Wikikamus
mswiktionary
https://ms.wiktionary.org/wiki/Wikikamus:Laman_Utama
MediaWiki 1.47.0-wmf.19
case-sensitive
Media
Khas
Perbincangan
Pengguna
Perbincangan pengguna
Wikikamus
Perbincangan Wikikamus
Fail
Perbincangan fail
MediaWiki
Perbincangan MediaWiki
Templat
Perbincangan templat
Bantuan
Perbincangan bantuan
Kategori
Perbincangan kategori
Lampiran
Perbincangan lampiran
Rima
Perbincangan rima
Tesaurus
Perbincangan tesaurus
Indeks
Perbincangan indeks
Petikan
Perbincangan petikan
Rekonstruksi
Perbincangan rekonstruksi
Padanan isyarat
Perbincangan padanan isyarat
Konkordans
Perbincangan konkordans
TimedText
TimedText talk
Modul
Perbincangan modul
Acara
Perbincangan acara
Modul:languages
828
8666
373478
281239
2026-09-10T17:53:45Z
SNN95
2113
kemaskini
373478
Scribunto
text/plain
--[==[ intro:
Modul ini melaksanakan pengambilan maklumat khusus bahasa dan pemprosesan teks dalam bahasa yang diberikan.
===Jenis-jenis bahasa===
Terdapat dua jenis bahasa: bahasa penuh dan bahasa khusus etimologi. Perbezaan ketara ialah hanya bahasa penuh
yang muncul dalam tajuk L2 pada entri kosa kata, justeru kategori seperti [[:Kategori:Kata nama bahasa Perancis]] hanya
wujud untuk bahasa penuh. Bahasa khusus etimologi mempunyai sama ada bahasa penuh atau bahasa khusus etimologi yang
lain sebagai induknya (dalam erti pewarisan induk-anak), dan bagi bahasa khusus etimologi yang berindukkan bahasa
khusus etimologi yang lain, bahasa penuh sentiasa dapat diterbitkan dengan menuruti pautan induk ke atas. Contohnya,
"Perancis Kanada", kod `fr-CA`, ialah bahasa khusus etimologi yang berindukkan bahasa penuh "Perancis", kod `fr`.
Contoh bahasa khusus etimologi dengan induk khusus etimologi yang lain ialah "Inggeris Kuno Northumbria", kod `ang-nor`,
yang mempunyai "Inggeris Kuno Anglian", kod `ang-ang` sebagai induknya; ini ialah bahasa khusus etimologi yang induknya
ialah "Inggeris Kuno", kod `ang`, iaitu bahasa penuh. (Ini adalah kerana Inggeris Kuno Northumbria dianggap sebagai satu
variasi bagi Inggeris Kuno Anglian.) Kadangkala induknya ialah bahasa "Tidak Ditentukan", kod `und`; hal ini berlaku,
sebagai contoh, bagi bahasa-bahasa "substrat" seperti "Pra-Yunani", kod `qsb-grc`, dan "substrat BMAC", kod `qsb-bma`.
Adalah penting untuk membezakan ''induk'' bahasa daripada ''leluhur'' bahasa. Hubungan induk-anak ialah hubungan
pembendungan, iaitu jika X ialah anak kepada Y, X dianggap sebagai satu variasi bagi Y. Sebaliknya, hubungan
leluhur-keturunan ialah hubungan penurunan mengikut masa. Sebagai contoh, "Latin Klasik", kod `la-cla`, dan "Latin Akhir",
kod `la-lat`, kedua-duanya adalah bahasa khusus etimologi yang mempunyai "Latin", kod `la`, sebagai induknya, kerana
kedua-dua bahasa terdahulu merupakan variasi bagi bahasa Latin. Walau bagaimanapun, Latin Akhir *TIDAK* mempunyai
Latin Klasik sebagai induknya kerana Latin Akhir *bukan* variasi bagi Latin Klasik; sebaliknya, ia adalah keturunannya.
Sebenarnya terdapat medan `ancestors` berasingan yang digunakan untuk menyatakan hubungan leluhur-keturunan, dan
leluhur bagi Latin Akhir diberikan sebagai Latin Klasik. Perlu diambil perhatian juga bahawa kadangkala bahasa khusus
etimologi sebenarnya merupakan leluhur konseptual kepada bahasa induknya sendiri. Ini berlaku, misalnya, dengan
"Itali Kuno" (kod `roa-oit`), yang merupakan varian khusus etimologi bagi bahasa penuh "Itali" (kod `it`), dan dengan
"Latin Kuno" (kod `itc-ola`), yang merupakan varian khusus etimologi bagi Latin. Dalam kedua-dua kes, bahasa penuh
menyenaraikan varian khusus etimologi sebagai leluhur. Ini membolehkan sesuatu istilah Latin mewarisi daripada Latin Kuno
menggunakan templat {{tl|inh}} (di mana dalam templat ini, "pewarisan" merujuk kepada pewarisan keturunan/leluhur,
iaitu pewarisan mengikut garis masa, bukannya dalam erti induk-anak); begitu juga bagi bahasa Itali dan Itali Kuno.
Bahasa penuh terbahagi kepada tiga subjenis:
* {regular}: Ini menunjukkan bahasa penuh yang diperakui mengikut [[WT:CFI]] dan oleh itu dibenarkan dalam ruang nama
utama. Mungkin terdapat juga istilah yang direkonstruksi untuk bahasa tersebut, yang diletakkan dalam ruang
nama {Rekonstruksi} dan mesti diawali dengan tanda * untuk menunjukkan rekonstruksi. Kebanyakan bahasa penuh
ialah bahasa semula jadi (bukan bahasa buatan), namun beberapa bahasa buatan (cth. Esperanto dan Volapük,
antara lain) juga dibenarkan dalam ruang nama utama dan dianggap sebagai bahasa biasa.
* {reconstructed}: Bahasa ini tidak diperakui mengikut [[WT:CFI]], dan oleh itu hanya dibenarkan dalam ruang nama
{Rekonstruksi}. Semua istilah dalam bahasa ini adalah yang direkonstruksi, dan mesti diawali dengan
tanda *. Bahasa seperti Proto-Indo-Eropah dan Proto-Jermanik berada dalam kategori ini.
* {appendix-constructed}: Bahasa ini diperakui tetapi tidak memenuhi syarat tambahan yang ditetapkan untuk bahasa
buatan ([[WT:CFI#Constructed languages]]). Entrinya mestilah berada dalam ruang nama Lampiran,
tetapi ia tidak direkonstruksi dan oleh itu tidak sepatutnya diawali dengan tanda * dalam pautan.
Kebanyakan bahasa buatan tergolong dalam subjenis ini.
Kedua-dua bahasa penuh dan bahasa khusus etimologi mempunyai objek {Language} yang dikaitkan dengannya, yang diambil
menggunakan fungsi {getByCode} dalam [[Module:languages]] untuk menukar kod bahasa kepada objek {Language}. Bergantung
pada pilihan yang dibekalkan kepada fungsi ini, bahasa khusus etimologi mungkin diterima atau tidak, dan kod keluarga
mungkin diterima (mengembalikan objek {Family} seperti yang diterangkan dalam [[Module:families]]). Terdapat juga fungsi
{getByCanonicalName} yang berasingan dalam [[Module:languages]] dan [[Module:etymology languages]] untuk menukar nama
kanonik sesuatu bahasa kepada objek {Language} (bergantung pada sama ada nama kanonik merujuk kepada bahasa penuh atau
bahasa khusus etimologi).
===Perwakilan teks===
Rentetan teks yang tergolong dalam sesuatu bahasa hadir dalam beberapa ''varian teks'' yang berbeza:
# ''Teks input'' ialah teks yang dibekalkan oleh pengguna dalam teks wiki, dalam parameter kepada {{tl|m}}, {{tl|l}},
{{tl|ux}}, {{tl|t}}, {{tl|lang}} dan seumpamanya.
# ''Teks input yang diperbetul'' ialah teks input yang telah diterapkan beberapa pembetulan dan/atau penormalan,
seperti penggantian aksara lapuk atau salah bagi sesetengah bahasa, contohnya menggantikan `l` atau `1` kepada
[[palochka]] dalam beberapa bahasa yang ditulis dalam abjad Cyril. (AMARAN: Ini kini berjalan di bawah nama
''display text'' tetapi ia akan diubah peranannya di bawah. Selain itu, [[User:Surjection]] mencadangkan menamakan
semula ini sebagai ''normalized input text'', tetapi "normalized" digunakan dalam pengertian berbeza dalam [[Module:usex]].)
# ''Teks paparan'' ialah teks dalam bentuk sebagaimana yang akan dipaparkan kepada pengguna. Inilah yang muncul dalam
kata kepala, dalam contoh penggunaan (usex), dalam pautan dalaman yang dipaparkan, dsb. Ini boleh merangkumi tanda diakritik
yang dialih keluar untuk membentuk teks paparan jalur (lihat di bawah), serta pautan dalam kurungan bertanam yang
diproses selanjutnya melalui pelbagai kaedah. Teks paparan dijana daripada teks input yang diperbetul dengan menerapkan
penjelmaan khusus bahasa; untuk kebanyakan bahasa, tiada penjelmaan sedemikian. Sebab utama perbezaan antara teks input
dan teks paparan adalah untuk membolehkan maklumat tambahan dalam teks input yang tidak dipaparkan kepada pengguna tetapi
dihantar ke modul transliterasi. Ambil perhatian bahawa perbezaan paparan dan teks input buat masa ini hanya disokong
melalui pengendalian khas tetapi akan digeneralisasikan. Contoh transformasi ialah: (1) Mengalih keluar {{cd|^}} yang
digunakan dalam sesetengah bahasa Asia Timur (dan mungkin bahasa unikameral lain) untuk menandakan penulisan huruf besar
bagi transliterasi (yang pada masa ini dikendalikan secara khas); (2) untuk bahasa Korea, mengalih keluar atau memproses
tanda sempang (yang kini dikendalikan secara khas); (3) untuk bahasa Arab, mengalih keluar tanda diakritik ''sukun''
yang diletakkan di atas ''ta marbutah'' (seperti ini: ةْ) untuk menandakan bahawa ''ta marbutah'' dibunyikan dan
ditransliterasikan sebagai /t/ dan bukannya senyap [NOTA, BELUM DILAKSANAKAN]; (4) untuk bahasa Thai dan Khmer,
menukar perkataan yang dipisahkan ruang kepada perkataan berpasangan kurungan dan meleraikan penggantian ejaan semula
seperti `[กรีน/กฺรีน]`, yang menunjukkan cara mentransliterasikan perkataan yang diberikan [NOTA, BELUM DILAKSANAKAN
kecuali dalam templat khusus bahasa seperti {{tl|th-usex}}].
## ''Teks paparan leraian kanan'' ialah hasil daripada mengalih keluar tanda kurung pada pautan bertanam satu bahagian
dan meleraikan pautan bertanam dua bahagian kepada komponen sebelah kanannya (iaitu menukar pautan dua bahagian ke dalam
bentuk yang dipaparkan). Proses leraian kanan berlaku apabila anda memanggil fungsi {{cd|remove_links()}} dalam
[[Module:links]] pada sesuatu teks. Apabila diterapkan pada teks paparan, ia menghasilkan apa yang dilihat oleh
pengguna dengan tepat, tanpa sebarang penanda pautan.
# ''Teks paparan jalur'' ialah hasil daripada penerapan penanggalan tanda diakritik pada teks paparan.
## ''Teks paparan jalur leraian kiri'' [PERLU NAMA LEBIH BAIK] ialah hasil daripada penerapan leraian kiri pada teks
paparan jalur, iaitu serupa dengan leraian kanan tetapi meleraikan pautan bertanam dua bahagian kepada komponen
sebelah kirinya (iaitu halaman sasaran pautan). Jika teks paparan merujuk kepada satu halaman sahaja, hasil daripada
menerapkan penanggalan tanda diakritik dan leraian kiri akan menghasilkan ''nama halaman logik''.
# ''Teks nama halaman fizikal'' ialah hasil daripada penukaran teks paparan jalur kepada pautan halaman fizikal. Jika teks
paparan jalur mengandungi pautan bertanam, sebelah kiri pautan tersebut ditukar menjadi pautan halaman fizikal; jika
tidak, keseluruhan teks dianggap sebagai nama halaman dan ditukar dengan cara yang sama. Penukaran melakukan tiga perkara:
(1) menukar aksara yang tidak dibenarkan dalam nama halaman kepada perwakilan "tajuk tidak disokong", cth.
{{cd|Unsupported titles/`gt`}} menggantikan nama logik {{cd|>}}; (2) mengendalikan nama halaman logik tajuk tidak
disokong yang dikendalikan khas, seperti {{cd|Unsupported titles/Space}} menggantikan {{cd|[space]}} dan
{{cd|Unsupported titles/Ancient Greek dish}} menggantikan nama Yunani yang sangat panjang untuk hidangan gourmet
seperti yang terdapat dalam Aristophanes; (3) menukar nama halaman "gergasi" seperti [[a]] kepada komponen pisahan yang
sesuai, cth. [[a/languages A to L]].
# ''Teks transliterasi sumber'' ialah teks seperti yang dibekalkan kepada kaedah {{cd|transliterate()}} khusus bahasa. Bentuk
teks transliterasi sumber mungkin perlu khusus mengikut bahasa, cth. bahasa Thai dan Khmer memerlukan teks input yang
diperbetul, manakala bahasa lain mungkin perlu beroperasi daripada teks paparan. [AMARAN: Masih belum jelas bagaimana
pautan bertanam dalam tanda kurung dikendalikan dalam kod sedia ada.] Secara umumnya, pautan bertanam perlu dileraikan ke kanan
(lihat di atas), namun waktu proses ini berlaku masih belum jelas [AMARAN]. Sesetengah bahasa mempunyai skim potong-dan-cantum
yang menghantar bahagian teks melalui mekanisme transliterasi, dan untuk bahasa lain (yang disenaraikan dengan "cont"
dalam {{cd|substitution}} dalam [[Module:languages/data]]) ia menerima keseluruhan teks input tetapi telah dipraproses
melalui cara tertentu. (Kesesuaian kaedah ini masih belum jelas.)
# ''Teks transliterasi'' (atau ''transliterasi'') ialah hasil daripada mentransliterasikan teks transliterasi sumber.
Tidak seperti semua varian teks yang lain kecuali teks transkripsi, ia sentiasa berada dalam skrip Rumi (Latin).
# ''Teks transkripsi'' (atau ''transkripsi'') ialah hasil daripada mentranskripsikan teks transliterasi sumber, di mana
"transkripsi" di sini bermaksud anggaran yang hampir dengan bentuk fonetik bahasa dalam bahasa-bahasa (cth. Akkadia,
Sumeria, Mesir Purba, barangkali Tibet) yang mempunyai perbezaan ketara antara huruf bertulis dan bentuk pertuturan.
Tidak seperti semua varian teks lain selain teks transliterasi, ia sentiasa berada dalam skrip Rumi (Latin). Pada masa
ini, teks transkripsi sentiasa dibekalkan secara manual oleh pengguna; tiada kaedah {{cd|transcribe()}} pada objek bahasa.
# ''Kunci isih'' ialah teks yang digunakan dalam kunci isihan untuk menentukan kedudukan susunan halaman dalam kategori
yang disertainya. Kunci isih dijana daripada nama halaman atau ''asas isih'' tertentu dengan menukarkannya kepada huruf
kecil, melakukan penjelmaan khusus bahasa dan kemudian menukarkan hasilnya kepada huruf besar. Sekiranya asas isih
dibekalkan dan dijana daripada teks input, ia perlu ditukar kepada teks paparan, pautan bertanam dialih keluar melalui
leraian kanan dan penanggalan tanda diakritik diterapkan.
# Terdapat varian teks lain yang berlaku dalam contoh penggunaan / usex (khususnya, terdapat varian ternormal bagi
beberapa varian teks di atas), tetapi kita boleh melangkau bahagian tersebut buat masa ini.
Kaedah-kaedah berikut wujud pada objek {Language} untuk menukar antara varian teks yang berbeza:
# {correctInputText} (kini dipanggil {makeDisplayText}): Ini menukar teks input kepada teks input yang diperbetul.
# {stripDiacritics}: Ini menukar kepada teks paparan jalur. [AMARAN: Ini memerlukan penelitian semula. Khususnya,
{stripDiacritics} kadangkala dipanggil pada teks input, teks input yang diperbetul atau teks paparan (dalam pelbagai
laluan di dalam [[Module:links]], dan, dalam kes teks input, biasanya daripada modul lain). Kita perlu memastikan kita
tidak cuba menukar teks input kepada teks paparan sebanyak dua kali, namun pada masa yang sama kita perlu menyokong
panggilan terus padanya bagi teks input memandangkan banyak modul berbuat demikian. Ini bermakna kita perlu menambah
parameter yang menandakan sama ada teks yang dimasukkan ialah teks input, teks input yang diperbetul, atau teks paparan;
jika dua yang pertama, kita memanggil {correctInputText} secara automatik.]
# {logicalToPhysical}: Ini menukar nama halaman logik kepada nama halaman fizikal.
# {transliterate}: Ini berfungsi menukar teks input dengan tanda kurung bertanam yang dialih keluar kepada transliterasi.
[AMARAN: Ini memerlukan penelitian semula. Khususnya, ia memanggil {processDisplayText} pada inputnya, yang tidak akan
berfungsi untuk bahasa Thai dan Khmer, jadi kita mungkin memerlukan bendera khusus bahasa yang menandakan sama ada
untuk menghantar teks input secara terus kepada kaedah transliterasi bahasa. Selain itu, saya tidak pasti bagaimana
pautan bertanam dikendalikan dalam kod transliterasi sedia ada; banyak pemanggil mengalih keluar pautan sendiri sebelum
memanggil {transliterate()}, yang saya anggap kurang tepat.]
# {makeSortKey}: Ini menukar teks paparan (?) kepada kunci isih. [AMARAN: Perlu perjelasan.]
]==]
local export = {}
local debug_track_module = "Module:debug/track"
local etymology_languages_data_module = "Module:etymology languages/data"
local families_module = "Module:families"
local headword_page_module = "Module:headword/page"
local json_module = "Module:JSON"
local language_like_module = "Module:language-like"
local languages_data_module = "Module:languages/data"
local languages_data_patterns_module = "Module:languages/data/patterns"
local links_data_module = "Module:links/data"
local load_module = "Module:load"
local scripts_module = "Module:scripts"
local scripts_data_module = "Module:scripts/data"
local string_encode_entities_module = "Module:string/encode entities"
local string_pattern_escape_module = "Module:string/patternEscape"
local string_replacement_escape_module = "Module:string/replacementEscape"
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
local utilities_module = "Module:utilities"
local wikimedia_languages_module = "Module:wikimedia languages"
local mw = mw
local string = string
local table = table
local char = string.char
local concat = table.concat
local find = string.find
local floor = math.floor
local get_by_code -- Ditakrifkan di bawah.
local get_data_module_name -- Ditakrifkan di bawah.
local get_extra_data_module_name -- Ditakrifkan di bawah.
local getmetatable = getmetatable
local gmatch = string.gmatch
local gsub = string.gsub
local insert = table.insert
local ipairs = ipairs
local is_known_language_tag = mw.language.isKnownLanguageTag
local make_object -- Ditakrifkan di bawah.
local match = string.match
local next = next
local pairs = pairs
local remove = table.remove
local require = require
local select = select
local setmetatable = setmetatable
local sub = string.sub
local type = type
local unstrip = mw.text.unstrip
-- Dimuatkan mengikut keperluan oleh findBestScript.
local Hans_chars
local Hant_chars
local function check_object(...)
check_object = require(utilities_module).check_object
return check_object(...)
end
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function decode_entities(...)
decode_entities = require(string_utilities_module).decode_entities
return decode_entities(...)
end
local function decode_uri(...)
decode_uri = require(string_utilities_module).decode_uri
return decode_uri(...)
end
local function deep_copy(...)
deep_copy = require(table_module).deepCopy
return deep_copy(...)
end
local function encode_entities(...)
encode_entities = require(string_encode_entities_module)
return encode_entities(...)
end
local function get_L2_sort_key(...)
get_L2_sort_key = require(headword_page_module).get_L2_sort_key
return get_L2_sort_key(...)
end
local function get_script(...)
get_script = require(scripts_module).getByCode
return get_script(...)
end
local function find_best_script_without_lang(...)
find_best_script_without_lang = require(scripts_module).findBestScriptWithoutLang
return find_best_script_without_lang(...)
end
local function get_family(...)
get_family = require(families_module).getByCode
return get_family(...)
end
local function get_plaintext(...)
get_plaintext = require(utilities_module).get_plaintext
return get_plaintext(...)
end
local function get_wikimedia_lang(...)
get_wikimedia_lang = require(wikimedia_languages_module).getByCode
return get_wikimedia_lang(...)
end
local function keys_to_list(...)
keys_to_list = require(table_module).keysToList
return keys_to_list(...)
end
local function list_to_set(...)
list_to_set = require(table_module).listToSet
return list_to_set(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function make_family_object(...)
make_family_object = require(families_module).makeObject
return make_family_object(...)
end
local function pattern_escape(...)
pattern_escape = require(string_pattern_escape_module)
return pattern_escape(...)
end
local function replacement_escape(...)
replacement_escape = require(string_replacement_escape_module)
return replacement_escape(...)
end
local function safe_require(...)
safe_require = require(load_module).safe_require
return safe_require(...)
end
local function shallow_copy(...)
shallow_copy = require(table_module).shallowCopy
return shallow_copy(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function to_json(...)
to_json = require(json_module).toJSON
return to_json(...)
end
local function u(...)
u = require(string_utilities_module).char
return u(...)
end
local function ugsub(...)
ugsub = require(string_utilities_module).gsub
return ugsub(...)
end
local function ulen(...)
ulen = require(string_utilities_module).len
return ulen(...)
end
local function ulower(...)
ulower = require(string_utilities_module).lower
return ulower(...)
end
local function umatch(...)
umatch = require(string_utilities_module).match
return umatch(...)
end
local function uupper(...)
uupper = require(string_utilities_module).upper
return uupper(...)
end
local function track(page)
debug_track("languages/" .. page)
return true
end
local function normalize_code(code)
return load_data(languages_data_module).aliases[code] or code
end
local function check_inputs(self, check, default, ...)
local n = select("#", ...)
if n == 0 then
return false
end
local ret = check(self, (...))
if ret ~= nil then
return ret
elseif n > 1 then
local inputs = {...}
for i = 2, n do
ret = check(self, inputs[i])
if ret ~= nil then
return ret
end
end
end
return default
end
local function make_link(self, target, display)
local prefix, main
if self:getFamilyCode() == "qfa-sub" then
prefix, main = display:match("^(the )(.*)")
if not prefix then
prefix, main = display:match("^(a )(.*)")
end
end
return (prefix or "") .. "[[" .. target .. "|" .. (main or display) .. "]]"
end
-- Menukar aksara berisiko kepada entiti HTML, yang meminimumkan gangguan setelah dikembalikan (cth. untuk "sms:a", "<!-- -->" dsb.).
local function escape_risky_characters(text)
-- Aksara penjarakan secara berasingan secara amnya perlu dilepaskan untuk diproses dengan betul oleh perisian MediaWiki.
if umatch(text, "^%s*$") then
return encode_entities(text, text)
end
return encode_entities(text, "!#%&*+/:;<=>?@[\\]_{|}")
end
-- Menukar pelbagai aksara pemformatan kepada PUA buat sementara waktu bagi mengelakkannya terganggu oleh proses penggantian.
local function doTempSubstitutions(text, subbedChars, keepCarets, noTrim)
-- Klon supaya kita tidak menyelitkan sebarang corak tambahan ke dalam jadual dalam package.loaded. Atas sebab tertentu, penggunaan require dilihat dapat mengekalkan penggunaan memori yang rendah; mungkin kerana jadual sentiasa diklon.
local patterns = shallow_copy(require(languages_data_patterns_module))
if keepCarets then
insert(patterns, "((\\+)%^)")
insert(patterns, "((%^))")
end
-- Memastikan sebarang ruang putih pada permulaan dan penghujung digantikan sementara, untuk mengelakkannya daripada dipangkas secara tidak sengaja. Kita hanya mahu memangkas sebarang ruang akhir yang ditambah semasa proses penggantian (cth. oleh modul), yang bermaksud kita hanya melakukan ini semasa pusingan pertama penggantian sementara.
if not noTrim then
insert(patterns, "^([\128-\191\244]*(%s+))")
insert(patterns, "((%s+)[\128-\191\244]*)$")
end
-- Pra-penggantian bagi "[[" dan "]]", yang menjadikan pemadanan corak lebih tepat.
text = gsub(text, "%f[%[]%[%[", "\1"):gsub("%f[%]]%]%]", "\2")
local i = #subbedChars
for _, pattern in ipairs(patterns) do
-- Corak yang berakhir dengan \0 adalah untuk perkara seperti "[[" atau "]]"), jadi PUA yang diselitkan dianggap sebagai pemisah antara istilah oleh modul yang mengikis maklumat daripada halaman.
local term_divider
pattern = gsub(pattern, "%z$", function(divider)
term_divider = divider == "\0"
return ""
end)
text = gsub(text, pattern, function(...)
local m = {...}
local m1New = m[1]
for k = 2, #m do
local n = i + k - 1
subbedChars[n] = m[k]
local byte2 = floor(n / 4096) % 64 + (term_divider and 128 or 136)
local byte3 = floor(n / 64) % 64 + 128
local byte4 = n % 64 + 128
m1New = gsub(m1New, pattern_escape(m[k]), "\244" .. char(byte2) .. char(byte3) .. char(byte4), 1)
end
i = i + #m - 1
return m1New
end)
end
text = gsub(text, "\1", "%[%["):gsub("\2", "%]%]")
return text, subbedChars
end
-- Menyisip semula sebarang pemformatan yang digantikan buat sementara waktu.
local function undoTempSubstitutions(text, subbedChars)
for i = 1, #subbedChars do
local byte2 = floor(i / 4096) % 64 + 128
local byte3 = floor(i / 64) % 64 + 128
local byte4 = i % 64 + 128
text = gsub(text, "\244[" .. char(byte2) .. char(byte2+8) .. "]" .. char(byte3) .. char(byte4),
replacement_escape(subbedChars[i]))
end
text = gsub(text, "\1", "%[%["):gsub("\2", "%]%]")
return text
end
-- Menyemak sama ada teks mentah ialah tajuk yang tidak disokong, dan jika ya kembalikannya. Jika tidak, alih keluar entiti HTML. Kita melakukan pra-penukaran untuk mengelakkan pemuatan senarai tajuk tidak disokong tanpa keperluan.
local function checkNoEntities(self, text)
local textNoEnc = decode_entities(text)
if textNoEnc ~= text and load_data(links_data_module).unsupported_titles[text] then
return text
else
return textNoEnc
end
end
-- Jika tiada objek skrip disediakan (atau jika tidak sah atau None), dapatkan satu.
local function checkScript(text, self, sc)
if not check_object("script", true, sc) or sc:getCode() == "None" then
return self:findBestScript(text)
end
return sc
end
local function normalize(text, sc)
text = sc:fixDiscouragedSequences(text)
return sc:toFixedNFD(text)
end
-- Subfungsi bagi iterateSectionSubstitutions(). Memproses bahagian teks individu mengikut spesifikasi dalam
-- `substitution_data`. Parameter input adalah seperti dalam dokumentasi iterateSectionSubstitutions() kecuali untuk
-- `recursed`, yang ditetapkan kepada true jika kita memanggil diri sendiri secara rekursif untuk memproses tetapan
-- khusus skrip atau sandaran seluruh skrip. Mengembalikan dua nilai: teks yang diproses dan data penggantian sebenar yang digunakan untuk melakukan penggantian (sama seperti nilai pulangan `actual_substitution_data` kepada iterateSectionSubstitutions()).
local function doSubstitutions(self, text, sc, substitution_data, data_field, function_name, recursed)
-- BERHATI-HATI dalam fungsi ini kerana nilai pada mana-mana peringkat boleh bernilai `false`, yang menyebabkan tiada pemprosesan dilakukan
-- dan menyekat sebarang pemprosesan sandaran selanjutnya.
local actual_substitution_data = substitution_data
-- Jika terdapat pengganti khusus bahasa yang diberikan dalam modul data, gunakannya.
if type(substitution_data) == "table" then
-- Jika skrip dinyatakan, jalankan fungsi ini dengan data khusus skrip sebelum meneruskan.
local sc_code = sc:getCode()
local has_substitution_data = false
if substitution_data[sc_code] ~= nil then
has_substitution_data = true
if substitution_data[sc_code] then
text, actual_substitution_data = doSubstitutions(self, text, sc, substitution_data[sc_code], data_field,
function_name, true)
end
-- Hant, Hans dan Hani biasanya dilayan sama, jadi tambah kes khas untuk mengelakkan daripada menyatakan setiap satu
-- secara berasingan.
elseif sc_code:match("^Han") and substitution_data.Hani ~= nil then
has_substitution_data = true
if substitution_data.Hani then
text, actual_substitution_data = doSubstitutions(self, text, sc, substitution_data.Hani, data_field,
function_name, true)
end
-- Data penggantian dengan kunci 1 dalam jadual luar boleh diberikan sebagai sandaran.
elseif substitution_data[1] ~= nil then
has_substitution_data = true
if substitution_data[1] then
text, actual_substitution_data = doSubstitutions(self, text, sc, substitution_data[1], data_field,
function_name, true)
end
end
-- Mengulangi semua rentetan dalam subjadual "from", dan lakukan gsub dengan rentetan sepadan dalam "to". Kita bekerja dengan
-- bentuk terurai NFD, kerana ini memudahkan banyak penggantian.
if substitution_data.from then
has_substitution_data = true
for i, from in ipairs(substitution_data.from) do
-- Menormalkan setiap gelung, untuk memastikan penggantian pelbagai peringkat berfungsi dengan betul.
text = sc:toFixedNFD(text)
text = ugsub(text, sc:toFixedNFD(from), substitution_data.to[i] or "")
end
end
if substitution_data.remove_diacritics then
has_substitution_data = true
text = sc:toFixedNFD(text)
-- Menukar pengecualian kepada PUA.
local remove_exceptions, substitutes = substitution_data.remove_exceptions
if remove_exceptions then
substitutes = {}
local i = 0
for _, exception in ipairs(remove_exceptions) do
exception = sc:toFixedNFD(exception)
text = ugsub(text, exception, function(m)
i = i + 1
local subst = u(0x80000 + i)
substitutes[subst] = m
return subst
end)
end
end
-- Menanggalkan tanda diakritik.
text = ugsub(text, "[" .. substitution_data.remove_diacritics .. "]", "")
-- Menukar pengecualian kembali.
if remove_exceptions then
text = text:gsub("\242[\128-\191]*", substitutes)
end
end
if not has_substitution_data and sc._data[data_field] then
-- Jika kunci isih khusus bahasa (dsb.) adalah nil, kembali kepada kunci isih seluruh skrip (dsb.).
text, actual_substitution_data = doSubstitutions(self, text, sc, sc._data[data_field], data_field,
function_name, true)
end
elseif type(substitution_data) == "string" then
-- Jika terdapat modul fungsi khusus, gunakannya.
local module = safe_require("Module:" .. substitution_data)
if module then
-- TODO: fungsi translit sepatutnya menerima objek, bukan kod.
-- TODO: fungsi translit sepatutnya dipanggil dengan bentuk NFD.
if function_name == "tr" then
if not module[function_name] then
error(("Ralat dalaman: Modul [[%s]] tidak mempunyai fungsi bernama 'tr'"):format(substitution_data))
end
text = module[function_name](text, self._code, sc:getCode())
elseif function_name == "stripDiacritics" then
-- AMARAN: buang cabang ini selepas menamakan semula makeEntryName -> stripDiacritics.
if module[function_name] then
text = module[function_name](sc:toFixedNFD(text), self, sc)
elseif module.makeEntryName then
text = module.makeEntryName(sc:toFixedNFD(text), self, sc)
else
error(("Ralat dalaman: Modul [[%s]] tidak mempunyai fungsi bernama 'stripDiacritics' atau 'makeEntryName'"
):format(substitution_data))
end
else
if not module[function_name] then
error(("Ralat dalaman: Modul [[%s]] tidak mempunyai fungsi bernama '%s'"):format(
substitution_data, function_name))
end
text = module[function_name](sc:toFixedNFD(text), self, sc)
end
else
error("Data penggantian '" .. substitution_data .. "' tidak sepadan dengan modul sedia ada.")
end
elseif substitution_data == nil and sc._data[data_field] then
-- Jika kunci isih khusus bahasa (dsb.) adalah nil, kembali kepada kunci isih seluruh skrip (dsb.).
text, actual_substitution_data = doSubstitutions(self, text, sc, sc._data[data_field], data_field,
function_name, true)
end
-- Jangan normalkan kepada NFC jika ini ialah gelung dalaman atau jika modul mengembalikan nil.
if recursed or not text then
return text, actual_substitution_data
end
-- Memperbetul sebarang urutan yang tidak digalakkan yang terhasil semasa proses penggantian, dan normalkan ke dalam bentuk akhir.
return sc:toFixedNFC(sc:fixDiscouragedSequences(text)), actual_substitution_data
end
-- Memecahkan teks kepada beberapa bahagian berdasarkan kehadiran aksara pemformatan yang digantikan sementara, kemudian mengulangi
-- setiap bahagian untuk menerapkan penggantian (cth. transliterasi atau penanggalan tanda diakritik). Ini mengelakkan aksara PUA
-- daripada melalui modul khusus bahasa yang mungkin tidak dilengkapi untuk mengendalikannya. Fungsi ini menerima nilai-nilai berikut:
-- * `self` (objek Language);
-- * `text` (teks untuk diproses);
-- * `sc` (skrip teks, yang mesti dinyatakan; pemanggil perlu memanggil checkScript() mengikut keperluan untuk mengesan secara automatik
-- skrip teks jika tidak diberikan secara jelas oleh pengguna);
-- * `subbedChars` (tatasusunan yang sama panjang dengan teks, menunjukkan aksara mana yang telah digantikan dan dengan apa,
-- atau {nil} jika tiada penggantian dilakukan);
-- * `keepCarets` (DOKUMENKAN SAYA);
-- * `substitution_data` (data yang menunjukkan penggantian mana yang perlu diterapkan, diambil terus daripada `data_field` dalam
-- struktur data bahasa dalam submodul [[Module:languages/data]]);
-- * `data_field` (medan data tempat `substitution_data` diambil, seperti "sort_key" atau "strip_diacritics");
-- * `function_name` (nama fungsi yang perlu dipanggil untuk melakukan penggantian, sekiranya `substitution_data` menyatakan
-- modul untuk melakukan penggantian);
-- * `notrim` (jangan pangkas ruang putih pada tepi `text`; ditetapkan semasa mengira kunci isih, kerana ruang putih pada
-- permulaan kunci isih adalah bermakna dan menyebabkan halaman yang terhasil disusun di bahagian awal kategori yang disertainya).
-- Mengembalikan tiga nilai:
-- (1) teks yang diproses;
-- (2) nilai `subbedChars` yang dimasukkan, mungkin diubah suai dengan penggantian aksara tambahan; akan bernilai {nil}
-- jika {nil} dimasukkan;
-- (3) data penggantian sebenar yang digunakan untuk menerapkan penggantian pada `text`; ini mungkin berbeza daripada nilai
-- `substitution_data` yang dimasukkan jika nilai itu secara rekursif menyatakan penggantian khusus skrip atau jika tiada
-- data penggantian ditemui dalam data khusus bahasa (cth. {nil} dimasukkan atau struktur dimasukkan yang tidak mempunyai
-- tetapan untuk skrip yang diberikan dalam `sc`), tetapi nilai sandaran seluruh skrip ditetapkan; buat masa ini ia
-- hanya digunakan oleh makeSortKey().
local function iterateSectionSubstitutions(self, text, sc, subbedChars, keepCarets, substitution_data, data_field,
function_name, notrim)
local sections
-- Lihat [[Module:languages/data]].
if not find(text, "\244") or load_data(languages_data_module).substitution[self._code] == "cont" then
sections = {text}
else
sections = split(text, "\244[\128-\143][\128-\191]*", true)
end
local actual_substitution_data
for _, section in ipairs(sections) do
-- Abaikan rentetan kosong atau ruang putih (yang mungkin juga tidak dikendalikan dengan baik oleh modul khusus).
if gsub(section, "%s+", "") ~= "" then
local sub, this_actual_substitution_data = doSubstitutions(self, section, sc, substitution_data, data_field,
function_name)
actual_substitution_data = this_actual_substitution_data
-- Pusingan kedua penggantian sementara, sekiranya terdapat sebarang pemformatan yang ditambah oleh proses penggantian
-- utama. Walau bagaimanapun, jangan lakukan ini jika bahagian tersebut sudah mengandungi pemformatan (kerana ia sepatutnya
-- telah dilepaskan untuk sampai ke peringkat ini, dan oleh itu harus diberikan sebagai teks mentah).
if sub and subbedChars then
local noSub
for _, pattern in ipairs(require(languages_data_patterns_module)) do
if match(section, pattern .. "%z?") then
noSub = true
end
end
if not noSub then
sub, subbedChars = doTempSubstitutions(sub, subbedChars, keepCarets, true)
end
end
if not sub then
text = sub
break
end
text = sub and gsub(text, pattern_escape(section), replacement_escape(sub), 1) or text
end
end
if not notrim then
-- Pangkas, melainkan hanya terdapat aksara ruang, sambil mengabaikan sebarang aksara pemformatan akhir.
-- Jangan pangkas kunci isih kerana ruang pada permulaan adalah bermakna.
text = text and text:gsub("^([\128-\191\244]*)%s+(%S)", "%1%2"):gsub("(%S)%s+([\128-\191\244]*)$", "%1%2") or
nil
end
return text, subbedChars, actual_substitution_data
end
-- Memproses tanda sisip (caret) (dan sebarang pelepasan). Lalai kepada penyingkiran mudah, jika tiada corak/penggantian diberikan.
local function processCarets(text, pattern, repl)
local rep
repeat
text, rep = gsub(text, "\\\\(\\*^)", "\3%1")
until rep == 0
return (text:gsub("\\^", "\4")
:gsub(pattern or "%^", repl or "")
:gsub("\3", "\\")
:gsub("\4", "^"))
end
-- Mengalih keluar tanda sisip jika ia digunakan untuk menulis huruf besar pada bahagian transliterasi (melainkan ia telah dilepaskan).
local function removeCarets(text, sc)
if not sc:hasCapitalization() and sc:isTransliterated() and text:find("^", 1, true) then
return processCarets(text)
else
return text
end
end
local Language = {}
--[==[Mengembalikan kod bahasa bagi sesuatu bahasa. Contoh: {{code|lua|"fr"}} untuk bahasa Perancis.]==]
function Language:getCode()
return self._code
end
--[==[Mengembalikan nama kanonik bahasa. Ini ialah nama yang digunakan untuk mewakili bahasa tersebut di Wiktionary, dan dijamin unik untuk bahasa itu sahaja. Contoh: {{code|lua|"French"}} untuk bahasa Perancis.]==]
function Language:getCanonicalName()
local name = self._name
if name == nil then
name = self._data[1]
self._name = name
end
return name
end
--[==[
Mengembalikan bentuk paparan bagi bahasa. Bentuk paparan bahasa, keluarga atau skrip ialah bentuk yang diambil apabila
muncul sebagai <code><var>source</var></code> dalam kategori seperti <code>Istilah bahasa Inggeris yang diterbitkan daripada
<var>source</var></code> atau <code>Nama khas bahasa Inggeris daripada <var>source</var></code>, dan juga merupakan teks paparan
dalam pautan {makeCategoryLink()}. Bagi bahasa penuh dan bahasa khusus etimologi, bentuk ini adalah sama seperti nama kanonik, tetapi
bagi keluarga bahasa, ia ditulis sebagai <code>"bahasa-bahasa <var>nama</var>"</code> (cth. {"bahasa-bahasa Indo-Iran"}), dan bagi skrip,
ia ditulis sebagai <code>"skrip <var>nama</var>"</code> (cth. {"skrip Arab"}).
]==]
function Language:getDisplayForm()
local form = self._displayForm
if form == nil then
form = self:getCanonicalName()
-- Tambah kata sandang dan " substrat" pada substrat yang memerlukannya.
if self:getFamilyCode() == "qfa-sub" then
if not (sub(form, 1, 4) == "the " or sub(form, 1, 2) == "a ") then
form = "a " .. form
end
if not match(form, " [Ss]ubstrate") then
form = form .. " substrate"
end
end
self._displayForm = form
end
return form
end
--[==[Mengembalikan nilai yang sepatutnya digunakan dalam atribut lang= HTML untuk teks bertag dalam bahasa berkenaan.]==]
function Language:getHTMLAttribute(sc, region)
local code = self._code
if not find(code, "-", 1, true) then
return code .. "-" .. sc:getCode() .. (region and "-" .. region or "")
end
local parent = self:getParent()
region = region or match(code, "%f[%u][%u-]+%f[%U]")
if parent then
return parent:getHTMLAttribute(sc, region)
end
-- TODO: Kod keluarga ISO juga boleh digunakan.
return "mis-" .. sc:getCode() .. (region and "-" .. region or "")
end
--[==[Mengembalikan jadual alias yang diketahui untuk bahasa tersebut, tidak termasuk nama kanonik. Alias ialah sinonim bagi bahasa yang dipersoalkan. Nama tidak dijamin unik, di mana kadangkala lebih daripada satu bahasa dikenali dengan nama yang sama. Contoh: {{code|lua|{"High German", "New High German", "Deutsch"} }} untuk [[:Kategori:Bahasa Jerman|Bahasa Jerman]].]==]
function Language:getAliases()
self:loadInExtraData()
return require(language_like_module).getAliases(self)
end
--[==[
Mengembalikan jadual subvariasi yang diketahui bagi sesuatu bahasa, tidak termasuk subvariasi yang telah diberikan
kod bahasa khusus etimologi yang jelas. Nama tidak dijamin unik, di mana kadangkala nama tertentu merujuk kepada
subvariasi lebih daripada satu bahasa. Contoh: {{code|lua|{"Aymara Selatan", "Aymara Tengah"} }} untuk
[[:Kategori:Bahasa Aymara|Bahasa Aymara]]. Ambil perhatian bahawa nilai yang dikembalikan boleh mengandungi jadual bersarang,
apabila subvariasi dikenali dengan lebih daripada satu nama. Contoh: {{code|lua|{"Azerbaijan Utara", "Azerbaijan Selatan",
{"Afshar", "Afshari", "Azerbaijan Afshar", "Afchar"}, {"Qashqa'i", "Qashqai", "Kashkay"}, "Sonqor"} }} untuk
[[:Kategori:Bahasa Azerbaijan|Bahasa Azerbaijan]]. Di sini, contohnya, Afshar, Afshari, Azerbaijan Afshar dan Afchar
kesemuanya merujuk kepada subvariasi yang sama, dengan nama pilihan ialah Afshar (yang disenaraikan pertama). Untuk mengelakkan
nilai pulangan yang mengandungi jadual bersarang, nyatakan nilai bukan {{code|lua|nil}} untuk parameter <code>flatten</code>;
dalam kes tersebut, nilai yang dikembalikan adalah {{code|lua|{"Azerbaijan Utara", "Azerbaijan Selatan", "Afshar", "Afshari",
"Azerbaijan Afshar", "Afchar", "Qashqa'i", "Qashqai", "Kashkay", "Sonqor"} }}.
]==]
function Language:getVarieties(flatten)
self:loadInExtraData()
return require(language_like_module).getVarieties(self, flatten)
end
--[==[Mengembalikan jadual "nama lain" yang diketahui bagi bahasa tersebut, yang disenaraikan dalam medan <code>otherNames</code>. Perlu dinyatakan bahawa medan <code>otherNames</code> itu sendiri telah lapuk, dan entri yang disenaraikan di situ akhirnya perlu dipindahkan ke sama ada <code>aliases</code> atau <code>varieties</code>.]==]
function Language:getOtherNames() -- Akan dialih keluar akhirnya, setelah tiada lagi penggunaan medan `otherNames`.
self:loadInExtraData()
return require(language_like_module).getOtherNames(self)
end
--[==[
Mengembalikan gabungan jadual bagi nama kanonik, alias, variasi dan nama lain bagi bahasa yang diberikan.]==]
function Language:getAllNames()
self:loadInExtraData()
return require(language_like_module).getAllNames(self)
end
--[==[Mengembalikan jadual jenis sebagai jadual carian (dengan jenis sebagai kunci).
Jenis-jenis yang mungkin ialah:
* {language}: Ini ialah bahasa, sama ada penuh atau khusus etimologi.
* {full}: Ini ialah bahasa "penuh" (bukan khusus etimologi), iaitu gabungan {regular}, {reconstructed} dan
{appendix-constructed}. Ambil perhatian bahawa jenis {full} dan {etymology-only} juga wujud untuk keluarga bahasa,
jadi jika anda ingin menyemak secara khusus bagi bahasa penuh dan anda mempunyai objek yang mungkin merupakan keluarga,
anda harus menggunakan {{lua|hasType("language", "full")}} dan bukan sekadar {{lua|hasType("full")}}.
* {etymology-only}: Ini ialah bahasa khusus etimologi (bukan penuh), yang induknya merupakan bahasa khusus etimologi lain
atau bahasa penuh. Ambil perhatian bahawa jenis {full} dan {etymology-only} juga wujud untuk keluarga bahasa,
jadi jika anda ingin menyemak secara khusus bagi bahasa khusus etimologi dan anda mempunyai objek yang mungkin
merupakan keluarga, anda harus menggunakan {{lua|hasType("language", "etymology-only")}} dan bukan sekadar
{{lua|hasType("etymology-only")}}.
* {regular}: Ini menunjukkan bahasa penuh yang diperakui mengikut [[WT:CFI]] dan oleh itu dibenarkan dalam ruang nama
utama. Mungkin terdapat juga istilah yang direkonstruksi untuk bahasa tersebut, yang diletakkan dalam ruang nama
{Rekonstruksi} dan mesti diawali dengan tanda * untuk menunjukkan rekonstruksi. Kebanyakan bahasa penuh ialah
bahasa semula jadi (bukan bahasa buatan), namun beberapa bahasa buatan (cth. Esperanto dan Volapük, antara lain)
juga dibenarkan dalam ruang nama utama dan dianggap sebagai bahasa biasa.
* {reconstructed}: Bahasa ini tidak diperakui mengikut [[WT:CFI]], dan oleh itu hanya dibenarkan dalam ruang nama
{Rekonstruksi}. Semua istilah dalam bahasa ini adalah yang direkonstruksi, dan mesti diawali dengan
tanda *. Bahasa seperti Proto-Indo-Eropah dan Proto-Jermanik berada dalam kategori ini.
* {appendix-constructed}: Bahasa ini diperakui tetapi tidak memenuhi syarat tambahan yang ditetapkan untuk bahasa
buatan ([[WT:CFI#Constructed languages]]). Entrinya mestilah berada dalam ruang nama Lampiran,
tetapi ia tidak direkonstruksi dan oleh itu tidak sepatutnya diawali dengan tanda * dalam pautan.
]==]
function Language:getTypes()
local types = self._types
if types == nil then
types = {language = true}
if self:getFullCode() == self._code then
types.full = true
else
types["etymology-only"] = true
end
for t in gmatch(self._data.type, "[^,]+") do
types[t] = true
end
self._types = types
end
return types
end
--[==[Diberikan senarai jenis sebagai rentetan, mengembalikan nilai true jika bahasa tersebut memiliki kesemuanya.]==]
function Language:hasType(...)
Language.hasType = require(language_like_module).hasType
return self:hasType(...)
end
--[==[Mengembalikan jadual yang mengandungi objek <code>WikimediaLanguage</code> (lihat [[Module:wikimedia languages]]), yang mewakili bahasa dan kodnya seperti yang digunakan dalam projek Wikimedia untuk pautan antara wiki dan sebagainya. Lebih daripada satu objek boleh dikembalikan, kerana satu bahasa Wiktionary boleh sepadan dengan beberapa bahasa Wikimedia. Contohnya, kod tunggal Wiktionary <code>sh</code> (Serbo-Croatia) dipetakan kepada empat kod Wikimedia: <code>sh</code> (Serbo-Croatia), <code>bs</code> (Bosnia), <code>hr</code> (Croatia) dan <code>sr</code> (Serbia).
Kod untuk bahasa Wikimedia diambil daripada sifat <code>wikimedia_codes</code> dalam modul data. Jika sifat tersebut tiada, kod bahasa semasa akan digunakan. Jika tiada kod yang tersedia merupakan kod Wikimedia yang sah, jadual kosong akan dikembalikan.]==]
function Language:getWikimediaLanguages()
local wm_langs = self._wikimediaLanguageObjects
if wm_langs == nil then
local codes = self:getWikimediaLanguageCodes()
wm_langs = {}
for i = 1, #codes do
wm_langs[i] = get_wikimedia_lang(codes[i])
end
self._wikimediaLanguageObjects = wm_langs
end
return wm_langs
end
function Language:getWikimediaLanguageCodes()
local wm_langs = self._wikimediaLanguageCodes
if wm_langs == nil then
wm_langs = self._data.wikimedia_codes
if wm_langs then
wm_langs = split(wm_langs, ",", true, true)
else
local code = self._code
if is_known_language_tag(code) then
wm_langs = {code}
else
-- Mewarisi, tetapi hanya jika tiada kod dinyatakan dalam data *dan*
-- kod bahasa tersebut bukan kod bahasa Wikimedia yang sah.
local parent = self:getParent()
wm_langs = parent and parent:getWikimediaLanguageCodes() or {}
end
end
self._wikimediaLanguageCodes = wm_langs
end
return wm_langs
end
--[==[
Mengembalikan nama rencana Wikipedia bagi bahasa tersebut. `project` menyatakan bahasa dan projek untuk mendapatkan rencana,
lalai kepada {"enwiki"} untuk Wikipedia Bahasa Inggeris. Biasanya jika dinyatakan ia sepatutnya menjadi kod projek bagi
Wikipedia bahasa tertentu cth. "mswiki" untuk Wikipedia Bahasa Melayu atau "zhwiki" untuk Wikipedia Bahasa Cina, tetapi ia
boleh menjadi mana-mana projek, termasuk yang bukan Wikipedia. Jika projek itu ialah Wikipedia Bahasa Inggeris dan sifat
{wikipedia_article} hadir dalam modul data, ia akan digunakan terlebih dahulu. Dalam semua kes lain, pautan laman (sitelink)
akan dijana daripada {:getWikidataItem} (jika ditetapkan). Nilai terhasil (atau ketiadaan nilai) dicache supaya panggilan
seterusnya lebih pantas. Jika tiada nilai dapat ditentukan, dan `noCategoryFallback` ialah {false}, {:getCategoryName} digunakan
sebagai sandaran; jika tidak, {nil} dikembalikan. Ambil perhatian bahawa jika `noCategoryFallback` bernilai {nil} atau diabaikan,
ia lalai kepada {false} jika projek ialah Wikipedia Bahasa Inggeris, selainnya kepada {true}. Dalam erti kata lain, dalam keadaan
biasa, jika rencana Wikipedia Bahasa Inggeris tidak dapat diperoleh, nilai pulangan akan kembali kepada pautan kategori bahasa,
tetapi ini biasanya tidak akan berlaku untuk mana-mana projek lain.
]==]
function Language:getWikipediaArticle(noCategoryFallback, project)
Language.getWikipediaArticle = require(language_like_module).getWikipediaArticle
return self:getWikipediaArticle(noCategoryFallback, project)
end
function Language:makeWikipediaLink()
return make_link(self, "w:" .. self:getWikipediaArticle(), self:getCanonicalName())
end
--[==[Mengembalikan nama halaman kategori Wikimedia Commons bagi bahasa tersebut.]==]
function Language:getCommonsCategory()
Language.getCommonsCategory = require(language_like_module).getCommonsCategory
return self:getCommonsCategory()
end
--[==[Mengembalikan id item Wikidata untuk bahasa atau <code>nil</code>. Ini sepadan dengan medan kedua dalam modul data.]==]
function Language:getWikidataItem()
Language.getWikidataItem = require(language_like_module).getWikidataItem
return self:getWikidataItem()
end
--[==[Mengembalikan jadual objek <code>Script</code> untuk semua skrip yang digunakan untuk menulis bahasa tersebut. Lihat [[Module:scripts]].]==]
function Language:getScripts()
local scripts = self._scriptObjects
if scripts == nil then
local codes = self:getScriptCodes()
if codes[1] == "All" then
scripts = load_data(scripts_data_module)
else
scripts = {}
for i = 1, #codes do
scripts[i] = get_script(codes[i])
end
end
self._scriptObjects = scripts
end
return scripts
end
--[==[Mengembalikan jadual kod skrip dalam fail data bahasa.]==]
function Language:getScriptCodes()
local scripts = self._scriptCodes
if scripts == nil then
scripts = self._data[4]
if scripts then
local codes, n = {}, 0
for code in gmatch(scripts, "[^,]+") do
n = n + 1
-- Pengendalian khas untuk "Hants", yang mewakili "Hani", "Hant" dan "Hans" secara kolektif.
if code == "Hants" then
codes[n] = "Hani"
codes[n + 1] = "Hant"
codes[n + 2] = "Hans"
n = n + 2
else
codes[n] = code
end
end
scripts = codes
else
scripts = {"None"}
end
self._scriptCodes = scripts
end
return scripts
end
--[==[Diberikan sesuatu teks, fungsi ini mengulangi skrip-skrip bagi bahasa yang ditentukan dan cuba mencari skrip yang paling sepadan dengan teks tersebut. Ia mengembalikan objek {{code|lua|Script}} yang mewakili skrip berkenaan. Jika tiada padanan ditemui langsung, ia mengembalikan objek skrip {{code|lua|None}}.]==]
function Language:findBestScript(text, forceDetect)
if not text or text == "" or text == "-" then
return get_script("None")
end
-- Berbeza daripada jadual yang dikembalikan oleh getScriptCodes, kerana Hants tidak dinormalkan kepada juzuk-juzuknya.
local codes = self._bestScriptCodes
if codes == nil then
codes = self._data[4]
codes = codes and split(codes, ",", true, true) or {"None"}
self._bestScriptCodes = codes
end
local first_sc = codes[1]
if first_sc == "All" then
return find_best_script_without_lang(text)
end
local codes_len = #codes
if not (forceDetect or first_sc == "Hants" or codes_len > 1) then
first_sc = get_script(first_sc)
local charset = first_sc.characters
return charset and umatch(text, "[" .. charset .. "]") and first_sc or get_script("None")
end
-- Mengalih keluar semua aksara pemformatan.
text = get_plaintext(text)
-- Mengalih keluar semua ruang dan sebarang tanda baca ASCII. Sesetengah tanda baca bukan ASCII adalah khusus skrip, jadi tidak boleh dialih keluar.
text = ugsub(text, "[%s!\"#%%&'()*,%-./:;?@[\\%]_{}]+", "")
if #text == 0 then
return get_script("None")
end
-- Cuba memadankan setiap skrip dengan teks,
-- dan kembalikan skrip yang mempunyai aksara sepadan paling banyak.
local bestcount, bestscript, length = 0
for i = 1, codes_len do
local sc = codes[i]
-- Kes khas untuk "Hants", iaitu kod khas yang mewakili mana-mana antara "Hant" atau "Hans" yang paling sepadan, atau "Hani" jika ia sepadan sama rata. Ini mengelakkan keperluan untuk menyenaraikan ketiga-tiganya. Selain itu, "Hants" akan dilayan sebagai padanan terbaik jika terdapat sekurang-kurangnya satu aksara yang sepadan, di bawah andaian bahawa skrip Han dikehendaki bagi istilah yang mengandungi campuran skrip Han dan skrip lain (tidak termasuk yang menggunakan Jpan atau Kore).
if sc == "Hants" then
local Hani = get_script("Hani")
if not Hant_chars then
Hant_chars = load_data("Module:zh/data/ts")
Hans_chars = load_data("Module:zh/data/st")
end
local t, s, found = 0, 0
-- Ini lebih pantas berbanding menggunakan mw.ustring.gmatch secara terus.
for ch in gmatch((ugsub(text, "[" .. Hani.characters .. "]", "\255%0")), "\255(.[\128-\191]*)") do
found = true
if Hant_chars[ch] then
t = t + 1
if Hans_chars[ch] then
s = s + 1
end
elseif Hans_chars[ch] then
s = s + 1
else
t, s = t + 1, s + 1
end
end
if found then
if t == s then
return Hani
end
return get_script(t > s and "Hant" or "Hans")
end
else
sc = get_script(sc)
if not length then
length = ulen(text)
end
-- Mengira aksara dengan menyingkirkan semua yang ada dalam set aksara skrip dan membandingkannya dengan panjang asal.
local charset = sc.characters
local count = charset and length - ulen((ugsub(text, "[" .. charset .. "]+", ""))) or 0
if count >= length then
return sc
elseif count > bestcount then
bestcount = count
bestscript = sc
end
end
end
-- Kembalikan skrip padanan terbaik, atau sebaliknya None.
return bestscript or get_script("None")
end
--[==[Mengembalikan objek <code>Family</code> bagi keluarga bahasa tempat tergolongnya bahasa ini. Lihat [[Module:families]].]==]
function Language:getFamily()
local family = self._familyObject
if family == nil then
family = self:getFamilyCode()
-- Jika nilainya nil, ia dicache sebagai false.
family = family and get_family(family) or false
self._familyObject = family
end
return family or nil
end
--[==[Mengembalikan kod keluarga dalam fail data bahasa.]==]
function Language:getFamilyCode()
local family = self._familyCode
if family == nil then
-- Jika nilainya nil, ia dicache sebagai false.
family = self._data[3] or false
self._familyCode = family
end
return family or nil
end
function Language:getFamilyName()
local family = self._familyName
if family == nil then
family = self:getFamily()
-- Jika nilainya nil, ia dicache sebagai false.
family = family and family:getCanonicalName() or false
self._familyName = family
end
return family or nil
end
do
local function check_family(self, family)
if type(family) == "table" then
family = family:getCode()
end
if self:getFamilyCode() == family then
return true
end
local self_family = self:getFamily()
if self_family:inFamily(family) then
return true
-- Jika keluarga tersebut bukan keluarga sebenar (cth. kreol), semak sebarang leluhur.
elseif self_family:inFamily("qfa-not") then
local ancestors = self:getAncestors()
for _, ancestor in ipairs(ancestors) do
if ancestor:inFamily(family) then
return true
end
end
end
end
--[==[Menyemak sama ada bahasa tergolong dalam `family` (yang boleh berupa kod keluarga atau objek). Senarai objek boleh diberikan sebagai ganti `family`; dalam kes tersebut, kembalikan true jika bahasa tergolong dalam mana-mana keluarga yang dinyatakan. Perhatikan bahawa sesetengah bahasa (khususnya, kreol tertentu) boleh mempunyai beberapa leluhur langsung yang berpotensi tergolong dalam keluarga berbeza; dalam kes tersebut, kembalikan true jika bahasa tergolong dalam mana-mana keluarga yang dinyatakan.]==]
function Language:inFamily(...)
if self:getFamilyCode() == nil then
return false
end
return check_inputs(self, check_family, false, ...)
end
end
function Language:getParent()
local parent = self._parentObject
if parent == nil then
parent = self:getParentCode()
-- Jika nilainya nil, ia dicache sebagai false.
parent = parent and get_by_code(parent, nil, true, true) or false
self._parentObject = parent
end
return parent or nil
end
function Language:getParentCode()
local parent = self._parentCode
if parent == nil then
-- Jika nilainya nil, ia dicache sebagai false.
parent = self._data.parent or false
self._parentCode = parent
end
return parent or nil
end
function Language:getParentName()
local parent = self._parentName
if parent == nil then
parent = self:getParent()
-- Jika nilainya nil, ia dicache sebagai false.
parent = parent and parent:getCanonicalName() or false
self._parentName = parent
end
return parent or nil
end
function Language:getParentChain()
local chain = self._parentChain
if chain == nil then
chain = {}
local parent, n = self:getParent(), 0
while parent do
n = n + 1
chain[n] = parent
parent = parent:getParent()
end
self._parentChain = chain
end
return chain
end
do
local function check_lang(self, lang)
for _, parent in ipairs(self:getParentChain()) do
if (type(lang) == "string" and lang or lang:getCode()) == parent:getCode() then
return true
end
end
end
function Language:hasParent(...)
return check_inputs(self, check_lang, false, ...)
end
end
--[==[
Jika bahasa tersebut merupakan bahasa khusus etimologi, fungsi ini mengulangi rantaian induk sehingga bahasa penuh atau keluarga ditemui, dan objek yang sepadan dikembalikan. Jika bahasa tersebut merupakan bahasa penuh, ia hanya mengembalikan dirinya sendiri.
]==]
function Language:getFull()
local full = self._fullObject
if full == nil then
full = self:getFullCode()
full = full == self._code and self or get_by_code(full)
self._fullObject = full
end
return full
end
--[==[
Jika bahasa tersebut merupakan bahasa khusus etimologi, fungsi ini mengulangi rantaian induk sehingga bahasa penuh atau keluarga ditemui, dan kod yang sepadan dikembalikan. Jika bahasa tersebut merupakan bahasa penuh, ia hanya mengembalikan kod bahasa tersebut.
]==]
function Language:getFullCode()
return self._fullCode or self._code
end
--[==[
Jika bahasa tersebut merupakan bahasa khusus etimologi, fungsi ini mengulangi rantaian induk sehingga bahasa penuh atau keluarga ditemui, dan nama kanonik yang sepadan dikembalikan. Jika bahasa tersebut merupakan bahasa penuh, ia hanya mengembalikan nama kanonik bahasa tersebut.
]==]
function Language:getFullName()
local full = self._fullName
if full == nil then
full = self:getFull():getCanonicalName()
self._fullName = full
end
return full
end
--[==[Mengembalikan jadual objek <code class="nf">Language</code> bagi semua bahasa yang diturunkan secara langsung daripada bahasa ini. Umumnya ini hanya melibatkan bahasa tunggal, tetapi kreol, pidgin dan bahasa campuran boleh mempunyai banyak leluhur.]==]
function Language:getAncestors()
local ancestors = self._ancestorObjects
if ancestors == nil then
ancestors = {}
local ancestor_codes = self:getAncestorCodes()
if #ancestor_codes > 0 then
for _, ancestor in ipairs(ancestor_codes) do
insert(ancestors, get_by_code(ancestor, nil, true))
end
else
local fam = self:getFamily()
local protoLang = fam and fam:getProtoLanguage() or nil
-- Bagi kes di mana bahasa semasa ialah bahasa proto bagi
-- keluarganya, atau bahasa khusus etimologi yang merupakan leluhur kepada bahasa
-- proto tersebut, kita perlu melangkah setingkat lebih tinggi sejak
-- permulaan lagi.
if protoLang and (
protoLang:getCode() == self._code or
(self:hasType("etymology-only") and protoLang:hasAncestor(self))
) then
fam = fam:getFamily()
protoLang = fam and fam:getProtoLanguage() or nil
end
while not protoLang and not (not fam or fam:getCode() == "qfa-not") do
fam = fam:getFamily()
protoLang = fam and fam:getProtoLanguage() or nil
end
insert(ancestors, protoLang)
end
self._ancestorObjects = ancestors
end
return ancestors
end
do
-- Elakkan bahasa menjadi leluhur kepada dirinya sendiri melalui pewarisan kelas. Kita hanya perlu menyemak ini jika bahasa mewarisi jadual leluhur daripada induknya, kerana kita tidak mahu menggugurkan leluhur yang telah ditetapkan secara jelas dalam data.
-- Ulangi proses secara rekursif merentasi leluhur sehingga sama ada menemui diri sendiri atau kehabisan rekod. Jika diri sendiri ditemui, kembalikan true.
local function check_ancestor(self, lang)
local codes = lang:getAncestorCodes()
if not codes then
return nil
end
for i = 1, #codes do
local code = codes[i]
if code == self._code then
return true
end
local anc = get_by_code(code, nil, true)
if check_ancestor(self, anc) then
return true
end
end
end
--[==[Mengembalikan jadual kod <code class="nf">Language</code> bagi semua bahasa yang diturunkan secara langsung daripada bahasa ini. Umumnya ini hanya melibatkan bahasa tunggal, tetapi kreol, pidgin dan bahasa campuran boleh mempunyai banyak leluhur.]==]
function Language:getAncestorCodes()
if self._ancestorCodes then
return self._ancestorCodes
end
local data = self._data
local codes = data.ancestors
if codes == nil then
codes = {}
self._ancestorCodes = codes
return codes
end
codes = split(codes, ",", true, true)
self._ancestorCodes = codes
-- Jika tiada kod atau leluhur tersebut bukan data yang diwarisi, tiada apa lagi untuk disemak.
if #codes == 0 or self:getData(false, "raw").ancestors ~= nil then
return codes
end
local i, code = 1
while i <= #codes do
code = codes[i]
if check_ancestor(self, self) then
remove(codes, i)
else
i = i + 1
end
end
return codes
end
end
--[==[Diberikan senarai objek atau kod bahasa, mengembalikan true jika sekurang-kurangnya satu daripadanya ialah leluhur. Ini merangkumi sebarang anak khusus etimologi bagi leluhur tersebut. Jika leluhur bahasa tersebut ialah bahasa khusus etimologi, ia juga akan mengembalikan true bagi induk bahasa berkenaan (cth. jika Latin Vulgar ialah leluhur, ia juga akan mengembalikan true bagi induknya, Latin). Walau bagaimanapun, induk dikecualikan daripada ini jika leluhur tersebut juga merupakan leluhur kepada induk berkenaan (cth. jika Parsi Klasik ialah leluhur, Parsi akan mengembalikan false, kerana Parsi Klasik juga merupakan leluhur kepada Parsi).]==]
function Language:hasAncestor(...)
local function iterateOverAncestorTree(node, func, parent_check)
local ancestors = node:getAncestors()
local ancestorsParents = {}
for _, ancestor in ipairs(ancestors) do
-- Semasa menyemak induk bahasa lain, dan leluhur juga merupakan induk, langkau ke leluhur seterusnya, supaya kita mengecualikan sebarang anak khusus etimologi bagi induk tersebut yang tidak berkaitan secara langsung (lihat di bawah).
local ret = (parent_check or not node:hasParent(ancestor)) and
func(ancestor) or iterateOverAncestorTree(ancestor, func, parent_check)
if ret then
return ret
end
end
-- Semak induk bagi mana-mana leluhur. Kita tidak melakukan ini jika menyemak induk bahasa lain, supaya kita mengecualikan sebarang anak khusus etimologi bagi induk tersebut yang tidak berkaitan secara langsung (cth. jika leluhur ialah Latin Vulgar dan kita menyemak Latin Baharu, kita mahu ia mengembalikan false kerana kedua-duanya berada pada cabang leluhur berbeza. Oleh itu, jika kita sudah menyemak induk Latin Baharu (Latin) kita tidak mahu membandingkannya dengan induk leluhur (Latin), kerana ini menghasilkan positif palsu; ia sepatutnya salah satu daripadanya).
if not parent_check then
return nil
end
for _, ancestor in ipairs(ancestors) do
local ancestorParents = ancestor:getParentChain()
for _, ancestorParent in ipairs(ancestorParents) do
if ancestorParent:getCode() == self._code or ancestorParent:hasAncestor(ancestor) then
break
else
insert(ancestorsParents, ancestorParent)
end
end
end
for _, ancestorParent in ipairs(ancestorsParents) do
local ret = func(ancestorParent)
if ret then
return ret
end
end
end
local function do_iteration(otherlang, parent_check)
-- otherlang tidak boleh merujuk kepada diri sendiri
if (type(otherlang) == "string" and otherlang or otherlang:getCode()) == self._code then
return false
end
repeat
if iterateOverAncestorTree(
self,
function(ancestor)
return ancestor:getCode() == (type(otherlang) == "string" and otherlang or otherlang:getCode())
end,
parent_check
) then
return true
elseif type(otherlang) == "string" then
otherlang = get_by_code(otherlang, nil, true)
end
otherlang = otherlang:getParent()
parent_check = false
until not otherlang
end
local parent_check = true
for _, otherlang in ipairs{...} do
local ret = do_iteration(otherlang, parent_check)
if ret then
return true
end
end
return false
end
do
local function construct_node(lang, memo)
local branch, ancestors = {lang = lang:getCode()}
memo[lang:getCode()] = branch
for _, ancestor in ipairs(lang:getAncestors()) do
if ancestors == nil then
ancestors = {}
end
insert(ancestors, memo[ancestor:getCode()] or construct_node(ancestor, memo))
end
branch.ancestors = ancestors
return branch
end
function Language:getAncestorChain()
local chain = self._ancestorChain
if chain == nil then
chain = construct_node(self, {})
self._ancestorChain = chain
end
return chain
end
end
function Language:getAncestorChainOld()
local chain = self._ancestorChain
if chain == nil then
chain = {}
local step = self
while true do
local ancestors = step:getAncestors()
step = #ancestors == 1 and ancestors[1] or nil
if not step then
break
end
insert(chain, step)
end
self._ancestorChain = chain
end
return chain
end
local function fetch_descendants(self, fmt)
local descendants, family = {}, self:getFamily()
-- Ulangi ke atas ketiga-tiga set data.
for _, data in ipairs{
require("Module:languages/code to canonical name"),
require("Module:etymology languages/code to canonical name"),
require("Module:families/code to canonical name"),
} do
for code in pairs(data) do
local lang = get_by_code(code, nil, true, true)
if not lang then
error(("Ralat dalaman: kod '%s' tidak dapat diambil"):format(code))
end
-- Uji untuk keturunan. Ujian awal menyingkirkan kebanyakan calon, manakala ujian yang lebih intensif hanya digunakan secara berhemat.
if (
code ~= self._code and -- Bukan diri sendiri.
lang:inFamily(family) and -- Dalam keluarga yang sama.
(
family:getProtoLanguageCode() == self._code or -- Diri sendiri ialah bahasa proto.
self:hasDescendant(lang) or -- Semakan penuh hasDescendant.
(lang:getFullCode() == self._code and not self:hasAncestor(lang)) -- Anak khusus etimologi yang bukan leluhur.
)
) then
if fmt == "object" then
insert(descendants, lang)
elseif fmt == "code" then
insert(descendants, code)
elseif fmt == "name" then
insert(descendants, lang:getCanonicalName())
end
end
end
end
return descendants
end
function Language:getDescendants()
local descendants = self._descendantObjects
if descendants == nil then
descendants = fetch_descendants(self, "object")
self._descendantObjects = descendants
end
return descendants
end
function Language:getDescendantCodes()
local descendants = self._descendantCodes
if descendants == nil then
descendants = fetch_descendants(self, "code")
self._descendantCodes = descendants
end
return descendants
end
function Language:getDescendantNames()
local descendants = self._descendantNames
if descendants == nil then
descendants = fetch_descendants(self, "name")
self._descendantNames = descendants
end
return descendants
end
do
local function check_lang(self, lang)
if type(lang) == "string" then
lang = get_by_code(lang, nil, true)
end
if lang:hasAncestor(self) then
return true
end
end
function Language:hasDescendant(...)
return check_inputs(self, check_lang, false, ...)
end
end
local function fetch_children(self, fmt)
local m_etym_data = require(etymology_languages_data_module)
local self_code, children = self._code, {}
for code, lang in pairs(m_etym_data) do
local _lang = lang
repeat
local parent = _lang.parent
if parent == self_code then
if fmt == "object" then
insert(children, get_by_code(code, nil, true))
elseif fmt == "code" then
insert(children, code)
elseif fmt == "name" then
insert(children, lang[1])
end
break
end
_lang = m_etym_data[parent]
until not _lang
end
return children
end
function Language:getChildren()
local children = self._childObjects
if children == nil then
children = fetch_children(self, "object")
self._childObjects = children
end
return children
end
function Language:getChildrenCodes()
local children = self._childCodes
if children == nil then
children = fetch_children(self, "code")
self._childCodes = children
end
return children
end
function Language:getChildrenNames()
local children = self._childNames
if children == nil then
children = fetch_children(self, "name")
self._childNames = children
end
return children
end
function Language:hasChild(...)
local lang = ...
if not lang then
return false
elseif type(lang) == "string" then
lang = get_by_code(lang, nil, true)
end
if lang:hasParent(self) then
return true
end
return self:hasChild(select(2, ...))
end
--[==[Mengembalikan nama kategori utama bagi bahasa tersebut. Contoh: {{code|lua|"French language"}} bagi bahasa Perancis, yang kategorinya berada di [[:Kategori:Bahasa Perancis]]. Melainkan argumen pilihan <code>nocap</code> diberikan, nama bahasa pada permulaan nilai yang dikembalikan akan diawali dengan huruf besar. Huruf besar ini betul untuk nama kategori, tetapi bukan jika nama bahasa menggunakan huruf kecil dan nilai yang dikembalikan oleh fungsi ini digunakan di tengah-tengah ayat.]==]
function Language:getCategoryName(nocap)
local name = self._categoryName
if name == nil then
name = self:getCanonicalName()
-- Jika substrat, gugurkan sebarang kata sandang di hadapan.
if self:getFamilyCode() == "qfa-sub" then
name = name:gsub("^the ", ""):gsub("^a ", "")
end
-- Hanya tambah " language" jika ia bahasa penuh.
if self:hasType("full") then
-- Melainkan nama kanonik sudah berakhir dengan "language", "lect" atau terbitannya, tambah " language".
if not (match(name, "[Ll]anguage$") or match(name, "[Ll]ect$")) then
name = name .. " language"
end
end
self._categoryName = name
end
if nocap then
return name
end
return mw.getContentLanguage():ucfirst(name)
end
--[==[Mencipta pautan ke kategori; teks pautan ialah nama kanonik.]==]
function Language:makeCategoryLink()
return make_link(self, ":Kategori:" .. self:getCategoryName(), self:getDisplayForm())
end
function Language:getStandardCharacters(sc)
local standard_chars = self._data.standard_chars
if type(standard_chars) ~= "table" then
return standard_chars
elseif sc and type(sc) ~= "string" then
check_object("script", nil, sc)
sc = sc:getCode()
end
if (not sc) or sc == "None" then
local scripts = {}
for _, script in pairs(standard_chars) do
insert(scripts, script)
end
return concat(scripts)
end
if standard_chars[sc] then
return standard_chars[sc] .. (standard_chars[1] or "")
end
end
--[==[
Menanggalkan tanda diakritik daripada teks paparan `text` (mengikut kaedah khusus bahasa), yang berada dalam skrip `sc`. Jika `sc` diabaikan atau bernilai {nil}, skrip dikesan secara automatik. Ini juga menanggalkan aksara tanda baca tertentu dari penghujung dan (dalam kes tanda soal dan seru terbalik bahasa Sepanyol) dari permulaan; menanggalkan sebarang ruang putih pada penghujung teks atau di antara teks dan tanda baca jalur akhir; serta menerapkan beberapa penormalan Unicode khusus bahasa untuk menggantikan aksara yang tidak digalakkan dengan alternatif yang ditetapkan. Mengembalikan teks yang telah ditanggalkan tanda diakritiknya.
]==]
function Language:stripDiacritics(text, sc)
if (not text) or text == "" then
return text
end
sc = checkScript(text, self, sc)
text = normalize(text, sc)
-- AMARAN: namakan semula makeEntryName kepada stripDiacritics dan buang nilai pulangan kedua dan ketiga
-- di semua tempat
text, _, _ = iterateSectionSubstitutions(self, text, sc, nil, nil,
self._data.strip_diacritics or self._data.entry_name, "strip_diacritics", "stripDiacritics")
text = umatch(text, "^[¿¡]?(.-[^%s%p].-)%s*[؟?!;՛՜ ՞ ՟?!︖︕।॥။၊་།]?$") or text
return text
end
--[==[
Menukar nama halaman ''logik'' (nama halaman sebagaimana ia dipaparkan kepada pengguna, selepas tanda diakritik dan tanda baca ditanggalkan) kepada nama halaman ''fizikal'' (nama halaman sebagaimana ia disimpan dalam pangkalan data MediaWiki). Sebab-sebab perbezaan antara kedua-duanya ialah (a) tajuk yang tidak disokong seperti `[ ]` (dengan kurungan siku di dalamnya), `#` (tanda pagar) dan `¯\_(ツ)_/¯` (dengan garis bawah), serta tajuk yang terlalu panjang dari pelbagai jenis; (b) halaman "gergasi" yang dipecahkan kepada beberapa bahagian (cth. `a`, yang dipecahkan kepada nama halaman fizikal `a/languages A to L` dan `a/languages M to Z`). Bagi hampir semua tujuan, anda harus bekerja dengan nama halaman logik dan bukan nama halaman fizikal. Namun terdapat kes penggunaan tertentu yang memerlukan nama halaman fizikal, seperti menyemak kewujudan halaman atau mendapatkan kandungan halaman.
`pagename` ialah nama halaman logik yang akan ditukar. `is_reconstructed_or_appendix` menunjukkan sama ada halaman berada dalam ruang nama `Reconstruction` atau `Appendix`. Jika ia diabaikan atau bernilai {nil}, nama halaman disemak untuk tanda asterisk awal, dan jika ditemui, halaman dianggap sebagai halaman `Reconstruction`. Menetapkan nilai `false` atau `true` pada `is_reconstructed_or_appendix` melumpuhkan semakan ini dan membenarkan nama halaman ruang nama utama yang bermula dengan tanda asterisk.
]==]
function Language:logicalToPhysical(pagename, is_reconstructed_or_appendix)
-- AMARAN: Ini mungkin tidak sepatutnya berlaku tetapi ia berlaku apabila makeEntryName() menerima nil.
if pagename == nil then
track("nil-passed-to-logicalToPhysical")
return nil
end
local initial_asterisk
if is_reconstructed_or_appendix == nil then
local pagename_minus_initial_asterisk
initial_asterisk, pagename_minus_initial_asterisk = pagename:match("^(%*)(.*)$")
if pagename_minus_initial_asterisk then
is_reconstructed_or_appendix = true
pagename = pagename_minus_initial_asterisk
elseif self:hasType("appendix-constructed") then
is_reconstructed_or_appendix = true
end
end
if not is_reconstructed_or_appendix then
-- Semak sama ada nama halaman tersenarai sebagai tajuk yang tidak disokong.
local unsupportedTitles = load_data(links_data_module).unsupported_titles
if unsupportedTitles[pagename] then
return "Unsupported titles/" .. unsupportedTitles[pagename]
end
end
-- Tetapkan `unsupported` sebagai true jika syarat tertentu dipenuhi.
local unsupported
-- Semak sama ada terdapat aksara yang tidak disokong. \239\191\189 ialah aksara gantian U+FFFD, yang tidak boleh ditaip
-- terus di sini kerana penapis penyalahgunaan. Notasi titik-garis condong gaya Unix juga tidak disokong, kerana ia digunakan untuk
-- laluan relatif dalam pautan, begitu juga dengan 3 atau lebih tanda tilde berturutan. Nota: match lebih pantas dengan aksara
-- magik/set aksara; find lebih pantas dengan teks biasa.
if (
match(pagename, "[#<>%[%]_{|}]") or
find(pagename, "\239\191\189") or
match(pagename, "%f[^%z/]%.%.?%f[%z/]") or
find(pagename, "~~~")
) then
unsupported = true
-- Jika ia kelihatan seperti pautan antara wiki.
elseif find(pagename, ":") then
local prefix = gsub(pagename, "^:*(.-):.*", ulower)
if (
load_data("Module:data/namespaces")[prefix] or
load_data("Module:data/interwikis")[prefix]
) then
unsupported = true
end
end
-- Lepaskan aksara yang tidak disokong supaya ia boleh digunakan dalam tajuk. ` digunakan sebagai pembatas untuk ini, jadi penggunaan mentah
-- tanda itu dalam tajuk yang tidak disokong turut dilepaskan di sini untuk mengelakkan gangguan; ini hanya dilakukan dengan tajuk yang
-- tidak disokong, jadi kemasukan tanda itu sendiri tidak bermakna tajuk tersebut dilayan sebagai tidak disokong (itulah sebabnya ia dikecualikan
-- daripada ujian awal).
if unsupported then
-- AMARAN: Penukaran ini perlu berbeza untuk halaman rekonstruksi dengan aksara yang tidak disokong. Tiada
-- yang wujud buat masa ini, tetapi jika ada, kita perlu membetulkannya cth. meletakkannya dalam sesuatu seperti
-- Reconstruction:Proto-Indo-European/Unsupported titles/`lowbar``num`.
local unsupported_characters = load_data(links_data_module).unsupported_characters
pagename = pagename:gsub("[#<>%[%]_`{|}\239]\191?\189?", unsupported_characters)
:gsub("%f[^%z/]%.%.?%f[%z/]", function(m)
return (gsub(m, "%.", "`period`"))
end)
:gsub("~~~+", function(m)
return (gsub(m, "~", "`tilde`"))
end)
pagename = "Unsupported titles/" .. pagename
elseif not is_reconstructed_or_appendix then
-- Semak sama ada ini halaman gergasi. Jika ya, subhalaman mana yang perlu kita pautkan?
local m_links_data = load_data(links_data_module)
local mammoth_page_type = m_links_data.mammoth_pages[pagename]
if mammoth_page_type then
local canonical_name = self:getFullName()
if canonical_name ~= "Translingual" and canonical_name ~= "English" then
local this_subpage
local L2_sort_key = get_L2_sort_key(canonical_name)
for _, subpage_spec in ipairs(m_links_data.mammoth_page_subpage_types[mammoth_page_type]) do
-- unpack() gagal sepenuhnya pada data yang dimuatkan menggunakan mw.loadData() walaupun ofset diberikan
local subpage, pattern = subpage_spec[1], subpage_spec[2]
if pattern == true or L2_sort_key:match(pattern) then
this_subpage = subpage
break
end
end
if not this_subpage then
error(("Ralat dalaman: Data tidak sah dalam mammoth_page_subpage_pages dalam [[Module:links/data]] untuk halaman gergasi %s, jenis %s; entri terakhir tiada 'true' di dalamnya"):format(
pagename, mammoth_page_type))
end
pagename = pagename .. "/" .. this_subpage
end
end
end
return (initial_asterisk or "") .. pagename
end
--[==[
Menanggalkan tanda diakritik daripada nama halaman paparan dan menukar nama halaman logik yang terhasil kepada nama halaman fizikal.
Ini membolehkan anda, sebagai contoh, mendapatkan kandungan halaman atau menyemak kewujudannya. AMARAN: Fungsi ini telah lapuk
dan akan dimansuhkan. Ia merupakan gabungan mudah bagi `self:stripDiacritics` dan `self:logicalToPhysical`; kebanyakan pemanggil
hanya memerlukan kaedah yang pertama, dan jika anda memerlukan kedua-duanya, panggil kedua-duanya secara berasingan.
`text` dan `sc` adalah seperti dalam `self:stripDiacritics`, dan `is_reconstructed_or_appendix` adalah seperti dalam `self:logicalToPhysical`.
]==]
function Language:makeEntryName(text, sc, is_reconstructed_or_appendix)
return self:logicalToPhysical(self:stripDiacritics(text, sc), is_reconstructed_or_appendix)
end
--[==[Menjana bentuk alternatif menggunakan kaedah yang dinyatakan, dan mengembalikannya sebagai jadual. Jika tiada kaedah dinyatakan, mengembalikan jadual yang hanya mengandungi istilah input.]==]
function Language:generateForms(text, sc)
local generate_forms = self._data.generate_forms
if generate_forms == nil then
return {text}
end
sc = checkScript(text, self, sc)
return require("Module:" .. self._data.generate_forms).generateForms(text, self, sc)
end
--[==[Mencipta kunci isih bagi teks jalur yang diberikan, mengikut peraturan yang sesuai untuk bahasa tersebut. Ini menanggalkan
tanda diakritik daripada teks jalur jika ia dianggap tidak signifikan untuk pengisihan, dan mungkin melakukan beberapa pengubahsuaian
lain. Sebarang tanda sempang awal juga dialih keluar, dan apa sahaja di dalam kurungan turut dialih keluar.
Tetapan <code>sort_key</code> bagi setiap bahasa dalam modul data mentakrifkan penggantian yang dibuat oleh fungsi ini, atau ia memberikan nama modul yang menerima teks jalur dan mengembalikan kunci isih.]==]
function Language:makeSortKey(text, sc)
if (not text) or text == "" then
return text
end
if match(text, "<[^<>]+>") then
track("track HTML tag")
end
-- Mengalih keluar aksara arah, tebal, condong, tanda sempang lembut, penanda jalur dan tag HTML.
-- AMARAN: Sebahagiannya berulang dengan remove_formatting() dalam [[Module:links]].
text = ugsub(text, "[\194\173\226\128\170-\226\128\174\226\129\166-\226\129\169]", "")
text = text:gsub("('*)'''(.-'*)'''", "%1%2"):gsub("('*)''(.-'*)''", "%1%2")
text = gsub(unstrip(text), "<[^<>]+>", "")
text = decode_uri(text, "PATH")
text = checkNoEntities(self, text)
-- Mengalih keluar tanda sempang awal dan * melainkan istilah tersebut hanya terdiri daripada aksara penjarakan + tanda baca.
text = ugsub(text, "^([-]*)[-־ـ᠊*]+([-]*)(.*[^%s%p].*)", "%1%2%3")
sc = checkScript(text, self, sc)
text = normalize(text, sc)
text = removeCarets(text, sc)
-- Bagi bahasa yang mempunyai huruf i bertitik dan tanpa titik, pastikan "İ" diisih sebagai "i", dan "I" diisih sebagai "ı".
if self:hasDottedDotlessI() then
text = gsub(text, "I\204\135", "i") -- "İ" terurai
:gsub("I", "ı")
text = sc:toFixedNFD(text)
end
-- Tukar kepada huruf kecil, hasilkan kunci isih, kemudian tukar kepada huruf besar. Di mana bahasa mempunyai i bertitik dan tanpa titik, ia
-- biasanya tidak perlu menukar "i" kepada "İ" dan "ı" kepada "I" terlebih dahulu, kerana "I" akan sentiasa ditafsirkan sebagai
-- "I" konvensional (bukan "İ" tanpa titik) oleh mana-mana algoritma pengisihan, yang telah diambil kira oleh
-- penggantian kunci isih itu sendiri. Walau bagaimanapun, jika tiada penggantian kunci isih dinyatakan, maka penukaran adalah
-- perlu bagi mengelakkan kedua-dua "i" dan "ı" diisih sebagai "I".
--
-- Pengecualian dibuat untuk skrip yang (kadangkala) mengisih dengan mengikis kandungan halaman, kerana ini bermakna ia sensitif
-- terhadap perubahan penggunaan huruf besar/kecil (kerana ia mengubah halaman sasaran).
if not sc:sortByScraping() then
text = ulower(text)
end
local actual_substitution_data
-- Jangan pangkas ruang putih di sini kerana ia bermakna pada permulaan kunci isih atau asas isih.
text, _, actual_substitution_data = iterateSectionSubstitutions(self, text, sc, nil, nil, self._data.sort_key,
"sort_key", "makeSortKey", "notrim")
if not sc:sortByScraping() then
if self:hasDottedDotlessI() and not actual_substitution_data then
text = text:gsub("ı", "I"):gsub("i", "İ")
text = sc:toFixedNFC(text)
end
text = uupper(text)
end
-- Alih keluar kurungan, asalkan ia didahului atau diikuti oleh sesuatu.
text = gsub(text, "(.)[()]+", "%1"):gsub("[()]+(.)", "%1")
text = escape_risky_characters(text)
return text
end
--[==[Mencipta bentuk yang digunakan sebagai asas untuk teks paparan dan transliterasi. AMARAN: Namakan semula kepada correctInputText().]==]
local function processDisplayText(text, self, sc, keepCarets, keepPrefixes)
local subbedChars = {}
text, subbedChars = doTempSubstitutions(text, subbedChars, keepCarets)
text = decode_uri(text, "PATH")
text = checkNoEntities(self, text)
sc = checkScript(text, self, sc)
text = normalize(text, sc)
text, subbedChars = iterateSectionSubstitutions(self, text, sc, subbedChars, keepCarets, self._data.display_text,
"display_text", "makeDisplayText")
text = removeCarets(text, sc)
-- Alih keluar sebarang awalan pautan antara wiki (melainkan ia telah dilepaskan atau ciri ini dilumpuhkan).
if find(text, ":") and not keepPrefixes then
local rep
repeat
text, rep = gsub(text, "\\\\(\\*:)", "\3%1")
until rep == 0
text = gsub(text, "\\:", "\4")
while true do
local prefix = gsub(text, "^(.-):.+", function(m1)
return (gsub(m1, "\244[\128-\191]*", ""))
end)
-- Semak sama ada awalan ialah antara wiki, namun abaikan Wiktionary: dengan huruf besar, yang merupakan ruang nama.
if not prefix or prefix == text or prefix == "Wiktionary"
or not (load_data("Module:data/interwikis")[ulower(prefix)] or prefix == "") then
break
end
text = gsub(text, "^(.-):(.*)", function(m1, m2)
local ret = {}
for subbedChar in gmatch(m1, "\244[\128-\191]*") do
insert(ret, subbedChar)
end
return concat(ret) .. m2
end)
end
text = gsub(text, "\3", "\\"):gsub("\4", ":")
end
return text, subbedChars
end
--[==[Menghasilkan teks paparan (iaitu apa yang dipaparkan pada halaman).]==]
function Language:makeDisplayText(text, sc, keepPrefixes)
if not text or text == "" then
return text
end
local subbedChars
text, subbedChars = processDisplayText(text, self, sc, nil, keepPrefixes)
text = escape_risky_characters(text)
return undoTempSubstitutions(text, subbedChars)
end
--[==[Mentransliterasikan teks daripada skrip yang diberikan kepada skrip Latin (lihat
[[Wiktionary:Transliteration and romanization]]). Bahasa mesti mempunyai sifat <code>translit</code> untuk ciri ini
berfungsi; jika ia tiada, {{code|lua|nil}} dikembalikan.
Parameter <code>sc</code> dikendalikan oleh modul transliterasi, dan cara ia dikendalikan adalah khusus kepada modul
tersebut. Sesetengah modul transliterasi mungkin menerima {{code|lua|nil}} sebagai skrip, yang lain memerlukannya menjadi salah satu
skrip yang mungkin boleh ditransliterasikan oleh modul, dan akan membuang ralat jika ia bukan salah satu daripadanya. Atas sebab ini,
parameter <code>sc</code> sepatutnya sentiasa disediakan semasa menulis kod bukan khusus bahasa.
Parameter <code>module_override</code> digunakan untuk mengatasi modul lalai yang digunakan bagi menyediakan
transliterasi. Ini berguna dalam kes di mana anda perlu menunjukkan penggunaan modul tertentu, tetapi modul lalai belum wujud,
atau anda ingin menunjukkan versi alternatif bagi modul transliterasi sebelum menjadikannya rasmi. Ia tidak sepatutnya
digunakan dalam modul atau templat sebenar, hanya untuk ujian. Semua penggunaan parameter ini dijejaki
oleh [[Wiktionary:Tracking/languages/module_override]].
'''Pepijat yang diketahui''':
* Fungsi ini mengandaikan {tr(s1) .. tr(s2) == tr(s1 .. s2)}. Apabila penegasan ini gagal, penanda teks wiki seperti <nowiki>'''</nowiki> boleh menyebabkan transliterasi yang salah.
* Entiti HTML seperti <code>&apos;</code>, yang sering digunakan untuk melepaskan penanda teks wiki, tidak berfungsi.
]==]
function Language:transliterate(text, sc, module_override)
-- Jika tiada teks, atau bahasa tidak mempunyai data transliterasi dan tiada override diberikan, kembalikan nil.
if not text or text == "" or text == "-" then
return text
end
-- Jika skrip tidak boleh ditransliterasikan (dan tiada override diberikan), kembalikan nil.
sc = checkScript(text, self, sc)
if not (sc:isTransliterated() or module_override) then
-- penjejakan sementara untuk melihat sama ada/bila ini dicetuskan
track("non-transliterable")
track("non-transliterable/" .. self._code)
track("non-transliterable/" .. sc:getCode())
track("non-transliterable/" .. sc:getCode() .. "/" .. self._code)
return nil
end
-- Alih keluar sebarang penanda jalur.
text = unstrip(text)
-- Jangan proses pemformatan kepada aksara PUA bagi bahasa-bahasa tertentu.
local processed = load_data(languages_data_module).substitution[self._code] ~= "none"
-- Dapatkan teks paparan dengan bendera keepCarets ditetapkan.
local subbedChars
if processed then
text, subbedChars = processDisplayText(text, self, sc, true)
end
-- Lakukan transliterasi (menggunakan module_override jika berkenaan).
text, subbedChars = iterateSectionSubstitutions(self, text, sc, subbedChars, true, module_override or
self._data.translit, "translit", "tr")
if not text then
return nil
end
-- Transliterasi tidak lengkap mengembalikan nil.
local charset = sc.characters
if charset and umatch(text, "[" .. charset .. "]") then
-- Alih keluar sebarang aksara dalam skrip Latin, termasuk aksara Latin yang turut terkandung dalam skrip lain (kerana ini
-- menghasilkan positif palsu), serta sebarang penggantian PUA. Apa-apa yang tinggal sepatutnya hanya kod skrip "None"
-- (cth. angka).
local check_text = ugsub(text, "[" .. get_script("Latn").characters .. "-]+", "")
-- Tetapkan bendera none_is_last_resort_only, supaya sebarang aksara bukan-None akan menyebabkan skrip selain "None"
-- dikembalikan.
if find_best_script_without_lang(check_text, true):getCode() ~= "None" then
return nil
end
end
if processed then
text = escape_risky_characters(text)
text = undoTempSubstitutions(text, subbedChars)
end
-- Jika skrip tidak menggunakan huruf besar, maka besarkan sebarang huruf transliterasi yang
-- didahului secara langsung oleh tanda sisip (dan alih keluar tanda sisip tersebut).
if text and not sc:hasCapitalization() and text:find("^", 1, true) then
text = processCarets(text, "%^([\128-\191\244]*%*?)([^\128-\191\244][\128-\191]*)", function(m1, m2)
return m1 .. uupper(m2)
end)
end
-- Jejaki override modul.
if module_override ~= nil then
track("module_override")
end
return text
end
do
local function handle_language_spec(self, spec, sc)
local ret = self["_" .. spec]
if ret == nil then
ret = self._data[spec]
if type(ret) == "string" then
ret = list_to_set(split(ret, ",", true, true))
end
self["_" .. spec] = ret
end
if type(ret) == "table" then
ret = ret[sc:getCode()]
end
return not not ret
end
function Language:overrideManualTranslit(sc)
return handle_language_spec(self, "override_translit", sc)
end
function Language:link_tr(sc)
return handle_language_spec(self, "link_tr", sc)
end
end
--[==[Mengembalikan {{code|lua|true}} jika bahasa mempunyai modul transliterasi, atau {{code|lua|false}} jika tiada.]==]
function Language:hasTranslit()
return not not self._data.translit
end
--[==[Mengembalikan {{code|lua|true}} jika bahasa menggunakan huruf I/ı dan İ/i, atau {{code|lua|false}} jika tidak.]==]
function Language:hasDottedDotlessI()
return not not self._data.dotted_dotless_i
end
function Language:toJSON(opts)
local strip_diacritics, strip_diacritics_patterns, strip_diacritics_remove_diacritics = self._data.strip_diacritics
if strip_diacritics then
if strip_diacritics.from then
strip_diacritics_patterns = {}
for i, from in ipairs(strip_diacritics.from) do
insert(strip_diacritics_patterns, {from = from, to = strip_diacritics.to[i] or ""})
end
end
strip_diacritics_remove_diacritics = strip_diacritics.remove_diacritics
end
-- mainCode hanya bernilai bukan nil jika dontCanonicalizeAliases dihantar ke make_object().
-- props sepatutnya mengandungi fungsi tanpa argumen untuk mengira nilai, atau nilai itu sendiri.
local props = {
ancestors = function() return self:getAncestorCodes() end,
canonicalName = function() return self:getCanonicalName() end,
categoryName = function() return self:getCategoryName("nocap") end,
code = self._code,
mainCode = self._mainCode,
parent = function() return self:getParentCode() end,
full = function() return self:getFullCode() end,
stripDiacriticsPatterns = strip_diacritics_patterns,
stripDiacriticsRemoveDiacritics = strip_diacritics_remove_diacritics,
family = function() return self:getFamilyCode() end,
aliases = function() return self:getAliases() end,
varieties = function() return self:getVarieties() end,
otherNames = function() return self:getOtherNames() end,
scripts = function() return self:getScriptCodes() end,
type = function() return keys_to_list(self:getTypes()) end,
wikimediaLanguages = function() return self:getWikimediaLanguageCodes() end,
wikidataItem = function() return self:getWikidataItem() end,
wikipediaArticle = function() return self:getWikipediaArticle(true) end,
}
local ret = {}
for prop, val in pairs(props) do
if not opts.skip_fields or not opts.skip_fields[prop] then
if type(val) == "function" then
ret[prop] = val()
else
ret[prop] = val
end
end
end
-- Gunakan `deep_copy` apabila mengembalikan jadual, supaya tiada sekatan penyuntingan yang dikenakan oleh `mw.loadData`.
return opts and opts.lua_table and deep_copy(ret) or to_json(ret, opts)
end
function export.getDataModuleName(code)
local letter = match(code, "^(%l)%l%l?$")
return "Module:" .. (
letter == nil and "languages/data/exceptional" or
#code == 2 and "languages/data/2" or
"languages/data/3/" .. letter
)
end
get_data_module_name = export.getDataModuleName
function export.getExtraDataModuleName(code)
return get_data_module_name(code) .. "/extra"
end
get_extra_data_module_name = export.getExtraDataModuleName
do
local function make_stack(data)
local key_types = {
[2] = "unique",
aliases = "unique",
otherNames = "unique",
type = "append",
varieties = "unique",
wikipedia_article = "unique",
wikimedia_codes = "unique"
}
local function __index(self, k)
local stack, key_type = getmetatable(self), key_types[k]
-- Data yang tidak diwarisi daripada induk.
if key_type == "unique" then
local v = stack[stack[make_stack]][k]
if v == nil then
local layer = stack[0]
if layer then -- Boleh bernilai false jika tiada data tambahan.
v = layer[k]
end
end
return v
-- Data yang ditambah oleh setiap generasi.
elseif key_type == "append" then
local parts, offset, n = {}, 0, stack[make_stack]
for i = 1, n do
local part = stack[i][k]
if part == nil then
offset = offset + 1
else
parts[i - offset] = part
end
end
return offset ~= n and concat(parts, ",") or nil
end
local n = stack[make_stack]
while true do
local layer = stack[n]
if not layer then -- Boleh bernilai false jika tiada data tambahan.
return nil
end
local v = layer[k]
if v ~= nil then
return v
end
n = n - 1
end
end
local function __newindex()
error("jadual adalah baca sahaja")
end
local function __pairs(self)
-- Mengulangi susunan tindanan ke bawah, mencache kunci bagi mengelakkan pulangan pendua.
local stack, seen = getmetatable(self), {}
local n = stack[make_stack]
local iter, state, k, v = pairs(stack[n])
return function()
repeat
repeat
k = iter(state, k)
if k == nil then
n = n - 1
local layer = stack[n]
if not layer then -- Boleh bernilai false jika tiada data tambahan.
return nil
end
iter, state, k = pairs(layer)
end
until not (k == nil or seen[k])
-- Dapatkan nilai melalui carian, kerana nilai yang dikembalikan oleh
-- lelaran adalah nilai mentah daripada lapisan semasa,
-- yang mungkin bukan nilai yang akan dikembalikan oleh __index untuk
-- kunci tersebut. Lakukan juga memoize kunci dalam `seen` (walaupun carian
-- mengembalikan nil) supaya ia tidak dicari semula.
-- TODO: simpan nilai dalam `self`, mengelakkan keperluan membina
-- jadual `seen`. Lelaran perlu mengulangi ke atas
-- `self` dengan `next` terlebih dahulu untuk menemuinya pada gelung akan datang.
v, seen[k] = self[k], true
until v ~= nil
return k, v
end
end
local __ipairs = require(table_module).indexIpairs
function make_stack(data)
local stack = {
data,
[make_stack] = 1, -- menyimpan panjang dan bertindak sebagai penanda untuk mengesahkan sesuatu metajadual ialah tindanan.
__index = __index,
__newindex = __newindex,
__pairs = __pairs,
__ipairs = __ipairs,
}
stack.__metatable = stack
return setmetatable({}, stack), stack
end
return make_stack(data)
end
local function get_stack(data)
local stack = getmetatable(data)
return stack and type(stack) == "table" and stack[make_stack] and stack or nil
end
--[==[
<span style="color: var(--wikt-palette-red,#BA0000)">Fungsi ini bukan untuk digunakan dalam entri atau halaman kandungan lain.</span>
Mengembalikan gumpalan data mengenai bahasa tersebut. Format gumpalan ini tidak didokumenkan, dan barangkali tidak stabil; ia bertujuan untuk perkara seperti ujian unit modul itu sendiri, yang berkait rapat dengan modul dan akan dipastikan sentiasa terkini mengikut perubahan format. Jika `extra` ditetapkan, sebarang data tambahan dalam modul `/extra` berkaitan akan disertakan. (Ambil perhatian bahawa ia akan tetap disertakan jika ia telah pun dimuatkan ke dalam objek bahasa.) Jika `raw` ditetapkan, maka data yang dikembalikan tidak akan mengandungi sebarang data yang diwarisi daripada objek induk.
-- JANGAN gunakan kaedah-kaedah ini!
-- Semua penggunaan mesti dipra-luluskan pada halaman perbincangan!
]==]
function Language:getData(extra, raw)
if extra then
self:loadInExtraData()
end
local data = self._data
-- Jika raw tidak ditetapkan, kembalikan data sahaja.
if not raw then
return data
end
local stack = get_stack(data)
-- Jika tiada tindanan atau panjangnya adalah 1, kembalikan data. Data tambahan (jika ada) akan disertakan, kerana ia disimpan pada kunci 0 dan tidak menjejaskan panjang yang dilaporkan.
if stack == nil then
return data
end
local n = stack[make_stack]
if n == 1 then
return data
end
local extra = stack[0]
-- Jika tiada sebarang data tambahan, kembalikan lapisan teratas tindanan.
if extra == nil then
return stack[n]
end
-- Jika ada, kembalikan tindanan baharu yang mempunyai lapisan teratas pada kunci 1 dan data tambahan pada kunci 0.
data, stack = make_stack(stack[n])
stack[0] = extra
return data
end
function Language:loadInExtraData()
-- Hanya bahasa penuh mempunyai data tambahan.
if not self:hasType("language", "full") then
return
end
local data = self._data
-- Jika tiada tindanan, cipta satu.
local stack = get_stack(self._data)
if stack == nil then
data, stack = make_stack(data)
-- Jika telah dimuatkan, kembali.
elseif stack[0] ~= nil then
return
end
self._data = data
-- Muatkan data tambahan daripada modul berkaitan dan tambahkannya pada tindanan pada kunci 0, supaya metamethod __index dan __pairs akan mengambilnya, memandangkan ia mengulangi ke bawah tindanan sehingga kehabisan lapisan.
local code = self._code
local modulename = get_extra_data_module_name(code)
-- Tiada data dicache sebagai false.
stack[0] = modulename and load_data(modulename)[code] or false
end
--[==[Mengembalikan nama modul yang mengandungi data bahasa tersebut. Pada masa ini, ia sentiasa [[Module:scripts/data]].]==]
function Language:getDataModuleName()
local name = self._dataModuleName
if name == nil then
name = self:hasType("etymology-only") and etymology_languages_data_module or
get_data_module_name(self._mainCode or self._code)
self._dataModuleName = name
end
return name
end
--[==[Mengembalikan nama modul yang mengandungi data bahasa tersebut. Pada masa ini, ia sentiasa [[Module:scripts/data]].]==]
function Language:getExtraDataModuleName()
local name = self._extraDataModuleName
if name == nil then
name = not self:hasType("etymology-only") and get_extra_data_module_name(self._mainCode or self._code) or false
self._extraDataModuleName = name
end
return name or nil
end
function export.makeObject(code, data, dontCanonicalizeAliases)
local data_type = type(data)
if data_type ~= "table" then
error(("hujah #2 tidak sah untuk 'makeObject' (jadual dijangkakan, menerima %s)"):format(data_type))
end
-- Tukar sebarang alias.
local input_code = code
code = normalize_code(code)
input_code = dontCanonicalizeAliases and input_code or code
local parent
if data.parent then
parent = get_by_code(data.parent, nil, true, true)
else
parent = Language
end
parent.__index = parent
local lang = {_code = input_code}
-- Ini hanya boleh berlaku jika dontCanonicalizeAliases dihantar kepada make_object().
if code ~= input_code then
lang._mainCode = code
end
local parent_data = parent._data
if parent_data == nil then
-- Kod penuh adalah sama seperti kod bahasa.
lang._fullCode = parent._code or code
else
-- Salin kod penuh.
lang._fullCode = parent._fullCode
local stack = get_stack(parent_data)
if stack == nil then
parent_data, stack = make_stack(parent_data)
end
-- Sisipkan data input sebagai lapisan teratas baharu bagi tindanan.
local n = stack[make_stack] + 1
data, stack[n], stack[make_stack] = parent_data, data, n
end
lang._data = data
return setmetatable(lang, parent)
end
make_object = export.makeObject
end
--[==[Mencari bahasa yang kodnya sepadan dengan yang dibekalkan. Jika ia wujud, ia mengembalikan objek <code class="nf">Language</code> yang mewakili bahasa tersebut. Sebaliknya, ia mengembalikan {{code|lua|nil}}, melainkan jika <code class="n">paramForError</code> diberikan, yang mana ralat akan dijana. Jika <code class="n">paramForError</code> bernilai {{code|lua|true}}, mesej ralat generik yang menyatakan kod tidak sah akan dijana; selain itu <code class="n">paramForError</code> sepatutnya rentetan atau nombor yang menyatakan parameter punca kod tersebut, dan parameter ini akan dinyatakan dalam mesej ralat bersama kod yang salah. Jika <code class="n">allowEtymLang</code> dinyatakan, kod bahasa khusus etimologi dibenarkan dan dicari bersama kod bahasa biasa. Jika <code class="n">allowFamily</code> dinyatakan, kod keluarga bahasa dibenarkan dan dicari bersama kod bahasa biasa.]==]
function export.getByCode(code, paramForError, allowEtymLang, allowFamily)
-- Jejaki penggunaan paramForError, bertujuan untuk membolehkannya dialih keluar akhirnya, kerana pengendalian ralat sepatutnya dilakukan oleh [[Module:parameters]], bukan di sini.
if paramForError ~= nil then
track("paramForError")
end
if type(code) ~= "string" then
local typ
if not code then
typ = "nil"
elseif check_object("language", true, code) then
typ = "objek bahasa"
elseif check_object("family", true, code) then
typ = "objek keluarga"
else
typ = type(code)
end
error("Fungsi getByCode menjangkakan rentetan sebagai hujah pertamanya, tetapi menerima " .. typ .. ".")
end
local m_data = load_data(languages_data_module)
if m_data.aliases[code] or m_data.track[code] then
track(code)
end
local norm_code = normalize_code(code)
-- Dapatkan data, menyemak bahasa khusus etimologi jika allowEtymLang ditetapkan.
local data = load_data(get_data_module_name(norm_code))[norm_code] or
allowEtymLang and load_data(etymology_languages_data_module)[norm_code]
-- Jika tiada data ditemui dan allowFamily ditetapkan, semak data keluarga. Jika data keluarga utama ditemui, bina objek menggunakan [[Module:families]] sebagai ganti, kerana objek keluarga mempunyai kaedah yang berbeza. Walau bagaimanapun, jika ia keluarga khusus etimologi, gunakan make_object dalam modul ini (yang mengendalikan pewarisan objek), dan kaedah khusus keluarga akan diwarisi daripada objek induk.
if data == nil and allowFamily then
data = load_data("Module:families/data")[norm_code]
if data ~= nil then
if data.parent == nil then
return make_family_object(norm_code, data)
elseif not allowEtymLang then
data = nil
end
end
end
local retval = code and data and make_object(code, data)
if not retval and paramForError then
require("Module:languages/errorGetBy").code(code, paramForError, allowEtymLang, allowFamily)
end
return retval
end
get_by_code = export.getByCode
--[==[Mencari bahasa yang nama kanoniknya (nama yang digunakan untuk mewakili bahasa tersebut di Wiktionary) atau nama lainnya sepadan dengan yang dibekalkan. Jika wujud, ia mengembalikan objek <code class="nf">Language</code> yang mewakili bahasa tersebut. Sebaliknya, ia mengembalikan {{code|lua|nil}}, melainkan <code class="n">paramForError</code> diberikan, yang mana ralat akan dijana. Jika <code class="n">allowEtymLang</code> dinyatakan, kod bahasa khusus etimologi dibenarkan dan dicari bersama kod bahasa biasa. Jika <code class="n">allowFamily</code> dinyatakan, kod keluarga bahasa dibenarkan dan dicari bersama kod bahasa biasa.
Nama kanonik bahasa mestilah sentiasa unik (adalah menjadi ralat bagi dua bahasa di Wiktionary berkongsi nama kanonik yang sama), jadi fungsi ini dijamin memberikan selebih-lebihnya satu hasil.
Fungsi ini dikuasakan oleh [[Module:languages/canonical names]], yang mengandungi pemetaan prapapar nama kanonik bahasa penuh kepada kod. Ia dijana dengan meneliti [[:Kategori:Modul data bahasa]] bagi bahasa penuh. Apabila <code class="n">allowEtymLang</code> dinyatakan untuk fungsi di atas, [[Module:etymology languages/canonical names]] juga boleh digunakan, dan apabila <code class="n">allowFamily</code> dinyatakan untuk fungsi di atas, [[Module:families/canonical names]] juga boleh digunakan.]==]
function export.getByCanonicalName(name, errorIfInvalid, allowEtymLang, allowFamily)
local byName = load_data("Module:languages/canonical names")
local code = byName and byName[name]
if not code and allowEtymLang then
byName = load_data("Module:etymology languages/canonical names")
code = byName and byName[name] or
byName[gsub(name, " [Ss]ubstrate$", "")] or
byName[gsub(name, "^a ", "")] or
byName[gsub(name, "^a ", ""):gsub(" [Ss]ubstrate$", "")] or
-- Untuk keluarga etimologi seperti "ira-pro".
-- AMARAN: Ini kurang ideal, kerana ia membenarkan " languages" dilampirkan pada mana-mana bahasa khusus etimologi juga.
byName[match(name, "^(.*) languages$")]
end
if not code and allowFamily then
byName = load_data("Module:families/canonical names")
code = byName[name] or byName[match(name, "^(.*) languages$")]
end
local retval = code and get_by_code(code, errorIfInvalid, allowEtymLang, allowFamily)
if not retval and errorIfInvalid then
require("Module:languages/errorGetBy").canonicalName(name, allowEtymLang, allowFamily)
end
return retval
end
--[==[Digunakan oleh [[Module:languages/data/2]] (dan lain-lain) serta [[Module:etymology languages/data]], [[Module:families/data]], [[Module:scripts/data]] dan [[Module:writing systems/data]] untuk memuktamadkan data ke dalam format yang sebenarnya dikembalikan.]==]
function export.finalizeData(data, main_type, variety)
local fields = {"type"}
if main_type == "language" then
insert(fields, 4) -- kod skrip
insert(fields, "ancestors")
insert(fields, "link_tr")
insert(fields, "override_translit")
insert(fields, "wikimedia_codes")
elseif main_type == "script" then
insert(fields, 3) -- kod sistem tulisan
end -- Keluarga dan sistem tulisan tidak mempunyai medan tambahan untuk diproses.
local fields_len = #fields
for _, entity in next, data do
if variety then
-- Pindahkan induk daripada 3 ke "parent" dan keluarga daripada "family" ke 3. Ini berbeza atas dasar kemudahan, memandangkan sangat sedikit variasi yang menyatakan keluarga, manakala kesemuanya mempunyai induk.
entity.parent, entity[3], entity.family = entity[3], entity.family
-- Berikan jenis "regular" jika dan hanya jika bukan variasi dan tiada jenis lain yang ditetapkan.
elseif not (entity.type or entity.parent) then
entity.type = "regular"
end
for i = 1, fields_len do
local key = fields[i]
local field = entity[key]
if field and type(field) == "string" then
entity[key] = gsub(field, "%s*,%s*", ",")
end
end
end
return data
end
--[==[Untuk keserasian ke belakang sahaja; modul sepatutnya memerlukan fail ralat itu sendiri.]==]
function export.err(lang_code, param, code_desc, template_tag, not_real_lang)
return require("Module:languages/error")(lang_code, param, code_desc, template_tag, not_real_lang)
end
return export
gb28wueurusqcd5ebllshh2a5swgwmm
373516
373478
2026-09-11T02:42:28Z
SNN95
2113
373516
Scribunto
text/plain
--[==[ intro:
Modul ini melaksanakan pengambilan maklumat khusus bahasa dan pemprosesan teks dalam bahasa yang diberikan.
===Jenis-jenis bahasa===
Terdapat dua jenis bahasa: bahasa penuh dan bahasa khusus etimologi. Perbezaan ketara ialah hanya bahasa penuh
yang muncul dalam tajuk L2 pada entri kosa kata, justeru kategori seperti [[:Kategori:Kata nama bahasa Perancis]] hanya
wujud untuk bahasa penuh. Bahasa khusus etimologi mempunyai sama ada bahasa penuh atau bahasa khusus etimologi yang
lain sebagai induknya (dalam erti pewarisan induk-anak), dan bagi bahasa khusus etimologi yang berindukkan bahasa
khusus etimologi yang lain, bahasa penuh sentiasa dapat diterbitkan dengan menuruti pautan induk ke atas. Contohnya,
"Perancis Kanada", kod `fr-CA`, ialah bahasa khusus etimologi yang berindukkan bahasa penuh "Perancis", kod `fr`.
Contoh bahasa khusus etimologi dengan induk khusus etimologi yang lain ialah "Inggeris Kuno Northumbria", kod `ang-nor`,
yang mempunyai "Inggeris Kuno Anglian", kod `ang-ang` sebagai induknya; ini ialah bahasa khusus etimologi yang induknya
ialah "Inggeris Kuno", kod `ang`, iaitu bahasa penuh. (Ini adalah kerana Inggeris Kuno Northumbria dianggap sebagai satu
variasi bagi Inggeris Kuno Anglian.) Kadangkala induknya ialah bahasa "Tidak Ditentukan", kod `und`; hal ini berlaku,
sebagai contoh, bagi bahasa-bahasa "substrat" seperti "Pra-Yunani", kod `qsb-grc`, dan "substrat BMAC", kod `qsb-bma`.
Adalah penting untuk membezakan ''induk'' bahasa daripada ''leluhur'' bahasa. Hubungan induk-anak ialah hubungan
pembendungan, iaitu jika X ialah anak kepada Y, X dianggap sebagai satu variasi bagi Y. Sebaliknya, hubungan
leluhur-keturunan ialah hubungan penurunan mengikut masa. Sebagai contoh, "Latin Klasik", kod `la-cla`, dan "Latin Akhir",
kod `la-lat`, kedua-duanya adalah bahasa khusus etimologi yang mempunyai "Latin", kod `la`, sebagai induknya, kerana
kedua-dua bahasa terdahulu merupakan variasi bagi bahasa Latin. Walau bagaimanapun, Latin Akhir *TIDAK* mempunyai
Latin Klasik sebagai induknya kerana Latin Akhir *bukan* variasi bagi Latin Klasik; sebaliknya, ia adalah keturunannya.
Sebenarnya terdapat medan `ancestors` berasingan yang digunakan untuk menyatakan hubungan leluhur-keturunan, dan
leluhur bagi Latin Akhir diberikan sebagai Latin Klasik. Perlu diambil perhatian juga bahawa kadangkala bahasa khusus
etimologi sebenarnya merupakan leluhur konseptual kepada bahasa induknya sendiri. Ini berlaku, misalnya, dengan
"Itali Kuno" (kod `roa-oit`), yang merupakan varian khusus etimologi bagi bahasa penuh "Itali" (kod `it`), dan dengan
"Latin Kuno" (kod `itc-ola`), yang merupakan varian khusus etimologi bagi Latin. Dalam kedua-dua kes, bahasa penuh
menyenaraikan varian khusus etimologi sebagai leluhur. Ini membolehkan sesuatu istilah Latin mewarisi daripada Latin Kuno
menggunakan templat {{tl|inh}} (di mana dalam templat ini, "pewarisan" merujuk kepada pewarisan keturunan/leluhur,
iaitu pewarisan mengikut garis masa, bukannya dalam erti induk-anak); begitu juga bagi bahasa Itali dan Itali Kuno.
Bahasa penuh terbahagi kepada tiga subjenis:
* {regular}: Ini menunjukkan bahasa penuh yang diperakui mengikut [[WT:CFI]] dan oleh itu dibenarkan dalam ruang nama
utama. Mungkin terdapat juga istilah yang direkonstruksi untuk bahasa tersebut, yang diletakkan dalam ruang
nama {Rekonstruksi} dan mesti diawali dengan tanda * untuk menunjukkan rekonstruksi. Kebanyakan bahasa penuh
ialah bahasa semula jadi (bukan bahasa buatan), namun beberapa bahasa buatan (cth. Esperanto dan Volapük,
antara lain) juga dibenarkan dalam ruang nama utama dan dianggap sebagai bahasa biasa.
* {reconstructed}: Bahasa ini tidak diperakui mengikut [[WT:CFI]], dan oleh itu hanya dibenarkan dalam ruang nama
{Rekonstruksi}. Semua istilah dalam bahasa ini adalah yang direkonstruksi, dan mesti diawali dengan
tanda *. Bahasa seperti Proto-Indo-Eropah dan Proto-Jermanik berada dalam kategori ini.
* {appendix-constructed}: Bahasa ini diperakui tetapi tidak memenuhi syarat tambahan yang ditetapkan untuk bahasa
buatan ([[WT:CFI#Constructed languages]]). Entrinya mestilah berada dalam ruang nama Lampiran,
tetapi ia tidak direkonstruksi dan oleh itu tidak sepatutnya diawali dengan tanda * dalam pautan.
Kebanyakan bahasa buatan tergolong dalam subjenis ini.
Kedua-dua bahasa penuh dan bahasa khusus etimologi mempunyai objek {Language} yang dikaitkan dengannya, yang diambil
menggunakan fungsi {getByCode} dalam [[Module:languages]] untuk menukar kod bahasa kepada objek {Language}. Bergantung
pada pilihan yang dibekalkan kepada fungsi ini, bahasa khusus etimologi mungkin diterima atau tidak, dan kod keluarga
mungkin diterima (mengembalikan objek {Family} seperti yang diterangkan dalam [[Module:families]]). Terdapat juga fungsi
{getByCanonicalName} yang berasingan dalam [[Module:languages]] dan [[Module:etymology languages]] untuk menukar nama
kanonik sesuatu bahasa kepada objek {Language} (bergantung pada sama ada nama kanonik merujuk kepada bahasa penuh atau
bahasa khusus etimologi).
===Perwakilan teks===
Rentetan teks yang tergolong dalam sesuatu bahasa hadir dalam beberapa ''varian teks'' yang berbeza:
# ''Teks input'' ialah teks yang dibekalkan oleh pengguna dalam teks wiki, dalam parameter kepada {{tl|m}}, {{tl|l}},
{{tl|ux}}, {{tl|t}}, {{tl|lang}} dan seumpamanya.
# ''Teks input yang diperbetul'' ialah teks input yang telah diterapkan beberapa pembetulan dan/atau penormalan,
seperti penggantian aksara lapuk atau salah bagi sesetengah bahasa, contohnya menggantikan `l` atau `1` kepada
[[palochka]] dalam beberapa bahasa yang ditulis dalam abjad Cyril. (AMARAN: Ini kini berjalan di bawah nama
''display text'' tetapi ia akan diubah peranannya di bawah. Selain itu, [[User:Surjection]] mencadangkan menamakan
semula ini sebagai ''normalized input text'', tetapi "normalized" digunakan dalam pengertian berbeza dalam [[Module:usex]].)
# ''Teks paparan'' ialah teks dalam bentuk sebagaimana yang akan dipaparkan kepada pengguna. Inilah yang muncul dalam
kata kepala, dalam contoh penggunaan (usex), dalam pautan dalaman yang dipaparkan, dsb. Ini boleh merangkumi tanda diakritik
yang dialih keluar untuk membentuk teks paparan jalur (lihat di bawah), serta pautan dalam kurungan bertanam yang
diproses selanjutnya melalui pelbagai kaedah. Teks paparan dijana daripada teks input yang diperbetul dengan menerapkan
penjelmaan khusus bahasa; untuk kebanyakan bahasa, tiada penjelmaan sedemikian. Sebab utama perbezaan antara teks input
dan teks paparan adalah untuk membolehkan maklumat tambahan dalam teks input yang tidak dipaparkan kepada pengguna tetapi
dihantar ke modul transliterasi. Ambil perhatian bahawa perbezaan paparan dan teks input buat masa ini hanya disokong
melalui pengendalian khas tetapi akan digeneralisasikan. Contoh transformasi ialah: (1) Mengalih keluar {{cd|^}} yang
digunakan dalam sesetengah bahasa Asia Timur (dan mungkin bahasa unikameral lain) untuk menandakan penulisan huruf besar
bagi transliterasi (yang pada masa ini dikendalikan secara khas); (2) untuk bahasa Korea, mengalih keluar atau memproses
tanda sempang (yang kini dikendalikan secara khas); (3) untuk bahasa Arab, mengalih keluar tanda diakritik ''sukun''
yang diletakkan di atas ''ta marbutah'' (seperti ini: ةْ) untuk menandakan bahawa ''ta marbutah'' dibunyikan dan
ditransliterasikan sebagai /t/ dan bukannya senyap [NOTA, BELUM DILAKSANAKAN]; (4) untuk bahasa Thai dan Khmer,
menukar perkataan yang dipisahkan ruang kepada perkataan berpasangan kurungan dan meleraikan penggantian ejaan semula
seperti `[กรีน/กฺรีน]`, yang menunjukkan cara mentransliterasikan perkataan yang diberikan [NOTA, BELUM DILAKSANAKAN
kecuali dalam templat khusus bahasa seperti {{tl|th-usex}}].
## ''Teks paparan leraian kanan'' ialah hasil daripada mengalih keluar tanda kurung pada pautan bertanam satu bahagian
dan meleraikan pautan bertanam dua bahagian kepada komponen sebelah kanannya (iaitu menukar pautan dua bahagian ke dalam
bentuk yang dipaparkan). Proses leraian kanan berlaku apabila anda memanggil fungsi {{cd|remove_links()}} dalam
[[Module:links]] pada sesuatu teks. Apabila diterapkan pada teks paparan, ia menghasilkan apa yang dilihat oleh
pengguna dengan tepat, tanpa sebarang penanda pautan.
# ''Teks paparan jalur'' ialah hasil daripada penerapan penanggalan tanda diakritik pada teks paparan.
## ''Teks paparan jalur leraian kiri'' [PERLU NAMA LEBIH BAIK] ialah hasil daripada penerapan leraian kiri pada teks
paparan jalur, iaitu serupa dengan leraian kanan tetapi meleraikan pautan bertanam dua bahagian kepada komponen
sebelah kirinya (iaitu halaman sasaran pautan). Jika teks paparan merujuk kepada satu halaman sahaja, hasil daripada
menerapkan penanggalan tanda diakritik dan leraian kiri akan menghasilkan ''nama halaman logik''.
# ''Teks nama halaman fizikal'' ialah hasil daripada penukaran teks paparan jalur kepada pautan halaman fizikal. Jika teks
paparan jalur mengandungi pautan bertanam, sebelah kiri pautan tersebut ditukar menjadi pautan halaman fizikal; jika
tidak, keseluruhan teks dianggap sebagai nama halaman dan ditukar dengan cara yang sama. Penukaran melakukan tiga perkara:
(1) menukar aksara yang tidak dibenarkan dalam nama halaman kepada perwakilan "tajuk tidak disokong", cth.
{{cd|Unsupported titles/`gt`}} menggantikan nama logik {{cd|>}}; (2) mengendalikan nama halaman logik tajuk tidak
disokong yang dikendalikan khas, seperti {{cd|Unsupported titles/Space}} menggantikan {{cd|[space]}} dan
{{cd|Unsupported titles/Ancient Greek dish}} menggantikan nama Yunani yang sangat panjang untuk hidangan gourmet
seperti yang terdapat dalam Aristophanes; (3) menukar nama halaman "gergasi" seperti [[a]] kepada komponen pisahan yang
sesuai, cth. [[a/languages A to L]].
# ''Teks transliterasi sumber'' ialah teks seperti yang dibekalkan kepada kaedah {{cd|transliterate()}} khusus bahasa. Bentuk
teks transliterasi sumber mungkin perlu khusus mengikut bahasa, cth. bahasa Thai dan Khmer memerlukan teks input yang
diperbetul, manakala bahasa lain mungkin perlu beroperasi daripada teks paparan. [AMARAN: Masih belum jelas bagaimana
pautan bertanam dalam tanda kurung dikendalikan dalam kod sedia ada.] Secara umumnya, pautan bertanam perlu dileraikan ke kanan
(lihat di atas), namun waktu proses ini berlaku masih belum jelas [AMARAN]. Sesetengah bahasa mempunyai skim potong-dan-cantum
yang menghantar bahagian teks melalui mekanisme transliterasi, dan untuk bahasa lain (yang disenaraikan dengan "cont"
dalam {{cd|substitution}} dalam [[Module:languages/data]]) ia menerima keseluruhan teks input tetapi telah dipraproses
melalui cara tertentu. (Kesesuaian kaedah ini masih belum jelas.)
# ''Teks transliterasi'' (atau ''transliterasi'') ialah hasil daripada mentransliterasikan teks transliterasi sumber.
Tidak seperti semua varian teks yang lain kecuali teks transkripsi, ia sentiasa berada dalam skrip Rumi (Latin).
# ''Teks transkripsi'' (atau ''transkripsi'') ialah hasil daripada mentranskripsikan teks transliterasi sumber, di mana
"transkripsi" di sini bermaksud anggaran yang hampir dengan bentuk fonetik bahasa dalam bahasa-bahasa (cth. Akkadia,
Sumeria, Mesir Purba, barangkali Tibet) yang mempunyai perbezaan ketara antara huruf bertulis dan bentuk pertuturan.
Tidak seperti semua varian teks lain selain teks transliterasi, ia sentiasa berada dalam skrip Rumi (Latin). Pada masa
ini, teks transkripsi sentiasa dibekalkan secara manual oleh pengguna; tiada kaedah {{cd|transcribe()}} pada objek bahasa.
# ''Kunci isih'' ialah teks yang digunakan dalam kunci isihan untuk menentukan kedudukan susunan halaman dalam kategori
yang disertainya. Kunci isih dijana daripada nama halaman atau ''asas isih'' tertentu dengan menukarkannya kepada huruf
kecil, melakukan penjelmaan khusus bahasa dan kemudian menukarkan hasilnya kepada huruf besar. Sekiranya asas isih
dibekalkan dan dijana daripada teks input, ia perlu ditukar kepada teks paparan, pautan bertanam dialih keluar melalui
leraian kanan dan penanggalan tanda diakritik diterapkan.
# Terdapat varian teks lain yang berlaku dalam contoh penggunaan / usex (khususnya, terdapat varian ternormal bagi
beberapa varian teks di atas), tetapi kita boleh melangkau bahagian tersebut buat masa ini.
Kaedah-kaedah berikut wujud pada objek {Language} untuk menukar antara varian teks yang berbeza:
# {correctInputText} (kini dipanggil {makeDisplayText}): Ini menukar teks input kepada teks input yang diperbetul.
# {stripDiacritics}: Ini menukar kepada teks paparan jalur. [AMARAN: Ini memerlukan penelitian semula. Khususnya,
{stripDiacritics} kadangkala dipanggil pada teks input, teks input yang diperbetul atau teks paparan (dalam pelbagai
laluan di dalam [[Module:links]], dan, dalam kes teks input, biasanya daripada modul lain). Kita perlu memastikan kita
tidak cuba menukar teks input kepada teks paparan sebanyak dua kali, namun pada masa yang sama kita perlu menyokong
panggilan terus padanya bagi teks input memandangkan banyak modul berbuat demikian. Ini bermakna kita perlu menambah
parameter yang menandakan sama ada teks yang dimasukkan ialah teks input, teks input yang diperbetul, atau teks paparan;
jika dua yang pertama, kita memanggil {correctInputText} secara automatik.]
# {logicalToPhysical}: Ini menukar nama halaman logik kepada nama halaman fizikal.
# {transliterate}: Ini berfungsi menukar teks input dengan tanda kurung bertanam yang dialih keluar kepada transliterasi.
[AMARAN: Ini memerlukan penelitian semula. Khususnya, ia memanggil {processDisplayText} pada inputnya, yang tidak akan
berfungsi untuk bahasa Thai dan Khmer, jadi kita mungkin memerlukan bendera khusus bahasa yang menandakan sama ada
untuk menghantar teks input secara terus kepada kaedah transliterasi bahasa. Selain itu, saya tidak pasti bagaimana
pautan bertanam dikendalikan dalam kod transliterasi sedia ada; banyak pemanggil mengalih keluar pautan sendiri sebelum
memanggil {transliterate()}, yang saya anggap kurang tepat.]
# {makeSortKey}: Ini menukar teks paparan (?) kepada kunci isih. [AMARAN: Perlu perjelasan.]
]==]
local export = {}
local debug_track_module = "Module:debug/track"
local etymology_languages_data_module = "Module:etymology languages/data"
local families_module = "Module:families"
local headword_page_module = "Module:headword/page"
local json_module = "Module:JSON"
local language_like_module = "Module:language-like"
local languages_data_module = "Module:languages/data"
local languages_data_patterns_module = "Module:languages/data/patterns"
local links_data_module = "Module:links/data"
local load_module = "Module:load"
local scripts_module = "Module:scripts"
local scripts_data_module = "Module:scripts/data"
local string_encode_entities_module = "Module:string/encode entities"
local string_pattern_escape_module = "Module:string/patternEscape"
local string_replacement_escape_module = "Module:string/replacementEscape"
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
local utilities_module = "Module:utilities"
local wikimedia_languages_module = "Module:wikimedia languages"
local mw = mw
local string = string
local table = table
local char = string.char
local concat = table.concat
local find = string.find
local floor = math.floor
local get_by_code -- Ditakrifkan di bawah.
local get_data_module_name -- Ditakrifkan di bawah.
local get_extra_data_module_name -- Ditakrifkan di bawah.
local getmetatable = getmetatable
local gmatch = string.gmatch
local gsub = string.gsub
local insert = table.insert
local ipairs = ipairs
local is_known_language_tag = mw.language.isKnownLanguageTag
local make_object -- Ditakrifkan di bawah.
local match = string.match
local next = next
local pairs = pairs
local remove = table.remove
local require = require
local select = select
local setmetatable = setmetatable
local sub = string.sub
local type = type
local unstrip = mw.text.unstrip
-- Dimuatkan mengikut keperluan oleh findBestScript.
local Hans_chars
local Hant_chars
local function check_object(...)
check_object = require(utilities_module).check_object
return check_object(...)
end
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function decode_entities(...)
decode_entities = require(string_utilities_module).decode_entities
return decode_entities(...)
end
local function decode_uri(...)
decode_uri = require(string_utilities_module).decode_uri
return decode_uri(...)
end
local function deep_copy(...)
deep_copy = require(table_module).deepCopy
return deep_copy(...)
end
local function encode_entities(...)
encode_entities = require(string_encode_entities_module)
return encode_entities(...)
end
local function get_L2_sort_key(...)
get_L2_sort_key = require(headword_page_module).get_L2_sort_key
return get_L2_sort_key(...)
end
local function get_script(...)
get_script = require(scripts_module).getByCode
return get_script(...)
end
local function find_best_script_without_lang(...)
find_best_script_without_lang = require(scripts_module).findBestScriptWithoutLang
return find_best_script_without_lang(...)
end
local function get_family(...)
get_family = require(families_module).getByCode
return get_family(...)
end
local function get_plaintext(...)
get_plaintext = require(utilities_module).get_plaintext
return get_plaintext(...)
end
local function get_wikimedia_lang(...)
get_wikimedia_lang = require(wikimedia_languages_module).getByCode
return get_wikimedia_lang(...)
end
local function keys_to_list(...)
keys_to_list = require(table_module).keysToList
return keys_to_list(...)
end
local function list_to_set(...)
list_to_set = require(table_module).listToSet
return list_to_set(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function make_family_object(...)
make_family_object = require(families_module).makeObject
return make_family_object(...)
end
local function pattern_escape(...)
pattern_escape = require(string_pattern_escape_module)
return pattern_escape(...)
end
local function replacement_escape(...)
replacement_escape = require(string_replacement_escape_module)
return replacement_escape(...)
end
local function safe_require(...)
safe_require = require(load_module).safe_require
return safe_require(...)
end
local function shallow_copy(...)
shallow_copy = require(table_module).shallowCopy
return shallow_copy(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function to_json(...)
to_json = require(json_module).toJSON
return to_json(...)
end
local function u(...)
u = require(string_utilities_module).char
return u(...)
end
local function ugsub(...)
ugsub = require(string_utilities_module).gsub
return ugsub(...)
end
local function ulen(...)
ulen = require(string_utilities_module).len
return ulen(...)
end
local function ulower(...)
ulower = require(string_utilities_module).lower
return ulower(...)
end
local function umatch(...)
umatch = require(string_utilities_module).match
return umatch(...)
end
local function uupper(...)
uupper = require(string_utilities_module).upper
return uupper(...)
end
local function track(page)
debug_track("languages/" .. page)
return true
end
local function normalize_code(code)
return load_data(languages_data_module).aliases[code] or code
end
local function check_inputs(self, check, default, ...)
local n = select("#", ...)
if n == 0 then
return false
end
local ret = check(self, (...))
if ret ~= nil then
return ret
elseif n > 1 then
local inputs = {...}
for i = 2, n do
ret = check(self, inputs[i])
if ret ~= nil then
return ret
end
end
end
return default
end
local function make_link(self, target, display)
local prefix, main
if self:getFamilyCode() == "qfa-sub" then
prefix, main = display:match("^(the )(.*)")
if not prefix then
prefix, main = display:match("^(a )(.*)")
end
end
return (prefix or "") .. "[[" .. target .. "|" .. (main or display) .. "]]"
end
-- Menukar aksara berisiko kepada entiti HTML, yang meminimumkan gangguan setelah dikembalikan (cth. untuk "sms:a", "<!-- -->" dsb.).
local function escape_risky_characters(text)
-- Aksara penjarakan secara berasingan secara amnya perlu dilepaskan untuk diproses dengan betul oleh perisian MediaWiki.
if umatch(text, "^%s*$") then
return encode_entities(text, text)
end
return encode_entities(text, "!#%&*+/:;<=>?@[\\]_{|}")
end
-- Menukar pelbagai aksara pemformatan kepada PUA buat sementara waktu bagi mengelakkannya terganggu oleh proses penggantian.
local function doTempSubstitutions(text, subbedChars, keepCarets, noTrim)
-- Klon supaya kita tidak menyelitkan sebarang corak tambahan ke dalam jadual dalam package.loaded. Atas sebab tertentu, penggunaan require dilihat dapat mengekalkan penggunaan memori yang rendah; mungkin kerana jadual sentiasa diklon.
local patterns = shallow_copy(require(languages_data_patterns_module))
if keepCarets then
insert(patterns, "((\\+)%^)")
insert(patterns, "((%^))")
end
-- Memastikan sebarang ruang putih pada permulaan dan penghujung digantikan sementara, untuk mengelakkannya daripada dipangkas secara tidak sengaja. Kita hanya mahu memangkas sebarang ruang akhir yang ditambah semasa proses penggantian (cth. oleh modul), yang bermaksud kita hanya melakukan ini semasa pusingan pertama penggantian sementara.
if not noTrim then
insert(patterns, "^([\128-\191\244]*(%s+))")
insert(patterns, "((%s+)[\128-\191\244]*)$")
end
-- Pra-penggantian bagi "[[" dan "]]", yang menjadikan pemadanan corak lebih tepat.
text = gsub(text, "%f[%[]%[%[", "\1"):gsub("%f[%]]%]%]", "\2")
local i = #subbedChars
for _, pattern in ipairs(patterns) do
-- Corak yang berakhir dengan \0 adalah untuk perkara seperti "[[" atau "]]"), jadi PUA yang diselitkan dianggap sebagai pemisah antara istilah oleh modul yang mengikis maklumat daripada halaman.
local term_divider
pattern = gsub(pattern, "%z$", function(divider)
term_divider = divider == "\0"
return ""
end)
text = gsub(text, pattern, function(...)
local m = {...}
local m1New = m[1]
for k = 2, #m do
local n = i + k - 1
subbedChars[n] = m[k]
local byte2 = floor(n / 4096) % 64 + (term_divider and 128 or 136)
local byte3 = floor(n / 64) % 64 + 128
local byte4 = n % 64 + 128
m1New = gsub(m1New, pattern_escape(m[k]), "\244" .. char(byte2) .. char(byte3) .. char(byte4), 1)
end
i = i + #m - 1
return m1New
end)
end
text = gsub(text, "\1", "%[%["):gsub("\2", "%]%]")
return text, subbedChars
end
-- Menyisip semula sebarang pemformatan yang digantikan buat sementara waktu.
local function undoTempSubstitutions(text, subbedChars)
for i = 1, #subbedChars do
local byte2 = floor(i / 4096) % 64 + 128
local byte3 = floor(i / 64) % 64 + 128
local byte4 = i % 64 + 128
text = gsub(text, "\244[" .. char(byte2) .. char(byte2+8) .. "]" .. char(byte3) .. char(byte4),
replacement_escape(subbedChars[i]))
end
text = gsub(text, "\1", "%[%["):gsub("\2", "%]%]")
return text
end
-- Menyemak sama ada teks mentah ialah tajuk yang tidak disokong, dan jika ya kembalikannya. Jika tidak, alih keluar entiti HTML. Kita melakukan pra-penukaran untuk mengelakkan pemuatan senarai tajuk tidak disokong tanpa keperluan.
local function checkNoEntities(self, text)
local textNoEnc = decode_entities(text)
if textNoEnc ~= text and load_data(links_data_module).unsupported_titles[text] then
return text
else
return textNoEnc
end
end
-- Jika tiada objek skrip disediakan (atau jika tidak sah atau None), dapatkan satu.
local function checkScript(text, self, sc)
if not check_object("script", true, sc) or sc:getCode() == "None" then
return self:findBestScript(text)
end
return sc
end
local function normalize(text, sc)
text = sc:fixDiscouragedSequences(text)
return sc:toFixedNFD(text)
end
-- Subfungsi bagi iterateSectionSubstitutions(). Memproses bahagian teks individu mengikut spesifikasi dalam
-- `substitution_data`. Parameter input adalah seperti dalam dokumentasi iterateSectionSubstitutions() kecuali untuk
-- `recursed`, yang ditetapkan kepada true jika kita memanggil diri sendiri secara rekursif untuk memproses tetapan
-- khusus skrip atau sandaran seluruh skrip. Mengembalikan dua nilai: teks yang diproses dan data penggantian sebenar yang digunakan untuk melakukan penggantian (sama seperti nilai pulangan `actual_substitution_data` kepada iterateSectionSubstitutions()).
local function doSubstitutions(self, text, sc, substitution_data, data_field, function_name, recursed)
-- BERHATI-HATI dalam fungsi ini kerana nilai pada mana-mana peringkat boleh bernilai `false`, yang menyebabkan tiada pemprosesan dilakukan
-- dan menyekat sebarang pemprosesan sandaran selanjutnya.
local actual_substitution_data = substitution_data
-- Jika terdapat pengganti khusus bahasa yang diberikan dalam modul data, gunakannya.
if type(substitution_data) == "table" then
-- Jika skrip dinyatakan, jalankan fungsi ini dengan data khusus skrip sebelum meneruskan.
local sc_code = sc:getCode()
local has_substitution_data = false
if substitution_data[sc_code] ~= nil then
has_substitution_data = true
if substitution_data[sc_code] then
text, actual_substitution_data = doSubstitutions(self, text, sc, substitution_data[sc_code], data_field,
function_name, true)
end
-- Hant, Hans dan Hani biasanya dilayan sama, jadi tambah kes khas untuk mengelakkan daripada menyatakan setiap satu
-- secara berasingan.
elseif sc_code:match("^Han") and substitution_data.Hani ~= nil then
has_substitution_data = true
if substitution_data.Hani then
text, actual_substitution_data = doSubstitutions(self, text, sc, substitution_data.Hani, data_field,
function_name, true)
end
-- Data penggantian dengan kunci 1 dalam jadual luar boleh diberikan sebagai sandaran.
elseif substitution_data[1] ~= nil then
has_substitution_data = true
if substitution_data[1] then
text, actual_substitution_data = doSubstitutions(self, text, sc, substitution_data[1], data_field,
function_name, true)
end
end
-- Mengulangi semua rentetan dalam subjadual "from", dan lakukan gsub dengan rentetan sepadan dalam "to". Kita bekerja dengan
-- bentuk terurai NFD, kerana ini memudahkan banyak penggantian.
if substitution_data.from then
has_substitution_data = true
for i, from in ipairs(substitution_data.from) do
-- Menormalkan setiap gelung, untuk memastikan penggantian pelbagai peringkat berfungsi dengan betul.
text = sc:toFixedNFD(text)
text = ugsub(text, sc:toFixedNFD(from), substitution_data.to[i] or "")
end
end
if substitution_data.remove_diacritics then
has_substitution_data = true
text = sc:toFixedNFD(text)
-- Menukar pengecualian kepada PUA.
local remove_exceptions, substitutes = substitution_data.remove_exceptions
if remove_exceptions then
substitutes = {}
local i = 0
for _, exception in ipairs(remove_exceptions) do
exception = sc:toFixedNFD(exception)
text = ugsub(text, exception, function(m)
i = i + 1
local subst = u(0x80000 + i)
substitutes[subst] = m
return subst
end)
end
end
-- Menanggalkan tanda diakritik.
text = ugsub(text, "[" .. substitution_data.remove_diacritics .. "]", "")
-- Menukar pengecualian kembali.
if remove_exceptions then
text = text:gsub("\242[\128-\191]*", substitutes)
end
end
if not has_substitution_data and sc._data[data_field] then
-- Jika kunci isih khusus bahasa (dsb.) adalah nil, kembali kepada kunci isih seluruh skrip (dsb.).
text, actual_substitution_data = doSubstitutions(self, text, sc, sc._data[data_field], data_field,
function_name, true)
end
elseif type(substitution_data) == "string" then
-- Jika terdapat modul fungsi khusus, gunakannya.
local module = safe_require("Module:" .. substitution_data)
if module then
-- TODO: fungsi translit sepatutnya menerima objek, bukan kod.
-- TODO: fungsi translit sepatutnya dipanggil dengan bentuk NFD.
if function_name == "tr" then
if not module[function_name] then
error(("Ralat dalaman: Modul [[%s]] tidak mempunyai fungsi bernama 'tr'"):format(substitution_data))
end
text = module[function_name](text, self._code, sc:getCode())
elseif function_name == "stripDiacritics" then
-- AMARAN: buang cabang ini selepas menamakan semula makeEntryName -> stripDiacritics.
if module[function_name] then
text = module[function_name](sc:toFixedNFD(text), self, sc)
elseif module.makeEntryName then
text = module.makeEntryName(sc:toFixedNFD(text), self, sc)
else
error(("Ralat dalaman: Modul [[%s]] tidak mempunyai fungsi bernama 'stripDiacritics' atau 'makeEntryName'"
):format(substitution_data))
end
else
if not module[function_name] then
error(("Ralat dalaman: Modul [[%s]] tidak mempunyai fungsi bernama '%s'"):format(
substitution_data, function_name))
end
text = module[function_name](sc:toFixedNFD(text), self, sc)
end
else
error("Data penggantian '" .. substitution_data .. "' tidak sepadan dengan modul sedia ada.")
end
elseif substitution_data == nil and sc._data[data_field] then
-- Jika kunci isih khusus bahasa (dsb.) adalah nil, kembali kepada kunci isih seluruh skrip (dsb.).
text, actual_substitution_data = doSubstitutions(self, text, sc, sc._data[data_field], data_field,
function_name, true)
end
-- Jangan normalkan kepada NFC jika ini ialah gelung dalaman atau jika modul mengembalikan nil.
if recursed or not text then
return text, actual_substitution_data
end
-- Memperbetul sebarang urutan yang tidak digalakkan yang terhasil semasa proses penggantian, dan normalkan ke dalam bentuk akhir.
return sc:toFixedNFC(sc:fixDiscouragedSequences(text)), actual_substitution_data
end
-- Memecahkan teks kepada beberapa bahagian berdasarkan kehadiran aksara pemformatan yang digantikan sementara, kemudian mengulangi
-- setiap bahagian untuk menerapkan penggantian (cth. transliterasi atau penanggalan tanda diakritik). Ini mengelakkan aksara PUA
-- daripada melalui modul khusus bahasa yang mungkin tidak dilengkapi untuk mengendalikannya. Fungsi ini menerima nilai-nilai berikut:
-- * `self` (objek Language);
-- * `text` (teks untuk diproses);
-- * `sc` (skrip teks, yang mesti dinyatakan; pemanggil perlu memanggil checkScript() mengikut keperluan untuk mengesan secara automatik
-- skrip teks jika tidak diberikan secara jelas oleh pengguna);
-- * `subbedChars` (tatasusunan yang sama panjang dengan teks, menunjukkan aksara mana yang telah digantikan dan dengan apa,
-- atau {nil} jika tiada penggantian dilakukan);
-- * `keepCarets` (DOKUMENKAN SAYA);
-- * `substitution_data` (data yang menunjukkan penggantian mana yang perlu diterapkan, diambil terus daripada `data_field` dalam
-- struktur data bahasa dalam submodul [[Module:languages/data]]);
-- * `data_field` (medan data tempat `substitution_data` diambil, seperti "sort_key" atau "strip_diacritics");
-- * `function_name` (nama fungsi yang perlu dipanggil untuk melakukan penggantian, sekiranya `substitution_data` menyatakan
-- modul untuk melakukan penggantian);
-- * `notrim` (jangan pangkas ruang putih pada tepi `text`; ditetapkan semasa mengira kunci isih, kerana ruang putih pada
-- permulaan kunci isih adalah bermakna dan menyebabkan halaman yang terhasil disusun di bahagian awal kategori yang disertainya).
-- Mengembalikan tiga nilai:
-- (1) teks yang diproses;
-- (2) nilai `subbedChars` yang dimasukkan, mungkin diubah suai dengan penggantian aksara tambahan; akan bernilai {nil}
-- jika {nil} dimasukkan;
-- (3) data penggantian sebenar yang digunakan untuk menerapkan penggantian pada `text`; ini mungkin berbeza daripada nilai
-- `substitution_data` yang dimasukkan jika nilai itu secara rekursif menyatakan penggantian khusus skrip atau jika tiada
-- data penggantian ditemui dalam data khusus bahasa (cth. {nil} dimasukkan atau struktur dimasukkan yang tidak mempunyai
-- tetapan untuk skrip yang diberikan dalam `sc`), tetapi nilai sandaran seluruh skrip ditetapkan; buat masa ini ia
-- hanya digunakan oleh makeSortKey().
local function iterateSectionSubstitutions(self, text, sc, subbedChars, keepCarets, substitution_data, data_field,
function_name, notrim)
local sections
-- Lihat [[Module:languages/data]].
if not find(text, "\244") or load_data(languages_data_module).substitution[self._code] == "cont" then
sections = {text}
else
sections = split(text, "\244[\128-\143][\128-\191]*", true)
end
local actual_substitution_data
for _, section in ipairs(sections) do
-- Abaikan rentetan kosong atau ruang putih (yang mungkin juga tidak dikendalikan dengan baik oleh modul khusus).
if gsub(section, "%s+", "") ~= "" then
local sub, this_actual_substitution_data = doSubstitutions(self, section, sc, substitution_data, data_field,
function_name)
actual_substitution_data = this_actual_substitution_data
-- Pusingan kedua penggantian sementara, sekiranya terdapat sebarang pemformatan yang ditambah oleh proses penggantian
-- utama. Walau bagaimanapun, jangan lakukan ini jika bahagian tersebut sudah mengandungi pemformatan (kerana ia sepatutnya
-- telah dilepaskan untuk sampai ke peringkat ini, dan oleh itu harus diberikan sebagai teks mentah).
if sub and subbedChars then
local noSub
for _, pattern in ipairs(require(languages_data_patterns_module)) do
if match(section, pattern .. "%z?") then
noSub = true
end
end
if not noSub then
sub, subbedChars = doTempSubstitutions(sub, subbedChars, keepCarets, true)
end
end
if not sub then
text = sub
break
end
text = sub and gsub(text, pattern_escape(section), replacement_escape(sub), 1) or text
end
end
if not notrim then
-- Pangkas, melainkan hanya terdapat aksara ruang, sambil mengabaikan sebarang aksara pemformatan akhir.
-- Jangan pangkas kunci isih kerana ruang pada permulaan adalah bermakna.
text = text and text:gsub("^([\128-\191\244]*)%s+(%S)", "%1%2"):gsub("(%S)%s+([\128-\191\244]*)$", "%1%2") or
nil
end
return text, subbedChars, actual_substitution_data
end
-- Memproses tanda sisip (caret) (dan sebarang pelepasan). Lalai kepada penyingkiran mudah, jika tiada corak/penggantian diberikan.
local function processCarets(text, pattern, repl)
local rep
repeat
text, rep = gsub(text, "\\\\(\\*^)", "\3%1")
until rep == 0
return (text:gsub("\\^", "\4")
:gsub(pattern or "%^", repl or "")
:gsub("\3", "\\")
:gsub("\4", "^"))
end
-- Mengalih keluar tanda sisip jika ia digunakan untuk menulis huruf besar pada bahagian transliterasi (melainkan ia telah dilepaskan).
local function removeCarets(text, sc)
if not sc:hasCapitalization() and sc:isTransliterated() and text:find("^", 1, true) then
return processCarets(text)
else
return text
end
end
local Language = {}
--[==[Mengembalikan kod bahasa bagi sesuatu bahasa. Contoh: {{code|lua|"fr"}} untuk bahasa Perancis.]==]
function Language:getCode()
return self._code
end
--[==[Mengembalikan nama kanonik bahasa. Ini ialah nama yang digunakan untuk mewakili bahasa tersebut di Wiktionary, dan dijamin unik untuk bahasa itu sahaja. Contoh: {{code|lua|"French"}} untuk bahasa Perancis.]==]
function Language:getCanonicalName()
local name = self._name
if name == nil then
name = self._data[1]
self._name = name
end
return name
end
--[==[
Mengembalikan bentuk paparan bagi bahasa. Bentuk paparan bahasa, keluarga atau skrip ialah bentuk yang diambil apabila
muncul sebagai <code><var>source</var></code> dalam kategori seperti <code>Istilah bahasa Inggeris yang diterbitkan daripada
<var>source</var></code> atau <code>Nama khas bahasa Inggeris daripada <var>source</var></code>, dan juga merupakan teks paparan
dalam pautan {makeCategoryLink()}. Bagi bahasa penuh dan bahasa khusus etimologi, bentuk ini adalah sama seperti nama kanonik, tetapi
bagi keluarga bahasa, ia ditulis sebagai <code>"bahasa-bahasa <var>nama</var>"</code> (cth. {"bahasa-bahasa Indo-Iran"}), dan bagi skrip,
ia ditulis sebagai <code>"skrip <var>nama</var>"</code> (cth. {"skrip Arab"}).
]==]
function Language:getDisplayForm()
local form = self._displayForm
if form == nil then
form = self:getCanonicalName()
-- Tambah kata sandang dan " substrat" pada substrat yang memerlukannya.
if self:getFamilyCode() == "qfa-sub" then
if not (sub(form, 1, 4) == "the " or sub(form, 1, 2) == "a ") then
form = "a " .. form
end
if not match(form, " [Ss]ubstrate") then
form = form .. " substrate"
end
end
self._displayForm = form
end
return form
end
--[==[Mengembalikan nilai yang sepatutnya digunakan dalam atribut lang= HTML untuk teks bertag dalam bahasa berkenaan.]==]
function Language:getHTMLAttribute(sc, region)
local code = self._code
if not find(code, "-", 1, true) then
return code .. "-" .. sc:getCode() .. (region and "-" .. region or "")
end
local parent = self:getParent()
region = region or match(code, "%f[%u][%u-]+%f[%U]")
if parent then
return parent:getHTMLAttribute(sc, region)
end
-- TODO: Kod keluarga ISO juga boleh digunakan.
return "mis-" .. sc:getCode() .. (region and "-" .. region or "")
end
--[==[Mengembalikan jadual alias yang diketahui untuk bahasa tersebut, tidak termasuk nama kanonik. Alias ialah sinonim bagi bahasa yang dipersoalkan. Nama tidak dijamin unik, di mana kadangkala lebih daripada satu bahasa dikenali dengan nama yang sama. Contoh: {{code|lua|{"High German", "New High German", "Deutsch"} }} untuk [[:Kategori:Bahasa Jerman|Bahasa Jerman]].]==]
function Language:getAliases()
self:loadInExtraData()
return require(language_like_module).getAliases(self)
end
--[==[
Mengembalikan jadual subvariasi yang diketahui bagi sesuatu bahasa, tidak termasuk subvariasi yang telah diberikan
kod bahasa khusus etimologi yang jelas. Nama tidak dijamin unik, di mana kadangkala nama tertentu merujuk kepada
subvariasi lebih daripada satu bahasa. Contoh: {{code|lua|{"Aymara Selatan", "Aymara Tengah"} }} untuk
[[:Kategori:Bahasa Aymara|Bahasa Aymara]]. Ambil perhatian bahawa nilai yang dikembalikan boleh mengandungi jadual bersarang,
apabila subvariasi dikenali dengan lebih daripada satu nama. Contoh: {{code|lua|{"Azerbaijan Utara", "Azerbaijan Selatan",
{"Afshar", "Afshari", "Azerbaijan Afshar", "Afchar"}, {"Qashqa'i", "Qashqai", "Kashkay"}, "Sonqor"} }} untuk
[[:Kategori:Bahasa Azerbaijan|Bahasa Azerbaijan]]. Di sini, contohnya, Afshar, Afshari, Azerbaijan Afshar dan Afchar
kesemuanya merujuk kepada subvariasi yang sama, dengan nama pilihan ialah Afshar (yang disenaraikan pertama). Untuk mengelakkan
nilai pulangan yang mengandungi jadual bersarang, nyatakan nilai bukan {{code|lua|nil}} untuk parameter <code>flatten</code>;
dalam kes tersebut, nilai yang dikembalikan adalah {{code|lua|{"Azerbaijan Utara", "Azerbaijan Selatan", "Afshar", "Afshari",
"Azerbaijan Afshar", "Afchar", "Qashqa'i", "Qashqai", "Kashkay", "Sonqor"} }}.
]==]
function Language:getVarieties(flatten)
self:loadInExtraData()
return require(language_like_module).getVarieties(self, flatten)
end
--[==[Mengembalikan jadual "nama lain" yang diketahui bagi bahasa tersebut, yang disenaraikan dalam medan <code>otherNames</code>. Perlu dinyatakan bahawa medan <code>otherNames</code> itu sendiri telah lapuk, dan entri yang disenaraikan di situ akhirnya perlu dipindahkan ke sama ada <code>aliases</code> atau <code>varieties</code>.]==]
function Language:getOtherNames() -- Akan dialih keluar akhirnya, setelah tiada lagi penggunaan medan `otherNames`.
self:loadInExtraData()
return require(language_like_module).getOtherNames(self)
end
--[==[
Mengembalikan gabungan jadual bagi nama kanonik, alias, variasi dan nama lain bagi bahasa yang diberikan.]==]
function Language:getAllNames()
self:loadInExtraData()
return require(language_like_module).getAllNames(self)
end
--[==[Mengembalikan jadual jenis sebagai jadual carian (dengan jenis sebagai kunci).
Jenis-jenis yang mungkin ialah:
* {language}: Ini ialah bahasa, sama ada penuh atau khusus etimologi.
* {full}: Ini ialah bahasa "penuh" (bukan khusus etimologi), iaitu gabungan {regular}, {reconstructed} dan
{appendix-constructed}. Ambil perhatian bahawa jenis {full} dan {etymology-only} juga wujud untuk keluarga bahasa,
jadi jika anda ingin menyemak secara khusus bagi bahasa penuh dan anda mempunyai objek yang mungkin merupakan keluarga,
anda harus menggunakan {{lua|hasType("language", "full")}} dan bukan sekadar {{lua|hasType("full")}}.
* {etymology-only}: Ini ialah bahasa khusus etimologi (bukan penuh), yang induknya merupakan bahasa khusus etimologi lain
atau bahasa penuh. Ambil perhatian bahawa jenis {full} dan {etymology-only} juga wujud untuk keluarga bahasa,
jadi jika anda ingin menyemak secara khusus bagi bahasa khusus etimologi dan anda mempunyai objek yang mungkin
merupakan keluarga, anda harus menggunakan {{lua|hasType("language", "etymology-only")}} dan bukan sekadar
{{lua|hasType("etymology-only")}}.
* {regular}: Ini menunjukkan bahasa penuh yang diperakui mengikut [[WT:CFI]] dan oleh itu dibenarkan dalam ruang nama
utama. Mungkin terdapat juga istilah yang direkonstruksi untuk bahasa tersebut, yang diletakkan dalam ruang nama
{Rekonstruksi} dan mesti diawali dengan tanda * untuk menunjukkan rekonstruksi. Kebanyakan bahasa penuh ialah
bahasa semula jadi (bukan bahasa buatan), namun beberapa bahasa buatan (cth. Esperanto dan Volapük, antara lain)
juga dibenarkan dalam ruang nama utama dan dianggap sebagai bahasa biasa.
* {reconstructed}: Bahasa ini tidak diperakui mengikut [[WT:CFI]], dan oleh itu hanya dibenarkan dalam ruang nama
{Rekonstruksi}. Semua istilah dalam bahasa ini adalah yang direkonstruksi, dan mesti diawali dengan
tanda *. Bahasa seperti Proto-Indo-Eropah dan Proto-Jermanik berada dalam kategori ini.
* {appendix-constructed}: Bahasa ini diperakui tetapi tidak memenuhi syarat tambahan yang ditetapkan untuk bahasa
buatan ([[WT:CFI#Constructed languages]]). Entrinya mestilah berada dalam ruang nama Lampiran,
tetapi ia tidak direkonstruksi dan oleh itu tidak sepatutnya diawali dengan tanda * dalam pautan.
]==]
function Language:getTypes()
local types = self._types
if types == nil then
types = {language = true}
if self:getFullCode() == self._code then
types.full = true
else
types["etymology-only"] = true
end
for t in gmatch(self._data.type, "[^,]+") do
types[t] = true
end
self._types = types
end
return types
end
--[==[Diberikan senarai jenis sebagai rentetan, mengembalikan nilai true jika bahasa tersebut memiliki kesemuanya.]==]
function Language:hasType(...)
Language.hasType = require(language_like_module).hasType
return self:hasType(...)
end
--[==[Mengembalikan jadual yang mengandungi objek <code>WikimediaLanguage</code> (lihat [[Module:wikimedia languages]]), yang mewakili bahasa dan kodnya seperti yang digunakan dalam projek Wikimedia untuk pautan antara wiki dan sebagainya. Lebih daripada satu objek boleh dikembalikan, kerana satu bahasa Wiktionary boleh sepadan dengan beberapa bahasa Wikimedia. Contohnya, kod tunggal Wiktionary <code>sh</code> (Serbo-Croatia) dipetakan kepada empat kod Wikimedia: <code>sh</code> (Serbo-Croatia), <code>bs</code> (Bosnia), <code>hr</code> (Croatia) dan <code>sr</code> (Serbia).
Kod untuk bahasa Wikimedia diambil daripada sifat <code>wikimedia_codes</code> dalam modul data. Jika sifat tersebut tiada, kod bahasa semasa akan digunakan. Jika tiada kod yang tersedia merupakan kod Wikimedia yang sah, jadual kosong akan dikembalikan.]==]
function Language:getWikimediaLanguages()
local wm_langs = self._wikimediaLanguageObjects
if wm_langs == nil then
local codes = self:getWikimediaLanguageCodes()
wm_langs = {}
for i = 1, #codes do
wm_langs[i] = get_wikimedia_lang(codes[i])
end
self._wikimediaLanguageObjects = wm_langs
end
return wm_langs
end
function Language:getWikimediaLanguageCodes()
local wm_langs = self._wikimediaLanguageCodes
if wm_langs == nil then
wm_langs = self._data.wikimedia_codes
if wm_langs then
wm_langs = split(wm_langs, ",", true, true)
else
local code = self._code
if is_known_language_tag(code) then
wm_langs = {code}
else
-- Mewarisi, tetapi hanya jika tiada kod dinyatakan dalam data *dan*
-- kod bahasa tersebut bukan kod bahasa Wikimedia yang sah.
local parent = self:getParent()
wm_langs = parent and parent:getWikimediaLanguageCodes() or {}
end
end
self._wikimediaLanguageCodes = wm_langs
end
return wm_langs
end
--[==[
Mengembalikan nama rencana Wikipedia bagi bahasa tersebut. `project` menyatakan bahasa dan projek untuk mendapatkan rencana,
lalai kepada {"enwiki"} untuk Wikipedia Bahasa Inggeris. Biasanya jika dinyatakan ia sepatutnya menjadi kod projek bagi
Wikipedia bahasa tertentu cth. "mswiki" untuk Wikipedia Bahasa Melayu atau "zhwiki" untuk Wikipedia Bahasa Cina, tetapi ia
boleh menjadi mana-mana projek, termasuk yang bukan Wikipedia. Jika projek itu ialah Wikipedia Bahasa Inggeris dan sifat
{wikipedia_article} hadir dalam modul data, ia akan digunakan terlebih dahulu. Dalam semua kes lain, pautan laman (sitelink)
akan dijana daripada {:getWikidataItem} (jika ditetapkan). Nilai terhasil (atau ketiadaan nilai) dicache supaya panggilan
seterusnya lebih pantas. Jika tiada nilai dapat ditentukan, dan `noCategoryFallback` ialah {false}, {:getCategoryName} digunakan
sebagai sandaran; jika tidak, {nil} dikembalikan. Ambil perhatian bahawa jika `noCategoryFallback` bernilai {nil} atau diabaikan,
ia lalai kepada {false} jika projek ialah Wikipedia Bahasa Inggeris, selainnya kepada {true}. Dalam erti kata lain, dalam keadaan
biasa, jika rencana Wikipedia Bahasa Inggeris tidak dapat diperoleh, nilai pulangan akan kembali kepada pautan kategori bahasa,
tetapi ini biasanya tidak akan berlaku untuk mana-mana projek lain.
]==]
function Language:getWikipediaArticle(noCategoryFallback, project)
Language.getWikipediaArticle = require(language_like_module).getWikipediaArticle
return self:getWikipediaArticle(noCategoryFallback, project)
end
function Language:makeWikipediaLink()
return make_link(self, "w:" .. self:getWikipediaArticle(), self:getCanonicalName())
end
--[==[Mengembalikan nama halaman kategori Wikimedia Commons bagi bahasa tersebut.]==]
function Language:getCommonsCategory()
Language.getCommonsCategory = require(language_like_module).getCommonsCategory
return self:getCommonsCategory()
end
--[==[Mengembalikan id item Wikidata untuk bahasa atau <code>nil</code>. Ini sepadan dengan medan kedua dalam modul data.]==]
function Language:getWikidataItem()
Language.getWikidataItem = require(language_like_module).getWikidataItem
return self:getWikidataItem()
end
--[==[Mengembalikan jadual objek <code>Script</code> untuk semua skrip yang digunakan untuk menulis bahasa tersebut. Lihat [[Module:scripts]].]==]
function Language:getScripts()
local scripts = self._scriptObjects
if scripts == nil then
local codes = self:getScriptCodes()
if codes[1] == "All" then
scripts = load_data(scripts_data_module)
else
scripts = {}
for i = 1, #codes do
scripts[i] = get_script(codes[i])
end
end
self._scriptObjects = scripts
end
return scripts
end
--[==[Mengembalikan jadual kod skrip dalam fail data bahasa.]==]
function Language:getScriptCodes()
local scripts = self._scriptCodes
if scripts == nil then
scripts = self._data[4]
if scripts then
local codes, n = {}, 0
for code in gmatch(scripts, "[^,]+") do
n = n + 1
-- Pengendalian khas untuk "Hants", yang mewakili "Hani", "Hant" dan "Hans" secara kolektif.
if code == "Hants" then
codes[n] = "Hani"
codes[n + 1] = "Hant"
codes[n + 2] = "Hans"
n = n + 2
else
codes[n] = code
end
end
scripts = codes
else
scripts = {"None"}
end
self._scriptCodes = scripts
end
return scripts
end
--[==[Diberikan sesuatu teks, fungsi ini mengulangi skrip-skrip bagi bahasa yang ditentukan dan cuba mencari skrip yang paling sepadan dengan teks tersebut. Ia mengembalikan objek {{code|lua|Script}} yang mewakili skrip berkenaan. Jika tiada padanan ditemui langsung, ia mengembalikan objek skrip {{code|lua|None}}.]==]
function Language:findBestScript(text, forceDetect)
if not text or text == "" or text == "-" then
return get_script("None")
end
-- Berbeza daripada jadual yang dikembalikan oleh getScriptCodes, kerana Hants tidak dinormalkan kepada juzuk-juzuknya.
local codes = self._bestScriptCodes
if codes == nil then
codes = self._data[4]
codes = codes and split(codes, ",", true, true) or {"None"}
self._bestScriptCodes = codes
end
local first_sc = codes[1]
if first_sc == "All" then
return find_best_script_without_lang(text)
end
local codes_len = #codes
if not (forceDetect or first_sc == "Hants" or codes_len > 1) then
first_sc = get_script(first_sc)
local charset = first_sc.characters
return charset and umatch(text, "[" .. charset .. "]") and first_sc or get_script("None")
end
-- Mengalih keluar semua aksara pemformatan.
text = get_plaintext(text)
-- Mengalih keluar semua ruang dan sebarang tanda baca ASCII. Sesetengah tanda baca bukan ASCII adalah khusus skrip, jadi tidak boleh dialih keluar.
text = ugsub(text, "[%s!\"#%%&'()*,%-./:;?@[\\%]_{}]+", "")
if #text == 0 then
return get_script("None")
end
-- Cuba memadankan setiap skrip dengan teks,
-- dan kembalikan skrip yang mempunyai aksara sepadan paling banyak.
local bestcount, bestscript, length = 0
for i = 1, codes_len do
local sc = codes[i]
-- Kes khas untuk "Hants", iaitu kod khas yang mewakili mana-mana antara "Hant" atau "Hans" yang paling sepadan, atau "Hani" jika ia sepadan sama rata. Ini mengelakkan keperluan untuk menyenaraikan ketiga-tiganya. Selain itu, "Hants" akan dilayan sebagai padanan terbaik jika terdapat sekurang-kurangnya satu aksara yang sepadan, di bawah andaian bahawa skrip Han dikehendaki bagi istilah yang mengandungi campuran skrip Han dan skrip lain (tidak termasuk yang menggunakan Jpan atau Kore).
if sc == "Hants" then
local Hani = get_script("Hani")
if not Hant_chars then
Hant_chars = load_data("Module:zh/data/ts")
Hans_chars = load_data("Module:zh/data/st")
end
local t, s, found = 0, 0
-- Ini lebih pantas berbanding menggunakan mw.ustring.gmatch secara terus.
for ch in gmatch((ugsub(text, "[" .. Hani.characters .. "]", "\255%0")), "\255(.[\128-\191]*)") do
found = true
if Hant_chars[ch] then
t = t + 1
if Hans_chars[ch] then
s = s + 1
end
elseif Hans_chars[ch] then
s = s + 1
else
t, s = t + 1, s + 1
end
end
if found then
if t == s then
return Hani
end
return get_script(t > s and "Hant" or "Hans")
end
else
sc = get_script(sc)
if not length then
length = ulen(text)
end
-- Mengira aksara dengan menyingkirkan semua yang ada dalam set aksara skrip dan membandingkannya dengan panjang asal.
local charset = sc.characters
local count = charset and length - ulen((ugsub(text, "[" .. charset .. "]+", ""))) or 0
if count >= length then
return sc
elseif count > bestcount then
bestcount = count
bestscript = sc
end
end
end
-- Kembalikan skrip padanan terbaik, atau sebaliknya None.
return bestscript or get_script("None")
end
--[==[Mengembalikan objek <code>Family</code> bagi keluarga bahasa tempat tergolongnya bahasa ini. Lihat [[Module:families]].]==]
function Language:getFamily()
local family = self._familyObject
if family == nil then
family = self:getFamilyCode()
-- Jika nilainya nil, ia dicache sebagai false.
family = family and get_family(family) or false
self._familyObject = family
end
return family or nil
end
--[==[Mengembalikan kod keluarga dalam fail data bahasa.]==]
function Language:getFamilyCode()
local family = self._familyCode
if family == nil then
-- Jika nilainya nil, ia dicache sebagai false.
family = self._data[3] or false
self._familyCode = family
end
return family or nil
end
function Language:getFamilyName()
local family = self._familyName
if family == nil then
family = self:getFamily()
-- Jika nilainya nil, ia dicache sebagai false.
family = family and family:getCanonicalName() or false
self._familyName = family
end
return family or nil
end
do
local function check_family(self, family)
if type(family) == "table" then
family = family:getCode()
end
if self:getFamilyCode() == family then
return true
end
local self_family = self:getFamily()
if self_family:inFamily(family) then
return true
-- Jika keluarga tersebut bukan keluarga sebenar (cth. kreol), semak sebarang leluhur.
elseif self_family:inFamily("qfa-not") then
local ancestors = self:getAncestors()
for _, ancestor in ipairs(ancestors) do
if ancestor:inFamily(family) then
return true
end
end
end
end
--[==[Menyemak sama ada bahasa tergolong dalam `family` (yang boleh berupa kod keluarga atau objek). Senarai objek boleh diberikan sebagai ganti `family`; dalam kes tersebut, kembalikan true jika bahasa tergolong dalam mana-mana keluarga yang dinyatakan. Perhatikan bahawa sesetengah bahasa (khususnya, kreol tertentu) boleh mempunyai beberapa leluhur langsung yang berpotensi tergolong dalam keluarga berbeza; dalam kes tersebut, kembalikan true jika bahasa tergolong dalam mana-mana keluarga yang dinyatakan.]==]
function Language:inFamily(...)
if self:getFamilyCode() == nil then
return false
end
return check_inputs(self, check_family, false, ...)
end
end
function Language:getParent()
local parent = self._parentObject
if parent == nil then
parent = self:getParentCode()
-- Jika nilainya nil, ia dicache sebagai false.
parent = parent and get_by_code(parent, nil, true, true) or false
self._parentObject = parent
end
return parent or nil
end
function Language:getParentCode()
local parent = self._parentCode
if parent == nil then
-- Jika nilainya nil, ia dicache sebagai false.
parent = self._data.parent or false
self._parentCode = parent
end
return parent or nil
end
function Language:getParentName()
local parent = self._parentName
if parent == nil then
parent = self:getParent()
-- Jika nilainya nil, ia dicache sebagai false.
parent = parent and parent:getCanonicalName() or false
self._parentName = parent
end
return parent or nil
end
function Language:getParentChain()
local chain = self._parentChain
if chain == nil then
chain = {}
local parent, n = self:getParent(), 0
while parent do
n = n + 1
chain[n] = parent
parent = parent:getParent()
end
self._parentChain = chain
end
return chain
end
do
local function check_lang(self, lang)
for _, parent in ipairs(self:getParentChain()) do
if (type(lang) == "string" and lang or lang:getCode()) == parent:getCode() then
return true
end
end
end
function Language:hasParent(...)
return check_inputs(self, check_lang, false, ...)
end
end
--[==[
Jika bahasa tersebut merupakan bahasa khusus etimologi, fungsi ini mengulangi rantaian induk sehingga bahasa penuh atau keluarga ditemui, dan objek yang sepadan dikembalikan. Jika bahasa tersebut merupakan bahasa penuh, ia hanya mengembalikan dirinya sendiri.
]==]
function Language:getFull()
local full = self._fullObject
if full == nil then
full = self:getFullCode()
full = full == self._code and self or get_by_code(full)
self._fullObject = full
end
return full
end
--[==[
Jika bahasa tersebut merupakan bahasa khusus etimologi, fungsi ini mengulangi rantaian induk sehingga bahasa penuh atau keluarga ditemui, dan kod yang sepadan dikembalikan. Jika bahasa tersebut merupakan bahasa penuh, ia hanya mengembalikan kod bahasa tersebut.
]==]
function Language:getFullCode()
return self._fullCode or self._code
end
--[==[
Jika bahasa tersebut merupakan bahasa khusus etimologi, fungsi ini mengulangi rantaian induk sehingga bahasa penuh atau keluarga ditemui, dan nama kanonik yang sepadan dikembalikan. Jika bahasa tersebut merupakan bahasa penuh, ia hanya mengembalikan nama kanonik bahasa tersebut.
]==]
function Language:getFullName()
local full = self._fullName
if full == nil then
full = self:getFull():getCanonicalName()
self._fullName = full
end
return full
end
--[==[Mengembalikan jadual objek <code class="nf">Language</code> bagi semua bahasa yang diturunkan secara langsung daripada bahasa ini. Umumnya ini hanya melibatkan bahasa tunggal, tetapi kreol, pidgin dan bahasa campuran boleh mempunyai banyak leluhur.]==]
function Language:getAncestors()
local ancestors = self._ancestorObjects
if ancestors == nil then
ancestors = {}
local ancestor_codes = self:getAncestorCodes()
if #ancestor_codes > 0 then
for _, ancestor in ipairs(ancestor_codes) do
insert(ancestors, get_by_code(ancestor, nil, true))
end
else
local fam = self:getFamily()
local protoLang = fam and fam:getProtoLanguage() or nil
-- Bagi kes di mana bahasa semasa ialah bahasa proto bagi
-- keluarganya, atau bahasa khusus etimologi yang merupakan leluhur kepada bahasa
-- proto tersebut, kita perlu melangkah setingkat lebih tinggi sejak
-- permulaan lagi.
if protoLang and (
protoLang:getCode() == self._code or
(self:hasType("etymology-only") and protoLang:hasAncestor(self))
) then
fam = fam:getFamily()
protoLang = fam and fam:getProtoLanguage() or nil
end
while not protoLang and not (not fam or fam:getCode() == "qfa-not") do
fam = fam:getFamily()
protoLang = fam and fam:getProtoLanguage() or nil
end
insert(ancestors, protoLang)
end
self._ancestorObjects = ancestors
end
return ancestors
end
do
-- Elakkan bahasa menjadi leluhur kepada dirinya sendiri melalui pewarisan kelas. Kita hanya perlu menyemak ini jika bahasa mewarisi jadual leluhur daripada induknya, kerana kita tidak mahu menggugurkan leluhur yang telah ditetapkan secara jelas dalam data.
-- Ulangi proses secara rekursif merentasi leluhur sehingga sama ada menemui diri sendiri atau kehabisan rekod. Jika diri sendiri ditemui, kembalikan true.
local function check_ancestor(self, lang)
local codes = lang:getAncestorCodes()
if not codes then
return nil
end
for i = 1, #codes do
local code = codes[i]
if code == self._code then
return true
end
local anc = get_by_code(code, nil, true)
if check_ancestor(self, anc) then
return true
end
end
end
--[==[Mengembalikan jadual kod <code class="nf">Language</code> bagi semua bahasa yang diturunkan secara langsung daripada bahasa ini. Umumnya ini hanya melibatkan bahasa tunggal, tetapi kreol, pidgin dan bahasa campuran boleh mempunyai banyak leluhur.]==]
function Language:getAncestorCodes()
if self._ancestorCodes then
return self._ancestorCodes
end
local data = self._data
local codes = data.ancestors
if codes == nil then
codes = {}
self._ancestorCodes = codes
return codes
end
codes = split(codes, ",", true, true)
self._ancestorCodes = codes
-- Jika tiada kod atau leluhur tersebut bukan data yang diwarisi, tiada apa lagi untuk disemak.
if #codes == 0 or self:getData(false, "raw").ancestors ~= nil then
return codes
end
local i, code = 1
while i <= #codes do
code = codes[i]
if check_ancestor(self, self) then
remove(codes, i)
else
i = i + 1
end
end
return codes
end
end
--[==[Diberikan senarai objek atau kod bahasa, mengembalikan true jika sekurang-kurangnya satu daripadanya ialah leluhur. Ini merangkumi sebarang anak khusus etimologi bagi leluhur tersebut. Jika leluhur bahasa tersebut ialah bahasa khusus etimologi, ia juga akan mengembalikan true bagi induk bahasa berkenaan (cth. jika Latin Vulgar ialah leluhur, ia juga akan mengembalikan true bagi induknya, Latin). Walau bagaimanapun, induk dikecualikan daripada ini jika leluhur tersebut juga merupakan leluhur kepada induk berkenaan (cth. jika Parsi Klasik ialah leluhur, Parsi akan mengembalikan false, kerana Parsi Klasik juga merupakan leluhur kepada Parsi).]==]
function Language:hasAncestor(...)
local function iterateOverAncestorTree(node, func, parent_check)
local ancestors = node:getAncestors()
local ancestorsParents = {}
for _, ancestor in ipairs(ancestors) do
-- Semasa menyemak induk bahasa lain, dan leluhur juga merupakan induk, langkau ke leluhur seterusnya, supaya kita mengecualikan sebarang anak khusus etimologi bagi induk tersebut yang tidak berkaitan secara langsung (lihat di bawah).
local ret = (parent_check or not node:hasParent(ancestor)) and
func(ancestor) or iterateOverAncestorTree(ancestor, func, parent_check)
if ret then
return ret
end
end
-- Semak induk bagi mana-mana leluhur. Kita tidak melakukan ini jika menyemak induk bahasa lain, supaya kita mengecualikan sebarang anak khusus etimologi bagi induk tersebut yang tidak berkaitan secara langsung (cth. jika leluhur ialah Latin Vulgar dan kita menyemak Latin Baharu, kita mahu ia mengembalikan false kerana kedua-duanya berada pada cabang leluhur berbeza. Oleh itu, jika kita sudah menyemak induk Latin Baharu (Latin) kita tidak mahu membandingkannya dengan induk leluhur (Latin), kerana ini menghasilkan positif palsu; ia sepatutnya salah satu daripadanya).
if not parent_check then
return nil
end
for _, ancestor in ipairs(ancestors) do
local ancestorParents = ancestor:getParentChain()
for _, ancestorParent in ipairs(ancestorParents) do
if ancestorParent:getCode() == self._code or ancestorParent:hasAncestor(ancestor) then
break
else
insert(ancestorsParents, ancestorParent)
end
end
end
for _, ancestorParent in ipairs(ancestorsParents) do
local ret = func(ancestorParent)
if ret then
return ret
end
end
end
local function do_iteration(otherlang, parent_check)
-- otherlang tidak boleh merujuk kepada diri sendiri
if (type(otherlang) == "string" and otherlang or otherlang:getCode()) == self._code then
return false
end
repeat
if iterateOverAncestorTree(
self,
function(ancestor)
return ancestor:getCode() == (type(otherlang) == "string" and otherlang or otherlang:getCode())
end,
parent_check
) then
return true
elseif type(otherlang) == "string" then
otherlang = get_by_code(otherlang, nil, true)
end
otherlang = otherlang:getParent()
parent_check = false
until not otherlang
end
local parent_check = true
for _, otherlang in ipairs{...} do
local ret = do_iteration(otherlang, parent_check)
if ret then
return true
end
end
return false
end
do
local function construct_node(lang, memo)
local branch, ancestors = {lang = lang:getCode()}
memo[lang:getCode()] = branch
for _, ancestor in ipairs(lang:getAncestors()) do
if ancestors == nil then
ancestors = {}
end
insert(ancestors, memo[ancestor:getCode()] or construct_node(ancestor, memo))
end
branch.ancestors = ancestors
return branch
end
function Language:getAncestorChain()
local chain = self._ancestorChain
if chain == nil then
chain = construct_node(self, {})
self._ancestorChain = chain
end
return chain
end
end
function Language:getAncestorChainOld()
local chain = self._ancestorChain
if chain == nil then
chain = {}
local step = self
while true do
local ancestors = step:getAncestors()
step = #ancestors == 1 and ancestors[1] or nil
if not step then
break
end
insert(chain, step)
end
self._ancestorChain = chain
end
return chain
end
local function fetch_descendants(self, fmt)
local descendants, family = {}, self:getFamily()
-- Ulangi ke atas ketiga-tiga set data.
for _, data in ipairs{
require("Module:languages/code to canonical name"),
require("Module:etymology languages/code to canonical name"),
require("Module:families/code to canonical name"),
} do
for code in pairs(data) do
local lang = get_by_code(code, nil, true, true)
if not lang then
error(("Ralat dalaman: kod '%s' tidak dapat diambil"):format(code))
end
-- Uji untuk keturunan. Ujian awal menyingkirkan kebanyakan calon, manakala ujian yang lebih intensif hanya digunakan secara berhemat.
if (
code ~= self._code and -- Bukan diri sendiri.
lang:inFamily(family) and -- Dalam keluarga yang sama.
(
family:getProtoLanguageCode() == self._code or -- Diri sendiri ialah bahasa proto.
self:hasDescendant(lang) or -- Semakan penuh hasDescendant.
(lang:getFullCode() == self._code and not self:hasAncestor(lang)) -- Anak khusus etimologi yang bukan leluhur.
)
) then
if fmt == "object" then
insert(descendants, lang)
elseif fmt == "code" then
insert(descendants, code)
elseif fmt == "name" then
insert(descendants, lang:getCanonicalName())
end
end
end
end
return descendants
end
function Language:getDescendants()
local descendants = self._descendantObjects
if descendants == nil then
descendants = fetch_descendants(self, "object")
self._descendantObjects = descendants
end
return descendants
end
function Language:getDescendantCodes()
local descendants = self._descendantCodes
if descendants == nil then
descendants = fetch_descendants(self, "code")
self._descendantCodes = descendants
end
return descendants
end
function Language:getDescendantNames()
local descendants = self._descendantNames
if descendants == nil then
descendants = fetch_descendants(self, "name")
self._descendantNames = descendants
end
return descendants
end
do
local function check_lang(self, lang)
if type(lang) == "string" then
lang = get_by_code(lang, nil, true)
end
if lang:hasAncestor(self) then
return true
end
end
function Language:hasDescendant(...)
return check_inputs(self, check_lang, false, ...)
end
end
local function fetch_children(self, fmt)
local m_etym_data = require(etymology_languages_data_module)
local self_code, children = self._code, {}
for code, lang in pairs(m_etym_data) do
local _lang = lang
repeat
local parent = _lang.parent
if parent == self_code then
if fmt == "object" then
insert(children, get_by_code(code, nil, true))
elseif fmt == "code" then
insert(children, code)
elseif fmt == "name" then
insert(children, lang[1])
end
break
end
_lang = m_etym_data[parent]
until not _lang
end
return children
end
function Language:getChildren()
local children = self._childObjects
if children == nil then
children = fetch_children(self, "object")
self._childObjects = children
end
return children
end
function Language:getChildrenCodes()
local children = self._childCodes
if children == nil then
children = fetch_children(self, "code")
self._childCodes = children
end
return children
end
function Language:getChildrenNames()
local children = self._childNames
if children == nil then
children = fetch_children(self, "name")
self._childNames = children
end
return children
end
function Language:hasChild(...)
local lang = ...
if not lang then
return false
elseif type(lang) == "string" then
lang = get_by_code(lang, nil, true)
end
if lang:hasParent(self) then
return true
end
return self:hasChild(select(2, ...))
end
--[==[Mengembalikan nama kategori utama bagi bahasa tersebut. Contoh: {{code|lua|"French language"}} bagi bahasa Perancis, yang kategorinya berada di [[:Kategori:Bahasa Perancis]]. Melainkan argumen pilihan <code>nocap</code> diberikan, nama bahasa pada permulaan nilai yang dikembalikan akan diawali dengan huruf besar. Huruf besar ini betul untuk nama kategori, tetapi bukan jika nama bahasa menggunakan huruf kecil dan nilai yang dikembalikan oleh fungsi ini digunakan di tengah-tengah ayat.]==]
function Language:getCategoryName(nocap)
local name = self._categoryName
if name == nil then
name = self:getCanonicalName()
-- Jika substrat, gugurkan sebarang kata sandang di hadapan.
if self:getFamilyCode() == "qfa-sub" then
name = name:gsub("^the ", ""):gsub("^a ", "")
end
-- Hanya tambah " language" jika ia bahasa penuh.
if self:hasType("full") then
-- Melainkan nama kanonik sudah berakhir dengan "language", "lect" atau terbitannya, tambah " language".
if not (match(name, "[Ll]anguage$") or match(name, "[Ll]ect$")) then
name = name .. " language"
end
end
self._categoryName = name
end
if nocap then
return name
end
return mw.getContentLanguage():ucfirst(name)
end
--[==[Mencipta pautan ke kategori; teks pautan ialah nama kanonik.]==]
function Language:makeCategoryLink()
return make_link(self, ":Kategori:" .. self:getCategoryName(), self:getDisplayForm())
end
function Language:getStandardCharacters(sc)
local standard_chars = self._data.standard_chars
if type(standard_chars) ~= "table" then
return standard_chars
elseif sc and type(sc) ~= "string" then
check_object("script", nil, sc)
sc = sc:getCode()
end
if (not sc) or sc == "None" then
local scripts = {}
for _, script in pairs(standard_chars) do
insert(scripts, script)
end
return concat(scripts)
end
if standard_chars[sc] then
return standard_chars[sc] .. (standard_chars[1] or "")
end
end
--[==[
Menanggalkan tanda diakritik daripada teks paparan `text` (mengikut kaedah khusus bahasa), yang berada dalam skrip `sc`. Jika `sc` diabaikan atau bernilai {nil}, skrip dikesan secara automatik. Ini juga menanggalkan aksara tanda baca tertentu dari penghujung dan (dalam kes tanda soal dan seru terbalik bahasa Sepanyol) dari permulaan; menanggalkan sebarang ruang putih pada penghujung teks atau di antara teks dan tanda baca jalur akhir; serta menerapkan beberapa penormalan Unicode khusus bahasa untuk menggantikan aksara yang tidak digalakkan dengan alternatif yang ditetapkan. Mengembalikan teks yang telah ditanggalkan tanda diakritiknya.
]==]
function Language:stripDiacritics(text, sc)
if (not text) or text == "" then
return text
end
sc = checkScript(text, self, sc)
text = normalize(text, sc)
-- AMARAN: namakan semula makeEntryName kepada stripDiacritics dan buang nilai pulangan kedua dan ketiga
-- di semua tempat
text, _, _ = iterateSectionSubstitutions(self, text, sc, nil, nil,
self._data.strip_diacritics or self._data.entry_name, "strip_diacritics", "stripDiacritics")
text = umatch(text, "^[¿¡]?(.-[^%s%p].-)%s*[؟?!;՛՜ ՞ ՟?!︖︕।॥။၊་།]?$") or text
return text
end
--[==[
Menukar nama halaman ''logik'' (nama halaman sebagaimana ia dipaparkan kepada pengguna, selepas tanda diakritik dan tanda baca ditanggalkan) kepada nama halaman ''fizikal'' (nama halaman sebagaimana ia disimpan dalam pangkalan data MediaWiki). Sebab-sebab perbezaan antara kedua-duanya ialah (a) tajuk yang tidak disokong seperti `[ ]` (dengan kurungan siku di dalamnya), `#` (tanda pagar) dan `¯\_(ツ)_/¯` (dengan garis bawah), serta tajuk yang terlalu panjang dari pelbagai jenis; (b) halaman "gergasi" yang dipecahkan kepada beberapa bahagian (cth. `a`, yang dipecahkan kepada nama halaman fizikal `a/languages A to L` dan `a/languages M to Z`). Bagi hampir semua tujuan, anda harus bekerja dengan nama halaman logik dan bukan nama halaman fizikal. Namun terdapat kes penggunaan tertentu yang memerlukan nama halaman fizikal, seperti menyemak kewujudan halaman atau mendapatkan kandungan halaman.
`pagename` ialah nama halaman logik yang akan ditukar. `is_reconstructed_or_appendix` menunjukkan sama ada halaman berada dalam ruang nama `Reconstruction` atau `Appendix`. Jika ia diabaikan atau bernilai {nil}, nama halaman disemak untuk tanda asterisk awal, dan jika ditemui, halaman dianggap sebagai halaman `Reconstruction`. Menetapkan nilai `false` atau `true` pada `is_reconstructed_or_appendix` melumpuhkan semakan ini dan membenarkan nama halaman ruang nama utama yang bermula dengan tanda asterisk.
]==]
function Language:logicalToPhysical(pagename, is_reconstructed_or_appendix)
-- AMARAN: Ini mungkin tidak sepatutnya berlaku tetapi ia berlaku apabila makeEntryName() menerima nil.
if pagename == nil then
track("nil-passed-to-logicalToPhysical")
return nil
end
local initial_asterisk
if is_reconstructed_or_appendix == nil then
local pagename_minus_initial_asterisk
initial_asterisk, pagename_minus_initial_asterisk = pagename:match("^(%*)(.*)$")
if pagename_minus_initial_asterisk then
is_reconstructed_or_appendix = true
pagename = pagename_minus_initial_asterisk
elseif self:hasType("appendix-constructed") then
is_reconstructed_or_appendix = true
end
end
if not is_reconstructed_or_appendix then
-- Semak sama ada nama halaman tersenarai sebagai tajuk yang tidak disokong.
local unsupportedTitles = load_data(links_data_module).unsupported_titles
if unsupportedTitles[pagename] then
return "Unsupported titles/" .. unsupportedTitles[pagename]
end
end
-- Tetapkan `unsupported` sebagai true jika syarat tertentu dipenuhi.
local unsupported
-- Semak sama ada terdapat aksara yang tidak disokong. \239\191\189 ialah aksara gantian U+FFFD, yang tidak boleh ditaip
-- terus di sini kerana penapis penyalahgunaan. Notasi titik-garis condong gaya Unix juga tidak disokong, kerana ia digunakan untuk
-- laluan relatif dalam pautan, begitu juga dengan 3 atau lebih tanda tilde berturutan. Nota: match lebih pantas dengan aksara
-- magik/set aksara; find lebih pantas dengan teks biasa.
if (
match(pagename, "[#<>%[%]_{|}]") or
find(pagename, "\239\191\189") or
match(pagename, "%f[^%z/]%.%.?%f[%z/]") or
find(pagename, "~~~")
) then
unsupported = true
-- Jika ia kelihatan seperti pautan antara wiki.
elseif find(pagename, ":") then
local prefix = gsub(pagename, "^:*(.-):.*", ulower)
if (
load_data("Module:data/namespaces")[prefix] or
load_data("Module:data/interwikis")[prefix]
) then
unsupported = true
end
end
-- Lepaskan aksara yang tidak disokong supaya ia boleh digunakan dalam tajuk. ` digunakan sebagai pembatas untuk ini, jadi penggunaan mentah
-- tanda itu dalam tajuk yang tidak disokong turut dilepaskan di sini untuk mengelakkan gangguan; ini hanya dilakukan dengan tajuk yang
-- tidak disokong, jadi kemasukan tanda itu sendiri tidak bermakna tajuk tersebut dilayan sebagai tidak disokong (itulah sebabnya ia dikecualikan
-- daripada ujian awal).
if unsupported then
-- AMARAN: Penukaran ini perlu berbeza untuk halaman rekonstruksi dengan aksara yang tidak disokong. Tiada
-- yang wujud buat masa ini, tetapi jika ada, kita perlu membetulkannya cth. meletakkannya dalam sesuatu seperti
-- Reconstruction:Proto-Indo-European/Unsupported titles/`lowbar``num`.
local unsupported_characters = load_data(links_data_module).unsupported_characters
pagename = pagename:gsub("[#<>%[%]_`{|}\239]\191?\189?", unsupported_characters)
:gsub("%f[^%z/]%.%.?%f[%z/]", function(m)
return (gsub(m, "%.", "`period`"))
end)
:gsub("~~~+", function(m)
return (gsub(m, "~", "`tilde`"))
end)
pagename = "Unsupported titles/" .. pagename
elseif not is_reconstructed_or_appendix then
-- Semak sama ada ini halaman gergasi. Jika ya, subhalaman mana yang perlu kita pautkan?
local m_links_data = load_data(links_data_module)
local mammoth_page_type = m_links_data.mammoth_pages[pagename]
if mammoth_page_type then
local canonical_name = self:getFullName()
if canonical_name ~= "Rentas bahasa" and canonical_name ~= "Bahasa Melayu" then
local this_subpage
local L2_sort_key = get_L2_sort_key(canonical_name)
for _, subpage_spec in ipairs(m_links_data.mammoth_page_subpage_types[mammoth_page_type]) do
-- unpack() gagal sepenuhnya pada data yang dimuatkan menggunakan mw.loadData() walaupun ofset diberikan
local subpage, pattern = subpage_spec[1], subpage_spec[2]
if pattern == true or L2_sort_key:match(pattern) then
this_subpage = subpage
break
end
end
if not this_subpage then
error(("Ralat dalaman: Data tidak sah dalam mammoth_page_subpage_pages dalam [[Module:links/data]] untuk halaman gergasi %s, jenis %s; entri terakhir tiada 'true' di dalamnya"):format(
pagename, mammoth_page_type))
end
pagename = pagename .. "/" .. this_subpage
end
end
end
return (initial_asterisk or "") .. pagename
end
--[==[
Menanggalkan tanda diakritik daripada nama halaman paparan dan menukar nama halaman logik yang terhasil kepada nama halaman fizikal.
Ini membolehkan anda, sebagai contoh, mendapatkan kandungan halaman atau menyemak kewujudannya. AMARAN: Fungsi ini telah lapuk
dan akan dimansuhkan. Ia merupakan gabungan mudah bagi `self:stripDiacritics` dan `self:logicalToPhysical`; kebanyakan pemanggil
hanya memerlukan kaedah yang pertama, dan jika anda memerlukan kedua-duanya, panggil kedua-duanya secara berasingan.
`text` dan `sc` adalah seperti dalam `self:stripDiacritics`, dan `is_reconstructed_or_appendix` adalah seperti dalam `self:logicalToPhysical`.
]==]
function Language:makeEntryName(text, sc, is_reconstructed_or_appendix)
return self:logicalToPhysical(self:stripDiacritics(text, sc), is_reconstructed_or_appendix)
end
--[==[Menjana bentuk alternatif menggunakan kaedah yang dinyatakan, dan mengembalikannya sebagai jadual. Jika tiada kaedah dinyatakan, mengembalikan jadual yang hanya mengandungi istilah input.]==]
function Language:generateForms(text, sc)
local generate_forms = self._data.generate_forms
if generate_forms == nil then
return {text}
end
sc = checkScript(text, self, sc)
return require("Module:" .. self._data.generate_forms).generateForms(text, self, sc)
end
--[==[Mencipta kunci isih bagi teks jalur yang diberikan, mengikut peraturan yang sesuai untuk bahasa tersebut. Ini menanggalkan
tanda diakritik daripada teks jalur jika ia dianggap tidak signifikan untuk pengisihan, dan mungkin melakukan beberapa pengubahsuaian
lain. Sebarang tanda sempang awal juga dialih keluar, dan apa sahaja di dalam kurungan turut dialih keluar.
Tetapan <code>sort_key</code> bagi setiap bahasa dalam modul data mentakrifkan penggantian yang dibuat oleh fungsi ini, atau ia memberikan nama modul yang menerima teks jalur dan mengembalikan kunci isih.]==]
function Language:makeSortKey(text, sc)
if (not text) or text == "" then
return text
end
if match(text, "<[^<>]+>") then
track("track HTML tag")
end
-- Mengalih keluar aksara arah, tebal, condong, tanda sempang lembut, penanda jalur dan tag HTML.
-- AMARAN: Sebahagiannya berulang dengan remove_formatting() dalam [[Module:links]].
text = ugsub(text, "[\194\173\226\128\170-\226\128\174\226\129\166-\226\129\169]", "")
text = text:gsub("('*)'''(.-'*)'''", "%1%2"):gsub("('*)''(.-'*)''", "%1%2")
text = gsub(unstrip(text), "<[^<>]+>", "")
text = decode_uri(text, "PATH")
text = checkNoEntities(self, text)
-- Mengalih keluar tanda sempang awal dan * melainkan istilah tersebut hanya terdiri daripada aksara penjarakan + tanda baca.
text = ugsub(text, "^([-]*)[-־ـ᠊*]+([-]*)(.*[^%s%p].*)", "%1%2%3")
sc = checkScript(text, self, sc)
text = normalize(text, sc)
text = removeCarets(text, sc)
-- Bagi bahasa yang mempunyai huruf i bertitik dan tanpa titik, pastikan "İ" diisih sebagai "i", dan "I" diisih sebagai "ı".
if self:hasDottedDotlessI() then
text = gsub(text, "I\204\135", "i") -- "İ" terurai
:gsub("I", "ı")
text = sc:toFixedNFD(text)
end
-- Tukar kepada huruf kecil, hasilkan kunci isih, kemudian tukar kepada huruf besar. Di mana bahasa mempunyai i bertitik dan tanpa titik, ia
-- biasanya tidak perlu menukar "i" kepada "İ" dan "ı" kepada "I" terlebih dahulu, kerana "I" akan sentiasa ditafsirkan sebagai
-- "I" konvensional (bukan "İ" tanpa titik) oleh mana-mana algoritma pengisihan, yang telah diambil kira oleh
-- penggantian kunci isih itu sendiri. Walau bagaimanapun, jika tiada penggantian kunci isih dinyatakan, maka penukaran adalah
-- perlu bagi mengelakkan kedua-dua "i" dan "ı" diisih sebagai "I".
--
-- Pengecualian dibuat untuk skrip yang (kadangkala) mengisih dengan mengikis kandungan halaman, kerana ini bermakna ia sensitif
-- terhadap perubahan penggunaan huruf besar/kecil (kerana ia mengubah halaman sasaran).
if not sc:sortByScraping() then
text = ulower(text)
end
local actual_substitution_data
-- Jangan pangkas ruang putih di sini kerana ia bermakna pada permulaan kunci isih atau asas isih.
text, _, actual_substitution_data = iterateSectionSubstitutions(self, text, sc, nil, nil, self._data.sort_key,
"sort_key", "makeSortKey", "notrim")
if not sc:sortByScraping() then
if self:hasDottedDotlessI() and not actual_substitution_data then
text = text:gsub("ı", "I"):gsub("i", "İ")
text = sc:toFixedNFC(text)
end
text = uupper(text)
end
-- Alih keluar kurungan, asalkan ia didahului atau diikuti oleh sesuatu.
text = gsub(text, "(.)[()]+", "%1"):gsub("[()]+(.)", "%1")
text = escape_risky_characters(text)
return text
end
--[==[Mencipta bentuk yang digunakan sebagai asas untuk teks paparan dan transliterasi. AMARAN: Namakan semula kepada correctInputText().]==]
local function processDisplayText(text, self, sc, keepCarets, keepPrefixes)
local subbedChars = {}
text, subbedChars = doTempSubstitutions(text, subbedChars, keepCarets)
text = decode_uri(text, "PATH")
text = checkNoEntities(self, text)
sc = checkScript(text, self, sc)
text = normalize(text, sc)
text, subbedChars = iterateSectionSubstitutions(self, text, sc, subbedChars, keepCarets, self._data.display_text,
"display_text", "makeDisplayText")
text = removeCarets(text, sc)
-- Alih keluar sebarang awalan pautan antara wiki (melainkan ia telah dilepaskan atau ciri ini dilumpuhkan).
if find(text, ":") and not keepPrefixes then
local rep
repeat
text, rep = gsub(text, "\\\\(\\*:)", "\3%1")
until rep == 0
text = gsub(text, "\\:", "\4")
while true do
local prefix = gsub(text, "^(.-):.+", function(m1)
return (gsub(m1, "\244[\128-\191]*", ""))
end)
-- Semak sama ada awalan ialah antara wiki, namun abaikan Wiktionary: dengan huruf besar, yang merupakan ruang nama.
if not prefix or prefix == text or prefix == "Wiktionary"
or not (load_data("Module:data/interwikis")[ulower(prefix)] or prefix == "") then
break
end
text = gsub(text, "^(.-):(.*)", function(m1, m2)
local ret = {}
for subbedChar in gmatch(m1, "\244[\128-\191]*") do
insert(ret, subbedChar)
end
return concat(ret) .. m2
end)
end
text = gsub(text, "\3", "\\"):gsub("\4", ":")
end
return text, subbedChars
end
--[==[Menghasilkan teks paparan (iaitu apa yang dipaparkan pada halaman).]==]
function Language:makeDisplayText(text, sc, keepPrefixes)
if not text or text == "" then
return text
end
local subbedChars
text, subbedChars = processDisplayText(text, self, sc, nil, keepPrefixes)
text = escape_risky_characters(text)
return undoTempSubstitutions(text, subbedChars)
end
--[==[Mentransliterasikan teks daripada skrip yang diberikan kepada skrip Latin (lihat
[[Wiktionary:Transliteration and romanization]]). Bahasa mesti mempunyai sifat <code>translit</code> untuk ciri ini
berfungsi; jika ia tiada, {{code|lua|nil}} dikembalikan.
Parameter <code>sc</code> dikendalikan oleh modul transliterasi, dan cara ia dikendalikan adalah khusus kepada modul
tersebut. Sesetengah modul transliterasi mungkin menerima {{code|lua|nil}} sebagai skrip, yang lain memerlukannya menjadi salah satu
skrip yang mungkin boleh ditransliterasikan oleh modul, dan akan membuang ralat jika ia bukan salah satu daripadanya. Atas sebab ini,
parameter <code>sc</code> sepatutnya sentiasa disediakan semasa menulis kod bukan khusus bahasa.
Parameter <code>module_override</code> digunakan untuk mengatasi modul lalai yang digunakan bagi menyediakan
transliterasi. Ini berguna dalam kes di mana anda perlu menunjukkan penggunaan modul tertentu, tetapi modul lalai belum wujud,
atau anda ingin menunjukkan versi alternatif bagi modul transliterasi sebelum menjadikannya rasmi. Ia tidak sepatutnya
digunakan dalam modul atau templat sebenar, hanya untuk ujian. Semua penggunaan parameter ini dijejaki
oleh [[Wiktionary:Tracking/languages/module_override]].
'''Pepijat yang diketahui''':
* Fungsi ini mengandaikan {tr(s1) .. tr(s2) == tr(s1 .. s2)}. Apabila penegasan ini gagal, penanda teks wiki seperti <nowiki>'''</nowiki> boleh menyebabkan transliterasi yang salah.
* Entiti HTML seperti <code>&apos;</code>, yang sering digunakan untuk melepaskan penanda teks wiki, tidak berfungsi.
]==]
function Language:transliterate(text, sc, module_override)
-- Jika tiada teks, atau bahasa tidak mempunyai data transliterasi dan tiada override diberikan, kembalikan nil.
if not text or text == "" or text == "-" then
return text
end
-- Jika skrip tidak boleh ditransliterasikan (dan tiada override diberikan), kembalikan nil.
sc = checkScript(text, self, sc)
if not (sc:isTransliterated() or module_override) then
-- penjejakan sementara untuk melihat sama ada/bila ini dicetuskan
track("non-transliterable")
track("non-transliterable/" .. self._code)
track("non-transliterable/" .. sc:getCode())
track("non-transliterable/" .. sc:getCode() .. "/" .. self._code)
return nil
end
-- Alih keluar sebarang penanda jalur.
text = unstrip(text)
-- Jangan proses pemformatan kepada aksara PUA bagi bahasa-bahasa tertentu.
local processed = load_data(languages_data_module).substitution[self._code] ~= "none"
-- Dapatkan teks paparan dengan bendera keepCarets ditetapkan.
local subbedChars
if processed then
text, subbedChars = processDisplayText(text, self, sc, true)
end
-- Lakukan transliterasi (menggunakan module_override jika berkenaan).
text, subbedChars = iterateSectionSubstitutions(self, text, sc, subbedChars, true, module_override or
self._data.translit, "translit", "tr")
if not text then
return nil
end
-- Transliterasi tidak lengkap mengembalikan nil.
local charset = sc.characters
if charset and umatch(text, "[" .. charset .. "]") then
-- Alih keluar sebarang aksara dalam skrip Latin, termasuk aksara Latin yang turut terkandung dalam skrip lain (kerana ini
-- menghasilkan positif palsu), serta sebarang penggantian PUA. Apa-apa yang tinggal sepatutnya hanya kod skrip "None"
-- (cth. angka).
local check_text = ugsub(text, "[" .. get_script("Latn").characters .. "-]+", "")
-- Tetapkan bendera none_is_last_resort_only, supaya sebarang aksara bukan-None akan menyebabkan skrip selain "None"
-- dikembalikan.
if find_best_script_without_lang(check_text, true):getCode() ~= "None" then
return nil
end
end
if processed then
text = escape_risky_characters(text)
text = undoTempSubstitutions(text, subbedChars)
end
-- Jika skrip tidak menggunakan huruf besar, maka besarkan sebarang huruf transliterasi yang
-- didahului secara langsung oleh tanda sisip (dan alih keluar tanda sisip tersebut).
if text and not sc:hasCapitalization() and text:find("^", 1, true) then
text = processCarets(text, "%^([\128-\191\244]*%*?)([^\128-\191\244][\128-\191]*)", function(m1, m2)
return m1 .. uupper(m2)
end)
end
-- Jejaki override modul.
if module_override ~= nil then
track("module_override")
end
return text
end
do
local function handle_language_spec(self, spec, sc)
local ret = self["_" .. spec]
if ret == nil then
ret = self._data[spec]
if type(ret) == "string" then
ret = list_to_set(split(ret, ",", true, true))
end
self["_" .. spec] = ret
end
if type(ret) == "table" then
ret = ret[sc:getCode()]
end
return not not ret
end
function Language:overrideManualTranslit(sc)
return handle_language_spec(self, "override_translit", sc)
end
function Language:link_tr(sc)
return handle_language_spec(self, "link_tr", sc)
end
end
--[==[Mengembalikan {{code|lua|true}} jika bahasa mempunyai modul transliterasi, atau {{code|lua|false}} jika tiada.]==]
function Language:hasTranslit()
return not not self._data.translit
end
--[==[Mengembalikan {{code|lua|true}} jika bahasa menggunakan huruf I/ı dan İ/i, atau {{code|lua|false}} jika tidak.]==]
function Language:hasDottedDotlessI()
return not not self._data.dotted_dotless_i
end
function Language:toJSON(opts)
local strip_diacritics, strip_diacritics_patterns, strip_diacritics_remove_diacritics = self._data.strip_diacritics
if strip_diacritics then
if strip_diacritics.from then
strip_diacritics_patterns = {}
for i, from in ipairs(strip_diacritics.from) do
insert(strip_diacritics_patterns, {from = from, to = strip_diacritics.to[i] or ""})
end
end
strip_diacritics_remove_diacritics = strip_diacritics.remove_diacritics
end
-- mainCode hanya bernilai bukan nil jika dontCanonicalizeAliases dihantar ke make_object().
-- props sepatutnya mengandungi fungsi tanpa argumen untuk mengira nilai, atau nilai itu sendiri.
local props = {
ancestors = function() return self:getAncestorCodes() end,
canonicalName = function() return self:getCanonicalName() end,
categoryName = function() return self:getCategoryName("nocap") end,
code = self._code,
mainCode = self._mainCode,
parent = function() return self:getParentCode() end,
full = function() return self:getFullCode() end,
stripDiacriticsPatterns = strip_diacritics_patterns,
stripDiacriticsRemoveDiacritics = strip_diacritics_remove_diacritics,
family = function() return self:getFamilyCode() end,
aliases = function() return self:getAliases() end,
varieties = function() return self:getVarieties() end,
otherNames = function() return self:getOtherNames() end,
scripts = function() return self:getScriptCodes() end,
type = function() return keys_to_list(self:getTypes()) end,
wikimediaLanguages = function() return self:getWikimediaLanguageCodes() end,
wikidataItem = function() return self:getWikidataItem() end,
wikipediaArticle = function() return self:getWikipediaArticle(true) end,
}
local ret = {}
for prop, val in pairs(props) do
if not opts.skip_fields or not opts.skip_fields[prop] then
if type(val) == "function" then
ret[prop] = val()
else
ret[prop] = val
end
end
end
-- Gunakan `deep_copy` apabila mengembalikan jadual, supaya tiada sekatan penyuntingan yang dikenakan oleh `mw.loadData`.
return opts and opts.lua_table and deep_copy(ret) or to_json(ret, opts)
end
function export.getDataModuleName(code)
local letter = match(code, "^(%l)%l%l?$")
return "Module:" .. (
letter == nil and "languages/data/exceptional" or
#code == 2 and "languages/data/2" or
"languages/data/3/" .. letter
)
end
get_data_module_name = export.getDataModuleName
function export.getExtraDataModuleName(code)
return get_data_module_name(code) .. "/extra"
end
get_extra_data_module_name = export.getExtraDataModuleName
do
local function make_stack(data)
local key_types = {
[2] = "unique",
aliases = "unique",
otherNames = "unique",
type = "append",
varieties = "unique",
wikipedia_article = "unique",
wikimedia_codes = "unique"
}
local function __index(self, k)
local stack, key_type = getmetatable(self), key_types[k]
-- Data yang tidak diwarisi daripada induk.
if key_type == "unique" then
local v = stack[stack[make_stack]][k]
if v == nil then
local layer = stack[0]
if layer then -- Boleh bernilai false jika tiada data tambahan.
v = layer[k]
end
end
return v
-- Data yang ditambah oleh setiap generasi.
elseif key_type == "append" then
local parts, offset, n = {}, 0, stack[make_stack]
for i = 1, n do
local part = stack[i][k]
if part == nil then
offset = offset + 1
else
parts[i - offset] = part
end
end
return offset ~= n and concat(parts, ",") or nil
end
local n = stack[make_stack]
while true do
local layer = stack[n]
if not layer then -- Boleh bernilai false jika tiada data tambahan.
return nil
end
local v = layer[k]
if v ~= nil then
return v
end
n = n - 1
end
end
local function __newindex()
error("jadual adalah baca sahaja")
end
local function __pairs(self)
-- Mengulangi susunan tindanan ke bawah, mencache kunci bagi mengelakkan pulangan pendua.
local stack, seen = getmetatable(self), {}
local n = stack[make_stack]
local iter, state, k, v = pairs(stack[n])
return function()
repeat
repeat
k = iter(state, k)
if k == nil then
n = n - 1
local layer = stack[n]
if not layer then -- Boleh bernilai false jika tiada data tambahan.
return nil
end
iter, state, k = pairs(layer)
end
until not (k == nil or seen[k])
-- Dapatkan nilai melalui carian, kerana nilai yang dikembalikan oleh
-- lelaran adalah nilai mentah daripada lapisan semasa,
-- yang mungkin bukan nilai yang akan dikembalikan oleh __index untuk
-- kunci tersebut. Lakukan juga memoize kunci dalam `seen` (walaupun carian
-- mengembalikan nil) supaya ia tidak dicari semula.
-- TODO: simpan nilai dalam `self`, mengelakkan keperluan membina
-- jadual `seen`. Lelaran perlu mengulangi ke atas
-- `self` dengan `next` terlebih dahulu untuk menemuinya pada gelung akan datang.
v, seen[k] = self[k], true
until v ~= nil
return k, v
end
end
local __ipairs = require(table_module).indexIpairs
function make_stack(data)
local stack = {
data,
[make_stack] = 1, -- menyimpan panjang dan bertindak sebagai penanda untuk mengesahkan sesuatu metajadual ialah tindanan.
__index = __index,
__newindex = __newindex,
__pairs = __pairs,
__ipairs = __ipairs,
}
stack.__metatable = stack
return setmetatable({}, stack), stack
end
return make_stack(data)
end
local function get_stack(data)
local stack = getmetatable(data)
return stack and type(stack) == "table" and stack[make_stack] and stack or nil
end
--[==[
<span style="color: var(--wikt-palette-red,#BA0000)">Fungsi ini bukan untuk digunakan dalam entri atau halaman kandungan lain.</span>
Mengembalikan gumpalan data mengenai bahasa tersebut. Format gumpalan ini tidak didokumenkan, dan barangkali tidak stabil; ia bertujuan untuk perkara seperti ujian unit modul itu sendiri, yang berkait rapat dengan modul dan akan dipastikan sentiasa terkini mengikut perubahan format. Jika `extra` ditetapkan, sebarang data tambahan dalam modul `/extra` berkaitan akan disertakan. (Ambil perhatian bahawa ia akan tetap disertakan jika ia telah pun dimuatkan ke dalam objek bahasa.) Jika `raw` ditetapkan, maka data yang dikembalikan tidak akan mengandungi sebarang data yang diwarisi daripada objek induk.
-- JANGAN gunakan kaedah-kaedah ini!
-- Semua penggunaan mesti dipra-luluskan pada halaman perbincangan!
]==]
function Language:getData(extra, raw)
if extra then
self:loadInExtraData()
end
local data = self._data
-- Jika raw tidak ditetapkan, kembalikan data sahaja.
if not raw then
return data
end
local stack = get_stack(data)
-- Jika tiada tindanan atau panjangnya adalah 1, kembalikan data. Data tambahan (jika ada) akan disertakan, kerana ia disimpan pada kunci 0 dan tidak menjejaskan panjang yang dilaporkan.
if stack == nil then
return data
end
local n = stack[make_stack]
if n == 1 then
return data
end
local extra = stack[0]
-- Jika tiada sebarang data tambahan, kembalikan lapisan teratas tindanan.
if extra == nil then
return stack[n]
end
-- Jika ada, kembalikan tindanan baharu yang mempunyai lapisan teratas pada kunci 1 dan data tambahan pada kunci 0.
data, stack = make_stack(stack[n])
stack[0] = extra
return data
end
function Language:loadInExtraData()
-- Hanya bahasa penuh mempunyai data tambahan.
if not self:hasType("language", "full") then
return
end
local data = self._data
-- Jika tiada tindanan, cipta satu.
local stack = get_stack(self._data)
if stack == nil then
data, stack = make_stack(data)
-- Jika telah dimuatkan, kembali.
elseif stack[0] ~= nil then
return
end
self._data = data
-- Muatkan data tambahan daripada modul berkaitan dan tambahkannya pada tindanan pada kunci 0, supaya metamethod __index dan __pairs akan mengambilnya, memandangkan ia mengulangi ke bawah tindanan sehingga kehabisan lapisan.
local code = self._code
local modulename = get_extra_data_module_name(code)
-- Tiada data dicache sebagai false.
stack[0] = modulename and load_data(modulename)[code] or false
end
--[==[Mengembalikan nama modul yang mengandungi data bahasa tersebut. Pada masa ini, ia sentiasa [[Module:scripts/data]].]==]
function Language:getDataModuleName()
local name = self._dataModuleName
if name == nil then
name = self:hasType("etymology-only") and etymology_languages_data_module or
get_data_module_name(self._mainCode or self._code)
self._dataModuleName = name
end
return name
end
--[==[Mengembalikan nama modul yang mengandungi data bahasa tersebut. Pada masa ini, ia sentiasa [[Module:scripts/data]].]==]
function Language:getExtraDataModuleName()
local name = self._extraDataModuleName
if name == nil then
name = not self:hasType("etymology-only") and get_extra_data_module_name(self._mainCode or self._code) or false
self._extraDataModuleName = name
end
return name or nil
end
function export.makeObject(code, data, dontCanonicalizeAliases)
local data_type = type(data)
if data_type ~= "table" then
error(("hujah #2 tidak sah untuk 'makeObject' (jadual dijangkakan, menerima %s)"):format(data_type))
end
-- Tukar sebarang alias.
local input_code = code
code = normalize_code(code)
input_code = dontCanonicalizeAliases and input_code or code
local parent
if data.parent then
parent = get_by_code(data.parent, nil, true, true)
else
parent = Language
end
parent.__index = parent
local lang = {_code = input_code}
-- Ini hanya boleh berlaku jika dontCanonicalizeAliases dihantar kepada make_object().
if code ~= input_code then
lang._mainCode = code
end
local parent_data = parent._data
if parent_data == nil then
-- Kod penuh adalah sama seperti kod bahasa.
lang._fullCode = parent._code or code
else
-- Salin kod penuh.
lang._fullCode = parent._fullCode
local stack = get_stack(parent_data)
if stack == nil then
parent_data, stack = make_stack(parent_data)
end
-- Sisipkan data input sebagai lapisan teratas baharu bagi tindanan.
local n = stack[make_stack] + 1
data, stack[n], stack[make_stack] = parent_data, data, n
end
lang._data = data
return setmetatable(lang, parent)
end
make_object = export.makeObject
end
--[==[Mencari bahasa yang kodnya sepadan dengan yang dibekalkan. Jika ia wujud, ia mengembalikan objek <code class="nf">Language</code> yang mewakili bahasa tersebut. Sebaliknya, ia mengembalikan {{code|lua|nil}}, melainkan jika <code class="n">paramForError</code> diberikan, yang mana ralat akan dijana. Jika <code class="n">paramForError</code> bernilai {{code|lua|true}}, mesej ralat generik yang menyatakan kod tidak sah akan dijana; selain itu <code class="n">paramForError</code> sepatutnya rentetan atau nombor yang menyatakan parameter punca kod tersebut, dan parameter ini akan dinyatakan dalam mesej ralat bersama kod yang salah. Jika <code class="n">allowEtymLang</code> dinyatakan, kod bahasa khusus etimologi dibenarkan dan dicari bersama kod bahasa biasa. Jika <code class="n">allowFamily</code> dinyatakan, kod keluarga bahasa dibenarkan dan dicari bersama kod bahasa biasa.]==]
function export.getByCode(code, paramForError, allowEtymLang, allowFamily)
-- Jejaki penggunaan paramForError, bertujuan untuk membolehkannya dialih keluar akhirnya, kerana pengendalian ralat sepatutnya dilakukan oleh [[Module:parameters]], bukan di sini.
if paramForError ~= nil then
track("paramForError")
end
if type(code) ~= "string" then
local typ
if not code then
typ = "nil"
elseif check_object("language", true, code) then
typ = "objek bahasa"
elseif check_object("family", true, code) then
typ = "objek keluarga"
else
typ = type(code)
end
error("Fungsi getByCode menjangkakan rentetan sebagai hujah pertamanya, tetapi menerima " .. typ .. ".")
end
local m_data = load_data(languages_data_module)
if m_data.aliases[code] or m_data.track[code] then
track(code)
end
local norm_code = normalize_code(code)
-- Dapatkan data, menyemak bahasa khusus etimologi jika allowEtymLang ditetapkan.
local data = load_data(get_data_module_name(norm_code))[norm_code] or
allowEtymLang and load_data(etymology_languages_data_module)[norm_code]
-- Jika tiada data ditemui dan allowFamily ditetapkan, semak data keluarga. Jika data keluarga utama ditemui, bina objek menggunakan [[Module:families]] sebagai ganti, kerana objek keluarga mempunyai kaedah yang berbeza. Walau bagaimanapun, jika ia keluarga khusus etimologi, gunakan make_object dalam modul ini (yang mengendalikan pewarisan objek), dan kaedah khusus keluarga akan diwarisi daripada objek induk.
if data == nil and allowFamily then
data = load_data("Module:families/data")[norm_code]
if data ~= nil then
if data.parent == nil then
return make_family_object(norm_code, data)
elseif not allowEtymLang then
data = nil
end
end
end
local retval = code and data and make_object(code, data)
if not retval and paramForError then
require("Module:languages/errorGetBy").code(code, paramForError, allowEtymLang, allowFamily)
end
return retval
end
get_by_code = export.getByCode
--[==[Mencari bahasa yang nama kanoniknya (nama yang digunakan untuk mewakili bahasa tersebut di Wiktionary) atau nama lainnya sepadan dengan yang dibekalkan. Jika wujud, ia mengembalikan objek <code class="nf">Language</code> yang mewakili bahasa tersebut. Sebaliknya, ia mengembalikan {{code|lua|nil}}, melainkan <code class="n">paramForError</code> diberikan, yang mana ralat akan dijana. Jika <code class="n">allowEtymLang</code> dinyatakan, kod bahasa khusus etimologi dibenarkan dan dicari bersama kod bahasa biasa. Jika <code class="n">allowFamily</code> dinyatakan, kod keluarga bahasa dibenarkan dan dicari bersama kod bahasa biasa.
Nama kanonik bahasa mestilah sentiasa unik (adalah menjadi ralat bagi dua bahasa di Wiktionary berkongsi nama kanonik yang sama), jadi fungsi ini dijamin memberikan selebih-lebihnya satu hasil.
Fungsi ini dikuasakan oleh [[Module:languages/canonical names]], yang mengandungi pemetaan prapapar nama kanonik bahasa penuh kepada kod. Ia dijana dengan meneliti [[:Kategori:Modul data bahasa]] bagi bahasa penuh. Apabila <code class="n">allowEtymLang</code> dinyatakan untuk fungsi di atas, [[Module:etymology languages/canonical names]] juga boleh digunakan, dan apabila <code class="n">allowFamily</code> dinyatakan untuk fungsi di atas, [[Module:families/canonical names]] juga boleh digunakan.]==]
function export.getByCanonicalName(name, errorIfInvalid, allowEtymLang, allowFamily)
local byName = load_data("Module:languages/canonical names")
local code = byName and byName[name]
if not code and allowEtymLang then
byName = load_data("Module:etymology languages/canonical names")
code = byName and byName[name] or
byName[gsub(name, " [Ss]ubstrate$", "")] or
byName[gsub(name, "^a ", "")] or
byName[gsub(name, "^a ", ""):gsub(" [Ss]ubstrate$", "")] or
-- Untuk keluarga etimologi seperti "ira-pro".
-- AMARAN: Ini kurang ideal, kerana ia membenarkan " languages" dilampirkan pada mana-mana bahasa khusus etimologi juga.
byName[match(name, "^(.*) languages$")]
end
if not code and allowFamily then
byName = load_data("Module:families/canonical names")
code = byName[name] or byName[match(name, "^(.*) languages$")]
end
local retval = code and get_by_code(code, errorIfInvalid, allowEtymLang, allowFamily)
if not retval and errorIfInvalid then
require("Module:languages/errorGetBy").canonicalName(name, allowEtymLang, allowFamily)
end
return retval
end
--[==[Digunakan oleh [[Module:languages/data/2]] (dan lain-lain) serta [[Module:etymology languages/data]], [[Module:families/data]], [[Module:scripts/data]] dan [[Module:writing systems/data]] untuk memuktamadkan data ke dalam format yang sebenarnya dikembalikan.]==]
function export.finalizeData(data, main_type, variety)
local fields = {"type"}
if main_type == "language" then
insert(fields, 4) -- kod skrip
insert(fields, "ancestors")
insert(fields, "link_tr")
insert(fields, "override_translit")
insert(fields, "wikimedia_codes")
elseif main_type == "script" then
insert(fields, 3) -- kod sistem tulisan
end -- Keluarga dan sistem tulisan tidak mempunyai medan tambahan untuk diproses.
local fields_len = #fields
for _, entity in next, data do
if variety then
-- Pindahkan induk daripada 3 ke "parent" dan keluarga daripada "family" ke 3. Ini berbeza atas dasar kemudahan, memandangkan sangat sedikit variasi yang menyatakan keluarga, manakala kesemuanya mempunyai induk.
entity.parent, entity[3], entity.family = entity[3], entity.family
-- Berikan jenis "regular" jika dan hanya jika bukan variasi dan tiada jenis lain yang ditetapkan.
elseif not (entity.type or entity.parent) then
entity.type = "regular"
end
for i = 1, fields_len do
local key = fields[i]
local field = entity[key]
if field and type(field) == "string" then
entity[key] = gsub(field, "%s*,%s*", ",")
end
end
end
return data
end
--[==[Untuk keserasian ke belakang sahaja; modul sepatutnya memerlukan fail ralat itu sendiri.]==]
function export.err(lang_code, param, code_desc, template_tag, not_real_lang)
return require("Module:languages/error")(lang_code, param, code_desc, template_tag, not_real_lang)
end
return export
gv1pu20d5etzat42jkze840gpmtosvu
373535
373516
2026-09-11T08:37:56Z
Hakimi97
2668
Penyetempatan nama bahasa dan keluarga bahasa
373535
Scribunto
text/plain
--[==[ intro:
Modul ini melaksanakan pengambilan maklumat khusus bahasa dan pemprosesan teks dalam bahasa yang diberikan.
===Jenis-jenis bahasa===
Terdapat dua jenis bahasa: bahasa penuh dan bahasa khusus etimologi. Perbezaan ketara ialah hanya bahasa penuh
yang muncul dalam tajuk L2 pada entri kosa kata, justeru kategori seperti [[:Kategori:Kata nama bahasa Perancis]] hanya
wujud untuk bahasa penuh. Bahasa khusus etimologi mempunyai sama ada bahasa penuh atau bahasa khusus etimologi yang
lain sebagai induknya (dalam erti pewarisan induk-anak), dan bagi bahasa khusus etimologi yang berindukkan bahasa
khusus etimologi yang lain, bahasa penuh sentiasa dapat diterbitkan dengan menuruti pautan induk ke atas. Contohnya,
"Perancis Kanada", kod `fr-CA`, ialah bahasa khusus etimologi yang berindukkan bahasa penuh "Perancis", kod `fr`.
Contoh bahasa khusus etimologi dengan induk khusus etimologi yang lain ialah "Inggeris Kuno Northumbria", kod `ang-nor`,
yang mempunyai "Inggeris Kuno Anglian", kod `ang-ang` sebagai induknya; ini ialah bahasa khusus etimologi yang induknya
ialah "Inggeris Kuno", kod `ang`, iaitu bahasa penuh. (Ini adalah kerana Inggeris Kuno Northumbria dianggap sebagai satu
variasi bagi Inggeris Kuno Anglian.) Kadangkala induknya ialah bahasa "Tidak Ditentukan", kod `und`; hal ini berlaku,
sebagai contoh, bagi bahasa-bahasa "substrat" seperti "Pra-Yunani", kod `qsb-grc`, dan "substrat BMAC", kod `qsb-bma`.
Adalah penting untuk membezakan ''induk'' bahasa daripada ''leluhur'' bahasa. Hubungan induk-anak ialah hubungan
pembendungan, iaitu jika X ialah anak kepada Y, X dianggap sebagai satu variasi bagi Y. Sebaliknya, hubungan
leluhur-keturunan ialah hubungan penurunan mengikut masa. Sebagai contoh, "Latin Klasik", kod `la-cla`, dan "Latin Akhir",
kod `la-lat`, kedua-duanya adalah bahasa khusus etimologi yang mempunyai "Latin", kod `la`, sebagai induknya, kerana
kedua-dua bahasa terdahulu merupakan variasi bagi bahasa Latin. Walau bagaimanapun, Latin Akhir *TIDAK* mempunyai
Latin Klasik sebagai induknya kerana Latin Akhir *bukan* variasi bagi Latin Klasik; sebaliknya, ia adalah keturunannya.
Sebenarnya terdapat medan `ancestors` berasingan yang digunakan untuk menyatakan hubungan leluhur-keturunan, dan
leluhur bagi Latin Akhir diberikan sebagai Latin Klasik. Perlu diambil perhatian juga bahawa kadangkala bahasa khusus
etimologi sebenarnya merupakan leluhur konseptual kepada bahasa induknya sendiri. Ini berlaku, misalnya, dengan
"Itali Kuno" (kod `roa-oit`), yang merupakan varian khusus etimologi bagi bahasa penuh "Itali" (kod `it`), dan dengan
"Latin Kuno" (kod `itc-ola`), yang merupakan varian khusus etimologi bagi Latin. Dalam kedua-dua kes, bahasa penuh
menyenaraikan varian khusus etimologi sebagai leluhur. Ini membolehkan sesuatu istilah Latin mewarisi daripada Latin Kuno
menggunakan templat {{tl|inh}} (di mana dalam templat ini, "pewarisan" merujuk kepada pewarisan keturunan/leluhur,
iaitu pewarisan mengikut garis masa, bukannya dalam erti induk-anak); begitu juga bagi bahasa Itali dan Itali Kuno.
Bahasa penuh terbahagi kepada tiga subjenis:
* {regular}: Ini menunjukkan bahasa penuh yang diperakui mengikut [[WT:CFI]] dan oleh itu dibenarkan dalam ruang nama
utama. Mungkin terdapat juga istilah yang direkonstruksi untuk bahasa tersebut, yang diletakkan dalam ruang
nama {Rekonstruksi} dan mesti diawali dengan tanda * untuk menunjukkan rekonstruksi. Kebanyakan bahasa penuh
ialah bahasa semula jadi (bukan bahasa buatan), namun beberapa bahasa buatan (cth. Esperanto dan Volapük,
antara lain) juga dibenarkan dalam ruang nama utama dan dianggap sebagai bahasa biasa.
* {reconstructed}: Bahasa ini tidak diperakui mengikut [[WT:CFI]], dan oleh itu hanya dibenarkan dalam ruang nama
{Rekonstruksi}. Semua istilah dalam bahasa ini adalah yang direkonstruksi, dan mesti diawali dengan
tanda *. Bahasa seperti Proto-Indo-Eropah dan Proto-Jermanik berada dalam kategori ini.
* {appendix-constructed}: Bahasa ini diperakui tetapi tidak memenuhi syarat tambahan yang ditetapkan untuk bahasa
buatan ([[WT:CFI#Constructed languages]]). Entrinya mestilah berada dalam ruang nama Lampiran,
tetapi ia tidak direkonstruksi dan oleh itu tidak sepatutnya diawali dengan tanda * dalam pautan.
Kebanyakan bahasa buatan tergolong dalam subjenis ini.
Kedua-dua bahasa penuh dan bahasa khusus etimologi mempunyai objek {Language} yang dikaitkan dengannya, yang diambil
menggunakan fungsi {getByCode} dalam [[Module:languages]] untuk menukar kod bahasa kepada objek {Language}. Bergantung
pada pilihan yang dibekalkan kepada fungsi ini, bahasa khusus etimologi mungkin diterima atau tidak, dan kod keluarga
mungkin diterima (mengembalikan objek {Family} seperti yang diterangkan dalam [[Module:families]]). Terdapat juga fungsi
{getByCanonicalName} yang berasingan dalam [[Module:languages]] dan [[Module:etymology languages]] untuk menukar nama
kanonik sesuatu bahasa kepada objek {Language} (bergantung pada sama ada nama kanonik merujuk kepada bahasa penuh atau
bahasa khusus etimologi).
===Perwakilan teks===
Rentetan teks yang tergolong dalam sesuatu bahasa hadir dalam beberapa ''varian teks'' yang berbeza:
# ''Teks input'' ialah teks yang dibekalkan oleh pengguna dalam teks wiki, dalam parameter kepada {{tl|m}}, {{tl|l}},
{{tl|ux}}, {{tl|t}}, {{tl|lang}} dan seumpamanya.
# ''Teks input yang diperbetul'' ialah teks input yang telah diterapkan beberapa pembetulan dan/atau penormalan,
seperti penggantian aksara lapuk atau salah bagi sesetengah bahasa, contohnya menggantikan `l` atau `1` kepada
[[palochka]] dalam beberapa bahasa yang ditulis dalam abjad Cyril. (AMARAN: Ini kini berjalan di bawah nama
''display text'' tetapi ia akan diubah peranannya di bawah. Selain itu, [[User:Surjection]] mencadangkan menamakan
semula ini sebagai ''normalized input text'', tetapi "normalized" digunakan dalam pengertian berbeza dalam [[Module:usex]].)
# ''Teks paparan'' ialah teks dalam bentuk sebagaimana yang akan dipaparkan kepada pengguna. Inilah yang muncul dalam
kata kepala, dalam contoh penggunaan (usex), dalam pautan dalaman yang dipaparkan, dsb. Ini boleh merangkumi tanda diakritik
yang dialih keluar untuk membentuk teks paparan jalur (lihat di bawah), serta pautan dalam kurungan bertanam yang
diproses selanjutnya melalui pelbagai kaedah. Teks paparan dijana daripada teks input yang diperbetul dengan menerapkan
penjelmaan khusus bahasa; untuk kebanyakan bahasa, tiada penjelmaan sedemikian. Sebab utama perbezaan antara teks input
dan teks paparan adalah untuk membolehkan maklumat tambahan dalam teks input yang tidak dipaparkan kepada pengguna tetapi
dihantar ke modul transliterasi. Ambil perhatian bahawa perbezaan paparan dan teks input buat masa ini hanya disokong
melalui pengendalian khas tetapi akan digeneralisasikan. Contoh transformasi ialah: (1) Mengalih keluar {{cd|^}} yang
digunakan dalam sesetengah bahasa Asia Timur (dan mungkin bahasa unikameral lain) untuk menandakan penulisan huruf besar
bagi transliterasi (yang pada masa ini dikendalikan secara khas); (2) untuk bahasa Korea, mengalih keluar atau memproses
tanda sempang (yang kini dikendalikan secara khas); (3) untuk bahasa Arab, mengalih keluar tanda diakritik ''sukun''
yang diletakkan di atas ''ta marbutah'' (seperti ini: ةْ) untuk menandakan bahawa ''ta marbutah'' dibunyikan dan
ditransliterasikan sebagai /t/ dan bukannya senyap [NOTA, BELUM DILAKSANAKAN]; (4) untuk bahasa Thai dan Khmer,
menukar perkataan yang dipisahkan ruang kepada perkataan berpasangan kurungan dan meleraikan penggantian ejaan semula
seperti `[กรีน/กฺรีน]`, yang menunjukkan cara mentransliterasikan perkataan yang diberikan [NOTA, BELUM DILAKSANAKAN
kecuali dalam templat khusus bahasa seperti {{tl|th-usex}}].
## ''Teks paparan leraian kanan'' ialah hasil daripada mengalih keluar tanda kurung pada pautan bertanam satu bahagian
dan meleraikan pautan bertanam dua bahagian kepada komponen sebelah kanannya (iaitu menukar pautan dua bahagian ke dalam
bentuk yang dipaparkan). Proses leraian kanan berlaku apabila anda memanggil fungsi {{cd|remove_links()}} dalam
[[Module:links]] pada sesuatu teks. Apabila diterapkan pada teks paparan, ia menghasilkan apa yang dilihat oleh
pengguna dengan tepat, tanpa sebarang penanda pautan.
# ''Teks paparan jalur'' ialah hasil daripada penerapan penanggalan tanda diakritik pada teks paparan.
## ''Teks paparan jalur leraian kiri'' [PERLU NAMA LEBIH BAIK] ialah hasil daripada penerapan leraian kiri pada teks
paparan jalur, iaitu serupa dengan leraian kanan tetapi meleraikan pautan bertanam dua bahagian kepada komponen
sebelah kirinya (iaitu halaman sasaran pautan). Jika teks paparan merujuk kepada satu halaman sahaja, hasil daripada
menerapkan penanggalan tanda diakritik dan leraian kiri akan menghasilkan ''nama halaman logik''.
# ''Teks nama halaman fizikal'' ialah hasil daripada penukaran teks paparan jalur kepada pautan halaman fizikal. Jika teks
paparan jalur mengandungi pautan bertanam, sebelah kiri pautan tersebut ditukar menjadi pautan halaman fizikal; jika
tidak, keseluruhan teks dianggap sebagai nama halaman dan ditukar dengan cara yang sama. Penukaran melakukan tiga perkara:
(1) menukar aksara yang tidak dibenarkan dalam nama halaman kepada perwakilan "tajuk tidak disokong", cth.
{{cd|Unsupported titles/`gt`}} menggantikan nama logik {{cd|>}}; (2) mengendalikan nama halaman logik tajuk tidak
disokong yang dikendalikan khas, seperti {{cd|Unsupported titles/Space}} menggantikan {{cd|[space]}} dan
{{cd|Unsupported titles/Ancient Greek dish}} menggantikan nama Yunani yang sangat panjang untuk hidangan gourmet
seperti yang terdapat dalam Aristophanes; (3) menukar nama halaman "gergasi" seperti [[a]] kepada komponen pisahan yang
sesuai, cth. [[a/languages A to L]].
# ''Teks transliterasi sumber'' ialah teks seperti yang dibekalkan kepada kaedah {{cd|transliterate()}} khusus bahasa. Bentuk
teks transliterasi sumber mungkin perlu khusus mengikut bahasa, cth. bahasa Thai dan Khmer memerlukan teks input yang
diperbetul, manakala bahasa lain mungkin perlu beroperasi daripada teks paparan. [AMARAN: Masih belum jelas bagaimana
pautan bertanam dalam tanda kurung dikendalikan dalam kod sedia ada.] Secara umumnya, pautan bertanam perlu dileraikan ke kanan
(lihat di atas), namun waktu proses ini berlaku masih belum jelas [AMARAN]. Sesetengah bahasa mempunyai skim potong-dan-cantum
yang menghantar bahagian teks melalui mekanisme transliterasi, dan untuk bahasa lain (yang disenaraikan dengan "cont"
dalam {{cd|substitution}} dalam [[Module:languages/data]]) ia menerima keseluruhan teks input tetapi telah dipraproses
melalui cara tertentu. (Kesesuaian kaedah ini masih belum jelas.)
# ''Teks transliterasi'' (atau ''transliterasi'') ialah hasil daripada mentransliterasikan teks transliterasi sumber.
Tidak seperti semua varian teks yang lain kecuali teks transkripsi, ia sentiasa berada dalam skrip Rumi (Latin).
# ''Teks transkripsi'' (atau ''transkripsi'') ialah hasil daripada mentranskripsikan teks transliterasi sumber, di mana
"transkripsi" di sini bermaksud anggaran yang hampir dengan bentuk fonetik bahasa dalam bahasa-bahasa (cth. Akkadia,
Sumeria, Mesir Purba, barangkali Tibet) yang mempunyai perbezaan ketara antara huruf bertulis dan bentuk pertuturan.
Tidak seperti semua varian teks lain selain teks transliterasi, ia sentiasa berada dalam skrip Rumi (Latin). Pada masa
ini, teks transkripsi sentiasa dibekalkan secara manual oleh pengguna; tiada kaedah {{cd|transcribe()}} pada objek bahasa.
# ''Kunci isih'' ialah teks yang digunakan dalam kunci isihan untuk menentukan kedudukan susunan halaman dalam kategori
yang disertainya. Kunci isih dijana daripada nama halaman atau ''asas isih'' tertentu dengan menukarkannya kepada huruf
kecil, melakukan penjelmaan khusus bahasa dan kemudian menukarkan hasilnya kepada huruf besar. Sekiranya asas isih
dibekalkan dan dijana daripada teks input, ia perlu ditukar kepada teks paparan, pautan bertanam dialih keluar melalui
leraian kanan dan penanggalan tanda diakritik diterapkan.
# Terdapat varian teks lain yang berlaku dalam contoh penggunaan / usex (khususnya, terdapat varian ternormal bagi
beberapa varian teks di atas), tetapi kita boleh melangkau bahagian tersebut buat masa ini.
Kaedah-kaedah berikut wujud pada objek {Language} untuk menukar antara varian teks yang berbeza:
# {correctInputText} (kini dipanggil {makeDisplayText}): Ini menukar teks input kepada teks input yang diperbetul.
# {stripDiacritics}: Ini menukar kepada teks paparan jalur. [AMARAN: Ini memerlukan penelitian semula. Khususnya,
{stripDiacritics} kadangkala dipanggil pada teks input, teks input yang diperbetul atau teks paparan (dalam pelbagai
laluan di dalam [[Module:links]], dan, dalam kes teks input, biasanya daripada modul lain). Kita perlu memastikan kita
tidak cuba menukar teks input kepada teks paparan sebanyak dua kali, namun pada masa yang sama kita perlu menyokong
panggilan terus padanya bagi teks input memandangkan banyak modul berbuat demikian. Ini bermakna kita perlu menambah
parameter yang menandakan sama ada teks yang dimasukkan ialah teks input, teks input yang diperbetul, atau teks paparan;
jika dua yang pertama, kita memanggil {correctInputText} secara automatik.]
# {logicalToPhysical}: Ini menukar nama halaman logik kepada nama halaman fizikal.
# {transliterate}: Ini berfungsi menukar teks input dengan tanda kurung bertanam yang dialih keluar kepada transliterasi.
[AMARAN: Ini memerlukan penelitian semula. Khususnya, ia memanggil {processDisplayText} pada inputnya, yang tidak akan
berfungsi untuk bahasa Thai dan Khmer, jadi kita mungkin memerlukan bendera khusus bahasa yang menandakan sama ada
untuk menghantar teks input secara terus kepada kaedah transliterasi bahasa. Selain itu, saya tidak pasti bagaimana
pautan bertanam dikendalikan dalam kod transliterasi sedia ada; banyak pemanggil mengalih keluar pautan sendiri sebelum
memanggil {transliterate()}, yang saya anggap kurang tepat.]
# {makeSortKey}: Ini menukar teks paparan (?) kepada kunci isih. [AMARAN: Perlu perjelasan.]
]==]
local export = {}
local debug_track_module = "Modul:debug/track"
local etymology_languages_data_module = "Modul:etymology languages/data"
local families_module = "Modul:families"
local headword_page_module = "Modul:headword/page"
local json_module = "Modul:JSON"
local language_like_module = "Modul:language-like"
local languages_data_module = "Modul:languages/data"
local languages_data_patterns_module = "Modul:languages/data/patterns"
local links_data_module = "Modul:links/data"
local load_module = "Modul:load"
local scripts_module = "Modul:scripts"
local scripts_data_module = "Modul:scripts/data"
local string_encode_entities_module = "Modul:string/encode entities"
local string_pattern_escape_module = "Modul:string/patternEscape"
local string_replacement_escape_module = "Modul:string/replacementEscape"
local string_utilities_module = "Modul:string utilities"
local table_module = "Modul:table"
local utilities_module = "Modul:utilities"
local wikimedia_languages_module = "Modul:wikimedia languages"
local mw = mw
local string = string
local table = table
local char = string.char
local concat = table.concat
local find = string.find
local floor = math.floor
local get_by_code -- Ditakrifkan di bawah.
local get_data_module_name -- Ditakrifkan di bawah.
local get_extra_data_module_name -- Ditakrifkan di bawah.
local getmetatable = getmetatable
local gmatch = string.gmatch
local gsub = string.gsub
local insert = table.insert
local ipairs = ipairs
local is_known_language_tag = mw.language.isKnownLanguageTag
local make_object -- Ditakrifkan di bawah.
local match = string.match
local next = next
local pairs = pairs
local remove = table.remove
local require = require
local select = select
local setmetatable = setmetatable
local sub = string.sub
local type = type
local unstrip = mw.text.unstrip
-- Dimuatkan mengikut keperluan oleh findBestScript.
local Hans_chars
local Hant_chars
local function check_object(...)
check_object = require(utilities_module).check_object
return check_object(...)
end
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function decode_entities(...)
decode_entities = require(string_utilities_module).decode_entities
return decode_entities(...)
end
local function decode_uri(...)
decode_uri = require(string_utilities_module).decode_uri
return decode_uri(...)
end
local function deep_copy(...)
deep_copy = require(table_module).deepCopy
return deep_copy(...)
end
local function encode_entities(...)
encode_entities = require(string_encode_entities_module)
return encode_entities(...)
end
local function get_L2_sort_key(...)
get_L2_sort_key = require(headword_page_module).get_L2_sort_key
return get_L2_sort_key(...)
end
local function get_script(...)
get_script = require(scripts_module).getByCode
return get_script(...)
end
local function find_best_script_without_lang(...)
find_best_script_without_lang = require(scripts_module).findBestScriptWithoutLang
return find_best_script_without_lang(...)
end
local function get_family(...)
get_family = require(families_module).getByCode
return get_family(...)
end
local function get_plaintext(...)
get_plaintext = require(utilities_module).get_plaintext
return get_plaintext(...)
end
local function get_wikimedia_lang(...)
get_wikimedia_lang = require(wikimedia_languages_module).getByCode
return get_wikimedia_lang(...)
end
local function keys_to_list(...)
keys_to_list = require(table_module).keysToList
return keys_to_list(...)
end
local function list_to_set(...)
list_to_set = require(table_module).listToSet
return list_to_set(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function make_family_object(...)
make_family_object = require(families_module).makeObject
return make_family_object(...)
end
local function pattern_escape(...)
pattern_escape = require(string_pattern_escape_module)
return pattern_escape(...)
end
local function replacement_escape(...)
replacement_escape = require(string_replacement_escape_module)
return replacement_escape(...)
end
local function safe_require(...)
safe_require = require(load_module).safe_require
return safe_require(...)
end
local function shallow_copy(...)
shallow_copy = require(table_module).shallowCopy
return shallow_copy(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function to_json(...)
to_json = require(json_module).toJSON
return to_json(...)
end
local function u(...)
u = require(string_utilities_module).char
return u(...)
end
local function ugsub(...)
ugsub = require(string_utilities_module).gsub
return ugsub(...)
end
local function ulen(...)
ulen = require(string_utilities_module).len
return ulen(...)
end
local function ulower(...)
ulower = require(string_utilities_module).lower
return ulower(...)
end
local function umatch(...)
umatch = require(string_utilities_module).match
return umatch(...)
end
local function uupper(...)
uupper = require(string_utilities_module).upper
return uupper(...)
end
local function track(page)
debug_track("languages/" .. page)
return true
end
local function normalize_code(code)
return load_data(languages_data_module).aliases[code] or code
end
local function check_inputs(self, check, default, ...)
local n = select("#", ...)
if n == 0 then
return false
end
local ret = check(self, (...))
if ret ~= nil then
return ret
elseif n > 1 then
local inputs = {...}
for i = 2, n do
ret = check(self, inputs[i])
if ret ~= nil then
return ret
end
end
end
return default
end
local function make_link(self, target, display)
local prefix, main
if self:getFamilyCode() == "qfa-sub" then
prefix, main = display:match("^(the )(.*)")
if not prefix then
prefix, main = display:match("^(a )(.*)")
end
end
return (prefix or "") .. "[[" .. target .. "|" .. (main or display) .. "]]"
end
-- Menukar aksara berisiko kepada entiti HTML, yang meminimumkan gangguan setelah dikembalikan (cth. untuk "sms:a", "<!-- -->" dsb.).
local function escape_risky_characters(text)
-- Aksara penjarakan secara berasingan secara amnya perlu dilepaskan untuk diproses dengan betul oleh perisian MediaWiki.
if umatch(text, "^%s*$") then
return encode_entities(text, text)
end
return encode_entities(text, "!#%&*+/:;<=>?@[\\]_{|}")
end
-- Menukar pelbagai aksara pemformatan kepada PUA buat sementara waktu bagi mengelakkannya terganggu oleh proses penggantian.
local function doTempSubstitutions(text, subbedChars, keepCarets, noTrim)
-- Klon supaya kita tidak menyelitkan sebarang corak tambahan ke dalam jadual dalam package.loaded. Atas sebab tertentu, penggunaan require dilihat dapat mengekalkan penggunaan memori yang rendah; mungkin kerana jadual sentiasa diklon.
local patterns = shallow_copy(require(languages_data_patterns_module))
if keepCarets then
insert(patterns, "((\\+)%^)")
insert(patterns, "((%^))")
end
-- Memastikan sebarang ruang putih pada permulaan dan penghujung digantikan sementara, untuk mengelakkannya daripada dipangkas secara tidak sengaja. Kita hanya mahu memangkas sebarang ruang akhir yang ditambah semasa proses penggantian (cth. oleh modul), yang bermaksud kita hanya melakukan ini semasa pusingan pertama penggantian sementara.
if not noTrim then
insert(patterns, "^([\128-\191\244]*(%s+))")
insert(patterns, "((%s+)[\128-\191\244]*)$")
end
-- Pra-penggantian bagi "[[" dan "]]", yang menjadikan pemadanan corak lebih tepat.
text = gsub(text, "%f[%[]%[%[", "\1"):gsub("%f[%]]%]%]", "\2")
local i = #subbedChars
for _, pattern in ipairs(patterns) do
-- Corak yang berakhir dengan \0 adalah untuk perkara seperti "[[" atau "]]"), jadi PUA yang diselitkan dianggap sebagai pemisah antara istilah oleh modul yang mengikis maklumat daripada halaman.
local term_divider
pattern = gsub(pattern, "%z$", function(divider)
term_divider = divider == "\0"
return ""
end)
text = gsub(text, pattern, function(...)
local m = {...}
local m1New = m[1]
for k = 2, #m do
local n = i + k - 1
subbedChars[n] = m[k]
local byte2 = floor(n / 4096) % 64 + (term_divider and 128 or 136)
local byte3 = floor(n / 64) % 64 + 128
local byte4 = n % 64 + 128
m1New = gsub(m1New, pattern_escape(m[k]), "\244" .. char(byte2) .. char(byte3) .. char(byte4), 1)
end
i = i + #m - 1
return m1New
end)
end
text = gsub(text, "\1", "%[%["):gsub("\2", "%]%]")
return text, subbedChars
end
-- Menyisip semula sebarang pemformatan yang digantikan buat sementara waktu.
local function undoTempSubstitutions(text, subbedChars)
for i = 1, #subbedChars do
local byte2 = floor(i / 4096) % 64 + 128
local byte3 = floor(i / 64) % 64 + 128
local byte4 = i % 64 + 128
text = gsub(text, "\244[" .. char(byte2) .. char(byte2+8) .. "]" .. char(byte3) .. char(byte4),
replacement_escape(subbedChars[i]))
end
text = gsub(text, "\1", "%[%["):gsub("\2", "%]%]")
return text
end
-- Menyemak sama ada teks mentah ialah tajuk yang tidak disokong, dan jika ya kembalikannya. Jika tidak, alih keluar entiti HTML. Kita melakukan pra-penukaran untuk mengelakkan pemuatan senarai tajuk tidak disokong tanpa keperluan.
local function checkNoEntities(self, text)
local textNoEnc = decode_entities(text)
if textNoEnc ~= text and load_data(links_data_module).unsupported_titles[text] then
return text
else
return textNoEnc
end
end
-- Jika tiada objek skrip disediakan (atau jika tidak sah atau None), dapatkan satu.
local function checkScript(text, self, sc)
if not check_object("script", true, sc) or sc:getCode() == "None" then
return self:findBestScript(text)
end
return sc
end
local function normalize(text, sc)
text = sc:fixDiscouragedSequences(text)
return sc:toFixedNFD(text)
end
-- Subfungsi bagi iterateSectionSubstitutions(). Memproses bahagian teks individu mengikut spesifikasi dalam
-- `substitution_data`. Parameter input adalah seperti dalam dokumentasi iterateSectionSubstitutions() kecuali untuk
-- `recursed`, yang ditetapkan kepada true jika kita memanggil diri sendiri secara rekursif untuk memproses tetapan
-- khusus skrip atau sandaran seluruh skrip. Mengembalikan dua nilai: teks yang diproses dan data penggantian sebenar yang digunakan untuk melakukan penggantian (sama seperti nilai pulangan `actual_substitution_data` kepada iterateSectionSubstitutions()).
local function doSubstitutions(self, text, sc, substitution_data, data_field, function_name, recursed)
-- BERHATI-HATI dalam fungsi ini kerana nilai pada mana-mana peringkat boleh bernilai `false`, yang menyebabkan tiada pemprosesan dilakukan
-- dan menyekat sebarang pemprosesan sandaran selanjutnya.
local actual_substitution_data = substitution_data
-- Jika terdapat pengganti khusus bahasa yang diberikan dalam modul data, gunakannya.
if type(substitution_data) == "table" then
-- Jika skrip dinyatakan, jalankan fungsi ini dengan data khusus skrip sebelum meneruskan.
local sc_code = sc:getCode()
local has_substitution_data = false
if substitution_data[sc_code] ~= nil then
has_substitution_data = true
if substitution_data[sc_code] then
text, actual_substitution_data = doSubstitutions(self, text, sc, substitution_data[sc_code], data_field,
function_name, true)
end
-- Hant, Hans dan Hani biasanya dilayan sama, jadi tambah kes khas untuk mengelakkan daripada menyatakan setiap satu
-- secara berasingan.
elseif sc_code:match("^Han") and substitution_data.Hani ~= nil then
has_substitution_data = true
if substitution_data.Hani then
text, actual_substitution_data = doSubstitutions(self, text, sc, substitution_data.Hani, data_field,
function_name, true)
end
-- Data penggantian dengan kunci 1 dalam jadual luar boleh diberikan sebagai sandaran.
elseif substitution_data[1] ~= nil then
has_substitution_data = true
if substitution_data[1] then
text, actual_substitution_data = doSubstitutions(self, text, sc, substitution_data[1], data_field,
function_name, true)
end
end
-- Mengulangi semua rentetan dalam subjadual "from", dan lakukan gsub dengan rentetan sepadan dalam "to". Kita bekerja dengan
-- bentuk terurai NFD, kerana ini memudahkan banyak penggantian.
if substitution_data.from then
has_substitution_data = true
for i, from in ipairs(substitution_data.from) do
-- Menormalkan setiap gelung, untuk memastikan penggantian pelbagai peringkat berfungsi dengan betul.
text = sc:toFixedNFD(text)
text = ugsub(text, sc:toFixedNFD(from), substitution_data.to[i] or "")
end
end
if substitution_data.remove_diacritics then
has_substitution_data = true
text = sc:toFixedNFD(text)
-- Menukar pengecualian kepada PUA.
local remove_exceptions, substitutes = substitution_data.remove_exceptions
if remove_exceptions then
substitutes = {}
local i = 0
for _, exception in ipairs(remove_exceptions) do
exception = sc:toFixedNFD(exception)
text = ugsub(text, exception, function(m)
i = i + 1
local subst = u(0x80000 + i)
substitutes[subst] = m
return subst
end)
end
end
-- Menanggalkan tanda diakritik.
text = ugsub(text, "[" .. substitution_data.remove_diacritics .. "]", "")
-- Menukar pengecualian kembali.
if remove_exceptions then
text = text:gsub("\242[\128-\191]*", substitutes)
end
end
if not has_substitution_data and sc._data[data_field] then
-- Jika kunci isih khusus bahasa (dsb.) adalah nil, kembali kepada kunci isih seluruh skrip (dsb.).
text, actual_substitution_data = doSubstitutions(self, text, sc, sc._data[data_field], data_field,
function_name, true)
end
elseif type(substitution_data) == "string" then
-- Jika terdapat modul fungsi khusus, gunakannya.
local module = safe_require("Modul:" .. substitution_data)
if module then
-- TODO: fungsi translit sepatutnya menerima objek, bukan kod.
-- TODO: fungsi translit sepatutnya dipanggil dengan bentuk NFD.
if function_name == "tr" then
if not module[function_name] then
error(("Ralat dalaman: Modul [[%s]] tidak mempunyai fungsi bernama 'tr'"):format(substitution_data))
end
text = module[function_name](text, self._code, sc:getCode())
elseif function_name == "stripDiacritics" then
-- AMARAN: buang cabang ini selepas menamakan semula makeEntryName -> stripDiacritics.
if module[function_name] then
text = module[function_name](sc:toFixedNFD(text), self, sc)
elseif module.makeEntryName then
text = module.makeEntryName(sc:toFixedNFD(text), self, sc)
else
error(("Ralat dalaman: Modul [[%s]] tidak mempunyai fungsi bernama 'stripDiacritics' atau 'makeEntryName'"
):format(substitution_data))
end
else
if not module[function_name] then
error(("Ralat dalaman: Modul [[%s]] tidak mempunyai fungsi bernama '%s'"):format(
substitution_data, function_name))
end
text = module[function_name](sc:toFixedNFD(text), self, sc)
end
else
error("Data penggantian '" .. substitution_data .. "' tidak sepadan dengan modul sedia ada.")
end
elseif substitution_data == nil and sc._data[data_field] then
-- Jika kunci isih khusus bahasa (dsb.) adalah nil, kembali kepada kunci isih seluruh skrip (dsb.).
text, actual_substitution_data = doSubstitutions(self, text, sc, sc._data[data_field], data_field,
function_name, true)
end
-- Jangan normalkan kepada NFC jika ini ialah gelung dalaman atau jika modul mengembalikan nil.
if recursed or not text then
return text, actual_substitution_data
end
-- Memperbetul sebarang urutan yang tidak digalakkan yang terhasil semasa proses penggantian, dan normalkan ke dalam bentuk akhir.
return sc:toFixedNFC(sc:fixDiscouragedSequences(text)), actual_substitution_data
end
-- Memecahkan teks kepada beberapa bahagian berdasarkan kehadiran aksara pemformatan yang digantikan sementara, kemudian mengulangi
-- setiap bahagian untuk menerapkan penggantian (cth. transliterasi atau penanggalan tanda diakritik). Ini mengelakkan aksara PUA
-- daripada melalui modul khusus bahasa yang mungkin tidak dilengkapi untuk mengendalikannya. Fungsi ini menerima nilai-nilai berikut:
-- * `self` (objek Language);
-- * `text` (teks untuk diproses);
-- * `sc` (skrip teks, yang mesti dinyatakan; pemanggil perlu memanggil checkScript() mengikut keperluan untuk mengesan secara automatik
-- skrip teks jika tidak diberikan secara jelas oleh pengguna);
-- * `subbedChars` (tatasusunan yang sama panjang dengan teks, menunjukkan aksara mana yang telah digantikan dan dengan apa,
-- atau {nil} jika tiada penggantian dilakukan);
-- * `keepCarets` (DOKUMENKAN SAYA);
-- * `substitution_data` (data yang menunjukkan penggantian mana yang perlu diterapkan, diambil terus daripada `data_field` dalam
-- struktur data bahasa dalam submodul [[Module:languages/data]]);
-- * `data_field` (medan data tempat `substitution_data` diambil, seperti "sort_key" atau "strip_diacritics");
-- * `function_name` (nama fungsi yang perlu dipanggil untuk melakukan penggantian, sekiranya `substitution_data` menyatakan
-- modul untuk melakukan penggantian);
-- * `notrim` (jangan pangkas ruang putih pada tepi `text`; ditetapkan semasa mengira kunci isih, kerana ruang putih pada
-- permulaan kunci isih adalah bermakna dan menyebabkan halaman yang terhasil disusun di bahagian awal kategori yang disertainya).
-- Mengembalikan tiga nilai:
-- (1) teks yang diproses;
-- (2) nilai `subbedChars` yang dimasukkan, mungkin diubah suai dengan penggantian aksara tambahan; akan bernilai {nil}
-- jika {nil} dimasukkan;
-- (3) data penggantian sebenar yang digunakan untuk menerapkan penggantian pada `text`; ini mungkin berbeza daripada nilai
-- `substitution_data` yang dimasukkan jika nilai itu secara rekursif menyatakan penggantian khusus skrip atau jika tiada
-- data penggantian ditemui dalam data khusus bahasa (cth. {nil} dimasukkan atau struktur dimasukkan yang tidak mempunyai
-- tetapan untuk skrip yang diberikan dalam `sc`), tetapi nilai sandaran seluruh skrip ditetapkan; buat masa ini ia
-- hanya digunakan oleh makeSortKey().
local function iterateSectionSubstitutions(self, text, sc, subbedChars, keepCarets, substitution_data, data_field,
function_name, notrim)
local sections
-- Lihat [[Module:languages/data]].
if not find(text, "\244") or load_data(languages_data_module).substitution[self._code] == "cont" then
sections = {text}
else
sections = split(text, "\244[\128-\143][\128-\191]*", true)
end
local actual_substitution_data
for _, section in ipairs(sections) do
-- Abaikan rentetan kosong atau ruang putih (yang mungkin juga tidak dikendalikan dengan baik oleh modul khusus).
if gsub(section, "%s+", "") ~= "" then
local sub, this_actual_substitution_data = doSubstitutions(self, section, sc, substitution_data, data_field,
function_name)
actual_substitution_data = this_actual_substitution_data
-- Pusingan kedua penggantian sementara, sekiranya terdapat sebarang pemformatan yang ditambah oleh proses penggantian
-- utama. Walau bagaimanapun, jangan lakukan ini jika bahagian tersebut sudah mengandungi pemformatan (kerana ia sepatutnya
-- telah dilepaskan untuk sampai ke peringkat ini, dan oleh itu harus diberikan sebagai teks mentah).
if sub and subbedChars then
local noSub
for _, pattern in ipairs(require(languages_data_patterns_module)) do
if match(section, pattern .. "%z?") then
noSub = true
end
end
if not noSub then
sub, subbedChars = doTempSubstitutions(sub, subbedChars, keepCarets, true)
end
end
if not sub then
text = sub
break
end
text = sub and gsub(text, pattern_escape(section), replacement_escape(sub), 1) or text
end
end
if not notrim then
-- Pangkas, melainkan hanya terdapat aksara ruang, sambil mengabaikan sebarang aksara pemformatan akhir.
-- Jangan pangkas kunci isih kerana ruang pada permulaan adalah bermakna.
text = text and text:gsub("^([\128-\191\244]*)%s+(%S)", "%1%2"):gsub("(%S)%s+([\128-\191\244]*)$", "%1%2") or
nil
end
return text, subbedChars, actual_substitution_data
end
-- Memproses tanda sisip (caret) (dan sebarang pelepasan). Lalai kepada penyingkiran mudah, jika tiada corak/penggantian diberikan.
local function processCarets(text, pattern, repl)
local rep
repeat
text, rep = gsub(text, "\\\\(\\*^)", "\3%1")
until rep == 0
return (text:gsub("\\^", "\4")
:gsub(pattern or "%^", repl or "")
:gsub("\3", "\\")
:gsub("\4", "^"))
end
-- Mengalih keluar tanda sisip jika ia digunakan untuk menulis huruf besar pada bahagian transliterasi (melainkan ia telah dilepaskan).
local function removeCarets(text, sc)
if not sc:hasCapitalization() and sc:isTransliterated() and text:find("^", 1, true) then
return processCarets(text)
else
return text
end
end
local Language = {}
--[==[Mengembalikan kod bahasa bagi sesuatu bahasa. Contoh: {{code|lua|"fr"}} untuk bahasa Perancis.]==]
function Language:getCode()
return self._code
end
--[==[Mengembalikan nama kanonik bahasa. Ini ialah nama yang digunakan untuk mewakili bahasa tersebut di Wiktionary, dan dijamin unik untuk bahasa itu sahaja. Contoh: {{code|lua|"French"}} untuk bahasa Perancis.]==]
function Language:getCanonicalName()
local name = self._name
if name == nil then
name = self._data[1]
self._name = name
end
return name
end
--[==[
Mengembalikan bentuk paparan bagi bahasa. Bentuk paparan bahasa, keluarga atau skrip ialah bentuk yang diambil apabila
muncul sebagai <code><var>source</var></code> dalam kategori seperti <code>Istilah bahasa Inggeris yang diterbitkan daripada
<var>source</var></code> atau <code>Nama khas bahasa Inggeris daripada <var>source</var></code>, dan juga merupakan teks paparan
dalam pautan {makeCategoryLink()}. Bagi bahasa penuh dan bahasa khusus etimologi, bentuk ini adalah sama seperti nama kanonik, tetapi
bagi keluarga bahasa, ia ditulis sebagai <code>"bahasa-bahasa <var>nama</var>"</code> (cth. {"bahasa-bahasa Indo-Iran"}), dan bagi skrip,
ia ditulis sebagai <code>"skrip <var>nama</var>"</code> (cth. {"skrip Arab"}).
]==]
function Language:getDisplayForm()
local form = self._displayForm
if form == nil then
form = self:getCanonicalName()
-- Tambah kata sandang dan " substrat" pada substrat yang memerlukannya.
if self:getFamilyCode() == "qfa-sub" then
if not (sub(form, 1, 4) == "the " or sub(form, 1, 2) == "a ") then
form = "a " .. form
end
if not match(form, " [Ss]ubstrate") then
form = form .. " substrate"
end
end
self._displayForm = form
end
return form
end
--[==[Mengembalikan nilai yang sepatutnya digunakan dalam atribut lang= HTML untuk teks bertag dalam bahasa berkenaan.]==]
function Language:getHTMLAttribute(sc, region)
local code = self._code
if not find(code, "-", 1, true) then
return code .. "-" .. sc:getCode() .. (region and "-" .. region or "")
end
local parent = self:getParent()
region = region or match(code, "%f[%u][%u-]+%f[%U]")
if parent then
return parent:getHTMLAttribute(sc, region)
end
-- TODO: Kod keluarga ISO juga boleh digunakan.
return "mis-" .. sc:getCode() .. (region and "-" .. region or "")
end
--[==[Mengembalikan jadual alias yang diketahui untuk bahasa tersebut, tidak termasuk nama kanonik. Alias ialah sinonim bagi bahasa yang dipersoalkan. Nama tidak dijamin unik, di mana kadangkala lebih daripada satu bahasa dikenali dengan nama yang sama. Contoh: {{code|lua|{"High German", "New High German", "Deutsch"} }} untuk [[:Kategori:Bahasa Jerman|Bahasa Jerman]].]==]
function Language:getAliases()
self:loadInExtraData()
return require(language_like_module).getAliases(self)
end
--[==[
Mengembalikan jadual subvariasi yang diketahui bagi sesuatu bahasa, tidak termasuk subvariasi yang telah diberikan
kod bahasa khusus etimologi yang jelas. Nama tidak dijamin unik, di mana kadangkala nama tertentu merujuk kepada
subvariasi lebih daripada satu bahasa. Contoh: {{code|lua|{"Aymara Selatan", "Aymara Tengah"} }} untuk
[[:Kategori:Bahasa Aymara|Bahasa Aymara]]. Ambil perhatian bahawa nilai yang dikembalikan boleh mengandungi jadual bersarang,
apabila subvariasi dikenali dengan lebih daripada satu nama. Contoh: {{code|lua|{"Azerbaijan Utara", "Azerbaijan Selatan",
{"Afshar", "Afshari", "Azerbaijan Afshar", "Afchar"}, {"Qashqa'i", "Qashqai", "Kashkay"}, "Sonqor"} }} untuk
[[:Kategori:Bahasa Azerbaijan|Bahasa Azerbaijan]]. Di sini, contohnya, Afshar, Afshari, Azerbaijan Afshar dan Afchar
kesemuanya merujuk kepada subvariasi yang sama, dengan nama pilihan ialah Afshar (yang disenaraikan pertama). Untuk mengelakkan
nilai pulangan yang mengandungi jadual bersarang, nyatakan nilai bukan {{code|lua|nil}} untuk parameter <code>flatten</code>;
dalam kes tersebut, nilai yang dikembalikan adalah {{code|lua|{"Azerbaijan Utara", "Azerbaijan Selatan", "Afshar", "Afshari",
"Azerbaijan Afshar", "Afchar", "Qashqa'i", "Qashqai", "Kashkay", "Sonqor"} }}.
]==]
function Language:getVarieties(flatten)
self:loadInExtraData()
return require(language_like_module).getVarieties(self, flatten)
end
--[==[Mengembalikan jadual "nama lain" yang diketahui bagi bahasa tersebut, yang disenaraikan dalam medan <code>otherNames</code>. Perlu dinyatakan bahawa medan <code>otherNames</code> itu sendiri telah lapuk, dan entri yang disenaraikan di situ akhirnya perlu dipindahkan ke sama ada <code>aliases</code> atau <code>varieties</code>.]==]
function Language:getOtherNames() -- Akan dialih keluar akhirnya, setelah tiada lagi penggunaan medan `otherNames`.
self:loadInExtraData()
return require(language_like_module).getOtherNames(self)
end
--[==[
Mengembalikan gabungan jadual bagi nama kanonik, alias, variasi dan nama lain bagi bahasa yang diberikan.]==]
function Language:getAllNames()
self:loadInExtraData()
return require(language_like_module).getAllNames(self)
end
--[==[Mengembalikan jadual jenis sebagai jadual carian (dengan jenis sebagai kunci).
Jenis-jenis yang mungkin ialah:
* {language}: Ini ialah bahasa, sama ada penuh atau khusus etimologi.
* {full}: Ini ialah bahasa "penuh" (bukan khusus etimologi), iaitu gabungan {regular}, {reconstructed} dan
{appendix-constructed}. Ambil perhatian bahawa jenis {full} dan {etymology-only} juga wujud untuk keluarga bahasa,
jadi jika anda ingin menyemak secara khusus bagi bahasa penuh dan anda mempunyai objek yang mungkin merupakan keluarga,
anda harus menggunakan {{lua|hasType("language", "full")}} dan bukan sekadar {{lua|hasType("full")}}.
* {etymology-only}: Ini ialah bahasa khusus etimologi (bukan penuh), yang induknya merupakan bahasa khusus etimologi lain
atau bahasa penuh. Ambil perhatian bahawa jenis {full} dan {etymology-only} juga wujud untuk keluarga bahasa,
jadi jika anda ingin menyemak secara khusus bagi bahasa khusus etimologi dan anda mempunyai objek yang mungkin
merupakan keluarga, anda harus menggunakan {{lua|hasType("language", "etymology-only")}} dan bukan sekadar
{{lua|hasType("etymology-only")}}.
* {regular}: Ini menunjukkan bahasa penuh yang diperakui mengikut [[WT:CFI]] dan oleh itu dibenarkan dalam ruang nama
utama. Mungkin terdapat juga istilah yang direkonstruksi untuk bahasa tersebut, yang diletakkan dalam ruang nama
{Rekonstruksi} dan mesti diawali dengan tanda * untuk menunjukkan rekonstruksi. Kebanyakan bahasa penuh ialah
bahasa semula jadi (bukan bahasa buatan), namun beberapa bahasa buatan (cth. Esperanto dan Volapük, antara lain)
juga dibenarkan dalam ruang nama utama dan dianggap sebagai bahasa biasa.
* {reconstructed}: Bahasa ini tidak diperakui mengikut [[WT:CFI]], dan oleh itu hanya dibenarkan dalam ruang nama
{Rekonstruksi}. Semua istilah dalam bahasa ini adalah yang direkonstruksi, dan mesti diawali dengan
tanda *. Bahasa seperti Proto-Indo-Eropah dan Proto-Jermanik berada dalam kategori ini.
* {appendix-constructed}: Bahasa ini diperakui tetapi tidak memenuhi syarat tambahan yang ditetapkan untuk bahasa
buatan ([[WT:CFI#Constructed languages]]). Entrinya mestilah berada dalam ruang nama Lampiran,
tetapi ia tidak direkonstruksi dan oleh itu tidak sepatutnya diawali dengan tanda * dalam pautan.
]==]
function Language:getTypes()
local types = self._types
if types == nil then
types = {language = true}
if self:getFullCode() == self._code then
types.full = true
else
types["etymology-only"] = true
end
for t in gmatch(self._data.type, "[^,]+") do
types[t] = true
end
self._types = types
end
return types
end
--[==[Diberikan senarai jenis sebagai rentetan, mengembalikan nilai true jika bahasa tersebut memiliki kesemuanya.]==]
function Language:hasType(...)
Language.hasType = require(language_like_module).hasType
return self:hasType(...)
end
--[==[Mengembalikan jadual yang mengandungi objek <code>WikimediaLanguage</code> (lihat [[Module:wikimedia languages]]), yang mewakili bahasa dan kodnya seperti yang digunakan dalam projek Wikimedia untuk pautan antara wiki dan sebagainya. Lebih daripada satu objek boleh dikembalikan, kerana satu bahasa Wiktionary boleh sepadan dengan beberapa bahasa Wikimedia. Contohnya, kod tunggal Wiktionary <code>sh</code> (Serbo-Croatia) dipetakan kepada empat kod Wikimedia: <code>sh</code> (Serbo-Croatia), <code>bs</code> (Bosnia), <code>hr</code> (Croatia) dan <code>sr</code> (Serbia).
Kod untuk bahasa Wikimedia diambil daripada sifat <code>wikimedia_codes</code> dalam modul data. Jika sifat tersebut tiada, kod bahasa semasa akan digunakan. Jika tiada kod yang tersedia merupakan kod Wikimedia yang sah, jadual kosong akan dikembalikan.]==]
function Language:getWikimediaLanguages()
local wm_langs = self._wikimediaLanguageObjects
if wm_langs == nil then
local codes = self:getWikimediaLanguageCodes()
wm_langs = {}
for i = 1, #codes do
wm_langs[i] = get_wikimedia_lang(codes[i])
end
self._wikimediaLanguageObjects = wm_langs
end
return wm_langs
end
function Language:getWikimediaLanguageCodes()
local wm_langs = self._wikimediaLanguageCodes
if wm_langs == nil then
wm_langs = self._data.wikimedia_codes
if wm_langs then
wm_langs = split(wm_langs, ",", true, true)
else
local code = self._code
if is_known_language_tag(code) then
wm_langs = {code}
else
-- Mewarisi, tetapi hanya jika tiada kod dinyatakan dalam data *dan*
-- kod bahasa tersebut bukan kod bahasa Wikimedia yang sah.
local parent = self:getParent()
wm_langs = parent and parent:getWikimediaLanguageCodes() or {}
end
end
self._wikimediaLanguageCodes = wm_langs
end
return wm_langs
end
--[==[
Mengembalikan nama rencana Wikipedia bagi bahasa tersebut. `project` menyatakan bahasa dan projek untuk mendapatkan rencana,
lalai kepada {"enwiki"} untuk Wikipedia Bahasa Inggeris. Biasanya jika dinyatakan ia sepatutnya menjadi kod projek bagi
Wikipedia bahasa tertentu cth. "mswiki" untuk Wikipedia Bahasa Melayu atau "zhwiki" untuk Wikipedia Bahasa Cina, tetapi ia
boleh menjadi mana-mana projek, termasuk yang bukan Wikipedia. Jika projek itu ialah Wikipedia Bahasa Inggeris dan sifat
{wikipedia_article} hadir dalam modul data, ia akan digunakan terlebih dahulu. Dalam semua kes lain, pautan laman (sitelink)
akan dijana daripada {:getWikidataItem} (jika ditetapkan). Nilai terhasil (atau ketiadaan nilai) dicache supaya panggilan
seterusnya lebih pantas. Jika tiada nilai dapat ditentukan, dan `noCategoryFallback` ialah {false}, {:getCategoryName} digunakan
sebagai sandaran; jika tidak, {nil} dikembalikan. Ambil perhatian bahawa jika `noCategoryFallback` bernilai {nil} atau diabaikan,
ia lalai kepada {false} jika projek ialah Wikipedia Bahasa Inggeris, selainnya kepada {true}. Dalam erti kata lain, dalam keadaan
biasa, jika rencana Wikipedia Bahasa Inggeris tidak dapat diperoleh, nilai pulangan akan kembali kepada pautan kategori bahasa,
tetapi ini biasanya tidak akan berlaku untuk mana-mana projek lain.
]==]
function Language:getWikipediaArticle(noCategoryFallback, project)
Language.getWikipediaArticle = require(language_like_module).getWikipediaArticle
return self:getWikipediaArticle(noCategoryFallback, project)
end
function Language:makeWikipediaLink()
return make_link(self, "w:" .. self:getWikipediaArticle(), self:getCanonicalName())
end
--[==[Mengembalikan nama halaman kategori Wikimedia Commons bagi bahasa tersebut.]==]
function Language:getCommonsCategory()
Language.getCommonsCategory = require(language_like_module).getCommonsCategory
return self:getCommonsCategory()
end
--[==[Mengembalikan id item Wikidata untuk bahasa atau <code>nil</code>. Ini sepadan dengan medan kedua dalam modul data.]==]
function Language:getWikidataItem()
Language.getWikidataItem = require(language_like_module).getWikidataItem
return self:getWikidataItem()
end
--[==[Mengembalikan jadual objek <code>Script</code> untuk semua skrip yang digunakan untuk menulis bahasa tersebut. Lihat [[Module:scripts]].]==]
function Language:getScripts()
local scripts = self._scriptObjects
if scripts == nil then
local codes = self:getScriptCodes()
if codes[1] == "All" then
scripts = load_data(scripts_data_module)
else
scripts = {}
for i = 1, #codes do
scripts[i] = get_script(codes[i])
end
end
self._scriptObjects = scripts
end
return scripts
end
--[==[Mengembalikan jadual kod skrip dalam fail data bahasa.]==]
function Language:getScriptCodes()
local scripts = self._scriptCodes
if scripts == nil then
scripts = self._data[4]
if scripts then
local codes, n = {}, 0
for code in gmatch(scripts, "[^,]+") do
n = n + 1
-- Pengendalian khas untuk "Hants", yang mewakili "Hani", "Hant" dan "Hans" secara kolektif.
if code == "Hants" then
codes[n] = "Hani"
codes[n + 1] = "Hant"
codes[n + 2] = "Hans"
n = n + 2
else
codes[n] = code
end
end
scripts = codes
else
scripts = {"None"}
end
self._scriptCodes = scripts
end
return scripts
end
--[==[Diberikan sesuatu teks, fungsi ini mengulangi skrip-skrip bagi bahasa yang ditentukan dan cuba mencari skrip yang paling sepadan dengan teks tersebut. Ia mengembalikan objek {{code|lua|Script}} yang mewakili skrip berkenaan. Jika tiada padanan ditemui langsung, ia mengembalikan objek skrip {{code|lua|None}}.]==]
function Language:findBestScript(text, forceDetect)
if not text or text == "" or text == "-" then
return get_script("None")
end
-- Berbeza daripada jadual yang dikembalikan oleh getScriptCodes, kerana Hants tidak dinormalkan kepada juzuk-juzuknya.
local codes = self._bestScriptCodes
if codes == nil then
codes = self._data[4]
codes = codes and split(codes, ",", true, true) or {"None"}
self._bestScriptCodes = codes
end
local first_sc = codes[1]
if first_sc == "All" then
return find_best_script_without_lang(text)
end
local codes_len = #codes
if not (forceDetect or first_sc == "Hants" or codes_len > 1) then
first_sc = get_script(first_sc)
local charset = first_sc.characters
return charset and umatch(text, "[" .. charset .. "]") and first_sc or get_script("None")
end
-- Mengalih keluar semua aksara pemformatan.
text = get_plaintext(text)
-- Mengalih keluar semua ruang dan sebarang tanda baca ASCII. Sesetengah tanda baca bukan ASCII adalah khusus skrip, jadi tidak boleh dialih keluar.
text = ugsub(text, "[%s!\"#%%&'()*,%-./:;?@[\\%]_{}]+", "")
if #text == 0 then
return get_script("None")
end
-- Cuba memadankan setiap skrip dengan teks,
-- dan kembalikan skrip yang mempunyai aksara sepadan paling banyak.
local bestcount, bestscript, length = 0
for i = 1, codes_len do
local sc = codes[i]
-- Kes khas untuk "Hants", iaitu kod khas yang mewakili mana-mana antara "Hant" atau "Hans" yang paling sepadan, atau "Hani" jika ia sepadan sama rata. Ini mengelakkan keperluan untuk menyenaraikan ketiga-tiganya. Selain itu, "Hants" akan dilayan sebagai padanan terbaik jika terdapat sekurang-kurangnya satu aksara yang sepadan, di bawah andaian bahawa skrip Han dikehendaki bagi istilah yang mengandungi campuran skrip Han dan skrip lain (tidak termasuk yang menggunakan Jpan atau Kore).
if sc == "Hants" then
local Hani = get_script("Hani")
if not Hant_chars then
Hant_chars = load_data("Modul:zh/data/ts")
Hans_chars = load_data("Modul:zh/data/st")
end
local t, s, found = 0, 0
-- Ini lebih pantas berbanding menggunakan mw.ustring.gmatch secara terus.
for ch in gmatch((ugsub(text, "[" .. Hani.characters .. "]", "\255%0")), "\255(.[\128-\191]*)") do
found = true
if Hant_chars[ch] then
t = t + 1
if Hans_chars[ch] then
s = s + 1
end
elseif Hans_chars[ch] then
s = s + 1
else
t, s = t + 1, s + 1
end
end
if found then
if t == s then
return Hani
end
return get_script(t > s and "Hant" or "Hans")
end
else
sc = get_script(sc)
if not length then
length = ulen(text)
end
-- Mengira aksara dengan menyingkirkan semua yang ada dalam set aksara skrip dan membandingkannya dengan panjang asal.
local charset = sc.characters
local count = charset and length - ulen((ugsub(text, "[" .. charset .. "]+", ""))) or 0
if count >= length then
return sc
elseif count > bestcount then
bestcount = count
bestscript = sc
end
end
end
-- Kembalikan skrip padanan terbaik, atau sebaliknya None.
return bestscript or get_script("None")
end
--[==[Mengembalikan objek <code>Family</code> bagi keluarga bahasa tempat tergolongnya bahasa ini. Lihat [[Module:families]].]==]
function Language:getFamily()
local family = self._familyObject
if family == nil then
family = self:getFamilyCode()
-- Jika nilainya nil, ia dicache sebagai false.
family = family and get_family(family) or false
self._familyObject = family
end
return family or nil
end
--[==[Mengembalikan kod keluarga dalam fail data bahasa.]==]
function Language:getFamilyCode()
local family = self._familyCode
if family == nil then
-- Jika nilainya nil, ia dicache sebagai false.
family = self._data[3] or false
self._familyCode = family
end
return family or nil
end
function Language:getFamilyName()
local family = self._familyName
if family == nil then
family = self:getFamily()
-- Jika nilainya nil, ia dicache sebagai false.
family = family and family:getCanonicalName() or false
self._familyName = family
end
return family or nil
end
do
local function check_family(self, family)
if type(family) == "table" then
family = family:getCode()
end
if self:getFamilyCode() == family then
return true
end
local self_family = self:getFamily()
if self_family:inFamily(family) then
return true
-- Jika keluarga tersebut bukan keluarga sebenar (cth. kreol), semak sebarang leluhur.
elseif self_family:inFamily("qfa-not") then
local ancestors = self:getAncestors()
for _, ancestor in ipairs(ancestors) do
if ancestor:inFamily(family) then
return true
end
end
end
end
--[==[Menyemak sama ada bahasa tergolong dalam `family` (yang boleh berupa kod keluarga atau objek). Senarai objek boleh diberikan sebagai ganti `family`; dalam kes tersebut, kembalikan true jika bahasa tergolong dalam mana-mana keluarga yang dinyatakan. Perhatikan bahawa sesetengah bahasa (khususnya, kreol tertentu) boleh mempunyai beberapa leluhur langsung yang berpotensi tergolong dalam keluarga berbeza; dalam kes tersebut, kembalikan true jika bahasa tergolong dalam mana-mana keluarga yang dinyatakan.]==]
function Language:inFamily(...)
if self:getFamilyCode() == nil then
return false
end
return check_inputs(self, check_family, false, ...)
end
end
function Language:getParent()
local parent = self._parentObject
if parent == nil then
parent = self:getParentCode()
-- Jika nilainya nil, ia dicache sebagai false.
parent = parent and get_by_code(parent, nil, true, true) or false
self._parentObject = parent
end
return parent or nil
end
function Language:getParentCode()
local parent = self._parentCode
if parent == nil then
-- Jika nilainya nil, ia dicache sebagai false.
parent = self._data.parent or false
self._parentCode = parent
end
return parent or nil
end
function Language:getParentName()
local parent = self._parentName
if parent == nil then
parent = self:getParent()
-- Jika nilainya nil, ia dicache sebagai false.
parent = parent and parent:getCanonicalName() or false
self._parentName = parent
end
return parent or nil
end
function Language:getParentChain()
local chain = self._parentChain
if chain == nil then
chain = {}
local parent, n = self:getParent(), 0
while parent do
n = n + 1
chain[n] = parent
parent = parent:getParent()
end
self._parentChain = chain
end
return chain
end
do
local function check_lang(self, lang)
for _, parent in ipairs(self:getParentChain()) do
if (type(lang) == "string" and lang or lang:getCode()) == parent:getCode() then
return true
end
end
end
function Language:hasParent(...)
return check_inputs(self, check_lang, false, ...)
end
end
--[==[
Jika bahasa tersebut merupakan bahasa khusus etimologi, fungsi ini mengulangi rantaian induk sehingga bahasa penuh atau keluarga ditemui, dan objek yang sepadan dikembalikan. Jika bahasa tersebut merupakan bahasa penuh, ia hanya mengembalikan dirinya sendiri.
]==]
function Language:getFull()
local full = self._fullObject
if full == nil then
full = self:getFullCode()
full = full == self._code and self or get_by_code(full)
self._fullObject = full
end
return full
end
--[==[
Jika bahasa tersebut merupakan bahasa khusus etimologi, fungsi ini mengulangi rantaian induk sehingga bahasa penuh atau keluarga ditemui, dan kod yang sepadan dikembalikan. Jika bahasa tersebut merupakan bahasa penuh, ia hanya mengembalikan kod bahasa tersebut.
]==]
function Language:getFullCode()
return self._fullCode or self._code
end
--[==[
Jika bahasa tersebut merupakan bahasa khusus etimologi, fungsi ini mengulangi rantaian induk sehingga bahasa penuh atau keluarga ditemui, dan nama kanonik yang sepadan dikembalikan. Jika bahasa tersebut merupakan bahasa penuh, ia hanya mengembalikan nama kanonik bahasa tersebut.
]==]
function Language:getFullName()
local full = self._fullName
if full == nil then
full = self:getFull():getCanonicalName()
self._fullName = full
end
return full
end
--[==[Mengembalikan jadual objek <code class="nf">Language</code> bagi semua bahasa yang diturunkan secara langsung daripada bahasa ini. Umumnya ini hanya melibatkan bahasa tunggal, tetapi kreol, pidgin dan bahasa campuran boleh mempunyai banyak leluhur.]==]
function Language:getAncestors()
local ancestors = self._ancestorObjects
if ancestors == nil then
ancestors = {}
local ancestor_codes = self:getAncestorCodes()
if #ancestor_codes > 0 then
for _, ancestor in ipairs(ancestor_codes) do
insert(ancestors, get_by_code(ancestor, nil, true))
end
else
local fam = self:getFamily()
local protoLang = fam and fam:getProtoLanguage() or nil
-- Bagi kes di mana bahasa semasa ialah bahasa proto bagi
-- keluarganya, atau bahasa khusus etimologi yang merupakan leluhur kepada bahasa
-- proto tersebut, kita perlu melangkah setingkat lebih tinggi sejak
-- permulaan lagi.
if protoLang and (
protoLang:getCode() == self._code or
(self:hasType("etymology-only") and protoLang:hasAncestor(self))
) then
fam = fam:getFamily()
protoLang = fam and fam:getProtoLanguage() or nil
end
while not protoLang and not (not fam or fam:getCode() == "qfa-not") do
fam = fam:getFamily()
protoLang = fam and fam:getProtoLanguage() or nil
end
insert(ancestors, protoLang)
end
self._ancestorObjects = ancestors
end
return ancestors
end
do
-- Elakkan bahasa menjadi leluhur kepada dirinya sendiri melalui pewarisan kelas. Kita hanya perlu menyemak ini jika bahasa mewarisi jadual leluhur daripada induknya, kerana kita tidak mahu menggugurkan leluhur yang telah ditetapkan secara jelas dalam data.
-- Ulangi proses secara rekursif merentasi leluhur sehingga sama ada menemui diri sendiri atau kehabisan rekod. Jika diri sendiri ditemui, kembalikan true.
local function check_ancestor(self, lang)
local codes = lang:getAncestorCodes()
if not codes then
return nil
end
for i = 1, #codes do
local code = codes[i]
if code == self._code then
return true
end
local anc = get_by_code(code, nil, true)
if check_ancestor(self, anc) then
return true
end
end
end
--[==[Mengembalikan jadual kod <code class="nf">Language</code> bagi semua bahasa yang diturunkan secara langsung daripada bahasa ini. Umumnya ini hanya melibatkan bahasa tunggal, tetapi kreol, pidgin dan bahasa campuran boleh mempunyai banyak leluhur.]==]
function Language:getAncestorCodes()
if self._ancestorCodes then
return self._ancestorCodes
end
local data = self._data
local codes = data.ancestors
if codes == nil then
codes = {}
self._ancestorCodes = codes
return codes
end
codes = split(codes, ",", true, true)
self._ancestorCodes = codes
-- Jika tiada kod atau leluhur tersebut bukan data yang diwarisi, tiada apa lagi untuk disemak.
if #codes == 0 or self:getData(false, "raw").ancestors ~= nil then
return codes
end
local i, code = 1
while i <= #codes do
code = codes[i]
if check_ancestor(self, self) then
remove(codes, i)
else
i = i + 1
end
end
return codes
end
end
--[==[Diberikan senarai objek atau kod bahasa, mengembalikan true jika sekurang-kurangnya satu daripadanya ialah leluhur. Ini merangkumi sebarang anak khusus etimologi bagi leluhur tersebut. Jika leluhur bahasa tersebut ialah bahasa khusus etimologi, ia juga akan mengembalikan true bagi induk bahasa berkenaan (cth. jika Latin Vulgar ialah leluhur, ia juga akan mengembalikan true bagi induknya, Latin). Walau bagaimanapun, induk dikecualikan daripada ini jika leluhur tersebut juga merupakan leluhur kepada induk berkenaan (cth. jika Parsi Klasik ialah leluhur, Parsi akan mengembalikan false, kerana Parsi Klasik juga merupakan leluhur kepada Parsi).]==]
function Language:hasAncestor(...)
local function iterateOverAncestorTree(node, func, parent_check)
local ancestors = node:getAncestors()
local ancestorsParents = {}
for _, ancestor in ipairs(ancestors) do
-- Semasa menyemak induk bahasa lain, dan leluhur juga merupakan induk, langkau ke leluhur seterusnya, supaya kita mengecualikan sebarang anak khusus etimologi bagi induk tersebut yang tidak berkaitan secara langsung (lihat di bawah).
local ret = (parent_check or not node:hasParent(ancestor)) and
func(ancestor) or iterateOverAncestorTree(ancestor, func, parent_check)
if ret then
return ret
end
end
-- Semak induk bagi mana-mana leluhur. Kita tidak melakukan ini jika menyemak induk bahasa lain, supaya kita mengecualikan sebarang anak khusus etimologi bagi induk tersebut yang tidak berkaitan secara langsung (cth. jika leluhur ialah Latin Vulgar dan kita menyemak Latin Baharu, kita mahu ia mengembalikan false kerana kedua-duanya berada pada cabang leluhur berbeza. Oleh itu, jika kita sudah menyemak induk Latin Baharu (Latin) kita tidak mahu membandingkannya dengan induk leluhur (Latin), kerana ini menghasilkan positif palsu; ia sepatutnya salah satu daripadanya).
if not parent_check then
return nil
end
for _, ancestor in ipairs(ancestors) do
local ancestorParents = ancestor:getParentChain()
for _, ancestorParent in ipairs(ancestorParents) do
if ancestorParent:getCode() == self._code or ancestorParent:hasAncestor(ancestor) then
break
else
insert(ancestorsParents, ancestorParent)
end
end
end
for _, ancestorParent in ipairs(ancestorsParents) do
local ret = func(ancestorParent)
if ret then
return ret
end
end
end
local function do_iteration(otherlang, parent_check)
-- otherlang tidak boleh merujuk kepada diri sendiri
if (type(otherlang) == "string" and otherlang or otherlang:getCode()) == self._code then
return false
end
repeat
if iterateOverAncestorTree(
self,
function(ancestor)
return ancestor:getCode() == (type(otherlang) == "string" and otherlang or otherlang:getCode())
end,
parent_check
) then
return true
elseif type(otherlang) == "string" then
otherlang = get_by_code(otherlang, nil, true)
end
otherlang = otherlang:getParent()
parent_check = false
until not otherlang
end
local parent_check = true
for _, otherlang in ipairs{...} do
local ret = do_iteration(otherlang, parent_check)
if ret then
return true
end
end
return false
end
do
local function construct_node(lang, memo)
local branch, ancestors = {lang = lang:getCode()}
memo[lang:getCode()] = branch
for _, ancestor in ipairs(lang:getAncestors()) do
if ancestors == nil then
ancestors = {}
end
insert(ancestors, memo[ancestor:getCode()] or construct_node(ancestor, memo))
end
branch.ancestors = ancestors
return branch
end
function Language:getAncestorChain()
local chain = self._ancestorChain
if chain == nil then
chain = construct_node(self, {})
self._ancestorChain = chain
end
return chain
end
end
function Language:getAncestorChainOld()
local chain = self._ancestorChain
if chain == nil then
chain = {}
local step = self
while true do
local ancestors = step:getAncestors()
step = #ancestors == 1 and ancestors[1] or nil
if not step then
break
end
insert(chain, step)
end
self._ancestorChain = chain
end
return chain
end
local function fetch_descendants(self, fmt)
local descendants, family = {}, self:getFamily()
-- Ulangi ke atas ketiga-tiga set data.
for _, data in ipairs{
require("Modul:languages/code to canonical name"),
require("Modul:etymology languages/code to canonical name"),
require("Modul:families/code to canonical name"),
} do
for code in pairs(data) do
local lang = get_by_code(code, nil, true, true)
if not lang then
error(("Ralat dalaman: kod '%s' tidak dapat diambil"):format(code))
end
-- Uji untuk keturunan. Ujian awal menyingkirkan kebanyakan calon, manakala ujian yang lebih intensif hanya digunakan secara berhemat.
if (
code ~= self._code and -- Bukan diri sendiri.
lang:inFamily(family) and -- Dalam keluarga yang sama.
(
family:getProtoLanguageCode() == self._code or -- Diri sendiri ialah bahasa proto.
self:hasDescendant(lang) or -- Semakan penuh hasDescendant.
(lang:getFullCode() == self._code and not self:hasAncestor(lang)) -- Anak khusus etimologi yang bukan leluhur.
)
) then
if fmt == "object" then
insert(descendants, lang)
elseif fmt == "code" then
insert(descendants, code)
elseif fmt == "name" then
insert(descendants, lang:getCanonicalName())
end
end
end
end
return descendants
end
function Language:getDescendants()
local descendants = self._descendantObjects
if descendants == nil then
descendants = fetch_descendants(self, "object")
self._descendantObjects = descendants
end
return descendants
end
function Language:getDescendantCodes()
local descendants = self._descendantCodes
if descendants == nil then
descendants = fetch_descendants(self, "code")
self._descendantCodes = descendants
end
return descendants
end
function Language:getDescendantNames()
local descendants = self._descendantNames
if descendants == nil then
descendants = fetch_descendants(self, "name")
self._descendantNames = descendants
end
return descendants
end
do
local function check_lang(self, lang)
if type(lang) == "string" then
lang = get_by_code(lang, nil, true)
end
if lang:hasAncestor(self) then
return true
end
end
function Language:hasDescendant(...)
return check_inputs(self, check_lang, false, ...)
end
end
local function fetch_children(self, fmt)
local m_etym_data = require(etymology_languages_data_module)
local self_code, children = self._code, {}
for code, lang in pairs(m_etym_data) do
local _lang = lang
repeat
local parent = _lang.parent
if parent == self_code then
if fmt == "object" then
insert(children, get_by_code(code, nil, true))
elseif fmt == "code" then
insert(children, code)
elseif fmt == "name" then
insert(children, lang[1])
end
break
end
_lang = m_etym_data[parent]
until not _lang
end
return children
end
function Language:getChildren()
local children = self._childObjects
if children == nil then
children = fetch_children(self, "object")
self._childObjects = children
end
return children
end
function Language:getChildrenCodes()
local children = self._childCodes
if children == nil then
children = fetch_children(self, "code")
self._childCodes = children
end
return children
end
function Language:getChildrenNames()
local children = self._childNames
if children == nil then
children = fetch_children(self, "name")
self._childNames = children
end
return children
end
function Language:hasChild(...)
local lang = ...
if not lang then
return false
elseif type(lang) == "string" then
lang = get_by_code(lang, nil, true)
end
if lang:hasParent(self) then
return true
end
return self:hasChild(select(2, ...))
end
--[==[Mengembalikan nama kategori utama bagi bahasa tersebut. Contoh: {{code|lua|"French language"}} bagi bahasa Perancis, yang kategorinya berada di [[:Kategori:Bahasa Perancis]]. Melainkan argumen pilihan <code>nocap</code> diberikan, nama bahasa pada permulaan nilai yang dikembalikan akan diawali dengan huruf besar. Huruf besar ini betul untuk nama kategori, tetapi bukan jika nama bahasa menggunakan huruf kecil dan nilai yang dikembalikan oleh fungsi ini digunakan di tengah-tengah ayat.]==]
function Language:getCategoryName(nocap)
local name = self._categoryName
if name == nil then
name = self:getCanonicalName()
-- Jika substrat, gugurkan sebarang kata sandang di hadapan.
if self:getFamilyCode() == "qfa-sub" then
name = name:gsub("^sebuah ", ""):gsub("^suatu ", "")
end
-- Hanya tambah " language" jika ia bahasa penuh.
if self:hasType("full") then
-- Melainkan nama kanonik sudah berakhir dengan "language", "lect" atau terbitannya, tambah " language".
if not (match(name, "^[Bb]ahasa") or match(name, "^[Bb]ahasa")) then
name = "Bahasa " .. name
end
end
self._categoryName = name
end
if nocap then
return name
end
return mw.getContentLanguage():ucfirst(name)
end
--[==[Mencipta pautan ke kategori; teks pautan ialah nama kanonik.]==]
function Language:makeCategoryLink()
return make_link(self, ":Kategori:" .. self:getCategoryName(), self:getDisplayForm())
end
function Language:getStandardCharacters(sc)
local standard_chars = self._data.standard_chars
if type(standard_chars) ~= "table" then
return standard_chars
elseif sc and type(sc) ~= "string" then
check_object("script", nil, sc)
sc = sc:getCode()
end
if (not sc) or sc == "None" then
local scripts = {}
for _, script in pairs(standard_chars) do
insert(scripts, script)
end
return concat(scripts)
end
if standard_chars[sc] then
return standard_chars[sc] .. (standard_chars[1] or "")
end
end
--[==[
Menanggalkan tanda diakritik daripada teks paparan `text` (mengikut kaedah khusus bahasa), yang berada dalam skrip `sc`. Jika `sc` diabaikan atau bernilai {nil}, skrip dikesan secara automatik. Ini juga menanggalkan aksara tanda baca tertentu dari penghujung dan (dalam kes tanda soal dan seru terbalik bahasa Sepanyol) dari permulaan; menanggalkan sebarang ruang putih pada penghujung teks atau di antara teks dan tanda baca jalur akhir; serta menerapkan beberapa penormalan Unicode khusus bahasa untuk menggantikan aksara yang tidak digalakkan dengan alternatif yang ditetapkan. Mengembalikan teks yang telah ditanggalkan tanda diakritiknya.
]==]
function Language:stripDiacritics(text, sc)
if (not text) or text == "" then
return text
end
sc = checkScript(text, self, sc)
text = normalize(text, sc)
-- AMARAN: namakan semula makeEntryName kepada stripDiacritics dan buang nilai pulangan kedua dan ketiga
-- di semua tempat
text, _, _ = iterateSectionSubstitutions(self, text, sc, nil, nil,
self._data.strip_diacritics or self._data.entry_name, "strip_diacritics", "stripDiacritics")
text = umatch(text, "^[¿¡]?(.-[^%s%p].-)%s*[؟?!;՛՜ ՞ ՟?!︖︕।॥။၊་།]?$") or text
return text
end
--[==[
Menukar nama halaman ''logik'' (nama halaman sebagaimana ia dipaparkan kepada pengguna, selepas tanda diakritik dan tanda baca ditanggalkan) kepada nama halaman ''fizikal'' (nama halaman sebagaimana ia disimpan dalam pangkalan data MediaWiki). Sebab-sebab perbezaan antara kedua-duanya ialah (a) tajuk yang tidak disokong seperti `[ ]` (dengan kurungan siku di dalamnya), `#` (tanda pagar) dan `¯\_(ツ)_/¯` (dengan garis bawah), serta tajuk yang terlalu panjang dari pelbagai jenis; (b) halaman "gergasi" yang dipecahkan kepada beberapa bahagian (cth. `a`, yang dipecahkan kepada nama halaman fizikal `a/languages A to L` dan `a/languages M to Z`). Bagi hampir semua tujuan, anda harus bekerja dengan nama halaman logik dan bukan nama halaman fizikal. Namun terdapat kes penggunaan tertentu yang memerlukan nama halaman fizikal, seperti menyemak kewujudan halaman atau mendapatkan kandungan halaman.
`pagename` ialah nama halaman logik yang akan ditukar. `is_reconstructed_or_appendix` menunjukkan sama ada halaman berada dalam ruang nama `Reconstruction` atau `Appendix`. Jika ia diabaikan atau bernilai {nil}, nama halaman disemak untuk tanda asterisk awal, dan jika ditemui, halaman dianggap sebagai halaman `Reconstruction`. Menetapkan nilai `false` atau `true` pada `is_reconstructed_or_appendix` melumpuhkan semakan ini dan membenarkan nama halaman ruang nama utama yang bermula dengan tanda asterisk.
]==]
function Language:logicalToPhysical(pagename, is_reconstructed_or_appendix)
-- AMARAN: Ini mungkin tidak sepatutnya berlaku tetapi ia berlaku apabila makeEntryName() menerima nil.
if pagename == nil then
track("nil-passed-to-logicalToPhysical")
return nil
end
local initial_asterisk
if is_reconstructed_or_appendix == nil then
local pagename_minus_initial_asterisk
initial_asterisk, pagename_minus_initial_asterisk = pagename:match("^(%*)(.*)$")
if pagename_minus_initial_asterisk then
is_reconstructed_or_appendix = true
pagename = pagename_minus_initial_asterisk
elseif self:hasType("appendix-constructed") then
is_reconstructed_or_appendix = true
end
end
if not is_reconstructed_or_appendix then
-- Semak sama ada nama halaman tersenarai sebagai tajuk yang tidak disokong.
local unsupportedTitles = load_data(links_data_module).unsupported_titles
if unsupportedTitles[pagename] then
return "Unsupported titles/" .. unsupportedTitles[pagename]
end
end
-- Tetapkan `unsupported` sebagai true jika syarat tertentu dipenuhi.
local unsupported
-- Semak sama ada terdapat aksara yang tidak disokong. \239\191\189 ialah aksara gantian U+FFFD, yang tidak boleh ditaip
-- terus di sini kerana penapis penyalahgunaan. Notasi titik-garis condong gaya Unix juga tidak disokong, kerana ia digunakan untuk
-- laluan relatif dalam pautan, begitu juga dengan 3 atau lebih tanda tilde berturutan. Nota: match lebih pantas dengan aksara
-- magik/set aksara; find lebih pantas dengan teks biasa.
if (
match(pagename, "[#<>%[%]_{|}]") or
find(pagename, "\239\191\189") or
match(pagename, "%f[^%z/]%.%.?%f[%z/]") or
find(pagename, "~~~")
) then
unsupported = true
-- Jika ia kelihatan seperti pautan antara wiki.
elseif find(pagename, ":") then
local prefix = gsub(pagename, "^:*(.-):.*", ulower)
if (
load_data("Modul:data/namespaces")[prefix] or
load_data("Modul:data/interwikis")[prefix]
) then
unsupported = true
end
end
-- Lepaskan aksara yang tidak disokong supaya ia boleh digunakan dalam tajuk. ` digunakan sebagai pembatas untuk ini, jadi penggunaan mentah
-- tanda itu dalam tajuk yang tidak disokong turut dilepaskan di sini untuk mengelakkan gangguan; ini hanya dilakukan dengan tajuk yang
-- tidak disokong, jadi kemasukan tanda itu sendiri tidak bermakna tajuk tersebut dilayan sebagai tidak disokong (itulah sebabnya ia dikecualikan
-- daripada ujian awal).
if unsupported then
-- AMARAN: Penukaran ini perlu berbeza untuk halaman rekonstruksi dengan aksara yang tidak disokong. Tiada
-- yang wujud buat masa ini, tetapi jika ada, kita perlu membetulkannya cth. meletakkannya dalam sesuatu seperti
-- Reconstruction:Proto-Indo-European/Unsupported titles/`lowbar``num`.
local unsupported_characters = load_data(links_data_module).unsupported_characters
pagename = pagename:gsub("[#<>%[%]_`{|}\239]\191?\189?", unsupported_characters)
:gsub("%f[^%z/]%.%.?%f[%z/]", function(m)
return (gsub(m, "%.", "`period`"))
end)
:gsub("~~~+", function(m)
return (gsub(m, "~", "`tilde`"))
end)
pagename = "Unsupported titles/" .. pagename
elseif not is_reconstructed_or_appendix then
-- Semak sama ada ini halaman gergasi. Jika ya, subhalaman mana yang perlu kita pautkan?
local m_links_data = load_data(links_data_module)
local mammoth_page_type = m_links_data.mammoth_pages[pagename]
if mammoth_page_type then
local canonical_name = self:getFullName()
if canonical_name ~= "Rentas bahasa" and canonical_name ~= "Bahasa Melayu" then
local this_subpage
local L2_sort_key = get_L2_sort_key(canonical_name)
for _, subpage_spec in ipairs(m_links_data.mammoth_page_subpage_types[mammoth_page_type]) do
-- unpack() gagal sepenuhnya pada data yang dimuatkan menggunakan mw.loadData() walaupun ofset diberikan
local subpage, pattern = subpage_spec[1], subpage_spec[2]
if pattern == true or L2_sort_key:match(pattern) then
this_subpage = subpage
break
end
end
if not this_subpage then
error(("Ralat dalaman: Data tidak sah dalam mammoth_page_subpage_pages dalam [[Module:links/data]] untuk halaman gergasi %s, jenis %s; entri terakhir tiada 'true' di dalamnya"):format(
pagename, mammoth_page_type))
end
pagename = pagename .. "/" .. this_subpage
end
end
end
return (initial_asterisk or "") .. pagename
end
--[==[
Menanggalkan tanda diakritik daripada nama halaman paparan dan menukar nama halaman logik yang terhasil kepada nama halaman fizikal.
Ini membolehkan anda, sebagai contoh, mendapatkan kandungan halaman atau menyemak kewujudannya. AMARAN: Fungsi ini telah lapuk
dan akan dimansuhkan. Ia merupakan gabungan mudah bagi `self:stripDiacritics` dan `self:logicalToPhysical`; kebanyakan pemanggil
hanya memerlukan kaedah yang pertama, dan jika anda memerlukan kedua-duanya, panggil kedua-duanya secara berasingan.
`text` dan `sc` adalah seperti dalam `self:stripDiacritics`, dan `is_reconstructed_or_appendix` adalah seperti dalam `self:logicalToPhysical`.
]==]
function Language:makeEntryName(text, sc, is_reconstructed_or_appendix)
return self:logicalToPhysical(self:stripDiacritics(text, sc), is_reconstructed_or_appendix)
end
--[==[Menjana bentuk alternatif menggunakan kaedah yang dinyatakan, dan mengembalikannya sebagai jadual. Jika tiada kaedah dinyatakan, mengembalikan jadual yang hanya mengandungi istilah input.]==]
function Language:generateForms(text, sc)
local generate_forms = self._data.generate_forms
if generate_forms == nil then
return {text}
end
sc = checkScript(text, self, sc)
return require("Modul:" .. self._data.generate_forms).generateForms(text, self, sc)
end
--[==[Mencipta kunci isih bagi teks jalur yang diberikan, mengikut peraturan yang sesuai untuk bahasa tersebut. Ini menanggalkan
tanda diakritik daripada teks jalur jika ia dianggap tidak signifikan untuk pengisihan, dan mungkin melakukan beberapa pengubahsuaian
lain. Sebarang tanda sempang awal juga dialih keluar, dan apa sahaja di dalam kurungan turut dialih keluar.
Tetapan <code>sort_key</code> bagi setiap bahasa dalam modul data mentakrifkan penggantian yang dibuat oleh fungsi ini, atau ia memberikan nama modul yang menerima teks jalur dan mengembalikan kunci isih.]==]
function Language:makeSortKey(text, sc)
if (not text) or text == "" then
return text
end
if match(text, "<[^<>]+>") then
track("track HTML tag")
end
-- Mengalih keluar aksara arah, tebal, condong, tanda sempang lembut, penanda jalur dan tag HTML.
-- AMARAN: Sebahagiannya berulang dengan remove_formatting() dalam [[Module:links]].
text = ugsub(text, "[\194\173\226\128\170-\226\128\174\226\129\166-\226\129\169]", "")
text = text:gsub("('*)'''(.-'*)'''", "%1%2"):gsub("('*)''(.-'*)''", "%1%2")
text = gsub(unstrip(text), "<[^<>]+>", "")
text = decode_uri(text, "PATH")
text = checkNoEntities(self, text)
-- Mengalih keluar tanda sempang awal dan * melainkan istilah tersebut hanya terdiri daripada aksara penjarakan + tanda baca.
text = ugsub(text, "^([-]*)[-־ـ᠊*]+([-]*)(.*[^%s%p].*)", "%1%2%3")
sc = checkScript(text, self, sc)
text = normalize(text, sc)
text = removeCarets(text, sc)
-- Bagi bahasa yang mempunyai huruf i bertitik dan tanpa titik, pastikan "İ" diisih sebagai "i", dan "I" diisih sebagai "ı".
if self:hasDottedDotlessI() then
text = gsub(text, "I\204\135", "i") -- "İ" terurai
:gsub("I", "ı")
text = sc:toFixedNFD(text)
end
-- Tukar kepada huruf kecil, hasilkan kunci isih, kemudian tukar kepada huruf besar. Di mana bahasa mempunyai i bertitik dan tanpa titik, ia
-- biasanya tidak perlu menukar "i" kepada "İ" dan "ı" kepada "I" terlebih dahulu, kerana "I" akan sentiasa ditafsirkan sebagai
-- "I" konvensional (bukan "İ" tanpa titik) oleh mana-mana algoritma pengisihan, yang telah diambil kira oleh
-- penggantian kunci isih itu sendiri. Walau bagaimanapun, jika tiada penggantian kunci isih dinyatakan, maka penukaran adalah
-- perlu bagi mengelakkan kedua-dua "i" dan "ı" diisih sebagai "I".
--
-- Pengecualian dibuat untuk skrip yang (kadangkala) mengisih dengan mengikis kandungan halaman, kerana ini bermakna ia sensitif
-- terhadap perubahan penggunaan huruf besar/kecil (kerana ia mengubah halaman sasaran).
if not sc:sortByScraping() then
text = ulower(text)
end
local actual_substitution_data
-- Jangan pangkas ruang putih di sini kerana ia bermakna pada permulaan kunci isih atau asas isih.
text, _, actual_substitution_data = iterateSectionSubstitutions(self, text, sc, nil, nil, self._data.sort_key,
"sort_key", "makeSortKey", "notrim")
if not sc:sortByScraping() then
if self:hasDottedDotlessI() and not actual_substitution_data then
text = text:gsub("ı", "I"):gsub("i", "İ")
text = sc:toFixedNFC(text)
end
text = uupper(text)
end
-- Alih keluar kurungan, asalkan ia didahului atau diikuti oleh sesuatu.
text = gsub(text, "(.)[()]+", "%1"):gsub("[()]+(.)", "%1")
text = escape_risky_characters(text)
return text
end
--[==[Mencipta bentuk yang digunakan sebagai asas untuk teks paparan dan transliterasi. AMARAN: Namakan semula kepada correctInputText().]==]
local function processDisplayText(text, self, sc, keepCarets, keepPrefixes)
local subbedChars = {}
text, subbedChars = doTempSubstitutions(text, subbedChars, keepCarets)
text = decode_uri(text, "PATH")
text = checkNoEntities(self, text)
sc = checkScript(text, self, sc)
text = normalize(text, sc)
text, subbedChars = iterateSectionSubstitutions(self, text, sc, subbedChars, keepCarets, self._data.display_text,
"display_text", "makeDisplayText")
text = removeCarets(text, sc)
-- Alih keluar sebarang awalan pautan antara wiki (melainkan ia telah dilepaskan atau ciri ini dilumpuhkan).
if find(text, ":") and not keepPrefixes then
local rep
repeat
text, rep = gsub(text, "\\\\(\\*:)", "\3%1")
until rep == 0
text = gsub(text, "\\:", "\4")
while true do
local prefix = gsub(text, "^(.-):.+", function(m1)
return (gsub(m1, "\244[\128-\191]*", ""))
end)
-- Semak sama ada awalan ialah antara wiki, namun abaikan Wiktionary: dengan huruf besar, yang merupakan ruang nama.
if not prefix or prefix == text or prefix == "Wikikamus"
or not (load_data("Modul:data/interwikis")[ulower(prefix)] or prefix == "") then
break
end
text = gsub(text, "^(.-):(.*)", function(m1, m2)
local ret = {}
for subbedChar in gmatch(m1, "\244[\128-\191]*") do
insert(ret, subbedChar)
end
return concat(ret) .. m2
end)
end
text = gsub(text, "\3", "\\"):gsub("\4", ":")
end
return text, subbedChars
end
--[==[Menghasilkan teks paparan (iaitu apa yang dipaparkan pada halaman).]==]
function Language:makeDisplayText(text, sc, keepPrefixes)
if not text or text == "" then
return text
end
local subbedChars
text, subbedChars = processDisplayText(text, self, sc, nil, keepPrefixes)
text = escape_risky_characters(text)
return undoTempSubstitutions(text, subbedChars)
end
--[==[Mentransliterasikan teks daripada skrip yang diberikan kepada skrip Latin (lihat
[[Wiktionary:Transliteration and romanization]]). Bahasa mesti mempunyai sifat <code>translit</code> untuk ciri ini
berfungsi; jika ia tiada, {{code|lua|nil}} dikembalikan.
Parameter <code>sc</code> dikendalikan oleh modul transliterasi, dan cara ia dikendalikan adalah khusus kepada modul
tersebut. Sesetengah modul transliterasi mungkin menerima {{code|lua|nil}} sebagai skrip, yang lain memerlukannya menjadi salah satu
skrip yang mungkin boleh ditransliterasikan oleh modul, dan akan membuang ralat jika ia bukan salah satu daripadanya. Atas sebab ini,
parameter <code>sc</code> sepatutnya sentiasa disediakan semasa menulis kod bukan khusus bahasa.
Parameter <code>module_override</code> digunakan untuk mengatasi modul lalai yang digunakan bagi menyediakan
transliterasi. Ini berguna dalam kes di mana anda perlu menunjukkan penggunaan modul tertentu, tetapi modul lalai belum wujud,
atau anda ingin menunjukkan versi alternatif bagi modul transliterasi sebelum menjadikannya rasmi. Ia tidak sepatutnya
digunakan dalam modul atau templat sebenar, hanya untuk ujian. Semua penggunaan parameter ini dijejaki
oleh [[Wiktionary:Tracking/languages/module_override]].
'''Pepijat yang diketahui''':
* Fungsi ini mengandaikan {tr(s1) .. tr(s2) == tr(s1 .. s2)}. Apabila penegasan ini gagal, penanda teks wiki seperti <nowiki>'''</nowiki> boleh menyebabkan transliterasi yang salah.
* Entiti HTML seperti <code>&apos;</code>, yang sering digunakan untuk melepaskan penanda teks wiki, tidak berfungsi.
]==]
function Language:transliterate(text, sc, module_override)
-- Jika tiada teks, atau bahasa tidak mempunyai data transliterasi dan tiada override diberikan, kembalikan nil.
if not text or text == "" or text == "-" then
return text
end
-- Jika skrip tidak boleh ditransliterasikan (dan tiada override diberikan), kembalikan nil.
sc = checkScript(text, self, sc)
if not (sc:isTransliterated() or module_override) then
-- penjejakan sementara untuk melihat sama ada/bila ini dicetuskan
track("non-transliterable")
track("non-transliterable/" .. self._code)
track("non-transliterable/" .. sc:getCode())
track("non-transliterable/" .. sc:getCode() .. "/" .. self._code)
return nil
end
-- Alih keluar sebarang penanda jalur.
text = unstrip(text)
-- Jangan proses pemformatan kepada aksara PUA bagi bahasa-bahasa tertentu.
local processed = load_data(languages_data_module).substitution[self._code] ~= "none"
-- Dapatkan teks paparan dengan bendera keepCarets ditetapkan.
local subbedChars
if processed then
text, subbedChars = processDisplayText(text, self, sc, true)
end
-- Lakukan transliterasi (menggunakan module_override jika berkenaan).
text, subbedChars = iterateSectionSubstitutions(self, text, sc, subbedChars, true, module_override or
self._data.translit, "translit", "tr")
if not text then
return nil
end
-- Transliterasi tidak lengkap mengembalikan nil.
local charset = sc.characters
if charset and umatch(text, "[" .. charset .. "]") then
-- Alih keluar sebarang aksara dalam skrip Latin, termasuk aksara Latin yang turut terkandung dalam skrip lain (kerana ini
-- menghasilkan positif palsu), serta sebarang penggantian PUA. Apa-apa yang tinggal sepatutnya hanya kod skrip "None"
-- (cth. angka).
local check_text = ugsub(text, "[" .. get_script("Latn").characters .. "-]+", "")
-- Tetapkan bendera none_is_last_resort_only, supaya sebarang aksara bukan-None akan menyebabkan skrip selain "None"
-- dikembalikan.
if find_best_script_without_lang(check_text, true):getCode() ~= "None" then
return nil
end
end
if processed then
text = escape_risky_characters(text)
text = undoTempSubstitutions(text, subbedChars)
end
-- Jika skrip tidak menggunakan huruf besar, maka besarkan sebarang huruf transliterasi yang
-- didahului secara langsung oleh tanda sisip (dan alih keluar tanda sisip tersebut).
if text and not sc:hasCapitalization() and text:find("^", 1, true) then
text = processCarets(text, "%^([\128-\191\244]*%*?)([^\128-\191\244][\128-\191]*)", function(m1, m2)
return m1 .. uupper(m2)
end)
end
-- Jejaki override modul.
if module_override ~= nil then
track("module_override")
end
return text
end
do
local function handle_language_spec(self, spec, sc)
local ret = self["_" .. spec]
if ret == nil then
ret = self._data[spec]
if type(ret) == "string" then
ret = list_to_set(split(ret, ",", true, true))
end
self["_" .. spec] = ret
end
if type(ret) == "table" then
ret = ret[sc:getCode()]
end
return not not ret
end
function Language:overrideManualTranslit(sc)
return handle_language_spec(self, "override_translit", sc)
end
function Language:link_tr(sc)
return handle_language_spec(self, "link_tr", sc)
end
end
--[==[Mengembalikan {{code|lua|true}} jika bahasa mempunyai modul transliterasi, atau {{code|lua|false}} jika tiada.]==]
function Language:hasTranslit()
return not not self._data.translit
end
--[==[Mengembalikan {{code|lua|true}} jika bahasa menggunakan huruf I/ı dan İ/i, atau {{code|lua|false}} jika tidak.]==]
function Language:hasDottedDotlessI()
return not not self._data.dotted_dotless_i
end
function Language:toJSON(opts)
local strip_diacritics, strip_diacritics_patterns, strip_diacritics_remove_diacritics = self._data.strip_diacritics
if strip_diacritics then
if strip_diacritics.from then
strip_diacritics_patterns = {}
for i, from in ipairs(strip_diacritics.from) do
insert(strip_diacritics_patterns, {from = from, to = strip_diacritics.to[i] or ""})
end
end
strip_diacritics_remove_diacritics = strip_diacritics.remove_diacritics
end
-- mainCode hanya bernilai bukan nil jika dontCanonicalizeAliases dihantar ke make_object().
-- props sepatutnya mengandungi fungsi tanpa argumen untuk mengira nilai, atau nilai itu sendiri.
local props = {
ancestors = function() return self:getAncestorCodes() end,
canonicalName = function() return self:getCanonicalName() end,
categoryName = function() return self:getCategoryName("nocap") end,
code = self._code,
mainCode = self._mainCode,
parent = function() return self:getParentCode() end,
full = function() return self:getFullCode() end,
stripDiacriticsPatterns = strip_diacritics_patterns,
stripDiacriticsRemoveDiacritics = strip_diacritics_remove_diacritics,
family = function() return self:getFamilyCode() end,
aliases = function() return self:getAliases() end,
varieties = function() return self:getVarieties() end,
otherNames = function() return self:getOtherNames() end,
scripts = function() return self:getScriptCodes() end,
type = function() return keys_to_list(self:getTypes()) end,
wikimediaLanguages = function() return self:getWikimediaLanguageCodes() end,
wikidataItem = function() return self:getWikidataItem() end,
wikipediaArticle = function() return self:getWikipediaArticle(true) end,
}
local ret = {}
for prop, val in pairs(props) do
if not opts.skip_fields or not opts.skip_fields[prop] then
if type(val) == "function" then
ret[prop] = val()
else
ret[prop] = val
end
end
end
-- Gunakan `deep_copy` apabila mengembalikan jadual, supaya tiada sekatan penyuntingan yang dikenakan oleh `mw.loadData`.
return opts and opts.lua_table and deep_copy(ret) or to_json(ret, opts)
end
function export.getDataModuleName(code)
local letter = match(code, "^(%l)%l%l?$")
return "Modul:" .. (
letter == nil and "languages/data/exceptional" or
#code == 2 and "languages/data/2" or
"languages/data/3/" .. letter
)
end
get_data_module_name = export.getDataModuleName
function export.getExtraDataModuleName(code)
return get_data_module_name(code) .. "/extra"
end
get_extra_data_module_name = export.getExtraDataModuleName
do
local function make_stack(data)
local key_types = {
[2] = "unique",
aliases = "unique",
otherNames = "unique",
type = "append",
varieties = "unique",
wikipedia_article = "unique",
wikimedia_codes = "unique"
}
local function __index(self, k)
local stack, key_type = getmetatable(self), key_types[k]
-- Data yang tidak diwarisi daripada induk.
if key_type == "unique" then
local v = stack[stack[make_stack]][k]
if v == nil then
local layer = stack[0]
if layer then -- Boleh bernilai false jika tiada data tambahan.
v = layer[k]
end
end
return v
-- Data yang ditambah oleh setiap generasi.
elseif key_type == "append" then
local parts, offset, n = {}, 0, stack[make_stack]
for i = 1, n do
local part = stack[i][k]
if part == nil then
offset = offset + 1
else
parts[i - offset] = part
end
end
return offset ~= n and concat(parts, ",") or nil
end
local n = stack[make_stack]
while true do
local layer = stack[n]
if not layer then -- Boleh bernilai false jika tiada data tambahan.
return nil
end
local v = layer[k]
if v ~= nil then
return v
end
n = n - 1
end
end
local function __newindex()
error("jadual adalah baca sahaja")
end
local function __pairs(self)
-- Mengulangi susunan tindanan ke bawah, mencache kunci bagi mengelakkan pulangan pendua.
local stack, seen = getmetatable(self), {}
local n = stack[make_stack]
local iter, state, k, v = pairs(stack[n])
return function()
repeat
repeat
k = iter(state, k)
if k == nil then
n = n - 1
local layer = stack[n]
if not layer then -- Boleh bernilai false jika tiada data tambahan.
return nil
end
iter, state, k = pairs(layer)
end
until not (k == nil or seen[k])
-- Dapatkan nilai melalui carian, kerana nilai yang dikembalikan oleh
-- lelaran adalah nilai mentah daripada lapisan semasa,
-- yang mungkin bukan nilai yang akan dikembalikan oleh __index untuk
-- kunci tersebut. Lakukan juga memoize kunci dalam `seen` (walaupun carian
-- mengembalikan nil) supaya ia tidak dicari semula.
-- TODO: simpan nilai dalam `self`, mengelakkan keperluan membina
-- jadual `seen`. Lelaran perlu mengulangi ke atas
-- `self` dengan `next` terlebih dahulu untuk menemuinya pada gelung akan datang.
v, seen[k] = self[k], true
until v ~= nil
return k, v
end
end
local __ipairs = require(table_module).indexIpairs
function make_stack(data)
local stack = {
data,
[make_stack] = 1, -- menyimpan panjang dan bertindak sebagai penanda untuk mengesahkan sesuatu metajadual ialah tindanan.
__index = __index,
__newindex = __newindex,
__pairs = __pairs,
__ipairs = __ipairs,
}
stack.__metatable = stack
return setmetatable({}, stack), stack
end
return make_stack(data)
end
local function get_stack(data)
local stack = getmetatable(data)
return stack and type(stack) == "table" and stack[make_stack] and stack or nil
end
--[==[
<span style="color: var(--wikt-palette-red,#BA0000)">Fungsi ini bukan untuk digunakan dalam entri atau halaman kandungan lain.</span>
Mengembalikan gumpalan data mengenai bahasa tersebut. Format gumpalan ini tidak didokumenkan, dan barangkali tidak stabil; ia bertujuan untuk perkara seperti ujian unit modul itu sendiri, yang berkait rapat dengan modul dan akan dipastikan sentiasa terkini mengikut perubahan format. Jika `extra` ditetapkan, sebarang data tambahan dalam modul `/extra` berkaitan akan disertakan. (Ambil perhatian bahawa ia akan tetap disertakan jika ia telah pun dimuatkan ke dalam objek bahasa.) Jika `raw` ditetapkan, maka data yang dikembalikan tidak akan mengandungi sebarang data yang diwarisi daripada objek induk.
-- JANGAN gunakan kaedah-kaedah ini!
-- Semua penggunaan mesti dipra-luluskan pada halaman perbincangan!
]==]
function Language:getData(extra, raw)
if extra then
self:loadInExtraData()
end
local data = self._data
-- Jika raw tidak ditetapkan, kembalikan data sahaja.
if not raw then
return data
end
local stack = get_stack(data)
-- Jika tiada tindanan atau panjangnya adalah 1, kembalikan data. Data tambahan (jika ada) akan disertakan, kerana ia disimpan pada kunci 0 dan tidak menjejaskan panjang yang dilaporkan.
if stack == nil then
return data
end
local n = stack[make_stack]
if n == 1 then
return data
end
local extra = stack[0]
-- Jika tiada sebarang data tambahan, kembalikan lapisan teratas tindanan.
if extra == nil then
return stack[n]
end
-- Jika ada, kembalikan tindanan baharu yang mempunyai lapisan teratas pada kunci 1 dan data tambahan pada kunci 0.
data, stack = make_stack(stack[n])
stack[0] = extra
return data
end
function Language:loadInExtraData()
-- Hanya bahasa penuh mempunyai data tambahan.
if not self:hasType("language", "full") then
return
end
local data = self._data
-- Jika tiada tindanan, cipta satu.
local stack = get_stack(self._data)
if stack == nil then
data, stack = make_stack(data)
-- Jika telah dimuatkan, kembali.
elseif stack[0] ~= nil then
return
end
self._data = data
-- Muatkan data tambahan daripada modul berkaitan dan tambahkannya pada tindanan pada kunci 0, supaya metamethod __index dan __pairs akan mengambilnya, memandangkan ia mengulangi ke bawah tindanan sehingga kehabisan lapisan.
local code = self._code
local modulename = get_extra_data_module_name(code)
-- Tiada data dicache sebagai false.
stack[0] = modulename and load_data(modulename)[code] or false
end
--[==[Mengembalikan nama modul yang mengandungi data bahasa tersebut. Pada masa ini, ia sentiasa [[Module:scripts/data]].]==]
function Language:getDataModuleName()
local name = self._dataModuleName
if name == nil then
name = self:hasType("etymology-only") and etymology_languages_data_module or
get_data_module_name(self._mainCode or self._code)
self._dataModuleName = name
end
return name
end
--[==[Mengembalikan nama modul yang mengandungi data bahasa tersebut. Pada masa ini, ia sentiasa [[Module:scripts/data]].]==]
function Language:getExtraDataModuleName()
local name = self._extraDataModuleName
if name == nil then
name = not self:hasType("etymology-only") and get_extra_data_module_name(self._mainCode or self._code) or false
self._extraDataModuleName = name
end
return name or nil
end
function export.makeObject(code, data, dontCanonicalizeAliases)
local data_type = type(data)
if data_type ~= "table" then
error(("hujah #2 tidak sah untuk 'makeObject' (jadual dijangkakan, menerima %s)"):format(data_type))
end
-- Tukar sebarang alias.
local input_code = code
code = normalize_code(code)
input_code = dontCanonicalizeAliases and input_code or code
local parent
if data.parent then
parent = get_by_code(data.parent, nil, true, true)
else
parent = Language
end
parent.__index = parent
local lang = {_code = input_code}
-- Ini hanya boleh berlaku jika dontCanonicalizeAliases dihantar kepada make_object().
if code ~= input_code then
lang._mainCode = code
end
local parent_data = parent._data
if parent_data == nil then
-- Kod penuh adalah sama seperti kod bahasa.
lang._fullCode = parent._code or code
else
-- Salin kod penuh.
lang._fullCode = parent._fullCode
local stack = get_stack(parent_data)
if stack == nil then
parent_data, stack = make_stack(parent_data)
end
-- Sisipkan data input sebagai lapisan teratas baharu bagi tindanan.
local n = stack[make_stack] + 1
data, stack[n], stack[make_stack] = parent_data, data, n
end
lang._data = data
return setmetatable(lang, parent)
end
make_object = export.makeObject
end
--[==[Mencari bahasa yang kodnya sepadan dengan yang dibekalkan. Jika ia wujud, ia mengembalikan objek <code class="nf">Language</code> yang mewakili bahasa tersebut. Sebaliknya, ia mengembalikan {{code|lua|nil}}, melainkan jika <code class="n">paramForError</code> diberikan, yang mana ralat akan dijana. Jika <code class="n">paramForError</code> bernilai {{code|lua|true}}, mesej ralat generik yang menyatakan kod tidak sah akan dijana; selain itu <code class="n">paramForError</code> sepatutnya rentetan atau nombor yang menyatakan parameter punca kod tersebut, dan parameter ini akan dinyatakan dalam mesej ralat bersama kod yang salah. Jika <code class="n">allowEtymLang</code> dinyatakan, kod bahasa khusus etimologi dibenarkan dan dicari bersama kod bahasa biasa. Jika <code class="n">allowFamily</code> dinyatakan, kod keluarga bahasa dibenarkan dan dicari bersama kod bahasa biasa.]==]
function export.getByCode(code, paramForError, allowEtymLang, allowFamily)
-- Jejaki penggunaan paramForError, bertujuan untuk membolehkannya dialih keluar akhirnya, kerana pengendalian ralat sepatutnya dilakukan oleh [[Module:parameters]], bukan di sini.
if paramForError ~= nil then
track("paramForError")
end
if type(code) ~= "string" then
local typ
if not code then
typ = "nil"
elseif check_object("language", true, code) then
typ = "objek bahasa"
elseif check_object("family", true, code) then
typ = "objek keluarga"
else
typ = type(code)
end
error("Fungsi getByCode menjangkakan rentetan sebagai hujah pertamanya, tetapi menerima " .. typ .. ".")
end
local m_data = load_data(languages_data_module)
if m_data.aliases[code] or m_data.track[code] then
track(code)
end
local norm_code = normalize_code(code)
-- Dapatkan data, menyemak bahasa khusus etimologi jika allowEtymLang ditetapkan.
local data = load_data(get_data_module_name(norm_code))[norm_code] or
allowEtymLang and load_data(etymology_languages_data_module)[norm_code]
-- Jika tiada data ditemui dan allowFamily ditetapkan, semak data keluarga. Jika data keluarga utama ditemui, bina objek menggunakan [[Module:families]] sebagai ganti, kerana objek keluarga mempunyai kaedah yang berbeza. Walau bagaimanapun, jika ia keluarga khusus etimologi, gunakan make_object dalam modul ini (yang mengendalikan pewarisan objek), dan kaedah khusus keluarga akan diwarisi daripada objek induk.
if data == nil and allowFamily then
data = load_data("Modul:families/data")[norm_code]
if data ~= nil then
if data.parent == nil then
return make_family_object(norm_code, data)
elseif not allowEtymLang then
data = nil
end
end
end
local retval = code and data and make_object(code, data)
if not retval and paramForError then
require("Modul:languages/errorGetBy").code(code, paramForError, allowEtymLang, allowFamily)
end
return retval
end
get_by_code = export.getByCode
--[==[Mencari bahasa yang nama kanoniknya (nama yang digunakan untuk mewakili bahasa tersebut di Wiktionary) atau nama lainnya sepadan dengan yang dibekalkan. Jika wujud, ia mengembalikan objek <code class="nf">Language</code> yang mewakili bahasa tersebut. Sebaliknya, ia mengembalikan {{code|lua|nil}}, melainkan <code class="n">paramForError</code> diberikan, yang mana ralat akan dijana. Jika <code class="n">allowEtymLang</code> dinyatakan, kod bahasa khusus etimologi dibenarkan dan dicari bersama kod bahasa biasa. Jika <code class="n">allowFamily</code> dinyatakan, kod keluarga bahasa dibenarkan dan dicari bersama kod bahasa biasa.
Nama kanonik bahasa mestilah sentiasa unik (adalah menjadi ralat bagi dua bahasa di Wiktionary berkongsi nama kanonik yang sama), jadi fungsi ini dijamin memberikan selebih-lebihnya satu hasil.
Fungsi ini dikuasakan oleh [[Module:languages/canonical names]], yang mengandungi pemetaan prapapar nama kanonik bahasa penuh kepada kod. Ia dijana dengan meneliti [[:Kategori:Modul data bahasa]] bagi bahasa penuh. Apabila <code class="n">allowEtymLang</code> dinyatakan untuk fungsi di atas, [[Module:etymology languages/canonical names]] juga boleh digunakan, dan apabila <code class="n">allowFamily</code> dinyatakan untuk fungsi di atas, [[Module:families/canonical names]] juga boleh digunakan.]==]
function export.getByCanonicalName(name, errorIfInvalid, allowEtymLang, allowFamily)
local byName = load_data("Modul:languages/canonical names")
local code = byName and byName[name]
if not code and allowEtymLang then
byName = load_data("Modul:etymology languages/canonical names")
code = byName and byName[name] or
byName[gsub(name, "^[Ss]ubstratum ", "")] or
byName[gsub(name, "^suatu ", "")] or
byName[gsub(name, "^suatu ", ""):gsub("^[Ss]ubstratum ", "")] or
-- Untuk keluarga etimologi seperti "ira-pro".
-- AMARAN: Ini kurang ideal, kerana ia membenarkan " languages" dilampirkan pada mana-mana bahasa khusus etimologi juga.
byName[match(name, "^[Bb]ahasa%-bahasa (.*)$")]
end
if not code and allowFamily then
byName = load_data("Modul:families/canonical names")
code = byName[name] or byName[match(name, "^[Bb]ahasa%-bahasa (.*)$")]
end
local retval = code and get_by_code(code, errorIfInvalid, allowEtymLang, allowFamily)
if not retval and errorIfInvalid then
require("Modul:languages/errorGetBy").canonicalName(name, allowEtymLang, allowFamily)
end
return retval
end
--[==[Digunakan oleh [[Module:languages/data/2]] (dan lain-lain) serta [[Module:etymology languages/data]], [[Module:families/data]], [[Module:scripts/data]] dan [[Module:writing systems/data]] untuk memuktamadkan data ke dalam format yang sebenarnya dikembalikan.]==]
function export.finalizeData(data, main_type, variety)
local fields = {"type"}
if main_type == "language" then
insert(fields, 4) -- kod skrip
insert(fields, "ancestors")
insert(fields, "link_tr")
insert(fields, "override_translit")
insert(fields, "wikimedia_codes")
elseif main_type == "script" then
insert(fields, 3) -- kod sistem tulisan
end -- Keluarga dan sistem tulisan tidak mempunyai medan tambahan untuk diproses.
local fields_len = #fields
for _, entity in next, data do
if variety then
-- Pindahkan induk daripada 3 ke "parent" dan keluarga daripada "family" ke 3. Ini berbeza atas dasar kemudahan, memandangkan sangat sedikit variasi yang menyatakan keluarga, manakala kesemuanya mempunyai induk.
entity.parent, entity[3], entity.family = entity[3], entity.family
-- Berikan jenis "regular" jika dan hanya jika bukan variasi dan tiada jenis lain yang ditetapkan.
elseif not (entity.type or entity.parent) then
entity.type = "regular"
end
for i = 1, fields_len do
local key = fields[i]
local field = entity[key]
if field and type(field) == "string" then
entity[key] = gsub(field, "%s*,%s*", ",")
end
end
end
return data
end
--[==[Untuk keserasian ke belakang sahaja; modul sepatutnya memerlukan fail ralat itu sendiri.]==]
function export.err(lang_code, param, code_desc, template_tag, not_real_lang)
return require("Modul:languages/error")(lang_code, param, code_desc, template_tag, not_real_lang)
end
return export
oqtanurctlr3n9w3boxoqxe3uya7szx
373536
373535
2026-09-11T08:48:56Z
Hakimi97
2668
373536
Scribunto
text/plain
--[==[ intro:
Modul ini melaksanakan pengambilan maklumat khusus bahasa dan pemprosesan teks dalam bahasa yang diberikan.
===Jenis-jenis bahasa===
Terdapat dua jenis bahasa: bahasa penuh dan bahasa khusus etimologi. Perbezaan ketara ialah hanya bahasa penuh
yang muncul dalam tajuk L2 pada entri kosa kata, justeru kategori seperti [[:Kategori:Kata nama bahasa Perancis]] hanya
wujud untuk bahasa penuh. Bahasa khusus etimologi mempunyai sama ada bahasa penuh atau bahasa khusus etimologi yang
lain sebagai induknya (dalam erti pewarisan induk-anak), dan bagi bahasa khusus etimologi yang berindukkan bahasa
khusus etimologi yang lain, bahasa penuh sentiasa dapat diterbitkan dengan menuruti pautan induk ke atas. Contohnya,
"Perancis Kanada", kod `fr-CA`, ialah bahasa khusus etimologi yang berindukkan bahasa penuh "Perancis", kod `fr`.
Contoh bahasa khusus etimologi dengan induk khusus etimologi yang lain ialah "Inggeris Kuno Northumbria", kod `ang-nor`,
yang mempunyai "Inggeris Kuno Anglian", kod `ang-ang` sebagai induknya; ini ialah bahasa khusus etimologi yang induknya
ialah "Inggeris Kuno", kod `ang`, iaitu bahasa penuh. (Ini adalah kerana Inggeris Kuno Northumbria dianggap sebagai satu
variasi bagi Inggeris Kuno Anglian.) Kadangkala induknya ialah bahasa "Tidak Ditentukan", kod `und`; hal ini berlaku,
sebagai contoh, bagi bahasa-bahasa "substrat" seperti "Pra-Yunani", kod `qsb-grc`, dan "substrat BMAC", kod `qsb-bma`.
Adalah penting untuk membezakan ''induk'' bahasa daripada ''leluhur'' bahasa. Hubungan induk-anak ialah hubungan
pembendungan, iaitu jika X ialah anak kepada Y, X dianggap sebagai satu variasi bagi Y. Sebaliknya, hubungan
leluhur-keturunan ialah hubungan penurunan mengikut masa. Sebagai contoh, "Latin Klasik", kod `la-cla`, dan "Latin Akhir",
kod `la-lat`, kedua-duanya adalah bahasa khusus etimologi yang mempunyai "Latin", kod `la`, sebagai induknya, kerana
kedua-dua bahasa terdahulu merupakan variasi bagi bahasa Latin. Walau bagaimanapun, Latin Akhir *TIDAK* mempunyai
Latin Klasik sebagai induknya kerana Latin Akhir *bukan* variasi bagi Latin Klasik; sebaliknya, ia adalah keturunannya.
Sebenarnya terdapat medan `ancestors` berasingan yang digunakan untuk menyatakan hubungan leluhur-keturunan, dan
leluhur bagi Latin Akhir diberikan sebagai Latin Klasik. Perlu diambil perhatian juga bahawa kadangkala bahasa khusus
etimologi sebenarnya merupakan leluhur konseptual kepada bahasa induknya sendiri. Ini berlaku, misalnya, dengan
"Itali Kuno" (kod `roa-oit`), yang merupakan varian khusus etimologi bagi bahasa penuh "Itali" (kod `it`), dan dengan
"Latin Kuno" (kod `itc-ola`), yang merupakan varian khusus etimologi bagi Latin. Dalam kedua-dua kes, bahasa penuh
menyenaraikan varian khusus etimologi sebagai leluhur. Ini membolehkan sesuatu istilah Latin mewarisi daripada Latin Kuno
menggunakan templat {{tl|inh}} (di mana dalam templat ini, "pewarisan" merujuk kepada pewarisan keturunan/leluhur,
iaitu pewarisan mengikut garis masa, bukannya dalam erti induk-anak); begitu juga bagi bahasa Itali dan Itali Kuno.
Bahasa penuh terbahagi kepada tiga subjenis:
* {regular}: Ini menunjukkan bahasa penuh yang diperakui mengikut [[WT:CFI]] dan oleh itu dibenarkan dalam ruang nama
utama. Mungkin terdapat juga istilah yang direkonstruksi untuk bahasa tersebut, yang diletakkan dalam ruang
nama {Rekonstruksi} dan mesti diawali dengan tanda * untuk menunjukkan rekonstruksi. Kebanyakan bahasa penuh
ialah bahasa semula jadi (bukan bahasa buatan), namun beberapa bahasa buatan (cth. Esperanto dan Volapük,
antara lain) juga dibenarkan dalam ruang nama utama dan dianggap sebagai bahasa biasa.
* {reconstructed}: Bahasa ini tidak diperakui mengikut [[WT:CFI]], dan oleh itu hanya dibenarkan dalam ruang nama
{Rekonstruksi}. Semua istilah dalam bahasa ini adalah yang direkonstruksi, dan mesti diawali dengan
tanda *. Bahasa seperti Proto-Indo-Eropah dan Proto-Jermanik berada dalam kategori ini.
* {appendix-constructed}: Bahasa ini diperakui tetapi tidak memenuhi syarat tambahan yang ditetapkan untuk bahasa
buatan ([[WT:CFI#Constructed languages]]). Entrinya mestilah berada dalam ruang nama Lampiran,
tetapi ia tidak direkonstruksi dan oleh itu tidak sepatutnya diawali dengan tanda * dalam pautan.
Kebanyakan bahasa buatan tergolong dalam subjenis ini.
Kedua-dua bahasa penuh dan bahasa khusus etimologi mempunyai objek {Language} yang dikaitkan dengannya, yang diambil
menggunakan fungsi {getByCode} dalam [[Module:languages]] untuk menukar kod bahasa kepada objek {Language}. Bergantung
pada pilihan yang dibekalkan kepada fungsi ini, bahasa khusus etimologi mungkin diterima atau tidak, dan kod keluarga
mungkin diterima (mengembalikan objek {Family} seperti yang diterangkan dalam [[Module:families]]). Terdapat juga fungsi
{getByCanonicalName} yang berasingan dalam [[Module:languages]] dan [[Module:etymology languages]] untuk menukar nama
kanonik sesuatu bahasa kepada objek {Language} (bergantung pada sama ada nama kanonik merujuk kepada bahasa penuh atau
bahasa khusus etimologi).
===Perwakilan teks===
Rentetan teks yang tergolong dalam sesuatu bahasa hadir dalam beberapa ''varian teks'' yang berbeza:
# ''Teks input'' ialah teks yang dibekalkan oleh pengguna dalam teks wiki, dalam parameter kepada {{tl|m}}, {{tl|l}},
{{tl|ux}}, {{tl|t}}, {{tl|lang}} dan seumpamanya.
# ''Teks input yang diperbetul'' ialah teks input yang telah diterapkan beberapa pembetulan dan/atau penormalan,
seperti penggantian aksara lapuk atau salah bagi sesetengah bahasa, contohnya menggantikan `l` atau `1` kepada
[[palochka]] dalam beberapa bahasa yang ditulis dalam abjad Cyril. (AMARAN: Ini kini berjalan di bawah nama
''display text'' tetapi ia akan diubah peranannya di bawah. Selain itu, [[User:Surjection]] mencadangkan menamakan
semula ini sebagai ''normalized input text'', tetapi "normalized" digunakan dalam pengertian berbeza dalam [[Module:usex]].)
# ''Teks paparan'' ialah teks dalam bentuk sebagaimana yang akan dipaparkan kepada pengguna. Inilah yang muncul dalam
kata kepala, dalam contoh penggunaan (usex), dalam pautan dalaman yang dipaparkan, dsb. Ini boleh merangkumi tanda diakritik
yang dialih keluar untuk membentuk teks paparan jalur (lihat di bawah), serta pautan dalam kurungan bertanam yang
diproses selanjutnya melalui pelbagai kaedah. Teks paparan dijana daripada teks input yang diperbetul dengan menerapkan
penjelmaan khusus bahasa; untuk kebanyakan bahasa, tiada penjelmaan sedemikian. Sebab utama perbezaan antara teks input
dan teks paparan adalah untuk membolehkan maklumat tambahan dalam teks input yang tidak dipaparkan kepada pengguna tetapi
dihantar ke modul transliterasi. Ambil perhatian bahawa perbezaan paparan dan teks input buat masa ini hanya disokong
melalui pengendalian khas tetapi akan digeneralisasikan. Contoh transformasi ialah: (1) Mengalih keluar {{cd|^}} yang
digunakan dalam sesetengah bahasa Asia Timur (dan mungkin bahasa unikameral lain) untuk menandakan penulisan huruf besar
bagi transliterasi (yang pada masa ini dikendalikan secara khas); (2) untuk bahasa Korea, mengalih keluar atau memproses
tanda sempang (yang kini dikendalikan secara khas); (3) untuk bahasa Arab, mengalih keluar tanda diakritik ''sukun''
yang diletakkan di atas ''ta marbutah'' (seperti ini: ةْ) untuk menandakan bahawa ''ta marbutah'' dibunyikan dan
ditransliterasikan sebagai /t/ dan bukannya senyap [NOTA, BELUM DILAKSANAKAN]; (4) untuk bahasa Thai dan Khmer,
menukar perkataan yang dipisahkan ruang kepada perkataan berpasangan kurungan dan meleraikan penggantian ejaan semula
seperti `[กรีน/กฺรีน]`, yang menunjukkan cara mentransliterasikan perkataan yang diberikan [NOTA, BELUM DILAKSANAKAN
kecuali dalam templat khusus bahasa seperti {{tl|th-usex}}].
## ''Teks paparan leraian kanan'' ialah hasil daripada mengalih keluar tanda kurung pada pautan bertanam satu bahagian
dan meleraikan pautan bertanam dua bahagian kepada komponen sebelah kanannya (iaitu menukar pautan dua bahagian ke dalam
bentuk yang dipaparkan). Proses leraian kanan berlaku apabila anda memanggil fungsi {{cd|remove_links()}} dalam
[[Module:links]] pada sesuatu teks. Apabila diterapkan pada teks paparan, ia menghasilkan apa yang dilihat oleh
pengguna dengan tepat, tanpa sebarang penanda pautan.
# ''Teks paparan jalur'' ialah hasil daripada penerapan penanggalan tanda diakritik pada teks paparan.
## ''Teks paparan jalur leraian kiri'' [PERLU NAMA LEBIH BAIK] ialah hasil daripada penerapan leraian kiri pada teks
paparan jalur, iaitu serupa dengan leraian kanan tetapi meleraikan pautan bertanam dua bahagian kepada komponen
sebelah kirinya (iaitu halaman sasaran pautan). Jika teks paparan merujuk kepada satu halaman sahaja, hasil daripada
menerapkan penanggalan tanda diakritik dan leraian kiri akan menghasilkan ''nama halaman logik''.
# ''Teks nama halaman fizikal'' ialah hasil daripada penukaran teks paparan jalur kepada pautan halaman fizikal. Jika teks
paparan jalur mengandungi pautan bertanam, sebelah kiri pautan tersebut ditukar menjadi pautan halaman fizikal; jika
tidak, keseluruhan teks dianggap sebagai nama halaman dan ditukar dengan cara yang sama. Penukaran melakukan tiga perkara:
(1) menukar aksara yang tidak dibenarkan dalam nama halaman kepada perwakilan "tajuk tidak disokong", cth.
{{cd|Unsupported titles/`gt`}} menggantikan nama logik {{cd|>}}; (2) mengendalikan nama halaman logik tajuk tidak
disokong yang dikendalikan khas, seperti {{cd|Unsupported titles/Space}} menggantikan {{cd|[space]}} dan
{{cd|Unsupported titles/Ancient Greek dish}} menggantikan nama Yunani yang sangat panjang untuk hidangan gourmet
seperti yang terdapat dalam Aristophanes; (3) menukar nama halaman "gergasi" seperti [[a]] kepada komponen pisahan yang
sesuai, cth. [[a/languages A to L]].
# ''Teks transliterasi sumber'' ialah teks seperti yang dibekalkan kepada kaedah {{cd|transliterate()}} khusus bahasa. Bentuk
teks transliterasi sumber mungkin perlu khusus mengikut bahasa, cth. bahasa Thai dan Khmer memerlukan teks input yang
diperbetul, manakala bahasa lain mungkin perlu beroperasi daripada teks paparan. [AMARAN: Masih belum jelas bagaimana
pautan bertanam dalam tanda kurung dikendalikan dalam kod sedia ada.] Secara umumnya, pautan bertanam perlu dileraikan ke kanan
(lihat di atas), namun waktu proses ini berlaku masih belum jelas [AMARAN]. Sesetengah bahasa mempunyai skim potong-dan-cantum
yang menghantar bahagian teks melalui mekanisme transliterasi, dan untuk bahasa lain (yang disenaraikan dengan "cont"
dalam {{cd|substitution}} dalam [[Module:languages/data]]) ia menerima keseluruhan teks input tetapi telah dipraproses
melalui cara tertentu. (Kesesuaian kaedah ini masih belum jelas.)
# ''Teks transliterasi'' (atau ''transliterasi'') ialah hasil daripada mentransliterasikan teks transliterasi sumber.
Tidak seperti semua varian teks yang lain kecuali teks transkripsi, ia sentiasa berada dalam skrip Rumi (Latin).
# ''Teks transkripsi'' (atau ''transkripsi'') ialah hasil daripada mentranskripsikan teks transliterasi sumber, di mana
"transkripsi" di sini bermaksud anggaran yang hampir dengan bentuk fonetik bahasa dalam bahasa-bahasa (cth. Akkadia,
Sumeria, Mesir Purba, barangkali Tibet) yang mempunyai perbezaan ketara antara huruf bertulis dan bentuk pertuturan.
Tidak seperti semua varian teks lain selain teks transliterasi, ia sentiasa berada dalam skrip Rumi (Latin). Pada masa
ini, teks transkripsi sentiasa dibekalkan secara manual oleh pengguna; tiada kaedah {{cd|transcribe()}} pada objek bahasa.
# ''Kunci isih'' ialah teks yang digunakan dalam kunci isihan untuk menentukan kedudukan susunan halaman dalam kategori
yang disertainya. Kunci isih dijana daripada nama halaman atau ''asas isih'' tertentu dengan menukarkannya kepada huruf
kecil, melakukan penjelmaan khusus bahasa dan kemudian menukarkan hasilnya kepada huruf besar. Sekiranya asas isih
dibekalkan dan dijana daripada teks input, ia perlu ditukar kepada teks paparan, pautan bertanam dialih keluar melalui
leraian kanan dan penanggalan tanda diakritik diterapkan.
# Terdapat varian teks lain yang berlaku dalam contoh penggunaan / usex (khususnya, terdapat varian ternormal bagi
beberapa varian teks di atas), tetapi kita boleh melangkau bahagian tersebut buat masa ini.
Kaedah-kaedah berikut wujud pada objek {Language} untuk menukar antara varian teks yang berbeza:
# {correctInputText} (kini dipanggil {makeDisplayText}): Ini menukar teks input kepada teks input yang diperbetul.
# {stripDiacritics}: Ini menukar kepada teks paparan jalur. [AMARAN: Ini memerlukan penelitian semula. Khususnya,
{stripDiacritics} kadangkala dipanggil pada teks input, teks input yang diperbetul atau teks paparan (dalam pelbagai
laluan di dalam [[Module:links]], dan, dalam kes teks input, biasanya daripada modul lain). Kita perlu memastikan kita
tidak cuba menukar teks input kepada teks paparan sebanyak dua kali, namun pada masa yang sama kita perlu menyokong
panggilan terus padanya bagi teks input memandangkan banyak modul berbuat demikian. Ini bermakna kita perlu menambah
parameter yang menandakan sama ada teks yang dimasukkan ialah teks input, teks input yang diperbetul, atau teks paparan;
jika dua yang pertama, kita memanggil {correctInputText} secara automatik.]
# {logicalToPhysical}: Ini menukar nama halaman logik kepada nama halaman fizikal.
# {transliterate}: Ini berfungsi menukar teks input dengan tanda kurung bertanam yang dialih keluar kepada transliterasi.
[AMARAN: Ini memerlukan penelitian semula. Khususnya, ia memanggil {processDisplayText} pada inputnya, yang tidak akan
berfungsi untuk bahasa Thai dan Khmer, jadi kita mungkin memerlukan bendera khusus bahasa yang menandakan sama ada
untuk menghantar teks input secara terus kepada kaedah transliterasi bahasa. Selain itu, saya tidak pasti bagaimana
pautan bertanam dikendalikan dalam kod transliterasi sedia ada; banyak pemanggil mengalih keluar pautan sendiri sebelum
memanggil {transliterate()}, yang saya anggap kurang tepat.]
# {makeSortKey}: Ini menukar teks paparan (?) kepada kunci isih. [AMARAN: Perlu perjelasan.]
]==]
local export = {}
local debug_track_module = "Modul:debug/track"
local etymology_languages_data_module = "Modul:etymology languages/data"
local families_module = "Modul:families"
local headword_page_module = "Modul:headword/page"
local json_module = "Modul:JSON"
local language_like_module = "Modul:language-like"
local languages_data_module = "Modul:languages/data"
local languages_data_patterns_module = "Modul:languages/data/patterns"
local links_data_module = "Modul:links/data"
local load_module = "Modul:load"
local scripts_module = "Modul:scripts"
local scripts_data_module = "Modul:scripts/data"
local string_encode_entities_module = "Modul:string/encode entities"
local string_pattern_escape_module = "Modul:string/patternEscape"
local string_replacement_escape_module = "Modul:string/replacementEscape"
local string_utilities_module = "Modul:string utilities"
local table_module = "Modul:table"
local utilities_module = "Modul:utilities"
local wikimedia_languages_module = "Modul:wikimedia languages"
local mw = mw
local string = string
local table = table
local char = string.char
local concat = table.concat
local find = string.find
local floor = math.floor
local get_by_code -- Ditakrifkan di bawah.
local get_data_module_name -- Ditakrifkan di bawah.
local get_extra_data_module_name -- Ditakrifkan di bawah.
local getmetatable = getmetatable
local gmatch = string.gmatch
local gsub = string.gsub
local insert = table.insert
local ipairs = ipairs
local is_known_language_tag = mw.language.isKnownLanguageTag
local make_object -- Ditakrifkan di bawah.
local match = string.match
local next = next
local pairs = pairs
local remove = table.remove
local require = require
local select = select
local setmetatable = setmetatable
local sub = string.sub
local type = type
local unstrip = mw.text.unstrip
-- Dimuatkan mengikut keperluan oleh findBestScript.
local Hans_chars
local Hant_chars
local function check_object(...)
check_object = require(utilities_module).check_object
return check_object(...)
end
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function decode_entities(...)
decode_entities = require(string_utilities_module).decode_entities
return decode_entities(...)
end
local function decode_uri(...)
decode_uri = require(string_utilities_module).decode_uri
return decode_uri(...)
end
local function deep_copy(...)
deep_copy = require(table_module).deepCopy
return deep_copy(...)
end
local function encode_entities(...)
encode_entities = require(string_encode_entities_module)
return encode_entities(...)
end
local function get_L2_sort_key(...)
get_L2_sort_key = require(headword_page_module).get_L2_sort_key
return get_L2_sort_key(...)
end
local function get_script(...)
get_script = require(scripts_module).getByCode
return get_script(...)
end
local function find_best_script_without_lang(...)
find_best_script_without_lang = require(scripts_module).findBestScriptWithoutLang
return find_best_script_without_lang(...)
end
local function get_family(...)
get_family = require(families_module).getByCode
return get_family(...)
end
local function get_plaintext(...)
get_plaintext = require(utilities_module).get_plaintext
return get_plaintext(...)
end
local function get_wikimedia_lang(...)
get_wikimedia_lang = require(wikimedia_languages_module).getByCode
return get_wikimedia_lang(...)
end
local function keys_to_list(...)
keys_to_list = require(table_module).keysToList
return keys_to_list(...)
end
local function list_to_set(...)
list_to_set = require(table_module).listToSet
return list_to_set(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function make_family_object(...)
make_family_object = require(families_module).makeObject
return make_family_object(...)
end
local function pattern_escape(...)
pattern_escape = require(string_pattern_escape_module)
return pattern_escape(...)
end
local function replacement_escape(...)
replacement_escape = require(string_replacement_escape_module)
return replacement_escape(...)
end
local function safe_require(...)
safe_require = require(load_module).safe_require
return safe_require(...)
end
local function shallow_copy(...)
shallow_copy = require(table_module).shallowCopy
return shallow_copy(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function to_json(...)
to_json = require(json_module).toJSON
return to_json(...)
end
local function u(...)
u = require(string_utilities_module).char
return u(...)
end
local function ugsub(...)
ugsub = require(string_utilities_module).gsub
return ugsub(...)
end
local function ulen(...)
ulen = require(string_utilities_module).len
return ulen(...)
end
local function ulower(...)
ulower = require(string_utilities_module).lower
return ulower(...)
end
local function umatch(...)
umatch = require(string_utilities_module).match
return umatch(...)
end
local function uupper(...)
uupper = require(string_utilities_module).upper
return uupper(...)
end
local function track(page)
debug_track("languages/" .. page)
return true
end
local function normalize_code(code)
return load_data(languages_data_module).aliases[code] or code
end
local function check_inputs(self, check, default, ...)
local n = select("#", ...)
if n == 0 then
return false
end
local ret = check(self, (...))
if ret ~= nil then
return ret
elseif n > 1 then
local inputs = {...}
for i = 2, n do
ret = check(self, inputs[i])
if ret ~= nil then
return ret
end
end
end
return default
end
local function make_link(self, target, display)
local prefix, main
if self:getFamilyCode() == "qfa-sub" then
prefix, main = display:match("^(the )(.*)")
if not prefix then
prefix, main = display:match("^(a )(.*)")
end
end
return (prefix or "") .. "[[" .. target .. "|" .. (main or display) .. "]]"
end
-- Menukar aksara berisiko kepada entiti HTML, yang meminimumkan gangguan setelah dikembalikan (cth. untuk "sms:a", "<!-- -->" dsb.).
local function escape_risky_characters(text)
-- Aksara penjarakan secara berasingan secara amnya perlu dilepaskan untuk diproses dengan betul oleh perisian MediaWiki.
if umatch(text, "^%s*$") then
return encode_entities(text, text)
end
return encode_entities(text, "!#%&*+/:;<=>?@[\\]_{|}")
end
-- Menukar pelbagai aksara pemformatan kepada PUA buat sementara waktu bagi mengelakkannya terganggu oleh proses penggantian.
local function doTempSubstitutions(text, subbedChars, keepCarets, noTrim)
-- Klon supaya kita tidak menyelitkan sebarang corak tambahan ke dalam jadual dalam package.loaded. Atas sebab tertentu, penggunaan require dilihat dapat mengekalkan penggunaan memori yang rendah; mungkin kerana jadual sentiasa diklon.
local patterns = shallow_copy(require(languages_data_patterns_module))
if keepCarets then
insert(patterns, "((\\+)%^)")
insert(patterns, "((%^))")
end
-- Memastikan sebarang ruang putih pada permulaan dan penghujung digantikan sementara, untuk mengelakkannya daripada dipangkas secara tidak sengaja. Kita hanya mahu memangkas sebarang ruang akhir yang ditambah semasa proses penggantian (cth. oleh modul), yang bermaksud kita hanya melakukan ini semasa pusingan pertama penggantian sementara.
if not noTrim then
insert(patterns, "^([\128-\191\244]*(%s+))")
insert(patterns, "((%s+)[\128-\191\244]*)$")
end
-- Pra-penggantian bagi "[[" dan "]]", yang menjadikan pemadanan corak lebih tepat.
text = gsub(text, "%f[%[]%[%[", "\1"):gsub("%f[%]]%]%]", "\2")
local i = #subbedChars
for _, pattern in ipairs(patterns) do
-- Corak yang berakhir dengan \0 adalah untuk perkara seperti "[[" atau "]]"), jadi PUA yang diselitkan dianggap sebagai pemisah antara istilah oleh modul yang mengikis maklumat daripada halaman.
local term_divider
pattern = gsub(pattern, "%z$", function(divider)
term_divider = divider == "\0"
return ""
end)
text = gsub(text, pattern, function(...)
local m = {...}
local m1New = m[1]
for k = 2, #m do
local n = i + k - 1
subbedChars[n] = m[k]
local byte2 = floor(n / 4096) % 64 + (term_divider and 128 or 136)
local byte3 = floor(n / 64) % 64 + 128
local byte4 = n % 64 + 128
m1New = gsub(m1New, pattern_escape(m[k]), "\244" .. char(byte2) .. char(byte3) .. char(byte4), 1)
end
i = i + #m - 1
return m1New
end)
end
text = gsub(text, "\1", "%[%["):gsub("\2", "%]%]")
return text, subbedChars
end
-- Menyisip semula sebarang pemformatan yang digantikan buat sementara waktu.
local function undoTempSubstitutions(text, subbedChars)
for i = 1, #subbedChars do
local byte2 = floor(i / 4096) % 64 + 128
local byte3 = floor(i / 64) % 64 + 128
local byte4 = i % 64 + 128
text = gsub(text, "\244[" .. char(byte2) .. char(byte2+8) .. "]" .. char(byte3) .. char(byte4),
replacement_escape(subbedChars[i]))
end
text = gsub(text, "\1", "%[%["):gsub("\2", "%]%]")
return text
end
-- Menyemak sama ada teks mentah ialah tajuk yang tidak disokong, dan jika ya kembalikannya. Jika tidak, alih keluar entiti HTML. Kita melakukan pra-penukaran untuk mengelakkan pemuatan senarai tajuk tidak disokong tanpa keperluan.
local function checkNoEntities(self, text)
local textNoEnc = decode_entities(text)
if textNoEnc ~= text and load_data(links_data_module).unsupported_titles[text] then
return text
else
return textNoEnc
end
end
-- Jika tiada objek skrip disediakan (atau jika tidak sah atau None), dapatkan satu.
local function checkScript(text, self, sc)
if not check_object("script", true, sc) or sc:getCode() == "None" then
return self:findBestScript(text)
end
return sc
end
local function normalize(text, sc)
text = sc:fixDiscouragedSequences(text)
return sc:toFixedNFD(text)
end
-- Subfungsi bagi iterateSectionSubstitutions(). Memproses bahagian teks individu mengikut spesifikasi dalam
-- `substitution_data`. Parameter input adalah seperti dalam dokumentasi iterateSectionSubstitutions() kecuali untuk
-- `recursed`, yang ditetapkan kepada true jika kita memanggil diri sendiri secara rekursif untuk memproses tetapan
-- khusus skrip atau sandaran seluruh skrip. Mengembalikan dua nilai: teks yang diproses dan data penggantian sebenar yang digunakan untuk melakukan penggantian (sama seperti nilai pulangan `actual_substitution_data` kepada iterateSectionSubstitutions()).
local function doSubstitutions(self, text, sc, substitution_data, data_field, function_name, recursed)
-- BERHATI-HATI dalam fungsi ini kerana nilai pada mana-mana peringkat boleh bernilai `false`, yang menyebabkan tiada pemprosesan dilakukan
-- dan menyekat sebarang pemprosesan sandaran selanjutnya.
local actual_substitution_data = substitution_data
-- Jika terdapat pengganti khusus bahasa yang diberikan dalam modul data, gunakannya.
if type(substitution_data) == "table" then
-- Jika skrip dinyatakan, jalankan fungsi ini dengan data khusus skrip sebelum meneruskan.
local sc_code = sc:getCode()
local has_substitution_data = false
if substitution_data[sc_code] ~= nil then
has_substitution_data = true
if substitution_data[sc_code] then
text, actual_substitution_data = doSubstitutions(self, text, sc, substitution_data[sc_code], data_field,
function_name, true)
end
-- Hant, Hans dan Hani biasanya dilayan sama, jadi tambah kes khas untuk mengelakkan daripada menyatakan setiap satu
-- secara berasingan.
elseif sc_code:match("^Han") and substitution_data.Hani ~= nil then
has_substitution_data = true
if substitution_data.Hani then
text, actual_substitution_data = doSubstitutions(self, text, sc, substitution_data.Hani, data_field,
function_name, true)
end
-- Data penggantian dengan kunci 1 dalam jadual luar boleh diberikan sebagai sandaran.
elseif substitution_data[1] ~= nil then
has_substitution_data = true
if substitution_data[1] then
text, actual_substitution_data = doSubstitutions(self, text, sc, substitution_data[1], data_field,
function_name, true)
end
end
-- Mengulangi semua rentetan dalam subjadual "from", dan lakukan gsub dengan rentetan sepadan dalam "to". Kita bekerja dengan
-- bentuk terurai NFD, kerana ini memudahkan banyak penggantian.
if substitution_data.from then
has_substitution_data = true
for i, from in ipairs(substitution_data.from) do
-- Menormalkan setiap gelung, untuk memastikan penggantian pelbagai peringkat berfungsi dengan betul.
text = sc:toFixedNFD(text)
text = ugsub(text, sc:toFixedNFD(from), substitution_data.to[i] or "")
end
end
if substitution_data.remove_diacritics then
has_substitution_data = true
text = sc:toFixedNFD(text)
-- Menukar pengecualian kepada PUA.
local remove_exceptions, substitutes = substitution_data.remove_exceptions
if remove_exceptions then
substitutes = {}
local i = 0
for _, exception in ipairs(remove_exceptions) do
exception = sc:toFixedNFD(exception)
text = ugsub(text, exception, function(m)
i = i + 1
local subst = u(0x80000 + i)
substitutes[subst] = m
return subst
end)
end
end
-- Menanggalkan tanda diakritik.
text = ugsub(text, "[" .. substitution_data.remove_diacritics .. "]", "")
-- Menukar pengecualian kembali.
if remove_exceptions then
text = text:gsub("\242[\128-\191]*", substitutes)
end
end
if not has_substitution_data and sc._data[data_field] then
-- Jika kunci isih khusus bahasa (dsb.) adalah nil, kembali kepada kunci isih seluruh skrip (dsb.).
text, actual_substitution_data = doSubstitutions(self, text, sc, sc._data[data_field], data_field,
function_name, true)
end
elseif type(substitution_data) == "string" then
-- Jika terdapat modul fungsi khusus, gunakannya.
local module = safe_require("Modul:" .. substitution_data)
if module then
-- TODO: fungsi translit sepatutnya menerima objek, bukan kod.
-- TODO: fungsi translit sepatutnya dipanggil dengan bentuk NFD.
if function_name == "tr" then
if not module[function_name] then
error(("Ralat dalaman: Modul [[%s]] tidak mempunyai fungsi bernama 'tr'"):format(substitution_data))
end
text = module[function_name](text, self._code, sc:getCode())
elseif function_name == "stripDiacritics" then
-- AMARAN: buang cabang ini selepas menamakan semula makeEntryName -> stripDiacritics.
if module[function_name] then
text = module[function_name](sc:toFixedNFD(text), self, sc)
elseif module.makeEntryName then
text = module.makeEntryName(sc:toFixedNFD(text), self, sc)
else
error(("Ralat dalaman: Modul [[%s]] tidak mempunyai fungsi bernama 'stripDiacritics' atau 'makeEntryName'"
):format(substitution_data))
end
else
if not module[function_name] then
error(("Ralat dalaman: Modul [[%s]] tidak mempunyai fungsi bernama '%s'"):format(
substitution_data, function_name))
end
text = module[function_name](sc:toFixedNFD(text), self, sc)
end
else
error("Data penggantian '" .. substitution_data .. "' tidak sepadan dengan modul sedia ada.")
end
elseif substitution_data == nil and sc._data[data_field] then
-- Jika kunci isih khusus bahasa (dsb.) adalah nil, kembali kepada kunci isih seluruh skrip (dsb.).
text, actual_substitution_data = doSubstitutions(self, text, sc, sc._data[data_field], data_field,
function_name, true)
end
-- Jangan normalkan kepada NFC jika ini ialah gelung dalaman atau jika modul mengembalikan nil.
if recursed or not text then
return text, actual_substitution_data
end
-- Memperbetul sebarang urutan yang tidak digalakkan yang terhasil semasa proses penggantian, dan normalkan ke dalam bentuk akhir.
return sc:toFixedNFC(sc:fixDiscouragedSequences(text)), actual_substitution_data
end
-- Memecahkan teks kepada beberapa bahagian berdasarkan kehadiran aksara pemformatan yang digantikan sementara, kemudian mengulangi
-- setiap bahagian untuk menerapkan penggantian (cth. transliterasi atau penanggalan tanda diakritik). Ini mengelakkan aksara PUA
-- daripada melalui modul khusus bahasa yang mungkin tidak dilengkapi untuk mengendalikannya. Fungsi ini menerima nilai-nilai berikut:
-- * `self` (objek Language);
-- * `text` (teks untuk diproses);
-- * `sc` (skrip teks, yang mesti dinyatakan; pemanggil perlu memanggil checkScript() mengikut keperluan untuk mengesan secara automatik
-- skrip teks jika tidak diberikan secara jelas oleh pengguna);
-- * `subbedChars` (tatasusunan yang sama panjang dengan teks, menunjukkan aksara mana yang telah digantikan dan dengan apa,
-- atau {nil} jika tiada penggantian dilakukan);
-- * `keepCarets` (DOKUMENKAN SAYA);
-- * `substitution_data` (data yang menunjukkan penggantian mana yang perlu diterapkan, diambil terus daripada `data_field` dalam
-- struktur data bahasa dalam submodul [[Module:languages/data]]);
-- * `data_field` (medan data tempat `substitution_data` diambil, seperti "sort_key" atau "strip_diacritics");
-- * `function_name` (nama fungsi yang perlu dipanggil untuk melakukan penggantian, sekiranya `substitution_data` menyatakan
-- modul untuk melakukan penggantian);
-- * `notrim` (jangan pangkas ruang putih pada tepi `text`; ditetapkan semasa mengira kunci isih, kerana ruang putih pada
-- permulaan kunci isih adalah bermakna dan menyebabkan halaman yang terhasil disusun di bahagian awal kategori yang disertainya).
-- Mengembalikan tiga nilai:
-- (1) teks yang diproses;
-- (2) nilai `subbedChars` yang dimasukkan, mungkin diubah suai dengan penggantian aksara tambahan; akan bernilai {nil}
-- jika {nil} dimasukkan;
-- (3) data penggantian sebenar yang digunakan untuk menerapkan penggantian pada `text`; ini mungkin berbeza daripada nilai
-- `substitution_data` yang dimasukkan jika nilai itu secara rekursif menyatakan penggantian khusus skrip atau jika tiada
-- data penggantian ditemui dalam data khusus bahasa (cth. {nil} dimasukkan atau struktur dimasukkan yang tidak mempunyai
-- tetapan untuk skrip yang diberikan dalam `sc`), tetapi nilai sandaran seluruh skrip ditetapkan; buat masa ini ia
-- hanya digunakan oleh makeSortKey().
local function iterateSectionSubstitutions(self, text, sc, subbedChars, keepCarets, substitution_data, data_field,
function_name, notrim)
local sections
-- Lihat [[Module:languages/data]].
if not find(text, "\244") or load_data(languages_data_module).substitution[self._code] == "cont" then
sections = {text}
else
sections = split(text, "\244[\128-\143][\128-\191]*", true)
end
local actual_substitution_data
for _, section in ipairs(sections) do
-- Abaikan rentetan kosong atau ruang putih (yang mungkin juga tidak dikendalikan dengan baik oleh modul khusus).
if gsub(section, "%s+", "") ~= "" then
local sub, this_actual_substitution_data = doSubstitutions(self, section, sc, substitution_data, data_field,
function_name)
actual_substitution_data = this_actual_substitution_data
-- Pusingan kedua penggantian sementara, sekiranya terdapat sebarang pemformatan yang ditambah oleh proses penggantian
-- utama. Walau bagaimanapun, jangan lakukan ini jika bahagian tersebut sudah mengandungi pemformatan (kerana ia sepatutnya
-- telah dilepaskan untuk sampai ke peringkat ini, dan oleh itu harus diberikan sebagai teks mentah).
if sub and subbedChars then
local noSub
for _, pattern in ipairs(require(languages_data_patterns_module)) do
if match(section, pattern .. "%z?") then
noSub = true
end
end
if not noSub then
sub, subbedChars = doTempSubstitutions(sub, subbedChars, keepCarets, true)
end
end
if not sub then
text = sub
break
end
text = sub and gsub(text, pattern_escape(section), replacement_escape(sub), 1) or text
end
end
if not notrim then
-- Pangkas, melainkan hanya terdapat aksara ruang, sambil mengabaikan sebarang aksara pemformatan akhir.
-- Jangan pangkas kunci isih kerana ruang pada permulaan adalah bermakna.
text = text and text:gsub("^([\128-\191\244]*)%s+(%S)", "%1%2"):gsub("(%S)%s+([\128-\191\244]*)$", "%1%2") or
nil
end
return text, subbedChars, actual_substitution_data
end
-- Memproses tanda sisip (caret) (dan sebarang pelepasan). Lalai kepada penyingkiran mudah, jika tiada corak/penggantian diberikan.
local function processCarets(text, pattern, repl)
local rep
repeat
text, rep = gsub(text, "\\\\(\\*^)", "\3%1")
until rep == 0
return (text:gsub("\\^", "\4")
:gsub(pattern or "%^", repl or "")
:gsub("\3", "\\")
:gsub("\4", "^"))
end
-- Mengalih keluar tanda sisip jika ia digunakan untuk menulis huruf besar pada bahagian transliterasi (melainkan ia telah dilepaskan).
local function removeCarets(text, sc)
if not sc:hasCapitalization() and sc:isTransliterated() and text:find("^", 1, true) then
return processCarets(text)
else
return text
end
end
local Language = {}
--[==[Mengembalikan kod bahasa bagi sesuatu bahasa. Contoh: {{code|lua|"fr"}} untuk bahasa Perancis.]==]
function Language:getCode()
return self._code
end
--[==[Mengembalikan nama kanonik bahasa. Ini ialah nama yang digunakan untuk mewakili bahasa tersebut di Wiktionary, dan dijamin unik untuk bahasa itu sahaja. Contoh: {{code|lua|"French"}} untuk bahasa Perancis.]==]
function Language:getCanonicalName()
local name = self._name
if name == nil then
name = self._data[1]
self._name = name
end
return name
end
--[==[
Mengembalikan bentuk paparan bagi bahasa. Bentuk paparan bahasa, keluarga atau skrip ialah bentuk yang diambil apabila
muncul sebagai <code><var>source</var></code> dalam kategori seperti <code>Istilah bahasa Inggeris yang diterbitkan daripada
<var>source</var></code> atau <code>Nama khas bahasa Inggeris daripada <var>source</var></code>, dan juga merupakan teks paparan
dalam pautan {makeCategoryLink()}. Bagi bahasa penuh dan bahasa khusus etimologi, bentuk ini adalah sama seperti nama kanonik, tetapi
bagi keluarga bahasa, ia ditulis sebagai <code>"bahasa-bahasa <var>nama</var>"</code> (cth. {"bahasa-bahasa Indo-Iran"}), dan bagi skrip,
ia ditulis sebagai <code>"skrip <var>nama</var>"</code> (cth. {"skrip Arab"}).
]==]
function Language:getDisplayForm()
local form = self._displayForm
if form == nil then
form = self:getCanonicalName()
-- Tambah kata sandang dan " substrat" pada substrat yang memerlukannya.
if self:getFamilyCode() == "qfa-sub" then
if not (sub(form, 1, 4) == "the " or sub(form, 1, 2) == "a ") then
form = "a " .. form
end
if not match(form, " [Ss]ubstrate") then
form = form .. " substrate"
end
end
self._displayForm = form
end
return form
end
--[==[Mengembalikan nilai yang sepatutnya digunakan dalam atribut lang= HTML untuk teks bertag dalam bahasa berkenaan.]==]
function Language:getHTMLAttribute(sc, region)
local code = self._code
if not find(code, "-", 1, true) then
return code .. "-" .. sc:getCode() .. (region and "-" .. region or "")
end
local parent = self:getParent()
region = region or match(code, "%f[%u][%u-]+%f[%U]")
if parent then
return parent:getHTMLAttribute(sc, region)
end
-- TODO: Kod keluarga ISO juga boleh digunakan.
return "mis-" .. sc:getCode() .. (region and "-" .. region or "")
end
--[==[Mengembalikan jadual alias yang diketahui untuk bahasa tersebut, tidak termasuk nama kanonik. Alias ialah sinonim bagi bahasa yang dipersoalkan. Nama tidak dijamin unik, di mana kadangkala lebih daripada satu bahasa dikenali dengan nama yang sama. Contoh: {{code|lua|{"High German", "New High German", "Deutsch"} }} untuk [[:Kategori:Bahasa Jerman|Bahasa Jerman]].]==]
function Language:getAliases()
self:loadInExtraData()
return require(language_like_module).getAliases(self)
end
--[==[
Mengembalikan jadual subvariasi yang diketahui bagi sesuatu bahasa, tidak termasuk subvariasi yang telah diberikan
kod bahasa khusus etimologi yang jelas. Nama tidak dijamin unik, di mana kadangkala nama tertentu merujuk kepada
subvariasi lebih daripada satu bahasa. Contoh: {{code|lua|{"Aymara Selatan", "Aymara Tengah"} }} untuk
[[:Kategori:Bahasa Aymara|Bahasa Aymara]]. Ambil perhatian bahawa nilai yang dikembalikan boleh mengandungi jadual bersarang,
apabila subvariasi dikenali dengan lebih daripada satu nama. Contoh: {{code|lua|{"Azerbaijan Utara", "Azerbaijan Selatan",
{"Afshar", "Afshari", "Azerbaijan Afshar", "Afchar"}, {"Qashqa'i", "Qashqai", "Kashkay"}, "Sonqor"} }} untuk
[[:Kategori:Bahasa Azerbaijan|Bahasa Azerbaijan]]. Di sini, contohnya, Afshar, Afshari, Azerbaijan Afshar dan Afchar
kesemuanya merujuk kepada subvariasi yang sama, dengan nama pilihan ialah Afshar (yang disenaraikan pertama). Untuk mengelakkan
nilai pulangan yang mengandungi jadual bersarang, nyatakan nilai bukan {{code|lua|nil}} untuk parameter <code>flatten</code>;
dalam kes tersebut, nilai yang dikembalikan adalah {{code|lua|{"Azerbaijan Utara", "Azerbaijan Selatan", "Afshar", "Afshari",
"Azerbaijan Afshar", "Afchar", "Qashqa'i", "Qashqai", "Kashkay", "Sonqor"} }}.
]==]
function Language:getVarieties(flatten)
self:loadInExtraData()
return require(language_like_module).getVarieties(self, flatten)
end
--[==[Mengembalikan jadual "nama lain" yang diketahui bagi bahasa tersebut, yang disenaraikan dalam medan <code>otherNames</code>. Perlu dinyatakan bahawa medan <code>otherNames</code> itu sendiri telah lapuk, dan entri yang disenaraikan di situ akhirnya perlu dipindahkan ke sama ada <code>aliases</code> atau <code>varieties</code>.]==]
function Language:getOtherNames() -- Akan dialih keluar akhirnya, setelah tiada lagi penggunaan medan `otherNames`.
self:loadInExtraData()
return require(language_like_module).getOtherNames(self)
end
--[==[
Mengembalikan gabungan jadual bagi nama kanonik, alias, variasi dan nama lain bagi bahasa yang diberikan.]==]
function Language:getAllNames()
self:loadInExtraData()
return require(language_like_module).getAllNames(self)
end
--[==[Mengembalikan jadual jenis sebagai jadual carian (dengan jenis sebagai kunci).
Jenis-jenis yang mungkin ialah:
* {language}: Ini ialah bahasa, sama ada penuh atau khusus etimologi.
* {full}: Ini ialah bahasa "penuh" (bukan khusus etimologi), iaitu gabungan {regular}, {reconstructed} dan
{appendix-constructed}. Ambil perhatian bahawa jenis {full} dan {etymology-only} juga wujud untuk keluarga bahasa,
jadi jika anda ingin menyemak secara khusus bagi bahasa penuh dan anda mempunyai objek yang mungkin merupakan keluarga,
anda harus menggunakan {{lua|hasType("language", "full")}} dan bukan sekadar {{lua|hasType("full")}}.
* {etymology-only}: Ini ialah bahasa khusus etimologi (bukan penuh), yang induknya merupakan bahasa khusus etimologi lain
atau bahasa penuh. Ambil perhatian bahawa jenis {full} dan {etymology-only} juga wujud untuk keluarga bahasa,
jadi jika anda ingin menyemak secara khusus bagi bahasa khusus etimologi dan anda mempunyai objek yang mungkin
merupakan keluarga, anda harus menggunakan {{lua|hasType("language", "etymology-only")}} dan bukan sekadar
{{lua|hasType("etymology-only")}}.
* {regular}: Ini menunjukkan bahasa penuh yang diperakui mengikut [[WT:CFI]] dan oleh itu dibenarkan dalam ruang nama
utama. Mungkin terdapat juga istilah yang direkonstruksi untuk bahasa tersebut, yang diletakkan dalam ruang nama
{Rekonstruksi} dan mesti diawali dengan tanda * untuk menunjukkan rekonstruksi. Kebanyakan bahasa penuh ialah
bahasa semula jadi (bukan bahasa buatan), namun beberapa bahasa buatan (cth. Esperanto dan Volapük, antara lain)
juga dibenarkan dalam ruang nama utama dan dianggap sebagai bahasa biasa.
* {reconstructed}: Bahasa ini tidak diperakui mengikut [[WT:CFI]], dan oleh itu hanya dibenarkan dalam ruang nama
{Rekonstruksi}. Semua istilah dalam bahasa ini adalah yang direkonstruksi, dan mesti diawali dengan
tanda *. Bahasa seperti Proto-Indo-Eropah dan Proto-Jermanik berada dalam kategori ini.
* {appendix-constructed}: Bahasa ini diperakui tetapi tidak memenuhi syarat tambahan yang ditetapkan untuk bahasa
buatan ([[WT:CFI#Constructed languages]]). Entrinya mestilah berada dalam ruang nama Lampiran,
tetapi ia tidak direkonstruksi dan oleh itu tidak sepatutnya diawali dengan tanda * dalam pautan.
]==]
function Language:getTypes()
local types = self._types
if types == nil then
types = {language = true}
if self:getFullCode() == self._code then
types.full = true
else
types["etymology-only"] = true
end
for t in gmatch(self._data.type, "[^,]+") do
types[t] = true
end
self._types = types
end
return types
end
--[==[Diberikan senarai jenis sebagai rentetan, mengembalikan nilai true jika bahasa tersebut memiliki kesemuanya.]==]
function Language:hasType(...)
Language.hasType = require(language_like_module).hasType
return self:hasType(...)
end
--[==[Mengembalikan jadual yang mengandungi objek <code>WikimediaLanguage</code> (lihat [[Module:wikimedia languages]]), yang mewakili bahasa dan kodnya seperti yang digunakan dalam projek Wikimedia untuk pautan antara wiki dan sebagainya. Lebih daripada satu objek boleh dikembalikan, kerana satu bahasa Wiktionary boleh sepadan dengan beberapa bahasa Wikimedia. Contohnya, kod tunggal Wiktionary <code>sh</code> (Serbo-Croatia) dipetakan kepada empat kod Wikimedia: <code>sh</code> (Serbo-Croatia), <code>bs</code> (Bosnia), <code>hr</code> (Croatia) dan <code>sr</code> (Serbia).
Kod untuk bahasa Wikimedia diambil daripada sifat <code>wikimedia_codes</code> dalam modul data. Jika sifat tersebut tiada, kod bahasa semasa akan digunakan. Jika tiada kod yang tersedia merupakan kod Wikimedia yang sah, jadual kosong akan dikembalikan.]==]
function Language:getWikimediaLanguages()
local wm_langs = self._wikimediaLanguageObjects
if wm_langs == nil then
local codes = self:getWikimediaLanguageCodes()
wm_langs = {}
for i = 1, #codes do
wm_langs[i] = get_wikimedia_lang(codes[i])
end
self._wikimediaLanguageObjects = wm_langs
end
return wm_langs
end
function Language:getWikimediaLanguageCodes()
local wm_langs = self._wikimediaLanguageCodes
if wm_langs == nil then
wm_langs = self._data.wikimedia_codes
if wm_langs then
wm_langs = split(wm_langs, ",", true, true)
else
local code = self._code
if is_known_language_tag(code) then
wm_langs = {code}
else
-- Mewarisi, tetapi hanya jika tiada kod dinyatakan dalam data *dan*
-- kod bahasa tersebut bukan kod bahasa Wikimedia yang sah.
local parent = self:getParent()
wm_langs = parent and parent:getWikimediaLanguageCodes() or {}
end
end
self._wikimediaLanguageCodes = wm_langs
end
return wm_langs
end
--[==[
Mengembalikan nama rencana Wikipedia bagi bahasa tersebut. `project` menyatakan bahasa dan projek untuk mendapatkan rencana,
lalai kepada {"enwiki"} untuk Wikipedia Bahasa Inggeris. Biasanya jika dinyatakan ia sepatutnya menjadi kod projek bagi
Wikipedia bahasa tertentu cth. "mswiki" untuk Wikipedia Bahasa Melayu atau "zhwiki" untuk Wikipedia Bahasa Cina, tetapi ia
boleh menjadi mana-mana projek, termasuk yang bukan Wikipedia. Jika projek itu ialah Wikipedia Bahasa Inggeris dan sifat
{wikipedia_article} hadir dalam modul data, ia akan digunakan terlebih dahulu. Dalam semua kes lain, pautan laman (sitelink)
akan dijana daripada {:getWikidataItem} (jika ditetapkan). Nilai terhasil (atau ketiadaan nilai) dicache supaya panggilan
seterusnya lebih pantas. Jika tiada nilai dapat ditentukan, dan `noCategoryFallback` ialah {false}, {:getCategoryName} digunakan
sebagai sandaran; jika tidak, {nil} dikembalikan. Ambil perhatian bahawa jika `noCategoryFallback` bernilai {nil} atau diabaikan,
ia lalai kepada {false} jika projek ialah Wikipedia Bahasa Inggeris, selainnya kepada {true}. Dalam erti kata lain, dalam keadaan
biasa, jika rencana Wikipedia Bahasa Inggeris tidak dapat diperoleh, nilai pulangan akan kembali kepada pautan kategori bahasa,
tetapi ini biasanya tidak akan berlaku untuk mana-mana projek lain.
]==]
function Language:getWikipediaArticle(noCategoryFallback, project)
Language.getWikipediaArticle = require(language_like_module).getWikipediaArticle
return self:getWikipediaArticle(noCategoryFallback, project)
end
function Language:makeWikipediaLink()
return make_link(self, "w:" .. self:getWikipediaArticle(), self:getCanonicalName())
end
--[==[Mengembalikan nama halaman kategori Wikimedia Commons bagi bahasa tersebut.]==]
function Language:getCommonsCategory()
Language.getCommonsCategory = require(language_like_module).getCommonsCategory
return self:getCommonsCategory()
end
--[==[Mengembalikan id item Wikidata untuk bahasa atau <code>nil</code>. Ini sepadan dengan medan kedua dalam modul data.]==]
function Language:getWikidataItem()
Language.getWikidataItem = require(language_like_module).getWikidataItem
return self:getWikidataItem()
end
--[==[Mengembalikan jadual objek <code>Script</code> untuk semua skrip yang digunakan untuk menulis bahasa tersebut. Lihat [[Module:scripts]].]==]
function Language:getScripts()
local scripts = self._scriptObjects
if scripts == nil then
local codes = self:getScriptCodes()
if codes[1] == "All" then
scripts = load_data(scripts_data_module)
else
scripts = {}
for i = 1, #codes do
scripts[i] = get_script(codes[i])
end
end
self._scriptObjects = scripts
end
return scripts
end
--[==[Mengembalikan jadual kod skrip dalam fail data bahasa.]==]
function Language:getScriptCodes()
local scripts = self._scriptCodes
if scripts == nil then
scripts = self._data[4]
if scripts then
local codes, n = {}, 0
for code in gmatch(scripts, "[^,]+") do
n = n + 1
-- Pengendalian khas untuk "Hants", yang mewakili "Hani", "Hant" dan "Hans" secara kolektif.
if code == "Hants" then
codes[n] = "Hani"
codes[n + 1] = "Hant"
codes[n + 2] = "Hans"
n = n + 2
else
codes[n] = code
end
end
scripts = codes
else
scripts = {"None"}
end
self._scriptCodes = scripts
end
return scripts
end
--[==[Diberikan sesuatu teks, fungsi ini mengulangi skrip-skrip bagi bahasa yang ditentukan dan cuba mencari skrip yang paling sepadan dengan teks tersebut. Ia mengembalikan objek {{code|lua|Script}} yang mewakili skrip berkenaan. Jika tiada padanan ditemui langsung, ia mengembalikan objek skrip {{code|lua|None}}.]==]
function Language:findBestScript(text, forceDetect)
if not text or text == "" or text == "-" then
return get_script("None")
end
-- Berbeza daripada jadual yang dikembalikan oleh getScriptCodes, kerana Hants tidak dinormalkan kepada juzuk-juzuknya.
local codes = self._bestScriptCodes
if codes == nil then
codes = self._data[4]
codes = codes and split(codes, ",", true, true) or {"None"}
self._bestScriptCodes = codes
end
local first_sc = codes[1]
if first_sc == "All" then
return find_best_script_without_lang(text)
end
local codes_len = #codes
if not (forceDetect or first_sc == "Hants" or codes_len > 1) then
first_sc = get_script(first_sc)
local charset = first_sc.characters
return charset and umatch(text, "[" .. charset .. "]") and first_sc or get_script("None")
end
-- Mengalih keluar semua aksara pemformatan.
text = get_plaintext(text)
-- Mengalih keluar semua ruang dan sebarang tanda baca ASCII. Sesetengah tanda baca bukan ASCII adalah khusus skrip, jadi tidak boleh dialih keluar.
text = ugsub(text, "[%s!\"#%%&'()*,%-./:;?@[\\%]_{}]+", "")
if #text == 0 then
return get_script("None")
end
-- Cuba memadankan setiap skrip dengan teks,
-- dan kembalikan skrip yang mempunyai aksara sepadan paling banyak.
local bestcount, bestscript, length = 0
for i = 1, codes_len do
local sc = codes[i]
-- Kes khas untuk "Hants", iaitu kod khas yang mewakili mana-mana antara "Hant" atau "Hans" yang paling sepadan, atau "Hani" jika ia sepadan sama rata. Ini mengelakkan keperluan untuk menyenaraikan ketiga-tiganya. Selain itu, "Hants" akan dilayan sebagai padanan terbaik jika terdapat sekurang-kurangnya satu aksara yang sepadan, di bawah andaian bahawa skrip Han dikehendaki bagi istilah yang mengandungi campuran skrip Han dan skrip lain (tidak termasuk yang menggunakan Jpan atau Kore).
if sc == "Hants" then
local Hani = get_script("Hani")
if not Hant_chars then
Hant_chars = load_data("Modul:zh/data/ts")
Hans_chars = load_data("Modul:zh/data/st")
end
local t, s, found = 0, 0
-- Ini lebih pantas berbanding menggunakan mw.ustring.gmatch secara terus.
for ch in gmatch((ugsub(text, "[" .. Hani.characters .. "]", "\255%0")), "\255(.[\128-\191]*)") do
found = true
if Hant_chars[ch] then
t = t + 1
if Hans_chars[ch] then
s = s + 1
end
elseif Hans_chars[ch] then
s = s + 1
else
t, s = t + 1, s + 1
end
end
if found then
if t == s then
return Hani
end
return get_script(t > s and "Hant" or "Hans")
end
else
sc = get_script(sc)
if not length then
length = ulen(text)
end
-- Mengira aksara dengan menyingkirkan semua yang ada dalam set aksara skrip dan membandingkannya dengan panjang asal.
local charset = sc.characters
local count = charset and length - ulen((ugsub(text, "[" .. charset .. "]+", ""))) or 0
if count >= length then
return sc
elseif count > bestcount then
bestcount = count
bestscript = sc
end
end
end
-- Kembalikan skrip padanan terbaik, atau sebaliknya None.
return bestscript or get_script("None")
end
--[==[Mengembalikan objek <code>Family</code> bagi keluarga bahasa tempat tergolongnya bahasa ini. Lihat [[Module:families]].]==]
function Language:getFamily()
local family = self._familyObject
if family == nil then
family = self:getFamilyCode()
-- Jika nilainya nil, ia dicache sebagai false.
family = family and get_family(family) or false
self._familyObject = family
end
return family or nil
end
--[==[Mengembalikan kod keluarga dalam fail data bahasa.]==]
function Language:getFamilyCode()
local family = self._familyCode
if family == nil then
-- Jika nilainya nil, ia dicache sebagai false.
family = self._data[3] or false
self._familyCode = family
end
return family or nil
end
function Language:getFamilyName()
local family = self._familyName
if family == nil then
family = self:getFamily()
-- Jika nilainya nil, ia dicache sebagai false.
family = family and family:getCanonicalName() or false
self._familyName = family
end
return family or nil
end
do
local function check_family(self, family)
if type(family) == "table" then
family = family:getCode()
end
if self:getFamilyCode() == family then
return true
end
local self_family = self:getFamily()
if self_family:inFamily(family) then
return true
-- Jika keluarga tersebut bukan keluarga sebenar (cth. kreol), semak sebarang leluhur.
elseif self_family:inFamily("qfa-not") then
local ancestors = self:getAncestors()
for _, ancestor in ipairs(ancestors) do
if ancestor:inFamily(family) then
return true
end
end
end
end
--[==[Menyemak sama ada bahasa tergolong dalam `family` (yang boleh berupa kod keluarga atau objek). Senarai objek boleh diberikan sebagai ganti `family`; dalam kes tersebut, kembalikan true jika bahasa tergolong dalam mana-mana keluarga yang dinyatakan. Perhatikan bahawa sesetengah bahasa (khususnya, kreol tertentu) boleh mempunyai beberapa leluhur langsung yang berpotensi tergolong dalam keluarga berbeza; dalam kes tersebut, kembalikan true jika bahasa tergolong dalam mana-mana keluarga yang dinyatakan.]==]
function Language:inFamily(...)
if self:getFamilyCode() == nil then
return false
end
return check_inputs(self, check_family, false, ...)
end
end
function Language:getParent()
local parent = self._parentObject
if parent == nil then
parent = self:getParentCode()
-- Jika nilainya nil, ia dicache sebagai false.
parent = parent and get_by_code(parent, nil, true, true) or false
self._parentObject = parent
end
return parent or nil
end
function Language:getParentCode()
local parent = self._parentCode
if parent == nil then
-- Jika nilainya nil, ia dicache sebagai false.
parent = self._data.parent or false
self._parentCode = parent
end
return parent or nil
end
function Language:getParentName()
local parent = self._parentName
if parent == nil then
parent = self:getParent()
-- Jika nilainya nil, ia dicache sebagai false.
parent = parent and parent:getCanonicalName() or false
self._parentName = parent
end
return parent or nil
end
function Language:getParentChain()
local chain = self._parentChain
if chain == nil then
chain = {}
local parent, n = self:getParent(), 0
while parent do
n = n + 1
chain[n] = parent
parent = parent:getParent()
end
self._parentChain = chain
end
return chain
end
do
local function check_lang(self, lang)
for _, parent in ipairs(self:getParentChain()) do
if (type(lang) == "string" and lang or lang:getCode()) == parent:getCode() then
return true
end
end
end
function Language:hasParent(...)
return check_inputs(self, check_lang, false, ...)
end
end
--[==[
Jika bahasa tersebut merupakan bahasa khusus etimologi, fungsi ini mengulangi rantaian induk sehingga bahasa penuh atau keluarga ditemui, dan objek yang sepadan dikembalikan. Jika bahasa tersebut merupakan bahasa penuh, ia hanya mengembalikan dirinya sendiri.
]==]
function Language:getFull()
local full = self._fullObject
if full == nil then
full = self:getFullCode()
full = full == self._code and self or get_by_code(full)
self._fullObject = full
end
return full
end
--[==[
Jika bahasa tersebut merupakan bahasa khusus etimologi, fungsi ini mengulangi rantaian induk sehingga bahasa penuh atau keluarga ditemui, dan kod yang sepadan dikembalikan. Jika bahasa tersebut merupakan bahasa penuh, ia hanya mengembalikan kod bahasa tersebut.
]==]
function Language:getFullCode()
return self._fullCode or self._code
end
--[==[
Jika bahasa tersebut merupakan bahasa khusus etimologi, fungsi ini mengulangi rantaian induk sehingga bahasa penuh atau keluarga ditemui, dan nama kanonik yang sepadan dikembalikan. Jika bahasa tersebut merupakan bahasa penuh, ia hanya mengembalikan nama kanonik bahasa tersebut.
]==]
function Language:getFullName()
local full = self._fullName
if full == nil then
full = self:getFull():getCanonicalName()
self._fullName = full
end
return full
end
--[==[Mengembalikan jadual objek <code class="nf">Language</code> bagi semua bahasa yang diturunkan secara langsung daripada bahasa ini. Umumnya ini hanya melibatkan bahasa tunggal, tetapi kreol, pidgin dan bahasa campuran boleh mempunyai banyak leluhur.]==]
function Language:getAncestors()
local ancestors = self._ancestorObjects
if ancestors == nil then
ancestors = {}
local ancestor_codes = self:getAncestorCodes()
if #ancestor_codes > 0 then
for _, ancestor in ipairs(ancestor_codes) do
insert(ancestors, get_by_code(ancestor, nil, true))
end
else
local fam = self:getFamily()
local protoLang = fam and fam:getProtoLanguage() or nil
-- Bagi kes di mana bahasa semasa ialah bahasa proto bagi
-- keluarganya, atau bahasa khusus etimologi yang merupakan leluhur kepada bahasa
-- proto tersebut, kita perlu melangkah setingkat lebih tinggi sejak
-- permulaan lagi.
if protoLang and (
protoLang:getCode() == self._code or
(self:hasType("etymology-only") and protoLang:hasAncestor(self))
) then
fam = fam:getFamily()
protoLang = fam and fam:getProtoLanguage() or nil
end
while not protoLang and not (not fam or fam:getCode() == "qfa-not") do
fam = fam:getFamily()
protoLang = fam and fam:getProtoLanguage() or nil
end
insert(ancestors, protoLang)
end
self._ancestorObjects = ancestors
end
return ancestors
end
do
-- Elakkan bahasa menjadi leluhur kepada dirinya sendiri melalui pewarisan kelas. Kita hanya perlu menyemak ini jika bahasa mewarisi jadual leluhur daripada induknya, kerana kita tidak mahu menggugurkan leluhur yang telah ditetapkan secara jelas dalam data.
-- Ulangi proses secara rekursif merentasi leluhur sehingga sama ada menemui diri sendiri atau kehabisan rekod. Jika diri sendiri ditemui, kembalikan true.
local function check_ancestor(self, lang)
local codes = lang:getAncestorCodes()
if not codes then
return nil
end
for i = 1, #codes do
local code = codes[i]
if code == self._code then
return true
end
local anc = get_by_code(code, nil, true)
if check_ancestor(self, anc) then
return true
end
end
end
--[==[Mengembalikan jadual kod <code class="nf">Language</code> bagi semua bahasa yang diturunkan secara langsung daripada bahasa ini. Umumnya ini hanya melibatkan bahasa tunggal, tetapi kreol, pidgin dan bahasa campuran boleh mempunyai banyak leluhur.]==]
function Language:getAncestorCodes()
if self._ancestorCodes then
return self._ancestorCodes
end
local data = self._data
local codes = data.ancestors
if codes == nil then
codes = {}
self._ancestorCodes = codes
return codes
end
codes = split(codes, ",", true, true)
self._ancestorCodes = codes
-- Jika tiada kod atau leluhur tersebut bukan data yang diwarisi, tiada apa lagi untuk disemak.
if #codes == 0 or self:getData(false, "raw").ancestors ~= nil then
return codes
end
local i, code = 1
while i <= #codes do
code = codes[i]
if check_ancestor(self, self) then
remove(codes, i)
else
i = i + 1
end
end
return codes
end
end
--[==[Diberikan senarai objek atau kod bahasa, mengembalikan true jika sekurang-kurangnya satu daripadanya ialah leluhur. Ini merangkumi sebarang anak khusus etimologi bagi leluhur tersebut. Jika leluhur bahasa tersebut ialah bahasa khusus etimologi, ia juga akan mengembalikan true bagi induk bahasa berkenaan (cth. jika Latin Vulgar ialah leluhur, ia juga akan mengembalikan true bagi induknya, Latin). Walau bagaimanapun, induk dikecualikan daripada ini jika leluhur tersebut juga merupakan leluhur kepada induk berkenaan (cth. jika Parsi Klasik ialah leluhur, Parsi akan mengembalikan false, kerana Parsi Klasik juga merupakan leluhur kepada Parsi).]==]
function Language:hasAncestor(...)
local function iterateOverAncestorTree(node, func, parent_check)
local ancestors = node:getAncestors()
local ancestorsParents = {}
for _, ancestor in ipairs(ancestors) do
-- Semasa menyemak induk bahasa lain, dan leluhur juga merupakan induk, langkau ke leluhur seterusnya, supaya kita mengecualikan sebarang anak khusus etimologi bagi induk tersebut yang tidak berkaitan secara langsung (lihat di bawah).
local ret = (parent_check or not node:hasParent(ancestor)) and
func(ancestor) or iterateOverAncestorTree(ancestor, func, parent_check)
if ret then
return ret
end
end
-- Semak induk bagi mana-mana leluhur. Kita tidak melakukan ini jika menyemak induk bahasa lain, supaya kita mengecualikan sebarang anak khusus etimologi bagi induk tersebut yang tidak berkaitan secara langsung (cth. jika leluhur ialah Latin Vulgar dan kita menyemak Latin Baharu, kita mahu ia mengembalikan false kerana kedua-duanya berada pada cabang leluhur berbeza. Oleh itu, jika kita sudah menyemak induk Latin Baharu (Latin) kita tidak mahu membandingkannya dengan induk leluhur (Latin), kerana ini menghasilkan positif palsu; ia sepatutnya salah satu daripadanya).
if not parent_check then
return nil
end
for _, ancestor in ipairs(ancestors) do
local ancestorParents = ancestor:getParentChain()
for _, ancestorParent in ipairs(ancestorParents) do
if ancestorParent:getCode() == self._code or ancestorParent:hasAncestor(ancestor) then
break
else
insert(ancestorsParents, ancestorParent)
end
end
end
for _, ancestorParent in ipairs(ancestorsParents) do
local ret = func(ancestorParent)
if ret then
return ret
end
end
end
local function do_iteration(otherlang, parent_check)
-- otherlang tidak boleh merujuk kepada diri sendiri
if (type(otherlang) == "string" and otherlang or otherlang:getCode()) == self._code then
return false
end
repeat
if iterateOverAncestorTree(
self,
function(ancestor)
return ancestor:getCode() == (type(otherlang) == "string" and otherlang or otherlang:getCode())
end,
parent_check
) then
return true
elseif type(otherlang) == "string" then
otherlang = get_by_code(otherlang, nil, true)
end
otherlang = otherlang:getParent()
parent_check = false
until not otherlang
end
local parent_check = true
for _, otherlang in ipairs{...} do
local ret = do_iteration(otherlang, parent_check)
if ret then
return true
end
end
return false
end
do
local function construct_node(lang, memo)
local branch, ancestors = {lang = lang:getCode()}
memo[lang:getCode()] = branch
for _, ancestor in ipairs(lang:getAncestors()) do
if ancestors == nil then
ancestors = {}
end
insert(ancestors, memo[ancestor:getCode()] or construct_node(ancestor, memo))
end
branch.ancestors = ancestors
return branch
end
function Language:getAncestorChain()
local chain = self._ancestorChain
if chain == nil then
chain = construct_node(self, {})
self._ancestorChain = chain
end
return chain
end
end
function Language:getAncestorChainOld()
local chain = self._ancestorChain
if chain == nil then
chain = {}
local step = self
while true do
local ancestors = step:getAncestors()
step = #ancestors == 1 and ancestors[1] or nil
if not step then
break
end
insert(chain, step)
end
self._ancestorChain = chain
end
return chain
end
local function fetch_descendants(self, fmt)
local descendants, family = {}, self:getFamily()
-- Ulangi ke atas ketiga-tiga set data.
for _, data in ipairs{
require("Modul:languages/code to canonical name"),
require("Modul:etymology languages/code to canonical name"),
require("Modul:families/code to canonical name"),
} do
for code in pairs(data) do
local lang = get_by_code(code, nil, true, true)
if not lang then
error(("Ralat dalaman: kod '%s' tidak dapat diambil"):format(code))
end
-- Uji untuk keturunan. Ujian awal menyingkirkan kebanyakan calon, manakala ujian yang lebih intensif hanya digunakan secara berhemat.
if (
code ~= self._code and -- Bukan diri sendiri.
lang:inFamily(family) and -- Dalam keluarga yang sama.
(
family:getProtoLanguageCode() == self._code or -- Diri sendiri ialah bahasa proto.
self:hasDescendant(lang) or -- Semakan penuh hasDescendant.
(lang:getFullCode() == self._code and not self:hasAncestor(lang)) -- Anak khusus etimologi yang bukan leluhur.
)
) then
if fmt == "object" then
insert(descendants, lang)
elseif fmt == "code" then
insert(descendants, code)
elseif fmt == "name" then
insert(descendants, lang:getCanonicalName())
end
end
end
end
return descendants
end
function Language:getDescendants()
local descendants = self._descendantObjects
if descendants == nil then
descendants = fetch_descendants(self, "object")
self._descendantObjects = descendants
end
return descendants
end
function Language:getDescendantCodes()
local descendants = self._descendantCodes
if descendants == nil then
descendants = fetch_descendants(self, "code")
self._descendantCodes = descendants
end
return descendants
end
function Language:getDescendantNames()
local descendants = self._descendantNames
if descendants == nil then
descendants = fetch_descendants(self, "name")
self._descendantNames = descendants
end
return descendants
end
do
local function check_lang(self, lang)
if type(lang) == "string" then
lang = get_by_code(lang, nil, true)
end
if lang:hasAncestor(self) then
return true
end
end
function Language:hasDescendant(...)
return check_inputs(self, check_lang, false, ...)
end
end
local function fetch_children(self, fmt)
local m_etym_data = require(etymology_languages_data_module)
local self_code, children = self._code, {}
for code, lang in pairs(m_etym_data) do
local _lang = lang
repeat
local parent = _lang.parent
if parent == self_code then
if fmt == "object" then
insert(children, get_by_code(code, nil, true))
elseif fmt == "code" then
insert(children, code)
elseif fmt == "name" then
insert(children, lang[1])
end
break
end
_lang = m_etym_data[parent]
until not _lang
end
return children
end
function Language:getChildren()
local children = self._childObjects
if children == nil then
children = fetch_children(self, "object")
self._childObjects = children
end
return children
end
function Language:getChildrenCodes()
local children = self._childCodes
if children == nil then
children = fetch_children(self, "code")
self._childCodes = children
end
return children
end
function Language:getChildrenNames()
local children = self._childNames
if children == nil then
children = fetch_children(self, "name")
self._childNames = children
end
return children
end
function Language:hasChild(...)
local lang = ...
if not lang then
return false
elseif type(lang) == "string" then
lang = get_by_code(lang, nil, true)
end
if lang:hasParent(self) then
return true
end
return self:hasChild(select(2, ...))
end
--[==[Mengembalikan nama kategori utama bagi bahasa tersebut. Contoh: {{code|lua|"French language"}} bagi bahasa Perancis, yang kategorinya berada di [[:Kategori:Bahasa Perancis]]. Melainkan argumen pilihan <code>nocap</code> diberikan, nama bahasa pada permulaan nilai yang dikembalikan akan diawali dengan huruf besar. Huruf besar ini betul untuk nama kategori, tetapi bukan jika nama bahasa menggunakan huruf kecil dan nilai yang dikembalikan oleh fungsi ini digunakan di tengah-tengah ayat.]==]
function Language:getCategoryName(nocap)
local name = self._categoryName
if name == nil then
name = self:getCanonicalName()
-- Jika substrat, gugurkan sebarang kata sandang di hadapan.
if self:getFamilyCode() == "qfa-sub" then
name = name:gsub("^sebuah ", ""):gsub("^suatu ", "")
end
-- Hanya tambah " language" jika ia bahasa penuh.
if self:hasType("full") then
-- Melainkan nama kanonik sudah berakhir dengan "language", "lect" atau terbitannya, tambah " language".
if not (match(name, "^[Bb]ahasa") or match(name, "^[Ll]ek")) then
name = "Bahasa " .. name
end
end
self._categoryName = name
end
if nocap then
return name
end
return mw.getContentLanguage():ucfirst(name)
end
--[==[Mencipta pautan ke kategori; teks pautan ialah nama kanonik.]==]
function Language:makeCategoryLink()
return make_link(self, ":Kategori:" .. self:getCategoryName(), self:getDisplayForm())
end
function Language:getStandardCharacters(sc)
local standard_chars = self._data.standard_chars
if type(standard_chars) ~= "table" then
return standard_chars
elseif sc and type(sc) ~= "string" then
check_object("script", nil, sc)
sc = sc:getCode()
end
if (not sc) or sc == "None" then
local scripts = {}
for _, script in pairs(standard_chars) do
insert(scripts, script)
end
return concat(scripts)
end
if standard_chars[sc] then
return standard_chars[sc] .. (standard_chars[1] or "")
end
end
--[==[
Menanggalkan tanda diakritik daripada teks paparan `text` (mengikut kaedah khusus bahasa), yang berada dalam skrip `sc`. Jika `sc` diabaikan atau bernilai {nil}, skrip dikesan secara automatik. Ini juga menanggalkan aksara tanda baca tertentu dari penghujung dan (dalam kes tanda soal dan seru terbalik bahasa Sepanyol) dari permulaan; menanggalkan sebarang ruang putih pada penghujung teks atau di antara teks dan tanda baca jalur akhir; serta menerapkan beberapa penormalan Unicode khusus bahasa untuk menggantikan aksara yang tidak digalakkan dengan alternatif yang ditetapkan. Mengembalikan teks yang telah ditanggalkan tanda diakritiknya.
]==]
function Language:stripDiacritics(text, sc)
if (not text) or text == "" then
return text
end
sc = checkScript(text, self, sc)
text = normalize(text, sc)
-- AMARAN: namakan semula makeEntryName kepada stripDiacritics dan buang nilai pulangan kedua dan ketiga
-- di semua tempat
text, _, _ = iterateSectionSubstitutions(self, text, sc, nil, nil,
self._data.strip_diacritics or self._data.entry_name, "strip_diacritics", "stripDiacritics")
text = umatch(text, "^[¿¡]?(.-[^%s%p].-)%s*[؟?!;՛՜ ՞ ՟?!︖︕।॥။၊་།]?$") or text
return text
end
--[==[
Menukar nama halaman ''logik'' (nama halaman sebagaimana ia dipaparkan kepada pengguna, selepas tanda diakritik dan tanda baca ditanggalkan) kepada nama halaman ''fizikal'' (nama halaman sebagaimana ia disimpan dalam pangkalan data MediaWiki). Sebab-sebab perbezaan antara kedua-duanya ialah (a) tajuk yang tidak disokong seperti `[ ]` (dengan kurungan siku di dalamnya), `#` (tanda pagar) dan `¯\_(ツ)_/¯` (dengan garis bawah), serta tajuk yang terlalu panjang dari pelbagai jenis; (b) halaman "gergasi" yang dipecahkan kepada beberapa bahagian (cth. `a`, yang dipecahkan kepada nama halaman fizikal `a/languages A to L` dan `a/languages M to Z`). Bagi hampir semua tujuan, anda harus bekerja dengan nama halaman logik dan bukan nama halaman fizikal. Namun terdapat kes penggunaan tertentu yang memerlukan nama halaman fizikal, seperti menyemak kewujudan halaman atau mendapatkan kandungan halaman.
`pagename` ialah nama halaman logik yang akan ditukar. `is_reconstructed_or_appendix` menunjukkan sama ada halaman berada dalam ruang nama `Reconstruction` atau `Appendix`. Jika ia diabaikan atau bernilai {nil}, nama halaman disemak untuk tanda asterisk awal, dan jika ditemui, halaman dianggap sebagai halaman `Reconstruction`. Menetapkan nilai `false` atau `true` pada `is_reconstructed_or_appendix` melumpuhkan semakan ini dan membenarkan nama halaman ruang nama utama yang bermula dengan tanda asterisk.
]==]
function Language:logicalToPhysical(pagename, is_reconstructed_or_appendix)
-- AMARAN: Ini mungkin tidak sepatutnya berlaku tetapi ia berlaku apabila makeEntryName() menerima nil.
if pagename == nil then
track("nil-passed-to-logicalToPhysical")
return nil
end
local initial_asterisk
if is_reconstructed_or_appendix == nil then
local pagename_minus_initial_asterisk
initial_asterisk, pagename_minus_initial_asterisk = pagename:match("^(%*)(.*)$")
if pagename_minus_initial_asterisk then
is_reconstructed_or_appendix = true
pagename = pagename_minus_initial_asterisk
elseif self:hasType("appendix-constructed") then
is_reconstructed_or_appendix = true
end
end
if not is_reconstructed_or_appendix then
-- Semak sama ada nama halaman tersenarai sebagai tajuk yang tidak disokong.
local unsupportedTitles = load_data(links_data_module).unsupported_titles
if unsupportedTitles[pagename] then
return "Unsupported titles/" .. unsupportedTitles[pagename]
end
end
-- Tetapkan `unsupported` sebagai true jika syarat tertentu dipenuhi.
local unsupported
-- Semak sama ada terdapat aksara yang tidak disokong. \239\191\189 ialah aksara gantian U+FFFD, yang tidak boleh ditaip
-- terus di sini kerana penapis penyalahgunaan. Notasi titik-garis condong gaya Unix juga tidak disokong, kerana ia digunakan untuk
-- laluan relatif dalam pautan, begitu juga dengan 3 atau lebih tanda tilde berturutan. Nota: match lebih pantas dengan aksara
-- magik/set aksara; find lebih pantas dengan teks biasa.
if (
match(pagename, "[#<>%[%]_{|}]") or
find(pagename, "\239\191\189") or
match(pagename, "%f[^%z/]%.%.?%f[%z/]") or
find(pagename, "~~~")
) then
unsupported = true
-- Jika ia kelihatan seperti pautan antara wiki.
elseif find(pagename, ":") then
local prefix = gsub(pagename, "^:*(.-):.*", ulower)
if (
load_data("Modul:data/namespaces")[prefix] or
load_data("Modul:data/interwikis")[prefix]
) then
unsupported = true
end
end
-- Lepaskan aksara yang tidak disokong supaya ia boleh digunakan dalam tajuk. ` digunakan sebagai pembatas untuk ini, jadi penggunaan mentah
-- tanda itu dalam tajuk yang tidak disokong turut dilepaskan di sini untuk mengelakkan gangguan; ini hanya dilakukan dengan tajuk yang
-- tidak disokong, jadi kemasukan tanda itu sendiri tidak bermakna tajuk tersebut dilayan sebagai tidak disokong (itulah sebabnya ia dikecualikan
-- daripada ujian awal).
if unsupported then
-- AMARAN: Penukaran ini perlu berbeza untuk halaman rekonstruksi dengan aksara yang tidak disokong. Tiada
-- yang wujud buat masa ini, tetapi jika ada, kita perlu membetulkannya cth. meletakkannya dalam sesuatu seperti
-- Reconstruction:Proto-Indo-European/Unsupported titles/`lowbar``num`.
local unsupported_characters = load_data(links_data_module).unsupported_characters
pagename = pagename:gsub("[#<>%[%]_`{|}\239]\191?\189?", unsupported_characters)
:gsub("%f[^%z/]%.%.?%f[%z/]", function(m)
return (gsub(m, "%.", "`period`"))
end)
:gsub("~~~+", function(m)
return (gsub(m, "~", "`tilde`"))
end)
pagename = "Unsupported titles/" .. pagename
elseif not is_reconstructed_or_appendix then
-- Semak sama ada ini halaman gergasi. Jika ya, subhalaman mana yang perlu kita pautkan?
local m_links_data = load_data(links_data_module)
local mammoth_page_type = m_links_data.mammoth_pages[pagename]
if mammoth_page_type then
local canonical_name = self:getFullName()
if canonical_name ~= "Rentas bahasa" and canonical_name ~= "Bahasa Melayu" then
local this_subpage
local L2_sort_key = get_L2_sort_key(canonical_name)
for _, subpage_spec in ipairs(m_links_data.mammoth_page_subpage_types[mammoth_page_type]) do
-- unpack() gagal sepenuhnya pada data yang dimuatkan menggunakan mw.loadData() walaupun ofset diberikan
local subpage, pattern = subpage_spec[1], subpage_spec[2]
if pattern == true or L2_sort_key:match(pattern) then
this_subpage = subpage
break
end
end
if not this_subpage then
error(("Ralat dalaman: Data tidak sah dalam mammoth_page_subpage_pages dalam [[Module:links/data]] untuk halaman gergasi %s, jenis %s; entri terakhir tiada 'true' di dalamnya"):format(
pagename, mammoth_page_type))
end
pagename = pagename .. "/" .. this_subpage
end
end
end
return (initial_asterisk or "") .. pagename
end
--[==[
Menanggalkan tanda diakritik daripada nama halaman paparan dan menukar nama halaman logik yang terhasil kepada nama halaman fizikal.
Ini membolehkan anda, sebagai contoh, mendapatkan kandungan halaman atau menyemak kewujudannya. AMARAN: Fungsi ini telah lapuk
dan akan dimansuhkan. Ia merupakan gabungan mudah bagi `self:stripDiacritics` dan `self:logicalToPhysical`; kebanyakan pemanggil
hanya memerlukan kaedah yang pertama, dan jika anda memerlukan kedua-duanya, panggil kedua-duanya secara berasingan.
`text` dan `sc` adalah seperti dalam `self:stripDiacritics`, dan `is_reconstructed_or_appendix` adalah seperti dalam `self:logicalToPhysical`.
]==]
function Language:makeEntryName(text, sc, is_reconstructed_or_appendix)
return self:logicalToPhysical(self:stripDiacritics(text, sc), is_reconstructed_or_appendix)
end
--[==[Menjana bentuk alternatif menggunakan kaedah yang dinyatakan, dan mengembalikannya sebagai jadual. Jika tiada kaedah dinyatakan, mengembalikan jadual yang hanya mengandungi istilah input.]==]
function Language:generateForms(text, sc)
local generate_forms = self._data.generate_forms
if generate_forms == nil then
return {text}
end
sc = checkScript(text, self, sc)
return require("Modul:" .. self._data.generate_forms).generateForms(text, self, sc)
end
--[==[Mencipta kunci isih bagi teks jalur yang diberikan, mengikut peraturan yang sesuai untuk bahasa tersebut. Ini menanggalkan
tanda diakritik daripada teks jalur jika ia dianggap tidak signifikan untuk pengisihan, dan mungkin melakukan beberapa pengubahsuaian
lain. Sebarang tanda sempang awal juga dialih keluar, dan apa sahaja di dalam kurungan turut dialih keluar.
Tetapan <code>sort_key</code> bagi setiap bahasa dalam modul data mentakrifkan penggantian yang dibuat oleh fungsi ini, atau ia memberikan nama modul yang menerima teks jalur dan mengembalikan kunci isih.]==]
function Language:makeSortKey(text, sc)
if (not text) or text == "" then
return text
end
if match(text, "<[^<>]+>") then
track("track HTML tag")
end
-- Mengalih keluar aksara arah, tebal, condong, tanda sempang lembut, penanda jalur dan tag HTML.
-- AMARAN: Sebahagiannya berulang dengan remove_formatting() dalam [[Module:links]].
text = ugsub(text, "[\194\173\226\128\170-\226\128\174\226\129\166-\226\129\169]", "")
text = text:gsub("('*)'''(.-'*)'''", "%1%2"):gsub("('*)''(.-'*)''", "%1%2")
text = gsub(unstrip(text), "<[^<>]+>", "")
text = decode_uri(text, "PATH")
text = checkNoEntities(self, text)
-- Mengalih keluar tanda sempang awal dan * melainkan istilah tersebut hanya terdiri daripada aksara penjarakan + tanda baca.
text = ugsub(text, "^([-]*)[-־ـ᠊*]+([-]*)(.*[^%s%p].*)", "%1%2%3")
sc = checkScript(text, self, sc)
text = normalize(text, sc)
text = removeCarets(text, sc)
-- Bagi bahasa yang mempunyai huruf i bertitik dan tanpa titik, pastikan "İ" diisih sebagai "i", dan "I" diisih sebagai "ı".
if self:hasDottedDotlessI() then
text = gsub(text, "I\204\135", "i") -- "İ" terurai
:gsub("I", "ı")
text = sc:toFixedNFD(text)
end
-- Tukar kepada huruf kecil, hasilkan kunci isih, kemudian tukar kepada huruf besar. Di mana bahasa mempunyai i bertitik dan tanpa titik, ia
-- biasanya tidak perlu menukar "i" kepada "İ" dan "ı" kepada "I" terlebih dahulu, kerana "I" akan sentiasa ditafsirkan sebagai
-- "I" konvensional (bukan "İ" tanpa titik) oleh mana-mana algoritma pengisihan, yang telah diambil kira oleh
-- penggantian kunci isih itu sendiri. Walau bagaimanapun, jika tiada penggantian kunci isih dinyatakan, maka penukaran adalah
-- perlu bagi mengelakkan kedua-dua "i" dan "ı" diisih sebagai "I".
--
-- Pengecualian dibuat untuk skrip yang (kadangkala) mengisih dengan mengikis kandungan halaman, kerana ini bermakna ia sensitif
-- terhadap perubahan penggunaan huruf besar/kecil (kerana ia mengubah halaman sasaran).
if not sc:sortByScraping() then
text = ulower(text)
end
local actual_substitution_data
-- Jangan pangkas ruang putih di sini kerana ia bermakna pada permulaan kunci isih atau asas isih.
text, _, actual_substitution_data = iterateSectionSubstitutions(self, text, sc, nil, nil, self._data.sort_key,
"sort_key", "makeSortKey", "notrim")
if not sc:sortByScraping() then
if self:hasDottedDotlessI() and not actual_substitution_data then
text = text:gsub("ı", "I"):gsub("i", "İ")
text = sc:toFixedNFC(text)
end
text = uupper(text)
end
-- Alih keluar kurungan, asalkan ia didahului atau diikuti oleh sesuatu.
text = gsub(text, "(.)[()]+", "%1"):gsub("[()]+(.)", "%1")
text = escape_risky_characters(text)
return text
end
--[==[Mencipta bentuk yang digunakan sebagai asas untuk teks paparan dan transliterasi. AMARAN: Namakan semula kepada correctInputText().]==]
local function processDisplayText(text, self, sc, keepCarets, keepPrefixes)
local subbedChars = {}
text, subbedChars = doTempSubstitutions(text, subbedChars, keepCarets)
text = decode_uri(text, "PATH")
text = checkNoEntities(self, text)
sc = checkScript(text, self, sc)
text = normalize(text, sc)
text, subbedChars = iterateSectionSubstitutions(self, text, sc, subbedChars, keepCarets, self._data.display_text,
"display_text", "makeDisplayText")
text = removeCarets(text, sc)
-- Alih keluar sebarang awalan pautan antara wiki (melainkan ia telah dilepaskan atau ciri ini dilumpuhkan).
if find(text, ":") and not keepPrefixes then
local rep
repeat
text, rep = gsub(text, "\\\\(\\*:)", "\3%1")
until rep == 0
text = gsub(text, "\\:", "\4")
while true do
local prefix = gsub(text, "^(.-):.+", function(m1)
return (gsub(m1, "\244[\128-\191]*", ""))
end)
-- Semak sama ada awalan ialah antara wiki, namun abaikan Wiktionary: dengan huruf besar, yang merupakan ruang nama.
if not prefix or prefix == text or prefix == "Wikikamus"
or not (load_data("Modul:data/interwikis")[ulower(prefix)] or prefix == "") then
break
end
text = gsub(text, "^(.-):(.*)", function(m1, m2)
local ret = {}
for subbedChar in gmatch(m1, "\244[\128-\191]*") do
insert(ret, subbedChar)
end
return concat(ret) .. m2
end)
end
text = gsub(text, "\3", "\\"):gsub("\4", ":")
end
return text, subbedChars
end
--[==[Menghasilkan teks paparan (iaitu apa yang dipaparkan pada halaman).]==]
function Language:makeDisplayText(text, sc, keepPrefixes)
if not text or text == "" then
return text
end
local subbedChars
text, subbedChars = processDisplayText(text, self, sc, nil, keepPrefixes)
text = escape_risky_characters(text)
return undoTempSubstitutions(text, subbedChars)
end
--[==[Mentransliterasikan teks daripada skrip yang diberikan kepada skrip Latin (lihat
[[Wiktionary:Transliteration and romanization]]). Bahasa mesti mempunyai sifat <code>translit</code> untuk ciri ini
berfungsi; jika ia tiada, {{code|lua|nil}} dikembalikan.
Parameter <code>sc</code> dikendalikan oleh modul transliterasi, dan cara ia dikendalikan adalah khusus kepada modul
tersebut. Sesetengah modul transliterasi mungkin menerima {{code|lua|nil}} sebagai skrip, yang lain memerlukannya menjadi salah satu
skrip yang mungkin boleh ditransliterasikan oleh modul, dan akan membuang ralat jika ia bukan salah satu daripadanya. Atas sebab ini,
parameter <code>sc</code> sepatutnya sentiasa disediakan semasa menulis kod bukan khusus bahasa.
Parameter <code>module_override</code> digunakan untuk mengatasi modul lalai yang digunakan bagi menyediakan
transliterasi. Ini berguna dalam kes di mana anda perlu menunjukkan penggunaan modul tertentu, tetapi modul lalai belum wujud,
atau anda ingin menunjukkan versi alternatif bagi modul transliterasi sebelum menjadikannya rasmi. Ia tidak sepatutnya
digunakan dalam modul atau templat sebenar, hanya untuk ujian. Semua penggunaan parameter ini dijejaki
oleh [[Wiktionary:Tracking/languages/module_override]].
'''Pepijat yang diketahui''':
* Fungsi ini mengandaikan {tr(s1) .. tr(s2) == tr(s1 .. s2)}. Apabila penegasan ini gagal, penanda teks wiki seperti <nowiki>'''</nowiki> boleh menyebabkan transliterasi yang salah.
* Entiti HTML seperti <code>&apos;</code>, yang sering digunakan untuk melepaskan penanda teks wiki, tidak berfungsi.
]==]
function Language:transliterate(text, sc, module_override)
-- Jika tiada teks, atau bahasa tidak mempunyai data transliterasi dan tiada override diberikan, kembalikan nil.
if not text or text == "" or text == "-" then
return text
end
-- Jika skrip tidak boleh ditransliterasikan (dan tiada override diberikan), kembalikan nil.
sc = checkScript(text, self, sc)
if not (sc:isTransliterated() or module_override) then
-- penjejakan sementara untuk melihat sama ada/bila ini dicetuskan
track("non-transliterable")
track("non-transliterable/" .. self._code)
track("non-transliterable/" .. sc:getCode())
track("non-transliterable/" .. sc:getCode() .. "/" .. self._code)
return nil
end
-- Alih keluar sebarang penanda jalur.
text = unstrip(text)
-- Jangan proses pemformatan kepada aksara PUA bagi bahasa-bahasa tertentu.
local processed = load_data(languages_data_module).substitution[self._code] ~= "none"
-- Dapatkan teks paparan dengan bendera keepCarets ditetapkan.
local subbedChars
if processed then
text, subbedChars = processDisplayText(text, self, sc, true)
end
-- Lakukan transliterasi (menggunakan module_override jika berkenaan).
text, subbedChars = iterateSectionSubstitutions(self, text, sc, subbedChars, true, module_override or
self._data.translit, "translit", "tr")
if not text then
return nil
end
-- Transliterasi tidak lengkap mengembalikan nil.
local charset = sc.characters
if charset and umatch(text, "[" .. charset .. "]") then
-- Alih keluar sebarang aksara dalam skrip Latin, termasuk aksara Latin yang turut terkandung dalam skrip lain (kerana ini
-- menghasilkan positif palsu), serta sebarang penggantian PUA. Apa-apa yang tinggal sepatutnya hanya kod skrip "None"
-- (cth. angka).
local check_text = ugsub(text, "[" .. get_script("Latn").characters .. "-]+", "")
-- Tetapkan bendera none_is_last_resort_only, supaya sebarang aksara bukan-None akan menyebabkan skrip selain "None"
-- dikembalikan.
if find_best_script_without_lang(check_text, true):getCode() ~= "None" then
return nil
end
end
if processed then
text = escape_risky_characters(text)
text = undoTempSubstitutions(text, subbedChars)
end
-- Jika skrip tidak menggunakan huruf besar, maka besarkan sebarang huruf transliterasi yang
-- didahului secara langsung oleh tanda sisip (dan alih keluar tanda sisip tersebut).
if text and not sc:hasCapitalization() and text:find("^", 1, true) then
text = processCarets(text, "%^([\128-\191\244]*%*?)([^\128-\191\244][\128-\191]*)", function(m1, m2)
return m1 .. uupper(m2)
end)
end
-- Jejaki override modul.
if module_override ~= nil then
track("module_override")
end
return text
end
do
local function handle_language_spec(self, spec, sc)
local ret = self["_" .. spec]
if ret == nil then
ret = self._data[spec]
if type(ret) == "string" then
ret = list_to_set(split(ret, ",", true, true))
end
self["_" .. spec] = ret
end
if type(ret) == "table" then
ret = ret[sc:getCode()]
end
return not not ret
end
function Language:overrideManualTranslit(sc)
return handle_language_spec(self, "override_translit", sc)
end
function Language:link_tr(sc)
return handle_language_spec(self, "link_tr", sc)
end
end
--[==[Mengembalikan {{code|lua|true}} jika bahasa mempunyai modul transliterasi, atau {{code|lua|false}} jika tiada.]==]
function Language:hasTranslit()
return not not self._data.translit
end
--[==[Mengembalikan {{code|lua|true}} jika bahasa menggunakan huruf I/ı dan İ/i, atau {{code|lua|false}} jika tidak.]==]
function Language:hasDottedDotlessI()
return not not self._data.dotted_dotless_i
end
function Language:toJSON(opts)
local strip_diacritics, strip_diacritics_patterns, strip_diacritics_remove_diacritics = self._data.strip_diacritics
if strip_diacritics then
if strip_diacritics.from then
strip_diacritics_patterns = {}
for i, from in ipairs(strip_diacritics.from) do
insert(strip_diacritics_patterns, {from = from, to = strip_diacritics.to[i] or ""})
end
end
strip_diacritics_remove_diacritics = strip_diacritics.remove_diacritics
end
-- mainCode hanya bernilai bukan nil jika dontCanonicalizeAliases dihantar ke make_object().
-- props sepatutnya mengandungi fungsi tanpa argumen untuk mengira nilai, atau nilai itu sendiri.
local props = {
ancestors = function() return self:getAncestorCodes() end,
canonicalName = function() return self:getCanonicalName() end,
categoryName = function() return self:getCategoryName("nocap") end,
code = self._code,
mainCode = self._mainCode,
parent = function() return self:getParentCode() end,
full = function() return self:getFullCode() end,
stripDiacriticsPatterns = strip_diacritics_patterns,
stripDiacriticsRemoveDiacritics = strip_diacritics_remove_diacritics,
family = function() return self:getFamilyCode() end,
aliases = function() return self:getAliases() end,
varieties = function() return self:getVarieties() end,
otherNames = function() return self:getOtherNames() end,
scripts = function() return self:getScriptCodes() end,
type = function() return keys_to_list(self:getTypes()) end,
wikimediaLanguages = function() return self:getWikimediaLanguageCodes() end,
wikidataItem = function() return self:getWikidataItem() end,
wikipediaArticle = function() return self:getWikipediaArticle(true) end,
}
local ret = {}
for prop, val in pairs(props) do
if not opts.skip_fields or not opts.skip_fields[prop] then
if type(val) == "function" then
ret[prop] = val()
else
ret[prop] = val
end
end
end
-- Gunakan `deep_copy` apabila mengembalikan jadual, supaya tiada sekatan penyuntingan yang dikenakan oleh `mw.loadData`.
return opts and opts.lua_table and deep_copy(ret) or to_json(ret, opts)
end
function export.getDataModuleName(code)
local letter = match(code, "^(%l)%l%l?$")
return "Modul:" .. (
letter == nil and "languages/data/exceptional" or
#code == 2 and "languages/data/2" or
"languages/data/3/" .. letter
)
end
get_data_module_name = export.getDataModuleName
function export.getExtraDataModuleName(code)
return get_data_module_name(code) .. "/extra"
end
get_extra_data_module_name = export.getExtraDataModuleName
do
local function make_stack(data)
local key_types = {
[2] = "unique",
aliases = "unique",
otherNames = "unique",
type = "append",
varieties = "unique",
wikipedia_article = "unique",
wikimedia_codes = "unique"
}
local function __index(self, k)
local stack, key_type = getmetatable(self), key_types[k]
-- Data yang tidak diwarisi daripada induk.
if key_type == "unique" then
local v = stack[stack[make_stack]][k]
if v == nil then
local layer = stack[0]
if layer then -- Boleh bernilai false jika tiada data tambahan.
v = layer[k]
end
end
return v
-- Data yang ditambah oleh setiap generasi.
elseif key_type == "append" then
local parts, offset, n = {}, 0, stack[make_stack]
for i = 1, n do
local part = stack[i][k]
if part == nil then
offset = offset + 1
else
parts[i - offset] = part
end
end
return offset ~= n and concat(parts, ",") or nil
end
local n = stack[make_stack]
while true do
local layer = stack[n]
if not layer then -- Boleh bernilai false jika tiada data tambahan.
return nil
end
local v = layer[k]
if v ~= nil then
return v
end
n = n - 1
end
end
local function __newindex()
error("jadual adalah baca sahaja")
end
local function __pairs(self)
-- Mengulangi susunan tindanan ke bawah, mencache kunci bagi mengelakkan pulangan pendua.
local stack, seen = getmetatable(self), {}
local n = stack[make_stack]
local iter, state, k, v = pairs(stack[n])
return function()
repeat
repeat
k = iter(state, k)
if k == nil then
n = n - 1
local layer = stack[n]
if not layer then -- Boleh bernilai false jika tiada data tambahan.
return nil
end
iter, state, k = pairs(layer)
end
until not (k == nil or seen[k])
-- Dapatkan nilai melalui carian, kerana nilai yang dikembalikan oleh
-- lelaran adalah nilai mentah daripada lapisan semasa,
-- yang mungkin bukan nilai yang akan dikembalikan oleh __index untuk
-- kunci tersebut. Lakukan juga memoize kunci dalam `seen` (walaupun carian
-- mengembalikan nil) supaya ia tidak dicari semula.
-- TODO: simpan nilai dalam `self`, mengelakkan keperluan membina
-- jadual `seen`. Lelaran perlu mengulangi ke atas
-- `self` dengan `next` terlebih dahulu untuk menemuinya pada gelung akan datang.
v, seen[k] = self[k], true
until v ~= nil
return k, v
end
end
local __ipairs = require(table_module).indexIpairs
function make_stack(data)
local stack = {
data,
[make_stack] = 1, -- menyimpan panjang dan bertindak sebagai penanda untuk mengesahkan sesuatu metajadual ialah tindanan.
__index = __index,
__newindex = __newindex,
__pairs = __pairs,
__ipairs = __ipairs,
}
stack.__metatable = stack
return setmetatable({}, stack), stack
end
return make_stack(data)
end
local function get_stack(data)
local stack = getmetatable(data)
return stack and type(stack) == "table" and stack[make_stack] and stack or nil
end
--[==[
<span style="color: var(--wikt-palette-red,#BA0000)">Fungsi ini bukan untuk digunakan dalam entri atau halaman kandungan lain.</span>
Mengembalikan gumpalan data mengenai bahasa tersebut. Format gumpalan ini tidak didokumenkan, dan barangkali tidak stabil; ia bertujuan untuk perkara seperti ujian unit modul itu sendiri, yang berkait rapat dengan modul dan akan dipastikan sentiasa terkini mengikut perubahan format. Jika `extra` ditetapkan, sebarang data tambahan dalam modul `/extra` berkaitan akan disertakan. (Ambil perhatian bahawa ia akan tetap disertakan jika ia telah pun dimuatkan ke dalam objek bahasa.) Jika `raw` ditetapkan, maka data yang dikembalikan tidak akan mengandungi sebarang data yang diwarisi daripada objek induk.
-- JANGAN gunakan kaedah-kaedah ini!
-- Semua penggunaan mesti dipra-luluskan pada halaman perbincangan!
]==]
function Language:getData(extra, raw)
if extra then
self:loadInExtraData()
end
local data = self._data
-- Jika raw tidak ditetapkan, kembalikan data sahaja.
if not raw then
return data
end
local stack = get_stack(data)
-- Jika tiada tindanan atau panjangnya adalah 1, kembalikan data. Data tambahan (jika ada) akan disertakan, kerana ia disimpan pada kunci 0 dan tidak menjejaskan panjang yang dilaporkan.
if stack == nil then
return data
end
local n = stack[make_stack]
if n == 1 then
return data
end
local extra = stack[0]
-- Jika tiada sebarang data tambahan, kembalikan lapisan teratas tindanan.
if extra == nil then
return stack[n]
end
-- Jika ada, kembalikan tindanan baharu yang mempunyai lapisan teratas pada kunci 1 dan data tambahan pada kunci 0.
data, stack = make_stack(stack[n])
stack[0] = extra
return data
end
function Language:loadInExtraData()
-- Hanya bahasa penuh mempunyai data tambahan.
if not self:hasType("language", "full") then
return
end
local data = self._data
-- Jika tiada tindanan, cipta satu.
local stack = get_stack(self._data)
if stack == nil then
data, stack = make_stack(data)
-- Jika telah dimuatkan, kembali.
elseif stack[0] ~= nil then
return
end
self._data = data
-- Muatkan data tambahan daripada modul berkaitan dan tambahkannya pada tindanan pada kunci 0, supaya metamethod __index dan __pairs akan mengambilnya, memandangkan ia mengulangi ke bawah tindanan sehingga kehabisan lapisan.
local code = self._code
local modulename = get_extra_data_module_name(code)
-- Tiada data dicache sebagai false.
stack[0] = modulename and load_data(modulename)[code] or false
end
--[==[Mengembalikan nama modul yang mengandungi data bahasa tersebut. Pada masa ini, ia sentiasa [[Module:scripts/data]].]==]
function Language:getDataModuleName()
local name = self._dataModuleName
if name == nil then
name = self:hasType("etymology-only") and etymology_languages_data_module or
get_data_module_name(self._mainCode or self._code)
self._dataModuleName = name
end
return name
end
--[==[Mengembalikan nama modul yang mengandungi data bahasa tersebut. Pada masa ini, ia sentiasa [[Module:scripts/data]].]==]
function Language:getExtraDataModuleName()
local name = self._extraDataModuleName
if name == nil then
name = not self:hasType("etymology-only") and get_extra_data_module_name(self._mainCode or self._code) or false
self._extraDataModuleName = name
end
return name or nil
end
function export.makeObject(code, data, dontCanonicalizeAliases)
local data_type = type(data)
if data_type ~= "table" then
error(("hujah #2 tidak sah untuk 'makeObject' (jadual dijangkakan, menerima %s)"):format(data_type))
end
-- Tukar sebarang alias.
local input_code = code
code = normalize_code(code)
input_code = dontCanonicalizeAliases and input_code or code
local parent
if data.parent then
parent = get_by_code(data.parent, nil, true, true)
else
parent = Language
end
parent.__index = parent
local lang = {_code = input_code}
-- Ini hanya boleh berlaku jika dontCanonicalizeAliases dihantar kepada make_object().
if code ~= input_code then
lang._mainCode = code
end
local parent_data = parent._data
if parent_data == nil then
-- Kod penuh adalah sama seperti kod bahasa.
lang._fullCode = parent._code or code
else
-- Salin kod penuh.
lang._fullCode = parent._fullCode
local stack = get_stack(parent_data)
if stack == nil then
parent_data, stack = make_stack(parent_data)
end
-- Sisipkan data input sebagai lapisan teratas baharu bagi tindanan.
local n = stack[make_stack] + 1
data, stack[n], stack[make_stack] = parent_data, data, n
end
lang._data = data
return setmetatable(lang, parent)
end
make_object = export.makeObject
end
--[==[Mencari bahasa yang kodnya sepadan dengan yang dibekalkan. Jika ia wujud, ia mengembalikan objek <code class="nf">Language</code> yang mewakili bahasa tersebut. Sebaliknya, ia mengembalikan {{code|lua|nil}}, melainkan jika <code class="n">paramForError</code> diberikan, yang mana ralat akan dijana. Jika <code class="n">paramForError</code> bernilai {{code|lua|true}}, mesej ralat generik yang menyatakan kod tidak sah akan dijana; selain itu <code class="n">paramForError</code> sepatutnya rentetan atau nombor yang menyatakan parameter punca kod tersebut, dan parameter ini akan dinyatakan dalam mesej ralat bersama kod yang salah. Jika <code class="n">allowEtymLang</code> dinyatakan, kod bahasa khusus etimologi dibenarkan dan dicari bersama kod bahasa biasa. Jika <code class="n">allowFamily</code> dinyatakan, kod keluarga bahasa dibenarkan dan dicari bersama kod bahasa biasa.]==]
function export.getByCode(code, paramForError, allowEtymLang, allowFamily)
-- Jejaki penggunaan paramForError, bertujuan untuk membolehkannya dialih keluar akhirnya, kerana pengendalian ralat sepatutnya dilakukan oleh [[Module:parameters]], bukan di sini.
if paramForError ~= nil then
track("paramForError")
end
if type(code) ~= "string" then
local typ
if not code then
typ = "nil"
elseif check_object("language", true, code) then
typ = "objek bahasa"
elseif check_object("family", true, code) then
typ = "objek keluarga"
else
typ = type(code)
end
error("Fungsi getByCode menjangkakan rentetan sebagai hujah pertamanya, tetapi menerima " .. typ .. ".")
end
local m_data = load_data(languages_data_module)
if m_data.aliases[code] or m_data.track[code] then
track(code)
end
local norm_code = normalize_code(code)
-- Dapatkan data, menyemak bahasa khusus etimologi jika allowEtymLang ditetapkan.
local data = load_data(get_data_module_name(norm_code))[norm_code] or
allowEtymLang and load_data(etymology_languages_data_module)[norm_code]
-- Jika tiada data ditemui dan allowFamily ditetapkan, semak data keluarga. Jika data keluarga utama ditemui, bina objek menggunakan [[Module:families]] sebagai ganti, kerana objek keluarga mempunyai kaedah yang berbeza. Walau bagaimanapun, jika ia keluarga khusus etimologi, gunakan make_object dalam modul ini (yang mengendalikan pewarisan objek), dan kaedah khusus keluarga akan diwarisi daripada objek induk.
if data == nil and allowFamily then
data = load_data("Modul:families/data")[norm_code]
if data ~= nil then
if data.parent == nil then
return make_family_object(norm_code, data)
elseif not allowEtymLang then
data = nil
end
end
end
local retval = code and data and make_object(code, data)
if not retval and paramForError then
require("Modul:languages/errorGetBy").code(code, paramForError, allowEtymLang, allowFamily)
end
return retval
end
get_by_code = export.getByCode
--[==[Mencari bahasa yang nama kanoniknya (nama yang digunakan untuk mewakili bahasa tersebut di Wiktionary) atau nama lainnya sepadan dengan yang dibekalkan. Jika wujud, ia mengembalikan objek <code class="nf">Language</code> yang mewakili bahasa tersebut. Sebaliknya, ia mengembalikan {{code|lua|nil}}, melainkan <code class="n">paramForError</code> diberikan, yang mana ralat akan dijana. Jika <code class="n">allowEtymLang</code> dinyatakan, kod bahasa khusus etimologi dibenarkan dan dicari bersama kod bahasa biasa. Jika <code class="n">allowFamily</code> dinyatakan, kod keluarga bahasa dibenarkan dan dicari bersama kod bahasa biasa.
Nama kanonik bahasa mestilah sentiasa unik (adalah menjadi ralat bagi dua bahasa di Wiktionary berkongsi nama kanonik yang sama), jadi fungsi ini dijamin memberikan selebih-lebihnya satu hasil.
Fungsi ini dikuasakan oleh [[Module:languages/canonical names]], yang mengandungi pemetaan prapapar nama kanonik bahasa penuh kepada kod. Ia dijana dengan meneliti [[:Kategori:Modul data bahasa]] bagi bahasa penuh. Apabila <code class="n">allowEtymLang</code> dinyatakan untuk fungsi di atas, [[Module:etymology languages/canonical names]] juga boleh digunakan, dan apabila <code class="n">allowFamily</code> dinyatakan untuk fungsi di atas, [[Module:families/canonical names]] juga boleh digunakan.]==]
function export.getByCanonicalName(name, errorIfInvalid, allowEtymLang, allowFamily)
local byName = load_data("Modul:languages/canonical names")
local code = byName and byName[name]
if not code and allowEtymLang then
byName = load_data("Modul:etymology languages/canonical names")
code = byName and byName[name] or
byName[gsub(name, "^[Ss]ubstratum ", "")] or
byName[gsub(name, "^suatu ", "")] or
byName[gsub(name, "^suatu ", ""):gsub("^[Ss]ubstratum ", "")] or
-- Untuk keluarga etimologi seperti "ira-pro".
-- AMARAN: Ini kurang ideal, kerana ia membenarkan " languages" dilampirkan pada mana-mana bahasa khusus etimologi juga.
byName[match(name, "^[Bb]ahasa%-bahasa (.*)$")]
end
if not code and allowFamily then
byName = load_data("Modul:families/canonical names")
code = byName[name] or byName[match(name, "^[Bb]ahasa%-bahasa (.*)$")]
end
local retval = code and get_by_code(code, errorIfInvalid, allowEtymLang, allowFamily)
if not retval and errorIfInvalid then
require("Modul:languages/errorGetBy").canonicalName(name, allowEtymLang, allowFamily)
end
return retval
end
--[==[Digunakan oleh [[Module:languages/data/2]] (dan lain-lain) serta [[Module:etymology languages/data]], [[Module:families/data]], [[Module:scripts/data]] dan [[Module:writing systems/data]] untuk memuktamadkan data ke dalam format yang sebenarnya dikembalikan.]==]
function export.finalizeData(data, main_type, variety)
local fields = {"type"}
if main_type == "language" then
insert(fields, 4) -- kod skrip
insert(fields, "ancestors")
insert(fields, "link_tr")
insert(fields, "override_translit")
insert(fields, "wikimedia_codes")
elseif main_type == "script" then
insert(fields, 3) -- kod sistem tulisan
end -- Keluarga dan sistem tulisan tidak mempunyai medan tambahan untuk diproses.
local fields_len = #fields
for _, entity in next, data do
if variety then
-- Pindahkan induk daripada 3 ke "parent" dan keluarga daripada "family" ke 3. Ini berbeza atas dasar kemudahan, memandangkan sangat sedikit variasi yang menyatakan keluarga, manakala kesemuanya mempunyai induk.
entity.parent, entity[3], entity.family = entity[3], entity.family
-- Berikan jenis "regular" jika dan hanya jika bukan variasi dan tiada jenis lain yang ditetapkan.
elseif not (entity.type or entity.parent) then
entity.type = "regular"
end
for i = 1, fields_len do
local key = fields[i]
local field = entity[key]
if field and type(field) == "string" then
entity[key] = gsub(field, "%s*,%s*", ",")
end
end
end
return data
end
--[==[Untuk keserasian ke belakang sahaja; modul sepatutnya memerlukan fail ralat itu sendiri.]==]
function export.err(lang_code, param, code_desc, template_tag, not_real_lang)
return require("Modul:languages/error")(lang_code, param, code_desc, template_tag, not_real_lang)
end
return export
ky8q2j48o9sl1k2k4ahuz9jhkah6vzm
Modul:families
828
8668
373476
233101
2026-09-10T17:17:52Z
SNN95
2113
kemaskini
373476
Scribunto
text/plain
local export = {}
local families_by_name_module = "Module:families/canonical names"
local families_data_module = "Module:families/data"
local json_module = "Module:JSON"
local language_like_module = "Module:language-like"
local languages_module = "Module:languages"
local load_module = "Module:load"
local table_module = "Module:table"
local get_by_code -- Defined below.
local gmatch = string.gmatch
local insert = table.insert
local ipairs = ipairs
local make_object -- Defined below.
local pairs = pairs
local require = require
local setmetatable = setmetatable
local type = type
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function category_name_has_suffix(...)
category_name_has_suffix = require(language_like_module).categoryNameHasSuffix
return category_name_has_suffix(...)
end
local function category_name_to_code(...)
category_name_to_code = require(language_like_module).categoryNameToCode
return category_name_to_code(...)
end
local function deep_copy(...)
deep_copy = require(table_module).deepCopy
return deep_copy(...)
end
local function get_lang(...)
get_lang = require(languages_module).getByCode
return get_lang(...)
end
local function keys_to_list(...)
keys_to_list = require(table_module).keysToList
return keys_to_list(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function make_lang_object(...)
make_lang_object = require(languages_module).makeObject
return make_lang_object(...)
end
local function to_json(...)
to_json = require(json_module).toJSON
return to_json(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local families_by_name
local function get_families_by_name()
families_by_name, get_families_by_name = load_data(families_by_name_module), nil
return families_by_name
end
local families_data
local function get_families_data()
families_data, get_families_data = load_data(families_data_module), nil
return families_data
end
local families_suffixes
local function get_families_suffixes()
families_suffixes, get_families_suffixes = {
"Bahasa-bahasa",
"Lek-lek"
}, nil
return families_suffixes
end
local Family = {}
Family.__index = Family
--[==[
Return the family code of the family, e.g. {"ine"} for the Indo-European languages.
]==]
function Family:getCode()
return self._code
end
--[==[
Return the canonical name of the family. This is the name used to represent that language family on Wiktionary,
and is guaranteed to be unique to that family alone. Example: {"Indo-European"} for the Indo-European languages.
]==]
function Family:getCanonicalName()
local name = self._name
if name == nil then
name = self._data[1]
self._name = name
end
return name
end
--[==[
Return the display form of the family. For families, this is usually the same as the value returned by
{getCategoryName("nocap")}, i.e. it reads <code>"<var>name</var> languages"</code> (e.g.
{"Indo-Iranian languages"}). For full and etymology-only languages, this is the same as the canonical name, and
for scripts, it reads <code>"<var>name</var> script"</code> (e.g. {"Arabic script"}). The displayed text used in
{makeCategoryLink()} is always the same as the display form.
]==]
function Family:getDisplayForm()
local name = self._data[1]
if category_name_has_suffix(name, families_suffixes or get_families_suffixes()) then
name = "Bahasa-bahasa " .. name
end
return name
end
function Family:getAliases()
Family.getAliases = require(language_like_module).getAliases
return self:getAliases()
end
function Family:getVarieties(flatten)
Family.getVarieties = require(language_like_module).getVarieties
return self:getVarieties(flatten)
end
function Family:getOtherNames()
Family.getOtherNames = require(language_like_module).getOtherNames
return self:getOtherNames()
end
function Family:getAllNames()
Family.getAllNames = require(language_like_module).getAllNames
return self:getAllNames()
end
--[==[Returns a table of types as a lookup table (with the types as keys).
The possible types are
* {family}: This object is a family.
* {full}: This object is a "full" family. This includes all families but a couple of etymology-only
families for Old and Middle Iranian languages.
* {etymology-only}: This object is an etymology-only family, similar to etymology-only languages. There
are currently only two such families, for Old Iranian languages and Middle Iranian
languages (which do not represent proper clades and have no proto-languages, hence
cannot be full families).
]==]
function Family:getTypes()
local types = self._types
if types == nil then
types = {family = true}
if self:getFullCode() == self:getCode() then
types.full = true
else
types["etymology-only"] = true
end
local rawtypes = self._data.type
if rawtypes then
for t in gmatch(rawtypes, "[^,]+") do
types[t] = true
end
end
self._types = types
end
return types
end
--[==[Given a list of types as strings, returns true if the family has all of them.]==]
function Family:hasType(...)
Family.hasType = require(language_like_module).hasType
return self:hasType(...)
end
--[==[Returns a {Family} object for the superfamily that the family belongs to.]==]
function Family:getFamily()
if self._familyObject == nil then
local familyCode = self:getFamilyCode()
if familyCode then
self._familyObject = get_by_code(familyCode)
else
self._familyObject = false
end
end
return self._familyObject or nil
end
--[==[Returns the code of the family's superfamily.]==]
function Family:getFamilyCode()
if not self._familyCode then
self._familyCode = self._data[3]
end
return self._familyCode
end
--[==[Returns the canonical name of the family's superfamily.]==]
function Family:getFamilyName()
if self._familyName == nil then
local family = self:getFamily()
if family then
self._familyName = family:getCanonicalName()
else
self._familyName = false
end
end
return self._familyName or nil
end
--[==[Check whether the family belongs to {superfamily} (which can be a family code or object), and returns a boolean. If more than one is given, returns {true} if the family belongs to any of them. A family is '''not''' considered to belong to itself.]==]
function Family:inFamily(...)
for _, superfamily in ipairs{...} do
if type(superfamily) == "table" then
superfamily = superfamily:getCode()
end
local family, code = self:getFamily()
while family do
code = family:getCode()
if code == superfamily then
return true
end
family = family:getFamily()
-- If family is parent to itself, return false.
if family and family:getCode() == code then
return false
end
end
return false
end
end
function Family:getParent()
if self._parentObject == nil then
local parentCode = self:getParentCode()
if parentCode then
self._parentObject = get_lang(parentCode, nil, true, true)
else
self._parentObject = false
end
end
return self._parentObject or nil
end
function Family:getParentCode()
if not self._parentCode then
self._parentCode = self._data.parent
end
return self._parentCode
end
function Family:getParentName()
if self._parentName == nil then
local parent = self:getParent()
if parent then
self._parentName = parent:getCanonicalName()
else
self._parentName = false
end
end
return self._parentName or nil
end
function Family:getParentChain()
if not self._parentChain then
self._parentChain = {}
local parent = self:getParent()
while parent do
insert(self._parentChain, parent)
parent = parent:getParent()
end
end
return self._parentChain
end
function Family:hasParent(...)
--checkObject("family", nil, ...)
for _, other_family in ipairs{...} do
for _, parent in ipairs(self:getParentChain()) do
if type(other_family) == "string" then
if other_family == parent:getCode() then return true end
else
if other_family:getCode() == parent:getCode() then return true end
end
end
end
return false
end
--[==[
If the family is etymology-only, this iterates through its parents until a full family is found, and the
corresponding object is returned. If the family is a full family, then it simply returns itself.
]==]
function Family:getFull()
if not self._fullObject then
local fullCode = self:getFullCode()
if fullCode ~= self:getCode() then
self._fullObject = get_lang(fullCode, nil, nil, true)
else
self._fullObject = self
end
end
return self._fullObject
end
--[==[
If the family is etymology-only, this iterates through its parents until a full family is found, and the
corresponding code is returned. If the family is a full family, then it simply returns the family code.
]==]
function Family:getFullCode()
return self._fullCode or self:getCode()
end
--[==[
If the family is etymology-only, this iterates through its parents until a full family is found, and the
corresponding canonical name is returned. If the family is a full family, then it simply returns the canonical name
of the family.
]==]
function Family:getFullName()
if self._fullName == nil then
local full = self:getFull()
if full then
self._fullName = full:getCanonicalName()
else
self._fullName = false
end
end
return self._fullName or nil
end
--[==[
Return a {Language} object (see [[Module:languages]]) for the proto-language of this family, if one exists.
Otherwise, return {nil}.
]==]
function Family:getProtoLanguage()
if self._protoLanguageObject == nil then
self._protoLanguageObject = get_lang(self._data.protoLanguage or self:getCode() .. "-pro", nil, true) or false
end
return self._protoLanguageObject or nil
end
function Family:getProtoLanguageCode()
if self._protoLanguageCode == nil then
local protoLanguage = self:getProtoLanguage()
self._protoLanguageCode = protoLanguage and protoLanguage:getCode() or false
end
return self._protoLanguageCode or nil
end
function Family:getProtoLanguageName()
if not self._protoLanguageName then
self._protoLanguageName = self:getProtoLanguage():getCanonicalName()
end
return self._protoLanguageName
end
function Family:hasAncestor(...)
-- Go up the family tree until a protolanguage is found.
local family = self
local protolang = family:getProtoLanguage()
while not protolang do
family = family:getFamily()
protolang = family:getProtoLanguage()
-- Return false if the family is its own family, to avoid an infinite loop.
if family:getFamilyCode() == family:getCode() then
return false
end
end
-- If the protolanguage is not in the family, it must therefore be ancestral to it. Check if it is a match.
for _, otherlang in ipairs{...} do
if (
type(otherlang) == "string" and protolang:getCode() == otherlang or
type(otherlang) == "table" and protolang:getCode() == otherlang:getCode()
) and not protolang:inFamily(self) then
return true
end
end
-- If not, check the protolanguage's ancestry.
return protolang:hasAncestor(...)
end
local function fetch_descendants(self, format)
local languages = require("Module:languages/code to canonical name")
local etymology_languages = require("Module:etymology languages/code to canonical name")
local families = require("Module:families/code to canonical name")
local descendants = {}
-- Iterate over all three datasets.
for _, data in ipairs{languages, etymology_languages, families} do
for code in pairs(data) do
local lang = get_lang(code, nil, true, true)
if lang:inFamily(self) then
if format == "object" then
insert(descendants, lang)
elseif format == "code" then
insert(descendants, code)
elseif format == "name" then
insert(descendants, lang:getCanonicalName())
end
end
end
end
return descendants
end
function Family:getDescendants()
if not self._descendantObjects then
self._descendantObjects = fetch_descendants(self, "object")
end
return self._descendantObjects
end
function Family:getDescendantCodes()
if not self._descendantCodes then
self._descendantCodes = fetch_descendants(self, "code")
end
return self._descendantCodes
end
function Family:getDescendantNames()
if not self._descendantNames then
self._descendantNames = fetch_descendants(self, "name")
end
return self._descendantNames
end
function Family:hasDescendant(...)
for _, lang in ipairs{...} do
if type(lang) == "string" then
lang = get_lang(lang, nil, true)
end
if lang:inFamily(self) then
return true
end
end
return false
end
--[==[
Return the name of the main category of that family. Example: {"Germanic languages"} for the Germanic languages,
whose category is at [[:Kategori:Germanic languages]].
Unless optional argument `nocap` is given, the family name at the beginning of the returned value will be
capitalized. This capitalization is correct for category names, but not if the family name is lowercase and
the returned value of this function is used in the middle of a sentence. (For example, the pseudo-family with
the code {qfa-mix} has the name {"mixed"}, which should remain lowercase when used as part of the category name
[[:Kategori:Terms derived from mixed languages]] but should be capitalized in [[:Kategori:Mixed languages]].)
If you are considering using {getCategoryName("nocap")}, use {getDisplayForm()} instead.
]==]
function Family:getCategoryName(nocap)
local name = self._data.categoryName or self:getDisplayForm()
if not nocap then
name = mw.getContentLanguage():ucfirst(name)
end
return name
end
function Family:makeCategoryLink()
return "[[:Kategori:" .. self:getCategoryName() .. "|" .. self:getDisplayForm() .. "]]"
end
--[==[Returns the Wikidata item id for the family or <code>nil</code>. This corresponds to the the second field in the data modules.]==]
function Family:getWikidataItem()
Family.getWikidataItem = require(language_like_module).getWikidataItem
return self:getWikidataItem()
end
--[==[
Returns the name of the Wikipedia article for the family. `project` specifies the language and project to retrieve
the article from, defaulting to {"enwiki"} for the English Wikipedia. Normally if specified it should be the project
code for a specific-language Wikipedia e.g. "zhwiki" for the Chinese Wikipedia, but it can be any project, including
non-Wikipedia ones. If the project is the English Wikipedia and the property {wikipedia_article} is present in the data
module it will be used first. In all other cases, a sitelink will be generated from {:getWikidataItem} (if set). The
resulting value (or lack of value) is cached so that subsequent calls are fast. If no value could be determined, and
`noCategoryFallback` is {false}, {:getCategoryName} is used as fallback; otherwise, {nil} is returned. Note that if
`noCategoryFallback` is {nil} or omitted, it defaults to {false} if the project is the English Wikipedia, otherwise
to {true}. In other words, under normal circumstances, if the English Wikipedia article couldn't be retrieved, the
return value will fall back to a link to the family's category, but this won't normally happen for any other project.
]==]
function Family:getWikipediaArticle(noCategoryFallback, project)
Family.getWikipediaArticle = require(language_like_module).getWikipediaArticle
return self:getWikipediaArticle(noCategoryFallback, project)
end
function Family:makeWikipediaLink()
return "[[w:" .. self:getWikipediaArticle() .. "|" .. self:getCanonicalName() .. "]]"
end
--[==[Returns the name of the Wikimedia Commons category page for the family.]==]
function Family:getCommonsCategory()
Family.getCommonsCategory = require(language_like_module).getCommonsCategory
return self:getCommonsCategory()
end
function Family:toJSON(opts)
local ret = {
canonicalName = self:getCanonicalName(),
categoryName = self:getCategoryName("nocap"),
code = self:getCode(),
parent = self:getParentCode(),
full = self:getFullCode(),
family = self:getFamilyCode(),
protoLanguage = self:getProtoLanguageCode(),
aliases = self:getAliases(),
varieties = self:getVarieties(),
otherNames = self:getOtherNames(),
type = keys_to_list(self:getTypes()),
wikidataItem = self:getWikidataItem(),
wikipediaArticle = self:getWikipediaArticle(true),
}
-- Use `deep_copy` when returning a table, so that there are no editing restrictions imposed by `mw.loadData`.
return opts and opts.lua_table and deep_copy(ret) or to_json(ret, opts)
end
function Family:getData()
return self._data
end
function export.makeObject(code, data)
local data_type = type(data)
if data_type ~= "table" then
error(("bad argument #2 to 'makeObject' (table expected, got %s)"):format(data_type))
end
return setmetatable({_data = data, _code = code, _fullCode = code}, Family)
end
make_object = export.makeObject
--[==[
Finds the family whose code matches the one provided. If it exists, it returns a {Family} object representing the
family. Otherwise, it returns {nil}.]==]
function export.getByCode(code)
local data = (families_data or get_families_data())[code]
if data == nil then
return nil
elseif data.parent == nil then
return make_object(code, data)
end
return make_lang_object(code, data)
end
get_by_code = export.getByCode
--[==[
Look for the family whose canonical name (the name used to represent that family on Wiktionary) matches the one
provided. If it exists, it returns a {Family} object representing the family. Otherwise, it returns {nil}. The
canonical name of families should always be unique (it is an error for two families on Wiktionary to share the same
canonical name), so this is guaranteed to give at most one result.]==]
function export.getByCanonicalName(name)
if name == nil then
return nil
end
local code = (families_by_name or get_families_by_name())[name]
if code == nil then
return nil
end
return get_by_code(code)
end
--[==[
Look for the family whose category name (the name used in categories for that family) matches the one provided.
If it exists, it returns a {Family} object representing the family. Otherwise, it returns {nil}. In almost all cases,
the category name for a family is its canonical name plus the word "languages", e.g. "Indo-European" has the category
name "Indo-European languages". Where a canonical name ends with "languages" or "lects", the category name is identical
to the canonical name.]==]
function export.getByCategoryName(name)
if name == nil then
return nil
end
local code = category_name_to_code(
"Bahasa-bahasa ",
name,
families_by_name or get_families_by_name(),
families_suffixes or get_families_suffixes()
)
if code == nil then
return nil
end
return get_by_code(code)
end
return export
lp41of58b16zbihefapfa0rt7dd1qf1
373537
373476
2026-09-11T08:50:47Z
Hakimi97
2668
373537
Scribunto
text/plain
local export = {}
local families_by_name_module = "Module:families/canonical names"
local families_data_module = "Module:families/data"
local json_module = "Module:JSON"
local language_like_module = "Module:language-like"
local languages_module = "Module:languages"
local load_module = "Module:load"
local table_module = "Module:table"
local get_by_code -- Defined below.
local gmatch = string.gmatch
local insert = table.insert
local ipairs = ipairs
local make_object -- Defined below.
local pairs = pairs
local require = require
local setmetatable = setmetatable
local type = type
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function category_name_has_suffix(...)
category_name_has_suffix = require(language_like_module).categoryNameHasSuffix
return category_name_has_suffix(...)
end
local function category_name_to_code(...)
category_name_to_code = require(language_like_module).categoryNameToCode
return category_name_to_code(...)
end
local function deep_copy(...)
deep_copy = require(table_module).deepCopy
return deep_copy(...)
end
local function get_lang(...)
get_lang = require(languages_module).getByCode
return get_lang(...)
end
local function keys_to_list(...)
keys_to_list = require(table_module).keysToList
return keys_to_list(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function make_lang_object(...)
make_lang_object = require(languages_module).makeObject
return make_lang_object(...)
end
local function to_json(...)
to_json = require(json_module).toJSON
return to_json(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local families_by_name
local function get_families_by_name()
families_by_name, get_families_by_name = load_data(families_by_name_module), nil
return families_by_name
end
local families_data
local function get_families_data()
families_data, get_families_data = load_data(families_data_module), nil
return families_data
end
local families_suffixes
local function get_families_suffixes()
families_suffixes, get_families_suffixes = {
"Bahasa-bahasa",
"Lek-lek"
}, nil
return families_suffixes
end
local Family = {}
Family.__index = Family
--[==[
Return the family code of the family, e.g. {"ine"} for the Indo-European languages.
]==]
function Family:getCode()
return self._code
end
--[==[
Return the canonical name of the family. This is the name used to represent that language family on Wiktionary,
and is guaranteed to be unique to that family alone. Example: {"Indo-European"} for the Indo-European languages.
]==]
function Family:getCanonicalName()
local name = self._name
if name == nil then
name = self._data[1]
self._name = name
end
return name
end
--[==[
Return the display form of the family. For families, this is usually the same as the value returned by
{getCategoryName("nocap")}, i.e. it reads <code>"<var>name</var> languages"</code> (e.g.
{"Indo-Iranian languages"}). For full and etymology-only languages, this is the same as the canonical name, and
for scripts, it reads <code>"<var>name</var> script"</code> (e.g. {"Arabic script"}). The displayed text used in
{makeCategoryLink()} is always the same as the display form.
]==]
function Family:getDisplayForm()
local name = self._data[1]
if category_name_has_suffix(name, families_suffixes or get_families_suffixes()) then
name = "Bahasa-bahasa " .. name
end
return name
end
function Family:getAliases()
Family.getAliases = require(language_like_module).getAliases
return self:getAliases()
end
function Family:getVarieties(flatten)
Family.getVarieties = require(language_like_module).getVarieties
return self:getVarieties(flatten)
end
function Family:getOtherNames()
Family.getOtherNames = require(language_like_module).getOtherNames
return self:getOtherNames()
end
function Family:getAllNames()
Family.getAllNames = require(language_like_module).getAllNames
return self:getAllNames()
end
--[==[Returns a table of types as a lookup table (with the types as keys).
The possible types are
* {family}: This object is a family.
* {full}: This object is a "full" family. This includes all families but a couple of etymology-only
families for Old and Middle Iranian languages.
* {etymology-only}: This object is an etymology-only family, similar to etymology-only languages. There
are currently only two such families, for Old Iranian languages and Middle Iranian
languages (which do not represent proper clades and have no proto-languages, hence
cannot be full families).
]==]
function Family:getTypes()
local types = self._types
if types == nil then
types = {family = true}
if self:getFullCode() == self:getCode() then
types.full = true
else
types["etymology-only"] = true
end
local rawtypes = self._data.type
if rawtypes then
for t in gmatch(rawtypes, "[^,]+") do
types[t] = true
end
end
self._types = types
end
return types
end
--[==[Given a list of types as strings, returns true if the family has all of them.]==]
function Family:hasType(...)
Family.hasType = require(language_like_module).hasType
return self:hasType(...)
end
--[==[Returns a {Family} object for the superfamily that the family belongs to.]==]
function Family:getFamily()
if self._familyObject == nil then
local familyCode = self:getFamilyCode()
if familyCode then
self._familyObject = get_by_code(familyCode)
else
self._familyObject = false
end
end
return self._familyObject or nil
end
--[==[Returns the code of the family's superfamily.]==]
function Family:getFamilyCode()
if not self._familyCode then
self._familyCode = self._data[3]
end
return self._familyCode
end
--[==[Returns the canonical name of the family's superfamily.]==]
function Family:getFamilyName()
if self._familyName == nil then
local family = self:getFamily()
if family then
self._familyName = family:getCanonicalName()
else
self._familyName = false
end
end
return self._familyName or nil
end
--[==[Check whether the family belongs to {superfamily} (which can be a family code or object), and returns a boolean. If more than one is given, returns {true} if the family belongs to any of them. A family is '''not''' considered to belong to itself.]==]
function Family:inFamily(...)
for _, superfamily in ipairs{...} do
if type(superfamily) == "table" then
superfamily = superfamily:getCode()
end
local family, code = self:getFamily()
while family do
code = family:getCode()
if code == superfamily then
return true
end
family = family:getFamily()
-- If family is parent to itself, return false.
if family and family:getCode() == code then
return false
end
end
return false
end
end
function Family:getParent()
if self._parentObject == nil then
local parentCode = self:getParentCode()
if parentCode then
self._parentObject = get_lang(parentCode, nil, true, true)
else
self._parentObject = false
end
end
return self._parentObject or nil
end
function Family:getParentCode()
if not self._parentCode then
self._parentCode = self._data.parent
end
return self._parentCode
end
function Family:getParentName()
if self._parentName == nil then
local parent = self:getParent()
if parent then
self._parentName = parent:getCanonicalName()
else
self._parentName = false
end
end
return self._parentName or nil
end
function Family:getParentChain()
if not self._parentChain then
self._parentChain = {}
local parent = self:getParent()
while parent do
insert(self._parentChain, parent)
parent = parent:getParent()
end
end
return self._parentChain
end
function Family:hasParent(...)
--checkObject("family", nil, ...)
for _, other_family in ipairs{...} do
for _, parent in ipairs(self:getParentChain()) do
if type(other_family) == "string" then
if other_family == parent:getCode() then return true end
else
if other_family:getCode() == parent:getCode() then return true end
end
end
end
return false
end
--[==[
If the family is etymology-only, this iterates through its parents until a full family is found, and the
corresponding object is returned. If the family is a full family, then it simply returns itself.
]==]
function Family:getFull()
if not self._fullObject then
local fullCode = self:getFullCode()
if fullCode ~= self:getCode() then
self._fullObject = get_lang(fullCode, nil, nil, true)
else
self._fullObject = self
end
end
return self._fullObject
end
--[==[
If the family is etymology-only, this iterates through its parents until a full family is found, and the
corresponding code is returned. If the family is a full family, then it simply returns the family code.
]==]
function Family:getFullCode()
return self._fullCode or self:getCode()
end
--[==[
If the family is etymology-only, this iterates through its parents until a full family is found, and the
corresponding canonical name is returned. If the family is a full family, then it simply returns the canonical name
of the family.
]==]
function Family:getFullName()
if self._fullName == nil then
local full = self:getFull()
if full then
self._fullName = full:getCanonicalName()
else
self._fullName = false
end
end
return self._fullName or nil
end
--[==[
Return a {Language} object (see [[Module:languages]]) for the proto-language of this family, if one exists.
Otherwise, return {nil}.
]==]
function Family:getProtoLanguage()
if self._protoLanguageObject == nil then
self._protoLanguageObject = get_lang(self._data.protoLanguage or self:getCode() .. "-pro", nil, true) or false
end
return self._protoLanguageObject or nil
end
function Family:getProtoLanguageCode()
if self._protoLanguageCode == nil then
local protoLanguage = self:getProtoLanguage()
self._protoLanguageCode = protoLanguage and protoLanguage:getCode() or false
end
return self._protoLanguageCode or nil
end
function Family:getProtoLanguageName()
if not self._protoLanguageName then
self._protoLanguageName = self:getProtoLanguage():getCanonicalName()
end
return self._protoLanguageName
end
function Family:hasAncestor(...)
-- Go up the family tree until a protolanguage is found.
local family = self
local protolang = family:getProtoLanguage()
while not protolang do
family = family:getFamily()
protolang = family:getProtoLanguage()
-- Return false if the family is its own family, to avoid an infinite loop.
if family:getFamilyCode() == family:getCode() then
return false
end
end
-- If the protolanguage is not in the family, it must therefore be ancestral to it. Check if it is a match.
for _, otherlang in ipairs{...} do
if (
type(otherlang) == "string" and protolang:getCode() == otherlang or
type(otherlang) == "table" and protolang:getCode() == otherlang:getCode()
) and not protolang:inFamily(self) then
return true
end
end
-- If not, check the protolanguage's ancestry.
return protolang:hasAncestor(...)
end
local function fetch_descendants(self, format)
local languages = require("Module:languages/code to canonical name")
local etymology_languages = require("Module:etymology languages/code to canonical name")
local families = require("Module:families/code to canonical name")
local descendants = {}
-- Iterate over all three datasets.
for _, data in ipairs{languages, etymology_languages, families} do
for code in pairs(data) do
local lang = get_lang(code, nil, true, true)
if lang:inFamily(self) then
if format == "object" then
insert(descendants, lang)
elseif format == "code" then
insert(descendants, code)
elseif format == "name" then
insert(descendants, lang:getCanonicalName())
end
end
end
end
return descendants
end
function Family:getDescendants()
if not self._descendantObjects then
self._descendantObjects = fetch_descendants(self, "object")
end
return self._descendantObjects
end
function Family:getDescendantCodes()
if not self._descendantCodes then
self._descendantCodes = fetch_descendants(self, "code")
end
return self._descendantCodes
end
function Family:getDescendantNames()
if not self._descendantNames then
self._descendantNames = fetch_descendants(self, "name")
end
return self._descendantNames
end
function Family:hasDescendant(...)
for _, lang in ipairs{...} do
if type(lang) == "string" then
lang = get_lang(lang, nil, true)
end
if lang:inFamily(self) then
return true
end
end
return false
end
--[==[
Return the name of the main category of that family. Example: {"Germanic languages"} for the Germanic languages,
whose category is at [[:Kategori:Germanic languages]].
Unless optional argument `nocap` is given, the family name at the beginning of the returned value will be
capitalized. This capitalization is correct for category names, but not if the family name is lowercase and
the returned value of this function is used in the middle of a sentence. (For example, the pseudo-family with
the code {qfa-mix} has the name {"mixed"}, which should remain lowercase when used as part of the category name
[[:Kategori:Terms derived from mixed languages]] but should be capitalized in [[:Kategori:Mixed languages]].)
If you are considering using {getCategoryName("nocap")}, use {getDisplayForm()} instead.
]==]
function Family:getCategoryName(nocap)
local name = self._data.categoryName or self:getDisplayForm()
if not nocap then
name = mw.getContentLanguage():ucfirst(name)
end
return name
end
function Family:makeCategoryLink()
return "[[:Kategori:" .. self:getCategoryName() .. "|" .. self:getDisplayForm() .. "]]"
end
--[==[Returns the Wikidata item id for the family or <code>nil</code>. This corresponds to the the second field in the data modules.]==]
function Family:getWikidataItem()
Family.getWikidataItem = require(language_like_module).getWikidataItem
return self:getWikidataItem()
end
--[==[
Returns the name of the Wikipedia article for the family. `project` specifies the language and project to retrieve
the article from, defaulting to {"enwiki"} for the English Wikipedia. Normally if specified it should be the project
code for a specific-language Wikipedia e.g. "zhwiki" for the Chinese Wikipedia, but it can be any project, including
non-Wikipedia ones. If the project is the English Wikipedia and the property {wikipedia_article} is present in the data
module it will be used first. In all other cases, a sitelink will be generated from {:getWikidataItem} (if set). The
resulting value (or lack of value) is cached so that subsequent calls are fast. If no value could be determined, and
`noCategoryFallback` is {false}, {:getCategoryName} is used as fallback; otherwise, {nil} is returned. Note that if
`noCategoryFallback` is {nil} or omitted, it defaults to {false} if the project is the English Wikipedia, otherwise
to {true}. In other words, under normal circumstances, if the English Wikipedia article couldn't be retrieved, the
return value will fall back to a link to the family's category, but this won't normally happen for any other project.
]==]
function Family:getWikipediaArticle(noCategoryFallback, project)
Family.getWikipediaArticle = require(language_like_module).getWikipediaArticle
return self:getWikipediaArticle(noCategoryFallback, project)
end
function Family:makeWikipediaLink()
return "[[w:" .. self:getWikipediaArticle() .. "|" .. self:getCanonicalName() .. "]]"
end
--[==[Returns the name of the Wikimedia Commons category page for the family.]==]
function Family:getCommonsCategory()
Family.getCommonsCategory = require(language_like_module).getCommonsCategory
return self:getCommonsCategory()
end
function Family:toJSON(opts)
local ret = {
canonicalName = self:getCanonicalName(),
categoryName = self:getCategoryName("nocap"),
code = self:getCode(),
parent = self:getParentCode(),
full = self:getFullCode(),
family = self:getFamilyCode(),
protoLanguage = self:getProtoLanguageCode(),
aliases = self:getAliases(),
varieties = self:getVarieties(),
otherNames = self:getOtherNames(),
type = keys_to_list(self:getTypes()),
wikidataItem = self:getWikidataItem(),
wikipediaArticle = self:getWikipediaArticle(true),
}
-- Use `deep_copy` when returning a table, so that there are no editing restrictions imposed by `mw.loadData`.
return opts and opts.lua_table and deep_copy(ret) or to_json(ret, opts)
end
function Family:getData()
return self._data
end
function export.makeObject(code, data)
local data_type = type(data)
if data_type ~= "table" then
error(("bad argument #2 to 'makeObject' (table expected, got %s)"):format(data_type))
end
return setmetatable({_data = data, _code = code, _fullCode = code}, Family)
end
make_object = export.makeObject
--[==[
Finds the family whose code matches the one provided. If it exists, it returns a {Family} object representing the
family. Otherwise, it returns {nil}.]==]
function export.getByCode(code)
local data = (families_data or get_families_data())[code]
if data == nil then
return nil
elseif data.parent == nil then
return make_object(code, data)
end
return make_lang_object(code, data)
end
get_by_code = export.getByCode
--[==[
Look for the family whose canonical name (the name used to represent that family on Wiktionary) matches the one
provided. If it exists, it returns a {Family} object representing the family. Otherwise, it returns {nil}. The
canonical name of families should always be unique (it is an error for two families on Wiktionary to share the same
canonical name), so this is guaranteed to give at most one result.]==]
function export.getByCanonicalName(name)
if name == nil then
return nil
end
local code = (families_by_name or get_families_by_name())[name]
if code == nil then
return nil
end
return get_by_code(code)
end
--[==[
Look for the family whose category name (the name used in categories for that family) matches the one provided.
If it exists, it returns a {Family} object representing the family. Otherwise, it returns {nil}. In almost all cases,
the category name for a family is its canonical name plus the word "languages", e.g. "Indo-European" has the category
name "Indo-European languages". Where a canonical name ends with "languages" or "lects", the category name is identical
to the canonical name.]==]
function export.getByCategoryName(name)
if name == nil then
return nil
end
local code = category_name_to_code(
"[Bb]ahasa%-bahasa ",
name,
families_by_name or get_families_by_name(),
families_suffixes or get_families_suffixes()
)
if code == nil then
return nil
end
return get_by_code(code)
end
return export
g148h4o6g8it6h9qj2sx3e5s09jhhvw
373542
373537
2026-09-11T09:55:40Z
Hakimi97
2668
373542
Scribunto
text/plain
local export = {}
local families_by_name_module = "Module:families/canonical names"
local families_data_module = "Module:families/data"
local json_module = "Module:JSON"
local language_like_module = "Module:language-like"
local languages_module = "Module:languages"
local load_module = "Module:load"
local table_module = "Module:table"
local get_by_code -- Defined below.
local gmatch = string.gmatch
local insert = table.insert
local ipairs = ipairs
local make_object -- Defined below.
local pairs = pairs
local require = require
local setmetatable = setmetatable
local type = type
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function category_name_has_suffix(...)
category_name_has_suffix = require(language_like_module).categoryNameHasSuffix
return category_name_has_suffix(...)
end
local function category_name_to_code(...)
category_name_to_code = require(language_like_module).categoryNameToCode
return category_name_to_code(...)
end
local function deep_copy(...)
deep_copy = require(table_module).deepCopy
return deep_copy(...)
end
local function get_lang(...)
get_lang = require(languages_module).getByCode
return get_lang(...)
end
local function keys_to_list(...)
keys_to_list = require(table_module).keysToList
return keys_to_list(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function make_lang_object(...)
make_lang_object = require(languages_module).makeObject
return make_lang_object(...)
end
local function to_json(...)
to_json = require(json_module).toJSON
return to_json(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local families_by_name
local function get_families_by_name()
families_by_name, get_families_by_name = load_data(families_by_name_module), nil
return families_by_name
end
local families_data
local function get_families_data()
families_data, get_families_data = load_data(families_data_module), nil
return families_data
end
local families_suffixes
local function get_families_suffixes()
families_suffixes, get_families_suffixes = {
"Bahasa-bahasa",
"Lek-lek"
}, nil
return families_suffixes
end
local Family = {}
Family.__index = Family
--[==[
Return the family code of the family, e.g. {"ine"} for the Indo-European languages.
]==]
function Family:getCode()
return self._code
end
--[==[
Return the canonical name of the family. This is the name used to represent that language family on Wiktionary,
and is guaranteed to be unique to that family alone. Example: {"Indo-European"} for the Indo-European languages.
]==]
function Family:getCanonicalName()
local name = self._name
if name == nil then
name = self._data[1]
self._name = name
end
return name
end
--[==[
Return the display form of the family. For families, this is usually the same as the value returned by
{getCategoryName("nocap")}, i.e. it reads <code>"<var>name</var> languages"</code> (e.g.
{"Indo-Iranian languages"}). For full and etymology-only languages, this is the same as the canonical name, and
for scripts, it reads <code>"<var>name</var> script"</code> (e.g. {"Arabic script"}). The displayed text used in
{makeCategoryLink()} is always the same as the display form.
]==]
function Family:getDisplayForm()
local name = self._data[1]
if category_name_has_suffix(name, families_suffixes or get_families_suffixes()) then
name = "Bahasa-bahasa " .. name
end
return name
end
function Family:getAliases()
Family.getAliases = require(language_like_module).getAliases
return self:getAliases()
end
function Family:getVarieties(flatten)
Family.getVarieties = require(language_like_module).getVarieties
return self:getVarieties(flatten)
end
function Family:getOtherNames()
Family.getOtherNames = require(language_like_module).getOtherNames
return self:getOtherNames()
end
function Family:getAllNames()
Family.getAllNames = require(language_like_module).getAllNames
return self:getAllNames()
end
--[==[Returns a table of types as a lookup table (with the types as keys).
The possible types are
* {family}: This object is a family.
* {full}: This object is a "full" family. This includes all families but a couple of etymology-only
families for Old and Middle Iranian languages.
* {etymology-only}: This object is an etymology-only family, similar to etymology-only languages. There
are currently only two such families, for Old Iranian languages and Middle Iranian
languages (which do not represent proper clades and have no proto-languages, hence
cannot be full families).
]==]
function Family:getTypes()
local types = self._types
if types == nil then
types = {family = true}
if self:getFullCode() == self:getCode() then
types.full = true
else
types["etymology-only"] = true
end
local rawtypes = self._data.type
if rawtypes then
for t in gmatch(rawtypes, "[^,]+") do
types[t] = true
end
end
self._types = types
end
return types
end
--[==[Given a list of types as strings, returns true if the family has all of them.]==]
function Family:hasType(...)
Family.hasType = require(language_like_module).hasType
return self:hasType(...)
end
--[==[Returns a {Family} object for the superfamily that the family belongs to.]==]
function Family:getFamily()
if self._familyObject == nil then
local familyCode = self:getFamilyCode()
if familyCode then
self._familyObject = get_by_code(familyCode)
else
self._familyObject = false
end
end
return self._familyObject or nil
end
--[==[Returns the code of the family's superfamily.]==]
function Family:getFamilyCode()
if not self._familyCode then
self._familyCode = self._data[3]
end
return self._familyCode
end
--[==[Returns the canonical name of the family's superfamily.]==]
function Family:getFamilyName()
if self._familyName == nil then
local family = self:getFamily()
if family then
self._familyName = family:getCanonicalName()
else
self._familyName = false
end
end
return self._familyName or nil
end
--[==[Check whether the family belongs to {superfamily} (which can be a family code or object), and returns a boolean. If more than one is given, returns {true} if the family belongs to any of them. A family is '''not''' considered to belong to itself.]==]
function Family:inFamily(...)
for _, superfamily in ipairs{...} do
if type(superfamily) == "table" then
superfamily = superfamily:getCode()
end
local family, code = self:getFamily()
while family do
code = family:getCode()
if code == superfamily then
return true
end
family = family:getFamily()
-- If family is parent to itself, return false.
if family and family:getCode() == code then
return false
end
end
return false
end
end
function Family:getParent()
if self._parentObject == nil then
local parentCode = self:getParentCode()
if parentCode then
self._parentObject = get_lang(parentCode, nil, true, true)
else
self._parentObject = false
end
end
return self._parentObject or nil
end
function Family:getParentCode()
if not self._parentCode then
self._parentCode = self._data.parent
end
return self._parentCode
end
function Family:getParentName()
if self._parentName == nil then
local parent = self:getParent()
if parent then
self._parentName = parent:getCanonicalName()
else
self._parentName = false
end
end
return self._parentName or nil
end
function Family:getParentChain()
if not self._parentChain then
self._parentChain = {}
local parent = self:getParent()
while parent do
insert(self._parentChain, parent)
parent = parent:getParent()
end
end
return self._parentChain
end
function Family:hasParent(...)
--checkObject("family", nil, ...)
for _, other_family in ipairs{...} do
for _, parent in ipairs(self:getParentChain()) do
if type(other_family) == "string" then
if other_family == parent:getCode() then return true end
else
if other_family:getCode() == parent:getCode() then return true end
end
end
end
return false
end
--[==[
If the family is etymology-only, this iterates through its parents until a full family is found, and the
corresponding object is returned. If the family is a full family, then it simply returns itself.
]==]
function Family:getFull()
if not self._fullObject then
local fullCode = self:getFullCode()
if fullCode ~= self:getCode() then
self._fullObject = get_lang(fullCode, nil, nil, true)
else
self._fullObject = self
end
end
return self._fullObject
end
--[==[
If the family is etymology-only, this iterates through its parents until a full family is found, and the
corresponding code is returned. If the family is a full family, then it simply returns the family code.
]==]
function Family:getFullCode()
return self._fullCode or self:getCode()
end
--[==[
If the family is etymology-only, this iterates through its parents until a full family is found, and the
corresponding canonical name is returned. If the family is a full family, then it simply returns the canonical name
of the family.
]==]
function Family:getFullName()
if self._fullName == nil then
local full = self:getFull()
if full then
self._fullName = full:getCanonicalName()
else
self._fullName = false
end
end
return self._fullName or nil
end
--[==[
Return a {Language} object (see [[Module:languages]]) for the proto-language of this family, if one exists.
Otherwise, return {nil}.
]==]
function Family:getProtoLanguage()
if self._protoLanguageObject == nil then
self._protoLanguageObject = get_lang(self._data.protoLanguage or self:getCode() .. "-pro", nil, true) or false
end
return self._protoLanguageObject or nil
end
function Family:getProtoLanguageCode()
if self._protoLanguageCode == nil then
local protoLanguage = self:getProtoLanguage()
self._protoLanguageCode = protoLanguage and protoLanguage:getCode() or false
end
return self._protoLanguageCode or nil
end
function Family:getProtoLanguageName()
if not self._protoLanguageName then
self._protoLanguageName = self:getProtoLanguage():getCanonicalName()
end
return self._protoLanguageName
end
function Family:hasAncestor(...)
-- Go up the family tree until a protolanguage is found.
local family = self
local protolang = family:getProtoLanguage()
while not protolang do
family = family:getFamily()
protolang = family:getProtoLanguage()
-- Return false if the family is its own family, to avoid an infinite loop.
if family:getFamilyCode() == family:getCode() then
return false
end
end
-- If the protolanguage is not in the family, it must therefore be ancestral to it. Check if it is a match.
for _, otherlang in ipairs{...} do
if (
type(otherlang) == "string" and protolang:getCode() == otherlang or
type(otherlang) == "table" and protolang:getCode() == otherlang:getCode()
) and not protolang:inFamily(self) then
return true
end
end
-- If not, check the protolanguage's ancestry.
return protolang:hasAncestor(...)
end
local function fetch_descendants(self, format)
local languages = require("Module:languages/code to canonical name")
local etymology_languages = require("Module:etymology languages/code to canonical name")
local families = require("Module:families/code to canonical name")
local descendants = {}
-- Iterate over all three datasets.
for _, data in ipairs{languages, etymology_languages, families} do
for code in pairs(data) do
local lang = get_lang(code, nil, true, true)
if lang:inFamily(self) then
if format == "object" then
insert(descendants, lang)
elseif format == "code" then
insert(descendants, code)
elseif format == "name" then
insert(descendants, lang:getCanonicalName())
end
end
end
end
return descendants
end
function Family:getDescendants()
if not self._descendantObjects then
self._descendantObjects = fetch_descendants(self, "object")
end
return self._descendantObjects
end
function Family:getDescendantCodes()
if not self._descendantCodes then
self._descendantCodes = fetch_descendants(self, "code")
end
return self._descendantCodes
end
function Family:getDescendantNames()
if not self._descendantNames then
self._descendantNames = fetch_descendants(self, "name")
end
return self._descendantNames
end
function Family:hasDescendant(...)
for _, lang in ipairs{...} do
if type(lang) == "string" then
lang = get_lang(lang, nil, true)
end
if lang:inFamily(self) then
return true
end
end
return false
end
--[==[
Return the name of the main category of that family. Example: {"Germanic languages"} for the Germanic languages,
whose category is at [[:Kategori:Germanic languages]].
Unless optional argument `nocap` is given, the family name at the beginning of the returned value will be
capitalized. This capitalization is correct for category names, but not if the family name is lowercase and
the returned value of this function is used in the middle of a sentence. (For example, the pseudo-family with
the code {qfa-mix} has the name {"mixed"}, which should remain lowercase when used as part of the category name
[[:Kategori:Terms derived from mixed languages]] but should be capitalized in [[:Kategori:Mixed languages]].)
If you are considering using {getCategoryName("nocap")}, use {getDisplayForm()} instead.
]==]
function Family:getCategoryName(nocap)
local name = self._data.categoryName or self:getDisplayForm()
if not nocap then
name = mw.getContentLanguage():ucfirst(name)
end
return name
end
function Family:makeCategoryLink()
return "[[:Kategori:" .. self:getCategoryName() .. "|" .. self:getDisplayForm() .. "]]"
end
--[==[Returns the Wikidata item id for the family or <code>nil</code>. This corresponds to the the second field in the data modules.]==]
function Family:getWikidataItem()
Family.getWikidataItem = require(language_like_module).getWikidataItem
return self:getWikidataItem()
end
--[==[
Returns the name of the Wikipedia article for the family. `project` specifies the language and project to retrieve
the article from, defaulting to {"enwiki"} for the English Wikipedia. Normally if specified it should be the project
code for a specific-language Wikipedia e.g. "zhwiki" for the Chinese Wikipedia, but it can be any project, including
non-Wikipedia ones. If the project is the English Wikipedia and the property {wikipedia_article} is present in the data
module it will be used first. In all other cases, a sitelink will be generated from {:getWikidataItem} (if set). The
resulting value (or lack of value) is cached so that subsequent calls are fast. If no value could be determined, and
`noCategoryFallback` is {false}, {:getCategoryName} is used as fallback; otherwise, {nil} is returned. Note that if
`noCategoryFallback` is {nil} or omitted, it defaults to {false} if the project is the English Wikipedia, otherwise
to {true}. In other words, under normal circumstances, if the English Wikipedia article couldn't be retrieved, the
return value will fall back to a link to the family's category, but this won't normally happen for any other project.
]==]
function Family:getWikipediaArticle(noCategoryFallback, project)
Family.getWikipediaArticle = require(language_like_module).getWikipediaArticle
return self:getWikipediaArticle(noCategoryFallback, project)
end
function Family:makeWikipediaLink()
return "[[w:" .. self:getWikipediaArticle() .. "|" .. self:getCanonicalName() .. "]]"
end
--[==[Returns the name of the Wikimedia Commons category page for the family.]==]
function Family:getCommonsCategory()
Family.getCommonsCategory = require(language_like_module).getCommonsCategory
return self:getCommonsCategory()
end
function Family:toJSON(opts)
local ret = {
canonicalName = self:getCanonicalName(),
categoryName = self:getCategoryName("nocap"),
code = self:getCode(),
parent = self:getParentCode(),
full = self:getFullCode(),
family = self:getFamilyCode(),
protoLanguage = self:getProtoLanguageCode(),
aliases = self:getAliases(),
varieties = self:getVarieties(),
otherNames = self:getOtherNames(),
type = keys_to_list(self:getTypes()),
wikidataItem = self:getWikidataItem(),
wikipediaArticle = self:getWikipediaArticle(true),
}
-- Use `deep_copy` when returning a table, so that there are no editing restrictions imposed by `mw.loadData`.
return opts and opts.lua_table and deep_copy(ret) or to_json(ret, opts)
end
function Family:getData()
return self._data
end
function export.makeObject(code, data)
local data_type = type(data)
if data_type ~= "table" then
error(("bad argument #2 to 'makeObject' (table expected, got %s)"):format(data_type))
end
return setmetatable({_data = data, _code = code, _fullCode = code}, Family)
end
make_object = export.makeObject
--[==[
Finds the family whose code matches the one provided. If it exists, it returns a {Family} object representing the
family. Otherwise, it returns {nil}.]==]
function export.getByCode(code)
local data = (families_data or get_families_data())[code]
if data == nil then
return nil
elseif data.parent == nil then
return make_object(code, data)
end
return make_lang_object(code, data)
end
get_by_code = export.getByCode
--[==[
Look for the family whose canonical name (the name used to represent that family on Wiktionary) matches the one
provided. If it exists, it returns a {Family} object representing the family. Otherwise, it returns {nil}. The
canonical name of families should always be unique (it is an error for two families on Wiktionary to share the same
canonical name), so this is guaranteed to give at most one result.]==]
function export.getByCanonicalName(name)
if name == nil then
return nil
end
local code = (families_by_name or get_families_by_name())[name]
if code == nil then
return nil
end
return get_by_code(code)
end
--[==[
Look for the family whose category name (the name used in categories for that family) matches the one provided.
If it exists, it returns a {Family} object representing the family. Otherwise, it returns {nil}. In almost all cases,
the category name for a family is its canonical name plus the word "languages", e.g. "Indo-European" has the category
name "Indo-European languages". Where a canonical name ends with "languages" or "lects", the category name is identical
to the canonical name.]==]
function export.getByCategoryName(name)
if name == nil then
return nil
end
local code = category_name_to_code(
name,
"[Bb]ahasa%-bahasa ",
families_by_name or get_families_by_name(),
families_suffixes or get_families_suffixes()
)
if code == nil then
return nil
end
return get_by_code(code)
end
return export
ta7jhdzqb5mscayx3cbkl5cv2ytvo38
Modul:script utilities
828
9742
373505
231872
2026-09-10T20:51:08Z
SNN95
2113
letak dulu, terjemah kemudian
373505
Scribunto
text/plain
local export = {}
local anchors_module = "Module:anchors"
local debug_track_module = "Module:debug/track"
local links_module = "Module:links"
local munge_text_module = "Module:munge text"
local parameters_module = "Module:parameters"
local scripts_module = "Module:scripts"
local string_utilities_module = "Module:string utilities"
local utilities_module = "Module:utilities"
local concat = table.concat
local insert = table.insert
local require = require
local toNFD = mw.ustring.toNFD
local dump = mw.dumpObject
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function embedded_language_links(...)
embedded_language_links = require(links_module).embedded_language_links
return embedded_language_links(...)
end
local function find_best_script_without_lang(...)
find_best_script_without_lang = require(scripts_module).findBestScriptWithoutLang
return find_best_script_without_lang(...)
end
local function format_categories(...)
format_categories = require(utilities_module).format_categories
return format_categories(...)
end
local function get_script(...)
get_script = require(scripts_module).getByCode
return get_script(...)
end
local function language_anchor(...)
language_anchor = require(anchors_module).language_anchor
return language_anchor(...)
end
local function munge_text(...)
munge_text = require(munge_text_module)
return munge_text(...)
end
local function process_params(...)
process_params = require(parameters_module).process
return process_params(...)
end
local function track(...)
track = require(debug_track_module)
return track(...)
end
local function u(...)
u = require(string_utilities_module).char
return u(...)
end
local function ugsub(...)
ugsub = require(string_utilities_module).gsub
return ugsub(...)
end
local function umatch(...)
umatch = require(string_utilities_module).match
return umatch(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local m_data
local function get_data()
m_data, get_data = mw.loadData("Module:script utilities/data"), nil
return m_data
end
--[=[
Modules used:
[[Module:script utilities/data]]
[[Module:scripts]]
[[Module:anchors]] (only when IDs present)
[[Module:string utilities]] (only when hyphens in Korean text or spaces in vertical text)
[[Module:languages]]
[[Module:parameters]]
[[Module:utilities]]
[[Module:debug/track]]
]=]
function export.is_Latin_script(sc)
-- Latn, Latf, Latg, pjt-Latn
return sc:getCode():find("Lat") and true or false
end
--[==[{{temp|#invoke:script utilities|lang_t}}
This is used by {{temp|lang}} to wrap portions of text in a language tag. See there for more information.]==]
do
local function get_args(frame)
return process_params(frame:getParent().args, {
[1] = {required = true, type = "language", default = "und"},
[2] = {required = true, allow_empty = true, default = ""},
["sc"] = {type = "script"},
["face"] = true,
["class"] = true,
})
end
function export.lang_t(frame)
local args = get_args(frame)
local lang = args[1]
local sc = args["sc"]
local text = args[2]
local cats = {}
if sc then
-- Track uses of sc parameter.
if sc:getCode() == lang:findBestScript(text):getCode() then
insert(cats, "Istilah dengan kod tulisan lewah bahasa " .. lang:getFullName() )
else
insert(cats, "Istilah dengan kod tulisan manual tidak lewah bahasa " .. lang:getFullName() )
end
else
sc = lang:findBestScript(text)
end
text = embedded_language_links{
term = text,
lang = lang,
sc = sc
}
cats = #cats > 0 and format_categories(cats, lang, "-", nil, nil, sc) or ""
local face = args["face"]
local class = args["class"]
return export.tag_text(text, lang, sc, face, class) .. cats
end
end
-- Ustring turns on the codepoint-aware string matching. The basic string function
-- should be used for simple sequences of characters, Ustring function for
-- sets – [].
local function trackPattern(text, pattern, tracking)
if pattern and umatch(text, pattern) then
track("script/" .. tracking)
end
end
local function track_text(text, lang, sc)
if lang and text then
local langCode = lang:getFullCode()
-- [[Special:WhatLinksHere/Wiktionary:Tracking/script/ang/acute]]
if langCode == "ang" then
local decomposed = toNFD(text)
local acute = u(0x301)
trackPattern(decomposed, acute, "ang/acute")
--[=[
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-phi]]
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-theta]]
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-kappa]]
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Greek/wrong-rho]]
ϑ, ϰ, ϱ, ϕ should generally be replaced with θ, κ, ρ, φ.
]=]
elseif langCode == "el" or langCode == "grc" then
trackPattern(text, "ϑ", "Greek/wrong-theta")
trackPattern(text, "ϰ", "Greek/wrong-kappa")
trackPattern(text, "ϱ", "Greek/wrong-rho")
trackPattern(text, "ϕ", "Greek/wrong-phi")
--[=[
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Ancient Greek/spacing-coronis]]
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Ancient Greek/spacing-smooth-breathing]]
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Ancient Greek/wrong-apostrophe]]
When spacing coronis and spacing smooth breathing are used as apostrophes,
they should be replaced with right single quotation marks (’).
]=]
if langCode == "grc" then
trackPattern(text, u(0x1FBD), "Ancient Greek/spacing-coronis")
trackPattern(text, u(0x1FBF), "Ancient Greek/spacing-smooth-breathing")
trackPattern(text, "[" .. u(0x1FBD) .. u(0x1FBF) .. "]", "Ancient Greek/wrong-apostrophe", true)
end
-- [[Special:WhatLinksHere/Wiktionary:Tracking/script/Russian/grave-accent]]
elseif langCode == "ru" then
local decomposed = toNFD(text)
trackPattern(decomposed, u(0x300), "Russian/grave-accent")
-- [[Special:WhatLinksHere/Wiktionary:Tracking/script/Chuvash/latin-homoglyph]]
elseif langCode == "cv" then
trackPattern(text, "[ĂăĔĕÇçŸÿ]", "Chuvash/latin-homoglyph")
-- [[Special:WhatLinksHere/Wiktionary:Tracking/script/Tibetan/trailing-punctuation]]
elseif langCode == "bo" then
trackPattern(text, "[་།]$", "Tibetan/trailing-punctuation")
trackPattern(text, "[་།]%]%]$", "Tibetan/trailing-punctuation")
--[=[
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Thai/broken-ae]]
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Thai/broken-am]]
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Thai/wrong-rue-lue]]
]=]
elseif langCode == "th" then
trackPattern(text, "เ".."เ", "Thai/broken-ae")
trackPattern(text, "ํ[่้๊๋]?า", "Thai/broken-am")
trackPattern(text, "[ฤฦ]า", "Thai/wrong-rue-lue")
--[=[
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/broken-ae]]
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/broken-am]]
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/possible-broken-ho-no]]
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/possible-broken-ho-mo]]
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Lao/possible-broken-ho-lo]]
]=]
elseif langCode == "lo" then
trackPattern(text, "ເ".."ເ", "Lao/broken-ae")
trackPattern(text, "ໍ[່້໊໋]?າ", "Lao/broken-am")
trackPattern(text, "ຫນ", "Lao/possible-broken-ho-no")
trackPattern(text, "ຫມ", "Lao/possible-broken-ho-mo")
trackPattern(text, "ຫລ", "Lao/possible-broken-ho-lo")
--[=[
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Lü/broken-ae]]
[[Special:WhatLinksHere/Wiktionary:Tracking/script/Lü/possible-wrong-sequence]]
]=]
elseif langCode == "khb" then
trackPattern(text, "ᦵ".."ᦵ", "Lü/broken-ae")
trackPattern(text, "[ᦀ-ᦫ][ᦵᦶᦷᦺ]", "Lü/possible-wrong-sequence")
elseif langCode == "trk-pro" then
-- Temporary tracking while we convert the transcription scheme
munge_text(text, function(raw)
raw = mw.ustring.toNFC(raw)
-- The "old" scheme is the original, unconverted scheme. This has l/ĺ, r/ŕ, ń, ẹ/ẹ̄ (to be converted to e/ē), e/ē (to be converted to ä/ǟ).
-- The "new" scheme is the original "new" scheme to which some pages have been converted. This has l/lᶴ, r/rᶻ, nʸ, e/ē (converted from ẹ/ẹ̄), ä/ǟ (converted from e/ē).
-- The "new new" scheme is the "newest" scheme to which we appear to be converging. This has l₁/l₂ (or maybe l/l₂), r₁/r₂ (or maybe r/r₂), ń, and the remainder like the "new" scheme.
local new_or_new_new = umatch(raw, "[äǟ]") -- ǟ is one Unicode char
local unambiguous_new = raw:find("lᶴ") or raw:find("rᶻ") or raw:find("nʸ")
local unambiguous_new_new = umatch(raw, "[lr][₁₂]")
local unambiguous_old_dot_e = raw:find("ẹ") -- ẹ̄ is two Unicode characters
local unambiguous_old_lr = umatch(raw, "[ĺŕ]") -- ĺ and ŕ are one
local unambiguous_old_depending = raw:find("[lr]$") or umatch(raw, "[lr][^₁₂]")
local ambiguous_old_new = umatch(raw, "[eē]")
if new_or_new_new then
track("script/Proto-Turkic/new-or-new-new")
end
if unambiguous_new then
track("script/Proto-Turkic/unambiguous-new")
end
if unambiguous_new_new then
track("script/Proto-Turkic/unambiguous-new-new")
end
if unambiguous_old_dot_e then
track("script/Proto-Turkic/unambiguous-old-dot-e")
end
if unambiguous_old_lr then
track("script/Proto-Turkic/unambiguous-old-lr")
end
if unambiguous_old_depending then
track("script/Proto-Turkic/unambiguous-old-depending")
end
if ambiguous_old_new then
track("script/Proto-Turkic/ambiguous-old-new")
end
if new_or_new_new or unambiguous_new or unambiguous_new_new then
track("script/Proto-Turkic/any-new-or-new-new")
end
if unambiguous_old_dot_e or unambiguous_old_lr then
track("script/Proto-Turkic/unambiguous-old-dot-e-or-lr")
end
return text
end)
end
end
end
local function Kore_ruby(...)
-- Cache character sets on the first call.
local Hang_chars = get_script("Hang"):getCharacters()
local Hani_chars = get_script("Hani"):getCharacters()
-- Overwrite with the actual function, which is called directly on subsequent calls.
function Kore_ruby(txt)
return (ugsub(txt, "([%-".. Hani_chars .. "]+)%(([%-" .. Hang_chars .. "]+)%)", "<ruby>%1<rp>(</rp><rt>%2</rt><rp>)</rp></ruby>"))
end
return Kore_ruby(...)
end
--[==[Wraps the given text in HTML tags with appropriate CSS classes (see [[WT:CSS]]) for the [[Module:languages#Language objects|language]] and script. This is required for all non-English text on Wiktionary.
The actual tags and CSS classes that are added are determined by the <code>face</code> parameter. It can be one of the following:
; {{code|lua|"term"}}
: The text is wrapped in {{code|html|2=<i class="(sc) mention" lang="(lang)">...</i>}}.
; {{code|lua|"head"}}
: The text is wrapped in {{code|html|2=<strong class="(sc) headword" lang="(lang)">...</strong>}}.
; {{code|lua|"hypothetical"}}
: The text is wrapped in {{code|html|2=<span class="hypothetical-star">*</span><i class="(sc) hypothetical" lang="(lang)">...</i>}}.
; {{code|lua|"bold"}}
: The text is wrapped in {{code|html|2=<b class="(sc)" lang="(lang)">...</b>}}.
; {{code|lua|nil}}
: The text is wrapped in {{code|html|2=<span class="(sc)" lang="(lang)">...</span>}}.
The optional <code>class</code> parameter can be used to specify an additional CSS class to be added to the tag.]==]
function export.tag_text(text, lang, sc, face, class, id)
if not sc then
if lang then
sc = lang:findBestScript(text)
else
sc = find_best_script_without_lang(text)
end
end
track_text(text, lang, sc)
-- Replace space characters with newlines in Mongolian-script text, which is written top-to-bottom.
if sc:getDirection():find("vertical", nil, true) and text:find(" ", nil, true) then
text = munge_text(text, function(txt)
-- having extra parentheses makes sure only the first return value gets through
return (txt:gsub(" +", "<br>"))
end)
end
-- Hack Korean script text to remove hyphens.
-- FIXME: This should be handled in a more general fashion, but needs to
-- be efficient by not doing anything if no hyphens are present, and currently this is the only
-- language needing such processing.
-- 20220221: Also convert 漢字(한자) to ruby, instead of needing [[Template:Ruby]].
if sc:getCode() == "Kore" and text:match("[%-()g]") then
local title, display = require("Module:links").get_wikilink_parts(text, true)
if title ~= nil then -- special case that the text is a single link, do not munge and preserve affix hyphens
if lang and lang:getCode() == "okm" then -- Middle Korean code from [[User:Chom.kwoy]]
-- Comment from [[User:Lunabunn]]:
-- In Middle Korean orthography, syllable formation is phonemic as opposed to morpheme-boundary-based a la
-- modern Korean. As such, for example, if you were to write nam-i, it would be rendered as na.mi so if you
-- then put na-mi to indicate particle boundaries as in modern Korean, the hyphen would be misplaced.
-- Previously, this was alleviated by specialcasing na--mi but [[User:Theknightwho]] made that resolve to -
-- in the Hangul (previously we used to just delete all -s in Hangul processing), so it broke.
-- [[User:Chom.kwoy]] implemented a different solution, which is writing -> instead using however many >s to
-- shift the hyphen by that number of letters in the romanization.
-- By the time we are called, > signs have been converted to > by a call to encode_entities() in
-- make_link() in [[Module:links]] (near the bottom of the function).
-- 'g' in Middle Korean is a special sign to treat the following ㅇ sign as /G/ instead of null.
display = display:gsub(">", ""):gsub("g", "")
end
if display:find("<") then
display = munge_text(display, function(txt)
txt = txt:gsub("(.)%-(%-?)(.)", "%1%2%3")
return Kore_ruby(txt)
end)
else
display = display:gsub("(.)%-(%-?)(.)", "%1%2%3")
display = Kore_ruby(display)
end
text = "[[" .. title .. "|" .. display .. "]]"
else
text = munge_text(text, function(txt)
if lang and lang:getCode() == "okm" then
txt = txt:gsub(">", ""):gsub("g", "")
end
if txt == text then -- special case for the entire text being plain
txt = txt:gsub("(.)%-(%-?)(.)", "%1%2%3")
else
txt = txt:gsub("%-(%-?)", "%1")
end
return Kore_ruby(txt)
end)
end
end
if sc:getCode() == "Image" then
face = nil
end
if face == "hypothetical" then
-- [[Special:WhatLinksHere/Wiktionary:Tracking/script-utilities/face/hypothetical]]
track("script-utilities/face/hypothetical")
end
local data = (m_data or get_data()).faces[face or "plain"]
if data == nil then
error('Invalid script face "' .. face .. '".')
end
local tag = data.tag
local opening_tag = {tag}
if lang and id then
insert(opening_tag, 'id="' .. language_anchor(lang, id) .. '"')
end
local classes = {data.class}
-- if the script code is hyphenated (i.e. language code-script code, add the last component as a class as well)
-- e.g. mnc-Mong adds both Mong and mnc-Mong as classes
if sc:getCode():find("-", nil, true) then
insert(classes, 1, (ugsub(sc:getCode(), ".+%-", "")))
insert(classes, 2, sc:getCode())
else
insert(classes, 1, sc:getCode())
end
if class and class ~= '' then
insert(classes, class)
end
insert(opening_tag, 'class="' .. concat(classes, ' ') .. '"')
-- FIXME: Is it OK to insert the etymology-only lang code and have it fall back to the first part of the
-- lang code (by chopping off the '-...' part)? It seems the :lang() selector does this; not sure about
-- [lang=...] attributes.
if lang then
insert(opening_tag, 'lang="' .. lang:getFullCode() .. '"')
end
-- Add a script wrapper
return (data.prefix or "") .. "<" .. concat(opening_tag, " ") .. ">" .. text .. "</" .. tag .. ">"
end
--[==[Tags the transliteration for given text {translit} and language {lang}. It will add the language, script subtag (as defined in [https://www.rfc-editor.org/rfc/bcp/bcp47.txt BCP 47 2.2.3]) and [https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/dir dir] (directional) attributes as needed.
The optional <code>kind</code> parameter can be one of the following:
; {{code|lua|"term"}}
: tag transliteration for {{temp|mention}}
; {{code|lua|"usex"}}
: tag transliteration for {{temp|usex}}
; {{code|lua|"head"}}
: tag transliteration for {{temp|head}}
; {{code|lua|"default"}}
: default
The optional <code>attributes</code> parameter is used to specify additional HTML attributes for the tag.]==]
function export.tag_translit(translit, lang, kind, attributes, is_manual)
if type(lang) == "table" then
-- FIXME: Do better support for etym languages; see https://www.rfc-editor.org/rfc/bcp/bcp47.txt
lang = lang.getFullCode and lang:getFullCode()
or error("Second argument to tag_translit should be a language code or language object.")
end
local data = (m_data or get_data()).translit[kind or "default"]
local tag = data.tag
local opening_tag = {tag}
local class = data.class
if lang == "ja" then
insert(opening_tag, 'class="' .. (class and (class .. " ") or "") .. (is_manual and "manual-tr " or "") .. 'tr"')
else
insert(opening_tag, 'lang="' .. lang .. '-Latn"')
insert(opening_tag, 'class="' .. (class and (class .. " ") or "") .. (is_manual and "manual-tr " or "") .. 'tr Latn"')
end
local dir = data.dir
if dir then
insert(opening_tag, 'dir="' .. dir .. '"')
end
if attributes then
track("tag_translit/attributes")
insert(opening_tag, attributes)
end
return "<" .. concat(opening_tag, " ") .. ">" .. translit .. "</" .. tag .. ">"
end
function export.tag_transcription(transcription, lang, kind, attributes)
if type(lang) == "table" then
-- FIXME: Do better support for etym languages; see https://www.rfc-editor.org/rfc/bcp/bcp47.txt
lang = lang.getFullCode and lang:getFullCode()
or error("Second argument to tag_transcription should be a language code or language object.")
end
local data = (m_data or get_data()).transcription[kind or "default"]
local tag = data.tag
local opening_tag = {tag}
local class = data.class
if lang == "ja" then
insert(opening_tag, 'class="' .. (class and (class .. " ") or "") .. 'ts"')
else
insert(opening_tag, 'lang="' .. lang .. '-Latn"')
insert(opening_tag, 'class="' .. (class and (class .. " ") or "") .. 'ts Latn"')
end
local dir = data.dir
if dir then
insert(opening_tag, 'dir="' .. dir .. '"')
end
if attributes then
track("tag_transcription/attributes")
insert(opening_tag, attributes)
end
return "<" .. concat(opening_tag, " ") .. ">" .. transcription .. "</" .. tag .. ">"
end
--[==[Tags {def} as a definition.
The <code>def</code> parameter must be one of the following:
; {{code|lua|"gloss"}}
: The text is wrapped in {{code|html|2=<span class="(mention-gloss">...</span>}}.
; {{code|lua|"non-gloss"}}
: The text is wrapped in {{code|html|2=<span class="use-with-mention">...</span>}}.
The optional <code>attributes</code> parameter is used to specify additional HTML attributes for the tag.]==]
function export.tag_definition(def, kind, attributes)
local data = (m_data or get_data()).definition[kind]
if data == nil then
error("Second argument to tag_definition should specify the kind of definition from the list in [[Module:script utilities/data]].")
end
local tag = data.tag
local opening_tag = {tag}
local class = data.class
if class then
insert(opening_tag, 'class="' .. class .. '"')
end
if attributes then
insert(opening_tag, attributes)
end
return "<" .. concat(opening_tag, " ") .. ">" .. def .. "</" .. tag .. ">"
end
--[==[Generates a request to provide a term in its native script, if it is missing. This is used by the {{temp|rfscript}} template as well as by the functions in [[Module:links]].
The function will add entries to one of the subcategories of [[:Category:Requests for native script by language]], and do several checks on the given language and script. In particular:
* If the script was given, a subcategory named "Requests for (script) script" is added, but only if the language has more than one script. Otherwise, the main "Requests for native script" category is used.
* Nothing is added at all if the language has no scripts other than Latin and its varieties.]==]
function export.request_script(lang, sc, usex, nocat, sort_key)
local scripts = lang.getScripts and lang:getScripts() or error('The language "' .. lang:getCode() .. '" does not have the method getScripts. It may be unwritten.')
-- By default, request for "native" script
local cat_script = "native"
local disp_script = "script"
-- If the script was not specified, and the language has only one script, use that.
if not sc and #scripts == 1 then
sc = scripts[1]
end
-- Is the script known?
if sc and sc:getCode() ~= "None" then
-- If the script is Latin, return nothing.
if export.is_Latin_script(sc) then
return ""
end
if (not scripts[1]) or sc:getCode() ~= scripts[1]:getCode() then
disp_script = sc:getCanonicalName()
end
-- The category needs to be specific to script only if there is chance of ambiguity. This occurs when when the language has multiple scripts (or with codes such as "und").
if (not scripts[1]) or scripts[2] then
cat_script = sc:getCanonicalName()
end
else
-- The script is not known.
-- Does the language have at least one non-Latin script in its list?
local has_nonlatin = false
for _, val in ipairs(scripts) do
if not export.is_Latin_script(val) then
has_nonlatin = true
break
end
end
-- If there are no non-Latin scripts, return nothing.
if not has_nonlatin and lang:getCode() ~= "und" then
return ""
end
end
-- Etymology languages have their own categories, whose parents are the regular language.
return "<small>[" .. disp_script .. " needed]</small>" .. (nocat and "" or
format_categories("Requests for " .. cat_script .. " script " ..
(usex and "in" or "for") .. " " .. lang:getCanonicalName() .. " " ..
(usex == "quote" and "quotations" or usex and "usage examples" or "terms"),
lang, sort_key
)
)
end
--[==[This is used by {{temp|rfscript}}. See there for more information.]==]
function export.template_rfscript(frame)
local boolean = {type = "boolean"}
local args = process_params(frame:getParent().args, {
[1] = {required = true, type = "language", default = "und"},
["sc"] = {type = "script"},
["usex"] = boolean,
["quote"] = boolean,
["nocat"] = boolean,
["sort"] = true,
})
local ret = export.request_script(args[1], args["sc"], args.quote and "quote" or args.usex, args.nocat, args.sort)
if ret == "" then
error("This language is written in the Latin alphabet. It does not need a native script.")
end
return ret
end
function export.checkScript(text, scriptCode, result)
local scriptObject = get_script(scriptCode)
if not scriptObject then
error('The script code "' .. scriptCode .. '" is not recognized.')
end
local originalText = text
-- Remove non-letter characters.
text = ugsub(text, "%A+", "")
-- Remove all characters of the script in question.
text = ugsub(text, "[" .. scriptObject:getCharacters() .. "]+", "")
if text ~= "" then
if type(result) == "string" then
error(result)
else
error('The text "' .. originalText .. '" contains the letters "' .. text .. '" that do not belong to the ' .. scriptObject:getDisplayForm() .. '.', 2)
end
end
end
return export
ks68mbi7z0w2smi2ekdvkd1656b7n5g
Modul:scripts
828
9743
373506
233102
2026-09-10T20:52:27Z
SNN95
2113
letak dulu, terjemah kemudian
373506
Scribunto
text/plain
local export = {}
local combining_classes_module = "Module:Unicode data/combining classes"
local debug_track_module = "Module:debug/track"
local json_module = "Module:JSON"
local language_like_module = "Module:language-like"
local load_module = "Module:load"
local scripts_canonical_names_module = "Module:scripts/canonical names"
local scripts_chartoscript_module = "Module:scripts/charToScript"
local scripts_data_module = "Module:scripts/data"
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
local writing_systems_module = "Module:writing systems"
local writing_systems_data_module = "Module:writing systems/data"
local concat = table.concat
local get_by_code -- Defined below.
local gmatch = string.gmatch
local insert = table.insert
local make_object -- Defined below.
local match = string.match
local require = require
local select = select
local setmetatable = setmetatable
local toNFC = mw.ustring.toNFC
local toNFD = mw.ustring.toNFD
local toNFKC = mw.ustring.toNFKC
local toNFKD = mw.ustring.toNFKD
local type = type
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function category_name_has_suffix(...)
category_name_has_suffix = require(language_like_module).categoryNameHasSuffix
return category_name_has_suffix(...)
end
local function category_name_to_code(...)
category_name_to_code = require(language_like_module).categoryNameToCode
return category_name_to_code(...)
end
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function deep_copy(...)
deep_copy = require(table_module).deepCopy
return deep_copy(...)
end
local function explode(...)
explode = require(string_utilities_module).explode_utf8
return explode(...)
end
local function get_writing_system(...)
get_writing_system = require(writing_systems_module).getByCode
return get_writing_system(...)
end
local function keys_to_list(...)
keys_to_list = require(table_module).keysToList
return keys_to_list(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function to_json(...)
to_json = require(json_module).toJSON
return to_json(...)
end
local function track(page)
debug_track("scripts/" .. page)
return true
end
local function ugsub(...)
ugsub = require(string_utilities_module).gsub
return ugsub(...)
end
local function umatch(...)
umatch = require(string_utilities_module).match
return umatch(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local scripts_canonical_names
local function get_scripts_canonical_names()
scripts_canonical_names, get_scripts_canonical_names = load_data(scripts_canonical_names_module), nil
return scripts_canonical_names
end
local scripts_data
local function get_scripts_data()
scripts_data, get_scripts_data = load_data(scripts_data_module), nil
return scripts_data
end
local scripts_suffixes
local function get_scripts_suffixes()
scripts_suffixes, get_scripts_suffixes = {
"script",
"code",
"notation",
"letters",
"numerals",
"semaphore",
}, nil
for _, v in pairs(load_data(writing_systems_data_module)) do
insert(scripts_suffixes, v[1])
end
return scripts_suffixes
end
local Script = {}
Script.__index = Script
--[==[Returns the script code of the script. Example: {{lua|"Cyrl"}} for Cyrillic.]==]
function Script:getCode()
return self._code
end
--[==[
Return the canonical name of the script. This is the name used to represent that script on Wiktionary.
Example: {"Cyrillic"} for Cyrillic. If `lang` is specified and the script has a language-specific name,
return that (e.g. {"Shahmukhi"} for script `Aran` with Punjabi and certain related languages); otherwise,
return the default name (if the script has different names in different languages, e.g. {"Arabic"} for
`Aran`), or the only name if there is only one.
]==]
function Script:getCanonicalName(lang)
local rawdata = self._data[1]
if type(rawdata) == "string" then
return rawdata
end
local name
if lang then
name = rawdata[lang:getCode()]
if name then
return name
end
name = rawdata[lang:getFullCode()]
if name then
return name
end
end
name = rawdata.default
if not name then
error(("Internal error: no default key in script name table for script %s"):format(self:getCode()))
end
return name
end
--[==[
Return the table mapping languages to names for the script. If the script has only one name (as most scripts
do), return a string consisting of that name. Otherwise, return a table mapping language codes to names,
where the key named `default` contains the default name used for languages not specified in the table.
]==]
function Script:getCanonicalNameTable()
return self._data[1]
end
--[==[
Return all canonical names of the script. The default name is first.
]==]
function Script:getCanonicalNames()
local rawdata = self._data[1]
if type(rawdata) == "string" then
return {rawdata}
end
local names = {}
for lang, name in pairs(rawdata) do
if lang ~= "default" then
require(table_module).insertIfNot(names, name)
end
end
table.sort(names)
require(table_module).insertIfNot(names, rawdata.default, {pos = 1})
return names
end
--[==[
Return the display form of the script. For scripts, this is the same as the value returned by
{:getCategoryName("nocap")}, i.e. it reads <code>"<var>NAME</var> script"</code> (e.g. {"Arabic script"}).
The displayed text used in {:makeCategoryLink()} is always the same as the display form. If the script has
different names in different languages (e.g. `Aran`, which is called {"Shahmukhi"} in Punjabi and certain
related languages but otherwise {"Arabic"}), and `lang` is given, return the language-specific name;
otherwise return the default or only name.
]==]
function Script:getDisplayForm(lang)
return self:getCategoryName("nocap", lang)
end
function Script:getAliases()
Script.getAliases = require(language_like_module).getAliases
return self:getAliases()
end
function Script:getVarieties(flatten)
Script.getVarieties = require(language_like_module).getVarieties
return self:getVarieties(flatten)
end
function Script:getOtherNames()
Script.getOtherNames = require(language_like_module).getOtherNames
return self:getOtherNames()
end
function Script:getAllNames()
Script.getAllNames = require(language_like_module).getAllNames
return self:getAllNames()
end
--[==[Returns the {{w|IETF language tag#Syntax of language tags|IETF subtag}} used for the script, which should always be a valid {{w|ISO 15924}} script code. This is used when constructing HTML {{code|html|lang{{=}}}} tags. The {{lua|ietf_subtag}} value from the script's data file is used, if present; otherwise, the script code is used. For script codes which contain a hyphen, only the part after the hyphen is used (e.g. {{lua|"fa-Arab"}} becomes {{lua|"Arab"}}).]==]
function Script:getIETFSubtag()
local code = self._ietf_subtag
if code == nil then
code = self._data.ietf_subtag or match(self:getCode(), "[^%-]+$")
self._ietf_subtag = code
end
return code
end
--[==[Returns a script object for the parent of the script, such as {"Arab"} for {"fa-Arab"}. It returns {nil} for scripts without a parent, like {"Latn"}, {"Grek"}, etc.]==]
function Script:getParent()
local parent = self._parentObject
if parent == nil then
parent = self:getParentCode()
-- If the value is nil, it's cached as false.
parent = parent and get_by_code(parent) or false
self._parentObject = parent
end
return parent or nil
end
--[==[Returns the script code of the parent of the script, such as {"Arab"} for {"fa-Arab"}. It returns {nil} for scripts without a parent, like {"Latn"}, {"Grek"}, etc.]==]
function Script:getParentCode()
local parent = self._parentCode
if parent == nil then
-- If the value is nil, it's cached as false.
parent = self._data.parent or false
self._parentCode = parent
end
return parent or nil
end
function Script:getSystemCodes()
if not self._systemCodes then
local system_codes = self._data[3]
if type(system_codes) == "table" then
self._systemCodes = system_codes
elseif type(system_codes) == "string" then
self._systemCodes = split(system_codes, ",", true, true)
else
self._systemCodes = {}
end
end
return self._systemCodes
end
function Script:getSystems()
if not self._systemObjects then
self._systemObjects = {}
for _, system in ipairs(self:getSystemCodes()) do
insert(self._systemObjects, get_writing_system(system))
end
end
return self._systemObjects
end
--[==[Check whether the script is of type `system`, which can be a writing system code or object. If multiple systems are passed, return true if the script is any of the specified systems.]==]
function Script:isSystem(...)
for _, system in ipairs{...} do
if type(system) == "table" then
system = system:getCode()
end
for _, s in ipairs(self:getSystemCodes()) do
if system == s then
return true
end
end
end
return false
end
--[==[Returns a table of types as a lookup table (with the types as keys).
Currently, the only possible type is {script}.]==]
function Script:getTypes()
local types = self._types
if types == nil then
types = {script = true}
local rawtypes = self._data.type
if rawtypes then
for t in gmatch(rawtypes, "[^,]+") do
types[t] = true
end
end
self._types = types
end
return types
end
--[==[Given a list of types as strings, returns true if the script has all of them.
Use {{lua|hasType("script")}} to determine if an object that may be a language, family or script is a script.]==]
function Script:hasType(...)
Script.hasType = require(language_like_module).hasType
return self:hasType(...)
end
--[==[
Return the name of the main category of that script. Example: {"Cyrillic script"} for Cyrillic, whose
category is at [[:Category:Cyrillic script]]. Unless optional argument `nocap` is given, the script name at
the beginning of the returned value will be capitalized. This capitalization is correct for category names,
but not if the script name is lowercase and the returned value of this function is used in the middle of a
sentence. (For example, the script with the code `Semap` has the name {"flag semaphore"}, which should remain
lowercase when used as part of the category name [[:Category:Translingual letters in flag semaphore]] but
should be capitalized in [[:Category:Flag semaphore templates]].) If you are considering using
{getCategoryName("nocap")}, use {getDisplayForm()} instead. If the script has different names in different
languages (e.g. `Aran`, which is called {"Shahmukhi"} in Punjabi and certain related languages but otherwise
{"Arabic"}), and `lang` is given, return the language-specific name; otherwise return the default or only
name.
]==]
function Script:getCategoryName(nocap, lang)
local name = self:getCanonicalName(lang)
if category_name_has_suffix(name, scripts_suffixes or get_scripts_suffixes()) then
name = name .. " script"
end
if not nocap then
name = mw.getContentLanguage():ucfirst(name)
end
return name
end
--[==[
Return a link to the appropriate category for the script, displaying using the display form of the script.
For example, `Cyrl` returns `[[:Category:Cyrillic script|Cyrillic script]]`. The display form is not
automatically capitalized, so e.g. the script code `Semap` will return
`[[:Category:Flag semaphore|flag semaphore]]`. If the script has different names in different languages (e.g.
`Aran`, which is called {"Shahmukhi"} in Punjabi and certain related languages but otherwise {"Arabic"}), and
`lang` is given, return the language-specific name; otherwise return the default or only name.
]==]
function Script:makeCategoryLink(lang)
return "[[:Category:" .. self:getCategoryName(lang) .. "|" .. self:getDisplayForm(lang) .. "]]"
end
--[==[Returns the Wikidata item id for the script or <code>nil</code>. This corresponds to the the second field in the data modules.]==]
function Script:getWikidataItem()
Script.getWikidataItem = require(language_like_module).getWikidataItem
return self:getWikidataItem()
end
--[==[
Returns the name of the Wikipedia article for the script. `project` specifies the language and project to retrieve
the article from, defaulting to {"enwiki"} for the English Wikipedia. Normally if specified it should be the project
code for a specific-language Wikipedia e.g. "zhwiki" for the Chinese Wikipedia, but it can be any project, including
non-Wikipedia ones. If the project is the English Wikipedia and the property {wikipedia_article} is present in the data
module it will be used first. In all other cases, a sitelink will be generated from {:getWikidataItem} (if set). The
resulting value (or lack of value) is cached so that subsequent calls are fast. If no value could be determined, and
`noCategoryFallback` is {false}, {:getCategoryName} is used as fallback; otherwise, {nil} is returned. Note that if
`noCategoryFallback` is {nil} or omitted, it defaults to {false} if the project is the English Wikipedia, otherwise
to {true}. In other words, under normal circumstances, if the English Wikipedia article couldn't be retrieved, the
return value will fall back to a link to the script's category, but this won't normally happen for any other project.
]==]
function Script:getWikipediaArticle(noCategoryFallback, project)
Script.getWikipediaArticle = require(language_like_module).getWikipediaArticle
return self:getWikipediaArticle(noCategoryFallback, project)
end
--[==[Returns the name of the Wikimedia Commons category page for the script.]==]
function Script:getCommonsCategory()
Script.getCommonsCategory = require(language_like_module).getCommonsCategory
return self:getCommonsCategory()
end
--[==[Returns the charset defining the script's characters from the script's data file.
This can be used to search for words consisting only of this script, but see the warning above.]==]
function Script:getCharacters()
return self.characters or nil
end
--[==[Returns the number of characters in the text that are part of this script.
'''Note:''' You should never assume that text consists entirely of the same script. Strings may contain spaces, punctuation and even wiki markup or HTML tags. HTML tags will skew the counts, as they contain Latin-script characters. So it's best to avoid them.]==]
function Script:countCharacters(text)
local charset = self._data.characters
if charset == nil then
return 0
end
return select(2, ugsub(text, "[" .. charset .. "]", ""))
end
function Script:hasCapitalization()
return not not self._data.capitalized
end
function Script:hasSpaces()
return self._data.spaces ~= false
end
function Script:isTransliterated()
return self._data.translit ~= false
end
--[==[Returns true if the script is (sometimes) sorted by scraping page content, meaning that it is sensitive to changes in capitalization during sorting.]==]
function Script:sortByScraping()
return not not self._data.sort_by_scraping
end
--[==[Returns the text direction. Horizontal scripts return {{lua|"ltr"}} (left-to-right) or {{lua|"rtl"}} (right-to-left), while vertical scripts return {{lua|"vertical-ltr"}} (vertical left-to-right) or {{lua|"vertical-rtl"}} (vertical right-to-left).]==]
function Script:getDirection()
return self._data.direction or "ltr"
end
function Script:getData()
return self._data
end
--[==[Returns the name of the module containing the script's data. Currently, this is always [[Module:scripts/data]].]==]
function Script:getDataModuleName()
return scripts_data_module
end
--[==[Returns {{lua|true}} if the script contains characters that require fixes to Unicode normalization under certain circumstances, {{lua|false}} if it doesn't.]==]
function Script:hasNormalizationFixes()
return not not self._data.normalizationFixes
end
--[==[Corrects discouraged sequences of Unicode characters to the encouraged equivalents.]==]
function Script:fixDiscouragedSequences(text)
if self:hasNormalizationFixes() then
local norm_fixes = self._data.normalizationFixes
local to = norm_fixes.to
if to then
for i, v in ipairs(norm_fixes.from) do
text = ugsub(text, v, to[i] or "")
end
end
end
return text
end
do
local combining_classes
-- Obtain the list of default combining classes.
local function get_combining_classes()
combining_classes, get_combining_classes = load_data(combining_classes_module), nil
return combining_classes
end
-- Implements a modified form of Unicode normalization for instances where there are identified deficiencies in the default Unicode combining classes.
local function fixNormalization(text, self)
if not self:hasNormalizationFixes() then
return text
end
local norm_fixes = self._data.normalizationFixes
local new_classes = norm_fixes.combiningClasses
if not (new_classes and umatch(text, "[" .. norm_fixes.combiningClassCharacters .. "]")) then
return text
end
text = explode(text)
-- Manual sort based on new combining classes.
-- We can't use table.sort, as it compares the first/last values in an array as a shortcut, which messes things up.
for i = 2, #text do
local char = text[i]
local class = new_classes[char] or (combining_classes or get_combining_classes())[char]
if class then
repeat
i = i - 1
local prev = text[i]
if (new_classes[prev] or (combining_classes or get_combining_classes())[prev] or 0) < class then
break
end
text[i], text[i + 1] = char, prev
until i == 1
end
end
return concat(text)
end
function Script:toFixedNFC(text)
return fixNormalization(toNFC(text), self)
end
function Script:toFixedNFD(text)
return fixNormalization(toNFD(text), self)
end
function Script:toFixedNFKC(text)
return fixNormalization(toNFKC(text), self)
end
function Script:toFixedNFKD(text)
return fixNormalization(toNFKD(text), self)
end
end
function Script:toJSON(opts)
local ret = {
canonicalName = self:getCanonicalName(),
canonicalNameTable = self:getCanonicalNameTable(),
categoryName = self:getCategoryName("nocap"),
code = self:getCode(),
parent = self:getParentCode(),
systems = self:getSystemCodes(),
aliases = self:getAliases(),
varieties = self:getVarieties(),
otherNames = self:getOtherNames(),
type = keys_to_list(self:getTypes()),
direction = self:getDirection(),
characters = self:getCharacters(),
ietfSubtag = self:getIETFSubtag(),
wikidataItem = self:getWikidataItem(),
wikipediaArticle = self:getWikipediaArticle(true),
}
-- Use `deep_copy` when returning a table, so that there are no editing restrictions imposed by `mw.loadData`.
return opts and opts.lua_table and deep_copy(ret) or to_json(ret, opts)
end
function export.makeObject(code, data)
local data_type = type(data)
if data_type ~= "table" then
error(("bad argument #2 to 'makeObject' (table expected, got %s)"):format(data_type))
end
return setmetatable({_data = data, _code = code, characters = data.characters}, Script)
end
make_object = export.makeObject
local scripts_to_track = {
["fa-Arab"] = true,
["kk-Arab"] = true,
["ks-Arab"] = true,
["ku-Arab"] = true,
["ms-Arab"] = true,
["mzn-Arab"] = true,
["ota-Arab"] = true,
["pa-Arab"] = true,
["ps-Arab"] = true,
["sd-Arab"] = true,
["tt-Arab"] = true,
["ug-Arab"] = true,
["ur-Arab"] = true,
}
--[==[
Finds the script whose code matches the one provided. If it exists, it returns a {Script} object representing the
script. Otherwise, it returns {nil}.]==]
function export.getByCode(code)
if scripts_to_track[code] then
track(code)
end
local data = (scripts_data or get_scripts_data())[code]
return data ~= nil and make_object(code, data) or nil
end
get_by_code = export.getByCode
--[==[
Look for the script whose canonical name (the name used to represent that script on Wiktionary) matches the one
provided. If it exists, it returns a {Script} object representing the script. Otherwise, it returns {nil}. The
canonical name of scripts should always be unique (it is an error for two scripts on Wiktionary to share the same
canonical name), so this is guaranteed to give at most one result.]==]
function export.getByCanonicalName(name)
if name == nil then
return nil
end
local code = (scripts_canonical_names or get_scripts_canonical_names())[name]
if code == nil then
return nil
end
return get_by_code(code)
end
--[==[
Look for the script whose category name (the name used in categories for that script) matches the one provided.
If it exists, it returns a {Script} object representing the script. Otherwise, it returns {nil}. In almost all cases,
the category name for a script is its canonical name plus the word "script", e.g. "Cyrillic" has the category name
"Cyrillic script". Where a canonical name ends with "script", "code" or "semaphore", the category name is identical
to the canonical name.
]==]
function export.getByCategoryName(name)
if name == nil then
return nil
end
local code, canonical_name = category_name_to_code(
name,
" script",
scripts_canonical_names or get_scripts_canonical_names(),
scripts_suffixes or get_scripts_suffixes()
)
if code == nil then
return nil, nil
end
return get_by_code(code), canonical_name
end
--[==[
Convert a canonical name to the corresponding category name. Unless optional argument `nocap` is given, the script
name at the beginning of the returned value will be capitalized. See {:getCategoryName()} for more discussion.
]==]
function export.canonicalNameToCategoryName(name, nocap)
if category_name_has_suffix(name, scripts_suffixes or get_scripts_suffixes()) then
name = name .. " script"
end
if not nocap then
name = mw.getContentLanguage():ucfirst(name)
end
return name
end
--[==[
Takes a codepoint or a character and finds the script code (if any) that is
appropriate for it based on the codepoint, using the data module
[[Module:scripts/recognition data]]. The data module was generated from the
patterns in [[Module:scripts/data]] using [[Module:User:Erutuon/script recognition]].
Converts the character to a codepoint. Returns a script code if the codepoint
is in the list of individual characters, or if it is in one of the defined
ranges in the 4096-character block that it belongs to, else returns "None".
]==]
function export.charToScript(char)
export.charToScript = require(scripts_chartoscript_module).charToScript
return export.charToScript(char)
end
--[==[
Returns the code for the script that has the greatest number of characters in `text`. Useful for script tagging text
that is unspecified for language. Uses [[Module:scripts/recognition data]] to determine a script code for a character
language-agnostically. Specifically, it works as follows:
Convert each character to a codepoint. Increment the counter for the script code if the codepoint is in the list
of individual characters, or if it is in one of the defined ranges in the 4096-character block that it belongs to.
Each script has a two-part counter, for primary and secondary matches. Primary matches are when the script is the
first one listed; otherwise, it's a secondary match. When comparing scripts, first the total of both are compared
(i.e. the overall number of matches). If these are the same, the number of primary and then secondary matches are
used as tiebreakers. For example, this is used to ensure that `Grek` takes priority over `Polyt` if no characters
which exclusively match `Polyt` are found, as `Grek` is a subset of `Polyt`.
If `none_is_last_resort_only` is specified, this will never return {"None"} if any characters in `text` belong to a
script. Otherwise, it will return {"None"} if there are more characters that don't belong to a script than belong to
any individual script. (FIXME: This behavior is probably wrong, and `none_is_last_resort_only` should probably
become the default.)
]==]
function export.findBestScriptWithoutLang(text, none_is_last_resort_only)
export.findBestScriptWithoutLang = require(scripts_chartoscript_module).findBestScriptWithoutLang
return export.findBestScriptWithoutLang(text, none_is_last_resort_only)
end
return export
io3j9hrdqyxoerkjf8e2y02nar9stid
373538
373506
2026-09-11T08:54:35Z
Hakimi97
2668
373538
Scribunto
text/plain
local export = {}
local combining_classes_module = "Module:Unicode data/combining classes"
local debug_track_module = "Module:debug/track"
local json_module = "Module:JSON"
local language_like_module = "Module:language-like"
local load_module = "Module:load"
local scripts_canonical_names_module = "Module:scripts/canonical names"
local scripts_chartoscript_module = "Module:scripts/charToScript"
local scripts_data_module = "Module:scripts/data"
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
local writing_systems_module = "Module:writing systems"
local writing_systems_data_module = "Module:writing systems/data"
local concat = table.concat
local get_by_code -- Defined below.
local gmatch = string.gmatch
local insert = table.insert
local make_object -- Defined below.
local match = string.match
local require = require
local select = select
local setmetatable = setmetatable
local toNFC = mw.ustring.toNFC
local toNFD = mw.ustring.toNFD
local toNFKC = mw.ustring.toNFKC
local toNFKD = mw.ustring.toNFKD
local type = type
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function category_name_has_suffix(...)
category_name_has_suffix = require(language_like_module).categoryNameHasSuffix
return category_name_has_suffix(...)
end
local function category_name_to_code(...)
category_name_to_code = require(language_like_module).categoryNameToCode
return category_name_to_code(...)
end
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function deep_copy(...)
deep_copy = require(table_module).deepCopy
return deep_copy(...)
end
local function explode(...)
explode = require(string_utilities_module).explode_utf8
return explode(...)
end
local function get_writing_system(...)
get_writing_system = require(writing_systems_module).getByCode
return get_writing_system(...)
end
local function keys_to_list(...)
keys_to_list = require(table_module).keysToList
return keys_to_list(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function to_json(...)
to_json = require(json_module).toJSON
return to_json(...)
end
local function track(page)
debug_track("scripts/" .. page)
return true
end
local function ugsub(...)
ugsub = require(string_utilities_module).gsub
return ugsub(...)
end
local function umatch(...)
umatch = require(string_utilities_module).match
return umatch(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local scripts_canonical_names
local function get_scripts_canonical_names()
scripts_canonical_names, get_scripts_canonical_names = load_data(scripts_canonical_names_module), nil
return scripts_canonical_names
end
local scripts_data
local function get_scripts_data()
scripts_data, get_scripts_data = load_data(scripts_data_module), nil
return scripts_data
end
local scripts_suffixes
local function get_scripts_suffixes()
scripts_suffixes, get_scripts_suffixes = {
"Tulisan",
"Kod",
"Notasi",
"Huruf",
"Angka",
"Semafora",
}, nil
for _, v in pairs(load_data(writing_systems_data_module)) do
insert(scripts_suffixes, v[1])
end
return scripts_suffixes
end
local Script = {}
Script.__index = Script
--[==[Returns the script code of the script. Example: {{lua|"Cyrl"}} for Cyrillic.]==]
function Script:getCode()
return self._code
end
--[==[
Return the canonical name of the script. This is the name used to represent that script on Wiktionary.
Example: {"Cyrillic"} for Cyrillic. If `lang` is specified and the script has a language-specific name,
return that (e.g. {"Shahmukhi"} for script `Aran` with Punjabi and certain related languages); otherwise,
return the default name (if the script has different names in different languages, e.g. {"Arabic"} for
`Aran`), or the only name if there is only one.
]==]
function Script:getCanonicalName(lang)
local rawdata = self._data[1]
if type(rawdata) == "string" then
return rawdata
end
local name
if lang then
name = rawdata[lang:getCode()]
if name then
return name
end
name = rawdata[lang:getFullCode()]
if name then
return name
end
end
name = rawdata.default
if not name then
error(("Internal error: no default key in script name table for script %s"):format(self:getCode()))
end
return name
end
--[==[
Return the table mapping languages to names for the script. If the script has only one name (as most scripts
do), return a string consisting of that name. Otherwise, return a table mapping language codes to names,
where the key named `default` contains the default name used for languages not specified in the table.
]==]
function Script:getCanonicalNameTable()
return self._data[1]
end
--[==[
Return all canonical names of the script. The default name is first.
]==]
function Script:getCanonicalNames()
local rawdata = self._data[1]
if type(rawdata) == "string" then
return {rawdata}
end
local names = {}
for lang, name in pairs(rawdata) do
if lang ~= "default" then
require(table_module).insertIfNot(names, name)
end
end
table.sort(names)
require(table_module).insertIfNot(names, rawdata.default, {pos = 1})
return names
end
--[==[
Return the display form of the script. For scripts, this is the same as the value returned by
{:getCategoryName("nocap")}, i.e. it reads <code>"<var>NAME</var> script"</code> (e.g. {"Arabic script"}).
The displayed text used in {:makeCategoryLink()} is always the same as the display form. If the script has
different names in different languages (e.g. `Aran`, which is called {"Shahmukhi"} in Punjabi and certain
related languages but otherwise {"Arabic"}), and `lang` is given, return the language-specific name;
otherwise return the default or only name.
]==]
function Script:getDisplayForm(lang)
return self:getCategoryName("nocap", lang)
end
function Script:getAliases()
Script.getAliases = require(language_like_module).getAliases
return self:getAliases()
end
function Script:getVarieties(flatten)
Script.getVarieties = require(language_like_module).getVarieties
return self:getVarieties(flatten)
end
function Script:getOtherNames()
Script.getOtherNames = require(language_like_module).getOtherNames
return self:getOtherNames()
end
function Script:getAllNames()
Script.getAllNames = require(language_like_module).getAllNames
return self:getAllNames()
end
--[==[Returns the {{w|IETF language tag#Syntax of language tags|IETF subtag}} used for the script, which should always be a valid {{w|ISO 15924}} script code. This is used when constructing HTML {{code|html|lang{{=}}}} tags. The {{lua|ietf_subtag}} value from the script's data file is used, if present; otherwise, the script code is used. For script codes which contain a hyphen, only the part after the hyphen is used (e.g. {{lua|"fa-Arab"}} becomes {{lua|"Arab"}}).]==]
function Script:getIETFSubtag()
local code = self._ietf_subtag
if code == nil then
code = self._data.ietf_subtag or match(self:getCode(), "[^%-]+$")
self._ietf_subtag = code
end
return code
end
--[==[Returns a script object for the parent of the script, such as {"Arab"} for {"fa-Arab"}. It returns {nil} for scripts without a parent, like {"Latn"}, {"Grek"}, etc.]==]
function Script:getParent()
local parent = self._parentObject
if parent == nil then
parent = self:getParentCode()
-- If the value is nil, it's cached as false.
parent = parent and get_by_code(parent) or false
self._parentObject = parent
end
return parent or nil
end
--[==[Returns the script code of the parent of the script, such as {"Arab"} for {"fa-Arab"}. It returns {nil} for scripts without a parent, like {"Latn"}, {"Grek"}, etc.]==]
function Script:getParentCode()
local parent = self._parentCode
if parent == nil then
-- If the value is nil, it's cached as false.
parent = self._data.parent or false
self._parentCode = parent
end
return parent or nil
end
function Script:getSystemCodes()
if not self._systemCodes then
local system_codes = self._data[3]
if type(system_codes) == "table" then
self._systemCodes = system_codes
elseif type(system_codes) == "string" then
self._systemCodes = split(system_codes, ",", true, true)
else
self._systemCodes = {}
end
end
return self._systemCodes
end
function Script:getSystems()
if not self._systemObjects then
self._systemObjects = {}
for _, system in ipairs(self:getSystemCodes()) do
insert(self._systemObjects, get_writing_system(system))
end
end
return self._systemObjects
end
--[==[Check whether the script is of type `system`, which can be a writing system code or object. If multiple systems are passed, return true if the script is any of the specified systems.]==]
function Script:isSystem(...)
for _, system in ipairs{...} do
if type(system) == "table" then
system = system:getCode()
end
for _, s in ipairs(self:getSystemCodes()) do
if system == s then
return true
end
end
end
return false
end
--[==[Returns a table of types as a lookup table (with the types as keys).
Currently, the only possible type is {script}.]==]
function Script:getTypes()
local types = self._types
if types == nil then
types = {script = true}
local rawtypes = self._data.type
if rawtypes then
for t in gmatch(rawtypes, "[^,]+") do
types[t] = true
end
end
self._types = types
end
return types
end
--[==[Given a list of types as strings, returns true if the script has all of them.
Use {{lua|hasType("script")}} to determine if an object that may be a language, family or script is a script.]==]
function Script:hasType(...)
Script.hasType = require(language_like_module).hasType
return self:hasType(...)
end
--[==[
Return the name of the main category of that script. Example: {"Cyrillic script"} for Cyrillic, whose
category is at [[:Category:Cyrillic script]]. Unless optional argument `nocap` is given, the script name at
the beginning of the returned value will be capitalized. This capitalization is correct for category names,
but not if the script name is lowercase and the returned value of this function is used in the middle of a
sentence. (For example, the script with the code `Semap` has the name {"flag semaphore"}, which should remain
lowercase when used as part of the category name [[:Category:Translingual letters in flag semaphore]] but
should be capitalized in [[:Category:Flag semaphore templates]].) If you are considering using
{getCategoryName("nocap")}, use {getDisplayForm()} instead. If the script has different names in different
languages (e.g. `Aran`, which is called {"Shahmukhi"} in Punjabi and certain related languages but otherwise
{"Arabic"}), and `lang` is given, return the language-specific name; otherwise return the default or only
name.
]==]
function Script:getCategoryName(nocap, lang)
local name = self:getCanonicalName(lang)
if category_name_has_suffix(name, scripts_suffixes or get_scripts_suffixes()) then
name = "Tulisan " .. name
end
if not nocap then
name = mw.getContentLanguage():ucfirst(name)
end
return name
end
--[==[
Return a link to the appropriate category for the script, displaying using the display form of the script.
For example, `Cyrl` returns `[[:Category:Cyrillic script|Cyrillic script]]`. The display form is not
automatically capitalized, so e.g. the script code `Semap` will return
`[[:Category:Flag semaphore|flag semaphore]]`. If the script has different names in different languages (e.g.
`Aran`, which is called {"Shahmukhi"} in Punjabi and certain related languages but otherwise {"Arabic"}), and
`lang` is given, return the language-specific name; otherwise return the default or only name.
]==]
function Script:makeCategoryLink(lang)
return "[[:Kategori:" .. self:getCategoryName(lang) .. "|" .. self:getDisplayForm(lang) .. "]]"
end
--[==[Returns the Wikidata item id for the script or <code>nil</code>. This corresponds to the the second field in the data modules.]==]
function Script:getWikidataItem()
Script.getWikidataItem = require(language_like_module).getWikidataItem
return self:getWikidataItem()
end
--[==[
Returns the name of the Wikipedia article for the script. `project` specifies the language and project to retrieve
the article from, defaulting to {"enwiki"} for the English Wikipedia. Normally if specified it should be the project
code for a specific-language Wikipedia e.g. "zhwiki" for the Chinese Wikipedia, but it can be any project, including
non-Wikipedia ones. If the project is the English Wikipedia and the property {wikipedia_article} is present in the data
module it will be used first. In all other cases, a sitelink will be generated from {:getWikidataItem} (if set). The
resulting value (or lack of value) is cached so that subsequent calls are fast. If no value could be determined, and
`noCategoryFallback` is {false}, {:getCategoryName} is used as fallback; otherwise, {nil} is returned. Note that if
`noCategoryFallback` is {nil} or omitted, it defaults to {false} if the project is the English Wikipedia, otherwise
to {true}. In other words, under normal circumstances, if the English Wikipedia article couldn't be retrieved, the
return value will fall back to a link to the script's category, but this won't normally happen for any other project.
]==]
function Script:getWikipediaArticle(noCategoryFallback, project)
Script.getWikipediaArticle = require(language_like_module).getWikipediaArticle
return self:getWikipediaArticle(noCategoryFallback, project)
end
--[==[Returns the name of the Wikimedia Commons category page for the script.]==]
function Script:getCommonsCategory()
Script.getCommonsCategory = require(language_like_module).getCommonsCategory
return self:getCommonsCategory()
end
--[==[Returns the charset defining the script's characters from the script's data file.
This can be used to search for words consisting only of this script, but see the warning above.]==]
function Script:getCharacters()
return self.characters or nil
end
--[==[Returns the number of characters in the text that are part of this script.
'''Note:''' You should never assume that text consists entirely of the same script. Strings may contain spaces, punctuation and even wiki markup or HTML tags. HTML tags will skew the counts, as they contain Latin-script characters. So it's best to avoid them.]==]
function Script:countCharacters(text)
local charset = self._data.characters
if charset == nil then
return 0
end
return select(2, ugsub(text, "[" .. charset .. "]", ""))
end
function Script:hasCapitalization()
return not not self._data.capitalized
end
function Script:hasSpaces()
return self._data.spaces ~= false
end
function Script:isTransliterated()
return self._data.translit ~= false
end
--[==[Returns true if the script is (sometimes) sorted by scraping page content, meaning that it is sensitive to changes in capitalization during sorting.]==]
function Script:sortByScraping()
return not not self._data.sort_by_scraping
end
--[==[Returns the text direction. Horizontal scripts return {{lua|"ltr"}} (left-to-right) or {{lua|"rtl"}} (right-to-left), while vertical scripts return {{lua|"vertical-ltr"}} (vertical left-to-right) or {{lua|"vertical-rtl"}} (vertical right-to-left).]==]
function Script:getDirection()
return self._data.direction or "ltr"
end
function Script:getData()
return self._data
end
--[==[Returns the name of the module containing the script's data. Currently, this is always [[Module:scripts/data]].]==]
function Script:getDataModuleName()
return scripts_data_module
end
--[==[Returns {{lua|true}} if the script contains characters that require fixes to Unicode normalization under certain circumstances, {{lua|false}} if it doesn't.]==]
function Script:hasNormalizationFixes()
return not not self._data.normalizationFixes
end
--[==[Corrects discouraged sequences of Unicode characters to the encouraged equivalents.]==]
function Script:fixDiscouragedSequences(text)
if self:hasNormalizationFixes() then
local norm_fixes = self._data.normalizationFixes
local to = norm_fixes.to
if to then
for i, v in ipairs(norm_fixes.from) do
text = ugsub(text, v, to[i] or "")
end
end
end
return text
end
do
local combining_classes
-- Obtain the list of default combining classes.
local function get_combining_classes()
combining_classes, get_combining_classes = load_data(combining_classes_module), nil
return combining_classes
end
-- Implements a modified form of Unicode normalization for instances where there are identified deficiencies in the default Unicode combining classes.
local function fixNormalization(text, self)
if not self:hasNormalizationFixes() then
return text
end
local norm_fixes = self._data.normalizationFixes
local new_classes = norm_fixes.combiningClasses
if not (new_classes and umatch(text, "[" .. norm_fixes.combiningClassCharacters .. "]")) then
return text
end
text = explode(text)
-- Manual sort based on new combining classes.
-- We can't use table.sort, as it compares the first/last values in an array as a shortcut, which messes things up.
for i = 2, #text do
local char = text[i]
local class = new_classes[char] or (combining_classes or get_combining_classes())[char]
if class then
repeat
i = i - 1
local prev = text[i]
if (new_classes[prev] or (combining_classes or get_combining_classes())[prev] or 0) < class then
break
end
text[i], text[i + 1] = char, prev
until i == 1
end
end
return concat(text)
end
function Script:toFixedNFC(text)
return fixNormalization(toNFC(text), self)
end
function Script:toFixedNFD(text)
return fixNormalization(toNFD(text), self)
end
function Script:toFixedNFKC(text)
return fixNormalization(toNFKC(text), self)
end
function Script:toFixedNFKD(text)
return fixNormalization(toNFKD(text), self)
end
end
function Script:toJSON(opts)
local ret = {
canonicalName = self:getCanonicalName(),
canonicalNameTable = self:getCanonicalNameTable(),
categoryName = self:getCategoryName("nocap"),
code = self:getCode(),
parent = self:getParentCode(),
systems = self:getSystemCodes(),
aliases = self:getAliases(),
varieties = self:getVarieties(),
otherNames = self:getOtherNames(),
type = keys_to_list(self:getTypes()),
direction = self:getDirection(),
characters = self:getCharacters(),
ietfSubtag = self:getIETFSubtag(),
wikidataItem = self:getWikidataItem(),
wikipediaArticle = self:getWikipediaArticle(true),
}
-- Use `deep_copy` when returning a table, so that there are no editing restrictions imposed by `mw.loadData`.
return opts and opts.lua_table and deep_copy(ret) or to_json(ret, opts)
end
function export.makeObject(code, data)
local data_type = type(data)
if data_type ~= "table" then
error(("bad argument #2 to 'makeObject' (table expected, got %s)"):format(data_type))
end
return setmetatable({_data = data, _code = code, characters = data.characters}, Script)
end
make_object = export.makeObject
local scripts_to_track = {
["fa-Arab"] = true,
["kk-Arab"] = true,
["ks-Arab"] = true,
["ku-Arab"] = true,
["ms-Arab"] = true,
["mzn-Arab"] = true,
["ota-Arab"] = true,
["pa-Arab"] = true,
["ps-Arab"] = true,
["sd-Arab"] = true,
["tt-Arab"] = true,
["ug-Arab"] = true,
["ur-Arab"] = true,
}
--[==[
Finds the script whose code matches the one provided. If it exists, it returns a {Script} object representing the
script. Otherwise, it returns {nil}.]==]
function export.getByCode(code)
if scripts_to_track[code] then
track(code)
end
local data = (scripts_data or get_scripts_data())[code]
return data ~= nil and make_object(code, data) or nil
end
get_by_code = export.getByCode
--[==[
Look for the script whose canonical name (the name used to represent that script on Wiktionary) matches the one
provided. If it exists, it returns a {Script} object representing the script. Otherwise, it returns {nil}. The
canonical name of scripts should always be unique (it is an error for two scripts on Wiktionary to share the same
canonical name), so this is guaranteed to give at most one result.]==]
function export.getByCanonicalName(name)
if name == nil then
return nil
end
local code = (scripts_canonical_names or get_scripts_canonical_names())[name]
if code == nil then
return nil
end
return get_by_code(code)
end
--[==[
Look for the script whose category name (the name used in categories for that script) matches the one provided.
If it exists, it returns a {Script} object representing the script. Otherwise, it returns {nil}. In almost all cases,
the category name for a script is its canonical name plus the word "script", e.g. "Cyrillic" has the category name
"Cyrillic script". Where a canonical name ends with "script", "code" or "semaphore", the category name is identical
to the canonical name.
]==]
function export.getByCategoryName(name)
if name == nil then
return nil
end
local code, canonical_name = category_name_to_code(
name,
"[Tt]ulisan ",
scripts_canonical_names or get_scripts_canonical_names(),
scripts_suffixes or get_scripts_suffixes()
)
if code == nil then
return nil, nil
end
return get_by_code(code), canonical_name
end
--[==[
Convert a canonical name to the corresponding category name. Unless optional argument `nocap` is given, the script
name at the beginning of the returned value will be capitalized. See {:getCategoryName()} for more discussion.
]==]
function export.canonicalNameToCategoryName(name, nocap)
if category_name_has_suffix(name, scripts_suffixes or get_scripts_suffixes()) then
name = "Tulisan " .. name
end
if not nocap then
name = mw.getContentLanguage():ucfirst(name)
end
return name
end
--[==[
Takes a codepoint or a character and finds the script code (if any) that is
appropriate for it based on the codepoint, using the data module
[[Module:scripts/recognition data]]. The data module was generated from the
patterns in [[Module:scripts/data]] using [[Module:User:Erutuon/script recognition]].
Converts the character to a codepoint. Returns a script code if the codepoint
is in the list of individual characters, or if it is in one of the defined
ranges in the 4096-character block that it belongs to, else returns "None".
]==]
function export.charToScript(char)
export.charToScript = require(scripts_chartoscript_module).charToScript
return export.charToScript(char)
end
--[==[
Returns the code for the script that has the greatest number of characters in `text`. Useful for script tagging text
that is unspecified for language. Uses [[Module:scripts/recognition data]] to determine a script code for a character
language-agnostically. Specifically, it works as follows:
Convert each character to a codepoint. Increment the counter for the script code if the codepoint is in the list
of individual characters, or if it is in one of the defined ranges in the 4096-character block that it belongs to.
Each script has a two-part counter, for primary and secondary matches. Primary matches are when the script is the
first one listed; otherwise, it's a secondary match. When comparing scripts, first the total of both are compared
(i.e. the overall number of matches). If these are the same, the number of primary and then secondary matches are
used as tiebreakers. For example, this is used to ensure that `Grek` takes priority over `Polyt` if no characters
which exclusively match `Polyt` are found, as `Grek` is a subset of `Polyt`.
If `none_is_last_resort_only` is specified, this will never return {"None"} if any characters in `text` belong to a
script. Otherwise, it will return {"None"} if there are more characters that don't belong to a script than belong to
any individual script. (FIXME: This behavior is probably wrong, and `none_is_last_resort_only` should probably
become the default.)
]==]
function export.findBestScriptWithoutLang(text, none_is_last_resort_only)
export.findBestScriptWithoutLang = require(scripts_chartoscript_module).findBestScriptWithoutLang
return export.findBestScriptWithoutLang(text, none_is_last_resort_only)
end
return export
2ipfnbyg2jfz47jj90v7frarbklq68p
Modul:families/data
828
9762
373477
273101
2026-09-10T17:44:16Z
SNN95
2113
kemaskini
373477
Scribunto
text/plain
--[=[
This module contains definitions for all language family codes on Wiktionary.
]=]--
local m = {}
m["aav"] = {
"Austroasiatik",
33199,
aliases = {"Austro-Asiatik"},
}
m["aav-khs"] = {
"Khasian",
3073734,
"aav",
aliases = {"Khasik"},
}
m["aav-nic"] = {
"Nicobarese",
217380,
"aav",
}
m["aav-pkl"] = {
"Pnar-Khasi-Lyngngam",
nil,
"aav-khs",
}
m["afa"] = {
"Afro-Asia",
25268,
aliases = {"Afroasiatik"},
}
m["alg"] = {
"Algonquian",
33392,
"aql",
}
m["alg-abp"] = {
"Abenaki-Penobscot",
197936,
"alg-eas",
}
m["alg-ara"] = {
"Arapahoan",
2153686,
"alg",
}
m["alg-eas"] = {
"Algonquian Timur",
2257525,
"alg",
}
m["alg-sfk"] = {
"Sac-Fox-Kickapoo",
1440172,
"alg",
}
m["alv"] = {
"Atlantik-Congo",
771124,
"nic",
}
m["alv-aah"] = {
"Ayere-Ahan",
750953,
"alv-von",
}
m["alv-ada"] = {
"Adamawa",
32906,
"alv-sav",
}
m["alv-bag"] = {
"Baga",
2746083,
"alv-mel",
}
m["alv-bak"] = {
"Bak",
1708174,
"alv-sng",
}
m["alv-bam"] = {
"Bambukic",
4853456,
"alv-ada",
aliases = {"Yungur-Jen"},
}
m["alv-bny"] = {
"Banyum",
2892477,
"alv-nyn",
}
m["alv-bua"] = {
"Bua",
4982094,
"alv-mbd",
}
m["alv-bwj"] = {
"Bikwin-Jen",
84542501,
"alv-bam",
}
m["alv-cng"] = {
"Cangin",
1033184,
"alv-fwo",
}
m["alv-ctn"] = {
"Tano Tengah",
1658486,
"alv-ptn",
aliases = {"Akan"},
}
m["alv-dlt"] = {
"Edoid Delta",
nil,
"alv-edo",
}
m["alv-dur"] = {
"Duru",
5316788,
"alv-lni",
}
m["alv-ede"] = {
"Ede",
35368,
"alv-yor",
}
m["alv-edk"] = {
"Edekiri",
5336735,
"alv-yrd",
}
m["alv-edo"] = {
"Edoid",
1287469,
"alv-von",
}
m["alv-eeo"] = {
"Edo-Esan-Ora",
12630439,
"alv-nce",
}
m["alv-fli"] = {
"Fali",
3450166,
"alv",
}
m["alv-fwo"] = {
"Fula-Wolof",
12631267,
"alv-sng",
}
m["alv-gbe"] = {
"Gbe",
668284,
"alv-von",
}
m["alv-gda"] = {
"Ga-Dangme",
3443338,
"alv-kwa",
}
m["alv-gng"] = {
"Guang",
684009,
"alv-ptn",
}
m["alv-gtm"] = {
"Pergunungan Ghana-Togo",
493020,
"alv-kwa",
aliases = {"Togo Remnant", "Togo Tengah"},
}
m["alv-hei"] = {
"Heiban",
108752116,
"alv-the",
}
m["alv-ido"] = {
"Idomoid",
974196,
"alv-von",
}
m["alv-igb"] = {
"Igboid",
1429100,
"alv-von",
}
m["alv-jfe"] = {
"Jola-Felupe",
1708174,
"alv-jol",
aliases = {"Ejamat"},
}
m["alv-jol"] = {
"Jola",
35176,
"alv-bak",
aliases = {"Diola"},
}
m["alv-kim"] = {
"Kim",
6409701,
"alv-mbd",
}
m["alv-kis"] = {
"Kissi",
35696,
"alv-mel",
}
m["alv-krb"] = {
"Karaboro",
4213541,
"alv-snf",
}
m["alv-ktg"] = {
"Ka-Togo",
5972796,
"alv-gtm",
}
m["alv-kul"] = {
"Kulango",
16977424,
"alv-sav",
aliases = {"Kulango-Lorhon", "Kulango-Lorom"},
}
m["alv-kwa"] = {
"Kwa",
33430,
"nic-vco",
}
m["alv-lag"] = {
"Lagoon",
111210042,
"alv-kwa",
}
m["alv-lek"] = {
"Leko",
6520642,
other_names = {"Sambaic"},
"alv-lni",
}
m["alv-lim"] = {
"Limba",
35825,
"alv",
}
m["alv-lni"] = {
"Leko-Nimbari",
1708170,
"alv-ada",
other_names = {"Adamawa Tengah"},
aliases = {"Chamba-Mumuye"},
}
m["alv-mbd"] = {
"Mbum-Day",
6799816,
"alv-ada",
}
m["alv-mbm"] = {
"Mbum",
6799814,
"alv-mbd",
}
m["alv-mel"] = {
"Mel",
12122355,
"alv",
}
m["alv-mum"] = {
"Mumuye",
84607009,
"alv-mye",
}
m["alv-mye"] = {
"Mumuye-Yendang",
6935539,
"alv-lni",
}
m["alv-nal"] = {
"Nalu",
nil,
"alv-sng",
}
m["alv-nce"] = {
"Edoid Utara-Tengah",
16110869,
"alv-edo",
}
m["alv-ngb"] = {
"Nupe-Gbagyi",
12638649,
"alv-nup",
aliases = {"Nupe-Gbari"},
}
m["alv-ntg"] = {
"Na-Togo",
nil,
"alv-gtm",
}
m["alv-nup"] = {
"Nupoid",
1429143,
"alv-von",
}
m["alv-nwd"] = {
"Edoid Barat Laut",
16111012,
"alv-edo",
}
m["alv-nyn"] = {
"Nyun",
nil,
"alv-fwo",
}
m["alv-pap"] = {
"Papel",
7132562,
"alv-bak",
}
m["alv-pph"] = {
"Phla-Pherá",
3849625,
"alv-gbe",
}
m["alv-ptn"] = {
"Potou-Tano",
1475003,
"alv-kwa",
}
m["alv-sav"] = {
"Savanna",
4403672,
"nic-vco",
aliases = {"Savannas"},
}
m["alv-sma"] = {
"Supyire-Mamara",
4446348,
"alv-snf",
aliases = {"Suppire-Mamara"},
}
m["alv-snf"] = {
"Senufo",
33795,
"alv",
aliases = {"Senufic", "Senoufo", "Sénoufo"},
}
m["alv-sng"] = {
"Senegambia",
1708753,
"alv",
}
m["alv-snr"] = {
"Senari",
4416084,
"alv-snf",
}
m["alv-swd"] = {
"Edoid Barat Daya",
12633903,
"alv-edo",
}
m["alv-tal"] = {
"Talodi",
12643302,
"alv-the",
}
m["alv-tdj"] = {
"Tagwana-Djimini",
7675362,
"alv-snf",
}
m["alv-ten"] = {
"Tenda",
3217535,
"alv-fwo",
}
m["alv-the"] = {
"Talodi-Heiban",
1521145,
"alv",
}
m["alv-von"] = {
"Volta-Niger",
34177,
"nic-vco",
}
m["alv-wan"] = {
"Wara-Natyoro",
7968830,
"alv-sav",
}
m["alv-wjk"] = {
"Waja-Kam",
nil,
"alv-ada",
}
m["alv-yek"] = {
"Yekhee",
nil,
"alv-nce",
}
m["alv-yor"] = {
"Yoruba",
nil,
"alv-edk",
}
m["alv-yrd"] = {
"Yoruboid",
1789745,
"alv-von",
}
m["alv-yun"] = {
"Yungur",
84601642,
"alv-bam",
aliases = {"Bena-Mboi"},
}
-- Terjemahan ini merujuk kepada panduan "Wiki format Malay translation".
m["apa"] = {
"Apachean",
27758,
"ath",
aliases = {"Athabaskan Selatan"},
}
m["aqa"] = {
"Alacalufan",
1288430,
}
m["aql"] = {
"Algic",
721612,
aliases = {"Algonquian-Ritwan", "Algonquian-Wiyot-Yurok"},
}
m["art"] = {
"buatan",
33215,
"qfa-not",
aliases = {"artificial", "planned"},
}
m["ath"] = {
"Athabaskan",
27475,
"xnd",
}
m["ath-nor"] = {
"Athabaskan Utara",
20738,
"ath",
aliases = {"Athabaskan Utara"},
}
m["ath-pco"] = {
"Athabaskan Pantai Pasifik",
20654,
"ath",
}
m["auf"] = {
"Arauan",
626772,
aliases = {"Arahuan", "Arauán", "Arawa", "Arawan", "Arawán"},
}
--[=[
Kod bahasa dan keluarga luar biasa untuk bahasa Aborigin Australia
boleh menggunakan awalan "aus-", walaupun "aus" bukan lagi kod keluarga itu sendiri.
]=]--
m["aus-arn"] = {
"Arnhem",
2581700,
aliases = {"Gunwinyguan", "Macro-Gunwinyguan"},
}
m["aus-bub"] = {
"Bunuban",
2495148,
aliases = {"Bunaban"},
}
m["aus-cww"] = {
"New South Wales Tengah",
5061507,
"aus-pam",
}
m["aus-dal"] = {
"Daly",
2478079,
}
m["aus-dyb"] = {
"Dyirbalic",
1850666,
"aus-pam",
}
m["aus-gar"] = {
"Garawan",
5521951,
}
m["aus-gun"] = {
"Gunwinyguan",
2581700,
"aus-arn",
aliases = {"Gunwingguan"},
}
m["aus-jar"] = {
"Jarrakan",
2039423,
}
m["aus-kar"] = {
"Karnic",
4215578,
"aus-pam",
}
m["aus-mir"] = {
"Mirndi",
4294095,
}
m["aus-nga"] = {
"Ngayarda",
16153490,
"aus-psw",
}
m["aus-nyu"] = {
"Nyulnyulan",
2039408,
}
m["aus-pam"] = {
"Pama-Nyungan",
33942,
}
m["aus-pmn"] = {
"Paman",
2640654,
"aus-pam",
}
m["aus-psw"] = {
"Pama-Nyungan Barat Daya",
2258160,
"aus-pam",
}
m["aus-rnd"] = {
"Arandic",
4784071,
"aus-pam",
}
m["aus-tnk"] = {
"Tangkic",
1823065,
}
m["aus-wdj"] = {
"Iwaidjan",
4196968,
aliases = {"Yiwaidjan"},
}
m["aus-wor"] = {
"Worrorran",
2038619,
}
m["aus-yid"] = {
"Yidinyic",
4205849,
"aus-pam",
}
m["aus-yng"] = {
"Yangmanic",
42727644,
}
m["aus-yol"] = {
"Yolngu",
2511254,
"aus-pam",
aliases = {"Yolŋu", "Yolngu Matha"},
}
m["aus-yuk"] = {
"Yuin-Kuric",
3833021,
"aus-pam",
}
m["awd"] = {
"Arawak",
626753,
aliases = {"Arawakan", "Maipurean", "Maipuran"},
}
m["awd-nwk"] = {
"Nawiki",
nil,
"awd",
aliases = {"Newiki"},
}
m["awd-taa"] = {
"Ta-Arawak",
7672731,
"awd",
aliases = {"Ta-Arawakan", "Ta-Maipurean"},
}
m["azc"] = {
"Uto-Aztecan",
34073,
aliases = {"Uto-Aztekan"},
}
m["azc-cup"] = {
"Cupan",
19866871,
"azc-tak",
}
m["azc-dur"] = {
"Nahuatl Durango",
2386361,
"azc-nah",
aliases = {"Mexicanero"}
}
m["azc-hua"] = {
"Nahuatl Huasteca",
3832950,
"azc-nah",
}
m["azc-nah"] = {
"Nahuan",
11965602,
"azc",
aliases = {"Aztecan"},
}
m["azc-num"] = {
"Numic",
2657541,
"azc",
}
m["azc-pim"] = {
"Piman",
7194600,
"azc",
aliases = {"Tepiman"},
}
m["azc-tak"] = {
"Takic",
1280305,
"azc",
}
m["azc-trc"] = {
"Taracahitic",
4245032,
"azc",
aliases = {"Taracahitan"},
}
m["bad"] = {
"Banda",
806234,
"nic-ubg",
}
m["bad-cnt"] = {
"Banda Tengah",
3438391,
"bad",
}
m["bai"] = {
"Bamileke",
806005,
"nic-gre",
}
m["bat"] = {
"Baltic",
33136,
"ine-bsl",
}
m["bat-eas"] = {
"Baltik Timur",
149944,
"bat",
}
m["bat-wes"] = {
"Baltik Barat",
149946,
"bat",
}
m["ber"] = {
"Berber",
25448,
"afa",
aliases = {"Tamazight"},
}
m["bnt"] = {
"Bantu",
33146,
"nic-bds",
}
m["bnt-baf"] = {
"Bafia",
799784,
"bnt",
}
m["bnt-bbo"] = {
"Bafo-Bonkeng",
nil,
"bnt-saw",
}
m["bnt-bdz"] = {
"Boma-Dzing",
1729203,
"bnt",
}
m["bnt-bek"] = {
"Bekwilic",
nil,
"bnt-ndb",
}
m["bnt-bki"] = {
"Bena-Kinga",
16113307,
"bnt-bne",
}
m["bnt-bmo"] = {
"Bangi-Moi",
nil,
"bnt-bnm",
}
m["bnt-bne"] = {
"Bantu Timur Laut",
7057832,
"bnt",
}
m["bnt-bnm"] = {
"Bangi-Ntomba",
806477,
"bnt-bte",
}
m["bnt-boa"] = {
"Boan",
4931250,
"bnt",
aliases = {"Buan", "Ababuan"},
}
m["bnt-bot"] = {
"Botatwe",
4948532,
"bnt",
}
m["bnt-bsa"] = {
"Basaa",
809739,
"bnt",
}
m["bnt-bsh"] = {
"Bushoong",
5001551,
"bnt-bte",
}
m["bnt-bso"] = {
"Bantu Selatan",
980498,
"bnt",
}
m["bnt-bta"] = {
"Bati-Angba",
4869303,
"bnt-boa",
other_names = {"Late Bomokandian"},
aliases = {"Bwa"},
}
m["bnt-btb"] = {
"Beti",
35118,
"bnt",
}
m["bnt-bte"] = {
"Bangi-Tetela",
4855181,
"bnt",
}
m["bnt-bun"] = {
"Buja-Ngombe",
4986733,
"bnt-mbb",
}
m["bnt-chg"] = {
"Chaga",
33016,
"bnt-cht",
}
m["bnt-cht"] = {
"Chaga-Taita",
nil,
"bnt-bne",
}
m["bnt-clu"] = {
"Chokwe-Luchazi",
3339273,
"bnt",
}
m["bnt-com"] = {
"Comorian",
33077,
"bnt-sab",
}
m["bnt-glb"] = {
"Bantu Tasik-Tasik Besar",
5599420,
"bnt-bne",
}
m["bnt-haj"] = {
"Haya-Jita",
25502360,
"bnt-glb",
}
m["bnt-kak"] = {
"Kako",
nil,
"bnt-pob",
}
m["bnt-kav"] = {
"Kavango",
116544179,
"bnt-ksb",
}
m["bnt-kbi"] = {
"Komo-Bira",
6428591,
"bnt-boa",
}
m["bnt-kel"] = {
"Kele",
1738162,
"bnt-kts",
aliases = {"Sheke"},
}
m["bnt-kil"] = {
"Kilombero",
6408121,
"bnt",
}
m["bnt-kka"] = {
"Kikuyu-Kamba",
16114410,
"bnt-bne",
aliases = {"Thagiicu"},
}
m["bnt-kmb"] = {
"Kimbundu",
16947687,
"bnt",
}
m["bnt-kng"] = {
"Kongo",
6429214,
"bnt",
}
-- Terjemahan ini merujuk kepada panduan "Wiki format Malay translation"[cite: 1].
m["bnt-kpw"] = {
"Kpwe",
36428,
"bnt-saw",
}
m["bnt-ksb"] = {
"Kavango-Bantu Barat Daya",
6379098,
"bnt",
}
m["bnt-kts"] = {
"Kele-Tsogo",
6385577,
"bnt",
}
m["bnt-lbn"] = {
"Luban",
4536504,
"bnt",
}
m["bnt-leb"] = {
"Lebonya",
6511395,
"bnt",
}
m["bnt-lgb"] = {
"Lega-Binja",
6517694,
"bnt",
}
m["bnt-lok"] = {
"Logooli-Kuria",
nil,
"bnt-glb",
}
m["bnt-lub"] = {
"Luba",
nil,
"bnt-lbn",
}
m["bnt-lun"] = {
"Lunda",
6704091,
"bnt",
}
m["bnt-mak"] = {
"Makua",
6740431,
"bnt-bso",
aliases = {"Makhuwa"},
}
m["bnt-mbb"] = {
"Mboshi-Buja",
6799764,
"bnt",
}
m["bnt-mbe"] = {
"Mbole-Enya",
6799728,
"bnt",
}
m["bnt-mbi"] = {
"Mbinga",
nil,
"bnt-rur",
}
m["bnt-mbo"] = {
"Mboshi",
6799763,
"bnt-mbb",
}
m["bnt-mbt"] = {
"Mbete",
1346910,
"bnt-tmb",
aliases = {"Mbere"},
}
m["bnt-mby"] = {
"Mbeya",
nil,
"bnt-ruk",
}
m["bnt-mij"] = {
"Mijikenda",
6845474,
"bnt-sab",
}
m["bnt-mka"] = {
"Makaa",
nil,
"bnt-ndb",
}
m["bnt-mne"] = {
"Manenguba",
31147471,
"bnt",
aliases = {"Mbo", "Ngoe"},
}
m["bnt-mnj"] = {
"Makaa-Njem",
1603899,
"bnt-pob",
}
m["bnt-mon"] = {
"Mongo",
nil,
"bnt-bnm",
}
m["bnt-mra"] = {
"Mbugwe-Rangi",
6799795,
"bnt",
}
m["bnt-msl"] = {
"Masaba-Luhya",
12636428,
"bnt-glb",
}
m["bnt-mwi"] = {
"Mwika",
nil,
"bnt-ruk",
}
m["bnt-ncb"] = {
"Bantu Pantai Timur Laut",
7057848,
"bnt-bne",
}
m["bnt-ndb"] = {
"Ndzem-Bomwali",
nil,
"bnt-mnj",
}
m["bnt-ngn"] = {
"Ngondi-Ngiri",
7022532,
"bnt-mbb",
}
m["bnt-ngu"] = {
"Nguni",
961559,
"bnt-bso",
aliases = {"Ngoni"},
}
m["bnt-nya"] = {
"Nyali",
7070832,
"bnt-leb",
}
m["bnt-nyb"] = {
"Nyanga-Buyi",
7070882,
"bnt",
}
m["bnt-nyg"] = {
"Nyoro-Ganda",
12638666,
"bnt-glb",
}
m["bnt-nys"] = {
"Nyasa",
7070921,
"bnt",
}
m["bnt-nze"] = {
"Nzebi",
1755498,
"bnt-tmb",
aliases = {"Njebi"},
}
m["bnt-ova"] = {
"Ovambo",
36489,
"bnt-swb",
aliases = {"Oshivambo", "Oshiwambo", "Owambo"},
}
m["bnt-par"] = {
"Pare",
nil,
"bnt-ncb",
}
m["bnt-pen"] = {
"Pende",
7162373,
"bnt",
}
m["bnt-pob"] = {
"Pomo-Bomwali",
nil,
"bnt",
}
m["bnt-ruk"] = {
"Rukwa",
7378902,
"bnt",
}
m["bnt-run"] = {
"Rungwe",
nil,
"bnt-ruk",
}
m["bnt-rur"] = {
"Rufiji-Ruvuma",
7377947,
"bnt",
}
m["bnt-ruv"] = {
"Ruvu",
nil,
"bnt-ncb",
}
m["bnt-rvm"] = {
"Ruvuma",
nil,
"bnt-rur",
}
m["bnt-sab"] = {
"Sabaki",
2209395,
"bnt-ncb",
}
m["bnt-saw"] = {
"Sawabantu",
532003,
"bnt",
}
m["bnt-sbi"] = {
"Sabi",
7396071,
"bnt",
}
m["bnt-seu"] = {
"Seuta",
nil,
"bnt-ncb",
}
m["bnt-shh"] = {
"Shi-Havu",
nil,
"bnt-glb",
}
m["bnt-sho"] = {
"Shona",
2904660,
"bnt",
}
m["bnt-sir"] = {
"Sira",
1436372,
"bnt",
aliases = {"Shira-Punu"},
}
m["bnt-ske"] = {
"Soko-Kele",
nil,
"bnt-bte",
}
m["bnt-sna"] = {
"Sena",
nil,
"bnt-nys",
}
m["bnt-sts"] = {
"Sotho-Tswana",
2038386,
"bnt-bso",
}
m["bnt-swb"] = {
"Bantu Barat Daya",
116543539,
"bnt-ksb",
}
m["bnt-swh"] = {
"Swahili",
nil,
"bnt-sab",
}
m["bnt-tek"] = {
"Teke",
36528,
"bnt-tmb",
}
m["bnt-tet"] = {
"Tetela",
7706059,
"bnt-bte",
}
m["bnt-tkc"] = {
"Teke Tengah",
36473,
"bnt-tek",
}
m["bnt-tkm"] = {
"Takama",
nil,
"bnt-bne",
}
m["bnt-tmb"] = {
"Teke-Mbede",
7695332,
"bnt",
aliases = {"Teke-Mbere"},
}
m["bnt-tso"] = {
"Tsogo",
2458420,
other_names = {"Okani"}, -- nampaknya merupakan alias dalam Glottolog
"bnt-kts",
}
m["bnt-tsr"] = {
"Tswa-Ronga",
12643962,
"bnt-bso",
}
m["bnt-yak"] = {
"Yaka",
8047027,
"bnt",
}
m["bnt-yko"] = {
"Yasa-Kombe",
nil,
"bnt-saw",
}
m["bnt-zbi"] = {
"Zamba-Binza",
nil,
"bnt-bnm",
}
m["btk"] = {
"Batak",
1998595,
"poz-nws",
}
--[=[
Kod bahasa dan keluarga luar biasa untuk bahasa Peribumi Amerika Tengah
boleh menggunakan awalan "cai-", walaupun "cai" bukan lagi kod keluarga itu sendiri.
]=]--
--[=[
Kod bahasa dan keluarga luar biasa untuk bahasa Kaukasia boleh menggunakan
awalan "cau-", walaupun "cau" bukan lagi kod keluarga itu sendiri.
]=]--
m["cau-abz"] = {
"Abkhaz-Abaza",
4663617,
"cau-nwc",
other_names = {"Abkhaz-Tapanta"},
aliases = {"Abazgi"},
}
m["cau-and"] = {
"Andian",
492152,
"cau-ava",
aliases = {"Andik"},
}
m["cau-ava"] = {
"Avaro-Andian",
4055404,
"cau-nec",
aliases = {"Avar-Andian", "Avar-Andi", "Avar-Andik"},
}
m["cau-cir"] = {
"Circassian",
858543,
"cau-nwc",
aliases = {"Cherkess"},
}
m["cau-drg"] = {
"Dargwa",
5222637,
"cau-nec",
other_names = {"Dargin"},
}
m["cau-esm"] = {
"Samur Timur",
nil,
"cau-sam",
}
m["cau-ets"] = {
"Tsezian Timur",
121437666,
"cau-tsz",
aliases = {"Tsezik Timur", "Didoik Timur"},
}
m["cau-lzg"] = {
"Lezghian",
2144370,
"cau-nec",
aliases = {"Lezgi", "Lezgian", "Lezgik"},
}
m["cau-nkh"] = {
"Nakh",
24441,
"cau-nec",
aliases = {"Kaukasia Utara-Tengah"},
}
m["cau-nec"] = {
"Kaukasia Timur Laut",
27387,
aliases = {"Dagestani", "Nakho-Dagestani", "Kaspia"},
}
m["cau-nwc"] = {
"Kaukasia Barat Laut",
33852,
aliases = {"Abkhaz-Adyghe", "Abkhazo-Adyghean", "Pontik"},
}
m["cau-sam"] = {
"Samur",
15229151,
"cau-lzg",
}
m["cau-ssm"] = {
"Samur Selatan",
nil,
"cau-sam",
}
m["cau-tsz"] = {
"Tsezian",
1651530,
"cau-nec",
aliases = {"Tsezik", "Didoik"},
}
m["cau-vay"] = {
"Vainakh",
4102486,
"cau-nkh",
aliases = {"Veinakh", "Vaynakh"},
}
m["cau-wsm"] = {
"Samur Barat",
nil,
"cau-sam",
}
m["cau-wts"] = {
"Tsezian Barat",
121437697,
"cau-tsz",
aliases = {"Tsezik Barat", "Didoik Barat"},
}
m["cba"] = {
"Chibchan",
520478,
"qfa-mch", -- atau tiada jika Makro-Chibchan dianggap tidak terbukti
}
m["ccs"] = {
"Kartvelian",
34030,
aliases = {"Kaukasia Selatan"},
}
m["ccs-gzn"] = {
"Georgia-Zan",
34030,
"ccs",
aliases = {"Karto-Zan"},
}
m["ccs-zan"] = {
"Zan",
2606912,
"ccs-gzn",
aliases = {"Zanuri", "Colchian"},
}
m["cdc"] = {
"Chadik",
33184,
"afa",
}
m["cdc-cbm"] = {
"Chadik Tengah",
2251547,
"cdc",
aliases = {"Biu-Mandara"},
}
m["cdc-est"] = {
"Chadik Timur",
2276221,
"cdc",
}
m["cdc-mas"] = {
"Masa",
2136092,
"cdc",
}
m["cdc-wst"] = {
"Chadik Barat",
2447774,
"cdc",
}
m["cdd"] = {
"Caddoan",
1025090,
}
m["cel"] = {
"Keltik",
25293,
"ine",
}
m["cel-bry"] = {
"Brythonic",
156877,
"cel-ins",
aliases = {"Brittonic"},
}
m["cel-brs"] = {
"Brythonic Barat Daya",
2612853,
"cel-bry",
aliases = {"Brittonic Barat Daya"},
}
m["cel-brw"] = {
"Brythonic Barat",
593069,
"cel-bry",
aliases = {"Brittonic Barat"},
}
m["cel-gae"] = {
"Goidelik",
56433,
"cel-ins",
aliases = {"Gaelik"},
protoLanguage = "pgl",
}
m["cel-his"] = {
"Hispano-Keltik",
4204136,
"cel",
}
m["cel-ins"] = {
"Keltik Kepulauan",
214506,
"cel",
}
m["chi"] = {
"Chimakuan",
1073088,
}
m["chm"] = {
"Mari",
973685,
"urj",
}
m["cmc"] = {
"Chamik",
2997506,
"poz-mcm",
}
m["crp"] = {
"kreol atau pidgin",
19682167,
"qfa-cnt",
}
m["csu"] = {
"Sudanik Tengah",
190822,
"ssa",
}
m["csu-bba"] = {
"Bongo-Bagirmi",
3505042,
"csu",
}
m["csu-bbk"] = {
"Bongo-Baka",
4941917,
"csu-bba",
}
m["csu-bgr"] = {
"Bagirmi",
4841948,
"csu-bba",
aliases = {"Bagirmik"},
}
m["csu-bkr"] = {
"Birri-Kresh",
nil,
"csu",
}
m["csu-ecs"] = {
"Sudanik Tengah Timur",
16911698,
"csu",
aliases = {"Sudanik Timur Tengah", "Sudanik Tengah Timur", "Lendu-Mangbetu"},
}
m["csu-kab"] = {
"Kaba",
6343715,
"csu-bba",
}
m["csu-lnd"] = {
"Lendu",
6522357,
"csu-ecs",
aliases = {"Lenduik"},
}
m["csu-maa"] = {
"Mangbetu",
6748874,
"csu-ecs",
aliases = {"Mangbetu-Asoa", "Mangbetu-Asua"},
}
m["csu-mle"] = {
"Mangbutu-Lese",
17009406,
"csu-ecs",
aliases = {"Mangbutu-Efe", "Mangbutu", "Membi-Mangbutu-Efe"},
}
m["csu-mma"] = {
"Moru-Madi",
6915156,
"csu-ecs",
}
m["csu-sar"] = {
"Sara",
2036691,
"csu-bba",
}
m["csu-val"] = {
"Vale",
7909520,
"csu-bba",
}
m["cus"] = {
"Kushitik",
33248,
"afa",
}
m["cus-cen"] = {
"Kushitik Tengah",
56569,
"cus",
}
m["cus-eas"] = {
"Kushitik Timur",
56568,
"cus",
}
m["cus-hec"] = {
"Kushitik Timur Tanah Tinggi",
56524,
"cus-eas",
}
m["cus-som"] = {
"Somaloid",
56774,
"cus-eas",
aliases = {"Sam", "Makro-Somali"},
}
m["cus-sou"] = {
"Kushitik Selatan",
56525,
"cus",
}
m["day"] = {
"Dayak Darat",
2760613,
"poz",
}
m["del"] = {
"Lenape",
2665761,
"alg-eas",
aliases = {"Delaware"},
}
m["den"] = {
"Slavey",
13272,
"ath-nor",
aliases = {"Slave", "Slavé"},
}
m["dmn"] = {
"Mande",
33681,
"nic",
}
m["dmn-bbu"] = {
"Bisa-Busa",
12627956,
"dmn-mde",
}
m["dmn-emn"] = {
"Manding Timur",
nil,
"dmn-man",
}
m["dmn-jje"] = {
"Jogo-Jeri",
nil,
"dmn-mjo",
}
m["dmn-man"] = {
"Manding",
35772,
"dmn-mmo",
}
m["dmn-mda"] = {
"Mano-Dan",
nil,
"dmn-mse",
}
m["dmn-mdc"] = {
"Mande Tengah",
5972907,
"dmn-mdw",
}
m["dmn-mde"] = {
"Mande Timur",
12633080,
"dmn",
}
m["dmn-mdw"] = {
"Mande Barat",
16113831,
"dmn",
}
m["dmn-mjo"] = {
"Manding-Jogo",
12636153,
"dmn-mdc",
}
m["dmn-mmo"] = {
"Manding-Mokole",
nil,
"dmn-mva",
}
m["dmn-mnk"] = {
"Maninka",
36186,
"dmn-emn",
}
m["dmn-mnw"] = {
"Mande Barat Laut",
5972910,
"dmn-mdw",
}
m["dmn-mok"] = {
"Mokole",
16935447,
"dmn-mmo",
}
m["dmn-mse"] = {
"Mande Tenggara",
5972912,
"dmn-mde",
}
m["dmn-msw"] = {
"Mande Barat Daya",
12633904,
"dmn-mdw",
}
m["dmn-mva"] = {
"Manding-Vai",
nil,
"dmn-mjo",
}
m["dmn-nbe"] = {
"Nwa-Beng",
nil,
"dmn-mse",
}
m["dmn-sam"] = {
"Samo",
36327,
"dmn-bbu",
aliases = {"Samuik"},
}
m["dmn-smg"] = {
"Samogo",
7410000,
"dmn-mnw",
aliases = {"Duun-Seenku"},
}
m["dmn-snb"] = {
"Soninke-Bobo",
16111680,
"dmn-mnw",
}
m["dmn-sya"] = {
"Susu-Yalunka",
nil,
"dmn-mdc",
}
m["dmn-vak"] = {
"Vai-Kono",
nil,
"dmn-mva",
}
m["dmn-wmn"] = {
"Manding Barat",
nil,
"dmn-man",
}
m["dra"] = {
"Dravida",
33311,
}
m["dra-cen"] = {
"Dravida Tengah",
12628823,
"dra",
}
m["dra-gki"] = {
"Gondi-Kui",
12631610,
"dra-sdt",
}
m["dra-gon"] = {
"Gondi",
55639812,
"dra-gki",
}
m["dra-imd"] = {
"Irula-Muduga",
nil,
"dra-tkn",
}
m["dra-kan"] = {
"Kannadoid",
6363888,
"dra-tkn",
protoLanguage = "dra-okn",
}
m["dra-kki"] = {
"Konda-Kui",
nil,
"dra-gki",
}
m["dra-kml"] = {
"Kurux-Malto",
68002822,
"dra-nor",
}
m["dra-knk"] = {
"Kolami-Naiki",
10547037,
"dra-cen",
}
-- Terjemahan ini merujuk kepada panduan "Wiki format Malay translation"[cite: 1].
m["dra-kod"] = {
"Kodagu",
67983106,
"dra-tkd",
}
m["dra-kor"] = {
"Koraga",
33394,
"dra-tlk",
}
m["dra-mal"] = {
"Malayalamoid",
6741581,
"dra-tml",
}
m["dra-mdy"] = {
"Madiya",
27602,
"dra-gon",
}
m["dra-mlo"] = {
"Malto",
nil,
"dra-kml",
}
m["dra-mur"] = {
"Muria",
6938499,
"dra-gon",
}
m["dra-nor"] = {
"Dravida Utara",
16110967,
"dra",
}
m["dra-pgd"] = {
"Parji-Gadaba",
10620428,
"dra-cen",
}
m["dra-sdo"] = {
"Dravida Selatan I",
16112843, -- "South Dravidian" Wikipedia ialah Dravida Selatan I dalam skema ini.
"dra-sou",
aliases = {"Dravida Selatan"}, -- Inilah sebabnya I dan II digunakan.
}
m["dra-sdt"] = {
"Dravida Selatan II",
12633975,
"dra-sou",
aliases = {"Dravida Selatan-Tengah"},
}
m["dra-sou"] = {
"Dravida Selatan",
128886618,
"dra",
aliases = {"Dravida Selatan"},
}
m["dra-tam"] = {
"Tamiloid",
7681417,
"dra-tml",
protoLanguage = "oty",
}
m["dra-tel"] = {
"Teluguik",
nil,
"dra-sdt",
protoLanguage = "dra-ote",
}
m["dra-tkd"] = {
"Tamil-Kodagu",
25494510,
"dra-tkn",
}
m["dra-tkn"] = {
"Tamil-Kannada",
6478506,
"dra-sdo",
}
m["dra-tkt"] = {
"Toda-Kota",
67983857,
"dra-tkd",
}
m["dra-tlk"] = {
"Tulu-Koraga",
nil,
"dra-sdo",
}
m["dra-tml"] = {
"Tamil-Malayalam",
10690507,
"dra-tkd",
}
m["egx"] = {
"Mesir",
50868,
"afa",
protoLanguage = "egy",
}
m["ero"] = {
"Horpa",
56854,
"sit-wgy",
}
m["esx"] = {
"Eskimo-Aleut",
25946,
}
m["esx-esk"] = {
"Eskimo",
25946,
"esx",
}
m["esx-inu"] = {
"Inuit",
27796,
"esx-esk",
}
m["euq"] = {
"Vaskonik",
4669240,
}
m["gba"] = {
"Gbaya",
3099986,
"alv-sav",
}
m["gba-eas"] = {
"Gbaya Timur",
nil,
"gba",
}
m["gba-sou"] = {
"Gbaya Selatan",
nil,
"gba",
}
m["gba-wes"] = {
"Gbaya Barat",
nil,
"gba",
}
m["gem"] = {
"Jermanik",
21200,
"ine",
}
m["gio"] = {
"Gelao",
56401,
"qfa-kra",
}
m["gme"] = {
"Jermanik Timur",
108662,
"gem",
}
m["gmq"] = {
"Jermanik Utara",
106085,
"gem",
}
m["gmq-eas"] = {
"Scandinavia Timur",
3090263,
"gmq",
protoLanguage = "non-oen",
}
m["gmq-ins"] = {
"Scandinavia Kepulauan",
nil,
"gmq-wes",
}
m["gmq-wes"] = {
"Scandinavia Barat",
1792570,
"gmq",
protoLanguage = "non-own",
}
m["gmw"] = {
"Jermanik Barat",
26721,
"gem",
}
m["gmw-afr"] = {
"Anglo-Frisia",
5329170,
"gmw-nsg",
}
m["gmw-ang"] = {
"Anglik",
1346342,
"gmw-afr",
protoLanguage = "ang",
}
m["gmw-fri"] = {
"Frisia",
25325,
"gmw-afr",
protoLanguage = "ofs",
}
m["gmw-frk"] = {
"Frankonia Bawah",
153050,
"gmw",
protoLanguage = "frk",
}
m["gmw-hgm"] = {
"Jerman Tinggi",
52040,
"gmw",
protoLanguage = "goh",
}
m["gmw-ian"] = {
"Anglo-Norman Ireland",
120719384,
"gmw-ang",
protoLanguage = "enm",
}
m["gmw-lgm"] = {
"Jerman Rendah",
25433,
"gmw-nsg",
protoLanguage = "osx",
}
m["gmw-nsg"] = {
"Jermanik Laut Utara",
30134,
"gmw",
aliases = {"Ingvaeonik"},
}
m["gn"] = {
"Guarani",
35876,
"tup-gua",
aliases = {"Guaraní"},
}
m["grb"] = {
"Grebo tepat",
35257,
"kro-grb",
}
m["grk"] = {
"Hellenik",
2042538,
"ine",
aliases = {"Yunani"},
}
m["him"] = {
"Pahari Barat",
10939493,
"inc-pah",
aliases = {"Himachali"},
}
m["hmn"] = {
"Hmongik",
3307894,
"hmx",
}
m["hmx"] = {
"Hmong-Mien",
33322,
aliases = {"Miao-Yao"},
}
m["hmx-mie"] = {
"Mienik",
7992695,
"hmx",
}
m["hok"] = {
"Hokan",
33406,
}
m["hyx"] = {
"Armenia",
8785,
"ine",
}
m["iir"] = {
"Indo-Iran",
33514,
"ine",
}
m["iir-nur"] = {
"Nuristani",
161804,
"iir",
}
m["nur-nor"] = {
"Nuristani Utara",
nil,
"iir-nur",
}
m["nur-sou"] = {
"Nuristani Selatan",
nil,
"iir-nur",
}
m["ijo"] = {
"Ijoid",
1325759,
"nic",
other_names = {"Ijaw"}, -- Ijaw mungkin satu subkeluarga
}
m["inc"] = {
"Indo-Arya",
33577,
"iir",
aliases = {"Indik"},
}
m["inc-bas"] = {
"Bengali-Assam",
4179137,
"inc-eas",
aliases = {"Assam-Bengali", "Gauda-Kamarupa"},
}
m["inc-bhi"] = {
"Bhil",
4901727,
"inc-cen",
}
m["inc-bih"] = {
"Bihari",
135305,
"inc-eas",
}
m["inc-cen"] = {
"Indo-Arya Tengah",
10979187,
"inc",
protoLanguage = "inc-asa",
}
m["inc-chi"] = {
"Chitrali",
11732797,
"inc-dar",
}
m["inc-dar"] = {
"Dardik",
161101,
"inc",
protoLanguage = "inc-ash",
}
m["inc-dre"] = {
"Dardik Timur",
nil,
"inc-dar",
}
m["inc-dng"] = {
"Dangari",
nil,
"inc-shn",
}
m["inc-eas"] = {
"Indo-Arya Timur",
12593391,
"inc",
protoLanguage = "inc-aav",
}
m["inc-hal"] = {
"Halbik",
16910593,
"inc-eas",
aliases = {"Halbi"},
}
m["inc-hie"] = {
"Hindi Timur",
4126648,
"inc-cen",
aliases = {"Purabiyā"},
protoLanguage = "inc-oaw",
}
m["inc-hiw"] = {
"Hindi Barat",
12600937,
"inc-cen",
protoLanguage = "inc-ohi",
}
m["inc-hnd"] = {
"Hindustani",
11051,
"inc-hiw",
aliases = {"Hindi-Urdu"},
protoLanguage = "hi-mid",
}
m["inc-ins"] = {
"Indo-Arya Kepulauan",
12179302,
"inc",
protoLanguage = "inc-apa",
}
m["inc-kas"] = {
"Kashmirik",
nil,
"inc-dre",
aliases = {"Kashmiri"},
}
m["inc-koh"] = {
"Kohistani",
13018610,
"inc-dre",
}
m["inc-krd"] = {
"Bahasa-bahasa KRDS",
6356154,
"inc-eas",
aliases = {"Kamta, Rajbanshi, Deshi dan Surjapuri", "Bahasa-bahasa KRNB", "Kamta, Rajbanshi dan Bangla Deshi Utara"},
}
m["inc-kun"] = {
"Kunar",
nil,
"inc-dar",
}
m["inc-mid"] = {
"Indo-Arya Pertengahan",
3236316,
"inc",
aliases = {"Indik Pertengahan"},
}
m["inc-nwe"] = {
"Indo-Arya Barat Laut",
16111018,
"inc",
protoLanguage = "inc-apa",
}
m["inc-nor"] = {
"Indo-Arya Utara",
946077,
"inc",
protoLanguage = "inc-aka",
}
m["inc-old"] = {
"Indo-Arya Kuno",
118976896,
"inc",
aliases = {"Indik Kuno"},
}
m["inc-pac"] = {
"Pahari Tengah",
nil,
"inc-pah",
}
m["inc-pae"] = {
"Pahari Timur",
nil,
"inc-pah",
}
m["inc-pah"] = {
"Pahari",
946077,
"inc-nor",
aliases = {"Pahadi"},
protoLanguage = "inc-aka",
}
m["inc-pan"] = {
"Punjabik",
2656685,
"inc-nwe",
aliases = {"Punjabik Raya"},
protoLanguage = "inc-opa",
}
m["inc-pas"] = {
"Pashayi",
36670,
"inc-dar",
aliases = {"Pashai"},
}
m["inc-rom"] = {
"Romani",
13201,
"inc-wes",
aliases = {"Romany", "Gipsi"},
}
m["inc-sad"] = {
"Sadanik",
109546827,
"inc-bih",
aliases = {"Sadani"},
}
m["inc-shn"] = {
"Shinaik",
12646125,
"inc-dre",
}
m["inc-snd"] = {
"Sindhik",
7522212,
"inc-nwe",
protoLanguage = "inc-avr",
}
m["inc-sou"] = {
"Indo-Arya Selatan",
10856062,
"inc",
protoLanguage = "inc-ama",
}
m["inc-tha"] = {
"Tharu",
34035,
"inc-eas",
}
m["inc-wes"] = {
"Indo-Arya Barat",
nil,
"inc",
protoLanguage = "inc-agu",
}
m["ine"] = {
"Indo-Eropah",
19860,
aliases = {"Indo-Jermanik"},
}
m["ine-ana"] = {
"Anatolia",
147085,
"ine",
}
m["ine-bsl"] = {
"Balto-Slav",
147356,
"ine",
}
m["ine-luw"] = {
"Luwik",
115748615,
"ine-ana",
aliases = {"Luvik"},
}
m["ine-toc"] = {
"Tokharia",
37029,
"ine",
aliases = {"Tokharian"},
}
m["ira"] = {
"Iran",
33527,
"iir",
}
m["ira-csp"] = {
"Kaspia",
5049123,
"ira-mpr",
}
m["ira-cen"] = {
"Iran Tengah",
nil,
"ira",
}
m["ira-kms"] = {
"Komisenian",
nil,
"ira-mpr",
aliases = {"Semnani"},
}
m["ira-lur"] = {
"Lurik",
nil, -- ?
"ira-swi",
}
m["ira-mid"] = {
"Iran Pertengahan",
6841465,
"ira",
}
m["ira-mny"] = {
"Munji-Yidgha",
nil,
"ira-sym",
aliases = {"Yidgha-Munji"},
}
m["ira-msh"] = {
"Mazanderani-Shahmirzadi",
nil,
"ira-csp",
}
m["ira-nei"] = {
"Iran Timur Laut",
10775567,
"ira",
}
m["ira-nwi"] = {
"Iran Barat Laut",
390576,
"ira-wes",
}
m["ira-old"] = {
"Iran Kuno",
23301845,
"ira",
}
m["ira-orp"] = {
"Ormuri-Parachi",
nil,
"ira-sei",
}
m["ira-pat"] = {
"Pathan",
nil,
"ira-sei",
}
m["ira-sbc"] = {
"Sogdo-Bactria",
nil,
"ira-nei",
}
m["ira-mpr"] = {
"Medo-Parthia",
nil,
"ira-nwi",
aliases = {"Partho-Media"},
}
m["ira-sgi"] = {
"Sanglechi-Ishkashimi",
18711232,
"ira-sei",
}
m["ira-shr"] = {
"Shughni-Roshani",
11732824,
"ira-shy",
}
m["ira-shy"] = {
"Shughni-Yazghulami",
nil,
"ira-sym",
}
m["ira-sgc"] = {
"Sogdik",
nil,
"ira-sbc",
aliases = {"Sogdian"},
}
m["ira-sei"] = {
"Iran Tenggara",
3833002,
"ira",
}
m["ira-swi"] = {
"Iran Barat Daya",
390424,
"ira-wes",
}
m["ira-sym"] = {
"Shughni-Yazghulami-Munji",
nil,
"ira-sei",
}
m["ira-wes"] = {
"Iran Barat",
129850,
"ira",
}
m["ira-zgr"] = {
"Zaza-Gorani",
167854,
"ira-mpr",
aliases = {"Zaza-Gurani", "Gorani-Zaza"},
}
m["iro"] = {
"Iroquoia",
33623,
}
m["iro-nor"] = {
"Iroquoia Utara",
nil,
"iro",
}
m["itc"] = {
"Italik",
131848,
"ine",
}
m["itc-laf"] = {
"Latino-Faliskan",
33478,
"itc",
aliases = {"Latinian"},
}
m["itc-sbl"] = {
"Osko-Umbria",
515194,
"itc",
aliases = {"Sabelik", "Sabelian"},
}
m["jpx"] = {
"Japonik",
33612,
aliases = {"Jepun", "Jepun-Ryukyu"},
}
m["jpx-nry"] = {
"Ryukyu Utara",
20862796,
"jpx-ryu",
}
m["jpx-ryu"] = {
"Ryukyu",
56393,
"jpx",
}
m["jpx-sry"] = {
"Ryukyu Selatan",
18392243,
"jpx-ryu",
}
m["kar"] = {
"Karen",
1364815,
"sit",
}
m["kca"] = {
"Khanty",
33563,
"urj-ugr",
aliases = {"Khantyik", "Khantik"},
}
--[=[
Kod bahasa dan keluarga luar biasa bagi bahasa Khoisan dan Kordofania boleh menggunakan
awalan "khi-" dan "kdo-" masing-masing, walaupun ia bukan lagi kod keluarga itu sendiri.
]=]--
m["khi-kal"] = {
"Khoe Kalahari",
nil,
"khi-kho",
}
m["khi-khk"] = {
"Khoekhoe",
nil,
"khi-kho",
}
m["khi-kkw"] = {
"Khoe-Kwadi",
60785084,
aliases = {"Kwadi-Khoe"},
}
m["khi-kho"] = {
"Khoe",
2736449,
"khi-kkw",
aliases = {"Khoisan Tengah"},
}
m["khi-kxa"] = {
"Kx'a",
6450587,
aliases = {"Kxa", "Ju-ǂHoan"},
}
m["khi-tuu"] = {
"Tuu",
631046,
aliases = {"Kwi", "Taa-Kwi", "Khoisan Selatan", "Taa-ǃKwi", "Taa-ǃUi", "ǃUi-Taa"},
}
m["kro"] = {
"Kru",
33535,
"nic-vco",
}
m["kro-aiz"] = {
"Aizi",
4699431,
"kro",
}
m["kro-bet"] = {
"Bété",
32956,
"kro-ekr",
}
m["kro-did"] = {
"Dida",
32685,
"kro-ekr",
}
m["kro-ekr"] = {
"Kru Timur",
5972899,
"kro",
}
m["kro-grb"] = {
"Grebo",
5601537,
"kro-wkr",
}
m["kro-wee"] = {
"Wee",
nil,
"kro-wkr",
}
m["kro-wkr"] = {
"Kru Barat",
5972897,
"kro",
}
m["ku"] = {
"Kurdish",
36368,
"ira-nwi",
}
m["kv"] = {
"Komi",
36126, -- "Bahasa Komi" di Wikipedia tetapi merujuk khusus kepada Komi-Zyrian; tiada item Wikidata untuk keluarga Komi
"urj-prm",
}
m["map"] = {
"Austronesia",
49228,
}
m["map-ata"] = {
"Atayalik",
716610,
"map",
}
m["mjg"] = {
"Monguor",
34214,
"xgn-shr",
}
m["mkh"] = {
"Mon-Khmer",
33199,
"aav",
}
m["mkh-asl"] = {
"Aslian",
3111082,
"mkh",
}
m["mkh-ban"] = {
"Bahnarik",
56309,
"mkh",
}
m["mkh-kat"] = {
"Katuik",
56697,
"mkh",
}
m["mkh-khm"] = {
"Khmuik",
1323245,
"mkh",
}
-- Terjemahan ini merujuk kepada panduan "Wiki format Malay translation"[cite: 1].
m["mkh-kmr"] = {
"Khmerik",
nil,
"mkh",
}
m["mkh-mnc"] = {
"Monik",
3217497,
"mkh",
}
m["mkh-mng"] = {
"Mangik",
3509556,
"mkh",
}
m["mkh-nbn"] = {
"Bahnarik Utara",
56309,
"mkh-ban",
}
m["mkh-pal"] = {
"Palaungik",
2391173,
"mkh",
}
m["mkh-pea"] = {
"Pearik",
3073022,
"mkh",
}
m["mkh-pkn"] = {
"Pakanik",
nil,
"mkh-mng",
}
m["mkh-vie"] = {
"Vietik",
2355546,
"mkh",
}
m["mno"] = {
"Manobo",
3217483,
"phi",
}
m["mns"] = {
"Mansi",
33759,
"urj-ugr",
aliases = {"Mansik"},
}
m["mun"] = {
"Munda",
33892,
"aav",
}
m["myn"] = {
"Maya",
33738,
}
--[=[
Kod bahasa dan keluarga luar biasa bagi bahasa-bahasa Peribumi Amerika Utara
boleh menggunakan awalan "nai-", walaupun "nai" bukan lagi kod keluarga itu sendiri.
]=]--
m["nai-cat"] = {
"Catawban",
3446638,
"nai-sca",
}
m["nai-chu"] = {
"Chumashan",
1288420,
}
m["nai-ckn"] = {
"Chinookan",
610586,
}
m["nai-coo"] = {
"Coosan",
940278,
}
m["nai-jcq"] = {
"Jicaquean",
12179308,
"hok",
}
m["nai-ker"] = {
"Keresan",
35878,
}
m["nai-klp"] = {
"Kalapuyan",
1569040,
}
m["nai-kta"] = {
"Kiowa-Tanoan",
386288,
}
m["nai-len"] = {
"Lencan",
36189,
aliases = {"Lenca"},
}
m["nai-mdu"] = {
"Maiduan",
33502,
}
m["nai-miz"] = {
"Mixe-Zoquean",
954016,
aliases = {"Mixe-Zoque"},
}
m["nai-min"] = {
"Misumalpan",
281693,
"qfa-mch",
aliases = {"Misuluan", "Misumalpa"},
}
m["nai-mus"] = {
"Muskogean",
902978,
aliases = {"Muskhogean"},
}
m["nai-pak"] = {
"Pakawan",
65085487,
"hok",
}
m["nai-pal"] = {
"Palaihnihan",
1288332,
}
m["nai-plp"] = {
"Penutian Penara",
2307476,
}
m["nai-pom"] = {
"Pomoan",
2618420,
"hok",
aliases = {"Pomo", "Kulanapan"},
}
m["nai-sca"] = {
"Siouan-Catawban",
34181,
}
m["nai-shp"] = {
"Sahaptian",
114782,
"nai-plp",
}
m["nai-shs"] = {
"Shastan",
2991735,
"hok",
}
m["nai-tot"] = {
"Totozoquean",
7828419,
}
m["nai-ttn"] = {
"Totonakan",
34039,
aliases = {"Totonak-Tepehua", "Totonakan-Tepehuan"},
varieties = {"Totonak"},
}
m["nai-tqn"] = {
"Tequistlatecan",
1568317,
"hok",
aliases = {"Tequistlatec", "Chontal", "Chontalan", "Chontal Oaxaca", "Chontal dari Oaxaca"},
}
m["nai-tsi"] = {
"Tsimshianik",
34134,
}
m["nai-utn"] = {
"Utian",
13371763,
"nai-you",
aliases = {"Miwok-Costanoan", "Mutsun"},
}
m["nai-wtq"] = {
"Wintuan",
1294259,
aliases = {"Wintun"},
}
m["nai-xin"] = {
"Xincan",
1546494,
aliases = {"Xinca"},
}
m["nai-ykn"] = {
"Yukian",
2406722,
aliases = {"Yuki-Wappo"},
}
m["nai-you"] = {
"Yok-Utian",
2886186,
}
m["nai-yuc"] = {
"Yuman-Cochimí",
579137,
}
m["ngf"] = {
"Trans-New Guinea",
34018,
}
m["ngf-ais"] = {
"Aisian",
nil,
"ngf-eso",
}
m["ngf-ang"] = {
"Angan",
3217366,
"ngf",
aliases = {"Banjaran Kratke"}, -- Usher
}
m["ngf-ank"] = {
"Angal-Kewa",
12626916, -- wujud dalam dewiki dan hrwiki
"ngf-sak",
}
m["ngf-ask"] = {
"Asmat-Kamoro",
3031400,
"ngf",
-- Wikipedia menggunakan Asmat-Kamoro untuk merujuk kepada kelompok yang lebih sempit tanpa bahasa-bahasa Sabakor (Buruwai dan Kamberau,
-- yang dipecahkan oleh Glottolog kepada Kamrau Utara dan Kamrau Selatan [sic]), dan menggunakan Asmat-Kamrau untuk merujuk kepada apa yang kita
-- dan Glottolog panggil Asmat-Kamoro. Glottolog tidak mengiktiraf pengelompokan yang lebih sempit ini.
aliases = {"Asmat-Kamrau", -- Wikipedia
"Teluk Asmat-Kamrau", -- Usher
},
}
m["ngf-asm"] = {
"Asmat",
4807421,
"ngf-ask",
}
m["ngf-ata"] = {
"Ankave-Tainae-Akoye",
nil,
"ngf-ang",
aliases = {"Banjaran Kratke Barat Daya"}, -- Usher
}
m["ngf-awd"] = {
"Awyu-Dumut", -- [[w:Awyu-Dumut languages]] dilencongkan ke [[w:Greater Awyu languages]]
4830163, -- wujud dalam eswiki, hrwiki dan ruwiki
"ngf-gaw",
aliases = {"Sungai Digul Tengah"}, -- Usher
}
m["ngf-awy"] = {
"Awyu",
96372866,
"ngf-awd",
}
m["ngf-bda"] = {
"Becking-Dawi",
nil, -- Q55993716 ([[Category:Becking–Dawi languages]]) wujud dalam enwiki
"ngf-gaw",
aliases = {"Sungai Becking dan Dawi"}, -- Usher
}
m["ngf-bin"] = {
"Binanderean",
3217374, -- Wikidata tidak membezakan Binanderean daripada Binanderean Raya
"ngf-gbi",
aliases = {"Oro"}, -- Usher (2020)
}
m["ngf-boa"] = {
"Boane",
nil,
"ngf-era",
aliases = {"Boana", -- nama Glottolog
"Wain"}, -- tiada dalam Usher; "Wain" sering mengecualikan Mungkip, mungkin kerana kurang didokumentasikan
}
m["ngf-bos"] = {
"Bosavi",
4947122,
"ngf",
aliases = {"Penara Papua"}, -- nama alternatif yang diberikan oleh Wikipedia
}
m["ngf-bsi"] = {
"Baruya-Simbari",
nil,
"ngf-ang",
aliases = {"Banjaran Kratke Barat Laut"}, -- Usher
}
m["ngf-cda"] = {
"Dani Tengah",
nil,
"ngf-dan",
aliases = {"Dani"}, -- Usher
}
m["ngf-chw"] = {
"Chimbu-Wahgi",
3217383,
"ngf",
aliases = {"Simbu-Tanah Tinggi Barat"}, -- nama alternatif yang diberikan oleh Wikipedia
}
m["ngf-dag"] = {
"Dagan",
5208454,
"ngf", -- tidak diterima sebagai TNG oleh Glottolog tetapi diterima oleh sumber-sumber lain
aliases = {"Banjaran Meneao"},
}
m["ngf-dal"] = {
"Dallman",
nil,
"ngf-huo",
aliases = {"Kinalakna-Kumukio", -- Pawley-Hammarström, yang mengecualikan Nomu, namun mereka hanya mempunyai senarai angka bahasa tersebut untuk dirujuk
"Huon Timur Laut"}, -- Usher
}
m["ngf-dan"] = {
"Dani",
3217389,
"ngf",
-- Wikipedia menamakan semula bahasa-bahasa Dani kepada bahasa-bahasa Lembah Baliem dan kadangkala (tetapi tidak konsisten)
-- mengekalkan nama Dani (atau "Dani tepat") untuk kelompok yang lebih sempit mengecualikan Wano dan bahasa-bahasa Ngalik
-- yang kurang didokumentasikan (Nduga, Silimo, dan gugusan dialek Yali, yang mana kita, menurut Ethnologue dan Glottolog, bahagikan kepada
-- Yali Anggurk, Yali Ninia dan Yali Lembah Pass). Glottolog tidak mengiktiraf pengelompokan yang lebih sempit ini.
aliases = {"Lembah Baliem", -- Wikipedia
"Lembah Balim"}, -- Usher
}
m["ngf-dum"] = {
"Dumut", -- [[w:Dumut languages]] dilencongkan ke [[w:Greater Awyu languages]]
nil,
"ngf-awd",
aliases = {"Wambon"}, -- Usher
}
m["ngf-ehu"] = {
"Huon Timur", -- Glottolog menambah Ono dan Sialum, Pawley-Hammarström menambah Dedua
10567087,
"ngf-huo",
aliases = {"Huon Timur"}, -- Usher
}
m["ngf-eku"] = {
"Kutubuan Timur",
5328752,
"ngf", -- Tidak dalam TNG mengikut Glottolog tetapi diterima oleh yang lain. Kadangkala dikelompokkan bersama Fasu membentuk keluarga Kutubuan.
aliases = {"Kutubu Timur"}, -- nama Glottolog
}
m["ngf-enc"] = {
"Engik",
nil,
"ngf-eng",
aliases = {"Engan", -- Glottolog
"Engan tepat", -- Wikipedia
"Engan Utara", -- nama alternatif yang diberikan oleh Wikipedia
"Trans-Enga"}, -- Usher
}
m["ngf-eng"] = {
"Engan",
3217449,
"ngf",
aliases = {"Enga-Kewa-Huli", -- Glottolog, Pawley-Hammarström
"Enga-Tanah Tinggi Selatan"}, -- Usher
}
m["ngf-era"] = {
"Erap",
nil,
"ngf-fin",
aliases = {"Sungai Erap"}, -- Usher?
}
m["ngf-eso"] = {
"Sogeram Timur",
nil,
"ngf-sog",
}
m["ngf-est"] = {
"Strickland Timur",
5329440,
"ngf",
aliases = {"Sungai Strickland"}, -- nama alternatif yang diberikan oleh Wikipedia
}
m["ngf-eva"] = {
"Evapia",
nil,
"ngf-rai",
aliases = {"Sungai Evapia"}, -- Usher
}
m["ngf-fgi"] = {
"Fore-Gimi",
nil,
"ngf-gor",
aliases = {"Goroka Selatan"}, -- Usher
}
m["ngf-fhu"] = {
"Finisterre-Huon",
3217453,
"ngf",
aliases = {"Banjaran Finisterre-Semenanjung Huon"}, -- per Usher
}
m["ngf-fin"] = {
"Finisterre",
5450373,
"ngf-fhu",
aliases = {"Finisterre-Saruwaged", -- nama Glottolog
"Banjaran Finisterre"}, -- per Usher
}
m["ngf-gah"] = {
"Gahuku",
nil,
"ngf-gor",
aliases = {"Sungai Alekano-Asaro"}, -- Usher
}
m["ngf-gau"] = {
"Gauwa",
nil,
"ngf-kai",
aliases = {"Kainantu Barat"}, -- Usher
}
m["ngf-gaw"] = {
"Awyu Raya",
12627424,
"ngf",
aliases = {"Sungai Digul"}, -- digunakan oleh Usher (2020)
}
m["ngf-gbi"] = {
"Binanderean Raya",
3217374, -- Wikidata tidak membezakan Binanderean daripada Binanderean Raya
"ngf", -- tidak diletakkan dalam Trans-New Guinea dalam Usher (2020)
aliases = {"Guhu-Oro"}, -- Guhu-Oro digunakan dalam Usher (2020)
}
m["ngf-gko"] = {
"Gaena-Korafe",
11732347, -- dianggap sebagai bahasa Korafe tunggal oleh Wikipedia
"ngf-bin",
aliases = {"Gaina-Korafe"}, -- Usher
}
m["ngf-gmo"] = {
"Gusap-Mot",
16110857,
"ngf-fin",
aliases = {"Sungai Mot"}, -- Usher?
}
m["ngf-gor"] = {
"Goroka",
15478597,
"ngf-kgo",
}
m["ngf-gsu"] = {
"Gogodala-Suki",
5577428,
"ngf", -- Kemungkinan dalam keluarga Teluk Papua yang dicadangkan. Bukan dalam TNG per Glottolog tetapi diterima oleh semua yang lain.
aliases = {"Suki-Gogodala", -- nama Glottolog
"Sungai Suki-Aramia"}, -- digunakan dalam Usher (2020)
}
m["ngf-gum"] = {
"Gum",
5618008,
"ngf-mab",
}
m["ngf-gvd"] = {
"Dani Lembah Besar", -- dianggap sebagai bahasa tunggal oleh Wikipedia
5595219,
"ngf-cda",
}
m["ngf-hag"] = {
"Hagen", -- [[w:Hagen languages]] dilencongkan ke [[w:Chimbu–Wahgi languages]]
nil,
"ngf-chw",
aliases = {"Sungai Melpa-Kaugel"}, -- Usher
}
m["ngf-han"] = {
"Hanseman",
5651020,
"ngf-mab",
aliases = {"Banjaran Hansemann"}, -- Usher
}
m["ngf-huo"] = {
"Huon",
5946109,
"ngf-fhu",
aliases = {"Semenanjung Huon"}, -- per Usher
}
m["ngf-jim"] = {
"Jimi", -- [[w:Jimi languages]] dan [[w:Jimi River languages]] dilencongkan ke [[w:Chimbu–Wahgi languages]]
nil,
"ngf-chw",
aliases = {"Sungai Jimi"}, -- Usher
}
m["ngf-kab"] = {
"Kabwum",
nil,
"ngf-huo",
aliases = {"Timbe-Selepet-Komba", -- Pawley-Hammarström
"Huon Barat Laut"}, -- Usher
}
m["ngf-kai"] = {
"Kainantu", -- Kambaira: di bawah "Kainantu tidak terkelas" (Glottolog), Tairora (Pawley-Hammarström), Gauwa (Usher)
15478590,
"ngf-kgo",
aliases = {"Gadsup-Auyana-Awa-Tairora"}, -- Wurm
}
m["ngf-kak"] = {
"Kalam-Kobon",
6350303,
"ngf-ksa",
aliases = {"Kalam",
"Sungai Kaironk"}, -- Usher (2020)
}
m["ngf-kau"] = {
"Kaukombar",
nil,
"ngf-nad",
aliases = {"Kaukombaran", -- Glottolog mengikut Z'graggen (1975)
"Sungai Kaukombar"}, -- istilah Usher
}
m["ngf-kbm"] = {
"Kosorong-Burum-Mindik",
nil,
"ngf-huo",
aliases = {"Sungai Bulum"}, -- Usher
}
m["ngf-kgo"] = {
"Kainantu-Goroka",
3217463,
"ngf",
aliases = {"Tanah Tinggi Timur"}, -- per Usher (2020)
}
m["ngf-khu"] = {
"Kewa-Huli",
nil,
"ngf-eng",
aliases = {"Huli-Tanah Tinggi Selatan"}, -- Usher
}
m["ngf-kma"] = {
"Kâte-Mape",
nil,
"ngf-ehu",
aliases = {"Kate-Mape-Sene", -- Pawley-Hammarström (dengan Sene)
"Huon Tenggara"}, -- Usher
}
m["ngf-kme"] = {
"Kapau-Menya",
nil,
"ngf-ang",
aliases = {"Banjaran Kratke Tenggara"}, -- Usher
}
m["ngf-koi"] = {
"Koiarian",
11154240,
"ngf", -- tidak diterima sebagai TNG oleh Glottolog tetapi diterima oleh yang lain
aliases = {"Penara Koiari-Managalas"},
}
m["ngf-kok"] = {
"Kokon", -- Usher memanggilnya Mabuso Selatan tetapi memasukkan Gum ke dalamnya
nil,
"ngf-mab",
}
m["ngf-kow"] = {
"Kowan",
6435004,
"ngf-mad",
aliases = {"Selat Isumrud"}, -- per Usher (2020)
}
m["ngf-ksa"] = {
"Kalam-Adelbert Selatan",
nil,
"ngf-mad",
aliases = {"Kalamik-Adelbert Selatan", -- Glottolog
"Madang Barat"}, -- Usher (2020)
}
m["ngf-kto"] = {
"Kube-Tobo", -- mengikut Glottolog, satu bahasa "Kulungtfu-Yuanggeng-Tobo"
1173235, -- kod bagi bahasa Tobo-Kube
"ngf-huo",
aliases = {"Tobo-Kube"},
}
m["ngf-kts"] = {
"Komyandaret-Tsaukambo",
nil,
"ngf-bda",
aliases = {"Sungai Becking"}, -- Usher
}
m["ngf-kum"] = {
"Kumil",
nil,
"ngf-nad",
aliases = {"Kumilan", -- Pawley-Hammarström mengikut Z'graggen (1975)
"Sungai Kumil"}, -- istilah Usher
}
m["ngf-kya"] = {
"Kamano-Yagaria",
nil,
"ngf-gor",
aliases = {"Henganofi", -- Usher
"Kamano-Yagaria-Keigana",
},
}
m["ngf-lok"] = {
"Ok Tanah Rendah",
nil,
"ngf-okk",
}
m["ngf-mab"] = {
"Mabuso",
6721668,
"ngf-mad",
}
m["ngf-mad"] = {
"Madang",
11217556,
"ngf",
aliases = {"Banjaran Madang-Adelbert"}, -- Z'graggen (1975), sepadan dengan Madang kini kecuali tiadanya Kalam dan Gants
}
m["ngf-mek"] = {
"Mek",
6810515,
"ngf",
aliases = {"Goliath"}, -- nama alternatif lapuk yang diberikan oleh Wikipedia
}
m["ngf-min"] = {
"Mindjim",
86749913,
"ngf-mad",
aliases = {"Minjim Bawah", -- Glottolog, diletakkan dalam Pesisir Rai oleh Glottolog dan Pawley-Hammarström; Mindjim
-- Glottolog mengandungi 6 bahasa, termasuk "Minjim Atas" (Rerau dan Sgi Bara)
"Sungai Mindjim", -- Usher
"Minjim", "Sungai Minjim",
},
}
-- Tambah jika Molet diasingkan daripada Asaro'o
-- m["ngf-moa"] = {
-- "Molet-Asaro'o",
-- nil,
-- "ngf-war",
-- }
m["ngf-mok"] = {
"Ok Pergunungan", -- [[w:Mountain Ok languages]] dilencongkan ke [[w:Ok languages]]
nil,
"ngf-okk",
}
m["ngf-mom"] = {
"Mombum",
6897077,
"ngf", -- tidak diterima sebagai TNG oleh Glottolog tetapi diterima oleh yang lain
aliases = {"Mombum-Koneraw", "Komolom", "Selat Muli"}, -- Pawley-Hammarström menggunakan Komolom, Usher menggunakan Selat Muli
}
m["ngf-msu"] = {
"Mian-Suganga", -- dianggap sebagai satu bahasa Mian oleh Wikipedia
12952846,
"ngf-mok",
aliases = {"Mianik"}, -- Glottolog
}
m["ngf-nad"] = {
"Adelbert Utara", -- tidak diterima oleh Pawley-Hammarström
16952821, -- kod untuk perangkaian Croisilles
"ngf-mad",
aliases = {"Banjaran Adelbert-Selat Isumrud", -- Usher (2020)
"Adelbert Utara",
"Pihom-Isumrud"}, -- Ross?
}
m["ngf-nbi"] = {
"Binanderean Utara",
nil,
"ngf-bin",
aliases = {"Suena-Zia"}, -- Usher
}
m["ngf-nde"] = {
"Ndeiram", -- [[w:Ndeiram River languages]] dilencongkan ke [[w:Greater Awyu languages]]
nil,
"ngf-awd",
aliases = {"Sungai Ndeiram"}, -- Usher?
}
m["ngf-ngn"] = {
"Ngalik-Nduga", -- [[w:Ngalik languages]] dilencongkan ke [[w:Baliem Valley languages]] = bahasa-bahasa Dani
nil,
"ngf-dan",
aliases = {"Ngalik"}, -- Usher
}
m["ngf-nso"] = {
"Sogeram Utara",
nil,
"ngf-sog",
aliases = {"Mum-Sirva", -- Usher
"Sogeram Tengah Utara", -- digunakan oleh mereka yang menerima Sogeram Tengah (= Sogeram Utara + Apali dan Manat)
"Sogeram Tengah-Utara", -- lebih jarang berbanding tanpa tanda sengkang
"Sikan"}, -- Z’graggen (1975?)
}
m["ngf-num"] = {
"Numugen",
nil,
"ngf-nad",
aliases = {"Numugenan", -- Glottolog mengikut Z'graggen 1975
"Sungai Numugen"}, -- istilah Usher
}
m["ngf-nur"] = {
"Nuru", -- Usher mengecualikan Yangulam, Pawley-Hammarström memasukkan Jilim dan Rerau
nil,
"ngf-rai",
aliases = {"Sungai Nuru"}, -- Usher?
}
m["ngf-nwh"] = {
"Hanseman Barat Laut", -- Usher
nil,
"ngf-han",
aliases = {"Wamas-Samosa-Murupi-Mosimo"}, -- Glottolog, Greenhill, dan Pawley-Hammarström mengikut Z'graggen; nama paling umum, tetapi sangat panjang
}
m["ngf-oen"] = {
"Engan Luar", -- dianggap sebagai bahasa Nete tunggal oleh Wikipedia
6998869,
"ngf-enc",
aliases = {"Nete-Bisorio"}, -- Usher
}
m["ngf-okk"] = {
"Ok",
7081687,
"ngf",
}
m["ngf-omo"] = {
"Omosan", -- tidak dimasukkan dalam (Raya) Adelbert Utara oleh Glottolog, tetapi saudara
nil,
"ngf-nad",
}
m["ngf-oro"] = {
"Orokaivik",
7103752, -- dianggap sebagai bahasa Orokaiva tunggal oleh Wikipedia
"ngf-bin",
aliases = {"Oro Tengah"}, -- Usher
}
m["ngf-pan"] = {
"Tasik Paniai",
6035631,
"ngf",
aliases = {"Tasik Wissel", "Tasik Wissel-Sungai Kemandoga"}, -- nama alternatif yang diberikan oleh Wikipedia
}
m["ngf-pek"] = {
"Peka",
nil,
"ngf-rai",
aliases = {"Sungai Peka"}, -- Usher?
}
m["ngf-pom"] = {
"Pomoikan",
nil,
"ngf-sad",
}
m["ngf-rai"] = {
"Pesisir Rai",
7283663,
"ngf-mad",
aliases = {"Madang Selatan"}, -- Usher
}
m["ngf-sab"] = {
"Sabakor", -- [[w:Sabakor languages]] dilencongkan ke [[w:Asmat–Kamrau languages]]
nil, -- 55994614 adalah untuk [[Category:Kamrau Bay languages]], yang wujud dalam enwiki
"ngf-ask",
aliases = {"Teluk Kamrau"}, -- Usher
}
m["ngf-sad"] = {
"Adelbert Selatan",
12633980,
"ngf-ksa",
aliases = {"Adelbert Selatan", -- Glottolog
"Banjaran Adelbert Selatan", -- Z'graggen (1980)
"Sungai Sogeram dan Tomul"}, -- Usher (2020)?
}
m["ngf-sak"] = {
"Sau-Angal-Kewa",
nil,
"ngf-khu",
aliases = {"Tanah Tinggi Selatan"}, -- Usher
}
m["ngf-san"] = {
"Sankwep",
nil,
"ngf-huo",
aliases = {"Nabak-Momolili", -- Pawley-Hammarström
"Huon Barat Daya"}, -- Usher
}
m["ngf-sbh"] = {
"Kepala Burung Selatan",
7566330,
"ngf",
}
m["ngf-sim"] = {
"Simbu",
nil,
"ngf-chw",
}
m["ngf-sog"] = {
"Sogeram",
86750419,
"ngf-sad",
aliases = {"Sungai Sogeram", -- Usher
"Wanang"},
}
m["ngf-sop"] = {
"Sopac",
nil,
"ngf-ehu",
aliases = {"Momare-Migabac", -- Pawley-Hammarström
"Sungai Masaweng"}, -- Usher
}
m["ngf-taa"] = {
"Tainae-Akoye",
nil,
"ngf-ata",
aliases = {"Akoye-Tainae"}, -- Usher
}
m["ngf-tai"] = {
"Tairora",
nil,
"ngf-kai",
aliases = {"Tairorik", -- Glottolog
"Kainantu Timur"}, -- Usher
}
m["ngf-tib"] = {
"Tiboran",
nil,
"ngf-nad",
aliases = {"Tibor Nuklear", -- Glottolog, mengecualikan Wanambre/Mokati
"Sungai Tiboran", -- Usher (2020)
"Tibor"}, -- Pick (2020) dan Glottolog memasukkan Wanambre/Mokati
}
m["ngf-tna"] = {
"Tangko-Nakai",
nil,
"ngf-okk",
aliases = {"Ok Tengah"}, -- Usher
}
m["ngf-uru"] = {
"Uruwa",
nil,
"ngf-fin",
aliases = {"Sungai Uruwa"}, -- Usher?
}
m["ngf-usi"] = {
"Utu-Silopi",
nil,
"ngf-han",
aliases = {"Silopi-Utu"}, -- Usher
}
m["ngf-waa"] = {
"Wantoat-Awara", -- tiada dalam Usher tetapi Wantoat dan Awara membentuk rantaian dialek
nil,
"ngf-wan",
aliases = {"Awara-Wantoat"}, -- per Wikipedia
}
-- Terjemahan ini merujuk kepada panduan "Wiki format Malay translation"[cite: 1].
m["ngf-wah"] = {
"Wahgi", -- [[w:Wahgi languages]] dilencongkan ke [[w:Chimbu–Wahgi languages]]
nil,
"ngf-chw",
aliases = {"Lembah Wahgi"}, -- Usher
}
m["ngf-wan"] = {
"Wantoatik",
nil,
"ngf-fin",
aliases = {"Wantoat",
"Sungai Wantoat", -- Usher?
},
}
m["ngf-war"] = {
"Warup",
12645082,
"ngf-fin",
aliases = {"Sungai Warup"}, -- Usher?
}
m["ngf-woj"] = {
"Wojokesik",
nil,
"ngf-ang",
aliases = {"Banjaran Kratke Timur Laut"}, -- Usher
}
m["ngf-wok"] = {
"Ok Barat",
nil,
"ngf-okk",
aliases = {"Kwer-Kopkaka-Burumakok"}, -- Glottolog, Pawley-Hammarström
}
m["ngf-wso"] = {
"Sogeram Barat",
nil,
"ngf-sog",
aliases = {"Mand-Nend", -- Usher
"Atan", -- Wurm mengikut Z'graggen
},
}
m["ngf-yag"] = {
"Yaganon", -- diletakkan dalam Pesisir Rai oleh Glottolog dan Pawley-Hammarström
35323986,
"ngf-mad",
aliases = {"Sungai Yaganon"}, -- Usher
}
m["ngf-yal"] = {
"Yali", -- dianggap sebagai bahasa tunggal oleh Wikipedia
8047468,
"ngf-ngn",
aliases = {"Ngalik"}, -- Glottolog, Pawley-Hammarström
}
m["ngf-yar"] = {
"Yareban",
16977672,
"ngf", -- tidak diterima sebagai TNG oleh Glottolog tetapi diterima oleh semua yang lain
aliases = {"Sungai Musa"},
}
m["ngf-ynu"] = {
"Yau-Nungon",
12953319, -- untuk bahasa Yau tunggal dalam Wikipedia ([[w:Yau language (Trans–New Guinea)]])
"ngf-uru",
}
m["ngf-yup"] = {
"Yupna",
nil,
"ngf-fin",
aliases = {"Sungai Yupna"}, -- Usher?
}
m["nic"] = {
"Niger-Congo",
33838,
aliases = {"Niger-Kordofania"},
}
m["nic-alu"] = {
"Alumik",
4737355,
"nic-plt",
}
m["nic-bas"] = {
"Basa",
4866154,
"nic-knj",
}
m["nic-bbe"] = {
"Beboid Timur",
nil,
"nic-beb",
}
m["nic-bco"] = {
"Benue-Congo",
33253,
"nic-vco",
}
m["nic-bcr"] = {
"Bantoid-Cross",
806983,
"nic-bco",
}
m["nic-bdn"] = {
"Bantoid Utara",
nil,
"nic-bod",
aliases = {"Bantoid Utara"},
}
m["nic-bds"] = {
"Bantoid Selatan",
3183152,
"nic-bod",
aliases = {"Bantu Luas", "Bin"},
}
m["nic-beb"] = {
"Beboid",
813549,
"nic-bds",
}
m["nic-ben"] = {
"Bendi",
4887065,
"nic-bcr",
}
m["nic-beo"] = {
"Beromik",
4894642,
"nic-plt",
}
m["nic-bod"] = {
"Bantoid",
806992,
"nic-bcr",
}
m["nic-buk"] = {
"Buli-Koma",
nil,
"nic-ovo",
}
m["nic-bwa"] = {
"Bwa",
12628562,
"nic-gur",
other_names = {"Bwamu", "Bomu"},
}
m["nic-cde"] = {
"Delta Tengah",
3813191,
"nic-cri",
}
m["nic-cri"] = {
"Cross River",
1141096,
"nic-bcr",
}
m["nic-dag"] = {
"Dagbani",
nil,
"nic-wov",
}
m["nic-dak"] = {
"Dakoid",
1157745,
"nic-bdn",
}
m["nic-dge"] = {
"Dogon Tubir",
5397128,
"qfa-dgn",
}
m["nic-dgw"] = {
"Dogon Barat",
nil,
"qfa-dgn",
}
m["nic-eko"] = {
"Ekoid",
1323395,
"nic-bds",
}
m["nic-eov"] = {
"Oti-Volta Timur",
nil,
"nic-ovo",
aliases = {"Samba"},
}
m["nic-fru"] = {
"Furu",
5509783,
"nic-bds",
}
m["nic-gne"] = {
"Gurunsi Timur",
12633072,
"nic-gns",
aliases = {"Grũsi Timur"},
}
m["nic-gnn"] = {
"Gurunsi Utara",
nil,
"nic-gns",
aliases = {"Grũsi Utara"},
}
m["nic-gnw"] = {
"Gurunsi Barat",
nil,
"nic-gns",
aliases = {"Grũsi Barat"},
}
m["nic-gns"] = {
"Gurunsi",
721007,
"nic-gur",
aliases = {"Grũsi"},
}
m["nic-gre"] = {
"Grassfields Timur",
5330160,
"nic-grf",
}
m["nic-grf"] = {
"Grassfields",
750932,
"nic-bds",
aliases = {"Bantu Grassfields", "Grassfields Luas"},
}
m["nic-grm"] = {
"Gurma",
30587833,
"nic-ovo",
}
m["nic-grs"] = {
"Grassfields Barat Daya",
7571285,
"nic-grf",
}
m["nic-gur"] = {
"Gur",
33536,
"alv-sav",
aliases = {"Voltaik"},
}
m["nic-ief"] = {
"Ibibio-Efik",
2743643,
"nic-lcr",
}
m["nic-jer"] = {
"Jera",
nil,
"nic-kne",
}
m["nic-jkn"] = {
"Jukunoid",
1711622,
"nic-pla",
}
m["nic-jrn"] = {
"Jarawan",
1683430,
"nic-mba",
}
m["nic-jrw"] = {
"Jarawa",
35423,
"nic-jrn",
}
m["nic-kam"] = {
"Kambari",
6356294,
"nic-knj",
}
m["nic-ktl"] = {
"Katloid",
nil,
"nic",
}
m["nic-kau"] = {
"Kauru",
nil,
"nic-kne",
}
m["nic-kmk"] = {
"Kamuku",
6359821,
"nic-knj",
}
m["nic-kne"] = {
"Kainji Timur",
5328687,
"nic-knj",
}
m["nic-knj"] = {
"Kainji",
681495,
"nic-pla",
}
m["nic-knn"] = {
"Kainji Barat Laut",
7060098,
"nic-knj",
}
m["nic-ktl"] = {
"Katloid",
6377681,
"nic",
aliases = {"Katla", "Katla-Tima"},
}
m["nic-lcr"] = {
"Cross River Bawah",
3813193,
"nic-cri",
}
m["nic-mam"] = {
"Mamfe",
2005898,
"nic-bds",
aliases = {"Nyang"},
}
m["nic-mba"] = {
"Mbam",
687826,
"nic-bds",
}
m["nic-mbc"] = {
"Mba",
6799561,
"nic-ubg",
}
m["nic-mbw"] = {
"Mbam Barat",
nil,
"nic-mba",
}
m["nic-mmb"] = {
"Mambiloid",
1888151,
other_names = {"Bantoid Utara"}, -- mengikut Wikipedia, Bantoid Utara ialah keluarga induk
"nic-bdn",
}
m["nic-mom"] = {
"Momo",
6897393,
"nic-grf",
}
m["nic-mre"] = {
"Moré",
nil,
"nic-wov",
}
m["nic-ngd"] = {
"Ngbandi",
36439,
"nic-ubg",
}
m["nic-nge"] = {
"Ngemba",
7022271,
"nic-gre",
}
m["nic-ngk"] = {
"Ngbaka",
3217499,
"nic-ubg",
}
m["nic-nin"] = {
"Ninzik",
7039282,
"nic-plt",
}
m["nic-nka"] = {
"Nkambe",
7042520,
"nic-gre",
}
m["nic-nkb"] = {
"Baka",
nil,
"nic-nkw",
}
m["nic-nke"] = {
"Ngbaka Timur",
nil,
"nic-ngk",
}
m["nic-nkg"] = {
"Gbanziri",
nil,
"nic-nkw",
}
m["nic-nkk"] = {
"Kpala",
nil,
"nic-nkw",
}
m["nic-nkm"] = {
"Mbaka",
nil,
"nic-nkw",
}
m["nic-nkw"] = {
"Ngbaka Barat",
nil,
"nic-ngk",
}
m["nic-npd"] = {
"Dogon Penara Utara",
nil,
"qfa-dgn",
}
m["nic-nun"] = {
"Nun",
13654297,
"nic-gre",
}
m["nic-nwa"] = {
"Nanga-Walo",
nil,
"qfa-dgn",
}
m["nic-ogo"] = {
"Ogoni",
2350726,
"nic-cri",
aliases = {"Ogonoid"},
}
m["nic-ovo"] = {
"Oti-Volta",
1157178,
"nic-gur",
}
m["nic-pla"] = {
"Platoid",
453244,
"nic-bco",
aliases = {"Nigeria Tengah"},
}
m["nic-plc"] = {
"Penara Tengah",
5061668,
"nic-plt",
}
m["nic-pld"] = {
"Dogon Dataran",
nil,
"qfa-dgn",
}
m["nic-ple"] = {
"Penara Timur",
5329154,
"nic-plt",
}
m["nic-pls"] = {
"Penara Selatan",
7568236,
"nic-plt",
aliases = {"Jilik-Eggonik"},
}
m["nic-plt"] = {
"Penara",
1267471,
"nic-pla",
}
m["nic-ras"] = {
"Rashad",
3401986,
"nic",
}
m["nic-rnc"] = {
"Ring Tengah",
nil,
"nic-rng",
}
m["nic-rng"] = {
"Ring",
2269051,
"nic-grf",
aliases = {"Ring Road"},
}
m["nic-rnn"] = {
"Ring Utara",
nil,
"nic-rng",
}
m["nic-rnw"] = {
"Ring Barat",
nil,
"nic-rng",
}
m["nic-ser"] = {
"Sere",
7453058,
"nic-ubg",
}
m["nic-shi"] = {
"Shiroro",
7498953,
"nic-knj",
aliases = {"Pongu"},
}
m["nic-sis"] = {
"Sisaala",
36532,
"nic-gnw",
}
m["nic-tar"] = {
"Tarokoid",
2394472,
"nic-plt",
}
m["nic-tiv"] = {
"Tivoid",
752377,
"nic-bds",
}
m["nic-tvc"] = {
"Tivoid Tengah",
nil,
"nic-tiv",
}
m["nic-tvn"] = {
"Tivoid Utara",
nil,
"nic-tiv",
}
m["nic-ubg"] = {
"Ubangian",
33932,
"nic-vco", -- atau tiada
}
m["nic-uce"] = {
"Cross River Atas Timur-Barat",
nil,
"nic-ucr",
}
m["nic-ucn"] = {
"Cross River Atas Utara-Selatan",
nil,
"nic-ucr",
}
m["nic-ucr"] = {
"Cross River Atas",
4108624,
"nic-cri",
aliases = {"Cross Atas"},
}
m["nic-vco"] = {
"Volta-Congo",
37228,
"alv",
}
m["nic-wov"] = {
"Oti-Volta Barat",
nil,
"nic-ovo",
aliases = {"Moré-Dagbani"},
}
m["nic-ykb"] = {
"Yukubenik",
16909196,
"nic-plt",
aliases = {"Oohum"},
}
m["nic-ymb"] = {
"Yambasa",
nil,
"nic-mba",
}
m["nic-yon"] = {
"Yom-Nawdm",
nil,
"nic-ovo",
aliases = {"Moré-Dagbani"},
}
m["njo"] = {
"Ao",
28433,
"sit-aao",
aliases = {"Ao Naga"},
}
m["nub"] = {
"Nubia",
1517194,
"sdv-nes",
}
m["nub-hil"] = {
"Nubia Bukit",
5762211,
"nub",
aliases = {"Nubia Kordofan"},
}
m["omq"] = {
"Oto-Manguean",
33669,
}
m["omq-cha"] = {
"Chatino",
35111,
"omq-zap",
}
m["omq-chi"] = {
"Chinantecan",
35828,
"omq",
}
m["omq-cui"] = {
"Cuicatec",
616024,
"omq-mix",
}
m["omq-maz"] = {
"Mazatecan",
36230,
"omq",
aliases = {"Mazatec"},
}
m["omq-mix"] = {
"Mixtecan",
21083066,
"omq",
}
m["omq-mxt"] = {
"Mixtec",
36363,
"omq-mix",
}
m["omq-otp"] = {
"Oto-Pamean",
1270220,
"omq",
}
m["omq-pop"] = {
"Popolocan",
5132273,
"omq",
}
m["omq-tri"] = {
"Triqui",
780200,
"omq-mix",
aliases = {"Trique"},
}
m["omq-zap"] = {
"Zapotecan",
8066463,
"omq",
}
m["omq-zpc"] = {
"Zapotec",
13214,
"omq-zap",
}
m["omv"] = {
"Omotik",
33860,
"afa",
}
m["omv-aro"] = {
"Aroid",
3699526,
"omv",
aliases = {"Ari-Banna", "Omotik Selatan", "Somotik"},
}
m["omv-diz"] = {
"Dizoid",
430251,
"omv",
aliases = {"Maji", "Majoid"},
}
m["omv-eom"] = {
"Ometo Timur",
20527288,
"omv-ome",
}
m["omv-gon"] = {
"Gonga",
4143043,
"omv",
aliases = {"Kefoid"},
}
m["omv-mao"] = {
"Mao",
1351495,
"omv",
}
m["omv-nom"] = {
"Ometo Utara",
nil,
"omv-ome",
}
m["omv-ome"] = {
"Ometo",
36310,
"omv",
}
m["oto"] = {
"Otomian",
130372545,
"omq-otp",
}
m["oto-otm"] = {
"Otomi",
36355,
"oto",
}
m["paa"] = {
"Papua",
236425,
"qfa-not",
}
m["paa-aia"] = {
"Aian",
4767739, -- Bahasa-bahasa Annaberg
"paa-ram",
aliases = {"Ramu Tengah", -- Foley (dengan Rao),
"Annaberg", -- dengan Rao
"Aram-Aren", -- Usher
},
}
m["paa-alp"] = {
"Alor-Pantar",
3502429,
"paa-tap",
}
m["paa-amu"] = {
"Amto-Musan",
480281,
aliases = {"Sungai Samaia"},
}
m["paa-ani"] = {
"Anim",
55603991,
aliases = {"Sungai Fly"},
}
m["paa-ara"] = {
"Arapesh",
4784223,
"paa-koa",
aliases = {"Arapeshan"}, -- Foley
}
m["paa-arf"] = {
"Arafundi",
4783702,
}
m["paa-ata"] = {
"Ataitan",
4812652,
"paa-ram",
aliases = {"Tangu", -- Foley
"Tanggu", -- nama alternatif yang diberikan oleh Wikipedia
"Sungai Moam", -- Usher
},
}
m["paa-baa"] = {
"Bayono-Awbono",
2424781,
}
m["paa-bai"] = {
"Baining",
748487,
aliases = {"New Britain Timur"},
}
m["paa-baw"] = {
"Bosngun-Awar",
nil,
"paa-ott",
aliases = {"Pesisir Ramu Timur", -- Usher
"Bosman-Awar", -- Wikipedia
},
}
m["paa-bew"] = {
"Bewani", -- [[w:Bewani languages]] dilencongkan ke [[w:Border languages (New Guinea)]]; namun Wikipedia Bahasa Croatia mempunyai entri
16113460,
"paa-bor",
aliases = {"Sungai Poal"}, -- Usher
}
m["paa-boa"] = {
"Boazi",
48803717,
"paa-mby",
aliases = {"Tasik Murray"}, -- Usher
}
m["paa-bor"] = {
"Border",
1752158,
aliases = {"Tami Atas",
"Banjaran Bewani-Sungai Tami", -- Usher
},
}
m["paa-bul"] = {
"Sungai Bulaka",
4987195,
aliases = {"Yelmek-Maklew", "Jabga"}, -- Yelmek-Maklew dalam Evans (2018) dan Gregor (2021)
}
m["paa-bvi"] = {
"Betaf-Vitou", -- Glottolog
nil,
"paa-tor",
aliases = {"Vitou-Betaf", -- Wikipedia
"Fitou-Tena", -- Usher
"Manirem",
},
}
m["paa-clp"] = {
"Dataran Tasik Tengah", -- [[w:Central Lakes Plain languages]] dilencongkan ke [[w:Lakes Plain languages]]
nil, -- Q86780132 adalah untuk kategori berkaitan yang wujud dalam enwiki
"paa-lpl",
aliases = {"Tariku Timur", -- Glottolog
"Dataran Tasik Tengah", -- Usher
},
}
m["paa-dtu"] = {
"Doso-Turumsa",
16917784,
-- berkemungkinan berkaitan dengan bahasa-bahasa Strickland Timur
aliases = {"Sungai Soari"}, -- istilah Usher
}
m["paa-ebh"] = {
"Kepala Burung Timur",
338064,
aliases = {"Mantion-Meax", "Mantion-Meyah", -- Mantion-Meax ialah istilah Wikipedia
"Kepala Burung Tenggara", -- Usher (2020)
},
}
m["paa-eel"] = {
"Eleman Timur",
nil,
"paa-ele",
aliases = {"Eleman Timur"},
}
m["paa-egb"] = {
"Teluk Geelvink Timur",
1497678,
aliases = {"Teluk Geelvink", "Cenderawasih Timur"}, -- Teluk Geelvink mengikut Glottolog
}
m["paa-eke"] = {
"Keram Timur",
nil,
"paa-ker",
}
m["paa-ele"] = {
"Eleman",
3034298,
aliases = {"Teluk Kerema"},
}
m["paa-elp"] = {
"Dataran Tasik Timur", -- [[w:East Lakes Plain languages]] dilencongkan ke [[w:Lakes Plain languages]]; namun Wikipedia Bahasa Croatia mempunyai entri
12633078,
"paa-lpl",
aliases = {"Dataran Tasik Timur"}, -- Usher
}
m["paa-epw"] = {
"Pauwasi Timur",
16115496,
aliases = {"Pauwasi Timur"},
}
-- Terjemahan ini merujuk kepada panduan "Wiki format Malay translation"[cite: 1].
m["paa-etf"] = {
"Trans-Fly Timur",
5330530,
aliases = {"Oriomo"}, -- semakin banyak digunakan kebelakangan ini, kemungkinan bermula dalam Evans (2018)
}
m["paa-eti"] = {
"Timor Timur",
15496066,
"paa-tap",
aliases = {"Oirata-Makasae", -- nama Wikipedia
"Timor Timur", -- nama alternatif yang diberikan oleh Wikipedia
"Fataluku-Makasai", "Oirata-Makasai", -- nama-nama alternatif yang diberikan oleh Wikidata
},
}
m["paa-fas"] = {
"Fas",
3502658,
aliases = {"Baibai-Fas"}, -- nama Glottolog
}
m["paa-flp"] = {
"Dataran Tasik Barat Jauh", -- [[w:Wapoga River languages]] dilencongkan ke [[w:Lakes Plain languages]]
nil, -- Q86808337 adalah untuk kategori bahasa Wapoga berkaitan, yang wujud dalam enwiki
"paa-lpl",
aliases = {"Rasawa", -- Clouse (1997)
"Sungai Wapoga", -- Usher, termasuk Kehu/Keuw (tidak terkelas oleh yang lain)
},
}
m["paa-gkw"] = {
"Kwerba Raya",
12635134,
aliases = {"Banjaran Foja Barat", -- Usher
"Kwerbik", -- Wikipedia
"Kwerba", -- Foley (2018)
},
}
m["paa-gto"] = {
"Galela-Tobelo",
nil,
"paa-nnh",
aliases = {"Halmahera Utara Tanah Besar", -- Glottolog
"Tanah Besar Halmahera Utara", "Halmahera Timur Laut", -- nama-nama alternatif
"Halmahera Timur Laut", -- Wikipedia, daripada Verhoeve 1988
},
}
m["paa-hya"] = {
"Heyo-Yahang",
nil,
"paa-mam",
aliases = {"Yahang-Heyo"}, -- nama Wikipedia
}
m["paa-ing"] = {
"Teluk Pedalaman",
6034783,
"paa-ani",
aliases = {"Teluk Papua Pedalaman"}, -- Glottolog
}
m["paa-isk"] = {
"Sko Pedalaman",
65043889,
"paa-sko",
aliases = {"Skouik", -- Glottolog
"Pesisir Vanimo Barat", -- Usher
"Skou Barat", -- Wikipedia
"Skou Pedalaman", "Skou Nuklear", -- nama-nama alternatif yang diberikan oleh Wikipedia
},
}
m["paa-iwa"] = {
"Iwam",
15147853,
"paa-sep",
}
m["paa-kae"] = {
"Kamula-Elevala",
130390498,
-- kerap diletakkan dalam TNG
aliases = {"Sungai Kamula-Elevala"},
}
m["paa-kan"] = {
"Kanum", -- dikeluarkan daripada Tonda oleh Glottolog
nil,
"paa-ton",
}
m["paa-kay"] = {
"Kayagarik",
7566330,
aliases = {"Kayagar", -- dahulunya lazim
"Sungai Cook"}, -- per Usher (2020)
}
m["paa-ker"] = {
"Keram",
48768173,
-- kerap dikelompokkan dalam atau setara dengan bahasa-bahasa Ramu
aliases = {"Sungai Keram"},
}
m["paa-kiw"] = {
"Kiwaian",
338449,
aliases = {"Kiwai"}, -- dahulunya lazim, masih digunakan kadangkala
}
m["paa-kko"] = {
"Kaure-Kosare", -- ditolak oleh Pawley-Hammarström tetapi diterima oleh Glottolog, Foley (2018) dan Usher (2020)
48767891,
aliases = {"Sungai Nawa"}, -- istilah Usher
}
m["paa-koa"] = {
"Kombio-Arapesh",
16115049,
"paa-trr",
aliases = {"Kombio-Arapeshan", -- Laycock, yang memasukkan Wom
"Kombio-Arapesh-Urat", -- Glottolog, termasuk Urat
},
}
m["paa-kol"] = {
"Kolopom",
6427807,
}
m["paa-kom"] = {
"Kombio",
65044238,
"paa-koa",
aliases = {"Kombian", -- Laycock
"Kombio-Yambes", -- Glottolog
},
}
m["paa-kun"] = {
"Kunimaipan",
134973258,
aliases = {"Banjaran Wharton Barat Laut"}, -- per Usher (2020)
-- sering dianggap sebagai subkeluarga Goilalan
}
m["paa-kwa"] = {
"Kwalean",
6450053,
aliases = {"Humene-Uare"},
}
m["paa-kwe"] = {
"Kwerba tepat",
12635134,
"paa-gkw",
aliases = {"Kwerba", -- Usher
"Kwerbaik", -- Glottolog
},
}
m["paa-kwo"] = {
"Kwomtari",
2075415,
aliases = {"Kwomtari-Nai"}, -- Sungai Senu ialah cadangan lebih besar yang belum terbukti
}
m["paa-lla"] = {
"Loloda-Laba", -- bahasa tunggal dalam Glottolog (Loloda-Laba) dan Wikipedia (Loloda)
11732388, -- bagi bahasa Loloda
"paa-gto",
aliases = {"Loloda"}, -- nama Wikipedia
}
m["paa-lma"] = {
"May Kiri",
614468,
aliases = {"Sungai Arai"}, -- per Usher (2020)
-- Kadangkala dalam keluarga andaian Arai-Samaia bersama Amto-Musan dan bahasa Pyu
}
m["paa-lmu"] = {
"Lepki-Murkim", -- Kembra diterima oleh Glottolog dan Usher; tidak oleh Foley (2020) tetapi tidak menolak kemungkinan hubungan
85776285,
-- keluarga bebas per Glottolog, sebahagian daripada keluarga Sungai Pauwasi Selatan (di bawah Pauwasi) per Usher (2020)
aliases = {"Lepki-Murkim-Kembra"}, -- Glottolog
}
m["paa-lpl"] = {
"Dataran Tasik",
6478969,
aliases = {"Dataran Tasik"},
}
m["paa-lra"] = {
"Ramu Bawah",
65089469,
"paa-ram",
aliases = {"Ottilien-Misegian"}, -- nama alternatif yang diberikan oleh Wikipedia
}
m["paa-lse"] = {
"Sepik Bawah",
7061700,
aliases = {"Nor-Pondo"},
}
m["paa-mai"] = {
"Mairasi",
6736896,
aliases = {"Mairasik"}, -- per Glottolog
}
m["paa-mal"] = {
"Mailuan",
6735839,
aliases = {"Teluk Cloudy"},
}
m["paa-mam"] = {
"Maimai", -- Maimai Foley diperluas
53679325, -- ini adalah kod bagi Maimai yang diperluas dengan 6 bahasa, berbanding 3 dalam "Maimai Nuklear"
"paa-trr",
aliases = {"Maimai Nuklear", -- nama Glottolog
"Maimai tepat", -- nama Wikipedia
},
}
m["paa-man"] = {
"Manubaran",
6752335,
aliases = {"Gunung Brown"},
}
m["paa-mar"] = {
"Marienberg",
1570589,
"paa-trr",
aliases = {"Bukit Marienberg"}, -- Usher
}
m["paa-may"] = {
"Maybratik",
4830892, -- kod untuk bahasa Maybrat dalam Wikipedia, yang merangkumi dua bahasa dalam keluarga ini
-- diandaikan termasuk dalam Papua Barat tetapi umumnya dianggap sebagai keluarga terpencil
aliases = {"Maybrat-Karon"},
}
m["paa-mbi"] = {
"Mbaham-Iha",
85784512,
"qfa-dis", -- Bahasa-bahasa Papua; Glottolog mengelompokkan Karas (Kalamang) dengan Mbaham-Iha ke dalam keluarga Bomberai Barat (tanah besar)
-- dan berhenti di situ; Wikipedia, mengikut Usher dan Schapper (2022), mengelompokkan Karas, Mbaham-Iha
-- dan keluarga besar Timor-Alor-Pantar ke dalam keluarga Bomberai Barat (Raya), menyatakan bahawa Karas tidak lebih
-- dekat dengan Mbaham-Iha berbanding dengan Timor-Alor-Pantar.
aliases = {"Mbahaam-Iha", -- digunakan oleh Wikidata
"Bomberai Barat Nuklear", -- nama Glottolog
},
}
m["paa-mby"] = {
"Marind-Boazi-Yaqay",
3217484,
"paa-ani",
aliases = {"Marind-Boazi-Yaqai", -- Glottolog
"Marind-Yakhai", -- Usher, tanpa Boazi
"Marind-Yaqai", -- Wikidata
"Marind", -- nama alternatif yang diberikan oleh Wikipedia
"Marind-Arandai", -- nama alternatif yang diberikan oleh Wikipedia Bahasa Sepanyol
},
}
m["paa-mmu"] = {
"Mandi-Muniwara",
nil,
"paa-mar",
aliases = {"Bukit Marienberg Barat"}, -- Usher
}
m["paa-mon"] = {
"Monumbo", -- per Glottolog: "Tiada bukti untuk bahasa-bahasa Bogia (Monumbo) berkaitan dengan bahasa-bahasa Torricelli lain pernah dikemukakan"
16928417,
aliases = {"Bogia", -- Glottolog
"Teluk Bogia", -- Usher (2020)
},
}
m["paa-mri"] = {
"Marindik", -- [[w:Marindic languages]] dilencongkan ke [[w:Marind–Yaqai languages]]
nil,
"paa-mby",
aliases = {"Marind"}, -- Usher; bahasa tunggal
}
m["paa-nam"] = {
"Nambu",
6961418,
"paa-yam",
aliases = {"Sungai Morehead Timur"}, -- Usher
}
m["paa-nbo"] = {
"Bougainville Utara",
749496,
}
m["paa-ndu"] = {
"Ndu",
3217498,
"paa-sep", -- Tidak diterima oleh Glottolog
aliases = {"Ndu-Nggala"}, -- Usher
}
m["paa-ngk"] = {
"Ngkolmpu", -- dianggap sebagai bahasa tunggal oleh Wikipedia
5908646,
"paa-kan",
aliases = {"Ngkantr", -- Glottolog
"Kanum Ngkolmpu", -- Wikipedia
"Ngkontar", -- nama alternatif yang diberikan oleh Wikipedia
"Kanum", -- digunakan oleh Wikidata
},
}
m["paa-nha"] = {
"Halmahera Utara",
3217358,
-- kemungkinan dalam keluarga Papua Barat yang dicadangkan atau keluarga bebas
}
m["paa-nim"] = {
"Nimboran",
12638426,
aliases = {"Nimboranik", -- per Glottolog
"Sungai Grime", -- per Usher (2020)
}
}
m["paa-nnd"] = {
"Ndu Nuklear",
nil,
"paa-ndu",
aliases = {"Ndu", -- Usher, dengan Boiken/Boikin
"Ndu tepat", -- Wikipedia
},
}
m["paa-nnh"] = {
"Halmahera Utara Bahagian Utara",
nil,
"paa-nha",
aliases = {"Halmahera Utara Bahagian Utara", -- Glottolog
"Halmahera", -- Usher
"Halmahera Teras", -- Wikipedia
},
}
m["paa-nto"] = {
"Namla-Tofanma",
16918187,
-- keluarga bebas per Glottolog dan Foley (2018), sebahagian daripada keluarga Pauwasi Barat (di bawah Pauwasi) per Usher (2020)
}
m["paa-ott"] = {
"Ottilien",
7109477,
"paa-lra",
aliases = {"Pesisir Ramu", -- Usher
"Watam-Awar-Gamay", -- nama alternatif yang diberikan oleh Wikipedia
},
}
m["paa-pah"] = {
"Sungai Pahoturi",
17049141,
aliases = {"Pahoturi"}, -- per Glottolog
}
m["paa-pal"] = {
"Palei", -- Laycock menambah Agi dan Nabi/Nambi(-Metan)
65089113,
"paa-wpa",
aliases = {"Palai Nuklear"},
}
m["paa-pia"] = {
"Piawi", -- mengikut Wikipedia, dikelompokkan dengan bahasa-bahasa Arafundi untuk membentuk Yuat Atas, yang merupakan saudara kepada Madang
7190400,
aliases = {"Banjaran Schraeder", -- Usher?
"Waibuk"},
}
m["paa-pio"] = {
"Sungai Piore",
65043152,
"paa-sko",
aliases = {"Lagun Barupu", -- Glottolog
"Lagun", -- nama alternatif yang diberikan oleh Wikipedia
},
}
m["paa-por"] = {
"Porapora", -- Foley memasukkan Ambakich (yang mana kita, Glottolog, dan Usher layan sebagai Keram)
65044258,
"paa-ram",
aliases = {"Agoan", -- Glottolog
"Sungai Porapora", -- Usher
"Grass teras", -- nama alternatif yang diberikan oleh Wikipedia
},
}
m["paa-ram"] = {
"Ramu",
3442808,
aliases = {"Sungai Ramu"}, -- per Usher (2020)
}
m["paa-rsa"] = {
"Rasawa-Saponi", -- [[w:Rasawa-Saponi languages]] dilencongkan ke [[w:Lakes Plain languages]]
nil, -- Q9859418 adalah untuk kategori berkaitan yang wujud dalam Wikipedia Bahasa Piedmont
"paa-flp",
aliases = {"Sungai Rombak"}, -- Usher
}
m["paa-rub"] = {
"Ruboni",
6875319,
"paa-lra",
aliases = {"Misegian", -- nama Wikipedia
"Mikarew", -- nama alternatif yang diberikan oleh Wikipedia
"Banjaran Ruboni"}, -- Usher
}
m["paa-saa"] = {
"Samarokena-Airoran",
96417699,
"paa-gkw",
aliases = {"Pesisir Apauwar"}, -- Usher
}
m["paa-sah"] = {
"Sahu",
nil,
"paa-nnh",
}
m["paa-sbo"] = {
"Bougainville Selatan",
3217380,
}
m["paa-sen"] = {
"Sentani",
17044584,
-- tiada konsensus mengenai pertalian yang lebih tinggi, jika ada
aliases = {"Sentanik", "Demta-Sentani", "Demta-Tasik Sentani"}, -- Sentanik mengikut Glottolog, Demta-Sentani mengikut Wikipedia
}
m["paa-sep"] = {
"Sepik",
3508772,
}
m["paa-shi"] = {
"Bukit Serra",
65043154,
"paa-sko",
}
m["paa-sko"] = {
"Sko",
953509,
aliases = {"Skou"},
}
m["paa-sng"] = {
"Senagi",
2066550,
}
m["paa-taa"] = {
"Taikat-Awyi", -- [[w:Taikat languages]] dilencongkan ke [[w:Border languages (New Guinea)]]; namun Wikipedia Bahasa Croatia mempunyai entri
12643265,
"paa-bor",
aliases = {"Taikat", -- Foley
"Sungai Tami Atas"}, -- Usher
}
m["paa-tam"] = {
"Tamolan",
7681634,
"paa-ram",
aliases = {"Sungai Guam"}, -- Usher
}
m["paa-tap"] = {
"Timor-Alor-Pantar",
16590002,
}
m["paa-teb"] = {
"Teberan",
7692052,
-- Kerap dikelompokkan dengan Trans-New Guinea, tetapi mengikut Pawley-Hammarström (2018), ia mempunyai "tuntutan keahlian yang lebih lemah atau dipertikaikan dalam TNG".
aliases = {"Dadibi-Folopa"},
}
m["paa-tir"] = {
"Tirio",
7809225,
"paa-ani",
aliases = {"Fly Bawah Nuklear", -- Pawley-Hammarström ("Fly Bawah" termasuk Abom)
"Tirio Nuklear", -- Glottolog ("Tirio" termasuk Abom)
"Sungai Fly Bawah", -- Usher (tanpa Abom)
},
}
m["paa-tki"] = {
"Turama-Kikori",
7853680,
aliases = {"Turama-Kikorian", "Sungai Rumu-Omati"},
}
m["paa-ton"] = {
"Tonda",
8581005,
"paa-yam",
aliases = {"Sungai Morehead Barat"}, -- Usher
}
m["paa-too"] = {
"Tor-Orya",
16590099,
aliases = {"Orya-Tor"},
}
m["paa-tor"] = {
"Tor", -- [[w:Tor languages]] dilencongkan ke [[w:Orya–Tor languages]]
nil,
"paa-too",
}
m["paa-trr"] = {
"Torricelli",
1333831,
}
m["paa-tti"] = {
"Ternate-Tidore",
nil,
"paa-nnh",
}
m["paa-wal"] = {
"Walio",
16919872,
-- Kerap diletakkan dalam Sepik (cth. oleh Laycock dan Z'graggen (1975)), tetapi tidak oleh Foley (2018), dan tidak diterima oleh Glottolog.
aliases = {"Walioik", -- Glottolog
"Sungai Leonhard Schultze Tengah",
},
}
m["paa-wap"] = {
"Wapei", -- Glottolog memasukkan Nabi/Nambi(-Metan) dalam Wapeik
65089115,
"paa-wpa",
aliases = {"Wapeik"}, -- Glottolog
}
m["paa-war"] = {
"Waris", -- [[w:Waris languages]] dilencongkan ke [[w:Border languages (New Guinea)]]; namun Wikipedia Bahasa Croatia mempunyai entri
12645076,
"paa-bor",
aliases = {"Warisik", -- Glottolog
"Sungai Bapi"}, -- Usher (tanpa Manem atau Senggi)
}
m["paa-wbh"] = {
"Kepala Burung Barat",
5330530,
-- Kuwani kadangkala dimasukkan; berkemungkinan berkaitan dengan bahasa-bahasa Halmahera Utara.
}
m["paa-wel"] = {
"Eleman Barat",
nil,
"paa-ele",
aliases = {"Eleman Barat"},
}
m["paa-wig"] = {
"Teluk Pedalaman Barat",
nil,
"paa-ing",
aliases = {"Teluk Papua Pedalaman Barat"}, -- Glottolog
}
m["paa-wke"] = {
"Keram Barat",
nil,
"paa-ker",
aliases = {"Koam", "Mongol-Langam", "Ulmapo"}, -- Koam digunakan oleh Foley, Ulmapo digunakan oleh Glottolog
}
m["paa-wko"] = {
"Wára-Kómnzo", -- memandangkan kita mengasingkan Kómnzo sebagai bahasa yang berasingan
11732474, -- untuk bahasa Wara
"paa-ton",
aliases = {"Anta-Komnzo-Wára-Wérè-Kémä", -- nama Glottolog
"Wára", "Wara", -- Wikipedia
},
}
m["paa-wlp"] = {
"Dataran Tasik Barat", -- [[w:Tariku languages]] dilencongkan ke [[w:Lakes Plain languages]]
47007503, -- sebenarnya untuk "bahasa-bahasa Tariku", yang mengikut Wikipedia merangkumi Fayu, Kirikiri, Iau dan Tause
"paa-lpl",
aliases = {"Tariku Barat", -- Glottolog
"Dataran Tasik Barat"}, -- Usher, dengan Edopi/Iau
}
m["paa-wpa"] = {
"Wapei-Palei",
65043156,
"paa-trr",
}
m["paa-wpw"] = { -- paa-wpa sudah digunakan oleh Wapei-Palei
"Pauwasi Barat", -- 2 bahasa per Glottolog dan Pawley-Hammarström; Usher turut memasukkan Namla-Tofanma dan Usku
85815062,
aliases = {"Pauwasi Barat", -- Wikipedia, Usher
"Tebi-Towe", "Dubu-Towei"},
}
m["paa-yam"] = {
"Yam",
15062272,
aliases = {"Sungai Morehead dan Maro Atas",
"Sungai Morehead"}, -- Usher
}
m["paa-yaq"] = {
"Yaqayik", -- [[w:Yaqai languages]] dilencongkan ke [[w:Marind–Yaqai languages]]
nil,
"paa-mby",
aliases = {"Yakhai-Warkay"}, -- Usher
}
m["paa-ysa"] = {
"Yawa-Saweru",
3217545,
aliases = {"Yawa", "Yawan", "Yapen"},
}
m["paa-yua"] = {
"Yuat",
8060096,
}
m["phi"] = {
"Filipina",
947858,
"poz",
}
m["phi-kal"] = {
"Kalamian",
3217466,
"phi",
aliases = {"Calamian"},
}
m["poz"] = {
"Melayu-Polinesia",
143158,
"map",
}
m["poz-aay"] = {
"Kepulauan Admiralty",
2701306,
"poz-oce",
}
m["poz-bnn"] = {
"Borneo Utara",
1427907,
"poz",
}
m["poz-bre"] = {
"Barito Timur",
2701314,
"poz",
}
m["poz-brw"] = {
"Barito Barat",
2761679,
"poz",
}
m["poz-bss"] = {
"Bali-Sasak-Sumbawa",
3396043,
"poz-msa",
}
m["poz-btk"] = {
"Bungku-Tolaki",
3217381,
"poz-clb",
}
m["poz-cet"] = {
"Melayu-Polinesia Tengah-Timur",
2269883,
"poz",
}
m["poz-clb"] = {
"Celebik",
1078041,
"poz",
}
m["poz-cln"] = {
"Kaledonia Baharu",
3091221,
"poz-ocs",
}
m["poz-cma"] = {
"Maluku Tengah",
3217479,
"poz-cet",
}
m["poz-hce"] = {
"Halmahera-Cenderawasih",
2526616,
"pqe",
}
m["poz-kal"] = {
"Kaili-Pamona",
3217465,
"poz-clb",
}
m["poz-lgx"] = {
"Lampungik",
49215,
"poz",
}
m["poz-mcm"] = {
"Melayu-Chamik",
nil,
"poz-msa",
}
m["poz-mic"] = {
"Mikronesia",
420591,
"poz-occ",
}
m["poz-mly"] = {
"Melayik",
662628,
"poz-mcm",
}
m["poz-msa"] = {
"Melayu-Sumbawa",
1363818,
"poz",
}
m["poz-mun"] = {
"Muna-Buton",
3037924,
"poz-clb",
}
m["poz-nws"] = {
"Sumatera Barat Laut",
2071308,
"poz",
}
m["poz-occ"] = {
"Oceania Tengah-Timur",
2068435,
"poz-oce",
}
m["poz-oce"] = {
"Oceania",
324457,
"pqe",
}
m["poz-ocs"] = {
"Oceania Selatan",
3039118,
"poz-occ",
}
m["poz-ocw"] = {
"Oceania Barat",
2701282,
"poz-oce",
}
m["poz-pcc"] = {
"Pasifik Tengah",
3130237,
"poz-occ",
}
m["poz-pep"] = {
"Polinesia Timur",
390979,
"poz-pnp",
}
m["poz-pnp"] = {
"Polinesia Nuklear",
743851,
"poz-pol",
}
m["poz-pol"] = {
"Polinesia",
390979,
"poz-pcc",
}
m["poz-san"] = {
"Sabahan",
3217517,
"poz-bnn",
}
m["poz-sbj"] = {
"Sama-Bajaw",
2160409,
"poz",
}
m["poz-slb"] = {
"Saluan-Banggai",
3217519,
"poz-clb",
}
m["poz-sls"] = {
"Solomon Tenggara",
3119671,
"poz-occ",
}
m["poz-ssw"] = {
"Sulawesi Selatan",
2778190,
"poz",
}
m["poz-stm"] = {
"St. Matthias",
6484143,
"poz-oce",
aliases = {"St Matthias"},
}
m["poz-swa"] = {
"Sarawak Utara",
538569,
"poz-bnn",
}
m["poz-tem"] = {
"Temotu",
3075769,
"poz-oce",
}
m["poz-tim"] = {
"Timorik",
7806987,
"poz-cet",
}
m["poz-ton"] = {
"Tongik",
3397263,
"poz-pol",
}
m["poz-tot"] = {
"Tomini-Tolitoli",
3217541,
"poz-clb",
}
m["poz-vnc"] = {
"Vanuatu Tengah",
5061988,
"poz-ocs",
}
m["poz-vnn"] = {
"Vanuatu Utara",
85789650,
"poz-ocs",
}
m["poz-vns"] = {
"Vanuatu Selatan",
3070173,
"poz-ocs",
}
m["poz-wot"] = {
"Wotu-Wolio",
1041317,
"poz-clb",
aliases = {"Kaili-Wolio Kepulauan"}, -- Glottolog
}
m["pqe"] = {
"Melayu-Polinesia Timur",
2269883,
"poz-cet",
}
m["qfa-adc"] = {
"Andaman Besar Tengah",
nil,
"qfa-adm",
}
m["qfa-adm"] = {
"Andaman Besar",
3515103,
}
m["qfa-adn"] = {
"Andaman Besar Utara",
nil,
"qfa-adm",
}
m["qfa-ads"] = {
"Andaman Besar Selatan",
nil,
"qfa-adm",
}
m["qfa-ain"] = {
"Ainuik",
50111972,
aliases = {"Ainu"},
}
m["qfa-bej"] = {
"Be-Jizhao",
nil,
"qfa-bet",
}
m["qfa-bet"] = {
"Be-Tai",
12627719,
"qfa-tak",
aliases = {"Tai-Be", "Daik-Beik", "Beik-Daik"},
}
m["qfa-buy"] = {
"Buyang",
1109927,
"qfa-kra",
}
-- Terjemahan ini merujuk kepada panduan "Wiki format Malay translation"[cite: 1].
m["qfa-cka"] = {
"Chukotko-Kamchatkan",
33255,
}
m["qfa-cre"] = {
"kreol",
33289,
"crp",
}
m["qfa-ckn"] = {
"Chukotkan",
2606732,
"qfa-cka",
}
m["qfa-cnt"] = {
"kontak",
133253514,
"qfa-not",
}
m["qfa-dis"] = {
-- Bahasa-bahasa yang tidak dapat dikelaskan (qfa-unc) tetapi tiada konsensus mengenai pengelasannya. Biasanya
-- ini kerana bahasa tersebut bercapah dan dipertikaikan sama ada ia bahasa pencilan atau berkaitan secara jauh
-- dengan bahasa-bahasa lain.
"pertalian yang dipertikaikan",
nil,
"qfa-not",
categoryName = "Bahasa dengan pertalian yang dipertikaikan",
}
m["qfa-dgn"] = {
"Dogon",
1234776,
"nic",
}
m["qfa-dny"] = {
"Dene-Yeniseian",
21103,
aliases = {"Dené-Yeniseian"},
}
m["qfa-hur"] = {
"Hurro-Urartian",
1144159,
}
m["qfa-iso"] = {
"pencilan",
33648,
"qfa-not",
categoryName = "Bahasa pencilan",
}
m["qfa-kad"] = {
"Kadu", -- dianggap sama ada Nilo-Sahara atau bebas/tiada
1720989,
}
m["qfa-kms"] = {
"Kam-Sui",
1023641,
"qfa-tak",
}
m["qfa-kor"] = {
"Koreanik",
11263525,
}
m["qfa-kra"] = {
"Kra",
1022087,
"qfa-tak",
}
m["qfa-lic"] = {
"Hlai",
1023648,
"qfa-tak",
aliases = {"Hlaik"},
}
m["qfa-mch"] = { -- digunakan di kedua-dua Amerika Utara dan Selatan
"Makro-Chibchan",
3438062,
}
m["qfa-mix"] = {
"bercampur",
33694,
"qfa-cnt",
}
m["qfa-not"] = {
"bukan satu keluarga",
nil,
"qfa-not",
}
m["qfa-onb"] = {
"Be",
nil,
"qfa-bej",
aliases = {"Ong-Be", "Beik"},
}
m["qfa-ong"] = {
"Ongan",
2090575,
aliases = {"Angan", "Andaman Selatan", "Jarawa-Onge"},
}
m["qfa-pid"] = {
"pidgin",
33831,
"crp",
}
m["qfa-sub"] = {
"substrat",
20730913,
"qfa-not",
}
m["qfa-tak"] = {
"Kra-Dai",
34171,
aliases = {"Tai-Kadai", "Kadai"},
}
m["qfa-tyn"] = {
"Tyrsenian",
1344038,
}
m["qfa-unc"] = {
-- Ini sepadan dengan bahasa yang biasanya dipanggil "tidak terkelas", iaitu data atau penyelidikan tidak mencukupi
-- untuk mengelaskannya, sedangkan [[:Kategori:Bahasa tidak terkelas]] kita hanyalah bahasa yang belum
-- dikelaskan oleh mana-mana penyunting Wiktionary (kod keluarga dalam data bahasa tiada).
"tidak dapat dikelaskan",
33956,
"qfa-not",
}
m["qfa-xgs"] = {
"Serbi-Mongolik",
108887939,
}
m["qfa-xgx"] = {
"Para-Mongolik",
107619002,
"qfa-xgs",
}
m["qfa-yen"] = {
"Yeniseian",
27639,
"qfa-dny",
aliases = {"Yeniseik", "Yenisei-Ostyak"},
}
m["qfa-yke"] = {
"Ketik",
nil,
"qfa-yen",
}
m["qfa-yko"] = {
"Kottik",
nil,
"qfa-yen",
}
m["qfa-yrn"] = {
"Arinik",
nil,
"qfa-yen",
}
m["qfa-ypm"] = {
"Pumpokolik",
nil,
"qfa-yen",
}
m["qfa-yuk"] = {
"Yukaghir",
34164,
aliases = {"Yukagir", "Jukagir"},
}
m["qwe"] = {
"Quechuan",
5218,
}
m["raj"] = {
"Rajasthani",
13196,
"inc-wes",
protoLanguage = "inc-ogu",
}
m["roa"] = {
"Romance",
19814,
"itc",
aliases = {"Romanik", "Latin", "Neolatin", "Neo-Latin"},
protoLanguage = "la",
}
m["roa-asl"] = {
"Asturleonese",
35390,
"roa-ibe",
protoLanguage = "roa-ole",
}
m["roa-cas"] = {
"Castilian",
71924,
"roa-ibe",
aliases = {"Castillian", "Castilik", "Castillik"},
protoLanguage = "osp",
}
m["roa-dal"] = {
"Romance Dalmatia",
97646077,
"roa-itd",
}
m["roa-eas"] = {
"Romance Timur",
147576,
"roa",
}
m["roa-emr"] = {
"Emilian-Romagnol",
242648,
"roa-git",
}
m["roa-gap"] = {
"Galicia-Portugis",
9080204,
"roa-ibe",
aliases = {"Romance Galicia", "Galaiko-Portugis"},
protoLanguage = "roa-opt",
}
m["roa-gar"] = {
"Gallo-Romance",
500394,
"roa-wes",
}
m["roa-itd"] = {
"Italo-Dalmatia",
3313381,
"roa-iwr",
aliases = {"Romance Tengah"}
}
m["roa-itr"] = {
"Italo-Romance",
3356483,
"roa-itd",
}
m["roa-iwr"] = {
"Romance Italo-Barat",
112608,
"roa",
aliases = {"Italo-Barat"},
}
m["roa-git"] = {
"Gallo-Italik",
516074,
"roa-gar",
aliases = {"Gallo-Itali", "Gallo-Cisalpine", "Cisalpine"},
}
m["roa-grh"] = {
"Gallo-Rhaetian",
97646466,
"roa-gar",
}
m["roa-ibe"] = {
"Ibero-Romance",
749533,
"roa-wes",
aliases = {"Romance Iberia", "Ibero-Romance Barat", "Ibero-Romance Barat", "Romance Iberia Barat", "Romance Iberia Barat"}
}
m["roa-nar"] = {
"Navarro-Aragonese",
133252927,
"roa-ibe",
protoLanguage = "roa-ona",
}
m["roa-oil"] = {
"Oïl",
37351,
"roa-grh",
aliases = {"langues d'oïl", "langue d'oïl", "Cisalpine"},
protoLanguage = "fro",
}
m["roa-ocr"] = {
"Occitano-Romance",
599958,
"roa-gar",
aliases = {"Gallo-Narbonnese", "Iberia Timur", "Iberia Timur"},
}
m["roa-rhe"] = {
"Rhaeto-Romance",
515593,
"roa-grh",
aliases = {"langues d'oïl", "langue d'oïl", "Cisalpine"},
}
m["roa-sou"] = {
"Romance Selatan",
145345,
"roa",
}
m["roa-wes"] = {
"Romance Barat",
2714388,
"roa-iwr",
}
--[=[
Kod bahasa dan keluarga luar biasa bagi bahasa-bahasa Peribumi Amerika Selatan
boleh menggunakan awalan "sai-", walaupun "sai" bukan lagi kod keluarga itu sendiri.
]=]--
m["sai-ara"] = {
"Araucanian",
626630,
}
m["sai-aym"] = {
"Aymaran",
33010,
}
m["sai-bar"] = {
"Barbacoan",
807304,
aliases = {"Barbakoan"},
}
m["sai-bor"] = {
"Boran",
5371776,
}
m["sai-cah"] = {
"Cahuapanan",
1025793,
}
m["sai-car"] = {
"Cariban",
33090,
aliases = {"Carib"},
}
m["sai-cer"] = {
"Cerrado",
98078151,
"sai-jee",
aliases = {"Jê Amazon"},
}
m["sai-chc"] = {
"Chocoan",
1075616,
aliases = {"Choco", "Chocó"},
}
m["sai-cho"] = {
"Chonan",
33019,
aliases = {"Chon"},
}
m["sai-cje"] = {
"Jê Tengah",
18010843,
"sai-cer",
aliases = {"Akuwẽ"},
}
m["sai-cpc"] = {
"Chapacuran",
1062626,
}
m["sai-crn"] = {
"Charruan",
3112423,
aliases = {"Charrúan"},
}
m["sai-ctc"] = {
"Catacaoan",
5051139,
}
m["sai-guc"] = {
"Guaicuruan",
1974973,
"sai-mgc",
aliases = {"Guaicurú", "Guaycuruana", "Guaikurú", "Guaycuruano", "Guaykuruan", "Waikurúan"},
}
m["sai-guh"] = {
"Guahiban",
944056,
aliases = {"Guahiboan", "Guajiboan", "Wahivoan"},
}
m["sai-gui"] = {
"Guianan",
nil,
"sai-car",
aliases = {"Carib Guiana", "Carib Guiana"},
}
m["sai-har"] = {
"Harákmbut",
1584402,
"sai-hkt",
aliases = {"Harákmbet"},
}
m["sai-hkt"] = {
"Harákmbut-Katukinan",
17107635,
}
m["sai-hrp"] = {
"Huarpean",
1578336,
aliases = {"Warpean", "Huarpe", "Warpe"},
}
m["sai-jee"] = {
"Jê",
1483594,
"sai-mje",
aliases = {"Gê", "Jean", "Gean", "Jê-Kaingang", "Ye"},
}
m["sai-jir"] = {
"Jirajaran",
3028651,
aliases = {"Hiraháran"},
}
m["sai-jiv"] = {
"Jivaroan",
1393074,
aliases = {"Hívaro", "Jibaro", "Jibaroan", "Jibaroana", "Jívaro"},
}
m["sai-ktk"] = {
"Katukinan",
2636000,
"sai-hkt",
aliases = {"Catuquinan"},
}
m["sai-kui"] = {
"Kuikuroan",
nil,
"sai-car",
aliases = {"Kuikuro", "Nahukwa"},
}
m["sai-map"] = {
"Mapoyan",
61096301,
"sai-ven",
aliases = {"Mapoyo", "Mapoyo-Yabarana", "Mapoyo-Yavarana", "Mapoyo-Yawarana"},
}
m["sai-mas"] = {
"Mascoian",
1906952,
aliases = {"Mascoyan", "Maskoian", "Enlhet-Enenlhet"},
}
m["sai-mgc"] = {
"Mataco-Guaicuru",
255512,
}
m["sai-mje"] = {
"Makro-Jê",
887133,
aliases = {"Makro-Gê"},
}
m["sai-mtc"] = {
"Matacoan",
2447424,
"sai-mgc",
}
m["sai-mur"] = {
"Muran",
33826,
aliases = {"Mura"},
}
m["sai-nad"] = {
"Nadahup",
1856439,
aliases = {"Makú", "Macú", "Vaupés-Japurá"},
}
m["sai-nje"] = {
"Jê Utara",
98078225,
"sai-cer",
aliases = {"Jê Teras"},
}
m["sai-nmk"] = {
"Nambikwaran",
15548027,
aliases = {"Nambicuaran", "Nambiquaran", "Nambikuaran"},
}
m["sai-otm"] = {
"Otomacoan",
3217503,
aliases = {"Otomákoan", "Otomakoan"},
}
m["sai-pan"] = {
"Panoan",
1544537,
"sai-pat",
aliases = {"Pano"},
}
m["sai-pat"] = {
"Pano-Tacanan",
2475746,
aliases = {"Pano-Tacana", "Pano-Takana", "Páno-Takána", "Pano-Takánan"},
}
m["sai-pek"] = {
"Pekodian",
107451736,
"sai-car",
aliases = {"Carib Amazon Selatan", "Cariban Selatan", "Pekodi"},
}
m["sai-pem"] = {
"Pemongan",
nil,
"sai-ven",
aliases = {"Pemong", "Pemóng", "Purukoto"},
}
m["sai-pey"] = {
"Peba-Yaguan",
174015,
aliases = {"Peba-Yagua", "Yaguan", "Peban", "Yáwan"},
}
m["sai-prk"] = {
"Parukotoan",
107451482,
"sai-car",
aliases = {"Parukoto"},
}
m["sai-sje"] = {
"Jê Selatan",
98078245,
"sai-jee",
}
m["sai-tac"] = {
"Tacanan",
3113762,
"sai-pat",
}
m["sai-tar"] = {
"Taranoan",
105097814,
"sai-gui",
aliases = {"Trio", "Tarano"},
}
m["sai-tin"] = {
"Tiniguan",
2892258,
aliases = {"Tinigua"},
}
m["sai-tuc"] = {
"Tucanoan",
788144,
}
m["sai-tyu"] = {
"Ticuna-Yuri",
4467010,
}
m["sai-ucp"] = {
"Uru-Chipaya",
2475488,
aliases = {"Uru-Chipayan"},
}
m["sai-ven"] = {
"Cariban Venezuela",
nil,
"sai-car",
aliases = {"Carib Venezuela", "Venezuela", "Venezuelano"},
}
m["sai-wic"] = {
"Wichí",
3027047,
}
m["sai-wit"] = {
"Witotoan",
43079317,
aliases = {"Huitotoan", "Uitotoan"},
}
m["sai-ynm"] = {
"Yanomami",
nil,
aliases = {"Yanomam", "Shamatari", "Yamomami", "Yanomaman"},
}
m["sai-yuk"] = {
"Yukpan",
nil,
"sai-car",
aliases = {"Yukpa", "Yukpano", "Yukpa-Japreria"},
}
m["sai-zam"] = {
"Zamucoan",
3048461,
aliases = {"Samúkoan"},
}
m["sai-zap"] = {
"Zaparoan",
33911,
aliases = {"Záparoan", "Saparoan", "Sáparoan", "Záparo", "Zaparoano", "Zaparoana"},
}
m["sal"] = {
"Salish",
33985,
}
m["sdv"] = {
"Sudanik Timur",
2036148,
"ssa",
}
m["sdv-bri"] = {
"Bari",
nil,
"sdv-nie",
}
m["sdv-daj"] = {
"Daju",
956724,
"sdv",
}
m["sdv-dnu"] = {
"Dinka-Nuer",
nil,
"sdv-niw",
}
m["sdv-eje"] = {
"Jebel Timur",
3408878,
"sdv",
}
m["sdv-kln"] = {
"Kalenjin",
637228,
"sdv-nis",
}
m["sdv-lma"] = {
"Lotuko-Maa",
nil,
"sdv-nie",
}
m["sdv-lon"] = {
"Luo Utara",
nil,
"sdv-luo",
}
m["sdv-los"] = {
"Luo Selatan",
7570103,
"sdv-luo",
}
m["sdv-luo"] = {
"Luo",
nil,
"sdv-niw",
}
m["sdv-nes"] = {
"Sudanik Timur Bahagian Utara",
4810496,
"sdv",
aliases = {"Astaboran", "Sudanik Ek"},
}
m["sdv-nie"] = {
"Nilotik Timur",
153795,
"sdv-nil",
}
m["sdv-nil"] = {
"Nilotik",
513408,
"sdv",
}
m["sdv-nis"] = {
"Nilotik Selatan",
1552410,
"sdv-nil",
}
m["sdv-niw"] = {
"Nilotik Barat",
3114989,
"sdv-nil",
}
m["sdv-nma"] = {
"Nandi-Markweta",
nil,
"sdv-kln",
}
m["sdv-nyi"] = {
"Nyima",
11688746,
"sdv-nes",
aliases = {"Nyimang"},
}
m["sdv-tmn"] = {
"Taman",
3408873,
"sdv-nes",
aliases = {"Tamaik"},
}
m["sdv-ttu"] = {
"Teso-Turkana",
7705551,
"sdv-nie",
aliases = {"Ateker"},
}
m["sel"] = {
"Selkup",
34008,
"syd",
}
m["sem"] = {
"Semitik",
34049,
"afa",
}
m["sem-ara"] = {
"Aramia",
28602,
"sem-nwe",
protoLanguage = "arc",
}
m["sem-arb"] = {
"Arab",
164667,
"sem-cen",
protoLanguage = "ar",
}
m["sem-are"] = {
"Aramia Timur",
3410322,
"sem-ara",
}
m["sem-arw"] = {
"Aramia Barat",
3394214,
"sem-ara",
}
m["sem-ase"] = {
"Aramia Tenggara",
3410322,
"sem-are",
}
m["sem-can"] = {
"Kanaan",
747547,
"sem-nwe",
}
m["sem-cen"] = {
"Semitik Tengah",
3433228,
"sem-wes",
}
m["sem-cna"] = {
"Neo-Aramia Tengah",
3410322,
"sem-are",
}
m["sem-eas"] = {
"Semitik Timur",
164273,
"sem",
}
m["sem-eth"] = {
"Semitik Habsyah",
163629,
"sem-wes",
aliases = {"Afro-Semitik", "Habsyah", "Etiopia", "Etiosemitik"},
}
m["sem-nna"] = {
"Neo-Aramia Timur Laut",
2560578,
"sem-are",
}
m["sem-nwe"] = {
"Semitik Barat Laut",
162996,
"sem-cen",
}
m["sem-osa"] = {
"Arab Selatan Kuno",
35025,
"sem-cen",
aliases = {"Arab Selatan Epigrafik", "Sayhadik"},
}
m["sem-sar"] = {
"Arab Selatan Moden",
1981908,
"sem-wes",
}
m["sem-wes"] = {
"Semitik Barat",
124901,
"sem",
}
m["sgn"] = {
"bahasa isyarat",
34228,
"qfa-not",
}
m["sgn-asl"] = {
"Bahasa Isyarat Amerika",
nil,
"sgn-fsl",
}
m["sgn-fsl"] = {
"Bahasa Isyarat Perancis",
5501921,
"sgn",
}
m["sgn-gsl"] = {
"Bahasa Isyarat Jerman",
5551235,
"sgn",
}
m["sgn-jsl"] = {
"Bahasa Isyarat Jepun",
11722508,
"sgn",
}
m["sio"] = {
"Siouan",
34181,
"nai-sca",
}
m["sio-dhe"] = {
"Dhegihan",
3217420,
"sio-msv",
}
m["sio-dkt"] = {
"Dakotan",
4154122,
"sio-msv",
}
m["sio-mor"] = {
"Siouan Sungai Missouri",
26807266,
"sio",
}
m["sio-msv"] = {
"Siouan Lembah Mississippi",
12637104,
"sio",
}
m["sio-ohv"] = {
"Siouan Lembah Ohio",
21070931,
"sio",
}
m["sit"] = {
"Sino-Tibet",
45961,
aliases = {"Trans-Himalaya"},
}
m["sit-aao"] = {
"Naga Tengah",
615474,
"sit",
}
m["sit-alm"] = {
"Almora",
nil,
"sit-whm",
}
m["sit-bai"] = {
"Bai",
35103,
"sit-mba",
}
m["sit-bdi"] = {
"Bodish",
1814078,
"sit",
}
-- Terjemahan ini merujuk kepada panduan "Wiki format Malay translation"[cite: 1].
m["sit-cln"] = {
"Cai-Long",
107182612,
"sit-mba",
aliases = {"Ta-Li"},
}
m["sit-dhi"] = {
"Dhimalish",
1207648,
"sit",
}
m["sit-ebo"] = {
"Bodish Timur",
56402,
"sit-bdi",
}
m["sit-egy"] = {
"rGyalrongik Timur",
832026,
"sit-rgy",
}
m["sit-ers"] = {
"Ersuik",
56335,
"sit",
}
m["sit-gma"] = {
"Magarik Raya",
55612963,
"sit",
}
m["sit-gsi"] = {
"Siangik Raya",
52698851,
"sit",
}
m["sit-hrs"] = {
"Hrusish",
1632501,
"sit",
aliases = {"Kamengik Tenggara"},
}
m["sit-jnp"] = {
"Jingphoik",
nil,
"sit-jpl",
aliases = {"Jingpho"},
}
m["sit-jpl"] = {
"Kachin-Luik",
1515454,
"tbq-bkj",
aliases = {"Jingpho-Luish", "Jingpho-Asakian", "Kachinik"},
}
m["sit-kch"] = {
"Konyak-Chang",
nil,
"sit-kon",
}
m["sit-kha"] = {
"Kham",
33305,
"sit-gma",
}
m["sit-khb"] = {
"Kho-Bwa",
6401917,
"sit",
aliases = {"Bugunish", "Kamengik"},
}
m["sit-khw"] = {
"Kho-Bwa Barat",
nil,
"sit-khb",
}
m["sit-khc"] = {
"Chug-Lish",
nil,
"sit-khw",
aliases = {"Duhumbi-Khispi"},
}
m["sit-khm"] = {
"Mey-Sartang",
nil,
"sit-khw",
aliases = {"Sartang-Sherdukpen"},
}
m["sit-kic"] = {
"Kiranti Tengah",
nil,
"sit-kir",
}
m["sit-kie"] = {
"Kiranti Timur",
nil,
"sit-kir",
}
m["sit-kin"] = {
"Kinnaurik",
nil,
"sit-whm",
aliases = {"Kinnauri"},
}
m["sit-kir"] = {
"Kiranti",
922148,
"sit",
}
m["sit-kiw"] = {
"Kiranti Barat",
922148,
"sit-kir",
}
m["sit-kon"] = {
"Naga Utara",
774590,
"tbq-bkj",
aliases = {"Konyakian", "Konyak"},
}
m["sit-kyk"] = {
"Kyirong-Kagate",
6450957,
"sit-tib",
}
m["sit-lab"] = {
"Ladakhi-Balti",
6450957,
"sit-tib",
}
m["sit-las"] = {
"Lahuli-Spiti",
6473510,
"sit-tib",
}
m["sit-luu"] = {
"Luish",
55621439,
"sit-jpl",
aliases = {"Asakian", "Sak"},
}
m["sit-mar"] = {
"Maringik",
nil,
"sit-tma",
}
m["sit-mba"] = {
"Makro-Bai",
16963847,
"sit-sba",
aliases = {"Bai Raya"},
}
m["sit-mdz"] = {
"Midzu",
6843504,
"sit",
aliases = {"Geman", "Midzuish", "Miju-Meyor", "Mishmi Selatan"},
}
m["sit-mnz"] = {
"Mondzish",
6898839,
"tbq-lob",
aliases = {"Mangish"},
}
m["sit-mru"] = {
"Mruik",
16908870,
"sit",
aliases = {"Mru-Hkongso"},
}
m["sit-nas"] = {
"Naish",
25047956,
"sit-nax",
}
m["sit-nax"] = {
"Naik",
6982999,
"tbq-buq",
aliases = {"Naxish"},
}
m["sit-nba"] = {
"Bai Utara",
122463830,
"sit-bai",
}
m["sit-new"] = {
"Newarik",
55625069,
"sit",
}
m["sit-nng"] = {
"Nungish",
1515482,
"sit",
aliases = {"Nung"},
}
m["sit-qia"] = {
"Qiangik",
1636765,
"tbq-buq",
}
m["sit-rgy"] = {
"Rgyalrongik",
56936,
"sit-qia",
aliases = {"Jiarongik"},
}
m["sit-sba"] = {
"Sino-Bai",
nil,
"sit",
aliases = {"Bai Raya"},
}
m["sit-tam"] = {
"Tamangik",
3309439,
"sit",
aliases = {"Bodish Barat"},
}
m["sit-tan"] = {
"Tani",
3217538,
"sit",
}
m["sit-tib"] = {
"Tibetik",
1641150,
"sit-bdi",
protoLanguage = "otb",
}
m["sit-tja"] = {
"Tujia",
nil,
"sit",
}
m["sit-tma"] = {
"Tangkhul-Maring",
nil,
"sit",
}
m["sit-tng"] = {
"Tangkhulik",
1516657,
"sit-tma",
aliases = {"Tangkhul"},
}
m["sit-tno"] = {
"Tangsa-Nocte",
nil,
"sit-kon",
}
m["sit-tsk"] = {
"Tshangla",
nil,
"sit",
}
m["sit-wgy"] = {
"rGyalrongik Barat",
nil,
"sit-rgy"
}
m["sit-whm"] = {
"Himalaya Barat",
2301695,
"sit",
}
m["sit-zem"] = {
"Zeme",
189291,
"sit",
aliases = {"Zeliangrong", "Zemeik"},
}
m["sla"] = {
"Slav",
23526,
"ine-bsl",
aliases = {"Slavonik"},
}
m["smi"] = {
"Sami",
56463,
"urj",
aliases = {"Saami", "Samik", "Saamik"},
}
m["son"] = {
"Songhay",
505198,
"ssa",
aliases = {"Songhai"},
}
m["sqj"] = {
"Albania",
8748,
"ine",
}
m["ssa"] = {
"Nilo-Sahara", -- berkemungkinan bukan pengelompokan genetik
33705,
}
m["ssa-fur"] = {
"Fur",
2989512,
"ssa",
}
m["ssa-klk"] = {
"Kuliak",
1791476,
"ssa",
aliases = {"Rub"},
}
m["ssa-kom"] = {
"Koman",
1781084,
"ssa",
}
m["ssa-sah"] = {
"Sahara",
1757661,
"ssa",
}
m["syd"] = {
"Samoyed",
34005,
"urj",
aliases = {"Samoyedik", "Samodeik"},
}
m["syd-ene"] = {
"Enets",
29942,
"syd",
}
m["tai"] = {
"Tai",
749720,
"qfa-bet",
aliases = {"Daik"},
}
m["tai-wen"] = {
"Tai Wenma-Barat Daya",
nil,
"tai",
}
m["tai-tay"] = {
"Tày",
nil,
"tai-wen",
}
m["tai-sap"] = {
"Tai Sapa-Barat Daya",
nil,
"tai-wen",
aliases = {"Sapa-Thai"},
}
m["tai-swe"] = {
"Tai Barat Daya",
10889250,
"tai-sap",
}
m["tai-cho"] = {
"Tai Chongzuo",
13216,
"tai",
}
m["tai-cen"] = {
"Tai Tengah",
5061891,
"tai",
}
m["tai-nor"] = {
"Tai Utara",
7059014,
"tai",
}
m["tbq"] = {
"Tibeto-Burma",
34064,
"sit",
}
m["tbq-anp"] = {
"Angami-Pochuri",
530460,
"sit",
}
m["tbq-axi"] = {
"Axioid",
nil,
"tbq-sel",
}
m["tbq-bdg"] = {
"Bodo-Garo",
4090000,
"tbq-bkj",
}
m["tbq-bis"] = {
"Bisoid",
48844742,
"tbq-slo",
}
m["tbq-bka"] = {
"Bi-Ka",
12627890,
"tbq-slo",
}
m["tbq-bkj"] = {
"Sal",
889900,
"sit",
-- Brahmaputran nampaknya merupakan istilah Glottolog
aliases = {"Bodo-Konyak-Jinghpaw", "Brahmaputra", "Jingpho-Konyak-Bodo"},
}
m["tbq-brm"] = {
"Burmik",
865713,
"tbq-lob",
}
m["tbq-buq"] = {
"Burmo-Qiangik",
16056278,
"sit",
aliases = {"Tibeto-Burma Timur"},
}
m["tbq-drp"] = {
"Phula Hilir Sungai",
7188378,
"tbq-rph",
}
m["tbq-han"] = {
"Hanoid",
17004185,
"tbq-slo",
}
m["tbq-hph"] = {
"Phula Tanah Tinggi",
nil,
"tbq-sel",
}
m["tbq-jin"] = {
"Jino",
6202716,
"tbq-slo",
}
m["tbq-kzh"] = {
"Kazhuoish",
48834669,
"tbq-lol",
}
m["tbq-kuk"] = {
"Kuki-Chin",
832413,
"sit",
aliases = {"Kukik", "Tibeto-Burma Selatan-Tengah"},
}
m["tbq-lal"] = {
"Lalo",
56548,
"tbq-lso",
}
m["tbq-lho"] = {
"Lahoish",
nil,
"tbq-lol",
}
m["tbq-llo"] = {
"Lipo-Lolopo",
nil,
"tbq-lso",
}
m["tbq-lob"] = {
"Lolo-Burma",
1635712,
"tbq-buq",
}
m["tbq-lol"] = {
"Loloik",
37035,
"tbq-lob",
aliases = {"Yi", "Ngwi", "Nisoik"},
}
m["tbq-lso"] = {
"Lisoish",
6559055,
"tbq-lol",
}
m["tbq-lwo"] = {
"Lawoish",
48847673,
"tbq-lol",
}
m["tbq-muj"] = {
"Muji",
11221327,
"tbq-hph",
}
m["tbq-nas"] = {
"Nasoid",
nil,
"tbq-nlo",
}
m["tbq-nis"] = {
"Nisu",
56404,
"tbq-nlo",
}
m["tbq-nlo"] = {
"Loloik Utara",
7058676,
"tbq-nso",
}
m["tbq-nso"] = {
"Nisoish",
56990,
"tbq-lol",
}
m["tbq-nus"] = {
"Nusoish",
114245231,
"tbq-lol",
}
m["tbq-phw"] = {
"Phowa",
7187959,
"tbq-hph",
}
m["tbq-rph"] = {
"Phula Sungai",
nil,
"tbq-sel",
}
m["tbq-sel"] = {
"Loloik Tenggara",
16111894,
"tbq-nso",
}
m["tbq-sil"] = {
"Siloid",
60787071,
"tbq-slo",
}
m["tbq-slo"] = {
"Loloik Selatan",
5649340,
"tbq-lol",
}
m["tbq-tal"] = {
"Taloid",
48804018,
"tbq-lso",
}
m["tbq-urp"] = {
"Phula Hulu Sungai",
7187058,
"tbq-rph",
}
m["trk"] = {
"Turkik",
34090,
}
m["trk-cmn"] = {
"Turkik Sepunya",
1126028,
"trk",
aliases = {"Turkik Shaz"},
}
m["trk-kar"] = {
"Karluk",
703173,
"trk-cmn",
aliases = {"Qarluq", "Uyghur-Uzbek", "Turkik Tenggara"},
}
m["trk-kbu"] = {
"Kipchak-Bulgar",
3512539,
"trk-kip",
aliases = {"Ural", "Ural-Kaspia"},
}
m["trk-kcu"] = {
"Kipchak-Cuman",
4370412,
"trk-kip",
aliases = {"Ponto-Kaspia"},
}
m["trk-kip"] = {
"Kipchak",
1339898,
"trk-cmn",
-- Rencana Wikipedia Bahasa Rusia [[w:ru:Западнотюркские_языки]] menyatakan "Western Turkic" digunakan oleh N.A. Baskakov dan merangkumi Oghuz, Kipchak dan Karluk.
-- Rencana Wikipedia Bahasa Azerbaijan [[w:az:Qərbi_türk_dilləri]] menjelaskan bahawa "Western Turkic" bukan satu klad.
other_names = {"Turkik Barat"},
aliases = {"Kypchak", "Qypchaq", "Turkik Barat Laut"},
protoLanguage = "qwm",
}
m["trk-kkp"] = {
"Kyrgyz-Kipchak",
4221189,
"trk-kip",
}
m["trk-kno"] = {
"Kipchak-Nogai",
4326954,
"trk-kip",
aliases = {"Aral-Kaspia"},
}
m["trk-nsb"] = {
"Turkik Siberia Utara",
4537269,
"trk-sib",
aliases = {"Turkik Siberia Bahagian Utara"},
}
m["trk-ogr"] = {
"Oghur",
1422731,
"trk",
aliases = {"Turkik Lir", "Turkik r"},
}
m["trk-ogz"] = {
"Oghuz",
494600,
"trk-cmn",
aliases = {"Turkik Barat Daya"},
}
m["trk-sib"] = {
"Turkik Siberia",
354353,
"trk-cmn",
other_names = {"Turkik Utara"},
-- menurut [[w:ru:Восточнотюркские_языки]], "Eastern Turkic" ialah alias untuk Turkik Siberia dalam karya O.A. Mudrak,
-- tetapi mempunyai maksud bukan-klad yang berbeza dalam karya lama N.A. Baskakov.
aliases = {"Turkik Timur", "Turkik Timur Laut"},
}
m["trk-ssb"] = {
"Turkik Siberia Selatan",
nil,
"trk-sib",
aliases = {"Turkik Siberia Bahagian Selatan"},
}
m["tup"] = {
"Tupi",
34070,
aliases = {"Tupian"},
}
m["tup-gua"] = {
"Tupi-Guarani",
148610,
"tup",
aliases = {"Tupí-Guaraní"},
}
m["tuw"] = {
"Tungusik",
34230,
aliases = {"Manchu-Tungus", "Tungus"},
}
m["tuw-ewe"] = {
"Ewenik",
105889448,
"tuw",
aliases = {"Tungusik Utara"},
}
m["tuw-jrc"] = {
"Jurchenik",
105889432,
"tuw",
aliases = {"Manchurik"},
}
m["tuw-nan"] = {
"Nanaik",
105889264,
"tuw",
}
m["tuw-udg"] = {
"Udegheik",
105889266,
"tuw",
}
m["urj"] = {
"Uralik",
34113,
varieties = {"Finno-Ugrik"},
}
m["urj-fin"] = {
"Finnik",
33328,
"urj",
aliases = {"Finnik Baltik", "Balto-Finnik", "Fennik"},
}
m["urj-mdv"] = {
"Mordvinik",
627313,
"urj",
}
m["urj-prm"] = {
"Permik",
161493,
"urj",
}
m["urj-ugr"] = {
"Ugrik",
156631,
"urj",
}
m["wak"] = {
"Wakashan",
60069,
}
m["wen"] = {
"Sorbia",
25442,
"zlw",
aliases = {"Lusatia", "Wendish"},
}
m["xgn"] = {
"Mongolik",
33750,
"qfa-xgs",
aliases = {"Mongolia"},
}
m["xgn-cen"] = {
"Mongolik Tengah",
28719447,
"xgn",
protoLanguage = "xng-lat",
}
m["xgn-sou"] = {
"Mongolik Selatan",
nil,
"xgn",
protoLanguage = "xng-ear",
}
m["xgn-shr"] = {
"Shirongolik",
107539435,
"xgn-sou",
}
m["xme"] = {
"Media",
nil,
"ira-mpr",
protoLanguage = "xme-old",
}
m["xme-ttc"] = {
"Tatik",
nil,
"xme",
}
m["xnd"] = {
"Na-Dene",
26986,
"qfa-dny",
aliases = {"Na-Dené"},
}
m["xsc"] = {
"Scythia",
nil,
"ira-nei",
}
m["xsc-sak"] = {
"Saka",
nil,
"xsc-skw",
aliases = {"Sakan"},
}
m["xsc-sar"] = {
"Sarmatia",
nil,
"xsc",
}
m["xsc-skw"] = {
"Saka-Wakhi",
nil,
"xsc",
}
m["yok"] = {
"Yokuts",
34249,
"nai-you",
aliases = {"Yokutsan", "Mariposan", "Mariposa"},
}
m["ypk"] = {
"Yupik",
27970,
"esx-esk",
aliases = {"Yup'ik", "Yuit"},
}
m["yrk"] = {
"Nenets",
36452,
"syd",
}
m["zhx"] = {
"Sinitik",
33857,
"sit-sba",
aliases = {"Cina"},
protoLanguage = "och",
}
m["zhx-com"] = {
"Min Pantai",
20667215,
"zhx-min",
}
m["zhx-inm"] = {
"Min Pedalaman",
20667237,
"zhx-min",
}
m["zhx-man"] = {
"Mandarinik",
nil,
"zhx",
protoLanguage = "cmn-ear",
}
m["zhx-min"] = {
"Min",
56504,
"zhx",
}
m["zhx-nan"] = {
"Min Selatan",
36495,
"zhx-com",
}
m["zhx-pin"] = {
"Pinghua",
2735715,
"zhx",
protoLanguage = "ltc",
}
m["zhx-yue"] = {
"Yue",
7033959,
"zhx",
protoLanguage = "ltc",
}
m["zle"] = {
"Slav Timur",
144713,
"sla",
}
m["zls"] = {
"Slav Selatan",
146665,
"sla",
}
m["zlw"] = {
"Slav Barat",
145852,
"sla",
}
m["zlw-lch"] = {
"Lechitik",
742782,
"zlw",
aliases = {"Lekhitik"},
}
m["zlw-pom"] = {
"Pomerania",
nil,
"zlw-lch",
}
m["znd"] = {
"Zande",
8066072,
"nic-ubg",
}
return require("Module:languages").finalizeData(m, "family")
hwawixy0cyi8lxgbmsxcps3at5lb9kt
Modul:languages/data/3/a
828
9766
373488
342942
2026-09-10T18:59:59Z
SNN95
2113
kemaskini
373488
Scribunto
text/plain
local m_langdata = require("Module:languages/data")
-- Dimuatkan mengikut permintaan, kerana mungkin tidak diperlukan (bergantung pada data).
local function u(...)
u = require("Module:string utilities").char
return u(...)
end
local c = m_langdata.chars
local p = m_langdata.puaChars
local s = m_langdata.shared
local m = {}
m["aaa"] = {
"Ghotuo",
35463,
"alv-yek",
"Latn",
}
m["aab"] = {
"Alumu-Tesu",
35034,
"nic-alu",
"Latn",
}
m["aac"] = {
"Ari",
1811224,
"ngf-gsu",
"Latn",
}
m["aad"] = {
"Amal",
56708,
"paa-sep",
"Latn",
}
-- "aae" dilayan sebagai "sq", lihat [[WT:LT]]
m["aaf"] = {
"Aranadan",
3507928,
"dra-mal",
"Mlym",
-- Translit Mlym dalam [[Module:scripts/data]] (NOTA: tidak hadir sebelum ini, berkemungkinan ketinggalan secara tidak sengaja)
}
m["aag"] = {
"Ambrak",
4741706,
"paa-pal",
"Latn",
}
m["aah"] = {
"Abu'",
4670715,
"paa-ara",
"Latn",
}
m["aai"] = {
"Arifama-Miniafia",
4790560,
"poz-ocw",
"Latn",
}
m["aak"] = {
"Ankave",
3446690,
"ngf-ata",
"Latn",
}
m["aal"] = {
"Afade",
56434,
"cdc-cbm",
"Latn",
}
m["aan"] = {
"Anambé",
3507873,
"tup-gua",
"Latn",
}
m["aap"] = {
"Arára (Pará)",
56807,
"sai-pek",
"Latn",
}
m["aaq"] = {
"Penobscot",
3515185,
"alg-abp",
"Latn",
}
m["aas"] = {
"Aasax",
56620,
"cus-sou",
"Latn",
}
-- "aat" dilayan sebagai "sq", lihat [[WT:LT]]
m["aau"] = {
"Abau",
3073568,
"paa-sep",
"Latn",
}
m["aaw"] = {
"Solong",
7558834,
"poz-ocw",
"Latn",
}
m["aax"] = {
"Mandobo Atas",
12636156,
"ngf-dum",
"Latn",
}
m["aaz"] = {
"Amarasi",
4740192,
"poz-tim",
"Latn",
}
m["aba"] = {
"Abé",
34833,
"alv-lag",
"Latn",
}
m["abb"] = {
"Bankon",
34860,
"bnt-bsa",
"Latn",
}
m["abc"] = {
"Ayta Ambala",
3448896,
"phi",
"Latn",
}
m["abd"] = {
"Agta Camarines Norte",
3399682,
"phi",
"Latn",
}
m["abe"] = {
"Abenaki",
17502788,
"alg-abp",
"Latn",
}
m["abf"] = {
"Abai Sungai",
4663287,
"poz-san",
"Latn",
}
m["abg"] = {
"Abaga",
3507954,
"ngf-kya",
"Latn",
}
m["abh"] = {
"Arab Tajik",
56833,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["abi"] = {
"Abidji",
34781,
"alv-lag",
"Latn",
}
m["abj"] = {
"Aka-Bea",
2356391,
"qfa-ads",
"Latn",
}
m["abl"] = {
"Abung",
49215,
"poz-lgx",
"Latn",
}
m["abm"] = {
"Abanyom",
7502,
"nic-eko",
"Latn",
}
m["abn"] = {
"Abua",
34835,
"nic-cde",
"Latn",
}
m["abo"] = {
"Abon",
35121,
"nic-tvn",
"Latn",
}
m["abp"] = {
"Ayta Abenlen",
3436621,
"phi",
"Latn",
}
m["abq"] = {
"Abaza",
27567,
"cau-abz",
"Cyrl, Latn",
translit = {
Cyrl = "abq-translit"
},
override_translit = true,
display_text = {
Cyrl = s["cau-Cyrl-displaytext"]
},
strip_diacritics = {
Cyrl = s["cau-Cyrl-stripdiacritics"],
Latn = s["cau-Latn-stripdiacritics"],
},
sort_key = {
Cyrl = {
from = {
"гъв", "гъь", "гӏв", "джв", "джь", "къв", "къь", "кӏв", "кӏь", "хъв", "хӏв", "чӏв", -- 3 aksara
"гв", "гъ", "гь", "гӏ", "дж", "дз", "ё", "жв", "жь", "кв", "къ", "кь", "кӏ", "ль", "лӏ", "пӏ", "тл", "тш", "тӏ", "фӏ", "хв", "хъ", "хь", "хӏ", "цӏ", "чв", "чӏ", "шв", "шӏ" -- 2 aksara
},
to = {
"г" .. p[3], "г" .. p[4], "г" .. p[7], "д" .. p[2], "д" .. p[3], "к" .. p[3], "к" .. p[4], "к" .. p[7], "к" .. p[8], "х" .. p[3], "х" .. p[6], "ч" .. p[3],
"г" .. p[1], "г" .. p[2], "г" .. p[5], "г" .. p[6], "д" .. p[1], "д" .. p[4], "е" .. p[1], "ж" .. p[1], "ж" .. p[2], "к" .. p[1], "к" .. p[2], "к" .. p[5], "к" .. p[6], "л" .. p[1], "л" .. p[2], "п" .. p[1], "т" .. p[1], "т" .. p[2], "т" .. p[3], "ф" .. p[1], "х" .. p[1], "х" .. p[2], "х" .. p[4], "х" .. p[5], "ц" .. p[1], "ч" .. p[1], "ч" .. p[2], "ш" .. p[1], "ш" .. p[2]
}
},
},
}
-- "abr" Abron dilayan sebagai "ak" Akan, lihat [[WT:LT]]
m["abs"] = {
"Melayu Ambon",
3124354,
"crp",
"Latn",
ancestors = "ms",
}
m["abt"] = {
"Ambulas",
3508015,
"paa-nnd",
"Latn",
}
m["abu"] = {
"Abure",
34767,
"alv-ptn",
"Latn",
}
m["abv"] = {
"Arab Bahrani",
56576,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["abw"] = {
"Pal",
7126121,
"ngf-omo",
"Latn",
}
m["abx"] = {
"Inabaknon",
2820163,
"poz-sbj",
"Latn",
}
m["aby"] = {
"Aneme Wake",
3508107,
"ngf-yar",
"Latn",
}
m["abz"] = {
"Abui",
2822110,
"paa-alp",
"Latn",
}
m["aca"] = {
"Achagua",
2822982,
"awd",
"Latn",
}
m["acb"] = {
"Áncá",
11130787,
"nic-mom",
"Latn",
}
m["acd"] = {
"Gikyode",
35256,
"alv-gng",
"Latn",
}
m["ace"] = {
"Aceh",
27683,
"cmc",
"Latn, Arab",
standard_chars = {
Latn = "AaBbCcDdEeÉéÈèËëFfGgHhIiJjKkLlMmNnOoÔôÖöPpQqRrSsTtUuVvWwXxYyZz", -- ortografi semasa (belum menambah Arab)
c.punc
},
}
m["ach"] = {
"Acholi",
34926,
"sdv-los",
"Latn",
}
m["aci"] = {
"Aka-Cari",
2670418,
"qfa-adn",
"Latn",
}
m["ack"] = {
"Aka-Kora",
3433680,
"qfa-adn",
"Latn",
}
m["acl"] = {
"Akar-Bale",
3436825,
"qfa-ads",
"Latn",
}
m["acm"] = {
"Arab Iraq",
56232,
"sem-arb",
"Arab, Hebr",
strip_diacritics = {
Arab = "ar-stripdiacritics",
},
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
}
m["acn"] = {
"Achang",
56582,
"tbq-brm",
"Latn",
}
m["acp"] = {
"Acipa Timur",
5329945,
"nic-kmk",
"Latn",
}
m["acr"] = {
"Achi",
34774,
"myn",
"Latn",
}
m["acs"] = {
"Acroá",
2829146,
"sai-cje",
"Latn",
}
m["acu"] = {
"Achuar",
2823170,
"sai-jiv",
"Latn",
}
m["acv"] = {
"Achumawi",
56661,
"nai-pal",
"Latn",
}
m["acw"] = {
"Arab Hijaz",
56608,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["acx"] = {
"Arab Oman",
56630,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["acy"] = {
"Arab Cyprus",
56416,
"sem-arb",
"Latn, Grek",
ancestors = "acm",
strip_diacritics = {
Latn = {remove_diacritics = c.grave .. c.acute .. c.breve},
},
-- display_text, strip_diacritics, sort_key Grek dalam [[Module:scripts/data]]
standard_chars = {
Latn = "AaBbCcDdΔδEeFfGgĠġĊċIiJjKkLlMmNnOoPpΘθRrSsTtUuVvWwXxYyZzŞş",
c.punc
},
}
m["acz"] = {
"Acheron",
34769,
"alv-tal",
"Latn",
}
m["ada"] = {
"Adangme",
35141,
"alv-gda",
"Latn",
}
m["adb"] = {
"Atauran",
125421255,
"poz-cet",
"Latn",
}
m["add"] = {
"Dzodinka",
35266,
"nic-nka",
"Latn",
}
m["ade"] = {
"Adele",
27740,
"alv-ntg",
"Latn",
}
m["adf"] = {
"Arab Dhofar",
56565,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["adg"] = {
"Andegerebinha",
3508123,
"aus-rnd",
"Latn",
}
m["adh"] = {
"Adhola",
1971400,
"sdv-los",
"Latn",
}
m["adi"] = {
"Adi",
56440,
"sit-tan",
"Latn",
}
m["adj"] = {
"Adioukrou",
34738,
"alv-lag",
"Latn",
}
m["adl"] = {
"Galo",
2857892,
"sit-tan",
"Latn",
}
m["adn"] = {
"Adang",
3398276,
"paa-alp",
"Latn",
}
m["ado"] = {
"Abu",
56659,
"paa-por",
"Latn",
}
m["adp"] = {
"Adap",
3512402,
"sit-tib",
"Tibt",
ancestors = "dz",
override_translit = true,
-- translit, display_text, strip_diacritics, sort_key Tibt dalam [[Module:scripts/data]]
}
m["adq"] = {
"Adangbe",
34730,
"alv-gda",
"Latn",
ancestors = "ada",
}
m["adr"] = {
"Adonara",
4684505,
"poz-cet",
"Latn",
}
m["ads"] = {
"Bahasa Isyarat Adamorobe",
27709,
"sgn",
"Latn", -- apabila didokumentasikan
}
m["adt"] = {
"Adnyamathanha",
2225391,
"aus-psw",
"Latn",
}
m["adu"] = {
"Aduge",
34734,
"alv-nwd",
"Latn",
ancestors = "opa",
}
m["adw"] = {
"Amondawa",
12626847,
"tup-gua",
"Latn",
}
m["ady"] = {
"Circassian Barat",
27776,
"cau-cir",
"Cyrl, Latn, Arab",
translit = {
Cyrl = "cau-cir-translit",
Arab = "ar-translit",
},
override_translit = true,
display_text = {
Cyrl = s["cau-Cyrl-displaytext"]
},
strip_diacritics = {
Cyrl = s["cau-Cyrl-stripdiacritics"],
Latn = s["cau-Latn-stripdiacritics"],
},
sort_key = {
Cyrl = {
from = {
"кхъу", "къӏу", -- 4 aksara
"гъу", "джу", "дзу", "жъу", "къу", "кхъ", "къӏ", "кӏу", "кӏь", "лъу", "лӏу", "пӏу", "сӏу", "тӏу", "фӏу", "хъу", "цӏу", "чъу", "чӏу", "шъу", "шӏу", "щӏу", -- 3 aksara
"гу", "гъ", "гь", "дж", "дз", "ё", "жъ", "жь", "ку", "къ", "кь", "кӏ", "лъ", "ль", "лӏ", "пӏ", "сӏ", "тӏ", "фӏ", "ху", "хъ", "хь", "цу", "цӏ", "чу", "чъ", "чӏ", "шъ", "шӏ", "щӏ", "ӏу", "ӏь" -- 2 aksara
},
to = {
"к" .. p[5], "к" .. p[7],
"г" .. p[3], "д" .. p[2], "д" .. p[4], "ж" .. p[2], "к" .. p[3], "к" .. p[4], "к" .. p[6], "к" .. p[10], "к" .. p[11], "л" .. p[2], "л" .. p[5], "п" .. p[2], "с" .. p[2], "т" .. p[2], "ф" .. p[2], "х" .. p[3], "ц" .. p[3], "ч" .. p[3], "ч" .. p[5], "ш" .. p[2], "ш" .. p[4], "щ" .. p[2],
"г" .. p[1], "г" .. p[2], "г" .. p[4], "д" .. p[1], "д" .. p[3], "е" .. p[1], "ж" .. p[1], "ж" .. p[3], "к" .. p[1], "к" .. p[2], "к" .. p[8], "к" .. p[9], "л" .. p[1], "л" .. p[3], "л" .. p[4], "п" .. p[1], "с" .. p[1], "т" .. p[1], "ф" .. p[1], "х" .. p[1], "х" .. p[2], "х" .. p[4], "ц" .. p[1], "ц" .. p[2], "ч" .. p[1], "ч" .. p[2], "ч" .. p[4], "ш" .. p[1], "ш" .. p[3], "щ" .. p[1], "ӏ" .. p[1], "ӏ" .. p[2]
}
},
},
}
m["adz"] = {
"Adzera",
3327445,
"poz-ocw",
"Latn",
}
m["aea"] = {
"Areba",
3509129,
"aus-pam",
"Latn",
}
m["aeb"] = {
"Arab Tunisia",
56240,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["aed"] = {
"Bahasa Isyarat Argentina",
3322073,
"sgn",
"Latn", -- apabila didokumentasikan
}
m["aee"] = {
"Pashayi Timur Laut",
12642198,
"inc-pas",
"Arab, Latn",
}
m["aek"] = {
"Haeke",
5638166,
"poz-cln",
"Latn",
}
m["ael"] = {
"Ambele",
34818,
"nic-grf",
"Latn",
}
m["aem"] = {
"Arem",
3507920,
"mkh-vie",
"Latn",
}
m["aen"] = {
"Bahasa Isyarat Armenia",
3446604,
"sgn",
}
m["aeq"] = {
"Aer",
3246741,
"inc-wes",
"Arab",
}
m["aer"] = {
"Arrernte Timur",
10728232,
"aus-rnd",
"Latn",
}
m["aes"] = {
"Alsea",
2395641,
nil,
"Latn",
}
m["aeu"] = {
"Akeu",
4700657,
"tbq-sil",
"Latn",
}
m["aew"] = {
"Ambakich",
56642,
"paa-eke",
"Latn",
}
m["aey"] = {
"Amele",
3508025,
"ngf-gum",
"Latn",
}
m["aez"] = {
"Aeka",
16110528,
"ngf-oro",
"Latn",
}
m["afb"] = {
"Arab Teluk",
56385,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["afd"] = {
"Andai",
4753480,
"paa-arf",
"Latn",
}
m["afe"] = {
"Putukwam",
3914930,
"nic-ben",
"Latn",
}
m["afg"] = {
"Bahasa Isyarat Afghanistan",
4689093,
"sgn",
}
m["afh"] = {
"Afrihili",
384707,
"art",
"Latn",
type = "appendix-constructed",
}
m["afi"] = {
"Akrukay",
57003,
"paa-tam",
"Latn",
}
m["afk"] = {
"Nanubae",
6964416,
"paa-arf",
"Latn",
}
m["afn"] = {
"Defaka",
35174,
"nic",
"Latn",
}
m["afo"] = {
"Eloyi",
3914066,
"nic-plt",
"Latn",
}
m["afp"] = {
"Tapei",
16887371,
"paa-arf",
"Latn",
}
m["afs"] = {
"Kreol Afro-Seminole",
27867,
"crp",
"Latn",
ancestors = "en",
}
m["aft"] = {
"Afitti",
3400829,
"sdv-nyi",
"Latn",
}
m["afu"] = {
"Awutu",
34847,
"alv-gng",
"Latn",
}
m["afz"] = {
"Obokuitai",
7075258,
"paa-clp",
"Latn",
}
m["aga"] = {
"Aguano",
3331203,
nil,
"Latn",
}
m["agb"] = {
"Legbo",
35584,
"nic-uce",
"Latn",
}
m["agc"] = {
"Agatu",
34732,
"alv-ido",
"Latn",
}
m["agd"] = {
"Agarabi",
3399642,
"ngf-gau",
"Latn",
}
m["age"] = {
"Angal",
10951553,
"ngf-ank",
"Latn",
}
m["agf"] = {
"Arguni",
12473346,
"poz-cet",
"Latn",
}
m["agg"] = {
"Angor",
3508100,
"paa-sng",
"Latn",
}
m["agh"] = {
"Ngelima",
7022266,
"bnt-bta",
"Latn",
}
m["agj"] = {
"Argobba",
29292,
"sem-eth",
"Ethi",
}
m["agk"] = {
"Agta Isarog",
6078982,
"phi",
"Latn",
}
m["agl"] = {
"Fembe",
372927,
"ngf-est",
"Latn",
}
m["agm"] = {
"Angaataha",
3508001,
"ngf-ang",
"Latn",
}
m["agn"] = {
"Agutaynen",
3399717,
"phi-kal",
"Latn",
}
m["ago"] = {
"Tainae",
7676186,
"ngf-taa",
"Latn",
}
m["agq"] = {
"Aghem",
34737,
"nic-rnw",
"Latn",
}
m["agr"] = {
"Aguaruna",
1526530,
"sai-jiv",
"Latn",
}
m["ags"] = {
"Esimbi",
35260,
"nic-bds",
"Latn",
}
m["agt"] = {
"Agta Cagayan Tengah",
5017296,
"phi",
"Latn",
}
m["agu"] = {
"Aguacateco",
35091,
"myn",
"Latn",
}
m["agv"] = {
"Agta Remontado",
3508085,
"phi",
"Latn",
}
m["agw"] = {
"Kahua",
3191906,
"poz-sls",
"Latn",
}
m["agx"] = {
"Aghul",
36498,
"cau-esm",
"Cyrl",
translit = "cau-nec-translit",
override_translit = true,
display_text = s["cau-Cyrl-displaytext"],
strip_diacritics = s["cau-Cyrl-stripdiacritics"],
sort_key = {
from = {"аь", "гъ", "гь", "гӏ", "дж", "ё", "къ", "кь", "кӏ", "оь", "пӏ", "тӏ", "уь", "хъ", "хь", "хӏ", "цӏ", "чӏ"},
to = {"а" .. p[1], "г" .. p[1], "г" .. p[2], "г" .. p[3], "д" .. p[1], "е" .. p[1], "к" .. p[1], "к" .. p[2], "к" .. p[3], "о" .. p[1], "п" .. p[1], "т" .. p[1], "у" .. p[1], "х" .. p[1], "х" .. p[2], "х" .. p[3], "ц" .. p[1], "ч" .. p[1]}
},
}
m["agy"] = {
"Alta Selatan",
7569611,
"phi",
"Latn",
}
m["agz"] = {
"Agta Gunung Iriga",
6921432,
"phi",
"Latn",
}
m["aha"] = {
"Ahanta",
34729,
"alv-ctn",
"Latn",
}
m["ahb"] = {
"Axamb",
2874710,
"poz-vnc",
"Latn",
}
m["ahg"] = {
"Qimant",
35663,
"cus-cen",
"Latn",
}
m["ahh"] = {
"Aghu",
3436645,
"ngf-awy",
"Latn",
}
m["ahi"] = {
"Tiagba",
3400073,
"kro-aiz",
"Latn",
}
m["ahk"] = {
"Akha",
56643,
"tbq-han",
"Latn, Mymr, Thai",
sort_key = {
Thai = {
from = {"[%pๆ]", "[็-๎]", "([เแโใไ])([ก-ฮ])"},
to = {"", "", "%2%1"}
},
},
}
m["ahl"] = {
"Igo",
35412,
"alv-ktg",
"Latn",
}
m["ahm"] = {
"Mobu",
35967,
"kro-aiz",
"Latn",
}
m["ahn"] = {
"Àhàn",
34723,
"alv-aah",
"Latn",
}
m["aho"] = {
"Ahom",
34778,
"tai-swe",
"Ahom",
translit = "Ahom-translit",
}
m["ahp"] = {
"Apro",
34810,
"alv-kwa",
"Latn",
}
m["ahr"] = {
"Ahirani",
15549890,
"raj",
"Deva",
translit = "mr-translit",
}
m["ahs"] = {
"Ashe",
34823,
"nic-plc",
"Latn",
}
m["aht"] = {
"Ahtna",
21058,
"ath-nor",
"Latn",
}
m["aia"] = {
"Arosi",
2863483,
"poz-sls",
"Latn",
}
m["aib"] = {
"Äynu",
27927,
"qfa-mix",
"Arab, Latn",
ancestors = "ug, fa"
}
m["aic"] = {
"Ainbai",
3332149,
"paa-bew",
"Latn",
}
m["aid"] = {
"Alngith",
3279409,
"aus-pmn",
"Latn",
}
m["aie"] = {
"Amara",
2841180,
"poz-ocw",
"Latn",
}
m["aif"] = {
"Agi",
3331491,
"paa-wpa",
"Latn",
}
m["aig"] = {
"Kreol Inggeris Antigua dan Barbuda",
3244184,
"crp",
"Latn",
ancestors = "en",
}
m["aih"] = {
"Ai-Cham",
2827749,
"qfa-kms",
"Latn, Hani",
sort_key = {
Hani = "Hani-sortkey"
},
}
m["aii"] = {
"Neo-Aramia Assyria",
29440,
"sem-nna",
"Syrc",
translit = "aii-translit",
strip_diacritics = "Syrc-stripdiacritics",
}
m["aij"] = {
"Lishanid Noshan",
3436467,
"sem-nna",
"Hebr",
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
}
m["aik"] = {
"Ake",
34808,
"nic-pls",
"Latn",
}
m["ail"] = {
"Aimele",
3327418,
"ngf-bos",
"Latn",
}
m["aim"] = {
"Aimol",
4697175,
"tbq-kuk",
"Latn, Beng",
}
m["ain"] = {
"Ainu",
27969,
"qfa-ain",
"Kana, Latn, Cyrl",
sort_key = {
Kana = "Kana-sortkey"
},
}
m["aio"] = {
"Aiton",
3399725,
"tai-swe",
"Mymr",
translit = "aio-phk-translit",
display_text = s["aio-displaytext"],
strip_diacritics = s["aio-stripdiacritics"],
}
m["aip"] = {
"Burumakok",
5000984,
"ngf-wok",
"Latn",
}
m["air"] = {
"Airoran",
3321131,
"paa-saa",
"Latn",
}
m["ait"] = {
"Arikem",
3446679,
"tup",
"Latn",
}
m["aiw"] = {
"Aari",
7495,
"omv-aro",
"Latn",
}
m["aix"] = {
"Aighon",
3504287,
"poz-ocw",
"Latn",
}
m["aiy"] = {
"Ali",
34814,
"gba-eas",
"Latn",
}
m["aja"] = {
"Aja (Afrika Timur)",
3237491,
"csu-bkr",
"Latn",
}
m["ajg"] = {
"Aja (Afrika Barat)",
35035,
"alv-gbe",
"Latn",
}
m["aji"] = {
"Ajië",
2828867,
"poz-cln",
"Latn",
}
m["ajn"] = {
"Andajin",
16111302,
"aus-wor",
"Latn",
}
m["ajp"] = {
"Arab Syam Selatan",
55633582,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["ajs"] = {
"Bahasa Isyarat Yahudi Algeria",
5555709,
"sgn",
}
-- m["ajt"] Arab Yahudi-Tunisia kini disertakan dalam Arab Tunisia
-- m["aju"] Arab Yahudi-Maghribi kini disertakan dalam Arab Maghribi
m["ajw"] = {
"Ajawa",
56645,
"cdc-wst",
"Latn",
}
m["ajz"] = {
"Karbi Amri",
3508092,
"tbq-kuk",
"Latn",
ancestors = "mjw",
}
m["akb"] = {
"Batak Angkola",
2640686,
"btk",
"Latn, Batk",
}
m["akc"] = {
"Mpur",
3327139,
"qfa-iso", -- Papua; berdasarkan Palmer (2018), Ethnologue dan Glottolog
"Latn",
}
m["akd"] = {
"Ukpet-Ehom",
36618,
"nic-ucr",
"Latn",
}
m["ake"] = {
"Akawaio",
28059,
"sai-pem",
"Latn",
}
m["akf"] = {
"Akpa",
34801,
"alv-ido",
"Latn",
}
m["akg"] = {
"Anakalangu",
4750964,
"poz-cet",
"Latn",
}
m["akh"] = {
"Angal Heneng",
10950354,
"ngf-ank",
"Latn",
}
m["aki"] = {
"Aiome",
56735,
"paa-aia",
"Latn",
}
m["akj"] = {
"Jeru",
2919121,
"qfa-adn",
"Latn, Deva",
}
m["akk"] = {
"Akkadia",
35518,
"sem-eas",
"Xsux, Latn",
}
m["akl"] = {
"Aklanon",
8773,
"phi",
"Latn",
}
m["akm"] = {
"Aka-Bo",
35361,
"qfa-adn",
"Latn",
}
m["ako"] = {
"Akurio",
56650,
"sai-tar",
"Latn",
}
m["akp"] = {
"Siwu",
36470,
"alv-ntg",
"Latn",
}
m["akq"] = {
"Ak",
56654,
"paa-sep",
"Latn",
}
m["akr"] = {
"Araki",
2699882,
"poz-vnn",
"Latn",
}
m["aks"] = {
"Akaselem",
34817,
"nic-grm",
"Latn",
}
m["akt"] = {
"Akolet",
3330162,
"poz-ocw",
"Latn",
}
m["aku"] = {
"Akum",
34799,
"nic-ykb",
"Latn",
}
m["akv"] = {
"Akhvakh",
56423,
"cau-and",
"Cyrl",
translit = "cau-nec-translit",
override_translit = true,
display_text = s["cau-Cyrl-displaytext"],
strip_diacritics = s["cau-Cyrl-stripdiacritics"],
}
m["akw"] = {
"Akwa",
34802,
"bnt-mbo",
"Latn",
}
m["akx"] = {
"Aka-Kede",
3436816,
"qfa-adc",
"Latn",
}
m["aky"] = {
"Aka-Kol",
3436784,
"qfa-adc",
"Latn",
}
m["akz"] = {
"Alabama",
1815020,
"nai-mus",
"Latn",
}
m["ala"] = {
"Alago",
34813,
"alv-ido",
"Latn",
}
m["alc"] = {
"Kawésqar",
56544,
"aqa",
"Latn",
}
m["ald"] = {
"Alladian",
34837,
"alv-lag",
"Latn",
}
m["ale"] = {
"Aleut",
27210,
"esx",
"Latn, Cyrl",
}
m["alf"] = {
"Alege",
34815,
"nic-ben",
"Latn",
}
m["alh"] = {
"Alawa",
2147917,
"aus-gun",
"Latn",
}
m["ali"] = {
"Amaimon",
3327427,
"ngf-mad",
"Latn",
}
m["alj"] = {
"Alangan",
3327423,
"phi",
"Latn",
}
m["alk"] = {
"Alak",
2714690,
"mkh",
"Latn",
}
m["all"] = {
"Allar",
3393634,
"dra-mal",
"Mlym",
-- Translit Mlym dalam [[Module:scripts/data]] (NOTA: tidak hadir sebelum ini, berkemungkinan ketinggalan secara tidak sengaja)
}
-- "aln" dilayan sebagai "sq", lihat [[WT:LT]]
m["alm"] = {
"Amblong",
11022615,
"poz-vnn",
"Latn",
}
m["alo"] = {
"Larike-Wakasihu",
3217929,
"poz-cma",
"Latn",
}
m["alp"] = {
"Alune",
3327367,
"poz-cet",
"Latn",
}
m["alq"] = {
"Algonquin",
28092,
"alg",
"Latn, Cans",
ancestors = "oj",
}
m["alr"] = {
"Alutor",
28213,
"qfa-ckn",
"Cyrl",
strip_diacritics = {
from = {"['’]"},
to = {"ʼ"}
},
sort_key = {
from = {"вʼ", "гʼ", "ғ", "ә", "ё", "ӄ", "ӈ"},
to = {"в" .. p[1], "г" .. p[1], "г" .. p[2], "е" .. p[1], "е" .. p[2], "к" .. p[1], "н" .. p[1]}
},
}
m["alt"] = {
"Altai Selatan",
1991779,
"trk-kkp",
"Cyrl",
translit = "Altai-translit",
sort_key = {
from = {"ј", "ё", "ҥ", "ӧ", "ӱ"},
to = {"д" .. p[1], "е" .. p[1], "н" .. p[1], "о" .. p[1], "у" .. p[1]}
},
}
m["alu"] = {
"'Are'are",
5160,
"poz-sls",
"Latn",
}
m["alw"] = {
"Alaba",
56652,
"cus-hec",
"Latn",
}
m["alx"] = {
"Amol",
3504260,
"paa-pal",
"Latn",
}
m["aly"] = {
"Alyawarr",
3327389,
"aus-rnd",
"Latn",
}
m["alz"] = {
"Alur",
56507,
"sdv-los",
"Latn",
}
m["ama"] = {
"Amanayé",
3508053,
"tup-gua",
"Latn",
}
m["amb"] = {
"Ambo",
3450142,
"nic-tvn",
"Latn",
}
m["amc"] = {
"Amahuaca",
2669150,
"sai-pan",
"Latn",
}
m["ame"] = {
"Yanesha'",
3088540,
"awd",
"Latn",
}
m["amf"] = {
"Hamer-Banna",
35764,
"omv-aro",
"Latn, Ethi",
sort_key = "amf-utilities"
}
m["amg"] = {
"Amurdag",
3360016,
"aus-wdj",
"Latn",
}
m["ami"] = {
"Amis",
35132,
"map",
"Latn",
}
m["amj"] = {
"Amdang",
28335,
"ssa-fur",
"Latn",
}
m["amk"] = {
"Ambai",
1875885,
"poz-hce",
"Latn",
}
m["aml"] = {
"War-Jaintia",
56321,
"aav-khs",
"Latn",
}
m["amm"] = {
"Ama",
3446626,
"paa-lma",
"Latn",
}
m["amn"] = {
"Amanab",
3327399,
"paa-war",
"Latn",
}
m["amo"] = {
"Amo",
34826,
"nic-kne",
"Latn",
}
m["amp"] = {
"Alamblak",
56688,
"paa-sep",
"Latn",
}
m["amq"] = {
"Amahai",
3327384,
"poz-cma",
"Latn",
}
m["amr"] = {
"Amarakaeri",
35128,
"sai-har",
"Latn",
}
m["ams"] = {
"Amami Ōshima Selatan",
2840986,
"jpx-nry",
"Jpan",
translit = s["jpx-translit"],
display_text = s["jpx-displaytext"],
strip_diacritics = s["jpx-stripdiacritics"],
sort_key = s["jpx-sortkey"],
}
m["amt"] = {
"Amto",
56517,
"paa-amu",
"Latn",
}
m["amu"] = {
"Amuzgo Guerrero",
3501942,
"omq",
"Latn",
}
m["amv"] = {
"Ambelau",
2669214,
"poz-cma",
"Latn",
}
m["amw"] = {
"Neo-Aramia Barat",
34226,
"sem-arw",
"Armi, Syrc, Latn",
strip_diacritics = {
Syrc = "Syrc-stripdiacritics"
},
}
m["amx"] = {
"Anmatyerre",
10412317,
"aus-rnd",
"Latn",
}
m["amy"] = {
"Ami",
10408315,
"aus-dal",
"Latn",
}
m["amz"] = {
"Atampaya",
3446651,
"aus-pam",
"Latn",
}
m["ana"] = {
"Andaqui",
2846078,
nil,
"Latn",
}
m["anb"] = {
"Andoa",
2846171,
"sai-zap",
"Latn",
}
m["anc"] = {
"Ngas",
35999,
"cdc-wst",
"Latn",
}
m["and"] = {
"Ansus",
3513300,
"poz-hce",
"Latn",
}
m["ane"] = {
"Xârâcùù",
3571097,
"poz-cln",
"Latn",
}
m["anf"] = {
"Animere",
34783,
"alv-ktg",
"Latn",
}
m["ang"] = {
"Inggeris Kuno",
42365,
"gmw-ang",
"Latn, Runr",
translit = {
Runr = "Runr-translit"
},
strip_diacritics = {
Latn = {
remove_diacritics = c.acute .. c.circ .. c.macron .. c.breve .. c.dotabove .. c.diaer .. c.dotbelow,
from = {"[Ƿƿ]"},
to = {{
["Ƿ"] = "W", ["ƿ"] = "w",
}},
},
},
sort_key = {
Latn = {
remove_diacritics = c.acute .. c.circ .. c.macron .. c.breve .. c.dotabove .. c.diaer .. c.dotbelow,
from = {"[æƀꝺðꝼᵹȝłœꞃꞅꞇþꝥꝧƿ]"},
to = {{
["æ"] = "ae", ["ƀ"] = "b", ["ꝺ"] = "d", ["ð"] = "d" .. p[1], ["ꝼ"] = "f",
["ᵹ"] = "g", ["ȝ"] = "g" .. p[1], ["ł"] = "l", ["œ"] = "oe", ["ꞃ"] = "r",
["ꞅ"] = "s", ["ꞇ"] = "t", ["þ"] = "t" .. p[1], ["ꝥ"] = "t" .. p[1],
["ꝧ"] = "t" .. p[1], ["ƿ"] = "w",
}},
},
},
standard_chars = {
Latn = "AaÆæBbCcDdÐðEeFfGgHhIiLlMmNnOoŒœPpRrSsTtÞþUuWwXxYy",
c.punc,
},
}
m["anh"] = {
"Nend",
6991554,
"ngf-wso",
"Latn",
}
m["ani"] = {
"Andi",
34849,
"cau-and",
"Cyrl",
translit = "cau-nec-translit",
override_translit = true,
display_text = s["cau-Cyrl-displaytext"],
strip_diacritics = s["cau-Cyrl-stripdiacritics"],
}
m["anj"] = {
"Anor",
56458,
"paa-aia",
"Latn",
}
m["ank"] = {
"Goemai",
35272,
"cdc-wst",
"Latn",
}
m["anl"] = {
"Anu",
4777679,
"sit-mru",
"Latn",
}
m["anm"] = {
"Anāl",
56235,
"tbq-kuk",
"Latn",
}
m["ann"] = {
"Obolo",
36614,
"nic-lcr",
"Latn",
}
m["ano"] = {
"Andoque",
2669225,
"qfa-iso",
"Latn",
}
m["anp"] = {
"Angika",
28378,
"inc-bih",
"Deva, Kthi",
translit = {
Deva = "hi-translit",
Kthi = "bho-Kthi-translit",
},
}
m["anq"] = {
"Jarawa",
2475526,
"qfa-ong",
"Latn",
}
m["anr"] = {
"Andh",
4754314,
"inc-sou",
"Deva",
}
m["ans"] = {
"Anserma",
3446613,
"sai-chc",
"Latn",
}
m["ant"] = {
"Antakarinya",
921304,
"aus-psw",
"Latn",
}
m["anu"] = {
"Anuak",
56677,
"sdv-lon",
"Latn",
}
m["anv"] = {
"Denya",
35187,
"nic-mam",
"Latn",
}
m["anw"] = {
"Anaang",
2845320,
"nic-ief",
"Latn",
}
m["anx"] = {
"Andra-Hus",
2846195,
"poz-aay",
"Latn",
}
m["any"] = {
"Anyi",
28395,
"alv-ctn",
"Latn",
}
m["anz"] = {
"Anem",
56512,
"qfa-dis", -- Papua; mungkin bahasa pencilan atau dalam keluarga andaian New Britain Barat
"Latn",
}
m["aoa"] = {
"Angolar",
34994,
"crp",
"Latn",
ancestors = "pt",
}
m["aob"] = {
"Abom",
3446647,
"qfa-dis", -- Papua; berkemungkinan bahasa Tirio mencapah (keluarga Anim), atau nod TNG peringkat teratas
"Latn",
}
m["aoc"] = {
"Pemon",
10729616,
"sai-pem",
"Latn",
}
m["aod"] = {
"Andarum",
3507888,
"paa-ata",
"Latn",
}
m["aoe"] = {
"Angal Enen",
10951638,
"ngf-ank",
"Latn",
}
m["aof"] = {
"Bragat",
3507977,
"paa-pal",
"Latn",
}
m["aog"] = {
"Angoram",
56366, -- rujuk 6754745 bagi dialek gabungan
"paa-lse",
"Latn",
}
m["aoi"] = {
"Anindilyakwa",
2714654,
"aus-arn",
"Latn",
}
m["aoj"] = {
"Mufian",
3507881,
"paa-ara",
"Latn",
}
m["aok"] = {
"Arhö",
4790086,
"poz-cln",
"Latn",
}
m["aol"] = {
"Alor",
3332062,
"poz",
"Latn",
}
m["aom"] = {
"Ömie",
8078975,
"ngf-koi",
"Latn",
}
m["aon"] = {
"Arapesh Bumbita",
3508044,
"paa-ara",
"Latn",
}
m["aor"] = {
"Aore",
12627129,
"poz-vnn",
"Latn",
}
m["aos"] = {
"Taikat",
7676018,
"paa-taa",
"Latn",
}
m["aot"] = {
"Atong (India)",
5646,
"tbq-bdg",
"Latn, Beng",
}
m["aou"] = {
"A'ou",
16109994,
"gio",
"Latn", -- juga Hani?
}
m["aox"] = {
"Atorada",
3507932,
"awd",
"Latn",
}
m["aoz"] = {
"Uab Meto",
3441962,
"poz-tim",
"Latn",
}
m["apb"] = {
"Sa'a",
36294,
"poz-sls",
"Latn",
}
m["apc"] = {
"Arab Syam Utara",
22809485,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["apd"] = {
"Arab Sudan",
56573,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["ape"] = {
"Bukiyip",
3507895,
"paa-ara",
"Latn",
}
m["apf"] = {
"Agta Pahanan",
7135432,
"phi",
"Latn",
}
m["apg"] = {
"Ampanang",
4748035,
"poz",
"Latn",
}
m["aph"] = {
"Athpare",
3449126,
"sit-kie",
"Deva, Latn",
}
m["api"] = {
"Apiaká",
3507941,
"tup-gua",
"Latn",
}
m["apj"] = {
"Jicarilla",
28277,
"apa",
"Latn",
}
m["apk"] = {
"Apache Dataran",
27861,
"apa",
"Latn",
}
m["apl"] = {
"Lipan",
28269,
"apa",
"Latn",
}
m["apm"] = {
"Chiricahua",
13368,
"apa",
"Latn",
}
m["apn"] = {
"Apinayé",
2858311,
"sai-nje",
"Latn",
}
m["apo"] = {
"Ambul",
12627135,
"poz-ocw",
"Latn",
}
m["app"] = {
"Apma",
2669188,
"poz-vnn",
"Latn",
}
m["apq"] = {
"A-Pucikwar",
28466,
"qfa-adc",
"Latn",
}
m["apr"] = {
"Arop-Lokep",
2863482,
"poz-ocw",
"Latn",
}
m["aps"] = {
"Arop-Sissano",
12627242,
"poz-ocw",
"Latn",
}
m["apt"] = {
"Apatani",
56306,
"sit-tan",
"Latn",
}
m["apu"] = {
"Apurinã",
2859081,
"awd",
"Latn",
}
m["apv"] = {
"Alapmunte",
16110782,
"sai-nmk",
"Latn",
}
m["apw"] = {
"Apache Barat",
28060,
"apa",
"Latn",
}
m["apx"] = {
"Aputai",
12473343,
"poz-tim",
"Latn",
}
m["apy"] = {
"Apalaí",
2736980,
"sai-gui",
"Latn",
}
m["apz"] = {
"Safeyoka",
7398693,
"ngf-woj",
"Latn",
}
m["aqc"] = {
"Archi",
34915,
"cau-lzg",
"Cyrl",
translit = "cau-nec-translit",
override_translit = true,
display_text = s["cau-Cyrl-displaytext"],
strip_diacritics = s["cau-Cyrl-stripdiacritics"],
sort_key = {
from = {
"ккъӏв", "ххьӏв", -- 5 aksara
"гъӏв", "ёоӏ", "ккъӏ", "ккъв", "къӏв", "ллъв", "ххьӏ", "хъӏв", "хьӏв", "ццӏв", "ччӏв", -- 4 aksara
"ааӏ", "гӏв", "гъӏ", "гъв", "гьв", "ееӏ", "ёӏ", "ёо", "ииӏ", "кӏв", "ккв", "ккъ", "къӏ", "къв", "кьв", "лӏв", "ллъ", "лъв", "льв", "ооӏ", "пӏв", "ппв", "ссв", "тӏв", "ттв", "ууӏ", "хӏв", "ххв", "хъӏ", "хъв", "хьӏ", "цӏв", "ццӏ", "ццв", "чӏв", "ччӏ", "ээӏ", "юуӏ", "яаӏ", -- 3 aksara
"аӏ", "аа", "гӏ", "гв", "гъ", "гь", "дв", "еӏ", "ее", "ё", "жв", "зв", "иӏ", "ии", "кӏ", "кв", "кк", "къ", "кь", "лӏ", "лв", "лъ", "ль", "оӏ", "оо", "пӏ", "пв", "пп", "св", "сс", "тӏ", "тв", "тт", "уӏ", "уу", "фв", "хӏ", "хв", "хх", "хъ", "цӏ", "цв", "цц", "чӏ", "чв", "шв", "щв", "эӏ", "ээ", "юӏ", "юу", "яӏ", "яа" -- 2 aksara
},
to = {
"к" .. p[8], "х" .. p[7],
"г" .. p[6], "е" .. p[7], "к" .. p[7], "к" .. p[9], "к" .. p[12], "л" .. p[5], "х" .. p[6], "х" .. p[10], "х" .. p[13], "ц" .. p[6], "ч" .. p[5],
"а" .. p[3], "г" .. p[2], "г" .. p[5], "г" .. p[7], "г" .. p[9], "е" .. p[3], "е" .. p[5], "е" .. p[6], "и" .. p[3], "к" .. p[2], "к" .. p[5], "к" .. p[6], "к" .. p[11], "к" .. p[13], "к" .. p[15], "л" .. p[2], "л" .. p[4], "л" .. p[7], "л" .. p[9], "о" .. p[3], "п" .. p[2], "п" .. p[5], "с" .. p[3], "т" .. p[2], "т" .. p[5], "у" .. p[3], "х" .. p[2], "х" .. p[5], "х" .. p[9], "х" .. p[11], "х" .. p[12], "ц" .. p[2], "ц" .. p[5], "ц" .. p[7], "ч" .. p[2], "ч" .. p[4], "э" .. p[3], "ю" .. p[3], "я" .. p[3],
"а" .. p[1], "а" .. p[2], "г" .. p[1], "г" .. p[3], "г" .. p[4], "г" .. p[8], "д" .. p[1], "е" .. p[1], "е" .. p[2], "е" .. p[4], "ж" .. p[1], "з" .. p[1], "и" .. p[1], "и" .. p[2], "к" .. p[1], "к" .. p[3], "к" .. p[4], "к" .. p[10], "к" .. p[14], "л" .. p[1], "л" .. p[3], "л" .. p[6], "л" .. p[8], "о" .. p[1], "о" .. p[2], "п" .. p[1], "п" .. p[3], "п" .. p[4], "с" .. p[1], "с" .. p[2], "т" .. p[1], "т" .. p[3], "т" .. p[4], "у" .. p[1], "у" .. p[2], "ф" .. p[1], "х" .. p[1], "х" .. p[3], "х" .. p[4], "х" .. p[8], "ц" .. p[1], "ц" .. p[3], "ц" .. p[4], "ч" .. p[1], "ч" .. p[3], "ш" .. p[1], "щ" .. p[1], "э" .. p[1], "э" .. p[2], "ю" .. p[1], "ю" .. p[2], "я" .. p[1], "я" .. p[2]
}
},
}
m["aqd"] = {
"Dogon Ampari",
4748057,
"nic-dgw",
"Latn",
}
m["aqg"] = {
"Arigidi",
34829,
"alv-von",
"Latn",
}
m["aqm"] = {
"Atohwaim",
11732297,
"paa-kay",
"Latn",
}
m["aqn"] = {
"Alta Utara",
7058116,
"phi",
"Latn",
}
m["aqp"] = {
"Atakapa",
10975683,
"qfa-iso",
"Latn",
}
m["aqr"] = {
"Arhâ",
4790085,
"poz-cln",
"Latn",
}
m["aqt"] = {
"Angaité",
15736037,
"sai-mas",
"Latn",
}
m["aqz"] = {
"Akuntsu",
4701960,
"tup",
"Latn",
}
m["arc"] = {
"Aramia",
28602,
"sem-ara",
"Hebr, Armi, Syrc, Palm, Nbat, Phnx, Mand, Samr, Hatr, Elym",
translit = {
Armi = "Armi-translit",
Palm = "Palm-translit",
},
strip_diacritics = {
-- Tiga yang pertama ditambah oleh [[User:Wikitiki89]] pada tahun 2015 untuk digunakan dengan Suryani, yang mempunyai tanda diakritik menyerupai
-- diaeresis (syāmē) dan makron di atas dan di bawah (mṭalqānā); lihat Wikipedia [[w:Syriac alphabet]]. Namun
-- saya tidak tahu sama ada ia benar-benar diwakili menggunakan tanda-tanda diakritik ini.
Syrc = {remove_diacritics = c.macron .. c.diaer .. c.macronbelow .. u(0x0730) .. "-" .. u(0x0748)},
},
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
-- strip_diacritics, sort_key Samr dalam [[Module:scripts/data]]; sebelum ini tiada sort_key bagi Samr, berkemungkinan satu kesilapan
-- Translit Phnx dalam [[Module:scripts/data]] (NOTA: tidak hadir sebelum ini, berkemungkinan ketinggalan secara tidak sengaja)
}
m["ard"] = {
"Arabana",
3507959,
"aus-kar",
"Latn",
}
m["are"] = {
"Arrernte Barat",
12645549,
"aus-rnd",
"Latn",
}
m["arh"] = {
"Arhuaco",
2640621,
"cba",
"Latn",
}
m["ari"] = {
"Arikara",
56539,
"cdd",
"Latn",
strip_diacritics = {remove_diacritics = c.acute},
}
m["arj"] = {
"Arapaso",
9627356,
"sai-tuc",
"Latn",
}
m["ark"] = {
"Arikapú",
3446640,
"sai-mje",
"Latn",
}
m["arl"] = {
"Arabela",
2591221,
"sai-zap",
"Latn",
}
m["arn"] = {
"Mapudungun",
33730,
"sai-ara",
"Latn",
}
m["aro"] = {
"Araona",
958414,
"sai-tac",
"Latn",
}
m["arp"] = {
"Arapaho",
56417,
"alg-ara",
"Latn",
}
m["arq"] = {
"Arab Algeria",
56499,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["arr"] = {
"Arara-Karo",
35539,
"tup",
"Latn",
}
m["ars"] = {
"Arab Najdi",
56574,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["aru"] = {
"Arua",
2746221,
"auf",
"Latn",
}
m["arv"] = {
"Arbore",
56883,
"cus-eas",
"Latn",
}
m["arw"] = {
"Lokono",
2655664,
"awd-taa",
"Latn",
}
m["arx"] = {
"Aruá",
3507907,
"tup",
"Latn",
}
m["ary"] = {
"Arab Maghribi",
56426,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["arz"] = {
"Arab Mesir",
29919,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["asa"] = {
"Pare",
36403,
"bnt-par",
"Latn",
}
m["asb"] = {
"Assiniboine",
2591288,
"sio-dkt",
"Latn",
}
m["asc"] = {
"Asmat Pesisir Casuarina",
11732046,
"ngf-asm",
"Latn",
}
m["ase"] = {
"Bahasa Isyarat Amerika",
14759,
"sgn-asl",
"Sgnw",
}
m["asf"] = {
"Auslan",
29525,
"sgn",
"Latn", -- apabila didokumentasikan
}
m["asg"] = {
"Cishingini",
35199,
"nic-kam",
"Latn",
}
m["ash"] = {
"Abishira",
2871740,
"qfa-dis", -- pupus, kurang didokumentasikan; pencilan atau dalam cadangan keluarga Tequiraca-Canichana oleh Kaufman (1994)
"Latn",
}
m["asi"] = {
"Buruwai",
5001031,
"ngf-sab",
"Latn",
}
m["asj"] = {
"Nsari",
36418,
"nic-bbe",
"Latn",
}
m["ask"] = {
"Ashkun",
29379,
"nur-sou",
"Arab, Latn",
}
m["asl"] = {
"Asilulu",
12473347,
"poz-cma",
"Latn",
}
m["asn"] = {
"Asuriní Xingú",
8044571,
"tup-gua",
"Latn",
}
m["aso"] = {
"Dano",
5220979,
"ngf-gah",
"Latn",
}
m["asp"] = {
"Bahasa Isyarat Algeria",
3135421,
"sgn",
}
m["asq"] = {
"Bahasa Isyarat Austria",
36668,
"sgn",
"Latn", -- apabila didokumentasikan
}
m["asr"] = {
"Asuri",
3504321,
"mun",
"Latn", -- apabila didokumentasikan
}
m["ass"] = {
"Ipulo",
35408,
"nic-tvc",
"Latn",
}
m["ast"] = {
"Asturia",
29507,
"roa-asl",
"Latn",
}
m["asu"] = {
"Asurini Tocantins",
32041490,
"tup-gua",
"Latn",
}
m["asv"] = {
"Asoa",
56296,
"csu-maa",
"Latn",
}
m["asw"] = {
"Bahasa Isyarat Orang Asli Australia",
955216,
"sgn",
"Latn", -- apabila didokumentasikan
}
m["asx"] = {
"Muratayak",
11732766,
"ngf-war",
"Latn",
}
m["asy"] = {
"Asmat Yaosakor",
16113158,
"ngf-asm",
"Latn",
}
m["asz"] = {
"As",
2866218,
"poz-hce",
"Latn",
}
m["ata"] = {
"Pele-Ata",
56511,
"qfa-dis", -- Papua; berkemungkinan dalam keluarga andaian New Britain Barat, atau pencilan
"Latn",
}
m["atb"] = {
"Zaiwa",
56594,
"tbq-brm",
"Latn, Lisu", -- juga Hani?
-- Translit, sort_key Lisu dalam [[Module:scripts/data]]
}
m["atc"] = {
"Atsahuaca",
4817730,
"sai-pan",
"Latn",
}
m["atd"] = {
"Manobo Ata",
12627315,
"mno",
"Latn",
}
m["ate"] = {
"Atemble",
4813055,
"ngf-wso",
"Latn",
}
m["atg"] = {
"Okpela",
7082551,
"alv-yek",
"Latn",
}
m["ati"] = {
"Attié",
34844,
"alv-lag",
"Latn",
}
m["atj"] = {
"Atikamekw",
56590,
"alg",
"Latn",
ancestors = "cr",
}
m["atk"] = {
"Ati",
3217458,
"phi",
"Latn",
}
m["atl"] = {
"Agta Gunung Iraya",
6921430,
"phi",
"Latn",
}
m["atm"] = {
"Ata",
4812603,
"phi",
"Latn",
}
m["ato"] = {
"Atong (Cameroon)",
34824,
"nic-grs",
"Latn",
}
m["atp"] = {
"Atta Pudtol",
12640726,
"phi",
"Latn",
}
m["atq"] = {
"Aralle-Tabulahan",
4783889,
"poz-ssw",
"Latn",
}
m["atr"] = {
"Waimiri-Atroari",
56865,
"sai-car",
"Latn",
}
m["ats"] = {
"Gros Ventre",
56628,
"alg-ara",
"Latn",
}
m["att"] = {
"Atta Pamplona",
12639245,
"phi",
"Latn",
}
m["atu"] = {
"Reel",
7306882,
"sdv-dnu",
"Latn",
}
m["atv"] = {
"Altai Utara",
2640863,
"trk-ssb",
"Cyrl",
translit = "Altai-translit",
}
m["atw"] = {
"Atsugewi",
56718,
"nai-pal",
"Latn",
}
m["atx"] = {
"Arutani",
56609,
nil,
"Latn",
}
m["aty"] = {
"Aneityum",
2379113,
"poz-vns",
"Latn",
}
m["atz"] = {
"Arta",
3508067,
"phi",
"Latn",
}
m["aua"] = {
"Asumboa",
4811870,
"poz-tem",
"Latn",
}
m["aub"] = {
"Alugu",
12626798,
"tbq-urp",
"Latn", -- juga Hani?
}
m["auc"] = {
"Huaorani",
758570,
"qfa-iso",
"Latn",
}
m["aud"] = {
"Anuta",
35326,
"poz-pnp",
"Latn",
}
m["aug"] = {
"Aguna",
34733,
"alv-gbe",
"Latn",
}
m["auh"] = {
"Aushi",
2872082,
"bnt-sbi",
"Latn",
}
m["aui"] = {
"Anuki",
3508132,
"poz-ocw",
"Latn",
}
m["auj"] = {
"Awjila",
56398,
"ber",
"Latn, Arab, Tfng",
}
m["auk"] = {
"Heyo",
3504295,
"paa-hya",
"Latn",
}
m["aul"] = {
"Aulua",
427300,
"poz-vnc",
"Latn",
}
m["aum"] = {
"Asu",
34798,
"alv-ngb",
"Latn",
}
m["aun"] = {
"One Molmo",
12637224,
"paa-trr",
"Latn",
}
m["auo"] = {
"Auyokawa",
56247,
"cdc-wst",
"Latn",
}
m["aup"] = {
"Makayam",
6738863,
"paa-tir",
"Latn",
}
m["auq"] = {
"Anus",
23855,
"poz-ocw",
"Latn",
}
m["aur"] = {
"Aruek",
3504279,
"paa-kom",
"Latn",
}
m["aut"] = {
"Austral",
2669261,
"poz-pep",
"Latn",
}
m["auu"] = {
"Auye",
4827334,
"ngf-pan",
"Latn",
}
m["auw"] = {
"Awyi",
3513326,
"paa-taa",
"Latn",
}
m["aux"] = {
"Aurá",
3507995,
"tup-gua",
"Latn",
}
m["auy"] = {
"Auyana",
2873211,
"ngf-gau",
"Latn",
}
m["auz"] = {
"Arab Uzbeki",
3399507,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["avb"] = {
"Avau",
12627412,
"poz-ocw",
"Latn",
}
m["avd"] = {
"Alviri-Vidari",
3327357,
"xme",
"Arab",
ancestors = "xme-mid",
}
m["avi"] = {
"Avikam",
34840,
"alv-lag",
"Latn",
}
m["avk"] = {
"Kotava",
1377116,
"art",
"Latn",
type = "appendix-constructed",
}
m["avm"] = {
"Angkamuthi",
62603022,
"aus-pmn",
"Latn",
}
m["avn"] = {
"Avatime",
34796,
"alv-ktg",
"Latn",
}
-- avo Agavotaguerra telah dibersarakan
m["avs"] = {
"Aushiri",
3409318,
"sai-zap",
"Latn",
}
m["avt"] = {
"Au",
3446608,
"paa-wap",
"Latn",
}
m["avu"] = {
"Avokaya",
56685,
"csu-mma",
"Latn",
}
m["avv"] = {
"Avá-Canoeiro",
4829584,
"tup-gua",
"Latn",
}
m["awa"] = {
"Awadhi",
29579,
"inc-hie",
"Deva, Kthi, Aran",
translit = {
Deva = "hi-translit"
},
}
m["awb"] = {
"Awa (New Guinea)",
2874650,
"ngf-gau",
"Latn",
}
m["awc"] = {
"Cicipu",
35193,
"nic-kam",
"Latn",
}
m["awe"] = {
"Awetí",
4830038,
"tup",
"Latn",
}
m["awg"] = {
"Anguthimri",
4764288,
"aus-pam",
"Latn",
}
m["awh"] = {
"Awbono",
3446684,
"paa-baa",
"Latn",
}
m["awi"] = {
"Aekyom",
3399691,
"paa-kae",
"Latn",
}
m["awk"] = {
"Awabakal",
3449138,
"aus-pam",
"Latn",
}
m["awm"] = {
"Arawum",
4784537,
"ngf-rai",
"Latn",
}
m["awn"] = {
"Awngi",
34934,
"cus-cen",
"Ethi",
}
m["awo"] = {
"Awak",
3446643,
"alv-wjk",
"Latn",
}
m["awr"] = {
"Awera",
56379,
"paa-flp",
"Latn",
}
m["aws"] = {
"Awyu Selatan",
12633986,
"ngf-awy",
"Latn",
}
m["awt"] = {
"Araweté",
4784535,
"tup-gua",
"Latn",
}
m["awu"] = {
"Awyu Tengah",
12628801,
"ngf-awy",
"Latn",
}
m["awv"] = {
"Awyu Jair",
16110177,
"ngf-awy",
"Latn",
}
m["aww"] = {
"Awun",
56369,
"paa-sep",
"Latn",
}
m["awx"] = {
"Awara",
2874670,
"ngf-waa",
"Latn",
}
m["awy"] = {
"Awyu Edera",
12630425,
"ngf-awy",
"Latn",
}
m["axb"] = {
"Abipón",
11252539,
"sai-guc",
"Latn",
}
m["axe"] = {
"Ayerrerenge",
16112737,
"aus-pam",
"Latn",
}
m["axg"] = {
"Arára (Mato Grosso)",
3446660,
nil,
"Latn",
}
m["axk"] = {
"Aka (Afrika Tengah)",
11010149,
"bnt-ngn",
"Latn",
}
m["axl"] = {
"Aranda Selatan Bawah",
6693295,
"aus-rnd",
"Latn",
}
m["axm"] = {
"Armenia Pertengahan",
4438498,
"hyx",
"Armn",
ancestors = "xcl",
-- Translit Armn dalam [[Module:scripts/data]]
override_translit = true,
strip_diacritics = {
remove_diacritics = "՞՜՛՟",
from = {"եւ", "ՙ", "՚"},
to = {"և", "ʻ", "’"}
}
}
m["axx"] = {
"Xârâgurè",
8045635,
"poz-cln",
"Latn",
}
m["aya"] = {
"Awar",
56876,
"paa-baw",
"Latn",
}
m["ayb"] = {
"Ayizo",
34841,
"alv-pph",
"Latn",
}
m["ayd"] = {
"Ayabadhu",
3509164,
"aus-pmn",
"Latn",
}
m["aye"] = {
"Ayere",
34788,
"alv-aah",
"Latn",
}
m["ayg"] = {
"Nyanga (Togo)",
35446,
"alv-gng",
"Latn",
}
m["ayi"] = {
"Leyigha",
3914492,
"nic-uce",
"Latn",
}
m["ayk"] = {
"Akuku",
3450179,
"alv-nwd",
"Latn",
}
m["ayl"] = {
"Arab Libya",
56503,
"sem-arb",
"Arab",
strip_diacritics = "ar-stripdiacritics",
}
m["ayn"] = {
"Arab Yaman",
1686766,
"sem-arb",
"Arab, Hebr",
strip_diacritics = {
Arab = "ar-stripdiacritics",
},
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
}
m["ayo"] = {
"Ayoreo",
56634,
"sai-zam",
"Latn",
}
m["ayp"] = {
"Arab Mesopotamia Utara",
56577,
"sem-arb",
"Arab",
ancestors = "acm",
strip_diacritics = "ar-stripdiacritics",
}
m["ayq"] = {
"Ayi",
56449,
"paa-sep",
"Latn",
}
m["ays"] = {
"Ayta Sorsogon",
7563752,
"phi",
"Latn",
}
m["ayt"] = {
"Ayta Bataan",
4921648,
"phi",
"Latn",
}
m["ayu"] = {
"Ayu",
34786,
"alv",
"Latn",
}
-- ayy dipadam dan dialih keluar daripada ISO; menurut permohonan pembuangan, "tiada data linguistik wujud untuk mana-mana bahasa [Ayta] yang
-- mungkin pernah dituturkan oleh nenek moyang kumpulan ini. Oleh itu, tiada bukti bahawa kumpulan ini pernah mempunyai bahasa
-- yang berbeza daripada mana-mana bahasa Filipina yang lain." [Lobel]
m["ayz"] = {
"Maybrat",
4830892,
"paa-may",
-- sama ada bahasa pencilan; dikelompokkan dengan Abun dan keluarga Kepala Burung Barat; atau dalam keluarga andaian Papua Barat
"Latn",
}
m["aza"] = {
"Azha",
4832486,
"tbq-axi",
"Latn",
}
m["azd"] = {
"Nahuatl Durango Timur",
16115449,
"azc-dur",
"Latn",
}
m["azg"] = {
"Amuzgo San Pedro Amuzgos",
35092,
"omq",
"Latn",
}
m["azm"] = {
"Amuzgo Ipalapa",
12633013,
"omq",
"Latn",
}
m["azn"] = {
"Nahuatl Durango Barat",
12645553,
"azc-dur",
"Latn",
}
m["azo"] = {
"Awing",
34856,
"nic-nge",
"Latn",
}
m["azt"] = {
"Atta Faire",
12630884,
"phi",
"Latn",
}
m["azz"] = {
"Nahuatl Puebla Tanah Tinggi",
12953754,
"azc-nah",
"Latn",
}
return require("Module:languages").finalizeData(m, "language")
0x84ubuxp07htvql45s39g3m3uvte9d
Modul:scripts/data
828
9770
373507
249393
2026-09-10T20:57:25Z
SNN95
2113
letak dulu, terjemah kemudian
373507
Scribunto
text/plain
--[=[
When adding new scripts to this file, please don't forget to add
style definitons for the script in [[MediaWiki:Gadget-LanguagesAndScripts.css]].
]=]
local concat = table.concat
local insert = table.insert
local ipairs = ipairs
local next = next
local remove = table.remove
local select = select
local sort = table.sort
-- Loaded on demand, as it may not be needed (depending on the data).
local function u(...)
u = require("Module:string/char")
return u(...)
end
-- We can't use mw.loadData() on [[Module:languages/chars]] because [[Module:languages/data]] itself is sometimes loaded
-- using mw.loadData(), and calling mw.loadData() on [[Module:languages/chars]] will insert metatables into the
-- character tables, which the second mw.loadData() will choke on.
local m_chars = require("Module:languages/chars")
local c = m_chars.chars
local p = m_chars.puaChars
local cs = m_chars.chars_substitutions
------------------------------------------------------------------------------------
--
-- Helper functions
--
------------------------------------------------------------------------------------
-- Note: a[2] > b[2] means opens are sorted before closes if otherwise equal.
local function sort_ranges(a, b)
return a[1] < b[1] or a[1] == b[1] and a[2] > b[2]
end
-- Returns the union of two or more range tables.
local function union(...)
local ranges = {}
for i = 1, select("#", ...) do
local argt = select(i, ...)
for j, v in ipairs(argt) do
insert(ranges, {v, j % 2 == 1 and 1 or -1})
end
end
sort(ranges, sort_ranges)
local ret, i = {}, 0
for _, range in ipairs(ranges) do
i = i + range[2]
if i == 0 and range[2] == -1 then -- close
insert(ret, range[1])
elseif i == 1 and range[2] == 1 then -- open
if ret[#ret] and range[1] <= ret[#ret] + 1 then
remove(ret) -- merge adjacent ranges
else
insert(ret, range[1])
end
end
end
return ret
end
-- Adds the `characters` key, which is determined by a script's `ranges` table.
local function process_ranges(sc)
local ranges, chars = sc.ranges, {}
for i = 2, #ranges, 2 do
if ranges[i] == ranges[i - 1] then
insert(chars, u(ranges[i]))
else
insert(chars, u(ranges[i - 1]))
if ranges[i] > ranges[i - 1] + 1 then
insert(chars, "-")
end
insert(chars, u(ranges[i]))
end
end
sc.characters = concat(chars)
ranges.n = #ranges
return sc
end
local function handle_normalization_fixes(fixes)
local combiningClasses = fixes.combiningClasses
if combiningClasses then
local chars, i = {}, 0
for char in next, combiningClasses do
i = i + 1
chars[i] = char
end
fixes.combiningClassCharacters = concat(chars)
end
return fixes
end
------------------------------------------------------------------------------------
--
-- Data
--
------------------------------------------------------------------------------------
local m = {}
m["Adlm"] = process_ranges{
"Adlam",
19606346,
"alphabet",
ranges = {
0x061F, 0x061F,
0x0640, 0x0640,
0x1E900, 0x1E94B,
0x1E950, 0x1E959,
0x1E95E, 0x1E95F,
},
capitalized = true,
direction = "rtl",
}
m["Afak"] = {
"Afaka",
382019,
"syllabary",
-- Not in Unicode
}
m["Aghb"] = process_ranges{
"Caucasian Albanian",
2495716,
"alphabet",
ranges = {
0x10530, 0x10563,
0x1056F, 0x1056F,
},
}
m["Ahom"] = process_ranges{
"Ahom",
2839633,
"abugida",
ranges = {
0x11700, 0x1171A,
0x1171D, 0x1172B,
0x11730, 0x11746,
},
}
m["Arab"] = process_ranges{
"Arabic",
1828555,
"abjad", -- more precisely, impure abjad
varieties = {"Jawi", "Perso-Arabic", "Sulat Sūg"},
ranges = {
0x0600, 0x06FF,
0x0750, 0x077F,
0x0870, 0x088E,
0x0890, 0x0891,
0x0897, 0x08E1,
0x08E3, 0x08FF,
0xFB50, 0xFBC2,
0xFBD3, 0xFD8F,
0xFD92, 0xFDC7,
0xFDCF, 0xFDCF,
0xFDF0, 0xFDFF,
0xFE70, 0xFE74,
0xFE76, 0xFEFC,
0x102E0, 0x102FB,
0x10E60, 0x10E7E,
0x10EC2, 0x10EC4,
0x10EFC, 0x10EFF,
0x1EE00, 0x1EE03,
0x1EE05, 0x1EE1F,
0x1EE21, 0x1EE22,
0x1EE24, 0x1EE24,
0x1EE27, 0x1EE27,
0x1EE29, 0x1EE32,
0x1EE34, 0x1EE37,
0x1EE39, 0x1EE39,
0x1EE3B, 0x1EE3B,
0x1EE42, 0x1EE42,
0x1EE47, 0x1EE47,
0x1EE49, 0x1EE49,
0x1EE4B, 0x1EE4B,
0x1EE4D, 0x1EE4F,
0x1EE51, 0x1EE52,
0x1EE54, 0x1EE54,
0x1EE57, 0x1EE57,
0x1EE59, 0x1EE59,
0x1EE5B, 0x1EE5B,
0x1EE5D, 0x1EE5D,
0x1EE5F, 0x1EE5F,
0x1EE61, 0x1EE62,
0x1EE64, 0x1EE64,
0x1EE67, 0x1EE6A,
0x1EE6C, 0x1EE72,
0x1EE74, 0x1EE77,
0x1EE79, 0x1EE7C,
0x1EE7E, 0x1EE7E,
0x1EE80, 0x1EE89,
0x1EE8B, 0x1EE9B,
0x1EEA1, 0x1EEA3,
0x1EEA5, 0x1EEA9,
0x1EEAB, 0x1EEBB,
0x1EEF0, 0x1EEF1,
},
direction = "rtl",
normalizationFixes = handle_normalization_fixes{
from = {"ٳ"},
to = {"اٟ"}
},
}
m["Aran"] = {
{
hnd = "Shahmukhi", -- Southern Hindko
hno = "Shahmukhi", -- Northern Hindko
["inc-opa"] = "Shahmukhi", -- Old Punjabi
lah = "Shahmukhi", -- Lahnda
pa = "Shahmukhi", -- Punjabi
phr = "Shahmukhi", -- Pahari-Potwari
skr = "Shahmukhi", -- Saraiki
default = "Arabic",
},
1133121, -- FIXME: 133800 for Shahmukhi
m["Arab"][3],
ranges = m["Arab"].ranges,
characters = m["Arab"].characters,
aliases = {"Nastaliq", "Nastaleeq"},
direction = "rtl",
parent = "Arab",
normalizationFixes = m["Arab"].normalizationFixes,
}
m["Armi"] = process_ranges{
"Imperial Aramaic",
26978,
"abjad",
ranges = {
0x10840, 0x10855,
0x10857, 0x1085F,
},
direction = "rtl",
}
m["Armn"] = process_ranges{
"Armenian",
11932,
"alphabet",
ranges = {
0x0531, 0x0556,
0x0559, 0x058A,
0x058D, 0x058F,
0xFB13, 0xFB17,
},
capitalized = true,
translit = "Armn-translit",
}
m["Avst"] = process_ranges{
"Avestan",
790681,
"alphabet",
ranges = {
0x10B00, 0x10B35,
0x10B39, 0x10B3F,
},
direction = "rtl",
}
m["pal-Avst"] = {
"Pazend",
4925073,
m["Avst"][3],
ranges = m["Avst"].ranges,
characters = m["Avst"].characters,
direction = "rtl",
parent = "Avst",
}
m["Bali"] = process_ranges{
"Balinese",
804984,
"abugida",
ranges = {
0x1B00, 0x1B4C,
0x1B4E, 0x1B7F,
},
}
m["Bamu"] = process_ranges{
"Bamum",
806024,
"syllabary",
ranges = {
0xA6A0, 0xA6F7,
0x16800, 0x16A38,
},
}
m["Bass"] = process_ranges{
"Bassa",
810458,
"alphabet",
aliases = {"Bassa Vah", "Vah"},
ranges = {
0x16AD0, 0x16AED,
0x16AF0, 0x16AF5,
},
}
m["Batk"] = process_ranges{
"Batak",
51592,
"abugida",
ranges = {
0x1BC0, 0x1BF3,
0x1BFC, 0x1BFF,
},
}
m["Beng"] = process_ranges{
"Bengali",
756802,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0980, 0x0983,
0x0985, 0x098C,
0x098F, 0x0990,
0x0993, 0x09A8,
0x09AA, 0x09B0,
0x09B2, 0x09B2,
0x09B6, 0x09B9,
0x09BC, 0x09C4,
0x09C7, 0x09C8,
0x09CB, 0x09CE,
0x09D7, 0x09D7,
0x09DC, 0x09DD,
0x09DF, 0x09E3,
0x09E6, 0x09EF,
0x09F2, 0x09FE,
0x1CD0, 0x1CD0,
0x1CD2, 0x1CD2,
0x1CD5, 0x1CD6,
0x1CD8, 0x1CD8,
0x1CE1, 0x1CE1,
0x1CEA, 0x1CEA,
0x1CED, 0x1CED,
0x1CF2, 0x1CF2,
0x1CF5, 0x1CF7,
0xA8F1, 0xA8F1,
},
normalizationFixes = handle_normalization_fixes{
from = {"অা", "ঋৃ", "ঌৢ"},
to = {"আ", "ৠ", "ৡ"}
},
}
m["as-Beng"] = process_ranges{
"Assamese",
191272,
m["Beng"][3],
other_names = {"Eastern Nagari"},
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0980, 0x0983,
0x0985, 0x098C,
0x098F, 0x0990,
0x0993, 0x09A8,
0x09AA, 0x09AF,
0x09B2, 0x09B2,
0x09B6, 0x09B9,
0x09BC, 0x09C4,
0x09C7, 0x09C8,
0x09CB, 0x09CE,
0x09D7, 0x09D7,
0x09DC, 0x09DD,
0x09DF, 0x09E3,
0x09E6, 0x09FE,
0x1CD0, 0x1CD0,
0x1CD2, 0x1CD2,
0x1CD5, 0x1CD6,
0x1CD8, 0x1CD8,
0x1CE1, 0x1CE1,
0x1CEA, 0x1CEA,
0x1CED, 0x1CED,
0x1CF2, 0x1CF2,
0x1CF5, 0x1CF7,
0xA8F1, 0xA8F1,
},
normalizationFixes = m["Beng"].normalizationFixes,
}
m["Bhks"] = process_ranges{
"Bhaiksuki",
17017839,
"abugida",
ranges = {
0x11C00, 0x11C08,
0x11C0A, 0x11C36,
0x11C38, 0x11C45,
0x11C50, 0x11C6C,
},
}
m["Blis"] = {
"Blissymbolic",
609817,
"logography",
aliases = {"Blissymbols"},
-- Not in Unicode
}
m["Bopo"] = process_ranges{
"Zhuyin",
198269,
"semisyllabary",
aliases = {"Zhuyin Fuhao", "Bopomofo"},
ranges = {
0x02EA, 0x02EB,
0x3001, 0x3003,
0x3008, 0x3011,
0x3013, 0x301F,
0x302A, 0x302D,
0x3030, 0x3030,
0x3037, 0x3037,
0x30FB, 0x30FB,
0x3105, 0x312F,
0x31A0, 0x31BF,
0xFE45, 0xFE46,
0xFF61, 0xFF65,
},
}
m["Brah"] = process_ranges{
"Brahmi",
185083,
"abugida",
ranges = {
0x11000, 0x1104D,
0x11052, 0x11075,
0x1107F, 0x1107F,
},
normalizationFixes = handle_normalization_fixes{
from = {"𑀅𑀸", "𑀋𑀾", "𑀏𑁂"},
to = {"𑀆", "𑀌", "𑀐"}
},
translit = "Brah-translit",
}
m["Brai"] = process_ranges{
"Braille",
79894,
"alphabet",
ranges = {
0x2800, 0x28FF,
},
}
m["Bugi"] = process_ranges{
"Lontara",
1074947,
"abugida",
aliases = {"Buginese"},
ranges = {
0x1A00, 0x1A1B,
0x1A1E, 0x1A1F,
0xA9CF, 0xA9CF,
},
}
m["Buhd"] = process_ranges{
"Buhid",
1002969,
"abugida",
ranges = {
0x1735, 0x1736,
0x1740, 0x1751,
0x1752, 0x1753,
},
}
m["Cakm"] = process_ranges{
"Chakma",
1059328,
"abugida",
ranges = {
0x09E6, 0x09EF,
0x1040, 0x1049,
0x11100, 0x11134,
0x11136, 0x11147,
},
}
m["Cans"] = process_ranges{
"Canadian syllabic",
2479183,
"abugida",
ranges = {
0x1400, 0x167F,
0x18B0, 0x18F5,
0x11AB0, 0x11ABF,
},
}
m["Cari"] = process_ranges{
"Carian",
1094567,
"alphabet",
ranges = {
0x102A0, 0x102D0,
},
}
m["Cham"] = process_ranges{
"Cham",
1060381,
"abugida",
ranges = {
0xAA00, 0xAA36,
0xAA40, 0xAA4D,
0xAA50, 0xAA59,
0xAA5C, 0xAA5F,
},
}
m["Cher"] = process_ranges{
"Cherokee",
26549,
"syllabary",
ranges = {
0x13A0, 0x13F5,
0x13F8, 0x13FD,
0xAB70, 0xABBF,
},
}
m["Chis"] = {
"Chisoi",
123173777,
"abugida",
-- Not in Unicode
}
m["Chrs"] = process_ranges{
"Khwarezmian",
72386710,
"abjad",
aliases = {"Chorasmian"},
ranges = {
0x10FB0, 0x10FCB,
},
direction = "rtl",
}
m["Copt"] = process_ranges{
"Coptic",
321083,
"alphabet",
ranges = {
0x03E2, 0x03EF,
0x2C80, 0x2CF3,
0x2CF9, 0x2CFF,
0x102E0, 0x102FB,
},
capitalized = true,
}
m["Cpmn"] = process_ranges{
"Cypro-Minoan",
1751985,
"syllabary",
aliases = {"Cypro Minoan"},
ranges = {
0x10100, 0x10101,
0x12F90, 0x12FF2,
},
}
m["Cprt"] = process_ranges{
"Cypriot",
1757689,
"syllabary",
ranges = {
0x10100, 0x10102,
0x10107, 0x10133,
0x10137, 0x1013F,
0x10800, 0x10805,
0x10808, 0x10808,
0x1080A, 0x10835,
0x10837, 0x10838,
0x1083C, 0x1083C,
0x1083F, 0x1083F,
},
direction = "rtl",
}
m["Cyrl"] = process_ranges{
"Cyrillic",
8209,
"alphabet",
ranges = {
0x0400, 0x052F,
0x1C80, 0x1C8A,
0x1D2B, 0x1D2B,
0x1D78, 0x1D78,
0x1DF8, 0x1DF8,
0x2DE0, 0x2DFF,
0x2E43, 0x2E43,
0xA640, 0xA69F,
0xFE2E, 0xFE2F,
0x1E030, 0x1E06D,
0x1E08F, 0x1E08F,
},
capitalized = true,
}
m["Cyrs"] = {
"Old Cyrillic",
442244,
m["Cyrl"][3],
aliases = {"Early Cyrillic"},
ranges = m["Cyrl"].ranges,
characters = m["Cyrl"].characters,
capitalized = m["Cyrl"].capitalized,
wikipedia_article = "Early Cyrillic alphabet",
normalizationFixes = handle_normalization_fixes{
from = {"Ѹ", "ѹ"},
to = {"Ꙋ", "ꙋ"}
},
strip_diacritics = {remove_diacritics = cs.Cyrs_remove_diacritics},
sort_key = {
remove_diacritics = cs.Cyrs_remove_diacritics,
from = {
"ї", "оу", -- 2 chars
"[ґꙣєѕꙃꙅꙁіꙇђꙉѻꙩꙫꙭꙮꚙꚛꙋѡѿꙍѽꙑѣꙗѥꙕѧꙙѩꙝꙛѫѭѯѱѳѵҁ]"
},
to = {
"и" .. p[1], "у", {
["ґ"] = "г" .. p[1], ["ꙣ"] = "д" .. p[1], ["є"] = "е", ["ѕ"] = "ж" .. p[1], ["ꙃ"] = "ж" .. p[1],
["ꙅ"] = "ж" .. p[1], ["ꙁ"] = "з", ["і"] = "и" .. p[1], ["ꙇ"] = "и" .. p[1], ["ђ"] = "и" .. p[2],
["ꙉ"] = "и" .. p[2], ["ѻ"] = "о", ["ꙩ"] = "о", ["ꙫ"] = "о", ["ꙭ"] = "о",
["ꙮ"] = "о", ["ꚙ"] = "о", ["ꚛ"] = "о", ["ꙋ"] = "у", ["ѡ"] = "х" .. p[1],
["ѿ"] = "х" .. p[1], ["ꙍ"] = "х" .. p[1], ["ѽ"] = "х" .. p[1], ["ꙑ"] = "ы", ["ѣ"] = "ь" .. p[1],
["ꙗ"] = "ь" .. p[2], ["ѥ"] = "ь" .. p[3], ["ꙕ"] = "ю", ["ѧ"] = "я", ["ꙙ"] = "я",
["ѩ"] = "я" .. p[1], ["ꙝ"] = "я" .. p[1], ["ꙛ"] = "я" .. p[2], ["ѫ"] = "я" .. p[3], ["ѭ"] = "я" .. p[4],
["ѯ"] = "я" .. p[5], ["ѱ"] = "я" .. p[6], ["ѳ"] = "я" .. p[7], ["ѵ"] = "я" .. p[8], ["ҁ"] = "я" .. p[9],
}
},
}
}
m["Deva"] = process_ranges{
{
ahr = "Balbodh", -- Ahirani
kfq = "Balbodh", -- Korku
kok = "Balbodh", -- Konkani
mr = "Balbodh", -- Marathi
omr = "Balbodh", -- Old Marathi
vah = "Balbodh", -- Varhadi
default = "Devanagari",
},
38592, -- FIXME: 16948817 for Balbodh
"abugida",
ranges = {
0x0900, 0x097F,
0x1CD0, 0x1CF6,
0x1CF8, 0x1CF9,
0x20F0, 0x20F0,
0xA830, 0xA839,
0xA8E0, 0xA8FF,
0x11B00, 0x11B09,
},
normalizationFixes = handle_normalization_fixes{
from = {"ॆॆ", "ेे", "ाॅ", "ाॆ", "ाꣿ", "ॊॆ", "ाे", "ाै", "ोे", "ाऺ", "ॖॖ", "अॅ", "अॆ", "अा", "एॅ", "एॆ", "एे", "एꣿ", "ऎॆ", "अॉ", "आॅ", "अॊ", "आॆ", "अो", "आे", "अौ", "आै", "ओे", "अऺ", "अऻ", "आऺ", "अाꣿ", "आꣿ", "ऒॆ", "अॖ", "अॗ", "ॶॖ", "्?ा"},
to = {"ꣿ", "ै", "ॉ", "ॊ", "ॏ", "ॏ", "ो", "ौ", "ौ", "ऻ", "ॗ", "ॲ", "ऄ", "आ", "ऍ", "ऎ", "ऐ", "ꣾ", "ꣾ", "ऑ", "ऑ", "ऒ", "ऒ", "ओ", "ओ", "औ", "औ", "औ", "ॳ", "ॴ", "ॴ", "ॵ", "ॵ", "ॵ", "ॶ", "ॷ", "ॷ"}
},
}
m["Diak"] = process_ranges{
"Dhives Akuru",
3307073,
"abugida",
aliases = {"Dhivehi Akuru", "Dives Akuru", "Divehi Akuru"},
ranges = {
0x11900, 0x11906,
0x11909, 0x11909,
0x1190C, 0x11913,
0x11915, 0x11916,
0x11918, 0x11935,
0x11937, 0x11938,
0x1193B, 0x11946,
0x11950, 0x11959,
},
}
m["Dogr"] = process_ranges{
"Dogra",
72402987,
"abugida",
ranges = {
0x0964, 0x096F,
0xA830, 0xA839,
0x11800, 0x1183B,
},
}
m["Dsrt"] = process_ranges{
"Deseret",
1200582,
"alphabet",
ranges = {
0x10400, 0x1044F,
},
capitalized = true,
}
m["Dupl"] = process_ranges{
"Duployan",
5316025,
"alphabet",
ranges = {
0x1BC00, 0x1BC6A,
0x1BC70, 0x1BC7C,
0x1BC80, 0x1BC88,
0x1BC90, 0x1BC99,
0x1BC9C, 0x1BCA3,
},
}
m["Egyd"] = {
"Demotic",
188519,
"abjad, logography",
-- Not in Unicode
}
m["Egyh"] = {
"Hieratic",
208111,
"abjad, logography",
-- Unified with Egyptian hieroglyphic in Unicode
}
m["Egyp"] = process_ranges{
"Egyptian hieroglyphic",
132659,
"abjad, logography",
ranges = {
0x13000, 0x13455,
0x13460, 0x143FA,
},
varieties = {"Hieratic"},
wikipedia_article = "Egyptian hieroglyphs",
normalizationFixes = handle_normalization_fixes{
from = {"𓃁", "𓆖"},
to = {"𓃀𓂝", "𓆓𓏏𓇿"}
},
}
m["Elba"] = process_ranges{
"Elbasan",
1036714,
"alphabet",
ranges = {
0x10500, 0x10527,
},
}
m["Elym"] = process_ranges{
"Elymaic",
60744423,
"abjad",
ranges = {
0x10FE0, 0x10FF6,
},
direction = "rtl",
}
m["Ethi"] = process_ranges{
"Ethiopic",
257634,
"abugida",
aliases = {"Ge'ez", "Geʽez"},
ranges = {
0x1200, 0x1248,
0x124A, 0x124D,
0x1250, 0x1256,
0x1258, 0x1258,
0x125A, 0x125D,
0x1260, 0x1288,
0x128A, 0x128D,
0x1290, 0x12B0,
0x12B2, 0x12B5,
0x12B8, 0x12BE,
0x12C0, 0x12C0,
0x12C2, 0x12C5,
0x12C8, 0x12D6,
0x12D8, 0x1310,
0x1312, 0x1315,
0x1318, 0x135A,
0x135D, 0x137C,
0x1380, 0x1399,
0x2D80, 0x2D96,
0x2DA0, 0x2DA6,
0x2DA8, 0x2DAE,
0x2DB0, 0x2DB6,
0x2DB8, 0x2DBE,
0x2DC0, 0x2DC6,
0x2DC8, 0x2DCE,
0x2DD0, 0x2DD6,
0x2DD8, 0x2DDE,
0xAB01, 0xAB06,
0xAB09, 0xAB0E,
0xAB11, 0xAB16,
0xAB20, 0xAB26,
0xAB28, 0xAB2E,
0x1E7E0, 0x1E7E6,
0x1E7E8, 0x1E7EB,
0x1E7ED, 0x1E7EE,
0x1E7F0, 0x1E7FE,
},
sort_key = "Ethi-sortkey",
strip_diacritics = {remove_diacritics = u(0x135D) .. u(0x135E) .. u(0x135F)}
}
m["Gara"] = process_ranges{
"Garay",
3095302,
"alphabet",
capitalized = true,
direction = "rtl",
ranges = {
0x060C, 0x060C,
0x061B, 0x061B,
0x061F, 0x061F,
0x10D40, 0x10D65,
0x10D69, 0x10D85,
0x10D8E, 0x10D8F,
},
}
m["Geok"] = process_ranges{
"Khutsuri",
1090055,
"alphabet",
ranges = { -- Ⴀ-Ⴭ is Asomtavruli, ⴀ-ⴭ is Nuskhuri
0x10A0, 0x10C5,
0x10C7, 0x10C7,
0x10CD, 0x10CD,
0x10FB, 0x10FB,
0x2D00, 0x2D25,
0x2D27, 0x2D27,
0x2D2D, 0x2D2D,
},
varieties = {"Nuskhuri", "Asomtavruli"},
capitalized = true,
translit = "Geok-translit",
}
m["Geor"] = process_ranges{
"Georgian",
3317411,
"alphabet",
ranges = { -- ა-ჿ is lowercase Mkhedruli; Ა-Ჿ is uppercase Mkhedruli (Mtavruli)
0x0589, 0x0589,
0x10D0, 0x10FF,
0x1C90, 0x1CBA,
0x1CBD, 0x1CBF,
},
varieties = {"Mkhedruli", "Mtavruli"},
capitalized = true,
translit = "Geor-translit",
}
m["Glag"] = process_ranges{
"Glagolitic",
145625,
"alphabet",
ranges = {
0x0484, 0x0484,
0x0487, 0x0487,
0x0589, 0x0589,
0x10FB, 0x10FB,
0x2C00, 0x2C5F,
0x2E43, 0x2E43,
0xA66F, 0xA66F,
0x1E000, 0x1E006,
0x1E008, 0x1E018,
0x1E01B, 0x1E021,
0x1E023, 0x1E024,
0x1E026, 0x1E02A,
},
capitalized = true,
}
m["Gong"] = process_ranges{
"Gunjala Gondi",
18125340,
"abugida",
ranges = {
0x0964, 0x0965,
0x11D60, 0x11D65,
0x11D67, 0x11D68,
0x11D6A, 0x11D8E,
0x11D90, 0x11D91,
0x11D93, 0x11D98,
0x11DA0, 0x11DA9,
},
}
m["Gonm"] = process_ranges{
"Masaram Gondi",
16977603,
"abugida",
ranges = {
0x0964, 0x0965,
0x11D00, 0x11D06,
0x11D08, 0x11D09,
0x11D0B, 0x11D36,
0x11D3A, 0x11D3A,
0x11D3C, 0x11D3D,
0x11D3F, 0x11D47,
0x11D50, 0x11D59,
},
}
m["Goth"] = process_ranges{
"Gothic",
467784,
"alphabet",
ranges = {
0x10330, 0x1034A,
},
wikipedia_article = "Gothic alphabet",
}
m["Gran"] = process_ranges{
"Grantha",
1119274,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0BE6, 0x0BF3,
0x1CD0, 0x1CD0,
0x1CD2, 0x1CD3,
0x1CF2, 0x1CF4,
0x1CF8, 0x1CF9,
0x20F0, 0x20F0,
0x11300, 0x11303,
0x11305, 0x1130C,
0x1130F, 0x11310,
0x11313, 0x11328,
0x1132A, 0x11330,
0x11332, 0x11333,
0x11335, 0x11339,
0x1133B, 0x11344,
0x11347, 0x11348,
0x1134B, 0x1134D,
0x11350, 0x11350,
0x11357, 0x11357,
0x1135D, 0x11363,
0x11366, 0x1136C,
0x11370, 0x11374,
0x11FD0, 0x11FD1,
0x11FD3, 0x11FD3,
},
}
m["Grek"] = process_ranges{
"Greek",
8216,
"alphabet",
ranges = {
0x0341, 0x0341,
0x0374, 0x0375,
0x037E, 0x037E,
0x0384, 0x038A,
0x038C, 0x038C,
0x038E, 0x03A1,
0x03A3, 0x03D7,
0x03DA, 0x03DB,
0x03DE, 0x03E1,
0x03F0, 0x03F1,
0x03F4, 0x03F4,
0x03FC, 0x03FC,
0x1D26, 0x1D2A,
0x1D5D, 0x1D61,
0x1D66, 0x1D6A,
0x1DBF, 0x1DBF,
0x2126, 0x2127,
0x2129, 0x2129,
0x213C, 0x2140,
0xAB65, 0xAB65,
0x10140, 0x1018E,
0x101A0, 0x101A0,
0x1D200, 0x1D245,
},
capitalized = true,
display_text = "Grek-common",
strip_diacritics = "Grek-common",
sort_key = {
remove_diacritics = "'ʼ;·`¨´῀" .. c.grave .. c.acute .. c.diaer .. c.caron .. c.turnedcommaabove .. c.commaabove .. c.revcommaabove .. c.macron .. c.breve .. c.diaerbelow .. c.brevebelow .. c.perispomeni .. c.ypogegrammeni .. c.RSQuo .. c.prime .. c.keraia .. c.lowerkeraia .. c.tonos .. c.coronis .. c.psili .. c.dasia,
from = {"ϝ", "ͷ", "ϛ", "ͱ", "ͺ", "ϳ", "ϻ", "[ϟϙ]", "[ςϲ]", "ͳ"},
to = {"ε" .. p[1], "ε" .. p[2], "ε" .. p[3], "ζ" .. p[1], "ι", "ι" .. p[1], "π" .. p[1], "π" .. p[2], "σ", "ϡ"},
},
}
m["Polyt"] = process_ranges{
"Greek",
1475332,
m["Grek"][3],
ranges = union(m["Grek"].ranges, {
0x0340, 0x0340,
0x0342, 0x0345,
0x0370, 0x0373,
0x0376, 0x0377,
0x037A, 0x037D,
0x037F, 0x037F,
0x03D8, 0x03D9,
0x03DC, 0x03DD,
0x03F2, 0x03F3,
0x03F5, 0x03FB,
0x03FD, 0x03FF,
0x1F00, 0x1F15,
0x1F18, 0x1F1D,
0x1F20, 0x1F45,
0x1F48, 0x1F4D,
0x1F50, 0x1F57,
0x1F59, 0x1F59,
0x1F5B, 0x1F5B,
0x1F5D, 0x1F5D,
0x1F5F, 0x1F7D,
0x1F80, 0x1FB4,
0x1FB6, 0x1FC4,
0x1FC6, 0x1FD3,
0x1FD6, 0x1FDB,
0x1FDD, 0x1FEF,
0x1FF2, 0x1FF4,
0x1FF6, 0x1FFE,
}),
ietf_subtag = "Grek",
capitalized = m["Grek"].capitalized,
parent = "Grek",
display_text = m["Grek"].display_text,
strip_diacritics = "Polyt-stripdiacritics",
sort_key = m["Grek"].sort_key,
translit = "grc-translit",
}
m["Gujr"] = process_ranges{
"Gujarati",
733944,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0A81, 0x0A83,
0x0A85, 0x0A8D,
0x0A8F, 0x0A91,
0x0A93, 0x0AA8,
0x0AAA, 0x0AB0,
0x0AB2, 0x0AB3,
0x0AB5, 0x0AB9,
0x0ABC, 0x0AC5,
0x0AC7, 0x0AC9,
0x0ACB, 0x0ACD,
0x0AD0, 0x0AD0,
0x0AE0, 0x0AE3,
0x0AE6, 0x0AF1,
0x0AF9, 0x0AFF,
0xA830, 0xA839,
},
normalizationFixes = handle_normalization_fixes{
from = {"ઓ", "અાૈ", "અા", "અૅ", "અે", "અૈ", "અૉ", "અો", "અૌ", "આૅ", "આૈ", "ૅા"},
to = {"અાૅ", "ઔ", "આ", "ઍ", "એ", "ઐ", "ઑ", "ઓ", "ઔ", "ઓ", "ઔ", "ૉ"}
},
}
m["Gukh"] = process_ranges{
"Khema",
110064239,
"abugida",
aliases = {"Gurung Khema", "Khema Phri", "Khema Lipi"},
ranges = {
0x0965, 0x0965,
0x16100, 0x16139,
},
}
m["Guru"] = process_ranges{
"Gurmukhi",
689894,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0A01, 0x0A03,
0x0A05, 0x0A0A,
0x0A0F, 0x0A10,
0x0A13, 0x0A28,
0x0A2A, 0x0A30,
0x0A32, 0x0A33,
0x0A35, 0x0A36,
0x0A38, 0x0A39,
0x0A3C, 0x0A3C,
0x0A3E, 0x0A42,
0x0A47, 0x0A48,
0x0A4B, 0x0A4D,
0x0A51, 0x0A51,
0x0A59, 0x0A5C,
0x0A5E, 0x0A5E,
0x0A66, 0x0A76,
0xA830, 0xA839,
},
normalizationFixes = handle_normalization_fixes{
from = {"ਅਾ", "ਅੈ", "ਅੌ", "ੲਿ", "ੲੀ", "ੲੇ", "ੳੁ", "ੳੂ", "ੳੋ"},
to = {"ਆ", "ਐ", "ਔ", "ਇ", "ਈ", "ਏ", "ਉ", "ਊ", "ਓ"}
},
}
m["Hang"] = process_ranges{
"Hangul",
8222,
"syllabary",
aliases = {"Hangeul"},
ranges = {
0x1100, 0x11FF,
0x3001, 0x3003,
0x3008, 0x3011,
0x3013, 0x301F,
0x302E, 0x3030,
0x3037, 0x3037,
0x30FB, 0x30FB,
0x3131, 0x318E,
0x3200, 0x321E,
0x3260, 0x327E,
0xA960, 0xA97C,
0xAC00, 0xD7A3,
0xD7B0, 0xD7C6,
0xD7CB, 0xD7FB,
0xFE45, 0xFE46,
0xFF61, 0xFF65,
0xFFA0, 0xFFBE,
0xFFC2, 0xFFC7,
0xFFCA, 0xFFCF,
0xFFD2, 0xFFD7,
0xFFDA, 0xFFDC,
},
}
m["Hani"] = process_ranges{
"Han",
8201,
"logography",
ranges = {
0x2E80, 0x2E99,
0x2E9B, 0x2EF3,
0x2F00, 0x2FD5,
0x2FF0, 0x2FFF,
0x3001, 0x3003,
0x3005, 0x3011,
0x3013, 0x301F,
0x3021, 0x302D,
0x3030, 0x3030,
0x3037, 0x303F,
0x3190, 0x319F,
0x31C0, 0x31E5,
0x31EF, 0x31EF,
0x3220, 0x3247,
0x3280, 0x32B0,
0x32C0, 0x32CB,
0x30FB, 0x30FB,
0x32FF, 0x32FF,
0x3358, 0x3370,
0x337B, 0x337F,
0x33E0, 0x33FE,
0x3400, 0x4DBF,
0x4E00, 0x9FFF,
0xA700, 0xA707,
0xF900, 0xFA6D,
0xFA70, 0xFAD9,
0xFE45, 0xFE46,
0xFF61, 0xFF65,
0x16FE2, 0x16FE3,
0x16FF0, 0x16FF1,
0x1D360, 0x1D371,
0x1F250, 0x1F251,
0x20000, 0x2A6DF,
0x2A700, 0x2B739,
0x2B740, 0x2B81D,
0x2B820, 0x2CEA1,
0x2CEB0, 0x2EBE0,
0x2EBF0, 0x2EE5D,
0x2F800, 0x2FA1D,
0x30000, 0x3134A,
0x31350, 0x3347F,
},
varieties = {"Hanzi", "Kanji", "Hanja", "Chu Nom"},
spaces = false,
}
m["Hans"] = {
"Simplified Han",
185614,
m["Hani"][3],
ranges = m["Hani"].ranges,
characters = m["Hani"].characters,
spaces = m["Hani"].spaces,
parent = "Hani",
}
m["Hant"] = {
"Traditional Han",
178528,
m["Hani"][3],
ranges = m["Hani"].ranges,
characters = m["Hani"].characters,
spaces = m["Hani"].spaces,
parent = "Hani",
}
m["Hano"] = process_ranges{
"Hanunoo",
1584045,
"abugida",
aliases = {"Hanunó'o", "Hanuno'o"},
ranges = {
0x1720, 0x1736,
},
}
m["Hatr"] = process_ranges{
"Hatran",
20813038,
"abjad",
ranges = {
0x108E0, 0x108F2,
0x108F4, 0x108F5,
0x108FB, 0x108FF,
},
direction = "rtl",
}
m["Hebr"] = process_ranges{
"Hebrew",
33513,
"abjad", -- more precisely, impure abjad
ranges = {
0x0591, 0x05C7,
0x05D0, 0x05EA,
0x05EF, 0x05F4,
0x2135, 0x2138,
0xFB1D, 0xFB36,
0xFB38, 0xFB3C,
0xFB3E, 0xFB3E,
0xFB40, 0xFB41,
0xFB43, 0xFB44,
0xFB46, 0xFB4F,
},
direction = "rtl",
display_text = "Hebr-common",
sort_key = "Hebr-common",
strip_diacritics = "Hebr-common",
}
m["Hira"] = process_ranges{
"Hiragana",
48332,
"syllabary",
ranges = {
0x3001, 0x3003,
0x3008, 0x3011,
0x3013, 0x301F,
0x3030, 0x3035,
0x3037, 0x3037,
0x303C, 0x303D,
0x3041, 0x3096,
0x3099, 0x30A0,
0x30FB, 0x30FC,
0xFE45, 0xFE46,
0xFF61, 0xFF65,
0xFF70, 0xFF70,
0xFF9E, 0xFF9F,
0x1B001, 0x1B11F,
0x1B132, 0x1B132,
0x1B150, 0x1B152,
0x1F200, 0x1F200,
},
varieties = {"Hentaigana"},
spaces = false,
}
m["Hluw"] = process_ranges{
"Anatolian hieroglyphic",
521323,
"logography, syllabary",
ranges = {
0x14400, 0x14646,
},
wikipedia_article = "Anatolian hieroglyphs",
}
m["Hmng"] = process_ranges{
"Pahawh Hmong",
365954,
"semisyllabary",
aliases = {"Hmong"},
ranges = {
0x16B00, 0x16B45,
0x16B50, 0x16B59,
0x16B5B, 0x16B61,
0x16B63, 0x16B77,
0x16B7D, 0x16B8F,
},
}
m["Hmnp"] = process_ranges{
"Nyiakeng Puachue Hmong",
33712499,
"alphabet",
ranges = {
0x1E100, 0x1E12C,
0x1E130, 0x1E13D,
0x1E140, 0x1E149,
0x1E14E, 0x1E14F,
},
}
m["Hung"] = process_ranges{
"Old Hungarian",
446224,
"alphabet",
aliases = {"Hungarian runic"},
ranges = {
0x10C80, 0x10CB2,
0x10CC0, 0x10CF2,
0x10CFA, 0x10CFF,
},
capitalized = true,
direction = "rtl",
}
m["Ibrnn"] = {
"Northeastern Iberian",
1113155,
"semisyllabary",
ietf_subtag = "Zzzz",
-- Not in Unicode
}
m["Ibrns"] = {
"Southeastern Iberian",
2305351,
"semisyllabary",
ietf_subtag = "Zzzz",
-- Not in Unicode
}
m["Image"] = {
-- To be used to avoid any formatting or link processing
"Image-rendered",
478798,
-- This should not have any characters listed
ietf_subtag = "Zyyy",
translit = false,
character_category = false, -- none
}
m["Inds"] = {
"Indus",
601388,
aliases = {"Harappan", "Indus Valley"},
}
m["Ipach"] = {
"International Phonetic Alphabet",
21204,
aliases = {"IPA"},
ietf_subtag = "Latn",
}
m["Ital"] = process_ranges{
"Old Italic",
4891256,
"alphabet",
ranges = {
0x10300, 0x10323,
0x1032D, 0x1032F,
},
translit = "Ital-translit",
}
m["Java"] = process_ranges{
"Javanese",
879704,
"abugida",
ranges = {
0xA980, 0xA9CD,
0xA9CF, 0xA9D9,
0xA9DE, 0xA9DF,
},
}
m["Jurc"] = {
"Jurchen",
912240,
"logography",
spaces = false,
}
m["Kali"] = process_ranges{
"Kayah Li",
4919239,
"abugida",
ranges = {
0xA900, 0xA92F,
},
}
m["Kana"] = process_ranges{
"Katakana",
82946,
"syllabary",
ranges = {
0x3001, 0x3003,
0x3008, 0x3011,
0x3013, 0x301F,
0x3030, 0x3035,
0x3037, 0x3037,
0x303C, 0x303D,
0x3099, 0x309C,
0x30A0, 0x30FF,
0x31F0, 0x31FF,
0x32D0, 0x32FE,
0x3300, 0x3357,
0xFE45, 0xFE46,
0xFF61, 0xFF9F,
0x1AFF0, 0x1AFF3,
0x1AFF5, 0x1AFFB,
0x1AFFD, 0x1AFFE,
0x1B000, 0x1B000,
0x1B120, 0x1B122,
0x1B155, 0x1B155,
0x1B164, 0x1B167,
},
spaces = false,
}
m["Kawi"] = process_ranges{
"Kawi",
975802,
"abugida",
ranges = {
0x11F00, 0x11F10,
0x11F12, 0x11F3A,
0x11F3E, 0x11F5A,
},
}
m["Khar"] = process_ranges{
"Kharoshthi",
1161266,
"abugida",
ranges = {
0x10A00, 0x10A03,
0x10A05, 0x10A06,
0x10A0C, 0x10A13,
0x10A15, 0x10A17,
0x10A19, 0x10A35,
0x10A38, 0x10A3A,
0x10A3F, 0x10A48,
0x10A50, 0x10A58,
},
direction = "rtl",
}
m["Khmr"] = process_ranges{
"Khmer",
1054190,
"abugida",
ranges = {
0x1780, 0x17DD,
0x17E0, 0x17E9,
0x17F0, 0x17F9,
0x19E0, 0x19FF,
},
spaces = false,
normalizationFixes = handle_normalization_fixes{
from = {"ឣ", "ឤ"},
to = {"អ", "អា"}
},
}
m["Khoj"] = process_ranges{
"Khojki",
1740656,
"abugida",
ranges = {
0x0AE6, 0x0AEF,
0xA830, 0xA839,
0x11200, 0x11211,
0x11213, 0x11241,
},
normalizationFixes = handle_normalization_fixes{
from = {"𑈀𑈬𑈱", "𑈀𑈬", "𑈀𑈱", "𑈀𑈳", "𑈁𑈱", "𑈆𑈬", "𑈬𑈰", "𑈬𑈱", "𑉀𑈮"},
to = {"𑈇", "𑈁", "𑈅", "𑈇", "𑈇", "𑈃", "𑈲", "𑈳", "𑈂"}
},
}
m["Khomt"] = {
"Khom Thai",
13023788,
"abugida",
-- Not in Unicode
}
m["Kitl"] = {
"Khitan large",
6401797,
"logography",
spaces = false,
}
m["Kits"] = process_ranges{
"Khitan small",
6401800,
"logography, syllabary",
ranges = {
0x16FE4, 0x16FE4,
0x18B00, 0x18CD5,
0x18CFF, 0x18CFF,
},
spaces = false,
}
m["Knda"] = process_ranges{
"Kannada",
839666,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0C80, 0x0C8C,
0x0C8E, 0x0C90,
0x0C92, 0x0CA8,
0x0CAA, 0x0CB3,
0x0CB5, 0x0CB9,
0x0CBC, 0x0CC4,
0x0CC6, 0x0CC8,
0x0CCA, 0x0CCD,
0x0CD5, 0x0CD6,
0x0CDD, 0x0CDE,
0x0CE0, 0x0CE3,
0x0CE6, 0x0CEF,
0x0CF1, 0x0CF3,
0x1CD0, 0x1CD0,
0x1CD2, 0x1CD3,
0x1CDA, 0x1CDA,
0x1CF2, 0x1CF2,
0x1CF4, 0x1CF4,
0xA830, 0xA835,
},
normalizationFixes = handle_normalization_fixes{
from = {"ಉಾ", "ಋಾ", "ಒೌ"},
to = {"ಊ", "ೠ", "ಔ"}
},
translit = "kn-translit",
}
m["Kpel"] = {
"Kpelle",
1586299,
"syllabary",
-- Not in Unicode
}
m["Krai"] = process_ranges{
"Kirat Rai",
123173834,
"abugida",
aliases = {"Rai", "Khambu Rai", "Rai Barṇamālā", "Kirat Khambu Rai"},
ranges = {
0x16D40, 0x16D79,
},
}
m["Kthi"] = process_ranges{
"Kaithi",
1253814,
"abugida",
ranges = {
0x0966, 0x096F,
0xA830, 0xA839,
0x11080, 0x110C2,
0x110CD, 0x110CD,
},
}
m["Kulit"] = {
"Kulitan",
6443044,
"abugida",
-- Not in Unicode
}
m["Lana"] = process_ranges{
"Tai Tham",
1314503,
"abugida",
aliases = {"Tham", "Tua Mueang", "Lanna"},
ranges = {
0x1A20, 0x1A5E,
0x1A60, 0x1A7C,
0x1A7F, 0x1A89,
0x1A90, 0x1A99,
0x1AA0, 0x1AAD,
},
spaces = false,
}
m["Laoo"] = process_ranges{
"Lao",
1815229,
"abugida",
ranges = {
0x0E81, 0x0E82,
0x0E84, 0x0E84,
0x0E86, 0x0E8A,
0x0E8C, 0x0EA3,
0x0EA5, 0x0EA5,
0x0EA7, 0x0EBD,
0x0EC0, 0x0EC4,
0x0EC6, 0x0EC6,
0x0EC8, 0x0ECE,
0x0ED0, 0x0ED9,
0x0EDC, 0x0EDF,
},
spaces = false,
}
m["Latn"] = process_ranges{
"Latin",
8229,
"alphabet",
aliases = {"Roman"},
ranges = {
0x0041, 0x005A,
0x0061, 0x007A,
0x00AA, 0x00AA,
0x00BA, 0x00BA,
0x00C0, 0x00D6,
0x00D8, 0x00F6,
0x00F8, 0x02B8,
0x02C0, 0x02C1,
0x02E0, 0x02E4,
0x0363, 0x036F,
0x0485, 0x0486,
0x0951, 0x0952,
0x10FB, 0x10FB,
0x1D00, 0x1D25,
0x1D2C, 0x1D5C,
0x1D62, 0x1D65,
0x1D6B, 0x1D77,
0x1D79, 0x1DBE,
0x1DF8, 0x1DF8,
0x1E00, 0x1EFF,
0x202F, 0x202F,
0x2071, 0x2071,
0x207F, 0x207F,
0x2090, 0x209C,
0x20F0, 0x20F0,
0x2100, 0x2125,
0x2128, 0x2128,
0x212A, 0x2134,
0x2139, 0x213B,
0x2141, 0x214E,
0x2160, 0x2188,
0x2C60, 0x2C7F,
0xA700, 0xA707,
0xA722, 0xA787,
0xA78B, 0xA7CD,
0xA7D0, 0xA7D1,
0xA7D3, 0xA7D3,
0xA7D5, 0xA7DC,
0xA7F2, 0xA7FF,
0xA92E, 0xA92E,
0xAB30, 0xAB5A,
0xAB5C, 0xAB64,
0xAB66, 0xAB69,
0xFB00, 0xFB06,
0xFF21, 0xFF3A,
0xFF41, 0xFF5A,
0x10780, 0x10785,
0x10787, 0x107B0,
0x107B2, 0x107BA,
0x1DF00, 0x1DF1E,
0x1DF25, 0x1DF2A,
},
varieties = {"Rumi", "Romaji", "Rōmaji", "Romaja"},
capitalized = true,
translit = false,
}
m["Latf"] = {
"Fraktur",
148443,
m["Latn"][3],
ranges = m["Latn"].ranges,
characters = m["Latn"].characters,
other_names = {"Blackletter"}, -- Blackletter is actually the parent "script"
capitalized = m["Latn"].capitalized,
translit = m["Latn"].translit,
parent = "Latn",
}
m["Latg"] = {
"Gaelic",
1432616,
m["Latn"][3],
ranges = m["Latn"].ranges,
characters = m["Latn"].characters,
other_names = {"Irish"},
capitalized = m["Latn"].capitalized,
translit = m["Latn"].translit,
parent = "Latn",
}
m["pjt-Latn"] = {
"Latin",
nil,
m["Latn"][3],
ranges = m["Latn"].ranges,
characters = m["Latn"].characters,
capitalized = m["Latn"].capitalized,
translit = m["Latn"].translit,
parent = "Latn",
}
m["Leke"] = {
"Leke",
19572613,
"abugida",
-- Not in Unicode
}
m["Lepc"] = process_ranges{
"Lepcha",
1481626,
"abugida",
aliases = {"Róng"},
ranges = {
0x1C00, 0x1C37,
0x1C3B, 0x1C49,
0x1C4D, 0x1C4F,
},
}
m["Limb"] = process_ranges{
"Limbu",
933796,
"abugida",
ranges = {
0x0965, 0x0965,
0x1900, 0x191E,
0x1920, 0x192B,
0x1930, 0x193B,
0x1940, 0x1940,
0x1944, 0x194F,
},
}
m["Lina"] = process_ranges{
"Linear A",
30972,
ranges = {
0x10107, 0x10133,
0x10600, 0x10736,
0x10740, 0x10755,
0x10760, 0x10767,
},
}
m["Linb"] = process_ranges{
"Linear B",
190102,
ranges = {
0x10000, 0x1000B,
0x1000D, 0x10026,
0x10028, 0x1003A,
0x1003C, 0x1003D,
0x1003F, 0x1004D,
0x10050, 0x1005D,
0x10080, 0x100FA,
0x10100, 0x10102,
0x10107, 0x10133,
0x10137, 0x1013F,
},
}
m["Lisu"] = process_ranges{
"Fraser",
1194621,
"alphabet",
aliases = {"Old Lisu", "Lisu"},
ranges = {
0x300A, 0x300B,
0xA4D0, 0xA4FF,
0x11FB0, 0x11FB0,
},
normalizationFixes = handle_normalization_fixes{
from = {"['’]", "[.ꓸ][.ꓸ]", "[.ꓸ][,ꓹ]"},
to = {"ʼ", "ꓺ", "ꓻ"}
},
translit = "Lisu-translit",
sort_key = {
from = {"𑾰"},
to = {"ꓬ" .. p[1]}
},
}
m["Loma"] = {
"Loma",
13023816,
"syllabary",
-- Not in Unicode
}
m["Lyci"] = process_ranges{
"Lycian",
913587,
"alphabet",
ranges = {
0x10280, 0x1029C,
},
}
m["Lydi"] = process_ranges{
"Lydian",
4261300,
"alphabet",
ranges = {
0x10920, 0x10939,
0x1093F, 0x1093F,
},
direction = "rtl",
}
m["Mahj"] = process_ranges{
"Mahajani",
6732850,
"abugida",
ranges = {
0x0964, 0x096F,
0xA830, 0xA839,
0x11150, 0x11176,
},
}
m["Maka"] = process_ranges{
"Makasar",
72947229,
"abugida",
aliases = {"Old Makasar"},
ranges = {
0x11EE0, 0x11EF8,
},
}
m["Mand"] = process_ranges{
"Mandaic",
1812130,
aliases = {"Mandaean"},
ranges = {
0x0640, 0x0640,
0x0840, 0x085B,
0x085E, 0x085E,
},
direction = "rtl",
}
m["Mani"] = process_ranges{
"Manichaean",
3544702,
"abjad",
ranges = {
0x0640, 0x0640,
0x10AC0, 0x10AE6,
0x10AEB, 0x10AF6,
},
direction = "rtl",
translit = "Mani-translit",
}
m["Marc"] = process_ranges{
"Marchen",
72403709,
"abugida",
ranges = {
0x11C70, 0x11C8F,
0x11C92, 0x11CA7,
0x11CA9, 0x11CB6,
},
}
m["Maya"] = process_ranges{
"Maya",
211248,
aliases = {"Maya hieroglyphic", "Mayan", "Mayan hieroglyphic"},
ranges = {
0x1D2E0, 0x1D2F3,
},
}
m["Medf"] = process_ranges{
"Medefaidrin",
1519764,
aliases = {"Oberi Okaime", "Oberi Ɔkaimɛ"},
ranges = {
0x16E40, 0x16E9A,
},
capitalized = true,
}
m["Mend"] = process_ranges{
"Mende",
951069,
aliases = {"Mende Kikakui"},
ranges = {
0x1E800, 0x1E8C4,
0x1E8C7, 0x1E8D6,
},
direction = "rtl",
}
m["Merc"] = process_ranges{
"Meroitic cursive",
73028124,
"abugida",
ranges = {
0x109A0, 0x109B7,
0x109BC, 0x109CF,
0x109D2, 0x109FF,
},
direction = "rtl",
}
m["Mero"] = process_ranges{
"Meroitic hieroglyphic",
73028623,
"abugida",
ranges = {
0x10980, 0x1099F,
},
direction = "rtl",
wikipedia_article = "Meroitic hieroglyphs",
}
m["Mlym"] = process_ranges{
"Malayalam",
1164129,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0D00, 0x0D0C,
0x0D0E, 0x0D10,
0x0D12, 0x0D44,
0x0D46, 0x0D48,
0x0D4A, 0x0D4F,
0x0D54, 0x0D63,
0x0D66, 0x0D7F,
0x1CDA, 0x1CDA,
0x1CF2, 0x1CF2,
0xA830, 0xA832,
},
normalizationFixes = handle_normalization_fixes{
from = {"ഇൗ", "ഉൗ", "എെ", "ഒാ", "ഒൗ", "ക്", "ണ്", "ന്റ", "ന്", "മ്", "യ്", "ര്", "ല്", "ള്", "ഴ്", "െെ", "ൻ്റ"},
to = {"ഈ", "ഊ", "ഐ", "ഓ", "ഔ", "ൿ", "ൺ", "ൻറ", "ൻ", "ൔ", "ൕ", "ർ", "ൽ", "ൾ", "ൖ", "ൈ", "ന്റ"}
},
translit = "ml-translit",
}
m["Modi"] = process_ranges{
"Modi",
1703713,
"abugida",
ranges = {
0xA830, 0xA839,
0x11600, 0x11644,
0x11650, 0x11659,
},
normalizationFixes = handle_normalization_fixes{
from = {"𑘀𑘹", "𑘀𑘺", "𑘁𑘹", "𑘁𑘺"},
to = {"𑘊", "𑘋", "𑘌", "𑘍"}
},
}
do
local Mong_displaytext = {
from = {"([ᠨ-ᡂᡸ])ᠶ([ᠨ-ᡂᡸ])", "([ᠠ-ᡂᡸ])ᠸ([^᠋ᠠ-ᠧ])", "([ᠠ-ᡂᡸ])ᠸ$"},
to = {"%1ᠢ%2", "%1ᠧ%2", "%1ᠧ"}
}
m["Mong"] = process_ranges{
"Mongolian",
1055705,
"alphabet",
aliases = {"Mongol bichig", "Hudum Mongol bichig"},
ranges = {
0x1800, 0x1805,
0x180A, 0x1819,
0x1820, 0x1842,
0x1878, 0x1878,
0x1880, 0x1897,
0x18A6, 0x18A6,
0x18A9, 0x18A9,
0x200C, 0x200D,
0x202F, 0x202F,
0x3001, 0x3002,
0x3008, 0x300B,
0x11660, 0x11668,
},
direction = "vertical-ltr",
display_text = Mong_displaytext,
strip_diacritics = Mong_displaytext,
translit = "Mong-translit",
}
m["mnc-Mong"] = process_ranges{
"Manchu",
122888,
m["Mong"][3],
ranges = {
0x1801, 0x1801,
0x1804, 0x1804,
0x1808, 0x180F,
0x1820, 0x1820,
0x1823, 0x1823,
0x1828, 0x182A,
0x182E, 0x1830,
0x1834, 0x1838,
0x183A, 0x183A,
0x185D, 0x185D,
0x185F, 0x1861,
0x1864, 0x1869,
0x186C, 0x1871,
0x1873, 0x1877,
0x1880, 0x1888,
0x188F, 0x188F,
0x189A, 0x18A5,
0x18A8, 0x18A8,
0x18AA, 0x18AA,
0x200C, 0x200D,
0x202F, 0x202F,
},
direction = "vertical-ltr",
parent = "Mong",
translit = "mnc-translit",
}
m["sjo-Mong"] = process_ranges{
"Xibe",
113624153,
m["Mong"][3],
aliases = {"Sibe"},
ranges = {
0x1804, 0x1804,
0x1807, 0x1807,
0x180A, 0x180F,
0x1820, 0x1820,
0x1823, 0x1823,
0x1828, 0x1828,
0x182A, 0x182A,
0x182E, 0x1830,
0x1834, 0x1838,
0x183A, 0x183A,
0x185D, 0x1872,
0x200C, 0x200D,
0x202F, 0x202F,
},
direction = "vertical-ltr",
parent = "mnc-Mong",
}
m["xwo-Mong"] = process_ranges{
"Clear Script",
529085,
m["Mong"][3],
aliases = {"Todo", "Todo bichig"},
ranges = {
0x1800, 0x1801,
0x1804, 0x1806,
0x180A, 0x1820,
0x1828, 0x1828,
0x182F, 0x1831,
0x1834, 0x1834,
0x1837, 0x1838,
0x183A, 0x183B,
0x1840, 0x1840,
0x1843, 0x185C,
0x1880, 0x1887,
0x1889, 0x188F,
0x1894, 0x1894,
0x1896, 0x1899,
0x18A7, 0x18A7,
0x200C, 0x200D,
0x202F, 0x202F,
0x11669, 0x1166C,
},
direction = "vertical-ltr",
parent = "Mong",
translit = "xwo-translit",
}
end
m["Moon"] = {
"Moon",
918391,
"alphabet",
aliases = {"Moon System of Embossed Reading", "Moon type", "Moon writing", "Moon alphabet", "Moon code"},
-- Not in Unicode
}
m["Morse"] = {
"Morse code",
79897,
ietf_subtag = "Zsym",
}
m["Mroo"] = process_ranges{
"Mru",
75919253,
aliases = {"Mro", "Mrung"},
ranges = {
0x16A40, 0x16A5E,
0x16A60, 0x16A69,
0x16A6E, 0x16A6F,
},
}
m["Mtei"] = process_ranges{
"Meitei Mayek",
2981413,
"abugida",
aliases = {"Meetei Mayek", "Manipuri"},
ranges = {
0xAAE0, 0xAAF6,
0xABC0, 0xABED,
0xABF0, 0xABF9,
},
}
m["Mult"] = process_ranges{
"Multani",
17047906,
"abugida",
ranges = {
0x0A66, 0x0A6F,
0x11280, 0x11286,
0x11288, 0x11288,
0x1128A, 0x1128D,
0x1128F, 0x1129D,
0x1129F, 0x112A9,
},
}
m["Music"] = process_ranges{
"musical notation",
233861,
"pictography",
ranges = {
0x2669, 0x266F,
0x1D100, 0x1D126,
0x1D129, 0x1D1EA,
},
ietf_subtag = "Zsym",
translit = false,
}
m["Mymr"] = process_ranges{
"Burmese",
43887939,
"abugida",
aliases = {"Myanmar"},
ranges = {
0x1000, 0x109F,
0xA92E, 0xA92E,
0xA9E0, 0xA9FE,
0xAA60, 0xAA7F,
0x116D0, 0x116E3,
},
spaces = false,
}
m["Nagm"] = process_ranges{
"Mundari Bani",
106917274,
"alphabet",
aliases = {"Nag Mundari"},
ranges = {
0x1E4D0, 0x1E4F9,
},
}
m["Nand"] = process_ranges{
"Nandinagari",
6963324,
"abugida",
ranges = {
0x0964, 0x0965,
0x0CE6, 0x0CEF,
0x1CE9, 0x1CE9,
0x1CF2, 0x1CF2,
0x1CFA, 0x1CFA,
0xA830, 0xA835,
0x119A0, 0x119A7,
0x119AA, 0x119D7,
0x119DA, 0x119E4,
},
}
m["Narb"] = process_ranges{
"Ancient North Arabian",
1472213,
"abjad",
aliases = {"Old North Arabian"},
ranges = {
0x10A80, 0x10A9F,
},
direction = "rtl",
translit = "Narb-translit",
}
m["Nbat"] = process_ranges{
"Nabataean",
855624,
"abjad",
aliases = {"Nabatean"},
ranges = {
0x10880, 0x1089E,
0x108A7, 0x108AF,
},
direction = "rtl",
}
m["Newa"] = process_ranges{
"Newa",
7237292,
"abugida",
aliases = {"Newar", "Newari", "Prachalit Nepal"},
ranges = {
0x11400, 0x1145B,
0x1145D, 0x11461,
},
}
m["Nkdb"] = {
"Dongba",
1190953,
"pictography",
aliases = {"Naxi Dongba", "Nakhi Dongba", "Tomba", "Tompa", "Mo-so"},
spaces = false,
-- Not in Unicode
}
m["Nkgb"] = {
"Geba",
731189,
"syllabary",
aliases = {"Nakhi Geba", "Naxi Geba"},
spaces = false,
-- Not in Unicode
}
m["Nkoo"] = process_ranges{
"N'Ko",
1062587,
"alphabet",
ranges = {
0x060C, 0x060C,
0x061B, 0x061B,
0x061F, 0x061F,
0x07C0, 0x07FA,
0x07FD, 0x07FF,
0xFD3E, 0xFD3F,
},
direction = "rtl",
}
m["None"] = {
"unspecified",
nil,
-- This should not have any characters listed
ietf_subtag = "Zyyy",
translit = false,
character_category = false, -- none
}
m["Nshu"] = process_ranges{
"Nüshu",
56436,
"syllabary",
aliases = {"Nushu"},
ranges = {
0x16FE1, 0x16FE1,
0x1B170, 0x1B2FB,
},
spaces = false,
}
m["Ogam"] = process_ranges{
"Ogham",
184661,
ranges = {
0x1680, 0x169C,
},
}
m["Olck"] = process_ranges{
"Ol Chiki",
201688,
aliases = {"Ol Chemetʼ", "Ol", "Santali"},
ranges = {
0x1C50, 0x1C7F,
},
}
m["Onao"] = process_ranges{
"Ol Onal",
108607084,
"alphabet",
ranges = {
0x0964, 0x0965,
0x1E5D0, 0x1E5FA,
0x1E5FF, 0x1E5FF,
},
}
m["Orkh"] = process_ranges{
"Old Turkic",
5058305,
aliases = {"Orkhon runic"},
ranges = {
0x10C00, 0x10C48,
},
direction = "rtl",
translit = "Orkh-translit",
}
m["Orya"] = process_ranges{
"Odia",
1760127,
"abugida",
aliases = {"Oriya"},
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0B01, 0x0B03,
0x0B05, 0x0B0C,
0x0B0F, 0x0B10,
0x0B13, 0x0B28,
0x0B2A, 0x0B30,
0x0B32, 0x0B33,
0x0B35, 0x0B39,
0x0B3C, 0x0B44,
0x0B47, 0x0B48,
0x0B4B, 0x0B4D,
0x0B55, 0x0B57,
0x0B5C, 0x0B5D,
0x0B5F, 0x0B63,
0x0B66, 0x0B77,
0x1CDA, 0x1CDA,
0x1CF2, 0x1CF2,
},
normalizationFixes = handle_normalization_fixes{
from = {"ଅା", "ଏୗ", "ଓୗ"},
to = {"ଆ", "ଐ", "ଔ"}
},
}
m["Osge"] = process_ranges{
"Osage",
7105529,
ranges = {
0x104B0, 0x104D3,
0x104D8, 0x104FB,
},
capitalized = true,
translit = "Osge-translit",
}
m["Osma"] = process_ranges{
"Osmanya",
1377866,
ranges = {
0x10480, 0x1049D,
0x104A0, 0x104A9,
},
}
m["Ougr"] = process_ranges{
"Old Uyghur",
1998938,
"abjad, alphabet",
ranges = {
0x0640, 0x0640,
0x10AF2, 0x10AF2,
0x10F70, 0x10F89,
},
-- This should ideally be "vertical-ltr", but getting the CSS right is tricky because it's right-to-left horizontally, but left-to-right vertically. Currently, displaying it vertically causes it to display bottom-to-top.
direction = "rtl",
}
m["Palm"] = process_ranges{
"Palmyrene",
17538100,
ranges = {
0x10860, 0x1087F,
},
direction = "rtl",
}
m["Pauc"] = process_ranges{
"Pau Cin Hau",
25339852,
ranges = {
0x11AC0, 0x11AF8,
},
}
m["Pcun"] = {
"Proto-Cuneiform",
1650699,
"pictography",
-- Not in Unicode
}
m["Pelm"] = {
"Proto-Elamite",
56305763,
"pictography",
-- Not in Unicode
}
m["Perm"] = process_ranges{
"Old Permic",
147899,
ranges = {
0x0483, 0x0483,
0x10350, 0x1037A,
},
}
m["Phag"] = process_ranges{
"Phags-pa",
822836,
"abugida",
ranges = {
0x1802, 0x1803,
0x1805, 0x1805,
0x200C, 0x200D,
0x202F, 0x202F,
0x3002, 0x3002,
0xA840, 0xA877,
},
direction = "vertical-ltr",
}
m["Phli"] = process_ranges{
"Inscriptional Pahlavi",
24089793,
"abjad",
ranges = {
0x10B60, 0x10B72,
0x10B78, 0x10B7F,
},
direction = "rtl",
}
m["Phlp"] = process_ranges{
"Psalter Pahlavi",
7253954,
"abjad",
ranges = {
0x0640, 0x0640,
0x10B80, 0x10B91,
0x10B99, 0x10B9C,
0x10BA9, 0x10BAF,
},
direction = "rtl",
}
m["Phlv"] = {
"Book Pahlavi",
72403118,
"abjad",
direction = "rtl",
wikipedia_article = "Pahlavi scripts#Book Pahlavi",
-- Not in Unicode
}
m["Phnx"] = process_ranges{
"Phoenician",
26752,
"abjad",
ranges = {
0x10900, 0x1091B,
0x1091F, 0x1091F,
},
direction = "rtl",
translit = "Phnx-translit",
}
m["Plrd"] = process_ranges{
"Pollard",
601734,
"abugida",
aliases = {"Miao"},
ranges = {
0x16F00, 0x16F4A,
0x16F4F, 0x16F87,
0x16F8F, 0x16F9F,
},
}
m["Prti"] = process_ranges{
"Inscriptional Parthian",
13023804,
ranges = {
0x10B40, 0x10B55,
0x10B58, 0x10B5F,
},
direction = "rtl",
}
m["Psin"] = {
"Proto-Sinaitic",
1065250,
"abjad",
direction = "rtl",
-- Not in Unicode
}
m["Ranj"] = {
"Ranjana",
2385276,
"abugida",
-- Not in Unicode
}
m["Rjng"] = process_ranges{
"Rejang",
2007960,
"abugida",
ranges = {
0xA930, 0xA953,
0xA95F, 0xA95F,
},
}
m["Rohg"] = process_ranges{
"Hanifi Rohingya",
21028705,
"alphabet",
ranges = {
0x060C, 0x060C,
0x061B, 0x061B,
0x061F, 0x061F,
0x0640, 0x0640,
0x06D4, 0x06D4,
0x10D00, 0x10D27,
0x10D30, 0x10D39,
},
direction = "rtl",
}
m["Roro"] = {
"Rongorongo",
209764,
-- Not in Unicode
}
m["Rumin"] = process_ranges{
"Rumi numerals",
nil,
ranges = {
0x10E60, 0x10E7E,
},
ietf_subtag = "Arab",
}
m["Runr"] = process_ranges{
"Runic",
82996,
"alphabet",
ranges = {
0x16A0, 0x16EA,
0x16EE, 0x16F8,
},
}
do
local Samr_stripdiacritics = {
remove_diacritics = c.CGJ .. u(0x0816) .. "-" .. u(0x082D),
}
m["Samr"] = process_ranges{
"Samaritan",
1550930,
"abjad",
ranges = {
0x0800, 0x082D,
0x0830, 0x083E,
},
direction = "rtl",
strip_diacritics = Samr_stripdiacritics,
sort_key = Samr_stripdiacritics,
}
end
m["Sarb"] = process_ranges{
"Ancient South Arabian",
446074,
"abjad",
aliases = {"Old South Arabian"},
ranges = {
0x10A60, 0x10A7F,
},
direction = "rtl",
translit = "Sarb-translit",
}
m["Saur"] = process_ranges{
"Saurashtra",
3535165,
"abugida",
ranges = {
0xA880, 0xA8C5,
0xA8CE, 0xA8D9,
},
}
m["Semap"] = {
"flag semaphore",
250796,
"pictography",
ietf_subtag = "Zsym",
}
m["Sgnw"] = process_ranges{
"SignWriting",
1497335,
"pictography",
aliases = {"Sutton SignWriting"},
ranges = {
0x1D800, 0x1DA8B,
0x1DA9B, 0x1DA9F,
0x1DAA1, 0x1DAAF,
},
translit = false,
}
m["Shaw"] = process_ranges{
"Shavian",
1970098,
aliases = {"Shaw"},
ranges = {
0x10450, 0x1047F,
},
}
m["Shrd"] = process_ranges{
"Sharada",
2047117,
"abugida",
ranges = {
0x0951, 0x0951,
0x1CD7, 0x1CD7,
0x1CD9, 0x1CD9,
0x1CDC, 0x1CDD,
0x1CE0, 0x1CE0,
0xA830, 0xA835,
0xA838, 0xA838,
0x11180, 0x111DF,
},
translit = "Shrd-translit",
}
m["Shui"] = {
"Sui",
752854,
"logography",
spaces = false,
-- Not in Unicode
}
m["Sidd"] = process_ranges{
"Siddham",
250379,
"abugida",
ranges = {
0x11580, 0x115B5,
0x115B8, 0x115DD,
},
translit = "Sidd-translit",
}
m["Sidt"] = {
"Sidetic",
36659,
"alphabet",
direction = "rtl",
-- Not in Unicode
}
m["Sind"] = process_ranges{
"Khudabadi",
6402810,
"abugida",
aliases = {"Khudawadi"},
ranges = {
0x0964, 0x0965,
0xA830, 0xA839,
0x112B0, 0x112EA,
0x112F0, 0x112F9,
},
normalizationFixes = handle_normalization_fixes{
from = {"𑊰𑋠", "𑊰𑋥", "𑊰𑋦", "𑊰𑋧", "𑊰𑋨"},
to = {"𑊱", "𑊶", "𑊷", "𑊸", "𑊹"}
},
}
m["Sinh"] = process_ranges{
"Sinhalese",
1574992,
"abugida",
aliases = {"Sinhala"},
ranges = {
0x0964, 0x0965,
0x0D81, 0x0D83,
0x0D85, 0x0D96,
0x0D9A, 0x0DB1,
0x0DB3, 0x0DBB,
0x0DBD, 0x0DBD,
0x0DC0, 0x0DC6,
0x0DCA, 0x0DCA,
0x0DCF, 0x0DD4,
0x0DD6, 0x0DD6,
0x0DD8, 0x0DDF,
0x0DE6, 0x0DEF,
0x0DF2, 0x0DF4,
0x1CF2, 0x1CF2,
0x111E1, 0x111F4,
},
normalizationFixes = handle_normalization_fixes{
from = {"අා", "අැ", "අෑ", "උෟ", "ඍෘ", "ඏෟ", "එ්", "එෙ", "ඔෟ", "ෘෘ"},
to = {"ආ", "ඇ", "ඈ", "ඌ", "ඎ", "ඐ", "ඒ", "ඓ", "ඖ", "ෲ"}
},
}
m["Sogd"] = process_ranges{
"Sogdian",
578359,
"abjad",
ranges = {
0x0640, 0x0640,
0x10F30, 0x10F59,
},
direction = "rtl",
}
m["Sogo"] = process_ranges{
"Old Sogdian",
72403254,
"abjad",
ranges = {
0x10F00, 0x10F27,
},
direction = "rtl",
}
m["Sora"] = process_ranges{
"Sorang Sompeng",
7563292,
aliases = {"Sora Sompeng"},
ranges = {
0x110D0, 0x110E8,
0x110F0, 0x110F9,
},
}
m["Soyo"] = process_ranges{
"Soyombo",
8009382,
"abugida",
ranges = {
0x11A50, 0x11AA2,
},
}
m["Sund"] = process_ranges{
"Sundanese",
51589,
"abugida",
ranges = {
0x1B80, 0x1BBF,
0x1CC0, 0x1CC7,
},
}
m["Sunu"] = process_ranges{
"Sunuwar",
109984965,
"alphabet",
ranges = {
0x11BC0, 0x11BE1,
0x11BF0, 0x11BF9,
},
}
m["Sylo"] = process_ranges{
"Sylheti Nagri",
144128,
"abugida",
aliases = {"Sylheti Nāgarī", "Syloti Nagri"},
ranges = {
0x0964, 0x0965,
0x09E6, 0x09EF,
0xA800, 0xA82C,
},
}
m["Syrc"] = process_ranges{
"Syriac",
26567,
"abjad", -- more precisely, impure abjad
ranges = {
0x060C, 0x060C,
0x061B, 0x061C,
0x061F, 0x061F,
0x0640, 0x0640,
0x064B, 0x0655,
0x0670, 0x0670,
0x0700, 0x070D,
0x070F, 0x074A,
0x074D, 0x074F,
0x0860, 0x086A,
0x1DF8, 0x1DF8,
0x1DFA, 0x1DFA,
},
direction = "rtl",
}
-- Syre, Syrj, Syrn are apparently subsumed into Syrc; discuss if this causes issues
m["Tagb"] = process_ranges{
"Tagbanwa",
977444,
"abugida",
ranges = {
0x1735, 0x1736,
0x1760, 0x176C,
0x176E, 0x1770,
0x1772, 0x1773,
},
}
m["Takr"] = process_ranges{
"Takri",
759202,
"abugida",
ranges = {
0x0964, 0x0965,
0xA830, 0xA839,
0x11680, 0x116B9,
0x116C0, 0x116C9,
},
normalizationFixes = handle_normalization_fixes{
from = {"𑚀𑚭", "𑚀𑚴", "𑚀𑚵", "𑚆𑚲"},
to = {"𑚁", "𑚈", "𑚉", "𑚇"}
},
}
m["Tale"] = process_ranges{
"Tai Nüa",
2566326,
"abugida",
aliases = {"Tai Nuea", "New Tai Nüa", "New Tai Nuea", "Dehong Dai", "Tai Dehong", "Tai Le"},
ranges = {
0x1040, 0x1049,
0x1950, 0x196D,
0x1970, 0x1974,
},
spaces = false,
}
m["Talu"] = process_ranges{
"New Tai Lue",
3498863,
"abugida",
ranges = {
0x1980, 0x19AB,
0x19B0, 0x19C9,
0x19D0, 0x19DA,
0x19DE, 0x19DF,
},
spaces = false,
}
m["Taml"] = process_ranges{
"Tamil",
26803,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0B82, 0x0B83,
0x0B85, 0x0B8A,
0x0B8E, 0x0B90,
0x0B92, 0x0B95,
0x0B99, 0x0B9A,
0x0B9C, 0x0B9C,
0x0B9E, 0x0B9F,
0x0BA3, 0x0BA4,
0x0BA8, 0x0BAA,
0x0BAE, 0x0BB9,
0x0BBE, 0x0BC2,
0x0BC6, 0x0BC8,
0x0BCA, 0x0BCD,
0x0BD0, 0x0BD0,
0x0BD7, 0x0BD7,
0x0BE6, 0x0BFA,
0x1CDA, 0x1CDA,
0xA8F3, 0xA8F3,
0x11301, 0x11301,
0x11303, 0x11303,
0x1133B, 0x1133C,
0x11FC0, 0x11FF1,
0x11FFF, 0x11FFF,
},
normalizationFixes = handle_normalization_fixes{
from = {"அூ", "ஸ்ரீ"},
to = {"ஆ", "ஶ்ரீ"}
},
}
m["Tang"] = process_ranges{
"Tangut",
1373610,
"logography, syllabary",
ranges = {
0x31EF, 0x31EF,
0x16FE0, 0x16FE0,
0x17000, 0x187F7,
0x18800, 0x18AFF,
0x18D00, 0x18D08,
},
spaces = false,
translit = "txg-translit",
}
m["Tavt"] = process_ranges{
"Tai Viet",
11818517,
"abugida",
ranges = {
0xAA80, 0xAAC2,
0xAADB, 0xAADF,
},
spaces = false,
}
m["Tayo"] = process_ranges{
"Lai Tay",
16306701,
"abugida",
aliases = {"Tai Yo"},
direction = "vertical-rtl",
ranges = {
0x1E6C0, 0x1E6DE,
0x1E6E0, 0x1E6F5,
0x1E6FE, 0x1E6FF,
},
spaces = false,
}
m["Telu"] = process_ranges{
"Telugu",
570450,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0C00, 0x0C0C,
0x0C0E, 0x0C10,
0x0C12, 0x0C28,
0x0C2A, 0x0C39,
0x0C3C, 0x0C44,
0x0C46, 0x0C48,
0x0C4A, 0x0C4D,
0x0C55, 0x0C56,
0x0C58, 0x0C5A,
0x0C5D, 0x0C5D,
0x0C60, 0x0C63,
0x0C66, 0x0C6F,
0x0C77, 0x0C7F,
0x1CDA, 0x1CDA,
0x1CF2, 0x1CF2,
},
normalizationFixes = handle_normalization_fixes{
from = {"ఒౌ", "ఒౕ", "ిౕ", "ెౕ", "ొౕ"},
to = {"ఔ", "ఓ", "ీ", "ే", "ో"}
},
}
m["Teng"] = {
"Tengwar",
473725,
}
m["Tfng"] = process_ranges{
"Tifinagh",
208503,
"abjad, alphabet",
ranges = {
0x2D30, 0x2D67,
0x2D6F, 0x2D70,
0x2D7F, 0x2D7F,
},
other_names = {"Libyco-Berber", "Berber"}, -- per Wikipedia, Libyco-Berber is the parent
}
m["Tglg"] = process_ranges{
"Baybayin",
812124,
"abugida",
aliases = {"Tagalog"},
varieties = {"Badlit", "Basahan", "Kur-itan"},
ranges = {
0x1700, 0x1715,
0x171F, 0x171F,
0x1735, 0x1736,
},
}
m["Thaa"] = process_ranges{
"Thaana",
877906,
"abugida",
ranges = {
0x060C, 0x060C,
0x061B, 0x061C,
0x061F, 0x061F,
0x0660, 0x0669,
0x0780, 0x07B1,
0xFDF2, 0xFDF2,
0xFDFD, 0xFDFD,
},
direction = "rtl",
}
m["Thai"] = process_ranges{
"Thai",
236376,
"abugida",
ranges = {
0x0E01, 0x0E3A,
0x0E40, 0x0E5B,
},
spaces = false,
}
do
local Tibt_displaytext = {
from = {"ༀ", "༌", "།།", "༚༚", "༚༝", "༝༚", "༝༝", "ཷ", "ཹ", "ེེ", "ོོ"},
to = {"ཨོཾ", "་", "༎", "༛", "༟", "࿎", "༞", "ྲཱྀ", "ླཱྀ", "ཻ", "ཽ"}
}
m["Tibt"] = process_ranges{
"Tibetan",
46861,
"abugida",
ranges = {
0x0F00, 0x0F47,
0x0F49, 0x0F6C,
0x0F71, 0x0F97,
0x0F99, 0x0FBC,
0x0FBE, 0x0FCC,
0x0FCE, 0x0FD4,
0x0FD9, 0x0FDA,
0x3008, 0x300B,
},
normalizationFixes = handle_normalization_fixes{
combiningClasses = {["༹"] = 1},
from = {"ཷ", "ཹ"},
to = {"ྲཱྀ", "ླཱྀ"}
},
display_text = Tibt_displaytext,
strip_diacritics = Tibt_displaytext,
sort_key = "Tibt-sortkey",
translit = "Tibt-translit",
}
m["sit-tam-Tibt"] = {
"Tamyig",
109875213,
m["Tibt"][3],
-- There is no inheritance of properties currently implemented for scripts. Per [[User:Theknightwho]], this
-- is because it's tricky to do since there are several types of child scripts: those that are mere display
-- variants (like fa-Arab), which should be eliminated in favor of CSS language selectors to
-- handle the font differences; those that are genuinely different scripts that happen to share the same
-- Unicode codepoints but have mostly different properties (e.g. Manchu vs. Mongolian); and those that are
-- somewhere in between (like Tamyig vs. Tibetan). As a result, we currently have to manually specify
-- which properties we want inherited as follows.
ranges = m["Tibt"].ranges,
characters = m["Tibt"].characters,
parent = "Tibt",
normalizationFixes = m["Tibt"].normalizationFixes,
display_text = m["Tibt"].display_text,
strip_diacritics = m["Tibt"].strip_diacritics,
sort_key = m["Tibt"].sort_key,
translit = m["Tibt"].translit,
}
end
m["Tirh"] = process_ranges{
"Tirhuta",
1765752,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x1CF2, 0x1CF2,
0xA830, 0xA839,
0x11480, 0x114C7,
0x114D0, 0x114D9,
},
normalizationFixes = handle_normalization_fixes{
from = {"𑒁𑒰", "𑒋𑒺", "𑒍𑒺", "𑒪𑒵", "𑒪𑒶"},
to = {"𑒂", "𑒌", "𑒎", "𑒉", "𑒊"}
},
}
m["Tnsa"] = process_ranges{
"Tangsa",
105576311,
"alphabet",
ranges = {
0x16A70, 0x16ABE,
0x16AC0, 0x16AC9,
},
}
m["Todr"] = process_ranges{
"Todhri",
10274731,
"alphabet",
direction = "rtl",
ranges = {
0x105C0, 0x105F3,
},
}
m["Tols"] = {
"Tolong Siki",
4459822,
"alphabet",
-- Not in Unicode
}
m["Toto"] = process_ranges{
"Toto",
104837516,
"abugida",
ranges = {
0x1E290, 0x1E2AE,
},
}
m["Tutg"] = process_ranges{
"Tigalari",
2604990,
"abugida",
aliases = {"Tulu"},
ranges = {
0x1CF2, 0x1CF2,
0x1CF4, 0x1CF4,
0xA8F1, 0xA8F1,
0x11380, 0x11389,
0x1138B, 0x1138B,
0x1138E, 0x1138E,
0x11390, 0x113B5,
0x113B7, 0x113C0,
0x113C2, 0x113C2,
0x113C5, 0x113C5,
0x113C7, 0x113CA,
0x113CC, 0x113D5,
0x113D7, 0x113D8,
0x113E1, 0x113E2,
},
}
m["Ugar"] = process_ranges{
"Ugaritic",
332652,
"abjad",
ranges = {
0x10380, 0x1039D,
0x1039F, 0x1039F,
},
}
m["Vaii"] = process_ranges{
"Vai",
523078,
"syllabary",
ranges = {
0xA500, 0xA62B,
},
}
m["Visp"] = {
"Visible Speech",
1303365,
"alphabet",
-- Not in Unicode
}
m["Vith"] = process_ranges{
"Vithkuqi",
3301993,
"alphabet",
ranges = {
0x10570, 0x1057A,
0x1057C, 0x1058A,
0x1058C, 0x10592,
0x10594, 0x10595,
0x10597, 0x105A1,
0x105A3, 0x105B1,
0x105B3, 0x105B9,
0x105BB, 0x105BC,
},
capitalized = true,
}
m["Wara"] = process_ranges{
"Varang Kshiti",
79199,
aliases = {"Warang Citi"},
ranges = {
0x118A0, 0x118F2,
0x118FF, 0x118FF,
},
capitalized = true,
}
m["Wcho"] = process_ranges{
"Wancho",
33713728,
"alphabet",
ranges = {
0x1E2C0, 0x1E2F9,
0x1E2FF, 0x1E2FF,
},
}
m["Wole"] = {
"Woleai",
6643710,
"syllabary",
-- Not in Unicode
}
m["Xpeo"] = process_ranges{
"Old Persian",
1471822,
ranges = {
0x103A0, 0x103C3,
0x103C8, 0x103D5,
},
}
m["Xsux"] = process_ranges{
"Cuneiform",
401,
aliases = {"Sumero-Akkadian Cuneiform"},
ranges = {
0x12000, 0x12399,
0x12400, 0x1246E,
0x12470, 0x12474,
0x12480, 0x12543,
},
}
m["Yezi"] = process_ranges{
"Yezidi",
13175481,
"alphabet",
ranges = {
0x060C, 0x060C,
0x061B, 0x061B,
0x061F, 0x061F,
0x0660, 0x0669,
0x10E80, 0x10EA9,
0x10EAB, 0x10EAD,
0x10EB0, 0x10EB1,
},
direction = "rtl",
}
m["Yiii"] = process_ranges{
"Yi",
1197646,
"syllabary",
ranges = {
0x3001, 0x3002,
0x3008, 0x3011,
0x3014, 0x301B,
0x30FB, 0x30FB,
0xA000, 0xA48C,
0xA490, 0xA4C6,
0xFF61, 0xFF65,
},
}
m["Zanb"] = process_ranges{
"Zanabazar Square",
50809208,
"abugida",
ranges = {
0x11A00, 0x11A47,
},
}
m["Zmth"] = process_ranges{
"mathematical notation",
1140046,
ranges = {
0x00AC, 0x00AC,
0x00B1, 0x00B1,
0x00D7, 0x00D7,
0x00F7, 0x00F7,
0x03D0, 0x03D2,
0x03D5, 0x03D5,
0x03F0, 0x03F1,
0x03F4, 0x03F6,
0x0606, 0x0608,
0x2016, 0x2016,
0x2032, 0x2034,
0x2040, 0x2040,
0x2044, 0x2044,
0x2052, 0x2052,
0x205F, 0x205F,
0x2061, 0x2064,
0x207A, 0x207E,
0x208A, 0x208E,
0x20D0, 0x20DC,
0x20E1, 0x20E1,
0x20E5, 0x20E6,
0x20EB, 0x20EF,
0x2102, 0x2102,
0x2107, 0x2107,
0x210A, 0x2113,
0x2115, 0x2115,
0x2118, 0x211D,
0x2124, 0x2124,
0x2128, 0x2129,
0x212C, 0x212D,
0x212F, 0x2131,
0x2133, 0x2138,
0x213C, 0x2149,
0x214B, 0x214B,
0x2190, 0x21A7,
0x21A9, 0x21AE,
0x21B0, 0x21B1,
0x21B6, 0x21B7,
0x21BC, 0x21DB,
0x21DD, 0x21DD,
0x21E4, 0x21E5,
0x21F4, 0x22FF,
0x2308, 0x230B,
0x2320, 0x2321,
0x237C, 0x237C,
0x239B, 0x23B5,
0x23B7, 0x23B7,
0x23D0, 0x23D0,
0x23DC, 0x23E2,
0x25A0, 0x25A1,
0x25AE, 0x25B7,
0x25BC, 0x25C1,
0x25C6, 0x25C7,
0x25CA, 0x25CB,
0x25CF, 0x25D3,
0x25E2, 0x25E2,
0x25E4, 0x25E4,
0x25E7, 0x25EC,
0x25F8, 0x25FF,
0x2605, 0x2606,
0x2640, 0x2640,
0x2642, 0x2642,
0x2660, 0x2663,
0x266D, 0x266F,
0x27C0, 0x27FF,
0x2900, 0x2AFF,
0x2B30, 0x2B44,
0x2B47, 0x2B4C,
0xFB29, 0xFB29,
0xFE61, 0xFE66,
0xFE68, 0xFE68,
0xFF0B, 0xFF0B,
0xFF1C, 0xFF1E,
0xFF3C, 0xFF3C,
0xFF3E, 0xFF3E,
0xFF5C, 0xFF5C,
0xFF5E, 0xFF5E,
0xFFE2, 0xFFE2,
0xFFE9, 0xFFEC,
0x1D400, 0x1D454,
0x1D456, 0x1D49C,
0x1D49E, 0x1D49F,
0x1D4A2, 0x1D4A2,
0x1D4A5, 0x1D4A6,
0x1D4A9, 0x1D4AC,
0x1D4AE, 0x1D4B9,
0x1D4BB, 0x1D4BB,
0x1D4BD, 0x1D4C3,
0x1D4C5, 0x1D505,
0x1D507, 0x1D50A,
0x1D50D, 0x1D514,
0x1D516, 0x1D51C,
0x1D51E, 0x1D539,
0x1D53B, 0x1D53E,
0x1D540, 0x1D544,
0x1D546, 0x1D546,
0x1D54A, 0x1D550,
0x1D552, 0x1D6A5,
0x1D6A8, 0x1D7CB,
0x1D7CE, 0x1D7FF,
0x1EE00, 0x1EE03,
0x1EE05, 0x1EE1F,
0x1EE21, 0x1EE22,
0x1EE24, 0x1EE24,
0x1EE27, 0x1EE27,
0x1EE29, 0x1EE32,
0x1EE34, 0x1EE37,
0x1EE39, 0x1EE39,
0x1EE3B, 0x1EE3B,
0x1EE42, 0x1EE42,
0x1EE47, 0x1EE47,
0x1EE49, 0x1EE49,
0x1EE4B, 0x1EE4B,
0x1EE4D, 0x1EE4F,
0x1EE51, 0x1EE52,
0x1EE54, 0x1EE54,
0x1EE57, 0x1EE57,
0x1EE59, 0x1EE59,
0x1EE5B, 0x1EE5B,
0x1EE5D, 0x1EE5D,
0x1EE5F, 0x1EE5F,
0x1EE61, 0x1EE62,
0x1EE64, 0x1EE64,
0x1EE67, 0x1EE6A,
0x1EE6C, 0x1EE72,
0x1EE74, 0x1EE77,
0x1EE79, 0x1EE7C,
0x1EE7E, 0x1EE7E,
0x1EE80, 0x1EE89,
0x1EE8B, 0x1EE9B,
0x1EEA1, 0x1EEA3,
0x1EEA5, 0x1EEA9,
0x1EEAB, 0x1EEBB,
0x1EEF0, 0x1EEF1,
},
translit = false,
}
m["Zname"] = process_ranges{
"Znamenny musical notation",
965834,
"pictography",
ranges = {
0x1CF00, 0x1CF2D,
0x1CF30, 0x1CF46,
0x1CF50, 0x1CFC3,
},
ietf_subtag = "Zsym",
translit = false,
}
m["Zsym"] = process_ranges{
"symbolic",
80071,
"pictography",
ranges = {
0x20DD, 0x20E0,
0x20E2, 0x20E4,
0x20E7, 0x20EA,
0x20F0, 0x20F0,
0x2100, 0x2101,
0x2103, 0x2106,
0x2108, 0x2109,
0x2114, 0x2114,
0x2116, 0x2117,
0x211E, 0x2123,
0x2125, 0x2127,
0x212A, 0x212B,
0x212E, 0x212E,
0x2132, 0x2132,
0x2139, 0x213B,
0x214A, 0x214A,
0x214C, 0x214F,
0x21A8, 0x21A8,
0x21AF, 0x21AF,
0x21B2, 0x21B5,
0x21B8, 0x21BB,
0x21DC, 0x21DC,
0x21DE, 0x21E3,
0x21E6, 0x21F3,
0x2300, 0x2307,
0x230C, 0x231F,
0x2322, 0x237B,
0x237D, 0x239A,
0x23B6, 0x23B6,
0x23B8, 0x23CF,
0x23D1, 0x23DB,
0x23E3, 0x23FF,
0x2500, 0x259F,
0x25A2, 0x25AD,
0x25B8, 0x25BB,
0x25C2, 0x25C5,
0x25C8, 0x25C9,
0x25CC, 0x25CE,
0x25D4, 0x25E1,
0x25E3, 0x25E3,
0x25E5, 0x25E6,
0x25ED, 0x25F7,
0x2600, 0x2604,
0x2607, 0x263F,
0x2641, 0x2641,
0x2643, 0x265F,
0x2664, 0x266C,
0x2670, 0x27BF,
0x2B00, 0x2B2F,
0x2B45, 0x2B46,
0x2B4D, 0x2B73,
0x2B76, 0x2B95,
0x2B97, 0x2BFF,
0x4DC0, 0x4DFF,
0x1F000, 0x1F02B,
0x1F030, 0x1F093,
0x1F0A0, 0x1F0AE,
0x1F0B1, 0x1F0BF,
0x1F0C1, 0x1F0CF,
0x1F0D1, 0x1F0F5,
0x1F300, 0x1F6D7,
0x1F6DC, 0x1F6EC,
0x1F6F0, 0x1F6FC,
0x1F700, 0x1F776,
0x1F77B, 0x1F7D9,
0x1F7E0, 0x1F7EB,
0x1F7F0, 0x1F7F0,
0x1F800, 0x1F80B,
0x1F810, 0x1F847,
0x1F850, 0x1F859,
0x1F860, 0x1F887,
0x1F890, 0x1F8AD,
0x1F8B0, 0x1F8B1,
0x1F900, 0x1FA53,
0x1FA60, 0x1FA6D,
0x1FA70, 0x1FA7C,
0x1FA80, 0x1FA88,
0x1FA90, 0x1FABD,
0x1FABF, 0x1FAC5,
0x1FACE, 0x1FADB,
0x1FAE0, 0x1FAE8,
0x1FAF0, 0x1FAF8,
0x1FB00, 0x1FB92,
0x1FB94, 0x1FBCA,
0x1FBF0, 0x1FBF9,
},
translit = false,
character_category = false, -- none
}
m["Zxxx"] = {
"unwritten",
104839715,
-- This should not have any characters listed
translit = false,
character_category = false, -- none
}
m["Zyyy"] = {
"undetermined",
104839687,
-- This should not have any characters listed, probably
translit = false,
character_category = false, -- none
}
m["Zzzz"] = {
"uncoded",
104839675,
-- This should not have any characters listed
translit = false,
character_category = false, -- none
}
-- These should be defined after the scripts they are composed of.
m["Hrkt"] = process_ranges{
"Kana",
187659,
"syllabary",
aliases = {"Japanese syllabaries"},
ranges = union(
m["Hira"].ranges,
m["Kana"].ranges
),
spaces = false,
}
m["Jpan"] = process_ranges{
"Japanese",
190502,
"logography, syllabary",
ranges = union(
m["Hrkt"].ranges,
m["Hani"].ranges,
m["Latn"].ranges
),
spaces = false,
sort_by_scraping = true,
}
m["Kore"] = process_ranges{
"Korean",
711797,
"logography, syllabary",
ranges = union(
m["Hang"].ranges,
m["Hani"].ranges,
m["Latn"].ranges
),
-- `漢字(한자)`→`漢字`
-- `가-나-다`→`가나다`, `가--나--다`→`가-나-다`
-- `온돌(溫突/溫堗)`→`온돌` ([[ondol]])
strip_diacritics = {
remove_diacritics = u(0x302E) .. u(0x302F),
from = {"([" .. m["Hani"].characters .. "])%(.-%)", "^%-", "%-$", "%-(%-?)", "\1", "%([" .. m["Hani"].characters .. "/]+%)"},
to = {"%1", "\1", "\1", "%1", "-"}
}
}
return require("Module:languages").finalizeData(m, "script")
9sspbdakjsd6y1scsky44ytlagvjvy1
373547
373507
2026-09-11T10:11:22Z
Hakimi97
2668
Penyetempatan nama tulisan dan kategori sistem tulisannya
373547
Scribunto
text/plain
--[=[
When adding new scripts to this file, please don't forget to add
style definitons for the script in [[MediaWiki:Gadget-LanguagesAndScripts.css]].
]=]
local concat = table.concat
local insert = table.insert
local ipairs = ipairs
local next = next
local remove = table.remove
local select = select
local sort = table.sort
-- Loaded on demand, as it may not be needed (depending on the data).
local function u(...)
u = require("Module:string/char")
return u(...)
end
-- We can't use mw.loadData() on [[Module:languages/chars]] because [[Module:languages/data]] itself is sometimes loaded
-- using mw.loadData(), and calling mw.loadData() on [[Module:languages/chars]] will insert metatables into the
-- character tables, which the second mw.loadData() will choke on.
local m_chars = require("Module:languages/chars")
local c = m_chars.chars
local p = m_chars.puaChars
local cs = m_chars.chars_substitutions
------------------------------------------------------------------------------------
--
-- Helper functions
--
------------------------------------------------------------------------------------
-- Note: a[2] > b[2] means opens are sorted before closes if otherwise equal.
local function sort_ranges(a, b)
return a[1] < b[1] or a[1] == b[1] and a[2] > b[2]
end
-- Returns the union of two or more range tables.
local function union(...)
local ranges = {}
for i = 1, select("#", ...) do
local argt = select(i, ...)
for j, v in ipairs(argt) do
insert(ranges, {v, j % 2 == 1 and 1 or -1})
end
end
sort(ranges, sort_ranges)
local ret, i = {}, 0
for _, range in ipairs(ranges) do
i = i + range[2]
if i == 0 and range[2] == -1 then -- close
insert(ret, range[1])
elseif i == 1 and range[2] == 1 then -- open
if ret[#ret] and range[1] <= ret[#ret] + 1 then
remove(ret) -- merge adjacent ranges
else
insert(ret, range[1])
end
end
end
return ret
end
-- Adds the `characters` key, which is determined by a script's `ranges` table.
local function process_ranges(sc)
local ranges, chars = sc.ranges, {}
for i = 2, #ranges, 2 do
if ranges[i] == ranges[i - 1] then
insert(chars, u(ranges[i]))
else
insert(chars, u(ranges[i - 1]))
if ranges[i] > ranges[i - 1] + 1 then
insert(chars, "-")
end
insert(chars, u(ranges[i]))
end
end
sc.characters = concat(chars)
ranges.n = #ranges
return sc
end
local function handle_normalization_fixes(fixes)
local combiningClasses = fixes.combiningClasses
if combiningClasses then
local chars, i = {}, 0
for char in next, combiningClasses do
i = i + 1
chars[i] = char
end
fixes.combiningClassCharacters = concat(chars)
end
return fixes
end
------------------------------------------------------------------------------------
--
-- Data
--
------------------------------------------------------------------------------------
local m = {}
m["Adlm"] = process_ranges{
"Adlam",
19606346,
"alfabet",
ranges = {
0x061F, 0x061F,
0x0640, 0x0640,
0x1E900, 0x1E94B,
0x1E950, 0x1E959,
0x1E95E, 0x1E95F,
},
capitalized = true,
direction = "rtl",
}
m["Afak"] = {
"Afaka",
382019,
"sukukataan",
-- Not in Unicode
}
m["Aghb"] = process_ranges{
"Albania Kaukasus",
2495716,
"alfabet",
ranges = {
0x10530, 0x10563,
0x1056F, 0x1056F,
},
}
m["Ahom"] = process_ranges{
"Ahom",
2839633,
"abugida",
ranges = {
0x11700, 0x1171A,
0x1171D, 0x1172B,
0x11730, 0x11746,
},
}
m["Arab"] = process_ranges{
"Arab",
1828555,
"abjad", -- more precisely, impure abjad
varieties = {"Jawi", "Perso-Arabic", "Sulat Sūg"},
ranges = {
0x0600, 0x06FF,
0x0750, 0x077F,
0x0870, 0x088E,
0x0890, 0x0891,
0x0897, 0x08E1,
0x08E3, 0x08FF,
0xFB50, 0xFBC2,
0xFBD3, 0xFD8F,
0xFD92, 0xFDC7,
0xFDCF, 0xFDCF,
0xFDF0, 0xFDFF,
0xFE70, 0xFE74,
0xFE76, 0xFEFC,
0x102E0, 0x102FB,
0x10E60, 0x10E7E,
0x10EC2, 0x10EC4,
0x10EFC, 0x10EFF,
0x1EE00, 0x1EE03,
0x1EE05, 0x1EE1F,
0x1EE21, 0x1EE22,
0x1EE24, 0x1EE24,
0x1EE27, 0x1EE27,
0x1EE29, 0x1EE32,
0x1EE34, 0x1EE37,
0x1EE39, 0x1EE39,
0x1EE3B, 0x1EE3B,
0x1EE42, 0x1EE42,
0x1EE47, 0x1EE47,
0x1EE49, 0x1EE49,
0x1EE4B, 0x1EE4B,
0x1EE4D, 0x1EE4F,
0x1EE51, 0x1EE52,
0x1EE54, 0x1EE54,
0x1EE57, 0x1EE57,
0x1EE59, 0x1EE59,
0x1EE5B, 0x1EE5B,
0x1EE5D, 0x1EE5D,
0x1EE5F, 0x1EE5F,
0x1EE61, 0x1EE62,
0x1EE64, 0x1EE64,
0x1EE67, 0x1EE6A,
0x1EE6C, 0x1EE72,
0x1EE74, 0x1EE77,
0x1EE79, 0x1EE7C,
0x1EE7E, 0x1EE7E,
0x1EE80, 0x1EE89,
0x1EE8B, 0x1EE9B,
0x1EEA1, 0x1EEA3,
0x1EEA5, 0x1EEA9,
0x1EEAB, 0x1EEBB,
0x1EEF0, 0x1EEF1,
},
direction = "rtl",
normalizationFixes = handle_normalization_fixes{
from = {"ٳ"},
to = {"اٟ"}
},
}
m["Aran"] = {
{
hnd = "Shahmukhi", -- Southern Hindko
hno = "Shahmukhi", -- Northern Hindko
["inc-opa"] = "Shahmukhi", -- Old Punjabi
lah = "Shahmukhi", -- Lahnda
pa = "Shahmukhi", -- Punjabi
phr = "Shahmukhi", -- Pahari-Potwari
skr = "Shahmukhi", -- Saraiki
default = "Arab",
},
1133121, -- FIXME: 133800 for Shahmukhi
m["Arab"][3],
ranges = m["Arab"].ranges,
characters = m["Arab"].characters,
aliases = {"Nastaliq", "Nastaleeq"},
direction = "rtl",
parent = "Arab",
normalizationFixes = m["Arab"].normalizationFixes,
}
m["Armi"] = process_ranges{
"Aram Imperial",
26978,
"abjad",
ranges = {
0x10840, 0x10855,
0x10857, 0x1085F,
},
direction = "rtl",
}
m["Armn"] = process_ranges{
"Armenia",
11932,
"alfabet",
ranges = {
0x0531, 0x0556,
0x0559, 0x058A,
0x058D, 0x058F,
0xFB13, 0xFB17,
},
capitalized = true,
translit = "Armn-translit",
}
m["Avst"] = process_ranges{
"Avesta",
790681,
"alfabet",
ranges = {
0x10B00, 0x10B35,
0x10B39, 0x10B3F,
},
direction = "rtl",
}
m["pal-Avst"] = {
"Pazend",
4925073,
m["Avst"][3],
ranges = m["Avst"].ranges,
characters = m["Avst"].characters,
direction = "rtl",
parent = "Avst",
}
m["Bali"] = process_ranges{
"Bali",
804984,
"abugida",
ranges = {
0x1B00, 0x1B4C,
0x1B4E, 0x1B7F,
},
}
m["Bamu"] = process_ranges{
"Bamum",
806024,
"sukukataan",
ranges = {
0xA6A0, 0xA6F7,
0x16800, 0x16A38,
},
}
m["Bass"] = process_ranges{
"Bassa",
810458,
"alfabet",
aliases = {"Bassa Vah", "Vah"},
ranges = {
0x16AD0, 0x16AED,
0x16AF0, 0x16AF5,
},
}
m["Batk"] = process_ranges{
"Batak",
51592,
"abugida",
ranges = {
0x1BC0, 0x1BF3,
0x1BFC, 0x1BFF,
},
}
m["Beng"] = process_ranges{
"Bengali",
756802,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0980, 0x0983,
0x0985, 0x098C,
0x098F, 0x0990,
0x0993, 0x09A8,
0x09AA, 0x09B0,
0x09B2, 0x09B2,
0x09B6, 0x09B9,
0x09BC, 0x09C4,
0x09C7, 0x09C8,
0x09CB, 0x09CE,
0x09D7, 0x09D7,
0x09DC, 0x09DD,
0x09DF, 0x09E3,
0x09E6, 0x09EF,
0x09F2, 0x09FE,
0x1CD0, 0x1CD0,
0x1CD2, 0x1CD2,
0x1CD5, 0x1CD6,
0x1CD8, 0x1CD8,
0x1CE1, 0x1CE1,
0x1CEA, 0x1CEA,
0x1CED, 0x1CED,
0x1CF2, 0x1CF2,
0x1CF5, 0x1CF7,
0xA8F1, 0xA8F1,
},
normalizationFixes = handle_normalization_fixes{
from = {"অা", "ঋৃ", "ঌৢ"},
to = {"আ", "ৠ", "ৡ"}
},
}
m["as-Beng"] = process_ranges{
"Assam",
191272,
m["Beng"][3],
other_names = {"Eastern Nagari"},
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0980, 0x0983,
0x0985, 0x098C,
0x098F, 0x0990,
0x0993, 0x09A8,
0x09AA, 0x09AF,
0x09B2, 0x09B2,
0x09B6, 0x09B9,
0x09BC, 0x09C4,
0x09C7, 0x09C8,
0x09CB, 0x09CE,
0x09D7, 0x09D7,
0x09DC, 0x09DD,
0x09DF, 0x09E3,
0x09E6, 0x09FE,
0x1CD0, 0x1CD0,
0x1CD2, 0x1CD2,
0x1CD5, 0x1CD6,
0x1CD8, 0x1CD8,
0x1CE1, 0x1CE1,
0x1CEA, 0x1CEA,
0x1CED, 0x1CED,
0x1CF2, 0x1CF2,
0x1CF5, 0x1CF7,
0xA8F1, 0xA8F1,
},
normalizationFixes = m["Beng"].normalizationFixes,
}
m["Bhks"] = process_ranges{
"Bhaiksuki",
17017839,
"abugida",
ranges = {
0x11C00, 0x11C08,
0x11C0A, 0x11C36,
0x11C38, 0x11C45,
0x11C50, 0x11C6C,
},
}
m["Blis"] = {
"Blissymbolic",
609817,
"logogram",
aliases = {"Blissymbols"},
-- Not in Unicode
}
m["Bopo"] = process_ranges{
"Zhuyin",
198269,
"sukukataan separa",
aliases = {"Zhuyin Fuhao", "Bopomofo"},
ranges = {
0x02EA, 0x02EB,
0x3001, 0x3003,
0x3008, 0x3011,
0x3013, 0x301F,
0x302A, 0x302D,
0x3030, 0x3030,
0x3037, 0x3037,
0x30FB, 0x30FB,
0x3105, 0x312F,
0x31A0, 0x31BF,
0xFE45, 0xFE46,
0xFF61, 0xFF65,
},
}
m["Brah"] = process_ranges{
"Brahmi",
185083,
"abugida",
ranges = {
0x11000, 0x1104D,
0x11052, 0x11075,
0x1107F, 0x1107F,
},
normalizationFixes = handle_normalization_fixes{
from = {"𑀅𑀸", "𑀋𑀾", "𑀏𑁂"},
to = {"𑀆", "𑀌", "𑀐"}
},
translit = "Brah-translit",
}
m["Brai"] = process_ranges{
"Braille",
79894,
"alfabet",
ranges = {
0x2800, 0x28FF,
},
}
m["Bugi"] = process_ranges{
"Lontara",
1074947,
"abugida",
aliases = {"Buginese"},
ranges = {
0x1A00, 0x1A1B,
0x1A1E, 0x1A1F,
0xA9CF, 0xA9CF,
},
}
m["Buhd"] = process_ranges{
"Buhid",
1002969,
"abugida",
ranges = {
0x1735, 0x1736,
0x1740, 0x1751,
0x1752, 0x1753,
},
}
m["Cakm"] = process_ranges{
"Chakma",
1059328,
"abugida",
ranges = {
0x09E6, 0x09EF,
0x1040, 0x1049,
0x11100, 0x11134,
0x11136, 0x11147,
},
}
m["Cans"] = process_ranges{
"Suku Kata Kanada",
2479183,
"abugida",
ranges = {
0x1400, 0x167F,
0x18B0, 0x18F5,
0x11AB0, 0x11ABF,
},
}
m["Cari"] = process_ranges{
"Carian",
1094567,
"alfabet",
ranges = {
0x102A0, 0x102D0,
},
}
m["Cham"] = process_ranges{
"Cham",
1060381,
"abugida",
ranges = {
0xAA00, 0xAA36,
0xAA40, 0xAA4D,
0xAA50, 0xAA59,
0xAA5C, 0xAA5F,
},
}
m["Cher"] = process_ranges{
"Cherokee",
26549,
"sukukataan",
ranges = {
0x13A0, 0x13F5,
0x13F8, 0x13FD,
0xAB70, 0xABBF,
},
}
m["Chis"] = {
"Chisoi",
123173777,
"abugida",
-- Not in Unicode
}
m["Chrs"] = process_ranges{
"Khwarezmian",
72386710,
"abjad",
aliases = {"Chorasmian"},
ranges = {
0x10FB0, 0x10FCB,
},
direction = "rtl",
}
m["Copt"] = process_ranges{
"Qibti",
321083,
"alfabet",
ranges = {
0x03E2, 0x03EF,
0x2C80, 0x2CF3,
0x2CF9, 0x2CFF,
0x102E0, 0x102FB,
},
capitalized = true,
}
m["Cpmn"] = process_ranges{
"Cypro-Minoan",
1751985,
"sukukataan",
aliases = {"Cypro Minoan"},
ranges = {
0x10100, 0x10101,
0x12F90, 0x12FF2,
},
}
m["Cprt"] = process_ranges{
"Cyprus",
1757689,
"sukukataan",
ranges = {
0x10100, 0x10102,
0x10107, 0x10133,
0x10137, 0x1013F,
0x10800, 0x10805,
0x10808, 0x10808,
0x1080A, 0x10835,
0x10837, 0x10838,
0x1083C, 0x1083C,
0x1083F, 0x1083F,
},
direction = "rtl",
}
m["Cyrl"] = process_ranges{
"Cyril",
8209,
"alfabet",
ranges = {
0x0400, 0x052F,
0x1C80, 0x1C8A,
0x1D2B, 0x1D2B,
0x1D78, 0x1D78,
0x1DF8, 0x1DF8,
0x2DE0, 0x2DFF,
0x2E43, 0x2E43,
0xA640, 0xA69F,
0xFE2E, 0xFE2F,
0x1E030, 0x1E06D,
0x1E08F, 0x1E08F,
},
capitalized = true,
}
m["Cyrs"] = {
"Cyril Kuno",
442244,
m["Cyrl"][3],
aliases = {"Early Cyrillic"},
ranges = m["Cyrl"].ranges,
characters = m["Cyrl"].characters,
capitalized = m["Cyrl"].capitalized,
wikipedia_article = "Early Cyrillic alphabet",
normalizationFixes = handle_normalization_fixes{
from = {"Ѹ", "ѹ"},
to = {"Ꙋ", "ꙋ"}
},
strip_diacritics = {remove_diacritics = cs.Cyrs_remove_diacritics},
sort_key = {
remove_diacritics = cs.Cyrs_remove_diacritics,
from = {
"ї", "оу", -- 2 chars
"[ґꙣєѕꙃꙅꙁіꙇђꙉѻꙩꙫꙭꙮꚙꚛꙋѡѿꙍѽꙑѣꙗѥꙕѧꙙѩꙝꙛѫѭѯѱѳѵҁ]"
},
to = {
"и" .. p[1], "у", {
["ґ"] = "г" .. p[1], ["ꙣ"] = "д" .. p[1], ["є"] = "е", ["ѕ"] = "ж" .. p[1], ["ꙃ"] = "ж" .. p[1],
["ꙅ"] = "ж" .. p[1], ["ꙁ"] = "з", ["і"] = "и" .. p[1], ["ꙇ"] = "и" .. p[1], ["ђ"] = "и" .. p[2],
["ꙉ"] = "и" .. p[2], ["ѻ"] = "о", ["ꙩ"] = "о", ["ꙫ"] = "о", ["ꙭ"] = "о",
["ꙮ"] = "о", ["ꚙ"] = "о", ["ꚛ"] = "о", ["ꙋ"] = "у", ["ѡ"] = "х" .. p[1],
["ѿ"] = "х" .. p[1], ["ꙍ"] = "х" .. p[1], ["ѽ"] = "х" .. p[1], ["ꙑ"] = "ы", ["ѣ"] = "ь" .. p[1],
["ꙗ"] = "ь" .. p[2], ["ѥ"] = "ь" .. p[3], ["ꙕ"] = "ю", ["ѧ"] = "я", ["ꙙ"] = "я",
["ѩ"] = "я" .. p[1], ["ꙝ"] = "я" .. p[1], ["ꙛ"] = "я" .. p[2], ["ѫ"] = "я" .. p[3], ["ѭ"] = "я" .. p[4],
["ѯ"] = "я" .. p[5], ["ѱ"] = "я" .. p[6], ["ѳ"] = "я" .. p[7], ["ѵ"] = "я" .. p[8], ["ҁ"] = "я" .. p[9],
}
},
}
}
m["Deva"] = process_ranges{
{
ahr = "Balbodh", -- Ahirani
kfq = "Balbodh", -- Korku
kok = "Balbodh", -- Konkani
mr = "Balbodh", -- Marathi
omr = "Balbodh", -- Old Marathi
vah = "Balbodh", -- Varhadi
default = "Devanagari",
},
38592, -- FIXME: 16948817 for Balbodh
"abugida",
ranges = {
0x0900, 0x097F,
0x1CD0, 0x1CF6,
0x1CF8, 0x1CF9,
0x20F0, 0x20F0,
0xA830, 0xA839,
0xA8E0, 0xA8FF,
0x11B00, 0x11B09,
},
normalizationFixes = handle_normalization_fixes{
from = {"ॆॆ", "ेे", "ाॅ", "ाॆ", "ाꣿ", "ॊॆ", "ाे", "ाै", "ोे", "ाऺ", "ॖॖ", "अॅ", "अॆ", "अा", "एॅ", "एॆ", "एे", "एꣿ", "ऎॆ", "अॉ", "आॅ", "अॊ", "आॆ", "अो", "आे", "अौ", "आै", "ओे", "अऺ", "अऻ", "आऺ", "अाꣿ", "आꣿ", "ऒॆ", "अॖ", "अॗ", "ॶॖ", "्?ा"},
to = {"ꣿ", "ै", "ॉ", "ॊ", "ॏ", "ॏ", "ो", "ौ", "ौ", "ऻ", "ॗ", "ॲ", "ऄ", "आ", "ऍ", "ऎ", "ऐ", "ꣾ", "ꣾ", "ऑ", "ऑ", "ऒ", "ऒ", "ओ", "ओ", "औ", "औ", "औ", "ॳ", "ॴ", "ॴ", "ॵ", "ॵ", "ॵ", "ॶ", "ॷ", "ॷ"}
},
}
m["Diak"] = process_ranges{
"Dhives Akuru",
3307073,
"abugida",
aliases = {"Dhivehi Akuru", "Dives Akuru", "Divehi Akuru"},
ranges = {
0x11900, 0x11906,
0x11909, 0x11909,
0x1190C, 0x11913,
0x11915, 0x11916,
0x11918, 0x11935,
0x11937, 0x11938,
0x1193B, 0x11946,
0x11950, 0x11959,
},
}
m["Dogr"] = process_ranges{
"Dogra",
72402987,
"abugida",
ranges = {
0x0964, 0x096F,
0xA830, 0xA839,
0x11800, 0x1183B,
},
}
m["Dsrt"] = process_ranges{
"Deseret",
1200582,
"alfabet",
ranges = {
0x10400, 0x1044F,
},
capitalized = true,
}
m["Dupl"] = process_ranges{
"Duployan",
5316025,
"alfabet",
ranges = {
0x1BC00, 0x1BC6A,
0x1BC70, 0x1BC7C,
0x1BC80, 0x1BC88,
0x1BC90, 0x1BC99,
0x1BC9C, 0x1BCA3,
},
}
m["Egyd"] = {
"Demotik",
188519,
"abjad, logogram",
-- Not in Unicode
}
m["Egyh"] = {
"Hieratik",
208111,
"abjad, logogram",
-- Unified with Egyptian hieroglyphic in Unicode
}
m["Egyp"] = process_ranges{
"Hieroglif Mesir",
132659,
"abjad, logogram",
ranges = {
0x13000, 0x13455,
0x13460, 0x143FA,
},
varieties = {"Hieratic"},
wikipedia_article = "Egyptian hieroglyphs",
normalizationFixes = handle_normalization_fixes{
from = {"𓃁", "𓆖"},
to = {"𓃀𓂝", "𓆓𓏏𓇿"}
},
}
m["Elba"] = process_ranges{
"Elbasan",
1036714,
"alfabet",
ranges = {
0x10500, 0x10527,
},
}
m["Elym"] = process_ranges{
"Elymaic",
60744423,
"abjad",
ranges = {
0x10FE0, 0x10FF6,
},
direction = "rtl",
}
m["Ethi"] = process_ranges{
"Habsyah",
257634,
"abugida",
aliases = {"Ge'ez", "Geʽez"},
ranges = {
0x1200, 0x1248,
0x124A, 0x124D,
0x1250, 0x1256,
0x1258, 0x1258,
0x125A, 0x125D,
0x1260, 0x1288,
0x128A, 0x128D,
0x1290, 0x12B0,
0x12B2, 0x12B5,
0x12B8, 0x12BE,
0x12C0, 0x12C0,
0x12C2, 0x12C5,
0x12C8, 0x12D6,
0x12D8, 0x1310,
0x1312, 0x1315,
0x1318, 0x135A,
0x135D, 0x137C,
0x1380, 0x1399,
0x2D80, 0x2D96,
0x2DA0, 0x2DA6,
0x2DA8, 0x2DAE,
0x2DB0, 0x2DB6,
0x2DB8, 0x2DBE,
0x2DC0, 0x2DC6,
0x2DC8, 0x2DCE,
0x2DD0, 0x2DD6,
0x2DD8, 0x2DDE,
0xAB01, 0xAB06,
0xAB09, 0xAB0E,
0xAB11, 0xAB16,
0xAB20, 0xAB26,
0xAB28, 0xAB2E,
0x1E7E0, 0x1E7E6,
0x1E7E8, 0x1E7EB,
0x1E7ED, 0x1E7EE,
0x1E7F0, 0x1E7FE,
},
sort_key = "Ethi-sortkey",
strip_diacritics = {remove_diacritics = u(0x135D) .. u(0x135E) .. u(0x135F)}
}
m["Gara"] = process_ranges{
"Garay",
3095302,
"alfabet",
capitalized = true,
direction = "rtl",
ranges = {
0x060C, 0x060C,
0x061B, 0x061B,
0x061F, 0x061F,
0x10D40, 0x10D65,
0x10D69, 0x10D85,
0x10D8E, 0x10D8F,
},
}
m["Geok"] = process_ranges{
"Khutsuri",
1090055,
"alfabet",
ranges = { -- Ⴀ-Ⴭ is Asomtavruli, ⴀ-ⴭ is Nuskhuri
0x10A0, 0x10C5,
0x10C7, 0x10C7,
0x10CD, 0x10CD,
0x10FB, 0x10FB,
0x2D00, 0x2D25,
0x2D27, 0x2D27,
0x2D2D, 0x2D2D,
},
varieties = {"Nuskhuri", "Asomtavruli"},
capitalized = true,
translit = "Geok-translit",
}
m["Geor"] = process_ranges{
"Georgia",
3317411,
"alfabet",
ranges = { -- ა-ჿ is lowercase Mkhedruli; Ა-Ჿ is uppercase Mkhedruli (Mtavruli)
0x0589, 0x0589,
0x10D0, 0x10FF,
0x1C90, 0x1CBA,
0x1CBD, 0x1CBF,
},
varieties = {"Mkhedruli", "Mtavruli"},
capitalized = true,
translit = "Geor-translit",
}
m["Glag"] = process_ranges{
"Glagol",
145625,
"alfabet",
ranges = {
0x0484, 0x0484,
0x0487, 0x0487,
0x0589, 0x0589,
0x10FB, 0x10FB,
0x2C00, 0x2C5F,
0x2E43, 0x2E43,
0xA66F, 0xA66F,
0x1E000, 0x1E006,
0x1E008, 0x1E018,
0x1E01B, 0x1E021,
0x1E023, 0x1E024,
0x1E026, 0x1E02A,
},
capitalized = true,
}
m["Gong"] = process_ranges{
"Gunjala Gondi",
18125340,
"abugida",
ranges = {
0x0964, 0x0965,
0x11D60, 0x11D65,
0x11D67, 0x11D68,
0x11D6A, 0x11D8E,
0x11D90, 0x11D91,
0x11D93, 0x11D98,
0x11DA0, 0x11DA9,
},
}
m["Gonm"] = process_ranges{
"Masaram Gondi",
16977603,
"abugida",
ranges = {
0x0964, 0x0965,
0x11D00, 0x11D06,
0x11D08, 0x11D09,
0x11D0B, 0x11D36,
0x11D3A, 0x11D3A,
0x11D3C, 0x11D3D,
0x11D3F, 0x11D47,
0x11D50, 0x11D59,
},
}
m["Goth"] = process_ranges{
"Goth",
467784,
"alfabet",
ranges = {
0x10330, 0x1034A,
},
wikipedia_article = "Gothic alphabet",
}
m["Gran"] = process_ranges{
"Grantha",
1119274,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0BE6, 0x0BF3,
0x1CD0, 0x1CD0,
0x1CD2, 0x1CD3,
0x1CF2, 0x1CF4,
0x1CF8, 0x1CF9,
0x20F0, 0x20F0,
0x11300, 0x11303,
0x11305, 0x1130C,
0x1130F, 0x11310,
0x11313, 0x11328,
0x1132A, 0x11330,
0x11332, 0x11333,
0x11335, 0x11339,
0x1133B, 0x11344,
0x11347, 0x11348,
0x1134B, 0x1134D,
0x11350, 0x11350,
0x11357, 0x11357,
0x1135D, 0x11363,
0x11366, 0x1136C,
0x11370, 0x11374,
0x11FD0, 0x11FD1,
0x11FD3, 0x11FD3,
},
}
m["Grek"] = process_ranges{
"Yunani",
8216,
"alfabet",
ranges = {
0x0341, 0x0341,
0x0374, 0x0375,
0x037E, 0x037E,
0x0384, 0x038A,
0x038C, 0x038C,
0x038E, 0x03A1,
0x03A3, 0x03D7,
0x03DA, 0x03DB,
0x03DE, 0x03E1,
0x03F0, 0x03F1,
0x03F4, 0x03F4,
0x03FC, 0x03FC,
0x1D26, 0x1D2A,
0x1D5D, 0x1D61,
0x1D66, 0x1D6A,
0x1DBF, 0x1DBF,
0x2126, 0x2127,
0x2129, 0x2129,
0x213C, 0x2140,
0xAB65, 0xAB65,
0x10140, 0x1018E,
0x101A0, 0x101A0,
0x1D200, 0x1D245,
},
capitalized = true,
display_text = "Grek-common",
strip_diacritics = "Grek-common",
sort_key = {
remove_diacritics = "'ʼ;·`¨´῀" .. c.grave .. c.acute .. c.diaer .. c.caron .. c.turnedcommaabove .. c.commaabove .. c.revcommaabove .. c.macron .. c.breve .. c.diaerbelow .. c.brevebelow .. c.perispomeni .. c.ypogegrammeni .. c.RSQuo .. c.prime .. c.keraia .. c.lowerkeraia .. c.tonos .. c.coronis .. c.psili .. c.dasia,
from = {"ϝ", "ͷ", "ϛ", "ͱ", "ͺ", "ϳ", "ϻ", "[ϟϙ]", "[ςϲ]", "ͳ"},
to = {"ε" .. p[1], "ε" .. p[2], "ε" .. p[3], "ζ" .. p[1], "ι", "ι" .. p[1], "π" .. p[1], "π" .. p[2], "σ", "ϡ"},
},
}
m["Polyt"] = process_ranges{
"Yunani",
1475332,
m["Grek"][3],
ranges = union(m["Grek"].ranges, {
0x0340, 0x0340,
0x0342, 0x0345,
0x0370, 0x0373,
0x0376, 0x0377,
0x037A, 0x037D,
0x037F, 0x037F,
0x03D8, 0x03D9,
0x03DC, 0x03DD,
0x03F2, 0x03F3,
0x03F5, 0x03FB,
0x03FD, 0x03FF,
0x1F00, 0x1F15,
0x1F18, 0x1F1D,
0x1F20, 0x1F45,
0x1F48, 0x1F4D,
0x1F50, 0x1F57,
0x1F59, 0x1F59,
0x1F5B, 0x1F5B,
0x1F5D, 0x1F5D,
0x1F5F, 0x1F7D,
0x1F80, 0x1FB4,
0x1FB6, 0x1FC4,
0x1FC6, 0x1FD3,
0x1FD6, 0x1FDB,
0x1FDD, 0x1FEF,
0x1FF2, 0x1FF4,
0x1FF6, 0x1FFE,
}),
ietf_subtag = "Grek",
capitalized = m["Grek"].capitalized,
parent = "Grek",
display_text = m["Grek"].display_text,
strip_diacritics = "Polyt-stripdiacritics",
sort_key = m["Grek"].sort_key,
translit = "grc-translit",
}
m["Gujr"] = process_ranges{
"Gujarati",
733944,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0A81, 0x0A83,
0x0A85, 0x0A8D,
0x0A8F, 0x0A91,
0x0A93, 0x0AA8,
0x0AAA, 0x0AB0,
0x0AB2, 0x0AB3,
0x0AB5, 0x0AB9,
0x0ABC, 0x0AC5,
0x0AC7, 0x0AC9,
0x0ACB, 0x0ACD,
0x0AD0, 0x0AD0,
0x0AE0, 0x0AE3,
0x0AE6, 0x0AF1,
0x0AF9, 0x0AFF,
0xA830, 0xA839,
},
normalizationFixes = handle_normalization_fixes{
from = {"ઓ", "અાૈ", "અા", "અૅ", "અે", "અૈ", "અૉ", "અો", "અૌ", "આૅ", "આૈ", "ૅા"},
to = {"અાૅ", "ઔ", "આ", "ઍ", "એ", "ઐ", "ઑ", "ઓ", "ઔ", "ઓ", "ઔ", "ૉ"}
},
}
m["Gukh"] = process_ranges{
"Khema",
110064239,
"abugida",
aliases = {"Gurung Khema", "Khema Phri", "Khema Lipi"},
ranges = {
0x0965, 0x0965,
0x16100, 0x16139,
},
}
m["Guru"] = process_ranges{
"Gurmukhi",
689894,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0A01, 0x0A03,
0x0A05, 0x0A0A,
0x0A0F, 0x0A10,
0x0A13, 0x0A28,
0x0A2A, 0x0A30,
0x0A32, 0x0A33,
0x0A35, 0x0A36,
0x0A38, 0x0A39,
0x0A3C, 0x0A3C,
0x0A3E, 0x0A42,
0x0A47, 0x0A48,
0x0A4B, 0x0A4D,
0x0A51, 0x0A51,
0x0A59, 0x0A5C,
0x0A5E, 0x0A5E,
0x0A66, 0x0A76,
0xA830, 0xA839,
},
normalizationFixes = handle_normalization_fixes{
from = {"ਅਾ", "ਅੈ", "ਅੌ", "ੲਿ", "ੲੀ", "ੲੇ", "ੳੁ", "ੳੂ", "ੳੋ"},
to = {"ਆ", "ਐ", "ਔ", "ਇ", "ਈ", "ਏ", "ਉ", "ਊ", "ਓ"}
},
}
m["Hang"] = process_ranges{
"Hangul",
8222,
"sukukataan",
aliases = {"Hangeul"},
ranges = {
0x1100, 0x11FF,
0x3001, 0x3003,
0x3008, 0x3011,
0x3013, 0x301F,
0x302E, 0x3030,
0x3037, 0x3037,
0x30FB, 0x30FB,
0x3131, 0x318E,
0x3200, 0x321E,
0x3260, 0x327E,
0xA960, 0xA97C,
0xAC00, 0xD7A3,
0xD7B0, 0xD7C6,
0xD7CB, 0xD7FB,
0xFE45, 0xFE46,
0xFF61, 0xFF65,
0xFFA0, 0xFFBE,
0xFFC2, 0xFFC7,
0xFFCA, 0xFFCF,
0xFFD2, 0xFFD7,
0xFFDA, 0xFFDC,
},
}
m["Hani"] = process_ranges{
"Han",
8201,
"logogram",
ranges = {
0x2E80, 0x2E99,
0x2E9B, 0x2EF3,
0x2F00, 0x2FD5,
0x2FF0, 0x2FFF,
0x3001, 0x3003,
0x3005, 0x3011,
0x3013, 0x301F,
0x3021, 0x302D,
0x3030, 0x3030,
0x3037, 0x303F,
0x3190, 0x319F,
0x31C0, 0x31E5,
0x31EF, 0x31EF,
0x3220, 0x3247,
0x3280, 0x32B0,
0x32C0, 0x32CB,
0x30FB, 0x30FB,
0x32FF, 0x32FF,
0x3358, 0x3370,
0x337B, 0x337F,
0x33E0, 0x33FE,
0x3400, 0x4DBF,
0x4E00, 0x9FFF,
0xA700, 0xA707,
0xF900, 0xFA6D,
0xFA70, 0xFAD9,
0xFE45, 0xFE46,
0xFF61, 0xFF65,
0x16FE2, 0x16FE3,
0x16FF0, 0x16FF1,
0x1D360, 0x1D371,
0x1F250, 0x1F251,
0x20000, 0x2A6DF,
0x2A700, 0x2B739,
0x2B740, 0x2B81D,
0x2B820, 0x2CEA1,
0x2CEB0, 0x2EBE0,
0x2EBF0, 0x2EE5D,
0x2F800, 0x2FA1D,
0x30000, 0x3134A,
0x31350, 0x3347F,
},
varieties = {"Hanzi", "Kanji", "Hanja", "Chu Nom"},
spaces = false,
}
m["Hans"] = {
"Han Ringkas",
185614,
m["Hani"][3],
ranges = m["Hani"].ranges,
characters = m["Hani"].characters,
spaces = m["Hani"].spaces,
parent = "Hani",
}
m["Hant"] = {
"Han Tradisional",
178528,
m["Hani"][3],
ranges = m["Hani"].ranges,
characters = m["Hani"].characters,
spaces = m["Hani"].spaces,
parent = "Hani",
}
m["Hano"] = process_ranges{
"Hanunoo",
1584045,
"abugida",
aliases = {"Hanunó'o", "Hanuno'o"},
ranges = {
0x1720, 0x1736,
},
}
m["Hatr"] = process_ranges{
"Hatran",
20813038,
"abjad",
ranges = {
0x108E0, 0x108F2,
0x108F4, 0x108F5,
0x108FB, 0x108FF,
},
direction = "rtl",
}
m["Hebr"] = process_ranges{
"Ibrani",
33513,
"abjad", -- more precisely, impure abjad
ranges = {
0x0591, 0x05C7,
0x05D0, 0x05EA,
0x05EF, 0x05F4,
0x2135, 0x2138,
0xFB1D, 0xFB36,
0xFB38, 0xFB3C,
0xFB3E, 0xFB3E,
0xFB40, 0xFB41,
0xFB43, 0xFB44,
0xFB46, 0xFB4F,
},
direction = "rtl",
display_text = "Hebr-common",
sort_key = "Hebr-common",
strip_diacritics = "Hebr-common",
}
m["Hira"] = process_ranges{
"Hiragana",
48332,
"sukukataan",
ranges = {
0x3001, 0x3003,
0x3008, 0x3011,
0x3013, 0x301F,
0x3030, 0x3035,
0x3037, 0x3037,
0x303C, 0x303D,
0x3041, 0x3096,
0x3099, 0x30A0,
0x30FB, 0x30FC,
0xFE45, 0xFE46,
0xFF61, 0xFF65,
0xFF70, 0xFF70,
0xFF9E, 0xFF9F,
0x1B001, 0x1B11F,
0x1B132, 0x1B132,
0x1B150, 0x1B152,
0x1F200, 0x1F200,
},
varieties = {"Hentaigana"},
spaces = false,
}
m["Hluw"] = process_ranges{
"Hieroglif Anatolia",
521323,
"logogram, sukukataan",
ranges = {
0x14400, 0x14646,
},
wikipedia_article = "Anatolian hieroglyphs",
}
m["Hmng"] = process_ranges{
"Pahawh Hmong",
365954,
"sukukataan separa",
aliases = {"Hmong"},
ranges = {
0x16B00, 0x16B45,
0x16B50, 0x16B59,
0x16B5B, 0x16B61,
0x16B63, 0x16B77,
0x16B7D, 0x16B8F,
},
}
m["Hmnp"] = process_ranges{
"Nyiakeng Puachue Hmong",
33712499,
"alfabet",
ranges = {
0x1E100, 0x1E12C,
0x1E130, 0x1E13D,
0x1E140, 0x1E149,
0x1E14E, 0x1E14F,
},
}
m["Hung"] = process_ranges{
"Hungary Kuno",
446224,
"alfabet",
aliases = {"Hungarian runic"},
ranges = {
0x10C80, 0x10CB2,
0x10CC0, 0x10CF2,
0x10CFA, 0x10CFF,
},
capitalized = true,
direction = "rtl",
}
m["Ibrnn"] = {
"Iberia Timur Laut",
1113155,
"sukukataan separa",
ietf_subtag = "Zzzz",
-- Not in Unicode
}
m["Ibrns"] = {
"Iberia Tenggara",
2305351,
"sukukataan separa",
ietf_subtag = "Zzzz",
-- Not in Unicode
}
m["Image"] = {
-- To be used to avoid any formatting or link processing
"Kemasan Imej",
478798,
-- This should not have any characters listed
ietf_subtag = "Zyyy",
translit = false,
character_category = false, -- none
}
m["Inds"] = {
"Indus",
601388,
aliases = {"Harappan", "Indus Valley"},
}
m["Ipach"] = {
"Abjad Fonetik Antarabangsa",
21204,
aliases = {"IPA"},
ietf_subtag = "Latn",
}
m["Ital"] = process_ranges{
"Italik Kuno",
4891256,
"alfabet",
ranges = {
0x10300, 0x10323,
0x1032D, 0x1032F,
},
translit = "Ital-translit",
}
m["Java"] = process_ranges{
"Jawa",
879704,
"abugida",
ranges = {
0xA980, 0xA9CD,
0xA9CF, 0xA9D9,
0xA9DE, 0xA9DF,
},
}
m["Jurc"] = {
"Jurchen",
912240,
"logogram",
spaces = false,
}
m["Kali"] = process_ranges{
"Kayah Li",
4919239,
"abugida",
ranges = {
0xA900, 0xA92F,
},
}
m["Kana"] = process_ranges{
"Katakana",
82946,
"sukukataan",
ranges = {
0x3001, 0x3003,
0x3008, 0x3011,
0x3013, 0x301F,
0x3030, 0x3035,
0x3037, 0x3037,
0x303C, 0x303D,
0x3099, 0x309C,
0x30A0, 0x30FF,
0x31F0, 0x31FF,
0x32D0, 0x32FE,
0x3300, 0x3357,
0xFE45, 0xFE46,
0xFF61, 0xFF9F,
0x1AFF0, 0x1AFF3,
0x1AFF5, 0x1AFFB,
0x1AFFD, 0x1AFFE,
0x1B000, 0x1B000,
0x1B120, 0x1B122,
0x1B155, 0x1B155,
0x1B164, 0x1B167,
},
spaces = false,
}
m["Kawi"] = process_ranges{
"Kawi",
975802,
"abugida",
ranges = {
0x11F00, 0x11F10,
0x11F12, 0x11F3A,
0x11F3E, 0x11F5A,
},
}
m["Khar"] = process_ranges{
"Kharoshthi",
1161266,
"abugida",
ranges = {
0x10A00, 0x10A03,
0x10A05, 0x10A06,
0x10A0C, 0x10A13,
0x10A15, 0x10A17,
0x10A19, 0x10A35,
0x10A38, 0x10A3A,
0x10A3F, 0x10A48,
0x10A50, 0x10A58,
},
direction = "rtl",
}
m["Khmr"] = process_ranges{
"Khmer",
1054190,
"abugida",
ranges = {
0x1780, 0x17DD,
0x17E0, 0x17E9,
0x17F0, 0x17F9,
0x19E0, 0x19FF,
},
spaces = false,
normalizationFixes = handle_normalization_fixes{
from = {"ឣ", "ឤ"},
to = {"អ", "អា"}
},
}
m["Khoj"] = process_ranges{
"Khojki",
1740656,
"abugida",
ranges = {
0x0AE6, 0x0AEF,
0xA830, 0xA839,
0x11200, 0x11211,
0x11213, 0x11241,
},
normalizationFixes = handle_normalization_fixes{
from = {"𑈀𑈬𑈱", "𑈀𑈬", "𑈀𑈱", "𑈀𑈳", "𑈁𑈱", "𑈆𑈬", "𑈬𑈰", "𑈬𑈱", "𑉀𑈮"},
to = {"𑈇", "𑈁", "𑈅", "𑈇", "𑈇", "𑈃", "𑈲", "𑈳", "𑈂"}
},
}
m["Khomt"] = {
"Thai Khom",
13023788,
"abugida",
-- Not in Unicode
}
m["Kitl"] = {
"Khitan Besar",
6401797,
"logogram",
spaces = false,
}
m["Kits"] = process_ranges{
"Khitan Kecil",
6401800,
"logogram, sukukataan",
ranges = {
0x16FE4, 0x16FE4,
0x18B00, 0x18CD5,
0x18CFF, 0x18CFF,
},
spaces = false,
}
m["Knda"] = process_ranges{
"Kannada",
839666,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0C80, 0x0C8C,
0x0C8E, 0x0C90,
0x0C92, 0x0CA8,
0x0CAA, 0x0CB3,
0x0CB5, 0x0CB9,
0x0CBC, 0x0CC4,
0x0CC6, 0x0CC8,
0x0CCA, 0x0CCD,
0x0CD5, 0x0CD6,
0x0CDD, 0x0CDE,
0x0CE0, 0x0CE3,
0x0CE6, 0x0CEF,
0x0CF1, 0x0CF3,
0x1CD0, 0x1CD0,
0x1CD2, 0x1CD3,
0x1CDA, 0x1CDA,
0x1CF2, 0x1CF2,
0x1CF4, 0x1CF4,
0xA830, 0xA835,
},
normalizationFixes = handle_normalization_fixes{
from = {"ಉಾ", "ಋಾ", "ಒೌ"},
to = {"ಊ", "ೠ", "ಔ"}
},
translit = "kn-translit",
}
m["Kpel"] = {
"Kpelle",
1586299,
"sukukataan",
-- Not in Unicode
}
m["Krai"] = process_ranges{
"Kirat Rai",
123173834,
"abugida",
aliases = {"Rai", "Khambu Rai", "Rai Barṇamālā", "Kirat Khambu Rai"},
ranges = {
0x16D40, 0x16D79,
},
}
m["Kthi"] = process_ranges{
"Kaithi",
1253814,
"abugida",
ranges = {
0x0966, 0x096F,
0xA830, 0xA839,
0x11080, 0x110C2,
0x110CD, 0x110CD,
},
}
m["Kulit"] = {
"Kulitan",
6443044,
"abugida",
-- Not in Unicode
}
m["Lana"] = process_ranges{
"Tai Tham",
1314503,
"abugida",
aliases = {"Tham", "Tua Mueang", "Lanna"},
ranges = {
0x1A20, 0x1A5E,
0x1A60, 0x1A7C,
0x1A7F, 0x1A89,
0x1A90, 0x1A99,
0x1AA0, 0x1AAD,
},
spaces = false,
}
m["Laoo"] = process_ranges{
"Lao",
1815229,
"abugida",
ranges = {
0x0E81, 0x0E82,
0x0E84, 0x0E84,
0x0E86, 0x0E8A,
0x0E8C, 0x0EA3,
0x0EA5, 0x0EA5,
0x0EA7, 0x0EBD,
0x0EC0, 0x0EC4,
0x0EC6, 0x0EC6,
0x0EC8, 0x0ECE,
0x0ED0, 0x0ED9,
0x0EDC, 0x0EDF,
},
spaces = false,
}
m["Latn"] = process_ranges{
"Latin",
8229,
"alfabet",
aliases = {"Roman"},
ranges = {
0x0041, 0x005A,
0x0061, 0x007A,
0x00AA, 0x00AA,
0x00BA, 0x00BA,
0x00C0, 0x00D6,
0x00D8, 0x00F6,
0x00F8, 0x02B8,
0x02C0, 0x02C1,
0x02E0, 0x02E4,
0x0363, 0x036F,
0x0485, 0x0486,
0x0951, 0x0952,
0x10FB, 0x10FB,
0x1D00, 0x1D25,
0x1D2C, 0x1D5C,
0x1D62, 0x1D65,
0x1D6B, 0x1D77,
0x1D79, 0x1DBE,
0x1DF8, 0x1DF8,
0x1E00, 0x1EFF,
0x202F, 0x202F,
0x2071, 0x2071,
0x207F, 0x207F,
0x2090, 0x209C,
0x20F0, 0x20F0,
0x2100, 0x2125,
0x2128, 0x2128,
0x212A, 0x2134,
0x2139, 0x213B,
0x2141, 0x214E,
0x2160, 0x2188,
0x2C60, 0x2C7F,
0xA700, 0xA707,
0xA722, 0xA787,
0xA78B, 0xA7CD,
0xA7D0, 0xA7D1,
0xA7D3, 0xA7D3,
0xA7D5, 0xA7DC,
0xA7F2, 0xA7FF,
0xA92E, 0xA92E,
0xAB30, 0xAB5A,
0xAB5C, 0xAB64,
0xAB66, 0xAB69,
0xFB00, 0xFB06,
0xFF21, 0xFF3A,
0xFF41, 0xFF5A,
0x10780, 0x10785,
0x10787, 0x107B0,
0x107B2, 0x107BA,
0x1DF00, 0x1DF1E,
0x1DF25, 0x1DF2A,
},
varieties = {"Rumi", "Romaji", "Rōmaji", "Romaja"},
capitalized = true,
translit = false,
}
m["Latf"] = {
"Fraktur",
148443,
m["Latn"][3],
ranges = m["Latn"].ranges,
characters = m["Latn"].characters,
other_names = {"Blackletter"}, -- Blackletter is actually the parent "script"
capitalized = m["Latn"].capitalized,
translit = m["Latn"].translit,
parent = "Latn",
}
m["Latg"] = {
"Gaelia",
1432616,
m["Latn"][3],
ranges = m["Latn"].ranges,
characters = m["Latn"].characters,
other_names = {"Irish"},
capitalized = m["Latn"].capitalized,
translit = m["Latn"].translit,
parent = "Latn",
}
m["pjt-Latn"] = {
"Latin",
nil,
m["Latn"][3],
ranges = m["Latn"].ranges,
characters = m["Latn"].characters,
capitalized = m["Latn"].capitalized,
translit = m["Latn"].translit,
parent = "Latn",
}
m["Leke"] = {
"Leke",
19572613,
"abugida",
-- Not in Unicode
}
m["Lepc"] = process_ranges{
"Lepcha",
1481626,
"abugida",
aliases = {"Róng"},
ranges = {
0x1C00, 0x1C37,
0x1C3B, 0x1C49,
0x1C4D, 0x1C4F,
},
}
m["Limb"] = process_ranges{
"Limbu",
933796,
"abugida",
ranges = {
0x0965, 0x0965,
0x1900, 0x191E,
0x1920, 0x192B,
0x1930, 0x193B,
0x1940, 0x1940,
0x1944, 0x194F,
},
}
m["Lina"] = process_ranges{
"Linear A",
30972,
ranges = {
0x10107, 0x10133,
0x10600, 0x10736,
0x10740, 0x10755,
0x10760, 0x10767,
},
}
m["Linb"] = process_ranges{
"Linear B",
190102,
ranges = {
0x10000, 0x1000B,
0x1000D, 0x10026,
0x10028, 0x1003A,
0x1003C, 0x1003D,
0x1003F, 0x1004D,
0x10050, 0x1005D,
0x10080, 0x100FA,
0x10100, 0x10102,
0x10107, 0x10133,
0x10137, 0x1013F,
},
}
m["Lisu"] = process_ranges{
"Fraser",
1194621,
"alfabet",
aliases = {"Old Lisu", "Lisu"},
ranges = {
0x300A, 0x300B,
0xA4D0, 0xA4FF,
0x11FB0, 0x11FB0,
},
normalizationFixes = handle_normalization_fixes{
from = {"['’]", "[.ꓸ][.ꓸ]", "[.ꓸ][,ꓹ]"},
to = {"ʼ", "ꓺ", "ꓻ"}
},
translit = "Lisu-translit",
sort_key = {
from = {"𑾰"},
to = {"ꓬ" .. p[1]}
},
}
m["Loma"] = {
"Loma",
13023816,
"sukukataan",
-- Not in Unicode
}
m["Lyci"] = process_ranges{
"Lycia",
913587,
"alfabet",
ranges = {
0x10280, 0x1029C,
},
}
m["Lydi"] = process_ranges{
"Lydia",
4261300,
"alfabet",
ranges = {
0x10920, 0x10939,
0x1093F, 0x1093F,
},
direction = "rtl",
}
m["Mahj"] = process_ranges{
"Mahajani",
6732850,
"abugida",
ranges = {
0x0964, 0x096F,
0xA830, 0xA839,
0x11150, 0x11176,
},
}
m["Maka"] = process_ranges{
"Makassar",
72947229,
"abugida",
aliases = {"Old Makasar"},
ranges = {
0x11EE0, 0x11EF8,
},
}
m["Mand"] = process_ranges{
"Mandaia",
1812130,
aliases = {"Mandaean"},
ranges = {
0x0640, 0x0640,
0x0840, 0x085B,
0x085E, 0x085E,
},
direction = "rtl",
}
m["Mani"] = process_ranges{
"Mani",
3544702,
"abjad",
ranges = {
0x0640, 0x0640,
0x10AC0, 0x10AE6,
0x10AEB, 0x10AF6,
},
direction = "rtl",
translit = "Mani-translit",
}
m["Marc"] = process_ranges{
"Marchen",
72403709,
"abugida",
ranges = {
0x11C70, 0x11C8F,
0x11C92, 0x11CA7,
0x11CA9, 0x11CB6,
},
}
m["Maya"] = process_ranges{
"Maya",
211248,
aliases = {"Maya hieroglyphic", "Mayan", "Mayan hieroglyphic"},
ranges = {
0x1D2E0, 0x1D2F3,
},
}
m["Medf"] = process_ranges{
"Medefaidrin",
1519764,
aliases = {"Oberi Okaime", "Oberi Ɔkaimɛ"},
ranges = {
0x16E40, 0x16E9A,
},
capitalized = true,
}
m["Mend"] = process_ranges{
"Mende",
951069,
aliases = {"Mende Kikakui"},
ranges = {
0x1E800, 0x1E8C4,
0x1E8C7, 0x1E8D6,
},
direction = "rtl",
}
m["Merc"] = process_ranges{
"Kursif Meroitik",
73028124,
"abugida",
ranges = {
0x109A0, 0x109B7,
0x109BC, 0x109CF,
0x109D2, 0x109FF,
},
direction = "rtl",
}
m["Mero"] = process_ranges{
"Hieroglif Meroitik",
73028623,
"abugida",
ranges = {
0x10980, 0x1099F,
},
direction = "rtl",
wikipedia_article = "Meroitic hieroglyphs",
}
m["Mlym"] = process_ranges{
"Malayalam",
1164129,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0D00, 0x0D0C,
0x0D0E, 0x0D10,
0x0D12, 0x0D44,
0x0D46, 0x0D48,
0x0D4A, 0x0D4F,
0x0D54, 0x0D63,
0x0D66, 0x0D7F,
0x1CDA, 0x1CDA,
0x1CF2, 0x1CF2,
0xA830, 0xA832,
},
normalizationFixes = handle_normalization_fixes{
from = {"ഇൗ", "ഉൗ", "എെ", "ഒാ", "ഒൗ", "ക്", "ണ്", "ന്റ", "ന്", "മ്", "യ്", "ര്", "ല്", "ള്", "ഴ്", "െെ", "ൻ്റ"},
to = {"ഈ", "ഊ", "ഐ", "ഓ", "ഔ", "ൿ", "ൺ", "ൻറ", "ൻ", "ൔ", "ൕ", "ർ", "ൽ", "ൾ", "ൖ", "ൈ", "ന്റ"}
},
translit = "ml-translit",
}
m["Modi"] = process_ranges{
"Modi",
1703713,
"abugida",
ranges = {
0xA830, 0xA839,
0x11600, 0x11644,
0x11650, 0x11659,
},
normalizationFixes = handle_normalization_fixes{
from = {"𑘀𑘹", "𑘀𑘺", "𑘁𑘹", "𑘁𑘺"},
to = {"𑘊", "𑘋", "𑘌", "𑘍"}
},
}
do
local Mong_displaytext = {
from = {"([ᠨ-ᡂᡸ])ᠶ([ᠨ-ᡂᡸ])", "([ᠠ-ᡂᡸ])ᠸ([^᠋ᠠ-ᠧ])", "([ᠠ-ᡂᡸ])ᠸ$"},
to = {"%1ᠢ%2", "%1ᠧ%2", "%1ᠧ"}
}
m["Mong"] = process_ranges{
"Mongol",
1055705,
"alfabet",
aliases = {"Mongol bichig", "Hudum Mongol bichig"},
ranges = {
0x1800, 0x1805,
0x180A, 0x1819,
0x1820, 0x1842,
0x1878, 0x1878,
0x1880, 0x1897,
0x18A6, 0x18A6,
0x18A9, 0x18A9,
0x200C, 0x200D,
0x202F, 0x202F,
0x3001, 0x3002,
0x3008, 0x300B,
0x11660, 0x11668,
},
direction = "vertical-ltr",
display_text = Mong_displaytext,
strip_diacritics = Mong_displaytext,
translit = "Mong-translit",
}
m["mnc-Mong"] = process_ranges{
"Manchu",
122888,
m["Mong"][3],
ranges = {
0x1801, 0x1801,
0x1804, 0x1804,
0x1808, 0x180F,
0x1820, 0x1820,
0x1823, 0x1823,
0x1828, 0x182A,
0x182E, 0x1830,
0x1834, 0x1838,
0x183A, 0x183A,
0x185D, 0x185D,
0x185F, 0x1861,
0x1864, 0x1869,
0x186C, 0x1871,
0x1873, 0x1877,
0x1880, 0x1888,
0x188F, 0x188F,
0x189A, 0x18A5,
0x18A8, 0x18A8,
0x18AA, 0x18AA,
0x200C, 0x200D,
0x202F, 0x202F,
},
direction = "vertical-ltr",
parent = "Mong",
translit = "mnc-translit",
}
m["sjo-Mong"] = process_ranges{
"Xibe",
113624153,
m["Mong"][3],
aliases = {"Sibe"},
ranges = {
0x1804, 0x1804,
0x1807, 0x1807,
0x180A, 0x180F,
0x1820, 0x1820,
0x1823, 0x1823,
0x1828, 0x1828,
0x182A, 0x182A,
0x182E, 0x1830,
0x1834, 0x1838,
0x183A, 0x183A,
0x185D, 0x1872,
0x200C, 0x200D,
0x202F, 0x202F,
},
direction = "vertical-ltr",
parent = "mnc-Mong",
}
m["xwo-Mong"] = process_ranges{
"Todo",
529085,
m["Mong"][3],
aliases = {"Todo", "Todo bichig"},
ranges = {
0x1800, 0x1801,
0x1804, 0x1806,
0x180A, 0x1820,
0x1828, 0x1828,
0x182F, 0x1831,
0x1834, 0x1834,
0x1837, 0x1838,
0x183A, 0x183B,
0x1840, 0x1840,
0x1843, 0x185C,
0x1880, 0x1887,
0x1889, 0x188F,
0x1894, 0x1894,
0x1896, 0x1899,
0x18A7, 0x18A7,
0x200C, 0x200D,
0x202F, 0x202F,
0x11669, 0x1166C,
},
direction = "vertical-ltr",
parent = "Mong",
translit = "xwo-translit",
}
end
m["Moon"] = {
"Moon",
918391,
"alfabet",
aliases = {"Moon System of Embossed Reading", "Moon type", "Moon writing", "Moon alphabet", "Moon code"},
-- Not in Unicode
}
m["Morse"] = {
"Kod Morse",
79897,
ietf_subtag = "Zsym",
}
m["Mroo"] = process_ranges{
"Mru",
75919253,
aliases = {"Mro", "Mrung"},
ranges = {
0x16A40, 0x16A5E,
0x16A60, 0x16A69,
0x16A6E, 0x16A6F,
},
}
m["Mtei"] = process_ranges{
"Meitei Mayek",
2981413,
"abugida",
aliases = {"Meetei Mayek", "Manipuri"},
ranges = {
0xAAE0, 0xAAF6,
0xABC0, 0xABED,
0xABF0, 0xABF9,
},
}
m["Mult"] = process_ranges{
"Multani",
17047906,
"abugida",
ranges = {
0x0A66, 0x0A6F,
0x11280, 0x11286,
0x11288, 0x11288,
0x1128A, 0x1128D,
0x1128F, 0x1129D,
0x1129F, 0x112A9,
},
}
m["Music"] = process_ranges{
"Notasi Muzik",
233861,
"piktogram",
ranges = {
0x2669, 0x266F,
0x1D100, 0x1D126,
0x1D129, 0x1D1EA,
},
ietf_subtag = "Zsym",
translit = false,
}
m["Mymr"] = process_ranges{
"Burma",
43887939,
"abugida",
aliases = {"Myanmar"},
ranges = {
0x1000, 0x109F,
0xA92E, 0xA92E,
0xA9E0, 0xA9FE,
0xAA60, 0xAA7F,
0x116D0, 0x116E3,
},
spaces = false,
}
m["Nagm"] = process_ranges{
"Mundari Bani",
106917274,
"alfabet",
aliases = {"Nag Mundari"},
ranges = {
0x1E4D0, 0x1E4F9,
},
}
m["Nand"] = process_ranges{
"Nandinagari",
6963324,
"abugida",
ranges = {
0x0964, 0x0965,
0x0CE6, 0x0CEF,
0x1CE9, 0x1CE9,
0x1CF2, 0x1CF2,
0x1CFA, 0x1CFA,
0xA830, 0xA835,
0x119A0, 0x119A7,
0x119AA, 0x119D7,
0x119DA, 0x119E4,
},
}
m["Narb"] = process_ranges{
"Arab Utara Kuno",
1472213,
"abjad",
aliases = {"Old North Arabian"},
ranges = {
0x10A80, 0x10A9F,
},
direction = "rtl",
translit = "Narb-translit",
}
m["Nbat"] = process_ranges{
"Nabataea",
855624,
"abjad",
aliases = {"Nabatean"},
ranges = {
0x10880, 0x1089E,
0x108A7, 0x108AF,
},
direction = "rtl",
}
m["Newa"] = process_ranges{
"Newa",
7237292,
"abugida",
aliases = {"Newar", "Newari", "Prachalit Nepal"},
ranges = {
0x11400, 0x1145B,
0x1145D, 0x11461,
},
}
m["Nkdb"] = {
"Dongba",
1190953,
"piktogram",
aliases = {"Naxi Dongba", "Nakhi Dongba", "Tomba", "Tompa", "Mo-so"},
spaces = false,
-- Not in Unicode
}
m["Nkgb"] = {
"Geba",
731189,
"sukukataan",
aliases = {"Nakhi Geba", "Naxi Geba"},
spaces = false,
-- Not in Unicode
}
m["Nkoo"] = process_ranges{
"N'Ko",
1062587,
"alfabet",
ranges = {
0x060C, 0x060C,
0x061B, 0x061B,
0x061F, 0x061F,
0x07C0, 0x07FA,
0x07FD, 0x07FF,
0xFD3E, 0xFD3F,
},
direction = "rtl",
}
m["None"] = {
"tidak ditentukan",
nil,
-- This should not have any characters listed
ietf_subtag = "Zyyy",
translit = false,
character_category = false, -- none
}
m["Nshu"] = process_ranges{
"Nüshu",
56436,
"sukukataan",
aliases = {"Nushu"},
ranges = {
0x16FE1, 0x16FE1,
0x1B170, 0x1B2FB,
},
spaces = false,
}
m["Ogam"] = process_ranges{
"Ogham",
184661,
ranges = {
0x1680, 0x169C,
},
}
m["Olck"] = process_ranges{
"Ol Chiki",
201688,
aliases = {"Ol Chemetʼ", "Ol", "Santali"},
ranges = {
0x1C50, 0x1C7F,
},
}
m["Onao"] = process_ranges{
"Ol Onal",
108607084,
"alfabet",
ranges = {
0x0964, 0x0965,
0x1E5D0, 0x1E5FA,
0x1E5FF, 0x1E5FF,
},
}
m["Orkh"] = process_ranges{
"Turkik Kuno",
5058305,
aliases = {"Orkhon runic"},
ranges = {
0x10C00, 0x10C48,
},
direction = "rtl",
translit = "Orkh-translit",
}
m["Orya"] = process_ranges{
"Odia",
1760127,
"abugida",
aliases = {"Oriya"},
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0B01, 0x0B03,
0x0B05, 0x0B0C,
0x0B0F, 0x0B10,
0x0B13, 0x0B28,
0x0B2A, 0x0B30,
0x0B32, 0x0B33,
0x0B35, 0x0B39,
0x0B3C, 0x0B44,
0x0B47, 0x0B48,
0x0B4B, 0x0B4D,
0x0B55, 0x0B57,
0x0B5C, 0x0B5D,
0x0B5F, 0x0B63,
0x0B66, 0x0B77,
0x1CDA, 0x1CDA,
0x1CF2, 0x1CF2,
},
normalizationFixes = handle_normalization_fixes{
from = {"ଅା", "ଏୗ", "ଓୗ"},
to = {"ଆ", "ଐ", "ଔ"}
},
}
m["Osge"] = process_ranges{
"Osage",
7105529,
ranges = {
0x104B0, 0x104D3,
0x104D8, 0x104FB,
},
capitalized = true,
translit = "Osge-translit",
}
m["Osma"] = process_ranges{
"Osmanya",
1377866,
ranges = {
0x10480, 0x1049D,
0x104A0, 0x104A9,
},
}
m["Ougr"] = process_ranges{
"Uyghur Kuno",
1998938,
"abjad, alfabet",
ranges = {
0x0640, 0x0640,
0x10AF2, 0x10AF2,
0x10F70, 0x10F89,
},
-- This should ideally be "vertical-ltr", but getting the CSS right is tricky because it's right-to-left horizontally, but left-to-right vertically. Currently, displaying it vertically causes it to display bottom-to-top.
direction = "rtl",
}
m["Palm"] = process_ranges{
"Palmyra",
17538100,
ranges = {
0x10860, 0x1087F,
},
direction = "rtl",
}
m["Pauc"] = process_ranges{
"Pau Cin Hau",
25339852,
ranges = {
0x11AC0, 0x11AF8,
},
}
m["Pcun"] = {
"Kuneiform Purba",
1650699,
"piktogram",
-- Not in Unicode
}
m["Pelm"] = {
"Elam Purba",
56305763,
"piktogram",
-- Not in Unicode
}
m["Perm"] = process_ranges{
"Permia Kuno",
147899,
ranges = {
0x0483, 0x0483,
0x10350, 0x1037A,
},
}
m["Phag"] = process_ranges{
"Phags-pa",
822836,
"abugida",
ranges = {
0x1802, 0x1803,
0x1805, 0x1805,
0x200C, 0x200D,
0x202F, 0x202F,
0x3002, 0x3002,
0xA840, 0xA877,
},
direction = "vertical-ltr",
}
m["Phli"] = process_ranges{
"Pahlavi Inskripsi",
24089793,
"abjad",
ranges = {
0x10B60, 0x10B72,
0x10B78, 0x10B7F,
},
direction = "rtl",
}
m["Phlp"] = process_ranges{
"Pahlavi Psalter",
7253954,
"abjad",
ranges = {
0x0640, 0x0640,
0x10B80, 0x10B91,
0x10B99, 0x10B9C,
0x10BA9, 0x10BAF,
},
direction = "rtl",
}
m["Phlv"] = {
"Pahlavi Buku",
72403118,
"abjad",
direction = "rtl",
wikipedia_article = "Pahlavi scripts#Book Pahlavi",
-- Not in Unicode
}
m["Phnx"] = process_ranges{
"Phoenicia",
26752,
"abjad",
ranges = {
0x10900, 0x1091B,
0x1091F, 0x1091F,
},
direction = "rtl",
translit = "Phnx-translit",
}
m["Plrd"] = process_ranges{
"Pollard",
601734,
"abugida",
aliases = {"Miao"},
ranges = {
0x16F00, 0x16F4A,
0x16F4F, 0x16F87,
0x16F8F, 0x16F9F,
},
}
m["Prti"] = process_ranges{
"Parthia Inskripsi",
13023804,
ranges = {
0x10B40, 0x10B55,
0x10B58, 0x10B5F,
},
direction = "rtl",
}
m["Psin"] = {
"Sinaitik Purba",
1065250,
"abjad",
direction = "rtl",
-- Not in Unicode
}
m["Ranj"] = {
"Ranjana",
2385276,
"abugida",
-- Not in Unicode
}
m["Rjng"] = process_ranges{
"Rejang",
2007960,
"abugida",
ranges = {
0xA930, 0xA953,
0xA95F, 0xA95F,
},
}
m["Rohg"] = process_ranges{
"Hanifi Rohingya",
21028705,
"alfabet",
ranges = {
0x060C, 0x060C,
0x061B, 0x061B,
0x061F, 0x061F,
0x0640, 0x0640,
0x06D4, 0x06D4,
0x10D00, 0x10D27,
0x10D30, 0x10D39,
},
direction = "rtl",
}
m["Roro"] = {
"Rongorongo",
209764,
-- Not in Unicode
}
m["Rumin"] = process_ranges{
"Penomboran Rumi",
nil,
ranges = {
0x10E60, 0x10E7E,
},
ietf_subtag = "Arab",
}
m["Runr"] = process_ranges{
"Rune",
82996,
"alfabet",
ranges = {
0x16A0, 0x16EA,
0x16EE, 0x16F8,
},
}
do
local Samr_stripdiacritics = {
remove_diacritics = c.CGJ .. u(0x0816) .. "-" .. u(0x082D),
}
m["Samr"] = process_ranges{
"Samaria",
1550930,
"abjad",
ranges = {
0x0800, 0x082D,
0x0830, 0x083E,
},
direction = "rtl",
strip_diacritics = Samr_stripdiacritics,
sort_key = Samr_stripdiacritics,
}
end
m["Sarb"] = process_ranges{
"Ancient South Arabian",
446074,
"abjad",
aliases = {"Old South Arabian"},
ranges = {
0x10A60, 0x10A7F,
},
direction = "rtl",
translit = "Sarb-translit",
}
m["Saur"] = process_ranges{
"Saurashtra",
3535165,
"abugida",
ranges = {
0xA880, 0xA8C5,
0xA8CE, 0xA8D9,
},
}
m["Semap"] = {
"flag semaphore",
250796,
"piktogram",
ietf_subtag = "Zsym",
}
m["Sgnw"] = process_ranges{
"SignWriting",
1497335,
"piktogram",
aliases = {"Sutton SignWriting"},
ranges = {
0x1D800, 0x1DA8B,
0x1DA9B, 0x1DA9F,
0x1DAA1, 0x1DAAF,
},
translit = false,
}
m["Shaw"] = process_ranges{
"Shaw",
1970098,
aliases = {"Shaw"},
ranges = {
0x10450, 0x1047F,
},
}
m["Shrd"] = process_ranges{
"Sharada",
2047117,
"abugida",
ranges = {
0x0951, 0x0951,
0x1CD7, 0x1CD7,
0x1CD9, 0x1CD9,
0x1CDC, 0x1CDD,
0x1CE0, 0x1CE0,
0xA830, 0xA835,
0xA838, 0xA838,
0x11180, 0x111DF,
},
translit = "Shrd-translit",
}
m["Shui"] = {
"Sui",
752854,
"logogram",
spaces = false,
-- Not in Unicode
}
m["Sidd"] = process_ranges{
"Siddham",
250379,
"abugida",
ranges = {
0x11580, 0x115B5,
0x115B8, 0x115DD,
},
translit = "Sidd-translit",
}
m["Sidt"] = {
"Sidetic",
36659,
"alfabet",
direction = "rtl",
-- Not in Unicode
}
m["Sind"] = process_ranges{
"Khudabadi",
6402810,
"abugida",
aliases = {"Khudawadi"},
ranges = {
0x0964, 0x0965,
0xA830, 0xA839,
0x112B0, 0x112EA,
0x112F0, 0x112F9,
},
normalizationFixes = handle_normalization_fixes{
from = {"𑊰𑋠", "𑊰𑋥", "𑊰𑋦", "𑊰𑋧", "𑊰𑋨"},
to = {"𑊱", "𑊶", "𑊷", "𑊸", "𑊹"}
},
}
m["Sinh"] = process_ranges{
"Sinhala",
1574992,
"abugida",
aliases = {"Sinhala"},
ranges = {
0x0964, 0x0965,
0x0D81, 0x0D83,
0x0D85, 0x0D96,
0x0D9A, 0x0DB1,
0x0DB3, 0x0DBB,
0x0DBD, 0x0DBD,
0x0DC0, 0x0DC6,
0x0DCA, 0x0DCA,
0x0DCF, 0x0DD4,
0x0DD6, 0x0DD6,
0x0DD8, 0x0DDF,
0x0DE6, 0x0DEF,
0x0DF2, 0x0DF4,
0x1CF2, 0x1CF2,
0x111E1, 0x111F4,
},
normalizationFixes = handle_normalization_fixes{
from = {"අා", "අැ", "අෑ", "උෟ", "ඍෘ", "ඏෟ", "එ්", "එෙ", "ඔෟ", "ෘෘ"},
to = {"ආ", "ඇ", "ඈ", "ඌ", "ඎ", "ඐ", "ඒ", "ඓ", "ඖ", "ෲ"}
},
}
m["Sogd"] = process_ranges{
"Sogdia",
578359,
"abjad",
ranges = {
0x0640, 0x0640,
0x10F30, 0x10F59,
},
direction = "rtl",
}
m["Sogo"] = process_ranges{
"Sogdia Kuno",
72403254,
"abjad",
ranges = {
0x10F00, 0x10F27,
},
direction = "rtl",
}
m["Sora"] = process_ranges{
"Sorang Sompeng",
7563292,
aliases = {"Sora Sompeng"},
ranges = {
0x110D0, 0x110E8,
0x110F0, 0x110F9,
},
}
m["Soyo"] = process_ranges{
"Soyombo",
8009382,
"abugida",
ranges = {
0x11A50, 0x11AA2,
},
}
m["Sund"] = process_ranges{
"Sunda",
51589,
"abugida",
ranges = {
0x1B80, 0x1BBF,
0x1CC0, 0x1CC7,
},
}
m["Sunu"] = process_ranges{
"Sunuwar",
109984965,
"alfabet",
ranges = {
0x11BC0, 0x11BE1,
0x11BF0, 0x11BF9,
},
}
m["Sylo"] = process_ranges{
"Sylheti Nagri",
144128,
"abugida",
aliases = {"Sylheti Nāgarī", "Syloti Nagri"},
ranges = {
0x0964, 0x0965,
0x09E6, 0x09EF,
0xA800, 0xA82C,
},
}
m["Syrc"] = process_ranges{
"Suryani",
26567,
"abjad", -- more precisely, impure abjad
ranges = {
0x060C, 0x060C,
0x061B, 0x061C,
0x061F, 0x061F,
0x0640, 0x0640,
0x064B, 0x0655,
0x0670, 0x0670,
0x0700, 0x070D,
0x070F, 0x074A,
0x074D, 0x074F,
0x0860, 0x086A,
0x1DF8, 0x1DF8,
0x1DFA, 0x1DFA,
},
direction = "rtl",
}
-- Syre, Syrj, Syrn are apparently subsumed into Syrc; discuss if this causes issues
m["Tagb"] = process_ranges{
"Tagbanwa",
977444,
"abugida",
ranges = {
0x1735, 0x1736,
0x1760, 0x176C,
0x176E, 0x1770,
0x1772, 0x1773,
},
}
m["Takr"] = process_ranges{
"Takri",
759202,
"abugida",
ranges = {
0x0964, 0x0965,
0xA830, 0xA839,
0x11680, 0x116B9,
0x116C0, 0x116C9,
},
normalizationFixes = handle_normalization_fixes{
from = {"𑚀𑚭", "𑚀𑚴", "𑚀𑚵", "𑚆𑚲"},
to = {"𑚁", "𑚈", "𑚉", "𑚇"}
},
}
m["Tale"] = process_ranges{
"Tai Nüa",
2566326,
"abugida",
aliases = {"Tai Nuea", "New Tai Nüa", "New Tai Nuea", "Dehong Dai", "Tai Dehong", "Tai Le"},
ranges = {
0x1040, 0x1049,
0x1950, 0x196D,
0x1970, 0x1974,
},
spaces = false,
}
m["Talu"] = process_ranges{
"Tai Lue Baharu",
3498863,
"abugida",
ranges = {
0x1980, 0x19AB,
0x19B0, 0x19C9,
0x19D0, 0x19DA,
0x19DE, 0x19DF,
},
spaces = false,
}
m["Taml"] = process_ranges{
"Tamil",
26803,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0B82, 0x0B83,
0x0B85, 0x0B8A,
0x0B8E, 0x0B90,
0x0B92, 0x0B95,
0x0B99, 0x0B9A,
0x0B9C, 0x0B9C,
0x0B9E, 0x0B9F,
0x0BA3, 0x0BA4,
0x0BA8, 0x0BAA,
0x0BAE, 0x0BB9,
0x0BBE, 0x0BC2,
0x0BC6, 0x0BC8,
0x0BCA, 0x0BCD,
0x0BD0, 0x0BD0,
0x0BD7, 0x0BD7,
0x0BE6, 0x0BFA,
0x1CDA, 0x1CDA,
0xA8F3, 0xA8F3,
0x11301, 0x11301,
0x11303, 0x11303,
0x1133B, 0x1133C,
0x11FC0, 0x11FF1,
0x11FFF, 0x11FFF,
},
normalizationFixes = handle_normalization_fixes{
from = {"அூ", "ஸ்ரீ"},
to = {"ஆ", "ஶ்ரீ"}
},
}
m["Tang"] = process_ranges{
"Tangut",
1373610,
"logogram, sukukataan",
ranges = {
0x31EF, 0x31EF,
0x16FE0, 0x16FE0,
0x17000, 0x187F7,
0x18800, 0x18AFF,
0x18D00, 0x18D08,
},
spaces = false,
translit = "txg-translit",
}
m["Tavt"] = process_ranges{
"Tai Viet",
11818517,
"abugida",
ranges = {
0xAA80, 0xAAC2,
0xAADB, 0xAADF,
},
spaces = false,
}
m["Tayo"] = process_ranges{
"Lai Tay",
16306701,
"abugida",
aliases = {"Tai Yo"},
direction = "vertical-rtl",
ranges = {
0x1E6C0, 0x1E6DE,
0x1E6E0, 0x1E6F5,
0x1E6FE, 0x1E6FF,
},
spaces = false,
}
m["Telu"] = process_ranges{
"Telugu",
570450,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x0C00, 0x0C0C,
0x0C0E, 0x0C10,
0x0C12, 0x0C28,
0x0C2A, 0x0C39,
0x0C3C, 0x0C44,
0x0C46, 0x0C48,
0x0C4A, 0x0C4D,
0x0C55, 0x0C56,
0x0C58, 0x0C5A,
0x0C5D, 0x0C5D,
0x0C60, 0x0C63,
0x0C66, 0x0C6F,
0x0C77, 0x0C7F,
0x1CDA, 0x1CDA,
0x1CF2, 0x1CF2,
},
normalizationFixes = handle_normalization_fixes{
from = {"ఒౌ", "ఒౕ", "ిౕ", "ెౕ", "ొౕ"},
to = {"ఔ", "ఓ", "ీ", "ే", "ో"}
},
}
m["Teng"] = {
"Tengwar",
473725,
}
m["Tfng"] = process_ranges{
"Tifinagh",
208503,
"abjad, alfabet",
ranges = {
0x2D30, 0x2D67,
0x2D6F, 0x2D70,
0x2D7F, 0x2D7F,
},
other_names = {"Libyco-Berber", "Berber"}, -- per Wikipedia, Libyco-Berber is the parent
}
m["Tglg"] = process_ranges{
"Baybayin",
812124,
"abugida",
aliases = {"Tagalog"},
varieties = {"Badlit", "Basahan", "Kur-itan"},
ranges = {
0x1700, 0x1715,
0x171F, 0x171F,
0x1735, 0x1736,
},
}
m["Thaa"] = process_ranges{
"Thaana",
877906,
"abugida",
ranges = {
0x060C, 0x060C,
0x061B, 0x061C,
0x061F, 0x061F,
0x0660, 0x0669,
0x0780, 0x07B1,
0xFDF2, 0xFDF2,
0xFDFD, 0xFDFD,
},
direction = "rtl",
}
m["Thai"] = process_ranges{
"Thai",
236376,
"abugida",
ranges = {
0x0E01, 0x0E3A,
0x0E40, 0x0E5B,
},
spaces = false,
}
do
local Tibt_displaytext = {
from = {"ༀ", "༌", "།།", "༚༚", "༚༝", "༝༚", "༝༝", "ཷ", "ཹ", "ེེ", "ོོ"},
to = {"ཨོཾ", "་", "༎", "༛", "༟", "࿎", "༞", "ྲཱྀ", "ླཱྀ", "ཻ", "ཽ"}
}
m["Tibt"] = process_ranges{
"Tibet",
46861,
"abugida",
ranges = {
0x0F00, 0x0F47,
0x0F49, 0x0F6C,
0x0F71, 0x0F97,
0x0F99, 0x0FBC,
0x0FBE, 0x0FCC,
0x0FCE, 0x0FD4,
0x0FD9, 0x0FDA,
0x3008, 0x300B,
},
normalizationFixes = handle_normalization_fixes{
combiningClasses = {["༹"] = 1},
from = {"ཷ", "ཹ"},
to = {"ྲཱྀ", "ླཱྀ"}
},
display_text = Tibt_displaytext,
strip_diacritics = Tibt_displaytext,
sort_key = "Tibt-sortkey",
translit = "Tibt-translit",
}
m["sit-tam-Tibt"] = {
"Tamyig",
109875213,
m["Tibt"][3],
-- There is no inheritance of properties currently implemented for scripts. Per [[User:Theknightwho]], this
-- is because it's tricky to do since there are several types of child scripts: those that are mere display
-- variants (like fa-Arab), which should be eliminated in favor of CSS language selectors to
-- handle the font differences; those that are genuinely different scripts that happen to share the same
-- Unicode codepoints but have mostly different properties (e.g. Manchu vs. Mongolian); and those that are
-- somewhere in between (like Tamyig vs. Tibetan). As a result, we currently have to manually specify
-- which properties we want inherited as follows.
ranges = m["Tibt"].ranges,
characters = m["Tibt"].characters,
parent = "Tibt",
normalizationFixes = m["Tibt"].normalizationFixes,
display_text = m["Tibt"].display_text,
strip_diacritics = m["Tibt"].strip_diacritics,
sort_key = m["Tibt"].sort_key,
translit = m["Tibt"].translit,
}
end
m["Tirh"] = process_ranges{
"Tirhuta",
1765752,
"abugida",
ranges = {
0x0951, 0x0952,
0x0964, 0x0965,
0x1CF2, 0x1CF2,
0xA830, 0xA839,
0x11480, 0x114C7,
0x114D0, 0x114D9,
},
normalizationFixes = handle_normalization_fixes{
from = {"𑒁𑒰", "𑒋𑒺", "𑒍𑒺", "𑒪𑒵", "𑒪𑒶"},
to = {"𑒂", "𑒌", "𑒎", "𑒉", "𑒊"}
},
}
m["Tnsa"] = process_ranges{
"Tangsa",
105576311,
"alfabet",
ranges = {
0x16A70, 0x16ABE,
0x16AC0, 0x16AC9,
},
}
m["Todr"] = process_ranges{
"Todhri",
10274731,
"alfabet",
direction = "rtl",
ranges = {
0x105C0, 0x105F3,
},
}
m["Tols"] = {
"Tolong Siki",
4459822,
"alfabet",
-- Not in Unicode
}
m["Toto"] = process_ranges{
"Toto",
104837516,
"abugida",
ranges = {
0x1E290, 0x1E2AE,
},
}
m["Tutg"] = process_ranges{
"Tigalari",
2604990,
"abugida",
aliases = {"Tulu"},
ranges = {
0x1CF2, 0x1CF2,
0x1CF4, 0x1CF4,
0xA8F1, 0xA8F1,
0x11380, 0x11389,
0x1138B, 0x1138B,
0x1138E, 0x1138E,
0x11390, 0x113B5,
0x113B7, 0x113C0,
0x113C2, 0x113C2,
0x113C5, 0x113C5,
0x113C7, 0x113CA,
0x113CC, 0x113D5,
0x113D7, 0x113D8,
0x113E1, 0x113E2,
},
}
m["Ugar"] = process_ranges{
"Ugarit",
332652,
"abjad",
ranges = {
0x10380, 0x1039D,
0x1039F, 0x1039F,
},
}
m["Vaii"] = process_ranges{
"Vai",
523078,
"sukukataan",
ranges = {
0xA500, 0xA62B,
},
}
m["Visp"] = {
"Visible Speech",
1303365,
"alfabet",
-- Not in Unicode
}
m["Vith"] = process_ranges{
"Vithkuq",
3301993,
"alfabet",
ranges = {
0x10570, 0x1057A,
0x1057C, 0x1058A,
0x1058C, 0x10592,
0x10594, 0x10595,
0x10597, 0x105A1,
0x105A3, 0x105B1,
0x105B3, 0x105B9,
0x105BB, 0x105BC,
},
capitalized = true,
}
m["Wara"] = process_ranges{
"Varang Kshiti",
79199,
aliases = {"Warang Citi"},
ranges = {
0x118A0, 0x118F2,
0x118FF, 0x118FF,
},
capitalized = true,
}
m["Wcho"] = process_ranges{
"Wancho",
33713728,
"alfabet",
ranges = {
0x1E2C0, 0x1E2F9,
0x1E2FF, 0x1E2FF,
},
}
m["Wole"] = {
"Woleai",
6643710,
"sukukataan",
-- Not in Unicode
}
m["Xpeo"] = process_ranges{
"Parsi Kuno",
1471822,
ranges = {
0x103A0, 0x103C3,
0x103C8, 0x103D5,
},
}
m["Xsux"] = process_ranges{
"Kuneiform",
401,
aliases = {"Sumero-Akkadian Cuneiform"},
ranges = {
0x12000, 0x12399,
0x12400, 0x1246E,
0x12470, 0x12474,
0x12480, 0x12543,
},
}
m["Yezi"] = process_ranges{
"Yezidi",
13175481,
"alfabet",
ranges = {
0x060C, 0x060C,
0x061B, 0x061B,
0x061F, 0x061F,
0x0660, 0x0669,
0x10E80, 0x10EA9,
0x10EAB, 0x10EAD,
0x10EB0, 0x10EB1,
},
direction = "rtl",
}
m["Yiii"] = process_ranges{
"Yi",
1197646,
"sukukataan",
ranges = {
0x3001, 0x3002,
0x3008, 0x3011,
0x3014, 0x301B,
0x30FB, 0x30FB,
0xA000, 0xA48C,
0xA490, 0xA4C6,
0xFF61, 0xFF65,
},
}
m["Zanb"] = process_ranges{
"Zanabazar Square",
50809208,
"abugida",
ranges = {
0x11A00, 0x11A47,
},
}
m["Zmth"] = process_ranges{
"Notasi Matematik",
1140046,
ranges = {
0x00AC, 0x00AC,
0x00B1, 0x00B1,
0x00D7, 0x00D7,
0x00F7, 0x00F7,
0x03D0, 0x03D2,
0x03D5, 0x03D5,
0x03F0, 0x03F1,
0x03F4, 0x03F6,
0x0606, 0x0608,
0x2016, 0x2016,
0x2032, 0x2034,
0x2040, 0x2040,
0x2044, 0x2044,
0x2052, 0x2052,
0x205F, 0x205F,
0x2061, 0x2064,
0x207A, 0x207E,
0x208A, 0x208E,
0x20D0, 0x20DC,
0x20E1, 0x20E1,
0x20E5, 0x20E6,
0x20EB, 0x20EF,
0x2102, 0x2102,
0x2107, 0x2107,
0x210A, 0x2113,
0x2115, 0x2115,
0x2118, 0x211D,
0x2124, 0x2124,
0x2128, 0x2129,
0x212C, 0x212D,
0x212F, 0x2131,
0x2133, 0x2138,
0x213C, 0x2149,
0x214B, 0x214B,
0x2190, 0x21A7,
0x21A9, 0x21AE,
0x21B0, 0x21B1,
0x21B6, 0x21B7,
0x21BC, 0x21DB,
0x21DD, 0x21DD,
0x21E4, 0x21E5,
0x21F4, 0x22FF,
0x2308, 0x230B,
0x2320, 0x2321,
0x237C, 0x237C,
0x239B, 0x23B5,
0x23B7, 0x23B7,
0x23D0, 0x23D0,
0x23DC, 0x23E2,
0x25A0, 0x25A1,
0x25AE, 0x25B7,
0x25BC, 0x25C1,
0x25C6, 0x25C7,
0x25CA, 0x25CB,
0x25CF, 0x25D3,
0x25E2, 0x25E2,
0x25E4, 0x25E4,
0x25E7, 0x25EC,
0x25F8, 0x25FF,
0x2605, 0x2606,
0x2640, 0x2640,
0x2642, 0x2642,
0x2660, 0x2663,
0x266D, 0x266F,
0x27C0, 0x27FF,
0x2900, 0x2AFF,
0x2B30, 0x2B44,
0x2B47, 0x2B4C,
0xFB29, 0xFB29,
0xFE61, 0xFE66,
0xFE68, 0xFE68,
0xFF0B, 0xFF0B,
0xFF1C, 0xFF1E,
0xFF3C, 0xFF3C,
0xFF3E, 0xFF3E,
0xFF5C, 0xFF5C,
0xFF5E, 0xFF5E,
0xFFE2, 0xFFE2,
0xFFE9, 0xFFEC,
0x1D400, 0x1D454,
0x1D456, 0x1D49C,
0x1D49E, 0x1D49F,
0x1D4A2, 0x1D4A2,
0x1D4A5, 0x1D4A6,
0x1D4A9, 0x1D4AC,
0x1D4AE, 0x1D4B9,
0x1D4BB, 0x1D4BB,
0x1D4BD, 0x1D4C3,
0x1D4C5, 0x1D505,
0x1D507, 0x1D50A,
0x1D50D, 0x1D514,
0x1D516, 0x1D51C,
0x1D51E, 0x1D539,
0x1D53B, 0x1D53E,
0x1D540, 0x1D544,
0x1D546, 0x1D546,
0x1D54A, 0x1D550,
0x1D552, 0x1D6A5,
0x1D6A8, 0x1D7CB,
0x1D7CE, 0x1D7FF,
0x1EE00, 0x1EE03,
0x1EE05, 0x1EE1F,
0x1EE21, 0x1EE22,
0x1EE24, 0x1EE24,
0x1EE27, 0x1EE27,
0x1EE29, 0x1EE32,
0x1EE34, 0x1EE37,
0x1EE39, 0x1EE39,
0x1EE3B, 0x1EE3B,
0x1EE42, 0x1EE42,
0x1EE47, 0x1EE47,
0x1EE49, 0x1EE49,
0x1EE4B, 0x1EE4B,
0x1EE4D, 0x1EE4F,
0x1EE51, 0x1EE52,
0x1EE54, 0x1EE54,
0x1EE57, 0x1EE57,
0x1EE59, 0x1EE59,
0x1EE5B, 0x1EE5B,
0x1EE5D, 0x1EE5D,
0x1EE5F, 0x1EE5F,
0x1EE61, 0x1EE62,
0x1EE64, 0x1EE64,
0x1EE67, 0x1EE6A,
0x1EE6C, 0x1EE72,
0x1EE74, 0x1EE77,
0x1EE79, 0x1EE7C,
0x1EE7E, 0x1EE7E,
0x1EE80, 0x1EE89,
0x1EE8B, 0x1EE9B,
0x1EEA1, 0x1EEA3,
0x1EEA5, 0x1EEA9,
0x1EEAB, 0x1EEBB,
0x1EEF0, 0x1EEF1,
},
translit = false,
}
m["Zname"] = process_ranges{
"Notasi Muzik Znamenny",
965834,
"piktogram",
ranges = {
0x1CF00, 0x1CF2D,
0x1CF30, 0x1CF46,
0x1CF50, 0x1CFC3,
},
ietf_subtag = "Zsym",
translit = false,
}
m["Zsym"] = process_ranges{
"Simbolik",
80071,
"piktogram",
ranges = {
0x20DD, 0x20E0,
0x20E2, 0x20E4,
0x20E7, 0x20EA,
0x20F0, 0x20F0,
0x2100, 0x2101,
0x2103, 0x2106,
0x2108, 0x2109,
0x2114, 0x2114,
0x2116, 0x2117,
0x211E, 0x2123,
0x2125, 0x2127,
0x212A, 0x212B,
0x212E, 0x212E,
0x2132, 0x2132,
0x2139, 0x213B,
0x214A, 0x214A,
0x214C, 0x214F,
0x21A8, 0x21A8,
0x21AF, 0x21AF,
0x21B2, 0x21B5,
0x21B8, 0x21BB,
0x21DC, 0x21DC,
0x21DE, 0x21E3,
0x21E6, 0x21F3,
0x2300, 0x2307,
0x230C, 0x231F,
0x2322, 0x237B,
0x237D, 0x239A,
0x23B6, 0x23B6,
0x23B8, 0x23CF,
0x23D1, 0x23DB,
0x23E3, 0x23FF,
0x2500, 0x259F,
0x25A2, 0x25AD,
0x25B8, 0x25BB,
0x25C2, 0x25C5,
0x25C8, 0x25C9,
0x25CC, 0x25CE,
0x25D4, 0x25E1,
0x25E3, 0x25E3,
0x25E5, 0x25E6,
0x25ED, 0x25F7,
0x2600, 0x2604,
0x2607, 0x263F,
0x2641, 0x2641,
0x2643, 0x265F,
0x2664, 0x266C,
0x2670, 0x27BF,
0x2B00, 0x2B2F,
0x2B45, 0x2B46,
0x2B4D, 0x2B73,
0x2B76, 0x2B95,
0x2B97, 0x2BFF,
0x4DC0, 0x4DFF,
0x1F000, 0x1F02B,
0x1F030, 0x1F093,
0x1F0A0, 0x1F0AE,
0x1F0B1, 0x1F0BF,
0x1F0C1, 0x1F0CF,
0x1F0D1, 0x1F0F5,
0x1F300, 0x1F6D7,
0x1F6DC, 0x1F6EC,
0x1F6F0, 0x1F6FC,
0x1F700, 0x1F776,
0x1F77B, 0x1F7D9,
0x1F7E0, 0x1F7EB,
0x1F7F0, 0x1F7F0,
0x1F800, 0x1F80B,
0x1F810, 0x1F847,
0x1F850, 0x1F859,
0x1F860, 0x1F887,
0x1F890, 0x1F8AD,
0x1F8B0, 0x1F8B1,
0x1F900, 0x1FA53,
0x1FA60, 0x1FA6D,
0x1FA70, 0x1FA7C,
0x1FA80, 0x1FA88,
0x1FA90, 0x1FABD,
0x1FABF, 0x1FAC5,
0x1FACE, 0x1FADB,
0x1FAE0, 0x1FAE8,
0x1FAF0, 0x1FAF8,
0x1FB00, 0x1FB92,
0x1FB94, 0x1FBCA,
0x1FBF0, 0x1FBF9,
},
translit = false,
character_category = false, -- none
}
m["Zxxx"] = {
"unwritten",
104839715,
-- This should not have any characters listed
translit = false,
character_category = false, -- none
}
m["Zyyy"] = {
"undetermined",
104839687,
-- This should not have any characters listed, probably
translit = false,
character_category = false, -- none
}
m["Zzzz"] = {
"Tidak Terkod",
104839675,
-- This should not have any characters listed
translit = false,
character_category = false, -- none
}
-- These should be defined after the scripts they are composed of.
m["Hrkt"] = process_ranges{
"Kana",
187659,
"sukukataan",
aliases = {"Japanese syllabaries"},
ranges = union(
m["Hira"].ranges,
m["Kana"].ranges
),
spaces = false,
}
m["Jpan"] = process_ranges{
"Jepun",
190502,
"logogram, sukukataan",
ranges = union(
m["Hrkt"].ranges,
m["Hani"].ranges,
m["Latn"].ranges
),
spaces = false,
sort_by_scraping = true,
}
m["Kore"] = process_ranges{
"Korea",
711797,
"logogram, sukukataan",
ranges = union(
m["Hang"].ranges,
m["Hani"].ranges,
m["Latn"].ranges
),
-- `漢字(한자)`→`漢字`
-- `가-나-다`→`가나다`, `가--나--다`→`가-나-다`
-- `온돌(溫突/溫堗)`→`온돌` ([[ondol]])
strip_diacritics = {
remove_diacritics = u(0x302E) .. u(0x302F),
from = {"([" .. m["Hani"].characters .. "])%(.-%)", "^%-", "%-$", "%-(%-?)", "\1", "%([" .. m["Hani"].characters .. "/]+%)"},
to = {"%1", "\1", "\1", "%1", "-"}
}
}
return require("Module:languages").finalizeData(m, "script")
i5lsnqjtqr5sgrt7skls3fdv0v510zm
Modul:languages/data/3/e
828
9809
373489
280965
2026-09-10T19:02:02Z
SNN95
2113
kemaskini
373489
Scribunto
text/plain
local m_langdata = require("Module:languages/data")
-- Dimuatkan mengikut permintaan, kerana mungkin tidak diperlukan (bergantung pada 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["ebg"] = {
"Ebughu",
35294,
"nic-lcr",
"Latn",
}
m["ebk"] = {
"Bontoc Timur",
62664215,
"phi",
"Latn",
}
m["ebr"] = {
"Ebrié",
36644,
"alv-ptn",
"Latn",
}
m["ebu"] = {
"Embu",
35318,
"bnt-kka",
"Latn",
}
m["ecr"] = {
"Eteocretan",
35461,
"qfa-unc",
"Polyt",
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["ecs"] = {
"Bahasa Isyarat Ecuador",
3436769,
"sgn",
"Latn", -- apabila didokumentasikan
}
m["ecy"] = {
"Eteocypriot",
35309,
"qfa-unc",
"Cprt",
}
m["eee"] = {
"E",
35386,
"qfa-mix",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["efa"] = {
"Efai",
3813297,
"nic-ief",
"Latn",
}
m["efe"] = {
"Efe",
56354,
"csu-mle",
"Latn",
}
m["efi"] = {
"Efik",
35377,
"nic-ief",
"Latn",
}
m["ega"] = {
"Ega",
3914927,
"alv",
"Latn",
}
m["egl"] = {
"Emilian",
1057898,
"roa-emr",
ancestors = "egl-old",
"Latn",
wikimedia_codes = "eml",
}
m["ego"] = {
"Eggon",
35300,
"nic-pls",
"Latn",
}
m["egy"] = {
"Mesir Purba",
50868,
"egx",
"Latn, Egyp, Egyh",
sort_key = {
remove_diacritics = "'%-%s",
from = {"ꜣ", "j", "y", "ꜥ", "w", "b", "p", "f", "m", "n", "r", "ḥ", "ḫ", "ẖ", "h", "z", "š", "s", "q", "k", "g", "ṯ", "t", "ḏ", "d", "%."},
to = {p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8], p[9], p[10], p[11], p[13], p[14], p[15], p[12], p[16], p[18], p[17], p[19], p[20], p[21], p[23], p[22], p[25], p[24], p[26]}
},
}
m["ehu"] = {
"Ehueun",
3441392,
"alv-nwd",
"Latn",
}
m["eip"] = {
"Eipomek",
5349839,
"ngf-mek",
"Latn",
}
m["eit"] = {
"Eitiep",
5350030,
"paa-kom",
"Latn",
}
m["eiv"] = {
"Askopan",
56324,
"paa-nbo",
"Latn",
}
m["eja"] = {
"Ejamat",
6269820,
"alv-jfe",
"Latn",
}
m["eka"] = {
"Ekajuk",
35250,
"nic-eko",
"Latn",
}
m["eke"] = {
"Ekit",
3509628,
"nic-ief",
"Latn",
}
m["ekg"] = {
"Ekari",
5350305,
"ngf-pan",
"Latn",
}
m["eki"] = {
"Eki",
5350418,
"nic-ief",
"Latn",
}
m["ekl"] = {
"Kolhe",
6426945,
"mun",
"Latn",
}
m["ekm"] = {
"Elip",
12952414,
"nic-ymb",
"Latn",
}
m["eko"] = {
"Koti",
29930,
"bnt-mak",
"Latn",
}
m["ekp"] = {
"Ekpeye",
35254,
"alv-igb",
"Latn",
}
m["ekr"] = {
"Yace",
36901,
"alv-ido",
"Latn",
}
m["eky"] = {
"Kayah Timur",
25559417,
"kar",
"Kali",
}
m["ele"] = {
"Elepi",
5359444,
"paa-mar",
"Latn",
}
m["elh"] = {
"El Hugeirat",
5351410,
"nub-hil",
"Latn",
}
m["eli"] = {
"Nding",
36176,
"alv-tal",
"Latn",
}
m["elk"] = {
"Elkei",
5364210,
"paa-wap",
"Latn",
}
m["elm"] = {
"Eleme",
3914427,
"nic-ogo",
"Latn",
}
m["elo"] = {
"El Molo",
56719,
"cus-eas",
"Latn",
}
m["elu"] = {
"Elu",
3364594,
"poz-aay",
"Latn",
}
m["elx"] = {
"Elam",
35470,
"qfa-iso", -- bahasa purba di Iran
"Xsux",
}
m["ema"] = {
"Emai",
35428,
"alv-eeo",
"Latn",
}
m["emb"] = {
"Embaloh",
5369424,
"poz",
"Latn",
}
m["eme"] = {
"Emerillon",
3588942,
"tup-gua",
"Latn",
}
m["emg"] = {
"Meohang Timur",
12952840,
"sit-kie",
"Deva",
}
m["emi"] = {
"Mussau-Emira",
6943093,
"poz-stm",
"Latn",
}
m["emk"] = {
"Maninkakan Timur",
11002130,
"dmn-mnk",
"Latn, Arab, Nkoo",
}
m["emm"] = {
"Mamulique",
3285082,
"nai-pak",
"Latn",
}
m["emn"] = {
"Eman",
5368975,
"nic-tvc",
"Latn",
}
m["emp"] = {
"Emberá Utara",
2391297,
"sai-chc",
"Latn",
}
m["ems"] = {
"Alutiiq",
27992,
"ypk",
"Latn",
}
m["emu"] = {
"Muria Timur",
12952883,
"dra-mur",
"Deva",
}
m["emw"] = {
"Emplawas",
5374265,
"poz-tim",
"Latn",
}
m["emx"] = {
"Erromintxela",
1122188,
"qfa-mix",
"Latn",
ancestors = "rom, eu",
}
m["emy"] = {
"Maya Epigrafi",
301355,
"myn",
"Latn, Maya",
}
m["ena"] = {
"Apali",
3504201,
"ngf-sog",
"Latn",
}
m["enb"] = {
"Markweeta",
56874,
"sdv-nma",
"Latn",
}
m["enc"] = {
"En",
3504110,
"qfa-buy",
"Latn",
}
m["end"] = {
"Ende",
2067656,
"poz-cet",
"Latn",
}
m["enf"] = {
"Enets Hutan",
30249597,
"syd-ene",
"Cyrl",
}
m["enh"] = {
"Enets Tundra",
25559411,
"syd-ene",
"Cyrl",
}
m["enl"] = {
"Enlhet",
15462671,
"sai-mas",
"Latn",
}
m["enm"] = {
"Inggeris Pertengahan",
36395,
"gmw-ang",
"Latn",
strip_diacritics = {remove_diacritics = c.acute .. c.circ .. c.macron .. c.breve .. c.dotabove .. c.diaer .. c.dacute .. c.dotbelow .. c.tacute},
sort_key = {
remove_diacritics = c.acute .. c.circ .. c.macron .. c.breve .. c.dotabove .. c.diaer .. c.dacute .. c.dotbelow .. c.tacute,
from = {"[ꟓꟕ]", "[æðᵹꟑȝœẜþꟃƿ]"},
to = {
{
["ꟓ"] = "þþ", ["ꟕ"] = "ƿƿ", -- dimuktamadkan oleh penggantian seterusnya
},
{
["æ"] = "ae", ["ð"] = "d" .. p[1], ["ᵹ"] = "g", ["ꟑ"] = "g", ["ȝ"] = "g" .. p[1],
["œ"] = "oe", ["ẜ"] = "s", ["þ"] = "t" .. p[1], ["ꟃ"] = "w", ["ƿ"] = "w",
},
},
},
standard_chars = {
Latn = "AaÆæBbCcDdÐðEeFfGgȜȝHhIiJjKkLlMmNnOoPpQqRrSsTtÞþUuVvWwXxYyZz",
c.punc,
},
}
m["enn"] = {
"Engenni",
3915365,
"alv-dlt",
"Latn",
}
m["eno"] = {
"Enggano",
2669164,
"poz",
"Latn",
}
m["enq"] = {
"Enga",
1143040,
"ngf-enc",
"Latn",
}
m["enr"] = {
"Emem",
5370369,
"paa-epw",
"Latn",
}
m["enu"] = {
"Enu",
5380858,
"tbq-bka",
}
m["env"] = {
"Enwan",
3438334,
"alv-yek",
"Latn",
}
m["enw"] = {
"Enwang",
11134434,
"nic-lcr",
"Latn",
}
m["enx"] = {
"Enxet",
15462609,
"sai-mas",
"Latn",
}
m["eot"] = {
"Eotile",
3915347,
"alv-ptn",
"Latn",
}
m["epi"] = {
"Epie",
35291,
"alv-dlt",
"Latn",
}
m["era"] = {
"Eravallan",
5385061,
"dra-tam",
"Taml",
}
m["erg"] = {
"Sie",
426254,
"poz-vns",
"Latn",
}
m["erh"] = {
"Eruwa",
3441244,
"alv-swd",
"Latn",
}
m["eri"] = {
"Ogea",
7079984,
"ngf-nur",
"Latn",
}
m["erk"] = {
"Efate Selatan",
3449070,
"poz-vnc",
"Latn",
}
m["err"] = {
"Erre",
10488401,
"qfa-iso", -- Evans (1997) meletakkannya dalam keluarga Tanah Arnhem
"Latn",
}
m["ers"] = {
"Ersu",
12952417,
"sit-ers",
"Latn", -- juga Ersu Shaba
}
m["ert"] = {
"Eritai",
56376,
"paa-clp",
"Latn",
}
m["erw"] = {
"Erokwanas",
5395296,
"poz-hce",
"Latn",
}
m["ese"] = {
"Ese Ejja",
2980381,
"sai-tac",
"Latn",
}
m["esh"] = {
"Eshtehardi",
12952418,
"xme-ttc",
"Arab, Latn",
ancestors = "xme-ttc-sou",
}
-- "esi" dan "esk" dipindahkan kepada khusus etimologi mengikut [[WT:LT]] dan [[Wiktionary:Beer_parlour/2023/August#Issues_regarding_the_Inuit_languages]]
m["esl"] = {
"Bahasa Isyarat Mesir",
5348443,
"sgn",
}
m["esm"] = {
"Esuma",
16927555,
"alv-kwa",
"Latn",
}
m["esn"] = {
"Bahasa Isyarat El Salvador",
7406492,
"sgn",
"Latn", -- apabila didokumentasikan
}
m["eso"] = {
"Bahasa Isyarat Estonia",
3196221,
"sgn",
"Latn", -- apabila didokumentasikan
}
m["esq"] = {
"Esselen",
1294243,
"qfa-dis", -- pencilan atau Hokan
"Latn",
}
m["ess"] = {
"Yupik Siberia Tengah",
27993,
"ypk",
"Cyrl, Latn",
}
m["esu"] = {
"Yup'ik",
21117,
"ypk",
"Latn",
}
m["esy"] = {
"Eskayan",
867086,
"art",
"Latn", -- juga skrip aslinya tersendiri
}
m["etb"] = {
"Etebi",
11002851,
"nic-ief",
"Latn",
}
m["etc"] = {
"Etchemin",
5402493,
"alg-eas",
"Latn",
}
m["eth"] = {
"Bahasa Isyarat Habsyah",
3501903,
"sgn-asl",
}
m["etn"] = {
"Eton (Vanuatu)",
3059362,
"poz-vnc",
"Latn",
}
m["eto"] = {
"Eton (Cameroon)",
35317,
"bnt-btb",
"Latn",
}
m["etr"] = {
"Edolo",
5340184,
"ngf-bos",
"Latn",
}
m["ets"] = {
"Yekhee",
3915848,
"alv-yek",
"Latn",
}
m["ett"] = {
"Etruria",
35726,
"qfa-tyn",
"Ital",
-- translit Ital dalam [[Module:scripts/data]]
}
m["etu"] = {
"Ejagham",
35296,
"nic-eko",
"Latn",
}
m["etx"] = {
"Eten",
3915392,
"nic-beo",
"Latn",
}
m["etz"] = {
"Semimi",
10950308,
"paa-mai",
"Latn",
}
m["eve"] = {
"Even",
29960,
"tuw-ewe",
"Cyrl, Latn",
translit = {Cyrl = "eve-translit"},
strip_diacritics = {remove_diacritics = c.macron .. c.dotabove .. c.dotbelow},
sort_key = {
Cyrl = {
from = {
"ӫ", -- 2 aksara
"ё", "ӈ", "ө" -- 1 aksara
},
to = {
"о" .. p[2],
"е" .. p[1], "н" .. p[1], "о" .. p[1]
},
},
},
}
m["evh"] = {
"Uvbie",
3441344,
"alv-swd",
"Latn",
}
m["evn"] = {
"Evenki",
30004,
"tuw-ewe",
"Cyrl, Latn",
translit = "evn-translit",
strip_diacritics = {remove_diacritics = c.macron .. c.dotabove .. c.dotbelow},
sort_key = {
from = {"ё", "ӈ"},
to = {"е" .. p[1], "н" .. p[1]}
},
}
m["ewo"] = {
"Ewondo",
35459,
"bnt-btb",
"Latn",
}
m["ext"] = {
"Extremaduran",
30007,
"roa-asl",
"Latn",
}
m["eya"] = {
"Eyak",
27480,
"xnd",
"Latn",
}
m["eyo"] = {
"Keiyo",
56856,
"sdv-nma",
"Latn",
}
m["eza"] = {
"Ezaa",
11921436,
"alv-igb",
"Latn",
ancestors = "izi",
}
m["eze"] = {
"Uzekwe",
3502244,
"nic-ucn",
"Latn",
}
return require("Module:languages").finalizeData(m, "language")
38kujtzeeupuxj0695m8k6hrgudvsgk
Modul:languages/data/3/f
828
9810
373490
342849
2026-09-10T19:04:03Z
SNN95
2113
kemaskini
373490
Scribunto
text/plain
local m_langdata = require("Module:languages/data")
-- Dimuatkan mengikut permintaan, kerana mungkin tidak diperlukan (bergantung pada 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["faa"] = {
"Fasu",
3446687,
"qfa-dis", -- Papua; pencilan atau dalam keluarga andaian Kutubuan
"Latn",
}
m["fab"] = {
"Annobon",
34992,
"crp",
"Latn",
ancestors = "pt",
}
m["fad"] = {
"Wagi",
7959569,
"ngf-han",
"Latn",
}
m["faf"] = {
"Fagani",
3063759,
"poz-sls",
"Latn",
}
m["fag"] = {
"Finongan",
3450761,
"ngf-era",
"Latn",
}
m["fah"] = {
"Fali Baissa",
3446632,
"nic-bco",
"Latn",
}
m["fai"] = {
"Faiwol",
3501773,
"ngf-mok",
"Latn",
}
m["faj"] = {
"Kursav",
976953,
"ngf-eso",
"Latn",
}
m["fak"] = {
"Fang (Beboid)",
5433811,
"nic-beb",
"Latn",
}
m["fal"] = {
"Fali Selatan",
15637351,
"alv-fli",
"Latn",
}
m["fam"] = {
"Fam",
35290,
"nic-mmb",
"Latn",
}
m["fan"] = {
"Fang (Bantu)",
33484,
"bnt-btb",
"Latn",
}
m["fap"] = {
"Palor",
36318,
"alv-cng",
"Latn",
}
m["far"] = {
"Fataleka",
3067168,
"poz-sls",
"Latn",
}
-- "fat" dilayan sebagai "ak", lihat [[WT:LT]]
m["fau"] = {
"Fayu",
5439113,
"paa-wlp",
"Latn",
}
m["fax"] = {
"Fala",
300402,
"roa-gap",
"Latn",
}
m["fay"] = {
"Fars Barat Daya",
5228140,
"ira-swi",
"Arab",
}
m["faz"] = {
"Fars Barat Laut",
7060307,
"ira-swi",
}
m["fbl"] = {
"Bikol Miraya Barat",
18603801,
"phi",
"Latn",
}
m["fcs"] = {
"Bahasa Isyarat Quebec",
13193,
"sgn",
"Latn", -- apabila didokumentasikan
}
m["fer"] = {
"Feroge",
35287,
"nic-ser",
"Latn",
}
m["ffi"] = {
"Foia Foia",
8564176,
"paa-wig",
"Latn",
}
-- "ffm" dilayan sebagai "ff", lihat [[WT:LT]]
m["fgr"] = {
"Fongoro",
3437645,
"csu",
"Latn",
}
m["fia"] = {
"Nobiin",
36503,
"nub",
"Latn, Arab, Copt",
ancestors = "onw",
translit = {
Copt = "Copt-translit",
},
sort_key = {
Copt = "Copt-sortkey",
},
}
m["fie"] = {
"Fyer",
56273,
"cdc-wst",
"Latn",
}
m["fif"] = {
"Faifi",
85760309,
"sem-cen", -- secara konservatif meletakkan sem-cen tidak dibezakan, terdapat perbahasan sama ada ia OSA atau Arab
"Arab", -- atau IPA/Latn; kebanyakannya tidak bertulis
-- ancestors = "sem-srb", jika seseorang menerima pandangan bahawa seperti Razihi ia adalah sem-osa
}
-- "fil" dilayan sebagai "tl", lihat [[WT:LT]]
m["fip"] = {
"Fipa",
667747,
"bnt-mwi",
"Latn",
}
m["fir"] = {
"Firan",
3915847,
"nic-plc",
"Latn",
}
m["fit"] = {
"Meänkieli",
13357,
"urj-fin",
"Latn",
ancestors = "fi",
}
m["fiw"] = {
"Fiwaga",
5456292,
"ngf-eku",
"Latn",
}
m["fkk"] = {
"Kirya-Konzel",
6416310,
"cdc-cbm",
"Latn",
}
m["fkv"] = {
"Kven",
165795,
"urj-fin",
"Latn",
ancestors = "fi",
}
m["fla"] = {
"Salish Montana",
3111983,
"sal",
"Latn",
}
m["flh"] = {
"Foau",
5463819,
"paa-elp",
"Latn",
}
m["fli"] = {
"Fali",
56244,
"cdc-cbm",
"Latn",
}
m["fll"] = {
"Fali Utara",
12952419,
"alv-fli",
"Latn",
}
m["fln"] = {
"Pulau Flinders",
3915702,
"aus-pmn",
"Latn",
}
m["flr"] = {
"Fuliiru",
7166821,
"bnt-shh",
"Latn",
}
m["fly"] = {
"Tsotsitaal",
12643960,
"crp",
"Latn",
ancestors = "af",
}
m["fmp"] = {
"Fe'fe'",
35276,
"bai",
"Latn",
}
m["fmu"] = {
"Muria Barat Jauh",
42589412,
"dra-mur",
"Deva",
}
m["fng"] = {
"Fanagalo",
35727,
"crp",
"Latn",
ancestors = "zu",
}
m["fni"] = {
"Fania",
317642,
"alv-bua",
"Latn",
}
m["fod"] = {
"Foodo",
5465566,
"alv-gng",
"Latn",
}
m["foi"] = {
"Foi",
5464146,
"ngf-eku",
"Latn",
}
m["fom"] = {
"Foma",
5464911,
"bnt-ske",
"Latn",
ancestors = "khy",
}
m["fon"] = {
"Fon",
33291,
"alv-gbe",
"Latn",
}
m["for"] = {
"Fore",
3077126,
"ngf-fgi",
"Latn",
}
m["fos"] = {
"Siraya",
716604,
"map",
"Latn",
}
m["fpe"] = {
"Pichinglis",
35288,
"crp",
"Latn",
ancestors = "en",
}
m["fqs"] = {
"Fas",
56320,
"paa-fas",
"Latn",
}
-- "frc" dilayan sebagai "fr" (atau sebagai khusus etimologi), lihat [[WT:LT]]
m["frd"] = {
"Fordata",
5468035,
"poz-cet",
"Latn",
}
m["frm"] = {
"Perancis Pertengahan",
1473289,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["fro"] = {
"Perancis Kuno",
35222,
"roa-oil",
"Latn, Hebr",
sort_key = {
Latn = s["roa-oil-sortkey"],
},
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
}
m["frp"] = {
"Franco-Provençal",
15087,
"roa-grh",
"Latn",
ancestors = "frp-old",
sort_key = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer .. c.cedilla .. "'",
from = {"æ", "œ"},
to = {"ae", "oe"}
},
}
m["frq"] = {
"Forak",
5467173,
"ngf-war",
"Latn",
}
m["frr"] = {
"Frisia Utara",
28224,
"gmw-fri",
"Latn",
}
-- "frs" tidak digunakan, lihat [[WT:LT]]
m["frt"] = {
"Fortsenal",
2666835,
"poz-vnn",
"Latn",
}
m["fse"] = {
"Bahasa Isyarat Finland",
33225,
"sgn",
"Latn", -- apabila didokumentasikan
}
m["fsl"] = {
"Bahasa Isyarat Perancis",
33302,
"sgn-fsl",
"Latn", -- apabila didokumentasikan
}
m["fss"] = {
"Bahasa Isyarat Finland-Sweden",
5450448,
"sgn",
"Latn", -- apabila didokumentasikan
}
-- "fub" dilayan sebagai "ff", lihat [[WT:LT]]
-- "fuc" dilayan sebagai "ff", lihat [[WT:LT]]
m["fud"] = {
"Futuna Timur",
35334,
"poz-pnp",
"Latn",
}
-- "fue" dilayan sebagai "ff", lihat [[WT:LT]]
-- "fuf" dilayan sebagai "ff", lihat [[WT:LT]]
-- "fuh" dilayan sebagai "ff", lihat [[WT:LT]]
-- "fui" dilayan sebagai "ff", lihat [[WT:LT]]
m["fuj"] = {
"Ko",
35693,
"alv-hei",
"Latn",
}
m["fum"] = {
"Fum",
11011870,
"nic-nka",
"Latn",
}
m["fun"] = {
"Fulniô",
774441,
"qfa-iso",
"Latn",
}
-- "fuq" dilayan sebagai "ff", lihat [[WT:LT]]
m["fur"] = {
"Friulian",
33441,
"roa-rhe",
ancestors = "fur-old",
"Latn",
}
m["fut"] = {
"Futuna-Aniwa",
3064409,
"poz-pnp",
"Latn",
}
m["fuu"] = {
"Furu",
3441160,
"csu-bkr",
"Latn",
}
-- "fuv" dilayan sebagai "ff", lihat [[WT:LT]]
m["fuy"] = {
"Fuyug",
3073472,
"qfa-dis", -- Papua; pencilan mengikut Glottolog dan Usher (2020), hanya dikekalkan secara tentatif dalam keluarga andaian Goilalan
-- dalam TNG oleh Ross (2005)
"Latn",
}
m["fvr"] = {
"Fur",
33364,
"ssa-fur",
"Latn",
}
m["fwa"] = {
"Fwâi",
3091331,
"poz-cln",
"Latn",
}
m["fwe"] = {
"Fwe",
5511159,
"bnt-bot",
"Latn",
}
return require("Module:languages").finalizeData(m, "language")
rq1tm0j3509vx27u7netgg83ss78nud
Modul:languages/data/3/g
828
9811
373491
273100
2026-09-10T19:12:26Z
SNN95
2113
kemaskini
373491
Scribunto
text/plain
local m_langdata = require("Module:languages/data")
-- Dimuatkan mengikut permintaan, kerana mungkin tidak diperlukan (bergantung pada data).
local function u(...)
u = require("Module:string utilities").char
return u(...)
end
local c = m_langdata.chars
local p = m_langdata.puaChars
local s = m_langdata.shared
local m = {}
m["gaa"] = {
"Ga",
33287,
"alv-gda",
"Latn",
}
m["gab"] = {
"Gabri",
3441237,
"cdc-est",
"Latn",
}
m["gac"] = {
"Andaman Besar Campuran",
56329630,
"qfa-adn",
"Latn",
}
m["gad"] = { -- jangan dikelirukan dengan gdk, gdg
"Gaddang",
3438830,
"phi",
"Latn",
}
m["gae"] = {
"Baniwa Guainia", -- Warekena, bezakan daripada awd-war
1091095,
"awd-nwk",
"Latn",
}
m["gaf"] = {
"Gende",
3100425,
"ngf-gor",
"Latn",
}
m["gag"] = {
"Gagauz",
33457,
"trk-ogz",
"Latn, Cyrl",
ancestors = "trk-oat",
dotted_dotless_i = true,
sort_key = {
Latn = {
from = {
"i", -- Memastikan "i" hadir selepas "ı".
"ä", "ç", "ê", "ı", "ö", "ş", "ţ", "ü"
},
to = {
"i" .. p[1],
"a" .. p[1], "c" .. p[1], "e" .. p[1], "i", "o" .. p[1], "s" .. p[1], "t" .. p[1], "u" .. p[1]
}
},
},
}
m["gah"] = {
"Alekano",
3441595,
"ngf-gah",
"Latn",
}
m["gai"] = {
"Borei",
6799756,
"paa-ott",
"Latn",
}
m["gaj"] = {
"Gadsup",
5516467,
"ngf-gau",
"Latn",
}
m["gak"] = {
"Gamkonora",
5520226,
"paa-sah",
"Latn",
}
m["gal"] = {
"Galoli",
35322,
"poz-tim",
"Latn",
}
m["gam"] = {
"Kandawo",
6361369,
"ngf-jim",
"Latn",
}
m["gan"] = {
"Gan",
33475,
"zhx",
"Hants",
ancestors = "ltc",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["gao"] = {
"Gants",
5521529,
"ngf-eso",
"Latn",
}
m["gap"] = {
"Gal",
5517742,
"ngf-han",
"Latn",
}
m["gaq"] = {
"Gata'",
3501920,
"mun",
"Orya",
}
m["gar"] = {
"Galeya",
5518509,
"poz-ocw",
"Latn",
}
m["gas"] = {
"Garasia Adiwasi",
12953522,
"inc-bhi",
"Deva, Gujr",
ancestors = "bhb",
}
m["gat"] = {
"Kenati",
4219330,
"ngf-kgo",
"Latn",
}
m["gau"] = {
"Kondekor",
12952433,
"dra-pgd",
"Telu",
}
m["gaw"] = {
"Nobonob",
11732205,
"ngf-han",
"Latn",
}
m["gay"] = {
"Gayo",
33286,
"poz-nws",
"Latn",
}
m["gbb"] = {
"Kaytetye",
6380709,
"aus-rnd",
"Latn",
}
m["gbd"] = {
"Karadjeri",
3913837,
"aus-pam",
"Latn",
}
m["gbe"] = {
"Niksek",
56375,
"paa-sep",
"Latn",
}
m["gbf"] = {
"Gaikundi",
5517032,
"paa-nnd",
"Latn",
}
m["gbg"] = {
"Gbanziri",
35306,
"nic-nkg",
"Latn",
}
m["gbh"] = {
"Gbe Defi",
12952446,
"alv-gbe",
"Latn",
}
m["gbi"] = {
"Galela",
3094570,
"paa-gto",
"Latn",
}
m["gbj"] = {
"Gadaba Bodo",
3347070,
"mun",
"Orya",
}
m["gbk"] = {
"Gaddi",
17455500,
"him",
"Deva, Takr",
translit = {Deva = "hi-translit"},
}
m["gbl"] = {
"Gamit",
2731717,
"inc-bhi",
"Deva, Gujr",
}
m["gbm"] = {
"Garhwali",
33459,
"inc-pac",
"Deva",
translit = "hi-translit",
}
m["gbn"] = {
"Mo'da",
12755683,
"csu-bbk",
"Latn",
}
m["gbo"] = {
"Grebo Utara",
11157042,
"grb",
"Latn",
}
m["gbp"] = {
"Gbaya-Bossangoa",
11011295,
"gba-wes",
"Latn",
}
m["gbq"] = {
"Gbaya-Bozoum",
4952879,
"gba-wes",
"Latn",
}
m["gbr"] = {
"Gbagyi",
11015105,
"alv-ngb",
"Latn",
}
m["gbs"] = {
"Gbe Gbesi",
12952448,
"alv-pph",
"Latn",
}
m["gbu"] = {
"Gagadu",
35677,
"aus-arn",
"Latn",
}
m["gbv"] = {
"Gbanu",
3914945,
"gba-eas",
"Latn",
}
m["gbw"] = {
"Gabi",
5515391,
"aus-pam",
"Latn",
}
m["gbx"] = {
"Gbe Xwla Timur",
18379975,
"alv-pph",
"Latn",
}
m["gby"] = {
"Gbari",
3915451,
"alv-ngb",
"Latn",
}
m["gcc"] = {
"Mali",
6743338,
"paa-bai",
"Latn",
}
m["gcd"] = {
"Ganggalida",
3913765,
"aus-tnk",
"Latn",
}
m["gce"] = {
"Galice",
20711,
"ath-pco",
"Latn",
}
m["gcf"] = {
"Kreol Antillen",
3006280,
"crp",
"Latn",
ancestors = "fr",
sort_key = s["roa-oil-sortkey"],
}
m["gcl"] = {
"Kreol Inggeris Grenada",
4252500,
"crp",
"Latn",
ancestors = "en",
}
m["gcn"] = {
"Gaina",
11732195,
"ngf-gko",
"Latn",
}
m["gcr"] = {
"Kreol Guiana",
1363072,
"crp",
"Latn",
ancestors = "fr",
sort_key = s["roa-oil-sortkey"],
}
m["gct"] = {
"Jerman Colonia Tovar",
1138351,
"gmw-hgm",
"Latn",
ancestors = "gsw",
}
m["gdb"] = {
"Ollari",
33906,
"dra-pgd",
"Orya, Telu",
translit = {
Telu = "te-translit"
},
}
m["gdc"] = {
"Gugu Badhun",
10510360,
"aus-pam",
"Latn",
}
m["gdd"] = {
"Gedaged",
35292,
"poz-ocw",
"Latn",
}
m["gde"] = {
"Gude",
3441230,
"cdc-cbm",
"Latn",
}
m["gdf"] = {
"Guduf-Gava",
3441350,
"cdc-cbm",
"Latn",
}
m["gdg"] = { -- jangan dikelirukan dengan gad, gdk
"Ga'dang",
5515189,
"phi",
"Latn",
}
m["gdh"] = {
"Gadjerawang",
3913817,
"aus-jar",
"Latn",
}
m["gdi"] = {
"Gundi",
11137851,
"nic-nkb",
"Latn",
}
m["gdj"] = {
"Kurtjar",
5619931,
"aus-pmn",
"Latn",
}
m["gdk"] = { -- jangan dikelirukan dengan gad, gdg
"Gadang",
56256,
"cdc-est",
"Latn",
}
m["gdl"] = {
"Dirasha",
56809,
"cus-eas",
"Ethi",
}
m["gdm"] = {
"Laal",
33436,
"qfa-dis", -- Chad; tidak terkelas, pencilan atau dikelompokkan dengan bahasa-bahasa Adamawa atau Chadik
"Latn",
}
m["gdn"] = {
"Umanakaina",
7881084,
"ngf-dag",
"Latn",
}
m["gdo"] = {
"Godoberi",
56515,
"cau-and",
"Cyrl",
display_text = {Cyrl = s["cau-Cyrl-displaytext"]},
strip_diacritics = {Cyrl = s["cau-Cyrl-stripdiacritics"]},
}
m["gdq"] = {
"Mehri",
13361,
"sem-sar",
"Arab, Latn",
}
m["gdr"] = {
"Wipi",
8026711,
"paa-etf",
"Latn",
}
m["gds"] = {
"Bahasa Isyarat Ghandruk",
15971577,
"sgn",
}
m["gdt"] = {
"Kungardutyi",
6444517,
"aus-kar",
"Latn",
}
m["gdu"] = {
"Gudu",
3441172,
"cdc-cbm",
"Latn",
}
m["gdx"] = {
"Godwari",
3540922,
"raj",
"Deva",
}
m["gea"] = {
"Geruma",
3438789,
"cdc-wst",
"Latn",
}
m["geb"] = {
"Kire",
11129733,
"paa-rub",
"Latn",
}
m["gec"] = {
"Grebo Gboloo",
11019342,
"grb",
"Latn",
}
m["ged"] = {
"Gade",
3914459,
"alv-nup",
"Latn",
}
m["geg"] = {
"Gengle",
3438345,
"alv-mye",
"Latn",
ancestors = "kow",
}
m["geh"] = {
"Hutterisch",
33385,
"gmw-hgm",
"Latn",
ancestors = "bar",
}
m["gei"] = {
"Gebe",
3100032,
"poz-hce",
"Latn",
}
m["gej"] = {
"Gen",
33450,
"alv-gbe",
"Latn",
}
m["gek"] = {
"Gerka",
3441277,
"cdc-wst",
"Latn",
}
m["gel"] = {
"Fakkanci",
36627,
"nic-knn",
"Latn",
}
m["geq"] = {
"Geme",
3915851,
"znd",
"Latn",
}
m["ges"] = {
"Geser-Gorom",
5553579,
"poz-cma",
"Latn",
}
m["gev"] = {
"Viya",
7937974,
"bnt-tso",
"Latn",
}
m["gew"] = {
"Gera",
3438725,
"cdc-wst",
"Latn",
}
m["gex"] = {
"Garre",
56618,
"cus-som",
"Latn",
}
m["gey"] = {
"Enya",
5381452,
"bnt-mbe",
"Latn",
}
m["gez"] = {
"Ge'ez",
35667,
"sem-eth",
"Ethi",
translit = "Ethi-translit",
}
m["gfk"] = {
"Patpatar",
3368846,
"poz-ocw",
"Latn",
}
m["gft"] = {
"Gafat",
56910,
"sem-eth",
"Ethi, Latn",
}
m["gga"] = {
"Gao",
3095228,
"poz-ocw",
"Latn",
}
m["ggb"] = {
"Gbii",
3914390,
"kro-wkr",
"Latn",
}
m["ggd"] = {
"Gugadj",
5615186,
"aus-pmn",
"Latn",
}
m["gge"] = {
"Guragone",
5619801,
"aus-arn",
"Latn",
}
m["ggg"] = {
"Gurgula",
5620032,
"raj",
"Arab",
}
m["ggk"] = {
"Kungarakany",
6444516,
"aus-arn",
"Latn",
}
m["ggl"] = {
"Ganglau",
5521140,
"ngf-yag",
"Latn",
}
m["ggt"] = {
"Gitua",
3107865,
"poz-ocw",
"Latn",
}
m["ggu"] = {
"Gban",
3913317,
"dmn-nbe",
"Latn",
}
m["ggw"] = {
"Gogodala",
3512161,
"ngf-gsu",
"Latn",
}
m["gha"] = {
"Ghadames",
56747,
"ber",
"Latn", -- dan skrip-skrip lain?
}
m["ghc"] = {
"Gaelik Klasik",
5128278,
"cel-gae",
"Latn, Latg",
ancestors = "mga",
}
m["ghe"] = {
"Ghale Selatan",
12952453,
"sit-tam",
"Deva",
}
m["ghh"] = {
"Ghale Utara",
22662104,
"sit-tam",
"Deva",
}
m["ghk"] = {
"Karen Geko",
5530317,
"kar",
}
m["ghl"] = {
"Ghulfan",
16885737,
"nub-hil",
"Latn", -- dan lain-lain?
}
m["ghn"] = {
"Ghanongga",
3104772,
"poz-ocw",
"Latn",
}
m["gho"] = {
"Ghomara",
35315,
"ber",
"Tfng, Latn",
translit = {Tfng = "Tfng-translit"},
}
m["ghr"] = {
"Ghera",
22808992,
"inc-hiw",
}
m["ghs"] = {
"Guhu-Samane",
11732219,
"ngf-gbi",
"Latn",
}
m["ght"] = {
"Ghale Kutang",
6448337,
"sit-tam",
"Tibt",
override_translit = true,
-- translit, display_text, strip_diacritics, sort_key Tibt dalam [[Module:scripts/data]]
}
m["gia"] = {
"Kitja",
1284877,
"aus-jar",
"Latn",
}
m["gib"] = {
"Gibanawa",
12953530,
"crp",
"Latn",
ancestors = "ha",
}
m["gid"] = {
"Gidar",
35265,
"cdc-cbm",
"Latn",
}
m["gie"] = {
"Guébie",
63140714,
"kro-did",
"Latn",
}
m["gig"] = {
"Goaria",
33269,
"raj",
"Arab",
}
m["gih"] = {
"Githabul",
48987680,
"aus-pam",
"Latn",
}
m["gii"] = {
"Girirra",
5564288,
"cus-som",
}
m["gil"] = {
"Kiribati",
30898,
"poz-mic",
"Latn",
}
m["gim"] = {
"Gimi (Papua)",
11732209,
"ngf-fgi",
"Latn",
}
m["gin"] = {
"Hinukh",
33283,
"cau-wts",
"Cyrl",
translit = "gin-translit",
display_text = {Cyrl = s["cau-Cyrl-displaytext"]},
strip_diacritics = {Cyrl = s["cau-Cyrl-stripdiacritics"]},
}
m["gip"] = {
"Gimi (Austronesia)",
12952457,
"poz-ocw",
"Latn",
}
m["giq"] = {
"Gelao Hijau",
12953525,
"gio",
"Latn",
}
m["gir"] = {
"Gelao Merah",
3100264,
"gio",
}
m["gis"] = {
"Giziga Utara",
3515084,
"cdc-cbm",
}
m["git"] = {
"Gitxsan",
3107862,
"nai-tsi",
"Latn",
}
m["giu"] = {
"Mulao",
11092831,
"gio",
}
m["giw"] = {
"Gelao Putih",
8843040,
"gio",
}
m["gix"] = {
"Gilima",
10977716,
"nic-nkm",
"Latn",
}
m["giy"] = {
"Giyug",
5565906,
}
m["giz"] = {
"Giziga Selatan",
3502232,
"cdc-cbm",
}
m["gji"] = {
"Geji",
3914890,
"cdc-wst",
"Latn",
}
m["gjk"] = {
"Koli Kachi",
12953646,
"inc-wes",
}
m["gjm"] = {
"Gunditjmara",
6448731,
"aus-pam",
"Latn",
}
m["gjn"] = {
"Gonja",
35267,
"alv-gng",
"Latn",
}
local m_langdata = require("Module:languages/data")
-- Dimuatkan mengikut permintaan, kerana mungkin tidak diperlukan (bergantung pada 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["gjr"] = {
"Kriol Gurindji",
5620091,
"qfa-mix",
"Latn",
ancestors = "gue, rop"
}
m["gju"] = {
"Gojri",
3241731,
"raj",
"Aran, Deva, Takr",
strip_diacritics = {
Aran = {
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.smallv,
from = {"ڵ", "ݩ"},
to = {"ل", "ن"}
},
},
translit = {Aran = "ur-translit"},
}
m["gka"] = {
"Guya",
11732221,
"ngf-war",
"Latn",
}
m["gkd"] = {
"Magi",
55621742,
"ngf-ais",
"Latn",
}
m["gke"] = {
"Ndai",
6983667,
"alv-mbm",
}
m["gkn"] = {
"Gokana",
3075137,
"nic-ogo",
"Latn",
}
m["gko"] = {
"Kok-Nar",
6426526,
"aus-pmn",
"Latn",
}
m["gkp"] = {
"Kpelle Guinea",
11052867,
"dmn-msw",
"Latn, Kpel",
ancestors = "kpe",
}
m["glc"] = {
"Gula Bon",
289816,
"alv-bua",
}
m["gld"] = {
"Nanai",
13303,
"tuw-nan",
"Cyrl",
translit = "gld-translit",
strip_diacritics = {remove_diacritics = c.macron},
sort_key = {
from = {"ё", "ӈ"},
to = {"е" .. p[1], "н" .. p[1]}
},
}
m["glh"] = {
"Pashayi Barat Laut",
23713532,
"inc-pas",
"Arab",
}
m["glj"] = {
"Kulaal",
33360,
"alv-bua",
}
m["glk"] = {
"Gilaki",
33657,
"ira-csp",
"Arab",
}
m["glo"] = {
"Galambu",
2598797,
"cdc-wst",
"Latn",
}
m["glr"] = {
"Glaro-Twabo",
3915313,
"kro-wee",
}
m["glu"] = {
"Gula",
5617176,
"csu-bgr",
"Latn",
}
m["glw"] = {
"Glavda",
3441285,
"cdc-cbm",
"Latn",
}
m["gly"] = {
"Gule",
3120736,
"ssa-kom",
}
m["gma"] = {
"Gambera",
10502327,
"aus-wor",
"Latn",
}
m["gmb"] = {
"Gula'alaa",
3120733,
"poz-sls",
"Latn",
}
m["gmd"] = {
"Mághdì",
3914475,
"alv-bwj",
}
m["gmg"] = {
"Magiyi",
16926155,
"ngf-sog",
"Latn",
}
m["gmh"] = {
"Jerman Tinggi Pertengahan",
837985,
"gmw-hgm",
"Latn",
strip_diacritics = {
remove_diacritics = c.circ .. c.macron,
from = {"Ë", "ë", "[ƷȤ]", "[ʒȥ]"},
to = {"E", "e", "Z", "z"}
},
}
m["gml"] = {
"Jerman Rendah Pertengahan",
505674,
"gmw-lgm",
"Latn",
strip_diacritics = {remove_diacritics = c.circ .. c.macron .. c.diaer},
}
m["gmm"] = {
"Gbaya-Mbodomo",
6799713,
"gba-eas",
"Latn",
}
m["gmn"] = {
"Gimnime",
11016905,
"alv-dur",
"Latn",
}
m["gmr"] = {
"Mirning",
6873793,
"aus-pam",
"Latn",
}
m["gmu"] = {
"Gumalu",
5618027,
"ngf-gum",
"Latn",
}
m["gmv"] = {
"Gamo",
16116386,
"omv-nom",
"Latn, Ethi",
}
m["gmx"] = {
"Magoma",
16939552,
"bnt-bki",
}
m["gmy"] = {
"Yunani Mycenae",
668366,
"grk",
"Linb",
translit = "Linb-translit",
strip_diacritics = { remove_diacritics = "@" },
display_text = { from = { "@" }, to = { "" } },
}
m["gmz"] = {
"Mgbo",
6826835,
"alv-igb",
ancestors = "izi",
}
m["gna"] = {
"Kaansa",
56802,
"nic-gur",
}
m["gnb"] = {
"Gangte",
12952442,
"tbq-kuk",
}
m["gnc"] = {
"Guanche",
35762,
"ber",
}
m["gnd"] = {
"Zulgo-Gemzek",
56800,
"cdc-cbm",
"Latn",
}
m["gne"] = {
"Ganang",
63163361,
"nic-plc",
ancestors = "izr",
}
m["gng"] = {
"Ngangam",
35888,
"nic-grm",
"Latn",
}
m["gnh"] = {
"Lere",
3915319,
"nic-jer",
}
m["gni"] = {
"Gooniyandi",
2669219,
"aus-bub",
"Latn",
}
m["gnj"] = {
"Ngen dari Djonkro",
63170838,
"dmn-nbe",
"Latn",
}
m["gnk"] = {
"ǁGana",
1975199,
"khi-kal",
"Latn",
}
m["gnl"] = {
"Gangulu",
4916329,
"aus-pam",
"Latn",
}
m["gnm"] = {
"Ginuman",
11732210,
"ngf-dag",
"Latn",
}
m["gnn"] = {
"Gumatj",
10510745,
"aus-yol",
"Latn",
}
m["gnq"] = {
"Gana",
5520523,
"poz-san",
"Latn",
}
m["gnr"] = {
"Gureng Gureng",
5619998,
"aus-pam",
"Latn",
}
m["gnt"] = {
"Guntai",
12952475,
"paa-ton",
"Latn",
}
m["gnu"] = {
"Gnau",
3915810,
"paa-trr",
"Latn",
}
m["gnw"] = {
"Guarani Bolivia Barat",
3775037,
"gn",
"Latn",
}
m["gnz"] = {
"Ganzi",
11137942,
"nic-nkb",
"Latn",
}
m["goa"] = {
"Guro",
35251,
"dmn-mda",
"Latn",
}
m["gob"] = {
"Playero",
3027923,
"sai-guh",
}
m["goc"] = {
"Gorakor",
12952463,
"poz-ocw",
"Latn",
}
m["god"] = {
"Godié",
3914412,
"kro-bet",
}
m["goe"] = {
"Gongduk",
2669221,
"sit",
}
m["gof"] = {
"Gofa",
12631584,
"omv-nom",
"Latn, Ethi",
}
m["gog"] = {
"Gogo",
3272630,
"bnt-ruv",
"Latn",
}
m["goh"] = {
"Jerman Tinggi Kuno",
35218,
"gmw-hgm",
"Latn, Runr",
strip_diacritics = {
remove_diacritics = c.circ .. c.macron .. c.diaer,
from = {"[ƷȤ]", "[ʒȥ]"},
to = {"Z", "z"}
},
translit = {
Runr = "Runr-translit",
},
}
m["goi"] = {
"Gobasi",
5575414,
"ngf-est",
"Latn",
}
m["goj"] = {
"Gowlan",
12953532,
"inc-sou",
}
-- gok ialah bahasa palsu, lihat [[w:Spurious languages]]
m["gol"] = {
"Gola",
35482,
"alv",
"Latn, Vaii",
}
m["gon"] = {
"Gondi",
1775361,
"dra-gon",
"Telu, Gonm, Gong, Deva, Orya",
translit = {
Telu = "te-translit",
Gong = "gon-Gong-translit",
Gonm = "gon-Gonm-translit",
},
}
m["goo"] = {
"Gone Dau",
3110470,
"poz-pcc",
"Latn",
}
m["gop"] = {
"Yeretuar",
8052565,
"poz-hce",
"Latn",
}
m["goq"] = {
"Gorap",
3110816,
"crp",
"Latn",
ancestors = "ms",
}
m["gor"] = {
"Gorontalo",
2501174,
"phi",
"Latn",
}
m["got"] = {
"Gothik",
35722,
"gme",
"Goth, Runr, Latn",
translit = {Goth = "Goth-translit"},
link_tr = true,
strip_diacritics = {Latn = {remove_diacritics = c.macron}},
}
m["gou"] = {
"Gavar",
3441180,
"cdc-cbm",
}
m["gov"] = {
"Goo",
16927208,
"dmn",
"Latn",
}
m["gow"] = {
"Gorwaa",
3437626,
"cus-sou",
"Latn",
}
m["gox"] = {
"Gobu",
7194986,
"bad-cnt",
}
m["goy"] = {
"Goundo",
317636,
"alv-kim",
}
m["goz"] = {
"Gozarkhani",
5590235,
"xme-ttc",
ancestors = "xme-ttc-eas",
}
m["gpa"] = {
"Gupa-Abawa",
3915352,
"alv-ngb",
"Latn",
}
m["gpn"] = {
"Taiap",
56237,
"qfa-dis", -- Papua; pencilan dalam Glottolog; perkaitan dengan Torricelli dicadangkan oleh Usher
"Latn",
}
m["gqa"] = {
"Ga'anda",
56245,
"cdc-cbm",
"Latn",
}
m["gqi"] = {
"Guiqiong",
3120647,
"sit-qia",
}
m["gqn"] = { -- variasi daripada 'ter'
"Kinikinao",
53386731,
"awd",
"Latn",
}
m["gqr"] = {
"Gor",
759992,
"csu-sar",
"Latn",
}
m["gqu"] = {
"Qau",
17284874,
"gio",
}
m["gra"] = {
"Garasia Rajput",
21041529,
"inc-bhi",
"Deva, Gujr",
ancestors = "bhb",
}
m["grc"] = {
"Yunani Purba",
35497,
"grk",
"Polyt, Cprt",
translit = {
Cprt = "Cprt-translit",
},
override_translit = true,
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
standard_chars = {
Polyt = "ΑΆἈἉἊἋἌἍἎἏᾈᾉᾊᾋᾌᾍᾎᾏᾸᾹᾺᾼΒΓΔΕΈἘἙἚἛἜἝῈΖΗΉἨἩἪἫἬἭἮἯᾘᾙᾚᾛᾜᾝᾞᾟῊῌΘΙΊΪἸἹἺἻἼἽἾἿῘῙῚΚΛΜΝΞΟΌὈὉὊὋὌὍΠΡῬΡ̓ΣΤΥΎΫὙὛὝὟῨῩῪΦΧΨΩΏὨὩὪὫὬὭὮὯᾨᾩᾪᾫᾬᾭᾮᾯῸῺῼαάἀἁἂἃἄἅἆἇὰᾀᾁᾂᾃᾄᾅᾆᾇᾰᾱᾲᾳᾴᾶᾷβγδεέἐἑἒἓἔἕὲζηήἠἡἢἣἤἥἦἧὴᾐᾑᾒᾓᾔᾕᾖᾗῂῃῄῆῇθιίϊΐἰἱἲἳἴἵἶἷὶῐῑῒῖῗκλμνξοόὀὁὂὃὄὅὸπρῤῥςστυύϋΰὐὑὒὓὔὕὖὗὺῠῡῢῦῧφχψωώὠὡὢὣὤὥὦὧὼᾠᾡᾢᾣᾤᾥᾦᾧῲῳῴῶῷ·ͺ΄΅᾽᾿῀῁῍῎῏῝῞῟῭`´῾",
Cprt = "𐠀𐠁𐠂𐠃𐠄𐠅𐠈𐠊𐠋𐠌𐠍𐠎𐠏𐠐𐠑𐠒𐠓𐠔𐠕𐠖𐠗𐠘𐠙𐠚𐠛𐠜𐠝𐠞𐠟𐠠𐠡𐠢𐠣𐠤𐠥𐠦𐠧𐠨𐠩𐠪𐠫𐠬𐠭𐠮𐠯𐠰𐠱𐠲𐠳𐠴𐠵𐠷𐠸𐠼𐠿",
c.punc
},
}
m["grd"] = {
"Guruntum",
3441272,
"cdc-wst",
"Latn",
}
m["grg"] = {
"Madi",
6727664,
"ngf-gmo",
"Latn",
}
m["grh"] = {
"Gbiri-Niragu",
3913936,
"nic-kau",
"Latn",
}
m["gri"] = {
"Ghari",
3104782,
"poz-sls",
"Latn",
}
m["grj"] = {
"Grebo Selatan",
3914444,
"grb",
"Latn",
}
m["grm"] = {
"Talantang Kota Marudu",
6433808,
"poz-san",
"Latn",
}
m["gro"] = {
"Groma",
56551,
"sit-tib",
}
m["grq"] = {
"Gorovu",
56355,
"paa-por",
"Latn",
}
m["grs"] = {
"Gresi",
5607612,
"paa-nim",
"Latn",
}
m["grt"] = {
"Garo",
36137,
"tbq-bdg",
"Latn, Beng, Brai",
}
m["gru"] = {
"Kistane",
13273,
"sem-eth",
"Latn, Ethi",
}
m["grv"] = {
"Grebo Tengah",
18385114,
"grb",
"Latn",
}
m["grw"] = {
"Gweda",
5623387,
"poz-ocw",
"Latn",
}
m["grx"] = {
"Guriaso",
12631954,
"qfa-unc", -- tiada konsensus; mungkin Kwomtari menurut Baron (1983) dan Usher (2020), tetapi tiada pertalian diterima oleh
-- Glottolog.
"Latn",
}
m["gry"] = {
"Grebo Barclayville",
11157342,
"grb",
"Latn",
}
m["grz"] = {
"Guramalum",
3120935,
"poz-ocw",
"Latn",
}
m["gse"] = {
"Bahasa Isyarat Ghana",
35289,
"sgn-asl",
"Latn", -- apabila didokumentasikan
}
m["gsg"] = {
"Bahasa Isyarat Jerman",
33282,
"sgn-gsl",
"Sgnw",
}
m["gsl"] = {
"Gusilay",
35439,
"alv-jol",
"Latn",
}
m["gsm"] = {
"Bahasa Isyarat Guatemala",
2886781,
"sgn",
"Zxxx", -- tidak bertulis
}
m["gsn"] = {
"Gusan",
11732224,
"ngf-era",
"Latn",
}
m["gso"] = {
"Gbaya Barat Daya",
4919322,
"gba-sou",
"Latn",
}
m["gsp"] = {
"Wasembo",
7971402,
"ngf-mad", -- diletakkan di bawah Pesisir Rai oleh Glottolog (di bawah Yaganon Raya) dan Pawley-Hammarström
"Latn",
}
m["gss"] = {
"Bahasa Isyarat Yunani",
3565084,
"sgn",
}
m["gsw"] = {
"Jerman Alemannik",
131339,
"gmw-hgm",
"Latn",
wikimedia_codes = "als",
ancestors = "gmh",
}
m["gta"] = {
"Guató",
3027940,
"qfa-dis", -- pencilan atau Makro-Jê
"Latn",
}
m["gtu"] = {
"Aghu Tharrnggala",
16825981,
"aus-pmn",
"Latn",
}
m["gua"] = {
"Shiki",
3913946,
"nic-jrn",
"Latn",
}
m["gub"] = {
"Guajajára",
7699720,
"tup-gua",
"Latn",
}
m["guc"] = {
"Wayuu",
891085,
"awd-taa",
"Latn",
}
m["gud"] = {
"Dida Yocoboué",
21074781,
"kro-did",
"Latn",
}
m["gue"] = {
"Gurindji",
10511016,
"aus-pam",
"Latn",
}
m["guf"] = {
"Gupapuyngu",
10511004,
"aus-yol",
"Latn",
}
m["gug"] = {
"Guarani Paraguay",
17478066,
"gn",
"Latn",
wikimedia_codes = "gn",
ancestors = "gn-cls",
}
m["guh"] = {
"Guahibo",
2669193,
"sai-guh",
"Latn",
}
m["gui"] = {
"Guarani Bolivia Timur",
2963912,
"gn",
"Latn",
}
m["guk"] = {
"Gumuz",
2396970,
"ssa",
"Latn, Ethi",
}
m["gul"] = {
"Gullah",
33395,
"crp",
"Latn",
ancestors = "en",
}
m["gum"] = {
"Guambiano",
2744745,
"sai-bar",
"Latn",
}
m["gun"] = {
"Guarani Mbya",
3915584,
"gn",
"Latn",
}
m["guo"] = {
"Guayabero",
2980375,
"sai-guh",
"Latn",
}
m["gup"] = {
"Gunwinggu",
1406574,
"aus-gun",
"Latn",
}
m["guq"] = {
"Aché",
383701,
"tup",
"Latn",
}
m["gur"] = {
"Farefare",
35331,
"nic-mre",
"Latn",
}
m["gus"] = {
"Bahasa Isyarat Guinea",
15983937,
"sgn-asl", -- sic, bukan sgn-fsl
"Latn", -- apabila didokumentasikan
}
m["gut"] = {
"Maléku Jaíka",
3915782,
"cba",
"Latn",
}
m["guu"] = {
"Yanomamö",
8048928,
"sai-ynm",
"Latn",
}
m["guv"] = {
"Gey",
11137816,
"alv-sav",
"Latn",
}
m["guw"] = {
"Gun",
3111668,
"alv-gbe",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.macron},
}
m["gux"] = {
"Gourmanchéma",
35474,
"nic-grm",
"Latn",
}
m["guz"] = {
"Gusii",
33603,
"bnt-lok",
"Latn",
}
m["gva"] = {
"Kaskihá",
3033534,
"sai-mas",
"Latn",
}
m["gvc"] = {
"Guanano",
3566001,
"sai-tuc",
"Latn",
}
m["gve"] = {
"Duwet",
5317647,
"poz-ocw",
"Latn",
}
local m_langdata = require("Module:languages/data")
-- Dimuatkan mengikut permintaan, kerana mungkin tidak diperlukan (bergantung pada 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["gvf"] = {
"Golin",
3110291,
"ngf-sim",
"Latn",
}
m["gvj"] = {
"Guajá",
3915506,
"tup",
"Latn",
}
m["gvl"] = {
"Gulay",
641737,
"csu-sar",
"Latn",
}
m["gvm"] = {
"Gurmana",
3913363,
"nic-shi",
"Latn",
}
m["gvn"] = {
"Kuku-Yalanji",
5621973,
"aus-pam",
"Latn",
}
m["gvo"] = {
"Gavião do Jiparaná",
5528335,
"tup",
"Latn",
}
m["gvp"] = {
"Gavião Pará",
3365443,
"sai-nje",
"Latn",
}
m["gvr"] = {
"Gurung",
2392342,
"sit-tam",
"Gukh, Deva",
}
m["gvs"] = {
"Gumawana",
5618041,
"poz-ocw",
"Latn",
}
m["gvy"] = {
"Guyani",
10511230,
"aus-pam",
"Latn",
}
m["gwa"] = {
"Mbato",
3914941,
"alv-ptn",
"Latn",
}
m["gwb"] = {
"Gwa",
5623219,
"nic-jrn",
"Latn",
}
m["gwc"] = {
"Kalami",
1675961,
"inc-koh",
"Arab",
strip_diacritics = {
Arab = {
-- aksara "ۂ" kod U+06C2 kepada "ه" dan "هٔ" (U+0647 + U+0654) kepada "ه"; hamzatu l-waṣli kepada alif biasa
from = {"هٔ", "ۂ", "ٱ"},
to = {"ہ", "ہ", "ا"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef .. u(0x065e)
},
},
}
m["gwd"] = {
"Gawwada",
3032135,
"cus-eas",
"Latn, Ethi",
}
m["gwe"] = {
"Gweno",
3358211,
"bnt-chg",
"Latn",
}
m["gwf"] = {
"Gowro",
3812403,
"inc-koh",
"Arab",
}
m["gwg"] = {
"Moo",
6907057,
"alv-bwj",
"Latn",
}
m["gwi"] = {
"Gwich'in",
21057,
"ath-nor",
"Latn",
}
m["gwj"] = {
"Gcwi",
12631978,
"khi-kal",
"Latn",
}
m["gwm"] = {
"Awngthim",
4830109,
"aus-pmn",
"Latn",
}
m["gwn"] = {
"Gwandara",
56521,
"cdc-wst",
"Latn",
}
m["gwr"] = {
"Gwere",
5623559,
"bnt-nyg",
"Latn",
}
m["gwt"] = {
"Gawar-Bati",
33894,
"inc-kun",
"Arab",
}
m["gwu"] = {
"Guwamu",
10511225,
"aus-pam",
"Latn",
}
m["gww"] = {
"Kwini",
10551249,
"aus-wor",
"Latn",
}
m["gwx"] = {
"Gua",
35422,
"alv-gng",
"Latn",
}
m["gxx"] = {
"Wè Selatan",
19921582,
"kro-wee",
"Latn",
}
m["gya"] = {
"Gbaya Barat Laut",
36594,
"gba-wes",
"Latn",
}
m["gyb"] = {
"Garus",
5524492,
"ngf-han",
"Latn",
}
m["gyd"] = {
"Kayardild",
3913770,
"aus-tnk",
"Latn",
}
m["gye"] = {
"Gyem",
5624046,
"nic-jer",
"Latn",
}
m["gyf"] = {
"Gungabula",
10510783,
"aus-pam",
"Latn",
}
m["gyg"] = {
"Gbayi",
11137618,
"nic-ngd",
"Latn",
}
m["gyi"] = {
"Gyele",
35434,
"bnt-mnj",
"Latn",
}
m["gyl"] = {
"Gayil",
5528771,
"omv-aro",
"Latn",
}
m["gym"] = {
"Ngäbere",
3915581,
"cba",
"Latn",
}
m["gyn"] = {
"Kreol Inggeris Guyana",
3305477,
"crp",
"Latn",
ancestors = "en",
}
m["gyo"] = {
"Gyalsumdo",
53575940,
"sit-kyk",
}
m["gyr"] = {
"Guarayu",
3118779,
"tup-gua",
"Latn",
}
m["gyy"] = {
"Gunya",
10511001,
"aus-pam",
"Latn",
}
m["gza"] = {
"Ganza",
5521556,
"omv-mao",
"Latn",
}
m["gzn"] = {
"Gane",
3095108,
"poz-hce",
"Latn",
}
return require("Module:languages").finalizeData(m, "language")
lemgalaa3kb6y28xrwo6emefcvvajhj
Modul:languages/data/3/n
828
9816
373493
265561
2026-09-10T20:02:47Z
SNN95
2113
kemaskini
373493
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["naa"] = {
"Namla",
3508760,
"paa-nto",
"Latn",
}
m["nab"] = {
"Nambikwara",
2068190,
"sai-nmk",
"Latn",
}
m["nac"] = {
"Narak",
6965295,
"ngf-jim",
"Latn",
}
m["nae"] = {
"Naka'ela",
6960073,
"poz",
"Latn",
}
m["naf"] = {
"Nabak",
11732491,
"ngf-san",
"Latn",
}
m["nag"] = {
"Pidgin Naga",
3503454,
"crp",
"Latn",
ancestors = "as",
}
m["nah"] = {
"Nahuatl",
13300,
"azc-nah",
"Latn",
}
m["naj"] = {
"Nalu",
36026,
"alv-nal",
"Latn",
}
m["nak"] = {
"Nakanai",
6528669,
"poz-ocw",
"Latn",
}
m["nal"] = {
"Nalik",
3335387,
"poz-ocw",
"Latn",
}
m["nam"] = {
"Ngan'gityemerri",
3298041,
"aus-dal",
"Latn",
}
-- Sedang ditukar kepada keluarga "Min Nan" ("zhx-nan", yang akan mengambil kod "nan" apabila bahasa itu dapat dikeluarkan). Kekalkan nama "Min Nan" di sini untuk mengelakkan keperluan memindahkan perkara yang sememangnya dijadualkan untuk pelupusan.
m["nan"] = {
"Min Nan",
36495,
"zhx-com",
"Hants, Latn, Bopo, Kana",
wikimedia_codes = "zh-min-nan",
generate_forms = "zh-generateforms",
sort_key = {
Hani = "Hani-sortkey",
Kana = "Kana-sortkey"
},
}
m["nao"] = {
"Naaba",
11883865,
"sit-tib",
ancestors = "xct",
}
m["nap"] = {
"Neapolit",
33845,
"roa-itr",
ancestors = "nap-old",
"Latn",
}
m["naq"] = {
"Khoekhoe",
13301,
"khi-khk",
"Latn",
}
m["nar"] = {
"Iguta",
5621686,
"nic-jer",
"Latn",
}
m["nas"] = {
"Nasioi",
56772,
"paa-sbo",
"Latn",
}
m["nat"] = {
"Hungworo",
3914395,
"nic-kmk",
"Latn",
}
m["naw"] = {
"Nawuri",
35906,
"alv-gng",
"Latn",
}
m["nax"] = {
"Nakwi",
3504178,
"paa-lma",
"Latn",
}
m["nay"] = {
"Ngarrindjeri",
7022091,
"aus-pam",
"Latn",
}
m["naz"] = {
"Nahuatl Coatepec",
5138605,
"azc-nah",
"Latn",
}
m["nba"] = {
"Nyemba",
3346655,
"bnt-clu",
"Latn",
ancestors = "lch",
}
m["nbb"] = {
"Ndoe",
36134,
"nic-eko",
"Latn",
}
m["nbc"] = {
"Chang",
5071694,
"sit-kch",
"Latn",
}
m["nbd"] = {
"Ngbinda",
11132859,
"bnt-boa",
"Latn",
}
m["nbe"] = {
"Naga Konyak",
6430448,
"sit-kch",
"Latn",
}
m["nbg"] = {
"Nagarchal",
13299,
"dra-gon",
}
m["nbh"] = {
"Ngamo",
3438705,
"cdc-wst",
"Latn",
}
m["nbi"] = {
"Naga Mao",
12952905,
"tbq-anp",
"Latn",
}
m["nbj"] = {
"Ngarinman",
10600380,
nil,
"Latn",
}
m["nbk"] = {
"Nake",
11732496,
"ngf-han",
"Latn",
}
m["nbm"] = {
"Ngbaka Ma'bo",
3915331,
"nic-nkm",
"Latn",
}
m["nbn"] = {
"Kuri",
3200540,
"poz",
"Latn",
}
m["nbo"] = {
"Nkukoli",
3914482,
"nic-uce",
"Latn",
}
m["nbp"] = {
"Nnam",
36138,
"nic-eko",
"Latn",
}
m["nbq"] = {
"Nggem",
12952956,
"ngf-dan",
"Latn",
}
m["nbr"] = {
"Numana",
5529310,
"nic-nin",
"Latn",
}
m["nbs"] = {
"Bahasa Isyarat Namibia",
6961792,
"sgn",
"Latn", -- apabila didokumentasikan
}
m["nbt"] = {
"Na",
12952895,
"sit-tan",
"Deva, Latn",
}
m["nbu"] = {
"Naga Rongmei",
12952912,
"sit-zem",
"Latn",
}
m["nbv"] = {
"Ngamambo",
11129694,
"nic-mom",
"Latn",
}
m["nbw"] = {
"Ngbandi Selatan",
17522635,
"nic-ngd",
"Latn",
}
m["nby"] = {
"Ningera",
11732524,
"paa-bew",
"Latn",
}
m["nca"] = {
"Iyo",
6101336,
"ngf-gmo",
"Latn",
}
m["ncb"] = {
"Nicobar Tengah",
3335553,
"aav-nic",
"Deva, Latn",
}
m["ncc"] = {
"Ponam",
3396122,
"poz-aay",
"Latn",
}
m["ncd"] = {
"Nachering",
6957144,
"sit-kic",
"Deva",
}
m["nce"] = {
"Yale",
2992915,
"qfa-dis", -- Papua; pencilan dalam Glottolog dan Palmer (2018); di bawah cadangan keluarga Sungai Senu dalam Usher (2020)
"Latn",
}
m["ncf"] = {
"Notsi",
3344784,
"poz-ocw",
"Latn",
}
m["ncg"] = {
"Nisga'a",
3342138,
"nai-tsi",
"Latn",
}
m["nch"] = {
"Nahuatl Huasteca Tengah",
2194290,
"azc-hua",
"Latn",
}
m["nci"] = {
"Nahuatl Klasik",
559242,
"azc-nah",
"Latn",
strip_diacritics = {remove_diacritics = c.macron},
}
m["ncj"] = {
"Nahuatl Puebla Utara",
15705671,
"azc-nah",
"Latn",
}
m["nck"] = {
"Nakara",
6960662,
"aus-arn",
"Latn",
}
m["ncl"] = {
"Nahuatl Michoacán",
2896217,
"azc-nah",
"Latn",
}
m["ncm"] = {
"Nambo",
42173731,
"paa-nam",
"Latn",
}
m["ncn"] = {
"Nauna",
3337158,
"poz-aay",
"Latn",
}
m["nco"] = {
"Sibe",
56806,
"paa-sbo",
"Latn",
}
m["ncr"] = {
"Ncane",
11297920,
"nic-bbe",
"Latn",
ancestors = "nhu",
}
m["ncs"] = {
"Bahasa Isyarat Nicaragua",
33765,
"sgn",
"Sgnw",
}
m["nct"] = {
"Naga Chothe",
5105385,
"tbq-kuk",
"Beng, Latn",
}
m["ncu"] = {
"Chumburung",
35198,
"alv-gng",
"Latn",
}
m["ncx"] = {
"Nahuatl Puebla Tengah",
5061727,
"azc-nah",
"Latn",
}
m["ncz"] = {
"Natchez",
3111838,
nil,
"Latn",
}
m["nda"] = {
"Ndasa",
35904,
"bnt-kel",
"Latn",
}
m["ndb"] = {
"Kenswei Nsei",
7067553,
"nic-rnn",
"Latn",
}
m["ndc"] = {
"Ndau",
13311,
"bnt-sho",
"Latn",
}
m["ndd"] = {
"Nde-Nsele-Nta",
36131,
"nic-eko",
"Latn",
}
m["ndf"] = {
"Nadruvia",
6957967,
nil,
"Latn",
}
m["ndg"] = {
"Ndengereko",
6983726,
"bnt-mbi",
"Latn",
}
m["ndh"] = {
"Ndali",
6983678,
"bnt-run",
"Latn",
}
m["ndi"] = {
"Chamba Leko",
36381,
"alv-lek",
"Latn",
}
m["ndj"] = {
"Ndamba",
6983684,
"bnt-kil",
"Latn",
}
m["ndk"] = {
"Ndaka",
11164947,
"bnt-nya",
"Latn",
}
m["ndl"] = {
"Ndolo",
6983788,
"bnt-zbi",
"Latn",
ancestors = "lse",
}
m["ndm"] = {
"Ndam",
56283,
"cdc-est",
"Latn",
}
m["ndn"] = {
"Ngundi",
35916,
"bnt-ngn",
"Latn",
}
m["ndp"] = {
"Ndo",
6983774,
"csu-mle",
"Latn",
}
m["ndq"] = {
"Ndombe",
6983792,
"bnt-swb",
"Latn",
}
m["ndr"] = {
"Ndoola",
35837,
"nic-mmb",
"Latn",
}
m["nds"] = {
"Jerman Rendah",
25433,
"gmw-lgm",
"Latn",
ancestors = "gml",
}
m["ndt"] = {
"Ndunga",
6983857,
"nic-mbc",
"Latn",
}
m["ndu"] = {
"Dugun",
11015189,
"alv-dur",
"Latn",
}
m["ndv"] = {
"Ndut",
36028,
"alv-cng",
"Latn",
}
m["ndw"] = {
"Ndobo",
11008568,
"bnt-ngn",
"Latn",
}
m["ndx"] = {
"Nduga",
6983833,
"ngf-ngn",
"Latn",
}
m["ndy"] = {
"Lutos",
6705910,
"csu-val",
"Latn",
}
m["ndz"] = {
"Ndogo",
35983,
"nic-ser",
"Latn",
}
m["nea"] = {
"Ngad'a Timur",
12473454,
"poz-cet",
"Latn",
}
m["neb"] = {
"Toura",
7853636,
"dmn-mda",
"Latn",
}
m["nec"] = {
"Nedebang",
4925378,
"paa-alp",
"Latn",
}
m["ned"] = {
"Nde-Gbite",
11010279,
"nic-grf",
}
m["nee"] = {
"Kumak",
3347266,
"poz-cln",
"Latn",
}
m["nef"] = {
"Nefamese",
6987002,
"crp",
}
m["neg"] = {
"Negidal",
33676,
"tuw-ewe",
"Cyrl",
}
m["neh"] = {
"Nyenkha",
3695185,
"sit-ebo",
"Tibt, Latn",
override_translit = true,
-- translit, display_text, strip_diacritics, sort_key Tibt dalam [[Module:scripts/data]]
}
m["nej"] = {
"Neko",
6989840,
"ngf-gmo",
"Latn",
}
m["nek"] = {
"Neku",
14916900,
"poz-cln",
}
m["nem"] = {
"Nemi",
3338008,
"poz-cln",
"Latn",
}
m["nen"] = {
"Nengone",
3338052,
"poz-cln",
"Latn",
}
m["neo"] = {
"Ná-Meo",
15977293,
"hmn",
}
m["neq"] = {
"Mixe Tengah Utara",
25559729,
nil,
"Latn",
}
m["ner"] = {
"Yahadian",
8046778,
nil,
"Latn",
}
m["nes"] = {
"Kinnauri Bhoti",
21179921,
"sit-las",
}
m["net"] = {
"Nete",
6998869,
"ngf-oen",
"Latn",
}
m["neu"] = {
"Neo",
606917,
"art",
"Latn",
type = "appendix-constructed",
}
m["nev"] = {
"Nyaheun",
7070801,
"mkh-ban",
}
m["new"] = {
"Newar",
33979,
"sit-new",
"Deva, Newa, Ranj",
ancestors = "nwx",
translit = {
Deva = "new-translit",
Newa = "new-Newa-translit",
},
}
m["nex"] = {
"Neme",
12952941,
"paa-nam",
"Latn",
}
m["ney"] = {
"Neyo",
36410,
"kro",
"Latn",
}
m["nez"] = {
"Nez Perce",
3339226,
"nai-shp",
"Latn",
}
m["nfa"] = {
"Dhao",
2053828,
"poz",
"Latn",
}
m["nfd"] = {
"Ahwai",
3913957,
"nic-plt",
"Latn",
}
m["nfl"] = {
"Äiwoo",
56742,
"poz-tem",
"Latn",
}
m["nfr"] = {
"Nafaanra",
13297,
"alv-snf",
"Latn",
}
m["nfu"] = {
"Mfumte",
6826794,
"nic-nka",
"Latn",
}
m["nga"] = {
"Ngbaka",
36022,
"gba-eas",
"Latn",
}
m["ngb"] = {
"Ngbandi Utara",
17522631,
"nic-ngd",
"Latn",
}
m["ngc"] = {
"Ngombe (Congo)",
3123524,
"bnt-bun",
"Latn",
}
m["ngd"] = {
"Ngando (Republik Afrika Tengah)",
35910,
"bnt-ngn",
}
m["nge"] = {
"Ngemba",
6750551,
"nic-nge",
"Latn",
}
m["ngg"] = { -- bandingkan 'aiy'
"Ngbaka Manza",
11033316,
"gba-eas",
"Latn",
}
m["ngh"] = {
"Nǀuu",
2618974,
"khi-tuu",
"Latn",
}
m["ngi"] = {
"Ngizim",
3914924,
"cdc-wst",
"Latn",
}
m["ngj"] = {
"Ngie",
36361,
"nic-mom",
"Latn",
}
m["ngk"] = {
"Ngalkbun",
3913790,
"aus-gun",
"Latn",
}
m["ngl"] = {
"Lomwe",
35824,
"bnt-mak",
"Latn",
}
m["ngm"] = {
"Kreol Lelaki Ngatik",
36400,
"crp",
ancestors = "en, pon",
}
m["ngn"] = {
"Ngwo",
36051,
"nic-mom",
"Latn",
}
m["ngo"] = {
"Ngoni",
7022547,
"bnt-ngu",
"Latn",
}
m["ngp"] = {
"Ngulu",
7193332,
"bnt-seu",
"Latn",
}
m["ngq"] = {
"Ngoreme",
7022573,
"bnt-lok",
"Latn",
}
m["ngr"] = {
"Nagu",
3063524,
"poz-tem",
"Latn",
}
m["ngs"] = {
"Gvoko",
3441188,
"cdc-cbm",
"Latn",
}
m["ngt"] = {
"Ngeq",
25559548,
"mkh-kat",
}
m["ngu"] = {
"Nahuatl Guerrero",
5614980,
"azc-nah",
"Latn",
}
m["ngv"] = {
"Nagumi",
35842,
"nic-jrn",
}
m["ngw"] = {
"Ngwaba",
3440480,
"cdc-cbm",
"Latn",
}
m["ngx"] = {
"Nggwahyi",
56265,
"cdc-cbm",
"Latn",
}
m["ngy"] = {
"Tibea",
36598,
"bnt-baf",
"Latn",
}
m["ngz"] = {
"Ngungwel",
35920,
"bnt-tkc",
"Latn",
}
m["nha"] = {
"Nhanda",
3339380,
"aus-psw",
"Latn",
}
m["nhb"] = {
"Beng",
3913311,
"dmn-nbe",
"Latn",
}
m["nhc"] = {
"Nahuatl Tabasco",
6047326,
"azc-nah",
"Latn",
}
m["nhd"] = {
"Chiripá",
2873230,
"gn",
"Latn",
}
m["nhe"] = {
"Nahuatl Huasteca Timur",
4358289,
"azc-hua",
"Latn",
}
m["nhf"] = {
"Nhuwala",
10600396,
"aus-nga",
"Latn",
}
m["nhg"] = {
"Nahuatl Tetelcingo",
3450252,
"azc-nah",
"Latn",
}
m["nhh"] = {
"Nahari",
6583560,
"inc-hal",
}
m["nhi"] = {
"Nahuatl Zacatlán-Ahuacatlán-Tepetzintla",
12953764,
"azc-nah",
"Latn",
}
m["nhk"] = {
"Nahuatl Cosoleacaque",
12953757,
"azc-nah",
"Latn",
}
m["nhm"] = {
"Nahuatl Morelos",
4800819,
"azc-nah",
"Latn",
}
m["nhn"] = {
"Nahuatl Tengah",
6047309,
"azc-nah",
"Latn",
}
m["nho"] = {
"Takuu",
3409818,
"poz-pnp",
"Latn",
}
m["nhp"] = {
"Nahuatl Pajapan",
12953760,
"azc-nah",
"Latn",
}
m["nhq"] = {
"Nahuatl Huaxcaleca",
12953758,
"azc-nah",
"Latn",
}
m["nhr"] = {
"Naro",
2164778,
"khi-kal",
"Latn",
}
m["nht"] = {
"Nahuatl Ometepec",
7090132,
"azc-nah",
"Latn",
}
m["nhu"] = {
"Noone",
36072,
"nic-bbe",
"Latn",
}
m["nhv"] = {
"Nahuatl Temascaltepec",
2379405,
"azc-nah",
"Latn",
}
m["nhw"] = {
"Nahuatl Huasteca Barat",
2678840,
"azc-hua",
"Latn",
}
m["nhx"] = {
"Nahuatl Mecayapan",
12953756,
"azc-nah",
"Latn",
}
m["nhy"] = {
"Nahuatl Oaxaca Utara",
12953763,
"azc-nah",
"Latn",
}
m["nhz"] = {
"Nahuatl Santa María La Alta",
15705753,
"azc-nah",
"Latn",
}
m["nia"] = {
"Nias",
2407831,
"poz-nws",
"Latn",
}
m["nib"] = {
"Nakame",
11732495,
"ngf-boa",
"Latn",
}
m["nid"] = {
"Ngandi",
7021977,
"aus-arn",
"Latn",
}
m["nie"] = {
"Niellim",
33662,
"alv-bua",
}
m["nif"] = {
"Nek",
6989781,
"ngf-boa",
"Latn",
}
m["nig"] = {
"Ngalakan",
3913796,
"aus-gun",
"Latn",
}
m["nih"] = {
"Nyiha",
11128374,
"bnt-mby",
"Latn",
}
m["nii"] = {
"Nii",
35237,
"ngf-wah",
"Latn",
}
m["nij"] = {
"Ngaju",
2992872,
"poz-brw",
"Latn",
}
m["nik"] = {
"Nicobar Selatan",
7570194,
"aav-nic",
}
m["nil"] = {
"Nila",
7036821,
"poz-cet",
"Latn",
}
m["nim"] = {
"Nilamba",
4121200,
"bnt-tkm",
"Latn",
}
m["nin"] = {
"Ninzo",
3914021,
"nic-nin",
"Latn",
}
m["nio"] = {
"Nganasan",
36743,
"syd",
"Cyrl",
translit = "nio-translit",
}
m["niq"] = {
"Nandi",
6956591,
"sdv-nma",
"Latn",
}
m["nir"] = {
"Nimboran",
301116,
"paa-nim",
"Latn",
}
m["nis"] = {
"Nimi",
11732523,
"ngf-era",
"Latn",
}
m["nit"] = {
"Kolami Tenggara",
56767,
"dra-knk",
"Deva, Telu",
translit = {
Telu = "te-translit"
},
}
m["niu"] = {
"Niue",
33790,
"poz-ton",
"Latn",
}
m["niv"] = {
"Nivkh",
36464,
"qfa-iso",
"Cyrl, Latn",
translit = "niv-translit",
strip_diacritics = {
from = {"['’]"},
to = {"ʼ"}
},
sort_key = "niv-sortkey",
}
m["niw"] = {
"Nimo",
3504126,
"paa-lma",
"Latn",
}
m["nix"] = {
"Hema",
5710904,
"bnt-nyg",
"Latn",
}
m["niy"] = {
"Ngiti",
7022396,
"csu-lnd",
"Latn",
}
m["niz"] = {
"Ningil",
11732527,
"paa-wap",
"Latn",
}
m["nja"] = {
"Nzanyi",
3441299,
"cdc-cbm",
"Latn",
}
m["njb"] = {
"Nocte",
7046410,
"sit-tno",
}
m["njh"] = {
"Naga Lotha",
33590,
"sit-aao",
"Latn",
}
m["nji"] = {
"Gudanji",
3915692,
"aus-mir",
"Latn",
}
m["njj"] = {
"Njen",
36112,
"nic-mom",
"Latn",
}
m["njl"] = {
"Njalgulgule",
7071229,
"sdv-daj",
}
m["njm"] = {
"Angami",
56761,
"tbq-anp",
"Latn",
}
m["njn"] = {
"Naga Liangmai",
14194500,
"sit-zem",
"Latn",
}
m["njr"] = {
"Njerep",
35844,
"nic-mmb",
"Latn",
}
m["njs"] = {
"Nisa",
13593518,
"paa-egb",
"Latn",
}
m["njt"] = {
"Pidgin Ndyuka-Trio",
13591205,
"crp",
ancestors = "djk, tri",
}
m["nju"] = {
"Ngadjunmaya",
7021846,
"aus-pam",
"Latn",
}
m["njx"] = {
"Kunyi",
3196559,
"bnt-kng",
"Latn",
}
m["njy"] = {
"Njyem",
35898,
"bnt-ndb",
"Latn",
}
m["njz"] = {
"Nyishi",
56870,
"sit-tan",
"Latn",
}
m["nka"] = {
"Nkoya",
7042633,
"bnt-lbn",
"Latn",
}
m["nkb"] = {
"Naga Khoibu",
21481876,
"sit-mar",
}
m["nkc"] = {
"Nkongho",
35863,
"bnt-saw",
"Latn",
}
m["nkd"] = {
"Koireng",
6426342,
"sit-zem",
}
m["nke"] = {
"Duke",
3041075,
"poz-ocw",
"Latn",
}
m["nkf"] = {
"Naga Inpui",
21481817,
"sit-zem",
}
m["nkg"] = {
"Nekgini",
11732509,
"ngf-gmo",
"Latn",
}
m["nkh"] = {
"Naga Khezha",
6401519,
"tbq-anp",
}
m["nki"] = {
"Naga Thangal",
56374,
"sit-zem",
}
m["nkj"] = {
"Nakai",
14916897,
"ngf-tna",
"Latn",
}
m["nkk"] = {
"Nokuku",
7048122,
"poz-vnn",
"Latn",
}
m["nkm"] = {
"Namat",
15634505,
"paa-nam",
"Latn",
}
m["nkn"] = {
"Nkangala",
10962292,
"bnt-clu",
"Latn",
ancestors = "mck",
}
m["nko"] = {
"Nkonya",
35867,
"alv-gng",
"Latn",
}
m["nkp"] = {
"Niuatoputapu",
3399095,
"poz-pnp",
"Latn",
}
m["nkq"] = {
"Nkami",
7042522,
"alv-gng",
"Latn",
}
m["nkr"] = {
"Nukuoro",
2635961,
"poz-pnp",
"Latn",
}
m["nks"] = {
"Asmat Utara",
11732049,
"ngf-asm",
"Latn",
}
m["nkt"] = {
"Nyika",
16917497,
"bnt-mwi",
"Latn",
}
m["nku"] = {
"Kulango Bouna",
20668241,
"alv-kul",
}
-- nkv dilayan sebagai nkt, lihat [[WT:LT]]
m["nkw"] = {
"Nkutu",
7193313,
"bnt-tet",
"Latn",
}
m["nkx"] = {
"Nkoroo",
36000,
"ijo",
}
m["nkz"] = {
"Nkari",
11130307,
"nic-ief",
ancestors = "ibr",
}
m["nla"] = {
"Ngombale",
36292,
"bai",
"Latn",
}
m["nlc"] = {
"Nalca",
6960839,
"ngf-mek",
"Latn",
}
m["nle"] = {
"Nyala Timur",
25559347,
"bnt-msl",
"Latn",
ancestors = "luy",
}
m["nlg"] = {
"Gela",
3063531,
"poz-sls",
"Latn",
}
m["nli"] = {
"Grangali",
3444203,
"inc-kun",
"Arab",
}
m["nlj"] = {
"Nyali",
7070830,
"bnt-nya",
"Latn",
}
m["nlk"] = {
"Yali Ninia",
12953310,
"ngf-yal",
"Latn",
}
m["nll"] = {
"Nihali",
33904,
"qfa-iso",
"Deva, Latn",
}
m["nlm"] = {
"Mankiyali",
47522426,
"inc-koh",
}
m["nlo"] = {
"Ngwi",
35894,
"bnt-bdz",
"Latn",
}
m["nlq"] = {
"Naga Lao",
63283609,
"sit-tno",
}
m["nlu"] = {
"Nchumbulu",
36143,
"alv-gng",
"Latn",
}
m["nlv"] = {
"Nahuatl Orizaba",
3086050,
"azc-nah",
"Latn",
}
m["nlw"] = {
"Walangama",
7961277,
}
m["nlx"] = {
"Nahali",
33361,
"inc-bhi",
}
m["nly"] = {
"Nyamal",
7070837,
"aus-nga",
"Latn",
}
m["nlz"] = {
"Nalögo",
20527138,
"poz-tem",
"Latn",
}
m["nma"] = {
"Naga Maram",
56378,
"sit-zem",
}
m["nmb"] = {
"Big Nambas",
2902304,
"poz-vnc",
"Latn",
}
m["nmc"] = {
"Ngam",
3915446,
"csu-sar",
"Latn",
}
m["nmd"] = {
"Ndumu",
35901,
"bnt-mbt",
"Latn",
}
m["nme"] = {
"Naga Mzieme",
6949473,
"sit-zem",
}
m["nmf"] = {
"Naga Tangkhul",
7682992,
"sit-tng",
"Latn, Mtei",
}
m["nmg"] = {
"Kwasio",
34098,
"bnt-mnj",
"Latn",
}
m["nmh"] = {
"Naga Monsang",
6902496,
}
m["nmi"] = {
"Nyam",
3438738,
"cdc-wst",
"Latn",
}
m["nmj"] = {
"Ngombe (Republik Afrika Tengah)",
3913949,
"gba-sou",
}
m["nmk"] = {
"Namakura",
3335410,
"poz-vnc",
"Latn",
}
m["nml"] = {
"Ndemli",
36089,
"nic-grf",
"Latn",
}
m["nmm"] = {
"Manangba",
6746900,
"sit-tam",
"Tibt, Deva",
override_translit = true,
-- translit, display_text, strip_diacritics, sort_key Tibt dalam [[Module:scripts/data]]
}
m["nmn"] = {
"ǃXóõ",
13229,
"khi-tuu",
"Latn",
}
m["nmo"] = {
"Naga Moyon",
6927748,
"tbq-kuk",
}
m["nmp"] = {
"Nimanbur",
16891606,
}
m["nmq"] = {
"Nambya",
11008869,
"bnt-sho",
"Latn",
}
m["nmr"] = {
"Nimbari",
36069,
"alv-lni",
}
m["nms"] = {
"Letemboi",
3236886,
"poz-vnc",
"Latn",
}
m["nmt"] = {
"Namonuito",
12908815,
"poz-mic",
}
m["nmu"] = {
"Maidu Timur Laut",
3278074,
"nai-mdu",
"Latn",
}
m["nmv"] = {
"Ngamini",
7021944,
"aus-kar",
"Latn",
}
m["nmw"] = {
"Nimoa",
7037729,
"poz-ocw",
"Latn",
}
m["nmx"] = {
"Nama",
20812287,
"paa-nam",
"Latn",
}
m["nmy"] = {
"Namuyi",
56844,
"sit-nax",
"Latn",
}
m["nmz"] = {
"Nawdm",
36085,
"nic-yon",
"Latn",
}
m["nna"] = {
"Nyangumarta",
33653,
"aus-pam",
"Latn",
}
m["nnb"] = {
"Nande",
3196953,
"bnt-glb",
"Latn",
}
m["nnc"] = {
"Nancere",
3140491,
"cdc-est",
"Latn",
}
m["nnd"] = {
"Ambae Barat",
2841479,
"poz-vnn",
"Latn",
}
m["nne"] = {
"Ngandyera",
10961003,
"bnt-ova",
"Latn",
}
m["nnf"] = {
"Ngaing",
11732510,
"ngf-gmo",
"Latn",
}
m["nng"] = {
"Naga Maring",
12952908,
"sit-mar",
}
m["nnh"] = {
"Ngiemboon",
36286,
"bai",
"Latn",
}
m["nni"] = {
"Nuaulu Utara",
12952968,
"poz-cma",
}
m["nnj"] = {
"Nyangatom",
4662604,
"sdv-ttu",
}
m["nnk"] = {
"Nankina",
11732502,
"ngf-yup",
"Latn",
}
m["nnl"] = {
"Naga Rengma Utara",
7067615,
"tbq-anp",
}
m["nnm"] = {
"Namia",
56363,
"paa-sep",
"Latn",
}
m["nnn"] = {
"Ngete",
56625,
"cdc-mas",
"Latn",
}
m["nnp"] = {
"Wancho",
7967085,
"sit-kch",
"Wcho, Deva, Latn",
}
m["nnq"] = {
"Ngindo",
7022366,
"bnt-mbi",
"Latn",
}
m["nnr"] = {
"Narungga",
13591127,
"aus-pam",
"Latn",
}
m["nnt"] = {
"Nanticoke",
3915517,
"alg-eas",
"Latn",
}
m["nnu"] = {
"Dwang",
35258,
"alv-gng",
"Latn",
}
m["nnv"] = {
"Nukunu",
10604066,
nil,
"Latn",
}
m["nnw"] = {
"Nuni Selatan",
11152248,
"nic-gnn",
"Latn",
}
m["nnx"] = {
"Ngong",
12952915,
}
m["nny"] = { -- kontras aus-ynk
"Nyangga",
10604331,
"aus-tnk",
"Latn",
}
m["nnz"] = {
"Nda'nda'",
36016,
"bai",
"Latn",
}
m["noa"] = {
"Woun Meu",
3111873,
"sai-chc",
"Latn",
}
m["noc"] = {
"Nuk",
11732534,
"ngf-boa",
"Latn",
}
m["nod"] = {
"Thai Utara",
565110,
"tai-swe",
"Lana, Thai",
strip_diacritics = {remove_diacritics = c.ZWNJ},
sort_key = {
Lana = "Lana-sortkey",
Thai = "Thai-sortkey"
},
}
m["noe"] = {
"Nimadi",
3502294,
"raj",
"Deva",
translit = "hi-translit",
}
m["nof"] = {
"Nomane",
11732531,
"ngf-sim",
"Latn",
}
m["nog"] = {
"Nogai",
33871,
"trk-kno",
"Cyrl, Arab, Latn",
translit = "nog-translit",
override_translit = true,
}
m["noh"] = {
"Nomu",
11732532,
"ngf-dal",
"Latn",
}
m["noi"] = {
"Noiri",
12953774,
"inc-bhi",
}
m["noj"] = {
"Nonuya",
5372139,
"sai-wit",
"Latn",
}
m["nok"] = {
"Nooksack",
3343396,
"sal",
}
m["nol"] = {
"Nomlaki",
3343229,
"nai-wtq",
"Latn",
}
-- "nom" Nocamán digabungkan oleh ISO ke dalam "cbr"
m["non"] = {
"Norse Kuno",
35505,
"gmq",
"Latn, Runr",
translit = {Runr = "Runr-translit"},
}
m["nop"] = {
"Numanggang",
7069052,
"ngf-boa",
"Latn",
}
m["noq"] = {
"Ngongo",
11057478,
"bnt-yak",
"Latn",
}
m["nos"] = {
"Nisu Timur",
25559419,
"tbq-nis",
}
m["not"] = {
"Nomatsiguenga",
3342992,
"awd",
"Latn",
}
m["nou"] = {
"Ewage-Notu",
5418860,
"ngf-bin",
"Latn",
}
m["nov"] = {
"Novial",
36738,
"art",
"Latn",
type = "appendix-constructed"
}
m["now"] = {
"Nyambo",
4967930,
"bnt-haj",
"Latn",
}
m["noy"] = {
"Noy",
36321,
"alv-bua",
"Latn",
}
m["noz"] = {
"Nayi",
3183349,
"omv-diz",
}
m["npa"] = {
"Nar Phu",
4926353,
"sit-tam",
}
m["npb"] = {
"Nupbikha",
3695201,
"sit-ebo",
}
m["npg"] = {
"Ponyo",
7228475,
"sit-kch",
}
m["nph"] = {
"Phom",
7187109,
"sit-kch",
}
m["npl"] = {
"Nahuatl Puebla Tenggara",
4632950,
"azc-nah",
"Latn",
}
m["npn"] = {
"Mondropolon",
3320594,
"poz-aay",
}
m["npo"] = {
"Naga Pochuri",
7206342,
"tbq-anp",
}
m["nps"] = {
"Nipsan",
11732528,
"ngf-mek",
"Latn",
}
m["npu"] = {
"Naga Puimei",
7259044,
"sit-zem",
}
m["npx"] = {
"Noipä",
63283617,
"poz-tem",
"Latn",
}
m["npy"] = {
"Napu",
12953768,
}
m["nqg"] = {
"Ede Nago",
12952408,
"alv-ede",
"Latn",
}
m["nqk"] = {
"Kura Ede Nago",
12952409,
"alv-ede",
}
m["nql"] = {
"Ngendelengo",
63283693,
"bnt-swb",
"Latn",
}
m["nqm"] = {
"Ndom",
6983791,
"paa-kol",
"Latn",
}
m["nqn"] = {
"Nen",
20816352,
"paa-nam",
"Latn",
}
m["nqo"] = {
"N'Ko",
18546266,
"dmn-man",
"Nkoo",
}
m["nqq"] = {
"Naga Kyan-Karyaw",
63283784,
"sit-tno",
}
m["nqy"] = {
"Akyaung Ari",
4702035,
"sit-tng",
}
m["nra"] = {
"Ngom",
36087,
"bnt-kel",
"Latn",
}
m["nrb"] = {
"Nara",
36179,
"sdv-nes",
"Latn",
}
m["nrc"] = {
"Noric",
37023,
"cel",
"Ital",
-- translit Ital dalam [[Module:scripts/data]]
}
m["nre"] = {
"Naga Rengma Selatan",
7313205,
"tbq-anp",
}
m["nrf"] = {
"Norman",
33850,
"roa-oil",
"Latn",
wikimedia_codes = "nrm",
ancestors = "fro-nor",
sort_key = s["roa-oil-sortkey"],
}
m["nrg"] = {
"Narango",
12952929,
"poz-vnn",
"Latn",
}
m["nri"] = {
"Naga Chokri",
5104247,
"tbq-anp",
}
m["nrk"] = {
"Ngarla",
3915860,
"aus-nga",
"Latn",
}
m["nrl"] = {
"Ngarluma",
7022078,
"aus-nga",
"Latn",
}
m["nrm"] = {
"Narom",
3336135,
"poz-swa",
"Latn",
}
m["nrn"] = {
"Norn",
36708,
"gmq-ins",
"Latn",
}
m["nrp"] = {
"Picene Utara",
430138,
"qfa-unc", -- pupus, mungkin satu penipuan
"Ital",
-- translit Ital dalam [[Module:scripts/data]]
}
m["nrr"] = {
"Norra",
12952967,
"tai",
}
m["nrt"] = {
"Kalapuya Utara",
3192121,
"nai-klp",
}
m["nru"] = {
"Narua",
21658869,
"sit-nas",
"Latn",
}
m["nrx"] = {
"Ngurmbur",
2591251,
}
m["nrz"] = {
"Lala (New Guinea)",
6480151,
"poz-ocw",
"Latn",
}
m["nsa"] = {
"Naga Sangtam",
7418144,
"sit-aao",
}
m["nsb"] = {
"Nossob Bawah",
6693681,
"khi-tuu",
"Latn",
}
m["nsc"] = {
"Nshi",
11129508,
"nic-rnn",
"Latn",
}
m["nsd"] = {
"Nisu Selatan",
63284284,
"tbq-nis",
}
m["nse"] = {
"Nsenga",
3081996,
"bnt-sna",
"Latn",
}
m["nsf"] = {
"Nisu Barat Laut",
42310421,
"tbq-nis",
}
m["nsg"] = {
"Ngasa",
56345,
"sdv-lma",
}
m["nsh"] = {
"Ngoshie",
7022582,
"nic-mom",
"Latn",
}
m["nsi"] = {
"Bahasa Isyarat Nigeria",
7033021,
"sgn-asl",
}
m["nsk"] = {
"Naskapi",
1704302,
"alg",
"Cans, Latn",
ancestors = "cr",
translit = "nsk-translit",
}
m["nsl"] = {
"Bahasa Isyarat Norway",
1781613,
"sgn",
}
m["nsm"] = {
"Sema",
3478238,
"tbq-anp",
}
m["nsn"] = {
"Nehan",
3337774,
"poz-ocw",
"Latn",
}
m["nso"] = {
"Sotho Utara",
33890,
"bnt-sts",
"Latn",
}
m["nsp"] = {
"Bahasa Isyarat Nepal",
3915492,
"sgn",
}
m["nsq"] = {
"Miwok Sierra Utara",
3344226,
"nai-utn",
"Latn",
}
m["nsr"] = {
"Bahasa Isyarat Maritim",
3915483,
"sgn",
}
m["nss"] = {
"Nali",
3335385,
"poz-aay",
}
m["nst"] = {
"Tangsa",
56350,
"sit-tno",
"Latn, Tnsa",
}
m["nsu"] = {
"Nahuatl Sierra Negra",
63284326,
"azc-nah",
"Latn",
}
m["nsw"] = {
"Navut",
3337327,
"poz-vnn",
"Latn",
}
m["nsx"] = {
"Nsongo",
7067577,
"bnt-tmb",
"Latn",
}
m["nsy"] = {
"Nasal",
6966574,
}
m["nsz"] = {
"Nisenan",
33665,
"nai-mdu",
"Latn",
}
m["ntd"] = {
"Tidung Utara",
24938325,
"poz-san",
}
-- ISO menggabungkan "nte" ke dalam "eko"
m["ntg"] = {
"Ngantangarra",
33060509,
}
m["nti"] = {
"Natioro",
36140,
"alv-wan",
}
m["ntj"] = {
"Ngaanyatjarra",
3915409,
"aus-pam",
"Latn",
}
m["ntk"] = {
"Ikoma",
5996114,
"bnt-lok",
"Latn",
}
m["ntm"] = {
"Nateni",
3070731,
"nic-grm",
"Latn",
}
m["nto"] = {
"Ntomba",
11130292,
"bnt-mon",
"Latn",
}
m["ntp"] = {
"Tepehuan Utara",
15615651,
"azc-pim",
"Latn",
sort_key = {remove_diacritics = c.acute},
}
m["ntr"] = {
"Delo",
35195,
"nic-gne",
"Latn",
}
m["nts"] = {
"Natagaimas",
6967931,
}
m["ntu"] = {
"Natügu",
63308082,
"poz-tem",
"Latn",
}
m["ntw"] = {
"Nottoway",
3344791,
"iro-nor",
"Latn",
}
m["ntx"] = {
"Somra",
7560536,
"sit-tng",
}
m["nty"] = {
"Mantsi",
56878,
"sit-mnz",
}
m["nua"] = {
"Yuanga",
3573088,
"poz-cln",
"Latn",
}
m["nuc"] = {
"Nukuini",
3346231,
}
m["nud"] = {
"Ngala",
7021893,
"paa-ndu",
"Latn",
}
m["nue"] = {
"Ngundu",
12952953,
"bad-cnt",
"Latn",
}
m["nuf"] = {
"Nusu",
56413,
"tbq-nus",
"Latn",
}
m["nug"] = {
"Nungali",
7069826,
"aus-mir",
"Latn",
}
m["nuh"] = {
"Ndunda",
3913968,
"nic-mmb",
"Latn",
}
m["nui"] = {
"Ngumbi",
36459,
"bnt-yko",
}
m["nuj"] = {
"Nyole (Uganda)",
3739448,
"bnt-msl",
"Latn",
}
m["nuk"] = {
"Nootka",
2992876,
"wak",
"Latn",
}
m["nul"] = {
"Nusa Laut",
7070332,
"poz-cma",
"Latn",
}
m["num"] = {
"Niuafo'ou",
36173,
"poz-ton",
"Latn",
}
m["nun"] = {
"Anong",
2748232,
"sit-nng",
"Latn",
}
m["nuo"] = {
"Nguôn",
3915785,
"mkh-vie",
"Latn",
sort_key = "vi-sortkey",
}
m["nup"] = {
"Nupe",
36720,
"alv-ngb",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},
sort_key = "nup-sortkey",
}
m["nuq"] = {
"Nukumanu",
12909019,
"poz-pnp",
"Latn",
}
m["nur"] = {
"Nuguria",
7068910,
"poz-pnp",
"Latn",
}
m["nus"] = {
"Nuer",
33675,
"sdv-dnu",
"Latn",
}
m["nut"] = {
"Nùng",
72695,
"tai",
"Latn, Hani",
sort_key = {Hani = "Hani-sortkey"},
}
m["nuu"] = {
"Ngbundu",
11126081,
"bad",
"Latn",
}
m["nuv"] = {
"Nuni Utara",
11016572,
"nic-gnn",
"Latn",
}
m["nuw"] = {
"Nguluwan",
6528643,
}
m["nux"] = {
"Mehek",
6809452,
"paa-sep",
"Latn",
}
m["nuy"] = {
"Nunggubuyu",
1747811,
"aus-arn",
"Latn",
}
m["nuz"] = {
"Nahuatl Tlamacazapa",
2073277,
"azc-nah",
"Latn",
}
m["nvh"] = {
"Nasarian",
6966614,
"poz-vnc",
"Latn",
}
m["nvm"] = {
"Namiae",
12952922,
"ngf-koi",
"Latn",
}
m["nvo"] = {
"Nyokon",
19573407,
"nic-mbw",
"Latn",
}
m["nwa"] = {
"Nawathinehena",
6982892,
"alg-ara",
"Latn",
}
m["nwb"] = {
"Nyabwa",
33664,
"kro-wee",
}
m["nwc"] = {
"Newar Klasik",
5128301,
"sit-new",
"Brah, Deva, Newa, Ranj",
-- Translit Brah dalam [[Module:scripts/data]] (NOTA: tidak hadir sebelum ini, berkemungkinan ketinggalan secara tidak sengaja)
}
m["nwe"] = {
"Ngwe",
36181,
"bai",
"Latn",
}
m["nwg"] = {
"Ngaiawang",
16920653,
"aus-pam",
"Latn",
}
m["nwi"] = {
"Tanna Barat Daya",
3504488,
"poz-vns",
"Latn",
}
m["nwm"] = {
"Nyamusa-Molo",
12747951,
"csu-bbk",
}
m["nwo"] = {
"Nauo",
6981305,
"aus-pam",
"Latn",
}
m["nwr"] = {
"Nawaru",
12638166,
"ngf-yar",
"Latn",
}
m["nwx"] = {
"Newar Pertengahan",
65455877,
"sit-new",
"Deva, Newa, Ranj",
ancestors = "nwc",
}
m["nwy"] = {
"Nottoway-Meherrin",
65455878,
"iro-nor",
"Latn",
}
m["nxa"] = {
"Nauete",
6981095,
"poz-tim",
}
m["nxd"] = {
"Ngando (Congo)",
3913277,
"bnt-ske",
}
m["nxe"] = {
"Nage",
2295569,
"poz-cet",
}
m["nxg"] = {
"Ngadha",
1516651,
"poz-cet",
"Latn",
}
m["nxi"] = {
"Nindi",
7038230,
"bnt-mbi",
"Latn",
}
m["nxl"] = {
"Nuaulu Selatan",
18544857,
"poz-cma",
}
m["nxm"] = {
"Numidia",
35761,
"afa",
"Tfng, Latn", --Tfng mungkin tidak menyokong semua aksara yang diperlukan
}
m["nxn"] = {
"Ngawun",
3915711,
"aus-pam",
"Latn",
}
m["nxo"] = {
"Ndambomo",
6983681,
"bnt-kel",
"Latn",
}
m["nxq"] = {
"Naxi",
2478711,
"sit-nas",
"Nkdb, Nkgb, Latn, Lisu",
-- translit, sort_key Lisu dalam [[Module:scripts/data]]
}
m["nxr"] = {
"Ninggerum",
11732526,
"ngf-lok",
"Latn",
}
-- nxu (Narau) digabungkan ke dalam bpp (Kaure) mengikut penggabungan ISO 639-3 2020
m["nxx"] = {
"Nafri",
6958211,
"paa-sen",
"Latn",
}
m["nyb"] = {
"Nyangbo",
36256,
"alv-ktg",
"Latn",
}
m["nyc"] = {
"Nyanga-li",
7070876,
"bnt-boa",
"Latn",
}
m["nyd"] = {
"Nyole (Kenya)",
7071227,
"bnt-msl",
"Latn",
}
m["nye"] = {
"Nyengo",
7071068,
"bnt-clu",
"Latn",
}
m["nyf"] = {
"Giryama",
3107606,
"bnt-mij",
"Latn",
}
m["nyg"] = {
"Nyindu",
11030685,
"bnt-shh",
"Latn",
}
m["nyh"] = {
"Nyigina",
3913780,
"aus-nyu",
"Latn",
}
m["nyi"] = {
"Nyimang",
34846,
"sdv-nyi",
"Latn",
}
m["nyj"] = {
"Nyanga (Congo)",
7070879,
"bnt-nyb",
"Latn",
}
m["nyk"] = {
"Nyaneka",
10962298,
"bnt-swb",
"Latn",
}
m["nyl"] = {
"Nyeu",
3033578,
"mkh-kat",
}
m["nym"] = {
"Nyamwezi",
4121131,
"bnt-tkm",
"Latn",
}
m["nyn"] = {
"Nyankole",
13207,
"bnt-nyg",
"Latn",
}
m["nyo"] = {
"Nyoro",
33794,
"bnt-nyg",
"Latn",
}
m["nyp"] = {
"Nyang'i",
7070894,
"ssa-klk",
}
m["nys"] = {
"Nyunga",
7049771,
"aus-pam",
"Latn",
}
m["nyt"] = {
"Nyawaygi",
3915783,
"aus-dyb",
"Latn",
}
m["nyu"] = {
"Nyungwe",
7071318,
"bnt-sna",
"Latn",
}
m["nyv"] = {
"Nyulnyul",
3442732,
"aus-nyu",
"Latn",
}
m["nyw"] = {
"Nyaw",
26425602,
"tai-nor", -- Chamberlain (1991), tetapi Pittayaporn (2009) mencadangkan tai-swe
"Thai, Tayo", -- Thailand
sort_key = "Thai-sortkey", -- tiada kesan pada Latn
}
m["nyx"] = {
"Nganyaywana",
3913800,
"aus-cww",
"Latn",
}
m["nyy"] = {
"Nyakyusa",
3272620,
"bnt-run",
"Latn",
}
m["nza"] = {
"Mbembe Tigon",
36518,
"nic-jkn",
"Latn",
}
m["nzb"] = {
"Njebi",
35923,
"bnt-nze",
"Latn",
}
m["nzd"] = {
"Nzadi",
17152586,
"bnt-bdz",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.caron},
}
m["nzi"] = {
"Nzima",
36337,
"alv-ctn",
"Latn",
}
m["nzk"] = {
"Nzakara",
3913339,
"znd",
"Latn",
}
m["nzm"] = {
"Naga Zeme",
21491053,
"sit-zem",
}
m["nzs"] = {
"Bahasa Isyarat New Zealand",
36239,
"sgn",
}
m["nzu"] = {
"Teke Tengah",
36473,
"bnt-tkc",
"Latn",
}
m["nzy"] = {
"Nzakambay",
36374,
"alv-mbm",
"Latn",
}
m["nzz"] = {
"Dogon Nanga Dama",
6963443,
"nic-nwa",
}
return require("Module:languages").finalizeData(m, "language")
22qqayp9atjgablczziprlg8ddaxddo
Modul:etymology languages/data
828
10037
373475
280831
2026-09-10T17:10:06Z
SNN95
2113
kemaskini
373475
Scribunto
text/plain
local m_langdata = require("Module:languages/data")
-- Dimuatkan atas permintaan, kerana ia mungkin tidak diperlukan (bergantung pada 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 = {}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Afro-Asia --
----------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
-- Variasi Berber --
--------------------------------------------------------------------------------------
m["shi-med"] = {
"Tashelhit Pertengahan",
34152,
"shi",
}
-- Loghat Tuareg
m["thv"] = {
"Tamahaq",
56703,
"tmh",
}
m["ttq"] = {
"Tawellemmet",
56390,
"tmh",
}
m["taq"] = {
"Tamasheq",
4670066,
"tmh",
}
m["thz"] = {
"Tayert",
56388,
"tmh",
}
m["thv-ght"] = {
"Ghat",
47012900,
"thv",
}
--------------------------------------------------------------------------------------
-- Variasi Kush --
--------------------------------------------------------------------------------------
-- Variasi Oromo
m["hae"] = {
"Oromo Harar",
5330355,
"om",
aliases = {"Oromo Timur"},
}
m["gax"] = {
"Borana",
2910610,
"om",
aliases = {"Oromo Selatan"},
}
m["orc"] = {
"Orma",
2919128,
"om",
}
m["ssn"] = {
"Waata",
3501553,
"om",
}
--------------------------------------------------------------------------------------
-- Variasi Mesir --
--------------------------------------------------------------------------------------
-----------------------------------------------------
-- Variasi Mesir Kuno --
-----------------------------------------------------
m["egy-old"] = {
"Mesir Kuno",
447117,
"egy",
}
m["egy-mid"] = {
"Mesir Pertengahan",
657330,
"egy",
aliases = {"Mesir Klasik"},
}
m["egy-nmi"] = {
"Mesir Pertengahan Baharu",
123735278,
"egy",
aliases = {"Égyptien de tradition", "Mesir Tradisional"},
}
m["egy-lat"] = {
"Mesir Akhir",
1852329,
"egy",
}
-----------------------------------------------------
-- Variasi Qibti --
-----------------------------------------------------
m["cop-akh"] = {
"Qibti Akhmimik",
125176464,
"cop",
aliases = {"Akhmimik"},
}
m["cop-boh"] = {
"Qibti Bohairik",
890733,
"cop",
aliases = {"Bohairik", "Qibti Memphitik", "Memphitik"},
}
m["cop-ggg"] = {
"Dialek Qibti G",
nil,
"cop",
aliases = {"Dialek G", "Qibti Mansurik", "Mansurik"},
}
m["cop-jjj"] = {
"Dialek Qibti J",
nil,
"cop",
}
m["cop-kkk"] = {
"Dialek Qibti K",
nil,
"cop",
}
m["cop-ppp"] = {
"Dialek Qibti P",
nil,
"cop",
aliases = {"Qibti Proto-Theban", "Qibti Paleo-Theban"},
}
m["cop-fay"] = {
"Qibti Fayyumik",
1399115,
"cop",
aliases = {"Fayyumik", "Qibti Faiyumik", "Faiyumik", "Qibti Fayumik", "Fayumik",
"Qibti Bashmurik", "Bashmurik"},
}
m["cop-her"] = {
"Qibti Hermopolitan",
nil,
"cop",
aliases = {"Hermopolitan", "Dialek Qibti H", "Ashmuninik", "Qibti Ashmuninik"},
}
m["cop-lyc"] = {
"Qibti Lycopolitan",
nil,
"cop",
aliases = {
"Lycopolitan",
"Qibti Assiutik", "Qibti Asyutik", "Assiutik", "Asyutik",
"Qibti Lyco-Diospolitan", "Lyco-Diospolitan",
"Qibti Subakhmimik", "Subakhmimik"
},
}
m["cop-old"] = {
"Qibti Kuno",
115518040,
"cop",
}
m["cop-oxy"] = {
"Qibti Oxyrhynchite",
nil,
"cop",
aliases = {"Oxyrhynchite", "Qibti Mesokemik", "Mesokemik", "Qibti Mesir Pertengahan"},
}
m["cop-ply"] = {
"Qibti Proto-Lycopolitan",
nil,
"cop",
aliases = {"Dialek Qibti i", "Qibti Proto-Lyco-Diospolitan"},
}
m["cop-sah"] = {
"Qibti Sahidik",
2645851,
"cop",
aliases = {"Sahidik", "Qibti Saidik", "Saidik", "Qibti Thebaik", "Thebaik"},
}
--------------------------------------------------------------------------------------
-- Variasi Semitik --
--------------------------------------------------------------------------------------
-----------------------------------------------------
-- Variasi Akkadia --
-----------------------------------------------------
m["akk-old"] = {
"Akkadia Kuno",
nil,
"akk",
}
m["akk-obb"] = {
"Babilonia Kuno",
nil,
"akk",
}
m["akk-oas"] = {
"Asyur Kuno",
nil,
"akk",
}
m["akk-mbb"] = {
"Babilonia Pertengahan",
nil,
"akk",
}
m["akk-mas"] = {
"Asyur Pertengahan",
nil,
"akk",
}
m["akk-nbb"] = {
"Babilonia Baharu",
nil,
"akk",
}
m["akk-nas"] = {
"Asyur Baharu",
nil,
"akk",
}
m["akk-lbb"] = {
"Babilonia Akhir",
nil,
"akk",
}
m["akk-stb"] = {
"Babilonia Piawai",
nil,
"akk",
}
-----------------------------------------------------
-- Variasi Arab --
-----------------------------------------------------
m["jrb"] = {
"Arab-Yahudi",
37733,
"ar",
pseudo_families = "qfa-jew",
}
m["apc-leb"] = {
"Arab Levant Utara Lubnan",
1516642,
"apc",
aliases = {"Arab Lubnan"},
}
m["apc-sle"] = {
"Arab Levant Utara Lubnan Selatan",
14206590,
"apc",
aliases = {"Arab Lubnan Selatan"},
}
m["apc-nle"] = {
"Arab Levant Utara Lubnan Utara",
nil,
"apc",
aliases = {"Arab Lubnan Utara"},
}
m["apc-syr"] = {
"Arab Levant Utara Syria",
2143071,
"apc",
aliases = {"Arab Syria"},
}
m["apc-ale"] = {
"Arab Levant Utara Aleppo",
7056921,
"apc-syr",
aliases = {"Arab Aleppo", "Arab Aleppine"},
}
m["apc-dam"] = {
"Arab Levant Utara Damsyik",
12237466,
"apc-syr",
aliases = {"Arab Damsyik", "Arab Damascene"},
}
m["acm-khu"] = {
"Arab Khuzestan",
1040944,
"acm",
}
-----------------------------------------------------
-- Variasi Aram --
-----------------------------------------------------
m["arc-bib"] = {
"Aram Biblikal",
843235,
"arc",
family = "sem-are",
}
m["arc-cpa"] = {
"Aram Palestin Kristian",
60790119,
"arc",
family = "sem-arw",
aliases = {"Aram Melkite", "Suryani Palestin", "Aram Syropalestin"},
}
m["arc-imp"] = {
"Aram Empayar",
7079491,
"arc",
aliases = {"Aram Rasmi"},
}
m["arc-hat"] = {
"Aram Hatra",
3832926,
"arc",
family = "sem-are",
}
m["arc-jla"] = {
"Aram Sastera Yahudi",
105952842,
"arc",
pseudo_families = "qfa-jew",
}
m["arc-nab"] = {
"Aram Nabatea",
36178,
"arc",
}
m["arc-old"] = {
"Aram Kuno",
3398392,
"arc",
}
m["arc-pal"] = {
"Aram Palmyra",
1510113,
"arc",
family = "sem-arw",
}
m["tmr"] = {
"Aram Babilonia Yahudi",
33407,
"arc",
family = "sem-ase",
pseudo_families = "qfa-jew",
}
m["jpa"] = {
"Aram Palestin Yahudi",
948909,
"arc",
family = "sem-arw",
aliases = {"Aram Galilea"},
pseudo_families = "qfa-jew",
}
-----------------------------------------------------
-- Variasi Ibrani --
-----------------------------------------------------
m["hbo"] = {
"Ibrani Biblikal",
1982248,
"he",
aliases = {"Ibrani Klasik"},
}
m["he-mis"] = {
"Ibrani Mishnaik",
1649362,
"he",
ancestors = "hbo",
}
m["he-med"] = {
"Ibrani Pertengahan",
2712572,
"he",
ancestors = "he-mis",
}
m["he-IL"] = {
"Ibrani Israel",
8141,
"he",
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Ainu --
----------------------------------------------------------------------------------------------------------------------
m["ain-hok"] = {
"Ainu Hokkaido",
20968488,
"ain",
aliases = {"Ainu Hokkaidō"},
}
m["ain-kur"] = {
"Ainu Kuril",
20967012,
"ain",
}
m["ain-sak"] = {
"Ainu Sakhalin",
20747371,
"ain",
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi peribumi benua Amerika --
----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-- Variasi Inuit --
-----------------------------------------------------
m["esi"] = {
"Inupiatun Alaska Utara",
nil,
"ik"
}
m["esk"] = {
"Inupiatun Alaska Barat Laut",
25559714,
"ik"
}
-----------------------------------------------------
-- Variasi Iroquois --
-----------------------------------------------------
m["iro-ohu"] = {
"Wendat Kuno",
nil,
"wdt",
}
m["iro-omo"] = {
"Mohawk Kuno",
nil,
"moh",
}
m["iro-oon"] = {
"Onondaga Kuno",
nil,
"ono",
}
-----------------------------------------------------
-- Variasi Tupi-Guarani --
-----------------------------------------------------
-- Variasi Tupi Kuno
m["tpw-lga"] = {
"Língua Geral Amazônica",
18275323,
"tpw",
aliases = {"Língua Geral"},
}
m["tpw-lgp"] = {
"Língua Geral Paulista",
2669239,
"tpw",
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Austroasia --
----------------------------------------------------------------------------------------------------------------------
-- Variasi Khmer
m["okz-ang"] = {
"Khmer Kuno Angkor",
nil,
"okz",
wikipedia_article = "Khmer language#Historical periods",
}
m["okz-pre"] = {
"Khmer Kuno Pra-Angkor",
nil,
"okz",
wikipedia_article = "Khmer language#Historical periods",
}
-- Variasi Nicobar Tengah
m["ncb-cam"] = {
"Camorta",
5026908,
"ncb",
aliases = {"Kamorta"},
}
m["ncb-kat"] = {
"Katchal",
17064263,
"ncb",
aliases = {"Tehnu"},
}
m["ncb-nan"] = {
"Nancowry",
6962504,
"ncb",
aliases = {"Nankwari"},
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Austronesia --
----------------------------------------------------------------------------------------------------------------------
-- Variasi Melayu dan berkaitan
m["ms-old"] = { -- ini mempunyai kod ISO 'omy'
"Melayu Kuno",
nil,
"ms",
}
m["ms-cla"] = {
"Melayu Klasik",
nil,
"ms",
ancestors = "ms-old",
}
m["pse-bsm"] = {
"Besemah",
nil,
"pse",
}
m["bew-kot"] = {
"Betawi Kota",
nil,
"bew",
aliases = {"Betawi Bandar"}, -- di Jakarta
}
-- Variasi Filipina
m["xnn"] = {
"Kankanaey Utara",
12953609,
"kne",
aliases = {"Kankanay Utara", "Kankana-ey Utara"},
}
m["tl-old"] = {
"Tagalog Kuno",
12967437,
"tl",
}
m["tl-cls"] = {
"Tagalog Klasik",
nil,
"tl",
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Kaukasia --
----------------------------------------------------------------------------------------------------------------------
-- Variasi Kartvelia
m["ka-mid"] = {
"Georgia Pertengahan",
nil,
"ka",
ancestors = "oge",
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Dravida --
----------------------------------------------------------------------------------------------------------------------
m["ta-mid"] = {
"Tamil Pertengahan",
20987434,
"ta",
}
m["kn-hav"] = {
"Havigannada",
24276369,
"kn",
}
m["kn-kun"] = {
"Kundagannada",
6444255,
"kn",
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Indo-Eropah --
----------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
-- Variasi Albania --
--------------------------------------------------------------------------------------
m["aln"] = {
"Albania Gheg",
181037,
"sq",
aliases = {"Gheg"},
}
m["aae"] = {
"Albania Arbëresh",
1075302,
"als",
aliases = {"Arbëreshë", "Arbëresh"},
}
m["aat"] = {
"Albania Arvanitika",
29347,
"als",
aliases = {"Arvanitika"},
}
m["als"] = {
"Albania Tosk",
180937,
"sq",
aliases = {"Tosk"},
}
--------------------------------------------------------------------------------------
-- Variasi Armenia --
--------------------------------------------------------------------------------------
m["hyw"] = {
"Armenia Barat",
180945,
"hy",
}
m["hye"] = {
"Armenia Timur",
181059,
"hy",
}
--------------------------------------------------------------------------------------
-- Variasi Balto-Slavik --
--------------------------------------------------------------------------------------
-------------------------------------------------------------------------
-- Variasi Baltik --
-------------------------------------------------------------------------
m["bat-pro"] = {
"Proto-Baltik",
1703347,
"ine-bsl-pro",
}
m["bat-dni"] = {
"Baltik Dnieper",
4163178,
"bat-pro",
family = "bat",
aliases = {"Baltik Dniepr", "Baltik Dnieper-Oka", "Baltik Dniepr-Oka"},
}
m["bat-gol"] = {
"Golyad",
4142855,
"bat-dni",
aliases = {"Galindia Timur", "Galindia Timur"},
}
-------------------------------------------------------------------------
-- Variasi Slavik --
-------------------------------------------------------------------------
-----------------------------------------------------
-- Variasi Bulgaria --
-----------------------------------------------------
m["cu-bgm"] = {
"Bulgaria Pertengahan",
12294897,
"cu",
ancestors = "cu"
}
-----------------------------------------------------
-- Variasi Slavik Gereja --
-----------------------------------------------------
-- Slavik Gereja Moscow Kuno dipadamkan kerana nampaknya tidak cukup berbeza daripada Slavik Gereja Rusia (Sinodal).
m["zls-chs-ru"] = {
"Slavik Gereja Rusia",
21662400,
"zls-chs",
aliases = {"Slavik Gereja Sinodal", "Slavik Gereja Moscow Baharu", "Slavik Gereja Novomoskovsk"},
}
m["zls-chs-uk"] = {
"Slavik Gereja Ukraine",
12153548,
"zls-chs",
aliases = {"Slavik Gereja Rusyn", "Slavik Gereja Belarus"},
}
--[=[
-- Belum pasti tentang perkara ini lagi.
m["zls-chs-bg"] = {
"Slavik Gereja Bulgaria",
nil,
"zls-chs",
}
m["zls-chs-cs"] = {
"Slavik Gereja Czech",
nil,
"zls-chs",
}
m["zls-chs-hr"] = {
"Slavik Gereja Croatia",
nil,
"zls-chs",
}
m["zls-chs-mk"] = {
"Slavik Gereja Macedonia",
nil,
"zls-chs",
}
m["zls-chs-ro"] = {
"Slavik Gereja Romania",
nil,
"zls-chs",
}
m["zls-chs-sr"] = {
"Slavik Gereja Serbia",
nil,
"zls-chs",
}
]=]
-----------------------------------------------------
-- Variasi Czech --
-----------------------------------------------------
m["cs-ear"] = {
"Czech Moden Awal",
nil,
"cs",
ancestors = "zlw-ocs"
}
-----------------------------------------------------
-- Variasi Slavik Timur --
-----------------------------------------------------
m["zle-ops"] = {
"Pskov Kuno",
4167885,
"zle-ono",
}
m["zle-mru"] = {
"Rusia Pertengahan",
35228,
"ru",
"Cyrs",
ancestors = "orv",
translit = "ru-translit",
strip_diacritics = {
Cyrs = {
remove_diacritics = c.grave .. c.acute .. c.diaer,
},
},
}
m["zle-mbe"] = {
"Belarus Pertengahan",
13211,
"zle-ort",
ancestors = "zle-ort",
}
m["zle-muk"] = {
"Ukraine Pertengahan",
13211,
"zle-ort",
ancestors = "zle-ort",
}
m["uk-CA"] = {
"Ukraine Kanada",
4161010,
"uk",
}
m["crp-cpr-kya"] = {
"Pidgin Rusia Kyakhta",
1062960,
"crp-cpr",
}
-----------------------------------------------------
-- Variasi Poland --
-----------------------------------------------------
m["zlw-mpl"] = {
"Poland Pertengahan",
402878,
"pl",
ancestors = "zlw-opl",
strip_diacritics = {
remove_diacritics = c.acute,
remove_exceptions = {"Ć", "ć", "Ń", "ń", "Ó", "ó", "Ś", "ś", "Ź", "ź"},
},
}
m["pl-gre"] = {
"Poland Raya",
4106789,
"pl",
}
m["pl-les"] = {
"Poland Kecil",
361709,
"pl",
}
m["pl-mas"] = {
"Poland Masovia",
4274559,
"pl",
}
m["pl-gor"] = {
"Goral",
452889,
"pl",
}
-----------------------------------------------------
-- Variasi Serbo-Croatia --
-----------------------------------------------------
m["ckm"] = {
"Serbo-Croatia Chakavian",
337565,
"sh",
aliases = {"Čakavian"},
}
m["kjv"] = {
"Serbo-Croatia Kajkavian",
838165,
"sh",
}
m["sh-tor"] = { -- Kod ahli linguistik srp-tor
"Serbo-Croatia Torlakian",
1078803,
"sh",
aliases = {"Torlak"},
}
--------------------------------------------------------------------------------------
-- Variasi Kelt --
--------------------------------------------------------------------------------------
-----------------------------------------------------
-- Variasi Brythonic --
-----------------------------------------------------
m["bry-ear"] = {
"Brythonic Awal",
nil,
"cel-bry-pro",
}
m["bry-lat"] = {
"Brythonic Akhir",
nil,
"cel-bry-pro",
}
-----------------------------------------------------
-- Variasi Gaul --
-----------------------------------------------------
m["xcg"] = {
"Gaul Cisalpine",
3832927,
"cel-gau",
}
m["xtg"] = {
"Gaul Transalpine",
29977,
"cel-gau",
}
-----------------------------------------------------
-- Variasi Wales --
-----------------------------------------------------
m["cy-nor"] = {
"Wales Utara",
13127692,
"cy",
aliases = {"Wales Utara", "Wales Utara"},
}
m["cy-sou"] = {
"Wales Selatan",
13127689,
"cy",
aliases = {"Wales Selatan", "Wales Selatan"},
}
--------------------------------------------------------------------------------------
-- Variasi Jerman --
--------------------------------------------------------------------------------------
-- Variasi Jerman Frisia Barat Proto
m["frk"] = {
"Frankish",
10860505,
"gmw-pro",
family = "gmw-frk",
aliases = {"Frankish Kuno"},
}
m["gem-sue"] = {
"Suevik",
134600275,
"gmw-pro",
aliases = {"Suebik"},
}
m["gmw-afr-pro"] = {
"Proto-Anglo-Frisia",
134603379,
"gmw-nsg-pro",
family = "gmw-afr",
}
m["gmw-nsg-pro"] = {
"Proto-Jerman Laut Utara",
134603374,
"gmw-pro",
family = "gmw-nsg",
aliases = {"Proto-Ingvaeonik"},
}
-----------------------------------------------------
-- Variasi Belanda --
-----------------------------------------------------
m["nl-BE"] = {
"Belanda Belgium",
34147,
"nl",
aliases = {"Flemish", "Belanda Flemish", "Belanda Selatan"},
}
-----------------------------------------------------
-- Variasi Inggeris dan Scots --
-----------------------------------------------------
-- Variasi Inggeris
m["en-AU"] = {
"Inggeris Australia",
44679,
"en",
}
m["en-GB"] = {
"Inggeris British",
7979,
"en",
}
m["en-GB-SCT"] = {
"Inggeris Scotland",
1553250,
"en-GB",
}
m["en-GB-WLS"] = {
"Inggeris Wales",
2363292,
"en-GB",
}
m["en-IM"] = {
"Inggeris Manx",
6753295,
"en-GB",
}
m["en-aae"] = {
"Inggeris Aborigin Australia",
783347,
"en-AU",
}
m["en-ear"] = {
"Inggeris Moden Awal",
1472196,
"en",
ancestors = "enm",
aliases = {"Inggeris Baharu Awal"},
}
m["en-geo"] = {
"Geordie",
653421,
"en",
ancestors = "enm-nor",
}
m["en-IE"] = { -- Ralat: "IE" tidak merangkumi Ireland Utara
"Inggeris Ireland",
665624,
"en",
}
m["en-uls"] = {
"Inggeris Ulster",
6840826,
"en-IE",
}
m["en-GB-NIR"] = {
"Inggeris Ireland Utara",
6840826, -- sebenarnya kod untuk Inggeris Ulster
"en-uls",
}
m["en-NNN"] = { -- NA = Namibia; NNN ialah kod 3 huruf NATO untuk Amerika Utara
"Inggeris Amerika Utara",
7053766,
"en",
ietf_subtag = "en-021" -- 021 = kod M49 PBB untuk "Amerika Utara" (iaitu Amerika Utara tanpa Amerika Tengah atau Caribbean)
}
m["en-US"] = {
"Inggeris Amerika",
7976,
"en-NNN",
}
m["en-NZ"] = {
"Inggeris New Zealand",
44661,
"en"
}
m["en-ZA"] = {
"Inggeris Afrika Selatan",
1156228,
"en"
}
m["en-US-CA"] = {
"Inggeris California",
1026812,
"en-US",
}
m["en-CA"] = {
"Inggeris Kanada",
44676,
"en-US",
}
m["en-HK"] = {
"Inggeris Hong Kong",
1068863,
"en",
}
m["en-IN"] = {
"Inggeris India",
1348800,
"en",
}
m["pld"] = {
"Polari",
1359130,
"en",
}
-- Variasi Scots
m["sco-ins"] = {
"Scots Kepulauan",
16919205,
"sco",
}
m["sco-uls"] = {
"Scots Ulster",
201966,
"sco",
}
m["sco-nor"] = {
"Scots Utara",
16928150,
"sco",
}
m["sco-sou"] = {
"Scots Selatan",
7570457,
"sco",
aliases = {"Scots Selatan", "Scots Sempadan"},
}
-- Variasi Bahasa Inggeris Pertengahan
m["enm-esc"] = { -- Sebahagian daripada Bahasa Inggeris Pertengahan sehingga ia berkembang menjadi Bahasa Scots Pertengahan.
"Scots Awal",
5326738,
"enm",
ancestors = "enm-nor",
aliases = {"Scots Kuno", "Inggeris Pertengahan Scotland"},
}
m["enm-emi"] = {
"Inggeris Pertengahan Midlands Timur",
134238810,
"enm",
ancestors = "ang-ang", -- Secara teknikal Mercian, tetapi Mercian yang dibuktikan kebanyakannya WM (seperti yang saya ingat)
}
m["enm-ken"] = {
"Inggeris Pertengahan Kentish",
134238532,
"enm",
ancestors = "ang-ken",
}
m["enm-nor"] = {
"Inggeris Pertengahan Utara",
134238541,
"enm",
ancestors = "ang-nor",
}
m["enm-sou"] = {
"Inggeris Pertengahan Selatan",
134238528,
"enm",
ancestors = "ang-wsx",
}
m["enm-wmi"] = {
"Inggeris Pertengahan Midlands Barat",
134238824,
"enm",
ancestors = "ang-mer",
}
-- Variasi Bahasa Inggeris Kuno
-- Merangkumi bahasa Mercian dan Northumbrian.
m["ang-ang"] = {
"Inggeris Kuno Anglia",
121142917,
"ang",
}
m["ang-ken"] = {
"Inggeris Kuno Kentish",
11687485,
"ang",
}
m["ang-mer"] = {
"Inggeris Kuno Mercia",
602072,
"ang-ang",
}
m["ang-nor"] = {
"Inggeris Kuno Northumbria",
1798915,
"ang-ang",
}
m["ang-wsx"] = {
"Inggeris Kuno Saxon Barat",
2658603,
"ang",
}
-----------------------------------------------------
-- Variasi Jerman Tinggi --
-----------------------------------------------------
-- Variasi Jerman (moden)
m["de-AT"] = {
"Jerman Austria",
306626,
"de",
}
m["de-AT-vie"] = {
"Jerman Vienna",
56474,
"de-AT",
}
m["de-CH"] = {
"Jerman Switzerland",
1366643,
"de",
aliases = {"Schweizer Hochdeutsch", "Jerman Piawai Switzerland", "Jerman Tinggi Switzerland"},
}
m["de-bal"] = {
"Jerman Baltik",
15785413,
"de",
}
m["de-ear"] = {
"Jerman Tinggi Baharu Awal",
1472199,
"de",
ancestors = "gmh",
aliases = {"Jerman Moden Tinggi Awal"},
}
m["ksh"] = {
"Kölsch",
4624,
"gmw-cfr",
}
m["pfl"] = {
"Jerman Palatine",
23014,
"gmw-rfr",
aliases = {"Pfälzisch", "Pälzisch", "Jerman Palatinate"},
}
m["sli"] = {
"Jerman Jerman Tengah Timur Silesia",
152965,
"gmw-ecg",
aliases = {"Silesia"},
}
m["sxu"] = {
"Jerman Saxon Atas",
699284,
"gmw-ecg",
}
-- Variasi Jerman Tinggi Kuno
m["lng"] = {
"Lombardik",
35972,
"goh",
}
-- Variasi Jerman Alemannic
m["gsw-low"] = {
"Jerman Alemannic Rendah",
503724,
"gsw",
}
m["gsw-FR-als"] = {
"Jerman Alemannic Alsace",
8786,
"gsw-low",
}
m["gsw-hig"] = {
"Jerman Alemannic Tinggi",
503728,
"gsw",
}
m["gsw-hst"] = {
"Jerman Alemannic Tertinggi",
687538,
"gsw",
}
m["wae"] = {
"Jerman Walser",
680517,
"gsw-hst",
}
-----------------------------------------------------
-- Variasi Jerman Rendah --
-----------------------------------------------------
m["nds-de"] = {
"Jerman Jerman Rendah",
25433,
"nds",
ietf_subtag = "nds-DE", -- patutkah kita jadikan ini kod sebenar?
wikimedia_codes = "nds",
}
m["nds-nl"] = {
"Saxon Rendah Belanda",
516137,
"nds",
ietf_subtag = "nds-NL", -- patutkah kita jadikan ini kod sebenar?
wikimedia_codes = "nds-nl",
}
m["act"] = {
"Achterhooks",
153627,
"nds-nl",
aliases = {"Achterhoek", "Achterhooks"},
}
m["drt"] = {
"Drèents",
2736709,
"nds-nl",
aliases = {"Drèents", "Dreins", "Dreints", "Drints"},
}
m["frs"] = {
"Jerman Rendah Frisia Timur",
149208,
"nds-de",
aliases = {"Frisia Timur", "Saxon Rendah Frisia Timur"},
}
m["gos"] = {
"Grunnegs",
508854,
"nds-nl",
aliases = {"Grunnegs", "Grönnegs"},
}
m["nds-lpr"] = {
"Prusia Rendah",
33982,
"nds-de",
}
m["sdz"] = {
"Sallaands",
3436668,
"nds-nl",
aliases = {"Sallaans", "Sallaands"},
}
m["stl"] = {
"Stellingwarfs",
506010,
"nds-nl",
aliases = {"Stellingwarfs"},
}
m["twd"] = {
"Tweants",
497363,
"nds-nl",
aliases = {"Tweants"},
}
m["vel"] = {
"Veluws",
2484810,
"nds-nl",
}
m["wep"] = {
"Westphalia",
505655,
"nds-de",
aliases = {"Westfalish", "Westphalien"},
}
-----------------------------------------------------
-- Variasi Frisia Utara --
-----------------------------------------------------
m["frr-ins"] = {
"Frisia Utara Kepulauan",
110629610,
"frr",
}
m["frr-fam"] = {
"Frisia Utara Föhr-Amrum",
110629601,
"frr-ins",
}
m["frr-foh"] = {
"Frisia Utara Föhr",
28185,
"frr-fam",
aliases = {"Frisia Föhr", "Fering",
"Ferring", -- Glottolog
},
varieties = {"Aasdring", "Weesdring"},
}
m["frr-amr"] = {
"Frisia Utara Amrum",
28192,
"frr-fam",
aliases = {"Frisia Amrum", "Amrum", "Öömrang"},
}
m["frr-hel"] = {
"Frisia Utara Heligoland",
28086,
"frr-ins",
aliases = {"Frisia Heligoland", "Halunder", "Frisia Heligolandik", "Frisia Utara Heligolandik",
"Frisia Helgoland", "Frisia Utara Helgoland", "Helgoland"},
}
m["frr-syl"] = {
"Frisia Utara Sylt",
28181,
"frr-ins",
aliases = {"Frisia Sylt", "Söl'ring",
"Sölreng", -- Glottolog
},
}
m["frr-mai"] = {
"Frisia Utara Tanah Besar",
110629626,
"frr",
}
m["frr-hal"] = {
"Frisia Utara Halligen",
28177,
"frr-mai",
aliases = {"Frisia Halligen", "Halifreesk", "Frisia Hallingen", "Frisia Utara Hallingen",
"Hallingen", -- Glottolog
},
}
m["frr-moo"] = {
"Frisia Utara Mooring",
28187,
"frr-mai",
aliases = {"Frisia Utara Bökingharde", "Frisia Bökingharde", "Böökinghiirder frasch",
"Mooring", "Moring",
},
varieties = {{"Mooring Timur", "Ostermooring"}, {"Mooring Barat", "Westermooring"}},
}
m["frr-kar"] = {
"Frisia Utara Karrharde",
28191,
"frr-mai",
aliases = {"Frisia Karrharde", "Karrharder",
},
}
m["frr-goe"] = {
-- Secara teknikal ini merujuk kepada tiga dialek bersebelahan (Utara, Tengah dan Selatan), yang mana yang terakhir pupus pada 1980-1981. Akibatnya, Glottolog merujuk kepada "Norder-Mittelgoesharde", merujuk kepada dua yang tinggal.
"Frisia Utara Goesharde",
28183,
"frr-mai",
aliases = {"Frisia Utara Norder-Mittelgoesharde", "Frisia Norder-Mittelgoesharde", "Norder-Mittelgoesharde",
"Frisia Goesharde", "Goesharde", "Gooshiirder",
},
}
m["frr-wie"] = {
"Frisia Utara Wiedingharde",
28171,
"frr-mai",
aliases = {"Frisia Wiedingharde", "Wiedingharde", "Wiringhiirder freesk",
},
}
-----------------------------------------------------
-- Variasi Norse Kuno --
-----------------------------------------------------
m["non-grn"] = {
"Norse Greenland",
855236,
"non-own",
}
m["non-oen"] = {
"Norse Timur Kuno",
10498031,
"non",
ancestors = "non",
}
m["non-own"] = {
"Norse Barat Kuno",
2377483,
"non",
ancestors = "non",
}
-----------------------------------------------------
-- Variasi Sweden Kuno --
-----------------------------------------------------
m["gmq-osw-lat"] = {
"Sweden Kuno Akhir",
10723594,
"gmq-osw",
ancestors = "gmq-osw",
}
--------------------------------------------------------------------------------------
-- Variasi Yunani --
--------------------------------------------------------------------------------------
m["qsb-grc"] = {
"Yunani Pra-Purba",
965052,
"und",
family = "qfa-sub",
}
m["grc-aeo"] = {
"Yunani Aeolia",
406373,
"grc",
aliases = {"Yunani Lesbos", "Yunani Lesbos", "Yunani Aeolia"},
}
m["grc-arc"] = {
"Yunani Arcadia",
nil,
"grc-arp",
}
m["grc-arp"] = {
"Yunani Arcadocypriot",
499602,
"grc",
}
m["grc-att"] = {
"Yunani Attica",
506588,
"grc",
}
m["grc-boi"] = {
"Yunani Boeotia",
406373,
"grc-aeo",
}
m["grc-cyp"] = {
"Yunani Purba Cyprus", -- untuk membezakan daripada Yunani Cyprus di bawah
nil,
"grc-arp",
}
m["grc-dor"] = {
"Yunani Doric",
285494,
"grc",
}
m["grc-ela"] = {
"Yunani Elea",
nil,
"grc",
}
m["grc-epi"] = {
"Yunani Epik",
990062,
"grc",
aliases = {"Yunani Homer"},
}
m["grc-ion"] = {
"Yunani Ionia",
504165,
"grc",
}
m["grc-koi"] = {
"Yunani Koine",
107358,
"grc",
ancestors = "grc-att",
aliases = {"Yunani Helenistik"},
}
m["grc-kre"] = {
"Yunani Purba Crete", -- untuk membezakan daripada Yunani Crete di bawah
nil,
"grc-dor",
}
m["grc-opl"] = {
"Locrian Opuntian",
nil,
"grc",
}
m["grc-ozl"] = {
"Locrian Ozolian",
nil,
"grc",
}
m["grc-pam"] = {
"Yunani Pamphylia",
2271793,
"grc",
}
m["grc-ths"] = {
"Yunani Thessalia",
406373,
"grc-aeo",
}
m["gkm"] = {
"Yunani Byzantine",
36387,
"grc",
ancestors = "grc-koi",
aliases = {"Yunani Pertengahan"},
}
m["el-cyp"] = {
"Yunani Cyprus",
245899,
"el",
aliases = {"Yunani Cypriotic"},
}
m["el-pap"] = {
"Yunani Paphos",
nil,
"el",
}
m["el-crt"] = {
"Yunani Crete",
588306,
"el",
}
m["el-kth"] = {
"Katharevousa",
35961,
"el",
"Polyt",
ancestors = "gkm",
aliases = {"Yunani Katharevousa"},
-- Paparan teks Polyt, buang diakritik, kunci susun dalam [[Module:scripts/data]]
}
m["el-kal"] = {
"Kaliarda",
12878658,
"el",
}
--------------------------------------------------------------------------------------
-- Variasi Hittite --
--------------------------------------------------------------------------------------
m["htx"] = {
"Hittite Pertengahan",
12642599,
"hit",
}
m["nei"] = {
"Hittite Neo",
41499830,
"hit",
aliases = {"Hittite Baharu"},
}
m["oht"] = {
"Hittite Kuno",
41499994,
"hit",
}
--------------------------------------------------------------------------------------
-- Variasi Indo-Iran --
--------------------------------------------------------------------------------------
-------------------------------------------------------------------------
-- Variasi Indo-Arya --
-------------------------------------------------------------------------
-- peringkat pertengahan yang direkonstruksi
m["pra-pro"] = {
"Proto-Indo-Arya Baharu",
nil,
"pra",
}
m["inc-ash-pro"] = {
"Proto-Indo-Arya Pertengahan",
nil,
"inc-ash",
}
m["inc-mit"] = {
"Mitanni",
1986700,
"inc-pro",
}
m["bra-old"] = {
"Braj Kuno",
nil,
"bra",
}
-- Apabhramsa
m["inc-aav"] = {
"Avahattha",
nil,
"inc-apa",
aliases = {"Abahattha"},
}
m["inc-asa"] = {
"Apabhramsa Sauraseni",
nil,
"inc-apa",
}
m["inc-agu"] = {
"Apabhramsa Gurjara",
nil,
"inc-apa",
}
m["inc-aka"] = {
"Apabhramsa Kasmiri",
nil,
"inc-apa",
}
m["inc-ama"] = {
"Apabhramsa Maharastri",
nil,
"inc-apa",
}
m["inc-ata"] = {
"Apabhramsa Takka",
nil,
"inc-apa",
}
m["inc-avr"] = {
"Apabhramsa Vracada",
nil,
"inc-apa",
}
-- Variasi Khortha
m["inc-khr-par"] = {
"Khortha Parnadiya",
nil,
"inc-khr",
}
-- Variasi Assam
m["as-bkm"] = {
"Assam Kamrupi Barpetia",
30642960,
"as",
}
m["as-nkm"] = {
"Assam Kamrupi Nalbaria",
85787678,
"as",
}
m["as-pkm"] = {
"Assam Kamrupi Palasbaria",
nil,
"as",
}
-- Variasi Bengali
m["bn-dvn"] = {
"Bengali Vaṅga Dhakaiya",
48726851,
"bn", -- Variasi Bengali Timur
}
m["bn-nvn"] = {
"Bengali Vaṅga Noakhailla",
107548681,
"bn", -- Variasi Bengali Timur
}
-- Variasi Dhivehi
m["dv-old"] = {
"Dhivehi Kuno",
117790875,
"dv",
}
m["dv-mul"] = {
"Dhivehi Mulaku",
nil,
"dv",
aliases = {"Divehi Mulaku", "Bas Mulaku"},
}
m["dv-huv"] = {
"Dhivehi Huvadhu",
nil,
"dv",
aliases = {"Divehi Huvadhu", "Bas Huvadhu"},
}
m["dv-add"] = {
"Dhivehi Addu",
nil,
"dv",
aliases = {"Divehi Addu", "Bas Addu"},
}
-- Variasi Gujarat
m["gu-kat"] = {
"Kathiyawadi",
nil,
"gu",
aliases = {"Gujarati Kathiyawadi", "Kathiawadi"},
}
m["gu-lda"] = {
"Gujarati Lisan ud-Dawat",
nil,
"gu",
aliases = {"Lisan ud-Dawat", "LDA"},
}
-- Variasi Hindi
m["hi-mum"] = {
"Hindi Bombay",
3543151,
"hi",
aliases = {"Hindi Mumbai", "Hindi Bambaiyya"},
}
m["hi-mid"] = {
"Hindi Pertengahan",
nil,
"inc-ohi",
ancestors = "inc-ohi",
}
-- Variasi Konkani
m["kok-mid"] = {
"Konkani Pertengahan",
nil,
"kok",
aliases = {"Konkani Abad Pertengahan"},
}
m["kok-old"] = {
"Konkani Kuno",
nil,
"kok",
aliases = {"Konkani Awal"},
}
-- Prakrit
m["pra-ard"] = {
"Prakrit Ardhamagadhi",
35217,
"pra",
aliases = {"Ardhamagadhi"},
}
m["pra-hel"] = {
"Prakrit Helu",
15080869,
"pra",
aliases = {"Elu", "Prakrit Elu", "Helu"},
}
m["pra-kha"] = {
"Prakrit Khasa",
nil,
"pra",
aliases = {"Khasa"},
}
m["pra-mag"] = {
"Prakrit Magadhi", -- Jangan dikelirukan dengan Magahi (mag)
2652214,
"pra",
aliases = {"Magadhi"},
}
m["pra-mah"] = {
"Prakrit Maharastri",
2586773,
"pra",
aliases = {"Prakrit Maharashtri", "Maharastri", "Maharashtri"},
}
m["pra-pai"] = {
"Prakrit Paisaci",
2995607,
"pra-sau",
aliases = {"Paisaci", "Paisachi"},
ancestors = "pra-sau"
}
m["pra-sau"] = {
"Prakrit Sauraseni",
2452885,
"pra",
aliases = {"Sauraseni", "Shauraseni"},
}
m["pra-ava"] = {
"Avanti",
nil,
"pra",
aliases = {"Prakrit Avanti"},
}
m["pra-pra"] = {
"Pracya",
nil,
"pra",
aliases = {"Prakrit Pracya"},
}
m["pra-bah"] = {
"Bahliki",
nil,
"pra",
aliases = {"Prakrit Bahliki"},
}
m["pra-dak"] = {
"Daksinatya",
nil,
"pra",
aliases = {"Prakrit Daksinatya"},
}
m["pra-sak"] = {
"Sakari",
nil,
"pra",
aliases = {"Prakrit Sakari"},
}
m["pra-can"] = {
"Candali",
nil,
"pra",
aliases = {"Prakrit Candali"},
}
m["pra-sab"] = {
"Sabari",
nil,
"pra",
aliases = {"Prakrit Sabari"},
}
m["pra-abh"] = {
"Abhiri",
nil,
"pra",
aliases = {"Prakrit Abhiri"},
}
m["pra-dra"] = {
"Dramili",
nil,
"pra",
aliases = {"Prakrit Dramili"},
}
m["pra-odr"] = {
"Odri",
nil,
"pra",
aliases = {"Prakrit Odri"},
}
-- Variasi Punjabi
m["pnb"] = {
"Punjabi Barat",
58635,
"pa",
"Aran",
}
-- Variasi Sanskrit
m["vsn"] = {
"Sanskrit Veda",
36858,
"sa",
}
m["cls"] = {
"Sanskrit Klasik",
9333703,
"sa",
}
m["sa-bhs"] = {
"Sanskrit Hibrid Buddha",
248758,
"sa",
}
m["sa-bra"] = {
"Sanskrit Brahman",
139822891,
"vsn",
}
m["sa-epi"] = {
"Sanskrit Epik",
56702805,
"cls",
}
m["sa-neo"] = {
"Sanskrit Baharu",
nil,
"sa",
}
m["sa-rig"] = {
"Sanskrit Rigveda",
139822680,
"vsn",
}
-- Variasi Sinhalese
m["si-med"] = {
"Sinhalese Pertengahan",
nil,
"si",
aliases = {"Sinhala Abad Pertengahan"},
}
-------------------------------------------------------------------------
-- Variasi Iran --
-------------------------------------------------------------------------
m["qsb-bma"] = {
"substrat BMAC",
133187435,
"und",
family = "qfa-sub",
aliases = {"substrat Bactria-Margiana", "substrat Kompleks Arkeologi Bactria-Margiana"},
}
-- Dialek Iran bersejarah dan semasa
m["ae-old"] = {
"Avestan Kuno",
29572,
"ae",
aliases = {"Avestan Gatha"},
}
m["ae-yng"] = {
"Avestan Muda",
29572,
"ae-old",
aliases = {"Avestan Muda (Young Avestan)"},
}
m["bcc"] = {
"Balochi Selatan",
33049,
"bal",
aliases = {"Baluchi Selatan"},
}
m["bgp"] = {
"Balochi Timur",
33049,
"bal",
aliases = {"Baluchi Timur"},
}
m["bgn"] = {
"Balochi Barat",
33049,
"bal",
aliases = {"Baluchi Barat"},
}
m["bsg-ban"] = {
"Bandari",
nil,
"bsg",
}
m["bsg-hor"] = {
"Hormozi",
nil,
"bsg",
}
m["bsg-min"] = {
"Minabi",
nil,
"bsg",
}
m["kho-old"] = {
"Khotanese Kuno",
nil,
"kho",
}
m["kho-lat"] = {
"Khotanese Akhir",
nil,
"kho-old",
}
m["peo-ear"] = {
"Parsi Kuno Awal",
nil,
"peo",
}
m["peo-lat"] = {
"Parsi Kuno Akhir",
nil,
"peo",
}
m["pal-ear"] = {
"Parsi Pertengahan Awal",
nil,
"pal",
}
m["pal-lat"] = {
"Parsi Pertengahan Akhir",
nil,
"pal",
ancestors = "pal-ear",
}
m["ps-nwe"] = {
"Pashto Barat Laut",
nil,
"ps",
}
m["ps-cgi"] = {
"Ghilzay Tengah",
nil,
"ps-nwe",
}
m["ps-mah"] = {
"Mahsudi",
nil,
"ps-nwe",
}
m["ps-nea"] = {
"Pashto Timur Laut",
nil,
"ps",
}
m["ps-afr"] = {
"Afridi",
nil,
"ps-nea",
}
m["ps-bng"] = {
"Bangash",
nil,
"ps-nea",
}
m["ps-xat"] = {
"Khatak",
nil,
"ps-nea",
}
m["ps-pes"] = {
"Peshawari",
nil,
"ps-nea",
}
m["ps-sea"] = {
"Pashto Tenggara",
nil,
"ps",
}
m["ps-ban"] = {
"Bannu",
nil,
"ps-sea",
}
m["ps-kak"] = {
"Kakari",
nil,
"ps-sea",
}
m["ps-ser"] = {
"Sher",
nil,
"ps-sea",
}
m["ps-waz"] = {
"Waziri",
12274473,
"ps-sea",
}
m["ps-swe"] = {
"Pashto Barat Daya",
nil,
"ps",
}
m["ps-kan"] = {
"Kandahari",
nil,
"ps-swe",
}
m["ps-jad"] = {
"Jadrani",
nil,
"ps",
ancestors = "ira-pat-pro"
}
m["xme-azr"] = {
"Azari Kuno",
nil,
"xme-ott",
aliases = {"Azeri Kuno", "Azari", "Azeri", "Āḏarī", "Adari", "Adhari"},
}
m["xme-ttc-cen"] = {
"Tati Tengah",
nil,
"xme-ott",
}
m["xme-ttc-eas"] = {
"Tati Timur",
nil,
"xme-ott",
}
m["xme-ttc-nor"] = {
"Tati Utara",
nil,
"xme-ott",
}
m["xme-ttc-sou"] = {
"Tati Selatan",
nil,
"xme-ott",
}
m["xme-ttc-wes"] = {
"Tati Barat",
nil,
"xme-ott",
}
m["xmn"] = {
"Parsi Pertengahan Manichaean",
nil,
"pal-lat",
}
m["fa-ear"] = {
"Parsi Baharu Awal",
127413796,
"fa",
ancestors = "pal-lat",
translit = "fa-cls-translit",
}
m["fa-cls"] = {
"Parsi Klasik",
9168,
"fa",
ancestors = "fa-ear",
translit = "fa-cls-translit",
}
m["fa-ira"] = {
"Parsi Iran",
3513637,
"fa",
aliases = {"Parsi Moden", "Parsi Barat"},
translit = "fa-ira-translit",
}
m["prs"] = {
"Dari",
178440,
"fa",
aliases = {"Parsi Dari", "Parsi Tengah", "Parsi Timur", "Parsi Afghanistan"},
translit = "fa-cls-translit",
}
m["haz"] = {
"Hazaragi",
33398,
"prs",
translit = "fa-cls-translit",
}
m["os-dig"] = {
"Ossetia Digor",
3027861,
"os",
aliases = {"Digoron", "Digor"},
}
m["os-iro"] = {
"Ossetia Iron",
nil,
"os",
aliases = {"Iron"},
}
m["sog-ear"] = {
"Sogdian Awal",
nil,
"sog",
}
m["sog-lat"] = {
"Sogdian Akhir",
nil,
"sog-ear",
}
m["ro-MD"] = {
"Moldova",
36392,
"ro",
aliases = {"Moldavian"},
}
m["oru-kan"] = {
"Kaniguram",
6363164,
"oru",
}
m["oru-log"] = {
"Logar",
nil,
"oru",
}
m["oos"] = {
"Ossetic Kuno",
65455882,
"xln",
}
m["oos-ear"] = {
"Ossetic Kuno Awal",
nil,
"oos",
}
m["oos-lat"] = {
"Ossetic Kuno Akhir",
nil,
"oos",
}
m["rdb-jir"] = {
"Jirofti",
nil,
"rdb",
}
m["rdb-kah"] = {
"Kahnuji",
nil,
"rdb",
}
-- Southwestern Fars lects
m["fay-bur"] = {
"Burenjani",
nil,
"fay",
}
m["fay-bsh"] = {
"Bushehri",
nil,
"fay",
}
m["fay-dsh"] = {
"Dashtaki",
nil,
"fay",
}
m["fay-dav"] = {
"Davani",
5228140,
"fay",
}
m["fay-eze"] = {
"Emamzada Esmaili",
nil,
"fay",
}
m["fay-gav"] = {
"Gavkoshaki",
nil,
"fay",
}
m["fay-kho"] = {
"Khollari",
nil,
"fay",
}
m["fay-kon"] = {
"Kondazi",
nil,
"fay",
}
m["fay-kzo"] = {
"Kazeruni Kuno",
nil,
"fay",
}
m["fay-mas"] = {
"Masarami",
nil,
"fay",
}
m["fay-pap"] = {
"Papuni",
nil,
"fay",
}
m["fay-sam"] = {
"Samghani",
nil,
"fay",
}
m["fay-shr"] = {
"Shirazi",
nil,
"fay",
}
m["fay-sho"] = {
"Shirazi Kuno",
nil,
"fay",
}
m["fay-kar"] = {
"Khargi",
nil,
"fay",
}
m["fay-sor"] = {
"Sorkhi",
nil,
"fay",
}
-- Talysh lects
m["tly-cen"] = {
"Talysh Tengah",
nil,
"tly",
}
m["tly-asa"] = {
"Asalemi",
nil,
"tly-cen",
}
m["tly-kar"] = {
"Karganrudi",
nil,
"tly-cen",
}
m["tly-tul"] = {
"Tularudi",
nil,
"tly-cen",
}
m["tly-tal"] = {
"Taleshdulabi",
nil,
"tly-cen",
}
m["tly-nor"] = {
"Talysh Utara",
nil,
"tly",
}
m["tly-aze"] = {
"Talysh Azerbaijan",
nil,
"tly-nor",
}
m["tly-anb"] = {
"Anbarani",
nil,
"tly-nor",
}
m["tly-sou"] = {
"Talysh Selatan",
nil,
"tly",
}
m["tly-fum"] = {
"Fumani",
nil,
"tly-sou",
}
m["tly-msu"] = {
"Masulei",
nil,
"tly-sou",
}
m["tly-msa"] = {
"Masali",
nil,
"tly-sou",
}
m["tly-san"] = {
"Shandarmani",
nil,
"tly-sou",
}
-- Tafreshi lects
m["tly-cen"] = {
"Talysh Tengah",
nil,
"tly",
}
m["tly-asa"] = {
"Asalemi",
nil,
"tly-cen",
}
m["tly-kar"] = {
"Karganrudi",
nil,
"tly-cen",
}
m["tly-tul"] = {
"Tularudi",
nil,
"tly-cen",
}
m["tly-tal"] = {
"Taleshdulabi",
nil,
"tly-cen",
}
m["tly-nor"] = {
"Talysh Utara",
nil,
"tly",
}
m["tly-aze"] = {
"Talysh Azerbaijan",
nil,
"tly-nor",
}
m["tly-anb"] = {
"Anbarani",
nil,
"tly-nor",
}
m["tly-sou"] = {
"Talysh Selatan",
nil,
"tly",
}
m["tly-fum"] = {
"Fumani",
nil,
"tly-sou",
}
m["tly-msu"] = {
"Masulei",
nil,
"tly-sou",
}
m["tly-msa"] = {
"Masali",
nil,
"tly-sou",
}
m["tly-san"] = {
"Shandarmani",
nil,
"tly-sou",
}
-- Ramandi lects
m["tks-ebr"] = {
"Ebrahimabadi",
nil,
"tks",
}
m["tks-sag"] = {
"Sagzabadi",
nil,
"tks",
}
m["tks-esf"] = {
"Esfarvarini",
nil,
"tks",
}
m["tks-tak"] = {
"Takestani",
nil,
"tks",
}
m["tks-cal"] = {
"Tati Chali",
nil,
"tks",
aliases = {"Chāli"},
}
m["tks-dan"] = {
"Danesfani",
nil,
"tks",
}
m["tks-xia"] = {
"Khiaraji",
nil,
"tks",
}
m["tks-xoz"] = {
"Khoznini",
nil,
"tks",
}
-- Shughni dialects
m["sgh-bro"] = {
"Bartangi-Oroshori",
nil,
"sgh",
}
m["sgh-bar"] = {
"Bartangi",
nil,
"sgh-bro",
}
m["sgh-oro"] = {
"Oroshori",
nil,
"sgh-bro",
aliases = {"Roshorvi"},
}
m["sgh-rsx"] = {
"Roshani-Khufi",
nil,
"sgh",
}
m["sgh-xuf"] = {
"Khufi",
2562249,
"sgh-rsx",
aliases = {"Xufi", "Xūfī"},
}
m["sgh-ros"] = {
"Roshani",
2597566,
"sgh-rsx",
aliases = {"Rushani", "Rōšāni"},
}
m["sgh-xgb"] = {
"Khughni-Bajui",
nil,
"sgh",
}
m["sgh-xug"] = {
"Khughni",
nil,
"sgh-xgb",
}
m["sgh-baj"] = {
"Bajui",
nil,
"sgh-xgb",
}
-------------------------------------------------------------------------
-- Variasi Nuristani --
-------------------------------------------------------------------------
m["bsh-kat"] = {
"Kativiri",
2605045,
"bsh",
aliases = {"Katə́viri"},
}
m["xvi"] = {
"Kamviri",
1193495,
"bsh",
aliases = {"Kamvíri"},
}
m["bsh-mum"] = {
"Mumviri",
nil,
"bsh",
aliases = {"Mumvíri"},
}
--------------------------------------------------------------------------------------
-- Variasi Italic --
--------------------------------------------------------------------------------------
-------------------------------------------------------------------------
-- Variasi Latin --
-------------------------------------------------------------------------
-- Variasi Latin mengikut tempoh
m["itc-ala"] = {
"Latin Arkais",
nil,
"la",
"Latn, Ital",
translit = {
Ital = "Ital-translit",
},
}
m["itc-ola"] = {
"Latin Kuno",
12289,
"la",
"Latn",
ancestors = "itc-ala",
}
m["itc-lan"] = {
"Lanuvian",
16890829,
"la",
aliases = {"Lanuvine"},
}
m["itc-pra"] = {
"Praenestine",
16889772,
"la",
aliases = {"Praenestinian"},
}
m["la-cla"] = {
"Latin Klasik",
253854,
"la",
}
m["la-vul"] = {
"Latin Vulgar",
37560,
"la-cla",
}
m["la-afr"] = {
"Romance Afrika",
162064,
"roa-pro",
}
m["la-lat"] = {
"Latin Akhir",
1503113,
"la",
ancestors = "la-cla",
}
m["la-med"] = {
"Latin Pertengahan",
1163234,
"la",
ancestors = "la-lat",
}
m["la-eme"] = {
"Latin Abad Pertengahan Awal",
nil,
"la-med",
}
m["la-ecc"] = {
"Latin Gereja",
1247932,
"la",
aliases = {"Latin Gereja", "Latin Liturgi"},
ancestors = "la-lat",
}
m["la-ren"] = {
"Latin Pembaharuan",
499083,
"la",
ancestors = "la-med",
}
m["la-new"] = {
"Latin Baharu",
1248221,
"la",
aliases = {"Latin Moden"},
ancestors = "la-ren",
}
m["la-con"] = {
"Latin Kontemporari",
1246397,
"la-new",
}
-------------------------------------------------------------------------
-- Pelbagai variasi Italic --
-------------------------------------------------------------------------
m["xfa-cap"] = {
"Capenate",
133182969,
"xfa",
}
m["osc-luc"] = {
"Lucania",
3265025,
"osc",
}
m["osc-sam"] = {
"Samnite",
133184287,
"osc",
}
-------------------------------------------------------------------------
-- Variasi Romance --
-------------------------------------------------------------------------
m["roa-pro"] = {
"Proto-Romance",
3408029,
"la-lat",
ancestors = "la-vul",
}
-----------------------------------------------------
-- Variasi Catalonia --
-----------------------------------------------------
m["ca-val"] = {
"Valencian",
32641,
"ca",
}
-----------------------------------------------------
-- Variasi Franco-Provençal --
-----------------------------------------------------
m["frp-old"] = {
"Franco-Provençal Kuno",
nil,
"frp",
}
-----------------------------------------------------
-- Variasi Bahasa Perancis dan kreol berkaitan --
-----------------------------------------------------
m["fro-nor"] = {
"Perancis Utara Kuno",
2044917,
"fro",
aliases = {"Norman Kuno", "Perancis Norman Kuno"},
}
m["fro-pic"] = {
"Perancis Kuno Picard",
nil,
"fro",
}
m["xno"] = {
"Anglo-Norman",
35214,
"fro-nor",
}
m["xno-law"] = {
"Undang-undang Perancis",
2044323,
"xno",
}
m["zrp"] = {
"Zarphatic",
36994,
"fro",
aliases = {"Judeo-Perancis"},
pseudo_families = "qfa-jew",
}
m["fr-CA"] = {
"Perancis Kanada",
1450506,
"fr",
}
m["fr-CH"] = {
"Perancis Switzerland",
1480152,
"fr",
}
m["fr-aca"] = {
"Perancis Acadia",
415109,
"fr",
}
m["fr-lou"] = {
"Perancis Louisiana",
3083213,
"fr",
}
m["fr-mis"] = {
"Perancis Missouri",
3083210,
"fr",
}
m["frc"] = {
"Perancis Cajun",
880301,
"fr-lou",
}
m["ht-sdm"] = {
"Kreol Perancis Saint-Domingue",
nil,
"ht",
ancestors = "fr",
}
-- Variasi Norman
m["nrf-grn"] = {
"Norman Guernsey",
56428,
"nrf",
aliases = {"Guernsey"},
}
m["nrf-jer"] = {
"Norman Jersey",
56430,
"nrf",
aliases = {"Jersey"},
}
-------------------------------------------------------------------------
-- Pelbagai variasi Italic --
-------------------------------------------------------------------------
m["xfa-cap"] = {
"Capenate",
133182969,
"xfa",
}
m["osc-luc"] = {
"Lucania",
3265025,
"osc",
}
m["osc-sam"] = {
"Samnite",
133184287,
"osc",
}
-------------------------------------------------------------------------
-- Variasi Romance --
-------------------------------------------------------------------------
m["roa-pro"] = {
"Proto-Romance",
3408029,
"la-lat",
ancestors = "la-vul",
}
-----------------------------------------------------
-- Variasi Catalonia --
-----------------------------------------------------
m["ca-val"] = {
"Valencian",
32641,
"ca",
}
-----------------------------------------------------
-- Variasi Franco-Provençal --
-----------------------------------------------------
m["frp-old"] = {
"Franco-Provençal Kuno",
nil,
"frp",
}
-----------------------------------------------------
-- Variasi Bahasa Perancis dan kreol berkaitan --
-----------------------------------------------------
m["fro-nor"] = {
"Perancis Utara Kuno",
2044917,
"fro",
aliases = {"Norman Kuno", "Perancis Norman Kuno"},
}
m["fro-pic"] = {
"Perancis Kuno Picard",
nil,
"fro",
}
m["xno"] = {
"Anglo-Norman",
35214,
"fro-nor",
}
m["xno-law"] = {
"Undang-undang Perancis",
2044323,
"xno",
}
m["zrp"] = {
"Zarphatic",
36994,
"fro",
aliases = {"Judeo-Perancis"},
pseudo_families = "qfa-jew",
}
m["fr-CA"] = {
"Perancis Kanada",
1450506,
"fr",
}
m["fr-CH"] = {
"Perancis Switzerland",
1480152,
"fr",
}
m["fr-aca"] = {
"Perancis Acadia",
415109,
"fr",
}
m["fr-lou"] = {
"Perancis Louisiana",
3083213,
"fr",
}
m["fr-mis"] = {
"Perancis Missouri",
3083210,
"fr",
}
m["frc"] = {
"Perancis Cajun",
880301,
"fr-lou",
}
m["ht-sdm"] = {
"Kreol Perancis Saint-Domingue",
nil,
"ht",
ancestors = "fr",
}
-- Variasi Norman
m["nrf-grn"] = {
"Norman Guernsey",
56428,
"nrf",
aliases = {"Guernsey"},
}
m["nrf-jer"] = {
"Norman Jersey",
56430,
"nrf",
aliases = {"Jersey"},
}
--------------------------------------------------------------------------------------
-- Portuguese and derived creole varieties --
--------------------------------------------------------------------------------------
-- Portuguese
m["pt-BR"] = {
"Portugis Brazil",
750553,
"pt",
}
m["pt-PT"] = {
"Portugis Eropah",
922399,
"pt",
}
-- Kabuverdianu (Cape Verde Creole, Cape Verdean Creole)
m["kea-bar"] = {
"Kabuverdianu Barlavento",
2217638,
"kea",
aliases = {"Barlavento", "Kreol Barlavento", "Sampadjudu"},
}
m["kea-bvi"] = {
"Kabuverdianu Boa Vista",
16501837,
"kea-bar",
aliases = {"Kreol Boa Vista"},
}
m["kea-sal"] = {
"Kabuverdianu Sal",
18707467,
"kea-bar",
aliases = {"Kreol Sal"},
}
m["kea-saa"] = {
"Kabuverdianu Santo Antão",
18707472,
"kea-bar",
aliases = {"Kreol Santo Antão"},
}
m["kea-sni"] = {
"Kabuverdianu São Nicolau",
18707549,
"kea-bar",
aliases = {"Kreol São Nicolau"},
}
m["kea-svi"] = {
"Kabuverdianu São Vicente",
18707550,
"kea-bar",
aliases = {"Kreol São Vicente"},
}
m["kea-sot"] = {
"Kabuverdianu Sotavento",
10261559,
"kea",
aliases = {"Sotavento", "Kreol Sotavento", "Badiu"},
}
m["kea-bra"] = {
"Kabuverdianu Brava",
18670181,
"kea-sot",
aliases = {"Kreol Brava"},
}
m["kea-fog"] = {
"Kabuverdianu Fogo",
18706861,
"kea-sot",
aliases = {"Kreol Fogo"},
}
m["kea-mai"] = {
"Kabuverdianu Maio",
18707286,
"kea-sot",
aliases = {"Kreol Maio"},
}
m["kea-san"] = {
"Kabuverdianu Santiago",
35117,
"kea-sot",
aliases = {"Kreol Santiago"},
}
m["kea-alu"] = {
"Kabuverdianu ALUPEC",
375704,
"kea",
aliases = {"ALUPEC", "Alfabeto Unificado para a Escrita do Cabo-Verdiano"},
}
-----------------------------------------------------
-- Rhaeto-Romance varieties --
-----------------------------------------------------
-- Friulian varieties
m["fur-old"] = {
"Friuli Kuno",
nil,
"fur",
}
-- Ladin varieties
m["lld-amp"] = {
"Ladin Ampezan",
25617466,
"lld",
aliases = {"Anpezan", "Ampezan", "Ampezzan", "Ampezzano"},
}
m["lld-bad"] = {
"Ladin Badiot",
3706562,
"lld",
aliases = {"Badiot", "Badioto", "Badiotto"},
}
m["lld-cad"] = {
"Ladin Cadorino",
3706570,
"lld",
aliases = {"Cadorino"},
}
m["lld-fas"] = {
"Ladin Fascian",
742627,
"lld",
aliases = {"Fascian", "Fassano"},
}
m["lld-fod"] = {
"Ladin Fodom",
3706605,
"lld",
aliases = {"Fodom", "Livinallese"},
}
m["lld-for"] = {
"Ladin Fornes",
5470374,
"lld",
aliases = {"Fornes"},
}
m["lld-ghe"] = {
"Ladin Gherdëina",
3706597,
"lld",
aliases = {"Gherdëina", "Gardenese", "Val Gardena"},
}
m["lld-non"] = {
"Ladin Nones",
1055027,
"lld",
aliases = {"Nones", "Noneso"},
}
-- Romansh varieties
m["rm-old"] = {
"Romansh Kuno",
nil,
"rm",
}
m["rm-put"] = {
"Romansh Puter",
688309,
"rm",
aliases = {"Puter", "Putèr", "Engadine Atas", "rm-puter"},
}
m["rm-srm"] = {
"Romansh Surmiran",
690216,
"rm",
aliases = {"Surmiran", "rm-surmiran",
"Surmiran-Albula", -- Glottolog
},
}
m["rm-srs"] = {
"Romansh Sursilvan",
688348,
"rm",
aliases = {"Sursilvan", "rm-sursilv"},
}
m["rm-sut"] = {
"Romansh Sutsilvan",
688272,
"rm",
aliases = {"Sutsilvan", "rm-sutsilv"},
varieties = {"Scharans Sutsilvan"}, -- mengikut Glottolog
}
m["rm-val"] = {
"Romansh Vallader",
690226,
"rm",
aliases = {"Vallader", "Putèr", "Engadine Bawah", "rm-vallader"},
}
m["rm-gri"] = {
"Rumantsch Grischun",
688873,
"rm",
aliases = {"rm-rumgr"},
}
-----------------------------------------------------
-- Variasi Sardinia --
-----------------------------------------------------
m["sc-old"] = {
"Sardinia Kuno",
nil,
"sc",
}
m["sc-src"] = {
"Logudorese",
777974,
"sc",
aliases = {"Sardinia Logudorese"},
}
m["sc-nuo"] = {
"Nuorese",
nil,
"sc-src",
aliases = {"Sardinia Nuorese"},
}
m["sc-sro"] = {
"Campidanese",
35348,
"sc",
aliases = {"Sardinia Campidanese"},
}
-----------------------------------------------------
-- Variasi Sepanyol --
-----------------------------------------------------
m["es-ear"] = {
"Sepanyol Moden Awal",
5364419,
"es",
}
m["es-AR"] = {
"Sepanyol Rioplatense",
509780,
"es",
}
m["es-BO"] = {
"Sepanyol Bolivia",
510730,
"es",
}
m["es-CL"] = {
"Sepanyol Chile",
857295,
"es",
}
m["es-CO"] = {
"Sepanyol Colombia",
1115875,
"es",
}
m["es-CU"] = {
"Sepanyol Cuba",
824909,
"es",
}
m["es-MX"] = {
"Sepanyol Mexico",
616620,
"es",
}
m["es-PE"] = {
"Sepanyol Peru",
736236,
"es",
}
m["es-PH"] = {
"Sepanyol Filipina",
22091406,
"es",
}
m["es-US"] = {
"Sepanyol Amerika Syarikat",
2301077,
"es",
aliases = {"Sepanyol AS"},
}
--gunakan label "US Spanish" untuk meletakkan istilah Sepanyol dalam kategori ini
m["es-PR"] = {
"Sepanyol Puerto Rico",
7258609,
"es",
}
m["es-VE"] = {
"Sepanyol Venezuela",
840017,
"es",
}
m["es-lun"] = {
"Lunfardo",
1401612,
"es",
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Japonik --
----------------------------------------------------------------------------------------------------------------------
-- Variasi Jepun
m["ja-mid"] = {
"Jepun Pertengahan",
6841474,
"ojp",
ancestors = "ojp",
}
m["ja-mid-ear"] = {
"Jepun Pertengahan Awal",
182695,
"ja-mid",
}
m["ja-mid-lat"] = {
"Jepun Pertengahan Akhir",
1816184,
"ja-mid",
ancestors = "ja-mid-ear",
}
m["ja-ear"] = {
"Jepun Moden Awal",
5326692,
"ja",
ancestors = "ja-mid-lat",
}
m["ojp-eas"] = {
"Jepun Kuno Timur",
65247957,
"ojp",
}
m["ja-cla"] = {
"Jepun Klasik",
1332057,
"ja",
-- AMARAN: Ini adalah berlebihan kerana Jepun Klasik dianggap sebagai anak kepada Jepun (Moden), yang mempunyai ja-mid-ear
-- (serta ja-mid-lat) sebagai leluhur. Walau bagaimanapun, niat di sini adalah leluhur *langsung* bagi ja-cla ialah ja-mid-ear
-- dan ja-mid-lat bukanlah leluhur. Perlu memikirkan semula pengendalian leluhur.
-- ancestors = "ja-mid-ear",
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Koreanik --
--------------------------------------------------------------------------------------
-- Variasi Korea
m["ko-KR"] = {
"Piawai Korea Selatan",
18795,
"ko",
aliases = {"Korea Selatan","Pyojuneo","P'yojunŏ"},
}
m["ko-KP"] = {
"Piawai Korea Utara",
18784,
"ko",
aliases = {"Korea Utara","Munhwa'eo","Munhwa'ŏ"},
}
m["oko-lat"] = {
"Korea Kuno Akhir",
nil,
"oko",
}
m["okm-ear"] = {
"Korea Pertengahan Awal",
nil,
"okm",
}
m["ko-cen"] = {
"Korea Tengah",
nil,
"ko",
}
m["ko-gyg"] = {
"Korea Gyeonggi",
485492,
"ko-cen",
aliases = {"Korea Seoul"},
}
m["ko-chu"] = {
"Korea Chungcheong",
625800,
"ko-cen",
aliases = {"Korea Hoseo"},
}
m["ko-hwa"] = {
"Korea Hwanghae",
16183706,
"ko-cen",
}
m["ko-gan"] = {
"Korea Gangwon",
11260444,
"ko-cen",
aliases = {"Korea Yeongdong"},
}
m["ko-gys"] = {
"Korea Gyeongsang",
488002,
"ko",
aliases = {"Korea Tenggara"},
}
m["ko-jeo"] = {
"Korea Jeolla",
11250166,
"ko",
aliases = {"Korea Barat Daya"},
}
m["ko-pyo"] = {
"Korea Pyongan",
7263142,
"ko",
aliases = {"Korea Barat Laut"},
}
m["ko-ham"] = {
"Korea Hamgyong",
860702,
"ko",
aliases = {"Korea Timur Laut"},
}
m["ko-yuk"] = {
"Korea Yukjin",
16171275,
"ko",
aliases = {"Korea Yukchin", "Korea Ryukjin", "Korea Ryukjin"},
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Mongolik --
----------------------------------------------------------------------------------------------------------------------
m["xng-ear"] = {
"Mongol Pertengahan Awal",
nil,
"xng",
}
m["xng-lat"] = {
"Mongol Pertengahan Akhir",
nil,
"xng",
ancestors = "xng-ear",
}
m["mn-kha"] = {
"Mongolia Khalkha",
6399808,
"mn",
aliases = {"Khalkha"},
}
m["mn-ord"] = {
"Mongolia Ordos",
716904,
"mn",
aliases = {"Ordos"},
}
m["mn-cha"] = {
"Mongolia Chakhar",
907425,
"mn",
aliases = {"Chakhar"},
}
m["mn-khr"] = {
"Mongolia Khorchin",
3196210,
"mn",
aliases = {"Khorchin"},
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Niger-Congo --
----------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------
-- Variasi Akan --
-----------------------------------------------------
m["tw"] = {
"Akan Twi",
36850,
"ak",
aliases = {"Twi"},
}
m["abr"] = {
"Abron",
34831,
"tw",
aliases = {"Brong", "Bono", "Bono Twi"},
}
m["tw-asa"] = {
"Twi Asante",
19261685,
"tw",
aliases = {"Asante", "Ashanti", "Ashante"},
}
m["tw-aku"] = {
"Twi Akuapem",
31150449,
"tw",
aliases = {"Akuapem", "Akuapim", "Twi Akwapem", "Akwapi"},
}
m["fat"] = {
"Akan Fante",
35570,
"ak",
aliases = {"Fante", "Fanti", "Fantse", "Mfantse"},
}
m["wss"] = {
"Wasa",
36914,
"ak",
}
-- kreol
m["alv-kro"] = {
"Kromanti",
1093206,
"crp-mar",
}
-----------------------------------------------------
-- Variasi Bantu --
-----------------------------------------------------
m["bnt-cmn"] = {
"Bantu Umum",
nil,
"bnt-pro",
}
m["xh-bha"] = {
"Bhaca",
4900493,
"xh",
aliases = {"isiBhaca", "IsiBhaca"},
}
-- Variasi Rwanda-Rundi
m["rw-kin"] = {
"Kinyarwanda",
33573,
"rw",
aliases = {"Rwanda"},
}
m["rw-run"] = {
"Kirundi",
33583,
"rw",
aliases = {"Rundi"},
}
-----------------------------------------------------
-- Variasi Fula --
-----------------------------------------------------
m["fuc"] = {
"Pulaar",
1420205,
"ff",
}
m["fuf"] = {
"Pular",
3915357,
"ff",
}
m["ffm"] = {
"Fulfulde Maasina",
3915322,
"ff",
}
m["fue"] = {
-- tiada entri enwiki setakat ini tetapi frwiki dan pmswiki ada
"Fulfulde Borgu",
12952426,
"ff",
}
m["fuh"] = {
-- tiada entri enwiki setakat ini tetapi frwiki dan pmswiki ada
"Fulfulde Niger Barat",
12952430,
"ff",
}
m["fuq"] = {
-- tiada entri enwiki setakat ini tetapi frwiki, hrwiki dan pmswiki ada
"Fulfulde Niger Tengah-Timur",
12628799,
"ff",
}
m["fuv"] = {
-- tiada entri enwiki setakat ini tetapi dewiki, frwiki, hrwiki, pmswiki dan swwiki ada
"Fulfulde Nigeria",
36129,
"ff",
}
m["fub"] = {
-- tiada entri enwiki setakat ini tetapi dewiki, frwiki, hrwiki, pmswiki, ptwiki, swwiki dan yowiki ada
"Fulfulde Adamawa",
34776,
"ff",
}
m["fui"] = {
-- tiada entri enwiki setakat ini tetapi pmswiki dan swwiki ada
"Fulfulde Bagirmi",
11003859,
"ff",
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Papuan --
----------------------------------------------------------------------------------------------------------------------
m["kze"] = {
"Kosena",
12952663,
"auy",
}
m["ont"] = {
"Ontenu",
3352827,
"gaj",
aliases = {"Ontena"},
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Salishan --
----------------------------------------------------------------------------------------------------------------------
m["lut-nor"] = {
"Lushootseed Utara",
nil,
"lut",
aliases = {"Salish Sound Puget Utara"},
}
m["slh"] = {
"Lushootseed Selatan",
7997684,
"lut",
aliases = {"Salish Sound Puget Selatan", "Twulshootseed", "Whulshootseed"},
}
m["ska"] = {
"Skagit",
12642471,
"lut-nor",
}
m["sno"] = {
"Snohomish",
25559662,
"lut-nor",
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Sino-Tibetan --
----------------------------------------------------------------------------------------------------------------------
m["tbq-pro"] = {
"Proto-Tibeto-Burman",
7251864,
"sit-pro",
}
-----------------------------------------------------
-- Variasi Cina --
-----------------------------------------------------
------------- Cina Kuno, Cina Pertengahan -------------
m["och-ear"] = {
"Cina Kuno Awal",
nil,
"och",
}
m["och-lat"] = {
"Cina Kuno Akhir",
nil,
"och",
}
m["ltc-ear"] = {
"Cina Pertengahan Awal",
nil,
"ltc",
}
m["ltc-lat"] = {
"Cina Pertengahan Akhir",
nil,
"ltc",
}
------------- Variasi Klasik/Sastera -------------
-- AMARAN: Sementara.
m["lzh-shi"] = {
"Puisi Cina Tradisional",
1759242,
"lzh",
}
-- AMARAN: Sementara.
m["lzh-cii"] = {
"Ci",
1091366,
"lzh",
}
-- AMARAN: Sementara.
m["lzh-yue"] = {
"Kantonis Klasik",
nil,
"lzh",
}
-- AMARAN: Sementara.
m["lzh-cmn"] = {
"Mandarin Klasik",
nil,
"lzh",
}
-- AMARAN: Sementara.
m["lzh-tai"] = {
"Taishanese Klasik",
nil,
"lzh",
}
-- AMARAN: Sementara.
m["lzh-cmn-TW"] = {
"Mandarin Taiwan Klasik",
nil,
"lzh-cmn",
}
-- AMARAN: Sementara.
m["lzh-VI"] = {
"Cina Klasik Vietnam",
17034227,
"lzh",
}
-- AMARAN: Sementara.
m["lzh-KO"] = {
"Cina Klasik Korea",
10496257,
"lzh",
ietf_subtag = "lzh-KR" -- KR = Korea Selatan, kerana tiada kod untuk Korea secara keseluruhan
}
-- AMARAN: Sementara.
m["lzh-lit"] = {
"Cina Sastera",
nil,
"lzh",
}
-- AMARAN: Sementara. AMARAN: Adakah kita memerlukan ini? Bagaimanakah bezanya daripada Cina Kuno?
m["lzh-pre"] = {
"Cina Pra-Klasik",
nil,
"lzh",
}
------------- Variasi Bahasa Lisan Bertulis -------------
-- AMARAN: Sementara.
m["cmn-wvc"] = {
"Mandarin lisan bertulis",
783605,
"cmn",
}
-- AMARAN: Sementara. AMARAN: Bagaimanakah bezanya daripada "Kantonis Sastera"?
m["yue-wvc"] = {
"Kantonis lisan bertulis",
nil,
"yue",
}
-- AMARAN: Sementara.
m["zhx-tai-wvc"] = {
"Taishanese lisan bertulis",
nil,
"zhx-tai",
}
------------- Variasi Mandarin -------------
-- AMARAN: Sementara. NOTA: Senarai Pakar Bahasa memberikan "Dialek Beijing" (Wikidata 1147606) kod "cmn-bej" dan kumpulan dialek "Mandarin Beijing" yang lebih besar (bahagian Mandarin, Wikidata 2169652; apa yang kita panggil "Mandarin Beijing", mengikut Glottolog) kod "cmn-bei".
m["cmn-bei"] = {
"Mandarin Beijing",
1147606,
"cmn-bec",
}
-- AMARAN: Sementara.
m["cmn-bec"] = {
"Mandarin Beijingik",
2169652,
"cmn",
}
-- AMARAN: Sementara. NOTA: Senarai Pakar Bahasa menggunakan kod cmn-zho.
m["cmn-cep"] = {
"Mandaran Dataran Tengah",
3048775,
"cmn",
aliases = {"Mandarin Zhongyuan"},
}
m["cmn-ear"] = {
"Mandarin Awal",
837169,
"cmn",
ancestors = "ltc",
}
-- AMARAN: Sementara.
m["cmn-gua"] = {
"Mandarin Guanzhong",
3431648,
"cmn-cep",
}
-- AMARAN: Sementara. Nampaknya merupakan subdialek Mandarin Guiliu, yang seterusnya merupakan subdialek Mandarin Barat Daya.
m["cmn-gui"] = {
"Mandarin Guilin",
11111636,
"cmn-sow",
}
m["cmn-jhu"] = {
"Mandarin Jianghuai",
2128953,
"cmn",
aliases = {"Mandarin Yangtze Bawah"},
}
-- AMARAN: Sementara.
m["cmn-lan"] = {
"Mandarin Lanyin",
662754,
"cmn",
}
-- AMARAN: Sementara.
m["cmn-MY"] = {
"Mandarin Malaysia",
13646143,
"cmn",
}
-- AMARAN: Sementara.
m["cmn-nan"] = {
"Mandarin Nanjing",
2681098,
"cmn-jhu",
}
-- AMARAN: Sementara.
m["cmn-noe"] = {
"Mandarin Timur Laut",
1064504,
"cmn",
}
-- AMARAN: Sementara.
m["cmn-PH"] = {
"Mandarin Filipina",
7185155,
"cmn",
}
-- AMARAN: Sementara.
m["cmn-SG"] = {
"Mandarin Singapura",
1048980,
"cmn",
}
-- AMARAN: Sementara.
m["cmn-sow"] = {
"Mandarin Barat Daya",
2609239,
"cmn",
}
-- AMARAN: Sementara. Nampaknya merupakan subdialek Mandarin Jilu.
m["cmn-tia"] = {
"Mandarin Tianjin",
7800220,
"cmn",
}
-- AMARAN: Sementara. NOTA: Wikidata juga mempunyai Q4380827 "Mandarin Taiwan", yang ditakrifkan sebagai "dialek jarang bagi Cina Standard (Mandarin) yang digunakan di Taiwan, yang sangat dipengaruhi oleh Hokkien Taiwan; kebanyakannya digunakan oleh warga emas" dan tidak mempunyai artikel Wikipedia Bahasa Inggeris (tetapi lihat w:zh:臺灣國語).
m["cmn-TW"] = {
"Mandarin Taiwan",
262828,
"cmn",
}
-- AMARAN: Sementara. Nampaknya merupakan subdialek Mandarin Wu-Tian, seterusnya subdialek Mandarin Barat Daya. Diberikan kod cmn-xwu dalam Senarai Pakar Bahasa.
m["cmn-wuh"] = {
"Mandarin Wuhan",
11124731,
"cmn-sow",
aliases = {"Wuhanese"},
}
-- AMARAN: Sementara. Nampaknya merupakan subdialek Mandarin Lanyin.
m["cmn-xin"] = {
"Mandarin Xining",
nil,
"cmn-lan",
}
-- AMARAN: Sementara.
m["cmn-yan"] = {
"Mandarin Yangzhou",
nil,
"cmn-jhu",
}
------------- Variasi Kantonis -------------
-- AMARAN: Sementara.
m["yue-gua"] = {
"Kantonis Guangzhou",
nil,
"yue",
}
-- AMARAN: Sementara. Diberikan kod yue-yue atau yue-can dalam Senarai Pakar Bahasa.
m["yue-HK"] = {
"Kantonis Hong Kong",
5894342,
"yue",
}
-- AMARAN: Sementara. AMARAN: Bagaimanakah bezanya daripada "Kantonis lisan bertulis"?
m["yue-lit"] = {
"Kantonis Sastera",
2472605,
"yue",
}
------------- Variasi Wu -------------
m["wuu-han"] = {
"Hangzhounese",
5648144,
"wuu",
}
m["wuu-nin"] = {
"Ningbonese",
3972199,
"wuu",
}
-- AMARAN: Sementara.
m["wuu-nor"] = {
"Wu Utara",
7675988,
"wuu",
aliases = {"Wu Taihu"},
}
-- AMARAN: Sementara? Subvarieti Wu Taihu. NOTA: "chm" bermaksud Chongming, dialek utama, untuk mengelakkan konflik dengan bahasa Shanghai.
m["wuu-chm"] = {
"Wu Shadi",
6112340,
"wuu-nor",
}
m["wuu-sha"] = {
"Shanghai",
36718,
"wuu-nor",
}
m["wuu-suz"] = {
"Suzhounese",
831744,
"wuu-nor",
}
-- AMARAN: Sementara. Boleh ditukar menjadi bahasa penuh dan/atau dipecahkan.
m["wuu-wen"] = {
"Wenzhounese",
710218,
"wuu",
}
------------- Variasi Xiang -------------
m["hsn-lou"] = {
"Xiang Loudi",
10943823,
"hsn-old",
}
m["hsn-hya"] = {
"Xiang Hengyang",
20689035,
"hsn-hzh",
}
m["hsn-hzh"] = {
"Xiang Hengzhou",
nil,
"hsn",
}
m["hsn-new"] = {
"Xiang Baharu",
7012696,
"hsn",
aliases = {"Chang-Yi"},
}
m["hsn-old"] = {
"Xiang Kuno",
7085453,
"hsn",
aliases = {"Lou-Shao"},
}
------------- Variasi Hakka -------------
-- AMARAN: Sementara.
m["hak-dab"] = {
"Hakka Dabu",
19855566,
"hak", -- dahulunya hak-TW tetapi nampaknya dituturkan terutamanya di Daerah Dabu di Guangdong
}
-- AMARAN: Sementara.
m["hak-eam"] = {
"Hakka Moden Awal",
nil,
"hak",
}
-- AMARAN: Sementara.
m["hak-hai"] = {
"Hakka Hailu",
17038519,
"hak", -- sering dianggap sebagai lekt Taiwan tetapi juga dituturkan di [[Shanwei]], [[Guangdong]]
}
-- AMARAN: Sementara.
m["hak-HK"] = {
"Hakka Hong Kong",
2675834,
"hak",
}
-- AMARAN: Sementara.
m["hak-hui"] = {
"Hakka Huiyang",
16873881,
"hak",
}
-- AMARAN: Sementara.
m["hak-hui-MY"] = {
"Hakka Huiyang Malaysia",
nil,
"hak-hui",
}
-- AMARAN: Sementara. Menyerupai dan mungkin merupakan ibu bapa kepada Hakka Sixian di Taiwan.
m["hak-mei"] = {
"Hakka Meixian",
839295,
"hak",
aliases = {"Hakka Moiyan", "Hakka Meizhou"},
}
-- AMARAN: Sementara.
m["hak-six"] = {
"Hakka Sixian",
9668261,
"hak-TW",
}
-- AMARAN: Sementara.
m["hak-TW"] = {
"Hakka Taiwan",
2391532,
"hak",
}
-- AMARAN: Sementara.
m["hak-zha"] = {
"Hakka Zhao'an",
6703311,
"hak",
aliases = {"Hakka Zhangzhou"},
}
-- Variasi Min Selatan --
m["nan-anx"] = {
"Hokkien Anxi",
97064149,
"nan-qua",
}
m["nan-cha"] = {
"Hokkien Changtai",
nil,
"nan-zha",
}
m["nan-hou"] = {
"Min Houlu",
19855492,
"nan-dat",
}
m["nan-hui"] = {
"Hokkien Hui'an",
16241797,
"nan-qua",
}
m["nan-jin"] = {
"Hokkien Jinjiang",
11089375,
"nan-qua",
}
m["nan-kin"] = {
"Hokkien Kinmen",
56278342,
"nan-xia",
aliases = {"Hokkien Kinmen"},
}
m["nan-med"] = {
"Hokkien Medan",
6805114,
"nan-zha",
}
m["nan-pen"] = {
"Hokkien Pulau Pinang",
11120689,
"nan-zha",
}
m["nan-hbl-PH"] = {
"Hokkien Filipina",
3236692,
"nan-qua",
}
m["nan-qia"] = {
"Min Qianlu",
19842517,
"nan-dat",
}
m["nan-qua"] = {
"Hokkien Quanzhou",
2251677,
"nan-hbl",
aliases = {"Chinchew", "Choanchew"},
}
-- AMARAN: Sementara? Berasal dari Hokkien Quanzhou dan Zhangzhou.
m["nan-hbl-SG"] = {
"Hokkien Singapura",
3846528,
"nan-hbl",
}
m["nan-spm"] = {
"Hokkien Malaysia Selatan",
7570322,
"nan-qua",
aliases = {"Hokkien Malaysia Selatan", "Hokkien Semenanjung Malaysia Selatan", "Hokkien Semenanjung Malaysia Selatan"}
}
m["nan-hbl-TW"] = {
"Hokkien Taiwan",
36778,
"nan-hbl",
}
m["nan-ton"] = {
"Hokkien Tong'an",
nil,
"nan-xia",
}
m["nan-xia"] = {
"Hokkien Xiamen",
68744,
"nan-hbl",
aliases = {"Amoy", "Amoyese", "Amoynese", "Xiamenese"},
}
m["nan-yon"] = {
"Hokkien Yongchun",
65118728,
"nan-qua",
}
m["nan-zha"] = {
"Hokkien Zhangzhou",
8070492,
"nan-hbl",
aliases = {"Changchew", "Chiangchew", "Changchow"},
}
m["nan-zho"] = {
"Hokkien Zhao'an",
65118728,
"nan-zha",
aliases = {"Zhao'an", "Chawan", "Hokkien Chawan"},
}
m["nan-zhp"] = {
"Hokkien Zhangping",
15937822,
"nan-zha",
}
------------- Variasi Min Lain -------------
-- AMARAN: Sementara. Gabungan pertalian dalam Min tidak pasti; gabungan Min Timur dan Selatan.
m["zhx-zho"] = {
"Min Zhongshan",
8070958,
"zh",
}
------------- Variasi Cina Lain -------------
-- AMARAN: Sementara. Pertalian dalam Cina tidak pasti; mungkin Kantonis.
m["zhx-dan"] = {
"Cina Danzhou",
2578935,
"zh",
}
------------- Variasi rumi bahasa Cina -------------
-- [[Wiktionary:Information desk/2022/June#Etymology Coding Issue]]
-- [[Wiktionary:Grease pit/2022/June#Transliteration Systems in Etymologies 2]]
m["cmn-pinyin"] = {
"Hanyu Pinyin",
42222,
"cmn",
aliases = {"Pinyin"},
}
m["cmn-tongyong"] = {
"Tongyong Pinyin",
700739,
"cmn",
}
m["cmn-wadegiles"] = {
"Wade–Giles",
208442,
"cmn",
aliases = {"Wade-Giles", "Wade Giles"},
}
m["zh-postal"] = {
"Rumi Pos",
151868,
"zh",
}
-- Pengsilikan Cina
m["cmn-palladius"] = {
"Palladius",
1234239,
"cmn",
aliases = {"Sistem Palladius"},
}
-----------------------------------------------------
-- Variasi Tibetik --
-----------------------------------------------------
m["adx"] = {
"Tibetan Amdo",
56509,
"bo",
}
m["kbg"] = {
"Khamba",
12952626,
"bo",
}
m["khg"] = {
"Tibetan Khams",
56601,
"bo",
}
m["tsk"] = {
"Tseku",
11159532,
"bo",
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Tai-Kadai --
----------------------------------------------------------------------------------------------------------------------
m["th-old"] = {
"Thai Kuno",
nil,
"tai-swe-pro",
wikipedia_article = "Thai language#Old Thai",
}
m["th-suk"] = {
"Thai Kuno Sukhothai", -- 1238-1438. Tidak boleh menggunakan "Sukhothai Thai" kerana Sukhothai adalah bandar semasa dan "Sukhothai Thai" ialah satu lekt.
nil,
"th-old",
aliases = {"Siamese Sukhothai"},
wikipedia_article = "Thai language#Old Thai",
}
m["th-ayu"] = {
"Thai Kuno Ayutthaya", -- 1351-1767. Tidak boleh menggunakan "Ayutthaya Thai" kerana Ayutthaya adalah bandar semasa.
nil,
"th-old",
aliases = {"Siamese Ayutthaya"},
wikipedia_article = "Thai language#Old Thai",
}
--[[
m["th-new"] = {
"Hacked Thai", -- sementara untuk menguji kaedah transliterasi/paparan baharu
nil,
"th",
translit = "User:Benwing2/th-scraping-translit",
display_text = "User:Benwing2/th-scraping-translit",
strip_diacritics = "User:Benwing2/th-scraping-translit",
preprocess_links = "User:Benwing2/th-scraping-translit",
}
]]
m["tai-shz"] = {
"Zhuang Shangsi",
13216,
"za",
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Turkic --
----------------------------------------------------------------------------------------------------------------------
m["trk-cmn-pro"] = {
"Proto-Turkic Sepunya",
1126028,
"trk-pro",
}
m["trk-ogr-pro"] = {
"Proto-Oghur",
1422731,
"trk-pro",
family = "trk-ogr",
}
m["trk-bul-pro"] = {
"Proto-Bulgar",
nil,
"trk-ogr-pro",
}
m["trk-ogz-pro"] = {
"Proto-Oghuz",
494600,
"trk-pro",
family = "trk-ogz",
aliases = {"Turkic Sepunya Barat Daya"},
}
m["crh-dbj"] = {
"Tatar Dobruja",
12811566,
"crh",
aliases = {"Tatar Romania"},
}
m["cv-ana"] = {
"Chuvash Anatri",
nil,
"cv",
aliases = {"Anatri", "Chuvash Bawah"},
}
m["cv-mid"] = {
"Chuvash Pertengahan",
nil,
"cv",
ancestors = "cv-old",
}
m["cv-old"] = {
"Chuvash Kuno",
nil,
"cv",
ancestors = "xbo-vol",
}
m["cv-vir"] = {
"Chuvash Viryal",
4278332,
"cv",
aliases = {"Viryal", "Chuvash Atas"},
}
m["kjh-fyu"] = {
"Kyrgyz Fuyu",
2598963,
"kjh",
aliases = {"Kirgiz Fuyu", "Kirghiz Fuyu", "Kyrgyz Manchuria", "Kirgiz Manchuria", "Kirghiz Manchuria"},
}
m["klj-arg"] = {
"Arghu",
33455,
"klj",
ancestors = "trk-cmn-pro",
}
m["otk-kir"] = {
"Kirghiz Kuno",
83142,
"otk",
aliases = {"Turkic Yenisei", "Kyrgyz Yenisei"},
}
m["otk-ork"] = {
"Turkic Orkhon",
31295480,
"otk",
}
m["qwm-cum"] = {
"Cuman",
1075050,
"qwm",
aliases = {"Kuman", "Polovtsian", "Polovcian"},
}
m["qwm-arm"] = {
"Kipchak-Armenia",
2027503,
"qwm",
ancestors = "qwm-cum",
aliases = {"Xıpçaχ tili", "Tatarça"},
}
m["qwm-mam"] = {
"Kipchak-Mamluk",
4279942,
"qwm",
aliases = {"Kipchak-Mameluk"},
}
m["az-cls"] = {
"Azerbaijani Klasik",
nil,
"az",
aliases = {"Azeri Klasik"},
}
m["qxq"] = {
"Qashqai",
13192,
"az",
aliases = {"Qaşqay", "Qashqayi", "Kashkai", "Kashkay"},
}
m["tr-CY"] = {
"Turkish Cyprus",
7917392,
"tr",
}
m["uz-afg"] = {
-- NOTA: mempunyai kod ISO 639-3 uzs yang diuntukkan kepadanya.
"Uzbek Afghanistan",
1066787,
"uz",
aliases = {"Uzbek Selatan"},
translit = "uz-afg-translit",
}
m["xbo-dan"] = {
"Bulgar Danube",
nil,
"xbo",
}
m["xbo-vol"] = {
"Bulgar Volga",
nil,
"xbo",
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Uralic --
----------------------------------------------------------------------------------------------------------------------
m["fiu-pro"] = {
"Proto-Finno-Ugric",
79890,
"urj-pro",
}
m["urj-fpr-pro"] = {
"Proto-Finno-Permic",
nil,
"urj-pro",
}
m["krl-nor"] = {
"Karelia Utara",
125501196,
"krl",
}
m["krl-sou"] = {
"Karelia Selatan",
129812730,
"krl",
}
m["mns-eas"] = {
"Mansi Timur",
30311755,
"mns-cen",
}
m["mns-wes"] = {
"Mansi Barat",
30311756,
"mns-cen",
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Yeneseian --
----------------------------------------------------------------------------------------------------------------------
m["qfa-yke-pro"] = {
"Proto-Ketic",
nil,
"qfa-yen-pro",
family = "qfa-yke",
}
m["qfa-yko-pro"] = {
"Proto-Kottic",
nil,
"qfa-yen-pro",
family = "qfa-yko",
}
m["qfa-yrn-pro"] = {
"Proto-Arinic",
nil,
"qfa-yen-pro",
family = "qfa-yrn",
}
m["qfa-ypm-pro"] = {
"Proto-Pumpokolic",
nil,
"qfa-yen-pro",
family = "qfa-ypm",
}
----------------------------------------------------------------------------------------------------------------------
-- Variasi Pelbagai --
----------------------------------------------------------------------------------------------------------------------
m["mul-tax"] = {
"nama taksonomi",
522190,
"mul",
}
-----------------------------------------------------
-- Variasi Elamite --
-----------------------------------------------------
m["elx-old"] = {
"Elamite Kuno",
nil,
"elx",
}
m["elx-mid"] = {
"Elamite Pertengahan",
nil,
"elx",
}
m["elx-neo"] = {
"Elamite Neo",
nil,
"elx",
}
m["elx-ach"] = {
"Elamite Achaemenid",
nil,
"elx",
}
-----------------------------------------------------
-- Substrat --
-----------------------------------------------------
-- Substrat Pra-Rom
m["qsb-ibe"] = {
"Paleo-Hispanic",
246801,
"und",
family = "qfa-sub",
aliases = {"Palaeo-Hispanic", "Paleohispanic", "Palaeohispanic", "Paleo-Iberian", "Palaeo-Iberian"},
}
m["qsb-bal"] = {
"Paleo-Balkan",
1815070,
"und",
family = "qfa-sub",
aliases = {"Palaeo-Balkan", "Paleobalkan", "Palaeobalkan"},
}
m["xaq"] = {
"Aquitanian",
500522,
"euq-pro",
family = "euq",
}
return require("Module:languages").finalizeData(m, "language", true)
fw6kufy50xhq732fde8arbzoic5ad2q
Modul:grc-translit
828
10073
373479
111961
2026-09-10T18:02:27Z
SNN95
2113
kemaskini
373479
Scribunto
text/plain
local export = {}
local m_grc_utils = require("Module:grc-utilities")
local m_grc_utils_data = require("Module:grc-utilities/data")
local m_str_utils = require("Module:string utilities")
local tokenize = require("Module:grc-utilities").tokenize
local canonicalize = m_grc_utils.canonicalize
local concat = table.concat
local insert = table.insert
local split = m_str_utils.split
local u = m_str_utils.char
local ugsub = m_str_utils.gsub
local ulower = m_str_utils.lower
local umatch = mw.ustring.match
local uupper = m_str_utils.upper
-- Diacritics
local diacritic = m_grc_utils_data.diacritic
local diacritics = m_grc_utils_data.diacritics
-- Greek
local acute = diacritics.acute
local grave = diacritics.grave
local circumflex = diacritics.circum
local smooth = diacritics.smooth
local rough = diacritics.rough
local breve = diacritics.breve
local macron = diacritics.macron
local subscript = diacritics.subscript
local vowel = m_grc_utils_data.vowel
-- Latin
local hat = diacritics.Latin_circum
local au_subscript = "^[αυ].*" .. subscript .. "$"
local question_mark = u(0x37E)
local velar = "[γκξχϙ]"
local long_vowels = { -- Macron will be added.
["η"] = "e",
["ω"] = "o",
}
local tt = {
-- Vowels
["α"] = "a",
["ε"] = "e",
["ι"] = "i",
["ο"] = "o",
["υ"] = "u",
-- Consonants
["β"] = "b",
["γ"] = "g",
["δ"] = "d",
["ζ"] = "z",
["θ"] = "th",
["κ"] = "k",
["λ"] = "l",
["μ"] = "m",
["ν"] = "n",
["ξ"] = "x",
["π"] = "p",
["ρ"] = "r",
["σ"] = "s",
["ς"] = "s",
["τ"] = "t",
["φ"] = "ph",
["χ"] = "kh",
["ψ"] = "ps",
-- Other letters
["ϛ"] = "st",
["ϝ"] = "w",
["ͱ"] = "h",
["ϳ"] = "j",
["ϙ"] = "q",
["ϻ"] = "s",
["ϸ"] = "š",
["ͳ"] = "s",
--["ͷ"] = "v", Differs by dialect.
-- Diacritics
-- unchanged: macron, diaeresis, grave, acute
[smooth] = "",
[rough] = "",
[circumflex] = hat,
[subscript] = "i",
}
local function get_next_token(tokens, i)
local new = i + 1
local token = tokens[new]
while token and token:match("[()[%]{}]") do
new = new + 1
token = tokens[new]
end
return new, token, token and ulower(token), concat(tokens, nil, i + 1, new - 1)
end
local function translit_letter(letter, trail)
local tr = long_vowels[letter]
return (tr and (tr .. (trail:find(breve) and "" or macron)) or tt[letter] or letter) .. trail:gsub(".[\128-\191]*", tt)
end
local function do_translit(token)
-- Put iota subscript before accent marks, so that they appear on "i".
token = ugsub(token, "([" .. acute .. grave .. circumflex .. "]+)" .. subscript, subscript .. "%1")
return ugsub(token, "(.)(%W*)", translit_letter)
end
local function remove_macron_if_hat(m)
return m:find(hat) and m:gsub(macron, "") or m
end
local function insert_translit(output, translit, token, lower_token, next_token, next_token_lower, suffix)
-- Remove any duplicate diacritics (this shouldn't really happen).
local n
repeat
translit, n = ugsub(translit, "(" .. diacritic .. ")(%W-)%1", "%1%2")
until n == 0
-- Remove macron from a vowel that has a circumflex.
translit = ugsub(translit, "%W+", remove_macron_if_hat)
-- If capitalized, only capitalize the first letter unless the following token is capitalized as well.
insert(
output,
(token == lower_token and translit or
next_token == next_token_lower and translit:gsub("^" .. ".[\128-\191]*", uupper) or
uupper(translit)
) .. suffix
)
end
function export.tr(text, lang, sc)
if text == "῾" then
return "h"
end
-- in case of bold/italic text; only works in testcases submodule, not in sandbox, so outcommented
-- local remove_rough = {
-- ['ἱ'] = 'ι', ['ἵ'] = 'ί', ['ἳ'] = 'ὶ', ['ἷ'] = 'ῖ',
-- ['ὑ'] = 'υ', ['ὕ'] = 'ύ', ['ὓ'] = 'ὺ', ['ὗ'] = 'ῦ',
-- }
-- text = ugsub(text, "([αᾰᾱΑᾸᾹεΕηΗοΟυῠῡΥῨῩωΩ])(\'\'\'?)([ἱἵἳἷὑὕὓὗ])",
-- function(a,b,c)
-- return a .. rough .. b .. remove_rough[c]
-- end)
--[[
Replace semicolon or Greek question mark with regular question mark,
except any that occur in HTML entities. Use split to separate out the
chunks between any entities.
]]
text = split(canonicalize(text), "(&#?%w+;)")
for i = 1, #text, 2 do
text[i] = text[i]:gsub(";", "?"):gsub(question_mark, "?")
end
text = concat(text)
-- Handle the middle dot. It is equivalent to semicolon or colon, but semicolon is probably more common.
text = text:gsub("·", ";")
local tokens = tokenize(text)
--now read the tokens
local next_i, next_token, next_token_lower, suffix = get_next_token(tokens, 0)
local output = {suffix}
while next_token do
local i, token, lower_token, is_rough = next_i, next_token, next_token_lower
local translit = do_translit(lower_token)
next_i, next_token, next_token_lower, suffix = get_next_token(tokens, i)
-- γ before a velar should be <n>
if lower_token:find("γ") and next_token_lower and umatch(next_token_lower, velar) then
translit = translit:gsub("g", "n")
elseif lang == "xbc" and lower_token:find("φ") then
translit = translit:gsub("ph", "f")
elseif token == "ρ"..rough then
translit = "rh"
elseif token == "ρ"..smooth then
translit = "r"
-- ρ after ρ should be <rh>
elseif lang == "grc" and lower_token:find("ρ") then
-- Keep adding ρs until they run out. Set is_rough, so that "h" will get appended.
while next_token_lower and next_token_lower:find("ρ") do
insert_translit(output, translit, token, lower_token, next_token, next_token_lower, suffix)
i, token, lower_token, is_rough = next_i, next_token, next_token_lower, true
translit = do_translit(lower_token)
next_i, next_token, next_token_lower, suffix = get_next_token(tokens, i)
end
-- add macron to ᾳ
elseif umatch(lower_token, au_subscript) then
translit = translit:gsub("[au]", "%0" .. macron)
end
if is_rough or lower_token:find(rough) then
if umatch(lower_token, vowel) then
translit = "h" .. translit
else
local final = umatch(translit, "(%w)%W*$")
if final and final ~= "h" then
translit = translit .. "h"
end
end
end
insert_translit(output, translit, token, lower_token, next_token, next_token_lower, suffix)
end
return concat(output)
end
return export
0dhgenoy6vd0n02uesjql72w66znn46
Modul:yesno
828
10137
373498
223512
2026-09-10T20:34:36Z
SNN95
2113
kemaskini
373498
Scribunto
text/plain
-- Function allowing for consistent treatment of boolean-like wikitext input.
-- It works similarly to the template {{yesno}}.
local lower = string.lower
local tonumber = tonumber
local type = type
local yesno
return function (val, default)
if val == nil then
return nil
elseif not yesno then
yesno = {
[true] = true, [false] = false,
["true"] = true, ["false"] = false,
["t"] = true, ["f"] = false,
[1] = true, [0] = false,
["1"] = true, ["0"] = false,
["yes"] = true, ["no"] = false,
["y"] = true, ["n"] = false,
["on"] = true, ["off"] = false,
}
end
local ret = yesno[val]
if ret ~= nil then
return ret
elseif type(val) ~= "string" then
return default
end
-- Catch inputs like "00".
ret = yesno[tonumber(val)]
if ret ~= nil then
return ret
end
-- Case-insensitive.
ret = yesno[lower(val)]
if ret ~= nil then
return ret
end
return default
end
50fw3j6qj6cod4hrcb5leyd15zs34hg
Modul:affix/templates
828
10378
373511
281460
2026-09-10T21:32:19Z
SNN95
2113
373511
Scribunto
text/plain
local export = {}
local m_affix = require("Module:affix")
local m_utilities = require("Module:utilities")
local en_utilities_module = "Module:en-utilities"
local parameter_utilities_module = "Module:parameter utilities"
local pseudo_loan_module = "Module:affix/pseudo-loan"
local insert = table.insert
local boolean_param = {type = "boolean"}
local function is_property_key(k)
return require(parameter_utilities_module).item_key_is_property(k)
end
local recognized_affix_types = {
prefix = "awalan",
pre = "awalan",
suffix = "akhiran",
suf = "akhiran",
interfix = "jalinan",
inter = "jalinan",
infix = "sisipan",
["in"] = "sisipan",
circumfix = "apitan",
circum = "apitan",
["non-affix"] = "non-affix",
naf = "non-affix",
root = "non-affix",
}
local function pre_normalize_affix_type(data)
local modtext = data.modtext
modtext = modtext:match("^<(.*)>$")
if not modtext then
error(("Internal error: Passed-in modifier isn't surrounded by angle brackets: %s"):format(data.modtext))
end
if recognized_affix_types[modtext] then
modtext = "type:" .. modtext
end
return "<" .. modtext .. ">"
end
-- Parse raw arguments. A single parameter `data` is passed in, with the following fields:
-- * `raw_args`: The raw arguments to parse, normally taken from `frame:getParent().args`.
-- * `extra_params`: An optional function of one argument that is called on the `params` structure before parsing; its
-- purpose is to specify additional allowed parameters or possibly disable parameters.
-- * `has_source`: There is a source-language parameter following 1= (which becomes the "destination" language
-- parameter) and preceding the terms. This is currently used for {{pseudo-loan}}.
-- * `ilang`: If given, it is a language object that serves as the default for the language. If specified, there is no
-- language code specified in 1=; instead the term parameters start directly at 1= (or at 2= if `has_source` is
-- given).
-- * `require_index_for_pos`: There is no separate |pos= parameter distinct from |pos1=, |pos2=, etc. Instead,
-- specifying |pos= results in an error.
-- * `dont_require_index`: Allow |foo= to be specified as a synonym for |foo1= (except for |lit=, which remains
-- distinct).
-- * `allow_type`: Allow |type1=, |type2=, etc. or inline <type:...> for the affix type, and allow a separate |type=
-- parameter for the etymology type (FIXME: this may be confusing; consider changing the etymology type to |etype=).
-- * `allow_semicolon_separator`: Allow semicolon as a separator, displaying as " or ". This requires changes in the
-- display of the output, to not always put a + between the items.
--
-- Note that all language parameters are allowed to be etymology-only languages.
--
-- Return five values ARGS, ITEMS, LANG_OBJ, SCRIPT_OBJ, SOURCE_LANG_OBJ where ARGS is a table of the parsed arguments;
-- ITEMS is the list of parsed items; LANG_OBJ is the language object corresponding to the language code specified in 1=
-- (or taken from `ilang` if given); SCRIPT_OBJ is the script object corresponding to sc= (if given, otherwise nil); and
-- SOURCE_LANG_OBJ is the language object corresponding to the source-language code specified in 2= (or 1= if `ilang` is
-- given) if `has_source` is specified (otherwise nil).
local function parse_args(data)
local raw_args = data.raw_args
local has_source = data.has_source
local ilang = data.ilang
if raw_args.lang then
error("The |lang= parameter is not used by this template. Place the language code in parameter 1 instead.")
end
local term_index = (ilang and 1 or 2) + (has_source and 1 or 0)
local params = {
[term_index] = {list = true, allow_holes = true},
["sort"] = {},
["nocap"] = boolean_param, -- always allow this even if not used, for use with {{surf}}, which adds it
}
if not ilang then
params[1] = {required = true, type = "language", default = "und"}
end
local source_index
if has_source then
source_index = term_index - 1
params[source_index] = {required = true, type = "language", default = "und"}
end
local m_param_utils = require(parameter_utilities_module)
local param_mod_source = {}
if not data.dont_require_index then
insert(param_mod_source,
-- We want to require an index for all params (or use separate_no_index, which also requires an index for the
-- param corresponding to the first item).
{default = true, require_index = true}
)
end
insert(param_mod_source, {group = {"link", "ref", "lang", "q", "l", "infl"}})
-- Override lit= to be separate from lit1=.
insert(param_mod_source, {param = "lit", separate_no_index = true})
if not data.dont_require_index and not data.require_index_for_pos then
-- Override pos= to be separate from pos1=.
insert(param_mod_source, {param = "pos", separate_no_index = true})
end
if data.allow_type then
insert(param_mod_source, {param = "type", separate_no_index = true})
end
local param_mods = m_param_utils.construct_param_mods(param_mod_source)
if data.extra_params then
data.extra_params(params)
end
local items, args = m_param_utils.parse_list_with_inline_modifiers_and_separate_params {
params = params,
param_mods = param_mods,
raw_args = raw_args,
termarg = term_index,
parse_lang_prefix = true,
track_module = "homophones",
-- the inclusion of ‎ is what [[Module:affix]] has always done
default_separator = data.allow_semicolon_separator and " +‎ " or nil,
special_separators = data.allow_semicolon_separator and {[";"] = " or "} or nil,
disallow_custom_separators = not data.allow_semicolon_separator,
-- For compatibility, we need to not skip completely unspecified items. It is common, for example, to do
-- {{suffix|lang||foo}} to generate "+ -foo".
dont_skip_items = true,
-- Allow e.g. <infix> to be specified in place of <type:infix>.
pre_normalize_modifiers = pre_normalize_affix_type,
-- Don't pass in `lang` or `sc`, as they will be used as defaults to initialize the items, which we don't want
-- (particularly for `lang`), as the code in [[Module:affix]] uses the presence of `lang` as an indicator that
-- a part-specific language was explicitly given.
}
local lang = ilang or args[1]
local source
if has_source then
source = args[source_index]
end
-- For compatibility with the prior code, we need to convert items without term or properties to nil.
for i = 1, #items do
local item = items[i]
local saw_item_property = item.term
if not saw_item_property then
for k, v in pairs(item) do
if is_property_key(k) then
saw_item_property = true
break
end
end
end
if not saw_item_property then
items[i] = nil
elseif item.type then
-- Validate and canonicalize affix types.
if not recognized_affix_types[item.type] then
local valid_types = {}
for k in pairs(recognized_affix_types) do
insert(valid_types, ("'%s'"):format(k))
end
table.sort(recognized_affix_types)
error(("Unrecognized affix type '%s' in item %s; valid values are %s"):format(
item.type, item.itemno, table.concat(valid_types, ", ")))
else
item.type = recognized_affix_types[item.type]
end
end
end
if args.type and args.type.default and not m_affix.etymology_types[args.type.default] then
error("Unrecognized etymology type: '" .. args.type.default .. "'")
end
return args, items, lang, args.sc.default, source
end
local function augment_affix_data(data, args, lang, sc)
data.lang = lang
data.sc = sc
data.pos = args.pos and args.pos.default
data.lit = args.lit and args.lit.default
data.sort_key = args.sort
data.type = args.type and args.type.default
data.nocap = args.nocap
data.notext = args.notext
data.nocat = args.nocat
data.force_cat = args.force_cat
data.l = args.l.default
data.ll = args.ll.default
data.q = args.q.default
data.qq = args.qq.default
data.infl = args.infl.default
return data
end
function export.affix(frame)
local function extra_params(params)
params.notext = boolean_param
params.nocat = boolean_param
params.force_cat = boolean_param
end
local args, parts, lang, sc = parse_args {
raw_args = frame:getParent().args,
extra_params = extra_params,
allow_type = true,
allow_semicolon_separator = true,
}
-- There must be at least one part to display. If there are gaps, a term
-- request will be shown.
if not next(parts) and not args.type.default then
if mw.title.getCurrentTitle().nsText == "Template" then
parts = { {term = "awalan-"}, {term = "kata dasar"}, {term = "-akhiran"} }
else
error("You must provide at least one part.")
end
end
return m_affix.show_affix(augment_affix_data({ parts = parts }, args, lang, sc))
end
function export.compound(frame)
local function extra_params(params)
params.notext = boolean_param
params.nocat = boolean_param
params.force_cat = boolean_param
end
local args, parts, lang, sc = parse_args {
raw_args = frame:getParent().args,
extra_params = extra_params,
allow_type = true,
allow_semicolon_separator = true,
}
-- There must be at least one part to display. If there are gaps, a term
-- request will be shown.
if not next(parts) and not args.type.default then
if mw.title.getCurrentTitle().nsText == "Template" then
parts = { {term = "pertama"}, {separator = " +‎ ", term = "kedua"} }
else
error("You must provide at least one part of a compound.")
end
end
return m_affix.show_compound(augment_affix_data({ parts = parts }, args, lang, sc))
end
-- FIXME: Temporary for check in compound_like() below for old-style {{contraction}} parameters. Remove eventually.
local function ine(arg)
if arg == "" then
return nil
else
return arg
end
end
function export.compound_like(frame)
local iparams = {
["lang"] = {type = "language"},
["template"] = {},
["text"] = {},
["oftext"] = {},
["cat"] = {},
["noaffixcat"] = boolean_param,
["dont_require_index"] = boolean_param,
}
local iargs = require("Module:parameters").process(frame.args, iparams)
local parent_args = frame:getParent().args
-- Error to catch most uses of old-style parameters for {{contraction}}. (FIXME: Remove eventually.)
local term_param = iargs.lang and 1 or 2
if ine(parent_args[term_param + 2]) and not ine(parent_args[term_param + 1]) and not ine(parent_args.tr2) and not ine(parent_args.ts2)
and not ine(parent_args.t2) and not ine(parent_args.gloss2) and not ine(parent_args.g2)
and not ine(parent_args.alt2) then
error(("You specified a term in %s= and not one in %s=. You probably meant to use t= to specify a gloss instead. "
.. "If you intended to specify two terms, put the second term in %s=."):format(term_param + 2, term_param + 1,
term_param + 1))
end
if not ine(parent_args[term_param + 1]) and not ine(parent_args.alt2) and not ine(parent_args.tr2) and not ine(parent_args.ts2)
and ine(parent_args.g2) then
error(("You specified a gender in g2= but no term in %s=. You were probably trying to specify two genders for "
.. "a single term. To do that, put both genders in g=, comma-separated."):format(term_param + 1))
end
local function extra_params(params)
params.notext = boolean_param
params.nocat = boolean_param
params.force_cat = boolean_param
end
local args, parts, lang, sc = parse_args {
raw_args = parent_args,
extra_params = extra_params,
ilang = iargs.lang,
dont_require_index = iargs.dont_require_index,
-- FIXME, why are we doing this? Formerly we had 'params.pos = nil' whose intention was to disable the overall
-- pos= while preserving posN=, which is equivalent to the following using the new syntax. But why is this
-- necessary?
require_index_for_pos = not iargs.dont_require_index,
allow_semicolon_separator = true,
}
local template = iargs.template
local nocat = args.nocat
local notext = args.notext
local text = not notext and iargs.text
local oftext = not notext and (iargs.oftext or text and "bagi")
local cat = not nocat and iargs.cat
local noaffixcat = nocat or iargs.noaffixcat
if not next(parts) then
if mw.title.getCurrentTitle().nsText == "Template" then
parts = { {term = "pertama"}, {separator = " +‎ ", term = "kedua"} }
end
end
return m_affix.show_compound_like(augment_affix_data({ parts = parts, text = text, oftext = oftext, cat = cat, noaffixcat = noaffixcat },
args, lang, sc))
end
function export.surface_analysis(frame)
local function ine(arg)
-- Since we're operating before calling [[Module:parameters]], we need to imitate how that module processes
-- arguments, including trimming since numbered arguments don't have automatic whitespace trimming.
if not arg then
return arg
end
arg = mw.text.trim(arg)
if arg == "" then
arg = nil
end
return arg
end
local parent_args = frame:getParent().args
local etymtext
local arg1 = ine(parent_args[1])
if not arg1 then
-- Allow omitted first argument to just display "By surface analysis".
etymtext = ""
elseif arg1:find("^%+") then
-- If the first argument (normally a language code) is prefixed with a +, it's a template name.
local template_name = arg1:sub(2)
local new_args = {}
for i, v in pairs(parent_args) do
if type(i) == "number" then
if i > 1 then
new_args[i - 1] = v
end
else
new_args[i] = v
end
end
new_args.nocap = true
etymtext = ", " .. frame:expandTemplate { title = template_name, args = new_args }
end
if etymtext then
return (ine(parent_args.nocap) and "m" or "M") .. "elalui [[Lampiran:Glosari#analisis dasar|analisis dasar]]" ..
etymtext
end
local function extra_params(params)
params.notext = boolean_param
params.nocat = boolean_param
params.force_cat = boolean_param
end
local args, parts, lang, sc = parse_args {
raw_args = parent_args,
extra_params = extra_params,
allow_type = true,
allow_semicolon_separator = true,
}
-- There must be at least one part to display. If there are gaps, a term
-- request will be shown.
if not next(parts) then
if mw.title.getCurrentTitle().nsText == "Template" then
parts = { {term = "pertama"}, {separator = " +‎ ", term = "kedua"} }
else
error("You must provide at least one part.")
end
end
return m_affix.show_surface_analysis(augment_affix_data({ parts = parts }, args, lang, sc))
end
local function check_max_items(items, max_allowed)
if #items > max_allowed then
local bad_item = items[max_allowed + 1]
if bad_item.term then
error(("At most %s terms can be specified but saw a term specified for term #%s")
:format(max_allowed, max_allowed + 1))
else
for k, v in pairs(bad_item) do
if is_property_key(k) then
error(("At most %s terms can be specified but saw a value for property '%s' of term #%s")
:format(max_allowed, k, max_allowed + 1))
end
end
end
error(("Internal error: Something wrong, %s items generated when there should be at most %s, but item #%s doesn't have a term or any properties")
:format(#items, max_allowed, max_allowed + 1))
end
end
function export.circumfix(frame)
local function extra_params(params)
params.nocat = boolean_param
params.force_cat = boolean_param
end
local args, parts, lang, sc = parse_args {
raw_args = frame:getParent().args,
extra_params = extra_params,
}
check_max_items(parts, 3)
local prefix = parts[1]
local base = parts[2]
local suffix = parts[3]
-- Just to make sure someone didn't use the template in a silly way
if not (prefix and base and suffix) then
if mw.title.getCurrentTitle().nsText == "Template" then
prefix = {term = "apitan", alt = "awalan"}
base = {term = "kata dasar"}
suffix = {term = "apitan", alt = "akhiran"}
else
error("You must specify a prefix part, a base term and a suffix part.")
end
end
return m_affix.show_circumfix(augment_affix_data({ prefix = prefix, base = base, suffix = suffix }, args, lang, sc))
end
function export.confix(frame)
local function extra_params(params)
params.nocat = boolean_param
params.force_cat = boolean_param
end
local args, parts, lang, sc = parse_args {
raw_args = frame:getParent().args,
extra_params = extra_params,
}
check_max_items(parts, 3)
local prefix = parts[1]
local base = parts[3] and parts[2] or nil
local suffix = parts[3] or parts[2]
-- Just to make sure someone didn't use the template in a silly way
if not (prefix and suffix) then
if mw.title.getCurrentTitle().nsText == "Template" then
prefix = {term = "awalan"}
suffix = {term = "akhiran"}
else
error("You must specify a prefix part, an optional base term and a suffix part.")
end
end
return m_affix.show_confix(augment_affix_data({ prefix = prefix, base = base, suffix = suffix }, args, lang, sc))
end
function export.pseudo_loan(frame)
local function extra_params(params)
params.notext = boolean_param
params.nocat = boolean_param
params.force_cat = boolean_param
end
local args, parts, lang, sc, source = parse_args {
raw_args = frame:getParent().args,
extra_params = extra_params,
has_source = true,
-- FIXME, why are we doing this? Formerly we had 'params.pos = nil' whose intention was to disable the overall
-- pos= while preserving posN=, which is equivalent to the following using the new syntax. But why is this
-- necessary?
require_index_for_pos = true,
allow_semicolon_separator = true,
}
return require(pseudo_loan_module).show_pseudo_loan(
augment_affix_data({ source = source, parts = parts }, args, lang, sc))
end
function export.infix(frame)
local function extra_params(params)
params.nocat = boolean_param
params.force_cat = boolean_param
end
local args, parts, lang, sc = parse_args {
raw_args = frame:getParent().args,
extra_params = extra_params,
}
check_max_items(parts, 3)
local base = parts[1]
local infix = parts[2]
-- Just to make sure someone didn't use the template in a silly way
if not (base and infix) then
if mw.title.getCurrentTitle().nsText == "Template" then
base = {term = "kata dasar"}
infix = {term = "sisipan"}
else
error("You must provide a base term and an infix.")
end
end
return m_affix.show_infix(augment_affix_data({ base = base, infix = infix }, args, lang, sc))
end
function export.prefix(frame)
local function extra_params(params)
params.nocat = boolean_param
params.force_cat = boolean_param
end
local args, parts, lang, sc = parse_args {
raw_args = frame:getParent().args,
extra_params = extra_params,
}
local prefixes = parts
local base = nil
local max_prefix = 0
for k, v in pairs(prefixes) do
max_prefix = math.max(k, max_prefix)
end
if max_prefix >= 2 then
base = prefixes[max_prefix]
prefixes[max_prefix] = nil
end
-- Just to make sure someone didn't use the template in a silly way
if not next(prefixes) then
if mw.title.getCurrentTitle().nsText == "Template" then
base = {term = "kata dasar"}
prefixes = { {term = "awalan"} }
else
error("You must provide at least one prefix.")
end
end
return m_affix.show_prefix(augment_affix_data({ prefixes = prefixes, base = base }, args, lang, sc))
end
function export.suffix(frame)
local function extra_params(params)
params.nocat = boolean_param
params.force_cat = boolean_param
end
local args, parts, lang, sc = parse_args {
raw_args = frame:getParent().args,
extra_params = extra_params,
}
local base = parts[1]
local suffixes = {}
for k, v in pairs(parts) do
suffixes[k - 1] = v
end
-- Just to make sure someone didn't use the template in a silly way
if not next(suffixes) then
if mw.title.getCurrentTitle().nsText == "Template" then
base = {term = "kata dasar"}
suffixes = { {term = "akhiran"} }
else
error("You must provide at least one suffix.")
end
end
return m_affix.show_suffix(augment_affix_data({ base = base, suffixes = suffixes }, args, lang, sc))
end
function export.derivsee(frame)
local iargs = frame.args
local iparams = {
["derivtype"] = {},
}
local iargs = require("Module:parameters").process(frame.args, iparams)
local params = {
["head"] = {},
["id"] = {},
["sc"] = {type = "script"},
["pos"] = {},
}
local derivtype = iargs.derivtype
params[1] = {required = "true", type = "language", default = "und"}
params[2] = {}
local args = require("Module:parameters").process(frame:getParent().args, params)
local lang = args[1]
local term = args[2] or args.head
local id = args.id
local sc = args.sc
local pos = require(en_utilities_module).pluralize(args.pos or "Istilah")
if not term then
local SUBPAGE = mw.loadData("Module:headword/data").pagename
if lang:hasType("reconstructed") or mw.title.getCurrentTitle().nsText == "Rekonstruksi" then
term = "*" .. SUBPAGE
elseif lang:hasType("appendix-constructed") then
term = SUBPAGE
else
term = SUBPAGE
end
end
local category = nil
local langname = lang:getFullName()
if (derivtype == "compound" and pos == nil) then
category = "Kata majmuk dengan " .. term .. " bahasa " .. langname
elseif derivtype == "compound" and pos == "verbs" then
category = "Kata majmuk terbentuk dengan " .. term .. " bahasa " .. langname
elseif derivtype == "compound" then
category = "Kata majmuk dengan " .. term .. " bahasa " .. langname
else
category = pos .. " dengan " .. derivtype .. " " .. term .. (id and " (" .. id .. ")" or "") .. " bahasa " .. langname
end
return require('Module:collapsible category tree').make{
lang = lang,
sc = sc,
category = category,
}
end
return export
jkgp8zm7uttqnhxyu5qqr3clfmdg0gq
Modul:affix
828
10384
373510
373470
2026-09-10T21:16:46Z
SNN95
2113
373510
Scribunto
text/plain
local export = {}
local debug_force_cat = false -- if set to true, always display categories even on userspace pages
local m_links = require("Module:links")
local m_str_utils = require("Module:string utilities")
local m_table = require("Module:table")
local en_utilities_module = "Module:en-utilities"
local etymology_module = "Module:etymology"
local pron_qualifier_module = "Module:pron qualifier"
local scripts_module = "Module:scripts"
local utilities_module = "Module:utilities"
-- Export this so the category code in [[Module:category tree/etymology]] can access it.
export.affix_lang_data_module_prefix = "Module:affix/lang-data/"
local ulen = m_str_utils.len
local rfind = m_str_utils.find
local rmatch = m_str_utils.match
local pluralize = require(en_utilities_module).pluralize
local u = m_str_utils.char
local ucfirst = m_str_utils.ucfirst
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
function export.affix_variants(canonical, variants)
local mappings = {}
for _, variant in ipairs(variants) do
mappings[variant] = canonical
end
return mappings
end
function export.id_mapping(default, ids)
local mapping = { default = default }
if ids then
for id, target in pairs(ids) do
mapping[id] = target
end
end
return mapping
end
function export.id_mapping_with_affix_variants(base, id_variants)
local mappings = {}
for id, variants in pairs(id_variants) do
for _, variant in ipairs(variants) do
mappings[variant] = export.id_mapping(base, {[id] = base})
end
end
return mappings
end
function export.merge_tables(...)
local result = {}
for i = 1, select('#', ...) do
local t = select(i, ...)
if t then
for k, v in pairs(t) do
result[k] = v
end
end
end
return result
end
-- Export this so the category code in [[Module:category tree/etymology]] can access it.
export.langs_with_lang_specific_data = {
["az"] = true,
["fi"] = true,
["fr"] = true,
["izh"] = true,
["la"] = true,
["sah"] = true,
["tr"] = true,
["trk-pro"] = true,
}
local default_pos = "istilah"
--[==[ intro:
===About different types of hyphens ("template", "display" and "lookup"):===
* The "template hyphen" is the per-script hyphen character that is used in template calls to indicate that a term is an
affix. This is always a single Unicode char, but there may be multiple possible hyphens for a given script. Normally
this is just the regular hyphen character "-", but for some non-Latin-script languages (currently only right-to-left
languages), it is different.
* The "display hyphen" is the string (which might be an empty string) that is added onto a term as displayed and linked,
to indicate that a term is an affix. Currently this is always either the same as the template hyphen or an empty
string, but the code below is written generally enough to handle arbitrary display hyphens. Specifically:
*# For East Asian languages, the display hyphen is always blank.
*# For Arabic-script languages, either tatweel (ـ) or ZWNJ (zero-width non-joiner) are allowed as template hyphens,
where ZWNJ is supported primarily for Farsi, because some suffixes have non-joining behavior. The display hyphen
corresponding to tatweel is also tatweel, but the display hyphen corresponding to ZWNJ is blank (tatweel is also
the default display hyphen, for calls to {{tl|prefix}}/{{tl|suffix}}/etc. that don't include an explicit hyphen).
* The "lookup hyphen" is the hyphen that is used when looking up language-specific affix mappings. (These mappings are
discussed in more detail below when discussing link affixes.) It depends only on the script of the affix in question.
Most scripts (including East Asian scripts) use a regular hyphen "-" as the lookup hyphen, but Hebrew and Arabic
have their own lookup hyphens (respectively maqqef and tatweel). Note that for Arabic in particular, there are
three possible template hyphens that are recognized (tatweel, ZWNJ and regular hyphen), but mappings must use tatweel.
===About different types of affixes ("template", "display", "link", "lookup" and "category"):===
* A "template affix" is an affix in its source form as it appears in a template call. Generally, a template affix has an
attached template hyphen (see above) to indicate that it is an affix and indicate what type of affix it is (prefix,
suffix, interfix or circumfix), but some of the older-style templates such as {{tl|suffix}}, {{tl|prefix}},
{{tl|confix}}, etc. have "positional" affixes where the presence of the affix in a certain position (e.g. the second
or third parameter) indicates that it is a certain type of affix, whether or not it has an attached template hyphen.
* A "display affix" is the corresponding affix as it is actually displayed to the user. The display affix may differ
from the template affix for various reasons:
*# The display affix may be specified explicitly using the {{para|alt<var>N</var>}} parameter, the `<alt:...>` inline
modifier or a piped link of the form e.g. `<nowiki>[[-kas|-käs]]</nowiki>` (here indicating that the affix should
display as `-käs` but be linked as `-kas`). Here, the template affix is arguably the entire piped link, while the
display affix is `-käs`.
*# Even in the absence of {{para|alt<var>N</var>}} parameters, `<alt:...>` inline modifiers and piped links, certain
languages have differences between the "template hyphen" specified in the template (which always needs to be
specified somehow or other in templates like {{tl|affix}}, to indicate that the term is an affix and what type of
affix it is) and the display hyphen (see above), with corresponding differences between template and display
affixes.
* A (regular) "link affix" is the affix that is linked to when the affix is shown to the user. The link affix is usually
the same as the display affix, but will differ in one of three circumstances:
*# The display and link affixes are explicitly made different using {{para|alt<var>N</var>}} parameters, `<alt:...>`
inline modifiers or piped links, as described above under "display affix".
*# For certain languages, certain affixes are mapped to canonical form using language-specific mappings. For example,
in Finnish, the adjective-forming suffix {{m|fi|-kas}} appears as {{m|fi|-käs}} after front vowels, but logically
both forms are the same suffix and should be linked and categorized the same. Similarly, in Latin, the negative and
intensive prefixes spelled {{m|la|in-}} (etymologically two distinct prefixes) appear variously as {{m|la|il-}},
{{m|la|im-}} or {{m|la|ir-}} before certain consonants. Mappings are supplied in [[Module:affix/lang-data/LANGCODE]]
to convert Finnish {{m|fi|-käs}} to {{m|fi|-kas}} for linking and categorization purposes. Note that the affixes in
the mappings use "lookup hyphens" to indicate the different types of affixes, which is usually the same as the
template hyphen but differs for Arabic scripts, because there are multiple possible template hyphens recognized but
only one lookup hyphen (tatweel). The form of the affix as used to look up in the mapping tables is called the
"lookup affix"; see below.
* A "stripped link affix" is a link affix that has been passed through the language's `stripDiacritics()` function, which
may strip certain diacritics: e.g. macrons in Latin and Old English (indicating length); acute and grave accents in
Russian and various other Slavic languages (indicating stress); vowel diacritics in most Arabic-script languages; and
also tatweel in some Arabic-script languages (currently, for example, Persian, Arabic and Urdu strip tatweel, but
Ottoman Turkish does not). Stripped link affixes are currently what are used in category names.
* A "lookup affix" is the form of the affix as it is looked up in the language-specific lookup mappings described above
under link affixes. There are actually two lookup stages:
*# First, the affix is looked up in a modified display form (specifically, the same as the display affix but using
lookup hyphens). Note that this lookup does not occur if an explicit display form is given using
{{para|alt<var>N</var>}} or an `<alt:...>` inline modifier, or if the template affix contains a piped or embedded
link.
*# If no entry is found, the affix is then looked up in a modified link form (specifically, the modified display
form passed through the language's `stripDiacritics()` function, which strips out certain diacritics, but with the
lookup hyphen re-added if it was stripped out, as in the case of tatweel in many Arabic-script languages).
The reason for this double lookup procedure is to allow for mappings that are sensitive to the extra diacritics, but
also allow for mappings that are not sensitive in this fashion (e.g. Russian {{m|ru|-ливый}} occurs both stressed and
unstressed, but is the same prefix either way).
* A "category affix" is the affix as it appears in categories such as [[:Category:Finnish terms suffixed with -kas|
Category:Finnish terms suffixed with ''-kas'']]. The category affix is currently always the same as the stripped link
affix. This means that for Arabic-script languages, it may or may not have a tatweel, even if the correponding display
affix and regular link affix have a tatweel. As mentioned above, stripDiacritics() strips tatweel for Arabic, Persian
and Urdu, but not for Ottoman Turkish. Hence affix categories for Arabic, Persian and Urdu will be missing the
tatweel, but affix categories for Ottoman Turkish will have it. An additional complication is that if the template
affix contains a ZWNJ, the display (and hence the link and category affixes) will have no hyphen attached in any case.
]==]
-----------------------------------------------------------------------------------------
-- Template and display hyphens --
-----------------------------------------------------------------------------------------
--[=[
Per-script template hyphens. The template hyphen is what appears in the {{affix}}/{{prefix}}/{{suffix}}/etc. template
(in the wikicode). See above.
They key below is a script code, after removing a hyphen and anything preceding. Hence, script codes like 'mnc-Mong'
and 'xwo-Mong' will match 'Mong'.
The value below is a string consisting of one or more hyphen characters. If there is more than one character, the
default hyphen must come last and a non-default function must be specified for the script in display_hyphens[] so
the correct display hyphen will be specified when no template hyphen is given (in {{suffix}}/{{prefix}}/etc.).
Script detection is normally done when linking, but we need to do it earlier. However, under most circumstances we
don't need to do script detection. Specifically, we only need to do script detection for a given language if
(a) the language has multiple scripts; and
(b) at least one of those scripts is listed below or in display_hyphens.
]=]
local ZWNJ = u(0x200C) -- zero-width non-joiner
local template_hyphens = {
-- This covers all Arabic scripts. See above.
["Arab"] = "ـ" .. ZWNJ .. "-", -- tatweel + zero-width non-joiner + regular hyphen
["Aran"] = "ـ" .. ZWNJ .. "-", -- tatweel + zero-width non-joiner + regular hyphen
["Hebr"] = "־", -- Hebrew-specific hyphen termed "maqqef"
["Mong"] = "᠊",
-- FIXME! What about the following right-to-left scripts?
-- Adlm (Adlam)
-- Armi (Imperial Aramaic)
-- Avst (Avestan)
-- Cprt (Cypriot)
-- Khar (Kharoshthi)
-- Mand (Mandaic/Mandaean)
-- Mani (Manichaean)
-- Mend (Mende/Mende Kikakui)
-- Narb (Old North Arabian)
-- Nbat (Nabataean/Nabatean)
-- Nkoo (N'Ko)
-- Orkh (Orkhon runes)
-- Phli (Inscriptional Pahlavi)
-- Phlp (Psalter Pahlavi)
-- Phlv (Book Pahlavi)
-- Phnx (Phoenician)
-- Prti (Inscriptional Parthian)
-- Rohg (Hanifi Rohingya)
-- Samr (Samaritan)
-- Sarb (Old South Arabian)
-- Sogd (Sogdian)
-- Sogo (Old Sogdian)
-- Syrc (Syriac)
-- Thaa (Thaana)
}
-- Hyphens used when looking up an affix in a lang-specific affix mapping. Defaults to regular hyphen (-). The keys
-- are script codes, after removing a hyphen and anything preceding. Hence, script codes like 'mnc-Mong' and 'xwo-Mong'
-- will match 'Mong'. The value should be a single character.
local lookup_hyphens = {
["Hebr"] = "־",
-- This covers all Arabic scripts. See above.
["Arab"] = "ـ",
["Aran"] = "ـ",
}
-- Default display-hyphen function.
local function default_display_hyphen(script, hyph)
if not hyph then
return template_hyphens[script] or "-"
end
return hyph
end
local function arab_get_display_hyphen(_script, hyph)
if not hyph then
return "ـ" -- tatweel
elseif hyph == ZWNJ then
return ""
else
return hyph
end
end
local function no_display_hyphen(_script, _hyph)
return ""
end
-- Per-script function to return the correct display hyphen given the script and template hyphen. The function should
-- also handle the case where the passed-in template hyphen is nil, corresponding to the situation in
-- {{prefix}}/{{suffix}}/etc. where no template hyphen is specified. The key is the script code after removing a hyphen
-- and anything preceding, so 'mnc-Mong', 'xwo-Mong' etc. will match 'Mong'.
local display_hyphens = {
-- This covers all Arabic scripts. See above.
["Arab"] = arab_get_display_hyphen,
["Aran"] = arab_get_display_hyphen,
["Bopo"] = no_display_hyphen,
["Hani"] = no_display_hyphen,
["Hans"] = no_display_hyphen,
["Hant"] = no_display_hyphen,
-- The following is a mixture of several scripts. Hopefully the specs here are correct!
["Jpan"] = no_display_hyphen,
["Jurc"] = no_display_hyphen,
["Kitl"] = no_display_hyphen,
["Kits"] = no_display_hyphen,
["Laoo"] = no_display_hyphen,
["Nshu"] = no_display_hyphen,
["Shui"] = no_display_hyphen,
["Tang"] = no_display_hyphen,
["Thaa"] = no_display_hyphen,
["Thai"] = no_display_hyphen,
["Tibt"] = no_display_hyphen,
}
-----------------------------------------------------------------------------------------
-- Basic Utility functions --
-----------------------------------------------------------------------------------------
local function glossary_link(entry, text)
text = text or entry
return "[[Lampiran:Glosari#" .. entry .. "|" .. text .. "]]"
end
local function track(page)
if type(page) == "table" then
for i, pg in ipairs(page) do
page[i] = "affix/" .. pg
end
else
page = "affix/" .. page
end
require("Module:debug/track")(page)
end
local function ine(val)
return val ~= "" and val or nil
end
-----------------------------------------------------------------------------------------
-- Compound types --
-----------------------------------------------------------------------------------------
local function make_compound_type(typ, alttext)
return {
text = glossary_link(typ, alttext) .. " majmuk",
cat = typ .. " majmuk",
}
end
-- Make a compound type entry with a simple rather than glossary link.
-- These should be replaced with a glossary link when the entry in the glossary
-- is created.
local function make_non_glossary_compound_type(typ, alttext)
local link = alttext and "[[" .. typ .. "|" .. alttext .. "]]" or "[[" .. typ .. "]]"
return {
text = link .. " majmuk",
cat = typ .. " majmuk",
}
end
local function make_raw_compound_type(typ, alttext)
return {
text = glossary_link(typ, alttext),
cat = pluralize(typ),
}
end
local function make_borrowing_type(typ, alttext)
return {
text = glossary_link(typ, alttext),
borrowing_type = pluralize(typ),
}
end
export.etymology_types = {
["adapted borrowing"] = make_borrowing_type("adapted borrowing"),
["adap"] = "adapted borrowing",
["abor"] = "adapted borrowing",
["alliterative"] = make_non_glossary_compound_type("alliterative"),
["allit"] = "alliterative",
["antonymous"] = make_non_glossary_compound_type("antonymous"),
["ant"] = "antonymous",
["bahuvrihi"] = make_compound_type("bahuvrihi", "bahuvrīhi"),
["bahu"] = "bahuvrihi",
["bv"] = "bahuvrihi",
["coordinative"] = make_compound_type("coordinative"),
["coord"] = "coordinative",
["descriptive"] = make_compound_type("descriptive"),
["desc"] = "descriptive",
["determinative"] = make_compound_type("determinative"),
["det"] = "determinative",
["dvandva"] = make_compound_type("dvandva"),
["dva"] = "dvandva",
["dvigu"] = make_compound_type("dvigu"),
["dvi"] = "dvigu",
["endocentric"] = make_compound_type("endocentric"),
["endo"] = "endocentric",
["exocentric"] = make_compound_type("exocentric"),
["exo"] = "exocentric",
["izafet I"] = make_compound_type("izafet I"),
["iz1"] = "izafet I",
["izafet II"] = make_compound_type("izafet II"),
["iz2"] = "izafet II",
["izafet III"] = make_compound_type("izafet III"),
["iz3"] = "izafet III",
["karmadharaya"] = make_compound_type("karmadharaya", "karmadhāraya"),
["karma"] = "karmadharaya",
["kd"] = "karmadharaya",
["kenning"] = make_raw_compound_type("kenning"),
["ken"] = "kenning",
["rhyming"] = make_non_glossary_compound_type("rhyming"),
["rhy"] = "rhyming",
["synonymous"] = make_non_glossary_compound_type("synonymous"),
["syn"] = "synonymous",
["tatpurusa"] = make_compound_type("tatpurusa", "tatpuruṣa"),
["tat"] = "tatpurusa",
["tp"] = "tatpurusa",
}
local function process_etymology_type(typ, nocap, notext, has_parts)
local text_sections = {}
local categories = {}
local borrowing_type
if typ then
local typdata = export.etymology_types[typ]
if type(typdata) == "string" then
typdata = export.etymology_types[typdata]
end
if not typdata then
error("Internal error: Unrecognized type '" .. typ .. "'")
end
local text = typdata.text
if not nocap then
text = ucfirst(text)
end
local cat = typdata.cat
borrowing_type = typdata.borrowing_type
local oftext = typdata.oftext or " of"
if not notext then
table.insert(text_sections, text)
if has_parts then
table.insert(text_sections, oftext)
table.insert(text_sections, " ")
end
end
if cat then
table.insert(categories, cat)
end
end
return text_sections, categories, borrowing_type
end
-----------------------------------------------------------------------------------------
-- Utility functions --
-----------------------------------------------------------------------------------------
-- Iterate an array up to the greatest integer index found.
local function ipairs_with_gaps(t)
local indices = m_table.numKeys(t)
local max_index = #indices > 0 and math.max(unpack(indices)) or 0
local i = 0
return function()
if i < max_index then
i = i + 1
return i, t[i]
end
end
end
export.ipairs_with_gaps = ipairs_with_gaps
--[==[
Join formatted parts (in `parts_formatted`) together with any overall {{para|lit}} spec (in `lit`) plus categories,
which are formatted by prepending the language name as found in `lang`. The value of an entry in `categories` can be
either a string (which is formatted using `sort_key`) or a table of the form `{ {cat=<var>category</var>,
sort_key=<var>sort_key</var>, sort_base=<var>sort_base</var>}`, specifying the sort key and sort base to use when
formatting the category. If `nocat` is given, no categories are added; otherwise, `force_cat` causes categories to be
added even on userspace pages.
]==]
function export.join_formatted_parts(data)
local cattext
local lang = data.data.lang
local force_cat = data.data.force_cat or debug_force_cat
if data.data.nocat then
cattext = ""
else
for i, cat in ipairs(data.categories) do
if type(cat) == "table" then
data.categories[i] = require(utilities_module).format_categories(cat .. " bahasa " .. lang:getFullName().cat,
lang, cat.sort_key, cat.sort_base, force_cat)
else
data.categories[i] = require(utilities_module).format_categories(cat .. " bahasa " .. lang:getFullName(), lang,
data.data.sort_key, nil, force_cat)
end
end
cattext = table.concat(data.categories)
end
local result = table.concat(data.parts_formatted, not data.separator_already_added and " +‎ " or nil) ..
(data.data.lit and ", secara harfiah " .. m_links.mark(data.data.lit, "gloss") or "")
local q = data.data.q
local qq = data.data.qq
local l = data.data.l
local ll = data.data.ll
local infl = data.data.infl
if q and q[1] or qq and qq[1] or l and l[1] or ll and ll[1] or infl and infl[1] then
result = require(pron_qualifier_module).format_qualifiers {
lang = lang,
text = result,
q = q,
qq = qq,
l = l,
ll = ll,
infl = infl,
}
end
return result .. cattext
end
-- Remove links and call lang:stripDiacritics(term).
local function strip_diacritics_no_links(lang, term)
return lang:stripDiacritics(m_links.remove_links(term))
end
--[=[
Convert a raw part as passed into an entry point into a part ready for linking. `lang` and `sc` are the overall
language and script objects. This uses the overall language and script objects as defaults for the part and parses off
any fragment from the term. We need to do the latter so that fragments don't end up in categories and so that we
correctly do affix mapping even in the presence of fragments.
]=]
local function canonicalize_part(part, lang, sc)
if not part then
return
end
-- Save the original (user-specified, part-specific) value of `lang`. If such a value is specified, we don't insert
-- a '*fixed with' category, and we format the part using format_derived() in [[Module:etymology]] rather than
-- full_link() in [[Module:links]].
part.part_lang = part.lang
part.lang = part.lang or lang
part.sc = part.sc or sc
local term = part.term
if not term then
return
elseif not part.fragment then
part.term, part.fragment = m_links.get_fragment(term)
else
part.term = m_links.get_fragment(term)
end
end
--[==[
Construct a single linked part based on the information in `part`, for use by `show_affix()` and other entry points.
This should be called after `canonicalize_part()` is called on the part. This is a thin wrapper around `full_link()` in
[[Module:links]] unless `part.part_lang` is specified (indicating that a part-specific language was given), in which
case `format_derived()` in [[Module:etymology]] is called to display a term in a language other than the language of
the overall term (specified in `data.lang`). `data` contains the entire object passed into the entry point and is used
to access information for constructing the categories added by `format_derived()`.
]==]
function export.link_term(part, data, include_separator)
local result
if part.part_lang then
result = require(etymology_module).format_derived {
lang = data.lang,
terms = {part},
sources = {part.lang},
sort_key = data.sort_key,
nocat = data.nocat,
template_name = "affix",
qualifiers_labels_on_outside = true,
borrowing_type = data.borrowing_type,
force_cat = data.force_cat or debug_force_cat,
}
else
result = m_links.full_link(part, "istilah", nil, "show qualifiers")
end
if include_separator and part.separator then
return part.separator .. result
else
return result
end
end
local function canonicalize_script_code(scode)
-- Convert 'mnc-Mong', 'xwo-Mong' etc. to 'Mong'.
return (scode:gsub("^.*%-", ""))
end
-----------------------------------------------------------------------------------------
-- Affix-handling functions --
-----------------------------------------------------------------------------------------
-- Figure out the appropriate script for the given affix and language (unless the script is explicitly passed in), and
-- return the values of template_hyphens[], display_hyphens[] and lookup_hyphens[] for that script, substituting
-- default values as appropriate. Four values are returned:
-- DETECTED_SCRIPT, TEMPLATE_HYPHEN, DISPLAY_HYPHEN, LOOKUP_HYPHEN
local function detect_script_and_hyphens(text, lang, sc)
local scode
-- 1. If the script is explicitly passed in, use it.
if sc then
scode = sc:getCode()
else
local possible_script_codes = lang:getScriptCodes()
-- YUCK! `possible_script_codes` comes from loadData() so #possible_scripts doesn't work (always returns 0).
local num_possible_script_codes = m_table.length(possible_script_codes)
if num_possible_script_codes == 0 then
-- This shouldn't happen; if the language has no script codes,
-- the list {"None"} should be returned.
error("Something is majorly wrong! Language " .. lang:getCanonicalName() .. " has no script codes.")
end
if num_possible_script_codes == 1 then
-- 2. If the language has only one possible script, use it.
scode = possible_script_codes[1]
else
-- 3. Check if any of the possible scripts for the language have non-default values for template_hyphens[]
-- or display_hyphens[]. If so, we need to do script detection on the text. If not, just use "Latn",
-- which may not be technically correct but produces the right results because Latn has all default
-- values for template_hyphens[] and display_hyphens[].
local may_have_nondefault_hyphen = false
for _, script_code in ipairs(possible_script_codes) do
script_code = canonicalize_script_code(script_code)
if template_hyphens[script_code] or display_hyphens[script_code] then
may_have_nondefault_hyphen = true
break
end
end
if not may_have_nondefault_hyphen then
scode = "Latn"
else
scode = lang:findBestScript(text):getCode()
end
end
end
scode = canonicalize_script_code(scode)
local template_hyphen = template_hyphens[scode] or "-"
local lookup_hyphen = lookup_hyphens[scode] or "-"
local display_hyphen = display_hyphens[scode] or default_display_hyphen
return scode, template_hyphen, display_hyphen, lookup_hyphen
end
--[=[
Given a template affix `term` and an affix type `affix_type`, change the relevant template hyphen(s) in the affix to
the display or lookup hyphen specified in `new_hyphen`, or add them if they are missing. `new_hyphen` can be a string,
specifying a fixed hyphen, or a function of two arguments (the script code `scode` and the discovered template hyphen,
or nil of no relevant template hyphen is present). `thyph_re` is a Lua pattern (which must be enclosed in parens) that
matches the possible template hyphens. Note that not all template hyphens present in the affix are changed, but only
the "relevant" ones (e.g. for a prefix, a relevant template hyphen is one coming at the end of the affix).
]=]
local function reconstruct_term_per_hyphens(term, affix_type, scode, thyph_re, new_hyphen)
local function get_hyphen(hyph)
if type(new_hyphen) == "string" then
return new_hyphen
end
return new_hyphen(scode, hyph)
end
if affix_type == "non-affix" then
return term
elseif affix_type == "apitan" then
local before, before_hyphen, after_hyphen, after = rmatch(term, "^(.*)" .. thyph_re .. " " .. thyph_re
.. "(.*)$")
if not before or ulen(term) <= 3 then
-- Unlike with other types of affixes, don't try to add hyphens in the middle of the term to convert it to
-- a circumfix. Also, if the term is just hyphen + space + hyphen, return it.
return term
end
return before .. get_hyphen(before_hyphen) .. " " .. get_hyphen(after_hyphen) .. after
elseif affix_type == "sisipan" or affix_type == "jalinan" then
local before_hyphen, middle, after_hyphen = rmatch(term, "^" .. thyph_re .. "(.*)" .. thyph_re .. "$")
if before_hyphen and ulen(term) <= 1 then
-- If the term is just a hyphen, return it.
return term
end
return get_hyphen(before_hyphen) .. (middle or term) .. get_hyphen(after_hyphen)
elseif affix_type == "awalan" then
local middle, after_hyphen = rmatch(term, "^(.*)" .. thyph_re .. "$")
if middle and ulen(term) <= 1 then
-- If the term is just a hyphen, return it.
return term
end
return (middle or term) .. get_hyphen(after_hyphen)
elseif affix_type == "akhiran" then
local before_hyphen, middle = rmatch(term, "^" .. thyph_re .. "(.*)$")
if before_hyphen and ulen(term) <= 1 then
-- If the term is just a hyphen, return it.
return term
end
return get_hyphen(before_hyphen) .. (middle or term)
else
error(("Internal error: Unrecognized affix type '%s'"):format(affix_type))
end
end
--[=[
Look up a mapping from a given affix variant to the canonical form used in categories and links. The lookup tables are
language-specific according to `lang`, and may be ID-specific according to `affix_id`. The affixes as they appear in the
lookup tables (both the variant and the canonical form) are in "lookup affix" format (approximately speaking, they use a
regular hyphen for most scripts, but a tatweel for Arabic-script entries and a maqqef for Hebrew-script entries), but
the passed-in `affix` param is in "template affix" format (which differs from the lookup affix for Arabic-script
entries, because more types of hyphens are allowed in template affixes; see the comments at the top of the file). The
remaining parameters to this function are used to convert from template affixes to lookup affixes; see the
reconstruct_term_per_hyphens() function above.
If the affix contains brackets, no lookup is done. Otherwise, a two-stage process is used, first looking up the affix
directly and then stripping diacritics and looking it up again. The reason for this is documented above in the comments
at the top of the file (specifically, the comments describing lookup affixes).
The value of a mapping can either be a string (do the mapping regardless of affix ID) or a table indexed by affix ID
(where the special value `false` indicates no affix ID). The values of entries in this table can also be strings, or
tables with keys `affix` and `id` (again, use `false` to indicate no ID). This allows an affix mapping to map from one
ID to another (for example, this is used in English to map the [[an-]] prefix with no ID to the [[a-]] prefix with the
ID 'not').
The Given a template affix `term` and an affix type `affix_type`, change the relevant template hyphen(s) in the affix to
the display or lookup hyphen specified in `new_hyphen`, or add them if they are missing. `new_hyphen` can be a string,
specifying a fixed hyphen, or a function of two arguments (the script code `scode` and the discovered template hyphen,
or nil of no relevant template hyphen is present). `thyph_re` is a Lua pattern (which must be enclosed in parens) that
matches the possible template hyphens. Note that not all template hyphens present in the affix are changed, but only
the "relevant" ones (e.g. for a prefix, a relevant template hyphen is one coming at the end of the affix).
]=]
local function lookup_affix_mapping(affix, affix_type, lang, scode, thyph_re, lookup_hyph, affix_id)
local function do_lookup(afx)
-- Ensure that the affix uses lookup hyphens regardless of whether it used a different type of hyphens before
-- or no hyphens.
local lookup_affix = reconstruct_term_per_hyphens(afx, affix_type, scode, thyph_re, lookup_hyph)
local function do_lookup_for_langcode(langcode)
if export.langs_with_lang_specific_data[langcode] then
local langdata = mw.loadData(export.affix_lang_data_module_prefix .. langcode)
if langdata.affix_mappings then
local mapping = langdata.affix_mappings[lookup_affix]
if mapping then
if type(mapping) == "table" then
mapping = mapping[affix_id] or mapping.default or mapping[affix_id or false]
if mapping then
return mapping
end
else
return mapping
end
end
end
end
end
-- If `lang` is an etymology-only language, look for a mapping both for it and its full parent.
local langcode = lang:getCode()
local mapping = do_lookup_for_langcode(langcode)
if mapping then
return mapping
end
local full_langcode = lang:getFullCode()
if full_langcode ~= langcode then
mapping = do_lookup_for_langcode(full_langcode)
if mapping then
return mapping
end
end
return nil
end
if affix:find("%[%[") then
return nil
end
return do_lookup(affix) or do_lookup(lang:stripDiacritics(affix)) or nil
end
--[==[
For a given template term in a given language (see the definition of "template affix" near the top of the file),
possibly in an explicitly specified script `sc` (but usually nil), return the term's affix type ({"awalan"},
{"jalinan"}, {"akhiran"}, {"apitan"} or {"non-affix"}) along with the corresponding link and display affixes
(see definitions near the top of the file); also the corresponding lookup affix (if `return_lookup_affix` is specified).
The term passed in should already have any fragment (after the # sign) parsed off of it. Four values are returned:
`affix_type`, `link_term`, `display_term` and `lookup_term`. The affix type can be passed in instead of autodetected; in
this case, the template term need not have any attached hyphens, and the appropriate hyphens will be added in the
appropriate places. If `do_affix_mapping` is specified, look up the affix in the lang-specific affix mappings, as
described in the comment at the top of the file; otherwise, the link and display terms will always be the same. (They
will be the same in any case if the template term has a bracketed link in it or is not an affix.) If
`return_lookup_affix` is given, the fourth return value contains the term with appropriate lookup hyphens in the
appropriate places; otherwise, it is the same as the display term. (This functionality is used in
[[Module:category tree/affixes and compounds]] to convert link affixes into lookup affixes so that they can be looked up
in the affix mapping tables.)
Exported because used by [[Module:headword utilities]] to determine the affix type of a given pagename.
]==]
function export.parse_term_for_affixes(term, lang, sc, affix_type, do_affix_mapping, return_lookup_affix, affix_id)
if not term then
return "non-affix", nil, nil, nil
end
if term == "^" then
-- Indicates a null term to emulate the behavior of {{suffix|foo||bar}}.
term = ""
return "non-affix", term, term, term
end
if term:find("^%^") then
-- HACK! ^ at the beginning of Korean languages has a special meaning, triggering capitalization of the
-- transliteration. Don't interpret it as "force non-affix" for those languages.
local langcode = lang:getCode()
if langcode ~= "ko" and langcode ~= "okm" and langcode ~= "jje" then
-- Formerly we allowed ^ to force non-affix type; this is now handled using an inline modifier
-- <naf>, <root>, etc. Throw an error for the moment when the old way is encountered.
error("Use of ^ to force non-affix status is no longer supported; use an inline modifier <naf> or <root> " ..
"after the component")
end
end
-- Remove an asterisk if the morpheme is reconstructed and add it back at the end.
local reconstructed = ""
if term:find("^%*") then
reconstructed = "*"
term = term:gsub("^%*", "")
end
local scode, thyph, dhyph, lhyph = detect_script_and_hyphens(term, lang, sc)
thyph = "([" .. thyph .. "])"
if not affix_type then
if rfind(term, thyph .. " " .. thyph) then
affix_type = "apitan"
else
local has_beginning_hyphen = rfind(term, "^" .. thyph)
local has_ending_hyphen = rfind(term, thyph .. "$")
if has_beginning_hyphen and has_ending_hyphen then
affix_type = "jalinan"
elseif has_ending_hyphen then
affix_type = "awalan"
elseif has_beginning_hyphen then
affix_type = "akhiran"
else
affix_type = "non-affix"
end
end
end
local link_term, display_term, lookup_term
if affix_type == "non-affix" then
link_term = term
display_term = term
lookup_term = term
else
display_term = reconstruct_term_per_hyphens(term, affix_type, scode, thyph, dhyph)
if do_affix_mapping then
link_term = lookup_affix_mapping(term, affix_type, lang, scode, thyph, lhyph, affix_id)
-- The return value of lookup_affix_mapping() may be an affix mapping with lookup hyphens if a mapping
-- was found, otherwise nil if a mapping was not found. We need to convert to display hyphens in
-- either case, but in the latter case we can reuse the display term, which has already been converted.
if link_term then
link_term = reconstruct_term_per_hyphens(link_term, affix_type, scode, thyph, dhyph)
else
link_term = display_term
end
else
link_term = display_term
end
if return_lookup_affix then
lookup_term = reconstruct_term_per_hyphens(term, affix_type, scode, thyph, lhyph)
else
lookup_term = display_term
end
end
link_term = reconstructed .. link_term
display_term = reconstructed .. display_term
lookup_term = reconstructed .. lookup_term
return affix_type, link_term, display_term, lookup_term
end
--[==[
Add a hyphen to a term in the appropriate place, based on the specified affix type, stripping off any existing hyphens
in that place. For example, if `affix_type` == {"awalan"}, we'll add a hyphen onto the end if it's not already there (or
is of the wrong type). Three values are returned: the link term, display term and lookup term. This function is a thin
wrapper around `parse_term_for_affixes`; see the comments above that function for more information. Note that this
function is exposed externally because it is called by [[Module:category tree/affixes and compounds]]; see the comment
in `parse_term_for_affixes` for more information.
]==]
function export.make_affix(term, lang, sc, affix_type, do_affix_mapping, return_lookup_affix, affix_id)
if not (affix_type == "awalan" or affix_type == "akhiran" or affix_type == "apitan" or affix_type == "sisipan" or
affix_type == "jalinan" or affix_type == "non-affix") then
error("Internal error: Invalid affix type " .. (affix_type or "(nil)"))
end
local _, link_term, display_term, lookup_term = export.parse_term_for_affixes(term, lang, sc, affix_type,
do_affix_mapping, return_lookup_affix, affix_id)
return link_term, display_term, lookup_term
end
-----------------------------------------------------------------------------------------
-- Main entry points --
-----------------------------------------------------------------------------------------
--[==[
Core categorization logic for affixes. This is shared between show_affix(), show_compound_like() and
get_affix_categories_only(). Returns the categories array and other metadata needed for formatting.
]==]
local function generate_affix_categories(data)
data.pos = data.pos or default_pos
data.pos = pluralize(data.pos)
local text_sections, categories, borrowing_type =
process_etymology_type(data.type, data.surface_analysis or data.nocap, data.notext, #data.parts > 0)
data.borrowing_type = borrowing_type
-- Process each part
local whole_words = 0
local is_affix_or_compound = false
-- Canonicalize and generate links for all the parts first; then do categorization in a separate step, because when
-- processing the first part for categorization, we may access the second part and need it already canonicalized.
for i, part in ipairs_with_gaps(data.parts) do
part = part or {}
data.parts[i] = part
canonicalize_part(part, data.lang, data.sc)
-- Determine affix type and get link and display terms (see text at top of file). Store them in the part
-- (in fields that won't clash with fields used by full_link() in [[Module:links]] or link_term()), so they
-- can be used in the loop below when categorizing.
part.affix_type, part.affix_link_term, part.affix_display_term = export.parse_term_for_affixes(part.term,
part.lang, part.sc, part.type, not part.alt, nil, part.id)
-- If link_term is an empty string, either a bare ^ was specified or an empty term was used along with inline
-- modifiers. The intention in either case is not to link the term.
part.term = ine(part.affix_link_term)
-- If part.alt would be the same as part.term, make it nil, so that it isn't erroneously tracked as being
-- redundant alt text.
part.alt = part.alt or (part.affix_display_term ~= part.affix_link_term and part.affix_display_term) or nil
end
if not data.noaffixcat then
-- Now do categorization.
for i, part in ipairs_with_gaps(data.parts) do
local affix_type = part.affix_type
if affix_type ~= "non-affix" then
is_affix_or_compound = true
-- Make a sort key. For the first part, use the second part as the sort key; the intention is that if the
-- term has a prefix, sorting by the prefix won't be very useful so we sort by what follows, which is
-- presumably the root.
local part_sort_base = nil
local part_sort = part.sort or data.sort_key
if i == 1 and data.parts[2] and data.parts[2].term then
local part2 = data.parts[2]
-- If the second-part link term is empty, the user requested an unlinked term; avoid a wikitext error
-- by using the alt value if available.
part_sort_base = ine(part2.affix_link_term) or ine(part2.alt)
if part_sort_base then
part_sort_base = strip_diacritics_no_links(part2.lang, part_sort_base)
end
end
if part.pos and rfind(part.pos, "patronym") then
table.insert(categories, {cat = "patronim", sort_key = part_sort, sort_base = part_sort_base})
end
if data.pos ~= "terms" and part.pos and rfind(part.pos, "diminutive") then
table.insert(categories, {cat = data.pos .. " diminutif", sort_key = part_sort,
sort_base = part_sort_base})
end
-- Don't add a '*fixed with' category if the link term is empty or is in a different language.
if ine(part.affix_link_term) and not part.part_lang then
table.insert(categories, {cat = data.pos .. " ber" .. affix_type .. " dengan " ..
strip_diacritics_no_links(part.lang, part.affix_link_term) ..
(part.id and " (" .. part.id .. ")" or ""),
sort_key = part_sort, sort_base = part_sort_base})
end
else
whole_words = whole_words + 1
if whole_words == 2 then
is_affix_or_compound = true
table.insert(categories, "majmuk " .. data.pos)
end
end
end
-- Make sure there was either an affix or a compound (two or more non-affix terms).
if not is_affix_or_compound and not data.allow_no_affixes_or_compounds then
error("The parameters did not include any affixes, and the term is not a compound. Please provide at least one affix.")
end
end
return text_sections, categories, borrowing_type
end
--[==[
Implementation of {{tl|affix}} and {{tl|surface analysis}}. `data` contains all the information describing the affixes to
be displayed, and contains the following:
* `.lang` ('''required'''): Overall language object. Different from term-specific language objects (see `.parts` below).
* `.sc`: Overall script object (usually omitted). Different from term-specific script objects.
* `.parts` ('''required'''): List of objects describing the affixes to show. The general format of each object is as would
be passed to `full_link()`, except that the `.lang` field should be missing unless the term is of a language
different from the overall `.lang` value (in such a case, the language name is shown along with the term and
an additional "derived from" category is added). '''WARNING''': The data in `.parts` will be destructively
modified.
* `.pos`: Overall part of speech (used in categories, defaults to {"terms"}). Different from term-specific part of speech.
* `.sort_key`: Overall sort key. Normally omitted except e.g. in Japanese.
* `.type`: Type of compound, if the parts in `.parts` describe a compound. Strictly optional, and if supplied, the
compound type is displayed before the parts (normally capitalized, unless `.nocap` is given).
* `.nocap`: Don't capitalize the first letter of text displayed before the parts (relevant only if `.type` or
`.surface_analysis` is given).
* `.notext`: Don't display any text before the parts (relevant only if `.type` or `.surface_analysis` is given).
* `.nocat`: Disable all categorization.
* `.noaffixcat`: Disable affix (and compound) categorization. Relevant for e.g. blends, which may otherwise
be incorrectly categorized as compound terms.
* `.lit`: Overall literal definition. Different from term-specific literal definitions.
* `.force_cat`: Always display categories, even on userspace pages.
* `.surface_analysis`: Implement {{surface analysis}}; adds `By surface analysis, ` before the parts.
'''WARNING''': This destructively modifies both `data` and the individual structures within `.parts`.
]==]
function export.show_affix(data)
local text_sections, categories, _ = generate_affix_categories(data)
-- Process each part for display
local parts_formatted = {}
for i, part in ipairs_with_gaps(data.parts) do
-- Make a link for the part
table.insert(parts_formatted, export.link_term(part, data, "include_separator"))
end
if data.surface_analysis then
local text = "dengan " .. glossary_link("surface analysis") .. ", "
if not data.nocap then
text = ucfirst(text)
end
table.insert(text_sections, 1, text)
end
table.insert(text_sections, export.join_formatted_parts { data = data, parts_formatted = parts_formatted,
categories = categories, separator_already_added = true })
return table.concat(text_sections)
end
--[==[
Get only the categories that would be generated by show_affix(), without any text output or formatting.
This is used by Module:etymon to get affix categorization.
Returns an array of category objects, where
each entry is either a string (simple category name) or a table with keys `cat`, `sort_key`,
and `sort_base` for more complex categorization.
`data` should have the same structure as passed to show_affix():
* `.lang` (required): Overall language object
* `.parts` (required): Array of affix part objects with `.term`, `.lang`, `.id`, etc.
* `.pos`: Part of speech (defaults to "terms")
* `.sort_key`: Overall sort key for categories
'''WARNING''': This destructively modifies both `data` and the individual structures within `.parts`.
]==]
function export.get_affix_categories_only(data)
local _, categories, _ = generate_affix_categories(data)
return categories
end
function export.show_surface_analysis(data)
data.surface_analysis = true
data.allow_no_affixes_or_compounds = true
return export.show_affix(data)
end
--[==[
Implementation of {{tl|compound}}.
'''WARNING''': This destructively modifies both `data` and the individual structures within `.parts`.
]==]
function export.show_compound(data)
data.pos = data.pos or default_pos
data.pos = pluralize(data.pos)
local text_sections, categories, borrowing_type =
process_etymology_type(data.type, data.nocap, data.notext, #data.parts > 0)
data.borrowing_type = borrowing_type
local parts_formatted = {}
table.insert(categories, "majmuk " .. data.pos)
-- Make links out of all the parts
local whole_words = 0
for i, part in ipairs(data.parts) do
canonicalize_part(part, data.lang, data.sc)
-- Determine affix type and get link and display terms (see text at top of file).
local affix_type, link_term, display_term = export.parse_term_for_affixes(part.term, part.lang, part.sc,
part.type, not part.alt, nil, part.id)
-- If the term is an interfix or the type was explicitly given, recognize it as such (which means e.g. that we
-- will display the term without hyphens for East Asian languages). Otherwise, ignore the fact that it looks
-- like an affix and display as specified in the template (but pay attention to the detected affix type for
-- certain tracking purposes).
if affix_type == "jalinan" or (part.type and part.type ~= "non-affix") then
-- If link_term is an empty string, either a bare ^ was specified or an empty term was used along with
-- inline modifiers. The intention in either case is not to link the term. Don't add a '*fixed with'
-- category in this case, or if the term is in a different language.
-- If part.alt would be the same as part.term, make it nil, so that it isn't erroneously tracked as being
-- redundant alt text.
if link_term and link_term ~= "" and not part.part_lang then
table.insert(categories, {cat = data.pos .. " ber" .. affix_type .. " dengan " ..
strip_diacritics_no_links(part.lang, link_term), sort_key = part.sort or data.sort_key})
end
part.term = link_term ~= "" and link_term or nil
part.alt = part.alt or (display_term ~= link_term and display_term) or nil
else
if affix_type ~= "non-affix" then
local langcode = data.lang:getCode()
-- If `data.lang` is an etymology-only language, track both using its code and its full parent's code.
track { affix_type, affix_type .. "/lang/" .. langcode }
local full_langcode = data.lang:getFullCode()
if langcode ~= full_langcode then
track(affix_type .. "/lang/" .. full_langcode)
end
else
whole_words = whole_words + 1
end
end
table.insert(parts_formatted, export.link_term(part, data, "include_separator"))
end
if whole_words == 1 then
track("one whole word")
elseif whole_words == 0 then
track("looks like confix")
end
table.insert(text_sections, export.join_formatted_parts { data = data, parts_formatted = parts_formatted,
categories = categories, separator_already_added = true })
return table.concat(text_sections)
end
--[==[
Implementation of {{tl|blend}}, {{tl|univerbation}} and similar "compound-like" templates.
'''WARNING''': This destructively modifies both `data` and the individual structures within `.parts`.
]==]
function export.show_compound_like(data)
data.allow_no_affixes_or_compounds = true
local text_sections, categories, _ = generate_affix_categories(data)
if data.cat then
table.insert(categories, data.cat)
end
-- Process each part for display
local parts_formatted = {}
for i, part in ipairs_with_gaps(data.parts) do
-- Make a link for the part
table.insert(parts_formatted, export.link_term(part, data, "include_separator"))
end
if #data.parts > 0 and data.oftext then
table.insert(text_sections, 1, " " .. data.oftext .. " ")
end
if data.text then
table.insert(text_sections, 1, data.text)
end
table.insert(text_sections, export.join_formatted_parts { data = data, parts_formatted = parts_formatted,
categories = categories, separator_already_added = true })
return table.concat(text_sections)
end
--[==[
Make `part` (a structure holding information on an affix part) into an affix of type `affix_type`, and apply any
relevant affix mappings. For example, if the desired affix type is "akhiran", this will (in general) add a hyphen onto
the beginning of the term, alt, tr and ts components of the part if not already present. The hyphen that's added is the
"display hyphen" (see above) and may be script-specific. (In the case of East Asian scripts, the display hyphen is an
empty string whereas the template hyphen is the regular hyphen, meaning that any regular hyphen at the beginning of the
part will be effectively removed.) `lang` and `sc` hold overall language and script objects.
Note that this also applies any language-specific affix mappings, so that e.g. if the language is Finnish and the user
specified [[-käs]] in the affix and didn't specify an `.alt` value, `part.term` will contain [[-kas]] and `part.alt` will
contain [[-käs]].
This function is used by the "legacy" templates ({{tl|prefix}}, {{tl|suffix}}, {{tl|confix}}, etc.) where the nature of
the affix is specified by the template itself rather than auto-determined from the affix, as is the case with
{{tl|affix}}.
'''WARNING''': This destructively modifies `part`.
]==]
local function make_part_into_affix(part, lang, sc, affix_type)
canonicalize_part(part, lang, sc)
local link_term, display_term = export.make_affix(part.term, part.lang, part.sc, affix_type, not part.alt, nil, part.id)
part.term = link_term
-- When we don't specify `do_affix_mapping` to make_affix(), link and display terms (first and second retvals of
-- make_affix()) are the same.
-- If part.alt would be the same as part.term, make it nil, so that it isn't erroneously tracked as being
-- redundant alt text.
part.alt = part.alt and export.make_affix(part.alt, part.lang, part.sc, affix_type) or (display_term ~= link_term and display_term) or nil
local Latn = require(scripts_module).getByCode("Latn")
part.tr = export.make_affix(part.tr, part.lang, Latn, affix_type)
part.ts = export.make_affix(part.ts, part.lang, Latn, affix_type)
end
local function track_wrong_affix_type(template, part, expected_affix_type)
if part and not part.type then
local affix_type = export.parse_term_for_affixes(part.term, part.lang, part.sc)
if affix_type ~= expected_affix_type then
local part_name = expected_affix_type or "base"
local langcode = part.lang:getCode()
local full_langcode = part.lang:getFullCode()
require("Module:debug/track") {
template,
template .. "/" .. part_name,
template .. "/" .. part_name .. "/" .. (affix_type or "none"),
template .. "/" .. part_name .. "/" .. (affix_type or "none") .. "/lang/" .. langcode
}
-- If `part.lang` is an etymology-only language, track both using its code and its full parent's code.
if full_langcode ~= langcode then
require("Module:debug/track")(
template .. "/" .. part_name .. "/" .. (affix_type or "none") .. "/lang/" .. full_langcode
)
end
end
end
end
local function insert_affix_category(categories, pos, affix_type, part, sort_key, sort_base)
-- Don't add a '*fixed with' category if the link term is empty or is in a different language.
if part.term and not part.part_lang then
local cat = pos .. " ber" .. affix_type .. " dengan " .. strip_diacritics_no_links(part.lang, part.term) ..
(part.id and " (" .. part.id .. ")" or "")
if sort_key or sort_base then
table.insert(categories, {cat = cat, sort_key = sort_key, sort_base = sort_base})
else
table.insert(categories, cat)
end
end
end
--[==[
Implementation of {{tl|circumfix}}.
'''WARNING''': This destructively modifies both `data` and `.prefix`, `.base` and `.suffix`.
]==]
function export.show_circumfix(data)
data.pos = data.pos or default_pos
data.pos = pluralize(data.pos)
canonicalize_part(data.base, data.lang, data.sc)
-- Hyphenate the affixes and apply any affix mappings.
make_part_into_affix(data.prefix, data.lang, data.sc, "awalan")
make_part_into_affix(data.suffix, data.lang, data.sc, "akhiran")
track_wrong_affix_type("apitan", data.prefix, "awalan")
track_wrong_affix_type("apitan", data.base, nil)
track_wrong_affix_type("apitan", data.suffix, "akhiran")
-- Create circumfix term.
local circumfix = nil
if data.prefix.term and data.suffix.term then
circumfix = data.prefix.term .. " " .. data.suffix.term
data.prefix.alt = data.prefix.alt or data.prefix.term
data.suffix.alt = data.suffix.alt or data.suffix.term
data.prefix.term = circumfix
data.suffix.term = circumfix
end
-- Make links out of all the parts.
local parts_formatted = {}
local categories = {}
local sort_base
if data.base.term then
sort_base = strip_diacritics_no_links(data.base.lang, data.base.term)
end
table.insert(parts_formatted, export.link_term(data.prefix, data))
table.insert(parts_formatted, export.link_term(data.base, data))
table.insert(parts_formatted, export.link_term(data.suffix, data))
-- Insert the categories, but don't add a '*fixed with' category if the link term is in a different language.
if not data.prefix.part_lang then
table.insert(categories, {cat=data.pos .. " dengan apitan " .. strip_diacritics_no_links(data.prefix.lang,
circumfix), sort_key=data.sort_key, sort_base=sort_base})
end
return export.join_formatted_parts { data = data, parts_formatted = parts_formatted, categories = categories }
end
--[==[
Implementation of {{tl|confix}}.
'''WARNING''': This destructively modifies both `data` and `.prefix`, `.base` and `.suffix`.
]==]
function export.show_confix(data)
data.pos = data.pos or default_pos
data.pos = pluralize(data.pos)
canonicalize_part(data.base, data.lang, data.sc)
-- Hyphenate the affixes and apply any affix mappings.
make_part_into_affix(data.prefix, data.lang, data.sc, "awalan")
make_part_into_affix(data.suffix, data.lang, data.sc, "akhiran")
track_wrong_affix_type("confix", data.prefix, "awalan")
track_wrong_affix_type("confix", data.base, nil)
track_wrong_affix_type("confix", data.suffix, "akhiran")
-- Make links out of all the parts.
local parts_formatted = {}
local prefix_sort_base
if data.base and data.base.term then
prefix_sort_base = strip_diacritics_no_links(data.base.lang, data.base.term)
elseif data.suffix.term then
prefix_sort_base = strip_diacritics_no_links(data.suffix.lang, data.suffix.term)
end
-- Insert the categories and parts.
local categories = {}
table.insert(parts_formatted, export.link_term(data.prefix, data))
insert_affix_category(categories, data.pos, "awalan", data.prefix, data.sort_key, prefix_sort_base)
if data.base then
table.insert(parts_formatted, export.link_term(data.base, data))
end
table.insert(parts_formatted, export.link_term(data.suffix, data))
-- FIXME, should we be specifying a sort base here?
insert_affix_category(categories, data.pos, "akhiran", data.suffix)
return export.join_formatted_parts { data = data, parts_formatted = parts_formatted, categories = categories }
end
--[==[
Implementation of {{tl|infix}}.
'''WARNING''': This destructively modifies both `data` and `.base` and `.infix`.
]==]
function export.show_infix(data)
data.pos = data.pos or default_pos
data.pos = pluralize(data.pos)
canonicalize_part(data.base, data.lang, data.sc)
-- Hyphenate the affixes and apply any affix mappings.
make_part_into_affix(data.infix, data.lang, data.sc, "sisipan")
track_wrong_affix_type("sisipan", data.base, nil)
track_wrong_affix_type("sisipan", data.infix, "sisipan")
-- Make links out of all the parts.
local parts_formatted = {}
local categories = {}
table.insert(parts_formatted, export.link_term(data.base, data))
table.insert(parts_formatted, export.link_term(data.infix, data))
-- Insert the categories.
-- FIXME, should we be specifying a sort base here?
insert_affix_category(categories, data.pos, "sisipan", data.infix)
return export.join_formatted_parts { data = data, parts_formatted = parts_formatted, categories = categories }
end
--[==[
Implementation of {{tl|prefix}}.
'''WARNING''': This destructively modifies both `data` and the structures within `.prefixes`, as well as `.base`.
]==]
function export.show_prefix(data)
data.pos = data.pos or default_pos
data.pos = pluralize(data.pos)
canonicalize_part(data.base, data.lang, data.sc)
-- Hyphenate the affixes and apply any affix mappings.
for i, prefix in ipairs(data.prefixes) do
make_part_into_affix(prefix, data.lang, data.sc, "awalan")
end
for i, prefix in ipairs(data.prefixes) do
track_wrong_affix_type("awalan", prefix, "awalan")
end
track_wrong_affix_type("awalan", data.base, nil)
-- Make links out of all the parts.
local parts_formatted = {}
local first_sort_base = nil
local categories = {}
if data.prefixes[2] then
first_sort_base = ine(data.prefixes[2].term) or ine(data.prefixes[2].alt)
if first_sort_base then
first_sort_base = strip_diacritics_no_links(data.prefixes[2].lang, first_sort_base)
end
elseif data.base then
first_sort_base = ine(data.base.term) or ine(data.base.alt)
if first_sort_base then
first_sort_base = strip_diacritics_no_links(data.base.lang, first_sort_base)
end
end
for i, prefix in ipairs(data.prefixes) do
table.insert(parts_formatted, export.link_term(prefix, data))
insert_affix_category(categories, data.pos, "awalan", prefix, data.sort_key, i == 1 and first_sort_base or nil)
end
if data.base then
table.insert(parts_formatted, export.link_term(data.base, data))
else
table.insert(parts_formatted, "")
end
return export.join_formatted_parts { data = data, parts_formatted = parts_formatted, categories = categories }
end
--[==[
Implementation of {{tl|suffix}}.
'''WARNING''': This destructively modifies both `data` and the structures within `.suffixes`, as well as `.base`.
]==]
function export.show_suffix(data)
local categories = {}
data.pos = data.pos or default_pos
data.pos = pluralize(data.pos)
canonicalize_part(data.base, data.lang, data.sc)
-- Hyphenate the affixes and apply any affix mappings.
for i, suffix in ipairs(data.suffixes) do
make_part_into_affix(suffix, data.lang, data.sc, "akhiran")
end
track_wrong_affix_type("akhiran", data.base, nil)
for i, suffix in ipairs(data.suffixes) do
track_wrong_affix_type("akhiran", suffix, "akhiran")
end
-- Make links out of all the parts.
local parts_formatted = {}
if data.base then
table.insert(parts_formatted, export.link_term(data.base, data))
else
table.insert(parts_formatted, "")
end
for i, suffix in ipairs(data.suffixes) do
table.insert(parts_formatted, export.link_term(suffix, data))
end
-- Insert the categories.
for i, suffix in ipairs(data.suffixes) do
-- FIXME, should we be specifying a sort base here?
insert_affix_category(categories, data.pos, "akhiran", suffix)
if suffix.pos and rfind(suffix.pos, "patronym") then
table.insert(categories, "patronim")
end
end
return export.join_formatted_parts { data = data, parts_formatted = parts_formatted, categories = categories }
end
return export
80oct2qgv8zpypjrilj2vii9a43i7y2
373512
373510
2026-09-10T21:39:07Z
SNN95
2113
373512
Scribunto
text/plain
local export = {}
local debug_force_cat = false -- if set to true, always display categories even on userspace pages
local m_links = require("Module:links")
local m_str_utils = require("Module:string utilities")
local m_table = require("Module:table")
local en_utilities_module = "Module:en-utilities"
local etymology_module = "Module:etymology"
local pron_qualifier_module = "Module:pron qualifier"
local scripts_module = "Module:scripts"
local utilities_module = "Module:utilities"
-- Export this so the category code in [[Module:category tree/etymology]] can access it.
export.affix_lang_data_module_prefix = "Module:affix/lang-data/"
local ulen = m_str_utils.len
local rfind = m_str_utils.find
local rmatch = m_str_utils.match
local pluralize = require(en_utilities_module).pluralize
local u = m_str_utils.char
local ucfirst = m_str_utils.ucfirst
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
function export.affix_variants(canonical, variants)
local mappings = {}
for _, variant in ipairs(variants) do
mappings[variant] = canonical
end
return mappings
end
function export.id_mapping(default, ids)
local mapping = { default = default }
if ids then
for id, target in pairs(ids) do
mapping[id] = target
end
end
return mapping
end
function export.id_mapping_with_affix_variants(base, id_variants)
local mappings = {}
for id, variants in pairs(id_variants) do
for _, variant in ipairs(variants) do
mappings[variant] = export.id_mapping(base, {[id] = base})
end
end
return mappings
end
function export.merge_tables(...)
local result = {}
for i = 1, select('#', ...) do
local t = select(i, ...)
if t then
for k, v in pairs(t) do
result[k] = v
end
end
end
return result
end
-- Export this so the category code in [[Module:category tree/etymology]] can access it.
export.langs_with_lang_specific_data = {
["az"] = true,
["fi"] = true,
["fr"] = true,
["izh"] = true,
["la"] = true,
["sah"] = true,
["tr"] = true,
["trk-pro"] = true,
}
local default_pos = "term"
--[==[ intro:
===About different types of hyphens ("template", "display" and "lookup"):===
* The "template hyphen" is the per-script hyphen character that is used in template calls to indicate that a term is an
affix. This is always a single Unicode char, but there may be multiple possible hyphens for a given script. Normally
this is just the regular hyphen character "-", but for some non-Latin-script languages (currently only right-to-left
languages), it is different.
* The "display hyphen" is the string (which might be an empty string) that is added onto a term as displayed and linked,
to indicate that a term is an affix. Currently this is always either the same as the template hyphen or an empty
string, but the code below is written generally enough to handle arbitrary display hyphens. Specifically:
*# For East Asian languages, the display hyphen is always blank.
*# For Arabic-script languages, either tatweel (ـ) or ZWNJ (zero-width non-joiner) are allowed as template hyphens,
where ZWNJ is supported primarily for Farsi, because some suffixes have non-joining behavior. The display hyphen
corresponding to tatweel is also tatweel, but the display hyphen corresponding to ZWNJ is blank (tatweel is also
the default display hyphen, for calls to {{tl|prefix}}/{{tl|suffix}}/etc. that don't include an explicit hyphen).
* The "lookup hyphen" is the hyphen that is used when looking up language-specific affix mappings. (These mappings are
discussed in more detail below when discussing link affixes.) It depends only on the script of the affix in question.
Most scripts (including East Asian scripts) use a regular hyphen "-" as the lookup hyphen, but Hebrew and Arabic
have their own lookup hyphens (respectively maqqef and tatweel). Note that for Arabic in particular, there are
three possible template hyphens that are recognized (tatweel, ZWNJ and regular hyphen), but mappings must use tatweel.
===About different types of affixes ("template", "display", "link", "lookup" and "category"):===
* A "template affix" is an affix in its source form as it appears in a template call. Generally, a template affix has an
attached template hyphen (see above) to indicate that it is an affix and indicate what type of affix it is (prefix,
suffix, interfix or circumfix), but some of the older-style templates such as {{tl|suffix}}, {{tl|prefix}},
{{tl|confix}}, etc. have "positional" affixes where the presence of the affix in a certain position (e.g. the second
or third parameter) indicates that it is a certain type of affix, whether or not it has an attached template hyphen.
* A "display affix" is the corresponding affix as it is actually displayed to the user. The display affix may differ
from the template affix for various reasons:
*# The display affix may be specified explicitly using the {{para|alt<var>N</var>}} parameter, the `<alt:...>` inline
modifier or a piped link of the form e.g. `<nowiki>[[-kas|-käs]]</nowiki>` (here indicating that the affix should
display as `-käs` but be linked as `-kas`). Here, the template affix is arguably the entire piped link, while the
display affix is `-käs`.
*# Even in the absence of {{para|alt<var>N</var>}} parameters, `<alt:...>` inline modifiers and piped links, certain
languages have differences between the "template hyphen" specified in the template (which always needs to be
specified somehow or other in templates like {{tl|affix}}, to indicate that the term is an affix and what type of
affix it is) and the display hyphen (see above), with corresponding differences between template and display
affixes.
* A (regular) "link affix" is the affix that is linked to when the affix is shown to the user. The link affix is usually
the same as the display affix, but will differ in one of three circumstances:
*# The display and link affixes are explicitly made different using {{para|alt<var>N</var>}} parameters, `<alt:...>`
inline modifiers or piped links, as described above under "display affix".
*# For certain languages, certain affixes are mapped to canonical form using language-specific mappings. For example,
in Finnish, the adjective-forming suffix {{m|fi|-kas}} appears as {{m|fi|-käs}} after front vowels, but logically
both forms are the same suffix and should be linked and categorized the same. Similarly, in Latin, the negative and
intensive prefixes spelled {{m|la|in-}} (etymologically two distinct prefixes) appear variously as {{m|la|il-}},
{{m|la|im-}} or {{m|la|ir-}} before certain consonants. Mappings are supplied in [[Module:affix/lang-data/LANGCODE]]
to convert Finnish {{m|fi|-käs}} to {{m|fi|-kas}} for linking and categorization purposes. Note that the affixes in
the mappings use "lookup hyphens" to indicate the different types of affixes, which is usually the same as the
template hyphen but differs for Arabic scripts, because there are multiple possible template hyphens recognized but
only one lookup hyphen (tatweel). The form of the affix as used to look up in the mapping tables is called the
"lookup affix"; see below.
* A "stripped link affix" is a link affix that has been passed through the language's `stripDiacritics()` function, which
may strip certain diacritics: e.g. macrons in Latin and Old English (indicating length); acute and grave accents in
Russian and various other Slavic languages (indicating stress); vowel diacritics in most Arabic-script languages; and
also tatweel in some Arabic-script languages (currently, for example, Persian, Arabic and Urdu strip tatweel, but
Ottoman Turkish does not). Stripped link affixes are currently what are used in category names.
* A "lookup affix" is the form of the affix as it is looked up in the language-specific lookup mappings described above
under link affixes. There are actually two lookup stages:
*# First, the affix is looked up in a modified display form (specifically, the same as the display affix but using
lookup hyphens). Note that this lookup does not occur if an explicit display form is given using
{{para|alt<var>N</var>}} or an `<alt:...>` inline modifier, or if the template affix contains a piped or embedded
link.
*# If no entry is found, the affix is then looked up in a modified link form (specifically, the modified display
form passed through the language's `stripDiacritics()` function, which strips out certain diacritics, but with the
lookup hyphen re-added if it was stripped out, as in the case of tatweel in many Arabic-script languages).
The reason for this double lookup procedure is to allow for mappings that are sensitive to the extra diacritics, but
also allow for mappings that are not sensitive in this fashion (e.g. Russian {{m|ru|-ливый}} occurs both stressed and
unstressed, but is the same prefix either way).
* A "category affix" is the affix as it appears in categories such as [[:Category:Finnish terms suffixed with -kas|
Category:Finnish terms suffixed with ''-kas'']]. The category affix is currently always the same as the stripped link
affix. This means that for Arabic-script languages, it may or may not have a tatweel, even if the correponding display
affix and regular link affix have a tatweel. As mentioned above, stripDiacritics() strips tatweel for Arabic, Persian
and Urdu, but not for Ottoman Turkish. Hence affix categories for Arabic, Persian and Urdu will be missing the
tatweel, but affix categories for Ottoman Turkish will have it. An additional complication is that if the template
affix contains a ZWNJ, the display (and hence the link and category affixes) will have no hyphen attached in any case.
]==]
-----------------------------------------------------------------------------------------
-- Template and display hyphens --
-----------------------------------------------------------------------------------------
--[=[
Per-script template hyphens. The template hyphen is what appears in the {{affix}}/{{prefix}}/{{suffix}}/etc. template
(in the wikicode). See above.
They key below is a script code, after removing a hyphen and anything preceding. Hence, script codes like 'mnc-Mong'
and 'xwo-Mong' will match 'Mong'.
The value below is a string consisting of one or more hyphen characters. If there is more than one character, the
default hyphen must come last and a non-default function must be specified for the script in display_hyphens[] so
the correct display hyphen will be specified when no template hyphen is given (in {{suffix}}/{{prefix}}/etc.).
Script detection is normally done when linking, but we need to do it earlier. However, under most circumstances we
don't need to do script detection. Specifically, we only need to do script detection for a given language if
(a) the language has multiple scripts; and
(b) at least one of those scripts is listed below or in display_hyphens.
]=]
local ZWNJ = u(0x200C) -- zero-width non-joiner
local template_hyphens = {
-- This covers all Arabic scripts. See above.
["Arab"] = "ـ" .. ZWNJ .. "-", -- tatweel + zero-width non-joiner + regular hyphen
["Aran"] = "ـ" .. ZWNJ .. "-", -- tatweel + zero-width non-joiner + regular hyphen
["Hebr"] = "־", -- Hebrew-specific hyphen termed "maqqef"
["Mong"] = "᠊",
-- FIXME! What about the following right-to-left scripts?
-- Adlm (Adlam)
-- Armi (Imperial Aramaic)
-- Avst (Avestan)
-- Cprt (Cypriot)
-- Khar (Kharoshthi)
-- Mand (Mandaic/Mandaean)
-- Mani (Manichaean)
-- Mend (Mende/Mende Kikakui)
-- Narb (Old North Arabian)
-- Nbat (Nabataean/Nabatean)
-- Nkoo (N'Ko)
-- Orkh (Orkhon runes)
-- Phli (Inscriptional Pahlavi)
-- Phlp (Psalter Pahlavi)
-- Phlv (Book Pahlavi)
-- Phnx (Phoenician)
-- Prti (Inscriptional Parthian)
-- Rohg (Hanifi Rohingya)
-- Samr (Samaritan)
-- Sarb (Old South Arabian)
-- Sogd (Sogdian)
-- Sogo (Old Sogdian)
-- Syrc (Syriac)
-- Thaa (Thaana)
}
-- Hyphens used when looking up an affix in a lang-specific affix mapping. Defaults to regular hyphen (-). The keys
-- are script codes, after removing a hyphen and anything preceding. Hence, script codes like 'mnc-Mong' and 'xwo-Mong'
-- will match 'Mong'. The value should be a single character.
local lookup_hyphens = {
["Hebr"] = "־",
-- This covers all Arabic scripts. See above.
["Arab"] = "ـ",
["Aran"] = "ـ",
}
-- Default display-hyphen function.
local function default_display_hyphen(script, hyph)
if not hyph then
return template_hyphens[script] or "-"
end
return hyph
end
local function arab_get_display_hyphen(_script, hyph)
if not hyph then
return "ـ" -- tatweel
elseif hyph == ZWNJ then
return ""
else
return hyph
end
end
local function no_display_hyphen(_script, _hyph)
return ""
end
-- Per-script function to return the correct display hyphen given the script and template hyphen. The function should
-- also handle the case where the passed-in template hyphen is nil, corresponding to the situation in
-- {{prefix}}/{{suffix}}/etc. where no template hyphen is specified. The key is the script code after removing a hyphen
-- and anything preceding, so 'mnc-Mong', 'xwo-Mong' etc. will match 'Mong'.
local display_hyphens = {
-- This covers all Arabic scripts. See above.
["Arab"] = arab_get_display_hyphen,
["Aran"] = arab_get_display_hyphen,
["Bopo"] = no_display_hyphen,
["Hani"] = no_display_hyphen,
["Hans"] = no_display_hyphen,
["Hant"] = no_display_hyphen,
-- The following is a mixture of several scripts. Hopefully the specs here are correct!
["Jpan"] = no_display_hyphen,
["Jurc"] = no_display_hyphen,
["Kitl"] = no_display_hyphen,
["Kits"] = no_display_hyphen,
["Laoo"] = no_display_hyphen,
["Nshu"] = no_display_hyphen,
["Shui"] = no_display_hyphen,
["Tang"] = no_display_hyphen,
["Thaa"] = no_display_hyphen,
["Thai"] = no_display_hyphen,
["Tibt"] = no_display_hyphen,
}
-----------------------------------------------------------------------------------------
-- Basic Utility functions --
-----------------------------------------------------------------------------------------
local function glossary_link(entry, text)
text = text or entry
return "[[Lampiran:Glosari#" .. entry .. "|" .. text .. "]]"
end
local function track(page)
if type(page) == "table" then
for i, pg in ipairs(page) do
page[i] = "affix/" .. pg
end
else
page = "affix/" .. page
end
require("Module:debug/track")(page)
end
local function ine(val)
return val ~= "" and val or nil
end
-----------------------------------------------------------------------------------------
-- Compound types --
-----------------------------------------------------------------------------------------
local function make_compound_type(typ, alttext)
return {
text = glossary_link(typ, alttext) .. " majmuk",
cat = typ .. " majmuk",
}
end
-- Make a compound type entry with a simple rather than glossary link.
-- These should be replaced with a glossary link when the entry in the glossary
-- is created.
local function make_non_glossary_compound_type(typ, alttext)
local link = alttext and "[[" .. typ .. "|" .. alttext .. "]]" or "[[" .. typ .. "]]"
return {
text = link .. " majmuk",
cat = typ .. " majmuk",
}
end
local function make_raw_compound_type(typ, alttext)
return {
text = glossary_link(typ, alttext),
cat = pluralize(typ),
}
end
local function make_borrowing_type(typ, alttext)
return {
text = glossary_link(typ, alttext),
borrowing_type = pluralize(typ),
}
end
export.etymology_types = {
["adapted borrowing"] = make_borrowing_type("adapted borrowing"),
["adap"] = "adapted borrowing",
["abor"] = "adapted borrowing",
["alliterative"] = make_non_glossary_compound_type("alliterative"),
["allit"] = "alliterative",
["antonymous"] = make_non_glossary_compound_type("antonymous"),
["ant"] = "antonymous",
["bahuvrihi"] = make_compound_type("bahuvrihi", "bahuvrīhi"),
["bahu"] = "bahuvrihi",
["bv"] = "bahuvrihi",
["coordinative"] = make_compound_type("coordinative"),
["coord"] = "coordinative",
["descriptive"] = make_compound_type("descriptive"),
["desc"] = "descriptive",
["determinative"] = make_compound_type("determinative"),
["det"] = "determinative",
["dvandva"] = make_compound_type("dvandva"),
["dva"] = "dvandva",
["dvigu"] = make_compound_type("dvigu"),
["dvi"] = "dvigu",
["endocentric"] = make_compound_type("endocentric"),
["endo"] = "endocentric",
["exocentric"] = make_compound_type("exocentric"),
["exo"] = "exocentric",
["izafet I"] = make_compound_type("izafet I"),
["iz1"] = "izafet I",
["izafet II"] = make_compound_type("izafet II"),
["iz2"] = "izafet II",
["izafet III"] = make_compound_type("izafet III"),
["iz3"] = "izafet III",
["karmadharaya"] = make_compound_type("karmadharaya", "karmadhāraya"),
["karma"] = "karmadharaya",
["kd"] = "karmadharaya",
["kenning"] = make_raw_compound_type("kenning"),
["ken"] = "kenning",
["rhyming"] = make_non_glossary_compound_type("rhyming"),
["rhy"] = "rhyming",
["synonymous"] = make_non_glossary_compound_type("synonymous"),
["syn"] = "synonymous",
["tatpurusa"] = make_compound_type("tatpurusa", "tatpuruṣa"),
["tat"] = "tatpurusa",
["tp"] = "tatpurusa",
}
local function process_etymology_type(typ, nocap, notext, has_parts)
local text_sections = {}
local categories = {}
local borrowing_type
if typ then
local typdata = export.etymology_types[typ]
if type(typdata) == "string" then
typdata = export.etymology_types[typdata]
end
if not typdata then
error("Internal error: Unrecognized type '" .. typ .. "'")
end
local text = typdata.text
if not nocap then
text = ucfirst(text)
end
local cat = typdata.cat
borrowing_type = typdata.borrowing_type
local oftext = typdata.oftext or " of"
if not notext then
table.insert(text_sections, text)
if has_parts then
table.insert(text_sections, oftext)
table.insert(text_sections, " ")
end
end
if cat then
table.insert(categories, cat)
end
end
return text_sections, categories, borrowing_type
end
-----------------------------------------------------------------------------------------
-- Utility functions --
-----------------------------------------------------------------------------------------
-- Iterate an array up to the greatest integer index found.
local function ipairs_with_gaps(t)
local indices = m_table.numKeys(t)
local max_index = #indices > 0 and math.max(unpack(indices)) or 0
local i = 0
return function()
if i < max_index then
i = i + 1
return i, t[i]
end
end
end
export.ipairs_with_gaps = ipairs_with_gaps
--[==[
Join formatted parts (in `parts_formatted`) together with any overall {{para|lit}} spec (in `lit`) plus categories,
which are formatted by prepending the language name as found in `lang`. The value of an entry in `categories` can be
either a string (which is formatted using `sort_key`) or a table of the form `{ {cat=<var>category</var>,
sort_key=<var>sort_key</var>, sort_base=<var>sort_base</var>}`, specifying the sort key and sort base to use when
formatting the category. If `nocat` is given, no categories are added; otherwise, `force_cat` causes categories to be
added even on userspace pages.
]==]
function export.join_formatted_parts(data)
local cattext
local lang = data.data.lang
local force_cat = data.data.force_cat or debug_force_cat
if data.data.nocat then
cattext = ""
else
for i, cat in ipairs(data.categories) do
if type(cat) == "table" then
data.categories[i] = require(utilities_module).format_categories(cat .. " bahasa " .. lang:getFullName().cat,
lang, cat.sort_key, cat.sort_base, force_cat)
else
data.categories[i] = require(utilities_module).format_categories(cat .. " bahasa " .. lang:getFullName(), lang,
data.data.sort_key, nil, force_cat)
end
end
cattext = table.concat(data.categories)
end
local result = table.concat(data.parts_formatted, not data.separator_already_added and " +‎ " or nil) ..
(data.data.lit and ", secara harfiah " .. m_links.mark(data.data.lit, "gloss") or "")
local q = data.data.q
local qq = data.data.qq
local l = data.data.l
local ll = data.data.ll
local infl = data.data.infl
if q and q[1] or qq and qq[1] or l and l[1] or ll and ll[1] or infl and infl[1] then
result = require(pron_qualifier_module).format_qualifiers {
lang = lang,
text = result,
q = q,
qq = qq,
l = l,
ll = ll,
infl = infl,
}
end
return result .. cattext
end
-- Remove links and call lang:stripDiacritics(term).
local function strip_diacritics_no_links(lang, term)
return lang:stripDiacritics(m_links.remove_links(term))
end
--[=[
Convert a raw part as passed into an entry point into a part ready for linking. `lang` and `sc` are the overall
language and script objects. This uses the overall language and script objects as defaults for the part and parses off
any fragment from the term. We need to do the latter so that fragments don't end up in categories and so that we
correctly do affix mapping even in the presence of fragments.
]=]
local function canonicalize_part(part, lang, sc)
if not part then
return
end
-- Save the original (user-specified, part-specific) value of `lang`. If such a value is specified, we don't insert
-- a '*fixed with' category, and we format the part using format_derived() in [[Module:etymology]] rather than
-- full_link() in [[Module:links]].
part.part_lang = part.lang
part.lang = part.lang or lang
part.sc = part.sc or sc
local term = part.term
if not term then
return
elseif not part.fragment then
part.term, part.fragment = m_links.get_fragment(term)
else
part.term = m_links.get_fragment(term)
end
end
--[==[
Construct a single linked part based on the information in `part`, for use by `show_affix()` and other entry points.
This should be called after `canonicalize_part()` is called on the part. This is a thin wrapper around `full_link()` in
[[Module:links]] unless `part.part_lang` is specified (indicating that a part-specific language was given), in which
case `format_derived()` in [[Module:etymology]] is called to display a term in a language other than the language of
the overall term (specified in `data.lang`). `data` contains the entire object passed into the entry point and is used
to access information for constructing the categories added by `format_derived()`.
]==]
function export.link_term(part, data, include_separator)
local result
if part.part_lang then
result = require(etymology_module).format_derived {
lang = data.lang,
terms = {part},
sources = {part.lang},
sort_key = data.sort_key,
nocat = data.nocat,
template_name = "affix",
qualifiers_labels_on_outside = true,
borrowing_type = data.borrowing_type,
force_cat = data.force_cat or debug_force_cat,
}
else
result = m_links.full_link(part, "term", nil, "show qualifiers")
end
if include_separator and part.separator then
return part.separator .. result
else
return result
end
end
local function canonicalize_script_code(scode)
-- Convert 'mnc-Mong', 'xwo-Mong' etc. to 'Mong'.
return (scode:gsub("^.*%-", ""))
end
-----------------------------------------------------------------------------------------
-- Affix-handling functions --
-----------------------------------------------------------------------------------------
-- Figure out the appropriate script for the given affix and language (unless the script is explicitly passed in), and
-- return the values of template_hyphens[], display_hyphens[] and lookup_hyphens[] for that script, substituting
-- default values as appropriate. Four values are returned:
-- DETECTED_SCRIPT, TEMPLATE_HYPHEN, DISPLAY_HYPHEN, LOOKUP_HYPHEN
local function detect_script_and_hyphens(text, lang, sc)
local scode
-- 1. If the script is explicitly passed in, use it.
if sc then
scode = sc:getCode()
else
local possible_script_codes = lang:getScriptCodes()
-- YUCK! `possible_script_codes` comes from loadData() so #possible_scripts doesn't work (always returns 0).
local num_possible_script_codes = m_table.length(possible_script_codes)
if num_possible_script_codes == 0 then
-- This shouldn't happen; if the language has no script codes,
-- the list {"None"} should be returned.
error("Something is majorly wrong! Language " .. lang:getCanonicalName() .. " has no script codes.")
end
if num_possible_script_codes == 1 then
-- 2. If the language has only one possible script, use it.
scode = possible_script_codes[1]
else
-- 3. Check if any of the possible scripts for the language have non-default values for template_hyphens[]
-- or display_hyphens[]. If so, we need to do script detection on the text. If not, just use "Latn",
-- which may not be technically correct but produces the right results because Latn has all default
-- values for template_hyphens[] and display_hyphens[].
local may_have_nondefault_hyphen = false
for _, script_code in ipairs(possible_script_codes) do
script_code = canonicalize_script_code(script_code)
if template_hyphens[script_code] or display_hyphens[script_code] then
may_have_nondefault_hyphen = true
break
end
end
if not may_have_nondefault_hyphen then
scode = "Latn"
else
scode = lang:findBestScript(text):getCode()
end
end
end
scode = canonicalize_script_code(scode)
local template_hyphen = template_hyphens[scode] or "-"
local lookup_hyphen = lookup_hyphens[scode] or "-"
local display_hyphen = display_hyphens[scode] or default_display_hyphen
return scode, template_hyphen, display_hyphen, lookup_hyphen
end
--[=[
Given a template affix `term` and an affix type `affix_type`, change the relevant template hyphen(s) in the affix to
the display or lookup hyphen specified in `new_hyphen`, or add them if they are missing. `new_hyphen` can be a string,
specifying a fixed hyphen, or a function of two arguments (the script code `scode` and the discovered template hyphen,
or nil of no relevant template hyphen is present). `thyph_re` is a Lua pattern (which must be enclosed in parens) that
matches the possible template hyphens. Note that not all template hyphens present in the affix are changed, but only
the "relevant" ones (e.g. for a prefix, a relevant template hyphen is one coming at the end of the affix).
]=]
local function reconstruct_term_per_hyphens(term, affix_type, scode, thyph_re, new_hyphen)
local function get_hyphen(hyph)
if type(new_hyphen) == "string" then
return new_hyphen
end
return new_hyphen(scode, hyph)
end
if affix_type == "non-affix" then
return term
elseif affix_type == "apitan" then
local before, before_hyphen, after_hyphen, after = rmatch(term, "^(.*)" .. thyph_re .. " " .. thyph_re
.. "(.*)$")
if not before or ulen(term) <= 3 then
-- Unlike with other types of affixes, don't try to add hyphens in the middle of the term to convert it to
-- a circumfix. Also, if the term is just hyphen + space + hyphen, return it.
return term
end
return before .. get_hyphen(before_hyphen) .. " " .. get_hyphen(after_hyphen) .. after
elseif affix_type == "sisipan" or affix_type == "jalinan" then
local before_hyphen, middle, after_hyphen = rmatch(term, "^" .. thyph_re .. "(.*)" .. thyph_re .. "$")
if before_hyphen and ulen(term) <= 1 then
-- If the term is just a hyphen, return it.
return term
end
return get_hyphen(before_hyphen) .. (middle or term) .. get_hyphen(after_hyphen)
elseif affix_type == "awalan" then
local middle, after_hyphen = rmatch(term, "^(.*)" .. thyph_re .. "$")
if middle and ulen(term) <= 1 then
-- If the term is just a hyphen, return it.
return term
end
return (middle or term) .. get_hyphen(after_hyphen)
elseif affix_type == "akhiran" then
local before_hyphen, middle = rmatch(term, "^" .. thyph_re .. "(.*)$")
if before_hyphen and ulen(term) <= 1 then
-- If the term is just a hyphen, return it.
return term
end
return get_hyphen(before_hyphen) .. (middle or term)
else
error(("Internal error: Unrecognized affix type '%s'"):format(affix_type))
end
end
--[=[
Look up a mapping from a given affix variant to the canonical form used in categories and links. The lookup tables are
language-specific according to `lang`, and may be ID-specific according to `affix_id`. The affixes as they appear in the
lookup tables (both the variant and the canonical form) are in "lookup affix" format (approximately speaking, they use a
regular hyphen for most scripts, but a tatweel for Arabic-script entries and a maqqef for Hebrew-script entries), but
the passed-in `affix` param is in "template affix" format (which differs from the lookup affix for Arabic-script
entries, because more types of hyphens are allowed in template affixes; see the comments at the top of the file). The
remaining parameters to this function are used to convert from template affixes to lookup affixes; see the
reconstruct_term_per_hyphens() function above.
If the affix contains brackets, no lookup is done. Otherwise, a two-stage process is used, first looking up the affix
directly and then stripping diacritics and looking it up again. The reason for this is documented above in the comments
at the top of the file (specifically, the comments describing lookup affixes).
The value of a mapping can either be a string (do the mapping regardless of affix ID) or a table indexed by affix ID
(where the special value `false` indicates no affix ID). The values of entries in this table can also be strings, or
tables with keys `affix` and `id` (again, use `false` to indicate no ID). This allows an affix mapping to map from one
ID to another (for example, this is used in English to map the [[an-]] prefix with no ID to the [[a-]] prefix with the
ID 'not').
The Given a template affix `term` and an affix type `affix_type`, change the relevant template hyphen(s) in the affix to
the display or lookup hyphen specified in `new_hyphen`, or add them if they are missing. `new_hyphen` can be a string,
specifying a fixed hyphen, or a function of two arguments (the script code `scode` and the discovered template hyphen,
or nil of no relevant template hyphen is present). `thyph_re` is a Lua pattern (which must be enclosed in parens) that
matches the possible template hyphens. Note that not all template hyphens present in the affix are changed, but only
the "relevant" ones (e.g. for a prefix, a relevant template hyphen is one coming at the end of the affix).
]=]
local function lookup_affix_mapping(affix, affix_type, lang, scode, thyph_re, lookup_hyph, affix_id)
local function do_lookup(afx)
-- Ensure that the affix uses lookup hyphens regardless of whether it used a different type of hyphens before
-- or no hyphens.
local lookup_affix = reconstruct_term_per_hyphens(afx, affix_type, scode, thyph_re, lookup_hyph)
local function do_lookup_for_langcode(langcode)
if export.langs_with_lang_specific_data[langcode] then
local langdata = mw.loadData(export.affix_lang_data_module_prefix .. langcode)
if langdata.affix_mappings then
local mapping = langdata.affix_mappings[lookup_affix]
if mapping then
if type(mapping) == "table" then
mapping = mapping[affix_id] or mapping.default or mapping[affix_id or false]
if mapping then
return mapping
end
else
return mapping
end
end
end
end
end
-- If `lang` is an etymology-only language, look for a mapping both for it and its full parent.
local langcode = lang:getCode()
local mapping = do_lookup_for_langcode(langcode)
if mapping then
return mapping
end
local full_langcode = lang:getFullCode()
if full_langcode ~= langcode then
mapping = do_lookup_for_langcode(full_langcode)
if mapping then
return mapping
end
end
return nil
end
if affix:find("%[%[") then
return nil
end
return do_lookup(affix) or do_lookup(lang:stripDiacritics(affix)) or nil
end
--[==[
For a given template term in a given language (see the definition of "template affix" near the top of the file),
possibly in an explicitly specified script `sc` (but usually nil), return the term's affix type ({"awalan"},
{"jalinan"}, {"akhiran"}, {"apitan"} or {"non-affix"}) along with the corresponding link and display affixes
(see definitions near the top of the file); also the corresponding lookup affix (if `return_lookup_affix` is specified).
The term passed in should already have any fragment (after the # sign) parsed off of it. Four values are returned:
`affix_type`, `link_term`, `display_term` and `lookup_term`. The affix type can be passed in instead of autodetected; in
this case, the template term need not have any attached hyphens, and the appropriate hyphens will be added in the
appropriate places. If `do_affix_mapping` is specified, look up the affix in the lang-specific affix mappings, as
described in the comment at the top of the file; otherwise, the link and display terms will always be the same. (They
will be the same in any case if the template term has a bracketed link in it or is not an affix.) If
`return_lookup_affix` is given, the fourth return value contains the term with appropriate lookup hyphens in the
appropriate places; otherwise, it is the same as the display term. (This functionality is used in
[[Module:category tree/affixes and compounds]] to convert link affixes into lookup affixes so that they can be looked up
in the affix mapping tables.)
Exported because used by [[Module:headword utilities]] to determine the affix type of a given pagename.
]==]
function export.parse_term_for_affixes(term, lang, sc, affix_type, do_affix_mapping, return_lookup_affix, affix_id)
if not term then
return "non-affix", nil, nil, nil
end
if term == "^" then
-- Indicates a null term to emulate the behavior of {{suffix|foo||bar}}.
term = ""
return "non-affix", term, term, term
end
if term:find("^%^") then
-- HACK! ^ at the beginning of Korean languages has a special meaning, triggering capitalization of the
-- transliteration. Don't interpret it as "force non-affix" for those languages.
local langcode = lang:getCode()
if langcode ~= "ko" and langcode ~= "okm" and langcode ~= "jje" then
-- Formerly we allowed ^ to force non-affix type; this is now handled using an inline modifier
-- <naf>, <root>, etc. Throw an error for the moment when the old way is encountered.
error("Use of ^ to force non-affix status is no longer supported; use an inline modifier <naf> or <root> " ..
"after the component")
end
end
-- Remove an asterisk if the morpheme is reconstructed and add it back at the end.
local reconstructed = ""
if term:find("^%*") then
reconstructed = "*"
term = term:gsub("^%*", "")
end
local scode, thyph, dhyph, lhyph = detect_script_and_hyphens(term, lang, sc)
thyph = "([" .. thyph .. "])"
if not affix_type then
if rfind(term, thyph .. " " .. thyph) then
affix_type = "apitan"
else
local has_beginning_hyphen = rfind(term, "^" .. thyph)
local has_ending_hyphen = rfind(term, thyph .. "$")
if has_beginning_hyphen and has_ending_hyphen then
affix_type = "jalinan"
elseif has_ending_hyphen then
affix_type = "awalan"
elseif has_beginning_hyphen then
affix_type = "akhiran"
else
affix_type = "non-affix"
end
end
end
local link_term, display_term, lookup_term
if affix_type == "non-affix" then
link_term = term
display_term = term
lookup_term = term
else
display_term = reconstruct_term_per_hyphens(term, affix_type, scode, thyph, dhyph)
if do_affix_mapping then
link_term = lookup_affix_mapping(term, affix_type, lang, scode, thyph, lhyph, affix_id)
-- The return value of lookup_affix_mapping() may be an affix mapping with lookup hyphens if a mapping
-- was found, otherwise nil if a mapping was not found. We need to convert to display hyphens in
-- either case, but in the latter case we can reuse the display term, which has already been converted.
if link_term then
link_term = reconstruct_term_per_hyphens(link_term, affix_type, scode, thyph, dhyph)
else
link_term = display_term
end
else
link_term = display_term
end
if return_lookup_affix then
lookup_term = reconstruct_term_per_hyphens(term, affix_type, scode, thyph, lhyph)
else
lookup_term = display_term
end
end
link_term = reconstructed .. link_term
display_term = reconstructed .. display_term
lookup_term = reconstructed .. lookup_term
return affix_type, link_term, display_term, lookup_term
end
--[==[
Add a hyphen to a term in the appropriate place, based on the specified affix type, stripping off any existing hyphens
in that place. For example, if `affix_type` == {"awalan"}, we'll add a hyphen onto the end if it's not already there (or
is of the wrong type). Three values are returned: the link term, display term and lookup term. This function is a thin
wrapper around `parse_term_for_affixes`; see the comments above that function for more information. Note that this
function is exposed externally because it is called by [[Module:category tree/affixes and compounds]]; see the comment
in `parse_term_for_affixes` for more information.
]==]
function export.make_affix(term, lang, sc, affix_type, do_affix_mapping, return_lookup_affix, affix_id)
if not (affix_type == "awalan" or affix_type == "akhiran" or affix_type == "apitan" or affix_type == "sisipan" or
affix_type == "jalinan" or affix_type == "non-affix") then
error("Internal error: Invalid affix type " .. (affix_type or "(nil)"))
end
local _, link_term, display_term, lookup_term = export.parse_term_for_affixes(term, lang, sc, affix_type,
do_affix_mapping, return_lookup_affix, affix_id)
return link_term, display_term, lookup_term
end
-----------------------------------------------------------------------------------------
-- Main entry points --
-----------------------------------------------------------------------------------------
--[==[
Core categorization logic for affixes. This is shared between show_affix(), show_compound_like() and
get_affix_categories_only(). Returns the categories array and other metadata needed for formatting.
]==]
local function generate_affix_categories(data)
data.pos = data.pos or default_pos
data.pos = pluralize(data.pos)
local text_sections, categories, borrowing_type =
process_etymology_type(data.type, data.surface_analysis or data.nocap, data.notext, #data.parts > 0)
data.borrowing_type = borrowing_type
-- Process each part
local whole_words = 0
local is_affix_or_compound = false
-- Canonicalize and generate links for all the parts first; then do categorization in a separate step, because when
-- processing the first part for categorization, we may access the second part and need it already canonicalized.
for i, part in ipairs_with_gaps(data.parts) do
part = part or {}
data.parts[i] = part
canonicalize_part(part, data.lang, data.sc)
-- Determine affix type and get link and display terms (see text at top of file). Store them in the part
-- (in fields that won't clash with fields used by full_link() in [[Module:links]] or link_term()), so they
-- can be used in the loop below when categorizing.
part.affix_type, part.affix_link_term, part.affix_display_term = export.parse_term_for_affixes(part.term,
part.lang, part.sc, part.type, not part.alt, nil, part.id)
-- If link_term is an empty string, either a bare ^ was specified or an empty term was used along with inline
-- modifiers. The intention in either case is not to link the term.
part.term = ine(part.affix_link_term)
-- If part.alt would be the same as part.term, make it nil, so that it isn't erroneously tracked as being
-- redundant alt text.
part.alt = part.alt or (part.affix_display_term ~= part.affix_link_term and part.affix_display_term) or nil
end
if not data.noaffixcat then
-- Now do categorization.
for i, part in ipairs_with_gaps(data.parts) do
local affix_type = part.affix_type
if affix_type ~= "non-affix" then
is_affix_or_compound = true
-- Make a sort key. For the first part, use the second part as the sort key; the intention is that if the
-- term has a prefix, sorting by the prefix won't be very useful so we sort by what follows, which is
-- presumably the root.
local part_sort_base = nil
local part_sort = part.sort or data.sort_key
if i == 1 and data.parts[2] and data.parts[2].term then
local part2 = data.parts[2]
-- If the second-part link term is empty, the user requested an unlinked term; avoid a wikitext error
-- by using the alt value if available.
part_sort_base = ine(part2.affix_link_term) or ine(part2.alt)
if part_sort_base then
part_sort_base = strip_diacritics_no_links(part2.lang, part_sort_base)
end
end
if part.pos and rfind(part.pos, "patronym") then
table.insert(categories, {cat = "patronim", sort_key = part_sort, sort_base = part_sort_base})
end
if data.pos ~= "terms" and part.pos and rfind(part.pos, "diminutive") then
table.insert(categories, {cat = data.pos .. " diminutif", sort_key = part_sort,
sort_base = part_sort_base})
end
-- Don't add a '*fixed with' category if the link term is empty or is in a different language.
if ine(part.affix_link_term) and not part.part_lang then
table.insert(categories, {cat = data.pos .. " ber" .. affix_type .. " dengan " ..
strip_diacritics_no_links(part.lang, part.affix_link_term) ..
(part.id and " (" .. part.id .. ")" or ""),
sort_key = part_sort, sort_base = part_sort_base})
end
else
whole_words = whole_words + 1
if whole_words == 2 then
is_affix_or_compound = true
table.insert(categories, "majmuk " .. data.pos)
end
end
end
-- Make sure there was either an affix or a compound (two or more non-affix terms).
if not is_affix_or_compound and not data.allow_no_affixes_or_compounds then
error("The parameters did not include any affixes, and the term is not a compound. Please provide at least one affix.")
end
end
return text_sections, categories, borrowing_type
end
--[==[
Implementation of {{tl|affix}} and {{tl|surface analysis}}. `data` contains all the information describing the affixes to
be displayed, and contains the following:
* `.lang` ('''required'''): Overall language object. Different from term-specific language objects (see `.parts` below).
* `.sc`: Overall script object (usually omitted). Different from term-specific script objects.
* `.parts` ('''required'''): List of objects describing the affixes to show. The general format of each object is as would
be passed to `full_link()`, except that the `.lang` field should be missing unless the term is of a language
different from the overall `.lang` value (in such a case, the language name is shown along with the term and
an additional "derived from" category is added). '''WARNING''': The data in `.parts` will be destructively
modified.
* `.pos`: Overall part of speech (used in categories, defaults to {"terms"}). Different from term-specific part of speech.
* `.sort_key`: Overall sort key. Normally omitted except e.g. in Japanese.
* `.type`: Type of compound, if the parts in `.parts` describe a compound. Strictly optional, and if supplied, the
compound type is displayed before the parts (normally capitalized, unless `.nocap` is given).
* `.nocap`: Don't capitalize the first letter of text displayed before the parts (relevant only if `.type` or
`.surface_analysis` is given).
* `.notext`: Don't display any text before the parts (relevant only if `.type` or `.surface_analysis` is given).
* `.nocat`: Disable all categorization.
* `.noaffixcat`: Disable affix (and compound) categorization. Relevant for e.g. blends, which may otherwise
be incorrectly categorized as compound terms.
* `.lit`: Overall literal definition. Different from term-specific literal definitions.
* `.force_cat`: Always display categories, even on userspace pages.
* `.surface_analysis`: Implement {{surface analysis}}; adds `By surface analysis, ` before the parts.
'''WARNING''': This destructively modifies both `data` and the individual structures within `.parts`.
]==]
function export.show_affix(data)
local text_sections, categories, _ = generate_affix_categories(data)
-- Process each part for display
local parts_formatted = {}
for i, part in ipairs_with_gaps(data.parts) do
-- Make a link for the part
table.insert(parts_formatted, export.link_term(part, data, "include_separator"))
end
if data.surface_analysis then
local text = "dengan " .. glossary_link("surface analysis") .. ", "
if not data.nocap then
text = ucfirst(text)
end
table.insert(text_sections, 1, text)
end
table.insert(text_sections, export.join_formatted_parts { data = data, parts_formatted = parts_formatted,
categories = categories, separator_already_added = true })
return table.concat(text_sections)
end
--[==[
Get only the categories that would be generated by show_affix(), without any text output or formatting.
This is used by Module:etymon to get affix categorization.
Returns an array of category objects, where
each entry is either a string (simple category name) or a table with keys `cat`, `sort_key`,
and `sort_base` for more complex categorization.
`data` should have the same structure as passed to show_affix():
* `.lang` (required): Overall language object
* `.parts` (required): Array of affix part objects with `.term`, `.lang`, `.id`, etc.
* `.pos`: Part of speech (defaults to "terms")
* `.sort_key`: Overall sort key for categories
'''WARNING''': This destructively modifies both `data` and the individual structures within `.parts`.
]==]
function export.get_affix_categories_only(data)
local _, categories, _ = generate_affix_categories(data)
return categories
end
function export.show_surface_analysis(data)
data.surface_analysis = true
data.allow_no_affixes_or_compounds = true
return export.show_affix(data)
end
--[==[
Implementation of {{tl|compound}}.
'''WARNING''': This destructively modifies both `data` and the individual structures within `.parts`.
]==]
function export.show_compound(data)
data.pos = data.pos or default_pos
data.pos = pluralize(data.pos)
local text_sections, categories, borrowing_type =
process_etymology_type(data.type, data.nocap, data.notext, #data.parts > 0)
data.borrowing_type = borrowing_type
local parts_formatted = {}
table.insert(categories, "majmuk " .. data.pos)
-- Make links out of all the parts
local whole_words = 0
for i, part in ipairs(data.parts) do
canonicalize_part(part, data.lang, data.sc)
-- Determine affix type and get link and display terms (see text at top of file).
local affix_type, link_term, display_term = export.parse_term_for_affixes(part.term, part.lang, part.sc,
part.type, not part.alt, nil, part.id)
-- If the term is an interfix or the type was explicitly given, recognize it as such (which means e.g. that we
-- will display the term without hyphens for East Asian languages). Otherwise, ignore the fact that it looks
-- like an affix and display as specified in the template (but pay attention to the detected affix type for
-- certain tracking purposes).
if affix_type == "jalinan" or (part.type and part.type ~= "non-affix") then
-- If link_term is an empty string, either a bare ^ was specified or an empty term was used along with
-- inline modifiers. The intention in either case is not to link the term. Don't add a '*fixed with'
-- category in this case, or if the term is in a different language.
-- If part.alt would be the same as part.term, make it nil, so that it isn't erroneously tracked as being
-- redundant alt text.
if link_term and link_term ~= "" and not part.part_lang then
table.insert(categories, {cat = data.pos .. " ber" .. affix_type .. " dengan " ..
strip_diacritics_no_links(part.lang, link_term), sort_key = part.sort or data.sort_key})
end
part.term = link_term ~= "" and link_term or nil
part.alt = part.alt or (display_term ~= link_term and display_term) or nil
else
if affix_type ~= "non-affix" then
local langcode = data.lang:getCode()
-- If `data.lang` is an etymology-only language, track both using its code and its full parent's code.
track { affix_type, affix_type .. "/lang/" .. langcode }
local full_langcode = data.lang:getFullCode()
if langcode ~= full_langcode then
track(affix_type .. "/lang/" .. full_langcode)
end
else
whole_words = whole_words + 1
end
end
table.insert(parts_formatted, export.link_term(part, data, "include_separator"))
end
if whole_words == 1 then
track("one whole word")
elseif whole_words == 0 then
track("looks like confix")
end
table.insert(text_sections, export.join_formatted_parts { data = data, parts_formatted = parts_formatted,
categories = categories, separator_already_added = true })
return table.concat(text_sections)
end
--[==[
Implementation of {{tl|blend}}, {{tl|univerbation}} and similar "compound-like" templates.
'''WARNING''': This destructively modifies both `data` and the individual structures within `.parts`.
]==]
function export.show_compound_like(data)
data.allow_no_affixes_or_compounds = true
local text_sections, categories, _ = generate_affix_categories(data)
if data.cat then
table.insert(categories, data.cat)
end
-- Process each part for display
local parts_formatted = {}
for i, part in ipairs_with_gaps(data.parts) do
-- Make a link for the part
table.insert(parts_formatted, export.link_term(part, data, "include_separator"))
end
if #data.parts > 0 and data.oftext then
table.insert(text_sections, 1, " " .. data.oftext .. " ")
end
if data.text then
table.insert(text_sections, 1, data.text)
end
table.insert(text_sections, export.join_formatted_parts { data = data, parts_formatted = parts_formatted,
categories = categories, separator_already_added = true })
return table.concat(text_sections)
end
--[==[
Make `part` (a structure holding information on an affix part) into an affix of type `affix_type`, and apply any
relevant affix mappings. For example, if the desired affix type is "akhiran", this will (in general) add a hyphen onto
the beginning of the term, alt, tr and ts components of the part if not already present. The hyphen that's added is the
"display hyphen" (see above) and may be script-specific. (In the case of East Asian scripts, the display hyphen is an
empty string whereas the template hyphen is the regular hyphen, meaning that any regular hyphen at the beginning of the
part will be effectively removed.) `lang` and `sc` hold overall language and script objects.
Note that this also applies any language-specific affix mappings, so that e.g. if the language is Finnish and the user
specified [[-käs]] in the affix and didn't specify an `.alt` value, `part.term` will contain [[-kas]] and `part.alt` will
contain [[-käs]].
This function is used by the "legacy" templates ({{tl|prefix}}, {{tl|suffix}}, {{tl|confix}}, etc.) where the nature of
the affix is specified by the template itself rather than auto-determined from the affix, as is the case with
{{tl|affix}}.
'''WARNING''': This destructively modifies `part`.
]==]
local function make_part_into_affix(part, lang, sc, affix_type)
canonicalize_part(part, lang, sc)
local link_term, display_term = export.make_affix(part.term, part.lang, part.sc, affix_type, not part.alt, nil, part.id)
part.term = link_term
-- When we don't specify `do_affix_mapping` to make_affix(), link and display terms (first and second retvals of
-- make_affix()) are the same.
-- If part.alt would be the same as part.term, make it nil, so that it isn't erroneously tracked as being
-- redundant alt text.
part.alt = part.alt and export.make_affix(part.alt, part.lang, part.sc, affix_type) or (display_term ~= link_term and display_term) or nil
local Latn = require(scripts_module).getByCode("Latn")
part.tr = export.make_affix(part.tr, part.lang, Latn, affix_type)
part.ts = export.make_affix(part.ts, part.lang, Latn, affix_type)
end
local function track_wrong_affix_type(template, part, expected_affix_type)
if part and not part.type then
local affix_type = export.parse_term_for_affixes(part.term, part.lang, part.sc)
if affix_type ~= expected_affix_type then
local part_name = expected_affix_type or "base"
local langcode = part.lang:getCode()
local full_langcode = part.lang:getFullCode()
require("Module:debug/track") {
template,
template .. "/" .. part_name,
template .. "/" .. part_name .. "/" .. (affix_type or "none"),
template .. "/" .. part_name .. "/" .. (affix_type or "none") .. "/lang/" .. langcode
}
-- If `part.lang` is an etymology-only language, track both using its code and its full parent's code.
if full_langcode ~= langcode then
require("Module:debug/track")(
template .. "/" .. part_name .. "/" .. (affix_type or "none") .. "/lang/" .. full_langcode
)
end
end
end
end
local function insert_affix_category(categories, pos, affix_type, part, sort_key, sort_base)
-- Don't add a '*fixed with' category if the link term is empty or is in a different language.
if part.term and not part.part_lang then
local cat = pos .. " ber" .. affix_type .. " dengan " .. strip_diacritics_no_links(part.lang, part.term) ..
(part.id and " (" .. part.id .. ")" or "")
if sort_key or sort_base then
table.insert(categories, {cat = cat, sort_key = sort_key, sort_base = sort_base})
else
table.insert(categories, cat)
end
end
end
--[==[
Implementation of {{tl|circumfix}}.
'''WARNING''': This destructively modifies both `data` and `.prefix`, `.base` and `.suffix`.
]==]
function export.show_circumfix(data)
data.pos = data.pos or default_pos
data.pos = pluralize(data.pos)
canonicalize_part(data.base, data.lang, data.sc)
-- Hyphenate the affixes and apply any affix mappings.
make_part_into_affix(data.prefix, data.lang, data.sc, "awalan")
make_part_into_affix(data.suffix, data.lang, data.sc, "akhiran")
track_wrong_affix_type("apitan", data.prefix, "awalan")
track_wrong_affix_type("apitan", data.base, nil)
track_wrong_affix_type("apitan", data.suffix, "akhiran")
-- Create circumfix term.
local circumfix = nil
if data.prefix.term and data.suffix.term then
circumfix = data.prefix.term .. " " .. data.suffix.term
data.prefix.alt = data.prefix.alt or data.prefix.term
data.suffix.alt = data.suffix.alt or data.suffix.term
data.prefix.term = circumfix
data.suffix.term = circumfix
end
-- Make links out of all the parts.
local parts_formatted = {}
local categories = {}
local sort_base
if data.base.term then
sort_base = strip_diacritics_no_links(data.base.lang, data.base.term)
end
table.insert(parts_formatted, export.link_term(data.prefix, data))
table.insert(parts_formatted, export.link_term(data.base, data))
table.insert(parts_formatted, export.link_term(data.suffix, data))
-- Insert the categories, but don't add a '*fixed with' category if the link term is in a different language.
if not data.prefix.part_lang then
table.insert(categories, {cat=data.pos .. " dengan apitan " .. strip_diacritics_no_links(data.prefix.lang,
circumfix), sort_key=data.sort_key, sort_base=sort_base})
end
return export.join_formatted_parts { data = data, parts_formatted = parts_formatted, categories = categories }
end
--[==[
Implementation of {{tl|confix}}.
'''WARNING''': This destructively modifies both `data` and `.prefix`, `.base` and `.suffix`.
]==]
function export.show_confix(data)
data.pos = data.pos or default_pos
data.pos = pluralize(data.pos)
canonicalize_part(data.base, data.lang, data.sc)
-- Hyphenate the affixes and apply any affix mappings.
make_part_into_affix(data.prefix, data.lang, data.sc, "awalan")
make_part_into_affix(data.suffix, data.lang, data.sc, "akhiran")
track_wrong_affix_type("confix", data.prefix, "awalan")
track_wrong_affix_type("confix", data.base, nil)
track_wrong_affix_type("confix", data.suffix, "akhiran")
-- Make links out of all the parts.
local parts_formatted = {}
local prefix_sort_base
if data.base and data.base.term then
prefix_sort_base = strip_diacritics_no_links(data.base.lang, data.base.term)
elseif data.suffix.term then
prefix_sort_base = strip_diacritics_no_links(data.suffix.lang, data.suffix.term)
end
-- Insert the categories and parts.
local categories = {}
table.insert(parts_formatted, export.link_term(data.prefix, data))
insert_affix_category(categories, data.pos, "awalan", data.prefix, data.sort_key, prefix_sort_base)
if data.base then
table.insert(parts_formatted, export.link_term(data.base, data))
end
table.insert(parts_formatted, export.link_term(data.suffix, data))
-- FIXME, should we be specifying a sort base here?
insert_affix_category(categories, data.pos, "akhiran", data.suffix)
return export.join_formatted_parts { data = data, parts_formatted = parts_formatted, categories = categories }
end
--[==[
Implementation of {{tl|infix}}.
'''WARNING''': This destructively modifies both `data` and `.base` and `.infix`.
]==]
function export.show_infix(data)
data.pos = data.pos or default_pos
data.pos = pluralize(data.pos)
canonicalize_part(data.base, data.lang, data.sc)
-- Hyphenate the affixes and apply any affix mappings.
make_part_into_affix(data.infix, data.lang, data.sc, "sisipan")
track_wrong_affix_type("sisipan", data.base, nil)
track_wrong_affix_type("sisipan", data.infix, "sisipan")
-- Make links out of all the parts.
local parts_formatted = {}
local categories = {}
table.insert(parts_formatted, export.link_term(data.base, data))
table.insert(parts_formatted, export.link_term(data.infix, data))
-- Insert the categories.
-- FIXME, should we be specifying a sort base here?
insert_affix_category(categories, data.pos, "sisipan", data.infix)
return export.join_formatted_parts { data = data, parts_formatted = parts_formatted, categories = categories }
end
--[==[
Implementation of {{tl|prefix}}.
'''WARNING''': This destructively modifies both `data` and the structures within `.prefixes`, as well as `.base`.
]==]
function export.show_prefix(data)
data.pos = data.pos or default_pos
data.pos = pluralize(data.pos)
canonicalize_part(data.base, data.lang, data.sc)
-- Hyphenate the affixes and apply any affix mappings.
for i, prefix in ipairs(data.prefixes) do
make_part_into_affix(prefix, data.lang, data.sc, "awalan")
end
for i, prefix in ipairs(data.prefixes) do
track_wrong_affix_type("awalan", prefix, "awalan")
end
track_wrong_affix_type("awalan", data.base, nil)
-- Make links out of all the parts.
local parts_formatted = {}
local first_sort_base = nil
local categories = {}
if data.prefixes[2] then
first_sort_base = ine(data.prefixes[2].term) or ine(data.prefixes[2].alt)
if first_sort_base then
first_sort_base = strip_diacritics_no_links(data.prefixes[2].lang, first_sort_base)
end
elseif data.base then
first_sort_base = ine(data.base.term) or ine(data.base.alt)
if first_sort_base then
first_sort_base = strip_diacritics_no_links(data.base.lang, first_sort_base)
end
end
for i, prefix in ipairs(data.prefixes) do
table.insert(parts_formatted, export.link_term(prefix, data))
insert_affix_category(categories, data.pos, "awalan", prefix, data.sort_key, i == 1 and first_sort_base or nil)
end
if data.base then
table.insert(parts_formatted, export.link_term(data.base, data))
else
table.insert(parts_formatted, "")
end
return export.join_formatted_parts { data = data, parts_formatted = parts_formatted, categories = categories }
end
--[==[
Implementation of {{tl|suffix}}.
'''WARNING''': This destructively modifies both `data` and the structures within `.suffixes`, as well as `.base`.
]==]
function export.show_suffix(data)
local categories = {}
data.pos = data.pos or default_pos
data.pos = pluralize(data.pos)
canonicalize_part(data.base, data.lang, data.sc)
-- Hyphenate the affixes and apply any affix mappings.
for i, suffix in ipairs(data.suffixes) do
make_part_into_affix(suffix, data.lang, data.sc, "akhiran")
end
track_wrong_affix_type("akhiran", data.base, nil)
for i, suffix in ipairs(data.suffixes) do
track_wrong_affix_type("akhiran", suffix, "akhiran")
end
-- Make links out of all the parts.
local parts_formatted = {}
if data.base then
table.insert(parts_formatted, export.link_term(data.base, data))
else
table.insert(parts_formatted, "")
end
for i, suffix in ipairs(data.suffixes) do
table.insert(parts_formatted, export.link_term(suffix, data))
end
-- Insert the categories.
for i, suffix in ipairs(data.suffixes) do
-- FIXME, should we be specifying a sort base here?
insert_affix_category(categories, data.pos, "akhiran", suffix)
if suffix.pos and rfind(suffix.pos, "patronym") then
table.insert(categories, "patronim")
end
end
return export.join_formatted_parts { data = data, parts_formatted = parts_formatted, categories = categories }
end
return export
ory27w96ulif8cz02dmw8fedcaokmtt
Modul:parameters
828
11447
373501
255526
2026-09-10T20:40:52Z
SNN95
2113
kemaskini
373501
Scribunto
text/plain
--[==[TODO:
* Change certain flag names, as some are misnomers:
* Change `allow_holes` to `keep_holes`, because it's not the inverse of `disallow_holes`.
* Change `allow_empty` to `keep_empty`, as it causes them to be kept as "" instead of deleted.
* Sort out all the internal error calls. Manual error(format()) calls are used when certain parameters shouldn't be dumped, so find a way to avoid that.
]==]
local export = {}
local collation_module = "Module:collation"
local families_module = "Module:families"
local functions_module = "Module:fun"
local gender_and_number_utilities_module = "Module:gender and number utilities"
local labels_module = "Module:labels"
local languages_module = "Module:languages"
local math_module = "Module:math"
local pages_module = "Module:pages"
local parameters_finalize_set_module = "Module:parameters/finalizeSet"
local parameters_track_module = "Module:parameters/track"
local parse_utilities_module = "Module:parse utilities"
local references_module = "Module:references"
local scribunto_module = "Module:Scribunto"
local scripts_module = "Module:scripts"
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
local wikimedia_languages_module = "Module:wikimedia languages"
local yesno_module = "Module:yesno"
local mw = mw
local mw_title = mw.title
local string = string
local table = table
local dump = mw.dumpObject
local find = string.find
local format = string.format
local gsub = string.gsub
local insert = table.insert
local ipairs = ipairs
local list_to_text = mw.text.listToText
local make_title = mw_title.makeTitle
local match = string.match
local max = math.max
local new_title = mw_title.new
local next = next
local pairs = pairs
local pcall = pcall
local require = require
local sub = string.sub
local tonumber = tonumber
local type = type
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local current_title_text, current_namespace, sets -- Defined when needed.
local namespaces = mw.site.namespaces
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function decode_entities(...)
decode_entities = require(string_utilities_module).decode_entities
return decode_entities(...)
end
local function extend(...)
extend = require(table_module).extend
return extend(...)
end
local function finalize_set(...)
finalize_set = require(parameters_finalize_set_module)
return finalize_set(...)
end
local function get_family_by_code(...)
get_family_by_code = require(families_module).getByCode
return get_family_by_code(...)
end
local function get_family_by_name(...)
get_family_by_name = require(families_module).getByCanonicalName
return get_family_by_name(...)
end
local function get_language_by_code(...)
get_language_by_code = require(languages_module).getByCode
return get_language_by_code(...)
end
local function get_language_by_name(...)
get_language_by_name = require(languages_module).getByCanonicalName
return get_language_by_name(...)
end
local function get_script_by_code(...)
get_script_by_code = require(scripts_module).getByCode
return get_script_by_code(...)
end
local function get_script_by_name(...)
get_script_by_name = require(scripts_module).getByCanonicalName
return get_script_by_name(...)
end
local function get_wm_lang_by_code(...)
get_wm_lang_by_code = require(wikimedia_languages_module).getByCode
return get_wm_lang_by_code(...)
end
local function get_wm_lang_by_code_with_fallback(...)
get_wm_lang_by_code_with_fallback = require(wikimedia_languages_module).getByCodeWithFallback
return get_wm_lang_by_code_with_fallback(...)
end
local function gsplit(...)
gsplit = require(string_utilities_module).gsplit
return gsplit(...)
end
local function is_callable(...)
is_callable = require(functions_module).is_callable
return is_callable(...)
end
local function is_integer(...)
is_integer = require(math_module).is_integer
return is_integer(...)
end
local function is_internal_title(...)
is_internal_title = require(pages_module).is_internal_title
return is_internal_title(...)
end
local function is_positive_integer(...)
is_positive_integer = require(math_module).is_positive_integer
return is_positive_integer(...)
end
local function iterate_list(...)
iterate_list = require(table_module).iterateList
return iterate_list(...)
end
local function num_keys(...)
num_keys = require(table_module).numKeys
return num_keys(...)
end
local function parse_gender_and_number_spec(...)
parse_gender_and_number_spec = require(gender_and_number_utilities_module).parse_gender_and_number_spec
return parse_gender_and_number_spec(...)
end
local function parse_references(...)
parse_references = require(references_module).parse_references
return parse_references(...)
end
local function pattern_escape(...)
pattern_escape = require(string_utilities_module).pattern_escape
return pattern_escape(...)
end
local function php_trim(...)
php_trim = require(scribunto_module).php_trim
return php_trim(...)
end
local function scribunto_parameter_key(...)
scribunto_parameter_key = require(scribunto_module).scribunto_parameter_key
return scribunto_parameter_key(...)
end
local function sort(...)
sort = require(collation_module).sort
return sort(...)
end
local function sorted_pairs(...)
sorted_pairs = require(table_module).sortedPairs
return sorted_pairs(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function split_labels_on_comma(...)
split_labels_on_comma = require(labels_module).split_labels_on_comma
return split_labels_on_comma(...)
end
local function split_on_comma(...)
split_on_comma = require(parse_utilities_module).split_on_comma
return split_on_comma(...)
end
local function tonumber_extended(...)
tonumber_extended = require(math_module).tonumber_extended
return tonumber_extended(...)
end
local function track(...)
track = require(parameters_track_module)
return track(...)
end
local function yesno(...)
yesno = require(yesno_module)
return yesno(...)
end
--[==[ intro:
This module is used to standardize template argument processing and checking. A typical workflow is as follows (based
on [[Module:translations]]):
{
...
local parent_args = frame:getParent().args
local params = {
[1] = {required = true, type = "language", default = "und"},
[2] = true,
[3] = {list = true},
["alt"] = true,
["id"] = true,
["sc"] = {type = "script"},
["tr"] = true,
["ts"] = true,
["lit"] = true,
}
local args = require("Module:parameters").process(parent_args, params)
-- Do further processing of the parsed arguments in `args`.
...
}
The `params` table should have the parameter names as the keys, and a (possibly empty) table of parameter tags as the
value. An empty table as the value merely states that the parameter exists, but should not receive any special
treatment; if desired, empty tables can be replaced with the value `true` as a perforamnce optimization.
Possible parameter tags are listed below:
; {required = true}
: The parameter is required; an error is shown if it is not present. The template's page itself is an exception; no
error is shown there.
; {default =}
: Specifies a default input value for the parameter, if it is absent or empty. This will be processed as though it were
the input instead, so (for example) {default = "und"} with the type {"language"} will return a language object for
[[:Category:Undetermined language|Undetermined language]] if no language code is provided. When used on list
parameters, this specifies a default value for the first item in the list only. Note that it is not possible to
generate a default that depends on the value of other parameters. If used together with {required = true}, the default
applies only to template pages (see the following entry), as a side effect of the fact that "required" parameters
aren't actually required on template pages. This can be used to show an example of the template in action when the
template page is visited; however, it is preferred to use `template_default` for this purpose, for clarity.
; {template_default =}
: Specifies a default input value for absent or empty parameters only on the template demo invocation (the invocation of
the template that is displayed when the template page that implements the template is viewed). Template pages are
pages in template space that invoke (through {{tl|#invoke:}}) the module that implements the template and calls
[[Module:parameters]]. For example, the page [[Template:en-noun]] implements the {{tl|en-noun}} template, which in
turn invokes [[Module:en-headword]], and is a template page for [[Module:en-headword]]. When the template page
[[Template:en-noun]] is visited, the {{tl|#invoke:}} of the template's module is expanded as if the template were
called without arguments, and the output is inserted at that point into the processed page. This output serves as a
sort of demo of the template's functionality. `template_default` can be used to supply default values for use only in
this demo. Since the template page may also contain other invocations of the same template (e.g. on the template's
documentation page, which is typically transcluded into the template page itself), `template_default` does not apply
if there are any arguments passed to the template or if the template is invoked on any other page but its own template
page (which is checked by comparing the name of the invoking template to the current pagename). Both
`template_default` and `default` can be specified for the same parameter. If this is done, `template_default` applies
for the argumentless template invocation on the template page, and `default` in all other circumstances As an example,
{{tl|cs-IPA}} uses the equivalent of {[1] = {default = "+", template_default = "příklad"}} to supply a default of
{"+"} for mainspace and documentation pages (which tells the module to use the value of the {{para|pagename}}
parameter, falling back to the actual pagename), but {"příklad"} (which means "example"), on [[Template:cs-IPA]].
; {alias_of =}
: Treat the parameter as an alias of another. When arguments are specified for this parameter, they will automatically
be renamed and stored under the alias name. This allows for parameters with multiple alternative names, while still
treating them as if they had only one name. The conversion-related properties of an aliased parameter (e.g. `type`,
`set`, `convert`, `sublist`) are taken from the aliasee, and the corrresponding properties set on the alias itself
are ignored; but other properties on the alias are taken from the alias's spec and not from the aliasee's spec. This
means, for example, that if you create an alias of a list parameter, the alias must also specify the `list` property
or it is not a list. (In such a case, a value specified for the alias goes into the first item of the aliasee's list.
You cannot make a list alias of a non-list parameter; this causes an error to be thrown.) Similarly, if you specify
`separate_no_index` on an aliasee but not on the alias, uses of the unindexed aliasee parameter are stored into the
`.default` key, but uses of the unindexed alias are stored into the first numbered key of the aliasee's list.
Aliases cannot be required, as this prevents the other name or names of the parameter from being used. Parameters
that are aliases and required at the same time cause an error to be thrown.
; {allow_empty = true}
: If the argument is an empty string value, it is not converted to {nil}, but kept as-is. The use of `allow_empty` is
disallowed if a type has been specified, and causes an error to be thrown.
; {no_trim = true}
: Spacing characters such as spaces and newlines at the beginning and end of a positional parameter are not removed.
(MediaWiki itself automatically trims spaces and newlines at the edge of named parameters.) The use of `no_trim` is
disallowed if a type has been specified, and causes an error to be thrown.
; {type =}
: Specifies what value type to convert the argument into. The default is to leave it as a text string. Alternatives are:
:; {type = "boolean"}
:: The value is treated as a boolean value, either true or false. No value, the empty string, and the strings {"0"},
{"no"}, {"n"}, {"false"}, {"f"} and {"off"} are treated as {false}, all other values are considered {true}.
:; {type = "number"}
:: The value is converted into a number, and throws an error if the value is not parsable as a number. Input values may
be signed (`+` or `-`), and may contain decimal points and leading zeroes. If {allow_hex = true}, then hexadecimal
values in the form {"0x100"} may optionally be used instead, which otherwise have the same syntax restrictions
(including signs, decimal digits, and leading zeroes after {"0x"}). Hexadecimal inputs are not case-sensitive. Lua's
special number values (`inf` and `nan`) are not possible inputs.
:; {type = "range"}
:: The value is interpreted as a hyphen-separated range of two numbers (e.g. {"2-4"} is interpreted as the range from
{2} to {4}). A number input without a hyphen is interpreted as a range from that number to itself (e.g. the input {"1"} is interpreted as the range from {1} to {1}). Any optional flags which are available for numbers will also work for ranges.
:; {type = "language"}
:: The value is interpreted as a full or [[Wiktionary:Languages#Etymology-only languages|etymology-only language]] code
language code (or name, if {method = "name"}) and converted into the corresponding object (see [[Module:languages]]).
If the code or name is invalid, then an error is thrown. The additional setting {family = true} can be given to allow
[[Wiktionary:Language families|language family codes]] to be considered valid and the corresponding object returned.
Note that to distinguish an etymology-only language object from a full language object, use
{object:hasType("language", "etymology-only")}.
:; {type = "full language"}
:: The value is interpreted as a full language code (or name, if {method = "name"}) and converted into the corresponding
object (see [[Module:languages]]). If the code or name is invalid, then an error is thrown. Etymology-only languages
are not allowed. The additional setting {family = true} can be given to allow
[[Wiktionary:Language families|language family codes]] to be considered valid and the corresponding object returned.
:; {type = "Wikimedia language"}
:: The value is interpreted as a code and converted into a Wikimedia language object. If the code is invalid, then an
error is thrown. If {fallback = true} is specified, conventional language codes which are different from their
Wikimedia equivalent will also be accepted as a fallback.
:; {type = "family"}
:: The value is interpreted as a language family code (or name, if {method = "name"}) and converted into the
corresponding object (see [[Module:families]]). If the code or name is invalid, then an error is thrown.
:; {type = "script"}
:: The value is interpreted as a script code (or name, if {method = "name"}) and converted into the corresponding object
(see [[Module:scripts]]). If the code or name is invalid, then an error is thrown.
:; {type = "title"}
:: The value is interpreted as a page title and converted into the corresponding object (see the
[[mw:Extension:Scribunto/Lua_reference_manual#Title_library|Title library]]). If the page title is invalid, then an
error is thrown; by default, external titles (i.e. those on other wikis) are not treated as valid. Options are:
::; {namespace = n}
::: The default namespace, where {n} is a namespace number; this is treated as {0} (the mainspace) if not specified.
::; {allow_external = true}
::: External titles are treated as valid.
::; {prefix = "namespace override"} (default)
::: The default namespace prefix will be prefixed to the value is already prefixed by a namespace prefix. For instance,
the input {"Foo"} with namespace {10} returns {"Template:Foo"}, {"Wiktionary:Foo"} returns {"Wiktionary:Foo"}, and
{"Template:Foo"} returns {"Template:Foo"}. Interwiki prefixes cannot act as overrides, however: the input {"fr:Foo"}
returns {"Template:fr:Foo"}.
::; {prefix = "force"}
::: The default namespace prefix will be prefixed unconditionally, even if the value already appears to be prefixed.
This is the way that {{tl|#invoke:}} works when calling modules from the module namespace ({828}): the input {"Foo"}
returns {"Module:Foo"}, {"Wiktionary:Foo"} returns {"Module:Wiktionary:Foo"}, and {"Module:Foo"} returns
{"Module:Module:Foo"}.
::; {prefix = "full override"}
::: The same as {prefix = "namespace override"}, except that interwiki prefixes can also act as overrides. For instance,
{"el:All topics"} with namespace {14} returns {"el:Category:All topics"}. Due to the limitations of MediaWiki, only
the first prefix in the value may act as an override, so the namespace cannot be overridden if the first prefix is
an interwiki prefix: e.g. {"el:Template:All topics"} with namespace {14} returns {"el:Category:Template:All topics"}.
:; {type = "parameter"}
:: The value is interpreted as the name of a parameter, and will be normalized using the method that Scribunto uses when
constructing a {frame.args} table of arguments. This means that integers will be converted to numbers, but all other
arguments will remain as strings (e.g. {"1"} will be normalized to {1}, but {"foo"} and {"1.5"} will remain
unchanged). Note that Scribunto also trims parameter names, following the same trimming method that this module
applies by default to all parameter types.
:: This type is useful when one set of input arguments is used to construct a {params} table for use in a subsequent
{export.process()} call with another set of input arguments; for instance, the set of valid parameters for a template
might be defined as {{tl|#invoke:[some module]|args=}} in the template, where {args} is a sublist of valid parameters
for the template.
:; {type = "qualifier"}
:: The value is interpreted as a qualifier and converted into the correct format for passing into `format_qualifiers()`
in [[Module:qualifier]] (which currently just means converting it to a one-item list).
:; {type = "labels"}
:: The value is interpreted as a comma-separated list of labels and converted into the correct format for passing into
`show_labels()` in [[Module:labels]] (which is currently a list of strings). Splitting is done on commas not followed
by whitespace, except that commas inside of double angle brackets do not count even if not followed by whitespace.
This type should be used by for normal labels (typically specified using {{para|l}} or {{para|ll}}) and accent
qualifiers (typically specified using {{para|a}} and {{para|aa}}).
:; {type = "references"}
:: The value is interpreted as one or more references, in the format prescribed by `parse_references()` in
[[Module:references]], and converted into a list of objects of the form accepted by `format_references()` in the same
module. If a syntax error is found in the reference format, an error is thrown.
:; {type = "genders"}
:: The value is interpreted as one or more comma-separated gender/number specs, in the format prescribed by
[[Module:gender and number]]. Inline modifiers (`<q:...>`, `<qq:...>`, `<l:...>`, `<ll:...>` or `<ref:...>`) may be
attached to a gender/number spec.
:; {type = "form of tags"}
:: The value is interpreted as an ampersand-separated list of grammar tags and converted into the correct format
for passing as `tags` into `tagged_inflections()` in [[Module:form of]] (which is currently a list of strings).
Splitting is always done by ampersands. This type should be used by for inflection qualifiers that act as
grammar tags (typically specified using {{para|infl}}).
:; {type = function(val) ... end}
:: `type` may be set to a function (or callable table), which must take the argument value as its sole argument, and must
output one of the other recognized types. This is particularly useful for lists (see below), where certain values need
to be interpreted differently to others.
; {list =}
: Treat the parameter as a list of values, each having its own parameter name, rather than a single value. The
parameters will have a number at the end, except optionally for the first (but see also {require_index = true}). For
example, {list = true} on a parameter named "head" will include the parameters {{para|head}} (or {{para|head1}}),
{{para|head2}}, {{para|head3}} and so on. If the parameter name is a number, another number doesn't get appended, but
the counting simply continues, e.g. for parameter {3} the sequence is {{para|3}}, {{para|4}}, {{para|5}} etc. List
parameters are returned as numbered lists, so for a template that is given the parameters `|head=a|head2=b|head3=c`,
the processed value of the parameter {"head"} will be { { "a", "b", "c" }}}.
: The value for {list =} can also be a string. This tells the module that parameters other than the first should have a
different name, which is useful when the first parameter in a list is a number, but the remainder is named. An example
would be for genders: {list = "g"} on a parameter named {1} would have parameters {{para|1}}, {{para|g2}}, {{para|g3}}
etc.
: If the number is not located at the end, it can be specified by putting {"\1"} at the number position. For example,
parameters {{para|f1accel}}, {{para|f2accel}}, ... can be captured by using the parameter name {"f\1accel"}, as is
done in [[Module:headword/templates]].
; {set =}
: Require that the value of the parameter be one of the specified values (or omitted, if {required = true} isn't given).
Two formats are allowed; either a list of possible values can be supplied, or a table can be supplied where the keys
are allowed values and the values are either `true` or a string naming a value found elsewhere in the table as a key.
In the latter case, the key is an alias and the value is the canonical value, and if the user uses the alias, it will
automatically be mapped to the canonical value. In such a case, the canonical value cannot itself be an alias. The use
of `set` is disallowed if {type = "boolean"} and causes an error to be thrown.
; {sublist =}
: The value of the parameter is a delimiter-separated list of individual raw values. The resulting field in `args` will
be a Lua list (i.e. a table with numeric indices) of the converted values. If {sublist = true} is given, the values
will be split on commas (possibly with whitespace on one or both sides of the comma, which is ignored). If
{sublist = "comma without whitespace"} is given, the values will be split on commas which are not followed by whitespace,
and which aren't preceded by an escaping backslash. Otherwise, the value of `sublist` should be either a Lua pattern
specifying the delimiter(s) to split on or a function (or callable table) to do the splitting, which is passed two values
(the value to split and a function to signal an error) and should return a list of the split values.
; {convert =}
: If given, this specifies a function (or callable table) to convert the raw parameter value into the Lua object used
during further processing. The function is passed two arguments, the raw parameter value itself and a function used to
signal an error during parsing or conversion, and should return one value, the converted parameter. The error-signaling
function contains the name and raw value of the parameter embedded into the message it generates, so these do not need to
specified in the message passed into it. If `type` is specified in conjunction with `convert`, the processing by
`type` happens first. If `sublist` is given in conjunction with `convert`, the raw parameter value will be split
appropriately and `convert` called on each resulting item.
; {allow_hex = true}
: When used in conjunction with {type = "number"}, allows hexadecimal numbers as inputs, in the format {"0x100"} (which is
not case-sensitive).
; {family = true}
: When used in conjunction with {type = "language"}, allows [[Wiktionary:Language families|language family codes]] to be
returned. To check if a given object refers to a language family, use {object:hasType("family")}.
; {method = "name"}
: When used in conjunction with {type = "language"}, {type = "family"} or {type = "script"}, checks for and parses a
language, family or script name instead of a code.
; {allow_holes = true}
: This is used in conjunction with list-type parameters. By default, the values are tightly packed in the resulting
list. This means that if, for example, an entry specified `head=a|head3=c` but not {{para|head2}}, the returned list
will be { {"a", "c"}}}, with the values stored at the indices {1} and {2}, not {1} and {3}. If it is desirable to keep
the numbering intact, for example if the numbers of several list parameters correlate with each other (like those of
{{tl|affix}}), then this tag should be specified.
: If {allow_holes = true} is given, there may be {nil} values in between two real values, which makes many of Lua's
table processing functions no longer work, like {#} or {ipairs()}. To remedy this, the resulting table will contain an
additional named value, `maxindex`, which tells you the highest numeric index that is present in the table. In the
example above, the resulting table will now be { { "a", nil, "c", maxindex = 3}}}. That way, you can iterate over the
values from {1} to `maxindex`, while skipping {nil} values in between.
; {disallow_holes = true}
: This is used in conjunction with list-type parameters. As mentioned above, normally if there is a hole in the source
arguments, e.g. `head=a|head3=c` but not {{para|head2}}, it will be removed in the returned list. If
{disallow_holes = true} is specified, however, an error is thrown in such a case. This should be used whenever there
are multiple list-type parameters that need to line up (e.g. both {{para|head}} and {{para|tr}} are available and
{{para|head3}} lines up with {{para|tr3}}), unless {allow_holes = true} is given and you are prepared to handle the
holes in the returned lists.
; {disallow_missing = true}
: This is similar to {disallow_holes = true}, but an error will not be thrown if an argument is blank, rather than
completely missing. This may be used to tolerate intermediate blank numerical parameters, which sometimes occur in list
templates. For instance, `head=a|head2=|head3=c` will not throw an error, but `head=a|head3=c` will.
; {require_index = true}
: This is used in conjunction with list-type parameters. By default, the first parameter can have its index omitted.
For example, a list parameter named `head` can have its first parameter specified as either {{para|head}} or
{{para|head1}}. If {require_index = true} is specified, however, only {{para|head1}} is recognized, and {{para|head}}
will be treated as an unknown parameter. {{tl|affixusex}} (and variants {{tl|suffixusex}}, {{tl|prefixusex}}) use
this, for example, on all list parameters.
; {separate_no_index = true}
: This is used to distinguish between {{para|head}} and {{para|head1}} as different parameters. For example, in
{{tl|affixusex}}, to distinguish between {{para|sc}} (a script code for all elements in the usex's language) and
{{para|sc1}} (the script code of the first element, used when the first element is prefixed with a language code to
indicate that it is in a different language). When this is used, the resulting table will contain an additional named
value, `default`, which contains the value for the indexless argument.
; {flatten = true}
: This is used in conjunction with list-type parameters when `sublist` or a list-generating type such as {"labels"} or
{"genders"} is also specified, and causes the resulting list to be flattened. Not currently compatible with
{allow_holes = true}.
; {replaced_by =}
: Specifies that the parameter is no longer valid, and has been replaced by some other mechanism. If the value of
`replaced_by` is a string, it is the name of the new parameter to use instead. Use the `reason` tag to specify the
reason why this change has been made, e.g.
{reason = "for consistency with the corresponding parameter in other Romance-language headword templates"}. If the
value of `replaced_by` is {false}, there is no replacement parameter. In this case, `instead` should be supplied
with a description of what to do instead, e.g.
{instead = "use an inline modifier on |2= such as <q:...>, <qq:...>, <l:...> or <ll:...>"}. You can also supply a
justification in `reason` if you feel it is appropriate or necessary to do so.
; {reason =}
: When used in conjunction with `replaced_by`, specifies the reason for the parameter replacement.
; {instead =}
: When used in conjunction with {replaced_by = false}, specifies what to do instead of using the removed parameter.
; {demo = true}
: This is used as a way to ensure that the parameter is only enabled on the template's own page (and its documentation
page), and in the User: namespace; otherwise, it will be treated as an unknown parameter. This should only be used if
special settings are required to showcase a template in its documentation (e.g. adjusting the pagename or disabling
categorization). In most cases, it should be possible to do this without using demo parameters, but they may be
required if a template/documentation page also contains real uses of the same template as well (e.g. {{tl|shortcut}}),
as a way to distinguish them.
; {deprecated = true}
: This is for tracking the use of deprecated parameters, including any aliases that are being brought out of use. See
[[Wiktionary:Tracking]] for more information.
]==]
-- Returns true if the current page is a template or module containing the current {{#invoke}}.
-- If the include_documentation argument is given, also returns true if the current page is either page's documentation page.
local own_page, own_page_or_documentation
local function is_own_page(include_documentation)
if own_page == nil then
if current_namespace == nil then
local current_title = mw_title.getCurrentTitle()
current_title_text, current_namespace = current_title.prefixedText, current_title.namespace
end
local frame = current_namespace == 828 and mw.getCurrentFrame() or
current_namespace == 10 and mw.getCurrentFrame():getParent()
if frame then
local frame_title_text = frame:getTitle()
own_page = current_title_text == frame_title_text
own_page_or_documentation = own_page or current_title_text == frame_title_text .. "/documentation"
else
own_page, own_page_or_documentation = false, false
end
end
return include_documentation and own_page_or_documentation or own_page
end
-------------------------------------- Some helper functions -----------------------------
-- Convert a list in `list` to a string, separating the final element from the preceding one(s) by `conjunction`. If
-- `dump_vals` is given, pass all values in `list` through mw.dumpObject() (WARNING: this destructively modifies
-- `list`). This is similar to serialCommaJoin() in [[Module:table]] when used with the `dontTag = true` option, but
-- internally uses mw.text.listToText().
local function concat_list(list, conjunction, dump_vals)
if dump_vals then
for k, v in pairs(list) do
list[k] = dump(v)
end
end
return list_to_text(list, nil, conjunction)
end
-- A helper function for use with generating error-signaling functions in the presence of raw value conversion. Format a
-- message `msg`, including the processed value `processed` if it is different from the raw value `rawval`; otherwise,
-- just return `msg`.
local function msg_with_processed(msg, rawval, processed)
if rawval == processed then
return msg
end
local processed_type = type(processed)
return format("%s (processed value %s)",
msg, (processed_type == "string" or processed_type == "number") and processed or dump(processed)
)
end
-- Separate form of tags with ampersand (&).
local function split_tags_on_ampersand(tags)
return split(tags, "&")
end
-------------------------------------- Error handling -----------------------------
local function process_error(fmt, ...)
local args = {...}
for i, val in ipairs(args) do
args[i] = dump(val)
end
if type(fmt) == "table" then
-- hacky signal that we're called from internal_process_error(), and not to omit stack frames
return error(format(fmt[1], unpack(args)))
end
return error(format(fmt, unpack(args)), 3)
end
local function internal_process_error(fmt, ...)
process_error({"Internal error in `params` table: " .. fmt}, ...)
end
-- Check that a parameter or argument is in the form form Scribunto normalizes input argument keys into (e.g. 1 not "1", "foo" not " foo "). Otherwise, it won't be possible to normalize inputs in the expected way. Unless is_argument is set, also check that the name only contains one placeholder at most, and that strings don't resolve to numeric keys once the placeholder has been substituted.
local function validate_name(name, desc, extra_name, is_argument)
local normalized = scribunto_parameter_key(name)
if name and name == normalized then
if is_argument or type(name) ~= "string" then
return
end
local placeholder = find(name, "\1", nil, true)
if not placeholder then
return
elseif find(name, "\1", placeholder + 1, true) then
error(format(
"Internal error: expected %s to only contain one placeholder, but saw %s",
extra_name and (desc .. dump(extra_name)) or desc, dump(name)
))
end
local first_name = gsub(name, "\1", "1")
normalized = scribunto_parameter_key(first_name)
if first_name == normalized then
return
end
error(format(
"Internal error: %s cannot resolve to numeric parameters once any placeholder has been substituted, but %s resolves to %s",
extra_name and (desc .. dump(extra_name)) or desc, dump(name), dump(normalized)
))
elseif normalized == nil then
error(format(
"Internal error: expected %s to be of type string or number, but saw %s",
extra_name and (desc .. dump(extra_name)) or desc, type(name)
))
end
error(format(
"Internal error: expected %s to be Scribunto-compatible: %s (a %s) should be %s (a %s)",
extra_name and (desc .. dump(extra_name)) or desc, dump(name), type(name), dump(normalized), type(normalized)
))
end
local function validate_alias_options(...)
local invalid = {
required = true,
default = true,
template_default = true,
allow_holes = true,
disallow_holes = true,
disallow_missing = true,
}
function validate_alias_options(param, name, main_param, alias_of)
for k in pairs(param) do
if invalid[k] then
track("bad alias option")
-- internal_process_error(
-- "parameter %s cannot have the option %s, as it is an alias of parameter %s.",
-- name, option, alias_of
-- )
end
end
-- Soon, aliases will inherit options from the main parameter via __index. Track cases where this would happen.
if main_param ~= true then
for k in pairs(main_param) do
if param[k] == nil and not invalid[k] then
if k == "list" then -- these need to be changed to list = false to retain current behaviour
track("mismatched list alias option")
elseif not (k == "type" or k == "set" or k == "sublist") then -- rarely specified on aliases, as they're effectively inherited already
track("mismatched alias option")
end
end
end
end
end
validate_alias_options(...)
end
-- TODO: give ranges instead of long lists, if possible.
--[==[ func: export.params_list_error(params, msg)
Given a key-value table of raw parameters `params`, display an error message about all the parameters seen in the table.
The parameter names are displayed in sorted order. `msg` should be e.g. {"required"} or {"not used by this template"}.
This is used internally to display error messages about required or invalid parameters, and can be used for the same
purpose by code that processes its own parameters (e.g. if the `return_unknown` flag is specified to `process`).
]==]
local function params_list_error(params, msg)
local list, n = {}, 0
for name in sorted_pairs(params) do
n = n + 1
list[n] = name
end
error(format(
"Parameter%s %s.",
format(n == 1 and " %s is" or "s %s are", concat_list(list, " and ", true)),
msg
), 3)
end
export.params_list_error = params_list_error
-- Helper function for use with convert_val_error(). Format a list of possible choices using `concat_list` and
-- conjunction "or", displaying "either " before the choices if there's more than one.
local function format_choice_list(valid)
return (#valid > 1 and "either " or "") .. concat_list(valid, " or ")
end
-- Signal an error for a value `val` that is not of the right type `valid` (which is either a string specifying a type, or
-- a list of possible values, in the case where `set` was used). `name` is the name of the parameter and can be a
-- function to signal an error (which is assumed to automatically display the parameter's name and value). `seetext` is
-- an optional additional explanatory link to display (e.g. [[WT:LOL]], the list of possible languages and codes).
local function convert_val_error(val, name, valid, seetext)
if is_callable(name) then
if type(valid) == "table" then
valid = "choice, must be " .. format_choice_list(valid)
end
name(format("Invalid %s; the value %s is not valid%s", valid, val, seetext and "; see " .. seetext or ""))
else
if type(valid) == "table" then
valid = format_choice_list(valid)
else
valid = "a valid " .. valid
end
error(format("Parameter %s must be %s; the value %s is not valid.%s", dump(name), valid, dump(val),
seetext and " See " .. seetext .. "." or ""))
end
end
-- Generate the appropriate error-signaling function given parameter value `val` and name `name`. If `name` is already
-- a function, it is just returned; otherwise a function is generated and returned that displays the passed-in messaeg
-- along with the parameter's name and value.
local function make_parse_err(val, name)
if is_callable(name) then
return name
end
return function(msg)
error(format("%s: parameter %s=%s", msg, name, val))
end
end
-------------------------------------- Value conversion -----------------------------
-- For a list parameter `name` and corresponding value `list_name` of the `list` field (which should have the same value
-- as `name` if `list = true` was given), generate a pattern to match parameters of the list and store the pattern as a
-- key in `patterns`, with corresponding value set to `name`. For example, if `list_name` is "tr", the pattern will
-- match "tr" as well as "tr1", "tr2", ..., "tr10", "tr11", etc. If the `list_name` contains a \1 in it, the numeric
-- portion goes in place of the \1. For example, if `list_name` is "f\1accel", the pattern will match "faccel",
-- "f1accel", "f2accel", etc. Any \1 in `name` is removed before storing into `patterns`.
local function save_pattern(name, list_name, patterns)
name = type(name) == "string" and gsub(name, "\1", "") or name
if find(list_name, "\1", nil, true) then
patterns["^" .. gsub(pattern_escape(list_name), "\1", "([1-9]%%d*)") .. "$"] = name
else
patterns["^" .. pattern_escape(list_name) .. "([1-9]%d*)$"] = name
list_name = list_name .. "\1"
end
validate_name(list_name, "the list field of parameter ", name)
return patterns
end
-- A helper function for use with `sublist`. It is an iterator function for use in a for-loop that returns split
-- elements of `val` using `sublist` (a Lua split pattern; boolean `true` to split on commas optionally surrounded by
-- whitespace; "comma without whitespace" to split only on commas not followed by whitespace which have not been escaped
-- by a backslash; or a function to do the splitting, which is passed two values, the value to split and a function to
-- signal an error, and should return a list of the split elements). `name` is the parameter name or error-signaling
-- function passed into convert_val().
local function split_sublist(val, name, sublist)
if sublist == true then
return gsplit(val, "%s*,%s*")
-- Split an argument on comma, but not comma followed by whitespace.
elseif sublist == "comma without whitespace" then
-- If difficult cases, use split_on_comma.
if find(val, "\\", nil, true) or match(val, ",%s") then
return iterate_list(split_on_comma(val))
end
-- Otherwise, use gsplit.
return gsplit(val, ",")
elseif type(sublist) == "string" then
return gsplit(val, sublist)
elseif not is_callable(sublist) then
error(format('Internal error: expected `sublist` to be of type "string" or "function" or boolean `true`, but saw %s', dump(sublist)))
end
return iterate_list(sublist(val, make_parse_err(val, name)))
end
-- For parameter named `name` with value `val` and param spec `param`, if the `set` field is specified, verify that the
-- value is one of the one specified in `set`, and throw an error otherwise. `name` is taken directly from the
-- corresponding parameter passed into convert_val() and may be a function to signal an error. Optional `param_type` is
-- a string specifying the conversion type of `val` and is used for special-casing: If `param_type` is "boolean", an
-- internal error is thrown (since `set` cannot be used in conjunction with booleans) and if `param_type` is "number",
-- no checking happens because in this case `set` contains numbers and is checked inside the number conversion function
-- itself, after converting `val` to a number. Return the canonical value of `val` (which may be different from `val`
-- if an alias map is given).
local function check_set(val, name, param, param_type)
if param_type == "boolean" then
error(format('Internal error: cannot use `set` with `type = "%s"`', param_type))
-- Needs to be special cased because the check happens after conversion to numbers.
elseif param_type == "number" then
return val
end
local set, map = param.set
if sets == nil then
map = finalize_set(set, name)
sets = {[set] = map}
else
map = sets[set]
if map == nil then
map = finalize_set(set, name)
sets[set] = map
end
end
local newval = map[val]
if newval == true then
return val
elseif newval ~= nil then
return newval
end
local list = {}
for k, v in sorted_pairs(map) do
if v == true then
insert(list, dump(k))
else
insert(list, ("%s (alias of %s)"):format(dump(k), dump(v)))
end
end
-- If the parameter is not required then put "or empty" at the end of the list, to avoid implying the parameter is actually required.
if not param.required then
insert(list, "empty")
end
convert_val_error(val, name, list)
end
local function convert_language(val, name, param, allow_etym)
local method, func = param.method
if method == nil or method == "code" then
func, method = get_language_by_code, "code"
elseif method == "name" then
func, method = get_language_by_name, "name"
else
error(format('Internal error: expected `method` for type `language` to be "code", "name" or undefined, but saw %s', dump(method)))
end
local lang = func(val, nil, allow_etym, param.family)
if lang then
return lang
end
local list, links = {"language"}, {"[[WT:LOL]]"}
if allow_etym then
insert(list, "etymology language")
insert(links, "[[WT:LOL/E]]")
end
if param.family then
insert(list, "family")
insert(links, "[[WT:LOF]]")
end
convert_val_error(val, name, concat_list(list, " or ") .. " " .. (method == "name" and "name" or "code"), concat_list(links, " and "))
end
local function convert_number(val, allow_hex)
-- Call tonumber_extended with the `real_finite` flag, which filters out ±infinity and NaN.
-- By default, specify base 10, which prevents 0x hex inputs from being converted.
-- If `allow_hex` is set, then don't give a base, which means 0x hex inputs will work.
local num = tonumber_extended(val, not allow_hex and 10 or nil, "finite_real")
if not num then
return num
end
if match(val, "[eEpP.]") then -- float
track("number not an integer")
end
if find(val, "+", nil, true) then
track("number with +")
end
-- Track various unusual number inputs to determine if it should be restricted to positive integers by default (possibly including 0).
if not is_positive_integer(num) then
track("number not a positive integer")
if num == 0 then
track("number is 0")
elseif not is_integer(num) then
track("number not an integer")
end
end
return num
end
-- TODO: validate parameter specs separately, as it's making the handler code really messy at the moment.
local type_handlers = setmetatable({
["boolean"] = function(val)
return yesno(val, true)
end,
["family"] = function(val, name, param)
local method, func = param.method
if method == nil or method == "code" then
func, method = get_family_by_code, "code"
elseif method == "name" then
func, method = get_family_by_name, "name"
else
error(format('Internal error: expected `method` for type `family` to be "code", "name" or undefined, but saw %s', dump(method)))
end
return func(val) or convert_val_error(val, name, "family " .. method, "[[WT:LOF]]")
end,
["labels"] = function(val, name, param)
-- FIXME: Should be able to pass in a parse_err function.
return split_labels_on_comma(val)
end,
["form of tags"] = function(val, name, param)
return split_tags_on_ampersand(val)
end,
["language"] = function(val, name, param)
return convert_language(val, name, param, true)
end,
["full language"] = convert_language,
["number"] = function(val, name, param)
local allow_hex = param.allow_hex
if allow_hex and allow_hex ~= true then
error(format(
'Internal error: expected `allow_hex` for type `number` to be of type "boolean" or undefined, but saw %s',
dump(allow_hex)
))
end
local num = convert_number(val, allow_hex)
if param.set then
-- Don't pass in "number" here; otherwise no checking will happen.
num = check_set(num, name, param)
end
if num then
return num
end
convert_val_error(val, name, (allow_hex and "decimal or hexadecimal " or "") .. "number")
end,
["range"] = function(val, name, param)
local allow_hex = param.allow_hex
if allow_hex and allow_hex ~= true then
error(format(
'Internal error: expected `allow_hex` for type `range` to be of type "boolean" or undefined, but saw %s',
dump(allow_hex)
))
end
-- Pattern ensures leading minus signs are accounted for.
local m1, m2 = match(val, "^(%s*%S.-)%-(%s*%S.*)")
if m1 then
m1 = convert_number(m1, allow_hex)
if m1 then
m2 = convert_number(m2, allow_hex)
if m2 then
return {m1, m2}
end
end
end
-- Try `val` if it couldn't be split into a range, and return a range of `val` to `val` if possible.
local num = convert_number(val, allow_hex)
if num then
return {num, num}
end
convert_val_error(val, name, (allow_hex and "decimal or hexadecimal " or "") .. "number or a hyphen-separated range of two numbers")
end,
["parameter"] = function(val, name, param)
-- Use the `no_trim` option, as any trimming will have already been done.
return scribunto_parameter_key(val, true)
end,
["qualifier"] = function(val, name, param)
return {val}
end,
["references"] = function(val, name, param)
return parse_references(val, make_parse_err(val, name))
end,
["genders"] = function(val, name, param)
if not val:find("[,<]") then
return {{spec = val}}
end
-- NOTE: We don't pass in allow_space_around_comma. Consistent with other comma-separated types, there shouldn't
-- be spaces around the comma.
return parse_gender_and_number_spec {
spec = val,
parse_err = make_parse_err(val, name),
allow_multiple = true,
}
end,
["script"] = function(val, name, param)
local method, func = param.method
if method == nil or method == "code" then
func, method = get_script_by_code, "code"
elseif method == "name" then
func, method = get_script_by_name, "name"
else
error(format('Internal error: expected `method` for type `script` to be "code", "name" or undefined, but saw %s', dump(method)))
end
return func(val) or convert_val_error(val, name, "script " .. method, "[[WT:LOS]]")
end,
["string"] = function(val, name, param) -- To be removed as unnecessary.
track("string")
return val
end,
-- TODO: add support for resolving to unsupported titles.
-- TODO: split this into "page name" (i.e. internal) and "link target" (i.e. external as well), which is more intuitive.
["title"] = function(val, name, param)
local namespace = param.namespace
if namespace == nil then
namespace = 0
else
local valid_type = type(namespace) ~= "number" and 'of type "number" or undefined' or
not namespaces[namespace] and "a valid namespace number" or
nil
if valid_type then
error(format('Internal error: expected `namespace` for type `title` to be %s, but saw %s', valid_type, dump(namespace)))
end
end
-- Decode entities. WARNING: mw.title.makeTitle must be called with `decoded` (as it doesn't decode) and mw.title.new must be called with `val` (as it does decode, so double-decoding needs to be avoided).
local decoded, prefix, title = decode_entities(val), param.prefix
-- If the input is a fragment, treat the title as the current title with the input fragment.
if sub(decoded, 1, 1) == "#" then
-- If prefix is "force", only get the current title if it's in the specified namespace. current_title includes the namespace prefix.
if current_namespace == nil then
local current_title = mw_title.getCurrentTitle()
current_title_text, current_namespace = current_title.prefixedText, current_title.namespace
end
if not (prefix == "force" and namespace ~= current_namespace) then
title = new_title(current_title_text .. val)
end
elseif prefix == "force" then
-- Unconditionally add the namespace prefix (mw.title.makeTitle).
title = make_title(namespace, decoded)
elseif prefix == "full override" then
-- The first input prefix will be used as an override (mw.title.new). This can be a namespace or interwiki prefix.
title = new_title(val, namespace)
elseif prefix == nil or prefix == "namespace override" then
-- Only allow namespace prefixes to override. Interwiki prefixes therefore need to be treated as plaintext (e.g. "el:All topics" with namespace 14 returns "el:Category:All topics", but we want "Category:el:All topics" instead; if the former is really needed, then the input ":el:Category:All topics" will work, as the initial colon overrides the namespace). mw.title.new can take namespace names as well as numbers in the second argument, and will throw an error if the input isn't a valid namespace, so this can be used to determine if a prefix is for a namespace, since mw.title.new will return successfully only if there's either no prefix or the prefix is for a valid namespace (in which case we want the override).
local success
success, title = pcall(new_title, val, match(decoded, "^.-%f[:]") or namespace)
-- Otherwise, get the title with mw.title.makeTitle, which unconditionally adds the namespace prefix, but behaves like mw.title.new if the namespace is 0.
if not success then
title = make_title(namespace, decoded)
end
else
error(format('Internal error: expected `prefix` for type `title` to be "force", "full override", "namespace override" or undefined, but saw %s', dump(prefix)))
end
local allow_external = param.allow_external
if allow_external == true then
return title or convert_val_error(val, name, "Wiktionary or external page title")
elseif not allow_external then
return title and is_internal_title(title) and title or convert_val_error(val, name, "Wiktionary page title")
end
error(format('Internal error: expected `allow_external` for type `title` to be of type "boolean" or undefined, but saw %s', dump(allow_external)))
end,
["Wikimedia language"] = function(val, name, param)
local fallback = param.fallback
if fallback == true then
return get_wm_lang_by_code_with_fallback(val) or convert_val_error(val, name, "Wikimedia language or language code")
elseif not fallback then
return get_wm_lang_by_code(val) or convert_val_error(val, name, "Wikimedia language code")
end
error(format('Internal error: expected `fallback` for type `Wikimedia language` to be of type "boolean" or undefined, but saw %s', dump(fallback)))
end,
}, {
-- TODO: decode HTML entities in all input values. Non-trivial to implement, because we need to avoid any downstream functions decoding the output from this module, which would be double-decoding. Note that "title" has this implemented already, and it needs to have both the raw input and the decoded input to avoid double-decoding by me.title.new, so any implementation can't be as simple as decoding in __call then passing the result to the handler.
__call = function(self, val, name, param, param_type, default)
local val_type = type(val)
-- TODO: check this for all possible parameter types.
if val_type == param_type then
return val
elseif val_type ~= "string" then
local expected = "string"
if default and (param_type == "boolean" or param_type == "number") then
expected = param_type .. " or " .. expected
end
error(format(
"Internal error: %sargument %s has the type %s; expected a %s.",
default and (default .. " for ") or "", name, dump(val_type), expected
))
end
local func = self[param_type]
if func == nil then
error(format("Internal error: %s is not a recognized parameter type.", dump(param_type)))
end
return func(val, name, param)
end
})
--[==[ func: export.convert_val(val, name, param)
Convert a parameter value according to the associated specs listed in the `params` table passed to
[[Module:parameters]]. `val` is the value to convert for a parameter whose name is `name` (used only in error messages).
`param` is the spec (the value part of the `params` table for the parameter). In place of passing in the parameter name,
`name` can be a function that throws an error, displaying the specified message along with the parameter name and value.
This function processes all the conversion-related fields in `param`, including `type`, `set`, `sublist`, `convert`,
etc. It returns the converted value.
]==]
local function convert_val(val, name, param, default)
local param_type = param.type or "string"
-- If param.type is a function, resolve it to a recognized type.
if is_callable(param_type) then
param_type = param_type(val)
end
local convert, sublist = param.convert, param.sublist
-- `val` might not be a string if it's the default value.
if sublist and type(val) == "string" then
local retlist, set = {}, param.set
if convert then
local thisindex, thisval, insval, parse_err = 0
if is_callable(name) then
-- We assume the passed-in error function in `name` already shows the parameter name and raw value.
function parse_err(msg)
name(format("%s: item #%s=%s",
msg_with_processed(msg, thisval, insval), thisindex, thisval)
)
end
else
function parse_err(msg)
error(format("%s: item #%s=%s of parameter %s=%s",
msg_with_processed(msg, thisval, insval), thisindex, thisval, name, val)
)
end
end
for v in split_sublist(val, name, sublist) do
thisindex, thisval = thisindex + 1, v
if set then
v = check_set(v, name, param, param_type)
end
insert(retlist, convert(type_handlers(v, name, param, param_type, default), parse_err))
end
else
for v in split_sublist(val, name, sublist) do
if set then
v = check_set(v, name, param, param_type)
end
insert(retlist, type_handlers(v, name, param, param_type, default))
end
end
return retlist
elseif param.set then
val = check_set(val, name, param, param_type)
end
local retval = type_handlers(val, name, param, param_type, default)
if convert then
local parse_err
if is_callable(name) then
-- We assume the passed-in error function in `name` already shows the parameter name and raw value.
if retval == val then
-- This is an optimization to avoid creating a closure. The second arm works correctly even
-- when retval == val.
parse_err = name
else
function parse_err(msg)
name(msg_with_processed(msg, val, retval))
end
end
else
function parse_err(msg)
error(format("%s: parameter %s=%s", msg_with_processed(msg, val, retval), name, val))
end
end
retval = convert(retval, parse_err)
end
-- If `sublist` is set but the input wasn't a string, return `retval` as a one-item list.
if sublist then
retval = {retval}
end
return retval
end
export.convert_val = convert_val -- used by [[Module:parameter utilities]]
local function unknown_param(name, val, args_unknown)
track("unknown parameters")
args_unknown[name] = val
return args_unknown
end
local function check_string_param_modifier(param_type, name, tag)
if param_type and not (param_type == "string" or param_type == "parameter" or is_callable(param_type)) then
internal_process_error(
"%s cannot be set unless %s is set to %s (the default), %s or a function: parameter %s has the type %s.",
tag, "type", "string", "parameter", name, param_type
)
end
end
local function hole_error(params, name, listname, this, nxt, extra)
-- `process_error` calls `dump` on values to be inserted into
-- error messages, but with numeric lists this causes "numeric"
-- to look like the name of the list rather than a description,
-- as `dump` adds quote marks. Insert it early to avoid this,
-- but add another %s specifier in all other cases, so that
-- actual list names will be displayed properly.
local offset, specifier, starting_from = 0, "%s", ""
local msg = "Item %%d in the list of %s parameters must be given if item %%d is given, because %sthere shouldn't be any gaps due to missing%s parameters."
local specs = {}
if type(listname) == "string" then
specs[2] = listname
elseif type(name) == "number" then
offset = name - 1 -- To get the original parameter.
specifier = "numeric"
-- If the list doesn't start at parameter 1, avoid implying
-- there can't be any gaps in the numeric parameters if
-- some parameter with a lower key is optional.
for j = name - 1, 1, -1 do
local _param = params[j]
if not (_param and _param.required) then
starting_from = format("(starting from parameter %d) ", dump(j + 1))
break
end
end
else
specs[2] = name
end
specs[1] = this + offset -- Absolute index for this item.
insert(specs, nxt + offset) -- Absolute index for the next item.
process_error(format(msg, specifier, starting_from, extra or ""), unpack(specs))
end
local function check_disallow_holes(params, val, name, listname, extra)
for i = 1, val.maxindex do
if val[i] == nil then
hole_error(params, name, listname, i, num_keys(val)[i], extra)
end
end
end
local function handle_holes(params, val, name)
local param = params[name]
local disallow_holes = param.disallow_holes
-- Iterate up the list, and throw an error if a hole is found.
if disallow_holes then
check_disallow_holes(params, val, name, param.list, " or empty")
end
-- Iterate up the list, and throw an error if a hole is found due to a
-- missing parameter, treating empty parameters as part of the list. This
-- applies beyond maxindex if blank arguments are supplied beyond it, so
-- isn't mutually exclusive with `disallow_holes`.
local empty = val.empty
if param.disallow_missing then
if empty then
-- Remove `empty` from `val`, so it doesn't get returned.
val.empty = nil
for i = 1, max(val.maxindex, empty.maxindex) do
if val[i] == nil and not empty[i] then
local keys = extend(num_keys(val), num_keys(empty))
sort(keys)
hole_error(params, name, param.list, i, keys[i])
end
end
-- If there's no table of empty parameters, the check is identical to
-- `disallow_holes`, except that the error message only refers to
-- missing parameters, not missing or empty ones. If `disallow_holes` is
-- also set, there's no point checking again.
elseif not disallow_holes then
check_disallow_holes(params, val, name, param.list)
end
end
-- If `allow_holes` is set, there's nothing left to do.
if param.allow_holes then
-- do nothing
-- Otherwise, remove any holes: `pairs` won't work, as it's unsorted, and
-- iterating from 1 to `maxindex` times out with inputs like |100000000000=,
-- so use num_keys to get a list of numerical keys sorted from lowest to
-- highest, then iterate up the list, moving each value in `val` to the
-- lowest unused positive integer key. This also avoids the need to create a
-- new table. If `disallow_holes` is specified, then there can't be any
-- holes in the list, so there's no reason to check again; this doesn't
-- apply to `disallow_missing`, however.
else
if not disallow_holes then
local keys, i = num_keys(val), 0
while true do
i = i + 1
local key = keys[i]
if key == nil then
break
elseif i ~= key then
track("holes compressed")
val[i], val[key] = val[key], nil
end
end
end
-- Some code depends on only numeric params being present when no holes are
-- allowed (e.g. by checking for the presence of arguments using next()), so
-- remove `maxindex`.
val.maxindex = nil
end
end
local function maybe_flatten(params, val, name)
local param = params[name]
if param.flatten then
if param.allow_holes then
process_error("For parameter %s, can't set both `allow_holes` and `flatten`", name)
end
if not param.sublist and param.type ~= "genders" and param.type ~= "labels" and
param.type ~= "references" and param.type ~= "qualifier" and param.type ~= "form of tags" then
process_error("For parameter %s, can only set `flatten` along with `sublist` or a list-generating type", name)
end
-- Do the flattening ourselves rather than calling flatten() in [[Module:table]], which will attempt to
-- flatten non-list objects like title objects, and cause an error in the process.
-- FIXME: We should do this in-place if possible.
local newlist = {}
for _, sublist in ipairs(val) do
for _, item in ipairs(sublist) do
insert(newlist, item)
end
end
val = newlist
end
return val
end
-- If both `template_default` and `default` are given, `template_default` takes precedence, but only on the template or
-- module page. This means a different default can be specified for the template or module page example. However,
-- `template_default` doesn't apply if any args are set, which helps (somewhat) with examples on documentation pages
-- transcluded into the template page. HACK: We still run into problems on documentation pages transcluded into the
-- template page when pagename= is set. Check this on the assumption that pagename= is fairly standard.
local function convert_default_val(name, param, pagename_set, any_args_set, add_empty_sublist)
if not pagename_set then
local val = param.template_default
if val ~= nil and not any_args_set and is_own_page() then
return convert_val(val, name, param, "template default")
end
end
local val = param.default
if val ~= nil then
return convert_val(val, name, param, "default")
-- Sublist parameters should return an empty table if not given, but only do
-- this if the parameter isn't also a list (in which case it will already
-- be an empty table).
-- FIXME: do this once all modules that pass in a sublist parameter treat an empty sublist identically to a nil argument; some currently do things based on the fact an argument exists at all.
-- elseif add_empty_sublist and param.sublist then
--return {}
end
end
--[==[
Process arguments with a given list of parameters. Return a table containing the processed arguments. The `args`
parameter specifies the arguments to be processed; they are the arguments you might retrieve from
{frame:getParent().args} (the template arguments) or in some cases {frame.args} (the invocation arguments). The `params`
parameter specifies a list of valid parameters, and consists of a table. If an argument is encountered that is not in
the parameter table, an error is thrown.
The structure of the `params` table is as described above in the intro comment.
'''WARNING:''' The `params` table is destructively modified to save memory. Nonetheless, different keys can share the
same value objects in memory without causing problems.
The `return_unknown` parameter, if set to {true}, prevents the function from triggering an error when it comes across an
argument with a name that it doesn't recognise. Instead, the return value is a pair of values: the first is the
processed arguments as usual, while the second contains all the unrecognised arguments that were left unprocessed. This
allows you to do multi-stage processing, where the entire set of arguments that a template should accept is not known at
once. For example, an inflection-table might do some generic processing on some arguments, but then defer processing of
the remainder to the function that handles a specific inflectional type.
]==]
function export.process(args, params, return_unknown)
-- Process parameters for specific properties
local args_new, args_unknown, any_args_set, required, patterns, list_args, index_list, args_placeholders, placeholders_n = {}
-- TODO: memoize the processing of each unique `param` value, since it's common for the same value to be used for many parameter names.
for name, param in pairs(params) do
validate_name(name, "parameter names")
if param ~= true then
local spec_type = type(param)
if type(param) ~= "table" then
internal_process_error(
"spec for parameter %s must be a table of specs or the value true, but found %s.",
name, spec_type ~= "boolean" and spec_type or param
)
end
-- Populate required table, and make sure aliases aren't set to required.
if param.required then
if required == nil then
required = {}
end
required[name] = true
end
local listname, alias_of = param.list, param.alias_of
if alias_of then
validate_name(alias_of, "the alias_of field of parameter ", name)
if alias_of == name then
internal_process_error(
"parameter %s cannot be an alias of itself.",
name
)
end
local main_param = params[alias_of]
-- Check that the alias_of is set to a valid parameter.
if not (main_param == true or type(main_param) == "table") then
internal_process_error(
"parameter %s is an alias of an invalid parameter.",
name
)
end
validate_alias_options(param, name, main_param, alias_of)
-- Aliases can't be lists unless the canonical parameter is also a list.
if listname and (main_param == true or not main_param.list) then
internal_process_error(
"list parameter %s is set as an alias of %s, which is not a list parameter.", name, alias_of
)
-- Can't be an alias of an alias.
elseif main_param ~= true then
local main_alias_of = main_param.alias_of
if main_alias_of ~= nil then
internal_process_error(
"alias_of cannot be set to another alias: parameter %s is set as an alias of %s, which is in turn an alias of %s. Set alias_of for %s to %s.",
name, alias_of, main_alias_of, name, main_alias_of
)
end
end
end
local replaced_by = param.replaced_by
if replaced_by then -- replaced_by can be `false`, which is OK
validate_name(replaced_by, "the replaced_by field of parameter ", name)
if replaced_by == name then
internal_process_error(
"parameter %s cannot be replaced by itself.",
name
)
end
local main_param = params[replaced_by]
-- Check that the replaced_by is set to a valid parameter.
if not (main_param == true or type(main_param) == "table") then
internal_process_error(
"parameter %s is set to be replaced by an invalid parameter.",
name
)
end
-- Can't be a replaced-by of a replaced-by.
if main_param ~= true then
local main_replaced_by = main_param.replaced_by
if main_replaced_by ~= nil then
internal_process_error(
"replaced_by cannot be set to another replaced-by parameter: parameter %s is set as replaced by %s, which is in turn replaced by %s. Set replaced_by for %s to %s.",
name, replaced_by, main_replaced_by, name, main_replaced_by
)
end
end
if param.instead ~= nil then
internal_process_error("the `instead` tag can only be given when `replaced_by` is set to `false`.")
end
elseif replaced_by == false then
if param.instead ~= nil and type(param.instead) ~= "string" then
internal_process_error(
"the `instead` tag must be a string, but saw %s.",
param.instead
)
end
end
if replaced_by ~= nil then
if param.reason ~= nil and type(param.reason) ~= "string" then
internal_process_error(
"the `reason` tag must be a string, but saw %s.",
param.reason
)
end
end
if listname then
if not alias_of then
local key = name
if type(name) == "string" then
key = gsub(name, "\1", "")
end
local list_arg = {maxindex = 0}
args_new[key] = list_arg
if list_args == nil then
list_args = {}
end
list_args[key] = list_arg
end
local list_type = type(listname)
if list_type == "string" then
-- If the list property is a string, then it represents the name
-- to be used as the prefix for list items. This is for use with lists
-- where the first item is a numbered parameter and the
-- subsequent ones are named, such as 1, pl2, pl3.
patterns = save_pattern(name, listname, patterns or {})
elseif listname ~= true then
internal_process_error(
"list field for parameter %s must be a boolean, string or undefined, but saw a %s.",
name, list_type
)
elseif type(name) == "number" then
if index_list ~= nil then
internal_process_error(
"only one numeric parameter can be a list, unless the list property is a string."
)
end
-- If the name is a number, then all indexed parameters from
-- this number onwards go in the list.
index_list = name
else
patterns = save_pattern(name, name, patterns or {})
end
if find(name, "\1", nil, true) then
if args_placeholders then
placeholders_n = placeholders_n + 1
args_placeholders[placeholders_n] = name
else
args_placeholders, placeholders_n = {name}, 1
end
end
end
end
end
--Process required changes to `params`.
if args_placeholders then
for i = 1, placeholders_n do
local name = args_placeholders[i]
params[gsub(name, "\1", "")], params[name] = params[name], nil
end
end
-- Process the arguments
for name, val in pairs(args) do
any_args_set = true
validate_name(name, "argument names", nil, true)
-- Guaranteeing that all values are strings avoids issues with type coercion being inconsistent between functions.
local val_type = type(val)
if val_type ~= "string" then
internal_process_error(
"argument %s has the type %s; all arguments must be strings.",
name, val_type
)
end
local orig_name, raw_type, index, canonical = name, type(name)
if raw_type == "number" then
if index_list and name >= index_list then
index = name - index_list + 1
name = index_list
end
elseif patterns then
-- Does this argument name match a pattern?
for pattern, pname in next, patterns do
index = match(name, pattern)
-- It matches, so store the parameter name and the
-- numeric index extracted from the argument name.
if index then
index = tonumber(index)
name = pname
break
end
end
end
local param = params[name]
-- If the argument is not in the list of parameters, store it in a separate list.
if not param then
args_unknown = unknown_param(name, val, args_unknown or {})
elseif param == true then
canonical = orig_name
val = php_trim(val)
if val ~= "" then
-- If the parameter is duplicated, throw an error.
if args_new[name] ~= nil then
process_error(
"Parameter %s has been entered more than once. This is probably because a parameter alias has been used.",
canonical
)
end
args_new[name] = val
end
else
if param.replaced_by == false then
process_error(
("Parameter %%s has been removed and is no longer valid%s.%s"):format(
param.reason and ", " .. param.reason or "",
param.instead and " Instead, " .. param.instead .. "." or ""),
name
)
elseif param.replaced_by then
process_error(
("Parameter %%s has been replaced by %%s%s."):format(
param.reason and ", " .. param.reason or ""),
name, param.replaced_by
)
end
if param.deprecated then
track("deprecated parameter", name)
end
if param.require_index then
-- Disallow require_index for numeric parameter names, as this doesn't make sense.
if raw_type == "number" then
internal_process_error(
"cannot set require_index for numeric parameter %s.",
name
)
-- If a parameter without the trailing index was found, and
-- require_index is set on the param, treat it
-- as if it isn't recognized.
elseif not index then
args_unknown = unknown_param(name, val, args_unknown or {})
end
end
-- Check that separate_no_index is not being used with a numeric parameter.
if param.separate_no_index then
if raw_type == "number" then
internal_process_error(
"cannot set separate_no_index for numeric parameter %s.",
name
)
elseif type(param.alias_of) == "number" then
internal_process_error(
"cannot set separate_no_index for parameter %s, as it is an alias of numeric parameter %s.",
name, param.alias_of
)
end
end
-- If no index was found, use 1 as the default index.
-- This makes list parameters like g, g2, g3 put g at index 1.
-- If `separate_no_index` is set, then use 0 as the default instead.
if not index and param.list then
index = param.separate_no_index and 0 or 1
end
-- Normalize to the canonical parameter name. If it's a list, but the alias is not, then determine the index.
local raw_name = param.alias_of
if raw_name then
raw_type = type(raw_name)
if raw_type == "number" then
name = raw_name
local main_param = params[raw_name]
if main_param ~= true and main_param.list then
if not index then
index = param.separate_no_index and 0 or 1
end
canonical = raw_name + index - 1
else
canonical = raw_name
end
else
name = gsub(raw_name, "\1", "")
local main_param = params[name]
if not index and main_param ~= true and main_param.list then
index = param.separate_no_index and 0 or 1
end
if not index or index == 0 then
canonical = name
elseif name == raw_name then
canonical = name .. index
else
canonical = gsub(raw_name, "\1", index)
end
end
else
canonical = orig_name
end
-- Only recognize demo parameters if this is the current template or module's
-- page, or its documentation page.
if param.demo and not is_own_page("include_documentation") then
args_unknown = unknown_param(name, val, args_unknown or {})
end
-- Remove leading and trailing whitespace unless no_trim is true.
if param.no_trim then
check_string_param_modifier(param.type, name, "no_trim")
else
val = php_trim(val)
end
-- Empty string is equivalent to nil unless allow_empty is true.
if param.allow_empty then
check_string_param_modifier(param.type, name, "allow_empty")
elseif val == "" then
-- If `disallow_missing` is set, keep track of empty parameters
-- via the `empty` field in `arg`, which will be used by the
-- `disallow_missing` check. This will be deleted before
-- returning.
if index and param.disallow_missing then
local arg = args_new[name]
local empty = arg.empty
if empty == nil then
empty = {maxindex = 0}
arg.empty = empty
end
empty[index] = true
if index > empty.maxindex then
empty.maxindex = index
end
end
val = nil
end
-- Allow boolean false.
if val ~= nil then
-- Convert to proper type if necessary.
local main_param = params[raw_name]
if main_param ~= true then
val = convert_val(val, orig_name, main_param or param)
end
-- Mark it as no longer required, as it is present.
if required then
required[name] = nil
end
-- Store the argument value.
if index then
local arg = args_new[name]
-- If the parameter is duplicated, throw an error.
if arg[index] ~= nil then
process_error(
"Parameter %s has been entered more than once. This is probably because a list parameter has been entered without an index and with index 1 at the same time, or because a parameter alias has been used.",
canonical
)
end
arg[index] = val
-- Store the highest index we find.
local maxindex = arg.maxindex
if index > maxindex then
maxindex = index
end
if arg[0] ~= nil then
arg.default, arg[0] = arg[0], nil
if maxindex < 1 then
maxindex = 1
end
end
arg.maxindex = maxindex
if not params[name].list then
args_new[name] = val
-- Don't store index 0, as it's a proxy for the default.
elseif index > 0 then
arg[index] = val
end
else
-- If the parameter is duplicated, throw an error.
if args_new[name] ~= nil then
process_error(
"Parameter %s has been entered more than once. This is probably because a parameter alias has been used.",
canonical
)
end
if not raw_name then
args_new[name] = val
else
local main_param = params[raw_name]
if main_param ~= true and main_param.list then
local main_arg = args_new[raw_name]
main_arg[1] = val
-- Store the highest index we find.
if main_arg.maxindex < 1 then
main_arg.maxindex = 1
end
else
args_new[raw_name] = val
end
end
end
end
end
end
-- Remove holes in any list parameters if needed. This must be handled
-- straight after the previous loop, as any instances of `empty` need to be
-- converted to nil.
if list_args then
for name, val in next, list_args do
handle_holes(params, val, name)
end
end
-- If the current page is the template which invoked this Lua instance, then ignore the `require` flag, as it
-- means we're viewing the template directly. Required parameters sometimes have a `template_default` key set,
-- which gets used in such cases as a demo.
-- Note: this won't work on other pages in the Template: namespace (including the /documentation subpage),
-- or if the #invoke: is on a page in another namespace.
local pagename_set = args_new.pagename
-- Handle defaults.
for name, param in pairs(params) do
if param ~= true then
local arg_new = args_new[name]
if arg_new == nil then
args_new[name] = convert_default_val(name, param, pagename_set, any_args_set, true)
elseif param.list and arg_new[1] == nil then
local default_val = convert_default_val(name, param, pagename_set, any_args_set)
if default_val ~= nil then
arg_new[1] = default_val
if arg_new.maxindex == 0 then
arg_new.maxindex = 1
end
end
end
end
end
-- Flatten nested lists if called for. This must come after setting the default.
if list_args then
for name, val in next, list_args do
args_new[name] = maybe_flatten(params, val, name)
end
end
-- The required table should now be empty.
-- If any parameters remain, throw an error, unless we're on the current template or module's page.
if required and next(required) ~= nil and not is_own_page() then
params_list_error(required, "required")
-- Return the arguments table.
-- If there are any unknown parameters, throw an error, unless return_unknown is set, in which case return args_unknown as a second return value.
elseif return_unknown then
return args_new, args_unknown or {}
elseif args_unknown and next(args_unknown) ~= nil then
params_list_error(args_unknown, "not used by this template")
end
return args_new
end
return export
c23kzesggrlowmn06oii7zu1bbzht4t
Modul:etymology
828
11468
373474
281091
2026-09-10T15:20:16Z
SNN95
2113
kemaskini
373474
Scribunto
text/plain
local export = {}
-- For testing
local force_cat = false
local debug_track_module = "Module:debug/track"
local languages_module = "Module:languages"
local links_module = "Module:links"
local pron_qualifier_module = "Module:pron qualifier"
local table_module = "Module:table"
local utilities_module = "Module:utilities"
local concat = table.concat
local insert = table.insert
local new_title = mw.title.new
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function format_categories(...)
format_categories = require(utilities_module).format_categories
return format_categories(...)
end
local function format_qualifiers(...)
format_qualifiers = require(pron_qualifier_module).format_qualifiers
return format_qualifiers(...)
end
local function full_link(...)
full_link = require(links_module).full_link
return full_link(...)
end
local function get_language_data_module_name(...)
get_language_data_module_name = require(languages_module).getDataModuleName
return get_language_data_module_name(...)
end
local function get_link_page(...)
get_link_page = require(links_module).get_link_page
return get_link_page(...)
end
local function language_link(...)
language_link = require(links_module).language_link
return language_link(...)
end
local function serial_comma_join(...)
serial_comma_join = require(table_module).serialCommaJoin
return serial_comma_join(...)
end
local function shallow_copy(...)
shallow_copy = require(table_module).shallowCopy
return shallow_copy(...)
end
local function track(page, code)
local tracking_page = "etymology/" .. page
debug_track(tracking_page)
if code then
debug_track(tracking_page .. "/" .. code)
end
end
local function join_segs(segs, conj)
if not segs[2] then
return segs[1]
elseif conj == "and" or conj == "or" then
return serial_comma_join(segs, {conj = conj})
end
local sep
if conj == "," or conj == ";" then
sep = conj .. " "
elseif conj == "/" then
sep = "/"
elseif conj == "~" then
sep = " ~ "
elseif conj then
error(("Internal error: Unrecognized conjunction \"%s\""):format(conj))
else
error(("Internal error: No value supplied for conjunction"):format(conj))
end
return concat(segs, sep)
end
-- Returns true if `lang` is the same as `source`, or a variety of it.
local function lang_is_source(lang, source)
return lang:getCode() == source:getCode() or lang:hasParent(source)
end
--[==[
Format one or more links as specified in `termobjs`, a list of term objects of the format accepted by `full_link()` in
[[Module:links]], additionally with optional qualifiers, labels and references. `conj` is used to join multiple terms
and must be specified if there is more than one term. `template_name` is the template name used in debug tracking and
must be specified. Optional `sourcetext` is text to prepend to the concatenated terms, separated by a space if the
concatenated terms are non-empty (which is always the case unless there is a single term with the value "-"). If
`qualifiers_labels_on_outside` is given, any qualifiers, labels or references specified in the first term go on the
outside of (i.e before) `sourcetext`; otherwise they will end up on the inside.
]==]
function export.format_links(termobjs, conj, template_name, sourcetext, qualifiers_labels_on_outside)
if not template_name then
error("Internal error: Must specify `template_name` to format_links()")
end
for i, termobj in ipairs(termobjs) do
if termobj.lang:hasType("family") or termobj.lang:getFamilyCode() == "qfa-sub" then
if termobj.term and termobj.term ~= "-" then
debug_track(template_name .. "/family-with-term")
end
termobj.term = "-"
end
if termobj.term == "-" then
--[=[
[[Special:WhatLinksHere/Wiktionary:Tracking/cognate/no-term]]
[[Special:WhatLinksHere/Wiktionary:Tracking/derived/no-term]]
[[Special:WhatLinksHere/Wiktionary:Tracking/borrowed/no-term]]
[[Special:WhatLinksHere/Wiktionary:Tracking/calque/no-term]]
]=]
debug_track(template_name .. "/no-term")
termobjs[i] = i == 1 and sourcetext or ""
else
if i == 1 and qualifiers_labels_on_outside and sourcetext then
termobj.pretext = sourcetext .. " "
sourcetext = nil
end
termobjs[i] = (i == 1 and sourcetext and sourcetext .. " " or "") ..
full_link(termobj, "term", nil, "show qualifiers")
end
end
return join_segs(termobjs, conj)
end
function export.get_display_and_cat_name(source, raw)
local display, cat_name
if source:getCode() == "und" then
display = "tidak ditentukan"
cat_name = "bahasa lain"
elseif source:getCode() == "mul" then
display = raw and "rentas bahasa" or "[[w:Translingualisme|rentas bahasa]]"
cat_name = "Rentas bahasa"
elseif source:getCode() == "mul-tax" then
display = raw and "taxonomic name" or "[[w:Tatanama biologi|nama taksonomi]]"
cat_name = "taxonomic names"
else
display = raw and source:getCanonicalName() or source:makeWikipediaLink()
cat_name = source:getDisplayForm()
end
return display, cat_name
end
function export.insert_source_cat_get_display(data)
local categories, lang, source = data.categories, data.lang, data.source
local display, cat_name = export.get_display_and_cat_name(source, data.raw)
if lang and not data.nocat then
-- Add the category, but only if there is a current language
if not categories then
categories = {}
end
local langname = lang:getFullName()
-- If `lang` is an etym-only language, we need to check both it and its parent full language against `source`.
-- Otherwise if e.g. `lang` is Medieval Latin and `source` is Latin, we'll end up wrongly constructing a
-- category 'Latin terms derived from Latin'.
insert(categories, "Istilah pinjaman balik bahasa " .. langname .. (
lang_is_source(lang, source) and cat_name or
" " .. (data.borrowing_type or "istilah terbitan") .. " daripada " .. cat_name
))
end
return display, categories
end
function export.format_source(data)
local lang, sort_key = data.lang, data.sort_key
-- [[Special:WhatLinksHere/Wiktionary:Tracking/etymology/sortkey]]
if sort_key then
track("sortkey")
end
local display, categories = export.insert_source_cat_get_display(data)
if lang and not data.nocat then
-- Format categories, but only if there is a current language; {{cog}} currently gets no categories
categories = format_categories(categories, lang, sort_key, nil, data.force_cat or force_cat)
else
categories = ""
end
return "<span class=\"etyl\">" .. display .. categories .. "</span>"
end
--[==[
Format sources for etymology templates such as {{tl|bor}}, {{tl|der}}, {{tl|inh}} and {{tl|cog}}. There may potentially
be more than one source language (except currently {{tl|inh}}, which doesn't support it because it doesn't really
make sense). In that case, all but the last source language is linked to the first term, but only if there is such a
term and this linking makes sense, i.e. either (1) the term page exists after stripping diacritics according to the
source language in question, or (2) the result of stripping diacritics according to the source language in question
results in a different page from the same process applied with the last source language. For example, {{m|ru|соля́нка}}
will link to [[солянка]] but {{m|en|соля́нка}} will link to [[соля́нка]] with an accent, and since they are different
pages, the use of English as a non-final source with term 'соля́нка' will link to [[соля́нка]] even though it doesn't
exist, on the assumption that it is merely a redlink that might exist. If none of the above criteria apply, a non-final
source language will be linked to the Wikipedia entry for the language, just as final source languages always are.
`data` contains the following fields:
* `lang`: The destination language object into which the terms were borrowed, inherited or otherwise derived. Used for
categorization and can be nil, as with {{tl|cog}}.
* `sources`: List of source objects. Most commonly there is only one. If there are multiple, the non-final ones are
handled specially; see above.
* `terms`: List of term objects. Most commonly there is only one. If there are multiple source objects as well as
multiple term objects, the non-final source objects link to the first term object.
* `sort_key`: Sort key for categories. Usually nil.
* `categories`: Categories to add to the page. Additional categories may be added to `categories` based on the source
languages ('''in which case `categories` is destructively modified'''). If `lang` is nil, no categories will be
added.
* `nocat`: Don't add any categories to the page.
* `sourceconj`: Conjunction used to separate multiple source languages. Defaults to {"and"}. Currently recognized
values are `and`, `or`, `,`, `;`, `/` and `~`.
* `borrowing_type`: Borrowing type used in categories, such as {"learned borrowings"}. Defaults to {"terms derived"}.
* `force_cat`: Force category generation on non-mainspace pages.
]==]
function export.format_sources(data)
local lang, sources, terms, borrowing_type, sort_key, categories, nocat =
data.lang, data.sources, data.terms, data.borrowing_type, data.sort_key, data.categories, data.nocat
local term1, sources_n, source_segs = terms[1], #sources, {}
local final_link_page
local term1_term, term1_sc = term1.term, term1.sc
if sources_n > 1 and term1_term and term1_term ~= "-" then
final_link_page = get_link_page(term1_term, sources[sources_n], term1_sc)
end
for i, source in ipairs(sources) do
local seg, display_term
if i < sources_n and term1_term and term1_term ~= "-" then
local link_page = get_link_page(term1_term, source, term1_sc)
display_term = (link_page ~= final_link_page) or (link_page and not not new_title(link_page):getContent())
end
-- TODO: if the display forms or transliterations are different, display the terms separately.
if display_term then
local display, this_cats = export.insert_source_cat_get_display{
lang = lang,
source = source,
borrowing_type = borrowing_type,
raw = true,
categories = categories,
nocat = nocat,
}
seg = language_link {
lang = source,
term = term1_term,
alt = display,
tr = "-",
}
if lang and not nocat then
-- Format categories, but only if there is a current language; {{cog}} currently gets no categories
this_cats = format_categories(this_cats, lang, sort_key, nil, data.force_cat or force_cat)
else
this_cats = ""
end
seg = "<span class=\"etyl\">" .. seg .. this_cats .. "</span>"
else
seg = export.format_source{
lang = lang,
source = source,
borrowing_type = borrowing_type,
sort_key = sort_key,
categories = categories,
nocat = nocat,
}
end
insert(source_segs, seg)
end
return join_segs(source_segs, data.sourceconj or "and")
end
-- Internal implementation of {{cognate}}/{{cog}} template.
function export.format_cognate(data)
return export.format_derived {
sources = data.sources,
terms = data.terms,
sort_key = data.sort_key,
sourceconj = data.sourceconj,
conj = data.conj,
template_name = "cognate",
force_cat = data.force_cat,
}
end
--[==[
Internal implementation of {{derived}}/{{der}} template. This dispThis is called externally from [[Module:affix]],
[[Module:affixusex]] and [[Module:see]] and needs to support qualifiers, labels and references on the outside
of the sources for use by those modules.
`data` contains the following fields:
* `lang`: The destination language object into which the terms were derived. Used for categorization and can be nil, as
with {{tl|cog}}; in this case, no categories are added.
* `sources`: List of source objects. Most commonly there is only one. If there are multiple, the non-final ones are
handled specially; see `format_sources()`.
* `terms`: List of term objects. Most commonly there is only one. If there are multiple source objects as well as
multiple term objects, the non-final source objects link to the first term object.
* `conj`: Conjunction used to separate multiple terms. '''Required'''. Currently recognized values are `and`, `or`, `,`,
`;`, `/` and `~`.
* `sourceconj`: Conjunction used to separate multiple source languages. Defaults to {"and"}. Currently recognized
values are as for `conj` above.
* `qualifiers_labels_on_outside`: If specified, any qualifiers, labels or references in the first term in `terms` will
be displayed on the outside of (before) the source language(s) in `sources`. Normally this should be specified if
there is only one term possible in `terms`.
* `template_name`: Name of the template invoking this function. Must be specified. Only used for tracking pages.
* `sort_key`: Sort key for categories. Usually nil.
* `categories`: Categories to add to the page. Additional categories may be added to `categories` based on the source
languages ('''in which case `categories` is destructively modified'''). If `lang` is nil, no categories will be
added.
* `nocat`: Don't add any categories to the page.
* `borrowing_type`: Borrowing type used in categories, such as {"learned borrowings"}. Defaults to {"terms derived"}.
* `force_cat`: Force category generation on non-mainspace pages.
]==]
function export.format_derived(data)
local terms = data.terms
local sourcetext = export.format_sources(data)
return export.format_links(terms, data.conj, data.template_name, sourcetext, data.qualifiers_labels_on_outside)
end
function export.insert_borrowed_cat(categories, lang, source)
if lang_is_source(lang, source) then
return
end
-- If both are the same, we want e.g. [[:Category:English terms borrowed back into English]] not
-- [[:Category:English terms borrowed from English]]; the former is inserted automatically by format_source().
-- The second parameter here doesn't matter as it only affects `display`, which we don't use.
insert(categories, "Istilah bahasa " .. lang:getFullName() .. " dipinjam daripada " .. select(2, export.get_display_and_cat_name(source, "raw")))
end
-- Internal implementation of {{borrowed}}/{{bor}} template.
function export.format_borrowed(data)
local categories = {}
if not data.nocat then
local lang = data.lang
for _, source in ipairs(data.sources) do
export.insert_borrowed_cat(categories, lang, source)
end
end
data = shallow_copy(data)
data.categories = categories
return export.format_links(data.terms, data.conj, "borrowed", export.format_sources(data))
end
do
-- Generate the non-ancestor error message.
local function show_language(lang)
local retval = ("%s (%s)"):format(lang:makeCategoryLink(), lang:getCode())
if lang:hasType("etymology-only") then
retval = retval .. (" (an etymology-only language whose regular parent is %s)"):format(
show_language(lang:getParent()))
end
return retval
end
-- Check that `lang` has `otherlang` (which may be an etymology-only language) as an ancestor. Throw an error if
-- not. When `lang` is a family, verifies that `otherlang` is a language in that family.
function export.check_ancestor(lang, otherlang)
-- When `lang` is a family, verify `otherlang` is in that family or in its parent family.
if lang.hasType and lang:hasType("family") then
local family_code = lang:getCode()
local function in_family_code(fcode, other)
if not fcode or fcode == "" then return false end
if other.inFamily and other:inFamily(fcode) then return true end
if other.getFamilyCode and other:getFamilyCode() == fcode then return true end
return false
end
local in_family = in_family_code(family_code, otherlang)
if not in_family then
local parent_code
if lang.getParent then
local parent_family = lang:getParent()
if parent_family and parent_family.getCode then
parent_code = parent_family:getCode()
end
end
if not parent_code and family_code:find("-", 1, true) then
parent_code = family_code:match("^(.+)-[^-]+$")
end
if parent_code then
in_family = in_family_code(parent_code, otherlang)
end
end
if not in_family then
local other_display = (otherlang.getCanonicalName and otherlang:getCanonicalName()) or (otherlang.getCode and otherlang:getCode()) or tostring(otherlang)
local fam_display = (lang.getCanonicalName and lang:getCanonicalName()) or family_code
error(("%s bukan dalam keluarga %s; leluhur diwarisi di bawah keluarga mestilah bahasa dalam keluarga tersebut atau keluarga induknya.")
:format(other_display, fam_display))
end
return
end
-- FIXME: I don't know if this function works correctly with etym-only languages in `lang`. I have fixed up
-- the module link code appropriately (June 2024) but the remaining logic is untouched.
if lang:hasAncestor(otherlang) then
-- [[Special:WhatLinksHere/Wiktionary:Tracking/etymology/variety]]
-- Track inheritance from varieties of Latin that shouldn't have any descendants (everything except Old Latin, Classical Latin and Vulgar Latin).
if otherlang:getFullCode() == "la" then
otherlang = otherlang:getCode()
if not (otherlang == "itc-ola" or otherlang == "la-cla" or otherlang == "la-vul") then
track("bad ancestor", otherlang)
end
end
return
end
local ancestors, postscript = lang:getAncestors()
local etym_module_link = lang:hasType("etymology-only") and "[[Module:etymology languages/data]] or " or ""
local module_link = "[[" .. get_language_data_module_name(lang:getFullCode()) .. "]]"
if not ancestors[1] then
postscript = show_language(lang) .. " tidak mempunyai leluhur."
else
local ancestor_list = {}
for _, ancestor in ipairs(ancestors) do
insert(ancestor_list, show_language(ancestor))
end
postscript = ("Leluhur bahasa%s kepada %s %s %s."):format(
ancestors[2] and "" or "", lang:getCanonicalName(),
ancestors[2] and "adalah" or "adalah", concat(ancestor_list, " dan "))
end
error(("%s tidak ditetapkan sebagai luluhur kepada %s dalam %s%s. %s")
:format(show_language(otherlang), show_language(lang), etym_module_link, module_link, postscript))
end
end
-- Internal implementation of {{inherited}}/{{inh}} template.
function export.format_inherited(data)
local lang, terms, nocat = data.lang, data.terms, data.nocat
local source = terms[1].lang
local categories = {}
if not nocat then
insert(categories,"Istilah bahasa " .. lang:getFullName() .. " yang diwarisi daripada " .. source:getCanonicalName())
end
export.check_ancestor(lang, source)
data = shallow_copy(data)
data.categories = categories
data.source = source
return export.format_links(terms, data.conj, "diwarisi", export.format_source(data))
end
-- Internal implementation of "misc variant" templates such as {{abbrev}}, {{clipping}}, {{reduplication}} and the like.
function export.format_misc_variant(data)
local lang, notext, terms, cats, parts = data.lang, data.notext, data.terms, data.cats, {}
if not notext then
insert(parts, data.text)
end
if terms[1] then
if not notext then
-- FIXME: If term is given as '-', we should consider displaying just "Clipping" not "Clipping of".
insert(parts, " " .. (data.oftext or "kepada"))
end
local termparts = {}
-- Make links out of all the parts.
for _, termobj in ipairs(terms) do
local result
if termobj.lang then
result = export.format_derived {
lang = lang,
terms = {termobj},
sources = termobj.termlangs or {termobj.lang},
template_name = "misc_variant",
qualifiers_labels_on_outside = true,
force_cat = data.force_cat,
}
else
termobj.lang = lang
result = export.format_links({termobj}, nil, "misc_variant")
end
table.insert(termparts, result)
end
local linktext = join_segs(termparts, data.conj)
if not notext and linktext ~= "" then
insert(parts, " ")
end
insert(parts, linktext)
end
local categories = {}
if not data.nocat and cats then
for _, cat in ipairs(cats) do
insert(categories, cat .. " bahasa " .. lang:getFullName())
end
end
if categories[1] then
insert(parts, format_categories(categories, lang, data.sort_key, nil, data.force_cat or force_cat))
end
return concat(parts)
end
-- Implementation of miscellaneous templates such as {{unknown}} and {{onomatopoeia}} that have no associated terms.
function export.format_misc_variant_no_term(data)
local parts = {}
if not data.notext then
insert(parts, data.title)
end
if not data.nocat and data.cat then
local lang, categories = data.lang, {}
insert(categories, data.cat .. " bahasa " .. lang:getFullName())
insert(parts, format_categories(categories, lang, data.sort_key, nil, data.force_cat or force_cat))
end
return concat(parts)
end
return export
c4uc0495uhh5q5stpbxw2f4wp3uzcrn
373515
373474
2026-09-11T02:38:53Z
SNN95
2113
kemaskini
373515
Scribunto
text/plain
local export = {}
-- For testing
local force_cat = false
local debug_track_module = "Module:debug/track"
local languages_module = "Module:languages"
local links_module = "Module:links"
local pron_qualifier_module = "Module:pron qualifier"
local table_module = "Module:table"
local utilities_module = "Module:utilities"
local concat = table.concat
local insert = table.insert
local new_title = mw.title.new
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function format_categories(...)
format_categories = require(utilities_module).format_categories
return format_categories(...)
end
local function format_qualifiers(...)
format_qualifiers = require(pron_qualifier_module).format_qualifiers
return format_qualifiers(...)
end
local function full_link(...)
full_link = require(links_module).full_link
return full_link(...)
end
local function get_language_data_module_name(...)
get_language_data_module_name = require(languages_module).getDataModuleName
return get_language_data_module_name(...)
end
local function get_link_page(...)
get_link_page = require(links_module).get_link_page
return get_link_page(...)
end
local function language_link(...)
language_link = require(links_module).language_link
return language_link(...)
end
local function serial_comma_join(...)
serial_comma_join = require(table_module).serialCommaJoin
return serial_comma_join(...)
end
local function shallow_copy(...)
shallow_copy = require(table_module).shallowCopy
return shallow_copy(...)
end
local function track(page, code)
local tracking_page = "etymology/" .. page
debug_track(tracking_page)
if code then
debug_track(tracking_page .. "/" .. code)
end
end
local function join_segs(segs, conj)
if not segs[2] then
return segs[1]
elseif conj == "and" or conj == "or" then
return serial_comma_join(segs, {conj = conj})
end
local sep
if conj == "," or conj == ";" then
sep = conj .. " "
elseif conj == "/" then
sep = "/"
elseif conj == "~" then
sep = " ~ "
elseif conj then
error(("Internal error: Unrecognized conjunction \"%s\""):format(conj))
else
error(("Internal error: No value supplied for conjunction"):format(conj))
end
return concat(segs, sep)
end
-- Returns true if `lang` is the same as `source`, or a variety of it.
local function lang_is_source(lang, source)
return lang:getCode() == source:getCode() or lang:hasParent(source)
end
--[==[
Format one or more links as specified in `termobjs`, a list of term objects of the format accepted by `full_link()` in
[[Module:links]], additionally with optional qualifiers, labels and references. `conj` is used to join multiple terms
and must be specified if there is more than one term. `template_name` is the template name used in debug tracking and
must be specified. Optional `sourcetext` is text to prepend to the concatenated terms, separated by a space if the
concatenated terms are non-empty (which is always the case unless there is a single term with the value "-"). If
`qualifiers_labels_on_outside` is given, any qualifiers, labels or references specified in the first term go on the
outside of (i.e before) `sourcetext`; otherwise they will end up on the inside.
]==]
function export.format_links(termobjs, conj, template_name, sourcetext, qualifiers_labels_on_outside)
if not template_name then
error("Internal error: Must specify `template_name` to format_links()")
end
for i, termobj in ipairs(termobjs) do
if termobj.lang:hasType("family") or termobj.lang:getFamilyCode() == "qfa-sub" then
if termobj.term and termobj.term ~= "-" then
debug_track(template_name .. "/family-with-term")
end
termobj.term = "-"
end
if termobj.term == "-" then
--[=[
[[Special:WhatLinksHere/Wiktionary:Tracking/cognate/no-term]]
[[Special:WhatLinksHere/Wiktionary:Tracking/derived/no-term]]
[[Special:WhatLinksHere/Wiktionary:Tracking/borrowed/no-term]]
[[Special:WhatLinksHere/Wiktionary:Tracking/calque/no-term]]
]=]
debug_track(template_name .. "/no-term")
termobjs[i] = i == 1 and sourcetext or ""
else
if i == 1 and qualifiers_labels_on_outside and sourcetext then
termobj.pretext = sourcetext .. " "
sourcetext = nil
end
termobjs[i] = (i == 1 and sourcetext and sourcetext .. " " or "") ..
full_link(termobj, "term", nil, "show qualifiers")
end
end
return join_segs(termobjs, conj)
end
function export.get_display_and_cat_name(source, raw)
local display, cat_name
if source:getCode() == "und" then
display = "tidak ditentukan"
cat_name = "bahasa lain"
elseif source:getCode() == "mul" then
display = raw and "rentas bahasa" or "[[w:Translingualisme|rentas bahasa]]"
cat_name = "Rentas bahasa"
elseif source:getCode() == "mul-tax" then
display = raw and "taxonomic name" or "[[w:Tatanama biologi|nama taksonomi]]"
cat_name = "taxonomic names"
else
display = raw and source:getCanonicalName() or source:makeWikipediaLink()
cat_name = source:getDisplayForm()
end
return display, cat_name
end
function export.insert_source_cat_get_display(data)
local categories, lang, source = data.categories, data.lang, data.source
local display, cat_name = export.get_display_and_cat_name(source, data.raw)
if lang and not data.nocat then
-- Add the category, but only if there is a current language
if not categories then
categories = {}
end
local langname = lang:getFullName()
-- If `lang` is an etym-only language, we need to check both it and its parent full language against `source`.
-- Otherwise if e.g. `lang` is Medieval Latin and `source` is Latin, we'll end up wrongly constructing a
-- category 'Latin terms derived from Latin'.
insert(categories, "Perkataan pinjaman balik bahasa " .. langname .. (
lang_is_source(lang, source) and cat_name or
" " .. (data.borrowing_type or "perkataan terbitan") .. " daripada " .. cat_name
))
end
return display, categories
end
function export.format_source(data)
local lang, sort_key = data.lang, data.sort_key
-- [[Special:WhatLinksHere/Wiktionary:Tracking/etymology/sortkey]]
if sort_key then
track("sortkey")
end
local display, categories = export.insert_source_cat_get_display(data)
if lang and not data.nocat then
-- Format categories, but only if there is a current language; {{cog}} currently gets no categories
categories = format_categories(categories, lang, sort_key, nil, data.force_cat or force_cat)
else
categories = ""
end
return "<span class=\"etyl\">" .. display .. categories .. "</span>"
end
--[==[
Format sources for etymology templates such as {{tl|bor}}, {{tl|der}}, {{tl|inh}} and {{tl|cog}}. There may potentially
be more than one source language (except currently {{tl|inh}}, which doesn't support it because it doesn't really
make sense). In that case, all but the last source language is linked to the first term, but only if there is such a
term and this linking makes sense, i.e. either (1) the term page exists after stripping diacritics according to the
source language in question, or (2) the result of stripping diacritics according to the source language in question
results in a different page from the same process applied with the last source language. For example, {{m|ru|соля́нка}}
will link to [[солянка]] but {{m|en|соля́нка}} will link to [[соля́нка]] with an accent, and since they are different
pages, the use of English as a non-final source with term 'соля́нка' will link to [[соля́нка]] even though it doesn't
exist, on the assumption that it is merely a redlink that might exist. If none of the above criteria apply, a non-final
source language will be linked to the Wikipedia entry for the language, just as final source languages always are.
`data` contains the following fields:
* `lang`: The destination language object into which the terms were borrowed, inherited or otherwise derived. Used for
categorization and can be nil, as with {{tl|cog}}.
* `sources`: List of source objects. Most commonly there is only one. If there are multiple, the non-final ones are
handled specially; see above.
* `terms`: List of term objects. Most commonly there is only one. If there are multiple source objects as well as
multiple term objects, the non-final source objects link to the first term object.
* `sort_key`: Sort key for categories. Usually nil.
* `categories`: Categories to add to the page. Additional categories may be added to `categories` based on the source
languages ('''in which case `categories` is destructively modified'''). If `lang` is nil, no categories will be
added.
* `nocat`: Don't add any categories to the page.
* `sourceconj`: Conjunction used to separate multiple source languages. Defaults to {"and"}. Currently recognized
values are `and`, `or`, `,`, `;`, `/` and `~`.
* `borrowing_type`: Borrowing type used in categories, such as {"learned borrowings"}. Defaults to {"terms derived"}.
* `force_cat`: Force category generation on non-mainspace pages.
]==]
function export.format_sources(data)
local lang, sources, terms, borrowing_type, sort_key, categories, nocat =
data.lang, data.sources, data.terms, data.borrowing_type, data.sort_key, data.categories, data.nocat
local term1, sources_n, source_segs = terms[1], #sources, {}
local final_link_page
local term1_term, term1_sc = term1.term, term1.sc
if sources_n > 1 and term1_term and term1_term ~= "-" then
final_link_page = get_link_page(term1_term, sources[sources_n], term1_sc)
end
for i, source in ipairs(sources) do
local seg, display_term
if i < sources_n and term1_term and term1_term ~= "-" then
local link_page = get_link_page(term1_term, source, term1_sc)
display_term = (link_page ~= final_link_page) or (link_page and not not new_title(link_page):getContent())
end
-- TODO: if the display forms or transliterations are different, display the terms separately.
if display_term then
local display, this_cats = export.insert_source_cat_get_display{
lang = lang,
source = source,
borrowing_type = borrowing_type,
raw = true,
categories = categories,
nocat = nocat,
}
seg = language_link {
lang = source,
term = term1_term,
alt = display,
tr = "-",
}
if lang and not nocat then
-- Format categories, but only if there is a current language; {{cog}} currently gets no categories
this_cats = format_categories(this_cats, lang, sort_key, nil, data.force_cat or force_cat)
else
this_cats = ""
end
seg = "<span class=\"etyl\">" .. seg .. this_cats .. "</span>"
else
seg = export.format_source{
lang = lang,
source = source,
borrowing_type = borrowing_type,
sort_key = sort_key,
categories = categories,
nocat = nocat,
}
end
insert(source_segs, seg)
end
return join_segs(source_segs, data.sourceconj or "and")
end
-- Internal implementation of {{cognate}}/{{cog}} template.
function export.format_cognate(data)
return export.format_derived {
sources = data.sources,
terms = data.terms,
sort_key = data.sort_key,
sourceconj = data.sourceconj,
conj = data.conj,
template_name = "cognate",
force_cat = data.force_cat,
}
end
--[==[
Internal implementation of {{derived}}/{{der}} template. This dispThis is called externally from [[Module:affix]],
[[Module:affixusex]] and [[Module:see]] and needs to support qualifiers, labels and references on the outside
of the sources for use by those modules.
`data` contains the following fields:
* `lang`: The destination language object into which the terms were derived. Used for categorization and can be nil, as
with {{tl|cog}}; in this case, no categories are added.
* `sources`: List of source objects. Most commonly there is only one. If there are multiple, the non-final ones are
handled specially; see `format_sources()`.
* `terms`: List of term objects. Most commonly there is only one. If there are multiple source objects as well as
multiple term objects, the non-final source objects link to the first term object.
* `conj`: Conjunction used to separate multiple terms. '''Required'''. Currently recognized values are `and`, `or`, `,`,
`;`, `/` and `~`.
* `sourceconj`: Conjunction used to separate multiple source languages. Defaults to {"and"}. Currently recognized
values are as for `conj` above.
* `qualifiers_labels_on_outside`: If specified, any qualifiers, labels or references in the first term in `terms` will
be displayed on the outside of (before) the source language(s) in `sources`. Normally this should be specified if
there is only one term possible in `terms`.
* `template_name`: Name of the template invoking this function. Must be specified. Only used for tracking pages.
* `sort_key`: Sort key for categories. Usually nil.
* `categories`: Categories to add to the page. Additional categories may be added to `categories` based on the source
languages ('''in which case `categories` is destructively modified'''). If `lang` is nil, no categories will be
added.
* `nocat`: Don't add any categories to the page.
* `borrowing_type`: Borrowing type used in categories, such as {"learned borrowings"}. Defaults to {"terms derived"}.
* `force_cat`: Force category generation on non-mainspace pages.
]==]
function export.format_derived(data)
local terms = data.terms
local sourcetext = export.format_sources(data)
return export.format_links(terms, data.conj, data.template_name, sourcetext, data.qualifiers_labels_on_outside)
end
function export.insert_borrowed_cat(categories, lang, source)
if lang_is_source(lang, source) then
return
end
-- If both are the same, we want e.g. [[:Category:English terms borrowed back into English]] not
-- [[:Category:English terms borrowed from English]]; the former is inserted automatically by format_source().
-- The second parameter here doesn't matter as it only affects `display`, which we don't use.
insert(categories, "Perkataan bahasa " .. lang:getFullName() .. " dipinjam daripada " .. select(2, export.get_display_and_cat_name(source, "raw")))
end
-- Internal implementation of {{borrowed}}/{{bor}} template.
function export.format_borrowed(data)
local categories = {}
if not data.nocat then
local lang = data.lang
for _, source in ipairs(data.sources) do
export.insert_borrowed_cat(categories, lang, source)
end
end
data = shallow_copy(data)
data.categories = categories
return export.format_links(data.terms, data.conj, "borrowed", export.format_sources(data))
end
do
-- Generate the non-ancestor error message.
local function show_language(lang)
local retval = ("%s (%s)"):format(lang:makeCategoryLink(), lang:getCode())
if lang:hasType("etymology-only") then
retval = retval .. (" (an etymology-only language whose regular parent is %s)"):format(
show_language(lang:getParent()))
end
return retval
end
-- Check that `lang` has `otherlang` (which may be an etymology-only language) as an ancestor. Throw an error if
-- not. When `lang` is a family, verifies that `otherlang` is a language in that family.
function export.check_ancestor(lang, otherlang)
-- When `lang` is a family, verify `otherlang` is in that family or in its parent family.
if lang.hasType and lang:hasType("family") then
local family_code = lang:getCode()
local function in_family_code(fcode, other)
if not fcode or fcode == "" then return false end
if other.inFamily and other:inFamily(fcode) then return true end
if other.getFamilyCode and other:getFamilyCode() == fcode then return true end
return false
end
local in_family = in_family_code(family_code, otherlang)
if not in_family then
local parent_code
if lang.getParent then
local parent_family = lang:getParent()
if parent_family and parent_family.getCode then
parent_code = parent_family:getCode()
end
end
if not parent_code and family_code:find("-", 1, true) then
parent_code = family_code:match("^(.+)-[^-]+$")
end
if parent_code then
in_family = in_family_code(parent_code, otherlang)
end
end
if not in_family then
local other_display = (otherlang.getCanonicalName and otherlang:getCanonicalName()) or (otherlang.getCode and otherlang:getCode()) or tostring(otherlang)
local fam_display = (lang.getCanonicalName and lang:getCanonicalName()) or family_code
error(("%s bukan dalam keluarga %s; leluhur diwarisi di bawah keluarga mestilah bahasa dalam keluarga tersebut atau keluarga induknya.")
:format(other_display, fam_display))
end
return
end
-- FIXME: I don't know if this function works correctly with etym-only languages in `lang`. I have fixed up
-- the module link code appropriately (June 2024) but the remaining logic is untouched.
if lang:hasAncestor(otherlang) then
-- [[Special:WhatLinksHere/Wiktionary:Tracking/etymology/variety]]
-- Track inheritance from varieties of Latin that shouldn't have any descendants (everything except Old Latin, Classical Latin and Vulgar Latin).
if otherlang:getFullCode() == "la" then
otherlang = otherlang:getCode()
if not (otherlang == "itc-ola" or otherlang == "la-cla" or otherlang == "la-vul") then
track("bad ancestor", otherlang)
end
end
return
end
local ancestors, postscript = lang:getAncestors()
local etym_module_link = lang:hasType("etymology-only") and "[[Module:etymology languages/data]] or " or ""
local module_link = "[[" .. get_language_data_module_name(lang:getFullCode()) .. "]]"
if not ancestors[1] then
postscript = show_language(lang) .. " tidak mempunyai leluhur."
else
local ancestor_list = {}
for _, ancestor in ipairs(ancestors) do
insert(ancestor_list, show_language(ancestor))
end
postscript = ("Leluhur bahasa%s kepada %s %s %s."):format(
ancestors[2] and "" or "", lang:getCanonicalName(),
ancestors[2] and "adalah" or "adalah", concat(ancestor_list, " dan "))
end
error(("%s tidak ditetapkan sebagai luluhur kepada %s dalam %s%s. %s")
:format(show_language(otherlang), show_language(lang), etym_module_link, module_link, postscript))
end
end
-- Internal implementation of {{inherited}}/{{inh}} template.
function export.format_inherited(data)
local lang, terms, nocat = data.lang, data.terms, data.nocat
local source = terms[1].lang
local categories = {}
if not nocat then
insert(categories,"Perkataan bahasa " .. lang:getFullName() .. " yang diwarisi daripada " .. source:getCanonicalName())
end
export.check_ancestor(lang, source)
data = shallow_copy(data)
data.categories = categories
data.source = source
return export.format_links(terms, data.conj, "diwarisi", export.format_source(data))
end
-- Internal implementation of "misc variant" templates such as {{abbrev}}, {{clipping}}, {{reduplication}} and the like.
function export.format_misc_variant(data)
local lang, notext, terms, cats, parts = data.lang, data.notext, data.terms, data.cats, {}
if not notext then
insert(parts, data.text)
end
if terms[1] then
if not notext then
-- FIXME: If term is given as '-', we should consider displaying just "Clipping" not "Clipping of".
insert(parts, " " .. (data.oftext or "kepada"))
end
local termparts = {}
-- Make links out of all the parts.
for _, termobj in ipairs(terms) do
local result
if termobj.lang then
result = export.format_derived {
lang = lang,
terms = {termobj},
sources = termobj.termlangs or {termobj.lang},
template_name = "misc_variant",
qualifiers_labels_on_outside = true,
force_cat = data.force_cat,
}
else
termobj.lang = lang
result = export.format_links({termobj}, nil, "misc_variant")
end
table.insert(termparts, result)
end
local linktext = join_segs(termparts, data.conj)
if not notext and linktext ~= "" then
insert(parts, " ")
end
insert(parts, linktext)
end
local categories = {}
if not data.nocat and cats then
for _, cat in ipairs(cats) do
insert(categories, cat .. " bahasa " .. lang:getFullName())
end
end
if categories[1] then
insert(parts, format_categories(categories, lang, data.sort_key, nil, data.force_cat or force_cat))
end
return concat(parts)
end
-- Implementation of miscellaneous templates such as {{unknown}} and {{onomatopoeia}} that have no associated terms.
function export.format_misc_variant_no_term(data)
local parts = {}
if not data.notext then
insert(parts, data.title)
end
if not data.nocat and data.cat then
local lang, categories = data.lang, {}
insert(categories, data.cat .. " bahasa " .. lang:getFullName())
insert(parts, format_categories(categories, lang, data.sort_key, nil, data.force_cat or force_cat))
end
return concat(parts)
end
return export
0h36p7ml3hx04yho9a8d8prw9aftg16
373540
373515
2026-09-11T09:16:45Z
Hakimi97
2668
373540
Scribunto
text/plain
local export = {}
-- For testing
local force_cat = false
local debug_track_module = "Module:debug/track"
local languages_module = "Module:languages"
local links_module = "Module:links"
local pron_qualifier_module = "Module:pron qualifier"
local table_module = "Module:table"
local utilities_module = "Module:utilities"
local concat = table.concat
local insert = table.insert
local new_title = mw.title.new
local function debug_track(...)
debug_track = require(debug_track_module)
return debug_track(...)
end
local function format_categories(...)
format_categories = require(utilities_module).format_categories
return format_categories(...)
end
local function format_qualifiers(...)
format_qualifiers = require(pron_qualifier_module).format_qualifiers
return format_qualifiers(...)
end
local function full_link(...)
full_link = require(links_module).full_link
return full_link(...)
end
local function get_language_data_module_name(...)
get_language_data_module_name = require(languages_module).getDataModuleName
return get_language_data_module_name(...)
end
local function get_link_page(...)
get_link_page = require(links_module).get_link_page
return get_link_page(...)
end
local function language_link(...)
language_link = require(links_module).language_link
return language_link(...)
end
local function serial_comma_join(...)
serial_comma_join = require(table_module).serialCommaJoin
return serial_comma_join(...)
end
local function shallow_copy(...)
shallow_copy = require(table_module).shallowCopy
return shallow_copy(...)
end
local function track(page, code)
local tracking_page = "etymology/" .. page
debug_track(tracking_page)
if code then
debug_track(tracking_page .. "/" .. code)
end
end
local function join_segs(segs, conj)
if not segs[2] then
return segs[1]
elseif conj == "and" or conj == "or" then
return serial_comma_join(segs, {conj = conj})
end
local sep
if conj == "," or conj == ";" then
sep = conj .. " "
elseif conj == "/" then
sep = "/"
elseif conj == "~" then
sep = " ~ "
elseif conj then
error(("Internal error: Unrecognized conjunction \"%s\""):format(conj))
else
error(("Internal error: No value supplied for conjunction"):format(conj))
end
return concat(segs, sep)
end
-- Returns true if `lang` is the same as `source`, or a variety of it.
local function lang_is_source(lang, source)
return lang:getCode() == source:getCode() or lang:hasParent(source)
end
--[==[
Format one or more links as specified in `termobjs`, a list of term objects of the format accepted by `full_link()` in
[[Module:links]], additionally with optional qualifiers, labels and references. `conj` is used to join multiple terms
and must be specified if there is more than one term. `template_name` is the template name used in debug tracking and
must be specified. Optional `sourcetext` is text to prepend to the concatenated terms, separated by a space if the
concatenated terms are non-empty (which is always the case unless there is a single term with the value "-"). If
`qualifiers_labels_on_outside` is given, any qualifiers, labels or references specified in the first term go on the
outside of (i.e before) `sourcetext`; otherwise they will end up on the inside.
]==]
function export.format_links(termobjs, conj, template_name, sourcetext, qualifiers_labels_on_outside)
if not template_name then
error("Internal error: Must specify `template_name` to format_links()")
end
for i, termobj in ipairs(termobjs) do
if termobj.lang:hasType("family") or termobj.lang:getFamilyCode() == "qfa-sub" then
if termobj.term and termobj.term ~= "-" then
debug_track(template_name .. "/family-with-term")
end
termobj.term = "-"
end
if termobj.term == "-" then
--[=[
[[Special:WhatLinksHere/Wiktionary:Tracking/cognate/no-term]]
[[Special:WhatLinksHere/Wiktionary:Tracking/derived/no-term]]
[[Special:WhatLinksHere/Wiktionary:Tracking/borrowed/no-term]]
[[Special:WhatLinksHere/Wiktionary:Tracking/calque/no-term]]
]=]
debug_track(template_name .. "/no-term")
termobjs[i] = i == 1 and sourcetext or ""
else
if i == 1 and qualifiers_labels_on_outside and sourcetext then
termobj.pretext = sourcetext .. " "
sourcetext = nil
end
termobjs[i] = (i == 1 and sourcetext and sourcetext .. " " or "") ..
full_link(termobj, "term", nil, "show qualifiers")
end
end
return join_segs(termobjs, conj)
end
function export.get_display_and_cat_name(source, raw)
local display, cat_name
if source:getCode() == "und" then
display = "tidak ditentukan"
cat_name = "bahasa lain"
elseif source:getCode() == "mul" then
display = raw and "rentas bahasa" or "[[w:Translingualisme|rentas bahasa]]"
cat_name = "Rentas bahasa"
elseif source:getCode() == "mul-tax" then
display = raw and "taxonomic name" or "[[w:Tatanama biologi|nama taksonomi]]"
cat_name = "Nama taksonomi"
else
display = raw and source:getCanonicalName() or source:makeWikipediaLink()
cat_name = source:getDisplayForm()
end
return display, cat_name
end
function export.insert_source_cat_get_display(data)
local categories, lang, source = data.categories, data.lang, data.source
local display, cat_name = export.get_display_and_cat_name(source, data.raw)
if lang and not data.nocat then
-- Add the category, but only if there is a current language
if not categories then
categories = {}
end
local langname = lang:getFullName()
-- If `lang` is an etym-only language, we need to check both it and its parent full language against `source`.
-- Otherwise if e.g. `lang` is Medieval Latin and `source` is Latin, we'll end up wrongly constructing a
-- category 'Latin terms derived from Latin'.
insert(categories, "Perkataan pinjaman balik bahasa " .. langname .. (
lang_is_source(lang, source) and cat_name or
" " .. (data.borrowing_type or "diterbitkan") .. " daripada " .. cat_name
))
end
return display, categories
end
function export.format_source(data)
local lang, sort_key = data.lang, data.sort_key
-- [[Special:WhatLinksHere/Wiktionary:Tracking/etymology/sortkey]]
if sort_key then
track("sortkey")
end
local display, categories = export.insert_source_cat_get_display(data)
if lang and not data.nocat then
-- Format categories, but only if there is a current language; {{cog}} currently gets no categories
categories = format_categories(categories, lang, sort_key, nil, data.force_cat or force_cat)
else
categories = ""
end
return "<span class=\"etyl\">" .. display .. categories .. "</span>"
end
--[==[
Format sources for etymology templates such as {{tl|bor}}, {{tl|der}}, {{tl|inh}} and {{tl|cog}}. There may potentially
be more than one source language (except currently {{tl|inh}}, which doesn't support it because it doesn't really
make sense). In that case, all but the last source language is linked to the first term, but only if there is such a
term and this linking makes sense, i.e. either (1) the term page exists after stripping diacritics according to the
source language in question, or (2) the result of stripping diacritics according to the source language in question
results in a different page from the same process applied with the last source language. For example, {{m|ru|соля́нка}}
will link to [[солянка]] but {{m|en|соля́нка}} will link to [[соля́нка]] with an accent, and since they are different
pages, the use of English as a non-final source with term 'соля́нка' will link to [[соля́нка]] even though it doesn't
exist, on the assumption that it is merely a redlink that might exist. If none of the above criteria apply, a non-final
source language will be linked to the Wikipedia entry for the language, just as final source languages always are.
`data` contains the following fields:
* `lang`: The destination language object into which the terms were borrowed, inherited or otherwise derived. Used for
categorization and can be nil, as with {{tl|cog}}.
* `sources`: List of source objects. Most commonly there is only one. If there are multiple, the non-final ones are
handled specially; see above.
* `terms`: List of term objects. Most commonly there is only one. If there are multiple source objects as well as
multiple term objects, the non-final source objects link to the first term object.
* `sort_key`: Sort key for categories. Usually nil.
* `categories`: Categories to add to the page. Additional categories may be added to `categories` based on the source
languages ('''in which case `categories` is destructively modified'''). If `lang` is nil, no categories will be
added.
* `nocat`: Don't add any categories to the page.
* `sourceconj`: Conjunction used to separate multiple source languages. Defaults to {"and"}. Currently recognized
values are `and`, `or`, `,`, `;`, `/` and `~`.
* `borrowing_type`: Borrowing type used in categories, such as {"learned borrowings"}. Defaults to {"terms derived"}.
* `force_cat`: Force category generation on non-mainspace pages.
]==]
function export.format_sources(data)
local lang, sources, terms, borrowing_type, sort_key, categories, nocat =
data.lang, data.sources, data.terms, data.borrowing_type, data.sort_key, data.categories, data.nocat
local term1, sources_n, source_segs = terms[1], #sources, {}
local final_link_page
local term1_term, term1_sc = term1.term, term1.sc
if sources_n > 1 and term1_term and term1_term ~= "-" then
final_link_page = get_link_page(term1_term, sources[sources_n], term1_sc)
end
for i, source in ipairs(sources) do
local seg, display_term
if i < sources_n and term1_term and term1_term ~= "-" then
local link_page = get_link_page(term1_term, source, term1_sc)
display_term = (link_page ~= final_link_page) or (link_page and not not new_title(link_page):getContent())
end
-- TODO: if the display forms or transliterations are different, display the terms separately.
if display_term then
local display, this_cats = export.insert_source_cat_get_display{
lang = lang,
source = source,
borrowing_type = borrowing_type,
raw = true,
categories = categories,
nocat = nocat,
}
seg = language_link {
lang = source,
term = term1_term,
alt = display,
tr = "-",
}
if lang and not nocat then
-- Format categories, but only if there is a current language; {{cog}} currently gets no categories
this_cats = format_categories(this_cats, lang, sort_key, nil, data.force_cat or force_cat)
else
this_cats = ""
end
seg = "<span class=\"etyl\">" .. seg .. this_cats .. "</span>"
else
seg = export.format_source{
lang = lang,
source = source,
borrowing_type = borrowing_type,
sort_key = sort_key,
categories = categories,
nocat = nocat,
}
end
insert(source_segs, seg)
end
return join_segs(source_segs, data.sourceconj or "and")
end
-- Internal implementation of {{cognate}}/{{cog}} template.
function export.format_cognate(data)
return export.format_derived {
sources = data.sources,
terms = data.terms,
sort_key = data.sort_key,
sourceconj = data.sourceconj,
conj = data.conj,
template_name = "cognate",
force_cat = data.force_cat,
}
end
--[==[
Internal implementation of {{derived}}/{{der}} template. This dispThis is called externally from [[Module:affix]],
[[Module:affixusex]] and [[Module:see]] and needs to support qualifiers, labels and references on the outside
of the sources for use by those modules.
`data` contains the following fields:
* `lang`: The destination language object into which the terms were derived. Used for categorization and can be nil, as
with {{tl|cog}}; in this case, no categories are added.
* `sources`: List of source objects. Most commonly there is only one. If there are multiple, the non-final ones are
handled specially; see `format_sources()`.
* `terms`: List of term objects. Most commonly there is only one. If there are multiple source objects as well as
multiple term objects, the non-final source objects link to the first term object.
* `conj`: Conjunction used to separate multiple terms. '''Required'''. Currently recognized values are `and`, `or`, `,`,
`;`, `/` and `~`.
* `sourceconj`: Conjunction used to separate multiple source languages. Defaults to {"and"}. Currently recognized
values are as for `conj` above.
* `qualifiers_labels_on_outside`: If specified, any qualifiers, labels or references in the first term in `terms` will
be displayed on the outside of (before) the source language(s) in `sources`. Normally this should be specified if
there is only one term possible in `terms`.
* `template_name`: Name of the template invoking this function. Must be specified. Only used for tracking pages.
* `sort_key`: Sort key for categories. Usually nil.
* `categories`: Categories to add to the page. Additional categories may be added to `categories` based on the source
languages ('''in which case `categories` is destructively modified'''). If `lang` is nil, no categories will be
added.
* `nocat`: Don't add any categories to the page.
* `borrowing_type`: Borrowing type used in categories, such as {"learned borrowings"}. Defaults to {"terms derived"}.
* `force_cat`: Force category generation on non-mainspace pages.
]==]
function export.format_derived(data)
local terms = data.terms
local sourcetext = export.format_sources(data)
return export.format_links(terms, data.conj, data.template_name, sourcetext, data.qualifiers_labels_on_outside)
end
function export.insert_borrowed_cat(categories, lang, source)
if lang_is_source(lang, source) then
return
end
-- If both are the same, we want e.g. [[:Category:English terms borrowed back into English]] not
-- [[:Category:English terms borrowed from English]]; the former is inserted automatically by format_source().
-- The second parameter here doesn't matter as it only affects `display`, which we don't use.
insert(categories, "Perkataan bahasa " .. lang:getFullName() .. " dipinjam daripada " .. select(2, export.get_display_and_cat_name(source, "raw")))
end
-- Internal implementation of {{borrowed}}/{{bor}} template.
function export.format_borrowed(data)
local categories = {}
if not data.nocat then
local lang = data.lang
for _, source in ipairs(data.sources) do
export.insert_borrowed_cat(categories, lang, source)
end
end
data = shallow_copy(data)
data.categories = categories
return export.format_links(data.terms, data.conj, "borrowed", export.format_sources(data))
end
do
-- Generate the non-ancestor error message.
local function show_language(lang)
local retval = ("%s (%s)"):format(lang:makeCategoryLink(), lang:getCode())
if lang:hasType("etymology-only") then
retval = retval .. (" (an etymology-only language whose regular parent is %s)"):format(
show_language(lang:getParent()))
end
return retval
end
-- Check that `lang` has `otherlang` (which may be an etymology-only language) as an ancestor. Throw an error if
-- not. When `lang` is a family, verifies that `otherlang` is a language in that family.
function export.check_ancestor(lang, otherlang)
-- When `lang` is a family, verify `otherlang` is in that family or in its parent family.
if lang.hasType and lang:hasType("family") then
local family_code = lang:getCode()
local function in_family_code(fcode, other)
if not fcode or fcode == "" then return false end
if other.inFamily and other:inFamily(fcode) then return true end
if other.getFamilyCode and other:getFamilyCode() == fcode then return true end
return false
end
local in_family = in_family_code(family_code, otherlang)
if not in_family then
local parent_code
if lang.getParent then
local parent_family = lang:getParent()
if parent_family and parent_family.getCode then
parent_code = parent_family:getCode()
end
end
if not parent_code and family_code:find("-", 1, true) then
parent_code = family_code:match("^(.+)-[^-]+$")
end
if parent_code then
in_family = in_family_code(parent_code, otherlang)
end
end
if not in_family then
local other_display = (otherlang.getCanonicalName and otherlang:getCanonicalName()) or (otherlang.getCode and otherlang:getCode()) or tostring(otherlang)
local fam_display = (lang.getCanonicalName and lang:getCanonicalName()) or family_code
error(("%s bukan dalam keluarga %s; leluhur diwarisi di bawah keluarga mestilah bahasa dalam keluarga tersebut atau keluarga induknya.")
:format(other_display, fam_display))
end
return
end
-- FIXME: I don't know if this function works correctly with etym-only languages in `lang`. I have fixed up
-- the module link code appropriately (June 2024) but the remaining logic is untouched.
if lang:hasAncestor(otherlang) then
-- [[Special:WhatLinksHere/Wiktionary:Tracking/etymology/variety]]
-- Track inheritance from varieties of Latin that shouldn't have any descendants (everything except Old Latin, Classical Latin and Vulgar Latin).
if otherlang:getFullCode() == "la" then
otherlang = otherlang:getCode()
if not (otherlang == "itc-ola" or otherlang == "la-cla" or otherlang == "la-vul") then
track("bad ancestor", otherlang)
end
end
return
end
local ancestors, postscript = lang:getAncestors()
local etym_module_link = lang:hasType("etymology-only") and "[[Module:etymology languages/data]] or " or ""
local module_link = "[[" .. get_language_data_module_name(lang:getFullCode()) .. "]]"
if not ancestors[1] then
postscript = show_language(lang) .. " tidak mempunyai leluhur."
else
local ancestor_list = {}
for _, ancestor in ipairs(ancestors) do
insert(ancestor_list, show_language(ancestor))
end
postscript = ("Leluhur bahasa%s kepada %s %s %s."):format(
ancestors[2] and "" or "", lang:getCanonicalName(),
ancestors[2] and "adalah" or "adalah", concat(ancestor_list, " dan "))
end
error(("%s tidak ditetapkan sebagai luluhur kepada %s dalam %s%s. %s")
:format(show_language(otherlang), show_language(lang), etym_module_link, module_link, postscript))
end
end
-- Internal implementation of {{inherited}}/{{inh}} template.
function export.format_inherited(data)
local lang, terms, nocat = data.lang, data.terms, data.nocat
local source = terms[1].lang
local categories = {}
if not nocat then
insert(categories,"Perkataan bahasa " .. lang:getFullName() .. " yang diwariskan daripada " .. source:getCanonicalName())
end
export.check_ancestor(lang, source)
data = shallow_copy(data)
data.categories = categories
data.source = source
return export.format_links(terms, data.conj, "inherited", export.format_source(data))
end
-- Internal implementation of "misc variant" templates such as {{abbrev}}, {{clipping}}, {{reduplication}} and the like.
function export.format_misc_variant(data)
local lang, notext, terms, cats, parts = data.lang, data.notext, data.terms, data.cats, {}
if not notext then
insert(parts, data.text)
end
if terms[1] then
if not notext then
-- FIXME: If term is given as '-', we should consider displaying just "Clipping" not "Clipping of".
insert(parts, " " .. (data.oftext or "bagi"))
end
local termparts = {}
-- Make links out of all the parts.
for _, termobj in ipairs(terms) do
local result
if termobj.lang then
result = export.format_derived {
lang = lang,
terms = {termobj},
sources = termobj.termlangs or {termobj.lang},
template_name = "misc_variant",
qualifiers_labels_on_outside = true,
force_cat = data.force_cat,
}
else
termobj.lang = lang
result = export.format_links({termobj}, nil, "misc_variant")
end
table.insert(termparts, result)
end
local linktext = join_segs(termparts, data.conj)
if not notext and linktext ~= "" then
insert(parts, " ")
end
insert(parts, linktext)
end
local categories = {}
if not data.nocat and cats then
for _, cat in ipairs(cats) do
insert(categories, cat .. " bahasa " .. lang:getFullName())
end
end
if categories[1] then
insert(parts, format_categories(categories, lang, data.sort_key, nil, data.force_cat or force_cat))
end
return concat(parts)
end
-- Implementation of miscellaneous templates such as {{unknown}} and {{onomatopoeia}} that have no associated terms.
function export.format_misc_variant_no_term(data)
local parts = {}
if not data.notext then
insert(parts, data.title)
end
if not data.nocat and data.cat then
local lang, categories = data.lang, {}
insert(categories, data.cat .. " bahasa " .. lang:getFullName())
insert(parts, format_categories(categories, lang, data.sort_key, nil, data.force_cat or force_cat))
end
return concat(parts)
end
return export
8ay1ionfkkiifygir4s1mm9qz4lwgxi
Modul:languages/canonical names
828
11513
373523
346944
2026-09-11T03:05:15Z
SNN95
2113
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373523
Scribunto
text/plain
return {
["'Are'are"] = "alu",
["A'ou"] = "aou",
["A-Hmao"] = "hmd",
["A-Pucikwar"] = "apq",
["Aari"] = "aiw",
["Aasax"] = "aas",
["Aba"] = "utp",
["Abaga"] = "abg",
["Abai"] = "poz-abi",
["Abai Sungai"] = "abf",
["Abanyom"] = "abm",
["Abau"] = "aau",
["Abaza"] = "abq",
["Abenaki"] = "abe",
["Abidji"] = "abi",
["Abinomn"] = "bsa",
["Abipón"] = "axb",
["Abishira"] = "ash",
["Abkhaz"] = "ab",
["Abom"] = "aob",
["Abon"] = "abo",
["Abu"] = "ado",
["Abu'"] = "aah",
["Abua"] = "abn",
["Abui"] = "abz",
["Abun"] = "kgr",
["Abung"] = "abl",
["Abure"] = "abu",
["Abureni"] = "mgj",
["Abé"] = "aba",
["Acatepec Me'phaa"] = "tpx",
["Aceh"] = "ace",
["Achagua"] = "aca",
["Achang"] = "acn",
["Ache"] = "yif",
["Acheron"] = "acz",
["Achi"] = "acr",
["Acholi"] = "ach",
["Achuar"] = "acu",
["Achumawi"] = "acv",
["Acipa Timur"] = "acp",
["Acroá"] = "acs",
["Adai"] = "xad",
["Adang"] = "adn",
["Adangbe"] = "adq",
["Adangme"] = "ada",
["Adap"] = "adp",
["Adasen"] = "tiu",
["Adele"] = "ade",
["Adhola"] = "adh",
["Adi"] = "adi",
["Adioukrou"] = "adj",
["Adithinngithigh"] = "dth",
["Adnyamathanha"] = "adt",
["Adonara"] = "adr",
["Aduge"] = "adu",
["Adzera"] = "adz",
["Adûni"] = "art-adu",
["Aeka"] = "aez",
["Aekyom"] = "awi",
["Aequian"] = "xae",
["Aer"] = "aeq",
["Afade"] = "aal",
["Afar"] = "aa",
["Afitti"] = "aft",
["Afra"] = "ulf",
["Afrihili"] = "afh",
["Afrikaans"] = "af",
["Agarabi"] = "agd",
["Agatu"] = "agc",
["Agawam"] = "alg-aga",
["Aghem"] = "agq",
["Aghu"] = "ahh",
["Aghul"] = "agx",
["Aghwan"] = "xag",
["Agi"] = "aif",
["Agob"] = "kit",
["Agoi"] = "ibm",
["Agta Cagayan Tengah"] = "agt",
["Agta Camarines Norte"] = "abd",
["Agta Casiguran Dumagat"] = "dgc",
["Agta Dicamay"] = "duy",
["Agta Dinapigue"] = "phi-din",
["Agta Dupaningan"] = "duo",
["Agta Gunung Iraya"] = "atl",
["Agta Gunung Iriga"] = "agz",
["Agta Isarog"] = "agk",
["Agta Nagtipunan"] = "phi-nag",
["Agta Pahanan"] = "apf",
["Agta Pulau Alabat"] = "dul",
["Agta Remontado"] = "agv",
["Agta Umiray Dumaget"] = "due",
["Agta Villa Viciosa"] = "dyg",
["Aguacateco"] = "agu",
["Aguano"] = "aga",
["Aguaruna"] = "agr",
["Aguna"] = "aug",
["Agutaynen"] = "agn",
["Agwagwune"] = "yay",
["Ahanta"] = "aha",
["Ahirani"] = "ahr",
["Ahom"] = "aho",
["Ahtna"] = "aht",
["Ahwai"] = "nfd",
["Ai-Cham"] = "aih",
["Aighon"] = "aix",
["Aikanã"] = "tba",
["Aiklep"] = "mwg",
["Aimele"] = "ail",
["Aimol"] = "aim",
["Ainbai"] = "aic",
["Ainu"] = "ain",
["Aiome"] = "aki",
["Airoran"] = "air",
["Aisi"] = "mmq",
["Aiton"] = "aio",
["Aja (Afrika Barat)"] = "ajg",
["Aja (Afrika Timur)"] = "aja",
["Ajawa"] = "ajw",
["Ajië"] = "aji",
["Ajyíninka Apurucayali"] = "cpc",
["Ak"] = "akq",
["Aka (Afrika Tengah)"] = "axk",
["Aka (Sudan)"] = "soh",
["Aka-Bea"] = "abj",
["Aka-Bo"] = "akm",
["Aka-Cari"] = "aci",
["Aka-Kede"] = "akx",
["Aka-Kol"] = "aky",
["Aka-Kora"] = "ack",
["Akan"] = "ak",
["Akar-Bale"] = "acl",
["Akaselem"] = "aks",
["Akatek"] = "knj",
["Akawaio"] = "ake",
["Ake"] = "aik",
["Akebu"] = "keu",
["Akei"] = "tsr",
["Akeu"] = "aeu",
["Akha"] = "ahk",
["Akhvakh"] = "akv",
["Akkadia"] = "akk",
["Aklanon"] = "akl",
["Akolet"] = "akt",
["Akoose"] = "bss",
["Akoye"] = "miw",
["Akpa"] = "akf",
["Akpes"] = "ibe",
["Akrukay"] = "afi",
["Akuku"] = "ayk",
["Akum"] = "aku",
["Akuntsu"] = "aqz",
["Akurio"] = "ako",
["Akuwagel"] = "bey",
["Akwa"] = "akw",
["Akyaung Ari"] = "nqy",
["Al-Sayyid Bedouin Sign Language"] = "syy",
["Alaba"] = "alw",
["Alabama"] = "akz",
["Alago"] = "ala",
["Alagwa"] = "wbj",
["Alak"] = "alk",
["Alamblak"] = "amp",
["Alangan"] = "alj",
["Alapmunte"] = "apv",
["Alawa"] = "alh",
["Alazapa"] = "nai-ala",
["Albanian"] = "sq",
["Albanian Sign Language"] = "sqk",
["Alchuka"] = "tuw-alk",
["Alcozauca Mixtec"] = "xta",
["Alege"] = "alf",
["Aleut"] = "ale",
["Aleut Mednyj"] = "mud",
["Algonquin"] = "alq",
["Algonquin Carolina"] = "crr",
["Ali"] = "aiy",
["Alladian"] = "ald",
["Allar"] = "all",
["Allentiac"] = "sai-all",
["Alngith"] = "aid",
["Alo Phola"] = "ypo",
["Alor"] = "aol",
["Alsea"] = "aes",
["Alta Selatan"] = "agy",
["Alta Utara"] = "aqn",
["Altai Selatan"] = "alt",
["Altai Utara"] = "atv",
["Alu"] = "mte",
["Alugu"] = "aub",
["Alumu-Tesu"] = "aab",
["Alune"] = "alp",
["Alungul"] = "aus-alu",
["Aluo"] = "yna",
["Alur"] = "alz",
["Alutiiq"] = "ems",
["Alutor"] = "alr",
["Alviri-Vidari"] = "avd",
["Alyawarr"] = "aly",
["Ama"] = "amm",
["Amahai"] = "amq",
["Amahuaca"] = "amc",
["Amaimon"] = "ali",
["Amal"] = "aad",
["Amami Ōshima Selatan"] = "ams",
["Amami Ōshima Utara"] = "ryn",
["Amanab"] = "amn",
["Amanayé"] = "ama",
["Amara"] = "aie",
["Amarakaeri"] = "amr",
["Amarasi"] = "aaz",
["Amarizana"] = "awd-ama",
["Amasi"] = "alv-ama",
["Amatlán Zapotec"] = "zpo",
["Amazigh Maghribi"] = "zgh",
["Amba"] = "rwm",
["Ambae Barat"] = "nnd",
["Ambai"] = "amk",
["Ambakich"] = "aew",
["Ambelau"] = "amv",
["Ambele"] = "ael",
["Amblong"] = "alm",
["Ambo"] = "amb",
["Ambrak"] = "aag",
["Ambrym Tenggara"] = "tvk",
["Ambrym Utara"] = "mmg",
["Ambul"] = "apo",
["Ambulas"] = "abt",
["Amdang"] = "amj",
["Amele"] = "aey",
["Amganad Ifugao"] = "ifa",
["Amharic"] = "am",
["Ami"] = "amy",
["Amis"] = "ami",
["Ammon"] = "sem-amm",
["Amo"] = "amo",
["Amol"] = "alx",
["Amondawa"] = "adw",
["Amor"] = "sem-amo",
["Ampanang"] = "apg",
["Amto"] = "amt",
["Amurdag"] = "amg",
["Amuzgo Guerrero"] = "amu",
["Amuzgo Ipalapa"] = "azm",
["Amuzgo San Pedro Amuzgos"] = "azg",
["Ana Tinga Dogon"] = "dti",
["Anaang"] = "anw",
["Anakalangu"] = "akg",
["Anam"] = "pda",
["Anambé"] = "aan",
["Anamgura"] = "imi",
["Anasi"] = "bpo",
["Anauyá"] = "awd-ana",
["Andai"] = "afd",
["Andajin"] = "ajn",
["Andaqui"] = "ana",
["Andarum"] = "aod",
["Andegerebinha"] = "adg",
["Andh"] = "anr",
["Andi"] = "ani",
["Andio"] = "bzb",
["Andjingith"] = "aus-and",
["Andoa"] = "anb",
["Andoque"] = "ano",
["Andoquero"] = "sai-and",
["Andra-Hus"] = "anx",
["Aneityum"] = "aty",
["Anem"] = "anz",
["Aneme Wake"] = "aby",
["Anfillo"] = "myo",
["Angaataha"] = "agm",
["Angaité"] = "aqt",
["Angal"] = "age",
["Angal Enen"] = "aoe",
["Angal Heneng"] = "akh",
["Angami"] = "njm",
["Angevin"] = "roa-ang",
["Angguruk Yali"] = "yli",
["Angika"] = "anp",
["Angkamuthi"] = "avm",
["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",
["Annobon"] = "fab",
["Anong"] = "nun",
["Anor"] = "anj",
["Anserma"] = "ans",
["Ansus"] = "and",
["Antakarinya"] = "ant",
["Anu"] = "anl",
["Anuak"] = "anu",
["Anufo"] = "cko",
["Anuki"] = "aui",
["Anus"] = "auq",
["Anuta"] = "aud",
["Anyi"] = "any",
["Anyin Morofo"] = "mtb",
["Anāl"] = "anm",
["Ao Chungli"] = "njo-jgl",
["Ao Mongsen"] = "njo-mng",
["Aoheng"] = "pni",
["Aore"] = "aor",
["Ap Ma"] = "kbx",
["Apabhramsa"] = "inc-apa",
["Apache Barat"] = "apw",
["Apache Dataran"] = "apk",
["Apalachee"] = "xap",
["Apalaí"] = "apy",
["Apali"] = "ena",
["Apatani"] = "apt",
["Apiaká"] = "api",
["Apinayé"] = "apn",
["Apma"] = "app",
["Apolista"] = "awd-apo",
["Apro"] = "ahp",
["Apurinã"] = "apu",
["Aputai"] = "apx",
["Aquitanian"] = "xaq",
["Arab Algeria"] = "arq",
["Arab Andalusia"] = "xaa",
["Arab Bahrani"] = "abv",
["Arab Chad"] = "shu",
["Arab Cyprus"] = "acy",
["Arab Dhofar"] = "adf",
["Arab Hassaniyah"] = "mey",
["Arab Hijaz"] = "acw",
["Arab Iraq"] = "acm",
["Arab Juba"] = "pga",
["Arab Libya"] = "ayl",
["Arab Maghribi"] = "ary",
["Arab Mesir"] = "arz",
["Arab Mesopotamia Utara"] = "ayp",
["Arab Najdi"] = "ars",
["Arab Oman"] = "acx",
["Arab Selatan Kuno"] = "sem-srb",
["Arab Sudan"] = "apd",
["Arab Syam Selatan"] = "ajp",
["Arab Syam Utara"] = "apc",
["Arab Syihuh"] = "ssh",
["Arab Tajik"] = "abh",
["Arab Teluk"] = "afb",
["Arab Tunisia"] = "aeb",
["Arab Utara Purba"] = "xna",
["Arab Uzbeki"] = "auz",
["Arab Yaman"] = "ayn",
["Arabana"] = "ard",
["Arabela"] = "arl",
["Arabic"] = "ar",
["Aragonese"] = "an",
["Araki"] = "akr",
["Arakwal"] = "rkw",
["Aralle-Tabulahan"] = "atq",
["Aramia"] = "arc",
["Arammba"] = "stk",
["Aranadan"] = "aaf",
["Aranama-Tamique"] = "xrt",
["Aranda Selatan Bawah"] = "axl",
["Arandai"] = "jbj",
["Araona"] = "aro",
["Arapaho"] = "arp",
["Arapaso"] = "arj",
["Arapesh Bumbita"] = "aon",
["Arara-Karo"] = "arr",
["Ararandewára"] = "xaj",
["Araweté"] = "awt",
["Arawum"] = "awm",
["Arbore"] = "arv",
["Archi"] = "aqc",
["Are"] = "mwc",
["Areba"] = "aea",
["Arem"] = "aem",
["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",
["Armenia Kuno"] = "xcl",
["Armenia Pertengahan"] = "axm",
["Armenian"] = "hy",
["Aromania"] = "rup",
["Arop-Lokep"] = "apr",
["Arop-Sissano"] = "aps",
["Arosi"] = "aia",
["Arrernte Barat"] = "are",
["Arrernte Timur"] = "aer",
["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",
["Ashraaf"] = "cus-ash",
["Asháninka"] = "cni",
["Ashéninka Pajonal"] = "cjo",
["Ashéninka Perené"] = "prq",
["Ashéninka Ucayali Selatan"] = "cpy",
["Asi"] = "bno",
["Asilulu"] = "asl",
["Askopan"] = "eiv",
["Asmat Pesisir Casuarina"] = "asc",
["Asmat Tengah"] = "cns",
["Asmat Utara"] = "nks",
["Asmat Yaosakor"] = "asy",
["Asoa"] = "asv",
["Assam Awal"] = "inc-oas",
["Assam Pertengahan"] = "inc-mas",
["Assamese"] = "as",
["Assan"] = "xss",
["Assangori"] = "sjg",
["Assiniboine"] = "asb",
["Asturia"] = "ast",
["Asu"] = "aum",
["Asue Awyu"] = "psa",
["Asumboa"] = "aua",
["Asunción Mixtepec Zapotec"] = "zoo",
["Asuri"] = "asr",
["Asurini Tocantins"] = "asu",
["Asuriní Xingú"] = "asn",
["Ata"] = "atm",
["Atakapa"] = "aqp",
["Atampaya"] = "amz",
["Atanques"] = "cba-ata",
["Atauran"] = "adb",
["Atayal"] = "tay",
["Atemble"] = "ate",
["Ateso"] = "teo",
["Athpare"] = "aph",
["Ati"] = "atk",
["Atikamekw"] = "atj",
["Atohwaim"] = "aqm",
["Atong (Cameroon)"] = "ato",
["Atong (India)"] = "aot",
["Atorada"] = "aox",
["Atsahuaca"] = "atc",
["Atsam"] = "cch",
["Atsugewi"] = "atw",
["Atta Faire"] = "azt",
["Atta Pamplona"] = "att",
["Atta Pudtol"] = "atp",
["Attapady Kurumba"] = "pkr",
["Attié"] = "ati",
["Au"] = "avt",
["Auhelawa"] = "kud",
["Aukan"] = "djk",
["Aulua"] = "aul",
["Aurá"] = "aux",
["Aushi"] = "auh",
["Aushiri"] = "avs",
["Auslan"] = "asf",
["Austral"] = "aut",
["Auwe"] = "smf",
["Auyana"] = "auy",
["Auye"] = "auu",
["Auyokawa"] = "auo",
["Avar"] = "av",
["Avar Kuno"] = "oav",
["Avatime"] = "avn",
["Avau"] = "avb",
["Avava"] = "tmb",
["Avestan"] = "ae",
["Avikam"] = "avi",
["Avokaya"] = "avu",
["Avá-Canoeiro"] = "avv",
["Awa (China)"] = "vwa",
["Awa (New Guinea)"] = "awb",
["Awa-Cuaiquer"] = "kwi",
["Awabakal"] = "awk",
["Awadhi"] = "awa",
["Awadhi Kuno"] = "inc-oaw",
["Awak"] = "awo",
["Awar"] = "aya",
["Awara"] = "awx",
["Awbono"] = "awh",
["Aweer"] = "bob",
["Awera"] = "awr",
["Awetí"] = "awe",
["Awing"] = "azo",
["Awjila"] = "auj",
["Awngi"] = "awn",
["Awngthim"] = "gwm",
["Awtuw"] = "kmn",
["Awu"] = "yiu",
["Awun"] = "aww",
["Awutu"] = "afu",
["Awyi"] = "auw",
["Awyu Edera"] = "awy",
["Awyu Jair"] = "awv",
["Awyu Selatan"] = "aws",
["Awyu Tengah"] = "awu",
["Awyu Utara"] = "yir",
["Axamb"] = "ahb",
["Axi"] = "yix",
["Ayabadhu"] = "ayd",
["Ayautla Mazatec"] = "vmy",
["Ayere"] = "aye",
["Ayerrerenge"] = "axe",
["Ayi"] = "ayq",
["Ayizi"] = "yyz",
["Ayizo"] = "ayb",
["Aymara"] = "ay",
["Ayomán"] = "sai-ayo",
["Ayoreo"] = "ayo",
["Ayta Abenlen"] = "abp",
["Ayta Ambala"] = "abc",
["Ayta Bataan"] = "ayt",
["Ayta Sorsogon"] = "ays",
["Ayu"] = "ayu",
["Azerbaijani"] = "az",
["Azha"] = "aza",
["Azhe"] = "yiz",
["Azoyú Me'phaa"] = "tpc",
["Baa"] = "kwb",
["Baagandji"] = "drl",
["Baali"] = "bcp",
["Baan"] = "bvj",
["Baangi"] = "bqx",
["Baatonum"] = "bba",
["Baba"] = "bbw",
["Babango"] = "bbm",
["Babanki"] = "bbk",
["Babar Utara"] = "bcd",
["Babatana"] = "baa",
["Babine-Witsuwit'en"] = "bcr",
["Babole"] = "bvx",
["Babungo"] = "bav",
["Babuza"] = "bzg",
["Bacama"] = "bcy",
["Bada"] = "bhz",
["Badaga"] = "bfq",
["Badanchi"] = "bau",
["Bade"] = "bde",
["Badeshi"] = "bdz",
["Badimaya"] = "bia",
["Badui"] = "bac",
["Badyara"] = "pbp",
["Baeggu"] = "bvd",
["Baekje"] = "pkc",
["Baelelea"] = "bvc",
["Baenan"] = "sai-bae",
["Baetora"] = "btr",
["Bafanji"] = "bfj",
["Bafaw"] = "bwt",
["Bafia"] = "ksf",
["Bafut"] = "bfd",
["Baga Kaloum"] = "bqf",
["Baga Koga"] = "bgo",
["Baga Manduri"] = "bmd",
["Baga Pokur"] = "bcg",
["Baga Sitemu"] = "bsp",
["Baga Sobané"] = "bsv",
["Bagheli"] = "bfy",
["Bagirmi"] = "bmi",
["Bago-Kusuntu"] = "bqg",
["Bagri"] = "bgq",
["Bagua"] = "sai-bag",
["Bagupi"] = "bpi",
["Bagusa"] = "bqb",
["Bagvalal"] = "kva",
["Baha"] = "yha",
["Bahaaa Isyarat Mauritius"] = "lsy",
["Bahaaa Isyarat Panama"] = "lsp",
["Baham"] = "bdw",
["Bahasa Hitam"] = "art-bsp",
["Bahasa Isyarat Adamorobe"] = "ads",
["Bahasa Isyarat Afghanistan"] = "afg",
["Bahasa Isyarat Afrika Selatan"] = "sfs",
["Bahasa Isyarat Algeria"] = "asp",
["Bahasa Isyarat Amerika"] = "ase",
["Bahasa Isyarat Argentina"] = "aed",
["Bahasa Isyarat Armenia"] = "aen",
["Bahasa Isyarat Austria"] = "asq",
["Bahasa Isyarat Chad"] = "cds",
["Bahasa Isyarat Croatia"] = "csq",
["Bahasa Isyarat Ecuador"] = "ecs",
["Bahasa Isyarat El Salvador"] = "esn",
["Bahasa Isyarat Estonia"] = "eso",
["Bahasa Isyarat Filipina"] = "psp",
["Bahasa Isyarat Finland"] = "fse",
["Bahasa Isyarat Finland-Sweden"] = "fss",
["Bahasa Isyarat Habsyah"] = "eth",
["Bahasa Isyarat Haiphong"] = "haf",
["Bahasa Isyarat Hanoi"] = "hab",
["Bahasa Isyarat Hausa"] = "hsl",
["Bahasa Isyarat Honduras"] = "hds",
["Bahasa Isyarat Hong Kong"] = "hks",
["Bahasa Isyarat Hungary"] = "hsh",
["Bahasa Isyarat Iceland"] = "icl",
["Bahasa Isyarat India"] = "ins",
["Bahasa Isyarat Indonesia"] = "inl",
["Bahasa Isyarat Inuit"] = "iks",
["Bahasa Isyarat Ireland"] = "isg",
["Bahasa Isyarat Israel"] = "isr",
["Bahasa Isyarat Itali"] = "ise",
["Bahasa Isyarat Jamaica"] = "jls",
["Bahasa Isyarat Jepun"] = "jsl",
["Bahasa Isyarat Jhankot"] = "jhs",
["Bahasa Isyarat Jordan"] = "jos",
["Bahasa Isyarat Jumla"] = "jus",
["Bahasa Isyarat Kentish Kuno"] = "okl",
["Bahasa Isyarat Korea"] = "kvk",
["Bahasa Isyarat Lao"] = "lso",
["Bahasa Isyarat Latvia"] = "lsl",
["Bahasa Isyarat Libya"] = "lbs",
["Bahasa Isyarat Madagascar"] = "mzc",
["Bahasa Isyarat Malta"] = "mdl",
["Bahasa Isyarat Maritim"] = "nsr",
["Bahasa Isyarat Martha's Vineyard"] = "mre",
["Bahasa Isyarat Maya Yucatec"] = "msd",
["Bahasa Isyarat Mesir"] = "esl",
["Bahasa Isyarat Mexico"] = "mfs",
["Bahasa Isyarat Miriwoong"] = "rsm",
["Bahasa Isyarat Monastik"] = "mzg",
["Bahasa Isyarat Mongolia"] = "msr",
["Bahasa Isyarat Mozambique"] = "mzy",
["Bahasa Isyarat Namibia"] = "nbs",
["Bahasa Isyarat Negara Jamaica"] = "jcs",
["Bahasa Isyarat Nepal"] = "nsp",
["Bahasa Isyarat New Zealand"] = "nzs",
["Bahasa Isyarat Nicaragua"] = "ncs",
["Bahasa Isyarat Nigeria"] = "nsi",
["Bahasa Isyarat Norway"] = "nsl",
["Bahasa Isyarat Orang Asli Australia"] = "asw",
["Bahasa Isyarat Pakistan"] = "pks",
["Bahasa Isyarat Papua New Guinea"] = "pgz",
["Bahasa Isyarat Paraguay"] = "pys",
["Bahasa Isyarat Parsi"] = "psc",
["Bahasa Isyarat Perancis"] = "fsl",
["Bahasa Isyarat Peru"] = "prl",
["Bahasa Isyarat Poland"] = "pso",
["Bahasa Isyarat Portugis"] = "psr",
["Bahasa Isyarat Providencia"] = "prz",
["Bahasa Isyarat Puerto Rico"] = "psl",
["Bahasa Isyarat Pulau Pinang"] = "psg",
["Bahasa Isyarat Quebec"] = "fcs",
["Bahasa Isyarat Romania"] = "rms",
["Bahasa Isyarat Rusia"] = "rsl",
["Bahasa Isyarat Taiwan"] = "tss",
["Bahasa Isyarat Tanzania"] = "tza",
["Bahasa Isyarat Tebul"] = "tsy",
["Bahasa Isyarat Thai"] = "tsq",
["Bahasa Isyarat Trinidad dan Tobago"] = "lst",
["Bahasa Isyarat Tunisia"] = "tse",
["Bahasa Isyarat Turki"] = "tsm",
["Bahasa Isyarat Yahudi Algeria"] = "ajs",
["Bahasa Lembah Indus"] = "xiv",
["Bahasa Roh Maroon"] = "crp-mar",
["Bahau"] = "bhv",
["Bahinemo"] = "bjh",
["Bahing"] = "bhj",
["Bahnar"] = "bdq",
["Bahonsuai"] = "bsu",
["Bai"] = "bdj",
["Bai Selatan"] = "bfs",
["Bai Tengah"] = "bca",
["Baibai"] = "bbf",
["Baikeno"] = "bkx",
["Bailang"] = "tbq-blg",
["Baima"] = "bqh",
["Baimak"] = "bmx",
["Bainouk Gubeeher"] = "alv-bgu",
["Bainouk-Gunyaamolo"] = "bcz",
["Bainouk-Gunyuño"] = "bab",
["Bainouk-Samik"] = "bcb",
["Baiso"] = "bsw",
["Bajan"] = "bjs",
["Bajau Indonesia"] = "bdl",
["Bajau Laut"] = "sml",
["Bajau Pantai Timur"] = "ssb",
["Bajau Sama"] = "bdr",
["Bajelani"] = "bjm",
["Baka"] = "bkc",
["Bakairí"] = "bkq",
["Bakaka"] = "bqz",
["Bakhtiari"] = "bqi",
["Baki"] = "bki",
["Bakoko"] = "bkh",
["Bakole"] = "kme",
["Bakpinka"] = "bbs",
["Baktria"] = "xbc",
["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"] = "ban",
["Baliledo"] = "poz-bal",
["Balkan Gagauz Turkish"] = "bgx",
["Balo"] = "bqo",
["Baloi"] = "biz",
["Balong"] = "bnt-bal",
["Balti"] = "bft",
["Baluan-Pam"] = "blq",
["Baluchi"] = "bal",
["Bamako Sign Language"] = "bog",
["Bamali"] = "bbq",
["Bambalang"] = "bmo",
["Bambam"] = "ptu",
["Bambara"] = "bm",
["Bambassi"] = "myf",
["Bambili-Bambui"] = "baw",
["Bamenyam"] = "bce",
["Bamu"] = "bcf",
["Bamukumbit"] = "bqt",
["Bamum"] = "bax",
["Bamunka"] = "bvm",
["Bamwe"] = "bmg",
["Ban Khor Sign Language"] = "bfk",
["Bana"] = "bcw",
["Banam Bay"] = "vrt",
["Banao Itneg"] = "bjx",
["Banaro"] = "byz",
["Banda"] = "bnd",
["Banda Malay"] = "bpq",
["Banda Tengah Barat"] = "bbp",
["Banda Tengah Selatan"] = "lnl",
["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",
["Banjar"] = "bjn",
["Banka"] = "bxw",
["Bankan Tey Dogon"] = "dbw",
["Bankon"] = "abb",
["Banoni"] = "bcm",
["Bantawa"] = "bap",
["Bantayanon"] = "bfx",
["Bantik"] = "bnq",
["Banyumasan"] = "map-bms",
["Baoule"] = "bci",
["Baraamu"] = "brd",
["Barai"] = "bbb",
["Barakai"] = "baj",
["Barama"] = "bbg",
["Barambu"] = "brm",
["Baramu"] = "bmz",
["Barapasi"] = "brp",
["Baras"] = "brs",
["Barasana"] = "bsn",
["Barbar Tunisia"] = "sds",
["Barbareño"] = "boi",
["Bardi"] = "bcj",
["Barein"] = "bva",
["Bargam"] = "mlp",
["Bari"] = "bfa",
["Bariai"] = "bch",
["Bariji"] = "bjc",
["Barikanchi"] = "bxo",
["Barikewa"] = "jbk",
["Barngarla"] = "bjb",
["Barok"] = "bjk",
["Barombi"] = "bbi",
["Barranbinya"] = "aus-bra",
["Barro Negro Tunebo"] = "tbn",
["Barrow Point"] = "bpt",
["Baruga"] = "bjz",
["Barunggam"] = "aus-brm",
["Baruya"] = "byr",
["Barwe"] = "bwg",
["Barzani Jewish Neo-Aramaic"] = "bjf",
["Baré"] = "bae",
["Barí"] = "mot",
["Basa"] = "bzw",
["Basa-Gumna"] = "bsl",
["Basa-Gurmana"] = "buj",
["Basaa"] = "bas",
["Basap"] = "bdb",
["Basay"] = "byq",
["Bashkardi"] = "bsg",
["Bashkir"] = "ba",
["Basketo"] = "bst",
["Basque"] = "eu",
["Bassa"] = "bsq",
["Bassa-Kontagora"] = "bsr",
["Bassari"] = "bsc",
["Bassossi"] = "bsi",
["Bata"] = "bta",
["Batad Ifugao"] = "ifb",
["Batak Alas-Kluet"] = "btz",
["Batak Angkola"] = "akb",
["Batak Dairi"] = "btd",
["Batak Karo"] = "btx",
["Batak Mandailing"] = "btm",
["Batak Palawan"] = "bya",
["Batak Simalungun"] = "bts",
["Batak Toba"] = "bbc",
["Batanga"] = "bnm",
["Batek"] = "btq",
["Bateri"] = "btv",
["Bathari"] = "bhm",
["Bati (Cameroon)"] = "btc",
["Bati (Indonesia)"] = "bvt",
["Bats"] = "bbl",
["Batu"] = "btu",
["Batui"] = "zbt",
["Batuley"] = "bay",
["Bau"] = "bbd",
["Bauchi"] = "bsf",
["Baure"] = "brg",
["Bauria"] = "bge",
["Bauro"] = "bxa",
["Bauwaki"] = "bwk",
["Bauzi"] = "bvz",
["Bavarian"] = "bar",
["Bayali"] = "bjy",
["Baybayanon"] = "bvy",
["Baygo"] = "byg",
["Bayogoula"] = "nai-bay",
["Bayono"] = "byl",
["Bayot"] = "bda",
["Bayungu"] = "bxj",
["Bazigar"] = "bfr",
["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 Jersey"] = "gmw-jdt",
["Belanda Kreol Berbice"] = "brc",
["Belanda Kreol Skepi"] = "skw",
["Belanda Kuno"] = "odt",
["Belanda Pertengahan"] = "dum",
["Belanda Viri"] = "bvi",
["Belarusian"] = "be",
["Belhariya"] = "byw",
["Beli"] = "blm",
["Bella Coola"] = "blc",
["Bellari"] = "brw",
["Bemba"] = "bem",
["Bembe"] = "bmb",
["Ben Tey"] = "dbt",
["Bena"] = "yun",
["Benabena"] = "bef",
["Bench"] = "bcq",
["Bende"] = "bdp",
["Bendi"] = "bct",
["Beneraf"] = "bnv",
["Beng"] = "nhb",
["Benga"] = "bng",
["Bengal Kuno"] = "inc-obn",
["Bengal Pertengahan"] = "inc-mbn",
["Bengali"] = "bn",
["Benggoi"] = "bgy",
["Bengkala Sign Language"] = "bqy",
["Bentong"] = "bnu",
["Benyadu'"] = "byd",
["Beothuk"] = "bue",
["Bepour"] = "bie",
["Bera"] = "brf",
["Berakou"] = "bxv",
["Berawan"] = "lod",
["Berber Saharan Utara"] = "mzb",
["Bergish"] = "gmw-bgh",
["Berik"] = "bkl",
["Berinomo"] = "bit",
["Berom"] = "bom",
["Berta"] = "wti",
["Berti"] = "byt",
["Besisi"] = "mhe",
["Besme"] = "bes",
["Besoa"] = "bep",
["Betaf"] = "bfe",
["Betawi"] = "bew",
["Bete"] = "byf",
["Bete-Bendi"] = "btt",
["Betoi"] = "sai-bet",
["Bezhta"] = "kap",
["Bhadrawahi"] = "bhd",
["Bhalay"] = "bhx",
["Bharia"] = "bha",
["Bhatri"] = "bgw",
["Bhattiyali"] = "bht",
["Bhaya"] = "bhe",
["Bhele"] = "bhy",
["Bhilali"] = "bhi",
["Bhili"] = "bhb",
["Bhojpur"] = "bho",
["Bhunjia"] = "bhu",
["Biafada"] = "bif",
["Biage"] = "bdf",
["Biak"] = "bhw",
["Biali"] = "beh",
["Bian Marind"] = "bpv",
["Biangai"] = "big",
["Biao"] = "byk",
["Biao Mon"] = "bmt",
["Biao-Jiao Mien"] = "bje",
["Bibaali"] = "bcn",
["Bibbulman"] = "xbp",
["Bicolano Catanduanes Selatan"] = "bln",
["Bicolano Catanduanes Utara"] = "cts",
["Bicolano Iriga"] = "bto",
["Bidayuh Bau"] = "sne",
["Bidayuh Biatah"] = "bth",
["Bidayuh Bukar-Sadong"] = "sdo",
["Bidiyo"] = "bid",
["Bidyara"] = "bym",
["Bidyogo"] = "bjg",
["Biem"] = "bmc",
["Bierebo"] = "bnk",
["Bieria"] = "brj",
["Biete"] = "biu",
["Big Nambas"] = "nmb",
["Biga"] = "bhc",
["Bigambal"] = "xbe",
["Bih"] = "ibh",
["Bihari"] = "bh",
["Bijori"] = "bix",
["Bikaru"] = "bic",
["Bikol Libon"] = "lbl",
["Bikol Miraya"] = "rbl",
["Bikol Miraya Barat"] = "fbl",
["Bikol Tengah"] = "bcl",
["Bikya"] = "byb",
["Bila"] = "bip",
["Bilakura"] = "bql",
["Bilaspuri"] = "kfs",
["Bilba"] = "bpz",
["Bilbil"] = "brz",
["Bile"] = "bil",
["Biliau"] = "bcu",
["Biloxi"] = "bll",
["Bilua"] = "blb",
["Bilur"] = "bxf",
["Bima"] = "bhp",
["Bimin"] = "bhl",
["Bimoba"] = "bim",
["Bina"] = "bmn",
["Binahari"] = "bxz",
["Binandere"] = "bhg",
["Binawa"] = "byj",
["Bindal"] = "xbd",
["Bine"] = "bon",
["Binji"] = "bpj",
["Binongan Itneg"] = "itb",
["Bintauna"] = "bne",
["Binukid"] = "bkd",
["Binumarien"] = "bjr",
["Bipi"] = "biq",
["Birao"] = "brr",
["Birgid"] = "brk",
["Birgit"] = "btf",
["Birhor"] = "biy",
["Biri"] = "bzr",
["Birifor Selatan"] = "biv",
["Biritai"] = "bqq",
["Birri"] = "bvq",
["Birrpayi"] = "xbj",
["Birwa"] = "brl",
["Bisaya Brunei"] = "bsb",
["Bisaya Sabah"] = "bsy",
["Biseni"] = "ije",
["Bishnupriya Manipuri"] = "bpy",
["Bishuo"] = "bwh",
["Bisis"] = "bnw",
["Bislama"] = "bi",
["Bisorio"] = "bir",
["Bissa"] = "bib",
["Bisu"] = "bzi",
["Bit"] = "bgk",
["Bitare"] = "brt",
["Bitur"] = "mcc",
["Biwat"] = "bwm",
["Biyo"] = "byo",
["Biyom"] = "bpm",
["Blablanga"] = "blp",
["Blackfoot"] = "bla",
["Blafe"] = "bfh",
["Blagar"] = "beu",
["Blang"] = "blr",
["Blin"] = "byn",
["Bo"] = "bgl",
["Bo-Rukul"] = "mae",
["Bo-Ung"] = "mux",
["Boano (Maluku)"] = "bzn",
["Boano (Sulawesi)"] = "bzl",
["Bobo Selatan"] = "bwq",
["Bobongko"] = "bgb",
["Bobot"] = "bty",
["Bodo (Central Africa)"] = "boy",
["Bodo (India)"] = "brx",
["Bodo Parja"] = "bdv",
["Bofi"] = "bff",
["Boga"] = "bvw",
["Bogaya"] = "boq",
["Boghom"] = "bux",
["Boguru"] = "bqu",
["Boikin"] = "bzf",
["Bokar"] = "sit-bok",
["Bokha"] = "ybk",
["Boko"] = "bqc",
["Bokobaru"] = "bus",
["Bokoto"] = "bdt",
["Bokyi"] = "bky",
["Bola"] = "bnp",
["Bolak"] = "art-blk",
["Bolango"] = "bld",
["Bole"] = "bol",
["Bolgo"] = "bvo",
["Bolia"] = "bli",
["Bolinao"] = "smk",
["Bolivian Sign Language"] = "bvl",
["Boloki"] = "bkt",
["Bolon"] = "bof",
["Bolondo"] = "bzm",
["Bolongan"] = "blj",
["Bolyu"] = "ply",
["Bom"] = "bmf",
["Boma Nkuu"] = "bnt-bon",
["Boma Selatan"] = "bnt-sbo",
["Boma Utara"] = "boh",
["Boma Yumu"] = "bnt-boy",
["Bomboli"] = "bml",
["Bomboma"] = "bws",
["Bomitaba"] = "zmx",
["Bomu"] = "bmq",
["Bomwali"] = "bmw",
["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",
["Bontoc Barat Daya"] = "vbk",
["Bontoc Selatan"] = "obk",
["Bontoc Tengah"] = "lbk",
["Bontoc Timur"] = "ebk",
["Bontoc Utara"] = "rbk",
["Bookan"] = "bnb",
["Boon"] = "bnl",
["Boor"] = "bvf",
["Bora"] = "boa",
["Boro"] = "xxb",
["Borong"] = "ksr",
["Boruca"] = "brn",
["Borôro"] = "bor",
["Boselewa"] = "bwf",
["Bosngun"] = "bqs",
["Bote-Majhi"] = "bmj",
["Botlikh"] = "bph",
["Botolan Sambal"] = "sbl",
["Bourbonnais-Berrichon"] = "roa-bbn",
["Bourguignon"] = "roa-brg",
["Bouyei"] = "pcc",
["Bozaba"] = "bzo",
["Bragat"] = "aof",
["Brahui"] = "brh",
["Braj"] = "bra",
["Brazilian Sign Language"] = "bzs",
["Brem"] = "buq",
["Breri"] = "brq",
["Breton"] = "br",
["Breton Kuno"] = "obt",
["Breton Pertengahan"] = "xbm",
["Bribri"] = "bzd",
["British Sign Language"] = "bfi",
["Brokkat"] = "bro",
["Brokpake"] = "sgt",
["Brokskat"] = "bkk",
["Broome Pearling Lugger Pidgin"] = "bpl",
["Bru Barat"] = "brv",
["Bru Timur"] = "bru",
["Bu"] = "jid",
["Bu-Nao Bunu"] = "bwx",
["Bua"] = "bub",
["Buamu"] = "box",
["Bube"] = "bvb",
["Bubi"] = "buw",
["Bubia"] = "bbx",
["Budeh Stieng"] = "stt",
["Budibud"] = "btp",
["Budong-Budong"] = "bdx",
["Budu"] = "buu",
["Budukh"] = "bdk",
["Buduma"] = "bdm",
["Budza"] = "bja",
["Bugan"] = "bbh",
["Bughotu"] = "bgt",
["Bugis"] = "bug",
["Buglere"] = "sab",
["Bugun"] = "bgg",
["Buhi'non Bikol"] = "ubl",
["Buhid"] = "bku",
["Buhutu"] = "bxh",
["Bujhyal"] = "byh",
["Bukat"] = "bvk",
["Bukawa"] = "buk",
["Bukhari"] = "bhh",
["Bukitan"] = "bkn",
["Bukiyip"] = "ape",
["Buksa"] = "tkb",
["Bukusu"] = "bxk",
["Bulgar"] = "xbo",
["Bulgarian"] = "bg",
["Bulgarian Sign Language"] = "bqn",
["Bulgebi"] = "bmp",
["Buli (Ghana)"] = "bwu",
["Buli (Indonesia)"] = "bzq",
["Bulo Stieng"] = "sti",
["Bulu (Cameroon)"] = "bum",
["Bulu (New Guinea)"] = "bjl",
["Bum"] = "bmv",
["Bumaji"] = "byp",
["Bumang"] = "bvp",
["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",
["Burak"] = "bys",
["Buraka"] = "bkg",
["Burarra"] = "bvr",
["Burate"] = "bti",
["Burduna"] = "bxn",
["Bure"] = "bvh",
["Burgundia"] = "gme-bur",
["Burji"] = "bji",
["Burma Kuno"] = "obr",
["Burmese"] = "my",
["Burmeso"] = "bzu",
["Buru (Indonesia)"] = "mhs",
["Buru (Nigeria)"] = "bqw",
["Burui"] = "bry",
["Burumakok"] = "aip",
["Burun"] = "bdi",
["Burunge"] = "bds",
["Burushaski"] = "bsk",
["Burusu"] = "bqr",
["Buruwai"] = "asi",
["Buryat"] = "bua",
["Busa"] = "bqp",
["Busam"] = "bxs",
["Busami"] = "bsm",
["Busang Kayan"] = "bfg",
["Bushoong"] = "buf",
["Buso"] = "bso",
["Busoa"] = "bup",
["Bussa"] = "dox",
["Busuu"] = "bju",
["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",
["Bwela"] = "bwl",
["Bwile"] = "bwc",
["Bwisi"] = "bwz",
["Byangsi"] = "bee",
["Byep"] = "mkk",
["Bädi Kanum"] = "khd",
["Caac"] = "msq",
["Cabiyarí"] = "cbb",
["Cabre"] = "awd-cab",
["Cabécar"] = "cjp",
["Cacaopera"] = "ccr",
["Cacua"] = "cbv",
["Cacán"] = "sai-cac",
["Caddo"] = "cad",
["Cafundó"] = "ccd",
["Cahuarano"] = "cah",
["Cahuilla"] = "chl",
["Caijia"] = "sit-cai",
["Caka"] = "ckx",
["Cakchiquel-Quiché Mixed Language"] = "ckz",
["Cakfem-Mushere"] = "cky",
["Calamian Tagbanwa"] = "tbk",
["Callawalla"] = "caw",
["Calusa"] = "nai-cal",
["Caluyanun"] = "clu",
["Caló"] = "rmq",
["Cam Barat"] = "cja",
["Cam Timur"] = "cjm",
["Campalagian"] = "cml",
["Camsá"] = "kbh",
["Camtho"] = "cmt",
["Camunic"] = "xcc",
["Candoshi-Shapra"] = "cbu",
["Canela"] = "ram",
["Canichana"] = "caz",
["Cantabrian"] = "roa-can",
["Cao Miao"] = "cov",
["Caolan"] = "mlc",
["Capanahua"] = "kaq",
["Capiznon"] = "cps",
["Caquinte"] = "cot",
["Car Nicobarese"] = "caq",
["Cara"] = "cfd",
["Carabayo"] = "cby",
["Caramanta"] = "crf",
["Caranqui"] = "sai-caq",
["Carapana"] = "cbc",
["Carian"] = "xcr",
["Cariay"] = "awd-kar",
["Carijona"] = "cbd",
["Carolinian"] = "cal",
["Carrier"] = "crx",
["Carrier Selatan"] = "caf",
["Cashibo-Cacataibo"] = "cbr",
["Cashinahua"] = "cbs",
["Catacao"] = "sai-cat",
["Catalan"] = "ca",
["Catalan Kuno"] = "roa-oca",
["Catalan Sign Language"] = "csc",
["Catawba"] = "chc",
["Catuquinaru"] = "sai-ctq",
["Catío Chibcha"] = "cba-cat",
["Cauca"] = "cca",
["Cavineña"] = "cav",
["Cayubaba"] = "cyb",
["Cayuga"] = "cay",
["Cayuse"] = "xcy",
["Cazcan"] = "azc-caz",
["Cañari"] = "sai-cnr",
["Cebaara Senoufo"] = "sef",
["Cebuano"] = "ceb",
["Celtiberian"] = "xce",
["Cemuhî"] = "cam",
["Cen"] = "cen",
["Central Palawano"] = "plc",
["Centúúm"] = "cet",
["Cerma"] = "cme",
["Ch'olti'"] = "myn-chl",
["Ch'orti'"] = "caa",
["Chaap Wuurong"] = "tjw",
["Chachi"] = "cbi",
["Chadong"] = "cdy",
["Chagatai"] = "chg",
["Chaha"] = "sem-cha",
["Chaima"] = "ciy",
["Chairel"] = "sit-cha",
["Chak"] = "ckh",
["Chakali"] = "cli",
["Chakma"] = "ccp",
["Chala"] = "cll",
["Chaldean Neo-Aramaic"] = "cld",
["Chali"] = "tgf",
["Chamacoco"] = "ceg",
["Chamalal"] = "cji",
["Chamba Daka"] = "ccg",
["Chamba Leko"] = "ndi",
["Chambeali"] = "cdh",
["Chambri"] = "can",
["Chamicuro"] = "ccc",
["Chamling"] = "rab",
["Chamorro"] = "ch",
["Champenois"] = "roa-cha",
["Chang"] = "nbc",
["Changriwa"] = "cga",
["Changthang"] = "cna",
["Chantyal"] = "chx",
["Chaná"] = "sai-chn",
["Chané"] = "caj",
["Chapacura"] = "sai-chp",
["Chara"] = "cra",
["Charrua"] = "sai-chr",
["Chatino San Juan Quiahije"] = "omq-sjq",
["Chatino Tanah Tinggi Barat"] = "ctp",
["Chatino Tanah Tinggi Timur"] = "cly",
["Chatino Teojomulco"] = "omq-teo",
["Chaudangsi"] = "cdn",
["Chaura"] = "crv",
["Chavacano"] = "cbk",
["Chayahuita"] = "cbt",
["Chazumba Mixtec"] = "xtb",
["Che"] = "ruk",
["Chechen"] = "ce",
["Cheke Holo"] = "mrn",
["Chemakum"] = "xch",
["Chenapian"] = "cjn",
["Chenchu"] = "cde",
["Chenoua"] = "cnu",
["Chepang"] = "cdm",
["Chepya"] = "ycp",
["Cherepon"] = "cpn",
["Cherokee"] = "chr",
["Chesu"] = "ych",
["Chetco-Tolowa"] = "ctc",
["Chewong"] = "cwg",
["Cheyenne"] = "chy",
["Chhattisgarhi"] = "hne",
["Chhintange"] = "ctn",
["Chhulung"] = "cur",
["Chiangmai Sign Language"] = "csd",
["Chiapanec"] = "cip",
["Chibcha"] = "chb",
["Chicahuaxtla Triqui"] = "trs",
["Chichewa"] = "ny",
["Chichicapan Zapotec"] = "zpv",
["Chichimeca-Jonaz"] = "pei",
["Chichonyi-Chidzihana-Chikauma"] = "coh",
["Chickasaw"] = "cic",
["Chicomuceltec"] = "cob",
["Chiduruma"] = "dug",
["Chilcotin"] = "clc",
["Chilean Sign Language"] = "csg",
["Chilisso"] = "clh",
["Chiltepec Chinantec"] = "csa",
["Chimalapa Zoque"] = "zoh",
["Chimariko"] = "cid",
["Chimila"] = "cbg",
["Chimwiini"] = "bnt-cmw",
["Chin Asho"] = "csh",
["Chin Bawm"] = "bgr",
["Chin Bualkhaw"] = "cbl",
["Chin Chinbon"] = "cnb",
["Chin Daai"] = "dao",
["Chin Falam"] = "cfm",
["Chin Kaang"] = "ckn",
["Chin Khumi"] = "cnk",
["Chin Laitu"] = "clt",
["Chin Mara"] = "mrh",
["Chin Mro"] = "cmr",
["Chin Ngawn"] = "cnw",
["Chin Senthang"] = "sez",
["Chin Siyin"] = "csy",
["Chin Songlai"] = "csj",
["Chin Sumtu"] = "csv",
["Chin Tawr"] = "tcp",
["Chin Tedim"] = "ctd",
["Chin Thado"] = "tcz",
["Chin Thaiphum"] = "cth",
["Chin Zotung"] = "czt",
["Chinali"] = "cih",
["Chinese"] = "zh",
["Chinese Sign Language"] = "csl",
["Chinook"] = "chh",
["Chinook Jargon"] = "chn",
["Chipaya"] = "cap",
["Chipewyan"] = "chp",
["Chiquimulilla"] = "nai-chi",
["Chiquitano"] = "cax",
["Chiricahua"] = "apm",
["Chirino"] = "sai-chi",
["Chiripá"] = "nhd",
["Chiru"] = "cdf",
["Chitimacha"] = "ctm",
["Chitkuli Kinnauri"] = "cik",
["Chittagong"] = "ctg",
["Chitwania Tharu"] = "the",
["Chiwere"] = "iow",
["Choapan Zapotec"] = "zpc",
["Chocangaca"] = "cgk",
["Chochotec"] = "coz",
["Choctaw"] = "cho",
["Chodri"] = "cdi",
["Chokwe"] = "cjk",
["Chol"] = "ctu",
["Cholón"] = "cht",
["Chong"] = "cog",
["Choni"] = "cda",
["Chono"] = "sai-cno",
["Chopi"] = "cce",
["Chrau"] = "crw",
["Chru"] = "cje",
["Chuabo"] = "chw",
["Chuanqiandian Cluster Miao"] = "cqd",
["Chuave"] = "cjv",
["Chug"] = "cvg",
["Chuj"] = "cac",
["Chuka"] = "cuh",
["Chukchi"] = "ckt",
["Chukwa"] = "cuw",
["Chulym"] = "clw",
["Chumburung"] = "ncu",
["Churahi"] = "cdj",
["Churuya"] = "sai-chu",
["Chut"] = "scb",
["Chuuk"] = "chk",
["Chuva"] = "xcv",
["Chuvash"] = "cv",
["Chácobo"] = "cao",
["Ci Gbe"] = "cib",
["Cia-Cia"] = "cia",
["Cibak"] = "ckl",
["Cicipu"] = "awc",
["Ciguayo"] = "nai-cig",
["Cimbrian"] = "cim",
["Cina Kuno"] = "och",
["Cina Pertengahan"] = "ltc",
["Cinda-Regi-Tiyal"] = "cdr",
["Cineni"] = "cie",
["Cinta Larga"] = "cin",
["Circassian Barat"] = "ady",
["Cishingini"] = "asg",
["Citak"] = "txt",
["Ciwogai"] = "tgd",
["Coahuilteco"] = "xcw",
["Coatlán Zapotec"] = "zps",
["Cocama"] = "cod",
["Cochimi"] = "coj",
["Cocopa"] = "coc",
["Coeruna"] = "sai-coe",
["Coeur d'Alene"] = "crd",
["Cofán"] = "con",
["Cogui"] = "kog",
["Col"] = "liw",
["Colombian Sign Language"] = "csn",
["Columbia-Wenatchi"] = "col",
["Colán"] = "sai-col",
["Comaltepec Chinantec"] = "cco",
["Comanche"] = "com",
["Comechingon"] = "sai-cmg",
["Comecrudo"] = "xcm",
["Communicationssprache"] = "art-com",
["Como Karim"] = "cfg",
["Comoros Maore"] = "swb",
["Comoros Ngazidja"] = "zdj",
["Comox"] = "coo",
["Con"] = "cno",
["Coos"] = "csz",
["Copainalá Zoque"] = "zoc",
["Copala Triqui"] = "trc",
["Copallén"] = "sai-cop",
["Coquille"] = "coq",
["Cora"] = "crn",
["Cori"] = "cry",
["Cornish"] = "kw",
["Cornwall Kuno"] = "oco",
["Cornwall Pertengahan"] = "cnx",
["Coroado Puri"] = "sai-crd",
["Corsican"] = "co",
["Costa Rican Sign Language"] = "csr",
["Cotoname"] = "xcn",
["Cowlitz"] = "cow",
["Coyaima"] = "coy",
["Coyotepec Popoloca"] = "pbf",
["Coyutla Totonac"] = "toc",
["Cree"] = "cr",
["Cree Moose"] = "crm",
["Cree Timur Selatan"] = "crj",
["Cree Timur Utara"] = "crl",
["Creek"] = "mus",
["Crow"] = "cro",
["Cruzeño"] = "crz",
["Cua"] = "cua",
["Cuban Sign Language"] = "csf",
["Cubeo"] = "cub",
["Cueva"] = "sai-cva",
["Cuiba"] = "cui",
["Cuitlatec"] = "cuy",
["Culina"] = "cul",
["Culli"] = "sai-cul",
["Cumanagoto"] = "cuo",
["Cumbric"] = "xcb",
["Cun"] = "cuq",
["Cung"] = "cug",
["Cupeño"] = "cup",
["Curonian"] = "xcu",
["Curripaco"] = "kpc",
["Cutchi-Swahili"] = "ccl",
["Cuvok"] = "cuv",
["Cuyunon"] = "cyo",
["Cwi Bwamu"] = "bwy",
["Czech"] = "cs",
["Czech Kuno"] = "zlw-ocs",
["Czech Sign Language"] = "cse",
["Cốông"] = "cnc",
["Da'a Kaili"] = "kzf",
["Daantanai'"] = "lni",
["Daasanach"] = "dsh",
["Daba"] = "dbq",
["Dabarre"] = "dbr",
["Dabe"] = "dbe",
["Dacian"] = "xdc",
["Dadan"] = "sem-dad",
["Dadi Dadi"] = "dda",
["Dadibi"] = "mps",
["Dadiya"] = "dbd",
["Daga"] = "dgz",
["Dagaare Selatan"] = "dga",
["Dagaari Dioula"] = "dgd",
["Dagara Utara"] = "dgi",
["Dagba"] = "dgk",
["Dagbani"] = "dag",
["Dagik"] = "dec",
["Dagoman"] = "dgn",
["Dahalik"] = "dlk",
["Dahalo"] = "dal",
["Daho-Doo"] = "das",
["Dai"] = "dij",
["Dair"] = "drb",
["Dakaka"] = "bpa",
["Dakka"] = "dkk",
["Dakota"] = "dak",
["Dakpa"] = "dka",
["Dalmatian"] = "dlm",
["Daloa Bété"] = "bev",
["Dama (Nigeria)"] = "dmm",
["Dama (Sierra Leone)"] = "dmn-dam",
["Damakawa"] = "dam",
["Damal"] = "uhn",
["Damar Barat"] = "drn",
["Damar Timur"] = "dmr",
["Dambi"] = "dac",
["Dameli"] = "dml",
["Dampelas"] = "dms",
["Dan"] = "dnj",
["Danaru"] = "dnr",
["Danau"] = "dnu",
["Dandami Maria"] = "daq",
["Dangaléat"] = "daa",
["Dangaura Tharu"] = "thl",
["Dani Barat"] = "dnw",
["Danish"] = "da",
["Danish Sign Language"] = "dsl",
["Dano"] = "aso",
["Danu"] = "dnv",
["Danuwar"] = "dhw",
["Dao"] = "daz",
["Daonda"] = "dnd",
["Dar Daju Daju"] = "djc",
["Dar Fur Daju"] = "daj",
["Dar Sila Daju"] = "dau",
["Darai"] = "dry",
["Dargwa"] = "dar",
["Darkinjung"] = "xda",
["Darlong"] = "dln",
["Darmiya"] = "drd",
["Darumbal"] = "xgm",
["Dass"] = "dot",
["Datooga"] = "tcc",
["Daungwurrung"] = "dgw",
["Daur"] = "dta",
["Davawenyo"] = "daw",
["Dawawa"] = "dww",
["Dawera-Daweloor"] = "ddw",
["Dawro"] = "dwr",
["Day"] = "dai",
["Dayi"] = "dax",
["Dazaga"] = "dzg",
["Deccani"] = "dcc",
["Dedua"] = "ded",
["Defaka"] = "afn",
["Deg"] = "mzw",
["Deg Xinag"] = "ing",
["Degema"] = "deg",
["Degenan"] = "dge",
["Dehwari"] = "deh",
["Dek"] = "dek",
["Dela-Oenale"] = "row",
["Delo"] = "ntr",
["Dem"] = "dem",
["Dema"] = "dmx",
["Demisa"] = "dei",
["Demta"] = "dmy",
["Dena'ina"] = "tfn",
["Dendi"] = "ddn",
["Dengese"] = "dez",
["Dengka"] = "dnk",
["Denmark Kuno"] = "gmq-oda",
["Denmark Pengembara"] = "rmd",
["Deno"] = "dbb",
["Denya"] = "anv",
["Dení"] = "dny",
["Deori"] = "der",
["Desano"] = "des",
["Desiya"] = "dso",
["Dewas Rai"] = "dwz",
["Dewoin"] = "dee",
["Dezfuli"] = "def",
["Dghwede"] = "dgh",
["Dhaiso"] = "dhs",
["Dhalandji"] = "dhl",
["Dhangu"] = "dhg",
["Dhanki"] = "dhn",
["Dhao"] = "nfa",
["Dharug"] = "xdk",
["Dhatki"] = "mki",
["Dhimal"] = "dhi",
["Dhivehi"] = "dv",
["Dhodia"] = "dho",
["Dhudhuroa"] = "ddr",
["Dhungaloo"] = "dhx",
["Dhurga"] = "dhu",
["Dhuwal"] = "dwu",
["Dhuwaya"] = "dwy",
["Dia"] = "dia",
["Dibiyaso"] = "dby",
["Dibo"] = "dio",
["Didinga"] = "did",
["Dieri"] = "dif",
["Digo"] = "dig",
["Dii"] = "dur",
["Dijim-Bwilim"] = "cfa",
["Dilling"] = "dil",
["Dima"] = "jma",
["Dimasa"] = "dis",
["Dimbong"] = "dii",
["Dime"] = "dim",
["Dineor"] = "mrx",
["Ding"] = "diz",
["Dinka"] = "din",
["Dinka Barat Daya"] = "dik",
["Dinka Barat Laut"] = "diw",
["Dinka Tengah Selatan"] = "dib",
["Dinka Tenggara"] = "dks",
["Dinka Timur Laut"] = "dip",
["Diodio"] = "ddi",
["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",
["Dogon Ampari"] = "aqd",
["Dogon Nanga Dama"] = "nzz",
["Dogoso"] = "dgs",
["Dogosé"] = "dos",
["Dogri"] = "doi",
["Dogrib"] = "dgr",
["Dogul Dom"] = "dbg",
["Doka"] = "dbi",
["Doko-Uyanga"] = "uya",
["Dolgan"] = "dlg",
["Dom"] = "doa",
["Domaaki"] = "dmk",
["Domari"] = "rmt",
["Dominican Sign Language"] = "doq",
["Dompo"] = "doy",
["Domu"] = "dof",
["Domung"] = "dev",
["Dondo"] = "dok",
["Dong"] = "doh",
["Dongo"] = "doo",
["Dongolawi"] = "kzh",
["Dongotono"] = "ddd",
["Dongshanba Lalo"] = "yik",
["Dongxiang"] = "sce",
["Donno So Dogon"] = "dds",
["Doondo"] = "dde",
["Dorasque"] = "cba-dor",
["Dori'o"] = "dor",
["Dorig"] = "wwo",
["Doromu-Koki"] = "kqc",
["Dorze"] = "doz",
["Doso"] = "dol",
["Doteli"] = "dty",
["Dothraki"] = "art-dtk",
["Doura"] = "don",
["Doutai"] = "tds",
["Doyayo"] = "dow",
["Drehu"] = "dhv",
["Drung"] = "duu",
["Duala"] = "dua",
["Duano"] = "dup",
["Duau"] = "dva",
["Dubli"] = "dub",
["Dubu"] = "dmu",
["Dugun"] = "ndu",
["Duguri"] = "dbm",
["Dugwor"] = "dme",
["Duhwa"] = "kbz",
["Duit"] = "cba-dui",
["Duke"] = "nke",
["Dukhan"] = "trk-dkh",
["Dulbu"] = "dbo",
["Duli"] = "duz",
["Duma"] = "dma",
["Dumait"] = "sem-dum",
["Dumbea"] = "duf",
["Dumi"] = "dus",
["Dumpas"] = "dmv",
["Dumun"] = "dui",
["Duna"] = "duc",
["Dungan"] = "dng",
["Dungmali"] = "raa",
["Dungra Bhil"] = "duh",
["Dungu"] = "dbv",
["Dura"] = "drq",
["Duri"] = "mvp",
["Duriankere"] = "dbn",
["Duruwa"] = "pci",
["Dusner"] = "dsn",
["Dusun Deyah"] = "dun",
["Dusun Malang"] = "duq",
["Dusun Sugut"] = "kzs",
["Dusun Tambunan"] = "kzt",
["Dusun Witu"] = "duw",
["Dutch"] = "nl",
["Dutch Sign Language"] = "dse",
["Duun"] = "dux",
["Duupa"] = "dae",
["Duvle"] = "duv",
["Duwai"] = "dbp",
["Dwang"] = "nnu",
["Dyaabugay"] = "dyy",
["Dyaberdyaber"] = "dyb",
["Dyan"] = "dya",
["Dyangadi"] = "dyn",
["Dyirbal"] = "dbl",
["Dyugun"] = "dyd",
["Dyula"] = "dyu",
["Dza"] = "jen",
["Dzala"] = "dzl",
["Dzando"] = "dzn",
["Dzao Min"] = "bpn",
["Dzodinka"] = "add",
["Dzongkha"] = "dz",
["Dzuun"] = "dnn",
["Dâw"] = "kwa",
["E"] = "eee",
["E'ma Buyang"] = "yzg",
["Eastern Canadian Inuktitut"] = "ike",
["Ebira"] = "igb",
["Ebla"] = "xeb",
["Ebrié"] = "ebr",
["Ebughu"] = "ebg",
["Ede Cabe"] = "cbj",
["Ede Ica"] = "ica",
["Ede Idaca"] = "idd",
["Ede Ije"] = "ijj",
["Ede Nago"] = "nqg",
["Edo"] = "bin",
["Edolo"] = "etr",
["Edom"] = "xdm",
["Edopi"] = "dbf",
["Efai"] = "efa",
["Efate Selatan"] = "erk",
["Efate Utara"] = "llp",
["Efe"] = "efe",
["Efik"] = "efi",
["Efutop"] = "ofu",
["Ega"] = "ega",
["Eggon"] = "ego",
["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",
["Elam"] = "elx",
["Eleme"] = "elm",
["Elepi"] = "ele",
["Elip"] = "ekm",
["Elkei"] = "elk",
["Eloi"] = "art-elo",
["Elotepec Zapotec"] = "zte",
["Eloyi"] = "afo",
["Elseng"] = "mrf",
["Elu"] = "elu",
["Elymi"] = "xly",
["Emae"] = "mmw",
["Emai"] = "ema",
["Eman"] = "emn",
["Embaloh"] = "emb",
["Emberá Utara"] = "emp",
["Emberá-Baudó"] = "bdc",
["Emberá-Catío"] = "cto",
["Emberá-Chamí"] = "cmi",
["Emberá-Tadó"] = "tdc",
["Embu"] = "ebu",
["Emem"] = "enr",
["Emerillon"] = "eme",
["Emilian"] = "egl",
["Emplawas"] = "emw",
["En"] = "enc",
["Enawené-Nawé"] = "unk",
["Ende"] = "end",
["Enets Hutan"] = "enf",
["Enets Tundra"] = "enh",
["Enga"] = "enq",
["Engenni"] = "enn",
["Enggano"] = "eno",
["English"] = "en",
["Enlhet"] = "enl",
["Enrekang"] = "ptt",
["Enu"] = "enu",
["Enwan"] = "env",
["Enwang"] = "enw",
["Enxet"] = "enx",
["Eotile"] = "eot",
["Epena"] = "sja",
["Epi-Olmec"] = "xep",
["Epie"] = "epi",
["Eravallan"] = "era",
["Erave"] = "kjy",
["Ere"] = "twp",
["Erie"] = "iro-ere",
["Eritai"] = "ert",
["Erokwanas"] = "erw",
["Erre"] = "err",
["Erromintxela"] = "emx",
["Ersu"] = "ers",
["Eruwa"] = "erh",
["Erzya"] = "myv",
["Esan"] = "ish",
["Ese"] = "mcq",
["Ese Ejja"] = "ese",
["Eshtehardi"] = "esh",
["Esimbi"] = "ags",
["Eskayan"] = "esy",
["Esmeralda"] = "sai-esm",
["Esperanto"] = "eo",
["Esselen"] = "esq",
["Estonian"] = "et",
["Esuma"] = "esm",
["Etchemin"] = "etc",
["Etebi"] = "etb",
["Eten"] = "etx",
["Eteocretan"] = "ecr",
["Eteocypriot"] = "ecy",
["Etkywan"] = "ich",
["Eton (Cameroon)"] = "eto",
["Eton (Vanuatu)"] = "etn",
["Etruria"] = "ett",
["Etulo"] = "utr",
["Evant"] = "bzz",
["Even"] = "eve",
["Evenki"] = "evn",
["Ewage-Notu"] = "nou",
["Ewarhuyana"] = "sai-ewa",
["Ewe"] = "ee",
["Ewondo"] = "ewo",
["Extremaduran"] = "ext",
["Eyak"] = "eya",
["Ezaa"] = "eza",
["Fagani"] = "faf",
["Faifi"] = "fif",
["Faiwol"] = "fai",
["Fala"] = "fax",
["Fali"] = "fli",
["Fali Baissa"] = "fah",
["Fali Selatan"] = "fal",
["Fali Utara"] = "fll",
["Falisci"] = "xfa",
["Fam"] = "fam",
["Fanagalo"] = "fng",
["Fanamaket"] = "bjp",
["Fang (Bantu)"] = "fan",
["Fang (Beboid)"] = "fak",
["Fania"] = "fni",
["Faroese"] = "fo",
["Fars Barat Daya"] = "fay",
["Fars Barat Laut"] = "faz",
["Fas"] = "fqs",
["Fasu"] = "faa",
["Fataleka"] = "far",
["Fataluku"] = "ddg",
["Fayu"] = "fau",
["Fe'fe'"] = "fmp",
["Fedan"] = "pdn",
["Fembe"] = "agl",
["Fer"] = "kah",
["Feroge"] = "fer",
["Fiji Barat"] = "wyy",
["Fijian"] = "fj",
["Filistin"] = "mis-phi",
["Filomena Mata-Coahuitlán Totonac"] = "tlp",
["Fingallian"] = "gmw-fin",
["Finisterre Yau"] = "yuw",
["Finnish"] = "fi",
["Finongan"] = "fag",
["Fipa"] = "fip",
["Firan"] = "fir",
["Fiwaga"] = "fiw",
["Flemish Barat"] = "vls",
["Flemish Sign Language"] = "vgt",
["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",
["Fortsenal"] = "frt",
["Fox"] = "sac",
["Franc-Comtois"] = "roa-fcm",
["Francisco León Zoque"] = "zos",
["Franco-Provençal"] = "frp",
["Franconia Rhine"] = "gmw-rfr",
["Franconia Tengah"] = "gmw-cfr",
["Franconia Timur"] = "vmf",
["French"] = "fr",
["French Belgian Sign Language"] = "sfb",
["Frisia Kuno"] = "ofs",
["Frisia Saterland"] = "stq",
["Frisia Utara"] = "frr",
["Friulian"] = "fur",
["Fula"] = "ff",
["Fuliiru"] = "flr",
["Fulniô"] = "fun",
["Fum"] = "fum",
["Fungwa"] = "ula",
["Fur"] = "fvr",
["Furu"] = "fuu",
["Futuna Timur"] = "fud",
["Futuna-Aniwa"] = "fut",
["Fuyug"] = "fuy",
["Fwe"] = "fwe",
["Fwâi"] = "fwa",
["Fyam"] = "pym",
["Fyer"] = "fie",
["Gaa"] = "ttb",
["Gaam"] = "tbi",
["Gabadi"] = "kbt",
["Gabrielino-Fernandeño"] = "xgf",
["Gagnoa Bété"] = "btg",
["Gahri"] = "bfu",
["Galatia"] = "xga",
["Galicia-Portugis Kuno"] = "roa-opt",
["Galician"] = "gl",
["Galindan"] = "xgl",
["Gallaecian"] = "cel-gal",
["Gallo"] = "roa-gal",
["Gallo-Itali Basilicata"] = "roa-gib",
["Gallo-Itali Sicily"] = "roa-gis",
["Gallura"] = "sdn",
["Galo"] = "adl",
["Gamale Kham"] = "kgj",
["Gamela"] = "sai-gam",
["Gamilaraay"] = "kld",
["Gamo-Ningi"] = "bte",
["Gandhari"] = "pgd",
["Gane"] = "gzn",
["Ganza"] = "gza",
["Gapapaiwa"] = "pwg",
["Garawa"] = "wrk",
["Garifuna"] = "cab",
["Garingbal"] = "xgi",
["Garus"] = "gyb",
["Garza"] = "xgr",
["Gaul"] = "cel-gau",
["Gavak"] = "dmc",
["Gavião Pará"] = "gvp",
["Gavião do Jiparaná"] = "gvo",
["Gawar-Bati"] = "gwt",
["Gawwada"] = "gwd",
["Gayil"] = "gyl",
["Gayón"] = "sai-gay",
["Gbaya Barat Laut"] = "gya",
["Gbayi"] = "gyg",
["Gbe Kotafon"] = "kqk",
["Gbe Xwla Barat"] = "xwl",
["Gbin"] = "xgb",
["Gciriku"] = "diu",
["Gcwi"] = "gwj",
["Ge"] = "hmj",
["Gedeo"] = "drs",
["Gela"] = "nlg",
["Gele'"] = "sbc",
["Georgia Kuno"] = "oge",
["Georgian"] = "ka",
["Gepo"] = "ygp",
["German"] = "de",
["Geshiza"] = "ero-gsz",
["Ghayavi"] = "bmk",
["Ghomala'"] = "bbj",
["Ghotuo"] = "aaa",
["Giangan"] = "bgi",
["Gikyode"] = "acd",
["Gimme"] = "kmp",
["Girawa"] = "bbr",
["Giryama"] = "nyf",
["Gizrra"] = "tof",
["Glio-Oubi"] = "oub",
["Glosa"] = "igs",
["Goa'uld"] = "art-gld",
["Goemai"] = "ank",
["Goguryeo"] = "zkg",
["Gokhy"] = "tbq-gkh",
["Golin"] = "gvf",
["Golpa"] = "lja",
["Gong"] = "ugo",
["Goreng"] = "xgg",
["Goth Crimea"] = "gme-cgo",
["Gottscheerish"] = "gmw-gts",
["Gowro"] = "gwf",
["Grangali"] = "nli",
["Grass Koiari"] = "kbk",
["Greek"] = "el",
["Greek Calabria"] = "grk-cal",
["Greek Italiot"] = "grk-ita",
["Greek Mariupol"] = "grk-mar",
["Greenlandic"] = "kl",
["Gros Ventre"] = "ats",
["Gua"] = "gwx",
["Guachí"] = "sai-gua",
["Guajá"] = "gvj",
["Guamo"] = "sai-gmo",
["Guarani Klasik"] = "gn-cls",
["Guarayu"] = "gyr",
["Guazacapán"] = "nai-guz",
["Gudang"] = "xgd",
["Gudanji"] = "nji",
["Guevea de Humboldt Zapotec"] = "zpg",
["Gugu Warra"] = "wrw",
["Guiberoua Bété"] = "bet",
["Guinau"] = "awd-gnu",
["Guinea-Bissau Sign Language"] = "lgs",
["Gujarati"] = "gu",
["Gujarati Kuno"] = "inc-ogu",
["Gujarati Pertengahan"] = "inc-mgu",
["Gulay"] = "gvl",
["Gumawana"] = "gvs",
["Gundungurra"] = "xrd",
["Gungabula"] = "gyf",
["Gungu"] = "rub",
["Gunu"] = "yas",
["Gunya"] = "gyy",
["Gur Lama"] = "las",
["Gurani"] = "hac",
["Gurmana"] = "gvm",
["Gurung"] = "gvr",
["Gutnish"] = "gmq-gut",
["Gutnish Kuno"] = "gmq-ogt",
["Guugu Yimidhirr"] = "kky",
["Guwa"] = "xgw",
["Guwamu"] = "gwu",
["Guwar"] = "aus-guw",
["Guyani"] = "gvy",
["Gvoko"] = "ngs",
["Gwa"] = "gwb",
["Gwahatike"] = "dah",
["Gwak"] = "jgk",
["Gwamhi-Wuri"] = "bga",
["Gwandara"] = "gwn",
["Gwara"] = "alv-gwa",
["Gweno"] = "gwe",
["Gwere"] = "gwr",
["Gwich'in"] = "gwi",
["Gyalsumdo"] = "gyo",
["Gyele"] = "gyi",
["Gyem"] = "gye",
["Güenoa"] = "sai-gue",
["Habu"] = "hbu",
["Hachijō"] = "jpx-hcj",
["Hadiyya"] = "hdy",
["Hadothi"] = "hoj",
["Hadrami"] = "xhd",
["Hadza"] = "hts",
["Haeke"] = "aek",
["Hahon"] = "hah",
["Haida"] = "hai",
["Haida Selatan"] = "hax",
["Haida Utara"] = "hdn",
["Haigwai"] = "hgw",
["Hainyaxo Bozo"] = "bzx",
["Haisla"] = "has",
["Haitian Creole"] = "ht",
["Haitian Vodoun Culture Language"] = "hvc",
["Haiǁom"] = "hgm",
["Haji"] = "hji",
["Hajong"] = "haj",
["Hakka"] = "hak",
["Hakö"] = "hao",
["Halang"] = "hal",
["Halang Doan"] = "hld",
["Halbi"] = "hlb",
["Halia"] = "hla",
["Halkomelem"] = "hur",
["Hamap"] = "hmu",
["Hamba"] = "hba",
["Hamer-Banna"] = "amf",
["Hamtai"] = "hmt",
["Hanga"] = "hag",
["Hanga Hundi"] = "wos",
["Hani"] = "hni",
["Hanunoo"] = "hnn",
["Harami"] = "xha",
["Harari"] = "har",
["Haraza"] = "nub-har",
["Harijan Kinnauri"] = "kjo",
["Haroi"] = "hro",
["Harsusi"] = "hss",
["Haruai"] = "tmd",
["Haruku"] = "hrk",
["Haryanvi"] = "bgc",
["Harzani"] = "hrz",
["Hasait"] = "sem-has",
["Hasha"] = "ybj",
["Hatam"] = "had",
["Hatti"] = "xht",
["Hausa"] = "ha",
["Haush"] = "sai-hau",
["Havasupai-Walapai-Yavapai"] = "yuf",
["Haveke"] = "hvk",
["Havu"] = "hav",
["Hawai'i Pidgin Sign Language"] = "hps",
["Hawaii"] = "haw",
["Haya"] = "hay",
["Hdi"] = "xed",
["Hebrew"] = "he",
["Hehe"] = "heh",
["Heiban"] = "hbn",
["Heiltsuk"] = "hei",
["Helong"] = "heg",
["Hema"] = "nix",
["Hemba"] = "hem",
["Hember Avu"] = "mmi",
["Herdé"] = "hed",
["Herero"] = "hz",
["Hermit"] = "llf",
["Hernican"] = "xhr",
["Het"] = "hit",
["Hewa"] = "ham",
["Heyo"] = "auk",
["Hibito"] = "hib",
["Hidatsa"] = "hid",
["Higaonon"] = "mba",
["Highland Konjo"] = "kjk",
["Highland Oaxaca Chontal"] = "chd",
["Highland Popoluca"] = "poi",
["Highland Totonac"] = "tos",
["Hijuk"] = "hij",
["Hiligaynon"] = "hil",
["Himarimã"] = "hir",
["Hindi"] = "hi",
["Hindi Dogri"] = "dgo",
["Hindi Fiji"] = "hif",
["Hindi Kreol Andaman"] = "hca",
["Hindi Kuno"] = "inc-ohi",
["Hindko Selatan"] = "hnd",
["Hindko Utara"] = "hno",
["Hinduri"] = "hii",
["Hindustan Caribbean"] = "hns",
["Hiri Motu"] = "ho",
["Hisma"] = "sem-his",
["Hitchiti"] = "nai-hit",
["Hitu"] = "htu",
["Hiw"] = "hiw",
["Hixkaryana"] = "hix",
["Hlai"] = "lic",
["Hlepho Phowa"] = "yhl",
["Hlersu"] = "hle",
["Hmar"] = "hmr",
["Hmong Don"] = "hmf",
["Hmong Dô"] = "hmv",
["Hmong Guiyang Barat Daya"] = "hmg",
["Hmong Guiyang Selatan"] = "hmy",
["Hmong Guiyang Utara"] = "huj",
["Hmong Hijau"] = "hnj",
["Hmong Huishui Barat Daya"] = "hmh",
["Hmong Huishui Tengah"] = "hmc",
["Hmong Huishui Timur"] = "hme",
["Hmong Huishui Utara"] = "hmi",
["Hmong Luopohe"] = "hml",
["Hmong Mashan Barat"] = "hmw",
["Hmong Mashan Selatan"] = "hma",
["Hmong Mashan Tengah"] = "hmm",
["Hmong Mashan Utara"] = "hmp",
["Hmong Putih"] = "mww",
["Hmong Shua"] = "hmz",
["Hmwaveke"] = "mrk",
["Ho"] = "hoc",
["Ho Chi Minh City Sign Language"] = "hos",
["Hoava"] = "hoa",
["Hobyót"] = "hoh",
["Hoia Hoia"] = "hhi",
["Hokkien"] = "nan-hbl",
["Hokkien Peranakan Kelantan"] = "mis-hkl",
["Holikachuk"] = "hoi",
["Holiya"] = "hoy",
["Holma"] = "hod",
["Holoholo"] = "hoo",
["Holu"] = "hol",
["Homa"] = "hom",
["Hone"] = "juh",
["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",
["Huave"] = "huv",
["Huba"] = "hbb",
["Huetar"] = "cba-hue",
["Huichol"] = "hch",
["Huilliche"] = "huh",
["Huizhou"] = "czh",
["Hukumina"] = "huw",
["Hula"] = "hul",
["Hulaulá"] = "huy",
["Huli"] = "hui",
["Hulung"] = "huk",
["Humburi Senni"] = "hmb",
["Humene"] = "huf",
["Hun"] = "uth",
["Hunde"] = "hke",
["Hung"] = "hnu",
["Hungana"] = "hum",
["Hungarian"] = "hu",
["Hungary Kuno"] = "ohu",
["Hungworo"] = "nat",
["Hunjara-Kaina Ke"] = "hkk",
["Hunsrik"] = "hrx",
["Hunzib"] = "huz",
["Hupa"] = "hup",
["Hupdë"] = "jup",
["Hupla"] = "hap",
["Hurri"] = "xhu",
["Hwana"] = "hwo",
["Hya"] = "hya",
["Hyam"] = "jab",
["Hän"] = "haa",
["Hértevin"] = "hrt",
["I-Wak"] = "iwk",
["Iaai"] = "iai",
["Iamalele"] = "yml",
["Iatmul"] = "ian",
["Iau"] = "tmu",
["Ibali Teke"] = "tek",
["Ibaloi"] = "ibl",
["Iban"] = "iba",
["Ibanag"] = "ibg",
["Ibani"] = "iby",
["Ibatan"] = "ivb",
["Iberia"] = "xib",
["Ibibio"] = "ibb",
["Ibino"] = "ibn",
["Iboko"] = "bkp",
["Ibrani Samaria"] = "smp",
["Ibu"] = "ibu",
["Ibuoro"] = "ibr",
["Icelandic"] = "is",
["Iceve-Maci"] = "bec",
["Idahan"] = "dbj",
["Idakho-Isukha-Tiriki"] = "ida",
["Idaté"] = "idt",
["Idere"] = "ide",
["Idesa"] = "ids",
["Idi"] = "idi",
["Idiom Neutral"] = "mis-idn",
["Ido"] = "io",
["Idoma"] = "idu",
["Idon"] = "idc",
["Idu"] = "clk",
["Idun"] = "ldb",
["Iduna"] = "viv",
["Ifo"] = "iff",
["Ifè"] = "ife",
["Igala"] = "igl",
["Igana"] = "igg",
["Igbo"] = "ig",
["Igede"] = "ige",
["Ignaciano"] = "ign",
["Igo"] = "ahl",
["Iguta"] = "nar",
["Igwe"] = "igw",
["Iha"] = "ihp",
["Ihievbe"] = "ihi",
["Ija-Zuba"] = "vki",
["Ik"] = "ikx",
["Ika"] = "ikk",
["Ikaranggal"] = "ikr",
["Ikizu"] = "ikz",
["Iko"] = "iki",
["Ikobi-Mena"] = "meb",
["Ikoma"] = "ntk",
["Ikpeng"] = "txi",
["Ikpeshi"] = "ikp",
["Ikposo"] = "kpo",
["Iku-Gora-Ankwa"] = "ikv",
["Ikulu"] = "ikl",
["Ikwere"] = "ikw",
["Ikwo"] = "iqw",
["Ila"] = "ilb",
["Ile Ape"] = "ila",
["Ilgar"] = "ilg",
["Ili Turki"] = "ili",
["Ili'uun"] = "ilu",
["Illyria"] = "xil",
["Ilocano"] = "ilo",
["Ilongot"] = "ilk",
["Ilue"] = "ilv",
["Ilwana"] = "mlk",
["Imbongu"] = "imo",
["Imonda"] = "imn",
["Imroing"] = "imr",
["Inabaknon"] = "abx",
["Inapang"] = "mzu",
["Indanga"] = "bnt-ind",
["Indo-Portugis"] = "idb",
["Indonesian"] = "id",
["Indri"] = "idr",
["Ineseño"] = "inz",
["Inga"] = "inb",
["Inggeris Kreol Islander"] = "icr",
["Inggeris Kreol Tobago"] = "tgh",
["Inggeris Kreol Trinidad"] = "trf",
["Inggeris Kreol Turks dan Caicos"] = "tch",
["Inggeris Kreol Vincent"] = "svc",
["Inggeris Kuno"] = "ang",
["Inggeris Pertengahan"] = "enm",
["Inggeris Pijin Cina"] = "cpi",
["Ingria"] = "izh",
["Ingush"] = "inh",
["Inlaod Itneg"] = "iti",
["Inoke-Yate"] = "ino",
["Inonhan"] = "loc",
["Inor"] = "ior",
["Interlingua"] = "ia",
["Interlingue"] = "ie",
["International Sign"] = "ils",
["Interslavic"] = "isv",
["Intha"] = "int",
["Inuinnaqtun"] = "esx-inq",
["Inuktitut"] = "iu",
["Inuktun"] = "esx-ink",
["Inupiaq"] = "ik",
["Inuvialuktun"] = "ikt",
["Ipai"] = "nai-ipa",
["Ipiko"] = "ipo",
["Ipili"] = "ipi",
["Ipulo"] = "ass",
["Iquito"] = "iqu",
["Ir"] = "irr",
["Irantxe"] = "irn",
["Iranun"] = "ill",
["Iraqw"] = "irk",
["Irarutu"] = "irh",
["Iraya"] = "iry",
["Ireland Kuno"] = "sga",
["Ireland Pertengahan"] = "mga",
["Iresim"] = "ire",
["Irish"] = "ga",
["Irula"] = "iru",
["Isabi"] = "isa",
["Isan"] = "tts",
["Isanzu"] = "isn",
["Isauria"] = "mis-isa",
["Isconahua"] = "isc",
["Isebe"] = "igo",
["Ishkashimi"] = "isk",
["Isinai"] = "inn",
["Isirawa"] = "srl",
["Isnag"] = "isd",
["Isoko"] = "iso",
["Istriot"] = "ist",
["Istro-Romania"] = "ruo",
["Isu"] = "isu",
["Isubu"] = "szv",
["Isyarat Kenya"] = "xki",
["Isyarat Maghribi"] = "xms",
["Isyarat Malaysia"] = "xml",
["Italian"] = "it",
["Itawit"] = "itv",
["Itelmen"] = "itl",
["Itene"] = "ite",
["Iteri"] = "itr",
["Itik"] = "itx",
["Ito"] = "itw",
["Itonama"] = "ito",
["Itsekiri"] = "its",
["Itu Mbon Uzo"] = "itm",
["Itzá"] = "itz",
["Iu Mien"] = "ium",
["Ivatan"] = "ivv",
["Iwaidja"] = "ibd",
["Iwal"] = "kbm",
["Iwam"] = "iwm",
["Iwur"] = "iwo",
["Ixcatec"] = "ixc",
["Ixil"] = "ixl",
["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",
["Jakaltek"] = "jac",
["Jakati"] = "jat",
["Jakun"] = "jak",
["Jalkunan"] = "bxl",
["Jamamadí"] = "jaa",
["Jaminjung"] = "djd",
["Jamsay"] = "djm",
["Jamtish"] = "gmq-jmk",
["Jandavra"] = "jnd",
["Janday"] = "jan",
["Jangkang"] = "djo",
["Jangshung"] = "jna",
["Janji"] = "jni",
["Japanese"] = "ja",
["Japhug"] = "sit-jap",
["Japrería"] = "jru",
["Jaqaru"] = "jqr",
["Jara"] = "jaf",
["Jarai"] = "jra",
["Jarawa"] = "anq",
["Jaru"] = "ddj",
["Jassic"] = "ysc",
["Jaunsari"] = "jns",
["Javanese"] = "jv",
["Javindo"] = "jvd",
["Jawa Caribbean"] = "jvn",
["Jawa Kuno"] = "kaw",
["Jawa Ontong"] = "ojv",
["Jawe"] = "jaz",
["Jaya"] = "jyy",
["Jebero"] = "jeb",
["Jeh"] = "jeh",
["Jehai"] = "jhi",
["Jeikó"] = "sai-jko",
["Jeju"] = "jje",
["Jemez"] = "tow",
["Jenaama Bozo"] = "bze",
["Jeng"] = "jeg",
["Jennu Kurumba"] = "xuj",
["Jepun Kuno"] = "ojp",
["Jere"] = "jer",
["Jeri Kuo"] = "jek",
["Jerman Pennsylvania"] = "pdc",
["Jerman Rendah"] = "nds",
["Jerman Tengah Timur"] = "gmw-ecg",
["Jerman Volga"] = "gmw-vog",
["Jerman Zipser"] = "gmw-zps",
["Jeru"] = "akj",
["Jerung"] = "jee",
["Jiamao"] = "jio",
["Jiba"] = "juo",
["Jibu"] = "jib",
["Jicaque Barat"] = "nai-wji",
["Jicarilla"] = "apj",
["Jie"] = "mis-jie",
["Jiiddu"] = "jii",
["Jilbe"] = "jie",
["Jili"] = "mgi",
["Jilim"] = "jil",
["Jimi"] = "jmi",
["Jimjimen"] = "jim",
["Jin"] = "cjy",
["Jina"] = "jia",
["Jingpho"] = "kac",
["Jingulu"] = "jig",
["Jiongnai Bunu"] = "pnu",
["Jirajara"] = "sai-jrj",
["Jirel"] = "jul",
["Jiru"] = "jrr",
["Jita"] = "jit",
["Jizhao"] = "mis-jzh",
["Jju"] = "kaj",
["Joba"] = "job",
["Jofotek-Bromnya"] = "jbr",
["Jola-Fonyi"] = "dyo",
["Jola-Kasa"] = "csk",
["Jonkor Bourmataguil"] = "jeu",
["Jorá"] = "jor",
["Jowulu"] = "jow",
["Ju"] = "juu",
["Juang"] = "jun",
["Judeo-Itali"] = "itk",
["Judeo-Persian"] = "jpr",
["Judeo-Tat"] = "jdt",
["Jukun Takum"] = "jbu",
["Jumaytepeque"] = "nai-jum",
["Jumjum"] = "jum",
["Jumli"] = "jml",
["Jungle Inga"] = "inj",
["Jur Modo"] = "bex",
["Juray"] = "juy",
["Jurchen"] = "juc",
["Jurúna"] = "jur",
["Jutiapa"] = "nai-jtp",
["Jutish"] = "jut",
["Juwal"] = "mwb",
["Juǀ'hoan"] = "ktz",
["Jwira-Pepesa"] = "jwi",
["Júma"] = "jua",
["K'iche'"] = "quc",
["Kaamba"] = "xku",
["Kaan"] = "ldl",
["Kaapor Sign Language"] = "uks",
["Kaba"] = "ksp",
["Kabalai"] = "kvf",
["Kabardia"] = "kbd",
["Kabatei"] = "xkp",
["Kabba-Laka"] = "lap",
["Kabishiana"] = "tup-kab",
["Kabiyé"] = "kbp",
["Kabola"] = "klz",
["Kabore One"] = "onk",
["Kabras"] = "lkb",
["Kaburi"] = "uka",
["Kabutra"] = "kbu",
["Kabuverdianu"] = "kea",
["Kabwa"] = "cwa",
["Kabwari"] = "kcw",
["Kabyle"] = "kab",
["Kachama-Ganjule"] = "kcx",
["Kachari"] = "xac",
["Kachchi"] = "kfr",
["Kacipo-Balesi"] = "koe",
["Kaco'"] = "xkk",
["Kadai"] = "kzd",
["Kadar"] = "kej",
["Kadara"] = "kad",
["Kadaru"] = "kdu",
["Kadazan"] = "kzj",
["Kadazan Labuk-Kinabatangan"] = "dtb",
["Kadazan Sungai Klias"] = "kqt",
["Kadazandusun"] = "dtp",
["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",
["Kaingáng São Paulo"] = "zkp",
["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",
["Kalagan"] = "kqe",
["Kalagan Kagan"] = "kll",
["Kalagan Tagakaulu"] = "klg",
["Kalam"] = "kmh",
["Kalami"] = "gwc",
["Kalamsé"] = "knz",
["Kalanadi"] = "wkl",
["Kalanga"] = "kck",
["Kalao"] = "kly",
["Kalapuya"] = "kyl",
["Kalapuya Selatan"] = "sxk",
["Kalapuya Utara"] = "nrt",
["Kalarko"] = "kba",
["Kalasha"] = "kls",
["Kalasuri"] = "xme-kls",
["Kalašma"] = "ine-kal",
["Kalenjin"] = "kln",
["Kalinago"] = "crb",
["Kalinga Butbut"] = "kyb",
["Kalinga Lembah Mabaka"] = "kkg",
["Kalinga Limos"] = "kmk",
["Kalinga Lubuagan"] = "knb",
["Kalinga Madukayang"] = "kmd",
["Kalinga Selatan"] = "ksc",
["Kalinga Tanudan"] = "kml",
["Kalkatungu"] = "ktg",
["Kalkoti"] = "xka",
["Kalmyk"] = "xal",
["Kalou"] = "ywa",
["Kaluli"] = "bco",
["Kalumpang"] = "kli",
["Kam"] = "kdx",
["Kam Selatan"] = "kmc",
["Kam Utara"] = "doc",
["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",
["Kambera"] = "xbr",
["Kamberataro"] = "kbv",
["Kamberau"] = "irx",
["Kambiwá"] = "xbw",
["Kami"] = "kmi",
["Kamkata-viri"] = "bsh",
["Kamo"] = "kcq",
["Kamoro"] = "kgq",
["Kamta"] = "rkt",
["Kamu"] = "xmu",
["Kamula"] = "xla",
["Kamwe"] = "hig",
["Kanakanabu"] = "xnb",
["Kanakuru"] = "kna",
["Kanamari"] = "knm",
["Kanashi"] = "xns",
["Kanasi"] = "soq",
["Kandas"] = "kqw",
["Kande"] = "kbs",
["Kang"] = "kyp",
["Kanga"] = "kcp",
["Kangean"] = "kkv",
["Kanggape"] = "igm",
["Kangjia"] = "kxs",
["Kango"] = "kty",
["Kango-Sua"] = "kzy",
["Kangri"] = "xnr",
["Kaniet"] = "ktk",
["Kanikkaran"] = "kev",
["Kaningdon-Nindem"] = "kdp",
["Kaningi"] = "kzo",
["Kaningra"] = "knr",
["Kaninuwa"] = "wat",
["Kanite"] = "kmu",
["Kanjari"] = "kft",
["Kanju"] = "kbe",
["Kankanaey"] = "kne",
["Kankanay Utara"] = "xnn",
["Kannada"] = "kn",
["Kannada Kuno"] = "dra-okn",
["Kannada Kurumba"] = "kfi",
["Kannada Pertengahan"] = "dra-mkn",
["Kannauji"] = "bjj",
["Kanowit"] = "kxn",
["Kanoé"] = "kxo",
["Kansa"] = "ksk",
["Kantonis"] = "yue",
["Kantosi"] = "xkt",
["Kanu"] = "khx",
["Kanufi"] = "kni",
["Kanuri"] = "kr",
["Kanyok"] = "kny",
["Kao"] = "kax",
["Kaonde"] = "kqn",
["Kap"] = "ykm",
["Kapampangan"] = "pam",
["Kapauri"] = "khp",
["Kapin"] = "tbx",
["Kapinawá"] = "xpn",
["Kapingamarangi"] = "kpg",
["Kapriman"] = "dju",
["Kaptiau"] = "kbi",
["Kapya"] = "klo",
["Kaqchikel"] = "cak",
["Kara (New Guinea)"] = "leu",
["Kara (Tanzania)"] = "reg",
["Karaboro Barat"] = "kza",
["Karaboro Timur"] = "xrb",
["Karachay-Balkar"] = "krc",
["Karaim"] = "kdr",
["Karajá"] = "kpj",
["Karakalpak"] = "kaa",
["Karakhanid"] = "xqa",
["Karami"] = "xar",
["Karamojong"] = "kdj",
["Karang"] = "kzr",
["Karanga"] = "kth",
["Karankawa"] = "zkk",
["Karao"] = "kyj",
["Karas"] = "kgv",
["Karata"] = "kpt",
["Karawa"] = "xrw",
["Karbi"] = "mjw",
["Karbi Amri"] = "ajz",
["Kare (Africa)"] = "kbn",
["Kare (New Guinea)"] = "kmf",
["Karekare"] = "kai",
["Karelia"] = "krl",
["Karen Brek"] = "kvl",
["Karen Bwe"] = "bwe",
["Karen Geba"] = "kvq",
["Karen Lahta"] = "kvt",
["Karen Manumanaw"] = "kxf",
["Karen Pa'o"] = "blk",
["Karen Paku"] = "kpp",
["Karen S'gaw"] = "ksw",
["Karen Yinbaw"] = "kvu",
["Karen Yintale"] = "kvy",
["Karen Zayein"] = "kxk",
["Karey"] = "kyd",
["Kari"] = "kbj",
["Kari'na"] = "car",
["Karingani"] = "kgn",
["Karipuna"] = "kuq",
["Karipúna"] = "kgm",
["Kariri"] = "kzw",
["Karitiâna"] = "ktn",
["Kariya"] = "kil",
["Kariyarra"] = "vka",
["Karkar-Yuri"] = "yuj",
["Karkin"] = "krb",
["Karko"] = "kko",
["Karnai"] = "bbv",
["Karo"] = "kxh",
["Karok"] = "kyh",
["Karolanos"] = "kyn",
["Karon"] = "krx",
["Karon Dori"] = "kgw",
["Karore"] = "xkx",
["Karranga"] = "xrq",
["Karuwali"] = "rxw",
["Kasanga"] = "ccj",
["Kasem"] = "xsm",
["Kashaya"] = "kju",
["Kashmiri"] = "ks",
["Kashubian"] = "csb",
["Kasiguranin"] = "ksn",
["Kaska"] = "kkz",
["Kaskean"] = "zsk",
["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",
["Katu Barat"] = "kuf",
["Katu Timur"] = "ktv",
["Katua"] = "kta",
["Katukina"] = "knt",
["Kaulong"] = "pss",
["Kaur"] = "vkk",
["Kaure"] = "bpp",
["Kaurna"] = "zku",
["Kauwera"] = "xau",
["Kavalan"] = "ckv",
["Kavet"] = "krv",
["Kawacha"] = "kcb",
["Kawahiva"] = "tup-kaw",
["Kawaiisu"] = "xaw",
["Kawe"] = "kgb",
["Kawishana"] = "awd-kaw",
["Kawésqar"] = "alc",
["Kaxararí"] = "ktx",
["Kaxuyana"] = "kbb",
["Kaya"] = "zra",
["Kayabí"] = "kyz",
["Kayagar"] = "kyt",
["Kayah Barat"] = "kyu",
["Kayah Timur"] = "eky",
["Kayan"] = "pdu",
["Kayan Baram"] = "kys",
["Kayan Mahakam"] = "xay",
["Kayan Mendalam"] = "xkd",
["Kayan Rejang"] = "ree",
["Kayan Sungai Kayan"] = "xkn",
["Kayan Wahau"] = "whu",
["Kayapa Kallahan"] = "kak",
["Kayapó"] = "txu",
["Kayardild"] = "gyd",
["Kayeli"] = "kzl",
["Kayong"] = "kxy",
["Kayort"] = "kyv",
["Kayupulau"] = "kzu",
["Kazakh"] = "kk",
["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",
["Keley-I Kallahan"] = "ify",
["Keliko"] = "kbo",
["Kelo"] = "xel",
["Kelon"] = "kyo",
["Kemak"] = "kem",
["Kembayan"] = "xem",
["Kemberano"] = "bzp",
["Kembra"] = "xkw",
["Kemezung"] = "dmo",
["Kemiehua"] = "kfj",
["Kemtuik"] = "kmt",
["Kenaboi"] = "xbn",
["Kendeje"] = "klf",
["Kendem"] = "kvm",
["Kenga"] = "kyq",
["Keninjal"] = "knl",
["Kensiu"] = "kns",
["Kenswei Nsei"] = "ndb",
["Kenyah Wahau"] = "whk",
["Kenyang"] = "ken",
["Kenyi"] = "lke",
["Keoru-Ahia"] = "xeu",
["Kepkiriwát"] = "kpn",
["Kepo'"] = "kuk",
["Kera"] = "ker",
["Kerak"] = "hhr",
["Kereho"] = "xke",
["Kerek"] = "krk",
["Keres Barat"] = "kjq",
["Keres Timur"] = "kee",
["Kerewe"] = "ked",
["Kerewo"] = "kxz",
["Kerinci"] = "kvr",
["Kermanik"] = "xme-ker",
["Kesawai"] = "xes",
["Ket"] = "ket",
["Ketangalan"] = "kae",
["Kete"] = "kcv",
["Ketengban"] = "xte",
["Ketum"] = "ktt",
["Kewa"] = "kew",
["Kewa Timur"] = "kjs",
["Keyagana"] = "kyg",
["Kgalagadi"] = "xkv",
["Khakas"] = "kjh",
["Khalaj"] = "klj",
["Khaling"] = "klr",
["Kham"] = "kjl",
["Kham Parbate Timur"] = "kif",
["Khamti"] = "kht",
["Khamyang"] = "ksu",
["Khana"] = "ogo",
["Khandeshi"] = "khn",
["Khanty Selatan"] = "kca-sou",
["Khanty Timur"] = "kca-eas",
["Khanty Utara"] = "kca-nor",
["Khao"] = "xao",
["Kharam Naga"] = "kfw",
["Kharia"] = "khr",
["Kharia Thar"] = "ksy",
["Khasi"] = "kha",
["Khayo"] = "lko",
["Khazar"] = "zkz",
["Khe"] = "kqg",
["Khehek"] = "tlx",
["Khengkha"] = "xkf",
["Khetrani"] = "xhe",
["Khinalug"] = "kjj",
["Khirwar"] = "kwx",
["Khisa"] = "kqm",
["Khitan"] = "zkt",
["Khlor"] = "llo",
["Khlula"] = "ykl",
["Khmer"] = "km",
["Khmer Kuno"] = "okz",
["Khmer Pertengahan"] = "xhm",
["Khmer Utara"] = "kxm",
["Khmu"] = "kjg",
["Khoekhoe"] = "naq",
["Khoini"] = "xkc",
["Kholok"] = "ktc",
["Kholosi"] = "inc-kho",
["Khonso"] = "kxc",
["Khorezmian Turkic"] = "zkh",
["Khortha"] = "inc-khr",
["Khotan"] = "kho",
["Khowar"] = "khw",
["Khroskyabs"] = "jiq",
["Khua"] = "xhv",
["Khuen"] = "khf",
["Khvarshi"] = "khv",
["Khwarezm"] = "xco",
["Khwe"] = "xuu",
["Kháng"] = "kjm",
["Khün"] = "kkh",
["Kibala"] = "blv",
["Kibena"] = "bez",
["Kibet"] = "kie",
["Kibiri"] = "prm",
["Kichwa"] = "qwe-kch",
["Kickapoo"] = "kic",
["Kikai"] = "kzg",
["Kikami"] = "kcu",
["Kikuyu"] = "ki",
["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",
["Kinnauri"] = "kfk",
["Kinnauri Bhoti"] = "nes",
["Kintaq"] = "knq",
["Kinuku"] = "kkd",
["Kioko"] = "ues",
["Kiong"] = "kkm",
["Kiorr"] = "xko",
["Kiowa"] = "kio",
["Kipchak"] = "qwm",
["Kipfokomo"] = "pkb",
["Kipsigis"] = "sgc",
["Kiput"] = "kyi",
["Kir-Balar"] = "kkr",
["Kirfi"] = "kks",
["Kirike"] = "okr",
["Kirikiri"] = "kiy",
["Kirya-Konzel"] = "fkk",
["Kis"] = "kis",
["Kisa"] = "lks",
["Kisan"] = "xis",
["Kisankasa"] = "kqh",
["Kisar"] = "kje",
["Kisi"] = "kiz",
["Kissi Selatan"] = "kss",
["Kissi Utara"] = "kqs",
["Kitanemuk"] = "azc-ktn",
["Kitembo"] = "tbt",
["Kitsai"] = "kii",
["Kituba"] = "ktu",
["Kiunum"] = "wei",
["Kiwai Selatan"] = "kjd",
["Kiwai Timur Laut"] = "kiw",
["Kla"] = "lda",
["Klallam"] = "clm",
["Klamath-Modoc"] = "kla",
["Klao"] = "klu",
["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 Indus"] = "mvy",
["Kohistani Shina"] = "plk",
["Koho"] = "kpm",
["Kohumono"] = "bcs",
["Koi"] = "kkt",
["Koiari Gunung"] = "kpx",
["Koibal"] = "zkb",
["Koireng"] = "nkd",
["Koitabu"] = "kqi",
["Koiwat"] = "kxt",
["Kok-Paponk"] = "okg",
["Kokata"] = "ktd",
["Kokborok"] = "trp",
["Koke"] = "kou",
["Koko-Bera"] = "kkp",
["Kokoda"] = "xod",
["Kokola"] = "kzn",
["Kokota"] = "kkk",
["Kol (Cameroon)"] = "biw",
["Kol (New Guinea)"] = "kol",
["Kola"] = "kvv",
["Kolami"] = "kfb",
["Kolami Tenggara"] = "nit",
["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 Kuno"] = "urj-koo",
["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",
["Koneraw"] = "kdw",
["Kongo"] = "kg",
["Konjo Pesisir"] = "kjc",
["Konkani"] = "kok",
["Konkomba"] = "xon",
["Konni"] = "kma",
["Kono (Guinea)"] = "knu",
["Kono (Nigeria)"] = "klk",
["Kono (Sierra Leone)"] = "kno",
["Konomala"] = "koa",
["Konomihu"] = "nai-knm",
["Konongo"] = "kcz",
["Konzo"] = "koo",
["Koonzime"] = "ozm",
["Koorete"] = "kqy",
["Kopar"] = "xop",
["Kopkaka"] = "opk",
["Korafe-Yegha"] = "kpr",
["Korak"] = "koz",
["Korana"] = "kqz",
["Korandje"] = "kcy",
["Korea Kuno"] = "oko",
["Korea Moden Awal"] = "ko-ear",
["Korea Pertengahan"] = "okm",
["Korean"] = "ko",
["Koreguaje"] = "coe",
["Koresh-e Rostam"] = "okh",
["Korku"] = "kfq",
["Koro (Afrika Barat)"] = "kfo",
["Koro (India)"] = "jkr",
["Koro (New Guinea)"] = "kxr",
["Koro (Vanuatu)"] = "krf",
["Koromfé"] = "kfz",
["Koromira"] = "kqj",
["Koronadal Blaan"] = "bpr",
["Koroni"] = "xkq",
["Korop"] = "krp",
["Koropó"] = "xxr",
["Koroshi"] = "ktl",
["Korowai"] = "khe",
["Korra Koraga"] = "kfd",
["Korubo"] = "xor",
["Korupun-Sela"] = "kpq",
["Korwa"] = "kfp",
["Koryak"] = "kpy",
["Kosadle"] = "kiq",
["Kosarek Yale"] = "kkl",
["Kosena"] = "kze",
["Koshin"] = "kid",
["Kosrae"] = "kos",
["Kota (Gabon)"] = "koq",
["Kota (India)"] = "kfe",
["Kotava"] = "avk",
["Koti"] = "eko",
["Kott"] = "zko",
["Kou"] = "snz",
["Kouya"] = "kyf",
["Kovai"] = "kqb",
["Kove"] = "kvc",
["Kowaki"] = "xow",
["Kowiai"] = "kwh",
["Koy Sanjaq Surat"] = "kqd",
["Koya"] = "kff",
["Koyaga"] = "kga",
["Koyo"] = "koh",
["Koyra Chiini"] = "khq",
["Koyraboro Senni"] = "ses",
["Koyukon"] = "koy",
["Kpagua"] = "kuw",
["Kpala"] = "kpl",
["Kpan"] = "kpk",
["Kpasam"] = "pbn",
["Kpati"] = "koc",
["Kpatili"] = "kym",
["Kpee"] = "cpo",
["Kpelle"] = "kpe",
["Kpessi"] = "kef",
["Kplang"] = "kph",
["Krache"] = "kye",
["Krahn Barat"] = "krw",
["Krahn Timur"] = "kqo",
["Krahô"] = "xra",
["Kraol"] = "rka",
["Krenak"] = "kqq",
["Kreol Afro-Seminole"] = "afs",
["Kreol Bahamas"] = "bah",
["Kreol Belize"] = "bzj",
["Kreol Belter"] = "art-bel",
["Kreol Guinea-Bissau"] = "pov",
["Kreol Hawaii"] = "hwc",
["Kreol Inggeris Antigua dan Barbuda"] = "aig",
["Kreol Inggeris Guyana"] = "gyn",
["Kreol Jamaica"] = "jam",
["Kreol Kepulauan Virgin"] = "vic",
["Kreol Lelaki Ngatik"] = "ngm",
["Kreol Louisiana"] = "lou",
["Kreol Mauritius"] = "mfe",
["Kreol Nicaragua"] = "bzk",
["Kreol Selat Torres"] = "tcs",
["Kreol Seychelles"] = "crs",
["Kreol Yilan"] = "ycr",
["Kresh"] = "krs",
["Krevinian"] = "zkv",
["Kreye"] = "xre",
["Krikati-Timbira"] = "xri",
["Krim"] = "krm",
["Krio"] = "kri",
["Kriol"] = "rop",
["Krisa"] = "ksi",
["Kristang"] = "mcm",
["Krobu"] = "kxb",
["Krongo"] = "kgo",
["Kru'ng"] = "krr",
["Krymchak"] = "jct",
["Kryts"] = "kry",
["Kua"] = "tyu",
["Kua-nsi"] = "ykn",
["Kuamasi"] = "yku",
["Kuan"] = "uan",
["Kuanhua"] = "xnh",
["Kube"] = "kgf",
["Kubi"] = "kof",
["Kubo"] = "jko",
["Kubu"] = "kvb",
["Kucong"] = "lkc",
["Kudiya"] = "kfg",
["Kudmali"] = "kyw",
["Kudu-Camo"] = "kov",
["Kugama"] = "kow",
["Kugbo"] = "kes",
["Kugu-Muminh"] = "xmh",
["Kui (India)"] = "kxu",
["Kui (Indonesia)"] = "kvd",
["Kuijau"] = "dkr",
["Kuikúro"] = "kui",
["Kujarge"] = "vkj",
["Kuk"] = "kfn",
["Kukatja"] = "kux",
["Kukele"] = "kez",
["Kukkuzi"] = "urj-kuk",
["Kukna"] = "kex",
["Kuku-Mangk"] = "xmq",
["Kuku-Mu'inh"] = "xmp",
["Kuku-Thaypan"] = "typ",
["Kuku-Ugbanh"] = "ugb",
["Kuku-Uwanh"] = "uwa",
["Kuku-Yalanji"] = "gvn",
["Kula"] = "tpg",
["Kulango Bouna"] = "nku",
["Kulere"] = "kul",
["Kulfa"] = "kxj",
["Kulina"] = "xpk",
["Kulisusu"] = "vkl",
["Kullu Pahari"] = "kfx",
["Kulon"] = "uon",
["Kulon-Pazeh"] = "uun",
["Kulung"] = "kle",
["Kumak"] = "nee",
["Kumalu"] = "ksl",
["Kumam"] = "kdi",
["Kuman"] = "kue",
["Kumaoni"] = "kfy",
["Kumarbhag Paharia"] = "kmj",
["Kumba"] = "ksm",
["Kumbainggar"] = "kgs",
["Kumbaran"] = "wkb",
["Kumbewaha"] = "xks",
["Kumeyaay"] = "nai-kum",
["Kumhali"] = "kra",
["Kumu"] = "kmw",
["Kumukio"] = "kuo",
["Kumyk"] = "kum",
["Kumzari"] = "zum",
["Kuna"] = "cuk",
["Kuna Sempadan"] = "kvn",
["Kunama"] = "kun",
["Kunbarlang"] = "wlg",
["Kunda"] = "kdn",
["Kundal Shahi"] = "shd",
["Kunduvadi"] = "wku",
["Kung"] = "kfl",
["Kunggari"] = "kgl",
["Kungkari"] = "lku",
["Kuni"] = "kse",
["Kuni-Boazi"] = "kvg",
["Kunigami"] = "xug",
["Kunimaipa"] = "kup",
["Kunja"] = "pep",
["Kunjen"] = "kjn",
["Kunyi"] = "njx",
["Kunza"] = "kuz",
["Kuo"] = "xuo",
["Kuot"] = "kto",
["Kupa"] = "kug",
["Kupia"] = "key",
["Kupsabiny"] = "kpz",
["Kur"] = "kuv",
["Kura Ede Nago"] = "nqk",
["Kurama"] = "krh",
["Kuranko"] = "knk",
["Kurdi Selatan"] = "sdh",
["Kurdi Tengah"] = "ckb",
["Kurdi Utara"] = "kmr",
["Kuri"] = "nbn",
["Kuria"] = "kuj",
["Kurichiya"] = "kfh",
["Kurmukar"] = "kfv",
["Kurnai"] = "unn",
["Kurrama"] = "vku",
["Kursav"] = "faj",
["Kurti"] = "ktm",
["Kurtöp"] = "xkz",
["Kurudu"] = "kjr",
["Kurukh"] = "kru",
["Kurumba Alu"] = "xua",
["Kurumba Betta"] = "xub",
["Kuruáya"] = "kyr",
["Kusaal"] = "kus",
["Kusaghe"] = "ksg",
["Kushi"] = "kuh",
["Kustenau"] = "awd-kus",
["Kusu"] = "ksv",
["Kusunda"] = "kgg",
["Kutenai"] = "kut",
["Kutep"] = "kub",
["Kuthant"] = "xut",
["Kutto"] = "kpa",
["Kutu"] = "kdc",
["Kuturmi"] = "khj",
["Kuuk Thaayorre"] = "thd",
["Kuuk Yak"] = "uky",
["Kuuku-Ya'u"] = "kuy",
["Kuvale"] = "olu",
["Kuvi"] = "kxv",
["Kuwaa"] = "blh",
["Kuwaataay"] = "cwt",
["Kuwani"] = "paa-kwn",
["Kuy"] = "kdt",
["Kven"] = "fkv",
["Kw'adza"] = "wka",
["Kwa'"] = "bko",
["Kwaami"] = "ksq",
["Kwadi"] = "kwz",
["Kwaio"] = "kwd",
["Kwaja"] = "kdz",
["Kwak"] = "kwq",
["Kwak'wala"] = "kwk",
["Kwakum"] = "kwu",
["Kwalhioqua-Tlatskanai"] = "qwt",
["Kwama"] = "kmq",
["Kwambi"] = "kwm",
["Kwamera"] = "tnk",
["Kwami"] = "ktf",
["Kwamtim One"] = "okk",
["Kwang"] = "kvi",
["Kwanga"] = "kwj",
["Kwangali"] = "kwn",
["Kwanja"] = "knp",
["Kwanka"] = "bij",
["Kwanyama"] = "kj",
["Kwara'ae"] = "kwf",
["Kwasio"] = "nmg",
["Kwaya"] = "kya",
["Kwaza"] = "xwa",
["Kwegu"] = "xwg",
["Kwer"] = "kwr",
["Kwerba"] = "kwe",
["Kwerba Mamberamo"] = "xwr",
["Kwere"] = "cwe",
["Kwerisa"] = "kkb",
["Kwese"] = "kws",
["Kwesten"] = "kwt",
["Kwini"] = "gww",
["Kwinsu"] = "kuc",
["Kwinti"] = "kww",
["Kwoma"] = "kmo",
["Kwomtari"] = "kwo",
["Kyak"] = "bka",
["Kyaka"] = "kyc",
["Kyakala"] = "tuw-kkl",
["Kyenele"] = "kql",
["Kyenga"] = "tye",
["Kyerung"] = "kgy",
["Kyrgyz"] = "ky",
["Kâte"] = "kmg",
["Kélé"] = "keb",
["Kómnzo"] = "paa-kmn",
["La'bi"] = "lbi",
["Laalaa"] = "cae",
["Laba"] = "lau",
["Label"] = "lbb",
["Labir"] = "jku",
["Labo"] = "mwi",
["Labo Phowa"] = "ypb",
["Laboya"] = "lmy",
["Labu"] = "lbu",
["Lacandon"] = "lac",
["Lachi"] = "lbt",
["Lachi Putih"] = "lwh",
["Lachiguiri Zapotec"] = "zpa",
["Lachixío Zapotec"] = "zpl",
["Ladakhi"] = "lbj",
["Ladin"] = "lld",
["Ladino"] = "lad",
["Ladji-Ladji"] = "llj",
["Laeko-Libuat"] = "lkl",
["Lafofa"] = "laf",
["Laghu"] = "lgb",
["Laghuu"] = "lgh",
["Lagwan"] = "kot",
["Laha (Indonesia)"] = "lhh",
["Laha (Vietnam)"] = "lha",
["Lahanan"] = "lhn",
["Lahnda"] = "lah",
["Lahu"] = "lhu",
["Lahu Shi"] = "lhi",
["Lahul Lohar"] = "lhl",
["Lai"] = "cnh",
["Laimbue"] = "lmx",
["Laiyolo"] = "lji",
["Lak"] = "lbe",
["Laka"] = "lak",
["Lakalei"] = "lka",
["Lake Miwok"] = "lmw",
["Lakha"] = "lkh",
["Laki"] = "lki",
["Lakkia"] = "lbc",
["Lakon"] = "lkn",
["Lakondê"] = "lkd",
["Lakota"] = "lkt",
["Lakota Dida"] = "dic",
["Lala (Afrika Selatan)"] = "bnt-lal",
["Lala (New Guinea)"] = "nrz",
["Lala-Bisa"] = "leb",
["Lala-Roba"] = "lla",
["Lalana Chinantec"] = "cnl",
["Lalu Barat"] = "ywl",
["Lalu Timur"] = "yit",
["Lama Bai"] = "lay",
["Lamaholot"] = "slp",
["Lamalera"] = "lmr",
["Lamang"] = "hia",
["Lamatuka"] = "lmq",
["Lamba"] = "lam",
["Lambadi"] = "lmn",
["Lambichhong"] = "lmh",
["Lambya"] = "lai",
["Lame"] = "bma",
["Lamenu"] = "lmu",
["Lamet"] = "lbn",
["Lamja-Dengsa-Tola"] = "ldh",
["Lamkang"] = "lmk",
["Lamma"] = "lev",
["Lamnso'"] = "lns",
["Lamogai"] = "lmg",
["Lampung Api"] = "ljp",
["Lamu"] = "llh",
["Lamu-Lamu"] = "lby",
["Lanas Lobu"] = "ruu",
["Landoma"] = "ldm",
["Lang'e"] = "yne",
["Langam"] = "lnm",
["Langbashe"] = "lna",
["Langi"] = "lag",
["Langnian Buyang"] = "yln",
["Lango (Sudan)"] = "lno",
["Lango (Uganda)"] = "laj",
["Lanima"] = "lnw",
["Lanoh"] = "lnh",
["Lao"] = "lo",
["Laomian"] = "lwm",
["Laopang"] = "lbg",
["Lapaguía-Guivini Zapotec"] = "ztl",
["Lapine"] = "art-lap",
["Laragia"] = "lrg",
["Lardil"] = "lbz",
["Larestani"] = "lrl",
["Larevat"] = "lrv",
["Larike-Wakasihu"] = "alo",
["Laro"] = "lro",
["Larteh"] = "lar",
["Laru"] = "lan",
["Lasalimu"] = "llm",
["Lasgerdi"] = "lsa",
["Lashi"] = "lsi",
["Lasi"] = "lss",
["Latgalia"] = "ltg",
["Latin"] = "la",
["Latu"] = "ltu",
["Latundê"] = "ltn",
["Latvian"] = "lv",
["Lau"] = "llu",
["Laua"] = "luf",
["Lauan"] = "llx",
["Lauje"] = "law",
["Laura"] = "lur",
["Laurentia"] = "lre",
["Lavatbura-Lamusong"] = "lbv",
["Lave"] = "brb",
["Laven"] = "lbo",
["Lavukaleve"] = "lvk",
["Lawa Barat"] = "lcp",
["Lawa Timur"] = "lwl",
["Lawangan"] = "lbx",
["Lawi"] = "lvi",
["Lawu"] = "lwu",
["Lawunuia"] = "tgi",
["Layakha"] = "lya",
["Laz"] = "lzz",
["Laze"] = "tbq-laz",
["Lealao Chinantec"] = "cle",
["Leco"] = "lec",
["Ledo Kaili"] = "lew",
["Leelau"] = "ldk",
["Lefa"] = "lfa",
["Lega-Mwenga"] = "lgm",
["Lega-Shabunda"] = "lea",
["Legbo"] = "agb",
["Legenyem"] = "lcc",
["Lehali"] = "tql",
["Leinong Naga"] = "lzn",
["Leipon"] = "lek",
["Leitre"] = "paa-lei",
["Lela"] = "dri",
["Lelak"] = "llk",
["Lele (Chad)"] = "lln",
["Lele (Congo)"] = "lel",
["Lele (Guinea)"] = "llc",
["Lele (New Guinea)"] = "lle",
["Lelemi"] = "lef",
["Lelepa"] = "lpa",
["Lembata Barat"] = "lmj",
["Lembata Selatan"] = "lmf",
["Lembena"] = "leq",
["Lemerig"] = "lrz",
["Lemio"] = "lei",
["Lemnos"] = "xle",
["Lemolang"] = "ley",
["Lemoro"] = "ldj",
["Lenakel"] = "tnl",
["Lenca Honduras"] = "len",
["Lenca Salvador"] = "nai-sln",
["Lendu"] = "led",
["Lengilu"] = "lgi",
["Lengo"] = "lgr",
["Lengola"] = "lej",
["Lenje"] = "leh",
["Lenkau"] = "ler",
["Lenyima"] = "ldg",
["Leonese"] = "roa-leo",
["Leonese Kuno"] = "roa-ole",
["Lepcha"] = "lep",
["Lepki"] = "lpe",
["Lepontii"] = "xlp",
["Lese"] = "les",
["Lesing-Gelimi"] = "let",
["Letemboi"] = "nms",
["Leti (Cameroon)"] = "leo",
["Leti (Indonesia)"] = "lti",
["Levuka"] = "lvu",
["Lewo"] = "lww",
["Lewo Eleng"] = "lwe",
["Lewotobi"] = "lwt",
["Leyigha"] = "ayi",
["Lezgi"] = "lez",
["Lhao Vo"] = "mhx",
["Lhokpu"] = "lhp",
["Li'o"] = "ljl",
["Liabuku"] = "lix",
["Liana-Seti"] = "ste",
["Liberia Kpelle"] = "xpe",
["Liberian Kreyol"] = "lir",
["Libido"] = "liq",
["Libinza"] = "liz",
["Liburni"] = "xli",
["Ligbi"] = "lig",
["Ligenza"] = "lgz",
["Liguria Purba"] = "xlg",
["Ligurian"] = "lij",
["Lihir"] = "lih",
["Lika"] = "lik",
["Liki"] = "lio",
["Likila"] = "lie",
["Likuba"] = "kxx",
["Likum"] = "lib",
["Likwala"] = "kwc",
["Lilau"] = "lll",
["Lillooet"] = "lil",
["Limassa"] = "bme",
["Limba Barat-Tengah"] = "lia",
["Limba Timur"] = "lma",
["Limbu"] = "lif",
["Limbum"] = "lmp",
["Limburgish"] = "li",
["Limi"] = "ylm",
["Limilngan"] = "lmc",
["Lindu"] = "klw",
["Linear A"] = "lab",
["Lingala"] = "ln",
["Lingao"] = "onb",
["Lingkhim"] = "lii",
["Lingua Franca Nova"] = "lfn",
["Linngithigh"] = "lnj",
["Lipan"] = "apl",
["Lipo"] = "lpo",
["Lisabata-Nuniali"] = "lcs",
["Lisela"] = "lcl",
["Lish"] = "lsh",
["Lishana Deni"] = "lsd",
["Lishanid Noshan"] = "aij",
["Lishán Didán"] = "trg",
["Lisu"] = "lis",
["Literary Chinese"] = "lzh",
["Lithuania Kuno"] = "olt",
["Lithuanian"] = "lt",
["Lithuanian Sign Language"] = "lls",
["Little Swanport"] = "aus-lsw",
["Litzlitz"] = "lzl",
["Livonian"] = "liv",
["Livvi"] = "olo",
["Lizu"] = "sit-liz",
["Lo-Toga"] = "lht",
["Loarki"] = "lrk",
["Lobala"] = "loq",
["Lobi"] = "lob",
["Lodhi"] = "lbm",
["Logba"] = "lgq",
["Logo"] = "log",
["Logol"] = "lof",
["Logooli"] = "rag",
["Logorik"] = "liu",
["Lojban"] = "jbo",
["Lokaa"] = "yaz",
["Loko"] = "lok",
["Lokono"] = "arw",
["Lokoya"] = "lky",
["Lola"] = "lcd",
["Lolak"] = "llq",
["Lole"] = "llg",
["Lolo"] = "llb",
["Loloda"] = "loa",
["Lolopo"] = "ycl",
["Lolopo Selatan"] = "ysp",
["Loma"] = "lom",
["Lomaiviti"] = "lmv",
["Lomakka"] = "loi",
["Lomavren"] = "rmi",
["Lombard"] = "lmo",
["Lombi"] = "lmi",
["Lombo"] = "loo",
["Lomwe"] = "ngl",
["Loncong"] = "lce",
["Long Phuri Naga"] = "lpn",
["Long Wat"] = "ttw",
["Longgu"] = "lgu",
["Longjia"] = "sit-lnj",
["Longto"] = "wok",
["Longuda"] = "lnu",
["Loniu"] = "los",
["Lonwolwol"] = "crc",
["Loo"] = "ldo",
["Lopa"] = "lop",
["Lopi"] = "lov",
["Lopit"] = "lpx",
["Lorang"] = "lrn",
["Lorediakarkar"] = "lnn",
["Lorrain"] = "roa-lor",
["Lorung Selatan"] = "lrr",
["Lorung Utara"] = "lbr",
["Lote"] = "uvl",
["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 Sorbian"] = "dsb",
["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",
["Luchazi"] = "lch",
["Lucumí"] = "luq",
["Ludian"] = "lud",
["Lufu"] = "ldq",
["Luganda"] = "lg",
["Lugbara"] = "lgg",
["Luguru"] = "ruf",
["Luhu"] = "lcq",
["Luhya"] = "luy",
["Luimbi"] = "lum",
["Luiseño"] = "lui",
["Lukpa"] = "dop",
["Lule"] = "ule",
["Lumba-Yakkha"] = "luu",
["Lumbee"] = "lmz",
["Lumbu"] = "lup",
["Lumun"] = "lmd",
["Lun Bawang"] = "lnd",
["Luna"] = "luj",
["Lunanakha"] = "luk",
["Lunda"] = "lun",
["Lungga"] = "lga",
["Luo"] = "luo",
["Lur Selatan"] = "luz",
["Lur Utara"] = "lrc",
["Luren"] = "sit-lrn",
["Luri (Nigeria)"] = "ldd",
["Lusengo"] = "lse",
["Lushootseed"] = "lut",
["Lusi"] = "khl",
["Lusitania"] = "xls",
["Lutachoni"] = "lts",
["Lutos"] = "ndy",
["Luvale"] = "lue",
["Luwati"] = "luv",
["Luwiya"] = "xlu",
["Luwo"] = "lwo",
["Luxembourgish"] = "lb",
["Luyana"] = "lyn",
["Lwalu"] = "lwa",
["Lwel"] = "lvl",
["Lycia"] = "xlc",
["Lydia"] = "xld",
["Lyngngam"] = "lyg",
["Lyélé"] = "lee",
["Láadan"] = "ldn",
["Láá Láá Bwamu"] = "bwj",
["Löyöp"] = "urr",
["Lü"] = "khb",
["Ma"] = "msj",
["Ma Manda"] = "skc",
["Ma'anyan"] = "mhy",
["Ma'di"] = "mhi",
["Ma'di Selatan"] = "snm",
["Ma'ya"] = "slz",
["Maaka"] = "mew",
["Maale"] = "mdy",
["Maasai"] = "mas",
["Maay"] = "ymm",
["Maba"] = "mqa",
["Mabaale"] = "mmz",
["Mabaan"] = "mfz",
["Mabang Bura"] = "mde",
["Mabire"] = "muj",
["Maca"] = "mca",
["Macaguaje"] = "mcl",
["Macaguán"] = "mbn",
["Macanese"] = "mzs",
["Macedonia Purba"] = "xmk",
["Macedonian"] = "mk",
["Machame"] = "jmc",
["Machiguenga"] = "mcb",
["Machinere"] = "mpd",
["Machinga"] = "mvw",
["Macoris"] = "nai-mac",
["Macuna"] = "myy",
["Macushi"] = "mbc",
["Mada (Cameroon)"] = "mxu",
["Mada (Nigeria)"] = "mda",
["Madak"] = "mmx",
["Maden"] = "xmx",
["Madhi Madhi"] = "dmd",
["Madngele"] = "zml",
["Madura"] = "mad",
["Maek"] = "hmk",
["Maeng Itneg"] = "itt",
["Mafa"] = "maf",
["Mag-Anchi Ayta"] = "sgb",
["Mag-Indi Ayta"] = "blx",
["Magahat"] = "mtw",
["Magahi"] = "mag",
["Magar Barat"] = "mrd",
["Magar Timur"] = "mgp",
["Magori"] = "zgr",
["Maguindanao"] = "mdh",
["Mahali"] = "mjx",
["Mahasu Pahari"] = "bfz",
["Mahican"] = "mjy",
["Mahongwe"] = "mhb",
["Mahou"] = "mxx",
["Maia"] = "sks",
["Maiadomu"] = "mzz",
["Maiani"] = "tnh",
["Maidu Barat Laut"] = "mjd",
["Maidu Timur Laut"] = "nmu",
["Maii"] = "mmm",
["Mailu"] = "mgu",
["Maindo"] = "cwb",
["Maipure"] = "awd-mpr",
["Mairasi"] = "zrs",
["Maisin"] = "mbq",
["Maithili"] = "mai",
["Maiwa (Indonesia)"] = "wmm",
["Maiwa (New Guinea)"] = "mti",
["Maiwala"] = "mum",
["Majang"] = "mpe",
["Majera"] = "xmj",
["Majhwar"] = "mmj",
["Mak (China)"] = "mkg",
["Mak (Nigeria)"] = "pbl",
["Makaa"] = "mcp",
["Makah"] = "myh",
["Makalero"] = "mjb",
["Makasae"] = "mkz",
["Makassar"] = "mak",
["Makayam"] = "aup",
["Makhuwa"] = "vmw",
["Makhuwa-Marrevone"] = "xmc",
["Makhuwa-Meetto"] = "mgh",
["Makhuwa-Moniga"] = "mhm",
["Makhuwa-Saka"] = "xsq",
["Makhuwa-Shirima"] = "vmk",
["Makian Barat"] = "mqs",
["Maklew"] = "mgf",
["Makolkol"] = "zmh",
["Makonde"] = "kde",
["Maku"] = "xak",
["Maku'a"] = "lva",
["Makuri Naga"] = "jmn",
["Makuráp"] = "mpu",
["Makwe"] = "ymk",
["Makyan Naga"] = "umn",
["Mal"] = "mlf",
["Mal Paharia"] = "mkb",
["Mala (New Guinea)"] = "ped",
["Mala (Nigeria)"] = "ruy",
["Mala Malasar"] = "ima",
["Malagasy"] = "mg",
["Malakula Timur Laut"] = "upv",
["Malalamai"] = "mmt",
["Malalí"] = "sai-mal",
["Malango"] = "mln",
["Malankuravan"] = "mjo",
["Malapandaram"] = "mjp",
["Malaryan"] = "mjq",
["Malas"] = "mkr",
["Malasanga"] = "mqz",
["Malasar"] = "ymr",
["Malavedan"] = "mjr",
["Malawi Lomwe"] = "lon",
["Malawian Sign Language"] = "lws",
["Malay"] = "ms",
["Malayalam"] = "ml",
["Malayic Dayak"] = "xdy",
["Malaynon"] = "mlz",
["Malba Birifor"] = "bfo",
["Male"] = "mdc",
["Malecite-Passamaquoddy"] = "pqm",
["Maleng"] = "pkt",
["Maleu-Kilenge"] = "mgl",
["Malfaxal"] = "mlx",
["Malgana"] = "vml",
["Malgbe"] = "mxf",
["Malibu"] = "sai-mlb",
["Malila"] = "mgq",
["Malimba"] = "mzd",
["Malimpung"] = "mli",
["Malol"] = "mbk",
["Maltese"] = "mt",
["Malvi"] = "mup",
["Mam"] = "mam",
["Mama"] = "mma",
["Mamaa"] = "mhf",
["Mamaindé"] = "wmd",
["Mamanwa"] = "mmn",
["Mamara"] = "myk",
["Mamasa"] = "mqj",
["Mambae"] = "mgm",
["Mambai"] = "mcs",
["Mambila Cameroon"] = "mcu",
["Mambila Nigeria"] = "mzk",
["Mamboru"] = "mvd",
["Mambwe-Lungu"] = "mgr",
["Mampruli"] = "maw",
["Mamuju"] = "mqx",
["Mamulique"] = "emm",
["Mamusi"] = "kdf",
["Mamvu"] = "mdi",
["Man Met"] = "mml",
["Manam"] = "mva",
["Manambu"] = "mle",
["Manangba"] = "nmm",
["Manangkari"] = "znk",
["Manao"] = "awd-man",
["Manchu"] = "mnc",
["Manda (Australia)"] = "zma",
["Manda (India)"] = "mha",
["Manda (Tanzania)"] = "mgs",
["Mandahuaca"] = "mht",
["Mandaia"] = "mid",
["Mandaia Klasik"] = "myz",
["Mandalorian"] = "art-man",
["Mandan"] = "mhq",
["Mandandanyi"] = "zmk",
["Mandar"] = "mdr",
["Mandara"] = "tbf",
["Mandari"] = "mqu",
["Mandarin"] = "cmn",
["Mandaya Karaga"] = "mry",
["Mandeali"] = "mjl",
["Mander"] = "mqr",
["Mandingo"] = "man",
["Mandinka"] = "mnk",
["Mandjak"] = "mfv",
["Mandobo Atas"] = "aax",
["Mandobo Bawah"] = "bwp",
["Manem"] = "jet",
["Mang"] = "zng",
["Mangala"] = "mem",
["Mangarayi"] = "mpc",
["Mangareva"] = "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",
["Mangue"] = "mom",
["Manigri-Kambolé Ede Nago"] = "xkb",
["Maninka Konyanka"] = "mku",
["Maninka Sankaran"] = "msc",
["Maninkakan Barat"] = "mlq",
["Maninkakan Kita"] = "mwk",
["Maninkakan Timur"] = "emk",
["Manipa"] = "mqp",
["Manipur Kuno"] = "omp",
["Manipuri"] = "mni",
["Mankanya"] = "knf",
["Mankiyali"] = "nlm",
["Manna-Dora"] = "mju",
["Mannan"] = "mjv",
["Mano"] = "mev",
["Manobo Agusan"] = "msm",
["Manobo Ata"] = "atd",
["Manobo Bukidnon Barat"] = "mbb",
["Manobo Cinamiguin"] = "mkx",
["Manobo Cotabato"] = "mta",
["Manobo Dibabawon"] = "mbd",
["Manobo Ilianen"] = "mbi",
["Manobo Matigsalug"] = "mbt",
["Manobo Rajah Kabunsuwan"] = "mqk",
["Manobo Sarangani"] = "mbs",
["Manombai"] = "woo",
["Mansaka"] = "msk",
["Mansi Selatan"] = "mns-sou",
["Mansi Tengah"] = "mns-cen",
["Mansi Utara"] = "mns-nor",
["Mansoanka"] = "msw",
["Manta"] = "myg",
["Mantsi"] = "nty",
["Manusela"] = "wha",
["Manx"] = "gv",
["Manya"] = "mjz",
["Manyawa"] = "mny",
["Manza"] = "mzv",
["Maonan"] = "mmd",
["Mape"] = "mlh",
["Mapena"] = "mnm",
["Mapia"] = "mpy",
["Mapidian"] = "mpw",
["Mapos Buang"] = "bzh",
["Mapoyo"] = "mcg",
["Mapudungun"] = "arn",
["Mapun"] = "sjm",
["Mara"] = "mec",
["Marachi"] = "lri",
["Maraghei"] = "vmh",
["Maragus"] = "mrs",
["Marama"] = "lrm",
["Maranao"] = "mrw",
["Maranungku"] = "zmr",
["Mararit"] = "mgb",
["Marathi"] = "mr",
["Marathi Kuno"] = "omr",
["Maratino"] = "sai-mar",
["Marau"] = "mvr",
["Marawan"] = "awd-mar",
["Marba"] = "mpg",
["Marenje"] = "vmr",
["Marfa"] = "mvu",
["Margany"] = "zmc",
["Marghi Selatan"] = "mfm",
["Margi"] = "mrt",
["Mari (Sepik)"] = "mbx",
["Mari Austronesia"] = "hob",
["Mari Barat"] = "mrj",
["Mari Timur"] = "mhr",
["Maria"] = "mds",
["Maria Bukit"] = "mrr",
["Mariaté"] = "awd-mrt",
["Maricopa"] = "mrc",
["Maridan"] = "zmd",
["Maridjabin"] = "zmj",
["Marik"] = "dad",
["Marimanindji"] = "zmm",
["Marind"] = "mrz",
["Maring"] = "mbw",
["Maringarr"] = "zmt",
["Mariri"] = "mqi",
["Maritsauá"] = "msp",
["Mariyedi"] = "zmy",
["Marka"] = "rkm",
["Markweeta"] = "enb",
["Marma"] = "rmz",
["Marovo"] = "mvo",
["Marquesas Selatan"] = "mqm",
["Marquesas Utara"] = "mrq",
["Marrgu"] = "mhg",
["Marriammu"] = "xru",
["Marrithiyel"] = "mfr",
["Marrucinian"] = "umc",
["Marshallese"] = "mh",
["Marsian"] = "ims",
["Marti Ke"] = "zmg",
["Martu Wangka"] = "mpj",
["Martuthunira"] = "vma",
["Marwari"] = "mwr",
["Marúbo"] = "mzr",
["Masaba"] = "myx",
["Masadiit Itneg"] = "tis",
["Masakará"] = "sai-msk",
["Masalit"] = "mls",
["Masana"] = "mcn",
["Masbate Sorsogon"] = "bks",
["Masbatenyo"] = "msb",
["Masela Barat"] = "mss",
["Masela Tengah"] = "mxz",
["Masela Timur"] = "vme",
["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",
["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",
["Mauwake"] = "mhl",
["Mav̋ea"] = "mkv",
["Mawa"] = "mcw",
["Mawak"] = "mjj",
["Mawan"] = "mcz",
["Mawayana"] = "mzx",
["Mawchi"] = "mke",
["Mawes"] = "mgk",
["Maxakalí"] = "mbl",
["Maxi Gbe"] = "mxl",
["Maya Epigrafi"] = "emy",
["Maya Mopan"] = "mop",
["Maya Samo"] = "sym",
["Maya Yucatec"] = "yua",
["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",
["Mazahua Michoacán"] = "mmc",
["Mazahua Tengah"] = "maz",
["Mazaltepec Zapotec"] = "zpy",
["Mazanderani"] = "mzn",
["Mazatec Chiquihuitlán"] = "maq",
["Mazatec Huautla"] = "mau",
["Mazatec Ixcatlán"] = "mzi",
["Mazatec Jalapa de Díaz"] = "maj",
["Mazatec San Jerónimo Tecóatl"] = "maa",
["Mazatec Soyaltepec"] = "vmp",
["Mazatlán Mazatec"] = "vmz",
["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",
["Mbembe Cross River"] = "mfn",
["Mbembe Tigon"] = "nza",
["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",
["Me'en"] = "mym",
["Mebu"] = "mjn",
["Medebur"] = "mjm",
["Medefaidrin"] = "dmf",
["Media Lengua"] = "mue",
["Median Kuno"] = "xme-old",
["Median Pertengahan"] = "xme-mid",
["Medumba"] = "byv",
["Mefele"] = "mfj",
["Megam"] = "mef",
["Megleno-Romania"] = "ruq",
["Mehek"] = "nux",
["Mehináku"] = "mmh",
["Mekeo"] = "mek",
["Mekmek"] = "mvk",
["Mekwei"] = "msf",
["Mekéns"] = "skf",
["Mel-Khaonh"] = "hkn",
["Melanau Daro-Matu"] = "dro",
["Melanau Sibu"] = "sdx",
["Melanau Tengah"] = "mel",
["Melayu Ambon"] = "abs",
["Melayu Baba"] = "mbf",
["Melayu Bacan"] = "btj",
["Melayu Bali"] = "mhp",
["Melayu Barisan Selatan"] = "pse",
["Melayu Berau"] = "bve",
["Melayu Brunei"] = "kxd",
["Melayu Bukit"] = "bvu",
["Melayu Cheti"] = "ccm",
["Melayu Cocos"] = "coa",
["Melayu Jambi"] = "jax",
["Melayu Kedah"] = "meo",
["Melayu Kupang"] = "mkn",
["Melayu Kutai Kota Bangun"] = "mqg",
["Melayu Larantuka"] = "lrt",
["Melayu Makassar"] = "mfp",
["Melayu Maluku Utara"] = "max",
["Melayu Manado"] = "xmm",
["Melayu Negeri Sembilan"] = "zmi",
["Melayu Patani"] = "mfa",
["Melayu Sabah"] = "msi",
["Melayu Sarawak"] = "poz-sml",
["Melayu Sri Lanka"] = "sci",
["Melayu Terengganu"] = "poz-ter",
["Mele-Fila"] = "mxe",
["Melo"] = "mfx",
["Melpa"] = "med",
["Memoni"] = "mby",
["Mendankwe-Nkwen"] = "mfd",
["Mende (Sierra Leone)"] = "men",
["Mengaka"] = "xmg",
["Mengen"] = "mee",
["Menien"] = "sai-men",
["Menka"] = "mea",
["Menominee"] = "mez",
["Mentawai"] = "mwv",
["Menya"] = "mcr",
["Meohang Barat"] = "raf",
["Meohang Timur"] = "emg",
["Meoswar"] = "mvx",
["Mer"] = "mnu",
["Meramera"] = "mxm",
["Merei"] = "lmb",
["Merey"] = "meq",
["Meriam"] = "ulk",
["Meroe"] = "xmr",
["Meru"] = "mer",
["Mesaka"] = "iyo",
["Mese"] = "mci",
["Mesir Demotik"] = "egx-dem",
["Mesir Purba"] = "egy",
["Mesme"] = "zim",
["Mesmes"] = "mys",
["Mesqan"] = "mvz",
["Messapic"] = "cms",
["Meta'"] = "mgo",
["Mewari"] = "mtr",
["Mewati"] = "wtm",
["Meyah"] = "mej",
["Mezontla Popoloca"] = "pbe",
["Meänkieli"] = "fit",
["Mfinu"] = "zmf",
["Mfumte"] = "nfu",
["Mi'kmaq"] = "mic",
["Miami"] = "mia",
["Mian"] = "mpt",
["Miani"] = "pla",
["Miao Qiandong Selatan"] = "hms",
["Miao Qiandong Timur"] = "hmq",
["Miao Qiandong Utara"] = "hea",
["Miao Xiangxi Barat"] = "mmr",
["Miao Xiangxi Timur"] = "muq",
["Michif"] = "crg",
["Michigamea"] = "cmm",
["Mid Grand Valley Dani"] = "dnt",
["Mid-Southern Banda"] = "bjo",
["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 Decorse"] = "mis-mmd",
["Mimi Nachtigal"] = "mis-mmn",
["Min Datian"] = "nan-dat",
["Min Hailufeng"] = "nan-hlh",
["Min Longyan"] = "nan-lnx",
["Min Nan"] = "nan",
["Min Puxian"] = "cpx",
["Min Sanxiang"] = "nan-zsh",
["Min Tengah"] = "czo",
["Min Timur"] = "cdo",
["Min Utara"] = "mnp",
["Min Zhenan"] = "nan-zhe",
["Mina"] = "hna",
["Minaean"] = "inm",
["Minang"] = "xrg",
["Minangkabau"] = "min",
["Minaveha"] = "mvn",
["Minderico"] = "drc",
["Mindiri"] = "mpn",
["Mingang Doso"] = "mko",
["Mingo"] = "iro-min",
["Mingrelia"] = "xmf",
["Minica Huitoto"] = "hto",
["Minidien"] = "wii",
["Minigir"] = "vmg",
["Minjungbal"] = "xjb",
["Minkin"] = "xxm",
["Minoan"] = "omn",
["Minokok"] = "mqq",
["Minriq"] = "mnq",
["Mintil"] = "mzt",
["Miqie"] = "yiq",
["Mirandese"] = "mwl",
["Mire"] = "mvh",
["Mirgan"] = "zrg",
["Miriti"] = "mmv",
["Miriwoong"] = "mep",
["Mirpur Panjabi"] = "pmu",
["Misantla Totonac"] = "tlc",
["Miship"] = "mjs",
["Misima-Paneati"] = "mpx",
["Mising"] = "mrg",
["Miskito"] = "miq",
["Mittu"] = "mwu",
["Mituku"] = "zmq",
["Miu"] = "mpo",
["Miwa"] = "vmi",
["Miwok Pesisir"] = "csi",
["Miwok Sierra Selatan"] = "skd",
["Miwok Sierra Tengah"] = "csm",
["Miwok Sierra Utara"] = "nsq",
["Miwok Teluk"] = "mkq",
["Mixe Coatlán"] = "mco",
["Mixe Juquila"] = "mxq",
["Mixe Mazatlán"] = "mzl",
["Mixe Tanah Genting"] = "mir",
["Mixe Tengah Utara"] = "neq",
["Mixe Tlahuitoltepec"] = "mxp",
["Mixe Totontepec"] = "mto",
["Mixifore"] = "mfg",
["Mixtec Alacatlatzala"] = "mim",
["Mixtec Amoltepec"] = "mbz",
["Mixtec Apasco-Apoala"] = "mip",
["Mixtec Atatláhuca"] = "mib",
["Mixtec Ayutla"] = "miy",
["Mixtec Cacaloxtepec"] = "miu",
["Mixtec Chayuco"] = "mih",
["Mixtec Chigmecatitlán"] = "mii",
["Mixtec Coatzospan"] = "miz",
["Mixtec Cuyamecalco"] = "xtu",
["Mixtec Huitepec"] = "mxs",
["Mixtec Itundujia"] = "mce",
["Mixtec Ixtayutla"] = "vmj",
["Mixtec Jamiltepec"] = "mxt",
["Mixtec Juxtlahuaca"] = "vmc",
["Mixtec Magdalena Peñasco"] = "xtm",
["Mixtec Metlatónoc"] = "mxv",
["Mixtec Mitlatongo"] = "vmm",
["Mixtec Mixtepec"] = "mix",
["Mixtec Nochixtlán Tenggara"] = "mxy",
["Mixtec Oaxaca Barat Laut"] = "mxa",
["Mixtec Ocotepec"] = "mie",
["Mixtec Peñoles"] = "mil",
["Mixtec Pinotepa Nacional"] = "mio",
["Mixtec Puebla Selatan"] = "mit",
["Mixtec San Juan Colorado"] = "mjc",
["Mixtec San Miguel Piedras"] = "xtp",
["Mixtec San Miguel el Grande"] = "mig",
["Mixtec Santa Lucía Monteverde"] = "mdv",
["Mixtec Santa María Zacatepec"] = "mza",
["Mixtec Silacayoapan"] = "mks",
["Mixtec Sindihui"] = "xts",
["Mixtec Soyaltepec"] = "vmq",
["Mixtec Tacahua"] = "xtt",
["Mixtec Teposcolula"] = "omq-tel",
["Mixtec Tezoatlán"] = "mxb",
["Mixtec Tidaá"] = "mtx",
["Mixtec Tlaxiaco Barat Daya"] = "meh",
["Mixtec Tlaxiaco Utara"] = "xtn",
["Mixtec Tlazoyaltepec"] = "mqh",
["Mixtec Tututepec"] = "mtu",
["Mixtec Yoloxochitl"] = "xty",
["Mixtec Yosondúa"] = "mpm",
["Mixtec Yucuañe"] = "mvg",
["Mixtec Yutanduchi"] = "mab",
["Mixtepec Zapotec"] = "zpm",
["Miya"] = "mkf",
["Miyako"] = "mvi",
["Miyobe"] = "soy",
["Mizo"] = "lus",
["Mlabri"] = "mra",
["Mlahsö"] = "lhs",
["Mlap"] = "kja",
["Mlomp"] = "mlo",
["Mmaala"] = "mmu",
["Mmani"] = "buy",
["Mmen"] = "bfm",
["Mnong Selatan"] = "mnn",
["Mnong Tengah"] = "cmo",
["Mnong Timur"] = "mng",
["Mo"] = "wkd",
["Moabite"] = "obm",
["Moba"] = "mfq",
["Mobilia"] = "mod",
["Mobu"] = "ahm",
["Mocana"] = "sai-mcn",
["Mochi"] = "old",
["Mochica"] = "omc",
["Mocho"] = "mhc",
["Mocoví"] = "moc",
["Modang"] = "mxd",
["Modole"] = "mqo",
["Moere"] = "mvq",
["Mofu Utara"] = "mfk",
["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",
["Mokil"] = "mkj",
["Moklen"] = "mkm",
["Mokole"] = "mkl",
["Mokpwe"] = "bri",
["Moksha"] = "mdf",
["Molale"] = "mbe",
["Molbog"] = "pwm",
["Moldova Sign Language"] = "vsi",
["Molengue"] = "bxc",
["Molima"] = "mox",
["Molo"] = "zmo",
["Molof"] = "msl",
["Moloko"] = "mlw",
["Mom Jango"] = "ver",
["Moma"] = "myl",
["Momare"] = "msz",
["Mombo Dogon"] = "dmb",
["Mombum"] = "mso",
["Momina"] = "mmb",
["Momuna"] = "mqf",
["Mon"] = "mnw",
["Mon Kuno"] = "omx",
["Mon Pertengahan"] = "mkh-mmn",
["Mon Thailand"] = "mnw-tha",
["Mon Yangum"] = "ymo",
["Mondropolon"] = "npn",
["Mondé"] = "mnd",
["Mongghul"] = "mjg-mgl",
["Mongo"] = "lol",
["Mongol Khamnigan"] = "ykh",
["Mongol Klasik"] = "cmg",
["Mongol Pertengahan"] = "xng",
["Mongolian"] = "mn",
["Mongondow"] = "mog",
["Moni"] = "mnz",
["Mono (California)"] = "mnr",
["Mono (Cameroon)"] = "mru",
["Mono (Congo)"] = "mnh",
["Monom"] = "moo",
["Monpa Kalaktang"] = "kkf",
["Montagnais"] = "moe",
["Montol"] = "mtl",
["Monumbo"] = "mxk",
["Monzombo"] = "moj",
["Moo"] = "gwg",
["Mor (Austronesia)"] = "mhz",
["Mor (Papua)"] = "moq",
["Moraid"] = "msg",
["Moran"] = "tbq-mor",
["Morawa"] = "mze",
["Morerebi"] = "xmo",
["Moresada"] = "msx",
["Mori Atas"] = "mzq",
["Mori Bawah"] = "xmz",
["Morigi"] = "mdb",
["Moro"] = "mor",
["Morokodo"] = "mgc",
["Morom"] = "bdo",
["Moronene"] = "mqn",
["Morori"] = "mok",
["Morouas"] = "mrp",
["Mortlock"] = "mrl",
["Moru"] = "mgd",
["Mosimo"] = "mqv",
["Moskona"] = "mtj",
["Mossi"] = "mos",
["Mota"] = "mtt",
["Motembo"] = "tmv",
["Motu"] = "meu",
["Mouk-Aria"] = "mwh",
["Mouwase"] = "jmw",
["Movima"] = "mzp",
["Moyadan Itneg"] = "ity",
["Mozarab"] = "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",
["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",
["Muji Qila"] = "ymq",
["Muji Selatan"] = "ymc",
["Muji Utara"] = "ymx",
["Mukha-Dora"] = "mmk",
["Mukulu"] = "moz",
["Mulaha"] = "mfw",
["Mulam"] = "mlm",
["Mullu Kurumba"] = "kpb",
["Mullukmulluk"] = "mpb",
["Muluridyi"] = "vmu",
["Mum"] = "kqa",
["Mumuye"] = "mzm",
["Muna"] = "mnb",
["Munda"] = "unx",
["Mundabli"] = "boe",
["Mundang"] = "mua",
["Mundani"] = "mnf",
["Mundari"] = "unr",
["Mundat"] = "mmf",
["Mundolinco"] = "art-mun",
["Mundurukú"] = "myu",
["Mungaka"] = "mhk",
["Mungbam"] = "mij",
["Munggui"] = "mth",
["Mungkip"] = "mpv",
["Muniche"] = "myr",
["Munit"] = "mtc",
["Munji"] = "mnj",
["Munsee"] = "umu",
["Muong"] = "mtq",
["Mur Pano"] = "tkv",
["Muratayak"] = "asx",
["Muria Barat"] = "mut",
["Muria Barat Jauh"] = "fmu",
["Muria Timur"] = "emu",
["Murik (Malaysia)"] = "mxr",
["Murik (New Guinea)"] = "mtf",
["Murkim"] = "rmh",
["Murle"] = "mur",
["Murrinh-Patha"] = "mwf",
["Mursi"] = "muz",
["Murui Huitoto"] = "huu",
["Murupi"] = "mqw",
["Murut Keningau"] = "kxi",
["Murut Serudung"] = "srk",
["Murut Timugon"] = "tih",
["Muruwari"] = "zmu",
["Musan"] = "mmp",
["Musasa"] = "smm",
["Musey"] = "mse",
["Musgu"] = "mug",
["Musi"] = "mui",
["Muskum"] = "mje",
["Musom"] = "msu",
["Mussau-Emira"] = "emi",
["Muthuvan"] = "muv",
["Mutu"] = "tuc",
["Muya"] = "mvm",
["Muyang"] = "muy",
["Muyu Selatan"] = "kts",
["Muyu Utara"] = "kti",
["Muyuw"] = "myw",
["Muzi"] = "ymz",
["Muzo"] = "sai-muz",
["Mvanip"] = "mcj",
["Mvuba"] = "mxh",
["Mwaghavul"] = "sur",
["Mwakai"] = "mgt",
["Mwali Comorian"] = "wlc",
["Mwan"] = "moa",
["Mwani"] = "wmw",
["Mwatebu"] = "mwa",
["Mwera"] = "mwe",
["Mwerlap"] = "mrm",
["Mwimbi-Muthambi"] = "mws",
["Mwotlap"] = "mlv",
["Myene"] = "mye",
["Mysian"] = "yms",
["Mòcheno"] = "mhn",
["Mün Chin"] = "mwq",
["Mündü"] = "muh",
["Māori"] = "mi",
["Mạ"] = "cma",
["N'Ko"] = "nqo",
["Na"] = "nbt",
["Naaba"] = "nao",
["Naba"] = "mne",
["Nabak"] = "naf",
["Nabi"] = "mty",
["Nachering"] = "ncd",
["Nadruvia"] = "ndf",
["Nadëb"] = "mbj",
["Nafaanra"] = "nfr",
["Nafi"] = "srf",
["Nafri"] = "nxx",
["Naga Chokri"] = "nri",
["Naga Chothe"] = "nct",
["Naga Inpui"] = "nkf",
["Naga Khezha"] = "nkh",
["Naga Khiamniungan"] = "kix",
["Naga Khoibu"] = "nkb",
["Naga Konyak"] = "nbe",
["Naga Kyan-Karyaw"] = "nqq",
["Naga Lao"] = "nlq",
["Naga Liangmai"] = "njn",
["Naga Lotha"] = "njh",
["Naga Mao"] = "nbi",
["Naga Maram"] = "nma",
["Naga Maring"] = "nng",
["Naga Monsang"] = "nmh",
["Naga Moyon"] = "nmo",
["Naga Mzieme"] = "nme",
["Naga Pochuri"] = "npo",
["Naga Puimei"] = "npu",
["Naga Rengma Selatan"] = "nre",
["Naga Rengma Utara"] = "nnl",
["Naga Rongmei"] = "nbu",
["Naga Sangtam"] = "nsa",
["Naga Tangkhul"] = "nmf",
["Naga Thangal"] = "nki",
["Naga Zeme"] = "nzm",
["Nagarchal"] = "nbg",
["Nage"] = "nxe",
["Nagu"] = "ngr",
["Nagumi"] = "ngv",
["Nahali"] = "nlx",
["Nahari"] = "nhh",
["Nahavaq"] = "sns",
["Nahuatl"] = "nah",
["Nahuatl Coatepec"] = "naz",
["Nahuatl Cosoleacaque"] = "nhk",
["Nahuatl Durango Barat"] = "azn",
["Nahuatl Durango Timur"] = "azd",
["Nahuatl Guerrero"] = "ngu",
["Nahuatl Huasteca Barat"] = "nhw",
["Nahuatl Huasteca Tengah"] = "nch",
["Nahuatl Huasteca Timur"] = "nhe",
["Nahuatl Huaxcaleca"] = "nhq",
["Nahuatl Klasik"] = "nci",
["Nahuatl Mecayapan"] = "nhx",
["Nahuatl Michoacán"] = "ncl",
["Nahuatl Morelos"] = "nhm",
["Nahuatl Oaxaca Utara"] = "nhy",
["Nahuatl Ometepec"] = "nht",
["Nahuatl Orizaba"] = "nlv",
["Nahuatl Pajapan"] = "nhp",
["Nahuatl Puebla Tanah Tinggi"] = "azz",
["Nahuatl Puebla Tengah"] = "ncx",
["Nahuatl Puebla Tenggara"] = "npl",
["Nahuatl Puebla Utara"] = "ncj",
["Nahuatl Santa María La Alta"] = "nhz",
["Nahuatl Sierra Negra"] = "nsu",
["Nahuatl Tabasco"] = "nhc",
["Nahuatl Temascaltepec"] = "nhv",
["Nahuatl Tengah"] = "nhn",
["Nahuatl Tetelcingo"] = "nhg",
["Nahuatl Tlamacazapa"] = "nuz",
["Nahuatl Zacatlán-Ahuacatlán-Tepetzintla"] = "nhi",
["Nai"] = "bio",
["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",
["Nama"] = "nmx",
["Namakura"] = "nmk",
["Namat"] = "nkm",
["Nambikwara"] = "nab",
["Nambo"] = "ncm",
["Nambya"] = "nmq",
["Namia"] = "nnm",
["Namiae"] = "nvm",
["Namla"] = "naa",
["Namo"] = "mxw",
["Namonuito"] = "nmt",
["Namosi-Naitasiri-Serua"] = "bwb",
["Namuyi"] = "nmy",
["Nancere"] = "nnc",
["Nande"] = "nnb",
["Nandi"] = "niq",
["Nanerigé Sénoufo"] = "sen",
["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",
["Nauruan"] = "na",
["Navajo"] = "nv",
["Navarro-Aragon Kuno"] = "roa-ona",
["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",
["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",
["Ndzwani Comorian"] = "wni",
["Neapolit"] = "nap",
["Nedebang"] = "nec",
["Nefamese"] = "nef",
["Nefusa"] = "jbn",
["Negerhollands"] = "dcr",
["Negidal"] = "neg",
["Nehan"] = "nsn",
["Nek"] = "nif",
["Nekgini"] = "nkg",
["Neko"] = "nej",
["Neku"] = "nek",
["Neme"] = "nex",
["Nemi"] = "nem",
["Nen"] = "nqn",
["Nend"] = "anh",
["Nenets Hutan"] = "yrk-for",
["Nenets Tundra"] = "yrk",
["Nengone"] = "nen",
["Neo"] = "neu",
["Neo-Aram Bohtan"] = "bhn",
["Neo-Aramia Assyria"] = "aii",
["Neo-Aramia Barat"] = "amw",
["Nepal Kurux"] = "kxl",
["Nepali"] = "ne",
["Nese"] = "poz-nes",
["Nete"] = "net",
["Neve'ei"] = "vnm",
["Neverver"] = "lgk",
["New Caledonian Javanese"] = "jas",
["Newar"] = "new",
["Newar Klasik"] = "nwc",
["Newar Pertengahan"] = "nwx",
["Neyo"] = "ney",
["Nez Perce"] = "nez",
["Nga La"] = "hlt",
["Ngaanyatjarra"] = "ntj",
["Ngad'a Timur"] = "nea",
["Ngadha"] = "nxg",
["Ngadjunmaya"] = "nju",
["Ngadjuri"] = "jui",
["Ngaiawang"] = "nwg",
["Ngaing"] = "nnf",
["Ngaju"] = "nij",
["Ngala"] = "nud",
["Ngalakan"] = "nig",
["Ngalkbun"] = "ngk",
["Ngalum"] = "szb",
["Ngam"] = "nmc",
["Ngamambo"] = "nbv",
["Ngambay"] = "sba",
["Ngamini"] = "nmv",
["Ngamo"] = "nbh",
["Ngan'gityemerri"] = "nam",
["Nganakarti"] = "xnk",
["Nganasan"] = "nio",
["Ngandi"] = "nid",
["Ngando (Congo)"] = "nxd",
["Ngando (Republik Afrika Tengah)"] = "ngd",
["Ngandyera"] = "nne",
["Ngantangarra"] = "ntg",
["Nganyaywana"] = "nyx",
["Ngardi"] = "rxd",
["Ngarigu"] = "xni",
["Ngarinman"] = "nbj",
["Ngarinyin"] = "ung",
["Ngarla"] = "nrk",
["Ngarluma"] = "nrl",
["Ngarrindjeri"] = "nay",
["Ngas"] = "anc",
["Ngasa"] = "nsg",
["Ngawun"] = "nxn",
["Ngbaka"] = "nga",
["Ngbaka Ma'bo"] = "nbm",
["Ngbaka Manza"] = "ngg",
["Ngbandi Selatan"] = "nbw",
["Ngbandi Utara"] = "ngb",
["Ngbee"] = "jgb",
["Ngbinda"] = "nbd",
["Ngbundu"] = "nuu",
["Ngelima"] = "agh",
["Ngemba"] = "nge",
["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 (Congo)"] = "ngc",
["Ngombe (Republik Afrika Tengah)"] = "nmj",
["Ngong"] = "nnx",
["Ngongo"] = "noq",
["Ngoni"] = "ngo",
["Ngoreme"] = "ngq",
["Ngoshie"] = "nsh",
["Ngulu"] = "ngp",
["Nguluwan"] = "nuw",
["Ngumbi"] = "nui",
["Ngunawal"] = "xul",
["Ngundi"] = "ndn",
["Ngundu"] = "nue",
["Ngungwel"] = "ngz",
["Ngurmbur"] = "nrx",
["Nguôn"] = "nuo",
["Ngwaba"] = "ngw",
["Ngwe"] = "nwe",
["Ngwi"] = "nlo",
["Ngwo"] = "ngn",
["Ngäbere"] = "gym",
["Nhanda"] = "nha",
["Nheengatu"] = "yrl",
["Nhirrpi"] = "hrp",
["Nhuwala"] = "nhf",
["Nias"] = "nia",
["Nicobar Selatan"] = "nik",
["Nicobar Tengah"] = "ncb",
["Nicola"] = "ath-nic",
["Nicoleño"] = "azc-nic",
["Niellim"] = "nie",
["Nihali"] = "nll",
["Nii"] = "nii",
["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",
["Ninzo"] = "nin",
["Nipsan"] = "nps",
["Nisa"] = "njs",
["Nisenan"] = "nsz",
["Nisga'a"] = "ncg",
["Nisi"] = "yso",
["Nisu Barat Laut"] = "nsf",
["Nisu Selatan"] = "nsd",
["Nisu Timur"] = "nos",
["Nisu Utara"] = "yiv",
["Niuafo'ou"] = "num",
["Niuatoputapu"] = "nkp",
["Niue"] = "niu",
["Nivaclé"] = "cag",
["Nivkh"] = "niv",
["Niwer Mil"] = "hrc",
["Njalgulgule"] = "njl",
["Njebi"] = "nzb",
["Njen"] = "njj",
["Njerep"] = "njr",
["Njyem"] = "njy",
["Nkami"] = "nkq",
["Nkangala"] = "nkn",
["Nkari"] = "nkz",
["Nkem-Nkum"] = "isi",
["Nkhumbi"] = "khu",
["Nkongho"] = "nkc",
["Nkonya"] = "nko",
["Nkoroo"] = "nkx",
["Nkoya"] = "nka",
["Nkukoli"] = "nbo",
["Nkutu"] = "nkw",
["Nnam"] = "nbp",
["Nobiin"] = "fia",
["Nocte"] = "njb",
["Nogai"] = "nog",
["Noipä"] = "npx",
["Noiri"] = "noi",
["Nokuku"] = "nkk",
["Nomaande"] = "lem",
["Nomane"] = "nof",
["Nomatsiguenga"] = "not",
["Nomlaki"] = "nol",
["Nomu"] = "noh",
["Nong Zhuang"] = "zhn",
["Nonuya"] = "noj",
["Nooksack"] = "nok",
["Noon"] = "snf",
["Noone"] = "nhu",
["Nootka"] = "nuk",
["Nopala Chatino"] = "cya",
["Noric"] = "nrc",
["Norman"] = "nrf",
["Norn"] = "nrn",
["Norra"] = "nrr",
["Norse Kuno"] = "non",
["Northern Ndebele"] = "nd",
["Northern Sami"] = "se",
["Norway Pengembara"] = "rmg",
["Norway Pertengahan"] = "gmq-mno",
["Norwegian"] = "no",
["Norwegian Bokmål"] = "nb",
["Norwegian Nynorsk"] = "nn",
["Nossob Bawah"] = "nsb",
["Notre"] = "bly",
["Notsi"] = "ncf",
["Nottoway"] = "ntw",
["Nottoway-Meherrin"] = "nwy",
["Novgorod Kuno"] = "zle-ono",
["Novial"] = "nov",
["Noy"] = "noy",
["Nsari"] = "asj",
["Nsenga"] = "nse",
["Nshi"] = "nsc",
["Nsong"] = "soo",
["Nsongo"] = "nsx",
["Ntcham"] = "bud",
["Ntomba"] = "nto",
["Ntra'ngith"] = "dgt",
["Nuaulu Selatan"] = "nxl",
["Nuaulu Utara"] = "nni",
["Nubaca"] = "baf",
["Nubi"] = "kcn",
["Nubia Kuno"] = "onw",
["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",
["Numee"] = "kdk",
["Numidia"] = "nxm",
["Nungali"] = "nug",
["Nunggubuyu"] = "nuy",
["Nungon"] = "paa-nun",
["Nungu"] = "rin",
["Nuni Selatan"] = "nnw",
["Nuni Utara"] = "nuv",
["Nuosu"] = "ii",
["Nupbikha"] = "npb",
["Nupe"] = "nup",
["Nusa Laut"] = "nul",
["Nusu"] = "nuf",
["Nutabe"] = "cba-nut",
["Nyabwa"] = "nwb",
["Nyagrong Minyag"] = "ero-nya",
["Nyah Kur"] = "cbn",
["Nyaheun"] = "nev",
["Nyakyusa"] = "nyy",
["Nyala Timur"] = "nle",
["Nyali"] = "nlj",
["Nyam"] = "nmi",
["Nyamal"] = "nly",
["Nyambo"] = "now",
["Nyamusa-Molo"] = "nwm",
["Nyamwanga"] = "mwn",
["Nyamwezi"] = "nym",
["Nyaneka"] = "nyk",
["Nyang'i"] = "nyp",
["Nyanga (Congo)"] = "nyj",
["Nyanga (Togo)"] = "ayg",
["Nyanga-li"] = "nyc",
["Nyangatom"] = "nnj",
["Nyangbo"] = "nyb",
["Nyangga"] = "nny",
["Nyangumarta"] = "nna",
["Nyankole"] = "nyn",
["Nyarafolo Senoufo"] = "sev",
["Nyaturu"] = "rim",
["Nyaw"] = "nyw",
["Nyawaygi"] = "nyt",
["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",
["Nyâlayu"] = "yly",
["Nzadi"] = "nzd",
["Nzakambay"] = "nzy",
["Nzakara"] = "nzk",
["Nzanyi"] = "nja",
["Nzima"] = "nzi",
["Ná-Meo"] = "neo",
["Nùng"] = "nut",
["Nüpode Huitoto"] = "hux",
["Nǀuu"] = "ngh",
["O'chi'chi'"] = "xoc",
["O'du"] = "tyh",
["O'odham"] = "ood",
["Obanliku"] = "bzy",
["Obispeño"] = "obi",
["Oblo"] = "obl",
["Obo Manobo"] = "obo",
["Obokuitai"] = "afz",
["Obolo"] = "ann",
["Obulom"] = "obu",
["Ocaina"] = "oca",
["Occitan"] = "oc",
["Occitan Kuno"] = "pro",
["Od"] = "odk",
["Odia"] = "or",
["Odia Kuno"] = "inc-oor",
["Odia Pertengahan"] = "inc-mor",
["Odiai"] = "bhf",
["Odoodee"] = "kkc",
["Odual"] = "odu",
["Odut"] = "oda",
["Ofayé"] = "opy",
["Ofo"] = "ofo",
["Ogbah"] = "ogc",
["Ogbia"] = "ogb",
["Ogbogolo"] = "ogg",
["Ogbronuagum"] = "ogu",
["Ogea"] = "eri",
["Oghuz Awal Kuno"] = "trk-eog",
["Ohlone Selatan"] = "css",
["Ohlone Utara"] = "cst",
["Oirat Bertulis"] = "xwo",
["Oirata"] = "oia",
["Ojibwa Barat"] = "ojw",
["Ojibwa Barat Laut"] = "ojb",
["Ojibwa Tengah"] = "ojc",
["Ojibwa Timur"] = "ojg",
["Ojibwe"] = "oj",
["Ojitlán Chinantec"] = "chj",
["Okanagan"] = "oka",
["Oki-No-Erabu"] = "okn",
["Okiek"] = "oki",
["Okinawa"] = "ryu",
["Oko-Eni-Osayen"] = "oks",
["Oko-Juwoi"] = "okj",
["Okobo"] = "okb",
["Okodia"] = "okd",
["Okolod"] = "kqv",
["Okpamheri"] = "opa",
["Okpe (Edo Barat Daya)"] = "oke",
["Okpe (Edo Barat Laut)"] = "okx",
["Okpela"] = "atg",
["Oksapmin"] = "opm",
["Oku"] = "oku",
["Okwanuchu"] = "nai-okw",
["Old Church Slavonic"] = "cu",
["Olekha"] = "ole",
["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",
["Omi"] = "omi",
["Omok"] = "omk",
["Omotik"] = "omt",
["Omurano"] = "omu",
["One Inebu"] = "oin",
["One Molmo"] = "aun",
["One Selatan"] = "osu",
["One Utara"] = "onr",
["Oneida"] = "one",
["Ong"] = "oog",
["Ongota"] = "bxe",
["Onin"] = "oni",
["Onjob"] = "onj",
["Ono"] = "ons",
["Onobasulu"] = "onn",
["Onondaga"] = "ono",
["Ontenu"] = "ont",
["Oorlams"] = "oor",
["Opao"] = "opo",
["Opata"] = "opt",
["Opuuo"] = "lgn",
["Opón"] = "sai-opo",
["Orang Seletar"] = "ors",
["Oraon Sadri"] = "sdr",
["Orejón"] = "ore",
["Oring"] = "org",
["Oriya Adivasi"] = "ort",
["Orléanais"] = "roa-orl",
["Ormu"] = "orz",
["Ormuri"] = "oru",
["Oro"] = "orx",
["Oro Win"] = "orw",
["Oroch"] = "oac",
["Oroha"] = "ora",
["Orok"] = "oaa",
["Orokaiva"] = "okv",
["Oroko"] = "bdu",
["Orokolo"] = "oro",
["Oromo"] = "om",
["Oroqen"] = "orh",
["Orowe"] = "bpk",
["Oruma"] = "orr",
["Orya"] = "ury",
["Osage"] = "osa",
["Osamayi"] = "syx",
["Osatu"] = "ost",
["Osci"] = "osc",
["Osing"] = "osi",
["Ososo"] = "oso",
["Ossetia Kuno"] = "oos",
["Ossetian"] = "os",
["Ot Danum"] = "otd",
["Otank"] = "uta",
["Oti"] = "oti",
["Otomaco"] = "sai-oto",
["Otomi Estado de México"] = "ots",
["Otomi Ixtenco"] = "otz",
["Otomi Mezquital"] = "ote",
["Otomi Querétaro"] = "otq",
["Otomi Tanah Tinggi Timur"] = "otm",
["Otomi Temoaya"] = "ott",
["Otomi Tenango"] = "otn",
["Otomi Texcatepec"] = "otx",
["Otomi Tilapa"] = "otl",
["Otoro"] = "otr",
["Ottawa"] = "otw",
["Otuke"] = "otu",
["Ouma"] = "oum",
["Oune"] = "oue",
["Owa"] = "stn",
["Owenia"] = "wsr",
["Owiniga"] = "owi",
["Oy"] = "oyb",
["Oya'oya"] = "oyy",
["Oyda"] = "oyd",
["Ozumacín Chinantec"] = "chz",
["Pa"] = "ppt",
["Pa Di"] = "pdi",
["Pa'a"] = "pqa",
["Pa-Hng"] = "pha",
["Paama"] = "pma",
["Paasaal"] = "sig",
["Pacahuara"] = "pcp",
["Pacoh"] = "pac",
["Padoe"] = "pdo",
["Paelignian"] = "pgn",
["Paeonia"] = "ine-pae",
["Pagi"] = "pgi",
["Pagibete"] = "pae",
["Pagu"] = "pgu",
["Pahari-Potwari"] = "phr",
["Paharia Sawriya"] = "mjt",
["Pahi"] = "lgt",
["Pahlavani"] = "phv",
["Pai Tavytera"] = "pta",
["Paicî"] = "pri",
["Paikoneka"] = "awd-pai",
["Paipai"] = "ppi",
["Paite"] = "pck",
["Paiute Utara"] = "pao",
["Paiwan"] = "pwn",
["Pak-Tong"] = "pkg",
["Pakanha"] = "pkn",
["Paku"] = "pku",
["Pal"] = "abw",
["Palaic"] = "plq",
["Palaka Senoufo"] = "plr",
["Palantla Chinantec"] = "cpa",
["Palau"] = "pau",
["Palawano Barat Daya"] = "plv",
["Palawano Brooke's Point"] = "plw",
["Paleni"] = "pnl",
["Palenquero"] = "pln",
["Pali"] = "pi",
["Palikur"] = "plu",
["Paliyan"] = "pcf",
["Pallanganmiddang"] = "pmd",
["Palor"] = "fap",
["Palta"] = "sai-pal",
["Palu'e"] = "ple",
["Paluan"] = "plz",
["Palya Bareli"] = "bpx",
["Pam"] = "pmn",
["Pambia"] = "pmb",
["Pame Tengah"] = "pbs",
["Pame Utara"] = "pmq",
["Pamigua"] = "sai-pam",
["Pamlico"] = "pmk",
["Pamona"] = "pmf",
["Pamosu"] = "hih",
["Pana (Afrika Barat)"] = "pnq",
["Pana (Afrika Tengah)"] = "pnz",
["Panamint"] = "par",
["Panare"] = "pbh",
["Panará"] = "kre",
["Panasuan"] = "psn",
["Panawa"] = "pwb",
["Pancana"] = "pnp",
["Panchpargania"] = "tdb",
["Pande"] = "bkj",
["Pangasinan"] = "pag",
["Pangseng"] = "pgs",
["Pangutaran Sama"] = "slm",
["Pangwa"] = "pbr",
["Pangwali"] = "pgg",
["Panim"] = "pnr",
["Paniya"] = "pcg",
["Pankararé"] = "pax",
["Pankararú"] = "paz",
["Pankhu"] = "pkh",
["Pannei"] = "pnc",
["Panobo"] = "pno",
["Panyi Bai"] = "bfc",
["Panyjima"] = "pnw",
["Panzaleo"] = "sai-pnz",
["Pao"] = "ppa",
["Papantla Totonac"] = "top",
["Papapana"] = "ppn",
["Papar"] = "dpp",
["Papasena"] = "pas",
["Papel"] = "pbo",
["Papi"] = "ppe",
["Papiamentu"] = "pap",
["Papitalai"] = "pat",
["Papora"] = "ppu",
["Papuan Malay"] = "pmy",
["Papuma"] = "ppm",
["Para Naga"] = "pzn",
["Parachi"] = "prc",
["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",
["Parsi Kuno"] = "peo",
["Parsi Pertengahan"] = "pal",
["Parthia"] = "xpr",
["Parya"] = "paq",
["Pashayi Barat Daya"] = "psh",
["Pashayi Tenggara"] = "psi",
["Pashayi Timur Laut"] = "aee",
["Pashto"] = "ps",
["Pasi"] = "psq",
["Pass Valley Yali"] = "yac",
["Pasé"] = "awd-pas",
["Patagón"] = "sai-ptg",
["Patamona"] = "pbc",
["Patani"] = "ptn",
["Pataxó Hã-Ha-Hãe"] = "pth",
["Patep"] = "ptp",
["Pathiya"] = "pty",
["Pattani"] = "lae",
["Pattapu"] = "ptq",
["Patwin"] = "pwi",
["Paulohi"] = "plh",
["Paumarí"] = "pad",
["Paunaca"] = "pnk",
["Pauri Bareli"] = "bfb",
["Pauserna"] = "psm",
["Pawaia"] = "pwa",
["Pawnee"] = "paw",
["Payaguá"] = "sai-pyg",
["Paynamar"] = "pmr",
["Pazeh"] = "pzh",
["Pe"] = "pai",
["Pear"] = "pcb",
["Peba"] = "sai-peb",
["Pech"] = "pay",
["Pecheneg"] = "xpc",
["Peerapper"] = "xpw",
["Peere"] = "pfe",
["Pei"] = "ppq",
["Pekal"] = "pel",
["Pela"] = "bxd",
["Pele-Ata"] = "ata",
["Pemon"] = "aoc",
["Penan Barat"] = "pne",
["Penan Timur"] = "pez",
["Penchal"] = "pek",
["Pendau"] = "ums",
["Pengo"] = "peg",
["Penobscot"] = "aaq",
["Penrhyn"] = "pnh",
["Pentlatch"] = "ptw",
["Perai"] = "wet",
["Peranakan Indonesian"] = "pea",
["Perancis Kreol Karipúna"] = "kmv",
["Perancis Kreol Réunion"] = "rcf",
["Perancis Kreol San Miguel"] = "scf",
["Perancis Kuno"] = "fro",
["Perancis Pertengahan"] = "frm",
["Perema"] = "wom",
["Pericú"] = "nai-per",
["Pero"] = "pip",
["Persian"] = "fa",
["Petapa Zapotec"] = "zpe",
["Petats"] = "pex",
["Petjo"] = "pey",
["Phai"] = "prt",
["Phake"] = "phk",
["Phala"] = "ypa",
["Phalura"] = "phl",
["Phana'"] = "phq",
["Phangduwali"] = "phw",
["Phende"] = "pem",
["Phimbi"] = "phm",
["Phoenicia"] = "phn",
["Phola"] = "ypg",
["Pholo"] = "yip",
["Phom"] = "nph",
["Phong-Kniang"] = "pnx",
["Phrae Pwo"] = "kjt",
["Phrygia"] = "xpg",
["Phu Thai"] = "pht",
["Phuan"] = "phu",
["Phudagi"] = "phd",
["Phuie"] = "pug",
["Phukha"] = "phh",
["Phuma"] = "ypm",
["Phunoi"] = "pho",
["Phuong"] = "phg",
["Phupa"] = "ypp",
["Phupha"] = "yph",
["Phuthi"] = "bnt-phu",
["Phuza"] = "ypz",
["Piamatsina"] = "ptr",
["Piame"] = "pin",
["Piapoco"] = "pio",
["Piaroa"] = "pid",
["Picard"] = "pcd",
["Picene Utara"] = "nrp",
["Picenum Selatan"] = "spx",
["Pichinglis"] = "fpe",
["Pichis Ashéninka"] = "cpu",
["Pict"] = "xpi",
["Picuris"] = "nai-pic",
["Pidgin Basque-Iceland"] = "crp-bip",
["Pidgin Delaware"] = "dep",
["Pidgin Greenland Barat"] = "crp-gep",
["Pidgin Iha"] = "ihb",
["Pidgin Jerman Kiautschou"] = "crp-kia",
["Pidgin Ladang Samoa"] = "crp-spp",
["Pidgin Naga"] = "nag",
["Pidgin Ndyuka-Trio"] = "njt",
["Pidgin Onin"] = "onx",
["Pidgin Portugis Macau"] = "crp-mpp",
["Pidgin Rusia Taimyr"] = "crp-tpr",
["Pidgin Rusia-China"] = "crp-cpr",
["Piemonte"] = "pms",
["Pijao"] = "pij",
["Pije"] = "piz",
["Pijin"] = "pis",
["Pijin Cameroon"] = "wes",
["Pijin Nigeria"] = "pcm",
["Pilagá"] = "plg",
["Pileni"] = "piv",
["Pima Bajo"] = "pia",
["Pimbwe"] = "piw",
["Pinai-Hagahai"] = "pnn",
["Pingelapese"] = "pif",
["Pinghua Selatan"] = "csp",
["Pinghua Utara"] = "cnp",
["Pini"] = "pii",
["Pinigura"] = "pnv",
["Pinjarup"] = "pnj",
["Pinji"] = "pic",
["Pintiini"] = "pti",
["Pintupi-Luritja"] = "piu",
["Pinyin"] = "pny",
["Pipil"] = "ppl",
["Pirahã"] = "myp",
["Piratapuyo"] = "pir",
["Pirlatapa"] = "bxi",
["Piro"] = "pie",
["Pirriya"] = "xpa",
["Pisabo"] = "pig",
["Pisaflores Tepehua"] = "tpp",
["Piscataway"] = "psy",
["Pisidia"] = "xps",
["Pitcairn-Norfolk"] = "pih",
["Piti"] = "pcn",
["Pitjantjatjara"] = "pjt",
["Pitta-Pitta"] = "pit",
["Piu"] = "pix",
["Piya-Kwonci"] = "piy",
["Plains Cree"] = "crk",
["Plains Indian Sign Language"] = "psd",
["Plains Miwok"] = "pmw",
["Plapo Krumen"] = "ktj",
["Plautdietsch"] = "pdt",
["Pnar"] = "pbv",
["Pochutec"] = "xpo",
["Podoko"] = "pbi",
["Pogali"] = "hkh",
["Pogolo"] = "poy",
["Pohnpei"] = "pon",
["Poitevin-Saintongeais"] = "roa-poi",
["Pokangá"] = "pok",
["Poke"] = "pof",
["Pol"] = "pmm",
["Polabia"] = "pox",
["Poland Kuno"] = "zlw-opl",
["Polci"] = "plj",
["Polish"] = "pl",
["Polonombauk"] = "plb",
["Pom"] = "pmo",
["Pomo Selatan"] = "peq",
["Pomo Tengah"] = "poo",
["Pomo Tenggara"] = "pom",
["Pomo Timur"] = "peb",
["Pomo Timur Laut"] = "pef",
["Pomo Utara"] = "pej",
["Ponam"] = "ncc",
["Pongu"] = "png",
["Ponosakan"] = "pns",
["Ponyo"] = "npg",
["Poqomam"] = "poc",
["Poqomchi'"] = "poh",
["Porohanon"] = "prh",
["Port Sandwich"] = "psw",
["Port Sorell"] = "xpl",
["Port Vato"] = "ptv",
["Portugis Kreol Korlai"] = "vkp",
["Portuguese"] = "pt",
["Potawatomi"] = "pot",
["Potiguára"] = "pog",
["Poumei Naga"] = "pmx",
["Pouye"] = "bye",
["Powari"] = "pwr",
["Powhatan"] = "pim",
["Poyanáwa"] = "pyn",
["Pra-Samnit"] = "itc-psa",
["Prakrit"] = "pra",
["Prakrit Ashoka"] = "inc-ash",
["Prakrit Kamarupi"] = "inc-kam",
["Prakrit Niya"] = "pra-niy",
["Prasuni"] = "prn",
["Primitive Irish"] = "pgl",
["Principe"] = "pre",
["Proto-Abkhaz-Abaza"] = "cau-abz-pro",
["Proto-Afroasiatik"] = "afa-pro",
["Proto-Albania"] = "sqj-pro",
["Proto-Algic"] = "aql-pro",
["Proto-Algonquian"] = "alg-pro",
["Proto-Amuesha-Chamicuro"] = "awd-amc-pro",
["Proto-Anatolia"] = "ine-ana-pro",
["Proto-Andaman Besar"] = "qfa-adm-pro",
["Proto-Andian"] = "cau-and-pro",
["Proto-Apachean"] = "apa-pro",
["Proto-Arawa"] = "auf-pro",
["Proto-Arawak"] = "awd-pro",
["Proto-Armenia"] = "hyx-pro",
["Proto-Arnhem"] = "aus-arn-pro",
["Proto-Aroid"] = "omv-aro-pro",
["Proto-Asli"] = "mkh-asl-pro",
["Proto-Atayalik"] = "map-ata-pro",
["Proto-Athabaskan"] = "ath-pro",
["Proto-Atlantik-Congo"] = "alv-pro",
["Proto-Austroasiatik"] = "aav-pro",
["Proto-Austronesia"] = "map-pro",
["Proto-Avaro-Andian"] = "cau-ava-pro",
["Proto-Bahnar"] = "mkh-ban-pro",
["Proto-Bai"] = "sit-bai-pro",
["Proto-Balto-Slav"] = "ine-bsl-pro",
["Proto-Bantoid"] = "nic-bod-pro",
["Proto-Bantu"] = "bnt-pro",
["Proto-Basque"] = "euq-pro",
["Proto-Batak"] = "btk-pro",
["Proto-Be"] = "qfa-onb-pro",
["Proto-Be-Tai"] = "qfa-bet-pro",
["Proto-Benue-Congo"] = "nic-bco-pro",
["Proto-Berber"] = "ber-pro",
["Proto-Binandere"] = "ngf-bin-pro",
["Proto-Bodish"] = "sit-bdi-pro",
["Proto-Bodo-Garo"] = "tbq-bdg-pro",
["Proto-Bongo-Bagirmi"] = "csu-bba-pro",
["Proto-Bora"] = "sai-bor-pro",
["Proto-Brythonic"] = "cel-bry-pro",
["Proto-Bua"] = "alv-bua-pro",
["Proto-Bungku-Tolaki"] = "poz-btk-pro",
["Proto-Burma"] = "tbq-brm-pro",
["Proto-Caddoan"] = "cdd-pro",
["Proto-Cangin"] = "alv-cng-pro",
["Proto-Carib"] = "sai-car-pro",
["Proto-Celtic"] = "cel-pro",
["Proto-Cerrado"] = "sai-cer-pro",
["Proto-Chadic"] = "cdc-pro",
["Proto-Chadic Tengah"] = "cdc-cbm-pro",
["Proto-Chamic"] = "cmc-pro",
["Proto-Chatino"] = "omq-cha-pro",
["Proto-Chibchan"] = "cba-pro",
["Proto-Chimakuan"] = "chi-pro",
["Proto-Chinook"] = "nai-ckn-pro",
["Proto-Chukotko-Kamchatka"] = "qfa-cka-pro",
["Proto-Chumash"] = "nai-chu-pro",
["Proto-Circassian"] = "cau-cir-pro",
["Proto-Cross River Atas"] = "nic-ucr-pro",
["Proto-Cross River Bawah"] = "nic-lcr-pro",
["Proto-Cupan"] = "azc-cup-pro",
["Proto-Cushitic"] = "cus-pro",
["Proto-Cushitic Selatan"] = "cus-sou-pro",
["Proto-Cushitic Timur Tanah Tinggi"] = "cus-hec-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-Dravidia"] = "dra-pro",
["Proto-Dravidia Selatan"] = "dra-sou-pro",
["Proto-Dravidia Selatan I"] = "dra-sdo-pro",
["Proto-Dravidia Selatan II"] = "dra-sdt-pro",
["Proto-Dravidia Tengah"] = "dra-cen-pro",
["Proto-Dravidia Utara"] = "dra-nor-pro",
["Proto-Edekiri"] = "alv-edk-pro",
["Proto-Edoid"] = "alv-edo-pro",
["Proto-Ersu"] = "sit-ers-pro",
["Proto-Eskimo"] = "esx-esk-pro",
["Proto-Eskimo-Aleut"] = "esx-pro",
["Proto-Fali"] = "alv-fli-pro",
["Proto-Filipina"] = "phi-pro",
["Proto-Finnik"] = "urj-fin-pro",
["Proto-Gbaya"] = "gba-pro",
["Proto-Gbe"] = "alv-gbe-pro",
["Proto-Georgia-Zan"] = "ccs-gzn-pro",
["Proto-Germanik"] = "gem-pro",
["Proto-Germanik Barat"] = "gmw-pro",
["Proto-Grassfields"] = "nic-grf-pro",
["Proto-Guang"] = "alv-gng-pro",
["Proto-Gur"] = "nic-gur-pro",
["Proto-Gurunsi"] = "nic-gns-pro",
["Proto-Halmahera Utara"] = "paa-nha-pro",
["Proto-Halmahera-Cenderawasih"] = "poz-hce-pro",
["Proto-Heiban"] = "alv-hei-pro",
["Proto-Hellenik"] = "grk-pro",
["Proto-Hlai"] = "qfa-lic-pro",
["Proto-Hmong-Mien"] = "hmx-pro",
["Proto-Hmongik"] = "hmn-pro",
["Proto-Hrusish"] = "sit-hrs-pro",
["Proto-Hurro-Urartia"] = "qfa-hur-pro",
["Proto-Idomoid"] = "alv-ido-pro",
["Proto-Igboid"] = "alv-igb-pro",
["Proto-Ijoid"] = "ijo-pro",
["Proto-Indo-Arya"] = "inc-pro",
["Proto-Indo-Eropah"] = "ine-pro",
["Proto-Indo-Iran"] = "iir-pro",
["Proto-Inuit"] = "esx-inu-pro",
["Proto-Iran"] = "ira-pro",
["Proto-Iroquois"] = "iro-pro",
["Proto-Iroquois Utara"] = "iro-nor-pro",
["Proto-Italik"] = "itc-pro",
["Proto-Iwaidjan"] = "aus-wdj-pro",
["Proto-Jebel Timur"] = "sdv-eje-pro",
["Proto-Jeponik"] = "jpx-pro",
["Proto-Jukunoid"] = "nic-jkn-pro",
["Proto-Jê"] = "sai-jee-pro",
["Proto-Jê Selatan"] = "sai-sje-pro",
["Proto-Jê Tengah"] = "sai-cje-pro",
["Proto-Jê Utara"] = "sai-nje-pro",
["Proto-Kadu"] = "qfa-kad-pro",
["Proto-Kalamian"] = "phi-kal-pro",
["Proto-Kalapuya"] = "nai-klp-pro",
["Proto-Kam-Sui"] = "qfa-kms-pro",
["Proto-Kampa"] = "awd-kmp-pro",
["Proto-Kamta"] = "inc-krd-pro",
["Proto-Karen"] = "kar-pro",
["Proto-Kartvelia"] = "ccs-pro",
["Proto-Katuik"] = "mkh-kat-pro",
["Proto-Kaukasia Barat Laut"] = "cau-nwc-pro",
["Proto-Kaukasia Timur Laut"] = "cau-nec-pro",
["Proto-Kham"] = "sit-kha-pro",
["Proto-Khanty"] = "kca-pro",
["Proto-Khasian"] = "aav-khs-pro",
["Proto-Khmer"] = "mkh-kmr-pro",
["Proto-Khmuik"] = "mkh-khm-pro",
["Proto-Kho-Bwa"] = "sit-khb-pro",
["Proto-Kho-Bwa Barat"] = "sit-khw-pro",
["Proto-Khoe"] = "khi-kho-pro",
["Proto-Koma"] = "ssa-kom-pro",
["Proto-Komisenia"] = "ira-kms-pro",
["Proto-Korea"] = "qfa-kor-pro",
["Proto-Kra"] = "qfa-kra-pro",
["Proto-Kra-Dai"] = "qfa-tak-pro",
["Proto-Kru"] = "kro-pro",
["Proto-Kuki-Chin"] = "tbq-kuk-pro",
["Proto-Kuliak"] = "ssa-klk-pro",
["Proto-Kurd"] = "ku-pro",
["Proto-Kwa"] = "alv-kwa-pro",
["Proto-Lalo"] = "tbq-lal-pro",
["Proto-Lampungik"] = "poz-lgx-pro",
["Proto-Lezghian"] = "cau-lzg-pro",
["Proto-Lolo"] = "tbq-lol-pro",
["Proto-Lolo-Burma"] = "tbq-lob-pro",
["Proto-Luish"] = "sit-luu-pro",
["Proto-Maidu"] = "nai-mdu-pro",
["Proto-Mande"] = "dmn-pro",
["Proto-Mande Barat"] = "dmn-mdw-pro",
["Proto-Mangbetu"] = "csu-maa-pro",
["Proto-Mansi"] = "mns-pro",
["Proto-Mari"] = "chm-pro",
["Proto-Masa"] = "cdc-mas-pro",
["Proto-Maya"] = "myn-pro",
["Proto-Mazatec"] = "omq-maz-pro",
["Proto-Medo-Parthia"] = "ira-mpr-pro",
["Proto-Melayik"] = "poz-mly-pro",
["Proto-Melayu-Chamic"] = "poz-mcm-pro",
["Proto-Melayu-Polenesia"] = "poz-pro",
["Proto-Melayu-Polenesia Tengah-Timur"] = "poz-cet-pro",
["Proto-Melayu-Polenesia Timur"] = "pqe-pro",
["Proto-Melayu-Sumbawa"] = "poz-msa-pro",
["Proto-Mienik"] = "hmx-mie-pro",
["Proto-Mikronesia"] = "poz-mic-pro",
["Proto-Min"] = "zhx-min-pro",
["Proto-Mixe-Zoque"] = "nai-miz-pro",
["Proto-Mixtec"] = "omq-mxt-pro",
["Proto-Mixtecan"] = "omq-mix-pro",
["Proto-Mon-Khmer"] = "mkh-pro",
["Proto-Mongolia"] = "xgn-pro",
["Proto-Monik"] = "mkh-mnc-pro",
["Proto-Mordvinik"] = "urj-mdv-pro",
["Proto-Mumuye"] = "alv-mum-pro",
["Proto-Munda"] = "mun-pro",
["Proto-Munji-Yidgha"] = "ira-mny-pro",
["Proto-Muskogi"] = "nai-mus-pro",
["Proto-Na-Dene"] = "xnd-pro",
["Proto-Naga Tengah"] = "sit-aao-pro",
["Proto-Naga Utara"] = "sit-kon-pro",
["Proto-Nahuan"] = "azc-nah-pro",
["Proto-Naish"] = "sit-nas-pro",
["Proto-Nakh"] = "cau-nkh-pro",
["Proto-Nawiki"] = "awd-nwk-pro",
["Proto-New South Wales Tengah"] = "aus-cww-pro",
["Proto-Nguni"] = "bnt-ngu-pro",
["Proto-Nicobarese"] = "aav-nic-pro",
["Proto-Niger-Congo"] = "nic-pro",
["Proto-Nilo-Sahara"] = "ssa-pro",
["Proto-Nilotik"] = "sdv-nil-pro",
["Proto-Norse"] = "gmq-pro",
["Proto-Nubia"] = "nub-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-Oceania"] = "poz-oce-pro",
["Proto-Ogoni"] = "nic-ogo-pro",
["Proto-Omotic"] = "omv-pro",
["Proto-Onga"] = "qfa-ong-pro",
["Proto-Oti-Volta"] = "nic-ovo-pro",
["Proto-Oti-Volta Timur"] = "nic-eov-pro",
["Proto-Oto-Manguean"] = "omq-pro",
["Proto-Oto-Pamean"] = "omq-otp-pro",
["Proto-Otomi"] = "oto-otm-pro",
["Proto-Otomian"] = "oto-pro",
["Proto-Pakanik"] = "mkh-pkn-pro",
["Proto-Palaungik"] = "mkh-pal-pro",
["Proto-Pama-Nyungan"] = "aus-pam-pro",
["Proto-Paresi-Waura"] = "awd-prw-pro",
["Proto-Pasifik Tengah"] = "poz-pcc-pro",
["Proto-Pathan"] = "ira-pat-pro",
["Proto-Pearik"] = "mkh-pea-pro",
["Proto-Permik"] = "urj-prm-pro",
["Proto-Plateau"] = "nic-plt-pro",
["Proto-Plateau Penutian"] = "nai-plp-pro",
["Proto-Pnar-Khasi-Lyngngam"] = "aav-pkl-pro",
["Proto-Polinesia"] = "poz-pol-pro",
["Proto-Polinesia Nukleus"] = "poz-pnp-pro",
["Proto-Polinesia Timur"] = "poz-pep-pro",
["Proto-Pomo"] = "nai-pom-pro",
["Proto-Puroik"] = "sit-khp-pro",
["Proto-Quechua"] = "qwe-pro",
["Proto-Rukai"] = "dru-pro",
["Proto-Ryukyu"] = "jpx-ryu-pro",
["Proto-Sabaki"] = "bnt-sab-pro",
["Proto-Saka"] = "xsc-sak-pro",
["Proto-Saka-Wakhi"] = "xsc-skw-pro",
["Proto-Salish"] = "sal-pro",
["Proto-Sami"] = "smi-pro",
["Proto-Samoyed"] = "syd-pro",
["Proto-Sanglechi-Ishkashimi"] = "ira-sgi-pro",
["Proto-Sara"] = "csu-sar-pro",
["Proto-Sarawak Utara"] = "poz-swa-pro",
["Proto-Sarmatia"] = "xsc-sar-pro",
["Proto-Scythia"] = "xsc-pro",
["Proto-Selkup"] = "sel-pro",
["Proto-Semitik"] = "sem-pro",
["Proto-Semitik Barat"] = "sem-wes-pro",
["Proto-Shughni-Roshani"] = "ira-shr-pro",
["Proto-Shughni-Yazghulami"] = "ira-shy-pro",
["Proto-Shughni-Yazghulami-Munji"] = "ira-sym-pro",
["Proto-Sino-Tibet"] = "sit-pro",
["Proto-Siouan"] = "sio-pro",
["Proto-Siouan-Catawba"] = "nai-sca-pro",
["Proto-Slav"] = "sla-pro",
["Proto-Sogdia"] = "ira-sgc-pro",
["Proto-Somaloid"] = "cus-som-pro",
["Proto-Songhai"] = "son-pro",
["Proto-Sotho-Tswana"] = "bnt-sts-pro",
["Proto-Sudan Tengah"] = "csu-pro",
["Proto-Sulawesi Selatan"] = "poz-ssw-pro",
["Proto-Ta-Arawak"] = "awd-taa-pro",
["Proto-Tai"] = "tai-pro",
["Proto-Tai Barat Daya"] = "tai-swe-pro",
["Proto-Takic"] = "azc-tak-pro",
["Proto-Taman"] = "sdv-tmn-pro",
["Proto-Tamang"] = "sit-tam-pro",
["Proto-Tangkhul"] = "sit-tng-pro",
["Proto-Tani"] = "sit-tan-pro",
["Proto-Taranoan"] = "sai-tar-pro",
["Proto-Tatik"] = "xme-ttc-pro",
["Proto-Tocharia"] = "ine-toc-pro",
["Proto-Togo Tengah"] = "alv-gtm-pro",
["Proto-Totozoquean"] = "nai-tot-pro",
["Proto-Trans-New Guinea"] = "ngf-pro",
["Proto-Triqui"] = "omq-tri-pro",
["Proto-Tsezian"] = "cau-tsz-pro",
["Proto-Tsimshianik"] = "nai-tsi-pro",
["Proto-Tungus"] = "tuw-pro",
["Proto-Tupi-Guarani"] = "tup-gua-pro",
["Proto-Tupia"] = "tup-pro",
["Proto-Turkik"] = "trk-pro",
["Proto-Ubangian"] = "nic-ubg-pro",
["Proto-Ugrik"] = "urj-ugr-pro",
["Proto-Uralik"] = "urj-pro",
["Proto-Utik"] = "nai-utn-pro",
["Proto-Uto-Aztecan"] = "azc-pro",
["Proto-Vietik"] = "mkh-vie-pro",
["Proto-Volta-Congo"] = "nic-vco-pro",
["Proto-Volta-Niger"] = "alv-von-pro",
["Proto-Witotoan"] = "sai-wit-pro",
["Proto-Yenisei"] = "qfa-yen-pro",
["Proto-Yoruba"] = "alv-yor-pro",
["Proto-Yoruboid"] = "alv-yrd-pro",
["Proto-Yukaghir"] = "qfa-yuk-pro",
["Proto-Yupik"] = "ypk-pro",
["Proto-Zapotec"] = "omq-zpc-pro",
["Proto-Zapotecan"] = "omq-zap-pro",
["Proto-Zaza-Gorani"] = "ira-zgr-pro",
["Prusia Kuno"] = "prg",
["Psikye"] = "kvj",
["Puare"] = "pux",
["Puebla Mazatec"] = "pbm",
["Puelche"] = "pue",
["Puinave"] = "pui",
["Puiron"] = "sit-prn",
["Pukapukan"] = "pkp",
["Pulabu"] = "pup",
["Pulau Bruny"] = "xpz",
["Pulau Flinders"] = "fln",
["Puluwat"] = "puw",
["Puma"] = "pum",
["Pumi Selatan"] = "pmj",
["Pumi Utara"] = "pmi",
["Pumpokol"] = "xpm",
["Pumé"] = "yae",
["Punan Aput"] = "pud",
["Punan Bah-Biau"] = "pna",
["Punan Batu"] = "pnm",
["Punan Merah"] = "puf",
["Punan Merap"] = "puc",
["Punan Tubu"] = "puj",
["Punik"] = "xpu",
["Punjabi"] = "pa",
["Punjabi Barat"] = "pnb",
["Punjabi Kuno"] = "inc-opa",
["Punu"] = "puu",
["Puoc"] = "puo",
["Puquina"] = "puq",
["Puragi"] = "pru",
["Purari"] = "iar",
["Purepecha"] = "pua",
["Puri"] = "prr",
["Purik"] = "prx",
["Purisimeño"] = "puy",
["Puruborá"] = "pur",
["Puruhá"] = "sai-prh",
["Purukotó"] = "sai-pur",
["Purum"] = "pub",
["Putai"] = "mfl",
["Putoh"] = "put",
["Putukwam"] = "afe",
["Puyo-Paekche"] = "xpp",
["Puyuma"] = "pyu",
["Pwaamei"] = "pme",
["Pwapwa"] = "pop",
["Pwo Barat"] = "pwo",
["Pwo Timur"] = "kjp",
["Pwo Utara"] = "pww",
["Pyapun"] = "pcw",
["Pye Krumen"] = "pye",
["Pyemmairre"] = "xpb",
["Pyen"] = "pyy",
["Pykobjê"] = "sai-pyk",
["Pyu"] = "pby",
["Páez"] = "pbb",
["Pááfang"] = "pfa",
["Päri"] = "lkr",
["Pémono"] = "pev",
["Pévé"] = "lme",
["Pökoot"] = "pko",
["Q'anjob'al"] = "kjb",
["Q'eqchi"] = "kek",
["Qabiao"] = "laq",
["Qaqet"] = "byx",
["Qatabanian"] = "xqt",
["Qiang Utara"] = "cng",
["Qibti"] = "cop",
["Qimant"] = "ahg",
["Quapaw"] = "qua",
["Quechua"] = "qu",
["Quechua Klasik"] = "qwc",
["Quenya"] = "qya",
["Quetzaltepec Mixe"] = "pxm",
["Queyu"] = "qvy",
["Quiavicuzas Zapotec"] = "zpj",
["Quileute"] = "qui",
["Quimbaya"] = "sai-qmb",
["Quinault"] = "qun",
["Quinigua"] = "nai-qng",
["Quinqui"] = "quq",
["Quioquitani-Quierí Zapotec"] = "ztq",
["Quiotepec Chinantec"] = "chq",
["Quiripi"] = "qyp",
["Quitemo"] = "sai-qtm",
["Rabha"] = "rah",
["Rabona"] = "sai-rab",
["Rade"] = "rad",
["Raetic"] = "xrr",
["Raga"] = "lml",
["Rahambuu"] = "raz",
["Rajasthan"] = "raj",
["Rajbanshi"] = "rjs",
["Raji"] = "rji",
["Rajong"] = "rjg",
["Rakahanga-Manihiki"] = "rkh",
["Rakhine"] = "rki",
["Ralte"] = "ral",
["Rama"] = "rma",
["Ramandi"] = "tks",
["Ramanos"] = "sai-ram",
["Ramoaaina"] = "rai",
["Ramopa"] = "kjx",
["Rampi"] = "lje",
["Rana Tharu"] = "thr",
["Rang"] = "rax",
["Rangkas"] = "rgk",
["Ranglong"] = "rnl",
["Rao"] = "rao",
["Rapa"] = "ray",
["Rapa Nui"] = "rap",
["Rapoisi"] = "kyx",
["Rapting"] = "rpt",
["Rara Bakati'"] = "lra",
["Rarotonga"] = "rar",
["Rasawa"] = "rac",
["Ratagnon"] = "btn",
["Ratahan"] = "rth",
["Rathawi"] = "rtw",
["Rathwi Bareli"] = "bgd",
["Raute"] = "rau",
["Ravula"] = "yea",
["Rawa"] = "rwo",
["Rawang"] = "raw",
["Rawat"] = "jnl",
["Rawo"] = "rwa",
["Rayón Zoque"] = "zor",
["Razajerdi"] = "rat",
["Razihi"] = "rzh",
["Reang"] = "ria",
["Reel"] = "atu",
["Rejang"] = "rej",
["Reli"] = "rei",
["Rema"] = "bow",
["Rembarunga"] = "rmb",
["Rembong"] = "reb",
["Remo"] = "rem",
["Rempi"] = "rmp",
["Remun"] = "lkj",
["Rendille"] = "rel",
["Rengao"] = "ren",
["Rennell"] = "mnv",
["Repanbitip"] = "rpn",
["Rer Bare"] = "rer",
["Rerau"] = "rea",
["Rerep"] = "pgk",
["Reshe"] = "res",
["Resígaro"] = "rgr",
["Retta"] = "ret",
["Reyesano"] = "rey",
["Riang"] = "ril",
["Riantana"] = "ran",
["Ribun"] = "rir",
["Rigwe"] = "iri",
["Rikbaktsa"] = "rkb",
["Ringgou"] = "rgu",
["Ririo"] = "rri",
["Ritarungo"] = "rit",
["Riung"] = "riu",
["Riverain Sango"] = "snj",
["Roglai Cacgia"] = "roc",
["Roglai Selatan"] = "rgs",
["Roglai Utara"] = "rog",
["Rogo"] = "rod",
["Rohingya"] = "rhg",
["Roma"] = "rmm",
["Romagnol"] = "rgn",
["Romam"] = "rmx",
["Romani"] = "rom",
["Romani Balkan"] = "rmn",
["Romani Baltik"] = "rml",
["Romani Carpathia"] = "rmc",
["Romani Finland Kalo"] = "rmf",
["Romani Sinte"] = "rmo",
["Romani Vlax"] = "rmy",
["Romani Wales"] = "rmw",
["Romanian"] = "ro",
["Romano-Serbia"] = "rsb",
["Romanova"] = "rmv",
["Romansh"] = "rm",
["Romblomanon"] = "rol",
["Rombo"] = "rof",
["Romkun"] = "rmk",
["Ron"] = "cla",
["Ronga"] = "rng",
["Rongga"] = "ror",
["Rongpo"] = "rnp",
["Ronji"] = "roe",
["Roon"] = "rnn",
["Roria"] = "rga",
["Roro"] = "rro",
["Rotokas"] = "roo",
["Rotuma"] = "rtm",
["Rouran"] = "mis-rou",
["Roviana"] = "rug",
["Ruching Palaung"] = "pce",
["Rudbari"] = "rdb",
["Rufiji"] = "rui",
["Ruga"] = "ruh",
["Rukai"] = "dru",
["Rukiga"] = "cgg",
["Ruma"] = "ruz",
["Rumai Palaung"] = "rbb",
["Rumu"] = "klq",
["Runga"] = "rou",
["Rungtu"] = "rtc",
["Rungus"] = "drg",
["Rungwa"] = "rnw",
["Russenorsk"] = "crp-rsn",
["Russian"] = "ru",
["Rusyn"] = "rue",
["Rusyn Pannonia"] = "rsk",
["Ruthenian Kuno"] = "zle-ort",
["Rutul"] = "rut",
["Ruuli"] = "ruc",
["Ruwund"] = "rnd",
["Rwa"] = "rwk",
["Rwanda-Rundi"] = "rw",
["Sa"] = "sax",
["Sa'a"] = "apb",
["Sa'ban"] = "snv",
["Sa'och"] = "scq",
["Saafi-Saafi"] = "sav",
["Saam"] = "raq",
["Saamia"] = "lsm",
["Saanich"] = "str",
["Saare"] = "uss",
["Saaroa"] = "sxr",
["Saba"] = "saa",
["Sabaean"] = "xsa",
["Sabanê"] = "sae",
["Sabaot"] = "spy",
["Sabine"] = "sbv",
["Sabir"] = "pml",
["Sabu"] = "hvn",
["Sabüm"] = "sbo",
["Sacapulteco"] = "quv",
["Sadri"] = "sck",
["Saek"] = "skb",
["Saep"] = "spd",
["Safait"] = "sem-saf",
["Safaliba"] = "saf",
["Safeyoka"] = "apz",
["Safwa"] = "sbk",
["Sagala"] = "sbm",
["Sagalla"] = "tga",
["Sahaptin"] = "nai-spt",
["Saho"] = "ssy",
["Sahu"] = "saj",
["Saisiyat"] = "xsy",
["Sajau Basap"] = "sjb",
["Sakachep"] = "sch",
["Sakam"] = "skm",
["Sakao"] = "sku",
["Sakata"] = "skt",
["Sake"] = "sak",
["Sakizaya"] = "szy",
["Sala"] = "shq",
["Salako"] = "knx",
["Salampasu"] = "slx",
["Salar"] = "slr",
["Salas"] = "sgu",
["Salchuq"] = "slq",
["Saleman"] = "sau",
["Saliba (Colombia)"] = "slc",
["Saliba (New Guinea)"] = "sbe",
["Salinan"] = "sln",
["Salish Montana"] = "fla",
["Salish Puget Sound Selatan"] = "slh",
["Salt-Yui"] = "sll",
["Saluan"] = "loe",
["Salumá"] = "slj",
["Sam"] = "snx",
["Sama"] = "smd",
["Samal"] = "sem-sam",
["Samaritan Aramaic"] = "sam",
["Samarokena"] = "tmj",
["Samatao"] = "ysd",
["Samba"] = "smx",
["Sambal"] = "xsb",
["Sambalpuri"] = "spv",
["Sambe"] = "xab",
["Samberigi"] = "ssx",
["Samburu"] = "saq",
["Samei"] = "smh",
["Sami Akkala"] = "sia",
["Sami Inari"] = "smn",
["Sami Kemi"] = "sjk",
["Sami Kildin"] = "sjd",
["Sami Lule"] = "smj",
["Sami Pite"] = "sje",
["Sami Selatan"] = "sma",
["Sami Skolt"] = "sms",
["Sami Ter"] = "sjt",
["Sami Ume"] = "sju",
["Samo"] = "smq",
["Samo Selatan"] = "sbd",
["Samoan"] = "sm",
["Samogitia"] = "sgs",
["Samosa"] = "swm",
["Sampang"] = "rav",
["Samre"] = "sxm",
["Samtao"] = "stu",
["Samvedi"] = "smv",
["San Agustín Mixtepec Zapotec"] = "ztm",
["San Baltazar Loxicha Zapotec"] = "zpx",
["San Felipe Otlaltepec Popoloca"] = "pow",
["San Juan Atzingo Popoloca"] = "poe",
["San Juan Teita Mixtec"] = "xtj",
["San Luís Temalacayuca Popoloca"] = "pps",
["San Marcos Tlalcoyalco Popoloca"] = "pls",
["San Martín Itunyoso Triqui"] = "trq",
["San Pablo Güilá Zapotec"] = "ztu",
["San Pedro Quiatoni Zapotec"] = "zpf",
["San Vicente Coatlán Zapotec"] = "zpt",
["Sanapaná"] = "spn",
["Sanaviron"] = "sai-san",
["Sandawe"] = "sad",
["Sanga (Congo)"] = "sng",
["Sanga (Nigeria)"] = "xsn",
["Sanggau"] = "scg",
["Sangil"] = "snl",
["Sangir"] = "sxn",
["Sangisari"] = "sgr",
["Sangkong"] = "sgk",
["Sanglechi"] = "sgy",
["Sango"] = "sg",
["Sangu (Gabon)"] = "snq",
["Sangu (Tanzania)"] = "sbp",
["Sani"] = "ysn",
["Sanie"] = "ysy",
["Saniyo-Hiyewe"] = "sny",
["Sansi"] = "ssi",
["Sanskrit"] = "sa",
["Santa Catarina Albarradas Zapotec"] = "ztn",
["Santa Inés Ahuatempan Popoloca"] = "pca",
["Santa Inés Yatzechi Zapotec"] = "zpn",
["Santa María Quiegolani Zapotec"] = "zpi",
["Santa Teresa Cora"] = "cok",
["Santal"] = "sat",
["Santiago Xanica Zapotec"] = "zpr",
["Sanumá"] = "xsu",
["Sapa"] = "tys",
["Saparua"] = "spr",
["Sapará"] = "sai-sap",
["Sapo"] = "krn",
["Saponi"] = "spi",
["Saposa"] = "sps",
["Sapuan"] = "spu",
["Sapé"] = "spc",
["Sar"] = "mwm",
["Sara"] = "sre",
["Sara Kaba"] = "sbz",
["Sara Kaba Deme"] = "kwg",
["Sara Kaba Náà"] = "kwv",
["Saraiki"] = "skr",
["Saramaccan"] = "srm",
["Sarangani Blaan"] = "bps",
["Sarasira"] = "zsa",
["Saraveca"] = "sar",
["Sarazi"] = "inc-sar",
["Sardinian"] = "sc",
["Sarikoli"] = "srh",
["Sarli"] = "sdf",
["Sartang"] = "onp",
["Sarua"] = "swy",
["Sarudu"] = "sdu",
["Saruga"] = "sra",
["Sasak"] = "sas",
["Sasaru"] = "sxs",
["Sassari"] = "sdc",
["Satawal"] = "stw",
["Sateré-Mawé"] = "mav",
["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",
["Saxon Kuno"] = "osx",
["Saxon Transylvania"] = "gmw-tsx",
["Saxwe Gbe"] = "sxw",
["Saya"] = "say",
["Sayula Popoluca"] = "pos",
["Scanian"] = "gmq-scy",
["Schwaben Szatmár"] = "gmw-stm",
["Scots"] = "sco",
["Scots Pertengahan"] = "gmw-msc",
["Scottish Gaelic"] = "gd",
["Seba"] = "kdg",
["Sebat Bet Gurage"] = "sgw",
["Seberuang"] = "sbx",
["Sebop"] = "sib",
["Sebuyau"] = "snb",
["Sechelt"] = "sec",
["Sechura"] = "sai-sec",
["Secoya"] = "sey",
["Sedang"] = "sed",
["Sedoa"] = "tvw",
["Seenku"] = "sos",
["Segai"] = "sge",
["Segeju"] = "seg",
["Seget"] = "sbg",
["Sehwi"] = "sfw",
["Seim"] = "sim",
["Seimat"] = "ssg",
["Seit-Kaitetu"] = "hik",
["Sekani"] = "sek",
["Sekapan"] = "skp",
["Sekar"] = "skz",
["Seke"] = "skj",
["Sekele"] = "vaj",
["Seki"] = "syi",
["Seko Padang"] = "skx",
["Seko Tengah"] = "sko",
["Sekpele"] = "lip",
["Selangor Sign Language"] = "kgi",
["Selaru"] = "slu",
["Selayar"] = "sly",
["Selee"] = "snw",
["Selepet"] = "spl",
["Selk'nam"] = "ona",
["Selkup Selatan"] = "sel-sou",
["Selkup Utara"] = "sel-nor",
["Selonia"] = "sxl",
["Selungai Murut"] = "slg",
["Seluwasan"] = "sws",
["Sema"] = "nsm",
["Semai"] = "sea",
["Semandang"] = "sdm",
["Semaq Beri"] = "szc",
["Sembakung Murut"] = "sbr",
["Semelai"] = "sza",
["Semimi"] = "etz",
["Semnam"] = "ssm",
["Semnani"] = "smy",
["Sempan"] = "xse",
["Sena"] = "seh",
["Senara Sénoufo"] = "seq",
["Senaya"] = "syn",
["Sene"] = "sej",
["Seneca"] = "see",
["Sengele"] = "szg",
["Senggi"] = "snu",
["Sengo"] = "spk",
["Sengseng"] = "ssz",
["Senhaja De Srair"] = "sjs",
["Sensi"] = "sni",
["Sentani"] = "set",
["Sentinel"] = "std",
["Sepa (Indonesia)"] = "spb",
["Sepa (New Guinea)"] = "spe",
["Sepanyol Kuno"] = "osp",
["Sepen"] = "spm",
["Sepik Iwam"] = "iws",
["Sera"] = "sry",
["Seranan"] = "srn",
["Serbo-Croatian"] = "sh",
["Sere"] = "swf",
["Serer"] = "srr",
["Seri"] = "sei",
["Serili"] = "sve",
["Seroa"] = "kqu",
["Serrano"] = "ser",
["Seru"] = "szd",
["Serua"] = "srw",
["Serui-Laut"] = "seu",
["Seta"] = "stf",
["Setaman"] = "stm",
["Seti"] = "sbi",
["Severn Ojibwa"] = "ojs",
["Sewa Bay"] = "sew",
["Seze"] = "sze",
["Sha"] = "scw",
["Shabak"] = "sdb",
["Shabo"] = "sbf",
["Shahmirzadi"] = "srz",
["Shahrudi"] = "shm",
["Shall-Zwall"] = "sha",
["Shama-Sambuga"] = "sqa",
["Shamang"] = "xsh",
["Shambala"] = "ksb",
["Shan"] = "shn",
["Shanenawa"] = "swo",
["Shanga"] = "sho",
["Shangzhai"] = "jih",
["Sharanahua"] = "mcd",
["Shark Bay"] = "ssv",
["Sharwa"] = "swq",
["Shasta"] = "sht",
["Shasta Sungai Baru"] = "nai-nrs",
["Shatt"] = "shj",
["Shau"] = "sqh",
["Shawnee"] = "sjw",
["She"] = "shx",
["Shebayo"] = "awd-she",
["Shehri"] = "shv",
["Shekkacho"] = "moy",
["Sheko"] = "she",
["Shelta"] = "sth",
["Shendu"] = "shl",
["Sheni"] = "scv",
["Sherbro"] = "bun",
["Sherdukpen"] = "sdp",
["Sherpa"] = "xsr",
["Sheshi Kham"] = "kip",
["Shi"] = "shr",
["Shilluk"] = "shk",
["Shina"] = "scl",
["Shinasha"] = "bwo",
["Shipibo-Conibo"] = "shp",
["Shixing"] = "sxg",
["Sholaga"] = "sle",
["Shom Peng"] = "sii",
["Shona"] = "sn",
["Shoo-Minda-Nye"] = "bcv",
["Shor"] = "cjs",
["Shoshone"] = "shh",
["Shua"] = "shg",
["Shuar"] = "jiv",
["Shuba"] = "cbq",
["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",
["Sicanian"] = "sxc",
["Sicel"] = "scx",
["Sichuan"] = "zhx-sic",
["Sicilia"] = "scn",
["Siculo-Arabic"] = "sqr",
["Sidamo"] = "sid",
["Sidetic"] = "xsd",
["Sie"] = "erg",
["Sierra Leone Sign Language"] = "sgx",
["Sighu"] = "sxe",
["Sihan"] = "snr",
["Sika"] = "ski",
["Sikaiana"] = "sky",
["Sikaritai"] = "tty",
["Sikiana"] = "sik",
["Sikkim"] = "sip",
["Sikule"] = "skh",
["Sila"] = "slt",
["Sileibi"] = "sbq",
["Silesia"] = "szl",
["Silimo"] = "wul",
["Siliput"] = "mkc",
["Silopi"] = "xsp",
["Silt'e"] = "stv",
["Simaa"] = "sie",
["Simba"] = "sbw",
["Simbali"] = "smg",
["Simbari"] = "smb",
["Simbo"] = "sbb",
["Simeku"] = "smz",
["Simeulue"] = "smr",
["Simte"] = "smt",
["Sinacantán"] = "nai-sin",
["Sinagen"] = "siu",
["Sinasina"] = "sst",
["Sinaugoro"] = "snc",
["Sindarin"] = "sjn",
["Sindhi"] = "sd",
["Sindhi Bhil"] = "sbn",
["Singa"] = "sgm",
["Singapore Sign Language"] = "sls",
["Singpho"] = "sgp",
["Sinhalese"] = "si",
["Sinicahua Mixtec"] = "xti",
["Sininkere"] = "skq",
["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 Barat"] = "ssl",
["Sissala"] = "sld",
["Sissano"] = "sso",
["Situ"] = "sit-sit",
["Siuslaw"] = "sis",
["Sivandi"] = "siy",
["Siwai"] = "siw",
["Siwi"] = "siz",
["Siwu"] = "akp",
["Skagit"] = "ska",
["Skalvian"] = "svx",
["Ske"] = "ske",
["Skou"] = "skv",
["Slav Timur Kuno"] = "orv",
["Slavey Selatan"] = "xsl",
["Slavey Utara"] = "scs",
["Slavomolisano"] = "svm",
["Slavonic Gereja"] = "zls-chs",
["Slovak"] = "sk",
["Slovak Kuno"] = "zlw-osk",
["Slovakian Sign Language"] = "svk",
["Slovene"] = "sl",
["Slovincian"] = "zlw-slv",
["Small Flowery Miao"] = "sfm",
["Smärky Kanum"] = "kxq",
["Snohomish"] = "sno",
["So'a"] = "ssq",
["Sobei"] = "sob",
["Sochiapam Chinantec"] = "cso",
["Soga"] = "xog",
["Sogdia"] = "sog",
["Sok"] = "skk",
["Sokna"] = "swn",
["Soko"] = "soc",
["Sokoro"] = "sok",
["Solano"] = "xso",
["Soli"] = "sby",
["Solombala English"] = "crp-slb",
["Solon"] = "tuw-sol",
["Solong"] = "aaw",
["Solos"] = "sol",
["Som"] = "smc",
["Somali"] = "so",
["Somba-Siawari"] = "bmu",
["Somra"] = "ntx",
["Somrai"] = "sor",
["Somray"] = "smu",
["Somyev"] = "kgt",
["Sonaga"] = "ysg",
["Sonde"] = "shc",
["Songe"] = "sop",
["Songomeno"] = "soe",
["Songoora"] = "sod",
["Sonha"] = "soi",
["Sonia"] = "siq",
["Soninke"] = "snk",
["Sonsorol"] = "sov",
["Soo"] = "teu",
["Sop"] = "urw",
["Soqotri"] = "sqt",
["Sora"] = "srb",
["Sorbia Atas"] = "hsb",
["Sori-Harengan"] = "sbh",
["Sorkhei"] = "sqo",
["Sorothaptic"] = "sxo",
["Sos Kundi"] = "sdk",
["Sota Kanum"] = "krz",
["Sotho"] = "st",
["Sotho Utara"] = "nso",
["Sou"] = "sqq",
["Sougb"] = "mnx",
["Southeast Babar"] = "vbb",
["Southeast Ijo"] = "ijs",
["Southeastern Ixtlán Zapotec"] = "zpd",
["Southern Ndebele"] = "nr",
["Southern Pame"] = "pmz",
["Southern Qiang"] = "qxs",
["Southern Rincon Zapotec"] = "zsr",
["Sowa"] = "sww",
["Sowanda"] = "sow",
["Spanish"] = "es",
["Spanish Sign Language"] = "ssp",
["Spiti Bhoti"] = "spt",
["Spokane"] = "spo",
["Squamish"] = "squ",
["Sri Lankan Sign Language"] = "sqs",
["Stau"] = "ero-tau",
["Stod Bhoti"] = "sbu",
["Stoney"] = "sto",
["Suabo"] = "szp",
["Suarmin"] = "seo",
["Suau"] = "swp",
["Suba"] = "sxb",
["Suba-Simbiti"] = "ssc",
["Subanen Tengah"] = "syb",
["Subanen Utara"] = "stb",
["Subanon Barat"] = "suc",
["Subanun Lapuyan"] = "laa",
["Subi"] = "xsj",
["Subiya"] = "sbs",
["Subtiaba"] = "sut",
["Sudest"] = "tgo",
["Sudovian"] = "xsv",
["Suena"] = "sue",
["Suga"] = "sgi",
["Suganga"] = "sug",
["Sui"] = "swi",
["Suki"] = "sui",
["Suku"] = "sub",
["Sukuma"] = "suk",
["Sukur"] = "syk",
["Sukurum"] = "zsu",
["Sula"] = "szn",
["Sulka"] = "sua",
["Sulod"] = "srg",
["Suluk"] = "tsg",
["Sulung"] = "suv",
["Suma"] = "sqm",
["Sumariup"] = "siv",
["Sumau"] = "six",
["Sumbawa"] = "smw",
["Sumbwa"] = "suw",
["Sumeria"] = "sux",
["Sunam"] = "ssk",
["Sunda Kuno"] = "osn",
["Sundanese"] = "su",
["Sungai"] = "dmg",
["Sungwadaga"] = "mwo",
["Sungwadia"] = "mrb",
["Sunum"] = "ymn",
["Sunwar"] = "suz",
["Suoy"] = "syo",
["Supyire"] = "spp",
["Sur"] = "tdl",
["Surbakhal"] = "sbj",
["Suri"] = "suq",
["Surigaonon"] = "sgd",
["Surjapuri"] = "sjp",
["Sursurunga"] = "sgz",
["Suruahá"] = "swx",
["Surubu"] = "sde",
["Suruí"] = "sru",
["Suruí Do Pará"] = "mdz",
["Suryani Klasik"] = "syc",
["Susquehannock"] = "sqn",
["Susu"] = "sus",
["Susuami"] = "ssu",
["Suundi"] = "sdj",
["Suwawa"] = "swu",
["Suyá"] = "suy",
["Svan"] = "sva",
["Swabia"] = "swg",
["Swahili"] = "sw",
["Swampy Cree"] = "csw",
["Swazi"] = "ss",
["Sweden Kuno"] = "gmq-osw",
["Swedish"] = "sv",
["Swedish Sign Language"] = "swl",
["Swiss-French Sign Language"] = "ssr",
["Swiss-German Sign Language"] = "sgg",
["Swiss-Italian Sign Language"] = "slf",
["Swo"] = "sox",
["Syenara Senoufo"] = "shz",
["Sylhet"] = "syl",
["Sácata"] = "sai-sac",
["Sãotomense"] = "cri",
["Sìcìté Sénoufo"] = "sep",
["Sô"] = "sss",
["T'en"] = "tct",
["Taabwa"] = "tap",
["Taba"] = "mky",
["Tabancale"] = "sai-tab",
["Tabaru"] = "tby",
["Tabasaran"] = "tab",
["Tabasco Chontal"] = "chf",
["Tabasco Zoque"] = "zoq",
["Tabla"] = "tnm",
["Tabo"] = "knv",
["Tabriak"] = "tzx",
["Tacana"] = "tna",
["Tachawit"] = "shy",
["Tadaksahak"] = "dsq",
["Tadyawan"] = "tdy",
["Tae'"] = "rob",
["Tafi"] = "tcd",
["Tafreshi"] = "xme-taf",
["Tagabawa"] = "bgs",
["Tagal Murut"] = "mvv",
["Tagalog"] = "tl",
["Tagbanwa"] = "tbw",
["Tagbanwa Tengah"] = "tgt",
["Tagbu"] = "tbm",
["Tagdal"] = "tda",
["Tagish"] = "tgx",
["Tagoi"] = "tag",
["Tagwana Senoufo"] = "tgw",
["Tahitian"] = "ty",
["Tahltan"] = "tht",
["Tai"] = "taw",
["Tai Daeng"] = "tyr",
["Tai Dam"] = "blt",
["Tai Do"] = "tyj",
["Tai Dón"] = "twh",
["Tai Hang Tong"] = "thc",
["Tai Hongjin"] = "tiz",
["Tai Laing"] = "tjl",
["Tai Loi"] = "tlq",
["Tai Long"] = "thi",
["Tai Nüa"] = "tdd",
["Tai Pao"] = "tpo",
["Tai Thanh"] = "tmm",
["Tai Ya"] = "cuu",
["Taikat"] = "aos",
["Tainae"] = "ago",
["Tairora Selatan"] = "omw",
["Tairora Utara"] = "tbg",
["Tairuma"] = "uar",
["Taishan"] = "zhx-tai",
["Taita"] = "dav",
["Taivoan"] = "tvx",
["Taje"] = "pee",
["Tajik"] = "tg",
["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",
["Tamang Barat"] = "tdg",
["Tamang Barat Daya"] = "tsf",
["Tamang Barat Laut"] = "tmk",
["Tamang Gorkha Timur"] = "tge",
["Tamang Timur"] = "taj",
["Tamazight Atlas Tengah"] = "tzm",
["Tamazola Mixtec"] = "vmx",
["Tambas"] = "tdk",
["Tambora"] = "xxt",
["Tambotalo"] = "tls",
["Tami"] = "tmy",
["Tamil"] = "ta",
["Tamil Kuno"] = "oty",
["Tamki"] = "tax",
["Tamnim Citak"] = "tml",
["Tampias Lobu"] = "low",
["Tampuan"] = "tpu",
["Tampulma"] = "tpm",
["Tanacross"] = "tcb",
["Tanahmerah"] = "tcm",
["Tanapag"] = "tpv",
["Tanchangya"] = "tnv",
["Tandaganon"] = "tgn",
["Tandia"] = "tni",
["Tanema"] = "tnx",
["Tangale"] = "tan",
["Tangam"] = "sit-tgm",
["Tanggu"] = "tgu",
["Tangko"] = "tkx",
["Tanglang"] = "ytl",
["Tangoa"] = "tgp",
["Tangsa"] = "nst",
["Tanguat"] = "tbs",
["Tangut"] = "txg",
["Tangwang"] = "mis-tnw",
["Tanimbili"] = "tbe",
["Tanimuca-Retuarã"] = "tnc",
["Tanjijili"] = "uji",
["Tanna Barat Daya"] = "nwi",
["Tanna Utara"] = "tnn",
["Taos"] = "twf",
["Tapachultec"] = "nai-tap",
["Taparita"] = "sai-tpr",
["Tapayuna"] = "sai-tap",
["Tapeba"] = "tbb",
["Tapei"] = "afp",
["Tapieté"] = "tpj",
["Tapirapé"] = "taf",
["Tar Gula"] = "kcm",
["Tara Baka"] = "bdh",
["Tarahumara Barat Daya"] = "twr",
["Tarahumara Tengah"] = "tar",
["Tarahumara Tenggara"] = "tcu",
["Tarahumara Utara"] = "thh",
["Tarairiú"] = "sai-trr",
["Tarangan Barat"] = "txn",
["Tarangan Timur"] = "tre",
["Tarantino"] = "roa-tar",
["Tarao"] = "tro",
["Taraon"] = "mhu",
["Tareng"] = "tgr",
["Tariana"] = "tae",
["Tarifit"] = "rif",
["Tarjumo"] = "txj",
["Tarok"] = "yer",
["Taroko"] = "trv",
["Tarpia"] = "tpf",
["Tartessian"] = "txr",
["Taruma"] = "tdm",
["Tasawaq"] = "twq",
["Tashelhit"] = "shi",
["Tasmania"] = "xtz",
["Tasmania Tenggara"] = "xpf",
["Tasmate"] = "tmt",
["Tat"] = "ttt",
["Tataltepec Chatino"] = "cta",
["Tatana"] = "txx",
["Tatar"] = "tt",
["Tatar Crimea"] = "crh",
["Tatar Siberia"] = "sty",
["Tataviam"] = "azc-tat",
["Tati Kuno"] = "xme-ott",
["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",
["Tawbuid Barat"] = "twb",
["Tawbuid Timur"] = "bnj",
["Taworta"] = "tbp",
["Tawoyan"] = "twy",
["Tay Khang"] = "tnu",
["Tayman"] = "sem-tay",
["Tayo"] = "cks",
["Taíno"] = "tnq",
["Tboli"] = "tbl",
["Tchitchege"] = "tck",
["Tchumbuli"] = "bqa",
["Te'un"] = "tve",
["Teanu"] = "tkw",
["Tebul Ure Dogon"] = "dtu",
["Tecpatlán Totonac"] = "tcw",
["Tedaga"] = "tuq",
["Tee"] = "tkq",
["Tefaro"] = "tfo",
["Tegali"] = "ras",
["Tehit"] = "kps",
["Tehuelche"] = "teh",
["Teiwa"] = "twe",
["Tejalapan Zapotec"] = "ztt",
["Teke Tengah"] = "nzu",
["Teke-Fuumu"] = "ifm",
["Teke-Kukuya"] = "kkw",
["Teke-Laali"] = "lli",
["Teke-Tege"] = "teg",
["Teke-Tsaayi"] = "tyi",
["Teke-Tyee"] = "tyx",
["Tektiteko"] = "ttc",
["Tela-Masbuar"] = "tvm",
["Telefol"] = "tlf",
["Telugu"] = "te",
["Telugu Kuno"] = "dra-ote",
["Teluk Malua"] = "mll",
["Teluti"] = "tlt",
["Tem"] = "kdh",
["Tembé"] = "tqb",
["Teme"] = "tdo",
["Temein"] = "teq",
["Temi"] = "soz",
["Temiar"] = "tea",
["Temne"] = "tem",
["Temoq"] = "tmo",
["Tempasuk Dusun"] = "tdu",
["Temuan"] = "tmw",
["Ten'edn"] = "tnz",
["Tene Kan Dogon"] = "dtk",
["Tenggarong Kutai Malay"] = "vkt",
["Tengger"] = "tes",
["Tenharim"] = "pah",
["Tenino"] = "tqn",
["Tenis"] = "tns",
["Tennet"] = "tex",
["Teochew"] = "nan-tws",
["Teop"] = "tio",
["Teor"] = "tev",
["Tepecano"] = "tep",
["Tepehua Huehuetla"] = "tee",
["Tepehuan Barat Daya"] = "tla",
["Tepehuan Tenggara"] = "stp",
["Tepehuan Utara"] = "ntp",
["Tepetotutla Chinantec"] = "cnt",
["Tepeuxila Cuicatec"] = "cux",
["Tepinapa Chinantec"] = "cte",
["Tepo Krumen"] = "ted",
["Tequistlatec"] = "nai-teq",
["Tera"] = "ttr",
["Terebu"] = "trb",
["Terei"] = "buo",
["Tereno"] = "ter",
["Teressa"] = "tef",
["Tereweng"] = "twg",
["Teribe"] = "tfr",
["Terik"] = "tec",
["Termanu"] = "twu",
["Ternate"] = "tft",
["Ternateño"] = "tmg",
["Tese"] = "keg",
["Teshenawa"] = "twc",
["Tetela"] = "tll",
["Tetete"] = "teb",
["Tetserret"] = "tez",
["Tetum"] = "tet",
["Tetun Dili"] = "tdt",
["Teushen"] = "sai-teu",
["Teutila Cuicatec"] = "cut",
["Tewa"] = "tew",
["Texistepec Popoluca"] = "poq",
["Texmelucan Zapotec"] = "zpz",
["Tha"] = "thy",
["Thachanadan"] = "thn",
["Thai"] = "th",
["Thai Selatan"] = "sou",
["Thai Song"] = "soa",
["Thai Utara"] = "nod",
["Thakali"] = "ths",
["Thamud"] = "sem-tha",
["Thangmi"] = "thf",
["Thao"] = "ssf",
["Tharaka"] = "thk",
["Tharrgari"] = "dhr",
["Thavung"] = "thm",
["Thawa"] = "xtv",
["Tho"] = "tou",
["Thompson"] = "thp",
["Thopho"] = "ytp",
["Thracian"] = "txh",
["Thu Lao"] = "tyl",
["Thulung"] = "tdh",
["Thurawal"] = "tbh",
["Thuri"] = "thu",
["Tiagba"] = "ahi",
["Tiale"] = "mnl",
["Tiang"] = "tbj",
["Tibea"] = "ngy",
["Tibet Klasik"] = "xct",
["Tibet Kuno"] = "otb",
["Tibetan"] = "bo",
["Ticuna"] = "tca",
["Tidore"] = "tvo",
["Tidung Selatan"] = "itd",
["Tidung Utara"] = "ntd",
["Tiemacèwè Bozo"] = "boo",
["Tiene"] = "tii",
["Tifal"] = "tif",
["Tigak"] = "tgc",
["Tigre"] = "tig",
["Tigrinya"] = "ti",
["Tii"] = "txq",
["Tijaltepec Mixtec"] = "xtl",
["Tikar"] = "tik",
["Tikopia"] = "tkp",
["Tillamook"] = "til",
["Tilquiapan Zapotec"] = "zts",
["Tilung"] = "tij",
["Tima"] = "tms",
["Timbe"] = "tim",
["Timor Pidgin"] = "tvy",
["Timote"] = "sai-tim",
["Timucua"] = "tjm",
["Tinagas Kota Marudu"] = "ktr",
["Tinani"] = "lbf",
["Tindi"] = "tin",
["Tingui-Boto"] = "tgv",
["Tinigua"] = "tit",
["Tinoc Kallahan"] = "tne",
["Tinputz"] = "tpz",
["Tipai"] = "nai-tip",
["Tippera"] = "tpe",
["Tira"] = "tic",
["Tirahi"] = "tra",
["Tiranige Diga Dogon"] = "tde",
["Tirax"] = "mme",
["Tircul"] = "pyx",
["Tiri"] = "cir",
["Tiruray"] = "tiy",
["Tita"] = "tdq",
["Titan"] = "ttv",
["Tiv"] = "tiv",
["Tiwa"] = "lax",
["Tiwa Selatan"] = "tix",
["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",
["Tlapanec Malinaltepec"] = "tcf",
["Tlingit"] = "tli",
["To"] = "toz",
["To'abaita"] = "mlu",
["Toaripi"] = "tqo",
["Toba"] = "tob",
["Toba-Maskoy"] = "tmf",
["Tobanga"] = "tng",
["Tobati"] = "tti",
["Tobelo"] = "tlb",
["Tobian"] = "tox",
["Tobilung"] = "tgb",
["Tobo"] = "tbv",
["Tocharia A"] = "xto",
["Tocharia B"] = "txb",
["Tocho"] = "taz",
["Toda"] = "tcx",
["Todrah"] = "tdr",
["Tofa"] = "kim",
["Tofanma"] = "tlg",
["Tofin Gbe"] = "tfi",
["Togbo-Vara Banda"] = "tor",
["Togoyo"] = "tgy",
["Tojolabal"] = "toj",
["Tok Pisin"] = "tpi",
["Toka-Leya"] = "dov",
["Tokano"] = "zuh",
["Tokelau"] = "tkl",
["Toki Pona"] = "tok",
["Toku-No-Shima"] = "tkn",
["Tol"] = "jic",
["Tolai"] = "ksd",
["Tolaki"] = "lbw",
["Tolomako"] = "tlm",
["Tolowa"] = "tol",
["Toma"] = "tod",
["Tomadino"] = "tdi",
["Tombelala"] = "ttp",
["Tombonuo"] = "txa",
["Tombulu"] = "tom",
["Tomini"] = "txm",
["Tommeginne"] = "xpv",
["Tommo So"] = "dto",
["Tomo Kan Dogon"] = "dtm",
["Tomoip"] = "tqp",
["Tondano"] = "tdn",
["Tonga (Malawi)"] = "tog",
["Tonga (Mozambique)"] = "toh",
["Tonga (Zambia)"] = "toi",
["Tongan"] = "to",
["Tongwe"] = "tny",
["Tonjon"] = "tjn",
["Tonkawa"] = "tqw",
["Tonsawang"] = "tnw",
["Tonsea"] = "txs",
["Tontemboan"] = "tnt",
["Toogee"] = "xpx",
["Tooro"] = "ttj",
["Topoiyo"] = "toy",
["Toposa"] = "toq",
["Toraja-Sa'dan"] = "sda",
["Toram"] = "trj",
["Torau"] = "ttu",
["Toro"] = "tdv",
["Toro So Dogon"] = "dts",
["Toro Tegu Dogon"] = "dtt",
["Toromono"] = "tno",
["Torona"] = "tqr",
["Torricelli"] = "tei",
["Torricelli Yau"] = "yyu",
["Torwali"] = "trw",
["Torá"] = "trz",
["Tosu"] = "sit-tos",
["Totela"] = "ttl",
["Toto"] = "txo",
["Totoli"] = "txe",
["Totomachapan Zapotec"] = "zph",
["Totonac Barat"] = "tqt",
["Totoro"] = "ttk",
["Touo"] = "tqu",
["Toura"] = "neb",
["Toussiana Selatan"] = "wib",
["Toussiana Utara"] = "tsp",
["Towei"] = "ttn",
["Translingual"] = "mul",
["Traveller Scottish"] = "trl",
["Tregami"] = "trm",
["Tremembé"] = "tme",
["Trieng"] = "stg",
["Trimuris"] = "tip",
["Tring"] = "tgq",
["Tringgus"] = "trx",
["Trinitario"] = "trn",
["Tripuri Awal"] = "xtr",
["Trió"] = "tri",
["Truká"] = "tka",
["Trumai"] = "tpy",
["Ts'ün-Lao"] = "tsl",
["Tsaangi"] = "tsa",
["Tsafiki"] = "cof",
["Tsakhur"] = "tkr",
["Tsakonian"] = "tsd",
["Tsakwambo"] = "kvz",
["Tsamai"] = "tsb",
["Tsat"] = "huq",
["Tsetsaut"] = "txc",
["Tsez"] = "ddo",
["Tshangla"] = "tsj",
["Tshobdun"] = "sit-tsh",
["Tshwa"] = "hio",
["Tsikimba"] = "kdl",
["Tsimané"] = "cas",
["Tsimshian"] = "tsi",
["Tsishingini"] = "tsw",
["Tso"] = "ldp",
["Tsogo"] = "tsv",
["Tsonga"] = "ts",
["Tsotsitaal"] = "fly",
["Tsou"] = "tsu",
["Tsum"] = "ttz",
["Tsuut'ina"] = "srs",
["Tsuvadi"] = "tvd",
["Tsuvan"] = "tsh",
["Tswa"] = "tsc",
["Tswana"] = "tn",
["Tswapong"] = "two",
["Tuamotuan"] = "pmt",
["Tuareg"] = "tmh",
["Tubar"] = "tbu",
["Tucano"] = "tuo",
["Tugen"] = "tuy",
["Tugun"] = "tzn",
["Tugutil"] = "tuj",
["Tuhua Shaozhou"] = "zhx-sht",
["Tujia Selatan"] = "tjs",
["Tujia Utara"] = "tji",
["Tukang Besi Selatan"] = "bhq",
["Tukang Besi Utara"] = "khc",
["Tuki"] = "bag",
["Tukpa"] = "tpq",
["Tukudede"] = "tkd",
["Tukumanféd"] = "tkf",
["Tula"] = "tul",
["Tulehu"] = "tlu",
["Tulishi"] = "tey",
["Tulu"] = "tcy",
["Tulu-Bohuai"] = "rak",
["Tulua"] = "aus-tul",
["Tuma-Irumu"] = "iou",
["Tumak"] = "tmc",
["Tumbuka"] = "tum",
["Tumi"] = "kku",
["Tumleo"] = "tmq",
["Tumshuq"] = "xtq",
["Tumtum"] = "tbr",
["Tumulung Sisaala"] = "sil",
["Tunebo Barat"] = "tnb",
["Tunebo Tengah"] = "tuf",
["Tunen"] = "tvu",
["Tungag"] = "lcm",
["Tunggare"] = "trt",
["Tunia"] = "tug",
["Tunica"] = "tun",
["Tunjung"] = "tjg",
["Tunni"] = "tqq",
["Tunumiisut"] = "esx-tut",
["Tunzu"] = "dza",
["Tuoba"] = "mis-tuo",
["Tuotomb"] = "ttf",
["Tuparí"] = "tpr",
["Tupi Kuno"] = "tpw",
["Tupinambá"] = "tpn",
["Tupinikin"] = "tpk",
["Tupuri"] = "tui",
["Turaka"] = "trh",
["Turdetania"] = "mis-tdt",
["Turdulia"] = "mis-tdl",
["Turi"] = "trd",
["Turiwára"] = "twt",
["Turk Kuno"] = "otk",
["Turka"] = "tuz",
["Turkana"] = "tuv",
["Turki Anatolia Kuno"] = "trk-oat",
["Turki Khorasan"] = "kmz",
["Turki Usmaniyah"] = "ota",
["Turkish"] = "tr",
["Turkmen"] = "tk",
["Turoyo"] = "tru",
["Turumsa"] = "tqm",
["Turung"] = "try",
["Tuscarora"] = "tus",
["Tutchone Selatan"] = "tce",
["Tutchone Utara"] = "ttm",
["Tutelo"] = "tta",
["Tutong"] = "ttg",
["Tutsa Naga"] = "tvt",
["Tutuba"] = "tmi",
["Tututni"] = "tuu",
["Tuva"] = "tyv",
["Tuvalu"] = "tvl",
["Tuwali Ifugao"] = "ifk",
["Tuwari"] = "tww",
["Tuwuli"] = "bov",
["Tuxináwa"] = "tux",
["Tuxá"] = "tud",
["Tuyuca"] = "tue",
["Tuyuhun"] = "mis-tuh",
["Twana"] = "twa",
["Twendi"] = "twn",
["Tyap"] = "kcg",
["Tyaraity"] = "woa",
["Tyerrernotepanner"] = "xph",
["Tz'utujil"] = "tzj",
["Tzeltal"] = "tzh",
["Tzotzil"] = "tzo",
["Tày"] = "tyz",
["Tày Tac"] = "tyt",
["Tây Bồi"] = "tas",
["Téén"] = "lor",
["Tübatulabal"] = "tub",
["U"] = "uuu",
["Uab Meto"] = "aoz",
["Uamué"] = "uam",
["Uare"] = "ksj",
["Ubaghara"] = "byc",
["Ubang"] = "uba",
["Ubi"] = "ubi",
["Ubir"] = "ubr",
["Ubykh"] = "uby",
["Ucayali-Yurúa Ashéninka"] = "cpb",
["Uda"] = "uda",
["Udi"] = "udi",
["Udihe"] = "ude",
["Udmurt"] = "udm",
["Uduk"] = "udu",
["Ufim"] = "ufi",
["Ugandan Sign Language"] = "ugn",
["Ugarit"] = "uga",
["Ughele"] = "uge",
["Uhami"] = "uha",
["Uisai"] = "uis",
["Ujir"] = "udj",
["Ukaan"] = "kcf",
["Ukhwejo"] = "ukh",
["Ukit"] = "umi",
["Ukpe-Bayobiri"] = "ukp",
["Ukpet-Ehom"] = "akd",
["Ukrainian"] = "uk",
["Ukrainian Sign Language"] = "ukl",
["Ukue"] = "uku",
["Ukuriguma"] = "ukg",
["Ukwa"] = "ukq",
["Ukwuani-Aboh-Ndoni"] = "ukw",
["Ulau-Suain"] = "svb",
["Ulch"] = "ulc",
["Uldeme"] = "udl",
["Ulithian"] = "uli",
["Ullatan"] = "ull",
["Ulumanda'"] = "ulm",
["Ulwa"] = "ulw",
["Uma"] = "ppk",
["Uma' Lasan"] = "xky",
["Uma' Lung"] = "ulu",
["Umatilla"] = "uma",
["Umbindhamu"] = "umd",
["Umbri"] = "xum",
["Umbu-Ungu"] = "ubu",
["Umbugarla"] = "umr",
["Umbundu"] = "umb",
["Umbuygamu"] = "umg",
["Umeda"] = "upi",
["Umiida"] = "xud",
["Umon"] = "umm",
["Umotína"] = "umo",
["Umpila"] = "ump",
["Una"] = "mtg",
["Unami"] = "unm",
["Unde Kaili"] = "unz",
["Uneapa"] = "bbn",
["Uneme"] = "une",
["Unggaranggu"] = "xun",
["Unggumi"] = "xgu",
["Unserdeutsch"] = "uln",
["Unua"] = "onu",
["Unubahe"] = "unu",
["Uokha"] = "uok",
["Upper Chehalis"] = "cjh",
["Upper Grand Valley Dani"] = "dna",
["Upper Kuskokwim"] = "kuu",
["Upper Necaxa Totonac"] = "tku",
["Upper Ta'oih"] = "tth",
["Upper Tanana"] = "tau",
["Upper Taromi"] = "tov",
["Upper Umpqua"] = "xup",
["Ura (Papua New Guinea)"] = "uro",
["Ura (Vanuatu)"] = "uur",
["Uradhi"] = "urf",
["Urak Lawoi'"] = "urk",
["Urali"] = "url",
["Urapmin"] = "urm",
["Urarina"] = "ura",
["Urartian"] = "xur",
["Urat"] = "urt",
["Urdu"] = "ur",
["Urhobo"] = "urh",
["Uri"] = "uvh",
["Urigina"] = "urg",
["Urim"] = "uri",
["Urimo"] = "urx",
["Urningangg"] = "urc",
["Uru"] = "ure",
["Uru-Eu-Wau-Wau"] = "urz",
["Uru-Pa-In"] = "urp",
["Uruangnirin"] = "urn",
["Uruava"] = "urv",
["Urubú-Kaapor"] = "urb",
["Uruguayan Sign Language"] = "ugy",
["Urum"] = "uum",
["Urumi"] = "uru",
["Usaghade"] = "usk",
["Usan"] = "wnu",
["Usarufa"] = "usa",
["Ushojo"] = "ush",
["Usila Chinantec"] = "cuc",
["Uspanteco"] = "usp",
["Usui"] = "usi",
["Utarmbung"] = "omo",
["Ute"] = "ute",
["Utu"] = "utu",
["Uvbie"] = "evh",
["Uvea Barat"] = "uve",
["Uwinymil"] = "aus-uwi",
["Uya"] = "usu",
["Uyajitaya"] = "duk",
["Uyghur"] = "ug",
["Uyghur Kuno"] = "oui",
["Uzbek"] = "uz",
["Uzekwe"] = "eze",
["Vaagri Booli"] = "vaa",
["Vaghri"] = "vgr",
["Vaghua"] = "tva",
["Vagla"] = "vag",
["Vai"] = "vai",
["Vaie"] = "bny",
["Vaiphei"] = "vap",
["Vale"] = "vae",
["Valencian Sign Language"] = "vsv",
["Valle Nacional Chinantec"] = "cvn",
["Valley Maidu"] = "vmv",
["Valman"] = "van",
["Valpei"] = "vlp",
["Valyrian Tinggi"] = "art-vlh",
["Vamale"] = "mkt",
["Vame"] = "mlr",
["Vandalic"] = "xvn",
["Vangunu"] = "mpr",
["Vanimo"] = "vam",
["Vanji"] = "ira-wnj",
["Vanuma"] = "vau",
["Vao"] = "vao",
["Varhadi"] = "vah",
["Varisi"] = "vrs",
["Varli"] = "vav",
["Vasavi"] = "vas",
["Vayu"] = "vay",
["Veddah"] = "ved",
["Vehes"] = "val",
["Vemgo-Mabas"] = "vem",
["Venda"] = "ve",
["Venetic"] = "xve",
["Veneto"] = "vec",
["Venezuelan Sign Language"] = "vsl",
["Ventureño"] = "veo",
["Veps"] = "vep",
["Vera'a"] = "vra",
["Vestinian"] = "xvs",
["Vidunda"] = "vid",
["Viemo"] = "vig",
["Vietnam Pertengahan"] = "mkh-mvi",
["Vietnamese"] = "vi",
["Vilamovian"] = "wym",
["Vilela"] = "vil",
["Vili"] = "vif",
["Vishavan"] = "vis",
["Viti"] = "vit",
["Vitou"] = "vto",
["Volapük"] = "vo",
["Volscian"] = "xvo",
["Vono"] = "kch",
["Voro"] = "vor",
["Vot"] = "vot",
["Vumbu"] = "vum",
["Vunapu"] = "vnp",
["Vunjo"] = "vun",
["Vurës"] = "msn",
["Vute"] = "vut",
["Võro"] = "vro",
["Wa"] = "wbm",
["Wa'ema"] = "wag",
["Waama"] = "wwa",
["Waamwang"] = "wmn",
["Wab"] = "wab",
["Wabo"] = "wbb",
["Waboda"] = "kmx",
["Waci Gbe"] = "wci",
["Wadaginam"] = "wdg",
["Waddar"] = "wbq",
["Wadi Wadi"] = "xwd",
["Wadiyara Koli"] = "kxp",
["Wadjabangayi"] = "wdy",
["Wadjiginy"] = "wdj",
["Wadjigu"] = "wdu",
["Wae Rana"] = "wrx",
["Waffa"] = "waj",
["Wagawaga"] = "wgb",
["Wagaya"] = "wga",
["Wagdi"] = "wbr",
["Wageman"] = "waq",
["Wagi"] = "fad",
["Wahgi"] = "wgi",
["Wahgi Utara"] = "whg",
["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",
["Wales Kuno"] = "owl",
["Wales Pertengahan"] = "wlm",
["Wali (Ghana)"] = "wlx",
["Wali (Sudan)"] = "wll",
["Waling"] = "wly",
["Walio"] = "wla",
["Walla Walla"] = "waa",
["Wallis"] = "wls",
["Walloon"] = "wa",
["Walmajarri"] = "wmt",
["Wam"] = "wmo",
["Wamas"] = "wmc",
["Wambaya"] = "wmb",
["Wambon"] = "wms",
["Wambule"] = "wme",
["Wamey"] = "cou",
["Wamin"] = "wmi",
["Wampar"] = "lbq",
["Wampur"] = "waz",
["Wan"] = "wan",
["Wanambre"] = "wnb",
["Wanap"] = "wnp",
["Wancho"] = "nnp",
["Wanda"] = "wbh",
["Wandala"] = "mfi",
["Wandamen"] = "wad",
["Wandarang"] = "wnd",
["Wandji"] = "wdd",
["Waneci"] = "wne",
["Wanga"] = "lwg",
["Wanggamala"] = "wnm",
["Wangganguru"] = "wgg",
["Wanggom"] = "wng",
["Wangkayutyuru"] = "wky",
["Wangkumara"] = "xwk",
["Wanham"] = "sai-wnm",
["Wanji"] = "wbi",
["Wanman"] = "wbt",
["Wannu"] = "jub",
["Wano"] = "wno",
["Wantoat"] = "wnc",
["Wanukaka"] = "wnk",
["Wanyi"] = "wny",
["Wané"] = "hwa",
["Wapan"] = "juk",
["Wapishana"] = "wap",
["Wappo"] = "wao",
["War-Jaintia"] = "aml",
["Wara"] = "wbf",
["Warao"] = "wba",
["Warapu"] = "wra",
["Waray Sorsogon"] = "srv",
["Waray-Waray"] = "war",
["Wardaman"] = "wrr",
["Wardandi"] = "wxw",
["Warekena Kuno"] = "awd-war",
["Warembori"] = "wsa",
["Wari'"] = "pav",
["Waris"] = "wrs",
["Waritai"] = "wbe",
["Wariyangga"] = "wri",
["Warji"] = "wji",
["Warkay-Bipim"] = "bgv",
["Warlmanpa"] = "wrl",
["Warlpiri"] = "wbp",
["Warluwara"] = "wrb",
["Warnang"] = "wrn",
["Waropen"] = "wrp",
["Warray"] = "wrz",
["Warrgamay"] = "wgy",
["Warrwa"] = "wwr",
["Waru"] = "wru",
["Warumungu"] = "wrm",
["Waruna"] = "wrv",
["Warungu"] = "wrg",
["Warwar Feni"] = "hrw",
["Wasa"] = "wss",
["Wasco-Wishram"] = "wac",
["Washo"] = "was",
["Waskia"] = "wsk",
["Wastek"] = "hus",
["Wasu"] = "wsu",
["Watakataui"] = "wtk",
["Watam"] = "wax",
["Wathaurong"] = "wth",
["Watiwa"] = "wtf",
["Watubela"] = "wah",
["Watut Selatan"] = "mcy",
["Watut Tengah"] = "mpl",
["Watut Utara"] = "una",
["Waube"] = "kop",
["Wauja"] = "wau",
["Wauyai"] = "wuy",
["Wawa"] = "www",
["Wawonii"] = "wow",
["Waxianghua"] = "wxa",
["Wayampi"] = "oym",
["Wayana"] = "way",
["Wayanad Chetti"] = "ctt",
["Wayoró"] = "wyr",
["Wayumara"] = "sai-way",
["Wedau"] = "wed",
["Weh"] = "weh",
["Welaung"] = "weu",
["Weliki"] = "klh",
["Welsh"] = "cy",
["Wemale"] = "weo",
["Wemba-Wemba"] = "xww",
["Weme Gbe"] = "wem",
["Wendat"] = "wdt",
["Weri"] = "wer",
["Wersing"] = "kvw",
["West Frisian"] = "fy",
["Western Juxtlahuaca Mixtec"] = "jmx",
["Wewaw"] = "wea",
["Weyewa"] = "wew",
["Whitesands"] = "tnp",
["Wiarumus"] = "tua",
["Wichita"] = "wic",
["Wichí Lhamtés Güisnay"] = "mzh",
["Wichí Lhamtés Nocten"] = "mtp",
["Wichí Lhamtés Vejoz"] = "wlv",
["Wik-Epa"] = "wie",
["Wik-Iiyanh"] = "wij",
["Wik-Keyangan"] = "wif",
["Wik-Me'anha"] = "wih",
["Wik-Mungkan"] = "wim",
["Wik-Ngathana"] = "wig",
["Wikalkan"] = "wik",
["Wikngenchera"] = "wua",
["Wilawila"] = "wil",
["Winnebago"] = "win",
["Wintu"] = "wnw",
["Winyé"] = "kst",
["Wiradhuri"] = "wrh",
["Wiraféd"] = "wir",
["Wirangu"] = "wgu",
["Wiru"] = "wiu",
["Wirö"] = "wpc",
["Wiwa"] = "mbp",
["Wiyot"] = "wiy",
["Woccon"] = "xwc",
["Wogamusin"] = "wog",
["Wogeo"] = "woc",
["Woi"] = "wbw",
["Woiwurrung"] = "wyi",
["Wojenaka"] = "jod",
["Wolane"] = "wle",
["Wolani"] = "wod",
["Wolaytta"] = "wal",
["Woleai"] = "woe",
["Wolio"] = "wlo",
["Wolof"] = "wo",
["Womo"] = "wmx",
["Wong-gie"] = "aus-won",
["Wongo"] = "won",
["Woods Cree"] = "cwd",
["Woria"] = "wor",
["Worimi"] = "kda",
["Worodougou"] = "jud",
["Worora"] = "wro",
["Wotapuri-Katarqalai"] = "wsv",
["Wotu"] = "wtw",
["Woun Meu"] = "noa",
["Wu"] = "wuu",
["Wudu"] = "wud",
["Wuhuan"] = "mis-wuh",
["Wulguru"] = "aus-wul",
["Wuliwuli"] = "wlu",
["Wulna"] = "wux",
["Wumboko"] = "bqm",
["Wumbvu"] = "wum",
["Wumeng Nasu"] = "ywu",
["Wunai Bunu"] = "bwn",
["Wunambal"] = "wub",
["Wurrugu"] = "wur",
["Wusa Nasu"] = "yig",
["Wushi"] = "bse",
["Wusi"] = "wsi",
["Wutung"] = "wut",
["Wutunhua"] = "wuh",
["Wuvulu-Aua"] = "wuv",
["Wyandot"] = "wya",
["Wára"] = "tci",
["Wãpha"] = "juw",
["Wè Barat"] = "wec",
["Wè Selatan"] = "gxx",
["Wè Utara"] = "wob",
["Xakriabá"] = "xkr",
["Xamtanga"] = "xan",
["Xanaguía Zapotec"] = "ztg",
["Xavante"] = "xav",
["Xerénte"] = "xer",
["Xetá"] = "xet",
["Xhosa"] = "xh",
["Xianbei"] = "mis-xbi",
["Xiang"] = "hsn",
["Xibe"] = "sjo",
["Xicotepec de Juárez Totonac"] = "too",
["Xinca"] = "xin",
["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âcùù"] = "ane",
["Xârâgurè"] = "axx",
["Yaa"] = "iyx",
["Yaaku"] = "muu",
["Yabarana"] = "yar",
["Yabaâna"] = "ybn",
["Yaben"] = "ybm",
["Yabong"] = "ybo",
["Yabula Yabula"] = "yxy",
["Yace"] = "ekr",
["Yaeyama"] = "rys",
["Yafi"] = "wfg",
["Yagara"] = "yxg",
["Yagaria"] = "ygr",
["Yagnobi"] = "yai",
["Yagomi"] = "ygm",
["Yagua"] = "yad",
["Yagwoia"] = "ygw",
["Yahadian"] = "ner",
["Yahang"] = "rhp",
["Yahuna"] = "ynu",
["Yaka"] = "yaf",
["Yakaikeke"] = "ykk",
["Yakan"] = "yka",
["Yakima"] = "yak",
["Yakkha"] = "ybh",
["Yakoma"] = "yky",
["Yakut"] = "sah",
["Yala"] = "yba",
["Yalahatan"] = "jal",
["Yalakalore"] = "xyl",
["Yalarnnga"] = "ylr",
["Yale"] = "nce",
["Yaleba"] = "ylb",
["Yali Ninia"] = "nlk",
["Yalunka"] = "yal",
["Yalálag Zapotec"] = "zpu",
["Yamap"] = "ymp",
["Yamba"] = "yam",
["Yambes"] = "ymb",
["Yambeta"] = "yat",
["Yamdena"] = "jmd",
["Yameo"] = "yme",
["Yami"] = "tao",
["Yaminahua"] = "yaa",
["Yamongeri"] = "ymg",
["Yamphu"] = "ybi",
["Yan-nhangu"] = "jay",
["Yana"] = "ynn",
["Yanda"] = "yda",
["Yanda Dogon"] = "dym",
["Yandjibara"] = "xyb",
["Yandruwandha"] = "ynd",
["Yanesha'"] = "ame",
["Yangben"] = "yav",
["Yangkaal"] = "aus-ynk",
["Yangkam"] = "bsx",
["Yangman"] = "jng",
["Yango"] = "yng",
["Yangulam"] = "ynl",
["Yangum Dey"] = "yde",
["Yangum Gel"] = "ygl",
["Yankunytjatjara"] = "kdd",
["Yanomámi"] = "wca",
["Yansi"] = "yns",
["Yanyuwa"] = "jao",
["Yao"] = "yao",
["Yao (Amerika Selatan)"] = "sai-yao",
["Yaouré"] = "yre",
["Yapese"] = "yap",
["Yapunda"] = "yev",
["Yaqay"] = "jaq",
["Yaqui"] = "yaq",
["Yarawata"] = "yrw",
["Yareba"] = "yrb",
["Yarli"] = "yxl",
["Yarluyandi"] = "yry",
["Yaroamë"] = "yro",
["Yarumá"] = "sai-yar",
["Yarí"] = "yri",
["Yasa"] = "yko",
["Yatay"] = "yty",
["Yatee Zapotec"] = "zty",
["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",
["Yemba"] = "ybb",
["Yemsa"] = "jnj",
["Yendang"] = "yen",
["Yeni"] = "yei",
["Yeniche"] = "yec",
["Yerakai"] = "yra",
["Yerong"] = "yrn",
["Yerukula"] = "yeu",
["Yeskwa"] = "yes",
["Yessan-Mayo"] = "yss",
["Yetfa"] = "yet",
["Yevanic"] = "yej",
["Yeyi"] = "yey",
["Yiddish"] = "yi",
["Yidgha"] = "ydg",
["Yidiny"] = "yii",
["Yil"] = "yll",
["Yimas"] = "yee",
["Yimchungru Naga"] = "yim",
["Yinchia"] = "yin",
["Yindjibarndi"] = "yij",
["Yindjilandji"] = "yil",
["Yine"] = "pib",
["Yinggarda"] = "yia",
["Yinhawangka"] = "ywg",
["Yiningayi"] = "ygi",
["Yinwum"] = "yxm",
["Yir-Yoront"] = "yiy",
["Yirandali"] = "ljw",
["Yis"] = "yis",
["Yitha Yitha"] = "xth",
["Yoba"] = "yob",
["Yogad"] = "yog",
["Yoidik"] = "ydk",
["Yoke"] = "yki",
["Yokuts Buena Vista"] = "yok-bvy",
["Yokuts Delta"] = "yok-dly",
["Yokuts Gashowu"] = "yok-gsy",
["Yokuts Lembah Selatan"] = "yok-svy",
["Yokuts Lembah Utara"] = "yok-nvy",
["Yokuts Palewyami"] = "yok-ply",
["Yokuts Sungai Kings"] = "yok-kry",
["Yokuts Tule-Kaweah"] = "yok-tky",
["Yola"] = "yol",
["Yolmo"] = "scp",
["Yolngu Sign Language"] = "ygs",
["Yom"] = "pil",
["Yombe"] = "yom",
["Yonaguni"] = "yoi",
["Yong"] = "yno",
["Yongkom"] = "yon",
["Yopno"] = "yut",
["Yora"] = "mts",
["Yoron"] = "yox",
["Yorta Yorta"] = "xyy",
["Yoruba"] = "yo",
["Youle Jino"] = "jiu",
["Younuo Bunu"] = "buh",
["Yout Wam"] = "ytw",
["Yoy"] = "yoy",
["Yuanga"] = "nua",
["Yuchi"] = "yuc",
["Yucuna"] = "ycn",
["Yug"] = "yug",
["Yugambal"] = "yub",
["Yugoslavian Sign Language"] = "ysl",
["Yugul"] = "ygu",
["Yugur Barat"] = "ybe",
["Yugur Timur"] = "yuy",
["Yuhup"] = "yab",
["Yukaghir Selatan"] = "yux",
["Yukaghir Utara"] = "ykg",
["Yuki"] = "yuk",
["Yukpa"] = "yup",
["Yukuben"] = "ybl",
["Yulu"] = "yul",
["Yuma"] = "yum",
["Yumana"] = "awd-yum",
["Yunani Cappadocia"] = "cpg",
["Yunani Pontus"] = "pnt",
["Yunani Romani"] = "rge",
["Yup'ik"] = "esu",
["Yupik Siberia Tengah"] = "ess",
["Yupiltepeque"] = "nai-yup",
["Yupua"] = "sai-yup",
["Yuqui"] = "yuq",
["Yuracare"] = "yuz",
["Yuri"] = "sai-yri",
["Yurok"] = "yur",
["Yuru"] = "ljx",
["Yurumanguí"] = "sai-yur",
["Yurutí"] = "yui",
["Yuwana"] = "yau",
["Yuyu"] = "yxu",
["Yámana"] = "yag",
["Zaachila Zapotec"] = "ztx",
["Zabana"] = "kji",
["Zacatepec Chatino"] = "ctz",
["Zaghawa"] = "zag",
["Zaiwa"] = "atb",
["Zakhring"] = "zkr",
["Zambian Sign Language"] = "zsl",
["Zan Gula"] = "zna",
["Zanaki"] = "zak",
["Zande"] = "zne",
["Zangskar"] = "zau",
["Zangwal"] = "zah",
["Zaniza Zapotec"] = "zpw",
["Zapotec"] = "zap",
["Zapotec Aloápam"] = "zaq",
["Zapotec Ayoquesco"] = "zaf",
["Zapotec Cajonos"] = "zad",
["Zapotec Coatecas Altas"] = "zca",
["Zapotec Mitla"] = "zaw",
["Zapotec Ocotlán"] = "zac",
["Zapotec Ozolotepec"] = "zao",
["Zapotec Purba"] = "xzp",
["Zapotec Rincón"] = "zar",
["Zapotec San Juan Guelavía"] = "zab",
["Zapotec Santo Domingo Albarradas"] = "zas",
["Zapotec Segenting"] = "zai",
["Zapotec Sierra de Juárez"] = "zaa",
["Zapotec Tabaa"] = "zat",
["Zapotec Xadani"] = "zax",
["Zapotec Yareni"] = "zae",
["Zapotec Yatzachi"] = "zav",
["Zapoteco Mahuatlán Tengah"] = "zam",
["Zaramo"] = "zaj",
["Zari"] = "zaz",
["Zarma"] = "dje",
["Zauzou"] = "zal",
["Zay"] = "zwa",
["Zayse-Zergulla"] = "zay",
["Zazaki"] = "zza",
["Zazao"] = "jaj",
["Zbu"] = "sit-zbu",
["Zeeland"] = "zea",
["Zeem"] = "zua",
["Zemba"] = "dhm",
["Zemgalia"] = "xzm",
["Zenag"] = "zeg",
["Zenaga"] = "zen",
["Zenzontepec Chatino"] = "czn",
["Zhaba"] = "zhb",
["Zhang-Zhung"] = "xzh",
["Zhire"] = "zhi",
["Zhoa"] = "zhw",
["Zhuang"] = "za",
["Zhár"] = "jjr",
["Zia"] = "zia",
["Zialo"] = "zil",
["Zigula"] = "ziw",
["Zimakani"] = "zik",
["Zimba"] = "zmb",
["Zimbabwe Sign Language"] = "zib",
["Zinza"] = "zin",
["Zire"] = "sih",
["Zirenkel"] = "zrn",
["Ziriya"] = "zir",
["Zizilivakan"] = "ziz",
["Zo'é"] = "pto",
["Zokhuo"] = "yzk",
["Zoogocho Zapotec"] = "zpq",
["Zou"] = "zom",
["Zulu"] = "zu",
["Zumaya"] = "zuy",
["Zumbun"] = "jmb",
["Zuni"] = "zun",
["Zuojiang Zhuang"] = "zzj",
["Zuwara"] = "ber-zuw",
["Zyphe"] = "zyp",
["Záparo"] = "zro",
["tidak ditentukan"] = "und",
["Àhàn"] = "ahn",
["Áncá"] = "acb",
["Äiwoo"] = "nfl",
["Älvdalen"] = "ovd",
["Äynu"] = "aib",
["Ömie"] = "aom",
["Önge"] = "oon",
["ǀXam"] = "xam",
["ǁAni"] = "hnh",
["ǁXegwi"] = "xeg",
["ǂHoan"] = "huc",
["ǃKung"] = "khi-kun",
["ǃXóõ"] = "nmn",
}
c5d4u8bwvscys133amv155tmth55tk3
373544
373523
2026-09-11T09:58:18Z
Hakimi97
2668
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373544
Scribunto
text/plain
return {
["'Are'are"] = "alu",
["A'ou"] = "aou",
["A-Hmao"] = "hmd",
["A-Pucikwar"] = "apq",
["Aari"] = "aiw",
["Aasax"] = "aas",
["Aba"] = "utp",
["Abaga"] = "abg",
["Abai"] = "poz-abi",
["Abai Sungai"] = "abf",
["Abanyom"] = "abm",
["Abau"] = "aau",
["Abaza"] = "abq",
["Abenaki"] = "abe",
["Abidji"] = "abi",
["Abinomn"] = "bsa",
["Abipón"] = "axb",
["Abishira"] = "ash",
["Abkhaz"] = "ab",
["Abom"] = "aob",
["Abon"] = "abo",
["Abu"] = "ado",
["Abu'"] = "aah",
["Abua"] = "abn",
["Abui"] = "abz",
["Abun"] = "kgr",
["Abung"] = "abl",
["Abure"] = "abu",
["Abureni"] = "mgj",
["Abé"] = "aba",
["Acatepec Me'phaa"] = "tpx",
["Aceh"] = "ace",
["Achagua"] = "aca",
["Achang"] = "acn",
["Ache"] = "yif",
["Acheron"] = "acz",
["Achi"] = "acr",
["Acholi"] = "ach",
["Achuar"] = "acu",
["Achumawi"] = "acv",
["Acipa Timur"] = "acp",
["Acroá"] = "acs",
["Adai"] = "xad",
["Adang"] = "adn",
["Adangbe"] = "adq",
["Adangme"] = "ada",
["Adap"] = "adp",
["Adasen"] = "tiu",
["Adele"] = "ade",
["Adhola"] = "adh",
["Adi"] = "adi",
["Adioukrou"] = "adj",
["Adithinngithigh"] = "dth",
["Adnyamathanha"] = "adt",
["Adonara"] = "adr",
["Aduge"] = "adu",
["Adzera"] = "adz",
["Adûni"] = "art-adu",
["Aeka"] = "aez",
["Aekyom"] = "awi",
["Aequian"] = "xae",
["Aer"] = "aeq",
["Afade"] = "aal",
["Afar"] = "aa",
["Afitti"] = "aft",
["Afra"] = "ulf",
["Afrihili"] = "afh",
["Afrikaans"] = "af",
["Agarabi"] = "agd",
["Agatu"] = "agc",
["Agawam"] = "alg-aga",
["Aghem"] = "agq",
["Aghu"] = "ahh",
["Aghul"] = "agx",
["Aghwan"] = "xag",
["Agi"] = "aif",
["Agob"] = "kit",
["Agoi"] = "ibm",
["Agta Cagayan Tengah"] = "agt",
["Agta Camarines Norte"] = "abd",
["Agta Casiguran Dumagat"] = "dgc",
["Agta Dicamay"] = "duy",
["Agta Dinapigue"] = "phi-din",
["Agta Dupaningan"] = "duo",
["Agta Gunung Iraya"] = "atl",
["Agta Gunung Iriga"] = "agz",
["Agta Isarog"] = "agk",
["Agta Nagtipunan"] = "phi-nag",
["Agta Pahanan"] = "apf",
["Agta Pulau Alabat"] = "dul",
["Agta Remontado"] = "agv",
["Agta Umiray Dumaget"] = "due",
["Agta Villa Viciosa"] = "dyg",
["Aguacateco"] = "agu",
["Aguano"] = "aga",
["Aguaruna"] = "agr",
["Aguna"] = "aug",
["Agutaynen"] = "agn",
["Agwagwune"] = "yay",
["Ahanta"] = "aha",
["Ahirani"] = "ahr",
["Ahom"] = "aho",
["Ahtna"] = "aht",
["Ahwai"] = "nfd",
["Ai-Cham"] = "aih",
["Aighon"] = "aix",
["Aikanã"] = "tba",
["Aiklep"] = "mwg",
["Aimele"] = "ail",
["Aimol"] = "aim",
["Ainbai"] = "aic",
["Ainu"] = "ain",
["Aiome"] = "aki",
["Airoran"] = "air",
["Aisi"] = "mmq",
["Aiton"] = "aio",
["Aja (Afrika Barat)"] = "ajg",
["Aja (Afrika Timur)"] = "aja",
["Ajawa"] = "ajw",
["Ajië"] = "aji",
["Ajyíninka Apurucayali"] = "cpc",
["Ak"] = "akq",
["Aka (Afrika Tengah)"] = "axk",
["Aka (Sudan)"] = "soh",
["Aka-Bea"] = "abj",
["Aka-Bo"] = "akm",
["Aka-Cari"] = "aci",
["Aka-Kede"] = "akx",
["Aka-Kol"] = "aky",
["Aka-Kora"] = "ack",
["Akan"] = "ak",
["Akar-Bale"] = "acl",
["Akaselem"] = "aks",
["Akatek"] = "knj",
["Akawaio"] = "ake",
["Ake"] = "aik",
["Akebu"] = "keu",
["Akei"] = "tsr",
["Akeu"] = "aeu",
["Akha"] = "ahk",
["Akhvakh"] = "akv",
["Akkadia"] = "akk",
["Aklanon"] = "akl",
["Akolet"] = "akt",
["Akoose"] = "bss",
["Akoye"] = "miw",
["Akpa"] = "akf",
["Akpes"] = "ibe",
["Akrukay"] = "afi",
["Akuku"] = "ayk",
["Akum"] = "aku",
["Akuntsu"] = "aqz",
["Akurio"] = "ako",
["Akuwagel"] = "bey",
["Akwa"] = "akw",
["Akyaung Ari"] = "nqy",
["Al-Sayyid Bedouin Sign Language"] = "syy",
["Alaba"] = "alw",
["Alabama"] = "akz",
["Alago"] = "ala",
["Alagwa"] = "wbj",
["Alak"] = "alk",
["Alamblak"] = "amp",
["Alangan"] = "alj",
["Alapmunte"] = "apv",
["Alawa"] = "alh",
["Alazapa"] = "nai-ala",
["Albania"] = "sq",
["Albanian Sign Language"] = "sqk",
["Alchuka"] = "tuw-alk",
["Alcozauca Mixtec"] = "xta",
["Alege"] = "alf",
["Aleut"] = "ale",
["Aleut Mednyj"] = "mud",
["Algonquin"] = "alq",
["Algonquin Carolina"] = "crr",
["Ali"] = "aiy",
["Alladian"] = "ald",
["Allar"] = "all",
["Allentiac"] = "sai-all",
["Alngith"] = "aid",
["Alo Phola"] = "ypo",
["Alor"] = "aol",
["Alsea"] = "aes",
["Alta Selatan"] = "agy",
["Alta Utara"] = "aqn",
["Altai Selatan"] = "alt",
["Altai Utara"] = "atv",
["Alu"] = "mte",
["Alugu"] = "aub",
["Alumu-Tesu"] = "aab",
["Alune"] = "alp",
["Alungul"] = "aus-alu",
["Aluo"] = "yna",
["Alur"] = "alz",
["Alutiiq"] = "ems",
["Alutor"] = "alr",
["Alviri-Vidari"] = "avd",
["Alyawarr"] = "aly",
["Ama"] = "amm",
["Amahai"] = "amq",
["Amahuaca"] = "amc",
["Amaimon"] = "ali",
["Amal"] = "aad",
["Amami Ōshima Selatan"] = "ams",
["Amami Ōshima Utara"] = "ryn",
["Amanab"] = "amn",
["Amanayé"] = "ama",
["Amara"] = "aie",
["Amarakaeri"] = "amr",
["Amarasi"] = "aaz",
["Amarizana"] = "awd-ama",
["Amasi"] = "alv-ama",
["Amatlán Zapotec"] = "zpo",
["Amazigh Maghribi"] = "zgh",
["Amba"] = "rwm",
["Ambae Barat"] = "nnd",
["Ambai"] = "amk",
["Ambakich"] = "aew",
["Ambelau"] = "amv",
["Ambele"] = "ael",
["Amblong"] = "alm",
["Ambo"] = "amb",
["Ambrak"] = "aag",
["Ambrym Tenggara"] = "tvk",
["Ambrym Utara"] = "mmg",
["Ambul"] = "apo",
["Ambulas"] = "abt",
["Amdang"] = "amj",
["Amele"] = "aey",
["Amganad Ifugao"] = "ifa",
["Amhara"] = "am",
["Ami"] = "amy",
["Amis"] = "ami",
["Ammon"] = "sem-amm",
["Amo"] = "amo",
["Amol"] = "alx",
["Amondawa"] = "adw",
["Amor"] = "sem-amo",
["Ampanang"] = "apg",
["Amto"] = "amt",
["Amurdag"] = "amg",
["Amuzgo Guerrero"] = "amu",
["Amuzgo Ipalapa"] = "azm",
["Amuzgo San Pedro Amuzgos"] = "azg",
["Ana Tinga Dogon"] = "dti",
["Anaang"] = "anw",
["Anakalangu"] = "akg",
["Anam"] = "pda",
["Anambé"] = "aan",
["Anamgura"] = "imi",
["Anasi"] = "bpo",
["Anauyá"] = "awd-ana",
["Andai"] = "afd",
["Andajin"] = "ajn",
["Andaqui"] = "ana",
["Andarum"] = "aod",
["Andegerebinha"] = "adg",
["Andh"] = "anr",
["Andi"] = "ani",
["Andio"] = "bzb",
["Andjingith"] = "aus-and",
["Andoa"] = "anb",
["Andoque"] = "ano",
["Andoquero"] = "sai-and",
["Andra-Hus"] = "anx",
["Aneityum"] = "aty",
["Anem"] = "anz",
["Aneme Wake"] = "aby",
["Anfillo"] = "myo",
["Angaataha"] = "agm",
["Angaité"] = "aqt",
["Angal"] = "age",
["Angal Enen"] = "aoe",
["Angal Heneng"] = "akh",
["Angami"] = "njm",
["Angevin"] = "roa-ang",
["Angguruk Yali"] = "yli",
["Angika"] = "anp",
["Angkamuthi"] = "avm",
["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",
["Annobon"] = "fab",
["Anong"] = "nun",
["Anor"] = "anj",
["Anserma"] = "ans",
["Ansus"] = "and",
["Antakarinya"] = "ant",
["Anu"] = "anl",
["Anuak"] = "anu",
["Anufo"] = "cko",
["Anuki"] = "aui",
["Anus"] = "auq",
["Anuta"] = "aud",
["Anyi"] = "any",
["Anyin Morofo"] = "mtb",
["Anāl"] = "anm",
["Ao Chungli"] = "njo-jgl",
["Ao Mongsen"] = "njo-mng",
["Aoheng"] = "pni",
["Aore"] = "aor",
["Ap Ma"] = "kbx",
["Apabhramsa"] = "inc-apa",
["Apache Barat"] = "apw",
["Apache Dataran"] = "apk",
["Apalachee"] = "xap",
["Apalaí"] = "apy",
["Apali"] = "ena",
["Apatani"] = "apt",
["Apiaká"] = "api",
["Apinayé"] = "apn",
["Apma"] = "app",
["Apolista"] = "awd-apo",
["Apro"] = "ahp",
["Apurinã"] = "apu",
["Aputai"] = "apx",
["Aquitanian"] = "xaq",
["Arab"] = "ar",
["Arab Algeria"] = "arq",
["Arab Andalusia"] = "xaa",
["Arab Bahrani"] = "abv",
["Arab Chad"] = "shu",
["Arab Cyprus"] = "acy",
["Arab Dhofar"] = "adf",
["Arab Hassaniyah"] = "mey",
["Arab Hijaz"] = "acw",
["Arab Iraq"] = "acm",
["Arab Juba"] = "pga",
["Arab Libya"] = "ayl",
["Arab Maghribi"] = "ary",
["Arab Mesir"] = "arz",
["Arab Mesopotamia Utara"] = "ayp",
["Arab Najdi"] = "ars",
["Arab Oman"] = "acx",
["Arab Selatan Kuno"] = "sem-srb",
["Arab Sudan"] = "apd",
["Arab Syam Selatan"] = "ajp",
["Arab Syam Utara"] = "apc",
["Arab Syihuh"] = "ssh",
["Arab Tajik"] = "abh",
["Arab Teluk"] = "afb",
["Arab Tunisia"] = "aeb",
["Arab Utara Purba"] = "xna",
["Arab Uzbeki"] = "auz",
["Arab Yaman"] = "ayn",
["Arabana"] = "ard",
["Arabela"] = "arl",
["Aragon"] = "an",
["Araki"] = "akr",
["Arakwal"] = "rkw",
["Aralle-Tabulahan"] = "atq",
["Aramia"] = "arc",
["Arammba"] = "stk",
["Aranadan"] = "aaf",
["Aranama-Tamique"] = "xrt",
["Aranda Selatan Bawah"] = "axl",
["Arandai"] = "jbj",
["Araona"] = "aro",
["Arapaho"] = "arp",
["Arapaso"] = "arj",
["Arapesh Bumbita"] = "aon",
["Arara-Karo"] = "arr",
["Ararandewára"] = "xaj",
["Araweté"] = "awt",
["Arawum"] = "awm",
["Arbore"] = "arv",
["Archi"] = "aqc",
["Are"] = "mwc",
["Areba"] = "aea",
["Arem"] = "aem",
["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",
["Armenia"] = "hy",
["Armenia Kuno"] = "xcl",
["Armenia Pertengahan"] = "axm",
["Aromania"] = "rup",
["Arop-Lokep"] = "apr",
["Arop-Sissano"] = "aps",
["Arosi"] = "aia",
["Arrernte Barat"] = "are",
["Arrernte Timur"] = "aer",
["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",
["Ashraaf"] = "cus-ash",
["Asháninka"] = "cni",
["Ashéninka Pajonal"] = "cjo",
["Ashéninka Perené"] = "prq",
["Ashéninka Ucayali Selatan"] = "cpy",
["Asi"] = "bno",
["Asilulu"] = "asl",
["Askopan"] = "eiv",
["Asmat Pesisir Casuarina"] = "asc",
["Asmat Tengah"] = "cns",
["Asmat Utara"] = "nks",
["Asmat Yaosakor"] = "asy",
["Asoa"] = "asv",
["Assam"] = "as",
["Assam Awal"] = "inc-oas",
["Assam Pertengahan"] = "inc-mas",
["Assan"] = "xss",
["Assangori"] = "sjg",
["Assiniboine"] = "asb",
["Asturia"] = "ast",
["Asu"] = "aum",
["Asue Awyu"] = "psa",
["Asumboa"] = "aua",
["Asunción Mixtepec Zapotec"] = "zoo",
["Asuri"] = "asr",
["Asurini Tocantins"] = "asu",
["Asuriní Xingú"] = "asn",
["Ata"] = "atm",
["Atakapa"] = "aqp",
["Atampaya"] = "amz",
["Atanques"] = "cba-ata",
["Atauran"] = "adb",
["Atayal"] = "tay",
["Atemble"] = "ate",
["Ateso"] = "teo",
["Athpare"] = "aph",
["Ati"] = "atk",
["Atikamekw"] = "atj",
["Atohwaim"] = "aqm",
["Atong (Cameroon)"] = "ato",
["Atong (India)"] = "aot",
["Atorada"] = "aox",
["Atsahuaca"] = "atc",
["Atsam"] = "cch",
["Atsugewi"] = "atw",
["Atta Faire"] = "azt",
["Atta Pamplona"] = "att",
["Atta Pudtol"] = "atp",
["Attapady Kurumba"] = "pkr",
["Attié"] = "ati",
["Au"] = "avt",
["Auhelawa"] = "kud",
["Aukan"] = "djk",
["Aulua"] = "aul",
["Aurá"] = "aux",
["Aushi"] = "auh",
["Aushiri"] = "avs",
["Auslan"] = "asf",
["Austral"] = "aut",
["Auwe"] = "smf",
["Auyana"] = "auy",
["Auye"] = "auu",
["Auyokawa"] = "auo",
["Avar"] = "av",
["Avar Kuno"] = "oav",
["Avatime"] = "avn",
["Avau"] = "avb",
["Avava"] = "tmb",
["Avesta"] = "ae",
["Avikam"] = "avi",
["Avokaya"] = "avu",
["Avá-Canoeiro"] = "avv",
["Awa (China)"] = "vwa",
["Awa (New Guinea)"] = "awb",
["Awa-Cuaiquer"] = "kwi",
["Awabakal"] = "awk",
["Awadhi"] = "awa",
["Awadhi Kuno"] = "inc-oaw",
["Awak"] = "awo",
["Awar"] = "aya",
["Awara"] = "awx",
["Awbono"] = "awh",
["Aweer"] = "bob",
["Awera"] = "awr",
["Awetí"] = "awe",
["Awing"] = "azo",
["Awjila"] = "auj",
["Awngi"] = "awn",
["Awngthim"] = "gwm",
["Awtuw"] = "kmn",
["Awu"] = "yiu",
["Awun"] = "aww",
["Awutu"] = "afu",
["Awyi"] = "auw",
["Awyu Edera"] = "awy",
["Awyu Jair"] = "awv",
["Awyu Selatan"] = "aws",
["Awyu Tengah"] = "awu",
["Awyu Utara"] = "yir",
["Axamb"] = "ahb",
["Axi"] = "yix",
["Ayabadhu"] = "ayd",
["Ayautla Mazatec"] = "vmy",
["Ayere"] = "aye",
["Ayerrerenge"] = "axe",
["Ayi"] = "ayq",
["Ayizi"] = "yyz",
["Ayizo"] = "ayb",
["Aymara"] = "ay",
["Ayomán"] = "sai-ayo",
["Ayoreo"] = "ayo",
["Ayta Abenlen"] = "abp",
["Ayta Ambala"] = "abc",
["Ayta Bataan"] = "ayt",
["Ayta Sorsogon"] = "ays",
["Ayu"] = "ayu",
["Azerbaijan"] = "az",
["Azha"] = "aza",
["Azhe"] = "yiz",
["Azoyú Me'phaa"] = "tpc",
["Baa"] = "kwb",
["Baagandji"] = "drl",
["Baali"] = "bcp",
["Baan"] = "bvj",
["Baangi"] = "bqx",
["Baatonum"] = "bba",
["Baba"] = "bbw",
["Babango"] = "bbm",
["Babanki"] = "bbk",
["Babar Utara"] = "bcd",
["Babatana"] = "baa",
["Babine-Witsuwit'en"] = "bcr",
["Babole"] = "bvx",
["Babungo"] = "bav",
["Babuza"] = "bzg",
["Bacama"] = "bcy",
["Bada"] = "bhz",
["Badaga"] = "bfq",
["Badanchi"] = "bau",
["Bade"] = "bde",
["Badeshi"] = "bdz",
["Badimaya"] = "bia",
["Badui"] = "bac",
["Badyara"] = "pbp",
["Baeggu"] = "bvd",
["Baekje"] = "pkc",
["Baelelea"] = "bvc",
["Baenan"] = "sai-bae",
["Baetora"] = "btr",
["Bafanji"] = "bfj",
["Bafaw"] = "bwt",
["Bafia"] = "ksf",
["Bafut"] = "bfd",
["Baga Kaloum"] = "bqf",
["Baga Koga"] = "bgo",
["Baga Manduri"] = "bmd",
["Baga Pokur"] = "bcg",
["Baga Sitemu"] = "bsp",
["Baga Sobané"] = "bsv",
["Bagheli"] = "bfy",
["Bagirmi"] = "bmi",
["Bago-Kusuntu"] = "bqg",
["Bagri"] = "bgq",
["Bagua"] = "sai-bag",
["Bagupi"] = "bpi",
["Bagusa"] = "bqb",
["Bagvalal"] = "kva",
["Baha"] = "yha",
["Bahaaa Isyarat Mauritius"] = "lsy",
["Bahaaa Isyarat Panama"] = "lsp",
["Baham"] = "bdw",
["Bahasa Hitam"] = "art-bsp",
["Bahasa Isyarat Adamorobe"] = "ads",
["Bahasa Isyarat Afghanistan"] = "afg",
["Bahasa Isyarat Afrika Selatan"] = "sfs",
["Bahasa Isyarat Algeria"] = "asp",
["Bahasa Isyarat Amerika"] = "ase",
["Bahasa Isyarat Argentina"] = "aed",
["Bahasa Isyarat Armenia"] = "aen",
["Bahasa Isyarat Austria"] = "asq",
["Bahasa Isyarat Chad"] = "cds",
["Bahasa Isyarat Croatia"] = "csq",
["Bahasa Isyarat Ecuador"] = "ecs",
["Bahasa Isyarat El Salvador"] = "esn",
["Bahasa Isyarat Estonia"] = "eso",
["Bahasa Isyarat Filipina"] = "psp",
["Bahasa Isyarat Finland"] = "fse",
["Bahasa Isyarat Finland-Sweden"] = "fss",
["Bahasa Isyarat Habsyah"] = "eth",
["Bahasa Isyarat Haiphong"] = "haf",
["Bahasa Isyarat Hanoi"] = "hab",
["Bahasa Isyarat Hausa"] = "hsl",
["Bahasa Isyarat Honduras"] = "hds",
["Bahasa Isyarat Hong Kong"] = "hks",
["Bahasa Isyarat Hungary"] = "hsh",
["Bahasa Isyarat Iceland"] = "icl",
["Bahasa Isyarat India"] = "ins",
["Bahasa Isyarat Indonesia"] = "inl",
["Bahasa Isyarat Inuit"] = "iks",
["Bahasa Isyarat Ireland"] = "isg",
["Bahasa Isyarat Israel"] = "isr",
["Bahasa Isyarat Itali"] = "ise",
["Bahasa Isyarat Jamaica"] = "jls",
["Bahasa Isyarat Jepun"] = "jsl",
["Bahasa Isyarat Jhankot"] = "jhs",
["Bahasa Isyarat Jordan"] = "jos",
["Bahasa Isyarat Jumla"] = "jus",
["Bahasa Isyarat Kentish Kuno"] = "okl",
["Bahasa Isyarat Korea"] = "kvk",
["Bahasa Isyarat Lao"] = "lso",
["Bahasa Isyarat Latvia"] = "lsl",
["Bahasa Isyarat Libya"] = "lbs",
["Bahasa Isyarat Madagascar"] = "mzc",
["Bahasa Isyarat Malta"] = "mdl",
["Bahasa Isyarat Maritim"] = "nsr",
["Bahasa Isyarat Martha's Vineyard"] = "mre",
["Bahasa Isyarat Maya Yucatec"] = "msd",
["Bahasa Isyarat Mesir"] = "esl",
["Bahasa Isyarat Mexico"] = "mfs",
["Bahasa Isyarat Miriwoong"] = "rsm",
["Bahasa Isyarat Monastik"] = "mzg",
["Bahasa Isyarat Mongolia"] = "msr",
["Bahasa Isyarat Mozambique"] = "mzy",
["Bahasa Isyarat Namibia"] = "nbs",
["Bahasa Isyarat Negara Jamaica"] = "jcs",
["Bahasa Isyarat Nepal"] = "nsp",
["Bahasa Isyarat New Zealand"] = "nzs",
["Bahasa Isyarat Nicaragua"] = "ncs",
["Bahasa Isyarat Nigeria"] = "nsi",
["Bahasa Isyarat Norway"] = "nsl",
["Bahasa Isyarat Orang Asli Australia"] = "asw",
["Bahasa Isyarat Pakistan"] = "pks",
["Bahasa Isyarat Papua New Guinea"] = "pgz",
["Bahasa Isyarat Paraguay"] = "pys",
["Bahasa Isyarat Parsi"] = "psc",
["Bahasa Isyarat Perancis"] = "fsl",
["Bahasa Isyarat Peru"] = "prl",
["Bahasa Isyarat Poland"] = "pso",
["Bahasa Isyarat Portugis"] = "psr",
["Bahasa Isyarat Providencia"] = "prz",
["Bahasa Isyarat Puerto Rico"] = "psl",
["Bahasa Isyarat Pulau Pinang"] = "psg",
["Bahasa Isyarat Quebec"] = "fcs",
["Bahasa Isyarat Romania"] = "rms",
["Bahasa Isyarat Rusia"] = "rsl",
["Bahasa Isyarat Taiwan"] = "tss",
["Bahasa Isyarat Tanzania"] = "tza",
["Bahasa Isyarat Tebul"] = "tsy",
["Bahasa Isyarat Thai"] = "tsq",
["Bahasa Isyarat Trinidad dan Tobago"] = "lst",
["Bahasa Isyarat Tunisia"] = "tse",
["Bahasa Isyarat Turki"] = "tsm",
["Bahasa Isyarat Yahudi Algeria"] = "ajs",
["Bahasa Lembah Indus"] = "xiv",
["Bahasa Roh Maroon"] = "crp-mar",
["Bahau"] = "bhv",
["Bahinemo"] = "bjh",
["Bahing"] = "bhj",
["Bahnar"] = "bdq",
["Bahonsuai"] = "bsu",
["Bai"] = "bdj",
["Bai Selatan"] = "bfs",
["Bai Tengah"] = "bca",
["Baibai"] = "bbf",
["Baikeno"] = "bkx",
["Bailang"] = "tbq-blg",
["Baima"] = "bqh",
["Baimak"] = "bmx",
["Bainouk Gubeeher"] = "alv-bgu",
["Bainouk-Gunyaamolo"] = "bcz",
["Bainouk-Gunyuño"] = "bab",
["Bainouk-Samik"] = "bcb",
["Baiso"] = "bsw",
["Bajan"] = "bjs",
["Bajau Indonesia"] = "bdl",
["Bajau Laut"] = "sml",
["Bajau Pantai Timur"] = "ssb",
["Bajau Sama"] = "bdr",
["Bajelani"] = "bjm",
["Baka"] = "bkc",
["Bakairí"] = "bkq",
["Bakaka"] = "bqz",
["Bakhtiari"] = "bqi",
["Baki"] = "bki",
["Bakoko"] = "bkh",
["Bakole"] = "kme",
["Bakpinka"] = "bbs",
["Baktria"] = "xbc",
["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"] = "ban",
["Baliledo"] = "poz-bal",
["Balkan Gagauz Turkish"] = "bgx",
["Balo"] = "bqo",
["Baloi"] = "biz",
["Balong"] = "bnt-bal",
["Balti"] = "bft",
["Baluan-Pam"] = "blq",
["Baluchi"] = "bal",
["Bamako Sign Language"] = "bog",
["Bamali"] = "bbq",
["Bambalang"] = "bmo",
["Bambam"] = "ptu",
["Bambara"] = "bm",
["Bambassi"] = "myf",
["Bambili-Bambui"] = "baw",
["Bamenyam"] = "bce",
["Bamu"] = "bcf",
["Bamukumbit"] = "bqt",
["Bamum"] = "bax",
["Bamunka"] = "bvm",
["Bamwe"] = "bmg",
["Ban Khor Sign Language"] = "bfk",
["Bana"] = "bcw",
["Banam Bay"] = "vrt",
["Banao Itneg"] = "bjx",
["Banaro"] = "byz",
["Banda"] = "bnd",
["Banda Malay"] = "bpq",
["Banda Tengah Barat"] = "bbp",
["Banda Tengah Selatan"] = "lnl",
["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",
["Banjar"] = "bjn",
["Banka"] = "bxw",
["Bankan Tey Dogon"] = "dbw",
["Bankon"] = "abb",
["Banoni"] = "bcm",
["Bantawa"] = "bap",
["Bantayanon"] = "bfx",
["Bantik"] = "bnq",
["Banyumasan"] = "map-bms",
["Baoule"] = "bci",
["Baraamu"] = "brd",
["Barai"] = "bbb",
["Barakai"] = "baj",
["Barama"] = "bbg",
["Barambu"] = "brm",
["Baramu"] = "bmz",
["Barapasi"] = "brp",
["Baras"] = "brs",
["Barasana"] = "bsn",
["Barbar Tunisia"] = "sds",
["Barbareño"] = "boi",
["Bardi"] = "bcj",
["Barein"] = "bva",
["Bargam"] = "mlp",
["Bari"] = "bfa",
["Bariai"] = "bch",
["Bariji"] = "bjc",
["Barikanchi"] = "bxo",
["Barikewa"] = "jbk",
["Barngarla"] = "bjb",
["Barok"] = "bjk",
["Barombi"] = "bbi",
["Barranbinya"] = "aus-bra",
["Barro Negro Tunebo"] = "tbn",
["Barrow Point"] = "bpt",
["Baruga"] = "bjz",
["Barunggam"] = "aus-brm",
["Baruya"] = "byr",
["Barwe"] = "bwg",
["Barzani Jewish Neo-Aramaic"] = "bjf",
["Baré"] = "bae",
["Barí"] = "mot",
["Basa"] = "bzw",
["Basa-Gumna"] = "bsl",
["Basa-Gurmana"] = "buj",
["Basaa"] = "bas",
["Basap"] = "bdb",
["Basay"] = "byq",
["Bashkardi"] = "bsg",
["Bashkir"] = "ba",
["Basketo"] = "bst",
["Basque"] = "eu",
["Bassa"] = "bsq",
["Bassa-Kontagora"] = "bsr",
["Bassari"] = "bsc",
["Bassossi"] = "bsi",
["Bata"] = "bta",
["Batad Ifugao"] = "ifb",
["Batak Alas-Kluet"] = "btz",
["Batak Angkola"] = "akb",
["Batak Dairi"] = "btd",
["Batak Karo"] = "btx",
["Batak Mandailing"] = "btm",
["Batak Palawan"] = "bya",
["Batak Simalungun"] = "bts",
["Batak Toba"] = "bbc",
["Batanga"] = "bnm",
["Batek"] = "btq",
["Bateri"] = "btv",
["Bathari"] = "bhm",
["Bati (Cameroon)"] = "btc",
["Bati (Indonesia)"] = "bvt",
["Bats"] = "bbl",
["Batu"] = "btu",
["Batui"] = "zbt",
["Batuley"] = "bay",
["Bau"] = "bbd",
["Bauchi"] = "bsf",
["Baure"] = "brg",
["Bauria"] = "bge",
["Bauro"] = "bxa",
["Bauwaki"] = "bwk",
["Bauzi"] = "bvz",
["Bavarian"] = "bar",
["Bayali"] = "bjy",
["Baybayanon"] = "bvy",
["Baygo"] = "byg",
["Bayogoula"] = "nai-bay",
["Bayono"] = "byl",
["Bayot"] = "bda",
["Bayungu"] = "bxj",
["Bazigar"] = "bfr",
["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"] = "nl",
["Belanda Bor"] = "bxb",
["Belanda Jersey"] = "gmw-jdt",
["Belanda Kreol Berbice"] = "brc",
["Belanda Kreol Skepi"] = "skw",
["Belanda Kuno"] = "odt",
["Belanda Pertengahan"] = "dum",
["Belanda Viri"] = "bvi",
["Belarus"] = "be",
["Belhariya"] = "byw",
["Beli"] = "blm",
["Bella Coola"] = "blc",
["Bellari"] = "brw",
["Bemba"] = "bem",
["Bembe"] = "bmb",
["Ben Tey"] = "dbt",
["Bena"] = "yun",
["Benabena"] = "bef",
["Bench"] = "bcq",
["Bende"] = "bdp",
["Bendi"] = "bct",
["Beneraf"] = "bnv",
["Beng"] = "nhb",
["Benga"] = "bng",
["Bengal Kuno"] = "inc-obn",
["Bengal Pertengahan"] = "inc-mbn",
["Benggali"] = "bn",
["Benggoi"] = "bgy",
["Bengkala Sign Language"] = "bqy",
["Bentong"] = "bnu",
["Benyadu'"] = "byd",
["Beothuk"] = "bue",
["Bepour"] = "bie",
["Bera"] = "brf",
["Berakou"] = "bxv",
["Berawan"] = "lod",
["Berber Saharan Utara"] = "mzb",
["Bergish"] = "gmw-bgh",
["Berik"] = "bkl",
["Berinomo"] = "bit",
["Berom"] = "bom",
["Berta"] = "wti",
["Berti"] = "byt",
["Besisi"] = "mhe",
["Besme"] = "bes",
["Besoa"] = "bep",
["Betaf"] = "bfe",
["Betawi"] = "bew",
["Bete"] = "byf",
["Bete-Bendi"] = "btt",
["Betoi"] = "sai-bet",
["Bezhta"] = "kap",
["Bhadrawahi"] = "bhd",
["Bhalay"] = "bhx",
["Bharia"] = "bha",
["Bhatri"] = "bgw",
["Bhattiyali"] = "bht",
["Bhaya"] = "bhe",
["Bhele"] = "bhy",
["Bhilali"] = "bhi",
["Bhili"] = "bhb",
["Bhojpur"] = "bho",
["Bhunjia"] = "bhu",
["Biafada"] = "bif",
["Biage"] = "bdf",
["Biak"] = "bhw",
["Biali"] = "beh",
["Bian Marind"] = "bpv",
["Biangai"] = "big",
["Biao"] = "byk",
["Biao Mon"] = "bmt",
["Biao-Jiao Mien"] = "bje",
["Bibaali"] = "bcn",
["Bibbulman"] = "xbp",
["Bicolano Catanduanes Selatan"] = "bln",
["Bicolano Catanduanes Utara"] = "cts",
["Bicolano Iriga"] = "bto",
["Bidayuh Bau"] = "sne",
["Bidayuh Biatah"] = "bth",
["Bidayuh Bukar-Sadong"] = "sdo",
["Bidiyo"] = "bid",
["Bidyara"] = "bym",
["Bidyogo"] = "bjg",
["Biem"] = "bmc",
["Bierebo"] = "bnk",
["Bieria"] = "brj",
["Biete"] = "biu",
["Big Nambas"] = "nmb",
["Biga"] = "bhc",
["Bigambal"] = "xbe",
["Bih"] = "ibh",
["Bihari"] = "bh",
["Bijori"] = "bix",
["Bikaru"] = "bic",
["Bikol Libon"] = "lbl",
["Bikol Miraya"] = "rbl",
["Bikol Miraya Barat"] = "fbl",
["Bikol Tengah"] = "bcl",
["Bikya"] = "byb",
["Bila"] = "bip",
["Bilakura"] = "bql",
["Bilaspuri"] = "kfs",
["Bilba"] = "bpz",
["Bilbil"] = "brz",
["Bile"] = "bil",
["Biliau"] = "bcu",
["Biloxi"] = "bll",
["Bilua"] = "blb",
["Bilur"] = "bxf",
["Bima"] = "bhp",
["Bimin"] = "bhl",
["Bimoba"] = "bim",
["Bina"] = "bmn",
["Binahari"] = "bxz",
["Binandere"] = "bhg",
["Binawa"] = "byj",
["Bindal"] = "xbd",
["Bine"] = "bon",
["Binji"] = "bpj",
["Binongan Itneg"] = "itb",
["Bintauna"] = "bne",
["Binukid"] = "bkd",
["Binumarien"] = "bjr",
["Bipi"] = "biq",
["Birao"] = "brr",
["Birgid"] = "brk",
["Birgit"] = "btf",
["Birhor"] = "biy",
["Biri"] = "bzr",
["Birifor Selatan"] = "biv",
["Biritai"] = "bqq",
["Birri"] = "bvq",
["Birrpayi"] = "xbj",
["Birwa"] = "brl",
["Bisaya Brunei"] = "bsb",
["Bisaya Sabah"] = "bsy",
["Biseni"] = "ije",
["Bishnupriya Manipuri"] = "bpy",
["Bishuo"] = "bwh",
["Bisis"] = "bnw",
["Bislama"] = "bi",
["Bisorio"] = "bir",
["Bissa"] = "bib",
["Bisu"] = "bzi",
["Bit"] = "bgk",
["Bitare"] = "brt",
["Bitur"] = "mcc",
["Biwat"] = "bwm",
["Biyo"] = "byo",
["Biyom"] = "bpm",
["Blablanga"] = "blp",
["Blackfoot"] = "bla",
["Blafe"] = "bfh",
["Blagar"] = "beu",
["Blang"] = "blr",
["Blin"] = "byn",
["Bo"] = "bgl",
["Bo-Rukul"] = "mae",
["Bo-Ung"] = "mux",
["Boano (Maluku)"] = "bzn",
["Boano (Sulawesi)"] = "bzl",
["Bobo Selatan"] = "bwq",
["Bobongko"] = "bgb",
["Bobot"] = "bty",
["Bodo (Central Africa)"] = "boy",
["Bodo (India)"] = "brx",
["Bodo Parja"] = "bdv",
["Bofi"] = "bff",
["Boga"] = "bvw",
["Bogaya"] = "boq",
["Boghom"] = "bux",
["Boguru"] = "bqu",
["Boikin"] = "bzf",
["Bokar"] = "sit-bok",
["Bokha"] = "ybk",
["Bokmål Norway"] = "nb",
["Boko"] = "bqc",
["Bokobaru"] = "bus",
["Bokoto"] = "bdt",
["Bokyi"] = "bky",
["Bola"] = "bnp",
["Bolak"] = "art-blk",
["Bolango"] = "bld",
["Bole"] = "bol",
["Bolgo"] = "bvo",
["Bolia"] = "bli",
["Bolinao"] = "smk",
["Bolivian Sign Language"] = "bvl",
["Boloki"] = "bkt",
["Bolon"] = "bof",
["Bolondo"] = "bzm",
["Bolongan"] = "blj",
["Bolyu"] = "ply",
["Bom"] = "bmf",
["Boma Nkuu"] = "bnt-bon",
["Boma Selatan"] = "bnt-sbo",
["Boma Utara"] = "boh",
["Boma Yumu"] = "bnt-boy",
["Bomboli"] = "bml",
["Bomboma"] = "bws",
["Bomitaba"] = "zmx",
["Bomu"] = "bmq",
["Bomwali"] = "bmw",
["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",
["Bontoc Barat Daya"] = "vbk",
["Bontoc Selatan"] = "obk",
["Bontoc Tengah"] = "lbk",
["Bontoc Timur"] = "ebk",
["Bontoc Utara"] = "rbk",
["Bookan"] = "bnb",
["Boon"] = "bnl",
["Boor"] = "bvf",
["Bora"] = "boa",
["Boro"] = "xxb",
["Borong"] = "ksr",
["Boruca"] = "brn",
["Borôro"] = "bor",
["Boselewa"] = "bwf",
["Bosngun"] = "bqs",
["Bote-Majhi"] = "bmj",
["Botlikh"] = "bph",
["Botolan Sambal"] = "sbl",
["Bourbonnais-Berrichon"] = "roa-bbn",
["Bourguignon"] = "roa-brg",
["Bouyei"] = "pcc",
["Bozaba"] = "bzo",
["Bragat"] = "aof",
["Brahui"] = "brh",
["Braj"] = "bra",
["Brazilian Sign Language"] = "bzs",
["Brem"] = "buq",
["Breri"] = "brq",
["Breton"] = "br",
["Breton Kuno"] = "obt",
["Breton Pertengahan"] = "xbm",
["Bribri"] = "bzd",
["British Sign Language"] = "bfi",
["Brokkat"] = "bro",
["Brokpake"] = "sgt",
["Brokskat"] = "bkk",
["Broome Pearling Lugger Pidgin"] = "bpl",
["Bru Barat"] = "brv",
["Bru Timur"] = "bru",
["Bu"] = "jid",
["Bu-Nao Bunu"] = "bwx",
["Bua"] = "bub",
["Buamu"] = "box",
["Bube"] = "bvb",
["Bubi"] = "buw",
["Bubia"] = "bbx",
["Budeh Stieng"] = "stt",
["Budibud"] = "btp",
["Budong-Budong"] = "bdx",
["Budu"] = "buu",
["Budukh"] = "bdk",
["Buduma"] = "bdm",
["Budza"] = "bja",
["Bugan"] = "bbh",
["Bughotu"] = "bgt",
["Bugis"] = "bug",
["Buglere"] = "sab",
["Bugun"] = "bgg",
["Buhi'non Bikol"] = "ubl",
["Buhid"] = "bku",
["Buhutu"] = "bxh",
["Bujhyal"] = "byh",
["Bukat"] = "bvk",
["Bukawa"] = "buk",
["Bukhari"] = "bhh",
["Bukitan"] = "bkn",
["Bukiyip"] = "ape",
["Buksa"] = "tkb",
["Bukusu"] = "bxk",
["Bulgar"] = "xbo",
["Bulgaria"] = "bg",
["Bulgarian Sign Language"] = "bqn",
["Bulgebi"] = "bmp",
["Buli (Ghana)"] = "bwu",
["Buli (Indonesia)"] = "bzq",
["Bulo Stieng"] = "sti",
["Bulu (Cameroon)"] = "bum",
["Bulu (New Guinea)"] = "bjl",
["Bum"] = "bmv",
["Bumaji"] = "byp",
["Bumang"] = "bvp",
["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",
["Burak"] = "bys",
["Buraka"] = "bkg",
["Burarra"] = "bvr",
["Burate"] = "bti",
["Burduna"] = "bxn",
["Bure"] = "bvh",
["Burgundia"] = "gme-bur",
["Burji"] = "bji",
["Burma"] = "my",
["Burma Kuno"] = "obr",
["Burmeso"] = "bzu",
["Buru (Indonesia)"] = "mhs",
["Buru (Nigeria)"] = "bqw",
["Burui"] = "bry",
["Burumakok"] = "aip",
["Burun"] = "bdi",
["Burunge"] = "bds",
["Burushaski"] = "bsk",
["Burusu"] = "bqr",
["Buruwai"] = "asi",
["Buryat"] = "bua",
["Busa"] = "bqp",
["Busam"] = "bxs",
["Busami"] = "bsm",
["Busang Kayan"] = "bfg",
["Bushoong"] = "buf",
["Buso"] = "bso",
["Busoa"] = "bup",
["Bussa"] = "dox",
["Busuu"] = "bju",
["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",
["Bwela"] = "bwl",
["Bwile"] = "bwc",
["Bwisi"] = "bwz",
["Byangsi"] = "bee",
["Byep"] = "mkk",
["Bädi Kanum"] = "khd",
["Caac"] = "msq",
["Cabiyarí"] = "cbb",
["Cabre"] = "awd-cab",
["Cabécar"] = "cjp",
["Cacaopera"] = "ccr",
["Cacua"] = "cbv",
["Cacán"] = "sai-cac",
["Caddo"] = "cad",
["Cafundó"] = "ccd",
["Cahuarano"] = "cah",
["Cahuilla"] = "chl",
["Caijia"] = "sit-cai",
["Caka"] = "ckx",
["Cakchiquel-Quiché Mixed Language"] = "ckz",
["Cakfem-Mushere"] = "cky",
["Calamian Tagbanwa"] = "tbk",
["Callawalla"] = "caw",
["Calusa"] = "nai-cal",
["Caluyanun"] = "clu",
["Caló"] = "rmq",
["Cam Barat"] = "cja",
["Cam Timur"] = "cjm",
["Campalagian"] = "cml",
["Camsá"] = "kbh",
["Camtho"] = "cmt",
["Camunic"] = "xcc",
["Candoshi-Shapra"] = "cbu",
["Canela"] = "ram",
["Canichana"] = "caz",
["Cantabrian"] = "roa-can",
["Cao Miao"] = "cov",
["Caolan"] = "mlc",
["Capanahua"] = "kaq",
["Capiznon"] = "cps",
["Caquinte"] = "cot",
["Car Nicobarese"] = "caq",
["Cara"] = "cfd",
["Carabayo"] = "cby",
["Caramanta"] = "crf",
["Caranqui"] = "sai-caq",
["Carapana"] = "cbc",
["Carian"] = "xcr",
["Cariay"] = "awd-kar",
["Carijona"] = "cbd",
["Carolinian"] = "cal",
["Carrier"] = "crx",
["Carrier Selatan"] = "caf",
["Cashibo-Cacataibo"] = "cbr",
["Cashinahua"] = "cbs",
["Catacao"] = "sai-cat",
["Catalan"] = "ca",
["Catalan Kuno"] = "roa-oca",
["Catalan Sign Language"] = "csc",
["Catawba"] = "chc",
["Catuquinaru"] = "sai-ctq",
["Catío Chibcha"] = "cba-cat",
["Cauca"] = "cca",
["Cavineña"] = "cav",
["Cayubaba"] = "cyb",
["Cayuga"] = "cay",
["Cayuse"] = "xcy",
["Cazcan"] = "azc-caz",
["Cañari"] = "sai-cnr",
["Cebaara Senoufo"] = "sef",
["Cebuano"] = "ceb",
["Celtiberian"] = "xce",
["Cemuhî"] = "cam",
["Cen"] = "cen",
["Central Palawano"] = "plc",
["Centúúm"] = "cet",
["Cerma"] = "cme",
["Ch'olti'"] = "myn-chl",
["Ch'orti'"] = "caa",
["Chaap Wuurong"] = "tjw",
["Chachi"] = "cbi",
["Chadong"] = "cdy",
["Chagatai"] = "chg",
["Chaha"] = "sem-cha",
["Chaima"] = "ciy",
["Chairel"] = "sit-cha",
["Chak"] = "ckh",
["Chakali"] = "cli",
["Chakma"] = "ccp",
["Chala"] = "cll",
["Chaldean Neo-Aramaic"] = "cld",
["Chali"] = "tgf",
["Chamacoco"] = "ceg",
["Chamalal"] = "cji",
["Chamba Daka"] = "ccg",
["Chamba Leko"] = "ndi",
["Chambeali"] = "cdh",
["Chambri"] = "can",
["Chamicuro"] = "ccc",
["Chamling"] = "rab",
["Chamorro"] = "ch",
["Champenois"] = "roa-cha",
["Chang"] = "nbc",
["Changriwa"] = "cga",
["Changthang"] = "cna",
["Chantyal"] = "chx",
["Chaná"] = "sai-chn",
["Chané"] = "caj",
["Chapacura"] = "sai-chp",
["Chara"] = "cra",
["Charrua"] = "sai-chr",
["Chatino San Juan Quiahije"] = "omq-sjq",
["Chatino Tanah Tinggi Barat"] = "ctp",
["Chatino Tanah Tinggi Timur"] = "cly",
["Chatino Teojomulco"] = "omq-teo",
["Chaudangsi"] = "cdn",
["Chaura"] = "crv",
["Chavacano"] = "cbk",
["Chayahuita"] = "cbt",
["Chazumba Mixtec"] = "xtb",
["Che"] = "ruk",
["Chechen"] = "ce",
["Cheke Holo"] = "mrn",
["Chemakum"] = "xch",
["Chenapian"] = "cjn",
["Chenchu"] = "cde",
["Chenoua"] = "cnu",
["Chepang"] = "cdm",
["Chepya"] = "ycp",
["Cherepon"] = "cpn",
["Cherokee"] = "chr",
["Chesu"] = "ych",
["Chetco-Tolowa"] = "ctc",
["Chewong"] = "cwg",
["Cheyenne"] = "chy",
["Chhattisgarhi"] = "hne",
["Chhintange"] = "ctn",
["Chhulung"] = "cur",
["Chiangmai Sign Language"] = "csd",
["Chiapanec"] = "cip",
["Chibcha"] = "chb",
["Chicahuaxtla Triqui"] = "trs",
["Chichewa"] = "ny",
["Chichicapan Zapotec"] = "zpv",
["Chichimeca-Jonaz"] = "pei",
["Chichonyi-Chidzihana-Chikauma"] = "coh",
["Chickasaw"] = "cic",
["Chicomuceltec"] = "cob",
["Chiduruma"] = "dug",
["Chilcotin"] = "clc",
["Chilean Sign Language"] = "csg",
["Chilisso"] = "clh",
["Chiltepec Chinantec"] = "csa",
["Chimalapa Zoque"] = "zoh",
["Chimariko"] = "cid",
["Chimila"] = "cbg",
["Chimwiini"] = "bnt-cmw",
["Chin Asho"] = "csh",
["Chin Bawm"] = "bgr",
["Chin Bualkhaw"] = "cbl",
["Chin Chinbon"] = "cnb",
["Chin Daai"] = "dao",
["Chin Falam"] = "cfm",
["Chin Kaang"] = "ckn",
["Chin Khumi"] = "cnk",
["Chin Laitu"] = "clt",
["Chin Mara"] = "mrh",
["Chin Mro"] = "cmr",
["Chin Ngawn"] = "cnw",
["Chin Senthang"] = "sez",
["Chin Siyin"] = "csy",
["Chin Songlai"] = "csj",
["Chin Sumtu"] = "csv",
["Chin Tawr"] = "tcp",
["Chin Tedim"] = "ctd",
["Chin Thado"] = "tcz",
["Chin Thaiphum"] = "cth",
["Chin Zotung"] = "czt",
["Chinali"] = "cih",
["Chinese Sign Language"] = "csl",
["Chinook"] = "chh",
["Chinook Jargon"] = "chn",
["Chipaya"] = "cap",
["Chipewyan"] = "chp",
["Chiquimulilla"] = "nai-chi",
["Chiquitano"] = "cax",
["Chiricahua"] = "apm",
["Chirino"] = "sai-chi",
["Chiripá"] = "nhd",
["Chiru"] = "cdf",
["Chitimacha"] = "ctm",
["Chitkuli Kinnauri"] = "cik",
["Chittagong"] = "ctg",
["Chitwania Tharu"] = "the",
["Chiwere"] = "iow",
["Choapan Zapotec"] = "zpc",
["Chocangaca"] = "cgk",
["Chochotec"] = "coz",
["Choctaw"] = "cho",
["Chodri"] = "cdi",
["Chokwe"] = "cjk",
["Chol"] = "ctu",
["Cholón"] = "cht",
["Chong"] = "cog",
["Choni"] = "cda",
["Chono"] = "sai-cno",
["Chopi"] = "cce",
["Chrau"] = "crw",
["Chru"] = "cje",
["Chuabo"] = "chw",
["Chuanqiandian Cluster Miao"] = "cqd",
["Chuave"] = "cjv",
["Chug"] = "cvg",
["Chuj"] = "cac",
["Chuka"] = "cuh",
["Chukchi"] = "ckt",
["Chukwa"] = "cuw",
["Chulym"] = "clw",
["Chumburung"] = "ncu",
["Churahi"] = "cdj",
["Churuya"] = "sai-chu",
["Chut"] = "scb",
["Chuuk"] = "chk",
["Chuva"] = "xcv",
["Chuvash"] = "cv",
["Chácobo"] = "cao",
["Ci Gbe"] = "cib",
["Cia-Cia"] = "cia",
["Cibak"] = "ckl",
["Cicipu"] = "awc",
["Ciguayo"] = "nai-cig",
["Cimbrian"] = "cim",
["Cina"] = "zh",
["Cina Kuno"] = "och",
["Cina Pertengahan"] = "ltc",
["Cinda-Regi-Tiyal"] = "cdr",
["Cineni"] = "cie",
["Cinta Larga"] = "cin",
["Circassian Barat"] = "ady",
["Cishingini"] = "asg",
["Citak"] = "txt",
["Ciwogai"] = "tgd",
["Coahuilteco"] = "xcw",
["Coatlán Zapotec"] = "zps",
["Cocama"] = "cod",
["Cochimi"] = "coj",
["Cocopa"] = "coc",
["Coeruna"] = "sai-coe",
["Coeur d'Alene"] = "crd",
["Cofán"] = "con",
["Cogui"] = "kog",
["Col"] = "liw",
["Colombian Sign Language"] = "csn",
["Columbia-Wenatchi"] = "col",
["Colán"] = "sai-col",
["Comaltepec Chinantec"] = "cco",
["Comanche"] = "com",
["Comechingon"] = "sai-cmg",
["Comecrudo"] = "xcm",
["Communicationssprache"] = "art-com",
["Como Karim"] = "cfg",
["Comoros Maore"] = "swb",
["Comoros Ngazidja"] = "zdj",
["Comox"] = "coo",
["Con"] = "cno",
["Coos"] = "csz",
["Copainalá Zoque"] = "zoc",
["Copala Triqui"] = "trc",
["Copallén"] = "sai-cop",
["Coquille"] = "coq",
["Cora"] = "crn",
["Cori"] = "cry",
["Cornish"] = "kw",
["Cornwall Kuno"] = "oco",
["Cornwall Pertengahan"] = "cnx",
["Coroado Puri"] = "sai-crd",
["Corsica"] = "co",
["Costa Rican Sign Language"] = "csr",
["Cotoname"] = "xcn",
["Cowlitz"] = "cow",
["Coyaima"] = "coy",
["Coyotepec Popoloca"] = "pbf",
["Coyutla Totonac"] = "toc",
["Cree"] = "cr",
["Cree Moose"] = "crm",
["Cree Timur Selatan"] = "crj",
["Cree Timur Utara"] = "crl",
["Creek"] = "mus",
["Crow"] = "cro",
["Cruzeño"] = "crz",
["Cua"] = "cua",
["Cuban Sign Language"] = "csf",
["Cubeo"] = "cub",
["Cueva"] = "sai-cva",
["Cuiba"] = "cui",
["Cuitlatec"] = "cuy",
["Culina"] = "cul",
["Culli"] = "sai-cul",
["Cumanagoto"] = "cuo",
["Cumbric"] = "xcb",
["Cun"] = "cuq",
["Cung"] = "cug",
["Cupeño"] = "cup",
["Curonian"] = "xcu",
["Curripaco"] = "kpc",
["Cutchi-Swahili"] = "ccl",
["Cuvok"] = "cuv",
["Cuyunon"] = "cyo",
["Cwi Bwamu"] = "bwy",
["Czech"] = "cs",
["Czech Kuno"] = "zlw-ocs",
["Czech Sign Language"] = "cse",
["Cốông"] = "cnc",
["Da'a Kaili"] = "kzf",
["Daantanai'"] = "lni",
["Daasanach"] = "dsh",
["Daba"] = "dbq",
["Dabarre"] = "dbr",
["Dabe"] = "dbe",
["Dacian"] = "xdc",
["Dadan"] = "sem-dad",
["Dadi Dadi"] = "dda",
["Dadibi"] = "mps",
["Dadiya"] = "dbd",
["Daga"] = "dgz",
["Dagaare Selatan"] = "dga",
["Dagaari Dioula"] = "dgd",
["Dagara Utara"] = "dgi",
["Dagba"] = "dgk",
["Dagbani"] = "dag",
["Dagik"] = "dec",
["Dagoman"] = "dgn",
["Dahalik"] = "dlk",
["Dahalo"] = "dal",
["Daho-Doo"] = "das",
["Dai"] = "dij",
["Dair"] = "drb",
["Dakaka"] = "bpa",
["Dakka"] = "dkk",
["Dakota"] = "dak",
["Dakpa"] = "dka",
["Dalmatian"] = "dlm",
["Daloa Bété"] = "bev",
["Dama (Nigeria)"] = "dmm",
["Dama (Sierra Leone)"] = "dmn-dam",
["Damakawa"] = "dam",
["Damal"] = "uhn",
["Damar Barat"] = "drn",
["Damar Timur"] = "dmr",
["Dambi"] = "dac",
["Dameli"] = "dml",
["Dampelas"] = "dms",
["Dan"] = "dnj",
["Danaru"] = "dnr",
["Danau"] = "dnu",
["Dandami Maria"] = "daq",
["Dangaléat"] = "daa",
["Dangaura Tharu"] = "thl",
["Dani Barat"] = "dnw",
["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",
["Darumbal"] = "xgm",
["Dass"] = "dot",
["Datooga"] = "tcc",
["Daungwurrung"] = "dgw",
["Daur"] = "dta",
["Davawenyo"] = "daw",
["Dawawa"] = "dww",
["Dawera-Daweloor"] = "ddw",
["Dawro"] = "dwr",
["Day"] = "dai",
["Dayi"] = "dax",
["Dazaga"] = "dzg",
["Deccani"] = "dcc",
["Dedua"] = "ded",
["Defaka"] = "afn",
["Deg"] = "mzw",
["Deg Xinag"] = "ing",
["Degema"] = "deg",
["Degenan"] = "dge",
["Dehwari"] = "deh",
["Dek"] = "dek",
["Dela-Oenale"] = "row",
["Delo"] = "ntr",
["Dem"] = "dem",
["Dema"] = "dmx",
["Demisa"] = "dei",
["Demta"] = "dmy",
["Dena'ina"] = "tfn",
["Dendi"] = "ddn",
["Dengese"] = "dez",
["Dengka"] = "dnk",
["Denmark"] = "da",
["Denmark Kuno"] = "gmq-oda",
["Denmark Pengembara"] = "rmd",
["Deno"] = "dbb",
["Denya"] = "anv",
["Dení"] = "dny",
["Deori"] = "der",
["Desano"] = "des",
["Desiya"] = "dso",
["Dewas Rai"] = "dwz",
["Dewoin"] = "dee",
["Dezfuli"] = "def",
["Dghwede"] = "dgh",
["Dhaiso"] = "dhs",
["Dhalandji"] = "dhl",
["Dhangu"] = "dhg",
["Dhanki"] = "dhn",
["Dhao"] = "nfa",
["Dharug"] = "xdk",
["Dhatki"] = "mki",
["Dhimal"] = "dhi",
["Dhivehi"] = "dv",
["Dhodia"] = "dho",
["Dhudhuroa"] = "ddr",
["Dhungaloo"] = "dhx",
["Dhurga"] = "dhu",
["Dhuwal"] = "dwu",
["Dhuwaya"] = "dwy",
["Dia"] = "dia",
["Dibiyaso"] = "dby",
["Dibo"] = "dio",
["Didinga"] = "did",
["Dieri"] = "dif",
["Digo"] = "dig",
["Dii"] = "dur",
["Dijim-Bwilim"] = "cfa",
["Dilling"] = "dil",
["Dima"] = "jma",
["Dimasa"] = "dis",
["Dimbong"] = "dii",
["Dime"] = "dim",
["Dineor"] = "mrx",
["Ding"] = "diz",
["Dinka"] = "din",
["Dinka Barat Daya"] = "dik",
["Dinka Barat Laut"] = "diw",
["Dinka Tengah Selatan"] = "dib",
["Dinka Tenggara"] = "dks",
["Dinka Timur Laut"] = "dip",
["Diodio"] = "ddi",
["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",
["Dogon Ampari"] = "aqd",
["Dogon Nanga Dama"] = "nzz",
["Dogoso"] = "dgs",
["Dogosé"] = "dos",
["Dogri"] = "doi",
["Dogrib"] = "dgr",
["Dogul Dom"] = "dbg",
["Doka"] = "dbi",
["Doko-Uyanga"] = "uya",
["Dolgan"] = "dlg",
["Dom"] = "doa",
["Domaaki"] = "dmk",
["Domari"] = "rmt",
["Dominican Sign Language"] = "doq",
["Dompo"] = "doy",
["Domu"] = "dof",
["Domung"] = "dev",
["Dondo"] = "dok",
["Dong"] = "doh",
["Dongo"] = "doo",
["Dongolawi"] = "kzh",
["Dongotono"] = "ddd",
["Dongshanba Lalo"] = "yik",
["Dongxiang"] = "sce",
["Donno So Dogon"] = "dds",
["Doondo"] = "dde",
["Dorasque"] = "cba-dor",
["Dori'o"] = "dor",
["Dorig"] = "wwo",
["Doromu-Koki"] = "kqc",
["Dorze"] = "doz",
["Doso"] = "dol",
["Doteli"] = "dty",
["Dothraki"] = "art-dtk",
["Doura"] = "don",
["Doutai"] = "tds",
["Doyayo"] = "dow",
["Drehu"] = "dhv",
["Drung"] = "duu",
["Duala"] = "dua",
["Duano"] = "dup",
["Duau"] = "dva",
["Dubli"] = "dub",
["Dubu"] = "dmu",
["Dugun"] = "ndu",
["Duguri"] = "dbm",
["Dugwor"] = "dme",
["Duhwa"] = "kbz",
["Duit"] = "cba-dui",
["Duke"] = "nke",
["Dukhan"] = "trk-dkh",
["Dulbu"] = "dbo",
["Duli"] = "duz",
["Duma"] = "dma",
["Dumait"] = "sem-dum",
["Dumbea"] = "duf",
["Dumi"] = "dus",
["Dumpas"] = "dmv",
["Dumun"] = "dui",
["Duna"] = "duc",
["Dungan"] = "dng",
["Dungmali"] = "raa",
["Dungra Bhil"] = "duh",
["Dungu"] = "dbv",
["Dura"] = "drq",
["Duri"] = "mvp",
["Duriankere"] = "dbn",
["Duruwa"] = "pci",
["Dusner"] = "dsn",
["Dusun Deyah"] = "dun",
["Dusun Malang"] = "duq",
["Dusun Sugut"] = "kzs",
["Dusun Tambunan"] = "kzt",
["Dusun Witu"] = "duw",
["Dutch Sign Language"] = "dse",
["Duun"] = "dux",
["Duupa"] = "dae",
["Duvle"] = "duv",
["Duwai"] = "dbp",
["Dwang"] = "nnu",
["Dyaabugay"] = "dyy",
["Dyaberdyaber"] = "dyb",
["Dyan"] = "dya",
["Dyangadi"] = "dyn",
["Dyirbal"] = "dbl",
["Dyugun"] = "dyd",
["Dyula"] = "dyu",
["Dza"] = "jen",
["Dzala"] = "dzl",
["Dzando"] = "dzn",
["Dzao Min"] = "bpn",
["Dzodinka"] = "add",
["Dzongkha"] = "dz",
["Dzuun"] = "dnn",
["Dâw"] = "kwa",
["E"] = "eee",
["E'ma Buyang"] = "yzg",
["Eastern Canadian Inuktitut"] = "ike",
["Ebira"] = "igb",
["Ebla"] = "xeb",
["Ebrié"] = "ebr",
["Ebughu"] = "ebg",
["Ede Cabe"] = "cbj",
["Ede Ica"] = "ica",
["Ede Idaca"] = "idd",
["Ede Ije"] = "ijj",
["Ede Nago"] = "nqg",
["Edo"] = "bin",
["Edolo"] = "etr",
["Edom"] = "xdm",
["Edopi"] = "dbf",
["Efai"] = "efa",
["Efate Selatan"] = "erk",
["Efate Utara"] = "llp",
["Efe"] = "efe",
["Efik"] = "efi",
["Efutop"] = "ofu",
["Ega"] = "ega",
["Eggon"] = "ego",
["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",
["Elam"] = "elx",
["Eleme"] = "elm",
["Elepi"] = "ele",
["Elip"] = "ekm",
["Elkei"] = "elk",
["Eloi"] = "art-elo",
["Elotepec Zapotec"] = "zte",
["Eloyi"] = "afo",
["Elseng"] = "mrf",
["Elu"] = "elu",
["Elymi"] = "xly",
["Emae"] = "mmw",
["Emai"] = "ema",
["Eman"] = "emn",
["Embaloh"] = "emb",
["Emberá Utara"] = "emp",
["Emberá-Baudó"] = "bdc",
["Emberá-Catío"] = "cto",
["Emberá-Chamí"] = "cmi",
["Emberá-Tadó"] = "tdc",
["Embu"] = "ebu",
["Emem"] = "enr",
["Emerillon"] = "eme",
["Emilian"] = "egl",
["Emplawas"] = "emw",
["En"] = "enc",
["Enawené-Nawé"] = "unk",
["Ende"] = "end",
["Enets Hutan"] = "enf",
["Enets Tundra"] = "enh",
["Enga"] = "enq",
["Engenni"] = "enn",
["Enggano"] = "eno",
["Enlhet"] = "enl",
["Enrekang"] = "ptt",
["Enu"] = "enu",
["Enwan"] = "env",
["Enwang"] = "enw",
["Enxet"] = "enx",
["Eotile"] = "eot",
["Epena"] = "sja",
["Epi-Olmec"] = "xep",
["Epie"] = "epi",
["Eravallan"] = "era",
["Erave"] = "kjy",
["Ere"] = "twp",
["Erie"] = "iro-ere",
["Eritai"] = "ert",
["Erokwanas"] = "erw",
["Erre"] = "err",
["Erromintxela"] = "emx",
["Ersu"] = "ers",
["Eruwa"] = "erh",
["Erzya"] = "myv",
["Esan"] = "ish",
["Ese"] = "mcq",
["Ese Ejja"] = "ese",
["Eshtehardi"] = "esh",
["Esimbi"] = "ags",
["Eskayan"] = "esy",
["Esmeralda"] = "sai-esm",
["Esperanto"] = "eo",
["Esselen"] = "esq",
["Estonia"] = "et",
["Esuma"] = "esm",
["Etchemin"] = "etc",
["Etebi"] = "etb",
["Eten"] = "etx",
["Eteocretan"] = "ecr",
["Eteocypriot"] = "ecy",
["Etkywan"] = "ich",
["Eton (Cameroon)"] = "eto",
["Eton (Vanuatu)"] = "etn",
["Etruria"] = "ett",
["Etulo"] = "utr",
["Evant"] = "bzz",
["Even"] = "eve",
["Evenki"] = "evn",
["Ewage-Notu"] = "nou",
["Ewarhuyana"] = "sai-ewa",
["Ewe"] = "ee",
["Ewondo"] = "ewo",
["Extremaduran"] = "ext",
["Eyak"] = "eya",
["Ezaa"] = "eza",
["Fagani"] = "faf",
["Faifi"] = "fif",
["Faiwol"] = "fai",
["Fala"] = "fax",
["Fali"] = "fli",
["Fali Baissa"] = "fah",
["Fali Selatan"] = "fal",
["Fali Utara"] = "fll",
["Falisci"] = "xfa",
["Fam"] = "fam",
["Fanagalo"] = "fng",
["Fanamaket"] = "bjp",
["Fang (Bantu)"] = "fan",
["Fang (Beboid)"] = "fak",
["Fania"] = "fni",
["Faroe"] = "fo",
["Fars Barat Daya"] = "fay",
["Fars Barat Laut"] = "faz",
["Fas"] = "fqs",
["Fasu"] = "faa",
["Fataleka"] = "far",
["Fataluku"] = "ddg",
["Fayu"] = "fau",
["Fe'fe'"] = "fmp",
["Fedan"] = "pdn",
["Fembe"] = "agl",
["Fer"] = "kah",
["Feroge"] = "fer",
["Fiji"] = "fj",
["Fiji Barat"] = "wyy",
["Filistin"] = "mis-phi",
["Filomena Mata-Coahuitlán Totonac"] = "tlp",
["Fingallian"] = "gmw-fin",
["Finisterre Yau"] = "yuw",
["Finland"] = "fi",
["Finongan"] = "fag",
["Fipa"] = "fip",
["Firan"] = "fir",
["Fiwaga"] = "fiw",
["Flemish Barat"] = "vls",
["Flemish Sign Language"] = "vgt",
["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",
["Fortsenal"] = "frt",
["Fox"] = "sac",
["Franc-Comtois"] = "roa-fcm",
["Francisco León Zoque"] = "zos",
["Franco-Provençal"] = "frp",
["Franconia Rhine"] = "gmw-rfr",
["Franconia Tengah"] = "gmw-cfr",
["Franconia Timur"] = "vmf",
["French Belgian Sign Language"] = "sfb",
["Frisia Barat"] = "fy",
["Frisia Kuno"] = "ofs",
["Frisia Saterland"] = "stq",
["Frisia Utara"] = "frr",
["Friulian"] = "fur",
["Fula"] = "ff",
["Fuliiru"] = "flr",
["Fulniô"] = "fun",
["Fum"] = "fum",
["Fungwa"] = "ula",
["Fur"] = "fvr",
["Furu"] = "fuu",
["Futuna Timur"] = "fud",
["Futuna-Aniwa"] = "fut",
["Fuyug"] = "fuy",
["Fwe"] = "fwe",
["Fwâi"] = "fwa",
["Fyam"] = "pym",
["Fyer"] = "fie",
["Gaa"] = "ttb",
["Gaam"] = "tbi",
["Gabadi"] = "kbt",
["Gabrielino-Fernandeño"] = "xgf",
["Gaelik Scotland"] = "gd",
["Gagnoa Bété"] = "btg",
["Gahri"] = "bfu",
["Galatia"] = "xga",
["Galicia"] = "gl",
["Galicia-Portugis Kuno"] = "roa-opt",
["Galindan"] = "xgl",
["Gallaecian"] = "cel-gal",
["Gallo"] = "roa-gal",
["Gallo-Itali Basilicata"] = "roa-gib",
["Gallo-Itali Sicily"] = "roa-gis",
["Gallura"] = "sdn",
["Galo"] = "adl",
["Gamale Kham"] = "kgj",
["Gamela"] = "sai-gam",
["Gamilaraay"] = "kld",
["Gamo-Ningi"] = "bte",
["Gandhari"] = "pgd",
["Gane"] = "gzn",
["Ganza"] = "gza",
["Gapapaiwa"] = "pwg",
["Garawa"] = "wrk",
["Garifuna"] = "cab",
["Garingbal"] = "xgi",
["Garus"] = "gyb",
["Garza"] = "xgr",
["Gaul"] = "cel-gau",
["Gavak"] = "dmc",
["Gavião Pará"] = "gvp",
["Gavião do Jiparaná"] = "gvo",
["Gawar-Bati"] = "gwt",
["Gawwada"] = "gwd",
["Gayil"] = "gyl",
["Gayón"] = "sai-gay",
["Gbaya Barat Laut"] = "gya",
["Gbayi"] = "gyg",
["Gbe Kotafon"] = "kqk",
["Gbe Xwla Barat"] = "xwl",
["Gbin"] = "xgb",
["Gciriku"] = "diu",
["Gcwi"] = "gwj",
["Ge"] = "hmj",
["Gedeo"] = "drs",
["Gela"] = "nlg",
["Gele'"] = "sbc",
["Georgia"] = "ka",
["Georgia Kuno"] = "oge",
["Gepo"] = "ygp",
["Geshiza"] = "ero-gsz",
["Ghayavi"] = "bmk",
["Ghomala'"] = "bbj",
["Ghotuo"] = "aaa",
["Giangan"] = "bgi",
["Gikyode"] = "acd",
["Gimme"] = "kmp",
["Girawa"] = "bbr",
["Giryama"] = "nyf",
["Gizrra"] = "tof",
["Glio-Oubi"] = "oub",
["Glosa"] = "igs",
["Goa'uld"] = "art-gld",
["Goemai"] = "ank",
["Goguryeo"] = "zkg",
["Gokhy"] = "tbq-gkh",
["Golin"] = "gvf",
["Golpa"] = "lja",
["Gong"] = "ugo",
["Goreng"] = "xgg",
["Goth Crimea"] = "gme-cgo",
["Gottscheerish"] = "gmw-gts",
["Gowro"] = "gwf",
["Grangali"] = "nli",
["Grass Koiari"] = "kbk",
["Greek"] = "el",
["Greek Calabria"] = "grk-cal",
["Greek Italiot"] = "grk-ita",
["Greek Mariupol"] = "grk-mar",
["Greenland"] = "kl",
["Gros Ventre"] = "ats",
["Gua"] = "gwx",
["Guachí"] = "sai-gua",
["Guajá"] = "gvj",
["Guamo"] = "sai-gmo",
["Guarani Klasik"] = "gn-cls",
["Guarayu"] = "gyr",
["Guazacapán"] = "nai-guz",
["Gudang"] = "xgd",
["Gudanji"] = "nji",
["Guevea de Humboldt Zapotec"] = "zpg",
["Gugu Warra"] = "wrw",
["Guiberoua Bété"] = "bet",
["Guinau"] = "awd-gnu",
["Guinea-Bissau Sign Language"] = "lgs",
["Gujarati Kuno"] = "inc-ogu",
["Gujarati Pertengahan"] = "inc-mgu",
["Gujerat"] = "gu",
["Gulay"] = "gvl",
["Gumawana"] = "gvs",
["Gundungurra"] = "xrd",
["Gungabula"] = "gyf",
["Gungu"] = "rub",
["Gunu"] = "yas",
["Gunya"] = "gyy",
["Gur Lama"] = "las",
["Gurani"] = "hac",
["Gurmana"] = "gvm",
["Gurung"] = "gvr",
["Gutnish"] = "gmq-gut",
["Gutnish Kuno"] = "gmq-ogt",
["Guugu Yimidhirr"] = "kky",
["Guwa"] = "xgw",
["Guwamu"] = "gwu",
["Guwar"] = "aus-guw",
["Guyani"] = "gvy",
["Gvoko"] = "ngs",
["Gwa"] = "gwb",
["Gwahatike"] = "dah",
["Gwak"] = "jgk",
["Gwamhi-Wuri"] = "bga",
["Gwandara"] = "gwn",
["Gwara"] = "alv-gwa",
["Gweno"] = "gwe",
["Gwere"] = "gwr",
["Gwich'in"] = "gwi",
["Gyalsumdo"] = "gyo",
["Gyele"] = "gyi",
["Gyem"] = "gye",
["Güenoa"] = "sai-gue",
["Habu"] = "hbu",
["Hachijō"] = "jpx-hcj",
["Hadiyya"] = "hdy",
["Hadothi"] = "hoj",
["Hadrami"] = "xhd",
["Hadza"] = "hts",
["Haeke"] = "aek",
["Hahon"] = "hah",
["Haida"] = "hai",
["Haida Selatan"] = "hax",
["Haida Utara"] = "hdn",
["Haigwai"] = "hgw",
["Hainyaxo Bozo"] = "bzx",
["Haisla"] = "has",
["Haitian Vodoun Culture Language"] = "hvc",
["Haiǁom"] = "hgm",
["Haji"] = "hji",
["Hajong"] = "haj",
["Hakka"] = "hak",
["Hakö"] = "hao",
["Halang"] = "hal",
["Halang Doan"] = "hld",
["Halbi"] = "hlb",
["Halia"] = "hla",
["Halkomelem"] = "hur",
["Hamap"] = "hmu",
["Hamba"] = "hba",
["Hamer-Banna"] = "amf",
["Hamtai"] = "hmt",
["Hanga"] = "hag",
["Hanga Hundi"] = "wos",
["Hani"] = "hni",
["Hanunoo"] = "hnn",
["Harami"] = "xha",
["Harari"] = "har",
["Haraza"] = "nub-har",
["Harijan Kinnauri"] = "kjo",
["Haroi"] = "hro",
["Harsusi"] = "hss",
["Haruai"] = "tmd",
["Haruku"] = "hrk",
["Haryanvi"] = "bgc",
["Harzani"] = "hrz",
["Hasait"] = "sem-has",
["Hasha"] = "ybj",
["Hatam"] = "had",
["Hatti"] = "xht",
["Hausa"] = "ha",
["Haush"] = "sai-hau",
["Havasupai-Walapai-Yavapai"] = "yuf",
["Haveke"] = "hvk",
["Havu"] = "hav",
["Hawai'i Pidgin Sign Language"] = "hps",
["Hawaii"] = "haw",
["Haya"] = "hay",
["Hdi"] = "xed",
["Hehe"] = "heh",
["Heiban"] = "hbn",
["Heiltsuk"] = "hei",
["Helong"] = "heg",
["Hema"] = "nix",
["Hemba"] = "hem",
["Hember Avu"] = "mmi",
["Herdé"] = "hed",
["Herero"] = "hz",
["Hermit"] = "llf",
["Hernican"] = "xhr",
["Het"] = "hit",
["Hewa"] = "ham",
["Heyo"] = "auk",
["Hibito"] = "hib",
["Hidatsa"] = "hid",
["Higaonon"] = "mba",
["Highland Konjo"] = "kjk",
["Highland Oaxaca Chontal"] = "chd",
["Highland Popoluca"] = "poi",
["Highland Totonac"] = "tos",
["Hijuk"] = "hij",
["Hiligaynon"] = "hil",
["Himarimã"] = "hir",
["Hindi"] = "hi",
["Hindi Dogri"] = "dgo",
["Hindi Fiji"] = "hif",
["Hindi Kreol Andaman"] = "hca",
["Hindi Kuno"] = "inc-ohi",
["Hindko Selatan"] = "hnd",
["Hindko Utara"] = "hno",
["Hinduri"] = "hii",
["Hindustan Caribbean"] = "hns",
["Hiri Motu"] = "ho",
["Hisma"] = "sem-his",
["Hitchiti"] = "nai-hit",
["Hitu"] = "htu",
["Hiw"] = "hiw",
["Hixkaryana"] = "hix",
["Hlai"] = "lic",
["Hlepho Phowa"] = "yhl",
["Hlersu"] = "hle",
["Hmar"] = "hmr",
["Hmong Don"] = "hmf",
["Hmong Dô"] = "hmv",
["Hmong Guiyang Barat Daya"] = "hmg",
["Hmong Guiyang Selatan"] = "hmy",
["Hmong Guiyang Utara"] = "huj",
["Hmong Hijau"] = "hnj",
["Hmong Huishui Barat Daya"] = "hmh",
["Hmong Huishui Tengah"] = "hmc",
["Hmong Huishui Timur"] = "hme",
["Hmong Huishui Utara"] = "hmi",
["Hmong Luopohe"] = "hml",
["Hmong Mashan Barat"] = "hmw",
["Hmong Mashan Selatan"] = "hma",
["Hmong Mashan Tengah"] = "hmm",
["Hmong Mashan Utara"] = "hmp",
["Hmong Putih"] = "mww",
["Hmong Shua"] = "hmz",
["Hmwaveke"] = "mrk",
["Ho"] = "hoc",
["Ho Chi Minh City Sign Language"] = "hos",
["Hoava"] = "hoa",
["Hobyót"] = "hoh",
["Hoia Hoia"] = "hhi",
["Hokkien"] = "nan-hbl",
["Hokkien Peranakan Kelantan"] = "mis-hkl",
["Holikachuk"] = "hoi",
["Holiya"] = "hoy",
["Holma"] = "hod",
["Holoholo"] = "hoo",
["Holu"] = "hol",
["Homa"] = "hom",
["Hone"] = "juh",
["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",
["Huave"] = "huv",
["Huba"] = "hbb",
["Huetar"] = "cba-hue",
["Huichol"] = "hch",
["Huilliche"] = "huh",
["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",
["Hungary"] = "hu",
["Hungary Kuno"] = "ohu",
["Hungworo"] = "nat",
["Hunjara-Kaina Ke"] = "hkk",
["Hunsrik"] = "hrx",
["Hunzib"] = "huz",
["Hupa"] = "hup",
["Hupdë"] = "jup",
["Hupla"] = "hap",
["Hurri"] = "xhu",
["Hwana"] = "hwo",
["Hya"] = "hya",
["Hyam"] = "jab",
["Hän"] = "haa",
["Hértevin"] = "hrt",
["I-Wak"] = "iwk",
["Iaai"] = "iai",
["Iamalele"] = "yml",
["Iatmul"] = "ian",
["Iau"] = "tmu",
["Ibali Teke"] = "tek",
["Ibaloi"] = "ibl",
["Iban"] = "iba",
["Ibanag"] = "ibg",
["Ibani"] = "iby",
["Ibatan"] = "ivb",
["Iberia"] = "xib",
["Ibibio"] = "ibb",
["Ibino"] = "ibn",
["Iboko"] = "bkp",
["Ibrani"] = "he",
["Ibrani Samaria"] = "smp",
["Ibu"] = "ibu",
["Ibuoro"] = "ibr",
["Iceland"] = "is",
["Iceve-Maci"] = "bec",
["Idahan"] = "dbj",
["Idakho-Isukha-Tiriki"] = "ida",
["Idaté"] = "idt",
["Idere"] = "ide",
["Idesa"] = "ids",
["Idi"] = "idi",
["Idiom Neutral"] = "mis-idn",
["Ido"] = "io",
["Idoma"] = "idu",
["Idon"] = "idc",
["Idu"] = "clk",
["Idun"] = "ldb",
["Iduna"] = "viv",
["Ifo"] = "iff",
["Ifè"] = "ife",
["Igala"] = "igl",
["Igana"] = "igg",
["Igbo"] = "ig",
["Igede"] = "ige",
["Ignaciano"] = "ign",
["Igo"] = "ahl",
["Iguta"] = "nar",
["Igwe"] = "igw",
["Iha"] = "ihp",
["Ihievbe"] = "ihi",
["Ija-Zuba"] = "vki",
["Ik"] = "ikx",
["Ika"] = "ikk",
["Ikaranggal"] = "ikr",
["Ikizu"] = "ikz",
["Iko"] = "iki",
["Ikobi-Mena"] = "meb",
["Ikoma"] = "ntk",
["Ikpeng"] = "txi",
["Ikpeshi"] = "ikp",
["Ikposo"] = "kpo",
["Iku-Gora-Ankwa"] = "ikv",
["Ikulu"] = "ikl",
["Ikwere"] = "ikw",
["Ikwo"] = "iqw",
["Ila"] = "ilb",
["Ile Ape"] = "ila",
["Ilgar"] = "ilg",
["Ili Turki"] = "ili",
["Ili'uun"] = "ilu",
["Illyria"] = "xil",
["Ilocano"] = "ilo",
["Ilongot"] = "ilk",
["Ilue"] = "ilv",
["Ilwana"] = "mlk",
["Imbongu"] = "imo",
["Imonda"] = "imn",
["Imroing"] = "imr",
["Inabaknon"] = "abx",
["Inapang"] = "mzu",
["Indanga"] = "bnt-ind",
["Indo-Portugis"] = "idb",
["Indonesia"] = "id",
["Indri"] = "idr",
["Ineseño"] = "inz",
["Inga"] = "inb",
["Inggeris"] = "en",
["Inggeris Kreol Islander"] = "icr",
["Inggeris Kreol Tobago"] = "tgh",
["Inggeris Kreol Trinidad"] = "trf",
["Inggeris Kreol Turks dan Caicos"] = "tch",
["Inggeris Kreol Vincent"] = "svc",
["Inggeris Kuno"] = "ang",
["Inggeris Pertengahan"] = "enm",
["Inggeris Pijin Cina"] = "cpi",
["Ingria"] = "izh",
["Ingush"] = "inh",
["Inlaod Itneg"] = "iti",
["Inoke-Yate"] = "ino",
["Inonhan"] = "loc",
["Inor"] = "ior",
["Interlingua"] = "ia",
["Interlingue"] = "ie",
["International Sign"] = "ils",
["Interslavic"] = "isv",
["Intha"] = "int",
["Inuinnaqtun"] = "esx-inq",
["Inuktitut"] = "iu",
["Inuktun"] = "esx-ink",
["Inupiaq"] = "ik",
["Inuvialuktun"] = "ikt",
["Ipai"] = "nai-ipa",
["Ipiko"] = "ipo",
["Ipili"] = "ipi",
["Ipulo"] = "ass",
["Iquito"] = "iqu",
["Ir"] = "irr",
["Irantxe"] = "irn",
["Iranun"] = "ill",
["Iraqw"] = "irk",
["Irarutu"] = "irh",
["Iraya"] = "iry",
["Ireland"] = "ga",
["Ireland Kuno"] = "sga",
["Ireland Pertengahan"] = "mga",
["Iresim"] = "ire",
["Irula"] = "iru",
["Isabi"] = "isa",
["Isan"] = "tts",
["Isanzu"] = "isn",
["Isauria"] = "mis-isa",
["Isconahua"] = "isc",
["Isebe"] = "igo",
["Ishkashimi"] = "isk",
["Isinai"] = "inn",
["Isirawa"] = "srl",
["Isnag"] = "isd",
["Isoko"] = "iso",
["Istriot"] = "ist",
["Istro-Romania"] = "ruo",
["Isu"] = "isu",
["Isubu"] = "szv",
["Isyarat Kenya"] = "xki",
["Isyarat Maghribi"] = "xms",
["Isyarat Malaysia"] = "xml",
["Itali"] = "it",
["Itawit"] = "itv",
["Itelmen"] = "itl",
["Itene"] = "ite",
["Iteri"] = "itr",
["Itik"] = "itx",
["Ito"] = "itw",
["Itonama"] = "ito",
["Itsekiri"] = "its",
["Itu Mbon Uzo"] = "itm",
["Itzá"] = "itz",
["Iu Mien"] = "ium",
["Ivatan"] = "ivv",
["Iwaidja"] = "ibd",
["Iwal"] = "kbm",
["Iwam"] = "iwm",
["Iwur"] = "iwo",
["Ixcatec"] = "ixc",
["Ixil"] = "ixl",
["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",
["Jakaltek"] = "jac",
["Jakati"] = "jat",
["Jakun"] = "jak",
["Jalkunan"] = "bxl",
["Jamamadí"] = "jaa",
["Jaminjung"] = "djd",
["Jamsay"] = "djm",
["Jamtish"] = "gmq-jmk",
["Jandavra"] = "jnd",
["Janday"] = "jan",
["Jangkang"] = "djo",
["Jangshung"] = "jna",
["Janji"] = "jni",
["Japhug"] = "sit-jap",
["Japrería"] = "jru",
["Jaqaru"] = "jqr",
["Jara"] = "jaf",
["Jarai"] = "jra",
["Jarawa"] = "anq",
["Jaru"] = "ddj",
["Jassic"] = "ysc",
["Jaunsari"] = "jns",
["Javindo"] = "jvd",
["Jawa"] = "jv",
["Jawa Caribbean"] = "jvn",
["Jawa Kuno"] = "kaw",
["Jawa Ontong"] = "ojv",
["Jawe"] = "jaz",
["Jaya"] = "jyy",
["Jebero"] = "jeb",
["Jeh"] = "jeh",
["Jehai"] = "jhi",
["Jeikó"] = "sai-jko",
["Jeju"] = "jje",
["Jemez"] = "tow",
["Jenaama Bozo"] = "bze",
["Jeng"] = "jeg",
["Jennu Kurumba"] = "xuj",
["Jepun"] = "ja",
["Jepun Kuno"] = "ojp",
["Jere"] = "jer",
["Jeri Kuo"] = "jek",
["Jerman"] = "de",
["Jerman Pennsylvania"] = "pdc",
["Jerman Rendah"] = "nds",
["Jerman Tengah Timur"] = "gmw-ecg",
["Jerman Volga"] = "gmw-vog",
["Jerman Zipser"] = "gmw-zps",
["Jeru"] = "akj",
["Jerung"] = "jee",
["Jiamao"] = "jio",
["Jiba"] = "juo",
["Jibu"] = "jib",
["Jicaque Barat"] = "nai-wji",
["Jicarilla"] = "apj",
["Jie"] = "mis-jie",
["Jiiddu"] = "jii",
["Jilbe"] = "jie",
["Jili"] = "mgi",
["Jilim"] = "jil",
["Jimi"] = "jmi",
["Jimjimen"] = "jim",
["Jin"] = "cjy",
["Jina"] = "jia",
["Jingpho"] = "kac",
["Jingulu"] = "jig",
["Jiongnai Bunu"] = "pnu",
["Jirajara"] = "sai-jrj",
["Jirel"] = "jul",
["Jiru"] = "jrr",
["Jita"] = "jit",
["Jizhao"] = "mis-jzh",
["Jju"] = "kaj",
["Joba"] = "job",
["Jofotek-Bromnya"] = "jbr",
["Jola-Fonyi"] = "dyo",
["Jola-Kasa"] = "csk",
["Jonkor Bourmataguil"] = "jeu",
["Jorá"] = "jor",
["Jowulu"] = "jow",
["Ju"] = "juu",
["Juang"] = "jun",
["Judeo-Itali"] = "itk",
["Judeo-Persian"] = "jpr",
["Judeo-Tat"] = "jdt",
["Jukun Takum"] = "jbu",
["Jumaytepeque"] = "nai-jum",
["Jumjum"] = "jum",
["Jumli"] = "jml",
["Jungle Inga"] = "inj",
["Jur Modo"] = "bex",
["Juray"] = "juy",
["Jurchen"] = "juc",
["Jurúna"] = "jur",
["Jutiapa"] = "nai-jtp",
["Jutish"] = "jut",
["Juwal"] = "mwb",
["Juǀ'hoan"] = "ktz",
["Jwira-Pepesa"] = "jwi",
["Júma"] = "jua",
["K'iche'"] = "quc",
["Kaamba"] = "xku",
["Kaan"] = "ldl",
["Kaapor Sign Language"] = "uks",
["Kaba"] = "ksp",
["Kabalai"] = "kvf",
["Kabardia"] = "kbd",
["Kabatei"] = "xkp",
["Kabba-Laka"] = "lap",
["Kabishiana"] = "tup-kab",
["Kabiyé"] = "kbp",
["Kabola"] = "klz",
["Kabore One"] = "onk",
["Kabras"] = "lkb",
["Kaburi"] = "uka",
["Kabutra"] = "kbu",
["Kabuverdianu"] = "kea",
["Kabwa"] = "cwa",
["Kabwari"] = "kcw",
["Kabyle"] = "kab",
["Kachama-Ganjule"] = "kcx",
["Kachari"] = "xac",
["Kachchi"] = "kfr",
["Kacipo-Balesi"] = "koe",
["Kaco'"] = "xkk",
["Kadai"] = "kzd",
["Kadar"] = "kej",
["Kadara"] = "kad",
["Kadaru"] = "kdu",
["Kadazan"] = "kzj",
["Kadazan Labuk-Kinabatangan"] = "dtb",
["Kadazan Sungai Klias"] = "kqt",
["Kadazandusun"] = "dtp",
["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",
["Kaingáng São Paulo"] = "zkp",
["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",
["Kalagan"] = "kqe",
["Kalagan Kagan"] = "kll",
["Kalagan Tagakaulu"] = "klg",
["Kalam"] = "kmh",
["Kalami"] = "gwc",
["Kalamsé"] = "knz",
["Kalanadi"] = "wkl",
["Kalanga"] = "kck",
["Kalao"] = "kly",
["Kalapuya"] = "kyl",
["Kalapuya Selatan"] = "sxk",
["Kalapuya Utara"] = "nrt",
["Kalarko"] = "kba",
["Kalasha"] = "kls",
["Kalasuri"] = "xme-kls",
["Kalašma"] = "ine-kal",
["Kalenjin"] = "kln",
["Kalinago"] = "crb",
["Kalinga Butbut"] = "kyb",
["Kalinga Lembah Mabaka"] = "kkg",
["Kalinga Limos"] = "kmk",
["Kalinga Lubuagan"] = "knb",
["Kalinga Madukayang"] = "kmd",
["Kalinga Selatan"] = "ksc",
["Kalinga Tanudan"] = "kml",
["Kalkatungu"] = "ktg",
["Kalkoti"] = "xka",
["Kalmyk"] = "xal",
["Kalou"] = "ywa",
["Kaluli"] = "bco",
["Kalumpang"] = "kli",
["Kam"] = "kdx",
["Kam Selatan"] = "kmc",
["Kam Utara"] = "doc",
["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",
["Kambera"] = "xbr",
["Kamberataro"] = "kbv",
["Kamberau"] = "irx",
["Kambiwá"] = "xbw",
["Kami"] = "kmi",
["Kamkata-viri"] = "bsh",
["Kamo"] = "kcq",
["Kamoro"] = "kgq",
["Kamta"] = "rkt",
["Kamu"] = "xmu",
["Kamula"] = "xla",
["Kamwe"] = "hig",
["Kanakanabu"] = "xnb",
["Kanakuru"] = "kna",
["Kanamari"] = "knm",
["Kanashi"] = "xns",
["Kanasi"] = "soq",
["Kandas"] = "kqw",
["Kande"] = "kbs",
["Kang"] = "kyp",
["Kanga"] = "kcp",
["Kangean"] = "kkv",
["Kanggape"] = "igm",
["Kangjia"] = "kxs",
["Kango"] = "kty",
["Kango-Sua"] = "kzy",
["Kangri"] = "xnr",
["Kaniet"] = "ktk",
["Kanikkaran"] = "kev",
["Kaningdon-Nindem"] = "kdp",
["Kaningi"] = "kzo",
["Kaningra"] = "knr",
["Kaninuwa"] = "wat",
["Kanite"] = "kmu",
["Kanjari"] = "kft",
["Kanju"] = "kbe",
["Kankanaey"] = "kne",
["Kankanay Utara"] = "xnn",
["Kannada"] = "kn",
["Kannada Kuno"] = "dra-okn",
["Kannada Kurumba"] = "kfi",
["Kannada Pertengahan"] = "dra-mkn",
["Kannauji"] = "bjj",
["Kanowit"] = "kxn",
["Kanoé"] = "kxo",
["Kansa"] = "ksk",
["Kantonis"] = "yue",
["Kantosi"] = "xkt",
["Kanu"] = "khx",
["Kanufi"] = "kni",
["Kanuri"] = "kr",
["Kanyok"] = "kny",
["Kao"] = "kax",
["Kaonde"] = "kqn",
["Kap"] = "ykm",
["Kapampangan"] = "pam",
["Kapauri"] = "khp",
["Kapin"] = "tbx",
["Kapinawá"] = "xpn",
["Kapingamarangi"] = "kpg",
["Kapriman"] = "dju",
["Kaptiau"] = "kbi",
["Kapya"] = "klo",
["Kaqchikel"] = "cak",
["Kara (New Guinea)"] = "leu",
["Kara (Tanzania)"] = "reg",
["Karaboro Barat"] = "kza",
["Karaboro Timur"] = "xrb",
["Karachay-Balkar"] = "krc",
["Karaim"] = "kdr",
["Karajá"] = "kpj",
["Karakalpak"] = "kaa",
["Karakhanid"] = "xqa",
["Karami"] = "xar",
["Karamojong"] = "kdj",
["Karang"] = "kzr",
["Karanga"] = "kth",
["Karankawa"] = "zkk",
["Karao"] = "kyj",
["Karas"] = "kgv",
["Karata"] = "kpt",
["Karawa"] = "xrw",
["Karbi"] = "mjw",
["Karbi Amri"] = "ajz",
["Kare (Africa)"] = "kbn",
["Kare (New Guinea)"] = "kmf",
["Karekare"] = "kai",
["Karelia"] = "krl",
["Karen Brek"] = "kvl",
["Karen Bwe"] = "bwe",
["Karen Geba"] = "kvq",
["Karen Lahta"] = "kvt",
["Karen Manumanaw"] = "kxf",
["Karen Pa'o"] = "blk",
["Karen Paku"] = "kpp",
["Karen S'gaw"] = "ksw",
["Karen Yinbaw"] = "kvu",
["Karen Yintale"] = "kvy",
["Karen Zayein"] = "kxk",
["Karey"] = "kyd",
["Kari"] = "kbj",
["Kari'na"] = "car",
["Karingani"] = "kgn",
["Karipuna"] = "kuq",
["Karipúna"] = "kgm",
["Kariri"] = "kzw",
["Karitiâna"] = "ktn",
["Kariya"] = "kil",
["Kariyarra"] = "vka",
["Karkar-Yuri"] = "yuj",
["Karkin"] = "krb",
["Karko"] = "kko",
["Karnai"] = "bbv",
["Karo"] = "kxh",
["Karok"] = "kyh",
["Karolanos"] = "kyn",
["Karon"] = "krx",
["Karon Dori"] = "kgw",
["Karore"] = "xkx",
["Karranga"] = "xrq",
["Karuwali"] = "rxw",
["Kasanga"] = "ccj",
["Kasem"] = "xsm",
["Kashaya"] = "kju",
["Kashmir"] = "ks",
["Kashubian"] = "csb",
["Kasiguranin"] = "ksn",
["Kaska"] = "kkz",
["Kaskean"] = "zsk",
["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",
["Katu Barat"] = "kuf",
["Katu Timur"] = "ktv",
["Katua"] = "kta",
["Katukina"] = "knt",
["Kaulong"] = "pss",
["Kaur"] = "vkk",
["Kaure"] = "bpp",
["Kaurna"] = "zku",
["Kauwera"] = "xau",
["Kavalan"] = "ckv",
["Kavet"] = "krv",
["Kawacha"] = "kcb",
["Kawahiva"] = "tup-kaw",
["Kawaiisu"] = "xaw",
["Kawe"] = "kgb",
["Kawishana"] = "awd-kaw",
["Kawésqar"] = "alc",
["Kaxararí"] = "ktx",
["Kaxuyana"] = "kbb",
["Kaya"] = "zra",
["Kayabí"] = "kyz",
["Kayagar"] = "kyt",
["Kayah Barat"] = "kyu",
["Kayah Timur"] = "eky",
["Kayan"] = "pdu",
["Kayan Baram"] = "kys",
["Kayan Mahakam"] = "xay",
["Kayan Mendalam"] = "xkd",
["Kayan Rejang"] = "ree",
["Kayan Sungai Kayan"] = "xkn",
["Kayan Wahau"] = "whu",
["Kayapa Kallahan"] = "kak",
["Kayapó"] = "txu",
["Kayardild"] = "gyd",
["Kayeli"] = "kzl",
["Kayong"] = "kxy",
["Kayort"] = "kyv",
["Kayupulau"] = "kzu",
["Kazakh"] = "kk",
["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",
["Keley-I Kallahan"] = "ify",
["Keliko"] = "kbo",
["Kelo"] = "xel",
["Kelon"] = "kyo",
["Kemak"] = "kem",
["Kembayan"] = "xem",
["Kemberano"] = "bzp",
["Kembra"] = "xkw",
["Kemezung"] = "dmo",
["Kemiehua"] = "kfj",
["Kemtuik"] = "kmt",
["Kenaboi"] = "xbn",
["Kendeje"] = "klf",
["Kendem"] = "kvm",
["Kenga"] = "kyq",
["Keninjal"] = "knl",
["Kensiu"] = "kns",
["Kenswei Nsei"] = "ndb",
["Kenyah Wahau"] = "whk",
["Kenyang"] = "ken",
["Kenyi"] = "lke",
["Keoru-Ahia"] = "xeu",
["Kepkiriwát"] = "kpn",
["Kepo'"] = "kuk",
["Kera"] = "ker",
["Kerak"] = "hhr",
["Kereho"] = "xke",
["Kerek"] = "krk",
["Keres Barat"] = "kjq",
["Keres Timur"] = "kee",
["Kerewe"] = "ked",
["Kerewo"] = "kxz",
["Kerinci"] = "kvr",
["Kermanik"] = "xme-ker",
["Kesawai"] = "xes",
["Ket"] = "ket",
["Ketangalan"] = "kae",
["Kete"] = "kcv",
["Ketengban"] = "xte",
["Ketum"] = "ktt",
["Kewa"] = "kew",
["Kewa Timur"] = "kjs",
["Keyagana"] = "kyg",
["Kgalagadi"] = "xkv",
["Khakas"] = "kjh",
["Khalaj"] = "klj",
["Khaling"] = "klr",
["Kham"] = "kjl",
["Kham Parbate Timur"] = "kif",
["Khamti"] = "kht",
["Khamyang"] = "ksu",
["Khana"] = "ogo",
["Khandeshi"] = "khn",
["Khanty Selatan"] = "kca-sou",
["Khanty Timur"] = "kca-eas",
["Khanty Utara"] = "kca-nor",
["Khao"] = "xao",
["Kharam Naga"] = "kfw",
["Kharia"] = "khr",
["Kharia Thar"] = "ksy",
["Khasi"] = "kha",
["Khayo"] = "lko",
["Khazar"] = "zkz",
["Khe"] = "kqg",
["Khehek"] = "tlx",
["Khengkha"] = "xkf",
["Khetrani"] = "xhe",
["Khinalug"] = "kjj",
["Khirwar"] = "kwx",
["Khisa"] = "kqm",
["Khitan"] = "zkt",
["Khlor"] = "llo",
["Khlula"] = "ykl",
["Khmer"] = "km",
["Khmer Kuno"] = "okz",
["Khmer Pertengahan"] = "xhm",
["Khmer Utara"] = "kxm",
["Khmu"] = "kjg",
["Khoekhoe"] = "naq",
["Khoini"] = "xkc",
["Kholok"] = "ktc",
["Kholosi"] = "inc-kho",
["Khonso"] = "kxc",
["Khorezmian Turkic"] = "zkh",
["Khortha"] = "inc-khr",
["Khotan"] = "kho",
["Khowar"] = "khw",
["Khroskyabs"] = "jiq",
["Khua"] = "xhv",
["Khuen"] = "khf",
["Khvarshi"] = "khv",
["Khwarezm"] = "xco",
["Khwe"] = "xuu",
["Kháng"] = "kjm",
["Khün"] = "kkh",
["Kibala"] = "blv",
["Kibena"] = "bez",
["Kibet"] = "kie",
["Kibiri"] = "prm",
["Kichwa"] = "qwe-kch",
["Kickapoo"] = "kic",
["Kikai"] = "kzg",
["Kikami"] = "kcu",
["Kikuyu"] = "ki",
["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",
["Kinnauri"] = "kfk",
["Kinnauri Bhoti"] = "nes",
["Kintaq"] = "knq",
["Kinuku"] = "kkd",
["Kioko"] = "ues",
["Kiong"] = "kkm",
["Kiorr"] = "xko",
["Kiowa"] = "kio",
["Kipchak"] = "qwm",
["Kipfokomo"] = "pkb",
["Kipsigis"] = "sgc",
["Kiput"] = "kyi",
["Kir-Balar"] = "kkr",
["Kirfi"] = "kks",
["Kirike"] = "okr",
["Kirikiri"] = "kiy",
["Kirya-Konzel"] = "fkk",
["Kis"] = "kis",
["Kisa"] = "lks",
["Kisan"] = "xis",
["Kisankasa"] = "kqh",
["Kisar"] = "kje",
["Kisi"] = "kiz",
["Kissi Selatan"] = "kss",
["Kissi Utara"] = "kqs",
["Kitanemuk"] = "azc-ktn",
["Kitembo"] = "tbt",
["Kitsai"] = "kii",
["Kituba"] = "ktu",
["Kiunum"] = "wei",
["Kiwai Selatan"] = "kjd",
["Kiwai Timur Laut"] = "kiw",
["Kla"] = "lda",
["Klallam"] = "clm",
["Klamath-Modoc"] = "kla",
["Klao"] = "klu",
["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 Indus"] = "mvy",
["Kohistani Shina"] = "plk",
["Koho"] = "kpm",
["Kohumono"] = "bcs",
["Koi"] = "kkt",
["Koiari Gunung"] = "kpx",
["Koibal"] = "zkb",
["Koireng"] = "nkd",
["Koitabu"] = "kqi",
["Koiwat"] = "kxt",
["Kok-Paponk"] = "okg",
["Kokata"] = "ktd",
["Kokborok"] = "trp",
["Koke"] = "kou",
["Koko-Bera"] = "kkp",
["Kokoda"] = "xod",
["Kokola"] = "kzn",
["Kokota"] = "kkk",
["Kol (Cameroon)"] = "biw",
["Kol (New Guinea)"] = "kol",
["Kola"] = "kvv",
["Kolami"] = "kfb",
["Kolami Tenggara"] = "nit",
["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 Kuno"] = "urj-koo",
["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",
["Koneraw"] = "kdw",
["Kongo"] = "kg",
["Konjo Pesisir"] = "kjc",
["Konkani"] = "kok",
["Konkomba"] = "xon",
["Konni"] = "kma",
["Kono (Guinea)"] = "knu",
["Kono (Nigeria)"] = "klk",
["Kono (Sierra Leone)"] = "kno",
["Konomala"] = "koa",
["Konomihu"] = "nai-knm",
["Konongo"] = "kcz",
["Konzo"] = "koo",
["Koonzime"] = "ozm",
["Koorete"] = "kqy",
["Kopar"] = "xop",
["Kopkaka"] = "opk",
["Korafe-Yegha"] = "kpr",
["Korak"] = "koz",
["Korana"] = "kqz",
["Korandje"] = "kcy",
["Korea"] = "ko",
["Korea Kuno"] = "oko",
["Korea Moden Awal"] = "ko-ear",
["Korea Pertengahan"] = "okm",
["Koreguaje"] = "coe",
["Koresh-e Rostam"] = "okh",
["Korku"] = "kfq",
["Koro (Afrika Barat)"] = "kfo",
["Koro (India)"] = "jkr",
["Koro (New Guinea)"] = "kxr",
["Koro (Vanuatu)"] = "krf",
["Koromfé"] = "kfz",
["Koromira"] = "kqj",
["Koronadal Blaan"] = "bpr",
["Koroni"] = "xkq",
["Korop"] = "krp",
["Koropó"] = "xxr",
["Koroshi"] = "ktl",
["Korowai"] = "khe",
["Korra Koraga"] = "kfd",
["Korubo"] = "xor",
["Korupun-Sela"] = "kpq",
["Korwa"] = "kfp",
["Koryak"] = "kpy",
["Kosadle"] = "kiq",
["Kosarek Yale"] = "kkl",
["Kosena"] = "kze",
["Koshin"] = "kid",
["Kosrae"] = "kos",
["Kota (Gabon)"] = "koq",
["Kota (India)"] = "kfe",
["Kotava"] = "avk",
["Koti"] = "eko",
["Kott"] = "zko",
["Kou"] = "snz",
["Kouya"] = "kyf",
["Kovai"] = "kqb",
["Kove"] = "kvc",
["Kowaki"] = "xow",
["Kowiai"] = "kwh",
["Koy Sanjaq Surat"] = "kqd",
["Koya"] = "kff",
["Koyaga"] = "kga",
["Koyo"] = "koh",
["Koyra Chiini"] = "khq",
["Koyraboro Senni"] = "ses",
["Koyukon"] = "koy",
["Kpagua"] = "kuw",
["Kpala"] = "kpl",
["Kpan"] = "kpk",
["Kpasam"] = "pbn",
["Kpati"] = "koc",
["Kpatili"] = "kym",
["Kpee"] = "cpo",
["Kpelle"] = "kpe",
["Kpessi"] = "kef",
["Kplang"] = "kph",
["Krache"] = "kye",
["Krahn Barat"] = "krw",
["Krahn Timur"] = "kqo",
["Krahô"] = "xra",
["Kraol"] = "rka",
["Krenak"] = "kqq",
["Kreol Afro-Seminole"] = "afs",
["Kreol Bahamas"] = "bah",
["Kreol Belize"] = "bzj",
["Kreol Belter"] = "art-bel",
["Kreol Guinea-Bissau"] = "pov",
["Kreol Haiti"] = "ht",
["Kreol Hawaii"] = "hwc",
["Kreol Inggeris Antigua dan Barbuda"] = "aig",
["Kreol Inggeris Guyana"] = "gyn",
["Kreol Jamaica"] = "jam",
["Kreol Kepulauan Virgin"] = "vic",
["Kreol Lelaki Ngatik"] = "ngm",
["Kreol Louisiana"] = "lou",
["Kreol Mauritius"] = "mfe",
["Kreol Nicaragua"] = "bzk",
["Kreol Selat Torres"] = "tcs",
["Kreol Seychelles"] = "crs",
["Kreol Yilan"] = "ycr",
["Kresh"] = "krs",
["Krevinian"] = "zkv",
["Kreye"] = "xre",
["Krikati-Timbira"] = "xri",
["Krim"] = "krm",
["Krio"] = "kri",
["Kriol"] = "rop",
["Krisa"] = "ksi",
["Kristang"] = "mcm",
["Krobu"] = "kxb",
["Krongo"] = "kgo",
["Kru'ng"] = "krr",
["Krymchak"] = "jct",
["Kryts"] = "kry",
["Kua"] = "tyu",
["Kua-nsi"] = "ykn",
["Kuamasi"] = "yku",
["Kuan"] = "uan",
["Kuanhua"] = "xnh",
["Kube"] = "kgf",
["Kubi"] = "kof",
["Kubo"] = "jko",
["Kubu"] = "kvb",
["Kucong"] = "lkc",
["Kudiya"] = "kfg",
["Kudmali"] = "kyw",
["Kudu-Camo"] = "kov",
["Kugama"] = "kow",
["Kugbo"] = "kes",
["Kugu-Muminh"] = "xmh",
["Kui (India)"] = "kxu",
["Kui (Indonesia)"] = "kvd",
["Kuijau"] = "dkr",
["Kuikúro"] = "kui",
["Kujarge"] = "vkj",
["Kuk"] = "kfn",
["Kukatja"] = "kux",
["Kukele"] = "kez",
["Kukkuzi"] = "urj-kuk",
["Kukna"] = "kex",
["Kuku-Mangk"] = "xmq",
["Kuku-Mu'inh"] = "xmp",
["Kuku-Thaypan"] = "typ",
["Kuku-Ugbanh"] = "ugb",
["Kuku-Uwanh"] = "uwa",
["Kuku-Yalanji"] = "gvn",
["Kula"] = "tpg",
["Kulango Bouna"] = "nku",
["Kulere"] = "kul",
["Kulfa"] = "kxj",
["Kulina"] = "xpk",
["Kulisusu"] = "vkl",
["Kullu Pahari"] = "kfx",
["Kulon"] = "uon",
["Kulon-Pazeh"] = "uun",
["Kulung"] = "kle",
["Kumak"] = "nee",
["Kumalu"] = "ksl",
["Kumam"] = "kdi",
["Kuman"] = "kue",
["Kumaoni"] = "kfy",
["Kumarbhag Paharia"] = "kmj",
["Kumba"] = "ksm",
["Kumbainggar"] = "kgs",
["Kumbaran"] = "wkb",
["Kumbewaha"] = "xks",
["Kumeyaay"] = "nai-kum",
["Kumhali"] = "kra",
["Kumu"] = "kmw",
["Kumukio"] = "kuo",
["Kumyk"] = "kum",
["Kumzari"] = "zum",
["Kuna"] = "cuk",
["Kuna Sempadan"] = "kvn",
["Kunama"] = "kun",
["Kunbarlang"] = "wlg",
["Kunda"] = "kdn",
["Kundal Shahi"] = "shd",
["Kunduvadi"] = "wku",
["Kung"] = "kfl",
["Kunggari"] = "kgl",
["Kungkari"] = "lku",
["Kuni"] = "kse",
["Kuni-Boazi"] = "kvg",
["Kunigami"] = "xug",
["Kunimaipa"] = "kup",
["Kunja"] = "pep",
["Kunjen"] = "kjn",
["Kunyi"] = "njx",
["Kunza"] = "kuz",
["Kuo"] = "xuo",
["Kuot"] = "kto",
["Kupa"] = "kug",
["Kupia"] = "key",
["Kupsabiny"] = "kpz",
["Kur"] = "kuv",
["Kura Ede Nago"] = "nqk",
["Kurama"] = "krh",
["Kuranko"] = "knk",
["Kurdi Selatan"] = "sdh",
["Kurdi Tengah"] = "ckb",
["Kurdi Utara"] = "kmr",
["Kuri"] = "nbn",
["Kuria"] = "kuj",
["Kurichiya"] = "kfh",
["Kurmukar"] = "kfv",
["Kurnai"] = "unn",
["Kurrama"] = "vku",
["Kursav"] = "faj",
["Kurti"] = "ktm",
["Kurtöp"] = "xkz",
["Kurudu"] = "kjr",
["Kurukh"] = "kru",
["Kurumba Alu"] = "xua",
["Kurumba Betta"] = "xub",
["Kuruáya"] = "kyr",
["Kusaal"] = "kus",
["Kusaghe"] = "ksg",
["Kushi"] = "kuh",
["Kustenau"] = "awd-kus",
["Kusu"] = "ksv",
["Kusunda"] = "kgg",
["Kutenai"] = "kut",
["Kutep"] = "kub",
["Kuthant"] = "xut",
["Kutto"] = "kpa",
["Kutu"] = "kdc",
["Kuturmi"] = "khj",
["Kuuk Thaayorre"] = "thd",
["Kuuk Yak"] = "uky",
["Kuuku-Ya'u"] = "kuy",
["Kuvale"] = "olu",
["Kuvi"] = "kxv",
["Kuwaa"] = "blh",
["Kuwaataay"] = "cwt",
["Kuwani"] = "paa-kwn",
["Kuy"] = "kdt",
["Kven"] = "fkv",
["Kw'adza"] = "wka",
["Kwa'"] = "bko",
["Kwaami"] = "ksq",
["Kwadi"] = "kwz",
["Kwaio"] = "kwd",
["Kwaja"] = "kdz",
["Kwak"] = "kwq",
["Kwak'wala"] = "kwk",
["Kwakum"] = "kwu",
["Kwalhioqua-Tlatskanai"] = "qwt",
["Kwama"] = "kmq",
["Kwambi"] = "kwm",
["Kwamera"] = "tnk",
["Kwami"] = "ktf",
["Kwamtim One"] = "okk",
["Kwang"] = "kvi",
["Kwanga"] = "kwj",
["Kwangali"] = "kwn",
["Kwanja"] = "knp",
["Kwanka"] = "bij",
["Kwanyama"] = "kj",
["Kwara'ae"] = "kwf",
["Kwasio"] = "nmg",
["Kwaya"] = "kya",
["Kwaza"] = "xwa",
["Kwegu"] = "xwg",
["Kwer"] = "kwr",
["Kwerba"] = "kwe",
["Kwerba Mamberamo"] = "xwr",
["Kwere"] = "cwe",
["Kwerisa"] = "kkb",
["Kwese"] = "kws",
["Kwesten"] = "kwt",
["Kwini"] = "gww",
["Kwinsu"] = "kuc",
["Kwinti"] = "kww",
["Kwoma"] = "kmo",
["Kwomtari"] = "kwo",
["Kyak"] = "bka",
["Kyaka"] = "kyc",
["Kyakala"] = "tuw-kkl",
["Kyenele"] = "kql",
["Kyenga"] = "tye",
["Kyerung"] = "kgy",
["Kyrgyz"] = "ky",
["Kâte"] = "kmg",
["Kélé"] = "keb",
["Kómnzo"] = "paa-kmn",
["La'bi"] = "lbi",
["Laalaa"] = "cae",
["Laba"] = "lau",
["Label"] = "lbb",
["Labir"] = "jku",
["Labo"] = "mwi",
["Labo Phowa"] = "ypb",
["Laboya"] = "lmy",
["Labu"] = "lbu",
["Lacandon"] = "lac",
["Lachi"] = "lbt",
["Lachi Putih"] = "lwh",
["Lachiguiri Zapotec"] = "zpa",
["Lachixío Zapotec"] = "zpl",
["Ladakhi"] = "lbj",
["Ladin"] = "lld",
["Ladino"] = "lad",
["Ladji-Ladji"] = "llj",
["Laeko-Libuat"] = "lkl",
["Lafofa"] = "laf",
["Laghu"] = "lgb",
["Laghuu"] = "lgh",
["Lagwan"] = "kot",
["Laha (Indonesia)"] = "lhh",
["Laha (Vietnam)"] = "lha",
["Lahanan"] = "lhn",
["Lahnda"] = "lah",
["Lahu"] = "lhu",
["Lahu Shi"] = "lhi",
["Lahul Lohar"] = "lhl",
["Lai"] = "cnh",
["Laimbue"] = "lmx",
["Laiyolo"] = "lji",
["Lak"] = "lbe",
["Laka"] = "lak",
["Lakalei"] = "lka",
["Lake Miwok"] = "lmw",
["Lakha"] = "lkh",
["Laki"] = "lki",
["Lakkia"] = "lbc",
["Lakon"] = "lkn",
["Lakondê"] = "lkd",
["Lakota"] = "lkt",
["Lakota Dida"] = "dic",
["Lala (Afrika Selatan)"] = "bnt-lal",
["Lala (New Guinea)"] = "nrz",
["Lala-Bisa"] = "leb",
["Lala-Roba"] = "lla",
["Lalana Chinantec"] = "cnl",
["Lalu Barat"] = "ywl",
["Lalu Timur"] = "yit",
["Lama Bai"] = "lay",
["Lamaholot"] = "slp",
["Lamalera"] = "lmr",
["Lamang"] = "hia",
["Lamatuka"] = "lmq",
["Lamba"] = "lam",
["Lambadi"] = "lmn",
["Lambichhong"] = "lmh",
["Lambya"] = "lai",
["Lame"] = "bma",
["Lamenu"] = "lmu",
["Lamet"] = "lbn",
["Lamja-Dengsa-Tola"] = "ldh",
["Lamkang"] = "lmk",
["Lamma"] = "lev",
["Lamnso'"] = "lns",
["Lamogai"] = "lmg",
["Lampung Api"] = "ljp",
["Lamu"] = "llh",
["Lamu-Lamu"] = "lby",
["Lanas Lobu"] = "ruu",
["Landoma"] = "ldm",
["Lang'e"] = "yne",
["Langam"] = "lnm",
["Langbashe"] = "lna",
["Langi"] = "lag",
["Langnian Buyang"] = "yln",
["Lango (Sudan)"] = "lno",
["Lango (Uganda)"] = "laj",
["Lanima"] = "lnw",
["Lanoh"] = "lnh",
["Lao"] = "lo",
["Laomian"] = "lwm",
["Laopang"] = "lbg",
["Lapaguía-Guivini Zapotec"] = "ztl",
["Lapine"] = "art-lap",
["Laragia"] = "lrg",
["Lardil"] = "lbz",
["Larestani"] = "lrl",
["Larevat"] = "lrv",
["Larike-Wakasihu"] = "alo",
["Laro"] = "lro",
["Larteh"] = "lar",
["Laru"] = "lan",
["Lasalimu"] = "llm",
["Lasgerdi"] = "lsa",
["Lashi"] = "lsi",
["Lasi"] = "lss",
["Latgalia"] = "ltg",
["Latin"] = "la",
["Latu"] = "ltu",
["Latundê"] = "ltn",
["Latvia"] = "lv",
["Lau"] = "llu",
["Laua"] = "luf",
["Lauan"] = "llx",
["Lauje"] = "law",
["Laura"] = "lur",
["Laurentia"] = "lre",
["Lavatbura-Lamusong"] = "lbv",
["Lave"] = "brb",
["Laven"] = "lbo",
["Lavukaleve"] = "lvk",
["Lawa Barat"] = "lcp",
["Lawa Timur"] = "lwl",
["Lawangan"] = "lbx",
["Lawi"] = "lvi",
["Lawu"] = "lwu",
["Lawunuia"] = "tgi",
["Layakha"] = "lya",
["Laz"] = "lzz",
["Laze"] = "tbq-laz",
["Lealao Chinantec"] = "cle",
["Leco"] = "lec",
["Ledo Kaili"] = "lew",
["Leelau"] = "ldk",
["Lefa"] = "lfa",
["Lega-Mwenga"] = "lgm",
["Lega-Shabunda"] = "lea",
["Legbo"] = "agb",
["Legenyem"] = "lcc",
["Lehali"] = "tql",
["Leinong Naga"] = "lzn",
["Leipon"] = "lek",
["Leitre"] = "paa-lei",
["Lela"] = "dri",
["Lelak"] = "llk",
["Lele (Chad)"] = "lln",
["Lele (Congo)"] = "lel",
["Lele (Guinea)"] = "llc",
["Lele (New Guinea)"] = "lle",
["Lelemi"] = "lef",
["Lelepa"] = "lpa",
["Lembata Barat"] = "lmj",
["Lembata Selatan"] = "lmf",
["Lembena"] = "leq",
["Lemerig"] = "lrz",
["Lemio"] = "lei",
["Lemnos"] = "xle",
["Lemolang"] = "ley",
["Lemoro"] = "ldj",
["Lenakel"] = "tnl",
["Lenca Honduras"] = "len",
["Lenca Salvador"] = "nai-sln",
["Lendu"] = "led",
["Lengilu"] = "lgi",
["Lengo"] = "lgr",
["Lengola"] = "lej",
["Lenje"] = "leh",
["Lenkau"] = "ler",
["Lenyima"] = "ldg",
["Leonese"] = "roa-leo",
["Leonese Kuno"] = "roa-ole",
["Lepcha"] = "lep",
["Lepki"] = "lpe",
["Lepontii"] = "xlp",
["Lese"] = "les",
["Lesing-Gelimi"] = "let",
["Letemboi"] = "nms",
["Leti (Cameroon)"] = "leo",
["Leti (Indonesia)"] = "lti",
["Levuka"] = "lvu",
["Lewo"] = "lww",
["Lewo Eleng"] = "lwe",
["Lewotobi"] = "lwt",
["Leyigha"] = "ayi",
["Lezgi"] = "lez",
["Lhao Vo"] = "mhx",
["Lhokpu"] = "lhp",
["Li'o"] = "ljl",
["Liabuku"] = "lix",
["Liana-Seti"] = "ste",
["Liberia Kpelle"] = "xpe",
["Liberian Kreyol"] = "lir",
["Libido"] = "liq",
["Libinza"] = "liz",
["Liburni"] = "xli",
["Ligbi"] = "lig",
["Ligenza"] = "lgz",
["Liguria Purba"] = "xlg",
["Ligurian"] = "lij",
["Lihir"] = "lih",
["Lika"] = "lik",
["Liki"] = "lio",
["Likila"] = "lie",
["Likuba"] = "kxx",
["Likum"] = "lib",
["Likwala"] = "kwc",
["Lilau"] = "lll",
["Lillooet"] = "lil",
["Limassa"] = "bme",
["Limba Barat-Tengah"] = "lia",
["Limba Timur"] = "lma",
["Limbu"] = "lif",
["Limbum"] = "lmp",
["Limburg"] = "li",
["Limi"] = "ylm",
["Limilngan"] = "lmc",
["Lindu"] = "klw",
["Linear A"] = "lab",
["Lingala"] = "ln",
["Lingao"] = "onb",
["Lingkhim"] = "lii",
["Lingua Franca Nova"] = "lfn",
["Linngithigh"] = "lnj",
["Lipan"] = "apl",
["Lipo"] = "lpo",
["Lisabata-Nuniali"] = "lcs",
["Lisela"] = "lcl",
["Lish"] = "lsh",
["Lishana Deni"] = "lsd",
["Lishanid Noshan"] = "aij",
["Lishán Didán"] = "trg",
["Lisu"] = "lis",
["Literary Chinese"] = "lzh",
["Lithuania"] = "lt",
["Lithuania Kuno"] = "olt",
["Lithuanian Sign Language"] = "lls",
["Little Swanport"] = "aus-lsw",
["Litzlitz"] = "lzl",
["Livonian"] = "liv",
["Livvi"] = "olo",
["Lizu"] = "sit-liz",
["Lo-Toga"] = "lht",
["Loarki"] = "lrk",
["Lobala"] = "loq",
["Lobi"] = "lob",
["Lodhi"] = "lbm",
["Logba"] = "lgq",
["Logo"] = "log",
["Logol"] = "lof",
["Logooli"] = "rag",
["Logorik"] = "liu",
["Lojban"] = "jbo",
["Lokaa"] = "yaz",
["Loko"] = "lok",
["Lokono"] = "arw",
["Lokoya"] = "lky",
["Lola"] = "lcd",
["Lolak"] = "llq",
["Lole"] = "llg",
["Lolo"] = "llb",
["Loloda"] = "loa",
["Lolopo"] = "ycl",
["Lolopo Selatan"] = "ysp",
["Loma"] = "lom",
["Lomaiviti"] = "lmv",
["Lomakka"] = "loi",
["Lomavren"] = "rmi",
["Lombard"] = "lmo",
["Lombi"] = "lmi",
["Lombo"] = "loo",
["Lomwe"] = "ngl",
["Loncong"] = "lce",
["Long Phuri Naga"] = "lpn",
["Long Wat"] = "ttw",
["Longgu"] = "lgu",
["Longjia"] = "sit-lnj",
["Longto"] = "wok",
["Longuda"] = "lnu",
["Loniu"] = "los",
["Lonwolwol"] = "crc",
["Loo"] = "ldo",
["Lopa"] = "lop",
["Lopi"] = "lov",
["Lopit"] = "lpx",
["Lorang"] = "lrn",
["Lorediakarkar"] = "lnn",
["Lorrain"] = "roa-lor",
["Lorung Selatan"] = "lrr",
["Lorung Utara"] = "lbr",
["Lote"] = "uvl",
["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 Sorbian"] = "dsb",
["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",
["Luchazi"] = "lch",
["Lucumí"] = "luq",
["Ludian"] = "lud",
["Lufu"] = "ldq",
["Luganda"] = "lg",
["Lugbara"] = "lgg",
["Luguru"] = "ruf",
["Luhu"] = "lcq",
["Luhya"] = "luy",
["Luimbi"] = "lum",
["Luiseño"] = "lui",
["Lukpa"] = "dop",
["Lule"] = "ule",
["Lumba-Yakkha"] = "luu",
["Lumbee"] = "lmz",
["Lumbu"] = "lup",
["Lumun"] = "lmd",
["Lun Bawang"] = "lnd",
["Luna"] = "luj",
["Lunanakha"] = "luk",
["Lunda"] = "lun",
["Lungga"] = "lga",
["Luo"] = "luo",
["Lur Selatan"] = "luz",
["Lur Utara"] = "lrc",
["Luren"] = "sit-lrn",
["Luri (Nigeria)"] = "ldd",
["Lusengo"] = "lse",
["Lushootseed"] = "lut",
["Lusi"] = "khl",
["Lusitania"] = "xls",
["Lutachoni"] = "lts",
["Lutos"] = "ndy",
["Luvale"] = "lue",
["Luwati"] = "luv",
["Luwiya"] = "xlu",
["Luwo"] = "lwo",
["Luxembourg"] = "lb",
["Luyana"] = "lyn",
["Lwalu"] = "lwa",
["Lwel"] = "lvl",
["Lycia"] = "xlc",
["Lydia"] = "xld",
["Lyngngam"] = "lyg",
["Lyélé"] = "lee",
["Láadan"] = "ldn",
["Láá Láá Bwamu"] = "bwj",
["Löyöp"] = "urr",
["Lü"] = "khb",
["Ma"] = "msj",
["Ma Manda"] = "skc",
["Ma'anyan"] = "mhy",
["Ma'di"] = "mhi",
["Ma'di Selatan"] = "snm",
["Ma'ya"] = "slz",
["Maaka"] = "mew",
["Maale"] = "mdy",
["Maasai"] = "mas",
["Maay"] = "ymm",
["Maba"] = "mqa",
["Mabaale"] = "mmz",
["Mabaan"] = "mfz",
["Mabang Bura"] = "mde",
["Mabire"] = "muj",
["Maca"] = "mca",
["Macaguaje"] = "mcl",
["Macaguán"] = "mbn",
["Macanese"] = "mzs",
["Macedonia"] = "mk",
["Macedonia Purba"] = "xmk",
["Machame"] = "jmc",
["Machiguenga"] = "mcb",
["Machinere"] = "mpd",
["Machinga"] = "mvw",
["Macoris"] = "nai-mac",
["Macuna"] = "myy",
["Macushi"] = "mbc",
["Mada (Cameroon)"] = "mxu",
["Mada (Nigeria)"] = "mda",
["Madak"] = "mmx",
["Maden"] = "xmx",
["Madhi Madhi"] = "dmd",
["Madngele"] = "zml",
["Madura"] = "mad",
["Maek"] = "hmk",
["Maeng Itneg"] = "itt",
["Mafa"] = "maf",
["Mag-Anchi Ayta"] = "sgb",
["Mag-Indi Ayta"] = "blx",
["Magahat"] = "mtw",
["Magahi"] = "mag",
["Magar Barat"] = "mrd",
["Magar Timur"] = "mgp",
["Magori"] = "zgr",
["Maguindanao"] = "mdh",
["Mahali"] = "mjx",
["Mahasu Pahari"] = "bfz",
["Mahican"] = "mjy",
["Mahongwe"] = "mhb",
["Mahou"] = "mxx",
["Maia"] = "sks",
["Maiadomu"] = "mzz",
["Maiani"] = "tnh",
["Maidu Barat Laut"] = "mjd",
["Maidu Timur Laut"] = "nmu",
["Maii"] = "mmm",
["Mailu"] = "mgu",
["Maindo"] = "cwb",
["Maipure"] = "awd-mpr",
["Mairasi"] = "zrs",
["Maisin"] = "mbq",
["Maithili"] = "mai",
["Maiwa (Indonesia)"] = "wmm",
["Maiwa (New Guinea)"] = "mti",
["Maiwala"] = "mum",
["Majang"] = "mpe",
["Majera"] = "xmj",
["Majhwar"] = "mmj",
["Mak (China)"] = "mkg",
["Mak (Nigeria)"] = "pbl",
["Makaa"] = "mcp",
["Makah"] = "myh",
["Makalero"] = "mjb",
["Makasae"] = "mkz",
["Makassar"] = "mak",
["Makayam"] = "aup",
["Makhuwa"] = "vmw",
["Makhuwa-Marrevone"] = "xmc",
["Makhuwa-Meetto"] = "mgh",
["Makhuwa-Moniga"] = "mhm",
["Makhuwa-Saka"] = "xsq",
["Makhuwa-Shirima"] = "vmk",
["Makian Barat"] = "mqs",
["Maklew"] = "mgf",
["Makolkol"] = "zmh",
["Makonde"] = "kde",
["Maku"] = "xak",
["Maku'a"] = "lva",
["Makuri Naga"] = "jmn",
["Makuráp"] = "mpu",
["Makwe"] = "ymk",
["Makyan Naga"] = "umn",
["Mal"] = "mlf",
["Mal Paharia"] = "mkb",
["Mala (New Guinea)"] = "ped",
["Mala (Nigeria)"] = "ruy",
["Mala Malasar"] = "ima",
["Malagasi"] = "mg",
["Malakula Timur Laut"] = "upv",
["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",
["Malayalam"] = "ml",
["Malayic Dayak"] = "xdy",
["Malaynon"] = "mlz",
["Malba Birifor"] = "bfo",
["Male"] = "mdc",
["Malecite-Passamaquoddy"] = "pqm",
["Maleng"] = "pkt",
["Maleu-Kilenge"] = "mgl",
["Malfaxal"] = "mlx",
["Malgana"] = "vml",
["Malgbe"] = "mxf",
["Malibu"] = "sai-mlb",
["Malila"] = "mgq",
["Malimba"] = "mzd",
["Malimpung"] = "mli",
["Malol"] = "mbk",
["Malta"] = "mt",
["Malvi"] = "mup",
["Mam"] = "mam",
["Mama"] = "mma",
["Mamaa"] = "mhf",
["Mamaindé"] = "wmd",
["Mamanwa"] = "mmn",
["Mamara"] = "myk",
["Mamasa"] = "mqj",
["Mambae"] = "mgm",
["Mambai"] = "mcs",
["Mambila Cameroon"] = "mcu",
["Mambila Nigeria"] = "mzk",
["Mamboru"] = "mvd",
["Mambwe-Lungu"] = "mgr",
["Mampruli"] = "maw",
["Mamuju"] = "mqx",
["Mamulique"] = "emm",
["Mamusi"] = "kdf",
["Mamvu"] = "mdi",
["Man Met"] = "mml",
["Manam"] = "mva",
["Manambu"] = "mle",
["Manangba"] = "nmm",
["Manangkari"] = "znk",
["Manao"] = "awd-man",
["Manchu"] = "mnc",
["Manda (Australia)"] = "zma",
["Manda (India)"] = "mha",
["Manda (Tanzania)"] = "mgs",
["Mandahuaca"] = "mht",
["Mandaia"] = "mid",
["Mandaia Klasik"] = "myz",
["Mandalorian"] = "art-man",
["Mandan"] = "mhq",
["Mandandanyi"] = "zmk",
["Mandar"] = "mdr",
["Mandara"] = "tbf",
["Mandari"] = "mqu",
["Mandarin"] = "cmn",
["Mandaya Karaga"] = "mry",
["Mandeali"] = "mjl",
["Mander"] = "mqr",
["Mandingo"] = "man",
["Mandinka"] = "mnk",
["Mandjak"] = "mfv",
["Mandobo Atas"] = "aax",
["Mandobo Bawah"] = "bwp",
["Manem"] = "jet",
["Mang"] = "zng",
["Mangala"] = "mem",
["Mangarayi"] = "mpc",
["Mangareva"] = "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",
["Mangue"] = "mom",
["Manigri-Kambolé Ede Nago"] = "xkb",
["Maninka Konyanka"] = "mku",
["Maninka Sankaran"] = "msc",
["Maninkakan Barat"] = "mlq",
["Maninkakan Kita"] = "mwk",
["Maninkakan Timur"] = "emk",
["Manipa"] = "mqp",
["Manipur Kuno"] = "omp",
["Manipuri"] = "mni",
["Mankanya"] = "knf",
["Mankiyali"] = "nlm",
["Manna-Dora"] = "mju",
["Mannan"] = "mjv",
["Mano"] = "mev",
["Manobo Agusan"] = "msm",
["Manobo Ata"] = "atd",
["Manobo Bukidnon Barat"] = "mbb",
["Manobo Cinamiguin"] = "mkx",
["Manobo Cotabato"] = "mta",
["Manobo Dibabawon"] = "mbd",
["Manobo Ilianen"] = "mbi",
["Manobo Matigsalug"] = "mbt",
["Manobo Rajah Kabunsuwan"] = "mqk",
["Manobo Sarangani"] = "mbs",
["Manombai"] = "woo",
["Mansaka"] = "msk",
["Mansi Selatan"] = "mns-sou",
["Mansi Tengah"] = "mns-cen",
["Mansi Utara"] = "mns-nor",
["Mansoanka"] = "msw",
["Manta"] = "myg",
["Mantsi"] = "nty",
["Manusela"] = "wha",
["Manx"] = "gv",
["Manya"] = "mjz",
["Manyawa"] = "mny",
["Manza"] = "mzv",
["Maonan"] = "mmd",
["Mape"] = "mlh",
["Mapena"] = "mnm",
["Mapia"] = "mpy",
["Mapidian"] = "mpw",
["Mapos Buang"] = "bzh",
["Mapoyo"] = "mcg",
["Mapudungun"] = "arn",
["Mapun"] = "sjm",
["Mara"] = "mec",
["Marachi"] = "lri",
["Maraghei"] = "vmh",
["Maragus"] = "mrs",
["Marama"] = "lrm",
["Maranao"] = "mrw",
["Maranungku"] = "zmr",
["Mararit"] = "mgb",
["Marathi"] = "mr",
["Marathi Kuno"] = "omr",
["Maratino"] = "sai-mar",
["Marau"] = "mvr",
["Marawan"] = "awd-mar",
["Marba"] = "mpg",
["Marenje"] = "vmr",
["Marfa"] = "mvu",
["Margany"] = "zmc",
["Marghi Selatan"] = "mfm",
["Margi"] = "mrt",
["Mari (Sepik)"] = "mbx",
["Mari Austronesia"] = "hob",
["Mari Barat"] = "mrj",
["Mari Timur"] = "mhr",
["Maria"] = "mds",
["Maria Bukit"] = "mrr",
["Mariaté"] = "awd-mrt",
["Maricopa"] = "mrc",
["Maridan"] = "zmd",
["Maridjabin"] = "zmj",
["Marik"] = "dad",
["Marimanindji"] = "zmm",
["Marind"] = "mrz",
["Maring"] = "mbw",
["Maringarr"] = "zmt",
["Mariri"] = "mqi",
["Maritsauá"] = "msp",
["Mariyedi"] = "zmy",
["Marka"] = "rkm",
["Markweeta"] = "enb",
["Marma"] = "rmz",
["Marovo"] = "mvo",
["Marquesas Selatan"] = "mqm",
["Marquesas Utara"] = "mrq",
["Marrgu"] = "mhg",
["Marriammu"] = "xru",
["Marrithiyel"] = "mfr",
["Marrucinian"] = "umc",
["Marshall"] = "mh",
["Marsian"] = "ims",
["Marti Ke"] = "zmg",
["Martu Wangka"] = "mpj",
["Martuthunira"] = "vma",
["Marwari"] = "mwr",
["Marúbo"] = "mzr",
["Masaba"] = "myx",
["Masadiit Itneg"] = "tis",
["Masakará"] = "sai-msk",
["Masalit"] = "mls",
["Masana"] = "mcn",
["Masbate Sorsogon"] = "bks",
["Masbatenyo"] = "msb",
["Masela Barat"] = "mss",
["Masela Tengah"] = "mxz",
["Masela Timur"] = "vme",
["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",
["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",
["Mauwake"] = "mhl",
["Mav̋ea"] = "mkv",
["Mawa"] = "mcw",
["Mawak"] = "mjj",
["Mawan"] = "mcz",
["Mawayana"] = "mzx",
["Mawchi"] = "mke",
["Mawes"] = "mgk",
["Maxakalí"] = "mbl",
["Maxi Gbe"] = "mxl",
["Maya Epigrafi"] = "emy",
["Maya Mopan"] = "mop",
["Maya Samo"] = "sym",
["Maya Yucatec"] = "yua",
["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",
["Mazahua Michoacán"] = "mmc",
["Mazahua Tengah"] = "maz",
["Mazaltepec Zapotec"] = "zpy",
["Mazanderani"] = "mzn",
["Mazatec Chiquihuitlán"] = "maq",
["Mazatec Huautla"] = "mau",
["Mazatec Ixcatlán"] = "mzi",
["Mazatec Jalapa de Díaz"] = "maj",
["Mazatec San Jerónimo Tecóatl"] = "maa",
["Mazatec Soyaltepec"] = "vmp",
["Mazatlán Mazatec"] = "vmz",
["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",
["Mbembe Cross River"] = "mfn",
["Mbembe Tigon"] = "nza",
["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",
["Me'en"] = "mym",
["Mebu"] = "mjn",
["Medebur"] = "mjm",
["Medefaidrin"] = "dmf",
["Media Lengua"] = "mue",
["Median Kuno"] = "xme-old",
["Median Pertengahan"] = "xme-mid",
["Medumba"] = "byv",
["Mefele"] = "mfj",
["Megam"] = "mef",
["Megleno-Romania"] = "ruq",
["Mehek"] = "nux",
["Mehináku"] = "mmh",
["Mekeo"] = "mek",
["Mekmek"] = "mvk",
["Mekwei"] = "msf",
["Mekéns"] = "skf",
["Mel-Khaonh"] = "hkn",
["Melanau Daro-Matu"] = "dro",
["Melanau Sibu"] = "sdx",
["Melanau Tengah"] = "mel",
["Melayu"] = "ms",
["Melayu Ambon"] = "abs",
["Melayu Baba"] = "mbf",
["Melayu Bacan"] = "btj",
["Melayu Bali"] = "mhp",
["Melayu Barisan Selatan"] = "pse",
["Melayu Berau"] = "bve",
["Melayu Brunei"] = "kxd",
["Melayu Bukit"] = "bvu",
["Melayu Cheti"] = "ccm",
["Melayu Cocos"] = "coa",
["Melayu Jambi"] = "jax",
["Melayu Kedah"] = "meo",
["Melayu Kupang"] = "mkn",
["Melayu Kutai Kota Bangun"] = "mqg",
["Melayu Larantuka"] = "lrt",
["Melayu Makassar"] = "mfp",
["Melayu Maluku Utara"] = "max",
["Melayu Manado"] = "xmm",
["Melayu Negeri Sembilan"] = "zmi",
["Melayu Patani"] = "mfa",
["Melayu Sabah"] = "msi",
["Melayu Sarawak"] = "poz-sml",
["Melayu Sri Lanka"] = "sci",
["Melayu Terengganu"] = "poz-ter",
["Mele-Fila"] = "mxe",
["Melo"] = "mfx",
["Melpa"] = "med",
["Memoni"] = "mby",
["Mendankwe-Nkwen"] = "mfd",
["Mende (Sierra Leone)"] = "men",
["Mengaka"] = "xmg",
["Mengen"] = "mee",
["Menien"] = "sai-men",
["Menka"] = "mea",
["Menominee"] = "mez",
["Mentawai"] = "mwv",
["Menya"] = "mcr",
["Meohang Barat"] = "raf",
["Meohang Timur"] = "emg",
["Meoswar"] = "mvx",
["Mer"] = "mnu",
["Meramera"] = "mxm",
["Merei"] = "lmb",
["Merey"] = "meq",
["Meriam"] = "ulk",
["Meroe"] = "xmr",
["Meru"] = "mer",
["Mesaka"] = "iyo",
["Mese"] = "mci",
["Mesir Demotik"] = "egx-dem",
["Mesir Purba"] = "egy",
["Mesme"] = "zim",
["Mesmes"] = "mys",
["Mesqan"] = "mvz",
["Messapic"] = "cms",
["Meta'"] = "mgo",
["Mewari"] = "mtr",
["Mewati"] = "wtm",
["Meyah"] = "mej",
["Mezontla Popoloca"] = "pbe",
["Meänkieli"] = "fit",
["Mfinu"] = "zmf",
["Mfumte"] = "nfu",
["Mi'kmaq"] = "mic",
["Miami"] = "mia",
["Mian"] = "mpt",
["Miani"] = "pla",
["Miao Qiandong Selatan"] = "hms",
["Miao Qiandong Timur"] = "hmq",
["Miao Qiandong Utara"] = "hea",
["Miao Xiangxi Barat"] = "mmr",
["Miao Xiangxi Timur"] = "muq",
["Michif"] = "crg",
["Michigamea"] = "cmm",
["Mid Grand Valley Dani"] = "dnt",
["Mid-Southern Banda"] = "bjo",
["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 Decorse"] = "mis-mmd",
["Mimi Nachtigal"] = "mis-mmn",
["Min Datian"] = "nan-dat",
["Min Hailufeng"] = "nan-hlh",
["Min Longyan"] = "nan-lnx",
["Min Nan"] = "nan",
["Min Puxian"] = "cpx",
["Min Sanxiang"] = "nan-zsh",
["Min Tengah"] = "czo",
["Min Timur"] = "cdo",
["Min Utara"] = "mnp",
["Min Zhenan"] = "nan-zhe",
["Mina"] = "hna",
["Minaean"] = "inm",
["Minang"] = "xrg",
["Minangkabau"] = "min",
["Minaveha"] = "mvn",
["Minderico"] = "drc",
["Mindiri"] = "mpn",
["Mingang Doso"] = "mko",
["Mingo"] = "iro-min",
["Mingrelia"] = "xmf",
["Minica Huitoto"] = "hto",
["Minidien"] = "wii",
["Minigir"] = "vmg",
["Minjungbal"] = "xjb",
["Minkin"] = "xxm",
["Minoan"] = "omn",
["Minokok"] = "mqq",
["Minriq"] = "mnq",
["Mintil"] = "mzt",
["Miqie"] = "yiq",
["Mirandese"] = "mwl",
["Mire"] = "mvh",
["Mirgan"] = "zrg",
["Miriti"] = "mmv",
["Miriwoong"] = "mep",
["Mirpur Panjabi"] = "pmu",
["Misantla Totonac"] = "tlc",
["Miship"] = "mjs",
["Misima-Paneati"] = "mpx",
["Mising"] = "mrg",
["Miskito"] = "miq",
["Mittu"] = "mwu",
["Mituku"] = "zmq",
["Miu"] = "mpo",
["Miwa"] = "vmi",
["Miwok Pesisir"] = "csi",
["Miwok Sierra Selatan"] = "skd",
["Miwok Sierra Tengah"] = "csm",
["Miwok Sierra Utara"] = "nsq",
["Miwok Teluk"] = "mkq",
["Mixe Coatlán"] = "mco",
["Mixe Juquila"] = "mxq",
["Mixe Mazatlán"] = "mzl",
["Mixe Tanah Genting"] = "mir",
["Mixe Tengah Utara"] = "neq",
["Mixe Tlahuitoltepec"] = "mxp",
["Mixe Totontepec"] = "mto",
["Mixifore"] = "mfg",
["Mixtec Alacatlatzala"] = "mim",
["Mixtec Amoltepec"] = "mbz",
["Mixtec Apasco-Apoala"] = "mip",
["Mixtec Atatláhuca"] = "mib",
["Mixtec Ayutla"] = "miy",
["Mixtec Cacaloxtepec"] = "miu",
["Mixtec Chayuco"] = "mih",
["Mixtec Chigmecatitlán"] = "mii",
["Mixtec Coatzospan"] = "miz",
["Mixtec Cuyamecalco"] = "xtu",
["Mixtec Huitepec"] = "mxs",
["Mixtec Itundujia"] = "mce",
["Mixtec Ixtayutla"] = "vmj",
["Mixtec Jamiltepec"] = "mxt",
["Mixtec Juxtlahuaca"] = "vmc",
["Mixtec Magdalena Peñasco"] = "xtm",
["Mixtec Metlatónoc"] = "mxv",
["Mixtec Mitlatongo"] = "vmm",
["Mixtec Mixtepec"] = "mix",
["Mixtec Nochixtlán Tenggara"] = "mxy",
["Mixtec Oaxaca Barat Laut"] = "mxa",
["Mixtec Ocotepec"] = "mie",
["Mixtec Peñoles"] = "mil",
["Mixtec Pinotepa Nacional"] = "mio",
["Mixtec Puebla Selatan"] = "mit",
["Mixtec San Juan Colorado"] = "mjc",
["Mixtec San Miguel Piedras"] = "xtp",
["Mixtec San Miguel el Grande"] = "mig",
["Mixtec Santa Lucía Monteverde"] = "mdv",
["Mixtec Santa María Zacatepec"] = "mza",
["Mixtec Silacayoapan"] = "mks",
["Mixtec Sindihui"] = "xts",
["Mixtec Soyaltepec"] = "vmq",
["Mixtec Tacahua"] = "xtt",
["Mixtec Teposcolula"] = "omq-tel",
["Mixtec Tezoatlán"] = "mxb",
["Mixtec Tidaá"] = "mtx",
["Mixtec Tlaxiaco Barat Daya"] = "meh",
["Mixtec Tlaxiaco Utara"] = "xtn",
["Mixtec Tlazoyaltepec"] = "mqh",
["Mixtec Tututepec"] = "mtu",
["Mixtec Yoloxochitl"] = "xty",
["Mixtec Yosondúa"] = "mpm",
["Mixtec Yucuañe"] = "mvg",
["Mixtec Yutanduchi"] = "mab",
["Mixtepec Zapotec"] = "zpm",
["Miya"] = "mkf",
["Miyako"] = "mvi",
["Miyobe"] = "soy",
["Mizo"] = "lus",
["Mlabri"] = "mra",
["Mlahsö"] = "lhs",
["Mlap"] = "kja",
["Mlomp"] = "mlo",
["Mmaala"] = "mmu",
["Mmani"] = "buy",
["Mmen"] = "bfm",
["Mnong Selatan"] = "mnn",
["Mnong Tengah"] = "cmo",
["Mnong Timur"] = "mng",
["Mo"] = "wkd",
["Moabite"] = "obm",
["Moba"] = "mfq",
["Mobilia"] = "mod",
["Mobu"] = "ahm",
["Mocana"] = "sai-mcn",
["Mochi"] = "old",
["Mochica"] = "omc",
["Mocho"] = "mhc",
["Mocoví"] = "moc",
["Modang"] = "mxd",
["Modole"] = "mqo",
["Moere"] = "mvq",
["Mofu Utara"] = "mfk",
["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",
["Mokil"] = "mkj",
["Moklen"] = "mkm",
["Mokole"] = "mkl",
["Mokpwe"] = "bri",
["Moksha"] = "mdf",
["Molale"] = "mbe",
["Molbog"] = "pwm",
["Moldova Sign Language"] = "vsi",
["Molengue"] = "bxc",
["Molima"] = "mox",
["Molo"] = "zmo",
["Molof"] = "msl",
["Moloko"] = "mlw",
["Mom Jango"] = "ver",
["Moma"] = "myl",
["Momare"] = "msz",
["Mombo Dogon"] = "dmb",
["Mombum"] = "mso",
["Momina"] = "mmb",
["Momuna"] = "mqf",
["Mon"] = "mnw",
["Mon Kuno"] = "omx",
["Mon Pertengahan"] = "mkh-mmn",
["Mon Thailand"] = "mnw-tha",
["Mon Yangum"] = "ymo",
["Mondropolon"] = "npn",
["Mondé"] = "mnd",
["Mongghul"] = "mjg-mgl",
["Mongo"] = "lol",
["Mongol Khamnigan"] = "ykh",
["Mongol Klasik"] = "cmg",
["Mongol Pertengahan"] = "xng",
["Mongolia"] = "mn",
["Mongondow"] = "mog",
["Moni"] = "mnz",
["Mono (California)"] = "mnr",
["Mono (Cameroon)"] = "mru",
["Mono (Congo)"] = "mnh",
["Monom"] = "moo",
["Monpa Kalaktang"] = "kkf",
["Montagnais"] = "moe",
["Montol"] = "mtl",
["Monumbo"] = "mxk",
["Monzombo"] = "moj",
["Moo"] = "gwg",
["Mor (Austronesia)"] = "mhz",
["Mor (Papua)"] = "moq",
["Moraid"] = "msg",
["Moran"] = "tbq-mor",
["Morawa"] = "mze",
["Morerebi"] = "xmo",
["Moresada"] = "msx",
["Mori Atas"] = "mzq",
["Mori Bawah"] = "xmz",
["Morigi"] = "mdb",
["Moro"] = "mor",
["Morokodo"] = "mgc",
["Morom"] = "bdo",
["Moronene"] = "mqn",
["Morori"] = "mok",
["Morouas"] = "mrp",
["Mortlock"] = "mrl",
["Moru"] = "mgd",
["Mosimo"] = "mqv",
["Moskona"] = "mtj",
["Mossi"] = "mos",
["Mota"] = "mtt",
["Motembo"] = "tmv",
["Motu"] = "meu",
["Mouk-Aria"] = "mwh",
["Mouwase"] = "jmw",
["Movima"] = "mzp",
["Moyadan Itneg"] = "ity",
["Mozarab"] = "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",
["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",
["Muji Qila"] = "ymq",
["Muji Selatan"] = "ymc",
["Muji Utara"] = "ymx",
["Mukha-Dora"] = "mmk",
["Mukulu"] = "moz",
["Mulaha"] = "mfw",
["Mulam"] = "mlm",
["Mullu Kurumba"] = "kpb",
["Mullukmulluk"] = "mpb",
["Muluridyi"] = "vmu",
["Mum"] = "kqa",
["Mumuye"] = "mzm",
["Muna"] = "mnb",
["Munda"] = "unx",
["Mundabli"] = "boe",
["Mundang"] = "mua",
["Mundani"] = "mnf",
["Mundari"] = "unr",
["Mundat"] = "mmf",
["Mundolinco"] = "art-mun",
["Mundurukú"] = "myu",
["Mungaka"] = "mhk",
["Mungbam"] = "mij",
["Munggui"] = "mth",
["Mungkip"] = "mpv",
["Muniche"] = "myr",
["Munit"] = "mtc",
["Munji"] = "mnj",
["Munsee"] = "umu",
["Muong"] = "mtq",
["Mur Pano"] = "tkv",
["Muratayak"] = "asx",
["Muria Barat"] = "mut",
["Muria Barat Jauh"] = "fmu",
["Muria Timur"] = "emu",
["Murik (Malaysia)"] = "mxr",
["Murik (New Guinea)"] = "mtf",
["Murkim"] = "rmh",
["Murle"] = "mur",
["Murrinh-Patha"] = "mwf",
["Mursi"] = "muz",
["Murui Huitoto"] = "huu",
["Murupi"] = "mqw",
["Murut Keningau"] = "kxi",
["Murut Serudung"] = "srk",
["Murut Timugon"] = "tih",
["Muruwari"] = "zmu",
["Musan"] = "mmp",
["Musasa"] = "smm",
["Musey"] = "mse",
["Musgu"] = "mug",
["Musi"] = "mui",
["Muskum"] = "mje",
["Musom"] = "msu",
["Mussau-Emira"] = "emi",
["Muthuvan"] = "muv",
["Mutu"] = "tuc",
["Muya"] = "mvm",
["Muyang"] = "muy",
["Muyu Selatan"] = "kts",
["Muyu Utara"] = "kti",
["Muyuw"] = "myw",
["Muzi"] = "ymz",
["Muzo"] = "sai-muz",
["Mvanip"] = "mcj",
["Mvuba"] = "mxh",
["Mwaghavul"] = "sur",
["Mwakai"] = "mgt",
["Mwali Comorian"] = "wlc",
["Mwan"] = "moa",
["Mwani"] = "wmw",
["Mwatebu"] = "mwa",
["Mwera"] = "mwe",
["Mwerlap"] = "mrm",
["Mwimbi-Muthambi"] = "mws",
["Mwotlap"] = "mlv",
["Myene"] = "mye",
["Mysian"] = "yms",
["Mòcheno"] = "mhn",
["Mün Chin"] = "mwq",
["Mündü"] = "muh",
["Māori"] = "mi",
["Mạ"] = "cma",
["N'Ko"] = "nqo",
["Na"] = "nbt",
["Naaba"] = "nao",
["Naba"] = "mne",
["Nabak"] = "naf",
["Nabi"] = "mty",
["Nachering"] = "ncd",
["Nadruvia"] = "ndf",
["Nadëb"] = "mbj",
["Nafaanra"] = "nfr",
["Nafi"] = "srf",
["Nafri"] = "nxx",
["Naga Chokri"] = "nri",
["Naga Chothe"] = "nct",
["Naga Inpui"] = "nkf",
["Naga Khezha"] = "nkh",
["Naga Khiamniungan"] = "kix",
["Naga Khoibu"] = "nkb",
["Naga Konyak"] = "nbe",
["Naga Kyan-Karyaw"] = "nqq",
["Naga Lao"] = "nlq",
["Naga Liangmai"] = "njn",
["Naga Lotha"] = "njh",
["Naga Mao"] = "nbi",
["Naga Maram"] = "nma",
["Naga Maring"] = "nng",
["Naga Monsang"] = "nmh",
["Naga Moyon"] = "nmo",
["Naga Mzieme"] = "nme",
["Naga Pochuri"] = "npo",
["Naga Puimei"] = "npu",
["Naga Rengma Selatan"] = "nre",
["Naga Rengma Utara"] = "nnl",
["Naga Rongmei"] = "nbu",
["Naga Sangtam"] = "nsa",
["Naga Tangkhul"] = "nmf",
["Naga Thangal"] = "nki",
["Naga Zeme"] = "nzm",
["Nagarchal"] = "nbg",
["Nage"] = "nxe",
["Nagu"] = "ngr",
["Nagumi"] = "ngv",
["Nahali"] = "nlx",
["Nahari"] = "nhh",
["Nahavaq"] = "sns",
["Nahuatl"] = "nah",
["Nahuatl Coatepec"] = "naz",
["Nahuatl Cosoleacaque"] = "nhk",
["Nahuatl Durango Barat"] = "azn",
["Nahuatl Durango Timur"] = "azd",
["Nahuatl Guerrero"] = "ngu",
["Nahuatl Huasteca Barat"] = "nhw",
["Nahuatl Huasteca Tengah"] = "nch",
["Nahuatl Huasteca Timur"] = "nhe",
["Nahuatl Huaxcaleca"] = "nhq",
["Nahuatl Klasik"] = "nci",
["Nahuatl Mecayapan"] = "nhx",
["Nahuatl Michoacán"] = "ncl",
["Nahuatl Morelos"] = "nhm",
["Nahuatl Oaxaca Utara"] = "nhy",
["Nahuatl Ometepec"] = "nht",
["Nahuatl Orizaba"] = "nlv",
["Nahuatl Pajapan"] = "nhp",
["Nahuatl Puebla Tanah Tinggi"] = "azz",
["Nahuatl Puebla Tengah"] = "ncx",
["Nahuatl Puebla Tenggara"] = "npl",
["Nahuatl Puebla Utara"] = "ncj",
["Nahuatl Santa María La Alta"] = "nhz",
["Nahuatl Sierra Negra"] = "nsu",
["Nahuatl Tabasco"] = "nhc",
["Nahuatl Temascaltepec"] = "nhv",
["Nahuatl Tengah"] = "nhn",
["Nahuatl Tetelcingo"] = "nhg",
["Nahuatl Tlamacazapa"] = "nuz",
["Nahuatl Zacatlán-Ahuacatlán-Tepetzintla"] = "nhi",
["Nai"] = "bio",
["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",
["Nama"] = "nmx",
["Namakura"] = "nmk",
["Namat"] = "nkm",
["Nambikwara"] = "nab",
["Nambo"] = "ncm",
["Nambya"] = "nmq",
["Namia"] = "nnm",
["Namiae"] = "nvm",
["Namla"] = "naa",
["Namo"] = "mxw",
["Namonuito"] = "nmt",
["Namosi-Naitasiri-Serua"] = "bwb",
["Namuyi"] = "nmy",
["Nancere"] = "nnc",
["Nande"] = "nnb",
["Nandi"] = "niq",
["Nanerigé Sénoufo"] = "sen",
["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",
["Nauru"] = "na",
["Navajo"] = "nv",
["Navarro-Aragon Kuno"] = "roa-ona",
["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",
["Ndaka"] = "ndk",
["Ndali"] = "ndh",
["Ndam"] = "ndm",
["Ndamba"] = "ndj",
["Ndambomo"] = "nxo",
["Ndasa"] = "nda",
["Ndau"] = "ndc",
["Nde-Gbite"] = "ned",
["Nde-Nsele-Nta"] = "ndd",
["Ndebele Selatan"] = "nr",
["Ndebele Utara"] = "nd",
["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",
["Ndzwani Comorian"] = "wni",
["Neapolit"] = "nap",
["Nedebang"] = "nec",
["Nefamese"] = "nef",
["Nefusa"] = "jbn",
["Negerhollands"] = "dcr",
["Negidal"] = "neg",
["Nehan"] = "nsn",
["Nek"] = "nif",
["Nekgini"] = "nkg",
["Neko"] = "nej",
["Neku"] = "nek",
["Neme"] = "nex",
["Nemi"] = "nem",
["Nen"] = "nqn",
["Nend"] = "anh",
["Nenets Hutan"] = "yrk-for",
["Nenets Tundra"] = "yrk",
["Nengone"] = "nen",
["Neo"] = "neu",
["Neo-Aram Bohtan"] = "bhn",
["Neo-Aramia Assyria"] = "aii",
["Neo-Aramia Barat"] = "amw",
["Nepal"] = "ne",
["Nepal Kurux"] = "kxl",
["Nese"] = "poz-nes",
["Nete"] = "net",
["Neve'ei"] = "vnm",
["Neverver"] = "lgk",
["New Caledonian Javanese"] = "jas",
["Newar"] = "new",
["Newar Klasik"] = "nwc",
["Newar Pertengahan"] = "nwx",
["Neyo"] = "ney",
["Nez Perce"] = "nez",
["Nga La"] = "hlt",
["Ngaanyatjarra"] = "ntj",
["Ngad'a Timur"] = "nea",
["Ngadha"] = "nxg",
["Ngadjunmaya"] = "nju",
["Ngadjuri"] = "jui",
["Ngaiawang"] = "nwg",
["Ngaing"] = "nnf",
["Ngaju"] = "nij",
["Ngala"] = "nud",
["Ngalakan"] = "nig",
["Ngalkbun"] = "ngk",
["Ngalum"] = "szb",
["Ngam"] = "nmc",
["Ngamambo"] = "nbv",
["Ngambay"] = "sba",
["Ngamini"] = "nmv",
["Ngamo"] = "nbh",
["Ngan'gityemerri"] = "nam",
["Nganakarti"] = "xnk",
["Nganasan"] = "nio",
["Ngandi"] = "nid",
["Ngando (Congo)"] = "nxd",
["Ngando (Republik Afrika Tengah)"] = "ngd",
["Ngandyera"] = "nne",
["Ngantangarra"] = "ntg",
["Nganyaywana"] = "nyx",
["Ngardi"] = "rxd",
["Ngarigu"] = "xni",
["Ngarinman"] = "nbj",
["Ngarinyin"] = "ung",
["Ngarla"] = "nrk",
["Ngarluma"] = "nrl",
["Ngarrindjeri"] = "nay",
["Ngas"] = "anc",
["Ngasa"] = "nsg",
["Ngawun"] = "nxn",
["Ngbaka"] = "nga",
["Ngbaka Ma'bo"] = "nbm",
["Ngbaka Manza"] = "ngg",
["Ngbandi Selatan"] = "nbw",
["Ngbandi Utara"] = "ngb",
["Ngbee"] = "jgb",
["Ngbinda"] = "nbd",
["Ngbundu"] = "nuu",
["Ngelima"] = "agh",
["Ngemba"] = "nge",
["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 (Congo)"] = "ngc",
["Ngombe (Republik Afrika Tengah)"] = "nmj",
["Ngong"] = "nnx",
["Ngongo"] = "noq",
["Ngoni"] = "ngo",
["Ngoreme"] = "ngq",
["Ngoshie"] = "nsh",
["Ngulu"] = "ngp",
["Nguluwan"] = "nuw",
["Ngumbi"] = "nui",
["Ngunawal"] = "xul",
["Ngundi"] = "ndn",
["Ngundu"] = "nue",
["Ngungwel"] = "ngz",
["Ngurmbur"] = "nrx",
["Nguôn"] = "nuo",
["Ngwaba"] = "ngw",
["Ngwe"] = "nwe",
["Ngwi"] = "nlo",
["Ngwo"] = "ngn",
["Ngäbere"] = "gym",
["Nhanda"] = "nha",
["Nheengatu"] = "yrl",
["Nhirrpi"] = "hrp",
["Nhuwala"] = "nhf",
["Nias"] = "nia",
["Nicobar Selatan"] = "nik",
["Nicobar Tengah"] = "ncb",
["Nicola"] = "ath-nic",
["Nicoleño"] = "azc-nic",
["Niellim"] = "nie",
["Nihali"] = "nll",
["Nii"] = "nii",
["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",
["Ninzo"] = "nin",
["Nipsan"] = "nps",
["Nisa"] = "njs",
["Nisenan"] = "nsz",
["Nisga'a"] = "ncg",
["Nisi"] = "yso",
["Nisu Barat Laut"] = "nsf",
["Nisu Selatan"] = "nsd",
["Nisu Timur"] = "nos",
["Nisu Utara"] = "yiv",
["Niuafo'ou"] = "num",
["Niuatoputapu"] = "nkp",
["Niue"] = "niu",
["Nivaclé"] = "cag",
["Nivkh"] = "niv",
["Niwer Mil"] = "hrc",
["Njalgulgule"] = "njl",
["Njebi"] = "nzb",
["Njen"] = "njj",
["Njerep"] = "njr",
["Njyem"] = "njy",
["Nkami"] = "nkq",
["Nkangala"] = "nkn",
["Nkari"] = "nkz",
["Nkem-Nkum"] = "isi",
["Nkhumbi"] = "khu",
["Nkongho"] = "nkc",
["Nkonya"] = "nko",
["Nkoroo"] = "nkx",
["Nkoya"] = "nka",
["Nkukoli"] = "nbo",
["Nkutu"] = "nkw",
["Nnam"] = "nbp",
["Nobiin"] = "fia",
["Nocte"] = "njb",
["Nogai"] = "nog",
["Noipä"] = "npx",
["Noiri"] = "noi",
["Nokuku"] = "nkk",
["Nomaande"] = "lem",
["Nomane"] = "nof",
["Nomatsiguenga"] = "not",
["Nomlaki"] = "nol",
["Nomu"] = "noh",
["Nong Zhuang"] = "zhn",
["Nonuya"] = "noj",
["Nooksack"] = "nok",
["Noon"] = "snf",
["Noone"] = "nhu",
["Nootka"] = "nuk",
["Nopala Chatino"] = "cya",
["Noric"] = "nrc",
["Norman"] = "nrf",
["Norn"] = "nrn",
["Norra"] = "nrr",
["Norse Kuno"] = "non",
["Norway"] = "no",
["Norway Pengembara"] = "rmg",
["Norway Pertengahan"] = "gmq-mno",
["Nossob Bawah"] = "nsb",
["Notre"] = "bly",
["Notsi"] = "ncf",
["Nottoway"] = "ntw",
["Nottoway-Meherrin"] = "nwy",
["Novgorod Kuno"] = "zle-ono",
["Novial"] = "nov",
["Noy"] = "noy",
["Nsari"] = "asj",
["Nsenga"] = "nse",
["Nshi"] = "nsc",
["Nsong"] = "soo",
["Nsongo"] = "nsx",
["Ntcham"] = "bud",
["Ntomba"] = "nto",
["Ntra'ngith"] = "dgt",
["Nuaulu Selatan"] = "nxl",
["Nuaulu Utara"] = "nni",
["Nubaca"] = "baf",
["Nubi"] = "kcn",
["Nubia Kuno"] = "onw",
["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",
["Numee"] = "kdk",
["Numidia"] = "nxm",
["Nungali"] = "nug",
["Nunggubuyu"] = "nuy",
["Nungon"] = "paa-nun",
["Nungu"] = "rin",
["Nuni Selatan"] = "nnw",
["Nuni Utara"] = "nuv",
["Nuosu"] = "ii",
["Nupbikha"] = "npb",
["Nupe"] = "nup",
["Nusa Laut"] = "nul",
["Nusu"] = "nuf",
["Nutabe"] = "cba-nut",
["Nyabwa"] = "nwb",
["Nyagrong Minyag"] = "ero-nya",
["Nyah Kur"] = "cbn",
["Nyaheun"] = "nev",
["Nyakyusa"] = "nyy",
["Nyala Timur"] = "nle",
["Nyali"] = "nlj",
["Nyam"] = "nmi",
["Nyamal"] = "nly",
["Nyambo"] = "now",
["Nyamusa-Molo"] = "nwm",
["Nyamwanga"] = "mwn",
["Nyamwezi"] = "nym",
["Nyaneka"] = "nyk",
["Nyang'i"] = "nyp",
["Nyanga (Congo)"] = "nyj",
["Nyanga (Togo)"] = "ayg",
["Nyanga-li"] = "nyc",
["Nyangatom"] = "nnj",
["Nyangbo"] = "nyb",
["Nyangga"] = "nny",
["Nyangumarta"] = "nna",
["Nyankole"] = "nyn",
["Nyarafolo Senoufo"] = "sev",
["Nyaturu"] = "rim",
["Nyaw"] = "nyw",
["Nyawaygi"] = "nyt",
["Nyemba"] = "nba",
["Nyengo"] = "nye",
["Nyenkha"] = "neh",
["Nyeu"] = "nyl",
["Nyigina"] = "nyh",
["Nyiha"] = "nih",
["Nyika"] = "nkt",
["Nyimang"] = "nyi",
["Nyindrou"] = "lid",
["Nyindu"] = "nyg",
["Nyishi"] = "njz",
["Nyiyaparli"] = "xny",
["Nynorsk Norway"] = "nn",
["Nyokon"] = "nvo",
["Nyole (Kenya)"] = "nyd",
["Nyole (Uganda)"] = "nuj",
["Nyong"] = "muo",
["Nyoro"] = "nyo",
["Nyulnyul"] = "nyv",
["Nyunga"] = "nys",
["Nyungwe"] = "nyu",
["Nyâlayu"] = "yly",
["Nzadi"] = "nzd",
["Nzakambay"] = "nzy",
["Nzakara"] = "nzk",
["Nzanyi"] = "nja",
["Nzima"] = "nzi",
["Ná-Meo"] = "neo",
["Nùng"] = "nut",
["Nüpode Huitoto"] = "hux",
["Nǀuu"] = "ngh",
["O'chi'chi'"] = "xoc",
["O'du"] = "tyh",
["O'odham"] = "ood",
["Obanliku"] = "bzy",
["Obispeño"] = "obi",
["Oblo"] = "obl",
["Obo Manobo"] = "obo",
["Obokuitai"] = "afz",
["Obolo"] = "ann",
["Obulom"] = "obu",
["Ocaina"] = "oca",
["Occitan"] = "oc",
["Occitan Kuno"] = "pro",
["Od"] = "odk",
["Odia"] = "or",
["Odia Kuno"] = "inc-oor",
["Odia Pertengahan"] = "inc-mor",
["Odiai"] = "bhf",
["Odoodee"] = "kkc",
["Odual"] = "odu",
["Odut"] = "oda",
["Ofayé"] = "opy",
["Ofo"] = "ofo",
["Ogbah"] = "ogc",
["Ogbia"] = "ogb",
["Ogbogolo"] = "ogg",
["Ogbronuagum"] = "ogu",
["Ogea"] = "eri",
["Oghuz Awal Kuno"] = "trk-eog",
["Ohlone Selatan"] = "css",
["Ohlone Utara"] = "cst",
["Oirat Bertulis"] = "xwo",
["Oirata"] = "oia",
["Ojibwa Barat"] = "ojw",
["Ojibwa Barat Laut"] = "ojb",
["Ojibwa Tengah"] = "ojc",
["Ojibwa Timur"] = "ojg",
["Ojibwe"] = "oj",
["Ojitlán Chinantec"] = "chj",
["Okanagan"] = "oka",
["Oki-No-Erabu"] = "okn",
["Okiek"] = "oki",
["Okinawa"] = "ryu",
["Oko-Eni-Osayen"] = "oks",
["Oko-Juwoi"] = "okj",
["Okobo"] = "okb",
["Okodia"] = "okd",
["Okolod"] = "kqv",
["Okpamheri"] = "opa",
["Okpe (Edo Barat Daya)"] = "oke",
["Okpe (Edo Barat Laut)"] = "okx",
["Okpela"] = "atg",
["Oksapmin"] = "opm",
["Oku"] = "oku",
["Okwanuchu"] = "nai-okw",
["Olekha"] = "ole",
["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",
["Omi"] = "omi",
["Omok"] = "omk",
["Omotik"] = "omt",
["Omurano"] = "omu",
["One Inebu"] = "oin",
["One Molmo"] = "aun",
["One Selatan"] = "osu",
["One Utara"] = "onr",
["Oneida"] = "one",
["Ong"] = "oog",
["Ongota"] = "bxe",
["Onin"] = "oni",
["Onjob"] = "onj",
["Ono"] = "ons",
["Onobasulu"] = "onn",
["Onondaga"] = "ono",
["Ontenu"] = "ont",
["Oorlams"] = "oor",
["Opao"] = "opo",
["Opata"] = "opt",
["Opuuo"] = "lgn",
["Opón"] = "sai-opo",
["Orang Seletar"] = "ors",
["Oraon Sadri"] = "sdr",
["Orejón"] = "ore",
["Oring"] = "org",
["Oriya Adivasi"] = "ort",
["Orléanais"] = "roa-orl",
["Ormu"] = "orz",
["Ormuri"] = "oru",
["Oro"] = "orx",
["Oro Win"] = "orw",
["Oroch"] = "oac",
["Oroha"] = "ora",
["Orok"] = "oaa",
["Orokaiva"] = "okv",
["Oroko"] = "bdu",
["Orokolo"] = "oro",
["Oromo"] = "om",
["Oroqen"] = "orh",
["Orowe"] = "bpk",
["Oruma"] = "orr",
["Orya"] = "ury",
["Osage"] = "osa",
["Osamayi"] = "syx",
["Osatu"] = "ost",
["Osci"] = "osc",
["Osing"] = "osi",
["Ososo"] = "oso",
["Ossetia"] = "os",
["Ossetia Kuno"] = "oos",
["Ot Danum"] = "otd",
["Otank"] = "uta",
["Oti"] = "oti",
["Otomaco"] = "sai-oto",
["Otomi Estado de México"] = "ots",
["Otomi Ixtenco"] = "otz",
["Otomi Mezquital"] = "ote",
["Otomi Querétaro"] = "otq",
["Otomi Tanah Tinggi Timur"] = "otm",
["Otomi Temoaya"] = "ott",
["Otomi Tenango"] = "otn",
["Otomi Texcatepec"] = "otx",
["Otomi Tilapa"] = "otl",
["Otoro"] = "otr",
["Ottawa"] = "otw",
["Otuke"] = "otu",
["Ouma"] = "oum",
["Oune"] = "oue",
["Owa"] = "stn",
["Owenia"] = "wsr",
["Owiniga"] = "owi",
["Oy"] = "oyb",
["Oya'oya"] = "oyy",
["Oyda"] = "oyd",
["Ozumacín Chinantec"] = "chz",
["Pa"] = "ppt",
["Pa Di"] = "pdi",
["Pa'a"] = "pqa",
["Pa-Hng"] = "pha",
["Paama"] = "pma",
["Paasaal"] = "sig",
["Pacahuara"] = "pcp",
["Pacoh"] = "pac",
["Padoe"] = "pdo",
["Paelignian"] = "pgn",
["Paeonia"] = "ine-pae",
["Pagi"] = "pgi",
["Pagibete"] = "pae",
["Pagu"] = "pgu",
["Pahari-Potwari"] = "phr",
["Paharia Sawriya"] = "mjt",
["Pahi"] = "lgt",
["Pahlavani"] = "phv",
["Pai Tavytera"] = "pta",
["Paicî"] = "pri",
["Paikoneka"] = "awd-pai",
["Paipai"] = "ppi",
["Paite"] = "pck",
["Paiute Utara"] = "pao",
["Paiwan"] = "pwn",
["Pak-Tong"] = "pkg",
["Pakanha"] = "pkn",
["Paku"] = "pku",
["Pal"] = "abw",
["Palaic"] = "plq",
["Palaka Senoufo"] = "plr",
["Palantla Chinantec"] = "cpa",
["Palau"] = "pau",
["Palawano Barat Daya"] = "plv",
["Palawano Brooke's Point"] = "plw",
["Paleni"] = "pnl",
["Palenquero"] = "pln",
["Pali"] = "pi",
["Palikur"] = "plu",
["Paliyan"] = "pcf",
["Pallanganmiddang"] = "pmd",
["Palor"] = "fap",
["Palta"] = "sai-pal",
["Palu'e"] = "ple",
["Paluan"] = "plz",
["Palya Bareli"] = "bpx",
["Pam"] = "pmn",
["Pambia"] = "pmb",
["Pame Tengah"] = "pbs",
["Pame Utara"] = "pmq",
["Pamigua"] = "sai-pam",
["Pamlico"] = "pmk",
["Pamona"] = "pmf",
["Pamosu"] = "hih",
["Pana (Afrika Barat)"] = "pnq",
["Pana (Afrika Tengah)"] = "pnz",
["Panamint"] = "par",
["Panare"] = "pbh",
["Panará"] = "kre",
["Panasuan"] = "psn",
["Panawa"] = "pwb",
["Pancana"] = "pnp",
["Panchpargania"] = "tdb",
["Pande"] = "bkj",
["Pangasinan"] = "pag",
["Pangseng"] = "pgs",
["Pangutaran Sama"] = "slm",
["Pangwa"] = "pbr",
["Pangwali"] = "pgg",
["Panim"] = "pnr",
["Paniya"] = "pcg",
["Pankararé"] = "pax",
["Pankararú"] = "paz",
["Pankhu"] = "pkh",
["Pannei"] = "pnc",
["Panobo"] = "pno",
["Panyi Bai"] = "bfc",
["Panyjima"] = "pnw",
["Panzaleo"] = "sai-pnz",
["Pao"] = "ppa",
["Papantla Totonac"] = "top",
["Papapana"] = "ppn",
["Papar"] = "dpp",
["Papasena"] = "pas",
["Papel"] = "pbo",
["Papi"] = "ppe",
["Papiamentu"] = "pap",
["Papitalai"] = "pat",
["Papora"] = "ppu",
["Papuan Malay"] = "pmy",
["Papuma"] = "ppm",
["Para Naga"] = "pzn",
["Parachi"] = "prc",
["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",
["Parsi"] = "fa",
["Parsi Kuno"] = "peo",
["Parsi Pertengahan"] = "pal",
["Parthia"] = "xpr",
["Parya"] = "paq",
["Pashayi Barat Daya"] = "psh",
["Pashayi Tenggara"] = "psi",
["Pashayi Timur Laut"] = "aee",
["Pashto"] = "ps",
["Pasi"] = "psq",
["Pass Valley Yali"] = "yac",
["Pasé"] = "awd-pas",
["Patagón"] = "sai-ptg",
["Patamona"] = "pbc",
["Patani"] = "ptn",
["Pataxó Hã-Ha-Hãe"] = "pth",
["Patep"] = "ptp",
["Pathiya"] = "pty",
["Pattani"] = "lae",
["Pattapu"] = "ptq",
["Patwin"] = "pwi",
["Paulohi"] = "plh",
["Paumarí"] = "pad",
["Paunaca"] = "pnk",
["Pauri Bareli"] = "bfb",
["Pauserna"] = "psm",
["Pawaia"] = "pwa",
["Pawnee"] = "paw",
["Payaguá"] = "sai-pyg",
["Paynamar"] = "pmr",
["Pazeh"] = "pzh",
["Pe"] = "pai",
["Pear"] = "pcb",
["Peba"] = "sai-peb",
["Pech"] = "pay",
["Pecheneg"] = "xpc",
["Peerapper"] = "xpw",
["Peere"] = "pfe",
["Pei"] = "ppq",
["Pekal"] = "pel",
["Pela"] = "bxd",
["Pele-Ata"] = "ata",
["Pemon"] = "aoc",
["Penan Barat"] = "pne",
["Penan Timur"] = "pez",
["Penchal"] = "pek",
["Pendau"] = "ums",
["Pengo"] = "peg",
["Penobscot"] = "aaq",
["Penrhyn"] = "pnh",
["Pentlatch"] = "ptw",
["Perai"] = "wet",
["Peranakan Indonesian"] = "pea",
["Perancis"] = "fr",
["Perancis Kreol Karipúna"] = "kmv",
["Perancis Kreol Réunion"] = "rcf",
["Perancis Kreol San Miguel"] = "scf",
["Perancis Kuno"] = "fro",
["Perancis Pertengahan"] = "frm",
["Perema"] = "wom",
["Pericú"] = "nai-per",
["Pero"] = "pip",
["Petapa Zapotec"] = "zpe",
["Petats"] = "pex",
["Petjo"] = "pey",
["Phai"] = "prt",
["Phake"] = "phk",
["Phala"] = "ypa",
["Phalura"] = "phl",
["Phana'"] = "phq",
["Phangduwali"] = "phw",
["Phende"] = "pem",
["Phimbi"] = "phm",
["Phoenicia"] = "phn",
["Phola"] = "ypg",
["Pholo"] = "yip",
["Phom"] = "nph",
["Phong-Kniang"] = "pnx",
["Phrae Pwo"] = "kjt",
["Phrygia"] = "xpg",
["Phu Thai"] = "pht",
["Phuan"] = "phu",
["Phudagi"] = "phd",
["Phuie"] = "pug",
["Phukha"] = "phh",
["Phuma"] = "ypm",
["Phunoi"] = "pho",
["Phuong"] = "phg",
["Phupa"] = "ypp",
["Phupha"] = "yph",
["Phuthi"] = "bnt-phu",
["Phuza"] = "ypz",
["Piamatsina"] = "ptr",
["Piame"] = "pin",
["Piapoco"] = "pio",
["Piaroa"] = "pid",
["Picard"] = "pcd",
["Picene Utara"] = "nrp",
["Picenum Selatan"] = "spx",
["Pichinglis"] = "fpe",
["Pichis Ashéninka"] = "cpu",
["Pict"] = "xpi",
["Picuris"] = "nai-pic",
["Pidgin Basque-Iceland"] = "crp-bip",
["Pidgin Delaware"] = "dep",
["Pidgin Greenland Barat"] = "crp-gep",
["Pidgin Iha"] = "ihb",
["Pidgin Jerman Kiautschou"] = "crp-kia",
["Pidgin Ladang Samoa"] = "crp-spp",
["Pidgin Naga"] = "nag",
["Pidgin Ndyuka-Trio"] = "njt",
["Pidgin Onin"] = "onx",
["Pidgin Portugis Macau"] = "crp-mpp",
["Pidgin Rusia Taimyr"] = "crp-tpr",
["Pidgin Rusia-China"] = "crp-cpr",
["Piemonte"] = "pms",
["Pijao"] = "pij",
["Pije"] = "piz",
["Pijin"] = "pis",
["Pijin Cameroon"] = "wes",
["Pijin Nigeria"] = "pcm",
["Pilagá"] = "plg",
["Pileni"] = "piv",
["Pima Bajo"] = "pia",
["Pimbwe"] = "piw",
["Pinai-Hagahai"] = "pnn",
["Pingelapese"] = "pif",
["Pinghua Selatan"] = "csp",
["Pinghua Utara"] = "cnp",
["Pini"] = "pii",
["Pinigura"] = "pnv",
["Pinjarup"] = "pnj",
["Pinji"] = "pic",
["Pintiini"] = "pti",
["Pintupi-Luritja"] = "piu",
["Pinyin"] = "pny",
["Pipil"] = "ppl",
["Pirahã"] = "myp",
["Piratapuyo"] = "pir",
["Pirlatapa"] = "bxi",
["Piro"] = "pie",
["Pirriya"] = "xpa",
["Pisabo"] = "pig",
["Pisaflores Tepehua"] = "tpp",
["Piscataway"] = "psy",
["Pisidia"] = "xps",
["Pitcairn-Norfolk"] = "pih",
["Piti"] = "pcn",
["Pitjantjatjara"] = "pjt",
["Pitta-Pitta"] = "pit",
["Piu"] = "pix",
["Piya-Kwonci"] = "piy",
["Plains Cree"] = "crk",
["Plains Indian Sign Language"] = "psd",
["Plains Miwok"] = "pmw",
["Plapo Krumen"] = "ktj",
["Plautdietsch"] = "pdt",
["Pnar"] = "pbv",
["Pochutec"] = "xpo",
["Podoko"] = "pbi",
["Pogali"] = "hkh",
["Pogolo"] = "poy",
["Pohnpei"] = "pon",
["Poitevin-Saintongeais"] = "roa-poi",
["Pokangá"] = "pok",
["Poke"] = "pof",
["Pol"] = "pmm",
["Polabia"] = "pox",
["Poland"] = "pl",
["Poland Kuno"] = "zlw-opl",
["Polci"] = "plj",
["Polonombauk"] = "plb",
["Pom"] = "pmo",
["Pomo Selatan"] = "peq",
["Pomo Tengah"] = "poo",
["Pomo Tenggara"] = "pom",
["Pomo Timur"] = "peb",
["Pomo Timur Laut"] = "pef",
["Pomo Utara"] = "pej",
["Ponam"] = "ncc",
["Pongu"] = "png",
["Ponosakan"] = "pns",
["Ponyo"] = "npg",
["Poqomam"] = "poc",
["Poqomchi'"] = "poh",
["Porohanon"] = "prh",
["Port Sandwich"] = "psw",
["Port Sorell"] = "xpl",
["Port Vato"] = "ptv",
["Portugis"] = "pt",
["Portugis Kreol Korlai"] = "vkp",
["Potawatomi"] = "pot",
["Potiguára"] = "pog",
["Poumei Naga"] = "pmx",
["Pouye"] = "bye",
["Powari"] = "pwr",
["Powhatan"] = "pim",
["Poyanáwa"] = "pyn",
["Pra-Samnit"] = "itc-psa",
["Prakrit"] = "pra",
["Prakrit Ashoka"] = "inc-ash",
["Prakrit Kamarupi"] = "inc-kam",
["Prakrit Niya"] = "pra-niy",
["Prasuni"] = "prn",
["Primitive Irish"] = "pgl",
["Principe"] = "pre",
["Proto-Abkhaz-Abaza"] = "cau-abz-pro",
["Proto-Afroasiatik"] = "afa-pro",
["Proto-Albania"] = "sqj-pro",
["Proto-Algic"] = "aql-pro",
["Proto-Algonquian"] = "alg-pro",
["Proto-Amuesha-Chamicuro"] = "awd-amc-pro",
["Proto-Anatolia"] = "ine-ana-pro",
["Proto-Andaman Besar"] = "qfa-adm-pro",
["Proto-Andian"] = "cau-and-pro",
["Proto-Apachean"] = "apa-pro",
["Proto-Arawa"] = "auf-pro",
["Proto-Arawak"] = "awd-pro",
["Proto-Armenia"] = "hyx-pro",
["Proto-Arnhem"] = "aus-arn-pro",
["Proto-Aroid"] = "omv-aro-pro",
["Proto-Asli"] = "mkh-asl-pro",
["Proto-Atayalik"] = "map-ata-pro",
["Proto-Athabaskan"] = "ath-pro",
["Proto-Atlantik-Congo"] = "alv-pro",
["Proto-Austroasiatik"] = "aav-pro",
["Proto-Austronesia"] = "map-pro",
["Proto-Avaro-Andian"] = "cau-ava-pro",
["Proto-Bahnar"] = "mkh-ban-pro",
["Proto-Bai"] = "sit-bai-pro",
["Proto-Balto-Slav"] = "ine-bsl-pro",
["Proto-Bantoid"] = "nic-bod-pro",
["Proto-Bantu"] = "bnt-pro",
["Proto-Basque"] = "euq-pro",
["Proto-Batak"] = "btk-pro",
["Proto-Be"] = "qfa-onb-pro",
["Proto-Be-Tai"] = "qfa-bet-pro",
["Proto-Benue-Congo"] = "nic-bco-pro",
["Proto-Berber"] = "ber-pro",
["Proto-Binandere"] = "ngf-bin-pro",
["Proto-Bodish"] = "sit-bdi-pro",
["Proto-Bodo-Garo"] = "tbq-bdg-pro",
["Proto-Bongo-Bagirmi"] = "csu-bba-pro",
["Proto-Bora"] = "sai-bor-pro",
["Proto-Brythonic"] = "cel-bry-pro",
["Proto-Bua"] = "alv-bua-pro",
["Proto-Bungku-Tolaki"] = "poz-btk-pro",
["Proto-Burma"] = "tbq-brm-pro",
["Proto-Caddoan"] = "cdd-pro",
["Proto-Cangin"] = "alv-cng-pro",
["Proto-Carib"] = "sai-car-pro",
["Proto-Celtic"] = "cel-pro",
["Proto-Cerrado"] = "sai-cer-pro",
["Proto-Chadic"] = "cdc-pro",
["Proto-Chadic Tengah"] = "cdc-cbm-pro",
["Proto-Chamic"] = "cmc-pro",
["Proto-Chatino"] = "omq-cha-pro",
["Proto-Chibchan"] = "cba-pro",
["Proto-Chimakuan"] = "chi-pro",
["Proto-Chinook"] = "nai-ckn-pro",
["Proto-Chukotko-Kamchatka"] = "qfa-cka-pro",
["Proto-Chumash"] = "nai-chu-pro",
["Proto-Circassian"] = "cau-cir-pro",
["Proto-Cross River Atas"] = "nic-ucr-pro",
["Proto-Cross River Bawah"] = "nic-lcr-pro",
["Proto-Cupan"] = "azc-cup-pro",
["Proto-Cushitic"] = "cus-pro",
["Proto-Cushitic Selatan"] = "cus-sou-pro",
["Proto-Cushitic Timur Tanah Tinggi"] = "cus-hec-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-Dravidia"] = "dra-pro",
["Proto-Dravidia Selatan"] = "dra-sou-pro",
["Proto-Dravidia Selatan I"] = "dra-sdo-pro",
["Proto-Dravidia Selatan II"] = "dra-sdt-pro",
["Proto-Dravidia Tengah"] = "dra-cen-pro",
["Proto-Dravidia Utara"] = "dra-nor-pro",
["Proto-Edekiri"] = "alv-edk-pro",
["Proto-Edoid"] = "alv-edo-pro",
["Proto-Ersu"] = "sit-ers-pro",
["Proto-Eskimo"] = "esx-esk-pro",
["Proto-Eskimo-Aleut"] = "esx-pro",
["Proto-Fali"] = "alv-fli-pro",
["Proto-Filipina"] = "phi-pro",
["Proto-Finnik"] = "urj-fin-pro",
["Proto-Gbaya"] = "gba-pro",
["Proto-Gbe"] = "alv-gbe-pro",
["Proto-Georgia-Zan"] = "ccs-gzn-pro",
["Proto-Germanik"] = "gem-pro",
["Proto-Germanik Barat"] = "gmw-pro",
["Proto-Grassfields"] = "nic-grf-pro",
["Proto-Guang"] = "alv-gng-pro",
["Proto-Gur"] = "nic-gur-pro",
["Proto-Gurunsi"] = "nic-gns-pro",
["Proto-Halmahera Utara"] = "paa-nha-pro",
["Proto-Halmahera-Cenderawasih"] = "poz-hce-pro",
["Proto-Heiban"] = "alv-hei-pro",
["Proto-Hellenik"] = "grk-pro",
["Proto-Hlai"] = "qfa-lic-pro",
["Proto-Hmong-Mien"] = "hmx-pro",
["Proto-Hmongik"] = "hmn-pro",
["Proto-Hrusish"] = "sit-hrs-pro",
["Proto-Hurro-Urartia"] = "qfa-hur-pro",
["Proto-Idomoid"] = "alv-ido-pro",
["Proto-Igboid"] = "alv-igb-pro",
["Proto-Ijoid"] = "ijo-pro",
["Proto-Indo-Arya"] = "inc-pro",
["Proto-Indo-Eropah"] = "ine-pro",
["Proto-Indo-Iran"] = "iir-pro",
["Proto-Inuit"] = "esx-inu-pro",
["Proto-Iran"] = "ira-pro",
["Proto-Iroquois"] = "iro-pro",
["Proto-Iroquois Utara"] = "iro-nor-pro",
["Proto-Italik"] = "itc-pro",
["Proto-Iwaidjan"] = "aus-wdj-pro",
["Proto-Jebel Timur"] = "sdv-eje-pro",
["Proto-Jeponik"] = "jpx-pro",
["Proto-Jukunoid"] = "nic-jkn-pro",
["Proto-Jê"] = "sai-jee-pro",
["Proto-Jê Selatan"] = "sai-sje-pro",
["Proto-Jê Tengah"] = "sai-cje-pro",
["Proto-Jê Utara"] = "sai-nje-pro",
["Proto-Kadu"] = "qfa-kad-pro",
["Proto-Kalamian"] = "phi-kal-pro",
["Proto-Kalapuya"] = "nai-klp-pro",
["Proto-Kam-Sui"] = "qfa-kms-pro",
["Proto-Kampa"] = "awd-kmp-pro",
["Proto-Kamta"] = "inc-krd-pro",
["Proto-Karen"] = "kar-pro",
["Proto-Kartvelia"] = "ccs-pro",
["Proto-Katuik"] = "mkh-kat-pro",
["Proto-Kaukasia Barat Laut"] = "cau-nwc-pro",
["Proto-Kaukasia Timur Laut"] = "cau-nec-pro",
["Proto-Kham"] = "sit-kha-pro",
["Proto-Khanty"] = "kca-pro",
["Proto-Khasian"] = "aav-khs-pro",
["Proto-Khmer"] = "mkh-kmr-pro",
["Proto-Khmuik"] = "mkh-khm-pro",
["Proto-Kho-Bwa"] = "sit-khb-pro",
["Proto-Kho-Bwa Barat"] = "sit-khw-pro",
["Proto-Khoe"] = "khi-kho-pro",
["Proto-Koma"] = "ssa-kom-pro",
["Proto-Komisenia"] = "ira-kms-pro",
["Proto-Korea"] = "qfa-kor-pro",
["Proto-Kra"] = "qfa-kra-pro",
["Proto-Kra-Dai"] = "qfa-tak-pro",
["Proto-Kru"] = "kro-pro",
["Proto-Kuki-Chin"] = "tbq-kuk-pro",
["Proto-Kuliak"] = "ssa-klk-pro",
["Proto-Kurd"] = "ku-pro",
["Proto-Kwa"] = "alv-kwa-pro",
["Proto-Lalo"] = "tbq-lal-pro",
["Proto-Lampungik"] = "poz-lgx-pro",
["Proto-Lezghian"] = "cau-lzg-pro",
["Proto-Lolo"] = "tbq-lol-pro",
["Proto-Lolo-Burma"] = "tbq-lob-pro",
["Proto-Luish"] = "sit-luu-pro",
["Proto-Maidu"] = "nai-mdu-pro",
["Proto-Mande"] = "dmn-pro",
["Proto-Mande Barat"] = "dmn-mdw-pro",
["Proto-Mangbetu"] = "csu-maa-pro",
["Proto-Mansi"] = "mns-pro",
["Proto-Mari"] = "chm-pro",
["Proto-Masa"] = "cdc-mas-pro",
["Proto-Maya"] = "myn-pro",
["Proto-Mazatec"] = "omq-maz-pro",
["Proto-Medo-Parthia"] = "ira-mpr-pro",
["Proto-Melayik"] = "poz-mly-pro",
["Proto-Melayu-Chamic"] = "poz-mcm-pro",
["Proto-Melayu-Polenesia"] = "poz-pro",
["Proto-Melayu-Polenesia Tengah-Timur"] = "poz-cet-pro",
["Proto-Melayu-Polenesia Timur"] = "pqe-pro",
["Proto-Melayu-Sumbawa"] = "poz-msa-pro",
["Proto-Mienik"] = "hmx-mie-pro",
["Proto-Mikronesia"] = "poz-mic-pro",
["Proto-Min"] = "zhx-min-pro",
["Proto-Mixe-Zoque"] = "nai-miz-pro",
["Proto-Mixtec"] = "omq-mxt-pro",
["Proto-Mixtecan"] = "omq-mix-pro",
["Proto-Mon-Khmer"] = "mkh-pro",
["Proto-Mongolia"] = "xgn-pro",
["Proto-Monik"] = "mkh-mnc-pro",
["Proto-Mordvinik"] = "urj-mdv-pro",
["Proto-Mumuye"] = "alv-mum-pro",
["Proto-Munda"] = "mun-pro",
["Proto-Munji-Yidgha"] = "ira-mny-pro",
["Proto-Muskogi"] = "nai-mus-pro",
["Proto-Na-Dene"] = "xnd-pro",
["Proto-Naga Tengah"] = "sit-aao-pro",
["Proto-Naga Utara"] = "sit-kon-pro",
["Proto-Nahuan"] = "azc-nah-pro",
["Proto-Naish"] = "sit-nas-pro",
["Proto-Nakh"] = "cau-nkh-pro",
["Proto-Nawiki"] = "awd-nwk-pro",
["Proto-New South Wales Tengah"] = "aus-cww-pro",
["Proto-Nguni"] = "bnt-ngu-pro",
["Proto-Nicobarese"] = "aav-nic-pro",
["Proto-Niger-Congo"] = "nic-pro",
["Proto-Nilo-Sahara"] = "ssa-pro",
["Proto-Nilotik"] = "sdv-nil-pro",
["Proto-Norse"] = "gmq-pro",
["Proto-Nubia"] = "nub-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-Oceania"] = "poz-oce-pro",
["Proto-Ogoni"] = "nic-ogo-pro",
["Proto-Omotic"] = "omv-pro",
["Proto-Onga"] = "qfa-ong-pro",
["Proto-Oti-Volta"] = "nic-ovo-pro",
["Proto-Oti-Volta Timur"] = "nic-eov-pro",
["Proto-Oto-Manguean"] = "omq-pro",
["Proto-Oto-Pamean"] = "omq-otp-pro",
["Proto-Otomi"] = "oto-otm-pro",
["Proto-Otomian"] = "oto-pro",
["Proto-Pakanik"] = "mkh-pkn-pro",
["Proto-Palaungik"] = "mkh-pal-pro",
["Proto-Pama-Nyungan"] = "aus-pam-pro",
["Proto-Paresi-Waura"] = "awd-prw-pro",
["Proto-Pasifik Tengah"] = "poz-pcc-pro",
["Proto-Pathan"] = "ira-pat-pro",
["Proto-Pearik"] = "mkh-pea-pro",
["Proto-Permik"] = "urj-prm-pro",
["Proto-Plateau"] = "nic-plt-pro",
["Proto-Plateau Penutian"] = "nai-plp-pro",
["Proto-Pnar-Khasi-Lyngngam"] = "aav-pkl-pro",
["Proto-Polinesia"] = "poz-pol-pro",
["Proto-Polinesia Nukleus"] = "poz-pnp-pro",
["Proto-Polinesia Timur"] = "poz-pep-pro",
["Proto-Pomo"] = "nai-pom-pro",
["Proto-Puroik"] = "sit-khp-pro",
["Proto-Quechua"] = "qwe-pro",
["Proto-Rukai"] = "dru-pro",
["Proto-Ryukyu"] = "jpx-ryu-pro",
["Proto-Sabaki"] = "bnt-sab-pro",
["Proto-Saka"] = "xsc-sak-pro",
["Proto-Saka-Wakhi"] = "xsc-skw-pro",
["Proto-Salish"] = "sal-pro",
["Proto-Sami"] = "smi-pro",
["Proto-Samoyed"] = "syd-pro",
["Proto-Sanglechi-Ishkashimi"] = "ira-sgi-pro",
["Proto-Sara"] = "csu-sar-pro",
["Proto-Sarawak Utara"] = "poz-swa-pro",
["Proto-Sarmatia"] = "xsc-sar-pro",
["Proto-Scythia"] = "xsc-pro",
["Proto-Selkup"] = "sel-pro",
["Proto-Semitik"] = "sem-pro",
["Proto-Semitik Barat"] = "sem-wes-pro",
["Proto-Shughni-Roshani"] = "ira-shr-pro",
["Proto-Shughni-Yazghulami"] = "ira-shy-pro",
["Proto-Shughni-Yazghulami-Munji"] = "ira-sym-pro",
["Proto-Sino-Tibet"] = "sit-pro",
["Proto-Siouan"] = "sio-pro",
["Proto-Siouan-Catawba"] = "nai-sca-pro",
["Proto-Slav"] = "sla-pro",
["Proto-Sogdia"] = "ira-sgc-pro",
["Proto-Somaloid"] = "cus-som-pro",
["Proto-Songhai"] = "son-pro",
["Proto-Sotho-Tswana"] = "bnt-sts-pro",
["Proto-Sudan Tengah"] = "csu-pro",
["Proto-Sulawesi Selatan"] = "poz-ssw-pro",
["Proto-Ta-Arawak"] = "awd-taa-pro",
["Proto-Tai"] = "tai-pro",
["Proto-Tai Barat Daya"] = "tai-swe-pro",
["Proto-Takic"] = "azc-tak-pro",
["Proto-Taman"] = "sdv-tmn-pro",
["Proto-Tamang"] = "sit-tam-pro",
["Proto-Tangkhul"] = "sit-tng-pro",
["Proto-Tani"] = "sit-tan-pro",
["Proto-Taranoan"] = "sai-tar-pro",
["Proto-Tatik"] = "xme-ttc-pro",
["Proto-Tocharia"] = "ine-toc-pro",
["Proto-Togo Tengah"] = "alv-gtm-pro",
["Proto-Totozoquean"] = "nai-tot-pro",
["Proto-Trans-New Guinea"] = "ngf-pro",
["Proto-Triqui"] = "omq-tri-pro",
["Proto-Tsezian"] = "cau-tsz-pro",
["Proto-Tsimshianik"] = "nai-tsi-pro",
["Proto-Tungus"] = "tuw-pro",
["Proto-Tupi-Guarani"] = "tup-gua-pro",
["Proto-Tupia"] = "tup-pro",
["Proto-Turkik"] = "trk-pro",
["Proto-Ubangian"] = "nic-ubg-pro",
["Proto-Ugrik"] = "urj-ugr-pro",
["Proto-Uralik"] = "urj-pro",
["Proto-Utik"] = "nai-utn-pro",
["Proto-Uto-Aztecan"] = "azc-pro",
["Proto-Vietik"] = "mkh-vie-pro",
["Proto-Volta-Congo"] = "nic-vco-pro",
["Proto-Volta-Niger"] = "alv-von-pro",
["Proto-Witotoan"] = "sai-wit-pro",
["Proto-Yenisei"] = "qfa-yen-pro",
["Proto-Yoruba"] = "alv-yor-pro",
["Proto-Yoruboid"] = "alv-yrd-pro",
["Proto-Yukaghir"] = "qfa-yuk-pro",
["Proto-Yupik"] = "ypk-pro",
["Proto-Zapotec"] = "omq-zpc-pro",
["Proto-Zapotecan"] = "omq-zap-pro",
["Proto-Zaza-Gorani"] = "ira-zgr-pro",
["Prusia Kuno"] = "prg",
["Psikye"] = "kvj",
["Puare"] = "pux",
["Puebla Mazatec"] = "pbm",
["Puelche"] = "pue",
["Puinave"] = "pui",
["Puiron"] = "sit-prn",
["Pukapukan"] = "pkp",
["Pulabu"] = "pup",
["Pulau Bruny"] = "xpz",
["Pulau Flinders"] = "fln",
["Puluwat"] = "puw",
["Puma"] = "pum",
["Pumi Selatan"] = "pmj",
["Pumi Utara"] = "pmi",
["Pumpokol"] = "xpm",
["Pumé"] = "yae",
["Punan Aput"] = "pud",
["Punan Bah-Biau"] = "pna",
["Punan Batu"] = "pnm",
["Punan Merah"] = "puf",
["Punan Merap"] = "puc",
["Punan Tubu"] = "puj",
["Punik"] = "xpu",
["Punjabi"] = "pa",
["Punjabi Barat"] = "pnb",
["Punjabi Kuno"] = "inc-opa",
["Punu"] = "puu",
["Puoc"] = "puo",
["Puquina"] = "puq",
["Puragi"] = "pru",
["Purari"] = "iar",
["Purepecha"] = "pua",
["Puri"] = "prr",
["Purik"] = "prx",
["Purisimeño"] = "puy",
["Puruborá"] = "pur",
["Puruhá"] = "sai-prh",
["Purukotó"] = "sai-pur",
["Purum"] = "pub",
["Putai"] = "mfl",
["Putoh"] = "put",
["Putukwam"] = "afe",
["Puyo-Paekche"] = "xpp",
["Puyuma"] = "pyu",
["Pwaamei"] = "pme",
["Pwapwa"] = "pop",
["Pwo Barat"] = "pwo",
["Pwo Timur"] = "kjp",
["Pwo Utara"] = "pww",
["Pyapun"] = "pcw",
["Pye Krumen"] = "pye",
["Pyemmairre"] = "xpb",
["Pyen"] = "pyy",
["Pykobjê"] = "sai-pyk",
["Pyu"] = "pby",
["Páez"] = "pbb",
["Pááfang"] = "pfa",
["Päri"] = "lkr",
["Pémono"] = "pev",
["Pévé"] = "lme",
["Pökoot"] = "pko",
["Q'anjob'al"] = "kjb",
["Q'eqchi"] = "kek",
["Qabiao"] = "laq",
["Qaqet"] = "byx",
["Qatabanian"] = "xqt",
["Qiang Utara"] = "cng",
["Qibti"] = "cop",
["Qimant"] = "ahg",
["Quapaw"] = "qua",
["Quechua"] = "qu",
["Quechua Klasik"] = "qwc",
["Quenya"] = "qya",
["Quetzaltepec Mixe"] = "pxm",
["Queyu"] = "qvy",
["Quiavicuzas Zapotec"] = "zpj",
["Quileute"] = "qui",
["Quimbaya"] = "sai-qmb",
["Quinault"] = "qun",
["Quinigua"] = "nai-qng",
["Quinqui"] = "quq",
["Quioquitani-Quierí Zapotec"] = "ztq",
["Quiotepec Chinantec"] = "chq",
["Quiripi"] = "qyp",
["Quitemo"] = "sai-qtm",
["Rabha"] = "rah",
["Rabona"] = "sai-rab",
["Rade"] = "rad",
["Raetic"] = "xrr",
["Raga"] = "lml",
["Rahambuu"] = "raz",
["Rajasthan"] = "raj",
["Rajbanshi"] = "rjs",
["Raji"] = "rji",
["Rajong"] = "rjg",
["Rakahanga-Manihiki"] = "rkh",
["Rakhine"] = "rki",
["Ralte"] = "ral",
["Rama"] = "rma",
["Ramandi"] = "tks",
["Ramanos"] = "sai-ram",
["Ramoaaina"] = "rai",
["Ramopa"] = "kjx",
["Rampi"] = "lje",
["Rana Tharu"] = "thr",
["Rang"] = "rax",
["Rangkas"] = "rgk",
["Ranglong"] = "rnl",
["Rao"] = "rao",
["Rapa"] = "ray",
["Rapa Nui"] = "rap",
["Rapoisi"] = "kyx",
["Rapting"] = "rpt",
["Rara Bakati'"] = "lra",
["Rarotonga"] = "rar",
["Rasawa"] = "rac",
["Ratagnon"] = "btn",
["Ratahan"] = "rth",
["Rathawi"] = "rtw",
["Rathwi Bareli"] = "bgd",
["Raute"] = "rau",
["Ravula"] = "yea",
["Rawa"] = "rwo",
["Rawang"] = "raw",
["Rawat"] = "jnl",
["Rawo"] = "rwa",
["Rayón Zoque"] = "zor",
["Razajerdi"] = "rat",
["Razihi"] = "rzh",
["Reang"] = "ria",
["Reel"] = "atu",
["Rejang"] = "rej",
["Reli"] = "rei",
["Rema"] = "bow",
["Rembarunga"] = "rmb",
["Rembong"] = "reb",
["Remo"] = "rem",
["Rempi"] = "rmp",
["Remun"] = "lkj",
["Rendille"] = "rel",
["Rengao"] = "ren",
["Rennell"] = "mnv",
["Repanbitip"] = "rpn",
["Rer Bare"] = "rer",
["Rerau"] = "rea",
["Rerep"] = "pgk",
["Reshe"] = "res",
["Resígaro"] = "rgr",
["Retta"] = "ret",
["Reyesano"] = "rey",
["Riang"] = "ril",
["Riantana"] = "ran",
["Ribun"] = "rir",
["Rigwe"] = "iri",
["Rikbaktsa"] = "rkb",
["Ringgou"] = "rgu",
["Ririo"] = "rri",
["Ritarungo"] = "rit",
["Riung"] = "riu",
["Riverain Sango"] = "snj",
["Roglai Cacgia"] = "roc",
["Roglai Selatan"] = "rgs",
["Roglai Utara"] = "rog",
["Rogo"] = "rod",
["Rohingya"] = "rhg",
["Roma"] = "rmm",
["Romagnol"] = "rgn",
["Romam"] = "rmx",
["Romani"] = "rom",
["Romani Balkan"] = "rmn",
["Romani Baltik"] = "rml",
["Romani Carpathia"] = "rmc",
["Romani Finland Kalo"] = "rmf",
["Romani Sinte"] = "rmo",
["Romani Vlax"] = "rmy",
["Romani Wales"] = "rmw",
["Romania"] = "ro",
["Romano-Serbia"] = "rsb",
["Romanova"] = "rmv",
["Romansh"] = "rm",
["Romblomanon"] = "rol",
["Rombo"] = "rof",
["Romkun"] = "rmk",
["Ron"] = "cla",
["Ronga"] = "rng",
["Rongga"] = "ror",
["Rongpo"] = "rnp",
["Ronji"] = "roe",
["Roon"] = "rnn",
["Roria"] = "rga",
["Roro"] = "rro",
["Rotokas"] = "roo",
["Rotuma"] = "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",
["Rusia"] = "ru",
["Russenorsk"] = "crp-rsn",
["Rusyn"] = "rue",
["Rusyn Pannonia"] = "rsk",
["Ruthenian Kuno"] = "zle-ort",
["Rutul"] = "rut",
["Ruuli"] = "ruc",
["Ruwund"] = "rnd",
["Rwa"] = "rwk",
["Rwanda-Rundi"] = "rw",
["Sa"] = "sax",
["Sa'a"] = "apb",
["Sa'ban"] = "snv",
["Sa'och"] = "scq",
["Saafi-Saafi"] = "sav",
["Saam"] = "raq",
["Saamia"] = "lsm",
["Saanich"] = "str",
["Saare"] = "uss",
["Saaroa"] = "sxr",
["Saba"] = "saa",
["Sabaean"] = "xsa",
["Sabanê"] = "sae",
["Sabaot"] = "spy",
["Sabine"] = "sbv",
["Sabir"] = "pml",
["Sabu"] = "hvn",
["Sabüm"] = "sbo",
["Sacapulteco"] = "quv",
["Sadri"] = "sck",
["Saek"] = "skb",
["Saep"] = "spd",
["Safait"] = "sem-saf",
["Safaliba"] = "saf",
["Safeyoka"] = "apz",
["Safwa"] = "sbk",
["Sagala"] = "sbm",
["Sagalla"] = "tga",
["Sahaptin"] = "nai-spt",
["Saho"] = "ssy",
["Sahu"] = "saj",
["Saisiyat"] = "xsy",
["Sajau Basap"] = "sjb",
["Sakachep"] = "sch",
["Sakam"] = "skm",
["Sakao"] = "sku",
["Sakata"] = "skt",
["Sake"] = "sak",
["Sakizaya"] = "szy",
["Sala"] = "shq",
["Salako"] = "knx",
["Salampasu"] = "slx",
["Salar"] = "slr",
["Salas"] = "sgu",
["Salchuq"] = "slq",
["Saleman"] = "sau",
["Saliba (Colombia)"] = "slc",
["Saliba (New Guinea)"] = "sbe",
["Salinan"] = "sln",
["Salish Montana"] = "fla",
["Salish Puget Sound Selatan"] = "slh",
["Salt-Yui"] = "sll",
["Saluan"] = "loe",
["Salumá"] = "slj",
["Sam"] = "snx",
["Sama"] = "smd",
["Samal"] = "sem-sam",
["Samaritan Aramaic"] = "sam",
["Samarokena"] = "tmj",
["Samatao"] = "ysd",
["Samba"] = "smx",
["Sambal"] = "xsb",
["Sambalpuri"] = "spv",
["Sambe"] = "xab",
["Samberigi"] = "ssx",
["Samburu"] = "saq",
["Samei"] = "smh",
["Sami Akkala"] = "sia",
["Sami Inari"] = "smn",
["Sami Kemi"] = "sjk",
["Sami Kildin"] = "sjd",
["Sami Lule"] = "smj",
["Sami Pite"] = "sje",
["Sami Selatan"] = "sma",
["Sami Skolt"] = "sms",
["Sami Ter"] = "sjt",
["Sami Ume"] = "sju",
["Sami Utara"] = "se",
["Samo"] = "smq",
["Samo Selatan"] = "sbd",
["Samoa"] = "sm",
["Samogitia"] = "sgs",
["Samosa"] = "swm",
["Sampang"] = "rav",
["Samre"] = "sxm",
["Samtao"] = "stu",
["Samvedi"] = "smv",
["San Agustín Mixtepec Zapotec"] = "ztm",
["San Baltazar Loxicha Zapotec"] = "zpx",
["San Felipe Otlaltepec Popoloca"] = "pow",
["San Juan Atzingo Popoloca"] = "poe",
["San Juan Teita Mixtec"] = "xtj",
["San Luís Temalacayuca Popoloca"] = "pps",
["San Marcos Tlalcoyalco Popoloca"] = "pls",
["San Martín Itunyoso Triqui"] = "trq",
["San Pablo Güilá Zapotec"] = "ztu",
["San Pedro Quiatoni Zapotec"] = "zpf",
["San Vicente Coatlán Zapotec"] = "zpt",
["Sanapaná"] = "spn",
["Sanaviron"] = "sai-san",
["Sandawe"] = "sad",
["Sanga (Congo)"] = "sng",
["Sanga (Nigeria)"] = "xsn",
["Sanggau"] = "scg",
["Sangil"] = "snl",
["Sangir"] = "sxn",
["Sangisari"] = "sgr",
["Sangkong"] = "sgk",
["Sanglechi"] = "sgy",
["Sango"] = "sg",
["Sangu (Gabon)"] = "snq",
["Sangu (Tanzania)"] = "sbp",
["Sani"] = "ysn",
["Sanie"] = "ysy",
["Saniyo-Hiyewe"] = "sny",
["Sansi"] = "ssi",
["Sanskrit"] = "sa",
["Santa Catarina Albarradas Zapotec"] = "ztn",
["Santa Inés Ahuatempan Popoloca"] = "pca",
["Santa Inés Yatzechi Zapotec"] = "zpn",
["Santa María Quiegolani Zapotec"] = "zpi",
["Santa Teresa Cora"] = "cok",
["Santal"] = "sat",
["Santiago Xanica Zapotec"] = "zpr",
["Sanumá"] = "xsu",
["Sapa"] = "tys",
["Saparua"] = "spr",
["Sapará"] = "sai-sap",
["Sapo"] = "krn",
["Saponi"] = "spi",
["Saposa"] = "sps",
["Sapuan"] = "spu",
["Sapé"] = "spc",
["Sar"] = "mwm",
["Sara"] = "sre",
["Sara Kaba"] = "sbz",
["Sara Kaba Deme"] = "kwg",
["Sara Kaba Náà"] = "kwv",
["Saraiki"] = "skr",
["Saramaccan"] = "srm",
["Sarangani Blaan"] = "bps",
["Sarasira"] = "zsa",
["Saraveca"] = "sar",
["Sarazi"] = "inc-sar",
["Sardinia"] = "sc",
["Sarikoli"] = "srh",
["Sarli"] = "sdf",
["Sartang"] = "onp",
["Sarua"] = "swy",
["Sarudu"] = "sdu",
["Saruga"] = "sra",
["Sasak"] = "sas",
["Sasaru"] = "sxs",
["Sassari"] = "sdc",
["Satawal"] = "stw",
["Sateré-Mawé"] = "mav",
["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",
["Saxon Kuno"] = "osx",
["Saxon Transylvania"] = "gmw-tsx",
["Saxwe Gbe"] = "sxw",
["Saya"] = "say",
["Sayula Popoluca"] = "pos",
["Scanian"] = "gmq-scy",
["Schwaben Szatmár"] = "gmw-stm",
["Scots"] = "sco",
["Scots Pertengahan"] = "gmw-msc",
["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",
["Selkup Selatan"] = "sel-sou",
["Selkup Utara"] = "sel-nor",
["Selonia"] = "sxl",
["Selungai Murut"] = "slg",
["Seluwasan"] = "sws",
["Sema"] = "nsm",
["Semai"] = "sea",
["Semandang"] = "sdm",
["Semaq Beri"] = "szc",
["Sembakung Murut"] = "sbr",
["Semelai"] = "sza",
["Semimi"] = "etz",
["Semnam"] = "ssm",
["Semnani"] = "smy",
["Sempan"] = "xse",
["Sena"] = "seh",
["Senara Sénoufo"] = "seq",
["Senaya"] = "syn",
["Sene"] = "sej",
["Seneca"] = "see",
["Sengele"] = "szg",
["Senggi"] = "snu",
["Sengo"] = "spk",
["Sengseng"] = "ssz",
["Senhaja De Srair"] = "sjs",
["Sensi"] = "sni",
["Sentani"] = "set",
["Sentinel"] = "std",
["Sepa (Indonesia)"] = "spb",
["Sepa (New Guinea)"] = "spe",
["Sepanyol"] = "es",
["Sepanyol Kuno"] = "osp",
["Sepen"] = "spm",
["Sepik Iwam"] = "iws",
["Sera"] = "sry",
["Seranan"] = "srn",
["Serbo-Croatia"] = "sh",
["Sere"] = "swf",
["Serer"] = "srr",
["Seri"] = "sei",
["Serili"] = "sve",
["Seroa"] = "kqu",
["Serrano"] = "ser",
["Seru"] = "szd",
["Serua"] = "srw",
["Serui-Laut"] = "seu",
["Seta"] = "stf",
["Setaman"] = "stm",
["Seti"] = "sbi",
["Severn Ojibwa"] = "ojs",
["Sewa Bay"] = "sew",
["Seze"] = "sze",
["Sha"] = "scw",
["Shabak"] = "sdb",
["Shabo"] = "sbf",
["Shahmirzadi"] = "srz",
["Shahrudi"] = "shm",
["Shall-Zwall"] = "sha",
["Shama-Sambuga"] = "sqa",
["Shamang"] = "xsh",
["Shambala"] = "ksb",
["Shan"] = "shn",
["Shanenawa"] = "swo",
["Shanga"] = "sho",
["Shangzhai"] = "jih",
["Sharanahua"] = "mcd",
["Shark Bay"] = "ssv",
["Sharwa"] = "swq",
["Shasta"] = "sht",
["Shasta Sungai Baru"] = "nai-nrs",
["Shatt"] = "shj",
["Shau"] = "sqh",
["Shawnee"] = "sjw",
["She"] = "shx",
["Shebayo"] = "awd-she",
["Shehri"] = "shv",
["Shekkacho"] = "moy",
["Sheko"] = "she",
["Shelta"] = "sth",
["Shendu"] = "shl",
["Sheni"] = "scv",
["Sherbro"] = "bun",
["Sherdukpen"] = "sdp",
["Sherpa"] = "xsr",
["Sheshi Kham"] = "kip",
["Shi"] = "shr",
["Shilluk"] = "shk",
["Shina"] = "scl",
["Shinasha"] = "bwo",
["Shipibo-Conibo"] = "shp",
["Shixing"] = "sxg",
["Sholaga"] = "sle",
["Shom Peng"] = "sii",
["Shona"] = "sn",
["Shoo-Minda-Nye"] = "bcv",
["Shor"] = "cjs",
["Shoshone"] = "shh",
["Shua"] = "shg",
["Shuar"] = "jiv",
["Shuba"] = "cbq",
["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",
["Sicanian"] = "sxc",
["Sicel"] = "scx",
["Sichuan"] = "zhx-sic",
["Sicilia"] = "scn",
["Siculo-Arabic"] = "sqr",
["Sidamo"] = "sid",
["Sidetic"] = "xsd",
["Sie"] = "erg",
["Sierra Leone Sign Language"] = "sgx",
["Sighu"] = "sxe",
["Sihan"] = "snr",
["Sika"] = "ski",
["Sikaiana"] = "sky",
["Sikaritai"] = "tty",
["Sikiana"] = "sik",
["Sikkim"] = "sip",
["Sikule"] = "skh",
["Sila"] = "slt",
["Sileibi"] = "sbq",
["Silesia"] = "szl",
["Silimo"] = "wul",
["Siliput"] = "mkc",
["Silopi"] = "xsp",
["Silt'e"] = "stv",
["Simaa"] = "sie",
["Simba"] = "sbw",
["Simbali"] = "smg",
["Simbari"] = "smb",
["Simbo"] = "sbb",
["Simeku"] = "smz",
["Simeulue"] = "smr",
["Simte"] = "smt",
["Sinacantán"] = "nai-sin",
["Sinagen"] = "siu",
["Sinasina"] = "sst",
["Sinaugoro"] = "snc",
["Sindarin"] = "sjn",
["Sindhi"] = "sd",
["Sindhi Bhil"] = "sbn",
["Singa"] = "sgm",
["Singapore Sign Language"] = "sls",
["Singpho"] = "sgp",
["Sinhala"] = "si",
["Sinicahua Mixtec"] = "xti",
["Sininkere"] = "skq",
["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 Barat"] = "ssl",
["Sissala"] = "sld",
["Sissano"] = "sso",
["Situ"] = "sit-sit",
["Siuslaw"] = "sis",
["Sivandi"] = "siy",
["Siwai"] = "siw",
["Siwi"] = "siz",
["Siwu"] = "akp",
["Skagit"] = "ska",
["Skalvian"] = "svx",
["Ske"] = "ske",
["Skou"] = "skv",
["Slav Timur Kuno"] = "orv",
["Slavey Selatan"] = "xsl",
["Slavey Utara"] = "scs",
["Slavomolisano"] = "svm",
["Slavonic Gereja"] = "zls-chs",
["Slavonic Gereja Kuno"] = "cu",
["Slovak"] = "sk",
["Slovak Kuno"] = "zlw-osk",
["Slovakian Sign Language"] = "svk",
["Slovenia"] = "sl",
["Slovincian"] = "zlw-slv",
["Small Flowery Miao"] = "sfm",
["Smärky Kanum"] = "kxq",
["Snohomish"] = "sno",
["So'a"] = "ssq",
["Sobei"] = "sob",
["Sochiapam Chinantec"] = "cso",
["Soga"] = "xog",
["Sogdia"] = "sog",
["Sok"] = "skk",
["Sokna"] = "swn",
["Soko"] = "soc",
["Sokoro"] = "sok",
["Solano"] = "xso",
["Soli"] = "sby",
["Solombala English"] = "crp-slb",
["Solon"] = "tuw-sol",
["Solong"] = "aaw",
["Solos"] = "sol",
["Som"] = "smc",
["Somali"] = "so",
["Somba-Siawari"] = "bmu",
["Somra"] = "ntx",
["Somrai"] = "sor",
["Somray"] = "smu",
["Somyev"] = "kgt",
["Sonaga"] = "ysg",
["Sonde"] = "shc",
["Songe"] = "sop",
["Songomeno"] = "soe",
["Songoora"] = "sod",
["Sonha"] = "soi",
["Sonia"] = "siq",
["Soninke"] = "snk",
["Sonsorol"] = "sov",
["Soo"] = "teu",
["Sop"] = "urw",
["Soqotri"] = "sqt",
["Sora"] = "srb",
["Sorbia Atas"] = "hsb",
["Sori-Harengan"] = "sbh",
["Sorkhei"] = "sqo",
["Sorothaptic"] = "sxo",
["Sos Kundi"] = "sdk",
["Sota Kanum"] = "krz",
["Sotho"] = "st",
["Sotho Utara"] = "nso",
["Sou"] = "sqq",
["Sougb"] = "mnx",
["Southeast Babar"] = "vbb",
["Southeast Ijo"] = "ijs",
["Southeastern Ixtlán Zapotec"] = "zpd",
["Southern Pame"] = "pmz",
["Southern Qiang"] = "qxs",
["Southern Rincon Zapotec"] = "zsr",
["Sowa"] = "sww",
["Sowanda"] = "sow",
["Spanish Sign Language"] = "ssp",
["Spiti Bhoti"] = "spt",
["Spokane"] = "spo",
["Squamish"] = "squ",
["Sri Lankan Sign Language"] = "sqs",
["Stau"] = "ero-tau",
["Stod Bhoti"] = "sbu",
["Stoney"] = "sto",
["Suabo"] = "szp",
["Suarmin"] = "seo",
["Suau"] = "swp",
["Suba"] = "sxb",
["Suba-Simbiti"] = "ssc",
["Subanen Tengah"] = "syb",
["Subanen Utara"] = "stb",
["Subanon Barat"] = "suc",
["Subanun Lapuyan"] = "laa",
["Subi"] = "xsj",
["Subiya"] = "sbs",
["Subtiaba"] = "sut",
["Sudest"] = "tgo",
["Sudovian"] = "xsv",
["Suena"] = "sue",
["Suga"] = "sgi",
["Suganga"] = "sug",
["Sui"] = "swi",
["Suki"] = "sui",
["Suku"] = "sub",
["Sukuma"] = "suk",
["Sukur"] = "syk",
["Sukurum"] = "zsu",
["Sula"] = "szn",
["Sulka"] = "sua",
["Sulod"] = "srg",
["Suluk"] = "tsg",
["Sulung"] = "suv",
["Suma"] = "sqm",
["Sumariup"] = "siv",
["Sumau"] = "six",
["Sumbawa"] = "smw",
["Sumbwa"] = "suw",
["Sumeria"] = "sux",
["Sunam"] = "ssk",
["Sunda"] = "su",
["Sunda Kuno"] = "osn",
["Sungai"] = "dmg",
["Sungwadaga"] = "mwo",
["Sungwadia"] = "mrb",
["Sunum"] = "ymn",
["Sunwar"] = "suz",
["Suoy"] = "syo",
["Supyire"] = "spp",
["Sur"] = "tdl",
["Surbakhal"] = "sbj",
["Suri"] = "suq",
["Surigaonon"] = "sgd",
["Surjapuri"] = "sjp",
["Sursurunga"] = "sgz",
["Suruahá"] = "swx",
["Surubu"] = "sde",
["Suruí"] = "sru",
["Suruí Do Pará"] = "mdz",
["Suryani Klasik"] = "syc",
["Susquehannock"] = "sqn",
["Susu"] = "sus",
["Susuami"] = "ssu",
["Suundi"] = "sdj",
["Suwawa"] = "swu",
["Suyá"] = "suy",
["Svan"] = "sva",
["Swabia"] = "swg",
["Swahili"] = "sw",
["Swampy Cree"] = "csw",
["Swazi"] = "ss",
["Sweden"] = "sv",
["Sweden Kuno"] = "gmq-osw",
["Swedish Sign Language"] = "swl",
["Swiss-French Sign Language"] = "ssr",
["Swiss-German Sign Language"] = "sgg",
["Swiss-Italian Sign Language"] = "slf",
["Swo"] = "sox",
["Syenara Senoufo"] = "shz",
["Sylhet"] = "syl",
["Sácata"] = "sai-sac",
["Sãotomense"] = "cri",
["Sìcìté Sénoufo"] = "sep",
["Sô"] = "sss",
["T'en"] = "tct",
["Taabwa"] = "tap",
["Taba"] = "mky",
["Tabancale"] = "sai-tab",
["Tabaru"] = "tby",
["Tabasaran"] = "tab",
["Tabasco Chontal"] = "chf",
["Tabasco Zoque"] = "zoq",
["Tabla"] = "tnm",
["Tabo"] = "knv",
["Tabriak"] = "tzx",
["Tacana"] = "tna",
["Tachawit"] = "shy",
["Tadaksahak"] = "dsq",
["Tadyawan"] = "tdy",
["Tae'"] = "rob",
["Tafi"] = "tcd",
["Tafreshi"] = "xme-taf",
["Tagabawa"] = "bgs",
["Tagal Murut"] = "mvv",
["Tagalog"] = "tl",
["Tagbanwa"] = "tbw",
["Tagbanwa Tengah"] = "tgt",
["Tagbu"] = "tbm",
["Tagdal"] = "tda",
["Tagish"] = "tgx",
["Tagoi"] = "tag",
["Tagwana Senoufo"] = "tgw",
["Tahiti"] = "ty",
["Tahltan"] = "tht",
["Tai"] = "taw",
["Tai Daeng"] = "tyr",
["Tai Dam"] = "blt",
["Tai Do"] = "tyj",
["Tai Dón"] = "twh",
["Tai Hang Tong"] = "thc",
["Tai Hongjin"] = "tiz",
["Tai Laing"] = "tjl",
["Tai Loi"] = "tlq",
["Tai Long"] = "thi",
["Tai Nüa"] = "tdd",
["Tai Pao"] = "tpo",
["Tai Thanh"] = "tmm",
["Tai Ya"] = "cuu",
["Taikat"] = "aos",
["Tainae"] = "ago",
["Tairora Selatan"] = "omw",
["Tairora Utara"] = "tbg",
["Tairuma"] = "uar",
["Taishan"] = "zhx-tai",
["Taita"] = "dav",
["Taivoan"] = "tvx",
["Taje"] = "pee",
["Tajik"] = "tg",
["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",
["Tamang Barat"] = "tdg",
["Tamang Barat Daya"] = "tsf",
["Tamang Barat Laut"] = "tmk",
["Tamang Gorkha Timur"] = "tge",
["Tamang Timur"] = "taj",
["Tamazight Atlas Tengah"] = "tzm",
["Tamazola Mixtec"] = "vmx",
["Tambas"] = "tdk",
["Tambora"] = "xxt",
["Tambotalo"] = "tls",
["Tami"] = "tmy",
["Tamil"] = "ta",
["Tamil Kuno"] = "oty",
["Tamki"] = "tax",
["Tamnim Citak"] = "tml",
["Tampias Lobu"] = "low",
["Tampuan"] = "tpu",
["Tampulma"] = "tpm",
["Tanacross"] = "tcb",
["Tanahmerah"] = "tcm",
["Tanapag"] = "tpv",
["Tanchangya"] = "tnv",
["Tandaganon"] = "tgn",
["Tandia"] = "tni",
["Tanema"] = "tnx",
["Tangale"] = "tan",
["Tangam"] = "sit-tgm",
["Tanggu"] = "tgu",
["Tangko"] = "tkx",
["Tanglang"] = "ytl",
["Tangoa"] = "tgp",
["Tangsa"] = "nst",
["Tanguat"] = "tbs",
["Tangut"] = "txg",
["Tangwang"] = "mis-tnw",
["Tanimbili"] = "tbe",
["Tanimuca-Retuarã"] = "tnc",
["Tanjijili"] = "uji",
["Tanna Barat Daya"] = "nwi",
["Tanna Utara"] = "tnn",
["Taos"] = "twf",
["Tapachultec"] = "nai-tap",
["Taparita"] = "sai-tpr",
["Tapayuna"] = "sai-tap",
["Tapeba"] = "tbb",
["Tapei"] = "afp",
["Tapieté"] = "tpj",
["Tapirapé"] = "taf",
["Tar Gula"] = "kcm",
["Tara Baka"] = "bdh",
["Tarahumara Barat Daya"] = "twr",
["Tarahumara Tengah"] = "tar",
["Tarahumara Tenggara"] = "tcu",
["Tarahumara Utara"] = "thh",
["Tarairiú"] = "sai-trr",
["Tarangan Barat"] = "txn",
["Tarangan Timur"] = "tre",
["Tarantino"] = "roa-tar",
["Tarao"] = "tro",
["Taraon"] = "mhu",
["Tareng"] = "tgr",
["Tariana"] = "tae",
["Tarifit"] = "rif",
["Tarjumo"] = "txj",
["Tarok"] = "yer",
["Taroko"] = "trv",
["Tarpia"] = "tpf",
["Tartessian"] = "txr",
["Taruma"] = "tdm",
["Tasawaq"] = "twq",
["Tashelhit"] = "shi",
["Tasmania"] = "xtz",
["Tasmania Tenggara"] = "xpf",
["Tasmate"] = "tmt",
["Tat"] = "ttt",
["Tataltepec Chatino"] = "cta",
["Tatana"] = "txx",
["Tatar"] = "tt",
["Tatar Crimea"] = "crh",
["Tatar Siberia"] = "sty",
["Tataviam"] = "azc-tat",
["Tati Kuno"] = "xme-ott",
["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",
["Tawbuid Barat"] = "twb",
["Tawbuid Timur"] = "bnj",
["Taworta"] = "tbp",
["Tawoyan"] = "twy",
["Tay Khang"] = "tnu",
["Tayman"] = "sem-tay",
["Tayo"] = "cks",
["Taíno"] = "tnq",
["Tboli"] = "tbl",
["Tchitchege"] = "tck",
["Tchumbuli"] = "bqa",
["Te'un"] = "tve",
["Teanu"] = "tkw",
["Tebul Ure Dogon"] = "dtu",
["Tecpatlán Totonac"] = "tcw",
["Tedaga"] = "tuq",
["Tee"] = "tkq",
["Tefaro"] = "tfo",
["Tegali"] = "ras",
["Tehit"] = "kps",
["Tehuelche"] = "teh",
["Teiwa"] = "twe",
["Tejalapan Zapotec"] = "ztt",
["Teke Tengah"] = "nzu",
["Teke-Fuumu"] = "ifm",
["Teke-Kukuya"] = "kkw",
["Teke-Laali"] = "lli",
["Teke-Tege"] = "teg",
["Teke-Tsaayi"] = "tyi",
["Teke-Tyee"] = "tyx",
["Tektiteko"] = "ttc",
["Tela-Masbuar"] = "tvm",
["Telefol"] = "tlf",
["Telugu"] = "te",
["Telugu Kuno"] = "dra-ote",
["Teluk Malua"] = "mll",
["Teluti"] = "tlt",
["Tem"] = "kdh",
["Tembé"] = "tqb",
["Teme"] = "tdo",
["Temein"] = "teq",
["Temi"] = "soz",
["Temiar"] = "tea",
["Temne"] = "tem",
["Temoq"] = "tmo",
["Tempasuk Dusun"] = "tdu",
["Temuan"] = "tmw",
["Ten'edn"] = "tnz",
["Tene Kan Dogon"] = "dtk",
["Tenggarong Kutai Malay"] = "vkt",
["Tengger"] = "tes",
["Tenharim"] = "pah",
["Tenino"] = "tqn",
["Tenis"] = "tns",
["Tennet"] = "tex",
["Teochew"] = "nan-tws",
["Teop"] = "tio",
["Teor"] = "tev",
["Tepecano"] = "tep",
["Tepehua Huehuetla"] = "tee",
["Tepehuan Barat Daya"] = "tla",
["Tepehuan Tenggara"] = "stp",
["Tepehuan Utara"] = "ntp",
["Tepetotutla Chinantec"] = "cnt",
["Tepeuxila Cuicatec"] = "cux",
["Tepinapa Chinantec"] = "cte",
["Tepo Krumen"] = "ted",
["Tequistlatec"] = "nai-teq",
["Tera"] = "ttr",
["Terebu"] = "trb",
["Terei"] = "buo",
["Tereno"] = "ter",
["Teressa"] = "tef",
["Tereweng"] = "twg",
["Teribe"] = "tfr",
["Terik"] = "tec",
["Termanu"] = "twu",
["Ternate"] = "tft",
["Ternateño"] = "tmg",
["Tese"] = "keg",
["Teshenawa"] = "twc",
["Tetela"] = "tll",
["Tetete"] = "teb",
["Tetserret"] = "tez",
["Tetum"] = "tet",
["Tetun Dili"] = "tdt",
["Teushen"] = "sai-teu",
["Teutila Cuicatec"] = "cut",
["Tewa"] = "tew",
["Texistepec Popoluca"] = "poq",
["Texmelucan Zapotec"] = "zpz",
["Tha"] = "thy",
["Thachanadan"] = "thn",
["Thai"] = "th",
["Thai Selatan"] = "sou",
["Thai Song"] = "soa",
["Thai Utara"] = "nod",
["Thakali"] = "ths",
["Thamud"] = "sem-tha",
["Thangmi"] = "thf",
["Thao"] = "ssf",
["Tharaka"] = "thk",
["Tharrgari"] = "dhr",
["Thavung"] = "thm",
["Thawa"] = "xtv",
["Tho"] = "tou",
["Thompson"] = "thp",
["Thopho"] = "ytp",
["Thracian"] = "txh",
["Thu Lao"] = "tyl",
["Thulung"] = "tdh",
["Thurawal"] = "tbh",
["Thuri"] = "thu",
["Tiagba"] = "ahi",
["Tiale"] = "mnl",
["Tiang"] = "tbj",
["Tibea"] = "ngy",
["Tibet"] = "bo",
["Tibet Klasik"] = "xct",
["Tibet Kuno"] = "otb",
["Ticuna"] = "tca",
["Tidore"] = "tvo",
["Tidung Selatan"] = "itd",
["Tidung Utara"] = "ntd",
["Tiemacèwè Bozo"] = "boo",
["Tiene"] = "tii",
["Tifal"] = "tif",
["Tigak"] = "tgc",
["Tigre"] = "tig",
["Tigrinya"] = "ti",
["Tii"] = "txq",
["Tijaltepec Mixtec"] = "xtl",
["Tikar"] = "tik",
["Tikopia"] = "tkp",
["Tillamook"] = "til",
["Tilquiapan Zapotec"] = "zts",
["Tilung"] = "tij",
["Tima"] = "tms",
["Timbe"] = "tim",
["Timor Pidgin"] = "tvy",
["Timote"] = "sai-tim",
["Timucua"] = "tjm",
["Tinagas Kota Marudu"] = "ktr",
["Tinani"] = "lbf",
["Tindi"] = "tin",
["Tingui-Boto"] = "tgv",
["Tinigua"] = "tit",
["Tinoc Kallahan"] = "tne",
["Tinputz"] = "tpz",
["Tipai"] = "nai-tip",
["Tippera"] = "tpe",
["Tira"] = "tic",
["Tirahi"] = "tra",
["Tiranige Diga Dogon"] = "tde",
["Tirax"] = "mme",
["Tircul"] = "pyx",
["Tiri"] = "cir",
["Tiruray"] = "tiy",
["Tita"] = "tdq",
["Titan"] = "ttv",
["Tiv"] = "tiv",
["Tiwa"] = "lax",
["Tiwa Selatan"] = "tix",
["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",
["Tlapanec Malinaltepec"] = "tcf",
["Tlingit"] = "tli",
["To"] = "toz",
["To'abaita"] = "mlu",
["Toaripi"] = "tqo",
["Toba"] = "tob",
["Toba-Maskoy"] = "tmf",
["Tobanga"] = "tng",
["Tobati"] = "tti",
["Tobelo"] = "tlb",
["Tobian"] = "tox",
["Tobilung"] = "tgb",
["Tobo"] = "tbv",
["Tocharia A"] = "xto",
["Tocharia B"] = "txb",
["Tocho"] = "taz",
["Toda"] = "tcx",
["Todrah"] = "tdr",
["Tofa"] = "kim",
["Tofanma"] = "tlg",
["Tofin Gbe"] = "tfi",
["Togbo-Vara Banda"] = "tor",
["Togoyo"] = "tgy",
["Tojolabal"] = "toj",
["Tok Pisin"] = "tpi",
["Toka-Leya"] = "dov",
["Tokano"] = "zuh",
["Tokelau"] = "tkl",
["Toki Pona"] = "tok",
["Toku-No-Shima"] = "tkn",
["Tol"] = "jic",
["Tolai"] = "ksd",
["Tolaki"] = "lbw",
["Tolomako"] = "tlm",
["Tolowa"] = "tol",
["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"] = "to",
["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",
["Torricelli"] = "tei",
["Torricelli Yau"] = "yyu",
["Torwali"] = "trw",
["Torá"] = "trz",
["Tosu"] = "sit-tos",
["Totela"] = "ttl",
["Toto"] = "txo",
["Totoli"] = "txe",
["Totomachapan Zapotec"] = "zph",
["Totonac Barat"] = "tqt",
["Totoro"] = "ttk",
["Touo"] = "tqu",
["Toura"] = "neb",
["Toussiana Selatan"] = "wib",
["Toussiana Utara"] = "tsp",
["Towei"] = "ttn",
["Translingual"] = "mul",
["Traveller Scottish"] = "trl",
["Tregami"] = "trm",
["Tremembé"] = "tme",
["Trieng"] = "stg",
["Trimuris"] = "tip",
["Tring"] = "tgq",
["Tringgus"] = "trx",
["Trinitario"] = "trn",
["Tripuri Awal"] = "xtr",
["Trió"] = "tri",
["Truká"] = "tka",
["Trumai"] = "tpy",
["Ts'ün-Lao"] = "tsl",
["Tsaangi"] = "tsa",
["Tsafiki"] = "cof",
["Tsakhur"] = "tkr",
["Tsakonian"] = "tsd",
["Tsakwambo"] = "kvz",
["Tsamai"] = "tsb",
["Tsat"] = "huq",
["Tsetsaut"] = "txc",
["Tsez"] = "ddo",
["Tshangla"] = "tsj",
["Tshobdun"] = "sit-tsh",
["Tshwa"] = "hio",
["Tsikimba"] = "kdl",
["Tsimané"] = "cas",
["Tsimshian"] = "tsi",
["Tsishingini"] = "tsw",
["Tso"] = "ldp",
["Tsogo"] = "tsv",
["Tsonga"] = "ts",
["Tsotsitaal"] = "fly",
["Tsou"] = "tsu",
["Tsum"] = "ttz",
["Tsuut'ina"] = "srs",
["Tsuvadi"] = "tvd",
["Tsuvan"] = "tsh",
["Tswa"] = "tsc",
["Tswana"] = "tn",
["Tswapong"] = "two",
["Tuamotuan"] = "pmt",
["Tuareg"] = "tmh",
["Tubar"] = "tbu",
["Tucano"] = "tuo",
["Tugen"] = "tuy",
["Tugun"] = "tzn",
["Tugutil"] = "tuj",
["Tuhua Shaozhou"] = "zhx-sht",
["Tujia Selatan"] = "tjs",
["Tujia Utara"] = "tji",
["Tukang Besi Selatan"] = "bhq",
["Tukang Besi Utara"] = "khc",
["Tuki"] = "bag",
["Tukpa"] = "tpq",
["Tukudede"] = "tkd",
["Tukumanféd"] = "tkf",
["Tula"] = "tul",
["Tulehu"] = "tlu",
["Tulishi"] = "tey",
["Tulu"] = "tcy",
["Tulu-Bohuai"] = "rak",
["Tulua"] = "aus-tul",
["Tuma-Irumu"] = "iou",
["Tumak"] = "tmc",
["Tumbuka"] = "tum",
["Tumi"] = "kku",
["Tumleo"] = "tmq",
["Tumshuq"] = "xtq",
["Tumtum"] = "tbr",
["Tumulung Sisaala"] = "sil",
["Tunebo Barat"] = "tnb",
["Tunebo Tengah"] = "tuf",
["Tunen"] = "tvu",
["Tungag"] = "lcm",
["Tunggare"] = "trt",
["Tunia"] = "tug",
["Tunica"] = "tun",
["Tunjung"] = "tjg",
["Tunni"] = "tqq",
["Tunumiisut"] = "esx-tut",
["Tunzu"] = "dza",
["Tuoba"] = "mis-tuo",
["Tuotomb"] = "ttf",
["Tuparí"] = "tpr",
["Tupi Kuno"] = "tpw",
["Tupinambá"] = "tpn",
["Tupinikin"] = "tpk",
["Tupuri"] = "tui",
["Turaka"] = "trh",
["Turdetania"] = "mis-tdt",
["Turdulia"] = "mis-tdl",
["Turi"] = "trd",
["Turiwára"] = "twt",
["Turk Kuno"] = "otk",
["Turka"] = "tuz",
["Turkana"] = "tuv",
["Turki"] = "tr",
["Turki Anatolia Kuno"] = "trk-oat",
["Turki Khorasan"] = "kmz",
["Turki Usmaniyah"] = "ota",
["Turkmen"] = "tk",
["Turoyo"] = "tru",
["Turumsa"] = "tqm",
["Turung"] = "try",
["Tuscarora"] = "tus",
["Tutchone Selatan"] = "tce",
["Tutchone Utara"] = "ttm",
["Tutelo"] = "tta",
["Tutong"] = "ttg",
["Tutsa Naga"] = "tvt",
["Tutuba"] = "tmi",
["Tututni"] = "tuu",
["Tuva"] = "tyv",
["Tuvalu"] = "tvl",
["Tuwali Ifugao"] = "ifk",
["Tuwari"] = "tww",
["Tuwuli"] = "bov",
["Tuxináwa"] = "tux",
["Tuxá"] = "tud",
["Tuyuca"] = "tue",
["Tuyuhun"] = "mis-tuh",
["Twana"] = "twa",
["Twendi"] = "twn",
["Tyap"] = "kcg",
["Tyaraity"] = "woa",
["Tyerrernotepanner"] = "xph",
["Tz'utujil"] = "tzj",
["Tzeltal"] = "tzh",
["Tzotzil"] = "tzo",
["Tày"] = "tyz",
["Tày Tac"] = "tyt",
["Tây Bồi"] = "tas",
["Téén"] = "lor",
["Tübatulabal"] = "tub",
["U"] = "uuu",
["Uab Meto"] = "aoz",
["Uamué"] = "uam",
["Uare"] = "ksj",
["Ubaghara"] = "byc",
["Ubang"] = "uba",
["Ubi"] = "ubi",
["Ubir"] = "ubr",
["Ubykh"] = "uby",
["Ucayali-Yurúa Ashéninka"] = "cpb",
["Uda"] = "uda",
["Udi"] = "udi",
["Udihe"] = "ude",
["Udmurt"] = "udm",
["Uduk"] = "udu",
["Ufim"] = "ufi",
["Ugandan Sign Language"] = "ugn",
["Ugarit"] = "uga",
["Ughele"] = "uge",
["Uhami"] = "uha",
["Uisai"] = "uis",
["Ujir"] = "udj",
["Ukaan"] = "kcf",
["Ukhwejo"] = "ukh",
["Ukit"] = "umi",
["Ukpe-Bayobiri"] = "ukp",
["Ukpet-Ehom"] = "akd",
["Ukraine"] = "uk",
["Ukrainian Sign Language"] = "ukl",
["Ukue"] = "uku",
["Ukuriguma"] = "ukg",
["Ukwa"] = "ukq",
["Ukwuani-Aboh-Ndoni"] = "ukw",
["Ulau-Suain"] = "svb",
["Ulch"] = "ulc",
["Uldeme"] = "udl",
["Ulithian"] = "uli",
["Ullatan"] = "ull",
["Ulumanda'"] = "ulm",
["Ulwa"] = "ulw",
["Uma"] = "ppk",
["Uma' Lasan"] = "xky",
["Uma' Lung"] = "ulu",
["Umatilla"] = "uma",
["Umbindhamu"] = "umd",
["Umbri"] = "xum",
["Umbu-Ungu"] = "ubu",
["Umbugarla"] = "umr",
["Umbundu"] = "umb",
["Umbuygamu"] = "umg",
["Umeda"] = "upi",
["Umiida"] = "xud",
["Umon"] = "umm",
["Umotína"] = "umo",
["Umpila"] = "ump",
["Una"] = "mtg",
["Unami"] = "unm",
["Unde Kaili"] = "unz",
["Uneapa"] = "bbn",
["Uneme"] = "une",
["Unggaranggu"] = "xun",
["Unggumi"] = "xgu",
["Unserdeutsch"] = "uln",
["Unua"] = "onu",
["Unubahe"] = "unu",
["Uokha"] = "uok",
["Upper Chehalis"] = "cjh",
["Upper Grand Valley Dani"] = "dna",
["Upper Kuskokwim"] = "kuu",
["Upper Necaxa Totonac"] = "tku",
["Upper Ta'oih"] = "tth",
["Upper Tanana"] = "tau",
["Upper Taromi"] = "tov",
["Upper Umpqua"] = "xup",
["Ura (Papua New Guinea)"] = "uro",
["Ura (Vanuatu)"] = "uur",
["Uradhi"] = "urf",
["Urak Lawoi'"] = "urk",
["Urali"] = "url",
["Urapmin"] = "urm",
["Urarina"] = "ura",
["Urartian"] = "xur",
["Urat"] = "urt",
["Urdu"] = "ur",
["Urhobo"] = "urh",
["Uri"] = "uvh",
["Urigina"] = "urg",
["Urim"] = "uri",
["Urimo"] = "urx",
["Urningangg"] = "urc",
["Uru"] = "ure",
["Uru-Eu-Wau-Wau"] = "urz",
["Uru-Pa-In"] = "urp",
["Uruangnirin"] = "urn",
["Uruava"] = "urv",
["Urubú-Kaapor"] = "urb",
["Uruguayan Sign Language"] = "ugy",
["Urum"] = "uum",
["Urumi"] = "uru",
["Usaghade"] = "usk",
["Usan"] = "wnu",
["Usarufa"] = "usa",
["Ushojo"] = "ush",
["Usila Chinantec"] = "cuc",
["Uspanteco"] = "usp",
["Usui"] = "usi",
["Utarmbung"] = "omo",
["Ute"] = "ute",
["Utu"] = "utu",
["Uvbie"] = "evh",
["Uvea Barat"] = "uve",
["Uwinymil"] = "aus-uwi",
["Uya"] = "usu",
["Uyajitaya"] = "duk",
["Uyghur"] = "ug",
["Uyghur Kuno"] = "oui",
["Uzbek"] = "uz",
["Uzekwe"] = "eze",
["Vaagri Booli"] = "vaa",
["Vaghri"] = "vgr",
["Vaghua"] = "tva",
["Vagla"] = "vag",
["Vai"] = "vai",
["Vaie"] = "bny",
["Vaiphei"] = "vap",
["Vale"] = "vae",
["Valencian Sign Language"] = "vsv",
["Valle Nacional Chinantec"] = "cvn",
["Valley Maidu"] = "vmv",
["Valman"] = "van",
["Valpei"] = "vlp",
["Valyrian Tinggi"] = "art-vlh",
["Vamale"] = "mkt",
["Vame"] = "mlr",
["Vandalic"] = "xvn",
["Vangunu"] = "mpr",
["Vanimo"] = "vam",
["Vanji"] = "ira-wnj",
["Vanuma"] = "vau",
["Vao"] = "vao",
["Varhadi"] = "vah",
["Varisi"] = "vrs",
["Varli"] = "vav",
["Vasavi"] = "vas",
["Vayu"] = "vay",
["Veddah"] = "ved",
["Vehes"] = "val",
["Vemgo-Mabas"] = "vem",
["Venda"] = "ve",
["Venetic"] = "xve",
["Veneto"] = "vec",
["Venezuelan Sign Language"] = "vsl",
["Ventureño"] = "veo",
["Veps"] = "vep",
["Vera'a"] = "vra",
["Vestinian"] = "xvs",
["Vidunda"] = "vid",
["Viemo"] = "vig",
["Vietnam"] = "vi",
["Vietnam Pertengahan"] = "mkh-mvi",
["Vilamovian"] = "wym",
["Vilela"] = "vil",
["Vili"] = "vif",
["Vishavan"] = "vis",
["Viti"] = "vit",
["Vitou"] = "vto",
["Volapük"] = "vo",
["Volscian"] = "xvo",
["Vono"] = "kch",
["Voro"] = "vor",
["Vot"] = "vot",
["Vumbu"] = "vum",
["Vunapu"] = "vnp",
["Vunjo"] = "vun",
["Vurës"] = "msn",
["Vute"] = "vut",
["Võro"] = "vro",
["Wa"] = "wbm",
["Wa'ema"] = "wag",
["Waama"] = "wwa",
["Waamwang"] = "wmn",
["Wab"] = "wab",
["Wabo"] = "wbb",
["Waboda"] = "kmx",
["Waci Gbe"] = "wci",
["Wadaginam"] = "wdg",
["Waddar"] = "wbq",
["Wadi Wadi"] = "xwd",
["Wadiyara Koli"] = "kxp",
["Wadjabangayi"] = "wdy",
["Wadjiginy"] = "wdj",
["Wadjigu"] = "wdu",
["Wae Rana"] = "wrx",
["Waffa"] = "waj",
["Wagawaga"] = "wgb",
["Wagaya"] = "wga",
["Wagdi"] = "wbr",
["Wageman"] = "waq",
["Wagi"] = "fad",
["Wahgi"] = "wgi",
["Wahgi Utara"] = "whg",
["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",
["Wales"] = "cy",
["Wales Kuno"] = "owl",
["Wales Pertengahan"] = "wlm",
["Wali (Ghana)"] = "wlx",
["Wali (Sudan)"] = "wll",
["Waling"] = "wly",
["Walio"] = "wla",
["Walla Walla"] = "waa",
["Wallis"] = "wls",
["Walloon"] = "wa",
["Walmajarri"] = "wmt",
["Wam"] = "wmo",
["Wamas"] = "wmc",
["Wambaya"] = "wmb",
["Wambon"] = "wms",
["Wambule"] = "wme",
["Wamey"] = "cou",
["Wamin"] = "wmi",
["Wampar"] = "lbq",
["Wampur"] = "waz",
["Wan"] = "wan",
["Wanambre"] = "wnb",
["Wanap"] = "wnp",
["Wancho"] = "nnp",
["Wanda"] = "wbh",
["Wandala"] = "mfi",
["Wandamen"] = "wad",
["Wandarang"] = "wnd",
["Wandji"] = "wdd",
["Waneci"] = "wne",
["Wanga"] = "lwg",
["Wanggamala"] = "wnm",
["Wangganguru"] = "wgg",
["Wanggom"] = "wng",
["Wangkayutyuru"] = "wky",
["Wangkumara"] = "xwk",
["Wanham"] = "sai-wnm",
["Wanji"] = "wbi",
["Wanman"] = "wbt",
["Wannu"] = "jub",
["Wano"] = "wno",
["Wantoat"] = "wnc",
["Wanukaka"] = "wnk",
["Wanyi"] = "wny",
["Wané"] = "hwa",
["Wapan"] = "juk",
["Wapishana"] = "wap",
["Wappo"] = "wao",
["War-Jaintia"] = "aml",
["Wara"] = "wbf",
["Warao"] = "wba",
["Warapu"] = "wra",
["Waray Sorsogon"] = "srv",
["Waray-Waray"] = "war",
["Wardaman"] = "wrr",
["Wardandi"] = "wxw",
["Warekena Kuno"] = "awd-war",
["Warembori"] = "wsa",
["Wari'"] = "pav",
["Waris"] = "wrs",
["Waritai"] = "wbe",
["Wariyangga"] = "wri",
["Warji"] = "wji",
["Warkay-Bipim"] = "bgv",
["Warlmanpa"] = "wrl",
["Warlpiri"] = "wbp",
["Warluwara"] = "wrb",
["Warnang"] = "wrn",
["Waropen"] = "wrp",
["Warray"] = "wrz",
["Warrgamay"] = "wgy",
["Warrwa"] = "wwr",
["Waru"] = "wru",
["Warumungu"] = "wrm",
["Waruna"] = "wrv",
["Warungu"] = "wrg",
["Warwar Feni"] = "hrw",
["Wasa"] = "wss",
["Wasco-Wishram"] = "wac",
["Washo"] = "was",
["Waskia"] = "wsk",
["Wastek"] = "hus",
["Wasu"] = "wsu",
["Watakataui"] = "wtk",
["Watam"] = "wax",
["Wathaurong"] = "wth",
["Watiwa"] = "wtf",
["Watubela"] = "wah",
["Watut Selatan"] = "mcy",
["Watut Tengah"] = "mpl",
["Watut Utara"] = "una",
["Waube"] = "kop",
["Wauja"] = "wau",
["Wauyai"] = "wuy",
["Wawa"] = "www",
["Wawonii"] = "wow",
["Waxianghua"] = "wxa",
["Wayampi"] = "oym",
["Wayana"] = "way",
["Wayanad Chetti"] = "ctt",
["Wayoró"] = "wyr",
["Wayumara"] = "sai-way",
["Wedau"] = "wed",
["Weh"] = "weh",
["Welaung"] = "weu",
["Weliki"] = "klh",
["Wemale"] = "weo",
["Wemba-Wemba"] = "xww",
["Weme Gbe"] = "wem",
["Wendat"] = "wdt",
["Weri"] = "wer",
["Wersing"] = "kvw",
["Western Juxtlahuaca Mixtec"] = "jmx",
["Wewaw"] = "wea",
["Weyewa"] = "wew",
["Whitesands"] = "tnp",
["Wiarumus"] = "tua",
["Wichita"] = "wic",
["Wichí Lhamtés Güisnay"] = "mzh",
["Wichí Lhamtés Nocten"] = "mtp",
["Wichí Lhamtés Vejoz"] = "wlv",
["Wik-Epa"] = "wie",
["Wik-Iiyanh"] = "wij",
["Wik-Keyangan"] = "wif",
["Wik-Me'anha"] = "wih",
["Wik-Mungkan"] = "wim",
["Wik-Ngathana"] = "wig",
["Wikalkan"] = "wik",
["Wikngenchera"] = "wua",
["Wilawila"] = "wil",
["Winnebago"] = "win",
["Wintu"] = "wnw",
["Winyé"] = "kst",
["Wiradhuri"] = "wrh",
["Wiraféd"] = "wir",
["Wirangu"] = "wgu",
["Wiru"] = "wiu",
["Wirö"] = "wpc",
["Wiwa"] = "mbp",
["Wiyot"] = "wiy",
["Woccon"] = "xwc",
["Wogamusin"] = "wog",
["Wogeo"] = "woc",
["Woi"] = "wbw",
["Woiwurrung"] = "wyi",
["Wojenaka"] = "jod",
["Wolane"] = "wle",
["Wolani"] = "wod",
["Wolaytta"] = "wal",
["Woleai"] = "woe",
["Wolio"] = "wlo",
["Wolof"] = "wo",
["Womo"] = "wmx",
["Wong-gie"] = "aus-won",
["Wongo"] = "won",
["Woods Cree"] = "cwd",
["Woria"] = "wor",
["Worimi"] = "kda",
["Worodougou"] = "jud",
["Worora"] = "wro",
["Wotapuri-Katarqalai"] = "wsv",
["Wotu"] = "wtw",
["Woun Meu"] = "noa",
["Wu"] = "wuu",
["Wudu"] = "wud",
["Wuhuan"] = "mis-wuh",
["Wulguru"] = "aus-wul",
["Wuliwuli"] = "wlu",
["Wulna"] = "wux",
["Wumboko"] = "bqm",
["Wumbvu"] = "wum",
["Wumeng Nasu"] = "ywu",
["Wunai Bunu"] = "bwn",
["Wunambal"] = "wub",
["Wurrugu"] = "wur",
["Wusa Nasu"] = "yig",
["Wushi"] = "bse",
["Wusi"] = "wsi",
["Wutung"] = "wut",
["Wutunhua"] = "wuh",
["Wuvulu-Aua"] = "wuv",
["Wyandot"] = "wya",
["Wára"] = "tci",
["Wãpha"] = "juw",
["Wè Barat"] = "wec",
["Wè Selatan"] = "gxx",
["Wè Utara"] = "wob",
["Xakriabá"] = "xkr",
["Xamtanga"] = "xan",
["Xanaguía Zapotec"] = "ztg",
["Xavante"] = "xav",
["Xerénte"] = "xer",
["Xetá"] = "xet",
["Xhosa"] = "xh",
["Xianbei"] = "mis-xbi",
["Xiang"] = "hsn",
["Xibe"] = "sjo",
["Xicotepec de Juárez Totonac"] = "too",
["Xinca"] = "xin",
["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âcùù"] = "ane",
["Xârâgurè"] = "axx",
["Yaa"] = "iyx",
["Yaaku"] = "muu",
["Yabarana"] = "yar",
["Yabaâna"] = "ybn",
["Yaben"] = "ybm",
["Yabong"] = "ybo",
["Yabula Yabula"] = "yxy",
["Yace"] = "ekr",
["Yaeyama"] = "rys",
["Yafi"] = "wfg",
["Yagara"] = "yxg",
["Yagaria"] = "ygr",
["Yagnobi"] = "yai",
["Yagomi"] = "ygm",
["Yagua"] = "yad",
["Yagwoia"] = "ygw",
["Yahadian"] = "ner",
["Yahang"] = "rhp",
["Yahuna"] = "ynu",
["Yaka"] = "yaf",
["Yakaikeke"] = "ykk",
["Yakan"] = "yka",
["Yakima"] = "yak",
["Yakkha"] = "ybh",
["Yakoma"] = "yky",
["Yakut"] = "sah",
["Yala"] = "yba",
["Yalahatan"] = "jal",
["Yalakalore"] = "xyl",
["Yalarnnga"] = "ylr",
["Yale"] = "nce",
["Yaleba"] = "ylb",
["Yali Ninia"] = "nlk",
["Yalunka"] = "yal",
["Yalálag Zapotec"] = "zpu",
["Yamap"] = "ymp",
["Yamba"] = "yam",
["Yambes"] = "ymb",
["Yambeta"] = "yat",
["Yamdena"] = "jmd",
["Yameo"] = "yme",
["Yami"] = "tao",
["Yaminahua"] = "yaa",
["Yamongeri"] = "ymg",
["Yamphu"] = "ybi",
["Yan-nhangu"] = "jay",
["Yana"] = "ynn",
["Yanda"] = "yda",
["Yanda Dogon"] = "dym",
["Yandjibara"] = "xyb",
["Yandruwandha"] = "ynd",
["Yanesha'"] = "ame",
["Yangben"] = "yav",
["Yangkaal"] = "aus-ynk",
["Yangkam"] = "bsx",
["Yangman"] = "jng",
["Yango"] = "yng",
["Yangulam"] = "ynl",
["Yangum Dey"] = "yde",
["Yangum Gel"] = "ygl",
["Yankunytjatjara"] = "kdd",
["Yanomámi"] = "wca",
["Yansi"] = "yns",
["Yanyuwa"] = "jao",
["Yao"] = "yao",
["Yao (Amerika Selatan)"] = "sai-yao",
["Yaouré"] = "yre",
["Yapese"] = "yap",
["Yapunda"] = "yev",
["Yaqay"] = "jaq",
["Yaqui"] = "yaq",
["Yarawata"] = "yrw",
["Yareba"] = "yrb",
["Yarli"] = "yxl",
["Yarluyandi"] = "yry",
["Yaroamë"] = "yro",
["Yarumá"] = "sai-yar",
["Yarí"] = "yri",
["Yasa"] = "yko",
["Yatay"] = "yty",
["Yatee Zapotec"] = "zty",
["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",
["Yemba"] = "ybb",
["Yemsa"] = "jnj",
["Yendang"] = "yen",
["Yeni"] = "yei",
["Yeniche"] = "yec",
["Yerakai"] = "yra",
["Yerong"] = "yrn",
["Yerukula"] = "yeu",
["Yeskwa"] = "yes",
["Yessan-Mayo"] = "yss",
["Yetfa"] = "yet",
["Yevanic"] = "yej",
["Yeyi"] = "yey",
["Yiddish"] = "yi",
["Yidgha"] = "ydg",
["Yidiny"] = "yii",
["Yil"] = "yll",
["Yimas"] = "yee",
["Yimchungru Naga"] = "yim",
["Yinchia"] = "yin",
["Yindjibarndi"] = "yij",
["Yindjilandji"] = "yil",
["Yine"] = "pib",
["Yinggarda"] = "yia",
["Yinhawangka"] = "ywg",
["Yiningayi"] = "ygi",
["Yinwum"] = "yxm",
["Yir-Yoront"] = "yiy",
["Yirandali"] = "ljw",
["Yis"] = "yis",
["Yitha Yitha"] = "xth",
["Yoba"] = "yob",
["Yogad"] = "yog",
["Yoidik"] = "ydk",
["Yoke"] = "yki",
["Yokuts Buena Vista"] = "yok-bvy",
["Yokuts Delta"] = "yok-dly",
["Yokuts Gashowu"] = "yok-gsy",
["Yokuts Lembah Selatan"] = "yok-svy",
["Yokuts Lembah Utara"] = "yok-nvy",
["Yokuts Palewyami"] = "yok-ply",
["Yokuts Sungai Kings"] = "yok-kry",
["Yokuts Tule-Kaweah"] = "yok-tky",
["Yola"] = "yol",
["Yolmo"] = "scp",
["Yolngu Sign Language"] = "ygs",
["Yom"] = "pil",
["Yombe"] = "yom",
["Yonaguni"] = "yoi",
["Yong"] = "yno",
["Yongkom"] = "yon",
["Yopno"] = "yut",
["Yora"] = "mts",
["Yoron"] = "yox",
["Yorta Yorta"] = "xyy",
["Yoruba"] = "yo",
["Youle Jino"] = "jiu",
["Younuo Bunu"] = "buh",
["Yout Wam"] = "ytw",
["Yoy"] = "yoy",
["Yuanga"] = "nua",
["Yuchi"] = "yuc",
["Yucuna"] = "ycn",
["Yug"] = "yug",
["Yugambal"] = "yub",
["Yugoslavian Sign Language"] = "ysl",
["Yugul"] = "ygu",
["Yugur Barat"] = "ybe",
["Yugur Timur"] = "yuy",
["Yuhup"] = "yab",
["Yukaghir Selatan"] = "yux",
["Yukaghir Utara"] = "ykg",
["Yuki"] = "yuk",
["Yukpa"] = "yup",
["Yukuben"] = "ybl",
["Yulu"] = "yul",
["Yuma"] = "yum",
["Yumana"] = "awd-yum",
["Yunani Cappadocia"] = "cpg",
["Yunani Pontus"] = "pnt",
["Yunani Romani"] = "rge",
["Yup'ik"] = "esu",
["Yupik Siberia Tengah"] = "ess",
["Yupiltepeque"] = "nai-yup",
["Yupua"] = "sai-yup",
["Yuqui"] = "yuq",
["Yuracare"] = "yuz",
["Yuri"] = "sai-yri",
["Yurok"] = "yur",
["Yuru"] = "ljx",
["Yurumanguí"] = "sai-yur",
["Yurutí"] = "yui",
["Yuwana"] = "yau",
["Yuyu"] = "yxu",
["Yámana"] = "yag",
["Zaachila Zapotec"] = "ztx",
["Zabana"] = "kji",
["Zacatepec Chatino"] = "ctz",
["Zaghawa"] = "zag",
["Zaiwa"] = "atb",
["Zakhring"] = "zkr",
["Zambian Sign Language"] = "zsl",
["Zan Gula"] = "zna",
["Zanaki"] = "zak",
["Zande"] = "zne",
["Zangskar"] = "zau",
["Zangwal"] = "zah",
["Zaniza Zapotec"] = "zpw",
["Zapotec"] = "zap",
["Zapotec Aloápam"] = "zaq",
["Zapotec Ayoquesco"] = "zaf",
["Zapotec Cajonos"] = "zad",
["Zapotec Coatecas Altas"] = "zca",
["Zapotec Mitla"] = "zaw",
["Zapotec Ocotlán"] = "zac",
["Zapotec Ozolotepec"] = "zao",
["Zapotec Purba"] = "xzp",
["Zapotec Rincón"] = "zar",
["Zapotec San Juan Guelavía"] = "zab",
["Zapotec Santo Domingo Albarradas"] = "zas",
["Zapotec Segenting"] = "zai",
["Zapotec Sierra de Juárez"] = "zaa",
["Zapotec Tabaa"] = "zat",
["Zapotec Xadani"] = "zax",
["Zapotec Yareni"] = "zae",
["Zapotec Yatzachi"] = "zav",
["Zapoteco Mahuatlán Tengah"] = "zam",
["Zaramo"] = "zaj",
["Zari"] = "zaz",
["Zarma"] = "dje",
["Zauzou"] = "zal",
["Zay"] = "zwa",
["Zayse-Zergulla"] = "zay",
["Zazaki"] = "zza",
["Zazao"] = "jaj",
["Zbu"] = "sit-zbu",
["Zeeland"] = "zea",
["Zeem"] = "zua",
["Zemba"] = "dhm",
["Zemgalia"] = "xzm",
["Zenag"] = "zeg",
["Zenaga"] = "zen",
["Zenzontepec Chatino"] = "czn",
["Zhaba"] = "zhb",
["Zhang-Zhung"] = "xzh",
["Zhire"] = "zhi",
["Zhoa"] = "zhw",
["Zhuang"] = "za",
["Zhár"] = "jjr",
["Zia"] = "zia",
["Zialo"] = "zil",
["Zigula"] = "ziw",
["Zimakani"] = "zik",
["Zimba"] = "zmb",
["Zimbabwe Sign Language"] = "zib",
["Zinza"] = "zin",
["Zire"] = "sih",
["Zirenkel"] = "zrn",
["Ziriya"] = "zir",
["Zizilivakan"] = "ziz",
["Zo'é"] = "pto",
["Zokhuo"] = "yzk",
["Zoogocho Zapotec"] = "zpq",
["Zou"] = "zom",
["Zulu"] = "zu",
["Zumaya"] = "zuy",
["Zumbun"] = "jmb",
["Zuni"] = "zun",
["Zuojiang Zhuang"] = "zzj",
["Zuwara"] = "ber-zuw",
["Zyphe"] = "zyp",
["Záparo"] = "zro",
["tidak ditentukan"] = "und",
["Àhàn"] = "ahn",
["Áncá"] = "acb",
["Äiwoo"] = "nfl",
["Älvdalen"] = "ovd",
["Äynu"] = "aib",
["Ömie"] = "aom",
["Önge"] = "oon",
["ǀXam"] = "xam",
["ǁAni"] = "hnh",
["ǁXegwi"] = "xeg",
["ǂHoan"] = "huc",
["ǃKung"] = "khi-kun",
["ǃXóõ"] = "nmn",
}
obri8s7327w53p7nbq03jw592fw3gf4
373551
373544
2026-09-11T10:39:24Z
Hakimi97
2668
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373551
Scribunto
text/plain
return {
["'Are'are"] = "alu",
["A'ou"] = "aou",
["A-Hmao"] = "hmd",
["A-Pucikwar"] = "apq",
["Aari"] = "aiw",
["Aasax"] = "aas",
["Aba"] = "utp",
["Abaga"] = "abg",
["Abai"] = "poz-abi",
["Abai Sungai"] = "abf",
["Abanyom"] = "abm",
["Abau"] = "aau",
["Abaza"] = "abq",
["Abenaki"] = "abe",
["Abidji"] = "abi",
["Abinomn"] = "bsa",
["Abipón"] = "axb",
["Abishira"] = "ash",
["Abkhaz"] = "ab",
["Abkhaz-Abaza Purba"] = "cau-abz-pro",
["Abom"] = "aob",
["Abon"] = "abo",
["Abu"] = "ado",
["Abu'"] = "aah",
["Abua"] = "abn",
["Abui"] = "abz",
["Abun"] = "kgr",
["Abung"] = "abl",
["Abure"] = "abu",
["Abureni"] = "mgj",
["Abé"] = "aba",
["Acatepec Me'phaa"] = "tpx",
["Aceh"] = "ace",
["Achagua"] = "aca",
["Achang"] = "acn",
["Ache"] = "yif",
["Acheron"] = "acz",
["Achi"] = "acr",
["Acholi"] = "ach",
["Achuar"] = "acu",
["Achumawi"] = "acv",
["Acipa Timur"] = "acp",
["Acroá"] = "acs",
["Adai"] = "xad",
["Adang"] = "adn",
["Adangbe"] = "adq",
["Adangme"] = "ada",
["Adap"] = "adp",
["Adasen"] = "tiu",
["Adele"] = "ade",
["Adhola"] = "adh",
["Adi"] = "adi",
["Adioukrou"] = "adj",
["Adithinngithigh"] = "dth",
["Adnyamathanha"] = "adt",
["Adonara"] = "adr",
["Aduge"] = "adu",
["Adzera"] = "adz",
["Adûni"] = "art-adu",
["Aeka"] = "aez",
["Aekyom"] = "awi",
["Aequian"] = "xae",
["Aer"] = "aeq",
["Afade"] = "aal",
["Afar"] = "aa",
["Afitti"] = "aft",
["Afra"] = "ulf",
["Afrihili"] = "afh",
["Afrikaans"] = "af",
["Afroasia Purba"] = "afa-pro",
["Agarabi"] = "agd",
["Agatu"] = "agc",
["Agawam"] = "alg-aga",
["Aghem"] = "agq",
["Aghu"] = "ahh",
["Aghul"] = "agx",
["Aghwan"] = "xag",
["Agi"] = "aif",
["Agob"] = "kit",
["Agoi"] = "ibm",
["Agta Cagayan Tengah"] = "agt",
["Agta Camarines Norte"] = "abd",
["Agta Casiguran Dumagat"] = "dgc",
["Agta Dicamay"] = "duy",
["Agta Dinapigue"] = "phi-din",
["Agta Dupaningan"] = "duo",
["Agta Gunung Iraya"] = "atl",
["Agta Gunung Iriga"] = "agz",
["Agta Isarog"] = "agk",
["Agta Nagtipunan"] = "phi-nag",
["Agta Pahanan"] = "apf",
["Agta Pulau Alabat"] = "dul",
["Agta Remontado"] = "agv",
["Agta Umiray Dumaget"] = "due",
["Agta Villa Viciosa"] = "dyg",
["Aguacateco"] = "agu",
["Aguano"] = "aga",
["Aguaruna"] = "agr",
["Aguna"] = "aug",
["Agutaynen"] = "agn",
["Agwagwune"] = "yay",
["Ahanta"] = "aha",
["Ahirani"] = "ahr",
["Ahom"] = "aho",
["Ahtna"] = "aht",
["Ahwai"] = "nfd",
["Ai-Cham"] = "aih",
["Aighon"] = "aix",
["Aikanã"] = "tba",
["Aiklep"] = "mwg",
["Aimele"] = "ail",
["Aimol"] = "aim",
["Ainbai"] = "aic",
["Ainu"] = "ain",
["Aiome"] = "aki",
["Airoran"] = "air",
["Aisi"] = "mmq",
["Aiton"] = "aio",
["Aja (Afrika Barat)"] = "ajg",
["Aja (Afrika Timur)"] = "aja",
["Ajawa"] = "ajw",
["Ajië"] = "aji",
["Ajyíninka Apurucayali"] = "cpc",
["Ak"] = "akq",
["Aka (Afrika Tengah)"] = "axk",
["Aka (Sudan)"] = "soh",
["Aka-Bea"] = "abj",
["Aka-Bo"] = "akm",
["Aka-Cari"] = "aci",
["Aka-Kede"] = "akx",
["Aka-Kol"] = "aky",
["Aka-Kora"] = "ack",
["Akan"] = "ak",
["Akar-Bale"] = "acl",
["Akaselem"] = "aks",
["Akatek"] = "knj",
["Akawaio"] = "ake",
["Ake"] = "aik",
["Akebu"] = "keu",
["Akei"] = "tsr",
["Akeu"] = "aeu",
["Akha"] = "ahk",
["Akhvakh"] = "akv",
["Akkadia"] = "akk",
["Aklanon"] = "akl",
["Akolet"] = "akt",
["Akoose"] = "bss",
["Akoye"] = "miw",
["Akpa"] = "akf",
["Akpes"] = "ibe",
["Akrukay"] = "afi",
["Akuku"] = "ayk",
["Akum"] = "aku",
["Akuntsu"] = "aqz",
["Akurio"] = "ako",
["Akuwagel"] = "bey",
["Akwa"] = "akw",
["Akyaung Ari"] = "nqy",
["Al-Sayyid Bedouin Sign Language"] = "syy",
["Alaba"] = "alw",
["Alabama"] = "akz",
["Alago"] = "ala",
["Alagwa"] = "wbj",
["Alak"] = "alk",
["Alamblak"] = "amp",
["Alangan"] = "alj",
["Alapmunte"] = "apv",
["Alawa"] = "alh",
["Alazapa"] = "nai-ala",
["Albania"] = "sq",
["Albania Purba"] = "sqj-pro",
["Albanian Sign Language"] = "sqk",
["Alchuka"] = "tuw-alk",
["Alcozauca Mixtec"] = "xta",
["Alege"] = "alf",
["Aleut"] = "ale",
["Aleut Mednyj"] = "mud",
["Algik Purba"] = "aql-pro",
["Algonquian Purba"] = "alg-pro",
["Algonquin"] = "alq",
["Algonquin Carolina"] = "crr",
["Ali"] = "aiy",
["Alladian"] = "ald",
["Allar"] = "all",
["Allentiac"] = "sai-all",
["Alngith"] = "aid",
["Alo Phola"] = "ypo",
["Alor"] = "aol",
["Alsea"] = "aes",
["Alta Selatan"] = "agy",
["Alta Utara"] = "aqn",
["Altai Selatan"] = "alt",
["Altai Utara"] = "atv",
["Alu"] = "mte",
["Alugu"] = "aub",
["Alumu-Tesu"] = "aab",
["Alune"] = "alp",
["Alungul"] = "aus-alu",
["Aluo"] = "yna",
["Alur"] = "alz",
["Alutiiq"] = "ems",
["Alutor"] = "alr",
["Alviri-Vidari"] = "avd",
["Alyawarr"] = "aly",
["Ama"] = "amm",
["Amahai"] = "amq",
["Amahuaca"] = "amc",
["Amaimon"] = "ali",
["Amal"] = "aad",
["Amami Ōshima Selatan"] = "ams",
["Amami Ōshima Utara"] = "ryn",
["Amanab"] = "amn",
["Amanayé"] = "ama",
["Amara"] = "aie",
["Amarakaeri"] = "amr",
["Amarasi"] = "aaz",
["Amarizana"] = "awd-ama",
["Amasi"] = "alv-ama",
["Amatlán Zapotec"] = "zpo",
["Amazigh Maghribi"] = "zgh",
["Amba"] = "rwm",
["Ambae Barat"] = "nnd",
["Ambai"] = "amk",
["Ambakich"] = "aew",
["Ambelau"] = "amv",
["Ambele"] = "ael",
["Amblong"] = "alm",
["Ambo"] = "amb",
["Ambrak"] = "aag",
["Ambrym Tenggara"] = "tvk",
["Ambrym Utara"] = "mmg",
["Ambul"] = "apo",
["Ambulas"] = "abt",
["Amdang"] = "amj",
["Amele"] = "aey",
["Amganad Ifugao"] = "ifa",
["Amhara"] = "am",
["Ami"] = "amy",
["Amis"] = "ami",
["Ammon"] = "sem-amm",
["Amo"] = "amo",
["Amol"] = "alx",
["Amondawa"] = "adw",
["Amor"] = "sem-amo",
["Ampanang"] = "apg",
["Amto"] = "amt",
["Amuesha-Chamicuro Purba"] = "awd-amc-pro",
["Amurdag"] = "amg",
["Amuzgo Guerrero"] = "amu",
["Amuzgo Ipalapa"] = "azm",
["Amuzgo San Pedro Amuzgos"] = "azg",
["Ana Tinga Dogon"] = "dti",
["Anaang"] = "anw",
["Anakalangu"] = "akg",
["Anam"] = "pda",
["Anambé"] = "aan",
["Anamgura"] = "imi",
["Anasi"] = "bpo",
["Anatolia Purba"] = "ine-ana-pro",
["Anauyá"] = "awd-ana",
["Andai"] = "afd",
["Andajin"] = "ajn",
["Andaman Besar Purba"] = "qfa-adm-pro",
["Andaqui"] = "ana",
["Andarum"] = "aod",
["Andegerebinha"] = "adg",
["Andh"] = "anr",
["Andi"] = "ani",
["Andi Purba"] = "cau-and-pro",
["Andio"] = "bzb",
["Andjingith"] = "aus-and",
["Andoa"] = "anb",
["Andoque"] = "ano",
["Andoquero"] = "sai-and",
["Andra-Hus"] = "anx",
["Aneityum"] = "aty",
["Anem"] = "anz",
["Aneme Wake"] = "aby",
["Anfillo"] = "myo",
["Angaataha"] = "agm",
["Angaité"] = "aqt",
["Angal"] = "age",
["Angal Enen"] = "aoe",
["Angal Heneng"] = "akh",
["Angami"] = "njm",
["Angevin"] = "roa-ang",
["Angguruk Yali"] = "yli",
["Angika"] = "anp",
["Angkamuthi"] = "avm",
["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",
["Annobon"] = "fab",
["Anong"] = "nun",
["Anor"] = "anj",
["Anserma"] = "ans",
["Ansus"] = "and",
["Antakarinya"] = "ant",
["Anu"] = "anl",
["Anuak"] = "anu",
["Anufo"] = "cko",
["Anuki"] = "aui",
["Anus"] = "auq",
["Anuta"] = "aud",
["Anyi"] = "any",
["Anyin Morofo"] = "mtb",
["Anāl"] = "anm",
["Ao Chungli"] = "njo-jgl",
["Ao Mongsen"] = "njo-mng",
["Aoheng"] = "pni",
["Aore"] = "aor",
["Ap Ma"] = "kbx",
["Apabhramsa"] = "inc-apa",
["Apache Barat"] = "apw",
["Apache Dataran"] = "apk",
["Apache Purba"] = "apa-pro",
["Apalachee"] = "xap",
["Apalaí"] = "apy",
["Apali"] = "ena",
["Apatani"] = "apt",
["Apiaká"] = "api",
["Apinayé"] = "apn",
["Apma"] = "app",
["Apolista"] = "awd-apo",
["Apro"] = "ahp",
["Apurinã"] = "apu",
["Aputai"] = "apx",
["Aquitanian"] = "xaq",
["Arab"] = "ar",
["Arab Algeria"] = "arq",
["Arab Andalusia"] = "xaa",
["Arab Bahrani"] = "abv",
["Arab Chad"] = "shu",
["Arab Cyprus"] = "acy",
["Arab Dhofar"] = "adf",
["Arab Hassaniyah"] = "mey",
["Arab Hijaz"] = "acw",
["Arab Iraq"] = "acm",
["Arab Juba"] = "pga",
["Arab Libya"] = "ayl",
["Arab Maghribi"] = "ary",
["Arab Mesir"] = "arz",
["Arab Mesopotamia Utara"] = "ayp",
["Arab Najdi"] = "ars",
["Arab Oman"] = "acx",
["Arab Selatan Kuno"] = "sem-srb",
["Arab Sudan"] = "apd",
["Arab Syam Selatan"] = "ajp",
["Arab Syam Utara"] = "apc",
["Arab Syihuh"] = "ssh",
["Arab Tajik"] = "abh",
["Arab Teluk"] = "afb",
["Arab Tunisia"] = "aeb",
["Arab Utara Purba"] = "xna",
["Arab Uzbeki"] = "auz",
["Arab Yaman"] = "ayn",
["Arabana"] = "ard",
["Arabela"] = "arl",
["Aragon"] = "an",
["Araki"] = "akr",
["Arakwal"] = "rkw",
["Aralle-Tabulahan"] = "atq",
["Aramia"] = "arc",
["Arammba"] = "stk",
["Aranadan"] = "aaf",
["Aranama-Tamique"] = "xrt",
["Aranda Selatan Bawah"] = "axl",
["Arandai"] = "jbj",
["Araona"] = "aro",
["Arapaho"] = "arp",
["Arapaso"] = "arj",
["Arapesh Bumbita"] = "aon",
["Arara-Karo"] = "arr",
["Ararandewára"] = "xaj",
["Arawa Purba"] = "auf-pro",
["Arawak Purba"] = "awd-pro",
["Araweté"] = "awt",
["Arawum"] = "awm",
["Arbore"] = "arv",
["Archi"] = "aqc",
["Are"] = "mwc",
["Areba"] = "aea",
["Arem"] = "aem",
["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",
["Armenia"] = "hy",
["Armenia Kuno"] = "xcl",
["Armenia Pertengahan"] = "axm",
["Armenia Purba"] = "hyx-pro",
["Arnhem Purba"] = "aus-arn-pro",
["Aroid Purba"] = "omv-aro-pro",
["Aromania"] = "rup",
["Arop-Lokep"] = "apr",
["Arop-Sissano"] = "aps",
["Arosi"] = "aia",
["Arrernte Barat"] = "are",
["Arrernte Timur"] = "aer",
["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",
["Ashraaf"] = "cus-ash",
["Asháninka"] = "cni",
["Ashéninka Pajonal"] = "cjo",
["Ashéninka Perené"] = "prq",
["Ashéninka Ucayali Selatan"] = "cpy",
["Asi"] = "bno",
["Asilulu"] = "asl",
["Askopan"] = "eiv",
["Asli Purba"] = "mkh-asl-pro",
["Asmat Pesisir Casuarina"] = "asc",
["Asmat Tengah"] = "cns",
["Asmat Utara"] = "nks",
["Asmat Yaosakor"] = "asy",
["Asoa"] = "asv",
["Assam"] = "as",
["Assam Awal"] = "inc-oas",
["Assam Pertengahan"] = "inc-mas",
["Assan"] = "xss",
["Assangori"] = "sjg",
["Assiniboine"] = "asb",
["Asturia"] = "ast",
["Asu"] = "aum",
["Asue Awyu"] = "psa",
["Asumboa"] = "aua",
["Asunción Mixtepec Zapotec"] = "zoo",
["Asuri"] = "asr",
["Asurini Tocantins"] = "asu",
["Asuriní Xingú"] = "asn",
["Ata"] = "atm",
["Atakapa"] = "aqp",
["Atampaya"] = "amz",
["Atanques"] = "cba-ata",
["Atauran"] = "adb",
["Atayal"] = "tay",
["Atayalik Purba"] = "map-ata-pro",
["Atemble"] = "ate",
["Ateso"] = "teo",
["Athabaska Purba"] = "ath-pro",
["Athpare"] = "aph",
["Ati"] = "atk",
["Atikamekw"] = "atj",
["Atlantik-Congo Purba"] = "alv-pro",
["Atohwaim"] = "aqm",
["Atong (Cameroon)"] = "ato",
["Atong (India)"] = "aot",
["Atorada"] = "aox",
["Atsahuaca"] = "atc",
["Atsam"] = "cch",
["Atsugewi"] = "atw",
["Atta Faire"] = "azt",
["Atta Pamplona"] = "att",
["Atta Pudtol"] = "atp",
["Attapady Kurumba"] = "pkr",
["Attié"] = "ati",
["Au"] = "avt",
["Auhelawa"] = "kud",
["Aukan"] = "djk",
["Aulua"] = "aul",
["Aurá"] = "aux",
["Aushi"] = "auh",
["Aushiri"] = "avs",
["Auslan"] = "asf",
["Austral"] = "aut",
["Austroasia Purba"] = "aav-pro",
["Austronesia Purba"] = "map-pro",
["Auwe"] = "smf",
["Auyana"] = "auy",
["Auye"] = "auu",
["Auyokawa"] = "auo",
["Avar"] = "av",
["Avar Kuno"] = "oav",
["Avar-Andi Purba"] = "cau-ava-pro",
["Avatime"] = "avn",
["Avau"] = "avb",
["Avava"] = "tmb",
["Avesta"] = "ae",
["Avikam"] = "avi",
["Avokaya"] = "avu",
["Avá-Canoeiro"] = "avv",
["Awa (China)"] = "vwa",
["Awa (New Guinea)"] = "awb",
["Awa-Cuaiquer"] = "kwi",
["Awabakal"] = "awk",
["Awadhi"] = "awa",
["Awadhi Kuno"] = "inc-oaw",
["Awak"] = "awo",
["Awar"] = "aya",
["Awara"] = "awx",
["Awbono"] = "awh",
["Aweer"] = "bob",
["Awera"] = "awr",
["Awetí"] = "awe",
["Awing"] = "azo",
["Awjila"] = "auj",
["Awngi"] = "awn",
["Awngthim"] = "gwm",
["Awtuw"] = "kmn",
["Awu"] = "yiu",
["Awun"] = "aww",
["Awutu"] = "afu",
["Awyi"] = "auw",
["Awyu Edera"] = "awy",
["Awyu Jair"] = "awv",
["Awyu Selatan"] = "aws",
["Awyu Tengah"] = "awu",
["Awyu Utara"] = "yir",
["Axamb"] = "ahb",
["Axi"] = "yix",
["Ayabadhu"] = "ayd",
["Ayautla Mazatec"] = "vmy",
["Ayere"] = "aye",
["Ayerrerenge"] = "axe",
["Ayi"] = "ayq",
["Ayizi"] = "yyz",
["Ayizo"] = "ayb",
["Aymara"] = "ay",
["Ayomán"] = "sai-ayo",
["Ayoreo"] = "ayo",
["Ayta Abenlen"] = "abp",
["Ayta Ambala"] = "abc",
["Ayta Bataan"] = "ayt",
["Ayta Sorsogon"] = "ays",
["Ayu"] = "ayu",
["Azerbaijan"] = "az",
["Azha"] = "aza",
["Azhe"] = "yiz",
["Azoyú Me'phaa"] = "tpc",
["Baa"] = "kwb",
["Baagandji"] = "drl",
["Baali"] = "bcp",
["Baan"] = "bvj",
["Baangi"] = "bqx",
["Baatonum"] = "bba",
["Baba"] = "bbw",
["Babango"] = "bbm",
["Babanki"] = "bbk",
["Babar Utara"] = "bcd",
["Babatana"] = "baa",
["Babine-Witsuwit'en"] = "bcr",
["Babole"] = "bvx",
["Babungo"] = "bav",
["Babuza"] = "bzg",
["Bacama"] = "bcy",
["Bada"] = "bhz",
["Badaga"] = "bfq",
["Badanchi"] = "bau",
["Bade"] = "bde",
["Badeshi"] = "bdz",
["Badimaya"] = "bia",
["Badui"] = "bac",
["Badyara"] = "pbp",
["Baeggu"] = "bvd",
["Baekje"] = "pkc",
["Baelelea"] = "bvc",
["Baenan"] = "sai-bae",
["Baetora"] = "btr",
["Bafanji"] = "bfj",
["Bafaw"] = "bwt",
["Bafia"] = "ksf",
["Bafut"] = "bfd",
["Baga Kaloum"] = "bqf",
["Baga Koga"] = "bgo",
["Baga Manduri"] = "bmd",
["Baga Pokur"] = "bcg",
["Baga Sitemu"] = "bsp",
["Baga Sobané"] = "bsv",
["Bagheli"] = "bfy",
["Bagirmi"] = "bmi",
["Bago-Kusuntu"] = "bqg",
["Bagri"] = "bgq",
["Bagua"] = "sai-bag",
["Bagupi"] = "bpi",
["Bagusa"] = "bqb",
["Bagvalal"] = "kva",
["Baha"] = "yha",
["Bahaaa Isyarat Mauritius"] = "lsy",
["Bahaaa Isyarat Panama"] = "lsp",
["Baham"] = "bdw",
["Bahasa Hitam"] = "art-bsp",
["Bahasa Isyarat Adamorobe"] = "ads",
["Bahasa Isyarat Afghanistan"] = "afg",
["Bahasa Isyarat Afrika Selatan"] = "sfs",
["Bahasa Isyarat Algeria"] = "asp",
["Bahasa Isyarat Amerika"] = "ase",
["Bahasa Isyarat Argentina"] = "aed",
["Bahasa Isyarat Armenia"] = "aen",
["Bahasa Isyarat Austria"] = "asq",
["Bahasa Isyarat Chad"] = "cds",
["Bahasa Isyarat Croatia"] = "csq",
["Bahasa Isyarat Ecuador"] = "ecs",
["Bahasa Isyarat El Salvador"] = "esn",
["Bahasa Isyarat Estonia"] = "eso",
["Bahasa Isyarat Filipina"] = "psp",
["Bahasa Isyarat Finland"] = "fse",
["Bahasa Isyarat Finland-Sweden"] = "fss",
["Bahasa Isyarat Habsyah"] = "eth",
["Bahasa Isyarat Haiphong"] = "haf",
["Bahasa Isyarat Hanoi"] = "hab",
["Bahasa Isyarat Hausa"] = "hsl",
["Bahasa Isyarat Honduras"] = "hds",
["Bahasa Isyarat Hong Kong"] = "hks",
["Bahasa Isyarat Hungary"] = "hsh",
["Bahasa Isyarat Iceland"] = "icl",
["Bahasa Isyarat India"] = "ins",
["Bahasa Isyarat Indonesia"] = "inl",
["Bahasa Isyarat Inuit"] = "iks",
["Bahasa Isyarat Ireland"] = "isg",
["Bahasa Isyarat Israel"] = "isr",
["Bahasa Isyarat Itali"] = "ise",
["Bahasa Isyarat Jamaica"] = "jls",
["Bahasa Isyarat Jepun"] = "jsl",
["Bahasa Isyarat Jhankot"] = "jhs",
["Bahasa Isyarat Jordan"] = "jos",
["Bahasa Isyarat Jumla"] = "jus",
["Bahasa Isyarat Kentish Kuno"] = "okl",
["Bahasa Isyarat Korea"] = "kvk",
["Bahasa Isyarat Lao"] = "lso",
["Bahasa Isyarat Latvia"] = "lsl",
["Bahasa Isyarat Libya"] = "lbs",
["Bahasa Isyarat Madagascar"] = "mzc",
["Bahasa Isyarat Malta"] = "mdl",
["Bahasa Isyarat Maritim"] = "nsr",
["Bahasa Isyarat Martha's Vineyard"] = "mre",
["Bahasa Isyarat Maya Yucatec"] = "msd",
["Bahasa Isyarat Mesir"] = "esl",
["Bahasa Isyarat Mexico"] = "mfs",
["Bahasa Isyarat Miriwoong"] = "rsm",
["Bahasa Isyarat Monastik"] = "mzg",
["Bahasa Isyarat Mongolia"] = "msr",
["Bahasa Isyarat Mozambique"] = "mzy",
["Bahasa Isyarat Namibia"] = "nbs",
["Bahasa Isyarat Negara Jamaica"] = "jcs",
["Bahasa Isyarat Nepal"] = "nsp",
["Bahasa Isyarat New Zealand"] = "nzs",
["Bahasa Isyarat Nicaragua"] = "ncs",
["Bahasa Isyarat Nigeria"] = "nsi",
["Bahasa Isyarat Norway"] = "nsl",
["Bahasa Isyarat Orang Asli Australia"] = "asw",
["Bahasa Isyarat Pakistan"] = "pks",
["Bahasa Isyarat Papua New Guinea"] = "pgz",
["Bahasa Isyarat Paraguay"] = "pys",
["Bahasa Isyarat Parsi"] = "psc",
["Bahasa Isyarat Perancis"] = "fsl",
["Bahasa Isyarat Peru"] = "prl",
["Bahasa Isyarat Poland"] = "pso",
["Bahasa Isyarat Portugis"] = "psr",
["Bahasa Isyarat Providencia"] = "prz",
["Bahasa Isyarat Puerto Rico"] = "psl",
["Bahasa Isyarat Pulau Pinang"] = "psg",
["Bahasa Isyarat Quebec"] = "fcs",
["Bahasa Isyarat Romania"] = "rms",
["Bahasa Isyarat Rusia"] = "rsl",
["Bahasa Isyarat Taiwan"] = "tss",
["Bahasa Isyarat Tanzania"] = "tza",
["Bahasa Isyarat Tebul"] = "tsy",
["Bahasa Isyarat Thai"] = "tsq",
["Bahasa Isyarat Trinidad dan Tobago"] = "lst",
["Bahasa Isyarat Tunisia"] = "tse",
["Bahasa Isyarat Turki"] = "tsm",
["Bahasa Isyarat Yahudi Algeria"] = "ajs",
["Bahasa Lembah Indus"] = "xiv",
["Bahasa Roh Maroon"] = "crp-mar",
["Bahau"] = "bhv",
["Bahinemo"] = "bjh",
["Bahing"] = "bhj",
["Bahnar"] = "bdq",
["Bahnar Purba"] = "mkh-ban-pro",
["Bahonsuai"] = "bsu",
["Bai"] = "bdj",
["Bai Purba"] = "sit-bai-pro",
["Bai Selatan"] = "bfs",
["Bai Tengah"] = "bca",
["Baibai"] = "bbf",
["Baikeno"] = "bkx",
["Bailang"] = "tbq-blg",
["Baima"] = "bqh",
["Baimak"] = "bmx",
["Bainouk Gubeeher"] = "alv-bgu",
["Bainouk-Gunyaamolo"] = "bcz",
["Bainouk-Gunyuño"] = "bab",
["Bainouk-Samik"] = "bcb",
["Baiso"] = "bsw",
["Bajan"] = "bjs",
["Bajau Indonesia"] = "bdl",
["Bajau Laut"] = "sml",
["Bajau Pantai Timur"] = "ssb",
["Bajau Sama"] = "bdr",
["Bajelani"] = "bjm",
["Baka"] = "bkc",
["Bakairí"] = "bkq",
["Bakaka"] = "bqz",
["Bakhtiari"] = "bqi",
["Baki"] = "bki",
["Bakoko"] = "bkh",
["Bakole"] = "kme",
["Bakpinka"] = "bbs",
["Baktria"] = "xbc",
["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"] = "ban",
["Baliledo"] = "poz-bal",
["Balkan Gagauz Turkish"] = "bgx",
["Balo"] = "bqo",
["Baloi"] = "biz",
["Balong"] = "bnt-bal",
["Balti"] = "bft",
["Balto-Slavik Purba"] = "ine-bsl-pro",
["Baluan-Pam"] = "blq",
["Baluchi"] = "bal",
["Bamako Sign Language"] = "bog",
["Bamali"] = "bbq",
["Bambalang"] = "bmo",
["Bambam"] = "ptu",
["Bambara"] = "bm",
["Bambassi"] = "myf",
["Bambili-Bambui"] = "baw",
["Bamenyam"] = "bce",
["Bamu"] = "bcf",
["Bamukumbit"] = "bqt",
["Bamum"] = "bax",
["Bamunka"] = "bvm",
["Bamwe"] = "bmg",
["Ban Khor Sign Language"] = "bfk",
["Bana"] = "bcw",
["Banam Bay"] = "vrt",
["Banao Itneg"] = "bjx",
["Banaro"] = "byz",
["Banda"] = "bnd",
["Banda Malay"] = "bpq",
["Banda Tengah Barat"] = "bbp",
["Banda Tengah Selatan"] = "lnl",
["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",
["Banjar"] = "bjn",
["Banka"] = "bxw",
["Bankan Tey Dogon"] = "dbw",
["Bankon"] = "abb",
["Banoni"] = "bcm",
["Bantawa"] = "bap",
["Bantayanon"] = "bfx",
["Bantik"] = "bnq",
["Bantoid Purba"] = "nic-bod-pro",
["Bantu Purba"] = "bnt-pro",
["Banyumasan"] = "map-bms",
["Baoule"] = "bci",
["Baraamu"] = "brd",
["Barai"] = "bbb",
["Barakai"] = "baj",
["Barama"] = "bbg",
["Barambu"] = "brm",
["Baramu"] = "bmz",
["Barapasi"] = "brp",
["Baras"] = "brs",
["Barasana"] = "bsn",
["Barbar Tunisia"] = "sds",
["Barbareño"] = "boi",
["Bardi"] = "bcj",
["Barein"] = "bva",
["Bargam"] = "mlp",
["Bari"] = "bfa",
["Bariai"] = "bch",
["Bariji"] = "bjc",
["Barikanchi"] = "bxo",
["Barikewa"] = "jbk",
["Barngarla"] = "bjb",
["Barok"] = "bjk",
["Barombi"] = "bbi",
["Barranbinya"] = "aus-bra",
["Barro Negro Tunebo"] = "tbn",
["Barrow Point"] = "bpt",
["Baruga"] = "bjz",
["Barunggam"] = "aus-brm",
["Baruya"] = "byr",
["Barwe"] = "bwg",
["Barzani Jewish Neo-Aramaic"] = "bjf",
["Baré"] = "bae",
["Barí"] = "mot",
["Basa"] = "bzw",
["Basa-Gumna"] = "bsl",
["Basa-Gurmana"] = "buj",
["Basaa"] = "bas",
["Basap"] = "bdb",
["Basay"] = "byq",
["Bashkardi"] = "bsg",
["Bashkir"] = "ba",
["Basketo"] = "bst",
["Basque"] = "eu",
["Basque Purba"] = "euq-pro",
["Bassa"] = "bsq",
["Bassa-Kontagora"] = "bsr",
["Bassari"] = "bsc",
["Bassossi"] = "bsi",
["Bata"] = "bta",
["Batad Ifugao"] = "ifb",
["Batak Alas-Kluet"] = "btz",
["Batak Angkola"] = "akb",
["Batak Dairi"] = "btd",
["Batak Karo"] = "btx",
["Batak Mandailing"] = "btm",
["Batak Palawan"] = "bya",
["Batak Purba"] = "btk-pro",
["Batak Simalungun"] = "bts",
["Batak Toba"] = "bbc",
["Batanga"] = "bnm",
["Batek"] = "btq",
["Bateri"] = "btv",
["Bathari"] = "bhm",
["Bati (Cameroon)"] = "btc",
["Bati (Indonesia)"] = "bvt",
["Bats"] = "bbl",
["Batu"] = "btu",
["Batui"] = "zbt",
["Batuley"] = "bay",
["Bau"] = "bbd",
["Bauchi"] = "bsf",
["Baure"] = "brg",
["Bauria"] = "bge",
["Bauro"] = "bxa",
["Bauwaki"] = "bwk",
["Bauzi"] = "bvz",
["Bavarian"] = "bar",
["Bayali"] = "bjy",
["Baybayanon"] = "bvy",
["Baygo"] = "byg",
["Bayogoula"] = "nai-bay",
["Bayono"] = "byl",
["Bayot"] = "bda",
["Bayungu"] = "bxj",
["Bazigar"] = "bfr",
["Be Purba"] = "qfa-onb-pro",
["Be-Tai Purba"] = "qfa-bet-pro",
["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"] = "nl",
["Belanda Bor"] = "bxb",
["Belanda Jersey"] = "gmw-jdt",
["Belanda Kreol Berbice"] = "brc",
["Belanda Kreol Skepi"] = "skw",
["Belanda Kuno"] = "odt",
["Belanda Pertengahan"] = "dum",
["Belanda Viri"] = "bvi",
["Belarus"] = "be",
["Belhariya"] = "byw",
["Beli"] = "blm",
["Bella Coola"] = "blc",
["Bellari"] = "brw",
["Bemba"] = "bem",
["Bembe"] = "bmb",
["Ben Tey"] = "dbt",
["Bena"] = "yun",
["Benabena"] = "bef",
["Bench"] = "bcq",
["Bende"] = "bdp",
["Bendi"] = "bct",
["Beneraf"] = "bnv",
["Beng"] = "nhb",
["Benga"] = "bng",
["Bengal Kuno"] = "inc-obn",
["Bengal Pertengahan"] = "inc-mbn",
["Benggali"] = "bn",
["Benggoi"] = "bgy",
["Bengkala Sign Language"] = "bqy",
["Bentong"] = "bnu",
["Benue-Congo Purba"] = "nic-bco-pro",
["Benyadu'"] = "byd",
["Beothuk"] = "bue",
["Bepour"] = "bie",
["Bera"] = "brf",
["Berakou"] = "bxv",
["Berawan"] = "lod",
["Berber Purba"] = "ber-pro",
["Berber Saharan Utara"] = "mzb",
["Bergish"] = "gmw-bgh",
["Berik"] = "bkl",
["Berinomo"] = "bit",
["Berom"] = "bom",
["Berta"] = "wti",
["Berti"] = "byt",
["Besisi"] = "mhe",
["Besme"] = "bes",
["Besoa"] = "bep",
["Betaf"] = "bfe",
["Betawi"] = "bew",
["Bete"] = "byf",
["Bete-Bendi"] = "btt",
["Betoi"] = "sai-bet",
["Bezhta"] = "kap",
["Bhadrawahi"] = "bhd",
["Bhalay"] = "bhx",
["Bharia"] = "bha",
["Bhatri"] = "bgw",
["Bhattiyali"] = "bht",
["Bhaya"] = "bhe",
["Bhele"] = "bhy",
["Bhilali"] = "bhi",
["Bhili"] = "bhb",
["Bhojpur"] = "bho",
["Bhunjia"] = "bhu",
["Biafada"] = "bif",
["Biage"] = "bdf",
["Biak"] = "bhw",
["Biali"] = "beh",
["Bian Marind"] = "bpv",
["Biangai"] = "big",
["Biao"] = "byk",
["Biao Mon"] = "bmt",
["Biao-Jiao Mien"] = "bje",
["Bibaali"] = "bcn",
["Bibbulman"] = "xbp",
["Bicolano Catanduanes Selatan"] = "bln",
["Bicolano Catanduanes Utara"] = "cts",
["Bicolano Iriga"] = "bto",
["Bidayuh Bau"] = "sne",
["Bidayuh Biatah"] = "bth",
["Bidayuh Bukar-Sadong"] = "sdo",
["Bidiyo"] = "bid",
["Bidyara"] = "bym",
["Bidyogo"] = "bjg",
["Biem"] = "bmc",
["Bierebo"] = "bnk",
["Bieria"] = "brj",
["Biete"] = "biu",
["Big Nambas"] = "nmb",
["Biga"] = "bhc",
["Bigambal"] = "xbe",
["Bih"] = "ibh",
["Bihari"] = "bh",
["Bijori"] = "bix",
["Bikaru"] = "bic",
["Bikol Libon"] = "lbl",
["Bikol Miraya"] = "rbl",
["Bikol Miraya Barat"] = "fbl",
["Bikol Tengah"] = "bcl",
["Bikya"] = "byb",
["Bila"] = "bip",
["Bilakura"] = "bql",
["Bilaspuri"] = "kfs",
["Bilba"] = "bpz",
["Bilbil"] = "brz",
["Bile"] = "bil",
["Biliau"] = "bcu",
["Biloxi"] = "bll",
["Bilua"] = "blb",
["Bilur"] = "bxf",
["Bima"] = "bhp",
["Bimin"] = "bhl",
["Bimoba"] = "bim",
["Bina"] = "bmn",
["Binahari"] = "bxz",
["Binandere"] = "bhg",
["Binandere Purba"] = "ngf-bin-pro",
["Binawa"] = "byj",
["Bindal"] = "xbd",
["Bine"] = "bon",
["Binji"] = "bpj",
["Binongan Itneg"] = "itb",
["Bintauna"] = "bne",
["Binukid"] = "bkd",
["Binumarien"] = "bjr",
["Bipi"] = "biq",
["Birao"] = "brr",
["Birgid"] = "brk",
["Birgit"] = "btf",
["Birhor"] = "biy",
["Biri"] = "bzr",
["Birifor Selatan"] = "biv",
["Biritai"] = "bqq",
["Birri"] = "bvq",
["Birrpayi"] = "xbj",
["Birwa"] = "brl",
["Bisaya Brunei"] = "bsb",
["Bisaya Sabah"] = "bsy",
["Biseni"] = "ije",
["Bishnupriya Manipuri"] = "bpy",
["Bishuo"] = "bwh",
["Bisis"] = "bnw",
["Bislama"] = "bi",
["Bisorio"] = "bir",
["Bissa"] = "bib",
["Bisu"] = "bzi",
["Bit"] = "bgk",
["Bitare"] = "brt",
["Bitur"] = "mcc",
["Biwat"] = "bwm",
["Biyo"] = "byo",
["Biyom"] = "bpm",
["Blablanga"] = "blp",
["Blackfoot"] = "bla",
["Blafe"] = "bfh",
["Blagar"] = "beu",
["Blang"] = "blr",
["Blin"] = "byn",
["Bo"] = "bgl",
["Bo-Rukul"] = "mae",
["Bo-Ung"] = "mux",
["Boano (Maluku)"] = "bzn",
["Boano (Sulawesi)"] = "bzl",
["Bobo Selatan"] = "bwq",
["Bobongko"] = "bgb",
["Bobot"] = "bty",
["Bodish Purba"] = "sit-bdi-pro",
["Bodo (Central Africa)"] = "boy",
["Bodo (India)"] = "brx",
["Bodo Parja"] = "bdv",
["Bodo-Garo Purba"] = "tbq-bdg-pro",
["Bofi"] = "bff",
["Boga"] = "bvw",
["Bogaya"] = "boq",
["Boghom"] = "bux",
["Boguru"] = "bqu",
["Boikin"] = "bzf",
["Bokar"] = "sit-bok",
["Bokha"] = "ybk",
["Bokmål Norway"] = "nb",
["Boko"] = "bqc",
["Bokobaru"] = "bus",
["Bokoto"] = "bdt",
["Bokyi"] = "bky",
["Bola"] = "bnp",
["Bolak"] = "art-blk",
["Bolango"] = "bld",
["Bole"] = "bol",
["Bolgo"] = "bvo",
["Bolia"] = "bli",
["Bolinao"] = "smk",
["Bolivian Sign Language"] = "bvl",
["Boloki"] = "bkt",
["Bolon"] = "bof",
["Bolondo"] = "bzm",
["Bolongan"] = "blj",
["Bolyu"] = "ply",
["Bom"] = "bmf",
["Boma Nkuu"] = "bnt-bon",
["Boma Selatan"] = "bnt-sbo",
["Boma Utara"] = "boh",
["Boma Yumu"] = "bnt-boy",
["Bomboli"] = "bml",
["Bomboma"] = "bws",
["Bomitaba"] = "zmx",
["Bomu"] = "bmq",
["Bomwali"] = "bmw",
["Bonan"] = "peh",
["Bondei"] = "bou",
["Bondo"] = "bfw",
["Bondoukou Kulango"] = "kzc",
["Bondum Dom Dogon"] = "dbu",
["Bonerate"] = "bna",
["Bonggi"] = "bdg",
["Bonggo"] = "bpg",
["Bongili"] = "bui",
["Bongo"] = "bot",
["Bongo-Bagirmi Purba"] = "csu-bba-pro",
["Bongu"] = "bpu",
["Bonjo"] = "bok",
["Bonkeng"] = "bvg",
["Bonkiman"] = "bop",
["Bontoc Barat Daya"] = "vbk",
["Bontoc Selatan"] = "obk",
["Bontoc Tengah"] = "lbk",
["Bontoc Timur"] = "ebk",
["Bontoc Utara"] = "rbk",
["Bookan"] = "bnb",
["Boon"] = "bnl",
["Boor"] = "bvf",
["Bora"] = "boa",
["Bora Purba"] = "sai-bor-pro",
["Boro"] = "xxb",
["Borong"] = "ksr",
["Boruca"] = "brn",
["Borôro"] = "bor",
["Boselewa"] = "bwf",
["Bosngun"] = "bqs",
["Bote-Majhi"] = "bmj",
["Botlikh"] = "bph",
["Botolan Sambal"] = "sbl",
["Bourbonnais-Berrichon"] = "roa-bbn",
["Bourguignon"] = "roa-brg",
["Bouyei"] = "pcc",
["Bozaba"] = "bzo",
["Bragat"] = "aof",
["Brahui"] = "brh",
["Braj"] = "bra",
["Brazilian Sign Language"] = "bzs",
["Brem"] = "buq",
["Breri"] = "brq",
["Breton"] = "br",
["Breton Kuno"] = "obt",
["Breton Pertengahan"] = "xbm",
["Bribri"] = "bzd",
["British Sign Language"] = "bfi",
["Britonik Purba"] = "cel-bry-pro",
["Brokkat"] = "bro",
["Brokpake"] = "sgt",
["Brokskat"] = "bkk",
["Broome Pearling Lugger Pidgin"] = "bpl",
["Bru Barat"] = "brv",
["Bru Timur"] = "bru",
["Bu"] = "jid",
["Bu-Nao Bunu"] = "bwx",
["Bua"] = "bub",
["Bua Purba"] = "alv-bua-pro",
["Buamu"] = "box",
["Bube"] = "bvb",
["Bubi"] = "buw",
["Bubia"] = "bbx",
["Budeh Stieng"] = "stt",
["Budibud"] = "btp",
["Budong-Budong"] = "bdx",
["Budu"] = "buu",
["Budukh"] = "bdk",
["Buduma"] = "bdm",
["Budza"] = "bja",
["Bugan"] = "bbh",
["Bughotu"] = "bgt",
["Bugis"] = "bug",
["Buglere"] = "sab",
["Bugun"] = "bgg",
["Buhi'non Bikol"] = "ubl",
["Buhid"] = "bku",
["Buhutu"] = "bxh",
["Bujhyal"] = "byh",
["Bukat"] = "bvk",
["Bukawa"] = "buk",
["Bukhari"] = "bhh",
["Bukitan"] = "bkn",
["Bukiyip"] = "ape",
["Buksa"] = "tkb",
["Bukusu"] = "bxk",
["Bulgar"] = "xbo",
["Bulgaria"] = "bg",
["Bulgarian Sign Language"] = "bqn",
["Bulgebi"] = "bmp",
["Buli (Ghana)"] = "bwu",
["Buli (Indonesia)"] = "bzq",
["Bulo Stieng"] = "sti",
["Bulu (Cameroon)"] = "bum",
["Bulu (New Guinea)"] = "bjl",
["Bum"] = "bmv",
["Bumaji"] = "byp",
["Bumang"] = "bvp",
["Bumthangkha"] = "kjz",
["Bun"] = "buv",
["Buna"] = "bvn",
["Bunaba"] = "bck",
["Bunak"] = "bfn",
["Bunama"] = "bdd",
["Bundeli"] = "bns",
["Bung"] = "bqd",
["Bungain"] = "but",
["Bunganditj"] = "xbg",
["Bungku"] = "bkz",
["Bungku-Tolaki Purba"] = "poz-btk-pro",
["Bungu"] = "wun",
["Bunoge"] = "dgb",
["Bunun"] = "bnn",
["Buol"] = "blf",
["Bura"] = "bwr",
["Burak"] = "bys",
["Buraka"] = "bkg",
["Burarra"] = "bvr",
["Burate"] = "bti",
["Burduna"] = "bxn",
["Bure"] = "bvh",
["Burgundia"] = "gme-bur",
["Burji"] = "bji",
["Burma"] = "my",
["Burma Kuno"] = "obr",
["Burma Purba"] = "tbq-brm-pro",
["Burmeso"] = "bzu",
["Buru (Indonesia)"] = "mhs",
["Buru (Nigeria)"] = "bqw",
["Burui"] = "bry",
["Burumakok"] = "aip",
["Burun"] = "bdi",
["Burunge"] = "bds",
["Burushaski"] = "bsk",
["Burusu"] = "bqr",
["Buruwai"] = "asi",
["Buryat"] = "bua",
["Busa"] = "bqp",
["Busam"] = "bxs",
["Busami"] = "bsm",
["Busang Kayan"] = "bfg",
["Bushoong"] = "buf",
["Buso"] = "bso",
["Busoa"] = "bup",
["Bussa"] = "dox",
["Busuu"] = "bju",
["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",
["Bwela"] = "bwl",
["Bwile"] = "bwc",
["Bwisi"] = "bwz",
["Byangsi"] = "bee",
["Byep"] = "mkk",
["Bädi Kanum"] = "khd",
["Caac"] = "msq",
["Cabiyarí"] = "cbb",
["Cabre"] = "awd-cab",
["Cabécar"] = "cjp",
["Cacaopera"] = "ccr",
["Cacua"] = "cbv",
["Cacán"] = "sai-cac",
["Caddo"] = "cad",
["Caddoan Purba"] = "cdd-pro",
["Cafundó"] = "ccd",
["Cahuarano"] = "cah",
["Cahuilla"] = "chl",
["Caijia"] = "sit-cai",
["Caka"] = "ckx",
["Cakchiquel-Quiché Mixed Language"] = "ckz",
["Cakfem-Mushere"] = "cky",
["Calamian Tagbanwa"] = "tbk",
["Callawalla"] = "caw",
["Calusa"] = "nai-cal",
["Caluyanun"] = "clu",
["Caló"] = "rmq",
["Cam Barat"] = "cja",
["Cam Timur"] = "cjm",
["Campalagian"] = "cml",
["Camsá"] = "kbh",
["Camtho"] = "cmt",
["Camunic"] = "xcc",
["Candoshi-Shapra"] = "cbu",
["Canela"] = "ram",
["Cangin Purba"] = "alv-cng-pro",
["Canichana"] = "caz",
["Cantabrian"] = "roa-can",
["Cao Miao"] = "cov",
["Caolan"] = "mlc",
["Capanahua"] = "kaq",
["Capiznon"] = "cps",
["Caquinte"] = "cot",
["Car Nicobarese"] = "caq",
["Cara"] = "cfd",
["Carabayo"] = "cby",
["Caramanta"] = "crf",
["Caranqui"] = "sai-caq",
["Carapana"] = "cbc",
["Carian"] = "xcr",
["Cariay"] = "awd-kar",
["Carib Purba"] = "sai-car-pro",
["Carijona"] = "cbd",
["Carolinian"] = "cal",
["Carrier"] = "crx",
["Carrier Selatan"] = "caf",
["Cashibo-Cacataibo"] = "cbr",
["Cashinahua"] = "cbs",
["Catacao"] = "sai-cat",
["Catalan"] = "ca",
["Catalan Sign Language"] = "csc",
["Catalonia Kuno"] = "roa-oca",
["Catawba"] = "chc",
["Catuquinaru"] = "sai-ctq",
["Catío Chibcha"] = "cba-cat",
["Cauca"] = "cca",
["Cavineña"] = "cav",
["Cayubaba"] = "cyb",
["Cayuga"] = "cay",
["Cayuse"] = "xcy",
["Cazcan"] = "azc-caz",
["Cañari"] = "sai-cnr",
["Cebaara Senoufo"] = "sef",
["Cebuano"] = "ceb",
["Celtiberian"] = "xce",
["Cemuhî"] = "cam",
["Cen"] = "cen",
["Central Palawano"] = "plc",
["Centúúm"] = "cet",
["Cerma"] = "cme",
["Cerrado Purba"] = "sai-cer-pro",
["Ch'olti'"] = "myn-chl",
["Ch'orti'"] = "caa",
["Chaap Wuurong"] = "tjw",
["Chachi"] = "cbi",
["Chadik Purba"] = "cdc-pro",
["Chadik Tengah Purba"] = "cdc-cbm-pro",
["Chadong"] = "cdy",
["Chagatai"] = "chg",
["Chaha"] = "sem-cha",
["Chaima"] = "ciy",
["Chairel"] = "sit-cha",
["Chak"] = "ckh",
["Chakali"] = "cli",
["Chakma"] = "ccp",
["Chala"] = "cll",
["Chaldean Neo-Aramaic"] = "cld",
["Chali"] = "tgf",
["Chamacoco"] = "ceg",
["Chamalal"] = "cji",
["Chamba Daka"] = "ccg",
["Chamba Leko"] = "ndi",
["Chambeali"] = "cdh",
["Chambri"] = "can",
["Chamicuro"] = "ccc",
["Chamik Purba"] = "cmc-pro",
["Chamling"] = "rab",
["Chamorro"] = "ch",
["Champenois"] = "roa-cha",
["Chang"] = "nbc",
["Changriwa"] = "cga",
["Changthang"] = "cna",
["Chantyal"] = "chx",
["Chaná"] = "sai-chn",
["Chané"] = "caj",
["Chapacura"] = "sai-chp",
["Chara"] = "cra",
["Charrua"] = "sai-chr",
["Chatino Purba"] = "omq-cha-pro",
["Chatino San Juan Quiahije"] = "omq-sjq",
["Chatino Tanah Tinggi Barat"] = "ctp",
["Chatino Tanah Tinggi Timur"] = "cly",
["Chatino Teojomulco"] = "omq-teo",
["Chaudangsi"] = "cdn",
["Chaura"] = "crv",
["Chavacano"] = "cbk",
["Chayahuita"] = "cbt",
["Chazumba Mixtec"] = "xtb",
["Che"] = "ruk",
["Chechen"] = "ce",
["Cheke Holo"] = "mrn",
["Chemakum"] = "xch",
["Chenapian"] = "cjn",
["Chenchu"] = "cde",
["Chenoua"] = "cnu",
["Chepang"] = "cdm",
["Chepya"] = "ycp",
["Cherepon"] = "cpn",
["Cherokee"] = "chr",
["Chesu"] = "ych",
["Chetco-Tolowa"] = "ctc",
["Chewong"] = "cwg",
["Cheyenne"] = "chy",
["Chhattisgarhi"] = "hne",
["Chhintange"] = "ctn",
["Chhulung"] = "cur",
["Chiangmai Sign Language"] = "csd",
["Chiapanec"] = "cip",
["Chibcha"] = "chb",
["Chibchan Purba"] = "cba-pro",
["Chicahuaxtla Triqui"] = "trs",
["Chichewa"] = "ny",
["Chichicapan Zapotec"] = "zpv",
["Chichimeca-Jonaz"] = "pei",
["Chichonyi-Chidzihana-Chikauma"] = "coh",
["Chickasaw"] = "cic",
["Chicomuceltec"] = "cob",
["Chiduruma"] = "dug",
["Chilcotin"] = "clc",
["Chilean Sign Language"] = "csg",
["Chilisso"] = "clh",
["Chiltepec Chinantec"] = "csa",
["Chimakuan Purba"] = "chi-pro",
["Chimalapa Zoque"] = "zoh",
["Chimariko"] = "cid",
["Chimila"] = "cbg",
["Chimwiini"] = "bnt-cmw",
["Chin Asho"] = "csh",
["Chin Bawm"] = "bgr",
["Chin Bualkhaw"] = "cbl",
["Chin Chinbon"] = "cnb",
["Chin Daai"] = "dao",
["Chin Falam"] = "cfm",
["Chin Kaang"] = "ckn",
["Chin Khumi"] = "cnk",
["Chin Laitu"] = "clt",
["Chin Mara"] = "mrh",
["Chin Mro"] = "cmr",
["Chin Ngawn"] = "cnw",
["Chin Senthang"] = "sez",
["Chin Siyin"] = "csy",
["Chin Songlai"] = "csj",
["Chin Sumtu"] = "csv",
["Chin Tawr"] = "tcp",
["Chin Tedim"] = "ctd",
["Chin Thado"] = "tcz",
["Chin Thaiphum"] = "cth",
["Chin Zotung"] = "czt",
["Chinali"] = "cih",
["Chinese Sign Language"] = "csl",
["Chinook"] = "chh",
["Chinook Jargon"] = "chn",
["Chinook Purba"] = "nai-ckn-pro",
["Chipaya"] = "cap",
["Chipewyan"] = "chp",
["Chiquimulilla"] = "nai-chi",
["Chiquitano"] = "cax",
["Chiricahua"] = "apm",
["Chirino"] = "sai-chi",
["Chiripá"] = "nhd",
["Chiru"] = "cdf",
["Chitimacha"] = "ctm",
["Chitkuli Kinnauri"] = "cik",
["Chittagong"] = "ctg",
["Chitwania Tharu"] = "the",
["Chiwere"] = "iow",
["Choapan Zapotec"] = "zpc",
["Chocangaca"] = "cgk",
["Chochotec"] = "coz",
["Choctaw"] = "cho",
["Chodri"] = "cdi",
["Chokwe"] = "cjk",
["Chol"] = "ctu",
["Cholón"] = "cht",
["Chong"] = "cog",
["Choni"] = "cda",
["Chono"] = "sai-cno",
["Chopi"] = "cce",
["Chrau"] = "crw",
["Chru"] = "cje",
["Chuabo"] = "chw",
["Chuanqiandian Cluster Miao"] = "cqd",
["Chuave"] = "cjv",
["Chug"] = "cvg",
["Chuj"] = "cac",
["Chuka"] = "cuh",
["Chukchi"] = "ckt",
["Chukotko-Kamchatka Purba"] = "qfa-cka-pro",
["Chukwa"] = "cuw",
["Chulym"] = "clw",
["Chumash Purba"] = "nai-chu-pro",
["Chumburung"] = "ncu",
["Churahi"] = "cdj",
["Churuya"] = "sai-chu",
["Chut"] = "scb",
["Chuuk"] = "chk",
["Chuva"] = "xcv",
["Chuvash"] = "cv",
["Chácobo"] = "cao",
["Ci Gbe"] = "cib",
["Cia-Cia"] = "cia",
["Cibak"] = "ckl",
["Cicipu"] = "awc",
["Ciguayo"] = "nai-cig",
["Cimbrian"] = "cim",
["Cina"] = "zh",
["Cina Kuno"] = "och",
["Cina Pertengahan"] = "ltc",
["Cinda-Regi-Tiyal"] = "cdr",
["Cineni"] = "cie",
["Cinta Larga"] = "cin",
["Circassia Purba"] = "cau-cir-pro",
["Circassian Barat"] = "ady",
["Cishingini"] = "asg",
["Citak"] = "txt",
["Ciwogai"] = "tgd",
["Coahuilteco"] = "xcw",
["Coatlán Zapotec"] = "zps",
["Cocama"] = "cod",
["Cochimi"] = "coj",
["Cocopa"] = "coc",
["Coeruna"] = "sai-coe",
["Coeur d'Alene"] = "crd",
["Cofán"] = "con",
["Cogui"] = "kog",
["Col"] = "liw",
["Colombian Sign Language"] = "csn",
["Columbia-Wenatchi"] = "col",
["Colán"] = "sai-col",
["Comaltepec Chinantec"] = "cco",
["Comanche"] = "com",
["Comechingon"] = "sai-cmg",
["Comecrudo"] = "xcm",
["Communicationssprache"] = "art-com",
["Como Karim"] = "cfg",
["Comoros Maore"] = "swb",
["Comoros Ngazidja"] = "zdj",
["Comox"] = "coo",
["Con"] = "cno",
["Coos"] = "csz",
["Copainalá Zoque"] = "zoc",
["Copala Triqui"] = "trc",
["Copallén"] = "sai-cop",
["Coquille"] = "coq",
["Cora"] = "crn",
["Cori"] = "cry",
["Cornish"] = "kw",
["Cornwall Kuno"] = "oco",
["Cornwall Pertengahan"] = "cnx",
["Coroado Puri"] = "sai-crd",
["Corsica"] = "co",
["Costa Rican Sign Language"] = "csr",
["Cotoname"] = "xcn",
["Cowlitz"] = "cow",
["Coyaima"] = "coy",
["Coyotepec Popoloca"] = "pbf",
["Coyutla Totonac"] = "toc",
["Cree"] = "cr",
["Cree Moose"] = "crm",
["Cree Timur Selatan"] = "crj",
["Cree Timur Utara"] = "crl",
["Creek"] = "mus",
["Cross River Hilir Purba"] = "nic-lcr-pro",
["Cross River Hulu Purba"] = "nic-ucr-pro",
["Crow"] = "cro",
["Cruzeño"] = "crz",
["Cua"] = "cua",
["Cuban Sign Language"] = "csf",
["Cubeo"] = "cub",
["Cueva"] = "sai-cva",
["Cuiba"] = "cui",
["Cuitlatec"] = "cuy",
["Culina"] = "cul",
["Culli"] = "sai-cul",
["Cumanagoto"] = "cuo",
["Cumbric"] = "xcb",
["Cun"] = "cuq",
["Cung"] = "cug",
["Cupan Purba"] = "azc-cup-pro",
["Cupeño"] = "cup",
["Curonian"] = "xcu",
["Curripaco"] = "kpc",
["Cushitic Purba"] = "cus-pro",
["Cushitic Selatan Purba"] = "cus-sou-pro",
["Cushitic Timur Tanah Tinggi Purba"] = "cus-hec-pro",
["Cutchi-Swahili"] = "ccl",
["Cuvok"] = "cuv",
["Cuyunon"] = "cyo",
["Cwi Bwamu"] = "bwy",
["Czech"] = "cs",
["Czech Kuno"] = "zlw-ocs",
["Czech Sign Language"] = "cse",
["Cốông"] = "cnc",
["Da'a Kaili"] = "kzf",
["Daantanai'"] = "lni",
["Daasanach"] = "dsh",
["Daba"] = "dbq",
["Dabarre"] = "dbr",
["Dabe"] = "dbe",
["Dacian"] = "xdc",
["Dadan"] = "sem-dad",
["Dadi Dadi"] = "dda",
["Dadibi"] = "mps",
["Dadiya"] = "dbd",
["Daga"] = "dgz",
["Dagaare Selatan"] = "dga",
["Dagaari Dioula"] = "dgd",
["Dagara Utara"] = "dgi",
["Dagba"] = "dgk",
["Dagbani"] = "dag",
["Dagik"] = "dec",
["Dagoman"] = "dgn",
["Dahalik"] = "dlk",
["Dahalo"] = "dal",
["Daho-Doo"] = "das",
["Dai"] = "dij",
["Dair"] = "drb",
["Daju Purba"] = "sdv-daj-pro",
["Dakaka"] = "bpa",
["Dakka"] = "dkk",
["Dakota"] = "dak",
["Dakpa"] = "dka",
["Dalmatian"] = "dlm",
["Daloa Bété"] = "bev",
["Daly Purba"] = "aus-dal-pro",
["Dama (Nigeria)"] = "dmm",
["Dama (Sierra Leone)"] = "dmn-dam",
["Damakawa"] = "dam",
["Damal"] = "uhn",
["Damar Barat"] = "drn",
["Damar Timur"] = "dmr",
["Dambi"] = "dac",
["Dameli"] = "dml",
["Dampelas"] = "dms",
["Dan"] = "dnj",
["Danaru"] = "dnr",
["Danau"] = "dnu",
["Dandami Maria"] = "daq",
["Dangaléat"] = "daa",
["Dangari Purba"] = "inc-dng-pro",
["Dangaura Tharu"] = "thl",
["Dani Barat"] = "dnw",
["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",
["Dargwa Purba"] = "cau-drg-pro",
["Darkinjung"] = "xda",
["Darlong"] = "dln",
["Darmiya"] = "drd",
["Darumbal"] = "xgm",
["Dass"] = "dot",
["Datooga"] = "tcc",
["Daungwurrung"] = "dgw",
["Daur"] = "dta",
["Davawenyo"] = "daw",
["Dawawa"] = "dww",
["Dawera-Daweloor"] = "ddw",
["Dawro"] = "dwr",
["Day"] = "dai",
["Dayi"] = "dax",
["Dazaga"] = "dzg",
["Deccani"] = "dcc",
["Dedua"] = "ded",
["Defaka"] = "afn",
["Deg"] = "mzw",
["Deg Xinag"] = "ing",
["Degema"] = "deg",
["Degenan"] = "dge",
["Dehwari"] = "deh",
["Dek"] = "dek",
["Dela-Oenale"] = "row",
["Delo"] = "ntr",
["Dem"] = "dem",
["Dema"] = "dmx",
["Demisa"] = "dei",
["Demta"] = "dmy",
["Dena'ina"] = "tfn",
["Dendi"] = "ddn",
["Dengese"] = "dez",
["Dengka"] = "dnk",
["Denmark"] = "da",
["Denmark Kuno"] = "gmq-oda",
["Denmark Pengembara"] = "rmd",
["Deno"] = "dbb",
["Denya"] = "anv",
["Dení"] = "dny",
["Deori"] = "der",
["Desano"] = "des",
["Desiya"] = "dso",
["Dewas Rai"] = "dwz",
["Dewoin"] = "dee",
["Dezfuli"] = "def",
["Dghwede"] = "dgh",
["Dhaiso"] = "dhs",
["Dhalandji"] = "dhl",
["Dhangu"] = "dhg",
["Dhanki"] = "dhn",
["Dhao"] = "nfa",
["Dharug"] = "xdk",
["Dhatki"] = "mki",
["Dhimal"] = "dhi",
["Dhivehi"] = "dv",
["Dhodia"] = "dho",
["Dhudhuroa"] = "ddr",
["Dhungaloo"] = "dhx",
["Dhurga"] = "dhu",
["Dhuwal"] = "dwu",
["Dhuwaya"] = "dwy",
["Dia"] = "dia",
["Dibiyaso"] = "dby",
["Dibo"] = "dio",
["Didinga"] = "did",
["Dieri"] = "dif",
["Digo"] = "dig",
["Dii"] = "dur",
["Dijim-Bwilim"] = "cfa",
["Dilling"] = "dil",
["Dima"] = "jma",
["Dimasa"] = "dis",
["Dimbong"] = "dii",
["Dime"] = "dim",
["Dineor"] = "mrx",
["Ding"] = "diz",
["Dinka"] = "din",
["Dinka Barat Daya"] = "dik",
["Dinka Barat Laut"] = "diw",
["Dinka Tengah Selatan"] = "dib",
["Dinka Tenggara"] = "dks",
["Dinka Timur Laut"] = "dip",
["Diodio"] = "ddi",
["Diri"] = "dwa",
["Dirim"] = "dir",
["Disa"] = "dsi",
["Ditammari"] = "tbz",
["Ditidaht"] = "dtd",
["Diuwe"] = "diy",
["Diuxi-Tilantongo Mixtec"] = "xtd",
["Dixon Reef"] = "dix",
["Dizin"] = "mdx",
["Dizoid Purba"] = "omv-diz-pro",
["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",
["Dogon Ampari"] = "aqd",
["Dogon Nanga Dama"] = "nzz",
["Dogoso"] = "dgs",
["Dogosé"] = "dos",
["Dogri"] = "doi",
["Dogrib"] = "dgr",
["Dogul Dom"] = "dbg",
["Doka"] = "dbi",
["Doko-Uyanga"] = "uya",
["Dolgan"] = "dlg",
["Dom"] = "doa",
["Domaaki"] = "dmk",
["Domari"] = "rmt",
["Dominican Sign Language"] = "doq",
["Dompo"] = "doy",
["Domu"] = "dof",
["Domung"] = "dev",
["Dondo"] = "dok",
["Dong"] = "doh",
["Dongo"] = "doo",
["Dongolawi"] = "kzh",
["Dongotono"] = "ddd",
["Dongshanba Lalo"] = "yik",
["Dongxiang"] = "sce",
["Donno So Dogon"] = "dds",
["Doondo"] = "dde",
["Dorasque"] = "cba-dor",
["Dori'o"] = "dor",
["Dorig"] = "wwo",
["Doromu-Koki"] = "kqc",
["Dorze"] = "doz",
["Doso"] = "dol",
["Doteli"] = "dty",
["Dothraki"] = "art-dtk",
["Doura"] = "don",
["Doutai"] = "tds",
["Doyayo"] = "dow",
["Dravidia Purba"] = "dra-pro",
["Dravidia Selatan I Purba"] = "dra-sdo-pro",
["Dravidia Selatan II Purba"] = "dra-sdt-pro",
["Dravidia Selatan Purba"] = "dra-sou-pro",
["Dravidia Tengah Purba"] = "dra-cen-pro",
["Dravidia Utara Purba"] = "dra-nor-pro",
["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",
["Dumait"] = "sem-dum",
["Dumbea"] = "duf",
["Dumi"] = "dus",
["Dumpas"] = "dmv",
["Dumun"] = "dui",
["Duna"] = "duc",
["Dungan"] = "dng",
["Dungmali"] = "raa",
["Dungra Bhil"] = "duh",
["Dungu"] = "dbv",
["Dura"] = "drq",
["Duri"] = "mvp",
["Duriankere"] = "dbn",
["Duruwa"] = "pci",
["Dusner"] = "dsn",
["Dusun Deyah"] = "dun",
["Dusun Malang"] = "duq",
["Dusun Sugut"] = "kzs",
["Dusun Tambunan"] = "kzt",
["Dusun Witu"] = "duw",
["Dutch Sign Language"] = "dse",
["Duun"] = "dux",
["Duupa"] = "dae",
["Duvle"] = "duv",
["Duwai"] = "dbp",
["Dwang"] = "nnu",
["Dyaabugay"] = "dyy",
["Dyaberdyaber"] = "dyb",
["Dyan"] = "dya",
["Dyangadi"] = "dyn",
["Dyirbal"] = "dbl",
["Dyugun"] = "dyd",
["Dyula"] = "dyu",
["Dza"] = "jen",
["Dzala"] = "dzl",
["Dzando"] = "dzn",
["Dzao Min"] = "bpn",
["Dzodinka"] = "add",
["Dzongkha"] = "dz",
["Dzuun"] = "dnn",
["Dâw"] = "kwa",
["E"] = "eee",
["E'ma Buyang"] = "yzg",
["Eastern Canadian Inuktitut"] = "ike",
["Ebira"] = "igb",
["Ebla"] = "xeb",
["Ebrié"] = "ebr",
["Ebughu"] = "ebg",
["Ede Cabe"] = "cbj",
["Ede Ica"] = "ica",
["Ede Idaca"] = "idd",
["Ede Ije"] = "ijj",
["Ede Nago"] = "nqg",
["Edekiri Purba"] = "alv-edk-pro",
["Edo"] = "bin",
["Edoid Purba"] = "alv-edo-pro",
["Edolo"] = "etr",
["Edom"] = "xdm",
["Edopi"] = "dbf",
["Efai"] = "efa",
["Efate Selatan"] = "erk",
["Efate Utara"] = "llp",
["Efe"] = "efe",
["Efik"] = "efi",
["Efutop"] = "ofu",
["Ega"] = "ega",
["Eggon"] = "ego",
["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",
["Elam"] = "elx",
["Eleme"] = "elm",
["Elepi"] = "ele",
["Elip"] = "ekm",
["Elkei"] = "elk",
["Eloi"] = "art-elo",
["Elotepec Zapotec"] = "zte",
["Eloyi"] = "afo",
["Elseng"] = "mrf",
["Elu"] = "elu",
["Elymi"] = "xly",
["Emae"] = "mmw",
["Emai"] = "ema",
["Eman"] = "emn",
["Embaloh"] = "emb",
["Emberá Utara"] = "emp",
["Emberá-Baudó"] = "bdc",
["Emberá-Catío"] = "cto",
["Emberá-Chamí"] = "cmi",
["Emberá-Tadó"] = "tdc",
["Embu"] = "ebu",
["Emem"] = "enr",
["Emerillon"] = "eme",
["Emilian"] = "egl",
["Emplawas"] = "emw",
["En"] = "enc",
["Enawené-Nawé"] = "unk",
["Ende"] = "end",
["Enets Hutan"] = "enf",
["Enets Tundra"] = "enh",
["Enga"] = "enq",
["Engenni"] = "enn",
["Enggano"] = "eno",
["Enlhet"] = "enl",
["Enrekang"] = "ptt",
["Enu"] = "enu",
["Enwan"] = "env",
["Enwang"] = "enw",
["Enxet"] = "enx",
["Eotile"] = "eot",
["Epena"] = "sja",
["Epi-Olmec"] = "xep",
["Epie"] = "epi",
["Eravallan"] = "era",
["Erave"] = "kjy",
["Ere"] = "twp",
["Erie"] = "iro-ere",
["Eritai"] = "ert",
["Erokwanas"] = "erw",
["Erre"] = "err",
["Erromintxela"] = "emx",
["Ersu"] = "ers",
["Ersu Purba"] = "sit-ers-pro",
["Eruwa"] = "erh",
["Erzya"] = "myv",
["Esan"] = "ish",
["Ese"] = "mcq",
["Ese Ejja"] = "ese",
["Eshtehardi"] = "esh",
["Esimbi"] = "ags",
["Eskayan"] = "esy",
["Eskimo Purba"] = "esx-esk-pro",
["Eskimo-Aleut Purba"] = "esx-pro",
["Esmeralda"] = "sai-esm",
["Esperanto"] = "eo",
["Esselen"] = "esq",
["Estonia"] = "et",
["Esuma"] = "esm",
["Etchemin"] = "etc",
["Etebi"] = "etb",
["Eten"] = "etx",
["Eteocretan"] = "ecr",
["Eteocypriot"] = "ecy",
["Etkywan"] = "ich",
["Eton (Cameroon)"] = "eto",
["Eton (Vanuatu)"] = "etn",
["Etruria"] = "ett",
["Etulo"] = "utr",
["Evant"] = "bzz",
["Even"] = "eve",
["Evenki"] = "evn",
["Ewage-Notu"] = "nou",
["Ewarhuyana"] = "sai-ewa",
["Ewe"] = "ee",
["Ewondo"] = "ewo",
["Extremaduran"] = "ext",
["Eyak"] = "eya",
["Ezaa"] = "eza",
["Fagani"] = "faf",
["Faifi"] = "fif",
["Faiwol"] = "fai",
["Fala"] = "fax",
["Fali"] = "fli",
["Fali Baissa"] = "fah",
["Fali Purba"] = "alv-fli-pro",
["Fali Selatan"] = "fal",
["Fali Utara"] = "fll",
["Falisci"] = "xfa",
["Fam"] = "fam",
["Fanagalo"] = "fng",
["Fanamaket"] = "bjp",
["Fang (Bantu)"] = "fan",
["Fang (Beboid)"] = "fak",
["Fania"] = "fni",
["Faroe"] = "fo",
["Fars Barat Daya"] = "fay",
["Fars Barat Laut"] = "faz",
["Fas"] = "fqs",
["Fasu"] = "faa",
["Fataleka"] = "far",
["Fataluku"] = "ddg",
["Fayu"] = "fau",
["Fe'fe'"] = "fmp",
["Fedan"] = "pdn",
["Fembe"] = "agl",
["Fer"] = "kah",
["Feroge"] = "fer",
["Fiji"] = "fj",
["Fiji Barat"] = "wyy",
["Filipina Purba"] = "phi-pro",
["Filistin"] = "mis-phi",
["Filomena Mata-Coahuitlán Totonac"] = "tlp",
["Fingallian"] = "gmw-fin",
["Finisterre Yau"] = "yuw",
["Finland"] = "fi",
["Finnik Purba"] = "urj-fin-pro",
["Finongan"] = "fag",
["Fipa"] = "fip",
["Firan"] = "fir",
["Fiwaga"] = "fiw",
["Flemish Barat"] = "vls",
["Flemish Sign Language"] = "vgt",
["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",
["Fortsenal"] = "frt",
["Fox"] = "sac",
["Franc-Comtois"] = "roa-fcm",
["Francisco León Zoque"] = "zos",
["Franco-Provençal"] = "frp",
["Franconia Rhine"] = "gmw-rfr",
["Franconia Tengah"] = "gmw-cfr",
["Franconia Timur"] = "vmf",
["French Belgian Sign Language"] = "sfb",
["Frisia Barat"] = "fy",
["Frisia Kuno"] = "ofs",
["Frisia Saterland"] = "stq",
["Frisia Utara"] = "frr",
["Friulian"] = "fur",
["Fula"] = "ff",
["Fuliiru"] = "flr",
["Fulniô"] = "fun",
["Fum"] = "fum",
["Fungwa"] = "ula",
["Fur"] = "fvr",
["Furu"] = "fuu",
["Futuna Timur"] = "fud",
["Futuna-Aniwa"] = "fut",
["Fuyug"] = "fuy",
["Fwe"] = "fwe",
["Fwâi"] = "fwa",
["Fyam"] = "pym",
["Fyer"] = "fie",
["Gaa"] = "ttb",
["Gaam"] = "tbi",
["Gabadi"] = "kbt",
["Gabrielino-Fernandeño"] = "xgf",
["Gaelik Scotland"] = "gd",
["Gagnoa Bété"] = "btg",
["Gahri"] = "bfu",
["Galatia"] = "xga",
["Galicia"] = "gl",
["Galicia-Portugis Kuno"] = "roa-opt",
["Galindan"] = "xgl",
["Gallaecia"] = "cel-gal",
["Gallo"] = "roa-gal",
["Gallo-Italik Basilicata"] = "roa-gib",
["Gallo-Italik Sicily"] = "roa-gis",
["Gallura"] = "sdn",
["Galo"] = "adl",
["Gamale Kham"] = "kgj",
["Gamela"] = "sai-gam",
["Gamilaraay"] = "kld",
["Gamo-Ningi"] = "bte",
["Gandhari"] = "pgd",
["Gane"] = "gzn",
["Ganza"] = "gza",
["Gapapaiwa"] = "pwg",
["Garawa"] = "wrk",
["Garifuna"] = "cab",
["Garingbal"] = "xgi",
["Garus"] = "gyb",
["Garza"] = "xgr",
["Gaul"] = "cel-gau",
["Gavak"] = "dmc",
["Gavião Pará"] = "gvp",
["Gavião do Jiparaná"] = "gvo",
["Gawar-Bati"] = "gwt",
["Gawwada"] = "gwd",
["Gayil"] = "gyl",
["Gayón"] = "sai-gay",
["Gbaya Barat Laut"] = "gya",
["Gbaya Purba"] = "gba-pro",
["Gbayi"] = "gyg",
["Gbe Kotafon"] = "kqk",
["Gbe Purba"] = "alv-gbe-pro",
["Gbe Xwla Barat"] = "xwl",
["Gbin"] = "xgb",
["Gciriku"] = "diu",
["Gcwi"] = "gwj",
["Ge"] = "hmj",
["Gedeo"] = "drs",
["Gela"] = "nlg",
["Gele'"] = "sbc",
["Georgia"] = "ka",
["Georgia Kuno"] = "oge",
["Georgia-Zan Purba"] = "ccs-gzn-pro",
["Gepo"] = "ygp",
["Geshiza"] = "ero-gsz",
["Ghayavi"] = "bmk",
["Ghomala'"] = "bbj",
["Ghotuo"] = "aaa",
["Giangan"] = "bgi",
["Gikyode"] = "acd",
["Gimme"] = "kmp",
["Girawa"] = "bbr",
["Giryama"] = "nyf",
["Gizrra"] = "tof",
["Glio-Oubi"] = "oub",
["Glosa"] = "igs",
["Goa'uld"] = "art-gld",
["Goemai"] = "ank",
["Goguryeo"] = "zkg",
["Gokhy"] = "tbq-gkh",
["Golin"] = "gvf",
["Golpa"] = "lja",
["Gong"] = "ugo",
["Goreng"] = "xgg",
["Goth Crimea"] = "gme-cgo",
["Gottscheerish"] = "gmw-gts",
["Gowro"] = "gwf",
["Grangali"] = "nli",
["Grass Koiari"] = "kbk",
["Grassfields Purba"] = "nic-grf-pro",
["Greek"] = "el",
["Greenland"] = "kl",
["Gros Ventre"] = "ats",
["Gua"] = "gwx",
["Guachí"] = "sai-gua",
["Guajá"] = "gvj",
["Guamo"] = "sai-gmo",
["Guang Purba"] = "alv-gng-pro",
["Guarani Klasik"] = "gn-cls",
["Guarayu"] = "gyr",
["Guazacapán"] = "nai-guz",
["Gudang"] = "xgd",
["Gudanji"] = "nji",
["Guevea de Humboldt Zapotec"] = "zpg",
["Gugu Warra"] = "wrw",
["Guiberoua Bété"] = "bet",
["Guinau"] = "awd-gnu",
["Guinea-Bissau Sign Language"] = "lgs",
["Gujarati Kuno"] = "inc-ogu",
["Gujarati Pertengahan"] = "inc-mgu",
["Gujerat"] = "gu",
["Gulay"] = "gvl",
["Gumawana"] = "gvs",
["Gundungurra"] = "xrd",
["Gungabula"] = "gyf",
["Gungu"] = "rub",
["Gunu"] = "yas",
["Gunya"] = "gyy",
["Gur Lama"] = "las",
["Gur Purba"] = "nic-gur-pro",
["Gurani"] = "hac",
["Gurmana"] = "gvm",
["Gurung"] = "gvr",
["Gurunsi Purba"] = "nic-gns-pro",
["Gutnish"] = "gmq-gut",
["Gutnish Kuno"] = "gmq-ogt",
["Guugu Yimidhirr"] = "kky",
["Guwa"] = "xgw",
["Guwamu"] = "gwu",
["Guwar"] = "aus-guw",
["Guyani"] = "gvy",
["Gvoko"] = "ngs",
["Gwa"] = "gwb",
["Gwahatike"] = "dah",
["Gwak"] = "jgk",
["Gwamhi-Wuri"] = "bga",
["Gwandara"] = "gwn",
["Gwara"] = "alv-gwa",
["Gweno"] = "gwe",
["Gwere"] = "gwr",
["Gwich'in"] = "gwi",
["Gyalsumdo"] = "gyo",
["Gyele"] = "gyi",
["Gyem"] = "gye",
["Güenoa"] = "sai-gue",
["Habu"] = "hbu",
["Hachijō"] = "jpx-hcj",
["Hadiyya"] = "hdy",
["Hadothi"] = "hoj",
["Hadrami"] = "xhd",
["Hadza"] = "hts",
["Haeke"] = "aek",
["Hahon"] = "hah",
["Haida"] = "hai",
["Haida Selatan"] = "hax",
["Haida Utara"] = "hdn",
["Haigwai"] = "hgw",
["Hainyaxo Bozo"] = "bzx",
["Haisla"] = "has",
["Haitian Vodoun Culture Language"] = "hvc",
["Haiǁom"] = "hgm",
["Haji"] = "hji",
["Hajong"] = "haj",
["Hakka"] = "hak",
["Hakö"] = "hao",
["Halang"] = "hal",
["Halang Doan"] = "hld",
["Halbi"] = "hlb",
["Halia"] = "hla",
["Halkomelem"] = "hur",
["Halmahera Utara Purba"] = "paa-nha-pro",
["Halmahera-Cenderawasih Purba"] = "poz-hce-pro",
["Hamap"] = "hmu",
["Hamba"] = "hba",
["Hamer-Banna"] = "amf",
["Hamtai"] = "hmt",
["Hanga"] = "hag",
["Hanga Hundi"] = "wos",
["Hani"] = "hni",
["Hanunoo"] = "hnn",
["Harami"] = "xha",
["Harari"] = "har",
["Haraza"] = "nub-har",
["Harijan Kinnauri"] = "kjo",
["Haroi"] = "hro",
["Harsusi"] = "hss",
["Haruai"] = "tmd",
["Haruku"] = "hrk",
["Haryanvi"] = "bgc",
["Harzani"] = "hrz",
["Hasait"] = "sem-has",
["Hasha"] = "ybj",
["Hatam"] = "had",
["Hatti"] = "xht",
["Hausa"] = "ha",
["Haush"] = "sai-hau",
["Havasupai-Walapai-Yavapai"] = "yuf",
["Haveke"] = "hvk",
["Havu"] = "hav",
["Hawai'i Pidgin Sign Language"] = "hps",
["Hawaii"] = "haw",
["Haya"] = "hay",
["Hdi"] = "xed",
["Hehe"] = "heh",
["Heiban"] = "hbn",
["Heiban Purba"] = "alv-hei-pro",
["Heiltsuk"] = "hei",
["Hellenik Purba"] = "grk-pro",
["Helong"] = "heg",
["Hema"] = "nix",
["Hemba"] = "hem",
["Hember Avu"] = "mmi",
["Herdé"] = "hed",
["Herero"] = "hz",
["Hermit"] = "llf",
["Hernican"] = "xhr",
["Het"] = "hit",
["Hewa"] = "ham",
["Heyo"] = "auk",
["Hibito"] = "hib",
["Hidatsa"] = "hid",
["Higaonon"] = "mba",
["Highland Konjo"] = "kjk",
["Highland Oaxaca Chontal"] = "chd",
["Highland Popoluca"] = "poi",
["Highland Totonac"] = "tos",
["Hijuk"] = "hij",
["Hiligaynon"] = "hil",
["Himarimã"] = "hir",
["Hindi"] = "hi",
["Hindi Dogri"] = "dgo",
["Hindi Fiji"] = "hif",
["Hindi Kreol Andaman"] = "hca",
["Hindi Kuno"] = "inc-ohi",
["Hindko Selatan"] = "hnd",
["Hindko Utara"] = "hno",
["Hinduri"] = "hii",
["Hindustan Caribbean"] = "hns",
["Hiri Motu"] = "ho",
["Hisma"] = "sem-his",
["Hitchiti"] = "nai-hit",
["Hitu"] = "htu",
["Hiw"] = "hiw",
["Hixkaryana"] = "hix",
["Hlai"] = "lic",
["Hlai Purba"] = "qfa-lic-pro",
["Hlepho Phowa"] = "yhl",
["Hlersu"] = "hle",
["Hmar"] = "hmr",
["Hmong Don"] = "hmf",
["Hmong Dô"] = "hmv",
["Hmong Guiyang Barat Daya"] = "hmg",
["Hmong Guiyang Selatan"] = "hmy",
["Hmong Guiyang Utara"] = "huj",
["Hmong Hijau"] = "hnj",
["Hmong Huishui Barat Daya"] = "hmh",
["Hmong Huishui Tengah"] = "hmc",
["Hmong Huishui Timur"] = "hme",
["Hmong Huishui Utara"] = "hmi",
["Hmong Luopohe"] = "hml",
["Hmong Mashan Barat"] = "hmw",
["Hmong Mashan Selatan"] = "hma",
["Hmong Mashan Tengah"] = "hmm",
["Hmong Mashan Utara"] = "hmp",
["Hmong Putih"] = "mww",
["Hmong Shua"] = "hmz",
["Hmong-Mien Purba"] = "hmx-pro",
["Hmongik Purba"] = "hmn-pro",
["Hmwaveke"] = "mrk",
["Ho"] = "hoc",
["Ho Chi Minh City Sign Language"] = "hos",
["Hoava"] = "hoa",
["Hobyót"] = "hoh",
["Hoia Hoia"] = "hhi",
["Hokkien"] = "nan-hbl",
["Hokkien Peranakan Kelantan"] = "mis-hkl",
["Holikachuk"] = "hoi",
["Holiya"] = "hoy",
["Holma"] = "hod",
["Holoholo"] = "hoo",
["Holu"] = "hol",
["Homa"] = "hom",
["Hone"] = "juh",
["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",
["Hrusish Purba"] = "sit-hrs-pro",
["Hruso"] = "hru",
["Hrê"] = "hre",
["Hu"] = "huo",
["Huachipaeri"] = "hug",
["Huambisa"] = "hub",
["Huaorani"] = "auc",
["Huarijio"] = "var",
["Huaulu"] = "hud",
["Huave"] = "huv",
["Huba"] = "hbb",
["Huetar"] = "cba-hue",
["Huichol"] = "hch",
["Huilliche"] = "huh",
["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",
["Hungary"] = "hu",
["Hungary Kuno"] = "ohu",
["Hungworo"] = "nat",
["Hunjara-Kaina Ke"] = "hkk",
["Hunsrik"] = "hrx",
["Hunzib"] = "huz",
["Hupa"] = "hup",
["Hupdë"] = "jup",
["Hupla"] = "hap",
["Hurri"] = "xhu",
["Hurro-Urartia Purba"] = "qfa-hur-pro",
["Hwana"] = "hwo",
["Hya"] = "hya",
["Hyam"] = "jab",
["Hän"] = "haa",
["Hértevin"] = "hrt",
["I-Wak"] = "iwk",
["Iaai"] = "iai",
["Iamalele"] = "yml",
["Iatmul"] = "ian",
["Iau"] = "tmu",
["Ibali Teke"] = "tek",
["Ibaloi"] = "ibl",
["Iban"] = "iba",
["Ibanag"] = "ibg",
["Ibani"] = "iby",
["Ibatan"] = "ivb",
["Iberia"] = "xib",
["Ibibio"] = "ibb",
["Ibino"] = "ibn",
["Iboko"] = "bkp",
["Ibrani"] = "he",
["Ibrani Samaria"] = "smp",
["Ibu"] = "ibu",
["Ibuoro"] = "ibr",
["Iceland"] = "is",
["Iceve-Maci"] = "bec",
["Idahan"] = "dbj",
["Idakho-Isukha-Tiriki"] = "ida",
["Idaté"] = "idt",
["Idere"] = "ide",
["Idesa"] = "ids",
["Idi"] = "idi",
["Idiom Neutral"] = "mis-idn",
["Ido"] = "io",
["Idoma"] = "idu",
["Idomoid Purba"] = "alv-ido-pro",
["Idon"] = "idc",
["Idu"] = "clk",
["Idun"] = "ldb",
["Iduna"] = "viv",
["Ifo"] = "iff",
["Ifè"] = "ife",
["Igala"] = "igl",
["Igana"] = "igg",
["Igbo"] = "ig",
["Igboid Purba"] = "alv-igb-pro",
["Igede"] = "ige",
["Ignaciano"] = "ign",
["Igo"] = "ahl",
["Iguta"] = "nar",
["Igwe"] = "igw",
["Iha"] = "ihp",
["Ihievbe"] = "ihi",
["Ija-Zuba"] = "vki",
["Ijoid Purba"] = "ijo-pro",
["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",
["Illyria"] = "xil",
["Ilocano"] = "ilo",
["Ilongot"] = "ilk",
["Ilue"] = "ilv",
["Ilwana"] = "mlk",
["Imbongu"] = "imo",
["Imonda"] = "imn",
["Imroing"] = "imr",
["Inabaknon"] = "abx",
["Inapang"] = "mzu",
["Indanga"] = "bnt-ind",
["Indo-Arya Purba"] = "inc-pro",
["Indo-Eropah Purba"] = "ine-pro",
["Indo-Iran Purba"] = "iir-pro",
["Indo-Portugis"] = "idb",
["Indonesia"] = "id",
["Indri"] = "idr",
["Ineseño"] = "inz",
["Inga"] = "inb",
["Inggeris"] = "en",
["Inggeris Kreol Islander"] = "icr",
["Inggeris Kreol Tobago"] = "tgh",
["Inggeris Kreol Trinidad"] = "trf",
["Inggeris Kreol Turks dan Caicos"] = "tch",
["Inggeris Kreol Vincent"] = "svc",
["Inggeris Kuno"] = "ang",
["Inggeris Pertengahan"] = "enm",
["Inggeris Pijin Cina"] = "cpi",
["Inggeris Solombala"] = "crp-slb",
["Ingria"] = "izh",
["Ingush"] = "inh",
["Inlaod Itneg"] = "iti",
["Inoke-Yate"] = "ino",
["Inonhan"] = "loc",
["Inor"] = "ior",
["Interlingua"] = "ia",
["Interlingue"] = "ie",
["International Sign"] = "ils",
["Interslavic"] = "isv",
["Intha"] = "int",
["Inuinnaqtun"] = "esx-inq",
["Inuit Purba"] = "esx-inu-pro",
["Inuktitut"] = "iu",
["Inuktun"] = "esx-ink",
["Inupiaq"] = "ik",
["Inuvialuktun"] = "ikt",
["Ipai"] = "nai-ipa",
["Ipiko"] = "ipo",
["Ipili"] = "ipi",
["Ipulo"] = "ass",
["Iquito"] = "iqu",
["Ir"] = "irr",
["Iran Purba"] = "ira-pro",
["Irantxe"] = "irn",
["Iranun"] = "ill",
["Iraqw"] = "irk",
["Irarutu"] = "irh",
["Iraya"] = "iry",
["Ireland"] = "ga",
["Ireland Kuno"] = "sga",
["Ireland Pertengahan"] = "mga",
["Iresim"] = "ire",
["Iroquois Purba"] = "iro-pro",
["Iroquois Utara Purba"] = "iro-nor-pro",
["Irula"] = "iru",
["Isabi"] = "isa",
["Isan"] = "tts",
["Isanzu"] = "isn",
["Isauria"] = "mis-isa",
["Isconahua"] = "isc",
["Isebe"] = "igo",
["Ishkashimi"] = "isk",
["Isinai"] = "inn",
["Isirawa"] = "srl",
["Isnag"] = "isd",
["Isoko"] = "iso",
["Istriot"] = "ist",
["Istro-Romania"] = "ruo",
["Isu"] = "isu",
["Isubu"] = "szv",
["Isyarat Kenya"] = "xki",
["Isyarat Maghribi"] = "xms",
["Isyarat Malaysia"] = "xml",
["Itali"] = "it",
["Italik Purba"] = "itc-pro",
["Itawit"] = "itv",
["Itelmen"] = "itl",
["Itene"] = "ite",
["Iteri"] = "itr",
["Itik"] = "itx",
["Ito"] = "itw",
["Itonama"] = "ito",
["Itsekiri"] = "its",
["Itu Mbon Uzo"] = "itm",
["Itzá"] = "itz",
["Iu Mien"] = "ium",
["Ivatan"] = "ivv",
["Iwaidja"] = "ibd",
["Iwaidjan Purba"] = "aus-wdj-pro",
["Iwal"] = "kbm",
["Iwam"] = "iwm",
["Iwur"] = "iwo",
["Ixcatec"] = "ixc",
["Ixil"] = "ixl",
["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",
["Jakaltek"] = "jac",
["Jakati"] = "jat",
["Jakun"] = "jak",
["Jalkunan"] = "bxl",
["Jamamadí"] = "jaa",
["Jaminjung"] = "djd",
["Jamsay"] = "djm",
["Jamtish"] = "gmq-jmk",
["Jandavra"] = "jnd",
["Janday"] = "jan",
["Jangkang"] = "djo",
["Jangshung"] = "jna",
["Janji"] = "jni",
["Japhug"] = "sit-jap",
["Japrería"] = "jru",
["Jaqaru"] = "jqr",
["Jara"] = "jaf",
["Jarai"] = "jra",
["Jarawa"] = "anq",
["Jaru"] = "ddj",
["Jassic"] = "ysc",
["Jaunsari"] = "jns",
["Javindo"] = "jvd",
["Jawa"] = "jv",
["Jawa Caribbean"] = "jvn",
["Jawa Kuno"] = "kaw",
["Jawa Ontong"] = "ojv",
["Jawe"] = "jaz",
["Jaya"] = "jyy",
["Jebel Timur Purba"] = "sdv-eje-pro",
["Jebero"] = "jeb",
["Jeh"] = "jeh",
["Jehai"] = "jhi",
["Jeikó"] = "sai-jko",
["Jeju"] = "jje",
["Jemez"] = "tow",
["Jenaama Bozo"] = "bze",
["Jeng"] = "jeg",
["Jennu Kurumba"] = "xuj",
["Jepun"] = "ja",
["Jepun Kuno"] = "ojp",
["Jepunik Purba"] = "jpx-pro",
["Jere"] = "jer",
["Jeri Kuo"] = "jek",
["Jerman"] = "de",
["Jerman Pennsylvania"] = "pdc",
["Jerman Rendah"] = "nds",
["Jerman Tengah Timur"] = "gmw-ecg",
["Jerman Volga"] = "gmw-vog",
["Jerman Zipser"] = "gmw-zps",
["Jermanik Barat Purba"] = "gmw-pro",
["Jermanik Purba"] = "gem-pro",
["Jeru"] = "akj",
["Jerung"] = "jee",
["Jiamao"] = "jio",
["Jiba"] = "juo",
["Jibu"] = "jib",
["Jicaque Barat"] = "nai-wji",
["Jicarilla"] = "apj",
["Jie"] = "mis-jie",
["Jiiddu"] = "jii",
["Jilbe"] = "jie",
["Jili"] = "mgi",
["Jilim"] = "jil",
["Jimi"] = "jmi",
["Jimjimen"] = "jim",
["Jin"] = "cjy",
["Jina"] = "jia",
["Jingpho"] = "kac",
["Jingulu"] = "jig",
["Jiongnai Bunu"] = "pnu",
["Jirajara"] = "sai-jrj",
["Jirel"] = "jul",
["Jiru"] = "jrr",
["Jita"] = "jit",
["Jizhao"] = "mis-jzh",
["Jju"] = "kaj",
["Joba"] = "job",
["Jofotek-Bromnya"] = "jbr",
["Jola-Fonyi"] = "dyo",
["Jola-Kasa"] = "csk",
["Jonkor Bourmataguil"] = "jeu",
["Jorá"] = "jor",
["Jowulu"] = "jow",
["Ju"] = "juu",
["Juang"] = "jun",
["Judeo-Itali"] = "itk",
["Judeo-Persian"] = "jpr",
["Judeo-Tat"] = "jdt",
["Jukun Takum"] = "jbu",
["Jukunoid Purba"] = "nic-jkn-pro",
["Jumaytepeque"] = "nai-jum",
["Jumjum"] = "jum",
["Jumli"] = "jml",
["Jungle Inga"] = "inj",
["Jur Modo"] = "bex",
["Juray"] = "juy",
["Jurchen"] = "juc",
["Jurúna"] = "jur",
["Jutiapa"] = "nai-jtp",
["Jutish"] = "jut",
["Juwal"] = "mwb",
["Juǀ'hoan"] = "ktz",
["Jwira-Pepesa"] = "jwi",
["Jê Purba"] = "sai-jee-pro",
["Jê Selatan Purba"] = "sai-sje-pro",
["Jê Tengah Purba"] = "sai-cje-pro",
["Jê Utara Purba"] = "sai-nje-pro",
["Júma"] = "jua",
["K'iche'"] = "quc",
["Kaamba"] = "xku",
["Kaan"] = "ldl",
["Kaapor Sign Language"] = "uks",
["Kaba"] = "ksp",
["Kabalai"] = "kvf",
["Kabardia"] = "kbd",
["Kabatei"] = "xkp",
["Kabba-Laka"] = "lap",
["Kabishiana"] = "tup-kab",
["Kabiyé"] = "kbp",
["Kabola"] = "klz",
["Kabore One"] = "onk",
["Kabras"] = "lkb",
["Kaburi"] = "uka",
["Kabutra"] = "kbu",
["Kabuverdianu"] = "kea",
["Kabwa"] = "cwa",
["Kabwari"] = "kcw",
["Kabyle"] = "kab",
["Kachama-Ganjule"] = "kcx",
["Kachari"] = "xac",
["Kachchi"] = "kfr",
["Kacipo-Balesi"] = "koe",
["Kaco'"] = "xkk",
["Kadai"] = "kzd",
["Kadar"] = "kej",
["Kadara"] = "kad",
["Kadaru"] = "kdu",
["Kadazan"] = "kzj",
["Kadazan Labuk-Kinabatangan"] = "dtb",
["Kadazan Sungai Klias"] = "kqt",
["Kadazandusun"] = "dtp",
["Kadiwéu"] = "kbc",
["Kado"] = "kdv",
["Kadu Purba"] = "qfa-kad-pro",
["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",
["Kaingáng São Paulo"] = "zkp",
["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",
["Kalagan"] = "kqe",
["Kalagan Kagan"] = "kll",
["Kalagan Tagakaulu"] = "klg",
["Kalam"] = "kmh",
["Kalami"] = "gwc",
["Kalamian Purba"] = "phi-kal-pro",
["Kalamsé"] = "knz",
["Kalanadi"] = "wkl",
["Kalanga"] = "kck",
["Kalao"] = "kly",
["Kalapuya"] = "kyl",
["Kalapuya Purba"] = "nai-klp-pro",
["Kalapuya Selatan"] = "sxk",
["Kalapuya Utara"] = "nrt",
["Kalarko"] = "kba",
["Kalasha"] = "kls",
["Kalasuri"] = "xme-kls",
["Kalašma"] = "ine-kal",
["Kalenjin"] = "kln",
["Kalinago"] = "crb",
["Kalinga Butbut"] = "kyb",
["Kalinga Lembah Mabaka"] = "kkg",
["Kalinga Limos"] = "kmk",
["Kalinga Lubuagan"] = "knb",
["Kalinga Madukayang"] = "kmd",
["Kalinga Selatan"] = "ksc",
["Kalinga Tanudan"] = "kml",
["Kalkatungu"] = "ktg",
["Kalkoti"] = "xka",
["Kalmyk"] = "xal",
["Kalou"] = "ywa",
["Kaluli"] = "bco",
["Kalumpang"] = "kli",
["Kam"] = "kdx",
["Kam Selatan"] = "kmc",
["Kam Utara"] = "doc",
["Kam-Sui Purba"] = "qfa-kms-pro",
["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",
["Kambera"] = "xbr",
["Kamberataro"] = "kbv",
["Kamberau"] = "irx",
["Kambiwá"] = "xbw",
["Kami"] = "kmi",
["Kamkata-viri"] = "bsh",
["Kamo"] = "kcq",
["Kamoro"] = "kgq",
["Kampa Purba"] = "awd-kmp-pro",
["Kamta"] = "rkt",
["Kamta Purba"] = "inc-krd-pro",
["Kamu"] = "xmu",
["Kamula"] = "xla",
["Kamwe"] = "hig",
["Kanakanabu"] = "xnb",
["Kanakuru"] = "kna",
["Kanamari"] = "knm",
["Kanashi"] = "xns",
["Kanasi"] = "soq",
["Kandas"] = "kqw",
["Kande"] = "kbs",
["Kang"] = "kyp",
["Kanga"] = "kcp",
["Kangean"] = "kkv",
["Kanggape"] = "igm",
["Kangjia"] = "kxs",
["Kango"] = "kty",
["Kango-Sua"] = "kzy",
["Kangri"] = "xnr",
["Kaniet"] = "ktk",
["Kanikkaran"] = "kev",
["Kaningdon-Nindem"] = "kdp",
["Kaningi"] = "kzo",
["Kaningra"] = "knr",
["Kaninuwa"] = "wat",
["Kanite"] = "kmu",
["Kanjari"] = "kft",
["Kanju"] = "kbe",
["Kankanaey"] = "kne",
["Kankanay Utara"] = "xnn",
["Kannada"] = "kn",
["Kannada Kuno"] = "dra-okn",
["Kannada Kurumba"] = "kfi",
["Kannada Pertengahan"] = "dra-mkn",
["Kannauji"] = "bjj",
["Kanowit"] = "kxn",
["Kanoé"] = "kxo",
["Kansa"] = "ksk",
["Kantonis"] = "yue",
["Kantosi"] = "xkt",
["Kanu"] = "khx",
["Kanufi"] = "kni",
["Kanuri"] = "kr",
["Kanyok"] = "kny",
["Kao"] = "kax",
["Kaonde"] = "kqn",
["Kap"] = "ykm",
["Kapampangan"] = "pam",
["Kapauri"] = "khp",
["Kapin"] = "tbx",
["Kapinawá"] = "xpn",
["Kapingamarangi"] = "kpg",
["Kapriman"] = "dju",
["Kaptiau"] = "kbi",
["Kapya"] = "klo",
["Kaqchikel"] = "cak",
["Kara (New Guinea)"] = "leu",
["Kara (Tanzania)"] = "reg",
["Karaboro Barat"] = "kza",
["Karaboro Timur"] = "xrb",
["Karachay-Balkar"] = "krc",
["Karaim"] = "kdr",
["Karajá"] = "kpj",
["Karakalpak"] = "kaa",
["Karakhanid"] = "xqa",
["Karami"] = "xar",
["Karamojong"] = "kdj",
["Karang"] = "kzr",
["Karanga"] = "kth",
["Karankawa"] = "zkk",
["Karao"] = "kyj",
["Karas"] = "kgv",
["Karata"] = "kpt",
["Karawa"] = "xrw",
["Karbi"] = "mjw",
["Karbi Amri"] = "ajz",
["Kare (Africa)"] = "kbn",
["Kare (New Guinea)"] = "kmf",
["Karekare"] = "kai",
["Karelia"] = "krl",
["Karen Brek"] = "kvl",
["Karen Bwe"] = "bwe",
["Karen Geba"] = "kvq",
["Karen Lahta"] = "kvt",
["Karen Manumanaw"] = "kxf",
["Karen Pa'o"] = "blk",
["Karen Paku"] = "kpp",
["Karen Purba"] = "kar-pro",
["Karen S'gaw"] = "ksw",
["Karen Yinbaw"] = "kvu",
["Karen Yintale"] = "kvy",
["Karen Zayein"] = "kxk",
["Karey"] = "kyd",
["Kari"] = "kbj",
["Kari'na"] = "car",
["Karingani"] = "kgn",
["Karipuna"] = "kuq",
["Karipúna"] = "kgm",
["Kariri"] = "kzw",
["Karitiâna"] = "ktn",
["Kariya"] = "kil",
["Kariyarra"] = "vka",
["Karkar-Yuri"] = "yuj",
["Karkin"] = "krb",
["Karko"] = "kko",
["Karnai"] = "bbv",
["Karo"] = "kxh",
["Karok"] = "kyh",
["Karolanos"] = "kyn",
["Karon"] = "krx",
["Karon Dori"] = "kgw",
["Karore"] = "xkx",
["Karranga"] = "xrq",
["Kartvelia Purba"] = "ccs-pro",
["Karuwali"] = "rxw",
["Kasanga"] = "ccj",
["Kasem"] = "xsm",
["Kashaya"] = "kju",
["Kashmir"] = "ks",
["Kashubian"] = "csb",
["Kasiguranin"] = "ksn",
["Kaska"] = "kkz",
["Kaskean"] = "zsk",
["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",
["Katu Barat"] = "kuf",
["Katu Timur"] = "ktv",
["Katua"] = "kta",
["Katuik Purba"] = "mkh-kat-pro",
["Katukina"] = "knt",
["Kaukasia Barat Laut Purba"] = "cau-nwc-pro",
["Kaukasia Timur Laut Purba"] = "cau-nec-pro",
["Kaulong"] = "pss",
["Kaur"] = "vkk",
["Kaure"] = "bpp",
["Kaurna"] = "zku",
["Kauwera"] = "xau",
["Kavalan"] = "ckv",
["Kavet"] = "krv",
["Kawacha"] = "kcb",
["Kawahiva"] = "tup-kaw",
["Kawaiisu"] = "xaw",
["Kawe"] = "kgb",
["Kawishana"] = "awd-kaw",
["Kawésqar"] = "alc",
["Kaxararí"] = "ktx",
["Kaxuyana"] = "kbb",
["Kaya"] = "zra",
["Kayabí"] = "kyz",
["Kayagar"] = "kyt",
["Kayah Barat"] = "kyu",
["Kayah Timur"] = "eky",
["Kayan"] = "pdu",
["Kayan Baram"] = "kys",
["Kayan Mahakam"] = "xay",
["Kayan Mendalam"] = "xkd",
["Kayan Rejang"] = "ree",
["Kayan Sungai Kayan"] = "xkn",
["Kayan Wahau"] = "whu",
["Kayapa Kallahan"] = "kak",
["Kayapó"] = "txu",
["Kayardild"] = "gyd",
["Kayeli"] = "kzl",
["Kayong"] = "kxy",
["Kayort"] = "kyv",
["Kayupulau"] = "kzu",
["Kazakh"] = "kk",
["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",
["Keley-I Kallahan"] = "ify",
["Keliko"] = "kbo",
["Kelo"] = "xel",
["Kelon"] = "kyo",
["Keltik Purba"] = "cel-pro",
["Kemak"] = "kem",
["Kembayan"] = "xem",
["Kemberano"] = "bzp",
["Kembra"] = "xkw",
["Kemezung"] = "dmo",
["Kemiehua"] = "kfj",
["Kemtuik"] = "kmt",
["Kenaboi"] = "xbn",
["Kendeje"] = "klf",
["Kendem"] = "kvm",
["Kenga"] = "kyq",
["Keninjal"] = "knl",
["Kensiu"] = "kns",
["Kenswei Nsei"] = "ndb",
["Kenyah Wahau"] = "whk",
["Kenyang"] = "ken",
["Kenyi"] = "lke",
["Keoru-Ahia"] = "xeu",
["Kepkiriwát"] = "kpn",
["Kepo'"] = "kuk",
["Kera"] = "ker",
["Kerak"] = "hhr",
["Kereho"] = "xke",
["Kerek"] = "krk",
["Keres Barat"] = "kjq",
["Keres Timur"] = "kee",
["Kerewe"] = "ked",
["Kerewo"] = "kxz",
["Kerinci"] = "kvr",
["Kermanik"] = "xme-ker",
["Kesawai"] = "xes",
["Ket"] = "ket",
["Ketangalan"] = "kae",
["Kete"] = "kcv",
["Ketengban"] = "xte",
["Ketum"] = "ktt",
["Kewa"] = "kew",
["Kewa Timur"] = "kjs",
["Keyagana"] = "kyg",
["Kgalagadi"] = "xkv",
["Khakas"] = "kjh",
["Khalaj"] = "klj",
["Khaling"] = "klr",
["Kham"] = "kjl",
["Kham Parbate Timur"] = "kif",
["Kham Purba"] = "sit-kha-pro",
["Khamti"] = "kht",
["Khamyang"] = "ksu",
["Khana"] = "ogo",
["Khandeshi"] = "khn",
["Khanty Purba"] = "kca-pro",
["Khanty Selatan"] = "kca-sou",
["Khanty Timur"] = "kca-eas",
["Khanty Utara"] = "kca-nor",
["Khao"] = "xao",
["Kharam Naga"] = "kfw",
["Kharia"] = "khr",
["Kharia Thar"] = "ksy",
["Khasi"] = "kha",
["Khasi Purba"] = "aav-khs-pro",
["Khayo"] = "lko",
["Khazar"] = "zkz",
["Khe"] = "kqg",
["Khehek"] = "tlx",
["Khengkha"] = "xkf",
["Khetrani"] = "xhe",
["Khinalug"] = "kjj",
["Khirwar"] = "kwx",
["Khisa"] = "kqm",
["Khitan"] = "zkt",
["Khlor"] = "llo",
["Khlula"] = "ykl",
["Khmer"] = "km",
["Khmer Kuno"] = "okz",
["Khmer Pertengahan"] = "xhm",
["Khmer Purba"] = "mkh-kmr-pro",
["Khmer Utara"] = "kxm",
["Khmu"] = "kjg",
["Khmuik Purba"] = "mkh-khm-pro",
["Kho-Bwa Barat Purba"] = "sit-khw-pro",
["Kho-Bwa Purba"] = "sit-khb-pro",
["Khoe Purba"] = "khi-kho-pro",
["Khoekhoe"] = "naq",
["Khoini"] = "xkc",
["Kholok"] = "ktc",
["Kholosi"] = "inc-kho",
["Khonso"] = "kxc",
["Khorezmian Turkic"] = "zkh",
["Khortha"] = "inc-khr",
["Khotan"] = "kho",
["Khowar"] = "khw",
["Khroskyabs"] = "jiq",
["Khua"] = "xhv",
["Khuen"] = "khf",
["Khvarshi"] = "khv",
["Khwarezm"] = "xco",
["Khwe"] = "xuu",
["Kháng"] = "kjm",
["Khün"] = "kkh",
["Kibala"] = "blv",
["Kibena"] = "bez",
["Kibet"] = "kie",
["Kibiri"] = "prm",
["Kichwa"] = "qwe-kch",
["Kickapoo"] = "kic",
["Kikai"] = "kzg",
["Kikami"] = "kcu",
["Kikuyu"] = "ki",
["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",
["Kinnauri"] = "kfk",
["Kinnauri Bhoti"] = "nes",
["Kintaq"] = "knq",
["Kinuku"] = "kkd",
["Kioko"] = "ues",
["Kiong"] = "kkm",
["Kiorr"] = "xko",
["Kiowa"] = "kio",
["Kipchak"] = "qwm",
["Kipfokomo"] = "pkb",
["Kipsigis"] = "sgc",
["Kiput"] = "kyi",
["Kir-Balar"] = "kkr",
["Kirfi"] = "kks",
["Kirike"] = "okr",
["Kirikiri"] = "kiy",
["Kirya-Konzel"] = "fkk",
["Kis"] = "kis",
["Kisa"] = "lks",
["Kisan"] = "xis",
["Kisankasa"] = "kqh",
["Kisar"] = "kje",
["Kisi"] = "kiz",
["Kissi Selatan"] = "kss",
["Kissi Utara"] = "kqs",
["Kitanemuk"] = "azc-ktn",
["Kitembo"] = "tbt",
["Kitsai"] = "kii",
["Kituba"] = "ktu",
["Kiunum"] = "wei",
["Kiwai Selatan"] = "kjd",
["Kiwai Timur Laut"] = "kiw",
["Kla"] = "lda",
["Klallam"] = "clm",
["Klamath-Modoc"] = "kla",
["Klao"] = "klu",
["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 Indus"] = "mvy",
["Kohistani Shina"] = "plk",
["Koho"] = "kpm",
["Kohumono"] = "bcs",
["Koi"] = "kkt",
["Koiari Gunung"] = "kpx",
["Koibal"] = "zkb",
["Koireng"] = "nkd",
["Koitabu"] = "kqi",
["Koiwat"] = "kxt",
["Kok-Paponk"] = "okg",
["Kokata"] = "ktd",
["Kokborok"] = "trp",
["Koke"] = "kou",
["Koko-Bera"] = "kkp",
["Kokoda"] = "xod",
["Kokola"] = "kzn",
["Kokota"] = "kkk",
["Kol (Cameroon)"] = "biw",
["Kol (New Guinea)"] = "kol",
["Kola"] = "kvv",
["Kolami"] = "kfb",
["Kolami Tenggara"] = "nit",
["Kolbila"] = "klc",
["Kolhe"] = "ekl",
["Kolibugan Subanon"] = "skn",
["Kolom"] = "klm",
["Koluwawa"] = "klx",
["Kom (Cameroon)"] = "bkm",
["Kom (India)"] = "kmm",
["Koma"] = "kmy",
["Koma Purba"] = "ssa-kom-pro",
["Komba"] = "kpf",
["Kombai"] = "tyn",
["Kombio"] = "xbi",
["Komering"] = "kge",
["Komi Kuno"] = "urj-koo",
["Komi-Permyak"] = "koi",
["Komi-Yazva"] = "urj-kya",
["Komi-Zyrian"] = "kpv",
["Kominimung"] = "xoi",
["Komisenia Purba"] = "ira-kms-pro",
["Komo"] = "xom",
["Komodo"] = "kvh",
["Kompane"] = "kvp",
["Komyandaret"] = "kzv",
["Kon Keu"] = "kkn",
["Konabéré"] = "bbo",
["Konai"] = "kxw",
["Konda"] = "knd",
["Konda-Dora"] = "kfc",
["Koneraw"] = "kdw",
["Kongo"] = "kg",
["Konjo Pesisir"] = "kjc",
["Konkani"] = "kok",
["Konkomba"] = "xon",
["Konni"] = "kma",
["Kono (Guinea)"] = "knu",
["Kono (Nigeria)"] = "klk",
["Kono (Sierra Leone)"] = "kno",
["Konomala"] = "koa",
["Konomihu"] = "nai-knm",
["Konongo"] = "kcz",
["Konzo"] = "koo",
["Koonzime"] = "ozm",
["Koorete"] = "kqy",
["Kopar"] = "xop",
["Kopkaka"] = "opk",
["Korafe-Yegha"] = "kpr",
["Korak"] = "koz",
["Korana"] = "kqz",
["Korandje"] = "kcy",
["Korea"] = "ko",
["Korea Kuno"] = "oko",
["Korea Moden Awal"] = "ko-ear",
["Korea Pertengahan"] = "okm",
["Korea Purba"] = "qfa-kor-pro",
["Koreguaje"] = "coe",
["Koresh-e Rostam"] = "okh",
["Korku"] = "kfq",
["Koro (Afrika Barat)"] = "kfo",
["Koro (India)"] = "jkr",
["Koro (New Guinea)"] = "kxr",
["Koro (Vanuatu)"] = "krf",
["Koromfé"] = "kfz",
["Koromira"] = "kqj",
["Koronadal Blaan"] = "bpr",
["Koroni"] = "xkq",
["Korop"] = "krp",
["Koropó"] = "xxr",
["Koroshi"] = "ktl",
["Korowai"] = "khe",
["Korra Koraga"] = "kfd",
["Korubo"] = "xor",
["Korupun-Sela"] = "kpq",
["Korwa"] = "kfp",
["Koryak"] = "kpy",
["Kosadle"] = "kiq",
["Kosarek Yale"] = "kkl",
["Kosena"] = "kze",
["Koshin"] = "kid",
["Kosrae"] = "kos",
["Kota (Gabon)"] = "koq",
["Kota (India)"] = "kfe",
["Kotava"] = "avk",
["Koti"] = "eko",
["Kott"] = "zko",
["Kou"] = "snz",
["Kouya"] = "kyf",
["Kovai"] = "kqb",
["Kove"] = "kvc",
["Kowaki"] = "xow",
["Kowiai"] = "kwh",
["Koy Sanjaq Surat"] = "kqd",
["Koya"] = "kff",
["Koyaga"] = "kga",
["Koyo"] = "koh",
["Koyra Chiini"] = "khq",
["Koyraboro Senni"] = "ses",
["Koyukon"] = "koy",
["Kpagua"] = "kuw",
["Kpala"] = "kpl",
["Kpan"] = "kpk",
["Kpasam"] = "pbn",
["Kpati"] = "koc",
["Kpatili"] = "kym",
["Kpee"] = "cpo",
["Kpelle"] = "kpe",
["Kpessi"] = "kef",
["Kplang"] = "kph",
["Kra Purba"] = "qfa-kra-pro",
["Kra-Dai Purba"] = "qfa-tak-pro",
["Krache"] = "kye",
["Krahn Barat"] = "krw",
["Krahn Timur"] = "kqo",
["Krahô"] = "xra",
["Kraol"] = "rka",
["Krenak"] = "kqq",
["Kreol Afro-Seminole"] = "afs",
["Kreol Bahamas"] = "bah",
["Kreol Belize"] = "bzj",
["Kreol Belter"] = "art-bel",
["Kreol Guinea-Bissau"] = "pov",
["Kreol Haiti"] = "ht",
["Kreol Hawaii"] = "hwc",
["Kreol Inggeris Antigua dan Barbuda"] = "aig",
["Kreol Inggeris Guyana"] = "gyn",
["Kreol Jamaica"] = "jam",
["Kreol Kepulauan Virgin"] = "vic",
["Kreol Lelaki Ngatik"] = "ngm",
["Kreol Louisiana"] = "lou",
["Kreol Mauritius"] = "mfe",
["Kreol Nicaragua"] = "bzk",
["Kreol Selat Torres"] = "tcs",
["Kreol Seychelles"] = "crs",
["Kreol Yilan"] = "ycr",
["Kresh"] = "krs",
["Krevinian"] = "zkv",
["Kreye"] = "xre",
["Krikati-Timbira"] = "xri",
["Krim"] = "krm",
["Krio"] = "kri",
["Kriol"] = "rop",
["Krisa"] = "ksi",
["Kristang"] = "mcm",
["Krobu"] = "kxb",
["Krongo"] = "kgo",
["Kru Purba"] = "kro-pro",
["Kru'ng"] = "krr",
["Krymchak"] = "jct",
["Kryts"] = "kry",
["Kua"] = "tyu",
["Kua-nsi"] = "ykn",
["Kuamasi"] = "yku",
["Kuan"] = "uan",
["Kuanhua"] = "xnh",
["Kube"] = "kgf",
["Kubi"] = "kof",
["Kubo"] = "jko",
["Kubu"] = "kvb",
["Kucong"] = "lkc",
["Kudiya"] = "kfg",
["Kudmali"] = "kyw",
["Kudu-Camo"] = "kov",
["Kugama"] = "kow",
["Kugbo"] = "kes",
["Kugu-Muminh"] = "xmh",
["Kui (India)"] = "kxu",
["Kui (Indonesia)"] = "kvd",
["Kuijau"] = "dkr",
["Kuikúro"] = "kui",
["Kujarge"] = "vkj",
["Kuk"] = "kfn",
["Kukatja"] = "kux",
["Kukele"] = "kez",
["Kuki-Chin Purba"] = "tbq-kuk-pro",
["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",
["Kulango Bouna"] = "nku",
["Kulere"] = "kul",
["Kulfa"] = "kxj",
["Kuliak Purba"] = "ssa-klk-pro",
["Kulina"] = "xpk",
["Kulisusu"] = "vkl",
["Kullu Pahari"] = "kfx",
["Kulon"] = "uon",
["Kulon-Pazeh"] = "uun",
["Kulung"] = "kle",
["Kumak"] = "nee",
["Kumalu"] = "ksl",
["Kumam"] = "kdi",
["Kuman"] = "kue",
["Kumaoni"] = "kfy",
["Kumarbhag Paharia"] = "kmj",
["Kumba"] = "ksm",
["Kumbainggar"] = "kgs",
["Kumbaran"] = "wkb",
["Kumbewaha"] = "xks",
["Kumeyaay"] = "nai-kum",
["Kumhali"] = "kra",
["Kumu"] = "kmw",
["Kumukio"] = "kuo",
["Kumyk"] = "kum",
["Kumzari"] = "zum",
["Kuna"] = "cuk",
["Kuna Sempadan"] = "kvn",
["Kunama"] = "kun",
["Kunbarlang"] = "wlg",
["Kunda"] = "kdn",
["Kundal Shahi"] = "shd",
["Kunduvadi"] = "wku",
["Kung"] = "kfl",
["Kunggari"] = "kgl",
["Kungkari"] = "lku",
["Kuni"] = "kse",
["Kuni-Boazi"] = "kvg",
["Kunigami"] = "xug",
["Kunimaipa"] = "kup",
["Kunja"] = "pep",
["Kunjen"] = "kjn",
["Kunyi"] = "njx",
["Kunza"] = "kuz",
["Kuo"] = "xuo",
["Kuot"] = "kto",
["Kupa"] = "kug",
["Kupia"] = "key",
["Kupsabiny"] = "kpz",
["Kur"] = "kuv",
["Kura Ede Nago"] = "nqk",
["Kurama"] = "krh",
["Kuranko"] = "knk",
["Kurdi Purba"] = "ku-pro",
["Kurdi Selatan"] = "sdh",
["Kurdi Tengah"] = "ckb",
["Kurdi Utara"] = "kmr",
["Kuri"] = "nbn",
["Kuria"] = "kuj",
["Kurichiya"] = "kfh",
["Kurmukar"] = "kfv",
["Kurnai"] = "unn",
["Kurrama"] = "vku",
["Kursav"] = "faj",
["Kurti"] = "ktm",
["Kurtöp"] = "xkz",
["Kurudu"] = "kjr",
["Kurukh"] = "kru",
["Kurumba Alu"] = "xua",
["Kurumba Betta"] = "xub",
["Kuruáya"] = "kyr",
["Kusaal"] = "kus",
["Kusaghe"] = "ksg",
["Kushi"] = "kuh",
["Kustenau"] = "awd-kus",
["Kusu"] = "ksv",
["Kusunda"] = "kgg",
["Kutenai"] = "kut",
["Kutep"] = "kub",
["Kuthant"] = "xut",
["Kutto"] = "kpa",
["Kutu"] = "kdc",
["Kuturmi"] = "khj",
["Kuuk Thaayorre"] = "thd",
["Kuuk Yak"] = "uky",
["Kuuku-Ya'u"] = "kuy",
["Kuvale"] = "olu",
["Kuvi"] = "kxv",
["Kuwaa"] = "blh",
["Kuwaataay"] = "cwt",
["Kuwani"] = "paa-kwn",
["Kuy"] = "kdt",
["Kven"] = "fkv",
["Kw'adza"] = "wka",
["Kwa Purba"] = "alv-kwa-pro",
["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",
["Kyenele"] = "kql",
["Kyenga"] = "tye",
["Kyerung"] = "kgy",
["Kyrgyz"] = "ky",
["Kâte"] = "kmg",
["Kélé"] = "keb",
["Kómnzo"] = "paa-kmn",
["La'bi"] = "lbi",
["Laalaa"] = "cae",
["Laba"] = "lau",
["Label"] = "lbb",
["Labir"] = "jku",
["Labo"] = "mwi",
["Labo Phowa"] = "ypb",
["Laboya"] = "lmy",
["Labu"] = "lbu",
["Lacandon"] = "lac",
["Lachi"] = "lbt",
["Lachi Putih"] = "lwh",
["Lachiguiri Zapotec"] = "zpa",
["Lachixío Zapotec"] = "zpl",
["Ladakhi"] = "lbj",
["Ladin"] = "lld",
["Ladino"] = "lad",
["Ladji-Ladji"] = "llj",
["Laeko-Libuat"] = "lkl",
["Lafofa"] = "laf",
["Laghu"] = "lgb",
["Laghuu"] = "lgh",
["Lagwan"] = "kot",
["Laha (Indonesia)"] = "lhh",
["Laha (Vietnam)"] = "lha",
["Lahanan"] = "lhn",
["Lahnda"] = "lah",
["Lahu"] = "lhu",
["Lahu Shi"] = "lhi",
["Lahul Lohar"] = "lhl",
["Lai"] = "cnh",
["Laimbue"] = "lmx",
["Laiyolo"] = "lji",
["Lak"] = "lbe",
["Laka"] = "lak",
["Lakalei"] = "lka",
["Lake Miwok"] = "lmw",
["Lakha"] = "lkh",
["Laki"] = "lki",
["Lakkia"] = "lbc",
["Lakon"] = "lkn",
["Lakondê"] = "lkd",
["Lakota"] = "lkt",
["Lakota Dida"] = "dic",
["Lala (Afrika Selatan)"] = "bnt-lal",
["Lala (New Guinea)"] = "nrz",
["Lala-Bisa"] = "leb",
["Lala-Roba"] = "lla",
["Lalana Chinantec"] = "cnl",
["Lalo Purba"] = "tbq-lal-pro",
["Lalu Barat"] = "ywl",
["Lalu Timur"] = "yit",
["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",
["Lampungik Purba"] = "poz-lgx-pro",
["Lamu"] = "llh",
["Lamu-Lamu"] = "lby",
["Lanas Lobu"] = "ruu",
["Landoma"] = "ldm",
["Lang'e"] = "yne",
["Langam"] = "lnm",
["Langbashe"] = "lna",
["Langi"] = "lag",
["Langnian Buyang"] = "yln",
["Lango (Sudan)"] = "lno",
["Lango (Uganda)"] = "laj",
["Lanima"] = "lnw",
["Lanoh"] = "lnh",
["Lao"] = "lo",
["Laomian"] = "lwm",
["Laopang"] = "lbg",
["Lapaguía-Guivini Zapotec"] = "ztl",
["Lapine"] = "art-lap",
["Laragia"] = "lrg",
["Lardil"] = "lbz",
["Larestani"] = "lrl",
["Larevat"] = "lrv",
["Larike-Wakasihu"] = "alo",
["Laro"] = "lro",
["Larteh"] = "lar",
["Laru"] = "lan",
["Lasalimu"] = "llm",
["Lasgerdi"] = "lsa",
["Lashi"] = "lsi",
["Lasi"] = "lss",
["Latgalia"] = "ltg",
["Latin"] = "la",
["Latu"] = "ltu",
["Latundê"] = "ltn",
["Latvia"] = "lv",
["Lau"] = "llu",
["Laua"] = "luf",
["Lauan"] = "llx",
["Lauje"] = "law",
["Laura"] = "lur",
["Laurentia"] = "lre",
["Lavatbura-Lamusong"] = "lbv",
["Lave"] = "brb",
["Laven"] = "lbo",
["Lavukaleve"] = "lvk",
["Lawa Barat"] = "lcp",
["Lawa Timur"] = "lwl",
["Lawangan"] = "lbx",
["Lawi"] = "lvi",
["Lawu"] = "lwu",
["Lawunuia"] = "tgi",
["Layakha"] = "lya",
["Laz"] = "lzz",
["Laze"] = "tbq-laz",
["Lealao Chinantec"] = "cle",
["Leco"] = "lec",
["Ledo Kaili"] = "lew",
["Leelau"] = "ldk",
["Lefa"] = "lfa",
["Lega-Mwenga"] = "lgm",
["Lega-Shabunda"] = "lea",
["Legbo"] = "agb",
["Legenyem"] = "lcc",
["Lehali"] = "tql",
["Leinong Naga"] = "lzn",
["Leipon"] = "lek",
["Leitre"] = "paa-lei",
["Lela"] = "dri",
["Lelak"] = "llk",
["Lele (Chad)"] = "lln",
["Lele (Congo)"] = "lel",
["Lele (Guinea)"] = "llc",
["Lele (New Guinea)"] = "lle",
["Lelemi"] = "lef",
["Lelepa"] = "lpa",
["Lembata Barat"] = "lmj",
["Lembata Selatan"] = "lmf",
["Lembena"] = "leq",
["Lemerig"] = "lrz",
["Lemio"] = "lei",
["Lemnos"] = "xle",
["Lemolang"] = "ley",
["Lemoro"] = "ldj",
["Lenakel"] = "tnl",
["Lenca Honduras"] = "len",
["Lenca Salvador"] = "nai-sln",
["Lendu"] = "led",
["Lengilu"] = "lgi",
["Lengo"] = "lgr",
["Lengola"] = "lej",
["Lenje"] = "leh",
["Lenkau"] = "ler",
["Lenyima"] = "ldg",
["Leon"] = "roa-leo",
["Leon Kuno"] = "roa-ole",
["Lepcha"] = "lep",
["Lepki"] = "lpe",
["Lepontii"] = "xlp",
["Lese"] = "les",
["Lesing-Gelimi"] = "let",
["Letemboi"] = "nms",
["Leti (Cameroon)"] = "leo",
["Leti (Indonesia)"] = "lti",
["Levuka"] = "lvu",
["Lewo"] = "lww",
["Lewo Eleng"] = "lwe",
["Lewotobi"] = "lwt",
["Leyigha"] = "ayi",
["Lezghi Purba"] = "cau-lzg-pro",
["Lezgi"] = "lez",
["Lhao Vo"] = "mhx",
["Lhokpu"] = "lhp",
["Li'o"] = "ljl",
["Liabuku"] = "lix",
["Liana-Seti"] = "ste",
["Liberia Kpelle"] = "xpe",
["Liberian Kreyol"] = "lir",
["Libido"] = "liq",
["Libinza"] = "liz",
["Liburni"] = "xli",
["Ligbi"] = "lig",
["Ligenza"] = "lgz",
["Liguria Purba"] = "xlg",
["Ligurian"] = "lij",
["Lihir"] = "lih",
["Lika"] = "lik",
["Liki"] = "lio",
["Likila"] = "lie",
["Likuba"] = "kxx",
["Likum"] = "lib",
["Likwala"] = "kwc",
["Lilau"] = "lll",
["Lillooet"] = "lil",
["Limassa"] = "bme",
["Limba Barat-Tengah"] = "lia",
["Limba Timur"] = "lma",
["Limbu"] = "lif",
["Limbum"] = "lmp",
["Limburg"] = "li",
["Limi"] = "ylm",
["Limilngan"] = "lmc",
["Lindu"] = "klw",
["Linear A"] = "lab",
["Lingala"] = "ln",
["Lingao"] = "onb",
["Lingkhim"] = "lii",
["Lingua Franca Nova"] = "lfn",
["Linngithigh"] = "lnj",
["Lipan"] = "apl",
["Lipo"] = "lpo",
["Lisabata-Nuniali"] = "lcs",
["Lisela"] = "lcl",
["Lish"] = "lsh",
["Lishana Deni"] = "lsd",
["Lishanid Noshan"] = "aij",
["Lishán Didán"] = "trg",
["Lisu"] = "lis",
["Literary Chinese"] = "lzh",
["Lithuania"] = "lt",
["Lithuania Kuno"] = "olt",
["Lithuanian Sign Language"] = "lls",
["Little Swanport"] = "aus-lsw",
["Litzlitz"] = "lzl",
["Livonian"] = "liv",
["Livvi"] = "olo",
["Lizu"] = "sit-liz",
["Lo-Toga"] = "lht",
["Loarki"] = "lrk",
["Lobala"] = "loq",
["Lobi"] = "lob",
["Lodhi"] = "lbm",
["Logba"] = "lgq",
["Logo"] = "log",
["Logol"] = "lof",
["Logooli"] = "rag",
["Logorik"] = "liu",
["Lojban"] = "jbo",
["Lokaa"] = "yaz",
["Loko"] = "lok",
["Lokono"] = "arw",
["Lokoya"] = "lky",
["Lola"] = "lcd",
["Lolak"] = "llq",
["Lole"] = "llg",
["Lolo"] = "llb",
["Lolo Purba"] = "tbq-lol-pro",
["Lolo-Burma Purba"] = "tbq-lob-pro",
["Loloda"] = "loa",
["Lolopo"] = "ycl",
["Lolopo Selatan"] = "ysp",
["Loma"] = "lom",
["Lomaiviti"] = "lmv",
["Lomakka"] = "loi",
["Lomavren"] = "rmi",
["Lombard"] = "lmo",
["Lombi"] = "lmi",
["Lombo"] = "loo",
["Lomwe"] = "ngl",
["Loncong"] = "lce",
["Long Phuri Naga"] = "lpn",
["Long Wat"] = "ttw",
["Longgu"] = "lgu",
["Longjia"] = "sit-lnj",
["Longto"] = "wok",
["Longuda"] = "lnu",
["Loniu"] = "los",
["Lonwolwol"] = "crc",
["Loo"] = "ldo",
["Lopa"] = "lop",
["Lopi"] = "lov",
["Lopit"] = "lpx",
["Lorang"] = "lrn",
["Lorediakarkar"] = "lnn",
["Lorrain"] = "roa-lor",
["Lorung Selatan"] = "lrr",
["Lorung Utara"] = "lbr",
["Lote"] = "uvl",
["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 Sorbian"] = "dsb",
["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",
["Luchazi"] = "lch",
["Lucumí"] = "luq",
["Ludian"] = "lud",
["Lufu"] = "ldq",
["Luganda"] = "lg",
["Lugbara"] = "lgg",
["Luguru"] = "ruf",
["Luhu"] = "lcq",
["Luhya"] = "luy",
["Luimbi"] = "lum",
["Luiseño"] = "lui",
["Luish Purba"] = "sit-luu-pro",
["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",
["Lur Selatan"] = "luz",
["Lur Utara"] = "lrc",
["Luren"] = "sit-lrn",
["Luri (Nigeria)"] = "ldd",
["Lusengo"] = "lse",
["Lushootseed"] = "lut",
["Lusi"] = "khl",
["Lusitania"] = "xls",
["Lutachoni"] = "lts",
["Lutos"] = "ndy",
["Luvale"] = "lue",
["Luwati"] = "luv",
["Luwiya"] = "xlu",
["Luwo"] = "lwo",
["Luxembourg"] = "lb",
["Luyana"] = "lyn",
["Lwalu"] = "lwa",
["Lwel"] = "lvl",
["Lycia"] = "xlc",
["Lydia"] = "xld",
["Lyngngam"] = "lyg",
["Lyélé"] = "lee",
["Láadan"] = "ldn",
["Láá Láá Bwamu"] = "bwj",
["Löyöp"] = "urr",
["Lü"] = "khb",
["Ma"] = "msj",
["Ma Manda"] = "skc",
["Ma'anyan"] = "mhy",
["Ma'di"] = "mhi",
["Ma'di Selatan"] = "snm",
["Ma'ya"] = "slz",
["Maaka"] = "mew",
["Maale"] = "mdy",
["Maasai"] = "mas",
["Maay"] = "ymm",
["Maba"] = "mqa",
["Mabaale"] = "mmz",
["Mabaan"] = "mfz",
["Mabang Bura"] = "mde",
["Mabire"] = "muj",
["Maca"] = "mca",
["Macaguaje"] = "mcl",
["Macaguán"] = "mbn",
["Macanese"] = "mzs",
["Macedonia"] = "mk",
["Macedonia Purba"] = "xmk",
["Machame"] = "jmc",
["Machiguenga"] = "mcb",
["Machinere"] = "mpd",
["Machinga"] = "mvw",
["Macoris"] = "nai-mac",
["Macuna"] = "myy",
["Macushi"] = "mbc",
["Mada (Cameroon)"] = "mxu",
["Mada (Nigeria)"] = "mda",
["Madak"] = "mmx",
["Maden"] = "xmx",
["Madhi Madhi"] = "dmd",
["Madngele"] = "zml",
["Madura"] = "mad",
["Maek"] = "hmk",
["Maeng Itneg"] = "itt",
["Mafa"] = "maf",
["Mag-Anchi Ayta"] = "sgb",
["Mag-Indi Ayta"] = "blx",
["Magahat"] = "mtw",
["Magahi"] = "mag",
["Magar Barat"] = "mrd",
["Magar Timur"] = "mgp",
["Magori"] = "zgr",
["Maguindanao"] = "mdh",
["Mahali"] = "mjx",
["Mahasu Pahari"] = "bfz",
["Mahican"] = "mjy",
["Mahongwe"] = "mhb",
["Mahou"] = "mxx",
["Maia"] = "sks",
["Maiadomu"] = "mzz",
["Maiani"] = "tnh",
["Maidu Barat Laut"] = "mjd",
["Maidu Purba"] = "nai-mdu-pro",
["Maidu Timur Laut"] = "nmu",
["Maii"] = "mmm",
["Mailu"] = "mgu",
["Maindo"] = "cwb",
["Maipure"] = "awd-mpr",
["Mairasi"] = "zrs",
["Maisin"] = "mbq",
["Maithili"] = "mai",
["Maiwa (Indonesia)"] = "wmm",
["Maiwa (New Guinea)"] = "mti",
["Maiwala"] = "mum",
["Majang"] = "mpe",
["Majera"] = "xmj",
["Majhwar"] = "mmj",
["Mak (China)"] = "mkg",
["Mak (Nigeria)"] = "pbl",
["Makaa"] = "mcp",
["Makah"] = "myh",
["Makalero"] = "mjb",
["Makasae"] = "mkz",
["Makassar"] = "mak",
["Makayam"] = "aup",
["Makhuwa"] = "vmw",
["Makhuwa-Marrevone"] = "xmc",
["Makhuwa-Meetto"] = "mgh",
["Makhuwa-Moniga"] = "mhm",
["Makhuwa-Saka"] = "xsq",
["Makhuwa-Shirima"] = "vmk",
["Makian Barat"] = "mqs",
["Maklew"] = "mgf",
["Makolkol"] = "zmh",
["Makonde"] = "kde",
["Maku"] = "xak",
["Maku'a"] = "lva",
["Makuri Naga"] = "jmn",
["Makuráp"] = "mpu",
["Makwe"] = "ymk",
["Makyan Naga"] = "umn",
["Mal"] = "mlf",
["Mal Paharia"] = "mkb",
["Mala (New Guinea)"] = "ped",
["Mala (Nigeria)"] = "ruy",
["Mala Malasar"] = "ima",
["Malagasi"] = "mg",
["Malakula Timur Laut"] = "upv",
["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",
["Malayalam"] = "ml",
["Malayic Dayak"] = "xdy",
["Malaynon"] = "mlz",
["Malba Birifor"] = "bfo",
["Male"] = "mdc",
["Malecite-Passamaquoddy"] = "pqm",
["Maleng"] = "pkt",
["Maleu-Kilenge"] = "mgl",
["Malfaxal"] = "mlx",
["Malgana"] = "vml",
["Malgbe"] = "mxf",
["Malibu"] = "sai-mlb",
["Malila"] = "mgq",
["Malimba"] = "mzd",
["Malimpung"] = "mli",
["Malol"] = "mbk",
["Malta"] = "mt",
["Malvi"] = "mup",
["Mam"] = "mam",
["Mama"] = "mma",
["Mamaa"] = "mhf",
["Mamaindé"] = "wmd",
["Mamanwa"] = "mmn",
["Mamara"] = "myk",
["Mamasa"] = "mqj",
["Mambae"] = "mgm",
["Mambai"] = "mcs",
["Mambila Cameroon"] = "mcu",
["Mambila Nigeria"] = "mzk",
["Mamboru"] = "mvd",
["Mambwe-Lungu"] = "mgr",
["Mampruli"] = "maw",
["Mamuju"] = "mqx",
["Mamulique"] = "emm",
["Mamusi"] = "kdf",
["Mamvu"] = "mdi",
["Man Met"] = "mml",
["Manam"] = "mva",
["Manambu"] = "mle",
["Manangba"] = "nmm",
["Manangkari"] = "znk",
["Manao"] = "awd-man",
["Manchu"] = "mnc",
["Manda (Australia)"] = "zma",
["Manda (India)"] = "mha",
["Manda (Tanzania)"] = "mgs",
["Mandahuaca"] = "mht",
["Mandaia"] = "mid",
["Mandaia Klasik"] = "myz",
["Mandalorian"] = "art-man",
["Mandan"] = "mhq",
["Mandandanyi"] = "zmk",
["Mandar"] = "mdr",
["Mandara"] = "tbf",
["Mandari"] = "mqu",
["Mandarin"] = "cmn",
["Mandaya Karaga"] = "mry",
["Mande Barat Purba"] = "dmn-mdw-pro",
["Mande Purba"] = "dmn-pro",
["Mandeali"] = "mjl",
["Mander"] = "mqr",
["Mandingo"] = "man",
["Mandinka"] = "mnk",
["Mandjak"] = "mfv",
["Mandobo Atas"] = "aax",
["Mandobo Bawah"] = "bwp",
["Manem"] = "jet",
["Mang"] = "zng",
["Mangala"] = "mem",
["Mangarayi"] = "mpc",
["Mangareva"] = "mrv",
["Mangas"] = "zns",
["Mangayat"] = "myj",
["Mangbetu"] = "mdj",
["Mangbetu Purba"] = "csu-maa-pro",
["Mangbutu"] = "mdk",
["Mangerr"] = "zme",
["Mangga Buang"] = "mmo",
["Manggarai"] = "mqy",
["Mangghuer"] = "mjg-mgr",
["Mango"] = "mge",
["Mangole"] = "mqc",
["Mangseng"] = "mbh",
["Mangue"] = "mom",
["Manigri-Kambolé Ede Nago"] = "xkb",
["Maninka Konyanka"] = "mku",
["Maninka Sankaran"] = "msc",
["Maninkakan Barat"] = "mlq",
["Maninkakan Kita"] = "mwk",
["Maninkakan Timur"] = "emk",
["Manipa"] = "mqp",
["Manipur Kuno"] = "omp",
["Manipuri"] = "mni",
["Mankanya"] = "knf",
["Mankiyali"] = "nlm",
["Manna-Dora"] = "mju",
["Mannan"] = "mjv",
["Mano"] = "mev",
["Manobo Agusan"] = "msm",
["Manobo Ata"] = "atd",
["Manobo Bukidnon Barat"] = "mbb",
["Manobo Cinamiguin"] = "mkx",
["Manobo Cotabato"] = "mta",
["Manobo Dibabawon"] = "mbd",
["Manobo Ilianen"] = "mbi",
["Manobo Matigsalug"] = "mbt",
["Manobo Rajah Kabunsuwan"] = "mqk",
["Manobo Sarangani"] = "mbs",
["Manombai"] = "woo",
["Mansaka"] = "msk",
["Mansi Purba"] = "mns-pro",
["Mansi Selatan"] = "mns-sou",
["Mansi Tengah"] = "mns-cen",
["Mansi Utara"] = "mns-nor",
["Mansoanka"] = "msw",
["Manta"] = "myg",
["Mantsi"] = "nty",
["Manusela"] = "wha",
["Manx"] = "gv",
["Manya"] = "mjz",
["Manyawa"] = "mny",
["Manza"] = "mzv",
["Maonan"] = "mmd",
["Mape"] = "mlh",
["Mapena"] = "mnm",
["Mapia"] = "mpy",
["Mapidian"] = "mpw",
["Mapos Buang"] = "bzh",
["Mapoyo"] = "mcg",
["Mapudungun"] = "arn",
["Mapun"] = "sjm",
["Mara"] = "mec",
["Marachi"] = "lri",
["Maraghei"] = "vmh",
["Maragus"] = "mrs",
["Marama"] = "lrm",
["Maranao"] = "mrw",
["Maranungku"] = "zmr",
["Mararit"] = "mgb",
["Marathi"] = "mr",
["Marathi Kuno"] = "omr",
["Maratino"] = "sai-mar",
["Marau"] = "mvr",
["Marawan"] = "awd-mar",
["Marba"] = "mpg",
["Marenje"] = "vmr",
["Marfa"] = "mvu",
["Margany"] = "zmc",
["Marghi Selatan"] = "mfm",
["Margi"] = "mrt",
["Mari (Sepik)"] = "mbx",
["Mari Austronesia"] = "hob",
["Mari Barat"] = "mrj",
["Mari Purba"] = "chm-pro",
["Mari Timur"] = "mhr",
["Maria"] = "mds",
["Maria Bukit"] = "mrr",
["Mariaté"] = "awd-mrt",
["Maricopa"] = "mrc",
["Maridan"] = "zmd",
["Maridjabin"] = "zmj",
["Marik"] = "dad",
["Marimanindji"] = "zmm",
["Marind"] = "mrz",
["Maring"] = "mbw",
["Maringarr"] = "zmt",
["Mariri"] = "mqi",
["Maritsauá"] = "msp",
["Mariyedi"] = "zmy",
["Marka"] = "rkm",
["Markweeta"] = "enb",
["Marma"] = "rmz",
["Marovo"] = "mvo",
["Marquesas Selatan"] = "mqm",
["Marquesas Utara"] = "mrq",
["Marrgu"] = "mhg",
["Marriammu"] = "xru",
["Marrithiyel"] = "mfr",
["Marrucinian"] = "umc",
["Marshall"] = "mh",
["Marsian"] = "ims",
["Marti Ke"] = "zmg",
["Martu Wangka"] = "mpj",
["Martuthunira"] = "vma",
["Marwari"] = "mwr",
["Marúbo"] = "mzr",
["Masa Purba"] = "cdc-mas-pro",
["Masaba"] = "myx",
["Masadiit Itneg"] = "tis",
["Masakará"] = "sai-msk",
["Masalit"] = "mls",
["Masana"] = "mcn",
["Masbate Sorsogon"] = "bks",
["Masbatenyo"] = "msb",
["Masela Barat"] = "mss",
["Masela Tengah"] = "mxz",
["Masela Timur"] = "vme",
["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",
["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",
["Mauwake"] = "mhl",
["Mav̋ea"] = "mkv",
["Mawa"] = "mcw",
["Mawak"] = "mjj",
["Mawan"] = "mcz",
["Mawayana"] = "mzx",
["Mawchi"] = "mke",
["Mawes"] = "mgk",
["Maxakalí"] = "mbl",
["Maxi Gbe"] = "mxl",
["Maya Epigrafi"] = "emy",
["Maya Mopan"] = "mop",
["Maya Purba"] = "myn-pro",
["Maya Samo"] = "sym",
["Maya Yucatec"] = "yua",
["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",
["Mazahua Michoacán"] = "mmc",
["Mazahua Tengah"] = "maz",
["Mazaltepec Zapotec"] = "zpy",
["Mazanderani"] = "mzn",
["Mazatec Chiquihuitlán"] = "maq",
["Mazatec Huautla"] = "mau",
["Mazatec Ixcatlán"] = "mzi",
["Mazatec Jalapa de Díaz"] = "maj",
["Mazatec Purba"] = "omq-maz-pro",
["Mazatec San Jerónimo Tecóatl"] = "maa",
["Mazatec Soyaltepec"] = "vmp",
["Mazatlán Mazatec"] = "vmz",
["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",
["Mbembe Cross River"] = "mfn",
["Mbembe Tigon"] = "nza",
["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",
["Me'en"] = "mym",
["Mebu"] = "mjn",
["Medebur"] = "mjm",
["Medefaidrin"] = "dmf",
["Media Lengua"] = "mue",
["Median Kuno"] = "xme-old",
["Median Pertengahan"] = "xme-mid",
["Medo-Parthia Purba"] = "ira-mpr-pro",
["Medumba"] = "byv",
["Mefele"] = "mfj",
["Megam"] = "mef",
["Megleno-Romania"] = "ruq",
["Mehek"] = "nux",
["Mehináku"] = "mmh",
["Mekeo"] = "mek",
["Mekmek"] = "mvk",
["Mekwei"] = "msf",
["Mekéns"] = "skf",
["Mel-Khaonh"] = "hkn",
["Melanau Daro-Matu"] = "dro",
["Melanau Sibu"] = "sdx",
["Melanau Tengah"] = "mel",
["Melayik Purba"] = "poz-mly-pro",
["Melayu"] = "ms",
["Melayu Ambon"] = "abs",
["Melayu Baba"] = "mbf",
["Melayu Bacan"] = "btj",
["Melayu Bali"] = "mhp",
["Melayu Barisan Selatan"] = "pse",
["Melayu Berau"] = "bve",
["Melayu Brunei"] = "kxd",
["Melayu Bukit"] = "bvu",
["Melayu Cheti"] = "ccm",
["Melayu Cocos"] = "coa",
["Melayu Jambi"] = "jax",
["Melayu Kedah"] = "meo",
["Melayu Kupang"] = "mkn",
["Melayu Kutai Kota Bangun"] = "mqg",
["Melayu Larantuka"] = "lrt",
["Melayu Makassar"] = "mfp",
["Melayu Maluku Utara"] = "max",
["Melayu Manado"] = "xmm",
["Melayu Negeri Sembilan"] = "zmi",
["Melayu Patani"] = "mfa",
["Melayu Sabah"] = "msi",
["Melayu Sarawak"] = "poz-sml",
["Melayu Sri Lanka"] = "sci",
["Melayu Terengganu"] = "poz-ter",
["Melayu-Chamic Purba"] = "poz-mcm-pro",
["Melayu-Polinesia Purba"] = "poz-pro",
["Melayu-Polinesia Tengah-Timur Purba"] = "poz-cet-pro",
["Melayu-Polinesia Timur Purba"] = "pqe-pro",
["Melayu-Sumbawa Purba"] = "poz-msa-pro",
["Mele-Fila"] = "mxe",
["Melo"] = "mfx",
["Melpa"] = "med",
["Memoni"] = "mby",
["Mendankwe-Nkwen"] = "mfd",
["Mende (Sierra Leone)"] = "men",
["Mengaka"] = "xmg",
["Mengen"] = "mee",
["Menien"] = "sai-men",
["Menka"] = "mea",
["Menominee"] = "mez",
["Mentawai"] = "mwv",
["Menya"] = "mcr",
["Meohang Barat"] = "raf",
["Meohang Timur"] = "emg",
["Meoswar"] = "mvx",
["Mer"] = "mnu",
["Meramera"] = "mxm",
["Merei"] = "lmb",
["Merey"] = "meq",
["Meriam"] = "ulk",
["Meroe"] = "xmr",
["Meru"] = "mer",
["Mesaka"] = "iyo",
["Mese"] = "mci",
["Mesir Demotik"] = "egx-dem",
["Mesir Purba"] = "egy",
["Mesme"] = "zim",
["Mesmes"] = "mys",
["Mesqan"] = "mvz",
["Messapic"] = "cms",
["Meta'"] = "mgo",
["Mewari"] = "mtr",
["Mewati"] = "wtm",
["Meyah"] = "mej",
["Mezontla Popoloca"] = "pbe",
["Meänkieli"] = "fit",
["Mfinu"] = "zmf",
["Mfumte"] = "nfu",
["Mi'kmaq"] = "mic",
["Miami"] = "mia",
["Mian"] = "mpt",
["Miani"] = "pla",
["Miao Qiandong Selatan"] = "hms",
["Miao Qiandong Timur"] = "hmq",
["Miao Qiandong Utara"] = "hea",
["Miao Xiangxi Barat"] = "mmr",
["Miao Xiangxi Timur"] = "muq",
["Michif"] = "crg",
["Michigamea"] = "cmm",
["Mid Grand Valley Dani"] = "dnt",
["Mid-Southern Banda"] = "bjo",
["Midob"] = "mei",
["Mienik Purba"] = "hmx-mie-pro",
["Migaama"] = "mmy",
["Migabac"] = "mpp",
["Miji"] = "sjl",
["Miju"] = "mxj",
["Mikasuki"] = "mik",
["Mikronesia Purba"] = "poz-mic-pro",
["Milang"] = "tbq-mil",
["Mili"] = "ymh",
["Millcayac"] = "sai-mil",
["Miltu"] = "mlj",
["Miluk"] = "iml",
["Milyan"] = "imy",
["Mimi Decorse"] = "mis-mmd",
["Mimi Nachtigal"] = "mis-mmn",
["Min Datian"] = "nan-dat",
["Min Hailufeng"] = "nan-hlh",
["Min Longyan"] = "nan-lnx",
["Min Nan"] = "nan",
["Min Purba"] = "zhx-min-pro",
["Min Puxian"] = "cpx",
["Min Sanxiang"] = "nan-zsh",
["Min Tengah"] = "czo",
["Min Timur"] = "cdo",
["Min Utara"] = "mnp",
["Min Zhenan"] = "nan-zhe",
["Mina"] = "hna",
["Minaean"] = "inm",
["Minang"] = "xrg",
["Minangkabau"] = "min",
["Minaveha"] = "mvn",
["Minderico"] = "drc",
["Mindiri"] = "mpn",
["Mingang Doso"] = "mko",
["Mingo"] = "iro-min",
["Mingrelia"] = "xmf",
["Minica Huitoto"] = "hto",
["Minidien"] = "wii",
["Minigir"] = "vmg",
["Minjungbal"] = "xjb",
["Minkin"] = "xxm",
["Minoan"] = "omn",
["Minokok"] = "mqq",
["Minriq"] = "mnq",
["Mintil"] = "mzt",
["Miqie"] = "yiq",
["Mirandese"] = "mwl",
["Mire"] = "mvh",
["Mirgan"] = "zrg",
["Miriti"] = "mmv",
["Miriwoong"] = "mep",
["Mirpur Panjabi"] = "pmu",
["Misantla Totonac"] = "tlc",
["Miship"] = "mjs",
["Misima-Paneati"] = "mpx",
["Mising"] = "mrg",
["Miskito"] = "miq",
["Mittu"] = "mwu",
["Mituku"] = "zmq",
["Miu"] = "mpo",
["Miwa"] = "vmi",
["Miwok Pesisir"] = "csi",
["Miwok Sierra Selatan"] = "skd",
["Miwok Sierra Tengah"] = "csm",
["Miwok Sierra Utara"] = "nsq",
["Miwok Teluk"] = "mkq",
["Mixe Coatlán"] = "mco",
["Mixe Juquila"] = "mxq",
["Mixe Mazatlán"] = "mzl",
["Mixe Tanah Genting"] = "mir",
["Mixe Tengah Utara"] = "neq",
["Mixe Tlahuitoltepec"] = "mxp",
["Mixe Totontepec"] = "mto",
["Mixe-Zoque Purba"] = "nai-miz-pro",
["Mixifore"] = "mfg",
["Mixtec Alacatlatzala"] = "mim",
["Mixtec Amoltepec"] = "mbz",
["Mixtec Apasco-Apoala"] = "mip",
["Mixtec Atatláhuca"] = "mib",
["Mixtec Ayutla"] = "miy",
["Mixtec Cacaloxtepec"] = "miu",
["Mixtec Chayuco"] = "mih",
["Mixtec Chigmecatitlán"] = "mii",
["Mixtec Coatzospan"] = "miz",
["Mixtec Cuyamecalco"] = "xtu",
["Mixtec Huitepec"] = "mxs",
["Mixtec Itundujia"] = "mce",
["Mixtec Ixtayutla"] = "vmj",
["Mixtec Jamiltepec"] = "mxt",
["Mixtec Juxtlahuaca"] = "vmc",
["Mixtec Magdalena Peñasco"] = "xtm",
["Mixtec Metlatónoc"] = "mxv",
["Mixtec Mitlatongo"] = "vmm",
["Mixtec Mixtepec"] = "mix",
["Mixtec Nochixtlán Tenggara"] = "mxy",
["Mixtec Oaxaca Barat Laut"] = "mxa",
["Mixtec Ocotepec"] = "mie",
["Mixtec Peñoles"] = "mil",
["Mixtec Pinotepa Nacional"] = "mio",
["Mixtec Puebla Selatan"] = "mit",
["Mixtec Purba"] = "omq-mxt-pro",
["Mixtec San Juan Colorado"] = "mjc",
["Mixtec San Miguel Piedras"] = "xtp",
["Mixtec San Miguel el Grande"] = "mig",
["Mixtec Santa Lucía Monteverde"] = "mdv",
["Mixtec Santa María Zacatepec"] = "mza",
["Mixtec Silacayoapan"] = "mks",
["Mixtec Sindihui"] = "xts",
["Mixtec Soyaltepec"] = "vmq",
["Mixtec Tacahua"] = "xtt",
["Mixtec Teposcolula"] = "omq-tel",
["Mixtec Tezoatlán"] = "mxb",
["Mixtec Tidaá"] = "mtx",
["Mixtec Tlaxiaco Barat Daya"] = "meh",
["Mixtec Tlaxiaco Utara"] = "xtn",
["Mixtec Tlazoyaltepec"] = "mqh",
["Mixtec Tututepec"] = "mtu",
["Mixtec Yoloxochitl"] = "xty",
["Mixtec Yosondúa"] = "mpm",
["Mixtec Yucuañe"] = "mvg",
["Mixtec Yutanduchi"] = "mab",
["Mixtecan Purba"] = "omq-mix-pro",
["Mixtepec Zapotec"] = "zpm",
["Miya"] = "mkf",
["Miyako"] = "mvi",
["Miyobe"] = "soy",
["Mizo"] = "lus",
["Mlabri"] = "mra",
["Mlahsö"] = "lhs",
["Mlap"] = "kja",
["Mlomp"] = "mlo",
["Mmaala"] = "mmu",
["Mmani"] = "buy",
["Mmen"] = "bfm",
["Mnong Selatan"] = "mnn",
["Mnong Tengah"] = "cmo",
["Mnong Timur"] = "mng",
["Mo"] = "wkd",
["Moabite"] = "obm",
["Moba"] = "mfq",
["Mobilia"] = "mod",
["Mobu"] = "ahm",
["Mocana"] = "sai-mcn",
["Mochi"] = "old",
["Mochica"] = "omc",
["Mocho"] = "mhc",
["Mocoví"] = "moc",
["Modang"] = "mxd",
["Modole"] = "mqo",
["Moere"] = "mvq",
["Mofu Utara"] = "mfk",
["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",
["Mokil"] = "mkj",
["Moklen"] = "mkm",
["Mokole"] = "mkl",
["Mokpwe"] = "bri",
["Moksha"] = "mdf",
["Molale"] = "mbe",
["Molbog"] = "pwm",
["Moldova Sign Language"] = "vsi",
["Molengue"] = "bxc",
["Molima"] = "mox",
["Molo"] = "zmo",
["Molof"] = "msl",
["Moloko"] = "mlw",
["Mom Jango"] = "ver",
["Moma"] = "myl",
["Momare"] = "msz",
["Mombo Dogon"] = "dmb",
["Mombum"] = "mso",
["Momina"] = "mmb",
["Momuna"] = "mqf",
["Mon"] = "mnw",
["Mon Kuno"] = "omx",
["Mon Pertengahan"] = "mkh-mmn",
["Mon Thailand"] = "mnw-tha",
["Mon Yangum"] = "ymo",
["Mon-Khmer Purba"] = "mkh-pro",
["Mondropolon"] = "npn",
["Mondé"] = "mnd",
["Mongghul"] = "mjg-mgl",
["Mongo"] = "lol",
["Mongol Khamnigan"] = "ykh",
["Mongol Klasik"] = "cmg",
["Mongol Pertengahan"] = "xng",
["Mongolia"] = "mn",
["Mongolia Purba"] = "xgn-pro",
["Mongondow"] = "mog",
["Moni"] = "mnz",
["Monik Purba"] = "mkh-mnc-pro",
["Mono (California)"] = "mnr",
["Mono (Cameroon)"] = "mru",
["Mono (Congo)"] = "mnh",
["Monom"] = "moo",
["Monpa Kalaktang"] = "kkf",
["Montagnais"] = "moe",
["Montol"] = "mtl",
["Monumbo"] = "mxk",
["Monzombo"] = "moj",
["Moo"] = "gwg",
["Mor (Austronesia)"] = "mhz",
["Mor (Papua)"] = "moq",
["Moraid"] = "msg",
["Moran"] = "tbq-mor",
["Morawa"] = "mze",
["Mordvinik Purba"] = "urj-mdv-pro",
["Morerebi"] = "xmo",
["Moresada"] = "msx",
["Mori Atas"] = "mzq",
["Mori Bawah"] = "xmz",
["Morigi"] = "mdb",
["Moro"] = "mor",
["Morokodo"] = "mgc",
["Morom"] = "bdo",
["Moronene"] = "mqn",
["Morori"] = "mok",
["Morouas"] = "mrp",
["Mortlock"] = "mrl",
["Moru"] = "mgd",
["Mosimo"] = "mqv",
["Moskona"] = "mtj",
["Mossi"] = "mos",
["Mota"] = "mtt",
["Motembo"] = "tmv",
["Motu"] = "meu",
["Mouk-Aria"] = "mwh",
["Mouwase"] = "jmw",
["Movima"] = "mzp",
["Moyadan Itneg"] = "ity",
["Mozarab"] = "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",
["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",
["Muji Qila"] = "ymq",
["Muji Selatan"] = "ymc",
["Muji Utara"] = "ymx",
["Mukha-Dora"] = "mmk",
["Mukulu"] = "moz",
["Mulaha"] = "mfw",
["Mulam"] = "mlm",
["Mullu Kurumba"] = "kpb",
["Mullukmulluk"] = "mpb",
["Muluridyi"] = "vmu",
["Mum"] = "kqa",
["Mumuye"] = "mzm",
["Mumuye Purba"] = "alv-mum-pro",
["Muna"] = "mnb",
["Munda"] = "unx",
["Munda Purba"] = "mun-pro",
["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",
["Munji-Yidgha Purba"] = "ira-mny-pro",
["Munsee"] = "umu",
["Muong"] = "mtq",
["Mur Pano"] = "tkv",
["Muratayak"] = "asx",
["Muria Barat"] = "mut",
["Muria Barat Jauh"] = "fmu",
["Muria Timur"] = "emu",
["Murik (Malaysia)"] = "mxr",
["Murik (New Guinea)"] = "mtf",
["Murkim"] = "rmh",
["Murle"] = "mur",
["Murrinh-Patha"] = "mwf",
["Mursi"] = "muz",
["Murui Huitoto"] = "huu",
["Murupi"] = "mqw",
["Murut Keningau"] = "kxi",
["Murut Serudung"] = "srk",
["Murut Timugon"] = "tih",
["Muruwari"] = "zmu",
["Musan"] = "mmp",
["Musasa"] = "smm",
["Musey"] = "mse",
["Musgu"] = "mug",
["Musi"] = "mui",
["Muskogi Purba"] = "nai-mus-pro",
["Muskum"] = "mje",
["Musom"] = "msu",
["Mussau-Emira"] = "emi",
["Muthuvan"] = "muv",
["Mutu"] = "tuc",
["Muya"] = "mvm",
["Muyang"] = "muy",
["Muyu Selatan"] = "kts",
["Muyu Utara"] = "kti",
["Muyuw"] = "myw",
["Muzi"] = "ymz",
["Muzo"] = "sai-muz",
["Mvanip"] = "mcj",
["Mvuba"] = "mxh",
["Mwaghavul"] = "sur",
["Mwakai"] = "mgt",
["Mwali Comorian"] = "wlc",
["Mwan"] = "moa",
["Mwani"] = "wmw",
["Mwatebu"] = "mwa",
["Mwera"] = "mwe",
["Mwerlap"] = "mrm",
["Mwimbi-Muthambi"] = "mws",
["Mwotlap"] = "mlv",
["Myene"] = "mye",
["Mysian"] = "yms",
["Mòcheno"] = "mhn",
["Mün Chin"] = "mwq",
["Mündü"] = "muh",
["Māori"] = "mi",
["Mạ"] = "cma",
["N'Ko"] = "nqo",
["Na"] = "nbt",
["Na-Dene Purba"] = "xnd-pro",
["Naaba"] = "nao",
["Naba"] = "mne",
["Nabak"] = "naf",
["Nabi"] = "mty",
["Nachering"] = "ncd",
["Nadruvia"] = "ndf",
["Nadëb"] = "mbj",
["Nafaanra"] = "nfr",
["Nafi"] = "srf",
["Nafri"] = "nxx",
["Naga Chokri"] = "nri",
["Naga Chothe"] = "nct",
["Naga Inpui"] = "nkf",
["Naga Khezha"] = "nkh",
["Naga Khiamniungan"] = "kix",
["Naga Khoibu"] = "nkb",
["Naga Konyak"] = "nbe",
["Naga Kyan-Karyaw"] = "nqq",
["Naga Lao"] = "nlq",
["Naga Liangmai"] = "njn",
["Naga Lotha"] = "njh",
["Naga Mao"] = "nbi",
["Naga Maram"] = "nma",
["Naga Maring"] = "nng",
["Naga Monsang"] = "nmh",
["Naga Moyon"] = "nmo",
["Naga Mzieme"] = "nme",
["Naga Pochuri"] = "npo",
["Naga Puimei"] = "npu",
["Naga Rengma Selatan"] = "nre",
["Naga Rengma Utara"] = "nnl",
["Naga Rongmei"] = "nbu",
["Naga Sangtam"] = "nsa",
["Naga Tangkhul"] = "nmf",
["Naga Tengah Purba"] = "sit-aao-pro",
["Naga Thangal"] = "nki",
["Naga Utara Purba"] = "sit-kon-pro",
["Naga Zeme"] = "nzm",
["Nagarchal"] = "nbg",
["Nage"] = "nxe",
["Nagu"] = "ngr",
["Nagumi"] = "ngv",
["Nahali"] = "nlx",
["Nahari"] = "nhh",
["Nahavaq"] = "sns",
["Nahua Purba"] = "azc-nah-pro",
["Nahuatl"] = "nah",
["Nahuatl Coatepec"] = "naz",
["Nahuatl Cosoleacaque"] = "nhk",
["Nahuatl Durango Barat"] = "azn",
["Nahuatl Durango Timur"] = "azd",
["Nahuatl Guerrero"] = "ngu",
["Nahuatl Huasteca Barat"] = "nhw",
["Nahuatl Huasteca Tengah"] = "nch",
["Nahuatl Huasteca Timur"] = "nhe",
["Nahuatl Huaxcaleca"] = "nhq",
["Nahuatl Klasik"] = "nci",
["Nahuatl Mecayapan"] = "nhx",
["Nahuatl Michoacán"] = "ncl",
["Nahuatl Morelos"] = "nhm",
["Nahuatl Oaxaca Utara"] = "nhy",
["Nahuatl Ometepec"] = "nht",
["Nahuatl Orizaba"] = "nlv",
["Nahuatl Pajapan"] = "nhp",
["Nahuatl Puebla Tanah Tinggi"] = "azz",
["Nahuatl Puebla Tengah"] = "ncx",
["Nahuatl Puebla Tenggara"] = "npl",
["Nahuatl Puebla Utara"] = "ncj",
["Nahuatl Santa María La Alta"] = "nhz",
["Nahuatl Sierra Negra"] = "nsu",
["Nahuatl Tabasco"] = "nhc",
["Nahuatl Temascaltepec"] = "nhv",
["Nahuatl Tengah"] = "nhn",
["Nahuatl Tetelcingo"] = "nhg",
["Nahuatl Tlamacazapa"] = "nuz",
["Nahuatl Zacatlán-Ahuacatlán-Tepetzintla"] = "nhi",
["Nai"] = "bio",
["Naish Purba"] = "sit-nas-pro",
["Naka'ela"] = "nae",
["Nakai"] = "nkj",
["Nakame"] = "nib",
["Nakanai"] = "nak",
["Nakara"] = "nck",
["Nake"] = "nbk",
["Nakh Purba"] = "cau-nkh-pro",
["Naki"] = "mff",
["Nakwi"] = "nax",
["Nalca"] = "nlc",
["Nali"] = "nss",
["Nalik"] = "nal",
["Nalu"] = "naj",
["Nalögo"] = "nlz",
["Nama"] = "nmx",
["Namakura"] = "nmk",
["Namat"] = "nkm",
["Nambikwara"] = "nab",
["Nambo"] = "ncm",
["Nambya"] = "nmq",
["Namia"] = "nnm",
["Namiae"] = "nvm",
["Namla"] = "naa",
["Namo"] = "mxw",
["Namonuito"] = "nmt",
["Namosi-Naitasiri-Serua"] = "bwb",
["Namuyi"] = "nmy",
["Nancere"] = "nnc",
["Nande"] = "nnb",
["Nandi"] = "niq",
["Nanerigé Sénoufo"] = "sen",
["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",
["Nauru"] = "na",
["Navajo"] = "nv",
["Navarro-Aragon Kuno"] = "roa-ona",
["Navut"] = "nsw",
["Nawaru"] = "nwr",
["Nawathinehena"] = "nwa",
["Nawdm"] = "nmz",
["Nawiki Purba"] = "awd-nwk-pro",
["Nawuri"] = "naw",
["Naxi"] = "nxq",
["Nayi"] = "noz",
["Naʼvi"] = "art-nav",
["Ncane"] = "ncr",
["Nchumbulu"] = "nlu",
["Nda'nda'"] = "nnz",
["Ndaka"] = "ndk",
["Ndali"] = "ndh",
["Ndam"] = "ndm",
["Ndamba"] = "ndj",
["Ndambomo"] = "nxo",
["Ndasa"] = "nda",
["Ndau"] = "ndc",
["Nde-Gbite"] = "ned",
["Nde-Nsele-Nta"] = "ndd",
["Ndebele Selatan"] = "nr",
["Ndebele Utara"] = "nd",
["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",
["Ndzwani Comorian"] = "wni",
["Neapolit"] = "nap",
["Nedebang"] = "nec",
["Nefamese"] = "nef",
["Nefusa"] = "jbn",
["Negerhollands"] = "dcr",
["Negidal"] = "neg",
["Nehan"] = "nsn",
["Nek"] = "nif",
["Nekgini"] = "nkg",
["Neko"] = "nej",
["Neku"] = "nek",
["Neme"] = "nex",
["Nemi"] = "nem",
["Nen"] = "nqn",
["Nend"] = "anh",
["Nenets Hutan"] = "yrk-for",
["Nenets Tundra"] = "yrk",
["Nengone"] = "nen",
["Neo"] = "neu",
["Neo-Aram Bohtan"] = "bhn",
["Neo-Aramia Assyria"] = "aii",
["Neo-Aramia Barat"] = "amw",
["Nepal"] = "ne",
["Nepal Kurux"] = "kxl",
["Nese"] = "poz-nes",
["Nete"] = "net",
["Neve'ei"] = "vnm",
["Neverver"] = "lgk",
["New Caledonian Javanese"] = "jas",
["New South Wales Tengah Purba"] = "aus-cww-pro",
["Newar"] = "new",
["Newar Klasik"] = "nwc",
["Newar Pertengahan"] = "nwx",
["Neyo"] = "ney",
["Nez Perce"] = "nez",
["Nga La"] = "hlt",
["Ngaanyatjarra"] = "ntj",
["Ngad'a Timur"] = "nea",
["Ngadha"] = "nxg",
["Ngadjunmaya"] = "nju",
["Ngadjuri"] = "jui",
["Ngaiawang"] = "nwg",
["Ngaing"] = "nnf",
["Ngaju"] = "nij",
["Ngala"] = "nud",
["Ngalakan"] = "nig",
["Ngalkbun"] = "ngk",
["Ngalum"] = "szb",
["Ngam"] = "nmc",
["Ngamambo"] = "nbv",
["Ngambay"] = "sba",
["Ngamini"] = "nmv",
["Ngamo"] = "nbh",
["Ngan'gityemerri"] = "nam",
["Nganakarti"] = "xnk",
["Nganasan"] = "nio",
["Ngandi"] = "nid",
["Ngando (Congo)"] = "nxd",
["Ngando (Republik Afrika Tengah)"] = "ngd",
["Ngandyera"] = "nne",
["Ngantangarra"] = "ntg",
["Nganyaywana"] = "nyx",
["Ngardi"] = "rxd",
["Ngarigu"] = "xni",
["Ngarinman"] = "nbj",
["Ngarinyin"] = "ung",
["Ngarla"] = "nrk",
["Ngarluma"] = "nrl",
["Ngarrindjeri"] = "nay",
["Ngas"] = "anc",
["Ngasa"] = "nsg",
["Ngawun"] = "nxn",
["Ngbaka"] = "nga",
["Ngbaka Ma'bo"] = "nbm",
["Ngbaka Manza"] = "ngg",
["Ngbandi Selatan"] = "nbw",
["Ngbandi Utara"] = "ngb",
["Ngbee"] = "jgb",
["Ngbinda"] = "nbd",
["Ngbundu"] = "nuu",
["Ngelima"] = "agh",
["Ngemba"] = "nge",
["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 (Congo)"] = "ngc",
["Ngombe (Republik Afrika Tengah)"] = "nmj",
["Ngong"] = "nnx",
["Ngongo"] = "noq",
["Ngoni"] = "ngo",
["Ngoreme"] = "ngq",
["Ngoshie"] = "nsh",
["Ngulu"] = "ngp",
["Nguluwan"] = "nuw",
["Ngumbi"] = "nui",
["Ngunawal"] = "xul",
["Ngundi"] = "ndn",
["Ngundu"] = "nue",
["Ngungwel"] = "ngz",
["Nguni Purba"] = "bnt-ngu-pro",
["Ngurmbur"] = "nrx",
["Nguôn"] = "nuo",
["Ngwaba"] = "ngw",
["Ngwe"] = "nwe",
["Ngwi"] = "nlo",
["Ngwo"] = "ngn",
["Ngäbere"] = "gym",
["Nhanda"] = "nha",
["Nheengatu"] = "yrl",
["Nhirrpi"] = "hrp",
["Nhuwala"] = "nhf",
["Nias"] = "nia",
["Nicobar Purba"] = "aav-nic-pro",
["Nicobar Selatan"] = "nik",
["Nicobar Tengah"] = "ncb",
["Nicola"] = "ath-nic",
["Nicoleño"] = "azc-nic",
["Niellim"] = "nie",
["Niger-Congo Purba"] = "nic-pro",
["Nihali"] = "nll",
["Nii"] = "nii",
["Nila"] = "nil",
["Nilamba"] = "nim",
["Nilo-Sahara Purba"] = "ssa-pro",
["Nilotik Purba"] = "sdv-nil-pro",
["Nimadi"] = "noe",
["Nimanbur"] = "nmp",
["Nimbari"] = "nmr",
["Nimboran"] = "nir",
["Nimi"] = "nis",
["Nimo"] = "niw",
["Nimoa"] = "nmw",
["Ninam"] = "shb",
["Nindi"] = "nxi",
["Ningera"] = "nby",
["Ninggerum"] = "nxr",
["Ningil"] = "niz",
["Ninzo"] = "nin",
["Nipsan"] = "nps",
["Nisa"] = "njs",
["Nisenan"] = "nsz",
["Nisga'a"] = "ncg",
["Nisi"] = "yso",
["Nisu Barat Laut"] = "nsf",
["Nisu Selatan"] = "nsd",
["Nisu Timur"] = "nos",
["Nisu Utara"] = "yiv",
["Niuafo'ou"] = "num",
["Niuatoputapu"] = "nkp",
["Niue"] = "niu",
["Nivaclé"] = "cag",
["Nivkh"] = "niv",
["Niwer Mil"] = "hrc",
["Njalgulgule"] = "njl",
["Njebi"] = "nzb",
["Njen"] = "njj",
["Njerep"] = "njr",
["Njyem"] = "njy",
["Nkami"] = "nkq",
["Nkangala"] = "nkn",
["Nkari"] = "nkz",
["Nkem-Nkum"] = "isi",
["Nkhumbi"] = "khu",
["Nkongho"] = "nkc",
["Nkonya"] = "nko",
["Nkoroo"] = "nkx",
["Nkoya"] = "nka",
["Nkukoli"] = "nbo",
["Nkutu"] = "nkw",
["Nnam"] = "nbp",
["Nobiin"] = "fia",
["Nocte"] = "njb",
["Nogai"] = "nog",
["Noipä"] = "npx",
["Noiri"] = "noi",
["Nokuku"] = "nkk",
["Nomaande"] = "lem",
["Nomane"] = "nof",
["Nomatsiguenga"] = "not",
["Nomlaki"] = "nol",
["Nomu"] = "noh",
["Nong Zhuang"] = "zhn",
["Nonuya"] = "noj",
["Nooksack"] = "nok",
["Noon"] = "snf",
["Noone"] = "nhu",
["Nootka"] = "nuk",
["Nopala Chatino"] = "cya",
["Noric"] = "nrc",
["Norman"] = "nrf",
["Norn"] = "nrn",
["Norra"] = "nrr",
["Norse Kuno"] = "non",
["Norse Purba"] = "gmq-pro",
["Norway"] = "no",
["Norway Pengembara"] = "rmg",
["Norway Pertengahan"] = "gmq-mno",
["Nossob Bawah"] = "nsb",
["Notre"] = "bly",
["Notsi"] = "ncf",
["Nottoway"] = "ntw",
["Nottoway-Meherrin"] = "nwy",
["Novgorod Kuno"] = "zle-ono",
["Novial"] = "nov",
["Noy"] = "noy",
["Nsari"] = "asj",
["Nsenga"] = "nse",
["Nshi"] = "nsc",
["Nsong"] = "soo",
["Nsongo"] = "nsx",
["Ntcham"] = "bud",
["Ntomba"] = "nto",
["Ntra'ngith"] = "dgt",
["Nuaulu Selatan"] = "nxl",
["Nuaulu Utara"] = "nni",
["Nubaca"] = "baf",
["Nubi"] = "kcn",
["Nubia Kuno"] = "onw",
["Nubia Purba"] = "nub-pro",
["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",
["Numee"] = "kdk",
["Numidia"] = "nxm",
["Numik Purba"] = "azc-num-pro",
["Nungali"] = "nug",
["Nunggubuyu"] = "nuy",
["Nungon"] = "paa-nun",
["Nungu"] = "rin",
["Nuni Selatan"] = "nnw",
["Nuni Utara"] = "nuv",
["Nuosu"] = "ii",
["Nupbikha"] = "npb",
["Nupe"] = "nup",
["Nupoid Purba"] = "alv-nup-pro",
["Nuristani Purba"] = "iir-nur-pro",
["Nusa Laut"] = "nul",
["Nusu"] = "nuf",
["Nutabe"] = "cba-nut",
["Nyabwa"] = "nwb",
["Nyagrong Minyag"] = "ero-nya",
["Nyah Kur"] = "cbn",
["Nyaheun"] = "nev",
["Nyakyusa"] = "nyy",
["Nyala Timur"] = "nle",
["Nyali"] = "nlj",
["Nyam"] = "nmi",
["Nyamal"] = "nly",
["Nyambo"] = "now",
["Nyamusa-Molo"] = "nwm",
["Nyamwanga"] = "mwn",
["Nyamwezi"] = "nym",
["Nyaneka"] = "nyk",
["Nyang'i"] = "nyp",
["Nyanga (Congo)"] = "nyj",
["Nyanga (Togo)"] = "ayg",
["Nyanga-li"] = "nyc",
["Nyangatom"] = "nnj",
["Nyangbo"] = "nyb",
["Nyangga"] = "nny",
["Nyangumarta"] = "nna",
["Nyankole"] = "nyn",
["Nyarafolo Senoufo"] = "sev",
["Nyaturu"] = "rim",
["Nyaw"] = "nyw",
["Nyawaygi"] = "nyt",
["Nyemba"] = "nba",
["Nyengo"] = "nye",
["Nyenkha"] = "neh",
["Nyeu"] = "nyl",
["Nyigina"] = "nyh",
["Nyiha"] = "nih",
["Nyika"] = "nkt",
["Nyima Purba"] = "sdv-nyi-pro",
["Nyimang"] = "nyi",
["Nyindrou"] = "lid",
["Nyindu"] = "nyg",
["Nyishi"] = "njz",
["Nyiyaparli"] = "xny",
["Nynorsk Norway"] = "nn",
["Nyokon"] = "nvo",
["Nyole (Kenya)"] = "nyd",
["Nyole (Uganda)"] = "nuj",
["Nyong"] = "muo",
["Nyoro"] = "nyo",
["Nyulnyul"] = "nyv",
["Nyulnyulan Purba"] = "aus-nyu-pro",
["Nyunga"] = "nys",
["Nyungwe"] = "nyu",
["Nyâlayu"] = "yly",
["Nzadi"] = "nzd",
["Nzakambay"] = "nzy",
["Nzakara"] = "nzk",
["Nzanyi"] = "nja",
["Nzima"] = "nzi",
["Ná-Meo"] = "neo",
["Nùng"] = "nut",
["Nüpode Huitoto"] = "hux",
["Nǀuu"] = "ngh",
["O'chi'chi'"] = "xoc",
["O'du"] = "tyh",
["O'odham"] = "ood",
["Obanliku"] = "bzy",
["Obispeño"] = "obi",
["Oblo"] = "obl",
["Obo Manobo"] = "obo",
["Obokuitai"] = "afz",
["Obolo"] = "ann",
["Obulom"] = "obu",
["Ocaina"] = "oca",
["Occitan"] = "oc",
["Occitan Kuno"] = "pro",
["Oceania Purba"] = "poz-oce-pro",
["Od"] = "odk",
["Odia"] = "or",
["Odia Kuno"] = "inc-oor",
["Odia Pertengahan"] = "inc-mor",
["Odiai"] = "bhf",
["Odoodee"] = "kkc",
["Odual"] = "odu",
["Odut"] = "oda",
["Ofayé"] = "opy",
["Ofo"] = "ofo",
["Ogbah"] = "ogc",
["Ogbia"] = "ogb",
["Ogbogolo"] = "ogg",
["Ogbronuagum"] = "ogu",
["Ogea"] = "eri",
["Oghuz Kuno Awal"] = "trk-eog",
["Ogoni Purba"] = "nic-ogo-pro",
["Ohlone Selatan"] = "css",
["Ohlone Utara"] = "cst",
["Oirat Bertulis"] = "xwo",
["Oirata"] = "oia",
["Ojibwa Barat"] = "ojw",
["Ojibwa Barat Laut"] = "ojb",
["Ojibwa Tengah"] = "ojc",
["Ojibwa Timur"] = "ojg",
["Ojibwe"] = "oj",
["Ojitlán Chinantec"] = "chj",
["Okanagan"] = "oka",
["Oki-No-Erabu"] = "okn",
["Okiek"] = "oki",
["Okinawa"] = "ryu",
["Oko-Eni-Osayen"] = "oks",
["Oko-Juwoi"] = "okj",
["Okobo"] = "okb",
["Okodia"] = "okd",
["Okolod"] = "kqv",
["Okpamheri"] = "opa",
["Okpe (Edo Barat Daya)"] = "oke",
["Okpe (Edo Barat Laut)"] = "okx",
["Okpela"] = "atg",
["Oksapmin"] = "opm",
["Oku"] = "oku",
["Okwanuchu"] = "nai-okw",
["Olekha"] = "ole",
["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",
["Omi"] = "omi",
["Omok"] = "omk",
["Omotik"] = "omt",
["Omotik Purba"] = "omv-pro",
["Omurano"] = "omu",
["One Inebu"] = "oin",
["One Molmo"] = "aun",
["One Selatan"] = "osu",
["One Utara"] = "onr",
["Oneida"] = "one",
["Ong"] = "oog",
["Onga Purba"] = "qfa-ong-pro",
["Ongota"] = "bxe",
["Onin"] = "oni",
["Onjob"] = "onj",
["Ono"] = "ons",
["Onobasulu"] = "onn",
["Onondaga"] = "ono",
["Ontenu"] = "ont",
["Oorlams"] = "oor",
["Opao"] = "opo",
["Opata"] = "opt",
["Opuuo"] = "lgn",
["Opón"] = "sai-opo",
["Orang Seletar"] = "ors",
["Oraon Sadri"] = "sdr",
["Orejón"] = "ore",
["Oring"] = "org",
["Oriya Adivasi"] = "ort",
["Orléanais"] = "roa-orl",
["Ormu"] = "orz",
["Ormuri"] = "oru",
["Oro"] = "orx",
["Oro Win"] = "orw",
["Oroch"] = "oac",
["Oroha"] = "ora",
["Orok"] = "oaa",
["Orokaiva"] = "okv",
["Oroko"] = "bdu",
["Orokolo"] = "oro",
["Oromo"] = "om",
["Oroqen"] = "orh",
["Orowe"] = "bpk",
["Oruma"] = "orr",
["Orya"] = "ury",
["Osage"] = "osa",
["Osamayi"] = "syx",
["Osatu"] = "ost",
["Osci"] = "osc",
["Osing"] = "osi",
["Ososo"] = "oso",
["Ossetia"] = "os",
["Ossetia Kuno"] = "oos",
["Ot Danum"] = "otd",
["Otank"] = "uta",
["Oti"] = "oti",
["Oti-Volta Purba"] = "nic-ovo-pro",
["Oti-Volta Timur Purba"] = "nic-eov-pro",
["Oto-Manguean Purba"] = "omq-pro",
["Oto-Pamean Purba"] = "omq-otp-pro",
["Otomaco"] = "sai-oto",
["Otomi Estado de México"] = "ots",
["Otomi Ixtenco"] = "otz",
["Otomi Mezquital"] = "ote",
["Otomi Purba"] = "oto-otm-pro",
["Otomi Querétaro"] = "otq",
["Otomi Tanah Tinggi Timur"] = "otm",
["Otomi Temoaya"] = "ott",
["Otomi Tenango"] = "otn",
["Otomi Texcatepec"] = "otx",
["Otomi Tilapa"] = "otl",
["Otomian Purba"] = "oto-pro",
["Otoro"] = "otr",
["Ottawa"] = "otw",
["Otuke"] = "otu",
["Ouma"] = "oum",
["Oune"] = "oue",
["Owa"] = "stn",
["Owenia"] = "wsr",
["Owiniga"] = "owi",
["Oy"] = "oyb",
["Oya'oya"] = "oyy",
["Oyda"] = "oyd",
["Ozumacín Chinantec"] = "chz",
["Pa"] = "ppt",
["Pa Di"] = "pdi",
["Pa'a"] = "pqa",
["Pa-Hng"] = "pha",
["Paama"] = "pma",
["Paasaal"] = "sig",
["Pacahuara"] = "pcp",
["Pacoh"] = "pac",
["Padoe"] = "pdo",
["Paelignian"] = "pgn",
["Paeonia"] = "ine-pae",
["Pagi"] = "pgi",
["Pagibete"] = "pae",
["Pagu"] = "pgu",
["Pahari-Potwari"] = "phr",
["Paharia Sawriya"] = "mjt",
["Pahi"] = "lgt",
["Pahlavani"] = "phv",
["Pai Tavytera"] = "pta",
["Paicî"] = "pri",
["Paikoneka"] = "awd-pai",
["Paipai"] = "ppi",
["Paite"] = "pck",
["Paiute Utara"] = "pao",
["Paiwan"] = "pwn",
["Pak-Tong"] = "pkg",
["Pakanha"] = "pkn",
["Pakanik Purba"] = "mkh-pkn-pro",
["Paku"] = "pku",
["Pal"] = "abw",
["Palaic"] = "plq",
["Palaka Senoufo"] = "plr",
["Palantla Chinantec"] = "cpa",
["Palau"] = "pau",
["Palaungik Purba"] = "mkh-pal-pro",
["Palawano Barat Daya"] = "plv",
["Palawano Brooke's Point"] = "plw",
["Paleni"] = "pnl",
["Palenquero"] = "pln",
["Pali"] = "pi",
["Palikur"] = "plu",
["Paliyan"] = "pcf",
["Pallanganmiddang"] = "pmd",
["Palor"] = "fap",
["Palta"] = "sai-pal",
["Palu'e"] = "ple",
["Paluan"] = "plz",
["Palya Bareli"] = "bpx",
["Pam"] = "pmn",
["Pama-Nyunga Purba"] = "aus-pam-pro",
["Pambia"] = "pmb",
["Pame Tengah"] = "pbs",
["Pame Utara"] = "pmq",
["Pamigua"] = "sai-pam",
["Pamlico"] = "pmk",
["Pamona"] = "pmf",
["Pamosu"] = "hih",
["Pana (Afrika Barat)"] = "pnq",
["Pana (Afrika Tengah)"] = "pnz",
["Panamint"] = "par",
["Panare"] = "pbh",
["Panará"] = "kre",
["Panasuan"] = "psn",
["Panawa"] = "pwb",
["Pancana"] = "pnp",
["Panchpargania"] = "tdb",
["Pande"] = "bkj",
["Pangasinan"] = "pag",
["Pangseng"] = "pgs",
["Pangutaran Sama"] = "slm",
["Pangwa"] = "pbr",
["Pangwali"] = "pgg",
["Panim"] = "pnr",
["Paniya"] = "pcg",
["Pankararé"] = "pax",
["Pankararú"] = "paz",
["Pankhu"] = "pkh",
["Pannei"] = "pnc",
["Panobo"] = "pno",
["Panyi Bai"] = "bfc",
["Panyjima"] = "pnw",
["Panzaleo"] = "sai-pnz",
["Pao"] = "ppa",
["Papantla Totonac"] = "top",
["Papapana"] = "ppn",
["Papar"] = "dpp",
["Papasena"] = "pas",
["Papel"] = "pbo",
["Papi"] = "ppe",
["Papiamentu"] = "pap",
["Papitalai"] = "pat",
["Papora"] = "ppu",
["Papuan Malay"] = "pmy",
["Papuma"] = "ppm",
["Para Naga"] = "pzn",
["Parachi"] = "prc",
["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",
["Paresi-Waura Purba"] = "awd-prw-pro",
["Parkari Koli"] = "kvx",
["Parsi"] = "fa",
["Parsi Kuno"] = "peo",
["Parsi Pertengahan"] = "pal",
["Parthia"] = "xpr",
["Parya"] = "paq",
["Pashayi Barat Daya"] = "psh",
["Pashayi Tenggara"] = "psi",
["Pashayi Timur Laut"] = "aee",
["Pashto"] = "ps",
["Pasi"] = "psq",
["Pasifik Tengah Purba"] = "poz-pcc-pro",
["Pass Valley Yali"] = "yac",
["Pasé"] = "awd-pas",
["Patagón"] = "sai-ptg",
["Patamona"] = "pbc",
["Patani"] = "ptn",
["Pataxó Hã-Ha-Hãe"] = "pth",
["Patep"] = "ptp",
["Pathan Purba"] = "ira-pat-pro",
["Pathiya"] = "pty",
["Pattani"] = "lae",
["Pattapu"] = "ptq",
["Patwin"] = "pwi",
["Paulohi"] = "plh",
["Paumarí"] = "pad",
["Paunaca"] = "pnk",
["Pauri Bareli"] = "bfb",
["Pauserna"] = "psm",
["Pawaia"] = "pwa",
["Pawnee"] = "paw",
["Payaguá"] = "sai-pyg",
["Paynamar"] = "pmr",
["Pazeh"] = "pzh",
["Pe"] = "pai",
["Pear"] = "pcb",
["Pearik Purba"] = "mkh-pea-pro",
["Peba"] = "sai-peb",
["Pech"] = "pay",
["Pecheneg"] = "xpc",
["Peerapper"] = "xpw",
["Peere"] = "pfe",
["Pei"] = "ppq",
["Pekal"] = "pel",
["Pela"] = "bxd",
["Pele-Ata"] = "ata",
["Pemon"] = "aoc",
["Penan Barat"] = "pne",
["Penan Timur"] = "pez",
["Penchal"] = "pek",
["Pendau"] = "ums",
["Pengo"] = "peg",
["Penobscot"] = "aaq",
["Penrhyn"] = "pnh",
["Pentlatch"] = "ptw",
["Penuti Penara Purba"] = "nai-plp-pro",
["Perai"] = "wet",
["Peranakan Indonesian"] = "pea",
["Perancis"] = "fr",
["Perancis Kreol Karipúna"] = "kmv",
["Perancis Kreol Réunion"] = "rcf",
["Perancis Kreol San Miguel"] = "scf",
["Perancis Kuno"] = "fro",
["Perancis Pertengahan"] = "frm",
["Perema"] = "wom",
["Pericú"] = "nai-per",
["Permik Purba"] = "urj-prm-pro",
["Pero"] = "pip",
["Petapa Zapotec"] = "zpe",
["Petats"] = "pex",
["Petjo"] = "pey",
["Phai"] = "prt",
["Phake"] = "phk",
["Phala"] = "ypa",
["Phalura"] = "phl",
["Phana'"] = "phq",
["Phangduwali"] = "phw",
["Phende"] = "pem",
["Phimbi"] = "phm",
["Phoenicia"] = "phn",
["Phola"] = "ypg",
["Pholo"] = "yip",
["Phom"] = "nph",
["Phong-Kniang"] = "pnx",
["Phrae Pwo"] = "kjt",
["Phrygia"] = "xpg",
["Phu Thai"] = "pht",
["Phuan"] = "phu",
["Phudagi"] = "phd",
["Phuie"] = "pug",
["Phukha"] = "phh",
["Phuma"] = "ypm",
["Phunoi"] = "pho",
["Phuong"] = "phg",
["Phupa"] = "ypp",
["Phupha"] = "yph",
["Phuthi"] = "bnt-phu",
["Phuza"] = "ypz",
["Piamatsina"] = "ptr",
["Piame"] = "pin",
["Piapoco"] = "pio",
["Piaroa"] = "pid",
["Picard"] = "pcd",
["Picene Utara"] = "nrp",
["Picenum Selatan"] = "spx",
["Pichinglis"] = "fpe",
["Pichis Ashéninka"] = "cpu",
["Pict"] = "xpi",
["Picuris"] = "nai-pic",
["Pidgin Delaware"] = "dep",
["Pidgin Iha"] = "ihb",
["Pidgin Naga"] = "nag",
["Pidgin Ndyuka-Trio"] = "njt",
["Pidgin Onin"] = "onx",
["Piemonte"] = "pms",
["Pijao"] = "pij",
["Pije"] = "piz",
["Pijin"] = "pis",
["Pijin Basque-Iceland"] = "crp-bip",
["Pijin Cameroon"] = "wes",
["Pijin Greenland Barat"] = "crp-gep",
["Pijin Jerman Kiautschou"] = "crp-kia",
["Pijin Ladang Samoa"] = "crp-spp",
["Pijin Nigeria"] = "pcm",
["Pijin Portugis Macau"] = "crp-mpp",
["Pijin Rusia Taimyr"] = "crp-tpr",
["Pijin Rusia-China"] = "crp-cpr",
["Pilagá"] = "plg",
["Pileni"] = "piv",
["Pima Bajo"] = "pia",
["Pimbwe"] = "piw",
["Pinai-Hagahai"] = "pnn",
["Pingelapese"] = "pif",
["Pinghua Selatan"] = "csp",
["Pinghua Utara"] = "cnp",
["Pini"] = "pii",
["Pinigura"] = "pnv",
["Pinjarup"] = "pnj",
["Pinji"] = "pic",
["Pintiini"] = "pti",
["Pintupi-Luritja"] = "piu",
["Pinyin"] = "pny",
["Pipil"] = "ppl",
["Pirahã"] = "myp",
["Piratapuyo"] = "pir",
["Pirlatapa"] = "bxi",
["Piro"] = "pie",
["Pirriya"] = "xpa",
["Pisabo"] = "pig",
["Pisaflores Tepehua"] = "tpp",
["Piscataway"] = "psy",
["Pisidia"] = "xps",
["Pitcairn-Norfolk"] = "pih",
["Piti"] = "pcn",
["Pitjantjatjara"] = "pjt",
["Pitta-Pitta"] = "pit",
["Piu"] = "pix",
["Piya-Kwonci"] = "piy",
["Plains Cree"] = "crk",
["Plains Indian Sign Language"] = "psd",
["Plains Miwok"] = "pmw",
["Plapo Krumen"] = "ktj",
["Plateau Purba"] = "nic-plt-pro",
["Plautdietsch"] = "pdt",
["Pnar"] = "pbv",
["Pnar-Khasi-Lyngngam Purba"] = "aav-pkl-pro",
["Pochutec"] = "xpo",
["Podoko"] = "pbi",
["Pogali"] = "hkh",
["Pogolo"] = "poy",
["Pohnpei"] = "pon",
["Poitevin-Saintongeais"] = "roa-poi",
["Pokangá"] = "pok",
["Poke"] = "pof",
["Pol"] = "pmm",
["Polabia"] = "pox",
["Poland"] = "pl",
["Poland Kuno"] = "zlw-opl",
["Polci"] = "plj",
["Polinesia Purba"] = "poz-pol-pro",
["Polinesia Teras Purba"] = "poz-pnp-pro",
["Polinesia Timur Purba"] = "poz-pep-pro",
["Polonombauk"] = "plb",
["Pom"] = "pmo",
["Pomo Purba"] = "nai-pom-pro",
["Pomo Selatan"] = "peq",
["Pomo Tengah"] = "poo",
["Pomo Tenggara"] = "pom",
["Pomo Timur"] = "peb",
["Pomo Timur Laut"] = "pef",
["Pomo Utara"] = "pej",
["Ponam"] = "ncc",
["Pongu"] = "png",
["Ponosakan"] = "pns",
["Ponyo"] = "npg",
["Poqomam"] = "poc",
["Poqomchi'"] = "poh",
["Porohanon"] = "prh",
["Port Sandwich"] = "psw",
["Port Sorell"] = "xpl",
["Port Vato"] = "ptv",
["Portugis"] = "pt",
["Portugis Kreol Korlai"] = "vkp",
["Potawatomi"] = "pot",
["Potiguára"] = "pog",
["Poumei Naga"] = "pmx",
["Pouye"] = "bye",
["Powari"] = "pwr",
["Powhatan"] = "pim",
["Poyanáwa"] = "pyn",
["Pra-Samnit"] = "itc-psa",
["Prakrit"] = "pra",
["Prakrit Ashoka"] = "inc-ash",
["Prakrit Kamarupi"] = "inc-kam",
["Prakrit Niya"] = "pra-niy",
["Prasuni"] = "prn",
["Primitive Irish"] = "pgl",
["Principe"] = "pre",
["Prusia Kuno"] = "prg",
["Psikye"] = "kvj",
["Puare"] = "pux",
["Puebla Mazatec"] = "pbm",
["Puelche"] = "pue",
["Puinave"] = "pui",
["Puiron"] = "sit-prn",
["Pukapukan"] = "pkp",
["Pulabu"] = "pup",
["Pulau Bruny"] = "xpz",
["Pulau Flinders"] = "fln",
["Puluwat"] = "puw",
["Puma"] = "pum",
["Pumi Selatan"] = "pmj",
["Pumi Utara"] = "pmi",
["Pumpokol"] = "xpm",
["Pumé"] = "yae",
["Punan Aput"] = "pud",
["Punan Bah-Biau"] = "pna",
["Punan Batu"] = "pnm",
["Punan Merah"] = "puf",
["Punan Merap"] = "puc",
["Punan Tubu"] = "puj",
["Punik"] = "xpu",
["Punjabi"] = "pa",
["Punjabi Barat"] = "pnb",
["Punjabi Kuno"] = "inc-opa",
["Punu"] = "puu",
["Puoc"] = "puo",
["Puquina"] = "puq",
["Puragi"] = "pru",
["Purari"] = "iar",
["Purepecha"] = "pua",
["Puri"] = "prr",
["Purik"] = "prx",
["Purisimeño"] = "puy",
["Puroik Purba"] = "sit-khp-pro",
["Puruborá"] = "pur",
["Puruhá"] = "sai-prh",
["Purukotó"] = "sai-pur",
["Purum"] = "pub",
["Putai"] = "mfl",
["Putoh"] = "put",
["Putukwam"] = "afe",
["Puyo-Paekche"] = "xpp",
["Puyuma"] = "pyu",
["Pwaamei"] = "pme",
["Pwapwa"] = "pop",
["Pwo Barat"] = "pwo",
["Pwo Timur"] = "kjp",
["Pwo Utara"] = "pww",
["Pyapun"] = "pcw",
["Pye Krumen"] = "pye",
["Pyemmairre"] = "xpb",
["Pyen"] = "pyy",
["Pykobjê"] = "sai-pyk",
["Pyu"] = "pby",
["Páez"] = "pbb",
["Pááfang"] = "pfa",
["Päri"] = "lkr",
["Pémono"] = "pev",
["Pévé"] = "lme",
["Pökoot"] = "pko",
["Q'anjob'al"] = "kjb",
["Q'eqchi"] = "kek",
["Qabiao"] = "laq",
["Qaqet"] = "byx",
["Qatabanian"] = "xqt",
["Qiang Utara"] = "cng",
["Qibti"] = "cop",
["Qimant"] = "ahg",
["Quapaw"] = "qua",
["Quechua"] = "qu",
["Quechua Klasik"] = "qwc",
["Quechua Purba"] = "qwe-pro",
["Quenya"] = "qya",
["Quetzaltepec Mixe"] = "pxm",
["Queyu"] = "qvy",
["Quiavicuzas Zapotec"] = "zpj",
["Quileute"] = "qui",
["Quimbaya"] = "sai-qmb",
["Quinault"] = "qun",
["Quinigua"] = "nai-qng",
["Quinqui"] = "quq",
["Quioquitani-Quierí Zapotec"] = "ztq",
["Quiotepec Chinantec"] = "chq",
["Quiripi"] = "qyp",
["Quitemo"] = "sai-qtm",
["Rabha"] = "rah",
["Rabona"] = "sai-rab",
["Rade"] = "rad",
["Raetic"] = "xrr",
["Raga"] = "lml",
["Rahambuu"] = "raz",
["Rajasthan"] = "raj",
["Rajbanshi"] = "rjs",
["Raji"] = "rji",
["Rajong"] = "rjg",
["Rakahanga-Manihiki"] = "rkh",
["Rakhine"] = "rki",
["Ralte"] = "ral",
["Rama"] = "rma",
["Ramandi"] = "tks",
["Ramanos"] = "sai-ram",
["Ramoaaina"] = "rai",
["Ramopa"] = "kjx",
["Rampi"] = "lje",
["Rana Tharu"] = "thr",
["Rang"] = "rax",
["Rangkas"] = "rgk",
["Ranglong"] = "rnl",
["Rao"] = "rao",
["Rapa"] = "ray",
["Rapa Nui"] = "rap",
["Rapoisi"] = "kyx",
["Rapting"] = "rpt",
["Rara Bakati'"] = "lra",
["Rarotonga"] = "rar",
["Rasawa"] = "rac",
["Ratagnon"] = "btn",
["Ratahan"] = "rth",
["Rathawi"] = "rtw",
["Rathwi Bareli"] = "bgd",
["Raute"] = "rau",
["Ravula"] = "yea",
["Rawa"] = "rwo",
["Rawang"] = "raw",
["Rawat"] = "jnl",
["Rawo"] = "rwa",
["Rayón Zoque"] = "zor",
["Razajerdi"] = "rat",
["Razihi"] = "rzh",
["Reang"] = "ria",
["Reel"] = "atu",
["Rejang"] = "rej",
["Reli"] = "rei",
["Rema"] = "bow",
["Rembarunga"] = "rmb",
["Rembong"] = "reb",
["Remo"] = "rem",
["Rempi"] = "rmp",
["Remun"] = "lkj",
["Rendille"] = "rel",
["Rengao"] = "ren",
["Rennell"] = "mnv",
["Repanbitip"] = "rpn",
["Rer Bare"] = "rer",
["Rerau"] = "rea",
["Rerep"] = "pgk",
["Reshe"] = "res",
["Resígaro"] = "rgr",
["Retta"] = "ret",
["Reyesano"] = "rey",
["Riang"] = "ril",
["Riantana"] = "ran",
["Ribun"] = "rir",
["Rigwe"] = "iri",
["Rikbaktsa"] = "rkb",
["Ringgou"] = "rgu",
["Ririo"] = "rri",
["Ritarungo"] = "rit",
["Riung"] = "riu",
["Riverain Sango"] = "snj",
["Roglai Cacgia"] = "roc",
["Roglai Selatan"] = "rgs",
["Roglai Utara"] = "rog",
["Rogo"] = "rod",
["Rohingya"] = "rhg",
["Roma"] = "rmm",
["Romagnol"] = "rgn",
["Romam"] = "rmx",
["Romani"] = "rom",
["Romani Balkan"] = "rmn",
["Romani Baltik"] = "rml",
["Romani Carpathia"] = "rmc",
["Romani Finland Kalo"] = "rmf",
["Romani Sinte"] = "rmo",
["Romani Vlax"] = "rmy",
["Romani Wales"] = "rmw",
["Romania"] = "ro",
["Romano-Serbia"] = "rsb",
["Romanova"] = "rmv",
["Romansh"] = "rm",
["Romblomanon"] = "rol",
["Rombo"] = "rof",
["Romkun"] = "rmk",
["Ron"] = "cla",
["Ronga"] = "rng",
["Rongga"] = "ror",
["Rongpo"] = "rnp",
["Ronji"] = "roe",
["Roon"] = "rnn",
["Roria"] = "rga",
["Roro"] = "rro",
["Rotokas"] = "roo",
["Rotuma"] = "rtm",
["Rouran"] = "mis-rou",
["Roviana"] = "rug",
["Ruching Palaung"] = "pce",
["Rudbari"] = "rdb",
["Rufiji"] = "rui",
["Ruga"] = "ruh",
["Rukai"] = "dru",
["Rukai Purba"] = "dru-pro",
["Rukiga"] = "cgg",
["Ruma"] = "ruz",
["Rumai Palaung"] = "rbb",
["Rumu"] = "klq",
["Runga"] = "rou",
["Rungtu"] = "rtc",
["Rungus"] = "drg",
["Rungwa"] = "rnw",
["Rusia"] = "ru",
["Russenorsk"] = "crp-rsn",
["Rusyn"] = "rue",
["Rusyn Pannonia"] = "rsk",
["Ruthenia Kuno"] = "zle-ort",
["Rutul"] = "rut",
["Ruuli"] = "ruc",
["Ruwund"] = "rnd",
["Rwa"] = "rwk",
["Rwanda-Rundi"] = "rw",
["Ryukyu Purba"] = "jpx-ryu-pro",
["Sa"] = "sax",
["Sa'a"] = "apb",
["Sa'ban"] = "snv",
["Sa'och"] = "scq",
["Saafi-Saafi"] = "sav",
["Saam"] = "raq",
["Saamia"] = "lsm",
["Saanich"] = "str",
["Saare"] = "uss",
["Saaroa"] = "sxr",
["Saba"] = "saa",
["Sabaean"] = "xsa",
["Sabaki Purba"] = "bnt-sab-pro",
["Sabanê"] = "sae",
["Sabaot"] = "spy",
["Sabine"] = "sbv",
["Sabir"] = "pml",
["Sabu"] = "hvn",
["Sabüm"] = "sbo",
["Sacapulteco"] = "quv",
["Sadri"] = "sck",
["Saek"] = "skb",
["Saep"] = "spd",
["Safait"] = "sem-saf",
["Safaliba"] = "saf",
["Safeyoka"] = "apz",
["Safwa"] = "sbk",
["Sagala"] = "sbm",
["Sagalla"] = "tga",
["Sahaptin"] = "nai-spt",
["Saho"] = "ssy",
["Sahu"] = "saj",
["Saisiyat"] = "xsy",
["Sajau Basap"] = "sjb",
["Saka Purba"] = "xsc-sak-pro",
["Saka-Wakhi Purba"] = "xsc-skw-pro",
["Sakachep"] = "sch",
["Sakam"] = "skm",
["Sakao"] = "sku",
["Sakata"] = "skt",
["Sake"] = "sak",
["Sakizaya"] = "szy",
["Sala"] = "shq",
["Salako"] = "knx",
["Salampasu"] = "slx",
["Salar"] = "slr",
["Salas"] = "sgu",
["Salchuq"] = "slq",
["Saleman"] = "sau",
["Saliba (Colombia)"] = "slc",
["Saliba (New Guinea)"] = "sbe",
["Salinan"] = "sln",
["Salish Montana"] = "fla",
["Salish Puget Sound Selatan"] = "slh",
["Salish Purba"] = "sal-pro",
["Salt-Yui"] = "sll",
["Saluan"] = "loe",
["Salumá"] = "slj",
["Sam"] = "snx",
["Sama"] = "smd",
["Samal"] = "sem-sam",
["Samaritan Aramaic"] = "sam",
["Samarokena"] = "tmj",
["Samatao"] = "ysd",
["Samba"] = "smx",
["Sambal"] = "xsb",
["Sambalpuri"] = "spv",
["Sambe"] = "xab",
["Samberigi"] = "ssx",
["Samburu"] = "saq",
["Samei"] = "smh",
["Sami Akkala"] = "sia",
["Sami Inari"] = "smn",
["Sami Kemi"] = "sjk",
["Sami Kildin"] = "sjd",
["Sami Lule"] = "smj",
["Sami Pite"] = "sje",
["Sami Purba"] = "smi-pro",
["Sami Selatan"] = "sma",
["Sami Skolt"] = "sms",
["Sami Ter"] = "sjt",
["Sami Ume"] = "sju",
["Sami Utara"] = "se",
["Samiah Barat Purba"] = "sem-wes-pro",
["Samiah Purba"] = "sem-pro",
["Samo"] = "smq",
["Samo Selatan"] = "sbd",
["Samoa"] = "sm",
["Samogitia"] = "sgs",
["Samosa"] = "swm",
["Samoyed Purba"] = "syd-pro",
["Sampang"] = "rav",
["Samre"] = "sxm",
["Samtao"] = "stu",
["Samvedi"] = "smv",
["San Agustín Mixtepec Zapotec"] = "ztm",
["San Baltazar Loxicha Zapotec"] = "zpx",
["San Felipe Otlaltepec Popoloca"] = "pow",
["San Juan Atzingo Popoloca"] = "poe",
["San Juan Teita Mixtec"] = "xtj",
["San Luís Temalacayuca Popoloca"] = "pps",
["San Marcos Tlalcoyalco Popoloca"] = "pls",
["San Martín Itunyoso Triqui"] = "trq",
["San Pablo Güilá Zapotec"] = "ztu",
["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",
["Sanglechi-Ishkashimi Purba"] = "ira-sgi-pro",
["Sango"] = "sg",
["Sangu (Gabon)"] = "snq",
["Sangu (Tanzania)"] = "sbp",
["Sani"] = "ysn",
["Sanie"] = "ysy",
["Saniyo-Hiyewe"] = "sny",
["Sansi"] = "ssi",
["Sanskrit"] = "sa",
["Santa Catarina Albarradas Zapotec"] = "ztn",
["Santa Inés Ahuatempan Popoloca"] = "pca",
["Santa Inés Yatzechi Zapotec"] = "zpn",
["Santa María Quiegolani Zapotec"] = "zpi",
["Santa Teresa Cora"] = "cok",
["Santal"] = "sat",
["Santiago Xanica Zapotec"] = "zpr",
["Sanumá"] = "xsu",
["Sapa"] = "tys",
["Saparua"] = "spr",
["Sapará"] = "sai-sap",
["Sapo"] = "krn",
["Saponi"] = "spi",
["Saposa"] = "sps",
["Sapuan"] = "spu",
["Sapé"] = "spc",
["Sar"] = "mwm",
["Sara"] = "sre",
["Sara Kaba"] = "sbz",
["Sara Kaba Deme"] = "kwg",
["Sara Kaba Náà"] = "kwv",
["Sara Purba"] = "csu-sar-pro",
["Saraiki"] = "skr",
["Saramaccan"] = "srm",
["Sarangani Blaan"] = "bps",
["Sarasira"] = "zsa",
["Saraveca"] = "sar",
["Sarawak Utara Purba"] = "poz-swa-pro",
["Sarazi"] = "inc-sar",
["Sardinia"] = "sc",
["Sarikoli"] = "srh",
["Sarli"] = "sdf",
["Sarmatia Purba"] = "xsc-sar-pro",
["Sartang"] = "onp",
["Sarua"] = "swy",
["Sarudu"] = "sdu",
["Saruga"] = "sra",
["Sasak"] = "sas",
["Sasaru"] = "sxs",
["Sassari"] = "sdc",
["Satawal"] = "stw",
["Sateré-Mawé"] = "mav",
["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",
["Saxon Kuno"] = "osx",
["Saxon Transylvania"] = "gmw-tsx",
["Saxwe Gbe"] = "sxw",
["Saya"] = "say",
["Sayula Popoluca"] = "pos",
["Scanian"] = "gmq-scy",
["Schwaben Szatmár"] = "gmw-stm",
["Scots"] = "sco",
["Scots Pertengahan"] = "gmw-msc",
["Scythia Purba"] = "xsc-pro",
["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",
["Selkup Purba"] = "sel-pro",
["Selkup Selatan"] = "sel-sou",
["Selkup Utara"] = "sel-nor",
["Selonia"] = "sxl",
["Selungai Murut"] = "slg",
["Seluwasan"] = "sws",
["Sema"] = "nsm",
["Semai"] = "sea",
["Semandang"] = "sdm",
["Semaq Beri"] = "szc",
["Sembakung Murut"] = "sbr",
["Semelai"] = "sza",
["Semimi"] = "etz",
["Semnam"] = "ssm",
["Semnani"] = "smy",
["Sempan"] = "xse",
["Sena"] = "seh",
["Senara Sénoufo"] = "seq",
["Senaya"] = "syn",
["Sene"] = "sej",
["Seneca"] = "see",
["Sengele"] = "szg",
["Senggi"] = "snu",
["Sengo"] = "spk",
["Sengseng"] = "ssz",
["Senhaja De Srair"] = "sjs",
["Sensi"] = "sni",
["Sentani"] = "set",
["Sentinel"] = "std",
["Sepa (Indonesia)"] = "spb",
["Sepa (New Guinea)"] = "spe",
["Sepanyol"] = "es",
["Sepanyol Kuno"] = "osp",
["Sepen"] = "spm",
["Sepik Iwam"] = "iws",
["Sera"] = "sry",
["Seranan"] = "srn",
["Serbo-Croatia"] = "sh",
["Sere"] = "swf",
["Serer"] = "srr",
["Seri"] = "sei",
["Serili"] = "sve",
["Seroa"] = "kqu",
["Serrano"] = "ser",
["Seru"] = "szd",
["Serua"] = "srw",
["Serui-Laut"] = "seu",
["Seta"] = "stf",
["Setaman"] = "stm",
["Seti"] = "sbi",
["Severn Ojibwa"] = "ojs",
["Sewa Bay"] = "sew",
["Seze"] = "sze",
["Sha"] = "scw",
["Shabak"] = "sdb",
["Shabo"] = "sbf",
["Shahmirzadi"] = "srz",
["Shahrudi"] = "shm",
["Shall-Zwall"] = "sha",
["Shama-Sambuga"] = "sqa",
["Shamang"] = "xsh",
["Shambala"] = "ksb",
["Shan"] = "shn",
["Shanenawa"] = "swo",
["Shanga"] = "sho",
["Shangzhai"] = "jih",
["Sharanahua"] = "mcd",
["Shark Bay"] = "ssv",
["Sharwa"] = "swq",
["Shasta"] = "sht",
["Shasta Sungai Baru"] = "nai-nrs",
["Shatt"] = "shj",
["Shau"] = "sqh",
["Shawnee"] = "sjw",
["She"] = "shx",
["Shebayo"] = "awd-she",
["Shehri"] = "shv",
["Shekkacho"] = "moy",
["Sheko"] = "she",
["Shelta"] = "sth",
["Shendu"] = "shl",
["Sheni"] = "scv",
["Sherbro"] = "bun",
["Sherdukpen"] = "sdp",
["Sherpa"] = "xsr",
["Sheshi Kham"] = "kip",
["Shi"] = "shr",
["Shilluk"] = "shk",
["Shina"] = "scl",
["Shinasha"] = "bwo",
["Shipibo-Conibo"] = "shp",
["Shixing"] = "sxg",
["Sholaga"] = "sle",
["Shom Peng"] = "sii",
["Shona"] = "sn",
["Shoo-Minda-Nye"] = "bcv",
["Shor"] = "cjs",
["Shoshone"] = "shh",
["Shua"] = "shg",
["Shuar"] = "jiv",
["Shuba"] = "cbq",
["Shughni"] = "sgh",
["Shughni-Roshani Purba"] = "ira-shr-pro",
["Shughni-Yazghulami Purba"] = "ira-shy-pro",
["Shughni-Yazghulami-Munji Purba"] = "ira-sym-pro",
["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",
["Sicanian"] = "sxc",
["Sicel"] = "scx",
["Sichuan"] = "zhx-sic",
["Sicilia"] = "scn",
["Siculo-Arabic"] = "sqr",
["Sidamo"] = "sid",
["Sidetic"] = "xsd",
["Sie"] = "erg",
["Sierra Leone Sign Language"] = "sgx",
["Sighu"] = "sxe",
["Sihan"] = "snr",
["Sika"] = "ski",
["Sikaiana"] = "sky",
["Sikaritai"] = "tty",
["Sikiana"] = "sik",
["Sikkim"] = "sip",
["Sikule"] = "skh",
["Sila"] = "slt",
["Sileibi"] = "sbq",
["Silesia"] = "szl",
["Silimo"] = "wul",
["Siliput"] = "mkc",
["Silopi"] = "xsp",
["Silt'e"] = "stv",
["Simaa"] = "sie",
["Simba"] = "sbw",
["Simbali"] = "smg",
["Simbari"] = "smb",
["Simbo"] = "sbb",
["Simeku"] = "smz",
["Simeulue"] = "smr",
["Simte"] = "smt",
["Sinacantán"] = "nai-sin",
["Sinagen"] = "siu",
["Sinasina"] = "sst",
["Sinaugoro"] = "snc",
["Sindarin"] = "sjn",
["Sindhi"] = "sd",
["Sindhi Bhil"] = "sbn",
["Singa"] = "sgm",
["Singapore Sign Language"] = "sls",
["Singpho"] = "sgp",
["Sinhala"] = "si",
["Sinicahua Mixtec"] = "xti",
["Sininkere"] = "skq",
["Sino-Tibet Purba"] = "sit-pro",
["Sinyar"] = "sys",
["Sinúfana"] = "sai-sin",
["Sio"] = "xsi",
["Siona"] = "snn",
["Siouan-Catawba Purba"] = "nai-sca-pro",
["Sioux Purba"] = "sio-pro",
["Sipakapense"] = "qum",
["Sira"] = "swj",
["Siraya"] = "fos",
["Sirenik"] = "ysr",
["Siri"] = "sir",
["Siriano"] = "sri",
["Sirionó"] = "srq",
["Sirmauri"] = "srx",
["Siroi"] = "ssd",
["Sisaala Barat"] = "ssl",
["Sissala"] = "sld",
["Sissano"] = "sso",
["Situ"] = "sit-sit",
["Siuslaw"] = "sis",
["Sivandi"] = "siy",
["Siwai"] = "siw",
["Siwi"] = "siz",
["Siwu"] = "akp",
["Skagit"] = "ska",
["Skalvian"] = "svx",
["Ske"] = "ske",
["Skou"] = "skv",
["Slav Purba"] = "sla-pro",
["Slav Timur Kuno"] = "orv",
["Slavey Selatan"] = "xsl",
["Slavey Utara"] = "scs",
["Slavomolisano"] = "svm",
["Slavonic Gereja"] = "zls-chs",
["Slavonic Gereja Kuno"] = "cu",
["Slovak"] = "sk",
["Slovak Kuno"] = "zlw-osk",
["Slovakian Sign Language"] = "svk",
["Slovenia"] = "sl",
["Slovincia"] = "zlw-slv",
["Small Flowery Miao"] = "sfm",
["Smärky Kanum"] = "kxq",
["Snohomish"] = "sno",
["So'a"] = "ssq",
["Sobei"] = "sob",
["Sochiapam Chinantec"] = "cso",
["Soga"] = "xog",
["Sogdia"] = "sog",
["Sogdia Purba"] = "ira-sgc-pro",
["Sok"] = "skk",
["Sokna"] = "swn",
["Soko"] = "soc",
["Sokoro"] = "sok",
["Solano"] = "xso",
["Soli"] = "sby",
["Solon"] = "tuw-sol",
["Solong"] = "aaw",
["Solos"] = "sol",
["Som"] = "smc",
["Somali"] = "so",
["Somaloid Purba"] = "cus-som-pro",
["Somba-Siawari"] = "bmu",
["Somra"] = "ntx",
["Somrai"] = "sor",
["Somray"] = "smu",
["Somyev"] = "kgt",
["Sonaga"] = "ysg",
["Sonde"] = "shc",
["Songe"] = "sop",
["Songhai Purba"] = "son-pro",
["Songomeno"] = "soe",
["Songoora"] = "sod",
["Sonha"] = "soi",
["Sonia"] = "siq",
["Soninke"] = "snk",
["Sonsorol"] = "sov",
["Soo"] = "teu",
["Sop"] = "urw",
["Soqotri"] = "sqt",
["Sora"] = "srb",
["Sorbia Atas"] = "hsb",
["Sori-Harengan"] = "sbh",
["Sorkhei"] = "sqo",
["Sorothaptic"] = "sxo",
["Sos Kundi"] = "sdk",
["Sota Kanum"] = "krz",
["Sotho"] = "st",
["Sotho Utara"] = "nso",
["Sotho-Tswana Purba"] = "bnt-sts-pro",
["Sou"] = "sqq",
["Sougb"] = "mnx",
["Southeast Babar"] = "vbb",
["Southeast Ijo"] = "ijs",
["Southeastern Ixtlán Zapotec"] = "zpd",
["Southern Pame"] = "pmz",
["Southern Qiang"] = "qxs",
["Southern Rincon Zapotec"] = "zsr",
["Sowa"] = "sww",
["Sowanda"] = "sow",
["Spanish Sign Language"] = "ssp",
["Spiti Bhoti"] = "spt",
["Spokane"] = "spo",
["Squamish"] = "squ",
["Sri Lankan Sign Language"] = "sqs",
["Stau"] = "ero-tau",
["Stod Bhoti"] = "sbu",
["Stoney"] = "sto",
["Suabo"] = "szp",
["Suarmin"] = "seo",
["Suau"] = "swp",
["Suba"] = "sxb",
["Suba-Simbiti"] = "ssc",
["Subanen Tengah"] = "syb",
["Subanen Utara"] = "stb",
["Subanon Barat"] = "suc",
["Subanun Lapuyan"] = "laa",
["Subi"] = "xsj",
["Subiya"] = "sbs",
["Subtiaba"] = "sut",
["Sudan Tengah Purba"] = "csu-pro",
["Sudest"] = "tgo",
["Sudovian"] = "xsv",
["Suena"] = "sue",
["Suga"] = "sgi",
["Suganga"] = "sug",
["Sui"] = "swi",
["Suki"] = "sui",
["Suku"] = "sub",
["Sukuma"] = "suk",
["Sukur"] = "syk",
["Sukurum"] = "zsu",
["Sula"] = "szn",
["Sulawesi Selatan Purba"] = "poz-ssw-pro",
["Sulka"] = "sua",
["Sulod"] = "srg",
["Suluk"] = "tsg",
["Sulung"] = "suv",
["Suma"] = "sqm",
["Sumariup"] = "siv",
["Sumau"] = "six",
["Sumbawa"] = "smw",
["Sumbwa"] = "suw",
["Sumeria"] = "sux",
["Sunam"] = "ssk",
["Sunda"] = "su",
["Sunda Kuno"] = "osn",
["Sungai"] = "dmg",
["Sungwadaga"] = "mwo",
["Sungwadia"] = "mrb",
["Sunum"] = "ymn",
["Sunwar"] = "suz",
["Suoy"] = "syo",
["Supyire"] = "spp",
["Sur"] = "tdl",
["Surbakhal"] = "sbj",
["Suri"] = "suq",
["Surigaonon"] = "sgd",
["Surjapuri"] = "sjp",
["Sursurunga"] = "sgz",
["Suruahá"] = "swx",
["Surubu"] = "sde",
["Suruí"] = "sru",
["Suruí Do Pará"] = "mdz",
["Suryani Klasik"] = "syc",
["Susquehannock"] = "sqn",
["Susu"] = "sus",
["Susuami"] = "ssu",
["Suundi"] = "sdj",
["Suwawa"] = "swu",
["Suyá"] = "suy",
["Svan"] = "sva",
["Swabia"] = "swg",
["Swahili"] = "sw",
["Swampy Cree"] = "csw",
["Swazi"] = "ss",
["Sweden"] = "sv",
["Sweden Kuno"] = "gmq-osw",
["Swedish Sign Language"] = "swl",
["Swiss-French Sign Language"] = "ssr",
["Swiss-German Sign Language"] = "sgg",
["Swiss-Italian Sign Language"] = "slf",
["Swo"] = "sox",
["Syenara Senoufo"] = "shz",
["Sylhet"] = "syl",
["Sácata"] = "sai-sac",
["Sãotomense"] = "cri",
["Sìcìté Sénoufo"] = "sep",
["Sô"] = "sss",
["T'en"] = "tct",
["Ta-Arawak Purba"] = "awd-taa-pro",
["Taabwa"] = "tap",
["Taba"] = "mky",
["Tabancale"] = "sai-tab",
["Tabaru"] = "tby",
["Tabasaran"] = "tab",
["Tabasco Chontal"] = "chf",
["Tabasco Zoque"] = "zoq",
["Tabla"] = "tnm",
["Tabo"] = "knv",
["Tabriak"] = "tzx",
["Tacana"] = "tna",
["Tachawit"] = "shy",
["Tadaksahak"] = "dsq",
["Tadyawan"] = "tdy",
["Tae'"] = "rob",
["Tafi"] = "tcd",
["Tafreshi"] = "xme-taf",
["Tagabawa"] = "bgs",
["Tagal Murut"] = "mvv",
["Tagalog"] = "tl",
["Tagbanwa"] = "tbw",
["Tagbanwa Tengah"] = "tgt",
["Tagbu"] = "tbm",
["Tagdal"] = "tda",
["Tagish"] = "tgx",
["Tagoi"] = "tag",
["Tagwana Senoufo"] = "tgw",
["Tahiti"] = "ty",
["Tahltan"] = "tht",
["Tai"] = "taw",
["Tai Barat Daya Purba"] = "tai-swe-pro",
["Tai Daeng"] = "tyr",
["Tai Dam"] = "blt",
["Tai Do"] = "tyj",
["Tai Dón"] = "twh",
["Tai Hang Tong"] = "thc",
["Tai Hongjin"] = "tiz",
["Tai Laing"] = "tjl",
["Tai Loi"] = "tlq",
["Tai Long"] = "thi",
["Tai Nüa"] = "tdd",
["Tai Pao"] = "tpo",
["Tai Purba"] = "tai-pro",
["Tai Thanh"] = "tmm",
["Tai Ya"] = "cuu",
["Taikat"] = "aos",
["Tainae"] = "ago",
["Tairora Selatan"] = "omw",
["Tairora Utara"] = "tbg",
["Tairuma"] = "uar",
["Taishan"] = "zhx-tai",
["Taita"] = "dav",
["Taivoan"] = "tvx",
["Taje"] = "pee",
["Tajik"] = "tg",
["Tajio"] = "tdj",
["Tajuasohn"] = "tja",
["Takelma"] = "tkm",
["Takia"] = "tbc",
["Takik Purba"] = "azc-tak-pro",
["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",
["Taman Purba"] = "sdv-tmn-pro",
["Tamanaku"] = "tmz",
["Tamang Barat"] = "tdg",
["Tamang Barat Daya"] = "tsf",
["Tamang Barat Laut"] = "tmk",
["Tamang Gorkha Timur"] = "tge",
["Tamang Purba"] = "sit-tam-pro",
["Tamang Timur"] = "taj",
["Tamazight Atlas Tengah"] = "tzm",
["Tamazola Mixtec"] = "vmx",
["Tambas"] = "tdk",
["Tambora"] = "xxt",
["Tambotalo"] = "tls",
["Tami"] = "tmy",
["Tamil"] = "ta",
["Tamil Kuno"] = "oty",
["Tamki"] = "tax",
["Tamnim Citak"] = "tml",
["Tampias Lobu"] = "low",
["Tampuan"] = "tpu",
["Tampulma"] = "tpm",
["Tanacross"] = "tcb",
["Tanahmerah"] = "tcm",
["Tanapag"] = "tpv",
["Tanchangya"] = "tnv",
["Tandaganon"] = "tgn",
["Tandia"] = "tni",
["Tanema"] = "tnx",
["Tangale"] = "tan",
["Tangam"] = "sit-tgm",
["Tanggu"] = "tgu",
["Tangkhul Purba"] = "sit-tng-pro",
["Tangko"] = "tkx",
["Tanglang"] = "ytl",
["Tangoa"] = "tgp",
["Tangsa"] = "nst",
["Tanguat"] = "tbs",
["Tangut"] = "txg",
["Tangwang"] = "mis-tnw",
["Tani Purba"] = "sit-tan-pro",
["Tanimbili"] = "tbe",
["Tanimuca-Retuarã"] = "tnc",
["Tanjijili"] = "uji",
["Tanna Barat Daya"] = "nwi",
["Tanna Utara"] = "tnn",
["Taos"] = "twf",
["Tapachultec"] = "nai-tap",
["Taparita"] = "sai-tpr",
["Tapayuna"] = "sai-tap",
["Tapeba"] = "tbb",
["Tapei"] = "afp",
["Tapieté"] = "tpj",
["Tapirapé"] = "taf",
["Tar Gula"] = "kcm",
["Tara Baka"] = "bdh",
["Tarahumara Barat Daya"] = "twr",
["Tarahumara Tengah"] = "tar",
["Tarahumara Tenggara"] = "tcu",
["Tarahumara Utara"] = "thh",
["Tarairiú"] = "sai-trr",
["Tarangan Barat"] = "txn",
["Tarangan Timur"] = "tre",
["Taranoan Purba"] = "sai-tar-pro",
["Tarantino"] = "roa-tar",
["Tarao"] = "tro",
["Taraon"] = "mhu",
["Tareng"] = "tgr",
["Tariana"] = "tae",
["Tarifit"] = "rif",
["Tarjumo"] = "txj",
["Tarok"] = "yer",
["Taroko"] = "trv",
["Tarpia"] = "tpf",
["Tartessian"] = "txr",
["Taruma"] = "tdm",
["Tasawaq"] = "twq",
["Tashelhit"] = "shi",
["Tasmania"] = "xtz",
["Tasmania Tenggara"] = "xpf",
["Tasmate"] = "tmt",
["Tat"] = "ttt",
["Tataltepec Chatino"] = "cta",
["Tatana"] = "txx",
["Tatar"] = "tt",
["Tatar Crimea"] = "crh",
["Tatar Siberia"] = "sty",
["Tataviam"] = "azc-tat",
["Tati Kuno"] = "xme-ott",
["Tatik Purba"] = "xme-ttc-pro",
["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",
["Tawbuid Barat"] = "twb",
["Tawbuid Timur"] = "bnj",
["Taworta"] = "tbp",
["Tawoyan"] = "twy",
["Tay Khang"] = "tnu",
["Tayman"] = "sem-tay",
["Tayo"] = "cks",
["Taíno"] = "tnq",
["Tboli"] = "tbl",
["Tchitchege"] = "tck",
["Tchumbuli"] = "bqa",
["Te'un"] = "tve",
["Teanu"] = "tkw",
["Tebul Ure Dogon"] = "dtu",
["Tecpatlán Totonac"] = "tcw",
["Tedaga"] = "tuq",
["Tee"] = "tkq",
["Tefaro"] = "tfo",
["Tegali"] = "ras",
["Tehit"] = "kps",
["Tehuelche"] = "teh",
["Teiwa"] = "twe",
["Tejalapan Zapotec"] = "ztt",
["Teke Tengah"] = "nzu",
["Teke-Fuumu"] = "ifm",
["Teke-Kukuya"] = "kkw",
["Teke-Laali"] = "lli",
["Teke-Tege"] = "teg",
["Teke-Tsaayi"] = "tyi",
["Teke-Tyee"] = "tyx",
["Tektiteko"] = "ttc",
["Tela-Masbuar"] = "tvm",
["Telefol"] = "tlf",
["Telugu"] = "te",
["Telugu Kuno"] = "dra-ote",
["Teluk Malua"] = "mll",
["Teluti"] = "tlt",
["Tem"] = "kdh",
["Tembé"] = "tqb",
["Teme"] = "tdo",
["Temein"] = "teq",
["Temi"] = "soz",
["Temiar"] = "tea",
["Temne"] = "tem",
["Temoq"] = "tmo",
["Tempasuk Dusun"] = "tdu",
["Temuan"] = "tmw",
["Ten'edn"] = "tnz",
["Tene Kan Dogon"] = "dtk",
["Tenggarong Kutai Malay"] = "vkt",
["Tengger"] = "tes",
["Tenharim"] = "pah",
["Tenino"] = "tqn",
["Tenis"] = "tns",
["Tennet"] = "tex",
["Teochew"] = "nan-tws",
["Teop"] = "tio",
["Teor"] = "tev",
["Tepecano"] = "tep",
["Tepehua Huehuetla"] = "tee",
["Tepehuan Barat Daya"] = "tla",
["Tepehuan Tenggara"] = "stp",
["Tepehuan Utara"] = "ntp",
["Tepetotutla Chinantec"] = "cnt",
["Tepeuxila Cuicatec"] = "cux",
["Tepinapa Chinantec"] = "cte",
["Tepo Krumen"] = "ted",
["Tequistlatec"] = "nai-teq",
["Tera"] = "ttr",
["Terebu"] = "trb",
["Terei"] = "buo",
["Tereno"] = "ter",
["Teressa"] = "tef",
["Tereweng"] = "twg",
["Teribe"] = "tfr",
["Terik"] = "tec",
["Termanu"] = "twu",
["Ternate"] = "tft",
["Ternateño"] = "tmg",
["Tese"] = "keg",
["Teshenawa"] = "twc",
["Tetela"] = "tll",
["Tetete"] = "teb",
["Tetserret"] = "tez",
["Tetum"] = "tet",
["Tetun Dili"] = "tdt",
["Teushen"] = "sai-teu",
["Teutila Cuicatec"] = "cut",
["Tewa"] = "tew",
["Texistepec Popoluca"] = "poq",
["Texmelucan Zapotec"] = "zpz",
["Tha"] = "thy",
["Thachanadan"] = "thn",
["Thai"] = "th",
["Thai Selatan"] = "sou",
["Thai Song"] = "soa",
["Thai Utara"] = "nod",
["Thakali"] = "ths",
["Thamud"] = "sem-tha",
["Thangmi"] = "thf",
["Thao"] = "ssf",
["Tharaka"] = "thk",
["Tharrgari"] = "dhr",
["Thavung"] = "thm",
["Thawa"] = "xtv",
["Tho"] = "tou",
["Thompson"] = "thp",
["Thopho"] = "ytp",
["Thracian"] = "txh",
["Thu Lao"] = "tyl",
["Thulung"] = "tdh",
["Thurawal"] = "tbh",
["Thuri"] = "thu",
["Tiagba"] = "ahi",
["Tiale"] = "mnl",
["Tiang"] = "tbj",
["Tibea"] = "ngy",
["Tibet"] = "bo",
["Tibet Klasik"] = "xct",
["Tibet Kuno"] = "otb",
["Ticuna"] = "tca",
["Tidore"] = "tvo",
["Tidung Selatan"] = "itd",
["Tidung Utara"] = "ntd",
["Tiemacèwè Bozo"] = "boo",
["Tiene"] = "tii",
["Tifal"] = "tif",
["Tigak"] = "tgc",
["Tigre"] = "tig",
["Tigrinya"] = "ti",
["Tii"] = "txq",
["Tijaltepec Mixtec"] = "xtl",
["Tikar"] = "tik",
["Tikopia"] = "tkp",
["Tillamook"] = "til",
["Tilquiapan Zapotec"] = "zts",
["Tilung"] = "tij",
["Tima"] = "tms",
["Timbe"] = "tim",
["Timor Pidgin"] = "tvy",
["Timote"] = "sai-tim",
["Timucua"] = "tjm",
["Tinagas Kota Marudu"] = "ktr",
["Tinani"] = "lbf",
["Tindi"] = "tin",
["Tingui-Boto"] = "tgv",
["Tinigua"] = "tit",
["Tinoc Kallahan"] = "tne",
["Tinputz"] = "tpz",
["Tipai"] = "nai-tip",
["Tippera"] = "tpe",
["Tira"] = "tic",
["Tirahi"] = "tra",
["Tiranige Diga Dogon"] = "tde",
["Tirax"] = "mme",
["Tircul"] = "pyx",
["Tiri"] = "cir",
["Tiruray"] = "tiy",
["Tita"] = "tdq",
["Titan"] = "ttv",
["Tiv"] = "tiv",
["Tiwa"] = "lax",
["Tiwa Selatan"] = "tix",
["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",
["Tlapanec Malinaltepec"] = "tcf",
["Tlingit"] = "tli",
["To"] = "toz",
["To'abaita"] = "mlu",
["Toaripi"] = "tqo",
["Toba"] = "tob",
["Toba-Maskoy"] = "tmf",
["Tobanga"] = "tng",
["Tobati"] = "tti",
["Tobelo"] = "tlb",
["Tobian"] = "tox",
["Tobilung"] = "tgb",
["Tobo"] = "tbv",
["Tocharia A"] = "xto",
["Tocharia B"] = "txb",
["Tocharia Purba"] = "ine-toc-pro",
["Tocho"] = "taz",
["Toda"] = "tcx",
["Todrah"] = "tdr",
["Tofa"] = "kim",
["Tofanma"] = "tlg",
["Tofin Gbe"] = "tfi",
["Togbo-Vara Banda"] = "tor",
["Togo Tengah Purba"] = "alv-gtm-pro",
["Togoyo"] = "tgy",
["Tojolabal"] = "toj",
["Tok Pisin"] = "tpi",
["Toka-Leya"] = "dov",
["Tokano"] = "zuh",
["Tokelau"] = "tkl",
["Toki Pona"] = "tok",
["Toku-No-Shima"] = "tkn",
["Tol"] = "jic",
["Tolai"] = "ksd",
["Tolaki"] = "lbw",
["Tolomako"] = "tlm",
["Tolowa"] = "tol",
["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"] = "to",
["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",
["Torricelli"] = "tei",
["Torricelli Yau"] = "yyu",
["Torwali"] = "trw",
["Torá"] = "trz",
["Tosu"] = "sit-tos",
["Totela"] = "ttl",
["Toto"] = "txo",
["Totoli"] = "txe",
["Totomachapan Zapotec"] = "zph",
["Totonac Barat"] = "tqt",
["Totoro"] = "ttk",
["Totozoquean Purba"] = "nai-tot-pro",
["Touo"] = "tqu",
["Toura"] = "neb",
["Toussiana Selatan"] = "wib",
["Toussiana Utara"] = "tsp",
["Towei"] = "ttn",
["Trans-New Guinea Purba"] = "ngf-pro",
["Translingual"] = "mul",
["Traveller Scottish"] = "trl",
["Tregami"] = "trm",
["Tremembé"] = "tme",
["Trieng"] = "stg",
["Trimuris"] = "tip",
["Tring"] = "tgq",
["Tringgus"] = "trx",
["Trinitario"] = "trn",
["Tripuri Awal"] = "xtr",
["Triqui Purba"] = "omq-tri-pro",
["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",
["Tsez Purba"] = "cau-tsz-pro",
["Tshangla"] = "tsj",
["Tshobdun"] = "sit-tsh",
["Tshwa"] = "hio",
["Tsikimba"] = "kdl",
["Tsimané"] = "cas",
["Tsimshian"] = "tsi",
["Tsimshianik Purba"] = "nai-tsi-pro",
["Tsishingini"] = "tsw",
["Tso"] = "ldp",
["Tsogo"] = "tsv",
["Tsonga"] = "ts",
["Tsotsitaal"] = "fly",
["Tsou"] = "tsu",
["Tsum"] = "ttz",
["Tsuut'ina"] = "srs",
["Tsuvadi"] = "tvd",
["Tsuvan"] = "tsh",
["Tswa"] = "tsc",
["Tswana"] = "tn",
["Tswapong"] = "two",
["Tuamotuan"] = "pmt",
["Tuareg"] = "tmh",
["Tubar"] = "tbu",
["Tucano"] = "tuo",
["Tugen"] = "tuy",
["Tugun"] = "tzn",
["Tugutil"] = "tuj",
["Tuhua Shaozhou"] = "zhx-sht",
["Tujia Selatan"] = "tjs",
["Tujia Utara"] = "tji",
["Tukang Besi Selatan"] = "bhq",
["Tukang Besi Utara"] = "khc",
["Tuki"] = "bag",
["Tukpa"] = "tpq",
["Tukudede"] = "tkd",
["Tukumanféd"] = "tkf",
["Tula"] = "tul",
["Tulehu"] = "tlu",
["Tulishi"] = "tey",
["Tulu"] = "tcy",
["Tulu-Bohuai"] = "rak",
["Tulua"] = "aus-tul",
["Tuma-Irumu"] = "iou",
["Tumak"] = "tmc",
["Tumbuka"] = "tum",
["Tumi"] = "kku",
["Tumleo"] = "tmq",
["Tumshuq"] = "xtq",
["Tumtum"] = "tbr",
["Tumulung Sisaala"] = "sil",
["Tunebo Barat"] = "tnb",
["Tunebo Tengah"] = "tuf",
["Tunen"] = "tvu",
["Tungag"] = "lcm",
["Tunggare"] = "trt",
["Tungus Purba"] = "tuw-pro",
["Tunia"] = "tug",
["Tunica"] = "tun",
["Tunjung"] = "tjg",
["Tunni"] = "tqq",
["Tunumiisut"] = "esx-tut",
["Tunzu"] = "dza",
["Tuoba"] = "mis-tuo",
["Tuotomb"] = "ttf",
["Tuparí"] = "tpr",
["Tupi Kuno"] = "tpw",
["Tupi Purba"] = "tup-pro",
["Tupi-Guarani Purba"] = "tup-gua-pro",
["Tupinambá"] = "tpn",
["Tupinikin"] = "tpk",
["Tupuri"] = "tui",
["Turaka"] = "trh",
["Turdetania"] = "mis-tdt",
["Turdulia"] = "mis-tdl",
["Turi"] = "trd",
["Turiwára"] = "twt",
["Turk Kuno"] = "otk",
["Turka"] = "tuz",
["Turkana"] = "tuv",
["Turki"] = "tr",
["Turki Anatolia Kuno"] = "trk-oat",
["Turki Khorasan"] = "kmz",
["Turki Usmaniyah"] = "ota",
["Turkik Purba"] = "trk-pro",
["Turkmen"] = "tk",
["Turoyo"] = "tru",
["Turumsa"] = "tqm",
["Turung"] = "try",
["Tuscarora"] = "tus",
["Tutchone Selatan"] = "tce",
["Tutchone Utara"] = "ttm",
["Tutelo"] = "tta",
["Tutong"] = "ttg",
["Tutsa Naga"] = "tvt",
["Tutuba"] = "tmi",
["Tututni"] = "tuu",
["Tuva"] = "tyv",
["Tuvalu"] = "tvl",
["Tuwali Ifugao"] = "ifk",
["Tuwari"] = "tww",
["Tuwuli"] = "bov",
["Tuxináwa"] = "tux",
["Tuxá"] = "tud",
["Tuyuca"] = "tue",
["Tuyuhun"] = "mis-tuh",
["Twana"] = "twa",
["Twendi"] = "twn",
["Tyap"] = "kcg",
["Tyaraity"] = "woa",
["Tyerrernotepanner"] = "xph",
["Tz'utujil"] = "tzj",
["Tzeltal"] = "tzh",
["Tzotzil"] = "tzo",
["Tày"] = "tyz",
["Tày Tac"] = "tyt",
["Tây Bồi"] = "tas",
["Téén"] = "lor",
["Tübatulabal"] = "tub",
["U"] = "uuu",
["Uab Meto"] = "aoz",
["Uamué"] = "uam",
["Uare"] = "ksj",
["Ubaghara"] = "byc",
["Ubang"] = "uba",
["Ubangi Purba"] = "nic-ubg-pro",
["Ubi"] = "ubi",
["Ubir"] = "ubr",
["Ubykh"] = "uby",
["Ucayali-Yurúa Ashéninka"] = "cpb",
["Uda"] = "uda",
["Udi"] = "udi",
["Udihe"] = "ude",
["Udmurt"] = "udm",
["Uduk"] = "udu",
["Ufim"] = "ufi",
["Ugandan Sign Language"] = "ugn",
["Ugarit"] = "uga",
["Ughele"] = "uge",
["Ugrik Purba"] = "urj-ugr-pro",
["Uhami"] = "uha",
["Uisai"] = "uis",
["Ujir"] = "udj",
["Ukaan"] = "kcf",
["Ukhwejo"] = "ukh",
["Ukit"] = "umi",
["Ukpe-Bayobiri"] = "ukp",
["Ukpet-Ehom"] = "akd",
["Ukraine"] = "uk",
["Ukrainian Sign Language"] = "ukl",
["Ukue"] = "uku",
["Ukuriguma"] = "ukg",
["Ukwa"] = "ukq",
["Ukwuani-Aboh-Ndoni"] = "ukw",
["Ulau-Suain"] = "svb",
["Ulch"] = "ulc",
["Uldeme"] = "udl",
["Ulithian"] = "uli",
["Ullatan"] = "ull",
["Ulumanda'"] = "ulm",
["Ulwa"] = "ulw",
["Uma"] = "ppk",
["Uma' Lasan"] = "xky",
["Uma' Lung"] = "ulu",
["Umatilla"] = "uma",
["Umbindhamu"] = "umd",
["Umbri"] = "xum",
["Umbu-Ungu"] = "ubu",
["Umbugarla"] = "umr",
["Umbundu"] = "umb",
["Umbuygamu"] = "umg",
["Umeda"] = "upi",
["Umiida"] = "xud",
["Umon"] = "umm",
["Umotína"] = "umo",
["Umpila"] = "ump",
["Una"] = "mtg",
["Unami"] = "unm",
["Unde Kaili"] = "unz",
["Uneapa"] = "bbn",
["Uneme"] = "une",
["Unggaranggu"] = "xun",
["Unggumi"] = "xgu",
["Unserdeutsch"] = "uln",
["Unua"] = "onu",
["Unubahe"] = "unu",
["Uokha"] = "uok",
["Upper Chehalis"] = "cjh",
["Upper Grand Valley Dani"] = "dna",
["Upper Kuskokwim"] = "kuu",
["Upper Necaxa Totonac"] = "tku",
["Upper Ta'oih"] = "tth",
["Upper Tanana"] = "tau",
["Upper Taromi"] = "tov",
["Upper Umpqua"] = "xup",
["Ura (Papua New Guinea)"] = "uro",
["Ura (Vanuatu)"] = "uur",
["Uradhi"] = "urf",
["Urak Lawoi'"] = "urk",
["Urali"] = "url",
["Uralik Purba"] = "urj-pro",
["Urapmin"] = "urm",
["Urarina"] = "ura",
["Urartian"] = "xur",
["Urat"] = "urt",
["Urdu"] = "ur",
["Urhobo"] = "urh",
["Uri"] = "uvh",
["Urigina"] = "urg",
["Urim"] = "uri",
["Urimo"] = "urx",
["Urningangg"] = "urc",
["Uru"] = "ure",
["Uru-Eu-Wau-Wau"] = "urz",
["Uru-Pa-In"] = "urp",
["Uruangnirin"] = "urn",
["Uruava"] = "urv",
["Urubú-Kaapor"] = "urb",
["Uruguayan Sign Language"] = "ugy",
["Urum"] = "uum",
["Urumi"] = "uru",
["Usaghade"] = "usk",
["Usan"] = "wnu",
["Usarufa"] = "usa",
["Ushojo"] = "ush",
["Usila Chinantec"] = "cuc",
["Uspanteco"] = "usp",
["Usui"] = "usi",
["Utarmbung"] = "omo",
["Ute"] = "ute",
["Utik Purba"] = "nai-utn-pro",
["Uto-Aztek Purba"] = "azc-pro",
["Utu"] = "utu",
["Uvbie"] = "evh",
["Uvea Barat"] = "uve",
["Uwinymil"] = "aus-uwi",
["Uya"] = "usu",
["Uyajitaya"] = "duk",
["Uyghur"] = "ug",
["Uyghur Kuno"] = "oui",
["Uzbek"] = "uz",
["Uzekwe"] = "eze",
["Vaagri Booli"] = "vaa",
["Vaghri"] = "vgr",
["Vaghua"] = "tva",
["Vagla"] = "vag",
["Vai"] = "vai",
["Vaie"] = "bny",
["Vaiphei"] = "vap",
["Vale"] = "vae",
["Valencian Sign Language"] = "vsv",
["Valle Nacional Chinantec"] = "cvn",
["Valley Maidu"] = "vmv",
["Valman"] = "van",
["Valpei"] = "vlp",
["Valyria Tinggi"] = "art-vlh",
["Vamale"] = "mkt",
["Vame"] = "mlr",
["Vandalic"] = "xvn",
["Vangunu"] = "mpr",
["Vanimo"] = "vam",
["Vanji"] = "ira-wnj",
["Vanuma"] = "vau",
["Vao"] = "vao",
["Varhadi"] = "vah",
["Varisi"] = "vrs",
["Varli"] = "vav",
["Vasavi"] = "vas",
["Vayu"] = "vay",
["Veddah"] = "ved",
["Vehes"] = "val",
["Vemgo-Mabas"] = "vem",
["Venda"] = "ve",
["Venetic"] = "xve",
["Veneto"] = "vec",
["Venezuelan Sign Language"] = "vsl",
["Ventureño"] = "veo",
["Veps"] = "vep",
["Vera'a"] = "vra",
["Vestinian"] = "xvs",
["Vidunda"] = "vid",
["Viemo"] = "vig",
["Vietik Purba"] = "mkh-vie-pro",
["Vietnam"] = "vi",
["Vietnam Pertengahan"] = "mkh-mvi",
["Vilamovian"] = "wym",
["Vilela"] = "vil",
["Vili"] = "vif",
["Vishavan"] = "vis",
["Viti"] = "vit",
["Vitou"] = "vto",
["Volapük"] = "vo",
["Volscian"] = "xvo",
["Volta-Congo Purba"] = "nic-vco-pro",
["Volta-Niger Purba"] = "alv-von-pro",
["Vono"] = "kch",
["Voro"] = "vor",
["Vot"] = "vot",
["Vumbu"] = "vum",
["Vunapu"] = "vnp",
["Vunjo"] = "vun",
["Vurës"] = "msn",
["Vute"] = "vut",
["Võro"] = "vro",
["Wa"] = "wbm",
["Wa'ema"] = "wag",
["Waama"] = "wwa",
["Waamwang"] = "wmn",
["Wab"] = "wab",
["Wabo"] = "wbb",
["Waboda"] = "kmx",
["Waci Gbe"] = "wci",
["Wadaginam"] = "wdg",
["Waddar"] = "wbq",
["Wadi Wadi"] = "xwd",
["Wadiyara Koli"] = "kxp",
["Wadjabangayi"] = "wdy",
["Wadjiginy"] = "wdj",
["Wadjigu"] = "wdu",
["Wae Rana"] = "wrx",
["Waffa"] = "waj",
["Wagawaga"] = "wgb",
["Wagaya"] = "wga",
["Wagdi"] = "wbr",
["Wageman"] = "waq",
["Wagi"] = "fad",
["Wahgi"] = "wgi",
["Wahgi Utara"] = "whg",
["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",
["Wales"] = "cy",
["Wales Kuno"] = "owl",
["Wales Pertengahan"] = "wlm",
["Wali (Ghana)"] = "wlx",
["Wali (Sudan)"] = "wll",
["Waling"] = "wly",
["Walio"] = "wla",
["Walla Walla"] = "waa",
["Wallis"] = "wls",
["Walloon"] = "wa",
["Walmajarri"] = "wmt",
["Wam"] = "wmo",
["Wamas"] = "wmc",
["Wambaya"] = "wmb",
["Wambon"] = "wms",
["Wambule"] = "wme",
["Wamey"] = "cou",
["Wamin"] = "wmi",
["Wampar"] = "lbq",
["Wampur"] = "waz",
["Wan"] = "wan",
["Wanambre"] = "wnb",
["Wanap"] = "wnp",
["Wancho"] = "nnp",
["Wanda"] = "wbh",
["Wandala"] = "mfi",
["Wandamen"] = "wad",
["Wandarang"] = "wnd",
["Wandji"] = "wdd",
["Waneci"] = "wne",
["Wanga"] = "lwg",
["Wanggamala"] = "wnm",
["Wangganguru"] = "wgg",
["Wanggom"] = "wng",
["Wangkayutyuru"] = "wky",
["Wangkumara"] = "xwk",
["Wanham"] = "sai-wnm",
["Wanji"] = "wbi",
["Wanman"] = "wbt",
["Wannu"] = "jub",
["Wano"] = "wno",
["Wantoat"] = "wnc",
["Wanukaka"] = "wnk",
["Wanyi"] = "wny",
["Wané"] = "hwa",
["Wapan"] = "juk",
["Wapishana"] = "wap",
["Wappo"] = "wao",
["War-Jaintia"] = "aml",
["Wara"] = "wbf",
["Warao"] = "wba",
["Warapu"] = "wra",
["Waray Sorsogon"] = "srv",
["Waray-Waray"] = "war",
["Wardaman"] = "wrr",
["Wardandi"] = "wxw",
["Warekena Kuno"] = "awd-war",
["Warembori"] = "wsa",
["Wari'"] = "pav",
["Waris"] = "wrs",
["Waritai"] = "wbe",
["Wariyangga"] = "wri",
["Warji"] = "wji",
["Warkay-Bipim"] = "bgv",
["Warlmanpa"] = "wrl",
["Warlpiri"] = "wbp",
["Warluwara"] = "wrb",
["Warnang"] = "wrn",
["Waropen"] = "wrp",
["Warray"] = "wrz",
["Warrgamay"] = "wgy",
["Warrwa"] = "wwr",
["Waru"] = "wru",
["Warumungu"] = "wrm",
["Waruna"] = "wrv",
["Warungu"] = "wrg",
["Warwar Feni"] = "hrw",
["Wasa"] = "wss",
["Wasco-Wishram"] = "wac",
["Washo"] = "was",
["Waskia"] = "wsk",
["Wastek"] = "hus",
["Wasu"] = "wsu",
["Watakataui"] = "wtk",
["Watam"] = "wax",
["Wathaurong"] = "wth",
["Watiwa"] = "wtf",
["Watubela"] = "wah",
["Watut Selatan"] = "mcy",
["Watut Tengah"] = "mpl",
["Watut Utara"] = "una",
["Waube"] = "kop",
["Wauja"] = "wau",
["Wauyai"] = "wuy",
["Wawa"] = "www",
["Wawonii"] = "wow",
["Waxianghua"] = "wxa",
["Wayampi"] = "oym",
["Wayana"] = "way",
["Wayanad Chetti"] = "ctt",
["Wayoró"] = "wyr",
["Wayumara"] = "sai-way",
["Wedau"] = "wed",
["Weh"] = "weh",
["Welaung"] = "weu",
["Weliki"] = "klh",
["Wemale"] = "weo",
["Wemba-Wemba"] = "xww",
["Weme Gbe"] = "wem",
["Wendat"] = "wdt",
["Weri"] = "wer",
["Wersing"] = "kvw",
["Western Juxtlahuaca Mixtec"] = "jmx",
["Wewaw"] = "wea",
["Weyewa"] = "wew",
["Whitesands"] = "tnp",
["Wiarumus"] = "tua",
["Wichita"] = "wic",
["Wichí Lhamtés Güisnay"] = "mzh",
["Wichí Lhamtés Nocten"] = "mtp",
["Wichí Lhamtés Vejoz"] = "wlv",
["Wik-Epa"] = "wie",
["Wik-Iiyanh"] = "wij",
["Wik-Keyangan"] = "wif",
["Wik-Me'anha"] = "wih",
["Wik-Mungkan"] = "wim",
["Wik-Ngathana"] = "wig",
["Wikalkan"] = "wik",
["Wikngenchera"] = "wua",
["Wilawila"] = "wil",
["Winnebago"] = "win",
["Wintu"] = "wnw",
["Winyé"] = "kst",
["Wiradhuri"] = "wrh",
["Wiraféd"] = "wir",
["Wirangu"] = "wgu",
["Wiru"] = "wiu",
["Wirö"] = "wpc",
["Witotoan Purba"] = "sai-wit-pro",
["Wiwa"] = "mbp",
["Wiyot"] = "wiy",
["Woccon"] = "xwc",
["Wogamusin"] = "wog",
["Wogeo"] = "woc",
["Woi"] = "wbw",
["Woiwurrung"] = "wyi",
["Wojenaka"] = "jod",
["Wolane"] = "wle",
["Wolani"] = "wod",
["Wolaytta"] = "wal",
["Woleai"] = "woe",
["Wolio"] = "wlo",
["Wolof"] = "wo",
["Womo"] = "wmx",
["Wong-gie"] = "aus-won",
["Wongo"] = "won",
["Woods Cree"] = "cwd",
["Woria"] = "wor",
["Worimi"] = "kda",
["Worodougou"] = "jud",
["Worora"] = "wro",
["Wotapuri-Katarqalai"] = "wsv",
["Wotu"] = "wtw",
["Woun Meu"] = "noa",
["Wu"] = "wuu",
["Wudu"] = "wud",
["Wuhuan"] = "mis-wuh",
["Wulguru"] = "aus-wul",
["Wuliwuli"] = "wlu",
["Wulna"] = "wux",
["Wumboko"] = "bqm",
["Wumbvu"] = "wum",
["Wumeng Nasu"] = "ywu",
["Wunai Bunu"] = "bwn",
["Wunambal"] = "wub",
["Wurrugu"] = "wur",
["Wusa Nasu"] = "yig",
["Wushi"] = "bse",
["Wusi"] = "wsi",
["Wutung"] = "wut",
["Wutunhua"] = "wuh",
["Wuvulu-Aua"] = "wuv",
["Wyandot"] = "wya",
["Wára"] = "tci",
["Wãpha"] = "juw",
["Wè Barat"] = "wec",
["Wè Selatan"] = "gxx",
["Wè Utara"] = "wob",
["Xakriabá"] = "xkr",
["Xamtanga"] = "xan",
["Xanaguía Zapotec"] = "ztg",
["Xavante"] = "xav",
["Xerénte"] = "xer",
["Xetá"] = "xet",
["Xhosa"] = "xh",
["Xianbei"] = "mis-xbi",
["Xiang"] = "hsn",
["Xibe"] = "sjo",
["Xicotepec de Juárez Totonac"] = "too",
["Xinca"] = "xin",
["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âcùù"] = "ane",
["Xârâgurè"] = "axx",
["Yaa"] = "iyx",
["Yaaku"] = "muu",
["Yabarana"] = "yar",
["Yabaâna"] = "ybn",
["Yaben"] = "ybm",
["Yabong"] = "ybo",
["Yabula Yabula"] = "yxy",
["Yace"] = "ekr",
["Yaeyama"] = "rys",
["Yafi"] = "wfg",
["Yagara"] = "yxg",
["Yagaria"] = "ygr",
["Yagnobi"] = "yai",
["Yagomi"] = "ygm",
["Yagua"] = "yad",
["Yagwoia"] = "ygw",
["Yahadian"] = "ner",
["Yahang"] = "rhp",
["Yahuna"] = "ynu",
["Yaka"] = "yaf",
["Yakaikeke"] = "ykk",
["Yakan"] = "yka",
["Yakima"] = "yak",
["Yakkha"] = "ybh",
["Yakoma"] = "yky",
["Yakut"] = "sah",
["Yala"] = "yba",
["Yalahatan"] = "jal",
["Yalakalore"] = "xyl",
["Yalarnnga"] = "ylr",
["Yale"] = "nce",
["Yaleba"] = "ylb",
["Yali Ninia"] = "nlk",
["Yalunka"] = "yal",
["Yalálag Zapotec"] = "zpu",
["Yamap"] = "ymp",
["Yamba"] = "yam",
["Yambes"] = "ymb",
["Yambeta"] = "yat",
["Yamdena"] = "jmd",
["Yameo"] = "yme",
["Yami"] = "tao",
["Yaminahua"] = "yaa",
["Yamongeri"] = "ymg",
["Yamphu"] = "ybi",
["Yan-nhangu"] = "jay",
["Yana"] = "ynn",
["Yanda"] = "yda",
["Yanda Dogon"] = "dym",
["Yandjibara"] = "xyb",
["Yandruwandha"] = "ynd",
["Yanesha'"] = "ame",
["Yangben"] = "yav",
["Yangkaal"] = "aus-ynk",
["Yangkam"] = "bsx",
["Yangman"] = "jng",
["Yango"] = "yng",
["Yangulam"] = "ynl",
["Yangum Dey"] = "yde",
["Yangum Gel"] = "ygl",
["Yankunytjatjara"] = "kdd",
["Yanomámi"] = "wca",
["Yansi"] = "yns",
["Yanyuwa"] = "jao",
["Yao"] = "yao",
["Yao (Amerika Selatan)"] = "sai-yao",
["Yaouré"] = "yre",
["Yapese"] = "yap",
["Yapunda"] = "yev",
["Yaqay"] = "jaq",
["Yaqui"] = "yaq",
["Yarawata"] = "yrw",
["Yareba"] = "yrb",
["Yarli"] = "yxl",
["Yarluyandi"] = "yry",
["Yaroamë"] = "yro",
["Yarumá"] = "sai-yar",
["Yarí"] = "yri",
["Yasa"] = "yko",
["Yatay"] = "yty",
["Yatee Zapotec"] = "zty",
["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",
["Yemba"] = "ybb",
["Yemsa"] = "jnj",
["Yendang"] = "yen",
["Yeni"] = "yei",
["Yeniche"] = "yec",
["Yenisei Purba"] = "qfa-yen-pro",
["Yerakai"] = "yra",
["Yerong"] = "yrn",
["Yerukula"] = "yeu",
["Yeskwa"] = "yes",
["Yessan-Mayo"] = "yss",
["Yetfa"] = "yet",
["Yevanic"] = "yej",
["Yeyi"] = "yey",
["Yiddish"] = "yi",
["Yidgha"] = "ydg",
["Yidiny"] = "yii",
["Yil"] = "yll",
["Yimas"] = "yee",
["Yimchungru Naga"] = "yim",
["Yinchia"] = "yin",
["Yindjibarndi"] = "yij",
["Yindjilandji"] = "yil",
["Yine"] = "pib",
["Yinggarda"] = "yia",
["Yinhawangka"] = "ywg",
["Yiningayi"] = "ygi",
["Yinwum"] = "yxm",
["Yir-Yoront"] = "yiy",
["Yirandali"] = "ljw",
["Yis"] = "yis",
["Yitha Yitha"] = "xth",
["Yoba"] = "yob",
["Yogad"] = "yog",
["Yoidik"] = "ydk",
["Yoke"] = "yki",
["Yokuts Buena Vista"] = "yok-bvy",
["Yokuts Delta"] = "yok-dly",
["Yokuts Gashowu"] = "yok-gsy",
["Yokuts Lembah Selatan"] = "yok-svy",
["Yokuts Lembah Utara"] = "yok-nvy",
["Yokuts Palewyami"] = "yok-ply",
["Yokuts Sungai Kings"] = "yok-kry",
["Yokuts Tule-Kaweah"] = "yok-tky",
["Yola"] = "yol",
["Yolmo"] = "scp",
["Yolngu Sign Language"] = "ygs",
["Yom"] = "pil",
["Yombe"] = "yom",
["Yonaguni"] = "yoi",
["Yong"] = "yno",
["Yongkom"] = "yon",
["Yopno"] = "yut",
["Yora"] = "mts",
["Yoron"] = "yox",
["Yorta Yorta"] = "xyy",
["Yoruba"] = "yo",
["Yoruba Purba"] = "alv-yor-pro",
["Yoruboid Purba"] = "alv-yrd-pro",
["Youle Jino"] = "jiu",
["Younuo Bunu"] = "buh",
["Yout Wam"] = "ytw",
["Yoy"] = "yoy",
["Yuanga"] = "nua",
["Yuchi"] = "yuc",
["Yucuna"] = "ycn",
["Yug"] = "yug",
["Yugambal"] = "yub",
["Yugoslavian Sign Language"] = "ysl",
["Yugul"] = "ygu",
["Yugur Barat"] = "ybe",
["Yugur Timur"] = "yuy",
["Yuhup"] = "yab",
["Yukaghir Purba"] = "qfa-yuk-pro",
["Yukaghir Selatan"] = "yux",
["Yukaghir Utara"] = "ykg",
["Yuki"] = "yuk",
["Yukpa"] = "yup",
["Yukuben"] = "ybl",
["Yulu"] = "yul",
["Yuma"] = "yum",
["Yumana"] = "awd-yum",
["Yunani Calabria"] = "grk-cal",
["Yunani Cappadocia"] = "cpg",
["Yunani Italiot"] = "grk-ita",
["Yunani Mariupol"] = "grk-mar",
["Yunani Pontus"] = "pnt",
["Yunani Romani"] = "rge",
["Yup'ik"] = "esu",
["Yupik Purba"] = "ypk-pro",
["Yupik Siberia Tengah"] = "ess",
["Yupiltepeque"] = "nai-yup",
["Yupua"] = "sai-yup",
["Yuqui"] = "yuq",
["Yuracare"] = "yuz",
["Yuri"] = "sai-yri",
["Yurok"] = "yur",
["Yuru"] = "ljx",
["Yurumanguí"] = "sai-yur",
["Yurutí"] = "yui",
["Yuwana"] = "yau",
["Yuyu"] = "yxu",
["Yámana"] = "yag",
["Zaachila Zapotec"] = "ztx",
["Zabana"] = "kji",
["Zacatepec Chatino"] = "ctz",
["Zaghawa"] = "zag",
["Zaiwa"] = "atb",
["Zakhring"] = "zkr",
["Zambian Sign Language"] = "zsl",
["Zan Gula"] = "zna",
["Zanaki"] = "zak",
["Zande"] = "zne",
["Zangskar"] = "zau",
["Zangwal"] = "zah",
["Zaniza Zapotec"] = "zpw",
["Zapotec"] = "zap",
["Zapotec Aloápam"] = "zaq",
["Zapotec Ayoquesco"] = "zaf",
["Zapotec Cajonos"] = "zad",
["Zapotec Coatecas Altas"] = "zca",
["Zapotec Mitla"] = "zaw",
["Zapotec Ocotlán"] = "zac",
["Zapotec Ozolotepec"] = "zao",
["Zapotec Purba"] = "xzp",
["Zapotec Rincón"] = "zar",
["Zapotec San Juan Guelavía"] = "zab",
["Zapotec Santo Domingo Albarradas"] = "zas",
["Zapotec Segenting"] = "zai",
["Zapotec Sierra de Juárez"] = "zaa",
["Zapotec Tabaa"] = "zat",
["Zapotec Xadani"] = "zax",
["Zapotec Yareni"] = "zae",
["Zapotec Yatzachi"] = "zav",
["Zapotecan Purba"] = "omq-zap-pro",
["Zapoteco Mahuatlán Tengah"] = "zam",
["Zaramo"] = "zaj",
["Zari"] = "zaz",
["Zarma"] = "dje",
["Zauzou"] = "zal",
["Zay"] = "zwa",
["Zayse-Zergulla"] = "zay",
["Zaza-Gorani Purba"] = "ira-zgr-pro",
["Zazaki"] = "zza",
["Zazao"] = "jaj",
["Zbu"] = "sit-zbu",
["Zeeland"] = "zea",
["Zeem"] = "zua",
["Zemba"] = "dhm",
["Zemgalia"] = "xzm",
["Zenag"] = "zeg",
["Zenaga"] = "zen",
["Zenzontepec Chatino"] = "czn",
["Zhaba"] = "zhb",
["Zhang-Zhung"] = "xzh",
["Zhire"] = "zhi",
["Zhoa"] = "zhw",
["Zhuang"] = "za",
["Zhár"] = "jjr",
["Zia"] = "zia",
["Zialo"] = "zil",
["Zigula"] = "ziw",
["Zimakani"] = "zik",
["Zimba"] = "zmb",
["Zimbabwe Sign Language"] = "zib",
["Zinza"] = "zin",
["Zire"] = "sih",
["Zirenkel"] = "zrn",
["Ziriya"] = "zir",
["Zizilivakan"] = "ziz",
["Zo'é"] = "pto",
["Zokhuo"] = "yzk",
["Zoogocho Zapotec"] = "zpq",
["Zou"] = "zom",
["Zulu"] = "zu",
["Zumaya"] = "zuy",
["Zumbun"] = "jmb",
["Zuni"] = "zun",
["Zuojiang Zhuang"] = "zzj",
["Zuwara"] = "ber-zuw",
["Zyphe"] = "zyp",
["Záparo"] = "zro",
["tidak ditentukan"] = "und",
["Àhàn"] = "ahn",
["Áncá"] = "acb",
["Äiwoo"] = "nfl",
["Älvdalen"] = "ovd",
["Äynu"] = "aib",
["Ömie"] = "aom",
["Önge"] = "oon",
["ǀXam"] = "xam",
["ǁAni"] = "hnh",
["ǁXegwi"] = "xeg",
["ǂHoan"] = "huc",
["ǃKung"] = "khi-kun",
["ǃXóõ"] = "nmn",
}
o3x6n2hy9vjq2bm43asswg5bw3sl85w
373556
373551
2026-09-11T11:10:29Z
Hakimi97
2668
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373556
Scribunto
text/plain
return {
["'Are'are"] = "alu",
["A'ou"] = "aou",
["A-Hmao"] = "hmd",
["A-Pucikwar"] = "apq",
["Aari"] = "aiw",
["Aasax"] = "aas",
["Aba"] = "utp",
["Abaga"] = "abg",
["Abai"] = "poz-abi",
["Abai Sungai"] = "abf",
["Abanyom"] = "abm",
["Abau"] = "aau",
["Abaza"] = "abq",
["Abenaki"] = "abe",
["Abidji"] = "abi",
["Abinomn"] = "bsa",
["Abipón"] = "axb",
["Abishira"] = "ash",
["Abkhaz"] = "ab",
["Abkhaz-Abaza Purba"] = "cau-abz-pro",
["Abom"] = "aob",
["Abon"] = "abo",
["Abu"] = "ado",
["Abu'"] = "aah",
["Abua"] = "abn",
["Abui"] = "abz",
["Abun"] = "kgr",
["Abung"] = "abl",
["Abure"] = "abu",
["Abureni"] = "mgj",
["Abé"] = "aba",
["Acatepec Me'phaa"] = "tpx",
["Aceh"] = "ace",
["Achagua"] = "aca",
["Achang"] = "acn",
["Ache"] = "yif",
["Acheron"] = "acz",
["Achi"] = "acr",
["Acholi"] = "ach",
["Achuar"] = "acu",
["Achumawi"] = "acv",
["Acipa Timur"] = "acp",
["Acroá"] = "acs",
["Adai"] = "xad",
["Adang"] = "adn",
["Adangbe"] = "adq",
["Adangme"] = "ada",
["Adap"] = "adp",
["Adasen"] = "tiu",
["Adele"] = "ade",
["Adhola"] = "adh",
["Adi"] = "adi",
["Adioukrou"] = "adj",
["Adithinngithigh"] = "dth",
["Adnyamathanha"] = "adt",
["Adonara"] = "adr",
["Aduge"] = "adu",
["Adzera"] = "adz",
["Adûni"] = "art-adu",
["Aeka"] = "aez",
["Aekyom"] = "awi",
["Aequian"] = "xae",
["Aer"] = "aeq",
["Afade"] = "aal",
["Afar"] = "aa",
["Afitti"] = "aft",
["Afra"] = "ulf",
["Afrihili"] = "afh",
["Afrikaans"] = "af",
["Afroasia Purba"] = "afa-pro",
["Agarabi"] = "agd",
["Agatu"] = "agc",
["Agawam"] = "alg-aga",
["Aghem"] = "agq",
["Aghu"] = "ahh",
["Aghul"] = "agx",
["Aghwan"] = "xag",
["Agi"] = "aif",
["Agob"] = "kit",
["Agoi"] = "ibm",
["Agta Cagayan Tengah"] = "agt",
["Agta Camarines Norte"] = "abd",
["Agta Casiguran Dumagat"] = "dgc",
["Agta Dicamay"] = "duy",
["Agta Dinapigue"] = "phi-din",
["Agta Dupaningan"] = "duo",
["Agta Gunung Iraya"] = "atl",
["Agta Gunung Iriga"] = "agz",
["Agta Isarog"] = "agk",
["Agta Nagtipunan"] = "phi-nag",
["Agta Pahanan"] = "apf",
["Agta Pulau Alabat"] = "dul",
["Agta Remontado"] = "agv",
["Agta Umiray Dumaget"] = "due",
["Agta Villa Viciosa"] = "dyg",
["Aguacateco"] = "agu",
["Aguano"] = "aga",
["Aguaruna"] = "agr",
["Aguna"] = "aug",
["Agutaynen"] = "agn",
["Agwagwune"] = "yay",
["Ahanta"] = "aha",
["Ahirani"] = "ahr",
["Ahom"] = "aho",
["Ahtna"] = "aht",
["Ahwai"] = "nfd",
["Ai-Cham"] = "aih",
["Aighon"] = "aix",
["Aikanã"] = "tba",
["Aiklep"] = "mwg",
["Aimele"] = "ail",
["Aimol"] = "aim",
["Ainbai"] = "aic",
["Ainu"] = "ain",
["Aiome"] = "aki",
["Airoran"] = "air",
["Aisi"] = "mmq",
["Aiton"] = "aio",
["Aja (Afrika Barat)"] = "ajg",
["Aja (Afrika Timur)"] = "aja",
["Ajawa"] = "ajw",
["Ajië"] = "aji",
["Ajyíninka Apurucayali"] = "cpc",
["Ak"] = "akq",
["Aka (Afrika Tengah)"] = "axk",
["Aka (Sudan)"] = "soh",
["Aka-Bea"] = "abj",
["Aka-Bo"] = "akm",
["Aka-Cari"] = "aci",
["Aka-Kede"] = "akx",
["Aka-Kol"] = "aky",
["Aka-Kora"] = "ack",
["Akan"] = "ak",
["Akar-Bale"] = "acl",
["Akaselem"] = "aks",
["Akatek"] = "knj",
["Akawaio"] = "ake",
["Ake"] = "aik",
["Akebu"] = "keu",
["Akei"] = "tsr",
["Akeu"] = "aeu",
["Akha"] = "ahk",
["Akhvakh"] = "akv",
["Akkadia"] = "akk",
["Aklanon"] = "akl",
["Akolet"] = "akt",
["Akoose"] = "bss",
["Akoye"] = "miw",
["Akpa"] = "akf",
["Akpes"] = "ibe",
["Akrukay"] = "afi",
["Akuku"] = "ayk",
["Akum"] = "aku",
["Akuntsu"] = "aqz",
["Akurio"] = "ako",
["Akuwagel"] = "bey",
["Akwa"] = "akw",
["Akyaung Ari"] = "nqy",
["Al-Sayyid Bedouin Sign Language"] = "syy",
["Alaba"] = "alw",
["Alabama"] = "akz",
["Alago"] = "ala",
["Alagwa"] = "wbj",
["Alak"] = "alk",
["Alamblak"] = "amp",
["Alangan"] = "alj",
["Alapmunte"] = "apv",
["Alawa"] = "alh",
["Alazapa"] = "nai-ala",
["Albania"] = "sq",
["Albania Purba"] = "sqj-pro",
["Albanian Sign Language"] = "sqk",
["Alchuka"] = "tuw-alk",
["Alcozauca Mixtec"] = "xta",
["Alege"] = "alf",
["Aleut"] = "ale",
["Aleut Mednyj"] = "mud",
["Algik Purba"] = "aql-pro",
["Algonquian Purba"] = "alg-pro",
["Algonquin"] = "alq",
["Algonquin Carolina"] = "crr",
["Ali"] = "aiy",
["Alladian"] = "ald",
["Allar"] = "all",
["Allentiac"] = "sai-all",
["Alngith"] = "aid",
["Alo Phola"] = "ypo",
["Alor"] = "aol",
["Alsea"] = "aes",
["Alta Selatan"] = "agy",
["Alta Utara"] = "aqn",
["Altai Selatan"] = "alt",
["Altai Utara"] = "atv",
["Alu"] = "mte",
["Alugu"] = "aub",
["Alumu-Tesu"] = "aab",
["Alune"] = "alp",
["Alungul"] = "aus-alu",
["Aluo"] = "yna",
["Alur"] = "alz",
["Alutiiq"] = "ems",
["Alutor"] = "alr",
["Alviri-Vidari"] = "avd",
["Alyawarr"] = "aly",
["Ama"] = "amm",
["Amahai"] = "amq",
["Amahuaca"] = "amc",
["Amaimon"] = "ali",
["Amal"] = "aad",
["Amami Ōshima Selatan"] = "ams",
["Amami Ōshima Utara"] = "ryn",
["Amanab"] = "amn",
["Amanayé"] = "ama",
["Amara"] = "aie",
["Amarakaeri"] = "amr",
["Amarasi"] = "aaz",
["Amarizana"] = "awd-ama",
["Amasi"] = "alv-ama",
["Amatlán Zapotec"] = "zpo",
["Amazigh Maghribi"] = "zgh",
["Amba"] = "rwm",
["Ambae Barat"] = "nnd",
["Ambai"] = "amk",
["Ambakich"] = "aew",
["Ambelau"] = "amv",
["Ambele"] = "ael",
["Amblong"] = "alm",
["Ambo"] = "amb",
["Ambrak"] = "aag",
["Ambrym Tenggara"] = "tvk",
["Ambrym Utara"] = "mmg",
["Ambul"] = "apo",
["Ambulas"] = "abt",
["Amdang"] = "amj",
["Amele"] = "aey",
["Amganad Ifugao"] = "ifa",
["Amhara"] = "am",
["Ami"] = "amy",
["Amis"] = "ami",
["Ammon"] = "sem-amm",
["Amo"] = "amo",
["Amol"] = "alx",
["Amondawa"] = "adw",
["Amor"] = "sem-amo",
["Ampanang"] = "apg",
["Amto"] = "amt",
["Amuesha-Chamicuro Purba"] = "awd-amc-pro",
["Amurdag"] = "amg",
["Amuzgo Guerrero"] = "amu",
["Amuzgo Ipalapa"] = "azm",
["Amuzgo San Pedro Amuzgos"] = "azg",
["Ana Tinga Dogon"] = "dti",
["Anaang"] = "anw",
["Anakalangu"] = "akg",
["Anam"] = "pda",
["Anambé"] = "aan",
["Anamgura"] = "imi",
["Anasi"] = "bpo",
["Anatolia Purba"] = "ine-ana-pro",
["Anauyá"] = "awd-ana",
["Andai"] = "afd",
["Andajin"] = "ajn",
["Andaman Besar Purba"] = "qfa-adm-pro",
["Andaqui"] = "ana",
["Andarum"] = "aod",
["Andegerebinha"] = "adg",
["Andh"] = "anr",
["Andi"] = "ani",
["Andi Purba"] = "cau-and-pro",
["Andio"] = "bzb",
["Andjingith"] = "aus-and",
["Andoa"] = "anb",
["Andoque"] = "ano",
["Andoquero"] = "sai-and",
["Andra-Hus"] = "anx",
["Aneityum"] = "aty",
["Anem"] = "anz",
["Aneme Wake"] = "aby",
["Anfillo"] = "myo",
["Angaataha"] = "agm",
["Angaité"] = "aqt",
["Angal"] = "age",
["Angal Enen"] = "aoe",
["Angal Heneng"] = "akh",
["Angami"] = "njm",
["Angevin"] = "roa-ang",
["Angguruk Yali"] = "yli",
["Angika"] = "anp",
["Angkamuthi"] = "avm",
["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",
["Annobon"] = "fab",
["Anong"] = "nun",
["Anor"] = "anj",
["Anserma"] = "ans",
["Ansus"] = "and",
["Antakarinya"] = "ant",
["Anu"] = "anl",
["Anuak"] = "anu",
["Anufo"] = "cko",
["Anuki"] = "aui",
["Anus"] = "auq",
["Anuta"] = "aud",
["Anyi"] = "any",
["Anyin Morofo"] = "mtb",
["Anāl"] = "anm",
["Ao Chungli"] = "njo-jgl",
["Ao Mongsen"] = "njo-mng",
["Aoheng"] = "pni",
["Aore"] = "aor",
["Ap Ma"] = "kbx",
["Apabhramsa"] = "inc-apa",
["Apache Barat"] = "apw",
["Apache Dataran"] = "apk",
["Apache Purba"] = "apa-pro",
["Apalachee"] = "xap",
["Apalaí"] = "apy",
["Apali"] = "ena",
["Apatani"] = "apt",
["Apiaká"] = "api",
["Apinayé"] = "apn",
["Apma"] = "app",
["Apolista"] = "awd-apo",
["Apro"] = "ahp",
["Apurinã"] = "apu",
["Aputai"] = "apx",
["Aquitanian"] = "xaq",
["Arab"] = "ar",
["Arab Algeria"] = "arq",
["Arab Andalusia"] = "xaa",
["Arab Bahrani"] = "abv",
["Arab Chad"] = "shu",
["Arab Cyprus"] = "acy",
["Arab Dhofar"] = "adf",
["Arab Hassaniyah"] = "mey",
["Arab Hijaz"] = "acw",
["Arab Iraq"] = "acm",
["Arab Juba"] = "pga",
["Arab Libya"] = "ayl",
["Arab Maghribi"] = "ary",
["Arab Mesir"] = "arz",
["Arab Mesopotamia Utara"] = "ayp",
["Arab Najdi"] = "ars",
["Arab Oman"] = "acx",
["Arab Selatan Kuno"] = "sem-srb",
["Arab Sudan"] = "apd",
["Arab Syam Selatan"] = "ajp",
["Arab Syam Utara"] = "apc",
["Arab Syihuh"] = "ssh",
["Arab Tajik"] = "abh",
["Arab Teluk"] = "afb",
["Arab Tunisia"] = "aeb",
["Arab Utara Purba"] = "xna",
["Arab Uzbeki"] = "auz",
["Arab Yaman"] = "ayn",
["Arabana"] = "ard",
["Arabela"] = "arl",
["Aragon"] = "an",
["Araki"] = "akr",
["Arakwal"] = "rkw",
["Aralle-Tabulahan"] = "atq",
["Aramia"] = "arc",
["Arammba"] = "stk",
["Aranadan"] = "aaf",
["Aranama-Tamique"] = "xrt",
["Aranda Selatan Bawah"] = "axl",
["Arandai"] = "jbj",
["Araona"] = "aro",
["Arapaho"] = "arp",
["Arapaso"] = "arj",
["Arapesh Bumbita"] = "aon",
["Arara-Karo"] = "arr",
["Ararandewára"] = "xaj",
["Arawa Purba"] = "auf-pro",
["Arawak Purba"] = "awd-pro",
["Araweté"] = "awt",
["Arawum"] = "awm",
["Arbore"] = "arv",
["Archi"] = "aqc",
["Are"] = "mwc",
["Areba"] = "aea",
["Arem"] = "aem",
["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",
["Armenia"] = "hy",
["Armenia Kuno"] = "xcl",
["Armenia Pertengahan"] = "axm",
["Armenia Purba"] = "hyx-pro",
["Arnhem Purba"] = "aus-arn-pro",
["Aroid Purba"] = "omv-aro-pro",
["Aromania"] = "rup",
["Arop-Lokep"] = "apr",
["Arop-Sissano"] = "aps",
["Arosi"] = "aia",
["Arrernte Barat"] = "are",
["Arrernte Timur"] = "aer",
["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",
["Ashraaf"] = "cus-ash",
["Asháninka"] = "cni",
["Ashéninka Pajonal"] = "cjo",
["Ashéninka Perené"] = "prq",
["Ashéninka Ucayali Selatan"] = "cpy",
["Asi"] = "bno",
["Asilulu"] = "asl",
["Askopan"] = "eiv",
["Asli Purba"] = "mkh-asl-pro",
["Asmat Pesisir Casuarina"] = "asc",
["Asmat Tengah"] = "cns",
["Asmat Utara"] = "nks",
["Asmat Yaosakor"] = "asy",
["Asoa"] = "asv",
["Assam"] = "as",
["Assam Awal"] = "inc-oas",
["Assam Pertengahan"] = "inc-mas",
["Assan"] = "xss",
["Assangori"] = "sjg",
["Assiniboine"] = "asb",
["Asturia"] = "ast",
["Asu"] = "aum",
["Asue Awyu"] = "psa",
["Asumboa"] = "aua",
["Asunción Mixtepec Zapotec"] = "zoo",
["Asuri"] = "asr",
["Asurini Tocantins"] = "asu",
["Asuriní Xingú"] = "asn",
["Ata"] = "atm",
["Atakapa"] = "aqp",
["Atampaya"] = "amz",
["Atanques"] = "cba-ata",
["Atauran"] = "adb",
["Atayal"] = "tay",
["Atayalik Purba"] = "map-ata-pro",
["Atemble"] = "ate",
["Ateso"] = "teo",
["Athabaska Purba"] = "ath-pro",
["Athpare"] = "aph",
["Ati"] = "atk",
["Atikamekw"] = "atj",
["Atlantik-Congo Purba"] = "alv-pro",
["Atohwaim"] = "aqm",
["Atong (Cameroon)"] = "ato",
["Atong (India)"] = "aot",
["Atorada"] = "aox",
["Atsahuaca"] = "atc",
["Atsam"] = "cch",
["Atsugewi"] = "atw",
["Atta Faire"] = "azt",
["Atta Pamplona"] = "att",
["Atta Pudtol"] = "atp",
["Attapady Kurumba"] = "pkr",
["Attié"] = "ati",
["Au"] = "avt",
["Auhelawa"] = "kud",
["Aukan"] = "djk",
["Aulua"] = "aul",
["Aurá"] = "aux",
["Aushi"] = "auh",
["Aushiri"] = "avs",
["Auslan"] = "asf",
["Austral"] = "aut",
["Austroasia Purba"] = "aav-pro",
["Austronesia Purba"] = "map-pro",
["Auwe"] = "smf",
["Auyana"] = "auy",
["Auye"] = "auu",
["Auyokawa"] = "auo",
["Avar"] = "av",
["Avar Kuno"] = "oav",
["Avar-Andi Purba"] = "cau-ava-pro",
["Avatime"] = "avn",
["Avau"] = "avb",
["Avava"] = "tmb",
["Avesta"] = "ae",
["Avikam"] = "avi",
["Avokaya"] = "avu",
["Avá-Canoeiro"] = "avv",
["Awa (China)"] = "vwa",
["Awa (New Guinea)"] = "awb",
["Awa-Cuaiquer"] = "kwi",
["Awabakal"] = "awk",
["Awadhi"] = "awa",
["Awadhi Kuno"] = "inc-oaw",
["Awak"] = "awo",
["Awar"] = "aya",
["Awara"] = "awx",
["Awbono"] = "awh",
["Aweer"] = "bob",
["Awera"] = "awr",
["Awetí"] = "awe",
["Awing"] = "azo",
["Awjila"] = "auj",
["Awngi"] = "awn",
["Awngthim"] = "gwm",
["Awtuw"] = "kmn",
["Awu"] = "yiu",
["Awun"] = "aww",
["Awutu"] = "afu",
["Awyi"] = "auw",
["Awyu Edera"] = "awy",
["Awyu Jair"] = "awv",
["Awyu Selatan"] = "aws",
["Awyu Tengah"] = "awu",
["Awyu Utara"] = "yir",
["Axamb"] = "ahb",
["Axi"] = "yix",
["Ayabadhu"] = "ayd",
["Ayautla Mazatec"] = "vmy",
["Ayere"] = "aye",
["Ayerrerenge"] = "axe",
["Ayi"] = "ayq",
["Ayizi"] = "yyz",
["Ayizo"] = "ayb",
["Aymara"] = "ay",
["Ayomán"] = "sai-ayo",
["Ayoreo"] = "ayo",
["Ayta Abenlen"] = "abp",
["Ayta Ambala"] = "abc",
["Ayta Bataan"] = "ayt",
["Ayta Sorsogon"] = "ays",
["Ayu"] = "ayu",
["Azerbaijan"] = "az",
["Azha"] = "aza",
["Azhe"] = "yiz",
["Azoyú Me'phaa"] = "tpc",
["Baa"] = "kwb",
["Baagandji"] = "drl",
["Baali"] = "bcp",
["Baan"] = "bvj",
["Baangi"] = "bqx",
["Baatonum"] = "bba",
["Baba"] = "bbw",
["Babango"] = "bbm",
["Babanki"] = "bbk",
["Babar Utara"] = "bcd",
["Babatana"] = "baa",
["Babine-Witsuwit'en"] = "bcr",
["Babole"] = "bvx",
["Babungo"] = "bav",
["Babuza"] = "bzg",
["Bacama"] = "bcy",
["Bada"] = "bhz",
["Badaga"] = "bfq",
["Badanchi"] = "bau",
["Bade"] = "bde",
["Badeshi"] = "bdz",
["Badimaya"] = "bia",
["Badui"] = "bac",
["Badyara"] = "pbp",
["Baeggu"] = "bvd",
["Baekje"] = "pkc",
["Baelelea"] = "bvc",
["Baenan"] = "sai-bae",
["Baetora"] = "btr",
["Bafanji"] = "bfj",
["Bafaw"] = "bwt",
["Bafia"] = "ksf",
["Bafut"] = "bfd",
["Baga Kaloum"] = "bqf",
["Baga Koga"] = "bgo",
["Baga Manduri"] = "bmd",
["Baga Pokur"] = "bcg",
["Baga Sitemu"] = "bsp",
["Baga Sobané"] = "bsv",
["Bagheli"] = "bfy",
["Bagirmi"] = "bmi",
["Bago-Kusuntu"] = "bqg",
["Bagri"] = "bgq",
["Bagua"] = "sai-bag",
["Bagupi"] = "bpi",
["Bagusa"] = "bqb",
["Bagvalal"] = "kva",
["Baha"] = "yha",
["Bahaaa Isyarat Mauritius"] = "lsy",
["Bahaaa Isyarat Panama"] = "lsp",
["Baham"] = "bdw",
["Bahasa Hitam"] = "art-bsp",
["Bahasa Isyarat Adamorobe"] = "ads",
["Bahasa Isyarat Afghanistan"] = "afg",
["Bahasa Isyarat Afrika Selatan"] = "sfs",
["Bahasa Isyarat Algeria"] = "asp",
["Bahasa Isyarat Amerika"] = "ase",
["Bahasa Isyarat Argentina"] = "aed",
["Bahasa Isyarat Armenia"] = "aen",
["Bahasa Isyarat Austria"] = "asq",
["Bahasa Isyarat Chad"] = "cds",
["Bahasa Isyarat Croatia"] = "csq",
["Bahasa Isyarat Ecuador"] = "ecs",
["Bahasa Isyarat El Salvador"] = "esn",
["Bahasa Isyarat Estonia"] = "eso",
["Bahasa Isyarat Filipina"] = "psp",
["Bahasa Isyarat Finland"] = "fse",
["Bahasa Isyarat Finland-Sweden"] = "fss",
["Bahasa Isyarat Habsyah"] = "eth",
["Bahasa Isyarat Haiphong"] = "haf",
["Bahasa Isyarat Hanoi"] = "hab",
["Bahasa Isyarat Hausa"] = "hsl",
["Bahasa Isyarat Honduras"] = "hds",
["Bahasa Isyarat Hong Kong"] = "hks",
["Bahasa Isyarat Hungary"] = "hsh",
["Bahasa Isyarat Iceland"] = "icl",
["Bahasa Isyarat India"] = "ins",
["Bahasa Isyarat Indonesia"] = "inl",
["Bahasa Isyarat Inuit"] = "iks",
["Bahasa Isyarat Ireland"] = "isg",
["Bahasa Isyarat Israel"] = "isr",
["Bahasa Isyarat Itali"] = "ise",
["Bahasa Isyarat Jamaica"] = "jls",
["Bahasa Isyarat Jepun"] = "jsl",
["Bahasa Isyarat Jhankot"] = "jhs",
["Bahasa Isyarat Jordan"] = "jos",
["Bahasa Isyarat Jumla"] = "jus",
["Bahasa Isyarat Kentish Kuno"] = "okl",
["Bahasa Isyarat Korea"] = "kvk",
["Bahasa Isyarat Lao"] = "lso",
["Bahasa Isyarat Latvia"] = "lsl",
["Bahasa Isyarat Libya"] = "lbs",
["Bahasa Isyarat Madagascar"] = "mzc",
["Bahasa Isyarat Malta"] = "mdl",
["Bahasa Isyarat Maritim"] = "nsr",
["Bahasa Isyarat Martha's Vineyard"] = "mre",
["Bahasa Isyarat Maya Yucatec"] = "msd",
["Bahasa Isyarat Mesir"] = "esl",
["Bahasa Isyarat Mexico"] = "mfs",
["Bahasa Isyarat Miriwoong"] = "rsm",
["Bahasa Isyarat Monastik"] = "mzg",
["Bahasa Isyarat Mongolia"] = "msr",
["Bahasa Isyarat Mozambique"] = "mzy",
["Bahasa Isyarat Namibia"] = "nbs",
["Bahasa Isyarat Negara Jamaica"] = "jcs",
["Bahasa Isyarat Nepal"] = "nsp",
["Bahasa Isyarat New Zealand"] = "nzs",
["Bahasa Isyarat Nicaragua"] = "ncs",
["Bahasa Isyarat Nigeria"] = "nsi",
["Bahasa Isyarat Norway"] = "nsl",
["Bahasa Isyarat Orang Asli Australia"] = "asw",
["Bahasa Isyarat Pakistan"] = "pks",
["Bahasa Isyarat Papua New Guinea"] = "pgz",
["Bahasa Isyarat Paraguay"] = "pys",
["Bahasa Isyarat Parsi"] = "psc",
["Bahasa Isyarat Perancis"] = "fsl",
["Bahasa Isyarat Peru"] = "prl",
["Bahasa Isyarat Poland"] = "pso",
["Bahasa Isyarat Portugis"] = "psr",
["Bahasa Isyarat Providencia"] = "prz",
["Bahasa Isyarat Puerto Rico"] = "psl",
["Bahasa Isyarat Pulau Pinang"] = "psg",
["Bahasa Isyarat Quebec"] = "fcs",
["Bahasa Isyarat Romania"] = "rms",
["Bahasa Isyarat Rusia"] = "rsl",
["Bahasa Isyarat Taiwan"] = "tss",
["Bahasa Isyarat Tanzania"] = "tza",
["Bahasa Isyarat Tebul"] = "tsy",
["Bahasa Isyarat Thai"] = "tsq",
["Bahasa Isyarat Trinidad dan Tobago"] = "lst",
["Bahasa Isyarat Tunisia"] = "tse",
["Bahasa Isyarat Turki"] = "tsm",
["Bahasa Isyarat Yahudi Algeria"] = "ajs",
["Bahasa Lembah Indus"] = "xiv",
["Bahasa Roh Maroon"] = "crp-mar",
["Bahau"] = "bhv",
["Bahinemo"] = "bjh",
["Bahing"] = "bhj",
["Bahnar"] = "bdq",
["Bahnar Purba"] = "mkh-ban-pro",
["Bahonsuai"] = "bsu",
["Bai"] = "bdj",
["Bai Purba"] = "sit-bai-pro",
["Bai Selatan"] = "bfs",
["Bai Tengah"] = "bca",
["Baibai"] = "bbf",
["Baikeno"] = "bkx",
["Bailang"] = "tbq-blg",
["Baima"] = "bqh",
["Baimak"] = "bmx",
["Bainouk Gubeeher"] = "alv-bgu",
["Bainouk-Gunyaamolo"] = "bcz",
["Bainouk-Gunyuño"] = "bab",
["Bainouk-Samik"] = "bcb",
["Baiso"] = "bsw",
["Bajan"] = "bjs",
["Bajau Indonesia"] = "bdl",
["Bajau Laut"] = "sml",
["Bajau Pantai Timur"] = "ssb",
["Bajau Sama"] = "bdr",
["Bajelani"] = "bjm",
["Baka"] = "bkc",
["Bakairí"] = "bkq",
["Bakaka"] = "bqz",
["Bakhtiari"] = "bqi",
["Baki"] = "bki",
["Bakoko"] = "bkh",
["Bakole"] = "kme",
["Bakpinka"] = "bbs",
["Baktria"] = "xbc",
["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"] = "ban",
["Baliledo"] = "poz-bal",
["Balkan Gagauz Turkish"] = "bgx",
["Balo"] = "bqo",
["Baloi"] = "biz",
["Balong"] = "bnt-bal",
["Balti"] = "bft",
["Balto-Slavik Purba"] = "ine-bsl-pro",
["Baluan-Pam"] = "blq",
["Baluchi"] = "bal",
["Bamako Sign Language"] = "bog",
["Bamali"] = "bbq",
["Bambalang"] = "bmo",
["Bambam"] = "ptu",
["Bambara"] = "bm",
["Bambassi"] = "myf",
["Bambili-Bambui"] = "baw",
["Bamenyam"] = "bce",
["Bamu"] = "bcf",
["Bamukumbit"] = "bqt",
["Bamum"] = "bax",
["Bamunka"] = "bvm",
["Bamwe"] = "bmg",
["Ban Khor Sign Language"] = "bfk",
["Bana"] = "bcw",
["Banam Bay"] = "vrt",
["Banao Itneg"] = "bjx",
["Banaro"] = "byz",
["Banda"] = "bnd",
["Banda Malay"] = "bpq",
["Banda Tengah Barat"] = "bbp",
["Banda Tengah Selatan"] = "lnl",
["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",
["Banjar"] = "bjn",
["Banka"] = "bxw",
["Bankan Tey Dogon"] = "dbw",
["Bankon"] = "abb",
["Banoni"] = "bcm",
["Bantawa"] = "bap",
["Bantayanon"] = "bfx",
["Bantik"] = "bnq",
["Bantoid Purba"] = "nic-bod-pro",
["Bantu Purba"] = "bnt-pro",
["Banyumasan"] = "map-bms",
["Baoule"] = "bci",
["Baraamu"] = "brd",
["Barai"] = "bbb",
["Barakai"] = "baj",
["Barama"] = "bbg",
["Barambu"] = "brm",
["Baramu"] = "bmz",
["Barapasi"] = "brp",
["Baras"] = "brs",
["Barasana"] = "bsn",
["Barbar Tunisia"] = "sds",
["Barbareño"] = "boi",
["Bardi"] = "bcj",
["Barein"] = "bva",
["Bargam"] = "mlp",
["Bari"] = "bfa",
["Bariai"] = "bch",
["Bariji"] = "bjc",
["Barikanchi"] = "bxo",
["Barikewa"] = "jbk",
["Barngarla"] = "bjb",
["Barok"] = "bjk",
["Barombi"] = "bbi",
["Barranbinya"] = "aus-bra",
["Barro Negro Tunebo"] = "tbn",
["Barrow Point"] = "bpt",
["Baruga"] = "bjz",
["Barunggam"] = "aus-brm",
["Baruya"] = "byr",
["Barwe"] = "bwg",
["Barzani Jewish Neo-Aramaic"] = "bjf",
["Baré"] = "bae",
["Barí"] = "mot",
["Basa"] = "bzw",
["Basa-Gumna"] = "bsl",
["Basa-Gurmana"] = "buj",
["Basaa"] = "bas",
["Basap"] = "bdb",
["Basay"] = "byq",
["Bashkardi"] = "bsg",
["Bashkir"] = "ba",
["Basketo"] = "bst",
["Basque"] = "eu",
["Basque Purba"] = "euq-pro",
["Bassa"] = "bsq",
["Bassa-Kontagora"] = "bsr",
["Bassari"] = "bsc",
["Bassossi"] = "bsi",
["Bata"] = "bta",
["Batad Ifugao"] = "ifb",
["Batak Alas-Kluet"] = "btz",
["Batak Angkola"] = "akb",
["Batak Dairi"] = "btd",
["Batak Karo"] = "btx",
["Batak Mandailing"] = "btm",
["Batak Palawan"] = "bya",
["Batak Purba"] = "btk-pro",
["Batak Simalungun"] = "bts",
["Batak Toba"] = "bbc",
["Batanga"] = "bnm",
["Batek"] = "btq",
["Bateri"] = "btv",
["Bathari"] = "bhm",
["Bati (Cameroon)"] = "btc",
["Bati (Indonesia)"] = "bvt",
["Bats"] = "bbl",
["Batu"] = "btu",
["Batui"] = "zbt",
["Batuley"] = "bay",
["Bau"] = "bbd",
["Bauchi"] = "bsf",
["Baure"] = "brg",
["Bauria"] = "bge",
["Bauro"] = "bxa",
["Bauwaki"] = "bwk",
["Bauzi"] = "bvz",
["Bavarian"] = "bar",
["Bayali"] = "bjy",
["Baybayanon"] = "bvy",
["Baygo"] = "byg",
["Bayogoula"] = "nai-bay",
["Bayono"] = "byl",
["Bayot"] = "bda",
["Bayungu"] = "bxj",
["Bazigar"] = "bfr",
["Be Purba"] = "qfa-onb-pro",
["Be-Tai Purba"] = "qfa-bet-pro",
["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"] = "nl",
["Belanda Bor"] = "bxb",
["Belanda Jersey"] = "gmw-jdt",
["Belanda Kreol Berbice"] = "brc",
["Belanda Kreol Skepi"] = "skw",
["Belanda Kuno"] = "odt",
["Belanda Pertengahan"] = "dum",
["Belanda Viri"] = "bvi",
["Belarus"] = "be",
["Belhariya"] = "byw",
["Beli"] = "blm",
["Bella Coola"] = "blc",
["Bellari"] = "brw",
["Bemba"] = "bem",
["Bembe"] = "bmb",
["Ben Tey"] = "dbt",
["Bena"] = "yun",
["Benabena"] = "bef",
["Bench"] = "bcq",
["Bende"] = "bdp",
["Bendi"] = "bct",
["Beneraf"] = "bnv",
["Beng"] = "nhb",
["Benga"] = "bng",
["Bengal Kuno"] = "inc-obn",
["Bengal Pertengahan"] = "inc-mbn",
["Benggali"] = "bn",
["Benggoi"] = "bgy",
["Bengkala Sign Language"] = "bqy",
["Bentong"] = "bnu",
["Benue-Congo Purba"] = "nic-bco-pro",
["Benyadu'"] = "byd",
["Beothuk"] = "bue",
["Bepour"] = "bie",
["Bera"] = "brf",
["Berakou"] = "bxv",
["Berawan"] = "lod",
["Berber Purba"] = "ber-pro",
["Berber Saharan Utara"] = "mzb",
["Bergish"] = "gmw-bgh",
["Berik"] = "bkl",
["Berinomo"] = "bit",
["Berom"] = "bom",
["Berta"] = "wti",
["Berti"] = "byt",
["Besisi"] = "mhe",
["Besme"] = "bes",
["Besoa"] = "bep",
["Betaf"] = "bfe",
["Betawi"] = "bew",
["Bete"] = "byf",
["Bete-Bendi"] = "btt",
["Betoi"] = "sai-bet",
["Bezhta"] = "kap",
["Bhadrawahi"] = "bhd",
["Bhalay"] = "bhx",
["Bharia"] = "bha",
["Bhatri"] = "bgw",
["Bhattiyali"] = "bht",
["Bhaya"] = "bhe",
["Bhele"] = "bhy",
["Bhilali"] = "bhi",
["Bhili"] = "bhb",
["Bhojpur"] = "bho",
["Bhunjia"] = "bhu",
["Biafada"] = "bif",
["Biage"] = "bdf",
["Biak"] = "bhw",
["Biali"] = "beh",
["Bian Marind"] = "bpv",
["Biangai"] = "big",
["Biao"] = "byk",
["Biao Mon"] = "bmt",
["Biao-Jiao Mien"] = "bje",
["Bibaali"] = "bcn",
["Bibbulman"] = "xbp",
["Bicolano Catanduanes Selatan"] = "bln",
["Bicolano Catanduanes Utara"] = "cts",
["Bicolano Iriga"] = "bto",
["Bidayuh Bau"] = "sne",
["Bidayuh Biatah"] = "bth",
["Bidayuh Bukar-Sadong"] = "sdo",
["Bidiyo"] = "bid",
["Bidyara"] = "bym",
["Bidyogo"] = "bjg",
["Biem"] = "bmc",
["Bierebo"] = "bnk",
["Bieria"] = "brj",
["Biete"] = "biu",
["Big Nambas"] = "nmb",
["Biga"] = "bhc",
["Bigambal"] = "xbe",
["Bih"] = "ibh",
["Bihari"] = "bh",
["Bijori"] = "bix",
["Bikaru"] = "bic",
["Bikol Libon"] = "lbl",
["Bikol Miraya"] = "rbl",
["Bikol Miraya Barat"] = "fbl",
["Bikol Tengah"] = "bcl",
["Bikya"] = "byb",
["Bila"] = "bip",
["Bilakura"] = "bql",
["Bilaspuri"] = "kfs",
["Bilba"] = "bpz",
["Bilbil"] = "brz",
["Bile"] = "bil",
["Biliau"] = "bcu",
["Biloxi"] = "bll",
["Bilua"] = "blb",
["Bilur"] = "bxf",
["Bima"] = "bhp",
["Bimin"] = "bhl",
["Bimoba"] = "bim",
["Bina"] = "bmn",
["Binahari"] = "bxz",
["Binandere"] = "bhg",
["Binandere Purba"] = "ngf-bin-pro",
["Binawa"] = "byj",
["Bindal"] = "xbd",
["Bine"] = "bon",
["Binji"] = "bpj",
["Binongan Itneg"] = "itb",
["Bintauna"] = "bne",
["Binukid"] = "bkd",
["Binumarien"] = "bjr",
["Bipi"] = "biq",
["Birao"] = "brr",
["Birgid"] = "brk",
["Birgit"] = "btf",
["Birhor"] = "biy",
["Biri"] = "bzr",
["Birifor Selatan"] = "biv",
["Biritai"] = "bqq",
["Birri"] = "bvq",
["Birrpayi"] = "xbj",
["Birwa"] = "brl",
["Bisaya Brunei"] = "bsb",
["Bisaya Sabah"] = "bsy",
["Biseni"] = "ije",
["Bishnupriya Manipuri"] = "bpy",
["Bishuo"] = "bwh",
["Bisis"] = "bnw",
["Bislama"] = "bi",
["Bisorio"] = "bir",
["Bissa"] = "bib",
["Bisu"] = "bzi",
["Bit"] = "bgk",
["Bitare"] = "brt",
["Bitur"] = "mcc",
["Biwat"] = "bwm",
["Biyo"] = "byo",
["Biyom"] = "bpm",
["Blablanga"] = "blp",
["Blackfoot"] = "bla",
["Blafe"] = "bfh",
["Blagar"] = "beu",
["Blang"] = "blr",
["Blin"] = "byn",
["Bo"] = "bgl",
["Bo-Rukul"] = "mae",
["Bo-Ung"] = "mux",
["Boano (Maluku)"] = "bzn",
["Boano (Sulawesi)"] = "bzl",
["Bobo Selatan"] = "bwq",
["Bobongko"] = "bgb",
["Bobot"] = "bty",
["Bodish Purba"] = "sit-bdi-pro",
["Bodo (Central Africa)"] = "boy",
["Bodo (India)"] = "brx",
["Bodo Parja"] = "bdv",
["Bodo-Garo Purba"] = "tbq-bdg-pro",
["Bofi"] = "bff",
["Boga"] = "bvw",
["Bogaya"] = "boq",
["Boghom"] = "bux",
["Boguru"] = "bqu",
["Boikin"] = "bzf",
["Bokar"] = "sit-bok",
["Bokha"] = "ybk",
["Bokmål Norway"] = "nb",
["Boko"] = "bqc",
["Bokobaru"] = "bus",
["Bokoto"] = "bdt",
["Bokyi"] = "bky",
["Bola"] = "bnp",
["Bolak"] = "art-blk",
["Bolango"] = "bld",
["Bole"] = "bol",
["Bolgo"] = "bvo",
["Bolia"] = "bli",
["Bolinao"] = "smk",
["Bolivian Sign Language"] = "bvl",
["Boloki"] = "bkt",
["Bolon"] = "bof",
["Bolondo"] = "bzm",
["Bolongan"] = "blj",
["Bolyu"] = "ply",
["Bom"] = "bmf",
["Boma Nkuu"] = "bnt-bon",
["Boma Selatan"] = "bnt-sbo",
["Boma Utara"] = "boh",
["Boma Yumu"] = "bnt-boy",
["Bomboli"] = "bml",
["Bomboma"] = "bws",
["Bomitaba"] = "zmx",
["Bomu"] = "bmq",
["Bomwali"] = "bmw",
["Bonan"] = "peh",
["Bondei"] = "bou",
["Bondo"] = "bfw",
["Bondoukou Kulango"] = "kzc",
["Bondum Dom Dogon"] = "dbu",
["Bonerate"] = "bna",
["Bonggi"] = "bdg",
["Bonggo"] = "bpg",
["Bongili"] = "bui",
["Bongo"] = "bot",
["Bongo-Bagirmi Purba"] = "csu-bba-pro",
["Bongu"] = "bpu",
["Bonjo"] = "bok",
["Bonkeng"] = "bvg",
["Bonkiman"] = "bop",
["Bontoc Barat Daya"] = "vbk",
["Bontoc Selatan"] = "obk",
["Bontoc Tengah"] = "lbk",
["Bontoc Timur"] = "ebk",
["Bontoc Utara"] = "rbk",
["Bookan"] = "bnb",
["Boon"] = "bnl",
["Boor"] = "bvf",
["Bora"] = "boa",
["Bora Purba"] = "sai-bor-pro",
["Boro"] = "xxb",
["Borong"] = "ksr",
["Boruca"] = "brn",
["Borôro"] = "bor",
["Boselewa"] = "bwf",
["Bosngun"] = "bqs",
["Bote-Majhi"] = "bmj",
["Botlikh"] = "bph",
["Botolan Sambal"] = "sbl",
["Bourbonnais-Berrichon"] = "roa-bbn",
["Bourguignon"] = "roa-brg",
["Bouyei"] = "pcc",
["Bozaba"] = "bzo",
["Bragat"] = "aof",
["Brahui"] = "brh",
["Braj"] = "bra",
["Brazilian Sign Language"] = "bzs",
["Brem"] = "buq",
["Breri"] = "brq",
["Breton"] = "br",
["Breton Kuno"] = "obt",
["Breton Pertengahan"] = "xbm",
["Bribri"] = "bzd",
["British Sign Language"] = "bfi",
["Britonik Purba"] = "cel-bry-pro",
["Brokkat"] = "bro",
["Brokpake"] = "sgt",
["Brokskat"] = "bkk",
["Broome Pearling Lugger Pidgin"] = "bpl",
["Bru Barat"] = "brv",
["Bru Timur"] = "bru",
["Bu"] = "jid",
["Bu-Nao Bunu"] = "bwx",
["Bua"] = "bub",
["Bua Purba"] = "alv-bua-pro",
["Buamu"] = "box",
["Bube"] = "bvb",
["Bubi"] = "buw",
["Bubia"] = "bbx",
["Budeh Stieng"] = "stt",
["Budibud"] = "btp",
["Budong-Budong"] = "bdx",
["Budu"] = "buu",
["Budukh"] = "bdk",
["Buduma"] = "bdm",
["Budza"] = "bja",
["Bugan"] = "bbh",
["Bughotu"] = "bgt",
["Bugis"] = "bug",
["Buglere"] = "sab",
["Bugun"] = "bgg",
["Buhi'non Bikol"] = "ubl",
["Buhid"] = "bku",
["Buhutu"] = "bxh",
["Bujhyal"] = "byh",
["Bukat"] = "bvk",
["Bukawa"] = "buk",
["Bukhari"] = "bhh",
["Bukitan"] = "bkn",
["Bukiyip"] = "ape",
["Buksa"] = "tkb",
["Bukusu"] = "bxk",
["Bulgar"] = "xbo",
["Bulgaria"] = "bg",
["Bulgarian Sign Language"] = "bqn",
["Bulgebi"] = "bmp",
["Buli (Ghana)"] = "bwu",
["Buli (Indonesia)"] = "bzq",
["Bulo Stieng"] = "sti",
["Bulu (Cameroon)"] = "bum",
["Bulu (New Guinea)"] = "bjl",
["Bum"] = "bmv",
["Bumaji"] = "byp",
["Bumang"] = "bvp",
["Bumthangkha"] = "kjz",
["Bun"] = "buv",
["Buna"] = "bvn",
["Bunaba"] = "bck",
["Bunak"] = "bfn",
["Bunama"] = "bdd",
["Bundeli"] = "bns",
["Bung"] = "bqd",
["Bungain"] = "but",
["Bunganditj"] = "xbg",
["Bungku"] = "bkz",
["Bungku-Tolaki Purba"] = "poz-btk-pro",
["Bungu"] = "wun",
["Bunoge"] = "dgb",
["Bunun"] = "bnn",
["Buol"] = "blf",
["Bura"] = "bwr",
["Burak"] = "bys",
["Buraka"] = "bkg",
["Burarra"] = "bvr",
["Burate"] = "bti",
["Burduna"] = "bxn",
["Bure"] = "bvh",
["Burgundia"] = "gme-bur",
["Burji"] = "bji",
["Burma"] = "my",
["Burma Kuno"] = "obr",
["Burma Purba"] = "tbq-brm-pro",
["Burmeso"] = "bzu",
["Buru (Indonesia)"] = "mhs",
["Buru (Nigeria)"] = "bqw",
["Burui"] = "bry",
["Burumakok"] = "aip",
["Burun"] = "bdi",
["Burunge"] = "bds",
["Burushaski"] = "bsk",
["Burusu"] = "bqr",
["Buruwai"] = "asi",
["Buryat"] = "bua",
["Busa"] = "bqp",
["Busam"] = "bxs",
["Busami"] = "bsm",
["Busang Kayan"] = "bfg",
["Bushoong"] = "buf",
["Buso"] = "bso",
["Busoa"] = "bup",
["Bussa"] = "dox",
["Busuu"] = "bju",
["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",
["Bwela"] = "bwl",
["Bwile"] = "bwc",
["Bwisi"] = "bwz",
["Byangsi"] = "bee",
["Byep"] = "mkk",
["Bädi Kanum"] = "khd",
["Caac"] = "msq",
["Cabiyarí"] = "cbb",
["Cabre"] = "awd-cab",
["Cabécar"] = "cjp",
["Cacaopera"] = "ccr",
["Cacua"] = "cbv",
["Cacán"] = "sai-cac",
["Caddo"] = "cad",
["Caddoan Purba"] = "cdd-pro",
["Cafundó"] = "ccd",
["Cahuarano"] = "cah",
["Cahuilla"] = "chl",
["Caijia"] = "sit-cai",
["Caka"] = "ckx",
["Cakchiquel-Quiché Mixed Language"] = "ckz",
["Cakfem-Mushere"] = "cky",
["Calamian Tagbanwa"] = "tbk",
["Callawalla"] = "caw",
["Calusa"] = "nai-cal",
["Caluyanun"] = "clu",
["Caló"] = "rmq",
["Cam Barat"] = "cja",
["Cam Timur"] = "cjm",
["Campalagian"] = "cml",
["Camsá"] = "kbh",
["Camtho"] = "cmt",
["Camunic"] = "xcc",
["Candoshi-Shapra"] = "cbu",
["Canela"] = "ram",
["Cangin Purba"] = "alv-cng-pro",
["Canichana"] = "caz",
["Cantabrian"] = "roa-can",
["Cao Miao"] = "cov",
["Caolan"] = "mlc",
["Capanahua"] = "kaq",
["Capiznon"] = "cps",
["Caquinte"] = "cot",
["Car Nicobarese"] = "caq",
["Cara"] = "cfd",
["Carabayo"] = "cby",
["Caramanta"] = "crf",
["Caranqui"] = "sai-caq",
["Carapana"] = "cbc",
["Carian"] = "xcr",
["Cariay"] = "awd-kar",
["Carib Purba"] = "sai-car-pro",
["Carijona"] = "cbd",
["Carolinian"] = "cal",
["Carrier"] = "crx",
["Carrier Selatan"] = "caf",
["Cashibo-Cacataibo"] = "cbr",
["Cashinahua"] = "cbs",
["Catacao"] = "sai-cat",
["Catalan"] = "ca",
["Catalan Sign Language"] = "csc",
["Catalonia Kuno"] = "roa-oca",
["Catawba"] = "chc",
["Catuquinaru"] = "sai-ctq",
["Catío Chibcha"] = "cba-cat",
["Cauca"] = "cca",
["Cavineña"] = "cav",
["Cayubaba"] = "cyb",
["Cayuga"] = "cay",
["Cayuse"] = "xcy",
["Cazcan"] = "azc-caz",
["Cañari"] = "sai-cnr",
["Cebaara Senoufo"] = "sef",
["Cebuano"] = "ceb",
["Celtiberian"] = "xce",
["Cemuhî"] = "cam",
["Cen"] = "cen",
["Central Palawano"] = "plc",
["Centúúm"] = "cet",
["Cerma"] = "cme",
["Cerrado Purba"] = "sai-cer-pro",
["Ch'olti'"] = "myn-chl",
["Ch'orti'"] = "caa",
["Chaap Wuurong"] = "tjw",
["Chachi"] = "cbi",
["Chadik Purba"] = "cdc-pro",
["Chadik Tengah Purba"] = "cdc-cbm-pro",
["Chadong"] = "cdy",
["Chagatai"] = "chg",
["Chaha"] = "sem-cha",
["Chaima"] = "ciy",
["Chairel"] = "sit-cha",
["Chak"] = "ckh",
["Chakali"] = "cli",
["Chakma"] = "ccp",
["Chala"] = "cll",
["Chaldean Neo-Aramaic"] = "cld",
["Chali"] = "tgf",
["Chamacoco"] = "ceg",
["Chamalal"] = "cji",
["Chamba Daka"] = "ccg",
["Chamba Leko"] = "ndi",
["Chambeali"] = "cdh",
["Chambri"] = "can",
["Chamicuro"] = "ccc",
["Chamik Purba"] = "cmc-pro",
["Chamling"] = "rab",
["Chamorro"] = "ch",
["Champenois"] = "roa-cha",
["Chang"] = "nbc",
["Changriwa"] = "cga",
["Changthang"] = "cna",
["Chantyal"] = "chx",
["Chaná"] = "sai-chn",
["Chané"] = "caj",
["Chapacura"] = "sai-chp",
["Chara"] = "cra",
["Charrua"] = "sai-chr",
["Chatino Purba"] = "omq-cha-pro",
["Chatino San Juan Quiahije"] = "omq-sjq",
["Chatino Tanah Tinggi Barat"] = "ctp",
["Chatino Tanah Tinggi Timur"] = "cly",
["Chatino Teojomulco"] = "omq-teo",
["Chaudangsi"] = "cdn",
["Chaura"] = "crv",
["Chavacano"] = "cbk",
["Chayahuita"] = "cbt",
["Chazumba Mixtec"] = "xtb",
["Che"] = "ruk",
["Chechen"] = "ce",
["Cheke Holo"] = "mrn",
["Chemakum"] = "xch",
["Chenapian"] = "cjn",
["Chenchu"] = "cde",
["Chenoua"] = "cnu",
["Chepang"] = "cdm",
["Chepya"] = "ycp",
["Cherepon"] = "cpn",
["Cherokee"] = "chr",
["Chesu"] = "ych",
["Chetco-Tolowa"] = "ctc",
["Chewong"] = "cwg",
["Cheyenne"] = "chy",
["Chhattisgarhi"] = "hne",
["Chhintange"] = "ctn",
["Chhulung"] = "cur",
["Chiangmai Sign Language"] = "csd",
["Chiapanec"] = "cip",
["Chibcha"] = "chb",
["Chibchan Purba"] = "cba-pro",
["Chicahuaxtla Triqui"] = "trs",
["Chichewa"] = "ny",
["Chichicapan Zapotec"] = "zpv",
["Chichimeca-Jonaz"] = "pei",
["Chichonyi-Chidzihana-Chikauma"] = "coh",
["Chickasaw"] = "cic",
["Chicomuceltec"] = "cob",
["Chiduruma"] = "dug",
["Chilcotin"] = "clc",
["Chilean Sign Language"] = "csg",
["Chilisso"] = "clh",
["Chiltepec Chinantec"] = "csa",
["Chimakuan Purba"] = "chi-pro",
["Chimalapa Zoque"] = "zoh",
["Chimariko"] = "cid",
["Chimila"] = "cbg",
["Chimwiini"] = "bnt-cmw",
["Chin Asho"] = "csh",
["Chin Bawm"] = "bgr",
["Chin Bualkhaw"] = "cbl",
["Chin Chinbon"] = "cnb",
["Chin Daai"] = "dao",
["Chin Falam"] = "cfm",
["Chin Kaang"] = "ckn",
["Chin Khumi"] = "cnk",
["Chin Laitu"] = "clt",
["Chin Mara"] = "mrh",
["Chin Mro"] = "cmr",
["Chin Ngawn"] = "cnw",
["Chin Senthang"] = "sez",
["Chin Siyin"] = "csy",
["Chin Songlai"] = "csj",
["Chin Sumtu"] = "csv",
["Chin Tawr"] = "tcp",
["Chin Tedim"] = "ctd",
["Chin Thado"] = "tcz",
["Chin Thaiphum"] = "cth",
["Chin Zotung"] = "czt",
["Chinali"] = "cih",
["Chinese Sign Language"] = "csl",
["Chinook"] = "chh",
["Chinook Jargon"] = "chn",
["Chinook Purba"] = "nai-ckn-pro",
["Chipaya"] = "cap",
["Chipewyan"] = "chp",
["Chiquimulilla"] = "nai-chi",
["Chiquitano"] = "cax",
["Chiricahua"] = "apm",
["Chirino"] = "sai-chi",
["Chiripá"] = "nhd",
["Chiru"] = "cdf",
["Chitimacha"] = "ctm",
["Chitkuli Kinnauri"] = "cik",
["Chittagong"] = "ctg",
["Chitwania Tharu"] = "the",
["Chiwere"] = "iow",
["Choapan Zapotec"] = "zpc",
["Chocangaca"] = "cgk",
["Chochotec"] = "coz",
["Choctaw"] = "cho",
["Chodri"] = "cdi",
["Chokwe"] = "cjk",
["Chol"] = "ctu",
["Cholón"] = "cht",
["Chong"] = "cog",
["Choni"] = "cda",
["Chono"] = "sai-cno",
["Chopi"] = "cce",
["Chrau"] = "crw",
["Chru"] = "cje",
["Chuabo"] = "chw",
["Chuanqiandian Cluster Miao"] = "cqd",
["Chuave"] = "cjv",
["Chug"] = "cvg",
["Chuj"] = "cac",
["Chuka"] = "cuh",
["Chukchi"] = "ckt",
["Chukotko-Kamchatka Purba"] = "qfa-cka-pro",
["Chukwa"] = "cuw",
["Chulym"] = "clw",
["Chumash Purba"] = "nai-chu-pro",
["Chumburung"] = "ncu",
["Churahi"] = "cdj",
["Churuya"] = "sai-chu",
["Chut"] = "scb",
["Chuuk"] = "chk",
["Chuva"] = "xcv",
["Chuvash"] = "cv",
["Chácobo"] = "cao",
["Ci Gbe"] = "cib",
["Cia-Cia"] = "cia",
["Cibak"] = "ckl",
["Cicipu"] = "awc",
["Ciguayo"] = "nai-cig",
["Cimbrian"] = "cim",
["Cina"] = "zh",
["Cina Kuno"] = "och",
["Cina Pertengahan"] = "ltc",
["Cinda-Regi-Tiyal"] = "cdr",
["Cineni"] = "cie",
["Cinta Larga"] = "cin",
["Circassia Purba"] = "cau-cir-pro",
["Circassian Barat"] = "ady",
["Cishingini"] = "asg",
["Citak"] = "txt",
["Ciwogai"] = "tgd",
["Coahuilteco"] = "xcw",
["Coatlán Zapotec"] = "zps",
["Cocama"] = "cod",
["Cochimi"] = "coj",
["Cocopa"] = "coc",
["Coeruna"] = "sai-coe",
["Coeur d'Alene"] = "crd",
["Cofán"] = "con",
["Cogui"] = "kog",
["Col"] = "liw",
["Colombian Sign Language"] = "csn",
["Columbia-Wenatchi"] = "col",
["Colán"] = "sai-col",
["Comaltepec Chinantec"] = "cco",
["Comanche"] = "com",
["Comechingon"] = "sai-cmg",
["Comecrudo"] = "xcm",
["Communicationssprache"] = "art-com",
["Como Karim"] = "cfg",
["Comoros Maore"] = "swb",
["Comoros Ngazidja"] = "zdj",
["Comox"] = "coo",
["Con"] = "cno",
["Coos"] = "csz",
["Copainalá Zoque"] = "zoc",
["Copala Triqui"] = "trc",
["Copallén"] = "sai-cop",
["Coquille"] = "coq",
["Cora"] = "crn",
["Cori"] = "cry",
["Cornish"] = "kw",
["Cornwall Kuno"] = "oco",
["Cornwall Pertengahan"] = "cnx",
["Coroado Puri"] = "sai-crd",
["Corsica"] = "co",
["Costa Rican Sign Language"] = "csr",
["Cotoname"] = "xcn",
["Cowlitz"] = "cow",
["Coyaima"] = "coy",
["Coyotepec Popoloca"] = "pbf",
["Coyutla Totonac"] = "toc",
["Cree"] = "cr",
["Cree Moose"] = "crm",
["Cree Timur Selatan"] = "crj",
["Cree Timur Utara"] = "crl",
["Creek"] = "mus",
["Cross River Hilir Purba"] = "nic-lcr-pro",
["Cross River Hulu Purba"] = "nic-ucr-pro",
["Crow"] = "cro",
["Cruzeño"] = "crz",
["Cua"] = "cua",
["Cuban Sign Language"] = "csf",
["Cubeo"] = "cub",
["Cueva"] = "sai-cva",
["Cuiba"] = "cui",
["Cuitlatec"] = "cuy",
["Culina"] = "cul",
["Culli"] = "sai-cul",
["Cumanagoto"] = "cuo",
["Cumbric"] = "xcb",
["Cun"] = "cuq",
["Cung"] = "cug",
["Cupan Purba"] = "azc-cup-pro",
["Cupeño"] = "cup",
["Curonian"] = "xcu",
["Curripaco"] = "kpc",
["Cushitic Purba"] = "cus-pro",
["Cushitic Selatan Purba"] = "cus-sou-pro",
["Cushitic Timur Tanah Tinggi Purba"] = "cus-hec-pro",
["Cutchi-Swahili"] = "ccl",
["Cuvok"] = "cuv",
["Cuyunon"] = "cyo",
["Cwi Bwamu"] = "bwy",
["Czech"] = "cs",
["Czech Kuno"] = "zlw-ocs",
["Czech Sign Language"] = "cse",
["Cốông"] = "cnc",
["Da'a Kaili"] = "kzf",
["Daantanai'"] = "lni",
["Daasanach"] = "dsh",
["Daba"] = "dbq",
["Dabarre"] = "dbr",
["Dabe"] = "dbe",
["Dacian"] = "xdc",
["Dadan"] = "sem-dad",
["Dadi Dadi"] = "dda",
["Dadibi"] = "mps",
["Dadiya"] = "dbd",
["Daga"] = "dgz",
["Dagaare Selatan"] = "dga",
["Dagaari Dioula"] = "dgd",
["Dagara Utara"] = "dgi",
["Dagba"] = "dgk",
["Dagbani"] = "dag",
["Dagik"] = "dec",
["Dagoman"] = "dgn",
["Dahalik"] = "dlk",
["Dahalo"] = "dal",
["Daho-Doo"] = "das",
["Dai"] = "dij",
["Dair"] = "drb",
["Daju Purba"] = "sdv-daj-pro",
["Dakaka"] = "bpa",
["Dakka"] = "dkk",
["Dakota"] = "dak",
["Dakpa"] = "dka",
["Dalmatian"] = "dlm",
["Daloa Bété"] = "bev",
["Daly Purba"] = "aus-dal-pro",
["Dama (Nigeria)"] = "dmm",
["Dama (Sierra Leone)"] = "dmn-dam",
["Damakawa"] = "dam",
["Damal"] = "uhn",
["Damar Barat"] = "drn",
["Damar Timur"] = "dmr",
["Dambi"] = "dac",
["Dameli"] = "dml",
["Dampelas"] = "dms",
["Dan"] = "dnj",
["Danaru"] = "dnr",
["Danau"] = "dnu",
["Dandami Maria"] = "daq",
["Dangaléat"] = "daa",
["Dangari Purba"] = "inc-dng-pro",
["Dangaura Tharu"] = "thl",
["Dani Barat"] = "dnw",
["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",
["Dargwa Purba"] = "cau-drg-pro",
["Darkinjung"] = "xda",
["Darlong"] = "dln",
["Darmiya"] = "drd",
["Darumbal"] = "xgm",
["Dass"] = "dot",
["Datooga"] = "tcc",
["Daungwurrung"] = "dgw",
["Daur"] = "dta",
["Davawenyo"] = "daw",
["Dawawa"] = "dww",
["Dawera-Daweloor"] = "ddw",
["Dawro"] = "dwr",
["Day"] = "dai",
["Dayi"] = "dax",
["Dazaga"] = "dzg",
["Deccani"] = "dcc",
["Dedua"] = "ded",
["Defaka"] = "afn",
["Deg"] = "mzw",
["Deg Xinag"] = "ing",
["Degema"] = "deg",
["Degenan"] = "dge",
["Dehwari"] = "deh",
["Dek"] = "dek",
["Dela-Oenale"] = "row",
["Delo"] = "ntr",
["Dem"] = "dem",
["Dema"] = "dmx",
["Demisa"] = "dei",
["Demta"] = "dmy",
["Dena'ina"] = "tfn",
["Dendi"] = "ddn",
["Dengese"] = "dez",
["Dengka"] = "dnk",
["Denmark"] = "da",
["Denmark Kuno"] = "gmq-oda",
["Denmark Pengembara"] = "rmd",
["Deno"] = "dbb",
["Denya"] = "anv",
["Dení"] = "dny",
["Deori"] = "der",
["Desano"] = "des",
["Desiya"] = "dso",
["Dewas Rai"] = "dwz",
["Dewoin"] = "dee",
["Dezfuli"] = "def",
["Dghwede"] = "dgh",
["Dhaiso"] = "dhs",
["Dhalandji"] = "dhl",
["Dhangu"] = "dhg",
["Dhanki"] = "dhn",
["Dhao"] = "nfa",
["Dharug"] = "xdk",
["Dhatki"] = "mki",
["Dhimal"] = "dhi",
["Dhivehi"] = "dv",
["Dhodia"] = "dho",
["Dhudhuroa"] = "ddr",
["Dhungaloo"] = "dhx",
["Dhurga"] = "dhu",
["Dhuwal"] = "dwu",
["Dhuwaya"] = "dwy",
["Dia"] = "dia",
["Dibiyaso"] = "dby",
["Dibo"] = "dio",
["Didinga"] = "did",
["Dieri"] = "dif",
["Digo"] = "dig",
["Dii"] = "dur",
["Dijim-Bwilim"] = "cfa",
["Dilling"] = "dil",
["Dima"] = "jma",
["Dimasa"] = "dis",
["Dimbong"] = "dii",
["Dime"] = "dim",
["Dineor"] = "mrx",
["Ding"] = "diz",
["Dinka"] = "din",
["Dinka Barat Daya"] = "dik",
["Dinka Barat Laut"] = "diw",
["Dinka Tengah Selatan"] = "dib",
["Dinka Tenggara"] = "dks",
["Dinka Timur Laut"] = "dip",
["Diodio"] = "ddi",
["Diri"] = "dwa",
["Dirim"] = "dir",
["Disa"] = "dsi",
["Ditammari"] = "tbz",
["Ditidaht"] = "dtd",
["Diuwe"] = "diy",
["Diuxi-Tilantongo Mixtec"] = "xtd",
["Dixon Reef"] = "dix",
["Dizin"] = "mdx",
["Dizoid Purba"] = "omv-diz-pro",
["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",
["Dogon Ampari"] = "aqd",
["Dogon Nanga Dama"] = "nzz",
["Dogoso"] = "dgs",
["Dogosé"] = "dos",
["Dogri"] = "doi",
["Dogrib"] = "dgr",
["Dogul Dom"] = "dbg",
["Doka"] = "dbi",
["Doko-Uyanga"] = "uya",
["Dolgan"] = "dlg",
["Dom"] = "doa",
["Domaaki"] = "dmk",
["Domari"] = "rmt",
["Dominican Sign Language"] = "doq",
["Dompo"] = "doy",
["Domu"] = "dof",
["Domung"] = "dev",
["Dondo"] = "dok",
["Dong"] = "doh",
["Dongo"] = "doo",
["Dongolawi"] = "kzh",
["Dongotono"] = "ddd",
["Dongshanba Lalo"] = "yik",
["Dongxiang"] = "sce",
["Donno So Dogon"] = "dds",
["Doondo"] = "dde",
["Dorasque"] = "cba-dor",
["Dori'o"] = "dor",
["Dorig"] = "wwo",
["Doromu-Koki"] = "kqc",
["Dorze"] = "doz",
["Doso"] = "dol",
["Doteli"] = "dty",
["Dothraki"] = "art-dtk",
["Doura"] = "don",
["Doutai"] = "tds",
["Doyayo"] = "dow",
["Dravidia Purba"] = "dra-pro",
["Dravidia Selatan I Purba"] = "dra-sdo-pro",
["Dravidia Selatan II Purba"] = "dra-sdt-pro",
["Dravidia Selatan Purba"] = "dra-sou-pro",
["Dravidia Tengah Purba"] = "dra-cen-pro",
["Dravidia Utara Purba"] = "dra-nor-pro",
["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",
["Dumait"] = "sem-dum",
["Dumbea"] = "duf",
["Dumi"] = "dus",
["Dumpas"] = "dmv",
["Dumun"] = "dui",
["Duna"] = "duc",
["Dungan"] = "dng",
["Dungmali"] = "raa",
["Dungra Bhil"] = "duh",
["Dungu"] = "dbv",
["Dura"] = "drq",
["Duri"] = "mvp",
["Duriankere"] = "dbn",
["Duruwa"] = "pci",
["Dusner"] = "dsn",
["Dusun Deyah"] = "dun",
["Dusun Malang"] = "duq",
["Dusun Sugut"] = "kzs",
["Dusun Tambunan"] = "kzt",
["Dusun Witu"] = "duw",
["Dutch Sign Language"] = "dse",
["Duun"] = "dux",
["Duupa"] = "dae",
["Duvle"] = "duv",
["Duwai"] = "dbp",
["Dwang"] = "nnu",
["Dyaabugay"] = "dyy",
["Dyaberdyaber"] = "dyb",
["Dyan"] = "dya",
["Dyangadi"] = "dyn",
["Dyirbal"] = "dbl",
["Dyugun"] = "dyd",
["Dyula"] = "dyu",
["Dza"] = "jen",
["Dzala"] = "dzl",
["Dzando"] = "dzn",
["Dzao Min"] = "bpn",
["Dzodinka"] = "add",
["Dzongkha"] = "dz",
["Dzuun"] = "dnn",
["Dâw"] = "kwa",
["E"] = "eee",
["E'ma Buyang"] = "yzg",
["Eastern Canadian Inuktitut"] = "ike",
["Ebira"] = "igb",
["Ebla"] = "xeb",
["Ebrié"] = "ebr",
["Ebughu"] = "ebg",
["Ede Cabe"] = "cbj",
["Ede Ica"] = "ica",
["Ede Idaca"] = "idd",
["Ede Ije"] = "ijj",
["Ede Nago"] = "nqg",
["Edekiri Purba"] = "alv-edk-pro",
["Edo"] = "bin",
["Edoid Purba"] = "alv-edo-pro",
["Edolo"] = "etr",
["Edom"] = "xdm",
["Edopi"] = "dbf",
["Efai"] = "efa",
["Efate Selatan"] = "erk",
["Efate Utara"] = "llp",
["Efe"] = "efe",
["Efik"] = "efi",
["Efutop"] = "ofu",
["Ega"] = "ega",
["Eggon"] = "ego",
["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",
["Elam"] = "elx",
["Eleme"] = "elm",
["Elepi"] = "ele",
["Elip"] = "ekm",
["Elkei"] = "elk",
["Eloi"] = "art-elo",
["Elotepec Zapotec"] = "zte",
["Eloyi"] = "afo",
["Elseng"] = "mrf",
["Elu"] = "elu",
["Elymi"] = "xly",
["Emae"] = "mmw",
["Emai"] = "ema",
["Eman"] = "emn",
["Embaloh"] = "emb",
["Emberá Utara"] = "emp",
["Emberá-Baudó"] = "bdc",
["Emberá-Catío"] = "cto",
["Emberá-Chamí"] = "cmi",
["Emberá-Tadó"] = "tdc",
["Embu"] = "ebu",
["Emem"] = "enr",
["Emerillon"] = "eme",
["Emilian"] = "egl",
["Emplawas"] = "emw",
["En"] = "enc",
["Enawené-Nawé"] = "unk",
["Ende"] = "end",
["Enets Hutan"] = "enf",
["Enets Tundra"] = "enh",
["Enga"] = "enq",
["Engenni"] = "enn",
["Enggano"] = "eno",
["Enlhet"] = "enl",
["Enrekang"] = "ptt",
["Enu"] = "enu",
["Enwan"] = "env",
["Enwang"] = "enw",
["Enxet"] = "enx",
["Eotile"] = "eot",
["Epena"] = "sja",
["Epi-Olmec"] = "xep",
["Epie"] = "epi",
["Eravallan"] = "era",
["Erave"] = "kjy",
["Ere"] = "twp",
["Erie"] = "iro-ere",
["Eritai"] = "ert",
["Erokwanas"] = "erw",
["Erre"] = "err",
["Erromintxela"] = "emx",
["Ersu"] = "ers",
["Ersu Purba"] = "sit-ers-pro",
["Eruwa"] = "erh",
["Erzya"] = "myv",
["Esan"] = "ish",
["Ese"] = "mcq",
["Ese Ejja"] = "ese",
["Eshtehardi"] = "esh",
["Esimbi"] = "ags",
["Eskayan"] = "esy",
["Eskimo Purba"] = "esx-esk-pro",
["Eskimo-Aleut Purba"] = "esx-pro",
["Esmeralda"] = "sai-esm",
["Esperanto"] = "eo",
["Esselen"] = "esq",
["Estonia"] = "et",
["Esuma"] = "esm",
["Etchemin"] = "etc",
["Etebi"] = "etb",
["Eten"] = "etx",
["Eteocretan"] = "ecr",
["Eteocypriot"] = "ecy",
["Etkywan"] = "ich",
["Eton (Cameroon)"] = "eto",
["Eton (Vanuatu)"] = "etn",
["Etruria"] = "ett",
["Etulo"] = "utr",
["Evant"] = "bzz",
["Even"] = "eve",
["Evenki"] = "evn",
["Ewage-Notu"] = "nou",
["Ewarhuyana"] = "sai-ewa",
["Ewe"] = "ee",
["Ewondo"] = "ewo",
["Extremaduran"] = "ext",
["Eyak"] = "eya",
["Ezaa"] = "eza",
["Fagani"] = "faf",
["Faifi"] = "fif",
["Faiwol"] = "fai",
["Fala"] = "fax",
["Fali"] = "fli",
["Fali Baissa"] = "fah",
["Fali Purba"] = "alv-fli-pro",
["Fali Selatan"] = "fal",
["Fali Utara"] = "fll",
["Falisci"] = "xfa",
["Fam"] = "fam",
["Fanagalo"] = "fng",
["Fanamaket"] = "bjp",
["Fang (Bantu)"] = "fan",
["Fang (Beboid)"] = "fak",
["Fania"] = "fni",
["Faroe"] = "fo",
["Fars Barat Daya"] = "fay",
["Fars Barat Laut"] = "faz",
["Fas"] = "fqs",
["Fasu"] = "faa",
["Fataleka"] = "far",
["Fataluku"] = "ddg",
["Fayu"] = "fau",
["Fe'fe'"] = "fmp",
["Fedan"] = "pdn",
["Fembe"] = "agl",
["Fer"] = "kah",
["Feroge"] = "fer",
["Fiji"] = "fj",
["Fiji Barat"] = "wyy",
["Filipina Purba"] = "phi-pro",
["Filistin"] = "mis-phi",
["Filomena Mata-Coahuitlán Totonac"] = "tlp",
["Fingallian"] = "gmw-fin",
["Finisterre Yau"] = "yuw",
["Finland"] = "fi",
["Finnik Purba"] = "urj-fin-pro",
["Finongan"] = "fag",
["Fipa"] = "fip",
["Firan"] = "fir",
["Fiwaga"] = "fiw",
["Flemish Barat"] = "vls",
["Flemish Sign Language"] = "vgt",
["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",
["Fortsenal"] = "frt",
["Fox"] = "sac",
["Franc-Comtois"] = "roa-fcm",
["Francisco León Zoque"] = "zos",
["Franco-Provençal"] = "frp",
["Franconia Rhine"] = "gmw-rfr",
["Franconia Tengah"] = "gmw-cfr",
["Franconia Timur"] = "vmf",
["French Belgian Sign Language"] = "sfb",
["Frisia Barat"] = "fy",
["Frisia Kuno"] = "ofs",
["Frisia Saterland"] = "stq",
["Frisia Utara"] = "frr",
["Friulian"] = "fur",
["Fula"] = "ff",
["Fuliiru"] = "flr",
["Fulniô"] = "fun",
["Fum"] = "fum",
["Fungwa"] = "ula",
["Fur"] = "fvr",
["Furu"] = "fuu",
["Futuna Timur"] = "fud",
["Futuna-Aniwa"] = "fut",
["Fuyug"] = "fuy",
["Fwe"] = "fwe",
["Fwâi"] = "fwa",
["Fyam"] = "pym",
["Fyer"] = "fie",
["Gaa"] = "ttb",
["Gaam"] = "tbi",
["Gabadi"] = "kbt",
["Gabrielino-Fernandeño"] = "xgf",
["Gaelik Scotland"] = "gd",
["Gagnoa Bété"] = "btg",
["Gahri"] = "bfu",
["Galatia"] = "xga",
["Galicia"] = "gl",
["Galicia-Portugis Kuno"] = "roa-opt",
["Galindan"] = "xgl",
["Gallaecia"] = "cel-gal",
["Gallo"] = "roa-gal",
["Gallo-Italik Basilicata"] = "roa-gib",
["Gallo-Italik Sicily"] = "roa-gis",
["Gallura"] = "sdn",
["Galo"] = "adl",
["Gamale Kham"] = "kgj",
["Gamela"] = "sai-gam",
["Gamilaraay"] = "kld",
["Gamo-Ningi"] = "bte",
["Gandhari"] = "pgd",
["Gane"] = "gzn",
["Ganza"] = "gza",
["Gapapaiwa"] = "pwg",
["Garawa"] = "wrk",
["Garifuna"] = "cab",
["Garingbal"] = "xgi",
["Garus"] = "gyb",
["Garza"] = "xgr",
["Gaul"] = "cel-gau",
["Gavak"] = "dmc",
["Gavião Pará"] = "gvp",
["Gavião do Jiparaná"] = "gvo",
["Gawar-Bati"] = "gwt",
["Gawwada"] = "gwd",
["Gayil"] = "gyl",
["Gayón"] = "sai-gay",
["Gbaya Barat Laut"] = "gya",
["Gbaya Purba"] = "gba-pro",
["Gbayi"] = "gyg",
["Gbe Kotafon"] = "kqk",
["Gbe Purba"] = "alv-gbe-pro",
["Gbe Xwla Barat"] = "xwl",
["Gbin"] = "xgb",
["Gciriku"] = "diu",
["Gcwi"] = "gwj",
["Ge"] = "hmj",
["Gedeo"] = "drs",
["Gela"] = "nlg",
["Gele'"] = "sbc",
["Georgia"] = "ka",
["Georgia Kuno"] = "oge",
["Georgia-Zan Purba"] = "ccs-gzn-pro",
["Gepo"] = "ygp",
["Geshiza"] = "ero-gsz",
["Ghayavi"] = "bmk",
["Ghomala'"] = "bbj",
["Ghotuo"] = "aaa",
["Giangan"] = "bgi",
["Gikyode"] = "acd",
["Gimme"] = "kmp",
["Girawa"] = "bbr",
["Giryama"] = "nyf",
["Gizrra"] = "tof",
["Glio-Oubi"] = "oub",
["Glosa"] = "igs",
["Goa'uld"] = "art-gld",
["Goemai"] = "ank",
["Goguryeo"] = "zkg",
["Gokhy"] = "tbq-gkh",
["Golin"] = "gvf",
["Golpa"] = "lja",
["Gong"] = "ugo",
["Goreng"] = "xgg",
["Goth Crimea"] = "gme-cgo",
["Gottscheerish"] = "gmw-gts",
["Gowro"] = "gwf",
["Grangali"] = "nli",
["Grass Koiari"] = "kbk",
["Grassfields Purba"] = "nic-grf-pro",
["Greek"] = "el",
["Greenland"] = "kl",
["Gros Ventre"] = "ats",
["Gua"] = "gwx",
["Guachí"] = "sai-gua",
["Guajá"] = "gvj",
["Guamo"] = "sai-gmo",
["Guang Purba"] = "alv-gng-pro",
["Guarani Klasik"] = "gn-cls",
["Guarayu"] = "gyr",
["Guazacapán"] = "nai-guz",
["Gudang"] = "xgd",
["Gudanji"] = "nji",
["Guevea de Humboldt Zapotec"] = "zpg",
["Gugu Warra"] = "wrw",
["Guiberoua Bété"] = "bet",
["Guinau"] = "awd-gnu",
["Guinea-Bissau Sign Language"] = "lgs",
["Gujarati Kuno"] = "inc-ogu",
["Gujarati Pertengahan"] = "inc-mgu",
["Gujerat"] = "gu",
["Gulay"] = "gvl",
["Gumawana"] = "gvs",
["Gundungurra"] = "xrd",
["Gungabula"] = "gyf",
["Gungu"] = "rub",
["Gunu"] = "yas",
["Gunya"] = "gyy",
["Gur Lama"] = "las",
["Gur Purba"] = "nic-gur-pro",
["Gurani"] = "hac",
["Gurmana"] = "gvm",
["Gurung"] = "gvr",
["Gurunsi Purba"] = "nic-gns-pro",
["Gutnish"] = "gmq-gut",
["Gutnish Kuno"] = "gmq-ogt",
["Guugu Yimidhirr"] = "kky",
["Guwa"] = "xgw",
["Guwamu"] = "gwu",
["Guwar"] = "aus-guw",
["Guyani"] = "gvy",
["Gvoko"] = "ngs",
["Gwa"] = "gwb",
["Gwahatike"] = "dah",
["Gwak"] = "jgk",
["Gwamhi-Wuri"] = "bga",
["Gwandara"] = "gwn",
["Gwara"] = "alv-gwa",
["Gweno"] = "gwe",
["Gwere"] = "gwr",
["Gwich'in"] = "gwi",
["Gyalsumdo"] = "gyo",
["Gyele"] = "gyi",
["Gyem"] = "gye",
["Güenoa"] = "sai-gue",
["Habu"] = "hbu",
["Hachijō"] = "jpx-hcj",
["Hadiyya"] = "hdy",
["Hadothi"] = "hoj",
["Hadrami"] = "xhd",
["Hadza"] = "hts",
["Haeke"] = "aek",
["Hahon"] = "hah",
["Haida"] = "hai",
["Haida Selatan"] = "hax",
["Haida Utara"] = "hdn",
["Haigwai"] = "hgw",
["Hainyaxo Bozo"] = "bzx",
["Haisla"] = "has",
["Haitian Vodoun Culture Language"] = "hvc",
["Haiǁom"] = "hgm",
["Haji"] = "hji",
["Hajong"] = "haj",
["Hakka"] = "hak",
["Hakö"] = "hao",
["Halang"] = "hal",
["Halang Doan"] = "hld",
["Halbi"] = "hlb",
["Halia"] = "hla",
["Halkomelem"] = "hur",
["Halmahera Utara Purba"] = "paa-nha-pro",
["Halmahera-Cenderawasih Purba"] = "poz-hce-pro",
["Hamap"] = "hmu",
["Hamba"] = "hba",
["Hamer-Banna"] = "amf",
["Hamtai"] = "hmt",
["Hanga"] = "hag",
["Hanga Hundi"] = "wos",
["Hani"] = "hni",
["Hanunoo"] = "hnn",
["Harami"] = "xha",
["Harari"] = "har",
["Haraza"] = "nub-har",
["Harijan Kinnauri"] = "kjo",
["Haroi"] = "hro",
["Harsusi"] = "hss",
["Haruai"] = "tmd",
["Haruku"] = "hrk",
["Haryanvi"] = "bgc",
["Harzani"] = "hrz",
["Hasait"] = "sem-has",
["Hasha"] = "ybj",
["Hatam"] = "had",
["Hatti"] = "xht",
["Hausa"] = "ha",
["Haush"] = "sai-hau",
["Havasupai-Walapai-Yavapai"] = "yuf",
["Haveke"] = "hvk",
["Havu"] = "hav",
["Hawai'i Pidgin Sign Language"] = "hps",
["Hawaii"] = "haw",
["Haya"] = "hay",
["Hdi"] = "xed",
["Hehe"] = "heh",
["Heiban"] = "hbn",
["Heiban Purba"] = "alv-hei-pro",
["Heiltsuk"] = "hei",
["Hellenik Purba"] = "grk-pro",
["Helong"] = "heg",
["Hema"] = "nix",
["Hemba"] = "hem",
["Hember Avu"] = "mmi",
["Herdé"] = "hed",
["Herero"] = "hz",
["Hermit"] = "llf",
["Hernican"] = "xhr",
["Het"] = "hit",
["Hewa"] = "ham",
["Heyo"] = "auk",
["Hibito"] = "hib",
["Hidatsa"] = "hid",
["Higaonon"] = "mba",
["Highland Konjo"] = "kjk",
["Highland Oaxaca Chontal"] = "chd",
["Highland Popoluca"] = "poi",
["Highland Totonac"] = "tos",
["Hijuk"] = "hij",
["Hiligaynon"] = "hil",
["Himarimã"] = "hir",
["Hindi"] = "hi",
["Hindi Dogri"] = "dgo",
["Hindi Fiji"] = "hif",
["Hindi Kreol Andaman"] = "hca",
["Hindi Kuno"] = "inc-ohi",
["Hindko Selatan"] = "hnd",
["Hindko Utara"] = "hno",
["Hinduri"] = "hii",
["Hindustan Caribbean"] = "hns",
["Hiri Motu"] = "ho",
["Hisma"] = "sem-his",
["Hitchiti"] = "nai-hit",
["Hitu"] = "htu",
["Hiw"] = "hiw",
["Hixkaryana"] = "hix",
["Hlai"] = "lic",
["Hlai Purba"] = "qfa-lic-pro",
["Hlepho Phowa"] = "yhl",
["Hlersu"] = "hle",
["Hmar"] = "hmr",
["Hmong Don"] = "hmf",
["Hmong Dô"] = "hmv",
["Hmong Guiyang Barat Daya"] = "hmg",
["Hmong Guiyang Selatan"] = "hmy",
["Hmong Guiyang Utara"] = "huj",
["Hmong Hijau"] = "hnj",
["Hmong Huishui Barat Daya"] = "hmh",
["Hmong Huishui Tengah"] = "hmc",
["Hmong Huishui Timur"] = "hme",
["Hmong Huishui Utara"] = "hmi",
["Hmong Luopohe"] = "hml",
["Hmong Mashan Barat"] = "hmw",
["Hmong Mashan Selatan"] = "hma",
["Hmong Mashan Tengah"] = "hmm",
["Hmong Mashan Utara"] = "hmp",
["Hmong Putih"] = "mww",
["Hmong Shua"] = "hmz",
["Hmong-Mien Purba"] = "hmx-pro",
["Hmongik Purba"] = "hmn-pro",
["Hmwaveke"] = "mrk",
["Ho"] = "hoc",
["Ho Chi Minh City Sign Language"] = "hos",
["Hoava"] = "hoa",
["Hobyót"] = "hoh",
["Hoia Hoia"] = "hhi",
["Hokkien"] = "nan-hbl",
["Hokkien Peranakan Kelantan"] = "mis-hkl",
["Holikachuk"] = "hoi",
["Holiya"] = "hoy",
["Holma"] = "hod",
["Holoholo"] = "hoo",
["Holu"] = "hol",
["Homa"] = "hom",
["Hone"] = "juh",
["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",
["Hrusish Purba"] = "sit-hrs-pro",
["Hruso"] = "hru",
["Hrê"] = "hre",
["Hu"] = "huo",
["Huachipaeri"] = "hug",
["Huambisa"] = "hub",
["Huaorani"] = "auc",
["Huarijio"] = "var",
["Huaulu"] = "hud",
["Huave"] = "huv",
["Huba"] = "hbb",
["Huetar"] = "cba-hue",
["Huichol"] = "hch",
["Huilliche"] = "huh",
["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",
["Hungary"] = "hu",
["Hungary Kuno"] = "ohu",
["Hungworo"] = "nat",
["Hunjara-Kaina Ke"] = "hkk",
["Hunsrik"] = "hrx",
["Hunzib"] = "huz",
["Hupa"] = "hup",
["Hupdë"] = "jup",
["Hupla"] = "hap",
["Hurri"] = "xhu",
["Hurro-Urartia Purba"] = "qfa-hur-pro",
["Hwana"] = "hwo",
["Hya"] = "hya",
["Hyam"] = "jab",
["Hän"] = "haa",
["Hértevin"] = "hrt",
["I-Wak"] = "iwk",
["Iaai"] = "iai",
["Iamalele"] = "yml",
["Iatmul"] = "ian",
["Iau"] = "tmu",
["Ibali Teke"] = "tek",
["Ibaloi"] = "ibl",
["Iban"] = "iba",
["Ibanag"] = "ibg",
["Ibani"] = "iby",
["Ibatan"] = "ivb",
["Iberia"] = "xib",
["Ibibio"] = "ibb",
["Ibino"] = "ibn",
["Iboko"] = "bkp",
["Ibrani"] = "he",
["Ibrani Samaria"] = "smp",
["Ibu"] = "ibu",
["Ibuoro"] = "ibr",
["Iceland"] = "is",
["Iceve-Maci"] = "bec",
["Idahan"] = "dbj",
["Idakho-Isukha-Tiriki"] = "ida",
["Idaté"] = "idt",
["Idere"] = "ide",
["Idesa"] = "ids",
["Idi"] = "idi",
["Idiom Neutral"] = "mis-idn",
["Ido"] = "io",
["Idoma"] = "idu",
["Idomoid Purba"] = "alv-ido-pro",
["Idon"] = "idc",
["Idu"] = "clk",
["Idun"] = "ldb",
["Iduna"] = "viv",
["Ifo"] = "iff",
["Ifè"] = "ife",
["Igala"] = "igl",
["Igana"] = "igg",
["Igbo"] = "ig",
["Igboid Purba"] = "alv-igb-pro",
["Igede"] = "ige",
["Ignaciano"] = "ign",
["Igo"] = "ahl",
["Iguta"] = "nar",
["Igwe"] = "igw",
["Iha"] = "ihp",
["Ihievbe"] = "ihi",
["Ija-Zuba"] = "vki",
["Ijoid Purba"] = "ijo-pro",
["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",
["Illyria"] = "xil",
["Ilocano"] = "ilo",
["Ilongot"] = "ilk",
["Ilue"] = "ilv",
["Ilwana"] = "mlk",
["Imbongu"] = "imo",
["Imonda"] = "imn",
["Imroing"] = "imr",
["Inabaknon"] = "abx",
["Inapang"] = "mzu",
["Indanga"] = "bnt-ind",
["Indo-Arya Purba"] = "inc-pro",
["Indo-Eropah Purba"] = "ine-pro",
["Indo-Iran Purba"] = "iir-pro",
["Indo-Portugis"] = "idb",
["Indonesia"] = "id",
["Indri"] = "idr",
["Ineseño"] = "inz",
["Inga"] = "inb",
["Inggeris"] = "en",
["Inggeris Kreol Islander"] = "icr",
["Inggeris Kreol Tobago"] = "tgh",
["Inggeris Kreol Trinidad"] = "trf",
["Inggeris Kreol Turks dan Caicos"] = "tch",
["Inggeris Kreol Vincent"] = "svc",
["Inggeris Kuno"] = "ang",
["Inggeris Pertengahan"] = "enm",
["Inggeris Pijin Cina"] = "cpi",
["Inggeris Solombala"] = "crp-slb",
["Ingria"] = "izh",
["Ingush"] = "inh",
["Inlaod Itneg"] = "iti",
["Inoke-Yate"] = "ino",
["Inonhan"] = "loc",
["Inor"] = "ior",
["Interlingua"] = "ia",
["Interlingue"] = "ie",
["International Sign"] = "ils",
["Interslavic"] = "isv",
["Intha"] = "int",
["Inuinnaqtun"] = "esx-inq",
["Inuit Purba"] = "esx-inu-pro",
["Inuktitut"] = "iu",
["Inuktun"] = "esx-ink",
["Inupiaq"] = "ik",
["Inuvialuktun"] = "ikt",
["Ipai"] = "nai-ipa",
["Ipiko"] = "ipo",
["Ipili"] = "ipi",
["Ipulo"] = "ass",
["Iquito"] = "iqu",
["Ir"] = "irr",
["Iran Purba"] = "ira-pro",
["Irantxe"] = "irn",
["Iranun"] = "ill",
["Iraqw"] = "irk",
["Irarutu"] = "irh",
["Iraya"] = "iry",
["Ireland"] = "ga",
["Ireland Kuno"] = "sga",
["Ireland Pertengahan"] = "mga",
["Iresim"] = "ire",
["Iroquois Purba"] = "iro-pro",
["Iroquois Utara Purba"] = "iro-nor-pro",
["Irula"] = "iru",
["Isabi"] = "isa",
["Isan"] = "tts",
["Isanzu"] = "isn",
["Isauria"] = "mis-isa",
["Isconahua"] = "isc",
["Isebe"] = "igo",
["Ishkashimi"] = "isk",
["Isinai"] = "inn",
["Isirawa"] = "srl",
["Isnag"] = "isd",
["Isoko"] = "iso",
["Istriot"] = "ist",
["Istro-Romania"] = "ruo",
["Isu"] = "isu",
["Isubu"] = "szv",
["Isyarat Kenya"] = "xki",
["Isyarat Maghribi"] = "xms",
["Isyarat Malaysia"] = "xml",
["Itali"] = "it",
["Italik Purba"] = "itc-pro",
["Itawit"] = "itv",
["Itelmen"] = "itl",
["Itene"] = "ite",
["Iteri"] = "itr",
["Itik"] = "itx",
["Ito"] = "itw",
["Itonama"] = "ito",
["Itsekiri"] = "its",
["Itu Mbon Uzo"] = "itm",
["Itzá"] = "itz",
["Iu Mien"] = "ium",
["Ivatan"] = "ivv",
["Iwaidja"] = "ibd",
["Iwaidjan Purba"] = "aus-wdj-pro",
["Iwal"] = "kbm",
["Iwam"] = "iwm",
["Iwur"] = "iwo",
["Ixcatec"] = "ixc",
["Ixil"] = "ixl",
["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",
["Jakaltek"] = "jac",
["Jakati"] = "jat",
["Jakun"] = "jak",
["Jalkunan"] = "bxl",
["Jamamadí"] = "jaa",
["Jaminjung"] = "djd",
["Jamsay"] = "djm",
["Jamtish"] = "gmq-jmk",
["Jandavra"] = "jnd",
["Janday"] = "jan",
["Jangkang"] = "djo",
["Jangshung"] = "jna",
["Janji"] = "jni",
["Japhug"] = "sit-jap",
["Japrería"] = "jru",
["Jaqaru"] = "jqr",
["Jara"] = "jaf",
["Jarai"] = "jra",
["Jarawa"] = "anq",
["Jaru"] = "ddj",
["Jassic"] = "ysc",
["Jaunsari"] = "jns",
["Javindo"] = "jvd",
["Jawa"] = "jv",
["Jawa Caribbean"] = "jvn",
["Jawa Kuno"] = "kaw",
["Jawa Ontong"] = "ojv",
["Jawe"] = "jaz",
["Jaya"] = "jyy",
["Jebel Timur Purba"] = "sdv-eje-pro",
["Jebero"] = "jeb",
["Jeh"] = "jeh",
["Jehai"] = "jhi",
["Jeikó"] = "sai-jko",
["Jeju"] = "jje",
["Jemez"] = "tow",
["Jenaama Bozo"] = "bze",
["Jeng"] = "jeg",
["Jennu Kurumba"] = "xuj",
["Jepun"] = "ja",
["Jepun Kuno"] = "ojp",
["Jepunik Purba"] = "jpx-pro",
["Jere"] = "jer",
["Jeri Kuo"] = "jek",
["Jerman"] = "de",
["Jerman Pennsylvania"] = "pdc",
["Jerman Rendah"] = "nds",
["Jerman Tengah Timur"] = "gmw-ecg",
["Jerman Volga"] = "gmw-vog",
["Jerman Zipser"] = "gmw-zps",
["Jermanik Barat Purba"] = "gmw-pro",
["Jermanik Purba"] = "gem-pro",
["Jeru"] = "akj",
["Jerung"] = "jee",
["Jiamao"] = "jio",
["Jiba"] = "juo",
["Jibu"] = "jib",
["Jicaque Barat"] = "nai-wji",
["Jicarilla"] = "apj",
["Jie"] = "mis-jie",
["Jiiddu"] = "jii",
["Jilbe"] = "jie",
["Jili"] = "mgi",
["Jilim"] = "jil",
["Jimi"] = "jmi",
["Jimjimen"] = "jim",
["Jin"] = "cjy",
["Jina"] = "jia",
["Jingpho"] = "kac",
["Jingulu"] = "jig",
["Jiongnai Bunu"] = "pnu",
["Jirajara"] = "sai-jrj",
["Jirel"] = "jul",
["Jiru"] = "jrr",
["Jita"] = "jit",
["Jizhao"] = "mis-jzh",
["Jju"] = "kaj",
["Joba"] = "job",
["Jofotek-Bromnya"] = "jbr",
["Jola-Fonyi"] = "dyo",
["Jola-Kasa"] = "csk",
["Jonkor Bourmataguil"] = "jeu",
["Jorá"] = "jor",
["Jowulu"] = "jow",
["Ju"] = "juu",
["Juang"] = "jun",
["Judeo-Itali"] = "itk",
["Judeo-Persian"] = "jpr",
["Judeo-Tat"] = "jdt",
["Jukun Takum"] = "jbu",
["Jukunoid Purba"] = "nic-jkn-pro",
["Jumaytepeque"] = "nai-jum",
["Jumjum"] = "jum",
["Jumli"] = "jml",
["Jungle Inga"] = "inj",
["Jur Modo"] = "bex",
["Juray"] = "juy",
["Jurchen"] = "juc",
["Jurúna"] = "jur",
["Jutiapa"] = "nai-jtp",
["Jutish"] = "jut",
["Juwal"] = "mwb",
["Juǀ'hoan"] = "ktz",
["Jwira-Pepesa"] = "jwi",
["Jê Purba"] = "sai-jee-pro",
["Jê Selatan Purba"] = "sai-sje-pro",
["Jê Tengah Purba"] = "sai-cje-pro",
["Jê Utara Purba"] = "sai-nje-pro",
["Júma"] = "jua",
["K'iche'"] = "quc",
["Kaamba"] = "xku",
["Kaan"] = "ldl",
["Kaapor Sign Language"] = "uks",
["Kaba"] = "ksp",
["Kabalai"] = "kvf",
["Kabardia"] = "kbd",
["Kabatei"] = "xkp",
["Kabba-Laka"] = "lap",
["Kabishiana"] = "tup-kab",
["Kabiyé"] = "kbp",
["Kabola"] = "klz",
["Kabore One"] = "onk",
["Kabras"] = "lkb",
["Kaburi"] = "uka",
["Kabutra"] = "kbu",
["Kabuverdianu"] = "kea",
["Kabwa"] = "cwa",
["Kabwari"] = "kcw",
["Kabyle"] = "kab",
["Kachama-Ganjule"] = "kcx",
["Kachari"] = "xac",
["Kachchi"] = "kfr",
["Kacipo-Balesi"] = "koe",
["Kaco'"] = "xkk",
["Kadai"] = "kzd",
["Kadar"] = "kej",
["Kadara"] = "kad",
["Kadaru"] = "kdu",
["Kadazan"] = "kzj",
["Kadazan Labuk-Kinabatangan"] = "dtb",
["Kadazan Sungai Klias"] = "kqt",
["Kadazandusun"] = "dtp",
["Kadiwéu"] = "kbc",
["Kado"] = "kdv",
["Kadu Purba"] = "qfa-kad-pro",
["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",
["Kaingáng São Paulo"] = "zkp",
["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",
["Kalagan"] = "kqe",
["Kalagan Kagan"] = "kll",
["Kalagan Tagakaulu"] = "klg",
["Kalam"] = "kmh",
["Kalami"] = "gwc",
["Kalamian Purba"] = "phi-kal-pro",
["Kalamsé"] = "knz",
["Kalanadi"] = "wkl",
["Kalanga"] = "kck",
["Kalao"] = "kly",
["Kalapuya"] = "kyl",
["Kalapuya Purba"] = "nai-klp-pro",
["Kalapuya Selatan"] = "sxk",
["Kalapuya Utara"] = "nrt",
["Kalarko"] = "kba",
["Kalasha"] = "kls",
["Kalasuri"] = "xme-kls",
["Kalašma"] = "ine-kal",
["Kalenjin"] = "kln",
["Kalinago"] = "crb",
["Kalinga Butbut"] = "kyb",
["Kalinga Lembah Mabaka"] = "kkg",
["Kalinga Limos"] = "kmk",
["Kalinga Lubuagan"] = "knb",
["Kalinga Madukayang"] = "kmd",
["Kalinga Selatan"] = "ksc",
["Kalinga Tanudan"] = "kml",
["Kalkatungu"] = "ktg",
["Kalkoti"] = "xka",
["Kalmyk"] = "xal",
["Kalou"] = "ywa",
["Kaluli"] = "bco",
["Kalumpang"] = "kli",
["Kam"] = "kdx",
["Kam Selatan"] = "kmc",
["Kam Utara"] = "doc",
["Kam-Sui Purba"] = "qfa-kms-pro",
["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",
["Kambera"] = "xbr",
["Kamberataro"] = "kbv",
["Kamberau"] = "irx",
["Kambiwá"] = "xbw",
["Kami"] = "kmi",
["Kamkata-viri"] = "bsh",
["Kamo"] = "kcq",
["Kamoro"] = "kgq",
["Kampa Purba"] = "awd-kmp-pro",
["Kamta"] = "rkt",
["Kamta Purba"] = "inc-krd-pro",
["Kamu"] = "xmu",
["Kamula"] = "xla",
["Kamwe"] = "hig",
["Kanakanabu"] = "xnb",
["Kanakuru"] = "kna",
["Kanamari"] = "knm",
["Kanashi"] = "xns",
["Kanasi"] = "soq",
["Kandas"] = "kqw",
["Kande"] = "kbs",
["Kang"] = "kyp",
["Kanga"] = "kcp",
["Kangean"] = "kkv",
["Kanggape"] = "igm",
["Kangjia"] = "kxs",
["Kango"] = "kty",
["Kango-Sua"] = "kzy",
["Kangri"] = "xnr",
["Kaniet"] = "ktk",
["Kanikkaran"] = "kev",
["Kaningdon-Nindem"] = "kdp",
["Kaningi"] = "kzo",
["Kaningra"] = "knr",
["Kaninuwa"] = "wat",
["Kanite"] = "kmu",
["Kanjari"] = "kft",
["Kanju"] = "kbe",
["Kankanaey"] = "kne",
["Kankanay Utara"] = "xnn",
["Kannada"] = "kn",
["Kannada Kuno"] = "dra-okn",
["Kannada Kurumba"] = "kfi",
["Kannada Pertengahan"] = "dra-mkn",
["Kannauji"] = "bjj",
["Kanowit"] = "kxn",
["Kanoé"] = "kxo",
["Kansa"] = "ksk",
["Kantonis"] = "yue",
["Kantosi"] = "xkt",
["Kanu"] = "khx",
["Kanufi"] = "kni",
["Kanuri"] = "kr",
["Kanyok"] = "kny",
["Kao"] = "kax",
["Kaonde"] = "kqn",
["Kap"] = "ykm",
["Kapampangan"] = "pam",
["Kapauri"] = "khp",
["Kapin"] = "tbx",
["Kapinawá"] = "xpn",
["Kapingamarangi"] = "kpg",
["Kapriman"] = "dju",
["Kaptiau"] = "kbi",
["Kapya"] = "klo",
["Kaqchikel"] = "cak",
["Kara (New Guinea)"] = "leu",
["Kara (Tanzania)"] = "reg",
["Karaboro Barat"] = "kza",
["Karaboro Timur"] = "xrb",
["Karachay-Balkar"] = "krc",
["Karaim"] = "kdr",
["Karajá"] = "kpj",
["Karakalpak"] = "kaa",
["Karakhanid"] = "xqa",
["Karami"] = "xar",
["Karamojong"] = "kdj",
["Karang"] = "kzr",
["Karanga"] = "kth",
["Karankawa"] = "zkk",
["Karao"] = "kyj",
["Karas"] = "kgv",
["Karata"] = "kpt",
["Karawa"] = "xrw",
["Karbi"] = "mjw",
["Karbi Amri"] = "ajz",
["Kare (Africa)"] = "kbn",
["Kare (New Guinea)"] = "kmf",
["Karekare"] = "kai",
["Karelia"] = "krl",
["Karen Brek"] = "kvl",
["Karen Bwe"] = "bwe",
["Karen Geba"] = "kvq",
["Karen Lahta"] = "kvt",
["Karen Manumanaw"] = "kxf",
["Karen Pa'o"] = "blk",
["Karen Paku"] = "kpp",
["Karen Purba"] = "kar-pro",
["Karen S'gaw"] = "ksw",
["Karen Yinbaw"] = "kvu",
["Karen Yintale"] = "kvy",
["Karen Zayein"] = "kxk",
["Karey"] = "kyd",
["Kari"] = "kbj",
["Kari'na"] = "car",
["Karingani"] = "kgn",
["Karipuna"] = "kuq",
["Karipúna"] = "kgm",
["Kariri"] = "kzw",
["Karitiâna"] = "ktn",
["Kariya"] = "kil",
["Kariyarra"] = "vka",
["Karkar-Yuri"] = "yuj",
["Karkin"] = "krb",
["Karko"] = "kko",
["Karnai"] = "bbv",
["Karo"] = "kxh",
["Karok"] = "kyh",
["Karolanos"] = "kyn",
["Karon"] = "krx",
["Karon Dori"] = "kgw",
["Karore"] = "xkx",
["Karranga"] = "xrq",
["Kartvelia Purba"] = "ccs-pro",
["Karuwali"] = "rxw",
["Kasanga"] = "ccj",
["Kasem"] = "xsm",
["Kashaya"] = "kju",
["Kashmir"] = "ks",
["Kashubian"] = "csb",
["Kasiguranin"] = "ksn",
["Kaska"] = "kkz",
["Kaskean"] = "zsk",
["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",
["Katu Barat"] = "kuf",
["Katu Timur"] = "ktv",
["Katua"] = "kta",
["Katuik Purba"] = "mkh-kat-pro",
["Katukina"] = "knt",
["Kaukasia Barat Laut Purba"] = "cau-nwc-pro",
["Kaukasia Timur Laut Purba"] = "cau-nec-pro",
["Kaulong"] = "pss",
["Kaur"] = "vkk",
["Kaure"] = "bpp",
["Kaurna"] = "zku",
["Kauwera"] = "xau",
["Kavalan"] = "ckv",
["Kavet"] = "krv",
["Kawacha"] = "kcb",
["Kawahiva"] = "tup-kaw",
["Kawaiisu"] = "xaw",
["Kawe"] = "kgb",
["Kawishana"] = "awd-kaw",
["Kawésqar"] = "alc",
["Kaxararí"] = "ktx",
["Kaxuyana"] = "kbb",
["Kaya"] = "zra",
["Kayabí"] = "kyz",
["Kayagar"] = "kyt",
["Kayah Barat"] = "kyu",
["Kayah Timur"] = "eky",
["Kayan"] = "pdu",
["Kayan Baram"] = "kys",
["Kayan Mahakam"] = "xay",
["Kayan Mendalam"] = "xkd",
["Kayan Rejang"] = "ree",
["Kayan Sungai Kayan"] = "xkn",
["Kayan Wahau"] = "whu",
["Kayapa Kallahan"] = "kak",
["Kayapó"] = "txu",
["Kayardild"] = "gyd",
["Kayeli"] = "kzl",
["Kayong"] = "kxy",
["Kayort"] = "kyv",
["Kayupulau"] = "kzu",
["Kazakh"] = "kk",
["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",
["Keley-I Kallahan"] = "ify",
["Keliko"] = "kbo",
["Kelo"] = "xel",
["Kelon"] = "kyo",
["Keltik Purba"] = "cel-pro",
["Kemak"] = "kem",
["Kembayan"] = "xem",
["Kemberano"] = "bzp",
["Kembra"] = "xkw",
["Kemezung"] = "dmo",
["Kemiehua"] = "kfj",
["Kemtuik"] = "kmt",
["Kenaboi"] = "xbn",
["Kendeje"] = "klf",
["Kendem"] = "kvm",
["Kenga"] = "kyq",
["Keninjal"] = "knl",
["Kensiu"] = "kns",
["Kenswei Nsei"] = "ndb",
["Kenyah Wahau"] = "whk",
["Kenyang"] = "ken",
["Kenyi"] = "lke",
["Keoru-Ahia"] = "xeu",
["Kepkiriwát"] = "kpn",
["Kepo'"] = "kuk",
["Kera"] = "ker",
["Kerak"] = "hhr",
["Kereho"] = "xke",
["Kerek"] = "krk",
["Keres Barat"] = "kjq",
["Keres Timur"] = "kee",
["Kerewe"] = "ked",
["Kerewo"] = "kxz",
["Kerinci"] = "kvr",
["Kermanik"] = "xme-ker",
["Kesawai"] = "xes",
["Ket"] = "ket",
["Ketangalan"] = "kae",
["Kete"] = "kcv",
["Ketengban"] = "xte",
["Ketum"] = "ktt",
["Kewa"] = "kew",
["Kewa Timur"] = "kjs",
["Keyagana"] = "kyg",
["Kgalagadi"] = "xkv",
["Khakas"] = "kjh",
["Khalaj"] = "klj",
["Khaling"] = "klr",
["Kham"] = "kjl",
["Kham Parbate Timur"] = "kif",
["Kham Purba"] = "sit-kha-pro",
["Khamti"] = "kht",
["Khamyang"] = "ksu",
["Khana"] = "ogo",
["Khandeshi"] = "khn",
["Khanty Purba"] = "kca-pro",
["Khanty Selatan"] = "kca-sou",
["Khanty Timur"] = "kca-eas",
["Khanty Utara"] = "kca-nor",
["Khao"] = "xao",
["Kharam Naga"] = "kfw",
["Kharia"] = "khr",
["Kharia Thar"] = "ksy",
["Khasi"] = "kha",
["Khasi Purba"] = "aav-khs-pro",
["Khayo"] = "lko",
["Khazar"] = "zkz",
["Khe"] = "kqg",
["Khehek"] = "tlx",
["Khengkha"] = "xkf",
["Khetrani"] = "xhe",
["Khinalug"] = "kjj",
["Khirwar"] = "kwx",
["Khisa"] = "kqm",
["Khitan"] = "zkt",
["Khlor"] = "llo",
["Khlula"] = "ykl",
["Khmer"] = "km",
["Khmer Kuno"] = "okz",
["Khmer Pertengahan"] = "xhm",
["Khmer Purba"] = "mkh-kmr-pro",
["Khmer Utara"] = "kxm",
["Khmu"] = "kjg",
["Khmuik Purba"] = "mkh-khm-pro",
["Kho-Bwa Barat Purba"] = "sit-khw-pro",
["Kho-Bwa Purba"] = "sit-khb-pro",
["Khoe Purba"] = "khi-kho-pro",
["Khoekhoe"] = "naq",
["Khoini"] = "xkc",
["Kholok"] = "ktc",
["Kholosi"] = "inc-kho",
["Khonso"] = "kxc",
["Khorezmian Turkic"] = "zkh",
["Khortha"] = "inc-khr",
["Khotan"] = "kho",
["Khowar"] = "khw",
["Khroskyabs"] = "jiq",
["Khua"] = "xhv",
["Khuen"] = "khf",
["Khvarshi"] = "khv",
["Khwarezm"] = "xco",
["Khwe"] = "xuu",
["Kháng"] = "kjm",
["Khün"] = "kkh",
["Kibala"] = "blv",
["Kibena"] = "bez",
["Kibet"] = "kie",
["Kibiri"] = "prm",
["Kichwa"] = "qwe-kch",
["Kickapoo"] = "kic",
["Kikai"] = "kzg",
["Kikami"] = "kcu",
["Kikuyu"] = "ki",
["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",
["Kinnauri"] = "kfk",
["Kinnauri Bhoti"] = "nes",
["Kintaq"] = "knq",
["Kinuku"] = "kkd",
["Kioko"] = "ues",
["Kiong"] = "kkm",
["Kiorr"] = "xko",
["Kiowa"] = "kio",
["Kipchak"] = "qwm",
["Kipfokomo"] = "pkb",
["Kipsigis"] = "sgc",
["Kiput"] = "kyi",
["Kir-Balar"] = "kkr",
["Kirfi"] = "kks",
["Kirike"] = "okr",
["Kirikiri"] = "kiy",
["Kirya-Konzel"] = "fkk",
["Kis"] = "kis",
["Kisa"] = "lks",
["Kisan"] = "xis",
["Kisankasa"] = "kqh",
["Kisar"] = "kje",
["Kisi"] = "kiz",
["Kissi Selatan"] = "kss",
["Kissi Utara"] = "kqs",
["Kitanemuk"] = "azc-ktn",
["Kitembo"] = "tbt",
["Kitsai"] = "kii",
["Kituba"] = "ktu",
["Kiunum"] = "wei",
["Kiwai Selatan"] = "kjd",
["Kiwai Timur Laut"] = "kiw",
["Kla"] = "lda",
["Klallam"] = "clm",
["Klamath-Modoc"] = "kla",
["Klao"] = "klu",
["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 Indus"] = "mvy",
["Kohistani Shina"] = "plk",
["Koho"] = "kpm",
["Kohumono"] = "bcs",
["Koi"] = "kkt",
["Koiari Gunung"] = "kpx",
["Koibal"] = "zkb",
["Koireng"] = "nkd",
["Koitabu"] = "kqi",
["Koiwat"] = "kxt",
["Kok-Paponk"] = "okg",
["Kokata"] = "ktd",
["Kokborok"] = "trp",
["Koke"] = "kou",
["Koko-Bera"] = "kkp",
["Kokoda"] = "xod",
["Kokola"] = "kzn",
["Kokota"] = "kkk",
["Kol (Cameroon)"] = "biw",
["Kol (New Guinea)"] = "kol",
["Kola"] = "kvv",
["Kolami"] = "kfb",
["Kolami Tenggara"] = "nit",
["Kolbila"] = "klc",
["Kolhe"] = "ekl",
["Kolibugan Subanon"] = "skn",
["Kolom"] = "klm",
["Koluwawa"] = "klx",
["Kom (Cameroon)"] = "bkm",
["Kom (India)"] = "kmm",
["Koma"] = "kmy",
["Koma Purba"] = "ssa-kom-pro",
["Komba"] = "kpf",
["Kombai"] = "tyn",
["Kombio"] = "xbi",
["Komering"] = "kge",
["Komi Kuno"] = "urj-koo",
["Komi-Permyak"] = "koi",
["Komi-Yazva"] = "urj-kya",
["Komi-Zyrian"] = "kpv",
["Kominimung"] = "xoi",
["Komisenia Purba"] = "ira-kms-pro",
["Komo"] = "xom",
["Komodo"] = "kvh",
["Kompane"] = "kvp",
["Komyandaret"] = "kzv",
["Kon Keu"] = "kkn",
["Konabéré"] = "bbo",
["Konai"] = "kxw",
["Konda"] = "knd",
["Konda-Dora"] = "kfc",
["Koneraw"] = "kdw",
["Kongo"] = "kg",
["Konjo Pesisir"] = "kjc",
["Konkani"] = "kok",
["Konkomba"] = "xon",
["Konni"] = "kma",
["Kono (Guinea)"] = "knu",
["Kono (Nigeria)"] = "klk",
["Kono (Sierra Leone)"] = "kno",
["Konomala"] = "koa",
["Konomihu"] = "nai-knm",
["Konongo"] = "kcz",
["Konzo"] = "koo",
["Koonzime"] = "ozm",
["Koorete"] = "kqy",
["Kopar"] = "xop",
["Kopkaka"] = "opk",
["Korafe-Yegha"] = "kpr",
["Korak"] = "koz",
["Korana"] = "kqz",
["Korandje"] = "kcy",
["Korea"] = "ko",
["Korea Kuno"] = "oko",
["Korea Moden Awal"] = "ko-ear",
["Korea Pertengahan"] = "okm",
["Korea Purba"] = "qfa-kor-pro",
["Koreguaje"] = "coe",
["Koresh-e Rostam"] = "okh",
["Korku"] = "kfq",
["Koro (Afrika Barat)"] = "kfo",
["Koro (India)"] = "jkr",
["Koro (New Guinea)"] = "kxr",
["Koro (Vanuatu)"] = "krf",
["Koromfé"] = "kfz",
["Koromira"] = "kqj",
["Koronadal Blaan"] = "bpr",
["Koroni"] = "xkq",
["Korop"] = "krp",
["Koropó"] = "xxr",
["Koroshi"] = "ktl",
["Korowai"] = "khe",
["Korra Koraga"] = "kfd",
["Korubo"] = "xor",
["Korupun-Sela"] = "kpq",
["Korwa"] = "kfp",
["Koryak"] = "kpy",
["Kosadle"] = "kiq",
["Kosarek Yale"] = "kkl",
["Kosena"] = "kze",
["Koshin"] = "kid",
["Kosrae"] = "kos",
["Kota (Gabon)"] = "koq",
["Kota (India)"] = "kfe",
["Kotava"] = "avk",
["Koti"] = "eko",
["Kott"] = "zko",
["Kou"] = "snz",
["Kouya"] = "kyf",
["Kovai"] = "kqb",
["Kove"] = "kvc",
["Kowaki"] = "xow",
["Kowiai"] = "kwh",
["Koy Sanjaq Surat"] = "kqd",
["Koya"] = "kff",
["Koyaga"] = "kga",
["Koyo"] = "koh",
["Koyra Chiini"] = "khq",
["Koyraboro Senni"] = "ses",
["Koyukon"] = "koy",
["Kpagua"] = "kuw",
["Kpala"] = "kpl",
["Kpan"] = "kpk",
["Kpasam"] = "pbn",
["Kpati"] = "koc",
["Kpatili"] = "kym",
["Kpee"] = "cpo",
["Kpelle"] = "kpe",
["Kpessi"] = "kef",
["Kplang"] = "kph",
["Kra Purba"] = "qfa-kra-pro",
["Kra-Dai Purba"] = "qfa-tak-pro",
["Krache"] = "kye",
["Krahn Barat"] = "krw",
["Krahn Timur"] = "kqo",
["Krahô"] = "xra",
["Kraol"] = "rka",
["Krenak"] = "kqq",
["Kreol Afro-Seminole"] = "afs",
["Kreol Bahamas"] = "bah",
["Kreol Belize"] = "bzj",
["Kreol Belter"] = "art-bel",
["Kreol Guinea-Bissau"] = "pov",
["Kreol Haiti"] = "ht",
["Kreol Hawaii"] = "hwc",
["Kreol Inggeris Antigua dan Barbuda"] = "aig",
["Kreol Inggeris Guyana"] = "gyn",
["Kreol Jamaica"] = "jam",
["Kreol Kepulauan Virgin"] = "vic",
["Kreol Lelaki Ngatik"] = "ngm",
["Kreol Louisiana"] = "lou",
["Kreol Mauritius"] = "mfe",
["Kreol Nicaragua"] = "bzk",
["Kreol Selat Torres"] = "tcs",
["Kreol Seychelles"] = "crs",
["Kreol Yilan"] = "ycr",
["Kresh"] = "krs",
["Krevinian"] = "zkv",
["Kreye"] = "xre",
["Krikati-Timbira"] = "xri",
["Krim"] = "krm",
["Krio"] = "kri",
["Kriol"] = "rop",
["Krisa"] = "ksi",
["Kristang"] = "mcm",
["Krobu"] = "kxb",
["Krongo"] = "kgo",
["Kru Purba"] = "kro-pro",
["Kru'ng"] = "krr",
["Krymchak"] = "jct",
["Kryts"] = "kry",
["Kua"] = "tyu",
["Kua-nsi"] = "ykn",
["Kuamasi"] = "yku",
["Kuan"] = "uan",
["Kuanhua"] = "xnh",
["Kube"] = "kgf",
["Kubi"] = "kof",
["Kubo"] = "jko",
["Kubu"] = "kvb",
["Kucong"] = "lkc",
["Kudiya"] = "kfg",
["Kudmali"] = "kyw",
["Kudu-Camo"] = "kov",
["Kugama"] = "kow",
["Kugbo"] = "kes",
["Kugu-Muminh"] = "xmh",
["Kui (India)"] = "kxu",
["Kui (Indonesia)"] = "kvd",
["Kuijau"] = "dkr",
["Kuikúro"] = "kui",
["Kujarge"] = "vkj",
["Kuk"] = "kfn",
["Kukatja"] = "kux",
["Kukele"] = "kez",
["Kuki-Chin Purba"] = "tbq-kuk-pro",
["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",
["Kulango Bouna"] = "nku",
["Kulere"] = "kul",
["Kulfa"] = "kxj",
["Kuliak Purba"] = "ssa-klk-pro",
["Kulina"] = "xpk",
["Kulisusu"] = "vkl",
["Kullu Pahari"] = "kfx",
["Kulon"] = "uon",
["Kulon-Pazeh"] = "uun",
["Kulung"] = "kle",
["Kumak"] = "nee",
["Kumalu"] = "ksl",
["Kumam"] = "kdi",
["Kuman"] = "kue",
["Kumaoni"] = "kfy",
["Kumarbhag Paharia"] = "kmj",
["Kumba"] = "ksm",
["Kumbainggar"] = "kgs",
["Kumbaran"] = "wkb",
["Kumbewaha"] = "xks",
["Kumeyaay"] = "nai-kum",
["Kumhali"] = "kra",
["Kumu"] = "kmw",
["Kumukio"] = "kuo",
["Kumyk"] = "kum",
["Kumzari"] = "zum",
["Kuna"] = "cuk",
["Kuna Sempadan"] = "kvn",
["Kunama"] = "kun",
["Kunbarlang"] = "wlg",
["Kunda"] = "kdn",
["Kundal Shahi"] = "shd",
["Kunduvadi"] = "wku",
["Kung"] = "kfl",
["Kunggari"] = "kgl",
["Kungkari"] = "lku",
["Kuni"] = "kse",
["Kuni-Boazi"] = "kvg",
["Kunigami"] = "xug",
["Kunimaipa"] = "kup",
["Kunja"] = "pep",
["Kunjen"] = "kjn",
["Kunyi"] = "njx",
["Kunza"] = "kuz",
["Kuo"] = "xuo",
["Kuot"] = "kto",
["Kupa"] = "kug",
["Kupia"] = "key",
["Kupsabiny"] = "kpz",
["Kur"] = "kuv",
["Kura Ede Nago"] = "nqk",
["Kurama"] = "krh",
["Kuranko"] = "knk",
["Kurdi Purba"] = "ku-pro",
["Kurdi Selatan"] = "sdh",
["Kurdi Tengah"] = "ckb",
["Kurdi Utara"] = "kmr",
["Kuri"] = "nbn",
["Kuria"] = "kuj",
["Kurichiya"] = "kfh",
["Kurmukar"] = "kfv",
["Kurnai"] = "unn",
["Kurrama"] = "vku",
["Kursav"] = "faj",
["Kurti"] = "ktm",
["Kurtöp"] = "xkz",
["Kurudu"] = "kjr",
["Kurukh"] = "kru",
["Kurumba Alu"] = "xua",
["Kurumba Betta"] = "xub",
["Kuruáya"] = "kyr",
["Kusaal"] = "kus",
["Kusaghe"] = "ksg",
["Kushi"] = "kuh",
["Kustenau"] = "awd-kus",
["Kusu"] = "ksv",
["Kusunda"] = "kgg",
["Kutenai"] = "kut",
["Kutep"] = "kub",
["Kuthant"] = "xut",
["Kutto"] = "kpa",
["Kutu"] = "kdc",
["Kuturmi"] = "khj",
["Kuuk Thaayorre"] = "thd",
["Kuuk Yak"] = "uky",
["Kuuku-Ya'u"] = "kuy",
["Kuvale"] = "olu",
["Kuvi"] = "kxv",
["Kuwaa"] = "blh",
["Kuwaataay"] = "cwt",
["Kuwani"] = "paa-kwn",
["Kuy"] = "kdt",
["Kven"] = "fkv",
["Kw'adza"] = "wka",
["Kwa Purba"] = "alv-kwa-pro",
["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",
["Kyenele"] = "kql",
["Kyenga"] = "tye",
["Kyerung"] = "kgy",
["Kyrgyz"] = "ky",
["Kâte"] = "kmg",
["Kélé"] = "keb",
["Kómnzo"] = "paa-kmn",
["La'bi"] = "lbi",
["Laalaa"] = "cae",
["Laba"] = "lau",
["Label"] = "lbb",
["Labir"] = "jku",
["Labo"] = "mwi",
["Labo Phowa"] = "ypb",
["Laboya"] = "lmy",
["Labu"] = "lbu",
["Lacandon"] = "lac",
["Lachi"] = "lbt",
["Lachi Putih"] = "lwh",
["Lachiguiri Zapotec"] = "zpa",
["Lachixío Zapotec"] = "zpl",
["Ladakhi"] = "lbj",
["Ladin"] = "lld",
["Ladino"] = "lad",
["Ladji-Ladji"] = "llj",
["Laeko-Libuat"] = "lkl",
["Lafofa"] = "laf",
["Laghu"] = "lgb",
["Laghuu"] = "lgh",
["Lagwan"] = "kot",
["Laha (Indonesia)"] = "lhh",
["Laha (Vietnam)"] = "lha",
["Lahanan"] = "lhn",
["Lahnda"] = "lah",
["Lahu"] = "lhu",
["Lahu Shi"] = "lhi",
["Lahul Lohar"] = "lhl",
["Lai"] = "cnh",
["Laimbue"] = "lmx",
["Laiyolo"] = "lji",
["Lak"] = "lbe",
["Laka"] = "lak",
["Lakalei"] = "lka",
["Lake Miwok"] = "lmw",
["Lakha"] = "lkh",
["Laki"] = "lki",
["Lakkia"] = "lbc",
["Lakon"] = "lkn",
["Lakondê"] = "lkd",
["Lakota"] = "lkt",
["Lakota Dida"] = "dic",
["Lala (Afrika Selatan)"] = "bnt-lal",
["Lala (New Guinea)"] = "nrz",
["Lala-Bisa"] = "leb",
["Lala-Roba"] = "lla",
["Lalana Chinantec"] = "cnl",
["Lalo Purba"] = "tbq-lal-pro",
["Lalu Barat"] = "ywl",
["Lalu Timur"] = "yit",
["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",
["Lampungik Purba"] = "poz-lgx-pro",
["Lamu"] = "llh",
["Lamu-Lamu"] = "lby",
["Lanas Lobu"] = "ruu",
["Landoma"] = "ldm",
["Lang'e"] = "yne",
["Langam"] = "lnm",
["Langbashe"] = "lna",
["Langi"] = "lag",
["Langnian Buyang"] = "yln",
["Lango (Sudan)"] = "lno",
["Lango (Uganda)"] = "laj",
["Lanima"] = "lnw",
["Lanoh"] = "lnh",
["Lao"] = "lo",
["Laomian"] = "lwm",
["Laopang"] = "lbg",
["Lapaguía-Guivini Zapotec"] = "ztl",
["Lapine"] = "art-lap",
["Laragia"] = "lrg",
["Lardil"] = "lbz",
["Larestani"] = "lrl",
["Larevat"] = "lrv",
["Larike-Wakasihu"] = "alo",
["Laro"] = "lro",
["Larteh"] = "lar",
["Laru"] = "lan",
["Lasalimu"] = "llm",
["Lasgerdi"] = "lsa",
["Lashi"] = "lsi",
["Lasi"] = "lss",
["Latgalia"] = "ltg",
["Latin"] = "la",
["Latu"] = "ltu",
["Latundê"] = "ltn",
["Latvia"] = "lv",
["Lau"] = "llu",
["Laua"] = "luf",
["Lauan"] = "llx",
["Lauje"] = "law",
["Laura"] = "lur",
["Laurentia"] = "lre",
["Lavatbura-Lamusong"] = "lbv",
["Lave"] = "brb",
["Laven"] = "lbo",
["Lavukaleve"] = "lvk",
["Lawa Barat"] = "lcp",
["Lawa Timur"] = "lwl",
["Lawangan"] = "lbx",
["Lawi"] = "lvi",
["Lawu"] = "lwu",
["Lawunuia"] = "tgi",
["Layakha"] = "lya",
["Laz"] = "lzz",
["Laze"] = "tbq-laz",
["Lealao Chinantec"] = "cle",
["Leco"] = "lec",
["Ledo Kaili"] = "lew",
["Leelau"] = "ldk",
["Lefa"] = "lfa",
["Lega-Mwenga"] = "lgm",
["Lega-Shabunda"] = "lea",
["Legbo"] = "agb",
["Legenyem"] = "lcc",
["Lehali"] = "tql",
["Leinong Naga"] = "lzn",
["Leipon"] = "lek",
["Leitre"] = "paa-lei",
["Lela"] = "dri",
["Lelak"] = "llk",
["Lele (Chad)"] = "lln",
["Lele (Congo)"] = "lel",
["Lele (Guinea)"] = "llc",
["Lele (New Guinea)"] = "lle",
["Lelemi"] = "lef",
["Lelepa"] = "lpa",
["Lembata Barat"] = "lmj",
["Lembata Selatan"] = "lmf",
["Lembena"] = "leq",
["Lemerig"] = "lrz",
["Lemio"] = "lei",
["Lemnos"] = "xle",
["Lemolang"] = "ley",
["Lemoro"] = "ldj",
["Lenakel"] = "tnl",
["Lenca Honduras"] = "len",
["Lenca Salvador"] = "nai-sln",
["Lendu"] = "led",
["Lengilu"] = "lgi",
["Lengo"] = "lgr",
["Lengola"] = "lej",
["Lenje"] = "leh",
["Lenkau"] = "ler",
["Lenyima"] = "ldg",
["Leon"] = "roa-leo",
["Leon Kuno"] = "roa-ole",
["Lepcha"] = "lep",
["Lepki"] = "lpe",
["Lepontii"] = "xlp",
["Lese"] = "les",
["Lesing-Gelimi"] = "let",
["Letemboi"] = "nms",
["Leti (Cameroon)"] = "leo",
["Leti (Indonesia)"] = "lti",
["Levuka"] = "lvu",
["Lewo"] = "lww",
["Lewo Eleng"] = "lwe",
["Lewotobi"] = "lwt",
["Leyigha"] = "ayi",
["Lezghi Purba"] = "cau-lzg-pro",
["Lezgi"] = "lez",
["Lhao Vo"] = "mhx",
["Lhokpu"] = "lhp",
["Li'o"] = "ljl",
["Liabuku"] = "lix",
["Liana-Seti"] = "ste",
["Liberia Kpelle"] = "xpe",
["Liberian Kreyol"] = "lir",
["Libido"] = "liq",
["Libinza"] = "liz",
["Liburni"] = "xli",
["Ligbi"] = "lig",
["Ligenza"] = "lgz",
["Liguria Purba"] = "xlg",
["Ligurian"] = "lij",
["Lihir"] = "lih",
["Lika"] = "lik",
["Liki"] = "lio",
["Likila"] = "lie",
["Likuba"] = "kxx",
["Likum"] = "lib",
["Likwala"] = "kwc",
["Lilau"] = "lll",
["Lillooet"] = "lil",
["Limassa"] = "bme",
["Limba Barat-Tengah"] = "lia",
["Limba Timur"] = "lma",
["Limbu"] = "lif",
["Limbum"] = "lmp",
["Limburg"] = "li",
["Limi"] = "ylm",
["Limilngan"] = "lmc",
["Lindu"] = "klw",
["Linear A"] = "lab",
["Lingala"] = "ln",
["Lingao"] = "onb",
["Lingkhim"] = "lii",
["Lingua Franca Nova"] = "lfn",
["Linngithigh"] = "lnj",
["Lipan"] = "apl",
["Lipo"] = "lpo",
["Lisabata-Nuniali"] = "lcs",
["Lisela"] = "lcl",
["Lish"] = "lsh",
["Lishana Deni"] = "lsd",
["Lishanid Noshan"] = "aij",
["Lishán Didán"] = "trg",
["Lisu"] = "lis",
["Literary Chinese"] = "lzh",
["Lithuania"] = "lt",
["Lithuania Kuno"] = "olt",
["Lithuanian Sign Language"] = "lls",
["Little Swanport"] = "aus-lsw",
["Litzlitz"] = "lzl",
["Livonian"] = "liv",
["Livvi"] = "olo",
["Lizu"] = "sit-liz",
["Lo-Toga"] = "lht",
["Loarki"] = "lrk",
["Lobala"] = "loq",
["Lobi"] = "lob",
["Lodhi"] = "lbm",
["Logba"] = "lgq",
["Logo"] = "log",
["Logol"] = "lof",
["Logooli"] = "rag",
["Logorik"] = "liu",
["Lojban"] = "jbo",
["Lokaa"] = "yaz",
["Loko"] = "lok",
["Lokono"] = "arw",
["Lokoya"] = "lky",
["Lola"] = "lcd",
["Lolak"] = "llq",
["Lole"] = "llg",
["Lolo"] = "llb",
["Lolo Purba"] = "tbq-lol-pro",
["Lolo-Burma Purba"] = "tbq-lob-pro",
["Loloda"] = "loa",
["Lolopo"] = "ycl",
["Lolopo Selatan"] = "ysp",
["Loma"] = "lom",
["Lomaiviti"] = "lmv",
["Lomakka"] = "loi",
["Lomavren"] = "rmi",
["Lombard"] = "lmo",
["Lombi"] = "lmi",
["Lombo"] = "loo",
["Lomwe"] = "ngl",
["Loncong"] = "lce",
["Long Phuri Naga"] = "lpn",
["Long Wat"] = "ttw",
["Longgu"] = "lgu",
["Longjia"] = "sit-lnj",
["Longto"] = "wok",
["Longuda"] = "lnu",
["Loniu"] = "los",
["Lonwolwol"] = "crc",
["Loo"] = "ldo",
["Lopa"] = "lop",
["Lopi"] = "lov",
["Lopit"] = "lpx",
["Lorang"] = "lrn",
["Lorediakarkar"] = "lnn",
["Lorrain"] = "roa-lor",
["Lorung Selatan"] = "lrr",
["Lorung Utara"] = "lbr",
["Lote"] = "uvl",
["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 Sorbian"] = "dsb",
["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",
["Luchazi"] = "lch",
["Lucumí"] = "luq",
["Ludian"] = "lud",
["Lufu"] = "ldq",
["Luganda"] = "lg",
["Lugbara"] = "lgg",
["Luguru"] = "ruf",
["Luhu"] = "lcq",
["Luhya"] = "luy",
["Luimbi"] = "lum",
["Luiseño"] = "lui",
["Luish Purba"] = "sit-luu-pro",
["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",
["Lur Selatan"] = "luz",
["Lur Utara"] = "lrc",
["Luren"] = "sit-lrn",
["Luri (Nigeria)"] = "ldd",
["Lusengo"] = "lse",
["Lushootseed"] = "lut",
["Lusi"] = "khl",
["Lusitania"] = "xls",
["Lutachoni"] = "lts",
["Lutos"] = "ndy",
["Luvale"] = "lue",
["Luwati"] = "luv",
["Luwiya"] = "xlu",
["Luwo"] = "lwo",
["Luxembourg"] = "lb",
["Luyana"] = "lyn",
["Lwalu"] = "lwa",
["Lwel"] = "lvl",
["Lycia"] = "xlc",
["Lydia"] = "xld",
["Lyngngam"] = "lyg",
["Lyélé"] = "lee",
["Láadan"] = "ldn",
["Láá Láá Bwamu"] = "bwj",
["Löyöp"] = "urr",
["Lü"] = "khb",
["Ma"] = "msj",
["Ma Manda"] = "skc",
["Ma'anyan"] = "mhy",
["Ma'di"] = "mhi",
["Ma'di Selatan"] = "snm",
["Ma'ya"] = "slz",
["Maaka"] = "mew",
["Maale"] = "mdy",
["Maasai"] = "mas",
["Maay"] = "ymm",
["Maba"] = "mqa",
["Mabaale"] = "mmz",
["Mabaan"] = "mfz",
["Mabang Bura"] = "mde",
["Mabire"] = "muj",
["Maca"] = "mca",
["Macaguaje"] = "mcl",
["Macaguán"] = "mbn",
["Macanese"] = "mzs",
["Macedonia"] = "mk",
["Macedonia Purba"] = "xmk",
["Machame"] = "jmc",
["Machiguenga"] = "mcb",
["Machinere"] = "mpd",
["Machinga"] = "mvw",
["Macoris"] = "nai-mac",
["Macuna"] = "myy",
["Macushi"] = "mbc",
["Mada (Cameroon)"] = "mxu",
["Mada (Nigeria)"] = "mda",
["Madak"] = "mmx",
["Maden"] = "xmx",
["Madhi Madhi"] = "dmd",
["Madngele"] = "zml",
["Madura"] = "mad",
["Maek"] = "hmk",
["Maeng Itneg"] = "itt",
["Mafa"] = "maf",
["Mag-Anchi Ayta"] = "sgb",
["Mag-Indi Ayta"] = "blx",
["Magahat"] = "mtw",
["Magahi"] = "mag",
["Magar Barat"] = "mrd",
["Magar Timur"] = "mgp",
["Magori"] = "zgr",
["Maguindanao"] = "mdh",
["Mahali"] = "mjx",
["Mahasu Pahari"] = "bfz",
["Mahican"] = "mjy",
["Mahongwe"] = "mhb",
["Mahou"] = "mxx",
["Maia"] = "sks",
["Maiadomu"] = "mzz",
["Maiani"] = "tnh",
["Maidu Barat Laut"] = "mjd",
["Maidu Purba"] = "nai-mdu-pro",
["Maidu Timur Laut"] = "nmu",
["Maii"] = "mmm",
["Mailu"] = "mgu",
["Maindo"] = "cwb",
["Maipure"] = "awd-mpr",
["Mairasi"] = "zrs",
["Maisin"] = "mbq",
["Maithili"] = "mai",
["Maiwa (Indonesia)"] = "wmm",
["Maiwa (New Guinea)"] = "mti",
["Maiwala"] = "mum",
["Majang"] = "mpe",
["Majera"] = "xmj",
["Majhwar"] = "mmj",
["Mak (China)"] = "mkg",
["Mak (Nigeria)"] = "pbl",
["Makaa"] = "mcp",
["Makah"] = "myh",
["Makalero"] = "mjb",
["Makasae"] = "mkz",
["Makassar"] = "mak",
["Makayam"] = "aup",
["Makhuwa"] = "vmw",
["Makhuwa-Marrevone"] = "xmc",
["Makhuwa-Meetto"] = "mgh",
["Makhuwa-Moniga"] = "mhm",
["Makhuwa-Saka"] = "xsq",
["Makhuwa-Shirima"] = "vmk",
["Makian Barat"] = "mqs",
["Maklew"] = "mgf",
["Makolkol"] = "zmh",
["Makonde"] = "kde",
["Maku"] = "xak",
["Maku'a"] = "lva",
["Makuri Naga"] = "jmn",
["Makuráp"] = "mpu",
["Makwe"] = "ymk",
["Makyan Naga"] = "umn",
["Mal"] = "mlf",
["Mal Paharia"] = "mkb",
["Mala (New Guinea)"] = "ped",
["Mala (Nigeria)"] = "ruy",
["Mala Malasar"] = "ima",
["Malagasi"] = "mg",
["Malakula Timur Laut"] = "upv",
["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",
["Malayalam"] = "ml",
["Malayic Dayak"] = "xdy",
["Malaynon"] = "mlz",
["Malba Birifor"] = "bfo",
["Male"] = "mdc",
["Malecite-Passamaquoddy"] = "pqm",
["Maleng"] = "pkt",
["Maleu-Kilenge"] = "mgl",
["Malfaxal"] = "mlx",
["Malgana"] = "vml",
["Malgbe"] = "mxf",
["Malibu"] = "sai-mlb",
["Malila"] = "mgq",
["Malimba"] = "mzd",
["Malimpung"] = "mli",
["Malol"] = "mbk",
["Malta"] = "mt",
["Malvi"] = "mup",
["Mam"] = "mam",
["Mama"] = "mma",
["Mamaa"] = "mhf",
["Mamaindé"] = "wmd",
["Mamanwa"] = "mmn",
["Mamara"] = "myk",
["Mamasa"] = "mqj",
["Mambae"] = "mgm",
["Mambai"] = "mcs",
["Mambila Cameroon"] = "mcu",
["Mambila Nigeria"] = "mzk",
["Mamboru"] = "mvd",
["Mambwe-Lungu"] = "mgr",
["Mampruli"] = "maw",
["Mamuju"] = "mqx",
["Mamulique"] = "emm",
["Mamusi"] = "kdf",
["Mamvu"] = "mdi",
["Man Met"] = "mml",
["Manam"] = "mva",
["Manambu"] = "mle",
["Manangba"] = "nmm",
["Manangkari"] = "znk",
["Manao"] = "awd-man",
["Manchu"] = "mnc",
["Manda (Australia)"] = "zma",
["Manda (India)"] = "mha",
["Manda (Tanzania)"] = "mgs",
["Mandahuaca"] = "mht",
["Mandaia"] = "mid",
["Mandaia Klasik"] = "myz",
["Mandalorian"] = "art-man",
["Mandan"] = "mhq",
["Mandandanyi"] = "zmk",
["Mandar"] = "mdr",
["Mandara"] = "tbf",
["Mandari"] = "mqu",
["Mandarin"] = "cmn",
["Mandaya Karaga"] = "mry",
["Mande Barat Purba"] = "dmn-mdw-pro",
["Mande Purba"] = "dmn-pro",
["Mandeali"] = "mjl",
["Mander"] = "mqr",
["Mandingo"] = "man",
["Mandinka"] = "mnk",
["Mandjak"] = "mfv",
["Mandobo Atas"] = "aax",
["Mandobo Bawah"] = "bwp",
["Manem"] = "jet",
["Mang"] = "zng",
["Mangala"] = "mem",
["Mangarayi"] = "mpc",
["Mangareva"] = "mrv",
["Mangas"] = "zns",
["Mangayat"] = "myj",
["Mangbetu"] = "mdj",
["Mangbetu Purba"] = "csu-maa-pro",
["Mangbutu"] = "mdk",
["Mangerr"] = "zme",
["Mangga Buang"] = "mmo",
["Manggarai"] = "mqy",
["Mangghuer"] = "mjg-mgr",
["Mango"] = "mge",
["Mangole"] = "mqc",
["Mangseng"] = "mbh",
["Mangue"] = "mom",
["Manigri-Kambolé Ede Nago"] = "xkb",
["Maninka Konyanka"] = "mku",
["Maninka Sankaran"] = "msc",
["Maninkakan Barat"] = "mlq",
["Maninkakan Kita"] = "mwk",
["Maninkakan Timur"] = "emk",
["Manipa"] = "mqp",
["Manipur Kuno"] = "omp",
["Manipuri"] = "mni",
["Mankanya"] = "knf",
["Mankiyali"] = "nlm",
["Manna-Dora"] = "mju",
["Mannan"] = "mjv",
["Mano"] = "mev",
["Manobo Agusan"] = "msm",
["Manobo Ata"] = "atd",
["Manobo Bukidnon Barat"] = "mbb",
["Manobo Cinamiguin"] = "mkx",
["Manobo Cotabato"] = "mta",
["Manobo Dibabawon"] = "mbd",
["Manobo Ilianen"] = "mbi",
["Manobo Matigsalug"] = "mbt",
["Manobo Rajah Kabunsuwan"] = "mqk",
["Manobo Sarangani"] = "mbs",
["Manombai"] = "woo",
["Mansaka"] = "msk",
["Mansi Purba"] = "mns-pro",
["Mansi Selatan"] = "mns-sou",
["Mansi Tengah"] = "mns-cen",
["Mansi Utara"] = "mns-nor",
["Mansoanka"] = "msw",
["Manta"] = "myg",
["Mantsi"] = "nty",
["Manusela"] = "wha",
["Manx"] = "gv",
["Manya"] = "mjz",
["Manyawa"] = "mny",
["Manza"] = "mzv",
["Maonan"] = "mmd",
["Mape"] = "mlh",
["Mapena"] = "mnm",
["Mapia"] = "mpy",
["Mapidian"] = "mpw",
["Mapos Buang"] = "bzh",
["Mapoyo"] = "mcg",
["Mapudungun"] = "arn",
["Mapun"] = "sjm",
["Mara"] = "mec",
["Marachi"] = "lri",
["Maraghei"] = "vmh",
["Maragus"] = "mrs",
["Marama"] = "lrm",
["Maranao"] = "mrw",
["Maranungku"] = "zmr",
["Mararit"] = "mgb",
["Marathi"] = "mr",
["Marathi Kuno"] = "omr",
["Maratino"] = "sai-mar",
["Marau"] = "mvr",
["Marawan"] = "awd-mar",
["Marba"] = "mpg",
["Marenje"] = "vmr",
["Marfa"] = "mvu",
["Margany"] = "zmc",
["Marghi Selatan"] = "mfm",
["Margi"] = "mrt",
["Mari (Sepik)"] = "mbx",
["Mari Austronesia"] = "hob",
["Mari Barat"] = "mrj",
["Mari Purba"] = "chm-pro",
["Mari Timur"] = "mhr",
["Maria"] = "mds",
["Maria Bukit"] = "mrr",
["Mariaté"] = "awd-mrt",
["Maricopa"] = "mrc",
["Maridan"] = "zmd",
["Maridjabin"] = "zmj",
["Marik"] = "dad",
["Marimanindji"] = "zmm",
["Marind"] = "mrz",
["Maring"] = "mbw",
["Maringarr"] = "zmt",
["Mariri"] = "mqi",
["Maritsauá"] = "msp",
["Mariyedi"] = "zmy",
["Marka"] = "rkm",
["Markweeta"] = "enb",
["Marma"] = "rmz",
["Marovo"] = "mvo",
["Marquesas Selatan"] = "mqm",
["Marquesas Utara"] = "mrq",
["Marrgu"] = "mhg",
["Marriammu"] = "xru",
["Marrithiyel"] = "mfr",
["Marrucinian"] = "umc",
["Marshall"] = "mh",
["Marsian"] = "ims",
["Marti Ke"] = "zmg",
["Martu Wangka"] = "mpj",
["Martuthunira"] = "vma",
["Marwari"] = "mwr",
["Marúbo"] = "mzr",
["Masa Purba"] = "cdc-mas-pro",
["Masaba"] = "myx",
["Masadiit Itneg"] = "tis",
["Masakará"] = "sai-msk",
["Masalit"] = "mls",
["Masana"] = "mcn",
["Masbate Sorsogon"] = "bks",
["Masbatenyo"] = "msb",
["Masela Barat"] = "mss",
["Masela Tengah"] = "mxz",
["Masela Timur"] = "vme",
["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",
["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",
["Mauwake"] = "mhl",
["Mav̋ea"] = "mkv",
["Mawa"] = "mcw",
["Mawak"] = "mjj",
["Mawan"] = "mcz",
["Mawayana"] = "mzx",
["Mawchi"] = "mke",
["Mawes"] = "mgk",
["Maxakalí"] = "mbl",
["Maxi Gbe"] = "mxl",
["Maya Epigrafi"] = "emy",
["Maya Mopan"] = "mop",
["Maya Purba"] = "myn-pro",
["Maya Samo"] = "sym",
["Maya Yucatec"] = "yua",
["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",
["Mazahua Michoacán"] = "mmc",
["Mazahua Tengah"] = "maz",
["Mazaltepec Zapotec"] = "zpy",
["Mazanderani"] = "mzn",
["Mazatec Chiquihuitlán"] = "maq",
["Mazatec Huautla"] = "mau",
["Mazatec Ixcatlán"] = "mzi",
["Mazatec Jalapa de Díaz"] = "maj",
["Mazatec Purba"] = "omq-maz-pro",
["Mazatec San Jerónimo Tecóatl"] = "maa",
["Mazatec Soyaltepec"] = "vmp",
["Mazatlán Mazatec"] = "vmz",
["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",
["Mbembe Cross River"] = "mfn",
["Mbembe Tigon"] = "nza",
["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",
["Me'en"] = "mym",
["Mebu"] = "mjn",
["Medebur"] = "mjm",
["Medefaidrin"] = "dmf",
["Media Lengua"] = "mue",
["Median Kuno"] = "xme-old",
["Median Pertengahan"] = "xme-mid",
["Medo-Parthia Purba"] = "ira-mpr-pro",
["Medumba"] = "byv",
["Mefele"] = "mfj",
["Megam"] = "mef",
["Megleno-Romania"] = "ruq",
["Mehek"] = "nux",
["Mehináku"] = "mmh",
["Mekeo"] = "mek",
["Mekmek"] = "mvk",
["Mekwei"] = "msf",
["Mekéns"] = "skf",
["Mel-Khaonh"] = "hkn",
["Melanau Daro-Matu"] = "dro",
["Melanau Sibu"] = "sdx",
["Melanau Tengah"] = "mel",
["Melayik Purba"] = "poz-mly-pro",
["Melayu"] = "ms",
["Melayu Ambon"] = "abs",
["Melayu Baba"] = "mbf",
["Melayu Bacan"] = "btj",
["Melayu Bali"] = "mhp",
["Melayu Barisan Selatan"] = "pse",
["Melayu Berau"] = "bve",
["Melayu Brunei"] = "kxd",
["Melayu Bukit"] = "bvu",
["Melayu Cheti"] = "ccm",
["Melayu Cocos"] = "coa",
["Melayu Jambi"] = "jax",
["Melayu Kedah"] = "meo",
["Melayu Kupang"] = "mkn",
["Melayu Kutai Kota Bangun"] = "mqg",
["Melayu Larantuka"] = "lrt",
["Melayu Makassar"] = "mfp",
["Melayu Maluku Utara"] = "max",
["Melayu Manado"] = "xmm",
["Melayu Negeri Sembilan"] = "zmi",
["Melayu Patani"] = "mfa",
["Melayu Sabah"] = "msi",
["Melayu Sarawak"] = "poz-sml",
["Melayu Sri Lanka"] = "sci",
["Melayu Terengganu"] = "poz-ter",
["Melayu-Chamik Purba"] = "poz-mcm-pro",
["Melayu-Polinesia Purba"] = "poz-pro",
["Melayu-Polinesia Tengah-Timur Purba"] = "poz-cet-pro",
["Melayu-Polinesia Timur Purba"] = "pqe-pro",
["Melayu-Sumbawa Purba"] = "poz-msa-pro",
["Mele-Fila"] = "mxe",
["Melo"] = "mfx",
["Melpa"] = "med",
["Memoni"] = "mby",
["Mendankwe-Nkwen"] = "mfd",
["Mende (Sierra Leone)"] = "men",
["Mengaka"] = "xmg",
["Mengen"] = "mee",
["Menien"] = "sai-men",
["Menka"] = "mea",
["Menominee"] = "mez",
["Mentawai"] = "mwv",
["Menya"] = "mcr",
["Meohang Barat"] = "raf",
["Meohang Timur"] = "emg",
["Meoswar"] = "mvx",
["Mer"] = "mnu",
["Meramera"] = "mxm",
["Merei"] = "lmb",
["Merey"] = "meq",
["Meriam"] = "ulk",
["Meroe"] = "xmr",
["Meru"] = "mer",
["Mesaka"] = "iyo",
["Mese"] = "mci",
["Mesir Demotik"] = "egx-dem",
["Mesir Purba"] = "egy",
["Mesme"] = "zim",
["Mesmes"] = "mys",
["Mesqan"] = "mvz",
["Messapic"] = "cms",
["Meta'"] = "mgo",
["Mewari"] = "mtr",
["Mewati"] = "wtm",
["Meyah"] = "mej",
["Mezontla Popoloca"] = "pbe",
["Meänkieli"] = "fit",
["Mfinu"] = "zmf",
["Mfumte"] = "nfu",
["Mi'kmaq"] = "mic",
["Miami"] = "mia",
["Mian"] = "mpt",
["Miani"] = "pla",
["Miao Qiandong Selatan"] = "hms",
["Miao Qiandong Timur"] = "hmq",
["Miao Qiandong Utara"] = "hea",
["Miao Xiangxi Barat"] = "mmr",
["Miao Xiangxi Timur"] = "muq",
["Michif"] = "crg",
["Michigamea"] = "cmm",
["Mid Grand Valley Dani"] = "dnt",
["Mid-Southern Banda"] = "bjo",
["Midob"] = "mei",
["Mienik Purba"] = "hmx-mie-pro",
["Migaama"] = "mmy",
["Migabac"] = "mpp",
["Miji"] = "sjl",
["Miju"] = "mxj",
["Mikasuki"] = "mik",
["Mikronesia Purba"] = "poz-mic-pro",
["Milang"] = "tbq-mil",
["Mili"] = "ymh",
["Millcayac"] = "sai-mil",
["Miltu"] = "mlj",
["Miluk"] = "iml",
["Milyan"] = "imy",
["Mimi Decorse"] = "mis-mmd",
["Mimi Nachtigal"] = "mis-mmn",
["Min Datian"] = "nan-dat",
["Min Hailufeng"] = "nan-hlh",
["Min Longyan"] = "nan-lnx",
["Min Nan"] = "nan",
["Min Purba"] = "zhx-min-pro",
["Min Puxian"] = "cpx",
["Min Sanxiang"] = "nan-zsh",
["Min Tengah"] = "czo",
["Min Timur"] = "cdo",
["Min Utara"] = "mnp",
["Min Zhenan"] = "nan-zhe",
["Mina"] = "hna",
["Minaean"] = "inm",
["Minang"] = "xrg",
["Minangkabau"] = "min",
["Minaveha"] = "mvn",
["Minderico"] = "drc",
["Mindiri"] = "mpn",
["Mingang Doso"] = "mko",
["Mingo"] = "iro-min",
["Mingrelia"] = "xmf",
["Minica Huitoto"] = "hto",
["Minidien"] = "wii",
["Minigir"] = "vmg",
["Minjungbal"] = "xjb",
["Minkin"] = "xxm",
["Minoan"] = "omn",
["Minokok"] = "mqq",
["Minriq"] = "mnq",
["Mintil"] = "mzt",
["Miqie"] = "yiq",
["Mirandese"] = "mwl",
["Mire"] = "mvh",
["Mirgan"] = "zrg",
["Miriti"] = "mmv",
["Miriwoong"] = "mep",
["Mirpur Panjabi"] = "pmu",
["Misantla Totonac"] = "tlc",
["Miship"] = "mjs",
["Misima-Paneati"] = "mpx",
["Mising"] = "mrg",
["Miskito"] = "miq",
["Mittu"] = "mwu",
["Mituku"] = "zmq",
["Miu"] = "mpo",
["Miwa"] = "vmi",
["Miwok Pesisir"] = "csi",
["Miwok Sierra Selatan"] = "skd",
["Miwok Sierra Tengah"] = "csm",
["Miwok Sierra Utara"] = "nsq",
["Miwok Teluk"] = "mkq",
["Mixe Coatlán"] = "mco",
["Mixe Juquila"] = "mxq",
["Mixe Mazatlán"] = "mzl",
["Mixe Tanah Genting"] = "mir",
["Mixe Tengah Utara"] = "neq",
["Mixe Tlahuitoltepec"] = "mxp",
["Mixe Totontepec"] = "mto",
["Mixe-Zoque Purba"] = "nai-miz-pro",
["Mixifore"] = "mfg",
["Mixtec Alacatlatzala"] = "mim",
["Mixtec Amoltepec"] = "mbz",
["Mixtec Apasco-Apoala"] = "mip",
["Mixtec Atatláhuca"] = "mib",
["Mixtec Ayutla"] = "miy",
["Mixtec Cacaloxtepec"] = "miu",
["Mixtec Chayuco"] = "mih",
["Mixtec Chigmecatitlán"] = "mii",
["Mixtec Coatzospan"] = "miz",
["Mixtec Cuyamecalco"] = "xtu",
["Mixtec Huitepec"] = "mxs",
["Mixtec Itundujia"] = "mce",
["Mixtec Ixtayutla"] = "vmj",
["Mixtec Jamiltepec"] = "mxt",
["Mixtec Juxtlahuaca"] = "vmc",
["Mixtec Magdalena Peñasco"] = "xtm",
["Mixtec Metlatónoc"] = "mxv",
["Mixtec Mitlatongo"] = "vmm",
["Mixtec Mixtepec"] = "mix",
["Mixtec Nochixtlán Tenggara"] = "mxy",
["Mixtec Oaxaca Barat Laut"] = "mxa",
["Mixtec Ocotepec"] = "mie",
["Mixtec Peñoles"] = "mil",
["Mixtec Pinotepa Nacional"] = "mio",
["Mixtec Puebla Selatan"] = "mit",
["Mixtec Purba"] = "omq-mxt-pro",
["Mixtec San Juan Colorado"] = "mjc",
["Mixtec San Miguel Piedras"] = "xtp",
["Mixtec San Miguel el Grande"] = "mig",
["Mixtec Santa Lucía Monteverde"] = "mdv",
["Mixtec Santa María Zacatepec"] = "mza",
["Mixtec Silacayoapan"] = "mks",
["Mixtec Sindihui"] = "xts",
["Mixtec Soyaltepec"] = "vmq",
["Mixtec Tacahua"] = "xtt",
["Mixtec Teposcolula"] = "omq-tel",
["Mixtec Tezoatlán"] = "mxb",
["Mixtec Tidaá"] = "mtx",
["Mixtec Tlaxiaco Barat Daya"] = "meh",
["Mixtec Tlaxiaco Utara"] = "xtn",
["Mixtec Tlazoyaltepec"] = "mqh",
["Mixtec Tututepec"] = "mtu",
["Mixtec Yoloxochitl"] = "xty",
["Mixtec Yosondúa"] = "mpm",
["Mixtec Yucuañe"] = "mvg",
["Mixtec Yutanduchi"] = "mab",
["Mixtecan Purba"] = "omq-mix-pro",
["Mixtepec Zapotec"] = "zpm",
["Miya"] = "mkf",
["Miyako"] = "mvi",
["Miyobe"] = "soy",
["Mizo"] = "lus",
["Mlabri"] = "mra",
["Mlahsö"] = "lhs",
["Mlap"] = "kja",
["Mlomp"] = "mlo",
["Mmaala"] = "mmu",
["Mmani"] = "buy",
["Mmen"] = "bfm",
["Mnong Selatan"] = "mnn",
["Mnong Tengah"] = "cmo",
["Mnong Timur"] = "mng",
["Mo"] = "wkd",
["Moabite"] = "obm",
["Moba"] = "mfq",
["Mobilia"] = "mod",
["Mobu"] = "ahm",
["Mocana"] = "sai-mcn",
["Mochi"] = "old",
["Mochica"] = "omc",
["Mocho"] = "mhc",
["Mocoví"] = "moc",
["Modang"] = "mxd",
["Modole"] = "mqo",
["Moere"] = "mvq",
["Mofu Utara"] = "mfk",
["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",
["Mokil"] = "mkj",
["Moklen"] = "mkm",
["Mokole"] = "mkl",
["Mokpwe"] = "bri",
["Moksha"] = "mdf",
["Molale"] = "mbe",
["Molbog"] = "pwm",
["Moldova Sign Language"] = "vsi",
["Molengue"] = "bxc",
["Molima"] = "mox",
["Molo"] = "zmo",
["Molof"] = "msl",
["Moloko"] = "mlw",
["Mom Jango"] = "ver",
["Moma"] = "myl",
["Momare"] = "msz",
["Mombo Dogon"] = "dmb",
["Mombum"] = "mso",
["Momina"] = "mmb",
["Momuna"] = "mqf",
["Mon"] = "mnw",
["Mon Kuno"] = "omx",
["Mon Pertengahan"] = "mkh-mmn",
["Mon Thailand"] = "mnw-tha",
["Mon Yangum"] = "ymo",
["Mon-Khmer Purba"] = "mkh-pro",
["Mondropolon"] = "npn",
["Mondé"] = "mnd",
["Mongghul"] = "mjg-mgl",
["Mongo"] = "lol",
["Mongol Khamnigan"] = "ykh",
["Mongol Klasik"] = "cmg",
["Mongol Pertengahan"] = "xng",
["Mongolia"] = "mn",
["Mongolia Purba"] = "xgn-pro",
["Mongondow"] = "mog",
["Moni"] = "mnz",
["Monik Purba"] = "mkh-mnc-pro",
["Mono (California)"] = "mnr",
["Mono (Cameroon)"] = "mru",
["Mono (Congo)"] = "mnh",
["Monom"] = "moo",
["Monpa Kalaktang"] = "kkf",
["Montagnais"] = "moe",
["Montol"] = "mtl",
["Monumbo"] = "mxk",
["Monzombo"] = "moj",
["Moo"] = "gwg",
["Mor (Austronesia)"] = "mhz",
["Mor (Papua)"] = "moq",
["Moraid"] = "msg",
["Moran"] = "tbq-mor",
["Morawa"] = "mze",
["Mordvinik Purba"] = "urj-mdv-pro",
["Morerebi"] = "xmo",
["Moresada"] = "msx",
["Mori Atas"] = "mzq",
["Mori Bawah"] = "xmz",
["Morigi"] = "mdb",
["Moro"] = "mor",
["Morokodo"] = "mgc",
["Morom"] = "bdo",
["Moronene"] = "mqn",
["Morori"] = "mok",
["Morouas"] = "mrp",
["Mortlock"] = "mrl",
["Moru"] = "mgd",
["Mosimo"] = "mqv",
["Moskona"] = "mtj",
["Mossi"] = "mos",
["Mota"] = "mtt",
["Motembo"] = "tmv",
["Motu"] = "meu",
["Mouk-Aria"] = "mwh",
["Mouwase"] = "jmw",
["Movima"] = "mzp",
["Moyadan Itneg"] = "ity",
["Mozarab"] = "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",
["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",
["Muji Qila"] = "ymq",
["Muji Selatan"] = "ymc",
["Muji Utara"] = "ymx",
["Mukha-Dora"] = "mmk",
["Mukulu"] = "moz",
["Mulaha"] = "mfw",
["Mulam"] = "mlm",
["Mullu Kurumba"] = "kpb",
["Mullukmulluk"] = "mpb",
["Muluridyi"] = "vmu",
["Mum"] = "kqa",
["Mumuye"] = "mzm",
["Mumuye Purba"] = "alv-mum-pro",
["Muna"] = "mnb",
["Munda"] = "unx",
["Munda Purba"] = "mun-pro",
["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",
["Munji-Yidgha Purba"] = "ira-mny-pro",
["Munsee"] = "umu",
["Muong"] = "mtq",
["Mur Pano"] = "tkv",
["Muratayak"] = "asx",
["Muria Barat"] = "mut",
["Muria Barat Jauh"] = "fmu",
["Muria Timur"] = "emu",
["Murik (Malaysia)"] = "mxr",
["Murik (New Guinea)"] = "mtf",
["Murkim"] = "rmh",
["Murle"] = "mur",
["Murrinh-Patha"] = "mwf",
["Mursi"] = "muz",
["Murui Huitoto"] = "huu",
["Murupi"] = "mqw",
["Murut Keningau"] = "kxi",
["Murut Serudung"] = "srk",
["Murut Timugon"] = "tih",
["Muruwari"] = "zmu",
["Musan"] = "mmp",
["Musasa"] = "smm",
["Musey"] = "mse",
["Musgu"] = "mug",
["Musi"] = "mui",
["Muskogi Purba"] = "nai-mus-pro",
["Muskum"] = "mje",
["Musom"] = "msu",
["Mussau-Emira"] = "emi",
["Muthuvan"] = "muv",
["Mutu"] = "tuc",
["Muya"] = "mvm",
["Muyang"] = "muy",
["Muyu Selatan"] = "kts",
["Muyu Utara"] = "kti",
["Muyuw"] = "myw",
["Muzi"] = "ymz",
["Muzo"] = "sai-muz",
["Mvanip"] = "mcj",
["Mvuba"] = "mxh",
["Mwaghavul"] = "sur",
["Mwakai"] = "mgt",
["Mwali Comorian"] = "wlc",
["Mwan"] = "moa",
["Mwani"] = "wmw",
["Mwatebu"] = "mwa",
["Mwera"] = "mwe",
["Mwerlap"] = "mrm",
["Mwimbi-Muthambi"] = "mws",
["Mwotlap"] = "mlv",
["Myene"] = "mye",
["Mysian"] = "yms",
["Mòcheno"] = "mhn",
["Mün Chin"] = "mwq",
["Mündü"] = "muh",
["Māori"] = "mi",
["Mạ"] = "cma",
["N'Ko"] = "nqo",
["Na"] = "nbt",
["Na-Dene Purba"] = "xnd-pro",
["Naaba"] = "nao",
["Naba"] = "mne",
["Nabak"] = "naf",
["Nabi"] = "mty",
["Nachering"] = "ncd",
["Nadruvia"] = "ndf",
["Nadëb"] = "mbj",
["Nafaanra"] = "nfr",
["Nafi"] = "srf",
["Nafri"] = "nxx",
["Naga Chokri"] = "nri",
["Naga Chothe"] = "nct",
["Naga Inpui"] = "nkf",
["Naga Khezha"] = "nkh",
["Naga Khiamniungan"] = "kix",
["Naga Khoibu"] = "nkb",
["Naga Konyak"] = "nbe",
["Naga Kyan-Karyaw"] = "nqq",
["Naga Lao"] = "nlq",
["Naga Liangmai"] = "njn",
["Naga Lotha"] = "njh",
["Naga Mao"] = "nbi",
["Naga Maram"] = "nma",
["Naga Maring"] = "nng",
["Naga Monsang"] = "nmh",
["Naga Moyon"] = "nmo",
["Naga Mzieme"] = "nme",
["Naga Pochuri"] = "npo",
["Naga Puimei"] = "npu",
["Naga Rengma Selatan"] = "nre",
["Naga Rengma Utara"] = "nnl",
["Naga Rongmei"] = "nbu",
["Naga Sangtam"] = "nsa",
["Naga Tangkhul"] = "nmf",
["Naga Tengah Purba"] = "sit-aao-pro",
["Naga Thangal"] = "nki",
["Naga Utara Purba"] = "sit-kon-pro",
["Naga Zeme"] = "nzm",
["Nagarchal"] = "nbg",
["Nage"] = "nxe",
["Nagu"] = "ngr",
["Nagumi"] = "ngv",
["Nahali"] = "nlx",
["Nahari"] = "nhh",
["Nahavaq"] = "sns",
["Nahua Purba"] = "azc-nah-pro",
["Nahuatl"] = "nah",
["Nahuatl Coatepec"] = "naz",
["Nahuatl Cosoleacaque"] = "nhk",
["Nahuatl Durango Barat"] = "azn",
["Nahuatl Durango Timur"] = "azd",
["Nahuatl Guerrero"] = "ngu",
["Nahuatl Huasteca Barat"] = "nhw",
["Nahuatl Huasteca Tengah"] = "nch",
["Nahuatl Huasteca Timur"] = "nhe",
["Nahuatl Huaxcaleca"] = "nhq",
["Nahuatl Klasik"] = "nci",
["Nahuatl Mecayapan"] = "nhx",
["Nahuatl Michoacán"] = "ncl",
["Nahuatl Morelos"] = "nhm",
["Nahuatl Oaxaca Utara"] = "nhy",
["Nahuatl Ometepec"] = "nht",
["Nahuatl Orizaba"] = "nlv",
["Nahuatl Pajapan"] = "nhp",
["Nahuatl Puebla Tanah Tinggi"] = "azz",
["Nahuatl Puebla Tengah"] = "ncx",
["Nahuatl Puebla Tenggara"] = "npl",
["Nahuatl Puebla Utara"] = "ncj",
["Nahuatl Santa María La Alta"] = "nhz",
["Nahuatl Sierra Negra"] = "nsu",
["Nahuatl Tabasco"] = "nhc",
["Nahuatl Temascaltepec"] = "nhv",
["Nahuatl Tengah"] = "nhn",
["Nahuatl Tetelcingo"] = "nhg",
["Nahuatl Tlamacazapa"] = "nuz",
["Nahuatl Zacatlán-Ahuacatlán-Tepetzintla"] = "nhi",
["Nai"] = "bio",
["Naish Purba"] = "sit-nas-pro",
["Naka'ela"] = "nae",
["Nakai"] = "nkj",
["Nakame"] = "nib",
["Nakanai"] = "nak",
["Nakara"] = "nck",
["Nake"] = "nbk",
["Nakh Purba"] = "cau-nkh-pro",
["Naki"] = "mff",
["Nakwi"] = "nax",
["Nalca"] = "nlc",
["Nali"] = "nss",
["Nalik"] = "nal",
["Nalu"] = "naj",
["Nalögo"] = "nlz",
["Nama"] = "nmx",
["Namakura"] = "nmk",
["Namat"] = "nkm",
["Nambikwara"] = "nab",
["Nambo"] = "ncm",
["Nambya"] = "nmq",
["Namia"] = "nnm",
["Namiae"] = "nvm",
["Namla"] = "naa",
["Namo"] = "mxw",
["Namonuito"] = "nmt",
["Namosi-Naitasiri-Serua"] = "bwb",
["Namuyi"] = "nmy",
["Nancere"] = "nnc",
["Nande"] = "nnb",
["Nandi"] = "niq",
["Nanerigé Sénoufo"] = "sen",
["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",
["Nauru"] = "na",
["Navajo"] = "nv",
["Navarro-Aragon Kuno"] = "roa-ona",
["Navut"] = "nsw",
["Nawaru"] = "nwr",
["Nawathinehena"] = "nwa",
["Nawdm"] = "nmz",
["Nawiki Purba"] = "awd-nwk-pro",
["Nawuri"] = "naw",
["Naxi"] = "nxq",
["Nayi"] = "noz",
["Naʼvi"] = "art-nav",
["Ncane"] = "ncr",
["Nchumbulu"] = "nlu",
["Nda'nda'"] = "nnz",
["Ndaka"] = "ndk",
["Ndali"] = "ndh",
["Ndam"] = "ndm",
["Ndamba"] = "ndj",
["Ndambomo"] = "nxo",
["Ndasa"] = "nda",
["Ndau"] = "ndc",
["Nde-Gbite"] = "ned",
["Nde-Nsele-Nta"] = "ndd",
["Ndebele Selatan"] = "nr",
["Ndebele Utara"] = "nd",
["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",
["Ndzwani Comorian"] = "wni",
["Neapolit"] = "nap",
["Nedebang"] = "nec",
["Nefamese"] = "nef",
["Nefusa"] = "jbn",
["Negerhollands"] = "dcr",
["Negidal"] = "neg",
["Nehan"] = "nsn",
["Nek"] = "nif",
["Nekgini"] = "nkg",
["Neko"] = "nej",
["Neku"] = "nek",
["Neme"] = "nex",
["Nemi"] = "nem",
["Nen"] = "nqn",
["Nend"] = "anh",
["Nenets Hutan"] = "yrk-for",
["Nenets Tundra"] = "yrk",
["Nengone"] = "nen",
["Neo"] = "neu",
["Neo-Aram Bohtan"] = "bhn",
["Neo-Aramia Assyria"] = "aii",
["Neo-Aramia Barat"] = "amw",
["Nepal"] = "ne",
["Nepal Kurux"] = "kxl",
["Nese"] = "poz-nes",
["Nete"] = "net",
["Neve'ei"] = "vnm",
["Neverver"] = "lgk",
["New Caledonian Javanese"] = "jas",
["New South Wales Tengah Purba"] = "aus-cww-pro",
["Newar"] = "new",
["Newar Klasik"] = "nwc",
["Newar Pertengahan"] = "nwx",
["Neyo"] = "ney",
["Nez Perce"] = "nez",
["Nga La"] = "hlt",
["Ngaanyatjarra"] = "ntj",
["Ngad'a Timur"] = "nea",
["Ngadha"] = "nxg",
["Ngadjunmaya"] = "nju",
["Ngadjuri"] = "jui",
["Ngaiawang"] = "nwg",
["Ngaing"] = "nnf",
["Ngaju"] = "nij",
["Ngala"] = "nud",
["Ngalakan"] = "nig",
["Ngalkbun"] = "ngk",
["Ngalum"] = "szb",
["Ngam"] = "nmc",
["Ngamambo"] = "nbv",
["Ngambay"] = "sba",
["Ngamini"] = "nmv",
["Ngamo"] = "nbh",
["Ngan'gityemerri"] = "nam",
["Nganakarti"] = "xnk",
["Nganasan"] = "nio",
["Ngandi"] = "nid",
["Ngando (Congo)"] = "nxd",
["Ngando (Republik Afrika Tengah)"] = "ngd",
["Ngandyera"] = "nne",
["Ngantangarra"] = "ntg",
["Nganyaywana"] = "nyx",
["Ngardi"] = "rxd",
["Ngarigu"] = "xni",
["Ngarinman"] = "nbj",
["Ngarinyin"] = "ung",
["Ngarla"] = "nrk",
["Ngarluma"] = "nrl",
["Ngarrindjeri"] = "nay",
["Ngas"] = "anc",
["Ngasa"] = "nsg",
["Ngawun"] = "nxn",
["Ngbaka"] = "nga",
["Ngbaka Ma'bo"] = "nbm",
["Ngbaka Manza"] = "ngg",
["Ngbandi Selatan"] = "nbw",
["Ngbandi Utara"] = "ngb",
["Ngbee"] = "jgb",
["Ngbinda"] = "nbd",
["Ngbundu"] = "nuu",
["Ngelima"] = "agh",
["Ngemba"] = "nge",
["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 (Congo)"] = "ngc",
["Ngombe (Republik Afrika Tengah)"] = "nmj",
["Ngong"] = "nnx",
["Ngongo"] = "noq",
["Ngoni"] = "ngo",
["Ngoreme"] = "ngq",
["Ngoshie"] = "nsh",
["Ngulu"] = "ngp",
["Nguluwan"] = "nuw",
["Ngumbi"] = "nui",
["Ngunawal"] = "xul",
["Ngundi"] = "ndn",
["Ngundu"] = "nue",
["Ngungwel"] = "ngz",
["Nguni Purba"] = "bnt-ngu-pro",
["Ngurmbur"] = "nrx",
["Nguôn"] = "nuo",
["Ngwaba"] = "ngw",
["Ngwe"] = "nwe",
["Ngwi"] = "nlo",
["Ngwo"] = "ngn",
["Ngäbere"] = "gym",
["Nhanda"] = "nha",
["Nheengatu"] = "yrl",
["Nhirrpi"] = "hrp",
["Nhuwala"] = "nhf",
["Nias"] = "nia",
["Nicobar Purba"] = "aav-nic-pro",
["Nicobar Selatan"] = "nik",
["Nicobar Tengah"] = "ncb",
["Nicola"] = "ath-nic",
["Nicoleño"] = "azc-nic",
["Niellim"] = "nie",
["Niger-Congo Purba"] = "nic-pro",
["Nihali"] = "nll",
["Nii"] = "nii",
["Nila"] = "nil",
["Nilamba"] = "nim",
["Nilo-Sahara Purba"] = "ssa-pro",
["Nilotik Purba"] = "sdv-nil-pro",
["Nimadi"] = "noe",
["Nimanbur"] = "nmp",
["Nimbari"] = "nmr",
["Nimboran"] = "nir",
["Nimi"] = "nis",
["Nimo"] = "niw",
["Nimoa"] = "nmw",
["Ninam"] = "shb",
["Nindi"] = "nxi",
["Ningera"] = "nby",
["Ninggerum"] = "nxr",
["Ningil"] = "niz",
["Ninzo"] = "nin",
["Nipsan"] = "nps",
["Nisa"] = "njs",
["Nisenan"] = "nsz",
["Nisga'a"] = "ncg",
["Nisi"] = "yso",
["Nisu Barat Laut"] = "nsf",
["Nisu Selatan"] = "nsd",
["Nisu Timur"] = "nos",
["Nisu Utara"] = "yiv",
["Niuafo'ou"] = "num",
["Niuatoputapu"] = "nkp",
["Niue"] = "niu",
["Nivaclé"] = "cag",
["Nivkh"] = "niv",
["Niwer Mil"] = "hrc",
["Njalgulgule"] = "njl",
["Njebi"] = "nzb",
["Njen"] = "njj",
["Njerep"] = "njr",
["Njyem"] = "njy",
["Nkami"] = "nkq",
["Nkangala"] = "nkn",
["Nkari"] = "nkz",
["Nkem-Nkum"] = "isi",
["Nkhumbi"] = "khu",
["Nkongho"] = "nkc",
["Nkonya"] = "nko",
["Nkoroo"] = "nkx",
["Nkoya"] = "nka",
["Nkukoli"] = "nbo",
["Nkutu"] = "nkw",
["Nnam"] = "nbp",
["Nobiin"] = "fia",
["Nocte"] = "njb",
["Nogai"] = "nog",
["Noipä"] = "npx",
["Noiri"] = "noi",
["Nokuku"] = "nkk",
["Nomaande"] = "lem",
["Nomane"] = "nof",
["Nomatsiguenga"] = "not",
["Nomlaki"] = "nol",
["Nomu"] = "noh",
["Nong Zhuang"] = "zhn",
["Nonuya"] = "noj",
["Nooksack"] = "nok",
["Noon"] = "snf",
["Noone"] = "nhu",
["Nootka"] = "nuk",
["Nopala Chatino"] = "cya",
["Noric"] = "nrc",
["Norman"] = "nrf",
["Norn"] = "nrn",
["Norra"] = "nrr",
["Norse Kuno"] = "non",
["Norse Purba"] = "gmq-pro",
["Norway"] = "no",
["Norway Pengembara"] = "rmg",
["Norway Pertengahan"] = "gmq-mno",
["Nossob Bawah"] = "nsb",
["Notre"] = "bly",
["Notsi"] = "ncf",
["Nottoway"] = "ntw",
["Nottoway-Meherrin"] = "nwy",
["Novgorod Kuno"] = "zle-ono",
["Novial"] = "nov",
["Noy"] = "noy",
["Nsari"] = "asj",
["Nsenga"] = "nse",
["Nshi"] = "nsc",
["Nsong"] = "soo",
["Nsongo"] = "nsx",
["Ntcham"] = "bud",
["Ntomba"] = "nto",
["Ntra'ngith"] = "dgt",
["Nuaulu Selatan"] = "nxl",
["Nuaulu Utara"] = "nni",
["Nubaca"] = "baf",
["Nubi"] = "kcn",
["Nubia Kuno"] = "onw",
["Nubia Purba"] = "nub-pro",
["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",
["Numee"] = "kdk",
["Numidia"] = "nxm",
["Numik Purba"] = "azc-num-pro",
["Nungali"] = "nug",
["Nunggubuyu"] = "nuy",
["Nungon"] = "paa-nun",
["Nungu"] = "rin",
["Nuni Selatan"] = "nnw",
["Nuni Utara"] = "nuv",
["Nuosu"] = "ii",
["Nupbikha"] = "npb",
["Nupe"] = "nup",
["Nupoid Purba"] = "alv-nup-pro",
["Nuristani Purba"] = "iir-nur-pro",
["Nusa Laut"] = "nul",
["Nusu"] = "nuf",
["Nutabe"] = "cba-nut",
["Nyabwa"] = "nwb",
["Nyagrong Minyag"] = "ero-nya",
["Nyah Kur"] = "cbn",
["Nyaheun"] = "nev",
["Nyakyusa"] = "nyy",
["Nyala Timur"] = "nle",
["Nyali"] = "nlj",
["Nyam"] = "nmi",
["Nyamal"] = "nly",
["Nyambo"] = "now",
["Nyamusa-Molo"] = "nwm",
["Nyamwanga"] = "mwn",
["Nyamwezi"] = "nym",
["Nyaneka"] = "nyk",
["Nyang'i"] = "nyp",
["Nyanga (Congo)"] = "nyj",
["Nyanga (Togo)"] = "ayg",
["Nyanga-li"] = "nyc",
["Nyangatom"] = "nnj",
["Nyangbo"] = "nyb",
["Nyangga"] = "nny",
["Nyangumarta"] = "nna",
["Nyankole"] = "nyn",
["Nyarafolo Senoufo"] = "sev",
["Nyaturu"] = "rim",
["Nyaw"] = "nyw",
["Nyawaygi"] = "nyt",
["Nyemba"] = "nba",
["Nyengo"] = "nye",
["Nyenkha"] = "neh",
["Nyeu"] = "nyl",
["Nyigina"] = "nyh",
["Nyiha"] = "nih",
["Nyika"] = "nkt",
["Nyima Purba"] = "sdv-nyi-pro",
["Nyimang"] = "nyi",
["Nyindrou"] = "lid",
["Nyindu"] = "nyg",
["Nyishi"] = "njz",
["Nyiyaparli"] = "xny",
["Nynorsk Norway"] = "nn",
["Nyokon"] = "nvo",
["Nyole (Kenya)"] = "nyd",
["Nyole (Uganda)"] = "nuj",
["Nyong"] = "muo",
["Nyoro"] = "nyo",
["Nyulnyul"] = "nyv",
["Nyulnyulan Purba"] = "aus-nyu-pro",
["Nyunga"] = "nys",
["Nyungwe"] = "nyu",
["Nyâlayu"] = "yly",
["Nzadi"] = "nzd",
["Nzakambay"] = "nzy",
["Nzakara"] = "nzk",
["Nzanyi"] = "nja",
["Nzima"] = "nzi",
["Ná-Meo"] = "neo",
["Nùng"] = "nut",
["Nüpode Huitoto"] = "hux",
["Nǀuu"] = "ngh",
["O'chi'chi'"] = "xoc",
["O'du"] = "tyh",
["O'odham"] = "ood",
["Obanliku"] = "bzy",
["Obispeño"] = "obi",
["Oblo"] = "obl",
["Obo Manobo"] = "obo",
["Obokuitai"] = "afz",
["Obolo"] = "ann",
["Obulom"] = "obu",
["Ocaina"] = "oca",
["Occitan"] = "oc",
["Occitan Kuno"] = "pro",
["Oceania Purba"] = "poz-oce-pro",
["Od"] = "odk",
["Odia"] = "or",
["Odia Kuno"] = "inc-oor",
["Odia Pertengahan"] = "inc-mor",
["Odiai"] = "bhf",
["Odoodee"] = "kkc",
["Odual"] = "odu",
["Odut"] = "oda",
["Ofayé"] = "opy",
["Ofo"] = "ofo",
["Ogbah"] = "ogc",
["Ogbia"] = "ogb",
["Ogbogolo"] = "ogg",
["Ogbronuagum"] = "ogu",
["Ogea"] = "eri",
["Oghuz Kuno Awal"] = "trk-eog",
["Ogoni Purba"] = "nic-ogo-pro",
["Ohlone Selatan"] = "css",
["Ohlone Utara"] = "cst",
["Oirat Bertulis"] = "xwo",
["Oirata"] = "oia",
["Ojibwa Barat"] = "ojw",
["Ojibwa Barat Laut"] = "ojb",
["Ojibwa Tengah"] = "ojc",
["Ojibwa Timur"] = "ojg",
["Ojibwe"] = "oj",
["Ojitlán Chinantec"] = "chj",
["Okanagan"] = "oka",
["Oki-No-Erabu"] = "okn",
["Okiek"] = "oki",
["Okinawa"] = "ryu",
["Oko-Eni-Osayen"] = "oks",
["Oko-Juwoi"] = "okj",
["Okobo"] = "okb",
["Okodia"] = "okd",
["Okolod"] = "kqv",
["Okpamheri"] = "opa",
["Okpe (Edo Barat Daya)"] = "oke",
["Okpe (Edo Barat Laut)"] = "okx",
["Okpela"] = "atg",
["Oksapmin"] = "opm",
["Oku"] = "oku",
["Okwanuchu"] = "nai-okw",
["Olekha"] = "ole",
["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",
["Omi"] = "omi",
["Omok"] = "omk",
["Omotik"] = "omt",
["Omotik Purba"] = "omv-pro",
["Omurano"] = "omu",
["One Inebu"] = "oin",
["One Molmo"] = "aun",
["One Selatan"] = "osu",
["One Utara"] = "onr",
["Oneida"] = "one",
["Ong"] = "oog",
["Onga Purba"] = "qfa-ong-pro",
["Ongota"] = "bxe",
["Onin"] = "oni",
["Onjob"] = "onj",
["Ono"] = "ons",
["Onobasulu"] = "onn",
["Onondaga"] = "ono",
["Ontenu"] = "ont",
["Oorlams"] = "oor",
["Opao"] = "opo",
["Opata"] = "opt",
["Opuuo"] = "lgn",
["Opón"] = "sai-opo",
["Orang Seletar"] = "ors",
["Oraon Sadri"] = "sdr",
["Orejón"] = "ore",
["Oring"] = "org",
["Oriya Adivasi"] = "ort",
["Orléanais"] = "roa-orl",
["Ormu"] = "orz",
["Ormuri"] = "oru",
["Oro"] = "orx",
["Oro Win"] = "orw",
["Oroch"] = "oac",
["Oroha"] = "ora",
["Orok"] = "oaa",
["Orokaiva"] = "okv",
["Oroko"] = "bdu",
["Orokolo"] = "oro",
["Oromo"] = "om",
["Oroqen"] = "orh",
["Orowe"] = "bpk",
["Oruma"] = "orr",
["Orya"] = "ury",
["Osage"] = "osa",
["Osamayi"] = "syx",
["Osatu"] = "ost",
["Osci"] = "osc",
["Osing"] = "osi",
["Ososo"] = "oso",
["Ossetia"] = "os",
["Ossetia Kuno"] = "oos",
["Ot Danum"] = "otd",
["Otank"] = "uta",
["Oti"] = "oti",
["Oti-Volta Purba"] = "nic-ovo-pro",
["Oti-Volta Timur Purba"] = "nic-eov-pro",
["Oto-Manguean Purba"] = "omq-pro",
["Oto-Pamean Purba"] = "omq-otp-pro",
["Otomaco"] = "sai-oto",
["Otomi Estado de México"] = "ots",
["Otomi Ixtenco"] = "otz",
["Otomi Mezquital"] = "ote",
["Otomi Purba"] = "oto-otm-pro",
["Otomi Querétaro"] = "otq",
["Otomi Tanah Tinggi Timur"] = "otm",
["Otomi Temoaya"] = "ott",
["Otomi Tenango"] = "otn",
["Otomi Texcatepec"] = "otx",
["Otomi Tilapa"] = "otl",
["Otomian Purba"] = "oto-pro",
["Otoro"] = "otr",
["Ottawa"] = "otw",
["Otuke"] = "otu",
["Ouma"] = "oum",
["Oune"] = "oue",
["Owa"] = "stn",
["Owenia"] = "wsr",
["Owiniga"] = "owi",
["Oy"] = "oyb",
["Oya'oya"] = "oyy",
["Oyda"] = "oyd",
["Ozumacín Chinantec"] = "chz",
["Pa"] = "ppt",
["Pa Di"] = "pdi",
["Pa'a"] = "pqa",
["Pa-Hng"] = "pha",
["Paama"] = "pma",
["Paasaal"] = "sig",
["Pacahuara"] = "pcp",
["Pacoh"] = "pac",
["Padoe"] = "pdo",
["Paelignian"] = "pgn",
["Paeonia"] = "ine-pae",
["Pagi"] = "pgi",
["Pagibete"] = "pae",
["Pagu"] = "pgu",
["Pahari-Potwari"] = "phr",
["Paharia Sawriya"] = "mjt",
["Pahi"] = "lgt",
["Pahlavani"] = "phv",
["Pai Tavytera"] = "pta",
["Paicî"] = "pri",
["Paikoneka"] = "awd-pai",
["Paipai"] = "ppi",
["Paite"] = "pck",
["Paiute Utara"] = "pao",
["Paiwan"] = "pwn",
["Pak-Tong"] = "pkg",
["Pakanha"] = "pkn",
["Pakanik Purba"] = "mkh-pkn-pro",
["Paku"] = "pku",
["Pal"] = "abw",
["Palaic"] = "plq",
["Palaka Senoufo"] = "plr",
["Palantla Chinantec"] = "cpa",
["Palau"] = "pau",
["Palaungik Purba"] = "mkh-pal-pro",
["Palawano Barat Daya"] = "plv",
["Palawano Brooke's Point"] = "plw",
["Paleni"] = "pnl",
["Palenquero"] = "pln",
["Pali"] = "pi",
["Palikur"] = "plu",
["Paliyan"] = "pcf",
["Pallanganmiddang"] = "pmd",
["Palor"] = "fap",
["Palta"] = "sai-pal",
["Palu'e"] = "ple",
["Paluan"] = "plz",
["Palya Bareli"] = "bpx",
["Pam"] = "pmn",
["Pama-Nyunga Purba"] = "aus-pam-pro",
["Pambia"] = "pmb",
["Pame Tengah"] = "pbs",
["Pame Utara"] = "pmq",
["Pamigua"] = "sai-pam",
["Pamlico"] = "pmk",
["Pamona"] = "pmf",
["Pamosu"] = "hih",
["Pana (Afrika Barat)"] = "pnq",
["Pana (Afrika Tengah)"] = "pnz",
["Panamint"] = "par",
["Panare"] = "pbh",
["Panará"] = "kre",
["Panasuan"] = "psn",
["Panawa"] = "pwb",
["Pancana"] = "pnp",
["Panchpargania"] = "tdb",
["Pande"] = "bkj",
["Pangasinan"] = "pag",
["Pangseng"] = "pgs",
["Pangutaran Sama"] = "slm",
["Pangwa"] = "pbr",
["Pangwali"] = "pgg",
["Panim"] = "pnr",
["Paniya"] = "pcg",
["Pankararé"] = "pax",
["Pankararú"] = "paz",
["Pankhu"] = "pkh",
["Pannei"] = "pnc",
["Panobo"] = "pno",
["Panyi Bai"] = "bfc",
["Panyjima"] = "pnw",
["Panzaleo"] = "sai-pnz",
["Pao"] = "ppa",
["Papantla Totonac"] = "top",
["Papapana"] = "ppn",
["Papar"] = "dpp",
["Papasena"] = "pas",
["Papel"] = "pbo",
["Papi"] = "ppe",
["Papiamentu"] = "pap",
["Papitalai"] = "pat",
["Papora"] = "ppu",
["Papuan Malay"] = "pmy",
["Papuma"] = "ppm",
["Para Naga"] = "pzn",
["Parachi"] = "prc",
["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",
["Paresi-Waura Purba"] = "awd-prw-pro",
["Parkari Koli"] = "kvx",
["Parsi"] = "fa",
["Parsi Kuno"] = "peo",
["Parsi Pertengahan"] = "pal",
["Parthia"] = "xpr",
["Parya"] = "paq",
["Pashayi Barat Daya"] = "psh",
["Pashayi Tenggara"] = "psi",
["Pashayi Timur Laut"] = "aee",
["Pashto"] = "ps",
["Pasi"] = "psq",
["Pasifik Tengah Purba"] = "poz-pcc-pro",
["Pass Valley Yali"] = "yac",
["Pasé"] = "awd-pas",
["Patagón"] = "sai-ptg",
["Patamona"] = "pbc",
["Patani"] = "ptn",
["Pataxó Hã-Ha-Hãe"] = "pth",
["Patep"] = "ptp",
["Pathan Purba"] = "ira-pat-pro",
["Pathiya"] = "pty",
["Pattani"] = "lae",
["Pattapu"] = "ptq",
["Patwin"] = "pwi",
["Paulohi"] = "plh",
["Paumarí"] = "pad",
["Paunaca"] = "pnk",
["Pauri Bareli"] = "bfb",
["Pauserna"] = "psm",
["Pawaia"] = "pwa",
["Pawnee"] = "paw",
["Payaguá"] = "sai-pyg",
["Paynamar"] = "pmr",
["Pazeh"] = "pzh",
["Pe"] = "pai",
["Pear"] = "pcb",
["Pearik Purba"] = "mkh-pea-pro",
["Peba"] = "sai-peb",
["Pech"] = "pay",
["Pecheneg"] = "xpc",
["Peerapper"] = "xpw",
["Peere"] = "pfe",
["Pei"] = "ppq",
["Pekal"] = "pel",
["Pela"] = "bxd",
["Pele-Ata"] = "ata",
["Pemon"] = "aoc",
["Penan Barat"] = "pne",
["Penan Timur"] = "pez",
["Penchal"] = "pek",
["Pendau"] = "ums",
["Pengo"] = "peg",
["Penobscot"] = "aaq",
["Penrhyn"] = "pnh",
["Pentlatch"] = "ptw",
["Penuti Penara Purba"] = "nai-plp-pro",
["Perai"] = "wet",
["Peranakan Indonesian"] = "pea",
["Perancis"] = "fr",
["Perancis Kreol Karipúna"] = "kmv",
["Perancis Kreol Réunion"] = "rcf",
["Perancis Kreol San Miguel"] = "scf",
["Perancis Kuno"] = "fro",
["Perancis Pertengahan"] = "frm",
["Perema"] = "wom",
["Pericú"] = "nai-per",
["Permik Purba"] = "urj-prm-pro",
["Pero"] = "pip",
["Petapa Zapotec"] = "zpe",
["Petats"] = "pex",
["Petjo"] = "pey",
["Phai"] = "prt",
["Phake"] = "phk",
["Phala"] = "ypa",
["Phalura"] = "phl",
["Phana'"] = "phq",
["Phangduwali"] = "phw",
["Phende"] = "pem",
["Phimbi"] = "phm",
["Phoenicia"] = "phn",
["Phola"] = "ypg",
["Pholo"] = "yip",
["Phom"] = "nph",
["Phong-Kniang"] = "pnx",
["Phrae Pwo"] = "kjt",
["Phrygia"] = "xpg",
["Phu Thai"] = "pht",
["Phuan"] = "phu",
["Phudagi"] = "phd",
["Phuie"] = "pug",
["Phukha"] = "phh",
["Phuma"] = "ypm",
["Phunoi"] = "pho",
["Phuong"] = "phg",
["Phupa"] = "ypp",
["Phupha"] = "yph",
["Phuthi"] = "bnt-phu",
["Phuza"] = "ypz",
["Piamatsina"] = "ptr",
["Piame"] = "pin",
["Piapoco"] = "pio",
["Piaroa"] = "pid",
["Picard"] = "pcd",
["Picene Utara"] = "nrp",
["Picenum Selatan"] = "spx",
["Pichinglis"] = "fpe",
["Pichis Ashéninka"] = "cpu",
["Pict"] = "xpi",
["Picuris"] = "nai-pic",
["Pidgin Delaware"] = "dep",
["Pidgin Iha"] = "ihb",
["Pidgin Naga"] = "nag",
["Pidgin Ndyuka-Trio"] = "njt",
["Pidgin Onin"] = "onx",
["Piemonte"] = "pms",
["Pijao"] = "pij",
["Pije"] = "piz",
["Pijin"] = "pis",
["Pijin Basque-Iceland"] = "crp-bip",
["Pijin Cameroon"] = "wes",
["Pijin Greenland Barat"] = "crp-gep",
["Pijin Jerman Kiautschou"] = "crp-kia",
["Pijin Ladang Samoa"] = "crp-spp",
["Pijin Nigeria"] = "pcm",
["Pijin Portugis Macau"] = "crp-mpp",
["Pijin Rusia Taimyr"] = "crp-tpr",
["Pijin Rusia-China"] = "crp-cpr",
["Pilagá"] = "plg",
["Pileni"] = "piv",
["Pima Bajo"] = "pia",
["Pimbwe"] = "piw",
["Pinai-Hagahai"] = "pnn",
["Pingelapese"] = "pif",
["Pinghua Selatan"] = "csp",
["Pinghua Utara"] = "cnp",
["Pini"] = "pii",
["Pinigura"] = "pnv",
["Pinjarup"] = "pnj",
["Pinji"] = "pic",
["Pintiini"] = "pti",
["Pintupi-Luritja"] = "piu",
["Pinyin"] = "pny",
["Pipil"] = "ppl",
["Pirahã"] = "myp",
["Piratapuyo"] = "pir",
["Pirlatapa"] = "bxi",
["Piro"] = "pie",
["Pirriya"] = "xpa",
["Pisabo"] = "pig",
["Pisaflores Tepehua"] = "tpp",
["Piscataway"] = "psy",
["Pisidia"] = "xps",
["Pitcairn-Norfolk"] = "pih",
["Piti"] = "pcn",
["Pitjantjatjara"] = "pjt",
["Pitta-Pitta"] = "pit",
["Piu"] = "pix",
["Piya-Kwonci"] = "piy",
["Plains Cree"] = "crk",
["Plains Indian Sign Language"] = "psd",
["Plains Miwok"] = "pmw",
["Plapo Krumen"] = "ktj",
["Plateau Purba"] = "nic-plt-pro",
["Plautdietsch"] = "pdt",
["Pnar"] = "pbv",
["Pnar-Khasi-Lyngngam Purba"] = "aav-pkl-pro",
["Pochutec"] = "xpo",
["Podoko"] = "pbi",
["Pogali"] = "hkh",
["Pogolo"] = "poy",
["Pohnpei"] = "pon",
["Poitevin-Saintongeais"] = "roa-poi",
["Pokangá"] = "pok",
["Poke"] = "pof",
["Pol"] = "pmm",
["Polabia"] = "pox",
["Poland"] = "pl",
["Poland Kuno"] = "zlw-opl",
["Polci"] = "plj",
["Polinesia Purba"] = "poz-pol-pro",
["Polinesia Teras Purba"] = "poz-pnp-pro",
["Polinesia Timur Purba"] = "poz-pep-pro",
["Polonombauk"] = "plb",
["Pom"] = "pmo",
["Pomo Purba"] = "nai-pom-pro",
["Pomo Selatan"] = "peq",
["Pomo Tengah"] = "poo",
["Pomo Tenggara"] = "pom",
["Pomo Timur"] = "peb",
["Pomo Timur Laut"] = "pef",
["Pomo Utara"] = "pej",
["Ponam"] = "ncc",
["Pongu"] = "png",
["Ponosakan"] = "pns",
["Ponyo"] = "npg",
["Poqomam"] = "poc",
["Poqomchi'"] = "poh",
["Porohanon"] = "prh",
["Port Sandwich"] = "psw",
["Port Sorell"] = "xpl",
["Port Vato"] = "ptv",
["Portugis"] = "pt",
["Portugis Kreol Korlai"] = "vkp",
["Potawatomi"] = "pot",
["Potiguára"] = "pog",
["Poumei Naga"] = "pmx",
["Pouye"] = "bye",
["Powari"] = "pwr",
["Powhatan"] = "pim",
["Poyanáwa"] = "pyn",
["Pra-Samnit"] = "itc-psa",
["Prakrit"] = "pra",
["Prakrit Ashoka"] = "inc-ash",
["Prakrit Kamarupi"] = "inc-kam",
["Prakrit Niya"] = "pra-niy",
["Prasuni"] = "prn",
["Primitive Irish"] = "pgl",
["Principe"] = "pre",
["Prusia Kuno"] = "prg",
["Psikye"] = "kvj",
["Puare"] = "pux",
["Puebla Mazatec"] = "pbm",
["Puelche"] = "pue",
["Puinave"] = "pui",
["Puiron"] = "sit-prn",
["Pukapukan"] = "pkp",
["Pulabu"] = "pup",
["Pulau Bruny"] = "xpz",
["Pulau Flinders"] = "fln",
["Puluwat"] = "puw",
["Puma"] = "pum",
["Pumi Selatan"] = "pmj",
["Pumi Utara"] = "pmi",
["Pumpokol"] = "xpm",
["Pumé"] = "yae",
["Punan Aput"] = "pud",
["Punan Bah-Biau"] = "pna",
["Punan Batu"] = "pnm",
["Punan Merah"] = "puf",
["Punan Merap"] = "puc",
["Punan Tubu"] = "puj",
["Punik"] = "xpu",
["Punjabi"] = "pa",
["Punjabi Barat"] = "pnb",
["Punjabi Kuno"] = "inc-opa",
["Punu"] = "puu",
["Puoc"] = "puo",
["Puquina"] = "puq",
["Puragi"] = "pru",
["Purari"] = "iar",
["Purepecha"] = "pua",
["Puri"] = "prr",
["Purik"] = "prx",
["Purisimeño"] = "puy",
["Puroik Purba"] = "sit-khp-pro",
["Puruborá"] = "pur",
["Puruhá"] = "sai-prh",
["Purukotó"] = "sai-pur",
["Purum"] = "pub",
["Putai"] = "mfl",
["Putoh"] = "put",
["Putukwam"] = "afe",
["Puyo-Paekche"] = "xpp",
["Puyuma"] = "pyu",
["Pwaamei"] = "pme",
["Pwapwa"] = "pop",
["Pwo Barat"] = "pwo",
["Pwo Timur"] = "kjp",
["Pwo Utara"] = "pww",
["Pyapun"] = "pcw",
["Pye Krumen"] = "pye",
["Pyemmairre"] = "xpb",
["Pyen"] = "pyy",
["Pykobjê"] = "sai-pyk",
["Pyu"] = "pby",
["Páez"] = "pbb",
["Pááfang"] = "pfa",
["Päri"] = "lkr",
["Pémono"] = "pev",
["Pévé"] = "lme",
["Pökoot"] = "pko",
["Q'anjob'al"] = "kjb",
["Q'eqchi"] = "kek",
["Qabiao"] = "laq",
["Qaqet"] = "byx",
["Qatabanian"] = "xqt",
["Qiang Utara"] = "cng",
["Qibti"] = "cop",
["Qimant"] = "ahg",
["Quapaw"] = "qua",
["Quechua"] = "qu",
["Quechua Klasik"] = "qwc",
["Quechua Purba"] = "qwe-pro",
["Quenya"] = "qya",
["Quetzaltepec Mixe"] = "pxm",
["Queyu"] = "qvy",
["Quiavicuzas Zapotec"] = "zpj",
["Quileute"] = "qui",
["Quimbaya"] = "sai-qmb",
["Quinault"] = "qun",
["Quinigua"] = "nai-qng",
["Quinqui"] = "quq",
["Quioquitani-Quierí Zapotec"] = "ztq",
["Quiotepec Chinantec"] = "chq",
["Quiripi"] = "qyp",
["Quitemo"] = "sai-qtm",
["Rabha"] = "rah",
["Rabona"] = "sai-rab",
["Rade"] = "rad",
["Raetic"] = "xrr",
["Raga"] = "lml",
["Rahambuu"] = "raz",
["Rajasthan"] = "raj",
["Rajbanshi"] = "rjs",
["Raji"] = "rji",
["Rajong"] = "rjg",
["Rakahanga-Manihiki"] = "rkh",
["Rakhine"] = "rki",
["Ralte"] = "ral",
["Rama"] = "rma",
["Ramandi"] = "tks",
["Ramanos"] = "sai-ram",
["Ramoaaina"] = "rai",
["Ramopa"] = "kjx",
["Rampi"] = "lje",
["Rana Tharu"] = "thr",
["Rang"] = "rax",
["Rangkas"] = "rgk",
["Ranglong"] = "rnl",
["Rao"] = "rao",
["Rapa"] = "ray",
["Rapa Nui"] = "rap",
["Rapoisi"] = "kyx",
["Rapting"] = "rpt",
["Rara Bakati'"] = "lra",
["Rarotonga"] = "rar",
["Rasawa"] = "rac",
["Ratagnon"] = "btn",
["Ratahan"] = "rth",
["Rathawi"] = "rtw",
["Rathwi Bareli"] = "bgd",
["Raute"] = "rau",
["Ravula"] = "yea",
["Rawa"] = "rwo",
["Rawang"] = "raw",
["Rawat"] = "jnl",
["Rawo"] = "rwa",
["Rayón Zoque"] = "zor",
["Razajerdi"] = "rat",
["Razihi"] = "rzh",
["Reang"] = "ria",
["Reel"] = "atu",
["Rejang"] = "rej",
["Reli"] = "rei",
["Rema"] = "bow",
["Rembarunga"] = "rmb",
["Rembong"] = "reb",
["Remo"] = "rem",
["Rempi"] = "rmp",
["Remun"] = "lkj",
["Rendille"] = "rel",
["Rengao"] = "ren",
["Rennell"] = "mnv",
["Repanbitip"] = "rpn",
["Rer Bare"] = "rer",
["Rerau"] = "rea",
["Rerep"] = "pgk",
["Reshe"] = "res",
["Resígaro"] = "rgr",
["Retta"] = "ret",
["Reyesano"] = "rey",
["Riang"] = "ril",
["Riantana"] = "ran",
["Ribun"] = "rir",
["Rigwe"] = "iri",
["Rikbaktsa"] = "rkb",
["Ringgou"] = "rgu",
["Ririo"] = "rri",
["Ritarungo"] = "rit",
["Riung"] = "riu",
["Riverain Sango"] = "snj",
["Roglai Cacgia"] = "roc",
["Roglai Selatan"] = "rgs",
["Roglai Utara"] = "rog",
["Rogo"] = "rod",
["Rohingya"] = "rhg",
["Roma"] = "rmm",
["Romagnol"] = "rgn",
["Romam"] = "rmx",
["Romani"] = "rom",
["Romani Balkan"] = "rmn",
["Romani Baltik"] = "rml",
["Romani Carpathia"] = "rmc",
["Romani Finland Kalo"] = "rmf",
["Romani Sinte"] = "rmo",
["Romani Vlax"] = "rmy",
["Romani Wales"] = "rmw",
["Romania"] = "ro",
["Romano-Serbia"] = "rsb",
["Romanova"] = "rmv",
["Romansh"] = "rm",
["Romblomanon"] = "rol",
["Rombo"] = "rof",
["Romkun"] = "rmk",
["Ron"] = "cla",
["Ronga"] = "rng",
["Rongga"] = "ror",
["Rongpo"] = "rnp",
["Ronji"] = "roe",
["Roon"] = "rnn",
["Roria"] = "rga",
["Roro"] = "rro",
["Rotokas"] = "roo",
["Rotuma"] = "rtm",
["Rouran"] = "mis-rou",
["Roviana"] = "rug",
["Ruching Palaung"] = "pce",
["Rudbari"] = "rdb",
["Rufiji"] = "rui",
["Ruga"] = "ruh",
["Rukai"] = "dru",
["Rukai Purba"] = "dru-pro",
["Rukiga"] = "cgg",
["Ruma"] = "ruz",
["Rumai Palaung"] = "rbb",
["Rumu"] = "klq",
["Runga"] = "rou",
["Rungtu"] = "rtc",
["Rungus"] = "drg",
["Rungwa"] = "rnw",
["Rusia"] = "ru",
["Russenorsk"] = "crp-rsn",
["Rusyn"] = "rue",
["Rusyn Pannonia"] = "rsk",
["Ruthenia Kuno"] = "zle-ort",
["Rutul"] = "rut",
["Ruuli"] = "ruc",
["Ruwund"] = "rnd",
["Rwa"] = "rwk",
["Rwanda-Rundi"] = "rw",
["Ryukyu Purba"] = "jpx-ryu-pro",
["Sa"] = "sax",
["Sa'a"] = "apb",
["Sa'ban"] = "snv",
["Sa'och"] = "scq",
["Saafi-Saafi"] = "sav",
["Saam"] = "raq",
["Saamia"] = "lsm",
["Saanich"] = "str",
["Saare"] = "uss",
["Saaroa"] = "sxr",
["Saba"] = "saa",
["Sabaean"] = "xsa",
["Sabaki Purba"] = "bnt-sab-pro",
["Sabanê"] = "sae",
["Sabaot"] = "spy",
["Sabine"] = "sbv",
["Sabir"] = "pml",
["Sabu"] = "hvn",
["Sabüm"] = "sbo",
["Sacapulteco"] = "quv",
["Sadri"] = "sck",
["Saek"] = "skb",
["Saep"] = "spd",
["Safait"] = "sem-saf",
["Safaliba"] = "saf",
["Safeyoka"] = "apz",
["Safwa"] = "sbk",
["Sagala"] = "sbm",
["Sagalla"] = "tga",
["Sahaptin"] = "nai-spt",
["Saho"] = "ssy",
["Sahu"] = "saj",
["Saisiyat"] = "xsy",
["Sajau Basap"] = "sjb",
["Saka Purba"] = "xsc-sak-pro",
["Saka-Wakhi Purba"] = "xsc-skw-pro",
["Sakachep"] = "sch",
["Sakam"] = "skm",
["Sakao"] = "sku",
["Sakata"] = "skt",
["Sake"] = "sak",
["Sakizaya"] = "szy",
["Sala"] = "shq",
["Salako"] = "knx",
["Salampasu"] = "slx",
["Salar"] = "slr",
["Salas"] = "sgu",
["Salchuq"] = "slq",
["Saleman"] = "sau",
["Saliba (Colombia)"] = "slc",
["Saliba (New Guinea)"] = "sbe",
["Salinan"] = "sln",
["Salish Montana"] = "fla",
["Salish Puget Sound Selatan"] = "slh",
["Salish Purba"] = "sal-pro",
["Salt-Yui"] = "sll",
["Saluan"] = "loe",
["Salumá"] = "slj",
["Sam"] = "snx",
["Sama"] = "smd",
["Samal"] = "sem-sam",
["Samaritan Aramaic"] = "sam",
["Samarokena"] = "tmj",
["Samatao"] = "ysd",
["Samba"] = "smx",
["Sambal"] = "xsb",
["Sambalpuri"] = "spv",
["Sambe"] = "xab",
["Samberigi"] = "ssx",
["Samburu"] = "saq",
["Samei"] = "smh",
["Sami Akkala"] = "sia",
["Sami Inari"] = "smn",
["Sami Kemi"] = "sjk",
["Sami Kildin"] = "sjd",
["Sami Lule"] = "smj",
["Sami Pite"] = "sje",
["Sami Purba"] = "smi-pro",
["Sami Selatan"] = "sma",
["Sami Skolt"] = "sms",
["Sami Ter"] = "sjt",
["Sami Ume"] = "sju",
["Sami Utara"] = "se",
["Samiah Barat Purba"] = "sem-wes-pro",
["Samiah Purba"] = "sem-pro",
["Samo"] = "smq",
["Samo Selatan"] = "sbd",
["Samoa"] = "sm",
["Samogitia"] = "sgs",
["Samosa"] = "swm",
["Samoyed Purba"] = "syd-pro",
["Sampang"] = "rav",
["Samre"] = "sxm",
["Samtao"] = "stu",
["Samvedi"] = "smv",
["San Agustín Mixtepec Zapotec"] = "ztm",
["San Baltazar Loxicha Zapotec"] = "zpx",
["San Felipe Otlaltepec Popoloca"] = "pow",
["San Juan Atzingo Popoloca"] = "poe",
["San Juan Teita Mixtec"] = "xtj",
["San Luís Temalacayuca Popoloca"] = "pps",
["San Marcos Tlalcoyalco Popoloca"] = "pls",
["San Martín Itunyoso Triqui"] = "trq",
["San Pablo Güilá Zapotec"] = "ztu",
["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",
["Sanglechi-Ishkashimi Purba"] = "ira-sgi-pro",
["Sango"] = "sg",
["Sangu (Gabon)"] = "snq",
["Sangu (Tanzania)"] = "sbp",
["Sani"] = "ysn",
["Sanie"] = "ysy",
["Saniyo-Hiyewe"] = "sny",
["Sansi"] = "ssi",
["Sanskrit"] = "sa",
["Santa Catarina Albarradas Zapotec"] = "ztn",
["Santa Inés Ahuatempan Popoloca"] = "pca",
["Santa Inés Yatzechi Zapotec"] = "zpn",
["Santa María Quiegolani Zapotec"] = "zpi",
["Santa Teresa Cora"] = "cok",
["Santal"] = "sat",
["Santiago Xanica Zapotec"] = "zpr",
["Sanumá"] = "xsu",
["Sapa"] = "tys",
["Saparua"] = "spr",
["Sapará"] = "sai-sap",
["Sapo"] = "krn",
["Saponi"] = "spi",
["Saposa"] = "sps",
["Sapuan"] = "spu",
["Sapé"] = "spc",
["Sar"] = "mwm",
["Sara"] = "sre",
["Sara Kaba"] = "sbz",
["Sara Kaba Deme"] = "kwg",
["Sara Kaba Náà"] = "kwv",
["Sara Purba"] = "csu-sar-pro",
["Saraiki"] = "skr",
["Saramaccan"] = "srm",
["Sarangani Blaan"] = "bps",
["Sarasira"] = "zsa",
["Saraveca"] = "sar",
["Sarawak Utara Purba"] = "poz-swa-pro",
["Sarazi"] = "inc-sar",
["Sardinia"] = "sc",
["Sarikoli"] = "srh",
["Sarli"] = "sdf",
["Sarmatia Purba"] = "xsc-sar-pro",
["Sartang"] = "onp",
["Sarua"] = "swy",
["Sarudu"] = "sdu",
["Saruga"] = "sra",
["Sasak"] = "sas",
["Sasaru"] = "sxs",
["Sassari"] = "sdc",
["Satawal"] = "stw",
["Sateré-Mawé"] = "mav",
["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",
["Saxon Kuno"] = "osx",
["Saxon Transylvania"] = "gmw-tsx",
["Saxwe Gbe"] = "sxw",
["Saya"] = "say",
["Sayula Popoluca"] = "pos",
["Scanian"] = "gmq-scy",
["Schwaben Szatmár"] = "gmw-stm",
["Scots"] = "sco",
["Scots Pertengahan"] = "gmw-msc",
["Scythia Purba"] = "xsc-pro",
["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",
["Selkup Purba"] = "sel-pro",
["Selkup Selatan"] = "sel-sou",
["Selkup Utara"] = "sel-nor",
["Selonia"] = "sxl",
["Selungai Murut"] = "slg",
["Seluwasan"] = "sws",
["Sema"] = "nsm",
["Semai"] = "sea",
["Semandang"] = "sdm",
["Semaq Beri"] = "szc",
["Sembakung Murut"] = "sbr",
["Semelai"] = "sza",
["Semimi"] = "etz",
["Semnam"] = "ssm",
["Semnani"] = "smy",
["Sempan"] = "xse",
["Sena"] = "seh",
["Senara Sénoufo"] = "seq",
["Senaya"] = "syn",
["Sene"] = "sej",
["Seneca"] = "see",
["Sengele"] = "szg",
["Senggi"] = "snu",
["Sengo"] = "spk",
["Sengseng"] = "ssz",
["Senhaja De Srair"] = "sjs",
["Sensi"] = "sni",
["Sentani"] = "set",
["Sentinel"] = "std",
["Sepa (Indonesia)"] = "spb",
["Sepa (New Guinea)"] = "spe",
["Sepanyol"] = "es",
["Sepanyol Kuno"] = "osp",
["Sepen"] = "spm",
["Sepik Iwam"] = "iws",
["Sera"] = "sry",
["Seranan"] = "srn",
["Serbo-Croatia"] = "sh",
["Sere"] = "swf",
["Serer"] = "srr",
["Seri"] = "sei",
["Serili"] = "sve",
["Seroa"] = "kqu",
["Serrano"] = "ser",
["Seru"] = "szd",
["Serua"] = "srw",
["Serui-Laut"] = "seu",
["Seta"] = "stf",
["Setaman"] = "stm",
["Seti"] = "sbi",
["Severn Ojibwa"] = "ojs",
["Sewa Bay"] = "sew",
["Seze"] = "sze",
["Sha"] = "scw",
["Shabak"] = "sdb",
["Shabo"] = "sbf",
["Shahmirzadi"] = "srz",
["Shahrudi"] = "shm",
["Shall-Zwall"] = "sha",
["Shama-Sambuga"] = "sqa",
["Shamang"] = "xsh",
["Shambala"] = "ksb",
["Shan"] = "shn",
["Shanenawa"] = "swo",
["Shanga"] = "sho",
["Shangzhai"] = "jih",
["Sharanahua"] = "mcd",
["Shark Bay"] = "ssv",
["Sharwa"] = "swq",
["Shasta"] = "sht",
["Shasta Sungai Baru"] = "nai-nrs",
["Shatt"] = "shj",
["Shau"] = "sqh",
["Shawnee"] = "sjw",
["She"] = "shx",
["Shebayo"] = "awd-she",
["Shehri"] = "shv",
["Shekkacho"] = "moy",
["Sheko"] = "she",
["Shelta"] = "sth",
["Shendu"] = "shl",
["Sheni"] = "scv",
["Sherbro"] = "bun",
["Sherdukpen"] = "sdp",
["Sherpa"] = "xsr",
["Sheshi Kham"] = "kip",
["Shi"] = "shr",
["Shilluk"] = "shk",
["Shina"] = "scl",
["Shinasha"] = "bwo",
["Shipibo-Conibo"] = "shp",
["Shixing"] = "sxg",
["Sholaga"] = "sle",
["Shom Peng"] = "sii",
["Shona"] = "sn",
["Shoo-Minda-Nye"] = "bcv",
["Shor"] = "cjs",
["Shoshone"] = "shh",
["Shua"] = "shg",
["Shuar"] = "jiv",
["Shuba"] = "cbq",
["Shughni"] = "sgh",
["Shughni-Roshani Purba"] = "ira-shr-pro",
["Shughni-Yazghulami Purba"] = "ira-shy-pro",
["Shughni-Yazghulami-Munji Purba"] = "ira-sym-pro",
["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",
["Sicanian"] = "sxc",
["Sicel"] = "scx",
["Sichuan"] = "zhx-sic",
["Sicilia"] = "scn",
["Siculo-Arabic"] = "sqr",
["Sidamo"] = "sid",
["Sidetic"] = "xsd",
["Sie"] = "erg",
["Sierra Leone Sign Language"] = "sgx",
["Sighu"] = "sxe",
["Sihan"] = "snr",
["Sika"] = "ski",
["Sikaiana"] = "sky",
["Sikaritai"] = "tty",
["Sikiana"] = "sik",
["Sikkim"] = "sip",
["Sikule"] = "skh",
["Sila"] = "slt",
["Sileibi"] = "sbq",
["Silesia"] = "szl",
["Silimo"] = "wul",
["Siliput"] = "mkc",
["Silopi"] = "xsp",
["Silt'e"] = "stv",
["Simaa"] = "sie",
["Simba"] = "sbw",
["Simbali"] = "smg",
["Simbari"] = "smb",
["Simbo"] = "sbb",
["Simeku"] = "smz",
["Simeulue"] = "smr",
["Simte"] = "smt",
["Sinacantán"] = "nai-sin",
["Sinagen"] = "siu",
["Sinasina"] = "sst",
["Sinaugoro"] = "snc",
["Sindarin"] = "sjn",
["Sindhi"] = "sd",
["Sindhi Bhil"] = "sbn",
["Singa"] = "sgm",
["Singapore Sign Language"] = "sls",
["Singpho"] = "sgp",
["Sinhala"] = "si",
["Sinicahua Mixtec"] = "xti",
["Sininkere"] = "skq",
["Sino-Tibet Purba"] = "sit-pro",
["Sinyar"] = "sys",
["Sinúfana"] = "sai-sin",
["Sio"] = "xsi",
["Siona"] = "snn",
["Siouan-Catawba Purba"] = "nai-sca-pro",
["Sioux Purba"] = "sio-pro",
["Sipakapense"] = "qum",
["Sira"] = "swj",
["Siraya"] = "fos",
["Sirenik"] = "ysr",
["Siri"] = "sir",
["Siriano"] = "sri",
["Sirionó"] = "srq",
["Sirmauri"] = "srx",
["Siroi"] = "ssd",
["Sisaala Barat"] = "ssl",
["Sissala"] = "sld",
["Sissano"] = "sso",
["Situ"] = "sit-sit",
["Siuslaw"] = "sis",
["Sivandi"] = "siy",
["Siwai"] = "siw",
["Siwi"] = "siz",
["Siwu"] = "akp",
["Skagit"] = "ska",
["Skalvian"] = "svx",
["Ske"] = "ske",
["Skou"] = "skv",
["Slav Purba"] = "sla-pro",
["Slav Timur Kuno"] = "orv",
["Slavey Selatan"] = "xsl",
["Slavey Utara"] = "scs",
["Slavomolisano"] = "svm",
["Slavonic Gereja"] = "zls-chs",
["Slavonic Gereja Kuno"] = "cu",
["Slovak"] = "sk",
["Slovak Kuno"] = "zlw-osk",
["Slovakian Sign Language"] = "svk",
["Slovenia"] = "sl",
["Slovincia"] = "zlw-slv",
["Small Flowery Miao"] = "sfm",
["Smärky Kanum"] = "kxq",
["Snohomish"] = "sno",
["So'a"] = "ssq",
["Sobei"] = "sob",
["Sochiapam Chinantec"] = "cso",
["Soga"] = "xog",
["Sogdia"] = "sog",
["Sogdia Purba"] = "ira-sgc-pro",
["Sok"] = "skk",
["Sokna"] = "swn",
["Soko"] = "soc",
["Sokoro"] = "sok",
["Solano"] = "xso",
["Soli"] = "sby",
["Solon"] = "tuw-sol",
["Solong"] = "aaw",
["Solos"] = "sol",
["Som"] = "smc",
["Somali"] = "so",
["Somaloid Purba"] = "cus-som-pro",
["Somba-Siawari"] = "bmu",
["Somra"] = "ntx",
["Somrai"] = "sor",
["Somray"] = "smu",
["Somyev"] = "kgt",
["Sonaga"] = "ysg",
["Sonde"] = "shc",
["Songe"] = "sop",
["Songhai Purba"] = "son-pro",
["Songomeno"] = "soe",
["Songoora"] = "sod",
["Sonha"] = "soi",
["Sonia"] = "siq",
["Soninke"] = "snk",
["Sonsorol"] = "sov",
["Soo"] = "teu",
["Sop"] = "urw",
["Soqotri"] = "sqt",
["Sora"] = "srb",
["Sorbia Atas"] = "hsb",
["Sori-Harengan"] = "sbh",
["Sorkhei"] = "sqo",
["Sorothaptic"] = "sxo",
["Sos Kundi"] = "sdk",
["Sota Kanum"] = "krz",
["Sotho"] = "st",
["Sotho Utara"] = "nso",
["Sotho-Tswana Purba"] = "bnt-sts-pro",
["Sou"] = "sqq",
["Sougb"] = "mnx",
["Southeast Babar"] = "vbb",
["Southeast Ijo"] = "ijs",
["Southeastern Ixtlán Zapotec"] = "zpd",
["Southern Pame"] = "pmz",
["Southern Qiang"] = "qxs",
["Southern Rincon Zapotec"] = "zsr",
["Sowa"] = "sww",
["Sowanda"] = "sow",
["Spanish Sign Language"] = "ssp",
["Spiti Bhoti"] = "spt",
["Spokane"] = "spo",
["Squamish"] = "squ",
["Sri Lankan Sign Language"] = "sqs",
["Stau"] = "ero-tau",
["Stod Bhoti"] = "sbu",
["Stoney"] = "sto",
["Suabo"] = "szp",
["Suarmin"] = "seo",
["Suau"] = "swp",
["Suba"] = "sxb",
["Suba-Simbiti"] = "ssc",
["Subanen Tengah"] = "syb",
["Subanen Utara"] = "stb",
["Subanon Barat"] = "suc",
["Subanun Lapuyan"] = "laa",
["Subi"] = "xsj",
["Subiya"] = "sbs",
["Subtiaba"] = "sut",
["Sudan Tengah Purba"] = "csu-pro",
["Sudest"] = "tgo",
["Sudovian"] = "xsv",
["Suena"] = "sue",
["Suga"] = "sgi",
["Suganga"] = "sug",
["Sui"] = "swi",
["Suki"] = "sui",
["Suku"] = "sub",
["Sukuma"] = "suk",
["Sukur"] = "syk",
["Sukurum"] = "zsu",
["Sula"] = "szn",
["Sulawesi Selatan Purba"] = "poz-ssw-pro",
["Sulka"] = "sua",
["Sulod"] = "srg",
["Suluk"] = "tsg",
["Sulung"] = "suv",
["Suma"] = "sqm",
["Sumariup"] = "siv",
["Sumau"] = "six",
["Sumbawa"] = "smw",
["Sumbwa"] = "suw",
["Sumeria"] = "sux",
["Sunam"] = "ssk",
["Sunda"] = "su",
["Sunda Kuno"] = "osn",
["Sungai"] = "dmg",
["Sungwadaga"] = "mwo",
["Sungwadia"] = "mrb",
["Sunum"] = "ymn",
["Sunwar"] = "suz",
["Suoy"] = "syo",
["Supyire"] = "spp",
["Sur"] = "tdl",
["Surbakhal"] = "sbj",
["Suri"] = "suq",
["Surigaonon"] = "sgd",
["Surjapuri"] = "sjp",
["Sursurunga"] = "sgz",
["Suruahá"] = "swx",
["Surubu"] = "sde",
["Suruí"] = "sru",
["Suruí Do Pará"] = "mdz",
["Suryani Klasik"] = "syc",
["Susquehannock"] = "sqn",
["Susu"] = "sus",
["Susuami"] = "ssu",
["Suundi"] = "sdj",
["Suwawa"] = "swu",
["Suyá"] = "suy",
["Svan"] = "sva",
["Swabia"] = "swg",
["Swahili"] = "sw",
["Swampy Cree"] = "csw",
["Swazi"] = "ss",
["Sweden"] = "sv",
["Sweden Kuno"] = "gmq-osw",
["Swedish Sign Language"] = "swl",
["Swiss-French Sign Language"] = "ssr",
["Swiss-German Sign Language"] = "sgg",
["Swiss-Italian Sign Language"] = "slf",
["Swo"] = "sox",
["Syenara Senoufo"] = "shz",
["Sylhet"] = "syl",
["Sácata"] = "sai-sac",
["Sãotomense"] = "cri",
["Sìcìté Sénoufo"] = "sep",
["Sô"] = "sss",
["T'en"] = "tct",
["Ta-Arawak Purba"] = "awd-taa-pro",
["Taabwa"] = "tap",
["Taba"] = "mky",
["Tabancale"] = "sai-tab",
["Tabaru"] = "tby",
["Tabasaran"] = "tab",
["Tabasco Chontal"] = "chf",
["Tabasco Zoque"] = "zoq",
["Tabla"] = "tnm",
["Tabo"] = "knv",
["Tabriak"] = "tzx",
["Tacana"] = "tna",
["Tachawit"] = "shy",
["Tadaksahak"] = "dsq",
["Tadyawan"] = "tdy",
["Tae'"] = "rob",
["Tafi"] = "tcd",
["Tafreshi"] = "xme-taf",
["Tagabawa"] = "bgs",
["Tagal Murut"] = "mvv",
["Tagalog"] = "tl",
["Tagbanwa"] = "tbw",
["Tagbanwa Tengah"] = "tgt",
["Tagbu"] = "tbm",
["Tagdal"] = "tda",
["Tagish"] = "tgx",
["Tagoi"] = "tag",
["Tagwana Senoufo"] = "tgw",
["Tahiti"] = "ty",
["Tahltan"] = "tht",
["Tai"] = "taw",
["Tai Barat Daya Purba"] = "tai-swe-pro",
["Tai Daeng"] = "tyr",
["Tai Dam"] = "blt",
["Tai Do"] = "tyj",
["Tai Dón"] = "twh",
["Tai Hang Tong"] = "thc",
["Tai Hongjin"] = "tiz",
["Tai Laing"] = "tjl",
["Tai Loi"] = "tlq",
["Tai Long"] = "thi",
["Tai Nüa"] = "tdd",
["Tai Pao"] = "tpo",
["Tai Purba"] = "tai-pro",
["Tai Thanh"] = "tmm",
["Tai Ya"] = "cuu",
["Taikat"] = "aos",
["Tainae"] = "ago",
["Tairora Selatan"] = "omw",
["Tairora Utara"] = "tbg",
["Tairuma"] = "uar",
["Taishan"] = "zhx-tai",
["Taita"] = "dav",
["Taivoan"] = "tvx",
["Taje"] = "pee",
["Tajik"] = "tg",
["Tajio"] = "tdj",
["Tajuasohn"] = "tja",
["Takelma"] = "tkm",
["Takia"] = "tbc",
["Takik Purba"] = "azc-tak-pro",
["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",
["Taman Purba"] = "sdv-tmn-pro",
["Tamanaku"] = "tmz",
["Tamang Barat"] = "tdg",
["Tamang Barat Daya"] = "tsf",
["Tamang Barat Laut"] = "tmk",
["Tamang Gorkha Timur"] = "tge",
["Tamang Purba"] = "sit-tam-pro",
["Tamang Timur"] = "taj",
["Tamazight Atlas Tengah"] = "tzm",
["Tamazola Mixtec"] = "vmx",
["Tambas"] = "tdk",
["Tambora"] = "xxt",
["Tambotalo"] = "tls",
["Tami"] = "tmy",
["Tamil"] = "ta",
["Tamil Kuno"] = "oty",
["Tamki"] = "tax",
["Tamnim Citak"] = "tml",
["Tampias Lobu"] = "low",
["Tampuan"] = "tpu",
["Tampulma"] = "tpm",
["Tanacross"] = "tcb",
["Tanahmerah"] = "tcm",
["Tanapag"] = "tpv",
["Tanchangya"] = "tnv",
["Tandaganon"] = "tgn",
["Tandia"] = "tni",
["Tanema"] = "tnx",
["Tangale"] = "tan",
["Tangam"] = "sit-tgm",
["Tanggu"] = "tgu",
["Tangkhul Purba"] = "sit-tng-pro",
["Tangko"] = "tkx",
["Tanglang"] = "ytl",
["Tangoa"] = "tgp",
["Tangsa"] = "nst",
["Tanguat"] = "tbs",
["Tangut"] = "txg",
["Tangwang"] = "mis-tnw",
["Tani Purba"] = "sit-tan-pro",
["Tanimbili"] = "tbe",
["Tanimuca-Retuarã"] = "tnc",
["Tanjijili"] = "uji",
["Tanna Barat Daya"] = "nwi",
["Tanna Utara"] = "tnn",
["Taos"] = "twf",
["Tapachultec"] = "nai-tap",
["Taparita"] = "sai-tpr",
["Tapayuna"] = "sai-tap",
["Tapeba"] = "tbb",
["Tapei"] = "afp",
["Tapieté"] = "tpj",
["Tapirapé"] = "taf",
["Tar Gula"] = "kcm",
["Tara Baka"] = "bdh",
["Tarahumara Barat Daya"] = "twr",
["Tarahumara Tengah"] = "tar",
["Tarahumara Tenggara"] = "tcu",
["Tarahumara Utara"] = "thh",
["Tarairiú"] = "sai-trr",
["Tarangan Barat"] = "txn",
["Tarangan Timur"] = "tre",
["Taranoan Purba"] = "sai-tar-pro",
["Tarantino"] = "roa-tar",
["Tarao"] = "tro",
["Taraon"] = "mhu",
["Tareng"] = "tgr",
["Tariana"] = "tae",
["Tarifit"] = "rif",
["Tarjumo"] = "txj",
["Tarok"] = "yer",
["Taroko"] = "trv",
["Tarpia"] = "tpf",
["Tartessian"] = "txr",
["Taruma"] = "tdm",
["Tasawaq"] = "twq",
["Tashelhit"] = "shi",
["Tasmania"] = "xtz",
["Tasmania Tenggara"] = "xpf",
["Tasmate"] = "tmt",
["Tat"] = "ttt",
["Tataltepec Chatino"] = "cta",
["Tatana"] = "txx",
["Tatar"] = "tt",
["Tatar Crimea"] = "crh",
["Tatar Siberia"] = "sty",
["Tataviam"] = "azc-tat",
["Tati Kuno"] = "xme-ott",
["Tatik Purba"] = "xme-ttc-pro",
["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",
["Tawbuid Barat"] = "twb",
["Tawbuid Timur"] = "bnj",
["Taworta"] = "tbp",
["Tawoyan"] = "twy",
["Tay Khang"] = "tnu",
["Tayman"] = "sem-tay",
["Tayo"] = "cks",
["Taíno"] = "tnq",
["Tboli"] = "tbl",
["Tchitchege"] = "tck",
["Tchumbuli"] = "bqa",
["Te'un"] = "tve",
["Teanu"] = "tkw",
["Tebul Ure Dogon"] = "dtu",
["Tecpatlán Totonac"] = "tcw",
["Tedaga"] = "tuq",
["Tee"] = "tkq",
["Tefaro"] = "tfo",
["Tegali"] = "ras",
["Tehit"] = "kps",
["Tehuelche"] = "teh",
["Teiwa"] = "twe",
["Tejalapan Zapotec"] = "ztt",
["Teke Tengah"] = "nzu",
["Teke-Fuumu"] = "ifm",
["Teke-Kukuya"] = "kkw",
["Teke-Laali"] = "lli",
["Teke-Tege"] = "teg",
["Teke-Tsaayi"] = "tyi",
["Teke-Tyee"] = "tyx",
["Tektiteko"] = "ttc",
["Tela-Masbuar"] = "tvm",
["Telefol"] = "tlf",
["Telugu"] = "te",
["Telugu Kuno"] = "dra-ote",
["Teluk Malua"] = "mll",
["Teluti"] = "tlt",
["Tem"] = "kdh",
["Tembé"] = "tqb",
["Teme"] = "tdo",
["Temein"] = "teq",
["Temi"] = "soz",
["Temiar"] = "tea",
["Temne"] = "tem",
["Temoq"] = "tmo",
["Tempasuk Dusun"] = "tdu",
["Temuan"] = "tmw",
["Ten'edn"] = "tnz",
["Tene Kan Dogon"] = "dtk",
["Tenggarong Kutai Malay"] = "vkt",
["Tengger"] = "tes",
["Tenharim"] = "pah",
["Tenino"] = "tqn",
["Tenis"] = "tns",
["Tennet"] = "tex",
["Teochew"] = "nan-tws",
["Teop"] = "tio",
["Teor"] = "tev",
["Tepecano"] = "tep",
["Tepehua Huehuetla"] = "tee",
["Tepehuan Barat Daya"] = "tla",
["Tepehuan Tenggara"] = "stp",
["Tepehuan Utara"] = "ntp",
["Tepetotutla Chinantec"] = "cnt",
["Tepeuxila Cuicatec"] = "cux",
["Tepinapa Chinantec"] = "cte",
["Tepo Krumen"] = "ted",
["Tequistlatec"] = "nai-teq",
["Tera"] = "ttr",
["Terebu"] = "trb",
["Terei"] = "buo",
["Tereno"] = "ter",
["Teressa"] = "tef",
["Tereweng"] = "twg",
["Teribe"] = "tfr",
["Terik"] = "tec",
["Termanu"] = "twu",
["Ternate"] = "tft",
["Ternateño"] = "tmg",
["Tese"] = "keg",
["Teshenawa"] = "twc",
["Tetela"] = "tll",
["Tetete"] = "teb",
["Tetserret"] = "tez",
["Tetum"] = "tet",
["Tetun Dili"] = "tdt",
["Teushen"] = "sai-teu",
["Teutila Cuicatec"] = "cut",
["Tewa"] = "tew",
["Texistepec Popoluca"] = "poq",
["Texmelucan Zapotec"] = "zpz",
["Tha"] = "thy",
["Thachanadan"] = "thn",
["Thai"] = "th",
["Thai Selatan"] = "sou",
["Thai Song"] = "soa",
["Thai Utara"] = "nod",
["Thakali"] = "ths",
["Thamud"] = "sem-tha",
["Thangmi"] = "thf",
["Thao"] = "ssf",
["Tharaka"] = "thk",
["Tharrgari"] = "dhr",
["Thavung"] = "thm",
["Thawa"] = "xtv",
["Tho"] = "tou",
["Thompson"] = "thp",
["Thopho"] = "ytp",
["Thracian"] = "txh",
["Thu Lao"] = "tyl",
["Thulung"] = "tdh",
["Thurawal"] = "tbh",
["Thuri"] = "thu",
["Tiagba"] = "ahi",
["Tiale"] = "mnl",
["Tiang"] = "tbj",
["Tibea"] = "ngy",
["Tibet"] = "bo",
["Tibet Klasik"] = "xct",
["Tibet Kuno"] = "otb",
["Ticuna"] = "tca",
["Tidore"] = "tvo",
["Tidung Selatan"] = "itd",
["Tidung Utara"] = "ntd",
["Tiemacèwè Bozo"] = "boo",
["Tiene"] = "tii",
["Tifal"] = "tif",
["Tigak"] = "tgc",
["Tigre"] = "tig",
["Tigrinya"] = "ti",
["Tii"] = "txq",
["Tijaltepec Mixtec"] = "xtl",
["Tikar"] = "tik",
["Tikopia"] = "tkp",
["Tillamook"] = "til",
["Tilquiapan Zapotec"] = "zts",
["Tilung"] = "tij",
["Tima"] = "tms",
["Timbe"] = "tim",
["Timor Pidgin"] = "tvy",
["Timote"] = "sai-tim",
["Timucua"] = "tjm",
["Tinagas Kota Marudu"] = "ktr",
["Tinani"] = "lbf",
["Tindi"] = "tin",
["Tingui-Boto"] = "tgv",
["Tinigua"] = "tit",
["Tinoc Kallahan"] = "tne",
["Tinputz"] = "tpz",
["Tipai"] = "nai-tip",
["Tippera"] = "tpe",
["Tira"] = "tic",
["Tirahi"] = "tra",
["Tiranige Diga Dogon"] = "tde",
["Tirax"] = "mme",
["Tircul"] = "pyx",
["Tiri"] = "cir",
["Tiruray"] = "tiy",
["Tita"] = "tdq",
["Titan"] = "ttv",
["Tiv"] = "tiv",
["Tiwa"] = "lax",
["Tiwa Selatan"] = "tix",
["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",
["Tlapanec Malinaltepec"] = "tcf",
["Tlingit"] = "tli",
["To"] = "toz",
["To'abaita"] = "mlu",
["Toaripi"] = "tqo",
["Toba"] = "tob",
["Toba-Maskoy"] = "tmf",
["Tobanga"] = "tng",
["Tobati"] = "tti",
["Tobelo"] = "tlb",
["Tobian"] = "tox",
["Tobilung"] = "tgb",
["Tobo"] = "tbv",
["Tocharia A"] = "xto",
["Tocharia B"] = "txb",
["Tocharia Purba"] = "ine-toc-pro",
["Tocho"] = "taz",
["Toda"] = "tcx",
["Todrah"] = "tdr",
["Tofa"] = "kim",
["Tofanma"] = "tlg",
["Tofin Gbe"] = "tfi",
["Togbo-Vara Banda"] = "tor",
["Togo Tengah Purba"] = "alv-gtm-pro",
["Togoyo"] = "tgy",
["Tojolabal"] = "toj",
["Tok Pisin"] = "tpi",
["Toka-Leya"] = "dov",
["Tokano"] = "zuh",
["Tokelau"] = "tkl",
["Toki Pona"] = "tok",
["Toku-No-Shima"] = "tkn",
["Tol"] = "jic",
["Tolai"] = "ksd",
["Tolaki"] = "lbw",
["Tolomako"] = "tlm",
["Tolowa"] = "tol",
["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"] = "to",
["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",
["Torricelli"] = "tei",
["Torricelli Yau"] = "yyu",
["Torwali"] = "trw",
["Torá"] = "trz",
["Tosu"] = "sit-tos",
["Totela"] = "ttl",
["Toto"] = "txo",
["Totoli"] = "txe",
["Totomachapan Zapotec"] = "zph",
["Totonac Barat"] = "tqt",
["Totoro"] = "ttk",
["Totozoquean Purba"] = "nai-tot-pro",
["Touo"] = "tqu",
["Toura"] = "neb",
["Toussiana Selatan"] = "wib",
["Toussiana Utara"] = "tsp",
["Towei"] = "ttn",
["Trans-New Guinea Purba"] = "ngf-pro",
["Translingual"] = "mul",
["Traveller Scottish"] = "trl",
["Tregami"] = "trm",
["Tremembé"] = "tme",
["Trieng"] = "stg",
["Trimuris"] = "tip",
["Tring"] = "tgq",
["Tringgus"] = "trx",
["Trinitario"] = "trn",
["Tripuri Awal"] = "xtr",
["Triqui Purba"] = "omq-tri-pro",
["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",
["Tsez Purba"] = "cau-tsz-pro",
["Tshangla"] = "tsj",
["Tshobdun"] = "sit-tsh",
["Tshwa"] = "hio",
["Tsikimba"] = "kdl",
["Tsimané"] = "cas",
["Tsimshian"] = "tsi",
["Tsimshianik Purba"] = "nai-tsi-pro",
["Tsishingini"] = "tsw",
["Tso"] = "ldp",
["Tsogo"] = "tsv",
["Tsonga"] = "ts",
["Tsotsitaal"] = "fly",
["Tsou"] = "tsu",
["Tsum"] = "ttz",
["Tsuut'ina"] = "srs",
["Tsuvadi"] = "tvd",
["Tsuvan"] = "tsh",
["Tswa"] = "tsc",
["Tswana"] = "tn",
["Tswapong"] = "two",
["Tuamotuan"] = "pmt",
["Tuareg"] = "tmh",
["Tubar"] = "tbu",
["Tucano"] = "tuo",
["Tugen"] = "tuy",
["Tugun"] = "tzn",
["Tugutil"] = "tuj",
["Tuhua Shaozhou"] = "zhx-sht",
["Tujia Selatan"] = "tjs",
["Tujia Utara"] = "tji",
["Tukang Besi Selatan"] = "bhq",
["Tukang Besi Utara"] = "khc",
["Tuki"] = "bag",
["Tukpa"] = "tpq",
["Tukudede"] = "tkd",
["Tukumanféd"] = "tkf",
["Tula"] = "tul",
["Tulehu"] = "tlu",
["Tulishi"] = "tey",
["Tulu"] = "tcy",
["Tulu-Bohuai"] = "rak",
["Tulua"] = "aus-tul",
["Tuma-Irumu"] = "iou",
["Tumak"] = "tmc",
["Tumbuka"] = "tum",
["Tumi"] = "kku",
["Tumleo"] = "tmq",
["Tumshuq"] = "xtq",
["Tumtum"] = "tbr",
["Tumulung Sisaala"] = "sil",
["Tunebo Barat"] = "tnb",
["Tunebo Tengah"] = "tuf",
["Tunen"] = "tvu",
["Tungag"] = "lcm",
["Tunggare"] = "trt",
["Tungus Purba"] = "tuw-pro",
["Tunia"] = "tug",
["Tunica"] = "tun",
["Tunjung"] = "tjg",
["Tunni"] = "tqq",
["Tunumiisut"] = "esx-tut",
["Tunzu"] = "dza",
["Tuoba"] = "mis-tuo",
["Tuotomb"] = "ttf",
["Tuparí"] = "tpr",
["Tupi Kuno"] = "tpw",
["Tupi Purba"] = "tup-pro",
["Tupi-Guarani Purba"] = "tup-gua-pro",
["Tupinambá"] = "tpn",
["Tupinikin"] = "tpk",
["Tupuri"] = "tui",
["Turaka"] = "trh",
["Turdetania"] = "mis-tdt",
["Turdulia"] = "mis-tdl",
["Turi"] = "trd",
["Turiwára"] = "twt",
["Turk Kuno"] = "otk",
["Turka"] = "tuz",
["Turkana"] = "tuv",
["Turki"] = "tr",
["Turki Anatolia Kuno"] = "trk-oat",
["Turki Khorasan"] = "kmz",
["Turki Usmaniyah"] = "ota",
["Turkik Purba"] = "trk-pro",
["Turkmen"] = "tk",
["Turoyo"] = "tru",
["Turumsa"] = "tqm",
["Turung"] = "try",
["Tuscarora"] = "tus",
["Tutchone Selatan"] = "tce",
["Tutchone Utara"] = "ttm",
["Tutelo"] = "tta",
["Tutong"] = "ttg",
["Tutsa Naga"] = "tvt",
["Tutuba"] = "tmi",
["Tututni"] = "tuu",
["Tuva"] = "tyv",
["Tuvalu"] = "tvl",
["Tuwali Ifugao"] = "ifk",
["Tuwari"] = "tww",
["Tuwuli"] = "bov",
["Tuxináwa"] = "tux",
["Tuxá"] = "tud",
["Tuyuca"] = "tue",
["Tuyuhun"] = "mis-tuh",
["Twana"] = "twa",
["Twendi"] = "twn",
["Tyap"] = "kcg",
["Tyaraity"] = "woa",
["Tyerrernotepanner"] = "xph",
["Tz'utujil"] = "tzj",
["Tzeltal"] = "tzh",
["Tzotzil"] = "tzo",
["Tày"] = "tyz",
["Tày Tac"] = "tyt",
["Tây Bồi"] = "tas",
["Téén"] = "lor",
["Tübatulabal"] = "tub",
["U"] = "uuu",
["Uab Meto"] = "aoz",
["Uamué"] = "uam",
["Uare"] = "ksj",
["Ubaghara"] = "byc",
["Ubang"] = "uba",
["Ubangi Purba"] = "nic-ubg-pro",
["Ubi"] = "ubi",
["Ubir"] = "ubr",
["Ubykh"] = "uby",
["Ucayali-Yurúa Ashéninka"] = "cpb",
["Uda"] = "uda",
["Udi"] = "udi",
["Udihe"] = "ude",
["Udmurt"] = "udm",
["Uduk"] = "udu",
["Ufim"] = "ufi",
["Ugandan Sign Language"] = "ugn",
["Ugarit"] = "uga",
["Ughele"] = "uge",
["Ugrik Purba"] = "urj-ugr-pro",
["Uhami"] = "uha",
["Uisai"] = "uis",
["Ujir"] = "udj",
["Ukaan"] = "kcf",
["Ukhwejo"] = "ukh",
["Ukit"] = "umi",
["Ukpe-Bayobiri"] = "ukp",
["Ukpet-Ehom"] = "akd",
["Ukraine"] = "uk",
["Ukrainian Sign Language"] = "ukl",
["Ukue"] = "uku",
["Ukuriguma"] = "ukg",
["Ukwa"] = "ukq",
["Ukwuani-Aboh-Ndoni"] = "ukw",
["Ulau-Suain"] = "svb",
["Ulch"] = "ulc",
["Uldeme"] = "udl",
["Ulithian"] = "uli",
["Ullatan"] = "ull",
["Ulumanda'"] = "ulm",
["Ulwa"] = "ulw",
["Uma"] = "ppk",
["Uma' Lasan"] = "xky",
["Uma' Lung"] = "ulu",
["Umatilla"] = "uma",
["Umbindhamu"] = "umd",
["Umbri"] = "xum",
["Umbu-Ungu"] = "ubu",
["Umbugarla"] = "umr",
["Umbundu"] = "umb",
["Umbuygamu"] = "umg",
["Umeda"] = "upi",
["Umiida"] = "xud",
["Umon"] = "umm",
["Umotína"] = "umo",
["Umpila"] = "ump",
["Una"] = "mtg",
["Unami"] = "unm",
["Unde Kaili"] = "unz",
["Uneapa"] = "bbn",
["Uneme"] = "une",
["Unggaranggu"] = "xun",
["Unggumi"] = "xgu",
["Unserdeutsch"] = "uln",
["Unua"] = "onu",
["Unubahe"] = "unu",
["Uokha"] = "uok",
["Upper Chehalis"] = "cjh",
["Upper Grand Valley Dani"] = "dna",
["Upper Kuskokwim"] = "kuu",
["Upper Necaxa Totonac"] = "tku",
["Upper Ta'oih"] = "tth",
["Upper Tanana"] = "tau",
["Upper Taromi"] = "tov",
["Upper Umpqua"] = "xup",
["Ura (Papua New Guinea)"] = "uro",
["Ura (Vanuatu)"] = "uur",
["Uradhi"] = "urf",
["Urak Lawoi'"] = "urk",
["Urali"] = "url",
["Uralik Purba"] = "urj-pro",
["Urapmin"] = "urm",
["Urarina"] = "ura",
["Urartian"] = "xur",
["Urat"] = "urt",
["Urdu"] = "ur",
["Urhobo"] = "urh",
["Uri"] = "uvh",
["Urigina"] = "urg",
["Urim"] = "uri",
["Urimo"] = "urx",
["Urningangg"] = "urc",
["Uru"] = "ure",
["Uru-Eu-Wau-Wau"] = "urz",
["Uru-Pa-In"] = "urp",
["Uruangnirin"] = "urn",
["Uruava"] = "urv",
["Urubú-Kaapor"] = "urb",
["Uruguayan Sign Language"] = "ugy",
["Urum"] = "uum",
["Urumi"] = "uru",
["Usaghade"] = "usk",
["Usan"] = "wnu",
["Usarufa"] = "usa",
["Ushojo"] = "ush",
["Usila Chinantec"] = "cuc",
["Uspanteco"] = "usp",
["Usui"] = "usi",
["Utarmbung"] = "omo",
["Ute"] = "ute",
["Utik Purba"] = "nai-utn-pro",
["Uto-Aztek Purba"] = "azc-pro",
["Utu"] = "utu",
["Uvbie"] = "evh",
["Uvea Barat"] = "uve",
["Uwinymil"] = "aus-uwi",
["Uya"] = "usu",
["Uyajitaya"] = "duk",
["Uyghur"] = "ug",
["Uyghur Kuno"] = "oui",
["Uzbek"] = "uz",
["Uzekwe"] = "eze",
["Vaagri Booli"] = "vaa",
["Vaghri"] = "vgr",
["Vaghua"] = "tva",
["Vagla"] = "vag",
["Vai"] = "vai",
["Vaie"] = "bny",
["Vaiphei"] = "vap",
["Vale"] = "vae",
["Valencian Sign Language"] = "vsv",
["Valle Nacional Chinantec"] = "cvn",
["Valley Maidu"] = "vmv",
["Valman"] = "van",
["Valpei"] = "vlp",
["Valyria Tinggi"] = "art-vlh",
["Vamale"] = "mkt",
["Vame"] = "mlr",
["Vandalic"] = "xvn",
["Vangunu"] = "mpr",
["Vanimo"] = "vam",
["Vanji"] = "ira-wnj",
["Vanuma"] = "vau",
["Vao"] = "vao",
["Varhadi"] = "vah",
["Varisi"] = "vrs",
["Varli"] = "vav",
["Vasavi"] = "vas",
["Vayu"] = "vay",
["Veddah"] = "ved",
["Vehes"] = "val",
["Vemgo-Mabas"] = "vem",
["Venda"] = "ve",
["Venetic"] = "xve",
["Veneto"] = "vec",
["Venezuelan Sign Language"] = "vsl",
["Ventureño"] = "veo",
["Veps"] = "vep",
["Vera'a"] = "vra",
["Vestinian"] = "xvs",
["Vidunda"] = "vid",
["Viemo"] = "vig",
["Vietik Purba"] = "mkh-vie-pro",
["Vietnam"] = "vi",
["Vietnam Pertengahan"] = "mkh-mvi",
["Vilamovian"] = "wym",
["Vilela"] = "vil",
["Vili"] = "vif",
["Vishavan"] = "vis",
["Viti"] = "vit",
["Vitou"] = "vto",
["Volapük"] = "vo",
["Volscian"] = "xvo",
["Volta-Congo Purba"] = "nic-vco-pro",
["Volta-Niger Purba"] = "alv-von-pro",
["Vono"] = "kch",
["Voro"] = "vor",
["Vot"] = "vot",
["Vumbu"] = "vum",
["Vunapu"] = "vnp",
["Vunjo"] = "vun",
["Vurës"] = "msn",
["Vute"] = "vut",
["Võro"] = "vro",
["Wa"] = "wbm",
["Wa'ema"] = "wag",
["Waama"] = "wwa",
["Waamwang"] = "wmn",
["Wab"] = "wab",
["Wabo"] = "wbb",
["Waboda"] = "kmx",
["Waci Gbe"] = "wci",
["Wadaginam"] = "wdg",
["Waddar"] = "wbq",
["Wadi Wadi"] = "xwd",
["Wadiyara Koli"] = "kxp",
["Wadjabangayi"] = "wdy",
["Wadjiginy"] = "wdj",
["Wadjigu"] = "wdu",
["Wae Rana"] = "wrx",
["Waffa"] = "waj",
["Wagawaga"] = "wgb",
["Wagaya"] = "wga",
["Wagdi"] = "wbr",
["Wageman"] = "waq",
["Wagi"] = "fad",
["Wahgi"] = "wgi",
["Wahgi Utara"] = "whg",
["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",
["Wales"] = "cy",
["Wales Kuno"] = "owl",
["Wales Pertengahan"] = "wlm",
["Wali (Ghana)"] = "wlx",
["Wali (Sudan)"] = "wll",
["Waling"] = "wly",
["Walio"] = "wla",
["Walla Walla"] = "waa",
["Wallis"] = "wls",
["Walloon"] = "wa",
["Walmajarri"] = "wmt",
["Wam"] = "wmo",
["Wamas"] = "wmc",
["Wambaya"] = "wmb",
["Wambon"] = "wms",
["Wambule"] = "wme",
["Wamey"] = "cou",
["Wamin"] = "wmi",
["Wampar"] = "lbq",
["Wampur"] = "waz",
["Wan"] = "wan",
["Wanambre"] = "wnb",
["Wanap"] = "wnp",
["Wancho"] = "nnp",
["Wanda"] = "wbh",
["Wandala"] = "mfi",
["Wandamen"] = "wad",
["Wandarang"] = "wnd",
["Wandji"] = "wdd",
["Waneci"] = "wne",
["Wanga"] = "lwg",
["Wanggamala"] = "wnm",
["Wangganguru"] = "wgg",
["Wanggom"] = "wng",
["Wangkayutyuru"] = "wky",
["Wangkumara"] = "xwk",
["Wanham"] = "sai-wnm",
["Wanji"] = "wbi",
["Wanman"] = "wbt",
["Wannu"] = "jub",
["Wano"] = "wno",
["Wantoat"] = "wnc",
["Wanukaka"] = "wnk",
["Wanyi"] = "wny",
["Wané"] = "hwa",
["Wapan"] = "juk",
["Wapishana"] = "wap",
["Wappo"] = "wao",
["War-Jaintia"] = "aml",
["Wara"] = "wbf",
["Warao"] = "wba",
["Warapu"] = "wra",
["Waray Sorsogon"] = "srv",
["Waray-Waray"] = "war",
["Wardaman"] = "wrr",
["Wardandi"] = "wxw",
["Warekena Kuno"] = "awd-war",
["Warembori"] = "wsa",
["Wari'"] = "pav",
["Waris"] = "wrs",
["Waritai"] = "wbe",
["Wariyangga"] = "wri",
["Warji"] = "wji",
["Warkay-Bipim"] = "bgv",
["Warlmanpa"] = "wrl",
["Warlpiri"] = "wbp",
["Warluwara"] = "wrb",
["Warnang"] = "wrn",
["Waropen"] = "wrp",
["Warray"] = "wrz",
["Warrgamay"] = "wgy",
["Warrwa"] = "wwr",
["Waru"] = "wru",
["Warumungu"] = "wrm",
["Waruna"] = "wrv",
["Warungu"] = "wrg",
["Warwar Feni"] = "hrw",
["Wasa"] = "wss",
["Wasco-Wishram"] = "wac",
["Washo"] = "was",
["Waskia"] = "wsk",
["Wastek"] = "hus",
["Wasu"] = "wsu",
["Watakataui"] = "wtk",
["Watam"] = "wax",
["Wathaurong"] = "wth",
["Watiwa"] = "wtf",
["Watubela"] = "wah",
["Watut Selatan"] = "mcy",
["Watut Tengah"] = "mpl",
["Watut Utara"] = "una",
["Waube"] = "kop",
["Wauja"] = "wau",
["Wauyai"] = "wuy",
["Wawa"] = "www",
["Wawonii"] = "wow",
["Waxianghua"] = "wxa",
["Wayampi"] = "oym",
["Wayana"] = "way",
["Wayanad Chetti"] = "ctt",
["Wayoró"] = "wyr",
["Wayumara"] = "sai-way",
["Wedau"] = "wed",
["Weh"] = "weh",
["Welaung"] = "weu",
["Weliki"] = "klh",
["Wemale"] = "weo",
["Wemba-Wemba"] = "xww",
["Weme Gbe"] = "wem",
["Wendat"] = "wdt",
["Weri"] = "wer",
["Wersing"] = "kvw",
["Western Juxtlahuaca Mixtec"] = "jmx",
["Wewaw"] = "wea",
["Weyewa"] = "wew",
["Whitesands"] = "tnp",
["Wiarumus"] = "tua",
["Wichita"] = "wic",
["Wichí Lhamtés Güisnay"] = "mzh",
["Wichí Lhamtés Nocten"] = "mtp",
["Wichí Lhamtés Vejoz"] = "wlv",
["Wik-Epa"] = "wie",
["Wik-Iiyanh"] = "wij",
["Wik-Keyangan"] = "wif",
["Wik-Me'anha"] = "wih",
["Wik-Mungkan"] = "wim",
["Wik-Ngathana"] = "wig",
["Wikalkan"] = "wik",
["Wikngenchera"] = "wua",
["Wilawila"] = "wil",
["Winnebago"] = "win",
["Wintu"] = "wnw",
["Winyé"] = "kst",
["Wiradhuri"] = "wrh",
["Wiraféd"] = "wir",
["Wirangu"] = "wgu",
["Wiru"] = "wiu",
["Wirö"] = "wpc",
["Witotoan Purba"] = "sai-wit-pro",
["Wiwa"] = "mbp",
["Wiyot"] = "wiy",
["Woccon"] = "xwc",
["Wogamusin"] = "wog",
["Wogeo"] = "woc",
["Woi"] = "wbw",
["Woiwurrung"] = "wyi",
["Wojenaka"] = "jod",
["Wolane"] = "wle",
["Wolani"] = "wod",
["Wolaytta"] = "wal",
["Woleai"] = "woe",
["Wolio"] = "wlo",
["Wolof"] = "wo",
["Womo"] = "wmx",
["Wong-gie"] = "aus-won",
["Wongo"] = "won",
["Woods Cree"] = "cwd",
["Woria"] = "wor",
["Worimi"] = "kda",
["Worodougou"] = "jud",
["Worora"] = "wro",
["Wotapuri-Katarqalai"] = "wsv",
["Wotu"] = "wtw",
["Woun Meu"] = "noa",
["Wu"] = "wuu",
["Wudu"] = "wud",
["Wuhuan"] = "mis-wuh",
["Wulguru"] = "aus-wul",
["Wuliwuli"] = "wlu",
["Wulna"] = "wux",
["Wumboko"] = "bqm",
["Wumbvu"] = "wum",
["Wumeng Nasu"] = "ywu",
["Wunai Bunu"] = "bwn",
["Wunambal"] = "wub",
["Wurrugu"] = "wur",
["Wusa Nasu"] = "yig",
["Wushi"] = "bse",
["Wusi"] = "wsi",
["Wutung"] = "wut",
["Wutunhua"] = "wuh",
["Wuvulu-Aua"] = "wuv",
["Wyandot"] = "wya",
["Wára"] = "tci",
["Wãpha"] = "juw",
["Wè Barat"] = "wec",
["Wè Selatan"] = "gxx",
["Wè Utara"] = "wob",
["Xakriabá"] = "xkr",
["Xamtanga"] = "xan",
["Xanaguía Zapotec"] = "ztg",
["Xavante"] = "xav",
["Xerénte"] = "xer",
["Xetá"] = "xet",
["Xhosa"] = "xh",
["Xianbei"] = "mis-xbi",
["Xiang"] = "hsn",
["Xibe"] = "sjo",
["Xicotepec de Juárez Totonac"] = "too",
["Xinca"] = "xin",
["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âcùù"] = "ane",
["Xârâgurè"] = "axx",
["Yaa"] = "iyx",
["Yaaku"] = "muu",
["Yabarana"] = "yar",
["Yabaâna"] = "ybn",
["Yaben"] = "ybm",
["Yabong"] = "ybo",
["Yabula Yabula"] = "yxy",
["Yace"] = "ekr",
["Yaeyama"] = "rys",
["Yafi"] = "wfg",
["Yagara"] = "yxg",
["Yagaria"] = "ygr",
["Yagnobi"] = "yai",
["Yagomi"] = "ygm",
["Yagua"] = "yad",
["Yagwoia"] = "ygw",
["Yahadian"] = "ner",
["Yahang"] = "rhp",
["Yahuna"] = "ynu",
["Yaka"] = "yaf",
["Yakaikeke"] = "ykk",
["Yakan"] = "yka",
["Yakima"] = "yak",
["Yakkha"] = "ybh",
["Yakoma"] = "yky",
["Yakut"] = "sah",
["Yala"] = "yba",
["Yalahatan"] = "jal",
["Yalakalore"] = "xyl",
["Yalarnnga"] = "ylr",
["Yale"] = "nce",
["Yaleba"] = "ylb",
["Yali Ninia"] = "nlk",
["Yalunka"] = "yal",
["Yalálag Zapotec"] = "zpu",
["Yamap"] = "ymp",
["Yamba"] = "yam",
["Yambes"] = "ymb",
["Yambeta"] = "yat",
["Yamdena"] = "jmd",
["Yameo"] = "yme",
["Yami"] = "tao",
["Yaminahua"] = "yaa",
["Yamongeri"] = "ymg",
["Yamphu"] = "ybi",
["Yan-nhangu"] = "jay",
["Yana"] = "ynn",
["Yanda"] = "yda",
["Yanda Dogon"] = "dym",
["Yandjibara"] = "xyb",
["Yandruwandha"] = "ynd",
["Yanesha'"] = "ame",
["Yangben"] = "yav",
["Yangkaal"] = "aus-ynk",
["Yangkam"] = "bsx",
["Yangman"] = "jng",
["Yango"] = "yng",
["Yangulam"] = "ynl",
["Yangum Dey"] = "yde",
["Yangum Gel"] = "ygl",
["Yankunytjatjara"] = "kdd",
["Yanomámi"] = "wca",
["Yansi"] = "yns",
["Yanyuwa"] = "jao",
["Yao"] = "yao",
["Yao (Amerika Selatan)"] = "sai-yao",
["Yaouré"] = "yre",
["Yapese"] = "yap",
["Yapunda"] = "yev",
["Yaqay"] = "jaq",
["Yaqui"] = "yaq",
["Yarawata"] = "yrw",
["Yareba"] = "yrb",
["Yarli"] = "yxl",
["Yarluyandi"] = "yry",
["Yaroamë"] = "yro",
["Yarumá"] = "sai-yar",
["Yarí"] = "yri",
["Yasa"] = "yko",
["Yatay"] = "yty",
["Yatee Zapotec"] = "zty",
["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",
["Yemba"] = "ybb",
["Yemsa"] = "jnj",
["Yendang"] = "yen",
["Yeni"] = "yei",
["Yeniche"] = "yec",
["Yenisei Purba"] = "qfa-yen-pro",
["Yerakai"] = "yra",
["Yerong"] = "yrn",
["Yerukula"] = "yeu",
["Yeskwa"] = "yes",
["Yessan-Mayo"] = "yss",
["Yetfa"] = "yet",
["Yevanic"] = "yej",
["Yeyi"] = "yey",
["Yiddish"] = "yi",
["Yidgha"] = "ydg",
["Yidiny"] = "yii",
["Yil"] = "yll",
["Yimas"] = "yee",
["Yimchungru Naga"] = "yim",
["Yinchia"] = "yin",
["Yindjibarndi"] = "yij",
["Yindjilandji"] = "yil",
["Yine"] = "pib",
["Yinggarda"] = "yia",
["Yinhawangka"] = "ywg",
["Yiningayi"] = "ygi",
["Yinwum"] = "yxm",
["Yir-Yoront"] = "yiy",
["Yirandali"] = "ljw",
["Yis"] = "yis",
["Yitha Yitha"] = "xth",
["Yoba"] = "yob",
["Yogad"] = "yog",
["Yoidik"] = "ydk",
["Yoke"] = "yki",
["Yokuts Buena Vista"] = "yok-bvy",
["Yokuts Delta"] = "yok-dly",
["Yokuts Gashowu"] = "yok-gsy",
["Yokuts Lembah Selatan"] = "yok-svy",
["Yokuts Lembah Utara"] = "yok-nvy",
["Yokuts Palewyami"] = "yok-ply",
["Yokuts Sungai Kings"] = "yok-kry",
["Yokuts Tule-Kaweah"] = "yok-tky",
["Yola"] = "yol",
["Yolmo"] = "scp",
["Yolngu Sign Language"] = "ygs",
["Yom"] = "pil",
["Yombe"] = "yom",
["Yonaguni"] = "yoi",
["Yong"] = "yno",
["Yongkom"] = "yon",
["Yopno"] = "yut",
["Yora"] = "mts",
["Yoron"] = "yox",
["Yorta Yorta"] = "xyy",
["Yoruba"] = "yo",
["Yoruba Purba"] = "alv-yor-pro",
["Yoruboid Purba"] = "alv-yrd-pro",
["Youle Jino"] = "jiu",
["Younuo Bunu"] = "buh",
["Yout Wam"] = "ytw",
["Yoy"] = "yoy",
["Yuanga"] = "nua",
["Yuchi"] = "yuc",
["Yucuna"] = "ycn",
["Yug"] = "yug",
["Yugambal"] = "yub",
["Yugoslavian Sign Language"] = "ysl",
["Yugul"] = "ygu",
["Yugur Barat"] = "ybe",
["Yugur Timur"] = "yuy",
["Yuhup"] = "yab",
["Yukaghir Purba"] = "qfa-yuk-pro",
["Yukaghir Selatan"] = "yux",
["Yukaghir Utara"] = "ykg",
["Yuki"] = "yuk",
["Yukpa"] = "yup",
["Yukuben"] = "ybl",
["Yulu"] = "yul",
["Yuma"] = "yum",
["Yumana"] = "awd-yum",
["Yunani Calabria"] = "grk-cal",
["Yunani Cappadocia"] = "cpg",
["Yunani Italiot"] = "grk-ita",
["Yunani Mariupol"] = "grk-mar",
["Yunani Pontus"] = "pnt",
["Yunani Romani"] = "rge",
["Yup'ik"] = "esu",
["Yupik Purba"] = "ypk-pro",
["Yupik Siberia Tengah"] = "ess",
["Yupiltepeque"] = "nai-yup",
["Yupua"] = "sai-yup",
["Yuqui"] = "yuq",
["Yuracare"] = "yuz",
["Yuri"] = "sai-yri",
["Yurok"] = "yur",
["Yuru"] = "ljx",
["Yurumanguí"] = "sai-yur",
["Yurutí"] = "yui",
["Yuwana"] = "yau",
["Yuyu"] = "yxu",
["Yámana"] = "yag",
["Zaachila Zapotec"] = "ztx",
["Zabana"] = "kji",
["Zacatepec Chatino"] = "ctz",
["Zaghawa"] = "zag",
["Zaiwa"] = "atb",
["Zakhring"] = "zkr",
["Zambian Sign Language"] = "zsl",
["Zan Gula"] = "zna",
["Zanaki"] = "zak",
["Zande"] = "zne",
["Zangskar"] = "zau",
["Zangwal"] = "zah",
["Zaniza Zapotec"] = "zpw",
["Zapotec"] = "zap",
["Zapotec Aloápam"] = "zaq",
["Zapotec Ayoquesco"] = "zaf",
["Zapotec Cajonos"] = "zad",
["Zapotec Coatecas Altas"] = "zca",
["Zapotec Mitla"] = "zaw",
["Zapotec Ocotlán"] = "zac",
["Zapotec Ozolotepec"] = "zao",
["Zapotec Purba"] = "xzp",
["Zapotec Rincón"] = "zar",
["Zapotec San Juan Guelavía"] = "zab",
["Zapotec Santo Domingo Albarradas"] = "zas",
["Zapotec Segenting"] = "zai",
["Zapotec Sierra de Juárez"] = "zaa",
["Zapotec Tabaa"] = "zat",
["Zapotec Xadani"] = "zax",
["Zapotec Yareni"] = "zae",
["Zapotec Yatzachi"] = "zav",
["Zapotecan Purba"] = "omq-zap-pro",
["Zapoteco Mahuatlán Tengah"] = "zam",
["Zaramo"] = "zaj",
["Zari"] = "zaz",
["Zarma"] = "dje",
["Zauzou"] = "zal",
["Zay"] = "zwa",
["Zayse-Zergulla"] = "zay",
["Zaza-Gorani Purba"] = "ira-zgr-pro",
["Zazaki"] = "zza",
["Zazao"] = "jaj",
["Zbu"] = "sit-zbu",
["Zeeland"] = "zea",
["Zeem"] = "zua",
["Zemba"] = "dhm",
["Zemgalia"] = "xzm",
["Zenag"] = "zeg",
["Zenaga"] = "zen",
["Zenzontepec Chatino"] = "czn",
["Zhaba"] = "zhb",
["Zhang-Zhung"] = "xzh",
["Zhire"] = "zhi",
["Zhoa"] = "zhw",
["Zhuang"] = "za",
["Zhár"] = "jjr",
["Zia"] = "zia",
["Zialo"] = "zil",
["Zigula"] = "ziw",
["Zimakani"] = "zik",
["Zimba"] = "zmb",
["Zimbabwe Sign Language"] = "zib",
["Zinza"] = "zin",
["Zire"] = "sih",
["Zirenkel"] = "zrn",
["Ziriya"] = "zir",
["Zizilivakan"] = "ziz",
["Zo'é"] = "pto",
["Zokhuo"] = "yzk",
["Zoogocho Zapotec"] = "zpq",
["Zou"] = "zom",
["Zulu"] = "zu",
["Zumaya"] = "zuy",
["Zumbun"] = "jmb",
["Zuni"] = "zun",
["Zuojiang Zhuang"] = "zzj",
["Zuwara"] = "ber-zuw",
["Zyphe"] = "zyp",
["Záparo"] = "zro",
["tidak ditentukan"] = "und",
["Àhàn"] = "ahn",
["Áncá"] = "acb",
["Äiwoo"] = "nfl",
["Älvdalen"] = "ovd",
["Äynu"] = "aib",
["Ömie"] = "aom",
["Önge"] = "oon",
["ǀXam"] = "xam",
["ǁAni"] = "hnh",
["ǁXegwi"] = "xeg",
["ǂHoan"] = "huc",
["ǃKung"] = "khi-kun",
["ǃXóõ"] = "nmn",
}
00oa0oyrc7vvln7xp36ex1x5m5fjtj3
Modul:grc-utilities
828
11663
373480
111959
2026-09-10T18:03:48Z
SNN95
2113
kemaskini
373480
Scribunto
text/plain
local export = {}
local m_data = mw.loadData("Module:grc-utilities/data")
local m_string_utils = require("Module:string utilities")
local concat = table.concat
local full_link = require("Module:links").full_link
local gsub = m_string_utils.gsub
local match = m_string_utils.match
local insert = table.insert
local ipairs = ipairs
local sparseConcat = require("Module:table").sparseConcat
local standard_diacritics -- defined below
local tag_text = require("Module:script utilities").tag_text
local toNFC = mw.ustring.toNFC
local toNFD = mw.ustring.toNFD
local umatch = mw.ustring.match
local lang = require("Module:languages").getByCode("grc")
local sc = require("Module:scripts").getByCode("Polyt")
local groups = m_data.groups
local canonical = m_data.canonical
local diacritic_order = m_data.diacritic_order
local diacritical_conversions = m_data.diacritical_conversions
local diacritics = m_data.diacritics
local diacritic = m_data.diacritic
local macron = diacritics.macron
local breve = diacritics.breve
local spacing_macron = diacritics.spacing_macron
local spacing_breve = diacritics.spacing_breve
local rough = diacritics.rough
local smooth = diacritics.smooth
local diaeresis = diacritics.diaeresis
local acute = diacritics.acute
local grave = diacritics.grave
local circumflex = diacritics.circum
local subscript = diacritics.subscript
local combining_diacritic = m_data.combining_diacritic
local UTF8_char = ".[\128-\191]*"
local basic_Greek = "[\206-\207][\128-\191]" -- excluding first line of Greek and Coptic block: ͰͱͲͳʹ͵Ͷͷͺͻͼͽ;Ϳ
local info = {}
-- The tables are shared among different characters so that they can be checked
-- for equality if needed, and to use less space.
local vowel_t = { vowel = true }
local iota_t = { vowel = true, offglide = true }
local upsilon_t = { vowel = true, offglide = true }
-- These don't need any contents.
local breathy_cons_t = {}
-- local consonant_t = {}
local diacritic_t = { diacritic = true }
-- Needed for equality comparisons.
local breathing_t = { diacritic = true }
local function add_info(characters, t)
if type(characters) == "string" then
for character in characters:gmatch(UTF8_char) do
info[character] = t
end
else
for _, character in ipairs(characters) do
info[character] = t
end
end
end
add_info({ macron, breve,
diaeresis,
acute, grave, circumflex,
subscript,
}, diacritic_t)
add_info({rough, smooth}, breathing_t)
add_info("ΑΕΗΟΩαεηοω", vowel_t)
add_info("Ιι", iota_t)
add_info("Υυ", upsilon_t)
add_info("ϜϝΡρ", breathy_cons_t)
local not_recognized = {}
setmetatable(info, { __index = function(t, key)
return not_recognized
end})
-- Perform a function on each Unicode character in a string.
local function forEach(str, func)
for char in str:gmatch(UTF8_char) do
func(char)
end
end
function export.contains_vowel(token)
return not not umatch(toNFD(token), '[ΑΕΗΙΟΥΩαεηιουω]')
end
function export.tag(term, face)
return tag_text(term, lang, sc, face)
end
function export.link(term, face, alt, tr)
return full_link({ term = term, alt = alt, lang = lang, sc = sc, tr = tr }, face)
end
-- Convert spacing to combining diacritics, and nonstandard to standard polytonic Greek.
function export.standardDiacritics(text)
return toNFD((toNFD(text):gsub(UTF8_char, diacritical_conversions)))
end
standard_diacritics = export.standardDiacritics
-- Convert variant letter forms to the canonical form, and decompose.
function export.canonicalize(text)
text = standard_diacritics(text)
-- Compose, since the characters in `canonical` are in form NFC.
text = toNFC(text):gsub(UTF8_char .. grave, canonical) -- for ϗ̀
:gsub(UTF8_char, canonical)
-- Decompose on return.
return toNFD(text)
end
--[=[ This function arranges diacritics in the following order:
1. macron or breve
2. breathings or diaeresis
3. acute, circumflex, or grave
4. iota subscript
Used by [[Module:typing-aids]].
Returns an error if a sequence of diacritics contains more than one
of each category.
]=]
local function reorderDiacriticSequence(diacritics)
local output = {}
forEach(diacritics,
function (diacritic)
local index = diacritic_order[diacritic]
if not output[index] then
output[index] = diacritic
else
-- Place breve after macron.
if diacritic == breve then
index = index + 1
end
-- The following might have odd results when there
-- are three or more diacritics.
insert(output, index, diacritic)
-- [[Special:WhatLinksHere/Wiktionary:Tracking/grc-utils/too many diacritics]]
require("Module:debug").track("grc-utils/too many diacritics")
--[[
local m_templates = require("Module:grc-utilities/templates")
error("There are two diacritics, " ..
m_templates.addDottedCircle(output[index]) .. " and " ..
m_templates.addDottedCircle(diacritic) ..
" that belong in the same position. There should be only one."
)
--]]
end
end)
return sparseConcat(output)
end
function export.reorderDiacritics(text)
return (gsub(toNFD(text), combining_diacritic .. combining_diacritic .. "+", reorderDiacriticSequence))
end
--[=[
This breaks a word into meaningful "tokens", which are
individual letters or diphthongs with their diacritics.
Used by [[Module:grc-accent]] and [[Module:grc-pronunciation]].
--]=]
local function make_tokens(text)
local tokens, prev_info = {}, {}
local token_i, vowel_count = 1, 0 -- Vowel count tracks.
local prev, prev_vowel_info
for character in text:gmatch(UTF8_char) do
local curr_info = info[character]
-- Split vowels between tokens if not a diphthong.
if curr_info.vowel then
vowel_count = vowel_count + 1
if vowel_count == 2 and curr_info.offglide and not (
prev_vowel_info == iota_t or -- ιι → ι, ι; ιυ → ι, υ
prev_vowel_info == upsilon_t and curr_info == upsilon_t -- υυ → υ, υ
) then
vowel_count, prev_vowel_info = 0, nil
elseif prev then
token_i = token_i + 1
vowel_count, prev_vowel_info = 1, curr_info
else
vowel_count, prev_vowel_info = 1, curr_info
end
tokens[token_i] = (tokens[token_i] or "") .. character
elseif curr_info.diacritic then
vowel_count, prev_vowel_info = 0, nil
tokens[token_i] = (tokens[token_i] or "") .. character
if prev_info and (prev_info.diacritic or prev_info.vowel) then
if character == diaeresis or character == subscript then
-- Split the diphthong in the current token if a diaeresis or subscript
-- was found: the first letter, then the second letter plus any diacritics.
local previous_vowel, vowel_with_diaeresis = tokens[token_i]:match("^(" .. basic_Greek .. ")(" .. basic_Greek .. ".+)")
if previous_vowel then
tokens[token_i], tokens[token_i + 1] = previous_vowel, vowel_with_diaeresis
token_i = token_i + 1
else
-- The vowel preceding the vowel with the diaeresis will already be
-- placed in the previous token if it has a diacritic:
-- Περικλῆῐ̈ → Π ε ρ ι κ λ ῆ ῐ̈
--[[
mw.log('Diaeresis was found in ' .. text .. ', but the previous token ' ..
require("Module:Unicode data").add_dotted_circle(tokens[token_i]) ..
' couldn’t be split because it does not consist of two Basic Greek characters followed by other characters.')
--]]
end
-- If there is only a diaeresis, it could still be the first vowel of a
-- diphthong:
-- αὐτοϋιός → αὐ τ ο *ϋι* ό ς
if character == diaeresis and prev_info.vowel then
vowel_count, prev_vowel_info = 1, prev_info
end
end
elseif prev_info == breathy_cons_t then
if curr_info ~= breathing_t then
mw.log(("The character %s in %s should not have the accent %s on it."):format(
prev, text, require("Module:grc-utilities/templates").addDottedCircle(character)))
end
elseif prev then
-- prev can be nil when passed a bare diacritic (as in Translingual diacritic entries)
mw.log("The character " .. prev .. " cannot have a diacritic on it.")
end
else
vowel_count = 0
if prev then
token_i = token_i + 1
end
tokens[token_i] = (tokens[token_i] or "") .. character
end
prev = character
prev_info = curr_info
end
return tokens
end
local cache = {}
function export.tokenize(text)
text = toNFD(text)
if not cache[text] then
cache[text] = make_tokens(text)
end
return cache[text]
end
function export.syllableCount(word)
local tokens = export.tokenize(word)
local syllables = 0
for _, token in ipairs(tokens) do
if export.contains_vowel(token) then
syllables = syllables + 1
end
end
return syllables
end
--[=[ Places diacritics in the following order:
1. breathings or diaeresis
2. acute, circumflex, or grave
3. macron or breve
4. iota subscript
Used by [[Module:grc-pronunciation]]. ]=]
function export.pronunciationOrder(text)
text = standard_diacritics(text)
if match(text, groups[1]) then
text = gsub(text,
diacritic .. diacritic .. "+",
function(sequence)
-- Put breathing and diaeresis first, then accents, then macron or breve
return concat{
match(sequence, groups[2]) or "",
match(sequence, groups[3]) or "",
match(sequence, groups[1]) or "",
match(sequence, groups[4]) or ""
}
end)
text = gsub(text, macron, spacing_macron) -- combining to spacing macron
text = gsub(text, breve, spacing_breve) -- combining to spacing breve
end
return toNFC(text)
end
return export
5aa4dic63x4uljccacqp8731e2c5u23
Modul:grc-utilities/data
828
11664
373481
111958
2026-09-10T18:05:29Z
SNN95
2113
kemaskini
373481
Scribunto
text/plain
local data = {}
local concat = table.concat
local insert = table.insert
local U = require("Module:string/char")
local macron = U(0x304)
local spacing_macron = U(0xAF)
local modifier_macron = U(0x2C9)
local breve = U(0x306)
local spacing_breve = U(0x2D8)
local rough = U(0x314)
local smooth = U(0x313)
local diaeresis = U(0x308)
local acute = U(0x301)
local grave = U(0x300)
local circum = U(0x342)
local Latin_circum = U(0x302)
local coronis = U(0x343)
local subscript = U(0x345)
local undertie = U(0x35C) -- actually "combining double breve below"
data["diacritics"] = {
["macron"] = macron,
["spacing_macron"] = spacing_macron,
["modifier_macron"] = modifier_macron,
["breve"] = breve,
["spacing_breve"] = spacing_breve,
["rough"] = rough,
["smooth"] = smooth,
["diaeresis"] = diaeresis,
["acute"] = acute,
["grave"] = grave,
["circum"] = circum,
["Latin_circum"] = Latin_circum,
["coronis"] = coronis,
["subscript"] = subscript,
}
local diacritics_all, diacritics_combining = {}, {}
for _, diacritic in pairs(data.diacritics) do
insert(diacritics_all, diacritic)
if not (diacritic == spacing_macron or diacritic == modifier_macron or diacritic == spacing_breve) then
insert(diacritics_combining, diacritic)
end
end
diacritics_all = concat(diacritics_all)
data.diacritics.all = diacritics_all
diacritics_combining = concat(diacritics_combining)
data.diacritics.combining = diacritics_combining
data["named"] = data["diacritics"]
data["diacritic"] = "[" .. diacritics_all .. "]"
data["combining_diacritic"] = "[" .. diacritics_combining .. "]"
data["all"] = data["diacritic"]
data["diacritic_groups"] = {
[1] = "[".. macron .. breve .."]",
[2] = "[".. diaeresis .. smooth .. rough .."]",
[3] = "[".. acute .. grave .. circum .. "]",
[4] = subscript,
}
data["groups"] = data["diacritic_groups"]
data["diacritic_groups"]["accents"] = data["groups"][3]
data["length"] = {
optional = macron .. "?" .. breve .. "?"
}
data["length"]["mandatory"] = "%f[" .. macron .. breve .. "]" .. data["length"]["optional"]
data["diacritic_order"] = {
[macron] = 1,
[breve] = 2,
[rough] = 3,
[smooth] = 3,
[diaeresis] = 3,
[acute] = 4,
[grave] = 4,
[circum] = 4,
[subscript] = 5,
}
data["diacritical_conversions"] = {
-- Convert spacing to combining diacritics
[spacing_macron] = macron, -- macron
[modifier_macron] = macron,
[spacing_breve] = breve, -- breve
["῾"] = rough, -- rough breathing, modifier letter reversed comma
["ʽ"] = rough,
["᾿"] = smooth, -- smooth breathing, modifier letter apostrophe, coronis, combining coronis
["ʼ"] = smooth,
["´"] = acute, -- acute
["`"] = grave, -- grave
["῀"] = circum, -- Greek circumflex (perispomeni), circumflex, combining circumflex
["ˆ"] = circum,
[Latin_circum] = circum,
["¨"] = diaeresis,
}
-- Canonical letter forms
data["canonical"] = {
["ϴ"] = "Θ",
["Ϗ"] = "Καί",
["Ϗ̀"] = "Καὶ",
["Ϟ"] = "Ϙ",
["Ϲ"] = "Σ",
["ϒ"] = "Υ",
["ϓ"] = "Ύ",
["ϔ"] = "Ϋ",
["Ϡ"] = "Ͳ",
["ϐ"] = "β",
["ϵ"] = "ε",
["ϑ"] = "θ",
["ϰ"] = "κ",
["ϗ"] = "καί",
["ϗ̀"] = "καὶ",
["ϖ"] = "π",
["ϟ"] = "ϙ",
["ϱ"] = "ρ",
["ς"] = "σ",
["ϲ"] = "σ",
["ϕ"] = "φ",
["ϡ"] = "ͳ",
}
data["consonants"] = "ΒβΓγΔδϜϝͶͷϚϛΖζͰͱΘθͿϳΚκΛλΜμΝνΞξΠπϺϻϘϙϞϟΡρΣσςϹϲΤτΦφΧχΨψͲͳϠϡϷϸ"
data["consonant"] = "[" .. data.consonants .. "]"
data["vowels"] = "ΑαΕεΗηΙιΟοΥυΩω"
data["vowel"] = "[" .. data.vowels .. "]"
-- Basic letters with and without diacritics
data.word_characters = "%*'’" .. require("Module:scripts").getByCode("Polyt"):getCharacters() .. diacritics_combining .. undertie
data.word_character = "[" .. data.word_characters .. "]"
return data
5hdoqdjze6yrf3ezfj8anzvm2qvihae
Modul:links/data
828
11809
373499
280885
2026-09-10T20:36:31Z
SNN95
2113
kemaskini
373499
Scribunto
text/plain
local data = {}
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
local u = require("Module:string utilities").char
data.phonetic_extraction = {
["th"] = "Module:th",
["km"] = "Module:km",
}
data.ignored_prefixes = {
["cat"] = true,
["category"] = true,
["file"] = true,
["image"] = true
}
-- Scheme for using unsupported characters in titles.
data.unsupported_characters = {
["#"] = "`num`",
["%"] = "`percnt`", -- only escaped in percent encoding
["&"] = "`amp`", -- only escaped in HTML entities
["."] = "`period`", -- only escaped in dot-slash notation
["<"] = "`lt`",
[">"] = "`gt`",
["["] = "`lsqb`",
["]"] = "`rsqb`",
["_"] = "`lowbar`",
["`"] = "`grave`", -- used to enclose unsupported characters in the scheme, so a raw use in an unsupported title must be escaped to prevent interference
["{"] = "`lcub`",
["|"] = "`vert`",
["}"] = "`rcub`",
["~"] = "`tilde`", -- only escaped when 3 or more are consecutive
["\239\191\189"] = "`repl`" -- replacement character U+FFFD, which can't be typed directly here due to an abuse filter
}
-- Manually specified unsupported titles. Only put titles here if there is a different reason why they are unsupported, and not just because they contain one of the unsupported characters above.
data.unsupported_titles = {
[" "] = "Space",
["&"] = "`amp`amp;",
["λοπαδοτεμαχοσελαχογαλεοκρανιολειψανοδριμυποτριμματοσιλφιοκαραβομελιτοκατακεχυμενοκιχλεπικοσσυφοφαττοπεριστεραλεκτρυονοπτοκεφαλλιοκιγκλοπελειολαγῳοσιραιοβαφητραγανοπτερύγων"] = "Ancient Greek dish",
["กรุงเทพมหานคร อมรรัตนโกสินทร์ มหินทรายุธยา มหาดิลกภพ นพรัตนราชธานีบูรีรมย์ อุดมราชนิเวศน์มหาสถาน อมรพิมานอวตารสถิต สักกะทัตติยวิษณุกรรมประสิทธิ์"] = "Thai name of Bangkok",
[u(0x1680)] = "Ogham space",
[u(0x3000)] = "Ideographic space"
}
-- Mammoth pages contain only Translingual and English entries, if present. The remaining L2s are placed on subpages.
-- The same subpage titles are used across all mammoth pages for the convenience of bot and script operators.
-- Assuming that most mammoth pages will be Latin-script terms, the subpage groupings are determined by dividing the
-- list of Latin-script languages known to Wiktionary into two (three, ...) roughly equal alphabetic divisions. This is
-- easily done by looking at Petscan's output:
-- https://petscan.wmcloud.org/?sortby=title&language=en&ns%5B14%5D=1&categories=Latin+script+languages&project=wiktionary&doit=
-- This data structure contains types of splits, each of which is a list of names of splits and Lua patterns applied to
-- the decomposed L2 name (with apostrophes and double quotes removed and certain other transformations applied; see
-- get_L2_sort_key() in [[Module:headword/page]]), or "true" for the final catch-all subpage (which includes anything
-- not beginning with a Latin letter after the transformations are applied; this includes e.g. ǃKung but not 'Are'are,
-- which sorts with A, and not Àhàn, which likewise sorts with A). The patterns must be suitable for use with plain
-- string functions, not their mw.ustring equivalents.
data.mammoth_page_subpage_types = {
twos = {
{"languages A to L", "^[A-L]"},
{"languages M to Z", true},
},
threes = {
{"languages A to I", "^[A-I]"},
{"languages J to Q", "^[J-Q]"},
{"languages R to Z", true},
},
CJK = {
{"languages A to C", "^[A-C]"}, -- Translingual and Chinese on one page
{"languages D to Z", true}, -- all the remainder (mostly Japanese, Korean, Vietnamese) on the other
},
}
-- "Mammoth pages" are pages whose entries cannot be housed on a single page because of MediaWiki limits. The key is
-- the page and the value is the subpage type, as defined above in `mammoth_page_subpage_types`.
data.mammoth_pages = {
["a"] = "twos", -- FIXME: change to threes
["i"] = "twos",
["mammoth page test"] = "twos", -- required for testing purposes - please leave here
}
return data
9n45na7udwk645td2vxc6cwry17hnx5
Modul:table
828
11811
373496
223588
2026-09-10T20:26:33Z
SNN95
2113
373496
Scribunto
text/plain
local export = {}
--[==[ intro:
This module provides functions for dealing with Lua tables. All of them, except for two helper functions, take a table
as their first argument.
Some functions are available as methods in the arrays created by [[Module:array]].
Functions by what they do:
* Create a new table:
** `shallowCopy`, `deepCopy`, `removeDuplicates`, `numKeys`, `compressSparseArray`, `keysToList`, `reverse`, `invert`, `listToSet`
* Create an array:
** `removeDuplicates`, `numKeys`, `compressSparseArray`, `keysToList`, `reverse`
* Return information about the table:
** `size`, `length`, `contains`, `isArray`, `deepEquals`
* Treat the table as an array (that is, operate on the values in the array portion of the table: values indexed by
consecutive integers starting at {1}):
** `removeDuplicates`, `length`, `contains`, `serialCommaJoin`, `reverseIpairs`, `reverse`, `invert`, `listToSet`, `isArray`
* Treat a table as a sparse array (that is, operate on values indexed by non-consecutive integers):
** `numKeys`, `maxIndex`, `compressSparseArray`, `sparseConcat`, `sparseIpairs`
* Generate an iterator:
** `sparseIpairs`, `sortedPairs`, `reverseIpairs`
* Other functions:
** `sparseConcat`, `serialCommaJoin`, `reverseConcat`
The original version was a copy of {{w|Module:TableTools}} on Wikipedia via [[c:Module:TableTools|Module:TableTools]] on
Commons, but in the course of time this module has been almost completely rewritten, with many new functions added. The
main legacy of this is the use of camelCase for function names rather than snake_case, as is normal in the English
Wiktionary.
]==]
local load_module = "Module:load"
local math_module = "Module:math"
local table = table
local concat = table.concat
local dump = mw.dumpObject
local ipairs = ipairs
local ipairs_default_iter = ipairs{export}
local next = next
local pairs = pairs
local require = require
local select = select
local signed_index -- defined as export.signedIndex
local table_len -- defined as export.length
local type = type
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function is_integer(...)
is_integer = require(math_module).is_integer
return is_integer(...)
end
local function safe_require(...)
safe_require = require(load_module).safe_require
return safe_require(...)
end
--[==[
Given an array and a signed index, returns the true table index. If the signed index is negative, the array will be counted from the end, where {-1} is the highest index in the array; otherwise, the returned index will be the same. To aid optimization, the first argument may be a number representing the array length instead of the array itself; this is useful when the array length is already known, as it avoids recalculating it each time this function is called.]==]
function export.signedIndex(t, k)
if not is_integer(k) then
error("index must be an integer")
end
return k < 0 and (type(t) == "table" and table_len(t) or t) + k + 1 or k
end
signed_index = export.signedIndex
--[==[
An iterator which works like `pairs`, but ignores any `__pairs` metamethod.]==]
function export.rawPairs(t)
return next, t, nil
end
--[==[
An iterator which works like `ipairs`, but ignores any `__ipairs` metamethod.]==]
function export.rawIpairs(t)
return ipairs_default_iter, t, 0
end
--[==[
This returns the length of a table, or the first integer key n counting from 1 such that t[n + 1] is nil. It is a more reliable form of the operator `#`, which can become unpredictable under certain circumstances due to the implementation of tables under the hood in Lua, and therefore should not be used when dealing with arbitrary tables. `#` also does not use metamethods, so will return the wrong value in cases where it is desirable to take these into account (e.g. data loaded via `mw.loadData`). If `raw` is set, then metamethods will be ignored, giving the true table length.
For arrays, this function is faster than `export.size`.]==]
function export.length(t, raw)
local n = 0
if raw then
for i in ipairs_default_iter, t, 0 do
n = i
end
return n
end
repeat
n = n + 1
until t[n] == nil
return n - 1
end
table_len = export.length
local function getIteratorValues(i, j , step, t_len)
i, j = i and signed_index(t_len, i), j and signed_index(t_len, j)
if step == nil then
i, j = i or 1, j or t_len
return i, j, j < i and -1 or 1
elseif step == 0 or not is_integer(step) then
error("step must be a non-zero integer")
elseif step < 0 then
return i or t_len, j or 1, step
end
return i or 1, j or t_len, step
end
--[==[
Given an array `list` and function `func`, iterate through the array applying {func(r, k, v)}, and returning the result,
where `r` is the value calculated so far, `k` is an index, and `v` is the value at index `k`. For example,
{reduce(array, function(a, _, v) return a + v end)} will return the sum of `array`.
Optional arguments:
* `i`: start index; negative values count from the end of the array
* `j`: end index; negative values count from the end of the array
* `step`: step increment
These must be non-zero integers. The function will determine where to iterate from, whether to iterate forwards or
backwards and by how much, based on these inputs (see examples below for default behaviours).
Examples:
# No values for i, j or step results in forward iteration from the start to the end in steps of 1 (the default).
# step=-1 results in backward iteration from the end to the start in steps of 1.
# i=7, j=3 results in backward iteration from indices 7 to 3 in steps of 1 (i.e. step=-1).
# j=-3 results in forward iteration from the start to the 3rd last index.
# j=-3, step=-1 results in backward iteration from the end to the 3rd last index.]==]
function export.reduce(t, func, i, j, step)
i, j, step = getIteratorValues(i, j, step, table_len(t))
local ret = t[i]
for k = i + step, j, step do
ret = func(ret, k, t[k])
end
return ret
end
do
local function replace(t, func, i, j, step, generate)
local t_len = table_len(t)
-- Normalized i, j and step, based on the inputs.
local norm_i, norm_j, norm_step = getIteratorValues(i, j, step, t_len)
if norm_step > 0 then
i, j, step = 1, t_len, 1
else
i, j, step = t_len, 1, -1
end
-- "Signed" variables are multiplied by -1 if `step` is negative.
local t_new, signed_i, signed_j = generate and {} or t, norm_i * step, norm_j * step
for k = i, j, step do
-- Replace the values iff they're within the i to j range and `step` wouldn't skip the key.
-- Note: i > j if `step` is positive; i < j if `step` is negative. Otherwise, the range is empty.
local signed_k = k * step
if signed_k >= signed_i and signed_k <= signed_j and (k - norm_i) % norm_step == 0 then
t_new[k] = func(k, t[k])
-- Otherwise, add the existing value if `generate` is set.
elseif generate then
t_new[k] = t[k]
end
end
return t_new
end
--[==[
Given an array `list` and function `func`, iterate through the array applying {func(k, v)} (where `k` is an index, and
`v` is the value at index `k`), replacing the relevant values with the result. For example,
{apply(array, function(_, v) return 2 * v end)} will double each member of the array.
Optional arguments:
* `i`: start index; negative values count from the end of the array
* `j`: end index; negative values count from the end of the array
* `step`: step increment
These must be non-zero integers. The function will determine where to iterate from, whether to iterate forwards or
backwards and by how much, based on these inputs (see examples below for default behaviours).
Examples:
# No values for i, j or step results in forward iteration from the start to the end in steps of 1 (the default).
# step=-1 results in backward iteration from the end to the start in steps of 1.
# i=7, j=3 results in backward iteration from indices 7 to 3 in steps of 1 (i.e. step=-1).
# j=-3 results in forward iteration from the start to the 3rd last index.
# j=-3, step=-1 results in backward iteration from the end to the 3rd last index.]==]
function export.apply(t, func, i, j, step)
return replace(t, func, i, j, step, false)
end
--[==[
Given an array `list` and function `func`, iterate through the array applying {func(k, v)} (where `k` is an index, and
`v` is the value at index `k`), and return a shallow copy of the original array with the relevant values replaced. For example,
{generate(array, function(_, v) return 2 * v end)} will return a new array in which each value has been doubled.
Optional arguments:
* `i`: start index; negative values count from the end of the array
* `j`: end index; negative values count from the end of the array
* `step`: step increment
These must be non-zero integers. The function will determine where to iterate from, whether to iterate forwards or
backwards and by how much, based on these inputs (see examples below for default behaviours).
Examples:
# No values for i, j or step results in forward iteration from the start to the end in steps of 1 (the default).
# step=-1 results in backward iteration from the end to the start in steps of 1.
# i=7, j=3 results in backward iteration from indices 7 to 3 in steps of 1 (i.e. step=-1).
# j=-3 results in forward iteration from the start to the 3rd last index.
# j=-3, step=-1 results in backward iteration from the end to the 3rd last index.]==]
function export.generate(t, func, i, j, step)
return replace(t, func, i, j, step, true)
end
end
--[==[
Given an array `list` and function `func`, iterate through the array applying {func(k, v)} (where `k` is an index, and
`v` is the value at index `k`), and returning whether the function is true for all iterations.
Optional arguments:
* `i`: start index; negative values count from the end of the array
* `j`: end index; negative values count from the end of the array
* `step`: step increment
These must be non-zero integers. The function will determine where to iterate from, whether to iterate forwards or
backwards and by how much, based on these inputs (see examples below for default behaviours).
Examples:
# No values for i, j or step results in forward iteration from the start to the end in steps of 1 (the default).
# step=-1 results in backward iteration from the end to the start in steps of 1.
# i=7, j=3 results in backward iteration from indices 7 to 3 in steps of 1 (i.e. step=-1).
# j=-3 results in forward iteration from the start to the 3rd last index.
# j=-3, step=-1 results in backward iteration from the end to the 3rd last index.]==]
function export.all(t, func, i, j, step)
i, j, step = getIteratorValues(i, j, step, table_len(t))
for k = i, j, step do
if not func(k, t[k]) then
return false
end
end
return true
end
--[==[
Given an array `list` and function `func`, iterate through the array applying {func(k, v)} (where `k` is an index, and
`v` is the value at index `k`), and returning whether the function is true for at least one iteration.
Optional arguments:
* `i`: start index; negative values count from the end of the array
* `j`: end index; negative values count from the end of the array
* `step`: step increment
These must be non-zero integers. The function will determine where to iterate from, whether to iterate forwards or
backwards and by how much, based on these inputs (see examples below for default behaviours).
Examples:
# No values for i, j or step results in forward iteration from the start to the end in steps of 1 (the default).
# step=-1 results in backward iteration from the end to the start in steps of 1.
# i=7, j=3 results in backward iteration from indices 7 to 3 in steps of 1 (i.e. step=-1).
# j=-3 results in forward iteration from the start to the 3rd last index.
# j=-3, step=-1 results in backward iteration from the end to the 3rd last index.]==]
function export.any(t, func, i, j, step)
i, j, step = getIteratorValues(i, j, step, table_len(t))
for k = i, j, step do
if not not (func(k, t[k])) then
return true
end
end
return false
end
--[==[
Joins an array with serial comma and serial conjunction, normally {"and"}. An improvement on {mw.text.listToText},
which doesn't properly handle serial commas.
Options:
* `conj`: Conjunction to use; defaults to {"and"}.
* `punc`: Punctuation to use; default to {","}.
* `dontTag`: Don't tag the serial comma and serial {"and"}. For error messages, in which HTML cannot be used.
* `dump`: Each item will be serialized with {mw.dumpObject}. For warnings and error messages.]==]
function export.serialCommaJoin(seq, options)
-- If the `dump` option is set, determine the table length as part of the
-- dump loop, instead of calling `table_len` separately.
local length
if options and options.dump then
local i, item = 1, seq[1]
if item ~= nil then
local dumped = {}
repeat
dumped[i] = dump(item)
i = i + 1
item = seq[i]
until item == nil
seq = dumped
end
length = i - 1
else
length = table_len(seq)
end
if length == 0 then
return ""
elseif length == 1 then
return seq[1]
end
local conj = options and options.conj
if conj == nil then
conj = "and"
end
if length == 2 then
return seq[1] .. " " .. conj .. " " .. seq[2]
end
local punc, dont_tag
if options then
punc = options.punc
if punc == nil then
punc = ","
end
dont_tag = options.dontTag
else
punc = ","
end
local comma
if dont_tag then
comma = "" -- since by default the serial comma doesn't display, when we can't tag we shouldn't display it.
conj = " " .. conj .. " "
else
comma = "<span class=\"serial-comma\">" .. punc .. "</span>"
conj = "<span class=\"serial-and\"> " .. conj .. "</span> "
end
return concat(seq, punc .. " ", 1, length - 1) .. comma .. conj .. seq[length]
end
--[==[
A function which works like `table.concat`, but respects any `__index` metamethod. This is useful for data loaded via `mw.loadData`.]==]
function export.concat(t, sep, i, j)
local list, k = {}, 0
while true do
k = k + 1
local v = t[k]
if v == nil then
return concat(list, sep, i, j)
end
list[k] = v
end
end
--[==[
Add a list of aliases for a given key to a table. The aliases must be given as a table.]==]
function export.alias(t, k, aliases)
for _, alias in pairs(aliases) do
t[alias] = t[k]
end
end
local mt = {}
function mt:__index(k)
local submodule = safe_require("Module:table/" .. k)
self[k] = submodule
return submodule
end
return setmetatable(export, mt)
exw27st65r96fvgc4krew9cy4eyvdow
Modul:languages/code to canonical name
828
12027
373525
346945
2026-09-11T03:05:16Z
SNN95
2113
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373525
Scribunto
text/plain
return {
["aa"] = "Afar",
["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"] = "Proto-Khasian",
["aav-nic-pro"] = "Proto-Nicobarese",
["aav-pkl-pro"] = "Proto-Pnar-Khasi-Lyngngam",
["aav-pro"] = "Proto-Austroasiatik",
["aaw"] = "Solong",
["aax"] = "Mandobo Atas",
["aaz"] = "Amarasi",
["ab"] = "Abkhaz",
["aba"] = "Abé",
["abb"] = "Bankon",
["abc"] = "Ayta Ambala",
["abd"] = "Agta Camarines Norte",
["abe"] = "Abenaki",
["abf"] = "Abai Sungai",
["abg"] = "Abaga",
["abh"] = "Arab Tajik",
["abi"] = "Abidji",
["abj"] = "Aka-Bea",
["abl"] = "Abung",
["abm"] = "Abanyom",
["abn"] = "Abua",
["abo"] = "Abon",
["abp"] = "Ayta Abenlen",
["abq"] = "Abaza",
["abs"] = "Melayu Ambon",
["abt"] = "Ambulas",
["abu"] = "Abure",
["abv"] = "Arab Bahrani",
["abw"] = "Pal",
["abx"] = "Inabaknon",
["aby"] = "Aneme Wake",
["abz"] = "Abui",
["aca"] = "Achagua",
["acb"] = "Áncá",
["acd"] = "Gikyode",
["ace"] = "Aceh",
["ach"] = "Acholi",
["aci"] = "Aka-Cari",
["ack"] = "Aka-Kora",
["acl"] = "Akar-Bale",
["acm"] = "Arab Iraq",
["acn"] = "Achang",
["acp"] = "Acipa Timur",
["acr"] = "Achi",
["acs"] = "Acroá",
["acu"] = "Achuar",
["acv"] = "Achumawi",
["acw"] = "Arab Hijaz",
["acx"] = "Arab Oman",
["acy"] = "Arab Cyprus",
["acz"] = "Acheron",
["ada"] = "Adangme",
["adb"] = "Atauran",
["add"] = "Dzodinka",
["ade"] = "Adele",
["adf"] = "Arab Dhofar",
["adg"] = "Andegerebinha",
["adh"] = "Adhola",
["adi"] = "Adi",
["adj"] = "Adioukrou",
["adl"] = "Galo",
["adn"] = "Adang",
["ado"] = "Abu",
["adp"] = "Adap",
["adq"] = "Adangbe",
["adr"] = "Adonara",
["ads"] = "Bahasa Isyarat Adamorobe",
["adt"] = "Adnyamathanha",
["adu"] = "Aduge",
["adw"] = "Amondawa",
["ady"] = "Circassian Barat",
["adz"] = "Adzera",
["ae"] = "Avestan",
["aea"] = "Areba",
["aeb"] = "Arab Tunisia",
["aed"] = "Bahasa Isyarat Argentina",
["aee"] = "Pashayi Timur Laut",
["aek"] = "Haeke",
["ael"] = "Ambele",
["aem"] = "Arem",
["aen"] = "Bahasa Isyarat Armenia",
["aeq"] = "Aer",
["aer"] = "Arrernte Timur",
["aes"] = "Alsea",
["aeu"] = "Akeu",
["aew"] = "Ambakich",
["aey"] = "Amele",
["aez"] = "Aeka",
["af"] = "Afrikaans",
["afa-pro"] = "Proto-Afroasiatik",
["afb"] = "Arab Teluk",
["afd"] = "Andai",
["afe"] = "Putukwam",
["afg"] = "Bahasa Isyarat Afghanistan",
["afh"] = "Afrihili",
["afi"] = "Akrukay",
["afk"] = "Nanubae",
["afn"] = "Defaka",
["afo"] = "Eloyi",
["afp"] = "Tapei",
["afs"] = "Kreol Afro-Seminole",
["aft"] = "Afitti",
["afu"] = "Awutu",
["afz"] = "Obokuitai",
["aga"] = "Aguano",
["agb"] = "Legbo",
["agc"] = "Agatu",
["agd"] = "Agarabi",
["age"] = "Angal",
["agf"] = "Arguni",
["agg"] = "Angor",
["agh"] = "Ngelima",
["agj"] = "Argobba",
["agk"] = "Agta Isarog",
["agl"] = "Fembe",
["agm"] = "Angaataha",
["agn"] = "Agutaynen",
["ago"] = "Tainae",
["agq"] = "Aghem",
["agr"] = "Aguaruna",
["ags"] = "Esimbi",
["agt"] = "Agta Cagayan Tengah",
["agu"] = "Aguacateco",
["agv"] = "Agta Remontado",
["agw"] = "Kahua",
["agx"] = "Aghul",
["agy"] = "Alta Selatan",
["agz"] = "Agta Gunung Iriga",
["aha"] = "Ahanta",
["ahb"] = "Axamb",
["ahg"] = "Qimant",
["ahh"] = "Aghu",
["ahi"] = "Tiagba",
["ahk"] = "Akha",
["ahl"] = "Igo",
["ahm"] = "Mobu",
["ahn"] = "Àhàn",
["aho"] = "Ahom",
["ahp"] = "Apro",
["ahr"] = "Ahirani",
["ahs"] = "Ashe",
["aht"] = "Ahtna",
["aia"] = "Arosi",
["aib"] = "Äynu",
["aic"] = "Ainbai",
["aid"] = "Alngith",
["aie"] = "Amara",
["aif"] = "Agi",
["aig"] = "Kreol Inggeris Antigua dan Barbuda",
["aih"] = "Ai-Cham",
["aii"] = "Neo-Aramia Assyria",
["aij"] = "Lishanid Noshan",
["aik"] = "Ake",
["ail"] = "Aimele",
["aim"] = "Aimol",
["ain"] = "Ainu",
["aio"] = "Aiton",
["aip"] = "Burumakok",
["air"] = "Airoran",
["ait"] = "Arikem",
["aiw"] = "Aari",
["aix"] = "Aighon",
["aiy"] = "Ali",
["aja"] = "Aja (Afrika Timur)",
["ajg"] = "Aja (Afrika Barat)",
["aji"] = "Ajië",
["ajn"] = "Andajin",
["ajp"] = "Arab Syam Selatan",
["ajs"] = "Bahasa Isyarat Yahudi Algeria",
["ajw"] = "Ajawa",
["ajz"] = "Karbi Amri",
["ak"] = "Akan",
["akb"] = "Batak Angkola",
["akc"] = "Mpur",
["akd"] = "Ukpet-Ehom",
["ake"] = "Akawaio",
["akf"] = "Akpa",
["akg"] = "Anakalangu",
["akh"] = "Angal Heneng",
["aki"] = "Aiome",
["akj"] = "Jeru",
["akk"] = "Akkadia",
["akl"] = "Aklanon",
["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"] = "Alabama",
["ala"] = "Alago",
["alc"] = "Kawésqar",
["ald"] = "Alladian",
["ale"] = "Aleut",
["alf"] = "Alege",
["alg-aga"] = "Agawam",
["alg-pro"] = "Proto-Algonquian",
["alh"] = "Alawa",
["ali"] = "Amaimon",
["alj"] = "Alangan",
["alk"] = "Alak",
["all"] = "Allar",
["alm"] = "Amblong",
["alo"] = "Larike-Wakasihu",
["alp"] = "Alune",
["alq"] = "Algonquin",
["alr"] = "Alutor",
["alt"] = "Altai Selatan",
["alu"] = "'Are'are",
["alv-ama"] = "Amasi",
["alv-bgu"] = "Bainouk Gubeeher",
["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"] = "Proto-Gbe",
["alv-gng-pro"] = "Proto-Guang",
["alv-gtm-pro"] = "Proto-Togo Tengah",
["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"] = "Proto-Atlantik-Congo",
["alv-von-pro"] = "Proto-Volta-Niger",
["alv-yor-pro"] = "Proto-Yoruba",
["alv-yrd-pro"] = "Proto-Yoruboid",
["alw"] = "Alaba",
["alx"] = "Amol",
["aly"] = "Alyawarr",
["alz"] = "Alur",
["am"] = "Amharic",
["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"] = "Amami Ōshima Selatan",
["amt"] = "Amto",
["amu"] = "Amuzgo Guerrero",
["amv"] = "Ambelau",
["amw"] = "Neo-Aramia Barat",
["amx"] = "Anmatyerre",
["amy"] = "Ami",
["amz"] = "Atampaya",
["an"] = "Aragonese",
["ana"] = "Andaqui",
["anb"] = "Andoa",
["anc"] = "Ngas",
["and"] = "Ansus",
["ane"] = "Xârâcùù",
["anf"] = "Animere",
["ang"] = "Inggeris Kuno",
["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"] = "Alor",
["aom"] = "Ömie",
["aon"] = "Arapesh Bumbita",
["aor"] = "Aore",
["aos"] = "Taikat",
["aot"] = "Atong (India)",
["aou"] = "A'ou",
["aox"] = "Atorada",
["aoz"] = "Uab Meto",
["apa-pro"] = "Proto-Apachean",
["apb"] = "Sa'a",
["apc"] = "Arab Syam Utara",
["apd"] = "Arab Sudan",
["ape"] = "Bukiyip",
["apf"] = "Agta Pahanan",
["apg"] = "Ampanang",
["aph"] = "Athpare",
["api"] = "Apiaká",
["apj"] = "Jicarilla",
["apk"] = "Apache Dataran",
["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"] = "Apache Barat",
["apx"] = "Aputai",
["apy"] = "Apalaí",
["apz"] = "Safeyoka",
["aqc"] = "Archi",
["aqd"] = "Dogon Ampari",
["aqg"] = "Arigidi",
["aql-pro"] = "Proto-Algic",
["aqm"] = "Atohwaim",
["aqn"] = "Alta Utara",
["aqp"] = "Atakapa",
["aqr"] = "Arhâ",
["aqt"] = "Angaité",
["aqz"] = "Akuntsu",
["ar"] = "Arabic",
["arc"] = "Aramia",
["ard"] = "Arabana",
["are"] = "Arrernte Barat",
["arh"] = "Arhuaco",
["ari"] = "Arikara",
["arj"] = "Arapaso",
["ark"] = "Arikapú",
["arl"] = "Arabela",
["arn"] = "Mapudungun",
["aro"] = "Araona",
["arp"] = "Arapaho",
["arq"] = "Arab Algeria",
["arr"] = "Arara-Karo",
["ars"] = "Arab Najdi",
["art-adu"] = "Adûni",
["art-bel"] = "Kreol Belter",
["art-blk"] = "Bolak",
["art-bsp"] = "Bahasa Hitam",
["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"] = "Valyrian Tinggi",
["aru"] = "Arua",
["arv"] = "Arbore",
["arw"] = "Lokono",
["arx"] = "Aruá",
["ary"] = "Arab Maghribi",
["arz"] = "Arab Mesir",
["as"] = "Assamese",
["asa"] = "Pare",
["asb"] = "Assiniboine",
["asc"] = "Asmat Pesisir Casuarina",
["ase"] = "Bahasa Isyarat Amerika",
["asf"] = "Auslan",
["asg"] = "Cishingini",
["ash"] = "Abishira",
["asi"] = "Buruwai",
["asj"] = "Nsari",
["ask"] = "Ashkun",
["asl"] = "Asilulu",
["asn"] = "Asuriní Xingú",
["aso"] = "Dano",
["asp"] = "Bahasa Isyarat Algeria",
["asq"] = "Bahasa Isyarat Austria",
["asr"] = "Asuri",
["ass"] = "Ipulo",
["ast"] = "Asturia",
["asu"] = "Asurini Tocantins",
["asv"] = "Asoa",
["asw"] = "Bahasa Isyarat Orang Asli Australia",
["asx"] = "Muratayak",
["asy"] = "Asmat Yaosakor",
["asz"] = "As",
["ata"] = "Pele-Ata",
["atb"] = "Zaiwa",
["atc"] = "Atsahuaca",
["atd"] = "Manobo Ata",
["ate"] = "Atemble",
["atg"] = "Okpela",
["ath-nic"] = "Nicola",
["ath-pro"] = "Proto-Athabaskan",
["ati"] = "Attié",
["atj"] = "Atikamekw",
["atk"] = "Ati",
["atl"] = "Agta Gunung Iraya",
["atm"] = "Ata",
["ato"] = "Atong (Cameroon)",
["atp"] = "Atta Pudtol",
["atq"] = "Aralle-Tabulahan",
["atr"] = "Waimiri-Atroari",
["ats"] = "Gros Ventre",
["att"] = "Atta Pamplona",
["atu"] = "Reel",
["atv"] = "Altai Utara",
["atw"] = "Atsugewi",
["atx"] = "Arutani",
["aty"] = "Aneityum",
["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"] = "One Molmo",
["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-New South Wales Tengah",
["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"] = "Arab Uzbeki",
["av"] = "Avar",
["avb"] = "Avau",
["avd"] = "Alviri-Vidari",
["avi"] = "Avikam",
["avk"] = "Kotava",
["avm"] = "Angkamuthi",
["avn"] = "Avatime",
["avs"] = "Aushiri",
["avt"] = "Au",
["avu"] = "Avokaya",
["avv"] = "Avá-Canoeiro",
["awa"] = "Awadhi",
["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-war"] = "Warekena Kuno",
["awd-yum"] = "Yumana",
["awe"] = "Awetí",
["awg"] = "Anguthimri",
["awh"] = "Awbono",
["awi"] = "Aekyom",
["awk"] = "Awabakal",
["awm"] = "Arawum",
["awn"] = "Awngi",
["awo"] = "Awak",
["awr"] = "Awera",
["aws"] = "Awyu Selatan",
["awt"] = "Araweté",
["awu"] = "Awyu Tengah",
["awv"] = "Awyu Jair",
["aww"] = "Awun",
["awx"] = "Awara",
["awy"] = "Awyu Edera",
["axb"] = "Abipón",
["axe"] = "Ayerrerenge",
["axg"] = "Arára (Mato Grosso)",
["axk"] = "Aka (Afrika Tengah)",
["axl"] = "Aranda Selatan Bawah",
["axm"] = "Armenia Pertengahan",
["axx"] = "Xârâgurè",
["ay"] = "Aymara",
["aya"] = "Awar",
["ayb"] = "Ayizo",
["ayd"] = "Ayabadhu",
["aye"] = "Ayere",
["ayg"] = "Nyanga (Togo)",
["ayi"] = "Leyigha",
["ayk"] = "Akuku",
["ayl"] = "Arab Libya",
["ayn"] = "Arab Yaman",
["ayo"] = "Ayoreo",
["ayp"] = "Arab Mesopotamia Utara",
["ayq"] = "Ayi",
["ays"] = "Ayta Sorsogon",
["ayt"] = "Ayta Bataan",
["ayu"] = "Ayu",
["ayz"] = "Maybrat",
["az"] = "Azerbaijani",
["aza"] = "Azha",
["azc-caz"] = "Cazcan",
["azc-cup-pro"] = "Proto-Cupan",
["azc-ktn"] = "Kitanemuk",
["azc-nah-pro"] = "Proto-Nahuan",
["azc-nic"] = "Nicoleño",
["azc-num-pro"] = "Proto-Numic",
["azc-pro"] = "Proto-Uto-Aztecan",
["azc-tak-pro"] = "Proto-Takic",
["azc-tat"] = "Tataviam",
["azd"] = "Nahuatl Durango Timur",
["azg"] = "Amuzgo San Pedro Amuzgos",
["azm"] = "Amuzgo Ipalapa",
["azn"] = "Nahuatl Durango Barat",
["azo"] = "Awing",
["azt"] = "Atta Faire",
["azz"] = "Nahuatl Puebla Tanah Tinggi",
["ba"] = "Bashkir",
["baa"] = "Babatana",
["bab"] = "Bainouk-Gunyuño",
["bac"] = "Badui",
["bae"] = "Baré",
["baf"] = "Nubaca",
["bag"] = "Tuki",
["bah"] = "Kreol Bahamas",
["baj"] = "Barakai",
["bal"] = "Baluchi",
["ban"] = "Bali",
["bao"] = "Waimaha",
["bap"] = "Bantawa",
["bar"] = "Bavarian",
["bas"] = "Basaa",
["bau"] = "Badanchi",
["bav"] = "Babungo",
["baw"] = "Bambili-Bambui",
["bax"] = "Bamum",
["bay"] = "Batuley",
["bba"] = "Baatonum",
["bbb"] = "Barai",
["bbc"] = "Batak Toba",
["bbd"] = "Bau",
["bbe"] = "Bangba",
["bbf"] = "Baibai",
["bbg"] = "Barama",
["bbh"] = "Bugan",
["bbi"] = "Barombi",
["bbj"] = "Ghomala'",
["bbk"] = "Babanki",
["bbl"] = "Bats",
["bbm"] = "Babango",
["bbn"] = "Uneapa",
["bbo"] = "Konabéré",
["bbp"] = "Banda Tengah Barat",
["bbq"] = "Bamali",
["bbr"] = "Girawa",
["bbs"] = "Bakpinka",
["bbt"] = "Mburku",
["bbu"] = "Bakulung",
["bbv"] = "Karnai",
["bbw"] = "Baba",
["bbx"] = "Bubia",
["bby"] = "Befang",
["bca"] = "Bai Tengah",
["bcb"] = "Bainouk-Samik",
["bcd"] = "Babar Utara",
["bce"] = "Bamenyam",
["bcf"] = "Bamu",
["bcg"] = "Baga Pokur",
["bch"] = "Bariai",
["bci"] = "Baoule",
["bcj"] = "Bardi",
["bck"] = "Bunaba",
["bcl"] = "Bikol Tengah",
["bcm"] = "Banoni",
["bcn"] = "Bibaali",
["bco"] = "Kaluli",
["bcp"] = "Baali",
["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",
["bdk"] = "Budukh",
["bdl"] = "Bajau Indonesia",
["bdm"] = "Buduma",
["bdn"] = "Baldemu",
["bdo"] = "Morom",
["bdp"] = "Bende",
["bdq"] = "Bahnar",
["bdr"] = "Bajau Sama",
["bds"] = "Burunge",
["bdt"] = "Bokoto",
["bdu"] = "Oroko",
["bdv"] = "Bodo Parja",
["bdw"] = "Baham",
["bdx"] = "Budong-Budong",
["bdy"] = "Bandjalang",
["bdz"] = "Badeshi",
["be"] = "Belarusian",
["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"] = "Proto-Berber",
["ber-zuw"] = "Zuwara",
["bes"] = "Besme",
["bet"] = "Guiberoua Bété",
["beu"] = "Blagar",
["bev"] = "Daloa Bété",
["bew"] = "Betawi",
["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"] = "Badaga",
["bfr"] = "Bazigar",
["bfs"] = "Bai Selatan",
["bft"] = "Balti",
["bfu"] = "Gahri",
["bfw"] = "Bondo",
["bfx"] = "Bantayanon",
["bfy"] = "Bagheli",
["bfz"] = "Mahasu Pahari",
["bg"] = "Bulgarian",
["bga"] = "Gwamhi-Wuri",
["bgb"] = "Bobongko",
["bgc"] = "Haryanvi",
["bgd"] = "Rathwi Bareli",
["bge"] = "Bauria",
["bgf"] = "Bangandu",
["bgg"] = "Bugun",
["bgi"] = "Giangan",
["bgj"] = "Bangolan",
["bgk"] = "Bit",
["bgl"] = "Bo",
["bgo"] = "Baga Koga",
["bgq"] = "Bagri",
["bgr"] = "Chin Bawm",
["bgs"] = "Tagabawa",
["bgt"] = "Bughotu",
["bgu"] = "Mbongno",
["bgv"] = "Warkay-Bipim",
["bgw"] = "Bhatri",
["bgx"] = "Balkan Gagauz Turkish",
["bgy"] = "Benggoi",
["bgz"] = "Banggai",
["bh"] = "Bihari",
["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"] = "Neo-Aram Bohtan",
["bho"] = "Bhojpur",
["bhp"] = "Bima",
["bhq"] = "Tukang Besi Selatan",
["bhs"] = "Buwal",
["bht"] = "Bhattiyali",
["bhu"] = "Bhunjia",
["bhv"] = "Bahau",
["bhw"] = "Biak",
["bhx"] = "Bhalay",
["bhy"] = "Bhele",
["bhz"] = "Bada",
["bi"] = "Bislama",
["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"] = "Birifor Selatan",
["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"] = "Banjar",
["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"] = "Binukid",
["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"] = "Bolongan",
["blk"] = "Karen Pa'o",
["bll"] = "Biloxi",
["blm"] = "Beli",
["bln"] = "Bicolano Catanduanes Selatan",
["blo"] = "Anii",
["blp"] = "Blablanga",
["blq"] = "Baluan-Pam",
["blr"] = "Blang",
["bls"] = "Balaesang",
["blt"] = "Tai Dam",
["blv"] = "Kibala",
["blw"] = "Balangao",
["blx"] = "Mag-Indi Ayta",
["bly"] = "Notre",
["blz"] = "Balantak",
["bm"] = "Bambara",
["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"] = "Bengali",
["bna"] = "Bonerate",
["bnb"] = "Bookan",
["bnd"] = "Banda",
["bne"] = "Bintauna",
["bnf"] = "Masiwang",
["bng"] = "Benga",
["bni"] = "Bangi",
["bnj"] = "Tawbuid Timur",
["bnk"] = "Bierebo",
["bnl"] = "Boon",
["bnm"] = "Batanga",
["bnn"] = "Bunun",
["bno"] = "Asi",
["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 (Afrika Selatan)",
["bnt-mpi"] = "Mpiin",
["bnt-mpu"] = "Mpuono",
["bnt-ngu-pro"] = "Proto-Nguni",
["bnt-phu"] = "Phuthi",
["bnt-pro"] = "Proto-Bantu",
["bnt-sab-pro"] = "Proto-Sabaki",
["bnt-sbo"] = "Boma Selatan",
["bnt-sts-pro"] = "Proto-Sotho-Tswana",
["bnu"] = "Bentong",
["bnv"] = "Beneraf",
["bnw"] = "Bisis",
["bnx"] = "Bangubangu",
["bny"] = "Vaie",
["bnz"] = "Beezen",
["bo"] = "Tibetan",
["boa"] = "Bora",
["bob"] = "Aweer",
["boe"] = "Mundabli",
["bof"] = "Bolon",
["bog"] = "Bamako Sign Language",
["boh"] = "Boma Utara",
["boi"] = "Barbareño",
["boj"] = "Anjam",
["bok"] = "Bonjo",
["bol"] = "Bole",
["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"] = "Dakaka",
["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"] = "Breton",
["bra"] = "Braj",
["brb"] = "Lave",
["brc"] = "Belanda Kreol Berbice",
["brd"] = "Baraamu",
["brf"] = "Bera",
["brg"] = "Baure",
["brh"] = "Brahui",
["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"] = "Bru Timur",
["brv"] = "Bru Barat",
["brw"] = "Bellari",
["brx"] = "Bodo (India)",
["bry"] = "Burui",
["brz"] = "Bilbil",
["bsa"] = "Abinomn",
["bsb"] = "Bisaya Brunei",
["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"] = "Bisaya Sabah",
["bta"] = "Bata",
["btc"] = "Bati (Cameroon)",
["btd"] = "Batak Dairi",
["bte"] = "Gamo-Ningi",
["btf"] = "Birgit",
["btg"] = "Gagnoa Bété",
["bth"] = "Bidayuh Biatah",
["bti"] = "Burate",
["btj"] = "Melayu Bacan",
["btk-pro"] = "Proto-Batak",
["btm"] = "Batak Mandailing",
["btn"] = "Ratagnon",
["bto"] = "Bicolano Iriga",
["btp"] = "Budibud",
["btq"] = "Batek",
["btr"] = "Baetora",
["bts"] = "Batak Simalungun",
["btt"] = "Bete-Bendi",
["btu"] = "Batu",
["btv"] = "Bateri",
["btw"] = "Butuanon",
["btx"] = "Batak Karo",
["bty"] = "Bobot",
["btz"] = "Batak Alas-Kluet",
["bua"] = "Buryat",
["bub"] = "Bua",
["bud"] = "Ntcham",
["bue"] = "Beothuk",
["buf"] = "Bushoong",
["bug"] = "Bugis",
["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"] = "Melayu Berau",
["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"] = "Melayu Bukit",
["bvv"] = "Baniva",
["bvw"] = "Boga",
["bvx"] = "Babole",
["bvy"] = "Baybayanon",
["bvz"] = "Bauzi",
["bwa"] = "Bwatoo",
["bwb"] = "Namosi-Naitasiri-Serua",
["bwc"] = "Bwile",
["bwd"] = "Bwaidoka",
["bwe"] = "Karen Bwe",
["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"] = "Bobo Selatan",
["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"] = "Batak Palawan",
["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"] = "Bisu",
["bzj"] = "Kreol Belize",
["bzk"] = "Kreol Nicaragua",
["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"] = "Catalan",
["caa"] = "Ch'orti'",
["cab"] = "Garifuna",
["cac"] = "Chuj",
["cad"] = "Caddo",
["cae"] = "Laalaa",
["caf"] = "Carrier Selatan",
["cag"] = "Nivaclé",
["cah"] = "Cahuarano",
["caj"] = "Chané",
["cak"] = "Kaqchikel",
["cal"] = "Carolinian",
["cam"] = "Cemuhî",
["can"] = "Chambri",
["cao"] = "Chácobo",
["cap"] = "Chipaya",
["caq"] = "Car Nicobarese",
["car"] = "Kari'na",
["cas"] = "Tsimané",
["cau-abz-pro"] = "Proto-Abkhaz-Abaza",
["cau-and-pro"] = "Proto-Andian",
["cau-ava-pro"] = "Proto-Avaro-Andian",
["cau-cir-pro"] = "Proto-Circassian",
["cau-drg-pro"] = "Proto-Dargwa",
["cau-lzg-pro"] = "Proto-Lezghian",
["cau-nec-pro"] = "Proto-Kaukasia Timur Laut",
["cau-nkh-pro"] = "Proto-Nakh",
["cau-nwc-pro"] = "Proto-Kaukasia Barat Laut",
["cau-tsz-pro"] = "Proto-Tsezian",
["cav"] = "Cavineña",
["caw"] = "Callawalla",
["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"] = "Chavacano",
["cbl"] = "Chin Bualkhaw",
["cbn"] = "Nyah Kur",
["cbo"] = "Izora",
["cbq"] = "Shuba",
["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"] = "Melayu Cheti",
["cco"] = "Comaltepec Chinantec",
["ccp"] = "Chakma",
["ccr"] = "Cacaopera",
["ccs-gzn-pro"] = "Proto-Georgia-Zan",
["ccs-pro"] = "Proto-Kartvelia",
["cda"] = "Choni",
["cdc-cbm-pro"] = "Proto-Chadic Tengah",
["cdc-mas-pro"] = "Proto-Masa",
["cdc-pro"] = "Proto-Chadic",
["cdd-pro"] = "Proto-Caddoan",
["cde"] = "Chenchu",
["cdf"] = "Chiru",
["cdh"] = "Chambeali",
["cdi"] = "Chodri",
["cdj"] = "Churahi",
["cdm"] = "Chepang",
["cdn"] = "Chaudangsi",
["cdo"] = "Min Timur",
["cdr"] = "Cinda-Regi-Tiyal",
["cds"] = "Bahasa Isyarat Chad",
["cdy"] = "Chadong",
["cdz"] = "Koda",
["ce"] = "Chechen",
["cea"] = "Lower Chehalis",
["ceb"] = "Cebuano",
["ceg"] = "Chamacoco",
["cel-bry-pro"] = "Proto-Brythonic",
["cel-gal"] = "Gallaecian",
["cel-gau"] = "Gaul",
["cel-pro"] = "Proto-Celtic",
["cen"] = "Cen",
["cet"] = "Centúúm",
["cfa"] = "Dijim-Bwilim",
["cfd"] = "Cara",
["cfg"] = "Como Karim",
["cfm"] = "Chin Falam",
["cga"] = "Changriwa",
["cgc"] = "Kagayanen",
["cgg"] = "Rukiga",
["cgk"] = "Chocangaca",
["ch"] = "Chamorro",
["chb"] = "Chibcha",
["chc"] = "Catawba",
["chd"] = "Highland Oaxaca Chontal",
["chf"] = "Tabasco Chontal",
["chg"] = "Chagatai",
["chh"] = "Chinook",
["chi-pro"] = "Proto-Chimakuan",
["chj"] = "Ojitlán Chinantec",
["chk"] = "Chuuk",
["chl"] = "Cahuilla",
["chm-pro"] = "Proto-Mari",
["chn"] = "Chinook Jargon",
["cho"] = "Choctaw",
["chp"] = "Chipewyan",
["chq"] = "Quiotepec Chinantec",
["chr"] = "Cherokee",
["cht"] = "Cholón",
["chw"] = "Chuabo",
["chx"] = "Chantyal",
["chy"] = "Cheyenne",
["chz"] = "Ozumacín Chinantec",
["cia"] = "Cia-Cia",
["cib"] = "Ci Gbe",
["cic"] = "Chickasaw",
["cid"] = "Chimariko",
["cie"] = "Cineni",
["cih"] = "Chinali",
["cik"] = "Chitkuli Kinnauri",
["cim"] = "Cimbrian",
["cin"] = "Cinta Larga",
["cip"] = "Chiapanec",
["cir"] = "Tiri",
["ciy"] = "Chaima",
["cja"] = "Cam Barat",
["cje"] = "Chru",
["cjh"] = "Upper Chehalis",
["cji"] = "Chamalal",
["cjk"] = "Chokwe",
["cjm"] = "Cam Timur",
["cjn"] = "Chenapian",
["cjo"] = "Ashéninka Pajonal",
["cjp"] = "Cabécar",
["cjs"] = "Shor",
["cjv"] = "Chuave",
["cjy"] = "Jin",
["ckb"] = "Kurdi Tengah",
["ckh"] = "Chak",
["ckl"] = "Cibak",
["ckn"] = "Chin Kaang",
["cko"] = "Anufo",
["ckq"] = "Kajakse",
["ckr"] = "Kairak",
["cks"] = "Tayo",
["ckt"] = "Chukchi",
["cku"] = "Koasati",
["ckv"] = "Kavalan",
["ckx"] = "Caka",
["cky"] = "Cakfem-Mushere",
["ckz"] = "Cakchiquel-Quiché Mixed Language",
["cla"] = "Ron",
["clc"] = "Chilcotin",
["cld"] = "Chaldean Neo-Aramaic",
["cle"] = "Lealao Chinantec",
["clh"] = "Chilisso",
["cli"] = "Chakali",
["clj"] = "Chin Laitu",
["clk"] = "Idu",
["cll"] = "Chala",
["clm"] = "Klallam",
["clo"] = "Lowland Oaxaca Chontal",
["clt"] = "Chin Laitu",
["clu"] = "Caluyanun",
["clw"] = "Chulym",
["cly"] = "Chatino Tanah Tinggi Timur",
["cma"] = "Mạ",
["cmc-pro"] = "Proto-Chamic",
["cme"] = "Cerma",
["cmg"] = "Mongol Klasik",
["cmi"] = "Emberá-Chamí",
["cml"] = "Campalagian",
["cmm"] = "Michigamea",
["cmn"] = "Mandarin",
["cmo"] = "Mnong Tengah",
["cmr"] = "Chin Mro",
["cms"] = "Messapic",
["cmt"] = "Camtho",
["cna"] = "Changthang",
["cnb"] = "Chin Chinbon",
["cnc"] = "Cốông",
["cng"] = "Qiang Utara",
["cnh"] = "Lai",
["cni"] = "Asháninka",
["cnk"] = "Chin Khumi",
["cnl"] = "Lalana Chinantec",
["cno"] = "Con",
["cnp"] = "Pinghua Utara",
["cns"] = "Asmat Tengah",
["cnt"] = "Tepetotutla Chinantec",
["cnu"] = "Chenoua",
["cnw"] = "Chin Ngawn",
["cnx"] = "Cornwall Pertengahan",
["co"] = "Corsican",
["coa"] = "Melayu Cocos",
["cob"] = "Chicomuceltec",
["coc"] = "Cocopa",
["cod"] = "Cocama",
["coe"] = "Koreguaje",
["cof"] = "Tsafiki",
["cog"] = "Chong",
["coh"] = "Chichonyi-Chidzihana-Chikauma",
["coj"] = "Cochimi",
["cok"] = "Santa Teresa Cora",
["col"] = "Columbia-Wenatchi",
["com"] = "Comanche",
["con"] = "Cofán",
["coo"] = "Comox",
["cop"] = "Qibti",
["coq"] = "Coquille",
["cot"] = "Caquinte",
["cou"] = "Wamey",
["cov"] = "Cao Miao",
["cow"] = "Cowlitz",
["cox"] = "Nanti",
["coy"] = "Coyaima",
["coz"] = "Chochotec",
["cpa"] = "Palantla Chinantec",
["cpb"] = "Ucayali-Yurúa Ashéninka",
["cpc"] = "Ajyíninka Apurucayali",
["cpg"] = "Yunani Cappadocia",
["cpi"] = "Inggeris Pijin Cina",
["cpn"] = "Cherepon",
["cpo"] = "Kpee",
["cps"] = "Capiznon",
["cpu"] = "Pichis Ashéninka",
["cpx"] = "Min Puxian",
["cpy"] = "Ashéninka Ucayali Selatan",
["cqd"] = "Chuanqiandian Cluster Miao",
["cr"] = "Cree",
["cra"] = "Chara",
["crb"] = "Kalinago",
["crc"] = "Lonwolwol",
["crd"] = "Coeur d'Alene",
["crf"] = "Caramanta",
["crg"] = "Michif",
["crh"] = "Tatar Crimea",
["cri"] = "Sãotomense",
["crj"] = "Cree Timur Selatan",
["crk"] = "Plains Cree",
["crl"] = "Cree Timur Utara",
["crm"] = "Cree Moose",
["crn"] = "Cora",
["cro"] = "Crow",
["crp-bip"] = "Pidgin Basque-Iceland",
["crp-cpr"] = "Pidgin Rusia-China",
["crp-gep"] = "Pidgin Greenland Barat",
["crp-kia"] = "Pidgin Jerman Kiautschou",
["crp-mar"] = "Bahasa Roh Maroon",
["crp-mpp"] = "Pidgin Portugis Macau",
["crp-rsn"] = "Russenorsk",
["crp-slb"] = "Solombala English",
["crp-spp"] = "Pidgin Ladang Samoa",
["crp-tpr"] = "Pidgin Rusia Taimyr",
["crq"] = "Iyo'wujwa Chorote",
["crr"] = "Algonquin Carolina",
["crs"] = "Kreol Seychelles",
["crt"] = "Iyojwa'ja Chorote",
["crv"] = "Chaura",
["crw"] = "Chrau",
["crx"] = "Carrier",
["cry"] = "Cori",
["crz"] = "Cruzeño",
["cs"] = "Czech",
["csa"] = "Chiltepec Chinantec",
["csb"] = "Kashubian",
["csc"] = "Catalan Sign Language",
["csd"] = "Chiangmai Sign Language",
["cse"] = "Czech Sign Language",
["csf"] = "Cuban Sign Language",
["csg"] = "Chilean Sign Language",
["csh"] = "Chin Asho",
["csi"] = "Miwok Pesisir",
["csj"] = "Chin Songlai",
["csk"] = "Jola-Kasa",
["csl"] = "Chinese Sign Language",
["csm"] = "Miwok Sierra Tengah",
["csn"] = "Colombian Sign Language",
["cso"] = "Sochiapam Chinantec",
["csp"] = "Pinghua Selatan",
["csq"] = "Bahasa Isyarat Croatia",
["csr"] = "Costa Rican Sign Language",
["css"] = "Ohlone Selatan",
["cst"] = "Ohlone Utara",
["csu-bba-pro"] = "Proto-Bongo-Bagirmi",
["csu-maa-pro"] = "Proto-Mangbetu",
["csu-pro"] = "Proto-Sudan Tengah",
["csu-sar-pro"] = "Proto-Sara",
["csv"] = "Chin Sumtu",
["csw"] = "Swampy Cree",
["csy"] = "Chin Siyin",
["csz"] = "Coos",
["cta"] = "Tataltepec Chatino",
["ctc"] = "Chetco-Tolowa",
["ctd"] = "Chin Tedim",
["cte"] = "Tepinapa Chinantec",
["ctg"] = "Chittagong",
["cth"] = "Chin Thaiphum",
["ctl"] = "Tlacoatzintepec Chinantec",
["ctm"] = "Chitimacha",
["ctn"] = "Chhintange",
["cto"] = "Emberá-Catío",
["ctp"] = "Chatino Tanah Tinggi Barat",
["cts"] = "Bicolano Catanduanes Utara",
["ctt"] = "Wayanad Chetti",
["ctu"] = "Chol",
["ctz"] = "Zacatepec Chatino",
["cu"] = "Old Church Slavonic",
["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"] = "Cun",
["cur"] = "Chhulung",
["cus-ash"] = "Ashraaf",
["cus-hec-pro"] = "Proto-Cushitic Timur Tanah Tinggi",
["cus-pro"] = "Proto-Cushitic",
["cus-som-pro"] = "Proto-Somaloid",
["cus-sou-pro"] = "Proto-Cushitic Selatan",
["cut"] = "Teutila Cuicatec",
["cuu"] = "Tai Ya",
["cuv"] = "Cuvok",
["cuw"] = "Chukwa",
["cux"] = "Tepeuxila Cuicatec",
["cuy"] = "Cuitlatec",
["cv"] = "Chuvash",
["cvg"] = "Chug",
["cvn"] = "Valle Nacional Chinantec",
["cwa"] = "Kabwa",
["cwb"] = "Maindo",
["cwd"] = "Woods Cree",
["cwe"] = "Kwere",
["cwg"] = "Chewong",
["cwt"] = "Kuwaataay",
["cy"] = "Welsh",
["cya"] = "Nopala Chatino",
["cyb"] = "Cayubaba",
["cyo"] = "Cuyunon",
["czh"] = "Huizhou",
["czk"] = "Knaanic",
["czn"] = "Zenzontepec Chatino",
["czo"] = "Min Tengah",
["czt"] = "Chin Zotung",
["da"] = "Danish",
["daa"] = "Dangaléat",
["dac"] = "Dambi",
["dad"] = "Marik",
["dae"] = "Duupa",
["dag"] = "Dagbani",
["dah"] = "Gwahatike",
["dai"] = "Day",
["daj"] = "Dar Fur Daju",
["dak"] = "Dakota",
["dal"] = "Dahalo",
["dam"] = "Damakawa",
["dao"] = "Chin Daai",
["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"] = "Idahan",
["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"] = "Negerhollands",
["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"] = "German",
["dec"] = "Dagik",
["ded"] = "Dedua",
["dee"] = "Dewoin",
["def"] = "Dezfuli",
["deg"] = "Degema",
["deh"] = "Dehwari",
["dei"] = "Demisa",
["dek"] = "Dek",
["dem"] = "Dem",
["dep"] = "Pidgin Delaware",
["der"] = "Deori",
["des"] = "Desano",
["dev"] = "Domung",
["dez"] = "Dengese",
["dga"] = "Dagaare Selatan",
["dgb"] = "Bunoge",
["dgc"] = "Agta Casiguran Dumagat",
["dgd"] = "Dagaari Dioula",
["dge"] = "Degenan",
["dgg"] = "Doga",
["dgh"] = "Dghwede",
["dgi"] = "Dagara Utara",
["dgk"] = "Dagba",
["dgn"] = "Dagoman",
["dgo"] = "Hindi Dogri",
["dgr"] = "Dogrib",
["dgs"] = "Dogoso",
["dgt"] = "Ntra'ngith",
["dgw"] = "Daungwurrung",
["dgx"] = "Doghoro",
["dgz"] = "Daga",
["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"] = "Dinka Tengah Selatan",
["dic"] = "Lakota Dida",
["did"] = "Didinga",
["dif"] = "Dieri",
["dig"] = "Digo",
["dii"] = "Dimbong",
["dij"] = "Dai",
["dik"] = "Dinka Barat Daya",
["dil"] = "Dilling",
["dim"] = "Dime",
["din"] = "Dinka",
["dio"] = "Dibo",
["dip"] = "Dinka Timur Laut",
["dir"] = "Dirim",
["dis"] = "Dimasa",
["diu"] = "Gciriku",
["diw"] = "Dinka Barat Laut",
["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"] = "Dinka Tenggara",
["dkx"] = "Mazagway",
["dlg"] = "Dolgan",
["dlk"] = "Dahalik",
["dlm"] = "Dalmatian",
["dln"] = "Darlong",
["dma"] = "Duma",
["dmb"] = "Mombo Dogon",
["dmc"] = "Gavak",
["dmd"] = "Madhi Madhi",
["dme"] = "Dugwor",
["dmf"] = "Medefaidrin",
["dmg"] = "Sungai",
["dmk"] = "Domaaki",
["dml"] = "Dameli",
["dmm"] = "Dama (Nigeria)",
["dmn-dam"] = "Dama (Sierra Leone)",
["dmn-mdw-pro"] = "Proto-Mande Barat",
["dmn-pro"] = "Proto-Mande",
["dmo"] = "Kemezung",
["dmr"] = "Damar Timur",
["dms"] = "Dampelas",
["dmu"] = "Dubu",
["dmv"] = "Dumpas",
["dmw"] = "Mudburra",
["dmx"] = "Dema",
["dmy"] = "Demta",
["dna"] = "Upper Grand Valley Dani",
["dnd"] = "Daonda",
["dne"] = "Ndendeule",
["dng"] = "Dungan",
["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"] = "Dani Barat",
["dny"] = "Dení",
["doa"] = "Dom",
["dob"] = "Dobu",
["doc"] = "Kam Utara",
["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"] = "Proto-Dravidia Tengah",
["dra-mkn"] = "Kannada Pertengahan",
["dra-nor-pro"] = "Proto-Dravidia Utara",
["dra-okn"] = "Kannada Kuno",
["dra-ote"] = "Telugu Kuno",
["dra-pro"] = "Proto-Dravidia",
["dra-sdo-pro"] = "Proto-Dravidia Selatan I",
["dra-sdt-pro"] = "Proto-Dravidia Selatan II",
["dra-sou-pro"] = "Proto-Dravidia Selatan",
["drb"] = "Dair",
["drc"] = "Minderico",
["drd"] = "Darmiya",
["drg"] = "Rungus",
["dri"] = "Lela",
["drl"] = "Baagandji",
["drn"] = "Damar Barat",
["dro"] = "Melanau Daro-Matu",
["drq"] = "Dura",
["drs"] = "Gedeo",
["dru"] = "Rukai",
["dru-pro"] = "Proto-Rukai",
["dry"] = "Darai",
["dsb"] = "Lower Sorbian",
["dse"] = "Dutch Sign Language",
["dsh"] = "Daasanach",
["dsi"] = "Disa",
["dsl"] = "Danish Sign Language",
["dsn"] = "Dusner",
["dso"] = "Desiya",
["dsq"] = "Tadaksahak",
["dta"] = "Daur",
["dtb"] = "Kadazan Labuk-Kinabatangan",
["dtd"] = "Ditidaht",
["dth"] = "Adithinngithigh",
["dti"] = "Ana Tinga Dogon",
["dtk"] = "Tene Kan Dogon",
["dtm"] = "Tomo Kan Dogon",
["dto"] = "Tommo So",
["dtp"] = "Kadazandusun",
["dtr"] = "Lotud",
["dts"] = "Toro So Dogon",
["dtt"] = "Toro Tegu Dogon",
["dtu"] = "Tebul Ure Dogon",
["dty"] = "Doteli",
["dua"] = "Duala",
["dub"] = "Dubli",
["duc"] = "Duna",
["due"] = "Agta Umiray Dumaget",
["duf"] = "Dumbea",
["dug"] = "Chiduruma",
["duh"] = "Dungra Bhil",
["dui"] = "Dumun",
["duk"] = "Uyajitaya",
["dul"] = "Agta Pulau Alabat",
["dum"] = "Belanda Pertengahan",
["dun"] = "Dusun Deyah",
["duo"] = "Agta Dupaningan",
["dup"] = "Duano",
["duq"] = "Dusun Malang",
["dur"] = "Dii",
["dus"] = "Dumi",
["duu"] = "Drung",
["duv"] = "Duvle",
["duw"] = "Dusun Witu",
["dux"] = "Duun",
["duy"] = "Agta Dicamay",
["duz"] = "Duli",
["dv"] = "Dhivehi",
["dva"] = "Duau",
["dwa"] = "Diri",
["dwr"] = "Dawro",
["dwu"] = "Dhuwal",
["dww"] = "Dawawa",
["dwy"] = "Dhuwaya",
["dwz"] = "Dewas Rai",
["dya"] = "Dyan",
["dyb"] = "Dyaberdyaber",
["dyd"] = "Dyugun",
["dyg"] = "Agta Villa Viciosa",
["dyi"] = "Djimini",
["dym"] = "Yanda Dogon",
["dyn"] = "Dyangadi",
["dyo"] = "Jola-Fonyi",
["dyu"] = "Dyula",
["dyy"] = "Dyaabugay",
["dz"] = "Dzongkha",
["dza"] = "Tunzu",
["dzg"] = "Dazaga",
["dzl"] = "Dzala",
["dzn"] = "Dzando",
["ebg"] = "Ebughu",
["ebk"] = "Bontoc Timur",
["ebr"] = "Ebrié",
["ebu"] = "Embu",
["ecr"] = "Eteocretan",
["ecs"] = "Bahasa Isyarat Ecuador",
["ecy"] = "Eteocypriot",
["ee"] = "Ewe",
["eee"] = "E",
["efa"] = "Efai",
["efe"] = "Efe",
["efi"] = "Efik",
["ega"] = "Ega",
["egl"] = "Emilian",
["ego"] = "Eggon",
["egx-dem"] = "Mesir Demotik",
["egy"] = "Mesir Purba",
["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"] = "Kayah Timur",
["el"] = "Greek",
["ele"] = "Elepi",
["elh"] = "El Hugeirat",
["eli"] = "Nding",
["elk"] = "Elkei",
["elm"] = "Eleme",
["elo"] = "El Molo",
["elu"] = "Elu",
["elx"] = "Elam",
["ema"] = "Emai",
["emb"] = "Embaloh",
["eme"] = "Emerillon",
["emg"] = "Meohang Timur",
["emi"] = "Mussau-Emira",
["emk"] = "Maninkakan Timur",
["emm"] = "Mamulique",
["emn"] = "Eman",
["emp"] = "Emberá Utara",
["ems"] = "Alutiiq",
["emu"] = "Muria Timur",
["emw"] = "Emplawas",
["emx"] = "Erromintxela",
["emy"] = "Maya Epigrafi",
["en"] = "English",
["ena"] = "Apali",
["enb"] = "Markweeta",
["enc"] = "En",
["end"] = "Ende",
["enf"] = "Enets Hutan",
["enh"] = "Enets Tundra",
["enl"] = "Enlhet",
["enm"] = "Inggeris Pertengahan",
["enn"] = "Engenni",
["eno"] = "Enggano",
["enq"] = "Enga",
["enr"] = "Emem",
["enu"] = "Enu",
["env"] = "Enwan",
["enw"] = "Enwang",
["enx"] = "Enxet",
["eo"] = "Esperanto",
["eot"] = "Eotile",
["epi"] = "Epie",
["era"] = "Eravallan",
["erg"] = "Sie",
["erh"] = "Eruwa",
["eri"] = "Ogea",
["erk"] = "Efate Selatan",
["ero-gsz"] = "Geshiza",
["ero-nya"] = "Nyagrong Minyag",
["ero-tau"] = "Stau",
["err"] = "Erre",
["ers"] = "Ersu",
["ert"] = "Eritai",
["erw"] = "Erokwanas",
["es"] = "Spanish",
["ese"] = "Ese Ejja",
["esh"] = "Eshtehardi",
["esl"] = "Bahasa Isyarat Mesir",
["esm"] = "Esuma",
["esn"] = "Bahasa Isyarat El Salvador",
["eso"] = "Bahasa Isyarat Estonia",
["esq"] = "Esselen",
["ess"] = "Yupik Siberia Tengah",
["esu"] = "Yup'ik",
["esx-esk-pro"] = "Proto-Eskimo",
["esx-ink"] = "Inuktun",
["esx-inq"] = "Inuinnaqtun",
["esx-inu-pro"] = "Proto-Inuit",
["esx-pro"] = "Proto-Eskimo-Aleut",
["esx-tut"] = "Tunumiisut",
["esy"] = "Eskayan",
["et"] = "Estonian",
["etb"] = "Etebi",
["etc"] = "Etchemin",
["eth"] = "Bahasa Isyarat Habsyah",
["etn"] = "Eton (Vanuatu)",
["eto"] = "Eton (Cameroon)",
["etr"] = "Edolo",
["ets"] = "Yekhee",
["ett"] = "Etruria",
["etu"] = "Ejagham",
["etx"] = "Eten",
["etz"] = "Semimi",
["eu"] = "Basque",
["euq-pro"] = "Proto-Basque",
["eve"] = "Even",
["evh"] = "Uvbie",
["evn"] = "Evenki",
["ewo"] = "Ewondo",
["ext"] = "Extremaduran",
["eya"] = "Eyak",
["eyo"] = "Keiyo",
["eza"] = "Ezaa",
["eze"] = "Uzekwe",
["fa"] = "Persian",
["faa"] = "Fasu",
["fab"] = "Annobon",
["fad"] = "Wagi",
["faf"] = "Fagani",
["fag"] = "Finongan",
["fah"] = "Fali Baissa",
["fai"] = "Faiwol",
["faj"] = "Kursav",
["fak"] = "Fang (Beboid)",
["fal"] = "Fali Selatan",
["fam"] = "Fam",
["fan"] = "Fang (Bantu)",
["fap"] = "Palor",
["far"] = "Fataleka",
["fau"] = "Fayu",
["fax"] = "Fala",
["fay"] = "Fars Barat Daya",
["faz"] = "Fars Barat Laut",
["fbl"] = "Bikol Miraya Barat",
["fcs"] = "Bahasa Isyarat Quebec",
["fer"] = "Feroge",
["ff"] = "Fula",
["ffi"] = "Foia Foia",
["fgr"] = "Fongoro",
["fi"] = "Finnish",
["fia"] = "Nobiin",
["fie"] = "Fyer",
["fif"] = "Faifi",
["fip"] = "Fipa",
["fir"] = "Firan",
["fit"] = "Meänkieli",
["fiw"] = "Fiwaga",
["fj"] = "Fijian",
["fkk"] = "Kirya-Konzel",
["fkv"] = "Kven",
["fla"] = "Salish Montana",
["flh"] = "Foau",
["fli"] = "Fali",
["fll"] = "Fali Utara",
["fln"] = "Pulau Flinders",
["flr"] = "Fuliiru",
["fly"] = "Tsotsitaal",
["fmp"] = "Fe'fe'",
["fmu"] = "Muria Barat Jauh",
["fng"] = "Fanagalo",
["fni"] = "Fania",
["fo"] = "Faroese",
["fod"] = "Foodo",
["foi"] = "Foi",
["fom"] = "Foma",
["fon"] = "Fon",
["for"] = "Fore",
["fos"] = "Siraya",
["fpe"] = "Pichinglis",
["fqs"] = "Fas",
["fr"] = "French",
["frd"] = "Fordata",
["frm"] = "Perancis Pertengahan",
["fro"] = "Perancis Kuno",
["frp"] = "Franco-Provençal",
["frq"] = "Forak",
["frr"] = "Frisia Utara",
["frt"] = "Fortsenal",
["fse"] = "Bahasa Isyarat Finland",
["fsl"] = "Bahasa Isyarat Perancis",
["fss"] = "Bahasa Isyarat Finland-Sweden",
["fud"] = "Futuna Timur",
["fuj"] = "Ko",
["fum"] = "Fum",
["fun"] = "Fulniô",
["fur"] = "Friulian",
["fut"] = "Futuna-Aniwa",
["fuu"] = "Furu",
["fuy"] = "Fuyug",
["fvr"] = "Fur",
["fwa"] = "Fwâi",
["fwe"] = "Fwe",
["fy"] = "West Frisian",
["ga"] = "Irish",
["gba-pro"] = "Proto-Gbaya",
["gd"] = "Scottish Gaelic",
["gem-pro"] = "Proto-Germanik",
["gl"] = "Galician",
["gme-bur"] = "Burgundia",
["gme-cgo"] = "Goth Crimea",
["gmq-gut"] = "Gutnish",
["gmq-jmk"] = "Jamtish",
["gmq-mno"] = "Norway Pertengahan",
["gmq-oda"] = "Denmark Kuno",
["gmq-ogt"] = "Gutnish Kuno",
["gmq-osw"] = "Sweden Kuno",
["gmq-pro"] = "Proto-Norse",
["gmq-scy"] = "Scanian",
["gmw-bgh"] = "Bergish",
["gmw-cfr"] = "Franconia Tengah",
["gmw-ecg"] = "Jerman Tengah Timur",
["gmw-fin"] = "Fingallian",
["gmw-gts"] = "Gottscheerish",
["gmw-jdt"] = "Belanda Jersey",
["gmw-msc"] = "Scots Pertengahan",
["gmw-pro"] = "Proto-Germanik Barat",
["gmw-rfr"] = "Franconia Rhine",
["gmw-stm"] = "Schwaben Szatmár",
["gmw-tsx"] = "Saxon Transylvania",
["gmw-vog"] = "Jerman Volga",
["gmw-zps"] = "Jerman Zipser",
["gn-cls"] = "Guarani Klasik",
["grk-cal"] = "Greek Calabria",
["grk-ita"] = "Greek Italiot",
["grk-mar"] = "Greek Mariupol",
["grk-pro"] = "Proto-Hellenik",
["gu"] = "Gujarati",
["gv"] = "Manx",
["gvf"] = "Golin",
["gvj"] = "Guajá",
["gvl"] = "Gulay",
["gvm"] = "Gurmana",
["gvn"] = "Kuku-Yalanji",
["gvo"] = "Gavião do Jiparaná",
["gvp"] = "Gavião Pará",
["gvr"] = "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è Selatan",
["gya"] = "Gbaya Barat Laut",
["gyb"] = "Garus",
["gyd"] = "Kayardild",
["gye"] = "Gyem",
["gyf"] = "Gungabula",
["gyg"] = "Gbayi",
["gyi"] = "Gyele",
["gyl"] = "Gayil",
["gym"] = "Ngäbere",
["gyn"] = "Kreol Inggeris Guyana",
["gyo"] = "Gyalsumdo",
["gyr"] = "Guarayu",
["gyy"] = "Gunya",
["gza"] = "Ganza",
["gzn"] = "Gane",
["ha"] = "Hausa",
["haa"] = "Hän",
["hab"] = "Bahasa Isyarat Hanoi",
["hac"] = "Gurani",
["had"] = "Hatam",
["haf"] = "Bahasa Isyarat Haiphong",
["hag"] = "Hanga",
["hah"] = "Hahon",
["hai"] = "Haida",
["haj"] = "Hajong",
["hak"] = "Hakka",
["hal"] = "Halang",
["ham"] = "Hewa",
["hao"] = "Hakö",
["hap"] = "Hupla",
["har"] = "Harari",
["has"] = "Haisla",
["hav"] = "Havu",
["haw"] = "Hawaii",
["hax"] = "Haida Selatan",
["hay"] = "Haya",
["hba"] = "Hamba",
["hbb"] = "Huba",
["hbn"] = "Heiban",
["hbu"] = "Habu",
["hca"] = "Hindi Kreol Andaman",
["hch"] = "Huichol",
["hdn"] = "Haida Utara",
["hds"] = "Bahasa Isyarat Honduras",
["hdy"] = "Hadiyya",
["he"] = "Hebrew",
["hea"] = "Miao Qiandong Utara",
["hed"] = "Herdé",
["heg"] = "Helong",
["heh"] = "Hehe",
["hei"] = "Heiltsuk",
["hem"] = "Hemba",
["hgm"] = "Haiǁom",
["hgw"] = "Haigwai",
["hhi"] = "Hoia Hoia",
["hhr"] = "Kerak",
["hhy"] = "Hoyahoya",
["hi"] = "Hindi",
["hia"] = "Lamang",
["hib"] = "Hibito",
["hid"] = "Hidatsa",
["hif"] = "Hindi Fiji",
["hig"] = "Kamwe",
["hih"] = "Pamosu",
["hii"] = "Hinduri",
["hij"] = "Hijuk",
["hik"] = "Seit-Kaitetu",
["hil"] = "Hiligaynon",
["hio"] = "Tshwa",
["hir"] = "Himarimã",
["hit"] = "Het",
["hiw"] = "Hiw",
["hix"] = "Hixkaryana",
["hji"] = "Haji",
["hka"] = "Kahe",
["hke"] = "Hunde",
["hkh"] = "Pogali",
["hkk"] = "Hunjara-Kaina Ke",
["hkn"] = "Mel-Khaonh",
["hks"] = "Bahasa Isyarat Hong Kong",
["hla"] = "Halia",
["hlb"] = "Halbi",
["hld"] = "Halang Doan",
["hle"] = "Hlersu",
["hlt"] = "Nga La",
["hma"] = "Hmong Mashan Selatan",
["hmb"] = "Humburi Senni",
["hmc"] = "Hmong Huishui Tengah",
["hmd"] = "A-Hmao",
["hme"] = "Hmong Huishui Timur",
["hmf"] = "Hmong Don",
["hmg"] = "Hmong Guiyang Barat Daya",
["hmh"] = "Hmong Huishui Barat Daya",
["hmi"] = "Hmong Huishui Utara",
["hmj"] = "Ge",
["hmk"] = "Maek",
["hml"] = "Hmong Luopohe",
["hmm"] = "Hmong Mashan Tengah",
["hmn-pro"] = "Proto-Hmongik",
["hmp"] = "Hmong Mashan Utara",
["hmq"] = "Miao Qiandong Timur",
["hmr"] = "Hmar",
["hms"] = "Miao Qiandong Selatan",
["hmt"] = "Hamtai",
["hmu"] = "Hamap",
["hmv"] = "Hmong Dô",
["hmw"] = "Hmong Mashan Barat",
["hmx-mie-pro"] = "Proto-Mienik",
["hmx-pro"] = "Proto-Hmong-Mien",
["hmy"] = "Hmong Guiyang Selatan",
["hmz"] = "Hmong Shua",
["hna"] = "Mina",
["hnd"] = "Hindko Selatan",
["hne"] = "Chhattisgarhi",
["hnh"] = "ǁAni",
["hni"] = "Hani",
["hnj"] = "Hmong Hijau",
["hnn"] = "Hanunoo",
["hno"] = "Hindko Utara",
["hns"] = "Hindustan Caribbean",
["hnu"] = "Hung",
["ho"] = "Hiri Motu",
["hoa"] = "Hoava",
["hob"] = "Mari Austronesia",
["hoc"] = "Ho",
["hod"] = "Holma",
["hoe"] = "Horom",
["hoh"] = "Hobyót",
["hoi"] = "Holikachuk",
["hoj"] = "Hadothi",
["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"] = "Hunsrik",
["hrz"] = "Harzani",
["hsb"] = "Sorbia Atas",
["hsh"] = "Bahasa Isyarat Hungary",
["hsl"] = "Bahasa Isyarat Hausa",
["hsn"] = "Xiang",
["hss"] = "Harsusi",
["ht"] = "Haitian Creole",
["hti"] = "Hoti",
["hto"] = "Minica Huitoto",
["hts"] = "Hadza",
["htu"] = "Hitu",
["hu"] = "Hungarian",
["hub"] = "Huambisa",
["huc"] = "ǂHoan",
["hud"] = "Huaulu",
["huf"] = "Humene",
["hug"] = "Huachipaeri",
["huh"] = "Huilliche",
["hui"] = "Huli",
["huj"] = "Hmong Guiyang Utara",
["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"] = "Kreol Hawaii",
["hwo"] = "Hwana",
["hy"] = "Armenian",
["hya"] = "Hya",
["hyx-pro"] = "Proto-Armenia",
["hz"] = "Herero",
["ia"] = "Interlingua",
["iai"] = "Iaai",
["ian"] = "Iatmul",
["iar"] = "Purari",
["iba"] = "Iban",
["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"] = "Bahasa Isyarat Iceland",
["icr"] = "Inggeris Kreol Islander",
["id"] = "Indonesian",
["ida"] = "Idakho-Isukha-Tiriki",
["idb"] = "Indo-Portugis",
["idc"] = "Idon",
["idd"] = "Ede Idaca",
["ide"] = "Idere",
["idi"] = "Idi",
["idr"] = "Indri",
["ids"] = "Idesa",
["idt"] = "Idaté",
["idu"] = "Idoma",
["ie"] = "Interlingue",
["ifa"] = "Amganad Ifugao",
["ifb"] = "Batad Ifugao",
["ife"] = "Ifè",
["iff"] = "Ifo",
["ifk"] = "Tuwali Ifugao",
["ifm"] = "Teke-Fuumu",
["ifu"] = "Mayoyao Ifugao",
["ify"] = "Keley-I Kallahan",
["ig"] = "Igbo",
["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"] = "Nuosu",
["iir-nur-pro"] = "Proto-Nuristani",
["iir-pro"] = "Proto-Indo-Iran",
["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"] = "Bahasa Isyarat Inuit",
["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"] = "Iranun",
["ilo"] = "Ilocano",
["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"] = "Prakrit Ashoka",
["inc-dng-pro"] = "Proto-Dangari",
["inc-kam"] = "Prakrit Kamarupi",
["inc-kho"] = "Kholosi",
["inc-khr"] = "Khortha",
["inc-krd-pro"] = "Proto-Kamta",
["inc-mas"] = "Assam Pertengahan",
["inc-mbn"] = "Bengal Pertengahan",
["inc-mgu"] = "Gujarati Pertengahan",
["inc-mor"] = "Odia Pertengahan",
["inc-oas"] = "Assam Awal",
["inc-oaw"] = "Awadhi Kuno",
["inc-obn"] = "Bengal Kuno",
["inc-ogu"] = "Gujarati Kuno",
["inc-ohi"] = "Hindi Kuno",
["inc-oor"] = "Odia Kuno",
["inc-opa"] = "Punjabi Kuno",
["inc-pro"] = "Proto-Indo-Arya",
["inc-sar"] = "Sarazi",
["ine-ana-pro"] = "Proto-Anatolia",
["ine-bsl-pro"] = "Proto-Balto-Slav",
["ine-kal"] = "Kalašma",
["ine-pae"] = "Paeonia",
["ine-pro"] = "Proto-Indo-Eropah",
["ine-toc-pro"] = "Proto-Tocharia",
["ing"] = "Deg Xinag",
["inh"] = "Ingush",
["inj"] = "Jungle Inga",
["inl"] = "Bahasa Isyarat Indonesia",
["inm"] = "Minaean",
["inn"] = "Isinai",
["ino"] = "Inoke-Yate",
["inp"] = "Iñapari",
["ins"] = "Bahasa Isyarat India",
["int"] = "Intha",
["inz"] = "Ineseño",
["io"] = "Ido",
["ior"] = "Inor",
["iou"] = "Tuma-Irumu",
["iow"] = "Chiwere",
["ipi"] = "Ipili",
["ipo"] = "Ipiko",
["iqu"] = "Iquito",
["iqw"] = "Ikwo",
["ira-kms-pro"] = "Proto-Komisenia",
["ira-mny-pro"] = "Proto-Munji-Yidgha",
["ira-mpr-pro"] = "Proto-Medo-Parthia",
["ira-pat-pro"] = "Proto-Pathan",
["ira-pro"] = "Proto-Iran",
["ira-sgc-pro"] = "Proto-Sogdia",
["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-Iroquois Utara",
["iro-pro"] = "Proto-Iroquois",
["irr"] = "Ir",
["iru"] = "Irula",
["irx"] = "Kamberau",
["iry"] = "Iraya",
["is"] = "Icelandic",
["isa"] = "Isabi",
["isc"] = "Isconahua",
["isd"] = "Isnag",
["ise"] = "Bahasa Isyarat Itali",
["isg"] = "Bahasa Isyarat Ireland",
["ish"] = "Esan",
["isi"] = "Nkem-Nkum",
["isk"] = "Ishkashimi",
["ism"] = "Masimasi",
["isn"] = "Isanzu",
["iso"] = "Isoko",
["isr"] = "Bahasa Isyarat Israel",
["ist"] = "Istriot",
["isu"] = "Isu",
["isv"] = "Interslavic",
["it"] = "Italian",
["itb"] = "Binongan Itneg",
["itc-pro"] = "Proto-Italik",
["itc-psa"] = "Pra-Samnit",
["itd"] = "Tidung Selatan",
["ite"] = "Itene",
["iti"] = "Inlaod Itneg",
["itk"] = "Judeo-Itali",
["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"] = "Itzá",
["iu"] = "Inuktitut",
["ium"] = "Iu Mien",
["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"] = "Ingria",
["izi"] = "Izi-Ezaa-Ikwo-Mgbo",
["izr"] = "Izere",
["izz"] = "Izi",
["ja"] = "Japanese",
["jaa"] = "Jamamadí",
["jab"] = "Hyam",
["jac"] = "Jakaltek",
["jad"] = "Jahanka",
["jae"] = "Jabem",
["jaf"] = "Jara",
["jah"] = "Jah Hut",
["jaj"] = "Zazao",
["jak"] = "Jakun",
["jal"] = "Yalahatan",
["jam"] = "Kreol Jamaica",
["jan"] = "Janday",
["jao"] = "Yanyuwa",
["jaq"] = "Yaqay",
["jas"] = "New Caledonian Javanese",
["jat"] = "Jakati",
["jau"] = "Yaur",
["jax"] = "Melayu Jambi",
["jay"] = "Yan-nhangu",
["jaz"] = "Jawe",
["jbj"] = "Arandai",
["jbk"] = "Barikewa",
["jbn"] = "Nefusa",
["jbo"] = "Lojban",
["jbr"] = "Jofotek-Bromnya",
["jbt"] = "Jabutí",
["jbu"] = "Jukun Takum",
["jbw"] = "Yawijibaya",
["jcs"] = "Bahasa Isyarat Negara Jamaica",
["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"] = "Bahasa Isyarat Jhankot",
["jia"] = "Jina",
["jib"] = "Jibu",
["jic"] = "Tol",
["jid"] = "Bu",
["jie"] = "Jilbe",
["jig"] = "Jingulu",
["jih"] = "Shangzhai",
["jii"] = "Jiiddu",
["jil"] = "Jilim",
["jim"] = "Jimjimen",
["jio"] = "Jiamao",
["jiq"] = "Khroskyabs",
["jit"] = "Jita",
["jiu"] = "Youle Jino",
["jiv"] = "Shuar",
["jiy"] = "Buyuan Jino",
["jje"] = "Jeju",
["jjr"] = "Zhár",
["jka"] = "Kaera",
["jko"] = "Kubo",
["jkr"] = "Koro (India)",
["jku"] = "Labir",
["jle"] = "Ngile",
["jls"] = "Bahasa Isyarat Jamaica",
["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"] = "Bahasa Isyarat Jordan",
["jow"] = "Jowulu",
["jpr"] = "Judeo-Persian",
["jpx-hcj"] = "Hachijō",
["jpx-pro"] = "Proto-Jeponik",
["jpx-ryu-pro"] = "Proto-Ryukyu",
["jqr"] = "Jaqaru",
["jra"] = "Jarai",
["jrr"] = "Jiru",
["jru"] = "Japrería",
["jsl"] = "Bahasa Isyarat Jepun",
["jua"] = "Júma",
["jub"] = "Wannu",
["juc"] = "Jurchen",
["jud"] = "Worodougou",
["juh"] = "Hone",
["jui"] = "Ngadjuri",
["juk"] = "Wapan",
["jul"] = "Jirel",
["jum"] = "Jumjum",
["jun"] = "Juang",
["juo"] = "Jiba",
["jup"] = "Hupdë",
["jur"] = "Jurúna",
["jus"] = "Bahasa Isyarat Jumla",
["jut"] = "Jutish",
["juu"] = "Ju",
["juw"] = "Wãpha",
["juy"] = "Juray",
["jv"] = "Javanese",
["jvd"] = "Javindo",
["jvn"] = "Jawa Caribbean",
["jwi"] = "Jwira-Pepesa",
["jyy"] = "Jaya",
["ka"] = "Georgian",
["kaa"] = "Karakalpak",
["kab"] = "Kabyle",
["kac"] = "Jingpho",
["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"] = "Proto-Karen",
["kaw"] = "Jawa Kuno",
["kax"] = "Kao",
["kay"] = "Kamayurá",
["kba"] = "Kalarko",
["kbb"] = "Kaxuyana",
["kbc"] = "Kadiwéu",
["kbd"] = "Kabardia",
["kbe"] = "Kanju",
["kbh"] = "Camsá",
["kbi"] = "Kaptiau",
["kbj"] = "Kari",
["kbk"] = "Grass Koiari",
["kbm"] = "Iwal",
["kbn"] = "Kare (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"] = "Khanty Timur",
["kca-nor"] = "Khanty Utara",
["kca-pro"] = "Proto-Khanty",
["kca-sou"] = "Khanty Selatan",
["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"] = "Numee",
["kdl"] = "Tsikimba",
["kdm"] = "Kagoma",
["kdn"] = "Kunda",
["kdp"] = "Kaningdon-Nindem",
["kdq"] = "Koch",
["kdr"] = "Karaim",
["kdt"] = "Kuy",
["kdu"] = "Kadaru",
["kdv"] = "Kado",
["kdw"] = "Koneraw",
["kdx"] = "Kam",
["kdy"] = "Keder",
["kdz"] = "Kwaja",
["kea"] = "Kabuverdianu",
["keb"] = "Kélé",
["kec"] = "Keiga",
["ked"] = "Kerewe",
["kee"] = "Keres Timur",
["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 (Afrika Barat)",
["kfp"] = "Korwa",
["kfq"] = "Korku",
["kfr"] = "Kachchi",
["kfs"] = "Bilaspuri",
["kft"] = "Kanjari",
["kfu"] = "Katkari",
["kfv"] = "Kurmukar",
["kfw"] = "Kharam Naga",
["kfx"] = "Kullu Pahari",
["kfy"] = "Kumaoni",
["kfz"] = "Koromfé",
["kg"] = "Kongo",
["kga"] = "Koyaga",
["kgb"] = "Kawe",
["kgd"] = "Kataang",
["kge"] = "Komering",
["kgf"] = "Kube",
["kgg"] = "Kusunda",
["kgi"] = "Selangor Sign Language",
["kgj"] = "Gamale Kham",
["kgk"] = "Kaiwá",
["kgl"] = "Kunggari",
["kgm"] = "Karipúna",
["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"] = "Khasi",
["khb"] = "Lü",
["khc"] = "Tukang Besi Utara",
["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"] = "Khotan",
["khp"] = "Kapauri",
["khq"] = "Koyra Chiini",
["khr"] = "Kharia",
["khs"] = "Kasua",
["kht"] = "Khamti",
["khu"] = "Nkhumbi",
["khv"] = "Khvarshi",
["khw"] = "Khowar",
["khx"] = "Kanu",
["khy"] = "Ekele",
["khz"] = "Keapara",
["ki"] = "Kikuyu",
["kia"] = "Kim",
["kib"] = "Koalib",
["kic"] = "Kickapoo",
["kid"] = "Koshin",
["kie"] = "Kibet",
["kif"] = "Kham Parbate Timur",
["kig"] = "Kimaama",
["kih"] = "Kilmeri",
["kii"] = "Kitsai",
["kij"] = "Kilivila",
["kil"] = "Kariya",
["kim"] = "Tofa",
["kio"] = "Kiowa",
["kip"] = "Sheshi Kham",
["kiq"] = "Kosadle",
["kis"] = "Kis",
["kit"] = "Agob",
["kiv"] = "Kimbu",
["kiw"] = "Kiwai Timur Laut",
["kix"] = "Naga Khiamniungan",
["kiy"] = "Kirikiri",
["kiz"] = "Kisi",
["kj"] = "Kwanyama",
["kja"] = "Mlap",
["kjb"] = "Q'anjob'al",
["kjc"] = "Konjo Pesisir",
["kjd"] = "Kiwai Selatan",
["kje"] = "Kisar",
["kjg"] = "Khmu",
["kjh"] = "Khakas",
["kji"] = "Zabana",
["kjj"] = "Khinalug",
["kjk"] = "Highland Konjo",
["kjl"] = "Kham",
["kjm"] = "Kháng",
["kjn"] = "Kunjen",
["kjo"] = "Harijan Kinnauri",
["kjp"] = "Pwo Timur",
["kjq"] = "Keres Barat",
["kjr"] = "Kurudu",
["kjs"] = "Kewa Timur",
["kjt"] = "Phrae Pwo",
["kju"] = "Kashaya",
["kjx"] = "Ramopa",
["kjy"] = "Erave",
["kjz"] = "Bumthangkha",
["kk"] = "Kazakh",
["kka"] = "Kakanda",
["kkb"] = "Kwerisa",
["kkc"] = "Odoodee",
["kkd"] = "Kinuku",
["kke"] = "Kakabe",
["kkf"] = "Monpa Kalaktang",
["kkg"] = "Kalinga Lembah Mabaka",
["kkh"] = "Khün",
["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"] = "Greenlandic",
["kla"] = "Klamath-Modoc",
["klb"] = "Kiliwa",
["klc"] = "Kolbila",
["kld"] = "Gamilaraay",
["kle"] = "Kulung",
["klf"] = "Kendeje",
["klg"] = "Kalagan Tagakaulu",
["klh"] = "Weliki",
["kli"] = "Kalumpang",
["klj"] = "Khalaj",
["klk"] = "Kono (Nigeria)",
["kll"] = "Kalagan Kagan",
["klm"] = "Kolom",
["kln"] = "Kalenjin",
["klo"] = "Kapya",
["klp"] = "Kamasa",
["klq"] = "Rumu",
["klr"] = "Khaling",
["kls"] = "Kalasha",
["klt"] = "Nukna",
["klu"] = "Klao",
["klv"] = "Maskelynes",
["klw"] = "Lindu",
["klx"] = "Koluwawa",
["kly"] = "Kalao",
["klz"] = "Kabola",
["km"] = "Khmer",
["kma"] = "Konni",
["kmb"] = "Kimbundu",
["kmc"] = "Kam Selatan",
["kmd"] = "Kalinga Madukayang",
["kme"] = "Bakole",
["kmf"] = "Kare (New Guinea)",
["kmg"] = "Kâte",
["kmh"] = "Kalam",
["kmi"] = "Kami",
["kmj"] = "Kumarbhag Paharia",
["kmk"] = "Kalinga Limos",
["kml"] = "Kalinga Tanudan",
["kmm"] = "Kom (India)",
["kmn"] = "Awtuw",
["kmo"] = "Kwoma",
["kmp"] = "Gimme",
["kmq"] = "Kwama",
["kmr"] = "Kurdi Utara",
["kms"] = "Kamasau",
["kmt"] = "Kemtuik",
["kmu"] = "Kanite",
["kmv"] = "Perancis Kreol Karipúna",
["kmw"] = "Kumu",
["kmx"] = "Waboda",
["kmy"] = "Koma",
["kmz"] = "Turki Khorasan",
["kn"] = "Kannada",
["kna"] = "Kanakuru",
["knb"] = "Kalinga Lubuagan",
["knd"] = "Konda",
["kne"] = "Kankanaey",
["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"] = "Salako",
["kny"] = "Kanyok",
["knz"] = "Kalamsé",
["ko"] = "Korean",
["ko-ear"] = "Korea Moden Awal",
["koa"] = "Konomala",
["koc"] = "Kpati",
["kod"] = "Kodi",
["koe"] = "Kacipo-Balesi",
["kof"] = "Kubi",
["kog"] = "Cogui",
["koh"] = "Koyo",
["koi"] = "Komi-Permyak",
["kok"] = "Konkani",
["kol"] = "Kol (New Guinea)",
["koo"] = "Konzo",
["kop"] = "Waube",
["koq"] = "Kota (Gabon)",
["kos"] = "Kosrae",
["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"] = "Koho",
["kpn"] = "Kepkiriwát",
["kpo"] = "Ikposo",
["kpp"] = "Karen Paku",
["kpq"] = "Korupun-Sela",
["kpr"] = "Korafe-Yegha",
["kps"] = "Tehit",
["kpt"] = "Karata",
["kpu"] = "Kafoa",
["kpv"] = "Komi-Zyrian",
["kpw"] = "Kobon",
["kpx"] = "Koiari Gunung",
["kpy"] = "Koryak",
["kpz"] = "Kupsabiny",
["kqa"] = "Mum",
["kqb"] = "Kovai",
["kqc"] = "Doromu-Koki",
["kqd"] = "Koy Sanjaq Surat",
["kqe"] = "Kalagan",
["kqf"] = "Kakabai",
["kqg"] = "Khe",
["kqh"] = "Kisankasa",
["kqi"] = "Koitabu",
["kqj"] = "Koromira",
["kqk"] = "Gbe Kotafon",
["kql"] = "Kyenele",
["kqm"] = "Khisa",
["kqn"] = "Kaonde",
["kqo"] = "Krahn Timur",
["kqp"] = "Kimré",
["kqq"] = "Krenak",
["kqr"] = "Kimaragang",
["kqs"] = "Kissi Utara",
["kqt"] = "Kadazan Sungai Klias",
["kqu"] = "Seroa",
["kqv"] = "Okolod",
["kqw"] = "Kandas",
["kqx"] = "Mser",
["kqy"] = "Koorete",
["kqz"] = "Korana",
["kr"] = "Kanuri",
["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"] = "Karelia",
["krm"] = "Krim",
["krn"] = "Sapo",
["kro-pro"] = "Proto-Kru",
["krp"] = "Korop",
["krr"] = "Kru'ng",
["krs"] = "Kresh",
["kru"] = "Kurukh",
["krv"] = "Kavet",
["krw"] = "Krahn Barat",
["krx"] = "Karon",
["kry"] = "Kryts",
["krz"] = "Sota Kanum",
["ks"] = "Kashmiri",
["ksa"] = "Shuwa-Zamani",
["ksb"] = "Shambala",
["ksc"] = "Kalinga Selatan",
["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"] = "Kissi Selatan",
["kst"] = "Winyé",
["ksu"] = "Khamyang",
["ksv"] = "Kusu",
["ksw"] = "Karen S'gaw",
["ksx"] = "Kedang",
["ksy"] = "Kharia Thar",
["ksz"] = "Kodaku",
["kta"] = "Katua",
["ktb"] = "Kambaata",
["ktc"] = "Kholok",
["ktd"] = "Kokata",
["ktf"] = "Kwami",
["ktg"] = "Kalkatungu",
["kth"] = "Karanga",
["kti"] = "Muyu Utara",
["ktj"] = "Plapo Krumen",
["ktk"] = "Kaniet",
["ktl"] = "Koroshi",
["ktm"] = "Kurti",
["ktn"] = "Karitiâna",
["kto"] = "Kuot",
["ktp"] = "Kaduo",
["ktq"] = "Katabaga",
["ktr"] = "Tinagas Kota Marudu",
["kts"] = "Muyu Selatan",
["ktt"] = "Ketum",
["ktu"] = "Kituba",
["ktv"] = "Katu Timur",
["ktw"] = "Kato",
["ktx"] = "Kaxararí",
["kty"] = "Kango",
["ktz"] = "Juǀ'hoan",
["ku-pro"] = "Proto-Kurd",
["kub"] = "Kutep",
["kuc"] = "Kwinsu",
["kud"] = "Auhelawa",
["kue"] = "Kuman",
["kuf"] = "Katu Barat",
["kug"] = "Kupa",
["kuh"] = "Kushi",
["kui"] = "Kuikúro",
["kuj"] = "Kuria",
["kuk"] = "Kepo'",
["kul"] = "Kulere",
["kum"] = "Kumyk",
["kun"] = "Kunama",
["kuo"] = "Kumukio",
["kup"] = "Kunimaipa",
["kuq"] = "Karipuna",
["kus"] = "Kusaal",
["kut"] = "Kutenai",
["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"] = "Bahasa Isyarat Korea",
["kvl"] = "Karen Brek",
["kvm"] = "Kendem",
["kvn"] = "Kuna Sempadan",
["kvo"] = "Dobel",
["kvp"] = "Kompane",
["kvq"] = "Karen Geba",
["kvr"] = "Kerinci",
["kvt"] = "Karen Lahta",
["kvu"] = "Karen Yinbaw",
["kvv"] = "Kola",
["kvw"] = "Wersing",
["kvx"] = "Parkari Koli",
["kvy"] = "Karen Yintale",
["kvz"] = "Tsakwambo",
["kw"] = "Cornish",
["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"] = "Khonso",
["kxd"] = "Melayu Brunei",
["kxe"] = "Kakihum",
["kxf"] = "Karen Manumanaw",
["kxh"] = "Karo",
["kxi"] = "Murut Keningau",
["kxj"] = "Kulfa",
["kxk"] = "Karen Zayein",
["kxl"] = "Nepal Kurux",
["kxm"] = "Khmer Utara",
["kxn"] = "Kanowit",
["kxo"] = "Kanoé",
["kxp"] = "Wadiyara Koli",
["kxq"] = "Smärky Kanum",
["kxr"] = "Koro (New Guinea)",
["kxs"] = "Kangjia",
["kxt"] = "Koiwat",
["kxu"] = "Kui (India)",
["kxv"] = "Kuvi",
["kxw"] = "Konai",
["kxx"] = "Likuba",
["kxy"] = "Kayong",
["kxz"] = "Kerewo",
["ky"] = "Kyrgyz",
["kya"] = "Kwaya",
["kyb"] = "Kalinga Butbut",
["kyc"] = "Kyaka",
["kyd"] = "Karey",
["kye"] = "Krache",
["kyf"] = "Kouya",
["kyg"] = "Keyagana",
["kyh"] = "Karok",
["kyi"] = "Kiput",
["kyj"] = "Karao",
["kyk"] = "Kamayo",
["kyl"] = "Kalapuya",
["kym"] = "Kpatili",
["kyn"] = "Karolanos",
["kyo"] = "Kelon",
["kyp"] = "Kang",
["kyq"] = "Kenga",
["kyr"] = "Kuruáya",
["kys"] = "Kayan Baram",
["kyt"] = "Kayagar",
["kyu"] = "Kayah Barat",
["kyv"] = "Kayort",
["kyw"] = "Kudmali",
["kyx"] = "Rapoisi",
["kyy"] = "Kambaira",
["kyz"] = "Kayabí",
["kza"] = "Karaboro Barat",
["kzb"] = "Kaibobo",
["kzc"] = "Bondoukou Kulango",
["kzd"] = "Kadai",
["kze"] = "Kosena",
["kzf"] = "Da'a Kaili",
["kzg"] = "Kikai",
["kzh"] = "Dongolawi",
["kzi"] = "Kelabit",
["kzj"] = "Kadazan",
["kzk"] = "Kazukuru",
["kzl"] = "Kayeli",
["kzm"] = "Kais",
["kzn"] = "Kokola",
["kzo"] = "Kaningi",
["kzp"] = "Kaidipang",
["kzq"] = "Kaike",
["kzr"] = "Karang",
["kzs"] = "Dusun Sugut",
["kzt"] = "Dusun Tambunan",
["kzu"] = "Kayupulau",
["kzv"] = "Komyandaret",
["kzw"] = "Kariri",
["kzx"] = "Kamarian",
["kzy"] = "Kango-Sua",
["kzz"] = "Kalabra",
["la"] = "Latin",
["laa"] = "Subanun Lapuyan",
["lab"] = "Linear A",
["lac"] = "Lacandon",
["lad"] = "Ladino",
["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"] = "Luxembourgish",
["lbb"] = "Label",
["lbc"] = "Lakkia",
["lbe"] = "Lak",
["lbf"] = "Tinani",
["lbg"] = "Laopang",
["lbi"] = "La'bi",
["lbj"] = "Ladakhi",
["lbk"] = "Bontoc Tengah",
["lbl"] = "Bikol Libon",
["lbm"] = "Lodhi",
["lbn"] = "Lamet",
["lbo"] = "Laven",
["lbq"] = "Wampar",
["lbr"] = "Lorung Utara",
["lbs"] = "Bahasa Isyarat Libya",
["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"] = "Lawa Barat",
["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"] = "Lenca Honduras",
["leo"] = "Leti (Cameroon)",
["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"] = "Lezgi",
["lfa"] = "Lefa",
["lfn"] = "Lingua Franca Nova",
["lg"] = "Luganda",
["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"] = "Limburgish",
["lia"] = "Limba Barat-Tengah",
["lib"] = "Likum",
["lic"] = "Hlai",
["lid"] = "Nyindrou",
["lie"] = "Likila",
["lif"] = "Limbu",
["lig"] = "Ligbi",
["lih"] = "Lihir",
["lii"] = "Lingkhim",
["lij"] = "Ligurian",
["lik"] = "Lika",
["lil"] = "Lillooet",
["lio"] = "Liki",
["lip"] = "Sekpele",
["liq"] = "Libido",
["lir"] = "Liberian Kreyol",
["lis"] = "Lisu",
["liu"] = "Logorik",
["liv"] = "Livonian",
["liw"] = "Col",
["lix"] = "Liabuku",
["liy"] = "Banda-Bambari",
["liz"] = "Libinza",
["lja"] = "Golpa",
["lje"] = "Rampi",
["lji"] = "Laiyolo",
["ljl"] = "Li'o",
["ljp"] = "Lampung Api",
["ljw"] = "Yirandali",
["ljx"] = "Yuru",
["lka"] = "Lakalei",
["lkb"] = "Kabras",
["lkc"] = "Kucong",
["lkd"] = "Lakondê",
["lke"] = "Kenyi",
["lkh"] = "Lakha",
["lki"] = "Laki",
["lkj"] = "Remun",
["lkl"] = "Laeko-Libuat",
["lkm"] = "Kalaamaya",
["lkn"] = "Lakon",
["lko"] = "Khayo",
["lkr"] = "Päri",
["lks"] = "Kisa",
["lkt"] = "Lakota",
["lku"] = "Kungkari",
["lky"] = "Lokoya",
["lla"] = "Lala-Roba",
["llb"] = "Lolo",
["llc"] = "Lele (Guinea)",
["lld"] = "Ladin",
["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"] = "Efate Utara",
["llq"] = "Lolak",
["lls"] = "Lithuanian Sign Language",
["llu"] = "Lau",
["llx"] = "Lauan",
["lma"] = "Limba Timur",
["lmb"] = "Merei",
["lmc"] = "Limilngan",
["lmd"] = "Lumun",
["lme"] = "Pévé",
["lmf"] = "Lembata Selatan",
["lmg"] = "Lamogai",
["lmh"] = "Lambichhong",
["lmi"] = "Lombi",
["lmj"] = "Lembata Barat",
["lmk"] = "Lamkang",
["lml"] = "Raga",
["lmn"] = "Lambadi",
["lmo"] = "Lombard",
["lmp"] = "Limbum",
["lmq"] = "Lamatuka",
["lmr"] = "Lamalera",
["lmu"] = "Lamenu",
["lmv"] = "Lomaiviti",
["lmw"] = "Lake Miwok",
["lmx"] = "Laimbue",
["lmy"] = "Laboya",
["lmz"] = "Lumbee",
["ln"] = "Lingala",
["lna"] = "Langbashe",
["lnb"] = "Mbalanhu",
["lnd"] = "Lun Bawang",
["lnh"] = "Lanoh",
["lni"] = "Daantanai'",
["lnj"] = "Linngithigh",
["lnl"] = "Banda Tengah Selatan",
["lnm"] = "Langam",
["lnn"] = "Lorediakarkar",
["lno"] = "Lango (Sudan)",
["lns"] = "Lamnso'",
["lnu"] = "Longuda",
["lnw"] = "Lanima",
["lo"] = "Lao",
["loa"] = "Loloda",
["lob"] = "Lobi",
["loc"] = "Inonhan",
["lod"] = "Berawan",
["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"] = "Kreol Louisiana",
["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"] = "Lur Utara",
["lre"] = "Laurentia",
["lrg"] = "Laragia",
["lri"] = "Marachi",
["lrk"] = "Loarki",
["lrl"] = "Larestani",
["lrm"] = "Marama",
["lrn"] = "Lorang",
["lro"] = "Laro",
["lrr"] = "Lorung Selatan",
["lrt"] = "Melayu Larantuka",
["lrv"] = "Larevat",
["lrz"] = "Lemerig",
["lsa"] = "Lasgerdi",
["lsd"] = "Lishana Deni",
["lse"] = "Lusengo",
["lsh"] = "Lish",
["lsi"] = "Lashi",
["lsl"] = "Bahasa Isyarat Latvia",
["lsm"] = "Saamia",
["lso"] = "Bahasa Isyarat Lao",
["lsp"] = "Bahaaa Isyarat Panama",
["lsr"] = "Aruop",
["lss"] = "Lasi",
["lst"] = "Bahasa Isyarat Trinidad dan Tobago",
["lsy"] = "Bahaaa Isyarat Mauritius",
["lt"] = "Lithuanian",
["ltc"] = "Cina Pertengahan",
["ltg"] = "Latgalia",
["lti"] = "Leti (Indonesia)",
["ltn"] = "Latundê",
["lto"] = "Olutsotso",
["lts"] = "Lutachoni",
["ltu"] = "Latu",
["lu"] = "Luba-Katanga",
["lua"] = "Luba-Kasai",
["luc"] = "Aringa",
["lud"] = "Ludian",
["lue"] = "Luvale",
["luf"] = "Laua",
["lui"] = "Luiseño",
["luj"] = "Luna",
["luk"] = "Lunanakha",
["lul"] = "Olu'bo",
["lum"] = "Luimbi",
["lun"] = "Lunda",
["luo"] = "Luo",
["lup"] = "Lumbu",
["luq"] = "Lucumí",
["lur"] = "Laura",
["lus"] = "Mizo",
["lut"] = "Lushootseed",
["luu"] = "Lumba-Yakkha",
["luv"] = "Luwati",
["luy"] = "Luhya",
["luz"] = "Lur Selatan",
["lv"] = "Latvian",
["lva"] = "Maku'a",
["lvi"] = "Lawi",
["lvk"] = "Lavukaleve",
["lvl"] = "Lwel",
["lvu"] = "Levuka",
["lwa"] = "Lwalu",
["lwe"] = "Lewo Eleng",
["lwg"] = "Wanga",
["lwh"] = "Lachi Putih",
["lwl"] = "Lawa Timur",
["lwm"] = "Laomian",
["lwo"] = "Luwo",
["lws"] = "Malawian Sign Language",
["lwt"] = "Lewotobi",
["lwu"] = "Lawu",
["lww"] = "Lewo",
["lya"] = "Layakha",
["lyg"] = "Lyngngam",
["lyn"] = "Luyana",
["lzh"] = "Literary Chinese",
["lzl"] = "Litzlitz",
["lzn"] = "Leinong Naga",
["lzz"] = "Laz",
["maa"] = "Mazatec San Jerónimo Tecóatl",
["mab"] = "Mixtec Yutanduchi",
["mad"] = "Madura",
["mae"] = "Bo-Rukul",
["maf"] = "Mafa",
["mag"] = "Magahi",
["mai"] = "Maithili",
["maj"] = "Mazatec Jalapa de Díaz",
["mak"] = "Makassar",
["mam"] = "Mam",
["man"] = "Mandingo",
["map-ata-pro"] = "Proto-Atayalik",
["map-bms"] = "Banyumasan",
["map-pro"] = "Proto-Austronesia",
["maq"] = "Mazatec Chiquihuitlán",
["mas"] = "Maasai",
["mat"] = "Matlatzinca",
["mau"] = "Mazatec Huautla",
["mav"] = "Sateré-Mawé",
["maw"] = "Mampruli",
["max"] = "Melayu Maluku Utara",
["maz"] = "Mazahua Tengah",
["mba"] = "Higaonon",
["mbb"] = "Manobo Bukidnon Barat",
["mbc"] = "Macushi",
["mbd"] = "Manobo Dibabawon",
["mbe"] = "Molale",
["mbf"] = "Melayu Baba",
["mbh"] = "Mangseng",
["mbi"] = "Manobo Ilianen",
["mbj"] = "Nadëb",
["mbk"] = "Malol",
["mbl"] = "Maxakalí",
["mbm"] = "Ombamba",
["mbn"] = "Macaguán",
["mbo"] = "Mbo (Cameroon)",
["mbp"] = "Wiwa",
["mbq"] = "Maisin",
["mbr"] = "Nukak Makú",
["mbs"] = "Manobo Sarangani",
["mbt"] = "Manobo Matigsalug",
["mbu"] = "Mbula-Bwazza",
["mbv"] = "Mbulungish",
["mbw"] = "Maring",
["mbx"] = "Mari (Sepik)",
["mby"] = "Memoni",
["mbz"] = "Mixtec Amoltepec",
["mca"] = "Maca",
["mcb"] = "Machiguenga",
["mcc"] = "Bitur",
["mcd"] = "Sharanahua",
["mce"] = "Mixtec Itundujia",
["mcf"] = "Matsés",
["mcg"] = "Mapoyo",
["mch"] = "Ye'kwana",
["mci"] = "Mese",
["mcj"] = "Mvanip",
["mck"] = "Mbunda",
["mcl"] = "Macaguaje",
["mcm"] = "Kristang",
["mcn"] = "Masana",
["mco"] = "Mixe Coatlán",
["mcp"] = "Makaa",
["mcq"] = "Ese",
["mcr"] = "Menya",
["mcs"] = "Mambai",
["mcu"] = "Mambila Cameroon",
["mcw"] = "Mawa",
["mcx"] = "Mpiemo",
["mcy"] = "Watut Selatan",
["mcz"] = "Mawan",
["mda"] = "Mada (Nigeria)",
["mdb"] = "Morigi",
["mdc"] = "Male",
["mdd"] = "Mbum",
["mde"] = "Mabang Bura",
["mdf"] = "Moksha",
["mdg"] = "Massalat",
["mdh"] = "Maguindanao",
["mdi"] = "Mamvu",
["mdj"] = "Mangbetu",
["mdk"] = "Mangbutu",
["mdl"] = "Bahasa Isyarat Malta",
["mdm"] = "Mayogo",
["mdn"] = "Mbati",
["mdp"] = "Mbala",
["mdq"] = "Mbole",
["mdr"] = "Mandar",
["mds"] = "Maria",
["mdt"] = "Mbere",
["mdu"] = "Mboko",
["mdv"] = "Mixtec Santa Lucía Monteverde",
["mdw"] = "Mbosi",
["mdx"] = "Dizin",
["mdy"] = "Maale",
["mdz"] = "Suruí Do Pará",
["mea"] = "Menka",
["meb"] = "Ikobi-Mena",
["mec"] = "Mara",
["med"] = "Melpa",
["mee"] = "Mengen",
["mef"] = "Megam",
["meh"] = "Mixtec Tlaxiaco Barat Daya",
["mei"] = "Midob",
["mej"] = "Meyah",
["mek"] = "Mekeo",
["mel"] = "Melanau Tengah",
["mem"] = "Mangala",
["men"] = "Mende (Sierra Leone)",
["meo"] = "Melayu Kedah",
["mep"] = "Miriwoong",
["meq"] = "Merey",
["mer"] = "Meru",
["mes"] = "Masmaje",
["met"] = "Mato",
["meu"] = "Motu",
["mev"] = "Mano",
["mew"] = "Maaka",
["mey"] = "Arab Hassaniyah",
["mez"] = "Menominee",
["mfa"] = "Melayu Patani",
["mfb"] = "Bangka",
["mfc"] = "Mba",
["mfd"] = "Mendankwe-Nkwen",
["mfe"] = "Kreol Mauritius",
["mff"] = "Naki",
["mfg"] = "Mixifore",
["mfh"] = "Matal",
["mfi"] = "Wandala",
["mfj"] = "Mefele",
["mfk"] = "Mofu Utara",
["mfl"] = "Putai",
["mfm"] = "Marghi Selatan",
["mfn"] = "Mbembe Cross River",
["mfo"] = "Mbe",
["mfp"] = "Melayu Makassar",
["mfq"] = "Moba",
["mfr"] = "Marrithiyel",
["mfs"] = "Bahasa Isyarat Mexico",
["mft"] = "Mokerang",
["mfu"] = "Mbwela",
["mfv"] = "Mandjak",
["mfw"] = "Mulaha",
["mfx"] = "Melo",
["mfy"] = "Mayo",
["mfz"] = "Mabaan",
["mg"] = "Malagasy",
["mga"] = "Ireland Pertengahan",
["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"] = "Magar Timur",
["mgq"] = "Malila",
["mgr"] = "Mambwe-Lungu",
["mgs"] = "Manda (Tanzania)",
["mgt"] = "Mwakai",
["mgu"] = "Mailu",
["mgv"] = "Matengo",
["mgw"] = "Matumbi",
["mgy"] = "Mbunga",
["mgz"] = "Mbugwe",
["mh"] = "Marshallese",
["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"] = "Mòcheno",
["mho"] = "Mashi",
["mhp"] = "Melayu Bali",
["mhq"] = "Mandan",
["mhr"] = "Mari Timur",
["mhs"] = "Buru (Indonesia)",
["mht"] = "Mandahuaca",
["mhu"] = "Taraon",
["mhw"] = "Mbukushu",
["mhx"] = "Lhao Vo",
["mhy"] = "Ma'anyan",
["mhz"] = "Mor (Austronesia)",
["mi"] = "Māori",
["mia"] = "Miami",
["mib"] = "Mixtec Atatláhuca",
["mic"] = "Mi'kmaq",
["mid"] = "Mandaia",
["mie"] = "Mixtec Ocotepec",
["mif"] = "Mofu-Gudur",
["mig"] = "Mixtec San Miguel el Grande",
["mih"] = "Mixtec Chayuco",
["mii"] = "Mixtec Chigmecatitlán",
["mij"] = "Mungbam",
["mik"] = "Mikasuki",
["mil"] = "Mixtec Peñoles",
["mim"] = "Mixtec Alacatlatzala",
["min"] = "Minangkabau",
["mio"] = "Mixtec Pinotepa Nacional",
["mip"] = "Mixtec Apasco-Apoala",
["miq"] = "Miskito",
["mir"] = "Mixe Tanah Genting",
["mis-hkl"] = "Hokkien Peranakan Kelantan",
["mis-idn"] = "Idiom Neutral",
["mis-isa"] = "Isauria",
["mis-jie"] = "Jie",
["mis-jzh"] = "Jizhao",
["mis-kas"] = "Kassite",
["mis-mmd"] = "Mimi Decorse",
["mis-mmn"] = "Mimi Nachtigal",
["mis-phi"] = "Filistin",
["mis-rou"] = "Rouran",
["mis-tdl"] = "Turdulia",
["mis-tdt"] = "Turdetania",
["mis-tnw"] = "Tangwang",
["mis-tuh"] = "Tuyuhun",
["mis-tuo"] = "Tuoba",
["mis-wuh"] = "Wuhuan",
["mis-xbi"] = "Xianbei",
["mis-xnu"] = "Xiongnu",
["mit"] = "Mixtec Puebla Selatan",
["miu"] = "Mixtec Cacaloxtepec",
["miw"] = "Akoye",
["mix"] = "Mixtec Mixtepec",
["miy"] = "Mixtec Ayutla",
["miz"] = "Mixtec Coatzospan",
["mjb"] = "Makalero",
["mjc"] = "Mixtec San Juan Colorado",
["mjd"] = "Maidu Barat Laut",
["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"] = "Paharia Sawriya",
["mju"] = "Manna-Dora",
["mjv"] = "Mannan",
["mjw"] = "Karbi",
["mjx"] = "Mahali",
["mjy"] = "Mahican",
["mjz"] = "Manya",
["mk"] = "Macedonian",
["mka"] = "Mbre",
["mkb"] = "Mal Paharia",
["mkc"] = "Siliput",
["mke"] = "Mawchi",
["mkf"] = "Miya",
["mkg"] = "Mak (China)",
["mkh-asl-pro"] = "Proto-Asli",
["mkh-ban-pro"] = "Proto-Bahnar",
["mkh-kat-pro"] = "Proto-Katuik",
["mkh-khm-pro"] = "Proto-Khmuik",
["mkh-kmr-pro"] = "Proto-Khmer",
["mkh-mmn"] = "Mon Pertengahan",
["mkh-mnc-pro"] = "Proto-Monik",
["mkh-mvi"] = "Vietnam Pertengahan",
["mkh-pal-pro"] = "Proto-Palaungik",
["mkh-pea-pro"] = "Proto-Pearik",
["mkh-pkn-pro"] = "Proto-Pakanik",
["mkh-pro"] = "Proto-Mon-Khmer",
["mkh-vie-pro"] = "Proto-Vietik",
["mki"] = "Dhatki",
["mkj"] = "Mokil",
["mkk"] = "Byep",
["mkl"] = "Mokole",
["mkm"] = "Moklen",
["mkn"] = "Melayu Kupang",
["mko"] = "Mingang Doso",
["mkp"] = "Moikodi",
["mkq"] = "Miwok Teluk",
["mkr"] = "Malas",
["mks"] = "Mixtec Silacayoapan",
["mkt"] = "Vamale",
["mku"] = "Maninka Konyanka",
["mkv"] = "Mav̋ea",
["mkx"] = "Manobo Cinamiguin",
["mky"] = "Taba",
["mkz"] = "Makasae",
["ml"] = "Malayalam",
["mla"] = "Tamambo",
["mlb"] = "Mbule",
["mlc"] = "Caolan",
["mle"] = "Manambu",
["mlf"] = "Mal",
["mlh"] = "Mape",
["mli"] = "Malimpung",
["mlj"] = "Miltu",
["mlk"] = "Ilwana",
["mll"] = "Teluk Malua",
["mlm"] = "Mulam",
["mln"] = "Malango",
["mlo"] = "Mlomp",
["mlp"] = "Bargam",
["mlq"] = "Maninkakan Barat",
["mlr"] = "Vame",
["mls"] = "Masalit",
["mlu"] = "To'abaita",
["mlv"] = "Mwotlap",
["mlw"] = "Moloko",
["mlx"] = "Malfaxal",
["mlz"] = "Malaynon",
["mma"] = "Mama",
["mmb"] = "Momina",
["mmc"] = "Mazahua Michoacán",
["mmd"] = "Maonan",
["mme"] = "Tirax",
["mmf"] = "Mundat",
["mmg"] = "Ambrym Utara",
["mmh"] = "Mehináku",
["mmi"] = "Hember Avu",
["mmj"] = "Majhwar",
["mmk"] = "Mukha-Dora",
["mml"] = "Man Met",
["mmm"] = "Maii",
["mmn"] = "Mamanwa",
["mmo"] = "Mangga Buang",
["mmp"] = "Musan",
["mmq"] = "Aisi",
["mmr"] = "Miao Xiangxi Barat",
["mmt"] = "Malalamai",
["mmu"] = "Mmaala",
["mmv"] = "Miriti",
["mmw"] = "Emae",
["mmx"] = "Madak",
["mmy"] = "Migaama",
["mmz"] = "Mabaale",
["mn"] = "Mongolian",
["mna"] = "Mbula",
["mnb"] = "Muna",
["mnc"] = "Manchu",
["mnd"] = "Mondé",
["mne"] = "Naba",
["mnf"] = "Mundani",
["mng"] = "Mnong Timur",
["mnh"] = "Mono (Congo)",
["mni"] = "Manipuri",
["mnj"] = "Munji",
["mnk"] = "Mandinka",
["mnl"] = "Tiale",
["mnm"] = "Mapena",
["mnn"] = "Mnong Selatan",
["mnp"] = "Min Utara",
["mnq"] = "Minriq",
["mnr"] = "Mono (California)",
["mns-cen"] = "Mansi Tengah",
["mns-nor"] = "Mansi Utara",
["mns-pro"] = "Proto-Mansi",
["mns-sou"] = "Mansi Selatan",
["mnt"] = "Maykulan",
["mnu"] = "Mer",
["mnv"] = "Rennell",
["mnw"] = "Mon",
["mnw-tha"] = "Mon Thailand",
["mnx"] = "Sougb",
["mny"] = "Manyawa",
["mnz"] = "Moni",
["moa"] = "Mwan",
["moc"] = "Mocoví",
["mod"] = "Mobilia",
["moe"] = "Montagnais",
["mog"] = "Mongondow",
["moh"] = "Mohawk",
["moi"] = "Mboi",
["moj"] = "Monzombo",
["mok"] = "Morori",
["mom"] = "Mangue",
["moo"] = "Monom",
["mop"] = "Maya Mopan",
["moq"] = "Mor (Papua)",
["mor"] = "Moro",
["mos"] = "Mossi",
["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"] = "Watut Tengah",
["mpm"] = "Mixtec Yosondúa",
["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"] = "Melayu Kutai Kota Bangun",
["mqh"] = "Mixtec Tlazoyaltepec",
["mqi"] = "Mariri",
["mqj"] = "Mamasa",
["mqk"] = "Manobo Rajah Kabunsuwan",
["mql"] = "Mbelime",
["mqm"] = "Marquesas Selatan",
["mqn"] = "Moronene",
["mqo"] = "Modole",
["mqp"] = "Manipa",
["mqq"] = "Minokok",
["mqr"] = "Mander",
["mqs"] = "Makian Barat",
["mqt"] = "Mok",
["mqu"] = "Mandari",
["mqv"] = "Mosimo",
["mqw"] = "Murupi",
["mqx"] = "Mamuju",
["mqy"] = "Manggarai",
["mqz"] = "Malasanga",
["mr"] = "Marathi",
["mra"] = "Mlabri",
["mrb"] = "Sungwadia",
["mrc"] = "Maricopa",
["mrd"] = "Magar Barat",
["mre"] = "Bahasa Isyarat Martha's Vineyard",
["mrf"] = "Elseng",
["mrg"] = "Mising",
["mrh"] = "Chin Mara",
["mrj"] = "Mari Barat",
["mrk"] = "Hmwaveke",
["mrl"] = "Mortlock",
["mrm"] = "Mwerlap",
["mrn"] = "Cheke Holo",
["mro"] = "Mru",
["mrp"] = "Morouas",
["mrq"] = "Marquesas Utara",
["mrr"] = "Maria Bukit",
["mrs"] = "Maragus",
["mrt"] = "Margi",
["mru"] = "Mono (Cameroon)",
["mrv"] = "Mangareva",
["mrw"] = "Maranao",
["mrx"] = "Dineor",
["mry"] = "Mandaya Karaga",
["mrz"] = "Marind",
["ms"] = "Malay",
["msb"] = "Masbatenyo",
["msc"] = "Maninka Sankaran",
["msd"] = "Bahasa Isyarat Maya Yucatec",
["mse"] = "Musey",
["msf"] = "Mekwei",
["msg"] = "Moraid",
["msi"] = "Melayu Sabah",
["msj"] = "Ma",
["msk"] = "Mansaka",
["msl"] = "Molof",
["msm"] = "Manobo Agusan",
["msn"] = "Vurës",
["mso"] = "Mombum",
["msp"] = "Maritsauá",
["msq"] = "Caac",
["msr"] = "Bahasa Isyarat Mongolia",
["mss"] = "Masela Barat",
["msu"] = "Musom",
["msv"] = "Maslam",
["msw"] = "Mansoanka",
["msx"] = "Moresada",
["msy"] = "Aruamu",
["msz"] = "Momare",
["mt"] = "Maltese",
["mta"] = "Manobo Cotabato",
["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"] = "Mixe Totontepec",
["mtp"] = "Wichí Lhamtés Nocten",
["mtq"] = "Muong",
["mtr"] = "Mewari",
["mts"] = "Yora",
["mtt"] = "Mota",
["mtu"] = "Mixtec Tututepec",
["mtv"] = "Asaro'o",
["mtw"] = "Magahat",
["mtx"] = "Mixtec Tidaá",
["mty"] = "Nabi",
["mua"] = "Mundang",
["mub"] = "Mubi",
["muc"] = "Mbu'",
["mud"] = "Aleut Mednyj",
["mue"] = "Media Lengua",
["mug"] = "Musgu",
["muh"] = "Mündü",
["mui"] = "Musi",
["muj"] = "Mabire",
["mul"] = "Translingual",
["mum"] = "Maiwala",
["mun-pro"] = "Proto-Munda",
["muo"] = "Nyong",
["mup"] = "Malvi",
["muq"] = "Miao Xiangxi Timur",
["mur"] = "Murle",
["mus"] = "Creek",
["mut"] = "Muria Barat",
["muu"] = "Yaaku",
["muv"] = "Muthuvan",
["mux"] = "Bo-Ung",
["muy"] = "Muyang",
["muz"] = "Mursi",
["mva"] = "Manam",
["mvb"] = "Mattole",
["mvd"] = "Mamboru",
["mvg"] = "Mixtec Yucuañe",
["mvh"] = "Mire",
["mvi"] = "Miyako",
["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"] = "Kohistani Indus",
["mvz"] = "Mesqan",
["mwa"] = "Mwatebu",
["mwb"] = "Juwal",
["mwc"] = "Are",
["mwe"] = "Mwera",
["mwf"] = "Murrinh-Patha",
["mwg"] = "Aiklep",
["mwh"] = "Mouk-Aria",
["mwi"] = "Labo",
["mwk"] = "Maninkakan Kita",
["mwl"] = "Mirandese",
["mwm"] = "Sar",
["mwn"] = "Nyamwanga",
["mwo"] = "Sungwadaga",
["mwp"] = "Kala Lagaw Ya",
["mwq"] = "Mün Chin",
["mwr"] = "Marwari",
["mws"] = "Mwimbi-Muthambi",
["mwt"] = "Moken",
["mwu"] = "Mittu",
["mwv"] = "Mentawai",
["mww"] = "Hmong Putih",
["mwz"] = "Moingi",
["mxa"] = "Mixtec Oaxaca Barat Laut",
["mxb"] = "Mixtec Tezoatlán",
["mxd"] = "Modang",
["mxe"] = "Mele-Fila",
["mxf"] = "Malgbe",
["mxg"] = "Mbangala",
["mxh"] = "Mvuba",
["mxi"] = "Mozarab",
["mxj"] = "Miju",
["mxk"] = "Monumbo",
["mxl"] = "Maxi Gbe",
["mxm"] = "Meramera",
["mxn"] = "Moi (Indonesia)",
["mxo"] = "Mbowe",
["mxp"] = "Mixe Tlahuitoltepec",
["mxq"] = "Mixe Juquila",
["mxr"] = "Murik (Malaysia)",
["mxs"] = "Mixtec Huitepec",
["mxt"] = "Mixtec Jamiltepec",
["mxu"] = "Mada (Cameroon)",
["mxv"] = "Mixtec Metlatónoc",
["mxw"] = "Namo",
["mxx"] = "Mahou",
["mxy"] = "Mixtec Nochixtlán Tenggara",
["mxz"] = "Masela Tengah",
["my"] = "Burmese",
["myb"] = "Mbay",
["myc"] = "Mayeka",
["mye"] = "Myene",
["myf"] = "Bambassi",
["myg"] = "Manta",
["myh"] = "Makah",
["myj"] = "Mangayat",
["myk"] = "Mamara",
["myl"] = "Moma",
["mym"] = "Me'en",
["myn-chl"] = "Ch'olti'",
["myn-pro"] = "Proto-Maya",
["myo"] = "Anfillo",
["myp"] = "Pirahã",
["myr"] = "Muniche",
["mys"] = "Mesmes",
["myu"] = "Mundurukú",
["myv"] = "Erzya",
["myw"] = "Muyuw",
["myx"] = "Masaba",
["myy"] = "Macuna",
["myz"] = "Mandaia Klasik",
["mza"] = "Mixtec Santa María Zacatepec",
["mzb"] = "Berber Saharan Utara",
["mzc"] = "Bahasa Isyarat Madagascar",
["mzd"] = "Malimba",
["mze"] = "Morawa",
["mzg"] = "Bahasa Isyarat Monastik",
["mzh"] = "Wichí Lhamtés Güisnay",
["mzi"] = "Mazatec Ixcatlán",
["mzk"] = "Mambila Nigeria",
["mzl"] = "Mixe Mazatlán",
["mzm"] = "Mumuye",
["mzn"] = "Mazanderani",
["mzo"] = "Matipuhy",
["mzp"] = "Movima",
["mzq"] = "Mori Atas",
["mzr"] = "Marúbo",
["mzs"] = "Macanese",
["mzt"] = "Mintil",
["mzu"] = "Inapang",
["mzv"] = "Manza",
["mzw"] = "Deg",
["mzx"] = "Mawayana",
["mzy"] = "Bahasa Isyarat Mozambique",
["mzz"] = "Maiadomu",
["na"] = "Nauruan",
["naa"] = "Namla",
["nab"] = "Nambikwara",
["nac"] = "Narak",
["nae"] = "Naka'ela",
["naf"] = "Nabak",
["nag"] = "Pidgin Naga",
["nah"] = "Nahuatl",
["nai-ala"] = "Alazapa",
["nai-bay"] = "Bayogoula",
["nai-cal"] = "Calusa",
["nai-chi"] = "Chiquimulilla",
["nai-chu-pro"] = "Proto-Chumash",
["nai-cig"] = "Ciguayo",
["nai-ckn-pro"] = "Proto-Chinook",
["nai-guz"] = "Guazacapán",
["nai-hit"] = "Hitchiti",
["nai-ipa"] = "Ipai",
["nai-jtp"] = "Jutiapa",
["nai-jum"] = "Jumaytepeque",
["nai-kat"] = "Kathlamet",
["nai-klp-pro"] = "Proto-Kalapuya",
["nai-knm"] = "Konomihu",
["nai-kum"] = "Kumeyaay",
["nai-mac"] = "Macoris",
["nai-mdu-pro"] = "Proto-Maidu",
["nai-miz-pro"] = "Proto-Mixe-Zoque",
["nai-mus-pro"] = "Proto-Muskogi",
["nai-nao"] = "Naolan",
["nai-nrs"] = "Shasta Sungai Baru",
["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-Catawba",
["nai-sin"] = "Sinacantán",
["nai-sln"] = "Lenca Salvador",
["nai-spt"] = "Sahaptin",
["nai-tap"] = "Tapachultec",
["nai-taw"] = "Tawasa",
["nai-teq"] = "Tequistlatec",
["nai-tip"] = "Tipai",
["nai-tot-pro"] = "Proto-Totozoquean",
["nai-tsi-pro"] = "Proto-Tsimshianik",
["nai-utn-pro"] = "Proto-Utik",
["nai-wai"] = "Waikuri",
["nai-wji"] = "Jicaque Barat",
["nai-yup"] = "Yupiltepeque",
["naj"] = "Nalu",
["nak"] = "Nakanai",
["nal"] = "Nalik",
["nam"] = "Ngan'gityemerri",
["nan"] = "Min Nan",
["nan-dat"] = "Min Datian",
["nan-hbl"] = "Hokkien",
["nan-hlh"] = "Min Hailufeng",
["nan-lnx"] = "Min Longyan",
["nan-tws"] = "Teochew",
["nan-zhe"] = "Min Zhenan",
["nan-zsh"] = "Min Sanxiang",
["nao"] = "Naaba",
["nap"] = "Neapolit",
["naq"] = "Khoekhoe",
["nar"] = "Iguta",
["nas"] = "Nasioi",
["nat"] = "Hungworo",
["naw"] = "Nawuri",
["nax"] = "Nakwi",
["nay"] = "Ngarrindjeri",
["naz"] = "Nahuatl Coatepec",
["nb"] = "Norwegian Bokmål",
["nba"] = "Nyemba",
["nbb"] = "Ndoe",
["nbc"] = "Chang",
["nbd"] = "Ngbinda",
["nbe"] = "Naga Konyak",
["nbg"] = "Nagarchal",
["nbh"] = "Ngamo",
["nbi"] = "Naga Mao",
["nbj"] = "Ngarinman",
["nbk"] = "Nake",
["nbm"] = "Ngbaka Ma'bo",
["nbn"] = "Kuri",
["nbo"] = "Nkukoli",
["nbp"] = "Nnam",
["nbq"] = "Nggem",
["nbr"] = "Numana",
["nbs"] = "Bahasa Isyarat Namibia",
["nbt"] = "Na",
["nbu"] = "Naga Rongmei",
["nbv"] = "Ngamambo",
["nbw"] = "Ngbandi Selatan",
["nby"] = "Ningera",
["nca"] = "Iyo",
["ncb"] = "Nicobar Tengah",
["ncc"] = "Ponam",
["ncd"] = "Nachering",
["nce"] = "Yale",
["ncf"] = "Notsi",
["ncg"] = "Nisga'a",
["nch"] = "Nahuatl Huasteca Tengah",
["nci"] = "Nahuatl Klasik",
["ncj"] = "Nahuatl Puebla Utara",
["nck"] = "Nakara",
["ncl"] = "Nahuatl Michoacán",
["ncm"] = "Nambo",
["ncn"] = "Nauna",
["nco"] = "Sibe",
["ncr"] = "Ncane",
["ncs"] = "Bahasa Isyarat Nicaragua",
["nct"] = "Naga Chothe",
["ncu"] = "Chumburung",
["ncx"] = "Nahuatl Puebla Tengah",
["ncz"] = "Natchez",
["nd"] = "Northern Ndebele",
["nda"] = "Ndasa",
["ndb"] = "Kenswei Nsei",
["ndc"] = "Ndau",
["ndd"] = "Nde-Nsele-Nta",
["ndf"] = "Nadruvia",
["ndg"] = "Ndengereko",
["ndh"] = "Ndali",
["ndi"] = "Chamba Leko",
["ndj"] = "Ndamba",
["ndk"] = "Ndaka",
["ndl"] = "Ndolo",
["ndm"] = "Ndam",
["ndn"] = "Ngundi",
["ndp"] = "Ndo",
["ndq"] = "Ndombe",
["ndr"] = "Ndoola",
["nds"] = "Jerman Rendah",
["ndt"] = "Ndunga",
["ndu"] = "Dugun",
["ndv"] = "Ndut",
["ndw"] = "Ndobo",
["ndx"] = "Nduga",
["ndy"] = "Lutos",
["ndz"] = "Ndogo",
["ne"] = "Nepali",
["nea"] = "Ngad'a Timur",
["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"] = "Mixe Tengah Utara",
["ner"] = "Yahadian",
["nes"] = "Kinnauri Bhoti",
["net"] = "Nete",
["neu"] = "Neo",
["nev"] = "Nyaheun",
["new"] = "Newar",
["nex"] = "Neme",
["ney"] = "Neyo",
["nez"] = "Nez Perce",
["nfa"] = "Dhao",
["nfd"] = "Ahwai",
["nfl"] = "Äiwoo",
["nfr"] = "Nafaanra",
["nfu"] = "Mfumte",
["ng"] = "Ndonga",
["nga"] = "Ngbaka",
["ngb"] = "Ngbandi Utara",
["ngc"] = "Ngombe (Congo)",
["ngd"] = "Ngando (Republik Afrika Tengah)",
["nge"] = "Ngemba",
["ngf-bin-pro"] = "Proto-Binandere",
["ngf-pro"] = "Proto-Trans-New Guinea",
["ngg"] = "Ngbaka Manza",
["ngh"] = "Nǀuu",
["ngi"] = "Ngizim",
["ngj"] = "Ngie",
["ngk"] = "Ngalkbun",
["ngl"] = "Lomwe",
["ngm"] = "Kreol Lelaki Ngatik",
["ngn"] = "Ngwo",
["ngo"] = "Ngoni",
["ngp"] = "Ngulu",
["ngq"] = "Ngoreme",
["ngr"] = "Nagu",
["ngs"] = "Gvoko",
["ngt"] = "Ngeq",
["ngu"] = "Nahuatl Guerrero",
["ngv"] = "Nagumi",
["ngw"] = "Ngwaba",
["ngx"] = "Nggwahyi",
["ngy"] = "Tibea",
["ngz"] = "Ngungwel",
["nha"] = "Nhanda",
["nhb"] = "Beng",
["nhc"] = "Nahuatl Tabasco",
["nhd"] = "Chiripá",
["nhe"] = "Nahuatl Huasteca Timur",
["nhf"] = "Nhuwala",
["nhg"] = "Nahuatl Tetelcingo",
["nhh"] = "Nahari",
["nhi"] = "Nahuatl Zacatlán-Ahuacatlán-Tepetzintla",
["nhk"] = "Nahuatl Cosoleacaque",
["nhm"] = "Nahuatl Morelos",
["nhn"] = "Nahuatl Tengah",
["nho"] = "Takuu",
["nhp"] = "Nahuatl Pajapan",
["nhq"] = "Nahuatl Huaxcaleca",
["nhr"] = "Naro",
["nht"] = "Nahuatl Ometepec",
["nhu"] = "Noone",
["nhv"] = "Nahuatl Temascaltepec",
["nhw"] = "Nahuatl Huasteca Barat",
["nhx"] = "Nahuatl Mecayapan",
["nhy"] = "Nahuatl Oaxaca Utara",
["nhz"] = "Nahuatl Santa María La Alta",
["nia"] = "Nias",
["nib"] = "Nakame",
["nic-bco-pro"] = "Proto-Benue-Congo",
["nic-bod-pro"] = "Proto-Bantoid",
["nic-eov-pro"] = "Proto-Oti-Volta Timur",
["nic-gns-pro"] = "Proto-Gurunsi",
["nic-grf-pro"] = "Proto-Grassfields",
["nic-gur-pro"] = "Proto-Gur",
["nic-jkn-pro"] = "Proto-Jukunoid",
["nic-lcr-pro"] = "Proto-Cross River Bawah",
["nic-ogo-pro"] = "Proto-Ogoni",
["nic-ovo-pro"] = "Proto-Oti-Volta",
["nic-plt-pro"] = "Proto-Plateau",
["nic-pro"] = "Proto-Niger-Congo",
["nic-ubg-pro"] = "Proto-Ubangian",
["nic-ucr-pro"] = "Proto-Cross River Atas",
["nic-vco-pro"] = "Proto-Volta-Congo",
["nid"] = "Ngandi",
["nie"] = "Niellim",
["nif"] = "Nek",
["nig"] = "Ngalakan",
["nih"] = "Nyiha",
["nii"] = "Nii",
["nij"] = "Ngaju",
["nik"] = "Nicobar Selatan",
["nil"] = "Nila",
["nim"] = "Nilamba",
["nin"] = "Ninzo",
["nio"] = "Nganasan",
["niq"] = "Nandi",
["nir"] = "Nimboran",
["nis"] = "Nimi",
["nit"] = "Kolami Tenggara",
["niu"] = "Niue",
["niv"] = "Nivkh",
["niw"] = "Nimo",
["nix"] = "Hema",
["niy"] = "Ngiti",
["niz"] = "Ningil",
["nja"] = "Nzanyi",
["njb"] = "Nocte",
["njh"] = "Naga Lotha",
["nji"] = "Gudanji",
["njj"] = "Njen",
["njl"] = "Njalgulgule",
["njm"] = "Angami",
["njn"] = "Naga Liangmai",
["njo-jgl"] = "Ao Chungli",
["njo-mng"] = "Ao Mongsen",
["njr"] = "Njerep",
["njs"] = "Nisa",
["njt"] = "Pidgin Ndyuka-Trio",
["nju"] = "Ngadjunmaya",
["njx"] = "Kunyi",
["njy"] = "Njyem",
["njz"] = "Nyishi",
["nka"] = "Nkoya",
["nkb"] = "Naga Khoibu",
["nkc"] = "Nkongho",
["nkd"] = "Koireng",
["nke"] = "Duke",
["nkf"] = "Naga Inpui",
["nkg"] = "Nekgini",
["nkh"] = "Naga Khezha",
["nki"] = "Naga Thangal",
["nkj"] = "Nakai",
["nkk"] = "Nokuku",
["nkm"] = "Namat",
["nkn"] = "Nkangala",
["nko"] = "Nkonya",
["nkp"] = "Niuatoputapu",
["nkq"] = "Nkami",
["nkr"] = "Nukuoro",
["nks"] = "Asmat Utara",
["nkt"] = "Nyika",
["nku"] = "Kulango Bouna",
["nkw"] = "Nkutu",
["nkx"] = "Nkoroo",
["nkz"] = "Nkari",
["nl"] = "Dutch",
["nla"] = "Ngombale",
["nlc"] = "Nalca",
["nle"] = "Nyala Timur",
["nlg"] = "Gela",
["nli"] = "Grangali",
["nlj"] = "Nyali",
["nlk"] = "Yali Ninia",
["nll"] = "Nihali",
["nlm"] = "Mankiyali",
["nlo"] = "Ngwi",
["nlq"] = "Naga Lao",
["nlu"] = "Nchumbulu",
["nlv"] = "Nahuatl Orizaba",
["nlw"] = "Walangama",
["nlx"] = "Nahali",
["nly"] = "Nyamal",
["nlz"] = "Nalögo",
["nma"] = "Naga Maram",
["nmb"] = "Big Nambas",
["nmc"] = "Ngam",
["nmd"] = "Ndumu",
["nme"] = "Naga Mzieme",
["nmf"] = "Naga Tangkhul",
["nmg"] = "Kwasio",
["nmh"] = "Naga Monsang",
["nmi"] = "Nyam",
["nmj"] = "Ngombe (Republik Afrika Tengah)",
["nmk"] = "Namakura",
["nml"] = "Ndemli",
["nmm"] = "Manangba",
["nmn"] = "ǃXóõ",
["nmo"] = "Naga Moyon",
["nmp"] = "Nimanbur",
["nmq"] = "Nambya",
["nmr"] = "Nimbari",
["nms"] = "Letemboi",
["nmt"] = "Namonuito",
["nmu"] = "Maidu Timur Laut",
["nmv"] = "Ngamini",
["nmw"] = "Nimoa",
["nmx"] = "Nama",
["nmy"] = "Namuyi",
["nmz"] = "Nawdm",
["nn"] = "Norwegian Nynorsk",
["nna"] = "Nyangumarta",
["nnb"] = "Nande",
["nnc"] = "Nancere",
["nnd"] = "Ambae Barat",
["nne"] = "Ngandyera",
["nnf"] = "Ngaing",
["nng"] = "Naga Maring",
["nnh"] = "Ngiemboon",
["nni"] = "Nuaulu Utara",
["nnj"] = "Nyangatom",
["nnk"] = "Nankina",
["nnl"] = "Naga Rengma Utara",
["nnm"] = "Namia",
["nnn"] = "Ngete",
["nnp"] = "Wancho",
["nnq"] = "Ngindo",
["nnr"] = "Narungga",
["nnt"] = "Nanticoke",
["nnu"] = "Dwang",
["nnv"] = "Nukunu",
["nnw"] = "Nuni Selatan",
["nnx"] = "Ngong",
["nny"] = "Nyangga",
["nnz"] = "Nda'nda'",
["no"] = "Norwegian",
["noa"] = "Woun Meu",
["noc"] = "Nuk",
["nod"] = "Thai Utara",
["noe"] = "Nimadi",
["nof"] = "Nomane",
["nog"] = "Nogai",
["noh"] = "Nomu",
["noi"] = "Noiri",
["noj"] = "Nonuya",
["nok"] = "Nooksack",
["nol"] = "Nomlaki",
["non"] = "Norse Kuno",
["nop"] = "Numanggang",
["noq"] = "Ngongo",
["nos"] = "Nisu Timur",
["not"] = "Nomatsiguenga",
["nou"] = "Ewage-Notu",
["nov"] = "Novial",
["now"] = "Nyambo",
["noy"] = "Noy",
["noz"] = "Nayi",
["npa"] = "Nar Phu",
["npb"] = "Nupbikha",
["npg"] = "Ponyo",
["nph"] = "Phom",
["npl"] = "Nahuatl Puebla Tenggara",
["npn"] = "Mondropolon",
["npo"] = "Naga Pochuri",
["nps"] = "Nipsan",
["npu"] = "Naga Puimei",
["npx"] = "Noipä",
["npy"] = "Napu",
["nqg"] = "Ede Nago",
["nqk"] = "Kura Ede Nago",
["nql"] = "Ngendelengo",
["nqm"] = "Ndom",
["nqn"] = "Nen",
["nqo"] = "N'Ko",
["nqq"] = "Naga Kyan-Karyaw",
["nqy"] = "Akyaung Ari",
["nr"] = "Southern Ndebele",
["nra"] = "Ngom",
["nrb"] = "Nara",
["nrc"] = "Noric",
["nre"] = "Naga Rengma Selatan",
["nrf"] = "Norman",
["nrg"] = "Narango",
["nri"] = "Naga Chokri",
["nrk"] = "Ngarla",
["nrl"] = "Ngarluma",
["nrm"] = "Narom",
["nrn"] = "Norn",
["nrp"] = "Picene Utara",
["nrr"] = "Norra",
["nrt"] = "Kalapuya Utara",
["nru"] = "Narua",
["nrx"] = "Ngurmbur",
["nrz"] = "Lala (New Guinea)",
["nsa"] = "Naga Sangtam",
["nsb"] = "Nossob Bawah",
["nsc"] = "Nshi",
["nsd"] = "Nisu Selatan",
["nse"] = "Nsenga",
["nsf"] = "Nisu Barat Laut",
["nsg"] = "Ngasa",
["nsh"] = "Ngoshie",
["nsi"] = "Bahasa Isyarat Nigeria",
["nsk"] = "Naskapi",
["nsl"] = "Bahasa Isyarat Norway",
["nsm"] = "Sema",
["nsn"] = "Nehan",
["nso"] = "Sotho Utara",
["nsp"] = "Bahasa Isyarat Nepal",
["nsq"] = "Miwok Sierra Utara",
["nsr"] = "Bahasa Isyarat Maritim",
["nss"] = "Nali",
["nst"] = "Tangsa",
["nsu"] = "Nahuatl Sierra Negra",
["nsw"] = "Navut",
["nsx"] = "Nsongo",
["nsy"] = "Nasal",
["nsz"] = "Nisenan",
["ntd"] = "Tidung Utara",
["ntg"] = "Ngantangarra",
["nti"] = "Natioro",
["ntj"] = "Ngaanyatjarra",
["ntk"] = "Ikoma",
["ntm"] = "Nateni",
["nto"] = "Ntomba",
["ntp"] = "Tepehuan Utara",
["ntr"] = "Delo",
["nts"] = "Natagaimas",
["ntu"] = "Natügu",
["ntw"] = "Nottoway",
["ntx"] = "Somra",
["nty"] = "Mantsi",
["nua"] = "Yuanga",
["nub-har"] = "Haraza",
["nub-pro"] = "Proto-Nubia",
["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"] = "Nguôn",
["nup"] = "Nupe",
["nuq"] = "Nukumanu",
["nur"] = "Nuguria",
["nus"] = "Nuer",
["nut"] = "Nùng",
["nuu"] = "Ngbundu",
["nuv"] = "Nuni Utara",
["nuw"] = "Nguluwan",
["nux"] = "Mehek",
["nuy"] = "Nunggubuyu",
["nuz"] = "Nahuatl Tlamacazapa",
["nv"] = "Navajo",
["nvh"] = "Nasarian",
["nvm"] = "Namiae",
["nvo"] = "Nyokon",
["nwa"] = "Nawathinehena",
["nwb"] = "Nyabwa",
["nwc"] = "Newar Klasik",
["nwe"] = "Ngwe",
["nwg"] = "Ngaiawang",
["nwi"] = "Tanna Barat Daya",
["nwm"] = "Nyamusa-Molo",
["nwo"] = "Nauo",
["nwr"] = "Nawaru",
["nwx"] = "Newar Pertengahan",
["nwy"] = "Nottoway-Meherrin",
["nxa"] = "Nauete",
["nxd"] = "Ngando (Congo)",
["nxe"] = "Nage",
["nxg"] = "Ngadha",
["nxi"] = "Nindi",
["nxl"] = "Nuaulu Selatan",
["nxm"] = "Numidia",
["nxn"] = "Ngawun",
["nxo"] = "Ndambomo",
["nxq"] = "Naxi",
["nxr"] = "Ninggerum",
["nxx"] = "Nafri",
["ny"] = "Chichewa",
["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"] = "Nyaw",
["nyx"] = "Nganyaywana",
["nyy"] = "Nyakyusa",
["nza"] = "Mbembe Tigon",
["nzb"] = "Njebi",
["nzd"] = "Nzadi",
["nzi"] = "Nzima",
["nzk"] = "Nzakara",
["nzm"] = "Naga Zeme",
["nzs"] = "Bahasa Isyarat New Zealand",
["nzu"] = "Teke Tengah",
["nzy"] = "Nzakambay",
["nzz"] = "Dogon Nanga Dama",
["oaa"] = "Orok",
["oac"] = "Oroch",
["oav"] = "Avar Kuno",
["obi"] = "Obispeño",
["obk"] = "Bontoc Selatan",
["obl"] = "Oblo",
["obm"] = "Moabite",
["obo"] = "Obo Manobo",
["obr"] = "Burma Kuno",
["obt"] = "Breton Kuno",
["obu"] = "Obulom",
["oc"] = "Occitan",
["oca"] = "Ocaina",
["och"] = "Cina Kuno",
["oco"] = "Cornwall Kuno",
["ocu"] = "Tlahuica",
["oda"] = "Odut",
["odk"] = "Od",
["odt"] = "Belanda Kuno",
["odu"] = "Odual",
["ofo"] = "Ofo",
["ofs"] = "Frisia Kuno",
["ofu"] = "Efutop",
["ogb"] = "Ogbia",
["ogc"] = "Ogbah",
["oge"] = "Georgia Kuno",
["ogg"] = "Ogbogolo",
["ogo"] = "Khana",
["ogu"] = "Ogbronuagum",
["ohu"] = "Hungary Kuno",
["oia"] = "Oirata",
["oin"] = "One Inebu",
["oj"] = "Ojibwe",
["ojb"] = "Ojibwa Barat Laut",
["ojc"] = "Ojibwa Tengah",
["ojg"] = "Ojibwa Timur",
["ojp"] = "Jepun Kuno",
["ojs"] = "Severn Ojibwa",
["ojv"] = "Jawa Ontong",
["ojw"] = "Ojibwa Barat",
["oka"] = "Okanagan",
["okb"] = "Okobo",
["okd"] = "Okodia",
["oke"] = "Okpe (Edo Barat Daya)",
["okg"] = "Kok-Paponk",
["okh"] = "Koresh-e Rostam",
["oki"] = "Okiek",
["okj"] = "Oko-Juwoi",
["okk"] = "Kwamtim One",
["okl"] = "Bahasa Isyarat Kentish Kuno",
["okm"] = "Korea Pertengahan",
["okn"] = "Oki-No-Erabu",
["oko"] = "Korea Kuno",
["okr"] = "Kirike",
["oks"] = "Oko-Eni-Osayen",
["oku"] = "Oku",
["okv"] = "Orokaiva",
["okx"] = "Okpe (Edo Barat Laut)",
["okz"] = "Khmer Kuno",
["old"] = "Mochi",
["ole"] = "Olekha",
["olm"] = "Oloma",
["olo"] = "Livvi",
["olr"] = "Olrat",
["olt"] = "Lithuania Kuno",
["olu"] = "Kuvale",
["om"] = "Oromo",
["oma"] = "Omaha-Ponca",
["omb"] = "Omba",
["omc"] = "Mochica",
["omg"] = "Omagua",
["omi"] = "Omi",
["omk"] = "Omok",
["oml"] = "Ombo",
["omn"] = "Minoan",
["omo"] = "Utarmbung",
["omp"] = "Manipur Kuno",
["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"] = "Chatino San Juan Quiahije",
["omq-tel"] = "Mixtec Teposcolula",
["omq-teo"] = "Chatino Teojomulco",
["omq-tri-pro"] = "Proto-Triqui",
["omq-zap-pro"] = "Proto-Zapotecan",
["omq-zpc-pro"] = "Proto-Zapotec",
["omr"] = "Marathi Kuno",
["omt"] = "Omotik",
["omu"] = "Omurano",
["omv-aro-pro"] = "Proto-Aroid",
["omv-diz-pro"] = "Proto-Dizoid",
["omv-pro"] = "Proto-Omotic",
["omw"] = "Tairora Selatan",
["omx"] = "Mon Kuno",
["ona"] = "Selk'nam",
["onb"] = "Lingao",
["one"] = "Oneida",
["ong"] = "Olo",
["oni"] = "Onin",
["onj"] = "Onjob",
["onk"] = "Kabore One",
["onn"] = "Onobasulu",
["ono"] = "Onondaga",
["onp"] = "Sartang",
["onr"] = "One Utara",
["ons"] = "Ono",
["ont"] = "Ontenu",
["onu"] = "Unua",
["onw"] = "Nubia Kuno",
["onx"] = "Pidgin Onin",
["ood"] = "O'odham",
["oog"] = "Ong",
["oon"] = "Önge",
["oor"] = "Oorlams",
["oos"] = "Ossetia Kuno",
["opa"] = "Okpamheri",
["opk"] = "Kopkaka",
["opm"] = "Oksapmin",
["opo"] = "Opao",
["opt"] = "Opata",
["opy"] = "Ofayé",
["or"] = "Odia",
["ora"] = "Oroha",
["ore"] = "Orejón",
["org"] = "Oring",
["orh"] = "Oroqen",
["oro"] = "Orokolo",
["orr"] = "Oruma",
["ors"] = "Orang Seletar",
["ort"] = "Oriya Adivasi",
["oru"] = "Ormuri",
["orv"] = "Slav Timur Kuno",
["orw"] = "Oro Win",
["orx"] = "Oro",
["orz"] = "Ormu",
["os"] = "Ossetian",
["osa"] = "Osage",
["osc"] = "Osci",
["osi"] = "Osing",
["osn"] = "Sunda Kuno",
["oso"] = "Ososo",
["osp"] = "Sepanyol Kuno",
["ost"] = "Osatu",
["osu"] = "One Selatan",
["osx"] = "Saxon Kuno",
["ota"] = "Turki Usmaniyah",
["otb"] = "Tibet Kuno",
["otd"] = "Ot Danum",
["ote"] = "Otomi Mezquital",
["oti"] = "Oti",
["otk"] = "Turk Kuno",
["otl"] = "Otomi Tilapa",
["otm"] = "Otomi Tanah Tinggi Timur",
["otn"] = "Otomi Tenango",
["oto-otm-pro"] = "Proto-Otomi",
["oto-pro"] = "Proto-Otomian",
["otq"] = "Otomi Querétaro",
["otr"] = "Otoro",
["ots"] = "Otomi Estado de México",
["ott"] = "Otomi Temoaya",
["otu"] = "Otuke",
["otw"] = "Ottawa",
["otx"] = "Otomi Texcatepec",
["oty"] = "Tamil Kuno",
["otz"] = "Otomi Ixtenco",
["oub"] = "Glio-Oubi",
["oue"] = "Oune",
["oui"] = "Uyghur Kuno",
["oum"] = "Ouma",
["ovd"] = "Älvdalen",
["owi"] = "Owiniga",
["owl"] = "Wales Kuno",
["oyb"] = "Oy",
["oyd"] = "Oyda",
["oym"] = "Wayampi",
["oyy"] = "Oya'oya",
["ozm"] = "Koonzime",
["pa"] = "Punjabi",
["paa-kmn"] = "Kómnzo",
["paa-kwn"] = "Kuwani",
["paa-lei"] = "Leitre",
["paa-nha-pro"] = "Proto-Halmahera Utara",
["paa-nun"] = "Nungon",
["pab"] = "Pareci",
["pac"] = "Pacoh",
["pad"] = "Paumarí",
["pae"] = "Pagibete",
["paf"] = "Paranawát",
["pag"] = "Pangasinan",
["pah"] = "Tenharim",
["pai"] = "Pe",
["pak"] = "Parakanã",
["pal"] = "Parsi Pertengahan",
["pam"] = "Kapampangan",
["pao"] = "Paiute Utara",
["pap"] = "Papiamentu",
["paq"] = "Parya",
["par"] = "Panamint",
["pas"] = "Papasena",
["pat"] = "Papitalai",
["pau"] = "Palau",
["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"] = "Pame Tengah",
["pbv"] = "Pnar",
["pby"] = "Pyu",
["pca"] = "Santa Inés Ahuatempan Popoloca",
["pcb"] = "Pear",
["pcc"] = "Bouyei",
["pcd"] = "Picard",
["pce"] = "Ruching Palaung",
["pcf"] = "Paliyan",
["pcg"] = "Paniya",
["pch"] = "Pardhan",
["pci"] = "Duruwa",
["pcj"] = "Parenga",
["pck"] = "Paite",
["pcl"] = "Pardhi",
["pcm"] = "Pijin Nigeria",
["pcn"] = "Piti",
["pcp"] = "Pacahuara",
["pcw"] = "Pyapun",
["pda"] = "Anam",
["pdc"] = "Jerman Pennsylvania",
["pdi"] = "Pa Di",
["pdn"] = "Fedan",
["pdo"] = "Padoe",
["pdt"] = "Plautdietsch",
["pdu"] = "Kayan",
["pea"] = "Peranakan Indonesian",
["peb"] = "Pomo Timur",
["ped"] = "Mala (New Guinea)",
["pee"] = "Taje",
["pef"] = "Pomo Timur Laut",
["peg"] = "Pengo",
["peh"] = "Bonan",
["pei"] = "Chichimeca-Jonaz",
["pej"] = "Pomo Utara",
["pek"] = "Penchal",
["pel"] = "Pekal",
["pem"] = "Phende",
["peo"] = "Parsi Kuno",
["pep"] = "Kunja",
["peq"] = "Pomo Selatan",
["pev"] = "Pémono",
["pex"] = "Petats",
["pey"] = "Petjo",
["pez"] = "Penan Timur",
["pfa"] = "Pááfang",
["pfe"] = "Peere",
["pga"] = "Arab Juba",
["pgd"] = "Gandhari",
["pgg"] = "Pangwali",
["pgi"] = "Pagi",
["pgk"] = "Rerep",
["pgl"] = "Primitive Irish",
["pgn"] = "Paelignian",
["pgs"] = "Pangseng",
["pgu"] = "Pagu",
["pgz"] = "Bahasa Isyarat Papua New Guinea",
["pha"] = "Pa-Hng",
["phd"] = "Phudagi",
["phg"] = "Phuong",
["phh"] = "Phukha",
["phi-din"] = "Agta Dinapigue",
["phi-kal-pro"] = "Proto-Kalamian",
["phi-nag"] = "Agta Nagtipunan",
["phi-pro"] = "Proto-Filipina",
["phk"] = "Phake",
["phl"] = "Phalura",
["phm"] = "Phimbi",
["phn"] = "Phoenicia",
["pho"] = "Phunoi",
["phq"] = "Phana'",
["phr"] = "Pahari-Potwari",
["pht"] = "Phu Thai",
["phu"] = "Phuan",
["phv"] = "Pahlavani",
["phw"] = "Phangduwali",
["pi"] = "Pali",
["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"] = "Baekje",
["pkg"] = "Pak-Tong",
["pkh"] = "Pankhu",
["pkn"] = "Pakanha",
["pko"] = "Pökoot",
["pkp"] = "Pukapukan",
["pkr"] = "Attapady Kurumba",
["pks"] = "Bahasa Isyarat Pakistan",
["pkt"] = "Maleng",
["pku"] = "Paku",
["pl"] = "Polish",
["pla"] = "Miani",
["plb"] = "Polonombauk",
["plc"] = "Central Palawano",
["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"] = "Palawano Barat Daya",
["plw"] = "Palawano Brooke's Point",
["ply"] = "Bolyu",
["plz"] = "Paluan",
["pma"] = "Paama",
["pmb"] = "Pambia",
["pmd"] = "Pallanganmiddang",
["pme"] = "Pwaamei",
["pmf"] = "Pamona",
["pmi"] = "Pumi Utara",
["pmj"] = "Pumi Selatan",
["pmk"] = "Pamlico",
["pml"] = "Sabir",
["pmm"] = "Pol",
["pmn"] = "Pam",
["pmo"] = "Pom",
["pmq"] = "Pame Utara",
["pmr"] = "Paynamar",
["pms"] = "Piemonte",
["pmt"] = "Tuamotuan",
["pmu"] = "Mirpur Panjabi",
["pmw"] = "Plains Miwok",
["pmx"] = "Poumei Naga",
["pmy"] = "Papuan Malay",
["pmz"] = "Southern Pame",
["pna"] = "Punan Bah-Biau",
["pnb"] = "Punjabi Barat",
["pnc"] = "Pannei",
["pnd"] = "Mpinda",
["pne"] = "Penan Barat",
["png"] = "Pongu",
["pnh"] = "Penrhyn",
["pni"] = "Aoheng",
["pnj"] = "Pinjarup",
["pnk"] = "Paunaca",
["pnl"] = "Paleni",
["pnm"] = "Punan Batu",
["pnn"] = "Pinai-Hagahai",
["pno"] = "Panobo",
["pnp"] = "Pancana",
["pnq"] = "Pana (Afrika Barat)",
["pnr"] = "Panim",
["pns"] = "Ponosakan",
["pnt"] = "Yunani Pontus",
["pnu"] = "Jiongnai Bunu",
["pnv"] = "Pinigura",
["pnw"] = "Panyjima",
["pnx"] = "Phong-Kniang",
["pny"] = "Pinyin",
["pnz"] = "Pana (Afrika Tengah)",
["poc"] = "Poqomam",
["poe"] = "San Juan Atzingo Popoloca",
["pof"] = "Poke",
["pog"] = "Potiguára",
["poh"] = "Poqomchi'",
["poi"] = "Highland Popoluca",
["pok"] = "Pokangá",
["pom"] = "Pomo Tenggara",
["pon"] = "Pohnpei",
["poo"] = "Pomo Tengah",
["pop"] = "Pwapwa",
["poq"] = "Texistepec Popoluca",
["pos"] = "Sayula Popoluca",
["pot"] = "Potawatomi",
["pov"] = "Kreol Guinea-Bissau",
["pow"] = "San Felipe Otlaltepec Popoloca",
["pox"] = "Polabia",
["poy"] = "Pogolo",
["poz-abi"] = "Abai",
["poz-bal"] = "Baliledo",
["poz-btk-pro"] = "Proto-Bungku-Tolaki",
["poz-cet-pro"] = "Proto-Melayu-Polenesia Tengah-Timur",
["poz-hce-pro"] = "Proto-Halmahera-Cenderawasih",
["poz-lgx-pro"] = "Proto-Lampungik",
["poz-mcm-pro"] = "Proto-Melayu-Chamic",
["poz-mic-pro"] = "Proto-Mikronesia",
["poz-mly-pro"] = "Proto-Melayik",
["poz-msa-pro"] = "Proto-Melayu-Sumbawa",
["poz-nes"] = "Nese",
["poz-oce-pro"] = "Proto-Oceania",
["poz-pcc-pro"] = "Proto-Pasifik Tengah",
["poz-pep-pro"] = "Proto-Polinesia Timur",
["poz-pnp-pro"] = "Proto-Polinesia Nukleus",
["poz-pol-pro"] = "Proto-Polinesia",
["poz-pro"] = "Proto-Melayu-Polenesia",
["poz-sml"] = "Melayu Sarawak",
["poz-ssw-pro"] = "Proto-Sulawesi Selatan",
["poz-swa-pro"] = "Proto-Sarawak Utara",
["poz-ter"] = "Melayu Terengganu",
["ppa"] = "Pao",
["ppe"] = "Papi",
["ppi"] = "Paipai",
["ppk"] = "Uma",
["ppl"] = "Pipil",
["ppm"] = "Papuma",
["ppn"] = "Papapana",
["ppo"] = "Folopa",
["ppq"] = "Pei",
["pps"] = "San Luís Temalacayuca Popoloca",
["ppt"] = "Pa",
["ppu"] = "Papora",
["pqa"] = "Pa'a",
["pqe-pro"] = "Proto-Melayu-Polenesia Timur",
["pqm"] = "Malecite-Passamaquoddy",
["pra"] = "Prakrit",
["pra-niy"] = "Prakrit Niya",
["prc"] = "Parachi",
["pre"] = "Principe",
["prf"] = "Paranan",
["prg"] = "Prusia Kuno",
["prh"] = "Porohanon",
["pri"] = "Paicî",
["prk"] = "Parauk",
["prl"] = "Bahasa Isyarat Peru",
["prm"] = "Kibiri",
["prn"] = "Prasuni",
["pro"] = "Occitan Kuno",
["prq"] = "Ashéninka Perené",
["prr"] = "Puri",
["prt"] = "Phai",
["pru"] = "Puragi",
["prw"] = "Parawen",
["prx"] = "Purik",
["prz"] = "Bahasa Isyarat Providencia",
["ps"] = "Pashto",
["psa"] = "Asue Awyu",
["psc"] = "Bahasa Isyarat Parsi",
["psd"] = "Plains Indian Sign Language",
["pse"] = "Melayu Barisan Selatan",
["psg"] = "Bahasa Isyarat Pulau Pinang",
["psh"] = "Pashayi Barat Daya",
["psi"] = "Pashayi Tenggara",
["psl"] = "Bahasa Isyarat Puerto Rico",
["psm"] = "Pauserna",
["psn"] = "Panasuan",
["pso"] = "Bahasa Isyarat Poland",
["psp"] = "Bahasa Isyarat Filipina",
["psq"] = "Pasi",
["psr"] = "Bahasa Isyarat Portugis",
["pss"] = "Kaulong",
["psw"] = "Port Sandwich",
["psy"] = "Piscataway",
["pt"] = "Portuguese",
["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"] = "Paiwan",
["pwo"] = "Pwo Barat",
["pwr"] = "Powari",
["pww"] = "Pwo Utara",
["pxm"] = "Quetzaltepec Mixe",
["pye"] = "Pye Krumen",
["pym"] = "Fyam",
["pyn"] = "Poyanáwa",
["pys"] = "Bahasa Isyarat Paraguay",
["pyu"] = "Puyuma",
["pyx"] = "Tircul",
["pyy"] = "Pyen",
["pzh"] = "Pazeh",
["pzn"] = "Para Naga",
["qfa-adm-pro"] = "Proto-Andaman Besar",
["qfa-bet-pro"] = "Proto-Be-Tai",
["qfa-cka-pro"] = "Proto-Chukotko-Kamchatka",
["qfa-hur-pro"] = "Proto-Hurro-Urartia",
["qfa-kad-pro"] = "Proto-Kadu",
["qfa-kms-pro"] = "Proto-Kam-Sui",
["qfa-kor-pro"] = "Proto-Korea",
["qfa-kra-pro"] = "Proto-Kra",
["qfa-lic-pro"] = "Proto-Hlai",
["qfa-onb-pro"] = "Proto-Be",
["qfa-ong-pro"] = "Proto-Onga",
["qfa-tak-pro"] = "Proto-Kra-Dai",
["qfa-yen-pro"] = "Proto-Yenisei",
["qfa-yuk-pro"] = "Proto-Yukaghir",
["qu"] = "Quechua",
["qua"] = "Quapaw",
["quc"] = "K'iche'",
["qui"] = "Quileute",
["qum"] = "Sipakapense",
["qun"] = "Quinault",
["quq"] = "Quinqui",
["quv"] = "Sacapulteco",
["qvy"] = "Queyu",
["qwc"] = "Quechua Klasik",
["qwe-kch"] = "Kichwa",
["qwe-pro"] = "Proto-Quechua",
["qwm"] = "Kipchak",
["qwt"] = "Kwalhioqua-Tlatskanai",
["qxs"] = "Southern Qiang",
["qya"] = "Quenya",
["qyp"] = "Quiripi",
["raa"] = "Dungmali",
["rab"] = "Chamling",
["rac"] = "Rasawa",
["rad"] = "Rade",
["raf"] = "Meohang Barat",
["rag"] = "Logooli",
["rah"] = "Rabha",
["rai"] = "Ramoaaina",
["raj"] = "Rajasthan",
["rak"] = "Tulu-Bohuai",
["ral"] = "Ralte",
["ram"] = "Canela",
["ran"] = "Riantana",
["rao"] = "Rao",
["rap"] = "Rapa Nui",
["raq"] = "Saam",
["rar"] = "Rarotonga",
["ras"] = "Tegali",
["rat"] = "Razajerdi",
["rau"] = "Raute",
["rav"] = "Sampang",
["raw"] = "Rawang",
["rax"] = "Rang",
["ray"] = "Rapa",
["raz"] = "Rahambuu",
["rbb"] = "Rumai Palaung",
["rbk"] = "Bontoc Utara",
["rbl"] = "Bikol Miraya",
["rcf"] = "Perancis Kreol Réunion",
["rdb"] = "Rudbari",
["rea"] = "Rerau",
["reb"] = "Rembong",
["ree"] = "Kayan Rejang",
["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"] = "Yunani Romani",
["rgk"] = "Rangkas",
["rgn"] = "Romagnol",
["rgr"] = "Resígaro",
["rgs"] = "Roglai Selatan",
["rgu"] = "Ringgou",
["rhg"] = "Rohingya",
["rhp"] = "Yahang",
["ria"] = "Reang",
["rif"] = "Tarifit",
["ril"] = "Riang",
["rim"] = "Nyaturu",
["rin"] = "Nungu",
["rir"] = "Ribun",
["rit"] = "Ritarungo",
["riu"] = "Riung",
["rjg"] = "Rajong",
["rji"] = "Raji",
["rjs"] = "Rajbanshi",
["rka"] = "Kraol",
["rkb"] = "Rikbaktsa",
["rkh"] = "Rakahanga-Manihiki",
["rki"] = "Rakhine",
["rkm"] = "Marka",
["rkt"] = "Kamta",
["rkw"] = "Arakwal",
["rm"] = "Romansh",
["rma"] = "Rama",
["rmb"] = "Rembarunga",
["rmc"] = "Romani Carpathia",
["rmd"] = "Denmark Pengembara",
["rme"] = "Angloromani",
["rmf"] = "Romani Finland Kalo",
["rmg"] = "Norway Pengembara",
["rmh"] = "Murkim",
["rmi"] = "Lomavren",
["rmk"] = "Romkun",
["rml"] = "Romani Baltik",
["rmm"] = "Roma",
["rmn"] = "Romani Balkan",
["rmo"] = "Romani Sinte",
["rmp"] = "Rempi",
["rmq"] = "Caló",
["rms"] = "Bahasa Isyarat Romania",
["rmt"] = "Domari",
["rmu"] = "Tavringer Romani",
["rmv"] = "Romanova",
["rmw"] = "Romani Wales",
["rmx"] = "Romam",
["rmy"] = "Romani Vlax",
["rmz"] = "Marma",
["rnd"] = "Ruwund",
["rng"] = "Ronga",
["rnl"] = "Ranglong",
["rnn"] = "Roon",
["rnp"] = "Rongpo",
["rnw"] = "Rungwa",
["ro"] = "Romanian",
["roa-ang"] = "Angevin",
["roa-bbn"] = "Bourbonnais-Berrichon",
["roa-brg"] = "Bourguignon",
["roa-can"] = "Cantabrian",
["roa-cha"] = "Champenois",
["roa-fcm"] = "Franc-Comtois",
["roa-gal"] = "Gallo",
["roa-gib"] = "Gallo-Itali Basilicata",
["roa-gis"] = "Gallo-Itali Sicily",
["roa-leo"] = "Leonese",
["roa-lor"] = "Lorrain",
["roa-oca"] = "Catalan Kuno",
["roa-ole"] = "Leonese Kuno",
["roa-ona"] = "Navarro-Aragon Kuno",
["roa-opt"] = "Galicia-Portugis Kuno",
["roa-orl"] = "Orléanais",
["roa-poi"] = "Poitevin-Saintongeais",
["roa-tar"] = "Tarantino",
["rob"] = "Tae'",
["roc"] = "Roglai Cacgia",
["rod"] = "Rogo",
["roe"] = "Ronji",
["rof"] = "Rombo",
["rog"] = "Roglai Utara",
["rol"] = "Romblomanon",
["rom"] = "Romani",
["roo"] = "Rotokas",
["rop"] = "Kriol",
["ror"] = "Rongga",
["rou"] = "Runga",
["row"] = "Dela-Oenale",
["rpn"] = "Repanbitip",
["rpt"] = "Rapting",
["rri"] = "Ririo",
["rro"] = "Roro",
["rrt"] = "Arritinngithigh",
["rsb"] = "Romano-Serbia",
["rsk"] = "Rusyn Pannonia",
["rsl"] = "Bahasa Isyarat Rusia",
["rsm"] = "Bahasa Isyarat Miriwoong",
["rtc"] = "Rungtu",
["rth"] = "Ratahan",
["rtm"] = "Rotuma",
["rtw"] = "Rathawi",
["ru"] = "Russian",
["rub"] = "Gungu",
["ruc"] = "Ruuli",
["rue"] = "Rusyn",
["ruf"] = "Luguru",
["rug"] = "Roviana",
["ruh"] = "Ruga",
["rui"] = "Rufiji",
["ruk"] = "Che",
["ruo"] = "Istro-Romania",
["rup"] = "Aromania",
["ruq"] = "Megleno-Romania",
["rut"] = "Rutul",
["ruu"] = "Lanas Lobu",
["ruy"] = "Mala (Nigeria)",
["ruz"] = "Ruma",
["rw"] = "Rwanda-Rundi",
["rwa"] = "Rawo",
["rwk"] = "Rwa",
["rwm"] = "Amba",
["rwo"] = "Rawa",
["rxd"] = "Ngardi",
["rxw"] = "Karuwali",
["ryn"] = "Amami Ōshima Utara",
["rys"] = "Yaeyama",
["ryu"] = "Okinawa",
["rzh"] = "Razihi",
["sa"] = "Sanskrit",
["saa"] = "Saba",
["sab"] = "Buglere",
["sac"] = "Fox",
["sad"] = "Sandawe",
["sae"] = "Sabanê",
["saf"] = "Safaliba",
["sah"] = "Yakut",
["sai-all"] = "Allentiac",
["sai-and"] = "Andoquero",
["sai-ayo"] = "Ayomán",
["sai-bae"] = "Baenan",
["sai-bag"] = "Bagua",
["sai-bet"] = "Betoi",
["sai-bor-pro"] = "Proto-Bora",
["sai-cac"] = "Cacán",
["sai-caq"] = "Caranqui",
["sai-car-pro"] = "Proto-Carib",
["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-Jê Tengah",
["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-Jê Utara",
["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-Jê Selatan",
["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 (Amerika Selatan)",
["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"] = "Santal",
["sau"] = "Saleman",
["sav"] = "Saafi-Saafi",
["saw"] = "Sawi",
["sax"] = "Sa",
["say"] = "Saya",
["saz"] = "Saurashtra",
["sba"] = "Ngambay",
["sbb"] = "Simbo",
["sbc"] = "Gele'",
["sbd"] = "Samo Selatan",
["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"] = "Sardinian",
["scb"] = "Chut",
["sce"] = "Dongxiang",
["scf"] = "Perancis Kreol San Miguel",
["scg"] = "Sanggau",
["sch"] = "Sakachep",
["sci"] = "Melayu Sri Lanka",
["sck"] = "Sadri",
["scl"] = "Shina",
["scn"] = "Sicilia",
["sco"] = "Scots",
["scp"] = "Yolmo",
["scq"] = "Sa'och",
["scs"] = "Slavey Utara",
["scu"] = "Shumcho",
["scv"] = "Sheni",
["scw"] = "Sha",
["scx"] = "Sicel",
["sd"] = "Sindhi",
["sda"] = "Toraja-Sa'dan",
["sdb"] = "Shabak",
["sdc"] = "Sassari",
["sde"] = "Surubu",
["sdf"] = "Sarli",
["sdg"] = "Savi",
["sdh"] = "Kurdi Selatan",
["sdj"] = "Suundi",
["sdk"] = "Sos Kundi",
["sdl"] = "Saudi Arabian Sign Language",
["sdm"] = "Semandang",
["sdn"] = "Gallura",
["sdo"] = "Bidayuh Bukar-Sadong",
["sdp"] = "Sherdukpen",
["sdr"] = "Oraon Sadri",
["sds"] = "Barbar Tunisia",
["sdu"] = "Sarudu",
["sdv-daj-pro"] = "Proto-Daju",
["sdv-eje-pro"] = "Proto-Jebel Timur",
["sdv-nil-pro"] = "Proto-Nilotik",
["sdv-nyi-pro"] = "Proto-Nyima",
["sdv-tmn-pro"] = "Proto-Taman",
["sdx"] = "Melanau Sibu",
["se"] = "Northern Sami",
["sea"] = "Semai",
["sec"] = "Sechelt",
["sed"] = "Sedang",
["see"] = "Seneca",
["sef"] = "Cebaara Senoufo",
["seg"] = "Segeju",
["seh"] = "Sena",
["sei"] = "Seri",
["sej"] = "Sene",
["sek"] = "Sekani",
["sel-nor"] = "Selkup Utara",
["sel-pro"] = "Proto-Selkup",
["sel-sou"] = "Selkup Selatan",
["sem-amm"] = "Ammon",
["sem-amo"] = "Amor",
["sem-cha"] = "Chaha",
["sem-dad"] = "Dadan",
["sem-dum"] = "Dumait",
["sem-has"] = "Hasait",
["sem-his"] = "Hisma",
["sem-mhr"] = "Muher",
["sem-pro"] = "Proto-Semitik",
["sem-saf"] = "Safait",
["sem-sam"] = "Samal",
["sem-srb"] = "Arab Selatan Kuno",
["sem-tay"] = "Tayman",
["sem-tha"] = "Thamud",
["sem-wes-pro"] = "Proto-Semitik Barat",
["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"] = "Chin Senthang",
["sfb"] = "French Belgian Sign Language",
["sfm"] = "Small Flowery Miao",
["sfs"] = "Bahasa Isyarat Afrika Selatan",
["sfw"] = "Sehwi",
["sg"] = "Sango",
["sga"] = "Ireland Kuno",
["sgb"] = "Mag-Anchi Ayta",
["sgc"] = "Kipsigis",
["sgd"] = "Surigaonon",
["sge"] = "Segai",
["sgg"] = "Swiss-German Sign Language",
["sgh"] = "Shughni",
["sgi"] = "Suga",
["sgk"] = "Sangkong",
["sgm"] = "Singa",
["sgp"] = "Singpho",
["sgr"] = "Sangisari",
["sgs"] = "Samogitia",
["sgt"] = "Brokpake",
["sgu"] = "Salas",
["sgw"] = "Sebat Bet Gurage",
["sgx"] = "Sierra Leone Sign Language",
["sgy"] = "Sanglechi",
["sgz"] = "Sursurunga",
["sh"] = "Serbo-Croatian",
["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"] = "Shan",
["sho"] = "Shanga",
["shp"] = "Shipibo-Conibo",
["shq"] = "Sala",
["shr"] = "Shi",
["shs"] = "Shuswap",
["sht"] = "Shasta",
["shu"] = "Arab Chad",
["shv"] = "Shehri",
["shw"] = "Shwai",
["shx"] = "She",
["shy"] = "Tachawit",
["shz"] = "Syenara Senoufo",
["si"] = "Sinhalese",
["sia"] = "Sami Akkala",
["sib"] = "Sebop",
["sid"] = "Sidamo",
["sie"] = "Simaa",
["sif"] = "Siamou",
["sig"] = "Paasaal",
["sih"] = "Zire",
["sii"] = "Shom Peng",
["sij"] = "Numbami",
["sik"] = "Sikiana",
["sil"] = "Tumulung Sisaala",
["sim"] = "Seim",
["sio-pro"] = "Proto-Siouan",
["sip"] = "Sikkim",
["siq"] = "Sonia",
["sir"] = "Siri",
["sis"] = "Siuslaw",
["sit-aao-pro"] = "Proto-Naga Tengah",
["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-Ersu",
["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-Kho-Bwa Barat",
["sit-kon-pro"] = "Proto-Naga Utara",
["sit-liz"] = "Lizu",
["sit-lnj"] = "Longjia",
["sit-lrn"] = "Luren",
["sit-luu-pro"] = "Proto-Luish",
["sit-nas-pro"] = "Proto-Naish",
["sit-prn"] = "Puiron",
["sit-pro"] = "Proto-Sino-Tibet",
["sit-sit"] = "Situ",
["sit-tam-pro"] = "Proto-Tamang",
["sit-tan-pro"] = "Proto-Tani",
["sit-tgm"] = "Tangam",
["sit-tng-pro"] = "Proto-Tangkhul",
["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",
["sjd"] = "Sami Kildin",
["sje"] = "Sami Pite",
["sjg"] = "Assangori",
["sjk"] = "Sami Kemi",
["sjl"] = "Miji",
["sjm"] = "Mapun",
["sjn"] = "Sindarin",
["sjo"] = "Xibe",
["sjp"] = "Surjapuri",
["sjr"] = "Siar-Lak",
["sjs"] = "Senhaja De Srair",
["sjt"] = "Sami Ter",
["sju"] = "Sami Ume",
["sjw"] = "Shawnee",
["sk"] = "Slovak",
["ska"] = "Skagit",
["skb"] = "Saek",
["skc"] = "Ma Manda",
["skd"] = "Miwok Sierra Selatan",
["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"] = "Maia",
["skt"] = "Sakata",
["sku"] = "Sakao",
["skv"] = "Skou",
["skw"] = "Belanda Kreol Skepi",
["skx"] = "Seko Padang",
["sky"] = "Sikaiana",
["skz"] = "Sekar",
["sl"] = "Slovene",
["sla-pro"] = "Proto-Slav",
["slc"] = "Saliba (Colombia)",
["sld"] = "Sissala",
["sle"] = "Sholaga",
["slf"] = "Swiss-Italian Sign Language",
["slg"] = "Selungai Murut",
["slh"] = "Salish Puget Sound Selatan",
["slj"] = "Salumá",
["sll"] = "Salt-Yui",
["slm"] = "Pangutaran Sama",
["sln"] = "Salinan",
["slp"] = "Lamaholot",
["slq"] = "Salchuq",
["slr"] = "Salar",
["sls"] = "Singapore Sign Language",
["slt"] = "Sila",
["slu"] = "Selaru",
["slw"] = "Sialum",
["slx"] = "Salampasu",
["sly"] = "Selayar",
["slz"] = "Ma'ya",
["sm"] = "Samoan",
["sma"] = "Sami Selatan",
["smb"] = "Simbari",
["smc"] = "Som",
["smd"] = "Sama",
["smf"] = "Auwe",
["smg"] = "Simbali",
["smh"] = "Samei",
["smi-pro"] = "Proto-Sami",
["smj"] = "Sami Lule",
["smk"] = "Bolinao",
["sml"] = "Bajau Laut",
["smm"] = "Musasa",
["smn"] = "Sami Inari",
["smp"] = "Ibrani Samaria",
["smq"] = "Samo",
["smr"] = "Simeulue",
["sms"] = "Sami Skolt",
["smt"] = "Simte",
["smu"] = "Somray",
["smv"] = "Samvedi",
["smw"] = "Sumbawa",
["smx"] = "Samba",
["smy"] = "Semnani",
["smz"] = "Simeku",
["sn"] = "Shona",
["snb"] = "Sebuyau",
["snc"] = "Sinaugoro",
["sne"] = "Bidayuh Bau",
["snf"] = "Noon",
["sng"] = "Sanga (Congo)",
["sni"] = "Sensi",
["snj"] = "Riverain Sango",
["snk"] = "Soninke",
["snl"] = "Sangil",
["snm"] = "Ma'di Selatan",
["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"] = "Somali",
["soa"] = "Thai Song",
["sob"] = "Sobei",
["soc"] = "Soko",
["sod"] = "Songoora",
["soe"] = "Songomeno",
["sog"] = "Sogdia",
["soh"] = "Aka (Sudan)",
["soi"] = "Sonha",
["sok"] = "Sokoro",
["sol"] = "Solos",
["son-pro"] = "Proto-Songhai",
["soo"] = "Nsong",
["sop"] = "Songe",
["soq"] = "Kanasi",
["sor"] = "Somrai",
["sos"] = "Seenku",
["sou"] = "Thai Selatan",
["sov"] = "Sonsorol",
["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"] = "Picenum Selatan",
["spy"] = "Sabaot",
["sq"] = "Albanian",
["sqa"] = "Shama-Sambuga",
["sqh"] = "Shau",
["sqj-pro"] = "Proto-Albania",
["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"] = "Murut Serudung",
["srl"] = "Isirawa",
["srm"] = "Saramaccan",
["srn"] = "Seranan",
["srq"] = "Sirionó",
["srr"] = "Serer",
["srs"] = "Tsuut'ina",
["srt"] = "Sauri",
["sru"] = "Suruí",
["srv"] = "Waray Sorsogon",
["srw"] = "Serua",
["srx"] = "Sirmauri",
["sry"] = "Sera",
["srz"] = "Shahmirzadi",
["ss"] = "Swazi",
["ssa-klk-pro"] = "Proto-Kuliak",
["ssa-kom-pro"] = "Proto-Koma",
["ssa-pro"] = "Proto-Nilo-Sahara",
["ssb"] = "Bajau Pantai Timur",
["ssc"] = "Suba-Simbiti",
["ssd"] = "Siroi",
["sse"] = "Balangingi",
["ssf"] = "Thao",
["ssg"] = "Seimat",
["ssh"] = "Arab Syihuh",
["ssi"] = "Sansi",
["ssj"] = "Sausi",
["ssk"] = "Sunam",
["ssl"] = "Sisaala Barat",
["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"] = "Saho",
["ssz"] = "Sengseng",
["st"] = "Sotho",
["stb"] = "Subanen Utara",
["std"] = "Sentinel",
["ste"] = "Liana-Seti",
["stf"] = "Seta",
["stg"] = "Trieng",
["sth"] = "Shelta",
["sti"] = "Bulo Stieng",
["stj"] = "Matya Samo",
["stk"] = "Arammba",
["stm"] = "Setaman",
["stn"] = "Owa",
["sto"] = "Stoney",
["stp"] = "Tepehuan Tenggara",
["stq"] = "Frisia Saterland",
["str"] = "Saanich",
["sts"] = "Shumashti",
["stt"] = "Budeh Stieng",
["stu"] = "Samtao",
["stv"] = "Silt'e",
["stw"] = "Satawal",
["sty"] = "Tatar Siberia",
["su"] = "Sundanese",
["sua"] = "Sulka",
["sub"] = "Suku",
["suc"] = "Subanon Barat",
["sue"] = "Suena",
["sug"] = "Suganga",
["sui"] = "Suki",
["suk"] = "Sukuma",
["suq"] = "Suri",
["sur"] = "Mwaghavul",
["sus"] = "Susu",
["sut"] = "Subtiaba",
["suv"] = "Sulung",
["suw"] = "Sumbwa",
["sux"] = "Sumeria",
["suy"] = "Suyá",
["suz"] = "Sunwar",
["sv"] = "Swedish",
["sva"] = "Svan",
["svb"] = "Ulau-Suain",
["svc"] = "Inggeris Kreol Vincent",
["sve"] = "Serili",
["svk"] = "Slovakian Sign Language",
["svm"] = "Slavomolisano",
["svs"] = "Savosavo",
["svx"] = "Skalvian",
["sw"] = "Swahili",
["swb"] = "Comoros Maore",
["swf"] = "Sere",
["swg"] = "Swabia",
["swi"] = "Sui",
["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"] = "Kalapuya Selatan",
["sxl"] = "Selonia",
["sxm"] = "Samre",
["sxn"] = "Sangir",
["sxo"] = "Sorothaptic",
["sxr"] = "Saaroa",
["sxs"] = "Sasaru",
["sxw"] = "Saxwe Gbe",
["sya"] = "Siang",
["syb"] = "Subanen Tengah",
["syc"] = "Suryani Klasik",
["syd-pro"] = "Proto-Samoyed",
["syi"] = "Seki",
["syk"] = "Sukur",
["syl"] = "Sylhet",
["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"] = "Silesia",
["szn"] = "Sula",
["szp"] = "Suabo",
["szv"] = "Isubu",
["szw"] = "Sawai",
["szy"] = "Sakizaya",
["ta"] = "Tamil",
["taa"] = "Lower Tanana",
["tab"] = "Tabasaran",
["tac"] = "Lowland Tarahumara",
["tad"] = "Tause",
["tae"] = "Tariana",
["taf"] = "Tapirapé",
["tag"] = "Tagoi",
["tai-pro"] = "Proto-Tai",
["tai-swe-pro"] = "Proto-Tai Barat Daya",
["taj"] = "Tamang Timur",
["tak"] = "Tala",
["tal"] = "Tal",
["tan"] = "Tangale",
["tao"] = "Yami",
["tap"] = "Taabwa",
["tar"] = "Tarahumara Tengah",
["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"] = "Tairora Utara",
["tbh"] = "Thurawal",
["tbi"] = "Gaam",
["tbj"] = "Tiang",
["tbk"] = "Calamian Tagbanwa",
["tbl"] = "Tboli",
["tbm"] = "Tagbu",
["tbn"] = "Barro Negro Tunebo",
["tbo"] = "Tawala",
["tbp"] = "Taworta",
["tbq-bdg-pro"] = "Proto-Bodo-Garo",
["tbq-blg"] = "Bailang",
["tbq-brm-pro"] = "Proto-Burma",
["tbq-gkh"] = "Gokhy",
["tbq-kuk-pro"] = "Proto-Kuki-Chin",
["tbq-lal-pro"] = "Proto-Lalo",
["tbq-laz"] = "Laze",
["tbq-lob-pro"] = "Proto-Lolo-Burma",
["tbq-lol-pro"] = "Proto-Lolo",
["tbq-mil"] = "Milang",
["tbq-mor"] = "Moran",
["tbq-ngo"] = "Ngochang",
["tbr"] = "Tumtum",
["tbs"] = "Tanguat",
["tbt"] = "Kitembo",
["tbu"] = "Tubar",
["tbv"] = "Tobo",
["tbw"] = "Tagbanwa",
["tbx"] = "Kapin",
["tby"] = "Tabaru",
["tbz"] = "Ditammari",
["tca"] = "Ticuna",
["tcb"] = "Tanacross",
["tcc"] = "Datooga",
["tcd"] = "Tafi",
["tce"] = "Tutchone Selatan",
["tcf"] = "Tlapanec Malinaltepec",
["tcg"] = "Tamagario",
["tch"] = "Inggeris Kreol Turks dan Caicos",
["tci"] = "Wára",
["tck"] = "Tchitchege",
["tcl"] = "Taman (Myanmar)",
["tcm"] = "Tanahmerah",
["tco"] = "Taungyo",
["tcp"] = "Chin Tawr",
["tcq"] = "Kaiy",
["tcs"] = "Kreol Selat Torres",
["tct"] = "T'en",
["tcu"] = "Tarahumara Tenggara",
["tcw"] = "Tecpatlán Totonac",
["tcx"] = "Toda",
["tcy"] = "Tulu",
["tcz"] = "Chin Thado",
["tda"] = "Tagdal",
["tdb"] = "Panchpargania",
["tdc"] = "Emberá-Tadó",
["tdd"] = "Tai Nüa",
["tde"] = "Tiranige Diga Dogon",
["tdf"] = "Talieng",
["tdg"] = "Tamang Barat",
["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"] = "Telugu",
["tea"] = "Temiar",
["teb"] = "Tetete",
["tec"] = "Terik",
["ted"] = "Tepo Krumen",
["tee"] = "Tepehua Huehuetla",
["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"] = "Tetum",
["teu"] = "Soo",
["tev"] = "Teor",
["tew"] = "Tewa",
["tex"] = "Tennet",
["tey"] = "Tulishi",
["tez"] = "Tetserret",
["tfi"] = "Tofin Gbe",
["tfn"] = "Dena'ina",
["tfo"] = "Tefaro",
["tfr"] = "Teribe",
["tft"] = "Ternate",
["tg"] = "Tajik",
["tga"] = "Sagalla",
["tgb"] = "Tobilung",
["tgc"] = "Tigak",
["tgd"] = "Ciwogai",
["tge"] = "Tamang Gorkha Timur",
["tgf"] = "Chali",
["tgh"] = "Inggeris Kreol Tobago",
["tgi"] = "Lawunuia",
["tgn"] = "Tandaganon",
["tgo"] = "Sudest",
["tgp"] = "Tangoa",
["tgq"] = "Tring",
["tgr"] = "Tareng",
["tgs"] = "Nume",
["tgt"] = "Tagbanwa Tengah",
["tgu"] = "Tanggu",
["tgv"] = "Tingui-Boto",
["tgw"] = "Tagwana Senoufo",
["tgx"] = "Tagish",
["tgy"] = "Togoyo",
["th"] = "Thai",
["thc"] = "Tai Hang Tong",
["thd"] = "Kuuk Thaayorre",
["the"] = "Chitwania Tharu",
["thf"] = "Thangmi",
["thh"] = "Tarahumara Utara",
["thi"] = "Tai Long",
["thk"] = "Tharaka",
["thl"] = "Dangaura Tharu",
["thm"] = "Thavung",
["thn"] = "Thachanadan",
["thp"] = "Thompson",
["thq"] = "Kochila Tharu",
["thr"] = "Rana Tharu",
["ths"] = "Thakali",
["tht"] = "Tahltan",
["thu"] = "Thuri",
["thy"] = "Tha",
["ti"] = "Tigrinya",
["tic"] = "Tira",
["tif"] = "Tifal",
["tig"] = "Tigre",
["tih"] = "Murut Timugon",
["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"] = "Tiwa Selatan",
["tiy"] = "Tiruray",
["tiz"] = "Tai Hongjin",
["tja"] = "Tajuasohn",
["tjg"] = "Tunjung",
["tji"] = "Tujia Utara",
["tjl"] = "Tai Laing",
["tjm"] = "Timucua",
["tjn"] = "Tonjon",
["tjs"] = "Tujia Selatan",
["tju"] = "Tjurruru",
["tjw"] = "Chaap Wuurong",
["tk"] = "Turkmen",
["tka"] = "Truká",
["tkb"] = "Buksa",
["tkd"] = "Tukudede",
["tke"] = "Takwane",
["tkf"] = "Tukumanféd",
["tkl"] = "Tokelau",
["tkm"] = "Takelma",
["tkn"] = "Toku-No-Shima",
["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"] = "Tagalog",
["tla"] = "Tepehuan Barat Daya",
["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"] = "Tamang Barat Laut",
["tml"] = "Tamnim Citak",
["tmm"] = "Tai Thanh",
["tmn"] = "Taman (Indonesia)",
["tmo"] = "Temoq",
["tmq"] = "Tumleo",
["tms"] = "Tima",
["tmt"] = "Tasmate",
["tmu"] = "Iau",
["tmv"] = "Motembo",
["tmw"] = "Temuan",
["tmy"] = "Tami",
["tmz"] = "Tamanaku",
["tn"] = "Tswana",
["tna"] = "Tacana",
["tnb"] = "Tunebo Barat",
["tnc"] = "Tanimuca-Retuarã",
["tnd"] = "Angosturas Tunebo",
["tne"] = "Tinoc Kallahan",
["tng"] = "Tobanga",
["tnh"] = "Maiani",
["tni"] = "Tandia",
["tnk"] = "Kwamera",
["tnl"] = "Lenakel",
["tnm"] = "Tabla",
["tnn"] = "Tanna Utara",
["tno"] = "Toromono",
["tnp"] = "Whitesands",
["tnq"] = "Taíno",
["tnr"] = "Bedik",
["tns"] = "Tenis",
["tnt"] = "Tontemboan",
["tnu"] = "Tay Khang",
["tnv"] = "Tanchangya",
["tnw"] = "Tonsawang",
["tnx"] = "Tanema",
["tny"] = "Tongwe",
["tnz"] = "Ten'edn",
["to"] = "Tongan",
["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"] = "Tok Pisin",
["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"] = "Tupi Kuno",
["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"] = "Totonac Barat",
["tqu"] = "Touo",
["tqw"] = "Tonkawa",
["tr"] = "Turkish",
["tra"] = "Tirahi",
["trb"] = "Terebu",
["trc"] = "Copala Triqui",
["trd"] = "Turi",
["tre"] = "Tarangan Timur",
["trf"] = "Inggeris Kreol Trinidad",
["trg"] = "Lishán Didán",
["trh"] = "Turaka",
["tri"] = "Trió",
["trj"] = "Toram",
["trk-dkh"] = "Dukhan",
["trk-eog"] = "Oghuz Awal Kuno",
["trk-oat"] = "Turki Anatolia Kuno",
["trk-pro"] = "Proto-Turkik",
["trl"] = "Traveller Scottish",
["trm"] = "Tregami",
["trn"] = "Trinitario",
["tro"] = "Tarao",
["trp"] = "Kokborok",
["trq"] = "San Martín Itunyoso Triqui",
["trr"] = "Taushiro",
["trs"] = "Chicahuaxtla Triqui",
["trt"] = "Tunggare",
["tru"] = "Turoyo",
["trv"] = "Taroko",
["trw"] = "Torwali",
["trx"] = "Tringgus",
["try"] = "Turung",
["trz"] = "Torá",
["ts"] = "Tsonga",
["tsa"] = "Tsaangi",
["tsb"] = "Tsamai",
["tsc"] = "Tswa",
["tsd"] = "Tsakonian",
["tse"] = "Bahasa Isyarat Tunisia",
["tsf"] = "Tamang Barat Daya",
["tsg"] = "Suluk",
["tsh"] = "Tsuvan",
["tsi"] = "Tsimshian",
["tsj"] = "Tshangla",
["tsl"] = "Ts'ün-Lao",
["tsm"] = "Bahasa Isyarat Turki",
["tsp"] = "Toussiana Utara",
["tsq"] = "Bahasa Isyarat Thai",
["tsr"] = "Akei",
["tss"] = "Bahasa Isyarat Taiwan",
["tsu"] = "Tsou",
["tsv"] = "Tsogo",
["tsw"] = "Tsishingini",
["tsx"] = "Mubami",
["tsy"] = "Bahasa Isyarat Tebul",
["tt"] = "Tatar",
["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"] = "Tutchone Utara",
["ttn"] = "Towei",
["tto"] = "Lower Ta'oih",
["ttp"] = "Tombelala",
["ttr"] = "Tera",
["tts"] = "Isan",
["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"] = "Tunebo Tengah",
["tug"] = "Tunia",
["tuh"] = "Taulil",
["tui"] = "Tupuri",
["tuj"] = "Tugutil",
["tul"] = "Tula",
["tum"] = "Tumbuka",
["tun"] = "Tunica",
["tuo"] = "Tucano",
["tup-gua-pro"] = "Proto-Tupi-Guarani",
["tup-kab"] = "Kabishiana",
["tup-kaw"] = "Kawahiva",
["tup-pro"] = "Proto-Tupia",
["tuq"] = "Tedaga",
["tus"] = "Tuscarora",
["tuu"] = "Tututni",
["tuv"] = "Turkana",
["tuw-alk"] = "Alchuka",
["tuw-bal"] = "Bala",
["tuw-kkl"] = "Kyakala",
["tuw-kli"] = "Kili",
["tuw-pro"] = "Proto-Tungus",
["tuw-sol"] = "Solon",
["tux"] = "Tuxináwa",
["tuy"] = "Tugen",
["tuz"] = "Turka",
["tva"] = "Vaghua",
["tvd"] = "Tsuvadi",
["tve"] = "Te'un",
["tvk"] = "Ambrym Tenggara",
["tvl"] = "Tuvalu",
["tvm"] = "Tela-Masbuar",
["tvn"] = "Tavoyan",
["tvo"] = "Tidore",
["tvs"] = "Taveta",
["tvt"] = "Tutsa Naga",
["tvu"] = "Tunen",
["tvw"] = "Sedoa",
["tvx"] = "Taivoan",
["tvy"] = "Timor Pidgin",
["twa"] = "Twana",
["twb"] = "Tawbuid Barat",
["twc"] = "Teshenawa",
["twe"] = "Teiwa",
["twf"] = "Taos",
["twg"] = "Tereweng",
["twh"] = "Tai Dón",
["twm"] = "Tawang Monpa",
["twn"] = "Twendi",
["two"] = "Tswapong",
["twp"] = "Ere",
["twq"] = "Tasawaq",
["twr"] = "Tarahumara Barat Daya",
["twt"] = "Turiwára",
["twu"] = "Termanu",
["tww"] = "Tuwari",
["twy"] = "Tawoyan",
["txa"] = "Tombonuo",
["txb"] = "Tocharia B",
["txc"] = "Tsetsaut",
["txe"] = "Totoli",
["txg"] = "Tangut",
["txh"] = "Thracian",
["txi"] = "Ikpeng",
["txj"] = "Tarjumo",
["txm"] = "Tomini",
["txn"] = "Tarangan Barat",
["txo"] = "Toto",
["txq"] = "Tii",
["txr"] = "Tartessian",
["txs"] = "Tonsea",
["txt"] = "Citak",
["txu"] = "Kayapó",
["txx"] = "Tatana",
["ty"] = "Tahitian",
["tya"] = "Tauya",
["tye"] = "Kyenga",
["tyh"] = "O'du",
["tyi"] = "Teke-Tsaayi",
["tyj"] = "Tai Do",
["tyl"] = "Thu Lao",
["tyn"] = "Kombai",
["typ"] = "Kuku-Thaypan",
["tyr"] = "Tai Daeng",
["tys"] = "Sapa",
["tyt"] = "Tày Tac",
["tyu"] = "Kua",
["tyv"] = "Tuva",
["tyx"] = "Teke-Tyee",
["tyz"] = "Tày",
["tza"] = "Bahasa Isyarat Tanzania",
["tzh"] = "Tzeltal",
["tzj"] = "Tz'utujil",
["tzl"] = "Talossan",
["tzm"] = "Tamazight Atlas Tengah",
["tzn"] = "Tugun",
["tzo"] = "Tzotzil",
["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"] = "Udi",
["udj"] = "Ujir",
["udl"] = "Uldeme",
["udm"] = "Udmurt",
["udu"] = "Uduk",
["ues"] = "Kioko",
["ufi"] = "Ufim",
["ug"] = "Uyghur",
["uga"] = "Ugarit",
["ugb"] = "Kuku-Ugbanh",
["uge"] = "Ughele",
["ugn"] = "Ugandan Sign Language",
["ugo"] = "Gong",
["ugy"] = "Uruguayan Sign Language",
["uha"] = "Uhami",
["uhn"] = "Damal",
["uis"] = "Uisai",
["uiv"] = "Iyive",
["uji"] = "Tanjijili",
["uk"] = "Ukrainian",
["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"] = "Unserdeutsch",
["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"] = "Watut Utara",
["und"] = "tidak ditentukan",
["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"] = "Malakula Timur Laut",
["ur"] = "Urdu",
["ura"] = "Urarina",
["urb"] = "Urubú-Kaapor",
["urc"] = "Urningangg",
["ure"] = "Uru",
["urf"] = "Uradhi",
["urg"] = "Urigina",
["urh"] = "Urhobo",
["uri"] = "Urim",
["urj-fin-pro"] = "Proto-Finnik",
["urj-koo"] = "Komi Kuno",
["urj-kuk"] = "Kukkuzi",
["urj-kya"] = "Komi-Yazva",
["urj-mdv-pro"] = "Proto-Mordvinik",
["urj-prm-pro"] = "Proto-Permik",
["urj-pro"] = "Proto-Uralik",
["urj-ugr-pro"] = "Proto-Ugrik",
["urk"] = "Urak Lawoi'",
["url"] = "Urali",
["urm"] = "Urapmin",
["urn"] = "Uruangnirin",
["uro"] = "Ura (Papua 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"] = "Uvea Barat",
["uvh"] = "Uri",
["uvl"] = "Lote",
["uwa"] = "Kuku-Uwanh",
["uya"] = "Doko-Uyanga",
["uz"] = "Uzbek",
["vaa"] = "Vaagri Booli",
["vae"] = "Vale",
["vag"] = "Vagla",
["vah"] = "Varhadi",
["vai"] = "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"] = "Bontoc Barat Daya",
["ve"] = "Venda",
["vec"] = "Veneto",
["ved"] = "Veddah",
["vem"] = "Vemgo-Mabas",
["veo"] = "Ventureño",
["vep"] = "Veps",
["ver"] = "Mom Jango",
["vgr"] = "Vaghri",
["vgt"] = "Flemish Sign Language",
["vi"] = "Vietnamese",
["vic"] = "Kreol Kepulauan Virgin",
["vid"] = "Vidunda",
["vif"] = "Vili",
["vig"] = "Viemo",
["vil"] = "Vilela",
["vis"] = "Vishavan",
["vit"] = "Viti",
["viv"] = "Iduna",
["vka"] = "Kariyarra",
["vki"] = "Ija-Zuba",
["vkj"] = "Kujarge",
["vkk"] = "Kaur",
["vkl"] = "Kulisusu",
["vkm"] = "Kamakan",
["vko"] = "Kodeoha",
["vkp"] = "Portugis Kreol Korlai",
["vkt"] = "Tenggarong Kutai Malay",
["vku"] = "Kurrama",
["vlp"] = "Valpei",
["vls"] = "Flemish Barat",
["vma"] = "Martuthunira",
["vmb"] = "Mbabaram",
["vmc"] = "Mixtec Juxtlahuaca",
["vmd"] = "Mudu Koraga",
["vme"] = "Masela Timur",
["vmf"] = "Franconia Timur",
["vmg"] = "Minigir",
["vmh"] = "Maraghei",
["vmi"] = "Miwa",
["vmj"] = "Mixtec Ixtayutla",
["vmk"] = "Makhuwa-Shirima",
["vml"] = "Malgana",
["vmm"] = "Mixtec Mitlatongo",
["vmp"] = "Mazatec Soyaltepec",
["vmq"] = "Mixtec Soyaltepec",
["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"] = "Volapük",
["vor"] = "Voro",
["vot"] = "Vot",
["vra"] = "Vera'a",
["vro"] = "Võro",
["vrs"] = "Varisi",
["vrt"] = "Banam Bay",
["vsi"] = "Moldova Sign Language",
["vsl"] = "Venezuelan Sign Language",
["vsv"] = "Valencian Sign Language",
["vto"] = "Vitou",
["vum"] = "Vumbu",
["vun"] = "Vunjo",
["vut"] = "Vute",
["vwa"] = "Awa (China)",
["wa"] = "Walloon",
["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"] = "Waray-Waray",
["was"] = "Washo",
["wat"] = "Kaninuwa",
["wau"] = "Wauja",
["wav"] = "Waka",
["waw"] = "Waiwai",
["wax"] = "Watam",
["way"] = "Wayana",
["waz"] = "Wampur",
["wba"] = "Warao",
["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"] = "Yanomámi",
["wci"] = "Waci Gbe",
["wdd"] = "Wandji",
["wdg"] = "Wadaginam",
["wdj"] = "Wadjiginy",
["wdt"] = "Wendat",
["wdu"] = "Wadjigu",
["wdy"] = "Wadjabangayi",
["wea"] = "Wewaw",
["wec"] = "Wè Barat",
["wed"] = "Wedau",
["weh"] = "Weh",
["wei"] = "Kiunum",
["wem"] = "Weme Gbe",
["weo"] = "Wemale",
["wer"] = "Weri",
["wes"] = "Pijin Cameroon",
["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"] = "Wahgi Utara",
["whk"] = "Kenyah Wahau",
["whu"] = "Kayan Wahau",
["wib"] = "Toussiana Selatan",
["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"] = "Winnebago",
["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"] = "Wales Pertengahan",
["wlo"] = "Wolio",
["wlr"] = "Wailapa",
["wls"] = "Wallis",
["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"] = "Mwani",
["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"] = "Wolof",
["woa"] = "Tyaraity",
["wob"] = "Wè Utara",
["woc"] = "Wogeo",
["wod"] = "Wolani",
["woe"] = "Woleai",
["wog"] = "Wogamusin",
["woi"] = "Kamang",
["wok"] = "Longto",
["wom"] = "Perema",
["won"] = "Wongo",
["woo"] = "Manombai",
["wor"] = "Woria",
["wos"] = "Hanga Hundi",
["wow"] = "Wawonii",
["wpc"] = "Wirö",
["wra"] = "Warapu",
["wrb"] = "Warluwara",
["wrg"] = "Warungu",
["wrh"] = "Wiradhuri",
["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",
["wss"] = "Wasa",
["wsu"] = "Wasu",
["wsv"] = "Wotapuri-Katarqalai",
["wtf"] = "Watiwa",
["wth"] = "Wathaurong",
["wti"] = "Berta",
["wtk"] = "Watakataui",
["wtm"] = "Mewati",
["wtw"] = "Wotu",
["wua"] = "Wikngenchera",
["wub"] = "Wunambal",
["wud"] = "Wudu",
["wuh"] = "Wutunhua",
["wul"] = "Silimo",
["wum"] = "Wumbvu",
["wun"] = "Bungu",
["wur"] = "Wurrugu",
["wut"] = "Wutung",
["wuu"] = "Wu",
["wuv"] = "Wuvulu-Aua",
["wux"] = "Wulna",
["wuy"] = "Wauyai",
["wwa"] = "Waama",
["wwo"] = "Dorig",
["wwr"] = "Warrwa",
["www"] = "Wawa",
["wxa"] = "Waxianghua",
["wxw"] = "Wardandi",
["wya"] = "Wyandot",
["wyb"] = "Ngiyambaa",
["wyi"] = "Woiwurrung",
["wym"] = "Vilamovian",
["wyr"] = "Wayoró",
["wyy"] = "Fiji Barat",
["xaa"] = "Arab Andalusia",
["xab"] = "Sambe",
["xac"] = "Kachari",
["xad"] = "Adai",
["xae"] = "Aequian",
["xag"] = "Aghwan",
["xai"] = "Kaimbé",
["xaj"] = "Ararandewára",
["xak"] = "Maku",
["xal"] = "Kalmyk",
["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"] = "Baktria",
["xbd"] = "Bindal",
["xbe"] = "Bigambal",
["xbg"] = "Bunganditj",
["xbi"] = "Kombio",
["xbj"] = "Birrpayi",
["xbm"] = "Breton Pertengahan",
["xbn"] = "Kenaboi",
["xbo"] = "Bulgar",
["xbp"] = "Bibbulman",
["xbr"] = "Kambera",
["xbw"] = "Kambiwá",
["xby"] = "Butchulla",
["xcb"] = "Cumbric",
["xcc"] = "Camunic",
["xce"] = "Celtiberian",
["xch"] = "Chemakum",
["xcl"] = "Armenia Kuno",
["xcm"] = "Comecrudo",
["xcn"] = "Cotoname",
["xco"] = "Khwarezm",
["xcr"] = "Carian",
["xct"] = "Tibet Klasik",
["xcu"] = "Curonian",
["xcv"] = "Chuva",
["xcw"] = "Coahuilteco",
["xcy"] = "Cayuse",
["xda"] = "Darkinjung",
["xdc"] = "Dacian",
["xdk"] = "Dharug",
["xdm"] = "Edom",
["xdq"] = "Kaitag",
["xdy"] = "Malayic Dayak",
["xeb"] = "Ebla",
["xed"] = "Hdi",
["xeg"] = "ǁXegwi",
["xel"] = "Kelo",
["xem"] = "Kembayan",
["xep"] = "Epi-Olmec",
["xer"] = "Xerénte",
["xes"] = "Kesawai",
["xet"] = "Xetá",
["xeu"] = "Keoru-Ahia",
["xfa"] = "Falisci",
["xga"] = "Galatia",
["xgb"] = "Gbin",
["xgd"] = "Gudang",
["xgf"] = "Gabrielino-Fernandeño",
["xgg"] = "Goreng",
["xgi"] = "Garingbal",
["xgl"] = "Galindan",
["xgm"] = "Darumbal",
["xgn-pro"] = "Proto-Mongolia",
["xgr"] = "Garza",
["xgu"] = "Unggumi",
["xgw"] = "Guwa",
["xh"] = "Xhosa",
["xha"] = "Harami",
["xhc"] = "Hun",
["xhd"] = "Hadrami",
["xhe"] = "Khetrani",
["xhm"] = "Khmer Pertengahan",
["xhr"] = "Hernican",
["xht"] = "Hatti",
["xhu"] = "Hurri",
["xhv"] = "Khua",
["xib"] = "Iberia",
["xii"] = "Xiri",
["xil"] = "Illyria",
["xin"] = "Xinca",
["xir"] = "Xiriâna",
["xis"] = "Kisan",
["xiv"] = "Bahasa Lembah Indus",
["xiy"] = "Xipaya",
["xjb"] = "Minjungbal",
["xka"] = "Kalkoti",
["xkb"] = "Manigri-Kambolé Ede Nago",
["xkc"] = "Khoini",
["xkd"] = "Kayan Mendalam",
["xke"] = "Kereho",
["xkf"] = "Khengkha",
["xkg"] = "Kagoro",
["xki"] = "Isyarat Kenya",
["xkj"] = "Kajali",
["xkk"] = "Kaco'",
["xkl"] = "Bakung",
["xkn"] = "Kayan Sungai 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"] = "Lycia",
["xld"] = "Lydia",
["xle"] = "Lemnos",
["xlg"] = "Liguria Purba",
["xli"] = "Liburni",
["xlo"] = "Loup A",
["xlp"] = "Lepontii",
["xls"] = "Lusitania",
["xlu"] = "Luwiya",
["xly"] = "Elymi",
["xmb"] = "Mbonga",
["xmc"] = "Makhuwa-Marrevone",
["xmd"] = "Mbudum",
["xme-ker"] = "Kermanik",
["xme-kls"] = "Kalasuri",
["xme-klt"] = "Kilit",
["xme-mid"] = "Median Pertengahan",
["xme-old"] = "Median Kuno",
["xme-ott"] = "Tati Kuno",
["xme-taf"] = "Tafreshi",
["xme-ttc-pro"] = "Proto-Tatik",
["xmf"] = "Mingrelia",
["xmg"] = "Mengaka",
["xmh"] = "Kugu-Muminh",
["xmj"] = "Majera",
["xmk"] = "Macedonia Purba",
["xml"] = "Isyarat Malaysia",
["xmm"] = "Melayu Manado",
["xmo"] = "Morerebi",
["xmp"] = "Kuku-Mu'inh",
["xmq"] = "Kuku-Mangk",
["xmr"] = "Meroe",
["xms"] = "Isyarat Maghribi",
["xmt"] = "Matbat",
["xmu"] = "Kamu",
["xmx"] = "Maden",
["xmy"] = "Mayaguduna",
["xmz"] = "Mori Bawah",
["xna"] = "Arab Utara Purba",
["xnb"] = "Kanakanabu",
["xnd-pro"] = "Proto-Na-Dene",
["xng"] = "Mongol Pertengahan",
["xnh"] = "Kuanhua",
["xni"] = "Ngarigu",
["xnk"] = "Nganakarti",
["xnn"] = "Kankanay Utara",
["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"] = "Tasmania Tenggara",
["xpg"] = "Phrygia",
["xph"] = "Tyerrernotepanner",
["xpi"] = "Pict",
["xpj"] = "Mpalitjanh",
["xpk"] = "Kulina",
["xpl"] = "Port Sorell",
["xpm"] = "Pumpokol",
["xpn"] = "Kapinawá",
["xpo"] = "Pochutec",
["xpp"] = "Puyo-Paekche",
["xpq"] = "Mohegan-Pequot",
["xpr"] = "Parthia",
["xps"] = "Pisidia",
["xpu"] = "Punik",
["xpv"] = "Tommeginne",
["xpw"] = "Peerapper",
["xpx"] = "Toogee",
["xpy"] = "Buyeo",
["xpz"] = "Pulau Bruny",
["xqa"] = "Karakhanid",
["xqt"] = "Qatabanian",
["xra"] = "Krahô",
["xrb"] = "Karaboro Timur",
["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"] = "Sambal",
["xsc-pro"] = "Proto-Scythia",
["xsc-sak-pro"] = "Proto-Saka",
["xsc-sar-pro"] = "Proto-Sarmatia",
["xsc-skw-pro"] = "Proto-Saka-Wakhi",
["xsd"] = "Sidetic",
["xse"] = "Sempan",
["xsh"] = "Shamang",
["xsi"] = "Sio",
["xsj"] = "Subi",
["xsl"] = "Slavey Selatan",
["xsm"] = "Kasem",
["xsn"] = "Sanga (Nigeria)",
["xso"] = "Solano",
["xsp"] = "Silopi",
["xsq"] = "Makhuwa-Saka",
["xsr"] = "Sherpa",
["xss"] = "Assan",
["xsu"] = "Sanumá",
["xsv"] = "Sudovian",
["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"] = "Mixtec Magdalena Peñasco",
["xtn"] = "Mixtec Tlaxiaco Utara",
["xto"] = "Tocharia A",
["xtp"] = "Mixtec San Miguel Piedras",
["xtq"] = "Tumshuq",
["xtr"] = "Tripuri Awal",
["xts"] = "Mixtec Sindihui",
["xtt"] = "Mixtec Tacahua",
["xtu"] = "Mixtec Cuyamecalco",
["xtv"] = "Thawa",
["xtw"] = "Tawandê",
["xty"] = "Mixtec Yoloxochitl",
["xtz"] = "Tasmania",
["xua"] = "Kurumba Alu",
["xub"] = "Kurumba Betta",
["xud"] = "Umiida",
["xug"] = "Kunigami",
["xuj"] = "Jennu Kurumba",
["xul"] = "Ngunawal",
["xum"] = "Umbri",
["xun"] = "Unggaranggu",
["xuo"] = "Kuo",
["xup"] = "Upper Umpqua",
["xur"] = "Urartian",
["xut"] = "Kuthant",
["xuu"] = "Khwe",
["xve"] = "Venetic",
["xvn"] = "Vandalic",
["xvo"] = "Volscian",
["xvs"] = "Vestinian",
["xwa"] = "Kwaza",
["xwc"] = "Woccon",
["xwd"] = "Wadi Wadi",
["xwe"] = "Xwela Gbe",
["xwg"] = "Kwegu",
["xwj"] = "Wajuk",
["xwk"] = "Wangkumara",
["xwl"] = "Gbe Xwla Barat",
["xwo"] = "Oirat Bertulis",
["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"] = "Zemgalia",
["xzp"] = "Zapotec Purba",
["yaa"] = "Yaminahua",
["yab"] = "Yuhup",
["yac"] = "Pass Valley Yali",
["yad"] = "Yagua",
["yae"] = "Pumé",
["yaf"] = "Yaka",
["yag"] = "Yámana",
["yah"] = "Yazghulami",
["yai"] = "Yagnobi",
["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"] = "Yugur Barat",
["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"] = "Kreol Yilan",
["yda"] = "Yanda",
["yde"] = "Yangum Dey",
["ydg"] = "Yidgha",
["ydk"] = "Yoidik",
["yea"] = "Ravula",
["yec"] = "Yeniche",
["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"] = "Yiddish",
["yia"] = "Yinggarda",
["yif"] = "Ache",
["yig"] = "Wusa Nasu",
["yii"] = "Yidiny",
["yij"] = "Yindjibarndi",
["yik"] = "Dongshanba Lalo",
["yil"] = "Yindjilandji",
["yim"] = "Yimchungru Naga",
["yin"] = "Yinchia",
["yip"] = "Pholo",
["yiq"] = "Miqie",
["yir"] = "Awyu Utara",
["yis"] = "Yis",
["yit"] = "Lalu Timur",
["yiu"] = "Awu",
["yiv"] = "Nisu Utara",
["yix"] = "Axi",
["yiy"] = "Yir-Yoront",
["yiz"] = "Azhe",
["yka"] = "Yakan",
["ykg"] = "Yukaghir Utara",
["ykh"] = "Mongol Khamnigan",
["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"] = "Nyâlayu",
["ymb"] = "Yambes",
["ymc"] = "Muji Selatan",
["ymd"] = "Muda",
["yme"] = "Yameo",
["ymg"] = "Yamongeri",
["ymh"] = "Mili",
["ymi"] = "Moji",
["ymk"] = "Makwe",
["yml"] = "Iamalele",
["ymm"] = "Maay",
["ymn"] = "Sunum",
["ymo"] = "Mon Yangum",
["ymp"] = "Yamap",
["ymq"] = "Muji Qila",
["ymr"] = "Malasar",
["yms"] = "Mysian",
["ymx"] = "Muji Utara",
["ymz"] = "Muzi",
["yna"] = "Aluo",
["ynd"] = "Yandruwandha",
["yne"] = "Lang'e",
["yng"] = "Yango",
["ynk"] = "Naukanski",
["ynl"] = "Yangulam",
["ynn"] = "Yana",
["yno"] = "Yong",
["yns"] = "Yansi",
["ynu"] = "Yahuna",
["yo"] = "Yoruba",
["yob"] = "Yoba",
["yog"] = "Yogad",
["yoi"] = "Yonaguni",
["yok-bvy"] = "Yokuts Buena Vista",
["yok-dly"] = "Yokuts Delta",
["yok-gsy"] = "Yokuts Gashowu",
["yok-kry"] = "Yokuts Sungai Kings",
["yok-nvy"] = "Yokuts Lembah Utara",
["yok-ply"] = "Yokuts Palewyami",
["yok-svy"] = "Yokuts Lembah Selatan",
["yok-tky"] = "Yokuts Tule-Kaweah",
["yol"] = "Yola",
["yom"] = "Yombe",
["yon"] = "Yongkom",
["yox"] = "Yoron",
["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"] = "Nenets Tundra",
["yrk-for"] = "Nenets Hutan",
["yrk-tun"] = "Nenets Tundra",
["yrl"] = "Nheengatu",
["yrn"] = "Yerong",
["yro"] = "Yaroamë",
["yrw"] = "Yarawata",
["yry"] = "Yarluyandi",
["ysc"] = "Jassic",
["ysd"] = "Samatao",
["ysg"] = "Sonaga",
["ysl"] = "Yugoslavian Sign Language",
["ysn"] = "Sani",
["yso"] = "Nisi",
["ysp"] = "Lolopo Selatan",
["ysr"] = "Sirenik",
["yss"] = "Yessan-Mayo",
["ysy"] = "Sanie",
["yta"] = "Talu",
["ytl"] = "Tanglang",
["ytp"] = "Thopho",
["ytw"] = "Yout Wam",
["yty"] = "Yatay",
["yua"] = "Maya Yucatec",
["yub"] = "Yugambal",
["yuc"] = "Yuchi",
["yue"] = "Kantonis",
["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"] = "Yukaghir Selatan",
["yuy"] = "Yugur Timur",
["yuz"] = "Yuracare",
["yva"] = "Yawa",
["yvt"] = "Yavitero",
["ywa"] = "Kalou",
["ywg"] = "Yinhawangka",
["ywl"] = "Lalu Barat",
["ywn"] = "Yawanawa",
["ywq"] = "Nasu",
["ywr"] = "Yawuru",
["ywt"] = "Xishanba Lalo",
["ywu"] = "Wumeng Nasu",
["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"] = "Zhuang",
["zaa"] = "Zapotec Sierra de Juárez",
["zab"] = "Zapotec San Juan Guelavía",
["zac"] = "Zapotec Ocotlán",
["zad"] = "Zapotec Cajonos",
["zae"] = "Zapotec Yareni",
["zaf"] = "Zapotec Ayoquesco",
["zag"] = "Zaghawa",
["zah"] = "Zangwal",
["zai"] = "Zapotec Segenting",
["zaj"] = "Zaramo",
["zak"] = "Zanaki",
["zal"] = "Zauzou",
["zam"] = "Zapoteco Mahuatlán Tengah",
["zao"] = "Zapotec Ozolotepec",
["zap"] = "Zapotec",
["zaq"] = "Zapotec Aloápam",
["zar"] = "Zapotec Rincón",
["zas"] = "Zapotec Santo Domingo Albarradas",
["zat"] = "Zapotec Tabaa",
["zau"] = "Zangskar",
["zav"] = "Zapotec Yatzachi",
["zaw"] = "Zapotec Mitla",
["zax"] = "Zapotec Xadani",
["zay"] = "Zayse-Zergulla",
["zaz"] = "Zari",
["zbt"] = "Batui",
["zca"] = "Zapotec Coatecas Altas",
["zdj"] = "Comoros Ngazidja",
["zea"] = "Zeeland",
["zeg"] = "Zenag",
["zen"] = "Zenaga",
["zga"] = "Kinga",
["zgh"] = "Amazigh Maghribi",
["zgr"] = "Magori",
["zh"] = "Chinese",
["zhb"] = "Zhaba",
["zhi"] = "Zhire",
["zhn"] = "Nong Zhuang",
["zhw"] = "Zhoa",
["zhx-min-pro"] = "Proto-Min",
["zhx-sht"] = "Tuhua Shaozhou",
["zhx-sic"] = "Sichuan",
["zhx-tai"] = "Taishan",
["zia"] = "Zia",
["zib"] = "Zimbabwe Sign Language",
["zik"] = "Zimakani",
["zil"] = "Zialo",
["zim"] = "Mesme",
["zin"] = "Zinza",
["zir"] = "Ziriya",
["ziw"] = "Zigula",
["ziz"] = "Zizilivakan",
["zka"] = "Kaimbulawa",
["zkb"] = "Koibal",
["zkg"] = "Goguryeo",
["zkh"] = "Khorezmian Turkic",
["zkk"] = "Karankawa",
["zko"] = "Kott",
["zkp"] = "Kaingáng São Paulo",
["zkr"] = "Zakhring",
["zkt"] = "Khitan",
["zku"] = "Kaurna",
["zkv"] = "Krevinian",
["zkz"] = "Khazar",
["zle-ono"] = "Novgorod Kuno",
["zle-ort"] = "Ruthenian Kuno",
["zls-chs"] = "Slavonic Gereja",
["zlw-ocs"] = "Czech Kuno",
["zlw-opl"] = "Poland Kuno",
["zlw-osk"] = "Slovak Kuno",
["zlw-slv"] = "Slovincian",
["zma"] = "Manda (Australia)",
["zmb"] = "Zimba",
["zmc"] = "Margany",
["zmd"] = "Maridan",
["zme"] = "Mangerr",
["zmf"] = "Mfinu",
["zmg"] = "Marti Ke",
["zmh"] = "Makolkol",
["zmi"] = "Melayu Negeri Sembilan",
["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"] = "Kaya",
["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"] = "Zulu",
["zua"] = "Zeem",
["zuh"] = "Tokano",
["zum"] = "Kumzari",
["zun"] = "Zuni",
["zuy"] = "Zumaya",
["zwa"] = "Zay",
["zyp"] = "Zyphe",
["zza"] = "Zazaki",
["zzj"] = "Zuojiang Zhuang",
}
lw6ijb9wwcwfidl0xztgvy4wxiwc012
373543
373525
2026-09-11T09:58:18Z
Hakimi97
2668
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373543
Scribunto
text/plain
return {
["aa"] = "Afar",
["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"] = "Proto-Khasian",
["aav-nic-pro"] = "Proto-Nicobarese",
["aav-pkl-pro"] = "Proto-Pnar-Khasi-Lyngngam",
["aav-pro"] = "Proto-Austroasiatik",
["aaw"] = "Solong",
["aax"] = "Mandobo Atas",
["aaz"] = "Amarasi",
["ab"] = "Abkhaz",
["aba"] = "Abé",
["abb"] = "Bankon",
["abc"] = "Ayta Ambala",
["abd"] = "Agta Camarines Norte",
["abe"] = "Abenaki",
["abf"] = "Abai Sungai",
["abg"] = "Abaga",
["abh"] = "Arab Tajik",
["abi"] = "Abidji",
["abj"] = "Aka-Bea",
["abl"] = "Abung",
["abm"] = "Abanyom",
["abn"] = "Abua",
["abo"] = "Abon",
["abp"] = "Ayta Abenlen",
["abq"] = "Abaza",
["abs"] = "Melayu Ambon",
["abt"] = "Ambulas",
["abu"] = "Abure",
["abv"] = "Arab Bahrani",
["abw"] = "Pal",
["abx"] = "Inabaknon",
["aby"] = "Aneme Wake",
["abz"] = "Abui",
["aca"] = "Achagua",
["acb"] = "Áncá",
["acd"] = "Gikyode",
["ace"] = "Aceh",
["ach"] = "Acholi",
["aci"] = "Aka-Cari",
["ack"] = "Aka-Kora",
["acl"] = "Akar-Bale",
["acm"] = "Arab Iraq",
["acn"] = "Achang",
["acp"] = "Acipa Timur",
["acr"] = "Achi",
["acs"] = "Acroá",
["acu"] = "Achuar",
["acv"] = "Achumawi",
["acw"] = "Arab Hijaz",
["acx"] = "Arab Oman",
["acy"] = "Arab Cyprus",
["acz"] = "Acheron",
["ada"] = "Adangme",
["adb"] = "Atauran",
["add"] = "Dzodinka",
["ade"] = "Adele",
["adf"] = "Arab Dhofar",
["adg"] = "Andegerebinha",
["adh"] = "Adhola",
["adi"] = "Adi",
["adj"] = "Adioukrou",
["adl"] = "Galo",
["adn"] = "Adang",
["ado"] = "Abu",
["adp"] = "Adap",
["adq"] = "Adangbe",
["adr"] = "Adonara",
["ads"] = "Bahasa Isyarat Adamorobe",
["adt"] = "Adnyamathanha",
["adu"] = "Aduge",
["adw"] = "Amondawa",
["ady"] = "Circassian Barat",
["adz"] = "Adzera",
["ae"] = "Avesta",
["aea"] = "Areba",
["aeb"] = "Arab Tunisia",
["aed"] = "Bahasa Isyarat Argentina",
["aee"] = "Pashayi Timur Laut",
["aek"] = "Haeke",
["ael"] = "Ambele",
["aem"] = "Arem",
["aen"] = "Bahasa Isyarat Armenia",
["aeq"] = "Aer",
["aer"] = "Arrernte Timur",
["aes"] = "Alsea",
["aeu"] = "Akeu",
["aew"] = "Ambakich",
["aey"] = "Amele",
["aez"] = "Aeka",
["af"] = "Afrikaans",
["afa-pro"] = "Proto-Afroasiatik",
["afb"] = "Arab Teluk",
["afd"] = "Andai",
["afe"] = "Putukwam",
["afg"] = "Bahasa Isyarat Afghanistan",
["afh"] = "Afrihili",
["afi"] = "Akrukay",
["afk"] = "Nanubae",
["afn"] = "Defaka",
["afo"] = "Eloyi",
["afp"] = "Tapei",
["afs"] = "Kreol Afro-Seminole",
["aft"] = "Afitti",
["afu"] = "Awutu",
["afz"] = "Obokuitai",
["aga"] = "Aguano",
["agb"] = "Legbo",
["agc"] = "Agatu",
["agd"] = "Agarabi",
["age"] = "Angal",
["agf"] = "Arguni",
["agg"] = "Angor",
["agh"] = "Ngelima",
["agj"] = "Argobba",
["agk"] = "Agta Isarog",
["agl"] = "Fembe",
["agm"] = "Angaataha",
["agn"] = "Agutaynen",
["ago"] = "Tainae",
["agq"] = "Aghem",
["agr"] = "Aguaruna",
["ags"] = "Esimbi",
["agt"] = "Agta Cagayan Tengah",
["agu"] = "Aguacateco",
["agv"] = "Agta Remontado",
["agw"] = "Kahua",
["agx"] = "Aghul",
["agy"] = "Alta Selatan",
["agz"] = "Agta Gunung Iriga",
["aha"] = "Ahanta",
["ahb"] = "Axamb",
["ahg"] = "Qimant",
["ahh"] = "Aghu",
["ahi"] = "Tiagba",
["ahk"] = "Akha",
["ahl"] = "Igo",
["ahm"] = "Mobu",
["ahn"] = "Àhàn",
["aho"] = "Ahom",
["ahp"] = "Apro",
["ahr"] = "Ahirani",
["ahs"] = "Ashe",
["aht"] = "Ahtna",
["aia"] = "Arosi",
["aib"] = "Äynu",
["aic"] = "Ainbai",
["aid"] = "Alngith",
["aie"] = "Amara",
["aif"] = "Agi",
["aig"] = "Kreol Inggeris Antigua dan Barbuda",
["aih"] = "Ai-Cham",
["aii"] = "Neo-Aramia Assyria",
["aij"] = "Lishanid Noshan",
["aik"] = "Ake",
["ail"] = "Aimele",
["aim"] = "Aimol",
["ain"] = "Ainu",
["aio"] = "Aiton",
["aip"] = "Burumakok",
["air"] = "Airoran",
["ait"] = "Arikem",
["aiw"] = "Aari",
["aix"] = "Aighon",
["aiy"] = "Ali",
["aja"] = "Aja (Afrika Timur)",
["ajg"] = "Aja (Afrika Barat)",
["aji"] = "Ajië",
["ajn"] = "Andajin",
["ajp"] = "Arab Syam Selatan",
["ajs"] = "Bahasa Isyarat Yahudi Algeria",
["ajw"] = "Ajawa",
["ajz"] = "Karbi Amri",
["ak"] = "Akan",
["akb"] = "Batak Angkola",
["akc"] = "Mpur",
["akd"] = "Ukpet-Ehom",
["ake"] = "Akawaio",
["akf"] = "Akpa",
["akg"] = "Anakalangu",
["akh"] = "Angal Heneng",
["aki"] = "Aiome",
["akj"] = "Jeru",
["akk"] = "Akkadia",
["akl"] = "Aklanon",
["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"] = "Alabama",
["ala"] = "Alago",
["alc"] = "Kawésqar",
["ald"] = "Alladian",
["ale"] = "Aleut",
["alf"] = "Alege",
["alg-aga"] = "Agawam",
["alg-pro"] = "Proto-Algonquian",
["alh"] = "Alawa",
["ali"] = "Amaimon",
["alj"] = "Alangan",
["alk"] = "Alak",
["all"] = "Allar",
["alm"] = "Amblong",
["alo"] = "Larike-Wakasihu",
["alp"] = "Alune",
["alq"] = "Algonquin",
["alr"] = "Alutor",
["alt"] = "Altai Selatan",
["alu"] = "'Are'are",
["alv-ama"] = "Amasi",
["alv-bgu"] = "Bainouk Gubeeher",
["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"] = "Proto-Gbe",
["alv-gng-pro"] = "Proto-Guang",
["alv-gtm-pro"] = "Proto-Togo Tengah",
["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"] = "Proto-Atlantik-Congo",
["alv-von-pro"] = "Proto-Volta-Niger",
["alv-yor-pro"] = "Proto-Yoruba",
["alv-yrd-pro"] = "Proto-Yoruboid",
["alw"] = "Alaba",
["alx"] = "Amol",
["aly"] = "Alyawarr",
["alz"] = "Alur",
["am"] = "Amhara",
["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"] = "Amami Ōshima Selatan",
["amt"] = "Amto",
["amu"] = "Amuzgo Guerrero",
["amv"] = "Ambelau",
["amw"] = "Neo-Aramia Barat",
["amx"] = "Anmatyerre",
["amy"] = "Ami",
["amz"] = "Atampaya",
["an"] = "Aragon",
["ana"] = "Andaqui",
["anb"] = "Andoa",
["anc"] = "Ngas",
["and"] = "Ansus",
["ane"] = "Xârâcùù",
["anf"] = "Animere",
["ang"] = "Inggeris Kuno",
["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"] = "Alor",
["aom"] = "Ömie",
["aon"] = "Arapesh Bumbita",
["aor"] = "Aore",
["aos"] = "Taikat",
["aot"] = "Atong (India)",
["aou"] = "A'ou",
["aox"] = "Atorada",
["aoz"] = "Uab Meto",
["apa-pro"] = "Proto-Apachean",
["apb"] = "Sa'a",
["apc"] = "Arab Syam Utara",
["apd"] = "Arab Sudan",
["ape"] = "Bukiyip",
["apf"] = "Agta Pahanan",
["apg"] = "Ampanang",
["aph"] = "Athpare",
["api"] = "Apiaká",
["apj"] = "Jicarilla",
["apk"] = "Apache Dataran",
["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"] = "Apache Barat",
["apx"] = "Aputai",
["apy"] = "Apalaí",
["apz"] = "Safeyoka",
["aqc"] = "Archi",
["aqd"] = "Dogon Ampari",
["aqg"] = "Arigidi",
["aql-pro"] = "Proto-Algic",
["aqm"] = "Atohwaim",
["aqn"] = "Alta Utara",
["aqp"] = "Atakapa",
["aqr"] = "Arhâ",
["aqt"] = "Angaité",
["aqz"] = "Akuntsu",
["ar"] = "Arab",
["arc"] = "Aramia",
["ard"] = "Arabana",
["are"] = "Arrernte Barat",
["arh"] = "Arhuaco",
["ari"] = "Arikara",
["arj"] = "Arapaso",
["ark"] = "Arikapú",
["arl"] = "Arabela",
["arn"] = "Mapudungun",
["aro"] = "Araona",
["arp"] = "Arapaho",
["arq"] = "Arab Algeria",
["arr"] = "Arara-Karo",
["ars"] = "Arab Najdi",
["art-adu"] = "Adûni",
["art-bel"] = "Kreol Belter",
["art-blk"] = "Bolak",
["art-bsp"] = "Bahasa Hitam",
["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"] = "Valyrian Tinggi",
["aru"] = "Arua",
["arv"] = "Arbore",
["arw"] = "Lokono",
["arx"] = "Aruá",
["ary"] = "Arab Maghribi",
["arz"] = "Arab Mesir",
["as"] = "Assam",
["asa"] = "Pare",
["asb"] = "Assiniboine",
["asc"] = "Asmat Pesisir Casuarina",
["ase"] = "Bahasa Isyarat Amerika",
["asf"] = "Auslan",
["asg"] = "Cishingini",
["ash"] = "Abishira",
["asi"] = "Buruwai",
["asj"] = "Nsari",
["ask"] = "Ashkun",
["asl"] = "Asilulu",
["asn"] = "Asuriní Xingú",
["aso"] = "Dano",
["asp"] = "Bahasa Isyarat Algeria",
["asq"] = "Bahasa Isyarat Austria",
["asr"] = "Asuri",
["ass"] = "Ipulo",
["ast"] = "Asturia",
["asu"] = "Asurini Tocantins",
["asv"] = "Asoa",
["asw"] = "Bahasa Isyarat Orang Asli Australia",
["asx"] = "Muratayak",
["asy"] = "Asmat Yaosakor",
["asz"] = "As",
["ata"] = "Pele-Ata",
["atb"] = "Zaiwa",
["atc"] = "Atsahuaca",
["atd"] = "Manobo Ata",
["ate"] = "Atemble",
["atg"] = "Okpela",
["ath-nic"] = "Nicola",
["ath-pro"] = "Proto-Athabaskan",
["ati"] = "Attié",
["atj"] = "Atikamekw",
["atk"] = "Ati",
["atl"] = "Agta Gunung Iraya",
["atm"] = "Ata",
["ato"] = "Atong (Cameroon)",
["atp"] = "Atta Pudtol",
["atq"] = "Aralle-Tabulahan",
["atr"] = "Waimiri-Atroari",
["ats"] = "Gros Ventre",
["att"] = "Atta Pamplona",
["atu"] = "Reel",
["atv"] = "Altai Utara",
["atw"] = "Atsugewi",
["atx"] = "Arutani",
["aty"] = "Aneityum",
["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"] = "One Molmo",
["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-New South Wales Tengah",
["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"] = "Arab Uzbeki",
["av"] = "Avar",
["avb"] = "Avau",
["avd"] = "Alviri-Vidari",
["avi"] = "Avikam",
["avk"] = "Kotava",
["avm"] = "Angkamuthi",
["avn"] = "Avatime",
["avs"] = "Aushiri",
["avt"] = "Au",
["avu"] = "Avokaya",
["avv"] = "Avá-Canoeiro",
["awa"] = "Awadhi",
["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-war"] = "Warekena Kuno",
["awd-yum"] = "Yumana",
["awe"] = "Awetí",
["awg"] = "Anguthimri",
["awh"] = "Awbono",
["awi"] = "Aekyom",
["awk"] = "Awabakal",
["awm"] = "Arawum",
["awn"] = "Awngi",
["awo"] = "Awak",
["awr"] = "Awera",
["aws"] = "Awyu Selatan",
["awt"] = "Araweté",
["awu"] = "Awyu Tengah",
["awv"] = "Awyu Jair",
["aww"] = "Awun",
["awx"] = "Awara",
["awy"] = "Awyu Edera",
["axb"] = "Abipón",
["axe"] = "Ayerrerenge",
["axg"] = "Arára (Mato Grosso)",
["axk"] = "Aka (Afrika Tengah)",
["axl"] = "Aranda Selatan Bawah",
["axm"] = "Armenia Pertengahan",
["axx"] = "Xârâgurè",
["ay"] = "Aymara",
["aya"] = "Awar",
["ayb"] = "Ayizo",
["ayd"] = "Ayabadhu",
["aye"] = "Ayere",
["ayg"] = "Nyanga (Togo)",
["ayi"] = "Leyigha",
["ayk"] = "Akuku",
["ayl"] = "Arab Libya",
["ayn"] = "Arab Yaman",
["ayo"] = "Ayoreo",
["ayp"] = "Arab Mesopotamia Utara",
["ayq"] = "Ayi",
["ays"] = "Ayta Sorsogon",
["ayt"] = "Ayta Bataan",
["ayu"] = "Ayu",
["ayz"] = "Maybrat",
["az"] = "Azerbaijan",
["aza"] = "Azha",
["azc-caz"] = "Cazcan",
["azc-cup-pro"] = "Proto-Cupan",
["azc-ktn"] = "Kitanemuk",
["azc-nah-pro"] = "Proto-Nahuan",
["azc-nic"] = "Nicoleño",
["azc-num-pro"] = "Proto-Numic",
["azc-pro"] = "Proto-Uto-Aztecan",
["azc-tak-pro"] = "Proto-Takic",
["azc-tat"] = "Tataviam",
["azd"] = "Nahuatl Durango Timur",
["azg"] = "Amuzgo San Pedro Amuzgos",
["azm"] = "Amuzgo Ipalapa",
["azn"] = "Nahuatl Durango Barat",
["azo"] = "Awing",
["azt"] = "Atta Faire",
["azz"] = "Nahuatl Puebla Tanah Tinggi",
["ba"] = "Bashkir",
["baa"] = "Babatana",
["bab"] = "Bainouk-Gunyuño",
["bac"] = "Badui",
["bae"] = "Baré",
["baf"] = "Nubaca",
["bag"] = "Tuki",
["bah"] = "Kreol Bahamas",
["baj"] = "Barakai",
["bal"] = "Baluchi",
["ban"] = "Bali",
["bao"] = "Waimaha",
["bap"] = "Bantawa",
["bar"] = "Bavarian",
["bas"] = "Basaa",
["bau"] = "Badanchi",
["bav"] = "Babungo",
["baw"] = "Bambili-Bambui",
["bax"] = "Bamum",
["bay"] = "Batuley",
["bba"] = "Baatonum",
["bbb"] = "Barai",
["bbc"] = "Batak Toba",
["bbd"] = "Bau",
["bbe"] = "Bangba",
["bbf"] = "Baibai",
["bbg"] = "Barama",
["bbh"] = "Bugan",
["bbi"] = "Barombi",
["bbj"] = "Ghomala'",
["bbk"] = "Babanki",
["bbl"] = "Bats",
["bbm"] = "Babango",
["bbn"] = "Uneapa",
["bbo"] = "Konabéré",
["bbp"] = "Banda Tengah Barat",
["bbq"] = "Bamali",
["bbr"] = "Girawa",
["bbs"] = "Bakpinka",
["bbt"] = "Mburku",
["bbu"] = "Bakulung",
["bbv"] = "Karnai",
["bbw"] = "Baba",
["bbx"] = "Bubia",
["bby"] = "Befang",
["bca"] = "Bai Tengah",
["bcb"] = "Bainouk-Samik",
["bcd"] = "Babar Utara",
["bce"] = "Bamenyam",
["bcf"] = "Bamu",
["bcg"] = "Baga Pokur",
["bch"] = "Bariai",
["bci"] = "Baoule",
["bcj"] = "Bardi",
["bck"] = "Bunaba",
["bcl"] = "Bikol Tengah",
["bcm"] = "Banoni",
["bcn"] = "Bibaali",
["bco"] = "Kaluli",
["bcp"] = "Baali",
["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",
["bdk"] = "Budukh",
["bdl"] = "Bajau Indonesia",
["bdm"] = "Buduma",
["bdn"] = "Baldemu",
["bdo"] = "Morom",
["bdp"] = "Bende",
["bdq"] = "Bahnar",
["bdr"] = "Bajau Sama",
["bds"] = "Burunge",
["bdt"] = "Bokoto",
["bdu"] = "Oroko",
["bdv"] = "Bodo Parja",
["bdw"] = "Baham",
["bdx"] = "Budong-Budong",
["bdy"] = "Bandjalang",
["bdz"] = "Badeshi",
["be"] = "Belarus",
["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"] = "Proto-Berber",
["ber-zuw"] = "Zuwara",
["bes"] = "Besme",
["bet"] = "Guiberoua Bété",
["beu"] = "Blagar",
["bev"] = "Daloa Bété",
["bew"] = "Betawi",
["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"] = "Badaga",
["bfr"] = "Bazigar",
["bfs"] = "Bai Selatan",
["bft"] = "Balti",
["bfu"] = "Gahri",
["bfw"] = "Bondo",
["bfx"] = "Bantayanon",
["bfy"] = "Bagheli",
["bfz"] = "Mahasu Pahari",
["bg"] = "Bulgaria",
["bga"] = "Gwamhi-Wuri",
["bgb"] = "Bobongko",
["bgc"] = "Haryanvi",
["bgd"] = "Rathwi Bareli",
["bge"] = "Bauria",
["bgf"] = "Bangandu",
["bgg"] = "Bugun",
["bgi"] = "Giangan",
["bgj"] = "Bangolan",
["bgk"] = "Bit",
["bgl"] = "Bo",
["bgo"] = "Baga Koga",
["bgq"] = "Bagri",
["bgr"] = "Chin Bawm",
["bgs"] = "Tagabawa",
["bgt"] = "Bughotu",
["bgu"] = "Mbongno",
["bgv"] = "Warkay-Bipim",
["bgw"] = "Bhatri",
["bgx"] = "Balkan Gagauz Turkish",
["bgy"] = "Benggoi",
["bgz"] = "Banggai",
["bh"] = "Bihari",
["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"] = "Neo-Aram Bohtan",
["bho"] = "Bhojpur",
["bhp"] = "Bima",
["bhq"] = "Tukang Besi Selatan",
["bhs"] = "Buwal",
["bht"] = "Bhattiyali",
["bhu"] = "Bhunjia",
["bhv"] = "Bahau",
["bhw"] = "Biak",
["bhx"] = "Bhalay",
["bhy"] = "Bhele",
["bhz"] = "Bada",
["bi"] = "Bislama",
["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"] = "Birifor Selatan",
["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"] = "Banjar",
["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"] = "Binukid",
["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"] = "Bolongan",
["blk"] = "Karen Pa'o",
["bll"] = "Biloxi",
["blm"] = "Beli",
["bln"] = "Bicolano Catanduanes Selatan",
["blo"] = "Anii",
["blp"] = "Blablanga",
["blq"] = "Baluan-Pam",
["blr"] = "Blang",
["bls"] = "Balaesang",
["blt"] = "Tai Dam",
["blv"] = "Kibala",
["blw"] = "Balangao",
["blx"] = "Mag-Indi Ayta",
["bly"] = "Notre",
["blz"] = "Balantak",
["bm"] = "Bambara",
["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"] = "Benggali",
["bna"] = "Bonerate",
["bnb"] = "Bookan",
["bnd"] = "Banda",
["bne"] = "Bintauna",
["bnf"] = "Masiwang",
["bng"] = "Benga",
["bni"] = "Bangi",
["bnj"] = "Tawbuid Timur",
["bnk"] = "Bierebo",
["bnl"] = "Boon",
["bnm"] = "Batanga",
["bnn"] = "Bunun",
["bno"] = "Asi",
["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 (Afrika Selatan)",
["bnt-mpi"] = "Mpiin",
["bnt-mpu"] = "Mpuono",
["bnt-ngu-pro"] = "Proto-Nguni",
["bnt-phu"] = "Phuthi",
["bnt-pro"] = "Proto-Bantu",
["bnt-sab-pro"] = "Proto-Sabaki",
["bnt-sbo"] = "Boma Selatan",
["bnt-sts-pro"] = "Proto-Sotho-Tswana",
["bnu"] = "Bentong",
["bnv"] = "Beneraf",
["bnw"] = "Bisis",
["bnx"] = "Bangubangu",
["bny"] = "Vaie",
["bnz"] = "Beezen",
["bo"] = "Tibet",
["boa"] = "Bora",
["bob"] = "Aweer",
["boe"] = "Mundabli",
["bof"] = "Bolon",
["bog"] = "Bamako Sign Language",
["boh"] = "Boma Utara",
["boi"] = "Barbareño",
["boj"] = "Anjam",
["bok"] = "Bonjo",
["bol"] = "Bole",
["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"] = "Dakaka",
["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"] = "Breton",
["bra"] = "Braj",
["brb"] = "Lave",
["brc"] = "Belanda Kreol Berbice",
["brd"] = "Baraamu",
["brf"] = "Bera",
["brg"] = "Baure",
["brh"] = "Brahui",
["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"] = "Bru Timur",
["brv"] = "Bru Barat",
["brw"] = "Bellari",
["brx"] = "Bodo (India)",
["bry"] = "Burui",
["brz"] = "Bilbil",
["bsa"] = "Abinomn",
["bsb"] = "Bisaya Brunei",
["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"] = "Bisaya Sabah",
["bta"] = "Bata",
["btc"] = "Bati (Cameroon)",
["btd"] = "Batak Dairi",
["bte"] = "Gamo-Ningi",
["btf"] = "Birgit",
["btg"] = "Gagnoa Bété",
["bth"] = "Bidayuh Biatah",
["bti"] = "Burate",
["btj"] = "Melayu Bacan",
["btk-pro"] = "Proto-Batak",
["btm"] = "Batak Mandailing",
["btn"] = "Ratagnon",
["bto"] = "Bicolano Iriga",
["btp"] = "Budibud",
["btq"] = "Batek",
["btr"] = "Baetora",
["bts"] = "Batak Simalungun",
["btt"] = "Bete-Bendi",
["btu"] = "Batu",
["btv"] = "Bateri",
["btw"] = "Butuanon",
["btx"] = "Batak Karo",
["bty"] = "Bobot",
["btz"] = "Batak Alas-Kluet",
["bua"] = "Buryat",
["bub"] = "Bua",
["bud"] = "Ntcham",
["bue"] = "Beothuk",
["buf"] = "Bushoong",
["bug"] = "Bugis",
["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"] = "Melayu Berau",
["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"] = "Melayu Bukit",
["bvv"] = "Baniva",
["bvw"] = "Boga",
["bvx"] = "Babole",
["bvy"] = "Baybayanon",
["bvz"] = "Bauzi",
["bwa"] = "Bwatoo",
["bwb"] = "Namosi-Naitasiri-Serua",
["bwc"] = "Bwile",
["bwd"] = "Bwaidoka",
["bwe"] = "Karen Bwe",
["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"] = "Bobo Selatan",
["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"] = "Batak Palawan",
["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"] = "Bisu",
["bzj"] = "Kreol Belize",
["bzk"] = "Kreol Nicaragua",
["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"] = "Catalan",
["caa"] = "Ch'orti'",
["cab"] = "Garifuna",
["cac"] = "Chuj",
["cad"] = "Caddo",
["cae"] = "Laalaa",
["caf"] = "Carrier Selatan",
["cag"] = "Nivaclé",
["cah"] = "Cahuarano",
["caj"] = "Chané",
["cak"] = "Kaqchikel",
["cal"] = "Carolinian",
["cam"] = "Cemuhî",
["can"] = "Chambri",
["cao"] = "Chácobo",
["cap"] = "Chipaya",
["caq"] = "Car Nicobarese",
["car"] = "Kari'na",
["cas"] = "Tsimané",
["cau-abz-pro"] = "Proto-Abkhaz-Abaza",
["cau-and-pro"] = "Proto-Andian",
["cau-ava-pro"] = "Proto-Avaro-Andian",
["cau-cir-pro"] = "Proto-Circassian",
["cau-drg-pro"] = "Proto-Dargwa",
["cau-lzg-pro"] = "Proto-Lezghian",
["cau-nec-pro"] = "Proto-Kaukasia Timur Laut",
["cau-nkh-pro"] = "Proto-Nakh",
["cau-nwc-pro"] = "Proto-Kaukasia Barat Laut",
["cau-tsz-pro"] = "Proto-Tsezian",
["cav"] = "Cavineña",
["caw"] = "Callawalla",
["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"] = "Chavacano",
["cbl"] = "Chin Bualkhaw",
["cbn"] = "Nyah Kur",
["cbo"] = "Izora",
["cbq"] = "Shuba",
["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"] = "Melayu Cheti",
["cco"] = "Comaltepec Chinantec",
["ccp"] = "Chakma",
["ccr"] = "Cacaopera",
["ccs-gzn-pro"] = "Proto-Georgia-Zan",
["ccs-pro"] = "Proto-Kartvelia",
["cda"] = "Choni",
["cdc-cbm-pro"] = "Proto-Chadic Tengah",
["cdc-mas-pro"] = "Proto-Masa",
["cdc-pro"] = "Proto-Chadic",
["cdd-pro"] = "Proto-Caddoan",
["cde"] = "Chenchu",
["cdf"] = "Chiru",
["cdh"] = "Chambeali",
["cdi"] = "Chodri",
["cdj"] = "Churahi",
["cdm"] = "Chepang",
["cdn"] = "Chaudangsi",
["cdo"] = "Min Timur",
["cdr"] = "Cinda-Regi-Tiyal",
["cds"] = "Bahasa Isyarat Chad",
["cdy"] = "Chadong",
["cdz"] = "Koda",
["ce"] = "Chechen",
["cea"] = "Lower Chehalis",
["ceb"] = "Cebuano",
["ceg"] = "Chamacoco",
["cel-bry-pro"] = "Proto-Brythonic",
["cel-gal"] = "Gallaecian",
["cel-gau"] = "Gaul",
["cel-pro"] = "Proto-Celtic",
["cen"] = "Cen",
["cet"] = "Centúúm",
["cfa"] = "Dijim-Bwilim",
["cfd"] = "Cara",
["cfg"] = "Como Karim",
["cfm"] = "Chin Falam",
["cga"] = "Changriwa",
["cgc"] = "Kagayanen",
["cgg"] = "Rukiga",
["cgk"] = "Chocangaca",
["ch"] = "Chamorro",
["chb"] = "Chibcha",
["chc"] = "Catawba",
["chd"] = "Highland Oaxaca Chontal",
["chf"] = "Tabasco Chontal",
["chg"] = "Chagatai",
["chh"] = "Chinook",
["chi-pro"] = "Proto-Chimakuan",
["chj"] = "Ojitlán Chinantec",
["chk"] = "Chuuk",
["chl"] = "Cahuilla",
["chm-pro"] = "Proto-Mari",
["chn"] = "Chinook Jargon",
["cho"] = "Choctaw",
["chp"] = "Chipewyan",
["chq"] = "Quiotepec Chinantec",
["chr"] = "Cherokee",
["cht"] = "Cholón",
["chw"] = "Chuabo",
["chx"] = "Chantyal",
["chy"] = "Cheyenne",
["chz"] = "Ozumacín Chinantec",
["cia"] = "Cia-Cia",
["cib"] = "Ci Gbe",
["cic"] = "Chickasaw",
["cid"] = "Chimariko",
["cie"] = "Cineni",
["cih"] = "Chinali",
["cik"] = "Chitkuli Kinnauri",
["cim"] = "Cimbrian",
["cin"] = "Cinta Larga",
["cip"] = "Chiapanec",
["cir"] = "Tiri",
["ciy"] = "Chaima",
["cja"] = "Cam Barat",
["cje"] = "Chru",
["cjh"] = "Upper Chehalis",
["cji"] = "Chamalal",
["cjk"] = "Chokwe",
["cjm"] = "Cam Timur",
["cjn"] = "Chenapian",
["cjo"] = "Ashéninka Pajonal",
["cjp"] = "Cabécar",
["cjs"] = "Shor",
["cjv"] = "Chuave",
["cjy"] = "Jin",
["ckb"] = "Kurdi Tengah",
["ckh"] = "Chak",
["ckl"] = "Cibak",
["ckn"] = "Chin Kaang",
["cko"] = "Anufo",
["ckq"] = "Kajakse",
["ckr"] = "Kairak",
["cks"] = "Tayo",
["ckt"] = "Chukchi",
["cku"] = "Koasati",
["ckv"] = "Kavalan",
["ckx"] = "Caka",
["cky"] = "Cakfem-Mushere",
["ckz"] = "Cakchiquel-Quiché Mixed Language",
["cla"] = "Ron",
["clc"] = "Chilcotin",
["cld"] = "Chaldean Neo-Aramaic",
["cle"] = "Lealao Chinantec",
["clh"] = "Chilisso",
["cli"] = "Chakali",
["clj"] = "Chin Laitu",
["clk"] = "Idu",
["cll"] = "Chala",
["clm"] = "Klallam",
["clo"] = "Lowland Oaxaca Chontal",
["clt"] = "Chin Laitu",
["clu"] = "Caluyanun",
["clw"] = "Chulym",
["cly"] = "Chatino Tanah Tinggi Timur",
["cma"] = "Mạ",
["cmc-pro"] = "Proto-Chamic",
["cme"] = "Cerma",
["cmg"] = "Mongol Klasik",
["cmi"] = "Emberá-Chamí",
["cml"] = "Campalagian",
["cmm"] = "Michigamea",
["cmn"] = "Mandarin",
["cmo"] = "Mnong Tengah",
["cmr"] = "Chin Mro",
["cms"] = "Messapic",
["cmt"] = "Camtho",
["cna"] = "Changthang",
["cnb"] = "Chin Chinbon",
["cnc"] = "Cốông",
["cng"] = "Qiang Utara",
["cnh"] = "Lai",
["cni"] = "Asháninka",
["cnk"] = "Chin Khumi",
["cnl"] = "Lalana Chinantec",
["cno"] = "Con",
["cnp"] = "Pinghua Utara",
["cns"] = "Asmat Tengah",
["cnt"] = "Tepetotutla Chinantec",
["cnu"] = "Chenoua",
["cnw"] = "Chin Ngawn",
["cnx"] = "Cornwall Pertengahan",
["co"] = "Corsica",
["coa"] = "Melayu Cocos",
["cob"] = "Chicomuceltec",
["coc"] = "Cocopa",
["cod"] = "Cocama",
["coe"] = "Koreguaje",
["cof"] = "Tsafiki",
["cog"] = "Chong",
["coh"] = "Chichonyi-Chidzihana-Chikauma",
["coj"] = "Cochimi",
["cok"] = "Santa Teresa Cora",
["col"] = "Columbia-Wenatchi",
["com"] = "Comanche",
["con"] = "Cofán",
["coo"] = "Comox",
["cop"] = "Qibti",
["coq"] = "Coquille",
["cot"] = "Caquinte",
["cou"] = "Wamey",
["cov"] = "Cao Miao",
["cow"] = "Cowlitz",
["cox"] = "Nanti",
["coy"] = "Coyaima",
["coz"] = "Chochotec",
["cpa"] = "Palantla Chinantec",
["cpb"] = "Ucayali-Yurúa Ashéninka",
["cpc"] = "Ajyíninka Apurucayali",
["cpg"] = "Yunani Cappadocia",
["cpi"] = "Inggeris Pijin Cina",
["cpn"] = "Cherepon",
["cpo"] = "Kpee",
["cps"] = "Capiznon",
["cpu"] = "Pichis Ashéninka",
["cpx"] = "Min Puxian",
["cpy"] = "Ashéninka Ucayali Selatan",
["cqd"] = "Chuanqiandian Cluster Miao",
["cr"] = "Cree",
["cra"] = "Chara",
["crb"] = "Kalinago",
["crc"] = "Lonwolwol",
["crd"] = "Coeur d'Alene",
["crf"] = "Caramanta",
["crg"] = "Michif",
["crh"] = "Tatar Crimea",
["cri"] = "Sãotomense",
["crj"] = "Cree Timur Selatan",
["crk"] = "Plains Cree",
["crl"] = "Cree Timur Utara",
["crm"] = "Cree Moose",
["crn"] = "Cora",
["cro"] = "Crow",
["crp-bip"] = "Pidgin Basque-Iceland",
["crp-cpr"] = "Pidgin Rusia-China",
["crp-gep"] = "Pidgin Greenland Barat",
["crp-kia"] = "Pidgin Jerman Kiautschou",
["crp-mar"] = "Bahasa Roh Maroon",
["crp-mpp"] = "Pidgin Portugis Macau",
["crp-rsn"] = "Russenorsk",
["crp-slb"] = "Solombala English",
["crp-spp"] = "Pidgin Ladang Samoa",
["crp-tpr"] = "Pidgin Rusia Taimyr",
["crq"] = "Iyo'wujwa Chorote",
["crr"] = "Algonquin Carolina",
["crs"] = "Kreol Seychelles",
["crt"] = "Iyojwa'ja Chorote",
["crv"] = "Chaura",
["crw"] = "Chrau",
["crx"] = "Carrier",
["cry"] = "Cori",
["crz"] = "Cruzeño",
["cs"] = "Czech",
["csa"] = "Chiltepec Chinantec",
["csb"] = "Kashubian",
["csc"] = "Catalan Sign Language",
["csd"] = "Chiangmai Sign Language",
["cse"] = "Czech Sign Language",
["csf"] = "Cuban Sign Language",
["csg"] = "Chilean Sign Language",
["csh"] = "Chin Asho",
["csi"] = "Miwok Pesisir",
["csj"] = "Chin Songlai",
["csk"] = "Jola-Kasa",
["csl"] = "Chinese Sign Language",
["csm"] = "Miwok Sierra Tengah",
["csn"] = "Colombian Sign Language",
["cso"] = "Sochiapam Chinantec",
["csp"] = "Pinghua Selatan",
["csq"] = "Bahasa Isyarat Croatia",
["csr"] = "Costa Rican Sign Language",
["css"] = "Ohlone Selatan",
["cst"] = "Ohlone Utara",
["csu-bba-pro"] = "Proto-Bongo-Bagirmi",
["csu-maa-pro"] = "Proto-Mangbetu",
["csu-pro"] = "Proto-Sudan Tengah",
["csu-sar-pro"] = "Proto-Sara",
["csv"] = "Chin Sumtu",
["csw"] = "Swampy Cree",
["csy"] = "Chin Siyin",
["csz"] = "Coos",
["cta"] = "Tataltepec Chatino",
["ctc"] = "Chetco-Tolowa",
["ctd"] = "Chin Tedim",
["cte"] = "Tepinapa Chinantec",
["ctg"] = "Chittagong",
["cth"] = "Chin Thaiphum",
["ctl"] = "Tlacoatzintepec Chinantec",
["ctm"] = "Chitimacha",
["ctn"] = "Chhintange",
["cto"] = "Emberá-Catío",
["ctp"] = "Chatino Tanah Tinggi Barat",
["cts"] = "Bicolano Catanduanes Utara",
["ctt"] = "Wayanad Chetti",
["ctu"] = "Chol",
["ctz"] = "Zacatepec Chatino",
["cu"] = "Slavonic Gereja Kuno",
["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"] = "Cun",
["cur"] = "Chhulung",
["cus-ash"] = "Ashraaf",
["cus-hec-pro"] = "Proto-Cushitic Timur Tanah Tinggi",
["cus-pro"] = "Proto-Cushitic",
["cus-som-pro"] = "Proto-Somaloid",
["cus-sou-pro"] = "Proto-Cushitic Selatan",
["cut"] = "Teutila Cuicatec",
["cuu"] = "Tai Ya",
["cuv"] = "Cuvok",
["cuw"] = "Chukwa",
["cux"] = "Tepeuxila Cuicatec",
["cuy"] = "Cuitlatec",
["cv"] = "Chuvash",
["cvg"] = "Chug",
["cvn"] = "Valle Nacional Chinantec",
["cwa"] = "Kabwa",
["cwb"] = "Maindo",
["cwd"] = "Woods Cree",
["cwe"] = "Kwere",
["cwg"] = "Chewong",
["cwt"] = "Kuwaataay",
["cy"] = "Wales",
["cya"] = "Nopala Chatino",
["cyb"] = "Cayubaba",
["cyo"] = "Cuyunon",
["czh"] = "Huizhou",
["czk"] = "Knaanic",
["czn"] = "Zenzontepec Chatino",
["czo"] = "Min Tengah",
["czt"] = "Chin Zotung",
["da"] = "Denmark",
["daa"] = "Dangaléat",
["dac"] = "Dambi",
["dad"] = "Marik",
["dae"] = "Duupa",
["dag"] = "Dagbani",
["dah"] = "Gwahatike",
["dai"] = "Day",
["daj"] = "Dar Fur Daju",
["dak"] = "Dakota",
["dal"] = "Dahalo",
["dam"] = "Damakawa",
["dao"] = "Chin Daai",
["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"] = "Idahan",
["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"] = "Negerhollands",
["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"] = "Jerman",
["dec"] = "Dagik",
["ded"] = "Dedua",
["dee"] = "Dewoin",
["def"] = "Dezfuli",
["deg"] = "Degema",
["deh"] = "Dehwari",
["dei"] = "Demisa",
["dek"] = "Dek",
["dem"] = "Dem",
["dep"] = "Pidgin Delaware",
["der"] = "Deori",
["des"] = "Desano",
["dev"] = "Domung",
["dez"] = "Dengese",
["dga"] = "Dagaare Selatan",
["dgb"] = "Bunoge",
["dgc"] = "Agta Casiguran Dumagat",
["dgd"] = "Dagaari Dioula",
["dge"] = "Degenan",
["dgg"] = "Doga",
["dgh"] = "Dghwede",
["dgi"] = "Dagara Utara",
["dgk"] = "Dagba",
["dgn"] = "Dagoman",
["dgo"] = "Hindi Dogri",
["dgr"] = "Dogrib",
["dgs"] = "Dogoso",
["dgt"] = "Ntra'ngith",
["dgw"] = "Daungwurrung",
["dgx"] = "Doghoro",
["dgz"] = "Daga",
["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"] = "Dinka Tengah Selatan",
["dic"] = "Lakota Dida",
["did"] = "Didinga",
["dif"] = "Dieri",
["dig"] = "Digo",
["dii"] = "Dimbong",
["dij"] = "Dai",
["dik"] = "Dinka Barat Daya",
["dil"] = "Dilling",
["dim"] = "Dime",
["din"] = "Dinka",
["dio"] = "Dibo",
["dip"] = "Dinka Timur Laut",
["dir"] = "Dirim",
["dis"] = "Dimasa",
["diu"] = "Gciriku",
["diw"] = "Dinka Barat Laut",
["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"] = "Dinka Tenggara",
["dkx"] = "Mazagway",
["dlg"] = "Dolgan",
["dlk"] = "Dahalik",
["dlm"] = "Dalmatian",
["dln"] = "Darlong",
["dma"] = "Duma",
["dmb"] = "Mombo Dogon",
["dmc"] = "Gavak",
["dmd"] = "Madhi Madhi",
["dme"] = "Dugwor",
["dmf"] = "Medefaidrin",
["dmg"] = "Sungai",
["dmk"] = "Domaaki",
["dml"] = "Dameli",
["dmm"] = "Dama (Nigeria)",
["dmn-dam"] = "Dama (Sierra Leone)",
["dmn-mdw-pro"] = "Proto-Mande Barat",
["dmn-pro"] = "Proto-Mande",
["dmo"] = "Kemezung",
["dmr"] = "Damar Timur",
["dms"] = "Dampelas",
["dmu"] = "Dubu",
["dmv"] = "Dumpas",
["dmw"] = "Mudburra",
["dmx"] = "Dema",
["dmy"] = "Demta",
["dna"] = "Upper Grand Valley Dani",
["dnd"] = "Daonda",
["dne"] = "Ndendeule",
["dng"] = "Dungan",
["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"] = "Dani Barat",
["dny"] = "Dení",
["doa"] = "Dom",
["dob"] = "Dobu",
["doc"] = "Kam Utara",
["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"] = "Proto-Dravidia Tengah",
["dra-mkn"] = "Kannada Pertengahan",
["dra-nor-pro"] = "Proto-Dravidia Utara",
["dra-okn"] = "Kannada Kuno",
["dra-ote"] = "Telugu Kuno",
["dra-pro"] = "Proto-Dravidia",
["dra-sdo-pro"] = "Proto-Dravidia Selatan I",
["dra-sdt-pro"] = "Proto-Dravidia Selatan II",
["dra-sou-pro"] = "Proto-Dravidia Selatan",
["drb"] = "Dair",
["drc"] = "Minderico",
["drd"] = "Darmiya",
["drg"] = "Rungus",
["dri"] = "Lela",
["drl"] = "Baagandji",
["drn"] = "Damar Barat",
["dro"] = "Melanau Daro-Matu",
["drq"] = "Dura",
["drs"] = "Gedeo",
["dru"] = "Rukai",
["dru-pro"] = "Proto-Rukai",
["dry"] = "Darai",
["dsb"] = "Lower Sorbian",
["dse"] = "Dutch Sign Language",
["dsh"] = "Daasanach",
["dsi"] = "Disa",
["dsl"] = "Danish Sign Language",
["dsn"] = "Dusner",
["dso"] = "Desiya",
["dsq"] = "Tadaksahak",
["dta"] = "Daur",
["dtb"] = "Kadazan Labuk-Kinabatangan",
["dtd"] = "Ditidaht",
["dth"] = "Adithinngithigh",
["dti"] = "Ana Tinga Dogon",
["dtk"] = "Tene Kan Dogon",
["dtm"] = "Tomo Kan Dogon",
["dto"] = "Tommo So",
["dtp"] = "Kadazandusun",
["dtr"] = "Lotud",
["dts"] = "Toro So Dogon",
["dtt"] = "Toro Tegu Dogon",
["dtu"] = "Tebul Ure Dogon",
["dty"] = "Doteli",
["dua"] = "Duala",
["dub"] = "Dubli",
["duc"] = "Duna",
["due"] = "Agta Umiray Dumaget",
["duf"] = "Dumbea",
["dug"] = "Chiduruma",
["duh"] = "Dungra Bhil",
["dui"] = "Dumun",
["duk"] = "Uyajitaya",
["dul"] = "Agta Pulau Alabat",
["dum"] = "Belanda Pertengahan",
["dun"] = "Dusun Deyah",
["duo"] = "Agta Dupaningan",
["dup"] = "Duano",
["duq"] = "Dusun Malang",
["dur"] = "Dii",
["dus"] = "Dumi",
["duu"] = "Drung",
["duv"] = "Duvle",
["duw"] = "Dusun Witu",
["dux"] = "Duun",
["duy"] = "Agta Dicamay",
["duz"] = "Duli",
["dv"] = "Dhivehi",
["dva"] = "Duau",
["dwa"] = "Diri",
["dwr"] = "Dawro",
["dwu"] = "Dhuwal",
["dww"] = "Dawawa",
["dwy"] = "Dhuwaya",
["dwz"] = "Dewas Rai",
["dya"] = "Dyan",
["dyb"] = "Dyaberdyaber",
["dyd"] = "Dyugun",
["dyg"] = "Agta Villa Viciosa",
["dyi"] = "Djimini",
["dym"] = "Yanda Dogon",
["dyn"] = "Dyangadi",
["dyo"] = "Jola-Fonyi",
["dyu"] = "Dyula",
["dyy"] = "Dyaabugay",
["dz"] = "Dzongkha",
["dza"] = "Tunzu",
["dzg"] = "Dazaga",
["dzl"] = "Dzala",
["dzn"] = "Dzando",
["ebg"] = "Ebughu",
["ebk"] = "Bontoc Timur",
["ebr"] = "Ebrié",
["ebu"] = "Embu",
["ecr"] = "Eteocretan",
["ecs"] = "Bahasa Isyarat Ecuador",
["ecy"] = "Eteocypriot",
["ee"] = "Ewe",
["eee"] = "E",
["efa"] = "Efai",
["efe"] = "Efe",
["efi"] = "Efik",
["ega"] = "Ega",
["egl"] = "Emilian",
["ego"] = "Eggon",
["egx-dem"] = "Mesir Demotik",
["egy"] = "Mesir Purba",
["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"] = "Kayah Timur",
["el"] = "Greek",
["ele"] = "Elepi",
["elh"] = "El Hugeirat",
["eli"] = "Nding",
["elk"] = "Elkei",
["elm"] = "Eleme",
["elo"] = "El Molo",
["elu"] = "Elu",
["elx"] = "Elam",
["ema"] = "Emai",
["emb"] = "Embaloh",
["eme"] = "Emerillon",
["emg"] = "Meohang Timur",
["emi"] = "Mussau-Emira",
["emk"] = "Maninkakan Timur",
["emm"] = "Mamulique",
["emn"] = "Eman",
["emp"] = "Emberá Utara",
["ems"] = "Alutiiq",
["emu"] = "Muria Timur",
["emw"] = "Emplawas",
["emx"] = "Erromintxela",
["emy"] = "Maya Epigrafi",
["en"] = "Inggeris",
["ena"] = "Apali",
["enb"] = "Markweeta",
["enc"] = "En",
["end"] = "Ende",
["enf"] = "Enets Hutan",
["enh"] = "Enets Tundra",
["enl"] = "Enlhet",
["enm"] = "Inggeris Pertengahan",
["enn"] = "Engenni",
["eno"] = "Enggano",
["enq"] = "Enga",
["enr"] = "Emem",
["enu"] = "Enu",
["env"] = "Enwan",
["enw"] = "Enwang",
["enx"] = "Enxet",
["eo"] = "Esperanto",
["eot"] = "Eotile",
["epi"] = "Epie",
["era"] = "Eravallan",
["erg"] = "Sie",
["erh"] = "Eruwa",
["eri"] = "Ogea",
["erk"] = "Efate Selatan",
["ero-gsz"] = "Geshiza",
["ero-nya"] = "Nyagrong Minyag",
["ero-tau"] = "Stau",
["err"] = "Erre",
["ers"] = "Ersu",
["ert"] = "Eritai",
["erw"] = "Erokwanas",
["es"] = "Sepanyol",
["ese"] = "Ese Ejja",
["esh"] = "Eshtehardi",
["esl"] = "Bahasa Isyarat Mesir",
["esm"] = "Esuma",
["esn"] = "Bahasa Isyarat El Salvador",
["eso"] = "Bahasa Isyarat Estonia",
["esq"] = "Esselen",
["ess"] = "Yupik Siberia Tengah",
["esu"] = "Yup'ik",
["esx-esk-pro"] = "Proto-Eskimo",
["esx-ink"] = "Inuktun",
["esx-inq"] = "Inuinnaqtun",
["esx-inu-pro"] = "Proto-Inuit",
["esx-pro"] = "Proto-Eskimo-Aleut",
["esx-tut"] = "Tunumiisut",
["esy"] = "Eskayan",
["et"] = "Estonia",
["etb"] = "Etebi",
["etc"] = "Etchemin",
["eth"] = "Bahasa Isyarat Habsyah",
["etn"] = "Eton (Vanuatu)",
["eto"] = "Eton (Cameroon)",
["etr"] = "Edolo",
["ets"] = "Yekhee",
["ett"] = "Etruria",
["etu"] = "Ejagham",
["etx"] = "Eten",
["etz"] = "Semimi",
["eu"] = "Basque",
["euq-pro"] = "Proto-Basque",
["eve"] = "Even",
["evh"] = "Uvbie",
["evn"] = "Evenki",
["ewo"] = "Ewondo",
["ext"] = "Extremaduran",
["eya"] = "Eyak",
["eyo"] = "Keiyo",
["eza"] = "Ezaa",
["eze"] = "Uzekwe",
["fa"] = "Parsi",
["faa"] = "Fasu",
["fab"] = "Annobon",
["fad"] = "Wagi",
["faf"] = "Fagani",
["fag"] = "Finongan",
["fah"] = "Fali Baissa",
["fai"] = "Faiwol",
["faj"] = "Kursav",
["fak"] = "Fang (Beboid)",
["fal"] = "Fali Selatan",
["fam"] = "Fam",
["fan"] = "Fang (Bantu)",
["fap"] = "Palor",
["far"] = "Fataleka",
["fau"] = "Fayu",
["fax"] = "Fala",
["fay"] = "Fars Barat Daya",
["faz"] = "Fars Barat Laut",
["fbl"] = "Bikol Miraya Barat",
["fcs"] = "Bahasa Isyarat Quebec",
["fer"] = "Feroge",
["ff"] = "Fula",
["ffi"] = "Foia Foia",
["fgr"] = "Fongoro",
["fi"] = "Finland",
["fia"] = "Nobiin",
["fie"] = "Fyer",
["fif"] = "Faifi",
["fip"] = "Fipa",
["fir"] = "Firan",
["fit"] = "Meänkieli",
["fiw"] = "Fiwaga",
["fj"] = "Fiji",
["fkk"] = "Kirya-Konzel",
["fkv"] = "Kven",
["fla"] = "Salish Montana",
["flh"] = "Foau",
["fli"] = "Fali",
["fll"] = "Fali Utara",
["fln"] = "Pulau Flinders",
["flr"] = "Fuliiru",
["fly"] = "Tsotsitaal",
["fmp"] = "Fe'fe'",
["fmu"] = "Muria Barat Jauh",
["fng"] = "Fanagalo",
["fni"] = "Fania",
["fo"] = "Faroe",
["fod"] = "Foodo",
["foi"] = "Foi",
["fom"] = "Foma",
["fon"] = "Fon",
["for"] = "Fore",
["fos"] = "Siraya",
["fpe"] = "Pichinglis",
["fqs"] = "Fas",
["fr"] = "Perancis",
["frd"] = "Fordata",
["frm"] = "Perancis Pertengahan",
["fro"] = "Perancis Kuno",
["frp"] = "Franco-Provençal",
["frq"] = "Forak",
["frr"] = "Frisia Utara",
["frt"] = "Fortsenal",
["fse"] = "Bahasa Isyarat Finland",
["fsl"] = "Bahasa Isyarat Perancis",
["fss"] = "Bahasa Isyarat Finland-Sweden",
["fud"] = "Futuna Timur",
["fuj"] = "Ko",
["fum"] = "Fum",
["fun"] = "Fulniô",
["fur"] = "Friulian",
["fut"] = "Futuna-Aniwa",
["fuu"] = "Furu",
["fuy"] = "Fuyug",
["fvr"] = "Fur",
["fwa"] = "Fwâi",
["fwe"] = "Fwe",
["fy"] = "Frisia Barat",
["ga"] = "Ireland",
["gba-pro"] = "Proto-Gbaya",
["gd"] = "Gaelik Scotland",
["gem-pro"] = "Proto-Germanik",
["gl"] = "Galicia",
["gme-bur"] = "Burgundia",
["gme-cgo"] = "Goth Crimea",
["gmq-gut"] = "Gutnish",
["gmq-jmk"] = "Jamtish",
["gmq-mno"] = "Norway Pertengahan",
["gmq-oda"] = "Denmark Kuno",
["gmq-ogt"] = "Gutnish Kuno",
["gmq-osw"] = "Sweden Kuno",
["gmq-pro"] = "Proto-Norse",
["gmq-scy"] = "Scanian",
["gmw-bgh"] = "Bergish",
["gmw-cfr"] = "Franconia Tengah",
["gmw-ecg"] = "Jerman Tengah Timur",
["gmw-fin"] = "Fingallian",
["gmw-gts"] = "Gottscheerish",
["gmw-jdt"] = "Belanda Jersey",
["gmw-msc"] = "Scots Pertengahan",
["gmw-pro"] = "Proto-Germanik Barat",
["gmw-rfr"] = "Franconia Rhine",
["gmw-stm"] = "Schwaben Szatmár",
["gmw-tsx"] = "Saxon Transylvania",
["gmw-vog"] = "Jerman Volga",
["gmw-zps"] = "Jerman Zipser",
["gn-cls"] = "Guarani Klasik",
["grk-cal"] = "Greek Calabria",
["grk-ita"] = "Greek Italiot",
["grk-mar"] = "Greek Mariupol",
["grk-pro"] = "Proto-Hellenik",
["gu"] = "Gujerat",
["gv"] = "Manx",
["gvf"] = "Golin",
["gvj"] = "Guajá",
["gvl"] = "Gulay",
["gvm"] = "Gurmana",
["gvn"] = "Kuku-Yalanji",
["gvo"] = "Gavião do Jiparaná",
["gvp"] = "Gavião Pará",
["gvr"] = "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è Selatan",
["gya"] = "Gbaya Barat Laut",
["gyb"] = "Garus",
["gyd"] = "Kayardild",
["gye"] = "Gyem",
["gyf"] = "Gungabula",
["gyg"] = "Gbayi",
["gyi"] = "Gyele",
["gyl"] = "Gayil",
["gym"] = "Ngäbere",
["gyn"] = "Kreol Inggeris Guyana",
["gyo"] = "Gyalsumdo",
["gyr"] = "Guarayu",
["gyy"] = "Gunya",
["gza"] = "Ganza",
["gzn"] = "Gane",
["ha"] = "Hausa",
["haa"] = "Hän",
["hab"] = "Bahasa Isyarat Hanoi",
["hac"] = "Gurani",
["had"] = "Hatam",
["haf"] = "Bahasa Isyarat Haiphong",
["hag"] = "Hanga",
["hah"] = "Hahon",
["hai"] = "Haida",
["haj"] = "Hajong",
["hak"] = "Hakka",
["hal"] = "Halang",
["ham"] = "Hewa",
["hao"] = "Hakö",
["hap"] = "Hupla",
["har"] = "Harari",
["has"] = "Haisla",
["hav"] = "Havu",
["haw"] = "Hawaii",
["hax"] = "Haida Selatan",
["hay"] = "Haya",
["hba"] = "Hamba",
["hbb"] = "Huba",
["hbn"] = "Heiban",
["hbu"] = "Habu",
["hca"] = "Hindi Kreol Andaman",
["hch"] = "Huichol",
["hdn"] = "Haida Utara",
["hds"] = "Bahasa Isyarat Honduras",
["hdy"] = "Hadiyya",
["he"] = "Ibrani",
["hea"] = "Miao Qiandong Utara",
["hed"] = "Herdé",
["heg"] = "Helong",
["heh"] = "Hehe",
["hei"] = "Heiltsuk",
["hem"] = "Hemba",
["hgm"] = "Haiǁom",
["hgw"] = "Haigwai",
["hhi"] = "Hoia Hoia",
["hhr"] = "Kerak",
["hhy"] = "Hoyahoya",
["hi"] = "Hindi",
["hia"] = "Lamang",
["hib"] = "Hibito",
["hid"] = "Hidatsa",
["hif"] = "Hindi Fiji",
["hig"] = "Kamwe",
["hih"] = "Pamosu",
["hii"] = "Hinduri",
["hij"] = "Hijuk",
["hik"] = "Seit-Kaitetu",
["hil"] = "Hiligaynon",
["hio"] = "Tshwa",
["hir"] = "Himarimã",
["hit"] = "Het",
["hiw"] = "Hiw",
["hix"] = "Hixkaryana",
["hji"] = "Haji",
["hka"] = "Kahe",
["hke"] = "Hunde",
["hkh"] = "Pogali",
["hkk"] = "Hunjara-Kaina Ke",
["hkn"] = "Mel-Khaonh",
["hks"] = "Bahasa Isyarat Hong Kong",
["hla"] = "Halia",
["hlb"] = "Halbi",
["hld"] = "Halang Doan",
["hle"] = "Hlersu",
["hlt"] = "Nga La",
["hma"] = "Hmong Mashan Selatan",
["hmb"] = "Humburi Senni",
["hmc"] = "Hmong Huishui Tengah",
["hmd"] = "A-Hmao",
["hme"] = "Hmong Huishui Timur",
["hmf"] = "Hmong Don",
["hmg"] = "Hmong Guiyang Barat Daya",
["hmh"] = "Hmong Huishui Barat Daya",
["hmi"] = "Hmong Huishui Utara",
["hmj"] = "Ge",
["hmk"] = "Maek",
["hml"] = "Hmong Luopohe",
["hmm"] = "Hmong Mashan Tengah",
["hmn-pro"] = "Proto-Hmongik",
["hmp"] = "Hmong Mashan Utara",
["hmq"] = "Miao Qiandong Timur",
["hmr"] = "Hmar",
["hms"] = "Miao Qiandong Selatan",
["hmt"] = "Hamtai",
["hmu"] = "Hamap",
["hmv"] = "Hmong Dô",
["hmw"] = "Hmong Mashan Barat",
["hmx-mie-pro"] = "Proto-Mienik",
["hmx-pro"] = "Proto-Hmong-Mien",
["hmy"] = "Hmong Guiyang Selatan",
["hmz"] = "Hmong Shua",
["hna"] = "Mina",
["hnd"] = "Hindko Selatan",
["hne"] = "Chhattisgarhi",
["hnh"] = "ǁAni",
["hni"] = "Hani",
["hnj"] = "Hmong Hijau",
["hnn"] = "Hanunoo",
["hno"] = "Hindko Utara",
["hns"] = "Hindustan Caribbean",
["hnu"] = "Hung",
["ho"] = "Hiri Motu",
["hoa"] = "Hoava",
["hob"] = "Mari Austronesia",
["hoc"] = "Ho",
["hod"] = "Holma",
["hoe"] = "Horom",
["hoh"] = "Hobyót",
["hoi"] = "Holikachuk",
["hoj"] = "Hadothi",
["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"] = "Hunsrik",
["hrz"] = "Harzani",
["hsb"] = "Sorbia Atas",
["hsh"] = "Bahasa Isyarat Hungary",
["hsl"] = "Bahasa Isyarat Hausa",
["hsn"] = "Xiang",
["hss"] = "Harsusi",
["ht"] = "Kreol Haiti",
["hti"] = "Hoti",
["hto"] = "Minica Huitoto",
["hts"] = "Hadza",
["htu"] = "Hitu",
["hu"] = "Hungary",
["hub"] = "Huambisa",
["huc"] = "ǂHoan",
["hud"] = "Huaulu",
["huf"] = "Humene",
["hug"] = "Huachipaeri",
["huh"] = "Huilliche",
["hui"] = "Huli",
["huj"] = "Hmong Guiyang Utara",
["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"] = "Kreol Hawaii",
["hwo"] = "Hwana",
["hy"] = "Armenia",
["hya"] = "Hya",
["hyx-pro"] = "Proto-Armenia",
["hz"] = "Herero",
["ia"] = "Interlingua",
["iai"] = "Iaai",
["ian"] = "Iatmul",
["iar"] = "Purari",
["iba"] = "Iban",
["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"] = "Bahasa Isyarat Iceland",
["icr"] = "Inggeris Kreol Islander",
["id"] = "Indonesia",
["ida"] = "Idakho-Isukha-Tiriki",
["idb"] = "Indo-Portugis",
["idc"] = "Idon",
["idd"] = "Ede Idaca",
["ide"] = "Idere",
["idi"] = "Idi",
["idr"] = "Indri",
["ids"] = "Idesa",
["idt"] = "Idaté",
["idu"] = "Idoma",
["ie"] = "Interlingue",
["ifa"] = "Amganad Ifugao",
["ifb"] = "Batad Ifugao",
["ife"] = "Ifè",
["iff"] = "Ifo",
["ifk"] = "Tuwali Ifugao",
["ifm"] = "Teke-Fuumu",
["ifu"] = "Mayoyao Ifugao",
["ify"] = "Keley-I Kallahan",
["ig"] = "Igbo",
["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"] = "Nuosu",
["iir-nur-pro"] = "Proto-Nuristani",
["iir-pro"] = "Proto-Indo-Iran",
["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"] = "Bahasa Isyarat Inuit",
["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"] = "Iranun",
["ilo"] = "Ilocano",
["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"] = "Prakrit Ashoka",
["inc-dng-pro"] = "Proto-Dangari",
["inc-kam"] = "Prakrit Kamarupi",
["inc-kho"] = "Kholosi",
["inc-khr"] = "Khortha",
["inc-krd-pro"] = "Proto-Kamta",
["inc-mas"] = "Assam Pertengahan",
["inc-mbn"] = "Bengal Pertengahan",
["inc-mgu"] = "Gujarati Pertengahan",
["inc-mor"] = "Odia Pertengahan",
["inc-oas"] = "Assam Awal",
["inc-oaw"] = "Awadhi Kuno",
["inc-obn"] = "Bengal Kuno",
["inc-ogu"] = "Gujarati Kuno",
["inc-ohi"] = "Hindi Kuno",
["inc-oor"] = "Odia Kuno",
["inc-opa"] = "Punjabi Kuno",
["inc-pro"] = "Proto-Indo-Arya",
["inc-sar"] = "Sarazi",
["ine-ana-pro"] = "Proto-Anatolia",
["ine-bsl-pro"] = "Proto-Balto-Slav",
["ine-kal"] = "Kalašma",
["ine-pae"] = "Paeonia",
["ine-pro"] = "Proto-Indo-Eropah",
["ine-toc-pro"] = "Proto-Tocharia",
["ing"] = "Deg Xinag",
["inh"] = "Ingush",
["inj"] = "Jungle Inga",
["inl"] = "Bahasa Isyarat Indonesia",
["inm"] = "Minaean",
["inn"] = "Isinai",
["ino"] = "Inoke-Yate",
["inp"] = "Iñapari",
["ins"] = "Bahasa Isyarat India",
["int"] = "Intha",
["inz"] = "Ineseño",
["io"] = "Ido",
["ior"] = "Inor",
["iou"] = "Tuma-Irumu",
["iow"] = "Chiwere",
["ipi"] = "Ipili",
["ipo"] = "Ipiko",
["iqu"] = "Iquito",
["iqw"] = "Ikwo",
["ira-kms-pro"] = "Proto-Komisenia",
["ira-mny-pro"] = "Proto-Munji-Yidgha",
["ira-mpr-pro"] = "Proto-Medo-Parthia",
["ira-pat-pro"] = "Proto-Pathan",
["ira-pro"] = "Proto-Iran",
["ira-sgc-pro"] = "Proto-Sogdia",
["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-Iroquois Utara",
["iro-pro"] = "Proto-Iroquois",
["irr"] = "Ir",
["iru"] = "Irula",
["irx"] = "Kamberau",
["iry"] = "Iraya",
["is"] = "Iceland",
["isa"] = "Isabi",
["isc"] = "Isconahua",
["isd"] = "Isnag",
["ise"] = "Bahasa Isyarat Itali",
["isg"] = "Bahasa Isyarat Ireland",
["ish"] = "Esan",
["isi"] = "Nkem-Nkum",
["isk"] = "Ishkashimi",
["ism"] = "Masimasi",
["isn"] = "Isanzu",
["iso"] = "Isoko",
["isr"] = "Bahasa Isyarat Israel",
["ist"] = "Istriot",
["isu"] = "Isu",
["isv"] = "Interslavic",
["it"] = "Itali",
["itb"] = "Binongan Itneg",
["itc-pro"] = "Proto-Italik",
["itc-psa"] = "Pra-Samnit",
["itd"] = "Tidung Selatan",
["ite"] = "Itene",
["iti"] = "Inlaod Itneg",
["itk"] = "Judeo-Itali",
["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"] = "Itzá",
["iu"] = "Inuktitut",
["ium"] = "Iu Mien",
["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"] = "Ingria",
["izi"] = "Izi-Ezaa-Ikwo-Mgbo",
["izr"] = "Izere",
["izz"] = "Izi",
["ja"] = "Jepun",
["jaa"] = "Jamamadí",
["jab"] = "Hyam",
["jac"] = "Jakaltek",
["jad"] = "Jahanka",
["jae"] = "Jabem",
["jaf"] = "Jara",
["jah"] = "Jah Hut",
["jaj"] = "Zazao",
["jak"] = "Jakun",
["jal"] = "Yalahatan",
["jam"] = "Kreol Jamaica",
["jan"] = "Janday",
["jao"] = "Yanyuwa",
["jaq"] = "Yaqay",
["jas"] = "New Caledonian Javanese",
["jat"] = "Jakati",
["jau"] = "Yaur",
["jax"] = "Melayu Jambi",
["jay"] = "Yan-nhangu",
["jaz"] = "Jawe",
["jbj"] = "Arandai",
["jbk"] = "Barikewa",
["jbn"] = "Nefusa",
["jbo"] = "Lojban",
["jbr"] = "Jofotek-Bromnya",
["jbt"] = "Jabutí",
["jbu"] = "Jukun Takum",
["jbw"] = "Yawijibaya",
["jcs"] = "Bahasa Isyarat Negara Jamaica",
["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"] = "Bahasa Isyarat Jhankot",
["jia"] = "Jina",
["jib"] = "Jibu",
["jic"] = "Tol",
["jid"] = "Bu",
["jie"] = "Jilbe",
["jig"] = "Jingulu",
["jih"] = "Shangzhai",
["jii"] = "Jiiddu",
["jil"] = "Jilim",
["jim"] = "Jimjimen",
["jio"] = "Jiamao",
["jiq"] = "Khroskyabs",
["jit"] = "Jita",
["jiu"] = "Youle Jino",
["jiv"] = "Shuar",
["jiy"] = "Buyuan Jino",
["jje"] = "Jeju",
["jjr"] = "Zhár",
["jka"] = "Kaera",
["jko"] = "Kubo",
["jkr"] = "Koro (India)",
["jku"] = "Labir",
["jle"] = "Ngile",
["jls"] = "Bahasa Isyarat Jamaica",
["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"] = "Bahasa Isyarat Jordan",
["jow"] = "Jowulu",
["jpr"] = "Judeo-Persian",
["jpx-hcj"] = "Hachijō",
["jpx-pro"] = "Proto-Jeponik",
["jpx-ryu-pro"] = "Proto-Ryukyu",
["jqr"] = "Jaqaru",
["jra"] = "Jarai",
["jrr"] = "Jiru",
["jru"] = "Japrería",
["jsl"] = "Bahasa Isyarat Jepun",
["jua"] = "Júma",
["jub"] = "Wannu",
["juc"] = "Jurchen",
["jud"] = "Worodougou",
["juh"] = "Hone",
["jui"] = "Ngadjuri",
["juk"] = "Wapan",
["jul"] = "Jirel",
["jum"] = "Jumjum",
["jun"] = "Juang",
["juo"] = "Jiba",
["jup"] = "Hupdë",
["jur"] = "Jurúna",
["jus"] = "Bahasa Isyarat Jumla",
["jut"] = "Jutish",
["juu"] = "Ju",
["juw"] = "Wãpha",
["juy"] = "Juray",
["jv"] = "Jawa",
["jvd"] = "Javindo",
["jvn"] = "Jawa Caribbean",
["jwi"] = "Jwira-Pepesa",
["jyy"] = "Jaya",
["ka"] = "Georgia",
["kaa"] = "Karakalpak",
["kab"] = "Kabyle",
["kac"] = "Jingpho",
["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"] = "Proto-Karen",
["kaw"] = "Jawa Kuno",
["kax"] = "Kao",
["kay"] = "Kamayurá",
["kba"] = "Kalarko",
["kbb"] = "Kaxuyana",
["kbc"] = "Kadiwéu",
["kbd"] = "Kabardia",
["kbe"] = "Kanju",
["kbh"] = "Camsá",
["kbi"] = "Kaptiau",
["kbj"] = "Kari",
["kbk"] = "Grass Koiari",
["kbm"] = "Iwal",
["kbn"] = "Kare (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"] = "Khanty Timur",
["kca-nor"] = "Khanty Utara",
["kca-pro"] = "Proto-Khanty",
["kca-sou"] = "Khanty Selatan",
["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"] = "Numee",
["kdl"] = "Tsikimba",
["kdm"] = "Kagoma",
["kdn"] = "Kunda",
["kdp"] = "Kaningdon-Nindem",
["kdq"] = "Koch",
["kdr"] = "Karaim",
["kdt"] = "Kuy",
["kdu"] = "Kadaru",
["kdv"] = "Kado",
["kdw"] = "Koneraw",
["kdx"] = "Kam",
["kdy"] = "Keder",
["kdz"] = "Kwaja",
["kea"] = "Kabuverdianu",
["keb"] = "Kélé",
["kec"] = "Keiga",
["ked"] = "Kerewe",
["kee"] = "Keres Timur",
["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 (Afrika Barat)",
["kfp"] = "Korwa",
["kfq"] = "Korku",
["kfr"] = "Kachchi",
["kfs"] = "Bilaspuri",
["kft"] = "Kanjari",
["kfu"] = "Katkari",
["kfv"] = "Kurmukar",
["kfw"] = "Kharam Naga",
["kfx"] = "Kullu Pahari",
["kfy"] = "Kumaoni",
["kfz"] = "Koromfé",
["kg"] = "Kongo",
["kga"] = "Koyaga",
["kgb"] = "Kawe",
["kgd"] = "Kataang",
["kge"] = "Komering",
["kgf"] = "Kube",
["kgg"] = "Kusunda",
["kgi"] = "Selangor Sign Language",
["kgj"] = "Gamale Kham",
["kgk"] = "Kaiwá",
["kgl"] = "Kunggari",
["kgm"] = "Karipúna",
["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"] = "Khasi",
["khb"] = "Lü",
["khc"] = "Tukang Besi Utara",
["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"] = "Khotan",
["khp"] = "Kapauri",
["khq"] = "Koyra Chiini",
["khr"] = "Kharia",
["khs"] = "Kasua",
["kht"] = "Khamti",
["khu"] = "Nkhumbi",
["khv"] = "Khvarshi",
["khw"] = "Khowar",
["khx"] = "Kanu",
["khy"] = "Ekele",
["khz"] = "Keapara",
["ki"] = "Kikuyu",
["kia"] = "Kim",
["kib"] = "Koalib",
["kic"] = "Kickapoo",
["kid"] = "Koshin",
["kie"] = "Kibet",
["kif"] = "Kham Parbate Timur",
["kig"] = "Kimaama",
["kih"] = "Kilmeri",
["kii"] = "Kitsai",
["kij"] = "Kilivila",
["kil"] = "Kariya",
["kim"] = "Tofa",
["kio"] = "Kiowa",
["kip"] = "Sheshi Kham",
["kiq"] = "Kosadle",
["kis"] = "Kis",
["kit"] = "Agob",
["kiv"] = "Kimbu",
["kiw"] = "Kiwai Timur Laut",
["kix"] = "Naga Khiamniungan",
["kiy"] = "Kirikiri",
["kiz"] = "Kisi",
["kj"] = "Kwanyama",
["kja"] = "Mlap",
["kjb"] = "Q'anjob'al",
["kjc"] = "Konjo Pesisir",
["kjd"] = "Kiwai Selatan",
["kje"] = "Kisar",
["kjg"] = "Khmu",
["kjh"] = "Khakas",
["kji"] = "Zabana",
["kjj"] = "Khinalug",
["kjk"] = "Highland Konjo",
["kjl"] = "Kham",
["kjm"] = "Kháng",
["kjn"] = "Kunjen",
["kjo"] = "Harijan Kinnauri",
["kjp"] = "Pwo Timur",
["kjq"] = "Keres Barat",
["kjr"] = "Kurudu",
["kjs"] = "Kewa Timur",
["kjt"] = "Phrae Pwo",
["kju"] = "Kashaya",
["kjx"] = "Ramopa",
["kjy"] = "Erave",
["kjz"] = "Bumthangkha",
["kk"] = "Kazakh",
["kka"] = "Kakanda",
["kkb"] = "Kwerisa",
["kkc"] = "Odoodee",
["kkd"] = "Kinuku",
["kke"] = "Kakabe",
["kkf"] = "Monpa Kalaktang",
["kkg"] = "Kalinga Lembah Mabaka",
["kkh"] = "Khün",
["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"] = "Greenland",
["kla"] = "Klamath-Modoc",
["klb"] = "Kiliwa",
["klc"] = "Kolbila",
["kld"] = "Gamilaraay",
["kle"] = "Kulung",
["klf"] = "Kendeje",
["klg"] = "Kalagan Tagakaulu",
["klh"] = "Weliki",
["kli"] = "Kalumpang",
["klj"] = "Khalaj",
["klk"] = "Kono (Nigeria)",
["kll"] = "Kalagan Kagan",
["klm"] = "Kolom",
["kln"] = "Kalenjin",
["klo"] = "Kapya",
["klp"] = "Kamasa",
["klq"] = "Rumu",
["klr"] = "Khaling",
["kls"] = "Kalasha",
["klt"] = "Nukna",
["klu"] = "Klao",
["klv"] = "Maskelynes",
["klw"] = "Lindu",
["klx"] = "Koluwawa",
["kly"] = "Kalao",
["klz"] = "Kabola",
["km"] = "Khmer",
["kma"] = "Konni",
["kmb"] = "Kimbundu",
["kmc"] = "Kam Selatan",
["kmd"] = "Kalinga Madukayang",
["kme"] = "Bakole",
["kmf"] = "Kare (New Guinea)",
["kmg"] = "Kâte",
["kmh"] = "Kalam",
["kmi"] = "Kami",
["kmj"] = "Kumarbhag Paharia",
["kmk"] = "Kalinga Limos",
["kml"] = "Kalinga Tanudan",
["kmm"] = "Kom (India)",
["kmn"] = "Awtuw",
["kmo"] = "Kwoma",
["kmp"] = "Gimme",
["kmq"] = "Kwama",
["kmr"] = "Kurdi Utara",
["kms"] = "Kamasau",
["kmt"] = "Kemtuik",
["kmu"] = "Kanite",
["kmv"] = "Perancis Kreol Karipúna",
["kmw"] = "Kumu",
["kmx"] = "Waboda",
["kmy"] = "Koma",
["kmz"] = "Turki Khorasan",
["kn"] = "Kannada",
["kna"] = "Kanakuru",
["knb"] = "Kalinga Lubuagan",
["knd"] = "Konda",
["kne"] = "Kankanaey",
["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"] = "Salako",
["kny"] = "Kanyok",
["knz"] = "Kalamsé",
["ko"] = "Korea",
["ko-ear"] = "Korea Moden Awal",
["koa"] = "Konomala",
["koc"] = "Kpati",
["kod"] = "Kodi",
["koe"] = "Kacipo-Balesi",
["kof"] = "Kubi",
["kog"] = "Cogui",
["koh"] = "Koyo",
["koi"] = "Komi-Permyak",
["kok"] = "Konkani",
["kol"] = "Kol (New Guinea)",
["koo"] = "Konzo",
["kop"] = "Waube",
["koq"] = "Kota (Gabon)",
["kos"] = "Kosrae",
["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"] = "Koho",
["kpn"] = "Kepkiriwát",
["kpo"] = "Ikposo",
["kpp"] = "Karen Paku",
["kpq"] = "Korupun-Sela",
["kpr"] = "Korafe-Yegha",
["kps"] = "Tehit",
["kpt"] = "Karata",
["kpu"] = "Kafoa",
["kpv"] = "Komi-Zyrian",
["kpw"] = "Kobon",
["kpx"] = "Koiari Gunung",
["kpy"] = "Koryak",
["kpz"] = "Kupsabiny",
["kqa"] = "Mum",
["kqb"] = "Kovai",
["kqc"] = "Doromu-Koki",
["kqd"] = "Koy Sanjaq Surat",
["kqe"] = "Kalagan",
["kqf"] = "Kakabai",
["kqg"] = "Khe",
["kqh"] = "Kisankasa",
["kqi"] = "Koitabu",
["kqj"] = "Koromira",
["kqk"] = "Gbe Kotafon",
["kql"] = "Kyenele",
["kqm"] = "Khisa",
["kqn"] = "Kaonde",
["kqo"] = "Krahn Timur",
["kqp"] = "Kimré",
["kqq"] = "Krenak",
["kqr"] = "Kimaragang",
["kqs"] = "Kissi Utara",
["kqt"] = "Kadazan Sungai Klias",
["kqu"] = "Seroa",
["kqv"] = "Okolod",
["kqw"] = "Kandas",
["kqx"] = "Mser",
["kqy"] = "Koorete",
["kqz"] = "Korana",
["kr"] = "Kanuri",
["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"] = "Karelia",
["krm"] = "Krim",
["krn"] = "Sapo",
["kro-pro"] = "Proto-Kru",
["krp"] = "Korop",
["krr"] = "Kru'ng",
["krs"] = "Kresh",
["kru"] = "Kurukh",
["krv"] = "Kavet",
["krw"] = "Krahn Barat",
["krx"] = "Karon",
["kry"] = "Kryts",
["krz"] = "Sota Kanum",
["ks"] = "Kashmir",
["ksa"] = "Shuwa-Zamani",
["ksb"] = "Shambala",
["ksc"] = "Kalinga Selatan",
["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"] = "Kissi Selatan",
["kst"] = "Winyé",
["ksu"] = "Khamyang",
["ksv"] = "Kusu",
["ksw"] = "Karen S'gaw",
["ksx"] = "Kedang",
["ksy"] = "Kharia Thar",
["ksz"] = "Kodaku",
["kta"] = "Katua",
["ktb"] = "Kambaata",
["ktc"] = "Kholok",
["ktd"] = "Kokata",
["ktf"] = "Kwami",
["ktg"] = "Kalkatungu",
["kth"] = "Karanga",
["kti"] = "Muyu Utara",
["ktj"] = "Plapo Krumen",
["ktk"] = "Kaniet",
["ktl"] = "Koroshi",
["ktm"] = "Kurti",
["ktn"] = "Karitiâna",
["kto"] = "Kuot",
["ktp"] = "Kaduo",
["ktq"] = "Katabaga",
["ktr"] = "Tinagas Kota Marudu",
["kts"] = "Muyu Selatan",
["ktt"] = "Ketum",
["ktu"] = "Kituba",
["ktv"] = "Katu Timur",
["ktw"] = "Kato",
["ktx"] = "Kaxararí",
["kty"] = "Kango",
["ktz"] = "Juǀ'hoan",
["ku-pro"] = "Proto-Kurd",
["kub"] = "Kutep",
["kuc"] = "Kwinsu",
["kud"] = "Auhelawa",
["kue"] = "Kuman",
["kuf"] = "Katu Barat",
["kug"] = "Kupa",
["kuh"] = "Kushi",
["kui"] = "Kuikúro",
["kuj"] = "Kuria",
["kuk"] = "Kepo'",
["kul"] = "Kulere",
["kum"] = "Kumyk",
["kun"] = "Kunama",
["kuo"] = "Kumukio",
["kup"] = "Kunimaipa",
["kuq"] = "Karipuna",
["kus"] = "Kusaal",
["kut"] = "Kutenai",
["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"] = "Bahasa Isyarat Korea",
["kvl"] = "Karen Brek",
["kvm"] = "Kendem",
["kvn"] = "Kuna Sempadan",
["kvo"] = "Dobel",
["kvp"] = "Kompane",
["kvq"] = "Karen Geba",
["kvr"] = "Kerinci",
["kvt"] = "Karen Lahta",
["kvu"] = "Karen Yinbaw",
["kvv"] = "Kola",
["kvw"] = "Wersing",
["kvx"] = "Parkari Koli",
["kvy"] = "Karen Yintale",
["kvz"] = "Tsakwambo",
["kw"] = "Cornish",
["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"] = "Khonso",
["kxd"] = "Melayu Brunei",
["kxe"] = "Kakihum",
["kxf"] = "Karen Manumanaw",
["kxh"] = "Karo",
["kxi"] = "Murut Keningau",
["kxj"] = "Kulfa",
["kxk"] = "Karen Zayein",
["kxl"] = "Nepal Kurux",
["kxm"] = "Khmer Utara",
["kxn"] = "Kanowit",
["kxo"] = "Kanoé",
["kxp"] = "Wadiyara Koli",
["kxq"] = "Smärky Kanum",
["kxr"] = "Koro (New Guinea)",
["kxs"] = "Kangjia",
["kxt"] = "Koiwat",
["kxu"] = "Kui (India)",
["kxv"] = "Kuvi",
["kxw"] = "Konai",
["kxx"] = "Likuba",
["kxy"] = "Kayong",
["kxz"] = "Kerewo",
["ky"] = "Kyrgyz",
["kya"] = "Kwaya",
["kyb"] = "Kalinga Butbut",
["kyc"] = "Kyaka",
["kyd"] = "Karey",
["kye"] = "Krache",
["kyf"] = "Kouya",
["kyg"] = "Keyagana",
["kyh"] = "Karok",
["kyi"] = "Kiput",
["kyj"] = "Karao",
["kyk"] = "Kamayo",
["kyl"] = "Kalapuya",
["kym"] = "Kpatili",
["kyn"] = "Karolanos",
["kyo"] = "Kelon",
["kyp"] = "Kang",
["kyq"] = "Kenga",
["kyr"] = "Kuruáya",
["kys"] = "Kayan Baram",
["kyt"] = "Kayagar",
["kyu"] = "Kayah Barat",
["kyv"] = "Kayort",
["kyw"] = "Kudmali",
["kyx"] = "Rapoisi",
["kyy"] = "Kambaira",
["kyz"] = "Kayabí",
["kza"] = "Karaboro Barat",
["kzb"] = "Kaibobo",
["kzc"] = "Bondoukou Kulango",
["kzd"] = "Kadai",
["kze"] = "Kosena",
["kzf"] = "Da'a Kaili",
["kzg"] = "Kikai",
["kzh"] = "Dongolawi",
["kzi"] = "Kelabit",
["kzj"] = "Kadazan",
["kzk"] = "Kazukuru",
["kzl"] = "Kayeli",
["kzm"] = "Kais",
["kzn"] = "Kokola",
["kzo"] = "Kaningi",
["kzp"] = "Kaidipang",
["kzq"] = "Kaike",
["kzr"] = "Karang",
["kzs"] = "Dusun Sugut",
["kzt"] = "Dusun Tambunan",
["kzu"] = "Kayupulau",
["kzv"] = "Komyandaret",
["kzw"] = "Kariri",
["kzx"] = "Kamarian",
["kzy"] = "Kango-Sua",
["kzz"] = "Kalabra",
["la"] = "Latin",
["laa"] = "Subanun Lapuyan",
["lab"] = "Linear A",
["lac"] = "Lacandon",
["lad"] = "Ladino",
["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"] = "Luxembourg",
["lbb"] = "Label",
["lbc"] = "Lakkia",
["lbe"] = "Lak",
["lbf"] = "Tinani",
["lbg"] = "Laopang",
["lbi"] = "La'bi",
["lbj"] = "Ladakhi",
["lbk"] = "Bontoc Tengah",
["lbl"] = "Bikol Libon",
["lbm"] = "Lodhi",
["lbn"] = "Lamet",
["lbo"] = "Laven",
["lbq"] = "Wampar",
["lbr"] = "Lorung Utara",
["lbs"] = "Bahasa Isyarat Libya",
["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"] = "Lawa Barat",
["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"] = "Lenca Honduras",
["leo"] = "Leti (Cameroon)",
["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"] = "Lezgi",
["lfa"] = "Lefa",
["lfn"] = "Lingua Franca Nova",
["lg"] = "Luganda",
["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"] = "Limburg",
["lia"] = "Limba Barat-Tengah",
["lib"] = "Likum",
["lic"] = "Hlai",
["lid"] = "Nyindrou",
["lie"] = "Likila",
["lif"] = "Limbu",
["lig"] = "Ligbi",
["lih"] = "Lihir",
["lii"] = "Lingkhim",
["lij"] = "Ligurian",
["lik"] = "Lika",
["lil"] = "Lillooet",
["lio"] = "Liki",
["lip"] = "Sekpele",
["liq"] = "Libido",
["lir"] = "Liberian Kreyol",
["lis"] = "Lisu",
["liu"] = "Logorik",
["liv"] = "Livonian",
["liw"] = "Col",
["lix"] = "Liabuku",
["liy"] = "Banda-Bambari",
["liz"] = "Libinza",
["lja"] = "Golpa",
["lje"] = "Rampi",
["lji"] = "Laiyolo",
["ljl"] = "Li'o",
["ljp"] = "Lampung Api",
["ljw"] = "Yirandali",
["ljx"] = "Yuru",
["lka"] = "Lakalei",
["lkb"] = "Kabras",
["lkc"] = "Kucong",
["lkd"] = "Lakondê",
["lke"] = "Kenyi",
["lkh"] = "Lakha",
["lki"] = "Laki",
["lkj"] = "Remun",
["lkl"] = "Laeko-Libuat",
["lkm"] = "Kalaamaya",
["lkn"] = "Lakon",
["lko"] = "Khayo",
["lkr"] = "Päri",
["lks"] = "Kisa",
["lkt"] = "Lakota",
["lku"] = "Kungkari",
["lky"] = "Lokoya",
["lla"] = "Lala-Roba",
["llb"] = "Lolo",
["llc"] = "Lele (Guinea)",
["lld"] = "Ladin",
["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"] = "Efate Utara",
["llq"] = "Lolak",
["lls"] = "Lithuanian Sign Language",
["llu"] = "Lau",
["llx"] = "Lauan",
["lma"] = "Limba Timur",
["lmb"] = "Merei",
["lmc"] = "Limilngan",
["lmd"] = "Lumun",
["lme"] = "Pévé",
["lmf"] = "Lembata Selatan",
["lmg"] = "Lamogai",
["lmh"] = "Lambichhong",
["lmi"] = "Lombi",
["lmj"] = "Lembata Barat",
["lmk"] = "Lamkang",
["lml"] = "Raga",
["lmn"] = "Lambadi",
["lmo"] = "Lombard",
["lmp"] = "Limbum",
["lmq"] = "Lamatuka",
["lmr"] = "Lamalera",
["lmu"] = "Lamenu",
["lmv"] = "Lomaiviti",
["lmw"] = "Lake Miwok",
["lmx"] = "Laimbue",
["lmy"] = "Laboya",
["lmz"] = "Lumbee",
["ln"] = "Lingala",
["lna"] = "Langbashe",
["lnb"] = "Mbalanhu",
["lnd"] = "Lun Bawang",
["lnh"] = "Lanoh",
["lni"] = "Daantanai'",
["lnj"] = "Linngithigh",
["lnl"] = "Banda Tengah Selatan",
["lnm"] = "Langam",
["lnn"] = "Lorediakarkar",
["lno"] = "Lango (Sudan)",
["lns"] = "Lamnso'",
["lnu"] = "Longuda",
["lnw"] = "Lanima",
["lo"] = "Lao",
["loa"] = "Loloda",
["lob"] = "Lobi",
["loc"] = "Inonhan",
["lod"] = "Berawan",
["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"] = "Kreol Louisiana",
["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"] = "Lur Utara",
["lre"] = "Laurentia",
["lrg"] = "Laragia",
["lri"] = "Marachi",
["lrk"] = "Loarki",
["lrl"] = "Larestani",
["lrm"] = "Marama",
["lrn"] = "Lorang",
["lro"] = "Laro",
["lrr"] = "Lorung Selatan",
["lrt"] = "Melayu Larantuka",
["lrv"] = "Larevat",
["lrz"] = "Lemerig",
["lsa"] = "Lasgerdi",
["lsd"] = "Lishana Deni",
["lse"] = "Lusengo",
["lsh"] = "Lish",
["lsi"] = "Lashi",
["lsl"] = "Bahasa Isyarat Latvia",
["lsm"] = "Saamia",
["lso"] = "Bahasa Isyarat Lao",
["lsp"] = "Bahaaa Isyarat Panama",
["lsr"] = "Aruop",
["lss"] = "Lasi",
["lst"] = "Bahasa Isyarat Trinidad dan Tobago",
["lsy"] = "Bahaaa Isyarat Mauritius",
["lt"] = "Lithuania",
["ltc"] = "Cina Pertengahan",
["ltg"] = "Latgalia",
["lti"] = "Leti (Indonesia)",
["ltn"] = "Latundê",
["lto"] = "Olutsotso",
["lts"] = "Lutachoni",
["ltu"] = "Latu",
["lu"] = "Luba-Katanga",
["lua"] = "Luba-Kasai",
["luc"] = "Aringa",
["lud"] = "Ludian",
["lue"] = "Luvale",
["luf"] = "Laua",
["lui"] = "Luiseño",
["luj"] = "Luna",
["luk"] = "Lunanakha",
["lul"] = "Olu'bo",
["lum"] = "Luimbi",
["lun"] = "Lunda",
["luo"] = "Luo",
["lup"] = "Lumbu",
["luq"] = "Lucumí",
["lur"] = "Laura",
["lus"] = "Mizo",
["lut"] = "Lushootseed",
["luu"] = "Lumba-Yakkha",
["luv"] = "Luwati",
["luy"] = "Luhya",
["luz"] = "Lur Selatan",
["lv"] = "Latvia",
["lva"] = "Maku'a",
["lvi"] = "Lawi",
["lvk"] = "Lavukaleve",
["lvl"] = "Lwel",
["lvu"] = "Levuka",
["lwa"] = "Lwalu",
["lwe"] = "Lewo Eleng",
["lwg"] = "Wanga",
["lwh"] = "Lachi Putih",
["lwl"] = "Lawa Timur",
["lwm"] = "Laomian",
["lwo"] = "Luwo",
["lws"] = "Malawian Sign Language",
["lwt"] = "Lewotobi",
["lwu"] = "Lawu",
["lww"] = "Lewo",
["lya"] = "Layakha",
["lyg"] = "Lyngngam",
["lyn"] = "Luyana",
["lzh"] = "Literary Chinese",
["lzl"] = "Litzlitz",
["lzn"] = "Leinong Naga",
["lzz"] = "Laz",
["maa"] = "Mazatec San Jerónimo Tecóatl",
["mab"] = "Mixtec Yutanduchi",
["mad"] = "Madura",
["mae"] = "Bo-Rukul",
["maf"] = "Mafa",
["mag"] = "Magahi",
["mai"] = "Maithili",
["maj"] = "Mazatec Jalapa de Díaz",
["mak"] = "Makassar",
["mam"] = "Mam",
["man"] = "Mandingo",
["map-ata-pro"] = "Proto-Atayalik",
["map-bms"] = "Banyumasan",
["map-pro"] = "Proto-Austronesia",
["maq"] = "Mazatec Chiquihuitlán",
["mas"] = "Maasai",
["mat"] = "Matlatzinca",
["mau"] = "Mazatec Huautla",
["mav"] = "Sateré-Mawé",
["maw"] = "Mampruli",
["max"] = "Melayu Maluku Utara",
["maz"] = "Mazahua Tengah",
["mba"] = "Higaonon",
["mbb"] = "Manobo Bukidnon Barat",
["mbc"] = "Macushi",
["mbd"] = "Manobo Dibabawon",
["mbe"] = "Molale",
["mbf"] = "Melayu Baba",
["mbh"] = "Mangseng",
["mbi"] = "Manobo Ilianen",
["mbj"] = "Nadëb",
["mbk"] = "Malol",
["mbl"] = "Maxakalí",
["mbm"] = "Ombamba",
["mbn"] = "Macaguán",
["mbo"] = "Mbo (Cameroon)",
["mbp"] = "Wiwa",
["mbq"] = "Maisin",
["mbr"] = "Nukak Makú",
["mbs"] = "Manobo Sarangani",
["mbt"] = "Manobo Matigsalug",
["mbu"] = "Mbula-Bwazza",
["mbv"] = "Mbulungish",
["mbw"] = "Maring",
["mbx"] = "Mari (Sepik)",
["mby"] = "Memoni",
["mbz"] = "Mixtec Amoltepec",
["mca"] = "Maca",
["mcb"] = "Machiguenga",
["mcc"] = "Bitur",
["mcd"] = "Sharanahua",
["mce"] = "Mixtec Itundujia",
["mcf"] = "Matsés",
["mcg"] = "Mapoyo",
["mch"] = "Ye'kwana",
["mci"] = "Mese",
["mcj"] = "Mvanip",
["mck"] = "Mbunda",
["mcl"] = "Macaguaje",
["mcm"] = "Kristang",
["mcn"] = "Masana",
["mco"] = "Mixe Coatlán",
["mcp"] = "Makaa",
["mcq"] = "Ese",
["mcr"] = "Menya",
["mcs"] = "Mambai",
["mcu"] = "Mambila Cameroon",
["mcw"] = "Mawa",
["mcx"] = "Mpiemo",
["mcy"] = "Watut Selatan",
["mcz"] = "Mawan",
["mda"] = "Mada (Nigeria)",
["mdb"] = "Morigi",
["mdc"] = "Male",
["mdd"] = "Mbum",
["mde"] = "Mabang Bura",
["mdf"] = "Moksha",
["mdg"] = "Massalat",
["mdh"] = "Maguindanao",
["mdi"] = "Mamvu",
["mdj"] = "Mangbetu",
["mdk"] = "Mangbutu",
["mdl"] = "Bahasa Isyarat Malta",
["mdm"] = "Mayogo",
["mdn"] = "Mbati",
["mdp"] = "Mbala",
["mdq"] = "Mbole",
["mdr"] = "Mandar",
["mds"] = "Maria",
["mdt"] = "Mbere",
["mdu"] = "Mboko",
["mdv"] = "Mixtec Santa Lucía Monteverde",
["mdw"] = "Mbosi",
["mdx"] = "Dizin",
["mdy"] = "Maale",
["mdz"] = "Suruí Do Pará",
["mea"] = "Menka",
["meb"] = "Ikobi-Mena",
["mec"] = "Mara",
["med"] = "Melpa",
["mee"] = "Mengen",
["mef"] = "Megam",
["meh"] = "Mixtec Tlaxiaco Barat Daya",
["mei"] = "Midob",
["mej"] = "Meyah",
["mek"] = "Mekeo",
["mel"] = "Melanau Tengah",
["mem"] = "Mangala",
["men"] = "Mende (Sierra Leone)",
["meo"] = "Melayu Kedah",
["mep"] = "Miriwoong",
["meq"] = "Merey",
["mer"] = "Meru",
["mes"] = "Masmaje",
["met"] = "Mato",
["meu"] = "Motu",
["mev"] = "Mano",
["mew"] = "Maaka",
["mey"] = "Arab Hassaniyah",
["mez"] = "Menominee",
["mfa"] = "Melayu Patani",
["mfb"] = "Bangka",
["mfc"] = "Mba",
["mfd"] = "Mendankwe-Nkwen",
["mfe"] = "Kreol Mauritius",
["mff"] = "Naki",
["mfg"] = "Mixifore",
["mfh"] = "Matal",
["mfi"] = "Wandala",
["mfj"] = "Mefele",
["mfk"] = "Mofu Utara",
["mfl"] = "Putai",
["mfm"] = "Marghi Selatan",
["mfn"] = "Mbembe Cross River",
["mfo"] = "Mbe",
["mfp"] = "Melayu Makassar",
["mfq"] = "Moba",
["mfr"] = "Marrithiyel",
["mfs"] = "Bahasa Isyarat Mexico",
["mft"] = "Mokerang",
["mfu"] = "Mbwela",
["mfv"] = "Mandjak",
["mfw"] = "Mulaha",
["mfx"] = "Melo",
["mfy"] = "Mayo",
["mfz"] = "Mabaan",
["mg"] = "Malagasi",
["mga"] = "Ireland Pertengahan",
["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"] = "Magar Timur",
["mgq"] = "Malila",
["mgr"] = "Mambwe-Lungu",
["mgs"] = "Manda (Tanzania)",
["mgt"] = "Mwakai",
["mgu"] = "Mailu",
["mgv"] = "Matengo",
["mgw"] = "Matumbi",
["mgy"] = "Mbunga",
["mgz"] = "Mbugwe",
["mh"] = "Marshall",
["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"] = "Mòcheno",
["mho"] = "Mashi",
["mhp"] = "Melayu Bali",
["mhq"] = "Mandan",
["mhr"] = "Mari Timur",
["mhs"] = "Buru (Indonesia)",
["mht"] = "Mandahuaca",
["mhu"] = "Taraon",
["mhw"] = "Mbukushu",
["mhx"] = "Lhao Vo",
["mhy"] = "Ma'anyan",
["mhz"] = "Mor (Austronesia)",
["mi"] = "Māori",
["mia"] = "Miami",
["mib"] = "Mixtec Atatláhuca",
["mic"] = "Mi'kmaq",
["mid"] = "Mandaia",
["mie"] = "Mixtec Ocotepec",
["mif"] = "Mofu-Gudur",
["mig"] = "Mixtec San Miguel el Grande",
["mih"] = "Mixtec Chayuco",
["mii"] = "Mixtec Chigmecatitlán",
["mij"] = "Mungbam",
["mik"] = "Mikasuki",
["mil"] = "Mixtec Peñoles",
["mim"] = "Mixtec Alacatlatzala",
["min"] = "Minangkabau",
["mio"] = "Mixtec Pinotepa Nacional",
["mip"] = "Mixtec Apasco-Apoala",
["miq"] = "Miskito",
["mir"] = "Mixe Tanah Genting",
["mis-hkl"] = "Hokkien Peranakan Kelantan",
["mis-idn"] = "Idiom Neutral",
["mis-isa"] = "Isauria",
["mis-jie"] = "Jie",
["mis-jzh"] = "Jizhao",
["mis-kas"] = "Kassite",
["mis-mmd"] = "Mimi Decorse",
["mis-mmn"] = "Mimi Nachtigal",
["mis-phi"] = "Filistin",
["mis-rou"] = "Rouran",
["mis-tdl"] = "Turdulia",
["mis-tdt"] = "Turdetania",
["mis-tnw"] = "Tangwang",
["mis-tuh"] = "Tuyuhun",
["mis-tuo"] = "Tuoba",
["mis-wuh"] = "Wuhuan",
["mis-xbi"] = "Xianbei",
["mis-xnu"] = "Xiongnu",
["mit"] = "Mixtec Puebla Selatan",
["miu"] = "Mixtec Cacaloxtepec",
["miw"] = "Akoye",
["mix"] = "Mixtec Mixtepec",
["miy"] = "Mixtec Ayutla",
["miz"] = "Mixtec Coatzospan",
["mjb"] = "Makalero",
["mjc"] = "Mixtec San Juan Colorado",
["mjd"] = "Maidu Barat Laut",
["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"] = "Paharia Sawriya",
["mju"] = "Manna-Dora",
["mjv"] = "Mannan",
["mjw"] = "Karbi",
["mjx"] = "Mahali",
["mjy"] = "Mahican",
["mjz"] = "Manya",
["mk"] = "Macedonia",
["mka"] = "Mbre",
["mkb"] = "Mal Paharia",
["mkc"] = "Siliput",
["mke"] = "Mawchi",
["mkf"] = "Miya",
["mkg"] = "Mak (China)",
["mkh-asl-pro"] = "Proto-Asli",
["mkh-ban-pro"] = "Proto-Bahnar",
["mkh-kat-pro"] = "Proto-Katuik",
["mkh-khm-pro"] = "Proto-Khmuik",
["mkh-kmr-pro"] = "Proto-Khmer",
["mkh-mmn"] = "Mon Pertengahan",
["mkh-mnc-pro"] = "Proto-Monik",
["mkh-mvi"] = "Vietnam Pertengahan",
["mkh-pal-pro"] = "Proto-Palaungik",
["mkh-pea-pro"] = "Proto-Pearik",
["mkh-pkn-pro"] = "Proto-Pakanik",
["mkh-pro"] = "Proto-Mon-Khmer",
["mkh-vie-pro"] = "Proto-Vietik",
["mki"] = "Dhatki",
["mkj"] = "Mokil",
["mkk"] = "Byep",
["mkl"] = "Mokole",
["mkm"] = "Moklen",
["mkn"] = "Melayu Kupang",
["mko"] = "Mingang Doso",
["mkp"] = "Moikodi",
["mkq"] = "Miwok Teluk",
["mkr"] = "Malas",
["mks"] = "Mixtec Silacayoapan",
["mkt"] = "Vamale",
["mku"] = "Maninka Konyanka",
["mkv"] = "Mav̋ea",
["mkx"] = "Manobo Cinamiguin",
["mky"] = "Taba",
["mkz"] = "Makasae",
["ml"] = "Malayalam",
["mla"] = "Tamambo",
["mlb"] = "Mbule",
["mlc"] = "Caolan",
["mle"] = "Manambu",
["mlf"] = "Mal",
["mlh"] = "Mape",
["mli"] = "Malimpung",
["mlj"] = "Miltu",
["mlk"] = "Ilwana",
["mll"] = "Teluk Malua",
["mlm"] = "Mulam",
["mln"] = "Malango",
["mlo"] = "Mlomp",
["mlp"] = "Bargam",
["mlq"] = "Maninkakan Barat",
["mlr"] = "Vame",
["mls"] = "Masalit",
["mlu"] = "To'abaita",
["mlv"] = "Mwotlap",
["mlw"] = "Moloko",
["mlx"] = "Malfaxal",
["mlz"] = "Malaynon",
["mma"] = "Mama",
["mmb"] = "Momina",
["mmc"] = "Mazahua Michoacán",
["mmd"] = "Maonan",
["mme"] = "Tirax",
["mmf"] = "Mundat",
["mmg"] = "Ambrym Utara",
["mmh"] = "Mehináku",
["mmi"] = "Hember Avu",
["mmj"] = "Majhwar",
["mmk"] = "Mukha-Dora",
["mml"] = "Man Met",
["mmm"] = "Maii",
["mmn"] = "Mamanwa",
["mmo"] = "Mangga Buang",
["mmp"] = "Musan",
["mmq"] = "Aisi",
["mmr"] = "Miao Xiangxi Barat",
["mmt"] = "Malalamai",
["mmu"] = "Mmaala",
["mmv"] = "Miriti",
["mmw"] = "Emae",
["mmx"] = "Madak",
["mmy"] = "Migaama",
["mmz"] = "Mabaale",
["mn"] = "Mongolia",
["mna"] = "Mbula",
["mnb"] = "Muna",
["mnc"] = "Manchu",
["mnd"] = "Mondé",
["mne"] = "Naba",
["mnf"] = "Mundani",
["mng"] = "Mnong Timur",
["mnh"] = "Mono (Congo)",
["mni"] = "Manipuri",
["mnj"] = "Munji",
["mnk"] = "Mandinka",
["mnl"] = "Tiale",
["mnm"] = "Mapena",
["mnn"] = "Mnong Selatan",
["mnp"] = "Min Utara",
["mnq"] = "Minriq",
["mnr"] = "Mono (California)",
["mns-cen"] = "Mansi Tengah",
["mns-nor"] = "Mansi Utara",
["mns-pro"] = "Proto-Mansi",
["mns-sou"] = "Mansi Selatan",
["mnt"] = "Maykulan",
["mnu"] = "Mer",
["mnv"] = "Rennell",
["mnw"] = "Mon",
["mnw-tha"] = "Mon Thailand",
["mnx"] = "Sougb",
["mny"] = "Manyawa",
["mnz"] = "Moni",
["moa"] = "Mwan",
["moc"] = "Mocoví",
["mod"] = "Mobilia",
["moe"] = "Montagnais",
["mog"] = "Mongondow",
["moh"] = "Mohawk",
["moi"] = "Mboi",
["moj"] = "Monzombo",
["mok"] = "Morori",
["mom"] = "Mangue",
["moo"] = "Monom",
["mop"] = "Maya Mopan",
["moq"] = "Mor (Papua)",
["mor"] = "Moro",
["mos"] = "Mossi",
["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"] = "Watut Tengah",
["mpm"] = "Mixtec Yosondúa",
["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"] = "Melayu Kutai Kota Bangun",
["mqh"] = "Mixtec Tlazoyaltepec",
["mqi"] = "Mariri",
["mqj"] = "Mamasa",
["mqk"] = "Manobo Rajah Kabunsuwan",
["mql"] = "Mbelime",
["mqm"] = "Marquesas Selatan",
["mqn"] = "Moronene",
["mqo"] = "Modole",
["mqp"] = "Manipa",
["mqq"] = "Minokok",
["mqr"] = "Mander",
["mqs"] = "Makian Barat",
["mqt"] = "Mok",
["mqu"] = "Mandari",
["mqv"] = "Mosimo",
["mqw"] = "Murupi",
["mqx"] = "Mamuju",
["mqy"] = "Manggarai",
["mqz"] = "Malasanga",
["mr"] = "Marathi",
["mra"] = "Mlabri",
["mrb"] = "Sungwadia",
["mrc"] = "Maricopa",
["mrd"] = "Magar Barat",
["mre"] = "Bahasa Isyarat Martha's Vineyard",
["mrf"] = "Elseng",
["mrg"] = "Mising",
["mrh"] = "Chin Mara",
["mrj"] = "Mari Barat",
["mrk"] = "Hmwaveke",
["mrl"] = "Mortlock",
["mrm"] = "Mwerlap",
["mrn"] = "Cheke Holo",
["mro"] = "Mru",
["mrp"] = "Morouas",
["mrq"] = "Marquesas Utara",
["mrr"] = "Maria Bukit",
["mrs"] = "Maragus",
["mrt"] = "Margi",
["mru"] = "Mono (Cameroon)",
["mrv"] = "Mangareva",
["mrw"] = "Maranao",
["mrx"] = "Dineor",
["mry"] = "Mandaya Karaga",
["mrz"] = "Marind",
["ms"] = "Melayu",
["msb"] = "Masbatenyo",
["msc"] = "Maninka Sankaran",
["msd"] = "Bahasa Isyarat Maya Yucatec",
["mse"] = "Musey",
["msf"] = "Mekwei",
["msg"] = "Moraid",
["msi"] = "Melayu Sabah",
["msj"] = "Ma",
["msk"] = "Mansaka",
["msl"] = "Molof",
["msm"] = "Manobo Agusan",
["msn"] = "Vurës",
["mso"] = "Mombum",
["msp"] = "Maritsauá",
["msq"] = "Caac",
["msr"] = "Bahasa Isyarat Mongolia",
["mss"] = "Masela Barat",
["msu"] = "Musom",
["msv"] = "Maslam",
["msw"] = "Mansoanka",
["msx"] = "Moresada",
["msy"] = "Aruamu",
["msz"] = "Momare",
["mt"] = "Malta",
["mta"] = "Manobo Cotabato",
["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"] = "Mixe Totontepec",
["mtp"] = "Wichí Lhamtés Nocten",
["mtq"] = "Muong",
["mtr"] = "Mewari",
["mts"] = "Yora",
["mtt"] = "Mota",
["mtu"] = "Mixtec Tututepec",
["mtv"] = "Asaro'o",
["mtw"] = "Magahat",
["mtx"] = "Mixtec Tidaá",
["mty"] = "Nabi",
["mua"] = "Mundang",
["mub"] = "Mubi",
["muc"] = "Mbu'",
["mud"] = "Aleut Mednyj",
["mue"] = "Media Lengua",
["mug"] = "Musgu",
["muh"] = "Mündü",
["mui"] = "Musi",
["muj"] = "Mabire",
["mul"] = "Translingual",
["mum"] = "Maiwala",
["mun-pro"] = "Proto-Munda",
["muo"] = "Nyong",
["mup"] = "Malvi",
["muq"] = "Miao Xiangxi Timur",
["mur"] = "Murle",
["mus"] = "Creek",
["mut"] = "Muria Barat",
["muu"] = "Yaaku",
["muv"] = "Muthuvan",
["mux"] = "Bo-Ung",
["muy"] = "Muyang",
["muz"] = "Mursi",
["mva"] = "Manam",
["mvb"] = "Mattole",
["mvd"] = "Mamboru",
["mvg"] = "Mixtec Yucuañe",
["mvh"] = "Mire",
["mvi"] = "Miyako",
["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"] = "Kohistani Indus",
["mvz"] = "Mesqan",
["mwa"] = "Mwatebu",
["mwb"] = "Juwal",
["mwc"] = "Are",
["mwe"] = "Mwera",
["mwf"] = "Murrinh-Patha",
["mwg"] = "Aiklep",
["mwh"] = "Mouk-Aria",
["mwi"] = "Labo",
["mwk"] = "Maninkakan Kita",
["mwl"] = "Mirandese",
["mwm"] = "Sar",
["mwn"] = "Nyamwanga",
["mwo"] = "Sungwadaga",
["mwp"] = "Kala Lagaw Ya",
["mwq"] = "Mün Chin",
["mwr"] = "Marwari",
["mws"] = "Mwimbi-Muthambi",
["mwt"] = "Moken",
["mwu"] = "Mittu",
["mwv"] = "Mentawai",
["mww"] = "Hmong Putih",
["mwz"] = "Moingi",
["mxa"] = "Mixtec Oaxaca Barat Laut",
["mxb"] = "Mixtec Tezoatlán",
["mxd"] = "Modang",
["mxe"] = "Mele-Fila",
["mxf"] = "Malgbe",
["mxg"] = "Mbangala",
["mxh"] = "Mvuba",
["mxi"] = "Mozarab",
["mxj"] = "Miju",
["mxk"] = "Monumbo",
["mxl"] = "Maxi Gbe",
["mxm"] = "Meramera",
["mxn"] = "Moi (Indonesia)",
["mxo"] = "Mbowe",
["mxp"] = "Mixe Tlahuitoltepec",
["mxq"] = "Mixe Juquila",
["mxr"] = "Murik (Malaysia)",
["mxs"] = "Mixtec Huitepec",
["mxt"] = "Mixtec Jamiltepec",
["mxu"] = "Mada (Cameroon)",
["mxv"] = "Mixtec Metlatónoc",
["mxw"] = "Namo",
["mxx"] = "Mahou",
["mxy"] = "Mixtec Nochixtlán Tenggara",
["mxz"] = "Masela Tengah",
["my"] = "Burma",
["myb"] = "Mbay",
["myc"] = "Mayeka",
["mye"] = "Myene",
["myf"] = "Bambassi",
["myg"] = "Manta",
["myh"] = "Makah",
["myj"] = "Mangayat",
["myk"] = "Mamara",
["myl"] = "Moma",
["mym"] = "Me'en",
["myn-chl"] = "Ch'olti'",
["myn-pro"] = "Proto-Maya",
["myo"] = "Anfillo",
["myp"] = "Pirahã",
["myr"] = "Muniche",
["mys"] = "Mesmes",
["myu"] = "Mundurukú",
["myv"] = "Erzya",
["myw"] = "Muyuw",
["myx"] = "Masaba",
["myy"] = "Macuna",
["myz"] = "Mandaia Klasik",
["mza"] = "Mixtec Santa María Zacatepec",
["mzb"] = "Berber Saharan Utara",
["mzc"] = "Bahasa Isyarat Madagascar",
["mzd"] = "Malimba",
["mze"] = "Morawa",
["mzg"] = "Bahasa Isyarat Monastik",
["mzh"] = "Wichí Lhamtés Güisnay",
["mzi"] = "Mazatec Ixcatlán",
["mzk"] = "Mambila Nigeria",
["mzl"] = "Mixe Mazatlán",
["mzm"] = "Mumuye",
["mzn"] = "Mazanderani",
["mzo"] = "Matipuhy",
["mzp"] = "Movima",
["mzq"] = "Mori Atas",
["mzr"] = "Marúbo",
["mzs"] = "Macanese",
["mzt"] = "Mintil",
["mzu"] = "Inapang",
["mzv"] = "Manza",
["mzw"] = "Deg",
["mzx"] = "Mawayana",
["mzy"] = "Bahasa Isyarat Mozambique",
["mzz"] = "Maiadomu",
["na"] = "Nauru",
["naa"] = "Namla",
["nab"] = "Nambikwara",
["nac"] = "Narak",
["nae"] = "Naka'ela",
["naf"] = "Nabak",
["nag"] = "Pidgin Naga",
["nah"] = "Nahuatl",
["nai-ala"] = "Alazapa",
["nai-bay"] = "Bayogoula",
["nai-cal"] = "Calusa",
["nai-chi"] = "Chiquimulilla",
["nai-chu-pro"] = "Proto-Chumash",
["nai-cig"] = "Ciguayo",
["nai-ckn-pro"] = "Proto-Chinook",
["nai-guz"] = "Guazacapán",
["nai-hit"] = "Hitchiti",
["nai-ipa"] = "Ipai",
["nai-jtp"] = "Jutiapa",
["nai-jum"] = "Jumaytepeque",
["nai-kat"] = "Kathlamet",
["nai-klp-pro"] = "Proto-Kalapuya",
["nai-knm"] = "Konomihu",
["nai-kum"] = "Kumeyaay",
["nai-mac"] = "Macoris",
["nai-mdu-pro"] = "Proto-Maidu",
["nai-miz-pro"] = "Proto-Mixe-Zoque",
["nai-mus-pro"] = "Proto-Muskogi",
["nai-nao"] = "Naolan",
["nai-nrs"] = "Shasta Sungai Baru",
["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-Catawba",
["nai-sin"] = "Sinacantán",
["nai-sln"] = "Lenca Salvador",
["nai-spt"] = "Sahaptin",
["nai-tap"] = "Tapachultec",
["nai-taw"] = "Tawasa",
["nai-teq"] = "Tequistlatec",
["nai-tip"] = "Tipai",
["nai-tot-pro"] = "Proto-Totozoquean",
["nai-tsi-pro"] = "Proto-Tsimshianik",
["nai-utn-pro"] = "Proto-Utik",
["nai-wai"] = "Waikuri",
["nai-wji"] = "Jicaque Barat",
["nai-yup"] = "Yupiltepeque",
["naj"] = "Nalu",
["nak"] = "Nakanai",
["nal"] = "Nalik",
["nam"] = "Ngan'gityemerri",
["nan"] = "Min Nan",
["nan-dat"] = "Min Datian",
["nan-hbl"] = "Hokkien",
["nan-hlh"] = "Min Hailufeng",
["nan-lnx"] = "Min Longyan",
["nan-tws"] = "Teochew",
["nan-zhe"] = "Min Zhenan",
["nan-zsh"] = "Min Sanxiang",
["nao"] = "Naaba",
["nap"] = "Neapolit",
["naq"] = "Khoekhoe",
["nar"] = "Iguta",
["nas"] = "Nasioi",
["nat"] = "Hungworo",
["naw"] = "Nawuri",
["nax"] = "Nakwi",
["nay"] = "Ngarrindjeri",
["naz"] = "Nahuatl Coatepec",
["nb"] = "Bokmål Norway",
["nba"] = "Nyemba",
["nbb"] = "Ndoe",
["nbc"] = "Chang",
["nbd"] = "Ngbinda",
["nbe"] = "Naga Konyak",
["nbg"] = "Nagarchal",
["nbh"] = "Ngamo",
["nbi"] = "Naga Mao",
["nbj"] = "Ngarinman",
["nbk"] = "Nake",
["nbm"] = "Ngbaka Ma'bo",
["nbn"] = "Kuri",
["nbo"] = "Nkukoli",
["nbp"] = "Nnam",
["nbq"] = "Nggem",
["nbr"] = "Numana",
["nbs"] = "Bahasa Isyarat Namibia",
["nbt"] = "Na",
["nbu"] = "Naga Rongmei",
["nbv"] = "Ngamambo",
["nbw"] = "Ngbandi Selatan",
["nby"] = "Ningera",
["nca"] = "Iyo",
["ncb"] = "Nicobar Tengah",
["ncc"] = "Ponam",
["ncd"] = "Nachering",
["nce"] = "Yale",
["ncf"] = "Notsi",
["ncg"] = "Nisga'a",
["nch"] = "Nahuatl Huasteca Tengah",
["nci"] = "Nahuatl Klasik",
["ncj"] = "Nahuatl Puebla Utara",
["nck"] = "Nakara",
["ncl"] = "Nahuatl Michoacán",
["ncm"] = "Nambo",
["ncn"] = "Nauna",
["nco"] = "Sibe",
["ncr"] = "Ncane",
["ncs"] = "Bahasa Isyarat Nicaragua",
["nct"] = "Naga Chothe",
["ncu"] = "Chumburung",
["ncx"] = "Nahuatl Puebla Tengah",
["ncz"] = "Natchez",
["nd"] = "Ndebele Utara",
["nda"] = "Ndasa",
["ndb"] = "Kenswei Nsei",
["ndc"] = "Ndau",
["ndd"] = "Nde-Nsele-Nta",
["ndf"] = "Nadruvia",
["ndg"] = "Ndengereko",
["ndh"] = "Ndali",
["ndi"] = "Chamba Leko",
["ndj"] = "Ndamba",
["ndk"] = "Ndaka",
["ndl"] = "Ndolo",
["ndm"] = "Ndam",
["ndn"] = "Ngundi",
["ndp"] = "Ndo",
["ndq"] = "Ndombe",
["ndr"] = "Ndoola",
["nds"] = "Jerman Rendah",
["ndt"] = "Ndunga",
["ndu"] = "Dugun",
["ndv"] = "Ndut",
["ndw"] = "Ndobo",
["ndx"] = "Nduga",
["ndy"] = "Lutos",
["ndz"] = "Ndogo",
["ne"] = "Nepal",
["nea"] = "Ngad'a Timur",
["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"] = "Mixe Tengah Utara",
["ner"] = "Yahadian",
["nes"] = "Kinnauri Bhoti",
["net"] = "Nete",
["neu"] = "Neo",
["nev"] = "Nyaheun",
["new"] = "Newar",
["nex"] = "Neme",
["ney"] = "Neyo",
["nez"] = "Nez Perce",
["nfa"] = "Dhao",
["nfd"] = "Ahwai",
["nfl"] = "Äiwoo",
["nfr"] = "Nafaanra",
["nfu"] = "Mfumte",
["ng"] = "Ndonga",
["nga"] = "Ngbaka",
["ngb"] = "Ngbandi Utara",
["ngc"] = "Ngombe (Congo)",
["ngd"] = "Ngando (Republik Afrika Tengah)",
["nge"] = "Ngemba",
["ngf-bin-pro"] = "Proto-Binandere",
["ngf-pro"] = "Proto-Trans-New Guinea",
["ngg"] = "Ngbaka Manza",
["ngh"] = "Nǀuu",
["ngi"] = "Ngizim",
["ngj"] = "Ngie",
["ngk"] = "Ngalkbun",
["ngl"] = "Lomwe",
["ngm"] = "Kreol Lelaki Ngatik",
["ngn"] = "Ngwo",
["ngo"] = "Ngoni",
["ngp"] = "Ngulu",
["ngq"] = "Ngoreme",
["ngr"] = "Nagu",
["ngs"] = "Gvoko",
["ngt"] = "Ngeq",
["ngu"] = "Nahuatl Guerrero",
["ngv"] = "Nagumi",
["ngw"] = "Ngwaba",
["ngx"] = "Nggwahyi",
["ngy"] = "Tibea",
["ngz"] = "Ngungwel",
["nha"] = "Nhanda",
["nhb"] = "Beng",
["nhc"] = "Nahuatl Tabasco",
["nhd"] = "Chiripá",
["nhe"] = "Nahuatl Huasteca Timur",
["nhf"] = "Nhuwala",
["nhg"] = "Nahuatl Tetelcingo",
["nhh"] = "Nahari",
["nhi"] = "Nahuatl Zacatlán-Ahuacatlán-Tepetzintla",
["nhk"] = "Nahuatl Cosoleacaque",
["nhm"] = "Nahuatl Morelos",
["nhn"] = "Nahuatl Tengah",
["nho"] = "Takuu",
["nhp"] = "Nahuatl Pajapan",
["nhq"] = "Nahuatl Huaxcaleca",
["nhr"] = "Naro",
["nht"] = "Nahuatl Ometepec",
["nhu"] = "Noone",
["nhv"] = "Nahuatl Temascaltepec",
["nhw"] = "Nahuatl Huasteca Barat",
["nhx"] = "Nahuatl Mecayapan",
["nhy"] = "Nahuatl Oaxaca Utara",
["nhz"] = "Nahuatl Santa María La Alta",
["nia"] = "Nias",
["nib"] = "Nakame",
["nic-bco-pro"] = "Proto-Benue-Congo",
["nic-bod-pro"] = "Proto-Bantoid",
["nic-eov-pro"] = "Proto-Oti-Volta Timur",
["nic-gns-pro"] = "Proto-Gurunsi",
["nic-grf-pro"] = "Proto-Grassfields",
["nic-gur-pro"] = "Proto-Gur",
["nic-jkn-pro"] = "Proto-Jukunoid",
["nic-lcr-pro"] = "Proto-Cross River Bawah",
["nic-ogo-pro"] = "Proto-Ogoni",
["nic-ovo-pro"] = "Proto-Oti-Volta",
["nic-plt-pro"] = "Proto-Plateau",
["nic-pro"] = "Proto-Niger-Congo",
["nic-ubg-pro"] = "Proto-Ubangian",
["nic-ucr-pro"] = "Proto-Cross River Atas",
["nic-vco-pro"] = "Proto-Volta-Congo",
["nid"] = "Ngandi",
["nie"] = "Niellim",
["nif"] = "Nek",
["nig"] = "Ngalakan",
["nih"] = "Nyiha",
["nii"] = "Nii",
["nij"] = "Ngaju",
["nik"] = "Nicobar Selatan",
["nil"] = "Nila",
["nim"] = "Nilamba",
["nin"] = "Ninzo",
["nio"] = "Nganasan",
["niq"] = "Nandi",
["nir"] = "Nimboran",
["nis"] = "Nimi",
["nit"] = "Kolami Tenggara",
["niu"] = "Niue",
["niv"] = "Nivkh",
["niw"] = "Nimo",
["nix"] = "Hema",
["niy"] = "Ngiti",
["niz"] = "Ningil",
["nja"] = "Nzanyi",
["njb"] = "Nocte",
["njh"] = "Naga Lotha",
["nji"] = "Gudanji",
["njj"] = "Njen",
["njl"] = "Njalgulgule",
["njm"] = "Angami",
["njn"] = "Naga Liangmai",
["njo-jgl"] = "Ao Chungli",
["njo-mng"] = "Ao Mongsen",
["njr"] = "Njerep",
["njs"] = "Nisa",
["njt"] = "Pidgin Ndyuka-Trio",
["nju"] = "Ngadjunmaya",
["njx"] = "Kunyi",
["njy"] = "Njyem",
["njz"] = "Nyishi",
["nka"] = "Nkoya",
["nkb"] = "Naga Khoibu",
["nkc"] = "Nkongho",
["nkd"] = "Koireng",
["nke"] = "Duke",
["nkf"] = "Naga Inpui",
["nkg"] = "Nekgini",
["nkh"] = "Naga Khezha",
["nki"] = "Naga Thangal",
["nkj"] = "Nakai",
["nkk"] = "Nokuku",
["nkm"] = "Namat",
["nkn"] = "Nkangala",
["nko"] = "Nkonya",
["nkp"] = "Niuatoputapu",
["nkq"] = "Nkami",
["nkr"] = "Nukuoro",
["nks"] = "Asmat Utara",
["nkt"] = "Nyika",
["nku"] = "Kulango Bouna",
["nkw"] = "Nkutu",
["nkx"] = "Nkoroo",
["nkz"] = "Nkari",
["nl"] = "Belanda",
["nla"] = "Ngombale",
["nlc"] = "Nalca",
["nle"] = "Nyala Timur",
["nlg"] = "Gela",
["nli"] = "Grangali",
["nlj"] = "Nyali",
["nlk"] = "Yali Ninia",
["nll"] = "Nihali",
["nlm"] = "Mankiyali",
["nlo"] = "Ngwi",
["nlq"] = "Naga Lao",
["nlu"] = "Nchumbulu",
["nlv"] = "Nahuatl Orizaba",
["nlw"] = "Walangama",
["nlx"] = "Nahali",
["nly"] = "Nyamal",
["nlz"] = "Nalögo",
["nma"] = "Naga Maram",
["nmb"] = "Big Nambas",
["nmc"] = "Ngam",
["nmd"] = "Ndumu",
["nme"] = "Naga Mzieme",
["nmf"] = "Naga Tangkhul",
["nmg"] = "Kwasio",
["nmh"] = "Naga Monsang",
["nmi"] = "Nyam",
["nmj"] = "Ngombe (Republik Afrika Tengah)",
["nmk"] = "Namakura",
["nml"] = "Ndemli",
["nmm"] = "Manangba",
["nmn"] = "ǃXóõ",
["nmo"] = "Naga Moyon",
["nmp"] = "Nimanbur",
["nmq"] = "Nambya",
["nmr"] = "Nimbari",
["nms"] = "Letemboi",
["nmt"] = "Namonuito",
["nmu"] = "Maidu Timur Laut",
["nmv"] = "Ngamini",
["nmw"] = "Nimoa",
["nmx"] = "Nama",
["nmy"] = "Namuyi",
["nmz"] = "Nawdm",
["nn"] = "Nynorsk Norway",
["nna"] = "Nyangumarta",
["nnb"] = "Nande",
["nnc"] = "Nancere",
["nnd"] = "Ambae Barat",
["nne"] = "Ngandyera",
["nnf"] = "Ngaing",
["nng"] = "Naga Maring",
["nnh"] = "Ngiemboon",
["nni"] = "Nuaulu Utara",
["nnj"] = "Nyangatom",
["nnk"] = "Nankina",
["nnl"] = "Naga Rengma Utara",
["nnm"] = "Namia",
["nnn"] = "Ngete",
["nnp"] = "Wancho",
["nnq"] = "Ngindo",
["nnr"] = "Narungga",
["nnt"] = "Nanticoke",
["nnu"] = "Dwang",
["nnv"] = "Nukunu",
["nnw"] = "Nuni Selatan",
["nnx"] = "Ngong",
["nny"] = "Nyangga",
["nnz"] = "Nda'nda'",
["no"] = "Norway",
["noa"] = "Woun Meu",
["noc"] = "Nuk",
["nod"] = "Thai Utara",
["noe"] = "Nimadi",
["nof"] = "Nomane",
["nog"] = "Nogai",
["noh"] = "Nomu",
["noi"] = "Noiri",
["noj"] = "Nonuya",
["nok"] = "Nooksack",
["nol"] = "Nomlaki",
["non"] = "Norse Kuno",
["nop"] = "Numanggang",
["noq"] = "Ngongo",
["nos"] = "Nisu Timur",
["not"] = "Nomatsiguenga",
["nou"] = "Ewage-Notu",
["nov"] = "Novial",
["now"] = "Nyambo",
["noy"] = "Noy",
["noz"] = "Nayi",
["npa"] = "Nar Phu",
["npb"] = "Nupbikha",
["npg"] = "Ponyo",
["nph"] = "Phom",
["npl"] = "Nahuatl Puebla Tenggara",
["npn"] = "Mondropolon",
["npo"] = "Naga Pochuri",
["nps"] = "Nipsan",
["npu"] = "Naga Puimei",
["npx"] = "Noipä",
["npy"] = "Napu",
["nqg"] = "Ede Nago",
["nqk"] = "Kura Ede Nago",
["nql"] = "Ngendelengo",
["nqm"] = "Ndom",
["nqn"] = "Nen",
["nqo"] = "N'Ko",
["nqq"] = "Naga Kyan-Karyaw",
["nqy"] = "Akyaung Ari",
["nr"] = "Ndebele Selatan",
["nra"] = "Ngom",
["nrb"] = "Nara",
["nrc"] = "Noric",
["nre"] = "Naga Rengma Selatan",
["nrf"] = "Norman",
["nrg"] = "Narango",
["nri"] = "Naga Chokri",
["nrk"] = "Ngarla",
["nrl"] = "Ngarluma",
["nrm"] = "Narom",
["nrn"] = "Norn",
["nrp"] = "Picene Utara",
["nrr"] = "Norra",
["nrt"] = "Kalapuya Utara",
["nru"] = "Narua",
["nrx"] = "Ngurmbur",
["nrz"] = "Lala (New Guinea)",
["nsa"] = "Naga Sangtam",
["nsb"] = "Nossob Bawah",
["nsc"] = "Nshi",
["nsd"] = "Nisu Selatan",
["nse"] = "Nsenga",
["nsf"] = "Nisu Barat Laut",
["nsg"] = "Ngasa",
["nsh"] = "Ngoshie",
["nsi"] = "Bahasa Isyarat Nigeria",
["nsk"] = "Naskapi",
["nsl"] = "Bahasa Isyarat Norway",
["nsm"] = "Sema",
["nsn"] = "Nehan",
["nso"] = "Sotho Utara",
["nsp"] = "Bahasa Isyarat Nepal",
["nsq"] = "Miwok Sierra Utara",
["nsr"] = "Bahasa Isyarat Maritim",
["nss"] = "Nali",
["nst"] = "Tangsa",
["nsu"] = "Nahuatl Sierra Negra",
["nsw"] = "Navut",
["nsx"] = "Nsongo",
["nsy"] = "Nasal",
["nsz"] = "Nisenan",
["ntd"] = "Tidung Utara",
["ntg"] = "Ngantangarra",
["nti"] = "Natioro",
["ntj"] = "Ngaanyatjarra",
["ntk"] = "Ikoma",
["ntm"] = "Nateni",
["nto"] = "Ntomba",
["ntp"] = "Tepehuan Utara",
["ntr"] = "Delo",
["nts"] = "Natagaimas",
["ntu"] = "Natügu",
["ntw"] = "Nottoway",
["ntx"] = "Somra",
["nty"] = "Mantsi",
["nua"] = "Yuanga",
["nub-har"] = "Haraza",
["nub-pro"] = "Proto-Nubia",
["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"] = "Nguôn",
["nup"] = "Nupe",
["nuq"] = "Nukumanu",
["nur"] = "Nuguria",
["nus"] = "Nuer",
["nut"] = "Nùng",
["nuu"] = "Ngbundu",
["nuv"] = "Nuni Utara",
["nuw"] = "Nguluwan",
["nux"] = "Mehek",
["nuy"] = "Nunggubuyu",
["nuz"] = "Nahuatl Tlamacazapa",
["nv"] = "Navajo",
["nvh"] = "Nasarian",
["nvm"] = "Namiae",
["nvo"] = "Nyokon",
["nwa"] = "Nawathinehena",
["nwb"] = "Nyabwa",
["nwc"] = "Newar Klasik",
["nwe"] = "Ngwe",
["nwg"] = "Ngaiawang",
["nwi"] = "Tanna Barat Daya",
["nwm"] = "Nyamusa-Molo",
["nwo"] = "Nauo",
["nwr"] = "Nawaru",
["nwx"] = "Newar Pertengahan",
["nwy"] = "Nottoway-Meherrin",
["nxa"] = "Nauete",
["nxd"] = "Ngando (Congo)",
["nxe"] = "Nage",
["nxg"] = "Ngadha",
["nxi"] = "Nindi",
["nxl"] = "Nuaulu Selatan",
["nxm"] = "Numidia",
["nxn"] = "Ngawun",
["nxo"] = "Ndambomo",
["nxq"] = "Naxi",
["nxr"] = "Ninggerum",
["nxx"] = "Nafri",
["ny"] = "Chichewa",
["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"] = "Nyaw",
["nyx"] = "Nganyaywana",
["nyy"] = "Nyakyusa",
["nza"] = "Mbembe Tigon",
["nzb"] = "Njebi",
["nzd"] = "Nzadi",
["nzi"] = "Nzima",
["nzk"] = "Nzakara",
["nzm"] = "Naga Zeme",
["nzs"] = "Bahasa Isyarat New Zealand",
["nzu"] = "Teke Tengah",
["nzy"] = "Nzakambay",
["nzz"] = "Dogon Nanga Dama",
["oaa"] = "Orok",
["oac"] = "Oroch",
["oav"] = "Avar Kuno",
["obi"] = "Obispeño",
["obk"] = "Bontoc Selatan",
["obl"] = "Oblo",
["obm"] = "Moabite",
["obo"] = "Obo Manobo",
["obr"] = "Burma Kuno",
["obt"] = "Breton Kuno",
["obu"] = "Obulom",
["oc"] = "Occitan",
["oca"] = "Ocaina",
["och"] = "Cina Kuno",
["oco"] = "Cornwall Kuno",
["ocu"] = "Tlahuica",
["oda"] = "Odut",
["odk"] = "Od",
["odt"] = "Belanda Kuno",
["odu"] = "Odual",
["ofo"] = "Ofo",
["ofs"] = "Frisia Kuno",
["ofu"] = "Efutop",
["ogb"] = "Ogbia",
["ogc"] = "Ogbah",
["oge"] = "Georgia Kuno",
["ogg"] = "Ogbogolo",
["ogo"] = "Khana",
["ogu"] = "Ogbronuagum",
["ohu"] = "Hungary Kuno",
["oia"] = "Oirata",
["oin"] = "One Inebu",
["oj"] = "Ojibwe",
["ojb"] = "Ojibwa Barat Laut",
["ojc"] = "Ojibwa Tengah",
["ojg"] = "Ojibwa Timur",
["ojp"] = "Jepun Kuno",
["ojs"] = "Severn Ojibwa",
["ojv"] = "Jawa Ontong",
["ojw"] = "Ojibwa Barat",
["oka"] = "Okanagan",
["okb"] = "Okobo",
["okd"] = "Okodia",
["oke"] = "Okpe (Edo Barat Daya)",
["okg"] = "Kok-Paponk",
["okh"] = "Koresh-e Rostam",
["oki"] = "Okiek",
["okj"] = "Oko-Juwoi",
["okk"] = "Kwamtim One",
["okl"] = "Bahasa Isyarat Kentish Kuno",
["okm"] = "Korea Pertengahan",
["okn"] = "Oki-No-Erabu",
["oko"] = "Korea Kuno",
["okr"] = "Kirike",
["oks"] = "Oko-Eni-Osayen",
["oku"] = "Oku",
["okv"] = "Orokaiva",
["okx"] = "Okpe (Edo Barat Laut)",
["okz"] = "Khmer Kuno",
["old"] = "Mochi",
["ole"] = "Olekha",
["olm"] = "Oloma",
["olo"] = "Livvi",
["olr"] = "Olrat",
["olt"] = "Lithuania Kuno",
["olu"] = "Kuvale",
["om"] = "Oromo",
["oma"] = "Omaha-Ponca",
["omb"] = "Omba",
["omc"] = "Mochica",
["omg"] = "Omagua",
["omi"] = "Omi",
["omk"] = "Omok",
["oml"] = "Ombo",
["omn"] = "Minoan",
["omo"] = "Utarmbung",
["omp"] = "Manipur Kuno",
["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"] = "Chatino San Juan Quiahije",
["omq-tel"] = "Mixtec Teposcolula",
["omq-teo"] = "Chatino Teojomulco",
["omq-tri-pro"] = "Proto-Triqui",
["omq-zap-pro"] = "Proto-Zapotecan",
["omq-zpc-pro"] = "Proto-Zapotec",
["omr"] = "Marathi Kuno",
["omt"] = "Omotik",
["omu"] = "Omurano",
["omv-aro-pro"] = "Proto-Aroid",
["omv-diz-pro"] = "Proto-Dizoid",
["omv-pro"] = "Proto-Omotic",
["omw"] = "Tairora Selatan",
["omx"] = "Mon Kuno",
["ona"] = "Selk'nam",
["onb"] = "Lingao",
["one"] = "Oneida",
["ong"] = "Olo",
["oni"] = "Onin",
["onj"] = "Onjob",
["onk"] = "Kabore One",
["onn"] = "Onobasulu",
["ono"] = "Onondaga",
["onp"] = "Sartang",
["onr"] = "One Utara",
["ons"] = "Ono",
["ont"] = "Ontenu",
["onu"] = "Unua",
["onw"] = "Nubia Kuno",
["onx"] = "Pidgin Onin",
["ood"] = "O'odham",
["oog"] = "Ong",
["oon"] = "Önge",
["oor"] = "Oorlams",
["oos"] = "Ossetia Kuno",
["opa"] = "Okpamheri",
["opk"] = "Kopkaka",
["opm"] = "Oksapmin",
["opo"] = "Opao",
["opt"] = "Opata",
["opy"] = "Ofayé",
["or"] = "Odia",
["ora"] = "Oroha",
["ore"] = "Orejón",
["org"] = "Oring",
["orh"] = "Oroqen",
["oro"] = "Orokolo",
["orr"] = "Oruma",
["ors"] = "Orang Seletar",
["ort"] = "Oriya Adivasi",
["oru"] = "Ormuri",
["orv"] = "Slav Timur Kuno",
["orw"] = "Oro Win",
["orx"] = "Oro",
["orz"] = "Ormu",
["os"] = "Ossetia",
["osa"] = "Osage",
["osc"] = "Osci",
["osi"] = "Osing",
["osn"] = "Sunda Kuno",
["oso"] = "Ososo",
["osp"] = "Sepanyol Kuno",
["ost"] = "Osatu",
["osu"] = "One Selatan",
["osx"] = "Saxon Kuno",
["ota"] = "Turki Usmaniyah",
["otb"] = "Tibet Kuno",
["otd"] = "Ot Danum",
["ote"] = "Otomi Mezquital",
["oti"] = "Oti",
["otk"] = "Turk Kuno",
["otl"] = "Otomi Tilapa",
["otm"] = "Otomi Tanah Tinggi Timur",
["otn"] = "Otomi Tenango",
["oto-otm-pro"] = "Proto-Otomi",
["oto-pro"] = "Proto-Otomian",
["otq"] = "Otomi Querétaro",
["otr"] = "Otoro",
["ots"] = "Otomi Estado de México",
["ott"] = "Otomi Temoaya",
["otu"] = "Otuke",
["otw"] = "Ottawa",
["otx"] = "Otomi Texcatepec",
["oty"] = "Tamil Kuno",
["otz"] = "Otomi Ixtenco",
["oub"] = "Glio-Oubi",
["oue"] = "Oune",
["oui"] = "Uyghur Kuno",
["oum"] = "Ouma",
["ovd"] = "Älvdalen",
["owi"] = "Owiniga",
["owl"] = "Wales Kuno",
["oyb"] = "Oy",
["oyd"] = "Oyda",
["oym"] = "Wayampi",
["oyy"] = "Oya'oya",
["ozm"] = "Koonzime",
["pa"] = "Punjabi",
["paa-kmn"] = "Kómnzo",
["paa-kwn"] = "Kuwani",
["paa-lei"] = "Leitre",
["paa-nha-pro"] = "Proto-Halmahera Utara",
["paa-nun"] = "Nungon",
["pab"] = "Pareci",
["pac"] = "Pacoh",
["pad"] = "Paumarí",
["pae"] = "Pagibete",
["paf"] = "Paranawát",
["pag"] = "Pangasinan",
["pah"] = "Tenharim",
["pai"] = "Pe",
["pak"] = "Parakanã",
["pal"] = "Parsi Pertengahan",
["pam"] = "Kapampangan",
["pao"] = "Paiute Utara",
["pap"] = "Papiamentu",
["paq"] = "Parya",
["par"] = "Panamint",
["pas"] = "Papasena",
["pat"] = "Papitalai",
["pau"] = "Palau",
["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"] = "Pame Tengah",
["pbv"] = "Pnar",
["pby"] = "Pyu",
["pca"] = "Santa Inés Ahuatempan Popoloca",
["pcb"] = "Pear",
["pcc"] = "Bouyei",
["pcd"] = "Picard",
["pce"] = "Ruching Palaung",
["pcf"] = "Paliyan",
["pcg"] = "Paniya",
["pch"] = "Pardhan",
["pci"] = "Duruwa",
["pcj"] = "Parenga",
["pck"] = "Paite",
["pcl"] = "Pardhi",
["pcm"] = "Pijin Nigeria",
["pcn"] = "Piti",
["pcp"] = "Pacahuara",
["pcw"] = "Pyapun",
["pda"] = "Anam",
["pdc"] = "Jerman Pennsylvania",
["pdi"] = "Pa Di",
["pdn"] = "Fedan",
["pdo"] = "Padoe",
["pdt"] = "Plautdietsch",
["pdu"] = "Kayan",
["pea"] = "Peranakan Indonesian",
["peb"] = "Pomo Timur",
["ped"] = "Mala (New Guinea)",
["pee"] = "Taje",
["pef"] = "Pomo Timur Laut",
["peg"] = "Pengo",
["peh"] = "Bonan",
["pei"] = "Chichimeca-Jonaz",
["pej"] = "Pomo Utara",
["pek"] = "Penchal",
["pel"] = "Pekal",
["pem"] = "Phende",
["peo"] = "Parsi Kuno",
["pep"] = "Kunja",
["peq"] = "Pomo Selatan",
["pev"] = "Pémono",
["pex"] = "Petats",
["pey"] = "Petjo",
["pez"] = "Penan Timur",
["pfa"] = "Pááfang",
["pfe"] = "Peere",
["pga"] = "Arab Juba",
["pgd"] = "Gandhari",
["pgg"] = "Pangwali",
["pgi"] = "Pagi",
["pgk"] = "Rerep",
["pgl"] = "Primitive Irish",
["pgn"] = "Paelignian",
["pgs"] = "Pangseng",
["pgu"] = "Pagu",
["pgz"] = "Bahasa Isyarat Papua New Guinea",
["pha"] = "Pa-Hng",
["phd"] = "Phudagi",
["phg"] = "Phuong",
["phh"] = "Phukha",
["phi-din"] = "Agta Dinapigue",
["phi-kal-pro"] = "Proto-Kalamian",
["phi-nag"] = "Agta Nagtipunan",
["phi-pro"] = "Proto-Filipina",
["phk"] = "Phake",
["phl"] = "Phalura",
["phm"] = "Phimbi",
["phn"] = "Phoenicia",
["pho"] = "Phunoi",
["phq"] = "Phana'",
["phr"] = "Pahari-Potwari",
["pht"] = "Phu Thai",
["phu"] = "Phuan",
["phv"] = "Pahlavani",
["phw"] = "Phangduwali",
["pi"] = "Pali",
["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"] = "Baekje",
["pkg"] = "Pak-Tong",
["pkh"] = "Pankhu",
["pkn"] = "Pakanha",
["pko"] = "Pökoot",
["pkp"] = "Pukapukan",
["pkr"] = "Attapady Kurumba",
["pks"] = "Bahasa Isyarat Pakistan",
["pkt"] = "Maleng",
["pku"] = "Paku",
["pl"] = "Poland",
["pla"] = "Miani",
["plb"] = "Polonombauk",
["plc"] = "Central Palawano",
["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"] = "Palawano Barat Daya",
["plw"] = "Palawano Brooke's Point",
["ply"] = "Bolyu",
["plz"] = "Paluan",
["pma"] = "Paama",
["pmb"] = "Pambia",
["pmd"] = "Pallanganmiddang",
["pme"] = "Pwaamei",
["pmf"] = "Pamona",
["pmi"] = "Pumi Utara",
["pmj"] = "Pumi Selatan",
["pmk"] = "Pamlico",
["pml"] = "Sabir",
["pmm"] = "Pol",
["pmn"] = "Pam",
["pmo"] = "Pom",
["pmq"] = "Pame Utara",
["pmr"] = "Paynamar",
["pms"] = "Piemonte",
["pmt"] = "Tuamotuan",
["pmu"] = "Mirpur Panjabi",
["pmw"] = "Plains Miwok",
["pmx"] = "Poumei Naga",
["pmy"] = "Papuan Malay",
["pmz"] = "Southern Pame",
["pna"] = "Punan Bah-Biau",
["pnb"] = "Punjabi Barat",
["pnc"] = "Pannei",
["pnd"] = "Mpinda",
["pne"] = "Penan Barat",
["png"] = "Pongu",
["pnh"] = "Penrhyn",
["pni"] = "Aoheng",
["pnj"] = "Pinjarup",
["pnk"] = "Paunaca",
["pnl"] = "Paleni",
["pnm"] = "Punan Batu",
["pnn"] = "Pinai-Hagahai",
["pno"] = "Panobo",
["pnp"] = "Pancana",
["pnq"] = "Pana (Afrika Barat)",
["pnr"] = "Panim",
["pns"] = "Ponosakan",
["pnt"] = "Yunani Pontus",
["pnu"] = "Jiongnai Bunu",
["pnv"] = "Pinigura",
["pnw"] = "Panyjima",
["pnx"] = "Phong-Kniang",
["pny"] = "Pinyin",
["pnz"] = "Pana (Afrika Tengah)",
["poc"] = "Poqomam",
["poe"] = "San Juan Atzingo Popoloca",
["pof"] = "Poke",
["pog"] = "Potiguára",
["poh"] = "Poqomchi'",
["poi"] = "Highland Popoluca",
["pok"] = "Pokangá",
["pom"] = "Pomo Tenggara",
["pon"] = "Pohnpei",
["poo"] = "Pomo Tengah",
["pop"] = "Pwapwa",
["poq"] = "Texistepec Popoluca",
["pos"] = "Sayula Popoluca",
["pot"] = "Potawatomi",
["pov"] = "Kreol Guinea-Bissau",
["pow"] = "San Felipe Otlaltepec Popoloca",
["pox"] = "Polabia",
["poy"] = "Pogolo",
["poz-abi"] = "Abai",
["poz-bal"] = "Baliledo",
["poz-btk-pro"] = "Proto-Bungku-Tolaki",
["poz-cet-pro"] = "Proto-Melayu-Polenesia Tengah-Timur",
["poz-hce-pro"] = "Proto-Halmahera-Cenderawasih",
["poz-lgx-pro"] = "Proto-Lampungik",
["poz-mcm-pro"] = "Proto-Melayu-Chamic",
["poz-mic-pro"] = "Proto-Mikronesia",
["poz-mly-pro"] = "Proto-Melayik",
["poz-msa-pro"] = "Proto-Melayu-Sumbawa",
["poz-nes"] = "Nese",
["poz-oce-pro"] = "Proto-Oceania",
["poz-pcc-pro"] = "Proto-Pasifik Tengah",
["poz-pep-pro"] = "Proto-Polinesia Timur",
["poz-pnp-pro"] = "Proto-Polinesia Nukleus",
["poz-pol-pro"] = "Proto-Polinesia",
["poz-pro"] = "Proto-Melayu-Polenesia",
["poz-sml"] = "Melayu Sarawak",
["poz-ssw-pro"] = "Proto-Sulawesi Selatan",
["poz-swa-pro"] = "Proto-Sarawak Utara",
["poz-ter"] = "Melayu Terengganu",
["ppa"] = "Pao",
["ppe"] = "Papi",
["ppi"] = "Paipai",
["ppk"] = "Uma",
["ppl"] = "Pipil",
["ppm"] = "Papuma",
["ppn"] = "Papapana",
["ppo"] = "Folopa",
["ppq"] = "Pei",
["pps"] = "San Luís Temalacayuca Popoloca",
["ppt"] = "Pa",
["ppu"] = "Papora",
["pqa"] = "Pa'a",
["pqe-pro"] = "Proto-Melayu-Polenesia Timur",
["pqm"] = "Malecite-Passamaquoddy",
["pra"] = "Prakrit",
["pra-niy"] = "Prakrit Niya",
["prc"] = "Parachi",
["pre"] = "Principe",
["prf"] = "Paranan",
["prg"] = "Prusia Kuno",
["prh"] = "Porohanon",
["pri"] = "Paicî",
["prk"] = "Parauk",
["prl"] = "Bahasa Isyarat Peru",
["prm"] = "Kibiri",
["prn"] = "Prasuni",
["pro"] = "Occitan Kuno",
["prq"] = "Ashéninka Perené",
["prr"] = "Puri",
["prt"] = "Phai",
["pru"] = "Puragi",
["prw"] = "Parawen",
["prx"] = "Purik",
["prz"] = "Bahasa Isyarat Providencia",
["ps"] = "Pashto",
["psa"] = "Asue Awyu",
["psc"] = "Bahasa Isyarat Parsi",
["psd"] = "Plains Indian Sign Language",
["pse"] = "Melayu Barisan Selatan",
["psg"] = "Bahasa Isyarat Pulau Pinang",
["psh"] = "Pashayi Barat Daya",
["psi"] = "Pashayi Tenggara",
["psl"] = "Bahasa Isyarat Puerto Rico",
["psm"] = "Pauserna",
["psn"] = "Panasuan",
["pso"] = "Bahasa Isyarat Poland",
["psp"] = "Bahasa Isyarat Filipina",
["psq"] = "Pasi",
["psr"] = "Bahasa Isyarat Portugis",
["pss"] = "Kaulong",
["psw"] = "Port Sandwich",
["psy"] = "Piscataway",
["pt"] = "Portugis",
["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"] = "Paiwan",
["pwo"] = "Pwo Barat",
["pwr"] = "Powari",
["pww"] = "Pwo Utara",
["pxm"] = "Quetzaltepec Mixe",
["pye"] = "Pye Krumen",
["pym"] = "Fyam",
["pyn"] = "Poyanáwa",
["pys"] = "Bahasa Isyarat Paraguay",
["pyu"] = "Puyuma",
["pyx"] = "Tircul",
["pyy"] = "Pyen",
["pzh"] = "Pazeh",
["pzn"] = "Para Naga",
["qfa-adm-pro"] = "Proto-Andaman Besar",
["qfa-bet-pro"] = "Proto-Be-Tai",
["qfa-cka-pro"] = "Proto-Chukotko-Kamchatka",
["qfa-hur-pro"] = "Proto-Hurro-Urartia",
["qfa-kad-pro"] = "Proto-Kadu",
["qfa-kms-pro"] = "Proto-Kam-Sui",
["qfa-kor-pro"] = "Proto-Korea",
["qfa-kra-pro"] = "Proto-Kra",
["qfa-lic-pro"] = "Proto-Hlai",
["qfa-onb-pro"] = "Proto-Be",
["qfa-ong-pro"] = "Proto-Onga",
["qfa-tak-pro"] = "Proto-Kra-Dai",
["qfa-yen-pro"] = "Proto-Yenisei",
["qfa-yuk-pro"] = "Proto-Yukaghir",
["qu"] = "Quechua",
["qua"] = "Quapaw",
["quc"] = "K'iche'",
["qui"] = "Quileute",
["qum"] = "Sipakapense",
["qun"] = "Quinault",
["quq"] = "Quinqui",
["quv"] = "Sacapulteco",
["qvy"] = "Queyu",
["qwc"] = "Quechua Klasik",
["qwe-kch"] = "Kichwa",
["qwe-pro"] = "Proto-Quechua",
["qwm"] = "Kipchak",
["qwt"] = "Kwalhioqua-Tlatskanai",
["qxs"] = "Southern Qiang",
["qya"] = "Quenya",
["qyp"] = "Quiripi",
["raa"] = "Dungmali",
["rab"] = "Chamling",
["rac"] = "Rasawa",
["rad"] = "Rade",
["raf"] = "Meohang Barat",
["rag"] = "Logooli",
["rah"] = "Rabha",
["rai"] = "Ramoaaina",
["raj"] = "Rajasthan",
["rak"] = "Tulu-Bohuai",
["ral"] = "Ralte",
["ram"] = "Canela",
["ran"] = "Riantana",
["rao"] = "Rao",
["rap"] = "Rapa Nui",
["raq"] = "Saam",
["rar"] = "Rarotonga",
["ras"] = "Tegali",
["rat"] = "Razajerdi",
["rau"] = "Raute",
["rav"] = "Sampang",
["raw"] = "Rawang",
["rax"] = "Rang",
["ray"] = "Rapa",
["raz"] = "Rahambuu",
["rbb"] = "Rumai Palaung",
["rbk"] = "Bontoc Utara",
["rbl"] = "Bikol Miraya",
["rcf"] = "Perancis Kreol Réunion",
["rdb"] = "Rudbari",
["rea"] = "Rerau",
["reb"] = "Rembong",
["ree"] = "Kayan Rejang",
["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"] = "Yunani Romani",
["rgk"] = "Rangkas",
["rgn"] = "Romagnol",
["rgr"] = "Resígaro",
["rgs"] = "Roglai Selatan",
["rgu"] = "Ringgou",
["rhg"] = "Rohingya",
["rhp"] = "Yahang",
["ria"] = "Reang",
["rif"] = "Tarifit",
["ril"] = "Riang",
["rim"] = "Nyaturu",
["rin"] = "Nungu",
["rir"] = "Ribun",
["rit"] = "Ritarungo",
["riu"] = "Riung",
["rjg"] = "Rajong",
["rji"] = "Raji",
["rjs"] = "Rajbanshi",
["rka"] = "Kraol",
["rkb"] = "Rikbaktsa",
["rkh"] = "Rakahanga-Manihiki",
["rki"] = "Rakhine",
["rkm"] = "Marka",
["rkt"] = "Kamta",
["rkw"] = "Arakwal",
["rm"] = "Romansh",
["rma"] = "Rama",
["rmb"] = "Rembarunga",
["rmc"] = "Romani Carpathia",
["rmd"] = "Denmark Pengembara",
["rme"] = "Angloromani",
["rmf"] = "Romani Finland Kalo",
["rmg"] = "Norway Pengembara",
["rmh"] = "Murkim",
["rmi"] = "Lomavren",
["rmk"] = "Romkun",
["rml"] = "Romani Baltik",
["rmm"] = "Roma",
["rmn"] = "Romani Balkan",
["rmo"] = "Romani Sinte",
["rmp"] = "Rempi",
["rmq"] = "Caló",
["rms"] = "Bahasa Isyarat Romania",
["rmt"] = "Domari",
["rmu"] = "Tavringer Romani",
["rmv"] = "Romanova",
["rmw"] = "Romani Wales",
["rmx"] = "Romam",
["rmy"] = "Romani Vlax",
["rmz"] = "Marma",
["rnd"] = "Ruwund",
["rng"] = "Ronga",
["rnl"] = "Ranglong",
["rnn"] = "Roon",
["rnp"] = "Rongpo",
["rnw"] = "Rungwa",
["ro"] = "Romania",
["roa-ang"] = "Angevin",
["roa-bbn"] = "Bourbonnais-Berrichon",
["roa-brg"] = "Bourguignon",
["roa-can"] = "Cantabrian",
["roa-cha"] = "Champenois",
["roa-fcm"] = "Franc-Comtois",
["roa-gal"] = "Gallo",
["roa-gib"] = "Gallo-Itali Basilicata",
["roa-gis"] = "Gallo-Itali Sicily",
["roa-leo"] = "Leonese",
["roa-lor"] = "Lorrain",
["roa-oca"] = "Catalan Kuno",
["roa-ole"] = "Leonese Kuno",
["roa-ona"] = "Navarro-Aragon Kuno",
["roa-opt"] = "Galicia-Portugis Kuno",
["roa-orl"] = "Orléanais",
["roa-poi"] = "Poitevin-Saintongeais",
["roa-tar"] = "Tarantino",
["rob"] = "Tae'",
["roc"] = "Roglai Cacgia",
["rod"] = "Rogo",
["roe"] = "Ronji",
["rof"] = "Rombo",
["rog"] = "Roglai Utara",
["rol"] = "Romblomanon",
["rom"] = "Romani",
["roo"] = "Rotokas",
["rop"] = "Kriol",
["ror"] = "Rongga",
["rou"] = "Runga",
["row"] = "Dela-Oenale",
["rpn"] = "Repanbitip",
["rpt"] = "Rapting",
["rri"] = "Ririo",
["rro"] = "Roro",
["rrt"] = "Arritinngithigh",
["rsb"] = "Romano-Serbia",
["rsk"] = "Rusyn Pannonia",
["rsl"] = "Bahasa Isyarat Rusia",
["rsm"] = "Bahasa Isyarat Miriwoong",
["rtc"] = "Rungtu",
["rth"] = "Ratahan",
["rtm"] = "Rotuma",
["rtw"] = "Rathawi",
["ru"] = "Rusia",
["rub"] = "Gungu",
["ruc"] = "Ruuli",
["rue"] = "Rusyn",
["ruf"] = "Luguru",
["rug"] = "Roviana",
["ruh"] = "Ruga",
["rui"] = "Rufiji",
["ruk"] = "Che",
["ruo"] = "Istro-Romania",
["rup"] = "Aromania",
["ruq"] = "Megleno-Romania",
["rut"] = "Rutul",
["ruu"] = "Lanas Lobu",
["ruy"] = "Mala (Nigeria)",
["ruz"] = "Ruma",
["rw"] = "Rwanda-Rundi",
["rwa"] = "Rawo",
["rwk"] = "Rwa",
["rwm"] = "Amba",
["rwo"] = "Rawa",
["rxd"] = "Ngardi",
["rxw"] = "Karuwali",
["ryn"] = "Amami Ōshima Utara",
["rys"] = "Yaeyama",
["ryu"] = "Okinawa",
["rzh"] = "Razihi",
["sa"] = "Sanskrit",
["saa"] = "Saba",
["sab"] = "Buglere",
["sac"] = "Fox",
["sad"] = "Sandawe",
["sae"] = "Sabanê",
["saf"] = "Safaliba",
["sah"] = "Yakut",
["sai-all"] = "Allentiac",
["sai-and"] = "Andoquero",
["sai-ayo"] = "Ayomán",
["sai-bae"] = "Baenan",
["sai-bag"] = "Bagua",
["sai-bet"] = "Betoi",
["sai-bor-pro"] = "Proto-Bora",
["sai-cac"] = "Cacán",
["sai-caq"] = "Caranqui",
["sai-car-pro"] = "Proto-Carib",
["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-Jê Tengah",
["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-Jê Utara",
["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-Jê Selatan",
["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 (Amerika Selatan)",
["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"] = "Santal",
["sau"] = "Saleman",
["sav"] = "Saafi-Saafi",
["saw"] = "Sawi",
["sax"] = "Sa",
["say"] = "Saya",
["saz"] = "Saurashtra",
["sba"] = "Ngambay",
["sbb"] = "Simbo",
["sbc"] = "Gele'",
["sbd"] = "Samo Selatan",
["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"] = "Sardinia",
["scb"] = "Chut",
["sce"] = "Dongxiang",
["scf"] = "Perancis Kreol San Miguel",
["scg"] = "Sanggau",
["sch"] = "Sakachep",
["sci"] = "Melayu Sri Lanka",
["sck"] = "Sadri",
["scl"] = "Shina",
["scn"] = "Sicilia",
["sco"] = "Scots",
["scp"] = "Yolmo",
["scq"] = "Sa'och",
["scs"] = "Slavey Utara",
["scu"] = "Shumcho",
["scv"] = "Sheni",
["scw"] = "Sha",
["scx"] = "Sicel",
["sd"] = "Sindhi",
["sda"] = "Toraja-Sa'dan",
["sdb"] = "Shabak",
["sdc"] = "Sassari",
["sde"] = "Surubu",
["sdf"] = "Sarli",
["sdg"] = "Savi",
["sdh"] = "Kurdi Selatan",
["sdj"] = "Suundi",
["sdk"] = "Sos Kundi",
["sdl"] = "Saudi Arabian Sign Language",
["sdm"] = "Semandang",
["sdn"] = "Gallura",
["sdo"] = "Bidayuh Bukar-Sadong",
["sdp"] = "Sherdukpen",
["sdr"] = "Oraon Sadri",
["sds"] = "Barbar Tunisia",
["sdu"] = "Sarudu",
["sdv-daj-pro"] = "Proto-Daju",
["sdv-eje-pro"] = "Proto-Jebel Timur",
["sdv-nil-pro"] = "Proto-Nilotik",
["sdv-nyi-pro"] = "Proto-Nyima",
["sdv-tmn-pro"] = "Proto-Taman",
["sdx"] = "Melanau Sibu",
["se"] = "Sami Utara",
["sea"] = "Semai",
["sec"] = "Sechelt",
["sed"] = "Sedang",
["see"] = "Seneca",
["sef"] = "Cebaara Senoufo",
["seg"] = "Segeju",
["seh"] = "Sena",
["sei"] = "Seri",
["sej"] = "Sene",
["sek"] = "Sekani",
["sel-nor"] = "Selkup Utara",
["sel-pro"] = "Proto-Selkup",
["sel-sou"] = "Selkup Selatan",
["sem-amm"] = "Ammon",
["sem-amo"] = "Amor",
["sem-cha"] = "Chaha",
["sem-dad"] = "Dadan",
["sem-dum"] = "Dumait",
["sem-has"] = "Hasait",
["sem-his"] = "Hisma",
["sem-mhr"] = "Muher",
["sem-pro"] = "Proto-Semitik",
["sem-saf"] = "Safait",
["sem-sam"] = "Samal",
["sem-srb"] = "Arab Selatan Kuno",
["sem-tay"] = "Tayman",
["sem-tha"] = "Thamud",
["sem-wes-pro"] = "Proto-Semitik Barat",
["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"] = "Chin Senthang",
["sfb"] = "French Belgian Sign Language",
["sfm"] = "Small Flowery Miao",
["sfs"] = "Bahasa Isyarat Afrika Selatan",
["sfw"] = "Sehwi",
["sg"] = "Sango",
["sga"] = "Ireland Kuno",
["sgb"] = "Mag-Anchi Ayta",
["sgc"] = "Kipsigis",
["sgd"] = "Surigaonon",
["sge"] = "Segai",
["sgg"] = "Swiss-German Sign Language",
["sgh"] = "Shughni",
["sgi"] = "Suga",
["sgk"] = "Sangkong",
["sgm"] = "Singa",
["sgp"] = "Singpho",
["sgr"] = "Sangisari",
["sgs"] = "Samogitia",
["sgt"] = "Brokpake",
["sgu"] = "Salas",
["sgw"] = "Sebat Bet Gurage",
["sgx"] = "Sierra Leone Sign Language",
["sgy"] = "Sanglechi",
["sgz"] = "Sursurunga",
["sh"] = "Serbo-Croatia",
["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"] = "Shan",
["sho"] = "Shanga",
["shp"] = "Shipibo-Conibo",
["shq"] = "Sala",
["shr"] = "Shi",
["shs"] = "Shuswap",
["sht"] = "Shasta",
["shu"] = "Arab Chad",
["shv"] = "Shehri",
["shw"] = "Shwai",
["shx"] = "She",
["shy"] = "Tachawit",
["shz"] = "Syenara Senoufo",
["si"] = "Sinhala",
["sia"] = "Sami Akkala",
["sib"] = "Sebop",
["sid"] = "Sidamo",
["sie"] = "Simaa",
["sif"] = "Siamou",
["sig"] = "Paasaal",
["sih"] = "Zire",
["sii"] = "Shom Peng",
["sij"] = "Numbami",
["sik"] = "Sikiana",
["sil"] = "Tumulung Sisaala",
["sim"] = "Seim",
["sio-pro"] = "Proto-Siouan",
["sip"] = "Sikkim",
["siq"] = "Sonia",
["sir"] = "Siri",
["sis"] = "Siuslaw",
["sit-aao-pro"] = "Proto-Naga Tengah",
["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-Ersu",
["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-Kho-Bwa Barat",
["sit-kon-pro"] = "Proto-Naga Utara",
["sit-liz"] = "Lizu",
["sit-lnj"] = "Longjia",
["sit-lrn"] = "Luren",
["sit-luu-pro"] = "Proto-Luish",
["sit-nas-pro"] = "Proto-Naish",
["sit-prn"] = "Puiron",
["sit-pro"] = "Proto-Sino-Tibet",
["sit-sit"] = "Situ",
["sit-tam-pro"] = "Proto-Tamang",
["sit-tan-pro"] = "Proto-Tani",
["sit-tgm"] = "Tangam",
["sit-tng-pro"] = "Proto-Tangkhul",
["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",
["sjd"] = "Sami Kildin",
["sje"] = "Sami Pite",
["sjg"] = "Assangori",
["sjk"] = "Sami Kemi",
["sjl"] = "Miji",
["sjm"] = "Mapun",
["sjn"] = "Sindarin",
["sjo"] = "Xibe",
["sjp"] = "Surjapuri",
["sjr"] = "Siar-Lak",
["sjs"] = "Senhaja De Srair",
["sjt"] = "Sami Ter",
["sju"] = "Sami Ume",
["sjw"] = "Shawnee",
["sk"] = "Slovak",
["ska"] = "Skagit",
["skb"] = "Saek",
["skc"] = "Ma Manda",
["skd"] = "Miwok Sierra Selatan",
["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"] = "Maia",
["skt"] = "Sakata",
["sku"] = "Sakao",
["skv"] = "Skou",
["skw"] = "Belanda Kreol Skepi",
["skx"] = "Seko Padang",
["sky"] = "Sikaiana",
["skz"] = "Sekar",
["sl"] = "Slovenia",
["sla-pro"] = "Proto-Slav",
["slc"] = "Saliba (Colombia)",
["sld"] = "Sissala",
["sle"] = "Sholaga",
["slf"] = "Swiss-Italian Sign Language",
["slg"] = "Selungai Murut",
["slh"] = "Salish Puget Sound Selatan",
["slj"] = "Salumá",
["sll"] = "Salt-Yui",
["slm"] = "Pangutaran Sama",
["sln"] = "Salinan",
["slp"] = "Lamaholot",
["slq"] = "Salchuq",
["slr"] = "Salar",
["sls"] = "Singapore Sign Language",
["slt"] = "Sila",
["slu"] = "Selaru",
["slw"] = "Sialum",
["slx"] = "Salampasu",
["sly"] = "Selayar",
["slz"] = "Ma'ya",
["sm"] = "Samoa",
["sma"] = "Sami Selatan",
["smb"] = "Simbari",
["smc"] = "Som",
["smd"] = "Sama",
["smf"] = "Auwe",
["smg"] = "Simbali",
["smh"] = "Samei",
["smi-pro"] = "Proto-Sami",
["smj"] = "Sami Lule",
["smk"] = "Bolinao",
["sml"] = "Bajau Laut",
["smm"] = "Musasa",
["smn"] = "Sami Inari",
["smp"] = "Ibrani Samaria",
["smq"] = "Samo",
["smr"] = "Simeulue",
["sms"] = "Sami Skolt",
["smt"] = "Simte",
["smu"] = "Somray",
["smv"] = "Samvedi",
["smw"] = "Sumbawa",
["smx"] = "Samba",
["smy"] = "Semnani",
["smz"] = "Simeku",
["sn"] = "Shona",
["snb"] = "Sebuyau",
["snc"] = "Sinaugoro",
["sne"] = "Bidayuh Bau",
["snf"] = "Noon",
["sng"] = "Sanga (Congo)",
["sni"] = "Sensi",
["snj"] = "Riverain Sango",
["snk"] = "Soninke",
["snl"] = "Sangil",
["snm"] = "Ma'di Selatan",
["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"] = "Somali",
["soa"] = "Thai Song",
["sob"] = "Sobei",
["soc"] = "Soko",
["sod"] = "Songoora",
["soe"] = "Songomeno",
["sog"] = "Sogdia",
["soh"] = "Aka (Sudan)",
["soi"] = "Sonha",
["sok"] = "Sokoro",
["sol"] = "Solos",
["son-pro"] = "Proto-Songhai",
["soo"] = "Nsong",
["sop"] = "Songe",
["soq"] = "Kanasi",
["sor"] = "Somrai",
["sos"] = "Seenku",
["sou"] = "Thai Selatan",
["sov"] = "Sonsorol",
["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"] = "Picenum Selatan",
["spy"] = "Sabaot",
["sq"] = "Albania",
["sqa"] = "Shama-Sambuga",
["sqh"] = "Shau",
["sqj-pro"] = "Proto-Albania",
["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"] = "Murut Serudung",
["srl"] = "Isirawa",
["srm"] = "Saramaccan",
["srn"] = "Seranan",
["srq"] = "Sirionó",
["srr"] = "Serer",
["srs"] = "Tsuut'ina",
["srt"] = "Sauri",
["sru"] = "Suruí",
["srv"] = "Waray Sorsogon",
["srw"] = "Serua",
["srx"] = "Sirmauri",
["sry"] = "Sera",
["srz"] = "Shahmirzadi",
["ss"] = "Swazi",
["ssa-klk-pro"] = "Proto-Kuliak",
["ssa-kom-pro"] = "Proto-Koma",
["ssa-pro"] = "Proto-Nilo-Sahara",
["ssb"] = "Bajau Pantai Timur",
["ssc"] = "Suba-Simbiti",
["ssd"] = "Siroi",
["sse"] = "Balangingi",
["ssf"] = "Thao",
["ssg"] = "Seimat",
["ssh"] = "Arab Syihuh",
["ssi"] = "Sansi",
["ssj"] = "Sausi",
["ssk"] = "Sunam",
["ssl"] = "Sisaala Barat",
["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"] = "Saho",
["ssz"] = "Sengseng",
["st"] = "Sotho",
["stb"] = "Subanen Utara",
["std"] = "Sentinel",
["ste"] = "Liana-Seti",
["stf"] = "Seta",
["stg"] = "Trieng",
["sth"] = "Shelta",
["sti"] = "Bulo Stieng",
["stj"] = "Matya Samo",
["stk"] = "Arammba",
["stm"] = "Setaman",
["stn"] = "Owa",
["sto"] = "Stoney",
["stp"] = "Tepehuan Tenggara",
["stq"] = "Frisia Saterland",
["str"] = "Saanich",
["sts"] = "Shumashti",
["stt"] = "Budeh Stieng",
["stu"] = "Samtao",
["stv"] = "Silt'e",
["stw"] = "Satawal",
["sty"] = "Tatar Siberia",
["su"] = "Sunda",
["sua"] = "Sulka",
["sub"] = "Suku",
["suc"] = "Subanon Barat",
["sue"] = "Suena",
["sug"] = "Suganga",
["sui"] = "Suki",
["suk"] = "Sukuma",
["suq"] = "Suri",
["sur"] = "Mwaghavul",
["sus"] = "Susu",
["sut"] = "Subtiaba",
["suv"] = "Sulung",
["suw"] = "Sumbwa",
["sux"] = "Sumeria",
["suy"] = "Suyá",
["suz"] = "Sunwar",
["sv"] = "Sweden",
["sva"] = "Svan",
["svb"] = "Ulau-Suain",
["svc"] = "Inggeris Kreol Vincent",
["sve"] = "Serili",
["svk"] = "Slovakian Sign Language",
["svm"] = "Slavomolisano",
["svs"] = "Savosavo",
["svx"] = "Skalvian",
["sw"] = "Swahili",
["swb"] = "Comoros Maore",
["swf"] = "Sere",
["swg"] = "Swabia",
["swi"] = "Sui",
["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"] = "Kalapuya Selatan",
["sxl"] = "Selonia",
["sxm"] = "Samre",
["sxn"] = "Sangir",
["sxo"] = "Sorothaptic",
["sxr"] = "Saaroa",
["sxs"] = "Sasaru",
["sxw"] = "Saxwe Gbe",
["sya"] = "Siang",
["syb"] = "Subanen Tengah",
["syc"] = "Suryani Klasik",
["syd-pro"] = "Proto-Samoyed",
["syi"] = "Seki",
["syk"] = "Sukur",
["syl"] = "Sylhet",
["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"] = "Silesia",
["szn"] = "Sula",
["szp"] = "Suabo",
["szv"] = "Isubu",
["szw"] = "Sawai",
["szy"] = "Sakizaya",
["ta"] = "Tamil",
["taa"] = "Lower Tanana",
["tab"] = "Tabasaran",
["tac"] = "Lowland Tarahumara",
["tad"] = "Tause",
["tae"] = "Tariana",
["taf"] = "Tapirapé",
["tag"] = "Tagoi",
["tai-pro"] = "Proto-Tai",
["tai-swe-pro"] = "Proto-Tai Barat Daya",
["taj"] = "Tamang Timur",
["tak"] = "Tala",
["tal"] = "Tal",
["tan"] = "Tangale",
["tao"] = "Yami",
["tap"] = "Taabwa",
["tar"] = "Tarahumara Tengah",
["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"] = "Tairora Utara",
["tbh"] = "Thurawal",
["tbi"] = "Gaam",
["tbj"] = "Tiang",
["tbk"] = "Calamian Tagbanwa",
["tbl"] = "Tboli",
["tbm"] = "Tagbu",
["tbn"] = "Barro Negro Tunebo",
["tbo"] = "Tawala",
["tbp"] = "Taworta",
["tbq-bdg-pro"] = "Proto-Bodo-Garo",
["tbq-blg"] = "Bailang",
["tbq-brm-pro"] = "Proto-Burma",
["tbq-gkh"] = "Gokhy",
["tbq-kuk-pro"] = "Proto-Kuki-Chin",
["tbq-lal-pro"] = "Proto-Lalo",
["tbq-laz"] = "Laze",
["tbq-lob-pro"] = "Proto-Lolo-Burma",
["tbq-lol-pro"] = "Proto-Lolo",
["tbq-mil"] = "Milang",
["tbq-mor"] = "Moran",
["tbq-ngo"] = "Ngochang",
["tbr"] = "Tumtum",
["tbs"] = "Tanguat",
["tbt"] = "Kitembo",
["tbu"] = "Tubar",
["tbv"] = "Tobo",
["tbw"] = "Tagbanwa",
["tbx"] = "Kapin",
["tby"] = "Tabaru",
["tbz"] = "Ditammari",
["tca"] = "Ticuna",
["tcb"] = "Tanacross",
["tcc"] = "Datooga",
["tcd"] = "Tafi",
["tce"] = "Tutchone Selatan",
["tcf"] = "Tlapanec Malinaltepec",
["tcg"] = "Tamagario",
["tch"] = "Inggeris Kreol Turks dan Caicos",
["tci"] = "Wára",
["tck"] = "Tchitchege",
["tcl"] = "Taman (Myanmar)",
["tcm"] = "Tanahmerah",
["tco"] = "Taungyo",
["tcp"] = "Chin Tawr",
["tcq"] = "Kaiy",
["tcs"] = "Kreol Selat Torres",
["tct"] = "T'en",
["tcu"] = "Tarahumara Tenggara",
["tcw"] = "Tecpatlán Totonac",
["tcx"] = "Toda",
["tcy"] = "Tulu",
["tcz"] = "Chin Thado",
["tda"] = "Tagdal",
["tdb"] = "Panchpargania",
["tdc"] = "Emberá-Tadó",
["tdd"] = "Tai Nüa",
["tde"] = "Tiranige Diga Dogon",
["tdf"] = "Talieng",
["tdg"] = "Tamang Barat",
["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"] = "Telugu",
["tea"] = "Temiar",
["teb"] = "Tetete",
["tec"] = "Terik",
["ted"] = "Tepo Krumen",
["tee"] = "Tepehua Huehuetla",
["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"] = "Tetum",
["teu"] = "Soo",
["tev"] = "Teor",
["tew"] = "Tewa",
["tex"] = "Tennet",
["tey"] = "Tulishi",
["tez"] = "Tetserret",
["tfi"] = "Tofin Gbe",
["tfn"] = "Dena'ina",
["tfo"] = "Tefaro",
["tfr"] = "Teribe",
["tft"] = "Ternate",
["tg"] = "Tajik",
["tga"] = "Sagalla",
["tgb"] = "Tobilung",
["tgc"] = "Tigak",
["tgd"] = "Ciwogai",
["tge"] = "Tamang Gorkha Timur",
["tgf"] = "Chali",
["tgh"] = "Inggeris Kreol Tobago",
["tgi"] = "Lawunuia",
["tgn"] = "Tandaganon",
["tgo"] = "Sudest",
["tgp"] = "Tangoa",
["tgq"] = "Tring",
["tgr"] = "Tareng",
["tgs"] = "Nume",
["tgt"] = "Tagbanwa Tengah",
["tgu"] = "Tanggu",
["tgv"] = "Tingui-Boto",
["tgw"] = "Tagwana Senoufo",
["tgx"] = "Tagish",
["tgy"] = "Togoyo",
["th"] = "Thai",
["thc"] = "Tai Hang Tong",
["thd"] = "Kuuk Thaayorre",
["the"] = "Chitwania Tharu",
["thf"] = "Thangmi",
["thh"] = "Tarahumara Utara",
["thi"] = "Tai Long",
["thk"] = "Tharaka",
["thl"] = "Dangaura Tharu",
["thm"] = "Thavung",
["thn"] = "Thachanadan",
["thp"] = "Thompson",
["thq"] = "Kochila Tharu",
["thr"] = "Rana Tharu",
["ths"] = "Thakali",
["tht"] = "Tahltan",
["thu"] = "Thuri",
["thy"] = "Tha",
["ti"] = "Tigrinya",
["tic"] = "Tira",
["tif"] = "Tifal",
["tig"] = "Tigre",
["tih"] = "Murut Timugon",
["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"] = "Tiwa Selatan",
["tiy"] = "Tiruray",
["tiz"] = "Tai Hongjin",
["tja"] = "Tajuasohn",
["tjg"] = "Tunjung",
["tji"] = "Tujia Utara",
["tjl"] = "Tai Laing",
["tjm"] = "Timucua",
["tjn"] = "Tonjon",
["tjs"] = "Tujia Selatan",
["tju"] = "Tjurruru",
["tjw"] = "Chaap Wuurong",
["tk"] = "Turkmen",
["tka"] = "Truká",
["tkb"] = "Buksa",
["tkd"] = "Tukudede",
["tke"] = "Takwane",
["tkf"] = "Tukumanféd",
["tkl"] = "Tokelau",
["tkm"] = "Takelma",
["tkn"] = "Toku-No-Shima",
["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"] = "Tagalog",
["tla"] = "Tepehuan Barat Daya",
["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"] = "Tamang Barat Laut",
["tml"] = "Tamnim Citak",
["tmm"] = "Tai Thanh",
["tmn"] = "Taman (Indonesia)",
["tmo"] = "Temoq",
["tmq"] = "Tumleo",
["tms"] = "Tima",
["tmt"] = "Tasmate",
["tmu"] = "Iau",
["tmv"] = "Motembo",
["tmw"] = "Temuan",
["tmy"] = "Tami",
["tmz"] = "Tamanaku",
["tn"] = "Tswana",
["tna"] = "Tacana",
["tnb"] = "Tunebo Barat",
["tnc"] = "Tanimuca-Retuarã",
["tnd"] = "Angosturas Tunebo",
["tne"] = "Tinoc Kallahan",
["tng"] = "Tobanga",
["tnh"] = "Maiani",
["tni"] = "Tandia",
["tnk"] = "Kwamera",
["tnl"] = "Lenakel",
["tnm"] = "Tabla",
["tnn"] = "Tanna Utara",
["tno"] = "Toromono",
["tnp"] = "Whitesands",
["tnq"] = "Taíno",
["tnr"] = "Bedik",
["tns"] = "Tenis",
["tnt"] = "Tontemboan",
["tnu"] = "Tay Khang",
["tnv"] = "Tanchangya",
["tnw"] = "Tonsawang",
["tnx"] = "Tanema",
["tny"] = "Tongwe",
["tnz"] = "Ten'edn",
["to"] = "Tonga",
["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"] = "Tok Pisin",
["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"] = "Tupi Kuno",
["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"] = "Totonac Barat",
["tqu"] = "Touo",
["tqw"] = "Tonkawa",
["tr"] = "Turki",
["tra"] = "Tirahi",
["trb"] = "Terebu",
["trc"] = "Copala Triqui",
["trd"] = "Turi",
["tre"] = "Tarangan Timur",
["trf"] = "Inggeris Kreol Trinidad",
["trg"] = "Lishán Didán",
["trh"] = "Turaka",
["tri"] = "Trió",
["trj"] = "Toram",
["trk-dkh"] = "Dukhan",
["trk-eog"] = "Oghuz Awal Kuno",
["trk-oat"] = "Turki Anatolia Kuno",
["trk-pro"] = "Proto-Turkik",
["trl"] = "Traveller Scottish",
["trm"] = "Tregami",
["trn"] = "Trinitario",
["tro"] = "Tarao",
["trp"] = "Kokborok",
["trq"] = "San Martín Itunyoso Triqui",
["trr"] = "Taushiro",
["trs"] = "Chicahuaxtla Triqui",
["trt"] = "Tunggare",
["tru"] = "Turoyo",
["trv"] = "Taroko",
["trw"] = "Torwali",
["trx"] = "Tringgus",
["try"] = "Turung",
["trz"] = "Torá",
["ts"] = "Tsonga",
["tsa"] = "Tsaangi",
["tsb"] = "Tsamai",
["tsc"] = "Tswa",
["tsd"] = "Tsakonian",
["tse"] = "Bahasa Isyarat Tunisia",
["tsf"] = "Tamang Barat Daya",
["tsg"] = "Suluk",
["tsh"] = "Tsuvan",
["tsi"] = "Tsimshian",
["tsj"] = "Tshangla",
["tsl"] = "Ts'ün-Lao",
["tsm"] = "Bahasa Isyarat Turki",
["tsp"] = "Toussiana Utara",
["tsq"] = "Bahasa Isyarat Thai",
["tsr"] = "Akei",
["tss"] = "Bahasa Isyarat Taiwan",
["tsu"] = "Tsou",
["tsv"] = "Tsogo",
["tsw"] = "Tsishingini",
["tsx"] = "Mubami",
["tsy"] = "Bahasa Isyarat Tebul",
["tt"] = "Tatar",
["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"] = "Tutchone Utara",
["ttn"] = "Towei",
["tto"] = "Lower Ta'oih",
["ttp"] = "Tombelala",
["ttr"] = "Tera",
["tts"] = "Isan",
["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"] = "Tunebo Tengah",
["tug"] = "Tunia",
["tuh"] = "Taulil",
["tui"] = "Tupuri",
["tuj"] = "Tugutil",
["tul"] = "Tula",
["tum"] = "Tumbuka",
["tun"] = "Tunica",
["tuo"] = "Tucano",
["tup-gua-pro"] = "Proto-Tupi-Guarani",
["tup-kab"] = "Kabishiana",
["tup-kaw"] = "Kawahiva",
["tup-pro"] = "Proto-Tupia",
["tuq"] = "Tedaga",
["tus"] = "Tuscarora",
["tuu"] = "Tututni",
["tuv"] = "Turkana",
["tuw-alk"] = "Alchuka",
["tuw-bal"] = "Bala",
["tuw-kkl"] = "Kyakala",
["tuw-kli"] = "Kili",
["tuw-pro"] = "Proto-Tungus",
["tuw-sol"] = "Solon",
["tux"] = "Tuxináwa",
["tuy"] = "Tugen",
["tuz"] = "Turka",
["tva"] = "Vaghua",
["tvd"] = "Tsuvadi",
["tve"] = "Te'un",
["tvk"] = "Ambrym Tenggara",
["tvl"] = "Tuvalu",
["tvm"] = "Tela-Masbuar",
["tvn"] = "Tavoyan",
["tvo"] = "Tidore",
["tvs"] = "Taveta",
["tvt"] = "Tutsa Naga",
["tvu"] = "Tunen",
["tvw"] = "Sedoa",
["tvx"] = "Taivoan",
["tvy"] = "Timor Pidgin",
["twa"] = "Twana",
["twb"] = "Tawbuid Barat",
["twc"] = "Teshenawa",
["twe"] = "Teiwa",
["twf"] = "Taos",
["twg"] = "Tereweng",
["twh"] = "Tai Dón",
["twm"] = "Tawang Monpa",
["twn"] = "Twendi",
["two"] = "Tswapong",
["twp"] = "Ere",
["twq"] = "Tasawaq",
["twr"] = "Tarahumara Barat Daya",
["twt"] = "Turiwára",
["twu"] = "Termanu",
["tww"] = "Tuwari",
["twy"] = "Tawoyan",
["txa"] = "Tombonuo",
["txb"] = "Tocharia B",
["txc"] = "Tsetsaut",
["txe"] = "Totoli",
["txg"] = "Tangut",
["txh"] = "Thracian",
["txi"] = "Ikpeng",
["txj"] = "Tarjumo",
["txm"] = "Tomini",
["txn"] = "Tarangan Barat",
["txo"] = "Toto",
["txq"] = "Tii",
["txr"] = "Tartessian",
["txs"] = "Tonsea",
["txt"] = "Citak",
["txu"] = "Kayapó",
["txx"] = "Tatana",
["ty"] = "Tahiti",
["tya"] = "Tauya",
["tye"] = "Kyenga",
["tyh"] = "O'du",
["tyi"] = "Teke-Tsaayi",
["tyj"] = "Tai Do",
["tyl"] = "Thu Lao",
["tyn"] = "Kombai",
["typ"] = "Kuku-Thaypan",
["tyr"] = "Tai Daeng",
["tys"] = "Sapa",
["tyt"] = "Tày Tac",
["tyu"] = "Kua",
["tyv"] = "Tuva",
["tyx"] = "Teke-Tyee",
["tyz"] = "Tày",
["tza"] = "Bahasa Isyarat Tanzania",
["tzh"] = "Tzeltal",
["tzj"] = "Tz'utujil",
["tzl"] = "Talossan",
["tzm"] = "Tamazight Atlas Tengah",
["tzn"] = "Tugun",
["tzo"] = "Tzotzil",
["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"] = "Udi",
["udj"] = "Ujir",
["udl"] = "Uldeme",
["udm"] = "Udmurt",
["udu"] = "Uduk",
["ues"] = "Kioko",
["ufi"] = "Ufim",
["ug"] = "Uyghur",
["uga"] = "Ugarit",
["ugb"] = "Kuku-Ugbanh",
["uge"] = "Ughele",
["ugn"] = "Ugandan Sign Language",
["ugo"] = "Gong",
["ugy"] = "Uruguayan Sign Language",
["uha"] = "Uhami",
["uhn"] = "Damal",
["uis"] = "Uisai",
["uiv"] = "Iyive",
["uji"] = "Tanjijili",
["uk"] = "Ukraine",
["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"] = "Unserdeutsch",
["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"] = "Watut Utara",
["und"] = "tidak ditentukan",
["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"] = "Malakula Timur Laut",
["ur"] = "Urdu",
["ura"] = "Urarina",
["urb"] = "Urubú-Kaapor",
["urc"] = "Urningangg",
["ure"] = "Uru",
["urf"] = "Uradhi",
["urg"] = "Urigina",
["urh"] = "Urhobo",
["uri"] = "Urim",
["urj-fin-pro"] = "Proto-Finnik",
["urj-koo"] = "Komi Kuno",
["urj-kuk"] = "Kukkuzi",
["urj-kya"] = "Komi-Yazva",
["urj-mdv-pro"] = "Proto-Mordvinik",
["urj-prm-pro"] = "Proto-Permik",
["urj-pro"] = "Proto-Uralik",
["urj-ugr-pro"] = "Proto-Ugrik",
["urk"] = "Urak Lawoi'",
["url"] = "Urali",
["urm"] = "Urapmin",
["urn"] = "Uruangnirin",
["uro"] = "Ura (Papua 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"] = "Uvea Barat",
["uvh"] = "Uri",
["uvl"] = "Lote",
["uwa"] = "Kuku-Uwanh",
["uya"] = "Doko-Uyanga",
["uz"] = "Uzbek",
["vaa"] = "Vaagri Booli",
["vae"] = "Vale",
["vag"] = "Vagla",
["vah"] = "Varhadi",
["vai"] = "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"] = "Bontoc Barat Daya",
["ve"] = "Venda",
["vec"] = "Veneto",
["ved"] = "Veddah",
["vem"] = "Vemgo-Mabas",
["veo"] = "Ventureño",
["vep"] = "Veps",
["ver"] = "Mom Jango",
["vgr"] = "Vaghri",
["vgt"] = "Flemish Sign Language",
["vi"] = "Vietnam",
["vic"] = "Kreol Kepulauan Virgin",
["vid"] = "Vidunda",
["vif"] = "Vili",
["vig"] = "Viemo",
["vil"] = "Vilela",
["vis"] = "Vishavan",
["vit"] = "Viti",
["viv"] = "Iduna",
["vka"] = "Kariyarra",
["vki"] = "Ija-Zuba",
["vkj"] = "Kujarge",
["vkk"] = "Kaur",
["vkl"] = "Kulisusu",
["vkm"] = "Kamakan",
["vko"] = "Kodeoha",
["vkp"] = "Portugis Kreol Korlai",
["vkt"] = "Tenggarong Kutai Malay",
["vku"] = "Kurrama",
["vlp"] = "Valpei",
["vls"] = "Flemish Barat",
["vma"] = "Martuthunira",
["vmb"] = "Mbabaram",
["vmc"] = "Mixtec Juxtlahuaca",
["vmd"] = "Mudu Koraga",
["vme"] = "Masela Timur",
["vmf"] = "Franconia Timur",
["vmg"] = "Minigir",
["vmh"] = "Maraghei",
["vmi"] = "Miwa",
["vmj"] = "Mixtec Ixtayutla",
["vmk"] = "Makhuwa-Shirima",
["vml"] = "Malgana",
["vmm"] = "Mixtec Mitlatongo",
["vmp"] = "Mazatec Soyaltepec",
["vmq"] = "Mixtec Soyaltepec",
["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"] = "Volapük",
["vor"] = "Voro",
["vot"] = "Vot",
["vra"] = "Vera'a",
["vro"] = "Võro",
["vrs"] = "Varisi",
["vrt"] = "Banam Bay",
["vsi"] = "Moldova Sign Language",
["vsl"] = "Venezuelan Sign Language",
["vsv"] = "Valencian Sign Language",
["vto"] = "Vitou",
["vum"] = "Vumbu",
["vun"] = "Vunjo",
["vut"] = "Vute",
["vwa"] = "Awa (China)",
["wa"] = "Walloon",
["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"] = "Waray-Waray",
["was"] = "Washo",
["wat"] = "Kaninuwa",
["wau"] = "Wauja",
["wav"] = "Waka",
["waw"] = "Waiwai",
["wax"] = "Watam",
["way"] = "Wayana",
["waz"] = "Wampur",
["wba"] = "Warao",
["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"] = "Yanomámi",
["wci"] = "Waci Gbe",
["wdd"] = "Wandji",
["wdg"] = "Wadaginam",
["wdj"] = "Wadjiginy",
["wdt"] = "Wendat",
["wdu"] = "Wadjigu",
["wdy"] = "Wadjabangayi",
["wea"] = "Wewaw",
["wec"] = "Wè Barat",
["wed"] = "Wedau",
["weh"] = "Weh",
["wei"] = "Kiunum",
["wem"] = "Weme Gbe",
["weo"] = "Wemale",
["wer"] = "Weri",
["wes"] = "Pijin Cameroon",
["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"] = "Wahgi Utara",
["whk"] = "Kenyah Wahau",
["whu"] = "Kayan Wahau",
["wib"] = "Toussiana Selatan",
["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"] = "Winnebago",
["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"] = "Wales Pertengahan",
["wlo"] = "Wolio",
["wlr"] = "Wailapa",
["wls"] = "Wallis",
["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"] = "Mwani",
["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"] = "Wolof",
["woa"] = "Tyaraity",
["wob"] = "Wè Utara",
["woc"] = "Wogeo",
["wod"] = "Wolani",
["woe"] = "Woleai",
["wog"] = "Wogamusin",
["woi"] = "Kamang",
["wok"] = "Longto",
["wom"] = "Perema",
["won"] = "Wongo",
["woo"] = "Manombai",
["wor"] = "Woria",
["wos"] = "Hanga Hundi",
["wow"] = "Wawonii",
["wpc"] = "Wirö",
["wra"] = "Warapu",
["wrb"] = "Warluwara",
["wrg"] = "Warungu",
["wrh"] = "Wiradhuri",
["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",
["wss"] = "Wasa",
["wsu"] = "Wasu",
["wsv"] = "Wotapuri-Katarqalai",
["wtf"] = "Watiwa",
["wth"] = "Wathaurong",
["wti"] = "Berta",
["wtk"] = "Watakataui",
["wtm"] = "Mewati",
["wtw"] = "Wotu",
["wua"] = "Wikngenchera",
["wub"] = "Wunambal",
["wud"] = "Wudu",
["wuh"] = "Wutunhua",
["wul"] = "Silimo",
["wum"] = "Wumbvu",
["wun"] = "Bungu",
["wur"] = "Wurrugu",
["wut"] = "Wutung",
["wuu"] = "Wu",
["wuv"] = "Wuvulu-Aua",
["wux"] = "Wulna",
["wuy"] = "Wauyai",
["wwa"] = "Waama",
["wwo"] = "Dorig",
["wwr"] = "Warrwa",
["www"] = "Wawa",
["wxa"] = "Waxianghua",
["wxw"] = "Wardandi",
["wya"] = "Wyandot",
["wyb"] = "Ngiyambaa",
["wyi"] = "Woiwurrung",
["wym"] = "Vilamovian",
["wyr"] = "Wayoró",
["wyy"] = "Fiji Barat",
["xaa"] = "Arab Andalusia",
["xab"] = "Sambe",
["xac"] = "Kachari",
["xad"] = "Adai",
["xae"] = "Aequian",
["xag"] = "Aghwan",
["xai"] = "Kaimbé",
["xaj"] = "Ararandewára",
["xak"] = "Maku",
["xal"] = "Kalmyk",
["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"] = "Baktria",
["xbd"] = "Bindal",
["xbe"] = "Bigambal",
["xbg"] = "Bunganditj",
["xbi"] = "Kombio",
["xbj"] = "Birrpayi",
["xbm"] = "Breton Pertengahan",
["xbn"] = "Kenaboi",
["xbo"] = "Bulgar",
["xbp"] = "Bibbulman",
["xbr"] = "Kambera",
["xbw"] = "Kambiwá",
["xby"] = "Butchulla",
["xcb"] = "Cumbric",
["xcc"] = "Camunic",
["xce"] = "Celtiberian",
["xch"] = "Chemakum",
["xcl"] = "Armenia Kuno",
["xcm"] = "Comecrudo",
["xcn"] = "Cotoname",
["xco"] = "Khwarezm",
["xcr"] = "Carian",
["xct"] = "Tibet Klasik",
["xcu"] = "Curonian",
["xcv"] = "Chuva",
["xcw"] = "Coahuilteco",
["xcy"] = "Cayuse",
["xda"] = "Darkinjung",
["xdc"] = "Dacian",
["xdk"] = "Dharug",
["xdm"] = "Edom",
["xdq"] = "Kaitag",
["xdy"] = "Malayic Dayak",
["xeb"] = "Ebla",
["xed"] = "Hdi",
["xeg"] = "ǁXegwi",
["xel"] = "Kelo",
["xem"] = "Kembayan",
["xep"] = "Epi-Olmec",
["xer"] = "Xerénte",
["xes"] = "Kesawai",
["xet"] = "Xetá",
["xeu"] = "Keoru-Ahia",
["xfa"] = "Falisci",
["xga"] = "Galatia",
["xgb"] = "Gbin",
["xgd"] = "Gudang",
["xgf"] = "Gabrielino-Fernandeño",
["xgg"] = "Goreng",
["xgi"] = "Garingbal",
["xgl"] = "Galindan",
["xgm"] = "Darumbal",
["xgn-pro"] = "Proto-Mongolia",
["xgr"] = "Garza",
["xgu"] = "Unggumi",
["xgw"] = "Guwa",
["xh"] = "Xhosa",
["xha"] = "Harami",
["xhc"] = "Hun",
["xhd"] = "Hadrami",
["xhe"] = "Khetrani",
["xhm"] = "Khmer Pertengahan",
["xhr"] = "Hernican",
["xht"] = "Hatti",
["xhu"] = "Hurri",
["xhv"] = "Khua",
["xib"] = "Iberia",
["xii"] = "Xiri",
["xil"] = "Illyria",
["xin"] = "Xinca",
["xir"] = "Xiriâna",
["xis"] = "Kisan",
["xiv"] = "Bahasa Lembah Indus",
["xiy"] = "Xipaya",
["xjb"] = "Minjungbal",
["xka"] = "Kalkoti",
["xkb"] = "Manigri-Kambolé Ede Nago",
["xkc"] = "Khoini",
["xkd"] = "Kayan Mendalam",
["xke"] = "Kereho",
["xkf"] = "Khengkha",
["xkg"] = "Kagoro",
["xki"] = "Isyarat Kenya",
["xkj"] = "Kajali",
["xkk"] = "Kaco'",
["xkl"] = "Bakung",
["xkn"] = "Kayan Sungai 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"] = "Lycia",
["xld"] = "Lydia",
["xle"] = "Lemnos",
["xlg"] = "Liguria Purba",
["xli"] = "Liburni",
["xlo"] = "Loup A",
["xlp"] = "Lepontii",
["xls"] = "Lusitania",
["xlu"] = "Luwiya",
["xly"] = "Elymi",
["xmb"] = "Mbonga",
["xmc"] = "Makhuwa-Marrevone",
["xmd"] = "Mbudum",
["xme-ker"] = "Kermanik",
["xme-kls"] = "Kalasuri",
["xme-klt"] = "Kilit",
["xme-mid"] = "Median Pertengahan",
["xme-old"] = "Median Kuno",
["xme-ott"] = "Tati Kuno",
["xme-taf"] = "Tafreshi",
["xme-ttc-pro"] = "Proto-Tatik",
["xmf"] = "Mingrelia",
["xmg"] = "Mengaka",
["xmh"] = "Kugu-Muminh",
["xmj"] = "Majera",
["xmk"] = "Macedonia Purba",
["xml"] = "Isyarat Malaysia",
["xmm"] = "Melayu Manado",
["xmo"] = "Morerebi",
["xmp"] = "Kuku-Mu'inh",
["xmq"] = "Kuku-Mangk",
["xmr"] = "Meroe",
["xms"] = "Isyarat Maghribi",
["xmt"] = "Matbat",
["xmu"] = "Kamu",
["xmx"] = "Maden",
["xmy"] = "Mayaguduna",
["xmz"] = "Mori Bawah",
["xna"] = "Arab Utara Purba",
["xnb"] = "Kanakanabu",
["xnd-pro"] = "Proto-Na-Dene",
["xng"] = "Mongol Pertengahan",
["xnh"] = "Kuanhua",
["xni"] = "Ngarigu",
["xnk"] = "Nganakarti",
["xnn"] = "Kankanay Utara",
["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"] = "Tasmania Tenggara",
["xpg"] = "Phrygia",
["xph"] = "Tyerrernotepanner",
["xpi"] = "Pict",
["xpj"] = "Mpalitjanh",
["xpk"] = "Kulina",
["xpl"] = "Port Sorell",
["xpm"] = "Pumpokol",
["xpn"] = "Kapinawá",
["xpo"] = "Pochutec",
["xpp"] = "Puyo-Paekche",
["xpq"] = "Mohegan-Pequot",
["xpr"] = "Parthia",
["xps"] = "Pisidia",
["xpu"] = "Punik",
["xpv"] = "Tommeginne",
["xpw"] = "Peerapper",
["xpx"] = "Toogee",
["xpy"] = "Buyeo",
["xpz"] = "Pulau Bruny",
["xqa"] = "Karakhanid",
["xqt"] = "Qatabanian",
["xra"] = "Krahô",
["xrb"] = "Karaboro Timur",
["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"] = "Sambal",
["xsc-pro"] = "Proto-Scythia",
["xsc-sak-pro"] = "Proto-Saka",
["xsc-sar-pro"] = "Proto-Sarmatia",
["xsc-skw-pro"] = "Proto-Saka-Wakhi",
["xsd"] = "Sidetic",
["xse"] = "Sempan",
["xsh"] = "Shamang",
["xsi"] = "Sio",
["xsj"] = "Subi",
["xsl"] = "Slavey Selatan",
["xsm"] = "Kasem",
["xsn"] = "Sanga (Nigeria)",
["xso"] = "Solano",
["xsp"] = "Silopi",
["xsq"] = "Makhuwa-Saka",
["xsr"] = "Sherpa",
["xss"] = "Assan",
["xsu"] = "Sanumá",
["xsv"] = "Sudovian",
["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"] = "Mixtec Magdalena Peñasco",
["xtn"] = "Mixtec Tlaxiaco Utara",
["xto"] = "Tocharia A",
["xtp"] = "Mixtec San Miguel Piedras",
["xtq"] = "Tumshuq",
["xtr"] = "Tripuri Awal",
["xts"] = "Mixtec Sindihui",
["xtt"] = "Mixtec Tacahua",
["xtu"] = "Mixtec Cuyamecalco",
["xtv"] = "Thawa",
["xtw"] = "Tawandê",
["xty"] = "Mixtec Yoloxochitl",
["xtz"] = "Tasmania",
["xua"] = "Kurumba Alu",
["xub"] = "Kurumba Betta",
["xud"] = "Umiida",
["xug"] = "Kunigami",
["xuj"] = "Jennu Kurumba",
["xul"] = "Ngunawal",
["xum"] = "Umbri",
["xun"] = "Unggaranggu",
["xuo"] = "Kuo",
["xup"] = "Upper Umpqua",
["xur"] = "Urartian",
["xut"] = "Kuthant",
["xuu"] = "Khwe",
["xve"] = "Venetic",
["xvn"] = "Vandalic",
["xvo"] = "Volscian",
["xvs"] = "Vestinian",
["xwa"] = "Kwaza",
["xwc"] = "Woccon",
["xwd"] = "Wadi Wadi",
["xwe"] = "Xwela Gbe",
["xwg"] = "Kwegu",
["xwj"] = "Wajuk",
["xwk"] = "Wangkumara",
["xwl"] = "Gbe Xwla Barat",
["xwo"] = "Oirat Bertulis",
["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"] = "Zemgalia",
["xzp"] = "Zapotec Purba",
["yaa"] = "Yaminahua",
["yab"] = "Yuhup",
["yac"] = "Pass Valley Yali",
["yad"] = "Yagua",
["yae"] = "Pumé",
["yaf"] = "Yaka",
["yag"] = "Yámana",
["yah"] = "Yazghulami",
["yai"] = "Yagnobi",
["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"] = "Yugur Barat",
["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"] = "Kreol Yilan",
["yda"] = "Yanda",
["yde"] = "Yangum Dey",
["ydg"] = "Yidgha",
["ydk"] = "Yoidik",
["yea"] = "Ravula",
["yec"] = "Yeniche",
["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"] = "Yiddish",
["yia"] = "Yinggarda",
["yif"] = "Ache",
["yig"] = "Wusa Nasu",
["yii"] = "Yidiny",
["yij"] = "Yindjibarndi",
["yik"] = "Dongshanba Lalo",
["yil"] = "Yindjilandji",
["yim"] = "Yimchungru Naga",
["yin"] = "Yinchia",
["yip"] = "Pholo",
["yiq"] = "Miqie",
["yir"] = "Awyu Utara",
["yis"] = "Yis",
["yit"] = "Lalu Timur",
["yiu"] = "Awu",
["yiv"] = "Nisu Utara",
["yix"] = "Axi",
["yiy"] = "Yir-Yoront",
["yiz"] = "Azhe",
["yka"] = "Yakan",
["ykg"] = "Yukaghir Utara",
["ykh"] = "Mongol Khamnigan",
["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"] = "Nyâlayu",
["ymb"] = "Yambes",
["ymc"] = "Muji Selatan",
["ymd"] = "Muda",
["yme"] = "Yameo",
["ymg"] = "Yamongeri",
["ymh"] = "Mili",
["ymi"] = "Moji",
["ymk"] = "Makwe",
["yml"] = "Iamalele",
["ymm"] = "Maay",
["ymn"] = "Sunum",
["ymo"] = "Mon Yangum",
["ymp"] = "Yamap",
["ymq"] = "Muji Qila",
["ymr"] = "Malasar",
["yms"] = "Mysian",
["ymx"] = "Muji Utara",
["ymz"] = "Muzi",
["yna"] = "Aluo",
["ynd"] = "Yandruwandha",
["yne"] = "Lang'e",
["yng"] = "Yango",
["ynk"] = "Naukanski",
["ynl"] = "Yangulam",
["ynn"] = "Yana",
["yno"] = "Yong",
["yns"] = "Yansi",
["ynu"] = "Yahuna",
["yo"] = "Yoruba",
["yob"] = "Yoba",
["yog"] = "Yogad",
["yoi"] = "Yonaguni",
["yok-bvy"] = "Yokuts Buena Vista",
["yok-dly"] = "Yokuts Delta",
["yok-gsy"] = "Yokuts Gashowu",
["yok-kry"] = "Yokuts Sungai Kings",
["yok-nvy"] = "Yokuts Lembah Utara",
["yok-ply"] = "Yokuts Palewyami",
["yok-svy"] = "Yokuts Lembah Selatan",
["yok-tky"] = "Yokuts Tule-Kaweah",
["yol"] = "Yola",
["yom"] = "Yombe",
["yon"] = "Yongkom",
["yox"] = "Yoron",
["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"] = "Nenets Tundra",
["yrk-for"] = "Nenets Hutan",
["yrk-tun"] = "Nenets Tundra",
["yrl"] = "Nheengatu",
["yrn"] = "Yerong",
["yro"] = "Yaroamë",
["yrw"] = "Yarawata",
["yry"] = "Yarluyandi",
["ysc"] = "Jassic",
["ysd"] = "Samatao",
["ysg"] = "Sonaga",
["ysl"] = "Yugoslavian Sign Language",
["ysn"] = "Sani",
["yso"] = "Nisi",
["ysp"] = "Lolopo Selatan",
["ysr"] = "Sirenik",
["yss"] = "Yessan-Mayo",
["ysy"] = "Sanie",
["yta"] = "Talu",
["ytl"] = "Tanglang",
["ytp"] = "Thopho",
["ytw"] = "Yout Wam",
["yty"] = "Yatay",
["yua"] = "Maya Yucatec",
["yub"] = "Yugambal",
["yuc"] = "Yuchi",
["yue"] = "Kantonis",
["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"] = "Yukaghir Selatan",
["yuy"] = "Yugur Timur",
["yuz"] = "Yuracare",
["yva"] = "Yawa",
["yvt"] = "Yavitero",
["ywa"] = "Kalou",
["ywg"] = "Yinhawangka",
["ywl"] = "Lalu Barat",
["ywn"] = "Yawanawa",
["ywq"] = "Nasu",
["ywr"] = "Yawuru",
["ywt"] = "Xishanba Lalo",
["ywu"] = "Wumeng Nasu",
["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"] = "Zhuang",
["zaa"] = "Zapotec Sierra de Juárez",
["zab"] = "Zapotec San Juan Guelavía",
["zac"] = "Zapotec Ocotlán",
["zad"] = "Zapotec Cajonos",
["zae"] = "Zapotec Yareni",
["zaf"] = "Zapotec Ayoquesco",
["zag"] = "Zaghawa",
["zah"] = "Zangwal",
["zai"] = "Zapotec Segenting",
["zaj"] = "Zaramo",
["zak"] = "Zanaki",
["zal"] = "Zauzou",
["zam"] = "Zapoteco Mahuatlán Tengah",
["zao"] = "Zapotec Ozolotepec",
["zap"] = "Zapotec",
["zaq"] = "Zapotec Aloápam",
["zar"] = "Zapotec Rincón",
["zas"] = "Zapotec Santo Domingo Albarradas",
["zat"] = "Zapotec Tabaa",
["zau"] = "Zangskar",
["zav"] = "Zapotec Yatzachi",
["zaw"] = "Zapotec Mitla",
["zax"] = "Zapotec Xadani",
["zay"] = "Zayse-Zergulla",
["zaz"] = "Zari",
["zbt"] = "Batui",
["zca"] = "Zapotec Coatecas Altas",
["zdj"] = "Comoros Ngazidja",
["zea"] = "Zeeland",
["zeg"] = "Zenag",
["zen"] = "Zenaga",
["zga"] = "Kinga",
["zgh"] = "Amazigh Maghribi",
["zgr"] = "Magori",
["zh"] = "Cina",
["zhb"] = "Zhaba",
["zhi"] = "Zhire",
["zhn"] = "Nong Zhuang",
["zhw"] = "Zhoa",
["zhx-min-pro"] = "Proto-Min",
["zhx-sht"] = "Tuhua Shaozhou",
["zhx-sic"] = "Sichuan",
["zhx-tai"] = "Taishan",
["zia"] = "Zia",
["zib"] = "Zimbabwe Sign Language",
["zik"] = "Zimakani",
["zil"] = "Zialo",
["zim"] = "Mesme",
["zin"] = "Zinza",
["zir"] = "Ziriya",
["ziw"] = "Zigula",
["ziz"] = "Zizilivakan",
["zka"] = "Kaimbulawa",
["zkb"] = "Koibal",
["zkg"] = "Goguryeo",
["zkh"] = "Khorezmian Turkic",
["zkk"] = "Karankawa",
["zko"] = "Kott",
["zkp"] = "Kaingáng São Paulo",
["zkr"] = "Zakhring",
["zkt"] = "Khitan",
["zku"] = "Kaurna",
["zkv"] = "Krevinian",
["zkz"] = "Khazar",
["zle-ono"] = "Novgorod Kuno",
["zle-ort"] = "Ruthenian Kuno",
["zls-chs"] = "Slavonic Gereja",
["zlw-ocs"] = "Czech Kuno",
["zlw-opl"] = "Poland Kuno",
["zlw-osk"] = "Slovak Kuno",
["zlw-slv"] = "Slovincian",
["zma"] = "Manda (Australia)",
["zmb"] = "Zimba",
["zmc"] = "Margany",
["zmd"] = "Maridan",
["zme"] = "Mangerr",
["zmf"] = "Mfinu",
["zmg"] = "Marti Ke",
["zmh"] = "Makolkol",
["zmi"] = "Melayu Negeri Sembilan",
["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"] = "Kaya",
["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"] = "Zulu",
["zua"] = "Zeem",
["zuh"] = "Tokano",
["zum"] = "Kumzari",
["zun"] = "Zuni",
["zuy"] = "Zumaya",
["zwa"] = "Zay",
["zyp"] = "Zyphe",
["zza"] = "Zazaki",
["zzj"] = "Zuojiang Zhuang",
}
kli6qgvf035ej1yt2m7c94y7ogl1y20
373552
373543
2026-09-11T10:39:24Z
Hakimi97
2668
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373552
Scribunto
text/plain
return {
["aa"] = "Afar",
["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"] = "Khasi Purba",
["aav-nic-pro"] = "Nicobar Purba",
["aav-pkl-pro"] = "Pnar-Khasi-Lyngngam Purba",
["aav-pro"] = "Austroasia Purba",
["aaw"] = "Solong",
["aax"] = "Mandobo Atas",
["aaz"] = "Amarasi",
["ab"] = "Abkhaz",
["aba"] = "Abé",
["abb"] = "Bankon",
["abc"] = "Ayta Ambala",
["abd"] = "Agta Camarines Norte",
["abe"] = "Abenaki",
["abf"] = "Abai Sungai",
["abg"] = "Abaga",
["abh"] = "Arab Tajik",
["abi"] = "Abidji",
["abj"] = "Aka-Bea",
["abl"] = "Abung",
["abm"] = "Abanyom",
["abn"] = "Abua",
["abo"] = "Abon",
["abp"] = "Ayta Abenlen",
["abq"] = "Abaza",
["abs"] = "Melayu Ambon",
["abt"] = "Ambulas",
["abu"] = "Abure",
["abv"] = "Arab Bahrani",
["abw"] = "Pal",
["abx"] = "Inabaknon",
["aby"] = "Aneme Wake",
["abz"] = "Abui",
["aca"] = "Achagua",
["acb"] = "Áncá",
["acd"] = "Gikyode",
["ace"] = "Aceh",
["ach"] = "Acholi",
["aci"] = "Aka-Cari",
["ack"] = "Aka-Kora",
["acl"] = "Akar-Bale",
["acm"] = "Arab Iraq",
["acn"] = "Achang",
["acp"] = "Acipa Timur",
["acr"] = "Achi",
["acs"] = "Acroá",
["acu"] = "Achuar",
["acv"] = "Achumawi",
["acw"] = "Arab Hijaz",
["acx"] = "Arab Oman",
["acy"] = "Arab Cyprus",
["acz"] = "Acheron",
["ada"] = "Adangme",
["adb"] = "Atauran",
["add"] = "Dzodinka",
["ade"] = "Adele",
["adf"] = "Arab Dhofar",
["adg"] = "Andegerebinha",
["adh"] = "Adhola",
["adi"] = "Adi",
["adj"] = "Adioukrou",
["adl"] = "Galo",
["adn"] = "Adang",
["ado"] = "Abu",
["adp"] = "Adap",
["adq"] = "Adangbe",
["adr"] = "Adonara",
["ads"] = "Bahasa Isyarat Adamorobe",
["adt"] = "Adnyamathanha",
["adu"] = "Aduge",
["adw"] = "Amondawa",
["ady"] = "Circassian Barat",
["adz"] = "Adzera",
["ae"] = "Avesta",
["aea"] = "Areba",
["aeb"] = "Arab Tunisia",
["aed"] = "Bahasa Isyarat Argentina",
["aee"] = "Pashayi Timur Laut",
["aek"] = "Haeke",
["ael"] = "Ambele",
["aem"] = "Arem",
["aen"] = "Bahasa Isyarat Armenia",
["aeq"] = "Aer",
["aer"] = "Arrernte Timur",
["aes"] = "Alsea",
["aeu"] = "Akeu",
["aew"] = "Ambakich",
["aey"] = "Amele",
["aez"] = "Aeka",
["af"] = "Afrikaans",
["afa-pro"] = "Afroasia Purba",
["afb"] = "Arab Teluk",
["afd"] = "Andai",
["afe"] = "Putukwam",
["afg"] = "Bahasa Isyarat Afghanistan",
["afh"] = "Afrihili",
["afi"] = "Akrukay",
["afk"] = "Nanubae",
["afn"] = "Defaka",
["afo"] = "Eloyi",
["afp"] = "Tapei",
["afs"] = "Kreol Afro-Seminole",
["aft"] = "Afitti",
["afu"] = "Awutu",
["afz"] = "Obokuitai",
["aga"] = "Aguano",
["agb"] = "Legbo",
["agc"] = "Agatu",
["agd"] = "Agarabi",
["age"] = "Angal",
["agf"] = "Arguni",
["agg"] = "Angor",
["agh"] = "Ngelima",
["agj"] = "Argobba",
["agk"] = "Agta Isarog",
["agl"] = "Fembe",
["agm"] = "Angaataha",
["agn"] = "Agutaynen",
["ago"] = "Tainae",
["agq"] = "Aghem",
["agr"] = "Aguaruna",
["ags"] = "Esimbi",
["agt"] = "Agta Cagayan Tengah",
["agu"] = "Aguacateco",
["agv"] = "Agta Remontado",
["agw"] = "Kahua",
["agx"] = "Aghul",
["agy"] = "Alta Selatan",
["agz"] = "Agta Gunung Iriga",
["aha"] = "Ahanta",
["ahb"] = "Axamb",
["ahg"] = "Qimant",
["ahh"] = "Aghu",
["ahi"] = "Tiagba",
["ahk"] = "Akha",
["ahl"] = "Igo",
["ahm"] = "Mobu",
["ahn"] = "Àhàn",
["aho"] = "Ahom",
["ahp"] = "Apro",
["ahr"] = "Ahirani",
["ahs"] = "Ashe",
["aht"] = "Ahtna",
["aia"] = "Arosi",
["aib"] = "Äynu",
["aic"] = "Ainbai",
["aid"] = "Alngith",
["aie"] = "Amara",
["aif"] = "Agi",
["aig"] = "Kreol Inggeris Antigua dan Barbuda",
["aih"] = "Ai-Cham",
["aii"] = "Neo-Aramia Assyria",
["aij"] = "Lishanid Noshan",
["aik"] = "Ake",
["ail"] = "Aimele",
["aim"] = "Aimol",
["ain"] = "Ainu",
["aio"] = "Aiton",
["aip"] = "Burumakok",
["air"] = "Airoran",
["ait"] = "Arikem",
["aiw"] = "Aari",
["aix"] = "Aighon",
["aiy"] = "Ali",
["aja"] = "Aja (Afrika Timur)",
["ajg"] = "Aja (Afrika Barat)",
["aji"] = "Ajië",
["ajn"] = "Andajin",
["ajp"] = "Arab Syam Selatan",
["ajs"] = "Bahasa Isyarat Yahudi Algeria",
["ajw"] = "Ajawa",
["ajz"] = "Karbi Amri",
["ak"] = "Akan",
["akb"] = "Batak Angkola",
["akc"] = "Mpur",
["akd"] = "Ukpet-Ehom",
["ake"] = "Akawaio",
["akf"] = "Akpa",
["akg"] = "Anakalangu",
["akh"] = "Angal Heneng",
["aki"] = "Aiome",
["akj"] = "Jeru",
["akk"] = "Akkadia",
["akl"] = "Aklanon",
["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"] = "Alabama",
["ala"] = "Alago",
["alc"] = "Kawésqar",
["ald"] = "Alladian",
["ale"] = "Aleut",
["alf"] = "Alege",
["alg-aga"] = "Agawam",
["alg-pro"] = "Algonquian Purba",
["alh"] = "Alawa",
["ali"] = "Amaimon",
["alj"] = "Alangan",
["alk"] = "Alak",
["all"] = "Allar",
["alm"] = "Amblong",
["alo"] = "Larike-Wakasihu",
["alp"] = "Alune",
["alq"] = "Algonquin",
["alr"] = "Alutor",
["alt"] = "Altai Selatan",
["alu"] = "'Are'are",
["alv-ama"] = "Amasi",
["alv-bgu"] = "Bainouk Gubeeher",
["alv-bua-pro"] = "Bua Purba",
["alv-cng-pro"] = "Cangin Purba",
["alv-edk-pro"] = "Edekiri Purba",
["alv-edo-pro"] = "Edoid Purba",
["alv-fli-pro"] = "Fali Purba",
["alv-gbe-pro"] = "Gbe Purba",
["alv-gng-pro"] = "Guang Purba",
["alv-gtm-pro"] = "Togo Tengah Purba",
["alv-gwa"] = "Gwara",
["alv-hei-pro"] = "Heiban Purba",
["alv-ido-pro"] = "Idomoid Purba",
["alv-igb-pro"] = "Igboid Purba",
["alv-kwa-pro"] = "Kwa Purba",
["alv-mum-pro"] = "Mumuye Purba",
["alv-nup-pro"] = "Nupoid Purba",
["alv-pro"] = "Atlantik-Congo Purba",
["alv-von-pro"] = "Volta-Niger Purba",
["alv-yor-pro"] = "Yoruba Purba",
["alv-yrd-pro"] = "Yoruboid Purba",
["alw"] = "Alaba",
["alx"] = "Amol",
["aly"] = "Alyawarr",
["alz"] = "Alur",
["am"] = "Amhara",
["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"] = "Amami Ōshima Selatan",
["amt"] = "Amto",
["amu"] = "Amuzgo Guerrero",
["amv"] = "Ambelau",
["amw"] = "Neo-Aramia Barat",
["amx"] = "Anmatyerre",
["amy"] = "Ami",
["amz"] = "Atampaya",
["an"] = "Aragon",
["ana"] = "Andaqui",
["anb"] = "Andoa",
["anc"] = "Ngas",
["and"] = "Ansus",
["ane"] = "Xârâcùù",
["anf"] = "Animere",
["ang"] = "Inggeris Kuno",
["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"] = "Alor",
["aom"] = "Ömie",
["aon"] = "Arapesh Bumbita",
["aor"] = "Aore",
["aos"] = "Taikat",
["aot"] = "Atong (India)",
["aou"] = "A'ou",
["aox"] = "Atorada",
["aoz"] = "Uab Meto",
["apa-pro"] = "Apache Purba",
["apb"] = "Sa'a",
["apc"] = "Arab Syam Utara",
["apd"] = "Arab Sudan",
["ape"] = "Bukiyip",
["apf"] = "Agta Pahanan",
["apg"] = "Ampanang",
["aph"] = "Athpare",
["api"] = "Apiaká",
["apj"] = "Jicarilla",
["apk"] = "Apache Dataran",
["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"] = "Apache Barat",
["apx"] = "Aputai",
["apy"] = "Apalaí",
["apz"] = "Safeyoka",
["aqc"] = "Archi",
["aqd"] = "Dogon Ampari",
["aqg"] = "Arigidi",
["aql-pro"] = "Algik Purba",
["aqm"] = "Atohwaim",
["aqn"] = "Alta Utara",
["aqp"] = "Atakapa",
["aqr"] = "Arhâ",
["aqt"] = "Angaité",
["aqz"] = "Akuntsu",
["ar"] = "Arab",
["arc"] = "Aramia",
["ard"] = "Arabana",
["are"] = "Arrernte Barat",
["arh"] = "Arhuaco",
["ari"] = "Arikara",
["arj"] = "Arapaso",
["ark"] = "Arikapú",
["arl"] = "Arabela",
["arn"] = "Mapudungun",
["aro"] = "Araona",
["arp"] = "Arapaho",
["arq"] = "Arab Algeria",
["arr"] = "Arara-Karo",
["ars"] = "Arab Najdi",
["art-adu"] = "Adûni",
["art-bel"] = "Kreol Belter",
["art-blk"] = "Bolak",
["art-bsp"] = "Bahasa Hitam",
["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"] = "Valyria Tinggi",
["aru"] = "Arua",
["arv"] = "Arbore",
["arw"] = "Lokono",
["arx"] = "Aruá",
["ary"] = "Arab Maghribi",
["arz"] = "Arab Mesir",
["as"] = "Assam",
["asa"] = "Pare",
["asb"] = "Assiniboine",
["asc"] = "Asmat Pesisir Casuarina",
["ase"] = "Bahasa Isyarat Amerika",
["asf"] = "Auslan",
["asg"] = "Cishingini",
["ash"] = "Abishira",
["asi"] = "Buruwai",
["asj"] = "Nsari",
["ask"] = "Ashkun",
["asl"] = "Asilulu",
["asn"] = "Asuriní Xingú",
["aso"] = "Dano",
["asp"] = "Bahasa Isyarat Algeria",
["asq"] = "Bahasa Isyarat Austria",
["asr"] = "Asuri",
["ass"] = "Ipulo",
["ast"] = "Asturia",
["asu"] = "Asurini Tocantins",
["asv"] = "Asoa",
["asw"] = "Bahasa Isyarat Orang Asli Australia",
["asx"] = "Muratayak",
["asy"] = "Asmat Yaosakor",
["asz"] = "As",
["ata"] = "Pele-Ata",
["atb"] = "Zaiwa",
["atc"] = "Atsahuaca",
["atd"] = "Manobo Ata",
["ate"] = "Atemble",
["atg"] = "Okpela",
["ath-nic"] = "Nicola",
["ath-pro"] = "Athabaska Purba",
["ati"] = "Attié",
["atj"] = "Atikamekw",
["atk"] = "Ati",
["atl"] = "Agta Gunung Iraya",
["atm"] = "Ata",
["ato"] = "Atong (Cameroon)",
["atp"] = "Atta Pudtol",
["atq"] = "Aralle-Tabulahan",
["atr"] = "Waimiri-Atroari",
["ats"] = "Gros Ventre",
["att"] = "Atta Pamplona",
["atu"] = "Reel",
["atv"] = "Altai Utara",
["atw"] = "Atsugewi",
["atx"] = "Arutani",
["aty"] = "Aneityum",
["atz"] = "Arta",
["aua"] = "Asumboa",
["aub"] = "Alugu",
["auc"] = "Huaorani",
["aud"] = "Anuta",
["auf-pro"] = "Arawa Purba",
["aug"] = "Aguna",
["auh"] = "Aushi",
["aui"] = "Anuki",
["auj"] = "Awjila",
["auk"] = "Heyo",
["aul"] = "Aulua",
["aum"] = "Asu",
["aun"] = "One Molmo",
["auo"] = "Auyokawa",
["aup"] = "Makayam",
["auq"] = "Anus",
["aur"] = "Aruek",
["aus-alu"] = "Alungul",
["aus-and"] = "Andjingith",
["aus-ang"] = "Angkula",
["aus-arn-pro"] = "Arnhem Purba",
["aus-bra"] = "Barranbinya",
["aus-brm"] = "Barunggam",
["aus-cww-pro"] = "New South Wales Tengah Purba",
["aus-dal-pro"] = "Daly Purba",
["aus-guw"] = "Guwar",
["aus-lsw"] = "Little Swanport",
["aus-mbi"] = "Mbiywom",
["aus-ngk"] = "Ngkoth",
["aus-nyu-pro"] = "Nyulnyulan Purba",
["aus-pam-pro"] = "Pama-Nyunga Purba",
["aus-tul"] = "Tulua",
["aus-uwi"] = "Uwinymil",
["aus-wdj-pro"] = "Iwaidjan Purba",
["aus-won"] = "Wong-gie",
["aus-wul"] = "Wulguru",
["aus-ynk"] = "Yangkaal",
["aut"] = "Austral",
["auu"] = "Auye",
["auw"] = "Awyi",
["aux"] = "Aurá",
["auy"] = "Auyana",
["auz"] = "Arab Uzbeki",
["av"] = "Avar",
["avb"] = "Avau",
["avd"] = "Alviri-Vidari",
["avi"] = "Avikam",
["avk"] = "Kotava",
["avm"] = "Angkamuthi",
["avn"] = "Avatime",
["avs"] = "Aushiri",
["avt"] = "Au",
["avu"] = "Avokaya",
["avv"] = "Avá-Canoeiro",
["awa"] = "Awadhi",
["awb"] = "Awa (New Guinea)",
["awc"] = "Cicipu",
["awd-ama"] = "Amarizana",
["awd-amc-pro"] = "Amuesha-Chamicuro Purba",
["awd-ana"] = "Anauyá",
["awd-apo"] = "Apolista",
["awd-cab"] = "Cabre",
["awd-gnu"] = "Guinau",
["awd-kar"] = "Cariay",
["awd-kaw"] = "Kawishana",
["awd-kmp-pro"] = "Kampa Purba",
["awd-kus"] = "Kustenau",
["awd-man"] = "Manao",
["awd-mar"] = "Marawan",
["awd-mpr"] = "Maipure",
["awd-mrt"] = "Mariaté",
["awd-nwk-pro"] = "Nawiki Purba",
["awd-pai"] = "Paikoneka",
["awd-pas"] = "Pasé",
["awd-pro"] = "Arawak Purba",
["awd-prw-pro"] = "Paresi-Waura Purba",
["awd-she"] = "Shebayo",
["awd-taa-pro"] = "Ta-Arawak Purba",
["awd-wai"] = "Wainumá",
["awd-war"] = "Warekena Kuno",
["awd-yum"] = "Yumana",
["awe"] = "Awetí",
["awg"] = "Anguthimri",
["awh"] = "Awbono",
["awi"] = "Aekyom",
["awk"] = "Awabakal",
["awm"] = "Arawum",
["awn"] = "Awngi",
["awo"] = "Awak",
["awr"] = "Awera",
["aws"] = "Awyu Selatan",
["awt"] = "Araweté",
["awu"] = "Awyu Tengah",
["awv"] = "Awyu Jair",
["aww"] = "Awun",
["awx"] = "Awara",
["awy"] = "Awyu Edera",
["axb"] = "Abipón",
["axe"] = "Ayerrerenge",
["axg"] = "Arára (Mato Grosso)",
["axk"] = "Aka (Afrika Tengah)",
["axl"] = "Aranda Selatan Bawah",
["axm"] = "Armenia Pertengahan",
["axx"] = "Xârâgurè",
["ay"] = "Aymara",
["aya"] = "Awar",
["ayb"] = "Ayizo",
["ayd"] = "Ayabadhu",
["aye"] = "Ayere",
["ayg"] = "Nyanga (Togo)",
["ayi"] = "Leyigha",
["ayk"] = "Akuku",
["ayl"] = "Arab Libya",
["ayn"] = "Arab Yaman",
["ayo"] = "Ayoreo",
["ayp"] = "Arab Mesopotamia Utara",
["ayq"] = "Ayi",
["ays"] = "Ayta Sorsogon",
["ayt"] = "Ayta Bataan",
["ayu"] = "Ayu",
["ayz"] = "Maybrat",
["az"] = "Azerbaijan",
["aza"] = "Azha",
["azc-caz"] = "Cazcan",
["azc-cup-pro"] = "Cupan Purba",
["azc-ktn"] = "Kitanemuk",
["azc-nah-pro"] = "Nahua Purba",
["azc-nic"] = "Nicoleño",
["azc-num-pro"] = "Numik Purba",
["azc-pro"] = "Uto-Aztek Purba",
["azc-tak-pro"] = "Takik Purba",
["azc-tat"] = "Tataviam",
["azd"] = "Nahuatl Durango Timur",
["azg"] = "Amuzgo San Pedro Amuzgos",
["azm"] = "Amuzgo Ipalapa",
["azn"] = "Nahuatl Durango Barat",
["azo"] = "Awing",
["azt"] = "Atta Faire",
["azz"] = "Nahuatl Puebla Tanah Tinggi",
["ba"] = "Bashkir",
["baa"] = "Babatana",
["bab"] = "Bainouk-Gunyuño",
["bac"] = "Badui",
["bae"] = "Baré",
["baf"] = "Nubaca",
["bag"] = "Tuki",
["bah"] = "Kreol Bahamas",
["baj"] = "Barakai",
["bal"] = "Baluchi",
["ban"] = "Bali",
["bao"] = "Waimaha",
["bap"] = "Bantawa",
["bar"] = "Bavarian",
["bas"] = "Basaa",
["bau"] = "Badanchi",
["bav"] = "Babungo",
["baw"] = "Bambili-Bambui",
["bax"] = "Bamum",
["bay"] = "Batuley",
["bba"] = "Baatonum",
["bbb"] = "Barai",
["bbc"] = "Batak Toba",
["bbd"] = "Bau",
["bbe"] = "Bangba",
["bbf"] = "Baibai",
["bbg"] = "Barama",
["bbh"] = "Bugan",
["bbi"] = "Barombi",
["bbj"] = "Ghomala'",
["bbk"] = "Babanki",
["bbl"] = "Bats",
["bbm"] = "Babango",
["bbn"] = "Uneapa",
["bbo"] = "Konabéré",
["bbp"] = "Banda Tengah Barat",
["bbq"] = "Bamali",
["bbr"] = "Girawa",
["bbs"] = "Bakpinka",
["bbt"] = "Mburku",
["bbu"] = "Bakulung",
["bbv"] = "Karnai",
["bbw"] = "Baba",
["bbx"] = "Bubia",
["bby"] = "Befang",
["bca"] = "Bai Tengah",
["bcb"] = "Bainouk-Samik",
["bcd"] = "Babar Utara",
["bce"] = "Bamenyam",
["bcf"] = "Bamu",
["bcg"] = "Baga Pokur",
["bch"] = "Bariai",
["bci"] = "Baoule",
["bcj"] = "Bardi",
["bck"] = "Bunaba",
["bcl"] = "Bikol Tengah",
["bcm"] = "Banoni",
["bcn"] = "Bibaali",
["bco"] = "Kaluli",
["bcp"] = "Baali",
["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",
["bdk"] = "Budukh",
["bdl"] = "Bajau Indonesia",
["bdm"] = "Buduma",
["bdn"] = "Baldemu",
["bdo"] = "Morom",
["bdp"] = "Bende",
["bdq"] = "Bahnar",
["bdr"] = "Bajau Sama",
["bds"] = "Burunge",
["bdt"] = "Bokoto",
["bdu"] = "Oroko",
["bdv"] = "Bodo Parja",
["bdw"] = "Baham",
["bdx"] = "Budong-Budong",
["bdy"] = "Bandjalang",
["bdz"] = "Badeshi",
["be"] = "Belarus",
["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"] = "Berber Purba",
["ber-zuw"] = "Zuwara",
["bes"] = "Besme",
["bet"] = "Guiberoua Bété",
["beu"] = "Blagar",
["bev"] = "Daloa Bété",
["bew"] = "Betawi",
["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"] = "Badaga",
["bfr"] = "Bazigar",
["bfs"] = "Bai Selatan",
["bft"] = "Balti",
["bfu"] = "Gahri",
["bfw"] = "Bondo",
["bfx"] = "Bantayanon",
["bfy"] = "Bagheli",
["bfz"] = "Mahasu Pahari",
["bg"] = "Bulgaria",
["bga"] = "Gwamhi-Wuri",
["bgb"] = "Bobongko",
["bgc"] = "Haryanvi",
["bgd"] = "Rathwi Bareli",
["bge"] = "Bauria",
["bgf"] = "Bangandu",
["bgg"] = "Bugun",
["bgi"] = "Giangan",
["bgj"] = "Bangolan",
["bgk"] = "Bit",
["bgl"] = "Bo",
["bgo"] = "Baga Koga",
["bgq"] = "Bagri",
["bgr"] = "Chin Bawm",
["bgs"] = "Tagabawa",
["bgt"] = "Bughotu",
["bgu"] = "Mbongno",
["bgv"] = "Warkay-Bipim",
["bgw"] = "Bhatri",
["bgx"] = "Balkan Gagauz Turkish",
["bgy"] = "Benggoi",
["bgz"] = "Banggai",
["bh"] = "Bihari",
["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"] = "Neo-Aram Bohtan",
["bho"] = "Bhojpur",
["bhp"] = "Bima",
["bhq"] = "Tukang Besi Selatan",
["bhs"] = "Buwal",
["bht"] = "Bhattiyali",
["bhu"] = "Bhunjia",
["bhv"] = "Bahau",
["bhw"] = "Biak",
["bhx"] = "Bhalay",
["bhy"] = "Bhele",
["bhz"] = "Bada",
["bi"] = "Bislama",
["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"] = "Birifor Selatan",
["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"] = "Banjar",
["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"] = "Binukid",
["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"] = "Bolongan",
["blk"] = "Karen Pa'o",
["bll"] = "Biloxi",
["blm"] = "Beli",
["bln"] = "Bicolano Catanduanes Selatan",
["blo"] = "Anii",
["blp"] = "Blablanga",
["blq"] = "Baluan-Pam",
["blr"] = "Blang",
["bls"] = "Balaesang",
["blt"] = "Tai Dam",
["blv"] = "Kibala",
["blw"] = "Balangao",
["blx"] = "Mag-Indi Ayta",
["bly"] = "Notre",
["blz"] = "Balantak",
["bm"] = "Bambara",
["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"] = "Benggali",
["bna"] = "Bonerate",
["bnb"] = "Bookan",
["bnd"] = "Banda",
["bne"] = "Bintauna",
["bnf"] = "Masiwang",
["bng"] = "Benga",
["bni"] = "Bangi",
["bnj"] = "Tawbuid Timur",
["bnk"] = "Bierebo",
["bnl"] = "Boon",
["bnm"] = "Batanga",
["bnn"] = "Bunun",
["bno"] = "Asi",
["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 (Afrika Selatan)",
["bnt-mpi"] = "Mpiin",
["bnt-mpu"] = "Mpuono",
["bnt-ngu-pro"] = "Nguni Purba",
["bnt-phu"] = "Phuthi",
["bnt-pro"] = "Bantu Purba",
["bnt-sab-pro"] = "Sabaki Purba",
["bnt-sbo"] = "Boma Selatan",
["bnt-sts-pro"] = "Sotho-Tswana Purba",
["bnu"] = "Bentong",
["bnv"] = "Beneraf",
["bnw"] = "Bisis",
["bnx"] = "Bangubangu",
["bny"] = "Vaie",
["bnz"] = "Beezen",
["bo"] = "Tibet",
["boa"] = "Bora",
["bob"] = "Aweer",
["boe"] = "Mundabli",
["bof"] = "Bolon",
["bog"] = "Bamako Sign Language",
["boh"] = "Boma Utara",
["boi"] = "Barbareño",
["boj"] = "Anjam",
["bok"] = "Bonjo",
["bol"] = "Bole",
["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"] = "Dakaka",
["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"] = "Breton",
["bra"] = "Braj",
["brb"] = "Lave",
["brc"] = "Belanda Kreol Berbice",
["brd"] = "Baraamu",
["brf"] = "Bera",
["brg"] = "Baure",
["brh"] = "Brahui",
["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"] = "Bru Timur",
["brv"] = "Bru Barat",
["brw"] = "Bellari",
["brx"] = "Bodo (India)",
["bry"] = "Burui",
["brz"] = "Bilbil",
["bsa"] = "Abinomn",
["bsb"] = "Bisaya Brunei",
["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"] = "Bisaya Sabah",
["bta"] = "Bata",
["btc"] = "Bati (Cameroon)",
["btd"] = "Batak Dairi",
["bte"] = "Gamo-Ningi",
["btf"] = "Birgit",
["btg"] = "Gagnoa Bété",
["bth"] = "Bidayuh Biatah",
["bti"] = "Burate",
["btj"] = "Melayu Bacan",
["btk-pro"] = "Batak Purba",
["btm"] = "Batak Mandailing",
["btn"] = "Ratagnon",
["bto"] = "Bicolano Iriga",
["btp"] = "Budibud",
["btq"] = "Batek",
["btr"] = "Baetora",
["bts"] = "Batak Simalungun",
["btt"] = "Bete-Bendi",
["btu"] = "Batu",
["btv"] = "Bateri",
["btw"] = "Butuanon",
["btx"] = "Batak Karo",
["bty"] = "Bobot",
["btz"] = "Batak Alas-Kluet",
["bua"] = "Buryat",
["bub"] = "Bua",
["bud"] = "Ntcham",
["bue"] = "Beothuk",
["buf"] = "Bushoong",
["bug"] = "Bugis",
["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"] = "Melayu Berau",
["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"] = "Melayu Bukit",
["bvv"] = "Baniva",
["bvw"] = "Boga",
["bvx"] = "Babole",
["bvy"] = "Baybayanon",
["bvz"] = "Bauzi",
["bwa"] = "Bwatoo",
["bwb"] = "Namosi-Naitasiri-Serua",
["bwc"] = "Bwile",
["bwd"] = "Bwaidoka",
["bwe"] = "Karen Bwe",
["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"] = "Bobo Selatan",
["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"] = "Batak Palawan",
["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"] = "Bisu",
["bzj"] = "Kreol Belize",
["bzk"] = "Kreol Nicaragua",
["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"] = "Catalan",
["caa"] = "Ch'orti'",
["cab"] = "Garifuna",
["cac"] = "Chuj",
["cad"] = "Caddo",
["cae"] = "Laalaa",
["caf"] = "Carrier Selatan",
["cag"] = "Nivaclé",
["cah"] = "Cahuarano",
["caj"] = "Chané",
["cak"] = "Kaqchikel",
["cal"] = "Carolinian",
["cam"] = "Cemuhî",
["can"] = "Chambri",
["cao"] = "Chácobo",
["cap"] = "Chipaya",
["caq"] = "Car Nicobarese",
["car"] = "Kari'na",
["cas"] = "Tsimané",
["cau-abz-pro"] = "Abkhaz-Abaza Purba",
["cau-and-pro"] = "Andi Purba",
["cau-ava-pro"] = "Avar-Andi Purba",
["cau-cir-pro"] = "Circassia Purba",
["cau-drg-pro"] = "Dargwa Purba",
["cau-lzg-pro"] = "Lezghi Purba",
["cau-nec-pro"] = "Kaukasia Timur Laut Purba",
["cau-nkh-pro"] = "Nakh Purba",
["cau-nwc-pro"] = "Kaukasia Barat Laut Purba",
["cau-tsz-pro"] = "Tsez Purba",
["cav"] = "Cavineña",
["caw"] = "Callawalla",
["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"] = "Chibchan Purba",
["cbb"] = "Cabiyarí",
["cbc"] = "Carapana",
["cbd"] = "Carijona",
["cbg"] = "Chimila",
["cbi"] = "Chachi",
["cbj"] = "Ede Cabe",
["cbk"] = "Chavacano",
["cbl"] = "Chin Bualkhaw",
["cbn"] = "Nyah Kur",
["cbo"] = "Izora",
["cbq"] = "Shuba",
["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"] = "Melayu Cheti",
["cco"] = "Comaltepec Chinantec",
["ccp"] = "Chakma",
["ccr"] = "Cacaopera",
["ccs-gzn-pro"] = "Georgia-Zan Purba",
["ccs-pro"] = "Kartvelia Purba",
["cda"] = "Choni",
["cdc-cbm-pro"] = "Chadik Tengah Purba",
["cdc-mas-pro"] = "Masa Purba",
["cdc-pro"] = "Chadik Purba",
["cdd-pro"] = "Caddoan Purba",
["cde"] = "Chenchu",
["cdf"] = "Chiru",
["cdh"] = "Chambeali",
["cdi"] = "Chodri",
["cdj"] = "Churahi",
["cdm"] = "Chepang",
["cdn"] = "Chaudangsi",
["cdo"] = "Min Timur",
["cdr"] = "Cinda-Regi-Tiyal",
["cds"] = "Bahasa Isyarat Chad",
["cdy"] = "Chadong",
["cdz"] = "Koda",
["ce"] = "Chechen",
["cea"] = "Lower Chehalis",
["ceb"] = "Cebuano",
["ceg"] = "Chamacoco",
["cel-bry-pro"] = "Britonik Purba",
["cel-gal"] = "Gallaecia",
["cel-gau"] = "Gaul",
["cel-pro"] = "Keltik Purba",
["cen"] = "Cen",
["cet"] = "Centúúm",
["cfa"] = "Dijim-Bwilim",
["cfd"] = "Cara",
["cfg"] = "Como Karim",
["cfm"] = "Chin Falam",
["cga"] = "Changriwa",
["cgc"] = "Kagayanen",
["cgg"] = "Rukiga",
["cgk"] = "Chocangaca",
["ch"] = "Chamorro",
["chb"] = "Chibcha",
["chc"] = "Catawba",
["chd"] = "Highland Oaxaca Chontal",
["chf"] = "Tabasco Chontal",
["chg"] = "Chagatai",
["chh"] = "Chinook",
["chi-pro"] = "Chimakuan Purba",
["chj"] = "Ojitlán Chinantec",
["chk"] = "Chuuk",
["chl"] = "Cahuilla",
["chm-pro"] = "Mari Purba",
["chn"] = "Chinook Jargon",
["cho"] = "Choctaw",
["chp"] = "Chipewyan",
["chq"] = "Quiotepec Chinantec",
["chr"] = "Cherokee",
["cht"] = "Cholón",
["chw"] = "Chuabo",
["chx"] = "Chantyal",
["chy"] = "Cheyenne",
["chz"] = "Ozumacín Chinantec",
["cia"] = "Cia-Cia",
["cib"] = "Ci Gbe",
["cic"] = "Chickasaw",
["cid"] = "Chimariko",
["cie"] = "Cineni",
["cih"] = "Chinali",
["cik"] = "Chitkuli Kinnauri",
["cim"] = "Cimbrian",
["cin"] = "Cinta Larga",
["cip"] = "Chiapanec",
["cir"] = "Tiri",
["ciy"] = "Chaima",
["cja"] = "Cam Barat",
["cje"] = "Chru",
["cjh"] = "Upper Chehalis",
["cji"] = "Chamalal",
["cjk"] = "Chokwe",
["cjm"] = "Cam Timur",
["cjn"] = "Chenapian",
["cjo"] = "Ashéninka Pajonal",
["cjp"] = "Cabécar",
["cjs"] = "Shor",
["cjv"] = "Chuave",
["cjy"] = "Jin",
["ckb"] = "Kurdi Tengah",
["ckh"] = "Chak",
["ckl"] = "Cibak",
["ckn"] = "Chin Kaang",
["cko"] = "Anufo",
["ckq"] = "Kajakse",
["ckr"] = "Kairak",
["cks"] = "Tayo",
["ckt"] = "Chukchi",
["cku"] = "Koasati",
["ckv"] = "Kavalan",
["ckx"] = "Caka",
["cky"] = "Cakfem-Mushere",
["ckz"] = "Cakchiquel-Quiché Mixed Language",
["cla"] = "Ron",
["clc"] = "Chilcotin",
["cld"] = "Chaldean Neo-Aramaic",
["cle"] = "Lealao Chinantec",
["clh"] = "Chilisso",
["cli"] = "Chakali",
["clj"] = "Chin Laitu",
["clk"] = "Idu",
["cll"] = "Chala",
["clm"] = "Klallam",
["clo"] = "Lowland Oaxaca Chontal",
["clt"] = "Chin Laitu",
["clu"] = "Caluyanun",
["clw"] = "Chulym",
["cly"] = "Chatino Tanah Tinggi Timur",
["cma"] = "Mạ",
["cmc-pro"] = "Chamik Purba",
["cme"] = "Cerma",
["cmg"] = "Mongol Klasik",
["cmi"] = "Emberá-Chamí",
["cml"] = "Campalagian",
["cmm"] = "Michigamea",
["cmn"] = "Mandarin",
["cmo"] = "Mnong Tengah",
["cmr"] = "Chin Mro",
["cms"] = "Messapic",
["cmt"] = "Camtho",
["cna"] = "Changthang",
["cnb"] = "Chin Chinbon",
["cnc"] = "Cốông",
["cng"] = "Qiang Utara",
["cnh"] = "Lai",
["cni"] = "Asháninka",
["cnk"] = "Chin Khumi",
["cnl"] = "Lalana Chinantec",
["cno"] = "Con",
["cnp"] = "Pinghua Utara",
["cns"] = "Asmat Tengah",
["cnt"] = "Tepetotutla Chinantec",
["cnu"] = "Chenoua",
["cnw"] = "Chin Ngawn",
["cnx"] = "Cornwall Pertengahan",
["co"] = "Corsica",
["coa"] = "Melayu Cocos",
["cob"] = "Chicomuceltec",
["coc"] = "Cocopa",
["cod"] = "Cocama",
["coe"] = "Koreguaje",
["cof"] = "Tsafiki",
["cog"] = "Chong",
["coh"] = "Chichonyi-Chidzihana-Chikauma",
["coj"] = "Cochimi",
["cok"] = "Santa Teresa Cora",
["col"] = "Columbia-Wenatchi",
["com"] = "Comanche",
["con"] = "Cofán",
["coo"] = "Comox",
["cop"] = "Qibti",
["coq"] = "Coquille",
["cot"] = "Caquinte",
["cou"] = "Wamey",
["cov"] = "Cao Miao",
["cow"] = "Cowlitz",
["cox"] = "Nanti",
["coy"] = "Coyaima",
["coz"] = "Chochotec",
["cpa"] = "Palantla Chinantec",
["cpb"] = "Ucayali-Yurúa Ashéninka",
["cpc"] = "Ajyíninka Apurucayali",
["cpg"] = "Yunani Cappadocia",
["cpi"] = "Inggeris Pijin Cina",
["cpn"] = "Cherepon",
["cpo"] = "Kpee",
["cps"] = "Capiznon",
["cpu"] = "Pichis Ashéninka",
["cpx"] = "Min Puxian",
["cpy"] = "Ashéninka Ucayali Selatan",
["cqd"] = "Chuanqiandian Cluster Miao",
["cr"] = "Cree",
["cra"] = "Chara",
["crb"] = "Kalinago",
["crc"] = "Lonwolwol",
["crd"] = "Coeur d'Alene",
["crf"] = "Caramanta",
["crg"] = "Michif",
["crh"] = "Tatar Crimea",
["cri"] = "Sãotomense",
["crj"] = "Cree Timur Selatan",
["crk"] = "Plains Cree",
["crl"] = "Cree Timur Utara",
["crm"] = "Cree Moose",
["crn"] = "Cora",
["cro"] = "Crow",
["crp-bip"] = "Pijin Basque-Iceland",
["crp-cpr"] = "Pijin Rusia-China",
["crp-gep"] = "Pijin Greenland Barat",
["crp-kia"] = "Pijin Jerman Kiautschou",
["crp-mar"] = "Bahasa Roh Maroon",
["crp-mpp"] = "Pijin Portugis Macau",
["crp-rsn"] = "Russenorsk",
["crp-slb"] = "Inggeris Solombala",
["crp-spp"] = "Pijin Ladang Samoa",
["crp-tpr"] = "Pijin Rusia Taimyr",
["crq"] = "Iyo'wujwa Chorote",
["crr"] = "Algonquin Carolina",
["crs"] = "Kreol Seychelles",
["crt"] = "Iyojwa'ja Chorote",
["crv"] = "Chaura",
["crw"] = "Chrau",
["crx"] = "Carrier",
["cry"] = "Cori",
["crz"] = "Cruzeño",
["cs"] = "Czech",
["csa"] = "Chiltepec Chinantec",
["csb"] = "Kashubian",
["csc"] = "Catalan Sign Language",
["csd"] = "Chiangmai Sign Language",
["cse"] = "Czech Sign Language",
["csf"] = "Cuban Sign Language",
["csg"] = "Chilean Sign Language",
["csh"] = "Chin Asho",
["csi"] = "Miwok Pesisir",
["csj"] = "Chin Songlai",
["csk"] = "Jola-Kasa",
["csl"] = "Chinese Sign Language",
["csm"] = "Miwok Sierra Tengah",
["csn"] = "Colombian Sign Language",
["cso"] = "Sochiapam Chinantec",
["csp"] = "Pinghua Selatan",
["csq"] = "Bahasa Isyarat Croatia",
["csr"] = "Costa Rican Sign Language",
["css"] = "Ohlone Selatan",
["cst"] = "Ohlone Utara",
["csu-bba-pro"] = "Bongo-Bagirmi Purba",
["csu-maa-pro"] = "Mangbetu Purba",
["csu-pro"] = "Sudan Tengah Purba",
["csu-sar-pro"] = "Sara Purba",
["csv"] = "Chin Sumtu",
["csw"] = "Swampy Cree",
["csy"] = "Chin Siyin",
["csz"] = "Coos",
["cta"] = "Tataltepec Chatino",
["ctc"] = "Chetco-Tolowa",
["ctd"] = "Chin Tedim",
["cte"] = "Tepinapa Chinantec",
["ctg"] = "Chittagong",
["cth"] = "Chin Thaiphum",
["ctl"] = "Tlacoatzintepec Chinantec",
["ctm"] = "Chitimacha",
["ctn"] = "Chhintange",
["cto"] = "Emberá-Catío",
["ctp"] = "Chatino Tanah Tinggi Barat",
["cts"] = "Bicolano Catanduanes Utara",
["ctt"] = "Wayanad Chetti",
["ctu"] = "Chol",
["ctz"] = "Zacatepec Chatino",
["cu"] = "Slavonic Gereja Kuno",
["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"] = "Cun",
["cur"] = "Chhulung",
["cus-ash"] = "Ashraaf",
["cus-hec-pro"] = "Cushitic Timur Tanah Tinggi Purba",
["cus-pro"] = "Cushitic Purba",
["cus-som-pro"] = "Somaloid Purba",
["cus-sou-pro"] = "Cushitic Selatan Purba",
["cut"] = "Teutila Cuicatec",
["cuu"] = "Tai Ya",
["cuv"] = "Cuvok",
["cuw"] = "Chukwa",
["cux"] = "Tepeuxila Cuicatec",
["cuy"] = "Cuitlatec",
["cv"] = "Chuvash",
["cvg"] = "Chug",
["cvn"] = "Valle Nacional Chinantec",
["cwa"] = "Kabwa",
["cwb"] = "Maindo",
["cwd"] = "Woods Cree",
["cwe"] = "Kwere",
["cwg"] = "Chewong",
["cwt"] = "Kuwaataay",
["cy"] = "Wales",
["cya"] = "Nopala Chatino",
["cyb"] = "Cayubaba",
["cyo"] = "Cuyunon",
["czh"] = "Huizhou",
["czk"] = "Knaanic",
["czn"] = "Zenzontepec Chatino",
["czo"] = "Min Tengah",
["czt"] = "Chin Zotung",
["da"] = "Denmark",
["daa"] = "Dangaléat",
["dac"] = "Dambi",
["dad"] = "Marik",
["dae"] = "Duupa",
["dag"] = "Dagbani",
["dah"] = "Gwahatike",
["dai"] = "Day",
["daj"] = "Dar Fur Daju",
["dak"] = "Dakota",
["dal"] = "Dahalo",
["dam"] = "Damakawa",
["dao"] = "Chin Daai",
["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"] = "Idahan",
["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"] = "Negerhollands",
["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"] = "Jerman",
["dec"] = "Dagik",
["ded"] = "Dedua",
["dee"] = "Dewoin",
["def"] = "Dezfuli",
["deg"] = "Degema",
["deh"] = "Dehwari",
["dei"] = "Demisa",
["dek"] = "Dek",
["dem"] = "Dem",
["dep"] = "Pidgin Delaware",
["der"] = "Deori",
["des"] = "Desano",
["dev"] = "Domung",
["dez"] = "Dengese",
["dga"] = "Dagaare Selatan",
["dgb"] = "Bunoge",
["dgc"] = "Agta Casiguran Dumagat",
["dgd"] = "Dagaari Dioula",
["dge"] = "Degenan",
["dgg"] = "Doga",
["dgh"] = "Dghwede",
["dgi"] = "Dagara Utara",
["dgk"] = "Dagba",
["dgn"] = "Dagoman",
["dgo"] = "Hindi Dogri",
["dgr"] = "Dogrib",
["dgs"] = "Dogoso",
["dgt"] = "Ntra'ngith",
["dgw"] = "Daungwurrung",
["dgx"] = "Doghoro",
["dgz"] = "Daga",
["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"] = "Dinka Tengah Selatan",
["dic"] = "Lakota Dida",
["did"] = "Didinga",
["dif"] = "Dieri",
["dig"] = "Digo",
["dii"] = "Dimbong",
["dij"] = "Dai",
["dik"] = "Dinka Barat Daya",
["dil"] = "Dilling",
["dim"] = "Dime",
["din"] = "Dinka",
["dio"] = "Dibo",
["dip"] = "Dinka Timur Laut",
["dir"] = "Dirim",
["dis"] = "Dimasa",
["diu"] = "Gciriku",
["diw"] = "Dinka Barat Laut",
["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"] = "Dinka Tenggara",
["dkx"] = "Mazagway",
["dlg"] = "Dolgan",
["dlk"] = "Dahalik",
["dlm"] = "Dalmatian",
["dln"] = "Darlong",
["dma"] = "Duma",
["dmb"] = "Mombo Dogon",
["dmc"] = "Gavak",
["dmd"] = "Madhi Madhi",
["dme"] = "Dugwor",
["dmf"] = "Medefaidrin",
["dmg"] = "Sungai",
["dmk"] = "Domaaki",
["dml"] = "Dameli",
["dmm"] = "Dama (Nigeria)",
["dmn-dam"] = "Dama (Sierra Leone)",
["dmn-mdw-pro"] = "Mande Barat Purba",
["dmn-pro"] = "Mande Purba",
["dmo"] = "Kemezung",
["dmr"] = "Damar Timur",
["dms"] = "Dampelas",
["dmu"] = "Dubu",
["dmv"] = "Dumpas",
["dmw"] = "Mudburra",
["dmx"] = "Dema",
["dmy"] = "Demta",
["dna"] = "Upper Grand Valley Dani",
["dnd"] = "Daonda",
["dne"] = "Ndendeule",
["dng"] = "Dungan",
["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"] = "Dani Barat",
["dny"] = "Dení",
["doa"] = "Dom",
["dob"] = "Dobu",
["doc"] = "Kam Utara",
["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"] = "Dravidia Tengah Purba",
["dra-mkn"] = "Kannada Pertengahan",
["dra-nor-pro"] = "Dravidia Utara Purba",
["dra-okn"] = "Kannada Kuno",
["dra-ote"] = "Telugu Kuno",
["dra-pro"] = "Dravidia Purba",
["dra-sdo-pro"] = "Dravidia Selatan I Purba",
["dra-sdt-pro"] = "Dravidia Selatan II Purba",
["dra-sou-pro"] = "Dravidia Selatan Purba",
["drb"] = "Dair",
["drc"] = "Minderico",
["drd"] = "Darmiya",
["drg"] = "Rungus",
["dri"] = "Lela",
["drl"] = "Baagandji",
["drn"] = "Damar Barat",
["dro"] = "Melanau Daro-Matu",
["drq"] = "Dura",
["drs"] = "Gedeo",
["dru"] = "Rukai",
["dru-pro"] = "Rukai Purba",
["dry"] = "Darai",
["dsb"] = "Lower Sorbian",
["dse"] = "Dutch Sign Language",
["dsh"] = "Daasanach",
["dsi"] = "Disa",
["dsl"] = "Danish Sign Language",
["dsn"] = "Dusner",
["dso"] = "Desiya",
["dsq"] = "Tadaksahak",
["dta"] = "Daur",
["dtb"] = "Kadazan Labuk-Kinabatangan",
["dtd"] = "Ditidaht",
["dth"] = "Adithinngithigh",
["dti"] = "Ana Tinga Dogon",
["dtk"] = "Tene Kan Dogon",
["dtm"] = "Tomo Kan Dogon",
["dto"] = "Tommo So",
["dtp"] = "Kadazandusun",
["dtr"] = "Lotud",
["dts"] = "Toro So Dogon",
["dtt"] = "Toro Tegu Dogon",
["dtu"] = "Tebul Ure Dogon",
["dty"] = "Doteli",
["dua"] = "Duala",
["dub"] = "Dubli",
["duc"] = "Duna",
["due"] = "Agta Umiray Dumaget",
["duf"] = "Dumbea",
["dug"] = "Chiduruma",
["duh"] = "Dungra Bhil",
["dui"] = "Dumun",
["duk"] = "Uyajitaya",
["dul"] = "Agta Pulau Alabat",
["dum"] = "Belanda Pertengahan",
["dun"] = "Dusun Deyah",
["duo"] = "Agta Dupaningan",
["dup"] = "Duano",
["duq"] = "Dusun Malang",
["dur"] = "Dii",
["dus"] = "Dumi",
["duu"] = "Drung",
["duv"] = "Duvle",
["duw"] = "Dusun Witu",
["dux"] = "Duun",
["duy"] = "Agta Dicamay",
["duz"] = "Duli",
["dv"] = "Dhivehi",
["dva"] = "Duau",
["dwa"] = "Diri",
["dwr"] = "Dawro",
["dwu"] = "Dhuwal",
["dww"] = "Dawawa",
["dwy"] = "Dhuwaya",
["dwz"] = "Dewas Rai",
["dya"] = "Dyan",
["dyb"] = "Dyaberdyaber",
["dyd"] = "Dyugun",
["dyg"] = "Agta Villa Viciosa",
["dyi"] = "Djimini",
["dym"] = "Yanda Dogon",
["dyn"] = "Dyangadi",
["dyo"] = "Jola-Fonyi",
["dyu"] = "Dyula",
["dyy"] = "Dyaabugay",
["dz"] = "Dzongkha",
["dza"] = "Tunzu",
["dzg"] = "Dazaga",
["dzl"] = "Dzala",
["dzn"] = "Dzando",
["ebg"] = "Ebughu",
["ebk"] = "Bontoc Timur",
["ebr"] = "Ebrié",
["ebu"] = "Embu",
["ecr"] = "Eteocretan",
["ecs"] = "Bahasa Isyarat Ecuador",
["ecy"] = "Eteocypriot",
["ee"] = "Ewe",
["eee"] = "E",
["efa"] = "Efai",
["efe"] = "Efe",
["efi"] = "Efik",
["ega"] = "Ega",
["egl"] = "Emilian",
["ego"] = "Eggon",
["egx-dem"] = "Mesir Demotik",
["egy"] = "Mesir Purba",
["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"] = "Kayah Timur",
["el"] = "Greek",
["ele"] = "Elepi",
["elh"] = "El Hugeirat",
["eli"] = "Nding",
["elk"] = "Elkei",
["elm"] = "Eleme",
["elo"] = "El Molo",
["elu"] = "Elu",
["elx"] = "Elam",
["ema"] = "Emai",
["emb"] = "Embaloh",
["eme"] = "Emerillon",
["emg"] = "Meohang Timur",
["emi"] = "Mussau-Emira",
["emk"] = "Maninkakan Timur",
["emm"] = "Mamulique",
["emn"] = "Eman",
["emp"] = "Emberá Utara",
["ems"] = "Alutiiq",
["emu"] = "Muria Timur",
["emw"] = "Emplawas",
["emx"] = "Erromintxela",
["emy"] = "Maya Epigrafi",
["en"] = "Inggeris",
["ena"] = "Apali",
["enb"] = "Markweeta",
["enc"] = "En",
["end"] = "Ende",
["enf"] = "Enets Hutan",
["enh"] = "Enets Tundra",
["enl"] = "Enlhet",
["enm"] = "Inggeris Pertengahan",
["enn"] = "Engenni",
["eno"] = "Enggano",
["enq"] = "Enga",
["enr"] = "Emem",
["enu"] = "Enu",
["env"] = "Enwan",
["enw"] = "Enwang",
["enx"] = "Enxet",
["eo"] = "Esperanto",
["eot"] = "Eotile",
["epi"] = "Epie",
["era"] = "Eravallan",
["erg"] = "Sie",
["erh"] = "Eruwa",
["eri"] = "Ogea",
["erk"] = "Efate Selatan",
["ero-gsz"] = "Geshiza",
["ero-nya"] = "Nyagrong Minyag",
["ero-tau"] = "Stau",
["err"] = "Erre",
["ers"] = "Ersu",
["ert"] = "Eritai",
["erw"] = "Erokwanas",
["es"] = "Sepanyol",
["ese"] = "Ese Ejja",
["esh"] = "Eshtehardi",
["esl"] = "Bahasa Isyarat Mesir",
["esm"] = "Esuma",
["esn"] = "Bahasa Isyarat El Salvador",
["eso"] = "Bahasa Isyarat Estonia",
["esq"] = "Esselen",
["ess"] = "Yupik Siberia Tengah",
["esu"] = "Yup'ik",
["esx-esk-pro"] = "Eskimo Purba",
["esx-ink"] = "Inuktun",
["esx-inq"] = "Inuinnaqtun",
["esx-inu-pro"] = "Inuit Purba",
["esx-pro"] = "Eskimo-Aleut Purba",
["esx-tut"] = "Tunumiisut",
["esy"] = "Eskayan",
["et"] = "Estonia",
["etb"] = "Etebi",
["etc"] = "Etchemin",
["eth"] = "Bahasa Isyarat Habsyah",
["etn"] = "Eton (Vanuatu)",
["eto"] = "Eton (Cameroon)",
["etr"] = "Edolo",
["ets"] = "Yekhee",
["ett"] = "Etruria",
["etu"] = "Ejagham",
["etx"] = "Eten",
["etz"] = "Semimi",
["eu"] = "Basque",
["euq-pro"] = "Basque Purba",
["eve"] = "Even",
["evh"] = "Uvbie",
["evn"] = "Evenki",
["ewo"] = "Ewondo",
["ext"] = "Extremaduran",
["eya"] = "Eyak",
["eyo"] = "Keiyo",
["eza"] = "Ezaa",
["eze"] = "Uzekwe",
["fa"] = "Parsi",
["faa"] = "Fasu",
["fab"] = "Annobon",
["fad"] = "Wagi",
["faf"] = "Fagani",
["fag"] = "Finongan",
["fah"] = "Fali Baissa",
["fai"] = "Faiwol",
["faj"] = "Kursav",
["fak"] = "Fang (Beboid)",
["fal"] = "Fali Selatan",
["fam"] = "Fam",
["fan"] = "Fang (Bantu)",
["fap"] = "Palor",
["far"] = "Fataleka",
["fau"] = "Fayu",
["fax"] = "Fala",
["fay"] = "Fars Barat Daya",
["faz"] = "Fars Barat Laut",
["fbl"] = "Bikol Miraya Barat",
["fcs"] = "Bahasa Isyarat Quebec",
["fer"] = "Feroge",
["ff"] = "Fula",
["ffi"] = "Foia Foia",
["fgr"] = "Fongoro",
["fi"] = "Finland",
["fia"] = "Nobiin",
["fie"] = "Fyer",
["fif"] = "Faifi",
["fip"] = "Fipa",
["fir"] = "Firan",
["fit"] = "Meänkieli",
["fiw"] = "Fiwaga",
["fj"] = "Fiji",
["fkk"] = "Kirya-Konzel",
["fkv"] = "Kven",
["fla"] = "Salish Montana",
["flh"] = "Foau",
["fli"] = "Fali",
["fll"] = "Fali Utara",
["fln"] = "Pulau Flinders",
["flr"] = "Fuliiru",
["fly"] = "Tsotsitaal",
["fmp"] = "Fe'fe'",
["fmu"] = "Muria Barat Jauh",
["fng"] = "Fanagalo",
["fni"] = "Fania",
["fo"] = "Faroe",
["fod"] = "Foodo",
["foi"] = "Foi",
["fom"] = "Foma",
["fon"] = "Fon",
["for"] = "Fore",
["fos"] = "Siraya",
["fpe"] = "Pichinglis",
["fqs"] = "Fas",
["fr"] = "Perancis",
["frd"] = "Fordata",
["frm"] = "Perancis Pertengahan",
["fro"] = "Perancis Kuno",
["frp"] = "Franco-Provençal",
["frq"] = "Forak",
["frr"] = "Frisia Utara",
["frt"] = "Fortsenal",
["fse"] = "Bahasa Isyarat Finland",
["fsl"] = "Bahasa Isyarat Perancis",
["fss"] = "Bahasa Isyarat Finland-Sweden",
["fud"] = "Futuna Timur",
["fuj"] = "Ko",
["fum"] = "Fum",
["fun"] = "Fulniô",
["fur"] = "Friulian",
["fut"] = "Futuna-Aniwa",
["fuu"] = "Furu",
["fuy"] = "Fuyug",
["fvr"] = "Fur",
["fwa"] = "Fwâi",
["fwe"] = "Fwe",
["fy"] = "Frisia Barat",
["ga"] = "Ireland",
["gba-pro"] = "Gbaya Purba",
["gd"] = "Gaelik Scotland",
["gem-pro"] = "Jermanik Purba",
["gl"] = "Galicia",
["gme-bur"] = "Burgundia",
["gme-cgo"] = "Goth Crimea",
["gmq-gut"] = "Gutnish",
["gmq-jmk"] = "Jamtish",
["gmq-mno"] = "Norway Pertengahan",
["gmq-oda"] = "Denmark Kuno",
["gmq-ogt"] = "Gutnish Kuno",
["gmq-osw"] = "Sweden Kuno",
["gmq-pro"] = "Norse Purba",
["gmq-scy"] = "Scanian",
["gmw-bgh"] = "Bergish",
["gmw-cfr"] = "Franconia Tengah",
["gmw-ecg"] = "Jerman Tengah Timur",
["gmw-fin"] = "Fingallian",
["gmw-gts"] = "Gottscheerish",
["gmw-jdt"] = "Belanda Jersey",
["gmw-msc"] = "Scots Pertengahan",
["gmw-pro"] = "Jermanik Barat Purba",
["gmw-rfr"] = "Franconia Rhine",
["gmw-stm"] = "Schwaben Szatmár",
["gmw-tsx"] = "Saxon Transylvania",
["gmw-vog"] = "Jerman Volga",
["gmw-zps"] = "Jerman Zipser",
["gn-cls"] = "Guarani Klasik",
["grk-cal"] = "Yunani Calabria",
["grk-ita"] = "Yunani Italiot",
["grk-mar"] = "Yunani Mariupol",
["grk-pro"] = "Hellenik Purba",
["gu"] = "Gujerat",
["gv"] = "Manx",
["gvf"] = "Golin",
["gvj"] = "Guajá",
["gvl"] = "Gulay",
["gvm"] = "Gurmana",
["gvn"] = "Kuku-Yalanji",
["gvo"] = "Gavião do Jiparaná",
["gvp"] = "Gavião Pará",
["gvr"] = "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è Selatan",
["gya"] = "Gbaya Barat Laut",
["gyb"] = "Garus",
["gyd"] = "Kayardild",
["gye"] = "Gyem",
["gyf"] = "Gungabula",
["gyg"] = "Gbayi",
["gyi"] = "Gyele",
["gyl"] = "Gayil",
["gym"] = "Ngäbere",
["gyn"] = "Kreol Inggeris Guyana",
["gyo"] = "Gyalsumdo",
["gyr"] = "Guarayu",
["gyy"] = "Gunya",
["gza"] = "Ganza",
["gzn"] = "Gane",
["ha"] = "Hausa",
["haa"] = "Hän",
["hab"] = "Bahasa Isyarat Hanoi",
["hac"] = "Gurani",
["had"] = "Hatam",
["haf"] = "Bahasa Isyarat Haiphong",
["hag"] = "Hanga",
["hah"] = "Hahon",
["hai"] = "Haida",
["haj"] = "Hajong",
["hak"] = "Hakka",
["hal"] = "Halang",
["ham"] = "Hewa",
["hao"] = "Hakö",
["hap"] = "Hupla",
["har"] = "Harari",
["has"] = "Haisla",
["hav"] = "Havu",
["haw"] = "Hawaii",
["hax"] = "Haida Selatan",
["hay"] = "Haya",
["hba"] = "Hamba",
["hbb"] = "Huba",
["hbn"] = "Heiban",
["hbu"] = "Habu",
["hca"] = "Hindi Kreol Andaman",
["hch"] = "Huichol",
["hdn"] = "Haida Utara",
["hds"] = "Bahasa Isyarat Honduras",
["hdy"] = "Hadiyya",
["he"] = "Ibrani",
["hea"] = "Miao Qiandong Utara",
["hed"] = "Herdé",
["heg"] = "Helong",
["heh"] = "Hehe",
["hei"] = "Heiltsuk",
["hem"] = "Hemba",
["hgm"] = "Haiǁom",
["hgw"] = "Haigwai",
["hhi"] = "Hoia Hoia",
["hhr"] = "Kerak",
["hhy"] = "Hoyahoya",
["hi"] = "Hindi",
["hia"] = "Lamang",
["hib"] = "Hibito",
["hid"] = "Hidatsa",
["hif"] = "Hindi Fiji",
["hig"] = "Kamwe",
["hih"] = "Pamosu",
["hii"] = "Hinduri",
["hij"] = "Hijuk",
["hik"] = "Seit-Kaitetu",
["hil"] = "Hiligaynon",
["hio"] = "Tshwa",
["hir"] = "Himarimã",
["hit"] = "Het",
["hiw"] = "Hiw",
["hix"] = "Hixkaryana",
["hji"] = "Haji",
["hka"] = "Kahe",
["hke"] = "Hunde",
["hkh"] = "Pogali",
["hkk"] = "Hunjara-Kaina Ke",
["hkn"] = "Mel-Khaonh",
["hks"] = "Bahasa Isyarat Hong Kong",
["hla"] = "Halia",
["hlb"] = "Halbi",
["hld"] = "Halang Doan",
["hle"] = "Hlersu",
["hlt"] = "Nga La",
["hma"] = "Hmong Mashan Selatan",
["hmb"] = "Humburi Senni",
["hmc"] = "Hmong Huishui Tengah",
["hmd"] = "A-Hmao",
["hme"] = "Hmong Huishui Timur",
["hmf"] = "Hmong Don",
["hmg"] = "Hmong Guiyang Barat Daya",
["hmh"] = "Hmong Huishui Barat Daya",
["hmi"] = "Hmong Huishui Utara",
["hmj"] = "Ge",
["hmk"] = "Maek",
["hml"] = "Hmong Luopohe",
["hmm"] = "Hmong Mashan Tengah",
["hmn-pro"] = "Hmongik Purba",
["hmp"] = "Hmong Mashan Utara",
["hmq"] = "Miao Qiandong Timur",
["hmr"] = "Hmar",
["hms"] = "Miao Qiandong Selatan",
["hmt"] = "Hamtai",
["hmu"] = "Hamap",
["hmv"] = "Hmong Dô",
["hmw"] = "Hmong Mashan Barat",
["hmx-mie-pro"] = "Mienik Purba",
["hmx-pro"] = "Hmong-Mien Purba",
["hmy"] = "Hmong Guiyang Selatan",
["hmz"] = "Hmong Shua",
["hna"] = "Mina",
["hnd"] = "Hindko Selatan",
["hne"] = "Chhattisgarhi",
["hnh"] = "ǁAni",
["hni"] = "Hani",
["hnj"] = "Hmong Hijau",
["hnn"] = "Hanunoo",
["hno"] = "Hindko Utara",
["hns"] = "Hindustan Caribbean",
["hnu"] = "Hung",
["ho"] = "Hiri Motu",
["hoa"] = "Hoava",
["hob"] = "Mari Austronesia",
["hoc"] = "Ho",
["hod"] = "Holma",
["hoe"] = "Horom",
["hoh"] = "Hobyót",
["hoi"] = "Holikachuk",
["hoj"] = "Hadothi",
["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"] = "Hunsrik",
["hrz"] = "Harzani",
["hsb"] = "Sorbia Atas",
["hsh"] = "Bahasa Isyarat Hungary",
["hsl"] = "Bahasa Isyarat Hausa",
["hsn"] = "Xiang",
["hss"] = "Harsusi",
["ht"] = "Kreol Haiti",
["hti"] = "Hoti",
["hto"] = "Minica Huitoto",
["hts"] = "Hadza",
["htu"] = "Hitu",
["hu"] = "Hungary",
["hub"] = "Huambisa",
["huc"] = "ǂHoan",
["hud"] = "Huaulu",
["huf"] = "Humene",
["hug"] = "Huachipaeri",
["huh"] = "Huilliche",
["hui"] = "Huli",
["huj"] = "Hmong Guiyang Utara",
["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"] = "Kreol Hawaii",
["hwo"] = "Hwana",
["hy"] = "Armenia",
["hya"] = "Hya",
["hyx-pro"] = "Armenia Purba",
["hz"] = "Herero",
["ia"] = "Interlingua",
["iai"] = "Iaai",
["ian"] = "Iatmul",
["iar"] = "Purari",
["iba"] = "Iban",
["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"] = "Bahasa Isyarat Iceland",
["icr"] = "Inggeris Kreol Islander",
["id"] = "Indonesia",
["ida"] = "Idakho-Isukha-Tiriki",
["idb"] = "Indo-Portugis",
["idc"] = "Idon",
["idd"] = "Ede Idaca",
["ide"] = "Idere",
["idi"] = "Idi",
["idr"] = "Indri",
["ids"] = "Idesa",
["idt"] = "Idaté",
["idu"] = "Idoma",
["ie"] = "Interlingue",
["ifa"] = "Amganad Ifugao",
["ifb"] = "Batad Ifugao",
["ife"] = "Ifè",
["iff"] = "Ifo",
["ifk"] = "Tuwali Ifugao",
["ifm"] = "Teke-Fuumu",
["ifu"] = "Mayoyao Ifugao",
["ify"] = "Keley-I Kallahan",
["ig"] = "Igbo",
["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"] = "Nuosu",
["iir-nur-pro"] = "Nuristani Purba",
["iir-pro"] = "Indo-Iran Purba",
["ijc"] = "Izon",
["ije"] = "Biseni",
["ijj"] = "Ede Ije",
["ijn"] = "Kalabari",
["ijo-pro"] = "Ijoid Purba",
["ijs"] = "Southeast Ijo",
["ik"] = "Inupiaq",
["ike"] = "Eastern Canadian Inuktitut",
["iki"] = "Iko",
["ikk"] = "Ika",
["ikl"] = "Ikulu",
["iko"] = "Olulumo-Ikom",
["ikp"] = "Ikpeshi",
["ikr"] = "Ikaranggal",
["iks"] = "Bahasa Isyarat Inuit",
["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"] = "Iranun",
["ilo"] = "Ilocano",
["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"] = "Prakrit Ashoka",
["inc-dng-pro"] = "Dangari Purba",
["inc-kam"] = "Prakrit Kamarupi",
["inc-kho"] = "Kholosi",
["inc-khr"] = "Khortha",
["inc-krd-pro"] = "Kamta Purba",
["inc-mas"] = "Assam Pertengahan",
["inc-mbn"] = "Bengal Pertengahan",
["inc-mgu"] = "Gujarati Pertengahan",
["inc-mor"] = "Odia Pertengahan",
["inc-oas"] = "Assam Awal",
["inc-oaw"] = "Awadhi Kuno",
["inc-obn"] = "Bengal Kuno",
["inc-ogu"] = "Gujarati Kuno",
["inc-ohi"] = "Hindi Kuno",
["inc-oor"] = "Odia Kuno",
["inc-opa"] = "Punjabi Kuno",
["inc-pro"] = "Indo-Arya Purba",
["inc-sar"] = "Sarazi",
["ine-ana-pro"] = "Anatolia Purba",
["ine-bsl-pro"] = "Balto-Slavik Purba",
["ine-kal"] = "Kalašma",
["ine-pae"] = "Paeonia",
["ine-pro"] = "Indo-Eropah Purba",
["ine-toc-pro"] = "Tocharia Purba",
["ing"] = "Deg Xinag",
["inh"] = "Ingush",
["inj"] = "Jungle Inga",
["inl"] = "Bahasa Isyarat Indonesia",
["inm"] = "Minaean",
["inn"] = "Isinai",
["ino"] = "Inoke-Yate",
["inp"] = "Iñapari",
["ins"] = "Bahasa Isyarat India",
["int"] = "Intha",
["inz"] = "Ineseño",
["io"] = "Ido",
["ior"] = "Inor",
["iou"] = "Tuma-Irumu",
["iow"] = "Chiwere",
["ipi"] = "Ipili",
["ipo"] = "Ipiko",
["iqu"] = "Iquito",
["iqw"] = "Ikwo",
["ira-kms-pro"] = "Komisenia Purba",
["ira-mny-pro"] = "Munji-Yidgha Purba",
["ira-mpr-pro"] = "Medo-Parthia Purba",
["ira-pat-pro"] = "Pathan Purba",
["ira-pro"] = "Iran Purba",
["ira-sgc-pro"] = "Sogdia Purba",
["ira-sgi-pro"] = "Sanglechi-Ishkashimi Purba",
["ira-shr-pro"] = "Shughni-Roshani Purba",
["ira-shy-pro"] = "Shughni-Yazghulami Purba",
["ira-sym-pro"] = "Shughni-Yazghulami-Munji Purba",
["ira-wnj"] = "Vanji",
["ira-zgr-pro"] = "Zaza-Gorani Purba",
["ire"] = "Iresim",
["irh"] = "Irarutu",
["iri"] = "Rigwe",
["irk"] = "Iraqw",
["irn"] = "Irantxe",
["iro-ere"] = "Erie",
["iro-min"] = "Mingo",
["iro-nor-pro"] = "Iroquois Utara Purba",
["iro-pro"] = "Iroquois Purba",
["irr"] = "Ir",
["iru"] = "Irula",
["irx"] = "Kamberau",
["iry"] = "Iraya",
["is"] = "Iceland",
["isa"] = "Isabi",
["isc"] = "Isconahua",
["isd"] = "Isnag",
["ise"] = "Bahasa Isyarat Itali",
["isg"] = "Bahasa Isyarat Ireland",
["ish"] = "Esan",
["isi"] = "Nkem-Nkum",
["isk"] = "Ishkashimi",
["ism"] = "Masimasi",
["isn"] = "Isanzu",
["iso"] = "Isoko",
["isr"] = "Bahasa Isyarat Israel",
["ist"] = "Istriot",
["isu"] = "Isu",
["isv"] = "Interslavic",
["it"] = "Itali",
["itb"] = "Binongan Itneg",
["itc-pro"] = "Italik Purba",
["itc-psa"] = "Pra-Samnit",
["itd"] = "Tidung Selatan",
["ite"] = "Itene",
["iti"] = "Inlaod Itneg",
["itk"] = "Judeo-Itali",
["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"] = "Itzá",
["iu"] = "Inuktitut",
["ium"] = "Iu Mien",
["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"] = "Ingria",
["izi"] = "Izi-Ezaa-Ikwo-Mgbo",
["izr"] = "Izere",
["izz"] = "Izi",
["ja"] = "Jepun",
["jaa"] = "Jamamadí",
["jab"] = "Hyam",
["jac"] = "Jakaltek",
["jad"] = "Jahanka",
["jae"] = "Jabem",
["jaf"] = "Jara",
["jah"] = "Jah Hut",
["jaj"] = "Zazao",
["jak"] = "Jakun",
["jal"] = "Yalahatan",
["jam"] = "Kreol Jamaica",
["jan"] = "Janday",
["jao"] = "Yanyuwa",
["jaq"] = "Yaqay",
["jas"] = "New Caledonian Javanese",
["jat"] = "Jakati",
["jau"] = "Yaur",
["jax"] = "Melayu Jambi",
["jay"] = "Yan-nhangu",
["jaz"] = "Jawe",
["jbj"] = "Arandai",
["jbk"] = "Barikewa",
["jbn"] = "Nefusa",
["jbo"] = "Lojban",
["jbr"] = "Jofotek-Bromnya",
["jbt"] = "Jabutí",
["jbu"] = "Jukun Takum",
["jbw"] = "Yawijibaya",
["jcs"] = "Bahasa Isyarat Negara Jamaica",
["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"] = "Bahasa Isyarat Jhankot",
["jia"] = "Jina",
["jib"] = "Jibu",
["jic"] = "Tol",
["jid"] = "Bu",
["jie"] = "Jilbe",
["jig"] = "Jingulu",
["jih"] = "Shangzhai",
["jii"] = "Jiiddu",
["jil"] = "Jilim",
["jim"] = "Jimjimen",
["jio"] = "Jiamao",
["jiq"] = "Khroskyabs",
["jit"] = "Jita",
["jiu"] = "Youle Jino",
["jiv"] = "Shuar",
["jiy"] = "Buyuan Jino",
["jje"] = "Jeju",
["jjr"] = "Zhár",
["jka"] = "Kaera",
["jko"] = "Kubo",
["jkr"] = "Koro (India)",
["jku"] = "Labir",
["jle"] = "Ngile",
["jls"] = "Bahasa Isyarat Jamaica",
["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"] = "Bahasa Isyarat Jordan",
["jow"] = "Jowulu",
["jpr"] = "Judeo-Persian",
["jpx-hcj"] = "Hachijō",
["jpx-pro"] = "Jepunik Purba",
["jpx-ryu-pro"] = "Ryukyu Purba",
["jqr"] = "Jaqaru",
["jra"] = "Jarai",
["jrr"] = "Jiru",
["jru"] = "Japrería",
["jsl"] = "Bahasa Isyarat Jepun",
["jua"] = "Júma",
["jub"] = "Wannu",
["juc"] = "Jurchen",
["jud"] = "Worodougou",
["juh"] = "Hone",
["jui"] = "Ngadjuri",
["juk"] = "Wapan",
["jul"] = "Jirel",
["jum"] = "Jumjum",
["jun"] = "Juang",
["juo"] = "Jiba",
["jup"] = "Hupdë",
["jur"] = "Jurúna",
["jus"] = "Bahasa Isyarat Jumla",
["jut"] = "Jutish",
["juu"] = "Ju",
["juw"] = "Wãpha",
["juy"] = "Juray",
["jv"] = "Jawa",
["jvd"] = "Javindo",
["jvn"] = "Jawa Caribbean",
["jwi"] = "Jwira-Pepesa",
["jyy"] = "Jaya",
["ka"] = "Georgia",
["kaa"] = "Karakalpak",
["kab"] = "Kabyle",
["kac"] = "Jingpho",
["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"] = "Karen Purba",
["kaw"] = "Jawa Kuno",
["kax"] = "Kao",
["kay"] = "Kamayurá",
["kba"] = "Kalarko",
["kbb"] = "Kaxuyana",
["kbc"] = "Kadiwéu",
["kbd"] = "Kabardia",
["kbe"] = "Kanju",
["kbh"] = "Camsá",
["kbi"] = "Kaptiau",
["kbj"] = "Kari",
["kbk"] = "Grass Koiari",
["kbm"] = "Iwal",
["kbn"] = "Kare (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"] = "Khanty Timur",
["kca-nor"] = "Khanty Utara",
["kca-pro"] = "Khanty Purba",
["kca-sou"] = "Khanty Selatan",
["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"] = "Numee",
["kdl"] = "Tsikimba",
["kdm"] = "Kagoma",
["kdn"] = "Kunda",
["kdp"] = "Kaningdon-Nindem",
["kdq"] = "Koch",
["kdr"] = "Karaim",
["kdt"] = "Kuy",
["kdu"] = "Kadaru",
["kdv"] = "Kado",
["kdw"] = "Koneraw",
["kdx"] = "Kam",
["kdy"] = "Keder",
["kdz"] = "Kwaja",
["kea"] = "Kabuverdianu",
["keb"] = "Kélé",
["kec"] = "Keiga",
["ked"] = "Kerewe",
["kee"] = "Keres Timur",
["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 (Afrika Barat)",
["kfp"] = "Korwa",
["kfq"] = "Korku",
["kfr"] = "Kachchi",
["kfs"] = "Bilaspuri",
["kft"] = "Kanjari",
["kfu"] = "Katkari",
["kfv"] = "Kurmukar",
["kfw"] = "Kharam Naga",
["kfx"] = "Kullu Pahari",
["kfy"] = "Kumaoni",
["kfz"] = "Koromfé",
["kg"] = "Kongo",
["kga"] = "Koyaga",
["kgb"] = "Kawe",
["kgd"] = "Kataang",
["kge"] = "Komering",
["kgf"] = "Kube",
["kgg"] = "Kusunda",
["kgi"] = "Selangor Sign Language",
["kgj"] = "Gamale Kham",
["kgk"] = "Kaiwá",
["kgl"] = "Kunggari",
["kgm"] = "Karipúna",
["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"] = "Khasi",
["khb"] = "Lü",
["khc"] = "Tukang Besi Utara",
["khd"] = "Bädi Kanum",
["khe"] = "Korowai",
["khf"] = "Khuen",
["khh"] = "Kehu",
["khi-kho-pro"] = "Khoe Purba",
["khi-kun"] = "ǃKung",
["khj"] = "Kuturmi",
["khl"] = "Lusi",
["khn"] = "Khandeshi",
["kho"] = "Khotan",
["khp"] = "Kapauri",
["khq"] = "Koyra Chiini",
["khr"] = "Kharia",
["khs"] = "Kasua",
["kht"] = "Khamti",
["khu"] = "Nkhumbi",
["khv"] = "Khvarshi",
["khw"] = "Khowar",
["khx"] = "Kanu",
["khy"] = "Ekele",
["khz"] = "Keapara",
["ki"] = "Kikuyu",
["kia"] = "Kim",
["kib"] = "Koalib",
["kic"] = "Kickapoo",
["kid"] = "Koshin",
["kie"] = "Kibet",
["kif"] = "Kham Parbate Timur",
["kig"] = "Kimaama",
["kih"] = "Kilmeri",
["kii"] = "Kitsai",
["kij"] = "Kilivila",
["kil"] = "Kariya",
["kim"] = "Tofa",
["kio"] = "Kiowa",
["kip"] = "Sheshi Kham",
["kiq"] = "Kosadle",
["kis"] = "Kis",
["kit"] = "Agob",
["kiv"] = "Kimbu",
["kiw"] = "Kiwai Timur Laut",
["kix"] = "Naga Khiamniungan",
["kiy"] = "Kirikiri",
["kiz"] = "Kisi",
["kj"] = "Kwanyama",
["kja"] = "Mlap",
["kjb"] = "Q'anjob'al",
["kjc"] = "Konjo Pesisir",
["kjd"] = "Kiwai Selatan",
["kje"] = "Kisar",
["kjg"] = "Khmu",
["kjh"] = "Khakas",
["kji"] = "Zabana",
["kjj"] = "Khinalug",
["kjk"] = "Highland Konjo",
["kjl"] = "Kham",
["kjm"] = "Kháng",
["kjn"] = "Kunjen",
["kjo"] = "Harijan Kinnauri",
["kjp"] = "Pwo Timur",
["kjq"] = "Keres Barat",
["kjr"] = "Kurudu",
["kjs"] = "Kewa Timur",
["kjt"] = "Phrae Pwo",
["kju"] = "Kashaya",
["kjx"] = "Ramopa",
["kjy"] = "Erave",
["kjz"] = "Bumthangkha",
["kk"] = "Kazakh",
["kka"] = "Kakanda",
["kkb"] = "Kwerisa",
["kkc"] = "Odoodee",
["kkd"] = "Kinuku",
["kke"] = "Kakabe",
["kkf"] = "Monpa Kalaktang",
["kkg"] = "Kalinga Lembah Mabaka",
["kkh"] = "Khün",
["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"] = "Greenland",
["kla"] = "Klamath-Modoc",
["klb"] = "Kiliwa",
["klc"] = "Kolbila",
["kld"] = "Gamilaraay",
["kle"] = "Kulung",
["klf"] = "Kendeje",
["klg"] = "Kalagan Tagakaulu",
["klh"] = "Weliki",
["kli"] = "Kalumpang",
["klj"] = "Khalaj",
["klk"] = "Kono (Nigeria)",
["kll"] = "Kalagan Kagan",
["klm"] = "Kolom",
["kln"] = "Kalenjin",
["klo"] = "Kapya",
["klp"] = "Kamasa",
["klq"] = "Rumu",
["klr"] = "Khaling",
["kls"] = "Kalasha",
["klt"] = "Nukna",
["klu"] = "Klao",
["klv"] = "Maskelynes",
["klw"] = "Lindu",
["klx"] = "Koluwawa",
["kly"] = "Kalao",
["klz"] = "Kabola",
["km"] = "Khmer",
["kma"] = "Konni",
["kmb"] = "Kimbundu",
["kmc"] = "Kam Selatan",
["kmd"] = "Kalinga Madukayang",
["kme"] = "Bakole",
["kmf"] = "Kare (New Guinea)",
["kmg"] = "Kâte",
["kmh"] = "Kalam",
["kmi"] = "Kami",
["kmj"] = "Kumarbhag Paharia",
["kmk"] = "Kalinga Limos",
["kml"] = "Kalinga Tanudan",
["kmm"] = "Kom (India)",
["kmn"] = "Awtuw",
["kmo"] = "Kwoma",
["kmp"] = "Gimme",
["kmq"] = "Kwama",
["kmr"] = "Kurdi Utara",
["kms"] = "Kamasau",
["kmt"] = "Kemtuik",
["kmu"] = "Kanite",
["kmv"] = "Perancis Kreol Karipúna",
["kmw"] = "Kumu",
["kmx"] = "Waboda",
["kmy"] = "Koma",
["kmz"] = "Turki Khorasan",
["kn"] = "Kannada",
["kna"] = "Kanakuru",
["knb"] = "Kalinga Lubuagan",
["knd"] = "Konda",
["kne"] = "Kankanaey",
["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"] = "Salako",
["kny"] = "Kanyok",
["knz"] = "Kalamsé",
["ko"] = "Korea",
["ko-ear"] = "Korea Moden Awal",
["koa"] = "Konomala",
["koc"] = "Kpati",
["kod"] = "Kodi",
["koe"] = "Kacipo-Balesi",
["kof"] = "Kubi",
["kog"] = "Cogui",
["koh"] = "Koyo",
["koi"] = "Komi-Permyak",
["kok"] = "Konkani",
["kol"] = "Kol (New Guinea)",
["koo"] = "Konzo",
["kop"] = "Waube",
["koq"] = "Kota (Gabon)",
["kos"] = "Kosrae",
["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"] = "Koho",
["kpn"] = "Kepkiriwát",
["kpo"] = "Ikposo",
["kpp"] = "Karen Paku",
["kpq"] = "Korupun-Sela",
["kpr"] = "Korafe-Yegha",
["kps"] = "Tehit",
["kpt"] = "Karata",
["kpu"] = "Kafoa",
["kpv"] = "Komi-Zyrian",
["kpw"] = "Kobon",
["kpx"] = "Koiari Gunung",
["kpy"] = "Koryak",
["kpz"] = "Kupsabiny",
["kqa"] = "Mum",
["kqb"] = "Kovai",
["kqc"] = "Doromu-Koki",
["kqd"] = "Koy Sanjaq Surat",
["kqe"] = "Kalagan",
["kqf"] = "Kakabai",
["kqg"] = "Khe",
["kqh"] = "Kisankasa",
["kqi"] = "Koitabu",
["kqj"] = "Koromira",
["kqk"] = "Gbe Kotafon",
["kql"] = "Kyenele",
["kqm"] = "Khisa",
["kqn"] = "Kaonde",
["kqo"] = "Krahn Timur",
["kqp"] = "Kimré",
["kqq"] = "Krenak",
["kqr"] = "Kimaragang",
["kqs"] = "Kissi Utara",
["kqt"] = "Kadazan Sungai Klias",
["kqu"] = "Seroa",
["kqv"] = "Okolod",
["kqw"] = "Kandas",
["kqx"] = "Mser",
["kqy"] = "Koorete",
["kqz"] = "Korana",
["kr"] = "Kanuri",
["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"] = "Karelia",
["krm"] = "Krim",
["krn"] = "Sapo",
["kro-pro"] = "Kru Purba",
["krp"] = "Korop",
["krr"] = "Kru'ng",
["krs"] = "Kresh",
["kru"] = "Kurukh",
["krv"] = "Kavet",
["krw"] = "Krahn Barat",
["krx"] = "Karon",
["kry"] = "Kryts",
["krz"] = "Sota Kanum",
["ks"] = "Kashmir",
["ksa"] = "Shuwa-Zamani",
["ksb"] = "Shambala",
["ksc"] = "Kalinga Selatan",
["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"] = "Kissi Selatan",
["kst"] = "Winyé",
["ksu"] = "Khamyang",
["ksv"] = "Kusu",
["ksw"] = "Karen S'gaw",
["ksx"] = "Kedang",
["ksy"] = "Kharia Thar",
["ksz"] = "Kodaku",
["kta"] = "Katua",
["ktb"] = "Kambaata",
["ktc"] = "Kholok",
["ktd"] = "Kokata",
["ktf"] = "Kwami",
["ktg"] = "Kalkatungu",
["kth"] = "Karanga",
["kti"] = "Muyu Utara",
["ktj"] = "Plapo Krumen",
["ktk"] = "Kaniet",
["ktl"] = "Koroshi",
["ktm"] = "Kurti",
["ktn"] = "Karitiâna",
["kto"] = "Kuot",
["ktp"] = "Kaduo",
["ktq"] = "Katabaga",
["ktr"] = "Tinagas Kota Marudu",
["kts"] = "Muyu Selatan",
["ktt"] = "Ketum",
["ktu"] = "Kituba",
["ktv"] = "Katu Timur",
["ktw"] = "Kato",
["ktx"] = "Kaxararí",
["kty"] = "Kango",
["ktz"] = "Juǀ'hoan",
["ku-pro"] = "Kurdi Purba",
["kub"] = "Kutep",
["kuc"] = "Kwinsu",
["kud"] = "Auhelawa",
["kue"] = "Kuman",
["kuf"] = "Katu Barat",
["kug"] = "Kupa",
["kuh"] = "Kushi",
["kui"] = "Kuikúro",
["kuj"] = "Kuria",
["kuk"] = "Kepo'",
["kul"] = "Kulere",
["kum"] = "Kumyk",
["kun"] = "Kunama",
["kuo"] = "Kumukio",
["kup"] = "Kunimaipa",
["kuq"] = "Karipuna",
["kus"] = "Kusaal",
["kut"] = "Kutenai",
["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"] = "Bahasa Isyarat Korea",
["kvl"] = "Karen Brek",
["kvm"] = "Kendem",
["kvn"] = "Kuna Sempadan",
["kvo"] = "Dobel",
["kvp"] = "Kompane",
["kvq"] = "Karen Geba",
["kvr"] = "Kerinci",
["kvt"] = "Karen Lahta",
["kvu"] = "Karen Yinbaw",
["kvv"] = "Kola",
["kvw"] = "Wersing",
["kvx"] = "Parkari Koli",
["kvy"] = "Karen Yintale",
["kvz"] = "Tsakwambo",
["kw"] = "Cornish",
["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"] = "Khonso",
["kxd"] = "Melayu Brunei",
["kxe"] = "Kakihum",
["kxf"] = "Karen Manumanaw",
["kxh"] = "Karo",
["kxi"] = "Murut Keningau",
["kxj"] = "Kulfa",
["kxk"] = "Karen Zayein",
["kxl"] = "Nepal Kurux",
["kxm"] = "Khmer Utara",
["kxn"] = "Kanowit",
["kxo"] = "Kanoé",
["kxp"] = "Wadiyara Koli",
["kxq"] = "Smärky Kanum",
["kxr"] = "Koro (New Guinea)",
["kxs"] = "Kangjia",
["kxt"] = "Koiwat",
["kxu"] = "Kui (India)",
["kxv"] = "Kuvi",
["kxw"] = "Konai",
["kxx"] = "Likuba",
["kxy"] = "Kayong",
["kxz"] = "Kerewo",
["ky"] = "Kyrgyz",
["kya"] = "Kwaya",
["kyb"] = "Kalinga Butbut",
["kyc"] = "Kyaka",
["kyd"] = "Karey",
["kye"] = "Krache",
["kyf"] = "Kouya",
["kyg"] = "Keyagana",
["kyh"] = "Karok",
["kyi"] = "Kiput",
["kyj"] = "Karao",
["kyk"] = "Kamayo",
["kyl"] = "Kalapuya",
["kym"] = "Kpatili",
["kyn"] = "Karolanos",
["kyo"] = "Kelon",
["kyp"] = "Kang",
["kyq"] = "Kenga",
["kyr"] = "Kuruáya",
["kys"] = "Kayan Baram",
["kyt"] = "Kayagar",
["kyu"] = "Kayah Barat",
["kyv"] = "Kayort",
["kyw"] = "Kudmali",
["kyx"] = "Rapoisi",
["kyy"] = "Kambaira",
["kyz"] = "Kayabí",
["kza"] = "Karaboro Barat",
["kzb"] = "Kaibobo",
["kzc"] = "Bondoukou Kulango",
["kzd"] = "Kadai",
["kze"] = "Kosena",
["kzf"] = "Da'a Kaili",
["kzg"] = "Kikai",
["kzh"] = "Dongolawi",
["kzi"] = "Kelabit",
["kzj"] = "Kadazan",
["kzk"] = "Kazukuru",
["kzl"] = "Kayeli",
["kzm"] = "Kais",
["kzn"] = "Kokola",
["kzo"] = "Kaningi",
["kzp"] = "Kaidipang",
["kzq"] = "Kaike",
["kzr"] = "Karang",
["kzs"] = "Dusun Sugut",
["kzt"] = "Dusun Tambunan",
["kzu"] = "Kayupulau",
["kzv"] = "Komyandaret",
["kzw"] = "Kariri",
["kzx"] = "Kamarian",
["kzy"] = "Kango-Sua",
["kzz"] = "Kalabra",
["la"] = "Latin",
["laa"] = "Subanun Lapuyan",
["lab"] = "Linear A",
["lac"] = "Lacandon",
["lad"] = "Ladino",
["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"] = "Luxembourg",
["lbb"] = "Label",
["lbc"] = "Lakkia",
["lbe"] = "Lak",
["lbf"] = "Tinani",
["lbg"] = "Laopang",
["lbi"] = "La'bi",
["lbj"] = "Ladakhi",
["lbk"] = "Bontoc Tengah",
["lbl"] = "Bikol Libon",
["lbm"] = "Lodhi",
["lbn"] = "Lamet",
["lbo"] = "Laven",
["lbq"] = "Wampar",
["lbr"] = "Lorung Utara",
["lbs"] = "Bahasa Isyarat Libya",
["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"] = "Lawa Barat",
["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"] = "Lenca Honduras",
["leo"] = "Leti (Cameroon)",
["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"] = "Lezgi",
["lfa"] = "Lefa",
["lfn"] = "Lingua Franca Nova",
["lg"] = "Luganda",
["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"] = "Limburg",
["lia"] = "Limba Barat-Tengah",
["lib"] = "Likum",
["lic"] = "Hlai",
["lid"] = "Nyindrou",
["lie"] = "Likila",
["lif"] = "Limbu",
["lig"] = "Ligbi",
["lih"] = "Lihir",
["lii"] = "Lingkhim",
["lij"] = "Ligurian",
["lik"] = "Lika",
["lil"] = "Lillooet",
["lio"] = "Liki",
["lip"] = "Sekpele",
["liq"] = "Libido",
["lir"] = "Liberian Kreyol",
["lis"] = "Lisu",
["liu"] = "Logorik",
["liv"] = "Livonian",
["liw"] = "Col",
["lix"] = "Liabuku",
["liy"] = "Banda-Bambari",
["liz"] = "Libinza",
["lja"] = "Golpa",
["lje"] = "Rampi",
["lji"] = "Laiyolo",
["ljl"] = "Li'o",
["ljp"] = "Lampung Api",
["ljw"] = "Yirandali",
["ljx"] = "Yuru",
["lka"] = "Lakalei",
["lkb"] = "Kabras",
["lkc"] = "Kucong",
["lkd"] = "Lakondê",
["lke"] = "Kenyi",
["lkh"] = "Lakha",
["lki"] = "Laki",
["lkj"] = "Remun",
["lkl"] = "Laeko-Libuat",
["lkm"] = "Kalaamaya",
["lkn"] = "Lakon",
["lko"] = "Khayo",
["lkr"] = "Päri",
["lks"] = "Kisa",
["lkt"] = "Lakota",
["lku"] = "Kungkari",
["lky"] = "Lokoya",
["lla"] = "Lala-Roba",
["llb"] = "Lolo",
["llc"] = "Lele (Guinea)",
["lld"] = "Ladin",
["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"] = "Efate Utara",
["llq"] = "Lolak",
["lls"] = "Lithuanian Sign Language",
["llu"] = "Lau",
["llx"] = "Lauan",
["lma"] = "Limba Timur",
["lmb"] = "Merei",
["lmc"] = "Limilngan",
["lmd"] = "Lumun",
["lme"] = "Pévé",
["lmf"] = "Lembata Selatan",
["lmg"] = "Lamogai",
["lmh"] = "Lambichhong",
["lmi"] = "Lombi",
["lmj"] = "Lembata Barat",
["lmk"] = "Lamkang",
["lml"] = "Raga",
["lmn"] = "Lambadi",
["lmo"] = "Lombard",
["lmp"] = "Limbum",
["lmq"] = "Lamatuka",
["lmr"] = "Lamalera",
["lmu"] = "Lamenu",
["lmv"] = "Lomaiviti",
["lmw"] = "Lake Miwok",
["lmx"] = "Laimbue",
["lmy"] = "Laboya",
["lmz"] = "Lumbee",
["ln"] = "Lingala",
["lna"] = "Langbashe",
["lnb"] = "Mbalanhu",
["lnd"] = "Lun Bawang",
["lnh"] = "Lanoh",
["lni"] = "Daantanai'",
["lnj"] = "Linngithigh",
["lnl"] = "Banda Tengah Selatan",
["lnm"] = "Langam",
["lnn"] = "Lorediakarkar",
["lno"] = "Lango (Sudan)",
["lns"] = "Lamnso'",
["lnu"] = "Longuda",
["lnw"] = "Lanima",
["lo"] = "Lao",
["loa"] = "Loloda",
["lob"] = "Lobi",
["loc"] = "Inonhan",
["lod"] = "Berawan",
["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"] = "Kreol Louisiana",
["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"] = "Lur Utara",
["lre"] = "Laurentia",
["lrg"] = "Laragia",
["lri"] = "Marachi",
["lrk"] = "Loarki",
["lrl"] = "Larestani",
["lrm"] = "Marama",
["lrn"] = "Lorang",
["lro"] = "Laro",
["lrr"] = "Lorung Selatan",
["lrt"] = "Melayu Larantuka",
["lrv"] = "Larevat",
["lrz"] = "Lemerig",
["lsa"] = "Lasgerdi",
["lsd"] = "Lishana Deni",
["lse"] = "Lusengo",
["lsh"] = "Lish",
["lsi"] = "Lashi",
["lsl"] = "Bahasa Isyarat Latvia",
["lsm"] = "Saamia",
["lso"] = "Bahasa Isyarat Lao",
["lsp"] = "Bahaaa Isyarat Panama",
["lsr"] = "Aruop",
["lss"] = "Lasi",
["lst"] = "Bahasa Isyarat Trinidad dan Tobago",
["lsy"] = "Bahaaa Isyarat Mauritius",
["lt"] = "Lithuania",
["ltc"] = "Cina Pertengahan",
["ltg"] = "Latgalia",
["lti"] = "Leti (Indonesia)",
["ltn"] = "Latundê",
["lto"] = "Olutsotso",
["lts"] = "Lutachoni",
["ltu"] = "Latu",
["lu"] = "Luba-Katanga",
["lua"] = "Luba-Kasai",
["luc"] = "Aringa",
["lud"] = "Ludian",
["lue"] = "Luvale",
["luf"] = "Laua",
["lui"] = "Luiseño",
["luj"] = "Luna",
["luk"] = "Lunanakha",
["lul"] = "Olu'bo",
["lum"] = "Luimbi",
["lun"] = "Lunda",
["luo"] = "Luo",
["lup"] = "Lumbu",
["luq"] = "Lucumí",
["lur"] = "Laura",
["lus"] = "Mizo",
["lut"] = "Lushootseed",
["luu"] = "Lumba-Yakkha",
["luv"] = "Luwati",
["luy"] = "Luhya",
["luz"] = "Lur Selatan",
["lv"] = "Latvia",
["lva"] = "Maku'a",
["lvi"] = "Lawi",
["lvk"] = "Lavukaleve",
["lvl"] = "Lwel",
["lvu"] = "Levuka",
["lwa"] = "Lwalu",
["lwe"] = "Lewo Eleng",
["lwg"] = "Wanga",
["lwh"] = "Lachi Putih",
["lwl"] = "Lawa Timur",
["lwm"] = "Laomian",
["lwo"] = "Luwo",
["lws"] = "Malawian Sign Language",
["lwt"] = "Lewotobi",
["lwu"] = "Lawu",
["lww"] = "Lewo",
["lya"] = "Layakha",
["lyg"] = "Lyngngam",
["lyn"] = "Luyana",
["lzh"] = "Literary Chinese",
["lzl"] = "Litzlitz",
["lzn"] = "Leinong Naga",
["lzz"] = "Laz",
["maa"] = "Mazatec San Jerónimo Tecóatl",
["mab"] = "Mixtec Yutanduchi",
["mad"] = "Madura",
["mae"] = "Bo-Rukul",
["maf"] = "Mafa",
["mag"] = "Magahi",
["mai"] = "Maithili",
["maj"] = "Mazatec Jalapa de Díaz",
["mak"] = "Makassar",
["mam"] = "Mam",
["man"] = "Mandingo",
["map-ata-pro"] = "Atayalik Purba",
["map-bms"] = "Banyumasan",
["map-pro"] = "Austronesia Purba",
["maq"] = "Mazatec Chiquihuitlán",
["mas"] = "Maasai",
["mat"] = "Matlatzinca",
["mau"] = "Mazatec Huautla",
["mav"] = "Sateré-Mawé",
["maw"] = "Mampruli",
["max"] = "Melayu Maluku Utara",
["maz"] = "Mazahua Tengah",
["mba"] = "Higaonon",
["mbb"] = "Manobo Bukidnon Barat",
["mbc"] = "Macushi",
["mbd"] = "Manobo Dibabawon",
["mbe"] = "Molale",
["mbf"] = "Melayu Baba",
["mbh"] = "Mangseng",
["mbi"] = "Manobo Ilianen",
["mbj"] = "Nadëb",
["mbk"] = "Malol",
["mbl"] = "Maxakalí",
["mbm"] = "Ombamba",
["mbn"] = "Macaguán",
["mbo"] = "Mbo (Cameroon)",
["mbp"] = "Wiwa",
["mbq"] = "Maisin",
["mbr"] = "Nukak Makú",
["mbs"] = "Manobo Sarangani",
["mbt"] = "Manobo Matigsalug",
["mbu"] = "Mbula-Bwazza",
["mbv"] = "Mbulungish",
["mbw"] = "Maring",
["mbx"] = "Mari (Sepik)",
["mby"] = "Memoni",
["mbz"] = "Mixtec Amoltepec",
["mca"] = "Maca",
["mcb"] = "Machiguenga",
["mcc"] = "Bitur",
["mcd"] = "Sharanahua",
["mce"] = "Mixtec Itundujia",
["mcf"] = "Matsés",
["mcg"] = "Mapoyo",
["mch"] = "Ye'kwana",
["mci"] = "Mese",
["mcj"] = "Mvanip",
["mck"] = "Mbunda",
["mcl"] = "Macaguaje",
["mcm"] = "Kristang",
["mcn"] = "Masana",
["mco"] = "Mixe Coatlán",
["mcp"] = "Makaa",
["mcq"] = "Ese",
["mcr"] = "Menya",
["mcs"] = "Mambai",
["mcu"] = "Mambila Cameroon",
["mcw"] = "Mawa",
["mcx"] = "Mpiemo",
["mcy"] = "Watut Selatan",
["mcz"] = "Mawan",
["mda"] = "Mada (Nigeria)",
["mdb"] = "Morigi",
["mdc"] = "Male",
["mdd"] = "Mbum",
["mde"] = "Mabang Bura",
["mdf"] = "Moksha",
["mdg"] = "Massalat",
["mdh"] = "Maguindanao",
["mdi"] = "Mamvu",
["mdj"] = "Mangbetu",
["mdk"] = "Mangbutu",
["mdl"] = "Bahasa Isyarat Malta",
["mdm"] = "Mayogo",
["mdn"] = "Mbati",
["mdp"] = "Mbala",
["mdq"] = "Mbole",
["mdr"] = "Mandar",
["mds"] = "Maria",
["mdt"] = "Mbere",
["mdu"] = "Mboko",
["mdv"] = "Mixtec Santa Lucía Monteverde",
["mdw"] = "Mbosi",
["mdx"] = "Dizin",
["mdy"] = "Maale",
["mdz"] = "Suruí Do Pará",
["mea"] = "Menka",
["meb"] = "Ikobi-Mena",
["mec"] = "Mara",
["med"] = "Melpa",
["mee"] = "Mengen",
["mef"] = "Megam",
["meh"] = "Mixtec Tlaxiaco Barat Daya",
["mei"] = "Midob",
["mej"] = "Meyah",
["mek"] = "Mekeo",
["mel"] = "Melanau Tengah",
["mem"] = "Mangala",
["men"] = "Mende (Sierra Leone)",
["meo"] = "Melayu Kedah",
["mep"] = "Miriwoong",
["meq"] = "Merey",
["mer"] = "Meru",
["mes"] = "Masmaje",
["met"] = "Mato",
["meu"] = "Motu",
["mev"] = "Mano",
["mew"] = "Maaka",
["mey"] = "Arab Hassaniyah",
["mez"] = "Menominee",
["mfa"] = "Melayu Patani",
["mfb"] = "Bangka",
["mfc"] = "Mba",
["mfd"] = "Mendankwe-Nkwen",
["mfe"] = "Kreol Mauritius",
["mff"] = "Naki",
["mfg"] = "Mixifore",
["mfh"] = "Matal",
["mfi"] = "Wandala",
["mfj"] = "Mefele",
["mfk"] = "Mofu Utara",
["mfl"] = "Putai",
["mfm"] = "Marghi Selatan",
["mfn"] = "Mbembe Cross River",
["mfo"] = "Mbe",
["mfp"] = "Melayu Makassar",
["mfq"] = "Moba",
["mfr"] = "Marrithiyel",
["mfs"] = "Bahasa Isyarat Mexico",
["mft"] = "Mokerang",
["mfu"] = "Mbwela",
["mfv"] = "Mandjak",
["mfw"] = "Mulaha",
["mfx"] = "Melo",
["mfy"] = "Mayo",
["mfz"] = "Mabaan",
["mg"] = "Malagasi",
["mga"] = "Ireland Pertengahan",
["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"] = "Magar Timur",
["mgq"] = "Malila",
["mgr"] = "Mambwe-Lungu",
["mgs"] = "Manda (Tanzania)",
["mgt"] = "Mwakai",
["mgu"] = "Mailu",
["mgv"] = "Matengo",
["mgw"] = "Matumbi",
["mgy"] = "Mbunga",
["mgz"] = "Mbugwe",
["mh"] = "Marshall",
["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"] = "Mòcheno",
["mho"] = "Mashi",
["mhp"] = "Melayu Bali",
["mhq"] = "Mandan",
["mhr"] = "Mari Timur",
["mhs"] = "Buru (Indonesia)",
["mht"] = "Mandahuaca",
["mhu"] = "Taraon",
["mhw"] = "Mbukushu",
["mhx"] = "Lhao Vo",
["mhy"] = "Ma'anyan",
["mhz"] = "Mor (Austronesia)",
["mi"] = "Māori",
["mia"] = "Miami",
["mib"] = "Mixtec Atatláhuca",
["mic"] = "Mi'kmaq",
["mid"] = "Mandaia",
["mie"] = "Mixtec Ocotepec",
["mif"] = "Mofu-Gudur",
["mig"] = "Mixtec San Miguel el Grande",
["mih"] = "Mixtec Chayuco",
["mii"] = "Mixtec Chigmecatitlán",
["mij"] = "Mungbam",
["mik"] = "Mikasuki",
["mil"] = "Mixtec Peñoles",
["mim"] = "Mixtec Alacatlatzala",
["min"] = "Minangkabau",
["mio"] = "Mixtec Pinotepa Nacional",
["mip"] = "Mixtec Apasco-Apoala",
["miq"] = "Miskito",
["mir"] = "Mixe Tanah Genting",
["mis-hkl"] = "Hokkien Peranakan Kelantan",
["mis-idn"] = "Idiom Neutral",
["mis-isa"] = "Isauria",
["mis-jie"] = "Jie",
["mis-jzh"] = "Jizhao",
["mis-kas"] = "Kassite",
["mis-mmd"] = "Mimi Decorse",
["mis-mmn"] = "Mimi Nachtigal",
["mis-phi"] = "Filistin",
["mis-rou"] = "Rouran",
["mis-tdl"] = "Turdulia",
["mis-tdt"] = "Turdetania",
["mis-tnw"] = "Tangwang",
["mis-tuh"] = "Tuyuhun",
["mis-tuo"] = "Tuoba",
["mis-wuh"] = "Wuhuan",
["mis-xbi"] = "Xianbei",
["mis-xnu"] = "Xiongnu",
["mit"] = "Mixtec Puebla Selatan",
["miu"] = "Mixtec Cacaloxtepec",
["miw"] = "Akoye",
["mix"] = "Mixtec Mixtepec",
["miy"] = "Mixtec Ayutla",
["miz"] = "Mixtec Coatzospan",
["mjb"] = "Makalero",
["mjc"] = "Mixtec San Juan Colorado",
["mjd"] = "Maidu Barat Laut",
["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"] = "Paharia Sawriya",
["mju"] = "Manna-Dora",
["mjv"] = "Mannan",
["mjw"] = "Karbi",
["mjx"] = "Mahali",
["mjy"] = "Mahican",
["mjz"] = "Manya",
["mk"] = "Macedonia",
["mka"] = "Mbre",
["mkb"] = "Mal Paharia",
["mkc"] = "Siliput",
["mke"] = "Mawchi",
["mkf"] = "Miya",
["mkg"] = "Mak (China)",
["mkh-asl-pro"] = "Asli Purba",
["mkh-ban-pro"] = "Bahnar Purba",
["mkh-kat-pro"] = "Katuik Purba",
["mkh-khm-pro"] = "Khmuik Purba",
["mkh-kmr-pro"] = "Khmer Purba",
["mkh-mmn"] = "Mon Pertengahan",
["mkh-mnc-pro"] = "Monik Purba",
["mkh-mvi"] = "Vietnam Pertengahan",
["mkh-pal-pro"] = "Palaungik Purba",
["mkh-pea-pro"] = "Pearik Purba",
["mkh-pkn-pro"] = "Pakanik Purba",
["mkh-pro"] = "Mon-Khmer Purba",
["mkh-vie-pro"] = "Vietik Purba",
["mki"] = "Dhatki",
["mkj"] = "Mokil",
["mkk"] = "Byep",
["mkl"] = "Mokole",
["mkm"] = "Moklen",
["mkn"] = "Melayu Kupang",
["mko"] = "Mingang Doso",
["mkp"] = "Moikodi",
["mkq"] = "Miwok Teluk",
["mkr"] = "Malas",
["mks"] = "Mixtec Silacayoapan",
["mkt"] = "Vamale",
["mku"] = "Maninka Konyanka",
["mkv"] = "Mav̋ea",
["mkx"] = "Manobo Cinamiguin",
["mky"] = "Taba",
["mkz"] = "Makasae",
["ml"] = "Malayalam",
["mla"] = "Tamambo",
["mlb"] = "Mbule",
["mlc"] = "Caolan",
["mle"] = "Manambu",
["mlf"] = "Mal",
["mlh"] = "Mape",
["mli"] = "Malimpung",
["mlj"] = "Miltu",
["mlk"] = "Ilwana",
["mll"] = "Teluk Malua",
["mlm"] = "Mulam",
["mln"] = "Malango",
["mlo"] = "Mlomp",
["mlp"] = "Bargam",
["mlq"] = "Maninkakan Barat",
["mlr"] = "Vame",
["mls"] = "Masalit",
["mlu"] = "To'abaita",
["mlv"] = "Mwotlap",
["mlw"] = "Moloko",
["mlx"] = "Malfaxal",
["mlz"] = "Malaynon",
["mma"] = "Mama",
["mmb"] = "Momina",
["mmc"] = "Mazahua Michoacán",
["mmd"] = "Maonan",
["mme"] = "Tirax",
["mmf"] = "Mundat",
["mmg"] = "Ambrym Utara",
["mmh"] = "Mehináku",
["mmi"] = "Hember Avu",
["mmj"] = "Majhwar",
["mmk"] = "Mukha-Dora",
["mml"] = "Man Met",
["mmm"] = "Maii",
["mmn"] = "Mamanwa",
["mmo"] = "Mangga Buang",
["mmp"] = "Musan",
["mmq"] = "Aisi",
["mmr"] = "Miao Xiangxi Barat",
["mmt"] = "Malalamai",
["mmu"] = "Mmaala",
["mmv"] = "Miriti",
["mmw"] = "Emae",
["mmx"] = "Madak",
["mmy"] = "Migaama",
["mmz"] = "Mabaale",
["mn"] = "Mongolia",
["mna"] = "Mbula",
["mnb"] = "Muna",
["mnc"] = "Manchu",
["mnd"] = "Mondé",
["mne"] = "Naba",
["mnf"] = "Mundani",
["mng"] = "Mnong Timur",
["mnh"] = "Mono (Congo)",
["mni"] = "Manipuri",
["mnj"] = "Munji",
["mnk"] = "Mandinka",
["mnl"] = "Tiale",
["mnm"] = "Mapena",
["mnn"] = "Mnong Selatan",
["mnp"] = "Min Utara",
["mnq"] = "Minriq",
["mnr"] = "Mono (California)",
["mns-cen"] = "Mansi Tengah",
["mns-nor"] = "Mansi Utara",
["mns-pro"] = "Mansi Purba",
["mns-sou"] = "Mansi Selatan",
["mnt"] = "Maykulan",
["mnu"] = "Mer",
["mnv"] = "Rennell",
["mnw"] = "Mon",
["mnw-tha"] = "Mon Thailand",
["mnx"] = "Sougb",
["mny"] = "Manyawa",
["mnz"] = "Moni",
["moa"] = "Mwan",
["moc"] = "Mocoví",
["mod"] = "Mobilia",
["moe"] = "Montagnais",
["mog"] = "Mongondow",
["moh"] = "Mohawk",
["moi"] = "Mboi",
["moj"] = "Monzombo",
["mok"] = "Morori",
["mom"] = "Mangue",
["moo"] = "Monom",
["mop"] = "Maya Mopan",
["moq"] = "Mor (Papua)",
["mor"] = "Moro",
["mos"] = "Mossi",
["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"] = "Watut Tengah",
["mpm"] = "Mixtec Yosondúa",
["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"] = "Melayu Kutai Kota Bangun",
["mqh"] = "Mixtec Tlazoyaltepec",
["mqi"] = "Mariri",
["mqj"] = "Mamasa",
["mqk"] = "Manobo Rajah Kabunsuwan",
["mql"] = "Mbelime",
["mqm"] = "Marquesas Selatan",
["mqn"] = "Moronene",
["mqo"] = "Modole",
["mqp"] = "Manipa",
["mqq"] = "Minokok",
["mqr"] = "Mander",
["mqs"] = "Makian Barat",
["mqt"] = "Mok",
["mqu"] = "Mandari",
["mqv"] = "Mosimo",
["mqw"] = "Murupi",
["mqx"] = "Mamuju",
["mqy"] = "Manggarai",
["mqz"] = "Malasanga",
["mr"] = "Marathi",
["mra"] = "Mlabri",
["mrb"] = "Sungwadia",
["mrc"] = "Maricopa",
["mrd"] = "Magar Barat",
["mre"] = "Bahasa Isyarat Martha's Vineyard",
["mrf"] = "Elseng",
["mrg"] = "Mising",
["mrh"] = "Chin Mara",
["mrj"] = "Mari Barat",
["mrk"] = "Hmwaveke",
["mrl"] = "Mortlock",
["mrm"] = "Mwerlap",
["mrn"] = "Cheke Holo",
["mro"] = "Mru",
["mrp"] = "Morouas",
["mrq"] = "Marquesas Utara",
["mrr"] = "Maria Bukit",
["mrs"] = "Maragus",
["mrt"] = "Margi",
["mru"] = "Mono (Cameroon)",
["mrv"] = "Mangareva",
["mrw"] = "Maranao",
["mrx"] = "Dineor",
["mry"] = "Mandaya Karaga",
["mrz"] = "Marind",
["ms"] = "Melayu",
["msb"] = "Masbatenyo",
["msc"] = "Maninka Sankaran",
["msd"] = "Bahasa Isyarat Maya Yucatec",
["mse"] = "Musey",
["msf"] = "Mekwei",
["msg"] = "Moraid",
["msi"] = "Melayu Sabah",
["msj"] = "Ma",
["msk"] = "Mansaka",
["msl"] = "Molof",
["msm"] = "Manobo Agusan",
["msn"] = "Vurës",
["mso"] = "Mombum",
["msp"] = "Maritsauá",
["msq"] = "Caac",
["msr"] = "Bahasa Isyarat Mongolia",
["mss"] = "Masela Barat",
["msu"] = "Musom",
["msv"] = "Maslam",
["msw"] = "Mansoanka",
["msx"] = "Moresada",
["msy"] = "Aruamu",
["msz"] = "Momare",
["mt"] = "Malta",
["mta"] = "Manobo Cotabato",
["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"] = "Mixe Totontepec",
["mtp"] = "Wichí Lhamtés Nocten",
["mtq"] = "Muong",
["mtr"] = "Mewari",
["mts"] = "Yora",
["mtt"] = "Mota",
["mtu"] = "Mixtec Tututepec",
["mtv"] = "Asaro'o",
["mtw"] = "Magahat",
["mtx"] = "Mixtec Tidaá",
["mty"] = "Nabi",
["mua"] = "Mundang",
["mub"] = "Mubi",
["muc"] = "Mbu'",
["mud"] = "Aleut Mednyj",
["mue"] = "Media Lengua",
["mug"] = "Musgu",
["muh"] = "Mündü",
["mui"] = "Musi",
["muj"] = "Mabire",
["mul"] = "Translingual",
["mum"] = "Maiwala",
["mun-pro"] = "Munda Purba",
["muo"] = "Nyong",
["mup"] = "Malvi",
["muq"] = "Miao Xiangxi Timur",
["mur"] = "Murle",
["mus"] = "Creek",
["mut"] = "Muria Barat",
["muu"] = "Yaaku",
["muv"] = "Muthuvan",
["mux"] = "Bo-Ung",
["muy"] = "Muyang",
["muz"] = "Mursi",
["mva"] = "Manam",
["mvb"] = "Mattole",
["mvd"] = "Mamboru",
["mvg"] = "Mixtec Yucuañe",
["mvh"] = "Mire",
["mvi"] = "Miyako",
["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"] = "Kohistani Indus",
["mvz"] = "Mesqan",
["mwa"] = "Mwatebu",
["mwb"] = "Juwal",
["mwc"] = "Are",
["mwe"] = "Mwera",
["mwf"] = "Murrinh-Patha",
["mwg"] = "Aiklep",
["mwh"] = "Mouk-Aria",
["mwi"] = "Labo",
["mwk"] = "Maninkakan Kita",
["mwl"] = "Mirandese",
["mwm"] = "Sar",
["mwn"] = "Nyamwanga",
["mwo"] = "Sungwadaga",
["mwp"] = "Kala Lagaw Ya",
["mwq"] = "Mün Chin",
["mwr"] = "Marwari",
["mws"] = "Mwimbi-Muthambi",
["mwt"] = "Moken",
["mwu"] = "Mittu",
["mwv"] = "Mentawai",
["mww"] = "Hmong Putih",
["mwz"] = "Moingi",
["mxa"] = "Mixtec Oaxaca Barat Laut",
["mxb"] = "Mixtec Tezoatlán",
["mxd"] = "Modang",
["mxe"] = "Mele-Fila",
["mxf"] = "Malgbe",
["mxg"] = "Mbangala",
["mxh"] = "Mvuba",
["mxi"] = "Mozarab",
["mxj"] = "Miju",
["mxk"] = "Monumbo",
["mxl"] = "Maxi Gbe",
["mxm"] = "Meramera",
["mxn"] = "Moi (Indonesia)",
["mxo"] = "Mbowe",
["mxp"] = "Mixe Tlahuitoltepec",
["mxq"] = "Mixe Juquila",
["mxr"] = "Murik (Malaysia)",
["mxs"] = "Mixtec Huitepec",
["mxt"] = "Mixtec Jamiltepec",
["mxu"] = "Mada (Cameroon)",
["mxv"] = "Mixtec Metlatónoc",
["mxw"] = "Namo",
["mxx"] = "Mahou",
["mxy"] = "Mixtec Nochixtlán Tenggara",
["mxz"] = "Masela Tengah",
["my"] = "Burma",
["myb"] = "Mbay",
["myc"] = "Mayeka",
["mye"] = "Myene",
["myf"] = "Bambassi",
["myg"] = "Manta",
["myh"] = "Makah",
["myj"] = "Mangayat",
["myk"] = "Mamara",
["myl"] = "Moma",
["mym"] = "Me'en",
["myn-chl"] = "Ch'olti'",
["myn-pro"] = "Maya Purba",
["myo"] = "Anfillo",
["myp"] = "Pirahã",
["myr"] = "Muniche",
["mys"] = "Mesmes",
["myu"] = "Mundurukú",
["myv"] = "Erzya",
["myw"] = "Muyuw",
["myx"] = "Masaba",
["myy"] = "Macuna",
["myz"] = "Mandaia Klasik",
["mza"] = "Mixtec Santa María Zacatepec",
["mzb"] = "Berber Saharan Utara",
["mzc"] = "Bahasa Isyarat Madagascar",
["mzd"] = "Malimba",
["mze"] = "Morawa",
["mzg"] = "Bahasa Isyarat Monastik",
["mzh"] = "Wichí Lhamtés Güisnay",
["mzi"] = "Mazatec Ixcatlán",
["mzk"] = "Mambila Nigeria",
["mzl"] = "Mixe Mazatlán",
["mzm"] = "Mumuye",
["mzn"] = "Mazanderani",
["mzo"] = "Matipuhy",
["mzp"] = "Movima",
["mzq"] = "Mori Atas",
["mzr"] = "Marúbo",
["mzs"] = "Macanese",
["mzt"] = "Mintil",
["mzu"] = "Inapang",
["mzv"] = "Manza",
["mzw"] = "Deg",
["mzx"] = "Mawayana",
["mzy"] = "Bahasa Isyarat Mozambique",
["mzz"] = "Maiadomu",
["na"] = "Nauru",
["naa"] = "Namla",
["nab"] = "Nambikwara",
["nac"] = "Narak",
["nae"] = "Naka'ela",
["naf"] = "Nabak",
["nag"] = "Pidgin Naga",
["nah"] = "Nahuatl",
["nai-ala"] = "Alazapa",
["nai-bay"] = "Bayogoula",
["nai-cal"] = "Calusa",
["nai-chi"] = "Chiquimulilla",
["nai-chu-pro"] = "Chumash Purba",
["nai-cig"] = "Ciguayo",
["nai-ckn-pro"] = "Chinook Purba",
["nai-guz"] = "Guazacapán",
["nai-hit"] = "Hitchiti",
["nai-ipa"] = "Ipai",
["nai-jtp"] = "Jutiapa",
["nai-jum"] = "Jumaytepeque",
["nai-kat"] = "Kathlamet",
["nai-klp-pro"] = "Kalapuya Purba",
["nai-knm"] = "Konomihu",
["nai-kum"] = "Kumeyaay",
["nai-mac"] = "Macoris",
["nai-mdu-pro"] = "Maidu Purba",
["nai-miz-pro"] = "Mixe-Zoque Purba",
["nai-mus-pro"] = "Muskogi Purba",
["nai-nao"] = "Naolan",
["nai-nrs"] = "Shasta Sungai Baru",
["nai-okw"] = "Okwanuchu",
["nai-per"] = "Pericú",
["nai-pic"] = "Picuris",
["nai-plp-pro"] = "Penuti Penara Purba",
["nai-pom-pro"] = "Pomo Purba",
["nai-qng"] = "Quinigua",
["nai-sca-pro"] = "Siouan-Catawba Purba",
["nai-sin"] = "Sinacantán",
["nai-sln"] = "Lenca Salvador",
["nai-spt"] = "Sahaptin",
["nai-tap"] = "Tapachultec",
["nai-taw"] = "Tawasa",
["nai-teq"] = "Tequistlatec",
["nai-tip"] = "Tipai",
["nai-tot-pro"] = "Totozoquean Purba",
["nai-tsi-pro"] = "Tsimshianik Purba",
["nai-utn-pro"] = "Utik Purba",
["nai-wai"] = "Waikuri",
["nai-wji"] = "Jicaque Barat",
["nai-yup"] = "Yupiltepeque",
["naj"] = "Nalu",
["nak"] = "Nakanai",
["nal"] = "Nalik",
["nam"] = "Ngan'gityemerri",
["nan"] = "Min Nan",
["nan-dat"] = "Min Datian",
["nan-hbl"] = "Hokkien",
["nan-hlh"] = "Min Hailufeng",
["nan-lnx"] = "Min Longyan",
["nan-tws"] = "Teochew",
["nan-zhe"] = "Min Zhenan",
["nan-zsh"] = "Min Sanxiang",
["nao"] = "Naaba",
["nap"] = "Neapolit",
["naq"] = "Khoekhoe",
["nar"] = "Iguta",
["nas"] = "Nasioi",
["nat"] = "Hungworo",
["naw"] = "Nawuri",
["nax"] = "Nakwi",
["nay"] = "Ngarrindjeri",
["naz"] = "Nahuatl Coatepec",
["nb"] = "Bokmål Norway",
["nba"] = "Nyemba",
["nbb"] = "Ndoe",
["nbc"] = "Chang",
["nbd"] = "Ngbinda",
["nbe"] = "Naga Konyak",
["nbg"] = "Nagarchal",
["nbh"] = "Ngamo",
["nbi"] = "Naga Mao",
["nbj"] = "Ngarinman",
["nbk"] = "Nake",
["nbm"] = "Ngbaka Ma'bo",
["nbn"] = "Kuri",
["nbo"] = "Nkukoli",
["nbp"] = "Nnam",
["nbq"] = "Nggem",
["nbr"] = "Numana",
["nbs"] = "Bahasa Isyarat Namibia",
["nbt"] = "Na",
["nbu"] = "Naga Rongmei",
["nbv"] = "Ngamambo",
["nbw"] = "Ngbandi Selatan",
["nby"] = "Ningera",
["nca"] = "Iyo",
["ncb"] = "Nicobar Tengah",
["ncc"] = "Ponam",
["ncd"] = "Nachering",
["nce"] = "Yale",
["ncf"] = "Notsi",
["ncg"] = "Nisga'a",
["nch"] = "Nahuatl Huasteca Tengah",
["nci"] = "Nahuatl Klasik",
["ncj"] = "Nahuatl Puebla Utara",
["nck"] = "Nakara",
["ncl"] = "Nahuatl Michoacán",
["ncm"] = "Nambo",
["ncn"] = "Nauna",
["nco"] = "Sibe",
["ncr"] = "Ncane",
["ncs"] = "Bahasa Isyarat Nicaragua",
["nct"] = "Naga Chothe",
["ncu"] = "Chumburung",
["ncx"] = "Nahuatl Puebla Tengah",
["ncz"] = "Natchez",
["nd"] = "Ndebele Utara",
["nda"] = "Ndasa",
["ndb"] = "Kenswei Nsei",
["ndc"] = "Ndau",
["ndd"] = "Nde-Nsele-Nta",
["ndf"] = "Nadruvia",
["ndg"] = "Ndengereko",
["ndh"] = "Ndali",
["ndi"] = "Chamba Leko",
["ndj"] = "Ndamba",
["ndk"] = "Ndaka",
["ndl"] = "Ndolo",
["ndm"] = "Ndam",
["ndn"] = "Ngundi",
["ndp"] = "Ndo",
["ndq"] = "Ndombe",
["ndr"] = "Ndoola",
["nds"] = "Jerman Rendah",
["ndt"] = "Ndunga",
["ndu"] = "Dugun",
["ndv"] = "Ndut",
["ndw"] = "Ndobo",
["ndx"] = "Nduga",
["ndy"] = "Lutos",
["ndz"] = "Ndogo",
["ne"] = "Nepal",
["nea"] = "Ngad'a Timur",
["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"] = "Mixe Tengah Utara",
["ner"] = "Yahadian",
["nes"] = "Kinnauri Bhoti",
["net"] = "Nete",
["neu"] = "Neo",
["nev"] = "Nyaheun",
["new"] = "Newar",
["nex"] = "Neme",
["ney"] = "Neyo",
["nez"] = "Nez Perce",
["nfa"] = "Dhao",
["nfd"] = "Ahwai",
["nfl"] = "Äiwoo",
["nfr"] = "Nafaanra",
["nfu"] = "Mfumte",
["ng"] = "Ndonga",
["nga"] = "Ngbaka",
["ngb"] = "Ngbandi Utara",
["ngc"] = "Ngombe (Congo)",
["ngd"] = "Ngando (Republik Afrika Tengah)",
["nge"] = "Ngemba",
["ngf-bin-pro"] = "Binandere Purba",
["ngf-pro"] = "Trans-New Guinea Purba",
["ngg"] = "Ngbaka Manza",
["ngh"] = "Nǀuu",
["ngi"] = "Ngizim",
["ngj"] = "Ngie",
["ngk"] = "Ngalkbun",
["ngl"] = "Lomwe",
["ngm"] = "Kreol Lelaki Ngatik",
["ngn"] = "Ngwo",
["ngo"] = "Ngoni",
["ngp"] = "Ngulu",
["ngq"] = "Ngoreme",
["ngr"] = "Nagu",
["ngs"] = "Gvoko",
["ngt"] = "Ngeq",
["ngu"] = "Nahuatl Guerrero",
["ngv"] = "Nagumi",
["ngw"] = "Ngwaba",
["ngx"] = "Nggwahyi",
["ngy"] = "Tibea",
["ngz"] = "Ngungwel",
["nha"] = "Nhanda",
["nhb"] = "Beng",
["nhc"] = "Nahuatl Tabasco",
["nhd"] = "Chiripá",
["nhe"] = "Nahuatl Huasteca Timur",
["nhf"] = "Nhuwala",
["nhg"] = "Nahuatl Tetelcingo",
["nhh"] = "Nahari",
["nhi"] = "Nahuatl Zacatlán-Ahuacatlán-Tepetzintla",
["nhk"] = "Nahuatl Cosoleacaque",
["nhm"] = "Nahuatl Morelos",
["nhn"] = "Nahuatl Tengah",
["nho"] = "Takuu",
["nhp"] = "Nahuatl Pajapan",
["nhq"] = "Nahuatl Huaxcaleca",
["nhr"] = "Naro",
["nht"] = "Nahuatl Ometepec",
["nhu"] = "Noone",
["nhv"] = "Nahuatl Temascaltepec",
["nhw"] = "Nahuatl Huasteca Barat",
["nhx"] = "Nahuatl Mecayapan",
["nhy"] = "Nahuatl Oaxaca Utara",
["nhz"] = "Nahuatl Santa María La Alta",
["nia"] = "Nias",
["nib"] = "Nakame",
["nic-bco-pro"] = "Benue-Congo Purba",
["nic-bod-pro"] = "Bantoid Purba",
["nic-eov-pro"] = "Oti-Volta Timur Purba",
["nic-gns-pro"] = "Gurunsi Purba",
["nic-grf-pro"] = "Grassfields Purba",
["nic-gur-pro"] = "Gur Purba",
["nic-jkn-pro"] = "Jukunoid Purba",
["nic-lcr-pro"] = "Cross River Hilir Purba",
["nic-ogo-pro"] = "Ogoni Purba",
["nic-ovo-pro"] = "Oti-Volta Purba",
["nic-plt-pro"] = "Plateau Purba",
["nic-pro"] = "Niger-Congo Purba",
["nic-ubg-pro"] = "Ubangi Purba",
["nic-ucr-pro"] = "Cross River Hulu Purba",
["nic-vco-pro"] = "Volta-Congo Purba",
["nid"] = "Ngandi",
["nie"] = "Niellim",
["nif"] = "Nek",
["nig"] = "Ngalakan",
["nih"] = "Nyiha",
["nii"] = "Nii",
["nij"] = "Ngaju",
["nik"] = "Nicobar Selatan",
["nil"] = "Nila",
["nim"] = "Nilamba",
["nin"] = "Ninzo",
["nio"] = "Nganasan",
["niq"] = "Nandi",
["nir"] = "Nimboran",
["nis"] = "Nimi",
["nit"] = "Kolami Tenggara",
["niu"] = "Niue",
["niv"] = "Nivkh",
["niw"] = "Nimo",
["nix"] = "Hema",
["niy"] = "Ngiti",
["niz"] = "Ningil",
["nja"] = "Nzanyi",
["njb"] = "Nocte",
["njh"] = "Naga Lotha",
["nji"] = "Gudanji",
["njj"] = "Njen",
["njl"] = "Njalgulgule",
["njm"] = "Angami",
["njn"] = "Naga Liangmai",
["njo-jgl"] = "Ao Chungli",
["njo-mng"] = "Ao Mongsen",
["njr"] = "Njerep",
["njs"] = "Nisa",
["njt"] = "Pidgin Ndyuka-Trio",
["nju"] = "Ngadjunmaya",
["njx"] = "Kunyi",
["njy"] = "Njyem",
["njz"] = "Nyishi",
["nka"] = "Nkoya",
["nkb"] = "Naga Khoibu",
["nkc"] = "Nkongho",
["nkd"] = "Koireng",
["nke"] = "Duke",
["nkf"] = "Naga Inpui",
["nkg"] = "Nekgini",
["nkh"] = "Naga Khezha",
["nki"] = "Naga Thangal",
["nkj"] = "Nakai",
["nkk"] = "Nokuku",
["nkm"] = "Namat",
["nkn"] = "Nkangala",
["nko"] = "Nkonya",
["nkp"] = "Niuatoputapu",
["nkq"] = "Nkami",
["nkr"] = "Nukuoro",
["nks"] = "Asmat Utara",
["nkt"] = "Nyika",
["nku"] = "Kulango Bouna",
["nkw"] = "Nkutu",
["nkx"] = "Nkoroo",
["nkz"] = "Nkari",
["nl"] = "Belanda",
["nla"] = "Ngombale",
["nlc"] = "Nalca",
["nle"] = "Nyala Timur",
["nlg"] = "Gela",
["nli"] = "Grangali",
["nlj"] = "Nyali",
["nlk"] = "Yali Ninia",
["nll"] = "Nihali",
["nlm"] = "Mankiyali",
["nlo"] = "Ngwi",
["nlq"] = "Naga Lao",
["nlu"] = "Nchumbulu",
["nlv"] = "Nahuatl Orizaba",
["nlw"] = "Walangama",
["nlx"] = "Nahali",
["nly"] = "Nyamal",
["nlz"] = "Nalögo",
["nma"] = "Naga Maram",
["nmb"] = "Big Nambas",
["nmc"] = "Ngam",
["nmd"] = "Ndumu",
["nme"] = "Naga Mzieme",
["nmf"] = "Naga Tangkhul",
["nmg"] = "Kwasio",
["nmh"] = "Naga Monsang",
["nmi"] = "Nyam",
["nmj"] = "Ngombe (Republik Afrika Tengah)",
["nmk"] = "Namakura",
["nml"] = "Ndemli",
["nmm"] = "Manangba",
["nmn"] = "ǃXóõ",
["nmo"] = "Naga Moyon",
["nmp"] = "Nimanbur",
["nmq"] = "Nambya",
["nmr"] = "Nimbari",
["nms"] = "Letemboi",
["nmt"] = "Namonuito",
["nmu"] = "Maidu Timur Laut",
["nmv"] = "Ngamini",
["nmw"] = "Nimoa",
["nmx"] = "Nama",
["nmy"] = "Namuyi",
["nmz"] = "Nawdm",
["nn"] = "Nynorsk Norway",
["nna"] = "Nyangumarta",
["nnb"] = "Nande",
["nnc"] = "Nancere",
["nnd"] = "Ambae Barat",
["nne"] = "Ngandyera",
["nnf"] = "Ngaing",
["nng"] = "Naga Maring",
["nnh"] = "Ngiemboon",
["nni"] = "Nuaulu Utara",
["nnj"] = "Nyangatom",
["nnk"] = "Nankina",
["nnl"] = "Naga Rengma Utara",
["nnm"] = "Namia",
["nnn"] = "Ngete",
["nnp"] = "Wancho",
["nnq"] = "Ngindo",
["nnr"] = "Narungga",
["nnt"] = "Nanticoke",
["nnu"] = "Dwang",
["nnv"] = "Nukunu",
["nnw"] = "Nuni Selatan",
["nnx"] = "Ngong",
["nny"] = "Nyangga",
["nnz"] = "Nda'nda'",
["no"] = "Norway",
["noa"] = "Woun Meu",
["noc"] = "Nuk",
["nod"] = "Thai Utara",
["noe"] = "Nimadi",
["nof"] = "Nomane",
["nog"] = "Nogai",
["noh"] = "Nomu",
["noi"] = "Noiri",
["noj"] = "Nonuya",
["nok"] = "Nooksack",
["nol"] = "Nomlaki",
["non"] = "Norse Kuno",
["nop"] = "Numanggang",
["noq"] = "Ngongo",
["nos"] = "Nisu Timur",
["not"] = "Nomatsiguenga",
["nou"] = "Ewage-Notu",
["nov"] = "Novial",
["now"] = "Nyambo",
["noy"] = "Noy",
["noz"] = "Nayi",
["npa"] = "Nar Phu",
["npb"] = "Nupbikha",
["npg"] = "Ponyo",
["nph"] = "Phom",
["npl"] = "Nahuatl Puebla Tenggara",
["npn"] = "Mondropolon",
["npo"] = "Naga Pochuri",
["nps"] = "Nipsan",
["npu"] = "Naga Puimei",
["npx"] = "Noipä",
["npy"] = "Napu",
["nqg"] = "Ede Nago",
["nqk"] = "Kura Ede Nago",
["nql"] = "Ngendelengo",
["nqm"] = "Ndom",
["nqn"] = "Nen",
["nqo"] = "N'Ko",
["nqq"] = "Naga Kyan-Karyaw",
["nqy"] = "Akyaung Ari",
["nr"] = "Ndebele Selatan",
["nra"] = "Ngom",
["nrb"] = "Nara",
["nrc"] = "Noric",
["nre"] = "Naga Rengma Selatan",
["nrf"] = "Norman",
["nrg"] = "Narango",
["nri"] = "Naga Chokri",
["nrk"] = "Ngarla",
["nrl"] = "Ngarluma",
["nrm"] = "Narom",
["nrn"] = "Norn",
["nrp"] = "Picene Utara",
["nrr"] = "Norra",
["nrt"] = "Kalapuya Utara",
["nru"] = "Narua",
["nrx"] = "Ngurmbur",
["nrz"] = "Lala (New Guinea)",
["nsa"] = "Naga Sangtam",
["nsb"] = "Nossob Bawah",
["nsc"] = "Nshi",
["nsd"] = "Nisu Selatan",
["nse"] = "Nsenga",
["nsf"] = "Nisu Barat Laut",
["nsg"] = "Ngasa",
["nsh"] = "Ngoshie",
["nsi"] = "Bahasa Isyarat Nigeria",
["nsk"] = "Naskapi",
["nsl"] = "Bahasa Isyarat Norway",
["nsm"] = "Sema",
["nsn"] = "Nehan",
["nso"] = "Sotho Utara",
["nsp"] = "Bahasa Isyarat Nepal",
["nsq"] = "Miwok Sierra Utara",
["nsr"] = "Bahasa Isyarat Maritim",
["nss"] = "Nali",
["nst"] = "Tangsa",
["nsu"] = "Nahuatl Sierra Negra",
["nsw"] = "Navut",
["nsx"] = "Nsongo",
["nsy"] = "Nasal",
["nsz"] = "Nisenan",
["ntd"] = "Tidung Utara",
["ntg"] = "Ngantangarra",
["nti"] = "Natioro",
["ntj"] = "Ngaanyatjarra",
["ntk"] = "Ikoma",
["ntm"] = "Nateni",
["nto"] = "Ntomba",
["ntp"] = "Tepehuan Utara",
["ntr"] = "Delo",
["nts"] = "Natagaimas",
["ntu"] = "Natügu",
["ntw"] = "Nottoway",
["ntx"] = "Somra",
["nty"] = "Mantsi",
["nua"] = "Yuanga",
["nub-har"] = "Haraza",
["nub-pro"] = "Nubia Purba",
["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"] = "Nguôn",
["nup"] = "Nupe",
["nuq"] = "Nukumanu",
["nur"] = "Nuguria",
["nus"] = "Nuer",
["nut"] = "Nùng",
["nuu"] = "Ngbundu",
["nuv"] = "Nuni Utara",
["nuw"] = "Nguluwan",
["nux"] = "Mehek",
["nuy"] = "Nunggubuyu",
["nuz"] = "Nahuatl Tlamacazapa",
["nv"] = "Navajo",
["nvh"] = "Nasarian",
["nvm"] = "Namiae",
["nvo"] = "Nyokon",
["nwa"] = "Nawathinehena",
["nwb"] = "Nyabwa",
["nwc"] = "Newar Klasik",
["nwe"] = "Ngwe",
["nwg"] = "Ngaiawang",
["nwi"] = "Tanna Barat Daya",
["nwm"] = "Nyamusa-Molo",
["nwo"] = "Nauo",
["nwr"] = "Nawaru",
["nwx"] = "Newar Pertengahan",
["nwy"] = "Nottoway-Meherrin",
["nxa"] = "Nauete",
["nxd"] = "Ngando (Congo)",
["nxe"] = "Nage",
["nxg"] = "Ngadha",
["nxi"] = "Nindi",
["nxl"] = "Nuaulu Selatan",
["nxm"] = "Numidia",
["nxn"] = "Ngawun",
["nxo"] = "Ndambomo",
["nxq"] = "Naxi",
["nxr"] = "Ninggerum",
["nxx"] = "Nafri",
["ny"] = "Chichewa",
["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"] = "Nyaw",
["nyx"] = "Nganyaywana",
["nyy"] = "Nyakyusa",
["nza"] = "Mbembe Tigon",
["nzb"] = "Njebi",
["nzd"] = "Nzadi",
["nzi"] = "Nzima",
["nzk"] = "Nzakara",
["nzm"] = "Naga Zeme",
["nzs"] = "Bahasa Isyarat New Zealand",
["nzu"] = "Teke Tengah",
["nzy"] = "Nzakambay",
["nzz"] = "Dogon Nanga Dama",
["oaa"] = "Orok",
["oac"] = "Oroch",
["oav"] = "Avar Kuno",
["obi"] = "Obispeño",
["obk"] = "Bontoc Selatan",
["obl"] = "Oblo",
["obm"] = "Moabite",
["obo"] = "Obo Manobo",
["obr"] = "Burma Kuno",
["obt"] = "Breton Kuno",
["obu"] = "Obulom",
["oc"] = "Occitan",
["oca"] = "Ocaina",
["och"] = "Cina Kuno",
["oco"] = "Cornwall Kuno",
["ocu"] = "Tlahuica",
["oda"] = "Odut",
["odk"] = "Od",
["odt"] = "Belanda Kuno",
["odu"] = "Odual",
["ofo"] = "Ofo",
["ofs"] = "Frisia Kuno",
["ofu"] = "Efutop",
["ogb"] = "Ogbia",
["ogc"] = "Ogbah",
["oge"] = "Georgia Kuno",
["ogg"] = "Ogbogolo",
["ogo"] = "Khana",
["ogu"] = "Ogbronuagum",
["ohu"] = "Hungary Kuno",
["oia"] = "Oirata",
["oin"] = "One Inebu",
["oj"] = "Ojibwe",
["ojb"] = "Ojibwa Barat Laut",
["ojc"] = "Ojibwa Tengah",
["ojg"] = "Ojibwa Timur",
["ojp"] = "Jepun Kuno",
["ojs"] = "Severn Ojibwa",
["ojv"] = "Jawa Ontong",
["ojw"] = "Ojibwa Barat",
["oka"] = "Okanagan",
["okb"] = "Okobo",
["okd"] = "Okodia",
["oke"] = "Okpe (Edo Barat Daya)",
["okg"] = "Kok-Paponk",
["okh"] = "Koresh-e Rostam",
["oki"] = "Okiek",
["okj"] = "Oko-Juwoi",
["okk"] = "Kwamtim One",
["okl"] = "Bahasa Isyarat Kentish Kuno",
["okm"] = "Korea Pertengahan",
["okn"] = "Oki-No-Erabu",
["oko"] = "Korea Kuno",
["okr"] = "Kirike",
["oks"] = "Oko-Eni-Osayen",
["oku"] = "Oku",
["okv"] = "Orokaiva",
["okx"] = "Okpe (Edo Barat Laut)",
["okz"] = "Khmer Kuno",
["old"] = "Mochi",
["ole"] = "Olekha",
["olm"] = "Oloma",
["olo"] = "Livvi",
["olr"] = "Olrat",
["olt"] = "Lithuania Kuno",
["olu"] = "Kuvale",
["om"] = "Oromo",
["oma"] = "Omaha-Ponca",
["omb"] = "Omba",
["omc"] = "Mochica",
["omg"] = "Omagua",
["omi"] = "Omi",
["omk"] = "Omok",
["oml"] = "Ombo",
["omn"] = "Minoan",
["omo"] = "Utarmbung",
["omp"] = "Manipur Kuno",
["omq-cha-pro"] = "Chatino Purba",
["omq-maz-pro"] = "Mazatec Purba",
["omq-mix-pro"] = "Mixtecan Purba",
["omq-mxt-pro"] = "Mixtec Purba",
["omq-otp-pro"] = "Oto-Pamean Purba",
["omq-pro"] = "Oto-Manguean Purba",
["omq-sjq"] = "Chatino San Juan Quiahije",
["omq-tel"] = "Mixtec Teposcolula",
["omq-teo"] = "Chatino Teojomulco",
["omq-tri-pro"] = "Triqui Purba",
["omq-zap-pro"] = "Zapotecan Purba",
["omq-zpc-pro"] = "Zapotec Purba",
["omr"] = "Marathi Kuno",
["omt"] = "Omotik",
["omu"] = "Omurano",
["omv-aro-pro"] = "Aroid Purba",
["omv-diz-pro"] = "Dizoid Purba",
["omv-pro"] = "Omotik Purba",
["omw"] = "Tairora Selatan",
["omx"] = "Mon Kuno",
["ona"] = "Selk'nam",
["onb"] = "Lingao",
["one"] = "Oneida",
["ong"] = "Olo",
["oni"] = "Onin",
["onj"] = "Onjob",
["onk"] = "Kabore One",
["onn"] = "Onobasulu",
["ono"] = "Onondaga",
["onp"] = "Sartang",
["onr"] = "One Utara",
["ons"] = "Ono",
["ont"] = "Ontenu",
["onu"] = "Unua",
["onw"] = "Nubia Kuno",
["onx"] = "Pidgin Onin",
["ood"] = "O'odham",
["oog"] = "Ong",
["oon"] = "Önge",
["oor"] = "Oorlams",
["oos"] = "Ossetia Kuno",
["opa"] = "Okpamheri",
["opk"] = "Kopkaka",
["opm"] = "Oksapmin",
["opo"] = "Opao",
["opt"] = "Opata",
["opy"] = "Ofayé",
["or"] = "Odia",
["ora"] = "Oroha",
["ore"] = "Orejón",
["org"] = "Oring",
["orh"] = "Oroqen",
["oro"] = "Orokolo",
["orr"] = "Oruma",
["ors"] = "Orang Seletar",
["ort"] = "Oriya Adivasi",
["oru"] = "Ormuri",
["orv"] = "Slav Timur Kuno",
["orw"] = "Oro Win",
["orx"] = "Oro",
["orz"] = "Ormu",
["os"] = "Ossetia",
["osa"] = "Osage",
["osc"] = "Osci",
["osi"] = "Osing",
["osn"] = "Sunda Kuno",
["oso"] = "Ososo",
["osp"] = "Sepanyol Kuno",
["ost"] = "Osatu",
["osu"] = "One Selatan",
["osx"] = "Saxon Kuno",
["ota"] = "Turki Usmaniyah",
["otb"] = "Tibet Kuno",
["otd"] = "Ot Danum",
["ote"] = "Otomi Mezquital",
["oti"] = "Oti",
["otk"] = "Turk Kuno",
["otl"] = "Otomi Tilapa",
["otm"] = "Otomi Tanah Tinggi Timur",
["otn"] = "Otomi Tenango",
["oto-otm-pro"] = "Otomi Purba",
["oto-pro"] = "Otomian Purba",
["otq"] = "Otomi Querétaro",
["otr"] = "Otoro",
["ots"] = "Otomi Estado de México",
["ott"] = "Otomi Temoaya",
["otu"] = "Otuke",
["otw"] = "Ottawa",
["otx"] = "Otomi Texcatepec",
["oty"] = "Tamil Kuno",
["otz"] = "Otomi Ixtenco",
["oub"] = "Glio-Oubi",
["oue"] = "Oune",
["oui"] = "Uyghur Kuno",
["oum"] = "Ouma",
["ovd"] = "Älvdalen",
["owi"] = "Owiniga",
["owl"] = "Wales Kuno",
["oyb"] = "Oy",
["oyd"] = "Oyda",
["oym"] = "Wayampi",
["oyy"] = "Oya'oya",
["ozm"] = "Koonzime",
["pa"] = "Punjabi",
["paa-kmn"] = "Kómnzo",
["paa-kwn"] = "Kuwani",
["paa-lei"] = "Leitre",
["paa-nha-pro"] = "Halmahera Utara Purba",
["paa-nun"] = "Nungon",
["pab"] = "Pareci",
["pac"] = "Pacoh",
["pad"] = "Paumarí",
["pae"] = "Pagibete",
["paf"] = "Paranawát",
["pag"] = "Pangasinan",
["pah"] = "Tenharim",
["pai"] = "Pe",
["pak"] = "Parakanã",
["pal"] = "Parsi Pertengahan",
["pam"] = "Kapampangan",
["pao"] = "Paiute Utara",
["pap"] = "Papiamentu",
["paq"] = "Parya",
["par"] = "Panamint",
["pas"] = "Papasena",
["pat"] = "Papitalai",
["pau"] = "Palau",
["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"] = "Pame Tengah",
["pbv"] = "Pnar",
["pby"] = "Pyu",
["pca"] = "Santa Inés Ahuatempan Popoloca",
["pcb"] = "Pear",
["pcc"] = "Bouyei",
["pcd"] = "Picard",
["pce"] = "Ruching Palaung",
["pcf"] = "Paliyan",
["pcg"] = "Paniya",
["pch"] = "Pardhan",
["pci"] = "Duruwa",
["pcj"] = "Parenga",
["pck"] = "Paite",
["pcl"] = "Pardhi",
["pcm"] = "Pijin Nigeria",
["pcn"] = "Piti",
["pcp"] = "Pacahuara",
["pcw"] = "Pyapun",
["pda"] = "Anam",
["pdc"] = "Jerman Pennsylvania",
["pdi"] = "Pa Di",
["pdn"] = "Fedan",
["pdo"] = "Padoe",
["pdt"] = "Plautdietsch",
["pdu"] = "Kayan",
["pea"] = "Peranakan Indonesian",
["peb"] = "Pomo Timur",
["ped"] = "Mala (New Guinea)",
["pee"] = "Taje",
["pef"] = "Pomo Timur Laut",
["peg"] = "Pengo",
["peh"] = "Bonan",
["pei"] = "Chichimeca-Jonaz",
["pej"] = "Pomo Utara",
["pek"] = "Penchal",
["pel"] = "Pekal",
["pem"] = "Phende",
["peo"] = "Parsi Kuno",
["pep"] = "Kunja",
["peq"] = "Pomo Selatan",
["pev"] = "Pémono",
["pex"] = "Petats",
["pey"] = "Petjo",
["pez"] = "Penan Timur",
["pfa"] = "Pááfang",
["pfe"] = "Peere",
["pga"] = "Arab Juba",
["pgd"] = "Gandhari",
["pgg"] = "Pangwali",
["pgi"] = "Pagi",
["pgk"] = "Rerep",
["pgl"] = "Primitive Irish",
["pgn"] = "Paelignian",
["pgs"] = "Pangseng",
["pgu"] = "Pagu",
["pgz"] = "Bahasa Isyarat Papua New Guinea",
["pha"] = "Pa-Hng",
["phd"] = "Phudagi",
["phg"] = "Phuong",
["phh"] = "Phukha",
["phi-din"] = "Agta Dinapigue",
["phi-kal-pro"] = "Kalamian Purba",
["phi-nag"] = "Agta Nagtipunan",
["phi-pro"] = "Filipina Purba",
["phk"] = "Phake",
["phl"] = "Phalura",
["phm"] = "Phimbi",
["phn"] = "Phoenicia",
["pho"] = "Phunoi",
["phq"] = "Phana'",
["phr"] = "Pahari-Potwari",
["pht"] = "Phu Thai",
["phu"] = "Phuan",
["phv"] = "Pahlavani",
["phw"] = "Phangduwali",
["pi"] = "Pali",
["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"] = "Baekje",
["pkg"] = "Pak-Tong",
["pkh"] = "Pankhu",
["pkn"] = "Pakanha",
["pko"] = "Pökoot",
["pkp"] = "Pukapukan",
["pkr"] = "Attapady Kurumba",
["pks"] = "Bahasa Isyarat Pakistan",
["pkt"] = "Maleng",
["pku"] = "Paku",
["pl"] = "Poland",
["pla"] = "Miani",
["plb"] = "Polonombauk",
["plc"] = "Central Palawano",
["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"] = "Palawano Barat Daya",
["plw"] = "Palawano Brooke's Point",
["ply"] = "Bolyu",
["plz"] = "Paluan",
["pma"] = "Paama",
["pmb"] = "Pambia",
["pmd"] = "Pallanganmiddang",
["pme"] = "Pwaamei",
["pmf"] = "Pamona",
["pmi"] = "Pumi Utara",
["pmj"] = "Pumi Selatan",
["pmk"] = "Pamlico",
["pml"] = "Sabir",
["pmm"] = "Pol",
["pmn"] = "Pam",
["pmo"] = "Pom",
["pmq"] = "Pame Utara",
["pmr"] = "Paynamar",
["pms"] = "Piemonte",
["pmt"] = "Tuamotuan",
["pmu"] = "Mirpur Panjabi",
["pmw"] = "Plains Miwok",
["pmx"] = "Poumei Naga",
["pmy"] = "Papuan Malay",
["pmz"] = "Southern Pame",
["pna"] = "Punan Bah-Biau",
["pnb"] = "Punjabi Barat",
["pnc"] = "Pannei",
["pnd"] = "Mpinda",
["pne"] = "Penan Barat",
["png"] = "Pongu",
["pnh"] = "Penrhyn",
["pni"] = "Aoheng",
["pnj"] = "Pinjarup",
["pnk"] = "Paunaca",
["pnl"] = "Paleni",
["pnm"] = "Punan Batu",
["pnn"] = "Pinai-Hagahai",
["pno"] = "Panobo",
["pnp"] = "Pancana",
["pnq"] = "Pana (Afrika Barat)",
["pnr"] = "Panim",
["pns"] = "Ponosakan",
["pnt"] = "Yunani Pontus",
["pnu"] = "Jiongnai Bunu",
["pnv"] = "Pinigura",
["pnw"] = "Panyjima",
["pnx"] = "Phong-Kniang",
["pny"] = "Pinyin",
["pnz"] = "Pana (Afrika Tengah)",
["poc"] = "Poqomam",
["poe"] = "San Juan Atzingo Popoloca",
["pof"] = "Poke",
["pog"] = "Potiguára",
["poh"] = "Poqomchi'",
["poi"] = "Highland Popoluca",
["pok"] = "Pokangá",
["pom"] = "Pomo Tenggara",
["pon"] = "Pohnpei",
["poo"] = "Pomo Tengah",
["pop"] = "Pwapwa",
["poq"] = "Texistepec Popoluca",
["pos"] = "Sayula Popoluca",
["pot"] = "Potawatomi",
["pov"] = "Kreol Guinea-Bissau",
["pow"] = "San Felipe Otlaltepec Popoloca",
["pox"] = "Polabia",
["poy"] = "Pogolo",
["poz-abi"] = "Abai",
["poz-bal"] = "Baliledo",
["poz-btk-pro"] = "Bungku-Tolaki Purba",
["poz-cet-pro"] = "Melayu-Polinesia Tengah-Timur Purba",
["poz-hce-pro"] = "Halmahera-Cenderawasih Purba",
["poz-lgx-pro"] = "Lampungik Purba",
["poz-mcm-pro"] = "Melayu-Chamic Purba",
["poz-mic-pro"] = "Mikronesia Purba",
["poz-mly-pro"] = "Melayik Purba",
["poz-msa-pro"] = "Melayu-Sumbawa Purba",
["poz-nes"] = "Nese",
["poz-oce-pro"] = "Oceania Purba",
["poz-pcc-pro"] = "Pasifik Tengah Purba",
["poz-pep-pro"] = "Polinesia Timur Purba",
["poz-pnp-pro"] = "Polinesia Teras Purba",
["poz-pol-pro"] = "Polinesia Purba",
["poz-pro"] = "Melayu-Polinesia Purba",
["poz-sml"] = "Melayu Sarawak",
["poz-ssw-pro"] = "Sulawesi Selatan Purba",
["poz-swa-pro"] = "Sarawak Utara Purba",
["poz-ter"] = "Melayu Terengganu",
["ppa"] = "Pao",
["ppe"] = "Papi",
["ppi"] = "Paipai",
["ppk"] = "Uma",
["ppl"] = "Pipil",
["ppm"] = "Papuma",
["ppn"] = "Papapana",
["ppo"] = "Folopa",
["ppq"] = "Pei",
["pps"] = "San Luís Temalacayuca Popoloca",
["ppt"] = "Pa",
["ppu"] = "Papora",
["pqa"] = "Pa'a",
["pqe-pro"] = "Melayu-Polinesia Timur Purba",
["pqm"] = "Malecite-Passamaquoddy",
["pra"] = "Prakrit",
["pra-niy"] = "Prakrit Niya",
["prc"] = "Parachi",
["pre"] = "Principe",
["prf"] = "Paranan",
["prg"] = "Prusia Kuno",
["prh"] = "Porohanon",
["pri"] = "Paicî",
["prk"] = "Parauk",
["prl"] = "Bahasa Isyarat Peru",
["prm"] = "Kibiri",
["prn"] = "Prasuni",
["pro"] = "Occitan Kuno",
["prq"] = "Ashéninka Perené",
["prr"] = "Puri",
["prt"] = "Phai",
["pru"] = "Puragi",
["prw"] = "Parawen",
["prx"] = "Purik",
["prz"] = "Bahasa Isyarat Providencia",
["ps"] = "Pashto",
["psa"] = "Asue Awyu",
["psc"] = "Bahasa Isyarat Parsi",
["psd"] = "Plains Indian Sign Language",
["pse"] = "Melayu Barisan Selatan",
["psg"] = "Bahasa Isyarat Pulau Pinang",
["psh"] = "Pashayi Barat Daya",
["psi"] = "Pashayi Tenggara",
["psl"] = "Bahasa Isyarat Puerto Rico",
["psm"] = "Pauserna",
["psn"] = "Panasuan",
["pso"] = "Bahasa Isyarat Poland",
["psp"] = "Bahasa Isyarat Filipina",
["psq"] = "Pasi",
["psr"] = "Bahasa Isyarat Portugis",
["pss"] = "Kaulong",
["psw"] = "Port Sandwich",
["psy"] = "Piscataway",
["pt"] = "Portugis",
["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"] = "Paiwan",
["pwo"] = "Pwo Barat",
["pwr"] = "Powari",
["pww"] = "Pwo Utara",
["pxm"] = "Quetzaltepec Mixe",
["pye"] = "Pye Krumen",
["pym"] = "Fyam",
["pyn"] = "Poyanáwa",
["pys"] = "Bahasa Isyarat Paraguay",
["pyu"] = "Puyuma",
["pyx"] = "Tircul",
["pyy"] = "Pyen",
["pzh"] = "Pazeh",
["pzn"] = "Para Naga",
["qfa-adm-pro"] = "Andaman Besar Purba",
["qfa-bet-pro"] = "Be-Tai Purba",
["qfa-cka-pro"] = "Chukotko-Kamchatka Purba",
["qfa-hur-pro"] = "Hurro-Urartia Purba",
["qfa-kad-pro"] = "Kadu Purba",
["qfa-kms-pro"] = "Kam-Sui Purba",
["qfa-kor-pro"] = "Korea Purba",
["qfa-kra-pro"] = "Kra Purba",
["qfa-lic-pro"] = "Hlai Purba",
["qfa-onb-pro"] = "Be Purba",
["qfa-ong-pro"] = "Onga Purba",
["qfa-tak-pro"] = "Kra-Dai Purba",
["qfa-yen-pro"] = "Yenisei Purba",
["qfa-yuk-pro"] = "Yukaghir Purba",
["qu"] = "Quechua",
["qua"] = "Quapaw",
["quc"] = "K'iche'",
["qui"] = "Quileute",
["qum"] = "Sipakapense",
["qun"] = "Quinault",
["quq"] = "Quinqui",
["quv"] = "Sacapulteco",
["qvy"] = "Queyu",
["qwc"] = "Quechua Klasik",
["qwe-kch"] = "Kichwa",
["qwe-pro"] = "Quechua Purba",
["qwm"] = "Kipchak",
["qwt"] = "Kwalhioqua-Tlatskanai",
["qxs"] = "Southern Qiang",
["qya"] = "Quenya",
["qyp"] = "Quiripi",
["raa"] = "Dungmali",
["rab"] = "Chamling",
["rac"] = "Rasawa",
["rad"] = "Rade",
["raf"] = "Meohang Barat",
["rag"] = "Logooli",
["rah"] = "Rabha",
["rai"] = "Ramoaaina",
["raj"] = "Rajasthan",
["rak"] = "Tulu-Bohuai",
["ral"] = "Ralte",
["ram"] = "Canela",
["ran"] = "Riantana",
["rao"] = "Rao",
["rap"] = "Rapa Nui",
["raq"] = "Saam",
["rar"] = "Rarotonga",
["ras"] = "Tegali",
["rat"] = "Razajerdi",
["rau"] = "Raute",
["rav"] = "Sampang",
["raw"] = "Rawang",
["rax"] = "Rang",
["ray"] = "Rapa",
["raz"] = "Rahambuu",
["rbb"] = "Rumai Palaung",
["rbk"] = "Bontoc Utara",
["rbl"] = "Bikol Miraya",
["rcf"] = "Perancis Kreol Réunion",
["rdb"] = "Rudbari",
["rea"] = "Rerau",
["reb"] = "Rembong",
["ree"] = "Kayan Rejang",
["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"] = "Yunani Romani",
["rgk"] = "Rangkas",
["rgn"] = "Romagnol",
["rgr"] = "Resígaro",
["rgs"] = "Roglai Selatan",
["rgu"] = "Ringgou",
["rhg"] = "Rohingya",
["rhp"] = "Yahang",
["ria"] = "Reang",
["rif"] = "Tarifit",
["ril"] = "Riang",
["rim"] = "Nyaturu",
["rin"] = "Nungu",
["rir"] = "Ribun",
["rit"] = "Ritarungo",
["riu"] = "Riung",
["rjg"] = "Rajong",
["rji"] = "Raji",
["rjs"] = "Rajbanshi",
["rka"] = "Kraol",
["rkb"] = "Rikbaktsa",
["rkh"] = "Rakahanga-Manihiki",
["rki"] = "Rakhine",
["rkm"] = "Marka",
["rkt"] = "Kamta",
["rkw"] = "Arakwal",
["rm"] = "Romansh",
["rma"] = "Rama",
["rmb"] = "Rembarunga",
["rmc"] = "Romani Carpathia",
["rmd"] = "Denmark Pengembara",
["rme"] = "Angloromani",
["rmf"] = "Romani Finland Kalo",
["rmg"] = "Norway Pengembara",
["rmh"] = "Murkim",
["rmi"] = "Lomavren",
["rmk"] = "Romkun",
["rml"] = "Romani Baltik",
["rmm"] = "Roma",
["rmn"] = "Romani Balkan",
["rmo"] = "Romani Sinte",
["rmp"] = "Rempi",
["rmq"] = "Caló",
["rms"] = "Bahasa Isyarat Romania",
["rmt"] = "Domari",
["rmu"] = "Tavringer Romani",
["rmv"] = "Romanova",
["rmw"] = "Romani Wales",
["rmx"] = "Romam",
["rmy"] = "Romani Vlax",
["rmz"] = "Marma",
["rnd"] = "Ruwund",
["rng"] = "Ronga",
["rnl"] = "Ranglong",
["rnn"] = "Roon",
["rnp"] = "Rongpo",
["rnw"] = "Rungwa",
["ro"] = "Romania",
["roa-ang"] = "Angevin",
["roa-bbn"] = "Bourbonnais-Berrichon",
["roa-brg"] = "Bourguignon",
["roa-can"] = "Cantabrian",
["roa-cha"] = "Champenois",
["roa-fcm"] = "Franc-Comtois",
["roa-gal"] = "Gallo",
["roa-gib"] = "Gallo-Italik Basilicata",
["roa-gis"] = "Gallo-Italik Sicily",
["roa-leo"] = "Leon",
["roa-lor"] = "Lorrain",
["roa-oca"] = "Catalonia Kuno",
["roa-ole"] = "Leon Kuno",
["roa-ona"] = "Navarro-Aragon Kuno",
["roa-opt"] = "Galicia-Portugis Kuno",
["roa-orl"] = "Orléanais",
["roa-poi"] = "Poitevin-Saintongeais",
["roa-tar"] = "Tarantino",
["rob"] = "Tae'",
["roc"] = "Roglai Cacgia",
["rod"] = "Rogo",
["roe"] = "Ronji",
["rof"] = "Rombo",
["rog"] = "Roglai Utara",
["rol"] = "Romblomanon",
["rom"] = "Romani",
["roo"] = "Rotokas",
["rop"] = "Kriol",
["ror"] = "Rongga",
["rou"] = "Runga",
["row"] = "Dela-Oenale",
["rpn"] = "Repanbitip",
["rpt"] = "Rapting",
["rri"] = "Ririo",
["rro"] = "Roro",
["rrt"] = "Arritinngithigh",
["rsb"] = "Romano-Serbia",
["rsk"] = "Rusyn Pannonia",
["rsl"] = "Bahasa Isyarat Rusia",
["rsm"] = "Bahasa Isyarat Miriwoong",
["rtc"] = "Rungtu",
["rth"] = "Ratahan",
["rtm"] = "Rotuma",
["rtw"] = "Rathawi",
["ru"] = "Rusia",
["rub"] = "Gungu",
["ruc"] = "Ruuli",
["rue"] = "Rusyn",
["ruf"] = "Luguru",
["rug"] = "Roviana",
["ruh"] = "Ruga",
["rui"] = "Rufiji",
["ruk"] = "Che",
["ruo"] = "Istro-Romania",
["rup"] = "Aromania",
["ruq"] = "Megleno-Romania",
["rut"] = "Rutul",
["ruu"] = "Lanas Lobu",
["ruy"] = "Mala (Nigeria)",
["ruz"] = "Ruma",
["rw"] = "Rwanda-Rundi",
["rwa"] = "Rawo",
["rwk"] = "Rwa",
["rwm"] = "Amba",
["rwo"] = "Rawa",
["rxd"] = "Ngardi",
["rxw"] = "Karuwali",
["ryn"] = "Amami Ōshima Utara",
["rys"] = "Yaeyama",
["ryu"] = "Okinawa",
["rzh"] = "Razihi",
["sa"] = "Sanskrit",
["saa"] = "Saba",
["sab"] = "Buglere",
["sac"] = "Fox",
["sad"] = "Sandawe",
["sae"] = "Sabanê",
["saf"] = "Safaliba",
["sah"] = "Yakut",
["sai-all"] = "Allentiac",
["sai-and"] = "Andoquero",
["sai-ayo"] = "Ayomán",
["sai-bae"] = "Baenan",
["sai-bag"] = "Bagua",
["sai-bet"] = "Betoi",
["sai-bor-pro"] = "Bora Purba",
["sai-cac"] = "Cacán",
["sai-caq"] = "Caranqui",
["sai-car-pro"] = "Carib Purba",
["sai-cat"] = "Catacao",
["sai-cer-pro"] = "Cerrado Purba",
["sai-chi"] = "Chirino",
["sai-chn"] = "Chaná",
["sai-chp"] = "Chapacura",
["sai-chr"] = "Charrua",
["sai-chu"] = "Churuya",
["sai-cje-pro"] = "Jê Tengah Purba",
["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"] = "Jê Purba",
["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"] = "Jê Utara Purba",
["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"] = "Jê Selatan Purba",
["sai-tab"] = "Tabancale",
["sai-tal"] = "Tallán",
["sai-tap"] = "Tapayuna",
["sai-tar-pro"] = "Taranoan Purba",
["sai-teu"] = "Teushen",
["sai-tim"] = "Timote",
["sai-tpr"] = "Taparita",
["sai-trr"] = "Tarairiú",
["sai-wai"] = "Waitaká",
["sai-way"] = "Wayumara",
["sai-wit-pro"] = "Witotoan Purba",
["sai-wnm"] = "Wanham",
["sai-xoc"] = "Xocó",
["sai-yao"] = "Yao (Amerika Selatan)",
["sai-yar"] = "Yarumá",
["sai-yri"] = "Yuri",
["sai-yup"] = "Yupua",
["sai-yur"] = "Yurumanguí",
["saj"] = "Sahu",
["sak"] = "Sake",
["sal-pro"] = "Salish Purba",
["sam"] = "Samaritan Aramaic",
["sao"] = "Sause",
["saq"] = "Samburu",
["sar"] = "Saraveca",
["sas"] = "Sasak",
["sat"] = "Santal",
["sau"] = "Saleman",
["sav"] = "Saafi-Saafi",
["saw"] = "Sawi",
["sax"] = "Sa",
["say"] = "Saya",
["saz"] = "Saurashtra",
["sba"] = "Ngambay",
["sbb"] = "Simbo",
["sbc"] = "Gele'",
["sbd"] = "Samo Selatan",
["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"] = "Sardinia",
["scb"] = "Chut",
["sce"] = "Dongxiang",
["scf"] = "Perancis Kreol San Miguel",
["scg"] = "Sanggau",
["sch"] = "Sakachep",
["sci"] = "Melayu Sri Lanka",
["sck"] = "Sadri",
["scl"] = "Shina",
["scn"] = "Sicilia",
["sco"] = "Scots",
["scp"] = "Yolmo",
["scq"] = "Sa'och",
["scs"] = "Slavey Utara",
["scu"] = "Shumcho",
["scv"] = "Sheni",
["scw"] = "Sha",
["scx"] = "Sicel",
["sd"] = "Sindhi",
["sda"] = "Toraja-Sa'dan",
["sdb"] = "Shabak",
["sdc"] = "Sassari",
["sde"] = "Surubu",
["sdf"] = "Sarli",
["sdg"] = "Savi",
["sdh"] = "Kurdi Selatan",
["sdj"] = "Suundi",
["sdk"] = "Sos Kundi",
["sdl"] = "Saudi Arabian Sign Language",
["sdm"] = "Semandang",
["sdn"] = "Gallura",
["sdo"] = "Bidayuh Bukar-Sadong",
["sdp"] = "Sherdukpen",
["sdr"] = "Oraon Sadri",
["sds"] = "Barbar Tunisia",
["sdu"] = "Sarudu",
["sdv-daj-pro"] = "Daju Purba",
["sdv-eje-pro"] = "Jebel Timur Purba",
["sdv-nil-pro"] = "Nilotik Purba",
["sdv-nyi-pro"] = "Nyima Purba",
["sdv-tmn-pro"] = "Taman Purba",
["sdx"] = "Melanau Sibu",
["se"] = "Sami Utara",
["sea"] = "Semai",
["sec"] = "Sechelt",
["sed"] = "Sedang",
["see"] = "Seneca",
["sef"] = "Cebaara Senoufo",
["seg"] = "Segeju",
["seh"] = "Sena",
["sei"] = "Seri",
["sej"] = "Sene",
["sek"] = "Sekani",
["sel-nor"] = "Selkup Utara",
["sel-pro"] = "Selkup Purba",
["sel-sou"] = "Selkup Selatan",
["sem-amm"] = "Ammon",
["sem-amo"] = "Amor",
["sem-cha"] = "Chaha",
["sem-dad"] = "Dadan",
["sem-dum"] = "Dumait",
["sem-has"] = "Hasait",
["sem-his"] = "Hisma",
["sem-mhr"] = "Muher",
["sem-pro"] = "Samiah Purba",
["sem-saf"] = "Safait",
["sem-sam"] = "Samal",
["sem-srb"] = "Arab Selatan Kuno",
["sem-tay"] = "Tayman",
["sem-tha"] = "Thamud",
["sem-wes-pro"] = "Samiah Barat Purba",
["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"] = "Chin Senthang",
["sfb"] = "French Belgian Sign Language",
["sfm"] = "Small Flowery Miao",
["sfs"] = "Bahasa Isyarat Afrika Selatan",
["sfw"] = "Sehwi",
["sg"] = "Sango",
["sga"] = "Ireland Kuno",
["sgb"] = "Mag-Anchi Ayta",
["sgc"] = "Kipsigis",
["sgd"] = "Surigaonon",
["sge"] = "Segai",
["sgg"] = "Swiss-German Sign Language",
["sgh"] = "Shughni",
["sgi"] = "Suga",
["sgk"] = "Sangkong",
["sgm"] = "Singa",
["sgp"] = "Singpho",
["sgr"] = "Sangisari",
["sgs"] = "Samogitia",
["sgt"] = "Brokpake",
["sgu"] = "Salas",
["sgw"] = "Sebat Bet Gurage",
["sgx"] = "Sierra Leone Sign Language",
["sgy"] = "Sanglechi",
["sgz"] = "Sursurunga",
["sh"] = "Serbo-Croatia",
["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"] = "Shan",
["sho"] = "Shanga",
["shp"] = "Shipibo-Conibo",
["shq"] = "Sala",
["shr"] = "Shi",
["shs"] = "Shuswap",
["sht"] = "Shasta",
["shu"] = "Arab Chad",
["shv"] = "Shehri",
["shw"] = "Shwai",
["shx"] = "She",
["shy"] = "Tachawit",
["shz"] = "Syenara Senoufo",
["si"] = "Sinhala",
["sia"] = "Sami Akkala",
["sib"] = "Sebop",
["sid"] = "Sidamo",
["sie"] = "Simaa",
["sif"] = "Siamou",
["sig"] = "Paasaal",
["sih"] = "Zire",
["sii"] = "Shom Peng",
["sij"] = "Numbami",
["sik"] = "Sikiana",
["sil"] = "Tumulung Sisaala",
["sim"] = "Seim",
["sio-pro"] = "Sioux Purba",
["sip"] = "Sikkim",
["siq"] = "Sonia",
["sir"] = "Siri",
["sis"] = "Siuslaw",
["sit-aao-pro"] = "Naga Tengah Purba",
["sit-bai-pro"] = "Bai Purba",
["sit-ban"] = "Bangru",
["sit-bdi-pro"] = "Bodish Purba",
["sit-bok"] = "Bokar",
["sit-cai"] = "Caijia",
["sit-cha"] = "Chairel",
["sit-ers-pro"] = "Ersu Purba",
["sit-hrs-pro"] = "Hrusish Purba",
["sit-jap"] = "Japhug",
["sit-kha-pro"] = "Kham Purba",
["sit-khb-pro"] = "Kho-Bwa Purba",
["sit-khp-pro"] = "Puroik Purba",
["sit-khw-pro"] = "Kho-Bwa Barat Purba",
["sit-kon-pro"] = "Naga Utara Purba",
["sit-liz"] = "Lizu",
["sit-lnj"] = "Longjia",
["sit-lrn"] = "Luren",
["sit-luu-pro"] = "Luish Purba",
["sit-nas-pro"] = "Naish Purba",
["sit-prn"] = "Puiron",
["sit-pro"] = "Sino-Tibet Purba",
["sit-sit"] = "Situ",
["sit-tam-pro"] = "Tamang Purba",
["sit-tan-pro"] = "Tani Purba",
["sit-tgm"] = "Tangam",
["sit-tng-pro"] = "Tangkhul Purba",
["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",
["sjd"] = "Sami Kildin",
["sje"] = "Sami Pite",
["sjg"] = "Assangori",
["sjk"] = "Sami Kemi",
["sjl"] = "Miji",
["sjm"] = "Mapun",
["sjn"] = "Sindarin",
["sjo"] = "Xibe",
["sjp"] = "Surjapuri",
["sjr"] = "Siar-Lak",
["sjs"] = "Senhaja De Srair",
["sjt"] = "Sami Ter",
["sju"] = "Sami Ume",
["sjw"] = "Shawnee",
["sk"] = "Slovak",
["ska"] = "Skagit",
["skb"] = "Saek",
["skc"] = "Ma Manda",
["skd"] = "Miwok Sierra Selatan",
["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"] = "Maia",
["skt"] = "Sakata",
["sku"] = "Sakao",
["skv"] = "Skou",
["skw"] = "Belanda Kreol Skepi",
["skx"] = "Seko Padang",
["sky"] = "Sikaiana",
["skz"] = "Sekar",
["sl"] = "Slovenia",
["sla-pro"] = "Slav Purba",
["slc"] = "Saliba (Colombia)",
["sld"] = "Sissala",
["sle"] = "Sholaga",
["slf"] = "Swiss-Italian Sign Language",
["slg"] = "Selungai Murut",
["slh"] = "Salish Puget Sound Selatan",
["slj"] = "Salumá",
["sll"] = "Salt-Yui",
["slm"] = "Pangutaran Sama",
["sln"] = "Salinan",
["slp"] = "Lamaholot",
["slq"] = "Salchuq",
["slr"] = "Salar",
["sls"] = "Singapore Sign Language",
["slt"] = "Sila",
["slu"] = "Selaru",
["slw"] = "Sialum",
["slx"] = "Salampasu",
["sly"] = "Selayar",
["slz"] = "Ma'ya",
["sm"] = "Samoa",
["sma"] = "Sami Selatan",
["smb"] = "Simbari",
["smc"] = "Som",
["smd"] = "Sama",
["smf"] = "Auwe",
["smg"] = "Simbali",
["smh"] = "Samei",
["smi-pro"] = "Sami Purba",
["smj"] = "Sami Lule",
["smk"] = "Bolinao",
["sml"] = "Bajau Laut",
["smm"] = "Musasa",
["smn"] = "Sami Inari",
["smp"] = "Ibrani Samaria",
["smq"] = "Samo",
["smr"] = "Simeulue",
["sms"] = "Sami Skolt",
["smt"] = "Simte",
["smu"] = "Somray",
["smv"] = "Samvedi",
["smw"] = "Sumbawa",
["smx"] = "Samba",
["smy"] = "Semnani",
["smz"] = "Simeku",
["sn"] = "Shona",
["snb"] = "Sebuyau",
["snc"] = "Sinaugoro",
["sne"] = "Bidayuh Bau",
["snf"] = "Noon",
["sng"] = "Sanga (Congo)",
["sni"] = "Sensi",
["snj"] = "Riverain Sango",
["snk"] = "Soninke",
["snl"] = "Sangil",
["snm"] = "Ma'di Selatan",
["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"] = "Somali",
["soa"] = "Thai Song",
["sob"] = "Sobei",
["soc"] = "Soko",
["sod"] = "Songoora",
["soe"] = "Songomeno",
["sog"] = "Sogdia",
["soh"] = "Aka (Sudan)",
["soi"] = "Sonha",
["sok"] = "Sokoro",
["sol"] = "Solos",
["son-pro"] = "Songhai Purba",
["soo"] = "Nsong",
["sop"] = "Songe",
["soq"] = "Kanasi",
["sor"] = "Somrai",
["sos"] = "Seenku",
["sou"] = "Thai Selatan",
["sov"] = "Sonsorol",
["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"] = "Picenum Selatan",
["spy"] = "Sabaot",
["sq"] = "Albania",
["sqa"] = "Shama-Sambuga",
["sqh"] = "Shau",
["sqj-pro"] = "Albania Purba",
["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"] = "Murut Serudung",
["srl"] = "Isirawa",
["srm"] = "Saramaccan",
["srn"] = "Seranan",
["srq"] = "Sirionó",
["srr"] = "Serer",
["srs"] = "Tsuut'ina",
["srt"] = "Sauri",
["sru"] = "Suruí",
["srv"] = "Waray Sorsogon",
["srw"] = "Serua",
["srx"] = "Sirmauri",
["sry"] = "Sera",
["srz"] = "Shahmirzadi",
["ss"] = "Swazi",
["ssa-klk-pro"] = "Kuliak Purba",
["ssa-kom-pro"] = "Koma Purba",
["ssa-pro"] = "Nilo-Sahara Purba",
["ssb"] = "Bajau Pantai Timur",
["ssc"] = "Suba-Simbiti",
["ssd"] = "Siroi",
["sse"] = "Balangingi",
["ssf"] = "Thao",
["ssg"] = "Seimat",
["ssh"] = "Arab Syihuh",
["ssi"] = "Sansi",
["ssj"] = "Sausi",
["ssk"] = "Sunam",
["ssl"] = "Sisaala Barat",
["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"] = "Saho",
["ssz"] = "Sengseng",
["st"] = "Sotho",
["stb"] = "Subanen Utara",
["std"] = "Sentinel",
["ste"] = "Liana-Seti",
["stf"] = "Seta",
["stg"] = "Trieng",
["sth"] = "Shelta",
["sti"] = "Bulo Stieng",
["stj"] = "Matya Samo",
["stk"] = "Arammba",
["stm"] = "Setaman",
["stn"] = "Owa",
["sto"] = "Stoney",
["stp"] = "Tepehuan Tenggara",
["stq"] = "Frisia Saterland",
["str"] = "Saanich",
["sts"] = "Shumashti",
["stt"] = "Budeh Stieng",
["stu"] = "Samtao",
["stv"] = "Silt'e",
["stw"] = "Satawal",
["sty"] = "Tatar Siberia",
["su"] = "Sunda",
["sua"] = "Sulka",
["sub"] = "Suku",
["suc"] = "Subanon Barat",
["sue"] = "Suena",
["sug"] = "Suganga",
["sui"] = "Suki",
["suk"] = "Sukuma",
["suq"] = "Suri",
["sur"] = "Mwaghavul",
["sus"] = "Susu",
["sut"] = "Subtiaba",
["suv"] = "Sulung",
["suw"] = "Sumbwa",
["sux"] = "Sumeria",
["suy"] = "Suyá",
["suz"] = "Sunwar",
["sv"] = "Sweden",
["sva"] = "Svan",
["svb"] = "Ulau-Suain",
["svc"] = "Inggeris Kreol Vincent",
["sve"] = "Serili",
["svk"] = "Slovakian Sign Language",
["svm"] = "Slavomolisano",
["svs"] = "Savosavo",
["svx"] = "Skalvian",
["sw"] = "Swahili",
["swb"] = "Comoros Maore",
["swf"] = "Sere",
["swg"] = "Swabia",
["swi"] = "Sui",
["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"] = "Kalapuya Selatan",
["sxl"] = "Selonia",
["sxm"] = "Samre",
["sxn"] = "Sangir",
["sxo"] = "Sorothaptic",
["sxr"] = "Saaroa",
["sxs"] = "Sasaru",
["sxw"] = "Saxwe Gbe",
["sya"] = "Siang",
["syb"] = "Subanen Tengah",
["syc"] = "Suryani Klasik",
["syd-pro"] = "Samoyed Purba",
["syi"] = "Seki",
["syk"] = "Sukur",
["syl"] = "Sylhet",
["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"] = "Silesia",
["szn"] = "Sula",
["szp"] = "Suabo",
["szv"] = "Isubu",
["szw"] = "Sawai",
["szy"] = "Sakizaya",
["ta"] = "Tamil",
["taa"] = "Lower Tanana",
["tab"] = "Tabasaran",
["tac"] = "Lowland Tarahumara",
["tad"] = "Tause",
["tae"] = "Tariana",
["taf"] = "Tapirapé",
["tag"] = "Tagoi",
["tai-pro"] = "Tai Purba",
["tai-swe-pro"] = "Tai Barat Daya Purba",
["taj"] = "Tamang Timur",
["tak"] = "Tala",
["tal"] = "Tal",
["tan"] = "Tangale",
["tao"] = "Yami",
["tap"] = "Taabwa",
["tar"] = "Tarahumara Tengah",
["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"] = "Tairora Utara",
["tbh"] = "Thurawal",
["tbi"] = "Gaam",
["tbj"] = "Tiang",
["tbk"] = "Calamian Tagbanwa",
["tbl"] = "Tboli",
["tbm"] = "Tagbu",
["tbn"] = "Barro Negro Tunebo",
["tbo"] = "Tawala",
["tbp"] = "Taworta",
["tbq-bdg-pro"] = "Bodo-Garo Purba",
["tbq-blg"] = "Bailang",
["tbq-brm-pro"] = "Burma Purba",
["tbq-gkh"] = "Gokhy",
["tbq-kuk-pro"] = "Kuki-Chin Purba",
["tbq-lal-pro"] = "Lalo Purba",
["tbq-laz"] = "Laze",
["tbq-lob-pro"] = "Lolo-Burma Purba",
["tbq-lol-pro"] = "Lolo Purba",
["tbq-mil"] = "Milang",
["tbq-mor"] = "Moran",
["tbq-ngo"] = "Ngochang",
["tbr"] = "Tumtum",
["tbs"] = "Tanguat",
["tbt"] = "Kitembo",
["tbu"] = "Tubar",
["tbv"] = "Tobo",
["tbw"] = "Tagbanwa",
["tbx"] = "Kapin",
["tby"] = "Tabaru",
["tbz"] = "Ditammari",
["tca"] = "Ticuna",
["tcb"] = "Tanacross",
["tcc"] = "Datooga",
["tcd"] = "Tafi",
["tce"] = "Tutchone Selatan",
["tcf"] = "Tlapanec Malinaltepec",
["tcg"] = "Tamagario",
["tch"] = "Inggeris Kreol Turks dan Caicos",
["tci"] = "Wára",
["tck"] = "Tchitchege",
["tcl"] = "Taman (Myanmar)",
["tcm"] = "Tanahmerah",
["tco"] = "Taungyo",
["tcp"] = "Chin Tawr",
["tcq"] = "Kaiy",
["tcs"] = "Kreol Selat Torres",
["tct"] = "T'en",
["tcu"] = "Tarahumara Tenggara",
["tcw"] = "Tecpatlán Totonac",
["tcx"] = "Toda",
["tcy"] = "Tulu",
["tcz"] = "Chin Thado",
["tda"] = "Tagdal",
["tdb"] = "Panchpargania",
["tdc"] = "Emberá-Tadó",
["tdd"] = "Tai Nüa",
["tde"] = "Tiranige Diga Dogon",
["tdf"] = "Talieng",
["tdg"] = "Tamang Barat",
["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"] = "Telugu",
["tea"] = "Temiar",
["teb"] = "Tetete",
["tec"] = "Terik",
["ted"] = "Tepo Krumen",
["tee"] = "Tepehua Huehuetla",
["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"] = "Tetum",
["teu"] = "Soo",
["tev"] = "Teor",
["tew"] = "Tewa",
["tex"] = "Tennet",
["tey"] = "Tulishi",
["tez"] = "Tetserret",
["tfi"] = "Tofin Gbe",
["tfn"] = "Dena'ina",
["tfo"] = "Tefaro",
["tfr"] = "Teribe",
["tft"] = "Ternate",
["tg"] = "Tajik",
["tga"] = "Sagalla",
["tgb"] = "Tobilung",
["tgc"] = "Tigak",
["tgd"] = "Ciwogai",
["tge"] = "Tamang Gorkha Timur",
["tgf"] = "Chali",
["tgh"] = "Inggeris Kreol Tobago",
["tgi"] = "Lawunuia",
["tgn"] = "Tandaganon",
["tgo"] = "Sudest",
["tgp"] = "Tangoa",
["tgq"] = "Tring",
["tgr"] = "Tareng",
["tgs"] = "Nume",
["tgt"] = "Tagbanwa Tengah",
["tgu"] = "Tanggu",
["tgv"] = "Tingui-Boto",
["tgw"] = "Tagwana Senoufo",
["tgx"] = "Tagish",
["tgy"] = "Togoyo",
["th"] = "Thai",
["thc"] = "Tai Hang Tong",
["thd"] = "Kuuk Thaayorre",
["the"] = "Chitwania Tharu",
["thf"] = "Thangmi",
["thh"] = "Tarahumara Utara",
["thi"] = "Tai Long",
["thk"] = "Tharaka",
["thl"] = "Dangaura Tharu",
["thm"] = "Thavung",
["thn"] = "Thachanadan",
["thp"] = "Thompson",
["thq"] = "Kochila Tharu",
["thr"] = "Rana Tharu",
["ths"] = "Thakali",
["tht"] = "Tahltan",
["thu"] = "Thuri",
["thy"] = "Tha",
["ti"] = "Tigrinya",
["tic"] = "Tira",
["tif"] = "Tifal",
["tig"] = "Tigre",
["tih"] = "Murut Timugon",
["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"] = "Tiwa Selatan",
["tiy"] = "Tiruray",
["tiz"] = "Tai Hongjin",
["tja"] = "Tajuasohn",
["tjg"] = "Tunjung",
["tji"] = "Tujia Utara",
["tjl"] = "Tai Laing",
["tjm"] = "Timucua",
["tjn"] = "Tonjon",
["tjs"] = "Tujia Selatan",
["tju"] = "Tjurruru",
["tjw"] = "Chaap Wuurong",
["tk"] = "Turkmen",
["tka"] = "Truká",
["tkb"] = "Buksa",
["tkd"] = "Tukudede",
["tke"] = "Takwane",
["tkf"] = "Tukumanféd",
["tkl"] = "Tokelau",
["tkm"] = "Takelma",
["tkn"] = "Toku-No-Shima",
["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"] = "Tagalog",
["tla"] = "Tepehuan Barat Daya",
["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"] = "Tamang Barat Laut",
["tml"] = "Tamnim Citak",
["tmm"] = "Tai Thanh",
["tmn"] = "Taman (Indonesia)",
["tmo"] = "Temoq",
["tmq"] = "Tumleo",
["tms"] = "Tima",
["tmt"] = "Tasmate",
["tmu"] = "Iau",
["tmv"] = "Motembo",
["tmw"] = "Temuan",
["tmy"] = "Tami",
["tmz"] = "Tamanaku",
["tn"] = "Tswana",
["tna"] = "Tacana",
["tnb"] = "Tunebo Barat",
["tnc"] = "Tanimuca-Retuarã",
["tnd"] = "Angosturas Tunebo",
["tne"] = "Tinoc Kallahan",
["tng"] = "Tobanga",
["tnh"] = "Maiani",
["tni"] = "Tandia",
["tnk"] = "Kwamera",
["tnl"] = "Lenakel",
["tnm"] = "Tabla",
["tnn"] = "Tanna Utara",
["tno"] = "Toromono",
["tnp"] = "Whitesands",
["tnq"] = "Taíno",
["tnr"] = "Bedik",
["tns"] = "Tenis",
["tnt"] = "Tontemboan",
["tnu"] = "Tay Khang",
["tnv"] = "Tanchangya",
["tnw"] = "Tonsawang",
["tnx"] = "Tanema",
["tny"] = "Tongwe",
["tnz"] = "Ten'edn",
["to"] = "Tonga",
["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"] = "Tok Pisin",
["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"] = "Tupi Kuno",
["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"] = "Totonac Barat",
["tqu"] = "Touo",
["tqw"] = "Tonkawa",
["tr"] = "Turki",
["tra"] = "Tirahi",
["trb"] = "Terebu",
["trc"] = "Copala Triqui",
["trd"] = "Turi",
["tre"] = "Tarangan Timur",
["trf"] = "Inggeris Kreol Trinidad",
["trg"] = "Lishán Didán",
["trh"] = "Turaka",
["tri"] = "Trió",
["trj"] = "Toram",
["trk-dkh"] = "Dukhan",
["trk-eog"] = "Oghuz Kuno Awal",
["trk-oat"] = "Turki Anatolia Kuno",
["trk-pro"] = "Turkik Purba",
["trl"] = "Traveller Scottish",
["trm"] = "Tregami",
["trn"] = "Trinitario",
["tro"] = "Tarao",
["trp"] = "Kokborok",
["trq"] = "San Martín Itunyoso Triqui",
["trr"] = "Taushiro",
["trs"] = "Chicahuaxtla Triqui",
["trt"] = "Tunggare",
["tru"] = "Turoyo",
["trv"] = "Taroko",
["trw"] = "Torwali",
["trx"] = "Tringgus",
["try"] = "Turung",
["trz"] = "Torá",
["ts"] = "Tsonga",
["tsa"] = "Tsaangi",
["tsb"] = "Tsamai",
["tsc"] = "Tswa",
["tsd"] = "Tsakonian",
["tse"] = "Bahasa Isyarat Tunisia",
["tsf"] = "Tamang Barat Daya",
["tsg"] = "Suluk",
["tsh"] = "Tsuvan",
["tsi"] = "Tsimshian",
["tsj"] = "Tshangla",
["tsl"] = "Ts'ün-Lao",
["tsm"] = "Bahasa Isyarat Turki",
["tsp"] = "Toussiana Utara",
["tsq"] = "Bahasa Isyarat Thai",
["tsr"] = "Akei",
["tss"] = "Bahasa Isyarat Taiwan",
["tsu"] = "Tsou",
["tsv"] = "Tsogo",
["tsw"] = "Tsishingini",
["tsx"] = "Mubami",
["tsy"] = "Bahasa Isyarat Tebul",
["tt"] = "Tatar",
["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"] = "Tutchone Utara",
["ttn"] = "Towei",
["tto"] = "Lower Ta'oih",
["ttp"] = "Tombelala",
["ttr"] = "Tera",
["tts"] = "Isan",
["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"] = "Tunebo Tengah",
["tug"] = "Tunia",
["tuh"] = "Taulil",
["tui"] = "Tupuri",
["tuj"] = "Tugutil",
["tul"] = "Tula",
["tum"] = "Tumbuka",
["tun"] = "Tunica",
["tuo"] = "Tucano",
["tup-gua-pro"] = "Tupi-Guarani Purba",
["tup-kab"] = "Kabishiana",
["tup-kaw"] = "Kawahiva",
["tup-pro"] = "Tupi Purba",
["tuq"] = "Tedaga",
["tus"] = "Tuscarora",
["tuu"] = "Tututni",
["tuv"] = "Turkana",
["tuw-alk"] = "Alchuka",
["tuw-bal"] = "Bala",
["tuw-kkl"] = "Kyakala",
["tuw-kli"] = "Kili",
["tuw-pro"] = "Tungus Purba",
["tuw-sol"] = "Solon",
["tux"] = "Tuxináwa",
["tuy"] = "Tugen",
["tuz"] = "Turka",
["tva"] = "Vaghua",
["tvd"] = "Tsuvadi",
["tve"] = "Te'un",
["tvk"] = "Ambrym Tenggara",
["tvl"] = "Tuvalu",
["tvm"] = "Tela-Masbuar",
["tvn"] = "Tavoyan",
["tvo"] = "Tidore",
["tvs"] = "Taveta",
["tvt"] = "Tutsa Naga",
["tvu"] = "Tunen",
["tvw"] = "Sedoa",
["tvx"] = "Taivoan",
["tvy"] = "Timor Pidgin",
["twa"] = "Twana",
["twb"] = "Tawbuid Barat",
["twc"] = "Teshenawa",
["twe"] = "Teiwa",
["twf"] = "Taos",
["twg"] = "Tereweng",
["twh"] = "Tai Dón",
["twm"] = "Tawang Monpa",
["twn"] = "Twendi",
["two"] = "Tswapong",
["twp"] = "Ere",
["twq"] = "Tasawaq",
["twr"] = "Tarahumara Barat Daya",
["twt"] = "Turiwára",
["twu"] = "Termanu",
["tww"] = "Tuwari",
["twy"] = "Tawoyan",
["txa"] = "Tombonuo",
["txb"] = "Tocharia B",
["txc"] = "Tsetsaut",
["txe"] = "Totoli",
["txg"] = "Tangut",
["txh"] = "Thracian",
["txi"] = "Ikpeng",
["txj"] = "Tarjumo",
["txm"] = "Tomini",
["txn"] = "Tarangan Barat",
["txo"] = "Toto",
["txq"] = "Tii",
["txr"] = "Tartessian",
["txs"] = "Tonsea",
["txt"] = "Citak",
["txu"] = "Kayapó",
["txx"] = "Tatana",
["ty"] = "Tahiti",
["tya"] = "Tauya",
["tye"] = "Kyenga",
["tyh"] = "O'du",
["tyi"] = "Teke-Tsaayi",
["tyj"] = "Tai Do",
["tyl"] = "Thu Lao",
["tyn"] = "Kombai",
["typ"] = "Kuku-Thaypan",
["tyr"] = "Tai Daeng",
["tys"] = "Sapa",
["tyt"] = "Tày Tac",
["tyu"] = "Kua",
["tyv"] = "Tuva",
["tyx"] = "Teke-Tyee",
["tyz"] = "Tày",
["tza"] = "Bahasa Isyarat Tanzania",
["tzh"] = "Tzeltal",
["tzj"] = "Tz'utujil",
["tzl"] = "Talossan",
["tzm"] = "Tamazight Atlas Tengah",
["tzn"] = "Tugun",
["tzo"] = "Tzotzil",
["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"] = "Udi",
["udj"] = "Ujir",
["udl"] = "Uldeme",
["udm"] = "Udmurt",
["udu"] = "Uduk",
["ues"] = "Kioko",
["ufi"] = "Ufim",
["ug"] = "Uyghur",
["uga"] = "Ugarit",
["ugb"] = "Kuku-Ugbanh",
["uge"] = "Ughele",
["ugn"] = "Ugandan Sign Language",
["ugo"] = "Gong",
["ugy"] = "Uruguayan Sign Language",
["uha"] = "Uhami",
["uhn"] = "Damal",
["uis"] = "Uisai",
["uiv"] = "Iyive",
["uji"] = "Tanjijili",
["uk"] = "Ukraine",
["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"] = "Unserdeutsch",
["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"] = "Watut Utara",
["und"] = "tidak ditentukan",
["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"] = "Malakula Timur Laut",
["ur"] = "Urdu",
["ura"] = "Urarina",
["urb"] = "Urubú-Kaapor",
["urc"] = "Urningangg",
["ure"] = "Uru",
["urf"] = "Uradhi",
["urg"] = "Urigina",
["urh"] = "Urhobo",
["uri"] = "Urim",
["urj-fin-pro"] = "Finnik Purba",
["urj-koo"] = "Komi Kuno",
["urj-kuk"] = "Kukkuzi",
["urj-kya"] = "Komi-Yazva",
["urj-mdv-pro"] = "Mordvinik Purba",
["urj-prm-pro"] = "Permik Purba",
["urj-pro"] = "Uralik Purba",
["urj-ugr-pro"] = "Ugrik Purba",
["urk"] = "Urak Lawoi'",
["url"] = "Urali",
["urm"] = "Urapmin",
["urn"] = "Uruangnirin",
["uro"] = "Ura (Papua 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"] = "Uvea Barat",
["uvh"] = "Uri",
["uvl"] = "Lote",
["uwa"] = "Kuku-Uwanh",
["uya"] = "Doko-Uyanga",
["uz"] = "Uzbek",
["vaa"] = "Vaagri Booli",
["vae"] = "Vale",
["vag"] = "Vagla",
["vah"] = "Varhadi",
["vai"] = "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"] = "Bontoc Barat Daya",
["ve"] = "Venda",
["vec"] = "Veneto",
["ved"] = "Veddah",
["vem"] = "Vemgo-Mabas",
["veo"] = "Ventureño",
["vep"] = "Veps",
["ver"] = "Mom Jango",
["vgr"] = "Vaghri",
["vgt"] = "Flemish Sign Language",
["vi"] = "Vietnam",
["vic"] = "Kreol Kepulauan Virgin",
["vid"] = "Vidunda",
["vif"] = "Vili",
["vig"] = "Viemo",
["vil"] = "Vilela",
["vis"] = "Vishavan",
["vit"] = "Viti",
["viv"] = "Iduna",
["vka"] = "Kariyarra",
["vki"] = "Ija-Zuba",
["vkj"] = "Kujarge",
["vkk"] = "Kaur",
["vkl"] = "Kulisusu",
["vkm"] = "Kamakan",
["vko"] = "Kodeoha",
["vkp"] = "Portugis Kreol Korlai",
["vkt"] = "Tenggarong Kutai Malay",
["vku"] = "Kurrama",
["vlp"] = "Valpei",
["vls"] = "Flemish Barat",
["vma"] = "Martuthunira",
["vmb"] = "Mbabaram",
["vmc"] = "Mixtec Juxtlahuaca",
["vmd"] = "Mudu Koraga",
["vme"] = "Masela Timur",
["vmf"] = "Franconia Timur",
["vmg"] = "Minigir",
["vmh"] = "Maraghei",
["vmi"] = "Miwa",
["vmj"] = "Mixtec Ixtayutla",
["vmk"] = "Makhuwa-Shirima",
["vml"] = "Malgana",
["vmm"] = "Mixtec Mitlatongo",
["vmp"] = "Mazatec Soyaltepec",
["vmq"] = "Mixtec Soyaltepec",
["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"] = "Volapük",
["vor"] = "Voro",
["vot"] = "Vot",
["vra"] = "Vera'a",
["vro"] = "Võro",
["vrs"] = "Varisi",
["vrt"] = "Banam Bay",
["vsi"] = "Moldova Sign Language",
["vsl"] = "Venezuelan Sign Language",
["vsv"] = "Valencian Sign Language",
["vto"] = "Vitou",
["vum"] = "Vumbu",
["vun"] = "Vunjo",
["vut"] = "Vute",
["vwa"] = "Awa (China)",
["wa"] = "Walloon",
["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"] = "Waray-Waray",
["was"] = "Washo",
["wat"] = "Kaninuwa",
["wau"] = "Wauja",
["wav"] = "Waka",
["waw"] = "Waiwai",
["wax"] = "Watam",
["way"] = "Wayana",
["waz"] = "Wampur",
["wba"] = "Warao",
["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"] = "Yanomámi",
["wci"] = "Waci Gbe",
["wdd"] = "Wandji",
["wdg"] = "Wadaginam",
["wdj"] = "Wadjiginy",
["wdt"] = "Wendat",
["wdu"] = "Wadjigu",
["wdy"] = "Wadjabangayi",
["wea"] = "Wewaw",
["wec"] = "Wè Barat",
["wed"] = "Wedau",
["weh"] = "Weh",
["wei"] = "Kiunum",
["wem"] = "Weme Gbe",
["weo"] = "Wemale",
["wer"] = "Weri",
["wes"] = "Pijin Cameroon",
["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"] = "Wahgi Utara",
["whk"] = "Kenyah Wahau",
["whu"] = "Kayan Wahau",
["wib"] = "Toussiana Selatan",
["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"] = "Winnebago",
["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"] = "Wales Pertengahan",
["wlo"] = "Wolio",
["wlr"] = "Wailapa",
["wls"] = "Wallis",
["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"] = "Mwani",
["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"] = "Wolof",
["woa"] = "Tyaraity",
["wob"] = "Wè Utara",
["woc"] = "Wogeo",
["wod"] = "Wolani",
["woe"] = "Woleai",
["wog"] = "Wogamusin",
["woi"] = "Kamang",
["wok"] = "Longto",
["wom"] = "Perema",
["won"] = "Wongo",
["woo"] = "Manombai",
["wor"] = "Woria",
["wos"] = "Hanga Hundi",
["wow"] = "Wawonii",
["wpc"] = "Wirö",
["wra"] = "Warapu",
["wrb"] = "Warluwara",
["wrg"] = "Warungu",
["wrh"] = "Wiradhuri",
["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",
["wss"] = "Wasa",
["wsu"] = "Wasu",
["wsv"] = "Wotapuri-Katarqalai",
["wtf"] = "Watiwa",
["wth"] = "Wathaurong",
["wti"] = "Berta",
["wtk"] = "Watakataui",
["wtm"] = "Mewati",
["wtw"] = "Wotu",
["wua"] = "Wikngenchera",
["wub"] = "Wunambal",
["wud"] = "Wudu",
["wuh"] = "Wutunhua",
["wul"] = "Silimo",
["wum"] = "Wumbvu",
["wun"] = "Bungu",
["wur"] = "Wurrugu",
["wut"] = "Wutung",
["wuu"] = "Wu",
["wuv"] = "Wuvulu-Aua",
["wux"] = "Wulna",
["wuy"] = "Wauyai",
["wwa"] = "Waama",
["wwo"] = "Dorig",
["wwr"] = "Warrwa",
["www"] = "Wawa",
["wxa"] = "Waxianghua",
["wxw"] = "Wardandi",
["wya"] = "Wyandot",
["wyb"] = "Ngiyambaa",
["wyi"] = "Woiwurrung",
["wym"] = "Vilamovian",
["wyr"] = "Wayoró",
["wyy"] = "Fiji Barat",
["xaa"] = "Arab Andalusia",
["xab"] = "Sambe",
["xac"] = "Kachari",
["xad"] = "Adai",
["xae"] = "Aequian",
["xag"] = "Aghwan",
["xai"] = "Kaimbé",
["xaj"] = "Ararandewára",
["xak"] = "Maku",
["xal"] = "Kalmyk",
["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"] = "Baktria",
["xbd"] = "Bindal",
["xbe"] = "Bigambal",
["xbg"] = "Bunganditj",
["xbi"] = "Kombio",
["xbj"] = "Birrpayi",
["xbm"] = "Breton Pertengahan",
["xbn"] = "Kenaboi",
["xbo"] = "Bulgar",
["xbp"] = "Bibbulman",
["xbr"] = "Kambera",
["xbw"] = "Kambiwá",
["xby"] = "Butchulla",
["xcb"] = "Cumbric",
["xcc"] = "Camunic",
["xce"] = "Celtiberian",
["xch"] = "Chemakum",
["xcl"] = "Armenia Kuno",
["xcm"] = "Comecrudo",
["xcn"] = "Cotoname",
["xco"] = "Khwarezm",
["xcr"] = "Carian",
["xct"] = "Tibet Klasik",
["xcu"] = "Curonian",
["xcv"] = "Chuva",
["xcw"] = "Coahuilteco",
["xcy"] = "Cayuse",
["xda"] = "Darkinjung",
["xdc"] = "Dacian",
["xdk"] = "Dharug",
["xdm"] = "Edom",
["xdq"] = "Kaitag",
["xdy"] = "Malayic Dayak",
["xeb"] = "Ebla",
["xed"] = "Hdi",
["xeg"] = "ǁXegwi",
["xel"] = "Kelo",
["xem"] = "Kembayan",
["xep"] = "Epi-Olmec",
["xer"] = "Xerénte",
["xes"] = "Kesawai",
["xet"] = "Xetá",
["xeu"] = "Keoru-Ahia",
["xfa"] = "Falisci",
["xga"] = "Galatia",
["xgb"] = "Gbin",
["xgd"] = "Gudang",
["xgf"] = "Gabrielino-Fernandeño",
["xgg"] = "Goreng",
["xgi"] = "Garingbal",
["xgl"] = "Galindan",
["xgm"] = "Darumbal",
["xgn-pro"] = "Mongolia Purba",
["xgr"] = "Garza",
["xgu"] = "Unggumi",
["xgw"] = "Guwa",
["xh"] = "Xhosa",
["xha"] = "Harami",
["xhc"] = "Hun",
["xhd"] = "Hadrami",
["xhe"] = "Khetrani",
["xhm"] = "Khmer Pertengahan",
["xhr"] = "Hernican",
["xht"] = "Hatti",
["xhu"] = "Hurri",
["xhv"] = "Khua",
["xib"] = "Iberia",
["xii"] = "Xiri",
["xil"] = "Illyria",
["xin"] = "Xinca",
["xir"] = "Xiriâna",
["xis"] = "Kisan",
["xiv"] = "Bahasa Lembah Indus",
["xiy"] = "Xipaya",
["xjb"] = "Minjungbal",
["xka"] = "Kalkoti",
["xkb"] = "Manigri-Kambolé Ede Nago",
["xkc"] = "Khoini",
["xkd"] = "Kayan Mendalam",
["xke"] = "Kereho",
["xkf"] = "Khengkha",
["xkg"] = "Kagoro",
["xki"] = "Isyarat Kenya",
["xkj"] = "Kajali",
["xkk"] = "Kaco'",
["xkl"] = "Bakung",
["xkn"] = "Kayan Sungai 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"] = "Lycia",
["xld"] = "Lydia",
["xle"] = "Lemnos",
["xlg"] = "Liguria Purba",
["xli"] = "Liburni",
["xlo"] = "Loup A",
["xlp"] = "Lepontii",
["xls"] = "Lusitania",
["xlu"] = "Luwiya",
["xly"] = "Elymi",
["xmb"] = "Mbonga",
["xmc"] = "Makhuwa-Marrevone",
["xmd"] = "Mbudum",
["xme-ker"] = "Kermanik",
["xme-kls"] = "Kalasuri",
["xme-klt"] = "Kilit",
["xme-mid"] = "Median Pertengahan",
["xme-old"] = "Median Kuno",
["xme-ott"] = "Tati Kuno",
["xme-taf"] = "Tafreshi",
["xme-ttc-pro"] = "Tatik Purba",
["xmf"] = "Mingrelia",
["xmg"] = "Mengaka",
["xmh"] = "Kugu-Muminh",
["xmj"] = "Majera",
["xmk"] = "Macedonia Purba",
["xml"] = "Isyarat Malaysia",
["xmm"] = "Melayu Manado",
["xmo"] = "Morerebi",
["xmp"] = "Kuku-Mu'inh",
["xmq"] = "Kuku-Mangk",
["xmr"] = "Meroe",
["xms"] = "Isyarat Maghribi",
["xmt"] = "Matbat",
["xmu"] = "Kamu",
["xmx"] = "Maden",
["xmy"] = "Mayaguduna",
["xmz"] = "Mori Bawah",
["xna"] = "Arab Utara Purba",
["xnb"] = "Kanakanabu",
["xnd-pro"] = "Na-Dene Purba",
["xng"] = "Mongol Pertengahan",
["xnh"] = "Kuanhua",
["xni"] = "Ngarigu",
["xnk"] = "Nganakarti",
["xnn"] = "Kankanay Utara",
["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"] = "Tasmania Tenggara",
["xpg"] = "Phrygia",
["xph"] = "Tyerrernotepanner",
["xpi"] = "Pict",
["xpj"] = "Mpalitjanh",
["xpk"] = "Kulina",
["xpl"] = "Port Sorell",
["xpm"] = "Pumpokol",
["xpn"] = "Kapinawá",
["xpo"] = "Pochutec",
["xpp"] = "Puyo-Paekche",
["xpq"] = "Mohegan-Pequot",
["xpr"] = "Parthia",
["xps"] = "Pisidia",
["xpu"] = "Punik",
["xpv"] = "Tommeginne",
["xpw"] = "Peerapper",
["xpx"] = "Toogee",
["xpy"] = "Buyeo",
["xpz"] = "Pulau Bruny",
["xqa"] = "Karakhanid",
["xqt"] = "Qatabanian",
["xra"] = "Krahô",
["xrb"] = "Karaboro Timur",
["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"] = "Sambal",
["xsc-pro"] = "Scythia Purba",
["xsc-sak-pro"] = "Saka Purba",
["xsc-sar-pro"] = "Sarmatia Purba",
["xsc-skw-pro"] = "Saka-Wakhi Purba",
["xsd"] = "Sidetic",
["xse"] = "Sempan",
["xsh"] = "Shamang",
["xsi"] = "Sio",
["xsj"] = "Subi",
["xsl"] = "Slavey Selatan",
["xsm"] = "Kasem",
["xsn"] = "Sanga (Nigeria)",
["xso"] = "Solano",
["xsp"] = "Silopi",
["xsq"] = "Makhuwa-Saka",
["xsr"] = "Sherpa",
["xss"] = "Assan",
["xsu"] = "Sanumá",
["xsv"] = "Sudovian",
["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"] = "Mixtec Magdalena Peñasco",
["xtn"] = "Mixtec Tlaxiaco Utara",
["xto"] = "Tocharia A",
["xtp"] = "Mixtec San Miguel Piedras",
["xtq"] = "Tumshuq",
["xtr"] = "Tripuri Awal",
["xts"] = "Mixtec Sindihui",
["xtt"] = "Mixtec Tacahua",
["xtu"] = "Mixtec Cuyamecalco",
["xtv"] = "Thawa",
["xtw"] = "Tawandê",
["xty"] = "Mixtec Yoloxochitl",
["xtz"] = "Tasmania",
["xua"] = "Kurumba Alu",
["xub"] = "Kurumba Betta",
["xud"] = "Umiida",
["xug"] = "Kunigami",
["xuj"] = "Jennu Kurumba",
["xul"] = "Ngunawal",
["xum"] = "Umbri",
["xun"] = "Unggaranggu",
["xuo"] = "Kuo",
["xup"] = "Upper Umpqua",
["xur"] = "Urartian",
["xut"] = "Kuthant",
["xuu"] = "Khwe",
["xve"] = "Venetic",
["xvn"] = "Vandalic",
["xvo"] = "Volscian",
["xvs"] = "Vestinian",
["xwa"] = "Kwaza",
["xwc"] = "Woccon",
["xwd"] = "Wadi Wadi",
["xwe"] = "Xwela Gbe",
["xwg"] = "Kwegu",
["xwj"] = "Wajuk",
["xwk"] = "Wangkumara",
["xwl"] = "Gbe Xwla Barat",
["xwo"] = "Oirat Bertulis",
["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"] = "Zemgalia",
["xzp"] = "Zapotec Purba",
["yaa"] = "Yaminahua",
["yab"] = "Yuhup",
["yac"] = "Pass Valley Yali",
["yad"] = "Yagua",
["yae"] = "Pumé",
["yaf"] = "Yaka",
["yag"] = "Yámana",
["yah"] = "Yazghulami",
["yai"] = "Yagnobi",
["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"] = "Yugur Barat",
["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"] = "Kreol Yilan",
["yda"] = "Yanda",
["yde"] = "Yangum Dey",
["ydg"] = "Yidgha",
["ydk"] = "Yoidik",
["yea"] = "Ravula",
["yec"] = "Yeniche",
["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"] = "Yiddish",
["yia"] = "Yinggarda",
["yif"] = "Ache",
["yig"] = "Wusa Nasu",
["yii"] = "Yidiny",
["yij"] = "Yindjibarndi",
["yik"] = "Dongshanba Lalo",
["yil"] = "Yindjilandji",
["yim"] = "Yimchungru Naga",
["yin"] = "Yinchia",
["yip"] = "Pholo",
["yiq"] = "Miqie",
["yir"] = "Awyu Utara",
["yis"] = "Yis",
["yit"] = "Lalu Timur",
["yiu"] = "Awu",
["yiv"] = "Nisu Utara",
["yix"] = "Axi",
["yiy"] = "Yir-Yoront",
["yiz"] = "Azhe",
["yka"] = "Yakan",
["ykg"] = "Yukaghir Utara",
["ykh"] = "Mongol Khamnigan",
["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"] = "Nyâlayu",
["ymb"] = "Yambes",
["ymc"] = "Muji Selatan",
["ymd"] = "Muda",
["yme"] = "Yameo",
["ymg"] = "Yamongeri",
["ymh"] = "Mili",
["ymi"] = "Moji",
["ymk"] = "Makwe",
["yml"] = "Iamalele",
["ymm"] = "Maay",
["ymn"] = "Sunum",
["ymo"] = "Mon Yangum",
["ymp"] = "Yamap",
["ymq"] = "Muji Qila",
["ymr"] = "Malasar",
["yms"] = "Mysian",
["ymx"] = "Muji Utara",
["ymz"] = "Muzi",
["yna"] = "Aluo",
["ynd"] = "Yandruwandha",
["yne"] = "Lang'e",
["yng"] = "Yango",
["ynk"] = "Naukanski",
["ynl"] = "Yangulam",
["ynn"] = "Yana",
["yno"] = "Yong",
["yns"] = "Yansi",
["ynu"] = "Yahuna",
["yo"] = "Yoruba",
["yob"] = "Yoba",
["yog"] = "Yogad",
["yoi"] = "Yonaguni",
["yok-bvy"] = "Yokuts Buena Vista",
["yok-dly"] = "Yokuts Delta",
["yok-gsy"] = "Yokuts Gashowu",
["yok-kry"] = "Yokuts Sungai Kings",
["yok-nvy"] = "Yokuts Lembah Utara",
["yok-ply"] = "Yokuts Palewyami",
["yok-svy"] = "Yokuts Lembah Selatan",
["yok-tky"] = "Yokuts Tule-Kaweah",
["yol"] = "Yola",
["yom"] = "Yombe",
["yon"] = "Yongkom",
["yox"] = "Yoron",
["yoy"] = "Yoy",
["ypa"] = "Phala",
["ypb"] = "Labo Phowa",
["ypg"] = "Phola",
["yph"] = "Phupha",
["ypk-pro"] = "Yupik Purba",
["ypm"] = "Phuma",
["ypn"] = "Ani Phowa",
["ypo"] = "Alo Phola",
["ypp"] = "Phupa",
["ypz"] = "Phuza",
["yra"] = "Yerakai",
["yrb"] = "Yareba",
["yre"] = "Yaouré",
["yri"] = "Yarí",
["yrk"] = "Nenets Tundra",
["yrk-for"] = "Nenets Hutan",
["yrk-tun"] = "Nenets Tundra",
["yrl"] = "Nheengatu",
["yrn"] = "Yerong",
["yro"] = "Yaroamë",
["yrw"] = "Yarawata",
["yry"] = "Yarluyandi",
["ysc"] = "Jassic",
["ysd"] = "Samatao",
["ysg"] = "Sonaga",
["ysl"] = "Yugoslavian Sign Language",
["ysn"] = "Sani",
["yso"] = "Nisi",
["ysp"] = "Lolopo Selatan",
["ysr"] = "Sirenik",
["yss"] = "Yessan-Mayo",
["ysy"] = "Sanie",
["yta"] = "Talu",
["ytl"] = "Tanglang",
["ytp"] = "Thopho",
["ytw"] = "Yout Wam",
["yty"] = "Yatay",
["yua"] = "Maya Yucatec",
["yub"] = "Yugambal",
["yuc"] = "Yuchi",
["yue"] = "Kantonis",
["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"] = "Yukaghir Selatan",
["yuy"] = "Yugur Timur",
["yuz"] = "Yuracare",
["yva"] = "Yawa",
["yvt"] = "Yavitero",
["ywa"] = "Kalou",
["ywg"] = "Yinhawangka",
["ywl"] = "Lalu Barat",
["ywn"] = "Yawanawa",
["ywq"] = "Nasu",
["ywr"] = "Yawuru",
["ywt"] = "Xishanba Lalo",
["ywu"] = "Wumeng Nasu",
["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"] = "Zhuang",
["zaa"] = "Zapotec Sierra de Juárez",
["zab"] = "Zapotec San Juan Guelavía",
["zac"] = "Zapotec Ocotlán",
["zad"] = "Zapotec Cajonos",
["zae"] = "Zapotec Yareni",
["zaf"] = "Zapotec Ayoquesco",
["zag"] = "Zaghawa",
["zah"] = "Zangwal",
["zai"] = "Zapotec Segenting",
["zaj"] = "Zaramo",
["zak"] = "Zanaki",
["zal"] = "Zauzou",
["zam"] = "Zapoteco Mahuatlán Tengah",
["zao"] = "Zapotec Ozolotepec",
["zap"] = "Zapotec",
["zaq"] = "Zapotec Aloápam",
["zar"] = "Zapotec Rincón",
["zas"] = "Zapotec Santo Domingo Albarradas",
["zat"] = "Zapotec Tabaa",
["zau"] = "Zangskar",
["zav"] = "Zapotec Yatzachi",
["zaw"] = "Zapotec Mitla",
["zax"] = "Zapotec Xadani",
["zay"] = "Zayse-Zergulla",
["zaz"] = "Zari",
["zbt"] = "Batui",
["zca"] = "Zapotec Coatecas Altas",
["zdj"] = "Comoros Ngazidja",
["zea"] = "Zeeland",
["zeg"] = "Zenag",
["zen"] = "Zenaga",
["zga"] = "Kinga",
["zgh"] = "Amazigh Maghribi",
["zgr"] = "Magori",
["zh"] = "Cina",
["zhb"] = "Zhaba",
["zhi"] = "Zhire",
["zhn"] = "Nong Zhuang",
["zhw"] = "Zhoa",
["zhx-min-pro"] = "Min Purba",
["zhx-sht"] = "Tuhua Shaozhou",
["zhx-sic"] = "Sichuan",
["zhx-tai"] = "Taishan",
["zia"] = "Zia",
["zib"] = "Zimbabwe Sign Language",
["zik"] = "Zimakani",
["zil"] = "Zialo",
["zim"] = "Mesme",
["zin"] = "Zinza",
["zir"] = "Ziriya",
["ziw"] = "Zigula",
["ziz"] = "Zizilivakan",
["zka"] = "Kaimbulawa",
["zkb"] = "Koibal",
["zkg"] = "Goguryeo",
["zkh"] = "Khorezmian Turkic",
["zkk"] = "Karankawa",
["zko"] = "Kott",
["zkp"] = "Kaingáng São Paulo",
["zkr"] = "Zakhring",
["zkt"] = "Khitan",
["zku"] = "Kaurna",
["zkv"] = "Krevinian",
["zkz"] = "Khazar",
["zle-ono"] = "Novgorod Kuno",
["zle-ort"] = "Ruthenia Kuno",
["zls-chs"] = "Slavonic Gereja",
["zlw-ocs"] = "Czech Kuno",
["zlw-opl"] = "Poland Kuno",
["zlw-osk"] = "Slovak Kuno",
["zlw-slv"] = "Slovincia",
["zma"] = "Manda (Australia)",
["zmb"] = "Zimba",
["zmc"] = "Margany",
["zmd"] = "Maridan",
["zme"] = "Mangerr",
["zmf"] = "Mfinu",
["zmg"] = "Marti Ke",
["zmh"] = "Makolkol",
["zmi"] = "Melayu Negeri Sembilan",
["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"] = "Kaya",
["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"] = "Zulu",
["zua"] = "Zeem",
["zuh"] = "Tokano",
["zum"] = "Kumzari",
["zun"] = "Zuni",
["zuy"] = "Zumaya",
["zwa"] = "Zay",
["zyp"] = "Zyphe",
["zza"] = "Zazaki",
["zzj"] = "Zuojiang Zhuang",
}
a41ry2nipzqvovl8kg32tz0gvhxamrr
373557
373552
2026-09-11T11:10:30Z
Hakimi97
2668
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373557
Scribunto
text/plain
return {
["aa"] = "Afar",
["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"] = "Khasi Purba",
["aav-nic-pro"] = "Nicobar Purba",
["aav-pkl-pro"] = "Pnar-Khasi-Lyngngam Purba",
["aav-pro"] = "Austroasia Purba",
["aaw"] = "Solong",
["aax"] = "Mandobo Atas",
["aaz"] = "Amarasi",
["ab"] = "Abkhaz",
["aba"] = "Abé",
["abb"] = "Bankon",
["abc"] = "Ayta Ambala",
["abd"] = "Agta Camarines Norte",
["abe"] = "Abenaki",
["abf"] = "Abai Sungai",
["abg"] = "Abaga",
["abh"] = "Arab Tajik",
["abi"] = "Abidji",
["abj"] = "Aka-Bea",
["abl"] = "Abung",
["abm"] = "Abanyom",
["abn"] = "Abua",
["abo"] = "Abon",
["abp"] = "Ayta Abenlen",
["abq"] = "Abaza",
["abs"] = "Melayu Ambon",
["abt"] = "Ambulas",
["abu"] = "Abure",
["abv"] = "Arab Bahrani",
["abw"] = "Pal",
["abx"] = "Inabaknon",
["aby"] = "Aneme Wake",
["abz"] = "Abui",
["aca"] = "Achagua",
["acb"] = "Áncá",
["acd"] = "Gikyode",
["ace"] = "Aceh",
["ach"] = "Acholi",
["aci"] = "Aka-Cari",
["ack"] = "Aka-Kora",
["acl"] = "Akar-Bale",
["acm"] = "Arab Iraq",
["acn"] = "Achang",
["acp"] = "Acipa Timur",
["acr"] = "Achi",
["acs"] = "Acroá",
["acu"] = "Achuar",
["acv"] = "Achumawi",
["acw"] = "Arab Hijaz",
["acx"] = "Arab Oman",
["acy"] = "Arab Cyprus",
["acz"] = "Acheron",
["ada"] = "Adangme",
["adb"] = "Atauran",
["add"] = "Dzodinka",
["ade"] = "Adele",
["adf"] = "Arab Dhofar",
["adg"] = "Andegerebinha",
["adh"] = "Adhola",
["adi"] = "Adi",
["adj"] = "Adioukrou",
["adl"] = "Galo",
["adn"] = "Adang",
["ado"] = "Abu",
["adp"] = "Adap",
["adq"] = "Adangbe",
["adr"] = "Adonara",
["ads"] = "Bahasa Isyarat Adamorobe",
["adt"] = "Adnyamathanha",
["adu"] = "Aduge",
["adw"] = "Amondawa",
["ady"] = "Circassian Barat",
["adz"] = "Adzera",
["ae"] = "Avesta",
["aea"] = "Areba",
["aeb"] = "Arab Tunisia",
["aed"] = "Bahasa Isyarat Argentina",
["aee"] = "Pashayi Timur Laut",
["aek"] = "Haeke",
["ael"] = "Ambele",
["aem"] = "Arem",
["aen"] = "Bahasa Isyarat Armenia",
["aeq"] = "Aer",
["aer"] = "Arrernte Timur",
["aes"] = "Alsea",
["aeu"] = "Akeu",
["aew"] = "Ambakich",
["aey"] = "Amele",
["aez"] = "Aeka",
["af"] = "Afrikaans",
["afa-pro"] = "Afroasia Purba",
["afb"] = "Arab Teluk",
["afd"] = "Andai",
["afe"] = "Putukwam",
["afg"] = "Bahasa Isyarat Afghanistan",
["afh"] = "Afrihili",
["afi"] = "Akrukay",
["afk"] = "Nanubae",
["afn"] = "Defaka",
["afo"] = "Eloyi",
["afp"] = "Tapei",
["afs"] = "Kreol Afro-Seminole",
["aft"] = "Afitti",
["afu"] = "Awutu",
["afz"] = "Obokuitai",
["aga"] = "Aguano",
["agb"] = "Legbo",
["agc"] = "Agatu",
["agd"] = "Agarabi",
["age"] = "Angal",
["agf"] = "Arguni",
["agg"] = "Angor",
["agh"] = "Ngelima",
["agj"] = "Argobba",
["agk"] = "Agta Isarog",
["agl"] = "Fembe",
["agm"] = "Angaataha",
["agn"] = "Agutaynen",
["ago"] = "Tainae",
["agq"] = "Aghem",
["agr"] = "Aguaruna",
["ags"] = "Esimbi",
["agt"] = "Agta Cagayan Tengah",
["agu"] = "Aguacateco",
["agv"] = "Agta Remontado",
["agw"] = "Kahua",
["agx"] = "Aghul",
["agy"] = "Alta Selatan",
["agz"] = "Agta Gunung Iriga",
["aha"] = "Ahanta",
["ahb"] = "Axamb",
["ahg"] = "Qimant",
["ahh"] = "Aghu",
["ahi"] = "Tiagba",
["ahk"] = "Akha",
["ahl"] = "Igo",
["ahm"] = "Mobu",
["ahn"] = "Àhàn",
["aho"] = "Ahom",
["ahp"] = "Apro",
["ahr"] = "Ahirani",
["ahs"] = "Ashe",
["aht"] = "Ahtna",
["aia"] = "Arosi",
["aib"] = "Äynu",
["aic"] = "Ainbai",
["aid"] = "Alngith",
["aie"] = "Amara",
["aif"] = "Agi",
["aig"] = "Kreol Inggeris Antigua dan Barbuda",
["aih"] = "Ai-Cham",
["aii"] = "Neo-Aramia Assyria",
["aij"] = "Lishanid Noshan",
["aik"] = "Ake",
["ail"] = "Aimele",
["aim"] = "Aimol",
["ain"] = "Ainu",
["aio"] = "Aiton",
["aip"] = "Burumakok",
["air"] = "Airoran",
["ait"] = "Arikem",
["aiw"] = "Aari",
["aix"] = "Aighon",
["aiy"] = "Ali",
["aja"] = "Aja (Afrika Timur)",
["ajg"] = "Aja (Afrika Barat)",
["aji"] = "Ajië",
["ajn"] = "Andajin",
["ajp"] = "Arab Syam Selatan",
["ajs"] = "Bahasa Isyarat Yahudi Algeria",
["ajw"] = "Ajawa",
["ajz"] = "Karbi Amri",
["ak"] = "Akan",
["akb"] = "Batak Angkola",
["akc"] = "Mpur",
["akd"] = "Ukpet-Ehom",
["ake"] = "Akawaio",
["akf"] = "Akpa",
["akg"] = "Anakalangu",
["akh"] = "Angal Heneng",
["aki"] = "Aiome",
["akj"] = "Jeru",
["akk"] = "Akkadia",
["akl"] = "Aklanon",
["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"] = "Alabama",
["ala"] = "Alago",
["alc"] = "Kawésqar",
["ald"] = "Alladian",
["ale"] = "Aleut",
["alf"] = "Alege",
["alg-aga"] = "Agawam",
["alg-pro"] = "Algonquian Purba",
["alh"] = "Alawa",
["ali"] = "Amaimon",
["alj"] = "Alangan",
["alk"] = "Alak",
["all"] = "Allar",
["alm"] = "Amblong",
["alo"] = "Larike-Wakasihu",
["alp"] = "Alune",
["alq"] = "Algonquin",
["alr"] = "Alutor",
["alt"] = "Altai Selatan",
["alu"] = "'Are'are",
["alv-ama"] = "Amasi",
["alv-bgu"] = "Bainouk Gubeeher",
["alv-bua-pro"] = "Bua Purba",
["alv-cng-pro"] = "Cangin Purba",
["alv-edk-pro"] = "Edekiri Purba",
["alv-edo-pro"] = "Edoid Purba",
["alv-fli-pro"] = "Fali Purba",
["alv-gbe-pro"] = "Gbe Purba",
["alv-gng-pro"] = "Guang Purba",
["alv-gtm-pro"] = "Togo Tengah Purba",
["alv-gwa"] = "Gwara",
["alv-hei-pro"] = "Heiban Purba",
["alv-ido-pro"] = "Idomoid Purba",
["alv-igb-pro"] = "Igboid Purba",
["alv-kwa-pro"] = "Kwa Purba",
["alv-mum-pro"] = "Mumuye Purba",
["alv-nup-pro"] = "Nupoid Purba",
["alv-pro"] = "Atlantik-Congo Purba",
["alv-von-pro"] = "Volta-Niger Purba",
["alv-yor-pro"] = "Yoruba Purba",
["alv-yrd-pro"] = "Yoruboid Purba",
["alw"] = "Alaba",
["alx"] = "Amol",
["aly"] = "Alyawarr",
["alz"] = "Alur",
["am"] = "Amhara",
["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"] = "Amami Ōshima Selatan",
["amt"] = "Amto",
["amu"] = "Amuzgo Guerrero",
["amv"] = "Ambelau",
["amw"] = "Neo-Aramia Barat",
["amx"] = "Anmatyerre",
["amy"] = "Ami",
["amz"] = "Atampaya",
["an"] = "Aragon",
["ana"] = "Andaqui",
["anb"] = "Andoa",
["anc"] = "Ngas",
["and"] = "Ansus",
["ane"] = "Xârâcùù",
["anf"] = "Animere",
["ang"] = "Inggeris Kuno",
["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"] = "Alor",
["aom"] = "Ömie",
["aon"] = "Arapesh Bumbita",
["aor"] = "Aore",
["aos"] = "Taikat",
["aot"] = "Atong (India)",
["aou"] = "A'ou",
["aox"] = "Atorada",
["aoz"] = "Uab Meto",
["apa-pro"] = "Apache Purba",
["apb"] = "Sa'a",
["apc"] = "Arab Syam Utara",
["apd"] = "Arab Sudan",
["ape"] = "Bukiyip",
["apf"] = "Agta Pahanan",
["apg"] = "Ampanang",
["aph"] = "Athpare",
["api"] = "Apiaká",
["apj"] = "Jicarilla",
["apk"] = "Apache Dataran",
["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"] = "Apache Barat",
["apx"] = "Aputai",
["apy"] = "Apalaí",
["apz"] = "Safeyoka",
["aqc"] = "Archi",
["aqd"] = "Dogon Ampari",
["aqg"] = "Arigidi",
["aql-pro"] = "Algik Purba",
["aqm"] = "Atohwaim",
["aqn"] = "Alta Utara",
["aqp"] = "Atakapa",
["aqr"] = "Arhâ",
["aqt"] = "Angaité",
["aqz"] = "Akuntsu",
["ar"] = "Arab",
["arc"] = "Aramia",
["ard"] = "Arabana",
["are"] = "Arrernte Barat",
["arh"] = "Arhuaco",
["ari"] = "Arikara",
["arj"] = "Arapaso",
["ark"] = "Arikapú",
["arl"] = "Arabela",
["arn"] = "Mapudungun",
["aro"] = "Araona",
["arp"] = "Arapaho",
["arq"] = "Arab Algeria",
["arr"] = "Arara-Karo",
["ars"] = "Arab Najdi",
["art-adu"] = "Adûni",
["art-bel"] = "Kreol Belter",
["art-blk"] = "Bolak",
["art-bsp"] = "Bahasa Hitam",
["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"] = "Valyria Tinggi",
["aru"] = "Arua",
["arv"] = "Arbore",
["arw"] = "Lokono",
["arx"] = "Aruá",
["ary"] = "Arab Maghribi",
["arz"] = "Arab Mesir",
["as"] = "Assam",
["asa"] = "Pare",
["asb"] = "Assiniboine",
["asc"] = "Asmat Pesisir Casuarina",
["ase"] = "Bahasa Isyarat Amerika",
["asf"] = "Auslan",
["asg"] = "Cishingini",
["ash"] = "Abishira",
["asi"] = "Buruwai",
["asj"] = "Nsari",
["ask"] = "Ashkun",
["asl"] = "Asilulu",
["asn"] = "Asuriní Xingú",
["aso"] = "Dano",
["asp"] = "Bahasa Isyarat Algeria",
["asq"] = "Bahasa Isyarat Austria",
["asr"] = "Asuri",
["ass"] = "Ipulo",
["ast"] = "Asturia",
["asu"] = "Asurini Tocantins",
["asv"] = "Asoa",
["asw"] = "Bahasa Isyarat Orang Asli Australia",
["asx"] = "Muratayak",
["asy"] = "Asmat Yaosakor",
["asz"] = "As",
["ata"] = "Pele-Ata",
["atb"] = "Zaiwa",
["atc"] = "Atsahuaca",
["atd"] = "Manobo Ata",
["ate"] = "Atemble",
["atg"] = "Okpela",
["ath-nic"] = "Nicola",
["ath-pro"] = "Athabaska Purba",
["ati"] = "Attié",
["atj"] = "Atikamekw",
["atk"] = "Ati",
["atl"] = "Agta Gunung Iraya",
["atm"] = "Ata",
["ato"] = "Atong (Cameroon)",
["atp"] = "Atta Pudtol",
["atq"] = "Aralle-Tabulahan",
["atr"] = "Waimiri-Atroari",
["ats"] = "Gros Ventre",
["att"] = "Atta Pamplona",
["atu"] = "Reel",
["atv"] = "Altai Utara",
["atw"] = "Atsugewi",
["atx"] = "Arutani",
["aty"] = "Aneityum",
["atz"] = "Arta",
["aua"] = "Asumboa",
["aub"] = "Alugu",
["auc"] = "Huaorani",
["aud"] = "Anuta",
["auf-pro"] = "Arawa Purba",
["aug"] = "Aguna",
["auh"] = "Aushi",
["aui"] = "Anuki",
["auj"] = "Awjila",
["auk"] = "Heyo",
["aul"] = "Aulua",
["aum"] = "Asu",
["aun"] = "One Molmo",
["auo"] = "Auyokawa",
["aup"] = "Makayam",
["auq"] = "Anus",
["aur"] = "Aruek",
["aus-alu"] = "Alungul",
["aus-and"] = "Andjingith",
["aus-ang"] = "Angkula",
["aus-arn-pro"] = "Arnhem Purba",
["aus-bra"] = "Barranbinya",
["aus-brm"] = "Barunggam",
["aus-cww-pro"] = "New South Wales Tengah Purba",
["aus-dal-pro"] = "Daly Purba",
["aus-guw"] = "Guwar",
["aus-lsw"] = "Little Swanport",
["aus-mbi"] = "Mbiywom",
["aus-ngk"] = "Ngkoth",
["aus-nyu-pro"] = "Nyulnyulan Purba",
["aus-pam-pro"] = "Pama-Nyunga Purba",
["aus-tul"] = "Tulua",
["aus-uwi"] = "Uwinymil",
["aus-wdj-pro"] = "Iwaidjan Purba",
["aus-won"] = "Wong-gie",
["aus-wul"] = "Wulguru",
["aus-ynk"] = "Yangkaal",
["aut"] = "Austral",
["auu"] = "Auye",
["auw"] = "Awyi",
["aux"] = "Aurá",
["auy"] = "Auyana",
["auz"] = "Arab Uzbeki",
["av"] = "Avar",
["avb"] = "Avau",
["avd"] = "Alviri-Vidari",
["avi"] = "Avikam",
["avk"] = "Kotava",
["avm"] = "Angkamuthi",
["avn"] = "Avatime",
["avs"] = "Aushiri",
["avt"] = "Au",
["avu"] = "Avokaya",
["avv"] = "Avá-Canoeiro",
["awa"] = "Awadhi",
["awb"] = "Awa (New Guinea)",
["awc"] = "Cicipu",
["awd-ama"] = "Amarizana",
["awd-amc-pro"] = "Amuesha-Chamicuro Purba",
["awd-ana"] = "Anauyá",
["awd-apo"] = "Apolista",
["awd-cab"] = "Cabre",
["awd-gnu"] = "Guinau",
["awd-kar"] = "Cariay",
["awd-kaw"] = "Kawishana",
["awd-kmp-pro"] = "Kampa Purba",
["awd-kus"] = "Kustenau",
["awd-man"] = "Manao",
["awd-mar"] = "Marawan",
["awd-mpr"] = "Maipure",
["awd-mrt"] = "Mariaté",
["awd-nwk-pro"] = "Nawiki Purba",
["awd-pai"] = "Paikoneka",
["awd-pas"] = "Pasé",
["awd-pro"] = "Arawak Purba",
["awd-prw-pro"] = "Paresi-Waura Purba",
["awd-she"] = "Shebayo",
["awd-taa-pro"] = "Ta-Arawak Purba",
["awd-wai"] = "Wainumá",
["awd-war"] = "Warekena Kuno",
["awd-yum"] = "Yumana",
["awe"] = "Awetí",
["awg"] = "Anguthimri",
["awh"] = "Awbono",
["awi"] = "Aekyom",
["awk"] = "Awabakal",
["awm"] = "Arawum",
["awn"] = "Awngi",
["awo"] = "Awak",
["awr"] = "Awera",
["aws"] = "Awyu Selatan",
["awt"] = "Araweté",
["awu"] = "Awyu Tengah",
["awv"] = "Awyu Jair",
["aww"] = "Awun",
["awx"] = "Awara",
["awy"] = "Awyu Edera",
["axb"] = "Abipón",
["axe"] = "Ayerrerenge",
["axg"] = "Arára (Mato Grosso)",
["axk"] = "Aka (Afrika Tengah)",
["axl"] = "Aranda Selatan Bawah",
["axm"] = "Armenia Pertengahan",
["axx"] = "Xârâgurè",
["ay"] = "Aymara",
["aya"] = "Awar",
["ayb"] = "Ayizo",
["ayd"] = "Ayabadhu",
["aye"] = "Ayere",
["ayg"] = "Nyanga (Togo)",
["ayi"] = "Leyigha",
["ayk"] = "Akuku",
["ayl"] = "Arab Libya",
["ayn"] = "Arab Yaman",
["ayo"] = "Ayoreo",
["ayp"] = "Arab Mesopotamia Utara",
["ayq"] = "Ayi",
["ays"] = "Ayta Sorsogon",
["ayt"] = "Ayta Bataan",
["ayu"] = "Ayu",
["ayz"] = "Maybrat",
["az"] = "Azerbaijan",
["aza"] = "Azha",
["azc-caz"] = "Cazcan",
["azc-cup-pro"] = "Cupan Purba",
["azc-ktn"] = "Kitanemuk",
["azc-nah-pro"] = "Nahua Purba",
["azc-nic"] = "Nicoleño",
["azc-num-pro"] = "Numik Purba",
["azc-pro"] = "Uto-Aztek Purba",
["azc-tak-pro"] = "Takik Purba",
["azc-tat"] = "Tataviam",
["azd"] = "Nahuatl Durango Timur",
["azg"] = "Amuzgo San Pedro Amuzgos",
["azm"] = "Amuzgo Ipalapa",
["azn"] = "Nahuatl Durango Barat",
["azo"] = "Awing",
["azt"] = "Atta Faire",
["azz"] = "Nahuatl Puebla Tanah Tinggi",
["ba"] = "Bashkir",
["baa"] = "Babatana",
["bab"] = "Bainouk-Gunyuño",
["bac"] = "Badui",
["bae"] = "Baré",
["baf"] = "Nubaca",
["bag"] = "Tuki",
["bah"] = "Kreol Bahamas",
["baj"] = "Barakai",
["bal"] = "Baluchi",
["ban"] = "Bali",
["bao"] = "Waimaha",
["bap"] = "Bantawa",
["bar"] = "Bavarian",
["bas"] = "Basaa",
["bau"] = "Badanchi",
["bav"] = "Babungo",
["baw"] = "Bambili-Bambui",
["bax"] = "Bamum",
["bay"] = "Batuley",
["bba"] = "Baatonum",
["bbb"] = "Barai",
["bbc"] = "Batak Toba",
["bbd"] = "Bau",
["bbe"] = "Bangba",
["bbf"] = "Baibai",
["bbg"] = "Barama",
["bbh"] = "Bugan",
["bbi"] = "Barombi",
["bbj"] = "Ghomala'",
["bbk"] = "Babanki",
["bbl"] = "Bats",
["bbm"] = "Babango",
["bbn"] = "Uneapa",
["bbo"] = "Konabéré",
["bbp"] = "Banda Tengah Barat",
["bbq"] = "Bamali",
["bbr"] = "Girawa",
["bbs"] = "Bakpinka",
["bbt"] = "Mburku",
["bbu"] = "Bakulung",
["bbv"] = "Karnai",
["bbw"] = "Baba",
["bbx"] = "Bubia",
["bby"] = "Befang",
["bca"] = "Bai Tengah",
["bcb"] = "Bainouk-Samik",
["bcd"] = "Babar Utara",
["bce"] = "Bamenyam",
["bcf"] = "Bamu",
["bcg"] = "Baga Pokur",
["bch"] = "Bariai",
["bci"] = "Baoule",
["bcj"] = "Bardi",
["bck"] = "Bunaba",
["bcl"] = "Bikol Tengah",
["bcm"] = "Banoni",
["bcn"] = "Bibaali",
["bco"] = "Kaluli",
["bcp"] = "Baali",
["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",
["bdk"] = "Budukh",
["bdl"] = "Bajau Indonesia",
["bdm"] = "Buduma",
["bdn"] = "Baldemu",
["bdo"] = "Morom",
["bdp"] = "Bende",
["bdq"] = "Bahnar",
["bdr"] = "Bajau Sama",
["bds"] = "Burunge",
["bdt"] = "Bokoto",
["bdu"] = "Oroko",
["bdv"] = "Bodo Parja",
["bdw"] = "Baham",
["bdx"] = "Budong-Budong",
["bdy"] = "Bandjalang",
["bdz"] = "Badeshi",
["be"] = "Belarus",
["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"] = "Berber Purba",
["ber-zuw"] = "Zuwara",
["bes"] = "Besme",
["bet"] = "Guiberoua Bété",
["beu"] = "Blagar",
["bev"] = "Daloa Bété",
["bew"] = "Betawi",
["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"] = "Badaga",
["bfr"] = "Bazigar",
["bfs"] = "Bai Selatan",
["bft"] = "Balti",
["bfu"] = "Gahri",
["bfw"] = "Bondo",
["bfx"] = "Bantayanon",
["bfy"] = "Bagheli",
["bfz"] = "Mahasu Pahari",
["bg"] = "Bulgaria",
["bga"] = "Gwamhi-Wuri",
["bgb"] = "Bobongko",
["bgc"] = "Haryanvi",
["bgd"] = "Rathwi Bareli",
["bge"] = "Bauria",
["bgf"] = "Bangandu",
["bgg"] = "Bugun",
["bgi"] = "Giangan",
["bgj"] = "Bangolan",
["bgk"] = "Bit",
["bgl"] = "Bo",
["bgo"] = "Baga Koga",
["bgq"] = "Bagri",
["bgr"] = "Chin Bawm",
["bgs"] = "Tagabawa",
["bgt"] = "Bughotu",
["bgu"] = "Mbongno",
["bgv"] = "Warkay-Bipim",
["bgw"] = "Bhatri",
["bgx"] = "Balkan Gagauz Turkish",
["bgy"] = "Benggoi",
["bgz"] = "Banggai",
["bh"] = "Bihari",
["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"] = "Neo-Aram Bohtan",
["bho"] = "Bhojpur",
["bhp"] = "Bima",
["bhq"] = "Tukang Besi Selatan",
["bhs"] = "Buwal",
["bht"] = "Bhattiyali",
["bhu"] = "Bhunjia",
["bhv"] = "Bahau",
["bhw"] = "Biak",
["bhx"] = "Bhalay",
["bhy"] = "Bhele",
["bhz"] = "Bada",
["bi"] = "Bislama",
["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"] = "Birifor Selatan",
["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"] = "Banjar",
["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"] = "Binukid",
["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"] = "Bolongan",
["blk"] = "Karen Pa'o",
["bll"] = "Biloxi",
["blm"] = "Beli",
["bln"] = "Bicolano Catanduanes Selatan",
["blo"] = "Anii",
["blp"] = "Blablanga",
["blq"] = "Baluan-Pam",
["blr"] = "Blang",
["bls"] = "Balaesang",
["blt"] = "Tai Dam",
["blv"] = "Kibala",
["blw"] = "Balangao",
["blx"] = "Mag-Indi Ayta",
["bly"] = "Notre",
["blz"] = "Balantak",
["bm"] = "Bambara",
["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"] = "Benggali",
["bna"] = "Bonerate",
["bnb"] = "Bookan",
["bnd"] = "Banda",
["bne"] = "Bintauna",
["bnf"] = "Masiwang",
["bng"] = "Benga",
["bni"] = "Bangi",
["bnj"] = "Tawbuid Timur",
["bnk"] = "Bierebo",
["bnl"] = "Boon",
["bnm"] = "Batanga",
["bnn"] = "Bunun",
["bno"] = "Asi",
["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 (Afrika Selatan)",
["bnt-mpi"] = "Mpiin",
["bnt-mpu"] = "Mpuono",
["bnt-ngu-pro"] = "Nguni Purba",
["bnt-phu"] = "Phuthi",
["bnt-pro"] = "Bantu Purba",
["bnt-sab-pro"] = "Sabaki Purba",
["bnt-sbo"] = "Boma Selatan",
["bnt-sts-pro"] = "Sotho-Tswana Purba",
["bnu"] = "Bentong",
["bnv"] = "Beneraf",
["bnw"] = "Bisis",
["bnx"] = "Bangubangu",
["bny"] = "Vaie",
["bnz"] = "Beezen",
["bo"] = "Tibet",
["boa"] = "Bora",
["bob"] = "Aweer",
["boe"] = "Mundabli",
["bof"] = "Bolon",
["bog"] = "Bamako Sign Language",
["boh"] = "Boma Utara",
["boi"] = "Barbareño",
["boj"] = "Anjam",
["bok"] = "Bonjo",
["bol"] = "Bole",
["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"] = "Dakaka",
["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"] = "Breton",
["bra"] = "Braj",
["brb"] = "Lave",
["brc"] = "Belanda Kreol Berbice",
["brd"] = "Baraamu",
["brf"] = "Bera",
["brg"] = "Baure",
["brh"] = "Brahui",
["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"] = "Bru Timur",
["brv"] = "Bru Barat",
["brw"] = "Bellari",
["brx"] = "Bodo (India)",
["bry"] = "Burui",
["brz"] = "Bilbil",
["bsa"] = "Abinomn",
["bsb"] = "Bisaya Brunei",
["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"] = "Bisaya Sabah",
["bta"] = "Bata",
["btc"] = "Bati (Cameroon)",
["btd"] = "Batak Dairi",
["bte"] = "Gamo-Ningi",
["btf"] = "Birgit",
["btg"] = "Gagnoa Bété",
["bth"] = "Bidayuh Biatah",
["bti"] = "Burate",
["btj"] = "Melayu Bacan",
["btk-pro"] = "Batak Purba",
["btm"] = "Batak Mandailing",
["btn"] = "Ratagnon",
["bto"] = "Bicolano Iriga",
["btp"] = "Budibud",
["btq"] = "Batek",
["btr"] = "Baetora",
["bts"] = "Batak Simalungun",
["btt"] = "Bete-Bendi",
["btu"] = "Batu",
["btv"] = "Bateri",
["btw"] = "Butuanon",
["btx"] = "Batak Karo",
["bty"] = "Bobot",
["btz"] = "Batak Alas-Kluet",
["bua"] = "Buryat",
["bub"] = "Bua",
["bud"] = "Ntcham",
["bue"] = "Beothuk",
["buf"] = "Bushoong",
["bug"] = "Bugis",
["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"] = "Melayu Berau",
["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"] = "Melayu Bukit",
["bvv"] = "Baniva",
["bvw"] = "Boga",
["bvx"] = "Babole",
["bvy"] = "Baybayanon",
["bvz"] = "Bauzi",
["bwa"] = "Bwatoo",
["bwb"] = "Namosi-Naitasiri-Serua",
["bwc"] = "Bwile",
["bwd"] = "Bwaidoka",
["bwe"] = "Karen Bwe",
["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"] = "Bobo Selatan",
["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"] = "Batak Palawan",
["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"] = "Bisu",
["bzj"] = "Kreol Belize",
["bzk"] = "Kreol Nicaragua",
["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"] = "Catalan",
["caa"] = "Ch'orti'",
["cab"] = "Garifuna",
["cac"] = "Chuj",
["cad"] = "Caddo",
["cae"] = "Laalaa",
["caf"] = "Carrier Selatan",
["cag"] = "Nivaclé",
["cah"] = "Cahuarano",
["caj"] = "Chané",
["cak"] = "Kaqchikel",
["cal"] = "Carolinian",
["cam"] = "Cemuhî",
["can"] = "Chambri",
["cao"] = "Chácobo",
["cap"] = "Chipaya",
["caq"] = "Car Nicobarese",
["car"] = "Kari'na",
["cas"] = "Tsimané",
["cau-abz-pro"] = "Abkhaz-Abaza Purba",
["cau-and-pro"] = "Andi Purba",
["cau-ava-pro"] = "Avar-Andi Purba",
["cau-cir-pro"] = "Circassia Purba",
["cau-drg-pro"] = "Dargwa Purba",
["cau-lzg-pro"] = "Lezghi Purba",
["cau-nec-pro"] = "Kaukasia Timur Laut Purba",
["cau-nkh-pro"] = "Nakh Purba",
["cau-nwc-pro"] = "Kaukasia Barat Laut Purba",
["cau-tsz-pro"] = "Tsez Purba",
["cav"] = "Cavineña",
["caw"] = "Callawalla",
["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"] = "Chibchan Purba",
["cbb"] = "Cabiyarí",
["cbc"] = "Carapana",
["cbd"] = "Carijona",
["cbg"] = "Chimila",
["cbi"] = "Chachi",
["cbj"] = "Ede Cabe",
["cbk"] = "Chavacano",
["cbl"] = "Chin Bualkhaw",
["cbn"] = "Nyah Kur",
["cbo"] = "Izora",
["cbq"] = "Shuba",
["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"] = "Melayu Cheti",
["cco"] = "Comaltepec Chinantec",
["ccp"] = "Chakma",
["ccr"] = "Cacaopera",
["ccs-gzn-pro"] = "Georgia-Zan Purba",
["ccs-pro"] = "Kartvelia Purba",
["cda"] = "Choni",
["cdc-cbm-pro"] = "Chadik Tengah Purba",
["cdc-mas-pro"] = "Masa Purba",
["cdc-pro"] = "Chadik Purba",
["cdd-pro"] = "Caddoan Purba",
["cde"] = "Chenchu",
["cdf"] = "Chiru",
["cdh"] = "Chambeali",
["cdi"] = "Chodri",
["cdj"] = "Churahi",
["cdm"] = "Chepang",
["cdn"] = "Chaudangsi",
["cdo"] = "Min Timur",
["cdr"] = "Cinda-Regi-Tiyal",
["cds"] = "Bahasa Isyarat Chad",
["cdy"] = "Chadong",
["cdz"] = "Koda",
["ce"] = "Chechen",
["cea"] = "Lower Chehalis",
["ceb"] = "Cebuano",
["ceg"] = "Chamacoco",
["cel-bry-pro"] = "Britonik Purba",
["cel-gal"] = "Gallaecia",
["cel-gau"] = "Gaul",
["cel-pro"] = "Keltik Purba",
["cen"] = "Cen",
["cet"] = "Centúúm",
["cfa"] = "Dijim-Bwilim",
["cfd"] = "Cara",
["cfg"] = "Como Karim",
["cfm"] = "Chin Falam",
["cga"] = "Changriwa",
["cgc"] = "Kagayanen",
["cgg"] = "Rukiga",
["cgk"] = "Chocangaca",
["ch"] = "Chamorro",
["chb"] = "Chibcha",
["chc"] = "Catawba",
["chd"] = "Highland Oaxaca Chontal",
["chf"] = "Tabasco Chontal",
["chg"] = "Chagatai",
["chh"] = "Chinook",
["chi-pro"] = "Chimakuan Purba",
["chj"] = "Ojitlán Chinantec",
["chk"] = "Chuuk",
["chl"] = "Cahuilla",
["chm-pro"] = "Mari Purba",
["chn"] = "Chinook Jargon",
["cho"] = "Choctaw",
["chp"] = "Chipewyan",
["chq"] = "Quiotepec Chinantec",
["chr"] = "Cherokee",
["cht"] = "Cholón",
["chw"] = "Chuabo",
["chx"] = "Chantyal",
["chy"] = "Cheyenne",
["chz"] = "Ozumacín Chinantec",
["cia"] = "Cia-Cia",
["cib"] = "Ci Gbe",
["cic"] = "Chickasaw",
["cid"] = "Chimariko",
["cie"] = "Cineni",
["cih"] = "Chinali",
["cik"] = "Chitkuli Kinnauri",
["cim"] = "Cimbrian",
["cin"] = "Cinta Larga",
["cip"] = "Chiapanec",
["cir"] = "Tiri",
["ciy"] = "Chaima",
["cja"] = "Cam Barat",
["cje"] = "Chru",
["cjh"] = "Upper Chehalis",
["cji"] = "Chamalal",
["cjk"] = "Chokwe",
["cjm"] = "Cam Timur",
["cjn"] = "Chenapian",
["cjo"] = "Ashéninka Pajonal",
["cjp"] = "Cabécar",
["cjs"] = "Shor",
["cjv"] = "Chuave",
["cjy"] = "Jin",
["ckb"] = "Kurdi Tengah",
["ckh"] = "Chak",
["ckl"] = "Cibak",
["ckn"] = "Chin Kaang",
["cko"] = "Anufo",
["ckq"] = "Kajakse",
["ckr"] = "Kairak",
["cks"] = "Tayo",
["ckt"] = "Chukchi",
["cku"] = "Koasati",
["ckv"] = "Kavalan",
["ckx"] = "Caka",
["cky"] = "Cakfem-Mushere",
["ckz"] = "Cakchiquel-Quiché Mixed Language",
["cla"] = "Ron",
["clc"] = "Chilcotin",
["cld"] = "Chaldean Neo-Aramaic",
["cle"] = "Lealao Chinantec",
["clh"] = "Chilisso",
["cli"] = "Chakali",
["clj"] = "Chin Laitu",
["clk"] = "Idu",
["cll"] = "Chala",
["clm"] = "Klallam",
["clo"] = "Lowland Oaxaca Chontal",
["clt"] = "Chin Laitu",
["clu"] = "Caluyanun",
["clw"] = "Chulym",
["cly"] = "Chatino Tanah Tinggi Timur",
["cma"] = "Mạ",
["cmc-pro"] = "Chamik Purba",
["cme"] = "Cerma",
["cmg"] = "Mongol Klasik",
["cmi"] = "Emberá-Chamí",
["cml"] = "Campalagian",
["cmm"] = "Michigamea",
["cmn"] = "Mandarin",
["cmo"] = "Mnong Tengah",
["cmr"] = "Chin Mro",
["cms"] = "Messapic",
["cmt"] = "Camtho",
["cna"] = "Changthang",
["cnb"] = "Chin Chinbon",
["cnc"] = "Cốông",
["cng"] = "Qiang Utara",
["cnh"] = "Lai",
["cni"] = "Asháninka",
["cnk"] = "Chin Khumi",
["cnl"] = "Lalana Chinantec",
["cno"] = "Con",
["cnp"] = "Pinghua Utara",
["cns"] = "Asmat Tengah",
["cnt"] = "Tepetotutla Chinantec",
["cnu"] = "Chenoua",
["cnw"] = "Chin Ngawn",
["cnx"] = "Cornwall Pertengahan",
["co"] = "Corsica",
["coa"] = "Melayu Cocos",
["cob"] = "Chicomuceltec",
["coc"] = "Cocopa",
["cod"] = "Cocama",
["coe"] = "Koreguaje",
["cof"] = "Tsafiki",
["cog"] = "Chong",
["coh"] = "Chichonyi-Chidzihana-Chikauma",
["coj"] = "Cochimi",
["cok"] = "Santa Teresa Cora",
["col"] = "Columbia-Wenatchi",
["com"] = "Comanche",
["con"] = "Cofán",
["coo"] = "Comox",
["cop"] = "Qibti",
["coq"] = "Coquille",
["cot"] = "Caquinte",
["cou"] = "Wamey",
["cov"] = "Cao Miao",
["cow"] = "Cowlitz",
["cox"] = "Nanti",
["coy"] = "Coyaima",
["coz"] = "Chochotec",
["cpa"] = "Palantla Chinantec",
["cpb"] = "Ucayali-Yurúa Ashéninka",
["cpc"] = "Ajyíninka Apurucayali",
["cpg"] = "Yunani Cappadocia",
["cpi"] = "Inggeris Pijin Cina",
["cpn"] = "Cherepon",
["cpo"] = "Kpee",
["cps"] = "Capiznon",
["cpu"] = "Pichis Ashéninka",
["cpx"] = "Min Puxian",
["cpy"] = "Ashéninka Ucayali Selatan",
["cqd"] = "Chuanqiandian Cluster Miao",
["cr"] = "Cree",
["cra"] = "Chara",
["crb"] = "Kalinago",
["crc"] = "Lonwolwol",
["crd"] = "Coeur d'Alene",
["crf"] = "Caramanta",
["crg"] = "Michif",
["crh"] = "Tatar Crimea",
["cri"] = "Sãotomense",
["crj"] = "Cree Timur Selatan",
["crk"] = "Plains Cree",
["crl"] = "Cree Timur Utara",
["crm"] = "Cree Moose",
["crn"] = "Cora",
["cro"] = "Crow",
["crp-bip"] = "Pijin Basque-Iceland",
["crp-cpr"] = "Pijin Rusia-China",
["crp-gep"] = "Pijin Greenland Barat",
["crp-kia"] = "Pijin Jerman Kiautschou",
["crp-mar"] = "Bahasa Roh Maroon",
["crp-mpp"] = "Pijin Portugis Macau",
["crp-rsn"] = "Russenorsk",
["crp-slb"] = "Inggeris Solombala",
["crp-spp"] = "Pijin Ladang Samoa",
["crp-tpr"] = "Pijin Rusia Taimyr",
["crq"] = "Iyo'wujwa Chorote",
["crr"] = "Algonquin Carolina",
["crs"] = "Kreol Seychelles",
["crt"] = "Iyojwa'ja Chorote",
["crv"] = "Chaura",
["crw"] = "Chrau",
["crx"] = "Carrier",
["cry"] = "Cori",
["crz"] = "Cruzeño",
["cs"] = "Czech",
["csa"] = "Chiltepec Chinantec",
["csb"] = "Kashubian",
["csc"] = "Catalan Sign Language",
["csd"] = "Chiangmai Sign Language",
["cse"] = "Czech Sign Language",
["csf"] = "Cuban Sign Language",
["csg"] = "Chilean Sign Language",
["csh"] = "Chin Asho",
["csi"] = "Miwok Pesisir",
["csj"] = "Chin Songlai",
["csk"] = "Jola-Kasa",
["csl"] = "Chinese Sign Language",
["csm"] = "Miwok Sierra Tengah",
["csn"] = "Colombian Sign Language",
["cso"] = "Sochiapam Chinantec",
["csp"] = "Pinghua Selatan",
["csq"] = "Bahasa Isyarat Croatia",
["csr"] = "Costa Rican Sign Language",
["css"] = "Ohlone Selatan",
["cst"] = "Ohlone Utara",
["csu-bba-pro"] = "Bongo-Bagirmi Purba",
["csu-maa-pro"] = "Mangbetu Purba",
["csu-pro"] = "Sudan Tengah Purba",
["csu-sar-pro"] = "Sara Purba",
["csv"] = "Chin Sumtu",
["csw"] = "Swampy Cree",
["csy"] = "Chin Siyin",
["csz"] = "Coos",
["cta"] = "Tataltepec Chatino",
["ctc"] = "Chetco-Tolowa",
["ctd"] = "Chin Tedim",
["cte"] = "Tepinapa Chinantec",
["ctg"] = "Chittagong",
["cth"] = "Chin Thaiphum",
["ctl"] = "Tlacoatzintepec Chinantec",
["ctm"] = "Chitimacha",
["ctn"] = "Chhintange",
["cto"] = "Emberá-Catío",
["ctp"] = "Chatino Tanah Tinggi Barat",
["cts"] = "Bicolano Catanduanes Utara",
["ctt"] = "Wayanad Chetti",
["ctu"] = "Chol",
["ctz"] = "Zacatepec Chatino",
["cu"] = "Slavonic Gereja Kuno",
["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"] = "Cun",
["cur"] = "Chhulung",
["cus-ash"] = "Ashraaf",
["cus-hec-pro"] = "Cushitic Timur Tanah Tinggi Purba",
["cus-pro"] = "Cushitic Purba",
["cus-som-pro"] = "Somaloid Purba",
["cus-sou-pro"] = "Cushitic Selatan Purba",
["cut"] = "Teutila Cuicatec",
["cuu"] = "Tai Ya",
["cuv"] = "Cuvok",
["cuw"] = "Chukwa",
["cux"] = "Tepeuxila Cuicatec",
["cuy"] = "Cuitlatec",
["cv"] = "Chuvash",
["cvg"] = "Chug",
["cvn"] = "Valle Nacional Chinantec",
["cwa"] = "Kabwa",
["cwb"] = "Maindo",
["cwd"] = "Woods Cree",
["cwe"] = "Kwere",
["cwg"] = "Chewong",
["cwt"] = "Kuwaataay",
["cy"] = "Wales",
["cya"] = "Nopala Chatino",
["cyb"] = "Cayubaba",
["cyo"] = "Cuyunon",
["czh"] = "Huizhou",
["czk"] = "Knaanic",
["czn"] = "Zenzontepec Chatino",
["czo"] = "Min Tengah",
["czt"] = "Chin Zotung",
["da"] = "Denmark",
["daa"] = "Dangaléat",
["dac"] = "Dambi",
["dad"] = "Marik",
["dae"] = "Duupa",
["dag"] = "Dagbani",
["dah"] = "Gwahatike",
["dai"] = "Day",
["daj"] = "Dar Fur Daju",
["dak"] = "Dakota",
["dal"] = "Dahalo",
["dam"] = "Damakawa",
["dao"] = "Chin Daai",
["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"] = "Idahan",
["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"] = "Negerhollands",
["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"] = "Jerman",
["dec"] = "Dagik",
["ded"] = "Dedua",
["dee"] = "Dewoin",
["def"] = "Dezfuli",
["deg"] = "Degema",
["deh"] = "Dehwari",
["dei"] = "Demisa",
["dek"] = "Dek",
["dem"] = "Dem",
["dep"] = "Pidgin Delaware",
["der"] = "Deori",
["des"] = "Desano",
["dev"] = "Domung",
["dez"] = "Dengese",
["dga"] = "Dagaare Selatan",
["dgb"] = "Bunoge",
["dgc"] = "Agta Casiguran Dumagat",
["dgd"] = "Dagaari Dioula",
["dge"] = "Degenan",
["dgg"] = "Doga",
["dgh"] = "Dghwede",
["dgi"] = "Dagara Utara",
["dgk"] = "Dagba",
["dgn"] = "Dagoman",
["dgo"] = "Hindi Dogri",
["dgr"] = "Dogrib",
["dgs"] = "Dogoso",
["dgt"] = "Ntra'ngith",
["dgw"] = "Daungwurrung",
["dgx"] = "Doghoro",
["dgz"] = "Daga",
["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"] = "Dinka Tengah Selatan",
["dic"] = "Lakota Dida",
["did"] = "Didinga",
["dif"] = "Dieri",
["dig"] = "Digo",
["dii"] = "Dimbong",
["dij"] = "Dai",
["dik"] = "Dinka Barat Daya",
["dil"] = "Dilling",
["dim"] = "Dime",
["din"] = "Dinka",
["dio"] = "Dibo",
["dip"] = "Dinka Timur Laut",
["dir"] = "Dirim",
["dis"] = "Dimasa",
["diu"] = "Gciriku",
["diw"] = "Dinka Barat Laut",
["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"] = "Dinka Tenggara",
["dkx"] = "Mazagway",
["dlg"] = "Dolgan",
["dlk"] = "Dahalik",
["dlm"] = "Dalmatian",
["dln"] = "Darlong",
["dma"] = "Duma",
["dmb"] = "Mombo Dogon",
["dmc"] = "Gavak",
["dmd"] = "Madhi Madhi",
["dme"] = "Dugwor",
["dmf"] = "Medefaidrin",
["dmg"] = "Sungai",
["dmk"] = "Domaaki",
["dml"] = "Dameli",
["dmm"] = "Dama (Nigeria)",
["dmn-dam"] = "Dama (Sierra Leone)",
["dmn-mdw-pro"] = "Mande Barat Purba",
["dmn-pro"] = "Mande Purba",
["dmo"] = "Kemezung",
["dmr"] = "Damar Timur",
["dms"] = "Dampelas",
["dmu"] = "Dubu",
["dmv"] = "Dumpas",
["dmw"] = "Mudburra",
["dmx"] = "Dema",
["dmy"] = "Demta",
["dna"] = "Upper Grand Valley Dani",
["dnd"] = "Daonda",
["dne"] = "Ndendeule",
["dng"] = "Dungan",
["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"] = "Dani Barat",
["dny"] = "Dení",
["doa"] = "Dom",
["dob"] = "Dobu",
["doc"] = "Kam Utara",
["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"] = "Dravidia Tengah Purba",
["dra-mkn"] = "Kannada Pertengahan",
["dra-nor-pro"] = "Dravidia Utara Purba",
["dra-okn"] = "Kannada Kuno",
["dra-ote"] = "Telugu Kuno",
["dra-pro"] = "Dravidia Purba",
["dra-sdo-pro"] = "Dravidia Selatan I Purba",
["dra-sdt-pro"] = "Dravidia Selatan II Purba",
["dra-sou-pro"] = "Dravidia Selatan Purba",
["drb"] = "Dair",
["drc"] = "Minderico",
["drd"] = "Darmiya",
["drg"] = "Rungus",
["dri"] = "Lela",
["drl"] = "Baagandji",
["drn"] = "Damar Barat",
["dro"] = "Melanau Daro-Matu",
["drq"] = "Dura",
["drs"] = "Gedeo",
["dru"] = "Rukai",
["dru-pro"] = "Rukai Purba",
["dry"] = "Darai",
["dsb"] = "Lower Sorbian",
["dse"] = "Dutch Sign Language",
["dsh"] = "Daasanach",
["dsi"] = "Disa",
["dsl"] = "Danish Sign Language",
["dsn"] = "Dusner",
["dso"] = "Desiya",
["dsq"] = "Tadaksahak",
["dta"] = "Daur",
["dtb"] = "Kadazan Labuk-Kinabatangan",
["dtd"] = "Ditidaht",
["dth"] = "Adithinngithigh",
["dti"] = "Ana Tinga Dogon",
["dtk"] = "Tene Kan Dogon",
["dtm"] = "Tomo Kan Dogon",
["dto"] = "Tommo So",
["dtp"] = "Kadazandusun",
["dtr"] = "Lotud",
["dts"] = "Toro So Dogon",
["dtt"] = "Toro Tegu Dogon",
["dtu"] = "Tebul Ure Dogon",
["dty"] = "Doteli",
["dua"] = "Duala",
["dub"] = "Dubli",
["duc"] = "Duna",
["due"] = "Agta Umiray Dumaget",
["duf"] = "Dumbea",
["dug"] = "Chiduruma",
["duh"] = "Dungra Bhil",
["dui"] = "Dumun",
["duk"] = "Uyajitaya",
["dul"] = "Agta Pulau Alabat",
["dum"] = "Belanda Pertengahan",
["dun"] = "Dusun Deyah",
["duo"] = "Agta Dupaningan",
["dup"] = "Duano",
["duq"] = "Dusun Malang",
["dur"] = "Dii",
["dus"] = "Dumi",
["duu"] = "Drung",
["duv"] = "Duvle",
["duw"] = "Dusun Witu",
["dux"] = "Duun",
["duy"] = "Agta Dicamay",
["duz"] = "Duli",
["dv"] = "Dhivehi",
["dva"] = "Duau",
["dwa"] = "Diri",
["dwr"] = "Dawro",
["dwu"] = "Dhuwal",
["dww"] = "Dawawa",
["dwy"] = "Dhuwaya",
["dwz"] = "Dewas Rai",
["dya"] = "Dyan",
["dyb"] = "Dyaberdyaber",
["dyd"] = "Dyugun",
["dyg"] = "Agta Villa Viciosa",
["dyi"] = "Djimini",
["dym"] = "Yanda Dogon",
["dyn"] = "Dyangadi",
["dyo"] = "Jola-Fonyi",
["dyu"] = "Dyula",
["dyy"] = "Dyaabugay",
["dz"] = "Dzongkha",
["dza"] = "Tunzu",
["dzg"] = "Dazaga",
["dzl"] = "Dzala",
["dzn"] = "Dzando",
["ebg"] = "Ebughu",
["ebk"] = "Bontoc Timur",
["ebr"] = "Ebrié",
["ebu"] = "Embu",
["ecr"] = "Eteocretan",
["ecs"] = "Bahasa Isyarat Ecuador",
["ecy"] = "Eteocypriot",
["ee"] = "Ewe",
["eee"] = "E",
["efa"] = "Efai",
["efe"] = "Efe",
["efi"] = "Efik",
["ega"] = "Ega",
["egl"] = "Emilian",
["ego"] = "Eggon",
["egx-dem"] = "Mesir Demotik",
["egy"] = "Mesir Purba",
["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"] = "Kayah Timur",
["el"] = "Greek",
["ele"] = "Elepi",
["elh"] = "El Hugeirat",
["eli"] = "Nding",
["elk"] = "Elkei",
["elm"] = "Eleme",
["elo"] = "El Molo",
["elu"] = "Elu",
["elx"] = "Elam",
["ema"] = "Emai",
["emb"] = "Embaloh",
["eme"] = "Emerillon",
["emg"] = "Meohang Timur",
["emi"] = "Mussau-Emira",
["emk"] = "Maninkakan Timur",
["emm"] = "Mamulique",
["emn"] = "Eman",
["emp"] = "Emberá Utara",
["ems"] = "Alutiiq",
["emu"] = "Muria Timur",
["emw"] = "Emplawas",
["emx"] = "Erromintxela",
["emy"] = "Maya Epigrafi",
["en"] = "Inggeris",
["ena"] = "Apali",
["enb"] = "Markweeta",
["enc"] = "En",
["end"] = "Ende",
["enf"] = "Enets Hutan",
["enh"] = "Enets Tundra",
["enl"] = "Enlhet",
["enm"] = "Inggeris Pertengahan",
["enn"] = "Engenni",
["eno"] = "Enggano",
["enq"] = "Enga",
["enr"] = "Emem",
["enu"] = "Enu",
["env"] = "Enwan",
["enw"] = "Enwang",
["enx"] = "Enxet",
["eo"] = "Esperanto",
["eot"] = "Eotile",
["epi"] = "Epie",
["era"] = "Eravallan",
["erg"] = "Sie",
["erh"] = "Eruwa",
["eri"] = "Ogea",
["erk"] = "Efate Selatan",
["ero-gsz"] = "Geshiza",
["ero-nya"] = "Nyagrong Minyag",
["ero-tau"] = "Stau",
["err"] = "Erre",
["ers"] = "Ersu",
["ert"] = "Eritai",
["erw"] = "Erokwanas",
["es"] = "Sepanyol",
["ese"] = "Ese Ejja",
["esh"] = "Eshtehardi",
["esl"] = "Bahasa Isyarat Mesir",
["esm"] = "Esuma",
["esn"] = "Bahasa Isyarat El Salvador",
["eso"] = "Bahasa Isyarat Estonia",
["esq"] = "Esselen",
["ess"] = "Yupik Siberia Tengah",
["esu"] = "Yup'ik",
["esx-esk-pro"] = "Eskimo Purba",
["esx-ink"] = "Inuktun",
["esx-inq"] = "Inuinnaqtun",
["esx-inu-pro"] = "Inuit Purba",
["esx-pro"] = "Eskimo-Aleut Purba",
["esx-tut"] = "Tunumiisut",
["esy"] = "Eskayan",
["et"] = "Estonia",
["etb"] = "Etebi",
["etc"] = "Etchemin",
["eth"] = "Bahasa Isyarat Habsyah",
["etn"] = "Eton (Vanuatu)",
["eto"] = "Eton (Cameroon)",
["etr"] = "Edolo",
["ets"] = "Yekhee",
["ett"] = "Etruria",
["etu"] = "Ejagham",
["etx"] = "Eten",
["etz"] = "Semimi",
["eu"] = "Basque",
["euq-pro"] = "Basque Purba",
["eve"] = "Even",
["evh"] = "Uvbie",
["evn"] = "Evenki",
["ewo"] = "Ewondo",
["ext"] = "Extremaduran",
["eya"] = "Eyak",
["eyo"] = "Keiyo",
["eza"] = "Ezaa",
["eze"] = "Uzekwe",
["fa"] = "Parsi",
["faa"] = "Fasu",
["fab"] = "Annobon",
["fad"] = "Wagi",
["faf"] = "Fagani",
["fag"] = "Finongan",
["fah"] = "Fali Baissa",
["fai"] = "Faiwol",
["faj"] = "Kursav",
["fak"] = "Fang (Beboid)",
["fal"] = "Fali Selatan",
["fam"] = "Fam",
["fan"] = "Fang (Bantu)",
["fap"] = "Palor",
["far"] = "Fataleka",
["fau"] = "Fayu",
["fax"] = "Fala",
["fay"] = "Fars Barat Daya",
["faz"] = "Fars Barat Laut",
["fbl"] = "Bikol Miraya Barat",
["fcs"] = "Bahasa Isyarat Quebec",
["fer"] = "Feroge",
["ff"] = "Fula",
["ffi"] = "Foia Foia",
["fgr"] = "Fongoro",
["fi"] = "Finland",
["fia"] = "Nobiin",
["fie"] = "Fyer",
["fif"] = "Faifi",
["fip"] = "Fipa",
["fir"] = "Firan",
["fit"] = "Meänkieli",
["fiw"] = "Fiwaga",
["fj"] = "Fiji",
["fkk"] = "Kirya-Konzel",
["fkv"] = "Kven",
["fla"] = "Salish Montana",
["flh"] = "Foau",
["fli"] = "Fali",
["fll"] = "Fali Utara",
["fln"] = "Pulau Flinders",
["flr"] = "Fuliiru",
["fly"] = "Tsotsitaal",
["fmp"] = "Fe'fe'",
["fmu"] = "Muria Barat Jauh",
["fng"] = "Fanagalo",
["fni"] = "Fania",
["fo"] = "Faroe",
["fod"] = "Foodo",
["foi"] = "Foi",
["fom"] = "Foma",
["fon"] = "Fon",
["for"] = "Fore",
["fos"] = "Siraya",
["fpe"] = "Pichinglis",
["fqs"] = "Fas",
["fr"] = "Perancis",
["frd"] = "Fordata",
["frm"] = "Perancis Pertengahan",
["fro"] = "Perancis Kuno",
["frp"] = "Franco-Provençal",
["frq"] = "Forak",
["frr"] = "Frisia Utara",
["frt"] = "Fortsenal",
["fse"] = "Bahasa Isyarat Finland",
["fsl"] = "Bahasa Isyarat Perancis",
["fss"] = "Bahasa Isyarat Finland-Sweden",
["fud"] = "Futuna Timur",
["fuj"] = "Ko",
["fum"] = "Fum",
["fun"] = "Fulniô",
["fur"] = "Friulian",
["fut"] = "Futuna-Aniwa",
["fuu"] = "Furu",
["fuy"] = "Fuyug",
["fvr"] = "Fur",
["fwa"] = "Fwâi",
["fwe"] = "Fwe",
["fy"] = "Frisia Barat",
["ga"] = "Ireland",
["gba-pro"] = "Gbaya Purba",
["gd"] = "Gaelik Scotland",
["gem-pro"] = "Jermanik Purba",
["gl"] = "Galicia",
["gme-bur"] = "Burgundia",
["gme-cgo"] = "Goth Crimea",
["gmq-gut"] = "Gutnish",
["gmq-jmk"] = "Jamtish",
["gmq-mno"] = "Norway Pertengahan",
["gmq-oda"] = "Denmark Kuno",
["gmq-ogt"] = "Gutnish Kuno",
["gmq-osw"] = "Sweden Kuno",
["gmq-pro"] = "Norse Purba",
["gmq-scy"] = "Scanian",
["gmw-bgh"] = "Bergish",
["gmw-cfr"] = "Franconia Tengah",
["gmw-ecg"] = "Jerman Tengah Timur",
["gmw-fin"] = "Fingallian",
["gmw-gts"] = "Gottscheerish",
["gmw-jdt"] = "Belanda Jersey",
["gmw-msc"] = "Scots Pertengahan",
["gmw-pro"] = "Jermanik Barat Purba",
["gmw-rfr"] = "Franconia Rhine",
["gmw-stm"] = "Schwaben Szatmár",
["gmw-tsx"] = "Saxon Transylvania",
["gmw-vog"] = "Jerman Volga",
["gmw-zps"] = "Jerman Zipser",
["gn-cls"] = "Guarani Klasik",
["grk-cal"] = "Yunani Calabria",
["grk-ita"] = "Yunani Italiot",
["grk-mar"] = "Yunani Mariupol",
["grk-pro"] = "Hellenik Purba",
["gu"] = "Gujerat",
["gv"] = "Manx",
["gvf"] = "Golin",
["gvj"] = "Guajá",
["gvl"] = "Gulay",
["gvm"] = "Gurmana",
["gvn"] = "Kuku-Yalanji",
["gvo"] = "Gavião do Jiparaná",
["gvp"] = "Gavião Pará",
["gvr"] = "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è Selatan",
["gya"] = "Gbaya Barat Laut",
["gyb"] = "Garus",
["gyd"] = "Kayardild",
["gye"] = "Gyem",
["gyf"] = "Gungabula",
["gyg"] = "Gbayi",
["gyi"] = "Gyele",
["gyl"] = "Gayil",
["gym"] = "Ngäbere",
["gyn"] = "Kreol Inggeris Guyana",
["gyo"] = "Gyalsumdo",
["gyr"] = "Guarayu",
["gyy"] = "Gunya",
["gza"] = "Ganza",
["gzn"] = "Gane",
["ha"] = "Hausa",
["haa"] = "Hän",
["hab"] = "Bahasa Isyarat Hanoi",
["hac"] = "Gurani",
["had"] = "Hatam",
["haf"] = "Bahasa Isyarat Haiphong",
["hag"] = "Hanga",
["hah"] = "Hahon",
["hai"] = "Haida",
["haj"] = "Hajong",
["hak"] = "Hakka",
["hal"] = "Halang",
["ham"] = "Hewa",
["hao"] = "Hakö",
["hap"] = "Hupla",
["har"] = "Harari",
["has"] = "Haisla",
["hav"] = "Havu",
["haw"] = "Hawaii",
["hax"] = "Haida Selatan",
["hay"] = "Haya",
["hba"] = "Hamba",
["hbb"] = "Huba",
["hbn"] = "Heiban",
["hbu"] = "Habu",
["hca"] = "Hindi Kreol Andaman",
["hch"] = "Huichol",
["hdn"] = "Haida Utara",
["hds"] = "Bahasa Isyarat Honduras",
["hdy"] = "Hadiyya",
["he"] = "Ibrani",
["hea"] = "Miao Qiandong Utara",
["hed"] = "Herdé",
["heg"] = "Helong",
["heh"] = "Hehe",
["hei"] = "Heiltsuk",
["hem"] = "Hemba",
["hgm"] = "Haiǁom",
["hgw"] = "Haigwai",
["hhi"] = "Hoia Hoia",
["hhr"] = "Kerak",
["hhy"] = "Hoyahoya",
["hi"] = "Hindi",
["hia"] = "Lamang",
["hib"] = "Hibito",
["hid"] = "Hidatsa",
["hif"] = "Hindi Fiji",
["hig"] = "Kamwe",
["hih"] = "Pamosu",
["hii"] = "Hinduri",
["hij"] = "Hijuk",
["hik"] = "Seit-Kaitetu",
["hil"] = "Hiligaynon",
["hio"] = "Tshwa",
["hir"] = "Himarimã",
["hit"] = "Het",
["hiw"] = "Hiw",
["hix"] = "Hixkaryana",
["hji"] = "Haji",
["hka"] = "Kahe",
["hke"] = "Hunde",
["hkh"] = "Pogali",
["hkk"] = "Hunjara-Kaina Ke",
["hkn"] = "Mel-Khaonh",
["hks"] = "Bahasa Isyarat Hong Kong",
["hla"] = "Halia",
["hlb"] = "Halbi",
["hld"] = "Halang Doan",
["hle"] = "Hlersu",
["hlt"] = "Nga La",
["hma"] = "Hmong Mashan Selatan",
["hmb"] = "Humburi Senni",
["hmc"] = "Hmong Huishui Tengah",
["hmd"] = "A-Hmao",
["hme"] = "Hmong Huishui Timur",
["hmf"] = "Hmong Don",
["hmg"] = "Hmong Guiyang Barat Daya",
["hmh"] = "Hmong Huishui Barat Daya",
["hmi"] = "Hmong Huishui Utara",
["hmj"] = "Ge",
["hmk"] = "Maek",
["hml"] = "Hmong Luopohe",
["hmm"] = "Hmong Mashan Tengah",
["hmn-pro"] = "Hmongik Purba",
["hmp"] = "Hmong Mashan Utara",
["hmq"] = "Miao Qiandong Timur",
["hmr"] = "Hmar",
["hms"] = "Miao Qiandong Selatan",
["hmt"] = "Hamtai",
["hmu"] = "Hamap",
["hmv"] = "Hmong Dô",
["hmw"] = "Hmong Mashan Barat",
["hmx-mie-pro"] = "Mienik Purba",
["hmx-pro"] = "Hmong-Mien Purba",
["hmy"] = "Hmong Guiyang Selatan",
["hmz"] = "Hmong Shua",
["hna"] = "Mina",
["hnd"] = "Hindko Selatan",
["hne"] = "Chhattisgarhi",
["hnh"] = "ǁAni",
["hni"] = "Hani",
["hnj"] = "Hmong Hijau",
["hnn"] = "Hanunoo",
["hno"] = "Hindko Utara",
["hns"] = "Hindustan Caribbean",
["hnu"] = "Hung",
["ho"] = "Hiri Motu",
["hoa"] = "Hoava",
["hob"] = "Mari Austronesia",
["hoc"] = "Ho",
["hod"] = "Holma",
["hoe"] = "Horom",
["hoh"] = "Hobyót",
["hoi"] = "Holikachuk",
["hoj"] = "Hadothi",
["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"] = "Hunsrik",
["hrz"] = "Harzani",
["hsb"] = "Sorbia Atas",
["hsh"] = "Bahasa Isyarat Hungary",
["hsl"] = "Bahasa Isyarat Hausa",
["hsn"] = "Xiang",
["hss"] = "Harsusi",
["ht"] = "Kreol Haiti",
["hti"] = "Hoti",
["hto"] = "Minica Huitoto",
["hts"] = "Hadza",
["htu"] = "Hitu",
["hu"] = "Hungary",
["hub"] = "Huambisa",
["huc"] = "ǂHoan",
["hud"] = "Huaulu",
["huf"] = "Humene",
["hug"] = "Huachipaeri",
["huh"] = "Huilliche",
["hui"] = "Huli",
["huj"] = "Hmong Guiyang Utara",
["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"] = "Kreol Hawaii",
["hwo"] = "Hwana",
["hy"] = "Armenia",
["hya"] = "Hya",
["hyx-pro"] = "Armenia Purba",
["hz"] = "Herero",
["ia"] = "Interlingua",
["iai"] = "Iaai",
["ian"] = "Iatmul",
["iar"] = "Purari",
["iba"] = "Iban",
["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"] = "Bahasa Isyarat Iceland",
["icr"] = "Inggeris Kreol Islander",
["id"] = "Indonesia",
["ida"] = "Idakho-Isukha-Tiriki",
["idb"] = "Indo-Portugis",
["idc"] = "Idon",
["idd"] = "Ede Idaca",
["ide"] = "Idere",
["idi"] = "Idi",
["idr"] = "Indri",
["ids"] = "Idesa",
["idt"] = "Idaté",
["idu"] = "Idoma",
["ie"] = "Interlingue",
["ifa"] = "Amganad Ifugao",
["ifb"] = "Batad Ifugao",
["ife"] = "Ifè",
["iff"] = "Ifo",
["ifk"] = "Tuwali Ifugao",
["ifm"] = "Teke-Fuumu",
["ifu"] = "Mayoyao Ifugao",
["ify"] = "Keley-I Kallahan",
["ig"] = "Igbo",
["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"] = "Nuosu",
["iir-nur-pro"] = "Nuristani Purba",
["iir-pro"] = "Indo-Iran Purba",
["ijc"] = "Izon",
["ije"] = "Biseni",
["ijj"] = "Ede Ije",
["ijn"] = "Kalabari",
["ijo-pro"] = "Ijoid Purba",
["ijs"] = "Southeast Ijo",
["ik"] = "Inupiaq",
["ike"] = "Eastern Canadian Inuktitut",
["iki"] = "Iko",
["ikk"] = "Ika",
["ikl"] = "Ikulu",
["iko"] = "Olulumo-Ikom",
["ikp"] = "Ikpeshi",
["ikr"] = "Ikaranggal",
["iks"] = "Bahasa Isyarat Inuit",
["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"] = "Iranun",
["ilo"] = "Ilocano",
["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"] = "Prakrit Ashoka",
["inc-dng-pro"] = "Dangari Purba",
["inc-kam"] = "Prakrit Kamarupi",
["inc-kho"] = "Kholosi",
["inc-khr"] = "Khortha",
["inc-krd-pro"] = "Kamta Purba",
["inc-mas"] = "Assam Pertengahan",
["inc-mbn"] = "Bengal Pertengahan",
["inc-mgu"] = "Gujarati Pertengahan",
["inc-mor"] = "Odia Pertengahan",
["inc-oas"] = "Assam Awal",
["inc-oaw"] = "Awadhi Kuno",
["inc-obn"] = "Bengal Kuno",
["inc-ogu"] = "Gujarati Kuno",
["inc-ohi"] = "Hindi Kuno",
["inc-oor"] = "Odia Kuno",
["inc-opa"] = "Punjabi Kuno",
["inc-pro"] = "Indo-Arya Purba",
["inc-sar"] = "Sarazi",
["ine-ana-pro"] = "Anatolia Purba",
["ine-bsl-pro"] = "Balto-Slavik Purba",
["ine-kal"] = "Kalašma",
["ine-pae"] = "Paeonia",
["ine-pro"] = "Indo-Eropah Purba",
["ine-toc-pro"] = "Tocharia Purba",
["ing"] = "Deg Xinag",
["inh"] = "Ingush",
["inj"] = "Jungle Inga",
["inl"] = "Bahasa Isyarat Indonesia",
["inm"] = "Minaean",
["inn"] = "Isinai",
["ino"] = "Inoke-Yate",
["inp"] = "Iñapari",
["ins"] = "Bahasa Isyarat India",
["int"] = "Intha",
["inz"] = "Ineseño",
["io"] = "Ido",
["ior"] = "Inor",
["iou"] = "Tuma-Irumu",
["iow"] = "Chiwere",
["ipi"] = "Ipili",
["ipo"] = "Ipiko",
["iqu"] = "Iquito",
["iqw"] = "Ikwo",
["ira-kms-pro"] = "Komisenia Purba",
["ira-mny-pro"] = "Munji-Yidgha Purba",
["ira-mpr-pro"] = "Medo-Parthia Purba",
["ira-pat-pro"] = "Pathan Purba",
["ira-pro"] = "Iran Purba",
["ira-sgc-pro"] = "Sogdia Purba",
["ira-sgi-pro"] = "Sanglechi-Ishkashimi Purba",
["ira-shr-pro"] = "Shughni-Roshani Purba",
["ira-shy-pro"] = "Shughni-Yazghulami Purba",
["ira-sym-pro"] = "Shughni-Yazghulami-Munji Purba",
["ira-wnj"] = "Vanji",
["ira-zgr-pro"] = "Zaza-Gorani Purba",
["ire"] = "Iresim",
["irh"] = "Irarutu",
["iri"] = "Rigwe",
["irk"] = "Iraqw",
["irn"] = "Irantxe",
["iro-ere"] = "Erie",
["iro-min"] = "Mingo",
["iro-nor-pro"] = "Iroquois Utara Purba",
["iro-pro"] = "Iroquois Purba",
["irr"] = "Ir",
["iru"] = "Irula",
["irx"] = "Kamberau",
["iry"] = "Iraya",
["is"] = "Iceland",
["isa"] = "Isabi",
["isc"] = "Isconahua",
["isd"] = "Isnag",
["ise"] = "Bahasa Isyarat Itali",
["isg"] = "Bahasa Isyarat Ireland",
["ish"] = "Esan",
["isi"] = "Nkem-Nkum",
["isk"] = "Ishkashimi",
["ism"] = "Masimasi",
["isn"] = "Isanzu",
["iso"] = "Isoko",
["isr"] = "Bahasa Isyarat Israel",
["ist"] = "Istriot",
["isu"] = "Isu",
["isv"] = "Interslavic",
["it"] = "Itali",
["itb"] = "Binongan Itneg",
["itc-pro"] = "Italik Purba",
["itc-psa"] = "Pra-Samnit",
["itd"] = "Tidung Selatan",
["ite"] = "Itene",
["iti"] = "Inlaod Itneg",
["itk"] = "Judeo-Itali",
["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"] = "Itzá",
["iu"] = "Inuktitut",
["ium"] = "Iu Mien",
["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"] = "Ingria",
["izi"] = "Izi-Ezaa-Ikwo-Mgbo",
["izr"] = "Izere",
["izz"] = "Izi",
["ja"] = "Jepun",
["jaa"] = "Jamamadí",
["jab"] = "Hyam",
["jac"] = "Jakaltek",
["jad"] = "Jahanka",
["jae"] = "Jabem",
["jaf"] = "Jara",
["jah"] = "Jah Hut",
["jaj"] = "Zazao",
["jak"] = "Jakun",
["jal"] = "Yalahatan",
["jam"] = "Kreol Jamaica",
["jan"] = "Janday",
["jao"] = "Yanyuwa",
["jaq"] = "Yaqay",
["jas"] = "New Caledonian Javanese",
["jat"] = "Jakati",
["jau"] = "Yaur",
["jax"] = "Melayu Jambi",
["jay"] = "Yan-nhangu",
["jaz"] = "Jawe",
["jbj"] = "Arandai",
["jbk"] = "Barikewa",
["jbn"] = "Nefusa",
["jbo"] = "Lojban",
["jbr"] = "Jofotek-Bromnya",
["jbt"] = "Jabutí",
["jbu"] = "Jukun Takum",
["jbw"] = "Yawijibaya",
["jcs"] = "Bahasa Isyarat Negara Jamaica",
["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"] = "Bahasa Isyarat Jhankot",
["jia"] = "Jina",
["jib"] = "Jibu",
["jic"] = "Tol",
["jid"] = "Bu",
["jie"] = "Jilbe",
["jig"] = "Jingulu",
["jih"] = "Shangzhai",
["jii"] = "Jiiddu",
["jil"] = "Jilim",
["jim"] = "Jimjimen",
["jio"] = "Jiamao",
["jiq"] = "Khroskyabs",
["jit"] = "Jita",
["jiu"] = "Youle Jino",
["jiv"] = "Shuar",
["jiy"] = "Buyuan Jino",
["jje"] = "Jeju",
["jjr"] = "Zhár",
["jka"] = "Kaera",
["jko"] = "Kubo",
["jkr"] = "Koro (India)",
["jku"] = "Labir",
["jle"] = "Ngile",
["jls"] = "Bahasa Isyarat Jamaica",
["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"] = "Bahasa Isyarat Jordan",
["jow"] = "Jowulu",
["jpr"] = "Judeo-Persian",
["jpx-hcj"] = "Hachijō",
["jpx-pro"] = "Jepunik Purba",
["jpx-ryu-pro"] = "Ryukyu Purba",
["jqr"] = "Jaqaru",
["jra"] = "Jarai",
["jrr"] = "Jiru",
["jru"] = "Japrería",
["jsl"] = "Bahasa Isyarat Jepun",
["jua"] = "Júma",
["jub"] = "Wannu",
["juc"] = "Jurchen",
["jud"] = "Worodougou",
["juh"] = "Hone",
["jui"] = "Ngadjuri",
["juk"] = "Wapan",
["jul"] = "Jirel",
["jum"] = "Jumjum",
["jun"] = "Juang",
["juo"] = "Jiba",
["jup"] = "Hupdë",
["jur"] = "Jurúna",
["jus"] = "Bahasa Isyarat Jumla",
["jut"] = "Jutish",
["juu"] = "Ju",
["juw"] = "Wãpha",
["juy"] = "Juray",
["jv"] = "Jawa",
["jvd"] = "Javindo",
["jvn"] = "Jawa Caribbean",
["jwi"] = "Jwira-Pepesa",
["jyy"] = "Jaya",
["ka"] = "Georgia",
["kaa"] = "Karakalpak",
["kab"] = "Kabyle",
["kac"] = "Jingpho",
["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"] = "Karen Purba",
["kaw"] = "Jawa Kuno",
["kax"] = "Kao",
["kay"] = "Kamayurá",
["kba"] = "Kalarko",
["kbb"] = "Kaxuyana",
["kbc"] = "Kadiwéu",
["kbd"] = "Kabardia",
["kbe"] = "Kanju",
["kbh"] = "Camsá",
["kbi"] = "Kaptiau",
["kbj"] = "Kari",
["kbk"] = "Grass Koiari",
["kbm"] = "Iwal",
["kbn"] = "Kare (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"] = "Khanty Timur",
["kca-nor"] = "Khanty Utara",
["kca-pro"] = "Khanty Purba",
["kca-sou"] = "Khanty Selatan",
["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"] = "Numee",
["kdl"] = "Tsikimba",
["kdm"] = "Kagoma",
["kdn"] = "Kunda",
["kdp"] = "Kaningdon-Nindem",
["kdq"] = "Koch",
["kdr"] = "Karaim",
["kdt"] = "Kuy",
["kdu"] = "Kadaru",
["kdv"] = "Kado",
["kdw"] = "Koneraw",
["kdx"] = "Kam",
["kdy"] = "Keder",
["kdz"] = "Kwaja",
["kea"] = "Kabuverdianu",
["keb"] = "Kélé",
["kec"] = "Keiga",
["ked"] = "Kerewe",
["kee"] = "Keres Timur",
["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 (Afrika Barat)",
["kfp"] = "Korwa",
["kfq"] = "Korku",
["kfr"] = "Kachchi",
["kfs"] = "Bilaspuri",
["kft"] = "Kanjari",
["kfu"] = "Katkari",
["kfv"] = "Kurmukar",
["kfw"] = "Kharam Naga",
["kfx"] = "Kullu Pahari",
["kfy"] = "Kumaoni",
["kfz"] = "Koromfé",
["kg"] = "Kongo",
["kga"] = "Koyaga",
["kgb"] = "Kawe",
["kgd"] = "Kataang",
["kge"] = "Komering",
["kgf"] = "Kube",
["kgg"] = "Kusunda",
["kgi"] = "Selangor Sign Language",
["kgj"] = "Gamale Kham",
["kgk"] = "Kaiwá",
["kgl"] = "Kunggari",
["kgm"] = "Karipúna",
["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"] = "Khasi",
["khb"] = "Lü",
["khc"] = "Tukang Besi Utara",
["khd"] = "Bädi Kanum",
["khe"] = "Korowai",
["khf"] = "Khuen",
["khh"] = "Kehu",
["khi-kho-pro"] = "Khoe Purba",
["khi-kun"] = "ǃKung",
["khj"] = "Kuturmi",
["khl"] = "Lusi",
["khn"] = "Khandeshi",
["kho"] = "Khotan",
["khp"] = "Kapauri",
["khq"] = "Koyra Chiini",
["khr"] = "Kharia",
["khs"] = "Kasua",
["kht"] = "Khamti",
["khu"] = "Nkhumbi",
["khv"] = "Khvarshi",
["khw"] = "Khowar",
["khx"] = "Kanu",
["khy"] = "Ekele",
["khz"] = "Keapara",
["ki"] = "Kikuyu",
["kia"] = "Kim",
["kib"] = "Koalib",
["kic"] = "Kickapoo",
["kid"] = "Koshin",
["kie"] = "Kibet",
["kif"] = "Kham Parbate Timur",
["kig"] = "Kimaama",
["kih"] = "Kilmeri",
["kii"] = "Kitsai",
["kij"] = "Kilivila",
["kil"] = "Kariya",
["kim"] = "Tofa",
["kio"] = "Kiowa",
["kip"] = "Sheshi Kham",
["kiq"] = "Kosadle",
["kis"] = "Kis",
["kit"] = "Agob",
["kiv"] = "Kimbu",
["kiw"] = "Kiwai Timur Laut",
["kix"] = "Naga Khiamniungan",
["kiy"] = "Kirikiri",
["kiz"] = "Kisi",
["kj"] = "Kwanyama",
["kja"] = "Mlap",
["kjb"] = "Q'anjob'al",
["kjc"] = "Konjo Pesisir",
["kjd"] = "Kiwai Selatan",
["kje"] = "Kisar",
["kjg"] = "Khmu",
["kjh"] = "Khakas",
["kji"] = "Zabana",
["kjj"] = "Khinalug",
["kjk"] = "Highland Konjo",
["kjl"] = "Kham",
["kjm"] = "Kháng",
["kjn"] = "Kunjen",
["kjo"] = "Harijan Kinnauri",
["kjp"] = "Pwo Timur",
["kjq"] = "Keres Barat",
["kjr"] = "Kurudu",
["kjs"] = "Kewa Timur",
["kjt"] = "Phrae Pwo",
["kju"] = "Kashaya",
["kjx"] = "Ramopa",
["kjy"] = "Erave",
["kjz"] = "Bumthangkha",
["kk"] = "Kazakh",
["kka"] = "Kakanda",
["kkb"] = "Kwerisa",
["kkc"] = "Odoodee",
["kkd"] = "Kinuku",
["kke"] = "Kakabe",
["kkf"] = "Monpa Kalaktang",
["kkg"] = "Kalinga Lembah Mabaka",
["kkh"] = "Khün",
["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"] = "Greenland",
["kla"] = "Klamath-Modoc",
["klb"] = "Kiliwa",
["klc"] = "Kolbila",
["kld"] = "Gamilaraay",
["kle"] = "Kulung",
["klf"] = "Kendeje",
["klg"] = "Kalagan Tagakaulu",
["klh"] = "Weliki",
["kli"] = "Kalumpang",
["klj"] = "Khalaj",
["klk"] = "Kono (Nigeria)",
["kll"] = "Kalagan Kagan",
["klm"] = "Kolom",
["kln"] = "Kalenjin",
["klo"] = "Kapya",
["klp"] = "Kamasa",
["klq"] = "Rumu",
["klr"] = "Khaling",
["kls"] = "Kalasha",
["klt"] = "Nukna",
["klu"] = "Klao",
["klv"] = "Maskelynes",
["klw"] = "Lindu",
["klx"] = "Koluwawa",
["kly"] = "Kalao",
["klz"] = "Kabola",
["km"] = "Khmer",
["kma"] = "Konni",
["kmb"] = "Kimbundu",
["kmc"] = "Kam Selatan",
["kmd"] = "Kalinga Madukayang",
["kme"] = "Bakole",
["kmf"] = "Kare (New Guinea)",
["kmg"] = "Kâte",
["kmh"] = "Kalam",
["kmi"] = "Kami",
["kmj"] = "Kumarbhag Paharia",
["kmk"] = "Kalinga Limos",
["kml"] = "Kalinga Tanudan",
["kmm"] = "Kom (India)",
["kmn"] = "Awtuw",
["kmo"] = "Kwoma",
["kmp"] = "Gimme",
["kmq"] = "Kwama",
["kmr"] = "Kurdi Utara",
["kms"] = "Kamasau",
["kmt"] = "Kemtuik",
["kmu"] = "Kanite",
["kmv"] = "Perancis Kreol Karipúna",
["kmw"] = "Kumu",
["kmx"] = "Waboda",
["kmy"] = "Koma",
["kmz"] = "Turki Khorasan",
["kn"] = "Kannada",
["kna"] = "Kanakuru",
["knb"] = "Kalinga Lubuagan",
["knd"] = "Konda",
["kne"] = "Kankanaey",
["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"] = "Salako",
["kny"] = "Kanyok",
["knz"] = "Kalamsé",
["ko"] = "Korea",
["ko-ear"] = "Korea Moden Awal",
["koa"] = "Konomala",
["koc"] = "Kpati",
["kod"] = "Kodi",
["koe"] = "Kacipo-Balesi",
["kof"] = "Kubi",
["kog"] = "Cogui",
["koh"] = "Koyo",
["koi"] = "Komi-Permyak",
["kok"] = "Konkani",
["kol"] = "Kol (New Guinea)",
["koo"] = "Konzo",
["kop"] = "Waube",
["koq"] = "Kota (Gabon)",
["kos"] = "Kosrae",
["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"] = "Koho",
["kpn"] = "Kepkiriwát",
["kpo"] = "Ikposo",
["kpp"] = "Karen Paku",
["kpq"] = "Korupun-Sela",
["kpr"] = "Korafe-Yegha",
["kps"] = "Tehit",
["kpt"] = "Karata",
["kpu"] = "Kafoa",
["kpv"] = "Komi-Zyrian",
["kpw"] = "Kobon",
["kpx"] = "Koiari Gunung",
["kpy"] = "Koryak",
["kpz"] = "Kupsabiny",
["kqa"] = "Mum",
["kqb"] = "Kovai",
["kqc"] = "Doromu-Koki",
["kqd"] = "Koy Sanjaq Surat",
["kqe"] = "Kalagan",
["kqf"] = "Kakabai",
["kqg"] = "Khe",
["kqh"] = "Kisankasa",
["kqi"] = "Koitabu",
["kqj"] = "Koromira",
["kqk"] = "Gbe Kotafon",
["kql"] = "Kyenele",
["kqm"] = "Khisa",
["kqn"] = "Kaonde",
["kqo"] = "Krahn Timur",
["kqp"] = "Kimré",
["kqq"] = "Krenak",
["kqr"] = "Kimaragang",
["kqs"] = "Kissi Utara",
["kqt"] = "Kadazan Sungai Klias",
["kqu"] = "Seroa",
["kqv"] = "Okolod",
["kqw"] = "Kandas",
["kqx"] = "Mser",
["kqy"] = "Koorete",
["kqz"] = "Korana",
["kr"] = "Kanuri",
["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"] = "Karelia",
["krm"] = "Krim",
["krn"] = "Sapo",
["kro-pro"] = "Kru Purba",
["krp"] = "Korop",
["krr"] = "Kru'ng",
["krs"] = "Kresh",
["kru"] = "Kurukh",
["krv"] = "Kavet",
["krw"] = "Krahn Barat",
["krx"] = "Karon",
["kry"] = "Kryts",
["krz"] = "Sota Kanum",
["ks"] = "Kashmir",
["ksa"] = "Shuwa-Zamani",
["ksb"] = "Shambala",
["ksc"] = "Kalinga Selatan",
["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"] = "Kissi Selatan",
["kst"] = "Winyé",
["ksu"] = "Khamyang",
["ksv"] = "Kusu",
["ksw"] = "Karen S'gaw",
["ksx"] = "Kedang",
["ksy"] = "Kharia Thar",
["ksz"] = "Kodaku",
["kta"] = "Katua",
["ktb"] = "Kambaata",
["ktc"] = "Kholok",
["ktd"] = "Kokata",
["ktf"] = "Kwami",
["ktg"] = "Kalkatungu",
["kth"] = "Karanga",
["kti"] = "Muyu Utara",
["ktj"] = "Plapo Krumen",
["ktk"] = "Kaniet",
["ktl"] = "Koroshi",
["ktm"] = "Kurti",
["ktn"] = "Karitiâna",
["kto"] = "Kuot",
["ktp"] = "Kaduo",
["ktq"] = "Katabaga",
["ktr"] = "Tinagas Kota Marudu",
["kts"] = "Muyu Selatan",
["ktt"] = "Ketum",
["ktu"] = "Kituba",
["ktv"] = "Katu Timur",
["ktw"] = "Kato",
["ktx"] = "Kaxararí",
["kty"] = "Kango",
["ktz"] = "Juǀ'hoan",
["ku-pro"] = "Kurdi Purba",
["kub"] = "Kutep",
["kuc"] = "Kwinsu",
["kud"] = "Auhelawa",
["kue"] = "Kuman",
["kuf"] = "Katu Barat",
["kug"] = "Kupa",
["kuh"] = "Kushi",
["kui"] = "Kuikúro",
["kuj"] = "Kuria",
["kuk"] = "Kepo'",
["kul"] = "Kulere",
["kum"] = "Kumyk",
["kun"] = "Kunama",
["kuo"] = "Kumukio",
["kup"] = "Kunimaipa",
["kuq"] = "Karipuna",
["kus"] = "Kusaal",
["kut"] = "Kutenai",
["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"] = "Bahasa Isyarat Korea",
["kvl"] = "Karen Brek",
["kvm"] = "Kendem",
["kvn"] = "Kuna Sempadan",
["kvo"] = "Dobel",
["kvp"] = "Kompane",
["kvq"] = "Karen Geba",
["kvr"] = "Kerinci",
["kvt"] = "Karen Lahta",
["kvu"] = "Karen Yinbaw",
["kvv"] = "Kola",
["kvw"] = "Wersing",
["kvx"] = "Parkari Koli",
["kvy"] = "Karen Yintale",
["kvz"] = "Tsakwambo",
["kw"] = "Cornish",
["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"] = "Khonso",
["kxd"] = "Melayu Brunei",
["kxe"] = "Kakihum",
["kxf"] = "Karen Manumanaw",
["kxh"] = "Karo",
["kxi"] = "Murut Keningau",
["kxj"] = "Kulfa",
["kxk"] = "Karen Zayein",
["kxl"] = "Nepal Kurux",
["kxm"] = "Khmer Utara",
["kxn"] = "Kanowit",
["kxo"] = "Kanoé",
["kxp"] = "Wadiyara Koli",
["kxq"] = "Smärky Kanum",
["kxr"] = "Koro (New Guinea)",
["kxs"] = "Kangjia",
["kxt"] = "Koiwat",
["kxu"] = "Kui (India)",
["kxv"] = "Kuvi",
["kxw"] = "Konai",
["kxx"] = "Likuba",
["kxy"] = "Kayong",
["kxz"] = "Kerewo",
["ky"] = "Kyrgyz",
["kya"] = "Kwaya",
["kyb"] = "Kalinga Butbut",
["kyc"] = "Kyaka",
["kyd"] = "Karey",
["kye"] = "Krache",
["kyf"] = "Kouya",
["kyg"] = "Keyagana",
["kyh"] = "Karok",
["kyi"] = "Kiput",
["kyj"] = "Karao",
["kyk"] = "Kamayo",
["kyl"] = "Kalapuya",
["kym"] = "Kpatili",
["kyn"] = "Karolanos",
["kyo"] = "Kelon",
["kyp"] = "Kang",
["kyq"] = "Kenga",
["kyr"] = "Kuruáya",
["kys"] = "Kayan Baram",
["kyt"] = "Kayagar",
["kyu"] = "Kayah Barat",
["kyv"] = "Kayort",
["kyw"] = "Kudmali",
["kyx"] = "Rapoisi",
["kyy"] = "Kambaira",
["kyz"] = "Kayabí",
["kza"] = "Karaboro Barat",
["kzb"] = "Kaibobo",
["kzc"] = "Bondoukou Kulango",
["kzd"] = "Kadai",
["kze"] = "Kosena",
["kzf"] = "Da'a Kaili",
["kzg"] = "Kikai",
["kzh"] = "Dongolawi",
["kzi"] = "Kelabit",
["kzj"] = "Kadazan",
["kzk"] = "Kazukuru",
["kzl"] = "Kayeli",
["kzm"] = "Kais",
["kzn"] = "Kokola",
["kzo"] = "Kaningi",
["kzp"] = "Kaidipang",
["kzq"] = "Kaike",
["kzr"] = "Karang",
["kzs"] = "Dusun Sugut",
["kzt"] = "Dusun Tambunan",
["kzu"] = "Kayupulau",
["kzv"] = "Komyandaret",
["kzw"] = "Kariri",
["kzx"] = "Kamarian",
["kzy"] = "Kango-Sua",
["kzz"] = "Kalabra",
["la"] = "Latin",
["laa"] = "Subanun Lapuyan",
["lab"] = "Linear A",
["lac"] = "Lacandon",
["lad"] = "Ladino",
["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"] = "Luxembourg",
["lbb"] = "Label",
["lbc"] = "Lakkia",
["lbe"] = "Lak",
["lbf"] = "Tinani",
["lbg"] = "Laopang",
["lbi"] = "La'bi",
["lbj"] = "Ladakhi",
["lbk"] = "Bontoc Tengah",
["lbl"] = "Bikol Libon",
["lbm"] = "Lodhi",
["lbn"] = "Lamet",
["lbo"] = "Laven",
["lbq"] = "Wampar",
["lbr"] = "Lorung Utara",
["lbs"] = "Bahasa Isyarat Libya",
["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"] = "Lawa Barat",
["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"] = "Lenca Honduras",
["leo"] = "Leti (Cameroon)",
["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"] = "Lezgi",
["lfa"] = "Lefa",
["lfn"] = "Lingua Franca Nova",
["lg"] = "Luganda",
["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"] = "Limburg",
["lia"] = "Limba Barat-Tengah",
["lib"] = "Likum",
["lic"] = "Hlai",
["lid"] = "Nyindrou",
["lie"] = "Likila",
["lif"] = "Limbu",
["lig"] = "Ligbi",
["lih"] = "Lihir",
["lii"] = "Lingkhim",
["lij"] = "Ligurian",
["lik"] = "Lika",
["lil"] = "Lillooet",
["lio"] = "Liki",
["lip"] = "Sekpele",
["liq"] = "Libido",
["lir"] = "Liberian Kreyol",
["lis"] = "Lisu",
["liu"] = "Logorik",
["liv"] = "Livonian",
["liw"] = "Col",
["lix"] = "Liabuku",
["liy"] = "Banda-Bambari",
["liz"] = "Libinza",
["lja"] = "Golpa",
["lje"] = "Rampi",
["lji"] = "Laiyolo",
["ljl"] = "Li'o",
["ljp"] = "Lampung Api",
["ljw"] = "Yirandali",
["ljx"] = "Yuru",
["lka"] = "Lakalei",
["lkb"] = "Kabras",
["lkc"] = "Kucong",
["lkd"] = "Lakondê",
["lke"] = "Kenyi",
["lkh"] = "Lakha",
["lki"] = "Laki",
["lkj"] = "Remun",
["lkl"] = "Laeko-Libuat",
["lkm"] = "Kalaamaya",
["lkn"] = "Lakon",
["lko"] = "Khayo",
["lkr"] = "Päri",
["lks"] = "Kisa",
["lkt"] = "Lakota",
["lku"] = "Kungkari",
["lky"] = "Lokoya",
["lla"] = "Lala-Roba",
["llb"] = "Lolo",
["llc"] = "Lele (Guinea)",
["lld"] = "Ladin",
["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"] = "Efate Utara",
["llq"] = "Lolak",
["lls"] = "Lithuanian Sign Language",
["llu"] = "Lau",
["llx"] = "Lauan",
["lma"] = "Limba Timur",
["lmb"] = "Merei",
["lmc"] = "Limilngan",
["lmd"] = "Lumun",
["lme"] = "Pévé",
["lmf"] = "Lembata Selatan",
["lmg"] = "Lamogai",
["lmh"] = "Lambichhong",
["lmi"] = "Lombi",
["lmj"] = "Lembata Barat",
["lmk"] = "Lamkang",
["lml"] = "Raga",
["lmn"] = "Lambadi",
["lmo"] = "Lombard",
["lmp"] = "Limbum",
["lmq"] = "Lamatuka",
["lmr"] = "Lamalera",
["lmu"] = "Lamenu",
["lmv"] = "Lomaiviti",
["lmw"] = "Lake Miwok",
["lmx"] = "Laimbue",
["lmy"] = "Laboya",
["lmz"] = "Lumbee",
["ln"] = "Lingala",
["lna"] = "Langbashe",
["lnb"] = "Mbalanhu",
["lnd"] = "Lun Bawang",
["lnh"] = "Lanoh",
["lni"] = "Daantanai'",
["lnj"] = "Linngithigh",
["lnl"] = "Banda Tengah Selatan",
["lnm"] = "Langam",
["lnn"] = "Lorediakarkar",
["lno"] = "Lango (Sudan)",
["lns"] = "Lamnso'",
["lnu"] = "Longuda",
["lnw"] = "Lanima",
["lo"] = "Lao",
["loa"] = "Loloda",
["lob"] = "Lobi",
["loc"] = "Inonhan",
["lod"] = "Berawan",
["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"] = "Kreol Louisiana",
["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"] = "Lur Utara",
["lre"] = "Laurentia",
["lrg"] = "Laragia",
["lri"] = "Marachi",
["lrk"] = "Loarki",
["lrl"] = "Larestani",
["lrm"] = "Marama",
["lrn"] = "Lorang",
["lro"] = "Laro",
["lrr"] = "Lorung Selatan",
["lrt"] = "Melayu Larantuka",
["lrv"] = "Larevat",
["lrz"] = "Lemerig",
["lsa"] = "Lasgerdi",
["lsd"] = "Lishana Deni",
["lse"] = "Lusengo",
["lsh"] = "Lish",
["lsi"] = "Lashi",
["lsl"] = "Bahasa Isyarat Latvia",
["lsm"] = "Saamia",
["lso"] = "Bahasa Isyarat Lao",
["lsp"] = "Bahaaa Isyarat Panama",
["lsr"] = "Aruop",
["lss"] = "Lasi",
["lst"] = "Bahasa Isyarat Trinidad dan Tobago",
["lsy"] = "Bahaaa Isyarat Mauritius",
["lt"] = "Lithuania",
["ltc"] = "Cina Pertengahan",
["ltg"] = "Latgalia",
["lti"] = "Leti (Indonesia)",
["ltn"] = "Latundê",
["lto"] = "Olutsotso",
["lts"] = "Lutachoni",
["ltu"] = "Latu",
["lu"] = "Luba-Katanga",
["lua"] = "Luba-Kasai",
["luc"] = "Aringa",
["lud"] = "Ludian",
["lue"] = "Luvale",
["luf"] = "Laua",
["lui"] = "Luiseño",
["luj"] = "Luna",
["luk"] = "Lunanakha",
["lul"] = "Olu'bo",
["lum"] = "Luimbi",
["lun"] = "Lunda",
["luo"] = "Luo",
["lup"] = "Lumbu",
["luq"] = "Lucumí",
["lur"] = "Laura",
["lus"] = "Mizo",
["lut"] = "Lushootseed",
["luu"] = "Lumba-Yakkha",
["luv"] = "Luwati",
["luy"] = "Luhya",
["luz"] = "Lur Selatan",
["lv"] = "Latvia",
["lva"] = "Maku'a",
["lvi"] = "Lawi",
["lvk"] = "Lavukaleve",
["lvl"] = "Lwel",
["lvu"] = "Levuka",
["lwa"] = "Lwalu",
["lwe"] = "Lewo Eleng",
["lwg"] = "Wanga",
["lwh"] = "Lachi Putih",
["lwl"] = "Lawa Timur",
["lwm"] = "Laomian",
["lwo"] = "Luwo",
["lws"] = "Malawian Sign Language",
["lwt"] = "Lewotobi",
["lwu"] = "Lawu",
["lww"] = "Lewo",
["lya"] = "Layakha",
["lyg"] = "Lyngngam",
["lyn"] = "Luyana",
["lzh"] = "Literary Chinese",
["lzl"] = "Litzlitz",
["lzn"] = "Leinong Naga",
["lzz"] = "Laz",
["maa"] = "Mazatec San Jerónimo Tecóatl",
["mab"] = "Mixtec Yutanduchi",
["mad"] = "Madura",
["mae"] = "Bo-Rukul",
["maf"] = "Mafa",
["mag"] = "Magahi",
["mai"] = "Maithili",
["maj"] = "Mazatec Jalapa de Díaz",
["mak"] = "Makassar",
["mam"] = "Mam",
["man"] = "Mandingo",
["map-ata-pro"] = "Atayalik Purba",
["map-bms"] = "Banyumasan",
["map-pro"] = "Austronesia Purba",
["maq"] = "Mazatec Chiquihuitlán",
["mas"] = "Maasai",
["mat"] = "Matlatzinca",
["mau"] = "Mazatec Huautla",
["mav"] = "Sateré-Mawé",
["maw"] = "Mampruli",
["max"] = "Melayu Maluku Utara",
["maz"] = "Mazahua Tengah",
["mba"] = "Higaonon",
["mbb"] = "Manobo Bukidnon Barat",
["mbc"] = "Macushi",
["mbd"] = "Manobo Dibabawon",
["mbe"] = "Molale",
["mbf"] = "Melayu Baba",
["mbh"] = "Mangseng",
["mbi"] = "Manobo Ilianen",
["mbj"] = "Nadëb",
["mbk"] = "Malol",
["mbl"] = "Maxakalí",
["mbm"] = "Ombamba",
["mbn"] = "Macaguán",
["mbo"] = "Mbo (Cameroon)",
["mbp"] = "Wiwa",
["mbq"] = "Maisin",
["mbr"] = "Nukak Makú",
["mbs"] = "Manobo Sarangani",
["mbt"] = "Manobo Matigsalug",
["mbu"] = "Mbula-Bwazza",
["mbv"] = "Mbulungish",
["mbw"] = "Maring",
["mbx"] = "Mari (Sepik)",
["mby"] = "Memoni",
["mbz"] = "Mixtec Amoltepec",
["mca"] = "Maca",
["mcb"] = "Machiguenga",
["mcc"] = "Bitur",
["mcd"] = "Sharanahua",
["mce"] = "Mixtec Itundujia",
["mcf"] = "Matsés",
["mcg"] = "Mapoyo",
["mch"] = "Ye'kwana",
["mci"] = "Mese",
["mcj"] = "Mvanip",
["mck"] = "Mbunda",
["mcl"] = "Macaguaje",
["mcm"] = "Kristang",
["mcn"] = "Masana",
["mco"] = "Mixe Coatlán",
["mcp"] = "Makaa",
["mcq"] = "Ese",
["mcr"] = "Menya",
["mcs"] = "Mambai",
["mcu"] = "Mambila Cameroon",
["mcw"] = "Mawa",
["mcx"] = "Mpiemo",
["mcy"] = "Watut Selatan",
["mcz"] = "Mawan",
["mda"] = "Mada (Nigeria)",
["mdb"] = "Morigi",
["mdc"] = "Male",
["mdd"] = "Mbum",
["mde"] = "Mabang Bura",
["mdf"] = "Moksha",
["mdg"] = "Massalat",
["mdh"] = "Maguindanao",
["mdi"] = "Mamvu",
["mdj"] = "Mangbetu",
["mdk"] = "Mangbutu",
["mdl"] = "Bahasa Isyarat Malta",
["mdm"] = "Mayogo",
["mdn"] = "Mbati",
["mdp"] = "Mbala",
["mdq"] = "Mbole",
["mdr"] = "Mandar",
["mds"] = "Maria",
["mdt"] = "Mbere",
["mdu"] = "Mboko",
["mdv"] = "Mixtec Santa Lucía Monteverde",
["mdw"] = "Mbosi",
["mdx"] = "Dizin",
["mdy"] = "Maale",
["mdz"] = "Suruí Do Pará",
["mea"] = "Menka",
["meb"] = "Ikobi-Mena",
["mec"] = "Mara",
["med"] = "Melpa",
["mee"] = "Mengen",
["mef"] = "Megam",
["meh"] = "Mixtec Tlaxiaco Barat Daya",
["mei"] = "Midob",
["mej"] = "Meyah",
["mek"] = "Mekeo",
["mel"] = "Melanau Tengah",
["mem"] = "Mangala",
["men"] = "Mende (Sierra Leone)",
["meo"] = "Melayu Kedah",
["mep"] = "Miriwoong",
["meq"] = "Merey",
["mer"] = "Meru",
["mes"] = "Masmaje",
["met"] = "Mato",
["meu"] = "Motu",
["mev"] = "Mano",
["mew"] = "Maaka",
["mey"] = "Arab Hassaniyah",
["mez"] = "Menominee",
["mfa"] = "Melayu Patani",
["mfb"] = "Bangka",
["mfc"] = "Mba",
["mfd"] = "Mendankwe-Nkwen",
["mfe"] = "Kreol Mauritius",
["mff"] = "Naki",
["mfg"] = "Mixifore",
["mfh"] = "Matal",
["mfi"] = "Wandala",
["mfj"] = "Mefele",
["mfk"] = "Mofu Utara",
["mfl"] = "Putai",
["mfm"] = "Marghi Selatan",
["mfn"] = "Mbembe Cross River",
["mfo"] = "Mbe",
["mfp"] = "Melayu Makassar",
["mfq"] = "Moba",
["mfr"] = "Marrithiyel",
["mfs"] = "Bahasa Isyarat Mexico",
["mft"] = "Mokerang",
["mfu"] = "Mbwela",
["mfv"] = "Mandjak",
["mfw"] = "Mulaha",
["mfx"] = "Melo",
["mfy"] = "Mayo",
["mfz"] = "Mabaan",
["mg"] = "Malagasi",
["mga"] = "Ireland Pertengahan",
["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"] = "Magar Timur",
["mgq"] = "Malila",
["mgr"] = "Mambwe-Lungu",
["mgs"] = "Manda (Tanzania)",
["mgt"] = "Mwakai",
["mgu"] = "Mailu",
["mgv"] = "Matengo",
["mgw"] = "Matumbi",
["mgy"] = "Mbunga",
["mgz"] = "Mbugwe",
["mh"] = "Marshall",
["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"] = "Mòcheno",
["mho"] = "Mashi",
["mhp"] = "Melayu Bali",
["mhq"] = "Mandan",
["mhr"] = "Mari Timur",
["mhs"] = "Buru (Indonesia)",
["mht"] = "Mandahuaca",
["mhu"] = "Taraon",
["mhw"] = "Mbukushu",
["mhx"] = "Lhao Vo",
["mhy"] = "Ma'anyan",
["mhz"] = "Mor (Austronesia)",
["mi"] = "Māori",
["mia"] = "Miami",
["mib"] = "Mixtec Atatláhuca",
["mic"] = "Mi'kmaq",
["mid"] = "Mandaia",
["mie"] = "Mixtec Ocotepec",
["mif"] = "Mofu-Gudur",
["mig"] = "Mixtec San Miguel el Grande",
["mih"] = "Mixtec Chayuco",
["mii"] = "Mixtec Chigmecatitlán",
["mij"] = "Mungbam",
["mik"] = "Mikasuki",
["mil"] = "Mixtec Peñoles",
["mim"] = "Mixtec Alacatlatzala",
["min"] = "Minangkabau",
["mio"] = "Mixtec Pinotepa Nacional",
["mip"] = "Mixtec Apasco-Apoala",
["miq"] = "Miskito",
["mir"] = "Mixe Tanah Genting",
["mis-hkl"] = "Hokkien Peranakan Kelantan",
["mis-idn"] = "Idiom Neutral",
["mis-isa"] = "Isauria",
["mis-jie"] = "Jie",
["mis-jzh"] = "Jizhao",
["mis-kas"] = "Kassite",
["mis-mmd"] = "Mimi Decorse",
["mis-mmn"] = "Mimi Nachtigal",
["mis-phi"] = "Filistin",
["mis-rou"] = "Rouran",
["mis-tdl"] = "Turdulia",
["mis-tdt"] = "Turdetania",
["mis-tnw"] = "Tangwang",
["mis-tuh"] = "Tuyuhun",
["mis-tuo"] = "Tuoba",
["mis-wuh"] = "Wuhuan",
["mis-xbi"] = "Xianbei",
["mis-xnu"] = "Xiongnu",
["mit"] = "Mixtec Puebla Selatan",
["miu"] = "Mixtec Cacaloxtepec",
["miw"] = "Akoye",
["mix"] = "Mixtec Mixtepec",
["miy"] = "Mixtec Ayutla",
["miz"] = "Mixtec Coatzospan",
["mjb"] = "Makalero",
["mjc"] = "Mixtec San Juan Colorado",
["mjd"] = "Maidu Barat Laut",
["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"] = "Paharia Sawriya",
["mju"] = "Manna-Dora",
["mjv"] = "Mannan",
["mjw"] = "Karbi",
["mjx"] = "Mahali",
["mjy"] = "Mahican",
["mjz"] = "Manya",
["mk"] = "Macedonia",
["mka"] = "Mbre",
["mkb"] = "Mal Paharia",
["mkc"] = "Siliput",
["mke"] = "Mawchi",
["mkf"] = "Miya",
["mkg"] = "Mak (China)",
["mkh-asl-pro"] = "Asli Purba",
["mkh-ban-pro"] = "Bahnar Purba",
["mkh-kat-pro"] = "Katuik Purba",
["mkh-khm-pro"] = "Khmuik Purba",
["mkh-kmr-pro"] = "Khmer Purba",
["mkh-mmn"] = "Mon Pertengahan",
["mkh-mnc-pro"] = "Monik Purba",
["mkh-mvi"] = "Vietnam Pertengahan",
["mkh-pal-pro"] = "Palaungik Purba",
["mkh-pea-pro"] = "Pearik Purba",
["mkh-pkn-pro"] = "Pakanik Purba",
["mkh-pro"] = "Mon-Khmer Purba",
["mkh-vie-pro"] = "Vietik Purba",
["mki"] = "Dhatki",
["mkj"] = "Mokil",
["mkk"] = "Byep",
["mkl"] = "Mokole",
["mkm"] = "Moklen",
["mkn"] = "Melayu Kupang",
["mko"] = "Mingang Doso",
["mkp"] = "Moikodi",
["mkq"] = "Miwok Teluk",
["mkr"] = "Malas",
["mks"] = "Mixtec Silacayoapan",
["mkt"] = "Vamale",
["mku"] = "Maninka Konyanka",
["mkv"] = "Mav̋ea",
["mkx"] = "Manobo Cinamiguin",
["mky"] = "Taba",
["mkz"] = "Makasae",
["ml"] = "Malayalam",
["mla"] = "Tamambo",
["mlb"] = "Mbule",
["mlc"] = "Caolan",
["mle"] = "Manambu",
["mlf"] = "Mal",
["mlh"] = "Mape",
["mli"] = "Malimpung",
["mlj"] = "Miltu",
["mlk"] = "Ilwana",
["mll"] = "Teluk Malua",
["mlm"] = "Mulam",
["mln"] = "Malango",
["mlo"] = "Mlomp",
["mlp"] = "Bargam",
["mlq"] = "Maninkakan Barat",
["mlr"] = "Vame",
["mls"] = "Masalit",
["mlu"] = "To'abaita",
["mlv"] = "Mwotlap",
["mlw"] = "Moloko",
["mlx"] = "Malfaxal",
["mlz"] = "Malaynon",
["mma"] = "Mama",
["mmb"] = "Momina",
["mmc"] = "Mazahua Michoacán",
["mmd"] = "Maonan",
["mme"] = "Tirax",
["mmf"] = "Mundat",
["mmg"] = "Ambrym Utara",
["mmh"] = "Mehináku",
["mmi"] = "Hember Avu",
["mmj"] = "Majhwar",
["mmk"] = "Mukha-Dora",
["mml"] = "Man Met",
["mmm"] = "Maii",
["mmn"] = "Mamanwa",
["mmo"] = "Mangga Buang",
["mmp"] = "Musan",
["mmq"] = "Aisi",
["mmr"] = "Miao Xiangxi Barat",
["mmt"] = "Malalamai",
["mmu"] = "Mmaala",
["mmv"] = "Miriti",
["mmw"] = "Emae",
["mmx"] = "Madak",
["mmy"] = "Migaama",
["mmz"] = "Mabaale",
["mn"] = "Mongolia",
["mna"] = "Mbula",
["mnb"] = "Muna",
["mnc"] = "Manchu",
["mnd"] = "Mondé",
["mne"] = "Naba",
["mnf"] = "Mundani",
["mng"] = "Mnong Timur",
["mnh"] = "Mono (Congo)",
["mni"] = "Manipuri",
["mnj"] = "Munji",
["mnk"] = "Mandinka",
["mnl"] = "Tiale",
["mnm"] = "Mapena",
["mnn"] = "Mnong Selatan",
["mnp"] = "Min Utara",
["mnq"] = "Minriq",
["mnr"] = "Mono (California)",
["mns-cen"] = "Mansi Tengah",
["mns-nor"] = "Mansi Utara",
["mns-pro"] = "Mansi Purba",
["mns-sou"] = "Mansi Selatan",
["mnt"] = "Maykulan",
["mnu"] = "Mer",
["mnv"] = "Rennell",
["mnw"] = "Mon",
["mnw-tha"] = "Mon Thailand",
["mnx"] = "Sougb",
["mny"] = "Manyawa",
["mnz"] = "Moni",
["moa"] = "Mwan",
["moc"] = "Mocoví",
["mod"] = "Mobilia",
["moe"] = "Montagnais",
["mog"] = "Mongondow",
["moh"] = "Mohawk",
["moi"] = "Mboi",
["moj"] = "Monzombo",
["mok"] = "Morori",
["mom"] = "Mangue",
["moo"] = "Monom",
["mop"] = "Maya Mopan",
["moq"] = "Mor (Papua)",
["mor"] = "Moro",
["mos"] = "Mossi",
["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"] = "Watut Tengah",
["mpm"] = "Mixtec Yosondúa",
["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"] = "Melayu Kutai Kota Bangun",
["mqh"] = "Mixtec Tlazoyaltepec",
["mqi"] = "Mariri",
["mqj"] = "Mamasa",
["mqk"] = "Manobo Rajah Kabunsuwan",
["mql"] = "Mbelime",
["mqm"] = "Marquesas Selatan",
["mqn"] = "Moronene",
["mqo"] = "Modole",
["mqp"] = "Manipa",
["mqq"] = "Minokok",
["mqr"] = "Mander",
["mqs"] = "Makian Barat",
["mqt"] = "Mok",
["mqu"] = "Mandari",
["mqv"] = "Mosimo",
["mqw"] = "Murupi",
["mqx"] = "Mamuju",
["mqy"] = "Manggarai",
["mqz"] = "Malasanga",
["mr"] = "Marathi",
["mra"] = "Mlabri",
["mrb"] = "Sungwadia",
["mrc"] = "Maricopa",
["mrd"] = "Magar Barat",
["mre"] = "Bahasa Isyarat Martha's Vineyard",
["mrf"] = "Elseng",
["mrg"] = "Mising",
["mrh"] = "Chin Mara",
["mrj"] = "Mari Barat",
["mrk"] = "Hmwaveke",
["mrl"] = "Mortlock",
["mrm"] = "Mwerlap",
["mrn"] = "Cheke Holo",
["mro"] = "Mru",
["mrp"] = "Morouas",
["mrq"] = "Marquesas Utara",
["mrr"] = "Maria Bukit",
["mrs"] = "Maragus",
["mrt"] = "Margi",
["mru"] = "Mono (Cameroon)",
["mrv"] = "Mangareva",
["mrw"] = "Maranao",
["mrx"] = "Dineor",
["mry"] = "Mandaya Karaga",
["mrz"] = "Marind",
["ms"] = "Melayu",
["msb"] = "Masbatenyo",
["msc"] = "Maninka Sankaran",
["msd"] = "Bahasa Isyarat Maya Yucatec",
["mse"] = "Musey",
["msf"] = "Mekwei",
["msg"] = "Moraid",
["msi"] = "Melayu Sabah",
["msj"] = "Ma",
["msk"] = "Mansaka",
["msl"] = "Molof",
["msm"] = "Manobo Agusan",
["msn"] = "Vurës",
["mso"] = "Mombum",
["msp"] = "Maritsauá",
["msq"] = "Caac",
["msr"] = "Bahasa Isyarat Mongolia",
["mss"] = "Masela Barat",
["msu"] = "Musom",
["msv"] = "Maslam",
["msw"] = "Mansoanka",
["msx"] = "Moresada",
["msy"] = "Aruamu",
["msz"] = "Momare",
["mt"] = "Malta",
["mta"] = "Manobo Cotabato",
["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"] = "Mixe Totontepec",
["mtp"] = "Wichí Lhamtés Nocten",
["mtq"] = "Muong",
["mtr"] = "Mewari",
["mts"] = "Yora",
["mtt"] = "Mota",
["mtu"] = "Mixtec Tututepec",
["mtv"] = "Asaro'o",
["mtw"] = "Magahat",
["mtx"] = "Mixtec Tidaá",
["mty"] = "Nabi",
["mua"] = "Mundang",
["mub"] = "Mubi",
["muc"] = "Mbu'",
["mud"] = "Aleut Mednyj",
["mue"] = "Media Lengua",
["mug"] = "Musgu",
["muh"] = "Mündü",
["mui"] = "Musi",
["muj"] = "Mabire",
["mul"] = "Translingual",
["mum"] = "Maiwala",
["mun-pro"] = "Munda Purba",
["muo"] = "Nyong",
["mup"] = "Malvi",
["muq"] = "Miao Xiangxi Timur",
["mur"] = "Murle",
["mus"] = "Creek",
["mut"] = "Muria Barat",
["muu"] = "Yaaku",
["muv"] = "Muthuvan",
["mux"] = "Bo-Ung",
["muy"] = "Muyang",
["muz"] = "Mursi",
["mva"] = "Manam",
["mvb"] = "Mattole",
["mvd"] = "Mamboru",
["mvg"] = "Mixtec Yucuañe",
["mvh"] = "Mire",
["mvi"] = "Miyako",
["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"] = "Kohistani Indus",
["mvz"] = "Mesqan",
["mwa"] = "Mwatebu",
["mwb"] = "Juwal",
["mwc"] = "Are",
["mwe"] = "Mwera",
["mwf"] = "Murrinh-Patha",
["mwg"] = "Aiklep",
["mwh"] = "Mouk-Aria",
["mwi"] = "Labo",
["mwk"] = "Maninkakan Kita",
["mwl"] = "Mirandese",
["mwm"] = "Sar",
["mwn"] = "Nyamwanga",
["mwo"] = "Sungwadaga",
["mwp"] = "Kala Lagaw Ya",
["mwq"] = "Mün Chin",
["mwr"] = "Marwari",
["mws"] = "Mwimbi-Muthambi",
["mwt"] = "Moken",
["mwu"] = "Mittu",
["mwv"] = "Mentawai",
["mww"] = "Hmong Putih",
["mwz"] = "Moingi",
["mxa"] = "Mixtec Oaxaca Barat Laut",
["mxb"] = "Mixtec Tezoatlán",
["mxd"] = "Modang",
["mxe"] = "Mele-Fila",
["mxf"] = "Malgbe",
["mxg"] = "Mbangala",
["mxh"] = "Mvuba",
["mxi"] = "Mozarab",
["mxj"] = "Miju",
["mxk"] = "Monumbo",
["mxl"] = "Maxi Gbe",
["mxm"] = "Meramera",
["mxn"] = "Moi (Indonesia)",
["mxo"] = "Mbowe",
["mxp"] = "Mixe Tlahuitoltepec",
["mxq"] = "Mixe Juquila",
["mxr"] = "Murik (Malaysia)",
["mxs"] = "Mixtec Huitepec",
["mxt"] = "Mixtec Jamiltepec",
["mxu"] = "Mada (Cameroon)",
["mxv"] = "Mixtec Metlatónoc",
["mxw"] = "Namo",
["mxx"] = "Mahou",
["mxy"] = "Mixtec Nochixtlán Tenggara",
["mxz"] = "Masela Tengah",
["my"] = "Burma",
["myb"] = "Mbay",
["myc"] = "Mayeka",
["mye"] = "Myene",
["myf"] = "Bambassi",
["myg"] = "Manta",
["myh"] = "Makah",
["myj"] = "Mangayat",
["myk"] = "Mamara",
["myl"] = "Moma",
["mym"] = "Me'en",
["myn-chl"] = "Ch'olti'",
["myn-pro"] = "Maya Purba",
["myo"] = "Anfillo",
["myp"] = "Pirahã",
["myr"] = "Muniche",
["mys"] = "Mesmes",
["myu"] = "Mundurukú",
["myv"] = "Erzya",
["myw"] = "Muyuw",
["myx"] = "Masaba",
["myy"] = "Macuna",
["myz"] = "Mandaia Klasik",
["mza"] = "Mixtec Santa María Zacatepec",
["mzb"] = "Berber Saharan Utara",
["mzc"] = "Bahasa Isyarat Madagascar",
["mzd"] = "Malimba",
["mze"] = "Morawa",
["mzg"] = "Bahasa Isyarat Monastik",
["mzh"] = "Wichí Lhamtés Güisnay",
["mzi"] = "Mazatec Ixcatlán",
["mzk"] = "Mambila Nigeria",
["mzl"] = "Mixe Mazatlán",
["mzm"] = "Mumuye",
["mzn"] = "Mazanderani",
["mzo"] = "Matipuhy",
["mzp"] = "Movima",
["mzq"] = "Mori Atas",
["mzr"] = "Marúbo",
["mzs"] = "Macanese",
["mzt"] = "Mintil",
["mzu"] = "Inapang",
["mzv"] = "Manza",
["mzw"] = "Deg",
["mzx"] = "Mawayana",
["mzy"] = "Bahasa Isyarat Mozambique",
["mzz"] = "Maiadomu",
["na"] = "Nauru",
["naa"] = "Namla",
["nab"] = "Nambikwara",
["nac"] = "Narak",
["nae"] = "Naka'ela",
["naf"] = "Nabak",
["nag"] = "Pidgin Naga",
["nah"] = "Nahuatl",
["nai-ala"] = "Alazapa",
["nai-bay"] = "Bayogoula",
["nai-cal"] = "Calusa",
["nai-chi"] = "Chiquimulilla",
["nai-chu-pro"] = "Chumash Purba",
["nai-cig"] = "Ciguayo",
["nai-ckn-pro"] = "Chinook Purba",
["nai-guz"] = "Guazacapán",
["nai-hit"] = "Hitchiti",
["nai-ipa"] = "Ipai",
["nai-jtp"] = "Jutiapa",
["nai-jum"] = "Jumaytepeque",
["nai-kat"] = "Kathlamet",
["nai-klp-pro"] = "Kalapuya Purba",
["nai-knm"] = "Konomihu",
["nai-kum"] = "Kumeyaay",
["nai-mac"] = "Macoris",
["nai-mdu-pro"] = "Maidu Purba",
["nai-miz-pro"] = "Mixe-Zoque Purba",
["nai-mus-pro"] = "Muskogi Purba",
["nai-nao"] = "Naolan",
["nai-nrs"] = "Shasta Sungai Baru",
["nai-okw"] = "Okwanuchu",
["nai-per"] = "Pericú",
["nai-pic"] = "Picuris",
["nai-plp-pro"] = "Penuti Penara Purba",
["nai-pom-pro"] = "Pomo Purba",
["nai-qng"] = "Quinigua",
["nai-sca-pro"] = "Siouan-Catawba Purba",
["nai-sin"] = "Sinacantán",
["nai-sln"] = "Lenca Salvador",
["nai-spt"] = "Sahaptin",
["nai-tap"] = "Tapachultec",
["nai-taw"] = "Tawasa",
["nai-teq"] = "Tequistlatec",
["nai-tip"] = "Tipai",
["nai-tot-pro"] = "Totozoquean Purba",
["nai-tsi-pro"] = "Tsimshianik Purba",
["nai-utn-pro"] = "Utik Purba",
["nai-wai"] = "Waikuri",
["nai-wji"] = "Jicaque Barat",
["nai-yup"] = "Yupiltepeque",
["naj"] = "Nalu",
["nak"] = "Nakanai",
["nal"] = "Nalik",
["nam"] = "Ngan'gityemerri",
["nan"] = "Min Nan",
["nan-dat"] = "Min Datian",
["nan-hbl"] = "Hokkien",
["nan-hlh"] = "Min Hailufeng",
["nan-lnx"] = "Min Longyan",
["nan-tws"] = "Teochew",
["nan-zhe"] = "Min Zhenan",
["nan-zsh"] = "Min Sanxiang",
["nao"] = "Naaba",
["nap"] = "Neapolit",
["naq"] = "Khoekhoe",
["nar"] = "Iguta",
["nas"] = "Nasioi",
["nat"] = "Hungworo",
["naw"] = "Nawuri",
["nax"] = "Nakwi",
["nay"] = "Ngarrindjeri",
["naz"] = "Nahuatl Coatepec",
["nb"] = "Bokmål Norway",
["nba"] = "Nyemba",
["nbb"] = "Ndoe",
["nbc"] = "Chang",
["nbd"] = "Ngbinda",
["nbe"] = "Naga Konyak",
["nbg"] = "Nagarchal",
["nbh"] = "Ngamo",
["nbi"] = "Naga Mao",
["nbj"] = "Ngarinman",
["nbk"] = "Nake",
["nbm"] = "Ngbaka Ma'bo",
["nbn"] = "Kuri",
["nbo"] = "Nkukoli",
["nbp"] = "Nnam",
["nbq"] = "Nggem",
["nbr"] = "Numana",
["nbs"] = "Bahasa Isyarat Namibia",
["nbt"] = "Na",
["nbu"] = "Naga Rongmei",
["nbv"] = "Ngamambo",
["nbw"] = "Ngbandi Selatan",
["nby"] = "Ningera",
["nca"] = "Iyo",
["ncb"] = "Nicobar Tengah",
["ncc"] = "Ponam",
["ncd"] = "Nachering",
["nce"] = "Yale",
["ncf"] = "Notsi",
["ncg"] = "Nisga'a",
["nch"] = "Nahuatl Huasteca Tengah",
["nci"] = "Nahuatl Klasik",
["ncj"] = "Nahuatl Puebla Utara",
["nck"] = "Nakara",
["ncl"] = "Nahuatl Michoacán",
["ncm"] = "Nambo",
["ncn"] = "Nauna",
["nco"] = "Sibe",
["ncr"] = "Ncane",
["ncs"] = "Bahasa Isyarat Nicaragua",
["nct"] = "Naga Chothe",
["ncu"] = "Chumburung",
["ncx"] = "Nahuatl Puebla Tengah",
["ncz"] = "Natchez",
["nd"] = "Ndebele Utara",
["nda"] = "Ndasa",
["ndb"] = "Kenswei Nsei",
["ndc"] = "Ndau",
["ndd"] = "Nde-Nsele-Nta",
["ndf"] = "Nadruvia",
["ndg"] = "Ndengereko",
["ndh"] = "Ndali",
["ndi"] = "Chamba Leko",
["ndj"] = "Ndamba",
["ndk"] = "Ndaka",
["ndl"] = "Ndolo",
["ndm"] = "Ndam",
["ndn"] = "Ngundi",
["ndp"] = "Ndo",
["ndq"] = "Ndombe",
["ndr"] = "Ndoola",
["nds"] = "Jerman Rendah",
["ndt"] = "Ndunga",
["ndu"] = "Dugun",
["ndv"] = "Ndut",
["ndw"] = "Ndobo",
["ndx"] = "Nduga",
["ndy"] = "Lutos",
["ndz"] = "Ndogo",
["ne"] = "Nepal",
["nea"] = "Ngad'a Timur",
["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"] = "Mixe Tengah Utara",
["ner"] = "Yahadian",
["nes"] = "Kinnauri Bhoti",
["net"] = "Nete",
["neu"] = "Neo",
["nev"] = "Nyaheun",
["new"] = "Newar",
["nex"] = "Neme",
["ney"] = "Neyo",
["nez"] = "Nez Perce",
["nfa"] = "Dhao",
["nfd"] = "Ahwai",
["nfl"] = "Äiwoo",
["nfr"] = "Nafaanra",
["nfu"] = "Mfumte",
["ng"] = "Ndonga",
["nga"] = "Ngbaka",
["ngb"] = "Ngbandi Utara",
["ngc"] = "Ngombe (Congo)",
["ngd"] = "Ngando (Republik Afrika Tengah)",
["nge"] = "Ngemba",
["ngf-bin-pro"] = "Binandere Purba",
["ngf-pro"] = "Trans-New Guinea Purba",
["ngg"] = "Ngbaka Manza",
["ngh"] = "Nǀuu",
["ngi"] = "Ngizim",
["ngj"] = "Ngie",
["ngk"] = "Ngalkbun",
["ngl"] = "Lomwe",
["ngm"] = "Kreol Lelaki Ngatik",
["ngn"] = "Ngwo",
["ngo"] = "Ngoni",
["ngp"] = "Ngulu",
["ngq"] = "Ngoreme",
["ngr"] = "Nagu",
["ngs"] = "Gvoko",
["ngt"] = "Ngeq",
["ngu"] = "Nahuatl Guerrero",
["ngv"] = "Nagumi",
["ngw"] = "Ngwaba",
["ngx"] = "Nggwahyi",
["ngy"] = "Tibea",
["ngz"] = "Ngungwel",
["nha"] = "Nhanda",
["nhb"] = "Beng",
["nhc"] = "Nahuatl Tabasco",
["nhd"] = "Chiripá",
["nhe"] = "Nahuatl Huasteca Timur",
["nhf"] = "Nhuwala",
["nhg"] = "Nahuatl Tetelcingo",
["nhh"] = "Nahari",
["nhi"] = "Nahuatl Zacatlán-Ahuacatlán-Tepetzintla",
["nhk"] = "Nahuatl Cosoleacaque",
["nhm"] = "Nahuatl Morelos",
["nhn"] = "Nahuatl Tengah",
["nho"] = "Takuu",
["nhp"] = "Nahuatl Pajapan",
["nhq"] = "Nahuatl Huaxcaleca",
["nhr"] = "Naro",
["nht"] = "Nahuatl Ometepec",
["nhu"] = "Noone",
["nhv"] = "Nahuatl Temascaltepec",
["nhw"] = "Nahuatl Huasteca Barat",
["nhx"] = "Nahuatl Mecayapan",
["nhy"] = "Nahuatl Oaxaca Utara",
["nhz"] = "Nahuatl Santa María La Alta",
["nia"] = "Nias",
["nib"] = "Nakame",
["nic-bco-pro"] = "Benue-Congo Purba",
["nic-bod-pro"] = "Bantoid Purba",
["nic-eov-pro"] = "Oti-Volta Timur Purba",
["nic-gns-pro"] = "Gurunsi Purba",
["nic-grf-pro"] = "Grassfields Purba",
["nic-gur-pro"] = "Gur Purba",
["nic-jkn-pro"] = "Jukunoid Purba",
["nic-lcr-pro"] = "Cross River Hilir Purba",
["nic-ogo-pro"] = "Ogoni Purba",
["nic-ovo-pro"] = "Oti-Volta Purba",
["nic-plt-pro"] = "Plateau Purba",
["nic-pro"] = "Niger-Congo Purba",
["nic-ubg-pro"] = "Ubangi Purba",
["nic-ucr-pro"] = "Cross River Hulu Purba",
["nic-vco-pro"] = "Volta-Congo Purba",
["nid"] = "Ngandi",
["nie"] = "Niellim",
["nif"] = "Nek",
["nig"] = "Ngalakan",
["nih"] = "Nyiha",
["nii"] = "Nii",
["nij"] = "Ngaju",
["nik"] = "Nicobar Selatan",
["nil"] = "Nila",
["nim"] = "Nilamba",
["nin"] = "Ninzo",
["nio"] = "Nganasan",
["niq"] = "Nandi",
["nir"] = "Nimboran",
["nis"] = "Nimi",
["nit"] = "Kolami Tenggara",
["niu"] = "Niue",
["niv"] = "Nivkh",
["niw"] = "Nimo",
["nix"] = "Hema",
["niy"] = "Ngiti",
["niz"] = "Ningil",
["nja"] = "Nzanyi",
["njb"] = "Nocte",
["njh"] = "Naga Lotha",
["nji"] = "Gudanji",
["njj"] = "Njen",
["njl"] = "Njalgulgule",
["njm"] = "Angami",
["njn"] = "Naga Liangmai",
["njo-jgl"] = "Ao Chungli",
["njo-mng"] = "Ao Mongsen",
["njr"] = "Njerep",
["njs"] = "Nisa",
["njt"] = "Pidgin Ndyuka-Trio",
["nju"] = "Ngadjunmaya",
["njx"] = "Kunyi",
["njy"] = "Njyem",
["njz"] = "Nyishi",
["nka"] = "Nkoya",
["nkb"] = "Naga Khoibu",
["nkc"] = "Nkongho",
["nkd"] = "Koireng",
["nke"] = "Duke",
["nkf"] = "Naga Inpui",
["nkg"] = "Nekgini",
["nkh"] = "Naga Khezha",
["nki"] = "Naga Thangal",
["nkj"] = "Nakai",
["nkk"] = "Nokuku",
["nkm"] = "Namat",
["nkn"] = "Nkangala",
["nko"] = "Nkonya",
["nkp"] = "Niuatoputapu",
["nkq"] = "Nkami",
["nkr"] = "Nukuoro",
["nks"] = "Asmat Utara",
["nkt"] = "Nyika",
["nku"] = "Kulango Bouna",
["nkw"] = "Nkutu",
["nkx"] = "Nkoroo",
["nkz"] = "Nkari",
["nl"] = "Belanda",
["nla"] = "Ngombale",
["nlc"] = "Nalca",
["nle"] = "Nyala Timur",
["nlg"] = "Gela",
["nli"] = "Grangali",
["nlj"] = "Nyali",
["nlk"] = "Yali Ninia",
["nll"] = "Nihali",
["nlm"] = "Mankiyali",
["nlo"] = "Ngwi",
["nlq"] = "Naga Lao",
["nlu"] = "Nchumbulu",
["nlv"] = "Nahuatl Orizaba",
["nlw"] = "Walangama",
["nlx"] = "Nahali",
["nly"] = "Nyamal",
["nlz"] = "Nalögo",
["nma"] = "Naga Maram",
["nmb"] = "Big Nambas",
["nmc"] = "Ngam",
["nmd"] = "Ndumu",
["nme"] = "Naga Mzieme",
["nmf"] = "Naga Tangkhul",
["nmg"] = "Kwasio",
["nmh"] = "Naga Monsang",
["nmi"] = "Nyam",
["nmj"] = "Ngombe (Republik Afrika Tengah)",
["nmk"] = "Namakura",
["nml"] = "Ndemli",
["nmm"] = "Manangba",
["nmn"] = "ǃXóõ",
["nmo"] = "Naga Moyon",
["nmp"] = "Nimanbur",
["nmq"] = "Nambya",
["nmr"] = "Nimbari",
["nms"] = "Letemboi",
["nmt"] = "Namonuito",
["nmu"] = "Maidu Timur Laut",
["nmv"] = "Ngamini",
["nmw"] = "Nimoa",
["nmx"] = "Nama",
["nmy"] = "Namuyi",
["nmz"] = "Nawdm",
["nn"] = "Nynorsk Norway",
["nna"] = "Nyangumarta",
["nnb"] = "Nande",
["nnc"] = "Nancere",
["nnd"] = "Ambae Barat",
["nne"] = "Ngandyera",
["nnf"] = "Ngaing",
["nng"] = "Naga Maring",
["nnh"] = "Ngiemboon",
["nni"] = "Nuaulu Utara",
["nnj"] = "Nyangatom",
["nnk"] = "Nankina",
["nnl"] = "Naga Rengma Utara",
["nnm"] = "Namia",
["nnn"] = "Ngete",
["nnp"] = "Wancho",
["nnq"] = "Ngindo",
["nnr"] = "Narungga",
["nnt"] = "Nanticoke",
["nnu"] = "Dwang",
["nnv"] = "Nukunu",
["nnw"] = "Nuni Selatan",
["nnx"] = "Ngong",
["nny"] = "Nyangga",
["nnz"] = "Nda'nda'",
["no"] = "Norway",
["noa"] = "Woun Meu",
["noc"] = "Nuk",
["nod"] = "Thai Utara",
["noe"] = "Nimadi",
["nof"] = "Nomane",
["nog"] = "Nogai",
["noh"] = "Nomu",
["noi"] = "Noiri",
["noj"] = "Nonuya",
["nok"] = "Nooksack",
["nol"] = "Nomlaki",
["non"] = "Norse Kuno",
["nop"] = "Numanggang",
["noq"] = "Ngongo",
["nos"] = "Nisu Timur",
["not"] = "Nomatsiguenga",
["nou"] = "Ewage-Notu",
["nov"] = "Novial",
["now"] = "Nyambo",
["noy"] = "Noy",
["noz"] = "Nayi",
["npa"] = "Nar Phu",
["npb"] = "Nupbikha",
["npg"] = "Ponyo",
["nph"] = "Phom",
["npl"] = "Nahuatl Puebla Tenggara",
["npn"] = "Mondropolon",
["npo"] = "Naga Pochuri",
["nps"] = "Nipsan",
["npu"] = "Naga Puimei",
["npx"] = "Noipä",
["npy"] = "Napu",
["nqg"] = "Ede Nago",
["nqk"] = "Kura Ede Nago",
["nql"] = "Ngendelengo",
["nqm"] = "Ndom",
["nqn"] = "Nen",
["nqo"] = "N'Ko",
["nqq"] = "Naga Kyan-Karyaw",
["nqy"] = "Akyaung Ari",
["nr"] = "Ndebele Selatan",
["nra"] = "Ngom",
["nrb"] = "Nara",
["nrc"] = "Noric",
["nre"] = "Naga Rengma Selatan",
["nrf"] = "Norman",
["nrg"] = "Narango",
["nri"] = "Naga Chokri",
["nrk"] = "Ngarla",
["nrl"] = "Ngarluma",
["nrm"] = "Narom",
["nrn"] = "Norn",
["nrp"] = "Picene Utara",
["nrr"] = "Norra",
["nrt"] = "Kalapuya Utara",
["nru"] = "Narua",
["nrx"] = "Ngurmbur",
["nrz"] = "Lala (New Guinea)",
["nsa"] = "Naga Sangtam",
["nsb"] = "Nossob Bawah",
["nsc"] = "Nshi",
["nsd"] = "Nisu Selatan",
["nse"] = "Nsenga",
["nsf"] = "Nisu Barat Laut",
["nsg"] = "Ngasa",
["nsh"] = "Ngoshie",
["nsi"] = "Bahasa Isyarat Nigeria",
["nsk"] = "Naskapi",
["nsl"] = "Bahasa Isyarat Norway",
["nsm"] = "Sema",
["nsn"] = "Nehan",
["nso"] = "Sotho Utara",
["nsp"] = "Bahasa Isyarat Nepal",
["nsq"] = "Miwok Sierra Utara",
["nsr"] = "Bahasa Isyarat Maritim",
["nss"] = "Nali",
["nst"] = "Tangsa",
["nsu"] = "Nahuatl Sierra Negra",
["nsw"] = "Navut",
["nsx"] = "Nsongo",
["nsy"] = "Nasal",
["nsz"] = "Nisenan",
["ntd"] = "Tidung Utara",
["ntg"] = "Ngantangarra",
["nti"] = "Natioro",
["ntj"] = "Ngaanyatjarra",
["ntk"] = "Ikoma",
["ntm"] = "Nateni",
["nto"] = "Ntomba",
["ntp"] = "Tepehuan Utara",
["ntr"] = "Delo",
["nts"] = "Natagaimas",
["ntu"] = "Natügu",
["ntw"] = "Nottoway",
["ntx"] = "Somra",
["nty"] = "Mantsi",
["nua"] = "Yuanga",
["nub-har"] = "Haraza",
["nub-pro"] = "Nubia Purba",
["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"] = "Nguôn",
["nup"] = "Nupe",
["nuq"] = "Nukumanu",
["nur"] = "Nuguria",
["nus"] = "Nuer",
["nut"] = "Nùng",
["nuu"] = "Ngbundu",
["nuv"] = "Nuni Utara",
["nuw"] = "Nguluwan",
["nux"] = "Mehek",
["nuy"] = "Nunggubuyu",
["nuz"] = "Nahuatl Tlamacazapa",
["nv"] = "Navajo",
["nvh"] = "Nasarian",
["nvm"] = "Namiae",
["nvo"] = "Nyokon",
["nwa"] = "Nawathinehena",
["nwb"] = "Nyabwa",
["nwc"] = "Newar Klasik",
["nwe"] = "Ngwe",
["nwg"] = "Ngaiawang",
["nwi"] = "Tanna Barat Daya",
["nwm"] = "Nyamusa-Molo",
["nwo"] = "Nauo",
["nwr"] = "Nawaru",
["nwx"] = "Newar Pertengahan",
["nwy"] = "Nottoway-Meherrin",
["nxa"] = "Nauete",
["nxd"] = "Ngando (Congo)",
["nxe"] = "Nage",
["nxg"] = "Ngadha",
["nxi"] = "Nindi",
["nxl"] = "Nuaulu Selatan",
["nxm"] = "Numidia",
["nxn"] = "Ngawun",
["nxo"] = "Ndambomo",
["nxq"] = "Naxi",
["nxr"] = "Ninggerum",
["nxx"] = "Nafri",
["ny"] = "Chichewa",
["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"] = "Nyaw",
["nyx"] = "Nganyaywana",
["nyy"] = "Nyakyusa",
["nza"] = "Mbembe Tigon",
["nzb"] = "Njebi",
["nzd"] = "Nzadi",
["nzi"] = "Nzima",
["nzk"] = "Nzakara",
["nzm"] = "Naga Zeme",
["nzs"] = "Bahasa Isyarat New Zealand",
["nzu"] = "Teke Tengah",
["nzy"] = "Nzakambay",
["nzz"] = "Dogon Nanga Dama",
["oaa"] = "Orok",
["oac"] = "Oroch",
["oav"] = "Avar Kuno",
["obi"] = "Obispeño",
["obk"] = "Bontoc Selatan",
["obl"] = "Oblo",
["obm"] = "Moabite",
["obo"] = "Obo Manobo",
["obr"] = "Burma Kuno",
["obt"] = "Breton Kuno",
["obu"] = "Obulom",
["oc"] = "Occitan",
["oca"] = "Ocaina",
["och"] = "Cina Kuno",
["oco"] = "Cornwall Kuno",
["ocu"] = "Tlahuica",
["oda"] = "Odut",
["odk"] = "Od",
["odt"] = "Belanda Kuno",
["odu"] = "Odual",
["ofo"] = "Ofo",
["ofs"] = "Frisia Kuno",
["ofu"] = "Efutop",
["ogb"] = "Ogbia",
["ogc"] = "Ogbah",
["oge"] = "Georgia Kuno",
["ogg"] = "Ogbogolo",
["ogo"] = "Khana",
["ogu"] = "Ogbronuagum",
["ohu"] = "Hungary Kuno",
["oia"] = "Oirata",
["oin"] = "One Inebu",
["oj"] = "Ojibwe",
["ojb"] = "Ojibwa Barat Laut",
["ojc"] = "Ojibwa Tengah",
["ojg"] = "Ojibwa Timur",
["ojp"] = "Jepun Kuno",
["ojs"] = "Severn Ojibwa",
["ojv"] = "Jawa Ontong",
["ojw"] = "Ojibwa Barat",
["oka"] = "Okanagan",
["okb"] = "Okobo",
["okd"] = "Okodia",
["oke"] = "Okpe (Edo Barat Daya)",
["okg"] = "Kok-Paponk",
["okh"] = "Koresh-e Rostam",
["oki"] = "Okiek",
["okj"] = "Oko-Juwoi",
["okk"] = "Kwamtim One",
["okl"] = "Bahasa Isyarat Kentish Kuno",
["okm"] = "Korea Pertengahan",
["okn"] = "Oki-No-Erabu",
["oko"] = "Korea Kuno",
["okr"] = "Kirike",
["oks"] = "Oko-Eni-Osayen",
["oku"] = "Oku",
["okv"] = "Orokaiva",
["okx"] = "Okpe (Edo Barat Laut)",
["okz"] = "Khmer Kuno",
["old"] = "Mochi",
["ole"] = "Olekha",
["olm"] = "Oloma",
["olo"] = "Livvi",
["olr"] = "Olrat",
["olt"] = "Lithuania Kuno",
["olu"] = "Kuvale",
["om"] = "Oromo",
["oma"] = "Omaha-Ponca",
["omb"] = "Omba",
["omc"] = "Mochica",
["omg"] = "Omagua",
["omi"] = "Omi",
["omk"] = "Omok",
["oml"] = "Ombo",
["omn"] = "Minoan",
["omo"] = "Utarmbung",
["omp"] = "Manipur Kuno",
["omq-cha-pro"] = "Chatino Purba",
["omq-maz-pro"] = "Mazatec Purba",
["omq-mix-pro"] = "Mixtecan Purba",
["omq-mxt-pro"] = "Mixtec Purba",
["omq-otp-pro"] = "Oto-Pamean Purba",
["omq-pro"] = "Oto-Manguean Purba",
["omq-sjq"] = "Chatino San Juan Quiahije",
["omq-tel"] = "Mixtec Teposcolula",
["omq-teo"] = "Chatino Teojomulco",
["omq-tri-pro"] = "Triqui Purba",
["omq-zap-pro"] = "Zapotecan Purba",
["omq-zpc-pro"] = "Zapotec Purba",
["omr"] = "Marathi Kuno",
["omt"] = "Omotik",
["omu"] = "Omurano",
["omv-aro-pro"] = "Aroid Purba",
["omv-diz-pro"] = "Dizoid Purba",
["omv-pro"] = "Omotik Purba",
["omw"] = "Tairora Selatan",
["omx"] = "Mon Kuno",
["ona"] = "Selk'nam",
["onb"] = "Lingao",
["one"] = "Oneida",
["ong"] = "Olo",
["oni"] = "Onin",
["onj"] = "Onjob",
["onk"] = "Kabore One",
["onn"] = "Onobasulu",
["ono"] = "Onondaga",
["onp"] = "Sartang",
["onr"] = "One Utara",
["ons"] = "Ono",
["ont"] = "Ontenu",
["onu"] = "Unua",
["onw"] = "Nubia Kuno",
["onx"] = "Pidgin Onin",
["ood"] = "O'odham",
["oog"] = "Ong",
["oon"] = "Önge",
["oor"] = "Oorlams",
["oos"] = "Ossetia Kuno",
["opa"] = "Okpamheri",
["opk"] = "Kopkaka",
["opm"] = "Oksapmin",
["opo"] = "Opao",
["opt"] = "Opata",
["opy"] = "Ofayé",
["or"] = "Odia",
["ora"] = "Oroha",
["ore"] = "Orejón",
["org"] = "Oring",
["orh"] = "Oroqen",
["oro"] = "Orokolo",
["orr"] = "Oruma",
["ors"] = "Orang Seletar",
["ort"] = "Oriya Adivasi",
["oru"] = "Ormuri",
["orv"] = "Slav Timur Kuno",
["orw"] = "Oro Win",
["orx"] = "Oro",
["orz"] = "Ormu",
["os"] = "Ossetia",
["osa"] = "Osage",
["osc"] = "Osci",
["osi"] = "Osing",
["osn"] = "Sunda Kuno",
["oso"] = "Ososo",
["osp"] = "Sepanyol Kuno",
["ost"] = "Osatu",
["osu"] = "One Selatan",
["osx"] = "Saxon Kuno",
["ota"] = "Turki Usmaniyah",
["otb"] = "Tibet Kuno",
["otd"] = "Ot Danum",
["ote"] = "Otomi Mezquital",
["oti"] = "Oti",
["otk"] = "Turk Kuno",
["otl"] = "Otomi Tilapa",
["otm"] = "Otomi Tanah Tinggi Timur",
["otn"] = "Otomi Tenango",
["oto-otm-pro"] = "Otomi Purba",
["oto-pro"] = "Otomian Purba",
["otq"] = "Otomi Querétaro",
["otr"] = "Otoro",
["ots"] = "Otomi Estado de México",
["ott"] = "Otomi Temoaya",
["otu"] = "Otuke",
["otw"] = "Ottawa",
["otx"] = "Otomi Texcatepec",
["oty"] = "Tamil Kuno",
["otz"] = "Otomi Ixtenco",
["oub"] = "Glio-Oubi",
["oue"] = "Oune",
["oui"] = "Uyghur Kuno",
["oum"] = "Ouma",
["ovd"] = "Älvdalen",
["owi"] = "Owiniga",
["owl"] = "Wales Kuno",
["oyb"] = "Oy",
["oyd"] = "Oyda",
["oym"] = "Wayampi",
["oyy"] = "Oya'oya",
["ozm"] = "Koonzime",
["pa"] = "Punjabi",
["paa-kmn"] = "Kómnzo",
["paa-kwn"] = "Kuwani",
["paa-lei"] = "Leitre",
["paa-nha-pro"] = "Halmahera Utara Purba",
["paa-nun"] = "Nungon",
["pab"] = "Pareci",
["pac"] = "Pacoh",
["pad"] = "Paumarí",
["pae"] = "Pagibete",
["paf"] = "Paranawát",
["pag"] = "Pangasinan",
["pah"] = "Tenharim",
["pai"] = "Pe",
["pak"] = "Parakanã",
["pal"] = "Parsi Pertengahan",
["pam"] = "Kapampangan",
["pao"] = "Paiute Utara",
["pap"] = "Papiamentu",
["paq"] = "Parya",
["par"] = "Panamint",
["pas"] = "Papasena",
["pat"] = "Papitalai",
["pau"] = "Palau",
["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"] = "Pame Tengah",
["pbv"] = "Pnar",
["pby"] = "Pyu",
["pca"] = "Santa Inés Ahuatempan Popoloca",
["pcb"] = "Pear",
["pcc"] = "Bouyei",
["pcd"] = "Picard",
["pce"] = "Ruching Palaung",
["pcf"] = "Paliyan",
["pcg"] = "Paniya",
["pch"] = "Pardhan",
["pci"] = "Duruwa",
["pcj"] = "Parenga",
["pck"] = "Paite",
["pcl"] = "Pardhi",
["pcm"] = "Pijin Nigeria",
["pcn"] = "Piti",
["pcp"] = "Pacahuara",
["pcw"] = "Pyapun",
["pda"] = "Anam",
["pdc"] = "Jerman Pennsylvania",
["pdi"] = "Pa Di",
["pdn"] = "Fedan",
["pdo"] = "Padoe",
["pdt"] = "Plautdietsch",
["pdu"] = "Kayan",
["pea"] = "Peranakan Indonesian",
["peb"] = "Pomo Timur",
["ped"] = "Mala (New Guinea)",
["pee"] = "Taje",
["pef"] = "Pomo Timur Laut",
["peg"] = "Pengo",
["peh"] = "Bonan",
["pei"] = "Chichimeca-Jonaz",
["pej"] = "Pomo Utara",
["pek"] = "Penchal",
["pel"] = "Pekal",
["pem"] = "Phende",
["peo"] = "Parsi Kuno",
["pep"] = "Kunja",
["peq"] = "Pomo Selatan",
["pev"] = "Pémono",
["pex"] = "Petats",
["pey"] = "Petjo",
["pez"] = "Penan Timur",
["pfa"] = "Pááfang",
["pfe"] = "Peere",
["pga"] = "Arab Juba",
["pgd"] = "Gandhari",
["pgg"] = "Pangwali",
["pgi"] = "Pagi",
["pgk"] = "Rerep",
["pgl"] = "Primitive Irish",
["pgn"] = "Paelignian",
["pgs"] = "Pangseng",
["pgu"] = "Pagu",
["pgz"] = "Bahasa Isyarat Papua New Guinea",
["pha"] = "Pa-Hng",
["phd"] = "Phudagi",
["phg"] = "Phuong",
["phh"] = "Phukha",
["phi-din"] = "Agta Dinapigue",
["phi-kal-pro"] = "Kalamian Purba",
["phi-nag"] = "Agta Nagtipunan",
["phi-pro"] = "Filipina Purba",
["phk"] = "Phake",
["phl"] = "Phalura",
["phm"] = "Phimbi",
["phn"] = "Phoenicia",
["pho"] = "Phunoi",
["phq"] = "Phana'",
["phr"] = "Pahari-Potwari",
["pht"] = "Phu Thai",
["phu"] = "Phuan",
["phv"] = "Pahlavani",
["phw"] = "Phangduwali",
["pi"] = "Pali",
["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"] = "Baekje",
["pkg"] = "Pak-Tong",
["pkh"] = "Pankhu",
["pkn"] = "Pakanha",
["pko"] = "Pökoot",
["pkp"] = "Pukapukan",
["pkr"] = "Attapady Kurumba",
["pks"] = "Bahasa Isyarat Pakistan",
["pkt"] = "Maleng",
["pku"] = "Paku",
["pl"] = "Poland",
["pla"] = "Miani",
["plb"] = "Polonombauk",
["plc"] = "Central Palawano",
["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"] = "Palawano Barat Daya",
["plw"] = "Palawano Brooke's Point",
["ply"] = "Bolyu",
["plz"] = "Paluan",
["pma"] = "Paama",
["pmb"] = "Pambia",
["pmd"] = "Pallanganmiddang",
["pme"] = "Pwaamei",
["pmf"] = "Pamona",
["pmi"] = "Pumi Utara",
["pmj"] = "Pumi Selatan",
["pmk"] = "Pamlico",
["pml"] = "Sabir",
["pmm"] = "Pol",
["pmn"] = "Pam",
["pmo"] = "Pom",
["pmq"] = "Pame Utara",
["pmr"] = "Paynamar",
["pms"] = "Piemonte",
["pmt"] = "Tuamotuan",
["pmu"] = "Mirpur Panjabi",
["pmw"] = "Plains Miwok",
["pmx"] = "Poumei Naga",
["pmy"] = "Papuan Malay",
["pmz"] = "Southern Pame",
["pna"] = "Punan Bah-Biau",
["pnb"] = "Punjabi Barat",
["pnc"] = "Pannei",
["pnd"] = "Mpinda",
["pne"] = "Penan Barat",
["png"] = "Pongu",
["pnh"] = "Penrhyn",
["pni"] = "Aoheng",
["pnj"] = "Pinjarup",
["pnk"] = "Paunaca",
["pnl"] = "Paleni",
["pnm"] = "Punan Batu",
["pnn"] = "Pinai-Hagahai",
["pno"] = "Panobo",
["pnp"] = "Pancana",
["pnq"] = "Pana (Afrika Barat)",
["pnr"] = "Panim",
["pns"] = "Ponosakan",
["pnt"] = "Yunani Pontus",
["pnu"] = "Jiongnai Bunu",
["pnv"] = "Pinigura",
["pnw"] = "Panyjima",
["pnx"] = "Phong-Kniang",
["pny"] = "Pinyin",
["pnz"] = "Pana (Afrika Tengah)",
["poc"] = "Poqomam",
["poe"] = "San Juan Atzingo Popoloca",
["pof"] = "Poke",
["pog"] = "Potiguára",
["poh"] = "Poqomchi'",
["poi"] = "Highland Popoluca",
["pok"] = "Pokangá",
["pom"] = "Pomo Tenggara",
["pon"] = "Pohnpei",
["poo"] = "Pomo Tengah",
["pop"] = "Pwapwa",
["poq"] = "Texistepec Popoluca",
["pos"] = "Sayula Popoluca",
["pot"] = "Potawatomi",
["pov"] = "Kreol Guinea-Bissau",
["pow"] = "San Felipe Otlaltepec Popoloca",
["pox"] = "Polabia",
["poy"] = "Pogolo",
["poz-abi"] = "Abai",
["poz-bal"] = "Baliledo",
["poz-btk-pro"] = "Bungku-Tolaki Purba",
["poz-cet-pro"] = "Melayu-Polinesia Tengah-Timur Purba",
["poz-hce-pro"] = "Halmahera-Cenderawasih Purba",
["poz-lgx-pro"] = "Lampungik Purba",
["poz-mcm-pro"] = "Melayu-Chamik Purba",
["poz-mic-pro"] = "Mikronesia Purba",
["poz-mly-pro"] = "Melayik Purba",
["poz-msa-pro"] = "Melayu-Sumbawa Purba",
["poz-nes"] = "Nese",
["poz-oce-pro"] = "Oceania Purba",
["poz-pcc-pro"] = "Pasifik Tengah Purba",
["poz-pep-pro"] = "Polinesia Timur Purba",
["poz-pnp-pro"] = "Polinesia Teras Purba",
["poz-pol-pro"] = "Polinesia Purba",
["poz-pro"] = "Melayu-Polinesia Purba",
["poz-sml"] = "Melayu Sarawak",
["poz-ssw-pro"] = "Sulawesi Selatan Purba",
["poz-swa-pro"] = "Sarawak Utara Purba",
["poz-ter"] = "Melayu Terengganu",
["ppa"] = "Pao",
["ppe"] = "Papi",
["ppi"] = "Paipai",
["ppk"] = "Uma",
["ppl"] = "Pipil",
["ppm"] = "Papuma",
["ppn"] = "Papapana",
["ppo"] = "Folopa",
["ppq"] = "Pei",
["pps"] = "San Luís Temalacayuca Popoloca",
["ppt"] = "Pa",
["ppu"] = "Papora",
["pqa"] = "Pa'a",
["pqe-pro"] = "Melayu-Polinesia Timur Purba",
["pqm"] = "Malecite-Passamaquoddy",
["pra"] = "Prakrit",
["pra-niy"] = "Prakrit Niya",
["prc"] = "Parachi",
["pre"] = "Principe",
["prf"] = "Paranan",
["prg"] = "Prusia Kuno",
["prh"] = "Porohanon",
["pri"] = "Paicî",
["prk"] = "Parauk",
["prl"] = "Bahasa Isyarat Peru",
["prm"] = "Kibiri",
["prn"] = "Prasuni",
["pro"] = "Occitan Kuno",
["prq"] = "Ashéninka Perené",
["prr"] = "Puri",
["prt"] = "Phai",
["pru"] = "Puragi",
["prw"] = "Parawen",
["prx"] = "Purik",
["prz"] = "Bahasa Isyarat Providencia",
["ps"] = "Pashto",
["psa"] = "Asue Awyu",
["psc"] = "Bahasa Isyarat Parsi",
["psd"] = "Plains Indian Sign Language",
["pse"] = "Melayu Barisan Selatan",
["psg"] = "Bahasa Isyarat Pulau Pinang",
["psh"] = "Pashayi Barat Daya",
["psi"] = "Pashayi Tenggara",
["psl"] = "Bahasa Isyarat Puerto Rico",
["psm"] = "Pauserna",
["psn"] = "Panasuan",
["pso"] = "Bahasa Isyarat Poland",
["psp"] = "Bahasa Isyarat Filipina",
["psq"] = "Pasi",
["psr"] = "Bahasa Isyarat Portugis",
["pss"] = "Kaulong",
["psw"] = "Port Sandwich",
["psy"] = "Piscataway",
["pt"] = "Portugis",
["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"] = "Paiwan",
["pwo"] = "Pwo Barat",
["pwr"] = "Powari",
["pww"] = "Pwo Utara",
["pxm"] = "Quetzaltepec Mixe",
["pye"] = "Pye Krumen",
["pym"] = "Fyam",
["pyn"] = "Poyanáwa",
["pys"] = "Bahasa Isyarat Paraguay",
["pyu"] = "Puyuma",
["pyx"] = "Tircul",
["pyy"] = "Pyen",
["pzh"] = "Pazeh",
["pzn"] = "Para Naga",
["qfa-adm-pro"] = "Andaman Besar Purba",
["qfa-bet-pro"] = "Be-Tai Purba",
["qfa-cka-pro"] = "Chukotko-Kamchatka Purba",
["qfa-hur-pro"] = "Hurro-Urartia Purba",
["qfa-kad-pro"] = "Kadu Purba",
["qfa-kms-pro"] = "Kam-Sui Purba",
["qfa-kor-pro"] = "Korea Purba",
["qfa-kra-pro"] = "Kra Purba",
["qfa-lic-pro"] = "Hlai Purba",
["qfa-onb-pro"] = "Be Purba",
["qfa-ong-pro"] = "Onga Purba",
["qfa-tak-pro"] = "Kra-Dai Purba",
["qfa-yen-pro"] = "Yenisei Purba",
["qfa-yuk-pro"] = "Yukaghir Purba",
["qu"] = "Quechua",
["qua"] = "Quapaw",
["quc"] = "K'iche'",
["qui"] = "Quileute",
["qum"] = "Sipakapense",
["qun"] = "Quinault",
["quq"] = "Quinqui",
["quv"] = "Sacapulteco",
["qvy"] = "Queyu",
["qwc"] = "Quechua Klasik",
["qwe-kch"] = "Kichwa",
["qwe-pro"] = "Quechua Purba",
["qwm"] = "Kipchak",
["qwt"] = "Kwalhioqua-Tlatskanai",
["qxs"] = "Southern Qiang",
["qya"] = "Quenya",
["qyp"] = "Quiripi",
["raa"] = "Dungmali",
["rab"] = "Chamling",
["rac"] = "Rasawa",
["rad"] = "Rade",
["raf"] = "Meohang Barat",
["rag"] = "Logooli",
["rah"] = "Rabha",
["rai"] = "Ramoaaina",
["raj"] = "Rajasthan",
["rak"] = "Tulu-Bohuai",
["ral"] = "Ralte",
["ram"] = "Canela",
["ran"] = "Riantana",
["rao"] = "Rao",
["rap"] = "Rapa Nui",
["raq"] = "Saam",
["rar"] = "Rarotonga",
["ras"] = "Tegali",
["rat"] = "Razajerdi",
["rau"] = "Raute",
["rav"] = "Sampang",
["raw"] = "Rawang",
["rax"] = "Rang",
["ray"] = "Rapa",
["raz"] = "Rahambuu",
["rbb"] = "Rumai Palaung",
["rbk"] = "Bontoc Utara",
["rbl"] = "Bikol Miraya",
["rcf"] = "Perancis Kreol Réunion",
["rdb"] = "Rudbari",
["rea"] = "Rerau",
["reb"] = "Rembong",
["ree"] = "Kayan Rejang",
["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"] = "Yunani Romani",
["rgk"] = "Rangkas",
["rgn"] = "Romagnol",
["rgr"] = "Resígaro",
["rgs"] = "Roglai Selatan",
["rgu"] = "Ringgou",
["rhg"] = "Rohingya",
["rhp"] = "Yahang",
["ria"] = "Reang",
["rif"] = "Tarifit",
["ril"] = "Riang",
["rim"] = "Nyaturu",
["rin"] = "Nungu",
["rir"] = "Ribun",
["rit"] = "Ritarungo",
["riu"] = "Riung",
["rjg"] = "Rajong",
["rji"] = "Raji",
["rjs"] = "Rajbanshi",
["rka"] = "Kraol",
["rkb"] = "Rikbaktsa",
["rkh"] = "Rakahanga-Manihiki",
["rki"] = "Rakhine",
["rkm"] = "Marka",
["rkt"] = "Kamta",
["rkw"] = "Arakwal",
["rm"] = "Romansh",
["rma"] = "Rama",
["rmb"] = "Rembarunga",
["rmc"] = "Romani Carpathia",
["rmd"] = "Denmark Pengembara",
["rme"] = "Angloromani",
["rmf"] = "Romani Finland Kalo",
["rmg"] = "Norway Pengembara",
["rmh"] = "Murkim",
["rmi"] = "Lomavren",
["rmk"] = "Romkun",
["rml"] = "Romani Baltik",
["rmm"] = "Roma",
["rmn"] = "Romani Balkan",
["rmo"] = "Romani Sinte",
["rmp"] = "Rempi",
["rmq"] = "Caló",
["rms"] = "Bahasa Isyarat Romania",
["rmt"] = "Domari",
["rmu"] = "Tavringer Romani",
["rmv"] = "Romanova",
["rmw"] = "Romani Wales",
["rmx"] = "Romam",
["rmy"] = "Romani Vlax",
["rmz"] = "Marma",
["rnd"] = "Ruwund",
["rng"] = "Ronga",
["rnl"] = "Ranglong",
["rnn"] = "Roon",
["rnp"] = "Rongpo",
["rnw"] = "Rungwa",
["ro"] = "Romania",
["roa-ang"] = "Angevin",
["roa-bbn"] = "Bourbonnais-Berrichon",
["roa-brg"] = "Bourguignon",
["roa-can"] = "Cantabrian",
["roa-cha"] = "Champenois",
["roa-fcm"] = "Franc-Comtois",
["roa-gal"] = "Gallo",
["roa-gib"] = "Gallo-Italik Basilicata",
["roa-gis"] = "Gallo-Italik Sicily",
["roa-leo"] = "Leon",
["roa-lor"] = "Lorrain",
["roa-oca"] = "Catalonia Kuno",
["roa-ole"] = "Leon Kuno",
["roa-ona"] = "Navarro-Aragon Kuno",
["roa-opt"] = "Galicia-Portugis Kuno",
["roa-orl"] = "Orléanais",
["roa-poi"] = "Poitevin-Saintongeais",
["roa-tar"] = "Tarantino",
["rob"] = "Tae'",
["roc"] = "Roglai Cacgia",
["rod"] = "Rogo",
["roe"] = "Ronji",
["rof"] = "Rombo",
["rog"] = "Roglai Utara",
["rol"] = "Romblomanon",
["rom"] = "Romani",
["roo"] = "Rotokas",
["rop"] = "Kriol",
["ror"] = "Rongga",
["rou"] = "Runga",
["row"] = "Dela-Oenale",
["rpn"] = "Repanbitip",
["rpt"] = "Rapting",
["rri"] = "Ririo",
["rro"] = "Roro",
["rrt"] = "Arritinngithigh",
["rsb"] = "Romano-Serbia",
["rsk"] = "Rusyn Pannonia",
["rsl"] = "Bahasa Isyarat Rusia",
["rsm"] = "Bahasa Isyarat Miriwoong",
["rtc"] = "Rungtu",
["rth"] = "Ratahan",
["rtm"] = "Rotuma",
["rtw"] = "Rathawi",
["ru"] = "Rusia",
["rub"] = "Gungu",
["ruc"] = "Ruuli",
["rue"] = "Rusyn",
["ruf"] = "Luguru",
["rug"] = "Roviana",
["ruh"] = "Ruga",
["rui"] = "Rufiji",
["ruk"] = "Che",
["ruo"] = "Istro-Romania",
["rup"] = "Aromania",
["ruq"] = "Megleno-Romania",
["rut"] = "Rutul",
["ruu"] = "Lanas Lobu",
["ruy"] = "Mala (Nigeria)",
["ruz"] = "Ruma",
["rw"] = "Rwanda-Rundi",
["rwa"] = "Rawo",
["rwk"] = "Rwa",
["rwm"] = "Amba",
["rwo"] = "Rawa",
["rxd"] = "Ngardi",
["rxw"] = "Karuwali",
["ryn"] = "Amami Ōshima Utara",
["rys"] = "Yaeyama",
["ryu"] = "Okinawa",
["rzh"] = "Razihi",
["sa"] = "Sanskrit",
["saa"] = "Saba",
["sab"] = "Buglere",
["sac"] = "Fox",
["sad"] = "Sandawe",
["sae"] = "Sabanê",
["saf"] = "Safaliba",
["sah"] = "Yakut",
["sai-all"] = "Allentiac",
["sai-and"] = "Andoquero",
["sai-ayo"] = "Ayomán",
["sai-bae"] = "Baenan",
["sai-bag"] = "Bagua",
["sai-bet"] = "Betoi",
["sai-bor-pro"] = "Bora Purba",
["sai-cac"] = "Cacán",
["sai-caq"] = "Caranqui",
["sai-car-pro"] = "Carib Purba",
["sai-cat"] = "Catacao",
["sai-cer-pro"] = "Cerrado Purba",
["sai-chi"] = "Chirino",
["sai-chn"] = "Chaná",
["sai-chp"] = "Chapacura",
["sai-chr"] = "Charrua",
["sai-chu"] = "Churuya",
["sai-cje-pro"] = "Jê Tengah Purba",
["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"] = "Jê Purba",
["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"] = "Jê Utara Purba",
["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"] = "Jê Selatan Purba",
["sai-tab"] = "Tabancale",
["sai-tal"] = "Tallán",
["sai-tap"] = "Tapayuna",
["sai-tar-pro"] = "Taranoan Purba",
["sai-teu"] = "Teushen",
["sai-tim"] = "Timote",
["sai-tpr"] = "Taparita",
["sai-trr"] = "Tarairiú",
["sai-wai"] = "Waitaká",
["sai-way"] = "Wayumara",
["sai-wit-pro"] = "Witotoan Purba",
["sai-wnm"] = "Wanham",
["sai-xoc"] = "Xocó",
["sai-yao"] = "Yao (Amerika Selatan)",
["sai-yar"] = "Yarumá",
["sai-yri"] = "Yuri",
["sai-yup"] = "Yupua",
["sai-yur"] = "Yurumanguí",
["saj"] = "Sahu",
["sak"] = "Sake",
["sal-pro"] = "Salish Purba",
["sam"] = "Samaritan Aramaic",
["sao"] = "Sause",
["saq"] = "Samburu",
["sar"] = "Saraveca",
["sas"] = "Sasak",
["sat"] = "Santal",
["sau"] = "Saleman",
["sav"] = "Saafi-Saafi",
["saw"] = "Sawi",
["sax"] = "Sa",
["say"] = "Saya",
["saz"] = "Saurashtra",
["sba"] = "Ngambay",
["sbb"] = "Simbo",
["sbc"] = "Gele'",
["sbd"] = "Samo Selatan",
["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"] = "Sardinia",
["scb"] = "Chut",
["sce"] = "Dongxiang",
["scf"] = "Perancis Kreol San Miguel",
["scg"] = "Sanggau",
["sch"] = "Sakachep",
["sci"] = "Melayu Sri Lanka",
["sck"] = "Sadri",
["scl"] = "Shina",
["scn"] = "Sicilia",
["sco"] = "Scots",
["scp"] = "Yolmo",
["scq"] = "Sa'och",
["scs"] = "Slavey Utara",
["scu"] = "Shumcho",
["scv"] = "Sheni",
["scw"] = "Sha",
["scx"] = "Sicel",
["sd"] = "Sindhi",
["sda"] = "Toraja-Sa'dan",
["sdb"] = "Shabak",
["sdc"] = "Sassari",
["sde"] = "Surubu",
["sdf"] = "Sarli",
["sdg"] = "Savi",
["sdh"] = "Kurdi Selatan",
["sdj"] = "Suundi",
["sdk"] = "Sos Kundi",
["sdl"] = "Saudi Arabian Sign Language",
["sdm"] = "Semandang",
["sdn"] = "Gallura",
["sdo"] = "Bidayuh Bukar-Sadong",
["sdp"] = "Sherdukpen",
["sdr"] = "Oraon Sadri",
["sds"] = "Barbar Tunisia",
["sdu"] = "Sarudu",
["sdv-daj-pro"] = "Daju Purba",
["sdv-eje-pro"] = "Jebel Timur Purba",
["sdv-nil-pro"] = "Nilotik Purba",
["sdv-nyi-pro"] = "Nyima Purba",
["sdv-tmn-pro"] = "Taman Purba",
["sdx"] = "Melanau Sibu",
["se"] = "Sami Utara",
["sea"] = "Semai",
["sec"] = "Sechelt",
["sed"] = "Sedang",
["see"] = "Seneca",
["sef"] = "Cebaara Senoufo",
["seg"] = "Segeju",
["seh"] = "Sena",
["sei"] = "Seri",
["sej"] = "Sene",
["sek"] = "Sekani",
["sel-nor"] = "Selkup Utara",
["sel-pro"] = "Selkup Purba",
["sel-sou"] = "Selkup Selatan",
["sem-amm"] = "Ammon",
["sem-amo"] = "Amor",
["sem-cha"] = "Chaha",
["sem-dad"] = "Dadan",
["sem-dum"] = "Dumait",
["sem-has"] = "Hasait",
["sem-his"] = "Hisma",
["sem-mhr"] = "Muher",
["sem-pro"] = "Samiah Purba",
["sem-saf"] = "Safait",
["sem-sam"] = "Samal",
["sem-srb"] = "Arab Selatan Kuno",
["sem-tay"] = "Tayman",
["sem-tha"] = "Thamud",
["sem-wes-pro"] = "Samiah Barat Purba",
["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"] = "Chin Senthang",
["sfb"] = "French Belgian Sign Language",
["sfm"] = "Small Flowery Miao",
["sfs"] = "Bahasa Isyarat Afrika Selatan",
["sfw"] = "Sehwi",
["sg"] = "Sango",
["sga"] = "Ireland Kuno",
["sgb"] = "Mag-Anchi Ayta",
["sgc"] = "Kipsigis",
["sgd"] = "Surigaonon",
["sge"] = "Segai",
["sgg"] = "Swiss-German Sign Language",
["sgh"] = "Shughni",
["sgi"] = "Suga",
["sgk"] = "Sangkong",
["sgm"] = "Singa",
["sgp"] = "Singpho",
["sgr"] = "Sangisari",
["sgs"] = "Samogitia",
["sgt"] = "Brokpake",
["sgu"] = "Salas",
["sgw"] = "Sebat Bet Gurage",
["sgx"] = "Sierra Leone Sign Language",
["sgy"] = "Sanglechi",
["sgz"] = "Sursurunga",
["sh"] = "Serbo-Croatia",
["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"] = "Shan",
["sho"] = "Shanga",
["shp"] = "Shipibo-Conibo",
["shq"] = "Sala",
["shr"] = "Shi",
["shs"] = "Shuswap",
["sht"] = "Shasta",
["shu"] = "Arab Chad",
["shv"] = "Shehri",
["shw"] = "Shwai",
["shx"] = "She",
["shy"] = "Tachawit",
["shz"] = "Syenara Senoufo",
["si"] = "Sinhala",
["sia"] = "Sami Akkala",
["sib"] = "Sebop",
["sid"] = "Sidamo",
["sie"] = "Simaa",
["sif"] = "Siamou",
["sig"] = "Paasaal",
["sih"] = "Zire",
["sii"] = "Shom Peng",
["sij"] = "Numbami",
["sik"] = "Sikiana",
["sil"] = "Tumulung Sisaala",
["sim"] = "Seim",
["sio-pro"] = "Sioux Purba",
["sip"] = "Sikkim",
["siq"] = "Sonia",
["sir"] = "Siri",
["sis"] = "Siuslaw",
["sit-aao-pro"] = "Naga Tengah Purba",
["sit-bai-pro"] = "Bai Purba",
["sit-ban"] = "Bangru",
["sit-bdi-pro"] = "Bodish Purba",
["sit-bok"] = "Bokar",
["sit-cai"] = "Caijia",
["sit-cha"] = "Chairel",
["sit-ers-pro"] = "Ersu Purba",
["sit-hrs-pro"] = "Hrusish Purba",
["sit-jap"] = "Japhug",
["sit-kha-pro"] = "Kham Purba",
["sit-khb-pro"] = "Kho-Bwa Purba",
["sit-khp-pro"] = "Puroik Purba",
["sit-khw-pro"] = "Kho-Bwa Barat Purba",
["sit-kon-pro"] = "Naga Utara Purba",
["sit-liz"] = "Lizu",
["sit-lnj"] = "Longjia",
["sit-lrn"] = "Luren",
["sit-luu-pro"] = "Luish Purba",
["sit-nas-pro"] = "Naish Purba",
["sit-prn"] = "Puiron",
["sit-pro"] = "Sino-Tibet Purba",
["sit-sit"] = "Situ",
["sit-tam-pro"] = "Tamang Purba",
["sit-tan-pro"] = "Tani Purba",
["sit-tgm"] = "Tangam",
["sit-tng-pro"] = "Tangkhul Purba",
["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",
["sjd"] = "Sami Kildin",
["sje"] = "Sami Pite",
["sjg"] = "Assangori",
["sjk"] = "Sami Kemi",
["sjl"] = "Miji",
["sjm"] = "Mapun",
["sjn"] = "Sindarin",
["sjo"] = "Xibe",
["sjp"] = "Surjapuri",
["sjr"] = "Siar-Lak",
["sjs"] = "Senhaja De Srair",
["sjt"] = "Sami Ter",
["sju"] = "Sami Ume",
["sjw"] = "Shawnee",
["sk"] = "Slovak",
["ska"] = "Skagit",
["skb"] = "Saek",
["skc"] = "Ma Manda",
["skd"] = "Miwok Sierra Selatan",
["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"] = "Maia",
["skt"] = "Sakata",
["sku"] = "Sakao",
["skv"] = "Skou",
["skw"] = "Belanda Kreol Skepi",
["skx"] = "Seko Padang",
["sky"] = "Sikaiana",
["skz"] = "Sekar",
["sl"] = "Slovenia",
["sla-pro"] = "Slav Purba",
["slc"] = "Saliba (Colombia)",
["sld"] = "Sissala",
["sle"] = "Sholaga",
["slf"] = "Swiss-Italian Sign Language",
["slg"] = "Selungai Murut",
["slh"] = "Salish Puget Sound Selatan",
["slj"] = "Salumá",
["sll"] = "Salt-Yui",
["slm"] = "Pangutaran Sama",
["sln"] = "Salinan",
["slp"] = "Lamaholot",
["slq"] = "Salchuq",
["slr"] = "Salar",
["sls"] = "Singapore Sign Language",
["slt"] = "Sila",
["slu"] = "Selaru",
["slw"] = "Sialum",
["slx"] = "Salampasu",
["sly"] = "Selayar",
["slz"] = "Ma'ya",
["sm"] = "Samoa",
["sma"] = "Sami Selatan",
["smb"] = "Simbari",
["smc"] = "Som",
["smd"] = "Sama",
["smf"] = "Auwe",
["smg"] = "Simbali",
["smh"] = "Samei",
["smi-pro"] = "Sami Purba",
["smj"] = "Sami Lule",
["smk"] = "Bolinao",
["sml"] = "Bajau Laut",
["smm"] = "Musasa",
["smn"] = "Sami Inari",
["smp"] = "Ibrani Samaria",
["smq"] = "Samo",
["smr"] = "Simeulue",
["sms"] = "Sami Skolt",
["smt"] = "Simte",
["smu"] = "Somray",
["smv"] = "Samvedi",
["smw"] = "Sumbawa",
["smx"] = "Samba",
["smy"] = "Semnani",
["smz"] = "Simeku",
["sn"] = "Shona",
["snb"] = "Sebuyau",
["snc"] = "Sinaugoro",
["sne"] = "Bidayuh Bau",
["snf"] = "Noon",
["sng"] = "Sanga (Congo)",
["sni"] = "Sensi",
["snj"] = "Riverain Sango",
["snk"] = "Soninke",
["snl"] = "Sangil",
["snm"] = "Ma'di Selatan",
["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"] = "Somali",
["soa"] = "Thai Song",
["sob"] = "Sobei",
["soc"] = "Soko",
["sod"] = "Songoora",
["soe"] = "Songomeno",
["sog"] = "Sogdia",
["soh"] = "Aka (Sudan)",
["soi"] = "Sonha",
["sok"] = "Sokoro",
["sol"] = "Solos",
["son-pro"] = "Songhai Purba",
["soo"] = "Nsong",
["sop"] = "Songe",
["soq"] = "Kanasi",
["sor"] = "Somrai",
["sos"] = "Seenku",
["sou"] = "Thai Selatan",
["sov"] = "Sonsorol",
["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"] = "Picenum Selatan",
["spy"] = "Sabaot",
["sq"] = "Albania",
["sqa"] = "Shama-Sambuga",
["sqh"] = "Shau",
["sqj-pro"] = "Albania Purba",
["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"] = "Murut Serudung",
["srl"] = "Isirawa",
["srm"] = "Saramaccan",
["srn"] = "Seranan",
["srq"] = "Sirionó",
["srr"] = "Serer",
["srs"] = "Tsuut'ina",
["srt"] = "Sauri",
["sru"] = "Suruí",
["srv"] = "Waray Sorsogon",
["srw"] = "Serua",
["srx"] = "Sirmauri",
["sry"] = "Sera",
["srz"] = "Shahmirzadi",
["ss"] = "Swazi",
["ssa-klk-pro"] = "Kuliak Purba",
["ssa-kom-pro"] = "Koma Purba",
["ssa-pro"] = "Nilo-Sahara Purba",
["ssb"] = "Bajau Pantai Timur",
["ssc"] = "Suba-Simbiti",
["ssd"] = "Siroi",
["sse"] = "Balangingi",
["ssf"] = "Thao",
["ssg"] = "Seimat",
["ssh"] = "Arab Syihuh",
["ssi"] = "Sansi",
["ssj"] = "Sausi",
["ssk"] = "Sunam",
["ssl"] = "Sisaala Barat",
["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"] = "Saho",
["ssz"] = "Sengseng",
["st"] = "Sotho",
["stb"] = "Subanen Utara",
["std"] = "Sentinel",
["ste"] = "Liana-Seti",
["stf"] = "Seta",
["stg"] = "Trieng",
["sth"] = "Shelta",
["sti"] = "Bulo Stieng",
["stj"] = "Matya Samo",
["stk"] = "Arammba",
["stm"] = "Setaman",
["stn"] = "Owa",
["sto"] = "Stoney",
["stp"] = "Tepehuan Tenggara",
["stq"] = "Frisia Saterland",
["str"] = "Saanich",
["sts"] = "Shumashti",
["stt"] = "Budeh Stieng",
["stu"] = "Samtao",
["stv"] = "Silt'e",
["stw"] = "Satawal",
["sty"] = "Tatar Siberia",
["su"] = "Sunda",
["sua"] = "Sulka",
["sub"] = "Suku",
["suc"] = "Subanon Barat",
["sue"] = "Suena",
["sug"] = "Suganga",
["sui"] = "Suki",
["suk"] = "Sukuma",
["suq"] = "Suri",
["sur"] = "Mwaghavul",
["sus"] = "Susu",
["sut"] = "Subtiaba",
["suv"] = "Sulung",
["suw"] = "Sumbwa",
["sux"] = "Sumeria",
["suy"] = "Suyá",
["suz"] = "Sunwar",
["sv"] = "Sweden",
["sva"] = "Svan",
["svb"] = "Ulau-Suain",
["svc"] = "Inggeris Kreol Vincent",
["sve"] = "Serili",
["svk"] = "Slovakian Sign Language",
["svm"] = "Slavomolisano",
["svs"] = "Savosavo",
["svx"] = "Skalvian",
["sw"] = "Swahili",
["swb"] = "Comoros Maore",
["swf"] = "Sere",
["swg"] = "Swabia",
["swi"] = "Sui",
["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"] = "Kalapuya Selatan",
["sxl"] = "Selonia",
["sxm"] = "Samre",
["sxn"] = "Sangir",
["sxo"] = "Sorothaptic",
["sxr"] = "Saaroa",
["sxs"] = "Sasaru",
["sxw"] = "Saxwe Gbe",
["sya"] = "Siang",
["syb"] = "Subanen Tengah",
["syc"] = "Suryani Klasik",
["syd-pro"] = "Samoyed Purba",
["syi"] = "Seki",
["syk"] = "Sukur",
["syl"] = "Sylhet",
["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"] = "Silesia",
["szn"] = "Sula",
["szp"] = "Suabo",
["szv"] = "Isubu",
["szw"] = "Sawai",
["szy"] = "Sakizaya",
["ta"] = "Tamil",
["taa"] = "Lower Tanana",
["tab"] = "Tabasaran",
["tac"] = "Lowland Tarahumara",
["tad"] = "Tause",
["tae"] = "Tariana",
["taf"] = "Tapirapé",
["tag"] = "Tagoi",
["tai-pro"] = "Tai Purba",
["tai-swe-pro"] = "Tai Barat Daya Purba",
["taj"] = "Tamang Timur",
["tak"] = "Tala",
["tal"] = "Tal",
["tan"] = "Tangale",
["tao"] = "Yami",
["tap"] = "Taabwa",
["tar"] = "Tarahumara Tengah",
["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"] = "Tairora Utara",
["tbh"] = "Thurawal",
["tbi"] = "Gaam",
["tbj"] = "Tiang",
["tbk"] = "Calamian Tagbanwa",
["tbl"] = "Tboli",
["tbm"] = "Tagbu",
["tbn"] = "Barro Negro Tunebo",
["tbo"] = "Tawala",
["tbp"] = "Taworta",
["tbq-bdg-pro"] = "Bodo-Garo Purba",
["tbq-blg"] = "Bailang",
["tbq-brm-pro"] = "Burma Purba",
["tbq-gkh"] = "Gokhy",
["tbq-kuk-pro"] = "Kuki-Chin Purba",
["tbq-lal-pro"] = "Lalo Purba",
["tbq-laz"] = "Laze",
["tbq-lob-pro"] = "Lolo-Burma Purba",
["tbq-lol-pro"] = "Lolo Purba",
["tbq-mil"] = "Milang",
["tbq-mor"] = "Moran",
["tbq-ngo"] = "Ngochang",
["tbr"] = "Tumtum",
["tbs"] = "Tanguat",
["tbt"] = "Kitembo",
["tbu"] = "Tubar",
["tbv"] = "Tobo",
["tbw"] = "Tagbanwa",
["tbx"] = "Kapin",
["tby"] = "Tabaru",
["tbz"] = "Ditammari",
["tca"] = "Ticuna",
["tcb"] = "Tanacross",
["tcc"] = "Datooga",
["tcd"] = "Tafi",
["tce"] = "Tutchone Selatan",
["tcf"] = "Tlapanec Malinaltepec",
["tcg"] = "Tamagario",
["tch"] = "Inggeris Kreol Turks dan Caicos",
["tci"] = "Wára",
["tck"] = "Tchitchege",
["tcl"] = "Taman (Myanmar)",
["tcm"] = "Tanahmerah",
["tco"] = "Taungyo",
["tcp"] = "Chin Tawr",
["tcq"] = "Kaiy",
["tcs"] = "Kreol Selat Torres",
["tct"] = "T'en",
["tcu"] = "Tarahumara Tenggara",
["tcw"] = "Tecpatlán Totonac",
["tcx"] = "Toda",
["tcy"] = "Tulu",
["tcz"] = "Chin Thado",
["tda"] = "Tagdal",
["tdb"] = "Panchpargania",
["tdc"] = "Emberá-Tadó",
["tdd"] = "Tai Nüa",
["tde"] = "Tiranige Diga Dogon",
["tdf"] = "Talieng",
["tdg"] = "Tamang Barat",
["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"] = "Telugu",
["tea"] = "Temiar",
["teb"] = "Tetete",
["tec"] = "Terik",
["ted"] = "Tepo Krumen",
["tee"] = "Tepehua Huehuetla",
["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"] = "Tetum",
["teu"] = "Soo",
["tev"] = "Teor",
["tew"] = "Tewa",
["tex"] = "Tennet",
["tey"] = "Tulishi",
["tez"] = "Tetserret",
["tfi"] = "Tofin Gbe",
["tfn"] = "Dena'ina",
["tfo"] = "Tefaro",
["tfr"] = "Teribe",
["tft"] = "Ternate",
["tg"] = "Tajik",
["tga"] = "Sagalla",
["tgb"] = "Tobilung",
["tgc"] = "Tigak",
["tgd"] = "Ciwogai",
["tge"] = "Tamang Gorkha Timur",
["tgf"] = "Chali",
["tgh"] = "Inggeris Kreol Tobago",
["tgi"] = "Lawunuia",
["tgn"] = "Tandaganon",
["tgo"] = "Sudest",
["tgp"] = "Tangoa",
["tgq"] = "Tring",
["tgr"] = "Tareng",
["tgs"] = "Nume",
["tgt"] = "Tagbanwa Tengah",
["tgu"] = "Tanggu",
["tgv"] = "Tingui-Boto",
["tgw"] = "Tagwana Senoufo",
["tgx"] = "Tagish",
["tgy"] = "Togoyo",
["th"] = "Thai",
["thc"] = "Tai Hang Tong",
["thd"] = "Kuuk Thaayorre",
["the"] = "Chitwania Tharu",
["thf"] = "Thangmi",
["thh"] = "Tarahumara Utara",
["thi"] = "Tai Long",
["thk"] = "Tharaka",
["thl"] = "Dangaura Tharu",
["thm"] = "Thavung",
["thn"] = "Thachanadan",
["thp"] = "Thompson",
["thq"] = "Kochila Tharu",
["thr"] = "Rana Tharu",
["ths"] = "Thakali",
["tht"] = "Tahltan",
["thu"] = "Thuri",
["thy"] = "Tha",
["ti"] = "Tigrinya",
["tic"] = "Tira",
["tif"] = "Tifal",
["tig"] = "Tigre",
["tih"] = "Murut Timugon",
["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"] = "Tiwa Selatan",
["tiy"] = "Tiruray",
["tiz"] = "Tai Hongjin",
["tja"] = "Tajuasohn",
["tjg"] = "Tunjung",
["tji"] = "Tujia Utara",
["tjl"] = "Tai Laing",
["tjm"] = "Timucua",
["tjn"] = "Tonjon",
["tjs"] = "Tujia Selatan",
["tju"] = "Tjurruru",
["tjw"] = "Chaap Wuurong",
["tk"] = "Turkmen",
["tka"] = "Truká",
["tkb"] = "Buksa",
["tkd"] = "Tukudede",
["tke"] = "Takwane",
["tkf"] = "Tukumanféd",
["tkl"] = "Tokelau",
["tkm"] = "Takelma",
["tkn"] = "Toku-No-Shima",
["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"] = "Tagalog",
["tla"] = "Tepehuan Barat Daya",
["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"] = "Tamang Barat Laut",
["tml"] = "Tamnim Citak",
["tmm"] = "Tai Thanh",
["tmn"] = "Taman (Indonesia)",
["tmo"] = "Temoq",
["tmq"] = "Tumleo",
["tms"] = "Tima",
["tmt"] = "Tasmate",
["tmu"] = "Iau",
["tmv"] = "Motembo",
["tmw"] = "Temuan",
["tmy"] = "Tami",
["tmz"] = "Tamanaku",
["tn"] = "Tswana",
["tna"] = "Tacana",
["tnb"] = "Tunebo Barat",
["tnc"] = "Tanimuca-Retuarã",
["tnd"] = "Angosturas Tunebo",
["tne"] = "Tinoc Kallahan",
["tng"] = "Tobanga",
["tnh"] = "Maiani",
["tni"] = "Tandia",
["tnk"] = "Kwamera",
["tnl"] = "Lenakel",
["tnm"] = "Tabla",
["tnn"] = "Tanna Utara",
["tno"] = "Toromono",
["tnp"] = "Whitesands",
["tnq"] = "Taíno",
["tnr"] = "Bedik",
["tns"] = "Tenis",
["tnt"] = "Tontemboan",
["tnu"] = "Tay Khang",
["tnv"] = "Tanchangya",
["tnw"] = "Tonsawang",
["tnx"] = "Tanema",
["tny"] = "Tongwe",
["tnz"] = "Ten'edn",
["to"] = "Tonga",
["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"] = "Tok Pisin",
["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"] = "Tupi Kuno",
["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"] = "Totonac Barat",
["tqu"] = "Touo",
["tqw"] = "Tonkawa",
["tr"] = "Turki",
["tra"] = "Tirahi",
["trb"] = "Terebu",
["trc"] = "Copala Triqui",
["trd"] = "Turi",
["tre"] = "Tarangan Timur",
["trf"] = "Inggeris Kreol Trinidad",
["trg"] = "Lishán Didán",
["trh"] = "Turaka",
["tri"] = "Trió",
["trj"] = "Toram",
["trk-dkh"] = "Dukhan",
["trk-eog"] = "Oghuz Kuno Awal",
["trk-oat"] = "Turki Anatolia Kuno",
["trk-pro"] = "Turkik Purba",
["trl"] = "Traveller Scottish",
["trm"] = "Tregami",
["trn"] = "Trinitario",
["tro"] = "Tarao",
["trp"] = "Kokborok",
["trq"] = "San Martín Itunyoso Triqui",
["trr"] = "Taushiro",
["trs"] = "Chicahuaxtla Triqui",
["trt"] = "Tunggare",
["tru"] = "Turoyo",
["trv"] = "Taroko",
["trw"] = "Torwali",
["trx"] = "Tringgus",
["try"] = "Turung",
["trz"] = "Torá",
["ts"] = "Tsonga",
["tsa"] = "Tsaangi",
["tsb"] = "Tsamai",
["tsc"] = "Tswa",
["tsd"] = "Tsakonian",
["tse"] = "Bahasa Isyarat Tunisia",
["tsf"] = "Tamang Barat Daya",
["tsg"] = "Suluk",
["tsh"] = "Tsuvan",
["tsi"] = "Tsimshian",
["tsj"] = "Tshangla",
["tsl"] = "Ts'ün-Lao",
["tsm"] = "Bahasa Isyarat Turki",
["tsp"] = "Toussiana Utara",
["tsq"] = "Bahasa Isyarat Thai",
["tsr"] = "Akei",
["tss"] = "Bahasa Isyarat Taiwan",
["tsu"] = "Tsou",
["tsv"] = "Tsogo",
["tsw"] = "Tsishingini",
["tsx"] = "Mubami",
["tsy"] = "Bahasa Isyarat Tebul",
["tt"] = "Tatar",
["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"] = "Tutchone Utara",
["ttn"] = "Towei",
["tto"] = "Lower Ta'oih",
["ttp"] = "Tombelala",
["ttr"] = "Tera",
["tts"] = "Isan",
["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"] = "Tunebo Tengah",
["tug"] = "Tunia",
["tuh"] = "Taulil",
["tui"] = "Tupuri",
["tuj"] = "Tugutil",
["tul"] = "Tula",
["tum"] = "Tumbuka",
["tun"] = "Tunica",
["tuo"] = "Tucano",
["tup-gua-pro"] = "Tupi-Guarani Purba",
["tup-kab"] = "Kabishiana",
["tup-kaw"] = "Kawahiva",
["tup-pro"] = "Tupi Purba",
["tuq"] = "Tedaga",
["tus"] = "Tuscarora",
["tuu"] = "Tututni",
["tuv"] = "Turkana",
["tuw-alk"] = "Alchuka",
["tuw-bal"] = "Bala",
["tuw-kkl"] = "Kyakala",
["tuw-kli"] = "Kili",
["tuw-pro"] = "Tungus Purba",
["tuw-sol"] = "Solon",
["tux"] = "Tuxináwa",
["tuy"] = "Tugen",
["tuz"] = "Turka",
["tva"] = "Vaghua",
["tvd"] = "Tsuvadi",
["tve"] = "Te'un",
["tvk"] = "Ambrym Tenggara",
["tvl"] = "Tuvalu",
["tvm"] = "Tela-Masbuar",
["tvn"] = "Tavoyan",
["tvo"] = "Tidore",
["tvs"] = "Taveta",
["tvt"] = "Tutsa Naga",
["tvu"] = "Tunen",
["tvw"] = "Sedoa",
["tvx"] = "Taivoan",
["tvy"] = "Timor Pidgin",
["twa"] = "Twana",
["twb"] = "Tawbuid Barat",
["twc"] = "Teshenawa",
["twe"] = "Teiwa",
["twf"] = "Taos",
["twg"] = "Tereweng",
["twh"] = "Tai Dón",
["twm"] = "Tawang Monpa",
["twn"] = "Twendi",
["two"] = "Tswapong",
["twp"] = "Ere",
["twq"] = "Tasawaq",
["twr"] = "Tarahumara Barat Daya",
["twt"] = "Turiwára",
["twu"] = "Termanu",
["tww"] = "Tuwari",
["twy"] = "Tawoyan",
["txa"] = "Tombonuo",
["txb"] = "Tocharia B",
["txc"] = "Tsetsaut",
["txe"] = "Totoli",
["txg"] = "Tangut",
["txh"] = "Thracian",
["txi"] = "Ikpeng",
["txj"] = "Tarjumo",
["txm"] = "Tomini",
["txn"] = "Tarangan Barat",
["txo"] = "Toto",
["txq"] = "Tii",
["txr"] = "Tartessian",
["txs"] = "Tonsea",
["txt"] = "Citak",
["txu"] = "Kayapó",
["txx"] = "Tatana",
["ty"] = "Tahiti",
["tya"] = "Tauya",
["tye"] = "Kyenga",
["tyh"] = "O'du",
["tyi"] = "Teke-Tsaayi",
["tyj"] = "Tai Do",
["tyl"] = "Thu Lao",
["tyn"] = "Kombai",
["typ"] = "Kuku-Thaypan",
["tyr"] = "Tai Daeng",
["tys"] = "Sapa",
["tyt"] = "Tày Tac",
["tyu"] = "Kua",
["tyv"] = "Tuva",
["tyx"] = "Teke-Tyee",
["tyz"] = "Tày",
["tza"] = "Bahasa Isyarat Tanzania",
["tzh"] = "Tzeltal",
["tzj"] = "Tz'utujil",
["tzl"] = "Talossan",
["tzm"] = "Tamazight Atlas Tengah",
["tzn"] = "Tugun",
["tzo"] = "Tzotzil",
["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"] = "Udi",
["udj"] = "Ujir",
["udl"] = "Uldeme",
["udm"] = "Udmurt",
["udu"] = "Uduk",
["ues"] = "Kioko",
["ufi"] = "Ufim",
["ug"] = "Uyghur",
["uga"] = "Ugarit",
["ugb"] = "Kuku-Ugbanh",
["uge"] = "Ughele",
["ugn"] = "Ugandan Sign Language",
["ugo"] = "Gong",
["ugy"] = "Uruguayan Sign Language",
["uha"] = "Uhami",
["uhn"] = "Damal",
["uis"] = "Uisai",
["uiv"] = "Iyive",
["uji"] = "Tanjijili",
["uk"] = "Ukraine",
["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"] = "Unserdeutsch",
["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"] = "Watut Utara",
["und"] = "tidak ditentukan",
["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"] = "Malakula Timur Laut",
["ur"] = "Urdu",
["ura"] = "Urarina",
["urb"] = "Urubú-Kaapor",
["urc"] = "Urningangg",
["ure"] = "Uru",
["urf"] = "Uradhi",
["urg"] = "Urigina",
["urh"] = "Urhobo",
["uri"] = "Urim",
["urj-fin-pro"] = "Finnik Purba",
["urj-koo"] = "Komi Kuno",
["urj-kuk"] = "Kukkuzi",
["urj-kya"] = "Komi-Yazva",
["urj-mdv-pro"] = "Mordvinik Purba",
["urj-prm-pro"] = "Permik Purba",
["urj-pro"] = "Uralik Purba",
["urj-ugr-pro"] = "Ugrik Purba",
["urk"] = "Urak Lawoi'",
["url"] = "Urali",
["urm"] = "Urapmin",
["urn"] = "Uruangnirin",
["uro"] = "Ura (Papua 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"] = "Uvea Barat",
["uvh"] = "Uri",
["uvl"] = "Lote",
["uwa"] = "Kuku-Uwanh",
["uya"] = "Doko-Uyanga",
["uz"] = "Uzbek",
["vaa"] = "Vaagri Booli",
["vae"] = "Vale",
["vag"] = "Vagla",
["vah"] = "Varhadi",
["vai"] = "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"] = "Bontoc Barat Daya",
["ve"] = "Venda",
["vec"] = "Veneto",
["ved"] = "Veddah",
["vem"] = "Vemgo-Mabas",
["veo"] = "Ventureño",
["vep"] = "Veps",
["ver"] = "Mom Jango",
["vgr"] = "Vaghri",
["vgt"] = "Flemish Sign Language",
["vi"] = "Vietnam",
["vic"] = "Kreol Kepulauan Virgin",
["vid"] = "Vidunda",
["vif"] = "Vili",
["vig"] = "Viemo",
["vil"] = "Vilela",
["vis"] = "Vishavan",
["vit"] = "Viti",
["viv"] = "Iduna",
["vka"] = "Kariyarra",
["vki"] = "Ija-Zuba",
["vkj"] = "Kujarge",
["vkk"] = "Kaur",
["vkl"] = "Kulisusu",
["vkm"] = "Kamakan",
["vko"] = "Kodeoha",
["vkp"] = "Portugis Kreol Korlai",
["vkt"] = "Tenggarong Kutai Malay",
["vku"] = "Kurrama",
["vlp"] = "Valpei",
["vls"] = "Flemish Barat",
["vma"] = "Martuthunira",
["vmb"] = "Mbabaram",
["vmc"] = "Mixtec Juxtlahuaca",
["vmd"] = "Mudu Koraga",
["vme"] = "Masela Timur",
["vmf"] = "Franconia Timur",
["vmg"] = "Minigir",
["vmh"] = "Maraghei",
["vmi"] = "Miwa",
["vmj"] = "Mixtec Ixtayutla",
["vmk"] = "Makhuwa-Shirima",
["vml"] = "Malgana",
["vmm"] = "Mixtec Mitlatongo",
["vmp"] = "Mazatec Soyaltepec",
["vmq"] = "Mixtec Soyaltepec",
["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"] = "Volapük",
["vor"] = "Voro",
["vot"] = "Vot",
["vra"] = "Vera'a",
["vro"] = "Võro",
["vrs"] = "Varisi",
["vrt"] = "Banam Bay",
["vsi"] = "Moldova Sign Language",
["vsl"] = "Venezuelan Sign Language",
["vsv"] = "Valencian Sign Language",
["vto"] = "Vitou",
["vum"] = "Vumbu",
["vun"] = "Vunjo",
["vut"] = "Vute",
["vwa"] = "Awa (China)",
["wa"] = "Walloon",
["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"] = "Waray-Waray",
["was"] = "Washo",
["wat"] = "Kaninuwa",
["wau"] = "Wauja",
["wav"] = "Waka",
["waw"] = "Waiwai",
["wax"] = "Watam",
["way"] = "Wayana",
["waz"] = "Wampur",
["wba"] = "Warao",
["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"] = "Yanomámi",
["wci"] = "Waci Gbe",
["wdd"] = "Wandji",
["wdg"] = "Wadaginam",
["wdj"] = "Wadjiginy",
["wdt"] = "Wendat",
["wdu"] = "Wadjigu",
["wdy"] = "Wadjabangayi",
["wea"] = "Wewaw",
["wec"] = "Wè Barat",
["wed"] = "Wedau",
["weh"] = "Weh",
["wei"] = "Kiunum",
["wem"] = "Weme Gbe",
["weo"] = "Wemale",
["wer"] = "Weri",
["wes"] = "Pijin Cameroon",
["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"] = "Wahgi Utara",
["whk"] = "Kenyah Wahau",
["whu"] = "Kayan Wahau",
["wib"] = "Toussiana Selatan",
["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"] = "Winnebago",
["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"] = "Wales Pertengahan",
["wlo"] = "Wolio",
["wlr"] = "Wailapa",
["wls"] = "Wallis",
["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"] = "Mwani",
["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"] = "Wolof",
["woa"] = "Tyaraity",
["wob"] = "Wè Utara",
["woc"] = "Wogeo",
["wod"] = "Wolani",
["woe"] = "Woleai",
["wog"] = "Wogamusin",
["woi"] = "Kamang",
["wok"] = "Longto",
["wom"] = "Perema",
["won"] = "Wongo",
["woo"] = "Manombai",
["wor"] = "Woria",
["wos"] = "Hanga Hundi",
["wow"] = "Wawonii",
["wpc"] = "Wirö",
["wra"] = "Warapu",
["wrb"] = "Warluwara",
["wrg"] = "Warungu",
["wrh"] = "Wiradhuri",
["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",
["wss"] = "Wasa",
["wsu"] = "Wasu",
["wsv"] = "Wotapuri-Katarqalai",
["wtf"] = "Watiwa",
["wth"] = "Wathaurong",
["wti"] = "Berta",
["wtk"] = "Watakataui",
["wtm"] = "Mewati",
["wtw"] = "Wotu",
["wua"] = "Wikngenchera",
["wub"] = "Wunambal",
["wud"] = "Wudu",
["wuh"] = "Wutunhua",
["wul"] = "Silimo",
["wum"] = "Wumbvu",
["wun"] = "Bungu",
["wur"] = "Wurrugu",
["wut"] = "Wutung",
["wuu"] = "Wu",
["wuv"] = "Wuvulu-Aua",
["wux"] = "Wulna",
["wuy"] = "Wauyai",
["wwa"] = "Waama",
["wwo"] = "Dorig",
["wwr"] = "Warrwa",
["www"] = "Wawa",
["wxa"] = "Waxianghua",
["wxw"] = "Wardandi",
["wya"] = "Wyandot",
["wyb"] = "Ngiyambaa",
["wyi"] = "Woiwurrung",
["wym"] = "Vilamovian",
["wyr"] = "Wayoró",
["wyy"] = "Fiji Barat",
["xaa"] = "Arab Andalusia",
["xab"] = "Sambe",
["xac"] = "Kachari",
["xad"] = "Adai",
["xae"] = "Aequian",
["xag"] = "Aghwan",
["xai"] = "Kaimbé",
["xaj"] = "Ararandewára",
["xak"] = "Maku",
["xal"] = "Kalmyk",
["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"] = "Baktria",
["xbd"] = "Bindal",
["xbe"] = "Bigambal",
["xbg"] = "Bunganditj",
["xbi"] = "Kombio",
["xbj"] = "Birrpayi",
["xbm"] = "Breton Pertengahan",
["xbn"] = "Kenaboi",
["xbo"] = "Bulgar",
["xbp"] = "Bibbulman",
["xbr"] = "Kambera",
["xbw"] = "Kambiwá",
["xby"] = "Butchulla",
["xcb"] = "Cumbric",
["xcc"] = "Camunic",
["xce"] = "Celtiberian",
["xch"] = "Chemakum",
["xcl"] = "Armenia Kuno",
["xcm"] = "Comecrudo",
["xcn"] = "Cotoname",
["xco"] = "Khwarezm",
["xcr"] = "Carian",
["xct"] = "Tibet Klasik",
["xcu"] = "Curonian",
["xcv"] = "Chuva",
["xcw"] = "Coahuilteco",
["xcy"] = "Cayuse",
["xda"] = "Darkinjung",
["xdc"] = "Dacian",
["xdk"] = "Dharug",
["xdm"] = "Edom",
["xdq"] = "Kaitag",
["xdy"] = "Malayic Dayak",
["xeb"] = "Ebla",
["xed"] = "Hdi",
["xeg"] = "ǁXegwi",
["xel"] = "Kelo",
["xem"] = "Kembayan",
["xep"] = "Epi-Olmec",
["xer"] = "Xerénte",
["xes"] = "Kesawai",
["xet"] = "Xetá",
["xeu"] = "Keoru-Ahia",
["xfa"] = "Falisci",
["xga"] = "Galatia",
["xgb"] = "Gbin",
["xgd"] = "Gudang",
["xgf"] = "Gabrielino-Fernandeño",
["xgg"] = "Goreng",
["xgi"] = "Garingbal",
["xgl"] = "Galindan",
["xgm"] = "Darumbal",
["xgn-pro"] = "Mongolia Purba",
["xgr"] = "Garza",
["xgu"] = "Unggumi",
["xgw"] = "Guwa",
["xh"] = "Xhosa",
["xha"] = "Harami",
["xhc"] = "Hun",
["xhd"] = "Hadrami",
["xhe"] = "Khetrani",
["xhm"] = "Khmer Pertengahan",
["xhr"] = "Hernican",
["xht"] = "Hatti",
["xhu"] = "Hurri",
["xhv"] = "Khua",
["xib"] = "Iberia",
["xii"] = "Xiri",
["xil"] = "Illyria",
["xin"] = "Xinca",
["xir"] = "Xiriâna",
["xis"] = "Kisan",
["xiv"] = "Bahasa Lembah Indus",
["xiy"] = "Xipaya",
["xjb"] = "Minjungbal",
["xka"] = "Kalkoti",
["xkb"] = "Manigri-Kambolé Ede Nago",
["xkc"] = "Khoini",
["xkd"] = "Kayan Mendalam",
["xke"] = "Kereho",
["xkf"] = "Khengkha",
["xkg"] = "Kagoro",
["xki"] = "Isyarat Kenya",
["xkj"] = "Kajali",
["xkk"] = "Kaco'",
["xkl"] = "Bakung",
["xkn"] = "Kayan Sungai 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"] = "Lycia",
["xld"] = "Lydia",
["xle"] = "Lemnos",
["xlg"] = "Liguria Purba",
["xli"] = "Liburni",
["xlo"] = "Loup A",
["xlp"] = "Lepontii",
["xls"] = "Lusitania",
["xlu"] = "Luwiya",
["xly"] = "Elymi",
["xmb"] = "Mbonga",
["xmc"] = "Makhuwa-Marrevone",
["xmd"] = "Mbudum",
["xme-ker"] = "Kermanik",
["xme-kls"] = "Kalasuri",
["xme-klt"] = "Kilit",
["xme-mid"] = "Median Pertengahan",
["xme-old"] = "Median Kuno",
["xme-ott"] = "Tati Kuno",
["xme-taf"] = "Tafreshi",
["xme-ttc-pro"] = "Tatik Purba",
["xmf"] = "Mingrelia",
["xmg"] = "Mengaka",
["xmh"] = "Kugu-Muminh",
["xmj"] = "Majera",
["xmk"] = "Macedonia Purba",
["xml"] = "Isyarat Malaysia",
["xmm"] = "Melayu Manado",
["xmo"] = "Morerebi",
["xmp"] = "Kuku-Mu'inh",
["xmq"] = "Kuku-Mangk",
["xmr"] = "Meroe",
["xms"] = "Isyarat Maghribi",
["xmt"] = "Matbat",
["xmu"] = "Kamu",
["xmx"] = "Maden",
["xmy"] = "Mayaguduna",
["xmz"] = "Mori Bawah",
["xna"] = "Arab Utara Purba",
["xnb"] = "Kanakanabu",
["xnd-pro"] = "Na-Dene Purba",
["xng"] = "Mongol Pertengahan",
["xnh"] = "Kuanhua",
["xni"] = "Ngarigu",
["xnk"] = "Nganakarti",
["xnn"] = "Kankanay Utara",
["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"] = "Tasmania Tenggara",
["xpg"] = "Phrygia",
["xph"] = "Tyerrernotepanner",
["xpi"] = "Pict",
["xpj"] = "Mpalitjanh",
["xpk"] = "Kulina",
["xpl"] = "Port Sorell",
["xpm"] = "Pumpokol",
["xpn"] = "Kapinawá",
["xpo"] = "Pochutec",
["xpp"] = "Puyo-Paekche",
["xpq"] = "Mohegan-Pequot",
["xpr"] = "Parthia",
["xps"] = "Pisidia",
["xpu"] = "Punik",
["xpv"] = "Tommeginne",
["xpw"] = "Peerapper",
["xpx"] = "Toogee",
["xpy"] = "Buyeo",
["xpz"] = "Pulau Bruny",
["xqa"] = "Karakhanid",
["xqt"] = "Qatabanian",
["xra"] = "Krahô",
["xrb"] = "Karaboro Timur",
["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"] = "Sambal",
["xsc-pro"] = "Scythia Purba",
["xsc-sak-pro"] = "Saka Purba",
["xsc-sar-pro"] = "Sarmatia Purba",
["xsc-skw-pro"] = "Saka-Wakhi Purba",
["xsd"] = "Sidetic",
["xse"] = "Sempan",
["xsh"] = "Shamang",
["xsi"] = "Sio",
["xsj"] = "Subi",
["xsl"] = "Slavey Selatan",
["xsm"] = "Kasem",
["xsn"] = "Sanga (Nigeria)",
["xso"] = "Solano",
["xsp"] = "Silopi",
["xsq"] = "Makhuwa-Saka",
["xsr"] = "Sherpa",
["xss"] = "Assan",
["xsu"] = "Sanumá",
["xsv"] = "Sudovian",
["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"] = "Mixtec Magdalena Peñasco",
["xtn"] = "Mixtec Tlaxiaco Utara",
["xto"] = "Tocharia A",
["xtp"] = "Mixtec San Miguel Piedras",
["xtq"] = "Tumshuq",
["xtr"] = "Tripuri Awal",
["xts"] = "Mixtec Sindihui",
["xtt"] = "Mixtec Tacahua",
["xtu"] = "Mixtec Cuyamecalco",
["xtv"] = "Thawa",
["xtw"] = "Tawandê",
["xty"] = "Mixtec Yoloxochitl",
["xtz"] = "Tasmania",
["xua"] = "Kurumba Alu",
["xub"] = "Kurumba Betta",
["xud"] = "Umiida",
["xug"] = "Kunigami",
["xuj"] = "Jennu Kurumba",
["xul"] = "Ngunawal",
["xum"] = "Umbri",
["xun"] = "Unggaranggu",
["xuo"] = "Kuo",
["xup"] = "Upper Umpqua",
["xur"] = "Urartian",
["xut"] = "Kuthant",
["xuu"] = "Khwe",
["xve"] = "Venetic",
["xvn"] = "Vandalic",
["xvo"] = "Volscian",
["xvs"] = "Vestinian",
["xwa"] = "Kwaza",
["xwc"] = "Woccon",
["xwd"] = "Wadi Wadi",
["xwe"] = "Xwela Gbe",
["xwg"] = "Kwegu",
["xwj"] = "Wajuk",
["xwk"] = "Wangkumara",
["xwl"] = "Gbe Xwla Barat",
["xwo"] = "Oirat Bertulis",
["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"] = "Zemgalia",
["xzp"] = "Zapotec Purba",
["yaa"] = "Yaminahua",
["yab"] = "Yuhup",
["yac"] = "Pass Valley Yali",
["yad"] = "Yagua",
["yae"] = "Pumé",
["yaf"] = "Yaka",
["yag"] = "Yámana",
["yah"] = "Yazghulami",
["yai"] = "Yagnobi",
["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"] = "Yugur Barat",
["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"] = "Kreol Yilan",
["yda"] = "Yanda",
["yde"] = "Yangum Dey",
["ydg"] = "Yidgha",
["ydk"] = "Yoidik",
["yea"] = "Ravula",
["yec"] = "Yeniche",
["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"] = "Yiddish",
["yia"] = "Yinggarda",
["yif"] = "Ache",
["yig"] = "Wusa Nasu",
["yii"] = "Yidiny",
["yij"] = "Yindjibarndi",
["yik"] = "Dongshanba Lalo",
["yil"] = "Yindjilandji",
["yim"] = "Yimchungru Naga",
["yin"] = "Yinchia",
["yip"] = "Pholo",
["yiq"] = "Miqie",
["yir"] = "Awyu Utara",
["yis"] = "Yis",
["yit"] = "Lalu Timur",
["yiu"] = "Awu",
["yiv"] = "Nisu Utara",
["yix"] = "Axi",
["yiy"] = "Yir-Yoront",
["yiz"] = "Azhe",
["yka"] = "Yakan",
["ykg"] = "Yukaghir Utara",
["ykh"] = "Mongol Khamnigan",
["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"] = "Nyâlayu",
["ymb"] = "Yambes",
["ymc"] = "Muji Selatan",
["ymd"] = "Muda",
["yme"] = "Yameo",
["ymg"] = "Yamongeri",
["ymh"] = "Mili",
["ymi"] = "Moji",
["ymk"] = "Makwe",
["yml"] = "Iamalele",
["ymm"] = "Maay",
["ymn"] = "Sunum",
["ymo"] = "Mon Yangum",
["ymp"] = "Yamap",
["ymq"] = "Muji Qila",
["ymr"] = "Malasar",
["yms"] = "Mysian",
["ymx"] = "Muji Utara",
["ymz"] = "Muzi",
["yna"] = "Aluo",
["ynd"] = "Yandruwandha",
["yne"] = "Lang'e",
["yng"] = "Yango",
["ynk"] = "Naukanski",
["ynl"] = "Yangulam",
["ynn"] = "Yana",
["yno"] = "Yong",
["yns"] = "Yansi",
["ynu"] = "Yahuna",
["yo"] = "Yoruba",
["yob"] = "Yoba",
["yog"] = "Yogad",
["yoi"] = "Yonaguni",
["yok-bvy"] = "Yokuts Buena Vista",
["yok-dly"] = "Yokuts Delta",
["yok-gsy"] = "Yokuts Gashowu",
["yok-kry"] = "Yokuts Sungai Kings",
["yok-nvy"] = "Yokuts Lembah Utara",
["yok-ply"] = "Yokuts Palewyami",
["yok-svy"] = "Yokuts Lembah Selatan",
["yok-tky"] = "Yokuts Tule-Kaweah",
["yol"] = "Yola",
["yom"] = "Yombe",
["yon"] = "Yongkom",
["yox"] = "Yoron",
["yoy"] = "Yoy",
["ypa"] = "Phala",
["ypb"] = "Labo Phowa",
["ypg"] = "Phola",
["yph"] = "Phupha",
["ypk-pro"] = "Yupik Purba",
["ypm"] = "Phuma",
["ypn"] = "Ani Phowa",
["ypo"] = "Alo Phola",
["ypp"] = "Phupa",
["ypz"] = "Phuza",
["yra"] = "Yerakai",
["yrb"] = "Yareba",
["yre"] = "Yaouré",
["yri"] = "Yarí",
["yrk"] = "Nenets Tundra",
["yrk-for"] = "Nenets Hutan",
["yrk-tun"] = "Nenets Tundra",
["yrl"] = "Nheengatu",
["yrn"] = "Yerong",
["yro"] = "Yaroamë",
["yrw"] = "Yarawata",
["yry"] = "Yarluyandi",
["ysc"] = "Jassic",
["ysd"] = "Samatao",
["ysg"] = "Sonaga",
["ysl"] = "Yugoslavian Sign Language",
["ysn"] = "Sani",
["yso"] = "Nisi",
["ysp"] = "Lolopo Selatan",
["ysr"] = "Sirenik",
["yss"] = "Yessan-Mayo",
["ysy"] = "Sanie",
["yta"] = "Talu",
["ytl"] = "Tanglang",
["ytp"] = "Thopho",
["ytw"] = "Yout Wam",
["yty"] = "Yatay",
["yua"] = "Maya Yucatec",
["yub"] = "Yugambal",
["yuc"] = "Yuchi",
["yue"] = "Kantonis",
["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"] = "Yukaghir Selatan",
["yuy"] = "Yugur Timur",
["yuz"] = "Yuracare",
["yva"] = "Yawa",
["yvt"] = "Yavitero",
["ywa"] = "Kalou",
["ywg"] = "Yinhawangka",
["ywl"] = "Lalu Barat",
["ywn"] = "Yawanawa",
["ywq"] = "Nasu",
["ywr"] = "Yawuru",
["ywt"] = "Xishanba Lalo",
["ywu"] = "Wumeng Nasu",
["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"] = "Zhuang",
["zaa"] = "Zapotec Sierra de Juárez",
["zab"] = "Zapotec San Juan Guelavía",
["zac"] = "Zapotec Ocotlán",
["zad"] = "Zapotec Cajonos",
["zae"] = "Zapotec Yareni",
["zaf"] = "Zapotec Ayoquesco",
["zag"] = "Zaghawa",
["zah"] = "Zangwal",
["zai"] = "Zapotec Segenting",
["zaj"] = "Zaramo",
["zak"] = "Zanaki",
["zal"] = "Zauzou",
["zam"] = "Zapoteco Mahuatlán Tengah",
["zao"] = "Zapotec Ozolotepec",
["zap"] = "Zapotec",
["zaq"] = "Zapotec Aloápam",
["zar"] = "Zapotec Rincón",
["zas"] = "Zapotec Santo Domingo Albarradas",
["zat"] = "Zapotec Tabaa",
["zau"] = "Zangskar",
["zav"] = "Zapotec Yatzachi",
["zaw"] = "Zapotec Mitla",
["zax"] = "Zapotec Xadani",
["zay"] = "Zayse-Zergulla",
["zaz"] = "Zari",
["zbt"] = "Batui",
["zca"] = "Zapotec Coatecas Altas",
["zdj"] = "Comoros Ngazidja",
["zea"] = "Zeeland",
["zeg"] = "Zenag",
["zen"] = "Zenaga",
["zga"] = "Kinga",
["zgh"] = "Amazigh Maghribi",
["zgr"] = "Magori",
["zh"] = "Cina",
["zhb"] = "Zhaba",
["zhi"] = "Zhire",
["zhn"] = "Nong Zhuang",
["zhw"] = "Zhoa",
["zhx-min-pro"] = "Min Purba",
["zhx-sht"] = "Tuhua Shaozhou",
["zhx-sic"] = "Sichuan",
["zhx-tai"] = "Taishan",
["zia"] = "Zia",
["zib"] = "Zimbabwe Sign Language",
["zik"] = "Zimakani",
["zil"] = "Zialo",
["zim"] = "Mesme",
["zin"] = "Zinza",
["zir"] = "Ziriya",
["ziw"] = "Zigula",
["ziz"] = "Zizilivakan",
["zka"] = "Kaimbulawa",
["zkb"] = "Koibal",
["zkg"] = "Goguryeo",
["zkh"] = "Khorezmian Turkic",
["zkk"] = "Karankawa",
["zko"] = "Kott",
["zkp"] = "Kaingáng São Paulo",
["zkr"] = "Zakhring",
["zkt"] = "Khitan",
["zku"] = "Kaurna",
["zkv"] = "Krevinian",
["zkz"] = "Khazar",
["zle-ono"] = "Novgorod Kuno",
["zle-ort"] = "Ruthenia Kuno",
["zls-chs"] = "Slavonic Gereja",
["zlw-ocs"] = "Czech Kuno",
["zlw-opl"] = "Poland Kuno",
["zlw-osk"] = "Slovak Kuno",
["zlw-slv"] = "Slovincia",
["zma"] = "Manda (Australia)",
["zmb"] = "Zimba",
["zmc"] = "Margany",
["zmd"] = "Maridan",
["zme"] = "Mangerr",
["zmf"] = "Mfinu",
["zmg"] = "Marti Ke",
["zmh"] = "Makolkol",
["zmi"] = "Melayu Negeri Sembilan",
["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"] = "Kaya",
["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"] = "Zulu",
["zua"] = "Zeem",
["zuh"] = "Tokano",
["zum"] = "Kumzari",
["zun"] = "Zuni",
["zuy"] = "Zumaya",
["zwa"] = "Zay",
["zyp"] = "Zyphe",
["zza"] = "Zazaki",
["zzj"] = "Zuojiang Zhuang",
}
501bivdgcft8cz1e98azs1ihe2uupkw
Modul:category tree/etymology
828
12227
373534
335196
2026-09-11T04:39:08Z
SNN95
2113
373534
Scribunto
text/plain
local labels = {}
local raw_categories = {}
local handlers = {}
local raw_handlers = {}
local en_utilities_module = "Module:en-utilities"
local m_str_utils = require("Module:string utilities")
local add_indefinite_article = require(en_utilities_module).add_indefinite_article
local full_link = require("Module:links").full_link
local get_lang_by_name = require("Module:languages").getByCanonicalName
local get_family_by_category_name = require("Module:families").getByCategoryName
local insert = table.insert
local pattern_escape = m_str_utils.pattern_escape
local plain_gsub = m_str_utils.plain_gsub
local pluralize_pos = require("Module:headword").pluralize_pos
local pos_lemma_or_nonlemma = require("Module:headword").pos_lemma_or_nonlemma
local serial_comma_join = require("Module:table").serialCommaJoin
local tag_text = require("Module:script utilities").tag_text
local umatch = mw.ustring.match
local unpack = unpack or table.unpack -- Lua 5.2 compatibility
-----------------------------------------------------------------------------
-- --
-- LABELS --
-- --
-----------------------------------------------------------------------------
labels["Perkataan mengikut etimologi"] = {
description = "Perkataan bahasa {{{langname}}} yang dikategorikan mengikut etimologinya.",
umbrella_parents = "Asas",
parents = {{name = "{{{langcat}}}", raw = true}},
}
labels["AABB-type reduplications"] = {
description = "{{{langname}}} terms that underwent [[reduplication]] in an AABB pattern.",
breadcrumb = "AABB-type",
parents = {"reduplications"},
}
labels["apophonic reduplications"] = {
description = "{{{langname}}} terms that underwent [[reduplication]] with only a change in a vowel sound.",
breadcrumb = "apophonic",
parents = {"reduplications"},
}
labels["back-formations"] = {
description = "{{{langname}}} terms formed by reversing a supposed regular formation, removing part of an older term.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Paduan"] = {
description = "Perkataan bahasa {{{langname}}} yang dibentuk melalui gabungan berbilang perkataan.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Kata pinjaman"] = {
description = "Perkataan bahasa {{{langname}}} yang merupakan kata pinjaman, yakni istilah yang diserapkan secara langsung daripada bahasa lain.",
parents = {"Perkataan mengikut etimologi"},
}
labels["catachreses"] = {
description = "{{{langname}}} terms derived from misuses or misapplications of other terms.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Kata ciptaan"] = {
description = "{{{langname}}} terms coined by an identifiable person, organization or other such entity.",
parents = {"Perkataan yang dikaitkan dengan sumber tertentu"},
umbrella_parents = {name = "Perkataan yang dikaitkan dengan sumber tertentu", is_label = true, sort = " "},
}
labels["coordinated pairs"] = {
description = "Terms in {{{langname}}} consisting of a pair of terms joined by a [[coordinating conjunction]].",
parents = {"Perkataan mengikut etimologi"},
}
labels["coordinated triples"] = {
description = "Terms in {{{langname}}} consisting of three terms joined by one or more [[coordinating conjunction]]s.",
parents = {"Perkataan mengikut etimologi"},
}
labels["coordinated quadruples"] = {
description = "Terms in {{{langname}}} consisting of four terms joined by one or more [[coordinating conjunction]]s.",
parents = {"Perkataan mengikut etimologi"},
}
labels["coordinated quintuples"] = {
description = "Terms in {{{langname}}} consisting of five terms joined by one or more [[coordinating conjunction]]s.",
parents = {"Perkataan mengikut etimologi"},
}
labels["denominals"] = {
description = "{{{langname}}} terms derived from a noun.",
parents = {"Perkataan mengikut etimologi"},
}
labels["deverbals"] = {
description = "{{{langname}}} terms derived from a verb.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Bentuk kembar"] = {
description = "Juga dikenali sebagai '''dublet''' bahasa {{{langname}}}, yang melibatkan suatu perkataan bahasa {{{langname}}} yang apabila etimologinya dijejaki adalah berasal daripada sumber yang sama seperti perkataan lagi satu yang terdapat dalam bahasa yang sama, tetapi melalui laluan perkembangan yang berbeza, dan selalunya dengan makna yang sama ada halus bezanya ataupun jauh bezanya.",
parents = {"Perkataan mengikut etimologi"},
}
labels["elongated forms"] = {
description = "{{{langname}}} terms where one or more letters or sounds is repeated for emphasis or effect.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Eponim"] = {
description = "Perkataan {{{langname}}} yang diterbitkan daripada nama orang sebenar atau cereka.",
parents = {"Perkataan mengikut etimologi"},
}
labels["genericized trademarks"] = {
description = "{{{langname}}} terms that originate from [[trademark]]s, [[brand]]s and company names which have become [[genericized]]; that is, fallen into common usage in the target market's [[vernacular]], even when referring to other competing brands.",
parents = {"Perkataan mengikut etimologi", "trademarks"},
}
labels["ghost words"] = {
description = "{{{langname}}} terms that were originally erroneous or fictitious, published in a reference work as if they were genuine as a result of typographical error, misreading, or misinterpretation, or as [[:w:Fictitious entry|fictitious entries]], jokes, or hoaxes.",
parents = {"Perkataan mengikut etimologi"},
}
labels["gramograms"] = {
description = "{{{langname}}} [[gramogram]]s – terms that are partially or completely spelled with [[homophone|homophonous]] letters.",
parents = {"rebuses"},
}
labels["haplological words"] = {
description = "{{{langname}}} words that underwent [[haplology]]: thus, their origin involved a loss or omission of a repeated sequence of sounds.",
parents = {"Perkataan mengikut etimologi"},
}
labels["homophonic translations"] = {
description = "{{{langname}}} terms that were borrowed by matching the etymon phonetically, without regard for the sense; compare [[phono-semantic matching]] and [[Hobson-Jobson]].",
parents = {"Perkataan mengikut etimologi"}
}
labels["hybridisms"] = {
description = "{{{langname}}} terms formed by elements of different linguistic origins.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Kata warisan"] = {
description = "Perkataan bahasa {{{langname}}} yang diwariskan daripada tahap perkembangan bahasa tersebut yang lebih awal.",
parents = {"Perkataan mengikut etimologi"},
}
labels["internationalisms"] = {
description = "{{{langname}}} loanwords which also exist in many other languages with the same or similar etymology.",
additional = "Terms should be here preferably only if the immediate source language is not known for certain. Entries are added into this category by [[Template:internationalism]]; see it for more information.",
parents = {"Perkataan mengikut etimologi"},
}
labels["legal doublets"] = {
description = "{{{langname}}} legal [[doublet]]s – a legal doublet is a standardized phrase commonly used in legal documents, proceedings etc. which includes two words that are near synonyms.",
parents = {"coordinated pairs"},
}
labels["legal triplets"] = {
description = "{{{langname}}} legal [[triplet]]s – a legal triplet is a standardized phrase commonly used in legal documents, proceedings etc which includes three words that are near synonyms.",
parents = {"coordinated triples"},
}
labels["LLM coinages"] = {
description = "{{{langname}}} terms that have been coined by {{w|large language models}} rather than humans.",
parents = {"Perkataan mengikut etimologi"},
}
labels["merisms"] = {
description = "{{{langname}}} [[merism]]s – terms that are [[coordinate]]s that, combined, are a synonym for a totality.",
parents = {"coordinated pairs"},
}
labels["Metonim"] = {
description = "Perkataan bahasa {{{langname}}} di mana asal perkataannya terbit daripada nama sesuatu yang terkait dengan benda atau konsep yang dirujuk.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Neologisme"] = {
description = "Perkataan bahasa {{{langname}}} yang diiktirad baru-baru ini.",
parents = {"Perkataan mengikut etimologi"},
}
labels["nonce terms"] = {
description = "{{{langname}}} terms that have been invented for a single occasion.",
parents = {"Perkataan mengikut etimologi"},
}
labels["number homophones"] = {
description = "{{{langname}}} terms that are partially or completely spelled with [[homophone|homophonous]] numbers.",
parents = {"rebuses", "terms spelled with numbers"},
}
labels["numerical contractions"] = {
description = "{{{langname}}} numerical contractions. In these, the number either denotes omitted characters ({{m+|en|globalization}} → {{m|en|g11n}}) or duplication ({{m+|kne|Kankanaey}} → {{m|kne|Kan2aey}}).",
parents = {"contractions", "rebuses", "terms spelled with numbers"},
}
labels["Onomatopeia"] = {
description = "Perkataan bahasa {{{langname}}} yang terbit daripada bunyi benda yang diwakilinya.",
parents = {"Perkataan mengikut etimologi"},
}
labels["piecewise doublets"] = {
description = "{{{langname}}} terms that are [[Appendix:Glossary#piecewise doublet|piecewise doublets]].",
parents = {"Perkataan mengikut etimologi"},
}
-- FIX 3: changed parents from {"pseudo-loans"} to {"pinjaman palsu"}
-- and umbrella_parents from "pseudo-loans" to "pinjaman palsu"
for _, ism_and_langname in ipairs({
{"anglicisms", "English"},
{"Arabisms", "Arabic"},
{"Gallicisms", "French"},
{"Germanisms", "German"},
{"Hispanisms", "Spanish"},
{"Italianisms", "Italian"},
{"Latinisms", "Latin"},
{"Japonisms", "Japanese"},
}) do
local ism, langname = unpack(ism_and_langname)
labels["pseudo-" .. ism] = {
description = "{{{langname}}} terms that appear to be " .. langname .. ", but are not used or have an unrelated meaning in " .. langname .. " itself.",
parents = {"pinjaman palsu"},
umbrella_parents = {name = "pinjaman palsu", is_label = true, sort = " "},
}
end
labels["rebracketings"] = {
description = "{{{langname}}} terms that have interacted with another word in such a way that the boundary between the words has been modified.",
parents = {"Perkataan mengikut etimologi"}
}
labels["rebuses"] = {
description = "{{{langname}}} [[rebus]]es – terms that are partially or completely represented by images, symbols or numbers, often as a form of wordplay.",
parents = {"Perkataan mengikut etimologi"},
}
labels["reconstructed terms"] = {
description = "{{{langname}}} terms that are not directly attested, but have been reconstructed through other evidence.",
parents = {"Perkataan mengikut etimologi"}
}
labels["reduplicated coordinated pairs"] = {
description = "{{{langname}}} reduplicated coordinated pairs.",
breadcrumb = "reduplicated",
parents = {"coordinated pairs", "reduplications"},
}
labels["reduplicated coordinated triples"] = {
description = "{{{langname}}} reduplicated coordinated triples.",
breadcrumb = "reduplicated",
parents = {"coordinated triples", "reduplications"},
}
labels["reduplicated coordinated quadruples"] = {
description = "{{{langname}}} reduplicated coordinated quadruples.",
breadcrumb = "reduplicated",
parents = {"coordinated quadruples", "reduplications"},
}
labels["reduplicated coordinated quintuples"] = {
description = "{{{langname}}} reduplicated coordinated quintuples.",
breadcrumb = "reduplicated",
parents = {"coordinated quintuples", "reduplications"},
}
labels["reduplications"] = {
description = "{{{langname}}} terms that underwent [[reduplication]], so their origin involved a repetition of roots or stems.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Retronim"] = {
description = "Perkataan bahasa {{{langname}}} yang berfungsi sebagai nama unik baharu untuk objek atau konsep lama yang nama sebelumnya menjadi samar.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Akar"] = {
description = "Morfem asas yang dari mana terbitnya perkataan-perkataan bahasa {{{langname}}}.",
parents = {"Perkataan mengikut etimologi", "Morfem"},
}
labels["Sanskritic formations"] = {
description = "{{{langname}}} terms coined from [[tatsama]] [[word]]s and/or [[affix]]es.",
parents = {"Perkataan mengikut etimologi", "terms derived from Sanskrit"},
}
labels["sound-symbolic terms"] = {
description = "{{{langname}}} terms that use {{w|sound symbolism}} to express ideas but which are not necessarily strictly speaking [[onomatopoeic]].",
parents = {"Perkataan mengikut etimologi"},
}
labels["spelled-out initialisms"] = {
description = "{{{langname}}} initialisms in which the letter names are spelled out.",
parents = {"Perkataan mengikut etimologi"},
}
labels["spelling pronunciations"] = {
description = "{{{langname}}} terms whose pronunciation was historically or presently affected by their spelling.",
parents = {"Perkataan mengikut etimologi"},
}
labels["spoonerisms"] = {
description = "{{{langname}}} terms in which the initial sounds of component parts have been exchanged, as in \"crook and nanny\" for \"nook and cranny\".",
parents = {"Perkataan mengikut etimologi"},
}
-- FIX 2: changed parent from "eponyms" to "Eponim" to match the renamed Malay label
labels["taxonomic eponyms"] = {
description = "{{{langname}}} terms derived from names of real or fictitious people, used for [[taxonomy]].",
parents = {"Eponim"},
}
labels["Perkataan yang dikaitkan dengan sumber tertentu"] = {
lang_position = "mid",
label_before = "Perkataan",
label_after = "yang dikaitkan dengan sumber tertentu",
description = "{{{langname}}} terms coined by an identifiable person or deriving from a known work.",
parents = {"Perkataan mengikut etimologi"},
}
labels["terms coined ex nihilo"] = {
description = "{{{langname}}} terms fabricated ''[[ex nihilo]]'', i.e. made up entirely rather than being derived from an existing source.",
parents = {"Perkataan mengikut etimologi"},
}
labels["terms containing fossilized case endings"] = {
description = "{{{langname}}} terms which preserve case morphology which is no longer analyzable within the contemporary grammatical system or which has been entirely lost from the language.",
parents = {"Perkataan mengikut etimologi"},
}
labels["terms derived from area codes"] = {
description = "{{{langname}}} terms derived from [[area code]]s.",
parents = {"Perkataan mengikut etimologi"},
}
labels["perkataan diterbitkan daripada shape of letters"] = {
description = "{{{langname}}} perkataan diterbitkan daripada shape of letters. This can include perkataan diterbitkan daripada shape of any letter in any alphabet.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Perkataan mengikut akar"] = {
description = "Perkataan bahasa {{{langname}}} yang dikategorikan mengikut akar asalnya.",
parents = {"Perkataan mengikut etimologi", {name = "Akar", sort = " "}},
}
-- FIX 1: added missing label "Perkataan mengikut perkataan", equivalent to English "terms by word".
-- This is referenced in the word handler as a parent category but was never defined.
labels["Perkataan mengikut perkataan"] = {
lang_position = "mid",
label_before = "Perkataan",
label_after = "mengikut perkataan",
description = "Perkataan bahasa {{{langname}}} yang dikategorikan mengikut perkataan asalnya.",
parents = {"Perkataan mengikut etimologi"},
}
labels["terms derived from fiction"] = {
description = "{{{langname}}} terms that originate from works of [[fiction]].",
breadcrumb = "fiction",
parents = {{name = "Perkataan yang dikaitkan dengan sumber tertentu", sort = "fiction"}},
}
for _, data in ipairs {
{source="Dickensian works", desc="the works of [[w:Charles Dickens|Charles Dickens]]", topic_parent="Charles Dickens"},
{source="DC Comics", desc="[[w:DC Comics|DC Comics]]"},
{source="Doraemon", desc="[[w:Fujiko F. Fujio|Fujiko F. Fujio]]'s ''[[w:Doraemon|Doraemon]]''", displaytitle="''Doraemon''"},
{source="Dragon Ball", desc="[[w:Akira Toriyama|Akira Toriyama]]'s ''[[w:Dragon Ball|Dragon Ball]]''", displaytitle="''Dragon Ball''"},
{source="Duckburg and Mouseton", desc="[[w:The Walt Disney Company|Disney]]'s [[w:Duck universe|Duckburg]] and [[w:Mickey Mouse universe|Mouseton]] universe",
topic_parent="Disney"},
{source="Futurama", desc="the animated television series ''{{w|Futurama}}''", displaytitle = "''Futurama''"},
{source="Harry Potter", desc="the ''[[w:Harry Potter|Harry Potter]]'' series", displaytitle="''Harry Potter''",
topic_parent="Harry Potter"},
{source="Looney Tunes and Merrie Melodies", desc="''{{w|Looney Tunes}}'' and/or ''{{w|Merrie Melodies}}'', by {{w|Warner Bros. Animation}}", displaytitle = "''Looney Tunes'' and ''Merrie Melodies''"},
{source="Nineteen Eighty-Four", desc="[[w:George Orwell|George Orwell]]'s ''[[w:Nineteen Eighty-Four|Nineteen Eighty-Four]]''",
displaytitle="''Nineteen Eighty-Four''"},
{source="Seinfeld", desc="the American television sitcom ''{{w|Seinfeld}}'' (1989–1998)", displaytitle="''Seinfeld''"},
{source="Seussian works", desc="the works of [[w:Dr. Seuss|Dr. Seuss]]", topic_parent="Dr. Seuss"},
{source="South Park", desc="the animated television series ''[[w:South Park|South Park]]''", displaytitle="''South Park''"},
{source="Star Trek", desc="''[[w:Star Trek|Star Trek]]''", displaytitle="''Star Trek''", topic_parent="Star Trek"},
{source="Star Wars", desc="''[[w:Star Wars|Star Wars]]''", displaytitle="''Star Wars''", topic_parent="Star Wars"},
{source="The Simpsons", desc="''[[w:The Simpsons|The Simpsons]]''", displaytitle="''The Simpsons''", topic_parent="The Simpsons", sort="Simpsons"},
{source="Tolkien's legendarium", desc="the [[legendarium]] of [[w:J. R. R. Tolkien|J. R. R. Tolkien]]", topic_parent="J. R. R. Tolkien"},
} do
local parents = {{name = "terms derived from fiction", sort = data.sort or data.source}}
local umbrella_parents = {"Subkategori perkataan mengikut etimologi mengikut bahasa"}
if data.topic_parent then
insert(parents, {name = "{{{langcode}}}:" .. data.topic_parent, raw = true})
insert(umbrella_parents, {name = data.topic_parent, raw = true})
end
labels["Perkataan diterbitkan daripada " .. data.source] = {
description = "Perkataan bahasa {{{langname}}} yang berasal daripada " .. data.desc .. ".",
breadcrumb = data.displaytitle or data.source,
parents = parents,
umbrella = {
parents = umbrella_parents,
displaytitle = data.displaytitle and "Perkataan diterbitkan daripada " .. data.displaytitle .. " mengikut bahasa" or nil,
breadcrumb = data.displaytitle and "Perkataan diterbitkan daripada " .. data.displaytitle,
},
displaytitle = data.displaytitle and "Perkataan bahasa {{{langname}}} diterbitkan daripada " .. data.displaytitle or nil,
}
end
labels["terms derived from Greek mythology"] = {
description = "{{{langname}}} terms derived from Greek mythology which have acquired an idiomatic meaning.",
breadcrumb = "Greek mythology",
parents = {{name = "Perkataan yang dikaitkan dengan sumber tertentu", sort = "Greek mythology"}},
}
labels["terms derived from occupations"] = {
description = "{{{langname}}} terms derived from names of occupations.",
parents = {"Perkataan mengikut etimologi"},
}
labels["Perkataan diterbitkan daripada bahasa lain"] = {
description = "Perkataan bahasa {{{langname}}} yang berasal daripada bahasa-bahasa lain.",
lang_position = "mid",
label_before = "Perkataan",
label_after = "diterbitkan daripada bahasa lain",
parents = {"Perkataan mengikut etimologi"},
}
labels["perkataan diterbitkan daripada Bible"] = {
description = "{{{langname}}} terms that originate from the [[Bible]].",
breadcrumb = {name = "the Bible", nocap = true},
parents = {{name = "Perkataan yang dikaitkan dengan sumber tertentu", sort = "Bible"}},
}
labels["terms derived from Aesop's Fables"] = {
description = "{{{langname}}} terms that originate from [[Aesop]]'s Fables.",
breadcrumb = "Aesop's Fables",
parents = {{name = "Perkataan yang dikaitkan dengan sumber tertentu", sort = "Aesop's Fables"}},
}
labels["terms derived from toponyms"] = {
description = "{{{langname}}} terms derived from names of real or fictitious places.",
parents = {"Perkataan mengikut etimologi"},
}
labels["terms derived through romanized wordplay"] = {
description = "{{{langname}}} terms derived through romanized wordplay.",
parents = {"Perkataan mengikut etimologi"},
}
labels["terms making reference to character shapes"] = {
description = "{{{langname}}} terms making reference to character shapes.",
parents = {"Perkataan mengikut etimologi"},
}
labels["terms derived from sports"] = {
description = "{{{langname}}} terms that originate from sports.",
breadcrumb = "sports",
parents = {{name = "Perkataan yang dikaitkan dengan sumber tertentu", sort = "sports"}},
}
labels["terms derived from baseball"] = {
description = "{{{langname}}} terms that originate from baseball.",
breadcrumb = "baseball",
parents = {{name = "terms derived from sports", sort = "baseball"}},
}
labels["terms with Indo-Aryan extensions"] = {
description = "{{{langname}}} terms extended with particular [[Indo-Aryan]] [[pleonastic]] affixes.",
parents = {"Perkataan mengikut etimologi"},
}
-- FIX 5a: renamed from "terms with lemma and non-lemma form etymologies" to a Malay key,
-- and updated parent reference from "terms with multiple etymologies" to "Perkataan dengan pelbagai etimologi".
labels["Perkataan dengan etimologi lema dan bentuk bukan lema"] = {
description = "{{{langname}}} terms consisting of both a lemma and non-lemma form, of different origins.",
breadcrumb = "lema dan bentuk bukan lema",
parents = {"Perkataan dengan pelbagai etimologi"},
}
-- FIX 4: renamed from "terms with multiple etymologies" to "Perkataan dengan pelbagai etimologi".
labels["Perkataan dengan pelbagai etimologi"] = {
description = "{{{langname}}} terms that are derived from multiple origins.",
parents = {"Perkataan mengikut etimologi"},
}
-- FIX 5b: renamed from "terms with multiple lemma etymologies" to match handler output
-- ("perkataan dengan pelbagai etimologi " .. postype, where postype == "lemma").
-- Updated parent to "Perkataan dengan pelbagai etimologi".
labels["perkataan dengan pelbagai etimologi lema"] = {
description = "{{{langname}}} lemmas that are derived from multiple origins.",
breadcrumb = "pelbagai etimologi lema",
parents = {"Perkataan dengan pelbagai etimologi"},
}
-- FIX 5c: renamed from "terms with multiple non-lemma form etymologies" to match handler output
-- ("perkataan dengan pelbagai etimologi " .. postype, where postype == "non-lemma form").
-- Updated parent to "Perkataan dengan pelbagai etimologi".
labels["perkataan dengan pelbagai etimologi bentuk bukan lema"] = {
description = "{{{langname}}} non-lemma forms that are derived from multiple origins.",
breadcrumb = "pelbagai etimologi bentuk bukan lema",
parents = {"Perkataan dengan pelbagai etimologi"},
}
labels["Perkataan dengan etimologi tidak diketahui"] = {
description = "Perkataan bahasa {{{langname}}} dengan etimologi yang belum disahkan.",
parents = {{name = "Perkataan mengikut etimologi", sort = "tidak diketahui"}},
}
labels["univerbations"] = {
description = "{{{langname}}} terms that result from the agglutination of two or more words.",
parents = {"Perkataan mengikut etimologi"},
}
labels["words derived through corruption"] = {
description = "{{{langname}}} words that result from a non-specific or sporadic change.",
parents = {{name = "Perkataan mengikut etimologi", sort = "corruption"}},
}
labels["words derived through metathesis"] = {
description = "{{{langname}}} words that were created through [[metathesis]] from another word.",
parents = {{name = "Perkataan mengikut etimologi", sort = "metathesis"}},
}
labels["words that have undergone semantic shift"] = {
description = "{{{langname}}} words that show senses explained by [[semantic shift]].",
parents = {{name = "Perkataan mengikut etimologi", sort = "semantic shift"}},
}
labels["words that have undergone semantic broadening"] = {
description = "{{{langname}}} words that show senses explained by [[semantic]] [[broadening]].",
parents = {{name = "words that have undergone semantic shift", sort = "semantic broadening"}},
}
labels["words that have undergone semantic narrowing"] = {
description = "{{{langname}}} words that show senses explained by [[semantic]] [[narrowing]].",
parents = {{name = "words that have undergone semantic shift", sort = "semantic narrowing"}},
}
labels["words that have undergone amelioration"] = {
description = "{{{langname}}} words that have gained a positive [[connotation]] over time.",
parents = {{name = "words that have undergone semantic shift", sort = "amelioration"}},
}
labels["words that have undergone pejoration"] = {
description = "{{{langname}}} words that have gained a negative [[connotation]] over time.",
parents = {{name = "words that have undergone semantic shift", sort = "pejoration"}},
}
labels["terms with origins in folklore"] = {
description = "{{{langname}}} terms that have an etymology rooted in folklore.",
breadcrumb = "Folklore",
parents = {{name = "Perkataan mengikut etimologi", sort = "folklore"}, {name = "{{{langcode}}}:Folklore", raw = true}},
umbrella_parents = {{name = "Subkategori perkataan mengikut etimologi mengikut bahasa", raw = true}, {name = "Folklore", raw = true, sort = " "}}
}
-- Add 'umbrella_parents' key if not already present.
for _, data in pairs(labels) do
-- NOTE: umbrella.parents overrides umbrella_parents if both are given.
if not data.umbrella_parents then
data.umbrella_parents = "Subkategori perkataan mengikut etimologi mengikut bahasa"
end
end
-----------------------------------------------------------------------------
-- --
-- RAW CATEGORIES --
-- --
-----------------------------------------------------------------------------
raw_categories["Subkategori perkataan mengikut etimologi mengikut bahasa"] = {
description = "Metakategori payung yang merangkumi topik berkaitan perkataan yang dikategorikan mengikut etimologinya seperti jenis kata majmuk atau pinjaman.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
"Metakategori payung",
{name = "Perkataan mengikut etimologi", is_label = true, sort = " "},
},
}
raw_categories["Subkategori kata pinjaman mengikut bahasa"] = {
description = "Kategori payung meliputi topik berkenaan kata pinjaman.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
"Metakategori payung",
{name = "Kata pinjaman", is_label = true, sort = " "},
{name = "Subkategori perkataan mengikut etimologi mengikut bahasa", sort = " "},
},
}
raw_categories["Subkategori kata warisan mengikut bahasa"] = {
description = "Kategori payung meliputi topik berkenaan kata warisan.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
"Metakategori payung",
{name = "Kata warisan", is_label = true, sort = " "},
{name = "Subkategori perkataan mengikut etimologi mengikut bahasa", sort = " "},
},
}
raw_categories["Indo-Aryan extensions"] = {
description = "Kategori payung meliputi istilah yang dilanjutkan dengan imbuhan [[Indo-Aryan]] [[pleonastic|pleonastik]] tertentu.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
"Metakategori payung",
{name = "Subkategori perkataan mengikut etimologi mengikut bahasa", sort = " "},
},
}
-- FIX 6: renamed from "Multiple etymology subcategories by language" to the Malay name that
-- matches the umbrella_parents string used in both multiple-etymology handlers.
-- Also fixed the description which previously mixed Malay and English, and updated the
-- parent label reference from "terms with multiple etymologies" to "Perkataan dengan pelbagai etimologi".
raw_categories["Subkategori pelbagai etimologi mengikut bahasa"] = {
description = "Kategori payung meliputi topik berkenaan istilah dengan pelbagai etimologi.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
"Metakategori payung",
{name = "Perkataan dengan pelbagai etimologi", is_label = true, sort = " "},
{name = "Subkategori perkataan mengikut etimologi mengikut bahasa", sort = " "},
},
}
raw_categories["Perkataan dipinjam balik ke dalam bahasa yang sama"] = {
description = "Kategori dengan istilah dalam bahasa tertentu yang dipinjam daripada bahasa kedua yang sebelumnya meminjam istilah tersebut daripada bahasa pertama.",
additional = "Contoh yang terkenal ialah {{m+|en|salaryman}}, istilah yang dipinjam daripada bahasa Jepun yang seterusnya dipinjam daripada perkataan bahasa Inggeris [[salary]] dan [[man]].\n\n{{{umbrella_msg}}}",
parents = "Subkategori perkataan mengikut etimologi mengikut bahasa",
}
-----------------------------------------------------------------------------
-- --
-- HANDLERS --
-- --
-----------------------------------------------------------------------------
local function get_source(source_name, allow_family, name_type)
local source = get_lang_by_name(source_name, nil, true, allow_family)
if source == nil then
return nil
end
local form = source[name_type](source)
if form == source_name then
return source
end
end
local function get_source_and_type_desc(source, term_type)
if source:getCode() == "ine-pro" and term_type:find("^akar?$") then
return "[[w:Akar bahasa Indo Eropah Purba|" .. term_type .. " bahasa Indo Eropah Purba]]"
end
return term_type .. " [[w:" .. source:getWikipediaArticle() .. "|" .. source:getCanonicalName() .. "]]"
end
local function get_source_and_source_desc(source_name)
local source_desc
if source_name == "taxonomic names" then
source_name = "taxonomic name"
source_desc = "[[w:Tatanama taksonomi|nama taksonomi]]"
end
local source
if source_name:match("^[Bb]ahasa%-bahasa ") then
source = get_family_by_category_name(source_name)
end
source = source
or get_source(source_name, true, "getDisplayForm")
or get_source(source_name, true, "getCanonicalName")
if source == nil then
return
end
source_desc = source_desc or source:makeCategoryLink()
if source:hasType("family") then
source_desc = "yang merupakan salah satu daripada " .. source_desc
end
return source, source_desc
end
local function source_name_with_bahasa(source_name)
if source_name:match("^[Bb]ahasa%-bahasa ") then
return mw.getContentLanguage():lcfirst(source_name)
else
return "bahasa " .. source_name
end
end
local function lang_is_semitic(lang)
return lang:inFamily("sem")
end
-----------------------------------------------------------------------------
------------------------------- Word handlers -------------------------------
-----------------------------------------------------------------------------
insert(handlers, function(data)
local labelpref, word_and_id = data.label:match("^([Pp]erkataan milik perkataan )(.+)$")
if not word_and_id then
return
end
local word, id = word_and_id:match("^(.+) %((.-)%)$")
if not word then
word = word_and_id
end
local is_semitic = lang_is_semitic(data.lang)
local word_desc = is_semitic and "[[w:Perkataan bahasa-bahasa Samiah|perkataan]]" or "perkataan"
local parents = {}
if id then
insert(parents, {name = labelpref .. word, sort = id})
end
insert(parents, {name = "Perkataan mengikut perkataan", sort = word_and_id})
local separators = "־ %-"
local separator_c = "[" .. separators .. "]"
local not_separator_c = "[^" .. separators .. "]"
local word_no_prefix_suffix =
mw.ustring.gsub(mw.ustring.gsub(word, separator_c .. "$", ""), "^" .. separator_c, "")
local num_sep = mw.ustring.len(mw.ustring.gsub(word_no_prefix_suffix, not_separator_c, ""))
local linked_word = data.lang and full_link({ term = word, lang = data.lang, gloss = id, id = id }, "term") or word
if num_sep > 0 then
insert(parents, {name = "Perkataan dengan " .. (num_sep + 1) .. " huruf", sort = word_and_id})
end
local function displaytitle(title, lang)
return plain_gsub(title, word, tag_text(word, lang, nil, "term"))
end
local breadcrumb = tag_text(word, data.lang, nil, "term") .. (id and " (" .. id .. ")" or "")
return {
description = "{{{langname}}} perkataan yang tergolong dalam " .. word_desc .. " " .. linked_word .. ".",
displaytitle = displaytitle,
breadcrumb = breadcrumb,
lang_position = "mid",
label_before = "Perkataan",
label_after = "milik perkataan " .. word_and_id,
parents = parents,
umbrella = false,
}
end)
insert(handlers, function(data)
local source_name = data.label:match("^[Ii]stilah mengikut perkataan bahasa (.+)$")
if not source_name then
return
end
local source = get_source(source_name, false, "getCanonicalName")
if not source then
return
end
local parents = {"Perkataan mengikut etimologi"}
if not data.lang or data.lang:getCode() ~= source:getCode() then
insert(parents, "Perkataan diterbitkan daripada bahasa " .. source_name)
end
return {
description = "Perkataan bahasa {{{langname}}} yang dikategorikan berdasarkan asal " .. get_source_and_type_desc(source, "perkataan") .. ".",
lang_position = "mid",
label_before = "Perkataan",
label_after = "mengikut perkataan bahasa " .. source_name,
parents = parents,
umbrella_parents = "Subkategori perkataan mengikut etimologi mengikut bahasa",
}
end)
-----------------------------------------------------------------------------
------------------------------- Root handlers -------------------------------
-----------------------------------------------------------------------------
-- Handler for e.g. [[:Category:Yola perkataan diterbitkan daripada akar bahasa Proto-Indo-European *h₂el- (grow)]]
-- and corresponding umbrella categories.
insert(handlers, function(data)
local source_name, term_type, term_and_id
for _, tt in ipairs{"akar", "word", "perkataan"} do
local suffix = data.label:match(
"^[Pp]erkataan diterbitkan daripada " .. tt .. " bahasa (.+)$"
)
if suffix then
-- Iterate through every space in `suffix`, trying progressively
-- longer prefixes as the language name. This correctly handles:
-- • multi-word language names e.g. "Old High German *foo"
-- • space-separated Semitic roots e.g. "Arab و ل ي"
-- The first split whose prefix resolves to a known language wins.
local pos = 1
while pos <= #suffix do
local sp = suffix:find(" ", pos, true) -- plain ASCII space search
if not sp then break end
local candidate = suffix:sub(1, sp - 1)
local rest = suffix:sub(sp + 1)
if rest ~= "" and get_source(candidate, false, "getCanonicalName") then
source_name = candidate
term_and_id = rest
term_type = tt
break
end
pos = sp + 1
end
if source_name then break end
end
end
if not source_name then
return
end
-- Everything below this line is unchanged.
local term, id = term_and_id:match("^(.+) %((.-)%)$")
if not term then
term = term_and_id
end
local source = get_source(source_name, false, "getCanonicalName")
if not source then
return
end
local parents = {
{
name = "Perkataan mengikut " .. term_type .. " bahasa " .. source_name,
sort = (source:makeSortKey(term)),
}
}
local umbrella_parents = {
{
name = "Perkataan diterbitkan daripada " .. term_type .. " bahasa " .. source_name,
sort = (source:makeSortKey(term)),
}
}
if id then
insert(parents, {
name = "Perkataan diterbitkan daripada " .. term_type .. " bahasa " .. source_name .. " " .. term,
sort = " "
})
insert(umbrella_parents, {
name = "Perkataan diterbitkan daripada " .. term_type .. " bahasa " .. source_name .. " " .. term,
is_label = true,
sort = " "
})
end
local function displaytitle(title, lang)
return plain_gsub(title, term, tag_text(term, source, nil, "term"))
end
local breadcrumb = tag_text(term, source, nil, "term") .. (id and " (" .. id .. ")" or "")
local term_page, alt_form
if term_type == "akar" and lang_is_semitic(source) then
term_page = ("Lampiran:Akar %s/%s"):format(source:getCanonicalName(), term)
alt_form = term
else
term_page = term
end
return {
description = "Perkataan bahasa {{{langname}}} yang akhirnya berasal daripada " .. get_source_and_type_desc(source, term_type) .. " " .. full_link({
term = term_page,
alt = alt_form,
lang = source,
gloss = id,
id = id
}, "term") .. ".",
displaytitle = displaytitle,
breadcrumb = breadcrumb,
lang_position = "mid",
label_before = "Perkataan",
label_after = "diterbitkan daripada " .. term_type .. " bahasa " .. source_name .. " " .. term_and_id,
parents = parents,
umbrella = {
no_by_language = true,
displaytitle = displaytitle,
breadcrumb = breadcrumb,
parents = umbrella_parents,
}
}
end)
insert(handlers, function(data)
local labelpref, root_and_id = data.label:match("^([Pp]erkataan dengan akar )(.+)$")
if not root_and_id then
return
end
local root, id = root_and_id:match("^(.+) %((.-)%)$")
if not root then
root = root_and_id
end
local is_semitic = lang_is_semitic(data.lang)
local root_desc = is_semitic and "[[w:Akar bahasa-bahasa Samiah|akar]]" or "akar"
local parents = {}
if id then
insert(parents, {name = labelpref .. root, sort = id})
end
insert(parents, {name = "Perkataan mengikut akar", sort = root_and_id})
local separators = "־ %-"
local separator_c = "[" .. separators .. "]"
local not_separator_c = "[^" .. separators .. "]"
local root_no_prefix_suffix =
mw.ustring.gsub(mw.ustring.gsub(root, separator_c .. "$", ""), "^" .. separator_c, "")
local num_sep = mw.ustring.len(mw.ustring.gsub(root_no_prefix_suffix, not_separator_c, ""))
local root_page, alt_form
if is_semitic then
root_page = ("Lampiran:Akar bahasa %s/%s"):format(data.lang:getCanonicalName(), root)
alt_form = root
else
root_page = root
end
local linked_root = data.lang and full_link(
{ term = root_page, alt = alt_form, lang = data.lang, gloss = id, id = id }, "term") or root_page
if num_sep > 0 then
insert(parents, {name = "Akar " .. (num_sep + 1) .. " huruf", sort = root_and_id})
end
local function displaytitle(title, lang)
return plain_gsub(title, root, tag_text(root, lang, nil, "term"))
end
local breadcrumb = tag_text(root, data.lang, nil, "term") .. (id and " (" .. id .. ")" or "")
return {
description = "Perkataan bahasa {{{langname}}} di bawah " .. root_desc .. " " .. linked_root .. ".",
displaytitle = displaytitle,
breadcrumb = breadcrumb,
lang_position = "mid",
label_before = "Perkataan",
label_after = "dengan akar " .. root_and_id,
parents = parents,
umbrella = false,
}
end)
insert(handlers, function(data)
local source_name = data.label:match("^[Pp]erkataan mengikut akar bahasa (.+)$")
or data.label:match("^[Pp]erkataan mengikut akar (.+)$")
if not source_name then
return
end
local source = get_source(source_name, false, "getCanonicalName")
if not source then
return
end
local parents = {"Perkataan mengikut etimologi"}
if not data.lang or data.lang:getCode() ~= source:getCode() then
insert(parents, "Perkataan diterbitkan daripada bahasa " .. source_name)
end
return {
description = "Perkataan bahasa {{{langname}}} yang dikategorikan berdasarkan " .. get_source_and_type_desc(source, "akar") .. " asalnya.",
lang_position = "mid",
label_before = "Perkataan",
label_after = "mengikut akar bahasa " .. source_name,
parents = parents,
umbrella_parents = "Subkategori perkataan mengikut etimologi mengikut bahasa",
}
end)
insert(handlers, function(data)
local root_shape, post, additional = data.label:match("^(.+)([ -])shaped roots$")
if not root_shape then
return
elseif data.lang and data.lang:getCode() == "ine-pro" then
additional = [=[
* '''e''' stands for the vowel of the root.
* '''C''' stands for any stop or ''s''.
* '''R''' stands for any resonant.
* '''H''' stands for any laryngeal.
* '''M''' stands for ''m'' or ''w'', when followed by a resonant.
* '''s''' stands for ''s'', when next to a stop.]=]
end
if root_shape == "irregularly" and post == " " then
return {
breadcrumb = "tidak teratur",
description = "Akar bahasa {{{langname}}} yang berbentuk melanggar [[w:Proto-Indo-European root#Shape of a root|peraturan bentuk akar yang diketahui]].",
additional = additional,
lang_position = "mid",
label_before = "Perkataan",
label_after = "akar berbentuk tidak teratur",
parents = {{name = "Akar mengikut bentuk", sort = "*"}},
umbrella = false,
}
elseif post == " " then
return
end
return {
breadcrumb = root_shape,
description = "Akar bahasa {{{langname}}} yang berbentuk ''" .. root_shape .. "''.",
additional = additional,
lang_position = "mid",
label_before = "Perkataan",
label_after = "akar berbentuk " .. root_shape,
parents = {{name = "Akar mengikut bentuk", sort = root_shape}},
umbrella = false,
}
end)
-----------------------------------------------------------------------------
-------------------- Derived/inherited/borrowed handlers --------------------
-----------------------------------------------------------------------------
-- Handler for categories of the form "LANG perkataan diterbitkan daripada bahasa SOURCE".
insert(handlers, function(data)
local source_name = data.label:match("^[Pp]erkataan diterbitkan daripada bahasa (.+)$")
or data.label:match("^[Pp]erkataan diterbitkan daripada (bahasa%-bahasa .+)$")
if not source_name then
return
end
local source, source_desc = get_source_and_source_desc(source_name)
if not source then
return
end
local desc = "Perkataan bahasa {{{langname}}} yang diterbitkan daripada bahasa " .. source_desc .. "."
local additional
if source:hasType("family") then
additional = "Kategori ini sepatutnya hanya mengandungi kategori lain. Entri boleh dikategorikan di sini juga apabila subkategori yang sesuai tidak jelas. " ..
"Jika anda mengetahui bahasa tepat yang menjadi asal sesuatu entri yang dikategorikan di sini, sila sunting entrinya."
end
local derived_from_variety_of_self = false
local parent
local sortkey = source:getDisplayForm()
if source:hasType("etymology-only") then
parent = source:getParent()
if data.lang and source:hasParent(data.lang) then
derived_from_variety_of_self = true
end
if data.lang and (parent:getCode() == data.lang:getCode() or parent:getCode() == "und") then
parent = source:getFamily()
end
else
local fam = source:getFamily()
if fam then
parent = fam
end
end
if (not parent) or parent:getCode() == source:getCode() or parent:getCode() == "qfa-iso" or parent:getCode() == "qfa-not" then
parent = nil
derived_from_variety_of_self = false
else
parent = parent:getDisplayForm()
end
parent = parent and "Perkataan diterbitkan daripada " .. source_name_with_bahasa(parent)
or "Perkataan diterbitkan daripada bahasa lain"
local parents = {{name = parent, sort = sortkey}}
if derived_from_variety_of_self then
insert(parents, "Kategori:Kategori untuk istilah sesuatu bahasa yang diterbitkan daripada istilah ragam bahasa tersebut")
end
local cat_name = source:getCategoryName()
if source:hasType("etymology-only") then
require("Module:category tree/lects").export.register_likely_lect_parent_cat(cat_name)
end
local umbrella_parents = {
source:hasType("family") and {name = cat_name, raw = true, sort = " "} or
{name = cat_name, raw = true, sort = "perkataan diterbitkan daripada"}
}
local breadcrumb = source_name
if source:hasType("family") and breadcrumb:find("^Bahasa-bahasa ") then
local truncated_breadcrumb = breadcrumb:gsub("^Bahasa-bahasa ", "")
if not get_lang_by_name(truncated_breadcrumb, nil, "allow etym") then
breadcrumb = truncated_breadcrumb
end
end
return {
description = desc,
additional = additional,
breadcrumb = breadcrumb,
lang_position = "mid",
label_before = "Perkataan",
label_after = source:hasType("family") and "diterbitkan daripada " ..
mw.getContentLanguage():lcfirst(source:getDisplayForm())
or "diterbitkan daripada bahasa " .. source_name,
parents = parents,
umbrella = {
description = "Kategori dengan perkataan yang berasal daripada bahasa " .. source_desc .. ".",
parents = umbrella_parents,
},
}
end)
-- Handler for categories of the form "LANG perkataan dipinjam/diwariskan daripada bahasa SOURCE".
local function inherited_borrowed_handler(etymtype)
local malay_verb, malay_label
if etymtype == "dipinjam" then
malay_verb = "dipinjam"
malay_label = "Kata pinjaman"
elseif etymtype == "diwariskan" then
malay_verb = "diwariskan"
malay_label = "Kata warisan"
else
malay_verb = etymtype
malay_label = "Perkataan " .. etymtype
end
return function(data)
local source_name =
data.label:match("^[Pp]erkataan " .. malay_verb .. " daripada bahasa (.+)$") or
data.label:match("^[Pp]erkataan " .. malay_verb .. " (bahasa%-bahasa .+)$")
if not source_name then
return
end
local source, source_desc = get_source_and_source_desc(source_name)
if not source then
return
end
local source_cat_name = source_name_with_bahasa(source_name)
local derived_label = "Perkataan diterbitkan daripada " .. source_cat_name
return {
description = "Perkataan bahasa {{{langname}}} yang " .. malay_verb .. " daripada bahasa " .. source_desc .. ".",
breadcrumb = source_name,
lang_position = "mid",
label_before = "Perkataan",
label_after = malay_verb .. " daripada " .. source_cat_name,
parents = {
{name = malay_label, sort = source_name},
{name = derived_label, sort = " "},
},
umbrella = {
parents = {
{ name = derived_label, is_label = true, sort = " " },
malay_verb == "dipinjam"
and { name = "Subkategori kata pinjaman mengikut bahasa", sort = source_name }
or { name = "Subkategori kata warisan mengikut bahasa", sort = source_name },
}
},
}
end
end
insert(handlers, inherited_borrowed_handler("dipinjam"))
insert(handlers, inherited_borrowed_handler("diwariskan"))
-----------------------------------------------------------------------------
------------------------ Borrowing subtype handlers -------------------------
-----------------------------------------------------------------------------
local function borrowing_subtype_handler(dest, source_name, parent_cat, spec)
local source, source_desc = get_source_and_source_desc(source_name)
if not source then
return
end
local dest_name = dest and dest:getCanonicalName() or "UNKNOWN"
local additional, umbrella_additional
if spec.additional then
if dest then
additional = spec.additional(source, dest)
else
umbrella_additional = spec.umbrella_additional(source)
end
else
if not spec.categorizing_templates then
error("Internal error: Must specify either `categorizing_templates` or the combination of `additional` and `umbrella_additional` in each borrowing subtype spec")
end
local extra_templates = {}
local extra_template_text
for i, template in ipairs(spec.categorizing_templates) do
if i > 1 then
insert(extra_templates, ("{{tl|%s|...}}"):format(template))
end
end
if #extra_templates > 0 then
extra_template_text = (" (atau %s, menggunakan sintaks yang sama)"):format(
serial_comma_join(extra_templates, {conj = "atau"}))
else
extra_template_text = ""
end
if dest then
additional = ("Untuk mengkategorikan istilah ke dalam kategori ini, gunakan {{tl|%s|%s|%s|<var>istilah_sumber</var>}}%s, " ..
"di mana <code><var>istilah_sumber</var></code> ialah istilah %s yang menjadi sumber peminjaman istilah berkenaan."):format(
spec.categorizing_templates[1], dest:getCode(), source:getCode(), extra_template_text, source_name)
else
umbrella_additional = ("Untuk mengkategorikan istilah ke dalam subkategori khusus bahasa, gunakan " ..
"{{tl|%s|<var>kod_dest</var>|%s|<var>istilah_sumber</var>}}%s, di mana <code><var>kod_dest</var></code> " ..
"ialah kod bahasa yang berkaitan (lihat [[Wiktionary:List of languages]]), dan " ..
"<code><var>istilah_sumber</var></code> ialah istilah %s yang menjadi sumber peminjaman."):format(
spec.categorizing_templates[1], source:getCode(), extra_template_text, source_name)
end
end
return {
description = "{{{langname}}} " .. spec.from_source_desc:gsub("SOURCE", source_desc):gsub("DEST", dest_name),
additional = additional,
breadcrumb = source_name,
lang_position = "mid",
label_before = "Perkataan",
label_after = (spec.malay_label_after or parent_cat) .. " daripada " .. source_name_with_bahasa(source_name),
parents = {
{ name = parent_cat, sort = source_name },
{ name = "Perkataan dipinjam daripada " .. source_name_with_bahasa(source_name), sort = " " },
},
umbrella = {
additional = umbrella_additional,
parents = {
{ name = "Perkataan dipinjam daripada " .. source_name_with_bahasa(source_name), is_label = true, sort = " " },
"Subkategori kata pinjaman mengikut bahasa",
}
},
}
end
local borrowing_specs = {
["Pinjaman terpelajar"] = {
malay_label_after = "dengan pinjaman terpelajar",
from_source_desc = "terms that are learned [[loanword]]s from SOURCE, that is, terms that were directly incorporated from SOURCE instead of through normal language contact.",
umbrella_desc = "terms that are learned [[loanword]]s, that is, terms that were directly incorporated from another language instead of through normal language contact.",
uses_subtype_handler = true,
categorizing_templates = {"lbor", "learned borrowing"},
},
["Pinjaman terpelajar separa"] = {
malay_label_after = "dengan pinjaman terpelajar separa",
from_source_desc = "terms that are [[semi-learned borrowing|semi-learned]] [[loanword]]s from SOURCE, that is, terms borrowed from SOURCE (a [[classical language]]) into DEST (a modern language) and partly reshaped based on later [[sound change]]s or by analogy with [[inherit]]ed terms in the language.",
umbrella_desc = "terms that are [[semi-learned borrowing|semi-learned]] [[loanword]]s, that is, terms borrowed from a [[classical language]] into a modern language and partly reshaped based on later [[sound change]]s or by analogy with [[inherit]]ed terms in the language.",
uses_subtype_handler = true,
categorizing_templates = {"slbor", "semi-learned borrowing"},
},
["Pinjaman ortografi"] = {
malay_label_after = "dengan pinjaman ortografi",
from_source_desc = "orthographic loans from SOURCE, i.e. terms that were borrowed from SOURCE in their script forms, not their pronunciations.",
umbrella_desc = "orthographic loans, i.e. terms that were borrowed in their script forms, not their pronunciations.",
uses_subtype_handler = true,
categorizing_templates = {"obor", "orthographic borrowing"},
},
["Pinjaman tidak tersuai"] = {
malay_label_after = "dengan pinjaman tidak tersuai",
from_source_desc = "[[loanword]]s from SOURCE that have not been conformed to the morpho-syntactic, phonological and/or phonotactical rules of DEST.",
umbrella_desc = "[[loanword]]s that have not been conformed to the morpho-syntactic, phonological and/or phonotactical rules of the target language.",
uses_subtype_handler = true,
categorizing_templates = {"ubor", "unadapted borrowing"},
},
["Pinjaman tersuai"] = {
malay_label_after = "dengan pinjaman tersuai",
from_source_desc = "[[loanwords]] from SOURCE formed with the addition of an affix to conform the term to the normal morphology of DEST.",
umbrella_desc = "[[loanword]]s formed with the addition of an affix to conform the term to the normal morphology of the target language.",
uses_subtype_handler = true,
additional = function(source, dest)
return ("Untuk mengkategorikan istilah ke dalam kategori ini, gunakan {{tl|af|%s|3=type=adap|4=%s:<var>istilah_sumber</var>|5=-<var>imbuhan</var>}} " ..
"(atau {{tl|af|%s|3=type=abor|4=...}}, menggunakan sintaks yang sama), di mana <code><var>istilah_sumber</var></code> ialah " ..
"Perkataan %s yang menjadi sumber peminjaman dan <code><var>imbuhan</var></code> " ..
"ialah imbuhan %s yang digunakan untuk menyesuaikan istilah %s tersebut."):format(
dest:getCode(), source:getCode(), dest:getCode(), source:getCanonicalName(),
dest:getCanonicalName(), source:getCanonicalName())
end,
umbrella_additional = function(source)
return ("Untuk mengkategorikan istilah ke dalam subkategori khusus bahasa, gunakan {{tl|af|<var>kod_dest</var>|3=type=adap|4=%s:<var>istilah_sumber</var>|5=-<var>imbuhan</var>}} " ..
"(atau {{tl|af|<var>kod_dest</var>|3=type=abor|4=...}}, menggunakan sintaks yang sama), di mana " ..
"<code><var>kod_dest</var></code> ialah kod bahasa sasaran (lihat " ..
"[[Wiktionary:List of languages]]); <code><var>istilah_sumber</var></code> ialah istilah %s " ..
"yang menjadi sumber peminjaman; dan <code><var>imbuhan</var></code> ialah imbuhan bahasa sasaran " ..
"yang digunakan untuk menyesuaikan istilah %s tersebut."):format(
source:getCode(), source:getCanonicalName(), source:getCanonicalName())
end,
},
["Pinjaman semantik"] = {
malay_label_after = "dipinjam secara semantik",
from_source_desc = "[[Appendix:Glossary#semantic loan|semantic loans]] from SOURCE, i.e. terms one or more of whose definitions was borrowed from a term in SOURCE.",
umbrella_desc = "[[Appendix:Glossary#semantic loan|semantic loans]], i.e. terms one or more of whose definitions was borrowed from a term in another language.",
umbrella_parent = "Perkataan mengikut etimologi",
categorizing_templates = {"sl", "semantic loan"},
},
["Pinjaman terjemah separa"] = {
malay_label_after = "dipinjam terjemah separa",
from_source_desc = "terms that were [[Appendix:Glossary#partial calque|partially calqued]] from SOURCE, i.e. terms formed partly by piece-by-piece translations of SOURCE terms and partly by direct borrowing.",
umbrella_desc = "[[Appendix:Glossary#partial calque|partial calques]], i.e. terms formed partly by piece-by-piece translations of terms from other languages and partly by direct borrowing.",
umbrella_parent = "Perkataan mengikut etimologi",
label_pattern = "^[Pp]erkataan dipinjam terjemah separa daripada bahasa (.+)$",
categorizing_templates = {"pcal", "pclq", "partial calque"},
},
["Pinjaman terjemah"] = {
malay_label_after = "dipinjam terjemah",
from_source_desc = "terms that were [[Appendix:Glossary#calque|calqued]] from SOURCE, i.e. terms formed by piece-by-piece translations of SOURCE terms.",
umbrella_desc = "[[Appendix:Glossary#calque|calques]], i.e. terms formed by piece-by-piece translations of terms from other languages.",
umbrella_parent = "Perkataan mengikut etimologi",
label_pattern = "^[Pp]erkataan dipinjam terjemah daripada bahasa (.+)$",
categorizing_templates = {"cal", "clq", "calque"},
},
["Padanan fonosemantik"] = {
malay_label_after = "dengan padanan fonosemantik",
from_source_desc = "[[Appendix:Glossary#phono-semantic matching|phono-semantic matchings]] from SOURCE, i.e. terms that were borrowed by matching the etymon phonetically and semantically.",
umbrella_desc = "[[Appendix:Glossary#phono-semantic matching|phono-semantic matchings]], i.e. terms that were borrowed by matching the etymon phonetically and semantically.",
categorizing_templates = {"psm", "phono-semantic matching"},
},
["Pinjaman palsu"] = {
malay_label_after = "dengan pinjaman palsu",
from_source_desc = "[[Appendix:Glossary#pseudo-loan|pseudo-loans]] from SOURCE, i.e. terms that appear to be SOURCE, but are not used or have an unrelated meaning in SOURCE itself.",
umbrella_desc = "[[Appendix:Glossary#pseudo-loan|pseudo-loans]], i.e. terms that appear to be derived from another language, but are not used or have an unrelated meaning in that language itself.",
categorizing_templates = {"pl", "pseudo-loan"},
},
}
for bortype, spec in pairs(borrowing_specs) do
labels[bortype] = {
description = "{{{langname}}} " .. spec.umbrella_desc,
parents = {spec.umbrella_parent or "Kata pinjaman"},
umbrella_parents = "Subkategori perkataan mengikut etimologi mengikut bahasa",
}
if not spec.uses_subtype_handler then
local label_pattern = spec.label_pattern or "^[Pp]erkataan " .. pattern_escape(spec.malay_label_after or bortype) .. " daripada bahasa (.+)$"
insert(handlers, function(data)
local source_name = data.label:match(label_pattern)
if source_name then
return borrowing_subtype_handler(data.lang, source_name, bortype, spec)
end
end)
end
end
insert(handlers, function(data)
-- Match Malay mid-lang format for uses_subtype_handler borrowing types.
local matched_type, matched_source
for borrowing_type, spec in pairs(borrowing_specs) do
if spec.uses_subtype_handler and spec.malay_label_after then
local source_name = data.label:match(
"^[Pp]erkataan " .. pattern_escape(spec.malay_label_after) .. " daripada bahasa (.+)$")
if source_name then
matched_type = borrowing_type
matched_source = source_name
break
end
end
end
if matched_type then
return borrowing_subtype_handler(data.lang, matched_source, matched_type, borrowing_specs[matched_type])
end
end)
-----------------------------------------------------------------------------
---------------------- Indo-Aryan extension handlers ------------------------
-----------------------------------------------------------------------------
insert(handlers, function(data)
local labelpref, extension = data.label:match("^([Pp]erkataan dilanjutkan dengan bahasa%-bahasa Indo%-Arya )(.+)$")
if not extension then
return
end
local lang_inc_ash = require("Module:languages").getByCode("inc-ash")
local linked_term = full_link({lang = lang_inc_ash, term = extension}, "term")
local tagged_term = tag_text(extension, lang_inc_ash, nil, "term")
return {
description = "{{{langname}}} perkataan yang dilanjutkan dengan imbuhan [[Indo-Aryan]] [[pleonastic|pleonastik]] " .. linked_term .. ".",
displaytitle = "{{{langname}}} " .. labelpref .. tagged_term,
breadcrumb = tagged_term,
lang_position = "mid",
label_before = "Perkataan",
label_after = "dilanjutkan dengan Indo-Aryan " .. extension,
parents = {{name = "Perkataan dengan lanjutan Indo-Aryan", sort = extension}},
umbrella = {
no_by_language = true,
parents = "Indo-Aryan extensions",
displaytitle = "Perkataan dilanjutkan dengan Indo-Aryan " .. tagged_term,
}
}
end)
-----------------------------------------------------------------------------
---------------------------- Coined-by handlers -----------------------------
-----------------------------------------------------------------------------
insert(handlers, function(data)
local coiner = data.label:match("^[Pp]erkataan dicipta oleh (.+)$")
if not coiner then
return
end
local last_name = umatch(coiner, ".-%s(%S+)$")
return {
description = "{{{langname}}} perkataan yang dicipta oleh " .. coiner .. ".",
breadcrumb = coiner,
lang_position = "mid",
label_before = "Perkataan",
label_after = "dicipta oleh " .. coiner,
parents = {{
name = "Kata ciptaan",
sort = last_name and last_name .. ", " .. coiner or coiner,
}},
umbrella = false,
}
end)
-----------------------------------------------------------------------------
------------------------ Multiple etymology handlers ------------------------
-----------------------------------------------------------------------------
-- FIX 4 & 6: umbrella_parents now correctly points to the renamed raw category
-- "Subkategori pelbagai etimologi mengikut bahasa". Parent name uses Malay handler
-- output "perkataan dengan pelbagai etimologi " .. postype, which now matches
-- the renamed labels "perkataan dengan pelbagai etimologi lemma" /
-- "perkataan dengan pelbagai etimologi non-lemma form".
insert(handlers, function(data)
local pos = data.label:match("^[Pp]erkataan dengan pelbagai etimologi (.+)$")
if not pos then
return
end
local plpos = pluralize_pos(pos)
local postype = pos_lemma_or_nonlemma(plpos)
if not postype then
return
end
return {
description = "{{{langname}}} " .. plpos .. " yang berasal daripada pelbagai asal usul.",
umbrella_parents = "Subkategori pelbagai etimologi mengikut bahasa",
breadcrumb = "pelbagai " .. plpos,
lang_position = "mid",
label_before = "Perkataan",
label_after = "dengan pelbagai etimologi " .. plpos,
parents = {{
name = "perkataan dengan pelbagai etimologi " .. postype,
sort = pos,
}},
}
end)
-- FIX 7: changed hardcoded English label name "terms with lemma and non-lemma form etymologies"
-- to the renamed Malay label "Perkataan dengan etimologi lema dan bentuk bukan lema".
insert(handlers, function(data)
local pos1, pos2 = data.label:match("^[Pp]erkataan dengan etimologi (.+) dan (.+)$")
if not pos1 then
return
end
local pos1type = pos_lemma_or_nonlemma(pluralize_pos(pos1))
local pos2type = pos_lemma_or_nonlemma(pluralize_pos(pos2))
if not (pos1type and pos2type) then
return
end
return {
description = "{{{langname}}} perkataan yang terdiri daripada " .. add_indefinite_article(pos1) .. " dari satu asal dan " ..
add_indefinite_article(pos2) .. " dari asal yang berbeza.",
umbrella_parents = "Subkategori pelbagai etimologi mengikut bahasa",
breadcrumb = pos1 .. " dan " .. pos2,
lang_position = "mid",
label_before = "Perkataan",
label_after = "dengan etimologi " .. pos1 .. " dan " .. pos2,
parents = {{
name = pos1type == pos2type and "perkataan dengan pelbagai etimologi " .. pos1type or
"Perkataan dengan etimologi lema dan bentuk bukan lema",
sort = pos1 .. " dan " .. pos2,
}},
}
end)
-----------------------------------------------------------------------------
--------------------------- Borrowed-back handlers --------------------------
-----------------------------------------------------------------------------
insert(handlers, function(data)
local lang = data.lang
if not lang then
return
end
local source_name = data.label:match("^[Pp]erkataan dipinjam balik ke dalam bahasa (.+)$")
if not (source_name and source_name == lang:getDisplayForm()) then
return
end
return {
description = "{{{langname}}} perkataan yang dipinjam daripada bahasa lain yang pada asalnya meminjam istilah tersebut daripada bahasa " .. source_name .. ".",
lang_position = "mid",
label_before = "Perkataan",
label_after = "dipinjam balik ke dalam bahasa " .. source_name,
parents = {"Perkataan mengikut etimologi", "Kata pinjaman", {
name = "Perkataan dipinjam balik ke dalam bahasa yang sama",
raw = true,
sort = "{{{langname}}}"
}},
umbrella = false,
}
end)
-----------------------------------------------------------------------------
-- --
-- RAW HANDLERS --
-- --
-----------------------------------------------------------------------------
-- Handler for umbrella metacategories of the form e.g.
-- [[:Category:Perkataan diterbitkan daripada akar bahasa Proto-Indo-Iranian]] and
-- [[:Category:Perkataan diterbitkan daripada perkataan bahasa Proto-Indo-European]].
insert(raw_handlers, function(data)
local source_name, terms_type
for _, tt in ipairs{"akar", "perkataan"} do
source_name = data.category:match("^[Pp]erkataan diterbitkan daripada " .. tt .. " bahasa (.+)$")
if source_name then
terms_type = tt
break
end
end
if not source_name then
return
end
local source = get_source(source_name, false, "getCanonicalName")
if not source then
return
end
return {
description = "Kategori payung meliputi perkataan yang berasal daripada " .. get_source_and_type_desc(source, terms_type) .. " tertentu.",
additional = "{{{umbrella_meta_msg}}}",
parents = {
"Metakategori payung",
{ name = terms_type == "akar" and "Akar" or "lema", is_label = true, lang = source:getCode(), sort = " " },
{ name = "Perkataan diterbitkan daripada bahasa " .. source_name, is_label = true, sort = " " .. terms_type },
},
}
end)
return {LABELS = labels, RAW_CATEGORIES = raw_categories, HANDLERS = handlers, RAW_HANDLERS = raw_handlers}
myt81zggyy4hko2lzcx8f4lckg0v3wk
Modul:language-like
828
13233
373482
233083
2026-09-10T18:16:07Z
SNN95
2113
kemaskini
373482
Scribunto
text/plain
-- Terjemahan ini merujuk kepada panduan "Wiki format Malay translation"[cite: 1].
local export = {}
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
-- Dalam kontena Docker yang dipasang secara setempat yang mengandungi Wiktionary, Wikibase lazimnya tidak dipasang
-- kerana agak rumit untuk dikonfigurasikan dengan betul. Dalam keadaan sedemikian, `mw.wikibase` mengembalikan nil.
-- Kita kini mempunyai semakan dalam kod di bawah supaya ia berfungsi secara munasabah semasa ketiadaan Wikibase.
local wikibase = mw.wikibase
local category_name_has_suffix -- ditakrifkan sebagai export.categoryNameHasSuffix di bawah
local get_entity = wikibase and wikibase.getEntity or nil
local get_entity_id_for_title = wikibase and wikibase.getEntityIdForTitle or nil
local gsub = string.gsub
local ipairs = ipairs
local match = string.match
local select = select
local sitelink = wikibase and wikibase.sitelink or nil
local type = type
local umatch = mw.ustring.match
--[==[
Pemuat untuk fungsi dalam modul lain, yang menulis ganti dirinya sendiri dengan fungsi sasaran apabila dipanggil. Ini memastikan modul hanya dimuatkan apabila diperlukan, mengekalkan kelajuan/kemudahan fungsi pramuat yang diisytiharkan secara setempat, dan tidak mempunyai overhed selepas panggilan pertama, memandangkan fungsi sasaran dipanggil terus dalam sebarang panggilan seterusnya.
]==]
local function case_insensitive_pattern(...)
case_insensitive_pattern = require(string_utilities_module).case_insensitive_pattern
return case_insensitive_pattern(...)
end
local function table_flatten(...)
table_flatten = require(table_module).flatten
return table_flatten(...)
end
--[==[
Pemuat untuk objek, yang memuatkan data (atau beberapa objek lain) ke dalam sesuatu pemboleh ubah, yang kemudiannya boleh diakses sebagai "foo or get_foo()", di mana fungsi get_foo menetapkan objek kepada "foo" dan kemudian mengembalikannya. Ini memastikan ia hanya dimuatkan apabila diperlukan, dan mengelakkan keperluan untuk menyemak kewujudan objek setiap kali, memandangkan sebaik sahaja "foo" ditetapkan, "get_foo" tidak akan dipanggil lagi.
]==]
local content_lang
local function get_content_lang()
content_lang, get_content_lang = mw.getContentLanguage(), nil
return content_lang
end
-- Pelaksanaan getAliases() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getAliases(self)
local aliases = self._aliases
if aliases == nil then
aliases = (self._data or self).aliases or {}
self._aliases = aliases
end
return aliases
end
-- Pelaksanaan getVarieties() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan. Jika `flatten` dihantar masuk,
-- ratakan kepada senarai rentetan; jika tidak, kekalkan strukturnya.
function export.getVarieties(self, flatten)
local varieties = self._varieties
if varieties == nil then
varieties = (self._data or self).varieties or {}
self._varieties = varieties
end
if not flatten then
return varieties
end
local flattened_varieties = self._flattened_varieties
if flattened_varieties == nil then
flattened_varieties = table_flatten(varieties)
self._flattened_varieties = flattened_varieties
end
return flattened_varieties
end
-- Pelaksanaan getOtherNames() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getOtherNames(self)
local other_names = self._other_names
if other_names == nil then
other_names = (self._data or self).other_names or {}
self._other_names = other_names
end
return other_names
end
-- Pelaksanaan getAllNames() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getAllNames(self)
local all_names = self._allNames
if all_names == nil then
all_names = table_flatten{
self.getCanonicalNames and self:getCanonicalNames() or self:getCanonicalName(),
self:getAliases(),
self:getVarieties(),
self:getOtherNames(),
}
self._allNames = all_names
end
return all_names
end
function export.hasType(self, ...)
local n = select("#", ...)
if n == 0 then
error("Mesti menyatakan sekurang-kurangnya satu jenis.")
end
local types = self:getTypes()
if not types[...] then
return false
elseif n == 1 then
return true
end
local args = {...}
for i = 2, n do
if not types[args[i]] then
return false
end
end
return true
end
-- Pelaksanaan fungsi getByCode() yang boleh dipanggil melalui templat untuk bahasa,
-- bahasa etimologi, keluarga dan skrip. `item` ialah bahasa, keluarga atau skrip
-- yang dipersoalkan; `args` ialah hujah yang dihantar melalui penyeruan modul;
-- `extra_processing`, jika dinyatakan, ialah fungsi satu hujah (sifat yang diminta)
-- dan sepatutnya mengembalikan nilai yang akan dikembalikan kepada pemanggil,
-- atau nil jika sifat tersebut tidak dikenali. `extra_processing` dipanggil selepas
-- sifat kes khas dikendalikan dan sebelum kod pemprosesan tujuan umum yang
-- berfungsi untuk semua sifat rentetan.
function export.templateGetByCode(args, extra_processing)
-- Item yang ingin dicari oleh pemanggil.
local item, itemname, list = args[1], args[2]
if itemname == "getAllNames" then
list = item:getAllNames()
elseif itemname == "getOtherNames" then
list = item:getOtherNames()
elseif itemname == "getAliases" then
list = item:getAliases()
elseif itemname == "getVarieties" then
list = item:getVarieties(true)
end
if list then
local index = args[3]; if index == "" then index = nil end
index = tonumber(index or error("Indeks berangka bagi item yang dikehendaki dalam senarai (parameter 3) belum dinyatakan."))
return list[index] or ""
end
if itemname == "getFamily" and item.getFamily then
return item:getFamily():getCode()
end
if extra_processing then
local retval = extra_processing(itemname)
if retval then
return retval
end
end
if item[itemname] then
local ret = item[itemname](item)
if type(ret) == "string" then
return ret
end
error("Fungsi \"" .. itemname .. "\" tidak mengembalikan nilai rentetan.")
end
error("Meminta nama item tidak sah \"" .. itemname .. "\".")
end
-- Pelaksanaan getCommonsCategory() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getWikidataItem(self)
local item = self._WikidataItem
if item == nil then
item = (self._data or self)[2]
-- Jika nilainya nil, ia dicache sebagai false.
item = item ~= nil and (type(item) == "number" and "Q" .. item or item) or false
self._WikidataItem = item
end
return item or nil
end
do
local function get_wiki_article(self, project)
local article
-- Jika projek ialah mswiki, semak data bahasa.
if project == "mswiki" then
article = (self._data or self).wikipedia_article
if article then
return article
end
end
-- Selain itu, semak item Wikidata untuk pautan laman (sitelink).
local item = self:getWikidataItem()
article = item and sitelink and sitelink(item, project) or false
if article then
return article
end
-- Jika masih tiada rencana, cuba induk (jika ada).
local get_parent = self.getParent
if get_parent then
local parent = get_parent(self)
if parent then
return get_wiki_article(parent, project)
end
end
return false
end
-- Pelaksanaan getWikipediaArticle() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getWikipediaArticle(self, noCategoryFallback, project)
if project == nil then
project = "mswiki"
end
local article
if project == "mswiki" then
article = self._wikipedia_article
if article == nil then
article = get_wiki_article(self, project)
self._wikipedia_article = article
end
else
-- Jika projek bukan mswiki, lalai kepada tiada sandaran kategori,
-- tetapi ini boleh diatasi dengan menyatakan nilai `false`.
if noCategoryFallback == nil then
noCategoryFallback = true
end
local non_en_wikipedia_articles = self._non_en_wikipedia_articles
if non_en_wikipedia_articles == nil then
non_en_wikipedia_articles = {}
self._non_en_wikipedia_articles = non_en_wikipedia_articles
else
article = non_en_wikipedia_articles[project]
end
if article == nil then
article = get_wiki_article(self, project)
non_en_wikipedia_articles[project] = article
end
end
if article or noCategoryFallback then
return article or nil
end
return (gsub(self:getCategoryName(), "Bahasa kreol", "Kreol"))
end
end
do
local function get_commons_cat_claim(item)
if item then
local entity = get_entity and get_entity(item) or nil
if entity then
-- P373 ialah sifat "kategori Commons".
local claim = entity:getBestStatements("P373")[1]
return claim and ("Category:" .. claim.mainsnak.datavalue.value) or nil
end
end
end
local function get_commons_cat_sitelink(item)
if item then
local commons_sitelink = sitelink and sitelink(item, "commonswiki") or nil
-- Tolak sebarang pautan laman yang bukan kategori.
return commons_sitelink and match(commons_sitelink, "^Category:") and commons_sitelink or nil
end
end
local function get_commons_cat(self)
-- Semakan disusun mengikut susunan kebarangkalian padanan yang berguna.
-- Dapatkan kenyataan Kategori Commons daripada item objek.
local lang_item = self:getWikidataItem()
local category = get_commons_cat_claim(lang_item)
if category then
return category
end
-- Jika tidak, cuba item bagi kategori objek tersebut.
local langcat_item = get_entity_id_for_title and get_entity_id_for_title("Category:" .. self:getCategoryName()) or nil
category = get_commons_cat_claim(langcat_item)
if category then
return category
end
-- Jika tiada kenyataan P373, mungkin terdapat pautan laman pada
-- item kategori objek tersebut.
category = get_commons_cat_sitelink(langcat_item)
if category then
return category
end
-- Jika tiada, cuba pautan laman pada item objek itu sendiri.
category = get_commons_cat_sitelink(lang_item)
if category then
return category
end
-- Jika masih tiada kategori, cuba induk (jika ada).
local get_parent = self.getParent
if get_parent then
local parent = get_parent(self)
if parent then
return get_commons_cat(parent)
end
end
return false
end
-- Pelaksanaan getCommonsCategory() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getCommonsCategory(self)
local category
category = self._commons_category
-- Nilai nil dicache sebagai false.
if category ~= nil then
return category or nil
end
category = get_commons_cat(self)
self._commons_category = category
return category or nil
end
end
function export.categoryNameHasSuffix(name, suffixes)
for _, suffix in ipairs(suffixes) do
if umatch(name, "%f[%w]" .. case_insensitive_pattern(suffix, "^.") .. "$") then
return false
end
end
return true
end
category_name_has_suffix = export.categoryNameHasSuffix
function export.categoryNameToCode(name, suffix, data, suffixes)
local truncated = match(name, "(.*)" .. suffix .. "$")
if truncated and category_name_has_suffix(truncated, suffixes) then
local code = data[truncated]
if code ~= nil then
return code, truncated
end
truncated = (content_lang or get_content_lang()):lcfirst(truncated)
code = data[truncated]
if code ~= nil then
return code, truncated
end
end
if not category_name_has_suffix(name, suffixes) then
local code = data[name]
if code ~= nil then
return code, name
end
name = (content_lang or get_content_lang()):lcfirst(name)
code = data[name]
if code ~= nil then
return code, name
end
end
return nil, nil
end
return export
p5xwbhknr8objt6je6mbzah8mz39xp2
373483
373482
2026-09-10T18:18:14Z
SNN95
2113
373483
Scribunto
text/plain
local export = {}
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
-- Dalam kontena Docker yang dipasang secara setempat yang mengandungi Wiktionary, Wikibase lazimnya tidak dipasang
-- kerana agak rumit untuk dikonfigurasikan dengan betul. Dalam keadaan sedemikian, `mw.wikibase` mengembalikan nil.
-- Kita kini mempunyai semakan dalam kod di bawah supaya ia berfungsi secara munasabah semasa ketiadaan Wikibase.
local wikibase = mw.wikibase
local category_name_has_suffix -- ditakrifkan sebagai export.categoryNameHasSuffix di bawah
local get_entity = wikibase and wikibase.getEntity or nil
local get_entity_id_for_title = wikibase and wikibase.getEntityIdForTitle or nil
local gsub = string.gsub
local ipairs = ipairs
local match = string.match
local select = select
local sitelink = wikibase and wikibase.sitelink or nil
local type = type
local umatch = mw.ustring.match
--[==[
Pemuat untuk fungsi dalam modul lain, yang menulis ganti dirinya sendiri dengan fungsi sasaran apabila dipanggil. Ini memastikan modul hanya dimuatkan apabila diperlukan, mengekalkan kelajuan/kemudahan fungsi pramuat yang diisytiharkan secara setempat, dan tidak mempunyai overhed selepas panggilan pertama, memandangkan fungsi sasaran dipanggil terus dalam sebarang panggilan seterusnya.
]==]
local function case_insensitive_pattern(...)
case_insensitive_pattern = require(string_utilities_module).case_insensitive_pattern
return case_insensitive_pattern(...)
end
local function table_flatten(...)
table_flatten = require(table_module).flatten
return table_flatten(...)
end
--[==[
Pemuat untuk objek, yang memuatkan data (atau beberapa objek lain) ke dalam sesuatu pemboleh ubah, yang kemudiannya boleh diakses sebagai "foo or get_foo()", di mana fungsi get_foo menetapkan objek kepada "foo" dan kemudian mengembalikannya. Ini memastikan ia hanya dimuatkan apabila diperlukan, dan mengelakkan keperluan untuk menyemak kewujudan objek setiap kali, memandangkan sebaik sahaja "foo" ditetapkan, "get_foo" tidak akan dipanggil lagi.
]==]
local content_lang
local function get_content_lang()
content_lang, get_content_lang = mw.getContentLanguage(), nil
return content_lang
end
-- Pelaksanaan getAliases() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getAliases(self)
local aliases = self._aliases
if aliases == nil then
aliases = (self._data or self).aliases or {}
self._aliases = aliases
end
return aliases
end
-- Pelaksanaan getVarieties() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan. Jika `flatten` dihantar masuk,
-- ratakan kepada senarai rentetan; jika tidak, kekalkan strukturnya.
function export.getVarieties(self, flatten)
local varieties = self._varieties
if varieties == nil then
varieties = (self._data or self).varieties or {}
self._varieties = varieties
end
if not flatten then
return varieties
end
local flattened_varieties = self._flattened_varieties
if flattened_varieties == nil then
flattened_varieties = table_flatten(varieties)
self._flattened_varieties = flattened_varieties
end
return flattened_varieties
end
-- Pelaksanaan getOtherNames() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getOtherNames(self)
local other_names = self._other_names
if other_names == nil then
other_names = (self._data or self).other_names or {}
self._other_names = other_names
end
return other_names
end
-- Pelaksanaan getAllNames() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getAllNames(self)
local all_names = self._allNames
if all_names == nil then
all_names = table_flatten{
self.getCanonicalNames and self:getCanonicalNames() or self:getCanonicalName(),
self:getAliases(),
self:getVarieties(),
self:getOtherNames(),
}
self._allNames = all_names
end
return all_names
end
function export.hasType(self, ...)
local n = select("#", ...)
if n == 0 then
error("Mesti menyatakan sekurang-kurangnya satu jenis.")
end
local types = self:getTypes()
if not types[...] then
return false
elseif n == 1 then
return true
end
local args = {...}
for i = 2, n do
if not types[args[i]] then
return false
end
end
return true
end
-- Pelaksanaan fungsi getByCode() yang boleh dipanggil melalui templat untuk bahasa,
-- bahasa etimologi, keluarga dan skrip. `item` ialah bahasa, keluarga atau skrip
-- yang dipersoalkan; `args` ialah hujah yang dihantar melalui penyeruan modul;
-- `extra_processing`, jika dinyatakan, ialah fungsi satu hujah (sifat yang diminta)
-- dan sepatutnya mengembalikan nilai yang akan dikembalikan kepada pemanggil,
-- atau nil jika sifat tersebut tidak dikenali. `extra_processing` dipanggil selepas
-- sifat kes khas dikendalikan dan sebelum kod pemprosesan tujuan umum yang
-- berfungsi untuk semua sifat rentetan.
function export.templateGetByCode(args, extra_processing)
-- Item yang ingin dicari oleh pemanggil.
local item, itemname, list = args[1], args[2]
if itemname == "getAllNames" then
list = item:getAllNames()
elseif itemname == "getOtherNames" then
list = item:getOtherNames()
elseif itemname == "getAliases" then
list = item:getAliases()
elseif itemname == "getVarieties" then
list = item:getVarieties(true)
end
if list then
local index = args[3]; if index == "" then index = nil end
index = tonumber(index or error("Indeks berangka bagi item yang dikehendaki dalam senarai (parameter 3) belum dinyatakan."))
return list[index] or ""
end
if itemname == "getFamily" and item.getFamily then
return item:getFamily():getCode()
end
if extra_processing then
local retval = extra_processing(itemname)
if retval then
return retval
end
end
if item[itemname] then
local ret = item[itemname](item)
if type(ret) == "string" then
return ret
end
error("Fungsi \"" .. itemname .. "\" tidak mengembalikan nilai rentetan.")
end
error("Meminta nama item tidak sah \"" .. itemname .. "\".")
end
-- Pelaksanaan getCommonsCategory() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getWikidataItem(self)
local item = self._WikidataItem
if item == nil then
item = (self._data or self)[2]
-- Jika nilainya nil, ia dicache sebagai false.
item = item ~= nil and (type(item) == "number" and "Q" .. item or item) or false
self._WikidataItem = item
end
return item or nil
end
do
local function get_wiki_article(self, project)
local article
-- Jika projek ialah mswiki, semak data bahasa.
if project == "mswiki" then
article = (self._data or self).wikipedia_article
if article then
return article
end
end
-- Selain itu, semak item Wikidata untuk pautan laman (sitelink).
local item = self:getWikidataItem()
article = item and sitelink and sitelink(item, project) or false
if article then
return article
end
-- Jika masih tiada rencana, cuba induk (jika ada).
local get_parent = self.getParent
if get_parent then
local parent = get_parent(self)
if parent then
return get_wiki_article(parent, project)
end
end
return false
end
-- Pelaksanaan getWikipediaArticle() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getWikipediaArticle(self, noCategoryFallback, project)
if project == nil then
project = "mswiki"
end
local article
if project == "mswiki" then
article = self._wikipedia_article
if article == nil then
article = get_wiki_article(self, project)
self._wikipedia_article = article
end
else
-- Jika projek bukan mswiki, lalai kepada tiada sandaran kategori,
-- tetapi ini boleh diatasi dengan menyatakan nilai `false`.
if noCategoryFallback == nil then
noCategoryFallback = true
end
local non_en_wikipedia_articles = self._non_en_wikipedia_articles
if non_en_wikipedia_articles == nil then
non_en_wikipedia_articles = {}
self._non_en_wikipedia_articles = non_en_wikipedia_articles
else
article = non_en_wikipedia_articles[project]
end
if article == nil then
article = get_wiki_article(self, project)
non_en_wikipedia_articles[project] = article
end
end
if article or noCategoryFallback then
return article or nil
end
return (gsub(self:getCategoryName(), "Bahasa kreol", "Kreol"))
end
end
do
local function get_commons_cat_claim(item)
if item then
local entity = get_entity and get_entity(item) or nil
if entity then
-- P373 ialah sifat "kategori Commons".
local claim = entity:getBestStatements("P373")[1]
return claim and ("Category:" .. claim.mainsnak.datavalue.value) or nil
end
end
end
local function get_commons_cat_sitelink(item)
if item then
local commons_sitelink = sitelink and sitelink(item, "commonswiki") or nil
-- Tolak sebarang pautan laman yang bukan kategori.
return commons_sitelink and match(commons_sitelink, "^Category:") and commons_sitelink or nil
end
end
local function get_commons_cat(self)
-- Semakan disusun mengikut susunan kebarangkalian padanan yang berguna.
-- Dapatkan kenyataan Kategori Commons daripada item objek.
local lang_item = self:getWikidataItem()
local category = get_commons_cat_claim(lang_item)
if category then
return category
end
-- Jika tidak, cuba item bagi kategori objek tersebut.
local langcat_item = get_entity_id_for_title and get_entity_id_for_title("Category:" .. self:getCategoryName()) or nil
category = get_commons_cat_claim(langcat_item)
if category then
return category
end
-- Jika tiada kenyataan P373, mungkin terdapat pautan laman pada
-- item kategori objek tersebut.
category = get_commons_cat_sitelink(langcat_item)
if category then
return category
end
-- Jika tiada, cuba pautan laman pada item objek itu sendiri.
category = get_commons_cat_sitelink(lang_item)
if category then
return category
end
-- Jika masih tiada kategori, cuba induk (jika ada).
local get_parent = self.getParent
if get_parent then
local parent = get_parent(self)
if parent then
return get_commons_cat(parent)
end
end
return false
end
-- Pelaksanaan getCommonsCategory() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getCommonsCategory(self)
local category
category = self._commons_category
-- Nilai nil dicache sebagai false.
if category ~= nil then
return category or nil
end
category = get_commons_cat(self)
self._commons_category = category
return category or nil
end
end
function export.categoryNameHasSuffix(name, suffixes)
for _, suffix in ipairs(suffixes) do
if umatch(name, "%f[%w]" .. case_insensitive_pattern(suffix, "^.") .. "$") then
return false
end
end
return true
end
category_name_has_suffix = export.categoryNameHasSuffix
function export.categoryNameToCode(name, suffix, data, suffixes)
local truncated = match(name, "(.*)" .. suffix .. "$")
if truncated and category_name_has_suffix(truncated, suffixes) then
local code = data[truncated]
if code ~= nil then
return code, truncated
end
truncated = (content_lang or get_content_lang()):lcfirst(truncated)
code = data[truncated]
if code ~= nil then
return code, truncated
end
end
if not category_name_has_suffix(name, suffixes) then
local code = data[name]
if code ~= nil then
return code, name
end
name = (content_lang or get_content_lang()):lcfirst(name)
code = data[name]
if code ~= nil then
return code, name
end
end
return nil, nil
end
return export
abc92comv4bafz2o6aa831nwv127x57
373539
373483
2026-09-11T08:57:22Z
Hakimi97
2668
Although suffix, Malay language do not use suffix, it should behave like a prefix so that Bahasa/Bahasa-bahasa could be in front of language name
373539
Scribunto
text/plain
local export = {}
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
-- Dalam kontena Docker yang dipasang secara setempat yang mengandungi Wiktionary, Wikibase lazimnya tidak dipasang
-- kerana agak rumit untuk dikonfigurasikan dengan betul. Dalam keadaan sedemikian, `mw.wikibase` mengembalikan nil.
-- Kita kini mempunyai semakan dalam kod di bawah supaya ia berfungsi secara munasabah semasa ketiadaan Wikibase.
local wikibase = mw.wikibase
local category_name_has_suffix -- ditakrifkan sebagai export.categoryNameHasSuffix di bawah
local get_entity = wikibase and wikibase.getEntity or nil
local get_entity_id_for_title = wikibase and wikibase.getEntityIdForTitle or nil
local gsub = string.gsub
local ipairs = ipairs
local match = string.match
local select = select
local sitelink = wikibase and wikibase.sitelink or nil
local type = type
local umatch = mw.ustring.match
--[==[
Pemuat untuk fungsi dalam modul lain, yang menulis ganti dirinya sendiri dengan fungsi sasaran apabila dipanggil. Ini memastikan modul hanya dimuatkan apabila diperlukan, mengekalkan kelajuan/kemudahan fungsi pramuat yang diisytiharkan secara setempat, dan tidak mempunyai overhed selepas panggilan pertama, memandangkan fungsi sasaran dipanggil terus dalam sebarang panggilan seterusnya.
]==]
local function case_insensitive_pattern(...)
case_insensitive_pattern = require(string_utilities_module).case_insensitive_pattern
return case_insensitive_pattern(...)
end
local function table_flatten(...)
table_flatten = require(table_module).flatten
return table_flatten(...)
end
--[==[
Pemuat untuk objek, yang memuatkan data (atau beberapa objek lain) ke dalam sesuatu pemboleh ubah, yang kemudiannya boleh diakses sebagai "foo or get_foo()", di mana fungsi get_foo menetapkan objek kepada "foo" dan kemudian mengembalikannya. Ini memastikan ia hanya dimuatkan apabila diperlukan, dan mengelakkan keperluan untuk menyemak kewujudan objek setiap kali, memandangkan sebaik sahaja "foo" ditetapkan, "get_foo" tidak akan dipanggil lagi.
]==]
local content_lang
local function get_content_lang()
content_lang, get_content_lang = mw.getContentLanguage(), nil
return content_lang
end
-- Pelaksanaan getAliases() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getAliases(self)
local aliases = self._aliases
if aliases == nil then
aliases = (self._data or self).aliases or {}
self._aliases = aliases
end
return aliases
end
-- Pelaksanaan getVarieties() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan. Jika `flatten` dihantar masuk,
-- ratakan kepada senarai rentetan; jika tidak, kekalkan strukturnya.
function export.getVarieties(self, flatten)
local varieties = self._varieties
if varieties == nil then
varieties = (self._data or self).varieties or {}
self._varieties = varieties
end
if not flatten then
return varieties
end
local flattened_varieties = self._flattened_varieties
if flattened_varieties == nil then
flattened_varieties = table_flatten(varieties)
self._flattened_varieties = flattened_varieties
end
return flattened_varieties
end
-- Pelaksanaan getOtherNames() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getOtherNames(self)
local other_names = self._other_names
if other_names == nil then
other_names = (self._data or self).other_names or {}
self._other_names = other_names
end
return other_names
end
-- Pelaksanaan getAllNames() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getAllNames(self)
local all_names = self._allNames
if all_names == nil then
all_names = table_flatten{
self.getCanonicalNames and self:getCanonicalNames() or self:getCanonicalName(),
self:getAliases(),
self:getVarieties(),
self:getOtherNames(),
}
self._allNames = all_names
end
return all_names
end
function export.hasType(self, ...)
local n = select("#", ...)
if n == 0 then
error("Mesti menyatakan sekurang-kurangnya satu jenis.")
end
local types = self:getTypes()
if not types[...] then
return false
elseif n == 1 then
return true
end
local args = {...}
for i = 2, n do
if not types[args[i]] then
return false
end
end
return true
end
-- Pelaksanaan fungsi getByCode() yang boleh dipanggil melalui templat untuk bahasa,
-- bahasa etimologi, keluarga dan skrip. `item` ialah bahasa, keluarga atau skrip
-- yang dipersoalkan; `args` ialah hujah yang dihantar melalui penyeruan modul;
-- `extra_processing`, jika dinyatakan, ialah fungsi satu hujah (sifat yang diminta)
-- dan sepatutnya mengembalikan nilai yang akan dikembalikan kepada pemanggil,
-- atau nil jika sifat tersebut tidak dikenali. `extra_processing` dipanggil selepas
-- sifat kes khas dikendalikan dan sebelum kod pemprosesan tujuan umum yang
-- berfungsi untuk semua sifat rentetan.
function export.templateGetByCode(args, extra_processing)
-- Item yang ingin dicari oleh pemanggil.
local item, itemname, list = args[1], args[2]
if itemname == "getAllNames" then
list = item:getAllNames()
elseif itemname == "getOtherNames" then
list = item:getOtherNames()
elseif itemname == "getAliases" then
list = item:getAliases()
elseif itemname == "getVarieties" then
list = item:getVarieties(true)
end
if list then
local index = args[3]; if index == "" then index = nil end
index = tonumber(index or error("Indeks berangka bagi item yang dikehendaki dalam senarai (parameter 3) belum dinyatakan."))
return list[index] or ""
end
if itemname == "getFamily" and item.getFamily then
return item:getFamily():getCode()
end
if extra_processing then
local retval = extra_processing(itemname)
if retval then
return retval
end
end
if item[itemname] then
local ret = item[itemname](item)
if type(ret) == "string" then
return ret
end
error("Fungsi \"" .. itemname .. "\" tidak mengembalikan nilai rentetan.")
end
error("Meminta nama item tidak sah \"" .. itemname .. "\".")
end
-- Pelaksanaan getCommonsCategory() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getWikidataItem(self)
local item = self._WikidataItem
if item == nil then
item = (self._data or self)[2]
-- Jika nilainya nil, ia dicache sebagai false.
item = item ~= nil and (type(item) == "number" and "Q" .. item or item) or false
self._WikidataItem = item
end
return item or nil
end
do
local function get_wiki_article(self, project)
local article
-- Jika projek ialah mswiki, semak data bahasa.
if project == "mswiki" then
article = (self._data or self).wikipedia_article
if article then
return article
end
end
-- Selain itu, semak item Wikidata untuk pautan laman (sitelink).
local item = self:getWikidataItem()
article = item and sitelink and sitelink(item, project) or false
if article then
return article
end
-- Jika masih tiada rencana, cuba induk (jika ada).
local get_parent = self.getParent
if get_parent then
local parent = get_parent(self)
if parent then
return get_wiki_article(parent, project)
end
end
return false
end
-- Pelaksanaan getWikipediaArticle() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getWikipediaArticle(self, noCategoryFallback, project)
if project == nil then
project = "mswiki"
end
local article
if project == "mswiki" then
article = self._wikipedia_article
if article == nil then
article = get_wiki_article(self, project)
self._wikipedia_article = article
end
else
-- Jika projek bukan mswiki, lalai kepada tiada sandaran kategori,
-- tetapi ini boleh diatasi dengan menyatakan nilai `false`.
if noCategoryFallback == nil then
noCategoryFallback = true
end
local non_en_wikipedia_articles = self._non_en_wikipedia_articles
if non_en_wikipedia_articles == nil then
non_en_wikipedia_articles = {}
self._non_en_wikipedia_articles = non_en_wikipedia_articles
else
article = non_en_wikipedia_articles[project]
end
if article == nil then
article = get_wiki_article(self, project)
non_en_wikipedia_articles[project] = article
end
end
if article or noCategoryFallback then
return article or nil
end
return (gsub(self:getCategoryName(), "Bahasa kreol", "Kreol"))
end
end
do
local function get_commons_cat_claim(item)
if item then
local entity = get_entity and get_entity(item) or nil
if entity then
-- P373 ialah sifat "kategori Commons".
local claim = entity:getBestStatements("P373")[1]
return claim and ("Category:" .. claim.mainsnak.datavalue.value) or nil
end
end
end
local function get_commons_cat_sitelink(item)
if item then
local commons_sitelink = sitelink and sitelink(item, "commonswiki") or nil
-- Tolak sebarang pautan laman yang bukan kategori.
return commons_sitelink and match(commons_sitelink, "^Category:") and commons_sitelink or nil
end
end
local function get_commons_cat(self)
-- Semakan disusun mengikut susunan kebarangkalian padanan yang berguna.
-- Dapatkan kenyataan Kategori Commons daripada item objek.
local lang_item = self:getWikidataItem()
local category = get_commons_cat_claim(lang_item)
if category then
return category
end
-- Jika tidak, cuba item bagi kategori objek tersebut.
local langcat_item = get_entity_id_for_title and get_entity_id_for_title("Category:" .. self:getCategoryName()) or nil
category = get_commons_cat_claim(langcat_item)
if category then
return category
end
-- Jika tiada kenyataan P373, mungkin terdapat pautan laman pada
-- item kategori objek tersebut.
category = get_commons_cat_sitelink(langcat_item)
if category then
return category
end
-- Jika tiada, cuba pautan laman pada item objek itu sendiri.
category = get_commons_cat_sitelink(lang_item)
if category then
return category
end
-- Jika masih tiada kategori, cuba induk (jika ada).
local get_parent = self.getParent
if get_parent then
local parent = get_parent(self)
if parent then
return get_commons_cat(parent)
end
end
return false
end
-- Pelaksanaan getCommonsCategory() untuk bahasa, bahasa etimologi,
-- keluarga, skrip dan sistem tulisan.
function export.getCommonsCategory(self)
local category
category = self._commons_category
-- Nilai nil dicache sebagai false.
if category ~= nil then
return category or nil
end
category = get_commons_cat(self)
self._commons_category = category
return category or nil
end
end
function export.categoryNameHasSuffix(name, suffixes)
for _, suffix in ipairs(suffixes) do
if umatch(name, "^" .. case_insensitive_pattern(suffix, "^.") .. "%f[%W]") then
return false
end
end
return true
end
category_name_has_suffix = export.categoryNameHasSuffix
function export.categoryNameToCode(name, suffix, data, suffixes)
local truncated = match(name, "^" .. suffix .. "(.*)")
if truncated and category_name_has_suffix(truncated, suffixes) then
local code = data[truncated]
if code ~= nil then
return code, truncated
end
truncated = (content_lang or get_content_lang()):lcfirst(truncated)
code = data[truncated]
if code ~= nil then
return code, truncated
end
end
if not category_name_has_suffix(name, suffixes) then
local code = data[name]
if code ~= nil then
return code, name
end
name = (content_lang or get_content_lang()):lcfirst(name)
code = data[name]
if code ~= nil then
return code, name
end
end
return nil, nil
end
return export
fxxkk4qzxm9y7g35ukex933ohpg8vng
Modul:scripts/recognition data
828
13234
373508
184839
2026-09-10T20:58:07Z
SNN95
2113
kemaskini
373508
Scribunto
text/plain
local data = {
[0x00] = {
{ 0x00041, 0x0005A, "Latn"},
{ 0x00061, 0x0007A, "Latn"},
{ 0x000C0, 0x000D6, "Latn"},
{ 0x000D8, 0x000F6, "Latn"},
{ 0x000F8, 0x0024F, "Latn"},
{ 0x00370, 0x003E1, "Grek", "Polyt" },
{ 0x003E2, 0x003EF, "Copt" },
{ 0x003F0, 0x003FF, "Grek", "Polyt" },
{ 0x00400, 0x0045F, "Cyrl" },
{ 0x00460, 0x00469, "Cyrs" },
{ 0x0046A, 0x0046D, "Cyrl" },
{ 0x0046E, 0x00471, "Cyrs" },
{ 0x00472, 0x00475, "Cyrl" },
{ 0x00476, 0x00489, "Cyrs" },
{ 0x0048A, 0x00527, "Cyrl" },
{ 0x00531, 0x0058F, "Armn" },
{ 0x00590, 0x005FF, "Hebr" },
{ 0x00600, 0x006FF, "Arab" },
{ 0x00700, 0x0074F, "Syrc" },
{ 0x00750, 0x0077F, "Arab" },
{ 0x00780, 0x007B1, "Thaa" },
{ 0x007C0, 0x007FF, "Nkoo" },
{ 0x00800, 0x0083E, "Samr" },
{ 0x00840, 0x0085E, "Mand" },
{ 0x00860, 0x0086A, "Syrc" },
{ 0x008A0, 0x008FF, "Arab" },
{ 0x00900, 0x0097F, "Deva" },
{ 0x00980, 0x00983, "Beng" },
{ 0x00985, 0x0098C, "Beng" },
{ 0x00993, 0x009A8, "Beng" },
{ 0x009AA, 0x009B0, "Beng" },
{ 0x009B6, 0x009B9, "Beng" },
{ 0x009BC, 0x009C4, "Beng" },
{ 0x009CB, 0x009CE, "Beng" },
{ 0x009E0, 0x009E3, "Beng" },
{ 0x009E6, 0x009EF, "Beng" },
{ 0x009F0, 0x009F1, "as-Beng" },
{ 0x00A01, 0x00A76, "Guru" },
{ 0x00A81, 0x00AF1, "Gujr" },
{ 0x00B01, 0x00B77, "Orya" },
{ 0x00B82, 0x00BFA, "Taml" },
{ 0x00C00, 0x00C7F, "Telu" },
{ 0x00C80, 0x00CF2, "Knda" },
{ 0x00D02, 0x00D7F, "Mlym" },
{ 0x00D82, 0x00DF4, "Sinh" },
{ 0x00E01, 0x00E5B, "Thai" },
{ 0x00E81, 0x00EDF, "Laoo" },
{ 0x00F00, 0x00FDA, "Tibt" },
},
[0x01] = {
{ 0x01000, 0x0109F, "Mymr" },
{ 0x010A0, 0x010CD, "Geok" },
{ 0x010D0, 0x010FF, "Geor" },
{ 0x01100, 0x011FF, "Hang" },
{ 0x01200, 0x01399, "Ethi" },
{ 0x013A0, 0x013F4, "Cher" },
{ 0x01400, 0x0167F, "Cans" },
{ 0x01680, 0x0169C, "Ogam" },
{ 0x016A0, 0x016F0, "Runr" },
{ 0x01700, 0x01714, "Tglg" },
{ 0x01720, 0x01734, "Hano" },
{ 0x01740, 0x01753, "Buhd" },
{ 0x01760, 0x01773, "Tagb" },
{ 0x01780, 0x017F9, "Khmr" },
{ 0x01800, 0x018AA, "Mong" },
{ 0x01900, 0x0194F, "Limb" },
{ 0x01950, 0x01974, "Tale" },
{ 0x01980, 0x019DF, "Talu" },
{ 0x019E0, 0x019FF, "Khmr" },
{ 0x01A00, 0x01A1F, "Bugi" },
{ 0x01A20, 0x01AAD, "Lana" },
{ 0x01B00, 0x01B7C, "Bali" },
{ 0x01B80, 0x01BBF, "Sund" },
{ 0x01BC0, 0x01BFF, "Batk" },
{ 0x01C00, 0x01C4F, "Lepc" },
{ 0x01C50, 0x01C7F, "Olck" },
{ 0x01C90, 0x01CBF, "Geor" },
{ 0x01E00, 0x01EFF, "Latn" },
{ 0x01F00, 0x01FFE, "Polyt" },
},
[0x02] = {
{ 0x02190, 0x021FF, "Zsym" },
{ 0x02200, 0x022FF, "Zmth" },
{ 0x02300, 0x023FF, "Zsym" },
{ 0x02500, 0x027BF, "Zsym" },
{ 0x027C0, 0x027EF, "Zmth" },
{ 0x02800, 0x028FF, "Brai" },
{ 0x02980, 0x02AFF, "Zmth" },
{ 0x02B00, 0x02BFE, "Zsym" },
{ 0x02C00, 0x02C5E, "Glag" },
{ 0x02C60, 0x02C7F, "Latn" },
{ 0x02C80, 0x02CFF, "Copt" },
{ 0x02D00, 0x02D2D, "Geok" },
{ 0x02D30, 0x02D7F, "Tfng" },
{ 0x02D80, 0x02DDE, "Ethi" },
{ 0x02E80, 0x02FDF, "Hani" },
},
[0x03] = {
{ 0x03001, 0x03002, "Hani", "Bopo", "Hang", "Hira", "Kana", "Yiii" },
{ 0x03003, 0x03007, "Hani" },
{ 0x03008, 0x03011, "Hani", "Bopo", "Hang", "Hira", "Kana", "Yiii" },
{ 0x03012, 0x03013, "Hani" },
{ 0x03014, 0x0301B, "Hani", "Bopo", "Hang", "Hira", "Kana", "Yiii" },
{ 0x0301C, 0x0301F, "Hani", "Bopo", "Hang", "Hira", "Kana" },
{ 0x03020, 0x0303F, "Hani" },
{ 0x03041, 0x0309F, "Hira" },
{ 0x030A0, 0x030FF, "Kana" },
{ 0x03105, 0x0312F, "Bopo" },
{ 0x03131, 0x0318E, "Hang" },
{ 0x031A0, 0x031BA, "Bopo" },
{ 0x031C0, 0x031E3, "Hani" },
{ 0x031F0, 0x031FF, "Kana" },
{ 0x03220, 0x03247, "Hani" },
{ 0x03280, 0x032B0, "Hani" },
{ 0x032C0, 0x032CB, "Hani" },
{ 0x03300, 0x03357, "Kana" },
{ 0x03358, 0x03370, "Hani" },
{ 0x0337B, 0x0337F, "Hani" },
{ 0x033E0, 0x033FE, "Hani" },
{ 0x03400, 0x03FFF, "Hani" },
},
[0x04] = {
{ 0x04000, 0x04DB5, "Hani" },
{ 0x04E00, 0x04FFF, "Hani" },
},
[0x05] = {
{ 0x05000, 0x05FFF, "Hani" },
},
[0x06] = {
{ 0x06000, 0x06FFF, "Hani" },
},
[0x07] = {
{ 0x07000, 0x07FFF, "Hani" },
},
[0x08] = {
{ 0x08000, 0x08FFF, "Hani" },
},
[0x09] = {
{ 0x09000, 0x09FFF, "Hani" },
},
[0x0A] = {
{ 0x0A000, 0x0A4C6, "Yiii" },
{ 0x0A4D0, 0x0A4FF, "Lisu" },
{ 0x0A500, 0x0A62B, "Vaii" },
{ 0x0A640, 0x0A67F, "Cyrs" },
{ 0x0A680, 0x0A697, "Cyrl" },
{ 0x0A6A0, 0x0A6F7, "Bamu" },
{ 0x0A720, 0x0A7FF, "Latn" },
{ 0x0A800, 0x0A82B, "Sylo" },
{ 0x0A830, 0x0A832, "Deva", "Dogr", "Gujr", "Guru", "Khoj", "Knda", "Kthi", "Mahj", "Modi", "Nand", "Sind", "Takr", "Tirh"},
{ 0x0A833, 0x0A835, "Deva", "Dogr", "Gujr", "Guru", "Khoj", "Knda", "Kthi", "Mahj", "Mlym", "Modi", "Nand", "Sind", "Takr", "Tirh"},
{ 0x0A836, 0x0A839, "Deva", "Dogr", "Gujr", "Guru", "Khoj", "Kthi", "Mahj", "Modi", "Sind", "Takr", "Tirh"},
{ 0x0A840, 0x0A877, "Phag" },
{ 0x0A880, 0x0A8D9, "Saur" },
{ 0x0A8E0, 0x0A8FF, "Deva" },
{ 0x0A900, 0x0A92F, "Kali" },
{ 0x0A930, 0x0A95F, "Rjng" },
{ 0x0A980, 0x0A9DF, "Java" },
{ 0x0A9E0, 0x0A9FE, "Mymr" },
{ 0x0AA00, 0x0AA5F, "Cham" },
{ 0x0AA60, 0x0AA7F, "Mymr" },
{ 0x0AA80, 0x0AADF, "Tavt" },
{ 0x0AAE0, 0x0AAFF, "Mtei" },
{ 0x0AB01, 0x0AB2E, "Ethi" },
{ 0x0AB30, 0x0AB65, "Latn" },
{ 0x0AB70, 0x0ABBF, "Cher" },
{ 0x0ABC0, 0x0ABFF, "Mtei" },
{ 0x0AC00, 0x0AFFF, "Hang" },
},
[0x0B] = {
{ 0x0B000, 0x0BFFF, "Hang" },
},
[0x0C] = {
{ 0x0C000, 0x0CFFF, "Hang" },
},
[0x0D] = {
{ 0x0D000, 0x0D7A3, "Hang" },
},
[0x0F] = {
{ 0x0FA27, 0x0FA29, "Hani" },
{ 0x0FB13, 0x0FB17, "Armn" },
{ 0x0FB1D, 0x0FB4F, "Hebr" },
{ 0x0FB50, 0x0FDFD, "Arab" },
{ 0x0FE45, 0x0FE46, "Hani", "Bopo", "Hang", "Hira", "Kana" },
{ 0x0FE70, 0x0FEFC, "Arab" },
{ 0x0FF61, 0x0FF65, "Hani", "Bopo", "Hang", "Hira", "Kana", "Yiii" },
},
[0x10] = {
{ 0x10000, 0x100FA, "Linb" },
{ 0x10280, 0x1029C, "Lyci" },
{ 0x102A0, 0x102D0, "Cari" },
{ 0x102E1, 0x102FB, "Copt" },
{ 0x10300, 0x10323, "Ital" },
{ 0x10330, 0x1034A, "Goth" },
{ 0x10350, 0x1037A, "Perm" },
{ 0x10380, 0x1039F, "Ugar" },
{ 0x103A0, 0x103D5, "Xpeo" },
{ 0x10400, 0x1044F, "Dsrt" },
{ 0x10450, 0x1047F, "Shaw" },
{ 0x10480, 0x104A9, "Osma" },
{ 0x104B0, 0x104FB, "Osge" },
{ 0x10500, 0x10527, "Elba" },
{ 0x10530, 0x10563, "Aghb" },
{ 0x10600, 0x10767, "Lina" },
{ 0x10800, 0x1083F, "Cprt" },
{ 0x10840, 0x1085F, "Armi" },
{ 0x10860, 0x1087F, "Palm" },
{ 0x10880, 0x108AF, "Nbat" },
{ 0x108E0, 0x108FF, "Hatr" },
{ 0x10900, 0x1091F, "Phnx" },
{ 0x10920, 0x1093F, "Lydi" },
{ 0x10980, 0x1099F, "Mero" },
{ 0x109A0, 0x109BF, "Merc" },
{ 0x10A00, 0x10A58, "Khar" },
{ 0x10A60, 0x10A7F, "Sarb" },
{ 0x10A80, 0x10A9F, "Narb" },
{ 0x10AC0, 0x10AF6, "Mani" },
{ 0x10B00, 0x10B3F, "Avst" },
{ 0x10B40, 0x10B5F, "Prti" },
{ 0x10B60, 0x10B7F, "Phli" },
{ 0x10B80, 0x10BAF, "Phlp" },
{ 0x10C00, 0x10C48, "Orkh" },
{ 0x10C80, 0x10CB2, "Hung" },
{ 0x10D00, 0x10D39, "Rohg" },
{ 0x10E60, 0x10E7E, "Rumin" },
{ 0x10F00, 0x10F27, "Sogo" },
{ 0x10F30, 0x10F59, "Sogd" },
{ 0x10F70, 0x10FAF, "Ougr" },
{ 0x10FE0, 0x10FFF, "Elym" },
},
[0x11] = {
{ 0x11000, 0x1107F, "Brah" },
{ 0x11080, 0x110CD, "Kthi" },
{ 0x110D0, 0x110F9, "Sora" },
{ 0x11100, 0x11146, "Cakm" },
{ 0x11150, 0x11176, "Mahj" },
{ 0x11180, 0x111D9, "Shrd" },
{ 0x11200, 0x1123D, "Khoj" },
{ 0x11280, 0x112A9, "Mult" },
{ 0x112B0, 0x112F9, "Sind" },
{ 0x11301, 0x11374, "Gran" },
{ 0x11400, 0x1145E, "Newa" },
{ 0x11480, 0x114D9, "Tirh" },
{ 0x11580, 0x115DD, "Sidd" },
{ 0x11600, 0x11659, "Modi" },
{ 0x11680, 0x116C9, "Takr" },
{ 0x11700, 0x1173F, "Ahom" },
{ 0x11800, 0x1183B, "Dogr" },
{ 0x118A0, 0x118FF, "Wara" },
{ 0x119A0, 0x119FF, "Nand" },
{ 0x11A00, 0x11A47, "Zanb" },
{ 0x11A50, 0x11AA2, "Soyo" },
{ 0x11AC0, 0x11AF8, "Pauc" },
{ 0x11C00, 0x11C6C, "Bhks" },
{ 0x11C70, 0x11CB6, "Marc" },
{ 0x11D00, 0x11D59, "Gonm" },
{ 0x11D60, 0x11DA9, "Gong" },
{ 0x11EE0, 0x11EF8, "Maka" },
},
[0x12] = {
{ 0x12000, 0x1236E, "Xsux" },
{ 0x12400, 0x12473, "Xsux" },
{ 0x12F90, 0x12FFF, "Cpmn" },
},
[0x13] = {
{ 0x13000, 0x1342E, "Egyp" },
},
[0x14] = {
{ 0x14400, 0x14646, "Hluw" },
},
[0x16] = {
{ 0x16800, 0x16A38, "Bamu" },
{ 0x16A40, 0x16A6F, "Mroo" },
{ 0x16AD0, 0x16AF5, "Bass" },
{ 0x16B00, 0x16B8F, "Hmng" },
{ 0x16E40, 0x16E9A, "Medf" },
{ 0x16F00, 0x16F9F, "Plrd" },
},
[0x17] = {
{ 0x17000, 0x17FFF, "Tang" },
},
[0x18] = {
{ 0x18000, 0x18AF2, "Tang" },
},
[0x1B] = {
{ 0x1B001, 0x1B11E, "Hira" },
{ 0x1B170, 0x1B2FB, "Nshu" },
{ 0x1BC00, 0x1BC9F, "Dupl" },
},
[0x1C] = {
{ 0x1CF00, 0x1CFCF, "Zname" },
},
[0x1D] = {
{ 0x1D100, 0x1D1DD, "Music" },
{ 0x1D2E0, 0x1D2F3, "Maya" },
{ 0x1D400, 0x1D7FF, "Zmth" },
{ 0x1D800, 0x1DAAF, "Sgnw" },
},
[0x1E] = {
{ 0x1E000, 0x1E02A, "Glag" },
{ 0x1E800, 0x1E8D6, "Mend" },
{ 0x1E900, 0x1E95F, "Adlm" },
},
[0x1F] = {
{ 0x1F000, 0x1F0F5, "Zsym" },
{ 0x1F300, 0x1FA6D, "Zsym" },
},
[0x20] = {
{ 0x20000, 0x20FFF, "Hani" },
},
[0x21] = {
{ 0x21000, 0x21FFF, "Hani" },
},
[0x22] = {
{ 0x22000, 0x22FFF, "Hani" },
},
[0x23] = {
{ 0x23000, 0x23FFF, "Hani" },
},
[0x24] = {
{ 0x24000, 0x24FFF, "Hani" },
},
[0x25] = {
{ 0x25000, 0x25FFF, "Hani" },
},
[0x26] = {
{ 0x26000, 0x26FFF, "Hani" },
},
[0x27] = {
{ 0x27000, 0x27FFF, "Hani" },
},
[0x28] = {
{ 0x28000, 0x28FFF, "Hani" },
},
[0x29] = {
{ 0x29000, 0x29FFF, "Hani" },
},
[0x2A] = {
{ 0x2A000, 0x2AFFF, "Hani" },
},
[0x2B] = {
{ 0x2B000, 0x2BFFF, "Hani" },
},
[0x2C] = {
{ 0x2C000, 0x2CFFF, "Hani" },
},
[0x2D] = {
{ 0x2D000, 0x2DFFF, "Hani" },
},
[0x2E] = {
{ 0x2E000, 0x2EBE0, "Hani" },
},
[0x30] = {
{ 0x30000, 0x30FFF, "Hani" },
},
[0x31] = {
{ 0x31000, 0x31FFF, "Hani" },
},
[0x32] = {
{ 0x32000, 0x32FFF, "Hani" },
},
[0x33] = {
{ 0x33000, 0x33FFF, "Hani" },
},
}
for _, v in next, data do
v.length = #v
end
data.individual = {
[0x00462] = "Cyrl",
[0x00463] = "Cyrl",
[0x0060C] = "Arab, Nkoo, Rohg, Syrc, Thaa, Yezi",
[0x0061B] = "Arab, Nkoo, Rohg, Syrc, Thaa, Yezi",
[0x0061F] = "Arab, Adlm, Nkoo, Rohg, Syrc, Thaa, Yezi",
[0x00640] = "Arab, Adlm, Mand, Mani, Ougr, Phlp, Rohg, Sogd, Syrc",
[0x00951] = "Deva, Beng, Gran, Gujr, Guru, Knda, Latn, Mlym, Orya, Shrd, Taml, Telu, Tirh",
[0x00952] = "Deva, Beng, Gran, Gujr, Guru, Knda, Latn, Mlym, Orya, Taml, Telu, Tirh",
[0x00964] = "Deva, Beng, Dogr, Gong, Gonm, Gran, Gujr, Guru, Knda, Mahj, Mlym, Nand, Orya, Sind, Sinh, Sylo, Takr, Taml, Telu, Tirh",
[0x00965] = "Deva, Beng, Dogr, Gong, Gonm, Gran, Gujr, Guru, Knda, Limb, Mahj, Mlym, Nand, Orya, Sind, Sinh, Sylo, Takr, Taml, Telu, Tirh",
[0x0098F] = "Beng",
[0x00990] = "Beng",
[0x009A1] = "Beng",
[0x009A2] = "Beng",
[0x009AF] = "Beng",
[0x009B2] = "Beng",
[0x009BC] = "Beng",
[0x009C7] = "Beng",
[0x009C8] = "Beng",
[0x009D7] = "Beng",
[0x01CDA] = "Deva, Knda, Mlym, Orya, Taml, Telu",
[0x01CF2] = "Deva, Beng, Gran, Knda, Nand, Orya, Telu, Tirh",
[0x02135] = "Zmth",
[0x03000] = "Hani",
[0x03003] = "Hani, Bopo, Hang, Hira, Kana",
[0x03013] = "Hani, Bopo, Hang, Hira, Kana",
[0x03030] = "Hani, Bopo, Hang, Hira, Kana",
[0x03037] = "Hani, Bopo, Hang, Hira, Kana",
[0x030FB] = "Kana, Hani, Bopo, Hang, Hira, Yiii",
[0x032FF] = "Hani",
[0x0FA0E] = "Hani",
[0x0FA0F] = "Hani",
[0x0FA11] = "Hani",
[0x0FA13] = "Hani",
[0x0FA14] = "Hani",
[0x0FA1F] = "Hani",
[0x0FA21] = "Hani",
[0x0FA23] = "Hani",
[0x0FA24] = "Hani",
[0x1056F] = "Aghb",
[0x16FE0] = "Tang",
[0x16FE1] = "Nshu",
[0x1B000] = "Kana",
}
data.blocks = {
{ 0x04, 0x09, "Hani" },
{ 0x0B, 0x0D, "Hang" },
{ 0x17, 0x18, "Tang" },
{ 0x20, 0x2E, "Hani" },
}
return data
4m69qs8gnq8knzros5qbkff3yz21cb5
Modul:debug/track
828
27236
373471
228976
2026-09-10T14:10:59Z
SNN95
2113
kemaskini
373471
Scribunto
text/plain
-- TODO 1: normalize keys with leading spaces, which don't get removed when
-- "Penjejak/" is prefixed.
-- TODO 2: avoid weird inputs like "", which don't register as invalid since
-- "Penjejak/" is a valid page title.
-- TODO 3: use varargs instead of a table input, then recurse with track().
local title_make_title_module = "Module:title/makeTitle"
-- Transclusion-based tracking as subpages of [[Wiktionary:Tracking]].
-- Tracked pages can be found at [[Special:WhatLinksHere/Wikikamus:Penjejakan/KEY]].
local error = error
local find = string.find
local log = mw.log
local sub = string.sub
local type = type
local invalid_tracking_key_key = "debug/track/invalid key"
local function make_title(...)
make_title = require(title_make_title_module)
return make_title(...)
end
local memo
local function track(key)
if not memo then
memo = {}
-- Return if memoized.
elseif memo[key] then
return
end
-- Throw an error if `key` isn't a string.
local key_type = type(key)
if key_type ~= "string" then
error("Tracking keys supplied to [[Module:debug/track]] must be strings; received " .. key_type .. ".", 3)
end
-- make_title returns nil for invalid titles, but "#" is treated as a
-- fragment separator (e.g. "foo#bar" generates the title "foo"), so it
-- needs to be manually excluded.
local title = not find(key, "#", nil, true) and make_title(4, "Penjejak/" .. key)
if not title then
-- Track uses of invalid keys. Instead of recursing, simply memoize the
-- invalid key and replace it with the 'invalid tracking key' key.
-- [[Special:WhatLinksHere/Wikikamus:Penjejakan/debug/track/invalid key]]
log("Invalid tracking key: " .. key)
memo[key] = true
key = invalid_tracking_key_key
if memo[key] then
return
end
title = make_title(4, "Penjejak/" .. key)
end
-- Normalize the key by treating it as a subpage of "Tracking", which gives
-- the normalized title without the initial "Penjejak/". If the normalized
-- form has been memoized, don't transclude the page again. Otherwise,
-- transclude the page using the `content` key on the title, which is the
-- cheapest way to trigger transclusion, as it avoids any parser expansion
-- of the target page.
local normalized = sub(title.text, 10) -- excludes "Penjejak/"
if not memo[normalized] then
title = title.content
memo[normalized] = true
end
-- Memoize the original key.
memo[key] = true
end
return function(input)
if input == nil then
error("No tracking key supplied to [[Module:debug/track]].", 2)
elseif type(input) ~= "table" then
track(input)
return true
end
local key = input[1]
if key == nil then
error("No tracking keys in table supplied to [[Module:debug/track]].", 2)
end
local i = 1
repeat
track(key)
i = i + 1
key = input[i]
until key == nil
return true
end
nx0f67jyu2a1144syv0snk0vqhvdl9x
Modul:template parser
828
27394
373497
222970
2026-09-10T20:31:25Z
SNN95
2113
kemaskini
373497
Scribunto
text/plain
--[[
NOTE: This module works by using recursive backtracking to build a node tree, which can then be traversed as necessary.
Because it is called by a number of high-use modules, it has been optimised for speed using a profiler, since it is used to scrape data from large numbers of pages very quickly. To that end, it rolls some of its own methods in cases where this is faster than using a function from one of the standard libraries. Please DO NOT "simplify" the code by removing these, since you are almost guaranteed to slow things down, which could seriously impact performance on pages which call this module hundreds or thousands of times.
It has also been designed to emulate the native parser's behaviour as much as possible, which in some cases means replicating bugs or unintuitive behaviours in that code; these should not be "fixed", since it is important that the outputs are the same. Most of these originate from deficient regular expressions, which can't be used here, so the bugs have to be manually reintroduced as special cases (e.g. onlyinclude tags being case-sensitive and whitespace intolerant, unlike all other tags). If any of these are fixed, this module should also be updated accordingly.
]]
local export = {}
local data_module = "Module:template parser/data"
local load_module = "Module:load"
local magic_words_data_module = "Module:data/magic words"
local pages_module = "Module:pages"
local parser_extension_tags_data_module = "Module:data/parser extension tags"
local parser_module = "Module:parser"
local scribunto_module = "Module:Scribunto"
local string_pattern_escape_module = "Module:string/patternEscape"
local string_replacement_escape_module = "Module:string/replacementEscape"
local string_utilities_module = "Module:string utilities"
local table_length_module = "Module:table/length"
local table_shallow_copy_module = "Module:table/shallowCopy"
local table_sorted_pairs_module = "Module:table/sortedPairs"
local title_is_title_module = "Module:title/isTitle"
local title_make_title_module = "Module:title/makeTitle"
local title_new_title_module = "Module:title/newTitle"
local title_redirect_target_module = "Module:title/redirectTarget"
local require = require
local m_parser = require(parser_module)
local mw = mw
local mw_title = mw.title
local mw_uri = mw.uri
local string = string
local table = table
local anchor_encode = mw_uri.anchorEncode
local build_template -- defined as export.buildTemplate below
local class_else_type = m_parser.class_else_type
local concat = table.concat
local encode_uri = mw_uri.encode
local find = string.find
local format = string.format
local gsub = string.gsub
local html_create = mw.html.create
local insert = table.insert
local is_node = m_parser.is_node
local lower = string.lower
local match = string.match
local next = next
local pairs = pairs
local parse -- defined as export.parse below
local parse_template_name -- defined below
local pcall = pcall
local rep = string.rep
local select = select
local sub = string.sub
local title_equals = mw_title.equals
local tostring = m_parser.tostring
local type = type
local umatch = mw.ustring.match
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function decode_entities(...)
decode_entities = require(string_utilities_module).decode_entities
return decode_entities(...)
end
local function encode_entities(...)
encode_entities = require(string_utilities_module).encode_entities
return encode_entities(...)
end
local function get_link_target(...)
get_link_target = require(pages_module).get_link_target
return get_link_target(...)
end
local function is_title(...)
is_title = require(title_is_title_module)
return is_title(...)
end
local function load_data(...)
load_data = require(load_module).load_data
return load_data(...)
end
local function make_title(...)
make_title = require(title_make_title_module)
return make_title(...)
end
local function new_title(...)
new_title = require(title_new_title_module)
return new_title(...)
end
local function pattern_escape(...)
pattern_escape = require(string_pattern_escape_module)
return pattern_escape(...)
end
local function php_htmlspecialchars(...)
php_htmlspecialchars = require(scribunto_module).php_htmlspecialchars
return php_htmlspecialchars(...)
end
local function php_ltrim(...)
php_ltrim = require(scribunto_module).php_ltrim
return php_ltrim(...)
end
local function php_trim(...)
php_trim = require(scribunto_module).php_trim
return php_trim(...)
end
local function redirect_target(...)
redirect_target = require(title_redirect_target_module)
return redirect_target(...)
end
local function replacement_escape(...)
replacement_escape = require(string_replacement_escape_module)
return replacement_escape(...)
end
local function scribunto_parameter_key(...)
scribunto_parameter_key = require(scribunto_module).scribunto_parameter_key
return scribunto_parameter_key(...)
end
local function shallow_copy(...)
shallow_copy = require(table_shallow_copy_module)
return shallow_copy(...)
end
local function sorted_pairs(...)
sorted_pairs = require(table_sorted_pairs_module)
return sorted_pairs(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function table_len(...)
table_len = require(table_length_module)
return table_len(...)
end
local function uupper(...)
uupper = require(string_utilities_module).upper
return uupper(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local data
local function get_data()
data, get_data = load_data(data_module), nil
return data
end
local frame
local function get_frame()
frame, get_frame = mw.getCurrentFrame(), nil
return frame
end
local magic_words
local function get_magic_words()
magic_words, get_magic_words = load_data(magic_words_data_module), nil
return magic_words
end
local parser_extension_tags
local function get_parser_extension_tags()
parser_extension_tags, get_parser_extension_tags = load_data(parser_extension_tags_data_module), nil
return parser_extension_tags
end
------------------------------------------------------------------------------------
--
-- Nodes
--
------------------------------------------------------------------------------------
local Node = m_parser.node()
local new_node = Node.new
local function expand(obj, frame_args)
return is_node(obj) and obj:expand(frame_args) or obj
end
export.expand = expand
function Node:expand(frame_args)
local output = {}
for i = 1, #self do
output[i] = expand(self[i], frame_args)
end
return concat(output)
end
local Wikitext = Node:new_class("wikitext")
-- force_node ensures the output will always be a Wikitext node.
function Wikitext:new(this, force_node)
if type(this) ~= "table" then
return force_node and new_node(self, {this}) or this
elseif #this == 1 then
local this1 = this[1]
return force_node and class_else_type(this1) ~= "wikitext" and new_node(self, this) or this1
end
local success, str = pcall(concat, this)
if success then
return force_node and new_node(self, {str}) or str
end
return new_node(self, this)
end
-- First value is the parameter name.
-- Second value is the parameter's default value.
-- Any additional values are ignored: e.g. "{{{a|b|c}}}" is parameter "a" with default value "b" (*not* "b|c").
local Parameter = Node:new_class("parameter")
function Parameter:new(this)
local this2 = this[2]
if class_else_type(this2) == "argument" then
insert(this2, 2, "=")
this2 = Wikitext:new(this2)
end
if this[3] == nil then
this[2] = this2
else
this = {this[1], this2}
end
return new_node(self, this)
end
function Parameter:__tostring()
local output = {}
for i = 1, #self do
output[i] = tostring(self[i])
end
return "{{{" .. concat(output, "|") .. "}}}"
end
function Parameter:get_name(frame_args)
return scribunto_parameter_key(expand(self[1], frame_args))
end
function Parameter:get_default(frame_args)
local default = self[2]
if default ~= nil then
return expand(default, frame_args)
end
return "{{{" .. expand(self[1], frame_args) .. "}}}"
end
function Parameter:expand(frame_args)
if frame_args == nil then
return self:get_default()
end
local name = expand(self[1], frame_args)
local val = frame_args[scribunto_parameter_key(name)] -- Parameter in use.
if val ~= nil then
return val
end
val = self[2] -- Default.
if val ~= nil then
return expand(val, frame_args)
end
return "{{{" .. name .. "}}}"
end
local Argument = Node:new_class("argument")
function Argument:new(this)
local key = this._parse_data.key
this = Wikitext:new(this)
if key == nil then
return this
end
return new_node(self, {Wikitext:new(key), this})
end
function Argument:__tostring()
return tostring(self[1]) .. "=" .. tostring(self[2])
end
function Argument:expand(frame_args)
return expand(self[1], frame_args) .. "=" .. expand(self[2], frame_args)
end
local Template = Node:new_class("template")
function Template:__tostring()
local output = {}
for i = 1, #self do
output[i] = tostring(self[i])
end
return "{{" .. concat(output, "|") .. "}}"
end
-- Normalize the template name, check it's a valid template, then memoize results (using false for invalid titles).
-- Parser functions (e.g. {{#IF:a|b|c}}) need to have the first argument extracted from the title, as it comes after the colon. Because of this, the parser function and first argument are memoized as a table.
-- FIXME: Some parser functions have special argument handling (e.g. {{#SWITCH:}}).
do
local templates, parser_variables, parser_functions = {}, {}, {}
local function retrieve_magic_word_data(chunk)
local mgw_data = (magic_words or get_magic_words())[chunk]
if mgw_data then
return mgw_data
end
local normalized = uupper(chunk)
mgw_data = magic_words[normalized]
if mgw_data and not mgw_data.case_sensitive then
return mgw_data
end
end
-- Returns the name required to transclude the title object `title` using
-- template {{ }} syntax. If the `shortcut` flag is set, then any calls
-- which require a namespace prefix will use the abbreviated form where one
-- exists (e.g. "Template:PAGENAME" becomes "T:PAGENAME").
local function get_template_invocation_name(title, shortcut)
if not (is_title(title) and not title.isExternal) then
error("Template invocations require a valid page title, which cannot contain an interwiki prefix.")
end
local namespace = title.namespace
-- If not in the template namespace, include the prefix (or ":" if
-- mainspace).
if namespace ~= 10 then
return get_link_target(title, shortcut)
end
-- If in the template namespace and it shares a name with a magic word,
-- it needs the prefix "Template:".
local text, fragment = title.text, title.fragment
if fragment and fragment ~= "" then
text = text .. "#" .. fragment
end
local colon = find(text, ":", nil, true)
if not colon then
local mgw_data = retrieve_magic_word_data(text)
return mgw_data and mgw_data.parser_variable and get_link_target(title, shortcut) or text
end
local mgw_data = retrieve_magic_word_data(sub(text, 1, colon - 1))
if mgw_data and (mgw_data.parser_function or mgw_data.transclusion_modifier) then
return get_link_target(title, shortcut)
end
-- Also if "Template:" is necessary for disambiguation (e.g.
-- "Template:Category:Foo" can't be called with "Category:Foo").
local check = new_title(text, namespace)
return check and title_equals(title, check) and text or get_link_target(title, shortcut)
end
export.getTemplateInvocationName = get_template_invocation_name
function parse_template_name(name, has_args, fragment, force_transclusion)
local chunks, colon, start, n, p = {}, find(name, ":", nil, true), 1, 0, 0
while colon do
local mgw_data = retrieve_magic_word_data(php_ltrim(sub(name, start, colon - 1)))
if not mgw_data then
break
end
local priority = mgw_data.priority
if not (priority and priority > p) then
local pf = mgw_data.parser_function and mgw_data.name or nil
if pf then
n = n + 1
chunks[n] = pf .. ":"
return chunks, "parser function", sub(name, colon + 1)
end
break
end
n = n + 1
chunks[n] = mgw_data.name .. ":"
start, p = colon + 1, priority
colon = find(name, ":", start, true)
end
if start > 1 then
name = sub(name, start)
end
name = php_trim(name)
-- Parser variables can only take SUBST:/SAFESUBST: as modifiers.
if not has_args and p <= 1 then
local mgw_data = retrieve_magic_word_data(name)
local pv = mgw_data and mgw_data.parser_variable and mgw_data.name or nil
if pv then
n = n + 1
chunks[n] = pv
return chunks, "parser variable"
end
end
-- Get the template title with the custom new_title() function in
-- [[Module:title/newTitle]], with `allowOnlyFragment` set to false
-- (e.g. "{{#foo}}" is invalid) and `allowRelative` set to true, for
-- relative links for namespaces with subpages (e.g. "{{/foo}}").
local title = new_title(name, 10, false, true)
if not (title and not title.isExternal) then
return nil
end
if force_transclusion ~= "no_redirect" then
-- Resolve any redirects. If the redirect target is an interwiki link,
-- the template won't fail, but the redirect does not get resolved (i.e.
-- the redirect page itself gets transcluded, so the template name
-- should not be normalized to the target).
local redirect = redirect_target(title, force_transclusion)
if redirect and not redirect.isExternal then
title = redirect
end
end
-- If `fragment` is not true, unset it from the title object to prevent
-- it from being included by get_template_invocation_name.
if not fragment then
title.fragment = ""
end
chunks[n + 1] = get_template_invocation_name(title)
return chunks, "template"
end
-- Note: `force_transclusion` avoids incrementing the expensive parser function count by forcing transclusion
-- instead. This should only be used when there is a real risk that the expensive parser function limit of
-- 500 will be hit. If `force_transclusion` has the value "no_redirect", redirect checking is turned off
-- entirely. This should only be used in very limited circumstances when it is otherwise impossible to avoid
-- hitting the expensive parser limit and we are willing to handle the possible redirects ourselves.
local function process_name(self, frame_args, force_transclusion)
local name = expand(self[1], frame_args)
local has_args, norm = #self > 1
if not has_args then
norm = parser_variables[name]
if norm then
return norm, "parser variable"
end
end
norm = templates[name]
if norm then
local pf_arg1 = parser_functions[name]
return norm, pf_arg1 and "parser function" or "template", pf_arg1
elseif norm == false then
return nil
end
local chunks, subclass, pf_arg1 = parse_template_name(name, has_args, nil, force_transclusion)
-- Fail if invalid.
if not chunks then
templates[name] = false
return nil
end
local chunk1 = chunks[1]
-- Fail on SUBST:.
if chunk1 == "SUBST:" then
templates[name] = false
return nil
-- Any modifiers are ignored.
elseif subclass == "parser function" then
local pf = chunks[#chunks]
templates[name] = pf
parser_functions[name] = pf_arg1
return pf, "parser function", pf_arg1
end
-- Ignore SAFESUBST:, and treat MSGNW: as a parser function with the pagename as its first argument (ignoring any RAW: that comes after).
if chunks[chunk1 == "SAFESUBST:" and 2 or 1] == "MSGNW:" then
pf_arg1 = chunks[#chunks]
local pf = "MSGNW:"
templates[name] = pf
parser_functions[name] = pf_arg1
return pf, "parser function", pf_arg1
end
-- Ignore any remaining modifiers, as they've done their job.
local output = chunks[#chunks]
if subclass == "parser variable" then
parser_variables[name] = output
else
templates[name] = output
end
return output, subclass
end
function Template:get_name(frame_args, force_transclusion)
-- Only return the first return value.
return (process_name(self, frame_args, force_transclusion))
end
function Template:get_arguments(frame_args)
local name, subclass, pf_arg1 = process_name(self, frame_args)
if name == nil then
return nil
elseif subclass == "parser variable" then
return {}
end
local template_args = {}
if subclass == "parser function" then
template_args[1] = pf_arg1
for i = 2, #self do
template_args[i] = expand(self[i], frame_args) -- Not trimmed.
end
return template_args
end
local implicit = 0
for i = 2, #self do
local arg = self[i]
if class_else_type(arg) == "argument" then
template_args[scribunto_parameter_key(expand(arg[1], frame_args))] = php_trim((expand(arg[2], frame_args)))
else
implicit = implicit + 1
template_args[implicit] = expand(arg, frame_args) -- Not trimmed.
end
end
return template_args
end
-- BIG TODO: manual template expansion.
function Template:expand(frame_args)
local name, subclass, pf_arg1 = process_name(self, frame_args)
if name == nil then
local output = {}
for i = 1, #self do
output[i] = expand(self[i], frame_args)
end
return "{{" .. concat(output, "|") .. "}}"
elseif subclass == "parser variable" then
return (frame or get_frame()):preprocess("{{" .. name .. "}}")
elseif subclass == "parser function" then
local f = frame or get_frame()
if frame_args ~= nil then
local success, new_f = pcall(f.newChild, f, {args = frame_args})
if success then
f = new_f
end
end
return f:preprocess(tostring(self))
end
local output = {}
for i = 1, #self do
output[i] = expand(self[i], frame_args)
end
return (frame or get_frame()):preprocess("{{" .. concat(output, "|") .. "}}")
end
end
local Tag = Node:new_class("tag")
function Tag:__tostring()
local open_tag, attributes, n = {"<", self.name}, self:get_attributes(), 2
for attr, value in next, attributes do
n = n + 1
open_tag[n] = " " .. php_htmlspecialchars(attr) .. "=\"" .. php_htmlspecialchars(value, "compat") .. "\""
end
if self.self_closing then
return concat(open_tag) .. "/>"
end
return concat(open_tag) .. ">" .. concat(self) .. "</" .. self.name .. ">"
end
do
local valid_attribute_name
local function get_valid_attribute_name()
valid_attribute_name, get_valid_attribute_name = (data or get_data()).valid_attribute_name, nil
return valid_attribute_name
end
function Tag:get_attributes()
local raw = self.attributes
if not raw then
self.attributes = {}
return self.attributes
elseif type(raw) == "table" then
return raw
end
if sub(raw, -1) == "/" then
raw = sub(raw, 1, -2)
end
local attributes, head = {}, 1
-- Semi-manual implementation of the native regex.
while true do
local name, loc = match(raw, "([^\t\n\f\r />][^\t\n\f\r /=>]*)()", head)
if not name then
break
end
head = loc
local value
loc = match(raw, "^[\t\n\f\r ]*=[\t\n\f\r ]*()", head)
if loc then
head = loc
-- Either "", '' or the value ends on a space/at the end. Missing
-- end quotes are repaired by closing the value at the end.
value, loc = match(raw, "^\"([^\"]*)\"?()", head)
if not value then
value, loc = match(raw, "^'([^']*)'?()", head)
if not value then
value, loc = match(raw, "^([^\t\n\f\r ]*)()", head)
end
end
head = loc
end
-- valid_attribute_name is a pattern matching a valid attribute name.
-- Defined in the data due to its length - see there for more info.
if umatch(name, valid_attribute_name or get_valid_attribute_name()) then
-- Sanitizer applies PHP strtolower (ASCII-only).
attributes[lower(name)] = value and decode_entities(
php_trim((gsub(value, "[\t\n\r ]+", " ")))
) or ""
end
end
self.attributes = attributes
return attributes
end
end
function Tag:expand()
return (frame or get_frame()):preprocess(tostring(self))
end
local Heading = Node:new_class("heading")
function Heading:new(this)
if #this > 1 then
local success, str = pcall(concat, this)
if success then
return new_node(self, {
str,
level = this.level,
section = this.section,
index = this.index
})
end
end
return new_node(self, this)
end
do
local node_tostring = Node.__tostring
function Heading:__tostring()
local eq = rep("=", self.level)
return eq .. node_tostring(self) .. eq
end
end
do
local expand_node = Node.expand
-- Expanded heading names can contain "\n" (e.g. inside nowiki tags), which
-- causes any heading containing them to fail. However, in such cases, the
-- native parser still treats it as a heading for the purpose of section
-- numbers.
local function validate_name(self, frame_args)
local name = expand_node(self, frame_args)
if find(name, "\n", nil, true) then
return nil
end
return name
end
function Heading:get_name(frame_args)
local name = validate_name(self, frame_args)
return name ~= nil and php_trim(name) or nil
end
-- FIXME: account for anchor disambiguation.
function Heading:get_anchor(frame_args)
local name = validate_name(self, frame_args)
return name ~= nil and decode_entities(anchor_encode(name)) or nil
end
function Heading:expand(frame_args)
local eq = rep("=", self.level)
return eq .. expand_node(self, frame_args) .. eq
end
end
------------------------------------------------------------------------------------
--
-- Parser
--
------------------------------------------------------------------------------------
local Parser = m_parser.string_parser()
-- Template or parameter.
-- Parsed by matching the opening braces innermost-to-outermost (ignoring lone closing braces). Parameters {{{ }}} take priority over templates {{ }} where possible, but a double closing brace will always result in a closure, even if there are 3+ opening braces.
-- For example, "{{{{foo}}}}" (4) is parsed as a parameter enclosed by single braces, and "{{{{{foo}}}}}" (5) is a parameter inside a template. However, "{{{{{foo }} }}}" is a template inside a parameter, due to "}}" forcing the closure of the inner node.
do
-- Handlers.
local handle_name
local handle_argument
local handle_value
local function do_template_or_parameter(self, inner_node)
self:push_sublayer(handle_name)
self:set_pattern("[\n<[{|}]")
-- If a node has already been parsed, nest it at the start of the new
-- outer node (e.g. when parsing"{{{{foo}}bar}}", the template "{{foo}}"
-- is parsed first, since it's the innermost, and becomes the first
-- node of the outer template.
if inner_node then
self:emit(inner_node)
end
end
local function pipe(self)
self:emit(Wikitext:new(self:pop_sublayer()))
self:push_sublayer(handle_argument)
self:set_pattern("[\n<=[{|}]")
end
local function rbrace(self, this)
if self:read(1) == "}" then
self:emit(Wikitext:new(self:pop_sublayer()))
return self:pop()
end
self:emit(this)
end
function handle_name(self, ...)
handle_name = self:switch(handle_name, {
["\n"] = Parser.heading_block,
["<"] = Parser.tag,
["["] = Parser.wikilink_block,
["{"] = Parser.braces,
["|"] = pipe,
["}"] = rbrace,
[""] = Parser.fail_route,
[false] = Parser.emit
})
return handle_name(self, ...)
end
function handle_argument(self, ...)
handle_argument = self:switch(handle_argument, {
["\n"] = function(self, this)
return self:heading_block(this, "==")
end,
["<"] = Parser.tag,
["="] = function(self)
local key = self:pop_sublayer()
self:push_sublayer(handle_value)
self:set_pattern("[\n<[{|}]")
self.current_layer._parse_data.key = key
end,
["["] = Parser.wikilink_block,
["{"] = Parser.braces,
["|"] = pipe,
["}"] = rbrace,
[""] = Parser.fail_route,
[false] = Parser.emit
})
return handle_argument(self, ...)
end
function handle_value(self, ...)
handle_value = self:switch(handle_value, {
["\n"] = Parser.heading_block,
["<"] = Parser.tag,
["["] = Parser.wikilink_block,
["{"] = Parser.braces,
["|"] = function(self)
self:emit(Argument:new(self:pop_sublayer()))
self:push_sublayer(handle_argument)
self:set_pattern("[\n<=[{|}]")
end,
["}"] = function(self, this)
if self:read(1) == "}" then
self:emit(Argument:new(self:pop_sublayer()))
return self:pop()
end
self:emit(this)
end,
[""] = Parser.fail_route,
[false] = Parser.emit
})
return handle_value(self, ...)
end
function Parser:template_or_parameter()
local text, head, node_to_emit, failed = self.text, self.head
-- Comments/tags interrupt the brace count.
local braces = match(text, "^{+()", head) - head
self:advance(braces)
while true do
local success, node = self:try(do_template_or_parameter, node_to_emit)
-- Fail means no "}}" or "}}}" was found, so emit any remaining
-- unmatched opening braces before any templates/parameters that
-- were found.
if not success then
self:emit(rep("{", braces))
failed = true
break
-- If there are 3+ opening and closing braces, it's a parameter.
elseif braces >= 3 and self:read(2) == "}" then
self:advance(3)
braces = braces - 3
node = Parameter:new(node)
-- Otherwise, it's a template.
else
self:advance(2)
braces = braces - 2
node = Template:new(node)
end
local index = head + braces
node.index = index
node.raw = sub(text, index, self.head - 1)
node_to_emit = node
-- Terminate once not enough braces remain for further matches.
if braces == 0 then
break
-- Emit any stray opening brace before any matched nodes.
elseif braces == 1 then
self:emit("{")
break
end
end
if node_to_emit then
self:emit(node_to_emit)
end
return braces, failed
end
end
-- Tag.
do
local end_tags
local function get_end_tags()
end_tags, get_end_tags = (data or get_data()).end_tags, nil
return end_tags
end
-- Handlers.
local handle_start
local handle_tag
local function do_tag(self)
local layer = self.current_layer
layer._parse_data.handler, layer.index = handle_start, self.head
self:set_pattern("[%s/>]")
self:advance()
end
local function is_ignored_tag(self, this)
if self.transcluded then
return this == "includeonly"
end
return this == "noinclude" or this == "onlyinclude"
end
local function ignored_tag(self, text, head)
local loc = find(text, ">", head, true)
if not loc then
return self:fail_route()
end
self:jump(loc)
local tag = self:pop()
tag.ignored = true
return tag
end
function handle_start(self, this)
if this == "/" then
local text, head = self.text, self.head + 1
local this = match(text, "^[^%s/>]+", head)
if this and is_ignored_tag(self, lower(this)) then
head = head + #this
if not match(text, "^/[^>]", head) then
return ignored_tag(self, text, head)
end
end
return self:fail_route()
elseif this == "" then
return self:fail_route()
end
-- Tags are only case-insensitive with ASCII characters.
local raw_name = this
this = lower(this)
local end_tag_pattern = (end_tags or get_end_tags())[this]
if not end_tag_pattern then -- Validity check.
return self:fail_route()
end
local layer = self.current_layer
local pdata = layer._parse_data
local text, head = self.text, self.head + pdata.step
if match(text, "^/[^>]", head) then
return self:fail_route()
elseif is_ignored_tag(self, this) then
return ignored_tag(self, text, head)
-- If an onlyinclude tag is not ignored (and cannot be active since it
-- would have triggered special handling earlier), it must be plaintext.
elseif this == "onlyinclude" then
return self:fail_route()
elseif this == "noinclude" or this == "includeonly" then
layer.ignored = true -- Ignored block.
layer.raw_name = raw_name
end
layer.name, pdata.handler, pdata.end_tag_pattern = this, handle_tag, end_tag_pattern
self:set_pattern(">")
end
function handle_tag(self, this)
if this == "" then
return self:fail_route()
end
local layer = self.current_layer
if this ~= ">" then
layer.attributes = this
return
elseif self:read(-1) == "/" then
layer.self_closing = true
return self:pop()
end
local text, head = self.text, self.head + 1
local loc1, loc2 = find(text, layer._parse_data.end_tag_pattern, head)
if loc1 then
if loc1 > head then
self:emit(sub(text, head, loc1 - 1))
end
self:jump(loc2)
return self:pop()
-- noinclude and includeonly will tolerate having no closing tag, but
-- only if given in lowercase. This is due to a preprocessor bug, as
-- it uses a regex with the /i (case-insensitive) flag to check for
-- end tags, but a simple array lookup with lowercase tag names when
-- looking up which tags should tolerate no closing tag (exact match
-- only, so case-sensitive).
elseif layer.ignored then
local raw_name = layer.raw_name
if raw_name == "noinclude" or raw_name == "includeonly" then
self:jump(#text)
return self:pop()
end
end
return self:fail_route()
end
function Parser:tag()
-- HTML comment.
if self:read(1, 3) == "!--" then
local text = self.text
self:jump(select(2, find(text, "-->", self.head + 4, true)) or #text)
-- onlyinclude tags (which must be lowercase with no whitespace).
elseif self.onlyinclude and self:read(1, 13) == "/onlyinclude>" then
local text = self.text
self:jump(select(2, find(text, "<onlyinclude>", self.head + 14, true)) or #text)
else
local success, tag = self:try(do_tag)
if not success then
self:emit("<")
elseif not tag.ignored then
self:emit(Tag:new(tag))
end
end
end
end
-- Heading.
-- The preparser assigns each heading a number, which is used for things like section edit links. The preparser will only do this for heading blocks which aren't nested inside templates, parameters and parser tags. In some cases (e.g. when template blocks contain untrimmed newlines), a preparsed heading may not be treated as a heading in the final output. That does not affect the preparser, however, which will always count sections based on the preparser heading count, since it can't know what a template's final output will be.
do
-- Handlers.
local handle_start
local handle_body
local handle_possible_end
local function do_heading(self)
local layer, head = self.current_layer, self.head
layer._parse_data.handler, layer.index = handle_start, head
self:set_pattern("[\t\n ]")
-- Comments/tags interrupt the equals count.
local eq = match(self.text, "^=+()", head) - head
layer.level = eq
self:advance(eq)
end
local function do_heading_possible_end(self)
self.current_layer._parse_data.handler = handle_possible_end
self:set_pattern("[\n<]")
end
function handle_start(self, ...)
-- ===== is "=" as an L2; ======== is "==" as an L3 etc.
local function newline(self)
local layer = self.current_layer
local eq = layer.level
if eq <= 2 then
return self:fail_route()
end
-- Calculate which equals signs determine the heading level.
local level_eq = eq - (2 - eq % 2)
level_eq = level_eq > 12 and 12 or level_eq
-- Emit the excess.
self:emit(rep("=", eq - level_eq))
layer.level = level_eq / 2
return self:pop()
end
local function whitespace(self)
local success, possible_end = self:try(do_heading_possible_end)
if success then
self:emit(Wikitext:new(possible_end))
self.current_layer._parse_data.handler = handle_body
self:set_pattern("[\n<=[{]")
return self:consume()
end
return newline(self)
end
handle_start = self:switch(handle_start, {
["\t"] = whitespace,
["\n"] = newline,
[" "] = whitespace,
[""] = newline,
[false] = function(self)
-- Emit any excess = signs once we know it's a conventional heading. Up till now, we couldn't know if the heading is just a string of = signs (e.g. ========), so it wasn't guaranteed that the heading text starts after the 6th.
local layer = self.current_layer
local eq = layer.level
if eq > 6 then
self:emit(1, rep("=", eq - 6))
layer.level = 6
end
layer._parse_data.handler = handle_body
self:set_pattern("[\n<=[{]")
return self:consume()
end
})
return handle_start(self, ...)
end
function handle_body(self, ...)
handle_body = self:switch(handle_body, {
["\n"] = Parser.fail_route,
["<"] = Parser.tag,
["="] = function(self)
-- Comments/tags interrupt the equals count.
local eq = match(self.text, "^=+", self.head)
local eq_len = #eq
self:advance(eq_len)
local success, possible_end = self:try(do_heading_possible_end)
if success then
self:emit(eq)
self:emit(Wikitext:new(possible_end))
return self:consume()
end
local layer = self.current_layer
local level = layer.level
if eq_len > level then
self:emit(rep("=", eq_len - level))
elseif level > eq_len then
layer.level = eq_len
self:emit(1, rep("=", level - eq_len))
end
return self:pop()
end,
["["] = Parser.wikilink_block,
["{"] = function(self, this)
return self:braces(this, true)
end,
[""] = Parser.fail_route,
[false] = Parser.emit
})
return handle_body(self, ...)
end
function handle_possible_end(self, ...)
handle_possible_end = self:switch(handle_possible_end, {
["\n"] = Parser.fail_route,
["<"] = function(self)
if self:read(1, 3) ~= "!--" then
return self:pop()
end
local head = select(2, find(self.text, "-->", self.head + 4, true))
if not head then
return self:pop()
end
self:jump(head)
end,
[""] = Parser.fail_route,
[false] = function(self, this)
if not match(this, "^[\t ]+()$") then
return self:pop()
end
self:emit(this)
end
})
return handle_possible_end(self, ...)
end
function Parser:heading()
local success, heading = self:try(do_heading)
if success then
local section = self.section + 1
heading.section = section
self.section = section
self:emit(Heading:new(heading))
return self:consume()
else
self:emit("=")
end
end
end
------------------------------------------------------------------------------------
--
-- Block handlers
--
------------------------------------------------------------------------------------
-- Block handlers.
-- These are blocks which can affect template/parameter parsing, since they're also parsed by Parsoid at the same time (even though they aren't processed until later).
-- All blocks (including templates/parameters) can nest inside each other, but an inner block must be closed before the outer block which contains it. This is why, for example, the wikitext "{{template| [[ }}" will result in an unprocessed template, since the inner "[[" is treated as the opening of a wikilink block, which prevents "}}" from being treated as the closure of the template block. On the other hand, "{{template| [[ ]] }}" will process correctly, since the wikilink block is closed before the template closure. It makes no difference whether the block will be treated as valid or not when it's processed later on, so "{{template| [[ }} ]] }}" would also work, even though "[[ }} ]]" is not a valid wikilink.
-- Note that nesting also affects pipes and equals signs, in addition to block closures.
-- These blocks can be nested to any degree, so "{{template| [[ [[ [[ ]] }}" will not work, since only one of the three wikilink blocks has been closed. On the other hand, "{{template| [[ [[ [[ ]] ]] ]] }}" will work.
-- All blocks are implicitly closed by the end of the text, since their validity is irrelevant at this stage.
-- Language conversion block.
-- Opens with "-{" and closes with "}-". However, templates/parameters take priority, so "-{{" is parsed as "-" followed by the opening of a template/parameter block (depending on what comes after).
-- Note: Language conversion blocks aren't actually enabled on the English Wiktionary, but Parsoid still parses them at this stage, so they can affect the closure of outer blocks: e.g. "[[ -{ ]]" is not a valid wikilink block, since the "]]" falls inside the new language conversion block.
do
--Handler.
local handle_language_conversion_block
local function do_language_conversion_block(self)
self.current_layer._parse_data.handler = handle_language_conversion_block
self:set_pattern("[\n<[{}]")
end
function handle_language_conversion_block(self, ...)
handle_language_conversion_block = self:switch(handle_language_conversion_block, {
["\n"] = Parser.heading_block,
["<"] = Parser.tag,
["["] = Parser.wikilink_block,
["{"] = Parser.braces,
["}"] = function(self, this)
if self:read(1) == "-" then
self:emit("}-")
self:advance()
return self:pop()
end
self:emit(this)
end,
[""] = Parser.pop,
[false] = Parser.emit
})
return handle_language_conversion_block(self, ...)
end
function Parser:braces(this, fail_on_unclosed_braces)
local language_conversion_block = self:read(-1) == "-"
if self:read(1) == "{" then
local braces, failed = self:template_or_parameter()
-- Headings will fail if they contain an unclosed brace block.
if failed and fail_on_unclosed_braces then
return self:fail_route()
-- Language conversion blocks cannot begin "-{{", but can begin
-- "-{{{" iff parsed as "-{" + "{{".
elseif not (language_conversion_block and braces == 1) then
return self:consume()
end
else
self:emit(this)
if not language_conversion_block then
return
end
self:advance()
end
self:emit(Wikitext:new(self:get(do_language_conversion_block)))
end
end
--[==[
Headings
Opens with "\n=" (or "=" at the start of the text), and closes with "\n" or the end of the text. Note that it doesn't matter whether the heading will fail to process due to a premature newline (e.g. if there are no closing signs), so at this stage the only thing that matters for closure is the newline or end of text.
Note: Heading blocks are only parsed like this if they occur inside a template, since they do not iterate the preparser's heading count (i.e. they aren't proper headings).
Note 2: if directly inside a template argument with no previous equals signs, a newline followed by a single equals sign is parsed as an argument equals sign, not the opening of a new L1 heading block. This does not apply to any other heading levels. As such, {{template|key\n=}}, {{template|key\n=value}} or even {{template|\n=}} will successfully close, but {{template|key\n==}}, {{template|key=value\n=more value}}, {{template\n=}} etc. will not, since in the latter cases the "}}" would fall inside the new heading block.
]==]
do
--Handler.
local handle_heading_block
local function do_heading_block(self)
self.current_layer._parse_data.handler = handle_heading_block
self:set_pattern("[\n<[{]")
end
function handle_heading_block(self, ...)
handle_heading_block = self:switch(handle_heading_block, {
["\n"] = function(self)
self:newline()
return self:pop()
end,
["<"] = Parser.tag,
["["] = Parser.wikilink_block,
["{"] = Parser.braces,
[""] = Parser.pop,
[false] = Parser.emit
})
return handle_heading_block(self, ...)
end
function Parser:heading_block(this, nxt)
self:newline()
this = this .. (nxt or "=")
local loc = #this - 1
while self:read(0, loc) == this do
self:advance()
self:emit(Wikitext:new(self:get(do_heading_block)))
end
end
end
-- Wikilink block.
-- Opens with "[[" and closes with "]]".
do
-- Handler.
local handle_wikilink_block
local function do_wikilink_block(self)
self.current_layer._parse_data.handler = handle_wikilink_block
self:set_pattern("[\n<[%]{]")
end
function handle_wikilink_block(self, ...)
handle_wikilink_block = self:switch(handle_wikilink_block, {
["\n"] = Parser.heading_block,
["<"] = Parser.tag,
["["] = Parser.wikilink_block,
["]"] = function(self, this)
if self:read(1) == "]" then
self:emit("]]")
self:advance()
return self:pop()
end
self:emit(this)
end,
["{"] = Parser.braces,
[""] = Parser.pop,
[false] = Parser.emit
})
return handle_wikilink_block(self, ...)
end
function Parser:wikilink_block()
if self:read(1) == "[" then
self:emit("[[")
self:advance(2)
self:emit(Wikitext:new(self:get(do_wikilink_block)))
else
self:emit("[")
end
end
end
-- Lines which only contain comments, " " and "\t" are eaten, so long as
-- they're bookended by "\n" (i.e. not the first or last line).
function Parser:newline()
local text, head = self.text, self.head
while true do
repeat
local loc = match(text, "^[\t ]*<!%-%-()", head + 1)
if not loc then
break
end
loc = select(2, find(text, "-->", loc, true))
head = loc or head
until not loc
-- Fail if no comments found.
if head == self.head then
break
end
head = match(text, "^[\t ]*()\n", head + 1)
if not head then
break
end
self:jump(head)
end
self:emit("\n")
end
do
-- Handlers.
local handle_start
local main_handler
-- If `transcluded` is true, then the text is checked for a pair of
-- onlyinclude tags. If these are found (even if they're in the wrong
-- order), then the start of the page is treated as though it is preceded
-- by a closing onlyinclude tag.
-- Note 1: unlike other parser extension tags, onlyinclude tags are case-
-- sensitive and cannot contain whitespace.
-- Note 2: onlyinclude tags *can* be implicitly closed by the end of the
-- text, but the hard requirement above means this can only happen if
-- either the tags are in the wrong order or there are multiple onlyinclude
-- blocks.
local function do_parse(self, transcluded)
self.current_layer._parse_data.handler = handle_start
self:set_pattern(".")
self.section = 0
if not transcluded then
return
end
self.transcluded = true
local text = self.text
if find(text, "</onlyinclude>", nil, true) then
local head = find(text, "<onlyinclude>", nil, true)
if head then
self.onlyinclude = true
self:jump(head + 13)
end
end
end
-- If the first character is "=", try parsing it as a heading.
function handle_start(self, this)
self.current_layer._parse_data.handler = main_handler
self:set_pattern("[\n<{]")
if this == "=" then
return self:heading()
end
return self:consume()
end
function main_handler(self, ...)
main_handler = self:switch(main_handler, {
["\n"] = function(self)
self:newline()
if self:read(1) == "=" then
self:advance()
return self:heading()
end
end,
["<"] = Parser.tag,
["{"] = function(self, this)
if self:read(1) == "{" then
self:template_or_parameter()
return self:consume()
end
self:emit(this)
end,
[""] = Parser.pop,
[false] = Parser.emit
})
return main_handler(self, ...)
end
function export.parse(text, transcluded)
local text_type = type(text)
return (select(2, Parser:parse{
text = text_type == "string" and text or
text_type == "number" and tostring(text) or
error("bad argument #1 (string expected, got " .. text_type .. ")"),
node = {Wikitext, true},
route = {do_parse, transcluded}
}))
end
parse = export.parse
end
function export.find_templates(text, not_transcluded)
return parse(text, not not_transcluded):iterate_nodes("template")
end
do
local link_parameter_1, link_parameter_2
local function get_link_parameter_1()
link_parameter_1, get_link_parameter_1 = (data or get_data()).template_link_param_1, nil
return link_parameter_1
end
local function get_link_parameter_2()
link_parameter_2, get_link_parameter_2 = (data or get_data()).template_link_param_2, nil
return link_parameter_2
end
-- Generate a link. If the target title doesn't have a fragment, use "#top"
-- (which is an implicit anchor at the top of every page), as this ensures
-- self-links still display as links, since bold display is distracting and
-- unintuitive for template links.
local function link_page(title, display)
local fragment = title.fragment
if fragment == "" then
fragment = "top"
end
return format(
"[[:%s|%s]]",
encode_uri(title.prefixedText .. "#" .. fragment, "WIKI"),
display
)
end
-- pf_arg1 or pf_arg2 may need to be linked if a given parser function
-- treats them as a pagename. If a key exists in `namespace`, the value is
-- the namespace for the page: if not 0, then the namespace prefix will
-- always be added to the input (e.g. {{#invoke:}} can only target the
-- Module: namespace, so inputting "Template:foo" gives
-- "Module:Template:foo", and "Module:foo" gives "Module:Module:foo").
-- However, this isn't possible with mainspace (namespace 0), so prefixes
-- are respected. make_title() handles all of this automatically.
local function finalize_arg(pagename, namespace)
if namespace == nil then
return pagename
end
local title = make_title(namespace, pagename)
return title and not title.isExternal and link_page(title, pagename) or pagename
end
local function render_title(name, args)
-- parse_template_name returns a table of transclusion modifiers plus
-- the normalized template/magic word name, which will be used as link
-- targets. The third return value pf_arg1 is the first argument of a
-- a parser function, which comes after the colon (e.g. "foo" in
-- "{{#IF:foo|bar|baz}}"). This means args[1] (i.e. the first argument
-- that comes after a pipe is actually argument 2, and so on. Note: the
-- second parameter of parse_template_name checks if there are any
-- arguments, since parser variables cannot take arguments (e.g.
-- {{CURRENTYEAR}} is a parser variable, but {{CURRENTYEAR|foo}}
-- transcludes "Template:CURRENTYEAR"). In such cases, the returned
-- table explicitly includes the "Template:" prefix in the template
-- name. The third parameter instructs it to retain any fragment in the
-- template name in the returned table, if present.
local chunks, subclass, pf_arg1 = parse_template_name(
name,
args and pairs(args)(args) ~= nil,
true
)
if chunks == nil then
return name, args
end
local chunks_len = #chunks
-- Additionally, generate the corresponding table `rawchunks`, which
-- is a list of colon-separated chunks in the raw input. This is used
-- to retrieve the display forms for each chunk.
local rawchunks = split(name, ":")
for i = 1, chunks_len - 1 do
chunks[i] = format(
"[[%s|%s]]",
encode_uri((magic_words or get_magic_words())[sub(chunks[i], 1, -2)].transclusion_modifier, "WIKI"),
rawchunks[i]
)
end
local chunk = chunks[chunks_len]
-- If it's a template, return a link to it with link_page, concatenating
-- the remaining chunks in `rawchunks` to form the display text.
-- Use new_title with the default namespace 10 (Template:) to generate
-- a target title, which is the same setting used for retrieving
-- templates (including those in other namespaces, as prefixes override
-- the default).
if subclass == "template" then
chunks[chunks_len] = link_page(
new_title(chunk, 10),
concat(rawchunks, ":", chunks_len) -- :
)
return concat(chunks, ":"), args -- :
elseif subclass == "parser variable" then
chunks[chunks_len] = format(
"[[%s|%s]]",
encode_uri((magic_words or get_magic_words())[chunk].parser_variable, "WIKI"),
rawchunks[chunks_len]
)
return concat(chunks, ":"), args -- :
end
-- Otherwise, it must be a parser function.
local mgw_data = (magic_words or get_magic_words())[sub(chunk, 1, -2)]
local link = mgw_data.parser_function or mgw_data.transclusion_modifier
local pf_arg2 = args and args[1] or nil
-- Some magic words have different links, depending on whether argument
-- 2 is specified (e.g. "baz" in {{foo:bar|baz}}).
if type(link) == "table" then
link = pf_arg2 and link[2] or link[1]
end
chunks[chunks_len] = format(
"[[%s|%s]]",
encode_uri(link, "WIKI"),
rawchunks[chunks_len]
)
-- #TAG: has special handling, because documentation links for parser
-- extension tags come from [[Module:data/parser extension tags]].
if chunk == "#TAG:" then
-- Tags are only case-insensitive with ASCII characters.
local tag = (parser_extension_tags or get_parser_extension_tags())[lower(php_trim(pf_arg1))]
if tag then
pf_arg1 = format(
"[[%s|%s]]",
encode_uri(tag, "WIKI"),
pf_arg1
)
end
-- Otherwise, finalize pf_arg1 and add it to `chunks`.
else
pf_arg1 = finalize_arg(pf_arg1, (link_parameter_1 or get_link_parameter_1())[chunk])
end
chunks[chunks_len + 1] = pf_arg1
-- Finalize pf_arg2 (if applicable), then return.
if pf_arg2 then
args = shallow_copy(args) -- Avoid destructively modifying args.
args[1] = finalize_arg(pf_arg2, (link_parameter_2 or get_link_parameter_2())[chunk])
end
return concat(chunks, ":"), args -- :
end
function export.buildTemplate(title, args)
local output = {title}
if not args then
return output
end
-- Iterate over all numbered parameters in order, followed by any
-- remaining parameters in codepoint order. Implicit parameters are
-- used wherever possible, even if explicit numbers are interpolated
-- between them (e.g. 0 would go before any implicit parameters, and
-- 2.5 between 2 and 3).
-- TODO: handle "=" and "|" in params/values.
local implicit
for k, v in sorted_pairs(args) do
if type(k) == "number" and k >= 1 and k % 1 == 0 then
if implicit == nil then
implicit = table_len(args)
end
insert(output, k <= implicit and v or k .. "=" .. v)
else
insert(output, k .. "=" .. v)
end
end
return output
end
build_template = export.buildTemplate
function export.templateLink(title, args, no_link)
if not no_link then
title, args = render_title(title, args)
end
local output = build_template(title, args)
for i = 1, #output do
output[i] = encode_entities(output[i], "={}", true, true)
end
return tostring(html_create("code")
:css("white-space", "pre-wrap")
:wikitext("{{" .. concat(output, "|") .. "}}") -- {{ | }}
)
end
end
do
function export.find_parameters(text, not_transcluded)
return parse(text, not not_transcluded):iterate_nodes("parameter")
end
function export.displayParameter(name, default)
return tostring(html_create("code")
:css("white-space", "pre-wrap")
:wikitext("{{{" .. concat({name, default}, "|") .. "}}}") -- {{{ | }}}
)
end
end
do
local function check_level(level)
if type(level) ~= "number" then
error("Heading levels must be numbers.")
elseif level < 1 or level > 6 or level % 1 ~= 0 then
error("Heading levels must be integers between 1 and 6.")
end
return level
end
-- FIXME: should headings which contain "\n" be returned? This may depend
-- on variable factors, like template expansion. They iterate the heading
-- count number, but fail on rendering. However, in some cases a different
-- heading might still be rendered due to intermediate equals signs; it
-- may even be of a different heading level: e.g., this is parsed as an
-- L2 heading with a newline (due to the wikilink block), but renders as the
-- L1 heading "=foo[[". Section edit links are sometimes (but not always)
-- present in such cases.
-- ==[[=
-- ]]==
-- TODO: section numbers for edit links seem to also include headings
-- nested inside templates and parameters (but apparently not those in
-- parser extension tags - need to test this more). If we ever want to add
-- section edit links manually, this will need to be accounted for.
function export.find_headings(text, i, j)
local parsed = parse(text)
if i == nil and j == nil then
return parse(text):iterate_nodes("heading")
end
i = i and check_level(i) or 1
j = j and check_level(j) or 6
return parsed:iterate(function(v)
if class_else_type(v) == "heading" then
local level = v.level
return level >= i and level <= j
end
end)
end
end
do
local function make_tag(tag)
return tostring(html_create("code")
:css("white-space", "pre-wrap")
:wikitext("<" .. tag .. ">")
)
end
-- Note: invalid tags are returned without links.
function export.wikitagLink(tag)
-- ">" can't appear in tags (including attributes) since the parser
-- unconditionally treats ">" as the end of a tag.
if find(tag, ">", nil, true) then
return make_tag(tag)
end
-- Tags must start "<tagname..." or "</tagname...", with no whitespace
-- after "<" or "</".
local slash, tagname, remainder = match(tag, "^(/?)([^/%s]+)(.*)$")
if not tagname then
return make_tag(tag)
end
-- Tags are only case-insensitive with ASCII characters.
local link = lower(tagname)
if (
-- onlyinclude tags must be lowercase and are whitespace intolerant.
link == "onlyinclude" and (link ~= tagname or remainder ~= "") or
-- Closing wikitags (except onlyinclude) can only have whitespace
-- after the tag name.
slash == "/" and not match(remainder, "^%s*()$") or
-- Tagnames cannot be followed immediately by "/", unless it comes
-- at the end (e.g. "<nowiki/>", but not "<nowiki/ >").
remainder ~= "/" and sub(remainder, 1, 1) == "/"
) then
-- Output with no link.
return make_tag(tag)
end
-- Partial transclusion tags aren't in the table of parser extension
-- tags.
if link == "noinclude" or link == "includeonly" or link == "onlyinclude" then
link = "mw:Transclusion#Partial transclusion"
else
link = (parser_extension_tags or get_parser_extension_tags())[link]
end
if link then
tag = gsub(tag, pattern_escape(tagname), "[[" .. replacement_escape(encode_uri(link, "WIKI")) .. "|%0]]", 1)
end
return make_tag(tag)
end
end
-- For convenience.
export.class_else_type = class_else_type
return export
g7883esvq9rqr796jeq8jsmk6y4r8t1
Modul:parse utilities
828
27407
373503
223185
2026-09-10T20:44:46Z
SNN95
2113
kemaskini
373503
Scribunto
text/plain
local export = {}
local fun_is_callable_module = "Module:fun/isCallable"
local languages_module = "Module:languages"
local parameters_module = "Module:parameters"
local string_char_module = "Module:string/char"
local string_utilities_module = "Module:string utilities"
local table_insert_if_not_module = "Module:table/insertIfNot"
local assert = assert
local concat = table.concat
local dump = mw.dumpObject
local error = error
local insert = table.insert
local ipairs = ipairs
local list_to_text = mw.text.listToText
local pairs = pairs
local require = require
local sort = table.sort
local type = type
local ugsub = mw.ustring.gsub
local function convert_val(...)
convert_val = require(parameters_module).convert_val
return convert_val(...)
end
local function get_lang(...)
get_lang = require(languages_module).getByCode
return get_lang(...)
end
local function insert_if_not(...)
insert_if_not = require(table_insert_if_not_module)
return insert_if_not(...)
end
local function is_callable(...)
is_callable = require(fun_is_callable_module)
return is_callable(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function u(...)
u = require(string_char_module)
return u(...)
end
local function umatch(...)
umatch = require(string_utilities_module).match
return umatch(...)
end
--[==[ intro:
In order to understand the following parsing code, you need to understand how inflected text specs work. They are
intended to work with inflected text where individual words to be inflected may be followed by inflection specs in
angle brackets. The format of the text inside of the angle brackets is up to the individual language and part-of-speech
specific implementation. A real-world example is as follows: `<nowiki>[[медичний|меди́чна]]<+> [[сестра́]]<*,*#.pr></nowiki>`.
This is the inflection of the Ukrainian multiword expression {{m|uk|меди́чна сестра́||nurse|lit=medical sister}},
consisting of two words: the adjective {{m|uk|меди́чна||medical|pos=feminine singular}} and the noun {{m|uk|сестра́||sister}}.
The specs in angle brackets follow each word to be inflected; for example, `<+>` means that the preceding word should be
declined as an adjective.
The code below works in terms of balanced expressions, which are bounded by delimiters such as `< >` or `[ ]`. The
intention is to allow separators such as spaces to be embedded inside of delimiters; such embedded separators will not
be parsed as separators. For example, Ukrainian noun specs allow footnotes in brackets to be inserted inside of angle
brackets; something like `меди́чна<+> сестра́<pr.[this is a footnote]>` is legal, as is
`<nowiki>[[медичний|меди́чна]]<+> [[сестра́]]<pr.[this is an <i>italicized footnote</i>]></nowiki>`, and the parsing code
should not be confused by the embedded brackets, spaces or angle brackets.
The parsing is done by two functions, which work in close concert: {parse_balanced_segment_run()} and
{split_alternating_runs()}. To illustrate, consider the following:
{parse_balanced_segment_run("foo<M.proper noun> bar<F>", "<", ">")} =<br />
{ {"foo", "<M.proper noun>", " bar", "<F>", ""}}
then
{split_alternating_runs({"foo", "<M.proper noun>", " bar", "<F>", ""}, " ")} =<br />
{ {{"foo", "<M.proper noun>", ""}, {"bar", "<F>", ""}}}
Here, we start out with a typical inflected text spec `foo<M.proper noun> bar<F>`, call {parse_balanced_segment_run()} on
it, and call {split_alternating_runs()} on the result. The output of {parse_balanced_segment_run()} is a list where
even-numbered segments are bounded by the bracket-like characters passed into the function, and odd-numbered segments
consist of the surrounding text. {split_alternating_runs()} is called on this, and splits '''only''' the odd-numbered
segments, grouping all segments between the specified character. Note that the inner lists output by
{split_alternating_runs()} are themselves in the same format as the output of {parse_balanced_segment_run()}, with
bracket-bounded text in the even-numbered segments. Hence, such lists can be passed again to {split_alternating_runs()}.
]==]
--[==[
Parse a string containing matched instances of parens, brackets or the like. Return a list of strings, alternating
between textual runs not containing the open/close characters and runs beginning and ending with the open/close
characters. For example,
{parse_balanced_segment_run("foo(x(1)), bar(2)", "(", ")") = {"foo", "(x(1))", ", bar", "(2)", ""}}
]==]
function export.parse_balanced_segment_run(segment_run, open, close)
return split(segment_run, "(%b" .. open .. close .. ")")
end
-- The following is an equivalent, older implementation that does not use %b (written before I was aware of %b).
--[=[
function export.parse_balanced_segment_run(segment_run, open, close)
local break_on_open_close = split(segment_run, "([%" .. open .. "%" .. close .. "])")
local text_and_specs = {}
local level = 0
local seg_group = {}
for i, seg in ipairs(break_on_open_close) do
if i % 2 == 0 then
if seg == open then
insert(seg_group, seg)
level = level + 1
else
assert(seg == close)
insert(seg_group, seg)
level = level - 1
if level < 0 then
error("Unmatched " .. close .. " sign: '" .. segment_run .. "'")
elseif level == 0 then
insert(text_and_specs, concat(seg_group))
seg_group = {}
end
end
elseif level > 0 then
insert(seg_group, seg)
else
insert(text_and_specs, seg)
end
end
if level > 0 then
error("Unmatched " .. open .. " sign: '" .. segment_run .. "'")
end
return text_and_specs
end
]=]
--[==[
Like parse_balanced_segment_run() but accepts multiple sets of delimiters. For example,
{parse_multi_delimiter_balanced_segment_run("foo[bar(baz[bat])], quux<glorp>", {{"[", "]"}, {"(", ")"}, {"<", ">"}}) =
{"foo", "[bar(baz[bat])]", ", quux", "<glorp>", ""}}.
Each element in the list of delimiter pairs is a string specifying an equivalence class of possible delimiter
characters. You can use this, for example, to allow either "[" or "&#91;" to be treated equivalently, with either
one closed by either "]" or "&#93;". To do this, first replace "&#91;" and "&#93;" with single Unicode
characters such as U+FFF0 and U+FFF1, and then specify a two-character string containing "[" and U+FFF0 as the opening
delimiter, and a two-character string containing "]" and U+FFF1 as the corresponding closing delimiter.
If `no_error_on_unmatched` is given and an error is found during parsing, a string is returned containing the error
message instead of throwing an error.
]==]
function export.parse_multi_delimiter_balanced_segment_run(segment_run, delimiter_pairs, no_error_on_unmatched)
local escaped_delimiter_pairs = {}
local open_to_close_map = {}
local open_close_items = {}
local open_items = {}
for _, open_close in ipairs(delimiter_pairs) do
local open, close = open_close[1], open_close[2]
open = open:gsub("([%[%]%%%%-])", "%%%1")
close = close:gsub("([%[%]%%%%-])", "%%%1")
insert(open_close_items, open)
insert(open_close_items, close)
insert(open_items, open)
open = "[" .. open .. "]"
close = "[" .. close .. "]"
open_to_close_map[open] = close
insert(escaped_delimiter_pairs, {open, close})
end
local open_close_pattern = "([" .. concat(open_close_items) .. "])"
local open_pattern = "([" .. concat(open_items) .. "])"
local break_on_open_close = split(segment_run, open_close_pattern)
local text_and_specs = {}
local level = 0
local seg_group = {}
local open_at_level_zero
for i, seg in ipairs(break_on_open_close) do
if i % 2 == 0 then
insert(seg_group, seg)
if level == 0 then
if not umatch(seg, open_pattern) then
local errmsg = "Unmatched close sign " .. seg .. ": '" .. segment_run .. "'"
if no_error_on_unmatched then
return errmsg
else
error(errmsg)
end
end
assert(open_at_level_zero == nil)
for _, open_close in ipairs(escaped_delimiter_pairs) do
local open = open_close[1]
if umatch(seg, open) then
open_at_level_zero = open
break
end
end
if open_at_level_zero == nil then
error(("Internal error: Segment %s didn't match any open regex"):format(seg))
end
level = level + 1
elseif umatch(seg, open_at_level_zero) then
level = level + 1
elseif umatch(seg, open_to_close_map[open_at_level_zero]) then
level = level - 1
assert(level >= 0)
if level == 0 then
insert(text_and_specs, concat(seg_group))
seg_group = {}
open_at_level_zero = nil
end
end
elseif level > 0 then
insert(seg_group, seg)
else
insert(text_and_specs, seg)
end
end
if level > 0 then
local errmsg = "Unmatched open sign " .. open_at_level_zero .. ": '" .. segment_run .. "'"
if no_error_on_unmatched then
return errmsg
else
error(errmsg)
end
end
return text_and_specs
end
--[==[
Check whether a term contains top-level HTML. We want to distinguish inline modifiers from HTML. We assume an inline
modifier is either a boolean modifier like `<bor>` or a prefix modifier like `<tr:Miryem>`. All other things inside of
angle brackets, e.g. `<nowiki><span class="foo"></nowiki>`, `<nowiki></span></nowiki>`, `<nowiki><br/></nowiki>`, etc.,
should be flagged as HTML (typically caused by wrapping an argument in {{tl|m|...}}, {{tl|af|...}} or similar, but
sometimes specified directly, e.g. `<nowiki><sup>6</sup></nowiki>`). By default, we assume the tag in an inline modifier
contains either letters, numbers, hyphens or underscore (but not spaces), and must either stand alone or be followed by
a colon, leading to a default HTML-checking pattern of {"<[%w_%-]*[^%w_%-:>]"}. But this can be modified; e.g.
[[Module:tl-pronunciation]] allows modifiers of the form `<<var>pos</var>^<var>defn</var>>` or
`<<var>pos</var>,<var>pos</var>,<var>pos</var>^<var>defn</var>>`, and would need to use its own HTML pattern. It's
important we restrict the check for HTML to top-level to allow for generated HTML inside of e.g. qualifier tags, such as
`<nowiki>foo<q:similar to {{m|fr|bar}}></nowiki>`.
]==]
function export.term_contains_top_level_html(term, html_pattern)
html_pattern = html_pattern or "<[%w_%-]*[^%w_%-:>]"
-- If no HTML anywhere, the answer is no.
if not term:find(html_pattern) then
return false
end
-- Otherwise, we have to call parse_balanced_segment_run() and check alternate runs at top level.
local runs = export.parse_balanced_segment_run(term, "<", ">")
for i = 2, #runs, 2 do
if runs[i]:find("^" .. html_pattern) then
return true
end
end
return false
end
--[==[
Check whether a term appears to have already been passed through `full_link()`. Passing it again will mangle it in
various ways; at best it will have unnecessary lang/script wrapping, which might do nothing but might result in
overly large fonts or other issues. We also check for uses of {{tl|ja-r/args}}, {{tl|ryu-r/args}} or {{tl|ko-l/args}},
which will be manged by `full_link()`. If this check succeeds, use the text raw instead of passing through
`full_link()`.
]==]
function export.term_already_linked(term)
return term:find("<span") or term:find("{{ja%-r|") or term:find("{{ryu%-r|") or term:find("{{ko%-l|")
end
--[==[
Split a list of alternating textual runs of the format returned by `parse_balanced_segment_run` on `splitchar`. This
only splits the odd-numbered textual runs (the portions between the balanced open/close characters). The return value
is a list of lists, where each list contains an odd number of elements, where the even-numbered elements of the sublists
are the original balanced textual run portions. For example, if we do
{parse_balanced_segment_run("foo<M.proper noun> bar<F>", "<", ">") =
{"foo", "<M.proper noun>", " bar", "<F>", ""}}
then
{split_alternating_runs({"foo", "<M.proper noun>", " bar", "<F>", ""}, " ") =
{{"foo", "<M.proper noun>", ""}, {"bar", "<F>", ""}}}
Note that we did not touch the text "<M.proper noun>" even though it contains a space in it, because it is an
even-numbered element of the input list. This is intentional and allows for embedded separators inside of
brackets/parens/etc. Note also that the inner lists in the return value are of the same form as the input list (i.e.
they consist of alternating textual runs where the even-numbered segments are balanced runs), and can in turn be passed
to split_alternating_runs().
If `preserve_splitchar` is passed in, the split character is included in the output, as follows:
{split_alternating_runs({"foo", "<M.proper noun>", " bar", "<F>", ""}, " ", true) =
{{"foo", "<M.proper noun>", ""}, {" "}, {"bar", "<F>", ""}}}
Consider what happens if the original string has multiple spaces between brackets, and multiple sets of brackets
without spaces between them.
{parse_balanced_segment_run("foo[dated][low colloquial] baz-bat quux xyzzy[archaic]", "[", "]") =
{"foo", "[dated]", "", "[low colloquial]", " baz-bat quux xyzzy", "[archaic]", ""}}
then
{split_alternating_runs({"foo", "[dated]", "", "[low colloquial]", " baz-bat quux xyzzy", "[archaic]", ""}, "[ %-]") =
{{"foo", "[dated]", "", "[low colloquial]", ""}, {"baz"}, {"bat"}, {"quux"}, {"xyzzy", "[archaic]", ""}}}
If `preserve_splitchar` is passed in, the split character is included in the output,
as follows:
{split_alternating_runs({"foo", "[dated]", "", "[low colloquial]", " baz bat quux xyzzy", "[archaic]", ""}, "[ %-]", true) =
{{"foo", "[dated]", "", "[low colloquial]", ""}, {" "}, {"baz"}, {"-"}, {"bat"}, {" "}, {"quux"}, {" "}, {"xyzzy", "[archaic]", ""}}}
As can be seen, the even-numbered elements in the outer list are one-element lists consisting of the separator text.
]==]
function export.split_alternating_runs(segment_runs, splitchar, preserve_splitchar)
local grouped_runs = {}
local run = {}
for i, seg in ipairs(segment_runs) do
if i % 2 == 0 then
insert(run, seg)
else
local parts = split(seg, preserve_splitchar and "(" .. splitchar .. ")" or splitchar)
insert(run, parts[1])
for j=2,#parts do
insert(grouped_runs, run)
run = {parts[j]}
end
end
end
if #run > 0 then
insert(grouped_runs, run)
end
return grouped_runs
end
--[==[
After calling `parse_multi_delimiter_balanced_segment_run()`, rejoin delimiter-bounded textual runs (i.e. textual runs
surrounded by certain matched delimiters) with the runs on either side. This can be used when some of the matched
delimiters are specified only in order to ensure that delimiters inside of other delimiters aren't parsed. As an
example, [[Module:object usage]] calls
{m_parse_utilities.parse_multi_delimiter_balanced_segment_run(object, {{"[", "]"}, {"(", ")"}, {"<", ">"}})} but the
actual syntax of {{tl|+obj}} only uses parens and angle brackets as delimiters. Square brackets are included so that
internal links are treated as units (i.e. parens and angle brackets occurring inside of them aren't parsed), but beyond
that we don't treat square brackets as delimiters, so we want to rejoin square-bracket-delimited textual runs with
adjacent runs before further parsing.
There are two primary workflows when using this function:
# If you only care about balanced delimiters occurring inside of other balanced delimiters (e.g. in the above example
with [[Module:object usage]], you can call `rejoin_delimited_runs()` directly after
`parse_multi_delimiter_balanced_segment_run()`.
# However, if you care about single delimiters such as commas and slashes occurring inside of balanced delimiters (e.g.
if you allow multiple comma-separated terms, e.g. of which can have associated inline modifiers, and you don't want
commas inside of internal links to be treated as delimiters), you need to call `rejoin_delimited_runs()` ''after''
calling `split_alternating_runs()`. This is used, for example, in `parse_inline_modifiers()` for exactly this reason,
when a `splitchar` is provided.
`data` is an object of properties. Currently there are two: `runs` (the output of calling
`parse_multi_delimiter_balanced_segment_run()`, i.e. a list of textual runs, where even-numbered elements begin and end
with a matched delimiter and odd-numbered elements are surrounding text) and `delimiter_pattern` (a Lua pattern matching
delimited textual runs that we want to rejoin with the surrounding text). `delimiter_pattern` should normally be
anchored at the beginning; e.g. {"^%["} would be the correct pattern to use when rejoining square-bracket-delimited
textual runs, as described above.
]==]
function export.rejoin_delimited_runs(data)
local joined_runs = {}
local i = 1
while i <= #data.runs do
local run = data.runs[i]
if i % 2 == 0 and run:find(data.delimiter_pattern) then
joined_runs[#joined_runs] = joined_runs[#joined_runs] .. run .. data.runs[i + 1]
i = i + 2
else
insert(joined_runs, run)
i = i + 1
end
end
return joined_runs
end
function export.strip_spaces(text)
return (ugsub(text, "^%s*(.-)%s*$", "%1"))
end
--[==[
Apply an arbitrary function `frob` to the "raw-text" segments in a split run set (the output of
split_alternating_runs()). We leave alone stuff within balanced delimiters (footnotes, inflection specs and the
like), as well as splitchars themselves if present. `preserve_splitchar` indicates whether splitchars are present
in the split run set. `frob` is a function of one argument (the string to frob) and should return one argument (the
frobbed string). We operate by only frobbing odd-numbered segments, and only in odd-numbered runs if
preserve_splitchar is given.
]==]
function export.frob_raw_text_alternating_runs(split_run_set, frob, preserve_splitchar)
for i, run in ipairs(split_run_set) do
if not preserve_splitchar or i % 2 == 1 then
for j, segment in ipairs(run) do
if j % 2 == 1 then
run[j] = frob(segment)
end
end
end
end
end
--[==[
Like split_alternating_runs() but applies an arbitrary function `frob` to "raw-text" segments in the result (i.e.
not stuff within balanced delimiters such as footnotes and inflection specs, and not splitchars if present). `frob`
is a function of one argument (the string to frob) and should return one argument (the frobbed string).
]==]
function export.split_alternating_runs_and_frob_raw_text(run, splitchar, frob, preserve_splitchar)
local split_runs = export.split_alternating_runs(run, splitchar, preserve_splitchar)
export.frob_raw_text_alternating_runs(split_runs, frob, preserve_splitchar)
return split_runs
end
--[==[
FIXME: Older entry point. Call `split_alternating_runs_and_frob_raw_text()` in [[Module:parse utilities]] directly.
Like `split_alternating_runs()` but strips spaces from both ends of the odd-numbered elements (only in odd-numbered runs
if `preserve_splitchar` is given). Effectively we leave alone the footnotes and splitchars themselves, but otherwise
strip extraneous spaces. Spaces in the middle of an element are also left alone.
]==]
function export.split_alternating_runs_and_strip_spaces(segment_runs, splitchar, preserve_splitchar)
return export.split_alternating_runs_and_frob_raw_text(segment_runs, splitchar, export.strip_spaces, preserve_splitchar)
end
--[==[
Split the non-modifier parts of an alternating run (after parse_balanced_segment_run() is called) on a Lua pattern,
but not on certain sequences involving characters in that pattern (e.g. comma+whitespace). `splitchar` is the pattern
to split on; `preserve_splitchar` indicates whether to preserve the delimiter and is the same as in
split_alternating_runs(). `escape_fun` is called beforehand on each run of raw text and should return two values:
the escaped run and whether unescaping is needed. If any call to `escape_fun` indicates that unescaping is needed,
`unescape_fun` will be called on each run of raw text after splitting on `splitchar`. The return value of this
function is as in split_alternating_runs().
]==]
function export.split_alternating_runs_escaping(run, splitchar, preserve_splitchar, escape_fun, unescape_fun)
-- First replace comma with a temporary character in comma+whitespace sequences.
local need_unescape = false
for i in ipairs(run) do
if i % 2 == 1 and escape_fun then
local this_need_unescape
run[i], this_need_unescape = escape_fun(run[i])
need_unescape = need_unescape or this_need_unescape
end
end
if need_unescape then
return export.split_alternating_runs_and_frob_raw_text(run, splitchar, unescape_fun, preserve_splitchar)
else
return export.split_alternating_runs(run, splitchar, preserve_splitchar)
end
end
--[==[
Replace comma with a temporary char in comma + whitespace.
]==]
function export.escape_comma_whitespace(run, tempcomma)
tempcomma = tempcomma or u(0xFFF0)
local escaped = false
if run:find("\\,") then
-- FIXME: we should probably convert literal \\ to \ to allow people to put a backslash before a comma that
-- should be passed through; but maybe it's enough to use an HTML escape for the comma or backslash.
run = (run:gsub("\\,", tempcomma)) -- discard backslash before comma, doing its duty to protect the comma
escaped = true
end
if run:find(",%s") then
run = (run:gsub(",(%s)", tempcomma .. "%1"))
escaped = true
end
return run, escaped
end
--[==[
Undo the replacement of comma with a temporary char.
]==]
function export.unescape_comma_whitespace(run, tempcomma)
tempcomma = tempcomma or u(0xFFF0)
return (run:gsub(tempcomma, ","))
end
--[==[
Split the non-modifier parts of an alternating run (after parse_balanced_segment_run() is called) on comma, but not
on comma+whitespace. See `split_on_comma()` above for more information and the meaning of `tempcomma`.
]==]
function export.split_alternating_runs_on_comma(run, tempcomma)
tempcomma = tempcomma or u(0xFFF0)
-- Replace comma with a temporary char in comma + whitespace.
local function escape_comma_whitespace(seg)
return export.escape_comma_whitespace(seg, tempcomma)
end
-- Undo replacement of comma with a temporary char in comma + whitespace.
local function unescape_comma_whitespace(seg)
return export.unescape_comma_whitespace(seg, tempcomma)
end
return export.split_alternating_runs_escaping(run, ",", false, escape_comma_whitespace, unescape_comma_whitespace)
end
--[==[
Split text on a Lua pattern, but not on certain sequences involving characters in that pattern (e.g.
comma+whitespace). `splitchar` is the pattern to split on; `preserve_splitchar` indicates whether to preserve the
delimiter between split segments. `escape_fun` is called beforehand on the text and should return two values: the
escaped run and whether unescaping is needed. If the call to `escape_fun` indicates that unescaping is needed,
`unescape_fun` will be called on each run of text after splitting on `splitchar`. The return value of this a list
of runs, interspersed with delimiters if `preserve_splitchar` is specified.
]==]
function export.split_escaping(text, splitchar, preserve_splitchar, escape_fun, unescape_fun)
if not umatch(text, splitchar) then
return {text}
end
-- If there are square or angle brackets, we don't want to split on delimiters inside of them. To effect this, we
-- use parse_multi_delimiter_balanced_segment_run() to parse balanced brackets, then do delimiter splitting on the
-- non-bracketed portions of text using split_alternating_runs_escaping(), and concatenate back to a list of
-- strings. When calling parse_multi_delimiter_balanced_segment_run(), we make sure not to throw an error on
-- unbalanced brackets; in that case, we fall through to the code below that handles the case without brackets.
if text:find("[%[<]") then
local runs = export.parse_multi_delimiter_balanced_segment_run(text, {{"[", "]"}, {"<", ">"}},
"no error on unmatched")
if type(runs) ~= "string" then
local split_runs = export.split_alternating_runs_escaping(runs, splitchar, preserve_splitchar, escape_fun,
unescape_fun)
for i = 1, #split_runs do
split_runs[i] = concat(split_runs[i])
end
return split_runs
end
end
-- First escape sequences we don't want to count for splitting.
local need_unescape
if escape_fun then
text, need_unescape = escape_fun(text)
end
local parts = split(text, preserve_splitchar and "(" .. splitchar .. ")" or splitchar)
if need_unescape then
for i = 1, #parts, (preserve_splitchar and 2 or 1) do
parts[i] = unescape_fun(parts[i])
end
end
return parts
end
--[==[
Split text on comma, but not on comma+whitespace. This is similar to `mw.text.split(text, ",")` but will not split
on commas directly followed by whitespace, to handle embedded commas in terms (which are almost always followed by
a space). `tempcomma` is the Unicode character to temporarily use when doing the splitting; normally U+FFF0, but
you can specify a different character if you use U+FFF0 for some internal purpose.
]==]
function export.split_on_comma(text, tempcomma)
-- Don't do anything if no comma. Note that split_escaping() has a similar check at the beginning, so if there's a
-- comma we effectively do this check twice, but this is worth it to optimize for the common no-comma case.
if not text:find(",") then
return {text}
end
tempcomma = tempcomma or u(0xFFF0)
-- Replace comma with a temporary char in comma + whitespace.
local function escape_comma_whitespace(run)
return export.escape_comma_whitespace(run, tempcomma)
end
-- Undo replacement of comma with a temporary char in comma + whitespace.
local function unescape_comma_whitespace(run)
return export.unescape_comma_whitespace(run, tempcomma)
end
return export.split_escaping(text, ",", false, escape_comma_whitespace, unescape_comma_whitespace)
end
--[==[
Ensure that Wikicode (template calls, bracketed links, HTML, bold/italics, etc.) displays literally in error messages
by inserting a Unicode word-joiner symbol after all characters that may trigger Wikicode interpretation. Replacing
with equivalent HTML escapes doesn't work because they are displayed literally. I could not get this to work using
<nowiki>...</nowiki> (those tags display literally), using using {{#tag:nowiki|...}} (same thing) or using
mw.getCurrentFrame():extensionTag("nowiki", ...) (everything gets converted to a strip marker
`UNIQ--nowiki-00000000-QINU` or similar). FIXME: This is a massive hack; there must be a better way.
]==]
function export.escape_wikicode(term)
term = term:gsub("([%[<'{])", "%1" .. u(0x2060))
return term
end
function export.make_parse_err(arg_gloss)
return function(msg, stack_frames_to_ignore)
error(export.escape_wikicode(("%s: %s"):format(msg, arg_gloss)), stack_frames_to_ignore)
end
end
-- Parse a term that may include a link '[[LINK]]' or a two-part link '[[LINK|DISPLAY]]'. FIXME: Doesn't currently
-- handle embedded links like '[[FOO]] [[BAR]]' or [[FOO|BAR]] [[BAZ]]' or '[[FOO]]s'; if they are detected, it returns
-- the term unchanged and `nil` for the display form.
local function parse_bracketed_term(term, parse_err)
local inside = term:match("^%[%[(.*)%]%]$")
if inside then
if inside:find("%[%[") or inside:find("%]%]") then
-- embedded links, e.g. '[[FOO]] [[BAR]]'; FIXME: we should process them properly
return term, nil
end
local parts = split(inside, "|")
if #parts > 2 then
parse_err("Saw more than two parts inside a bracketed link")
end
return parts[1], parts[2]
end
return term, nil
end
--[==[
Parse a term that may have a language code (or possibly multiple plus-separated language codes, if
`data.allow_multiple` is given) preceding it (e.g. {la:minūtia} or {grc:[[σκῶρ|σκατός]]} or
{nan-hbl+hak:[[毋]][[知]]}). Return five arguments:
# the original prefixed term; in the case of a Wikipedia or Wikisource prefix followed by a two-part link, it is a
two-part link with the Wikipedia/Wikisource prefix moved inside the link; in the case of a Wikipedia or Wikisource
prefix followed by a redundant one-part link, the brackets are removed;
# the language object corresponding to the language code (possibly a family object if `data.allow_family` is given), or
a list of such objects if `data.allow_multiple` is given;
# the link if the unprefixed term is of the form <code>[[<var>link</var>|<var>display</var>]]</code> or of the form
<code>[[<var>link</var>]]</code>, otherwise the full unprefixed term;
# the display part if the term is of the form <code>[[<var>link</var>|<var>display</var>]]</code> or has a Wikipedia or
Wikisource prefix (in which case the part minus the prefix and any following language code will be returned, with
redundant brackets stripped), else {nil};
# {true} if the term has a Wikipedia/Wikisource prefix, else {false}.
Etymology-only languages are always allowed. This function also correctly handles Wikipedia prefixes (e.g.
{w:Abatemarco} or {w:it:Colle Val d'Elsa} or {lw:ru:Филарет}) and Wikisource prefixes (e.g. {s:Twelve O'Clock} or
{s:[[Walden/Chapter XVIII|Walden]]} or {s:fr:Perceval ou le conte du Graal} or {s:ro:[[Domnul Vucea|Mr. Vucea]]} or
{ls:ko:이상적 부인} or {ls:ko:[[조선 독립의 서#一. 槪論|조선 독립의 서]]}) and converts them into two-part links,
with the display form not including the Wikipedia or Wikisource prefix unless it was explicitly specified using a
two-part link as in {lw:ru:[[Филарет (Дроздов)|Митрополи́т Филаре́т]]} or
{ls:ko:[[조선 독립의 서#一. 槪論|조선 독립의 서]]}. The difference between {w:} ("Wikipedia") and {lw:} ("Wikipedia
link") is that the latter requires a language code and returns the corresponding language object; same for the
difference between {s:} ("Wikisource") and {ls:} ("Wikisource link").
NOTE: Embedded links are not correctly handled currently. If an embedded link is detected, the whole term is returned
as the link part (third argument), and the display part is nil. If you construct your own link from the link and
display parts, you must check for this.
The calling convention is to pass in a single argument `data` containing the following fields:
* `term`: The term to parse.
* `parse_err`: An optional function of one or two arguments to display an error. (The second argument to the function is
the number of stack frames to ignore when calling error(); if you declare your error function with only one argument,
things will still work fine.)
* `paramname`: If `parse_err` is omitted, this should be a string naming a parameter to display in the error message,
along with the term in question, and will be used to generate a `parse_err` function using `make_parse_err()`. (If
`paramname` is omitted, just the term itself appears in the error message.)
* `allow_multiple`: Allow multiple plus-separated language codes, e.g. {nan-hbl+hak:[[毋]][[知]]}. See above.
* `allow_family`: Allow family objects to appear in place of language codes.
* `allow_bad`: Don't throw an error on invalid language code prefixes; instead, include the prefix and colon as part of
the term. Note that if a prefix doesn't look like a language code (e.g. if it's a number), the code won't even try to
parse it as a language code, regardless of the `allow_bad` setting, but will always include it in the term.
* `lang_cache`: A table mapping language codes to language objects, where invalid language codes are indicated by the
value `false`. If this field is specified, the cache will be consulted before calling `getByCode()` in
[[Module:languages]], and the result cached. If not specified, no cache will be used.
]==]
function export.parse_term_with_lang(data)
local term = data.term
local parse_err = data.parse_err or
data.paramname and export.make_parse_err(("%s=%s"):format(data.paramname, term)) or
export.make_parse_err(term)
-- Parse off an initial language code (e.g. 'la:minūtia' or 'grc:[[σκῶρ|σκατός]]'). First check for Wikipedia
-- prefixes ('w:Abatemarco' or 'w:it:Colle Val d'Elsa' or 'lw:zh:邹衡') and Wikisource prefixes
-- ('s:ro:[[Domnul Vucea|Mr. Vucea]]' or 'ls:ko:이상적 부인'). Wikipedia/Wikisource language codes follow a similar
-- format to Wiktionary language codes (see below). Here and below we don't parse if there's a space after the
-- colon (happens e.g. if the user uses {{desc|...}} inside of {{col}}, grrr ...).
local termlang, foreign_wiki, actual_term = term:match("^(l?[ws]):([a-z][a-z][a-z-]*):([^ ].*)$")
if not termlang then
termlang, actual_term = term:match("^([ws]):([^ ].*)$")
end
if termlang then
local wiki_links = termlang:find("^l")
local base_wiki_prefix = termlang:find("w$") and "w:" or "s:"
local wiki_prefix = base_wiki_prefix .. (foreign_wiki and foreign_wiki .. ":" or "")
local link, display = parse_bracketed_term(actual_term, parse_err)
if link:find("%[%[") or display and display:find("%[%[") then
-- FIXME, this should be handlable with the right parsing code
parse_err("Cannot have embedded brackets following a Wikipedia (w:... or lw:...) link; expand the term to a fully bracketed term w:[[LINK|DISPLAY]] or similar")
end
local lang = wiki_links and get_lang(foreign_wiki, parse_err, "allow etym") or nil
local prefixed_link = wiki_prefix .. link
if display then
return ("[[%s|%s]]"):format(prefixed_link, display), lang, prefixed_link, display, true
else
-- Return the link minus any language codes as the fourth term (display form). Previously we returned `actual_term`
-- but this causes problems with redundant Wikipedia links of the form `w:[[Dragon Ball Z]]`. Don't generate a
-- two-part link so you can specify a display form in 3=. Note that the fourth and fifth params are currently only
-- used in [[Module:quote]].
return prefixed_link, lang, prefixed_link, link, true
end
end
-- Wiktionary language codes are in one of the following formats, where 'x' is a lowercase letter and 'X' an
-- uppercase letter:
-- xx
-- xxx
-- xxx-xxx
-- xxx-xxx-xxx (esp. for protolanguages)
-- xx-xxx (for etymology-only languages)
-- xx-xxx-xxx (maybe? for etymology-only languages)
-- xx-XX (for etymology-only languages, where XX is a country code, e.g. en-US)
-- xxx-XX (for etymology-only languages, where XX is a country code)
-- xx-xxx-XX (for etymology-only languages, where XX is a country code)
-- xxx-xxx-XX (for etymology-only langauges, where XX is a country code, e.g. nan-hbl-PH)
-- Things like xxx-x+ (e.g. cmn-pinyin, cmn-tongyong)
-- VL., LL., etc.
--
-- We check the for nonstandard Latin etymology language codes separately, and otherwise make only the following
-- assumptions:
-- (1) There are one to three hyphen-separated components.
-- (2) The last component can consist of two uppercase ASCII letters; otherwise, all components contain only
-- lowercase ASCII letters.
-- (3) Each component must have at least two letters.
-- (4) The first component must have two or three letters.
local function is_possible_lang_code(code)
-- Special hack for Latin variants, which can have nonstandard etym codes, e.g. VL., LL.
if code:find("^[A-Z]L%.$") then
return true
end
return code:find("^([a-z][a-z][a-z]?)$") or
code:find("^[a-z][a-z][a-z]?%-[A-Z][A-Z]$") or
code:find("^[a-z][a-z][a-z]?%-[a-z][a-z]+$") or
code:find("^[a-z][a-z][a-z]?%-[a-z][a-z]+%-[A-Z][A-Z]$") or
code:find("^[a-z][a-z][a-z]?%-[a-z][a-z]+%-[a-z][a-z]+$")
end
local function get_by_code(code, allow_bad)
local lang
if data.lang_cache then
lang = data.lang_cache[code]
end
if lang == nil then
lang = get_lang(code, not allow_bad and parse_err or nil, "allow etym",
data.allow_family)
if data.lang_cache then
data.lang_cache[code] = lang or false
end
end
return lang or nil
end
if data.allow_multiple then
local termlang_spec
termlang_spec, actual_term = term:match("^([a-zA-Z.,+-]+):([^ ].*)$")
if termlang_spec then
termlang = split(termlang_spec, "[,+]")
local all_possible_code = true
for _, code in ipairs(termlang) do
if not is_possible_lang_code(code) then
all_possible_code = false
break
end
end
if all_possible_code then
local saw_nil = false
for i, code in ipairs(termlang) do
termlang[i] = get_by_code(code, data.allow_bad)
if not termlang[i] then
saw_nil = true
end
end
if saw_nil then
termlang = nil
else
term = actual_term
end
else
termlang = nil
end
end
else
termlang, actual_term = term:match("^([a-zA-Z.-]+):([^ ].*)$")
if termlang then
if is_possible_lang_code(termlang) then
termlang = get_by_code(termlang, data.allow_bad)
if termlang then
term = actual_term
end
else
termlang = nil
end
end
end
local link, display = parse_bracketed_term(term, parse_err)
return term, termlang, link, display, false
end
--[==[
Maybe parse any language prefix off of a given term and store the term and language(s) into a new or existing object.
This function is useful for implementing a `generate_obj` handler of `parse_inline_modifiers` that can support terms
with prefixed language(s). This wraps `parse_term_with_lang` and has the same handling of language prefixes as that
function. The calling convention is to pass in a single argument `data` containing the following fields (NOTE: you must
set `parse_lang_prefix` to get language-prefix-parsing behavior):
* `term`: The term to parse. This is the only required parameter.
* `parse_lang_prefix`: This must be specified in order for language prefixes to be recognized and parsed off.
* `termobj`: The existing object to store results into. If unspecified, a new object is created.
* `term_dest`: The field in `termobj` into which the term itself (minus any language prefix) is stored.
If unspecified, defaults to {"term"}.
* `parse_err`: An optional function of one or two arguments to display an error. (The second argument to the function is
the number of stack frames to ignore when calling error(); if you declare your error function with only one argument,
things will still work fine.)
* `paramname`: If `parse_err` is omitted, this should be a string naming a parameter to display in the error message,
along with the term in question, and will be used to generate a `parse_err` function using `make_parse_err()`. (If
`paramname` is omitted, just the term itself appears in the error message.)
* `allow_multiple_lang_prefixes`: Allow multiple plus-separated language codes, e.g. {nan-hbl+hak:[[毋]][[知]]}. See
`parse_term_with_lang` for more information.
* `allow_bad_lang_prefix`: Don't throw an error on invalid language code prefixes; instead, include the prefix and colon
as part of the term. Note that if a prefix doesn't look like a language code (e.g. if it's a number), the code won't
even try to parse it as a language code, regardless of this setting, but will always include it in the term.
* `allow_family_as_lang_prefix`: Allow family objects to appear in place of language codes.
* `lang_cache`: A table mapping language codes to language objects, where invalid language codes are indicated by the
value `false`. If this field is specified, the cache will be consulted before calling `getByCode()` in
[[Module:languages]], and the result cached. If not specified, no cache will be used.
The return value is the object in `data.termobj` (if non-{nil}) or a newly-created object (otherwise), with the
parsed-off term stored in the field named by the `data.term_dest` property (normally `.term`). If
`data.allow_multiple_lang_prefixes` was not given and a language prefix was parsed off, the corresponding language
object is stored into both `lang` and `termlang` (the storage into `termlang` is so that the presence of a language
prefix can specifically be determined in the event that `lang` is already set in an existing termobj). If
`data.allow_multiple_lang_prefixes` was given and one or more language prefixes were parsed off, the first such
language object is stored into `lang`, and the list of all language objects stored into `termlangs.
]==]
function export.generate_obj_maybe_parsing_lang_prefix(data)
local term = data.term
local term_dest = data.term_dest or "term"
local termobj = data.termobj or {}
if data.parse_lang_prefix and term:find(":", nil, true) then
local actual_term, termlangs = export.parse_term_with_lang {
term = term,
parse_err = data.parse_err,
paramname = data.paramname,
allow_bad = data.allow_bad_lang_prefix,
allow_multiple = data.allow_multiple_lang_prefixes,
allow_family = data.allow_family_as_lang_prefix,
lang_cache = data.lang_cache,
}
termobj[term_dest] = actual_term ~= "" and actual_term or nil
if termlangs then
-- If we couldn't parse a language code, don't overwrite an existing setting in `lang`
-- that may have originated from a separate |langN= param.
if data.allow_multiple_lang_prefixes then
termobj.termlangs = termlangs
termobj.lang = termlangs and termlangs[1] or nil
else
termobj.termlang = termlangs
termobj.lang = termlangs
end
end
else
termobj[term_dest] = term ~= "" and term or nil
end
return termobj
end
--[==[
Parse a term that may have inline modifiers attached (e.g. {rifiuti<q:plural-only>} or
{rinfusa<t:bulk cargo><lit:resupplying><qq:more common in the plural {{m|it|rinfuse}}>}).
* `arg` is the term to parse.
* `props` is an object holding further properties controlling how to parse the term (only `param_mods` and
`generate_obj` are required):
** `paramname` is the name of the parameter where `arg` comes from, or nil if this isn't available (it is used only in
error messages).
** `param_mods` is a table describing the allowed inline modifiers (see below).
** `generate_obj` is a function of one or two arguments that should parse the argument minus the inline modifiers and
return a corresponding parsed object (into which the inline modifiers will be rewritten). If declared with one
argument, that will be the raw value to parse; if declared with two arguments, the second argument will be the
`parse_err` function (see below).
** `parse_err` is an optional function of one argument (an error message) and should display the error message, along
with any desired contextual text (e.g. the argument name and value that triggered the error). If omitted, a default
function will be generated which displays the error along with the original value of `arg` (passed through
{escape_wikicode()} above to ensure that Wikicode (such as links) is displayed literally).
** `splitchar` is a Lua pattern. If specified, `arg` can consist of multiple delimiter-separated terms, each of which
may be followed by inline modifiers, and the return value will be a list of parsed objects instead of a single
object. Note that splitting on delimiters will not happen in certain protected sequences (by default
comma+whitespace; see below). The algorithm to split on delimiters is sensitive to inline modifier syntax and will
not be confused by delimiters inside of inline modifiers, which do not trigger splitting (whether or not contained
within protected sequences).
** `outer_container`, if specified, is used when multiple delimiter-separated terms are possible, and is the object
into which the list of per-term objects is stored (into the `terms` field) and into which any modifiers that are
given the `overall` property (see below) will be stored. If given, this value will be returned as the value of
{parse_inline_modifiers()}. If `outer_container` is not given, {parse_inline_modifiers()} will return the list of
per-term objects directly, and no modifier may have an `overall` property.
** `preserve_splitchar`, if specified, causes the actual delimiter matched by `splitchar` to be returned in the
parsed object describing the element that comes after the delimiter. The delimiter is stored in a key whose
name is controlled by `delimiter_key`, which defaults to "delimiter".
** `delimiter_key` controls the key into which the actual delimiter is written when `preserve_splitchar` is used.
See above.
** `escape_fun` and `unescape_fun` are as in split_escaping() and split_alternating_runs_escaping() above and
control the protected sequences that won't be split. By default, `escape_comma_whitespace` and
`unescape_comma_whitespace` are used, so that comma+whitespace sequences won't be split. Set to `false` to disable
escaping/unescaping.
** `pre_normalize_modifiers`, if specified, is a function of one argument, which can be used to "normalize" modifiers
prior to further parsing. This is used, for example, in [[Module:tl-pronunciation]] to convert modifiers of the
form `<noun^expectation; hope>` to `<t:noun^expectation; hope>`, so they can be processed as standard modifiers. It
is also used in [[Module:ar-verb]] to convert footnotes of the form `[rare]` to `<footnote:[rare]>`, to allow for
mixing bracketed footnotes and inline modifiers when overriding verbal nouns and such. It could similarly be used to
handle boolean modifiers like `<slb>` in {{tl|desc}} and convert them to a standard form `<slb:1>`. It runs just
before parsing out the modifier prefix and value, and is passed an object containing fields `modtext` (the
un-normalized modifier text, including surrounding angle brackets, or in some cases, text surrounded by other
delimiters such as square brackets, if `parse_inline_modifiers_from_segments()` is being called and the caller did
their own parsing of balanced segment runs) and `parse_err` (the passed-in or autogenerated function to signal an
error during parsing; a function of one argument, a message, which throws an error displaying that message). It
should return a single value, the normalized value of `modtext`, including surrounding angle brackets.
`param_mods` is a table describing allowed modifiers. The keys of the table are modifier prefixes and the values are
tables describing how to parse and store the associated modifier values. Here is a typical example, for an item that
takes the standard modifiers associated with `full_link()` in [[Module:links]], as well as left and right qualifiers
and labels:
{
local param_mods = {
alt = {},
t = {
-- [[Module:links]] expects the gloss in "gloss".
item_dest = "gloss",
},
gloss = {},
tr = {},
ts = {},
g = {
-- [[Module:links]] expects the genders in "g". `sublist = true` automatically splits on comma (optionally
-- with surrounding whitespace).
item_dest = "genders",
sublist = true,
},
pos = {},
lit = {},
id = {},
sc = {
-- Automatically parse as a script code and convert to a script object.
type = "script",
},
-- Qualifiers and labels
q = {
type = "qualifier",
},
qq = {
type = "qualifier",
},
l = {
type = "labels",
},
ll = {
type = "labels",
},
}
}
In the table values:
* `item_dest` specifies the destination key to store the object into (if not the same as the modifier key itself).
* `type`, `set`, `sublist` and `convert` have the same meaning as in [[Module:parameters]] and are used for converting
the object from the string form given by the user into the form needed for further processing. Note that `type` makes
use of additional properties that may be specified. Specifically, if {type = "language"}, the properties `family` and
`method` are also examined, and if {type = "family"} or {type = "script"}, the property `method` is examined.
* `store` describes how to store the converted modifier value into the parsed object. If omitted, the converted value
is simply written into the parsed object under the appropriate key; but an error is generated if the key already has
a value. (This means that multiple occurrences of a given modifier are allowed if `store` is given, but not
otherwise.) `store` can be one of the following:
** {"insert"}: the converted value is appended to the key's value using {insert()}; if the key has no value, it
is first converted to an empty list;
** {"insertIfNot"}: is similar but appends the value using {insertIfNot()} in [[Module:table]];
** {"insert-flattened"}, the converted value is assumed to be a list and the objects are appended one-by-one into the
key's existing value using {insert()};
** {"insertIfNot-flattened"} is similar but appends using {insertIfNot()} in [[Module:table]]; (WARNING: When using
{"insert-flattened"} and {"insertIfNot-flattened"}, if there is no existing value for the key, the converted value is
just stored directly. This means that future appends will side-effect that value, so make sure that the return value
of the conversion function for this key generates a fresh list each time.)
** a function of one argument, an object with the following properties:
*** `dest`: the object to write the value into;
*** `key`: the field where the value should be written;
*** `converted`: the (converted) value to write;
*** `raw_val`: the raw, user-specified value (a string);
*** `parse_err`: a function of one argument (an error string), which signals an error, and includes extra context in
the message about the modifier in question, the angle-bracket spec that includes the modifier in it, the overall
value, and (if `paramname` was given) the parameter holding the overall value.
* `overall` only applies if `splitchar` is given. In this case, the modifier applies to the entire argument rather than
to an individual term in the argument, and must occur after the last item separated by `splitchar`, instead of being
allowed to occur after any of them. The modifier will be stored into the outer container object, which must exist
(i.e. `outer_container` must have been given).
The return value of {parse_inline_modifiers()} depends on whether `splitchar` and `outer_container` have been given. If
neither is given, the return value is the object returned by `generate_obj`. If `splitchar` but not `outer_container` is
given, the return value is a list of per-term objects, each of which is generated by `generate_obj`. If both `splitchar`
and `outer_container` are given, the return value is the value of `outer_container` and the per-term objects are stored
into the `terms` field of this object.
]==]
function export.parse_inline_modifiers(arg, props)
local segments
local function rejoin_bracket_delimited_runs(segments)
return export.rejoin_delimited_runs {
runs = segments,
delimiter_pattern = "^%[.*%]$",
}
end
local rejoin_square_brackets_after_split = false
-- The following is an optimization. If we see a square bracket (normally a double square bracket internal link
-- [[...]]), we want to not treat delimiter characters inside (either <...> balanced delimiters or separators such
-- as commas) as delimiters. But this requires a more sophisticated and slower algorithm, and most of the time it
-- isn't needed because there are no square brackets. So we check for a square bracket and fall back to a simpler
-- algorithm otherwise (which, since it involves only a single balanced delimiter, can use the built-in %b() Lua
-- pattern syntax, which AFAIK is implemented in C).
if arg:find("%[") then
segments = export.parse_multi_delimiter_balanced_segment_run(arg, {{"[", "]"}, {"<", ">"}})
if not props.splitchar then
segments = rejoin_bracket_delimited_runs(segments)
else
rejoin_square_brackets_after_split = true
end
else
segments = export.parse_balanced_segment_run(arg, "<", ">")
end
local function verify_no_overall()
for _, mod_props in pairs(props.param_mods) do
if mod_props.overall then
error("Internal caller error: Can't specify `overall` for a modifier in `param_mods` unless `outer_container` property is given")
end
end
end
if not props.splitchar then
if props.outer_container then
error("Internal caller error: Can't specify `outer_container` property unless `splitchar` is given")
end
verify_no_overall()
return export.parse_inline_modifiers_from_segments {
group = segments,
group_index = nil,
separated_groups = nil,
arg = arg,
props = props,
}
else
local terms = {}
if props.outer_container then
props.outer_container.terms = terms
else
verify_no_overall()
end
local escape_fun = props.escape_fun
if escape_fun == nil then
escape_fun = export.escape_comma_whitespace
end
local unescape_fun = props.unescape_fun
if unescape_fun == nil then
unescape_fun = export.unescape_comma_whitespace
end
local separated_groups = export.split_alternating_runs_escaping(segments, props.splitchar,
props.preserve_splitchar, escape_fun, unescape_fun)
for j = 1, #separated_groups, (props.preserve_splitchar and 2 or 1) do
if rejoin_square_brackets_after_split then
separated_groups[j] = rejoin_bracket_delimited_runs(separated_groups[j])
end
local parsed = export.parse_inline_modifiers_from_segments {
group = separated_groups[j],
group_index = j,
separated_groups = separated_groups,
arg = arg,
props = props,
}
if props.preserve_splitchar and j > 1 then
parsed[props.delimiter_key or "delimiter"] = separated_groups[j - 1][1]
end
insert(terms, parsed)
end
if props.outer_container then
return props.outer_container
else
return terms
end
end
end
--[==[
Parse a single term that may have inline modifiers attached. This is a helper function of {parse_inline_modifiers()} but
is exported separately in case the caller needs to make their own call to {parse_balanced_segment_run()} (as in
[[Module:quote]], which splits on several matched delimiters simultaneously). It takes only a single argument, `data`,
which is an object with the following fields:
* `group`: A list of segments as output by {parse_balanced_segment_run()} (see the overall comment at the top of
[[Module:parse utilities]]), or one of the lists returned by calling {split_alternating_runs()}.
* `separated_groups`: The list of groups (each of which is of the form of `group`) describing all the terms in the
argument parsed by {parse_inline_modifiers()}, or {nil} if this isn't applicable (i.e. multiple terms aren't allowed
in the argument). Currently used only the check the number of groups in the list against `group_index`.
* `group_index`: The index into `separated_groups` where `group` can be found, or {nil} if not applicable (see below).
* `arg`: The original user-specified argument being parsed; used only for error messages and only when `props.parse_err`
is not specified.
* `props`: The `props` argument to {parse_inline_modifiers()}.
The return value is the object created by `generate_obj`, with properties filled in describing the modifiers of the
term in question. Note that `props.outer_container` and the `overall` setting of the `props.param_mods` structure are
respected, but `props.splitchar` is ignored because the splitting happens in the caller. Specifically, if there are any
modifiers with the `overall` setting, `props.separated_groups` and `props.group_index` must be given so that the
function is able to determine if the modifier is indeed attached to the last term, and `props.outer_container` must be
given because that is where such modifiers are stored. Otherwise, none of these settings need be given.
]==]
function export.parse_inline_modifiers_from_segments(data)
local props = data.props
local group = data.group
local function get_valid_prefixes()
local valid_prefixes = {}
for param_mod, mod_props in pairs(props.param_mods) do
if not mod_props.deprecated then
insert(valid_prefixes, param_mod)
end
end
sort(valid_prefixes)
return valid_prefixes
end
local function get_arg_gloss()
if props.paramname then
return ("%s=%s"):format(props.paramname, data.arg)
else
return data.arg
end
end
local parse_err = props.parse_err or export.make_parse_err(get_arg_gloss())
local term_obj = props.generate_obj(group[1], parse_err)
for k = 2, #group - 1, 2 do
if group[k + 1] ~= "" then
parse_err("Extraneous text '" .. group[k + 1] .. "' after modifier")
end
local group_k = group[k]
if props.pre_normalize_modifiers then
-- FIXME: For some use cases, we might have to pass more information.
group_k = props.pre_normalize_modifiers {
modtext = group_k,
parse_err = parse_err
}
end
local modtext = group_k:match("^<(.*)>$")
if not modtext then
parse_err("Internal error: Modifier '" .. group_k .. "' isn't surrounded by angle brackets")
end
local prefix, val = modtext:match("^([a-zA-Z0-9+_-]+):(.*)$")
if not prefix then
local valid_prefixes = get_valid_prefixes()
for i, valid_prefix in ipairs(valid_prefixes) do
valid_prefixes[i] = "'" .. valid_prefix .. ":'"
end
parse_err(("Modifier %s%s lacks a prefix, should begin with one of %s"):format(
group_k, group_k ~= group[k] and (" (normalized from %s)"):format(group[k]) or "",
list_to_text(valid_prefixes)))
end
local prefix_parse_err
if props.parse_err then
prefix_parse_err = function(msg, stack_frames_to_ignore)
props.parse_err(("%s: modifier prefix '%s' in %s"):format(msg, prefix, group[k]),
stack_frames_to_ignore)
end
else
prefix_parse_err = export.make_parse_err(("modifier prefix '%s' in %s in %s"):format(
prefix, group[k], get_arg_gloss()))
end
if props.param_mods[prefix] then
local mod_props = props.param_mods[prefix]
if mod_props.replaced_by == false then
prefix_parse_err(
("Prefix has been removed and is no longer valid%s%s"):format(
mod_props.reason and ", " .. mod_props.reason or "",
mod_props.instead and "; instead, " .. mod_props.instead or "")
)
elseif mod_props.replaced_by then
prefix_parse_err(
("Prefix has been replaced by '%s'%s"):format(
mod_props.replaced_by, mod_props.reason and ", " .. mod_props.reason or "")
)
end
local key = mod_props.item_dest or prefix
local dest
if mod_props.overall then
if not data.separated_groups then
prefix_parse_err("Internal error: `data.separated_groups` not given when `overall` is seen")
end
if not props.outer_container then
-- This should have been caught earlier during validation in parse_inline_modifiers().
prefix_parse_err("Internal error: `props.outer_container` not given when `overall` is seen")
end
if data.group_index ~= #data.separated_groups then
prefix_parse_err("Prefix should occur after the last comma-separated term")
end
dest = props.outer_container
else
dest = term_obj
end
local converted = val
if mod_props.type or mod_props.set or mod_props.sublist or mod_props.convert then
-- WARNING: Here as an optimization we embed some knowledge of convert_val() in [[Module:parameters]],
-- specifically that if none of `type`, `set`, `sublist` and `convert` are set, the conversion is an
-- identity operation and can be skipped. (convert_val() also makes use of the fields `method` and
-- `family`, but only if `type` is set to certain values such as "language", "family" or "script", and
-- makes use of the field `required`, but only if `set` is set.) If this becomes problematic, consider
-- removing the optimization.
converted = convert_val(converted, prefix_parse_err, mod_props)
end
local store = props.param_mods[prefix].store
if not store then
if dest[key] then
prefix_parse_err("Prefix occurs twice")
end
dest[key] = converted
elseif store == "insert" then
if not dest[key] then
dest[key] = {converted}
else
insert(dest[key], converted)
end
elseif store == "insertIfNot" then
if not dest[key] then
dest[key] = {converted}
else
insert_if_not(dest[key], converted)
end
elseif store == "insert-flattened" then
if not dest[key] then
dest[key] = converted
else
for _, obj in ipairs(converted) do
insert(dest[key], obj)
end
end
elseif store == "insertIfNot-flattened" then
if not dest[key] then
dest[key] = converted
else
for _, obj in ipairs(converted) do
insert_if_not(dest[key], obj)
end
end
elseif type(store) == "string" then
prefix_parse_err(("Internal caller error: Unrecognized value '%s' for `store` property"):format(store))
elseif not is_callable(store) then
prefix_parse_err(("Internal caller error: Unrecognized type for `store` property %s"):format(dump(store)))
else
store{
dest = dest,
key = key,
converted = converted,
raw = val,
parse_err = prefix_parse_err
}
end
else
local valid_prefixes = get_valid_prefixes()
for i, valid_prefix in ipairs(valid_prefixes) do
valid_prefixes[i] = "'" .. valid_prefix .. "'"
end
prefix_parse_err("Unrecognized prefix, should be one of " ..
list_to_text(valid_prefixes))
end
end
return term_obj
end
return export
7m7efxuys6lveo94nvwye55dw2c55on
Modul:languages/data/2
828
33716
373487
276297
2026-09-10T18:38:44Z
SNN95
2113
kemaskini
373487
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
-- Ideally, we want to move these into [[Module:languages/data]], but because (a) it's necessary to use require on that module, and (b) they're only used in this data module, it's less memory-efficient to do that at the moment. If it becomes possible to use mw.loadData, then these should be moved there.
s["de-Latn-sortkey"] = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer .. c.ringabove,
from = {"æ", "œ", "ß"},
to = {"ae", "oe", "ss"}
}
s["de-Latn-standardchars"] = "AaÄäBbCcDdEeFfGgHhIiJjKkLlMmNnOoÖöPpQqRrSsẞßTtUuÜüVvWwXxYyZz"
s["ka-stripdiacritics"] = {remove_diacritics = c.circ}
s["no-sortkey"] = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron .. c.dacute .. c.caron .. c.cedilla,
remove_exceptions = {"å"},
from = {"æ", "ø", "å"},
to = {"z" .. p[1], "z" .. p[2], "z" .. p[3]}
}
s["no-standardchars"] = "AaBbDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvYyÆæØøÅå" .. c.punc
s["sa-Deva-stripdiacritics"] = { -- Don't use remove_diacritics for accent marks, as १ and ३ should also be removed if (and only if) they carry any.
from = {"ॐ", "[१३]?[" .. c.anudatta .. c.udatta .. c.dsvarita .. c.tsvarita .. "]+"},
to = {"ओँ"},
}
s["tg-stripdiacritics"] = {remove_diacritics = c.grave .. c.acute}
s["tk-stripdiacritics"] = {remove_diacritics = c.macron}
local m = {}
m["aa"] = {
"Afar",
27811,
"cus-eas",
"Latn, Ethi",
strip_diacritics = {
Latn = {remove_diacritics = c.acute},
},
}
m["ab"] = {
"Abkhaz",
5111,
"cau-abz",
"Cyrl, Geor, Latn",
translit = {
Cyrl = "ab-translit",
-- Geor translit in [[Module:scripts/data]]
},
override_translit = true,
display_text = {
Cyrl = s["cau-Cyrl-displaytext"]
},
strip_diacritics = {
Cyrl = {
remove_diacritics = c.acute,
from = {"^а%-"},
to = {"а"},
},
Latn = s["cau-Latn-stripdiacritics"],
},
sort_key = {
Cyrl = {
from = {
"х'ә", -- 3 chars
"гь", "гә", "ӷь", "ҕь", "ӷә", "ҕә", "дә", "ё", "жь", "жә", "ҙә", "ӡә", "ӡ'", "кь", "кә", "қь", "қә", "ҟь", "ҟә", "ҫә", "тә", "ҭә", "ф'", "хь", "хә", "х'", "ҳә", "ць", "цә", "ц'", "ҵә", "ҵ'", "шь", "шә", "џь", -- 2 chars
"ӷ", "ҕ", "ҙ", "ӡ", "қ", "ҟ", "ԥ", "ҧ", "ҫ", "ҭ", "ҳ", "ҵ", "ҷ", "ҽ", "ҿ", "ҩ", "џ", "ә", -- 1 char
"^а",
},
to = {
"х" .. p[4],
"г" .. p[1], "г" .. p[2], "г" .. p[5], "г" .. p[6], "г" .. p[7], "г" .. p[8], "д" .. p[1], "е" .. p[1], "ж" .. p[1], "ж" .. p[2], "з" .. p[2], "з" .. p[4], "з" .. p[5], "к" .. p[1], "к" .. p[2], "к" .. p[4], "к" .. p[5], "к" .. p[7], "к" .. p[8], "с" .. p[2], "т" .. p[1], "т" .. p[3], "ф" .. p[1], "х" .. p[1], "х" .. p[2], "х" .. p[3], "х" .. p[6], "ц" .. p[1], "ц" .. p[2], "ц" .. p[3], "ц" .. p[5], "ц" .. p[6], "ш" .. p[1], "ш" .. p[2], "ы" .. p[3],
"г" .. p[3], "г" .. p[4], "з" .. p[1], "з" .. p[3], "к" .. p[3], "к" .. p[6], "п" .. p[1], "п" .. p[2], "с" .. p[1], "т" .. p[2], "х" .. p[5], "ц" .. p[4], "ч" .. p[1], "ч" .. p[2], "ч" .. p[3], "ы" .. p[1], "ы" .. p[2], "ь" .. p[1],
"",
}
},
},
}
m["ae"] = {
"Avestan",
29572,
"ira-cen",
"Avst, Gujr, Deva",
translit = {
Avst = "Avst-translit"
},
}
m["af"] = {
"Afrikaans",
14196,
"gmw-frk",
"Latn, Arab",
ancestors = "nl",
sort_key = {
Latn = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.diaer .. c.ringabove .. c.cedilla .. "'",
from = {"['ʼ]n"},
to = {"n" .. p[1]}
}
},
}
m["ak"] = {
"Akan",
28026,
"alv-ctn",
"Latn",
}
m["am"] = {
"Amharic",
28244,
"sem-eth",
"Ethi",
translit = "Ethi-translit",
}
m["an"] = {
"Aragonese",
8765,
"roa-nar",
"Latn",
}
m["ar"] = {
"Arabic",
13955,
"sem-arb",
"Arab, Hebr, Syrc, Brai, Nbat",
translit = {
Arab = "ar-translit"
},
strip_diacritics = {
Arab = "ar-stripdiacritics",
},
-- Hebr display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["as"] = {
"Assamese",
29401,
"inc-bas",
"as-Beng",
ancestors = "inc-mas",
translit = "as-translit",
}
m["av"] = {
"Avar",
29561,
"cau-ava",
"Cyrl, Latn, Arab",
ancestors = "oav",
translit = {
Cyrl = "cau-nec-translit",
Arab = "ar-translit",
},
override_translit = true,
display_text = {
Cyrl = s["cau-Cyrl-displaytext"],
},
strip_diacritics = {
Cyrl = s["cau-Cyrl-stripdiacritics"],
Latn = s["cau-Latn-stripdiacritics"],
},
sort_key = {
Cyrl = {
from = {"гъ", "гь", "гӏ", "ё", "кк", "къ", "кь", "кӏ", "лъ", "лӏ", "тӏ", "хх", "хъ", "хь", "хӏ", "цӏ", "чӏ"},
to = {"г" .. p[1], "г" .. p[2], "г" .. p[3], "е" .. p[1], "к" .. p[1], "к" .. p[2], "к" .. p[3], "к" .. p[4], "л" .. p[1], "л" .. p[2], "т" .. p[1], "х" .. p[1], "х" .. p[2], "х" .. p[3], "х" .. p[4], "ц" .. p[1], "ч" .. p[1]}
},
},
}
m["ay"] = {
"Aymara",
4627,
"sai-aym",
"Latn",
}
m["az"] = {
"Azerbaijani",
9292,
"trk-ogz",
"Latn, Cyrl, Arab",
ancestors = "trk-oat",
dotted_dotless_i = true,
strip_diacritics = {
Latn = {
from = {"ʼ"},
to = {"'"},
},
Arab = {
module = "ar-stripdiacritics",
["from"] = {
"ۆ",
"ۇ",
"وْ",
"ڲ",
"ؽ",
},
["to"] = {
"و",
"و",
"و",
"گ",
"ی",
},
},
},
display_text = {
Latn = {
from = {"'"},
to = {"ʼ"}
}
},
sort_key = {
Latn = {
from = {
"i", -- Ensure "i" comes after "ı".
"ç", "ə", "ğ", "x", "ı", "q", "ö", "ş", "ü", "w"
},
to = {
"i" .. p[1],
"c" .. p[1], "e" .. p[1], "g" .. p[1], "h" .. p[1], "i", "k" .. p[1], "o" .. p[1], "s" .. p[1], "u" .. p[1], "z" .. p[1]
}
},
Cyrl = {
from = {"ғ", "ә", "ы", "ј", "ҝ", "ө", "ү", "һ", "ҹ"},
to = {"г" .. p[1], "е" .. p[1], "и" .. p[1], "и" .. p[2], "к" .. p[1], "о" .. p[1], "у" .. p[1], "х" .. p[1], "ч" .. p[1]}
},
},
}
m["ba"] = {
"Bashkir",
13389,
"trk-kbu",
"Cyrl",
translit = "ba-translit",
override_translit = true,
sort_key = {
from = {"ғ", "ҙ", "ё", "ҡ", "ң", "ө", "ҫ", "ү", "һ", "ә"},
to = {"г" .. p[1], "д" .. p[1], "е" .. p[1], "к" .. p[1], "н" .. p[1], "о" .. p[1], "с" .. p[1], "у" .. p[1], "х" .. p[1], "э" .. p[1]}
},
}
m["be"] = {
"Belarusian",
9091,
"zle",
"Cyrl, Latn",
ancestors = "zle-mbe",
translit = {
Cyrl = "be-translit",
},
strip_diacritics = {
Cyrl = {
remove_diacritics = c.grave .. c.acute,
},
Latn = {
remove_diacritics = c.grave .. c.acute,
remove_exceptions = {"Ć", "ć", "Ń", "ń", "Ś", "ś", "Ź", "ź"},
},
},
sort_key = {
Cyrl = {
remove_diacritics = c.grave .. c.acute,
from = {"ґ", "ё", "і", "ў"},
to = {"г" .. p[1], "е" .. p[1], "и" .. p[1], "у" .. p[1]}
},
Latn = {
remove_diacritics = c.grave .. c.acute,
remove_exceptions = {"ć", "ń", "ś", "ź"},
from = {"ć", "č", "dz", "dź", "dž", "ch", "ł", "ń", "ś", "š", "ŭ", "ź", "ž"},
to = {"c" .. p[1], "c" .. p[2], "d" .. p[1], "d" .. p[2], "d" .. p[3], "h" .. p[1], "l" .. p[1], "n" .. p[1], "s" .. p[1], "s" .. p[2], "u" .. p[1], "z" .. p[1], "z" .. p[2]}
},
},
standard_chars = {
Cyrl = "АаБбВвГгДдЕеЁёЖжЗзІіЙйКкЛлМмНнОоПпРрСсТтУуЎўФфХхЦцЧчШшЫыЬьЭэЮюЯя",
Latn = "AaBbCcĆćČčDdEeFfGgHhIiJjKkLlŁłMmNnŃńOoPpRrSsŚśŠšTtUuŬŭVvYyZzŹźŽž",
(c.punc:gsub("'", "")) -- Exclude apostrophe.
},
}
m["bg"] = {
"Bulgarian",
7918,
"zls",
"Cyrl",
ancestors = "cu-bgm",
translit = "bg-translit",
strip_diacritics = {
remove_diacritics = c.grave .. c.acute,
remove_exceptions = {"%f[^%z%s]ѝ%f[%z%s]"},
},
sort_key = {
remove_diacritics = c.grave .. c.acute,
remove_exceptions = {"%f[^%z%s]ѝ%f[%z%s]"},
},
standard_chars = "АаБбВвГгДдЕеЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЬьЮюЯя" .. c.punc,
}
m["bh"] = {
"Bihari",
135305,
"inc-eas",
"Deva",
}
m["bi"] = {
"Bislama",
35452,
"crp",
"Latn",
ancestors = "en",
}
m["bm"] = {
"Bambara",
33243,
"dmn-emn",
"Latn, Nkoo",
sort_key = {
Latn = {
from = {"ɛ", "ɲ", "ŋ", "ɔ"},
to = {"e" .. p[1], "n" .. p[1], "n" .. p[2], "o" .. p[1]}
},
},
}
m["bn"] = {
"Bengali",
9610,
"inc-bas",
"Beng, Newa",
ancestors = "inc-mbn",
translit = {
Beng = "bn-translit"
},
}
m["bo"] = {
"Tibetan",
34271,
"sit-tib",
"Tibt", -- sometimes Deva?
ancestors = "xct",
override_translit = true,
-- Tibt translit, display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["br"] = {
"Breton",
12107,
"cel-brs",
"Latn",
ancestors = "xbm",
sort_key = {
from = {"ch", "c['ʼ’]h"},
to = {"c" .. p[1], "c" .. p[2]}
},
}
m["ca"] = {
"Catalan",
7026,
"roa-ocr",
"Latn",
ancestors = "roa-oca",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.diaer .. c.cedilla .. "·"},
standard_chars = "AaÀàBbCcÇçDdEeÉéÈèFfGgHhIiÍíÏïJjLlMmNnOoÓóÒòPpQqRrSsTtUuÚúÜüVvXxYyZz·" .. c.punc,
}
m["ce"] = {
"Chechen",
33350,
"cau-vay",
"Cyrl, Latn, Arab",
translit = {
Cyrl = "cau-nec-translit",
Arab = "ar-translit",
},
override_translit = true,
display_text = {
Cyrl = s["cau-Cyrl-displaytext"]
},
strip_diacritics = {
Cyrl = s["cau-Cyrl-stripdiacritics"],
Latn = s["cau-Latn-stripdiacritics"],
},
sort_key = {
Cyrl = {
from = {"аь", "гӏ", "ё", "кх", "къ", "кӏ", "оь", "пӏ", "тӏ", "уь", "хь", "хӏ", "цӏ", "чӏ", "юь", "яь"},
to = {"а" .. p[1], "г" .. p[1], "е" .. p[1], "к" .. p[1], "к" .. p[2], "к" .. p[3], "о" .. p[1], "п" .. p[1], "т" .. p[1], "у" .. p[1], "х" .. p[1], "х" .. p[2], "ц" .. p[1], "ч" .. p[1], "ю" .. p[1], "я" .. p[1]}
},
},
}
m["ch"] = {
"Chamorro",
33262,
"poz",
"Latn",
sort_key = {
remove_diacritics = "'",
from = {"å", "ch", "ñ", "ng"},
to = {"a" .. p[1], "c" .. p[1], "n" .. p[1], "n" .. p[2]}
},
}
m["co"] = {
"Corsican",
33111,
"roa-itr",
"Latn",
sort_key = {
from = {"chj", "ghj", "sc", "sg"},
to = {"c" .. p[1], "g" .. p[1], "s" .. p[1], "s" .. p[2]}
},
standard_chars = "AaÀàBbCcDdEeÈèFfGgHhIiÌìÏïJjLlMmNnOoÒòPpQqRrSsTtUuÙùÜüVvZz" .. c.punc,
}
m["cr"] = {
"Cree",
33390,
"alg",
"Latn, Cans",
translit = {
Cans = "cr-translit"
},
}
m["cs"] = {
"Czech",
9056,
"zlw",
"Latn",
ancestors = "cs-ear",
sort_key = {
from = {"á", "č", "ď", "é", "ě", "ch", "í", "ň", "ó", "ř", "š", "ť", "ú", "ů", "ý", "ž"},
to = {"a" .. p[1], "c" .. p[1], "d" .. p[1], "e" .. p[1], "e" .. p[2], "h" .. p[1], "i" .. p[1], "n" .. p[1], "o" .. p[1], "r" .. p[1], "s" .. p[1], "t" .. p[1], "u" .. p[1], "u" .. p[2], "y" .. p[1], "z" .. p[1]}
},
standard_chars = "AaÁáBbCcČčDdĎďEeÉéĚěFfGgHhIiÍíJjKkLlMmNnŇňOoÓóPpRrŘřSsŠšTtŤťUuÚúŮůVvYyÝýZzŽž" .. c.punc,
}
m["cu"] = {
"Old Church Slavonic",
35499,
"zls",
"Cyrs, Glag, Zname",
translit = {
Cyrs = "Cyrs-translit",
Glag = "Glag-translit"
},
-- Cyrs strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["cv"] = {
"Chuvash",
33348,
"trk-ogr",
"Cyrl",
ancestors = "cv-mid",
translit = "cv-translit",
override_translit = true,
sort_key = {
from = {"ӑ", "ё", "ӗ", "ҫ", "ӳ"},
to = {"а" .. p[1], "е" .. p[1], "е" .. p[2], "с" .. p[1], "у" .. p[1]}
},
}
m["cy"] = {
"Welsh",
9309,
"cel-brw",
"Latn",
ancestors = "wlm",
sort_key = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer .. "'",
from = {"ch", "dd", "ff", "ng", "ll", "ph", "rh", "th"},
to = {"c" .. p[1], "d" .. p[1], "f" .. p[1], "g" .. p[1], "l" .. p[1], "p" .. p[1], "r" .. p[1], "t" .. p[1]}
},
standard_chars = "ÂâAaBbCcDdEeÊêFfGgHhIiÎîLlMmNnOoÔôPpRrSsTtUuÛûWwŴŵYyŶŷ" .. c.punc,
}
m["da"] = {
"Danish",
9035,
"gmq-eas",
"Latn",
ancestors = "gmq-oda",
sort_key = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron .. c.dacute .. c.caron .. c.cedilla,
remove_exceptions = {"å"},
from = {"æ", "ø", "å"},
to = {"z" .. p[1], "z" .. p[2], "z" .. p[3]}
},
standard_chars = "AaBbDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvYyÆæØøÅå" .. c.punc,
}
m["de"] = {
"German",
188,
"gmw-hgm",
"Latn, Latf, Brai",
ancestors = "de-ear",
sort_key = {
Latn = s["de-Latn-sortkey"],
Latf = s["de-Latn-sortkey"],
},
standard_chars = {
Latn = s["de-Latn-standardchars"],
Latf = s["de-Latn-standardchars"],
Brai = c.braille,
c.punc
}
}
m["dv"] = {
"Dhivehi",
32656,
"inc-ins",
"Thaa, Diak",
translit = {
Thaa = "dv-translit",
Diak = "Diak-translit",
},
ancestors = "dv-old",
override_translit = true,
}
m["dz"] = {
"Dzongkha",
33081,
"sit-tib",
"Tibt",
ancestors = "xct",
override_translit = true,
-- Tibt translit, display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["ee"] = {
"Ewe",
30005,
"alv-gbe",
"Latn",
sort_key = {
remove_diacritics = c.tilde,
from = {"ɖ", "dz", "ɛ", "ƒ", "gb", "ɣ", "kp", "ny", "ŋ", "ɔ", "ts", "ʋ"},
to = {"d" .. p[1], "d" .. p[2], "e" .. p[1], "f" .. p[1], "g" .. p[1], "g" .. p[2], "k" .. p[1], "n" .. p[1], "n" .. p[2], "o" .. p[1], "t" .. p[1], "v" .. p[1]}
},
}
m["el"] = {
"Greek",
9129,
"grk",
"Grek, Polyt, Brai",
ancestors = "el-kth",
translit = "el-translit",
override_translit = true,
-- Grek and Polyt display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
standard_chars = {
Grek = "΅·ͺ΄ΑαΆάΒβΓγΔδΕεέΈΖζΗηΉήΘθΙιΊίΪϊΐΚκΛλΜμΝνΞξΟοΌόΠπΡρΣσςΤτΥυΎύΫϋΰΦφΧχΨψΩωΏώ",
Brai = c.braille,
c.punc
},
}
m["en"] = {
"English",
1860,
"gmw-ang",
"Latn, Brai, Shaw, Dsrt", -- entries in Shaw or Dsrt might require prior discussion
wikimedia_codes = "en, simple",
ancestors = "en-ear",
sort_key = {
Latn = {
-- Many of these are needed for sorting language names.
remove_diacritics = "'\"%-%.,%s·ʻʼ" .. c.diacritics,
-- These are found in pagenames.
from = {"[ɒæ🅱¢©ᴄðđəǝɜɡħʜıɨłŋɲøɔœꝑꝓꝕßʋ]"},
to = {{
["ɒ"] = "a", ["æ"] = "ae", ["🅱"] = "b", ["¢"] = "c", ["©"] = "c",
["ᴄ"] = "c", ["ð"] = "d", ["đ"] = "d", ["ə"] = "e", ["ǝ"] = "e",
["ɜ"] = "e", ["ɡ"] = "g", ["ħ"] = "h", ["ʜ"] = "h", ["ı"] = "i",
["ɨ"] = "i", ["ł"] = "l", ["ŋ"] = "n", ["ɲ"] = "n", ["ø"] = "o",
["ɔ"] = "o", ["œ"] = "oe", ["ꝑ"] = "p", ["ꝓ"] = "p", ["ꝕ"] = "p",
["ß"] = "ss", ["ʋ"] = "v",
}},
},
},
standard_chars = {
Latn = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz",
Brai = c.braille,
c.punc
},
}
m["eo"] = {
"Esperanto",
143,
"art",
"Latn",
sort_key = {
remove_diacritics = c.grave .. c.acute,
from = {"ĉ", "ĝ", "ĥ", "ĵ", "ŝ", "ŭ"},
to = {"c" .. p[1], "g" .. p[1], "h" .. p[1], "j" .. p[1], "s" .. p[1], "u" .. p[1]}
},
standard_chars = "AaBbCcĈĉDdEeFfGgĜĝHhĤĥIiJjĴĵKkLlMmNnOoPpRrSsŜŝTtUuŬŭVvZz" .. c.punc,
}
m["es"] = {
"Spanish",
1321,
"roa-cas",
"Latn, Brai",
ancestors = "es-ear",
sort_key = {
Latn = {
remove_exceptions = {"ñ"},
remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron .. c.diaer .. c.cedilla,
from = {"ª", "æ", "ñ", "º", "œ"},
to = {"a", "ae", "n" .. p[1], "o", "oe"}
},
},
standard_chars = {
Latn = "AaÁáBbCcDdEeÉéFfGgHhIiÍíJjLlMmNnÑñOoÓóPpQqRrSsTtUuÚúÜüVvXxYyZz",
Brai = c.braille,
c.punc
},
}
m["et"] = {
"Estonian",
9072,
"urj-fin",
"Latn",
sort_key = {
from = {
"š", "ž", "õ", "ä", "ö", "ü", -- 2 chars
"z" -- 1 char
},
to = {
"s" .. p[1], "s" .. p[3], "w" .. p[1], "w" .. p[2], "w" .. p[3], "w" .. p[4],
"s" .. p[2]
}
},
standard_chars = "AaBbDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvÕõÄäÖöÜü" .. c.punc,
}
m["eu"] = {
"Basque",
8752,
"euq",
"Latn",
sort_key = {
from = {"ç", "ñ"},
to = {"c" .. p[1], "n" .. p[1]}
},
standard_chars = "AaBbDdEeFfGgHhIiJjKkLlMmNnÑñOoPpRrSsTtUuXxZz" .. c.punc,
}
m["fa"] = {
"Persian",
9168,
"ira-swi",
"Arab, Hebr",
ancestors = "fa-cls",
strip_diacritics = {
Arab = {
-- character "ۂ" code U+06C2 to "ه" and "هٔ" (U+0647 + U+0654) to "ه"; hamzatu l-waṣli to a regular alif
from = {"هٔ", "ٱ"}, -- character "ۂ" code U+06C2 to "ه"; hamzatu l-waṣli to a regular alif
to = {"ه", "ا"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.superalef,
},
},
-- Hebr display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["ff"] = {
"Fula",
33454,
"alv-fwo",
"Latn, Adlm",
}
m["fi"] = {
"Finnish",
1412,
"urj-fin",
"Latn",
display_text = {
from = {"'"},
to = {"’"}
},
strip_diacritics = { -- used to indicate gemination of the next consonant
remove_diacritics = "ˣ",
from = {"’"},
to = {"'"},
},
sort_key = { -- [[Appendix:Finnish alphabet#Collation]] + "aͤ" and "oͤ" as historical variants of "ä" and "ö".
remove_diacritics = "'’:" .. c.diacritics,
remove_exceptions = {
"a[" .. c.ringabove .. c.diaer .. c.small_e .. "]", -- åäaͤ
"o[" .. c.diaer .. c.tilde .. c.dacute .. c.small_e .. "]", -- öõőoͤ
"u[" .. c.diaer .. c.dacute .. "]" -- üű
},
from = {"æ", "[ðđ]", "ł", "ŋ", "œ", "ß", "þ", "u[" .. c.diaer .. c.dacute .. "]", "å", "aͤ", "o[" .. c.tilde .. c.dacute .. c.small_e .. "]", "ø", "(.)['%-]"},
to = {"ae", "d", "l", "n", "oe", "ss", "th", "y", "z" .. p[1], "ä", "ö", "ö", "%1"}
},
standard_chars = "AaBbDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvYyÄäÖö" .. c.punc,
}
m["fj"] = {
"Fijian",
33295,
"poz-pcc",
"Latn",
}
m["fo"] = {
"Faroese",
25258,
"gmq-ins",
"Latn",
sort_key = {
from = {"á", "ð", "í", "ó", "ú", "ý", "æ", "ø"},
to = {"a" .. p[1], "d" .. p[1], "i" .. p[1], "o" .. p[1], "u" .. p[1], "y" .. p[1], "z" .. p[1], "z" .. p[2]}
},
standard_chars = "AaÁáBbDdÐðEeFfGgHhIiÍíJjKkLlMmNnOoÓóPpRrSsTtUuÚúVvYyÝýÆæØø" .. c.punc,
}
m["fr"] = {
"French",
150,
"roa-oil",
"Latn, Brai",
ancestors = "frm",
sort_key = {
Latn = s["roa-oil-sortkey"]
},
standard_chars = {
Latn = "AaÀàÂâBbCcÇçDdEeÉéÈèÊêËëFfGgHhIiÎîÏïJjLlMmNnOoÔôŒœPpQqRrSsTtUuÙùÛûÜüVvXxYyZz",
Brai = c.braille,
c.punc
},
}
m["fy"] = {
"West Frisian",
27175,
"gmw-fri",
"Latn",
sort_key = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer,
from = {"y"},
to = {"i"}
},
standard_chars = "AaâäàÆæBbCcDdEeéêëèFfGgHhIiïìYyỳJjKkLlMmNnOoôöòPpRrSsTtUuúûüùVvWwZz" .. c.punc,
}
m["ga"] = {
"Irish",
9142,
"cel-gae",
"Latn, Latg",
ancestors = "mga",
sort_key = {
remove_diacritics = c.acute,
from = {"ḃ", "ċ", "ḋ", "ḟ", "ġ", "ṁ", "ṗ", "ṡ", "ṫ"},
to = {"bh", "ch", "dh", "fh", "gh", "mh", "ph", "sh", "th"}
},
standard_chars = "AaÁáBbCcDdEeÉéFfGgHhIiÍíLlMmNnOoÓóPpRrSsTtUuÚúVv" .. c.punc,
}
m["gd"] = {
"Scottish Gaelic",
9314,
"cel-gae",
"Latn, Latg",
ancestors = "mga",
sort_key = {remove_diacritics = c.grave .. c.acute},
standard_chars = "AaÀàBbCcDdEeÈèFfGgHhIiÌìLlMmNnOoÒòPpRrSsTtUuÙù" .. c.punc,
}
m["gl"] = {
"Galician",
9307,
"roa-gap",
"Latn",
sort_key = {
remove_diacritics = c.acute,
from = {"ñ"},
to = {"n" .. p[1]}
},
standard_chars = "AaÁáBbCcDdEeÉéFfGgHhIiÍíÏïLlMmNnÑñOoÓóPpQqRrSsTtUuÚúÜüVvXxZz" .. c.punc,
}
m["gu"] = {
"Gujarati",
5137,
"inc-wes",
"Arab, Gujr",
ancestors = "inc-mgu",
translit = {
Gujr = "gu-translit",
},
strip_diacritics = {
Arab = {remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.kasra .. c.shadda .. c.sukun},
Gujr = {remove_diacritics = "઼"},
},
}
m["gv"] = {
"Manx",
12175,
"cel-gae",
"Latn",
ancestors = "mga",
sort_key = {remove_diacritics = c.cedilla .. "-"},
standard_chars = "AaBbCcÇçDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwYy" .. c.punc,
}
m["ha"] = {
"Hausa",
56475,
"cdc-wst",
"Latn, Arab",
strip_diacritics = {
Latn = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron}
},
sort_key = {
Latn = {
from = {"ɓ", "b'", "ɗ", "d'", "ƙ", "k'", "sh", "ƴ", "'y"},
to = {"b" .. p[1], "b" .. p[2], "d" .. p[1], "d" .. p[2], "k" .. p[1], "k" .. p[2], "s" .. p[1], "y" .. p[1], "y" .. p[2]}
},
},
}
m["he"] = {
"Hebrew",
9288,
"sem-can",
"Hebr, Phnx, Brai, Samr",
ancestors = "he-med",
-- Hebr display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
-- Samr strip_diacritics, sort_key in [[Module:scripts/data]]
-- Phnx translit in [[Module:scripts/data]] (NOTE: not present before, presumably an accidental omission)
}
m["hi"] = {
"Hindi",
1568,
"inc-hnd",
"Deva, Kthi, Newa",
translit = {
Deva = "hi-translit"
},
standard_chars = {
Deva = "अआइईउऊएऐओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलवशषसहत्रज्ञक्षक़ख़ग़ज़झ़ड़ढ़फ़काखागाघाङाचाछाजाझाञाटाठाडाढाणाताथादाधानापाफाबाभामायारालावाशाषासाहात्राज्ञाक्षाक़ाख़ाग़ाज़ाझ़ाड़ाढ़ाफ़ाकिखिगिघिङिचिछिजिझिञिटिठिडिढिणितिथिदिधिनिपिफिबिभिमियिरिलिविशिषिसिहित्रिज्ञिक्षिक़िख़िग़िज़िझ़िड़िढ़िफ़िकीखीगीघीङीचीछीजीझीञीटीठीडीढीणीतीथीदीधीनीपीफीबीभीमीयीरीलीवीशीषीसीहीत्रीज्ञीक्षीक़ीख़ीग़ीज़ीझ़ीड़ीढ़ीफ़ीकुखुगुघुङुचुछुजुझुञुटुठुडुढुणुतुथुदुधुनुपुफुबुभुमुयुरुलुवुशुषुसुहुत्रुज्ञुक्षुक़ुख़ुग़ुज़ुझ़ुड़ुढ़ुफ़ुकूखूगूघूङूचूछूजूझूञूटूठूडूढूणूतूथूदूधूनूपूफूबूभूमूयूरूलूवूशूषूसूहूत्रूज्ञूक्षूक़ूख़ूग़ूज़ूझ़ूड़ूढ़ूफ़ूकेखेगेघेङेचेछेजेझेञेटेठेडेढेणेतेथेदेधेनेपेफेबेभेमेयेरेलेवेशेषेसेहेत्रेज्ञेक्षेक़ेख़ेग़ेज़ेझ़ेड़ेढ़ेफ़ेकैखैगैघैङैचैछैजैझैञैटैठैडैढैणैतैथैदैधैनैपैफैबैभैमैयैरैलैवैशैषैसैहैत्रैज्ञैक्षैक़ैख़ैग़ैज़ैझ़ैड़ैढ़ैफ़ैकोखोगोघोङोचोछोजोझोञोटोठोडोढोणोतोथोदोधोनोपोफोबोभोमोयोरोलोवोशोषोसोहोत्रोज्ञोक्षोक़ोख़ोग़ोज़ोझ़ोड़ोढ़ोफ़ोकौखौगौघौङौचौछौजौझौञौटौठौडौढौणौतौथौदौधौनौपौफौबौभौमौयौरौलौवौशौषौसौहौत्रौज्ञौक्षौक़ौख़ौग़ौज़ौझ़ौड़ौढ़ौफ़ौक्ख्ग्घ्ङ्च्छ्ज्झ्ञ्ट्ठ्ड्ढ्ण्त्थ्द्ध्न्प्फ्ब्भ्म्य्र्ल्व्श्ष्स्ह्त्र्ज्ञ्क्ष्क़्ख़्ग़्ज़्झ़्ड़्ढ़्फ़्।॥०१२३४५६७८९॰",
c.punc
},
}
m["ho"] = {
"Hiri Motu",
33617,
"crp",
"Latn",
ancestors = "meu",
}
m["ht"] = {
"Haitian Creole",
33491,
"crp",
"Latn",
ancestors = "ht-sdm",
sort_key = {
from = {
"oun", -- 3 chars
"an", "ch", "è", "en", "ng", "ò", "on", "ou", "ui" -- 2 chars
},
to = {
"o" .. p[4],
"a" .. p[1], "c" .. p[1], "e" .. p[1], "e" .. p[2], "n" .. p[1], "o" .. p[1], "o" .. p[2], "o" .. p[3], "u" .. p[1]
}
},
}
m["hu"] = {
"Hungarian",
9067,
"urj-ugr",
"Latn, Hung",
ancestors = "ohu",
sort_key = {
Latn = {
from = {
"dzs", -- 3 chars
"á", "cs", "dz", "é", "gy", "í", "ly", "ny", "ó", "ö", "ő", "sz", "ty", "ú", "ü", "ű", "zs", -- 2 chars
},
to = {
"d" .. p[2],
"a" .. p[1], "c" .. p[1], "d" .. p[1], "e" .. p[1], "g" .. p[1], "i" .. p[1], "l" .. p[1], "n" .. p[1], "o" .. p[1], "o" .. p[2], "o" .. p[3], "s" .. p[1], "t" .. p[1], "u" .. p[1], "u" .. p[2], "u" .. p[3], "z" .. p[1],
}
},
},
standard_chars = {
Latn = "AaÁáBbCcDdEeÉéFfGgHhIiÍíJjKkLlMmNnOoÓóÖöŐőPpQqRrSsTtUuÚúÜüŰűVvWwXxYyZz",
c.punc
},
}
m["hy"] = {
"Armenian",
8785,
"hyx",
"Armn, Brai",
ancestors = "axm",
-- Armn translit in [[Module:scripts/data]]
override_translit = true,
strip_diacritics = {
Armn = {
remove_diacritics = "՛՜՞՟",
from = {"եւ", "<sup>յ</sup>", "<sup>ի</sup>", "<sup>է</sup>", "յ̵", "ՙ", "՚"},
to = {"և", "յ", "ի", "է", "ֈ", "ʻ", "’"}
},
},
sort_key = {
Armn = {
from = {
"ու", "եւ", -- 2 chars
"և" -- 1 char
},
to = {
"ւ", "եվ",
"եվ"
}
},
},
}
m["hz"] = {
"Herero",
33315,
"bnt-swb",
"Latn",
}
m["ia"] = {
"Interlingua",
35934,
"art",
"Latn",
}
m["id"] = {
"Indonesian",
9240,
"poz-mly",
"Latn",
ancestors = "ms",
standard_chars = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz" .. c.punc,
}
m["ie"] = {
"Interlingue",
35850,
"art",
"Latn",
type = "appendix-constructed",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ},
}
m["ig"] = {
"Igbo",
33578,
"alv-igb",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.macron},
sort_key = {
from = {"gb", "gh", "gw", "ị", "kp", "kw", "ṅ", "nw", "ny", "ọ", "sh", "ụ"},
to = {"g" .. p[1], "g" .. p[2], "g" .. p[3], "i" .. p[1], "k" .. p[1], "k" .. p[2], "n" .. p[1], "n" .. p[2], "n" .. p[3], "o" .. p[1], "s" .. p[1], "u" .. p[1]}
},
}
m["ii"] = {
"Nuosu",
34235,
"tbq-nlo",
"Yiii",
translit = "ii-translit",
}
m["ik"] = {
"Inupiaq",
27183,
"esx-inu",
"Latn",
sort_key = {
from = {
"ch", "ġ", "dj", "ḷ", "ł̣", "ñ", "ng", "r̂", "sr", "zr", -- 2 chars
"ł", "ŋ", "ʼ" -- 1 char
},
to = {
"c" .. p[1], "g" .. p[1], "h" .. p[1], "l" .. p[1], "l" .. p[3], "n" .. p[1], "n" .. p[2], "r" .. p[1], "s" .. p[1], "z" .. p[1],
"l" .. p[2], "n" .. p[2], "z" .. p[2]
}
},
}
m["io"] = {
"Ido",
35224,
"art",
"Latn",
}
m["is"] = {
"Icelandic",
294,
"gmq-ins",
"Latn",
sort_key = {
from = {"á", "ð", "é", "í", "ó", "ú", "ý", "þ", "æ", "ö"},
to = {"a" .. p[1], "d" .. p[1], "e" .. p[1], "i" .. p[1], "o" .. p[1], "u" .. p[1], "y" .. p[1], "z" .. p[1], "z" .. p[2], "z" .. p[3]}
},
standard_chars = "AaÁáBbDdÐðEeÉéFfGgHhIiÍíJjKkLlMmNnOoÓóPpRrSsTtUuÚúVvXxYyÝýÞþÆæÖö" .. c.punc,
}
m["it"] = {
"Italian",
652,
"roa-itr",
"Latn",
ancestors = "roa-oit",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer .. c.ringabove},
standard_chars = "AaÀàBbCcDdEeÈèÉéFfGgHhIiÌìLlMmNnOoÒòPpQqRrSsTtUuÙùVvZz" .. c.punc,
}
m["iu"] = {
"Inuktitut",
29921,
"esx-inu",
"Cans, Latn",
translit = {
Cans = "cr-translit"
},
override_translit = true,
}
m["ja"] = {
"Japanese",
5287,
"jpx",
"Jpan, Latn, Brai",
ancestors = "ja-ear",
translit = s["jpx-translit"],
link_tr = true,
display_text = s["jpx-displaytext"],
strip_diacritics = s["jpx-stripdiacritics"],
sort_key = s["jpx-sortkey"],
}
m["jv"] = {
"Javanese",
33549,
"poz",
"Latn, Java, Arab",
ancestors = "kaw",
translit = {
Java = "jv-translit"
},
link_tr = true,
strip_diacritics = {
Latn = {remove_diacritics = c.circ} -- Modern jv don't use ê
},
sort_key = {
Latn = {
from = {"å", "dh", "é", "è", "ng", "ny", "th"},
to = {"a" .. p[1], "d" .. p[1], "e" .. p[1], "e" .. p[2], "n" .. p[1], "n" .. p[2], "t" .. p[1]}
},
},
}
m["ka"] = {
"Georgian",
8108,
"ccs-gzn",
"Geor, Geok, Hebr", -- Hebr is used to write Judeo-Georgian
ancestors = "ka-mid",
-- Geor, Geok translit in [[Module:scripts/data]]
override_translit = true,
strip_diacritics = {
Geor = s["ka-stripdiacritics"],
Geok = s["ka-stripdiacritics"],
},
-- Hebr display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["kg"] = {
"Kongo",
33702,
"bnt-kng",
"Latn",
}
m["ki"] = {
"Kikuyu",
33587,
"bnt-kka",
"Latn",
}
m["kj"] = {
"Kwanyama",
1405077,
"bnt-ova",
"Latn",
}
m["kk"] = {
"Kazakh",
9252,
"trk-kno",
"Cyrl, Latn, Arab",
translit = "kk-translit",
-- override_translit = true,
sort_key = {
Cyrl = {
from = {"ә", "ғ", "ё", "қ", "ң", "ө", "ұ", "ү", "һ", "і"},
to = {"а" .. p[1], "г" .. p[1], "е" .. p[1], "к" .. p[1], "н" .. p[1], "о" .. p[1], "у" .. p[1], "у" .. p[2], "х" .. p[1], "ы" .. p[1]}
},
},
standard_chars = {
Cyrl = "АаӘәБбВвГгҒғДдЕеЁёЖжЗзИиЙйКкҚқЛлМмНнҢңОоӨөПпРрСсТтУуҰұҮүФфХхҺһЦцЧчШшЩщЪъЫыІіЬьЭэЮюЯя",
c.punc
},
}
m["kl"] = {
"Greenlandic",
25355,
"esx-inu",
"Latn",
sort_key = {
from = {"æ", "ø", "å"},
to = {"z" .. p[1], "z" .. p[2], "z" .. p[3]}
}
}
m["km"] = {
"Khmer",
9205,
"mkh-kmr",
"Khmr",
ancestors = "xhm",
translit = "km-translit", --This might yield unwanted result unless its entry has {{km-IPA}}.
}
m["kn"] = {
"Kannada",
33673,
"dra-kan",
"Knda, Tutg",
ancestors = "dra-mkn",
-- Knda translit in [[Module:scripts/data]]
}
m["ko"] = {
"Korean",
9176,
"qfa-kor",
"Kore, Brai",
ancestors = "ko-ear",
translit = {
Kore = "ko-translit",
},
-- Kore strip_diacritics in [[Module:scripts/data]]
}
m["kr"] = {
"Kanuri",
36094,
"ssa-sah",
"Latn, Arab",
-- the sortkey and strip_diacritics are only for standard Kanuri; when dialectal entries get added, someone will have to work out how the dialects should be represented orthographically
strip_diacritics = {
Latn = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.breve}
},
sort_key = {
Latn = {
from = {"ǝ", "ny", "ɍ", "sh"},
to = {"e" .. p[1], "n" .. p[1], "r" .. p[1], "s" .. p[1]}
},
},
}
m["ks"] = {
"Kashmiri",
33552,
"inc-kas",
"Aran, Deva, Shrd, Latn",
translit = {
Aran = "ks-Aran-translit",
Deva = "ks-Deva-translit",
-- Shrd translit in [[Module:scripts/data]]
},
}
-- "kv" is treated as "koi", "kpv", see [[WT:LT]]
m["kw"] = {
"Cornish",
25289,
"cel-brs",
"Latn",
ancestors = "cnx",
sort_key = {
from = {"ch"},
to = {"c" .. p[1]}
},
}
m["ky"] = {
"Kyrgyz",
9255,
"trk-kkp",
"Cyrl, Latn, Arab",
translit = {
Cyrl = "ky-translit"
},
override_translit = true,
sort_key = {
Cyrl = {
from = {"ё", "ң", "ө", "ү"},
to = {"е" .. p[1], "н" .. p[1], "о" .. p[1], "у" .. p[1]}
},
},
}
m["la"] = {
"Latin",
397,
"itc-laf",
"Latn, Ital",
ancestors = "itc-ola",
-- Ital translit in [[Module:scripts/data]] (NOTE: formerly not present, probably an accidental omission)
display_text = {
Latn = s["itc-Latn-displaytext"]
},
strip_diacritics = {
Latn = s["itc-Latn-stripdiacritics"]
},
sort_key = {
Latn = s["itc-Latn-sortkey"]
},
standard_chars = {
Latn = "AaBbCcDdEeFfGgHhIiLlMmNnOoPpQqRrSsTtUuVvXx",
c.punc
},
}
m["lb"] = {
"Luxembourgish",
9051,
"gmw-hgm",
"Latn, Brai",
ancestors = "gmw-cfr",
sort_key = {
Latn = {
from = {"ä", "ë", "é"},
to = {"z" .. p[1], "z" .. p[2], "z" .. p[3]}
},
},
}
m["lg"] = {
"Luganda",
33368,
"bnt-nyg",
"Latn",
strip_diacritics = {remove_diacritics = c.acute .. c.circ},
sort_key = {
from = {"ŋ"},
to = {"n" .. p[1]}
},
}
m["li"] = {
"Limburgish",
102172,
"gmw-frk",
"Latn",
ancestors = "dum",
}
m["ln"] = {
"Lingala",
36217,
"bnt-bmo",
"Latn",
sort_key = {
remove_diacritics = c.acute .. c.circ .. c.caron,
from = {"ɛ", "gb", "mb", "mp", "nd", "ng", "nk", "ns", "nt", "ny", "nz", "ɔ"},
to = {"e" .. p[1], "g" .. p[1], "m" .. p[1], "m" .. p[2], "n" .. p[1], "n" .. p[2], "n" .. p[3], "n" .. p[4], "n" .. p[5], "n" .. p[6], "n" .. p[7], "o" .. p[1]}
},
}
m["lo"] = {
"Lao",
9211,
"tai-swe",
"Laoo", -- also Tai Noi/Lao Buhan script
translit = "lo-translit",
sort_key = "Laoo-sortkey",
standard_chars = "0-9ກຂຄງຈຊຍດຕຖທນບປຜຝພຟມຢຣລວສຫອຮຯ-ໝ" .. c.punc,
}
m["lt"] = {
"Lithuanian",
9083,
"bat-eas",
"Latn",
ancestors = "olt",
display_text = "lt-common",
strip_diacritics = "lt-common",
sort_key = "lt-common",
standard_chars = "AaĄąBbCcČčDdEeĘęĖėFfGgHhIiĮįYyJjKkLlMmNnOoPpRrSsŠšTtUuŲųŪūVvZzŽž" .. c.punc,
}
m["lu"] = {
"Luba-Katanga",
36157,
"bnt-lub",
"Latn",
}
m["lv"] = {
"Latvian",
9078,
"bat-eas",
"Latn",
strip_diacritics = {
-- This attempts to convert vowels with tone marks to vowels either with or without macrons. Specifically, there should be no macrons if the vowel is part of a diphthong (including resonant diphthongs such pìrksts -> pirksts not #pīrksts). What we do is first convert the vowel + tone mark to a vowel + tilde in a decomposed fashion, then remove the tilde in diphthongs, then convert the remaining vowel + tilde sequences to macroned vowels, then delete any other tilde. We leave already-macroned vowels alone: Both e.g. ar and ār occur before consonants. FIXME: This still might not be sufficient.
from = {"([Ee])" .. c.cedilla, "[" .. c.grave .. c.circ .. c.tilde .."]", "([aAeEiIoOuU])" .. c.tilde .."?([lrnmuiLRNMUI])" .. c.tilde .. "?([^aAeEiIoOuU])", "([aAeEiIoOuU])" .. c.tilde .."?([lrnmuiLRNMUI])" .. c.tilde .."?$", "([iI])" .. c.tilde .. "?([eE])" .. c.tilde .. "?", "([aAeEiIuU])" .. c.tilde, c.tilde},
to = {"%1", c.tilde, "%1%2%3", "%1%2", "%1%2", "%1" .. c.macron}
},
sort_key = {
from = {"ā", "č", "ē", "ģ", "ī", "ķ", "ļ", "ņ", "š", "ū", "ž"},
to = {"a" .. p[1], "c" .. p[1], "e" .. p[1], "g" .. p[1], "i" .. p[1], "k" .. p[1], "l" .. p[1], "n" .. p[1], "s" .. p[1], "u" .. p[1], "z" .. p[1]}
},
standard_chars = "AaĀāBbCcČčDdEeĒēFfGgĢģHhIiĪīJjKkĶķLlĻļMmNnŅņOoPpRrSsŠšTtUuŪūVvZzŽž" .. c.punc,
}
m["mg"] = {
"Malagasy",
7930,
"poz-bre",
"Latn, Arab",
}
m["mh"] = {
"Marshallese",
36280,
"poz-mic",
"Latn",
sort_key = {
from = {"ā", "ļ", "m̧", "ņ", "n̄", "o̧", "ō", "ū"},
to = {"a" .. p[1], "l" .. p[1], "m" .. p[1], "n" .. p[1], "n" .. p[2], "o" .. p[1], "o" .. p[2], "u" .. p[1]}
},
}
m["mi"] = {
"Māori",
36451,
"poz-pep",
"Latn",
sort_key = {
remove_diacritics = c.macron,
from = {"ng", "wh"},
to = {"n" .. p[1], "w" .. p[1]}
},
}
m["mk"] = {
"Macedonian",
9296,
"zls",
"Cyrl, Polyt",
ancestors = "cu",
translit = {
Cyrl = "mk-translit",
-- FIXME: formerly no translit specified for Polyt; unclear if the default [[Module:grc-translit]] is
-- acceptable, so we disable it for now
Polyt = false,
},
strip_diacritics = {
Cyrl = {
remove_diacritics = c.acute,
remove_exceptions = {"Ѓ", "ѓ", "Ќ", "ќ"}
},
},
sort_key = {
Cyrl = {
remove_diacritics = c.grave,
remove_exceptions = {"ѓ", "ќ"},
from = {"ѓ", "ѕ", "ј", "љ", "њ", "ќ", "џ"},
to = {"д" .. p[1], "з" .. p[1], "и" .. p[1], "л" .. p[1], "н" .. p[1], "т" .. p[1], "ч" .. p[1]}
},
},
-- Polyt display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
standard_chars = {
Cyrl = "АаБбВвГгДдЃѓЕеЖжЗзЅѕИиЈјКкЛлЉљМмНнЊњОоПпРрСсТтЌќУуФфХхЦцЧчЏџШш",
c.punc
},
}
m["ml"] = {
"Malayalam",
36236,
"dra-mal",
"Mlym",
override_translit = true,
-- Mlym translit in [[Module:scripts/data]]
}
m["mn"] = {
"Mongolian",
9246,
"xgn-cen",
"Cyrl, Mong, Latn, Brai",
ancestors = "cmg",
translit = {
Cyrl = "mn-translit",
-- Mong translit in [[Module:scripts/data]]
},
override_translit = true,
-- Mong display_text and strip_diacritics in [[Module:scripts/data]]
strip_diacritics = {
Cyrl = {remove_diacritics = c.grave .. c.acute},
},
sort_key = {
Cyrl = {
remove_diacritics = c.grave,
from = {"ё", "ө", "ү"},
to = {"е" .. p[1], "о" .. p[1], "у" .. p[1]}
},
},
standard_chars = {
Cyrl = "АаБбВвГгДдЕеЁёЖжЗзИиЙйЛлМмНнОоӨөРрСсТтУуҮүХхЦцЧчШшЫыЬьЭэЮюЯя—",
Brai = c.braille,
c.punc
},
}
-- "mo" is treated as "ro", see [[WT:LT]]
m["mr"] = {
"Marathi",
1571,
"inc-sou",
"Deva, Modi",
ancestors = "omr",
translit = {
Deva = "mr-translit",
Modi = "mr-Modi-translit",
},
strip_diacritics = {
Deva = {
from = {"च़", "ज़", "झ़"},
to = {"च", "ज", "झ"}
},
},
}
m["ms"] = {
"Malay",
9237,
"poz-mly",
"Latn, Arab",
ancestors = "ms-cla",
standard_chars = {
Latn = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz",
c.punc
},
}
m["mt"] = {
"Maltese",
9166,
"sem-arb",
"Latn",
display_text = {
from = {"'"},
to = {"’"}
},
strip_diacritics = {
from = {"’"},
to = {"'"},
},
ancestors = "sqr",
sort_key = {
from = {
"ċ", "ġ", "ż", -- Convert into PUA so that decomposed form does not get caught by the next step.
"([cgz])", -- Ensure "c" comes after "ċ", "g" comes after "ġ" and "z" comes after "ż".
"g" .. p[1] .. "ħ", -- "għ" after initial conversion of "g".
p[3], p[4], "ħ", "ie", p[5] -- Convert "ċ", "ġ", "ħ", "ie", "ż" into final output.
},
to = {
p[3], p[4], p[5],
"%1" .. p[1],
"g" .. p[2],
"c", "g", "h" .. p[1], "i" .. p[1], "z"
}
},
}
m["my"] = {
"Burmese",
9228,
"tbq-brm",
"Mymr",
ancestors = "obr",
translit = "my-translit",
override_translit = true,
sort_key = {
from = {"ျ", "ြ", "ွ", "ှ", "ဿ"},
to = {"္ယ", "္ရ", "္ဝ", "္ဟ", "သ္သ"}
},
}
m["na"] = {
"Nauruan",
13307,
"poz-mic",
"Latn",
}
m["nb"] = {
"Norwegian Bokmål",
25167,
"gmq",
"Latn",
wikimedia_codes = "no",
ancestors = "gmq-mno, da", -- da as an (but not the) ancestor of nb was agreed on - do not change without discussion
sort_key = s["no-sortkey"],
standard_chars = s["no-standardchars"],
}
m["nd"] = {
"Northern Ndebele",
35613,
"bnt-ngu",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},
}
m["ne"] = {
"Nepali",
33823,
"inc-pae",
"Deva, Newa",
translit = {
Deva = "ne-translit"
},
}
m["ng"] = {
"Ndonga",
33900,
"bnt-ova",
"Latn",
}
m["nl"] = {
"Dutch",
7411,
"gmw-frk",
"Latn, Brai",
ancestors = "dum",
sort_key = {
Latn = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.diaer .. c.ringabove .. c.cedilla .. "'"},
},
standard_chars = {
Latn = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÄäËëÏïÖöÜü",
Brai = c.braille,
c.punc
},
}
m["nn"] = {
"Norwegian Nynorsk",
25164,
"gmq-wes",
"Latn",
ancestors = "gmq-mno",
strip_diacritics = {
remove_diacritics = c.grave .. c.acute,
},
sort_key = s["no-sortkey"],
standard_chars = s["no-standardchars"],
}
m["no"] = {
"Norwegian",
9043,
"gmq-wes",
"Latn",
ancestors = "gmq-mno",
sort_key = s["no-sortkey"],
standard_chars = s["no-standardchars"],
}
m["nr"] = {
"Southern Ndebele",
36785,
"bnt-ngu",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},
}
m["nv"] = {
"Navajo",
13310,
"apa",
"Latn, Brai",
sort_key = {
remove_diacritics = c.acute .. c.ogonek,
from = {
"chʼ", "tłʼ", "tsʼ", -- 3 chars
"ch", "dl", "dz", "gh", "hw", "kʼ", "kw", "sh", "tł", "ts", "zh", -- 2 chars
"ł", "ʼ" -- 1 char
},
to = {
"c" .. p[2], "t" .. p[2], "t" .. p[4],
"c" .. p[1], "d" .. p[1], "d" .. p[2], "g" .. p[1], "h" .. p[1], "k" .. p[1], "k" .. p[2], "s" .. p[1], "t" .. p[1], "t" .. p[3], "z" .. p[1],
"l" .. p[1], "z" .. p[2]
}
},
}
m["ny"] = {
"Chichewa",
33273,
"bnt-nys",
"Latn",
strip_diacritics = {remove_diacritics = c.acute .. c.circ},
sort_key = {
from = {"ng'"},
to = {"ng"}
},
}
m["oc"] = {
"Occitan",
14185,
"roa-ocr",
"Latn, Hebr",
ancestors = "pro",
sort_key = {
Latn = {
remove_diacritics = c.grave .. c.acute .. c.diaer .. c.cedilla,
from = {"([lns])·h"},
to = {"%1h"}
},
},
-- Hebr display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["oj"] = {
"Ojibwe",
33875,
"alg",
"Cans, Latn",
sort_key = {
Latn = {
from = {"aa", "ʼ", "ii", "oo", "sh", "zh"},
to = {"a" .. p[1], "h" .. p[1], "i" .. p[1], "o" .. p[1], "s" .. p[1], "z" .. p[1]}
},
},
}
m["om"] = {
"Oromo",
33864,
"cus-eas",
"Latn, Ethi",
}
m["or"] = {
"Odia",
33810,
"inc-eas",
"Orya",
ancestors = "inc-mor",
translit = "or-translit",
}
m["os"] = {
"Ossetian",
33968,
"xsc-sar",
"Cyrl, Geor, Latn",
ancestors = "oos",
translit = {
Cyrl = "os-translit",
-- Geor translit in [[Module:scripts/data]]
},
override_translit = true,
display_text = {
Cyrl = {
from = {"æ", "Æ"},
to = {"ӕ", "Ӕ"}
},
Latn = {
from = {"ӕ", "Ӕ"},
to = {"æ", "Æ"}
},
},
strip_diacritics = {
Cyrl = {
remove_diacritics = c.grave .. c.acute,
from = {"æ", "Æ"},
to = {"ӕ", "Ӕ"}
},
Latn = {
from = {"ӕ", "Ӕ"},
to = {"æ", "Æ"}
},
},
sort_key = {
Cyrl = {
from = {"ӕ", "гъ", "дж", "дз", "ё", "къ", "пъ", "тъ", "хъ", "цъ", "чъ"},
to = {"а" .. p[1], "г" .. p[1], "д" .. p[1], "д" .. p[2], "е" .. p[1], "к" .. p[1], "п" .. p[1], "т" .. p[1], "х" .. p[1], "ц" .. p[1], "ч" .. p[1]}
},
},
}
m["pa"] = {
"Punjabi",
58635,
"inc-pan",
"Guru, Aran",
translit = {
Guru = "Guru-translit",
Aran = "pa-Aran-translit",
},
strip_diacritics = {
Aran = {
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna,
from = {"ݨ", "ࣇ"},
to = {"ن", "ل"}
},
},
}
m["pi"] = {
"Pali",
36727,
"inc-mid",
"Latn, Brah, Deva, Beng, Sinh, Mymr, Thai, Lana, Laoo, Khmr, Cakm", --and also Khom
ancestors = "sa",
translit = {
-- Brah translit in [[Module:scripts/data]]
Deva = "sa-translit",
Beng = "pi-translit",
Sinh = "si-translit",
Mymr = "pi-translit",
Thai = "pi-translit",
Lana = "pi-translit",
Laoo = "pi-translit",
Khmr = "pi-translit",
Cakm = "Cakm-translit",
},
strip_diacritics = {
Thai = {
from = {"ึ", u(0xF700), u(0xF70F)}, -- FIXME: Not clear what's going on with the PUA characters here.
to = {"ิํ", "ฐ", "ญ"}
},
Mymr = {
remove_diacritics = c.VS01,
},
},
sort_key = { -- FIXME: This needs to be converted into the current standardized format.
from = {"ā", "ī", "ū", "ḍ", "ḷ", "m[" .. c.dotabove .. c.dotbelow .. "]", "ṅ", "ñ", "ṇ", "ṭ", "ॐ", "([เโ])([ก-ฮ])", "([ເໂ])([ກ-ຮ])", "ᩔ", "ᩕ", "ᩖ", "ᩘ", "([ᨭ-ᨱ])ᩛ", "([ᨷ-ᨾ])ᩛ", "ᩤ", u(0xFE00), u(0x200D)},
to = {"a~", "i~", "u~", "d~", "l~", "m~", "n~", "n~~", "n~~~", "t~", "ओँ", "%2%1", "%2%1", "ᩈ᩠ᩈ", "᩠ᩁ", "᩠ᩃ", "ᨦ᩠", "%1᩠ᨮ", "%1᩠ᨻ", "ᩣ"}
},
}
m["pl"] = {
"Polish",
809,
"zlw-lch",
"Latn",
ancestors = "zlw-mpl",
sort_key = {
from = {"ą", "ć", "ę", "ł", "ń", "ó", "ś", "ź", "ż"},
to = {"a" .. p[1], "c" .. p[1], "e" .. p[1], "l" .. p[1], "n" .. p[1], "o" .. p[1], "s" .. p[1], "z" .. p[1], "z" .. p[2]}
},
standard_chars = "AaĄąBbCcĆćDdEeĘęFfGgHhIiJjKkLlŁłMmNnŃńOoÓóPpRrSsŚśTtUuWwYyZzŹźŻż" .. c.punc,
}
m["ps"] = {
"Pashto",
58680,
"ira-pat",
"Arab",
strip_diacritics = {remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.zwarakay .. c.superalef},
}
m["pt"] = {
"Portuguese",
5146,
"roa-gap",
"Latn, Brai",
sort_key = {
Latn = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron .. c.diaer .. c.cedilla,
from = {"ª", "æ", "º", "œ"},
to = {"a", "ae", "o", "oe"}
},
},
standard_chars = {
Latn = "AaÁáÂâÃãBbCcÇçDdEeÉéÊêFfGgHhIiÍíJjLlMmNnOoÓóÔôÕõPpQqRrSsTtUuÚúVvXxZz",
Brai = c.braille,
c.punc
},
}
m["qu"] = {
"Quechua",
5218,
"qwe",
"Latn",
}
m["rm"] = {
"Romansh",
13199,
"roa-rhe",
ancestors = "rm-old",
"Latn",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer .. c.small_e},
}
m["ro"] = {
"Romanian",
7913,
"roa-eas",
"Latn, Cyrl, Cyrs",
translit = {
Cyrl = "ro-translit"
},
display_text = {
Latn = {
from = {"'", "ţ", "Ţ"},
to = {"’", "ț", "Ț"}
},
},
strip_diacritics = {
Latn = {
from = {"’", "ţ", "Ţ"},
to = {"'", "ț", "Ț"}
},
},
sort_key = {
Latn = {
remove_diacritics = c.grave .. c.acute,
from = {"ă", "â", "î", "ș", "[țţ]"},
to = {"a" .. p[1], "a" .. p[2], "i" .. p[1], "s" .. p[1], "t" .. p[1]}
},
Cyrl = {
from = {"ӂ"},
to = {"ж" .. p[1]}
},
},
-- Cyrs strip_diacritics, sort_key in [[Module:scripts/data]]; presumably not present
standard_chars = {
Latn = "AaĂăÂâBbCcDdEeFfGgHhIiÎîJjLlMmNnOoPpRrSsȘșTtȚțUuVvXxZz",
Cyrl = "АаБбВвГгДдЕеЖжӁӂЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЫыЬьЭэЮюЯя",
c.punc
},
}
m["ru"] = {
"Russian",
7737,
"zle",
"Cyrl, Brai",
ancestors = "zle-mru",
translit = {
Cyrl = "ru-translit"
},
display_text = {
Cyrl = {
from = {"'"},
to = {"’"}
},
},
strip_diacritics = {
Cyrl = {
remove_diacritics = c.grave .. c.acute .. c.diaer,
remove_exceptions = {"Ё", "ё", "Ѣ̈", "ѣ̈", "Я̈", "я̈"},
from = {"’"},
to = {"'"},
},
},
sort_key = {
Cyrl = {
remove_diacritics = c.grave .. c.acute .. c.diaer,
from = {
"і", "ѣ", "ѳ", "ѵ"
},
to = {
"и" .. p[1], "ь" .. p[1], "я" .. p[2], "я" .. p[3]
}
},
},
standard_chars = {
Cyrl = "АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя—",
Brai = c.braille,
(c.punc:gsub("'", "")) -- Exclude apostrophe.
},
}
m["rw"] = {
"Rwanda-Rundi",
3217514,
"bnt-glb",
"Latn",
strip_diacritics = {remove_diacritics = c.acute .. c.circ .. c.macron .. c.caron},
}
m["sa"] = {
"Sanskrit",
11059,
"inc",
"as-Beng, Bali, Beng, Bhks, Brah, Mymr, xwo-Mong, Deva, Gujr, Guru, Gran, Hani, Java, Kthi, Knda, Kawi, Khar, Khmr, Laoo, Mlym, mnc-Mong, Marc, Modi, Mong, Nand, Newa, Orya, Phag, Ranj, Saur, Shrd, Sidd, Sinh, Soyo, Lana, Takr, Taml, Tang, Telu, Thai, Tibt, Tutg, Tirh, Zanb", --and also Khom; script codes sorted by canonical name rather than code for [[MOD:sa-convert]]
translit = {
Beng = "sa-Beng-translit",
["as-Beng"] = "sa-Beng-translit",
-- Brah translit in [[Module:scripts/data]]
Deva = "sa-translit",
Gujr = "sa-Gujr-translit",
Guru = "sa-Guru-translit",
Java = "sa-Java-translit",
Kthi = "sa-Kthi-translit",
Khmr = "pi-translit",
Knda = "sa-Knda-translit",
Lana = "pi-translit",
Laoo = "pi-translit",
Mlym = "sa-Mlym-translit",
Modi = "sa-Modi-translit",
-- Mong, mnc-Mong, xwo-Mong translit in [[Module:scripts/data]]
-- NOTE: Formerly used xal-translit for transliterating xwo-Mong but that only handles Cyrillic; it has
-- code to transliterate xwo-Mong but it's broken so I've replaced it with the default xwo-translit.
Mymr = "pi-translit",
Orya = "sa-Orya-translit",
-- Shrd translit in [[Module:scripts/data]]
-- Sidd translit in [[Module:scripts/data]]
Sinh = "si-translit",
Taml = "sa-Taml-translit",
Telu = "sa-Telu-translit",
Thai = "pi-translit",
-- Tibt translit in [[Module:scripts/data]]
},
-- Mong display_text and strip_diacritics in [[Module:scripts/data]]
-- Tibt display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
strip_diacritics = {
Deva = s["sa-Deva-stripdiacritics"],
Mymr = {
remove_diacritics = c.VS01,
},
Thai = {
from = {"ึ", u(0xF700), u(0xF70F)}, -- FIXME: Not clear what's going on with the PUA characters here.
to = {"ิํ", "ฐ", "ญ"}
},
},
sort_key = {
Deva = s["sa-Deva-stripdiacritics"], -- until we have a proper Sanskrit sorting algorithm.
Lana = { -- Tai Tham
from = {"ᩔ", "ᩕ", "ᩖ", "ᩘ", "([ᨭ-ᨱ])ᩛ", "([ᨷ-ᨾ])ᩛ", "ᩤ"},
to = {"ᩈ᩠ᩈ", "᩠ᩁ", "᩠ᩃ", "ᨦ᩠", "%1᩠ᨮ", "%1᩠ᨻ", "ᩣ"},
},
Laoo = "Laoo-sortkey",
Latn = {
from = {"ā", "ī", "ū", "ḍ", "ḷ", "ḹ", "m[" .. c.dotabove .. c.dotbelow .. "]", "ṅ", "ñ", "ṇ", "ṛ", "ṝ", "ś", "ṣ", "ṭ"},
to = {"a~", "i~", "u~", "d~", "l~", "l~~", "m~", "n~", "n~~", "n~~~", "r~", "r~~", "s~", "s~~", "t~"},
},
Mymr = {
remove_diacritics = c.VS01,
},
Thai = "Thai-sortkey",
-- FIXME: The previous sort key which mixed all scripts removed ZWJ; I don't know which script(s) this was
-- intended for and there are no other languages which remove it in the sort key AFAIK. If it needs to be
-- removed, specify the script(s) it needs to be removed under or add handling for the "all" script that applies
-- regardless of script.
--all = {
-- remove_diacritics = c.ZWJ,
--},
},
}
m["sc"] = {
"Sardinian",
33976,
"roa-sou",
"Latn",
ancestors = "sc-old",
}
m["sd"] = {
"Sindhi",
33997,
"inc-snd",
"Arab, Deva, Sind, Khoj",
translit = {
Sind = "Sind-translit",
Arab = "sd-Arab-translit"
},
strip_diacritics = {
Arab = {
remove_diacritics = c.kashida .. c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.superalef,
from = {"ٱ"},
to = {"ا"}
},
},
}
m["se"] = {
"Northern Sami",
33947,
"smi",
"Latn",
display_text = {
from = {"'"},
to = {"ˈ"}
},
strip_diacritics = {remove_diacritics = c.macron .. c.dotbelow .. "'ˈ"},
sort_key = {
from = {"á", "č", "đ", "ŋ", "š", "ŧ", "ž"},
to = {"a" .. p[1], "c" .. p[1], "d" .. p[1], "n" .. p[1], "s" .. p[1], "t" .. p[1], "z" .. p[1]}
},
standard_chars = "AaÁáBbCcČčDdĐđEeFfGgHhIiJjKkLlMmNnŊŋOoPpRrSsŠšTtŦŧUuVvZzŽž" .. c.punc,
}
m["sg"] = {
"Sango",
33954,
"crp",
"Latn",
ancestors = "ngb",
}
m["sh"] = {
"Serbo-Croatian",
9301,
"zls",
"Latn, Cyrl, Glag, Arab",
ietf_subtag = "hbs", -- ISO 639-3 code, since "sh" is deprecated from ISO 639-1
wikimedia_codes = "sh, bs, hr, sr",
strip_diacritics = {
Latn = {
remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron .. c.dgrave .. c.invbreve,
remove_exceptions = {"Ć", "ć", "Ś", "ś", "Ź", "ź"}
},
Cyrl = {
remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron .. c.dgrave .. c.invbreve,
remove_exceptions = {"З́", "з́", "С́", "с́"}
},
},
sort_key = {
Latn = {
remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron .. c.dgrave .. c.invbreve,
remove_exceptions = {"ć", "ś", "ź"},
from = {"č", "ć", "dž", "đ", "lj", "nj", "š", "ś", "ž", "ź"},
to = {"c" .. p[1], "c" .. p[2], "d" .. p[1], "d" .. p[2], "l" .. p[1], "n" .. p[1], "s" .. p[1], "s" .. p[2], "z" .. p[1], "z" .. p[2]}
},
Cyrl = {
remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron .. c.dgrave .. c.invbreve,
remove_exceptions = {"з́", "с́"},
from = {"ђ", "з́", "ј", "љ", "њ", "с́", "ћ", "џ"},
to = {"д" .. p[1], "з" .. p[1], "и" .. p[1], "л" .. p[1], "н" .. p[1], "с" .. p[1], "т" .. p[1], "ч" .. p[1]}
},
},
standard_chars = {
Latn = "AaBbCcČčĆćDdĐđEeFfGgHhIiJjKkLlMmNnOoPpRrSsŠšTtUuVvZzŽž",
Cyrl = "АаБбВвГгДдЂђЕеЖжЗзИиЈјКкЛлЉљМмНнЊњОоПпРрСсТтЋћУуФфХхЦцЧчЏџШш",
c.punc
},
}
m["si"] = {
"Sinhalese",
13267,
"inc-ins",
"Sinh",
translit = "si-translit",
override_translit = true,
}
m["sk"] = {
"Slovak",
9058,
"zlw",
"Latn",
ancestors = "zlw-osk",
sort_key = {remove_diacritics = c.acute .. c.circ .. c.diaer .. c.caron},
standard_chars = "AaÁáÄäBbCcČčDdĎďEeÉéFfGgHhIiÍíJjKkLlĹ弾MmNnŇňOoÓóÔôPpRrŔŕSsŠšTtŤťUuÚúVvYyÝýZzŽž" .. c.punc,
}
m["sl"] = {
"Slovene",
9063,
"zls",
"Latn",
strip_diacritics = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.dgrave .. c.invbreve .. c.dotbelow,
remove_exceptions = {"Ć", "ć", "Ǵ", "ǵ", "Ś", "ś", "Ź", "ź"},
from = {"Ə", "ə", "Ł", "ł"},
to = {"E", "e", "L", "l"},
},
sort_key = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron .. c.dotabove .. c.ringabove .. c.dgrave .. c.invbreve .. c.dotbelow .. c.ringbelow .. c.ogonek,
remove_exceptions = {"ć", "ǵ", "ś", "ź"},
from = {"ä", "č", "ć", "đ", "ə", "ë", "ǧ", "ǵ", "ï", "ł", "ö", "š", "ś", "ü", "ž", "ź"},
to = {"a" .. p[1], "c" .. p[1], "c" .. p[2], "d" .. p[1], "e", "e" .. p[1], "g" .. p[1], "g" .. p[2], "i" .. p[1], "l", "o" .. p[1], "s" .. p[1], "s" .. p[2], "u" .. p[1], "z" .. p[1], "z" .. p[2]},
},
standard_chars = "AaBbCcČčDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsŠšTtUuVvZzŽž" .. c.punc,
}
m["sm"] = {
"Samoan",
34011,
"poz-pnp",
"Latn",
}
m["sn"] = {
"Shona",
34004,
"bnt-sho",
"Latn",
strip_diacritics = {remove_diacritics = c.acute},
}
m["so"] = {
"Somali",
13275,
"cus-som",
"Latn, Arab, Osma",
strip_diacritics = {
Latn = {remove_diacritics = c.grave .. c.acute .. c.circ}
},
}
m["sq"] = {
"Albanian",
8748,
"sqj",
"Latn, Grek, Arab, Elba, Todr, Vith",
translit = {
Elba = "Elba-translit",
Vith = "Vith-translit",
},
-- Grek display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
strip_diacritics = {
Latn = {
remove_diacritics = c.acute .. c.circ .. c.macron,
from = {'^[ie] (%w)', '^të (%w)'}, to = {'%1', '%1'},
},
},
sort_key = {
Latn = {
remove_diacritics = c.acute .. c.circ .. c.macron .. c.tilde .. c.breve .. c.caron,
from = {'^[ie] (%w)', '^të (%w)', 'ç', 'dh', 'ë', 'gj', 'll', 'nj', 'rr', 'sh', 'th', 'xh', 'zh'},
to = {'%1', '%1', 'c'..p[1], 'd'..p[1], 'e'..p[1], 'g'..p[1], 'l'..p[1], 'n'..p[1], 'r'..p[1], 's'..p[1], 't'..p[1], 'x'..p[1], 'z'..p[1]},
}
-- TODO: Grek if the default sort key is unsuitable
},
standard_chars = {
Latn = "AaBbCcÇçDdEeËëFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvXxYyZz",
c.punc
},
}
m["ss"] = {
"Swazi",
34014,
"bnt-ngu",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},
}
m["st"] = {
"Sotho",
34340,
"bnt-sts",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},
}
m["su"] = {
"Sundanese",
34002,
"poz-msa",
"Latn, Sund, Arab",
ancestors = "osn",
translit = {
Sund = "Sund-translit"
},
}
m["sv"] = {
"Swedish",
9027,
"gmq-eas",
"Latn",
ancestors = "gmq-osw-lat",
sort_key = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron .. c.dacute .. c.caron .. c.cedilla .. "':",
remove_exceptions = {"å"},
from = {"ø", "æ", "œ", "ß", "ꜩ", "å", "aͤ", "oͤ"},
to = {"ö", "ae", "oe", "ss", "tz", "z" .. p[1], "ä", "ö"}
},
standard_chars = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvXxYyÅåÄäÖö" .. c.punc,
}
m["sw"] = {
"Swahili",
7838,
"bnt-swh",
"Latn, Arab",
sort_key = {
Latn = {
from = {"ng'"},
to = {"ng" .. p[1]}
},
},
}
m["ta"] = {
"Tamil",
5885,
"dra-tam",
"Taml",
ancestors = "ta-mid",
translit = "ta-translit",
override_translit = true,
}
m["te"] = {
"Telugu",
8097,
"dra-tel",
"Telu",
translit = "te-translit",
override_translit = true,
}
m["tg"] = {
"Tajik",
9260,
"ira-swi",
"Cyrl, Arab, Latn",
ancestors = "fa-cls",
translit = {
Cyrl = "tg-translit"
},
override_translit = true,
strip_diacritics = {
Cyrl = s["tg-stripdiacritics"],
Latn = s["tg-stripdiacritics"],
},
sort_key = {
Cyrl = {
from = {"ғ", "ё", "ӣ", "қ", "ӯ", "ҳ", "ҷ"},
to = {"г" .. p[1], "е" .. p[1], "и" .. p[1], "к" .. p[1], "у" .. p[1], "х" .. p[1], "ч" .. p[1]}
},
},
}
m["th"] = {
"Thai",
9217,
"tai-swe",
"Thai, Khomt, Brai",
translit = {
Thai = "th-translit"
},
sort_key = {
Thai = "Thai-sortkey"
},
}
m["ti"] = {
"Tigrinya",
34124,
"sem-eth",
"Ethi",
translit = "Ethi-translit",
}
m["tk"] = {
"Turkmen",
9267,
"trk-ogz",
"Latn, Cyrl, Arab",
strip_diacritics = {
Latn = s["tk-stripdiacritics"],
Cyrl = s["tk-stripdiacritics"],
},
sort_key = {
Latn = {
from = {"ç", "ä", "ž", "ň", "ö", "ş", "ü", "ý"},
to = {"c" .. p[1], "e" .. p[1], "j" .. p[1], "n" .. p[1], "o" .. p[1], "s" .. p[1], "u" .. p[1], "y" .. p[1]}
},
Cyrl = {
from = {"ё", "җ", "ң", "ө", "ү", "ә"},
to = {"е" .. p[1], "ж" .. p[1], "н" .. p[1], "о" .. p[1], "у" .. p[1], "э" .. p[1]}
},
},
ancestors = "trk-eog",
}
m["tl"] = {
"Tagalog",
34057,
"phi",
"Latn, Tglg",
translit = {
Tglg = "tl-translit"
},
override_translit = true,
strip_diacritics = {
Latn = {remove_diacritics = c.grave .. c.acute .. c.circ}
},
standard_chars = {
Latn = "AaBbKkDdEeGgHhIiLlMmNnOoPpRrSsTtUuWwYy",
c.punc
},
sort_key = {
Latn = "tl-sortkey",
},
}
m["tn"] = {
"Tswana",
34137,
"bnt-sts",
"Latn",
}
m["to"] = {
"Tongan",
34094,
"poz-ton",
"Latn",
strip_diacritics = {remove_diacritics = c.acute},
sort_key = {remove_diacritics = c.macron},
}
m["tr"] = {
"Turkish",
256,
"trk-ogz",
"Latn",
ancestors = "ota",
dotted_dotless_i = true,
sort_key = {
from = {
-- Ignore circumflex, but account for capital Î wrongly becoming ı + circ due to dotted dotless I logic.
"ı" .. c.circ, c.circ,
"i", -- Ensure "i" comes after "ı".
"ç", "ğ", "ı", "ö", "ş", "ü"
},
to = {
"i", "",
"i" .. p[1],
"c" .. p[1], "g" .. p[1], "i", "o" .. p[1], "s" .. p[1], "u" .. p[1]
}
},
standard_chars = "AaÂâBbCcÇçDdEeFfGgĞğHhIıİiÎîJjKkLlMmNnOoÖöPpRrSsŞşTtUuÛûÜüVvYyZz" .. c.punc,
}
m["ts"] = {
"Tsonga",
34327,
"bnt-tsr",
"Latn",
}
m["tt"] = {
"Tatar",
25285,
"trk-kbu",
"Cyrl, Latn, Arab",
translit = {
Cyrl = "tt-translit",
Arab = "tt-translit"
},
--override_translit = true, -- enable override until Module code can detect Russian loans such as [[аэропорт]]
dotted_dotless_i = true,
sort_key = {
Cyrl = {
from = {"ә", "ў", "ғ", "ё", "җ", "қ", "ң", "ө", "ү", "һ"},
to = {"а" .. p[1], "в" .. p[1], "г" .. p[1], "е" .. p[1], "ж" .. p[1], "к" .. p[1], "н" .. p[1], "о" .. p[1], "у" .. p[1], "х" .. p[1]}
},
Latn = {
from = {
"i", -- Ensure "i" comes after "ı".
"ä", "ə", "ç", "ğ", "ı", "ñ", "ŋ", "ö", "ɵ", "ş", "ü"
},
to = {
"i" .. p[1],
"a" .. p[1], "a" .. p[2], "c" .. p[1], "g" .. p[1], "i", "n" .. p[1], "n" .. p[2], "o" .. p[1], "o" .. p[2], "s" .. p[1], "u" .. p[1]
}
},
},
}
-- "tw" is treated as "ak", see [[WT:LT]]
m["ty"] = {
"Tahitian",
34128,
"poz-pep",
"Latn",
}
m["ug"] = {
"Uyghur",
13263,
"trk-kar",
"Arab, Latn, Cyrl",
ancestors = "chg",
translit = {
Arab = "ug-translit",
Cyrl = "ug-translit",
},
override_translit = true,
}
m["uk"] = {
"Ukrainian",
8798,
"zle",
"Cyrl",
ancestors = "zle-muk",
translit = "uk-translit",
strip_diacritics = {remove_diacritics = c.grave .. c.acute},
sort_key = {
remove_diacritics = c.grave .. c.acute,
from = {
"ї", -- 2 chars
"ґ", "є", "і" -- 1 char
},
to = {
"и" .. p[2],
"г" .. p[1], "е" .. p[1], "и" .. p[1]
}
},
standard_chars = "АаБбВвГгДдЕеЄєЖжЗзИиІіЇїЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЬьЮюЯя" .. c.punc:gsub("'", ""), -- Exclude apostrophe.
}
m["ur"] = {
"Urdu",
1617,
"inc-hnd",
"Aran, Hebr",
translit = {
Aran = "ur-translit"
},
strip_diacritics = {
Aran = {
-- character "ۂ" code U+06C2 to "ه" and "هٔ" (U+0647 + U+0654) to "ه"; hamzatu l-waṣli to a regular alif
from = {"هٔ", "ۂ", "ٱ"},
to = {"ہ", "ہ", "ا"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef
},
},
-- Hebr display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
standard_chars = {
Aran = "ایببپتثجچحخدذرزژسشصضطظعغفقکگلࣇڷمنݨوؤہھئٹڈڑآے",
c.punc,
},
}
m["uz"] = {
"Uzbek",
9264,
"trk-kar",
"Latn, Cyrl, Arab",
ancestors = "chg",
translit = {
Cyrl = "uz-translit"
},
sort_key = {
Latn = {
from = {"oʻ", "gʻ", "sh", "ch", "ng"},
to = {"z" .. p[1], "z" .. p[2], "z" .. p[3], "z" .. p[4], "z" .. p[5]}
},
Cyrl = {
from = {"ё", "ў", "қ", "ғ", "ҳ"},
to = {"е" .. p[1], "я" .. p[1], "я" .. p[2], "я" .. p[3], "я" .. p[4]}
},
},
strip_diacritics = {
Arab = "ar-stripdiacritics",
},
}
m["ve"] = {
"Venda",
32704,
"bnt-bso",
"Latn",
}
m["vi"] = {
"Vietnamese",
9199,
"mkh-vie",
"Latn, Hani",
ancestors = "mkh-mvi",
sort_key = {
Latn = "vi-sortkey",
Hani = "Hani-sortkey",
},
}
m["vo"] = {
"Volapük",
36986,
"art",
"Latn",
}
m["wa"] = {
"Walloon",
34219,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["wo"] = {
"Wolof",
34257,
"alv-fwo",
"Latn, Arab, Gara",
}
m["xh"] = {
"Xhosa",
13218,
"bnt-ngu",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},
}
m["yi"] = {
"Yiddish",
8641,
"gmw-hgm",
"Hebr, Latn",
ancestors = "gmh",
translit = {
Hebr = "yi-translit",
},
-- Hebr display_text, strip_diacritics, sort_key in [[Module:scripts/data]]
}
m["yo"] = {
"Yoruba",
34311,
"alv-yor",
"Latn, Arab",
strip_diacritics = {
Latn = {remove_diacritics = c.grave .. c.acute .. c.macron}
},
sort_key = {
Latn = {
from = {"ẹ", "ɛ", "gb", "ị", "kp", "ọ", "ɔ", "ṣ", "sh", "ụ"},
to = {"e" .. p[1], "e" .. p[1], "g" .. p[1], "i" .. p[1], "k" .. p[1], "o" .. p[1], "o" .. p[1], "s" .. p[1], "s" .. p[1], "u" .. p[1]}
},
},
}
m["za"] = {
"Zhuang",
13216,
"tai",
"Latn, Hani",
sort_key = {
Latn = "za-sortkey",
Hani = "Hani-sortkey",
},
}
m["zh"] = {
"Chinese",
7850,
"zhx",
"Hants, Latn, Bopo, Nshu, Brai",
ancestors = "ltc",
generate_forms = "zh-generateforms",
translit = {
Hani = "zh-translit",
Bopo = "zh-translit",
},
sort_key = {
Hani = "Hani-sortkey"
},
}
m["zu"] = {
"Zulu",
10179,
"bnt-ngu",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},
}
return require("Module:languages").finalizeData(m, "language")
8ivlr3ngtn8j8yxtbse88rwq210c19w
373532
373487
2026-09-11T03:58:22Z
SNN95
2113
terjemah
373532
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
-- Ideally, we want to move these into [[Module:languages/data]], but because (a) it's necessary to use require on that module, and (b) they're only used in this data module, it's less memory-efficient to do that at the moment. If it becomes possible to use mw.loadData, then these should be moved there.
s["de-Latn-sortkey"] = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer .. c.ringabove,
from = {"æ", "œ", "ß"},
to = {"ae", "oe", "ss"}
}
s["de-Latn-standardchars"] = "AaÄäBbCcDdEeFfGgHhIiJjKkLlMmNnOoÖöPpQqRrSsẞßTtUuÜüVvWwXxYyZz"
s["ka-stripdiacritics"] = {remove_diacritics = c.circ}
s["no-sortkey"] = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron .. c.dacute .. c.caron .. c.cedilla,
remove_exceptions = {"å"},
from = {"æ", "ø", "å"},
to = {"z" .. p[1], "z" .. p[2], "z" .. p[3]}
}
s["no-standardchars"] = "AaBbDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvYyÆæØøÅå" .. c.punc
s["sa-Deva-stripdiacritics"] = { -- Don't use remove_diacritics for accent marks, as १ and ३ should also be removed if (and only if) they carry any.
from = {"ॐ", "[१३]?[" .. c.anudatta .. c.udatta .. c.dsvarita .. c.tsvarita .. "]+"},
to = {"ओँ"},
}
s["tg-stripdiacritics"] = {remove_diacritics = c.grave .. c.acute}
s["tk-stripdiacritics"] = {remove_diacritics = c.macron}
local m = {}
m["aa"] = {
"Afar",
27811,
"cus-eas",
"Latn, Ethi",
strip_diacritics = {
Latn = {remove_diacritics = c.acute},
},
}
m["ab"] = {
"Abkhaz",
5111,
"cau-abz",
"Cyrl, Geor, Latn",
translit = {
Cyrl = "ab-translit",
-- translit Geor dalam [[Module:scripts/data]]
},
override_translit = true,
display_text = {
Cyrl = s["cau-Cyrl-displaytext"]
},
strip_diacritics = {
Cyrl = {
remove_diacritics = c.acute,
from = {"^а%-"},
to = {"а"},
},
Latn = s["cau-Latn-stripdiacritics"],
},
sort_key = {
Cyrl = {
from = {
"х'ә", -- 3 aksara
"гь", "гә", "ӷь", "ҕь", "ӷә", "ҕә", "дә", "ё", "жь", "жә", "ҙә", "ӡә", "ӡ'", "кь", "кә", "қь", "қә", "ҟь", "ҟә", "ҫә", "тә", "ҭә", "ф'", "хь", "хә", "х'", "ҳә", "ць", "цә", "ц'", "ҵә", "ҵ'", "шь", "шә", "џь", -- 2 aksara
"ӷ", "ҕ", "ҙ", "ӡ", "қ", "ҟ", "ԥ", "ҧ", "ҫ", "ҭ", "ҳ", "ҵ", "ҷ", "ҽ", "ҿ", "ҩ", "џ", "ә", -- 1 aksara
"^а",
},
to = {
"х" .. p[4],
"г" .. p[1], "г" .. p[2], "г" .. p[5], "г" .. p[6], "г" .. p[7], "г" .. p[8], "д" .. p[1], "е" .. p[1], "ж" .. p[1], "ж" .. p[2], "з" .. p[2], "з" .. p[4], "з" .. p[5], "к" .. p[1], "к" .. p[2], "к" .. p[4], "к" .. p[5], "к" .. p[7], "к" .. p[8], "с" .. p[2], "т" .. p[1], "т" .. p[3], "ф" .. p[1], "х" .. p[1], "х" .. p[2], "х" .. p[3], "х" .. p[6], "ц" .. p[1], "ц" .. p[2], "ц" .. p[3], "ц" .. p[5], "ц" .. p[6], "ш" .. p[1], "ш" .. p[2], "ы" .. p[3],
"г" .. p[3], "г" .. p[4], "з" .. p[1], "з" .. p[3], "к" .. p[3], "к" .. p[6], "п" .. p[1], "п" .. p[2], "с" .. p[1], "т" .. p[2], "х" .. p[5], "ц" .. p[4], "ч" .. p[1], "ч" .. p[2], "ч" .. p[3], "ы" .. p[1], "ы" .. p[2], "ь" .. p[1],
"",
}
},
},
}
m["ae"] = {
"Avesta",
29572,
"ira-cen",
"Avst, Gujr, Deva",
translit = {
Avst = "Avst-translit"
},
}
m["af"] = {
"Afrikaans",
14196,
"gmw-frk",
"Latn, Arab",
ancestors = "nl",
sort_key = {
Latn = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.diaer .. c.ringabove .. c.cedilla .. "'",
from = {"['ʼ]n"},
to = {"n" .. p[1]}
}
},
}
m["ak"] = {
"Akan",
28026,
"alv-ctn",
"Latn",
}
m["am"] = {
"Amhara",
28244,
"sem-eth",
"Ethi",
translit = "Ethi-translit",
}
m["an"] = {
"Aragon",
8765,
"roa-nar",
"Latn",
}
m["ar"] = {
"Arab",
13955,
"sem-arb",
"Arab, Hebr, Syrc, Brai, Nbat",
translit = {
Arab = "ar-translit"
},
strip_diacritics = {
Arab = "ar-stripdiacritics",
},
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
}
m["as"] = {
"Assam",
29401,
"inc-bas",
"as-Beng",
ancestors = "inc-mas",
translit = "as-translit",
}
m["av"] = {
"Avar",
29561,
"cau-ava",
"Cyrl, Latn, Arab",
ancestors = "oav",
translit = {
Cyrl = "cau-nec-translit",
Arab = "ar-translit",
},
override_translit = true,
display_text = {
Cyrl = s["cau-Cyrl-displaytext"],
},
strip_diacritics = {
Cyrl = s["cau-Cyrl-stripdiacritics"],
Latn = s["cau-Latn-stripdiacritics"],
},
sort_key = {
Cyrl = {
from = {"гъ", "гь", "гӏ", "ё", "кк", "къ", "кь", "кӏ", "лъ", "лӏ", "тӏ", "хх", "хъ", "хь", "хӏ", "цӏ", "чӏ"},
to = {"г" .. p[1], "г" .. p[2], "г" .. p[3], "е" .. p[1], "к" .. p[1], "к" .. p[2], "к" .. p[3], "к" .. p[4], "л" .. p[1], "л" .. p[2], "т" .. p[1], "х" .. p[1], "х" .. p[2], "х" .. p[3], "х" .. p[4], "ц" .. p[1], "ч" .. p[1]}
},
},
}
m["ay"] = {
"Aymara",
4627,
"sai-aym",
"Latn",
}
m["az"] = {
"Azerbaijan",
9292,
"trk-ogz",
"Latn, Cyrl, Arab",
ancestors = "trk-oat",
dotted_dotless_i = true,
strip_diacritics = {
Latn = {
from = {"ʼ"},
to = {"'"},
},
Arab = {
module = "ar-stripdiacritics",
["from"] = {
"ۆ",
"ۇ",
"وْ",
"ڲ",
"ؽ",
},
["to"] = {
"و",
"و",
"و",
"گ",
"ی",
},
},
},
display_text = {
Latn = {
from = {"'"},
to = {"ʼ"}
}
},
sort_key = {
Latn = {
from = {
"i", -- Pastikan "i" datang selepas "ı".
"ç", "ə", "ğ", "x", "ı", "q", "ö", "ş", "ü", "w"
},
to = {
"i" .. p[1],
"c" .. p[1], "e" .. p[1], "g" .. p[1], "h" .. p[1], "i", "k" .. p[1], "o" .. p[1], "s" .. p[1], "u" .. p[1], "z" .. p[1]
}
},
Cyrl = {
from = {"ғ", "ә", "ы", "ј", "ҝ", "ө", "ү", "һ", "ҹ"},
to = {"г" .. p[1], "е" .. p[1], "и" .. p[1], "и" .. p[2], "к" .. p[1], "о" .. p[1], "у" .. p[1], "х" .. p[1], "ч" .. p[1]}
},
},
}
m["ba"] = {
"Bashkir",
13389,
"trk-kbu",
"Cyrl",
translit = "ba-translit",
override_translit = true,
sort_key = {
from = {"ғ", "ҙ", "ё", "ҡ", "ң", "ө", "ҫ", "ү", "һ", "ә"},
to = {"г" .. p[1], "д" .. p[1], "е" .. p[1], "к" .. p[1], "н" .. p[1], "о" .. p[1], "с" .. p[1], "у" .. p[1], "х" .. p[1], "э" .. p[1]}
},
}
m["be"] = {
"Belarus",
9091,
"zle",
"Cyrl, Latn",
ancestors = "zle-mbe",
translit = {
Cyrl = "be-translit",
},
strip_diacritics = {
Cyrl = {
remove_diacritics = c.grave .. c.acute,
},
Latn = {
remove_diacritics = c.grave .. c.acute,
remove_exceptions = {"Ć", "ć", "Ń", "ń", "Ś", "ś", "Ź", "ź"},
},
},
sort_key = {
Cyrl = {
remove_diacritics = c.grave .. c.acute,
from = {"ґ", "ё", "і", "ў"},
to = {"г" .. p[1], "е" .. p[1], "и" .. p[1], "у" .. p[1]}
},
Latn = {
remove_diacritics = c.grave .. c.acute,
remove_exceptions = {"ć", "ń", "ś", "ź"},
from = {"ć", "č", "dz", "dź", "dž", "ch", "ł", "ń", "ś", "š", "ŭ", "ź", "ž"},
to = {"c" .. p[1], "c" .. p[2], "d" .. p[1], "d" .. p[2], "d" .. p[3], "h" .. p[1], "l" .. p[1], "n" .. p[1], "s" .. p[1], "s" .. p[2], "u" .. p[1], "z" .. p[1], "z" .. p[2]}
},
},
standard_chars = {
Cyrl = "АаБбВвГгДдЕеЁёЖжЗзІіЙйКкЛлМмНнОоПпРрСсТтУуЎўФфХхЦцЧчШшЫыЬьЭэЮюЯя",
Latn = "AaBbCcĆćČčDdEeFfGgHhIiJjKkLlŁłMmNnŃńOoPpRrSsŚśŠšTtUuŬŭVvYyZzŹźŽž",
(c.punc:gsub("'", "")) -- Kecualikan koma atas.
},
}
m["bg"] = {
"Bulgaria",
7918,
"zls",
"Cyrl",
ancestors = "cu-bgm",
translit = "bg-translit",
strip_diacritics = {
remove_diacritics = c.grave .. c.acute,
remove_exceptions = {"%f[^%z%s]ѝ%f[%z%s]"},
},
sort_key = {
remove_diacritics = c.grave .. c.acute,
remove_exceptions = {"%f[^%z%s]ѝ%f[%z%s]"},
},
standard_chars = "АаБбВвГгДдЕеЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЬьЮюЯя" .. c.punc,
}
m["bh"] = {
"Bihari",
135305,
"inc-eas",
"Deva",
}
m["bi"] = {
"Bislama",
35452,
"crp",
"Latn",
ancestors = "en",
}
m["bm"] = {
"Bambara",
33243,
"dmn-emn",
"Latn, Nkoo",
sort_key = {
Latn = {
from = {"ɛ", "ɲ", "ŋ", "ɔ"},
to = {"e" .. p[1], "n" .. p[1], "n" .. p[2], "o" .. p[1]}
},
},
}
m["bn"] = {
"Benggali",
9610,
"inc-bas",
"Beng, Newa",
ancestors = "inc-mbn",
translit = {
Beng = "bn-translit"
},
}
m["bo"] = {
"Tibet",
34271,
"sit-tib",
"Tibt", -- kadang-kadang Deva?
ancestors = "xct",
override_translit = true,
-- translit, display_text, strip_diacritics, sort_key Tibt dalam [[Module:scripts/data]]
}
m["br"] = {
"Breton",
12107,
"cel-brs",
"Latn",
ancestors = "xbm",
sort_key = {
from = {"ch", "c['ʼ’]h"},
to = {"c" .. p[1], "c" .. p[2]}
},
}
m["ca"] = {
"Catalan",
7026,
"roa-ocr",
"Latn",
ancestors = "roa-oca",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.diaer .. c.cedilla .. "·"},
standard_chars = "AaÀàBbCcÇçDdEeÉéÈèFfGgHhIiÍíÏïJjLlMmNnOoÓóÒòPpQqRrSsTtUuÚúÜüVvXxYyZz·" .. c.punc,
}
m["ce"] = {
"Chechen",
33350,
"cau-vay",
"Cyrl, Latn, Arab",
translit = {
Cyrl = "cau-nec-translit",
Arab = "ar-translit",
},
override_translit = true,
display_text = {
Cyrl = s["cau-Cyrl-displaytext"]
},
strip_diacritics = {
Cyrl = s["cau-Cyrl-stripdiacritics"],
Latn = s["cau-Latn-stripdiacritics"],
},
sort_key = {
Cyrl = {
from = {"аь", "гӏ", "ё", "кх", "къ", "кӏ", "оь", "пӏ", "тӏ", "уь", "хь", "хӏ", "цӏ", "чӏ", "юь", "яь"},
to = {"а" .. p[1], "г" .. p[1], "е" .. p[1], "к" .. p[1], "к" .. p[2], "к" .. p[3], "о" .. p[1], "п" .. p[1], "т" .. p[1], "у" .. p[1], "х" .. p[1], "х" .. p[2], "ц" .. p[1], "ч" .. p[1], "ю" .. p[1], "я" .. p[1]}
},
},
}
m["ch"] = {
"Chamorro",
33262,
"poz",
"Latn",
sort_key = {
remove_diacritics = "'",
from = {"å", "ch", "ñ", "ng"},
to = {"a" .. p[1], "c" .. p[1], "n" .. p[1], "n" .. p[2]}
},
}
m["co"] = {
"Corsica",
33111,
"roa-itr",
"Latn",
sort_key = {
from = {"chj", "ghj", "sc", "sg"},
to = {"c" .. p[1], "g" .. p[1], "s" .. p[1], "s" .. p[2]}
},
standard_chars = "AaÀàBbCcDdEeÈèFfGgHhIiÌìÏïJjLlMmNnOoÒòPpQqRrSsTtUuÙùÜüVvZz" .. c.punc,
}
m["cr"] = {
"Cree",
33390,
"alg",
"Latn, Cans",
translit = {
Cans = "cr-translit"
},
}
m["cs"] = {
"Czech",
9056,
"zlw",
"Latn",
ancestors = "cs-ear",
sort_key = {
from = {"á", "č", "ď", "é", "ě", "ch", "í", "ň", "ó", "ř", "š", "ť", "ú", "ů", "ý", "ž"},
to = {"a" .. p[1], "c" .. p[1], "d" .. p[1], "e" .. p[1], "e" .. p[2], "h" .. p[1], "i" .. p[1], "n" .. p[1], "o" .. p[1], "r" .. p[1], "s" .. p[1], "t" .. p[1], "u" .. p[1], "u" .. p[2], "y" .. p[1], "z" .. p[1]}
},
standard_chars = "AaÁáBbCcČčDdĎďEeÉéĚěFfGgHhIiÍíJjKkLlMmNnŇňOoÓóPpRrŘřSsŠšTtŤťUuÚúŮůVvYyÝýZzŽž" .. c.punc,
}
m["cu"] = {
"Slavonic Gereja Kuno",
35499,
"zls",
"Cyrs, Glag, Zname",
translit = {
Cyrs = "Cyrs-translit",
Glag = "Glag-translit"
},
-- strip_diacritics, sort_key Cyrs dalam [[Module:scripts/data]]
}
m["cv"] = {
"Chuvash",
33348,
"trk-ogr",
"Cyrl",
ancestors = "cv-mid",
translit = "cv-translit",
override_translit = true,
sort_key = {
from = {"ӑ", "ё", "ӗ", "ҫ", "ӳ"},
to = {"а" .. p[1], "е" .. p[1], "е" .. p[2], "с" .. p[1], "у" .. p[1]}
},
}
m["cy"] = {
"Wales",
9309,
"cel-brw",
"Latn",
ancestors = "wlm",
sort_key = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer .. "'",
from = {"ch", "dd", "ff", "ng", "ll", "ph", "rh", "th"},
to = {"c" .. p[1], "d" .. p[1], "f" .. p[1], "g" .. p[1], "l" .. p[1], "p" .. p[1], "r" .. p[1], "t" .. p[1]}
},
standard_chars = "ÂâAaBbCcDdEeÊêFfGgHhIiÎîLlMmNnOoÔôPpRrSsTtUuÛûWwŴŵYyŶŷ" .. c.punc,
}
m["da"] = {
"Denmark",
9035,
"gmq-eas",
"Latn",
ancestors = "gmq-oda",
sort_key = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron .. c.dacute .. c.caron .. c.cedilla,
remove_exceptions = {"å"},
from = {"æ", "ø", "å"},
to = {"z" .. p[1], "z" .. p[2], "z" .. p[3]}
},
standard_chars = "AaBbDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvYyÆæØøÅå" .. c.punc,
}
m["de"] = {
"Jerman",
188,
"gmw-hgm",
"Latn, Latf, Brai",
ancestors = "de-ear",
sort_key = {
Latn = s["de-Latn-sortkey"],
Latf = s["de-Latn-sortkey"],
},
standard_chars = {
Latn = s["de-Latn-standardchars"],
Latf = s["de-Latn-standardchars"],
Brai = c.braille,
c.punc
}
}
m["dv"] = {
"Dhivehi",
32656,
"inc-ins",
"Thaa, Diak",
translit = {
Thaa = "dv-translit",
Diak = "Diak-translit",
},
ancestors = "dv-old",
override_translit = true,
}
m["dz"] = {
"Dzongkha",
33081,
"sit-tib",
"Tibt",
ancestors = "xct",
override_translit = true,
-- translit, display_text, strip_diacritics, sort_key Tibt dalam [[Module:scripts/data]]
}
m["ee"] = {
"Ewe",
30005,
"alv-gbe",
"Latn",
sort_key = {
remove_diacritics = c.tilde,
from = {"ɖ", "dz", "ɛ", "ƒ", "gb", "ɣ", "kp", "ny", "ŋ", "ɔ", "ts", "ʋ"},
to = {"d" .. p[1], "d" .. p[2], "e" .. p[1], "f" .. p[1], "g" .. p[1], "g" .. p[2], "k" .. p[1], "n" .. p[1], "n" .. p[2], "o" .. p[1], "t" .. p[1], "v" .. p[1]}
},
}
m["el"] = {
"Greek",
9129,
"grk",
"Grek, Polyt, Brai",
ancestors = "el-kth",
translit = "el-translit",
override_translit = true,
-- display_text, strip_diacritics, sort_key Grek dan Polyt dalam [[Module:scripts/data]]
standard_chars = {
Grek = "΅·ͺ΄ΑαΆάΒβΓγΔδΕεέΈΖζΗηΉήΘθΙιΊίΪϊΐΚκΛλΜμΝνΞξΟοΌόΠπΡρΣσςΤτΥυΎύΫϋΰΦφΧχΨψΩωΏώ",
Brai = c.braille,
c.punc
},
}
m["en"] = {
"Inggeris",
1860,
"gmw-ang",
"Latn, Brai, Shaw, Dsrt", -- entri dalam Shaw atau Dsrt mungkin memerlukan perbincangan terlebih dahulu
wikimedia_codes = "en, simple",
ancestors = "en-ear",
sort_key = {
Latn = {
-- Kebanyakannya diperlukan untuk mengisih nama bahasa.
remove_diacritics = "'\"%-%.,%s·ʻʼ" .. c.diacritics,
-- Ini ditemui dalam nama halaman.
from = {"[ɒæ🅱¢©ᴄðđəǝɜɡħʜıɨłŋɲøɔœꝑꝓꝕßʋ]"},
to = {{
["ɒ"] = "a", ["æ"] = "ae", ["🅱"] = "b", ["¢"] = "c", ["©"] = "c",
["ᴄ"] = "c", ["ð"] = "d", ["đ"] = "d", ["ə"] = "e", ["ǝ"] = "e",
["ɜ"] = "e", ["ɡ"] = "g", ["ħ"] = "h", ["ʜ"] = "h", ["ı"] = "i",
["ɨ"] = "i", ["ł"] = "l", ["ŋ"] = "n", ["ɲ"] = "n", ["ø"] = "o",
["ɔ"] = "o", ["œ"] = "oe", ["ꝑ"] = "p", ["ꝓ"] = "p", ["ꝕ"] = "p",
["ß"] = "ss", ["ʋ"] = "v",
}},
},
},
standard_chars = {
Latn = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz",
Brai = c.braille,
c.punc
},
}
m["eo"] = {
"Esperanto",
143,
"art",
"Latn",
sort_key = {
remove_diacritics = c.grave .. c.acute,
from = {"ĉ", "ĝ", "ĥ", "ĵ", "ŝ", "ŭ"},
to = {"c" .. p[1], "g" .. p[1], "h" .. p[1], "j" .. p[1], "s" .. p[1], "u" .. p[1]}
},
standard_chars = "AaBbCcĈĉDdEeFfGgĜĝHhĤĥIiJjĴĵKkLlMmNnOoPpRrSsŜŝTtUuŬŭVvZz" .. c.punc,
}
m["es"] = {
"Sepanyol",
1321,
"roa-cas",
"Latn, Brai",
ancestors = "es-ear",
sort_key = {
Latn = {
remove_exceptions = {"ñ"},
remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron .. c.diaer .. c.cedilla,
from = {"ª", "æ", "ñ", "º", "œ"},
to = {"a", "ae", "n" .. p[1], "o", "oe"}
},
},
standard_chars = {
Latn = "AaÁáBbCcDdEeÉéFfGgHhIiÍíJjLlMmNnÑñOoÓóPpQqRrSsTtUuÚúÜüVvXxYyZz",
Brai = c.braille,
c.punc
},
}
m["et"] = {
"Estonia",
9072,
"urj-fin",
"Latn",
sort_key = {
from = {
"š", "ž", "õ", "ä", "ö", "ü", -- 2 aksara
"z" -- 1 aksara
},
to = {
"s" .. p[1], "s" .. p[3], "w" .. p[1], "w" .. p[2], "w" .. p[3], "w" .. p[4],
"s" .. p[2]
}
},
standard_chars = "AaBbDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvÕõÄäÖöÜü" .. c.punc,
}
m["eu"] = {
"Basque",
8752,
"euq",
"Latn",
sort_key = {
from = {"ç", "ñ"},
to = {"c" .. p[1], "n" .. p[1]}
},
standard_chars = "AaBbDdEeFfGgHhIiJjKkLlMmNnÑñOoPpRrSsTtUuXxZz" .. c.punc,
}
m["fa"] = {
"Parsi",
9168,
"ira-swi",
"Arab, Hebr",
ancestors = "fa-cls",
strip_diacritics = {
Arab = {
-- aksara "ۂ" kod U+06C2 kepada "ه" dan "هٔ" (U+0647 + U+0654) kepada "ه"; hamzatu l-waṣli kepada alif biasa
from = {"هٔ", "ٱ"}, -- aksara "ۂ" kod U+06C2 kepada "ه"; hamzatu l-waṣli kepada alif biasa
to = {"ه", "ا"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.superalef,
},
},
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
}
m["ff"] = {
"Fula",
33454,
"alv-fwo",
"Latn, Adlm",
}
m["fi"] = {
"Finland",
1412,
"urj-fin",
"Latn",
display_text = {
from = {"'"},
to = {"’"}
},
strip_diacritics = { -- digunakan untuk menunjukkan geminasi konsonan seterusnya
remove_diacritics = "ˣ",
from = {"’"},
to = {"'"},
},
sort_key = { -- [[Lampiran:Abjad Finland#Susunan]] + "aͤ" dan "oͤ" sebagai varian bersejarah bagi "ä" dan "ö".
remove_diacritics = "'’:" .. c.diacritics,
remove_exceptions = {
"a[" .. c.ringabove .. c.diaer .. c.small_e .. "]", -- åäaͤ
"o[" .. c.diaer .. c.tilde .. c.dacute .. c.small_e .. "]", -- öõőoͤ
"u[" .. c.diaer .. c.dacute .. "]" -- üű
},
from = {"æ", "[ðđ]", "ł", "ŋ", "œ", "ß", "þ", "u[" .. c.diaer .. c.dacute .. "]", "å", "aͤ", "o[" .. c.tilde .. c.dacute .. c.small_e .. "]", "ø", "(.)['%-]"},
to = {"ae", "d", "l", "n", "oe", "ss", "th", "y", "z" .. p[1], "ä", "ö", "ö", "%1"}
},
standard_chars = "AaBbDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvYyÄäÖö" .. c.punc,
}
m["fj"] = {
"Fiji",
33295,
"poz-pcc",
"Latn",
}
m["fo"] = {
"Faroe",
25258,
"gmq-ins",
"Latn",
sort_key = {
from = {"á", "ð", "í", "ó", "ú", "ý", "æ", "ø"},
to = {"a" .. p[1], "d" .. p[1], "i" .. p[1], "o" .. p[1], "u" .. p[1], "y" .. p[1], "z" .. p[1], "z" .. p[2]}
},
standard_chars = "AaÁáBbDdÐðEeFfGgHhIiÍíJjKkLlMmNnOoÓóPpRrSsTtUuÚúVvYyÝýÆæØø" .. c.punc,
}
m["fr"] = {
"Perancis",
150,
"roa-oil",
"Latn, Brai",
ancestors = "frm",
sort_key = {
Latn = s["roa-oil-sortkey"]
},
standard_chars = {
Latn = "AaÀàÂâBbCcÇçDdEeÉéÈèÊêËëFfGgHhIiÎîÏïJjLlMmNnOoÔôŒœPpQqRrSsTtUuÙùÛûÜüVvXxYyZz",
Brai = c.braille,
c.punc
},
}
m["fy"] = {
"Frisia Barat",
27175,
"gmw-fri",
"Latn",
sort_key = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer,
from = {"y"},
to = {"i"}
},
standard_chars = "AaâäàÆæBbCcDdEeéêëèFfGgHhIiïìYyỳJjKkLlMmNnOoôöòPpRrSsTtUuúûüùVvWwZz" .. c.punc,
}
m["ga"] = {
"Ireland",
9142,
"cel-gae",
"Latn, Latg",
ancestors = "mga",
sort_key = {
remove_diacritics = c.acute,
from = {"ḃ", "ċ", "ḋ", "ḟ", "ġ", "ṁ", "ṗ", "ṡ", "ṫ"},
to = {"bh", "ch", "dh", "fh", "gh", "mh", "ph", "sh", "th"}
},
standard_chars = "AaÁáBbCcDdEeÉéFfGgHhIiÍíLlMmNnOoÓóPpRrSsTtUuÚúVv" .. c.punc,
}
m["gd"] = {
"Gaelik Scotland",
9314,
"cel-gae",
"Latn, Latg",
ancestors = "mga",
sort_key = {remove_diacritics = c.grave .. c.acute},
standard_chars = "AaÀàBbCcDdEeÈèFfGgHhIiÌìLlMmNnOoÒòPpRrSsTtUuÙù" .. c.punc,
}
m["gl"] = {
"Galicia",
9307,
"roa-gap",
"Latn",
sort_key = {
remove_diacritics = c.acute,
from = {"ñ"},
to = {"n" .. p[1]}
},
standard_chars = "AaÁáBbCcDdEeÉéFfGgHhIiÍíÏïLlMmNnÑñOoÓóPpQqRrSsTtUuÚúÜüVvXxZz" .. c.punc,
}
m["gu"] = {
"Gujerat",
5137,
"inc-wes",
"Arab, Gujr",
ancestors = "inc-mgu",
translit = {
Gujr = "gu-translit",
},
strip_diacritics = {
Arab = {remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.kasra .. c.shadda .. c.sukun},
Gujr = {remove_diacritics = "઼"},
},
}
m["gv"] = {
"Manx",
12175,
"cel-gae",
"Latn",
ancestors = "mga",
sort_key = {remove_diacritics = c.cedilla .. "-"},
standard_chars = "AaBbCcÇçDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwYy" .. c.punc,
}
m["ha"] = {
"Hausa",
56475,
"cdc-wst",
"Latn, Arab",
strip_diacritics = {
Latn = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron}
},
sort_key = {
Latn = {
from = {"ɓ", "b'", "ɗ", "d'", "ƙ", "k'", "sh", "ƴ", "'y"},
to = {"b" .. p[1], "b" .. p[2], "d" .. p[1], "d" .. p[2], "k" .. p[1], "k" .. p[2], "s" .. p[1], "y" .. p[1], "y" .. p[2]}
},
},
}
m["he"] = {
"Ibrani",
9288,
"sem-can",
"Hebr, Phnx, Brai, Samr",
ancestors = "he-med",
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
-- strip_diacritics, sort_key Samr dalam [[Module:scripts/data]]
-- translit Phnx dalam [[Module:scripts/data]] (NOTA: tidak hadir sebelum ini, mungkin ketinggalan secara tidak sengaja)
}
m["hi"] = {
"Hindi",
1568,
"inc-hnd",
"Deva, Kthi, Newa",
translit = {
Deva = "hi-translit"
},
standard_chars = {
Deva = "अआइईउऊएऐओऔकखगघङचछजझञटठडढणतथदधनपफबभमयरलवशषसहत्रज्ञक्षक़ख़ग़ज़झ़ड़ढ़फ़काखागाघाङाचाछाजाझाञाटाठाडाढाणाताथादाधानापाफाबाभामायारालावाशाषासाहात्राज्ञाक्षाक़ाख़ाग़ाज़ाझ़ाड़ाढ़ाफ़ाकिखिगिघिङिचिछिजिझिञिटिठिडिढिणितिथिदिधिनिपिफिबिभिमियिरिलिविशिषिसिहित्रिज्ञिक्षिक़िख़िग़िज़िझ़िड़िढ़िफ़िकीखीगीघीङीचीछीजीझीञीटीठीडीढीणीतीथीदीधीनीपीफीबीभीमीयीरीलीवीशीषीसीहीत्रीज्ञीक्षीक़ीख़ीग़ीज़ीझ़ीड़ीढ़ीफ़ीकुखुगुघुङुचुछुजुझुञुटुठुडुढुणुतुथुदुधुनुपुफुबुभुमुयुरुलुवुशुषुसुहुत्रुज्ञुक्षुक़ुख़ुग़ुज़ुझ़ुड़ुढ़ुफ़ुकूखूगूघूङूचूछूजूझूञूटूठूडूढूणूतूथूदूधूनूपूफूबूभूमूयूरूलूवूशूषूसूहूत्रूज्ञूक्षूक़ूख़ूग़ूज़ूझ़ूड़ूढ़ूफ़ूकेखेगेघेङेचेछेजेझेञेटेठेडेढेणेतेथेदेधेनेपेफेबेभेमेयेरेलेवेशेषेसेहेत्रेज्ञेक्षेक़ेख़ेग़ेज़ेझ़ेड़ेढ़ेफ़ेकैखैगैघैङैचैछैजैझैञैटैठैडैढैणैतैथैदैधैनैपैफैबैभैमैयैरैलैवैशैषैसैहैत्रैज्ञैक्षैक़ैख़ैग़ैज़ैझ़ैड़ैढ़ैफ़ैकोखोगोघोङोचोछोजोझोञोटोठोडोढोणोतोथोदोधोनोपोफोबोभोमोयोरोलोवोशोषोसोहोत्रोज्ञोक्षोक़ोख़ोग़ोज़ोझ़ोड़ोढ़ोफ़ोकौखौगौघौङौचौछौजौझौञौटौठौडौढौणौतौथौदौधौनौपौफौबौभौमौयौरौलौवौशौषौसौहौत्रौज्ञौक्षौक़ौख़ौग़ौज़ौझ़ौड़ौढ़ौफ़ौक्ख्ग्घ्ङ्च्छ्ज्झ्ञ्ट्ठ्ड्ढ्ण्त्थ्द्ध्न्प्फ्ब्भ्म्य्र्ल्व्श्ष्स्ह्त्र्ज्ञ्क्ष्क़्ख़्ग़्ज़्झ़्ड़्ढ़्फ़्।॥०१२३४५६७८९॰",
c.punc
},
}
m["ho"] = {
"Hiri Motu",
33617,
"crp",
"Latn",
ancestors = "meu",
}
m["ht"] = {
"Kreol Haiti",
33491,
"crp",
"Latn",
ancestors = "ht-sdm",
sort_key = {
from = {
"oun", -- 3 aksara
"an", "ch", "è", "en", "ng", "ò", "on", "ou", "ui" -- 2 aksara
},
to = {
"o" .. p[4],
"a" .. p[1], "c" .. p[1], "e" .. p[1], "e" .. p[2], "n" .. p[1], "o" .. p[1], "o" .. p[2], "o" .. p[3], "u" .. p[1]
}
},
}
m["hu"] = {
"Hungary",
9067,
"urj-ugr",
"Latn, Hung",
ancestors = "ohu",
sort_key = {
Latn = {
from = {
"dzs", -- 3 aksara
"á", "cs", "dz", "é", "gy", "í", "ly", "ny", "ó", "ö", "ő", "sz", "ty", "ú", "ü", "ű", "zs", -- 2 aksara
},
to = {
"d" .. p[2],
"a" .. p[1], "c" .. p[1], "d" .. p[1], "e" .. p[1], "g" .. p[1], "i" .. p[1], "l" .. p[1], "n" .. p[1], "o" .. p[1], "o" .. p[2], "o" .. p[3], "s" .. p[1], "t" .. p[1], "u" .. p[1], "u" .. p[2], "u" .. p[3], "z" .. p[1],
}
},
},
standard_chars = {
Latn = "AaÁáBbCcDdEeÉéFfGgHhIiÍíJjKkLlMmNnOoÓóÖöŐőPpQqRrSsTtUuÚúÜüŰűVvWwXxYyZz",
c.punc
},
}
m["hy"] = {
"Armenia",
8785,
"hyx",
"Armn, Brai",
ancestors = "axm",
-- translit Armn dalam [[Module:scripts/data]]
override_translit = true,
strip_diacritics = {
Armn = {
remove_diacritics = "՛՜՞՟",
from = {"եւ", "<sup>յ</sup>", "<sup>ի</sup>", "<sup>է</sup>", "յ̵", "ՙ", "՚"},
to = {"և", "յ", "ի", "է", "ֈ", "ʻ", "’"}
},
},
sort_key = {
Armn = {
from = {
"ու", "եւ", -- 2 aksara
"և" -- 1 aksara
},
to = {
"ւ", "եվ",
"եվ"
}
},
},
}
m["hz"] = {
"Herero",
33315,
"bnt-swb",
"Latn",
}
m["ia"] = {
"Interlingua",
35934,
"art",
"Latn",
}
m["id"] = {
"Indonesia",
9240,
"poz-mly",
"Latn",
ancestors = "ms",
standard_chars = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz" .. c.punc,
}
m["ie"] = {
"Interlingue",
35850,
"art",
"Latn",
type = "appendix-constructed",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ},
}
m["ig"] = {
"Igbo",
33578,
"alv-igb",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.macron},
sort_key = {
from = {"gb", "gh", "gw", "ị", "kp", "kw", "ṅ", "nw", "ny", "ọ", "sh", "ụ"},
to = {"g" .. p[1], "g" .. p[2], "g" .. p[3], "i" .. p[1], "k" .. p[1], "k" .. p[2], "n" .. p[1], "n" .. p[2], "n" .. p[3], "o" .. p[1], "s" .. p[1], "u" .. p[1]}
},
}
m["ii"] = {
"Nuosu",
34235,
"tbq-nlo",
"Yiii",
translit = "ii-translit",
}
m["ik"] = {
"Inupiaq",
27183,
"esx-inu",
"Latn",
sort_key = {
from = {
"ch", "ġ", "dj", "ḷ", "ł̣", "ñ", "ng", "r̂", "sr", "zr", -- 2 aksara
"ł", "ŋ", "ʼ" -- 1 aksara
},
to = {
"c" .. p[1], "g" .. p[1], "h" .. p[1], "l" .. p[1], "l" .. p[3], "n" .. p[1], "n" .. p[2], "r" .. p[1], "s" .. p[1], "z" .. p[1],
"l" .. p[2], "n" .. p[2], "z" .. p[2]
}
},
}
m["io"] = {
"Ido",
35224,
"art",
"Latn",
}
m["is"] = {
"Iceland",
294,
"gmq-ins",
"Latn",
sort_key = {
from = {"á", "ð", "é", "í", "ó", "ú", "ý", "þ", "æ", "ö"},
to = {"a" .. p[1], "d" .. p[1], "e" .. p[1], "i" .. p[1], "o" .. p[1], "u" .. p[1], "y" .. p[1], "z" .. p[1], "z" .. p[2], "z" .. p[3]}
},
standard_chars = "AaÁáBbDdÐðEeÉéFfGgHhIiÍíJjKkLlMmNnOoÓóPpRrSsTtUuÚúVvXxYyÝýÞþÆæÖö" .. c.punc,
}
m["it"] = {
"Itali",
652,
"roa-itr",
"Latn",
ancestors = "roa-oit",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer .. c.ringabove},
standard_chars = "AaÀàBbCcDdEeÈèÉéFfGgHhIiÌìLlMmNnOoÒòPpQqRrSsTtUuÙùVvZz" .. c.punc,
}
m["iu"] = {
"Inuktitut",
29921,
"esx-inu",
"Cans, Latn",
translit = {
Cans = "cr-translit"
},
override_translit = true,
}
m["ja"] = {
"Jepun",
5287,
"jpx",
"Jpan, Latn, Brai",
ancestors = "ja-ear",
translit = s["jpx-translit"],
link_tr = true,
display_text = s["jpx-displaytext"],
strip_diacritics = s["jpx-stripdiacritics"],
sort_key = s["jpx-sortkey"],
}
m["jv"] = {
"Jawa",
33549,
"poz",
"Latn, Java, Arab",
ancestors = "kaw",
translit = {
Java = "jv-translit"
},
link_tr = true,
strip_diacritics = {
Latn = {remove_diacritics = c.circ} -- jv moden tidak menggunakan ê
},
sort_key = {
Latn = {
from = {"å", "dh", "é", "è", "ng", "ny", "th"},
to = {"a" .. p[1], "d" .. p[1], "e" .. p[1], "e" .. p[2], "n" .. p[1], "n" .. p[2], "t" .. p[1]}
},
},
}
m["ka"] = {
"Georgia",
8108,
"ccs-gzn",
"Geor, Geok, Hebr", -- Hebr digunakan untuk menulis Judeo-Georgia
ancestors = "ka-mid",
-- translit Geor, Geok dalam [[Module:scripts/data]]
override_translit = true,
strip_diacritics = {
Geor = s["ka-stripdiacritics"],
Geok = s["ka-stripdiacritics"],
},
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
}
m["kg"] = {
"Kongo",
33702,
"bnt-kng",
"Latn",
}
m["ki"] = {
"Kikuyu",
33587,
"bnt-kka",
"Latn",
}
m["kj"] = {
"Kwanyama",
1405077,
"bnt-ova",
"Latn",
}
m["kk"] = {
"Kazakh",
9252,
"trk-kno",
"Cyrl, Latn, Arab",
translit = "kk-translit",
-- override_translit = true,
sort_key = {
Cyrl = {
from = {"ә", "ғ", "ё", "қ", "ң", "ө", "ұ", "ү", "һ", "і"},
to = {"а" .. p[1], "г" .. p[1], "е" .. p[1], "к" .. p[1], "н" .. p[1], "о" .. p[1], "у" .. p[1], "у" .. p[2], "х" .. p[1], "ы" .. p[1]}
},
},
standard_chars = {
Cyrl = "АаӘәБбВвГгҒғДдЕеЁёЖжЗзИиЙйКкҚқЛлМмНнҢңОоӨөПпРрСсТтУуҰұҮүФфХхҺһЦцЧчШшЩщЪъЫыІіЬьЭэЮюЯя",
c.punc
},
}
m["kl"] = {
"Greenland",
25355,
"esx-inu",
"Latn",
sort_key = {
from = {"æ", "ø", "å"},
to = {"z" .. p[1], "z" .. p[2], "z" .. p[3]}
}
}
m["km"] = {
"Khmer",
9205,
"mkh-kmr",
"Khmr",
ancestors = "xhm",
translit = "km-translit", -- Ini mungkin memberikan hasil yang tidak diingini melainkan entrinya mempunyai {{km-IPA}}.
}
m["kn"] = {
"Kannada",
33673,
"dra-kan",
"Knda, Tutg",
ancestors = "dra-mkn",
-- translit Knda dalam [[Module:scripts/data]]
}
m["ko"] = {
"Korea",
9176,
"qfa-kor",
"Kore, Brai",
ancestors = "ko-ear",
translit = {
Kore = "ko-translit",
},
-- strip_diacritics Kore dalam [[Module:scripts/data]]
}
m["kr"] = {
"Kanuri",
36094,
"ssa-sah",
"Latn, Arab",
-- sortkey dan strip_diacritics hanya untuk Kanuri piawai; apabila entri dialek ditambah, seseorang perlu memikirkan bagaimana dialek harus diwakili secara ortografi
strip_diacritics = {
Latn = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.breve}
},
sort_key = {
Latn = {
from = {"ǝ", "ny", "ɍ", "sh"},
to = {"e" .. p[1], "n" .. p[1], "r" .. p[1], "s" .. p[1]}
},
},
}
m["ks"] = {
"Kashmir",
33552,
"inc-kas",
"Aran, Deva, Shrd, Latn",
translit = {
Aran = "ks-Aran-translit",
Deva = "ks-Deva-translit",
-- translit Shrd dalam [[Module:scripts/data]]
},
}
-- "kv" dilayan sebagai "koi", "kpv", lihat [[WT:LT]]
m["kw"] = {
"Cornish",
25289,
"cel-brs",
"Latn",
ancestors = "cnx",
sort_key = {
from = {"ch"},
to = {"c" .. p[1]}
},
}
m["ky"] = {
"Kyrgyz",
9255,
"trk-kkp",
"Cyrl, Latn, Arab",
translit = {
Cyrl = "ky-translit"
},
override_translit = true,
sort_key = {
Cyrl = {
from = {"ё", "ң", "ө", "ү"},
to = {"е" .. p[1], "н" .. p[1], "о" .. p[1], "у" .. p[1]}
},
},
}
m["la"] = {
"Latin",
397,
"itc-laf",
"Latn, Ital",
ancestors = "itc-ola",
-- translit Ital dalam [[Module:scripts/data]] (NOTA: tidak hadir sebelum ini, mungkin ketinggalan secara tidak sengaja)
display_text = {
Latn = s["itc-Latn-displaytext"]
},
strip_diacritics = {
Latn = s["itc-Latn-stripdiacritics"]
},
sort_key = {
Latn = s["itc-Latn-sortkey"]
},
standard_chars = {
Latn = "AaBbCcDdEeFfGgHhIiLlMmNnOoPpQqRrSsTtUuVvXx",
c.punc
},
}
m["lb"] = {
"Luxembourg",
9051,
"gmw-hgm",
"Latn, Brai",
ancestors = "gmw-cfr",
sort_key = {
Latn = {
from = {"ä", "ë", "é"},
to = {"z" .. p[1], "z" .. p[2], "z" .. p[3]}
},
},
}
m["lg"] = {
"Luganda",
33368,
"bnt-nyg",
"Latn",
strip_diacritics = {remove_diacritics = c.acute .. c.circ},
sort_key = {
from = {"ŋ"},
to = {"n" .. p[1]}
},
}
m["li"] = {
"Limburg",
102172,
"gmw-frk",
"Latn",
ancestors = "dum",
}
m["ln"] = {
"Lingala",
36217,
"bnt-bmo",
"Latn",
sort_key = {
remove_diacritics = c.acute .. c.circ .. c.caron,
from = {"ɛ", "gb", "mb", "mp", "nd", "ng", "nk", "ns", "nt", "ny", "nz", "ɔ"},
to = {"e" .. p[1], "g" .. p[1], "m" .. p[1], "m" .. p[2], "n" .. p[1], "n" .. p[2], "n" .. p[3], "n" .. p[4], "n" .. p[5], "n" .. p[6], "n" .. p[7], "o" .. p[1]}
},
}
m["lo"] = {
"Lao",
9211,
"tai-swe",
"Laoo", -- juga tulisan Tai Noi/Lao Buhan
translit = "lo-translit",
sort_key = "Laoo-sortkey",
standard_chars = "0-9ກຂຄງຈຊຍດຕຖທນບປຜຝພຟມຢຣລວສຫອຮຯ-ໝ" .. c.punc,
}
m["lt"] = {
"Lithuania",
9083,
"bat-eas",
"Latn",
ancestors = "olt",
display_text = "lt-common",
strip_diacritics = "lt-common",
sort_key = "lt-common",
standard_chars = "AaĄąBbCcČčDdEeĘęĖėFfGgHhIiĮįYyJjKkLlMmNnOoPpRrSsŠšTtUuŲųŪūVvZzŽž" .. c.punc,
}
m["lu"] = {
"Luba-Katanga",
36157,
"bnt-lub",
"Latn",
}
m["lv"] = {
"Latvia",
9078,
"bat-eas",
"Latn",
strip_diacritics = {
-- Ini cuba menukar vokal bertanda nada kepada vokal sama ada dengan atau tanpa makron. Khususnya, tidak sepatutnya ada makron jika vokal adalah sebahagian daripada diftong (termasuk diftong resonan seperti pìrksts -> pirksts bukan #pīrksts). Apa yang kita lakukan mula-mula adalah menukar vokal + tanda nada kepada vokal + tilde secara terurai, kemudian membuang tilde dalam diftong, seterusnya menukar baki jujukan vokal + tilde kepada vokal bermakron, dan akhirnya memadam sebarang tilde lain. Kita biarkan vokal yang sudah bermakron: Kedua-dua contohnya ar dan ār berlaku sebelum konsonan. BAIKI: Ini mungkin masih tidak mencukupi.
from = {"([Ee])" .. c.cedilla, "[" .. c.grave .. c.circ .. c.tilde .."]", "([aAeEiIoOuU])" .. c.tilde .."?([lrnmuiLRNMUI])" .. c.tilde .. "?([^aAeEiIoOuU])", "([aAeEiIoOuU])" .. c.tilde .."?([lrnmuiLRNMUI])" .. c.tilde .."?$", "([iI])" .. c.tilde .. "?([eE])" .. c.tilde .. "?", "([aAeEiIuU])" .. c.tilde, c.tilde},
to = {"%1", c.tilde, "%1%2%3", "%1%2", "%1%2", "%1" .. c.macron}
},
sort_key = {
from = {"ā", "č", "ē", "ģ", "ī", "ķ", "ļ", "ņ", "š", "ū", "ž"},
to = {"a" .. p[1], "c" .. p[1], "e" .. p[1], "g" .. p[1], "i" .. p[1], "k" .. p[1], "l" .. p[1], "n" .. p[1], "s" .. p[1], "u" .. p[1], "z" .. p[1]}
},
standard_chars = "AaĀāBbCcČčDdEeĒēFfGgĢģHhIiĪīJjKkĶķLlĻļMmNnŅņOoPpRrSsŠšTtUuŪūVvZzŽž" .. c.punc,
}
m["mg"] = {
"Malagasi",
7930,
"poz-bre",
"Latn, Arab",
}
m["mh"] = {
"Marshall",
36280,
"poz-mic",
"Latn",
sort_key = {
from = {"ā", "ļ", "m̧", "ņ", "n̄", "o̧", "ō", "ū"},
to = {"a" .. p[1], "l" .. p[1], "m" .. p[1], "n" .. p[1], "n" .. p[2], "o" .. p[1], "o" .. p[2], "u" .. p[1]}
},
}
m["mi"] = {
"Māori",
36451,
"poz-pep",
"Latn",
sort_key = {
remove_diacritics = c.macron,
from = {"ng", "wh"},
to = {"n" .. p[1], "w" .. p[1]}
},
}
m["mk"] = {
"Macedonia",
9296,
"zls",
"Cyrl, Polyt",
ancestors = "cu",
translit = {
Cyrl = "mk-translit",
-- BAIKI: dahulunya tiada translit ditentukan untuk Polyt; tidak jelas sama ada lalai [[Module:grc-translit]] boleh diterima, jadi kita lumpuhkannya buat masa ini
Polyt = false,
},
strip_diacritics = {
Cyrl = {
remove_diacritics = c.acute,
remove_exceptions = {"Ѓ", "ѓ", "Ќ", "ќ"}
},
},
sort_key = {
Cyrl = {
remove_diacritics = c.grave,
remove_exceptions = {"ѓ", "ќ"},
from = {"ѓ", "ѕ", "ј", "љ", "њ", "ќ", "џ"},
to = {"д" .. p[1], "з" .. p[1], "и" .. p[1], "л" .. p[1], "н" .. p[1], "т" .. p[1], "ч" .. p[1]}
},
},
-- display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
standard_chars = {
Cyrl = "АаБбВвГгДдЃѓЕеЖжЗзЅѕИиЈјКкЛлЉљМмНнЊњОоПпРрСсТтЌќУуФфХхЦцЧчЏџШш",
c.punc
},
}
m["ml"] = {
"Malayalam",
36236,
"dra-mal",
"Mlym",
override_translit = true,
-- translit Mlym dalam [[Module:scripts/data]]
}
m["mn"] = {
"Mongolia",
9246,
"xgn-cen",
"Cyrl, Mong, Latn, Brai",
ancestors = "cmg",
translit = {
Cyrl = "mn-translit",
-- translit Mong dalam [[Module:scripts/data]]
},
override_translit = true,
-- display_text dan strip_diacritics Mong dalam [[Module:scripts/data]]
strip_diacritics = {
Cyrl = {remove_diacritics = c.grave .. c.acute},
},
sort_key = {
Cyrl = {
remove_diacritics = c.grave,
from = {"ё", "ө", "ү"},
to = {"е" .. p[1], "о" .. p[1], "у" .. p[1]}
},
},
standard_chars = {
Cyrl = "АаБбВвГгДдЕеЁёЖжЗзИиЙйЛлМмНнОоӨөРрСсТтУуҮүХхЦцЧчШшЫыЬьЭэЮюЯя—",
Brai = c.braille,
c.punc
},
}
-- "mo" dilayan sebagai "ro", lihat [[WT:LT]]
m["mr"] = {
"Marathi",
1571,
"inc-sou",
"Deva, Modi",
ancestors = "omr",
translit = {
Deva = "mr-translit",
Modi = "mr-Modi-translit",
},
strip_diacritics = {
Deva = {
from = {"च़", "ज़", "झ़"},
to = {"च", "ज", "झ"}
},
},
}
m["ms"] = {
"Melayu",
9237,
"poz-mly",
"Latn, Arab",
ancestors = "ms-cla",
standard_chars = {
Latn = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz",
c.punc
},
}
m["mt"] = {
"Malta",
9166,
"sem-arb",
"Latn",
display_text = {
from = {"'"},
to = {"’"}
},
strip_diacritics = {
from = {"’"},
to = {"'"},
},
ancestors = "sqr",
sort_key = {
from = {
"ċ", "ġ", "ż", -- Tukar ke dalam PUA supaya bentuk terurai tidak ditangkap oleh langkah seterusnya.
"([cgz])", -- Pastikan "c" datang selepas "ċ", "g" datang selepas "ġ" dan "z" datang selepas "ż".
"g" .. p[1] .. "ħ", -- "għ" selepas penukaran awal "g".
p[3], p[4], "ħ", "ie", p[5] -- Tukar "ċ", "ġ", "ħ", "ie", "ż" kepada output akhir.
},
to = {
p[3], p[4], p[5],
"%1" .. p[1],
"g" .. p[2],
"c", "g", "h" .. p[1], "i" .. p[1], "z"
}
},
}
m["my"] = {
"Burma",
9228,
"tbq-brm",
"Mymr",
ancestors = "obr",
translit = "my-translit",
override_translit = true,
sort_key = {
from = {"ျ", "ြ", "ွ", "ှ", "ဿ"},
to = {"္ယ", "္ရ", "္ဝ", "္ဟ", "သ္သ"}
},
}
m["na"] = {
"Nauru",
13307,
"poz-mic",
"Latn",
}
m["nb"] = {
"Bokmål Norway",
25167,
"gmq",
"Latn",
wikimedia_codes = "no",
ancestors = "gmq-mno, da", -- da sebagai satu (tetapi bukan satu-satunya) leluhur kepada nb telah dipersetujui - jangan tukar tanpa perbincangan
sort_key = s["no-sortkey"],
standard_chars = s["no-standardchars"],
}
m["nd"] = {
"Ndebele Utara",
35613,
"bnt-ngu",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},
}
m["ne"] = {
"Nepal",
33823,
"inc-pae",
"Deva, Newa",
translit = {
Deva = "ne-translit"
},
}
m["ng"] = {
"Ndonga",
33900,
"bnt-ova",
"Latn",
}
m["nl"] = {
"Belanda",
7411,
"gmw-frk",
"Latn, Brai",
ancestors = "dum",
sort_key = {
Latn = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.diaer .. c.ringabove .. c.cedilla .. "'"},
},
standard_chars = {
Latn = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZzÄäËëÏïÖöÜü",
Brai = c.braille,
c.punc
},
}
m["nn"] = {
"Nynorsk Norway",
25164,
"gmq-wes",
"Latn",
ancestors = "gmq-mno",
strip_diacritics = {
remove_diacritics = c.grave .. c.acute,
},
sort_key = s["no-sortkey"],
standard_chars = s["no-standardchars"],
}
m["no"] = {
"Norway",
9043,
"gmq-wes",
"Latn",
ancestors = "gmq-mno",
sort_key = s["no-sortkey"],
standard_chars = s["no-standardchars"],
}
m["nr"] = {
"Ndebele Selatan",
36785,
"bnt-ngu",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},
}
m["nv"] = {
"Navajo",
13310,
"apa",
"Latn, Brai",
sort_key = {
remove_diacritics = c.acute .. c.ogonek,
from = {
"chʼ", "tłʼ", "tsʼ", -- 3 aksara
"ch", "dl", "dz", "gh", "hw", "kʼ", "kw", "sh", "tł", "ts", "zh", -- 2 aksara
"ł", "ʼ" -- 1 aksara
},
to = {
"c" .. p[2], "t" .. p[2], "t" .. p[4],
"c" .. p[1], "d" .. p[1], "d" .. p[2], "g" .. p[1], "h" .. p[1], "k" .. p[1], "k" .. p[2], "s" .. p[1], "t" .. p[1], "t" .. p[3], "z" .. p[1],
"l" .. p[1], "z" .. p[2]
}
},
}
m["ny"] = {
"Chichewa",
33273,
"bnt-nys",
"Latn",
strip_diacritics = {remove_diacritics = c.acute .. c.circ},
sort_key = {
from = {"ng'"},
to = {"ng"}
},
}
m["oc"] = {
"Occitan",
14185,
"roa-ocr",
"Latn, Hebr",
ancestors = "pro",
sort_key = {
Latn = {
remove_diacritics = c.grave .. c.acute .. c.diaer .. c.cedilla,
from = {"([lns])·h"},
to = {"%1h"}
},
},
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
}
m["oj"] = {
"Ojibwe",
33875,
"alg",
"Cans, Latn",
sort_key = {
Latn = {
from = {"aa", "ʼ", "ii", "oo", "sh", "zh"},
to = {"a" .. p[1], "h" .. p[1], "i" .. p[1], "o" .. p[1], "s" .. p[1], "z" .. p[1]}
},
},
}
m["om"] = {
"Oromo",
33864,
"cus-eas",
"Latn, Ethi",
}
m["or"] = {
"Odia",
33810,
"inc-eas",
"Orya",
ancestors = "inc-mor",
translit = "or-translit",
}
m["os"] = {
"Ossetia",
33968,
"xsc-sar",
"Cyrl, Geor, Latn",
ancestors = "oos",
translit = {
Cyrl = "os-translit",
-- translit Geor dalam [[Module:scripts/data]]
},
override_translit = true,
display_text = {
Cyrl = {
from = {"æ", "Æ"},
to = {"ӕ", "Ӕ"}
},
Latn = {
from = {"ӕ", "Ӕ"},
to = {"æ", "Æ"}
},
},
strip_diacritics = {
Cyrl = {
remove_diacritics = c.grave .. c.acute,
from = {"æ", "Æ"},
to = {"ӕ", "Ӕ"}
},
Latn = {
from = {"ӕ", "Ӕ"},
to = {"æ", "Æ"}
},
},
sort_key = {
Cyrl = {
from = {"ӕ", "гъ", "дж", "дз", "ё", "къ", "пъ", "тъ", "хъ", "цъ", "чъ"},
to = {"а" .. p[1], "г" .. p[1], "д" .. p[1], "д" .. p[2], "е" .. p[1], "к" .. p[1], "п" .. p[1], "т" .. p[1], "х" .. p[1], "ц" .. p[1], "ч" .. p[1]}
},
},
}
m["pa"] = {
"Punjabi",
58635,
"inc-pan",
"Guru, Aran",
translit = {
Guru = "Guru-translit",
Aran = "pa-Aran-translit",
},
strip_diacritics = {
Aran = {
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna,
from = {"ݨ", "ࣇ"},
to = {"ن", "ل"}
},
},
}
m["pi"] = {
"Pali",
36727,
"inc-mid",
"Latn, Brah, Deva, Beng, Sinh, Mymr, Thai, Lana, Laoo, Khmr, Cakm", -- dan juga Khom
ancestors = "sa",
translit = {
-- translit Brah dalam [[Module:scripts/data]]
Deva = "sa-translit",
Beng = "pi-translit",
Sinh = "si-translit",
Mymr = "pi-translit",
Thai = "pi-translit",
Lana = "pi-translit",
Laoo = "pi-translit",
Khmr = "pi-translit",
Cakm = "Cakm-translit",
},
strip_diacritics = {
Thai = {
from = {"ึ", u(0xF700), u(0xF70F)}, -- BAIKI: Tidak jelas apa yang berlaku dengan aksara-aksara PUA di sini.
to = {"ิํ", "ฐ", "ญ"}
},
Mymr = {
remove_diacritics = c.VS01,
},
},
sort_key = { -- BAIKI: Ini perlu ditukar kepada format standard semasa.
from = {"ā", "ī", "ū", "ḍ", "ḷ", "m[" .. c.dotabove .. c.dotbelow .. "]", "ṅ", "ñ", "ṇ", "ṭ", "ॐ", "([เโ])([ก-ฮ])", "([ເໂ])([ກ-ຮ])", "ᩔ", "ᩕ", "ᩖ", "ᩘ", "([ᨭ-ᨱ])ᩛ", "([ᨷ-ᨾ])ᩛ", "ᩤ", u(0xFE00), u(0x200D)},
to = {"a~", "i~", "u~", "d~", "l~", "m~", "n~", "n~~", "n~~~", "t~", "ओँ", "%2%1", "%2%1", "ᩈ᩠ᩈ", "᩠ᩁ", "᩠ᩃ", "ᨦ᩠", "%1᩠ᨮ", "%1᩠ᨻ", "ᩣ"}
},
}
m["pl"] = {
"Poland",
809,
"zlw-lch",
"Latn",
ancestors = "zlw-mpl",
sort_key = {
from = {"ą", "ć", "ę", "ł", "ń", "ó", "ś", "ź", "ż"},
to = {"a" .. p[1], "c" .. p[1], "e" .. p[1], "l" .. p[1], "n" .. p[1], "o" .. p[1], "s" .. p[1], "z" .. p[1], "z" .. p[2]}
},
standard_chars = "AaĄąBbCcĆćDdEeĘęFfGgHhIiJjKkLlŁłMmNnŃńOoÓóPpRrSsŚśTtUuWwYyZzŹźŻż" .. c.punc,
}
m["ps"] = {
"Pashto",
58680,
"ira-pat",
"Arab",
strip_diacritics = {remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.zwarakay .. c.superalef},
}
m["pt"] = {
"Portugis",
5146,
"roa-gap",
"Latn, Brai",
sort_key = {
Latn = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron .. c.diaer .. c.cedilla,
from = {"ª", "æ", "º", "œ"},
to = {"a", "ae", "o", "oe"}
},
},
standard_chars = {
Latn = "AaÁáÂâÃãBbCcÇçDdEeÉéÊêFfGgHhIiÍíJjLlMmNnOoÓóÔôÕõPpQqRrSsTtUuÚúVvXxZz",
Brai = c.braille,
c.punc
},
}
m["qu"] = {
"Quechua",
5218,
"qwe",
"Latn",
}
m["rm"] = {
"Romansh",
13199,
"roa-rhe",
ancestors = "rm-old",
"Latn",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.diaer .. c.small_e},
}
m["ro"] = {
"Romania",
7913,
"roa-eas",
"Latn, Cyrl, Cyrs",
translit = {
Cyrl = "ro-translit"
},
display_text = {
Latn = {
from = {"'", "ţ", "Ţ"},
to = {"’", "ț", "Ț"}
},
},
strip_diacritics = {
Latn = {
from = {"’", "ţ", "Ţ"},
to = {"'", "ț", "Ț"}
},
},
sort_key = {
Latn = {
remove_diacritics = c.grave .. c.acute,
from = {"ă", "â", "î", "ș", "[țţ]"},
to = {"a" .. p[1], "a" .. p[2], "i" .. p[1], "s" .. p[1], "t" .. p[1]}
},
Cyrl = {
from = {"ӂ"},
to = {"ж" .. p[1]}
},
},
-- strip_diacritics, sort_key Cyrs dalam [[Module:scripts/data]]; mungkin tidak hadir
standard_chars = {
Latn = "AaĂăÂâBbCcDdEeFfGgHhIiÎîJjLlMmNnOoPpRrSsȘșTtȚțUuVvXxZz",
Cyrl = "АаБбВвГгДдЕеЖжӁӂЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЫыЬьЭэЮюЯя",
c.punc
},
}
m["ru"] = {
"Rusia",
7737,
"zle",
"Cyrl, Brai",
ancestors = "zle-mru",
translit = {
Cyrl = "ru-translit"
},
display_text = {
Cyrl = {
from = {"'"},
to = {"’"}
},
},
strip_diacritics = {
Cyrl = {
remove_diacritics = c.grave .. c.acute .. c.diaer,
remove_exceptions = {"Ё", "ё", "Ѣ̈", "ѣ̈", "Я̈", "я̈"},
from = {"’"},
to = {"'"},
},
},
sort_key = {
Cyrl = {
remove_diacritics = c.grave .. c.acute .. c.diaer,
from = {
"і", "ѣ", "ѳ", "ѵ"
},
to = {
"и" .. p[1], "ь" .. p[1], "я" .. p[2], "я" .. p[3]
}
},
},
standard_chars = {
Cyrl = "АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя—",
Brai = c.braille,
(c.punc:gsub("'", "")) -- Kecualikan koma atas.
},
}
m["rw"] = {
"Rwanda-Rundi",
3217514,
"bnt-glb",
"Latn",
strip_diacritics = {remove_diacritics = c.acute .. c.circ .. c.macron .. c.caron},
}
m["sa"] = {
"Sanskrit",
11059,
"inc",
"as-Beng, Bali, Beng, Bhks, Brah, Mymr, xwo-Mong, Deva, Gujr, Guru, Gran, Hani, Java, Kthi, Knda, Kawi, Khar, Khmr, Laoo, Mlym, mnc-Mong, Marc, Modi, Mong, Nand, Newa, Orya, Phag, Ranj, Saur, Shrd, Sidd, Sinh, Soyo, Lana, Takr, Taml, Tang, Telu, Thai, Tibt, Tutg, Tirh, Zanb", -- dan juga Khom; kod skrip diisih mengikut nama kanonikal dan bukannya kod untuk [[MOD:sa-convert]]
translit = {
Beng = "sa-Beng-translit",
["as-Beng"] = "sa-Beng-translit",
-- translit Brah dalam [[Module:scripts/data]]
Deva = "sa-translit",
Gujr = "sa-Gujr-translit",
Guru = "sa-Guru-translit",
Java = "sa-Java-translit",
Kthi = "sa-Kthi-translit",
Khmr = "pi-translit",
Knda = "sa-Knda-translit",
Lana = "pi-translit",
Laoo = "pi-translit",
Mlym = "sa-Mlym-translit",
Modi = "sa-Modi-translit",
-- translit Mong, mnc-Mong, xwo-Mong dalam [[Module:scripts/data]]
-- NOTA: Dahulunya menggunakan xal-translit untuk mentransliterasi xwo-Mong tetapi itu hanya mengendalikan abjad Cyril; ia mempunyai
-- kod untuk mentransliterasi xwo-Mong tetapi ia rosak jadi saya telah menggantikannya dengan xwo-translit lalai.
Mymr = "pi-translit",
Orya = "sa-Orya-translit",
-- translit Shrd dalam [[Module:scripts/data]]
-- translit Sidd dalam [[Module:scripts/data]]
Sinh = "si-translit",
Taml = "sa-Taml-translit",
Telu = "sa-Telu-translit",
Thai = "pi-translit",
-- translit Tibt dalam [[Module:scripts/data]]
},
-- display_text dan strip_diacritics Mong dalam [[Module:scripts/data]]
-- display_text, strip_diacritics, sort_key Tibt dalam [[Module:scripts/data]]
strip_diacritics = {
Deva = s["sa-Deva-stripdiacritics"],
Mymr = {
remove_diacritics = c.VS01,
},
Thai = {
from = {"ึ", u(0xF700), u(0xF70F)}, -- BAIKI: Tidak jelas apa yang berlaku dengan aksara-aksara PUA di sini.
to = {"ิํ", "ฐ", "ญ"}
},
},
sort_key = {
Deva = s["sa-Deva-stripdiacritics"], -- sehingga kita mempunyai algoritma isihan Sanskrit yang wajar.
Lana = { -- Tai Tham
from = {"ᩔ", "ᩕ", "ᩖ", "ᩘ", "([ᨭ-ᨱ])ᩛ", "([ᨷ-ᨾ])ᩛ", "ᩤ"},
to = {"ᩈ᩠ᩈ", "᩠ᩁ", "᩠ᩃ", "ᨦ᩠", "%1᩠ᨮ", "%1᩠ᨻ", "ᩣ"},
},
Laoo = "Laoo-sortkey",
Latn = {
from = {"ā", "ī", "ū", "ḍ", "ḷ", "ḹ", "m[" .. c.dotabove .. c.dotbelow .. "]", "ṅ", "ñ", "ṇ", "ṛ", "ṝ", "ś", "ṣ", "ṭ"},
to = {"a~", "i~", "u~", "d~", "l~", "l~~", "m~", "n~", "n~~", "n~~~", "r~", "r~~", "s~", "s~~", "t~"},
},
Mymr = {
remove_diacritics = c.VS01,
},
Thai = "Thai-sortkey",
-- BAIKI: Kekunci isihan sebelumnya yang mencampurkan semua skrip membuang ZWJ; saya tidak tahu skrip mana yang ini
-- dimaksudkan dan tiada bahasa lain yang membuangnya dalam kekunci isihan setahu saya. Jika ia perlu
-- dibuang, nyatakan skrip yang ia perlu dibuang di bawahnya atau tambah pengendalian untuk skrip "all" yang terpakai
-- tanpa mengira skrip.
--all = {
-- remove_diacritics = c.ZWJ,
--},
},
}
m["sc"] = {
"Sardinia",
33976,
"roa-sou",
"Latn",
ancestors = "sc-old",
}
m["sd"] = {
"Sindhi",
33997,
"inc-snd",
"Arab, Deva, Sind, Khoj",
translit = {
Sind = "Sind-translit",
Arab = "sd-Arab-translit"
},
strip_diacritics = {
Arab = {
remove_diacritics = c.kashida .. c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.superalef,
from = {"ٱ"},
to = {"ا"}
},
},
}
m["se"] = {
"Sami Utara",
33947,
"smi",
"Latn",
display_text = {
from = {"'"},
to = {"ˈ"}
},
strip_diacritics = {remove_diacritics = c.macron .. c.dotbelow .. "'ˈ"},
sort_key = {
from = {"á", "č", "đ", "ŋ", "š", "ŧ", "ž"},
to = {"a" .. p[1], "c" .. p[1], "d" .. p[1], "n" .. p[1], "s" .. p[1], "t" .. p[1], "z" .. p[1]}
},
standard_chars = "AaÁáBbCcČčDdĐđEeFfGgHhIiJjKkLlMmNnŊŋOoPpRrSsŠšTtŦŧUuVvZzŽž" .. c.punc,
}
m["sg"] = {
"Sango",
33954,
"crp",
"Latn",
ancestors = "ngb",
}
m["sh"] = {
"Serbo-Croatia",
9301,
"zls",
"Latn, Cyrl, Glag, Arab",
ietf_subtag = "hbs", -- kod ISO 639-3, memandangkan "sh" telah lapuk daripada ISO 639-1
wikimedia_codes = "sh, bs, hr, sr",
strip_diacritics = {
Latn = {
remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron .. c.dgrave .. c.invbreve,
remove_exceptions = {"Ć", "ć", "Ś", "ś", "Ź", "ź"}
},
Cyrl = {
remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron .. c.dgrave .. c.invbreve,
remove_exceptions = {"З́", "з́", "С́", "с́"}
},
},
sort_key = {
Latn = {
remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron .. c.dgrave .. c.invbreve,
remove_exceptions = {"ć", "ś", "ź"},
from = {"č", "ć", "dž", "đ", "lj", "nj", "š", "ś", "ž", "ź"},
to = {"c" .. p[1], "c" .. p[2], "d" .. p[1], "d" .. p[2], "l" .. p[1], "n" .. p[1], "s" .. p[1], "s" .. p[2], "z" .. p[1], "z" .. p[2]}
},
Cyrl = {
remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron .. c.dgrave .. c.invbreve,
remove_exceptions = {"з́", "с́"},
from = {"ђ", "з́", "ј", "љ", "њ", "с́", "ћ", "џ"},
to = {"д" .. p[1], "з" .. p[1], "и" .. p[1], "л" .. p[1], "н" .. p[1], "с" .. p[1], "т" .. p[1], "ч" .. p[1]}
},
},
standard_chars = {
Latn = "AaBbCcČčĆćDdĐđEeFfGgHhIiJjKkLlMmNnOoPpRrSsŠšTtUuVvZzŽž",
Cyrl = "АаБбВвГгДдЂђЕеЖжЗзИиЈјКкЛлЉљМмНнЊњОоПпРрСсТтЋћУуФфХхЦцЧчЏџШш",
c.punc
},
}
m["si"] = {
"Sinhala",
13267,
"inc-ins",
"Sinh",
translit = "si-translit",
override_translit = true,
}
m["sk"] = {
"Slovak",
9058,
"zlw",
"Latn",
ancestors = "zlw-osk",
sort_key = {remove_diacritics = c.acute .. c.circ .. c.diaer .. c.caron},
standard_chars = "AaÁáÄäBbCcČčDdĎďEeÉéFfGgHhIiÍíJjKkLlĹ弾MmNnŇňOoÓóÔôPpRrŔŕSsŠšTtŤťUuÚúVvYyÝýZzŽž" .. c.punc,
}
m["sl"] = {
"Slovenia",
9063,
"zls",
"Latn",
strip_diacritics = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.dgrave .. c.invbreve .. c.dotbelow,
remove_exceptions = {"Ć", "ć", "Ǵ", "ǵ", "Ś", "ś", "Ź", "ź"},
from = {"Ə", "ə", "Ł", "ł"},
to = {"E", "e", "L", "l"},
},
sort_key = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron .. c.dotabove .. c.ringabove .. c.dgrave .. c.invbreve .. c.dotbelow .. c.ringbelow .. c.ogonek,
remove_exceptions = {"ć", "ǵ", "ś", "ź"},
from = {"ä", "č", "ć", "đ", "ə", "ë", "ǧ", "ǵ", "ï", "ł", "ö", "š", "ś", "ü", "ž", "ź"},
to = {"a" .. p[1], "c" .. p[1], "c" .. p[2], "d" .. p[1], "e", "e" .. p[1], "g" .. p[1], "g" .. p[2], "i" .. p[1], "l", "o" .. p[1], "s" .. p[1], "s" .. p[2], "u" .. p[1], "z" .. p[1], "z" .. p[2]},
},
standard_chars = "AaBbCcČčDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsŠšTtUuVvZzŽž" .. c.punc,
}
m["sm"] = {
"Samoa",
34011,
"poz-pnp",
"Latn",
}
m["sn"] = {
"Shona",
34004,
"bnt-sho",
"Latn",
strip_diacritics = {remove_diacritics = c.acute},
}
m["so"] = {
"Somali",
13275,
"cus-som",
"Latn, Arab, Osma",
strip_diacritics = {
Latn = {remove_diacritics = c.grave .. c.acute .. c.circ}
},
}
m["sq"] = {
"Albania",
8748,
"sqj",
"Latn, Grek, Arab, Elba, Todr, Vith",
translit = {
Elba = "Elba-translit",
Vith = "Vith-translit",
},
-- display_text, strip_diacritics, sort_key Grek dalam [[Module:scripts/data]]
strip_diacritics = {
Latn = {
remove_diacritics = c.acute .. c.circ .. c.macron,
from = {'^[ie] (%w)', '^të (%w)'}, to = {'%1', '%1'},
},
},
sort_key = {
Latn = {
remove_diacritics = c.acute .. c.circ .. c.macron .. c.tilde .. c.breve .. c.caron,
from = {'^[ie] (%w)', '^të (%w)', 'ç', 'dh', 'ë', 'gj', 'll', 'nj', 'rr', 'sh', 'th', 'xh', 'zh'},
to = {'%1', '%1', 'c'..p[1], 'd'..p[1], 'e'..p[1], 'g'..p[1], 'l'..p[1], 'n'..p[1], 'r'..p[1], 's'..p[1], 't'..p[1], 'x'..p[1], 'z'..p[1]},
}
-- TODO: Grek jika kekunci isihan lalai tidak sesuai
},
standard_chars = {
Latn = "AaBbCcÇçDdEeËëFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvXxYyZz",
c.punc
},
}
m["ss"] = {
"Swazi",
34014,
"bnt-ngu",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},
}
m["st"] = {
"Sotho",
34340,
"bnt-sts",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},
}
m["su"] = {
"Sunda",
34002,
"poz-msa",
"Latn, Sund, Arab",
ancestors = "osn",
translit = {
Sund = "Sund-translit"
},
}
m["sv"] = {
"Sweden",
9027,
"gmq-eas",
"Latn",
ancestors = "gmq-osw-lat",
sort_key = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron .. c.dacute .. c.caron .. c.cedilla .. "':",
remove_exceptions = {"å"},
from = {"ø", "æ", "œ", "ß", "ꜩ", "å", "aͤ", "oͤ"},
to = {"ö", "ae", "oe", "ss", "tz", "z" .. p[1], "ä", "ö"}
},
standard_chars = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpRrSsTtUuVvXxYyÅåÄäÖö" .. c.punc,
}
m["sw"] = {
"Swahili",
7838,
"bnt-swh",
"Latn, Arab",
sort_key = {
Latn = {
from = {"ng'"},
to = {"ng" .. p[1]}
},
},
}
m["ta"] = {
"Tamil",
5885,
"dra-tam",
"Taml",
ancestors = "ta-mid",
translit = "ta-translit",
override_translit = true,
}
m["te"] = {
"Telugu",
8097,
"dra-tel",
"Telu",
translit = "te-translit",
override_translit = true,
}
m["tg"] = {
"Tajik",
9260,
"ira-swi",
"Cyrl, Arab, Latn",
ancestors = "fa-cls",
translit = {
Cyrl = "tg-translit"
},
override_translit = true,
strip_diacritics = {
Cyrl = s["tg-stripdiacritics"],
Latn = s["tg-stripdiacritics"],
},
sort_key = {
Cyrl = {
from = {"ғ", "ё", "ӣ", "қ", "ӯ", "ҳ", "ҷ"},
to = {"г" .. p[1], "е" .. p[1], "и" .. p[1], "к" .. p[1], "у" .. p[1], "х" .. p[1], "ч" .. p[1]}
},
},
}
m["th"] = {
"Thai",
9217,
"tai-swe",
"Thai, Khomt, Brai",
translit = {
Thai = "th-translit"
},
sort_key = {
Thai = "Thai-sortkey"
},
}
m["ti"] = {
"Tigrinya",
34124,
"sem-eth",
"Ethi",
translit = "Ethi-translit",
}
m["tk"] = {
"Turkmen",
9267,
"trk-ogz",
"Latn, Cyrl, Arab",
strip_diacritics = {
Latn = s["tk-stripdiacritics"],
Cyrl = s["tk-stripdiacritics"],
},
sort_key = {
Latn = {
from = {"ç", "ä", "ž", "ň", "ö", "ş", "ü", "ý"},
to = {"c" .. p[1], "e" .. p[1], "j" .. p[1], "n" .. p[1], "o" .. p[1], "s" .. p[1], "u" .. p[1], "y" .. p[1]}
},
Cyrl = {
from = {"ё", "җ", "ң", "ө", "ү", "ә"},
to = {"е" .. p[1], "ж" .. p[1], "н" .. p[1], "о" .. p[1], "у" .. p[1], "э" .. p[1]}
},
},
ancestors = "trk-eog",
}
m["tl"] = {
"Tagalog",
34057,
"phi",
"Latn, Tglg",
translit = {
Tglg = "tl-translit"
},
override_translit = true,
strip_diacritics = {
Latn = {remove_diacritics = c.grave .. c.acute .. c.circ}
},
standard_chars = {
Latn = "AaBbKkDdEeGgHhIiLlMmNnOoPpRrSsTtUuWwYy",
c.punc
},
sort_key = {
Latn = "tl-sortkey",
},
}
m["tn"] = {
"Tswana",
34137,
"bnt-sts",
"Latn",
}
m["to"] = {
"Tonga",
34094,
"poz-ton",
"Latn",
strip_diacritics = {remove_diacritics = c.acute},
sort_key = {remove_diacritics = c.macron},
}
m["tr"] = {
"Turki",
256,
"trk-ogz",
"Latn",
ancestors = "ota",
dotted_dotless_i = true,
sort_key = {
from = {
-- Abaikan sirkumfleks, tetapi ambil kira Î besar tersilap menjadi ı + circ kerana logik i dengan/tanpa titik.
"ı" .. c.circ, c.circ,
"i", -- Pastikan "i" datang selepas "ı".
"ç", "ğ", "ı", "ö", "ş", "ü"
},
to = {
"i", "",
"i" .. p[1],
"c" .. p[1], "g" .. p[1], "i", "o" .. p[1], "s" .. p[1], "u" .. p[1]
}
},
standard_chars = "AaÂâBbCcÇçDdEeFfGgĞğHhIıİiÎîJjKkLlMmNnOoÖöPpRrSsŞşTtUuÛûÜüVvYyZz" .. c.punc,
}
m["ts"] = {
"Tsonga",
34327,
"bnt-tsr",
"Latn",
}
m["tt"] = {
"Tatar",
25285,
"trk-kbu",
"Cyrl, Latn, Arab",
translit = {
Cyrl = "tt-translit",
Arab = "tt-translit"
},
--override_translit = true, -- dayakan pengesampingan sehingga kod Modul boleh mengesan pinjaman Rusia seperti [[аэропорт]]
dotted_dotless_i = true,
sort_key = {
Cyrl = {
from = {"ә", "ў", "ғ", "ё", "җ", "қ", "ң", "ө", "ү", "һ"},
to = {"а" .. p[1], "в" .. p[1], "г" .. p[1], "е" .. p[1], "ж" .. p[1], "к" .. p[1], "н" .. p[1], "о" .. p[1], "у" .. p[1], "х" .. p[1]}
},
Latn = {
from = {
"i", -- Pastikan "i" datang selepas "ı".
"ä", "ə", "ç", "ğ", "ı", "ñ", "ŋ", "ö", "ɵ", "ş", "ü"
},
to = {
"i" .. p[1],
"a" .. p[1], "a" .. p[2], "c" .. p[1], "g" .. p[1], "i", "n" .. p[1], "n" .. p[2], "o" .. p[1], "o" .. p[2], "s" .. p[1], "u" .. p[1]
}
},
},
}
-- "tw" dilayan sebagai "ak", lihat [[WT:LT]]
m["ty"] = {
"Tahiti",
34128,
"poz-pep",
"Latn",
}
m["ug"] = {
"Uyghur",
13263,
"trk-kar",
"Arab, Latn, Cyrl",
ancestors = "chg",
translit = {
Arab = "ug-translit",
Cyrl = "ug-translit",
},
override_translit = true,
}
m["uk"] = {
"Ukraine",
8798,
"zle",
"Cyrl",
ancestors = "zle-muk",
translit = "uk-translit",
strip_diacritics = {remove_diacritics = c.grave .. c.acute},
sort_key = {
remove_diacritics = c.grave .. c.acute,
from = {
"ї", -- 2 aksara
"ґ", "є", "і" -- 1 aksara
},
to = {
"и" .. p[2],
"г" .. p[1], "е" .. p[1], "и" .. p[1]
}
},
standard_chars = "АаБбВвГгДдЕеЄєЖжЗзИиІіЇїЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЬьЮюЯя" .. c.punc:gsub("'", ""), -- Kecualikan koma atas.
}
m["ur"] = {
"Urdu",
1617,
"inc-hnd",
"Aran, Hebr",
translit = {
Aran = "ur-translit"
},
strip_diacritics = {
Aran = {
-- aksara "ۂ" kod U+06C2 kepada "ه" dan "هٔ" (U+0647 + U+0654) kepada "ه"; hamzatu l-waṣli kepada alif biasa
from = {"هٔ", "ۂ", "ٱ"},
to = {"ہ", "ہ", "ا"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef
},
},
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
standard_chars = {
Aran = "ایببپتثجچحخدذرزژسشصضطظعغفقکگلࣇڷمنݨوؤہھئٹڈڑآے",
c.punc,
},
}
m["uz"] = {
"Uzbek",
9264,
"trk-kar",
"Latn, Cyrl, Arab",
ancestors = "chg",
translit = {
Cyrl = "uz-translit"
},
sort_key = {
Latn = {
from = {"oʻ", "gʻ", "sh", "ch", "ng"},
to = {"z" .. p[1], "z" .. p[2], "z" .. p[3], "z" .. p[4], "z" .. p[5]}
},
Cyrl = {
from = {"ё", "ў", "қ", "ғ", "ҳ"},
to = {"е" .. p[1], "я" .. p[1], "я" .. p[2], "я" .. p[3], "я" .. p[4]}
},
},
strip_diacritics = {
Arab = "ar-stripdiacritics",
},
}
m["ve"] = {
"Venda",
32704,
"bnt-bso",
"Latn",
}
m["vi"] = {
"Vietnam",
9199,
"mkh-vie",
"Latn, Hani",
ancestors = "mkh-mvi",
sort_key = {
Latn = "vi-sortkey",
Hani = "Hani-sortkey",
},
}
m["vo"] = {
"Volapük",
36986,
"art",
"Latn",
}
m["wa"] = {
"Walloon",
34219,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["wo"] = {
"Wolof",
34257,
"alv-fwo",
"Latn, Arab, Gara",
}
m["xh"] = {
"Xhosa",
13218,
"bnt-ngu",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},
}
m["yi"] = {
"Yiddish",
8641,
"gmw-hgm",
"Hebr, Latn",
ancestors = "gmh",
translit = {
Hebr = "yi-translit",
},
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
}
m["yo"] = {
"Yoruba",
34311,
"alv-yor",
"Latn, Arab",
strip_diacritics = {
Latn = {remove_diacritics = c.grave .. c.acute .. c.macron}
},
sort_key = {
Latn = {
from = {"ẹ", "ɛ", "gb", "ị", "kp", "ọ", "ɔ", "ṣ", "sh", "ụ"},
to = {"e" .. p[1], "e" .. p[1], "g" .. p[1], "i" .. p[1], "k" .. p[1], "o" .. p[1], "o" .. p[1], "s" .. p[1], "s" .. p[1], "u" .. p[1]}
},
},
}
m["za"] = {
"Zhuang",
13216,
"tai",
"Latn, Hani",
sort_key = {
Latn = "za-sortkey",
Hani = "Hani-sortkey",
},
}
m["zh"] = {
"Cina",
7850,
"zhx",
"Hants, Latn, Bopo, Nshu, Brai",
ancestors = "ltc",
generate_forms = "zh-generateforms",
translit = {
Hani = "zh-translit",
Bopo = "zh-translit",
},
sort_key = {
Hani = "Hani-sortkey"
},
}
m["zu"] = {
"Zulu",
10179,
"bnt-ngu",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.macron .. c.caron},
}
return require("Module:languages").finalizeData(m, "language")
hxpvthjfy6wtwwzydn5g9u4nmbts6kb
Modul:languages/data
828
33717
373486
281320
2026-09-10T18:36:50Z
SNN95
2113
kemaskini
373486
Scribunto
text/plain
local export = {}
-- We can't use mw.loadData() on [[Module:languages/chars]] because [[Module:languages/data]] itself is sometimes loaded
-- using mw.loadData(), and calling mw.loadData() on [[Module:languages/chars]] will insert metatables into the
-- character tables, which the second mw.loadData() will choke on.
local m_chars = require("Module:languages/chars")
local u = require("Module:string/char")
local c = m_chars.chars
export.chars = c
local p = m_chars.puaChars
export.puaChars = p
local cs = m_chars.chars_substitutions
export.chars_substitutions = cs
-- FIXME! Many of the script-specific values below can be moved to [[Module:scripts/data]] to serve as script-wide
-- fallback values instead of specifying them for each language using the script.
local s = {}
-- These values are placed here to make it possible to synchronise a group of languages without the need for a dedicated function module.
-- cau
do
local cau_remove_diacritics = c.grave .. c.acute .. c.macron
local cau_from = {"[IlΙІӀᴴ]"}
local cau_to = {{
["l"] = "ӏ",
["Ι"] = "ӏ",
["І"] = "ӏ",
["Ӏ"] = "ӏ",
["ᴴ"] = "ᵸ",
}}
s["cau-Cyrl-displaytext"] = {
from = cau_from,
to = cau_to,
}
s["cau-Cyrl-stripdiacritics"] = {
remove_diacritics = cau_remove_diacritics,
from = cau_from,
to = cau_to,
}
s["cau-Latn-stripdiacritics"] = {remove_diacritics = cau_remove_diacritics}
end
s["itc-Latn-displaytext"] = {
from = {c.caron},
to = {c.breve},
}
s["itc-Latn-stripdiacritics"] = {remove_diacritics = c.macron .. c.breve .. c.diaer .. c.caron .. c.dinvbreve}
s["itc-Latn-sortkey"] = {
remove_diacritics = c.circ .. c.tilde .. c.macron .. c.breve .. c.diaer .. c.caron .. c.zigzag .. c.dmacron .. c.dtilde .. c.dinvbreve .. c.small_a .. c.small_e .. c.small_i .. c.small_o .. c.small_u, -- Chiefly medieval abbreviations.
from = {"ᵃ", "æ", "[đꝱꟈ]", "ᵉ", "ⁱ", "ꝁ", "[ƚꝉꝲ]", "ꝳ", "ꝴ", "[ꝋᵒ]", "œ", "[ꝑꝓꝕ]", "[ꝗꝙ]", "[ꝛꝵꝶꝝ]", "[ꟊˢ]", "[ꝷᵗ]", "ᵘ", "ꝟ", "⁊"},
to = {"a", "ae", "d", "e", "i", "k", "l", "m", "n", "o", "oe", "p", "q", "r", "s", "t", "u", "v", "&"}
}
s["Jpan-standardchars"] = -- exclude ぢづヂヅ
"ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちっつてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろん" ..
"ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチッツテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロン"
local jpx_displaytext = {
from = {"~", "="},
to = {"〜", "゠"}
}
s["jpx-displaytext"] = {
Jpan = jpx_displaytext,
Hani = jpx_displaytext,
Hrkt = jpx_displaytext,
Hira = jpx_displaytext,
Kana = jpx_displaytext
-- not Latn or Brai
}
s["jpx-stripdiacritics"] = s["jpx-displaytext"]
s["jpx-sortkey"] = {
Jpan = "Jpan-sortkey",
Hani = "Hani-sortkey",
Hrkt = "Hira-sortkey", -- sort general kana by normalizing to Hira
Hira = "Hira-sortkey",
Kana = "Kana-sortkey",
Latn = {remove_diacritics = c.tilde .. c.macron .. c.diaer}
}
s["jpx-translit"] = {
Hrkt = "Hrkt-translit",
Hira = "Hrkt-translit",
Kana = "Hrkt-translit"
}
s["roa-oil-sortkey"] = {
remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.diaer .. c.ringabove .. c.cedilla .. "'",
from = {"æ", "œ", "·"},
to = {"ae", "oe", " "}
}
s["wen-sortkey"] = {
from = {"ch", "[lłßꞩẜ]", "dz[" .. c.caron .. c.acute .. "]", "[bcefmnoprswz][" .. c.caron .. c.acute .. c.dotabove .. "]"},
to = {
"h" .. p[1],
{
["l"] = "l" .. p[1], ["ł"] = "l", ["ß"] = "s", ["ꞩ"] = "š", ["ẜ"] = "š",
},
{
["dz" .. c.caron] = "d" .. p[1], ["dz" .. c.acute] = "d" .. p[2]
},
{
["b" .. c.acute] = "b" .. p[1],
["c" .. c.caron] = "c" .. p[1], ["c" .. c.acute] = "c" .. p[2],
["e" .. c.caron] = "e" .. p[1], ["e" .. c.dotabove] = "e" .. p[1],
["f" .. c.acute] = "f" .. p[1],
["m" .. c.acute] = "m" .. p[1],
["n" .. c.acute] = "n" .. p[1],
["o" .. c.acute] = "o" .. p[1],
["p" .. c.acute] = "p" .. p[1],
["r" .. c.caron] = "r" .. p[1], ["r" .. c.acute] = "r" .. p[2],
["s" .. c.caron] = "s" .. p[1], ["s" .. c.acute] = "s" .. p[2],
["w" .. c.acute] = "w" .. p[1],
["z" .. c.caron] = "z" .. p[1], ["z" .. c.acute] = "z" .. p[2],
}
}
}
-- Myanmar dotted form : https://www.unicode.org/Public/UNIDATA/StandardizedVariants.txt
s["aio-displaytext"] = {
from = {"([ကဂငတထပမယလဝဢေၵၸၺႀꩠꩡꩢꩣꩤꩥꩦꩫꩬꩯꩺ])"},
to = {"%1" .. c.VS01}
}
s["aio-stripdiacritics"] = {
remove_diacritics = c.VS01,
}
s["phk-displaytext"] = s["aio-displaytext"]
s["phk-stripdiacritics"] = s["aio-stripdiacritics"]
s["kht-displaytext"] = s["aio-displaytext"]
s["kht-stripdiacritics"] = s["aio-stripdiacritics"]
export.shared = s
--[==[ var:
Short-term solution to override the standard substitution process, by forcing the module to substitute the entire
text in one pass, if "cont" is given. This results in any PUA characters that are used as stand-ins for formatting being
handled by the language-specific substitution process, which is usually undesirable. If the value is "none" then the
formatting tags do not get turned into PUA characters in the first place. This override is provided for languages which
use formatting between strings of text which might need to interact with each other (e.g. Korean 값이 transliterates as "gaps-i", but [[값]] has the formatting '''값'''[[-이]]. The normal process would split the text at the second '''.)
]==]
export.substitution = {
["gmy"] = "none",
["ja"] = "cont",
["jje"] = "cont",
["ket"] = "none",
["ko"] = "cont",
["ko-ear"] = "cont",
["ru"] = "cont",
["th-new"] = "cont",
["sa"] = "cont",
["zkt"] = "cont",
}
--[==[ var:
Code aliases. The left side is the alias and the right side is the canonical code. NOTE: These are gradually
being deprecated, so should not be added to on a permanent basis. Temporary additions are permitted under reasonable
circumstances (e.g. to facilitate changing a language's code). When an alias is no longer used, it should be removed.
Aliases in this table are tracked at [[Wiktionary:Tracking/languages/LANG]]; see e.g.
[[Special:WhatLinksHere/Wiktionary:Tracking/languages/VL.]] for the `VL.` alias.
]==]
export.aliases = {
["EL."] = "la-ecc",
["LL."] = "la-lat",
["ML."] = "la-med",
["NL."] = "la-new",
["VL."] = "la-vul",
["grc-epc"] = "grc-epi",
["nds-DE"] = "nds-de",
["nds-NL"] = "nds-nl",
["roa-oan"] = "roa-ona",
["sa-cls"] = "cls",
["sa-ved"] = "vsn",
}
--[==[ var:
Codes which are tracked. Note that all aliases listed above are also tracked, so should not be duplicated here.
Tracking uses the same mechanism described above in the comment above `export.aliases`.
]==]
export.track = {
-- Codes duplicated between full and etymology-only languages.
["lzh-lit"] = true,
["lzh"] = true,
-- Languages actively being converted to families.
["bh"] = true, -- inc-bih
["nan"] = true, -- zhx-nan
-- Transcription scheme being changed.
["trk-pro"] = true,
}
return export
sybykcugwy6ckm7y09iyst74xywteqw
Modul:languages/data/exceptional
828
33718
373494
343155
2026-09-10T20:20:00Z
SNN95
2113
kemaskini
373494
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["aav-khs-pro"] = {
"Proto-Khasian",
116773216,
"aav-khs",
"Latn",
type = "reconstructed",
}
m["aav-nic-pro"] = {
"Proto-Nicobarese",
116773793,
"aav-nic",
"Latn",
type = "reconstructed",
}
m["aav-pkl-pro"] = {
"Proto-Pnar-Khasi-Lyngngam",
116773259,
"aav-pkl",
"Latn",
type = "reconstructed",
}
m["aav-pro"] = { -- mkh-pro akan digabungkan ke dalam ini
"Proto-Austroasiatik",
116773186,
"aav",
"Latn",
type = "reconstructed",
}
m["afa-pro"] = {
"Proto-Afroasiatik",
269125,
"afa",
"Latn",
type = "reconstructed",
}
m["alg-aga"] = {
"Agawam",
nil,
"alg-eas",
"Latn",
}
m["alg-pro"] = {
"Proto-Algonquian",
7251834,
"alg",
"Latn",
type = "reconstructed",
sort_key = {remove_diacritics = "·"},
}
m["alv-ama"] = {
"Amasi",
4740400,
"nic-grs",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron},
}
m["alv-bgu"] = {
"Bainouk Gubeeher",
17002646,
"alv-bny",
"Latn",
}
m["alv-bua-pro"] = {
"Proto-Bua",
116773723,
"alv-bua",
"Latn",
type = "reconstructed",
}
m["alv-cng-pro"] = {
"Proto-Cangin",
116773726,
"alv-cng",
"Latn",
type = "reconstructed",
}
m["alv-edo-pro"] = {
"Proto-Edoid",
116773206,
"alv-edo",
"Latn",
type = "reconstructed",
}
m["alv-fli-pro"] = {
"Proto-Fali",
116773754,
"alv-fli",
"Latn",
type = "reconstructed",
}
m["alv-gbe-pro"] = {
"Proto-Gbe",
116773208,
"alv-gbe",
"Latn",
type = "reconstructed",
}
m["alv-gng-pro"] = {
"Proto-Guang",
116773757,
"alv-gng",
"Latn",
type = "reconstructed",
}
m["alv-gtm-pro"] = {
"Proto-Togo Tengah",
116773732,
"alv-gtm",
"Latn",
type = "reconstructed",
}
m["alv-gwa"] = {
"Gwara",
16945580,
"nic-pla",
"Latn",
}
m["alv-hei-pro"] = {
"Proto-Heiban",
116773760,
"alv-hei",
"Latn",
type = "reconstructed",
}
m["alv-ido-pro"] = {
"Proto-Idomoid",
116773764,
"alv-ido",
"Latn",
type = "reconstructed",
}
m["alv-igb-pro"] = {
"Proto-Igboid",
116773765,
"alv-igb",
"Latn",
type = "reconstructed",
}
m["alv-kwa-pro"] = {
"Proto-Kwa",
116773780,
"alv-kwa",
"Latn",
type = "reconstructed",
}
m["alv-mum-pro"] = {
"Proto-Mumuye",
116773791,
"alv-mum",
"Latn",
type = "reconstructed",
}
m["alv-nup-pro"] = {
"Proto-Nupoid",
116773795,
"alv-nup",
"Latn",
type = "reconstructed",
}
m["alv-pro"] = {
"Proto-Atlantik-Congo",
116732838,
"alv",
"Latn",
type = "reconstructed",
}
m["alv-edk-pro"] = {
"Proto-Edekiri",
nil,
"alv-edk",
"Latn",
type = "reconstructed",
}
m["alv-yor-pro"] = {
"Proto-Yoruba",
nil,
"alv-yor",
"Latn",
type = "reconstructed",
}
m["alv-yrd-pro"] = {
"Proto-Yoruboid",
116773824,
"alv-yrd",
"Latn",
type = "reconstructed",
}
m["alv-von-pro"] = {
"Proto-Volta-Niger",
116773820,
"alv-von",
"Latn",
type = "reconstructed",
}
m["apa-pro"] = {
"Proto-Apachean",
116773135,
"apa",
"Latn",
type = "reconstructed",
}
m["aql-pro"] = {
"Proto-Algic",
18389588,
"aql",
"Latn",
type = "reconstructed",
sort_key = {remove_diacritics = "·"},
}
m["art-adu"] = {
"Adûni",
1232159,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-bel"] = {
"Kreol Belter",
108055510,
"art",
"Latn",
type = "appendix-constructed",
sort_key = {
remove_diacritics = c.acute,
from = {"ɒ"},
to = {"a"},
},
}
m["art-blk"] = {
"Bolak",
2909283,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-bsp"] = {
"Bahasa Hitam",
686210,
"art",
"Latn, Teng",
type = "appendix-constructed",
}
m["art-com"] = {
"Communicationssprache",
35227,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-dtk"] = {
"Dothraki",
2914733,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-elo"] = {
"Eloi",
nil,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-gld"] = {
"Goa'uld",
19823,
"art",
"Latn, Egyp, Mero",
type = "appendix-constructed",
}
m["art-lap"] = {
"Lapine",
6488195,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-man"] = {
"Mandalorian",
54289,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-mun"] = {
"Mundolinco",
851355,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-nav"] = {
"Naʼvi",
316939,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-vlh"] = {
"Valyrian Tinggi",
64483808,
"art",
"Latn",
type = "appendix-constructed",
}
m["ath-nic"] = {
"Nicola",
20609,
"ath-nor",
"Latn",
}
m["ath-pro"] = {
"Proto-Athabaskan",
104841722,
"ath",
"Latn",
type = "reconstructed",
}
m["auf-pro"] = {
"Proto-Arawa",
116773706,
"auf",
"Latn",
type = "reconstructed",
}
m["aus-alu"] = {
"Alungul",
16827670,
"aus-pmn",
"Latn",
}
m["aus-and"] = {
"Andjingith",
4754509,
"aus-pmn",
"Latn",
}
m["aus-ang"] = {
"Angkula",
16828520,
"aus-pmn",
"Latn",
}
m["aus-arn-pro"] = {
"Proto-Arnhem",
116773720,
"aus-arn",
"Latn",
type = "reconstructed",
}
m["aus-bra"] = {
"Barranbinya",
4863220,
"aus-pmn",
"Latn",
}
m["aus-brm"] = {
"Barunggam",
4865914,
"aus-pmn",
"Latn",
}
m["aus-cww-pro"] = {
"Proto-New South Wales Tengah",
116773199,
"aus-cww",
"Latn",
type = "reconstructed",
}
m["aus-dal-pro"] = {
"Proto-Daly",
116773743,
"aus-dal",
"Latn",
type = "reconstructed",
}
m["aus-guw"] = {
"Guwar",
6652138,
"aus-pam",
"Latn",
}
m["aus-lsw"] = {
"Little Swanport",
6652138,
"qfa-unc",
"Latn",
}
m["aus-mbi"] = {
"Mbiywom",
6799701,
"aus-pmn",
"Latn",
}
m["aus-ngk"] = {
"Ngkoth",
7022405,
"aus-pmn",
"Latn",
}
m["aus-nyu-pro"] = {
"Proto-Nyulnyulan",
116773797,
"aus-nyu",
"Latn",
type = "reconstructed",
}
m["aus-pam-pro"] = {
"Proto-Pama-Nyungan",
33942,
"aus-pam",
"Latn",
type = "reconstructed",
}
m["aus-tul"] = {
"Tulua",
16938541,
"aus-pam",
"Latn",
}
m["aus-uwi"] = {
"Uwinymil",
7903995,
"aus-arn",
"Latn",
}
m["aus-wdj-pro"] = {
"Proto-Iwaidjan",
116773767,
"aus-wdj",
"Latn",
type = "reconstructed",
}
m["aus-won"] = {
"Wong-gie",
nil,
"aus-pam",
"Latn",
}
m["aus-wul"] = {
"Wulguru",
8039196,
"aus-dyb",
"Latn",
}
m["aus-ynk"] = { -- kontras nny
"Yangkaal",
3913770,
"aus-tnk",
"Latn",
}
m["awd-amc-pro"] = {
"Proto-Amuesha-Chamicuro",
nil,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-kmp-pro"] = {
"Proto-Kampa",
nil,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-prw-pro"] = {
"Proto-Paresi-Waura",
nil,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-ama"] = {
"Amarizana",
16827787,
"awd",
"Latn",
}
m["awd-ana"] = {
"Anauyá",
16828252,
"awd",
"Latn",
}
m["awd-apo"] = {
"Apolista",
16916645,
"awd",
"Latn",
}
m["awd-cab"] = {
"Cabre",
16850160,
"awd",
"Latn",
}
m["awd-gnu"] = {
"Guinau",
3504087,
"awd",
"Latn",
}
m["awd-kar"] = {
"Cariay",
16920253,
"awd",
"Latn",
}
m["awd-kaw"] = {
"Kawishana",
6379993,
"awd-nwk",
"Latn",
}
m["awd-kus"] = {
"Kustenau",
5196293,
"awd",
"Latn",
}
m["awd-man"] = {
"Manao",
6746920,
"awd",
"Latn",
}
m["awd-mar"] = {
"Marawan",
6755108,
"awd",
"Latn",
}
m["awd-mpr"] = {
"Maipure",
6736872,
"awd",
"Latn",
}
m["awd-mrt"] = {
"Mariaté",
16910017,
"awd-nwk",
"Latn",
}
m["awd-nwk-pro"] = {
"Proto-Nawiki",
116773234,
"awd-nwk",
"Latn",
type = "reconstructed",
}
m["awd-pai"] = {
"Paikoneka",
128807835,
"awd",
"Latn",
}
m["awd-pas"] = {
"Pasé",
7143168,
"awd-nwk",
"Latn",
}
m["awd-pro"] = {
"Proto-Arawak",
97573478,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-she"] = {
"Shebayo",
7492248,
"awd",
"Latn",
}
m["awd-taa-pro"] = {
"Proto-Ta-Arawak",
116773282,
"awd-taa",
"Latn",
type = "reconstructed",
}
m["awd-wai"] = {
"Wainumá",
16910017,
"awd-nwk",
"Latn",
}
m["awd-war"] = {
"Warekena Kuno",
105320180,
"awd-nwk",
"Latn",
}
m["awd-yum"] = {
"Yumana",
8061062,
"awd-nwk",
"Latn",
}
m["azc-caz"] = {
"Cazcan",
5055514,
"azc",
"Latn",
}
m["azc-cup-pro"] = {
"Proto-Cupan",
116773738,
"azc-cup",
"Latn",
type = "reconstructed",
}
m["azc-ktn"] = {
"Kitanemuk",
3197558,
"azc-tak",
"Latn",
}
m["azc-nah-pro"] = {
"Proto-Nahuan",
7251860,
"azc-nah",
"Latn",
type = "reconstructed",
}
m["azc-nic"] = {
"Nicoleño",
50241488,
"azc",
"Latn",
}
m["azc-num-pro"] = {
"Proto-Numic",
116773247,
"azc-num",
"Latn",
type = "reconstructed",
}
m["azc-pro"] = {
"Proto-Uto-Aztecan",
96400333,
"azc",
"Latn",
type = "reconstructed",
}
m["azc-tak-pro"] = {
"Proto-Takic",
116773283,
"azc-tak",
"Latn",
type = "reconstructed",
}
m["azc-tat"] = {
"Tataviam",
743736,
"azc",
"Latn",
}
m["ber-pro"] = {
"Proto-Berber",
2855698,
"ber",
"Latn",
type = "reconstructed",
}
m["ber-fog"] = {
"Fogaha",
107610173,
"ber",
"Latn",
}
m["ber-zuw"] = {
"Zuwara",
4117169,
"ber",
"Latn",
}
m["bnt-bal"] = {
"Balong",
93935237,
"bnt-bbo",
"Latn",
}
m["bnt-bon"] = {
"Boma Nkuu",
nil,
"bnt",
"Latn",
}
m["bnt-boy"] = {
"Boma Yumu",
nil,
"bnt",
"Latn",
}
m["bnt-bwa"] = {
"Bwala",
128810345,
"bnt-tek",
"Latn",
}
m["bnt-cmw"] = {
"Chimwiini",
4958328,
"bnt-swh",
"Latn",
}
m["bnt-ind"] = {
"Indanga",
51412803,
"bnt",
"Latn",
}
m["bnt-lal"] = {
"Lala (Afrika Selatan)",
6480154,
"bnt-ngu",
"Latn",
}
m["bnt-mpi"] = {
"Mpiin",
93937013,
"bnt-bdz",
"Latn",
}
m["bnt-mpu"] = {
"Mpuono", -- jangan dikelirukan dengan Mbuun zmp
36056,
"bnt",
"Latn",
}
m["bnt-ngu-pro"] = {
"Proto-Nguni",
961559,
"bnt-ngu",
"Latn",
type = "reconstructed",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.caron},
}
m["bnt-phu"] = {
"Phuthi",
33796,
"bnt-ngu",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute},
}
m["bnt-pro"] = {
"Proto-Bantu",
3408025,
"bnt",
"Latn",
type = "reconstructed",
sort_key = "bnt-pro-sortkey",
}
m["bnt-sab-pro"] = {
"Proto-Sabaki",
nil, -- Q2209395 ialah kod untuk keluarga Sabaki
"bnt-sab",
"Latn",
type = "reconstructed",
}
m["bnt-sbo"] = {
"Boma Selatan",
nil,
"bnt",
"Latn",
}
m["bnt-sts-pro"] = {
"Proto-Sotho-Tswana",
116773278,
"bnt-sts",
"Latn",
type = "reconstructed",
}
m["btk-pro"] = {
"Proto-Batak",
116773191,
"btk",
"Latn",
type = "reconstructed",
}
m["cau-abz-pro"] = {
"Proto-Abkhaz-Abaza",
7251831,
"cau-abz",
"Latn",
type = "reconstructed",
}
m["cau-and-pro"] = {
"Proto-Andian",
nil,
"cau-and",
"Latn",
type = "reconstructed",
}
m["cau-ava-pro"] = {
"Proto-Avaro-Andian",
116773187,
"cau-ava",
"Latn",
type = "reconstructed",
}
m["cau-cir-pro"] = {
"Proto-Circassian",
7251838,
"cau-cir",
"Latn",
type = "reconstructed",
}
m["cau-drg-pro"] = {
"Proto-Dargwa",
116773205,
"cau-drg",
"Latn",
type = "reconstructed",
}
m["cau-lzg-pro"] = {
"Proto-Lezghian",
116773223,
"cau-lzg",
"Latn",
type = "reconstructed",
}
m["cau-nec-pro"] = {
"Proto-Kaukasia Timur Laut",
116773244,
"cau-nec",
"Latn",
type = "reconstructed",
}
m["cau-nkh-pro"] = {
"Proto-Nakh",
108032840,
"cau-nkh",
"Latn",
type = "reconstructed",
}
m["cau-nwc-pro"] = {
"Proto-Kaukasia Barat Laut",
7251861,
"cau-nwc",
"Latn",
type = "reconstructed",
}
m["cau-tsz-pro"] = {
"Proto-Tsezian",
116773287,
"cau-tsz",
"Latn",
type = "reconstructed",
}
m["cba-ata"] = {
"Atanques",
4812783,
"cba",
"Latn",
}
m["cba-cat"] = {
"Catío Chibcha",
7083619,
"cba",
"Latn",
}
m["cba-dor"] = {
"Dorasque",
5297532,
"cba",
"Latn",
}
m["cba-dui"] = {
"Duit",
3041061,
"cba",
"Latn",
}
m["cba-hue"] = {
"Huetar",
35514,
"cba",
"Latn",
}
m["cba-nut"] = {
"Nutabe",
7070405,
"cba",
"Latn",
}
m["cba-pro"] = {
"Proto-Chibchan",
116773203,
"cba",
"Latn",
type = "reconstructed",
}
m["ccs-pro"] = {
"Proto-Kartvelia",
2608203,
"ccs",
"Latn",
type = "reconstructed",
strip_diacritics = {
from = {"q̣", "p̣", "ʓ", "ċ"},
to = {"q̇", "ṗ", "ʒ", "c̣"}
},
}
m["ccs-gzn-pro"] = {
"Proto-Georgia-Zan",
23808119,
"ccs-gzn",
"Latn",
type = "reconstructed",
strip_diacritics = {
from = {"q̣", "p̣", "ʓ", "ċ"},
to = {"q̇", "ṗ", "ʒ", "c̣"}
},
}
m["cdc-cbm-pro"] = {
"Proto-Chadic Tengah",
116773197,
"cdc-cbm",
"Latn",
type = "reconstructed",
}
m["cdc-mas-pro"] = {
"Proto-Masa",
116773789,
"cdc-mas",
"Latn",
type = "reconstructed",
}
m["cdc-pro"] = {
"Proto-Chadic",
116773201,
"cdc",
"Latn",
type = "reconstructed",
}
m["cdd-pro"] = {
"Proto-Caddoan",
116773725,
"cdd",
"Latn",
type = "reconstructed",
}
m["cel-bry-pro"] = {
"Proto-Brythonic",
1248800,
"cel-bry",
"Latn, Polyt",
sort_key = {
Latn = "cel-bry-pro-sortkey",
},
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["cel-gal"] = {
"Gallaecian",
3094789,
"cel-his",
}
m["cel-gau"] = {
"Gaul",
29977,
"cel",
"Latn, Polyt, Ital",
strip_diacritics = {
Latn = {remove_diacritics = c.macron .. c.breve .. c.diaer},
},
sort_key = {
Latn = "cel-bry-pro-sortkey",
},
-- translit Ital dalam [[Module:scripts/data]]
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["cel-pro"] = {
"Proto-Celtic",
653649,
"cel",
"Latn",
type = "reconstructed",
sort_key = "cel-pro-sortkey",
}
m["chi-pro"] = {
"Proto-Chimakuan",
116773734,
"chi",
"Latn",
type = "reconstructed",
}
m["chm-pro"] = {
"Proto-Mari",
116773788,
"chm",
"Latn",
type = "reconstructed",
}
m["cmc-pro"] = {
"Proto-Chamic",
114793834,
"cmc",
"Latn",
type = "reconstructed",
}
m["crp-bip"] = {
"Pidgin Basque-Iceland",
810378,
"crp",
"Latn",
ancestors = "eu",
}
m["crp-cpr"] = {
"Pidgin Rusia-China",
nil,
"crp",
"Hani, Cyrl, Latn",
ancestors = "ru, zh",
translit = {Cyrl = "ru-translit"},
strip_diacritics = {
Cyrl = {remove_diacritics = c.acute .. c.grave .. c.macron},
},
}
m["crp-gep"] = {
"Pidgin Greenland Barat",
17036301,
"crp",
"Latn",
ancestors = "kl",
}
m["crp-kia"] = {
"Pidgin Jerman Kiautschou",
108314615,
"crp",
"Latn",
ancestors = "de",
}
m["crp-mar"] = {
"Bahasa Roh Maroon",
1093206,
"crp",
"Latn",
ancestors = "en",
}
m["crp-mpp"] = {
"Pidgin Portugis Macau",
128804537,
"crp",
"Hant, Latn",
ancestors = "pt",
sort_key = {Hant = "Hani-sortkey"},
}
m["crp-rsn"] = {
"Russenorsk",
505125,
"crp",
"Cyrl, Latn",
ancestors = "nn, ru",
translit = {Cyrl = "ru-translit"},
}
m["crp-spp"] = {
"Pidgin Ladang Samoa",
7409948,
"crp",
"Latn",
ancestors = "en",
}
m["crp-slb"] = {
"Solombala English",
7558525,
"crp",
"Cyrl, Latn",
ancestors = "en, ru",
translit = {Cyrl = "ru-translit"},
}
m["crp-tpr"] = {
"Pidgin Rusia Taimyr",
16930506,
"crp",
"Cyrl",
ancestors = "ru",
translit = "ru-translit",
}
m["csu-bba-pro"] = {
"Proto-Bongo-Bagirmi",
116773722,
"csu-bba",
"Latn",
type = "reconstructed",
}
m["csu-maa-pro"] = {
"Proto-Mangbetu",
116773786,
"csu-maa",
"Latn",
type = "reconstructed",
}
m["csu-pro"] = {
"Proto-Sudan Tengah",
116773730,
"csu",
"Latn",
type = "reconstructed",
}
m["csu-sar-pro"] = {
"Proto-Sara",
116773809,
"csu-sar",
"Latn",
type = "reconstructed",
}
m["cus-ash"] = {
"Ashraaf",
4805855,
"cus-som",
"Latn",
}
m["cus-hec-pro"] = {
"Proto-Cushitic Timur Tanah Tinggi",
116773761,
"cus-hec",
"Latn",
type = "reconstructed",
}
m["cus-som-pro"] = {
"Proto-Somaloid",
nil,
"cus-som",
"Latn",
type = "reconstructed",
}
m["cus-sou-pro"] = {
"Proto-Cushitic Selatan",
126081567,
"cus-sou",
"Latn",
type = "reconstructed",
}
m["cus-pro"] = {
"Proto-Cushitic",
116773204,
"cus",
"Latn",
type = "reconstructed",
}
m["dmn-dam"] = {
"Dama (Sierra Leone)",
19601574,
"dmn",
"Latn",
}
m["dra-bry"] = {
"Beary",
1089116,
"qfa-mix",
"Mlym, Knda",
ancestors = "ml, tcy",
-- translit Knda dalam [[Module:scripts/data]]
-- translit Mlym dalam [[Module:scripts/data]]
}
m["dra-cen-pro"] = {
"Proto-Dravidia Tengah",
nil,
"dra-cen",
"Latn",
type = "reconstructed",
}
m["dra-mkn"] = {
"Kannada Pertengahan",
128810572,
"dra-kan",
"Knda",
-- translit Knda dalam [[Module:scripts/data]]
}
m["dra-nor-pro"] = {
"Proto-Dravidia Utara",
124433593,
"dra-nor",
"Latn",
type = "reconstructed",
}
m["dra-okn"] = {
"Kannada Kuno",
15723156,
"dra-kan",
"Knda",
-- translit Knda dalam [[Module:scripts/data]]
}
m["dra-ote"] = {
"Telugu Kuno",
126720868,
"dra-tel",
"Telu",
translit = "te-translit",
}
m["dra-pro"] = {
"Proto-Dravidia",
1702853,
"dra",
"Latn",
type = "reconstructed",
}
m["dra-sdo-pro"] = {
"Proto-Dravidia Selatan I",
104847952, -- "Proto-Dravidia Selatan" Wikipedia ialah Proto-Dravidia Selatan I dalam skema ini.
"dra-sdo",
"Latn",
type = "reconstructed",
}
m["dra-sdt-pro"] = {
"Proto-Dravidia Selatan II",
128885257,
"dra-sdt",
"Latn",
type = "reconstructed",
}
m["dra-sou-pro"] = {
"Proto-Dravidia Selatan",
128886121,
"dra-sou",
"Latn",
type = "reconstructed",
}
m["egx-dem"] = {
"Mesir Demotik",
36765,
"egx",
"Latn, Egyd, Polyt",
sort_key = {
Latn = {
remove_diacritics = "'%-%s",
from = {"ꜣ", "j", "e", "ꜥ", "y", "w", "b", "p", "f", "m", "n", "r", "l", "ḥ", "ḫ", "h̭", "ẖ", "h", "š", "s", "q", "k", "g", "ṱ", "ṯ", "t", "ḏ", "%.", "⸗"},
to = {p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8], p[9], p[10], p[11], p[12], p[13], p[15], p[16], p[16], p[17], p[14], p[19], p[18], p[20], p[21], p[22], p[23], p[24], p[23], p[25], p[26], p[26]}
},
},
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["dmn-pro"] = {
"Proto-Mande",
116773785,
"dmn",
"Latn",
type = "reconstructed",
}
m["dmn-mdw-pro"] = {
"Proto-Mande Barat",
116773822,
"dmn-mdw",
"Latn",
type = "reconstructed",
}
m["dru-pro"] = {
"Proto-Rukai",
116773807,
"map",
"Latn",
type = "reconstructed",
}
m["ero-gsz"] = {
"Geshiza",
nil,
"ero",
"Latn",
}
m["ero-nya"] = {
"Nyagrong Minyag",
nil,
"ero",
"Latn",
}
m["ero-tau"] = {
"Stau",
nil,
"ero",
"Latn",
}
m["esx-esk-pro"] = {
"Proto-Eskimo",
7251842,
"esx-esk",
"Latn",
type = "reconstructed",
}
m["esx-ink"] = {
"Inuktun",
1671647,
"esx-inu",
"Latn",
}
m["esx-inq"] = {
"Inuinnaqtun",
28070,
"esx-inu",
"Latn",
}
m["esx-inu-pro"] = {
"Proto-Inuit",
60785588,
"esx-inu",
"Latn",
type = "reconstructed",
}
m["esx-pro"] = {
"Proto-Eskimo-Aleut",
7251843,
"esx",
"Latn",
type = "reconstructed",
}
m["esx-tut"] = {
"Tunumiisut",
15665389,
"esx-inu",
"Latn",
}
m["euq-pro"] = {
"Proto-Basque",
938011,
"euq",
"Latn",
type = "reconstructed",
}
m["gba-pro"] = {
"Proto-Gbaya",
nil,
"gba",
"Latn",
type = "reconstructed",
}
m["gem-pro"] = {
"Proto-Germanik",
669623,
"gem",
"Latn",
type = "reconstructed",
sort_key = "gem-pro-sortkey",
}
m["gme-bur"] = {
"Burgundia",
47625,
"gme",
"Latn",
}
m["gme-cgo"] = {
"Goth Crimea",
36211,
"gme",
"Latn",
}
m["gmq-gut"] = {
"Gutnish",
1256646,
"gmq",
"Latn",
ancestors = "gmq-ogt",
}
m["gmq-jmk"] = {
"Jamtish",
35512,
"gmq-eas",
"Latn",
}
m["gmq-mno"] = {
"Norway Pertengahan",
3417070,
"gmq-wes",
"Latn",
}
m["gmq-oda"] = {
"Denmark Kuno",
12330003,
"gmq-eas",
"Latn, Runr",
strip_diacritics = {remove_diacritics = c.macron},
}
m["gmq-ogt"] = {
"Gutnish Kuno",
1133488,
"gmq",
"Latn, Runr",
ancestors = "non",
}
m["gmq-osw"] = {
"Sweden Kuno",
2417210,
"gmq-eas",
"Latn, Runr",
strip_diacritics = {remove_diacritics = c.macron},
}
m["gmq-pro"] = {
"Proto-Norse",
1671294,
"gmq",
"Runr",
translit = "Runr-translit",
}
m["gmq-scy"] = {
"Scanian",
768017,
"gmq-eas",
"Latn",
}
m["gmw-bgh"] = {
"Bergish",
329030,
"gmw-frk",
"Latn",
}
m["gmw-cfr"] = {
"Franconia Tengah",
572197,
"gmw-hgm",
"Latn",
ancestors = "gmh",
wikimedia_codes = "ksh",
}
m["gmw-ecg"] = {
"Jerman Tengah Timur",
499344, -- merangkumi Q699284, Q152965
"gmw-hgm",
"Latn",
ancestors = "gmh",
}
m["gmw-fin"] = {
"Fingallian",
3072588,
"gmw-ian",
"Latn",
}
m["gmw-gts"] = {
"Gottscheerish",
533109,
"gmw-hgm",
"Latn",
ancestors = "bar",
}
m["gmw-jdt"] = {
"Belanda Jersey",
1687911,
"gmw-frk",
"Latn",
ancestors = "nl",
}
m["gmw-msc"] = {
"Scots Pertengahan",
3327000,
"gmw-ang",
"Latn",
ancestors = "enm-esc",
}
m["gmw-pro"] = {
"Proto-Germanik Barat",
78079021,
"gmw",
"Latn, Runr",
-- type = "reconstructed",
-- sebahagian besarnya tetapi tidak sepenuhnya direkonstruksi (seperti Proto-Norse); lihat BP Apr '24, tetapkan kembali kepada direkonstruksi (?) jika 'anti-asterisk' ditambah
sort_key = "gmw-pro-sortkey",
}
m["gmw-rfr"] = {
"Franconia Rhine",
707007,
"gmw-hgm",
"Latn",
ancestors = "gmh",
}
m["gmw-stm"] = {
"Schwaben Szatmár",
2223059,
"gmw-hgm",
"Latn",
ancestors = "swg",
}
m["gmw-tsx"] = {
"Saxon Transylvania",
260942,
"gmw-hgm",
"Latn",
ancestors = "gmw-cfr",
}
m["gmw-vog"] = {
"Jerman Volga",
312574,
"gmw-hgm",
"Latn",
ancestors = "gmw-rfr",
}
m["gmw-zps"] = {
"Jerman Zipser",
205548,
"gmw-hgm",
"Latn",
ancestors = "gmh",
}
m["gn-cls"] = {
"Guarani Klasik",
17478065,
"gn",
"Latn",
}
m["grk-cal"] = {
"Greek Calabria",
1146398,
"grk",
"Latn, Grek",
ancestors = "grk-ita",
translit = {
Grek = "el-translit",
},
-- translit, display_text, strip_diacritics, sort_key Grek dalam [[Module:scripts/data]]
}
m["grk-ita"] = {
"Greek Italiot",
19720507,
"grk",
"Latn, Grek",
ancestors = "gkm",
translit = {
Grek = "el-translit",
},
-- translit, display_text, strip_diacritics, sort_key Grek dalam [[Module:scripts/data]]
}
m["grk-mar"] = {
"Greek Mariupol",
4400023,
"grk",
"Cyrl, Latn, Grek",
ancestors = "gkm",
translit = {
Cyrl = "grk-mar-translit",
Grek = "grk-mar-translit",
},
override_translit = true,
strip_diacritics = {
Cyrl = {remove_diacritics = c.acute},
},
-- translit, display_text, strip_diacritics, sort_key Grek dalam [[Module:scripts/data]]
}
m["grk-pro"] = {
"Proto-Hellenik",
1231805,
"grk",
"Latn, Polyt",
type = "reconstructed",
sort_key = {Latn = {
from = {"ʰ", "ʷ"},
to = {"h", "w"},
remove_diacritics = c.grave .. c.acute .. c.macron .. c.breve .. c.caron .. c.CGJ
}},
display_text = {Latn = {
from = {"([dlLt])" .. c.caron},
to = {"%1" .. c.CGJ .. c.caron},
}},
strip_diacritics = {Latn = {
from = {"([dlLt])" .. c.caron},
to = {"%1" .. c.CGJ .. c.caron},
}},
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
-- NOTA: dahulunya tiada translit ditentukan untuk Polyt; mungkin ketinggalan secara tidak sengaja; jika tidak, tetapkan Polyt = false dalam
-- bahagian translit
}
m["hmn-pro"] = {
"Proto-Hmongik",
116773210,
"hmn",
"Latn",
type = "reconstructed",
}
m["hmx-mie-pro"] = {
"Proto-Mienik",
116773229,
"hmx-mie",
"Latn",
type = "reconstructed",
}
m["hmx-pro"] = {
"Proto-Hmong-Mien",
7251846,
"hmx",
"Latn",
type = "reconstructed",
}
m["hyx-pro"] = {
"Proto-Armenia",
3848498,
"hyx",
"Latn",
type = "reconstructed",
}
m["iir-nur-pro"] = {
"Proto-Nuristani",
116773248,
"iir-nur",
"Latn",
type = "reconstructed",
}
m["iir-pro"] = {
"Proto-Indo-Iran",
966439,
"iir",
"Latn",
type = "reconstructed",
}
m["ijo-pro"] = {
"Proto-Ijoid",
116773766,
"ijo",
"Latn",
type = "reconstructed",
}
m["inc-apa"] = {
"Apabhramsa",
616419,
"inc-mid",
"Deva, Shrd, Sidd",
ancestors = "pra",
translit = {
Deva = "sa-translit",
-- translit Shrd dalam [[Module:scripts/data]]
-- translit Sidd dalam [[Module:scripts/data]]
},
}
m["inc-ash"] = {
"Prakrit Ashoka",
104854379,
"inc-mid",
"Brah, Khar",
ancestors = "sa",
translit = {
-- translit Brah dalam [[Module:scripts/data]]
Khar = "Khar-translit",
},
}
m["inc-dng-pro"] = {
"Proto-Dangari",
nil,
"inc-dng",
"Latn",
type = "reconstructed",
}
m["inc-kam"] = {
"Prakrit Kamarupi",
6356097,
"inc-bas",
"Brah, Sidd",
-- translit Brah, Sidd dalam [[Module:scripts/data]]
}
m["inc-kho"] = {
"Kholosi",
24952008,
"inc-snd",
"Latn",
}
m["inc-khr"] = {
"Khortha",
13406670,
"inc-sad",
"Deva, Kthi",
translit = {
Deva = "bho-translit",
Kthi = "bho-Kthi-translit",
},
}
m["inc-krd-pro"] = {
"Proto-Kamta",
128816843,
"inc-bas",
"Latn",
ancestors = "inc-kam",
type = "reconstructed",
}
m["inc-mas"] = {
"Assam Pertengahan",
128806836,
"inc-bas",
"as-Beng",
ancestors = "inc-oas",
translit = "inc-mas-translit",
}
m["inc-mbn"] = {
"Bengal Pertengahan",
113559927,
"inc-bas",
"Beng",
ancestors = "inc-obn",
translit = "inc-mbn-translit",
}
m["inc-mgu"] = {
"Gujarati Pertengahan",
24907429,
"inc-wes",
"Deva",
ancestors = "inc-ogu",
}
m["inc-mor"] = {
"Odia Pertengahan",
128810882,
"inc-eas",
"Orya",
ancestors = "inc-oor",
}
m["inc-oas"] = {
"Assam Awal",
85758237,
"inc-bas",
"as-Beng",
ancestors = "inc-kam",
translit = "inc-oas-translit",
}
m["inc-oaw"] = {
"Awadhi Kuno",
nil,
"inc-hie",
"Deva, Kthi, Aran",
strip_diacritics = {
from = {"هٔ", "ۂ"}, -- aksara "ۂ" kod U+06C2 kepada "ه" dan "هٔ" (U+0647 + U+0654) kepada "ه"
to = {"ہ", "ہ"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef
},
translit = {
Deva = "sa-translit",
Kthi = "sa-Kthi-translit",
Aran = "inc-ohi-translit",
},
}
m["inc-obn"] = {
"Bengal Kuno",
113559926,
"inc-bas",
"Beng",
}
m["inc-ogu"] = {
"Gujarati Kuno",
24907427,
"inc-wes",
"Deva",
translit = "sa-translit",
}
m["inc-ohi"] = {
"Hindi Kuno",
48767781,
"inc-hiw",
"Deva, Aran",
strip_diacritics = {
from = {"هٔ", "ۂ"}, -- aksara "ۂ" kod U+06C2 kepada "ه" dan "هٔ" (U+0647 + U+0654) kepada "ه"
to = {"ہ", "ہ"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef
},
translit = {
Deva = "sa-translit",
Aran = "inc-ohi-translit",
},
}
m["inc-oor"] = {
"Odia Kuno",
128807801,
"inc-eas",
"Orya",
}
m["inc-opa"] = {
"Punjabi Kuno",
115270971,
"inc-pan",
"Guru, Aran",
translit = {
Guru = "inc-opa-Guru-translit",
Aran = "pa-Aran-translit",
},
strip_diacritics = {remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun},
}
m["inc-pro"] = {
"Proto-Indo-Arya",
23808344,
"inc",
"Latn",
type = "reconstructed",
}
m["inc-sar"] = {
"Sarazi",
85799728,
"him",
"Aran, Deva, Takr",
strip_diacritics = {
from = {"هٔ", "ۂ"}, -- aksara "ۂ" kod U+06C2 kepada "ه" dan "هٔ" (U+0647 + U+0654) kepada "ه"
to = {"ہ", "ہ"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef
},
translit = {
Aran = "ur-translit",
Deva = "hi-translit",
-- Takr = "Takr-translit",
},
}
m["ine-ana-pro"] = {
"Proto-Anatolia",
7251833,
"ine-ana",
"Latn",
type = "reconstructed",
}
m["ine-bsl-pro"] = {
"Proto-Balto-Slav",
1703347,
"ine-bsl",
"Latn",
type = "reconstructed",
sort_key = {
from = {"[áā]", "[éēḗ]", "[íī]", "[óōṓ]", "[úū]", c.acute, c.macron, "ˀ"},
to = {"a", "e", "i", "o", "u"}
},
}
m["ine-kal"] = {
"Kalašma",
122770439,
"ine-ana",
"Xsux",
}
m["ine-pae"] = {
"Paeonia",
2705672,
"ine",
"Polyt",
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["ine-pro"] = {
"Proto-Indo-Eropah",
37178,
"ine",
"Latn",
type = "reconstructed",
sort_key = {
from = {"[áā]", "[éēḗ]", "[íī]", "[óōṓ]", "[úū]", "ĺ", "ḿ", "ń", "ŕ", "ǵ", "ḱ", "ʰ", "ʷ", "₁", "₂", "₃", c.ringbelow, c.acute, c.macron},
to = {"a", "e", "i", "o", "u", "l", "m", "n", "r", "g'", "k'", "¯h", "¯w", "1", "2", "3"}
},
}
m["ine-toc-pro"] = {
"Proto-Tocharia",
104841462,
"ine-toc",
"Latn",
type = "reconstructed",
}
m["xme-old"] = {
"Median Kuno",
36461,
"xme",
"Polyt, Latn",
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["xme-mid"] = {
"Median Pertengahan",
12836150,
"xme",
"Latn",
}
m["xme-ker"] = {
"Kermanik",
129850,
"xme",
"Arab, Latn, Hebr",
ancestors = "xme-mid",
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
}
m["xme-taf"] = {
"Tafreshi",
nil,
"xme",
"Arab, Latn",
ancestors = "xme-mid",
}
m["xme-ttc-pro"] = {
"Proto-Tatik",
122973870,
"xme-ttc",
"Latn",
ancestors = "xme-mid",
}
m["xme-kls"] = {
"Kalasuri",
nil,
"xme-ttc",
ancestors = "xme-ttc-nor",
}
m["xme-klt"] = {
"Kilit",
3612452,
"xme-ttc",
"Cyrl", -- dan Arab?
}
m["xme-ott"] = {
"Tati Kuno",
434697,
"xme-ttc",
"Arab, Latn",
}
m["ira-kms-pro"] = {
"Proto-Komisenia",
116773777,
"ira-kms",
"Latn",
type = "reconstructed",
}
m["ira-mpr-pro"] = {
"Proto-Medo-Parthia",
116773227,
"ira-mpr",
"Latn",
type = "reconstructed",
}
m["ira-pat-pro"] = {
"Proto-Pathan",
116773255,
"ira-pat",
"Latn",
type = "reconstructed",
}
m["ira-pro"] = {
"Proto-Iran",
4167865,
"ira",
"Latn",
type = "reconstructed",
}
m["ira-zgr-pro"] = {
"Proto-Zaza-Gorani",
116775031,
"ira-zgr",
"Latn",
type = "reconstructed",
}
m["xsc-pro"] = {
"Proto-Scythia",
116773273,
"xsc",
"Latn",
type = "reconstructed",
}
m["xsc-sar-pro"] = {
"Proto-Sarmatia",
116773249,
"xsc-sar",
"Latn",
type = "reconstructed",
}
m["xsc-skw-pro"] = {
"Proto-Saka-Wakhi",
116773267,
"xsc-skw",
"Latn",
type = "reconstructed",
}
m["xsc-sak-pro"] = {
"Proto-Saka",
116773264,
"xsc-sak",
"Latn",
type = "reconstructed",
}
m["ira-sym-pro"] = {
"Proto-Shughni-Yazghulami-Munji",
116773813,
"ira-sym",
"Latn",
type = "reconstructed",
}
m["ira-sgi-pro"] = {
"Proto-Sanglechi-Ishkashimi",
116773808,
"ira-sgi",
"Latn",
type = "reconstructed",
}
m["ira-mny-pro"] = {
"Proto-Munji-Yidgha",
116773792,
"ira-mny",
"Latn",
type = "reconstructed",
}
m["ira-shy-pro"] = {
"Proto-Shughni-Yazghulami",
116773812,
"ira-shy",
"Latn",
type = "reconstructed",
}
m["ira-shr-pro"] = {
"Proto-Shughni-Roshani",
116773811,
"ira-shr",
"Latn",
type = "reconstructed",
}
m["ira-sgc-pro"] = {
"Proto-Sogdia",
116773276,
"ira-sgc",
"Latn",
type = "reconstructed",
}
m["ira-wnj"] = {
"Vanji",
3398419,
"ira-shy",
"Latn",
}
m["iro-ere"] = {
"Erie",
5388365,
"iro-nor",
"Latn",
}
m["iro-min"] = {
"Mingo",
128531,
"iro-nor",
"Latn",
ietf_subtag = "i-mingo", -- tag IETF yang diwarisi
}
m["iro-nor-pro"] = {
"Proto-Iroquois Utara",
116773242,
"iro-nor",
"Latn",
type = "reconstructed",
}
m["iro-pro"] = {
"Proto-Iroquois",
7251852,
"iro",
"Latn",
type = "reconstructed",
}
m["itc-pro"] = {
"Proto-Italik",
17102720,
"itc",
"Latn",
type = "reconstructed",
}
m["itc-psa"] = {
"Pra-Samnit",
7239186,
"itc-sbl",
"Ital, Polyt, Latn",
-- translit Ital dalam [[Module:scripts/data]] (NOTA: tidak hadir sebelum ini, mungkin ketinggalan secara tidak sengaja)
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["jpx-hcj"] = {
"Hachijō",
5637049,
"jpx",
"Jpan",
ancestors = "ojp-eas",
translit = s["jpx-translit"],
display_text = s["jpx-displaytext"],
strip_diacritics = s["jpx-stripdiacritics"],
sort_key = s["jpx-sortkey"],
}
m["jpx-pro"] = {
"Proto-Jeponik",
3924309,
"jpx",
"Latn",
type = "reconstructed",
}
m["jpx-ryu-pro"] = {
"Proto-Ryukyu",
56349069,
"jpx-ryu",
"Latn",
type = "reconstructed",
}
m["kar-pro"] = {
"Proto-Karen",
85794783,
"kar",
"Latn",
type = "reconstructed",
}
m["kca-eas"] = {
"Khanty Timur",
30304622,
"kca",
"Cyrl",
translit = "kca-translit",
override_translit = true,
-- TODO sementara sehingga MediaWiki menyokong Unicode 16 (mungkin memerlukan kemas kini PHP dari pihak mereka)
sort_key = { Cyrl = { from = {""}, to = {""} } },
}
m["kca-nor"] = {
"Khanty Utara",
30304527,
"kca",
"Cyrl",
translit = "kca-translit",
override_translit = true,
-- TODO sementara sehingga MediaWiki menyokong Unicode 16 (mungkin memerlukan kemas kini PHP dari pihak mereka)
sort_key = { Cyrl = { from = {""}, to = {""} } },
}
m["kca-pro"] = {
"Proto-Khanty",
127505171,
"kca",
"Latn",
type = "reconstructed",
}
m["kca-sou"] = {
"Khanty Selatan",
30304618,
"kca",
"Cyrl",
translit = "kca-translit",
override_translit = true,
}
m["khi-kho-pro"] = {
"Proto-Khoe",
116773218,
"khi-kho",
"Latn",
type = "reconstructed",
}
m["khi-kun"] = {
"ǃKung",
32904,
"khi-kxa",
"Latn",
}
m["ko-ear"] = {
"Korea Moden Awal",
756014,
"qfa-kor",
"Kore",
ancestors = "okm",
translit = "okm-translit",
-- strip_diacritics Kore dalam [[Module:scripts/data]]
}
m["kro-pro"] = {
"Proto-Kru",
116773778,
"kro",
"Latn",
type = "reconstructed",
}
m["ku-pro"] = {
"Proto-Kurd",
116773221,
"ku",
"Latn",
type = "reconstructed",
}
m["map-ata-pro"] = {
"Proto-Atayalik",
116773151,
"map-ata",
"Latn",
type = "reconstructed",
}
m["map-bms"] = {
"Banyumasan",
33219,
"map",
"Latn, Java",
}
m["map-pro"] = {
"Proto-Austronesia",
49230,
"map",
"Latn",
type = "reconstructed",
}
m["mis-hkl"] = {
"Hokkien Peranakan Kelantan",
108794818,
"qfa-mix",
ancestors = "nan-hbl, sou, mfa",
}
m["mis-idn"] = {
"Idiom Neutral",
35847,
"art",
"Latn",
type = "appendix-constructed",
}
m["mis-isa"] = {
"Isauria",
16956868,
nil,
-- "Xsux, Hluw, Latn",
}
m["mis-jie"] = {
"Jie",
124424186,
nil,
"Hani",
sort_key = "Hani-sortkey",
}
m["mis-jzh"] = {
"Jizhao",
45242758,
"qfa-bej",
"Latn",
}
m["mis-kas"] = {
"Kassite",
35612,
nil,
"Xsux",
}
m["mis-mmd"] = {
"Mimi Decorse",
6862206,
nil,
"Latn",
}
m["mis-mmn"] = {
"Mimi Nachtigal",
6862207,
nil,
"Latn",
}
m["mis-phi"] = {
"Filistin",
2230924,
nil,
"Phnx",
-- translit Phnx dalam [[Module:scripts/data]] (NOTA: tidak hadir sebelum ini, mungkin ketinggalan secara tidak sengaja)
}
m["mis-rou"] = {
"Rouran",
48816637,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-tdl"] = {
"Turdulia",
133176492,
}
m["mis-tdt"] = {
"Turdetania",
133176461,
}
m["mis-tnw"] = {
"Tangwang",
7683179,
"qfa-mix",
"Latn",
ancestors = "cmn, sce",
}
m["mis-tuh"] = {
"Tuyuhun",
48816625,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-tuo"] = {
"Tuoba",
48816629,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-wuh"] = {
"Wuhuan",
118976867,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-xbi"] = {
"Xianbei",
4448647,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-xnu"] = {
"Xiongnu",
10901674,
nil,
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mjg-mgl"] = {
"Mongghul",
53765528,
"mjg",
"Latn", -- juga Mong, Cyrl?
}
m["mjg-mgr"] = {
"Mangghuer",
56285392,
"mjg",
"Latn", -- juga Mong, Cyrl?
}
m["mkh-asl-pro"] = {
"Proto-Asli",
55630680,
"mkh-asl",
"Latn",
type = "reconstructed",
}
m["mkh-ban-pro"] = {
"Proto-Bahnar",
116773189,
"mkh-ban",
"Latn",
type = "reconstructed",
}
m["mkh-kat-pro"] = {
"Proto-Katuik",
116773772,
"mkh-kat",
"Latn",
type = "reconstructed",
}
m["mkh-khm-pro"] = {
"Proto-Khmuik",
116773774,
"mkh-khm",
"Latn",
type = "reconstructed",
}
m["mkh-kmr-pro"] = {
"Proto-Khmer",
55630684,
"mkh-kmr",
"Latn",
type = "reconstructed",
}
m["mkh-mmn"] = {
"Mon Pertengahan",
121337926,
"mkh-mnc",
"Latn, Mymr", --dan juga Pallava
ancestors = "omx",
}
m["mkh-mnc-pro"] = {
"Proto-Monik",
116773231,
"mkh-mnc",
"Latn",
type = "reconstructed",
}
m["mkh-mvi"] = {
"Vietnam Pertengahan",
9199,
"mkh-vie",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mkh-pal-pro"] = {
"Proto-Palaungik",
104847372,
"mkh-pal",
"Latn",
type = "reconstructed",
}
m["mkh-pea-pro"] = {
"Proto-Pearik",
116773804,
"mkh-pea",
"Latn",
type = "reconstructed",
}
m["mkh-pkn-pro"] = {
"Proto-Pakanik",
116773803,
"mkh-pkn",
"Latn",
type = "reconstructed",
}
m["mkh-pro"] = { --Ini akan digabungkan ke dalam aav-pro 2015.
"Proto-Mon-Khmer",
7251859,
"mkh",
"Latn",
type = "reconstructed",
}
m["mnw-tha"] = { -- Untuk dibuang.
"Mon Thailand",
nil,
"mkh-mnc",
"Mymr, Thai",
ancestors = "mkh-mmn",
sort_key = {
from = {"[%p]", "ျ", "ြ", "ွ", "ှ", "ၞ", "ၟ", "ၠ", "ၚ", "ဿ", "[็-๎]", "([เแโใไ])([ก-ฮ])ฺ?"},
to = {"", "္ယ", "္ရ", "္ဝ", "္ဟ", "္န", "္မ", "္လ", "င", "သ္သ", "", "%2%1"}
},
}
m["mkh-vie-pro"] = {
"Proto-Vietik",
109432616,
"mkh-vie",
"Latn",
type = "reconstructed",
}
m["mns-cen"] = {
"Mansi Tengah",
128810384,
"mns",
"Cyrl",
translit = "mns-translit",
override_translit = true,
}
m["mns-nor"] = {
"Mansi Utara",
30304537,
"mns",
"Cyrl",
translit = "mns-translit",
override_translit = true,
}
m["mns-pro"] = {
"Proto-Mansi",
128883093,
"mns",
"Latn",
type = "reconstructed",
}
m["mns-sou"] = {
"Mansi Selatan",
30304629,
"mns",
"Cyrl",
translit = "mns-translit",
override_translit = true,
}
m["mun-pro"] = {
"Proto-Munda",
105102373,
"mun",
"Latn",
type = "reconstructed",
}
m["myn-chl"] = { -- peringkat selepas ''emy''
"Ch'olti'",
873995,
"myn",
"Latn",
}
m["myn-pro"] = {
"Proto-Maya",
3321532,
"myn",
"Latn",
type = "reconstructed",
}
m["nai-ala"] = {
"Alazapa",
128810233,
nil,
"Latn",
}
m["nai-bay"] = {
"Bayogoula",
1563704,
nil,
"Latn",
}
m["nai-cal"] = {
"Calusa",
51782,
nil,
"Latn",
}
m["nai-chi"] = {
"Chiquimulilla",
25339627,
"nai-xin",
"Latn",
}
m["nai-chu-pro"] = {
"Proto-Chumash",
116773736,
"nai-chu",
"Latn",
type = "reconstructed",
}
m["nai-cig"] = {
"Ciguayo",
20741700,
nil,
"Latn",
}
m["nai-ckn-pro"] = {
"Proto-Chinook",
116773735,
"nai-ckn",
"Latn",
type = "reconstructed",
}
m["nai-guz"] = {
"Guazacapán",
19572028,
"nai-xin",
"Latn",
}
m["nai-hit"] = {
"Hitchiti",
1542882,
"nai-mus",
"Latn",
}
m["nai-ipa"] = {
"Ipai",
3027474,
"nai-yuc",
"Latn",
}
m["nai-jtp"] = {
"Jutiapa",
nil,
"nai-xin",
"Latn",
}
m["nai-jum"] = {
"Jumaytepeque",
25339626,
"nai-xin",
"Latn",
}
m["nai-kat"] = {
"Kathlamet",
6376639,
"nai-ckn",
"Latn",
}
m["nai-klp-pro"] = {
"Proto-Kalapuya",
116773771,
"nai-klp",
"Latn",
type = "reconstructed",
}
m["nai-knm"] = {
"Konomihu",
3198734,
"nai-shs",
"Latn",
}
m["nai-kum"] = {
"Kumeyaay",
4910139,
"nai-yuc",
"Latn",
}
m["nai-mac"] = {
"Macoris",
21070851,
nil,
"Latn",
}
m["nai-mdu-pro"] = {
"Proto-Maidu",
116773784,
"nai-mdu",
"Latn",
type = "reconstructed",
}
m["nai-miz-pro"] = {
"Proto-Mixe-Zoque",
7251858,
"nai-miz",
"Latn",
type = "reconstructed",
}
m["nai-mus-pro"] = {
"Proto-Muskogi",
116775368,
"nai-mus",
"Latn",
type = "reconstructed",
}
m["nai-nao"] = {
"Naolan",
6964594,
nil,
"Latn",
}
m["nai-nrs"] = {
"Shasta Sungai Baru",
7011254,
"nai-shs",
"Latn",
}
m["nai-okw"] = {
"Okwanuchu",
3350126,
"nai-shs",
"Latn",
}
m["nai-per"] = {
"Pericú",
3375369,
nil,
"Latn",
}
m["nai-pic"] = {
"Picuris",
7191257,
"nai-kta",
"Latn",
}
m["nai-plp-pro"] = {
"Proto-Plateau Penutian",
116773806,
"nai-plp",
"Latn",
type = "reconstructed",
}
m["nai-pom-pro"] = {
"Proto-Pomo",
116773262,
"nai-pom",
"Latn",
type = "reconstructed",
}
m["nai-qng"] = {
"Quinigua",
36360,
nil,
"Latn",
}
m["nai-sca-pro"] = { -- PERHATIAN 'sio-pro' "Proto-Siouan" iaitu Proto-Siouan Barat
"Proto-Siouan-Catawba",
116773275,
"nai-sca",
"Latn",
type = "reconstructed",
}
m["nai-sin"] = {
"Sinacantán",
24190249,
"nai-xin",
"Latn",
}
m["nai-sln"] = {
"Lenca Salvador",
3229434,
"nai-len",
"Latn",
}
m["nai-spt"] = {
"Sahaptin",
3833015,
"nai-shp",
"Latn",
}
m["nai-tap"] = {
"Tapachultec",
7684401,
"nai-miz",
"Latn",
}
m["nai-taw"] = {
"Tawasa",
7689233,
nil,
"Latn",
}
m["nai-teq"] = {
"Tequistlatec",
2964454,
"nai-tqn",
"Latn",
}
m["nai-tip"] = {
"Tipai",
3027471,
"nai-yuc",
"Latn",
}
m["nai-tot-pro"] = {
"Proto-Totozoquean",
116773285,
"nai-tot",
"Latn",
type = "reconstructed",
}
m["nai-tsi-pro"] = {
"Proto-Tsimshianik",
nil,
"nai-tsi",
"Latn",
type = "reconstructed",
}
m["nai-utn-pro"] = {
"Proto-Utik",
116773290,
"nai-utn",
"Latn",
type = "reconstructed",
}
m["nai-wai"] = {
"Waikuri",
3118702,
nil,
"Latn",
}
m["nai-wji"] = {
"Jicaque Barat",
3178610,
"nai-jcq",
"Latn",
}
m["nai-yup"] = {
"Yupiltepeque",
25339628,
"nai-xin",
"Latn",
}
m["nan-dat"] = {
"Min Datian",
19855572,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-hbl"] = {
"Hokkien",
1624231,
"zhx-nan",
"Hants, Latn, Bopo, Kana",
wikimedia_codes = "zh-min-nan",
generate_forms = "zh-generateforms",
sort_key = {
Hani = "Hani-sortkey",
Kana = "Kana-sortkey"
},
}
m["nan-hlh"] = {
"Min Hailufeng",
120755728,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-lnx"] = {
"Min Longyan",
6674568,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-tws"] = {
"Teochew",
36759,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["nan-zhe"] = {
"Min Zhenan",
3846710,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-zsh"] = {
"Min Sanxiang",
7420769,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["ngf-bin-pro"] = {
"Proto-Binandere",
137881672,
"ngf-bin",
"Latn",
type = "reconstructed",
}
m["ngf-pro"] = {
"Proto-Trans-New Guinea",
85794785,
"ngf",
"Latn",
type = "reconstructed",
}
m["nic-bco-pro"] = {
"Proto-Benue-Congo",
116773194,
"nic-bco",
"Latn",
type = "reconstructed",
}
m["nic-bod-pro"] = {
"Proto-Bantoid",
116773190,
"nic-bod",
"Latn",
type = "reconstructed",
}
m["nic-eov-pro"] = {
"Proto-Oti-Volta Timur",
116773753,
"nic-eov",
"Latn",
type = "reconstructed",
}
m["nic-gns-pro"] = {
"Proto-Gurunsi",
116773759,
"nic-gns",
"Latn",
type = "reconstructed",
}
m["nic-grf-pro"] = {
"Proto-Grassfields",
116773755,
"nic-grf",
"Latn",
type = "reconstructed",
}
m["nic-gur-pro"] = {
"Proto-Gur",
116773758,
"nic-gur",
"Latn",
type = "reconstructed",
}
m["nic-jkn-pro"] = {
"Proto-Jukunoid",
116773769,
"nic-jkn",
"Latn",
type = "reconstructed",
}
m["nic-lcr-pro"] = {
"Proto-Cross River Bawah",
116773782,
"nic-lcr",
"Latn",
type = "reconstructed",
}
m["nic-ogo-pro"] = {
"Proto-Ogoni",
116773799,
"nic-ogo",
"Latn",
type = "reconstructed",
}
m["nic-ovo-pro"] = {
"Proto-Oti-Volta",
116773802,
"nic-ovo",
"Latn",
type = "reconstructed",
}
m["nic-plt-pro"] = {
"Proto-Plateau",
116773805,
"nic-plt",
"Latn",
type = "reconstructed",
}
m["nic-pro"] = {
"Proto-Niger-Congo",
108000748,
"nic",
"Latn",
type = "reconstructed",
}
m["nic-ubg-pro"] = {
"Proto-Ubangian",
116773818,
"nic-ubg",
"Latn",
type = "reconstructed",
}
m["nic-ucr-pro"] = {
"Proto-Cross River Atas",
116773819,
"nic-ucr",
"Latn",
type = "reconstructed",
}
m["nic-vco-pro"] = {
"Proto-Volta-Congo",
116773293,
"nic-vco",
"Latn",
type = "reconstructed",
}
m["njo-jgl"] = {
"Ao Chungli",
55607615,
"njo",
"Latn",
}
m["njo-mng"] = {
"Ao Mongsen",
85383221,
"njo",
"Latn",
}
m["nub-har"] = {
"Haraza",
19572059,
"nub",
"Arab, Latn",
}
m["nub-pro"] = {
"Proto-Nubia",
116773246,
"nub",
"Latn",
type = "reconstructed",
}
m["omq-cha-pro"] = {
"Proto-Chatino",
116773202,
"omq-cha",
"Latn",
type = "reconstructed",
}
m["omq-maz-pro"] = {
"Proto-Mazatec",
116773790,
"omq-maz",
"Latn",
type = "reconstructed",
}
m["omq-mix-pro"] = {
"Proto-Mixtecan",
21573423,
"omq-mix",
"Latn",
type = "reconstructed",
}
m["omq-mxt-pro"] = {
"Proto-Mixtec",
21573424,
"omq-mxt",
"Latn",
type = "reconstructed",
}
m["omq-otp-pro"] = {
"Proto-Oto-Pamean",
116773251,
"omq-otp",
"Latn",
type = "reconstructed",
}
m["omq-pro"] = {
"Proto-Oto-Manguean",
33669,
"omq",
"Latn",
type = "reconstructed",
}
m["omq-sjq"] = {
"Chatino San Juan Quiahije",
138330751,
"omq-cha",
"Latn",
}
m["omq-tel"] = {
"Mixtec Teposcolula",
nil,
"omq-mxt",
"Latn",
}
m["omq-teo"] = {
"Chatino Teojomulco",
25340451,
"omq-cha",
"Latn",
}
m["omq-tri-pro"] = {
"Proto-Triqui",
116773817,
"omq-tri",
"Latn",
type = "reconstructed",
}
m["omq-zap-pro"] = {
"Proto-Zapotecan",
116773297,
"omq-zap",
"Latn",
type = "reconstructed",
}
m["omq-zpc-pro"] = {
"Proto-Zapotec",
116773296,
"omq-zpc",
"Latn",
type = "reconstructed",
}
m["omv-aro-pro"] = {
"Proto-Aroid",
116773721,
"omv-aro",
"Latn",
type = "reconstructed",
}
m["omv-diz-pro"] = {
"Proto-Dizoid",
116773750,
"omv-diz",
"Latn",
type = "reconstructed",
}
m["omv-pro"] = {
"Proto-Omotic",
116773800,
"omv",
"Latn",
type = "reconstructed",
}
m["oto-otm-pro"] = {
"Proto-Otomi",
5908710,
"oto-otm",
"Latn",
type = "reconstructed",
}
m["oto-pro"] = {
"Proto-Otomian",
116773252,
"oto",
"Latn",
type = "reconstructed",
}
m["paa-kmn"] = {
"Kómnzo",
18344310,
"paa-wko",
"Latn",
}
m["paa-kwn"] = {
"Kuwani",
6449056,
"qfa-unc", -- kurang dibuktikan, mungkin sama dengan atau berkaitan dengan Kalabra
"Latn",
}
m["paa-lei"] = {
"Leitre",
85776228,
"paa-isk",
}
m["paa-nha-pro"] = {
"Proto-Halmahera Utara",
116773241,
"paa-nha",
"Latn",
type = "reconstructed"
}
m["paa-nun"] = {
"Nungon",
128807788,
"ngf-ynu",
"Latn",
}
m["phi-din"] = {
"Agta Dinapigue",
16945774,
"phi",
"Latn",
}
m["phi-kal-pro"] = {
"Proto-Kalamian",
116773213,
"phi-kal",
"Latn",
type = "reconstructed",
}
m["phi-nag"] = {
"Agta Nagtipunan",
16966111,
"phi",
"Latn",
}
m["phi-pro"] = {
"Proto-Filipina",
18204898,
"phi",
"Latn",
type = "reconstructed",
}
m["poz-abi"] = {
"Abai",
19570729,
"poz-san",
"Latn",
}
m["poz-bal"] = {
"Baliledo",
4850912,
"poz",
"Latn",
}
m["poz-btk-pro"] = {
"Proto-Bungku-Tolaki",
116773724,
"poz-btk",
"Latn",
type = "reconstructed",
}
m["poz-cet-pro"] = {
"Proto-Melayu-Polenesia Tengah-Timur",
2269883,
"poz-cet",
"Latn",
type = "reconstructed",
}
m["poz-hce-pro"] = {
"Proto-Halmahera-Cenderawasih",
116773209,
"poz-hce",
"Latn",
type = "reconstructed",
}
m["poz-lgx-pro"] = {
"Proto-Lampungik",
116773222,
"poz-lgx",
"Latn",
type = "reconstructed",
}
m["poz-mcm-pro"] = {
"Proto-Melayu-Chamic",
116773225,
"poz-mcm",
"Latn",
type = "reconstructed",
}
m["poz-mic-pro"] = {
"Proto-Mikronesia",
111939079,
"poz-mic",
"Latn",
type = "reconstructed",
}
m["poz-mly-pro"] = {
"Proto-Melayik",
98057728,
"poz-mly",
"Latn",
type = "reconstructed",
}
m["poz-msa-pro"] = {
"Proto-Melayu-Sumbawa",
116773226,
"poz-msa",
"Latn",
type = "reconstructed",
}
m["poz-nes"] = {
"Nese",
2157412,
"poz-vnc",
"Latn",
}
m["poz-oce-pro"] = {
"Proto-Oceania",
141741,
"poz-oce",
"Latn",
type = "reconstructed",
}
m["poz-pcc-pro"] = {
"Proto-Pasifik Tengah",
111962726,
"poz-pcc",
"Latn",
type = "reconstructed",
}
m["poz-pep-pro"] = {
"Proto-Polinesia Timur",
113988745,
"poz-pep",
"Latn",
type = "reconstructed",
}
m["poz-pnp-pro"] = {
"Proto-Polinesia Nukleus",
113988746,
"poz-pnp",
"Latn",
type = "reconstructed",
}
m["poz-pol-pro"] = {
"Proto-Polinesia",
1658709,
"poz-pol",
"Latn",
type = "reconstructed",
}
m["poz-pro"] = {
"Proto-Melayu-Polenesia",
3832960,
"poz",
"Latn",
type = "reconstructed",
}
m["poz-sml"] = {
"Melayu Sarawak",
4251702,
"poz-mly",
"Latn, Arab",
}
m["poz-ssw-pro"] = {
"Proto-Sulawesi Selatan",
116773279,
"poz-ssw",
"Latn",
type = "reconstructed",
}
m["poz-swa-pro"] = {
"Proto-Sarawak Utara",
116773243,
"poz-swa",
"Latn",
type = "reconstructed",
}
m["poz-ter"] = {
"Melayu Terengganu",
4207412,
"poz-mly",
"Latn, Arab",
}
m["pqe-pro"] = {
"Proto-Melayu-Polenesia Timur",
2269883,
"pqe",
"Latn",
type = "reconstructed",
}
m["pra-niy"] = {
"Prakrit Niya",
11991601,
"inc-mid",
"Khar",
ancestors = "inc-ash",
translit = "Khar-translit",
}
m["qfa-adm-pro"] = {
"Proto-Andaman Besar",
116773756,
"qfa-adm",
"Latn",
type = "reconstructed",
}
m["qfa-bet-pro"] = {
"Proto-Be-Tai",
116773193,
"qfa-bet",
"Latn",
type = "reconstructed",
}
m["qfa-cka-pro"] = {
"Proto-Chukotko-Kamchatka",
7251837,
"qfa-cka",
"Latn",
type = "reconstructed",
}
m["qfa-hur-pro"] = {
"Proto-Hurro-Urartia",
116773211,
"qfa-hur",
"Latn",
type = "reconstructed",
}
m["qfa-kad-pro"] = {
"Proto-Kadu",
116773770,
"qfa-kad",
"Latn",
type = "reconstructed",
}
m["qfa-kms-pro"] = {
"Proto-Kam-Sui",
55630682,
"qfa-kms",
"Latn",
type = "reconstructed",
}
m["qfa-kor-pro"] = {
"Proto-Korea",
467883,
"qfa-kor",
"Latn",
type = "reconstructed",
}
m["qfa-kra-pro"] = {
"Proto-Kra",
7251854,
"qfa-kra",
"Latn",
type = "reconstructed",
}
m["qfa-lic-pro"] = {
"Proto-Hlai",
7251845,
"qfa-lic",
"Latn",
type = "reconstructed",
}
m["qfa-onb-pro"] = {
"Proto-Be",
116773192,
"qfa-onb",
"Latn",
type = "reconstructed",
}
m["qfa-ong-pro"] = {
"Proto-Onga",
116773801,
"qfa-ong",
"Latn",
type = "reconstructed",
}
m["qfa-tak-pro"] = {
"Proto-Kra-Dai",
104901616,
"qfa-tak",
"Latn",
type = "reconstructed",
}
m["qfa-yen-pro"] = {
"Proto-Yenisei",
27639,
"qfa-yen",
"Latn",
type = "reconstructed",
}
m["qfa-yuk-pro"] = {
"Proto-Yukaghir",
116773294,
"qfa-yuk",
"Latn",
type = "reconstructed",
}
m["qwe-kch"] = {
"Kichwa",
1740805,
"qwe",
"Latn",
ancestors = "qu",
}
m["qwe-pro"] = {
"Proto-Quechua",
5575757,
"qwe",
"Latn",
type = "reconstructed",
}
m["roa-ang"] = {
"Angevin",
56782,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-bbn"] = {
"Bourbonnais-Berrichon",
2899128,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-brg"] = {
"Bourguignon",
508332,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-can"] = {
"Cantabrian",
917021,
"roa-asl",
"Latn",
}
m["roa-cha"] = {
"Champenois",
430018,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-fcm"] = {
"Franc-Comtois",
510561,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-gal"] = {
"Gallo",
37300,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-gib"] = {
"Gallo-Itali Basilicata",
3094838,
"roa-git",
ancestors = "pms-old",
"Latn",
}
m["roa-gis"] = {
"Gallo-Itali Sicily",
2629019,
"roa-git",
"Latn",
ancestors = "pms-old",
}
m["roa-leo"] = {
"Leonese",
34108,
"roa-asl",
"Latn",
}
m["roa-lor"] = {
"Lorrain",
671198,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-oca"] = {
"Catalan Kuno",
15478520,
"roa-ocr",
"Latn",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.diaer .. c.cedilla .. "·"},
}
m["roa-ole"] = {
"Leonese Kuno",
125977465,
"roa-asl",
"Latn",
}
m["roa-ona"] = {
"Navarro-Aragon Kuno",
2736184,
"roa-nar",
"Latn",
}
m["roa-opt"] = {
"Galicia-Portugis Kuno",
1072111,
"roa-gap",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ},
}
m["roa-orl"] = {
"Orléanais",
28497058,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-poi"] = {
"Poitevin-Saintongeais",
514123,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-tar"] = {
"Tarantino",
695526,
"roa-itr",
"Latn",
wikimedia_codes = "roa-tara",
}
m["sai-all"] = {
"Allentiac",
19570789,
"sai-hrp",
"Latn",
}
m["sai-and"] = {
"Andoquero",
16828359,
"sai-wit",
"Latn",
}
m["sai-ayo"] = {
"Ayomán",
16937754,
"sai-jir",
"Latn",
}
m["sai-bae"] = {
"Baenan",
3401998,
"qfa-unc", -- pupus, kurang dibuktikan; hanya dikenali melalui 9 perkataan
"Latn",
}
m["sai-bag"] = {
"Bagua",
5390321,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin bahasa Carib
"Latn",
}
m["sai-bet"] = {
"Betoi",
926551,
"qfa-iso",
"Latn",
}
m["sai-bor-pro"] = {
"Proto-Bora",
nil,
"sai-bor",
"Latn",
}
m["sai-cac"] = {
"Cacán",
945482,
"qfa-unc", -- pupus, kurang dibuktikan; tiada konsensus mengenai pengelasan
"Latn",
}
m["sai-caq"] = {
"Caranqui",
2937753,
"sai-bar",
"Latn",
}
m["sai-car-pro"] = {
"Proto-Carib",
116773196,
"sai-car",
"Latn",
type = "reconstructed",
}
m["sai-cat"] = {
"Catacao",
5051136,
"sai-ctc",
"Latn",
}
m["sai-cer-pro"] = {
"Proto-Cerrado",
116773200,
"sai-cer",
"Latn",
type = "reconstructed",
}
m["sai-chi"] = {
"Chirino",
5390321,
"qfa-unc", -- pupus, hanya empat perkataan diketahui; mungkin berkaitan dengan Candoshi-Shapra (cbu)
"Latn",
}
m["sai-chn"] = {
"Chaná",
5072718,
"sai-crn",
"Latn",
}
m["sai-chp"] = {
"Chapacura",
5072884,
"sai-cpc",
"Latn",
}
m["sai-chr"] = {
"Charrua",
5086680,
"sai-crn",
"Latn",
}
m["sai-chu"] = {
"Churuya",
5118339,
"sai-guh",
"Latn",
}
m["sai-cje-pro"] = {
"Proto-Jê Tengah",
116773198,
"sai-cje",
"Latn",
type = "reconstructed",
}
m["sai-cmg"] = {
"Comechingon",
6644203,
"qfa-unc", -- pupus, kurang dibuktikan; tiada konsensus mengenai pengelasan
"Latn",
}
m["sai-cno"] = {
"Chono",
5104704,
"qfa-unc", -- pupus, kurang dibuktikan; tiada konsensus mengenai pengelasan, mungkin palsu
"Latn",
}
m["sai-cnr"] = {
"Cañari",
5055572,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Chimuan atau Barbacoan
"Latn",
}
m["sai-coe"] = {
"Coeruna",
6425639,
"sai-wit",
"Latn",
}
m["sai-col"] = {
"Colán",
5141893,
"sai-ctc",
"Latn",
}
m["sai-cop"] = {
"Copallén",
5390321,
"qfa-unc", -- pupus, hanya empat perkataan dibuktikan; mungkin Cholonan
"Latn",
}
m["sai-crd"] = {
"Coroado Puri",
24191321,
"sai-mje",
"Latn",
}
m["sai-ctq"] = {
"Catuquinaru",
16858455,
"qfa-unc", -- pupus, kurang dibuktikan; kosa kata tidak menyerupai bahasa lain
"Latn",
}
m["sai-cul"] = {
"Culli",
2879660,
"qfa-unc", -- pupus, kurang dibuktikan; sering dianggap sebagai pencilan
"Latn",
}
m["sai-cva"] = {
"Cueva",
5192644,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Chocoan
"Latn",
}
m["sai-esm"] = {
"Esmeralda",
3058083,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin berkaitan dengan Yaruro
"Latn",
}
m["sai-ewa"] = {
"Ewarhuyana",
16898104,
nil,
"Latn",
}
m["sai-gam"] = {
"Gamela",
5403661,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin pencilan
"Latn",
}
m["sai-gay"] = {
"Gayón",
5528902,
"sai-jir",
"Latn",
}
m["sai-gmo"] = {
"Guamo",
5613495,
"qfa-unc", -- pupus; "Kaufman (1990) mendapati hubungan dengan bahasa-bahasa Chapacuran meyakinkan." [Wikipedia] Dianggap sebagai pencilan oleh Campbell (2024).
"Latn",
}
m["sai-gua"] = {
"Guachí",
5613172,
"sai-guc",
"Latn",
}
m["sai-gue"] = {
"Güenoa",
5626799,
"sai-crn",
"Latn",
}
m["sai-hau"] = {
"Haush",
3128376,
"sai-cho",
"Latn",
}
m["sai-jee-pro"] = {
"Proto-Jê",
116773212,
"sai-jee",
"Latn",
type = "reconstructed",
}
m["sai-jko"] = {
"Jeikó",
6176527,
"sai-mje",
"Latn",
}
m["sai-jrj"] = {
"Jirajara",
6202966,
"sai-jir",
"Latn",
}
m["sai-kat"] = { -- kontras xoo, kzw, sai-xoc
"Katembri",
6375925,
"qfa-unc", -- pupus, kurang dibuktikan; "Kaufman (1990) telah menghubungkannya dengan bahasa Taruma yang hampir pupus, walaupun ini tidak diterima oleh sarjana lain." [Wikipedia]
"Latn",
}
m["sai-mal"] = {
"Malalí",
6741212,
"sai-mje", -- dianggap sebagai bahasa Maxakalían yang paling divergen (subbahagian kepada Macro-Jê), yang mana kami tiada entri
"Latn",
}
m["sai-mar"] = {
"Maratino",
6755055,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Uto-Aztecan
"Latn",
}
m["sai-mat"] = {
"Matanawi",
6786047,
"qfa-unc", -- pupus; sama ada pencilan atau berkait jauh dengan bahasa-bahasa Muran; Campbell (2024) menyenarainya sebagai pencilan, Glottolog memberikannya sebagai tidak terkelas
"Latn",
}
m["sai-mcn"] = {
"Mocana",
3402048,
"qfa-unc", -- pupus, kurang dibuktikan; diberikan sebagai sebahagian daripada bahasa Malibu (pengumpulan geografi; bukan klad)
"Latn",
}
m["sai-men"] = {
"Menien",
16890110,
"sai-mje",
"Latn",
}
m["sai-mil"] = {
"Millcayac",
19573012,
"sai-hrp",
"Latn",
}
m["sai-mlb"] = {
"Malibu",
134374036,
"qfa-unc", -- pupus, kurang dibuktikan; diberikan sebagai sebahagian daripada bahasa Malibu (pengumpulan geografi; bukan klad)
"Latn",
}
m["sai-msk"] = {
"Masakará",
6782426,
"sai-mje",
"Latn",
}
m["sai-muc"] = {
"Mucuchí",
6931290,
nil, -- lazimnya dianggap sebagai Timotean, yang mana kami tiada entri
"Latn",
}
m["sai-mue"] = {
"Muellama",
16886936,
"sai-bar",
"Latn",
}
m["sai-muz"] = {
"Muzo",
6644203,
"qfa-unc", -- bahasa pupus di Colombia, kurang dibuktikan; mungkin Pijao (Cariban)
"Latn",
}
m["sai-mys"] = {
"Maynas",
16919393,
"sai-cah", -- mengikut Campbell (2024); dahulu dianggap tidak terkelas
"Latn",
}
m["sai-nat"] = {
"Natú",
9006749,
"qfa-unc", -- pupus, kurang dibuktikan; "hanya Greenberg yang berani mengelaskannya".[Wikipedia, memetik Moseley, Christopher; Asher, R. E.; Tait, Mary (1994), Atlas of the world's languages]
"Latn",
}
m["sai-nje-pro"] = {
"Proto-Jê Utara",
116773245,
"sai-nje",
"Latn",
type = "reconstructed",
}
m["sai-opo"] = {
"Opón",
7099152,
"sai-car",
"Latn",
}
m["sai-oto"] = {
"Otomaco",
16879234,
"sai-otm",
"Latn",
}
m["sai-pal"] = {
"Palta",
3042978,
"qfa-unc", -- pupus, tidak terkelas; mungkin Chicham
"Latn",
}
m["sai-pam"] = {
"Pamigua",
5908689,
"sai-tin",
"Latn",
}
m["sai-par"] = {
"Paratió",
16890038,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Xukuruan
"Latn",
}
m["sai-peb"] = {
"Peba",
3373890,
"sai-pey",
"Latn",
}
m["sai-pnz"] = {
"Panzaleo",
3123275,
"qfa-unc", -- pupus, tidak terkelas; mungkin Paezan
"Latn",
}
m["sai-prh"] = {
"Puruhá",
3410994,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin dalam keluarga dengan Cañari
"Latn",
}
m["sai-ptg"] = {
"Patagón",
128807870,
"sai-tar", -- pupus, hanya diketahui daripada 4 perkataan, yang mencadangkan susur galur Cariban (Campbell 2024)
"Latn",
}
m["sai-pur"] = {
"Purukotó",
7261622,
"sai-pem",
"Latn",
}
m["sai-pyg"] = {
"Payaguá",
7156643,
"sai-guc",
"Latn",
}
m["sai-pyk"] = {
"Pykobjê",
98113977,
"sai-nje",
"Latn",
}
m["sai-qmb"] = {
"Quimbaya",
7272043,
"qfa-unc", -- pupus, mungkin tidak wujud; sedikit perkataan yang diketahui
"Latn",
}
m["sai-qtm"] = {
"Quitemo",
7272651,
"sai-cpc",
"Latn",
}
m["sai-rab"] = {
"Rabona",
6644203,
"qfa-unc", -- pupus, kurang dibuktikan, kebanyakan nama tumbuhan; mungkin Candoshi-Shapra
"Latn",
}
m["sai-ram"] = {
"Ramanos",
16902824,
"qfa-unc", -- pupus, kurang dibuktikan, mungkin pencilan; mengikut Glottolog: "senarai perkataan yang kerdil ... tidak menunjukkan persamaan yang meyakinkan dengan bahasa sekeliling"
"Latn",
}
m["sai-sac"] = {
"Sácata",
5390321,
"qfa-unc", -- pupus, hanya 3 perkataan diketahui; mungkin Candoshí atau Arawak
"Latn",
}
m["sai-san"] = {
"Sanaviron",
16895999,
"qfa-unc", -- pupus, tidak terkelas; tiada konsensus mengenai pengelasan
"Latn",
}
m["sai-sap"] = {
"Sapará",
7420922,
"sai-car",
"Latn",
}
m["sai-sec"] = {
"Sechura",
7442912,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Catacaoan
"Latn",
}
m["sai-sin"] = {
"Sinúfana",
7525275,
"qfa-unc", -- hampir pupus, kurang dibuktikan; mungkin Chocoan
"Latn",
}
m["sai-sje-pro"] = {
"Proto-Jê Selatan",
116773814,
"sai-sje",
"Latn",
type = "reconstructed",
}
m["sai-tab"] = {
"Tabancale",
5390321,
"qfa-unc", -- pupus, hanya 5 perkataan diketahui; tiada kaitan yang jelas, mungkin pencilan
"Latn",
}
m["sai-tal"] = {
"Tallán",
16910468,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Catacaoan
"Latn",
}
m["sai-tap"] = {
"Tapayuna",
30719984,
"sai-nje",
"Latn",
}
m["sai-tar-pro"] = {
"Proto-Taranoan",
116773816,
"sai-tar",
"Latn",
type = "reconstructed",
}
m["sai-teu"] = {
"Teushen",
3519243,
"qfa-unc", -- mungkin pupus menjelang 1950-an; mungkin Chonan
"Latn",
}
m["sai-tim"] = {
"Timote",
7806995,
nil, -- mungkin dalam keluarga Timote kecil
"Latn",
}
m["sai-tpr"] = {
"Taparita",
7684460,
"sai-otm",
"Latn",
}
m["sai-trr"] = {
"Tarairiú",
7685313,
"qfa-unc", -- pupus, terlalu kurang dibuktikan untuk dikelaskan
"Latn",
}
m["sai-wai"] = {
"Waitaká",
16918610,
"qfa-unc", -- pupus, mungkin Purian
"Latn",
}
m["sai-way"] = {
"Wayumara",
7960726,
"sai-car",
"Latn",
}
m["sai-wit-pro"] = {
"Proto-Witotoan",
116773823,
"sai-wit",
"Latn",
type = "reconstructed",
}
m["sai-wnm"] = {
"Wanham",
16879440,
"sai-cpc",
"Latn",
}
m["sai-xoc"] = { -- kontras xoo, kzw, sai-kat
"Xocó",
12953620,
"qfa-unc", -- pupus dan kurang dibuktikan; tidak jelas sama ada satu atau tiga bahasa
"Latn",
}
m["sai-yao"] = {
"Yao (Amerika Selatan)",
16979655,
"sai-ven",
"Latn",
}
m["sai-yar"] = { -- bukan keluarga yang sama dengan 'suy'
"Yarumá",
3505859,
"sai-pek",
"Latn",
}
m["sai-yri"] = {
"Yuri",
2669157,
"sai-tyu",
"Latn",
}
m["sai-yup"] = {
"Yupua",
8061430,
"sai-tuc",
"Latn",
}
m["sai-yur"] = {
"Yurumanguí",
1281291,
"qfa-unc", -- pupus, terlalu kurang dibuktikan untuk dikelaskan
"Latn",
}
m["sal-pro"] = {
"Proto-Salish",
116773269,
"sal",
"Latn",
type = "reconstructed",
}
m["sdv-daj-pro"] = {
"Proto-Daju",
116773739,
"sdv-daj",
"Latn",
type = "reconstructed",
}
m["sdv-eje-pro"] = {
"Proto-Jebel Timur",
116773751,
"sdv-eje",
"Latn",
type = "reconstructed",
}
m["sdv-nil-pro"] = {
"Proto-Nilotik",
116773794,
"sdv-nil",
"Latn",
type = "reconstructed",
}
m["sdv-nyi-pro"] = {
"Proto-Nyima",
116773796,
"sdv-nyi",
"Latn",
type = "reconstructed",
}
m["sdv-tmn-pro"] = {
"Proto-Taman",
116773815,
"sdv-tmn",
"Latn",
type = "reconstructed",
}
m["sel-nor"] = {
"Selkup Utara",
30304565,
"sel",
"Cyrl",
translit = "sel-nor-translit",
}
m["sel-pro"] = {
"Proto-Selkup",
128884235,
"sel",
"Latn",
type = "reconstructed",
}
m["sel-sou"] = {
"Selkup Selatan",
30304639,
"sel",
"Cyrl",
translit = "sel-sou-translit",
}
m["sem-amm"] = {
"Ammon",
279181,
"sem-can",
"Phnx",
-- translit Phnx dalam [[Module:scripts/data]]
}
m["sem-amo"] = {
"Amor",
35941,
"sem-nwe",
"Xsux, Latn",
}
m["sem-cha"] = {
"Chaha",
35543,
"sem-eth",
"Ethi",
translit = "Ethi-translit",
}
m["sem-dad"] = {
"Dadan",
21838040,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-dum"] = {
"Dumait",
128810397,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-has"] = {
"Hasait",
3541433,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-his"] = {
"Hisma",
22948260,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-mhr"] = {
"Muher",
33743,
"sem-eth",
"Latn",
}
m["sem-pro"] = {
"Proto-Semitik",
1658554,
"sem",
"Latn",
type = "reconstructed",
}
m["sem-saf"] = {
"Safait",
472586,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-sam"] = {
"Samal",
85847147,
"sem-nwe",
"Phnx",
-- translit Phnx dalam [[Module:scripts/data]]
}
m["sem-srb"] = {
"Arab Selatan Kuno",
35025,
"sem-osa",
"Sarb",
-- translit Sarb dalam [[Module:scripts/data]]
}
m["sem-tay"] = {
"Tayman",
24912301,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-tha"] = {
"Thamud",
843030,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-wes-pro"] = {
"Proto-Semitik Barat",
98021726,
"sem-wes",
"Latn",
type = "reconstructed",
}
m["sio-pro"] = { -- PERHATIAN ini bukan 'nai-sca-pro' "Proto-Siouan-Catawban" iaitu Proto-Siouan Barat
"Proto-Siouan",
34181,
"sio",
"Latn",
type = "reconstructed",
}
m["sit-aao-pro"] = {
"Proto-Naga Tengah",
nil,
"sit-aao",
"Latn",
type = "reconstructed",
}
m["sit-bai-pro"] = {
"Proto-Bai",
nil,
"sit-bai",
"Latn",
type = "reconstructed",
}
m["sit-ban"] = {
"Bangru",
56071779,
"sit-hrs",
"Latn",
}
m["sit-bdi-pro"] = {
"Proto-Bodish",
nil,
"sit-bdi",
"Latn",
type = "reconstructed",
}
m["sit-bok"] = {
"Bokar",
4938727,
"sit-tan",
"Latn, Tibt",
override_translit = true,
-- translit, display_text, strip_diacritics, sort_key Tibt dalam [[Module:scripts/data]]
}
m["sit-cai"] = {
"Caijia",
5017528,
"sit-cln",
"Latn"
}
m["sit-cha"] = {
"Chairel",
5068066,
"sit-luu",
"Latn",
}
m["sit-ers-pro"] = {
"Proto-Ersu",
nil,
"sit-ers",
"Latn",
type = "reconstructed",
}
m["sit-hrs-pro"] = {
"Proto-Hrusish",
116773762,
"sit-hrs",
"Latn",
type = "reconstructed",
}
m["sit-jap"] = {
"Japhug",
3162245,
"sit-egy",
"Latn",
}
m["sit-kha-pro"] = {
"Proto-Kham",
116773773,
"sit-kha",
"Latn",
type = "reconstructed",
}
m["sit-khb-pro"] = {
"Proto-Kho-Bwa",
nil,
"sit-khb",
"Latn",
type = "reconstructed",
}
m["sit-khp-pro"] = {
"Proto-Puroik",
nil,
"sit-khb",
"Latn",
type = "reconstructed",
}
m["sit-khw-pro"] = {
"Proto-Kho-Bwa Barat",
nil,
"sit-khw",
"Latn",
type = "reconstructed",
}
m["sit-kon-pro"] = {
"Proto-Naga Utara",
nil,
"sit-kon",
"Latn",
type = "reconstructed",
}
m["sit-liz"] = {
"Lizu",
6660653,
"sit-ers",
"Latn", -- dan Ersu Shaba
}
m["sit-lnj"] = {
"Longjia",
17096251,
"sit-cln",
"Latn"
}
m["sit-lrn"] = {
"Luren",
16946370,
"sit-cln",
"Latn"
}
m["sit-luu-pro"] = {
"Proto-Luish",
116773783,
"sit-luu",
"Latn",
type = "reconstructed",
}
m["sit-nas-pro"] = {
"Proto-Naish",
nil,
"sit-nas",
"Latn",
type = "reconstructed",
}
m["sit-prn"] = {
"Puiron",
7259048,
"sit-zem",
}
m["sit-pro"] = {
"Proto-Sino-Tibet",
24839178,
"sit",
"Latn",
type = "reconstructed",
}
m["sit-sit"] = {
"Situ",
19840830,
"sit-egy",
"Latn",
}
m["sit-tam-pro"] = {
"Proto-Tamang",
117469295,
"sit-tam",
"Latn",
type = "reconstructed",
}
m["sit-tan-pro"] = {
"Proto-Tani",
116773284,
"sit-tan",
"Latn", -- memerlukan pengesahan
type = "reconstructed",
}
m["sit-tgm"] = {
"Tangam",
17041370,
"sit-tan",
"Latn",
}
m["sit-tng-pro"] = {
"Proto-Tangkhul",
nil,
"sit-tng",
"Latn",
type = "reconstructed",
}
m["sit-tos"] = {
"Tosu",
7827899,
"sit-ers",
"Latn", -- juga Ersu Shaba
}
m["sit-tsh"] = {
"Tshobdun",
19840950,
"sit-egy",
"Latn",
}
m["sit-zbu"] = {
"Zbu",
19841106,
"sit-egy",
"Latn",
}
m["sla-pro"] = {
"Proto-Slav",
747537,
"sla",
"Latn",
type = "reconstructed",
strip_diacritics = {
remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron .. c.dgrave .. c.invbreve,
remove_exceptions = {'ś'},
},
sort_key = {
from = {"č", "ď", "ě", "ę", "ь", "ľ", "ň", "ǫ", "ř", "š", "ś", "ť", "ъ", "ž"},
to = {"c²", "d²", "e²", "e³", "i²", "l²", "nj", "o²", "r²", "s²", "s³", "t²", "u²", "z²"},
}
}
m["smi-pro"] = {
"Proto-Sami",
7251862,
"smi",
"Latn",
type = "reconstructed",
sort_key = {
from = {"ā", "č", "δ", "[ëē]", "ŋ", "ń", "ō", "š", "θ", "%([^()]+%)"},
to = {"a", "c²", "d", "e", "n²", "n³", "o", "s²", "t²"}
},
}
m["son-pro"] = {
"Proto-Songhai",
116773277,
"son",
"Latn",
type = "reconstructed",
}
m["sqj-pro"] = {
"Proto-Albania",
18210846,
"sqj",
"Latn",
type = "reconstructed",
}
m["ssa-klk-pro"] = {
"Proto-Kuliak",
116773779,
"ssa-klk",
"Latn",
type = "reconstructed",
}
m["ssa-kom-pro"] = {
"Proto-Koma",
116773775,
"ssa-kom",
"Latn",
type = "reconstructed",
}
m["ssa-pro"] = {
"Proto-Nilo-Sahara",
116773236,
"ssa",
"Latn",
type = "reconstructed",
}
m["syd-pro"] = {
"Proto-Samoyed",
7251863,
"syd",
"Latn",
type = "reconstructed",
}
m["tai-pro"] = {
"Proto-Tai",
6583709,
"tai",
"Latn",
type = "reconstructed",
}
m["tai-swe-pro"] = {
"Proto-Tai Barat Daya",
116773280,
"tai-swe",
"Latn",
type = "reconstructed",
}
m["tbq-bdg-pro"] = {
"Proto-Bodo-Garo",
116773195,
"tbq-bdg",
"Latn",
type = "reconstructed",
}
m["tbq-blg"] = {
"Bailang",
2879843,
"tbq-lob",
"Hani",
sort_key = "Hani-sortkey",
}
m["tbq-brm-pro"] = {
"Proto-Burma",
nil,
"tbq-brm",
"Latn",
type = "reconstructed",
}
m["tbq-gkh"] = {
"Gokhy",
5578069,
"tbq-sil",
"Latn",
}
m["tbq-kuk-pro"] = {
"Proto-Kuki-Chin",
116773220,
"tbq-kuk",
"Latn",
type = "reconstructed",
}
m["tbq-lal-pro"] = {
"Proto-Lalo",
116773781,
"tbq-lal",
"Latn",
type = "reconstructed",
}
m["tbq-laz"] = {
"Laze",
17007626,
"sit-nas",
"Latn",
}
m["tbq-lob-pro"] = {
"Proto-Lolo-Burma",
116773224,
"tbq-lob",
"Latn",
type = "reconstructed",
}
m["tbq-lol-pro"] = {
"Proto-Lolo",
7251855,
"tbq-lol",
"Latn",
type = "reconstructed",
}
m["tbq-mil"] = {
"Milang",
6850761,
"sit-gsi",
"Deva, Latn",
}
m["tbq-mor"] = {
"Moran",
6909216,
"tbq-bdg",
"Latn",
}
m["tbq-ngo"] = {
"Ngochang",
56582,
"tbq-brm",
"Latn",
}
-- tbq-pro kini khusus etimologi
m["trk-dkh"] = {
"Dukhan",
12809273,
"trk-ssb",
"Latn, Cyrl, Mong",
-- translit, display_text dan strip_diacritics Mong dalam [[Module:scripts/data]]
}
-- Seperti yang diuraikan dalam ''Dīwān Lughāt al-Turk'' karya Mahmud al-Kashgari abad ke-11.
m["trk-eog"] = {
"Oghuz Awal Kuno",
nil,
"trk-ogz",
"Arab",
strip_diacritics = {Arab = "ar-stripdiacritics"},
}
m["trk-oat"] = {
"Turki Anatolia Kuno",
7083390,
"trk-ogz",
"Arab",
strip_diacritics = {Arab = "ar-stripdiacritics"},
ancestors = "trk-eog",
}
m["trk-pro"] = {
"Proto-Turkik",
3657773,
"trk",
"Latn",
type = "reconstructed",
standard_chars = {
Latn = " ()-abdegiklmnoprstuxyzïöüāčēīĺŋōŕšūǖȫẹ" .. c.macron,
}
}
m["tup-gua-pro"] = {
"Proto-Tupi-Guarani",
116773288,
"tup-gua",
"Latn",
type = "reconstructed",
}
m["tup-kab"] = {
"Kabishiana",
15302988,
"tup",
"Latn",
}
m["tup-kaw"] = {
"Kawahiva",
6346712,
"tup-gua",
"Latn",
}
m["tup-pro"] = {
"Proto-Tupia",
10354700,
"tup",
"Latn",
type = "reconstructed",
}
m["tuw-alk"] = {
"Alchuka",
113553616,
"tuw-jrc",
"Latn, Hans",
sort_key = {Hans = "Hani-sortkey"},
}
m["tuw-bal"] = {
"Bala",
86730632,
"tuw-jrc",
"Latn, Hans",
sort_key = {Hans = "Hani-sortkey"},
}
m["tuw-kkl"] = {
"Kyakala",
118875708,
"tuw-jrc",
"Latn, Hans",
sort_key = {Hans = "Hani-sortkey"},
}
m["tuw-kli"] = {
"Kili",
6406892,
"tuw-ewe",
"Cyrl",
}
m["tuw-pro"] = {
"Proto-Tungus",
85872335,
"tuw",
"Latn",
type = "reconstructed",
}
m["tuw-sol"] = {
"Solon",
30004,
"tuw-ewe",
}
m["urj-fin-pro"] = {
"Proto-Finnik",
11883720,
"urj-fin",
"Latn",
type = "reconstructed",
}
m["urj-koo"] = {
"Komi Kuno",
86679962,
"kv",
"Perm, Cyrs",
translit = "urj-koo-translit",
-- strip_diacritics, sort_key Cyrs dalam [[Module:scripts/data]]; sebelum ini, strip_diacritics Cyrs tidak hadir
}
m["urj-kuk"] = {
"Kukkuzi",
107410460,
"urj-fin",
"Latn",
ancestors = "vot",
}
m["urj-kya"] = {
"Komi-Yazva",
2365210,
"kv",
"Cyrl",
translit = "kv-translit",
override_translit = true,
strip_diacritics = {remove_diacritics = c.acute},
}
m["urj-mdv-pro"] = {
"Proto-Mordvinik",
116773232,
"urj-mdv",
"Latn",
type = "reconstructed",
}
m["urj-prm-pro"] = {
"Proto-Permik",
116773257,
"urj-prm",
"Latn",
type = "reconstructed",
}
m["urj-pro"] = {
"Proto-Uralik",
288765,
"urj",
"Latn",
type = "reconstructed",
}
m["urj-ugr-pro"] = {
"Proto-Ugrik",
156631,
"urj-ugr",
"Latn",
type = "reconstructed",
}
m["xnd-pro"] = {
"Proto-Na-Dene",
116773233,
"xnd",
"Latn",
type = "reconstructed",
}
m["xgn-pro"] = {
"Proto-Mongolia",
2493677,
"xgn",
"Latn",
type = "reconstructed",
sort_key = {
from = {"č", "i", "ï", "ǰ", "ŋ", "ö", "š", "ü"},
to = {"c", "i" .. p[1], "i", "j", "n" .. p[1], "o" .. p[1], "s" .. p[1], "u" .. p[1]},
},
}
m["yok-bvy"] = {
"Yokuts Buena Vista",
4985474,
"yok",
"Latn",
}
m["yok-dly"] = {
"Yokuts Delta",
70923266,
"yok",
"Latn",
}
m["yok-gsy"] = {
"Yokuts Gashowu",
3098708,
"yok",
"Latn",
}
m["yok-kry"] = {
"Yokuts Sungai Kings",
6413014,
"yok",
"Latn",
}
m["yok-nvy"] = {
"Yokuts Lembah Utara",
85789777,
"yok",
"Latn",
}
m["yok-ply"] = {
"Yokuts Palewyami",
2387391,
"yok",
"Latn",
}
m["yok-svy"] = {
"Yokuts Lembah Selatan",
12642473,
"yok",
"Latn",
}
m["yok-tky"] = {
"Yokuts Tule-Kaweah",
7851988,
"yok",
"Latn",
}
m["ypk-pro"] = {
"Proto-Yupik",
116773295,
"ypk",
"Latn",
type = "reconstructed",
}
m["yrk-for"] = {
"Nenets Hutan",
1295107,
"yrk",
"Cyrl",
translit = "yrk-for-translit",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.macron .. c.breve .. c.dotabove},
}
m["yrk-tun"] = {
"Nenets Tundra",
36452,
"yrk",
"Cyrl",
strip_diacritics = {
from = {"ӑ", "а̄", "э̇", "ӣ", "ы̄", "ӯ", "ю̄", "я̆", "я̄"},
to = {"а", "а", "э", "и", "ы", "у", "ю", "я", "я"},
},
translit = "yrk-tun-translit",
}
m["zhx-min-pro"] = {
"Proto-Min",
19646347,
"zhx-min",
"Latn",
type = "reconstructed",
}
m["zhx-sht"] = {
"Tuhua Shaozhou",
1920769,
"zhx",
"Nshu, Hants",
generate_forms = "zh-generateforms",
sort_key = {Hani = "Hani-sortkey"},
}
m["zhx-sic"] = {
"Sichuan",
2278732,
"zhx-man",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["zhx-tai"] = {
"Taishan",
2208940,
"zhx-yue",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["zle-ono"] = {
"Novgorod Kuno",
162013,
"zle",
"Cyrs, Glag",
translit = {Cyrs = "Cyrs-translit", Glag = "Glag-translit"},
-- strip_diacritics, sort_key Cyrs dalam [[Module:scripts/data]]
}
m["zle-ort"] = {
"Ruthenian Kuno",
13211,
"zle",
"Arab, Cyrs, Latn",
ancestors = "orv",
translit = {
Cyrs = "zle-ort-translit",
Arab = "zle-ort-Arab-translit",
},
strip_diacritics = {
Cyrs = {
remove_diacritics = m_langdata.chars_substitutions["Cyrs_remove_diacritics"],
remove_exceptions = {"Ї", "ї"},
},
Arab = "ar-stripdiacritics",
},
-- sort_key Cyrs dalam [[Module:scripts/data]]
}
m["zls-chs"] = {
"Slavonic Gereja",
33251,
"zls",
"Cyrs, Glag, Latn",
ancestors = "cu",
translit = {
Cyrs = "Cyrs-translit",
Glag = "Glag-translit"
},
-- strip_diacritics, sort_key Cyrs dalam [[Module:scripts/data]]
}
m["zlw-ocs"] = {
"Czech Kuno",
593096,
"zlw",
"Latn",
}
m["zlw-opl"] = {
"Poland Kuno",
149838,
"zlw-lch",
"Latn",
strip_diacritics = {remove_diacritics = c.ringabove},
}
m["zlw-osk"] = {
"Slovak Kuno",
12776676,
"zlw",
"Latn",
}
m["zlw-slv"] = {
"Slovincian",
36822,
"zlw-pom",
"Latn",
strip_diacritics = {remove_diacritics = c.macron .. c.breve},
}
return require("Module:languages").finalizeData(m, "language")
r6hln94u84vs8nghodi03zjlqedhekq
373548
373494
2026-09-11T10:21:39Z
Hakimi97
2668
"Proto-X" tukar balik jadi "X Purba"
373548
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["aav-khs-pro"] = {
"Khasian Purba",
116773216,
"aav-khs",
"Latn",
type = "reconstructed",
}
m["aav-nic-pro"] = {
"Nicobarese Purba",
116773793,
"aav-nic",
"Latn",
type = "reconstructed",
}
m["aav-pkl-pro"] = {
"Pnar-Khasi-Lyngngam Purba",
116773259,
"aav-pkl",
"Latn",
type = "reconstructed",
}
m["aav-pro"] = { -- mkh-pro akan digabungkan ke dalam ini
"Austroasiatik Purba",
116773186,
"aav",
"Latn",
type = "reconstructed",
}
m["afa-pro"] = {
"Afroasiatik Purba",
269125,
"afa",
"Latn",
type = "reconstructed",
}
m["alg-aga"] = {
"Agawam",
nil,
"alg-eas",
"Latn",
}
m["alg-pro"] = {
"Algonquian Purba",
7251834,
"alg",
"Latn",
type = "reconstructed",
sort_key = {remove_diacritics = "·"},
}
m["alv-ama"] = {
"Amasi",
4740400,
"nic-grs",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron},
}
m["alv-bgu"] = {
"Bainouk Gubeeher",
17002646,
"alv-bny",
"Latn",
}
m["alv-bua-pro"] = {
"Bua Purba",
116773723,
"alv-bua",
"Latn",
type = "reconstructed",
}
m["alv-cng-pro"] = {
"Cangin Purba",
116773726,
"alv-cng",
"Latn",
type = "reconstructed",
}
m["alv-edo-pro"] = {
"Edoid Purba",
116773206,
"alv-edo",
"Latn",
type = "reconstructed",
}
m["alv-fli-pro"] = {
"Fali Purba",
116773754,
"alv-fli",
"Latn",
type = "reconstructed",
}
m["alv-gbe-pro"] = {
"Gbe Purba",
116773208,
"alv-gbe",
"Latn",
type = "reconstructed",
}
m["alv-gng-pro"] = {
"Guang Purba",
116773757,
"alv-gng",
"Latn",
type = "reconstructed",
}
m["alv-gtm-pro"] = {
"Togo Tengah Purba",
116773732,
"alv-gtm",
"Latn",
type = "reconstructed",
}
m["alv-gwa"] = {
"Gwara",
16945580,
"nic-pla",
"Latn",
}
m["alv-hei-pro"] = {
"Heiban Purba",
116773760,
"alv-hei",
"Latn",
type = "reconstructed",
}
m["alv-ido-pro"] = {
"Idomoid Purba",
116773764,
"alv-ido",
"Latn",
type = "reconstructed",
}
m["alv-igb-pro"] = {
"Igboid Purba",
116773765,
"alv-igb",
"Latn",
type = "reconstructed",
}
m["alv-kwa-pro"] = {
"Kwa Purba",
116773780,
"alv-kwa",
"Latn",
type = "reconstructed",
}
m["alv-mum-pro"] = {
"Mumuye Purba",
116773791,
"alv-mum",
"Latn",
type = "reconstructed",
}
m["alv-nup-pro"] = {
"Nupoid Purba",
116773795,
"alv-nup",
"Latn",
type = "reconstructed",
}
m["alv-pro"] = {
"Atlantik-Congo Purba",
116732838,
"alv",
"Latn",
type = "reconstructed",
}
m["alv-edk-pro"] = {
"Edekiri Purba",
nil,
"alv-edk",
"Latn",
type = "reconstructed",
}
m["alv-yor-pro"] = {
"Yoruba Purba",
nil,
"alv-yor",
"Latn",
type = "reconstructed",
}
m["alv-yrd-pro"] = {
"Yoruboid Purba",
116773824,
"alv-yrd",
"Latn",
type = "reconstructed",
}
m["alv-von-pro"] = {
"Volta-Niger Purba",
116773820,
"alv-von",
"Latn",
type = "reconstructed",
}
m["apa-pro"] = {
"Apachean Purba",
116773135,
"apa",
"Latn",
type = "reconstructed",
}
m["aql-pro"] = {
"Algic Purba",
18389588,
"aql",
"Latn",
type = "reconstructed",
sort_key = {remove_diacritics = "·"},
}
m["art-adu"] = {
"Adûni",
1232159,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-bel"] = {
"Kreol Belter",
108055510,
"art",
"Latn",
type = "appendix-constructed",
sort_key = {
remove_diacritics = c.acute,
from = {"ɒ"},
to = {"a"},
},
}
m["art-blk"] = {
"Bolak",
2909283,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-bsp"] = {
"Bahasa Hitam",
686210,
"art",
"Latn, Teng",
type = "appendix-constructed",
}
m["art-com"] = {
"Communicationssprache",
35227,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-dtk"] = {
"Dothraki",
2914733,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-elo"] = {
"Eloi",
nil,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-gld"] = {
"Goa'uld",
19823,
"art",
"Latn, Egyp, Mero",
type = "appendix-constructed",
}
m["art-lap"] = {
"Lapine",
6488195,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-man"] = {
"Mandalorian",
54289,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-mun"] = {
"Mundolinco",
851355,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-nav"] = {
"Naʼvi",
316939,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-vlh"] = {
"Valyrian Tinggi",
64483808,
"art",
"Latn",
type = "appendix-constructed",
}
m["ath-nic"] = {
"Nicola",
20609,
"ath-nor",
"Latn",
}
m["ath-pro"] = {
"Athabaskan Purba",
104841722,
"ath",
"Latn",
type = "reconstructed",
}
m["auf-pro"] = {
"Arawa Purba",
116773706,
"auf",
"Latn",
type = "reconstructed",
}
m["aus-alu"] = {
"Alungul",
16827670,
"aus-pmn",
"Latn",
}
m["aus-and"] = {
"Andjingith",
4754509,
"aus-pmn",
"Latn",
}
m["aus-ang"] = {
"Angkula",
16828520,
"aus-pmn",
"Latn",
}
m["aus-arn-pro"] = {
"Arnhem Purba",
116773720,
"aus-arn",
"Latn",
type = "reconstructed",
}
m["aus-bra"] = {
"Barranbinya",
4863220,
"aus-pmn",
"Latn",
}
m["aus-brm"] = {
"Barunggam",
4865914,
"aus-pmn",
"Latn",
}
m["aus-cww-pro"] = {
"New South Wales Tengah Purba",
116773199,
"aus-cww",
"Latn",
type = "reconstructed",
}
m["aus-dal-pro"] = {
"Daly Purba",
116773743,
"aus-dal",
"Latn",
type = "reconstructed",
}
m["aus-guw"] = {
"Guwar",
6652138,
"aus-pam",
"Latn",
}
m["aus-lsw"] = {
"Little Swanport",
6652138,
"qfa-unc",
"Latn",
}
m["aus-mbi"] = {
"Mbiywom",
6799701,
"aus-pmn",
"Latn",
}
m["aus-ngk"] = {
"Ngkoth",
7022405,
"aus-pmn",
"Latn",
}
m["aus-nyu-pro"] = {
"Nyulnyulan Purba",
116773797,
"aus-nyu",
"Latn",
type = "reconstructed",
}
m["aus-pam-pro"] = {
"Pama-Nyungan Purba",
33942,
"aus-pam",
"Latn",
type = "reconstructed",
}
m["aus-tul"] = {
"Tulua",
16938541,
"aus-pam",
"Latn",
}
m["aus-uwi"] = {
"Uwinymil",
7903995,
"aus-arn",
"Latn",
}
m["aus-wdj-pro"] = {
"Iwaidjan Purba",
116773767,
"aus-wdj",
"Latn",
type = "reconstructed",
}
m["aus-won"] = {
"Wong-gie",
nil,
"aus-pam",
"Latn",
}
m["aus-wul"] = {
"Wulguru",
8039196,
"aus-dyb",
"Latn",
}
m["aus-ynk"] = { -- kontras nny
"Yangkaal",
3913770,
"aus-tnk",
"Latn",
}
m["awd-amc-pro"] = {
"Amuesha-Chamicuro Purba",
nil,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-kmp-pro"] = {
"Kampa Purba",
nil,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-prw-pro"] = {
"Paresi-Waura Purba",
nil,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-ama"] = {
"Amarizana",
16827787,
"awd",
"Latn",
}
m["awd-ana"] = {
"Anauyá",
16828252,
"awd",
"Latn",
}
m["awd-apo"] = {
"Apolista",
16916645,
"awd",
"Latn",
}
m["awd-cab"] = {
"Cabre",
16850160,
"awd",
"Latn",
}
m["awd-gnu"] = {
"Guinau",
3504087,
"awd",
"Latn",
}
m["awd-kar"] = {
"Cariay",
16920253,
"awd",
"Latn",
}
m["awd-kaw"] = {
"Kawishana",
6379993,
"awd-nwk",
"Latn",
}
m["awd-kus"] = {
"Kustenau",
5196293,
"awd",
"Latn",
}
m["awd-man"] = {
"Manao",
6746920,
"awd",
"Latn",
}
m["awd-mar"] = {
"Marawan",
6755108,
"awd",
"Latn",
}
m["awd-mpr"] = {
"Maipure",
6736872,
"awd",
"Latn",
}
m["awd-mrt"] = {
"Mariaté",
16910017,
"awd-nwk",
"Latn",
}
m["awd-nwk-pro"] = {
"Nawiki Purba",
116773234,
"awd-nwk",
"Latn",
type = "reconstructed",
}
m["awd-pai"] = {
"Paikoneka",
128807835,
"awd",
"Latn",
}
m["awd-pas"] = {
"Pasé",
7143168,
"awd-nwk",
"Latn",
}
m["awd-pro"] = {
"Arawak Purba",
97573478,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-she"] = {
"Shebayo",
7492248,
"awd",
"Latn",
}
m["awd-taa-pro"] = {
"Ta-Arawak Purba",
116773282,
"awd-taa",
"Latn",
type = "reconstructed",
}
m["awd-wai"] = {
"Wainumá",
16910017,
"awd-nwk",
"Latn",
}
m["awd-war"] = {
"Warekena Kuno",
105320180,
"awd-nwk",
"Latn",
}
m["awd-yum"] = {
"Yumana",
8061062,
"awd-nwk",
"Latn",
}
m["azc-caz"] = {
"Cazcan",
5055514,
"azc",
"Latn",
}
m["azc-cup-pro"] = {
"Cupan Purba",
116773738,
"azc-cup",
"Latn",
type = "reconstructed",
}
m["azc-ktn"] = {
"Kitanemuk",
3197558,
"azc-tak",
"Latn",
}
m["azc-nah-pro"] = {
"Nahuan Purba",
7251860,
"azc-nah",
"Latn",
type = "reconstructed",
}
m["azc-nic"] = {
"Nicoleño",
50241488,
"azc",
"Latn",
}
m["azc-num-pro"] = {
"Numic Purba",
116773247,
"azc-num",
"Latn",
type = "reconstructed",
}
m["azc-pro"] = {
"Uto-Aztecan Purba",
96400333,
"azc",
"Latn",
type = "reconstructed",
}
m["azc-tak-pro"] = {
"Takic Purba",
116773283,
"azc-tak",
"Latn",
type = "reconstructed",
}
m["azc-tat"] = {
"Tataviam",
743736,
"azc",
"Latn",
}
m["ber-pro"] = {
"Berber Purba",
2855698,
"ber",
"Latn",
type = "reconstructed",
}
m["ber-fog"] = {
"Fogaha",
107610173,
"ber",
"Latn",
}
m["ber-zuw"] = {
"Zuwara",
4117169,
"ber",
"Latn",
}
m["bnt-bal"] = {
"Balong",
93935237,
"bnt-bbo",
"Latn",
}
m["bnt-bon"] = {
"Boma Nkuu",
nil,
"bnt",
"Latn",
}
m["bnt-boy"] = {
"Boma Yumu",
nil,
"bnt",
"Latn",
}
m["bnt-bwa"] = {
"Bwala",
128810345,
"bnt-tek",
"Latn",
}
m["bnt-cmw"] = {
"Chimwiini",
4958328,
"bnt-swh",
"Latn",
}
m["bnt-ind"] = {
"Indanga",
51412803,
"bnt",
"Latn",
}
m["bnt-lal"] = {
"Lala (Afrika Selatan)",
6480154,
"bnt-ngu",
"Latn",
}
m["bnt-mpi"] = {
"Mpiin",
93937013,
"bnt-bdz",
"Latn",
}
m["bnt-mpu"] = {
"Mpuono", -- jangan dikelirukan dengan Mbuun zmp
36056,
"bnt",
"Latn",
}
m["bnt-ngu-pro"] = {
"Nguni Purba",
961559,
"bnt-ngu",
"Latn",
type = "reconstructed",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.caron},
}
m["bnt-phu"] = {
"Phuthi",
33796,
"bnt-ngu",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute},
}
m["bnt-pro"] = {
"Bantu Purba",
3408025,
"bnt",
"Latn",
type = "reconstructed",
sort_key = "bnt-pro-sortkey",
}
m["bnt-sab-pro"] = {
"Sabaki Purba",
nil, -- Q2209395 ialah kod untuk keluarga Sabaki
"bnt-sab",
"Latn",
type = "reconstructed",
}
m["bnt-sbo"] = {
"Boma Selatan",
nil,
"bnt",
"Latn",
}
m["bnt-sts-pro"] = {
"Sotho-Tswana Purba",
116773278,
"bnt-sts",
"Latn",
type = "reconstructed",
}
m["btk-pro"] = {
"Batak Purba",
116773191,
"btk",
"Latn",
type = "reconstructed",
}
m["cau-abz-pro"] = {
"Abkhaz-Abaza Purba",
7251831,
"cau-abz",
"Latn",
type = "reconstructed",
}
m["cau-and-pro"] = {
"Andian Purba",
nil,
"cau-and",
"Latn",
type = "reconstructed",
}
m["cau-ava-pro"] = {
"Avaro-Andian Purba",
116773187,
"cau-ava",
"Latn",
type = "reconstructed",
}
m["cau-cir-pro"] = {
"Circassian Purba",
7251838,
"cau-cir",
"Latn",
type = "reconstructed",
}
m["cau-drg-pro"] = {
"Dargwa Purba",
116773205,
"cau-drg",
"Latn",
type = "reconstructed",
}
m["cau-lzg-pro"] = {
"Lezghian Purba",
116773223,
"cau-lzg",
"Latn",
type = "reconstructed",
}
m["cau-nec-pro"] = {
"Kaukasia Timur Laut Purba",
116773244,
"cau-nec",
"Latn",
type = "reconstructed",
}
m["cau-nkh-pro"] = {
"Nakh Purba",
108032840,
"cau-nkh",
"Latn",
type = "reconstructed",
}
m["cau-nwc-pro"] = {
"Kaukasia Barat Laut Purba",
7251861,
"cau-nwc",
"Latn",
type = "reconstructed",
}
m["cau-tsz-pro"] = {
"Tsezian Purba",
116773287,
"cau-tsz",
"Latn",
type = "reconstructed",
}
m["cba-ata"] = {
"Atanques",
4812783,
"cba",
"Latn",
}
m["cba-cat"] = {
"Catío Chibcha",
7083619,
"cba",
"Latn",
}
m["cba-dor"] = {
"Dorasque",
5297532,
"cba",
"Latn",
}
m["cba-dui"] = {
"Duit",
3041061,
"cba",
"Latn",
}
m["cba-hue"] = {
"Huetar",
35514,
"cba",
"Latn",
}
m["cba-nut"] = {
"Nutabe",
7070405,
"cba",
"Latn",
}
m["cba-pro"] = {
"Chibchan Purba",
116773203,
"cba",
"Latn",
type = "reconstructed",
}
m["ccs-pro"] = {
"Kartvelia Purba",
2608203,
"ccs",
"Latn",
type = "reconstructed",
strip_diacritics = {
from = {"q̣", "p̣", "ʓ", "ċ"},
to = {"q̇", "ṗ", "ʒ", "c̣"}
},
}
m["ccs-gzn-pro"] = {
"Georgia-Zan Purba",
23808119,
"ccs-gzn",
"Latn",
type = "reconstructed",
strip_diacritics = {
from = {"q̣", "p̣", "ʓ", "ċ"},
to = {"q̇", "ṗ", "ʒ", "c̣"}
},
}
m["cdc-cbm-pro"] = {
"Chadic Tengah Purba",
116773197,
"cdc-cbm",
"Latn",
type = "reconstructed",
}
m["cdc-mas-pro"] = {
"Masa Purba",
116773789,
"cdc-mas",
"Latn",
type = "reconstructed",
}
m["cdc-pro"] = {
"Chadic Purba",
116773201,
"cdc",
"Latn",
type = "reconstructed",
}
m["cdd-pro"] = {
"Caddoan Purba",
116773725,
"cdd",
"Latn",
type = "reconstructed",
}
m["cel-bry-pro"] = {
"Brythonic Purba",
1248800,
"cel-bry",
"Latn, Polyt",
sort_key = {
Latn = "cel-bry-pro-sortkey",
},
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["cel-gal"] = {
"Gallaecian",
3094789,
"cel-his",
}
m["cel-gau"] = {
"Gaul",
29977,
"cel",
"Latn, Polyt, Ital",
strip_diacritics = {
Latn = {remove_diacritics = c.macron .. c.breve .. c.diaer},
},
sort_key = {
Latn = "cel-bry-pro-sortkey",
},
-- translit Ital dalam [[Module:scripts/data]]
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["cel-pro"] = {
"Celtic Purba",
653649,
"cel",
"Latn",
type = "reconstructed",
sort_key = "cel-pro-sortkey",
}
m["chi-pro"] = {
"Chimakuan Purba",
116773734,
"chi",
"Latn",
type = "reconstructed",
}
m["chm-pro"] = {
"Mari Purba",
116773788,
"chm",
"Latn",
type = "reconstructed",
}
m["cmc-pro"] = {
"Chamic Purba",
114793834,
"cmc",
"Latn",
type = "reconstructed",
}
m["crp-bip"] = {
"Pidgin Basque-Iceland",
810378,
"crp",
"Latn",
ancestors = "eu",
}
m["crp-cpr"] = {
"Pidgin Rusia-China",
nil,
"crp",
"Hani, Cyrl, Latn",
ancestors = "ru, zh",
translit = {Cyrl = "ru-translit"},
strip_diacritics = {
Cyrl = {remove_diacritics = c.acute .. c.grave .. c.macron},
},
}
m["crp-gep"] = {
"Pidgin Greenland Barat",
17036301,
"crp",
"Latn",
ancestors = "kl",
}
m["crp-kia"] = {
"Pidgin Jerman Kiautschou",
108314615,
"crp",
"Latn",
ancestors = "de",
}
m["crp-mar"] = {
"Bahasa Roh Maroon",
1093206,
"crp",
"Latn",
ancestors = "en",
}
m["crp-mpp"] = {
"Pidgin Portugis Macau",
128804537,
"crp",
"Hant, Latn",
ancestors = "pt",
sort_key = {Hant = "Hani-sortkey"},
}
m["crp-rsn"] = {
"Russenorsk",
505125,
"crp",
"Cyrl, Latn",
ancestors = "nn, ru",
translit = {Cyrl = "ru-translit"},
}
m["crp-spp"] = {
"Pidgin Ladang Samoa",
7409948,
"crp",
"Latn",
ancestors = "en",
}
m["crp-slb"] = {
"Solombala English",
7558525,
"crp",
"Cyrl, Latn",
ancestors = "en, ru",
translit = {Cyrl = "ru-translit"},
}
m["crp-tpr"] = {
"Pidgin Rusia Taimyr",
16930506,
"crp",
"Cyrl",
ancestors = "ru",
translit = "ru-translit",
}
m["csu-bba-pro"] = {
"Bongo-Bagirmi Purba",
116773722,
"csu-bba",
"Latn",
type = "reconstructed",
}
m["csu-maa-pro"] = {
"Mangbetu Purba",
116773786,
"csu-maa",
"Latn",
type = "reconstructed",
}
m["csu-pro"] = {
"Sudan Tengah Purba",
116773730,
"csu",
"Latn",
type = "reconstructed",
}
m["csu-sar-pro"] = {
"Sara Purba",
116773809,
"csu-sar",
"Latn",
type = "reconstructed",
}
m["cus-ash"] = {
"Ashraaf",
4805855,
"cus-som",
"Latn",
}
m["cus-hec-pro"] = {
"Cushitic Timur Tanah Tinggi Purba",
116773761,
"cus-hec",
"Latn",
type = "reconstructed",
}
m["cus-som-pro"] = {
"Somaloid Purba",
nil,
"cus-som",
"Latn",
type = "reconstructed",
}
m["cus-sou-pro"] = {
"Cushitic Selatan Purba",
126081567,
"cus-sou",
"Latn",
type = "reconstructed",
}
m["cus-pro"] = {
"Cushitic Purba",
116773204,
"cus",
"Latn",
type = "reconstructed",
}
m["dmn-dam"] = {
"Dama (Sierra Leone)",
19601574,
"dmn",
"Latn",
}
m["dra-bry"] = {
"Beary",
1089116,
"qfa-mix",
"Mlym, Knda",
ancestors = "ml, tcy",
-- translit Knda dalam [[Module:scripts/data]]
-- translit Mlym dalam [[Module:scripts/data]]
}
m["dra-cen-pro"] = {
"Dravidia Tengah Purba",
nil,
"dra-cen",
"Latn",
type = "reconstructed",
}
m["dra-mkn"] = {
"Kannada Pertengahan",
128810572,
"dra-kan",
"Knda",
-- translit Knda dalam [[Module:scripts/data]]
}
m["dra-nor-pro"] = {
"Dravidia Utara Purba",
124433593,
"dra-nor",
"Latn",
type = "reconstructed",
}
m["dra-okn"] = {
"Kannada Kuno",
15723156,
"dra-kan",
"Knda",
-- translit Knda dalam [[Module:scripts/data]]
}
m["dra-ote"] = {
"Telugu Kuno",
126720868,
"dra-tel",
"Telu",
translit = "te-translit",
}
m["dra-pro"] = {
"Dravidia Purba",
1702853,
"dra",
"Latn",
type = "reconstructed",
}
m["dra-sdo-pro"] = {
"Dravidia Selatan I Purba",
104847952, -- "Proto-Dravidia Selatan" Wikipedia ialah Proto-Dravidia Selatan I dalam skema ini.
"dra-sdo",
"Latn",
type = "reconstructed",
}
m["dra-sdt-pro"] = {
"Dravidia Selatan II Purba",
128885257,
"dra-sdt",
"Latn",
type = "reconstructed",
}
m["dra-sou-pro"] = {
"Dravidia Selatan Purba",
128886121,
"dra-sou",
"Latn",
type = "reconstructed",
}
m["egx-dem"] = {
"Mesir Demotik",
36765,
"egx",
"Latn, Egyd, Polyt",
sort_key = {
Latn = {
remove_diacritics = "'%-%s",
from = {"ꜣ", "j", "e", "ꜥ", "y", "w", "b", "p", "f", "m", "n", "r", "l", "ḥ", "ḫ", "h̭", "ẖ", "h", "š", "s", "q", "k", "g", "ṱ", "ṯ", "t", "ḏ", "%.", "⸗"},
to = {p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8], p[9], p[10], p[11], p[12], p[13], p[15], p[16], p[16], p[17], p[14], p[19], p[18], p[20], p[21], p[22], p[23], p[24], p[23], p[25], p[26], p[26]}
},
},
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["dmn-pro"] = {
"Mande Purba",
116773785,
"dmn",
"Latn",
type = "reconstructed",
}
m["dmn-mdw-pro"] = {
"Mande Barat Purba",
116773822,
"dmn-mdw",
"Latn",
type = "reconstructed",
}
m["dru-pro"] = {
"Rukai Purba",
116773807,
"map",
"Latn",
type = "reconstructed",
}
m["ero-gsz"] = {
"Geshiza",
nil,
"ero",
"Latn",
}
m["ero-nya"] = {
"Nyagrong Minyag",
nil,
"ero",
"Latn",
}
m["ero-tau"] = {
"Stau",
nil,
"ero",
"Latn",
}
m["esx-esk-pro"] = {
"Eskimo Purba",
7251842,
"esx-esk",
"Latn",
type = "reconstructed",
}
m["esx-ink"] = {
"Inuktun",
1671647,
"esx-inu",
"Latn",
}
m["esx-inq"] = {
"Inuinnaqtun",
28070,
"esx-inu",
"Latn",
}
m["esx-inu-pro"] = {
"Inuit Purba",
60785588,
"esx-inu",
"Latn",
type = "reconstructed",
}
m["esx-pro"] = {
"Eskimo-Aleut Purba",
7251843,
"esx",
"Latn",
type = "reconstructed",
}
m["esx-tut"] = {
"Tunumiisut",
15665389,
"esx-inu",
"Latn",
}
m["euq-pro"] = {
"Basque Purba",
938011,
"euq",
"Latn",
type = "reconstructed",
}
m["gba-pro"] = {
"Gbaya Purba",
nil,
"gba",
"Latn",
type = "reconstructed",
}
m["gem-pro"] = {
"Germanik Purba",
669623,
"gem",
"Latn",
type = "reconstructed",
sort_key = "gem-pro-sortkey",
}
m["gme-bur"] = {
"Burgundia",
47625,
"gme",
"Latn",
}
m["gme-cgo"] = {
"Goth Crimea",
36211,
"gme",
"Latn",
}
m["gmq-gut"] = {
"Gutnish",
1256646,
"gmq",
"Latn",
ancestors = "gmq-ogt",
}
m["gmq-jmk"] = {
"Jamtish",
35512,
"gmq-eas",
"Latn",
}
m["gmq-mno"] = {
"Norway Pertengahan",
3417070,
"gmq-wes",
"Latn",
}
m["gmq-oda"] = {
"Denmark Kuno",
12330003,
"gmq-eas",
"Latn, Runr",
strip_diacritics = {remove_diacritics = c.macron},
}
m["gmq-ogt"] = {
"Gutnish Kuno",
1133488,
"gmq",
"Latn, Runr",
ancestors = "non",
}
m["gmq-osw"] = {
"Sweden Kuno",
2417210,
"gmq-eas",
"Latn, Runr",
strip_diacritics = {remove_diacritics = c.macron},
}
m["gmq-pro"] = {
"Norse Purba",
1671294,
"gmq",
"Runr",
translit = "Runr-translit",
}
m["gmq-scy"] = {
"Scanian",
768017,
"gmq-eas",
"Latn",
}
m["gmw-bgh"] = {
"Bergish",
329030,
"gmw-frk",
"Latn",
}
m["gmw-cfr"] = {
"Franconia Tengah",
572197,
"gmw-hgm",
"Latn",
ancestors = "gmh",
wikimedia_codes = "ksh",
}
m["gmw-ecg"] = {
"Jerman Tengah Timur",
499344, -- merangkumi Q699284, Q152965
"gmw-hgm",
"Latn",
ancestors = "gmh",
}
m["gmw-fin"] = {
"Fingallian",
3072588,
"gmw-ian",
"Latn",
}
m["gmw-gts"] = {
"Gottscheerish",
533109,
"gmw-hgm",
"Latn",
ancestors = "bar",
}
m["gmw-jdt"] = {
"Belanda Jersey",
1687911,
"gmw-frk",
"Latn",
ancestors = "nl",
}
m["gmw-msc"] = {
"Scots Pertengahan",
3327000,
"gmw-ang",
"Latn",
ancestors = "enm-esc",
}
m["gmw-pro"] = {
"Germanik Barat Purba",
78079021,
"gmw",
"Latn, Runr",
-- type = "reconstructed",
-- sebahagian besarnya tetapi tidak sepenuhnya direkonstruksi (seperti Proto-Norse); lihat BP Apr '24, tetapkan kembali kepada direkonstruksi (?) jika 'anti-asterisk' ditambah
sort_key = "gmw-pro-sortkey",
}
m["gmw-rfr"] = {
"Franconia Rhine",
707007,
"gmw-hgm",
"Latn",
ancestors = "gmh",
}
m["gmw-stm"] = {
"Schwaben Szatmár",
2223059,
"gmw-hgm",
"Latn",
ancestors = "swg",
}
m["gmw-tsx"] = {
"Saxon Transylvania",
260942,
"gmw-hgm",
"Latn",
ancestors = "gmw-cfr",
}
m["gmw-vog"] = {
"Jerman Volga",
312574,
"gmw-hgm",
"Latn",
ancestors = "gmw-rfr",
}
m["gmw-zps"] = {
"Jerman Zipser",
205548,
"gmw-hgm",
"Latn",
ancestors = "gmh",
}
m["gn-cls"] = {
"Guarani Klasik",
17478065,
"gn",
"Latn",
}
m["grk-cal"] = {
"Greek Calabria",
1146398,
"grk",
"Latn, Grek",
ancestors = "grk-ita",
translit = {
Grek = "el-translit",
},
-- translit, display_text, strip_diacritics, sort_key Grek dalam [[Module:scripts/data]]
}
m["grk-ita"] = {
"Greek Italiot",
19720507,
"grk",
"Latn, Grek",
ancestors = "gkm",
translit = {
Grek = "el-translit",
},
-- translit, display_text, strip_diacritics, sort_key Grek dalam [[Module:scripts/data]]
}
m["grk-mar"] = {
"Greek Mariupol",
4400023,
"grk",
"Cyrl, Latn, Grek",
ancestors = "gkm",
translit = {
Cyrl = "grk-mar-translit",
Grek = "grk-mar-translit",
},
override_translit = true,
strip_diacritics = {
Cyrl = {remove_diacritics = c.acute},
},
-- translit, display_text, strip_diacritics, sort_key Grek dalam [[Module:scripts/data]]
}
m["grk-pro"] = {
"Hellenik Purba",
1231805,
"grk",
"Latn, Polyt",
type = "reconstructed",
sort_key = {Latn = {
from = {"ʰ", "ʷ"},
to = {"h", "w"},
remove_diacritics = c.grave .. c.acute .. c.macron .. c.breve .. c.caron .. c.CGJ
}},
display_text = {Latn = {
from = {"([dlLt])" .. c.caron},
to = {"%1" .. c.CGJ .. c.caron},
}},
strip_diacritics = {Latn = {
from = {"([dlLt])" .. c.caron},
to = {"%1" .. c.CGJ .. c.caron},
}},
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
-- NOTA: dahulunya tiada translit ditentukan untuk Polyt; mungkin ketinggalan secara tidak sengaja; jika tidak, tetapkan Polyt = false dalam
-- bahagian translit
}
m["hmn-pro"] = {
"Hmongik Purba",
116773210,
"hmn",
"Latn",
type = "reconstructed",
}
m["hmx-mie-pro"] = {
"Mienik Purba",
116773229,
"hmx-mie",
"Latn",
type = "reconstructed",
}
m["hmx-pro"] = {
"Hmong-Mien Purba",
7251846,
"hmx",
"Latn",
type = "reconstructed",
}
m["hyx-pro"] = {
"Armenia Purba",
3848498,
"hyx",
"Latn",
type = "reconstructed",
}
m["iir-nur-pro"] = {
"Nuristani Purba",
116773248,
"iir-nur",
"Latn",
type = "reconstructed",
}
m["iir-pro"] = {
"Indo-Iran Purba",
966439,
"iir",
"Latn",
type = "reconstructed",
}
m["ijo-pro"] = {
"Ijoid Purba",
116773766,
"ijo",
"Latn",
type = "reconstructed",
}
m["inc-apa"] = {
"Apabhramsa",
616419,
"inc-mid",
"Deva, Shrd, Sidd",
ancestors = "pra",
translit = {
Deva = "sa-translit",
-- translit Shrd dalam [[Module:scripts/data]]
-- translit Sidd dalam [[Module:scripts/data]]
},
}
m["inc-ash"] = {
"Prakrit Ashoka",
104854379,
"inc-mid",
"Brah, Khar",
ancestors = "sa",
translit = {
-- translit Brah dalam [[Module:scripts/data]]
Khar = "Khar-translit",
},
}
m["inc-dng-pro"] = {
"Dangari Purba",
nil,
"inc-dng",
"Latn",
type = "reconstructed",
}
m["inc-kam"] = {
"Prakrit Kamarupi",
6356097,
"inc-bas",
"Brah, Sidd",
-- translit Brah, Sidd dalam [[Module:scripts/data]]
}
m["inc-kho"] = {
"Kholosi",
24952008,
"inc-snd",
"Latn",
}
m["inc-khr"] = {
"Khortha",
13406670,
"inc-sad",
"Deva, Kthi",
translit = {
Deva = "bho-translit",
Kthi = "bho-Kthi-translit",
},
}
m["inc-krd-pro"] = {
"Kamta Purba",
128816843,
"inc-bas",
"Latn",
ancestors = "inc-kam",
type = "reconstructed",
}
m["inc-mas"] = {
"Assam Pertengahan",
128806836,
"inc-bas",
"as-Beng",
ancestors = "inc-oas",
translit = "inc-mas-translit",
}
m["inc-mbn"] = {
"Bengal Pertengahan",
113559927,
"inc-bas",
"Beng",
ancestors = "inc-obn",
translit = "inc-mbn-translit",
}
m["inc-mgu"] = {
"Gujarati Pertengahan",
24907429,
"inc-wes",
"Deva",
ancestors = "inc-ogu",
}
m["inc-mor"] = {
"Odia Pertengahan",
128810882,
"inc-eas",
"Orya",
ancestors = "inc-oor",
}
m["inc-oas"] = {
"Assam Awal",
85758237,
"inc-bas",
"as-Beng",
ancestors = "inc-kam",
translit = "inc-oas-translit",
}
m["inc-oaw"] = {
"Awadhi Kuno",
nil,
"inc-hie",
"Deva, Kthi, Aran",
strip_diacritics = {
from = {"هٔ", "ۂ"}, -- aksara "ۂ" kod U+06C2 kepada "ه" dan "هٔ" (U+0647 + U+0654) kepada "ه"
to = {"ہ", "ہ"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef
},
translit = {
Deva = "sa-translit",
Kthi = "sa-Kthi-translit",
Aran = "inc-ohi-translit",
},
}
m["inc-obn"] = {
"Bengal Kuno",
113559926,
"inc-bas",
"Beng",
}
m["inc-ogu"] = {
"Gujarati Kuno",
24907427,
"inc-wes",
"Deva",
translit = "sa-translit",
}
m["inc-ohi"] = {
"Hindi Kuno",
48767781,
"inc-hiw",
"Deva, Aran",
strip_diacritics = {
from = {"هٔ", "ۂ"}, -- aksara "ۂ" kod U+06C2 kepada "ه" dan "هٔ" (U+0647 + U+0654) kepada "ه"
to = {"ہ", "ہ"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef
},
translit = {
Deva = "sa-translit",
Aran = "inc-ohi-translit",
},
}
m["inc-oor"] = {
"Odia Kuno",
128807801,
"inc-eas",
"Orya",
}
m["inc-opa"] = {
"Punjabi Kuno",
115270971,
"inc-pan",
"Guru, Aran",
translit = {
Guru = "inc-opa-Guru-translit",
Aran = "pa-Aran-translit",
},
strip_diacritics = {remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun},
}
m["inc-pro"] = {
"Indo-Arya Purba",
23808344,
"inc",
"Latn",
type = "reconstructed",
}
m["inc-sar"] = {
"Sarazi",
85799728,
"him",
"Aran, Deva, Takr",
strip_diacritics = {
from = {"هٔ", "ۂ"}, -- aksara "ۂ" kod U+06C2 kepada "ه" dan "هٔ" (U+0647 + U+0654) kepada "ه"
to = {"ہ", "ہ"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef
},
translit = {
Aran = "ur-translit",
Deva = "hi-translit",
-- Takr = "Takr-translit",
},
}
m["ine-ana-pro"] = {
"Anatolia Purba",
7251833,
"ine-ana",
"Latn",
type = "reconstructed",
}
m["ine-bsl-pro"] = {
"Balto-Slav Purba",
1703347,
"ine-bsl",
"Latn",
type = "reconstructed",
sort_key = {
from = {"[áā]", "[éēḗ]", "[íī]", "[óōṓ]", "[úū]", c.acute, c.macron, "ˀ"},
to = {"a", "e", "i", "o", "u"}
},
}
m["ine-kal"] = {
"Kalašma",
122770439,
"ine-ana",
"Xsux",
}
m["ine-pae"] = {
"Paeonia",
2705672,
"ine",
"Polyt",
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["ine-pro"] = {
"Indo-Eropah Purba",
37178,
"ine",
"Latn",
type = "reconstructed",
sort_key = {
from = {"[áā]", "[éēḗ]", "[íī]", "[óōṓ]", "[úū]", "ĺ", "ḿ", "ń", "ŕ", "ǵ", "ḱ", "ʰ", "ʷ", "₁", "₂", "₃", c.ringbelow, c.acute, c.macron},
to = {"a", "e", "i", "o", "u", "l", "m", "n", "r", "g'", "k'", "¯h", "¯w", "1", "2", "3"}
},
}
m["ine-toc-pro"] = {
"Tocharia Purba",
104841462,
"ine-toc",
"Latn",
type = "reconstructed",
}
m["xme-old"] = {
"Median Kuno",
36461,
"xme",
"Polyt, Latn",
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["xme-mid"] = {
"Median Pertengahan",
12836150,
"xme",
"Latn",
}
m["xme-ker"] = {
"Kermanik",
129850,
"xme",
"Arab, Latn, Hebr",
ancestors = "xme-mid",
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
}
m["xme-taf"] = {
"Tafreshi",
nil,
"xme",
"Arab, Latn",
ancestors = "xme-mid",
}
m["xme-ttc-pro"] = {
"Tatik Purba",
122973870,
"xme-ttc",
"Latn",
ancestors = "xme-mid",
}
m["xme-kls"] = {
"Kalasuri",
nil,
"xme-ttc",
ancestors = "xme-ttc-nor",
}
m["xme-klt"] = {
"Kilit",
3612452,
"xme-ttc",
"Cyrl", -- dan Arab?
}
m["xme-ott"] = {
"Tati Kuno",
434697,
"xme-ttc",
"Arab, Latn",
}
m["ira-kms-pro"] = {
"Komisenia Purba",
116773777,
"ira-kms",
"Latn",
type = "reconstructed",
}
m["ira-mpr-pro"] = {
"Medo-Parthia Purba",
116773227,
"ira-mpr",
"Latn",
type = "reconstructed",
}
m["ira-pat-pro"] = {
"Pathan Purba",
116773255,
"ira-pat",
"Latn",
type = "reconstructed",
}
m["ira-pro"] = {
"Iran Purba",
4167865,
"ira",
"Latn",
type = "reconstructed",
}
m["ira-zgr-pro"] = {
"Zaza-Gorani Purba",
116775031,
"ira-zgr",
"Latn",
type = "reconstructed",
}
m["xsc-pro"] = {
"Scythia Purba",
116773273,
"xsc",
"Latn",
type = "reconstructed",
}
m["xsc-sar-pro"] = {
"Sarmatia Purba",
116773249,
"xsc-sar",
"Latn",
type = "reconstructed",
}
m["xsc-skw-pro"] = {
"Saka-Wakhi Purba",
116773267,
"xsc-skw",
"Latn",
type = "reconstructed",
}
m["xsc-sak-pro"] = {
"Saka Purba",
116773264,
"xsc-sak",
"Latn",
type = "reconstructed",
}
m["ira-sym-pro"] = {
"Shughni-Yazghulami-Munji Purba",
116773813,
"ira-sym",
"Latn",
type = "reconstructed",
}
m["ira-sgi-pro"] = {
"Sanglechi-Ishkashimi Purba",
116773808,
"ira-sgi",
"Latn",
type = "reconstructed",
}
m["ira-mny-pro"] = {
"Munji-Yidgha Purba",
116773792,
"ira-mny",
"Latn",
type = "reconstructed",
}
m["ira-shy-pro"] = {
"Shughni-Yazghulami Purba",
116773812,
"ira-shy",
"Latn",
type = "reconstructed",
}
m["ira-shr-pro"] = {
"Shughni-Roshani Purba",
116773811,
"ira-shr",
"Latn",
type = "reconstructed",
}
m["ira-sgc-pro"] = {
"Sogdia Purba",
116773276,
"ira-sgc",
"Latn",
type = "reconstructed",
}
m["ira-wnj"] = {
"Vanji",
3398419,
"ira-shy",
"Latn",
}
m["iro-ere"] = {
"Erie",
5388365,
"iro-nor",
"Latn",
}
m["iro-min"] = {
"Mingo",
128531,
"iro-nor",
"Latn",
ietf_subtag = "i-mingo", -- tag IETF yang diwarisi
}
m["iro-nor-pro"] = {
"Iroquois Utara Purba",
116773242,
"iro-nor",
"Latn",
type = "reconstructed",
}
m["iro-pro"] = {
"Iroquois Purba",
7251852,
"iro",
"Latn",
type = "reconstructed",
}
m["itc-pro"] = {
"Italik Purba",
17102720,
"itc",
"Latn",
type = "reconstructed",
}
m["itc-psa"] = {
"Pra-Samnit",
7239186,
"itc-sbl",
"Ital, Polyt, Latn",
-- translit Ital dalam [[Module:scripts/data]] (NOTA: tidak hadir sebelum ini, mungkin ketinggalan secara tidak sengaja)
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["jpx-hcj"] = {
"Hachijō",
5637049,
"jpx",
"Jpan",
ancestors = "ojp-eas",
translit = s["jpx-translit"],
display_text = s["jpx-displaytext"],
strip_diacritics = s["jpx-stripdiacritics"],
sort_key = s["jpx-sortkey"],
}
m["jpx-pro"] = {
"Jeponik Purba",
3924309,
"jpx",
"Latn",
type = "reconstructed",
}
m["jpx-ryu-pro"] = {
"Ryukyu Purba",
56349069,
"jpx-ryu",
"Latn",
type = "reconstructed",
}
m["kar-pro"] = {
"Karen Purba",
85794783,
"kar",
"Latn",
type = "reconstructed",
}
m["kca-eas"] = {
"Khanty Timur",
30304622,
"kca",
"Cyrl",
translit = "kca-translit",
override_translit = true,
-- TODO sementara sehingga MediaWiki menyokong Unicode 16 (mungkin memerlukan kemas kini PHP dari pihak mereka)
sort_key = { Cyrl = { from = {""}, to = {""} } },
}
m["kca-nor"] = {
"Khanty Utara",
30304527,
"kca",
"Cyrl",
translit = "kca-translit",
override_translit = true,
-- TODO sementara sehingga MediaWiki menyokong Unicode 16 (mungkin memerlukan kemas kini PHP dari pihak mereka)
sort_key = { Cyrl = { from = {""}, to = {""} } },
}
m["kca-pro"] = {
"Khanty Purba",
127505171,
"kca",
"Latn",
type = "reconstructed",
}
m["kca-sou"] = {
"Khanty Selatan",
30304618,
"kca",
"Cyrl",
translit = "kca-translit",
override_translit = true,
}
m["khi-kho-pro"] = {
"Khoe Purba",
116773218,
"khi-kho",
"Latn",
type = "reconstructed",
}
m["khi-kun"] = {
"ǃKung",
32904,
"khi-kxa",
"Latn",
}
m["ko-ear"] = {
"Korea Moden Awal",
756014,
"qfa-kor",
"Kore",
ancestors = "okm",
translit = "okm-translit",
-- strip_diacritics Kore dalam [[Module:scripts/data]]
}
m["kro-pro"] = {
"Kru Purba",
116773778,
"kro",
"Latn",
type = "reconstructed",
}
m["ku-pro"] = {
"Kurd Purba",
116773221,
"ku",
"Latn",
type = "reconstructed",
}
m["map-ata-pro"] = {
"Atayalik Purba",
116773151,
"map-ata",
"Latn",
type = "reconstructed",
}
m["map-bms"] = {
"Banyumasan",
33219,
"map",
"Latn, Java",
}
m["map-pro"] = {
"Austronesia Purba",
49230,
"map",
"Latn",
type = "reconstructed",
}
m["mis-hkl"] = {
"Hokkien Peranakan Kelantan",
108794818,
"qfa-mix",
ancestors = "nan-hbl, sou, mfa",
}
m["mis-idn"] = {
"Idiom Neutral",
35847,
"art",
"Latn",
type = "appendix-constructed",
}
m["mis-isa"] = {
"Isauria",
16956868,
nil,
-- "Xsux, Hluw, Latn",
}
m["mis-jie"] = {
"Jie",
124424186,
nil,
"Hani",
sort_key = "Hani-sortkey",
}
m["mis-jzh"] = {
"Jizhao",
45242758,
"qfa-bej",
"Latn",
}
m["mis-kas"] = {
"Kassite",
35612,
nil,
"Xsux",
}
m["mis-mmd"] = {
"Mimi Decorse",
6862206,
nil,
"Latn",
}
m["mis-mmn"] = {
"Mimi Nachtigal",
6862207,
nil,
"Latn",
}
m["mis-phi"] = {
"Filistin",
2230924,
nil,
"Phnx",
-- translit Phnx dalam [[Module:scripts/data]] (NOTA: tidak hadir sebelum ini, mungkin ketinggalan secara tidak sengaja)
}
m["mis-rou"] = {
"Rouran",
48816637,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-tdl"] = {
"Turdulia",
133176492,
}
m["mis-tdt"] = {
"Turdetania",
133176461,
}
m["mis-tnw"] = {
"Tangwang",
7683179,
"qfa-mix",
"Latn",
ancestors = "cmn, sce",
}
m["mis-tuh"] = {
"Tuyuhun",
48816625,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-tuo"] = {
"Tuoba",
48816629,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-wuh"] = {
"Wuhuan",
118976867,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-xbi"] = {
"Xianbei",
4448647,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-xnu"] = {
"Xiongnu",
10901674,
nil,
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mjg-mgl"] = {
"Mongghul",
53765528,
"mjg",
"Latn", -- juga Mong, Cyrl?
}
m["mjg-mgr"] = {
"Mangghuer",
56285392,
"mjg",
"Latn", -- juga Mong, Cyrl?
}
m["mkh-asl-pro"] = {
"Asli Purba",
55630680,
"mkh-asl",
"Latn",
type = "reconstructed",
}
m["mkh-ban-pro"] = {
"Bahnar Purba",
116773189,
"mkh-ban",
"Latn",
type = "reconstructed",
}
m["mkh-kat-pro"] = {
"Katuik Purba",
116773772,
"mkh-kat",
"Latn",
type = "reconstructed",
}
m["mkh-khm-pro"] = {
"Khmuik Purba",
116773774,
"mkh-khm",
"Latn",
type = "reconstructed",
}
m["mkh-kmr-pro"] = {
"Khmer Purba",
55630684,
"mkh-kmr",
"Latn",
type = "reconstructed",
}
m["mkh-mmn"] = {
"Mon Pertengahan",
121337926,
"mkh-mnc",
"Latn, Mymr", --dan juga Pallava
ancestors = "omx",
}
m["mkh-mnc-pro"] = {
"Monik Purba",
116773231,
"mkh-mnc",
"Latn",
type = "reconstructed",
}
m["mkh-mvi"] = {
"Vietnam Pertengahan",
9199,
"mkh-vie",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mkh-pal-pro"] = {
"Palaungik Purba",
104847372,
"mkh-pal",
"Latn",
type = "reconstructed",
}
m["mkh-pea-pro"] = {
"Pearik Purba",
116773804,
"mkh-pea",
"Latn",
type = "reconstructed",
}
m["mkh-pkn-pro"] = {
"Pakanik Purba",
116773803,
"mkh-pkn",
"Latn",
type = "reconstructed",
}
m["mkh-pro"] = { --Ini akan digabungkan ke dalam aav-pro 2015.
"Mon-Khmer Purba",
7251859,
"mkh",
"Latn",
type = "reconstructed",
}
m["mnw-tha"] = { -- Untuk dibuang.
"Mon Thailand",
nil,
"mkh-mnc",
"Mymr, Thai",
ancestors = "mkh-mmn",
sort_key = {
from = {"[%p]", "ျ", "ြ", "ွ", "ှ", "ၞ", "ၟ", "ၠ", "ၚ", "ဿ", "[็-๎]", "([เแโใไ])([ก-ฮ])ฺ?"},
to = {"", "္ယ", "္ရ", "္ဝ", "္ဟ", "္န", "္မ", "္လ", "င", "သ္သ", "", "%2%1"}
},
}
m["mkh-vie-pro"] = {
"Vietik Purba",
109432616,
"mkh-vie",
"Latn",
type = "reconstructed",
}
m["mns-cen"] = {
"Mansi Tengah",
128810384,
"mns",
"Cyrl",
translit = "mns-translit",
override_translit = true,
}
m["mns-nor"] = {
"Mansi Utara",
30304537,
"mns",
"Cyrl",
translit = "mns-translit",
override_translit = true,
}
m["mns-pro"] = {
"Mansi Purba",
128883093,
"mns",
"Latn",
type = "reconstructed",
}
m["mns-sou"] = {
"Mansi Selatan",
30304629,
"mns",
"Cyrl",
translit = "mns-translit",
override_translit = true,
}
m["mun-pro"] = {
"Munda Purba",
105102373,
"mun",
"Latn",
type = "reconstructed",
}
m["myn-chl"] = { -- peringkat selepas ''emy''
"Ch'olti'",
873995,
"myn",
"Latn",
}
m["myn-pro"] = {
"Maya Purba",
3321532,
"myn",
"Latn",
type = "reconstructed",
}
m["nai-ala"] = {
"Alazapa",
128810233,
nil,
"Latn",
}
m["nai-bay"] = {
"Bayogoula",
1563704,
nil,
"Latn",
}
m["nai-cal"] = {
"Calusa",
51782,
nil,
"Latn",
}
m["nai-chi"] = {
"Chiquimulilla",
25339627,
"nai-xin",
"Latn",
}
m["nai-chu-pro"] = {
"Chumash Purba",
116773736,
"nai-chu",
"Latn",
type = "reconstructed",
}
m["nai-cig"] = {
"Ciguayo",
20741700,
nil,
"Latn",
}
m["nai-ckn-pro"] = {
"Chinook Purba",
116773735,
"nai-ckn",
"Latn",
type = "reconstructed",
}
m["nai-guz"] = {
"Guazacapán",
19572028,
"nai-xin",
"Latn",
}
m["nai-hit"] = {
"Hitchiti",
1542882,
"nai-mus",
"Latn",
}
m["nai-ipa"] = {
"Ipai",
3027474,
"nai-yuc",
"Latn",
}
m["nai-jtp"] = {
"Jutiapa",
nil,
"nai-xin",
"Latn",
}
m["nai-jum"] = {
"Jumaytepeque",
25339626,
"nai-xin",
"Latn",
}
m["nai-kat"] = {
"Kathlamet",
6376639,
"nai-ckn",
"Latn",
}
m["nai-klp-pro"] = {
"Kalapuya Purba",
116773771,
"nai-klp",
"Latn",
type = "reconstructed",
}
m["nai-knm"] = {
"Konomihu",
3198734,
"nai-shs",
"Latn",
}
m["nai-kum"] = {
"Kumeyaay",
4910139,
"nai-yuc",
"Latn",
}
m["nai-mac"] = {
"Macoris",
21070851,
nil,
"Latn",
}
m["nai-mdu-pro"] = {
"Maidu Purba",
116773784,
"nai-mdu",
"Latn",
type = "reconstructed",
}
m["nai-miz-pro"] = {
"Mixe-Zoque Purba",
7251858,
"nai-miz",
"Latn",
type = "reconstructed",
}
m["nai-mus-pro"] = {
"Muskogi Purba",
116775368,
"nai-mus",
"Latn",
type = "reconstructed",
}
m["nai-nao"] = {
"Naolan",
6964594,
nil,
"Latn",
}
m["nai-nrs"] = {
"Shasta Sungai Baru",
7011254,
"nai-shs",
"Latn",
}
m["nai-okw"] = {
"Okwanuchu",
3350126,
"nai-shs",
"Latn",
}
m["nai-per"] = {
"Pericú",
3375369,
nil,
"Latn",
}
m["nai-pic"] = {
"Picuris",
7191257,
"nai-kta",
"Latn",
}
m["nai-plp-pro"] = {
"Plateau Penutian Purba",
116773806,
"nai-plp",
"Latn",
type = "reconstructed",
}
m["nai-pom-pro"] = {
"Pomo Purba",
116773262,
"nai-pom",
"Latn",
type = "reconstructed",
}
m["nai-qng"] = {
"Quinigua",
36360,
nil,
"Latn",
}
m["nai-sca-pro"] = { -- PERHATIAN 'sio-pro' "Proto-Siouan" iaitu Proto-Siouan Barat
"Siouan-Catawba Purba",
116773275,
"nai-sca",
"Latn",
type = "reconstructed",
}
m["nai-sin"] = {
"Sinacantán",
24190249,
"nai-xin",
"Latn",
}
m["nai-sln"] = {
"Lenca Salvador",
3229434,
"nai-len",
"Latn",
}
m["nai-spt"] = {
"Sahaptin",
3833015,
"nai-shp",
"Latn",
}
m["nai-tap"] = {
"Tapachultec",
7684401,
"nai-miz",
"Latn",
}
m["nai-taw"] = {
"Tawasa",
7689233,
nil,
"Latn",
}
m["nai-teq"] = {
"Tequistlatec",
2964454,
"nai-tqn",
"Latn",
}
m["nai-tip"] = {
"Tipai",
3027471,
"nai-yuc",
"Latn",
}
m["nai-tot-pro"] = {
"Totozoquean Purba",
116773285,
"nai-tot",
"Latn",
type = "reconstructed",
}
m["nai-tsi-pro"] = {
"Tsimshianik Purba",
nil,
"nai-tsi",
"Latn",
type = "reconstructed",
}
m["nai-utn-pro"] = {
"Utik Purba",
116773290,
"nai-utn",
"Latn",
type = "reconstructed",
}
m["nai-wai"] = {
"Waikuri",
3118702,
nil,
"Latn",
}
m["nai-wji"] = {
"Jicaque Barat",
3178610,
"nai-jcq",
"Latn",
}
m["nai-yup"] = {
"Yupiltepeque",
25339628,
"nai-xin",
"Latn",
}
m["nan-dat"] = {
"Min Datian",
19855572,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-hbl"] = {
"Hokkien",
1624231,
"zhx-nan",
"Hants, Latn, Bopo, Kana",
wikimedia_codes = "zh-min-nan",
generate_forms = "zh-generateforms",
sort_key = {
Hani = "Hani-sortkey",
Kana = "Kana-sortkey"
},
}
m["nan-hlh"] = {
"Min Hailufeng",
120755728,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-lnx"] = {
"Min Longyan",
6674568,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-tws"] = {
"Teochew",
36759,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["nan-zhe"] = {
"Min Zhenan",
3846710,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-zsh"] = {
"Min Sanxiang",
7420769,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["ngf-bin-pro"] = {
"Binandere Purba",
137881672,
"ngf-bin",
"Latn",
type = "reconstructed",
}
m["ngf-pro"] = {
"Trans-New Guinea Purba",
85794785,
"ngf",
"Latn",
type = "reconstructed",
}
m["nic-bco-pro"] = {
"Benue-Congo Purba",
116773194,
"nic-bco",
"Latn",
type = "reconstructed",
}
m["nic-bod-pro"] = {
"Bantoid Purba",
116773190,
"nic-bod",
"Latn",
type = "reconstructed",
}
m["nic-eov-pro"] = {
"Oti-Volta Timur Purba",
116773753,
"nic-eov",
"Latn",
type = "reconstructed",
}
m["nic-gns-pro"] = {
"Gurunsi Purba",
116773759,
"nic-gns",
"Latn",
type = "reconstructed",
}
m["nic-grf-pro"] = {
"Grassfields Purba",
116773755,
"nic-grf",
"Latn",
type = "reconstructed",
}
m["nic-gur-pro"] = {
"Gur Purba",
116773758,
"nic-gur",
"Latn",
type = "reconstructed",
}
m["nic-jkn-pro"] = {
"Jukunoid Purba",
116773769,
"nic-jkn",
"Latn",
type = "reconstructed",
}
m["nic-lcr-pro"] = {
"Cross River Bawah Purba",
116773782,
"nic-lcr",
"Latn",
type = "reconstructed",
}
m["nic-ogo-pro"] = {
"Ogoni Purba",
116773799,
"nic-ogo",
"Latn",
type = "reconstructed",
}
m["nic-ovo-pro"] = {
"Oti-Volta Purba",
116773802,
"nic-ovo",
"Latn",
type = "reconstructed",
}
m["nic-plt-pro"] = {
"Plateau Purba",
116773805,
"nic-plt",
"Latn",
type = "reconstructed",
}
m["nic-pro"] = {
"Niger-Congo Purba",
108000748,
"nic",
"Latn",
type = "reconstructed",
}
m["nic-ubg-pro"] = {
"Ubangian Purba",
116773818,
"nic-ubg",
"Latn",
type = "reconstructed",
}
m["nic-ucr-pro"] = {
"Cross River Atas Purba",
116773819,
"nic-ucr",
"Latn",
type = "reconstructed",
}
m["nic-vco-pro"] = {
"Volta-Congo Purba",
116773293,
"nic-vco",
"Latn",
type = "reconstructed",
}
m["njo-jgl"] = {
"Ao Chungli",
55607615,
"njo",
"Latn",
}
m["njo-mng"] = {
"Ao Mongsen",
85383221,
"njo",
"Latn",
}
m["nub-har"] = {
"Haraza",
19572059,
"nub",
"Arab, Latn",
}
m["nub-pro"] = {
"Nubia Purba",
116773246,
"nub",
"Latn",
type = "reconstructed",
}
m["omq-cha-pro"] = {
"Chatino Purba",
116773202,
"omq-cha",
"Latn",
type = "reconstructed",
}
m["omq-maz-pro"] = {
"Mazatec Purba",
116773790,
"omq-maz",
"Latn",
type = "reconstructed",
}
m["omq-mix-pro"] = {
"Mixtecan Purba",
21573423,
"omq-mix",
"Latn",
type = "reconstructed",
}
m["omq-mxt-pro"] = {
"Mixtec Purba",
21573424,
"omq-mxt",
"Latn",
type = "reconstructed",
}
m["omq-otp-pro"] = {
"Oto-Pamean Purba",
116773251,
"omq-otp",
"Latn",
type = "reconstructed",
}
m["omq-pro"] = {
"Oto-Manguean Purba",
33669,
"omq",
"Latn",
type = "reconstructed",
}
m["omq-sjq"] = {
"Chatino San Juan Quiahije",
138330751,
"omq-cha",
"Latn",
}
m["omq-tel"] = {
"Mixtec Teposcolula",
nil,
"omq-mxt",
"Latn",
}
m["omq-teo"] = {
"Chatino Teojomulco",
25340451,
"omq-cha",
"Latn",
}
m["omq-tri-pro"] = {
"Triqui Purba",
116773817,
"omq-tri",
"Latn",
type = "reconstructed",
}
m["omq-zap-pro"] = {
"Zapotecan Purba",
116773297,
"omq-zap",
"Latn",
type = "reconstructed",
}
m["omq-zpc-pro"] = {
"Zapotec Purba",
116773296,
"omq-zpc",
"Latn",
type = "reconstructed",
}
m["omv-aro-pro"] = {
"Aroid Purba",
116773721,
"omv-aro",
"Latn",
type = "reconstructed",
}
m["omv-diz-pro"] = {
"Dizoid Purba",
116773750,
"omv-diz",
"Latn",
type = "reconstructed",
}
m["omv-pro"] = {
"Omotic Purba",
116773800,
"omv",
"Latn",
type = "reconstructed",
}
m["oto-otm-pro"] = {
"Otomi Purba",
5908710,
"oto-otm",
"Latn",
type = "reconstructed",
}
m["oto-pro"] = {
"Otomian Purba",
116773252,
"oto",
"Latn",
type = "reconstructed",
}
m["paa-kmn"] = {
"Kómnzo",
18344310,
"paa-wko",
"Latn",
}
m["paa-kwn"] = {
"Kuwani",
6449056,
"qfa-unc", -- kurang dibuktikan, mungkin sama dengan atau berkaitan dengan Kalabra
"Latn",
}
m["paa-lei"] = {
"Leitre",
85776228,
"paa-isk",
}
m["paa-nha-pro"] = {
"Halmahera Utara Purba",
116773241,
"paa-nha",
"Latn",
type = "reconstructed"
}
m["paa-nun"] = {
"Nungon",
128807788,
"ngf-ynu",
"Latn",
}
m["phi-din"] = {
"Agta Dinapigue",
16945774,
"phi",
"Latn",
}
m["phi-kal-pro"] = {
"Kalamian Purba",
116773213,
"phi-kal",
"Latn",
type = "reconstructed",
}
m["phi-nag"] = {
"Agta Nagtipunan",
16966111,
"phi",
"Latn",
}
m["phi-pro"] = {
"Filipina Purba",
18204898,
"phi",
"Latn",
type = "reconstructed",
}
m["poz-abi"] = {
"Abai",
19570729,
"poz-san",
"Latn",
}
m["poz-bal"] = {
"Baliledo",
4850912,
"poz",
"Latn",
}
m["poz-btk-pro"] = {
"Bungku-Tolaki Purba",
116773724,
"poz-btk",
"Latn",
type = "reconstructed",
}
m["poz-cet-pro"] = {
"Melayu-Polenesia Tengah-Timur Purba",
2269883,
"poz-cet",
"Latn",
type = "reconstructed",
}
m["poz-hce-pro"] = {
"Halmahera-Cenderawasih Purba",
116773209,
"poz-hce",
"Latn",
type = "reconstructed",
}
m["poz-lgx-pro"] = {
"Lampungik Purba",
116773222,
"poz-lgx",
"Latn",
type = "reconstructed",
}
m["poz-mcm-pro"] = {
"Melayu-Chamic Purba",
116773225,
"poz-mcm",
"Latn",
type = "reconstructed",
}
m["poz-mic-pro"] = {
"Mikronesia Purba",
111939079,
"poz-mic",
"Latn",
type = "reconstructed",
}
m["poz-mly-pro"] = {
"Melayik Purba",
98057728,
"poz-mly",
"Latn",
type = "reconstructed",
}
m["poz-msa-pro"] = {
"Melayu-Sumbawa Purba",
116773226,
"poz-msa",
"Latn",
type = "reconstructed",
}
m["poz-nes"] = {
"Nese",
2157412,
"poz-vnc",
"Latn",
}
m["poz-oce-pro"] = {
"Oceania Purba",
141741,
"poz-oce",
"Latn",
type = "reconstructed",
}
m["poz-pcc-pro"] = {
"Pasifik Tengah Purba",
111962726,
"poz-pcc",
"Latn",
type = "reconstructed",
}
m["poz-pep-pro"] = {
"Polinesia Timur Purba",
113988745,
"poz-pep",
"Latn",
type = "reconstructed",
}
m["poz-pnp-pro"] = {
"Polinesia Nukleus Purba",
113988746,
"poz-pnp",
"Latn",
type = "reconstructed",
}
m["poz-pol-pro"] = {
"Polinesia Purba",
1658709,
"poz-pol",
"Latn",
type = "reconstructed",
}
m["poz-pro"] = {
"Melayu-Polenesia Purba",
3832960,
"poz",
"Latn",
type = "reconstructed",
}
m["poz-sml"] = {
"Melayu Sarawak",
4251702,
"poz-mly",
"Latn, Arab",
}
m["poz-ssw-pro"] = {
"Sulawesi Selatan Purba",
116773279,
"poz-ssw",
"Latn",
type = "reconstructed",
}
m["poz-swa-pro"] = {
"Sarawak Utara Purba",
116773243,
"poz-swa",
"Latn",
type = "reconstructed",
}
m["poz-ter"] = {
"Melayu Terengganu",
4207412,
"poz-mly",
"Latn, Arab",
}
m["pqe-pro"] = {
"Melayu-Polenesia Timur Purba",
2269883,
"pqe",
"Latn",
type = "reconstructed",
}
m["pra-niy"] = {
"Prakrit Niya",
11991601,
"inc-mid",
"Khar",
ancestors = "inc-ash",
translit = "Khar-translit",
}
m["qfa-adm-pro"] = {
"Andaman Besar Purba",
116773756,
"qfa-adm",
"Latn",
type = "reconstructed",
}
m["qfa-bet-pro"] = {
"Be-Tai Purba",
116773193,
"qfa-bet",
"Latn",
type = "reconstructed",
}
m["qfa-cka-pro"] = {
"Chukotko-Kamchatka Purba",
7251837,
"qfa-cka",
"Latn",
type = "reconstructed",
}
m["qfa-hur-pro"] = {
"Hurro-Urartia Purba",
116773211,
"qfa-hur",
"Latn",
type = "reconstructed",
}
m["qfa-kad-pro"] = {
"Kadu Purba",
116773770,
"qfa-kad",
"Latn",
type = "reconstructed",
}
m["qfa-kms-pro"] = {
"Kam-Sui Purba",
55630682,
"qfa-kms",
"Latn",
type = "reconstructed",
}
m["qfa-kor-pro"] = {
"Korea Purba",
467883,
"qfa-kor",
"Latn",
type = "reconstructed",
}
m["qfa-kra-pro"] = {
"Kra Purba",
7251854,
"qfa-kra",
"Latn",
type = "reconstructed",
}
m["qfa-lic-pro"] = {
"Hlai Purba",
7251845,
"qfa-lic",
"Latn",
type = "reconstructed",
}
m["qfa-onb-pro"] = {
"Be Purba",
116773192,
"qfa-onb",
"Latn",
type = "reconstructed",
}
m["qfa-ong-pro"] = {
"Onga Purba",
116773801,
"qfa-ong",
"Latn",
type = "reconstructed",
}
m["qfa-tak-pro"] = {
"Kra-Dai Purba",
104901616,
"qfa-tak",
"Latn",
type = "reconstructed",
}
m["qfa-yen-pro"] = {
"Yenisei Purba",
27639,
"qfa-yen",
"Latn",
type = "reconstructed",
}
m["qfa-yuk-pro"] = {
"Yukaghir Purba",
116773294,
"qfa-yuk",
"Latn",
type = "reconstructed",
}
m["qwe-kch"] = {
"Kichwa",
1740805,
"qwe",
"Latn",
ancestors = "qu",
}
m["qwe-pro"] = {
"Quechua Purba",
5575757,
"qwe",
"Latn",
type = "reconstructed",
}
m["roa-ang"] = {
"Angevin",
56782,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-bbn"] = {
"Bourbonnais-Berrichon",
2899128,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-brg"] = {
"Bourguignon",
508332,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-can"] = {
"Cantabrian",
917021,
"roa-asl",
"Latn",
}
m["roa-cha"] = {
"Champenois",
430018,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-fcm"] = {
"Franc-Comtois",
510561,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-gal"] = {
"Gallo",
37300,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-gib"] = {
"Gallo-Itali Basilicata",
3094838,
"roa-git",
ancestors = "pms-old",
"Latn",
}
m["roa-gis"] = {
"Gallo-Itali Sicily",
2629019,
"roa-git",
"Latn",
ancestors = "pms-old",
}
m["roa-leo"] = {
"Leonese",
34108,
"roa-asl",
"Latn",
}
m["roa-lor"] = {
"Lorrain",
671198,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-oca"] = {
"Catalan Kuno",
15478520,
"roa-ocr",
"Latn",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.diaer .. c.cedilla .. "·"},
}
m["roa-ole"] = {
"Leonese Kuno",
125977465,
"roa-asl",
"Latn",
}
m["roa-ona"] = {
"Navarro-Aragon Kuno",
2736184,
"roa-nar",
"Latn",
}
m["roa-opt"] = {
"Galicia-Portugis Kuno",
1072111,
"roa-gap",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ},
}
m["roa-orl"] = {
"Orléanais",
28497058,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-poi"] = {
"Poitevin-Saintongeais",
514123,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-tar"] = {
"Tarantino",
695526,
"roa-itr",
"Latn",
wikimedia_codes = "roa-tara",
}
m["sai-all"] = {
"Allentiac",
19570789,
"sai-hrp",
"Latn",
}
m["sai-and"] = {
"Andoquero",
16828359,
"sai-wit",
"Latn",
}
m["sai-ayo"] = {
"Ayomán",
16937754,
"sai-jir",
"Latn",
}
m["sai-bae"] = {
"Baenan",
3401998,
"qfa-unc", -- pupus, kurang dibuktikan; hanya dikenali melalui 9 perkataan
"Latn",
}
m["sai-bag"] = {
"Bagua",
5390321,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin bahasa Carib
"Latn",
}
m["sai-bet"] = {
"Betoi",
926551,
"qfa-iso",
"Latn",
}
m["sai-bor-pro"] = {
"Bora Purba",
nil,
"sai-bor",
"Latn",
}
m["sai-cac"] = {
"Cacán",
945482,
"qfa-unc", -- pupus, kurang dibuktikan; tiada konsensus mengenai pengelasan
"Latn",
}
m["sai-caq"] = {
"Caranqui",
2937753,
"sai-bar",
"Latn",
}
m["sai-car-pro"] = {
"Carib Purba",
116773196,
"sai-car",
"Latn",
type = "reconstructed",
}
m["sai-cat"] = {
"Catacao",
5051136,
"sai-ctc",
"Latn",
}
m["sai-cer-pro"] = {
"Cerrado Purba",
116773200,
"sai-cer",
"Latn",
type = "reconstructed",
}
m["sai-chi"] = {
"Chirino",
5390321,
"qfa-unc", -- pupus, hanya empat perkataan diketahui; mungkin berkaitan dengan Candoshi-Shapra (cbu)
"Latn",
}
m["sai-chn"] = {
"Chaná",
5072718,
"sai-crn",
"Latn",
}
m["sai-chp"] = {
"Chapacura",
5072884,
"sai-cpc",
"Latn",
}
m["sai-chr"] = {
"Charrua",
5086680,
"sai-crn",
"Latn",
}
m["sai-chu"] = {
"Churuya",
5118339,
"sai-guh",
"Latn",
}
m["sai-cje-pro"] = {
"Jê Tengah Purba",
116773198,
"sai-cje",
"Latn",
type = "reconstructed",
}
m["sai-cmg"] = {
"Comechingon",
6644203,
"qfa-unc", -- pupus, kurang dibuktikan; tiada konsensus mengenai pengelasan
"Latn",
}
m["sai-cno"] = {
"Chono",
5104704,
"qfa-unc", -- pupus, kurang dibuktikan; tiada konsensus mengenai pengelasan, mungkin palsu
"Latn",
}
m["sai-cnr"] = {
"Cañari",
5055572,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Chimuan atau Barbacoan
"Latn",
}
m["sai-coe"] = {
"Coeruna",
6425639,
"sai-wit",
"Latn",
}
m["sai-col"] = {
"Colán",
5141893,
"sai-ctc",
"Latn",
}
m["sai-cop"] = {
"Copallén",
5390321,
"qfa-unc", -- pupus, hanya empat perkataan dibuktikan; mungkin Cholonan
"Latn",
}
m["sai-crd"] = {
"Coroado Puri",
24191321,
"sai-mje",
"Latn",
}
m["sai-ctq"] = {
"Catuquinaru",
16858455,
"qfa-unc", -- pupus, kurang dibuktikan; kosa kata tidak menyerupai bahasa lain
"Latn",
}
m["sai-cul"] = {
"Culli",
2879660,
"qfa-unc", -- pupus, kurang dibuktikan; sering dianggap sebagai pencilan
"Latn",
}
m["sai-cva"] = {
"Cueva",
5192644,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Chocoan
"Latn",
}
m["sai-esm"] = {
"Esmeralda",
3058083,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin berkaitan dengan Yaruro
"Latn",
}
m["sai-ewa"] = {
"Ewarhuyana",
16898104,
nil,
"Latn",
}
m["sai-gam"] = {
"Gamela",
5403661,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin pencilan
"Latn",
}
m["sai-gay"] = {
"Gayón",
5528902,
"sai-jir",
"Latn",
}
m["sai-gmo"] = {
"Guamo",
5613495,
"qfa-unc", -- pupus; "Kaufman (1990) mendapati hubungan dengan bahasa-bahasa Chapacuran meyakinkan." [Wikipedia] Dianggap sebagai pencilan oleh Campbell (2024).
"Latn",
}
m["sai-gua"] = {
"Guachí",
5613172,
"sai-guc",
"Latn",
}
m["sai-gue"] = {
"Güenoa",
5626799,
"sai-crn",
"Latn",
}
m["sai-hau"] = {
"Haush",
3128376,
"sai-cho",
"Latn",
}
m["sai-jee-pro"] = {
"Jê Purba",
116773212,
"sai-jee",
"Latn",
type = "reconstructed",
}
m["sai-jko"] = {
"Jeikó",
6176527,
"sai-mje",
"Latn",
}
m["sai-jrj"] = {
"Jirajara",
6202966,
"sai-jir",
"Latn",
}
m["sai-kat"] = { -- kontras xoo, kzw, sai-xoc
"Katembri",
6375925,
"qfa-unc", -- pupus, kurang dibuktikan; "Kaufman (1990) telah menghubungkannya dengan bahasa Taruma yang hampir pupus, walaupun ini tidak diterima oleh sarjana lain." [Wikipedia]
"Latn",
}
m["sai-mal"] = {
"Malalí",
6741212,
"sai-mje", -- dianggap sebagai bahasa Maxakalían yang paling divergen (subbahagian kepada Macro-Jê), yang mana kami tiada entri
"Latn",
}
m["sai-mar"] = {
"Maratino",
6755055,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Uto-Aztecan
"Latn",
}
m["sai-mat"] = {
"Matanawi",
6786047,
"qfa-unc", -- pupus; sama ada pencilan atau berkait jauh dengan bahasa-bahasa Muran; Campbell (2024) menyenarainya sebagai pencilan, Glottolog memberikannya sebagai tidak terkelas
"Latn",
}
m["sai-mcn"] = {
"Mocana",
3402048,
"qfa-unc", -- pupus, kurang dibuktikan; diberikan sebagai sebahagian daripada bahasa Malibu (pengumpulan geografi; bukan klad)
"Latn",
}
m["sai-men"] = {
"Menien",
16890110,
"sai-mje",
"Latn",
}
m["sai-mil"] = {
"Millcayac",
19573012,
"sai-hrp",
"Latn",
}
m["sai-mlb"] = {
"Malibu",
134374036,
"qfa-unc", -- pupus, kurang dibuktikan; diberikan sebagai sebahagian daripada bahasa Malibu (pengumpulan geografi; bukan klad)
"Latn",
}
m["sai-msk"] = {
"Masakará",
6782426,
"sai-mje",
"Latn",
}
m["sai-muc"] = {
"Mucuchí",
6931290,
nil, -- lazimnya dianggap sebagai Timotean, yang mana kami tiada entri
"Latn",
}
m["sai-mue"] = {
"Muellama",
16886936,
"sai-bar",
"Latn",
}
m["sai-muz"] = {
"Muzo",
6644203,
"qfa-unc", -- bahasa pupus di Colombia, kurang dibuktikan; mungkin Pijao (Cariban)
"Latn",
}
m["sai-mys"] = {
"Maynas",
16919393,
"sai-cah", -- mengikut Campbell (2024); dahulu dianggap tidak terkelas
"Latn",
}
m["sai-nat"] = {
"Natú",
9006749,
"qfa-unc", -- pupus, kurang dibuktikan; "hanya Greenberg yang berani mengelaskannya".[Wikipedia, memetik Moseley, Christopher; Asher, R. E.; Tait, Mary (1994), Atlas of the world's languages]
"Latn",
}
m["sai-nje-pro"] = {
"Jê Utara Purba",
116773245,
"sai-nje",
"Latn",
type = "reconstructed",
}
m["sai-opo"] = {
"Opón",
7099152,
"sai-car",
"Latn",
}
m["sai-oto"] = {
"Otomaco",
16879234,
"sai-otm",
"Latn",
}
m["sai-pal"] = {
"Palta",
3042978,
"qfa-unc", -- pupus, tidak terkelas; mungkin Chicham
"Latn",
}
m["sai-pam"] = {
"Pamigua",
5908689,
"sai-tin",
"Latn",
}
m["sai-par"] = {
"Paratió",
16890038,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Xukuruan
"Latn",
}
m["sai-peb"] = {
"Peba",
3373890,
"sai-pey",
"Latn",
}
m["sai-pnz"] = {
"Panzaleo",
3123275,
"qfa-unc", -- pupus, tidak terkelas; mungkin Paezan
"Latn",
}
m["sai-prh"] = {
"Puruhá",
3410994,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin dalam keluarga dengan Cañari
"Latn",
}
m["sai-ptg"] = {
"Patagón",
128807870,
"sai-tar", -- pupus, hanya diketahui daripada 4 perkataan, yang mencadangkan susur galur Cariban (Campbell 2024)
"Latn",
}
m["sai-pur"] = {
"Purukotó",
7261622,
"sai-pem",
"Latn",
}
m["sai-pyg"] = {
"Payaguá",
7156643,
"sai-guc",
"Latn",
}
m["sai-pyk"] = {
"Pykobjê",
98113977,
"sai-nje",
"Latn",
}
m["sai-qmb"] = {
"Quimbaya",
7272043,
"qfa-unc", -- pupus, mungkin tidak wujud; sedikit perkataan yang diketahui
"Latn",
}
m["sai-qtm"] = {
"Quitemo",
7272651,
"sai-cpc",
"Latn",
}
m["sai-rab"] = {
"Rabona",
6644203,
"qfa-unc", -- pupus, kurang dibuktikan, kebanyakan nama tumbuhan; mungkin Candoshi-Shapra
"Latn",
}
m["sai-ram"] = {
"Ramanos",
16902824,
"qfa-unc", -- pupus, kurang dibuktikan, mungkin pencilan; mengikut Glottolog: "senarai perkataan yang kerdil ... tidak menunjukkan persamaan yang meyakinkan dengan bahasa sekeliling"
"Latn",
}
m["sai-sac"] = {
"Sácata",
5390321,
"qfa-unc", -- pupus, hanya 3 perkataan diketahui; mungkin Candoshí atau Arawak
"Latn",
}
m["sai-san"] = {
"Sanaviron",
16895999,
"qfa-unc", -- pupus, tidak terkelas; tiada konsensus mengenai pengelasan
"Latn",
}
m["sai-sap"] = {
"Sapará",
7420922,
"sai-car",
"Latn",
}
m["sai-sec"] = {
"Sechura",
7442912,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Catacaoan
"Latn",
}
m["sai-sin"] = {
"Sinúfana",
7525275,
"qfa-unc", -- hampir pupus, kurang dibuktikan; mungkin Chocoan
"Latn",
}
m["sai-sje-pro"] = {
"Jê Selatan Purba",
116773814,
"sai-sje",
"Latn",
type = "reconstructed",
}
m["sai-tab"] = {
"Tabancale",
5390321,
"qfa-unc", -- pupus, hanya 5 perkataan diketahui; tiada kaitan yang jelas, mungkin pencilan
"Latn",
}
m["sai-tal"] = {
"Tallán",
16910468,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Catacaoan
"Latn",
}
m["sai-tap"] = {
"Tapayuna",
30719984,
"sai-nje",
"Latn",
}
m["sai-tar-pro"] = {
"Taranoan Purba",
116773816,
"sai-tar",
"Latn",
type = "reconstructed",
}
m["sai-teu"] = {
"Teushen",
3519243,
"qfa-unc", -- mungkin pupus menjelang 1950-an; mungkin Chonan
"Latn",
}
m["sai-tim"] = {
"Timote",
7806995,
nil, -- mungkin dalam keluarga Timote kecil
"Latn",
}
m["sai-tpr"] = {
"Taparita",
7684460,
"sai-otm",
"Latn",
}
m["sai-trr"] = {
"Tarairiú",
7685313,
"qfa-unc", -- pupus, terlalu kurang dibuktikan untuk dikelaskan
"Latn",
}
m["sai-wai"] = {
"Waitaká",
16918610,
"qfa-unc", -- pupus, mungkin Purian
"Latn",
}
m["sai-way"] = {
"Wayumara",
7960726,
"sai-car",
"Latn",
}
m["sai-wit-pro"] = {
"Witotoan Purba",
116773823,
"sai-wit",
"Latn",
type = "reconstructed",
}
m["sai-wnm"] = {
"Wanham",
16879440,
"sai-cpc",
"Latn",
}
m["sai-xoc"] = { -- kontras xoo, kzw, sai-kat
"Xocó",
12953620,
"qfa-unc", -- pupus dan kurang dibuktikan; tidak jelas sama ada satu atau tiga bahasa
"Latn",
}
m["sai-yao"] = {
"Yao (Amerika Selatan)",
16979655,
"sai-ven",
"Latn",
}
m["sai-yar"] = { -- bukan keluarga yang sama dengan 'suy'
"Yarumá",
3505859,
"sai-pek",
"Latn",
}
m["sai-yri"] = {
"Yuri",
2669157,
"sai-tyu",
"Latn",
}
m["sai-yup"] = {
"Yupua",
8061430,
"sai-tuc",
"Latn",
}
m["sai-yur"] = {
"Yurumanguí",
1281291,
"qfa-unc", -- pupus, terlalu kurang dibuktikan untuk dikelaskan
"Latn",
}
m["sal-pro"] = {
"Salish Purba",
116773269,
"sal",
"Latn",
type = "reconstructed",
}
m["sdv-daj-pro"] = {
"Daju Purba",
116773739,
"sdv-daj",
"Latn",
type = "reconstructed",
}
m["sdv-eje-pro"] = {
"Jebel Timur Purba",
116773751,
"sdv-eje",
"Latn",
type = "reconstructed",
}
m["sdv-nil-pro"] = {
"Nilotik Purba",
116773794,
"sdv-nil",
"Latn",
type = "reconstructed",
}
m["sdv-nyi-pro"] = {
"Nyima Purba",
116773796,
"sdv-nyi",
"Latn",
type = "reconstructed",
}
m["sdv-tmn-pro"] = {
"Taman Purba",
116773815,
"sdv-tmn",
"Latn",
type = "reconstructed",
}
m["sel-nor"] = {
"Selkup Utara",
30304565,
"sel",
"Cyrl",
translit = "sel-nor-translit",
}
m["sel-pro"] = {
"Selkup Purba",
128884235,
"sel",
"Latn",
type = "reconstructed",
}
m["sel-sou"] = {
"Selkup Selatan",
30304639,
"sel",
"Cyrl",
translit = "sel-sou-translit",
}
m["sem-amm"] = {
"Ammon",
279181,
"sem-can",
"Phnx",
-- translit Phnx dalam [[Module:scripts/data]]
}
m["sem-amo"] = {
"Amor",
35941,
"sem-nwe",
"Xsux, Latn",
}
m["sem-cha"] = {
"Chaha",
35543,
"sem-eth",
"Ethi",
translit = "Ethi-translit",
}
m["sem-dad"] = {
"Dadan",
21838040,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-dum"] = {
"Dumait",
128810397,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-has"] = {
"Hasait",
3541433,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-his"] = {
"Hisma",
22948260,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-mhr"] = {
"Muher",
33743,
"sem-eth",
"Latn",
}
m["sem-pro"] = {
"Semitik Purba",
1658554,
"sem",
"Latn",
type = "reconstructed",
}
m["sem-saf"] = {
"Safait",
472586,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-sam"] = {
"Samal",
85847147,
"sem-nwe",
"Phnx",
-- translit Phnx dalam [[Module:scripts/data]]
}
m["sem-srb"] = {
"Arab Selatan Kuno",
35025,
"sem-osa",
"Sarb",
-- translit Sarb dalam [[Module:scripts/data]]
}
m["sem-tay"] = {
"Tayman",
24912301,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-tha"] = {
"Thamud",
843030,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-wes-pro"] = {
"Semitik Barat Purba",
98021726,
"sem-wes",
"Latn",
type = "reconstructed",
}
m["sio-pro"] = { -- PERHATIAN ini bukan 'nai-sca-pro' "Proto-Siouan-Catawban" iaitu Proto-Siouan Barat
"Siouan Purba",
34181,
"sio",
"Latn",
type = "reconstructed",
}
m["sit-aao-pro"] = {
"Naga Tengah Purba",
nil,
"sit-aao",
"Latn",
type = "reconstructed",
}
m["sit-bai-pro"] = {
"Bai Purba",
nil,
"sit-bai",
"Latn",
type = "reconstructed",
}
m["sit-ban"] = {
"Bangru",
56071779,
"sit-hrs",
"Latn",
}
m["sit-bdi-pro"] = {
"Bodish Purba",
nil,
"sit-bdi",
"Latn",
type = "reconstructed",
}
m["sit-bok"] = {
"Bokar",
4938727,
"sit-tan",
"Latn, Tibt",
override_translit = true,
-- translit, display_text, strip_diacritics, sort_key Tibt dalam [[Module:scripts/data]]
}
m["sit-cai"] = {
"Caijia",
5017528,
"sit-cln",
"Latn"
}
m["sit-cha"] = {
"Chairel",
5068066,
"sit-luu",
"Latn",
}
m["sit-ers-pro"] = {
"Ersu Purba",
nil,
"sit-ers",
"Latn",
type = "reconstructed",
}
m["sit-hrs-pro"] = {
"Hrusish Purba",
116773762,
"sit-hrs",
"Latn",
type = "reconstructed",
}
m["sit-jap"] = {
"Japhug",
3162245,
"sit-egy",
"Latn",
}
m["sit-kha-pro"] = {
"Kham Purba",
116773773,
"sit-kha",
"Latn",
type = "reconstructed",
}
m["sit-khb-pro"] = {
"Kho-Bwa Purba",
nil,
"sit-khb",
"Latn",
type = "reconstructed",
}
m["sit-khp-pro"] = {
"Puroik Purba",
nil,
"sit-khb",
"Latn",
type = "reconstructed",
}
m["sit-khw-pro"] = {
"Kho-Bwa Barat Purba",
nil,
"sit-khw",
"Latn",
type = "reconstructed",
}
m["sit-kon-pro"] = {
"Naga Utara Purba",
nil,
"sit-kon",
"Latn",
type = "reconstructed",
}
m["sit-liz"] = {
"Lizu",
6660653,
"sit-ers",
"Latn", -- dan Ersu Shaba
}
m["sit-lnj"] = {
"Longjia",
17096251,
"sit-cln",
"Latn"
}
m["sit-lrn"] = {
"Luren",
16946370,
"sit-cln",
"Latn"
}
m["sit-luu-pro"] = {
"Luish Purba",
116773783,
"sit-luu",
"Latn",
type = "reconstructed",
}
m["sit-nas-pro"] = {
"Naish Purba",
nil,
"sit-nas",
"Latn",
type = "reconstructed",
}
m["sit-prn"] = {
"Puiron",
7259048,
"sit-zem",
}
m["sit-pro"] = {
"Sino-Tibet Purba",
24839178,
"sit",
"Latn",
type = "reconstructed",
}
m["sit-sit"] = {
"Situ",
19840830,
"sit-egy",
"Latn",
}
m["sit-tam-pro"] = {
"Tamang Purba",
117469295,
"sit-tam",
"Latn",
type = "reconstructed",
}
m["sit-tan-pro"] = {
"Tani Purba",
116773284,
"sit-tan",
"Latn", -- memerlukan pengesahan
type = "reconstructed",
}
m["sit-tgm"] = {
"Tangam",
17041370,
"sit-tan",
"Latn",
}
m["sit-tng-pro"] = {
"Tangkhul Purba",
nil,
"sit-tng",
"Latn",
type = "reconstructed",
}
m["sit-tos"] = {
"Tosu",
7827899,
"sit-ers",
"Latn", -- juga Ersu Shaba
}
m["sit-tsh"] = {
"Tshobdun",
19840950,
"sit-egy",
"Latn",
}
m["sit-zbu"] = {
"Zbu",
19841106,
"sit-egy",
"Latn",
}
m["sla-pro"] = {
"Slav Purba",
747537,
"sla",
"Latn",
type = "reconstructed",
strip_diacritics = {
remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron .. c.dgrave .. c.invbreve,
remove_exceptions = {'ś'},
},
sort_key = {
from = {"č", "ď", "ě", "ę", "ь", "ľ", "ň", "ǫ", "ř", "š", "ś", "ť", "ъ", "ž"},
to = {"c²", "d²", "e²", "e³", "i²", "l²", "nj", "o²", "r²", "s²", "s³", "t²", "u²", "z²"},
}
}
m["smi-pro"] = {
"Sami Purba",
7251862,
"smi",
"Latn",
type = "reconstructed",
sort_key = {
from = {"ā", "č", "δ", "[ëē]", "ŋ", "ń", "ō", "š", "θ", "%([^()]+%)"},
to = {"a", "c²", "d", "e", "n²", "n³", "o", "s²", "t²"}
},
}
m["son-pro"] = {
"Songhai Purba",
116773277,
"son",
"Latn",
type = "reconstructed",
}
m["sqj-pro"] = {
"Albania Purba",
18210846,
"sqj",
"Latn",
type = "reconstructed",
}
m["ssa-klk-pro"] = {
"Kuliak Purba",
116773779,
"ssa-klk",
"Latn",
type = "reconstructed",
}
m["ssa-kom-pro"] = {
"Koma Purba",
116773775,
"ssa-kom",
"Latn",
type = "reconstructed",
}
m["ssa-pro"] = {
"Nilo-Sahara Purba",
116773236,
"ssa",
"Latn",
type = "reconstructed",
}
m["syd-pro"] = {
"Samoyed Purba",
7251863,
"syd",
"Latn",
type = "reconstructed",
}
m["tai-pro"] = {
"Tai Purba",
6583709,
"tai",
"Latn",
type = "reconstructed",
}
m["tai-swe-pro"] = {
"Tai Barat Daya Purba",
116773280,
"tai-swe",
"Latn",
type = "reconstructed",
}
m["tbq-bdg-pro"] = {
"Bodo-Garo Purba",
116773195,
"tbq-bdg",
"Latn",
type = "reconstructed",
}
m["tbq-blg"] = {
"Bailang",
2879843,
"tbq-lob",
"Hani",
sort_key = "Hani-sortkey",
}
m["tbq-brm-pro"] = {
"Burma Purba",
nil,
"tbq-brm",
"Latn",
type = "reconstructed",
}
m["tbq-gkh"] = {
"Gokhy",
5578069,
"tbq-sil",
"Latn",
}
m["tbq-kuk-pro"] = {
"Kuki-Chin Purba",
116773220,
"tbq-kuk",
"Latn",
type = "reconstructed",
}
m["tbq-lal-pro"] = {
"Lalo Purba",
116773781,
"tbq-lal",
"Latn",
type = "reconstructed",
}
m["tbq-laz"] = {
"Laze",
17007626,
"sit-nas",
"Latn",
}
m["tbq-lob-pro"] = {
"Lolo-Burma Purba",
116773224,
"tbq-lob",
"Latn",
type = "reconstructed",
}
m["tbq-lol-pro"] = {
"Lolo Purba",
7251855,
"tbq-lol",
"Latn",
type = "reconstructed",
}
m["tbq-mil"] = {
"Milang",
6850761,
"sit-gsi",
"Deva, Latn",
}
m["tbq-mor"] = {
"Moran",
6909216,
"tbq-bdg",
"Latn",
}
m["tbq-ngo"] = {
"Ngochang",
56582,
"tbq-brm",
"Latn",
}
-- tbq-pro kini khusus etimologi
m["trk-dkh"] = {
"Dukhan",
12809273,
"trk-ssb",
"Latn, Cyrl, Mong",
-- translit, display_text dan strip_diacritics Mong dalam [[Module:scripts/data]]
}
-- Seperti yang diuraikan dalam ''Dīwān Lughāt al-Turk'' karya Mahmud al-Kashgari abad ke-11.
m["trk-eog"] = {
"Oghuz Awal Kuno",
nil,
"trk-ogz",
"Arab",
strip_diacritics = {Arab = "ar-stripdiacritics"},
}
m["trk-oat"] = {
"Turki Anatolia Kuno",
7083390,
"trk-ogz",
"Arab",
strip_diacritics = {Arab = "ar-stripdiacritics"},
ancestors = "trk-eog",
}
m["trk-pro"] = {
"Turkik Purba",
3657773,
"trk",
"Latn",
type = "reconstructed",
standard_chars = {
Latn = " ()-abdegiklmnoprstuxyzïöüāčēīĺŋōŕšūǖȫẹ" .. c.macron,
}
}
m["tup-gua-pro"] = {
"Tupi-Guarani Purba",
116773288,
"tup-gua",
"Latn",
type = "reconstructed",
}
m["tup-kab"] = {
"Kabishiana",
15302988,
"tup",
"Latn",
}
m["tup-kaw"] = {
"Kawahiva",
6346712,
"tup-gua",
"Latn",
}
m["tup-pro"] = {
"Tupia Purba",
10354700,
"tup",
"Latn",
type = "reconstructed",
}
m["tuw-alk"] = {
"Alchuka",
113553616,
"tuw-jrc",
"Latn, Hans",
sort_key = {Hans = "Hani-sortkey"},
}
m["tuw-bal"] = {
"Bala",
86730632,
"tuw-jrc",
"Latn, Hans",
sort_key = {Hans = "Hani-sortkey"},
}
m["tuw-kkl"] = {
"Kyakala",
118875708,
"tuw-jrc",
"Latn, Hans",
sort_key = {Hans = "Hani-sortkey"},
}
m["tuw-kli"] = {
"Kili",
6406892,
"tuw-ewe",
"Cyrl",
}
m["tuw-pro"] = {
"Tungus Purba",
85872335,
"tuw",
"Latn",
type = "reconstructed",
}
m["tuw-sol"] = {
"Solon",
30004,
"tuw-ewe",
}
m["urj-fin-pro"] = {
"Finnik Purba",
11883720,
"urj-fin",
"Latn",
type = "reconstructed",
}
m["urj-koo"] = {
"Komi Kuno",
86679962,
"kv",
"Perm, Cyrs",
translit = "urj-koo-translit",
-- strip_diacritics, sort_key Cyrs dalam [[Module:scripts/data]]; sebelum ini, strip_diacritics Cyrs tidak hadir
}
m["urj-kuk"] = {
"Kukkuzi",
107410460,
"urj-fin",
"Latn",
ancestors = "vot",
}
m["urj-kya"] = {
"Komi-Yazva",
2365210,
"kv",
"Cyrl",
translit = "kv-translit",
override_translit = true,
strip_diacritics = {remove_diacritics = c.acute},
}
m["urj-mdv-pro"] = {
"Mordvinik Purba",
116773232,
"urj-mdv",
"Latn",
type = "reconstructed",
}
m["urj-prm-pro"] = {
"Permik Purba",
116773257,
"urj-prm",
"Latn",
type = "reconstructed",
}
m["urj-pro"] = {
"Uralik Purba",
288765,
"urj",
"Latn",
type = "reconstructed",
}
m["urj-ugr-pro"] = {
"Ugrik Purba",
156631,
"urj-ugr",
"Latn",
type = "reconstructed",
}
m["xnd-pro"] = {
"Na-Dene Purba",
116773233,
"xnd",
"Latn",
type = "reconstructed",
}
m["xgn-pro"] = {
"Mongolia Purba",
2493677,
"xgn",
"Latn",
type = "reconstructed",
sort_key = {
from = {"č", "i", "ï", "ǰ", "ŋ", "ö", "š", "ü"},
to = {"c", "i" .. p[1], "i", "j", "n" .. p[1], "o" .. p[1], "s" .. p[1], "u" .. p[1]},
},
}
m["yok-bvy"] = {
"Yokuts Buena Vista",
4985474,
"yok",
"Latn",
}
m["yok-dly"] = {
"Yokuts Delta",
70923266,
"yok",
"Latn",
}
m["yok-gsy"] = {
"Yokuts Gashowu",
3098708,
"yok",
"Latn",
}
m["yok-kry"] = {
"Yokuts Sungai Kings",
6413014,
"yok",
"Latn",
}
m["yok-nvy"] = {
"Yokuts Lembah Utara",
85789777,
"yok",
"Latn",
}
m["yok-ply"] = {
"Yokuts Palewyami",
2387391,
"yok",
"Latn",
}
m["yok-svy"] = {
"Yokuts Lembah Selatan",
12642473,
"yok",
"Latn",
}
m["yok-tky"] = {
"Yokuts Tule-Kaweah",
7851988,
"yok",
"Latn",
}
m["ypk-pro"] = {
"Yupik Purba",
116773295,
"ypk",
"Latn",
type = "reconstructed",
}
m["yrk-for"] = {
"Nenets Hutan",
1295107,
"yrk",
"Cyrl",
translit = "yrk-for-translit",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.macron .. c.breve .. c.dotabove},
}
m["yrk-tun"] = {
"Nenets Tundra",
36452,
"yrk",
"Cyrl",
strip_diacritics = {
from = {"ӑ", "а̄", "э̇", "ӣ", "ы̄", "ӯ", "ю̄", "я̆", "я̄"},
to = {"а", "а", "э", "и", "ы", "у", "ю", "я", "я"},
},
translit = "yrk-tun-translit",
}
m["zhx-min-pro"] = {
"Min Purba",
19646347,
"zhx-min",
"Latn",
type = "reconstructed",
}
m["zhx-sht"] = {
"Tuhua Shaozhou",
1920769,
"zhx",
"Nshu, Hants",
generate_forms = "zh-generateforms",
sort_key = {Hani = "Hani-sortkey"},
}
m["zhx-sic"] = {
"Sichuan",
2278732,
"zhx-man",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["zhx-tai"] = {
"Taishan",
2208940,
"zhx-yue",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["zle-ono"] = {
"Novgorod Kuno",
162013,
"zle",
"Cyrs, Glag",
translit = {Cyrs = "Cyrs-translit", Glag = "Glag-translit"},
-- strip_diacritics, sort_key Cyrs dalam [[Module:scripts/data]]
}
m["zle-ort"] = {
"Ruthenian Kuno",
13211,
"zle",
"Arab, Cyrs, Latn",
ancestors = "orv",
translit = {
Cyrs = "zle-ort-translit",
Arab = "zle-ort-Arab-translit",
},
strip_diacritics = {
Cyrs = {
remove_diacritics = m_langdata.chars_substitutions["Cyrs_remove_diacritics"],
remove_exceptions = {"Ї", "ї"},
},
Arab = "ar-stripdiacritics",
},
-- sort_key Cyrs dalam [[Module:scripts/data]]
}
m["zls-chs"] = {
"Slavonic Gereja",
33251,
"zls",
"Cyrs, Glag, Latn",
ancestors = "cu",
translit = {
Cyrs = "Cyrs-translit",
Glag = "Glag-translit"
},
-- strip_diacritics, sort_key Cyrs dalam [[Module:scripts/data]]
}
m["zlw-ocs"] = {
"Czech Kuno",
593096,
"zlw",
"Latn",
}
m["zlw-opl"] = {
"Poland Kuno",
149838,
"zlw-lch",
"Latn",
strip_diacritics = {remove_diacritics = c.ringabove},
}
m["zlw-osk"] = {
"Slovak Kuno",
12776676,
"zlw",
"Latn",
}
m["zlw-slv"] = {
"Slovincian",
36822,
"zlw-pom",
"Latn",
strip_diacritics = {remove_diacritics = c.macron .. c.breve},
}
return require("Module:languages").finalizeData(m, "language")
r03e4ppcpvaau3p3iazw4vgoajn1wgb
373549
373548
2026-09-11T10:39:05Z
Hakimi97
2668
Membetulkan sedikit terjemahan
373549
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["aav-khs-pro"] = {
"Khasi Purba",
116773216,
"aav-khs",
"Latn",
type = "reconstructed",
}
m["aav-nic-pro"] = {
"Nicobar Purba",
116773793,
"aav-nic",
"Latn",
type = "reconstructed",
}
m["aav-pkl-pro"] = {
"Pnar-Khasi-Lyngngam Purba",
116773259,
"aav-pkl",
"Latn",
type = "reconstructed",
}
m["aav-pro"] = { -- mkh-pro akan digabungkan ke dalam ini
"Austroasia Purba",
116773186,
"aav",
"Latn",
type = "reconstructed",
}
m["afa-pro"] = {
"Afroasia Purba",
269125,
"afa",
"Latn",
type = "reconstructed",
}
m["alg-aga"] = {
"Agawam",
nil,
"alg-eas",
"Latn",
}
m["alg-pro"] = {
"Algonquian Purba",
7251834,
"alg",
"Latn",
type = "reconstructed",
sort_key = {remove_diacritics = "·"},
}
m["alv-ama"] = {
"Amasi",
4740400,
"nic-grs",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron},
}
m["alv-bgu"] = {
"Bainouk Gubeeher",
17002646,
"alv-bny",
"Latn",
}
m["alv-bua-pro"] = {
"Bua Purba",
116773723,
"alv-bua",
"Latn",
type = "reconstructed",
}
m["alv-cng-pro"] = {
"Cangin Purba",
116773726,
"alv-cng",
"Latn",
type = "reconstructed",
}
m["alv-edo-pro"] = {
"Edoid Purba",
116773206,
"alv-edo",
"Latn",
type = "reconstructed",
}
m["alv-fli-pro"] = {
"Fali Purba",
116773754,
"alv-fli",
"Latn",
type = "reconstructed",
}
m["alv-gbe-pro"] = {
"Gbe Purba",
116773208,
"alv-gbe",
"Latn",
type = "reconstructed",
}
m["alv-gng-pro"] = {
"Guang Purba",
116773757,
"alv-gng",
"Latn",
type = "reconstructed",
}
m["alv-gtm-pro"] = {
"Togo Tengah Purba",
116773732,
"alv-gtm",
"Latn",
type = "reconstructed",
}
m["alv-gwa"] = {
"Gwara",
16945580,
"nic-pla",
"Latn",
}
m["alv-hei-pro"] = {
"Heiban Purba",
116773760,
"alv-hei",
"Latn",
type = "reconstructed",
}
m["alv-ido-pro"] = {
"Idomoid Purba",
116773764,
"alv-ido",
"Latn",
type = "reconstructed",
}
m["alv-igb-pro"] = {
"Igboid Purba",
116773765,
"alv-igb",
"Latn",
type = "reconstructed",
}
m["alv-kwa-pro"] = {
"Kwa Purba",
116773780,
"alv-kwa",
"Latn",
type = "reconstructed",
}
m["alv-mum-pro"] = {
"Mumuye Purba",
116773791,
"alv-mum",
"Latn",
type = "reconstructed",
}
m["alv-nup-pro"] = {
"Nupoid Purba",
116773795,
"alv-nup",
"Latn",
type = "reconstructed",
}
m["alv-pro"] = {
"Atlantik-Congo Purba",
116732838,
"alv",
"Latn",
type = "reconstructed",
}
m["alv-edk-pro"] = {
"Edekiri Purba",
nil,
"alv-edk",
"Latn",
type = "reconstructed",
}
m["alv-yor-pro"] = {
"Yoruba Purba",
nil,
"alv-yor",
"Latn",
type = "reconstructed",
}
m["alv-yrd-pro"] = {
"Yoruboid Purba",
116773824,
"alv-yrd",
"Latn",
type = "reconstructed",
}
m["alv-von-pro"] = {
"Volta-Niger Purba",
116773820,
"alv-von",
"Latn",
type = "reconstructed",
}
m["apa-pro"] = {
"Apache Purba",
116773135,
"apa",
"Latn",
type = "reconstructed",
}
m["aql-pro"] = {
"Algik Purba",
18389588,
"aql",
"Latn",
type = "reconstructed",
sort_key = {remove_diacritics = "·"},
}
m["art-adu"] = {
"Adûni",
1232159,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-bel"] = {
"Kreol Belter",
108055510,
"art",
"Latn",
type = "appendix-constructed",
sort_key = {
remove_diacritics = c.acute,
from = {"ɒ"},
to = {"a"},
},
}
m["art-blk"] = {
"Bolak",
2909283,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-bsp"] = {
"Bahasa Hitam",
686210,
"art",
"Latn, Teng",
type = "appendix-constructed",
}
m["art-com"] = {
"Communicationssprache",
35227,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-dtk"] = {
"Dothraki",
2914733,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-elo"] = {
"Eloi",
nil,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-gld"] = {
"Goa'uld",
19823,
"art",
"Latn, Egyp, Mero",
type = "appendix-constructed",
}
m["art-lap"] = {
"Lapine",
6488195,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-man"] = {
"Mandalorian",
54289,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-mun"] = {
"Mundolinco",
851355,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-nav"] = {
"Naʼvi",
316939,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-vlh"] = {
"Valyria Tinggi",
64483808,
"art",
"Latn",
type = "appendix-constructed",
}
m["ath-nic"] = {
"Nicola",
20609,
"ath-nor",
"Latn",
}
m["ath-pro"] = {
"Athabaska Purba",
104841722,
"ath",
"Latn",
type = "reconstructed",
}
m["auf-pro"] = {
"Arawa Purba",
116773706,
"auf",
"Latn",
type = "reconstructed",
}
m["aus-alu"] = {
"Alungul",
16827670,
"aus-pmn",
"Latn",
}
m["aus-and"] = {
"Andjingith",
4754509,
"aus-pmn",
"Latn",
}
m["aus-ang"] = {
"Angkula",
16828520,
"aus-pmn",
"Latn",
}
m["aus-arn-pro"] = {
"Arnhem Purba",
116773720,
"aus-arn",
"Latn",
type = "reconstructed",
}
m["aus-bra"] = {
"Barranbinya",
4863220,
"aus-pmn",
"Latn",
}
m["aus-brm"] = {
"Barunggam",
4865914,
"aus-pmn",
"Latn",
}
m["aus-cww-pro"] = {
"New South Wales Tengah Purba",
116773199,
"aus-cww",
"Latn",
type = "reconstructed",
}
m["aus-dal-pro"] = {
"Daly Purba",
116773743,
"aus-dal",
"Latn",
type = "reconstructed",
}
m["aus-guw"] = {
"Guwar",
6652138,
"aus-pam",
"Latn",
}
m["aus-lsw"] = {
"Little Swanport",
6652138,
"qfa-unc",
"Latn",
}
m["aus-mbi"] = {
"Mbiywom",
6799701,
"aus-pmn",
"Latn",
}
m["aus-ngk"] = {
"Ngkoth",
7022405,
"aus-pmn",
"Latn",
}
m["aus-nyu-pro"] = {
"Nyulnyulan Purba",
116773797,
"aus-nyu",
"Latn",
type = "reconstructed",
}
m["aus-pam-pro"] = {
"Pama-Nyunga Purba",
33942,
"aus-pam",
"Latn",
type = "reconstructed",
}
m["aus-tul"] = {
"Tulua",
16938541,
"aus-pam",
"Latn",
}
m["aus-uwi"] = {
"Uwinymil",
7903995,
"aus-arn",
"Latn",
}
m["aus-wdj-pro"] = {
"Iwaidjan Purba",
116773767,
"aus-wdj",
"Latn",
type = "reconstructed",
}
m["aus-won"] = {
"Wong-gie",
nil,
"aus-pam",
"Latn",
}
m["aus-wul"] = {
"Wulguru",
8039196,
"aus-dyb",
"Latn",
}
m["aus-ynk"] = { -- kontras nny
"Yangkaal",
3913770,
"aus-tnk",
"Latn",
}
m["awd-amc-pro"] = {
"Amuesha-Chamicuro Purba",
nil,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-kmp-pro"] = {
"Kampa Purba",
nil,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-prw-pro"] = {
"Paresi-Waura Purba",
nil,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-ama"] = {
"Amarizana",
16827787,
"awd",
"Latn",
}
m["awd-ana"] = {
"Anauyá",
16828252,
"awd",
"Latn",
}
m["awd-apo"] = {
"Apolista",
16916645,
"awd",
"Latn",
}
m["awd-cab"] = {
"Cabre",
16850160,
"awd",
"Latn",
}
m["awd-gnu"] = {
"Guinau",
3504087,
"awd",
"Latn",
}
m["awd-kar"] = {
"Cariay",
16920253,
"awd",
"Latn",
}
m["awd-kaw"] = {
"Kawishana",
6379993,
"awd-nwk",
"Latn",
}
m["awd-kus"] = {
"Kustenau",
5196293,
"awd",
"Latn",
}
m["awd-man"] = {
"Manao",
6746920,
"awd",
"Latn",
}
m["awd-mar"] = {
"Marawan",
6755108,
"awd",
"Latn",
}
m["awd-mpr"] = {
"Maipure",
6736872,
"awd",
"Latn",
}
m["awd-mrt"] = {
"Mariaté",
16910017,
"awd-nwk",
"Latn",
}
m["awd-nwk-pro"] = {
"Nawiki Purba",
116773234,
"awd-nwk",
"Latn",
type = "reconstructed",
}
m["awd-pai"] = {
"Paikoneka",
128807835,
"awd",
"Latn",
}
m["awd-pas"] = {
"Pasé",
7143168,
"awd-nwk",
"Latn",
}
m["awd-pro"] = {
"Arawak Purba",
97573478,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-she"] = {
"Shebayo",
7492248,
"awd",
"Latn",
}
m["awd-taa-pro"] = {
"Ta-Arawak Purba",
116773282,
"awd-taa",
"Latn",
type = "reconstructed",
}
m["awd-wai"] = {
"Wainumá",
16910017,
"awd-nwk",
"Latn",
}
m["awd-war"] = {
"Warekena Kuno",
105320180,
"awd-nwk",
"Latn",
}
m["awd-yum"] = {
"Yumana",
8061062,
"awd-nwk",
"Latn",
}
m["azc-caz"] = {
"Cazcan",
5055514,
"azc",
"Latn",
}
m["azc-cup-pro"] = {
"Cupan Purba",
116773738,
"azc-cup",
"Latn",
type = "reconstructed",
}
m["azc-ktn"] = {
"Kitanemuk",
3197558,
"azc-tak",
"Latn",
}
m["azc-nah-pro"] = {
"Nahua Purba",
7251860,
"azc-nah",
"Latn",
type = "reconstructed",
}
m["azc-nic"] = {
"Nicoleño",
50241488,
"azc",
"Latn",
}
m["azc-num-pro"] = {
"Numik Purba",
116773247,
"azc-num",
"Latn",
type = "reconstructed",
}
m["azc-pro"] = {
"Uto-Aztek Purba",
96400333,
"azc",
"Latn",
type = "reconstructed",
}
m["azc-tak-pro"] = {
"Takik Purba",
116773283,
"azc-tak",
"Latn",
type = "reconstructed",
}
m["azc-tat"] = {
"Tataviam",
743736,
"azc",
"Latn",
}
m["ber-pro"] = {
"Berber Purba",
2855698,
"ber",
"Latn",
type = "reconstructed",
}
m["ber-fog"] = {
"Fogaha",
107610173,
"ber",
"Latn",
}
m["ber-zuw"] = {
"Zuwara",
4117169,
"ber",
"Latn",
}
m["bnt-bal"] = {
"Balong",
93935237,
"bnt-bbo",
"Latn",
}
m["bnt-bon"] = {
"Boma Nkuu",
nil,
"bnt",
"Latn",
}
m["bnt-boy"] = {
"Boma Yumu",
nil,
"bnt",
"Latn",
}
m["bnt-bwa"] = {
"Bwala",
128810345,
"bnt-tek",
"Latn",
}
m["bnt-cmw"] = {
"Chimwiini",
4958328,
"bnt-swh",
"Latn",
}
m["bnt-ind"] = {
"Indanga",
51412803,
"bnt",
"Latn",
}
m["bnt-lal"] = {
"Lala (Afrika Selatan)",
6480154,
"bnt-ngu",
"Latn",
}
m["bnt-mpi"] = {
"Mpiin",
93937013,
"bnt-bdz",
"Latn",
}
m["bnt-mpu"] = {
"Mpuono", -- jangan dikelirukan dengan Mbuun zmp
36056,
"bnt",
"Latn",
}
m["bnt-ngu-pro"] = {
"Nguni Purba",
961559,
"bnt-ngu",
"Latn",
type = "reconstructed",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.caron},
}
m["bnt-phu"] = {
"Phuthi",
33796,
"bnt-ngu",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute},
}
m["bnt-pro"] = {
"Bantu Purba",
3408025,
"bnt",
"Latn",
type = "reconstructed",
sort_key = "bnt-pro-sortkey",
}
m["bnt-sab-pro"] = {
"Sabaki Purba",
nil, -- Q2209395 ialah kod untuk keluarga Sabaki
"bnt-sab",
"Latn",
type = "reconstructed",
}
m["bnt-sbo"] = {
"Boma Selatan",
nil,
"bnt",
"Latn",
}
m["bnt-sts-pro"] = {
"Sotho-Tswana Purba",
116773278,
"bnt-sts",
"Latn",
type = "reconstructed",
}
m["btk-pro"] = {
"Batak Purba",
116773191,
"btk",
"Latn",
type = "reconstructed",
}
m["cau-abz-pro"] = {
"Abkhaz-Abaza Purba",
7251831,
"cau-abz",
"Latn",
type = "reconstructed",
}
m["cau-and-pro"] = {
"Andi Purba",
nil,
"cau-and",
"Latn",
type = "reconstructed",
}
m["cau-ava-pro"] = {
"Avar-Andi Purba",
116773187,
"cau-ava",
"Latn",
type = "reconstructed",
}
m["cau-cir-pro"] = {
"Circassia Purba",
7251838,
"cau-cir",
"Latn",
type = "reconstructed",
}
m["cau-drg-pro"] = {
"Dargwa Purba",
116773205,
"cau-drg",
"Latn",
type = "reconstructed",
}
m["cau-lzg-pro"] = {
"Lezghi Purba",
116773223,
"cau-lzg",
"Latn",
type = "reconstructed",
}
m["cau-nec-pro"] = {
"Kaukasia Timur Laut Purba",
116773244,
"cau-nec",
"Latn",
type = "reconstructed",
}
m["cau-nkh-pro"] = {
"Nakh Purba",
108032840,
"cau-nkh",
"Latn",
type = "reconstructed",
}
m["cau-nwc-pro"] = {
"Kaukasia Barat Laut Purba",
7251861,
"cau-nwc",
"Latn",
type = "reconstructed",
}
m["cau-tsz-pro"] = {
"Tsez Purba",
116773287,
"cau-tsz",
"Latn",
type = "reconstructed",
}
m["cba-ata"] = {
"Atanques",
4812783,
"cba",
"Latn",
}
m["cba-cat"] = {
"Catío Chibcha",
7083619,
"cba",
"Latn",
}
m["cba-dor"] = {
"Dorasque",
5297532,
"cba",
"Latn",
}
m["cba-dui"] = {
"Duit",
3041061,
"cba",
"Latn",
}
m["cba-hue"] = {
"Huetar",
35514,
"cba",
"Latn",
}
m["cba-nut"] = {
"Nutabe",
7070405,
"cba",
"Latn",
}
m["cba-pro"] = {
"Chibchan Purba",
116773203,
"cba",
"Latn",
type = "reconstructed",
}
m["ccs-pro"] = {
"Kartvelia Purba",
2608203,
"ccs",
"Latn",
type = "reconstructed",
strip_diacritics = {
from = {"q̣", "p̣", "ʓ", "ċ"},
to = {"q̇", "ṗ", "ʒ", "c̣"}
},
}
m["ccs-gzn-pro"] = {
"Georgia-Zan Purba",
23808119,
"ccs-gzn",
"Latn",
type = "reconstructed",
strip_diacritics = {
from = {"q̣", "p̣", "ʓ", "ċ"},
to = {"q̇", "ṗ", "ʒ", "c̣"}
},
}
m["cdc-cbm-pro"] = {
"Chadik Tengah Purba",
116773197,
"cdc-cbm",
"Latn",
type = "reconstructed",
}
m["cdc-mas-pro"] = {
"Masa Purba",
116773789,
"cdc-mas",
"Latn",
type = "reconstructed",
}
m["cdc-pro"] = {
"Chadik Purba",
116773201,
"cdc",
"Latn",
type = "reconstructed",
}
m["cdd-pro"] = {
"Caddoan Purba",
116773725,
"cdd",
"Latn",
type = "reconstructed",
}
m["cel-bry-pro"] = {
"Britonik Purba",
1248800,
"cel-bry",
"Latn, Polyt",
sort_key = {
Latn = "cel-bry-pro-sortkey",
},
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["cel-gal"] = {
"Gallaecia",
3094789,
"cel-his",
}
m["cel-gau"] = {
"Gaul",
29977,
"cel",
"Latn, Polyt, Ital",
strip_diacritics = {
Latn = {remove_diacritics = c.macron .. c.breve .. c.diaer},
},
sort_key = {
Latn = "cel-bry-pro-sortkey",
},
-- translit Ital dalam [[Module:scripts/data]]
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["cel-pro"] = {
"Keltik Purba",
653649,
"cel",
"Latn",
type = "reconstructed",
sort_key = "cel-pro-sortkey",
}
m["chi-pro"] = {
"Chimakuan Purba",
116773734,
"chi",
"Latn",
type = "reconstructed",
}
m["chm-pro"] = {
"Mari Purba",
116773788,
"chm",
"Latn",
type = "reconstructed",
}
m["cmc-pro"] = {
"Chamik Purba",
114793834,
"cmc",
"Latn",
type = "reconstructed",
}
m["crp-bip"] = {
"Pijin Basque-Iceland",
810378,
"crp",
"Latn",
ancestors = "eu",
}
m["crp-cpr"] = {
"Pijin Rusia-China",
nil,
"crp",
"Hani, Cyrl, Latn",
ancestors = "ru, zh",
translit = {Cyrl = "ru-translit"},
strip_diacritics = {
Cyrl = {remove_diacritics = c.acute .. c.grave .. c.macron},
},
}
m["crp-gep"] = {
"Pijin Greenland Barat",
17036301,
"crp",
"Latn",
ancestors = "kl",
}
m["crp-kia"] = {
"Pijin Jerman Kiautschou",
108314615,
"crp",
"Latn",
ancestors = "de",
}
m["crp-mar"] = {
"Bahasa Roh Maroon",
1093206,
"crp",
"Latn",
ancestors = "en",
}
m["crp-mpp"] = {
"Pijin Portugis Macau",
128804537,
"crp",
"Hant, Latn",
ancestors = "pt",
sort_key = {Hant = "Hani-sortkey"},
}
m["crp-rsn"] = {
"Russenorsk",
505125,
"crp",
"Cyrl, Latn",
ancestors = "nn, ru",
translit = {Cyrl = "ru-translit"},
}
m["crp-spp"] = {
"Pijin Ladang Samoa",
7409948,
"crp",
"Latn",
ancestors = "en",
}
m["crp-slb"] = {
"Inggeris Solombala",
7558525,
"crp",
"Cyrl, Latn",
ancestors = "en, ru",
translit = {Cyrl = "ru-translit"},
}
m["crp-tpr"] = {
"Pijin Rusia Taimyr",
16930506,
"crp",
"Cyrl",
ancestors = "ru",
translit = "ru-translit",
}
m["csu-bba-pro"] = {
"Bongo-Bagirmi Purba",
116773722,
"csu-bba",
"Latn",
type = "reconstructed",
}
m["csu-maa-pro"] = {
"Mangbetu Purba",
116773786,
"csu-maa",
"Latn",
type = "reconstructed",
}
m["csu-pro"] = {
"Sudan Tengah Purba",
116773730,
"csu",
"Latn",
type = "reconstructed",
}
m["csu-sar-pro"] = {
"Sara Purba",
116773809,
"csu-sar",
"Latn",
type = "reconstructed",
}
m["cus-ash"] = {
"Ashraaf",
4805855,
"cus-som",
"Latn",
}
m["cus-hec-pro"] = {
"Cushitic Timur Tanah Tinggi Purba",
116773761,
"cus-hec",
"Latn",
type = "reconstructed",
}
m["cus-som-pro"] = {
"Somaloid Purba",
nil,
"cus-som",
"Latn",
type = "reconstructed",
}
m["cus-sou-pro"] = {
"Cushitic Selatan Purba",
126081567,
"cus-sou",
"Latn",
type = "reconstructed",
}
m["cus-pro"] = {
"Cushitic Purba",
116773204,
"cus",
"Latn",
type = "reconstructed",
}
m["dmn-dam"] = {
"Dama (Sierra Leone)",
19601574,
"dmn",
"Latn",
}
m["dra-bry"] = {
"Beary",
1089116,
"qfa-mix",
"Mlym, Knda",
ancestors = "ml, tcy",
-- translit Knda dalam [[Module:scripts/data]]
-- translit Mlym dalam [[Module:scripts/data]]
}
m["dra-cen-pro"] = {
"Dravidia Tengah Purba",
nil,
"dra-cen",
"Latn",
type = "reconstructed",
}
m["dra-mkn"] = {
"Kannada Pertengahan",
128810572,
"dra-kan",
"Knda",
-- translit Knda dalam [[Module:scripts/data]]
}
m["dra-nor-pro"] = {
"Dravidia Utara Purba",
124433593,
"dra-nor",
"Latn",
type = "reconstructed",
}
m["dra-okn"] = {
"Kannada Kuno",
15723156,
"dra-kan",
"Knda",
-- translit Knda dalam [[Module:scripts/data]]
}
m["dra-ote"] = {
"Telugu Kuno",
126720868,
"dra-tel",
"Telu",
translit = "te-translit",
}
m["dra-pro"] = {
"Dravidia Purba",
1702853,
"dra",
"Latn",
type = "reconstructed",
}
m["dra-sdo-pro"] = {
"Dravidia Selatan I Purba",
104847952, -- "Proto-Dravidia Selatan" Wikipedia ialah Proto-Dravidia Selatan I dalam skema ini.
"dra-sdo",
"Latn",
type = "reconstructed",
}
m["dra-sdt-pro"] = {
"Dravidia Selatan II Purba",
128885257,
"dra-sdt",
"Latn",
type = "reconstructed",
}
m["dra-sou-pro"] = {
"Dravidia Selatan Purba",
128886121,
"dra-sou",
"Latn",
type = "reconstructed",
}
m["egx-dem"] = {
"Mesir Demotik",
36765,
"egx",
"Latn, Egyd, Polyt",
sort_key = {
Latn = {
remove_diacritics = "'%-%s",
from = {"ꜣ", "j", "e", "ꜥ", "y", "w", "b", "p", "f", "m", "n", "r", "l", "ḥ", "ḫ", "h̭", "ẖ", "h", "š", "s", "q", "k", "g", "ṱ", "ṯ", "t", "ḏ", "%.", "⸗"},
to = {p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8], p[9], p[10], p[11], p[12], p[13], p[15], p[16], p[16], p[17], p[14], p[19], p[18], p[20], p[21], p[22], p[23], p[24], p[23], p[25], p[26], p[26]}
},
},
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["dmn-pro"] = {
"Mande Purba",
116773785,
"dmn",
"Latn",
type = "reconstructed",
}
m["dmn-mdw-pro"] = {
"Mande Barat Purba",
116773822,
"dmn-mdw",
"Latn",
type = "reconstructed",
}
m["dru-pro"] = {
"Rukai Purba",
116773807,
"map",
"Latn",
type = "reconstructed",
}
m["ero-gsz"] = {
"Geshiza",
nil,
"ero",
"Latn",
}
m["ero-nya"] = {
"Nyagrong Minyag",
nil,
"ero",
"Latn",
}
m["ero-tau"] = {
"Stau",
nil,
"ero",
"Latn",
}
m["esx-esk-pro"] = {
"Eskimo Purba",
7251842,
"esx-esk",
"Latn",
type = "reconstructed",
}
m["esx-ink"] = {
"Inuktun",
1671647,
"esx-inu",
"Latn",
}
m["esx-inq"] = {
"Inuinnaqtun",
28070,
"esx-inu",
"Latn",
}
m["esx-inu-pro"] = {
"Inuit Purba",
60785588,
"esx-inu",
"Latn",
type = "reconstructed",
}
m["esx-pro"] = {
"Eskimo-Aleut Purba",
7251843,
"esx",
"Latn",
type = "reconstructed",
}
m["esx-tut"] = {
"Tunumiisut",
15665389,
"esx-inu",
"Latn",
}
m["euq-pro"] = {
"Basque Purba",
938011,
"euq",
"Latn",
type = "reconstructed",
}
m["gba-pro"] = {
"Gbaya Purba",
nil,
"gba",
"Latn",
type = "reconstructed",
}
m["gem-pro"] = {
"Jermanik Purba",
669623,
"gem",
"Latn",
type = "reconstructed",
sort_key = "gem-pro-sortkey",
}
m["gme-bur"] = {
"Burgundia",
47625,
"gme",
"Latn",
}
m["gme-cgo"] = {
"Goth Crimea",
36211,
"gme",
"Latn",
}
m["gmq-gut"] = {
"Gutnish",
1256646,
"gmq",
"Latn",
ancestors = "gmq-ogt",
}
m["gmq-jmk"] = {
"Jamtish",
35512,
"gmq-eas",
"Latn",
}
m["gmq-mno"] = {
"Norway Pertengahan",
3417070,
"gmq-wes",
"Latn",
}
m["gmq-oda"] = {
"Denmark Kuno",
12330003,
"gmq-eas",
"Latn, Runr",
strip_diacritics = {remove_diacritics = c.macron},
}
m["gmq-ogt"] = {
"Gutnish Kuno",
1133488,
"gmq",
"Latn, Runr",
ancestors = "non",
}
m["gmq-osw"] = {
"Sweden Kuno",
2417210,
"gmq-eas",
"Latn, Runr",
strip_diacritics = {remove_diacritics = c.macron},
}
m["gmq-pro"] = {
"Norse Purba",
1671294,
"gmq",
"Runr",
translit = "Runr-translit",
}
m["gmq-scy"] = {
"Scanian",
768017,
"gmq-eas",
"Latn",
}
m["gmw-bgh"] = {
"Bergish",
329030,
"gmw-frk",
"Latn",
}
m["gmw-cfr"] = {
"Franconia Tengah",
572197,
"gmw-hgm",
"Latn",
ancestors = "gmh",
wikimedia_codes = "ksh",
}
m["gmw-ecg"] = {
"Jerman Tengah Timur",
499344, -- merangkumi Q699284, Q152965
"gmw-hgm",
"Latn",
ancestors = "gmh",
}
m["gmw-fin"] = {
"Fingallian",
3072588,
"gmw-ian",
"Latn",
}
m["gmw-gts"] = {
"Gottscheerish",
533109,
"gmw-hgm",
"Latn",
ancestors = "bar",
}
m["gmw-jdt"] = {
"Belanda Jersey",
1687911,
"gmw-frk",
"Latn",
ancestors = "nl",
}
m["gmw-msc"] = {
"Scots Pertengahan",
3327000,
"gmw-ang",
"Latn",
ancestors = "enm-esc",
}
m["gmw-pro"] = {
"Jermanik Barat Purba",
78079021,
"gmw",
"Latn, Runr",
-- type = "reconstructed",
-- sebahagian besarnya tetapi tidak sepenuhnya direkonstruksi (seperti Proto-Norse); lihat BP Apr '24, tetapkan kembali kepada direkonstruksi (?) jika 'anti-asterisk' ditambah
sort_key = "gmw-pro-sortkey",
}
m["gmw-rfr"] = {
"Franconia Rhine",
707007,
"gmw-hgm",
"Latn",
ancestors = "gmh",
}
m["gmw-stm"] = {
"Schwaben Szatmár",
2223059,
"gmw-hgm",
"Latn",
ancestors = "swg",
}
m["gmw-tsx"] = {
"Saxon Transylvania",
260942,
"gmw-hgm",
"Latn",
ancestors = "gmw-cfr",
}
m["gmw-vog"] = {
"Jerman Volga",
312574,
"gmw-hgm",
"Latn",
ancestors = "gmw-rfr",
}
m["gmw-zps"] = {
"Jerman Zipser",
205548,
"gmw-hgm",
"Latn",
ancestors = "gmh",
}
m["gn-cls"] = {
"Guarani Klasik",
17478065,
"gn",
"Latn",
}
m["grk-cal"] = {
"Yunani Calabria",
1146398,
"grk",
"Latn, Grek",
ancestors = "grk-ita",
translit = {
Grek = "el-translit",
},
-- translit, display_text, strip_diacritics, sort_key Grek dalam [[Module:scripts/data]]
}
m["grk-ita"] = {
"Yunani Italiot",
19720507,
"grk",
"Latn, Grek",
ancestors = "gkm",
translit = {
Grek = "el-translit",
},
-- translit, display_text, strip_diacritics, sort_key Grek dalam [[Module:scripts/data]]
}
m["grk-mar"] = {
"Yunani Mariupol",
4400023,
"grk",
"Cyrl, Latn, Grek",
ancestors = "gkm",
translit = {
Cyrl = "grk-mar-translit",
Grek = "grk-mar-translit",
},
override_translit = true,
strip_diacritics = {
Cyrl = {remove_diacritics = c.acute},
},
-- translit, display_text, strip_diacritics, sort_key Grek dalam [[Module:scripts/data]]
}
m["grk-pro"] = {
"Hellenik Purba",
1231805,
"grk",
"Latn, Polyt",
type = "reconstructed",
sort_key = {Latn = {
from = {"ʰ", "ʷ"},
to = {"h", "w"},
remove_diacritics = c.grave .. c.acute .. c.macron .. c.breve .. c.caron .. c.CGJ
}},
display_text = {Latn = {
from = {"([dlLt])" .. c.caron},
to = {"%1" .. c.CGJ .. c.caron},
}},
strip_diacritics = {Latn = {
from = {"([dlLt])" .. c.caron},
to = {"%1" .. c.CGJ .. c.caron},
}},
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
-- NOTA: dahulunya tiada translit ditentukan untuk Polyt; mungkin ketinggalan secara tidak sengaja; jika tidak, tetapkan Polyt = false dalam
-- bahagian translit
}
m["hmn-pro"] = {
"Hmongik Purba",
116773210,
"hmn",
"Latn",
type = "reconstructed",
}
m["hmx-mie-pro"] = {
"Mienik Purba",
116773229,
"hmx-mie",
"Latn",
type = "reconstructed",
}
m["hmx-pro"] = {
"Hmong-Mien Purba",
7251846,
"hmx",
"Latn",
type = "reconstructed",
}
m["hyx-pro"] = {
"Armenia Purba",
3848498,
"hyx",
"Latn",
type = "reconstructed",
}
m["iir-nur-pro"] = {
"Nuristani Purba",
116773248,
"iir-nur",
"Latn",
type = "reconstructed",
}
m["iir-pro"] = {
"Indo-Iran Purba",
966439,
"iir",
"Latn",
type = "reconstructed",
}
m["ijo-pro"] = {
"Ijoid Purba",
116773766,
"ijo",
"Latn",
type = "reconstructed",
}
m["inc-apa"] = {
"Apabhramsa",
616419,
"inc-mid",
"Deva, Shrd, Sidd",
ancestors = "pra",
translit = {
Deva = "sa-translit",
-- translit Shrd dalam [[Module:scripts/data]]
-- translit Sidd dalam [[Module:scripts/data]]
},
}
m["inc-ash"] = {
"Prakrit Ashoka",
104854379,
"inc-mid",
"Brah, Khar",
ancestors = "sa",
translit = {
-- translit Brah dalam [[Module:scripts/data]]
Khar = "Khar-translit",
},
}
m["inc-dng-pro"] = {
"Dangari Purba",
nil,
"inc-dng",
"Latn",
type = "reconstructed",
}
m["inc-kam"] = {
"Prakrit Kamarupi",
6356097,
"inc-bas",
"Brah, Sidd",
-- translit Brah, Sidd dalam [[Module:scripts/data]]
}
m["inc-kho"] = {
"Kholosi",
24952008,
"inc-snd",
"Latn",
}
m["inc-khr"] = {
"Khortha",
13406670,
"inc-sad",
"Deva, Kthi",
translit = {
Deva = "bho-translit",
Kthi = "bho-Kthi-translit",
},
}
m["inc-krd-pro"] = {
"Kamta Purba",
128816843,
"inc-bas",
"Latn",
ancestors = "inc-kam",
type = "reconstructed",
}
m["inc-mas"] = {
"Assam Pertengahan",
128806836,
"inc-bas",
"as-Beng",
ancestors = "inc-oas",
translit = "inc-mas-translit",
}
m["inc-mbn"] = {
"Bengal Pertengahan",
113559927,
"inc-bas",
"Beng",
ancestors = "inc-obn",
translit = "inc-mbn-translit",
}
m["inc-mgu"] = {
"Gujarati Pertengahan",
24907429,
"inc-wes",
"Deva",
ancestors = "inc-ogu",
}
m["inc-mor"] = {
"Odia Pertengahan",
128810882,
"inc-eas",
"Orya",
ancestors = "inc-oor",
}
m["inc-oas"] = {
"Assam Awal",
85758237,
"inc-bas",
"as-Beng",
ancestors = "inc-kam",
translit = "inc-oas-translit",
}
m["inc-oaw"] = {
"Awadhi Kuno",
nil,
"inc-hie",
"Deva, Kthi, Aran",
strip_diacritics = {
from = {"هٔ", "ۂ"}, -- aksara "ۂ" kod U+06C2 kepada "ه" dan "هٔ" (U+0647 + U+0654) kepada "ه"
to = {"ہ", "ہ"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef
},
translit = {
Deva = "sa-translit",
Kthi = "sa-Kthi-translit",
Aran = "inc-ohi-translit",
},
}
m["inc-obn"] = {
"Bengal Kuno",
113559926,
"inc-bas",
"Beng",
}
m["inc-ogu"] = {
"Gujarati Kuno",
24907427,
"inc-wes",
"Deva",
translit = "sa-translit",
}
m["inc-ohi"] = {
"Hindi Kuno",
48767781,
"inc-hiw",
"Deva, Aran",
strip_diacritics = {
from = {"هٔ", "ۂ"}, -- aksara "ۂ" kod U+06C2 kepada "ه" dan "هٔ" (U+0647 + U+0654) kepada "ه"
to = {"ہ", "ہ"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef
},
translit = {
Deva = "sa-translit",
Aran = "inc-ohi-translit",
},
}
m["inc-oor"] = {
"Odia Kuno",
128807801,
"inc-eas",
"Orya",
}
m["inc-opa"] = {
"Punjabi Kuno",
115270971,
"inc-pan",
"Guru, Aran",
translit = {
Guru = "inc-opa-Guru-translit",
Aran = "pa-Aran-translit",
},
strip_diacritics = {remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun},
}
m["inc-pro"] = {
"Indo-Arya Purba",
23808344,
"inc",
"Latn",
type = "reconstructed",
}
m["inc-sar"] = {
"Sarazi",
85799728,
"him",
"Aran, Deva, Takr",
strip_diacritics = {
from = {"هٔ", "ۂ"}, -- aksara "ۂ" kod U+06C2 kepada "ه" dan "هٔ" (U+0647 + U+0654) kepada "ه"
to = {"ہ", "ہ"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef
},
translit = {
Aran = "ur-translit",
Deva = "hi-translit",
-- Takr = "Takr-translit",
},
}
m["ine-ana-pro"] = {
"Anatolia Purba",
7251833,
"ine-ana",
"Latn",
type = "reconstructed",
}
m["ine-bsl-pro"] = {
"Balto-Slavik Purba",
1703347,
"ine-bsl",
"Latn",
type = "reconstructed",
sort_key = {
from = {"[áā]", "[éēḗ]", "[íī]", "[óōṓ]", "[úū]", c.acute, c.macron, "ˀ"},
to = {"a", "e", "i", "o", "u"}
},
}
m["ine-kal"] = {
"Kalašma",
122770439,
"ine-ana",
"Xsux",
}
m["ine-pae"] = {
"Paeonia",
2705672,
"ine",
"Polyt",
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["ine-pro"] = {
"Indo-Eropah Purba",
37178,
"ine",
"Latn",
type = "reconstructed",
sort_key = {
from = {"[áā]", "[éēḗ]", "[íī]", "[óōṓ]", "[úū]", "ĺ", "ḿ", "ń", "ŕ", "ǵ", "ḱ", "ʰ", "ʷ", "₁", "₂", "₃", c.ringbelow, c.acute, c.macron},
to = {"a", "e", "i", "o", "u", "l", "m", "n", "r", "g'", "k'", "¯h", "¯w", "1", "2", "3"}
},
}
m["ine-toc-pro"] = {
"Tocharia Purba",
104841462,
"ine-toc",
"Latn",
type = "reconstructed",
}
m["xme-old"] = {
"Median Kuno",
36461,
"xme",
"Polyt, Latn",
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["xme-mid"] = {
"Median Pertengahan",
12836150,
"xme",
"Latn",
}
m["xme-ker"] = {
"Kermanik",
129850,
"xme",
"Arab, Latn, Hebr",
ancestors = "xme-mid",
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
}
m["xme-taf"] = {
"Tafreshi",
nil,
"xme",
"Arab, Latn",
ancestors = "xme-mid",
}
m["xme-ttc-pro"] = {
"Tatik Purba",
122973870,
"xme-ttc",
"Latn",
ancestors = "xme-mid",
}
m["xme-kls"] = {
"Kalasuri",
nil,
"xme-ttc",
ancestors = "xme-ttc-nor",
}
m["xme-klt"] = {
"Kilit",
3612452,
"xme-ttc",
"Cyrl", -- dan Arab?
}
m["xme-ott"] = {
"Tati Kuno",
434697,
"xme-ttc",
"Arab, Latn",
}
m["ira-kms-pro"] = {
"Komisenia Purba",
116773777,
"ira-kms",
"Latn",
type = "reconstructed",
}
m["ira-mpr-pro"] = {
"Medo-Parthia Purba",
116773227,
"ira-mpr",
"Latn",
type = "reconstructed",
}
m["ira-pat-pro"] = {
"Pathan Purba",
116773255,
"ira-pat",
"Latn",
type = "reconstructed",
}
m["ira-pro"] = {
"Iran Purba",
4167865,
"ira",
"Latn",
type = "reconstructed",
}
m["ira-zgr-pro"] = {
"Zaza-Gorani Purba",
116775031,
"ira-zgr",
"Latn",
type = "reconstructed",
}
m["xsc-pro"] = {
"Scythia Purba",
116773273,
"xsc",
"Latn",
type = "reconstructed",
}
m["xsc-sar-pro"] = {
"Sarmatia Purba",
116773249,
"xsc-sar",
"Latn",
type = "reconstructed",
}
m["xsc-skw-pro"] = {
"Saka-Wakhi Purba",
116773267,
"xsc-skw",
"Latn",
type = "reconstructed",
}
m["xsc-sak-pro"] = {
"Saka Purba",
116773264,
"xsc-sak",
"Latn",
type = "reconstructed",
}
m["ira-sym-pro"] = {
"Shughni-Yazghulami-Munji Purba",
116773813,
"ira-sym",
"Latn",
type = "reconstructed",
}
m["ira-sgi-pro"] = {
"Sanglechi-Ishkashimi Purba",
116773808,
"ira-sgi",
"Latn",
type = "reconstructed",
}
m["ira-mny-pro"] = {
"Munji-Yidgha Purba",
116773792,
"ira-mny",
"Latn",
type = "reconstructed",
}
m["ira-shy-pro"] = {
"Shughni-Yazghulami Purba",
116773812,
"ira-shy",
"Latn",
type = "reconstructed",
}
m["ira-shr-pro"] = {
"Shughni-Roshani Purba",
116773811,
"ira-shr",
"Latn",
type = "reconstructed",
}
m["ira-sgc-pro"] = {
"Sogdia Purba",
116773276,
"ira-sgc",
"Latn",
type = "reconstructed",
}
m["ira-wnj"] = {
"Vanji",
3398419,
"ira-shy",
"Latn",
}
m["iro-ere"] = {
"Erie",
5388365,
"iro-nor",
"Latn",
}
m["iro-min"] = {
"Mingo",
128531,
"iro-nor",
"Latn",
ietf_subtag = "i-mingo", -- tag IETF yang diwarisi
}
m["iro-nor-pro"] = {
"Iroquois Utara Purba",
116773242,
"iro-nor",
"Latn",
type = "reconstructed",
}
m["iro-pro"] = {
"Iroquois Purba",
7251852,
"iro",
"Latn",
type = "reconstructed",
}
m["itc-pro"] = {
"Italik Purba",
17102720,
"itc",
"Latn",
type = "reconstructed",
}
m["itc-psa"] = {
"Pra-Samnit",
7239186,
"itc-sbl",
"Ital, Polyt, Latn",
-- translit Ital dalam [[Module:scripts/data]] (NOTA: tidak hadir sebelum ini, mungkin ketinggalan secara tidak sengaja)
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["jpx-hcj"] = {
"Hachijō",
5637049,
"jpx",
"Jpan",
ancestors = "ojp-eas",
translit = s["jpx-translit"],
display_text = s["jpx-displaytext"],
strip_diacritics = s["jpx-stripdiacritics"],
sort_key = s["jpx-sortkey"],
}
m["jpx-pro"] = {
"Jepunik Purba",
3924309,
"jpx",
"Latn",
type = "reconstructed",
}
m["jpx-ryu-pro"] = {
"Ryukyu Purba",
56349069,
"jpx-ryu",
"Latn",
type = "reconstructed",
}
m["kar-pro"] = {
"Karen Purba",
85794783,
"kar",
"Latn",
type = "reconstructed",
}
m["kca-eas"] = {
"Khanty Timur",
30304622,
"kca",
"Cyrl",
translit = "kca-translit",
override_translit = true,
-- TODO sementara sehingga MediaWiki menyokong Unicode 16 (mungkin memerlukan kemas kini PHP dari pihak mereka)
sort_key = { Cyrl = { from = {""}, to = {""} } },
}
m["kca-nor"] = {
"Khanty Utara",
30304527,
"kca",
"Cyrl",
translit = "kca-translit",
override_translit = true,
-- TODO sementara sehingga MediaWiki menyokong Unicode 16 (mungkin memerlukan kemas kini PHP dari pihak mereka)
sort_key = { Cyrl = { from = {""}, to = {""} } },
}
m["kca-pro"] = {
"Khanty Purba",
127505171,
"kca",
"Latn",
type = "reconstructed",
}
m["kca-sou"] = {
"Khanty Selatan",
30304618,
"kca",
"Cyrl",
translit = "kca-translit",
override_translit = true,
}
m["khi-kho-pro"] = {
"Khoe Purba",
116773218,
"khi-kho",
"Latn",
type = "reconstructed",
}
m["khi-kun"] = {
"ǃKung",
32904,
"khi-kxa",
"Latn",
}
m["ko-ear"] = {
"Korea Moden Awal",
756014,
"qfa-kor",
"Kore",
ancestors = "okm",
translit = "okm-translit",
-- strip_diacritics Kore dalam [[Module:scripts/data]]
}
m["kro-pro"] = {
"Kru Purba",
116773778,
"kro",
"Latn",
type = "reconstructed",
}
m["ku-pro"] = {
"Kurdi Purba",
116773221,
"ku",
"Latn",
type = "reconstructed",
}
m["map-ata-pro"] = {
"Atayalik Purba",
116773151,
"map-ata",
"Latn",
type = "reconstructed",
}
m["map-bms"] = {
"Banyumasan",
33219,
"map",
"Latn, Java",
}
m["map-pro"] = {
"Austronesia Purba",
49230,
"map",
"Latn",
type = "reconstructed",
}
m["mis-hkl"] = {
"Hokkien Peranakan Kelantan",
108794818,
"qfa-mix",
ancestors = "nan-hbl, sou, mfa",
}
m["mis-idn"] = {
"Idiom Neutral",
35847,
"art",
"Latn",
type = "appendix-constructed",
}
m["mis-isa"] = {
"Isauria",
16956868,
nil,
-- "Xsux, Hluw, Latn",
}
m["mis-jie"] = {
"Jie",
124424186,
nil,
"Hani",
sort_key = "Hani-sortkey",
}
m["mis-jzh"] = {
"Jizhao",
45242758,
"qfa-bej",
"Latn",
}
m["mis-kas"] = {
"Kassite",
35612,
nil,
"Xsux",
}
m["mis-mmd"] = {
"Mimi Decorse",
6862206,
nil,
"Latn",
}
m["mis-mmn"] = {
"Mimi Nachtigal",
6862207,
nil,
"Latn",
}
m["mis-phi"] = {
"Filistin",
2230924,
nil,
"Phnx",
-- translit Phnx dalam [[Module:scripts/data]] (NOTA: tidak hadir sebelum ini, mungkin ketinggalan secara tidak sengaja)
}
m["mis-rou"] = {
"Rouran",
48816637,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-tdl"] = {
"Turdulia",
133176492,
}
m["mis-tdt"] = {
"Turdetania",
133176461,
}
m["mis-tnw"] = {
"Tangwang",
7683179,
"qfa-mix",
"Latn",
ancestors = "cmn, sce",
}
m["mis-tuh"] = {
"Tuyuhun",
48816625,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-tuo"] = {
"Tuoba",
48816629,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-wuh"] = {
"Wuhuan",
118976867,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-xbi"] = {
"Xianbei",
4448647,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-xnu"] = {
"Xiongnu",
10901674,
nil,
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mjg-mgl"] = {
"Mongghul",
53765528,
"mjg",
"Latn", -- juga Mong, Cyrl?
}
m["mjg-mgr"] = {
"Mangghuer",
56285392,
"mjg",
"Latn", -- juga Mong, Cyrl?
}
m["mkh-asl-pro"] = {
"Asli Purba",
55630680,
"mkh-asl",
"Latn",
type = "reconstructed",
}
m["mkh-ban-pro"] = {
"Bahnar Purba",
116773189,
"mkh-ban",
"Latn",
type = "reconstructed",
}
m["mkh-kat-pro"] = {
"Katuik Purba",
116773772,
"mkh-kat",
"Latn",
type = "reconstructed",
}
m["mkh-khm-pro"] = {
"Khmuik Purba",
116773774,
"mkh-khm",
"Latn",
type = "reconstructed",
}
m["mkh-kmr-pro"] = {
"Khmer Purba",
55630684,
"mkh-kmr",
"Latn",
type = "reconstructed",
}
m["mkh-mmn"] = {
"Mon Pertengahan",
121337926,
"mkh-mnc",
"Latn, Mymr", --dan juga Pallava
ancestors = "omx",
}
m["mkh-mnc-pro"] = {
"Monik Purba",
116773231,
"mkh-mnc",
"Latn",
type = "reconstructed",
}
m["mkh-mvi"] = {
"Vietnam Pertengahan",
9199,
"mkh-vie",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mkh-pal-pro"] = {
"Palaungik Purba",
104847372,
"mkh-pal",
"Latn",
type = "reconstructed",
}
m["mkh-pea-pro"] = {
"Pearik Purba",
116773804,
"mkh-pea",
"Latn",
type = "reconstructed",
}
m["mkh-pkn-pro"] = {
"Pakanik Purba",
116773803,
"mkh-pkn",
"Latn",
type = "reconstructed",
}
m["mkh-pro"] = { --Ini akan digabungkan ke dalam aav-pro 2015.
"Mon-Khmer Purba",
7251859,
"mkh",
"Latn",
type = "reconstructed",
}
m["mnw-tha"] = { -- Untuk dibuang.
"Mon Thailand",
nil,
"mkh-mnc",
"Mymr, Thai",
ancestors = "mkh-mmn",
sort_key = {
from = {"[%p]", "ျ", "ြ", "ွ", "ှ", "ၞ", "ၟ", "ၠ", "ၚ", "ဿ", "[็-๎]", "([เแโใไ])([ก-ฮ])ฺ?"},
to = {"", "္ယ", "္ရ", "္ဝ", "္ဟ", "္န", "္မ", "္လ", "င", "သ္သ", "", "%2%1"}
},
}
m["mkh-vie-pro"] = {
"Vietik Purba",
109432616,
"mkh-vie",
"Latn",
type = "reconstructed",
}
m["mns-cen"] = {
"Mansi Tengah",
128810384,
"mns",
"Cyrl",
translit = "mns-translit",
override_translit = true,
}
m["mns-nor"] = {
"Mansi Utara",
30304537,
"mns",
"Cyrl",
translit = "mns-translit",
override_translit = true,
}
m["mns-pro"] = {
"Mansi Purba",
128883093,
"mns",
"Latn",
type = "reconstructed",
}
m["mns-sou"] = {
"Mansi Selatan",
30304629,
"mns",
"Cyrl",
translit = "mns-translit",
override_translit = true,
}
m["mun-pro"] = {
"Munda Purba",
105102373,
"mun",
"Latn",
type = "reconstructed",
}
m["myn-chl"] = { -- peringkat selepas ''emy''
"Ch'olti'",
873995,
"myn",
"Latn",
}
m["myn-pro"] = {
"Maya Purba",
3321532,
"myn",
"Latn",
type = "reconstructed",
}
m["nai-ala"] = {
"Alazapa",
128810233,
nil,
"Latn",
}
m["nai-bay"] = {
"Bayogoula",
1563704,
nil,
"Latn",
}
m["nai-cal"] = {
"Calusa",
51782,
nil,
"Latn",
}
m["nai-chi"] = {
"Chiquimulilla",
25339627,
"nai-xin",
"Latn",
}
m["nai-chu-pro"] = {
"Chumash Purba",
116773736,
"nai-chu",
"Latn",
type = "reconstructed",
}
m["nai-cig"] = {
"Ciguayo",
20741700,
nil,
"Latn",
}
m["nai-ckn-pro"] = {
"Chinook Purba",
116773735,
"nai-ckn",
"Latn",
type = "reconstructed",
}
m["nai-guz"] = {
"Guazacapán",
19572028,
"nai-xin",
"Latn",
}
m["nai-hit"] = {
"Hitchiti",
1542882,
"nai-mus",
"Latn",
}
m["nai-ipa"] = {
"Ipai",
3027474,
"nai-yuc",
"Latn",
}
m["nai-jtp"] = {
"Jutiapa",
nil,
"nai-xin",
"Latn",
}
m["nai-jum"] = {
"Jumaytepeque",
25339626,
"nai-xin",
"Latn",
}
m["nai-kat"] = {
"Kathlamet",
6376639,
"nai-ckn",
"Latn",
}
m["nai-klp-pro"] = {
"Kalapuya Purba",
116773771,
"nai-klp",
"Latn",
type = "reconstructed",
}
m["nai-knm"] = {
"Konomihu",
3198734,
"nai-shs",
"Latn",
}
m["nai-kum"] = {
"Kumeyaay",
4910139,
"nai-yuc",
"Latn",
}
m["nai-mac"] = {
"Macoris",
21070851,
nil,
"Latn",
}
m["nai-mdu-pro"] = {
"Maidu Purba",
116773784,
"nai-mdu",
"Latn",
type = "reconstructed",
}
m["nai-miz-pro"] = {
"Mixe-Zoque Purba",
7251858,
"nai-miz",
"Latn",
type = "reconstructed",
}
m["nai-mus-pro"] = {
"Muskogi Purba",
116775368,
"nai-mus",
"Latn",
type = "reconstructed",
}
m["nai-nao"] = {
"Naolan",
6964594,
nil,
"Latn",
}
m["nai-nrs"] = {
"Shasta Sungai Baru",
7011254,
"nai-shs",
"Latn",
}
m["nai-okw"] = {
"Okwanuchu",
3350126,
"nai-shs",
"Latn",
}
m["nai-per"] = {
"Pericú",
3375369,
nil,
"Latn",
}
m["nai-pic"] = {
"Picuris",
7191257,
"nai-kta",
"Latn",
}
m["nai-plp-pro"] = {
"Penuti Penara Purba",
116773806,
"nai-plp",
"Latn",
type = "reconstructed",
}
m["nai-pom-pro"] = {
"Pomo Purba",
116773262,
"nai-pom",
"Latn",
type = "reconstructed",
}
m["nai-qng"] = {
"Quinigua",
36360,
nil,
"Latn",
}
m["nai-sca-pro"] = { -- PERHATIAN 'sio-pro' "Proto-Siouan" iaitu Proto-Sioux Barat
"Siouan-Catawba Purba",
116773275,
"nai-sca",
"Latn",
type = "reconstructed",
}
m["nai-sin"] = {
"Sinacantán",
24190249,
"nai-xin",
"Latn",
}
m["nai-sln"] = {
"Lenca Salvador",
3229434,
"nai-len",
"Latn",
}
m["nai-spt"] = {
"Sahaptin",
3833015,
"nai-shp",
"Latn",
}
m["nai-tap"] = {
"Tapachultec",
7684401,
"nai-miz",
"Latn",
}
m["nai-taw"] = {
"Tawasa",
7689233,
nil,
"Latn",
}
m["nai-teq"] = {
"Tequistlatec",
2964454,
"nai-tqn",
"Latn",
}
m["nai-tip"] = {
"Tipai",
3027471,
"nai-yuc",
"Latn",
}
m["nai-tot-pro"] = {
"Totozoquean Purba",
116773285,
"nai-tot",
"Latn",
type = "reconstructed",
}
m["nai-tsi-pro"] = {
"Tsimshianik Purba",
nil,
"nai-tsi",
"Latn",
type = "reconstructed",
}
m["nai-utn-pro"] = {
"Utik Purba",
116773290,
"nai-utn",
"Latn",
type = "reconstructed",
}
m["nai-wai"] = {
"Waikuri",
3118702,
nil,
"Latn",
}
m["nai-wji"] = {
"Jicaque Barat",
3178610,
"nai-jcq",
"Latn",
}
m["nai-yup"] = {
"Yupiltepeque",
25339628,
"nai-xin",
"Latn",
}
m["nan-dat"] = {
"Min Datian",
19855572,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-hbl"] = {
"Hokkien",
1624231,
"zhx-nan",
"Hants, Latn, Bopo, Kana",
wikimedia_codes = "zh-min-nan",
generate_forms = "zh-generateforms",
sort_key = {
Hani = "Hani-sortkey",
Kana = "Kana-sortkey"
},
}
m["nan-hlh"] = {
"Min Hailufeng",
120755728,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-lnx"] = {
"Min Longyan",
6674568,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-tws"] = {
"Teochew",
36759,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["nan-zhe"] = {
"Min Zhenan",
3846710,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-zsh"] = {
"Min Sanxiang",
7420769,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["ngf-bin-pro"] = {
"Binandere Purba",
137881672,
"ngf-bin",
"Latn",
type = "reconstructed",
}
m["ngf-pro"] = {
"Trans-New Guinea Purba",
85794785,
"ngf",
"Latn",
type = "reconstructed",
}
m["nic-bco-pro"] = {
"Benue-Congo Purba",
116773194,
"nic-bco",
"Latn",
type = "reconstructed",
}
m["nic-bod-pro"] = {
"Bantoid Purba",
116773190,
"nic-bod",
"Latn",
type = "reconstructed",
}
m["nic-eov-pro"] = {
"Oti-Volta Timur Purba",
116773753,
"nic-eov",
"Latn",
type = "reconstructed",
}
m["nic-gns-pro"] = {
"Gurunsi Purba",
116773759,
"nic-gns",
"Latn",
type = "reconstructed",
}
m["nic-grf-pro"] = {
"Grassfields Purba",
116773755,
"nic-grf",
"Latn",
type = "reconstructed",
}
m["nic-gur-pro"] = {
"Gur Purba",
116773758,
"nic-gur",
"Latn",
type = "reconstructed",
}
m["nic-jkn-pro"] = {
"Jukunoid Purba",
116773769,
"nic-jkn",
"Latn",
type = "reconstructed",
}
m["nic-lcr-pro"] = {
"Cross River Hilir Purba",
116773782,
"nic-lcr",
"Latn",
type = "reconstructed",
}
m["nic-ogo-pro"] = {
"Ogoni Purba",
116773799,
"nic-ogo",
"Latn",
type = "reconstructed",
}
m["nic-ovo-pro"] = {
"Oti-Volta Purba",
116773802,
"nic-ovo",
"Latn",
type = "reconstructed",
}
m["nic-plt-pro"] = {
"Plateau Purba",
116773805,
"nic-plt",
"Latn",
type = "reconstructed",
}
m["nic-pro"] = {
"Niger-Congo Purba",
108000748,
"nic",
"Latn",
type = "reconstructed",
}
m["nic-ubg-pro"] = {
"Ubangi Purba",
116773818,
"nic-ubg",
"Latn",
type = "reconstructed",
}
m["nic-ucr-pro"] = {
"Cross River Hulu Purba",
116773819,
"nic-ucr",
"Latn",
type = "reconstructed",
}
m["nic-vco-pro"] = {
"Volta-Congo Purba",
116773293,
"nic-vco",
"Latn",
type = "reconstructed",
}
m["njo-jgl"] = {
"Ao Chungli",
55607615,
"njo",
"Latn",
}
m["njo-mng"] = {
"Ao Mongsen",
85383221,
"njo",
"Latn",
}
m["nub-har"] = {
"Haraza",
19572059,
"nub",
"Arab, Latn",
}
m["nub-pro"] = {
"Nubia Purba",
116773246,
"nub",
"Latn",
type = "reconstructed",
}
m["omq-cha-pro"] = {
"Chatino Purba",
116773202,
"omq-cha",
"Latn",
type = "reconstructed",
}
m["omq-maz-pro"] = {
"Mazatec Purba",
116773790,
"omq-maz",
"Latn",
type = "reconstructed",
}
m["omq-mix-pro"] = {
"Mixtecan Purba",
21573423,
"omq-mix",
"Latn",
type = "reconstructed",
}
m["omq-mxt-pro"] = {
"Mixtec Purba",
21573424,
"omq-mxt",
"Latn",
type = "reconstructed",
}
m["omq-otp-pro"] = {
"Oto-Pamean Purba",
116773251,
"omq-otp",
"Latn",
type = "reconstructed",
}
m["omq-pro"] = {
"Oto-Manguean Purba",
33669,
"omq",
"Latn",
type = "reconstructed",
}
m["omq-sjq"] = {
"Chatino San Juan Quiahije",
138330751,
"omq-cha",
"Latn",
}
m["omq-tel"] = {
"Mixtec Teposcolula",
nil,
"omq-mxt",
"Latn",
}
m["omq-teo"] = {
"Chatino Teojomulco",
25340451,
"omq-cha",
"Latn",
}
m["omq-tri-pro"] = {
"Triqui Purba",
116773817,
"omq-tri",
"Latn",
type = "reconstructed",
}
m["omq-zap-pro"] = {
"Zapotecan Purba",
116773297,
"omq-zap",
"Latn",
type = "reconstructed",
}
m["omq-zpc-pro"] = {
"Zapotec Purba",
116773296,
"omq-zpc",
"Latn",
type = "reconstructed",
}
m["omv-aro-pro"] = {
"Aroid Purba",
116773721,
"omv-aro",
"Latn",
type = "reconstructed",
}
m["omv-diz-pro"] = {
"Dizoid Purba",
116773750,
"omv-diz",
"Latn",
type = "reconstructed",
}
m["omv-pro"] = {
"Omotik Purba",
116773800,
"omv",
"Latn",
type = "reconstructed",
}
m["oto-otm-pro"] = {
"Otomi Purba",
5908710,
"oto-otm",
"Latn",
type = "reconstructed",
}
m["oto-pro"] = {
"Otomian Purba",
116773252,
"oto",
"Latn",
type = "reconstructed",
}
m["paa-kmn"] = {
"Kómnzo",
18344310,
"paa-wko",
"Latn",
}
m["paa-kwn"] = {
"Kuwani",
6449056,
"qfa-unc", -- kurang dibuktikan, mungkin sama dengan atau berkaitan dengan Kalabra
"Latn",
}
m["paa-lei"] = {
"Leitre",
85776228,
"paa-isk",
}
m["paa-nha-pro"] = {
"Halmahera Utara Purba",
116773241,
"paa-nha",
"Latn",
type = "reconstructed"
}
m["paa-nun"] = {
"Nungon",
128807788,
"ngf-ynu",
"Latn",
}
m["phi-din"] = {
"Agta Dinapigue",
16945774,
"phi",
"Latn",
}
m["phi-kal-pro"] = {
"Kalamian Purba",
116773213,
"phi-kal",
"Latn",
type = "reconstructed",
}
m["phi-nag"] = {
"Agta Nagtipunan",
16966111,
"phi",
"Latn",
}
m["phi-pro"] = {
"Filipina Purba",
18204898,
"phi",
"Latn",
type = "reconstructed",
}
m["poz-abi"] = {
"Abai",
19570729,
"poz-san",
"Latn",
}
m["poz-bal"] = {
"Baliledo",
4850912,
"poz",
"Latn",
}
m["poz-btk-pro"] = {
"Bungku-Tolaki Purba",
116773724,
"poz-btk",
"Latn",
type = "reconstructed",
}
m["poz-cet-pro"] = {
"Melayu-Polinesia Tengah-Timur Purba",
2269883,
"poz-cet",
"Latn",
type = "reconstructed",
}
m["poz-hce-pro"] = {
"Halmahera-Cenderawasih Purba",
116773209,
"poz-hce",
"Latn",
type = "reconstructed",
}
m["poz-lgx-pro"] = {
"Lampungik Purba",
116773222,
"poz-lgx",
"Latn",
type = "reconstructed",
}
m["poz-mcm-pro"] = {
"Melayu-Chamic Purba",
116773225,
"poz-mcm",
"Latn",
type = "reconstructed",
}
m["poz-mic-pro"] = {
"Mikronesia Purba",
111939079,
"poz-mic",
"Latn",
type = "reconstructed",
}
m["poz-mly-pro"] = {
"Melayik Purba",
98057728,
"poz-mly",
"Latn",
type = "reconstructed",
}
m["poz-msa-pro"] = {
"Melayu-Sumbawa Purba",
116773226,
"poz-msa",
"Latn",
type = "reconstructed",
}
m["poz-nes"] = {
"Nese",
2157412,
"poz-vnc",
"Latn",
}
m["poz-oce-pro"] = {
"Oceania Purba",
141741,
"poz-oce",
"Latn",
type = "reconstructed",
}
m["poz-pcc-pro"] = {
"Pasifik Tengah Purba",
111962726,
"poz-pcc",
"Latn",
type = "reconstructed",
}
m["poz-pep-pro"] = {
"Polinesia Timur Purba",
113988745,
"poz-pep",
"Latn",
type = "reconstructed",
}
m["poz-pnp-pro"] = {
"Polinesia Teras Purba",
113988746,
"poz-pnp",
"Latn",
type = "reconstructed",
}
m["poz-pol-pro"] = {
"Polinesia Purba",
1658709,
"poz-pol",
"Latn",
type = "reconstructed",
}
m["poz-pro"] = {
"Melayu-Polinesia Purba",
3832960,
"poz",
"Latn",
type = "reconstructed",
}
m["poz-sml"] = {
"Melayu Sarawak",
4251702,
"poz-mly",
"Latn, Arab",
}
m["poz-ssw-pro"] = {
"Sulawesi Selatan Purba",
116773279,
"poz-ssw",
"Latn",
type = "reconstructed",
}
m["poz-swa-pro"] = {
"Sarawak Utara Purba",
116773243,
"poz-swa",
"Latn",
type = "reconstructed",
}
m["poz-ter"] = {
"Melayu Terengganu",
4207412,
"poz-mly",
"Latn, Arab",
}
m["pqe-pro"] = {
"Melayu-Polinesia Timur Purba",
2269883,
"pqe",
"Latn",
type = "reconstructed",
}
m["pra-niy"] = {
"Prakrit Niya",
11991601,
"inc-mid",
"Khar",
ancestors = "inc-ash",
translit = "Khar-translit",
}
m["qfa-adm-pro"] = {
"Andaman Besar Purba",
116773756,
"qfa-adm",
"Latn",
type = "reconstructed",
}
m["qfa-bet-pro"] = {
"Be-Tai Purba",
116773193,
"qfa-bet",
"Latn",
type = "reconstructed",
}
m["qfa-cka-pro"] = {
"Chukotko-Kamchatka Purba",
7251837,
"qfa-cka",
"Latn",
type = "reconstructed",
}
m["qfa-hur-pro"] = {
"Hurro-Urartia Purba",
116773211,
"qfa-hur",
"Latn",
type = "reconstructed",
}
m["qfa-kad-pro"] = {
"Kadu Purba",
116773770,
"qfa-kad",
"Latn",
type = "reconstructed",
}
m["qfa-kms-pro"] = {
"Kam-Sui Purba",
55630682,
"qfa-kms",
"Latn",
type = "reconstructed",
}
m["qfa-kor-pro"] = {
"Korea Purba",
467883,
"qfa-kor",
"Latn",
type = "reconstructed",
}
m["qfa-kra-pro"] = {
"Kra Purba",
7251854,
"qfa-kra",
"Latn",
type = "reconstructed",
}
m["qfa-lic-pro"] = {
"Hlai Purba",
7251845,
"qfa-lic",
"Latn",
type = "reconstructed",
}
m["qfa-onb-pro"] = {
"Be Purba",
116773192,
"qfa-onb",
"Latn",
type = "reconstructed",
}
m["qfa-ong-pro"] = {
"Onga Purba",
116773801,
"qfa-ong",
"Latn",
type = "reconstructed",
}
m["qfa-tak-pro"] = {
"Kra-Dai Purba",
104901616,
"qfa-tak",
"Latn",
type = "reconstructed",
}
m["qfa-yen-pro"] = {
"Yenisei Purba",
27639,
"qfa-yen",
"Latn",
type = "reconstructed",
}
m["qfa-yuk-pro"] = {
"Yukaghir Purba",
116773294,
"qfa-yuk",
"Latn",
type = "reconstructed",
}
m["qwe-kch"] = {
"Kichwa",
1740805,
"qwe",
"Latn",
ancestors = "qu",
}
m["qwe-pro"] = {
"Quechua Purba",
5575757,
"qwe",
"Latn",
type = "reconstructed",
}
m["roa-ang"] = {
"Angevin",
56782,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-bbn"] = {
"Bourbonnais-Berrichon",
2899128,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-brg"] = {
"Bourguignon",
508332,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-can"] = {
"Cantabrian",
917021,
"roa-asl",
"Latn",
}
m["roa-cha"] = {
"Champenois",
430018,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-fcm"] = {
"Franc-Comtois",
510561,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-gal"] = {
"Gallo",
37300,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-gib"] = {
"Gallo-Italik Basilicata",
3094838,
"roa-git",
ancestors = "pms-old",
"Latn",
}
m["roa-gis"] = {
"Gallo-Italik Sicily",
2629019,
"roa-git",
"Latn",
ancestors = "pms-old",
}
m["roa-leo"] = {
"Leon",
34108,
"roa-asl",
"Latn",
}
m["roa-lor"] = {
"Lorrain",
671198,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-oca"] = {
"Catalonia Kuno",
15478520,
"roa-ocr",
"Latn",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.diaer .. c.cedilla .. "·"},
}
m["roa-ole"] = {
"Leon Kuno",
125977465,
"roa-asl",
"Latn",
}
m["roa-ona"] = {
"Navarro-Aragon Kuno",
2736184,
"roa-nar",
"Latn",
}
m["roa-opt"] = {
"Galicia-Portugis Kuno",
1072111,
"roa-gap",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ},
}
m["roa-orl"] = {
"Orléanais",
28497058,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-poi"] = {
"Poitevin-Saintongeais",
514123,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-tar"] = {
"Tarantino",
695526,
"roa-itr",
"Latn",
wikimedia_codes = "roa-tara",
}
m["sai-all"] = {
"Allentiac",
19570789,
"sai-hrp",
"Latn",
}
m["sai-and"] = {
"Andoquero",
16828359,
"sai-wit",
"Latn",
}
m["sai-ayo"] = {
"Ayomán",
16937754,
"sai-jir",
"Latn",
}
m["sai-bae"] = {
"Baenan",
3401998,
"qfa-unc", -- pupus, kurang dibuktikan; hanya dikenali melalui 9 perkataan
"Latn",
}
m["sai-bag"] = {
"Bagua",
5390321,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin bahasa Carib
"Latn",
}
m["sai-bet"] = {
"Betoi",
926551,
"qfa-iso",
"Latn",
}
m["sai-bor-pro"] = {
"Bora Purba",
nil,
"sai-bor",
"Latn",
}
m["sai-cac"] = {
"Cacán",
945482,
"qfa-unc", -- pupus, kurang dibuktikan; tiada konsensus mengenai pengelasan
"Latn",
}
m["sai-caq"] = {
"Caranqui",
2937753,
"sai-bar",
"Latn",
}
m["sai-car-pro"] = {
"Carib Purba",
116773196,
"sai-car",
"Latn",
type = "reconstructed",
}
m["sai-cat"] = {
"Catacao",
5051136,
"sai-ctc",
"Latn",
}
m["sai-cer-pro"] = {
"Cerrado Purba",
116773200,
"sai-cer",
"Latn",
type = "reconstructed",
}
m["sai-chi"] = {
"Chirino",
5390321,
"qfa-unc", -- pupus, hanya empat perkataan diketahui; mungkin berkaitan dengan Candoshi-Shapra (cbu)
"Latn",
}
m["sai-chn"] = {
"Chaná",
5072718,
"sai-crn",
"Latn",
}
m["sai-chp"] = {
"Chapacura",
5072884,
"sai-cpc",
"Latn",
}
m["sai-chr"] = {
"Charrua",
5086680,
"sai-crn",
"Latn",
}
m["sai-chu"] = {
"Churuya",
5118339,
"sai-guh",
"Latn",
}
m["sai-cje-pro"] = {
"Jê Tengah Purba",
116773198,
"sai-cje",
"Latn",
type = "reconstructed",
}
m["sai-cmg"] = {
"Comechingon",
6644203,
"qfa-unc", -- pupus, kurang dibuktikan; tiada konsensus mengenai pengelasan
"Latn",
}
m["sai-cno"] = {
"Chono",
5104704,
"qfa-unc", -- pupus, kurang dibuktikan; tiada konsensus mengenai pengelasan, mungkin palsu
"Latn",
}
m["sai-cnr"] = {
"Cañari",
5055572,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Chimuan atau Barbacoan
"Latn",
}
m["sai-coe"] = {
"Coeruna",
6425639,
"sai-wit",
"Latn",
}
m["sai-col"] = {
"Colán",
5141893,
"sai-ctc",
"Latn",
}
m["sai-cop"] = {
"Copallén",
5390321,
"qfa-unc", -- pupus, hanya empat perkataan dibuktikan; mungkin Cholonan
"Latn",
}
m["sai-crd"] = {
"Coroado Puri",
24191321,
"sai-mje",
"Latn",
}
m["sai-ctq"] = {
"Catuquinaru",
16858455,
"qfa-unc", -- pupus, kurang dibuktikan; kosa kata tidak menyerupai bahasa lain
"Latn",
}
m["sai-cul"] = {
"Culli",
2879660,
"qfa-unc", -- pupus, kurang dibuktikan; sering dianggap sebagai pencilan
"Latn",
}
m["sai-cva"] = {
"Cueva",
5192644,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Chocoan
"Latn",
}
m["sai-esm"] = {
"Esmeralda",
3058083,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin berkaitan dengan Yaruro
"Latn",
}
m["sai-ewa"] = {
"Ewarhuyana",
16898104,
nil,
"Latn",
}
m["sai-gam"] = {
"Gamela",
5403661,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin pencilan
"Latn",
}
m["sai-gay"] = {
"Gayón",
5528902,
"sai-jir",
"Latn",
}
m["sai-gmo"] = {
"Guamo",
5613495,
"qfa-unc", -- pupus; "Kaufman (1990) mendapati hubungan dengan bahasa-bahasa Chapacuran meyakinkan." [Wikipedia] Dianggap sebagai pencilan oleh Campbell (2024).
"Latn",
}
m["sai-gua"] = {
"Guachí",
5613172,
"sai-guc",
"Latn",
}
m["sai-gue"] = {
"Güenoa",
5626799,
"sai-crn",
"Latn",
}
m["sai-hau"] = {
"Haush",
3128376,
"sai-cho",
"Latn",
}
m["sai-jee-pro"] = {
"Jê Purba",
116773212,
"sai-jee",
"Latn",
type = "reconstructed",
}
m["sai-jko"] = {
"Jeikó",
6176527,
"sai-mje",
"Latn",
}
m["sai-jrj"] = {
"Jirajara",
6202966,
"sai-jir",
"Latn",
}
m["sai-kat"] = { -- kontras xoo, kzw, sai-xoc
"Katembri",
6375925,
"qfa-unc", -- pupus, kurang dibuktikan; "Kaufman (1990) telah menghubungkannya dengan bahasa Taruma yang hampir pupus, walaupun ini tidak diterima oleh sarjana lain." [Wikipedia]
"Latn",
}
m["sai-mal"] = {
"Malalí",
6741212,
"sai-mje", -- dianggap sebagai bahasa Maxakalían yang paling divergen (subbahagian kepada Macro-Jê), yang mana kami tiada entri
"Latn",
}
m["sai-mar"] = {
"Maratino",
6755055,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Uto-Aztecan
"Latn",
}
m["sai-mat"] = {
"Matanawi",
6786047,
"qfa-unc", -- pupus; sama ada pencilan atau berkait jauh dengan bahasa-bahasa Muran; Campbell (2024) menyenarainya sebagai pencilan, Glottolog memberikannya sebagai tidak terkelas
"Latn",
}
m["sai-mcn"] = {
"Mocana",
3402048,
"qfa-unc", -- pupus, kurang dibuktikan; diberikan sebagai sebahagian daripada bahasa Malibu (pengumpulan geografi; bukan klad)
"Latn",
}
m["sai-men"] = {
"Menien",
16890110,
"sai-mje",
"Latn",
}
m["sai-mil"] = {
"Millcayac",
19573012,
"sai-hrp",
"Latn",
}
m["sai-mlb"] = {
"Malibu",
134374036,
"qfa-unc", -- pupus, kurang dibuktikan; diberikan sebagai sebahagian daripada bahasa Malibu (pengumpulan geografi; bukan klad)
"Latn",
}
m["sai-msk"] = {
"Masakará",
6782426,
"sai-mje",
"Latn",
}
m["sai-muc"] = {
"Mucuchí",
6931290,
nil, -- lazimnya dianggap sebagai Timotean, yang mana kami tiada entri
"Latn",
}
m["sai-mue"] = {
"Muellama",
16886936,
"sai-bar",
"Latn",
}
m["sai-muz"] = {
"Muzo",
6644203,
"qfa-unc", -- bahasa pupus di Colombia, kurang dibuktikan; mungkin Pijao (Cariban)
"Latn",
}
m["sai-mys"] = {
"Maynas",
16919393,
"sai-cah", -- mengikut Campbell (2024); dahulu dianggap tidak terkelas
"Latn",
}
m["sai-nat"] = {
"Natú",
9006749,
"qfa-unc", -- pupus, kurang dibuktikan; "hanya Greenberg yang berani mengelaskannya".[Wikipedia, memetik Moseley, Christopher; Asher, R. E.; Tait, Mary (1994), Atlas of the world's languages]
"Latn",
}
m["sai-nje-pro"] = {
"Jê Utara Purba",
116773245,
"sai-nje",
"Latn",
type = "reconstructed",
}
m["sai-opo"] = {
"Opón",
7099152,
"sai-car",
"Latn",
}
m["sai-oto"] = {
"Otomaco",
16879234,
"sai-otm",
"Latn",
}
m["sai-pal"] = {
"Palta",
3042978,
"qfa-unc", -- pupus, tidak terkelas; mungkin Chicham
"Latn",
}
m["sai-pam"] = {
"Pamigua",
5908689,
"sai-tin",
"Latn",
}
m["sai-par"] = {
"Paratió",
16890038,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Xukuruan
"Latn",
}
m["sai-peb"] = {
"Peba",
3373890,
"sai-pey",
"Latn",
}
m["sai-pnz"] = {
"Panzaleo",
3123275,
"qfa-unc", -- pupus, tidak terkelas; mungkin Paezan
"Latn",
}
m["sai-prh"] = {
"Puruhá",
3410994,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin dalam keluarga dengan Cañari
"Latn",
}
m["sai-ptg"] = {
"Patagón",
128807870,
"sai-tar", -- pupus, hanya diketahui daripada 4 perkataan, yang mencadangkan susur galur Cariban (Campbell 2024)
"Latn",
}
m["sai-pur"] = {
"Purukotó",
7261622,
"sai-pem",
"Latn",
}
m["sai-pyg"] = {
"Payaguá",
7156643,
"sai-guc",
"Latn",
}
m["sai-pyk"] = {
"Pykobjê",
98113977,
"sai-nje",
"Latn",
}
m["sai-qmb"] = {
"Quimbaya",
7272043,
"qfa-unc", -- pupus, mungkin tidak wujud; sedikit perkataan yang diketahui
"Latn",
}
m["sai-qtm"] = {
"Quitemo",
7272651,
"sai-cpc",
"Latn",
}
m["sai-rab"] = {
"Rabona",
6644203,
"qfa-unc", -- pupus, kurang dibuktikan, kebanyakan nama tumbuhan; mungkin Candoshi-Shapra
"Latn",
}
m["sai-ram"] = {
"Ramanos",
16902824,
"qfa-unc", -- pupus, kurang dibuktikan, mungkin pencilan; mengikut Glottolog: "senarai perkataan yang kerdil ... tidak menunjukkan persamaan yang meyakinkan dengan bahasa sekeliling"
"Latn",
}
m["sai-sac"] = {
"Sácata",
5390321,
"qfa-unc", -- pupus, hanya 3 perkataan diketahui; mungkin Candoshí atau Arawak
"Latn",
}
m["sai-san"] = {
"Sanaviron",
16895999,
"qfa-unc", -- pupus, tidak terkelas; tiada konsensus mengenai pengelasan
"Latn",
}
m["sai-sap"] = {
"Sapará",
7420922,
"sai-car",
"Latn",
}
m["sai-sec"] = {
"Sechura",
7442912,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Catacaoan
"Latn",
}
m["sai-sin"] = {
"Sinúfana",
7525275,
"qfa-unc", -- hampir pupus, kurang dibuktikan; mungkin Chocoan
"Latn",
}
m["sai-sje-pro"] = {
"Jê Selatan Purba",
116773814,
"sai-sje",
"Latn",
type = "reconstructed",
}
m["sai-tab"] = {
"Tabancale",
5390321,
"qfa-unc", -- pupus, hanya 5 perkataan diketahui; tiada kaitan yang jelas, mungkin pencilan
"Latn",
}
m["sai-tal"] = {
"Tallán",
16910468,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Catacaoan
"Latn",
}
m["sai-tap"] = {
"Tapayuna",
30719984,
"sai-nje",
"Latn",
}
m["sai-tar-pro"] = {
"Taranoan Purba",
116773816,
"sai-tar",
"Latn",
type = "reconstructed",
}
m["sai-teu"] = {
"Teushen",
3519243,
"qfa-unc", -- mungkin pupus menjelang 1950-an; mungkin Chonan
"Latn",
}
m["sai-tim"] = {
"Timote",
7806995,
nil, -- mungkin dalam keluarga Timote kecil
"Latn",
}
m["sai-tpr"] = {
"Taparita",
7684460,
"sai-otm",
"Latn",
}
m["sai-trr"] = {
"Tarairiú",
7685313,
"qfa-unc", -- pupus, terlalu kurang dibuktikan untuk dikelaskan
"Latn",
}
m["sai-wai"] = {
"Waitaká",
16918610,
"qfa-unc", -- pupus, mungkin Purian
"Latn",
}
m["sai-way"] = {
"Wayumara",
7960726,
"sai-car",
"Latn",
}
m["sai-wit-pro"] = {
"Witotoan Purba",
116773823,
"sai-wit",
"Latn",
type = "reconstructed",
}
m["sai-wnm"] = {
"Wanham",
16879440,
"sai-cpc",
"Latn",
}
m["sai-xoc"] = { -- kontras xoo, kzw, sai-kat
"Xocó",
12953620,
"qfa-unc", -- pupus dan kurang dibuktikan; tidak jelas sama ada satu atau tiga bahasa
"Latn",
}
m["sai-yao"] = {
"Yao (Amerika Selatan)",
16979655,
"sai-ven",
"Latn",
}
m["sai-yar"] = { -- bukan keluarga yang sama dengan 'suy'
"Yarumá",
3505859,
"sai-pek",
"Latn",
}
m["sai-yri"] = {
"Yuri",
2669157,
"sai-tyu",
"Latn",
}
m["sai-yup"] = {
"Yupua",
8061430,
"sai-tuc",
"Latn",
}
m["sai-yur"] = {
"Yurumanguí",
1281291,
"qfa-unc", -- pupus, terlalu kurang dibuktikan untuk dikelaskan
"Latn",
}
m["sal-pro"] = {
"Salish Purba",
116773269,
"sal",
"Latn",
type = "reconstructed",
}
m["sdv-daj-pro"] = {
"Daju Purba",
116773739,
"sdv-daj",
"Latn",
type = "reconstructed",
}
m["sdv-eje-pro"] = {
"Jebel Timur Purba",
116773751,
"sdv-eje",
"Latn",
type = "reconstructed",
}
m["sdv-nil-pro"] = {
"Nilotik Purba",
116773794,
"sdv-nil",
"Latn",
type = "reconstructed",
}
m["sdv-nyi-pro"] = {
"Nyima Purba",
116773796,
"sdv-nyi",
"Latn",
type = "reconstructed",
}
m["sdv-tmn-pro"] = {
"Taman Purba",
116773815,
"sdv-tmn",
"Latn",
type = "reconstructed",
}
m["sel-nor"] = {
"Selkup Utara",
30304565,
"sel",
"Cyrl",
translit = "sel-nor-translit",
}
m["sel-pro"] = {
"Selkup Purba",
128884235,
"sel",
"Latn",
type = "reconstructed",
}
m["sel-sou"] = {
"Selkup Selatan",
30304639,
"sel",
"Cyrl",
translit = "sel-sou-translit",
}
m["sem-amm"] = {
"Ammon",
279181,
"sem-can",
"Phnx",
-- translit Phnx dalam [[Module:scripts/data]]
}
m["sem-amo"] = {
"Amor",
35941,
"sem-nwe",
"Xsux, Latn",
}
m["sem-cha"] = {
"Chaha",
35543,
"sem-eth",
"Ethi",
translit = "Ethi-translit",
}
m["sem-dad"] = {
"Dadan",
21838040,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-dum"] = {
"Dumait",
128810397,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-has"] = {
"Hasait",
3541433,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-his"] = {
"Hisma",
22948260,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-mhr"] = {
"Muher",
33743,
"sem-eth",
"Latn",
}
m["sem-pro"] = {
"Samiah Purba",
1658554,
"sem",
"Latn",
type = "reconstructed",
}
m["sem-saf"] = {
"Safait",
472586,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-sam"] = {
"Samal",
85847147,
"sem-nwe",
"Phnx",
-- translit Phnx dalam [[Module:scripts/data]]
}
m["sem-srb"] = {
"Arab Selatan Kuno",
35025,
"sem-osa",
"Sarb",
-- translit Sarb dalam [[Module:scripts/data]]
}
m["sem-tay"] = {
"Tayman",
24912301,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-tha"] = {
"Thamud",
843030,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-wes-pro"] = {
"Samiah Barat Purba",
98021726,
"sem-wes",
"Latn",
type = "reconstructed",
}
m["sio-pro"] = { -- PERHATIAN ini bukan 'nai-sca-pro' "Proto-Siouan-Catawban" iaitu Proto-Sioux Barat
"Sioux Purba",
34181,
"sio",
"Latn",
type = "reconstructed",
}
m["sit-aao-pro"] = {
"Naga Tengah Purba",
nil,
"sit-aao",
"Latn",
type = "reconstructed",
}
m["sit-bai-pro"] = {
"Bai Purba",
nil,
"sit-bai",
"Latn",
type = "reconstructed",
}
m["sit-ban"] = {
"Bangru",
56071779,
"sit-hrs",
"Latn",
}
m["sit-bdi-pro"] = {
"Bodish Purba",
nil,
"sit-bdi",
"Latn",
type = "reconstructed",
}
m["sit-bok"] = {
"Bokar",
4938727,
"sit-tan",
"Latn, Tibt",
override_translit = true,
-- translit, display_text, strip_diacritics, sort_key Tibt dalam [[Module:scripts/data]]
}
m["sit-cai"] = {
"Caijia",
5017528,
"sit-cln",
"Latn"
}
m["sit-cha"] = {
"Chairel",
5068066,
"sit-luu",
"Latn",
}
m["sit-ers-pro"] = {
"Ersu Purba",
nil,
"sit-ers",
"Latn",
type = "reconstructed",
}
m["sit-hrs-pro"] = {
"Hrusish Purba",
116773762,
"sit-hrs",
"Latn",
type = "reconstructed",
}
m["sit-jap"] = {
"Japhug",
3162245,
"sit-egy",
"Latn",
}
m["sit-kha-pro"] = {
"Kham Purba",
116773773,
"sit-kha",
"Latn",
type = "reconstructed",
}
m["sit-khb-pro"] = {
"Kho-Bwa Purba",
nil,
"sit-khb",
"Latn",
type = "reconstructed",
}
m["sit-khp-pro"] = {
"Puroik Purba",
nil,
"sit-khb",
"Latn",
type = "reconstructed",
}
m["sit-khw-pro"] = {
"Kho-Bwa Barat Purba",
nil,
"sit-khw",
"Latn",
type = "reconstructed",
}
m["sit-kon-pro"] = {
"Naga Utara Purba",
nil,
"sit-kon",
"Latn",
type = "reconstructed",
}
m["sit-liz"] = {
"Lizu",
6660653,
"sit-ers",
"Latn", -- dan Ersu Shaba
}
m["sit-lnj"] = {
"Longjia",
17096251,
"sit-cln",
"Latn"
}
m["sit-lrn"] = {
"Luren",
16946370,
"sit-cln",
"Latn"
}
m["sit-luu-pro"] = {
"Luish Purba",
116773783,
"sit-luu",
"Latn",
type = "reconstructed",
}
m["sit-nas-pro"] = {
"Naish Purba",
nil,
"sit-nas",
"Latn",
type = "reconstructed",
}
m["sit-prn"] = {
"Puiron",
7259048,
"sit-zem",
}
m["sit-pro"] = {
"Sino-Tibet Purba",
24839178,
"sit",
"Latn",
type = "reconstructed",
}
m["sit-sit"] = {
"Situ",
19840830,
"sit-egy",
"Latn",
}
m["sit-tam-pro"] = {
"Tamang Purba",
117469295,
"sit-tam",
"Latn",
type = "reconstructed",
}
m["sit-tan-pro"] = {
"Tani Purba",
116773284,
"sit-tan",
"Latn", -- memerlukan pengesahan
type = "reconstructed",
}
m["sit-tgm"] = {
"Tangam",
17041370,
"sit-tan",
"Latn",
}
m["sit-tng-pro"] = {
"Tangkhul Purba",
nil,
"sit-tng",
"Latn",
type = "reconstructed",
}
m["sit-tos"] = {
"Tosu",
7827899,
"sit-ers",
"Latn", -- juga Ersu Shaba
}
m["sit-tsh"] = {
"Tshobdun",
19840950,
"sit-egy",
"Latn",
}
m["sit-zbu"] = {
"Zbu",
19841106,
"sit-egy",
"Latn",
}
m["sla-pro"] = {
"Slav Purba",
747537,
"sla",
"Latn",
type = "reconstructed",
strip_diacritics = {
remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron .. c.dgrave .. c.invbreve,
remove_exceptions = {'ś'},
},
sort_key = {
from = {"č", "ď", "ě", "ę", "ь", "ľ", "ň", "ǫ", "ř", "š", "ś", "ť", "ъ", "ž"},
to = {"c²", "d²", "e²", "e³", "i²", "l²", "nj", "o²", "r²", "s²", "s³", "t²", "u²", "z²"},
}
}
m["smi-pro"] = {
"Sami Purba",
7251862,
"smi",
"Latn",
type = "reconstructed",
sort_key = {
from = {"ā", "č", "δ", "[ëē]", "ŋ", "ń", "ō", "š", "θ", "%([^()]+%)"},
to = {"a", "c²", "d", "e", "n²", "n³", "o", "s²", "t²"}
},
}
m["son-pro"] = {
"Songhai Purba",
116773277,
"son",
"Latn",
type = "reconstructed",
}
m["sqj-pro"] = {
"Albania Purba",
18210846,
"sqj",
"Latn",
type = "reconstructed",
}
m["ssa-klk-pro"] = {
"Kuliak Purba",
116773779,
"ssa-klk",
"Latn",
type = "reconstructed",
}
m["ssa-kom-pro"] = {
"Koma Purba",
116773775,
"ssa-kom",
"Latn",
type = "reconstructed",
}
m["ssa-pro"] = {
"Nilo-Sahara Purba",
116773236,
"ssa",
"Latn",
type = "reconstructed",
}
m["syd-pro"] = {
"Samoyed Purba",
7251863,
"syd",
"Latn",
type = "reconstructed",
}
m["tai-pro"] = {
"Tai Purba",
6583709,
"tai",
"Latn",
type = "reconstructed",
}
m["tai-swe-pro"] = {
"Tai Barat Daya Purba",
116773280,
"tai-swe",
"Latn",
type = "reconstructed",
}
m["tbq-bdg-pro"] = {
"Bodo-Garo Purba",
116773195,
"tbq-bdg",
"Latn",
type = "reconstructed",
}
m["tbq-blg"] = {
"Bailang",
2879843,
"tbq-lob",
"Hani",
sort_key = "Hani-sortkey",
}
m["tbq-brm-pro"] = {
"Burma Purba",
nil,
"tbq-brm",
"Latn",
type = "reconstructed",
}
m["tbq-gkh"] = {
"Gokhy",
5578069,
"tbq-sil",
"Latn",
}
m["tbq-kuk-pro"] = {
"Kuki-Chin Purba",
116773220,
"tbq-kuk",
"Latn",
type = "reconstructed",
}
m["tbq-lal-pro"] = {
"Lalo Purba",
116773781,
"tbq-lal",
"Latn",
type = "reconstructed",
}
m["tbq-laz"] = {
"Laze",
17007626,
"sit-nas",
"Latn",
}
m["tbq-lob-pro"] = {
"Lolo-Burma Purba",
116773224,
"tbq-lob",
"Latn",
type = "reconstructed",
}
m["tbq-lol-pro"] = {
"Lolo Purba",
7251855,
"tbq-lol",
"Latn",
type = "reconstructed",
}
m["tbq-mil"] = {
"Milang",
6850761,
"sit-gsi",
"Deva, Latn",
}
m["tbq-mor"] = {
"Moran",
6909216,
"tbq-bdg",
"Latn",
}
m["tbq-ngo"] = {
"Ngochang",
56582,
"tbq-brm",
"Latn",
}
-- tbq-pro kini khusus etimologi
m["trk-dkh"] = {
"Dukhan",
12809273,
"trk-ssb",
"Latn, Cyrl, Mong",
-- translit, display_text dan strip_diacritics Mong dalam [[Module:scripts/data]]
}
-- Seperti yang diuraikan dalam ''Dīwān Lughāt al-Turk'' karya Mahmud al-Kashgari abad ke-11.
m["trk-eog"] = {
"Oghuz Kuno Awal",
nil,
"trk-ogz",
"Arab",
strip_diacritics = {Arab = "ar-stripdiacritics"},
}
m["trk-oat"] = {
"Turki Anatolia Kuno",
7083390,
"trk-ogz",
"Arab",
strip_diacritics = {Arab = "ar-stripdiacritics"},
ancestors = "trk-eog",
}
m["trk-pro"] = {
"Turkik Purba",
3657773,
"trk",
"Latn",
type = "reconstructed",
standard_chars = {
Latn = " ()-abdegiklmnoprstuxyzïöüāčēīĺŋōŕšūǖȫẹ" .. c.macron,
}
}
m["tup-gua-pro"] = {
"Tupi-Guarani Purba",
116773288,
"tup-gua",
"Latn",
type = "reconstructed",
}
m["tup-kab"] = {
"Kabishiana",
15302988,
"tup",
"Latn",
}
m["tup-kaw"] = {
"Kawahiva",
6346712,
"tup-gua",
"Latn",
}
m["tup-pro"] = {
"Tupi Purba",
10354700,
"tup",
"Latn",
type = "reconstructed",
}
m["tuw-alk"] = {
"Alchuka",
113553616,
"tuw-jrc",
"Latn, Hans",
sort_key = {Hans = "Hani-sortkey"},
}
m["tuw-bal"] = {
"Bala",
86730632,
"tuw-jrc",
"Latn, Hans",
sort_key = {Hans = "Hani-sortkey"},
}
m["tuw-kkl"] = {
"Kyakala",
118875708,
"tuw-jrc",
"Latn, Hans",
sort_key = {Hans = "Hani-sortkey"},
}
m["tuw-kli"] = {
"Kili",
6406892,
"tuw-ewe",
"Cyrl",
}
m["tuw-pro"] = {
"Tungus Purba",
85872335,
"tuw",
"Latn",
type = "reconstructed",
}
m["tuw-sol"] = {
"Solon",
30004,
"tuw-ewe",
}
m["urj-fin-pro"] = {
"Finnik Purba",
11883720,
"urj-fin",
"Latn",
type = "reconstructed",
}
m["urj-koo"] = {
"Komi Kuno",
86679962,
"kv",
"Perm, Cyrs",
translit = "urj-koo-translit",
-- strip_diacritics, sort_key Cyrs dalam [[Module:scripts/data]]; sebelum ini, strip_diacritics Cyrs tidak hadir
}
m["urj-kuk"] = {
"Kukkuzi",
107410460,
"urj-fin",
"Latn",
ancestors = "vot",
}
m["urj-kya"] = {
"Komi-Yazva",
2365210,
"kv",
"Cyrl",
translit = "kv-translit",
override_translit = true,
strip_diacritics = {remove_diacritics = c.acute},
}
m["urj-mdv-pro"] = {
"Mordvinik Purba",
116773232,
"urj-mdv",
"Latn",
type = "reconstructed",
}
m["urj-prm-pro"] = {
"Permik Purba",
116773257,
"urj-prm",
"Latn",
type = "reconstructed",
}
m["urj-pro"] = {
"Uralik Purba",
288765,
"urj",
"Latn",
type = "reconstructed",
}
m["urj-ugr-pro"] = {
"Ugrik Purba",
156631,
"urj-ugr",
"Latn",
type = "reconstructed",
}
m["xnd-pro"] = {
"Na-Dene Purba",
116773233,
"xnd",
"Latn",
type = "reconstructed",
}
m["xgn-pro"] = {
"Mongolia Purba",
2493677,
"xgn",
"Latn",
type = "reconstructed",
sort_key = {
from = {"č", "i", "ï", "ǰ", "ŋ", "ö", "š", "ü"},
to = {"c", "i" .. p[1], "i", "j", "n" .. p[1], "o" .. p[1], "s" .. p[1], "u" .. p[1]},
},
}
m["yok-bvy"] = {
"Yokuts Buena Vista",
4985474,
"yok",
"Latn",
}
m["yok-dly"] = {
"Yokuts Delta",
70923266,
"yok",
"Latn",
}
m["yok-gsy"] = {
"Yokuts Gashowu",
3098708,
"yok",
"Latn",
}
m["yok-kry"] = {
"Yokuts Sungai Kings",
6413014,
"yok",
"Latn",
}
m["yok-nvy"] = {
"Yokuts Lembah Utara",
85789777,
"yok",
"Latn",
}
m["yok-ply"] = {
"Yokuts Palewyami",
2387391,
"yok",
"Latn",
}
m["yok-svy"] = {
"Yokuts Lembah Selatan",
12642473,
"yok",
"Latn",
}
m["yok-tky"] = {
"Yokuts Tule-Kaweah",
7851988,
"yok",
"Latn",
}
m["ypk-pro"] = {
"Yupik Purba",
116773295,
"ypk",
"Latn",
type = "reconstructed",
}
m["yrk-for"] = {
"Nenets Hutan",
1295107,
"yrk",
"Cyrl",
translit = "yrk-for-translit",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.macron .. c.breve .. c.dotabove},
}
m["yrk-tun"] = {
"Nenets Tundra",
36452,
"yrk",
"Cyrl",
strip_diacritics = {
from = {"ӑ", "а̄", "э̇", "ӣ", "ы̄", "ӯ", "ю̄", "я̆", "я̄"},
to = {"а", "а", "э", "и", "ы", "у", "ю", "я", "я"},
},
translit = "yrk-tun-translit",
}
m["zhx-min-pro"] = {
"Min Purba",
19646347,
"zhx-min",
"Latn",
type = "reconstructed",
}
m["zhx-sht"] = {
"Tuhua Shaozhou",
1920769,
"zhx",
"Nshu, Hants",
generate_forms = "zh-generateforms",
sort_key = {Hani = "Hani-sortkey"},
}
m["zhx-sic"] = {
"Sichuan",
2278732,
"zhx-man",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["zhx-tai"] = {
"Taishan",
2208940,
"zhx-yue",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["zle-ono"] = {
"Novgorod Kuno",
162013,
"zle",
"Cyrs, Glag",
translit = {Cyrs = "Cyrs-translit", Glag = "Glag-translit"},
-- strip_diacritics, sort_key Cyrs dalam [[Module:scripts/data]]
}
m["zle-ort"] = {
"Ruthenia Kuno",
13211,
"zle",
"Arab, Cyrs, Latn",
ancestors = "orv",
translit = {
Cyrs = "zle-ort-translit",
Arab = "zle-ort-Arab-translit",
},
strip_diacritics = {
Cyrs = {
remove_diacritics = m_langdata.chars_substitutions["Cyrs_remove_diacritics"],
remove_exceptions = {"Ї", "ї"},
},
Arab = "ar-stripdiacritics",
},
-- sort_key Cyrs dalam [[Module:scripts/data]]
}
m["zls-chs"] = {
"Slavonic Gereja",
33251,
"zls",
"Cyrs, Glag, Latn",
ancestors = "cu",
translit = {
Cyrs = "Cyrs-translit",
Glag = "Glag-translit"
},
-- strip_diacritics, sort_key Cyrs dalam [[Module:scripts/data]]
}
m["zlw-ocs"] = {
"Czech Kuno",
593096,
"zlw",
"Latn",
}
m["zlw-opl"] = {
"Poland Kuno",
149838,
"zlw-lch",
"Latn",
strip_diacritics = {remove_diacritics = c.ringabove},
}
m["zlw-osk"] = {
"Slovak Kuno",
12776676,
"zlw",
"Latn",
}
m["zlw-slv"] = {
"Slovincia",
36822,
"zlw-pom",
"Latn",
strip_diacritics = {remove_diacritics = c.macron .. c.breve},
}
return require("Module:languages").finalizeData(m, "language")
r95hllndc2728j3vx9rejv8r25d6sid
373555
373549
2026-09-11T11:09:39Z
Hakimi97
2668
373555
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["aav-khs-pro"] = {
"Khasi Purba",
116773216,
"aav-khs",
"Latn",
type = "reconstructed",
}
m["aav-nic-pro"] = {
"Nicobar Purba",
116773793,
"aav-nic",
"Latn",
type = "reconstructed",
}
m["aav-pkl-pro"] = {
"Pnar-Khasi-Lyngngam Purba",
116773259,
"aav-pkl",
"Latn",
type = "reconstructed",
}
m["aav-pro"] = { -- mkh-pro akan digabungkan ke dalam ini
"Austroasia Purba",
116773186,
"aav",
"Latn",
type = "reconstructed",
}
m["afa-pro"] = {
"Afroasia Purba",
269125,
"afa",
"Latn",
type = "reconstructed",
}
m["alg-aga"] = {
"Agawam",
nil,
"alg-eas",
"Latn",
}
m["alg-pro"] = {
"Algonquian Purba",
7251834,
"alg",
"Latn",
type = "reconstructed",
sort_key = {remove_diacritics = "·"},
}
m["alv-ama"] = {
"Amasi",
4740400,
"nic-grs",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.macron},
}
m["alv-bgu"] = {
"Bainouk Gubeeher",
17002646,
"alv-bny",
"Latn",
}
m["alv-bua-pro"] = {
"Bua Purba",
116773723,
"alv-bua",
"Latn",
type = "reconstructed",
}
m["alv-cng-pro"] = {
"Cangin Purba",
116773726,
"alv-cng",
"Latn",
type = "reconstructed",
}
m["alv-edo-pro"] = {
"Edoid Purba",
116773206,
"alv-edo",
"Latn",
type = "reconstructed",
}
m["alv-fli-pro"] = {
"Fali Purba",
116773754,
"alv-fli",
"Latn",
type = "reconstructed",
}
m["alv-gbe-pro"] = {
"Gbe Purba",
116773208,
"alv-gbe",
"Latn",
type = "reconstructed",
}
m["alv-gng-pro"] = {
"Guang Purba",
116773757,
"alv-gng",
"Latn",
type = "reconstructed",
}
m["alv-gtm-pro"] = {
"Togo Tengah Purba",
116773732,
"alv-gtm",
"Latn",
type = "reconstructed",
}
m["alv-gwa"] = {
"Gwara",
16945580,
"nic-pla",
"Latn",
}
m["alv-hei-pro"] = {
"Heiban Purba",
116773760,
"alv-hei",
"Latn",
type = "reconstructed",
}
m["alv-ido-pro"] = {
"Idomoid Purba",
116773764,
"alv-ido",
"Latn",
type = "reconstructed",
}
m["alv-igb-pro"] = {
"Igboid Purba",
116773765,
"alv-igb",
"Latn",
type = "reconstructed",
}
m["alv-kwa-pro"] = {
"Kwa Purba",
116773780,
"alv-kwa",
"Latn",
type = "reconstructed",
}
m["alv-mum-pro"] = {
"Mumuye Purba",
116773791,
"alv-mum",
"Latn",
type = "reconstructed",
}
m["alv-nup-pro"] = {
"Nupoid Purba",
116773795,
"alv-nup",
"Latn",
type = "reconstructed",
}
m["alv-pro"] = {
"Atlantik-Congo Purba",
116732838,
"alv",
"Latn",
type = "reconstructed",
}
m["alv-edk-pro"] = {
"Edekiri Purba",
nil,
"alv-edk",
"Latn",
type = "reconstructed",
}
m["alv-yor-pro"] = {
"Yoruba Purba",
nil,
"alv-yor",
"Latn",
type = "reconstructed",
}
m["alv-yrd-pro"] = {
"Yoruboid Purba",
116773824,
"alv-yrd",
"Latn",
type = "reconstructed",
}
m["alv-von-pro"] = {
"Volta-Niger Purba",
116773820,
"alv-von",
"Latn",
type = "reconstructed",
}
m["apa-pro"] = {
"Apache Purba",
116773135,
"apa",
"Latn",
type = "reconstructed",
}
m["aql-pro"] = {
"Algik Purba",
18389588,
"aql",
"Latn",
type = "reconstructed",
sort_key = {remove_diacritics = "·"},
}
m["art-adu"] = {
"Adûni",
1232159,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-bel"] = {
"Kreol Belter",
108055510,
"art",
"Latn",
type = "appendix-constructed",
sort_key = {
remove_diacritics = c.acute,
from = {"ɒ"},
to = {"a"},
},
}
m["art-blk"] = {
"Bolak",
2909283,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-bsp"] = {
"Bahasa Hitam",
686210,
"art",
"Latn, Teng",
type = "appendix-constructed",
}
m["art-com"] = {
"Communicationssprache",
35227,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-dtk"] = {
"Dothraki",
2914733,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-elo"] = {
"Eloi",
nil,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-gld"] = {
"Goa'uld",
19823,
"art",
"Latn, Egyp, Mero",
type = "appendix-constructed",
}
m["art-lap"] = {
"Lapine",
6488195,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-man"] = {
"Mandalorian",
54289,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-mun"] = {
"Mundolinco",
851355,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-nav"] = {
"Naʼvi",
316939,
"art",
"Latn",
type = "appendix-constructed",
}
m["art-vlh"] = {
"Valyria Tinggi",
64483808,
"art",
"Latn",
type = "appendix-constructed",
}
m["ath-nic"] = {
"Nicola",
20609,
"ath-nor",
"Latn",
}
m["ath-pro"] = {
"Athabaska Purba",
104841722,
"ath",
"Latn",
type = "reconstructed",
}
m["auf-pro"] = {
"Arawa Purba",
116773706,
"auf",
"Latn",
type = "reconstructed",
}
m["aus-alu"] = {
"Alungul",
16827670,
"aus-pmn",
"Latn",
}
m["aus-and"] = {
"Andjingith",
4754509,
"aus-pmn",
"Latn",
}
m["aus-ang"] = {
"Angkula",
16828520,
"aus-pmn",
"Latn",
}
m["aus-arn-pro"] = {
"Arnhem Purba",
116773720,
"aus-arn",
"Latn",
type = "reconstructed",
}
m["aus-bra"] = {
"Barranbinya",
4863220,
"aus-pmn",
"Latn",
}
m["aus-brm"] = {
"Barunggam",
4865914,
"aus-pmn",
"Latn",
}
m["aus-cww-pro"] = {
"New South Wales Tengah Purba",
116773199,
"aus-cww",
"Latn",
type = "reconstructed",
}
m["aus-dal-pro"] = {
"Daly Purba",
116773743,
"aus-dal",
"Latn",
type = "reconstructed",
}
m["aus-guw"] = {
"Guwar",
6652138,
"aus-pam",
"Latn",
}
m["aus-lsw"] = {
"Little Swanport",
6652138,
"qfa-unc",
"Latn",
}
m["aus-mbi"] = {
"Mbiywom",
6799701,
"aus-pmn",
"Latn",
}
m["aus-ngk"] = {
"Ngkoth",
7022405,
"aus-pmn",
"Latn",
}
m["aus-nyu-pro"] = {
"Nyulnyulan Purba",
116773797,
"aus-nyu",
"Latn",
type = "reconstructed",
}
m["aus-pam-pro"] = {
"Pama-Nyunga Purba",
33942,
"aus-pam",
"Latn",
type = "reconstructed",
}
m["aus-tul"] = {
"Tulua",
16938541,
"aus-pam",
"Latn",
}
m["aus-uwi"] = {
"Uwinymil",
7903995,
"aus-arn",
"Latn",
}
m["aus-wdj-pro"] = {
"Iwaidjan Purba",
116773767,
"aus-wdj",
"Latn",
type = "reconstructed",
}
m["aus-won"] = {
"Wong-gie",
nil,
"aus-pam",
"Latn",
}
m["aus-wul"] = {
"Wulguru",
8039196,
"aus-dyb",
"Latn",
}
m["aus-ynk"] = { -- kontras nny
"Yangkaal",
3913770,
"aus-tnk",
"Latn",
}
m["awd-amc-pro"] = {
"Amuesha-Chamicuro Purba",
nil,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-kmp-pro"] = {
"Kampa Purba",
nil,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-prw-pro"] = {
"Paresi-Waura Purba",
nil,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-ama"] = {
"Amarizana",
16827787,
"awd",
"Latn",
}
m["awd-ana"] = {
"Anauyá",
16828252,
"awd",
"Latn",
}
m["awd-apo"] = {
"Apolista",
16916645,
"awd",
"Latn",
}
m["awd-cab"] = {
"Cabre",
16850160,
"awd",
"Latn",
}
m["awd-gnu"] = {
"Guinau",
3504087,
"awd",
"Latn",
}
m["awd-kar"] = {
"Cariay",
16920253,
"awd",
"Latn",
}
m["awd-kaw"] = {
"Kawishana",
6379993,
"awd-nwk",
"Latn",
}
m["awd-kus"] = {
"Kustenau",
5196293,
"awd",
"Latn",
}
m["awd-man"] = {
"Manao",
6746920,
"awd",
"Latn",
}
m["awd-mar"] = {
"Marawan",
6755108,
"awd",
"Latn",
}
m["awd-mpr"] = {
"Maipure",
6736872,
"awd",
"Latn",
}
m["awd-mrt"] = {
"Mariaté",
16910017,
"awd-nwk",
"Latn",
}
m["awd-nwk-pro"] = {
"Nawiki Purba",
116773234,
"awd-nwk",
"Latn",
type = "reconstructed",
}
m["awd-pai"] = {
"Paikoneka",
128807835,
"awd",
"Latn",
}
m["awd-pas"] = {
"Pasé",
7143168,
"awd-nwk",
"Latn",
}
m["awd-pro"] = {
"Arawak Purba",
97573478,
"awd",
"Latn",
type = "reconstructed",
}
m["awd-she"] = {
"Shebayo",
7492248,
"awd",
"Latn",
}
m["awd-taa-pro"] = {
"Ta-Arawak Purba",
116773282,
"awd-taa",
"Latn",
type = "reconstructed",
}
m["awd-wai"] = {
"Wainumá",
16910017,
"awd-nwk",
"Latn",
}
m["awd-war"] = {
"Warekena Kuno",
105320180,
"awd-nwk",
"Latn",
}
m["awd-yum"] = {
"Yumana",
8061062,
"awd-nwk",
"Latn",
}
m["azc-caz"] = {
"Cazcan",
5055514,
"azc",
"Latn",
}
m["azc-cup-pro"] = {
"Cupan Purba",
116773738,
"azc-cup",
"Latn",
type = "reconstructed",
}
m["azc-ktn"] = {
"Kitanemuk",
3197558,
"azc-tak",
"Latn",
}
m["azc-nah-pro"] = {
"Nahua Purba",
7251860,
"azc-nah",
"Latn",
type = "reconstructed",
}
m["azc-nic"] = {
"Nicoleño",
50241488,
"azc",
"Latn",
}
m["azc-num-pro"] = {
"Numik Purba",
116773247,
"azc-num",
"Latn",
type = "reconstructed",
}
m["azc-pro"] = {
"Uto-Aztek Purba",
96400333,
"azc",
"Latn",
type = "reconstructed",
}
m["azc-tak-pro"] = {
"Takik Purba",
116773283,
"azc-tak",
"Latn",
type = "reconstructed",
}
m["azc-tat"] = {
"Tataviam",
743736,
"azc",
"Latn",
}
m["ber-pro"] = {
"Berber Purba",
2855698,
"ber",
"Latn",
type = "reconstructed",
}
m["ber-fog"] = {
"Fogaha",
107610173,
"ber",
"Latn",
}
m["ber-zuw"] = {
"Zuwara",
4117169,
"ber",
"Latn",
}
m["bnt-bal"] = {
"Balong",
93935237,
"bnt-bbo",
"Latn",
}
m["bnt-bon"] = {
"Boma Nkuu",
nil,
"bnt",
"Latn",
}
m["bnt-boy"] = {
"Boma Yumu",
nil,
"bnt",
"Latn",
}
m["bnt-bwa"] = {
"Bwala",
128810345,
"bnt-tek",
"Latn",
}
m["bnt-cmw"] = {
"Chimwiini",
4958328,
"bnt-swh",
"Latn",
}
m["bnt-ind"] = {
"Indanga",
51412803,
"bnt",
"Latn",
}
m["bnt-lal"] = {
"Lala (Afrika Selatan)",
6480154,
"bnt-ngu",
"Latn",
}
m["bnt-mpi"] = {
"Mpiin",
93937013,
"bnt-bdz",
"Latn",
}
m["bnt-mpu"] = {
"Mpuono", -- jangan dikelirukan dengan Mbuun zmp
36056,
"bnt",
"Latn",
}
m["bnt-ngu-pro"] = {
"Nguni Purba",
961559,
"bnt-ngu",
"Latn",
type = "reconstructed",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.caron},
}
m["bnt-phu"] = {
"Phuthi",
33796,
"bnt-ngu",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute},
}
m["bnt-pro"] = {
"Bantu Purba",
3408025,
"bnt",
"Latn",
type = "reconstructed",
sort_key = "bnt-pro-sortkey",
}
m["bnt-sab-pro"] = {
"Sabaki Purba",
nil, -- Q2209395 ialah kod untuk keluarga Sabaki
"bnt-sab",
"Latn",
type = "reconstructed",
}
m["bnt-sbo"] = {
"Boma Selatan",
nil,
"bnt",
"Latn",
}
m["bnt-sts-pro"] = {
"Sotho-Tswana Purba",
116773278,
"bnt-sts",
"Latn",
type = "reconstructed",
}
m["btk-pro"] = {
"Batak Purba",
116773191,
"btk",
"Latn",
type = "reconstructed",
}
m["cau-abz-pro"] = {
"Abkhaz-Abaza Purba",
7251831,
"cau-abz",
"Latn",
type = "reconstructed",
}
m["cau-and-pro"] = {
"Andi Purba",
nil,
"cau-and",
"Latn",
type = "reconstructed",
}
m["cau-ava-pro"] = {
"Avar-Andi Purba",
116773187,
"cau-ava",
"Latn",
type = "reconstructed",
}
m["cau-cir-pro"] = {
"Circassia Purba",
7251838,
"cau-cir",
"Latn",
type = "reconstructed",
}
m["cau-drg-pro"] = {
"Dargwa Purba",
116773205,
"cau-drg",
"Latn",
type = "reconstructed",
}
m["cau-lzg-pro"] = {
"Lezghi Purba",
116773223,
"cau-lzg",
"Latn",
type = "reconstructed",
}
m["cau-nec-pro"] = {
"Kaukasia Timur Laut Purba",
116773244,
"cau-nec",
"Latn",
type = "reconstructed",
}
m["cau-nkh-pro"] = {
"Nakh Purba",
108032840,
"cau-nkh",
"Latn",
type = "reconstructed",
}
m["cau-nwc-pro"] = {
"Kaukasia Barat Laut Purba",
7251861,
"cau-nwc",
"Latn",
type = "reconstructed",
}
m["cau-tsz-pro"] = {
"Tsez Purba",
116773287,
"cau-tsz",
"Latn",
type = "reconstructed",
}
m["cba-ata"] = {
"Atanques",
4812783,
"cba",
"Latn",
}
m["cba-cat"] = {
"Catío Chibcha",
7083619,
"cba",
"Latn",
}
m["cba-dor"] = {
"Dorasque",
5297532,
"cba",
"Latn",
}
m["cba-dui"] = {
"Duit",
3041061,
"cba",
"Latn",
}
m["cba-hue"] = {
"Huetar",
35514,
"cba",
"Latn",
}
m["cba-nut"] = {
"Nutabe",
7070405,
"cba",
"Latn",
}
m["cba-pro"] = {
"Chibchan Purba",
116773203,
"cba",
"Latn",
type = "reconstructed",
}
m["ccs-pro"] = {
"Kartvelia Purba",
2608203,
"ccs",
"Latn",
type = "reconstructed",
strip_diacritics = {
from = {"q̣", "p̣", "ʓ", "ċ"},
to = {"q̇", "ṗ", "ʒ", "c̣"}
},
}
m["ccs-gzn-pro"] = {
"Georgia-Zan Purba",
23808119,
"ccs-gzn",
"Latn",
type = "reconstructed",
strip_diacritics = {
from = {"q̣", "p̣", "ʓ", "ċ"},
to = {"q̇", "ṗ", "ʒ", "c̣"}
},
}
m["cdc-cbm-pro"] = {
"Chadik Tengah Purba",
116773197,
"cdc-cbm",
"Latn",
type = "reconstructed",
}
m["cdc-mas-pro"] = {
"Masa Purba",
116773789,
"cdc-mas",
"Latn",
type = "reconstructed",
}
m["cdc-pro"] = {
"Chadik Purba",
116773201,
"cdc",
"Latn",
type = "reconstructed",
}
m["cdd-pro"] = {
"Caddoan Purba",
116773725,
"cdd",
"Latn",
type = "reconstructed",
}
m["cel-bry-pro"] = {
"Britonik Purba",
1248800,
"cel-bry",
"Latn, Polyt",
sort_key = {
Latn = "cel-bry-pro-sortkey",
},
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["cel-gal"] = {
"Gallaecia",
3094789,
"cel-his",
}
m["cel-gau"] = {
"Gaul",
29977,
"cel",
"Latn, Polyt, Ital",
strip_diacritics = {
Latn = {remove_diacritics = c.macron .. c.breve .. c.diaer},
},
sort_key = {
Latn = "cel-bry-pro-sortkey",
},
-- translit Ital dalam [[Module:scripts/data]]
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["cel-pro"] = {
"Keltik Purba",
653649,
"cel",
"Latn",
type = "reconstructed",
sort_key = "cel-pro-sortkey",
}
m["chi-pro"] = {
"Chimakuan Purba",
116773734,
"chi",
"Latn",
type = "reconstructed",
}
m["chm-pro"] = {
"Mari Purba",
116773788,
"chm",
"Latn",
type = "reconstructed",
}
m["cmc-pro"] = {
"Chamik Purba",
114793834,
"cmc",
"Latn",
type = "reconstructed",
}
m["crp-bip"] = {
"Pijin Basque-Iceland",
810378,
"crp",
"Latn",
ancestors = "eu",
}
m["crp-cpr"] = {
"Pijin Rusia-China",
nil,
"crp",
"Hani, Cyrl, Latn",
ancestors = "ru, zh",
translit = {Cyrl = "ru-translit"},
strip_diacritics = {
Cyrl = {remove_diacritics = c.acute .. c.grave .. c.macron},
},
}
m["crp-gep"] = {
"Pijin Greenland Barat",
17036301,
"crp",
"Latn",
ancestors = "kl",
}
m["crp-kia"] = {
"Pijin Jerman Kiautschou",
108314615,
"crp",
"Latn",
ancestors = "de",
}
m["crp-mar"] = {
"Bahasa Roh Maroon",
1093206,
"crp",
"Latn",
ancestors = "en",
}
m["crp-mpp"] = {
"Pijin Portugis Macau",
128804537,
"crp",
"Hant, Latn",
ancestors = "pt",
sort_key = {Hant = "Hani-sortkey"},
}
m["crp-rsn"] = {
"Russenorsk",
505125,
"crp",
"Cyrl, Latn",
ancestors = "nn, ru",
translit = {Cyrl = "ru-translit"},
}
m["crp-spp"] = {
"Pijin Ladang Samoa",
7409948,
"crp",
"Latn",
ancestors = "en",
}
m["crp-slb"] = {
"Inggeris Solombala",
7558525,
"crp",
"Cyrl, Latn",
ancestors = "en, ru",
translit = {Cyrl = "ru-translit"},
}
m["crp-tpr"] = {
"Pijin Rusia Taimyr",
16930506,
"crp",
"Cyrl",
ancestors = "ru",
translit = "ru-translit",
}
m["csu-bba-pro"] = {
"Bongo-Bagirmi Purba",
116773722,
"csu-bba",
"Latn",
type = "reconstructed",
}
m["csu-maa-pro"] = {
"Mangbetu Purba",
116773786,
"csu-maa",
"Latn",
type = "reconstructed",
}
m["csu-pro"] = {
"Sudan Tengah Purba",
116773730,
"csu",
"Latn",
type = "reconstructed",
}
m["csu-sar-pro"] = {
"Sara Purba",
116773809,
"csu-sar",
"Latn",
type = "reconstructed",
}
m["cus-ash"] = {
"Ashraaf",
4805855,
"cus-som",
"Latn",
}
m["cus-hec-pro"] = {
"Cushitic Timur Tanah Tinggi Purba",
116773761,
"cus-hec",
"Latn",
type = "reconstructed",
}
m["cus-som-pro"] = {
"Somaloid Purba",
nil,
"cus-som",
"Latn",
type = "reconstructed",
}
m["cus-sou-pro"] = {
"Cushitic Selatan Purba",
126081567,
"cus-sou",
"Latn",
type = "reconstructed",
}
m["cus-pro"] = {
"Cushitic Purba",
116773204,
"cus",
"Latn",
type = "reconstructed",
}
m["dmn-dam"] = {
"Dama (Sierra Leone)",
19601574,
"dmn",
"Latn",
}
m["dra-bry"] = {
"Beary",
1089116,
"qfa-mix",
"Mlym, Knda",
ancestors = "ml, tcy",
-- translit Knda dalam [[Module:scripts/data]]
-- translit Mlym dalam [[Module:scripts/data]]
}
m["dra-cen-pro"] = {
"Dravidia Tengah Purba",
nil,
"dra-cen",
"Latn",
type = "reconstructed",
}
m["dra-mkn"] = {
"Kannada Pertengahan",
128810572,
"dra-kan",
"Knda",
-- translit Knda dalam [[Module:scripts/data]]
}
m["dra-nor-pro"] = {
"Dravidia Utara Purba",
124433593,
"dra-nor",
"Latn",
type = "reconstructed",
}
m["dra-okn"] = {
"Kannada Kuno",
15723156,
"dra-kan",
"Knda",
-- translit Knda dalam [[Module:scripts/data]]
}
m["dra-ote"] = {
"Telugu Kuno",
126720868,
"dra-tel",
"Telu",
translit = "te-translit",
}
m["dra-pro"] = {
"Dravidia Purba",
1702853,
"dra",
"Latn",
type = "reconstructed",
}
m["dra-sdo-pro"] = {
"Dravidia Selatan I Purba",
104847952, -- "Proto-Dravidia Selatan" Wikipedia ialah Proto-Dravidia Selatan I dalam skema ini.
"dra-sdo",
"Latn",
type = "reconstructed",
}
m["dra-sdt-pro"] = {
"Dravidia Selatan II Purba",
128885257,
"dra-sdt",
"Latn",
type = "reconstructed",
}
m["dra-sou-pro"] = {
"Dravidia Selatan Purba",
128886121,
"dra-sou",
"Latn",
type = "reconstructed",
}
m["egx-dem"] = {
"Mesir Demotik",
36765,
"egx",
"Latn, Egyd, Polyt",
sort_key = {
Latn = {
remove_diacritics = "'%-%s",
from = {"ꜣ", "j", "e", "ꜥ", "y", "w", "b", "p", "f", "m", "n", "r", "l", "ḥ", "ḫ", "h̭", "ẖ", "h", "š", "s", "q", "k", "g", "ṱ", "ṯ", "t", "ḏ", "%.", "⸗"},
to = {p[1], p[2], p[3], p[4], p[5], p[6], p[7], p[8], p[9], p[10], p[11], p[12], p[13], p[15], p[16], p[16], p[17], p[14], p[19], p[18], p[20], p[21], p[22], p[23], p[24], p[23], p[25], p[26], p[26]}
},
},
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["dmn-pro"] = {
"Mande Purba",
116773785,
"dmn",
"Latn",
type = "reconstructed",
}
m["dmn-mdw-pro"] = {
"Mande Barat Purba",
116773822,
"dmn-mdw",
"Latn",
type = "reconstructed",
}
m["dru-pro"] = {
"Rukai Purba",
116773807,
"map",
"Latn",
type = "reconstructed",
}
m["ero-gsz"] = {
"Geshiza",
nil,
"ero",
"Latn",
}
m["ero-nya"] = {
"Nyagrong Minyag",
nil,
"ero",
"Latn",
}
m["ero-tau"] = {
"Stau",
nil,
"ero",
"Latn",
}
m["esx-esk-pro"] = {
"Eskimo Purba",
7251842,
"esx-esk",
"Latn",
type = "reconstructed",
}
m["esx-ink"] = {
"Inuktun",
1671647,
"esx-inu",
"Latn",
}
m["esx-inq"] = {
"Inuinnaqtun",
28070,
"esx-inu",
"Latn",
}
m["esx-inu-pro"] = {
"Inuit Purba",
60785588,
"esx-inu",
"Latn",
type = "reconstructed",
}
m["esx-pro"] = {
"Eskimo-Aleut Purba",
7251843,
"esx",
"Latn",
type = "reconstructed",
}
m["esx-tut"] = {
"Tunumiisut",
15665389,
"esx-inu",
"Latn",
}
m["euq-pro"] = {
"Basque Purba",
938011,
"euq",
"Latn",
type = "reconstructed",
}
m["gba-pro"] = {
"Gbaya Purba",
nil,
"gba",
"Latn",
type = "reconstructed",
}
m["gem-pro"] = {
"Jermanik Purba",
669623,
"gem",
"Latn",
type = "reconstructed",
sort_key = "gem-pro-sortkey",
}
m["gme-bur"] = {
"Burgundia",
47625,
"gme",
"Latn",
}
m["gme-cgo"] = {
"Goth Crimea",
36211,
"gme",
"Latn",
}
m["gmq-gut"] = {
"Gutnish",
1256646,
"gmq",
"Latn",
ancestors = "gmq-ogt",
}
m["gmq-jmk"] = {
"Jamtish",
35512,
"gmq-eas",
"Latn",
}
m["gmq-mno"] = {
"Norway Pertengahan",
3417070,
"gmq-wes",
"Latn",
}
m["gmq-oda"] = {
"Denmark Kuno",
12330003,
"gmq-eas",
"Latn, Runr",
strip_diacritics = {remove_diacritics = c.macron},
}
m["gmq-ogt"] = {
"Gutnish Kuno",
1133488,
"gmq",
"Latn, Runr",
ancestors = "non",
}
m["gmq-osw"] = {
"Sweden Kuno",
2417210,
"gmq-eas",
"Latn, Runr",
strip_diacritics = {remove_diacritics = c.macron},
}
m["gmq-pro"] = {
"Norse Purba",
1671294,
"gmq",
"Runr",
translit = "Runr-translit",
}
m["gmq-scy"] = {
"Scanian",
768017,
"gmq-eas",
"Latn",
}
m["gmw-bgh"] = {
"Bergish",
329030,
"gmw-frk",
"Latn",
}
m["gmw-cfr"] = {
"Franconia Tengah",
572197,
"gmw-hgm",
"Latn",
ancestors = "gmh",
wikimedia_codes = "ksh",
}
m["gmw-ecg"] = {
"Jerman Tengah Timur",
499344, -- merangkumi Q699284, Q152965
"gmw-hgm",
"Latn",
ancestors = "gmh",
}
m["gmw-fin"] = {
"Fingallian",
3072588,
"gmw-ian",
"Latn",
}
m["gmw-gts"] = {
"Gottscheerish",
533109,
"gmw-hgm",
"Latn",
ancestors = "bar",
}
m["gmw-jdt"] = {
"Belanda Jersey",
1687911,
"gmw-frk",
"Latn",
ancestors = "nl",
}
m["gmw-msc"] = {
"Scots Pertengahan",
3327000,
"gmw-ang",
"Latn",
ancestors = "enm-esc",
}
m["gmw-pro"] = {
"Jermanik Barat Purba",
78079021,
"gmw",
"Latn, Runr",
-- type = "reconstructed",
-- sebahagian besarnya tetapi tidak sepenuhnya direkonstruksi (seperti Proto-Norse); lihat BP Apr '24, tetapkan kembali kepada direkonstruksi (?) jika 'anti-asterisk' ditambah
sort_key = "gmw-pro-sortkey",
}
m["gmw-rfr"] = {
"Franconia Rhine",
707007,
"gmw-hgm",
"Latn",
ancestors = "gmh",
}
m["gmw-stm"] = {
"Schwaben Szatmár",
2223059,
"gmw-hgm",
"Latn",
ancestors = "swg",
}
m["gmw-tsx"] = {
"Saxon Transylvania",
260942,
"gmw-hgm",
"Latn",
ancestors = "gmw-cfr",
}
m["gmw-vog"] = {
"Jerman Volga",
312574,
"gmw-hgm",
"Latn",
ancestors = "gmw-rfr",
}
m["gmw-zps"] = {
"Jerman Zipser",
205548,
"gmw-hgm",
"Latn",
ancestors = "gmh",
}
m["gn-cls"] = {
"Guarani Klasik",
17478065,
"gn",
"Latn",
}
m["grk-cal"] = {
"Yunani Calabria",
1146398,
"grk",
"Latn, Grek",
ancestors = "grk-ita",
translit = {
Grek = "el-translit",
},
-- translit, display_text, strip_diacritics, sort_key Grek dalam [[Module:scripts/data]]
}
m["grk-ita"] = {
"Yunani Italiot",
19720507,
"grk",
"Latn, Grek",
ancestors = "gkm",
translit = {
Grek = "el-translit",
},
-- translit, display_text, strip_diacritics, sort_key Grek dalam [[Module:scripts/data]]
}
m["grk-mar"] = {
"Yunani Mariupol",
4400023,
"grk",
"Cyrl, Latn, Grek",
ancestors = "gkm",
translit = {
Cyrl = "grk-mar-translit",
Grek = "grk-mar-translit",
},
override_translit = true,
strip_diacritics = {
Cyrl = {remove_diacritics = c.acute},
},
-- translit, display_text, strip_diacritics, sort_key Grek dalam [[Module:scripts/data]]
}
m["grk-pro"] = {
"Hellenik Purba",
1231805,
"grk",
"Latn, Polyt",
type = "reconstructed",
sort_key = {Latn = {
from = {"ʰ", "ʷ"},
to = {"h", "w"},
remove_diacritics = c.grave .. c.acute .. c.macron .. c.breve .. c.caron .. c.CGJ
}},
display_text = {Latn = {
from = {"([dlLt])" .. c.caron},
to = {"%1" .. c.CGJ .. c.caron},
}},
strip_diacritics = {Latn = {
from = {"([dlLt])" .. c.caron},
to = {"%1" .. c.CGJ .. c.caron},
}},
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
-- NOTA: dahulunya tiada translit ditentukan untuk Polyt; mungkin ketinggalan secara tidak sengaja; jika tidak, tetapkan Polyt = false dalam
-- bahagian translit
}
m["hmn-pro"] = {
"Hmongik Purba",
116773210,
"hmn",
"Latn",
type = "reconstructed",
}
m["hmx-mie-pro"] = {
"Mienik Purba",
116773229,
"hmx-mie",
"Latn",
type = "reconstructed",
}
m["hmx-pro"] = {
"Hmong-Mien Purba",
7251846,
"hmx",
"Latn",
type = "reconstructed",
}
m["hyx-pro"] = {
"Armenia Purba",
3848498,
"hyx",
"Latn",
type = "reconstructed",
}
m["iir-nur-pro"] = {
"Nuristani Purba",
116773248,
"iir-nur",
"Latn",
type = "reconstructed",
}
m["iir-pro"] = {
"Indo-Iran Purba",
966439,
"iir",
"Latn",
type = "reconstructed",
}
m["ijo-pro"] = {
"Ijoid Purba",
116773766,
"ijo",
"Latn",
type = "reconstructed",
}
m["inc-apa"] = {
"Apabhramsa",
616419,
"inc-mid",
"Deva, Shrd, Sidd",
ancestors = "pra",
translit = {
Deva = "sa-translit",
-- translit Shrd dalam [[Module:scripts/data]]
-- translit Sidd dalam [[Module:scripts/data]]
},
}
m["inc-ash"] = {
"Prakrit Ashoka",
104854379,
"inc-mid",
"Brah, Khar",
ancestors = "sa",
translit = {
-- translit Brah dalam [[Module:scripts/data]]
Khar = "Khar-translit",
},
}
m["inc-dng-pro"] = {
"Dangari Purba",
nil,
"inc-dng",
"Latn",
type = "reconstructed",
}
m["inc-kam"] = {
"Prakrit Kamarupi",
6356097,
"inc-bas",
"Brah, Sidd",
-- translit Brah, Sidd dalam [[Module:scripts/data]]
}
m["inc-kho"] = {
"Kholosi",
24952008,
"inc-snd",
"Latn",
}
m["inc-khr"] = {
"Khortha",
13406670,
"inc-sad",
"Deva, Kthi",
translit = {
Deva = "bho-translit",
Kthi = "bho-Kthi-translit",
},
}
m["inc-krd-pro"] = {
"Kamta Purba",
128816843,
"inc-bas",
"Latn",
ancestors = "inc-kam",
type = "reconstructed",
}
m["inc-mas"] = {
"Assam Pertengahan",
128806836,
"inc-bas",
"as-Beng",
ancestors = "inc-oas",
translit = "inc-mas-translit",
}
m["inc-mbn"] = {
"Bengal Pertengahan",
113559927,
"inc-bas",
"Beng",
ancestors = "inc-obn",
translit = "inc-mbn-translit",
}
m["inc-mgu"] = {
"Gujarati Pertengahan",
24907429,
"inc-wes",
"Deva",
ancestors = "inc-ogu",
}
m["inc-mor"] = {
"Odia Pertengahan",
128810882,
"inc-eas",
"Orya",
ancestors = "inc-oor",
}
m["inc-oas"] = {
"Assam Awal",
85758237,
"inc-bas",
"as-Beng",
ancestors = "inc-kam",
translit = "inc-oas-translit",
}
m["inc-oaw"] = {
"Awadhi Kuno",
nil,
"inc-hie",
"Deva, Kthi, Aran",
strip_diacritics = {
from = {"هٔ", "ۂ"}, -- aksara "ۂ" kod U+06C2 kepada "ه" dan "هٔ" (U+0647 + U+0654) kepada "ه"
to = {"ہ", "ہ"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef
},
translit = {
Deva = "sa-translit",
Kthi = "sa-Kthi-translit",
Aran = "inc-ohi-translit",
},
}
m["inc-obn"] = {
"Bengal Kuno",
113559926,
"inc-bas",
"Beng",
}
m["inc-ogu"] = {
"Gujarati Kuno",
24907427,
"inc-wes",
"Deva",
translit = "sa-translit",
}
m["inc-ohi"] = {
"Hindi Kuno",
48767781,
"inc-hiw",
"Deva, Aran",
strip_diacritics = {
from = {"هٔ", "ۂ"}, -- aksara "ۂ" kod U+06C2 kepada "ه" dan "هٔ" (U+0647 + U+0654) kepada "ه"
to = {"ہ", "ہ"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef
},
translit = {
Deva = "sa-translit",
Aran = "inc-ohi-translit",
},
}
m["inc-oor"] = {
"Odia Kuno",
128807801,
"inc-eas",
"Orya",
}
m["inc-opa"] = {
"Punjabi Kuno",
115270971,
"inc-pan",
"Guru, Aran",
translit = {
Guru = "inc-opa-Guru-translit",
Aran = "pa-Aran-translit",
},
strip_diacritics = {remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun},
}
m["inc-pro"] = {
"Indo-Arya Purba",
23808344,
"inc",
"Latn",
type = "reconstructed",
}
m["inc-sar"] = {
"Sarazi",
85799728,
"him",
"Aran, Deva, Takr",
strip_diacritics = {
from = {"هٔ", "ۂ"}, -- aksara "ۂ" kod U+06C2 kepada "ه" dan "هٔ" (U+0647 + U+0654) kepada "ه"
to = {"ہ", "ہ"},
remove_diacritics = c.fathatan .. c.dammatan .. c.kasratan .. c.fatha .. c.damma .. c.kasra .. c.shadda .. c.sukun .. c.nunghunna .. c.superalef
},
translit = {
Aran = "ur-translit",
Deva = "hi-translit",
-- Takr = "Takr-translit",
},
}
m["ine-ana-pro"] = {
"Anatolia Purba",
7251833,
"ine-ana",
"Latn",
type = "reconstructed",
}
m["ine-bsl-pro"] = {
"Balto-Slavik Purba",
1703347,
"ine-bsl",
"Latn",
type = "reconstructed",
sort_key = {
from = {"[áā]", "[éēḗ]", "[íī]", "[óōṓ]", "[úū]", c.acute, c.macron, "ˀ"},
to = {"a", "e", "i", "o", "u"}
},
}
m["ine-kal"] = {
"Kalašma",
122770439,
"ine-ana",
"Xsux",
}
m["ine-pae"] = {
"Paeonia",
2705672,
"ine",
"Polyt",
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["ine-pro"] = {
"Indo-Eropah Purba",
37178,
"ine",
"Latn",
type = "reconstructed",
sort_key = {
from = {"[áā]", "[éēḗ]", "[íī]", "[óōṓ]", "[úū]", "ĺ", "ḿ", "ń", "ŕ", "ǵ", "ḱ", "ʰ", "ʷ", "₁", "₂", "₃", c.ringbelow, c.acute, c.macron},
to = {"a", "e", "i", "o", "u", "l", "m", "n", "r", "g'", "k'", "¯h", "¯w", "1", "2", "3"}
},
}
m["ine-toc-pro"] = {
"Tocharia Purba",
104841462,
"ine-toc",
"Latn",
type = "reconstructed",
}
m["xme-old"] = {
"Median Kuno",
36461,
"xme",
"Polyt, Latn",
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["xme-mid"] = {
"Median Pertengahan",
12836150,
"xme",
"Latn",
}
m["xme-ker"] = {
"Kermanik",
129850,
"xme",
"Arab, Latn, Hebr",
ancestors = "xme-mid",
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
}
m["xme-taf"] = {
"Tafreshi",
nil,
"xme",
"Arab, Latn",
ancestors = "xme-mid",
}
m["xme-ttc-pro"] = {
"Tatik Purba",
122973870,
"xme-ttc",
"Latn",
ancestors = "xme-mid",
}
m["xme-kls"] = {
"Kalasuri",
nil,
"xme-ttc",
ancestors = "xme-ttc-nor",
}
m["xme-klt"] = {
"Kilit",
3612452,
"xme-ttc",
"Cyrl", -- dan Arab?
}
m["xme-ott"] = {
"Tati Kuno",
434697,
"xme-ttc",
"Arab, Latn",
}
m["ira-kms-pro"] = {
"Komisenia Purba",
116773777,
"ira-kms",
"Latn",
type = "reconstructed",
}
m["ira-mpr-pro"] = {
"Medo-Parthia Purba",
116773227,
"ira-mpr",
"Latn",
type = "reconstructed",
}
m["ira-pat-pro"] = {
"Pathan Purba",
116773255,
"ira-pat",
"Latn",
type = "reconstructed",
}
m["ira-pro"] = {
"Iran Purba",
4167865,
"ira",
"Latn",
type = "reconstructed",
}
m["ira-zgr-pro"] = {
"Zaza-Gorani Purba",
116775031,
"ira-zgr",
"Latn",
type = "reconstructed",
}
m["xsc-pro"] = {
"Scythia Purba",
116773273,
"xsc",
"Latn",
type = "reconstructed",
}
m["xsc-sar-pro"] = {
"Sarmatia Purba",
116773249,
"xsc-sar",
"Latn",
type = "reconstructed",
}
m["xsc-skw-pro"] = {
"Saka-Wakhi Purba",
116773267,
"xsc-skw",
"Latn",
type = "reconstructed",
}
m["xsc-sak-pro"] = {
"Saka Purba",
116773264,
"xsc-sak",
"Latn",
type = "reconstructed",
}
m["ira-sym-pro"] = {
"Shughni-Yazghulami-Munji Purba",
116773813,
"ira-sym",
"Latn",
type = "reconstructed",
}
m["ira-sgi-pro"] = {
"Sanglechi-Ishkashimi Purba",
116773808,
"ira-sgi",
"Latn",
type = "reconstructed",
}
m["ira-mny-pro"] = {
"Munji-Yidgha Purba",
116773792,
"ira-mny",
"Latn",
type = "reconstructed",
}
m["ira-shy-pro"] = {
"Shughni-Yazghulami Purba",
116773812,
"ira-shy",
"Latn",
type = "reconstructed",
}
m["ira-shr-pro"] = {
"Shughni-Roshani Purba",
116773811,
"ira-shr",
"Latn",
type = "reconstructed",
}
m["ira-sgc-pro"] = {
"Sogdia Purba",
116773276,
"ira-sgc",
"Latn",
type = "reconstructed",
}
m["ira-wnj"] = {
"Vanji",
3398419,
"ira-shy",
"Latn",
}
m["iro-ere"] = {
"Erie",
5388365,
"iro-nor",
"Latn",
}
m["iro-min"] = {
"Mingo",
128531,
"iro-nor",
"Latn",
ietf_subtag = "i-mingo", -- tag IETF yang diwarisi
}
m["iro-nor-pro"] = {
"Iroquois Utara Purba",
116773242,
"iro-nor",
"Latn",
type = "reconstructed",
}
m["iro-pro"] = {
"Iroquois Purba",
7251852,
"iro",
"Latn",
type = "reconstructed",
}
m["itc-pro"] = {
"Italik Purba",
17102720,
"itc",
"Latn",
type = "reconstructed",
}
m["itc-psa"] = {
"Pra-Samnit",
7239186,
"itc-sbl",
"Ital, Polyt, Latn",
-- translit Ital dalam [[Module:scripts/data]] (NOTA: tidak hadir sebelum ini, mungkin ketinggalan secara tidak sengaja)
-- translit, display_text, strip_diacritics, sort_key Polyt dalam [[Module:scripts/data]]
}
m["jpx-hcj"] = {
"Hachijō",
5637049,
"jpx",
"Jpan",
ancestors = "ojp-eas",
translit = s["jpx-translit"],
display_text = s["jpx-displaytext"],
strip_diacritics = s["jpx-stripdiacritics"],
sort_key = s["jpx-sortkey"],
}
m["jpx-pro"] = {
"Jepunik Purba",
3924309,
"jpx",
"Latn",
type = "reconstructed",
}
m["jpx-ryu-pro"] = {
"Ryukyu Purba",
56349069,
"jpx-ryu",
"Latn",
type = "reconstructed",
}
m["kar-pro"] = {
"Karen Purba",
85794783,
"kar",
"Latn",
type = "reconstructed",
}
m["kca-eas"] = {
"Khanty Timur",
30304622,
"kca",
"Cyrl",
translit = "kca-translit",
override_translit = true,
-- TODO sementara sehingga MediaWiki menyokong Unicode 16 (mungkin memerlukan kemas kini PHP dari pihak mereka)
sort_key = { Cyrl = { from = {""}, to = {""} } },
}
m["kca-nor"] = {
"Khanty Utara",
30304527,
"kca",
"Cyrl",
translit = "kca-translit",
override_translit = true,
-- TODO sementara sehingga MediaWiki menyokong Unicode 16 (mungkin memerlukan kemas kini PHP dari pihak mereka)
sort_key = { Cyrl = { from = {""}, to = {""} } },
}
m["kca-pro"] = {
"Khanty Purba",
127505171,
"kca",
"Latn",
type = "reconstructed",
}
m["kca-sou"] = {
"Khanty Selatan",
30304618,
"kca",
"Cyrl",
translit = "kca-translit",
override_translit = true,
}
m["khi-kho-pro"] = {
"Khoe Purba",
116773218,
"khi-kho",
"Latn",
type = "reconstructed",
}
m["khi-kun"] = {
"ǃKung",
32904,
"khi-kxa",
"Latn",
}
m["ko-ear"] = {
"Korea Moden Awal",
756014,
"qfa-kor",
"Kore",
ancestors = "okm",
translit = "okm-translit",
-- strip_diacritics Kore dalam [[Module:scripts/data]]
}
m["kro-pro"] = {
"Kru Purba",
116773778,
"kro",
"Latn",
type = "reconstructed",
}
m["ku-pro"] = {
"Kurdi Purba",
116773221,
"ku",
"Latn",
type = "reconstructed",
}
m["map-ata-pro"] = {
"Atayalik Purba",
116773151,
"map-ata",
"Latn",
type = "reconstructed",
}
m["map-bms"] = {
"Banyumasan",
33219,
"map",
"Latn, Java",
}
m["map-pro"] = {
"Austronesia Purba",
49230,
"map",
"Latn",
type = "reconstructed",
}
m["mis-hkl"] = {
"Hokkien Peranakan Kelantan",
108794818,
"qfa-mix",
ancestors = "nan-hbl, sou, mfa",
}
m["mis-idn"] = {
"Idiom Neutral",
35847,
"art",
"Latn",
type = "appendix-constructed",
}
m["mis-isa"] = {
"Isauria",
16956868,
nil,
-- "Xsux, Hluw, Latn",
}
m["mis-jie"] = {
"Jie",
124424186,
nil,
"Hani",
sort_key = "Hani-sortkey",
}
m["mis-jzh"] = {
"Jizhao",
45242758,
"qfa-bej",
"Latn",
}
m["mis-kas"] = {
"Kassite",
35612,
nil,
"Xsux",
}
m["mis-mmd"] = {
"Mimi Decorse",
6862206,
nil,
"Latn",
}
m["mis-mmn"] = {
"Mimi Nachtigal",
6862207,
nil,
"Latn",
}
m["mis-phi"] = {
"Filistin",
2230924,
nil,
"Phnx",
-- translit Phnx dalam [[Module:scripts/data]] (NOTA: tidak hadir sebelum ini, mungkin ketinggalan secara tidak sengaja)
}
m["mis-rou"] = {
"Rouran",
48816637,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-tdl"] = {
"Turdulia",
133176492,
}
m["mis-tdt"] = {
"Turdetania",
133176461,
}
m["mis-tnw"] = {
"Tangwang",
7683179,
"qfa-mix",
"Latn",
ancestors = "cmn, sce",
}
m["mis-tuh"] = {
"Tuyuhun",
48816625,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-tuo"] = {
"Tuoba",
48816629,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-wuh"] = {
"Wuhuan",
118976867,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-xbi"] = {
"Xianbei",
4448647,
"qfa-xgx",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mis-xnu"] = {
"Xiongnu",
10901674,
nil,
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mjg-mgl"] = {
"Mongghul",
53765528,
"mjg",
"Latn", -- juga Mong, Cyrl?
}
m["mjg-mgr"] = {
"Mangghuer",
56285392,
"mjg",
"Latn", -- juga Mong, Cyrl?
}
m["mkh-asl-pro"] = {
"Asli Purba",
55630680,
"mkh-asl",
"Latn",
type = "reconstructed",
}
m["mkh-ban-pro"] = {
"Bahnar Purba",
116773189,
"mkh-ban",
"Latn",
type = "reconstructed",
}
m["mkh-kat-pro"] = {
"Katuik Purba",
116773772,
"mkh-kat",
"Latn",
type = "reconstructed",
}
m["mkh-khm-pro"] = {
"Khmuik Purba",
116773774,
"mkh-khm",
"Latn",
type = "reconstructed",
}
m["mkh-kmr-pro"] = {
"Khmer Purba",
55630684,
"mkh-kmr",
"Latn",
type = "reconstructed",
}
m["mkh-mmn"] = {
"Mon Pertengahan",
121337926,
"mkh-mnc",
"Latn, Mymr", --dan juga Pallava
ancestors = "omx",
}
m["mkh-mnc-pro"] = {
"Monik Purba",
116773231,
"mkh-mnc",
"Latn",
type = "reconstructed",
}
m["mkh-mvi"] = {
"Vietnam Pertengahan",
9199,
"mkh-vie",
"Hani, Latn",
sort_key = {Hani = "Hani-sortkey"},
}
m["mkh-pal-pro"] = {
"Palaungik Purba",
104847372,
"mkh-pal",
"Latn",
type = "reconstructed",
}
m["mkh-pea-pro"] = {
"Pearik Purba",
116773804,
"mkh-pea",
"Latn",
type = "reconstructed",
}
m["mkh-pkn-pro"] = {
"Pakanik Purba",
116773803,
"mkh-pkn",
"Latn",
type = "reconstructed",
}
m["mkh-pro"] = { --Ini akan digabungkan ke dalam aav-pro 2015.
"Mon-Khmer Purba",
7251859,
"mkh",
"Latn",
type = "reconstructed",
}
m["mnw-tha"] = { -- Untuk dibuang.
"Mon Thailand",
nil,
"mkh-mnc",
"Mymr, Thai",
ancestors = "mkh-mmn",
sort_key = {
from = {"[%p]", "ျ", "ြ", "ွ", "ှ", "ၞ", "ၟ", "ၠ", "ၚ", "ဿ", "[็-๎]", "([เแโใไ])([ก-ฮ])ฺ?"},
to = {"", "္ယ", "္ရ", "္ဝ", "္ဟ", "္န", "္မ", "္လ", "င", "သ္သ", "", "%2%1"}
},
}
m["mkh-vie-pro"] = {
"Vietik Purba",
109432616,
"mkh-vie",
"Latn",
type = "reconstructed",
}
m["mns-cen"] = {
"Mansi Tengah",
128810384,
"mns",
"Cyrl",
translit = "mns-translit",
override_translit = true,
}
m["mns-nor"] = {
"Mansi Utara",
30304537,
"mns",
"Cyrl",
translit = "mns-translit",
override_translit = true,
}
m["mns-pro"] = {
"Mansi Purba",
128883093,
"mns",
"Latn",
type = "reconstructed",
}
m["mns-sou"] = {
"Mansi Selatan",
30304629,
"mns",
"Cyrl",
translit = "mns-translit",
override_translit = true,
}
m["mun-pro"] = {
"Munda Purba",
105102373,
"mun",
"Latn",
type = "reconstructed",
}
m["myn-chl"] = { -- peringkat selepas ''emy''
"Ch'olti'",
873995,
"myn",
"Latn",
}
m["myn-pro"] = {
"Maya Purba",
3321532,
"myn",
"Latn",
type = "reconstructed",
}
m["nai-ala"] = {
"Alazapa",
128810233,
nil,
"Latn",
}
m["nai-bay"] = {
"Bayogoula",
1563704,
nil,
"Latn",
}
m["nai-cal"] = {
"Calusa",
51782,
nil,
"Latn",
}
m["nai-chi"] = {
"Chiquimulilla",
25339627,
"nai-xin",
"Latn",
}
m["nai-chu-pro"] = {
"Chumash Purba",
116773736,
"nai-chu",
"Latn",
type = "reconstructed",
}
m["nai-cig"] = {
"Ciguayo",
20741700,
nil,
"Latn",
}
m["nai-ckn-pro"] = {
"Chinook Purba",
116773735,
"nai-ckn",
"Latn",
type = "reconstructed",
}
m["nai-guz"] = {
"Guazacapán",
19572028,
"nai-xin",
"Latn",
}
m["nai-hit"] = {
"Hitchiti",
1542882,
"nai-mus",
"Latn",
}
m["nai-ipa"] = {
"Ipai",
3027474,
"nai-yuc",
"Latn",
}
m["nai-jtp"] = {
"Jutiapa",
nil,
"nai-xin",
"Latn",
}
m["nai-jum"] = {
"Jumaytepeque",
25339626,
"nai-xin",
"Latn",
}
m["nai-kat"] = {
"Kathlamet",
6376639,
"nai-ckn",
"Latn",
}
m["nai-klp-pro"] = {
"Kalapuya Purba",
116773771,
"nai-klp",
"Latn",
type = "reconstructed",
}
m["nai-knm"] = {
"Konomihu",
3198734,
"nai-shs",
"Latn",
}
m["nai-kum"] = {
"Kumeyaay",
4910139,
"nai-yuc",
"Latn",
}
m["nai-mac"] = {
"Macoris",
21070851,
nil,
"Latn",
}
m["nai-mdu-pro"] = {
"Maidu Purba",
116773784,
"nai-mdu",
"Latn",
type = "reconstructed",
}
m["nai-miz-pro"] = {
"Mixe-Zoque Purba",
7251858,
"nai-miz",
"Latn",
type = "reconstructed",
}
m["nai-mus-pro"] = {
"Muskogi Purba",
116775368,
"nai-mus",
"Latn",
type = "reconstructed",
}
m["nai-nao"] = {
"Naolan",
6964594,
nil,
"Latn",
}
m["nai-nrs"] = {
"Shasta Sungai Baru",
7011254,
"nai-shs",
"Latn",
}
m["nai-okw"] = {
"Okwanuchu",
3350126,
"nai-shs",
"Latn",
}
m["nai-per"] = {
"Pericú",
3375369,
nil,
"Latn",
}
m["nai-pic"] = {
"Picuris",
7191257,
"nai-kta",
"Latn",
}
m["nai-plp-pro"] = {
"Penuti Penara Purba",
116773806,
"nai-plp",
"Latn",
type = "reconstructed",
}
m["nai-pom-pro"] = {
"Pomo Purba",
116773262,
"nai-pom",
"Latn",
type = "reconstructed",
}
m["nai-qng"] = {
"Quinigua",
36360,
nil,
"Latn",
}
m["nai-sca-pro"] = { -- PERHATIAN 'sio-pro' "Proto-Siouan" iaitu Proto-Sioux Barat
"Siouan-Catawba Purba",
116773275,
"nai-sca",
"Latn",
type = "reconstructed",
}
m["nai-sin"] = {
"Sinacantán",
24190249,
"nai-xin",
"Latn",
}
m["nai-sln"] = {
"Lenca Salvador",
3229434,
"nai-len",
"Latn",
}
m["nai-spt"] = {
"Sahaptin",
3833015,
"nai-shp",
"Latn",
}
m["nai-tap"] = {
"Tapachultec",
7684401,
"nai-miz",
"Latn",
}
m["nai-taw"] = {
"Tawasa",
7689233,
nil,
"Latn",
}
m["nai-teq"] = {
"Tequistlatec",
2964454,
"nai-tqn",
"Latn",
}
m["nai-tip"] = {
"Tipai",
3027471,
"nai-yuc",
"Latn",
}
m["nai-tot-pro"] = {
"Totozoquean Purba",
116773285,
"nai-tot",
"Latn",
type = "reconstructed",
}
m["nai-tsi-pro"] = {
"Tsimshianik Purba",
nil,
"nai-tsi",
"Latn",
type = "reconstructed",
}
m["nai-utn-pro"] = {
"Utik Purba",
116773290,
"nai-utn",
"Latn",
type = "reconstructed",
}
m["nai-wai"] = {
"Waikuri",
3118702,
nil,
"Latn",
}
m["nai-wji"] = {
"Jicaque Barat",
3178610,
"nai-jcq",
"Latn",
}
m["nai-yup"] = {
"Yupiltepeque",
25339628,
"nai-xin",
"Latn",
}
m["nan-dat"] = {
"Min Datian",
19855572,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-hbl"] = {
"Hokkien",
1624231,
"zhx-nan",
"Hants, Latn, Bopo, Kana",
wikimedia_codes = "zh-min-nan",
generate_forms = "zh-generateforms",
sort_key = {
Hani = "Hani-sortkey",
Kana = "Kana-sortkey"
},
}
m["nan-hlh"] = {
"Min Hailufeng",
120755728,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-lnx"] = {
"Min Longyan",
6674568,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-tws"] = {
"Teochew",
36759,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["nan-zhe"] = {
"Min Zhenan",
3846710,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["nan-zsh"] = {
"Min Sanxiang",
7420769,
"zhx-nan",
"Hants",
generate_forms = "zh-generateforms",
sort_key = "Hani-sortkey",
}
m["ngf-bin-pro"] = {
"Binandere Purba",
137881672,
"ngf-bin",
"Latn",
type = "reconstructed",
}
m["ngf-pro"] = {
"Trans-New Guinea Purba",
85794785,
"ngf",
"Latn",
type = "reconstructed",
}
m["nic-bco-pro"] = {
"Benue-Congo Purba",
116773194,
"nic-bco",
"Latn",
type = "reconstructed",
}
m["nic-bod-pro"] = {
"Bantoid Purba",
116773190,
"nic-bod",
"Latn",
type = "reconstructed",
}
m["nic-eov-pro"] = {
"Oti-Volta Timur Purba",
116773753,
"nic-eov",
"Latn",
type = "reconstructed",
}
m["nic-gns-pro"] = {
"Gurunsi Purba",
116773759,
"nic-gns",
"Latn",
type = "reconstructed",
}
m["nic-grf-pro"] = {
"Grassfields Purba",
116773755,
"nic-grf",
"Latn",
type = "reconstructed",
}
m["nic-gur-pro"] = {
"Gur Purba",
116773758,
"nic-gur",
"Latn",
type = "reconstructed",
}
m["nic-jkn-pro"] = {
"Jukunoid Purba",
116773769,
"nic-jkn",
"Latn",
type = "reconstructed",
}
m["nic-lcr-pro"] = {
"Cross River Hilir Purba",
116773782,
"nic-lcr",
"Latn",
type = "reconstructed",
}
m["nic-ogo-pro"] = {
"Ogoni Purba",
116773799,
"nic-ogo",
"Latn",
type = "reconstructed",
}
m["nic-ovo-pro"] = {
"Oti-Volta Purba",
116773802,
"nic-ovo",
"Latn",
type = "reconstructed",
}
m["nic-plt-pro"] = {
"Plateau Purba",
116773805,
"nic-plt",
"Latn",
type = "reconstructed",
}
m["nic-pro"] = {
"Niger-Congo Purba",
108000748,
"nic",
"Latn",
type = "reconstructed",
}
m["nic-ubg-pro"] = {
"Ubangi Purba",
116773818,
"nic-ubg",
"Latn",
type = "reconstructed",
}
m["nic-ucr-pro"] = {
"Cross River Hulu Purba",
116773819,
"nic-ucr",
"Latn",
type = "reconstructed",
}
m["nic-vco-pro"] = {
"Volta-Congo Purba",
116773293,
"nic-vco",
"Latn",
type = "reconstructed",
}
m["njo-jgl"] = {
"Ao Chungli",
55607615,
"njo",
"Latn",
}
m["njo-mng"] = {
"Ao Mongsen",
85383221,
"njo",
"Latn",
}
m["nub-har"] = {
"Haraza",
19572059,
"nub",
"Arab, Latn",
}
m["nub-pro"] = {
"Nubia Purba",
116773246,
"nub",
"Latn",
type = "reconstructed",
}
m["omq-cha-pro"] = {
"Chatino Purba",
116773202,
"omq-cha",
"Latn",
type = "reconstructed",
}
m["omq-maz-pro"] = {
"Mazatec Purba",
116773790,
"omq-maz",
"Latn",
type = "reconstructed",
}
m["omq-mix-pro"] = {
"Mixtecan Purba",
21573423,
"omq-mix",
"Latn",
type = "reconstructed",
}
m["omq-mxt-pro"] = {
"Mixtec Purba",
21573424,
"omq-mxt",
"Latn",
type = "reconstructed",
}
m["omq-otp-pro"] = {
"Oto-Pamean Purba",
116773251,
"omq-otp",
"Latn",
type = "reconstructed",
}
m["omq-pro"] = {
"Oto-Manguean Purba",
33669,
"omq",
"Latn",
type = "reconstructed",
}
m["omq-sjq"] = {
"Chatino San Juan Quiahije",
138330751,
"omq-cha",
"Latn",
}
m["omq-tel"] = {
"Mixtec Teposcolula",
nil,
"omq-mxt",
"Latn",
}
m["omq-teo"] = {
"Chatino Teojomulco",
25340451,
"omq-cha",
"Latn",
}
m["omq-tri-pro"] = {
"Triqui Purba",
116773817,
"omq-tri",
"Latn",
type = "reconstructed",
}
m["omq-zap-pro"] = {
"Zapotecan Purba",
116773297,
"omq-zap",
"Latn",
type = "reconstructed",
}
m["omq-zpc-pro"] = {
"Zapotec Purba",
116773296,
"omq-zpc",
"Latn",
type = "reconstructed",
}
m["omv-aro-pro"] = {
"Aroid Purba",
116773721,
"omv-aro",
"Latn",
type = "reconstructed",
}
m["omv-diz-pro"] = {
"Dizoid Purba",
116773750,
"omv-diz",
"Latn",
type = "reconstructed",
}
m["omv-pro"] = {
"Omotik Purba",
116773800,
"omv",
"Latn",
type = "reconstructed",
}
m["oto-otm-pro"] = {
"Otomi Purba",
5908710,
"oto-otm",
"Latn",
type = "reconstructed",
}
m["oto-pro"] = {
"Otomian Purba",
116773252,
"oto",
"Latn",
type = "reconstructed",
}
m["paa-kmn"] = {
"Kómnzo",
18344310,
"paa-wko",
"Latn",
}
m["paa-kwn"] = {
"Kuwani",
6449056,
"qfa-unc", -- kurang dibuktikan, mungkin sama dengan atau berkaitan dengan Kalabra
"Latn",
}
m["paa-lei"] = {
"Leitre",
85776228,
"paa-isk",
}
m["paa-nha-pro"] = {
"Halmahera Utara Purba",
116773241,
"paa-nha",
"Latn",
type = "reconstructed"
}
m["paa-nun"] = {
"Nungon",
128807788,
"ngf-ynu",
"Latn",
}
m["phi-din"] = {
"Agta Dinapigue",
16945774,
"phi",
"Latn",
}
m["phi-kal-pro"] = {
"Kalamian Purba",
116773213,
"phi-kal",
"Latn",
type = "reconstructed",
}
m["phi-nag"] = {
"Agta Nagtipunan",
16966111,
"phi",
"Latn",
}
m["phi-pro"] = {
"Filipina Purba",
18204898,
"phi",
"Latn",
type = "reconstructed",
}
m["poz-abi"] = {
"Abai",
19570729,
"poz-san",
"Latn",
}
m["poz-bal"] = {
"Baliledo",
4850912,
"poz",
"Latn",
}
m["poz-btk-pro"] = {
"Bungku-Tolaki Purba",
116773724,
"poz-btk",
"Latn",
type = "reconstructed",
}
m["poz-cet-pro"] = {
"Melayu-Polinesia Tengah-Timur Purba",
2269883,
"poz-cet",
"Latn",
type = "reconstructed",
}
m["poz-hce-pro"] = {
"Halmahera-Cenderawasih Purba",
116773209,
"poz-hce",
"Latn",
type = "reconstructed",
}
m["poz-lgx-pro"] = {
"Lampungik Purba",
116773222,
"poz-lgx",
"Latn",
type = "reconstructed",
}
m["poz-mcm-pro"] = {
"Melayu-Chamik Purba",
116773225,
"poz-mcm",
"Latn",
type = "reconstructed",
}
m["poz-mic-pro"] = {
"Mikronesia Purba",
111939079,
"poz-mic",
"Latn",
type = "reconstructed",
}
m["poz-mly-pro"] = {
"Melayik Purba",
98057728,
"poz-mly",
"Latn",
type = "reconstructed",
}
m["poz-msa-pro"] = {
"Melayu-Sumbawa Purba",
116773226,
"poz-msa",
"Latn",
type = "reconstructed",
}
m["poz-nes"] = {
"Nese",
2157412,
"poz-vnc",
"Latn",
}
m["poz-oce-pro"] = {
"Oceania Purba",
141741,
"poz-oce",
"Latn",
type = "reconstructed",
}
m["poz-pcc-pro"] = {
"Pasifik Tengah Purba",
111962726,
"poz-pcc",
"Latn",
type = "reconstructed",
}
m["poz-pep-pro"] = {
"Polinesia Timur Purba",
113988745,
"poz-pep",
"Latn",
type = "reconstructed",
}
m["poz-pnp-pro"] = {
"Polinesia Teras Purba",
113988746,
"poz-pnp",
"Latn",
type = "reconstructed",
}
m["poz-pol-pro"] = {
"Polinesia Purba",
1658709,
"poz-pol",
"Latn",
type = "reconstructed",
}
m["poz-pro"] = {
"Melayu-Polinesia Purba",
3832960,
"poz",
"Latn",
type = "reconstructed",
}
m["poz-sml"] = {
"Melayu Sarawak",
4251702,
"poz-mly",
"Latn, Arab",
}
m["poz-ssw-pro"] = {
"Sulawesi Selatan Purba",
116773279,
"poz-ssw",
"Latn",
type = "reconstructed",
}
m["poz-swa-pro"] = {
"Sarawak Utara Purba",
116773243,
"poz-swa",
"Latn",
type = "reconstructed",
}
m["poz-ter"] = {
"Melayu Terengganu",
4207412,
"poz-mly",
"Latn, Arab",
}
m["pqe-pro"] = {
"Melayu-Polinesia Timur Purba",
2269883,
"pqe",
"Latn",
type = "reconstructed",
}
m["pra-niy"] = {
"Prakrit Niya",
11991601,
"inc-mid",
"Khar",
ancestors = "inc-ash",
translit = "Khar-translit",
}
m["qfa-adm-pro"] = {
"Andaman Besar Purba",
116773756,
"qfa-adm",
"Latn",
type = "reconstructed",
}
m["qfa-bet-pro"] = {
"Be-Tai Purba",
116773193,
"qfa-bet",
"Latn",
type = "reconstructed",
}
m["qfa-cka-pro"] = {
"Chukotko-Kamchatka Purba",
7251837,
"qfa-cka",
"Latn",
type = "reconstructed",
}
m["qfa-hur-pro"] = {
"Hurro-Urartia Purba",
116773211,
"qfa-hur",
"Latn",
type = "reconstructed",
}
m["qfa-kad-pro"] = {
"Kadu Purba",
116773770,
"qfa-kad",
"Latn",
type = "reconstructed",
}
m["qfa-kms-pro"] = {
"Kam-Sui Purba",
55630682,
"qfa-kms",
"Latn",
type = "reconstructed",
}
m["qfa-kor-pro"] = {
"Korea Purba",
467883,
"qfa-kor",
"Latn",
type = "reconstructed",
}
m["qfa-kra-pro"] = {
"Kra Purba",
7251854,
"qfa-kra",
"Latn",
type = "reconstructed",
}
m["qfa-lic-pro"] = {
"Hlai Purba",
7251845,
"qfa-lic",
"Latn",
type = "reconstructed",
}
m["qfa-onb-pro"] = {
"Be Purba",
116773192,
"qfa-onb",
"Latn",
type = "reconstructed",
}
m["qfa-ong-pro"] = {
"Onga Purba",
116773801,
"qfa-ong",
"Latn",
type = "reconstructed",
}
m["qfa-tak-pro"] = {
"Kra-Dai Purba",
104901616,
"qfa-tak",
"Latn",
type = "reconstructed",
}
m["qfa-yen-pro"] = {
"Yenisei Purba",
27639,
"qfa-yen",
"Latn",
type = "reconstructed",
}
m["qfa-yuk-pro"] = {
"Yukaghir Purba",
116773294,
"qfa-yuk",
"Latn",
type = "reconstructed",
}
m["qwe-kch"] = {
"Kichwa",
1740805,
"qwe",
"Latn",
ancestors = "qu",
}
m["qwe-pro"] = {
"Quechua Purba",
5575757,
"qwe",
"Latn",
type = "reconstructed",
}
m["roa-ang"] = {
"Angevin",
56782,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-bbn"] = {
"Bourbonnais-Berrichon",
2899128,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-brg"] = {
"Bourguignon",
508332,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-can"] = {
"Cantabrian",
917021,
"roa-asl",
"Latn",
}
m["roa-cha"] = {
"Champenois",
430018,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-fcm"] = {
"Franc-Comtois",
510561,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-gal"] = {
"Gallo",
37300,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-gib"] = {
"Gallo-Italik Basilicata",
3094838,
"roa-git",
ancestors = "pms-old",
"Latn",
}
m["roa-gis"] = {
"Gallo-Italik Sicily",
2629019,
"roa-git",
"Latn",
ancestors = "pms-old",
}
m["roa-leo"] = {
"Leon",
34108,
"roa-asl",
"Latn",
}
m["roa-lor"] = {
"Lorrain",
671198,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-oca"] = {
"Catalonia Kuno",
15478520,
"roa-ocr",
"Latn",
sort_key = {remove_diacritics = c.grave .. c.acute .. c.diaer .. c.cedilla .. "·"},
}
m["roa-ole"] = {
"Leon Kuno",
125977465,
"roa-asl",
"Latn",
}
m["roa-ona"] = {
"Navarro-Aragon Kuno",
2736184,
"roa-nar",
"Latn",
}
m["roa-opt"] = {
"Galicia-Portugis Kuno",
1072111,
"roa-gap",
"Latn",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.circ},
}
m["roa-orl"] = {
"Orléanais",
28497058,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-poi"] = {
"Poitevin-Saintongeais",
514123,
"roa-oil",
"Latn",
sort_key = s["roa-oil-sortkey"],
}
m["roa-tar"] = {
"Tarantino",
695526,
"roa-itr",
"Latn",
wikimedia_codes = "roa-tara",
}
m["sai-all"] = {
"Allentiac",
19570789,
"sai-hrp",
"Latn",
}
m["sai-and"] = {
"Andoquero",
16828359,
"sai-wit",
"Latn",
}
m["sai-ayo"] = {
"Ayomán",
16937754,
"sai-jir",
"Latn",
}
m["sai-bae"] = {
"Baenan",
3401998,
"qfa-unc", -- pupus, kurang dibuktikan; hanya dikenali melalui 9 perkataan
"Latn",
}
m["sai-bag"] = {
"Bagua",
5390321,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin bahasa Carib
"Latn",
}
m["sai-bet"] = {
"Betoi",
926551,
"qfa-iso",
"Latn",
}
m["sai-bor-pro"] = {
"Bora Purba",
nil,
"sai-bor",
"Latn",
}
m["sai-cac"] = {
"Cacán",
945482,
"qfa-unc", -- pupus, kurang dibuktikan; tiada konsensus mengenai pengelasan
"Latn",
}
m["sai-caq"] = {
"Caranqui",
2937753,
"sai-bar",
"Latn",
}
m["sai-car-pro"] = {
"Carib Purba",
116773196,
"sai-car",
"Latn",
type = "reconstructed",
}
m["sai-cat"] = {
"Catacao",
5051136,
"sai-ctc",
"Latn",
}
m["sai-cer-pro"] = {
"Cerrado Purba",
116773200,
"sai-cer",
"Latn",
type = "reconstructed",
}
m["sai-chi"] = {
"Chirino",
5390321,
"qfa-unc", -- pupus, hanya empat perkataan diketahui; mungkin berkaitan dengan Candoshi-Shapra (cbu)
"Latn",
}
m["sai-chn"] = {
"Chaná",
5072718,
"sai-crn",
"Latn",
}
m["sai-chp"] = {
"Chapacura",
5072884,
"sai-cpc",
"Latn",
}
m["sai-chr"] = {
"Charrua",
5086680,
"sai-crn",
"Latn",
}
m["sai-chu"] = {
"Churuya",
5118339,
"sai-guh",
"Latn",
}
m["sai-cje-pro"] = {
"Jê Tengah Purba",
116773198,
"sai-cje",
"Latn",
type = "reconstructed",
}
m["sai-cmg"] = {
"Comechingon",
6644203,
"qfa-unc", -- pupus, kurang dibuktikan; tiada konsensus mengenai pengelasan
"Latn",
}
m["sai-cno"] = {
"Chono",
5104704,
"qfa-unc", -- pupus, kurang dibuktikan; tiada konsensus mengenai pengelasan, mungkin palsu
"Latn",
}
m["sai-cnr"] = {
"Cañari",
5055572,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Chimuan atau Barbacoan
"Latn",
}
m["sai-coe"] = {
"Coeruna",
6425639,
"sai-wit",
"Latn",
}
m["sai-col"] = {
"Colán",
5141893,
"sai-ctc",
"Latn",
}
m["sai-cop"] = {
"Copallén",
5390321,
"qfa-unc", -- pupus, hanya empat perkataan dibuktikan; mungkin Cholonan
"Latn",
}
m["sai-crd"] = {
"Coroado Puri",
24191321,
"sai-mje",
"Latn",
}
m["sai-ctq"] = {
"Catuquinaru",
16858455,
"qfa-unc", -- pupus, kurang dibuktikan; kosa kata tidak menyerupai bahasa lain
"Latn",
}
m["sai-cul"] = {
"Culli",
2879660,
"qfa-unc", -- pupus, kurang dibuktikan; sering dianggap sebagai pencilan
"Latn",
}
m["sai-cva"] = {
"Cueva",
5192644,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Chocoan
"Latn",
}
m["sai-esm"] = {
"Esmeralda",
3058083,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin berkaitan dengan Yaruro
"Latn",
}
m["sai-ewa"] = {
"Ewarhuyana",
16898104,
nil,
"Latn",
}
m["sai-gam"] = {
"Gamela",
5403661,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin pencilan
"Latn",
}
m["sai-gay"] = {
"Gayón",
5528902,
"sai-jir",
"Latn",
}
m["sai-gmo"] = {
"Guamo",
5613495,
"qfa-unc", -- pupus; "Kaufman (1990) mendapati hubungan dengan bahasa-bahasa Chapacuran meyakinkan." [Wikipedia] Dianggap sebagai pencilan oleh Campbell (2024).
"Latn",
}
m["sai-gua"] = {
"Guachí",
5613172,
"sai-guc",
"Latn",
}
m["sai-gue"] = {
"Güenoa",
5626799,
"sai-crn",
"Latn",
}
m["sai-hau"] = {
"Haush",
3128376,
"sai-cho",
"Latn",
}
m["sai-jee-pro"] = {
"Jê Purba",
116773212,
"sai-jee",
"Latn",
type = "reconstructed",
}
m["sai-jko"] = {
"Jeikó",
6176527,
"sai-mje",
"Latn",
}
m["sai-jrj"] = {
"Jirajara",
6202966,
"sai-jir",
"Latn",
}
m["sai-kat"] = { -- kontras xoo, kzw, sai-xoc
"Katembri",
6375925,
"qfa-unc", -- pupus, kurang dibuktikan; "Kaufman (1990) telah menghubungkannya dengan bahasa Taruma yang hampir pupus, walaupun ini tidak diterima oleh sarjana lain." [Wikipedia]
"Latn",
}
m["sai-mal"] = {
"Malalí",
6741212,
"sai-mje", -- dianggap sebagai bahasa Maxakalían yang paling divergen (subbahagian kepada Macro-Jê), yang mana kami tiada entri
"Latn",
}
m["sai-mar"] = {
"Maratino",
6755055,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Uto-Aztecan
"Latn",
}
m["sai-mat"] = {
"Matanawi",
6786047,
"qfa-unc", -- pupus; sama ada pencilan atau berkait jauh dengan bahasa-bahasa Muran; Campbell (2024) menyenarainya sebagai pencilan, Glottolog memberikannya sebagai tidak terkelas
"Latn",
}
m["sai-mcn"] = {
"Mocana",
3402048,
"qfa-unc", -- pupus, kurang dibuktikan; diberikan sebagai sebahagian daripada bahasa Malibu (pengumpulan geografi; bukan klad)
"Latn",
}
m["sai-men"] = {
"Menien",
16890110,
"sai-mje",
"Latn",
}
m["sai-mil"] = {
"Millcayac",
19573012,
"sai-hrp",
"Latn",
}
m["sai-mlb"] = {
"Malibu",
134374036,
"qfa-unc", -- pupus, kurang dibuktikan; diberikan sebagai sebahagian daripada bahasa Malibu (pengumpulan geografi; bukan klad)
"Latn",
}
m["sai-msk"] = {
"Masakará",
6782426,
"sai-mje",
"Latn",
}
m["sai-muc"] = {
"Mucuchí",
6931290,
nil, -- lazimnya dianggap sebagai Timotean, yang mana kami tiada entri
"Latn",
}
m["sai-mue"] = {
"Muellama",
16886936,
"sai-bar",
"Latn",
}
m["sai-muz"] = {
"Muzo",
6644203,
"qfa-unc", -- bahasa pupus di Colombia, kurang dibuktikan; mungkin Pijao (Cariban)
"Latn",
}
m["sai-mys"] = {
"Maynas",
16919393,
"sai-cah", -- mengikut Campbell (2024); dahulu dianggap tidak terkelas
"Latn",
}
m["sai-nat"] = {
"Natú",
9006749,
"qfa-unc", -- pupus, kurang dibuktikan; "hanya Greenberg yang berani mengelaskannya".[Wikipedia, memetik Moseley, Christopher; Asher, R. E.; Tait, Mary (1994), Atlas of the world's languages]
"Latn",
}
m["sai-nje-pro"] = {
"Jê Utara Purba",
116773245,
"sai-nje",
"Latn",
type = "reconstructed",
}
m["sai-opo"] = {
"Opón",
7099152,
"sai-car",
"Latn",
}
m["sai-oto"] = {
"Otomaco",
16879234,
"sai-otm",
"Latn",
}
m["sai-pal"] = {
"Palta",
3042978,
"qfa-unc", -- pupus, tidak terkelas; mungkin Chicham
"Latn",
}
m["sai-pam"] = {
"Pamigua",
5908689,
"sai-tin",
"Latn",
}
m["sai-par"] = {
"Paratió",
16890038,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Xukuruan
"Latn",
}
m["sai-peb"] = {
"Peba",
3373890,
"sai-pey",
"Latn",
}
m["sai-pnz"] = {
"Panzaleo",
3123275,
"qfa-unc", -- pupus, tidak terkelas; mungkin Paezan
"Latn",
}
m["sai-prh"] = {
"Puruhá",
3410994,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin dalam keluarga dengan Cañari
"Latn",
}
m["sai-ptg"] = {
"Patagón",
128807870,
"sai-tar", -- pupus, hanya diketahui daripada 4 perkataan, yang mencadangkan susur galur Cariban (Campbell 2024)
"Latn",
}
m["sai-pur"] = {
"Purukotó",
7261622,
"sai-pem",
"Latn",
}
m["sai-pyg"] = {
"Payaguá",
7156643,
"sai-guc",
"Latn",
}
m["sai-pyk"] = {
"Pykobjê",
98113977,
"sai-nje",
"Latn",
}
m["sai-qmb"] = {
"Quimbaya",
7272043,
"qfa-unc", -- pupus, mungkin tidak wujud; sedikit perkataan yang diketahui
"Latn",
}
m["sai-qtm"] = {
"Quitemo",
7272651,
"sai-cpc",
"Latn",
}
m["sai-rab"] = {
"Rabona",
6644203,
"qfa-unc", -- pupus, kurang dibuktikan, kebanyakan nama tumbuhan; mungkin Candoshi-Shapra
"Latn",
}
m["sai-ram"] = {
"Ramanos",
16902824,
"qfa-unc", -- pupus, kurang dibuktikan, mungkin pencilan; mengikut Glottolog: "senarai perkataan yang kerdil ... tidak menunjukkan persamaan yang meyakinkan dengan bahasa sekeliling"
"Latn",
}
m["sai-sac"] = {
"Sácata",
5390321,
"qfa-unc", -- pupus, hanya 3 perkataan diketahui; mungkin Candoshí atau Arawak
"Latn",
}
m["sai-san"] = {
"Sanaviron",
16895999,
"qfa-unc", -- pupus, tidak terkelas; tiada konsensus mengenai pengelasan
"Latn",
}
m["sai-sap"] = {
"Sapará",
7420922,
"sai-car",
"Latn",
}
m["sai-sec"] = {
"Sechura",
7442912,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Catacaoan
"Latn",
}
m["sai-sin"] = {
"Sinúfana",
7525275,
"qfa-unc", -- hampir pupus, kurang dibuktikan; mungkin Chocoan
"Latn",
}
m["sai-sje-pro"] = {
"Jê Selatan Purba",
116773814,
"sai-sje",
"Latn",
type = "reconstructed",
}
m["sai-tab"] = {
"Tabancale",
5390321,
"qfa-unc", -- pupus, hanya 5 perkataan diketahui; tiada kaitan yang jelas, mungkin pencilan
"Latn",
}
m["sai-tal"] = {
"Tallán",
16910468,
"qfa-unc", -- pupus, kurang dibuktikan; mungkin Catacaoan
"Latn",
}
m["sai-tap"] = {
"Tapayuna",
30719984,
"sai-nje",
"Latn",
}
m["sai-tar-pro"] = {
"Taranoan Purba",
116773816,
"sai-tar",
"Latn",
type = "reconstructed",
}
m["sai-teu"] = {
"Teushen",
3519243,
"qfa-unc", -- mungkin pupus menjelang 1950-an; mungkin Chonan
"Latn",
}
m["sai-tim"] = {
"Timote",
7806995,
nil, -- mungkin dalam keluarga Timote kecil
"Latn",
}
m["sai-tpr"] = {
"Taparita",
7684460,
"sai-otm",
"Latn",
}
m["sai-trr"] = {
"Tarairiú",
7685313,
"qfa-unc", -- pupus, terlalu kurang dibuktikan untuk dikelaskan
"Latn",
}
m["sai-wai"] = {
"Waitaká",
16918610,
"qfa-unc", -- pupus, mungkin Purian
"Latn",
}
m["sai-way"] = {
"Wayumara",
7960726,
"sai-car",
"Latn",
}
m["sai-wit-pro"] = {
"Witotoan Purba",
116773823,
"sai-wit",
"Latn",
type = "reconstructed",
}
m["sai-wnm"] = {
"Wanham",
16879440,
"sai-cpc",
"Latn",
}
m["sai-xoc"] = { -- kontras xoo, kzw, sai-kat
"Xocó",
12953620,
"qfa-unc", -- pupus dan kurang dibuktikan; tidak jelas sama ada satu atau tiga bahasa
"Latn",
}
m["sai-yao"] = {
"Yao (Amerika Selatan)",
16979655,
"sai-ven",
"Latn",
}
m["sai-yar"] = { -- bukan keluarga yang sama dengan 'suy'
"Yarumá",
3505859,
"sai-pek",
"Latn",
}
m["sai-yri"] = {
"Yuri",
2669157,
"sai-tyu",
"Latn",
}
m["sai-yup"] = {
"Yupua",
8061430,
"sai-tuc",
"Latn",
}
m["sai-yur"] = {
"Yurumanguí",
1281291,
"qfa-unc", -- pupus, terlalu kurang dibuktikan untuk dikelaskan
"Latn",
}
m["sal-pro"] = {
"Salish Purba",
116773269,
"sal",
"Latn",
type = "reconstructed",
}
m["sdv-daj-pro"] = {
"Daju Purba",
116773739,
"sdv-daj",
"Latn",
type = "reconstructed",
}
m["sdv-eje-pro"] = {
"Jebel Timur Purba",
116773751,
"sdv-eje",
"Latn",
type = "reconstructed",
}
m["sdv-nil-pro"] = {
"Nilotik Purba",
116773794,
"sdv-nil",
"Latn",
type = "reconstructed",
}
m["sdv-nyi-pro"] = {
"Nyima Purba",
116773796,
"sdv-nyi",
"Latn",
type = "reconstructed",
}
m["sdv-tmn-pro"] = {
"Taman Purba",
116773815,
"sdv-tmn",
"Latn",
type = "reconstructed",
}
m["sel-nor"] = {
"Selkup Utara",
30304565,
"sel",
"Cyrl",
translit = "sel-nor-translit",
}
m["sel-pro"] = {
"Selkup Purba",
128884235,
"sel",
"Latn",
type = "reconstructed",
}
m["sel-sou"] = {
"Selkup Selatan",
30304639,
"sel",
"Cyrl",
translit = "sel-sou-translit",
}
m["sem-amm"] = {
"Ammon",
279181,
"sem-can",
"Phnx",
-- translit Phnx dalam [[Module:scripts/data]]
}
m["sem-amo"] = {
"Amor",
35941,
"sem-nwe",
"Xsux, Latn",
}
m["sem-cha"] = {
"Chaha",
35543,
"sem-eth",
"Ethi",
translit = "Ethi-translit",
}
m["sem-dad"] = {
"Dadan",
21838040,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-dum"] = {
"Dumait",
128810397,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-has"] = {
"Hasait",
3541433,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-his"] = {
"Hisma",
22948260,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-mhr"] = {
"Muher",
33743,
"sem-eth",
"Latn",
}
m["sem-pro"] = {
"Samiah Purba",
1658554,
"sem",
"Latn",
type = "reconstructed",
}
m["sem-saf"] = {
"Safait",
472586,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-sam"] = {
"Samal",
85847147,
"sem-nwe",
"Phnx",
-- translit Phnx dalam [[Module:scripts/data]]
}
m["sem-srb"] = {
"Arab Selatan Kuno",
35025,
"sem-osa",
"Sarb",
-- translit Sarb dalam [[Module:scripts/data]]
}
m["sem-tay"] = {
"Tayman",
24912301,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-tha"] = {
"Thamud",
843030,
"sem-cen",
"Narb",
-- translit Narb dalam [[Module:scripts/data]]
}
m["sem-wes-pro"] = {
"Samiah Barat Purba",
98021726,
"sem-wes",
"Latn",
type = "reconstructed",
}
m["sio-pro"] = { -- PERHATIAN ini bukan 'nai-sca-pro' "Proto-Siouan-Catawban" iaitu Proto-Sioux Barat
"Sioux Purba",
34181,
"sio",
"Latn",
type = "reconstructed",
}
m["sit-aao-pro"] = {
"Naga Tengah Purba",
nil,
"sit-aao",
"Latn",
type = "reconstructed",
}
m["sit-bai-pro"] = {
"Bai Purba",
nil,
"sit-bai",
"Latn",
type = "reconstructed",
}
m["sit-ban"] = {
"Bangru",
56071779,
"sit-hrs",
"Latn",
}
m["sit-bdi-pro"] = {
"Bodish Purba",
nil,
"sit-bdi",
"Latn",
type = "reconstructed",
}
m["sit-bok"] = {
"Bokar",
4938727,
"sit-tan",
"Latn, Tibt",
override_translit = true,
-- translit, display_text, strip_diacritics, sort_key Tibt dalam [[Module:scripts/data]]
}
m["sit-cai"] = {
"Caijia",
5017528,
"sit-cln",
"Latn"
}
m["sit-cha"] = {
"Chairel",
5068066,
"sit-luu",
"Latn",
}
m["sit-ers-pro"] = {
"Ersu Purba",
nil,
"sit-ers",
"Latn",
type = "reconstructed",
}
m["sit-hrs-pro"] = {
"Hrusish Purba",
116773762,
"sit-hrs",
"Latn",
type = "reconstructed",
}
m["sit-jap"] = {
"Japhug",
3162245,
"sit-egy",
"Latn",
}
m["sit-kha-pro"] = {
"Kham Purba",
116773773,
"sit-kha",
"Latn",
type = "reconstructed",
}
m["sit-khb-pro"] = {
"Kho-Bwa Purba",
nil,
"sit-khb",
"Latn",
type = "reconstructed",
}
m["sit-khp-pro"] = {
"Puroik Purba",
nil,
"sit-khb",
"Latn",
type = "reconstructed",
}
m["sit-khw-pro"] = {
"Kho-Bwa Barat Purba",
nil,
"sit-khw",
"Latn",
type = "reconstructed",
}
m["sit-kon-pro"] = {
"Naga Utara Purba",
nil,
"sit-kon",
"Latn",
type = "reconstructed",
}
m["sit-liz"] = {
"Lizu",
6660653,
"sit-ers",
"Latn", -- dan Ersu Shaba
}
m["sit-lnj"] = {
"Longjia",
17096251,
"sit-cln",
"Latn"
}
m["sit-lrn"] = {
"Luren",
16946370,
"sit-cln",
"Latn"
}
m["sit-luu-pro"] = {
"Luish Purba",
116773783,
"sit-luu",
"Latn",
type = "reconstructed",
}
m["sit-nas-pro"] = {
"Naish Purba",
nil,
"sit-nas",
"Latn",
type = "reconstructed",
}
m["sit-prn"] = {
"Puiron",
7259048,
"sit-zem",
}
m["sit-pro"] = {
"Sino-Tibet Purba",
24839178,
"sit",
"Latn",
type = "reconstructed",
}
m["sit-sit"] = {
"Situ",
19840830,
"sit-egy",
"Latn",
}
m["sit-tam-pro"] = {
"Tamang Purba",
117469295,
"sit-tam",
"Latn",
type = "reconstructed",
}
m["sit-tan-pro"] = {
"Tani Purba",
116773284,
"sit-tan",
"Latn", -- memerlukan pengesahan
type = "reconstructed",
}
m["sit-tgm"] = {
"Tangam",
17041370,
"sit-tan",
"Latn",
}
m["sit-tng-pro"] = {
"Tangkhul Purba",
nil,
"sit-tng",
"Latn",
type = "reconstructed",
}
m["sit-tos"] = {
"Tosu",
7827899,
"sit-ers",
"Latn", -- juga Ersu Shaba
}
m["sit-tsh"] = {
"Tshobdun",
19840950,
"sit-egy",
"Latn",
}
m["sit-zbu"] = {
"Zbu",
19841106,
"sit-egy",
"Latn",
}
m["sla-pro"] = {
"Slav Purba",
747537,
"sla",
"Latn",
type = "reconstructed",
strip_diacritics = {
remove_diacritics = c.grave .. c.acute .. c.tilde .. c.macron .. c.dgrave .. c.invbreve,
remove_exceptions = {'ś'},
},
sort_key = {
from = {"č", "ď", "ě", "ę", "ь", "ľ", "ň", "ǫ", "ř", "š", "ś", "ť", "ъ", "ž"},
to = {"c²", "d²", "e²", "e³", "i²", "l²", "nj", "o²", "r²", "s²", "s³", "t²", "u²", "z²"},
}
}
m["smi-pro"] = {
"Sami Purba",
7251862,
"smi",
"Latn",
type = "reconstructed",
sort_key = {
from = {"ā", "č", "δ", "[ëē]", "ŋ", "ń", "ō", "š", "θ", "%([^()]+%)"},
to = {"a", "c²", "d", "e", "n²", "n³", "o", "s²", "t²"}
},
}
m["son-pro"] = {
"Songhai Purba",
116773277,
"son",
"Latn",
type = "reconstructed",
}
m["sqj-pro"] = {
"Albania Purba",
18210846,
"sqj",
"Latn",
type = "reconstructed",
}
m["ssa-klk-pro"] = {
"Kuliak Purba",
116773779,
"ssa-klk",
"Latn",
type = "reconstructed",
}
m["ssa-kom-pro"] = {
"Koma Purba",
116773775,
"ssa-kom",
"Latn",
type = "reconstructed",
}
m["ssa-pro"] = {
"Nilo-Sahara Purba",
116773236,
"ssa",
"Latn",
type = "reconstructed",
}
m["syd-pro"] = {
"Samoyed Purba",
7251863,
"syd",
"Latn",
type = "reconstructed",
}
m["tai-pro"] = {
"Tai Purba",
6583709,
"tai",
"Latn",
type = "reconstructed",
}
m["tai-swe-pro"] = {
"Tai Barat Daya Purba",
116773280,
"tai-swe",
"Latn",
type = "reconstructed",
}
m["tbq-bdg-pro"] = {
"Bodo-Garo Purba",
116773195,
"tbq-bdg",
"Latn",
type = "reconstructed",
}
m["tbq-blg"] = {
"Bailang",
2879843,
"tbq-lob",
"Hani",
sort_key = "Hani-sortkey",
}
m["tbq-brm-pro"] = {
"Burma Purba",
nil,
"tbq-brm",
"Latn",
type = "reconstructed",
}
m["tbq-gkh"] = {
"Gokhy",
5578069,
"tbq-sil",
"Latn",
}
m["tbq-kuk-pro"] = {
"Kuki-Chin Purba",
116773220,
"tbq-kuk",
"Latn",
type = "reconstructed",
}
m["tbq-lal-pro"] = {
"Lalo Purba",
116773781,
"tbq-lal",
"Latn",
type = "reconstructed",
}
m["tbq-laz"] = {
"Laze",
17007626,
"sit-nas",
"Latn",
}
m["tbq-lob-pro"] = {
"Lolo-Burma Purba",
116773224,
"tbq-lob",
"Latn",
type = "reconstructed",
}
m["tbq-lol-pro"] = {
"Lolo Purba",
7251855,
"tbq-lol",
"Latn",
type = "reconstructed",
}
m["tbq-mil"] = {
"Milang",
6850761,
"sit-gsi",
"Deva, Latn",
}
m["tbq-mor"] = {
"Moran",
6909216,
"tbq-bdg",
"Latn",
}
m["tbq-ngo"] = {
"Ngochang",
56582,
"tbq-brm",
"Latn",
}
-- tbq-pro kini khusus etimologi
m["trk-dkh"] = {
"Dukhan",
12809273,
"trk-ssb",
"Latn, Cyrl, Mong",
-- translit, display_text dan strip_diacritics Mong dalam [[Module:scripts/data]]
}
-- Seperti yang diuraikan dalam ''Dīwān Lughāt al-Turk'' karya Mahmud al-Kashgari abad ke-11.
m["trk-eog"] = {
"Oghuz Kuno Awal",
nil,
"trk-ogz",
"Arab",
strip_diacritics = {Arab = "ar-stripdiacritics"},
}
m["trk-oat"] = {
"Turki Anatolia Kuno",
7083390,
"trk-ogz",
"Arab",
strip_diacritics = {Arab = "ar-stripdiacritics"},
ancestors = "trk-eog",
}
m["trk-pro"] = {
"Turkik Purba",
3657773,
"trk",
"Latn",
type = "reconstructed",
standard_chars = {
Latn = " ()-abdegiklmnoprstuxyzïöüāčēīĺŋōŕšūǖȫẹ" .. c.macron,
}
}
m["tup-gua-pro"] = {
"Tupi-Guarani Purba",
116773288,
"tup-gua",
"Latn",
type = "reconstructed",
}
m["tup-kab"] = {
"Kabishiana",
15302988,
"tup",
"Latn",
}
m["tup-kaw"] = {
"Kawahiva",
6346712,
"tup-gua",
"Latn",
}
m["tup-pro"] = {
"Tupi Purba",
10354700,
"tup",
"Latn",
type = "reconstructed",
}
m["tuw-alk"] = {
"Alchuka",
113553616,
"tuw-jrc",
"Latn, Hans",
sort_key = {Hans = "Hani-sortkey"},
}
m["tuw-bal"] = {
"Bala",
86730632,
"tuw-jrc",
"Latn, Hans",
sort_key = {Hans = "Hani-sortkey"},
}
m["tuw-kkl"] = {
"Kyakala",
118875708,
"tuw-jrc",
"Latn, Hans",
sort_key = {Hans = "Hani-sortkey"},
}
m["tuw-kli"] = {
"Kili",
6406892,
"tuw-ewe",
"Cyrl",
}
m["tuw-pro"] = {
"Tungus Purba",
85872335,
"tuw",
"Latn",
type = "reconstructed",
}
m["tuw-sol"] = {
"Solon",
30004,
"tuw-ewe",
}
m["urj-fin-pro"] = {
"Finnik Purba",
11883720,
"urj-fin",
"Latn",
type = "reconstructed",
}
m["urj-koo"] = {
"Komi Kuno",
86679962,
"kv",
"Perm, Cyrs",
translit = "urj-koo-translit",
-- strip_diacritics, sort_key Cyrs dalam [[Module:scripts/data]]; sebelum ini, strip_diacritics Cyrs tidak hadir
}
m["urj-kuk"] = {
"Kukkuzi",
107410460,
"urj-fin",
"Latn",
ancestors = "vot",
}
m["urj-kya"] = {
"Komi-Yazva",
2365210,
"kv",
"Cyrl",
translit = "kv-translit",
override_translit = true,
strip_diacritics = {remove_diacritics = c.acute},
}
m["urj-mdv-pro"] = {
"Mordvinik Purba",
116773232,
"urj-mdv",
"Latn",
type = "reconstructed",
}
m["urj-prm-pro"] = {
"Permik Purba",
116773257,
"urj-prm",
"Latn",
type = "reconstructed",
}
m["urj-pro"] = {
"Uralik Purba",
288765,
"urj",
"Latn",
type = "reconstructed",
}
m["urj-ugr-pro"] = {
"Ugrik Purba",
156631,
"urj-ugr",
"Latn",
type = "reconstructed",
}
m["xnd-pro"] = {
"Na-Dene Purba",
116773233,
"xnd",
"Latn",
type = "reconstructed",
}
m["xgn-pro"] = {
"Mongolia Purba",
2493677,
"xgn",
"Latn",
type = "reconstructed",
sort_key = {
from = {"č", "i", "ï", "ǰ", "ŋ", "ö", "š", "ü"},
to = {"c", "i" .. p[1], "i", "j", "n" .. p[1], "o" .. p[1], "s" .. p[1], "u" .. p[1]},
},
}
m["yok-bvy"] = {
"Yokuts Buena Vista",
4985474,
"yok",
"Latn",
}
m["yok-dly"] = {
"Yokuts Delta",
70923266,
"yok",
"Latn",
}
m["yok-gsy"] = {
"Yokuts Gashowu",
3098708,
"yok",
"Latn",
}
m["yok-kry"] = {
"Yokuts Sungai Kings",
6413014,
"yok",
"Latn",
}
m["yok-nvy"] = {
"Yokuts Lembah Utara",
85789777,
"yok",
"Latn",
}
m["yok-ply"] = {
"Yokuts Palewyami",
2387391,
"yok",
"Latn",
}
m["yok-svy"] = {
"Yokuts Lembah Selatan",
12642473,
"yok",
"Latn",
}
m["yok-tky"] = {
"Yokuts Tule-Kaweah",
7851988,
"yok",
"Latn",
}
m["ypk-pro"] = {
"Yupik Purba",
116773295,
"ypk",
"Latn",
type = "reconstructed",
}
m["yrk-for"] = {
"Nenets Hutan",
1295107,
"yrk",
"Cyrl",
translit = "yrk-for-translit",
strip_diacritics = {remove_diacritics = c.grave .. c.acute .. c.macron .. c.breve .. c.dotabove},
}
m["yrk-tun"] = {
"Nenets Tundra",
36452,
"yrk",
"Cyrl",
strip_diacritics = {
from = {"ӑ", "а̄", "э̇", "ӣ", "ы̄", "ӯ", "ю̄", "я̆", "я̄"},
to = {"а", "а", "э", "и", "ы", "у", "ю", "я", "я"},
},
translit = "yrk-tun-translit",
}
m["zhx-min-pro"] = {
"Min Purba",
19646347,
"zhx-min",
"Latn",
type = "reconstructed",
}
m["zhx-sht"] = {
"Tuhua Shaozhou",
1920769,
"zhx",
"Nshu, Hants",
generate_forms = "zh-generateforms",
sort_key = {Hani = "Hani-sortkey"},
}
m["zhx-sic"] = {
"Sichuan",
2278732,
"zhx-man",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["zhx-tai"] = {
"Taishan",
2208940,
"zhx-yue",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["zle-ono"] = {
"Novgorod Kuno",
162013,
"zle",
"Cyrs, Glag",
translit = {Cyrs = "Cyrs-translit", Glag = "Glag-translit"},
-- strip_diacritics, sort_key Cyrs dalam [[Module:scripts/data]]
}
m["zle-ort"] = {
"Ruthenia Kuno",
13211,
"zle",
"Arab, Cyrs, Latn",
ancestors = "orv",
translit = {
Cyrs = "zle-ort-translit",
Arab = "zle-ort-Arab-translit",
},
strip_diacritics = {
Cyrs = {
remove_diacritics = m_langdata.chars_substitutions["Cyrs_remove_diacritics"],
remove_exceptions = {"Ї", "ї"},
},
Arab = "ar-stripdiacritics",
},
-- sort_key Cyrs dalam [[Module:scripts/data]]
}
m["zls-chs"] = {
"Slavonic Gereja",
33251,
"zls",
"Cyrs, Glag, Latn",
ancestors = "cu",
translit = {
Cyrs = "Cyrs-translit",
Glag = "Glag-translit"
},
-- strip_diacritics, sort_key Cyrs dalam [[Module:scripts/data]]
}
m["zlw-ocs"] = {
"Czech Kuno",
593096,
"zlw",
"Latn",
}
m["zlw-opl"] = {
"Poland Kuno",
149838,
"zlw-lch",
"Latn",
strip_diacritics = {remove_diacritics = c.ringabove},
}
m["zlw-osk"] = {
"Slovak Kuno",
12776676,
"zlw",
"Latn",
}
m["zlw-slv"] = {
"Slovincia",
36822,
"zlw-pom",
"Latn",
strip_diacritics = {remove_diacritics = c.macron .. c.breve},
}
return require("Module:languages").finalizeData(m, "language")
ljz37ftuuquyft1e1u12twlgag53cjo
Modul:parameters/data
828
33722
373502
342815
2026-09-10T20:43:51Z
SNN95
2113
kemaskini
373502
Scribunto
text/plain
local list_to_set = require("Module:table").listToSet
local alias_of_2 = {alias_of = 2}
local boolean = {type = "boolean"}
local empty_list = {}
local list = {list = true}
local list_allow_holes_separate_no_index = {list = true, allow_holes = true, separate_no_index = true}
local required = {required = true}
local required_default_ = {required = true, default = ""}
local required_lang_default_und = {required = true, type = "language", default = "und"}
local type_labels = {type = "labels"}
local type_qualifier = {type = "qualifier"}
local type_references = {type = "references"}
local m = {}
-- [[Module:anchors]]
m["anchor"] = {
[1] = {required = true, list = true, disallow_holes = true},
}
m["senseid"] = {
[1] = required_lang_default_und,
[2] = required_default_,
id = alias_of_2,
tag = {set = list_to_set{"li", "p"}, default = "li"},
}
m["etymid"] = {
[1] = required_lang_default_und,
[2] = required_default_,
id = alias_of_2,
}
-- [[Module:etymon]]
m["etymon"] = {
[1] = required_lang_default_und,
[2] = {list = true, disallow_holes = true},
id = true,
title = true,
tree = boolean,
text = true,
exnihilo = boolean,
etydate = true,
doublet = {sublist = "comma without whitespace"},
rfe = true,
etystub = true,
nl = boolean,
pos = true,
notree = {default = false, type = "boolean"},
nocat = {default = false, type = "boolean"},
nodot = {default = false, type = "boolean"},
dot = true,
json = {default = false, type = "boolean"},
}
-- [[Module:transclude]]
m["transclude"] = {
[1] = {required = true, type = "language"},
[2] = {list = true, required = true},
id = true,
sort = true,
nogloss = {default = false, type = "boolean"},
no_truncate_gloss = boolean,
include_place_extra_info = boolean,
place_translation_follows = boolean,
place_addl = true,
lb = true,
nolb = true,
nocat = boolean,
to = boolean,
t = list,
indent = true,
dot = boolean,
pagename = true,
}
-- [[Module:translations]]
m["translation"] = {
[1] = required_lang_default_und,
[2] = true,
[3] = list,
alt = true,
id = true,
sc = {type = "script"},
tr = true,
ts = true,
lit = true,
l = type_labels,
ll = type_labels,
q = type_qualifier,
qq = type_qualifier,
ref = type_references,
}
m["t-needed"] = {
[1] = required_lang_default_und,
[2] = {set = list_to_set{"usex", "quote"}},
nocat = boolean,
sort = true,
}
m["trans-top"] = {
[1] = true,
id = true,
["column-width"] = true,
}
m["trans-top-also"] = {
[1] = required,
[2] = list,
id = list_allow_holes_separate_no_index,
["column-width"] = true,
}
m["checktrans-top"] = {
[1] = true,
["column-width"] = true,
}
m["trans-bottom"] = empty_list
m["trans-see"] = {
[1] = required,
[2] = list,
id = list_allow_holes_separate_no_index,
}
m["translation subpage"] = empty_list
m["no equivalent translation"] = {
[1] = required_lang_default_und,
noend = boolean,
}
m["no attested translation"] = {
[1] = required_lang_default_und,
noend = boolean,
sort = true,
}
m["not used"] = {
[1] = required_lang_default_und,
[2] = true,
}
return m
51jr4evgp9f3cxhobug46hkqur9gpta
Modul:languages/data/3/m
828
33725
373492
344720
2026-09-10T19:45:57Z
SNN95
2113
kemaskini
373492
Scribunto
text/plain
local m_langdata = require("Module:languages/data")
-- Dimuatkan mengikut permintaan, kerana mungkin tidak diperlukan (bergantung pada 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["maa"] = {
"Mazatec San Jerónimo Tecóatl",
7692927,
"omq-maz",
"Latn",
}
m["mab"] = {
"Mixtec Yutanduchi",
12645448,
"omq-mxt",
"Latn",
}
m["mad"] = {
"Madura",
36213,
"poz-msa",
"Latn, Java",
}
m["mae"] = {
"Bo-Rukul",
34967,
"nic-ple",
"Latn",
}
m["maf"] = {
"Mafa",
35819,
"cdc-cbm",
"Latn",
}
m["mag"] = {
"Magahi", -- Jangan dikelirukan dengan Prakrit Magadhi (pra-mag)
33728,
"inc-bih",
"Deva, Kthi",
translit = {
Deva = "bho-translit",
Kthi = "bho-Kthi-translit",
},
}
m["mai"] = {
"Maithili",
36109,
"inc-bih",
"Deva, Tirh, Kthi, Newa",
translit = {
Deva = "mai-translit",
Tirh = "mai-Tirh-translit",
Kthi = "bho-Kthi-translit",
},
}
m["maj"] = {
"Mazatec Jalapa de Díaz",
3915999,
"omq-maz",
"Latn",
}
m["mak"] = {
"Makassar",
33643,
"poz-ssw",
"Latn, Bugi, Maka",
}
m["mam"] = {
"Mam",
33467,
"myn",
"Latn",
}
m["man"] = {
"Mandingo",
35772,
"dmn-man",
"Latn",
}
m["maq"] = {
"Mazatec Chiquihuitlán",
5101757,
"omq-maz",
"Latn",
}
m["mas"] = {
"Maasai",
35787,
"sdv-lma",
"Latn",
}
m["mat"] = {
"Matlatzinca",
12953704,
"omq",
"Latn",
}
m["mau"] = {
"Mazatec Huautla",
36230,
"omq-maz",
"Latn",
}
m["mav"] = {
"Sateré-Mawé",
6794475,
"tup",
"Latn",
}
m["maw"] = {
"Mampruli",
35804,
"nic-wov",
"Latn",
}
m["max"] = {
"Melayu Maluku Utara",
7056136,
"crp",
"Latn",
ancestors = "ms",
}
m["maz"] = {
"Mazahua Tengah",
36228,
"oto",
"Latn",
}
m["mba"] = {
"Higaonon",
5753411,
"mno",
"Latn",
}
m["mbb"] = {
"Manobo Bukidnon Barat",
7987643,
"mno",
"Latn",
}
m["mbc"] = {
"Macushi",
56633,
"sai-pem",
"Latn",
}
m["mbd"] = {
"Manobo Dibabawon",
18755523,
"mno",
"Latn",
}
m["mbe"] = {
"Molale",
3319444,
"nai-plp",
"Latn",
}
m["mbf"] = {
"Melayu Baba",
18642798,
"crp",
"Latn",
ancestors = "ms",
}
m["mbh"] = {
"Mangseng",
6749147,
"poz-ocw",
"Latn",
}
m["mbi"] = {
"Manobo Ilianen",
14916911,
"mno",
"Latn",
}
m["mbj"] = {
"Nadëb",
3335011,
"sai-nad",
"Latn",
}
m["mbk"] = {
"Malol",
6744477,
"poz-ocw",
"Latn",
}
m["mbl"] = {
"Maxakalí",
3029682,
"sai-mje",
"Latn",
}
m["mbm"] = {
"Ombamba",
36407,
"bnt-mbt",
"Latn",
}
m["mbn"] = {
"Macaguán",
3273980,
"sai-guh",
"Latn",
}
m["mbo"] = { -- seperti 'bqz', 'bsi' dan 'bss', merupakan dialek Manenguba
"Mbo (Cameroon)",
36011,
"bnt-mne",
"Latn",
}
m["mbp"] = {
"Wiwa",
3012604,
"cba",
"Latn",
}
m["mbq"] = {
"Maisin",
3448149,
nil,
"Latn",
}
m["mbr"] = {
"Nukak Makú",
3346228,
"sai-nad",
"Latn",
}
m["mbs"] = {
"Manobo Sarangani",
7423093,
"mno",
"Latn",
}
m["mbt"] = {
"Manobo Matigsalug",
6787447,
"mno",
"Latn",
}
m["mbu"] = {
"Mbula-Bwazza",
3913324,
"nic-jrn",
"Latn",
}
m["mbv"] = {
"Mbulungish",
36003,
"alv-nal",
"Latn",
}
m["mbw"] = {
"Maring",
3293280,
"ngf-jim",
"Latn",
}
m["mbx"] = {
"Mari (Sepik)",
6760942,
"paa-sep",
"Latn",
}
m["mby"] = {
"Memoni",
4180871,
"inc-snd",
"Gujr, Aran",
}
m["mbz"] = {
"Mixtec Amoltepec",
13583504,
"omq-mxt",
"Latn",
}
m["mca"] = {
"Maca",
3281043,
"sai-mtc",
"Latn",
}
m["mcb"] = {
"Machiguenga",
3915441,
"awd",
"Latn",
}
m["mcc"] = {
"Bitur",
4919173,
"paa-tir",
"Latn",
}
m["mcd"] = {
"Sharanahua",
12953881,
"sai-pan",
"Latn",
}
m["mce"] = {
"Mixtec Itundujia",
12953727,
"omq-mxt",
"Latn",
}
m["mcf"] = {
"Matsés",
2981620,
"sai-pan",
"Latn",
}
m["mcg"] = {
"Mapoyo",
56946,
"sai-map",
"Latn",
}
m["mch"] = {
"Ye'kwana",
3082027,
"sai-car",
"Latn",
sort_key = {
remove_diacritics = "%-%s",
from = {"'", "ñ", "ö", "sh", "ü"},
to = {"’", "n" .. p[1], "o" .. p[1], "s" .. p[1], "u" .. p[1]}
}
}
m["mci"] = {
"Mese",
6821190,
"ngf-san",
"Latn",
}
m["mcj"] = {
"Mvanip",
3913281,
"nic-mmb",
"Latn",
}
m["mck"] = {
"Mbunda",
34170,
"bnt-clu",
"Latn",
}
m["mcl"] = {
"Macaguaje",
6722435,
"sai-tuc",
"Latn",
}
m["mcm"] = {
"Kristang",
2669169,
"crp",
"Latn",
ancestors = "pt",
}
m["mcn"] = {
"Masana",
56668,
"cdc-mas",
}
m["mco"] = {
"Mixe Coatlán",
25559716,
"nai-miz",
"Latn",
}
m["mcp"] = {
"Makaa",
35803,
"bnt-mka",
"Latn",
}
m["mcq"] = {
"Ese",
5397551,
"ngf-koi",
"Latn",
}
m["mcr"] = {
"Menya",
11732444,
"ngf-kme",
"Latn",
}
m["mcs"] = {
"Mambai",
6748872,
"alv-mbm",
"Latn",
}
m["mcu"] = {
"Mambila Cameroon",
19359039,
"nic-mmb",
"Latn",
}
-- mcv (Minanibai) digabungkan ke dalam ffi (Foia Foia) mengikut Glottolog
m["mcw"] = {
"Mawa",
3441333,
"cdc-est",
"Latn",
}
m["mcx"] = {
"Mpiemo",
35908,
"bnt-bek",
"Latn",
}
m["mcy"] = {
"Watut Selatan",
12953293,
"poz-ocw",
"Latn",
}
m["mcz"] = {
"Mawan",
11732429,
"ngf-han",
"Latn",
}
m["mda"] = {
"Mada (Nigeria)",
3915843,
"nic-nin",
"Latn",
}
m["mdb"] = {
"Morigi",
6912195,
"paa-kiw",
"Latn",
}
m["mdc"] = {
"Male",
6742927,
"ngf-min",
"Latn",
}
m["mdd"] = {
"Mbum",
36170,
"alv-mbm",
"Latn",
}
m["mde"] = {
"Mabang Bura",
35860,
"ssa",
"Arab, Latn",
}
m["mdf"] = {
"Moksha",
13343,
"urj-mdv",
"Cyrl",
translit = "mdf-translit",
strip_diacritics = {remove_diacritics = c.acute},
override_translit = true,
sort_key = "mdf-sortkey",
}
m["mdg"] = {
"Massalat",
759984,
nil,
"Latn",
}
m["mdh"] = {
"Maguindanao",
33717,
"phi",
"Latn, Arab",
}
m["mdi"] = {
"Mamvu",
3033594,
"csu-mle",
"Latn",
}
m["mdj"] = {
"Mangbetu",
56327,
"csu-maa",
"Latn",
}
m["mdk"] = {
"Mangbutu",
6748877,
"csu-mle",
"Latn",
}
m["mdl"] = {
"Bahasa Isyarat Malta",
6744816,
"sgn",
}
m["mdm"] = {
"Mayogo",
6797580,
"nic-nke",
"Latn",
}
m["mdn"] = {
"Mbati",
36165,
"bnt-ngn",
"Latn",
}
m["mdp"] = {
"Mbala",
6799583,
"bnt-pen",
"Latn",
}
m["mdq"] = {
"Mbole",
6799727,
"bnt-mbe",
"Latn",
}
m["mdr"] = {
"Mandar",
35995,
"poz-ssw",
"Bugi, Latn",
}
m["mds"] = {
"Maria",
3448673,
"paa-man",
"Latn",
}
m["mdt"] = {
"Mbere",
36062,
"bnt-mbt",
"Latn",
}
m["mdu"] = {
"Mboko",
36058,
"bnt-mbo",
"Latn",
}
m["mdv"] = {
"Mixtec Santa Lucía Monteverde",
12953722,
"omq-mxt",
"Latn",
}
m["mdw"] = {
"Mbosi",
36035,
"bnt-mbo",
"Latn",
}
m["mdx"] = {
"Dizin",
35313,
"omv-diz",
"Ethi, Latn",
}
m["mdy"] = {
"Maale",
795327,
"omv-ome",
"Latn",
}
m["mdz"] = {
"Suruí Do Pará",
10322149,
"tup-gua",
"Latn",
}
m["mea"] = {
"Menka",
36078,
"nic-grs",
"Latn",
}
m["meb"] = {
"Ikobi-Mena",
11732241,
"paa-tki",
"Latn",
}
m["mec"] = {
"Mara",
6772774,
}
m["med"] = {
"Melpa",
36166,
"ngf-hag",
"Latn",
}
m["mee"] = {
"Mengen",
3305831,
"poz-ocw",
"Latn",
}
m["mef"] = {
"Megam",
6808589,
}
m["meh"] = {
"Mixtec Tlaxiaco Barat Daya",
7070686,
"omq-mxt",
"Latn",
}
m["mei"] = {
"Midob",
36007,
"nub",
"Latn",
}
m["mej"] = {
"Meyah",
11732436,
"paa-ebh",
"Latn",
}
m["mek"] = {
"Mekeo",
3304803,
"poz-ocw",
"Latn",
}
m["mel"] = {
"Melanau Tengah",
18638319,
"poz-swa",
"Latn",
}
m["mem"] = {
"Mangala",
6748664,
}
m["men"] = {
"Mende (Sierra Leone)",
1478672,
"dmn-msw",
"Latn, Mend",
}
m["meo"] = {
"Melayu Kedah",
4925684,
"poz-mly",
"Latn, Arab, Thai",
strip_diacritics = {
from = {u(0xF70F)},
to = {"ญ"}
},
sort_key = {Thai = "Thai-sortkey"},
}
m["mep"] = {
"Miriwoong",
3111847,
"aus-jar",
"Latn",
}
m["meq"] = {
"Merey",
3502314,
"cdc-cbm",
"Latn",
}
m["mer"] = {
"Meru",
13313,
"bnt-kka",
"Latn",
}
m["mes"] = {
"Masmaje",
3440448,
}
m["met"] = {
"Mato",
3299190,
"poz-ocw",
"Latn",
}
m["meu"] = {
"Motu",
33516,
"poz-ocw",
"Latn",
}
m["mev"] = {
"Mano",
3913286,
"dmn-mda",
"Latn",
}
m["mew"] = {
"Maaka",
3438764,
"cdc-wst",
"Latn",
}
m["mey"] = {
"Arab Hassaniyah",
56231,
"sem-arb",
"Arab",
}
m["mez"] = {
"Menominee",
13363,
"alg",
"Latn",
sort_key = {remove_diacritics = "·"},
}
m["mfa"] = {
"Melayu Patani",
1199751,
"poz-mly",
"Latn, Arab, Thai",
strip_diacritics = {
from = {u(0xF70F)},
to = {"ญ"}
},
sort_key = {Thai = "Thai-sortkey"},
}
m["mfb"] = {
"Bangka",
3258818,
"poz-mly",
"Latn, Arab",
}
m["mfc"] = {
"Mba",
4286464,
"nic-mbc",
"Latn",
}
m["mfd"] = {
"Mendankwe-Nkwen",
11129537,
"nic-nge",
"Latn",
}
m["mfe"] = {
"Kreol Mauritius",
33661,
"crp",
"Latn",
ancestors = "fr",
sort_key = s["roa-oil-sortkey"],
}
m["mff"] = {
"Naki",
36083,
"nic-bbe",
"Latn",
}
m["mfg"] = {
"Mixifore",
3914478,
"dmn-mok",
}
m["mfh"] = {
"Matal",
3501751,
"cdc-cbm",
"Latn",
}
m["mfi"] = {
"Wandala",
3441249,
"cdc-cbm",
"Latn",
}
m["mfj"] = {
"Mefele",
3501871,
"cdc-cbm",
"Latn",
}
m["mfk"] = {
"Mofu Utara",
56303,
"cdc-cbm",
"Latn",
}
m["mfl"] = {
"Putai",
56291,
"cdc-cbm",
"Latn",
}
m["mfm"] = {
"Marghi Selatan",
56248,
}
m["mfn"] = {
"Mbembe Cross River",
3915395,
"nic-uce",
"Latn",
}
m["mfo"] = {
"Mbe",
36075,
"nic-eko",
"Latn",
}
m["mfp"] = {
"Melayu Makassar",
12952776,
"qfa-mix",
"Latn",
ancestors = "ms, mak"
}
m["mfq"] = {
"Moba",
19921578,
"nic-grm",
"Latn",
}
m["mfr"] = {
"Marrithiyel",
6773014,
"aus-dal",
"Latn",
}
m["mfs"] = {
"Bahasa Isyarat Mexico",
3915511,
"sgn",
"Latn", -- apabila didokumentasikan
}
m["mft"] = {
"Mokerang",
3319387,
"poz-aay",
"Latn",
}
m["mfu"] = {
"Mbwela",
11004988,
"bnt-clu",
ancestors = "lch",
}
m["mfv"] = {
"Mandjak",
35822,
"alv-pap",
}
m["mfw"] = {
"Mulaha",
6933720,
"paa-kwa",
"Latn",
}
m["mfx"] = {
"Melo",
6813268,
"omv-nom",
}
m["mfy"] = {
"Mayo",
56729,
"azc-trc",
"Latn",
sort_key = {remove_diacritics = c.acute},
}
m["mfz"] = {
"Mabaan",
20526385,
"sdv",
"Latn",
}
m["mga"] = {
"Ireland Pertengahan",
36116,
"cel-gae",
"Latn",
ancestors = "sga",
strip_diacritics = {remove_diacritics = c.dotabove .. c.diaer .. "·"},
sort_key = "mga-sortkey",
}
m["mgb"] = {
"Mararit",
56359,
"sdv-tmn",
"Latn",
}
m["mgc"] = {
"Morokodo",
6913216,
"csu-bbk",
"Latn",
}
m["mgd"] = {
"Moru",
6915014,
"csu-mma",
"Latn, Arab",
}
m["mge"] = {
"Mango",
713659,
"csu-sar",
"Latn",
}
m["mgf"] = {
"Maklew",
6739816,
"paa-bul",
"Latn",
}
m["mgg"] = {
"Mpongmpong",
35924,
"bnt-bek",
}
m["mgh"] = {
"Makhuwa-Meetto",
33604,
"bnt-mak",
"Latn",
ancestors = "vmw",
}
m["mgi"] = {
"Jili",
3914497,
"nic-pls",
}
m["mgj"] = {
"Abureni",
3441256,
"nic-cde",
"Latn",
}
m["mgk"] = {
"Mawes",
6794395,
"qfa-dis", -- Papua; pencilan dalam Glottolog, Foley (2018) dan Hammarström (2010); dalam bahasa-bahasa Tor-Kwerba per
-- Usher (2020)
"Latn",
}
m["mgl"] = {
"Maleu-Kilenge",
3281884,
}
m["mgm"] = {
"Mambae",
35774,
"poz-tim",
"Latn",
}
m["mgn"] = {
"Mbangi",
11017443,
"nic-ngd",
"Latn",
}
m["mgo"] = {
"Meta'",
36054,
"nic-mom",
"Latn",
}
m["mgp"] = {
"Magar Timur",
12952758,
"sit-gma",
"Deva, Latn",
}
m["mgq"] = {
"Malila",
6743679,
"bnt-mby",
"Latn",
}
m["mgr"] = {
"Mambwe-Lungu",
626210,
"bnt-mwi",
"Latn",
}
m["mgs"] = {
"Manda (Tanzania)",
16939267,
"bnt-bki",
}
m["mgt"] = {
"Mwakai",
11260674,
"paa-wke",
"Latn",
}
m["mgu"] = {
"Mailu",
3278246,
"paa-mal",
"Latn",
}
m["mgv"] = {
"Matengo",
6786446,
"bnt-mbi",
"Latn",
}
m["mgw"] = {
"Matumbi",
6791974,
"bnt-mbi",
"Latn",
}
m["mgy"] = {
"Mbunga",
6799817,
"bnt-kil",
}
m["mgz"] = {
"Mbugwe",
3426367,
"bnt-mra",
}
m["mha"] = {
"Manda (India)",
56760,
"dra-kki",
"Orya",
translit = "kxv-translit",
}
m["mhb"] = {
"Mahongwe",
35816,
"bnt-kel",
}
m["mhc"] = {
"Mocho",
1941682,
"myn",
}
m["mhd"] = {
"Mbugu",
36152,
"qfa-mix",
"Latn",
ancestors = "asa",
}
m["mhe"] = {
"Besisi",
2742262,
"mkh-asl",
"Latn",
}
m["mhf"] = {
"Mamaa",
6745346,
"ngf-era",
"Latn",
}
m["mhg"] = {
"Marrgu",
6772812,
}
m["mhi"] = {
"Ma'di",
56670,
"csu-mma",
"Latn",
strip_diacritics = {remove_diacritics = c.acute .. c.grave .. c.tilde .. c.dotbelow},
}
m["mhj"] = {
"Mogholi",
13336,
"xgn",
"Arab, Latn",
translit = "fa-cls-translit",
strip_diacritics = {
Arab = "ar-stripdiacritics",
},
}
m["mhk"] = {
"Mungaka",
36068,
"nic-nun",
}
m["mhl"] = {
"Mauwake",
6794095,
"ngf-kum",
"Latn",
}
m["mhm"] = {
"Makhuwa-Moniga",
6900145,
"bnt-mak",
}
m["mhn"] = {
"Mòcheno",
268130,
"gmw-hgm",
"Latn",
ancestors = "bar",
sort_key = {remove_diacritics = c.grave},
}
m["mho"] = {
"Mashi",
10962737,
"bnt-kav",
"Latn",
}
m["mhp"] = {
"Melayu Bali",
12473441,
"crp",
"Latn, Bali, Arab",
}
m["mhq"] = {
"Mandan",
1957120,
"sio",
"Latn",
}
m["mhr"] = {
"Mari Timur",
3906614,
"chm",
"Cyrl",
translit = "chm-translit",
override_translit = true,
strip_diacritics = {remove_diacritics = c.grave .. c.acute},
sort_key = {
from = {"ё", "ҥ", "ӧ", "ӱ"},
to = {"е" .. p[1], "н" .. p[1], "о" .. p[1], "у" .. p[1]}
}
}
m["mhs"] = {
"Buru (Indonesia)",
2928650,
"poz-cma",
"Latn",
}
m["mht"] = {
"Mandahuaca",
6747924,
"awd-nwk",
}
m["mhu"] = {
"Taraon",
56400,
"sit-gsi",
"Latn",
}
m["mhw"] = {
"Mbukushu",
2691548,
"bnt",
"Latn",
}
m["mhx"] = {
"Lhao Vo",
11149315,
"tbq-brm",
"Latn",
}
m["mhy"] = {
"Ma'anyan",
2328761,
"poz-bre",
"Latn",
}
m["mhz"] = {
"Mor (Austronesia)",
2122792,
"poz-hce",
"Latn",
}
m["mia"] = {
"Miami",
56523,
"alg",
"Latn",
}
m["mib"] = {
"Mixtec Atatláhuca",
32093046,
"omq-mxt",
"Latn",
}
m["mic"] = {
"Mi'kmaq",
13321,
"alg-eas",
"Latn",
}
m["mid"] = {
"Mandaia",
6991742,
"sem-ase",
"Mand",
ancestors = "myz",
translit = {
Mand = "Mand-translit",
},
strip_diacritics = {
Mand = "Mand-stripdiacritics",
}
}
m["mie"] = {
"Mixtec Ocotepec",
25559575,
"omq-mxt",
"Latn",
}
m["mif"] = {
"Mofu-Gudur",
1365132,
"cdc-cbm",
"Latn",
}
m["mig"] = {
"Mixtec San Miguel el Grande",
12953719,
"omq-mxt",
"Latn",
}
m["mih"] = {
"Mixtec Chayuco",
13583510,
"omq-mxt",
"Latn",
}
m["mii"] = {
"Mixtec Chigmecatitlán",
12953724,
"omq-mxt",
"Latn",
}
m["mij"] = {
"Mungbam",
34725,
"nic-beb",
"Latn",
}
m["mik"] = {
"Mikasuki",
13316,
"nai-mus",
"Latn",
}
m["mil"] = {
"Mixtec Peñoles",
42411307,
"omq-mxt",
"Latn",
}
m["mim"] = {
"Mixtec Alacatlatzala",
14697894,
"omq-mxt",
"Latn",
}
m["min"] = {
"Minangkabau",
13324,
"poz-mly",
"Latn, Arab",
}
m["mio"] = {
"Mixtec Pinotepa Nacional",
7196415,
"omq-mxt",
"Latn",
}
m["mip"] = {
"Mixtec Apasco-Apoala",
13583505,
"omq-mxt",
"Latn",
}
m["miq"] = {
"Miskito",
1516803,
"nai-min",
"Latn",
strip_diacritics = {remove_diacritics = c.circ},
}
m["mir"] = {
"Mixe Tanah Genting",
6088873,
"nai-miz",
"Latn",
}
m["mit"] = {
"Mixtec Puebla Selatan",
7570345,
"omq-mxt",
"Latn",
}
m["miu"] = {
"Mixtec Cacaloxtepec",
12953723,
"omq-mxt",
"Latn",
}
m["miw"] = {
"Akoye",
3327462,
"ngf-taa",
"Latn",
}
m["mix"] = {
"Mixtec Mixtepec",
6884125,
"omq-mxt",
"Latn",
}
m["miy"] = {
"Mixtec Ayutla",
13583508,
"omq-mxt",
"Latn",
}
m["miz"] = {
"Mixtec Coatzospan",
3317290,
"omq-mxt",
"Latn",
}
m["mjb"] = {
"Makalero",
35729,
"paa-alp",
"Latn",
}
m["mjc"] = {
"Mixtec San Juan Colorado",
12953718,
"omq-mxt",
"Latn",
}
m["mjd"] = {
"Maidu Barat Laut",
3198700,
"nai-mdu",
"Latn",
}
m["mje"] = {
"Muskum",
3913334,
}
-- mjg "Monguor" tidak diiktiraf sebagai bahasa, tetapi merupakan kod keluarga
m["mji"] = {
"Kim Mun",
1115317,
"hmx-mie",
"Latn",
}
m["mjj"] = {
"Mawak",
11732427,
"ngf-tib",
"Latn",
}
m["mjk"] = {
"Matukar",
6791963,
"poz-ocw",
"Latn",
}
m["mjl"] = {
"Mandeali",
6747931,
"him",
"Deva, Takr",
translit = "hi-translit",
}
m["mjm"] = {
"Medebur",
6805227,
"poz-ocw",
"Latn",
}
m["mjn"] = {
"Mebu",
6804364,
"ngf-yup",
"Latn",
}
m["mjo"] = {
"Malankuravan",
14916887,
"dra-mal",
}
m["mjp"] = {
"Malapandaram",
10575729,
"dra-tam",
}
m["mjq"] = {
"Malaryan",
12952773,
"dra-mal",
}
m["mjr"] = {
"Malavedan",
12952775,
"dra-mal",
"Mlym",
-- Translit Mlym dalam [[Module:scripts/data]]
}
m["mjs"] = {
"Miship",
3441264,
"cdc-wst",
"Latn",
}
m["mjt"] = {
"Paharia Sawriya",
33907,
"dra-mlo",
"Beng, Deva",
}
m["mju"] = {
"Manna-Dora",
10576453,
"dra-tel",
}
m["mjv"] = {
"Mannan",
3286037,
"dra-tam",
"Mlym, Taml",
translit = {
Taml = "ta-translit",
},
-- Translit Mlym dalam [[Module:scripts/data]]
}
m["mjw"] = {
"Karbi",
56591,
"tbq-kuk",
"Latn",
}
m["mjx"] = {
"Mahali",
12953686,
"mun",
}
m["mjy"] = {
"Mahican",
3182562,
"alg-eas",
"Latn",
}
m["mjz"] = {
"Majhi",
6737786,
"inc-bih",
}
m["mka"] = {
"Mbre",
3450154,
"nic", --tidak terkelas dalam niger-congo
}
m["mkb"] = {
"Mal Paharia",
6583595,
"inc-eas",
"Deva",
}
m["mkc"] = {
"Siliput",
7515090,
"paa-mam",
"Latn",
}
m["mke"] = {
"Mawchi",
21403317,
}
m["mkf"] = {
"Miya",
43328,
"cdc-wst",
"Latn",
}
m["mkg"] = {
"Mak (China)",
3280623,
"qfa-kms",
}
m["mki"] = {
"Dhatki",
32480,
"raj",
"Deva, Mahj, Arab",
}
m["mkj"] = {
"Mokil",
2335528,
"poz-mic",
"Latn",
}
m["mkk"] = {
"Byep",
35052,
"bnt-mka",
}
m["mkl"] = {
"Mokole",
36047,
"alv-yor",
"Latn",
}
m["mkm"] = {
"Moklen",
3319380,
}
m["mkn"] = {
"Melayu Kupang",
18458203,
"crp",
"Latn",
}
m["mko"] = {
"Mingang Doso",
3915382,
"alv-bwj",
}
m["mkp"] = {
"Moikodi",
6894594,
"ngf-yar",
"Latn",
}
m["mkq"] = {
"Miwok Teluk",
3460957,
"nai-utn",
"Latn",
}
m["mkr"] = {
"Malas",
11732402,
"ngf-nad",
"Latn",
}
m["mks"] = {
"Mixtec Silacayoapan",
7514027,
"omq-mxt",
"Latn",
}
m["mkt"] = {
"Vamale",
14916907,
"poz-cln",
"Latn",
}
m["mku"] = {
"Maninka Konyanka",
11163298,
"dmn-mnk",
}
m["mkv"] = {
"Mav̋ea",
3073532,
"poz-vnn",
"Latn",
}
m["mkx"] = {
"Manobo Cinamiguin",
12953697,
"mno",
"Latn",
}
m["mky"] = {
"Taba",
3512690,
"poz-hce",
"Latn",
}
m["mkz"] = {
"Makasae",
35782,
"paa-eti",
"Latn",
}
m["mla"] = {
"Tamambo",
1153276,
"poz-vnn",
"Latn",
}
m["mlb"] = {
"Mbule",
35843,
"nic-ymb",
"Latn",
}
m["mlc"] = {
"Caolan",
3446682,
"tai-cho",
"Latn, Hani",
sort_key = {Hani = "Hani-sortkey"},
}
m["mle"] = {
"Manambu",
11732406,
"paa-nnd",
"Latn",
}
m["mlf"] = {
"Mal",
3281057,
"mkh-khm",
}
m["mlh"] = {
"Mape",
6753787,
"ngf-kma",
"Latn",
}
m["mli"] = {
"Malimpung",
12473435,
}
m["mlj"] = {
"Miltu",
3441310,
}
m["mlk"] = {
"Ilwana",
6001357,
"bnt-sab",
}
m["mll"] = {
"Teluk Malua",
6744946,
"poz-vnc",
"Latn",
}
m["mlm"] = {
"Mulam",
3092284,
"qfa-kms",
"Latn",
}
m["mln"] = {
"Malango",
3281522,
"poz-sls",
"Latn",
}
m["mlo"] = {
"Mlomp",
36009,
"alv-bak",
}
m["mlp"] = {
"Bargam",
4860543,
"ngf-mad",
"Latn",
}
m["mlq"] = {
"Maninkakan Barat",
11028033,
"dmn-wmn",
}
m["mlr"] = {
"Vame",
3515088,
"cdc-cbm",
"Latn",
}
m["mls"] = {
"Masalit",
56557,
"ssa",
}
m["mlu"] = {
"To'abaita",
36645,
"poz-sls",
"Latn",
}
m["mlv"] = {
"Mwotlap",
2475538,
"poz-vnn",
"Latn",
}
m["mlw"] = {
"Moloko",
1965222,
"cdc-cbm",
"Latn",
}
m["mlx"] = {
"Malfaxal",
2157421,
"poz-vnc",
"Latn",
}
m["mlz"] = {
"Malaynon",
18755512,
"phi",
}
m["mma"] = {
"Mama",
3913963,
"nic-jrn",
"Latn",
}
m["mmb"] = {
"Momina",
6897297,
}
m["mmc"] = {
"Mazahua Michoacán",
12953705,
"oto",
"Latn",
}
m["mmd"] = {
"Maonan",
3092293,
"qfa-kms",
"Latn",
}
m["mme"] = {
"Tirax",
3276286,
"poz-vnc",
"Latn",
}
m["mmf"] = {
"Mundat",
56263,
"cdc-wst",
"Latn",
}
m["mmg"] = {
"Ambrym Utara",
2842468,
"poz-vnc",
"Latn",
}
m["mmh"] = {
"Mehináku",
3501838,
"awd",
"Latn",
}
m["mmi"] = {
"Hember Avu",
6940113,
"ngf-tib",
"Latn",
}
m["mmj"] = {
"Majhwar",
6737795,
}
m["mmk"] = {
"Mukha-Dora",
6933447,
}
m["mml"] = {
"Man Met",
3194984,
"mkh-pal",
}
m["mmm"] = {
"Maii",
6735599,
"poz-vnc",
"Latn",
}
m["mmn"] = {
"Mamanwa",
3206623,
"phi",
"Latn",
}
m["mmo"] = {
"Mangga Buang",
12952294,
"poz-ocw",
"Latn",
}
m["mmp"] = {
"Musan",
2605703,
"paa-amu",
"Latn",
}
m["mmq"] = {
"Aisi",
6940074,
"ngf-ais",
"Latn",
}
m["mmr"] = {
"Miao Xiangxi Barat",
3307901,
"hmn",
"Latn",
}
m["mmt"] = {
"Malalamai",
3281496,
"poz-ocw",
"Latn",
}
m["mmu"] = {
"Mmaala",
13123461,
"nic-ymb",
"Latn",
}
m["mmv"] = {
"Miriti",
6873567,
"sai-tuc",
"Latn",
}
m["mmw"] = {
"Emae",
3051961,
"poz-pnp",
"Latn",
}
m["mmx"] = {
"Madak",
3275205,
"poz-ocw",
"Latn",
}
m["mmy"] = {
"Migaama",
56259,
"cdc-est",
"Latn",
}
m["mmz"] = {
"Mabaale",
11003249,
"bnt-ngn",
}
m["mna"] = {
"Mbula",
3303572,
"poz-ocw",
"Latn",
}
m["mnb"] = {
"Muna",
6935584,
"poz-mun",
"Latn",
}
m["mnc"] = {
"Manchu",
33638,
"tuw-jrc",
"mnc-Mong, Latn",
ancestors = "juc",
-- translit mnc-Mong dalam [[Module:scripts/data]]
}
m["mnd"] = {
"Mondé",
6898840,
"tup",
"Latn",
}
m["mne"] = {
"Naba",
760732,
"csu-bgr",
}
m["mnf"] = {
"Mundani",
35839,
"nic-mom",
"Latn",
}
m["mng"] = {
"Mnong Timur",
12953747,
"mkh-ban",
"Latn, Khmr",
}
m["mnh"] = {
"Mono (Congo)",
33501,
"bad-cnt",
"Latn",
}
m["mni"] = {
"Manipuri",
33868,
"sit",
"Mtei, Beng",
ancestors = "omp",
translit = {Mtei = "Mtei-translit"},
}
m["mnj"] = {
"Munji",
33639,
"ira-mny",
"Arab",
}
m["mnk"] = {
"Mandinka",
33678,
"dmn-wmn",
"Latn, Arab, Nkoo",
}
m["mnl"] = {
"Tiale",
6744350,
"poz-vnn",
"Latn",
}
m["mnm"] = {
"Mapena",
11732415,
"ngf-dag",
"Latn",
}
m["mnn"] = {
"Mnong Selatan",
23857582,
"mkh-ban",
}
m["mnp"] = {
"Min Utara",
36457,
"zhx-inm",
"Hants",
generate_forms = "zh-generateforms",
translit = "zh-translit",
sort_key = "Hani-sortkey",
}
m["mnq"] = {
"Minriq",
2742268,
"mkh-asl",
"Latn",
}
m["mnr"] = {
"Mono (California)",
33591,
"azc-num",
"Latn",
}
m["mnt"] = {
"Maykulan",
3915696,
"aus-pam",
"Latn",
}
m["mnu"] = {
"Mer",
6817854,
"paa-mai",
"Latn",
}
m["mnv"] = {
"Rennell",
3397346,
"poz-pnp",
"Latn",
}
m["mnw"] = {
"Mon",
13349,
"mkh-mnc",
"Mymr",
ancestors = "mkh-mmn",
sort_key = {
from = {"ျ", "ြ", "ွ", "ှ", "ၞ", "ၟ", "ၠ", "ၚ", "ဿ"},
to = {"္ယ", "္ရ", "္ဝ", "္ဟ", "္န", "္မ", "္လ", "င", "သ္သ"}
},
}
m["mnx"] = {
"Sougb",
3507964,
"paa-ebh",
"Latn",
}
m["mny"] = {
"Manyawa",
11002622,
"bnt-mak",
ancestors = "vmw",
}
m["mnz"] = {
"Moni",
6899857,
"ngf-pan",
"Latn",
}
m["moa"] = {
"Mwan",
3320111,
"dmn-nbe",
"Latn",
}
m["moc"] = {
"Mocoví",
3027906,
"sai-guc",
"Latn",
}
m["mod"] = {
"Mobilia",
13333,
"crp",
"Latn",
ancestors = "cho, cic",
}
m["moe"] = {
"Montagnais",
13351,
"alg",
"Latn",
ancestors = "cr",
strip_diacritics = {remove_diacritics = c.macron},
}
m["mog"] = {
"Mongondow",
3058458,
"phi",
"Latn",
}
m["moh"] = {
"Mohawk",
13339,
"iro-nor",
"Latn",
ancestors = "iro-omo",
}
m["moi"] = {
"Mboi",
3914417,
"alv-yun",
}
m["moj"] = {
"Monzombo",
11154772,
"nic-nkk",
"Latn",
}
m["mok"] = {
"Morori",
6913275,
}
m["mom"] = {
"Mangue",
56542,
"omq",
"Latn",
}
m["moo"] = {
"Monom",
6901726,
"mkh-ban",
}
m["mop"] = {
"Maya Mopan",
36183,
"myn",
"Latn",
}
m["moq"] = {
"Mor (Papua)",
11732468,
"qfa-dis", -- Papua; pencilan dalam Glottolog dan Palmer (2018); nod TNG peringkat teratas dalam Ross (2005), dalam Teluk Berau (di bawah
-- TNG) dalam Usher (2020)
}
m["mor"] = {
"Moro",
36172,
"alv-hei",
"Latn",
}
m["mos"] = {
"Mossi",
36096,
"nic-mre",
"Latn",
}
m["mot"] = {
"Barí",
2886281,
"cba",
"Latn",
}
m["mou"] = {
"Mogum",
3440473,
"cdc-est",
"Latn",
}
m["mov"] = {
"Mojave",
56510,
"nai-yuc",
"Latn",
}
m["mow"] = {
"Moi (Congo)",
11124792,
"bnt-bmo",
"Latn",
}
m["mox"] = {
"Molima",
3319495,
"poz-ocw",
"Latn",
}
m["moy"] = {
"Shekkacho",
56827,
"omv-gon",
}
m["moz"] = {
"Mukulu",
3440403,
"cdc-est",
}
m["mpa"] = {
"Mpoto",
6928303,
"bnt-mbi",
"Latn",
}
m["mpb"] = {
"Mullukmulluk",
6741120,
}
m["mpc"] = {
"Mangarayi",
6748829,
}
m["mpd"] = {
"Machinere",
12953681,
"awd",
"Latn",
}
m["mpe"] = {
"Majang",
56724,
"sdv",
}
m["mpg"] = {
"Marba",
56614,
"cdc-mas",
}
m["mph"] = {
"Maung",
6792550,
"aus-wdj",
"Latn",
}
m["mpi"] = {
"Mpade",
3280670,
"cdc-cbm",
"Latn",
}
m["mpj"] = {
"Martu Wangka",
3295916,
"aus-pam",
"Latn",
}
m["mpk"] = {
"Mbara (Chad)",
3912770,
"cdc-cbm",
}
m["mpl"] = {
"Watut Tengah",
15887910,
"poz-ocw",
"Latn",
}
m["mpm"] = {
"Mixtec Yosondúa",
12953741,
"omq-mxt",
"Latn",
}
m["mpn"] = {
"Mindiri",
6863842,
"poz-ocw",
"Latn",
}
m["mpo"] = {
"Miu",
6883668,
"poz-ocw",
"Latn",
}
m["mpp"] = {
"Migabac",
11732448,
"ngf-sop",
"Latn",
}
m["mpq"] = {
"Matís",
3299145,
"sai-pan",
"Latn",
}
m["mpr"] = {
"Vangunu",
3554582,
"poz-ocw",
"Latn",
}
m["mps"] = {
"Dadibi",
5208077,
"paa-teb",
"Latn",
}
m["mpt"] = {
"Mian",
12952846,
"ngf-msu",
"Latn",
}
m["mpu"] = {
"Makuráp",
3281037,
"tup",
"Latn",
}
m["mpv"] = {
"Mungkip",
11732485,
"ngf-boa",
"Latn",
}
m["mpw"] = {
"Mapidian",
6753812,
"awd",
"Latn",
}
m["mpx"] = {
"Misima-Paneati",
6875666,
"poz-ocw",
"Latn",
}
m["mpy"] = {
"Mapia",
3287224,
"poz-mic",
"Latn",
}
m["mpz"] = {
"Mpi",
6928276,
"tbq-bka",
}
m["mqa"] = {
"Maba",
3273750,
}
m["mqb"] = {
"Mbuko",
3502213,
"cdc-cbm",
"Latn",
}
m["mqc"] = {
"Mangole",
6749097,
"poz-cma",
"Latn",
}
m["mqe"] = {
"Matepi",
11732426,
"ngf-han",
"Latn",
}
m["mqf"] = {
"Momuna",
6897518,
}
m["mqg"] = {
"Melayu Kutai Kota Bangun",
12952778,
}
m["mqh"] = {
"Mixtec Tlazoyaltepec",
12953740,
"omq-mxt",
"Latn",
}
m["mqi"] = {
"Mariri",
6765544,
}
m["mqj"] = {
"Mamasa",
6745452,
"poz-ssw",
"Latn",
}
m["mqk"] = {
"Manobo Rajah Kabunsuwan",
12953700,
"mno",
}
m["mql"] = {
"Mbelime",
4286473,
"nic-eov",
"Latn",
}
m["mqm"] = {
"Marquesas Selatan",
19694214,
"poz-pep",
"Latn",
}
m["mqn"] = {
"Moronene",
642581,
"poz-btk",
"Latn",
}
m["mqo"] = {
"Modole",
11732457,
"paa-gto",
"Latn",
}
m["mqp"] = {
"Manipa",
6749799,
"poz-cma",
"Latn",
}
m["mqq"] = {
"Minokok",
18642293,
"poz-san",
"Latn",
}
m["mqr"] = {
"Mander",
6747979,
"paa-tor",
"Latn",
}
m["mqs"] = {
"Makian Barat",
3033575,
"paa-nha",
"Latn",
}
m["mqt"] = {
"Mok",
13018559,
"mkh-pal",
}
m["mqu"] = {
"Mandari",
3285426,
"sdv-bri",
}
m["mqv"] = {
"Mosimo",
11732478,
"ngf-nwh",
"Latn",
}
m["mqw"] = {
"Murupi",
11732486,
"ngf-nwh",
"Latn",
}
m["mqx"] = {
"Mamuju",
6746004,
"poz-ssw",
"Latn",
}
m["mqy"] = {
"Manggarai",
3285748,
"poz-cet",
"Latn",
}
m["mqz"] = {
"Malasanga",
14916889,
"poz-ocw",
"Latn",
}
m["mra"] = {
"Mlabri",
3073465,
"mkh",
}
m["mrb"] = {
"Sungwadia",
3293299,
"poz-vnn",
"Latn",
}
m["mrc"] = {
"Maricopa",
56386,
"nai-yuc",
"Latn",
}
m["mrd"] = {
"Magar Barat",
22303263,
"sit-gma",
"Deva",
}
m["mre"] = {
"Bahasa Isyarat Martha's Vineyard",
33494,
"sgn",
"Latn, Sgnw",
}
m["mrf"] = {
"Elseng",
3915667,
"qfa-unc", -- "Bahasa sempadan atau pencilan"; tidak dapat dikelaskan kerana kekurangan data
"Latn",
}
m["mrg"] = {
"Mising",
3316328,
"sit-tan",
"Latn, Beng, Deva",
ancestors = "adi",
}
m["mrh"] = {
"Chin Mara",
4175893,
"tbq-kuk",
"Latn",
}
m["mrj"] = {
"Mari Barat",
1776032,
"chm",
"Cyrl",
translit = "chm-translit",
sort_key = "mrj-sortkey",
}
m["mrk"] = {
"Hmwaveke",
5873712,
"poz-cln",
"Latn",
}
m["mrl"] = {
"Mortlock",
3324598,
"poz-mic",
"Latn",
}
m["mrm"] = {
"Mwerlap",
3331115,
"poz-vnn",
"Latn",
}
m["mrn"] = {
"Cheke Holo",
2962165,
"poz-ocw",
"Latn",
}
m["mro"] = {
"Mru",
1951521,
"sit-mru",
"Latn, Mroo",
}
m["mrp"] = {
"Morouas",
6913299,
"poz-vnn",
"Latn",
}
m["mrq"] = {
"Marquesas Utara",
2603808,
"poz-pep",
"Latn",
}
m["mrr"] = {
"Maria Bukit",
27602,
"dra-mdy",
"Deva",
}
m["mrs"] = {
"Maragus",
6754640,
"poz-vnc",
"Latn",
}
m["mrt"] = {
"Margi",
56241,
"cdc-cbm",
"Latn",
}
m["mru"] = {
"Mono (Cameroon)",
11031964,
"alv-mbm",
"Latn",
}
m["mrv"] = {
"Mangareva",
36237,
"poz-pep",
"Latn",
}
m["mrw"] = {
"Maranao",
33800,
"phi",
"Latn, Arab",
}
m["mrx"] = {
"Dineor",
5278044,
"paa-tor",
"Latn",
}
m["mry"] = {
"Mandaya Karaga",
6747925,
"phi",
}
m["mrz"] = {
"Marind",
6763970,
"paa-mri",
"Latn",
}
m["msb"] = {
"Masbatenyo",
33948,
"phi",
"Latn",
}
m["msc"] = {
"Maninka Sankaran",
11155812,
"dmn-mnk",
}
m["msd"] = {
"Bahasa Isyarat Maya Yucatec",
34281,
"sgn",
"Latn", -- apabila didokumentasikan
}
m["mse"] = {
"Musey",
56328,
"cdc-mas",
}
m["msf"] = {
"Mekwei",
4544752,
"paa-nim",
"Latn",
}
m["msg"] = {
"Moraid",
6909020,
"paa-wbh",
"Latn",
}
m["msi"] = {
"Melayu Sabah",
10867404,
"crp",
"Latn, Arab",
}
m["msj"] = {
"Ma",
6720909,
"nic-mbc",
"Latn",
}
m["msk"] = {
"Mansaka",
12952800,
"phi",
"Latn",
}
m["msl"] = {
"Molof",
4300950,
}
m["msm"] = {
"Manobo Agusan",
12953696,
"mno",
"Latn",
}
m["msn"] = {
"Vurës",
3563857,
"poz-vnn",
"Latn",
}
m["mso"] = {
"Mombum",
6897079,
"ngf-mom",
"Latn",
}
m["msp"] = {
"Maritsauá",
6765915,
"tup",
"Latn",
}
m["msq"] = {
"Caac",
2932212,
"poz-cln",
"Latn",
}
m["msr"] = {
"Bahasa Isyarat Mongolia",
3915499,
"sgn",
}
m["mss"] = {
"Masela Barat",
12952816,
"poz-tim",
"Latn",
}
m["msu"] = {
"Musom",
6943041,
"poz-ocw",
"Latn",
}
m["msv"] = {
"Maslam",
3502273,
}
m["msw"] = {
"Mansoanka",
35814,
}
m["msx"] = {
"Moresada",
11732475,
"ngf-pom",
"Latn",
}
m["msy"] = {
"Aruamu",
3501809,
"paa-rub",
"Latn",
}
m["msz"] = {
"Momare",
6897030,
"ngf-sop",
"Latn",
}
m["mta"] = {
"Manobo Cotabato",
12953698,
"mno",
"Latn",
}
m["mtb"] = {
"Anyin Morofo",
3502338,
"alv-ctn",
"Latn",
ancestors = "any",
}
m["mtc"] = {
"Munit",
11732482,
"ngf-kok",
"Latn",
}
m["mtd"] = {
"Mualang",
3073458,
"poz-mly",
"Latn",
}
m["mte"] = {
"Alu",
33503,
"poz-ocw",
"Latn",
}
m["mtf"] = {
"Murik (New Guinea)",
7050035,
"paa-lse",
"Latn",
}
m["mtg"] = {
"Una",
5580728,
"ngf-mek",
"Latn",
}
m["mth"] = {
"Munggui",
6936018,
"poz-hce",
"Latn",
}
m["mti"] = {
"Maiwa (New Guinea)",
6737223,
"ngf-dag",
"Latn",
}
m["mtj"] = {
"Moskona",
11288953,
"paa-ebh",
"Latn",
}
m["mtk"] = {
"Mbe'",
10964025,
"nic-nka",
"Latn",
}
m["mtl"] = {
"Montol",
3440457,
"cdc-wst",
"Latn",
}
m["mtm"] = {
"Mator",
20669419,
"syd",
"Cyrl",
}
m["mtn"] = {
"Matagalpa",
3490756,
"nai-min",
}
m["mto"] = {
"Mixe Totontepec",
7828400,
"nai-miz",
"Latn",
}
m["mtp"] = {
"Wichí Lhamtés Nocten",
5908756,
"sai-wic",
"Latn",
}
m["mtq"] = {
"Muong",
3236789,
"mkh-vie",
"Latn",
sort_key = "vi-sortkey",
}
m["mtr"] = {
"Mewari",
2992857,
"raj",
"Deva",
translit = "hi-translit", -- buat sementara waktu
}
m["mts"] = {
"Yora",
3572572,
"sai-pan",
"Latn",
}
m["mtt"] = {
"Mota",
3325052,
"poz-vnn",
"Latn",
}
m["mtu"] = {
"Mixtec Tututepec",
7857069,
"omq-mxt",
"Latn",
}
m["mtv"] = {
"Asaro'o",
3503684,
"ngf-war", -- ngf-moa jika kita mengasingkan Molet daripada Asaro'o
"Latn",
}
m["mtw"] = {
"Magahat",
6729600,
"phi",
}
m["mtx"] = {
"Mixtec Tidaá",
7800805,
"omq-mxt",
"Latn",
}
m["mty"] = {
"Nabi",
6956858,
"paa-wpa",
"Latn",
}
m["mua"] = {
"Mundang",
36032,
"alv-mbm",
}
m["mub"] = {
"Mubi",
3440518,
"cdc-est",
"Latn",
}
m["muc"] = {
"Mbu'",
35868,
"nic-beb",
"Latn",
}
m["mud"] = {
"Aleut Mednyj",
1977419,
"qfa-mix",
ancestors = "ale, ru"
}
m["mue"] = {
"Media Lengua",
36066,
"qfa-mix",
"Latn",
ancestors = "es, qu",
}
m["mug"] = {
"Musgu",
3123545,
"cdc-cbm",
"Latn",
}
m["muh"] = {
"Mündü",
35981,
"nic-nke",
"Latn",
}
m["mui"] = {
"Musi",
615660,
"poz-mly",
"Latn",
}
m["muj"] = {
"Mabire",
3440437,
}
m["mul"] = {
"Translingual",
7834564,
"qfa-not",
"All",
-- NOTA: Kunci isih berikut digunakan dalam process_page() dalam [[Module:headword/page]], yang menjana
-- kunci isih lalai untuk halaman (sepadan dengan {{DEFAULTSORT:...}}) dengan menjana kunci isih untuk
-- nama halaman menggunakan `makeSortKey()` yang dipanggil pada objek bahasa "mul". Pada masa ini ini hanya mengendalikan
-- kunci isih Jepun.
--
-- AMARAN: Ini sepatutnya lebih bijak dan menggunakan bahasa halaman jika hanya ada satu.
sort_key = {
Hani = "Hani-sortkey",
Jpan = "Jpan-sortkey",
Hrkt = "Hira-sortkey", -- Isih semua kana sebagai Hira.
Hira = "Hira-sortkey",
Kana = "Hira-sortkey",
},
standard_chars = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz" .. c.punc,
}
m["mum"] = {
"Maiwala",
12952764,
"poz-ocw",
"Latn",
}
m["muo"] = {
"Nyong",
36373,
"alv-lek",
}
m["mup"] = {
"Malvi",
33413,
"raj",
"Deva",
translit = "hi-translit"
}
m["muq"] = {
"Miao Xiangxi Timur",
27431376,
"hmn",
}
m["mur"] = {
"Murle",
56727,
"sdv",
}
m["mus"] = {
"Creek",
523014,
"nai-mus",
"Latn",
}
m["mut"] = {
"Muria Barat",
12952886,
"dra-mur",
}
m["muu"] = {
"Yaaku",
34222,
"cus-eas",
}
m["muv"] = {
"Muthuvan",
3327420,
"dra-tam",
}
m["mux"] = {
"Bo-Ung",
15831607,
"ngf-hag",
"Latn",
}
m["muy"] = {
"Muyang",
3502301,
"cdc-cbm",
"Latn",
}
m["muz"] = {
"Mursi",
36013,
"sdv",
}
m["mva"] = {
"Manam",
6746851,
"poz-ocw",
"Latn",
}
m["mvb"] = {
"Mattole",
20824,
"ath-pco",
"Latn",
}
m["mvd"] = {
"Mamboru",
578815,
"poz",
"Latn",
}
m["mvg"] = {
"Mixtec Yucuañe",
25562736,
"omq-mxt",
"Latn",
}
m["mvh"] = {
"Mire",
3441359,
}
m["mvi"] = {
"Miyako",
36218,
"jpx-sry",
"Jpan",
translit = s["jpx-translit"],
display_text = s["jpx-displaytext"],
strip_diacritics = s["jpx-stripdiacritics"],
sort_key = s["jpx-sortkey"],
}
m["mvk"] = {
"Mekmek",
6810592,
"paa-yua",
"Latn",
}
m["mvl"] = {
"Mbara (Australia)",
6799620,
"aus-pam",
"Latn",
}
m["mvm"] = {
"Muya",
2422759,
"sit-qia",
}
m["mvn"] = {
"Minaveha",
6863278,
"poz-ocw",
"Latn",
}
m["mvo"] = {
"Marovo",
3294683,
"poz-ocw",
"Latn",
}
m["mvp"] = {
"Duri",
3915414,
"poz-ssw",
"Latn",
}
m["mvq"] = {
"Moere",
11732458,
"ngf-kum",
"Latn",
}
m["mvr"] = {
"Marau",
6755069,
"poz-hce",
"Latn",
}
m["mvs"] = {
"Massep",
3502895,
"qfa-dis", -- kurang didokumentasikan (tetapi dalam kegunaan aktif); pencilan mengikut Ethnologue, Glottolog, dan Foley (2018); Kwerba
-- Raya menurut Usher
"Latn",
}
m["mvt"] = {
"Mpotovoro",
6928305,
"poz-vnc",
"Latn",
}
m["mvu"] = {
"Marfa",
713633,
}
m["mvv"] = {
"Tagal Murut",
7675300,
"poz-san",
"Latn",
}
m["mvw"] = {
"Machinga",
12952754,
"bnt-rvm",
}
m["mvx"] = {
"Meoswar",
6817777,
"poz-hce",
"Latn",
}
m["mvy"] = {
"Kohistani Indus",
33399,
"inc-koh",
"Aran",
}
m["mvz"] = {
"Mesqan",
6821677,
"sem-eth",
}
m["mwa"] = {
"Mwatebu",
14916896,
"poz-ocw",
"Latn",
}
m["mwb"] = {
"Juwal",
6319103,
"paa-mmu",
"Latn",
}
m["mwc"] = {
"Are",
29277,
"poz-ocw",
"Latn",
}
m["mwe"] = {
"Mwera",
6944725,
"bnt-rvm",
"Latn",
}
m["mwf"] = {
"Murrinh-Patha",
2980398,
"aus-dal",
"Latn",
}
m["mwg"] = {
"Aiklep",
3399652,
"poz-ocw",
"Latn",
}
m["mwh"] = {
"Mouk-Aria",
3325498,
"poz-ocw",
"Latn",
}
m["mwi"] = {
"Labo",
2157452,
"poz-vnc",
"Latn",
}
m["mwk"] = {
"Maninkakan Kita",
3015523,
"dmn-wmn",
}
m["mwl"] = {
"Mirandese",
13330,
"roa-asl",
"Latn",
}
m["mwm"] = {
"Sar",
56850,
"csu-sar",
"Latn",
}
m["mwn"] = {
"Nyamwanga",
6944666,
"bnt-mwi",
"Latn",
}
m["mwo"] = {
"Sungwadaga",
3276435,
"poz-vnn",
"Latn",
}
m["mwp"] = {
"Kala Lagaw Ya",
2591262,
"aus-pam",
"Latn",
}
m["mwq"] = {
"Mün Chin",
331340,
"tbq-kuk",
}
m["mwr"] = {
"Marwari",
56312,
"raj",
"Deva, Mahj, Aran",
translit = {
Deva = "hi-translit", -- buat sementara waktu
Mahj = "Mahj-translit",
},
}
m["mws"] = {
"Mwimbi-Muthambi",
15632357,
"bnt-kka",
"Latn",
}
m["mwt"] = {
"Moken",
18648701,
"poz",
}
m["mwu"] = {
"Mittu",
6883573,
"csu-bbk",
"Latn",
}
m["mwv"] = {
"Mentawai",
13365,
"poz-nws",
"Latn",
}
m["mww"] = {
"Hmong Putih",
3138829,
"hmn",
"Latn, Hmng, Hmnp",
}
m["mwz"] = {
"Moingi",
11011905,
}
m["mxa"] = {
"Mixtec Oaxaca Barat Laut",
12953739,
"omq-mxt",
"Latn",
}
m["mxb"] = {
"Mixtec Tezoatlán",
3317286,
"omq-mxt",
"Latn",
}
m["mxd"] = {
"Modang",
6888037,
"poz",
"Latn",
}
m["mxe"] = {
"Mele-Fila",
3305008,
"poz-pnp",
"Latn",
}
m["mxf"] = {
"Malgbe",
3502224,
}
m["mxg"] = {
"Mbangala",
6799612,
"bnt-yak",
}
m["mxh"] = {
"Mvuba",
6944591,
"csu-mle",
"Latn",
}
m["mxi"] = {
"Mozarab",
317044,
"roa-ibe",
"Arab, Hebr, Latn",
translit = "mxi-translit",
strip_diacritics = {
Arab = "ar-stripdiacritics",
},
-- display_text, strip_diacritics, sort_key Hebr dalam [[Module:scripts/data]]
}
m["mxj"] = {
"Miju",
56332,
"sit-mdz",
"Latn, Deva",
}
m["mxk"] = {
"Monumbo",
6906792,
"paa-mon",
"Latn",
}
m["mxl"] = {
"Maxi Gbe",
35770,
"alv-gbe",
}
m["mxm"] = {
"Meramera",
6817936,
"poz-ocw",
"Latn",
}
m["mxn"] = {
"Moi (Indonesia)",
11732459,
"paa-wbh",
"Latn",
}
m["mxo"] = {
"Mbowe",
10962309,
"bnt-kav",
}
m["mxp"] = {
"Mixe Tlahuitoltepec",
7810697,
}
m["mxq"] = {
"Mixe Juquila",
25559721,
}
m["mxr"] = {
"Murik (Malaysia)",
3328150,
nil,
"Latn",
}
m["mxs"] = {
"Mixtec Huitepec",
12953729,
"omq-mxt",
"Latn",
}
m["mxt"] = {
"Mixtec Jamiltepec",
12953730,
"omq-mxt",
"Latn",
}
m["mxu"] = {
"Mada (Cameroon)",
3441206,
"cdc-cbm",
"Latn",
}
m["mxv"] = {
"Mixtec Metlatónoc",
36363,
"omq-mxt",
"Latn",
}
m["mxw"] = {
"Namo",
12952923,
"paa-nam",
"Latn",
}
m["mxx"] = {
"Mahou",
11004334,
"dmn-mnk",
"Latn, Nkoo",
}
m["mxy"] = {
"Mixtec Nochixtlán Tenggara",
7070684,
"omq-mxt",
"Latn",
}
m["mxz"] = {
"Masela Tengah",
42575433,
"poz-tim",
"Latn",
}
m["myb"] = {
"Mbay",
3033565,
"csu-sar",
"Latn",
}
m["myc"] = {
"Mayeka",
11129517,
"bnt-boa",
}
m["mye"] = {
"Myene",
35832,
"bnt-tso",
"Latn",
}
m["myf"] = {
"Bambassi",
56540,
"omv-mao",
"Latn",
}
m["myg"] = {
"Manta",
35799,
"nic-mom",
"Latn",
}
m["myh"] = {
"Makah",
3280640,
"wak",
"Latn",
}
m["myj"] = {
"Mangayat",
35988,
"nic-ser",
}
m["myk"] = {
"Mamara",
36187,
"alv-sma",
"Latn",
}
m["myl"] = {
"Moma",
6897018,
"poz",
"Latn",
}
m["mym"] = {
"Me'en",
3408516,
"sdv",
}
m["myo"] = {
"Anfillo",
34928,
"omv-gon",
}
m["myp"] = {
"Pirahã",
33825,
"sai-mur",
"Latn",
}
m["myr"] = {
"Muniche",
3915654,
}
m["mys"] = {
"Mesmes",
3508617,
"sem-eth",
}
m["myu"] = {
"Mundurukú",
746723,
"tup",
"Latn",
}
m["myv"] = {
"Erzya",
29952,
"urj-mdv",
"Cyrl",
translit = "myv-translit",
override_translit = true,
}
m["myw"] = {
"Muyuw",
3502878,
"poz-ocw",
"Latn",
}
m["myx"] = {
"Masaba",
12952814,
"bnt-msl",
"Latn",
}
m["myy"] = {
"Macuna",
3275059,
"sai-tuc",
"Latn",
}
m["myz"] = {
"Mandaia Klasik",
25559314,
"sem-ase",
"Mand",
translit = {
Mand = "Mand-translit",
},
strip_diacritics = {
Mand = "Mand-stripdiacritics",
}
}
m["mza"] = {
"Mixtec Santa María Zacatepec",
8063756,
"omq-mxt",
"Latn",
}
m["mzb"] = {
"Berber Saharan Utara",
11156769,
"ber",
"Arab, Latn, Tfng",
}
m["mzc"] = {
"Bahasa Isyarat Madagascar",
12715020,
"sgn",
}
m["mzd"] = {
"Malimba",
35806,
"bnt-saw",
}
m["mze"] = {
"Morawa",
6909384,
"paa-mal",
"Latn",
}
m["mzg"] = {
"Bahasa Isyarat Monastik",
3217333,
"sgn",
}
m["mzh"] = {
"Wichí Lhamtés Güisnay",
7998197,
"sai-wic",
"Latn",
}
m["mzi"] = {
"Mazatec Ixcatlán",
6101049,
"omq-maz",
"Latn",
}
m["mjz"] = {
"Manya",
11006832,
"dmn-mnk",
}
m["mzk"] = {
"Mambila Nigeria",
11004163,
"nic-mmb",
"Latn",
}
m["mzl"] = {
"Mixe Mazatlán",
25559728,
}
m["mzm"] = {
"Mumuye",
36021,
"alv-mum",
"Latn",
}
m["mzn"] = {
"Mazanderani",
13356,
"ira-msh",
"Arab",
}
m["mzo"] = {
"Matipuhy",
6787588,
"sai-kui",
"Latn",
}
m["mzp"] = {
"Movima",
1659701,
"qfa-iso",
"Latn",
}
m["mzq"] = {
"Mori Atas",
3324070,
"poz-btk",
"Latn",
}
m["mzr"] = {
"Marúbo",
3296011,
"sai-pan",
"Latn",
}
m["mzs"] = {
"Macanese",
35785,
"crp",
"Latn",
ancestors = "pt",
sort_key = {Latn = {remove_diacritics = c.grave .. c.acute .. c.circ .. c.tilde .. c.diaer .. c.cedilla}},
}
m["mzt"] = {
"Mintil",
6869641,
"mkh-asl",
}
m["mzu"] = {
"Inapang",
6013569,
"paa-tam",
"Latn",
}
m["mzv"] = {
"Manza",
36038,
"gba-eas",
}
m["mzw"] = {
"Deg",
35183,
"nic-gnw",
"Latn",
}
m["mzx"] = {
"Mawayana",
6794377,
"awd",
}
m["mzy"] = {
"Bahasa Isyarat Mozambique",
6927809,
"sgn",
}
m["mzz"] = {
"Maiadomu",
6735234,
"poz-ocw",
"Latn",
}
return require("Module:languages").finalizeData(m, "language")
f0ixdvylw2g23tk0e2t9w8ydjmjuref
Modul:languages/data/patterns
828
33726
373495
144493
2026-09-10T20:21:20Z
SNN95
2113
kemaskini
373495
Scribunto
text/plain
-- Capture patterns used by [[Module:languages]] to prevent formatting from being disrupted while text is being processed.
-- Certain character sequences are substituted beforehand to make pattern matching more straightforward:
-- "\1" = "[["
-- "\2" = "]]"
return {
"((</?link>))\0", -- Special link formatting added by [[Module:links]]
"((<[^<>\1\2]+>))", -- HTML tag
"((\1[Ff][Ii][Ll][Ee]:[^\1\2]+\2))\0", -- File
"((\1[Ii][Mm][Aa][Gg][Ee]:[^\1\2]+\2))\0", -- Image
"((\1[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]:[^\1\2]+\2))\0", -- Category
"((\1[Cc][Aa][Tt]:[^\1\2]+\2))\0", -- Category
"((\1)[^\1\2|]+(\2))\0", -- Bare internal link
"((\1)[^\1\2|]-(|)[^\1\2]-(\2))\0", -- Piped internal link
"((%[https?://[^[%] ]+)[^[%]]*(%]))\0", -- External link
"((\127'\"`UNIQ%-%-%l+%-%x+%-+QINU`\"'\127))", -- Strip marker
"('*(''').-'*('''))", -- Bold
"('*('').-'*(''))" -- Italics
}
0asj561c1s2otij1k07cuhwmbvhewr9
Modul:families/code to canonical name
828
33772
373521
273103
2026-09-11T03:05:14Z
SNN95
2113
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373521
Scribunto
text/plain
return {
["aav"] = "Austroasiatik",
["aav-khs"] = "Khasian",
["aav-nic"] = "Nicobarese",
["aav-pkl"] = "Pnar-Khasi-Lyngngam",
["afa"] = "Afro-Asia",
["alg"] = "Algonquian",
["alg-abp"] = "Abenaki-Penobscot",
["alg-ara"] = "Arapahoan",
["alg-eas"] = "Algonquian Timur",
["alg-sfk"] = "Sac-Fox-Kickapoo",
["alv"] = "Atlantik-Congo",
["alv-aah"] = "Ayere-Ahan",
["alv-ada"] = "Adamawa",
["alv-bag"] = "Baga",
["alv-bak"] = "Bak",
["alv-bam"] = "Bambukic",
["alv-bny"] = "Banyum",
["alv-bua"] = "Bua",
["alv-bwj"] = "Bikwin-Jen",
["alv-cng"] = "Cangin",
["alv-ctn"] = "Tano Tengah",
["alv-dlt"] = "Edoid Delta",
["alv-dur"] = "Duru",
["alv-ede"] = "Ede",
["alv-edk"] = "Edekiri",
["alv-edo"] = "Edoid",
["alv-eeo"] = "Edo-Esan-Ora",
["alv-fli"] = "Fali",
["alv-fwo"] = "Fula-Wolof",
["alv-gbe"] = "Gbe",
["alv-gda"] = "Ga-Dangme",
["alv-gng"] = "Guang",
["alv-gtm"] = "Pergunungan Ghana-Togo",
["alv-hei"] = "Heiban",
["alv-ido"] = "Idomoid",
["alv-igb"] = "Igboid",
["alv-jfe"] = "Jola-Felupe",
["alv-jol"] = "Jola",
["alv-kim"] = "Kim",
["alv-kis"] = "Kissi",
["alv-krb"] = "Karaboro",
["alv-ktg"] = "Ka-Togo",
["alv-kul"] = "Kulango",
["alv-kwa"] = "Kwa",
["alv-lag"] = "Lagoon",
["alv-lek"] = "Leko",
["alv-lim"] = "Limba",
["alv-lni"] = "Leko-Nimbari",
["alv-mbd"] = "Mbum-Day",
["alv-mbm"] = "Mbum",
["alv-mel"] = "Mel",
["alv-mum"] = "Mumuye",
["alv-mye"] = "Mumuye-Yendang",
["alv-nal"] = "Nalu",
["alv-nce"] = "Edoid Utara-Tengah",
["alv-ngb"] = "Nupe-Gbagyi",
["alv-ntg"] = "Na-Togo",
["alv-nup"] = "Nupoid",
["alv-nwd"] = "Edoid Barat Laut",
["alv-nyn"] = "Nyun",
["alv-pap"] = "Papel",
["alv-pph"] = "Phla-Pherá",
["alv-ptn"] = "Potou-Tano",
["alv-sav"] = "Savanna",
["alv-sma"] = "Supyire-Mamara",
["alv-snf"] = "Senufo",
["alv-sng"] = "Senegambia",
["alv-snr"] = "Senari",
["alv-swd"] = "Edoid Barat Daya",
["alv-tal"] = "Talodi",
["alv-tdj"] = "Tagwana-Djimini",
["alv-ten"] = "Tenda",
["alv-the"] = "Talodi-Heiban",
["alv-von"] = "Volta-Niger",
["alv-wan"] = "Wara-Natyoro",
["alv-wjk"] = "Waja-Kam",
["alv-yek"] = "Yekhee",
["alv-yor"] = "Yoruba",
["alv-yrd"] = "Yoruboid",
["alv-yun"] = "Yungur",
["apa"] = "Apachean",
["aqa"] = "Alacalufan",
["aql"] = "Algic",
["art"] = "buatan",
["ath"] = "Athabaskan",
["ath-nor"] = "Athabaskan Utara",
["ath-pco"] = "Athabaskan Pantai Pasifik",
["auf"] = "Arauan",
["aus-arn"] = "Arnhem",
["aus-bub"] = "Bunuban",
["aus-cww"] = "New South Wales Tengah",
["aus-dal"] = "Daly",
["aus-dyb"] = "Dyirbalic",
["aus-gar"] = "Garawan",
["aus-gun"] = "Gunwinyguan",
["aus-jar"] = "Jarrakan",
["aus-kar"] = "Karnic",
["aus-mir"] = "Mirndi",
["aus-nga"] = "Ngayarda",
["aus-nyu"] = "Nyulnyulan",
["aus-pam"] = "Pama-Nyungan",
["aus-pmn"] = "Paman",
["aus-psw"] = "Pama-Nyungan Barat Daya",
["aus-rnd"] = "Arandic",
["aus-tnk"] = "Tangkic",
["aus-wdj"] = "Iwaidjan",
["aus-wor"] = "Worrorran",
["aus-yid"] = "Yidinyic",
["aus-yng"] = "Yangmanic",
["aus-yol"] = "Yolngu",
["aus-yuk"] = "Yuin-Kuric",
["awd"] = "Arawak",
["awd-nwk"] = "Nawiki",
["awd-taa"] = "Ta-Arawak",
["azc"] = "Uto-Aztecan",
["azc-cup"] = "Cupan",
["azc-dur"] = "Nahuatl Durango",
["azc-hua"] = "Nahuatl Huasteca",
["azc-nah"] = "Nahuan",
["azc-num"] = "Numic",
["azc-pim"] = "Piman",
["azc-tak"] = "Takic",
["azc-trc"] = "Taracahitic",
["bad"] = "Banda",
["bad-cnt"] = "Banda Tengah",
["bai"] = "Bamileke",
["bat"] = "Baltic",
["bat-eas"] = "Baltik Timur",
["bat-wes"] = "Baltik Barat",
["ber"] = "Berber",
["bnt"] = "Bantu",
["bnt-baf"] = "Bafia",
["bnt-bbo"] = "Bafo-Bonkeng",
["bnt-bdz"] = "Boma-Dzing",
["bnt-bek"] = "Bekwilic",
["bnt-bki"] = "Bena-Kinga",
["bnt-bmo"] = "Bangi-Moi",
["bnt-bne"] = "Bantu Timur Laut",
["bnt-bnm"] = "Bangi-Ntomba",
["bnt-boa"] = "Boan",
["bnt-bot"] = "Botatwe",
["bnt-bsa"] = "Basaa",
["bnt-bsh"] = "Bushoong",
["bnt-bso"] = "Bantu Selatan",
["bnt-bta"] = "Bati-Angba",
["bnt-btb"] = "Beti",
["bnt-bte"] = "Bangi-Tetela",
["bnt-bun"] = "Buja-Ngombe",
["bnt-chg"] = "Chaga",
["bnt-cht"] = "Chaga-Taita",
["bnt-clu"] = "Chokwe-Luchazi",
["bnt-com"] = "Comorian",
["bnt-glb"] = "Bantu Tasik-Tasik Besar",
["bnt-haj"] = "Haya-Jita",
["bnt-kak"] = "Kako",
["bnt-kav"] = "Kavango",
["bnt-kbi"] = "Komo-Bira",
["bnt-kel"] = "Kele",
["bnt-kil"] = "Kilombero",
["bnt-kka"] = "Kikuyu-Kamba",
["bnt-kmb"] = "Kimbundu",
["bnt-kng"] = "Kongo",
["bnt-kpw"] = "Kpwe",
["bnt-ksb"] = "Kavango-Bantu Barat Daya",
["bnt-kts"] = "Kele-Tsogo",
["bnt-lbn"] = "Luban",
["bnt-leb"] = "Lebonya",
["bnt-lgb"] = "Lega-Binja",
["bnt-lok"] = "Logooli-Kuria",
["bnt-lub"] = "Luba",
["bnt-lun"] = "Lunda",
["bnt-mak"] = "Makua",
["bnt-mbb"] = "Mboshi-Buja",
["bnt-mbe"] = "Mbole-Enya",
["bnt-mbi"] = "Mbinga",
["bnt-mbo"] = "Mboshi",
["bnt-mbt"] = "Mbete",
["bnt-mby"] = "Mbeya",
["bnt-mij"] = "Mijikenda",
["bnt-mka"] = "Makaa",
["bnt-mne"] = "Manenguba",
["bnt-mnj"] = "Makaa-Njem",
["bnt-mon"] = "Mongo",
["bnt-mra"] = "Mbugwe-Rangi",
["bnt-msl"] = "Masaba-Luhya",
["bnt-mwi"] = "Mwika",
["bnt-ncb"] = "Bantu Pantai Timur Laut",
["bnt-ndb"] = "Ndzem-Bomwali",
["bnt-ngn"] = "Ngondi-Ngiri",
["bnt-ngu"] = "Nguni",
["bnt-nya"] = "Nyali",
["bnt-nyb"] = "Nyanga-Buyi",
["bnt-nyg"] = "Nyoro-Ganda",
["bnt-nys"] = "Nyasa",
["bnt-nze"] = "Nzebi",
["bnt-ova"] = "Ovambo",
["bnt-par"] = "Pare",
["bnt-pen"] = "Pende",
["bnt-pob"] = "Pomo-Bomwali",
["bnt-ruk"] = "Rukwa",
["bnt-run"] = "Rungwe",
["bnt-rur"] = "Rufiji-Ruvuma",
["bnt-ruv"] = "Ruvu",
["bnt-rvm"] = "Ruvuma",
["bnt-sab"] = "Sabaki",
["bnt-saw"] = "Sawabantu",
["bnt-sbi"] = "Sabi",
["bnt-seu"] = "Seuta",
["bnt-shh"] = "Shi-Havu",
["bnt-sho"] = "Shona",
["bnt-sir"] = "Sira",
["bnt-ske"] = "Soko-Kele",
["bnt-sna"] = "Sena",
["bnt-sts"] = "Sotho-Tswana",
["bnt-swb"] = "Bantu Barat Daya",
["bnt-swh"] = "Swahili",
["bnt-tek"] = "Teke",
["bnt-tet"] = "Tetela",
["bnt-tkc"] = "Teke Tengah",
["bnt-tkm"] = "Takama",
["bnt-tmb"] = "Teke-Mbede",
["bnt-tso"] = "Tsogo",
["bnt-tsr"] = "Tswa-Ronga",
["bnt-yak"] = "Yaka",
["bnt-yko"] = "Yasa-Kombe",
["bnt-zbi"] = "Zamba-Binza",
["btk"] = "Batak",
["cau-abz"] = "Abkhaz-Abaza",
["cau-and"] = "Andian",
["cau-ava"] = "Avaro-Andian",
["cau-cir"] = "Circassian",
["cau-drg"] = "Dargwa",
["cau-esm"] = "Samur Timur",
["cau-ets"] = "Tsezian Timur",
["cau-lzg"] = "Lezghian",
["cau-nec"] = "Kaukasia Timur Laut",
["cau-nkh"] = "Nakh",
["cau-nwc"] = "Kaukasia Barat Laut",
["cau-sam"] = "Samur",
["cau-ssm"] = "Samur Selatan",
["cau-tsz"] = "Tsezian",
["cau-vay"] = "Vainakh",
["cau-wsm"] = "Samur Barat",
["cau-wts"] = "Tsezian Barat",
["cba"] = "Chibchan",
["ccs"] = "Kartvelian",
["ccs-gzn"] = "Georgia-Zan",
["ccs-zan"] = "Zan",
["cdc"] = "Chadik",
["cdc-cbm"] = "Chadik Tengah",
["cdc-est"] = "Chadik Timur",
["cdc-mas"] = "Masa",
["cdc-wst"] = "Chadik Barat",
["cdd"] = "Caddoan",
["cel"] = "Keltik",
["cel-brs"] = "Brythonic Barat Daya",
["cel-brw"] = "Brythonic Barat",
["cel-bry"] = "Brythonic",
["cel-gae"] = "Goidelik",
["cel-his"] = "Hispano-Keltik",
["cel-ins"] = "Keltik Kepulauan",
["chi"] = "Chimakuan",
["chm"] = "Mari",
["cmc"] = "Chamik",
["crp"] = "kreol atau pidgin",
["csu"] = "Sudanik Tengah",
["csu-bba"] = "Bongo-Bagirmi",
["csu-bbk"] = "Bongo-Baka",
["csu-bgr"] = "Bagirmi",
["csu-bkr"] = "Birri-Kresh",
["csu-ecs"] = "Sudanik Tengah Timur",
["csu-kab"] = "Kaba",
["csu-lnd"] = "Lendu",
["csu-maa"] = "Mangbetu",
["csu-mle"] = "Mangbutu-Lese",
["csu-mma"] = "Moru-Madi",
["csu-sar"] = "Sara",
["csu-val"] = "Vale",
["cus"] = "Kushitik",
["cus-cen"] = "Kushitik Tengah",
["cus-eas"] = "Kushitik Timur",
["cus-hec"] = "Kushitik Timur Tanah Tinggi",
["cus-som"] = "Somaloid",
["cus-sou"] = "Kushitik Selatan",
["day"] = "Dayak Darat",
["del"] = "Lenape",
["den"] = "Slavey",
["dmn"] = "Mande",
["dmn-bbu"] = "Bisa-Busa",
["dmn-emn"] = "Manding Timur",
["dmn-jje"] = "Jogo-Jeri",
["dmn-man"] = "Manding",
["dmn-mda"] = "Mano-Dan",
["dmn-mdc"] = "Mande Tengah",
["dmn-mde"] = "Mande Timur",
["dmn-mdw"] = "Mande Barat",
["dmn-mjo"] = "Manding-Jogo",
["dmn-mmo"] = "Manding-Mokole",
["dmn-mnk"] = "Maninka",
["dmn-mnw"] = "Mande Barat Laut",
["dmn-mok"] = "Mokole",
["dmn-mse"] = "Mande Tenggara",
["dmn-msw"] = "Mande Barat Daya",
["dmn-mva"] = "Manding-Vai",
["dmn-nbe"] = "Nwa-Beng",
["dmn-sam"] = "Samo",
["dmn-smg"] = "Samogo",
["dmn-snb"] = "Soninke-Bobo",
["dmn-sya"] = "Susu-Yalunka",
["dmn-vak"] = "Vai-Kono",
["dmn-wmn"] = "Manding Barat",
["dra"] = "Dravida",
["dra-cen"] = "Dravida Tengah",
["dra-gki"] = "Gondi-Kui",
["dra-gon"] = "Gondi",
["dra-imd"] = "Irula-Muduga",
["dra-kan"] = "Kannadoid",
["dra-kki"] = "Konda-Kui",
["dra-kml"] = "Kurux-Malto",
["dra-knk"] = "Kolami-Naiki",
["dra-kod"] = "Kodagu",
["dra-kor"] = "Koraga",
["dra-mal"] = "Malayalamoid",
["dra-mdy"] = "Madiya",
["dra-mlo"] = "Malto",
["dra-mur"] = "Muria",
["dra-nor"] = "Dravida Utara",
["dra-pgd"] = "Parji-Gadaba",
["dra-sdo"] = "Dravida Selatan I",
["dra-sdt"] = "Dravida Selatan II",
["dra-sou"] = "Dravida Selatan",
["dra-tam"] = "Tamiloid",
["dra-tel"] = "Teluguik",
["dra-tkd"] = "Tamil-Kodagu",
["dra-tkn"] = "Tamil-Kannada",
["dra-tkt"] = "Toda-Kota",
["dra-tlk"] = "Tulu-Koraga",
["dra-tml"] = "Tamil-Malayalam",
["egx"] = "Mesir",
["ero"] = "Horpa",
["esx"] = "Eskimo-Aleut",
["esx-esk"] = "Eskimo",
["esx-inu"] = "Inuit",
["euq"] = "Vaskonik",
["gba"] = "Gbaya",
["gba-eas"] = "Gbaya Timur",
["gba-sou"] = "Gbaya Selatan",
["gba-wes"] = "Gbaya Barat",
["gem"] = "Jermanik",
["gio"] = "Gelao",
["gme"] = "Jermanik Timur",
["gmq"] = "Jermanik Utara",
["gmq-eas"] = "Scandinavia Timur",
["gmq-ins"] = "Scandinavia Kepulauan",
["gmq-wes"] = "Scandinavia Barat",
["gmw"] = "Jermanik Barat",
["gmw-afr"] = "Anglo-Frisia",
["gmw-ang"] = "Anglik",
["gmw-fri"] = "Frisia",
["gmw-frk"] = "Frankonia Bawah",
["gmw-hgm"] = "Jerman Tinggi",
["gmw-ian"] = "Anglo-Norman Ireland",
["gmw-lgm"] = "Jerman Rendah",
["gmw-nsg"] = "Jermanik Laut Utara",
["gn"] = "Guarani",
["grb"] = "Grebo tepat",
["grk"] = "Hellenik",
["him"] = "Pahari Barat",
["hmn"] = "Hmongik",
["hmx"] = "Hmong-Mien",
["hmx-mie"] = "Mienik",
["hok"] = "Hokan",
["hyx"] = "Armenia",
["iir"] = "Indo-Iran",
["iir-nur"] = "Nuristani",
["ijo"] = "Ijoid",
["inc"] = "Indo-Arya",
["inc-bas"] = "Bengali-Assam",
["inc-bhi"] = "Bhil",
["inc-bih"] = "Bihari",
["inc-cen"] = "Indo-Arya Tengah",
["inc-chi"] = "Chitrali",
["inc-dar"] = "Dardik",
["inc-dng"] = "Dangari",
["inc-dre"] = "Dardik Timur",
["inc-eas"] = "Indo-Arya Timur",
["inc-hal"] = "Halbik",
["inc-hie"] = "Hindi Timur",
["inc-hiw"] = "Hindi Barat",
["inc-hnd"] = "Hindustani",
["inc-ins"] = "Indo-Arya Kepulauan",
["inc-kas"] = "Kashmirik",
["inc-koh"] = "Kohistani",
["inc-krd"] = "Bahasa-bahasa KRDS",
["inc-kun"] = "Kunar",
["inc-mid"] = "Indo-Arya Pertengahan",
["inc-nor"] = "Indo-Arya Utara",
["inc-nwe"] = "Indo-Arya Barat Laut",
["inc-old"] = "Indo-Arya Kuno",
["inc-pac"] = "Pahari Tengah",
["inc-pae"] = "Pahari Timur",
["inc-pah"] = "Pahari",
["inc-pan"] = "Punjabik",
["inc-pas"] = "Pashayi",
["inc-rom"] = "Romani",
["inc-sad"] = "Sadanik",
["inc-shn"] = "Shinaik",
["inc-snd"] = "Sindhik",
["inc-sou"] = "Indo-Arya Selatan",
["inc-tha"] = "Tharu",
["inc-wes"] = "Indo-Arya Barat",
["ine"] = "Indo-Eropah",
["ine-ana"] = "Anatolia",
["ine-bsl"] = "Balto-Slav",
["ine-luw"] = "Luwik",
["ine-toc"] = "Tokharia",
["ira"] = "Iran",
["ira-cen"] = "Iran Tengah",
["ira-csp"] = "Kaspia",
["ira-kms"] = "Komisenian",
["ira-lur"] = "Lurik",
["ira-mid"] = "Iran Pertengahan",
["ira-mny"] = "Munji-Yidgha",
["ira-mpr"] = "Medo-Parthia",
["ira-msh"] = "Mazanderani-Shahmirzadi",
["ira-nei"] = "Iran Timur Laut",
["ira-nwi"] = "Iran Barat Laut",
["ira-old"] = "Iran Kuno",
["ira-orp"] = "Ormuri-Parachi",
["ira-pat"] = "Pathan",
["ira-sbc"] = "Sogdo-Bactria",
["ira-sei"] = "Iran Tenggara",
["ira-sgc"] = "Sogdik",
["ira-sgi"] = "Sanglechi-Ishkashimi",
["ira-shr"] = "Shughni-Roshani",
["ira-shy"] = "Shughni-Yazghulami",
["ira-swi"] = "Iran Barat Daya",
["ira-sym"] = "Shughni-Yazghulami-Munji",
["ira-wes"] = "Iran Barat",
["ira-zgr"] = "Zaza-Gorani",
["iro"] = "Iroquoia",
["iro-nor"] = "Iroquoia Utara",
["itc"] = "Italik",
["itc-laf"] = "Latino-Faliskan",
["itc-sbl"] = "Osko-Umbria",
["jpx"] = "Japonik",
["jpx-nry"] = "Ryukyu Utara",
["jpx-ryu"] = "Ryukyu",
["jpx-sry"] = "Ryukyu Selatan",
["kar"] = "Karen",
["kca"] = "Khanty",
["khi-kal"] = "Khoe Kalahari",
["khi-khk"] = "Khoekhoe",
["khi-kho"] = "Khoe",
["khi-kkw"] = "Khoe-Kwadi",
["khi-kxa"] = "Kx'a",
["khi-tuu"] = "Tuu",
["kro"] = "Kru",
["kro-aiz"] = "Aizi",
["kro-bet"] = "Bété",
["kro-did"] = "Dida",
["kro-ekr"] = "Kru Timur",
["kro-grb"] = "Grebo",
["kro-wee"] = "Wee",
["kro-wkr"] = "Kru Barat",
["ku"] = "Kurdish",
["kv"] = "Komi",
["map"] = "Austronesia",
["map-ata"] = "Atayalik",
["mjg"] = "Monguor",
["mkh"] = "Mon-Khmer",
["mkh-asl"] = "Aslian",
["mkh-ban"] = "Bahnarik",
["mkh-kat"] = "Katuik",
["mkh-khm"] = "Khmuik",
["mkh-kmr"] = "Khmerik",
["mkh-mnc"] = "Monik",
["mkh-mng"] = "Mangik",
["mkh-nbn"] = "Bahnarik Utara",
["mkh-pal"] = "Palaungik",
["mkh-pea"] = "Pearik",
["mkh-pkn"] = "Pakanik",
["mkh-vie"] = "Vietik",
["mno"] = "Manobo",
["mns"] = "Mansi",
["mun"] = "Munda",
["myn"] = "Maya",
["nai-cat"] = "Catawban",
["nai-chu"] = "Chumashan",
["nai-ckn"] = "Chinookan",
["nai-coo"] = "Coosan",
["nai-jcq"] = "Jicaquean",
["nai-ker"] = "Keresan",
["nai-klp"] = "Kalapuyan",
["nai-kta"] = "Kiowa-Tanoan",
["nai-len"] = "Lencan",
["nai-mdu"] = "Maiduan",
["nai-min"] = "Misumalpan",
["nai-miz"] = "Mixe-Zoquean",
["nai-mus"] = "Muskogean",
["nai-pak"] = "Pakawan",
["nai-pal"] = "Palaihnihan",
["nai-plp"] = "Penutian Penara",
["nai-pom"] = "Pomoan",
["nai-sca"] = "Siouan-Catawban",
["nai-shp"] = "Sahaptian",
["nai-shs"] = "Shastan",
["nai-tot"] = "Totozoquean",
["nai-tqn"] = "Tequistlatecan",
["nai-tsi"] = "Tsimshianik",
["nai-ttn"] = "Totonakan",
["nai-utn"] = "Utian",
["nai-wtq"] = "Wintuan",
["nai-xin"] = "Xincan",
["nai-ykn"] = "Yukian",
["nai-you"] = "Yok-Utian",
["nai-yuc"] = "Yuman-Cochimí",
["ngf"] = "Trans-New Guinea",
["ngf-ais"] = "Aisian",
["ngf-ang"] = "Angan",
["ngf-ank"] = "Angal-Kewa",
["ngf-ask"] = "Asmat-Kamoro",
["ngf-asm"] = "Asmat",
["ngf-ata"] = "Ankave-Tainae-Akoye",
["ngf-awd"] = "Awyu-Dumut",
["ngf-awy"] = "Awyu",
["ngf-bda"] = "Becking-Dawi",
["ngf-bin"] = "Binanderean",
["ngf-boa"] = "Boane",
["ngf-bos"] = "Bosavi",
["ngf-bsi"] = "Baruya-Simbari",
["ngf-cda"] = "Dani Tengah",
["ngf-chw"] = "Chimbu-Wahgi",
["ngf-dag"] = "Dagan",
["ngf-dal"] = "Dallman",
["ngf-dan"] = "Dani",
["ngf-dum"] = "Dumut",
["ngf-ehu"] = "Huon Timur",
["ngf-eku"] = "Kutubuan Timur",
["ngf-enc"] = "Engik",
["ngf-eng"] = "Engan",
["ngf-era"] = "Erap",
["ngf-eso"] = "Sogeram Timur",
["ngf-est"] = "Strickland Timur",
["ngf-eva"] = "Evapia",
["ngf-fgi"] = "Fore-Gimi",
["ngf-fhu"] = "Finisterre-Huon",
["ngf-fin"] = "Finisterre",
["ngf-gah"] = "Gahuku",
["ngf-gau"] = "Gauwa",
["ngf-gaw"] = "Awyu Raya",
["ngf-gbi"] = "Binanderean Raya",
["ngf-gko"] = "Gaena-Korafe",
["ngf-gmo"] = "Gusap-Mot",
["ngf-gor"] = "Goroka",
["ngf-gsu"] = "Gogodala-Suki",
["ngf-gum"] = "Gum",
["ngf-gvd"] = "Dani Lembah Besar",
["ngf-hag"] = "Hagen",
["ngf-han"] = "Hanseman",
["ngf-huo"] = "Huon",
["ngf-jim"] = "Jimi",
["ngf-kab"] = "Kabwum",
["ngf-kai"] = "Kainantu",
["ngf-kak"] = "Kalam-Kobon",
["ngf-kau"] = "Kaukombar",
["ngf-kbm"] = "Kosorong-Burum-Mindik",
["ngf-kgo"] = "Kainantu-Goroka",
["ngf-khu"] = "Kewa-Huli",
["ngf-kma"] = "Kâte-Mape",
["ngf-kme"] = "Kapau-Menya",
["ngf-koi"] = "Koiarian",
["ngf-kok"] = "Kokon",
["ngf-kow"] = "Kowan",
["ngf-ksa"] = "Kalam-Adelbert Selatan",
["ngf-kto"] = "Kube-Tobo",
["ngf-kts"] = "Komyandaret-Tsaukambo",
["ngf-kum"] = "Kumil",
["ngf-kya"] = "Kamano-Yagaria",
["ngf-lok"] = "Ok Tanah Rendah",
["ngf-mab"] = "Mabuso",
["ngf-mad"] = "Madang",
["ngf-mek"] = "Mek",
["ngf-min"] = "Mindjim",
["ngf-mok"] = "Ok Pergunungan",
["ngf-mom"] = "Mombum",
["ngf-msu"] = "Mian-Suganga",
["ngf-nad"] = "Adelbert Utara",
["ngf-nbi"] = "Binanderean Utara",
["ngf-nde"] = "Ndeiram",
["ngf-ngn"] = "Ngalik-Nduga",
["ngf-nso"] = "Sogeram Utara",
["ngf-num"] = "Numugen",
["ngf-nur"] = "Nuru",
["ngf-nwh"] = "Hanseman Barat Laut",
["ngf-oen"] = "Engan Luar",
["ngf-okk"] = "Ok",
["ngf-omo"] = "Omosan",
["ngf-oro"] = "Orokaivik",
["ngf-pan"] = "Tasik Paniai",
["ngf-pek"] = "Peka",
["ngf-pom"] = "Pomoikan",
["ngf-rai"] = "Pesisir Rai",
["ngf-sab"] = "Sabakor",
["ngf-sad"] = "Adelbert Selatan",
["ngf-sak"] = "Sau-Angal-Kewa",
["ngf-san"] = "Sankwep",
["ngf-sbh"] = "Kepala Burung Selatan",
["ngf-sim"] = "Simbu",
["ngf-sog"] = "Sogeram",
["ngf-sop"] = "Sopac",
["ngf-taa"] = "Tainae-Akoye",
["ngf-tai"] = "Tairora",
["ngf-tib"] = "Tiboran",
["ngf-tna"] = "Tangko-Nakai",
["ngf-uru"] = "Uruwa",
["ngf-usi"] = "Utu-Silopi",
["ngf-waa"] = "Wantoat-Awara",
["ngf-wah"] = "Wahgi",
["ngf-wan"] = "Wantoatik",
["ngf-war"] = "Warup",
["ngf-woj"] = "Wojokesik",
["ngf-wok"] = "Ok Barat",
["ngf-wso"] = "Sogeram Barat",
["ngf-yag"] = "Yaganon",
["ngf-yal"] = "Yali",
["ngf-yar"] = "Yareban",
["ngf-ynu"] = "Yau-Nungon",
["ngf-yup"] = "Yupna",
["nic"] = "Niger-Congo",
["nic-alu"] = "Alumik",
["nic-bas"] = "Basa",
["nic-bbe"] = "Beboid Timur",
["nic-bco"] = "Benue-Congo",
["nic-bcr"] = "Bantoid-Cross",
["nic-bdn"] = "Bantoid Utara",
["nic-bds"] = "Bantoid Selatan",
["nic-beb"] = "Beboid",
["nic-ben"] = "Bendi",
["nic-beo"] = "Beromik",
["nic-bod"] = "Bantoid",
["nic-buk"] = "Buli-Koma",
["nic-bwa"] = "Bwa",
["nic-cde"] = "Delta Tengah",
["nic-cri"] = "Cross River",
["nic-dag"] = "Dagbani",
["nic-dak"] = "Dakoid",
["nic-dge"] = "Dogon Tubir",
["nic-dgw"] = "Dogon Barat",
["nic-eko"] = "Ekoid",
["nic-eov"] = "Oti-Volta Timur",
["nic-fru"] = "Furu",
["nic-gne"] = "Gurunsi Timur",
["nic-gnn"] = "Gurunsi Utara",
["nic-gns"] = "Gurunsi",
["nic-gnw"] = "Gurunsi Barat",
["nic-gre"] = "Grassfields Timur",
["nic-grf"] = "Grassfields",
["nic-grm"] = "Gurma",
["nic-grs"] = "Grassfields Barat Daya",
["nic-gur"] = "Gur",
["nic-ief"] = "Ibibio-Efik",
["nic-jer"] = "Jera",
["nic-jkn"] = "Jukunoid",
["nic-jrn"] = "Jarawan",
["nic-jrw"] = "Jarawa",
["nic-kam"] = "Kambari",
["nic-kau"] = "Kauru",
["nic-kmk"] = "Kamuku",
["nic-kne"] = "Kainji Timur",
["nic-knj"] = "Kainji",
["nic-knn"] = "Kainji Barat Laut",
["nic-ktl"] = "Katloid",
["nic-lcr"] = "Cross River Bawah",
["nic-mam"] = "Mamfe",
["nic-mba"] = "Mbam",
["nic-mbc"] = "Mba",
["nic-mbw"] = "Mbam Barat",
["nic-mmb"] = "Mambiloid",
["nic-mom"] = "Momo",
["nic-mre"] = "Moré",
["nic-ngd"] = "Ngbandi",
["nic-nge"] = "Ngemba",
["nic-ngk"] = "Ngbaka",
["nic-nin"] = "Ninzik",
["nic-nka"] = "Nkambe",
["nic-nkb"] = "Baka",
["nic-nke"] = "Ngbaka Timur",
["nic-nkg"] = "Gbanziri",
["nic-nkk"] = "Kpala",
["nic-nkm"] = "Mbaka",
["nic-nkw"] = "Ngbaka Barat",
["nic-npd"] = "Dogon Penara Utara",
["nic-nun"] = "Nun",
["nic-nwa"] = "Nanga-Walo",
["nic-ogo"] = "Ogoni",
["nic-ovo"] = "Oti-Volta",
["nic-pla"] = "Platoid",
["nic-plc"] = "Penara Tengah",
["nic-pld"] = "Dogon Dataran",
["nic-ple"] = "Penara Timur",
["nic-pls"] = "Penara Selatan",
["nic-plt"] = "Penara",
["nic-ras"] = "Rashad",
["nic-rnc"] = "Ring Tengah",
["nic-rng"] = "Ring",
["nic-rnn"] = "Ring Utara",
["nic-rnw"] = "Ring Barat",
["nic-ser"] = "Sere",
["nic-shi"] = "Shiroro",
["nic-sis"] = "Sisaala",
["nic-tar"] = "Tarokoid",
["nic-tiv"] = "Tivoid",
["nic-tvc"] = "Tivoid Tengah",
["nic-tvn"] = "Tivoid Utara",
["nic-ubg"] = "Ubangian",
["nic-uce"] = "Cross River Atas Timur-Barat",
["nic-ucn"] = "Cross River Atas Utara-Selatan",
["nic-ucr"] = "Cross River Atas",
["nic-vco"] = "Volta-Congo",
["nic-wov"] = "Oti-Volta Barat",
["nic-ykb"] = "Yukubenik",
["nic-ymb"] = "Yambasa",
["nic-yon"] = "Yom-Nawdm",
["njo"] = "Ao",
["nub"] = "Nubia",
["nub-hil"] = "Nubia Bukit",
["nur-nor"] = "Nuristani Utara",
["nur-sou"] = "Nuristani Selatan",
["omq"] = "Oto-Manguean",
["omq-cha"] = "Chatino",
["omq-chi"] = "Chinantecan",
["omq-cui"] = "Cuicatec",
["omq-maz"] = "Mazatecan",
["omq-mix"] = "Mixtecan",
["omq-mxt"] = "Mixtec",
["omq-otp"] = "Oto-Pamean",
["omq-pop"] = "Popolocan",
["omq-tri"] = "Triqui",
["omq-zap"] = "Zapotecan",
["omq-zpc"] = "Zapotec",
["omv"] = "Omotik",
["omv-aro"] = "Aroid",
["omv-diz"] = "Dizoid",
["omv-eom"] = "Ometo Timur",
["omv-gon"] = "Gonga",
["omv-mao"] = "Mao",
["omv-nom"] = "Ometo Utara",
["omv-ome"] = "Ometo",
["oto"] = "Otomian",
["oto-otm"] = "Otomi",
["paa"] = "Papua",
["paa-aia"] = "Aian",
["paa-alp"] = "Alor-Pantar",
["paa-amu"] = "Amto-Musan",
["paa-ani"] = "Anim",
["paa-ara"] = "Arapesh",
["paa-arf"] = "Arafundi",
["paa-ata"] = "Ataitan",
["paa-baa"] = "Bayono-Awbono",
["paa-bai"] = "Baining",
["paa-baw"] = "Bosngun-Awar",
["paa-bew"] = "Bewani",
["paa-boa"] = "Boazi",
["paa-bor"] = "Border",
["paa-bul"] = "Sungai Bulaka",
["paa-bvi"] = "Betaf-Vitou",
["paa-clp"] = "Dataran Tasik Tengah",
["paa-dtu"] = "Doso-Turumsa",
["paa-ebh"] = "Kepala Burung Timur",
["paa-eel"] = "Eleman Timur",
["paa-egb"] = "Teluk Geelvink Timur",
["paa-eke"] = "Keram Timur",
["paa-ele"] = "Eleman",
["paa-elp"] = "Dataran Tasik Timur",
["paa-epw"] = "Pauwasi Timur",
["paa-etf"] = "Trans-Fly Timur",
["paa-eti"] = "Timor Timur",
["paa-fas"] = "Fas",
["paa-flp"] = "Dataran Tasik Barat Jauh",
["paa-gkw"] = "Kwerba Raya",
["paa-gto"] = "Galela-Tobelo",
["paa-hya"] = "Heyo-Yahang",
["paa-ing"] = "Teluk Pedalaman",
["paa-isk"] = "Sko Pedalaman",
["paa-iwa"] = "Iwam",
["paa-kae"] = "Kamula-Elevala",
["paa-kan"] = "Kanum",
["paa-kay"] = "Kayagarik",
["paa-ker"] = "Keram",
["paa-kiw"] = "Kiwaian",
["paa-kko"] = "Kaure-Kosare",
["paa-koa"] = "Kombio-Arapesh",
["paa-kol"] = "Kolopom",
["paa-kom"] = "Kombio",
["paa-kun"] = "Kunimaipan",
["paa-kwa"] = "Kwalean",
["paa-kwe"] = "Kwerba tepat",
["paa-kwo"] = "Kwomtari",
["paa-lla"] = "Loloda-Laba",
["paa-lma"] = "May Kiri",
["paa-lmu"] = "Lepki-Murkim",
["paa-lpl"] = "Dataran Tasik",
["paa-lra"] = "Ramu Bawah",
["paa-lse"] = "Sepik Bawah",
["paa-mai"] = "Mairasi",
["paa-mal"] = "Mailuan",
["paa-mam"] = "Maimai",
["paa-man"] = "Manubaran",
["paa-mar"] = "Marienberg",
["paa-may"] = "Maybratik",
["paa-mbi"] = "Mbaham-Iha",
["paa-mby"] = "Marind-Boazi-Yaqay",
["paa-mmu"] = "Mandi-Muniwara",
["paa-mon"] = "Monumbo",
["paa-mri"] = "Marindik",
["paa-nam"] = "Nambu",
["paa-nbo"] = "Bougainville Utara",
["paa-ndu"] = "Ndu",
["paa-ngk"] = "Ngkolmpu",
["paa-nha"] = "Halmahera Utara",
["paa-nim"] = "Nimboran",
["paa-nnd"] = "Ndu Nuklear",
["paa-nnh"] = "Halmahera Utara Bahagian Utara",
["paa-nto"] = "Namla-Tofanma",
["paa-ott"] = "Ottilien",
["paa-pah"] = "Sungai Pahoturi",
["paa-pal"] = "Palei",
["paa-pia"] = "Piawi",
["paa-pio"] = "Sungai Piore",
["paa-por"] = "Porapora",
["paa-ram"] = "Ramu",
["paa-rsa"] = "Rasawa-Saponi",
["paa-rub"] = "Ruboni",
["paa-saa"] = "Samarokena-Airoran",
["paa-sah"] = "Sahu",
["paa-sbo"] = "Bougainville Selatan",
["paa-sen"] = "Sentani",
["paa-sep"] = "Sepik",
["paa-shi"] = "Bukit Serra",
["paa-sko"] = "Sko",
["paa-sng"] = "Senagi",
["paa-taa"] = "Taikat-Awyi",
["paa-tam"] = "Tamolan",
["paa-tap"] = "Timor-Alor-Pantar",
["paa-teb"] = "Teberan",
["paa-tir"] = "Tirio",
["paa-tki"] = "Turama-Kikori",
["paa-ton"] = "Tonda",
["paa-too"] = "Tor-Orya",
["paa-tor"] = "Tor",
["paa-trr"] = "Torricelli",
["paa-tti"] = "Ternate-Tidore",
["paa-wal"] = "Walio",
["paa-wap"] = "Wapei",
["paa-war"] = "Waris",
["paa-wbh"] = "Kepala Burung Barat",
["paa-wel"] = "Eleman Barat",
["paa-wig"] = "Teluk Pedalaman Barat",
["paa-wke"] = "Keram Barat",
["paa-wko"] = "Wára-Kómnzo",
["paa-wlp"] = "Dataran Tasik Barat",
["paa-wpa"] = "Wapei-Palei",
["paa-wpw"] = "Pauwasi Barat",
["paa-yam"] = "Yam",
["paa-yaq"] = "Yaqayik",
["paa-ysa"] = "Yawa-Saweru",
["paa-yua"] = "Yuat",
["phi"] = "Filipina",
["phi-kal"] = "Kalamian",
["poz"] = "Melayu-Polinesia",
["poz-aay"] = "Kepulauan Admiralty",
["poz-bnn"] = "Borneo Utara",
["poz-bre"] = "Barito Timur",
["poz-brw"] = "Barito Barat",
["poz-bss"] = "Bali-Sasak-Sumbawa",
["poz-btk"] = "Bungku-Tolaki",
["poz-cet"] = "Melayu-Polinesia Tengah-Timur",
["poz-clb"] = "Celebik",
["poz-cln"] = "Kaledonia Baharu",
["poz-cma"] = "Maluku Tengah",
["poz-hce"] = "Halmahera-Cenderawasih",
["poz-kal"] = "Kaili-Pamona",
["poz-lgx"] = "Lampungik",
["poz-mcm"] = "Melayu-Chamik",
["poz-mic"] = "Mikronesia",
["poz-mly"] = "Melayik",
["poz-msa"] = "Melayu-Sumbawa",
["poz-mun"] = "Muna-Buton",
["poz-nws"] = "Sumatera Barat Laut",
["poz-occ"] = "Oceania Tengah-Timur",
["poz-oce"] = "Oceania",
["poz-ocs"] = "Oceania Selatan",
["poz-ocw"] = "Oceania Barat",
["poz-pcc"] = "Pasifik Tengah",
["poz-pep"] = "Polinesia Timur",
["poz-pnp"] = "Polinesia Nuklear",
["poz-pol"] = "Polinesia",
["poz-san"] = "Sabahan",
["poz-sbj"] = "Sama-Bajaw",
["poz-slb"] = "Saluan-Banggai",
["poz-sls"] = "Solomon Tenggara",
["poz-ssw"] = "Sulawesi Selatan",
["poz-stm"] = "St. Matthias",
["poz-swa"] = "Sarawak Utara",
["poz-tem"] = "Temotu",
["poz-tim"] = "Timorik",
["poz-ton"] = "Tongik",
["poz-tot"] = "Tomini-Tolitoli",
["poz-vnc"] = "Vanuatu Tengah",
["poz-vnn"] = "Vanuatu Utara",
["poz-vns"] = "Vanuatu Selatan",
["poz-wot"] = "Wotu-Wolio",
["pqe"] = "Melayu-Polinesia Timur",
["qfa-adc"] = "Andaman Besar Tengah",
["qfa-adm"] = "Andaman Besar",
["qfa-adn"] = "Andaman Besar Utara",
["qfa-ads"] = "Andaman Besar Selatan",
["qfa-ain"] = "Ainuik",
["qfa-bej"] = "Be-Jizhao",
["qfa-bet"] = "Be-Tai",
["qfa-buy"] = "Buyang",
["qfa-cka"] = "Chukotko-Kamchatkan",
["qfa-ckn"] = "Chukotkan",
["qfa-cnt"] = "kontak",
["qfa-cre"] = "kreol",
["qfa-dgn"] = "Dogon",
["qfa-dis"] = "pertalian yang dipertikaikan",
["qfa-dny"] = "Dene-Yeniseian",
["qfa-hur"] = "Hurro-Urartian",
["qfa-iso"] = "pencilan",
["qfa-kad"] = "Kadu",
["qfa-kms"] = "Kam-Sui",
["qfa-kor"] = "Koreanik",
["qfa-kra"] = "Kra",
["qfa-lic"] = "Hlai",
["qfa-mch"] = "Makro-Chibchan",
["qfa-mix"] = "bercampur",
["qfa-not"] = "bukan satu keluarga",
["qfa-onb"] = "Be",
["qfa-ong"] = "Ongan",
["qfa-pid"] = "pidgin",
["qfa-sub"] = "substrat",
["qfa-tak"] = "Kra-Dai",
["qfa-tyn"] = "Tyrsenian",
["qfa-unc"] = "tidak dapat dikelaskan",
["qfa-xgs"] = "Serbi-Mongolik",
["qfa-xgx"] = "Para-Mongolik",
["qfa-yen"] = "Yeniseian",
["qfa-yke"] = "Ketik",
["qfa-yko"] = "Kottik",
["qfa-ypm"] = "Pumpokolik",
["qfa-yrn"] = "Arinik",
["qfa-yuk"] = "Yukaghir",
["qwe"] = "Quechuan",
["raj"] = "Rajasthani",
["roa"] = "Romance",
["roa-asl"] = "Asturleonese",
["roa-cas"] = "Castilian",
["roa-dal"] = "Romance Dalmatia",
["roa-eas"] = "Romance Timur",
["roa-emr"] = "Emilian-Romagnol",
["roa-gap"] = "Galicia-Portugis",
["roa-gar"] = "Gallo-Romance",
["roa-git"] = "Gallo-Italik",
["roa-grh"] = "Gallo-Rhaetian",
["roa-ibe"] = "Ibero-Romance",
["roa-itd"] = "Italo-Dalmatia",
["roa-itr"] = "Italo-Romance",
["roa-iwr"] = "Romance Italo-Barat",
["roa-nar"] = "Navarro-Aragonese",
["roa-ocr"] = "Occitano-Romance",
["roa-oil"] = "Oïl",
["roa-rhe"] = "Rhaeto-Romance",
["roa-sou"] = "Romance Selatan",
["roa-wes"] = "Romance Barat",
["sai-ara"] = "Araucanian",
["sai-aym"] = "Aymaran",
["sai-bar"] = "Barbacoan",
["sai-bor"] = "Boran",
["sai-cah"] = "Cahuapanan",
["sai-car"] = "Cariban",
["sai-cer"] = "Cerrado",
["sai-chc"] = "Chocoan",
["sai-cho"] = "Chonan",
["sai-cje"] = "Jê Tengah",
["sai-cpc"] = "Chapacuran",
["sai-crn"] = "Charruan",
["sai-ctc"] = "Catacaoan",
["sai-guc"] = "Guaicuruan",
["sai-guh"] = "Guahiban",
["sai-gui"] = "Guianan",
["sai-har"] = "Harákmbut",
["sai-hkt"] = "Harákmbut-Katukinan",
["sai-hrp"] = "Huarpean",
["sai-jee"] = "Jê",
["sai-jir"] = "Jirajaran",
["sai-jiv"] = "Jivaroan",
["sai-ktk"] = "Katukinan",
["sai-kui"] = "Kuikuroan",
["sai-map"] = "Mapoyan",
["sai-mas"] = "Mascoian",
["sai-mgc"] = "Mataco-Guaicuru",
["sai-mje"] = "Makro-Jê",
["sai-mtc"] = "Matacoan",
["sai-mur"] = "Muran",
["sai-nad"] = "Nadahup",
["sai-nje"] = "Jê Utara",
["sai-nmk"] = "Nambikwaran",
["sai-otm"] = "Otomacoan",
["sai-pan"] = "Panoan",
["sai-pat"] = "Pano-Tacanan",
["sai-pek"] = "Pekodian",
["sai-pem"] = "Pemongan",
["sai-pey"] = "Peba-Yaguan",
["sai-prk"] = "Parukotoan",
["sai-sje"] = "Jê Selatan",
["sai-tac"] = "Tacanan",
["sai-tar"] = "Taranoan",
["sai-tin"] = "Tiniguan",
["sai-tuc"] = "Tucanoan",
["sai-tyu"] = "Ticuna-Yuri",
["sai-ucp"] = "Uru-Chipaya",
["sai-ven"] = "Cariban Venezuela",
["sai-wic"] = "Wichí",
["sai-wit"] = "Witotoan",
["sai-ynm"] = "Yanomami",
["sai-yuk"] = "Yukpan",
["sai-zam"] = "Zamucoan",
["sai-zap"] = "Zaparoan",
["sal"] = "Salish",
["sdv"] = "Sudanik Timur",
["sdv-bri"] = "Bari",
["sdv-daj"] = "Daju",
["sdv-dnu"] = "Dinka-Nuer",
["sdv-eje"] = "Jebel Timur",
["sdv-kln"] = "Kalenjin",
["sdv-lma"] = "Lotuko-Maa",
["sdv-lon"] = "Luo Utara",
["sdv-los"] = "Luo Selatan",
["sdv-luo"] = "Luo",
["sdv-nes"] = "Sudanik Timur Bahagian Utara",
["sdv-nie"] = "Nilotik Timur",
["sdv-nil"] = "Nilotik",
["sdv-nis"] = "Nilotik Selatan",
["sdv-niw"] = "Nilotik Barat",
["sdv-nma"] = "Nandi-Markweta",
["sdv-nyi"] = "Nyima",
["sdv-tmn"] = "Taman",
["sdv-ttu"] = "Teso-Turkana",
["sel"] = "Selkup",
["sem"] = "Semitik",
["sem-ara"] = "Aramia",
["sem-arb"] = "Arab",
["sem-are"] = "Aramia Timur",
["sem-arw"] = "Aramia Barat",
["sem-ase"] = "Aramia Tenggara",
["sem-can"] = "Kanaan",
["sem-cen"] = "Semitik Tengah",
["sem-cna"] = "Neo-Aramia Tengah",
["sem-eas"] = "Semitik Timur",
["sem-eth"] = "Semitik Habsyah",
["sem-nna"] = "Neo-Aramia Timur Laut",
["sem-nwe"] = "Semitik Barat Laut",
["sem-osa"] = "Arab Selatan Kuno",
["sem-sar"] = "Arab Selatan Moden",
["sem-wes"] = "Semitik Barat",
["sgn"] = "bahasa isyarat",
["sgn-asl"] = "Bahasa Isyarat Amerika",
["sgn-fsl"] = "Bahasa Isyarat Perancis",
["sgn-gsl"] = "Bahasa Isyarat Jerman",
["sgn-jsl"] = "Bahasa Isyarat Jepun",
["sio"] = "Siouan",
["sio-dhe"] = "Dhegihan",
["sio-dkt"] = "Dakotan",
["sio-mor"] = "Siouan Sungai Missouri",
["sio-msv"] = "Siouan Lembah Mississippi",
["sio-ohv"] = "Siouan Lembah Ohio",
["sit"] = "Sino-Tibet",
["sit-aao"] = "Naga Tengah",
["sit-alm"] = "Almora",
["sit-bai"] = "Bai",
["sit-bdi"] = "Bodish",
["sit-cln"] = "Cai-Long",
["sit-dhi"] = "Dhimalish",
["sit-ebo"] = "Bodish Timur",
["sit-egy"] = "rGyalrongik Timur",
["sit-ers"] = "Ersuik",
["sit-gma"] = "Magarik Raya",
["sit-gsi"] = "Siangik Raya",
["sit-hrs"] = "Hrusish",
["sit-jnp"] = "Jingphoik",
["sit-jpl"] = "Kachin-Luik",
["sit-kch"] = "Konyak-Chang",
["sit-kha"] = "Kham",
["sit-khb"] = "Kho-Bwa",
["sit-khc"] = "Chug-Lish",
["sit-khm"] = "Mey-Sartang",
["sit-khw"] = "Kho-Bwa Barat",
["sit-kic"] = "Kiranti Tengah",
["sit-kie"] = "Kiranti Timur",
["sit-kin"] = "Kinnaurik",
["sit-kir"] = "Kiranti",
["sit-kiw"] = "Kiranti Barat",
["sit-kon"] = "Naga Utara",
["sit-kyk"] = "Kyirong-Kagate",
["sit-lab"] = "Ladakhi-Balti",
["sit-las"] = "Lahuli-Spiti",
["sit-luu"] = "Luish",
["sit-mar"] = "Maringik",
["sit-mba"] = "Makro-Bai",
["sit-mdz"] = "Midzu",
["sit-mnz"] = "Mondzish",
["sit-mru"] = "Mruik",
["sit-nas"] = "Naish",
["sit-nax"] = "Naik",
["sit-nba"] = "Bai Utara",
["sit-new"] = "Newarik",
["sit-nng"] = "Nungish",
["sit-qia"] = "Qiangik",
["sit-rgy"] = "Rgyalrongik",
["sit-sba"] = "Sino-Bai",
["sit-tam"] = "Tamangik",
["sit-tan"] = "Tani",
["sit-tib"] = "Tibetik",
["sit-tja"] = "Tujia",
["sit-tma"] = "Tangkhul-Maring",
["sit-tng"] = "Tangkhulik",
["sit-tno"] = "Tangsa-Nocte",
["sit-tsk"] = "Tshangla",
["sit-wgy"] = "rGyalrongik Barat",
["sit-whm"] = "Himalaya Barat",
["sit-zem"] = "Zeme",
["sla"] = "Slav",
["smi"] = "Sami",
["son"] = "Songhay",
["sqj"] = "Albania",
["ssa"] = "Nilo-Sahara",
["ssa-fur"] = "Fur",
["ssa-klk"] = "Kuliak",
["ssa-kom"] = "Koman",
["ssa-sah"] = "Sahara",
["syd"] = "Samoyed",
["syd-ene"] = "Enets",
["tai"] = "Tai",
["tai-cen"] = "Tai Tengah",
["tai-cho"] = "Tai Chongzuo",
["tai-nor"] = "Tai Utara",
["tai-sap"] = "Tai Sapa-Barat Daya",
["tai-swe"] = "Tai Barat Daya",
["tai-tay"] = "Tày",
["tai-wen"] = "Tai Wenma-Barat Daya",
["tbq"] = "Tibeto-Burma",
["tbq-anp"] = "Angami-Pochuri",
["tbq-axi"] = "Axioid",
["tbq-bdg"] = "Bodo-Garo",
["tbq-bis"] = "Bisoid",
["tbq-bka"] = "Bi-Ka",
["tbq-bkj"] = "Sal",
["tbq-brm"] = "Burmik",
["tbq-buq"] = "Burmo-Qiangik",
["tbq-drp"] = "Phula Hilir Sungai",
["tbq-han"] = "Hanoid",
["tbq-hph"] = "Phula Tanah Tinggi",
["tbq-jin"] = "Jino",
["tbq-kuk"] = "Kuki-Chin",
["tbq-kzh"] = "Kazhuoish",
["tbq-lal"] = "Lalo",
["tbq-lho"] = "Lahoish",
["tbq-llo"] = "Lipo-Lolopo",
["tbq-lob"] = "Lolo-Burma",
["tbq-lol"] = "Loloik",
["tbq-lso"] = "Lisoish",
["tbq-lwo"] = "Lawoish",
["tbq-muj"] = "Muji",
["tbq-nas"] = "Nasoid",
["tbq-nis"] = "Nisu",
["tbq-nlo"] = "Loloik Utara",
["tbq-nso"] = "Nisoish",
["tbq-nus"] = "Nusoish",
["tbq-phw"] = "Phowa",
["tbq-rph"] = "Phula Sungai",
["tbq-sel"] = "Loloik Tenggara",
["tbq-sil"] = "Siloid",
["tbq-slo"] = "Loloik Selatan",
["tbq-tal"] = "Taloid",
["tbq-urp"] = "Phula Hulu Sungai",
["trk"] = "Turkik",
["trk-cmn"] = "Turkik Sepunya",
["trk-kar"] = "Karluk",
["trk-kbu"] = "Kipchak-Bulgar",
["trk-kcu"] = "Kipchak-Cuman",
["trk-kip"] = "Kipchak",
["trk-kkp"] = "Kyrgyz-Kipchak",
["trk-kno"] = "Kipchak-Nogai",
["trk-nsb"] = "Turkik Siberia Utara",
["trk-ogr"] = "Oghur",
["trk-ogz"] = "Oghuz",
["trk-sib"] = "Turkik Siberia",
["trk-ssb"] = "Turkik Siberia Selatan",
["tup"] = "Tupi",
["tup-gua"] = "Tupi-Guarani",
["tuw"] = "Tungusik",
["tuw-ewe"] = "Ewenik",
["tuw-jrc"] = "Jurchenik",
["tuw-nan"] = "Nanaik",
["tuw-udg"] = "Udegheik",
["urj"] = "Uralik",
["urj-fin"] = "Finnik",
["urj-mdv"] = "Mordvinik",
["urj-prm"] = "Permik",
["urj-ugr"] = "Ugrik",
["wak"] = "Wakashan",
["wen"] = "Sorbia",
["xgn"] = "Mongolik",
["xgn-cen"] = "Mongolik Tengah",
["xgn-shr"] = "Shirongolik",
["xgn-sou"] = "Mongolik Selatan",
["xme"] = "Media",
["xme-ttc"] = "Tatik",
["xnd"] = "Na-Dene",
["xsc"] = "Scythia",
["xsc-sak"] = "Saka",
["xsc-sar"] = "Sarmatia",
["xsc-skw"] = "Saka-Wakhi",
["yok"] = "Yokuts",
["ypk"] = "Yupik",
["yrk"] = "Nenets",
["zhx"] = "Sinitik",
["zhx-com"] = "Min Pantai",
["zhx-inm"] = "Min Pedalaman",
["zhx-man"] = "Mandarinik",
["zhx-min"] = "Min",
["zhx-nan"] = "Min Selatan",
["zhx-pin"] = "Pinghua",
["zhx-yue"] = "Yue",
["zle"] = "Slav Timur",
["zls"] = "Slav Selatan",
["zlw"] = "Slav Barat",
["zlw-lch"] = "Lechitik",
["zlw-pom"] = "Pomerania",
["znd"] = "Zande",
}
3tilf6v9gw9dmjan61bs0gi8yny95fe
Modul:languages/code to canonical name.json
828
33775
373530
346947
2026-09-11T03:05:20Z
SNN95
2113
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373530
json
application/json
{
"aa": "Afar",
"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": "Proto-Khasian",
"aav-nic-pro": "Proto-Nicobarese",
"aav-pkl-pro": "Proto-Pnar-Khasi-Lyngngam",
"aav-pro": "Proto-Austroasiatik",
"aaw": "Solong",
"aax": "Mandobo Atas",
"aaz": "Amarasi",
"ab": "Abkhaz",
"aba": "Abé",
"abb": "Bankon",
"abc": "Ayta Ambala",
"abd": "Agta Camarines Norte",
"abe": "Abenaki",
"abf": "Abai Sungai",
"abg": "Abaga",
"abh": "Arab Tajik",
"abi": "Abidji",
"abj": "Aka-Bea",
"abl": "Abung",
"abm": "Abanyom",
"abn": "Abua",
"abo": "Abon",
"abp": "Ayta Abenlen",
"abq": "Abaza",
"abs": "Melayu Ambon",
"abt": "Ambulas",
"abu": "Abure",
"abv": "Arab Bahrani",
"abw": "Pal",
"abx": "Inabaknon",
"aby": "Aneme Wake",
"abz": "Abui",
"aca": "Achagua",
"acb": "Áncá",
"acd": "Gikyode",
"ace": "Aceh",
"ach": "Acholi",
"aci": "Aka-Cari",
"ack": "Aka-Kora",
"acl": "Akar-Bale",
"acm": "Arab Iraq",
"acn": "Achang",
"acp": "Acipa Timur",
"acr": "Achi",
"acs": "Acroá",
"acu": "Achuar",
"acv": "Achumawi",
"acw": "Arab Hijaz",
"acx": "Arab Oman",
"acy": "Arab Cyprus",
"acz": "Acheron",
"ada": "Adangme",
"adb": "Atauran",
"add": "Dzodinka",
"ade": "Adele",
"adf": "Arab Dhofar",
"adg": "Andegerebinha",
"adh": "Adhola",
"adi": "Adi",
"adj": "Adioukrou",
"adl": "Galo",
"adn": "Adang",
"ado": "Abu",
"adp": "Adap",
"adq": "Adangbe",
"adr": "Adonara",
"ads": "Bahasa Isyarat Adamorobe",
"adt": "Adnyamathanha",
"adu": "Aduge",
"adw": "Amondawa",
"ady": "Circassian Barat",
"adz": "Adzera",
"ae": "Avestan",
"aea": "Areba",
"aeb": "Arab Tunisia",
"aed": "Bahasa Isyarat Argentina",
"aee": "Pashayi Timur Laut",
"aek": "Haeke",
"ael": "Ambele",
"aem": "Arem",
"aen": "Bahasa Isyarat Armenia",
"aeq": "Aer",
"aer": "Arrernte Timur",
"aes": "Alsea",
"aeu": "Akeu",
"aew": "Ambakich",
"aey": "Amele",
"aez": "Aeka",
"af": "Afrikaans",
"afa-pro": "Proto-Afroasiatik",
"afb": "Arab Teluk",
"afd": "Andai",
"afe": "Putukwam",
"afg": "Bahasa Isyarat Afghanistan",
"afh": "Afrihili",
"afi": "Akrukay",
"afk": "Nanubae",
"afn": "Defaka",
"afo": "Eloyi",
"afp": "Tapei",
"afs": "Kreol Afro-Seminole",
"aft": "Afitti",
"afu": "Awutu",
"afz": "Obokuitai",
"aga": "Aguano",
"agb": "Legbo",
"agc": "Agatu",
"agd": "Agarabi",
"age": "Angal",
"agf": "Arguni",
"agg": "Angor",
"agh": "Ngelima",
"agj": "Argobba",
"agk": "Agta Isarog",
"agl": "Fembe",
"agm": "Angaataha",
"agn": "Agutaynen",
"ago": "Tainae",
"agq": "Aghem",
"agr": "Aguaruna",
"ags": "Esimbi",
"agt": "Agta Cagayan Tengah",
"agu": "Aguacateco",
"agv": "Agta Remontado",
"agw": "Kahua",
"agx": "Aghul",
"agy": "Alta Selatan",
"agz": "Agta Gunung Iriga",
"aha": "Ahanta",
"ahb": "Axamb",
"ahg": "Qimant",
"ahh": "Aghu",
"ahi": "Tiagba",
"ahk": "Akha",
"ahl": "Igo",
"ahm": "Mobu",
"ahn": "Àhàn",
"aho": "Ahom",
"ahp": "Apro",
"ahr": "Ahirani",
"ahs": "Ashe",
"aht": "Ahtna",
"aia": "Arosi",
"aib": "Äynu",
"aic": "Ainbai",
"aid": "Alngith",
"aie": "Amara",
"aif": "Agi",
"aig": "Kreol Inggeris Antigua dan Barbuda",
"aih": "Ai-Cham",
"aii": "Neo-Aramia Assyria",
"aij": "Lishanid Noshan",
"aik": "Ake",
"ail": "Aimele",
"aim": "Aimol",
"ain": "Ainu",
"aio": "Aiton",
"aip": "Burumakok",
"air": "Airoran",
"ait": "Arikem",
"aiw": "Aari",
"aix": "Aighon",
"aiy": "Ali",
"aja": "Aja (Afrika Timur)",
"ajg": "Aja (Afrika Barat)",
"aji": "Ajië",
"ajn": "Andajin",
"ajp": "Arab Syam Selatan",
"ajs": "Bahasa Isyarat Yahudi Algeria",
"ajw": "Ajawa",
"ajz": "Karbi Amri",
"ak": "Akan",
"akb": "Batak Angkola",
"akc": "Mpur",
"akd": "Ukpet-Ehom",
"ake": "Akawaio",
"akf": "Akpa",
"akg": "Anakalangu",
"akh": "Angal Heneng",
"aki": "Aiome",
"akj": "Jeru",
"akk": "Akkadia",
"akl": "Aklanon",
"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": "Alabama",
"ala": "Alago",
"alc": "Kawésqar",
"ald": "Alladian",
"ale": "Aleut",
"alf": "Alege",
"alg-aga": "Agawam",
"alg-pro": "Proto-Algonquian",
"alh": "Alawa",
"ali": "Amaimon",
"alj": "Alangan",
"alk": "Alak",
"all": "Allar",
"alm": "Amblong",
"alo": "Larike-Wakasihu",
"alp": "Alune",
"alq": "Algonquin",
"alr": "Alutor",
"alt": "Altai Selatan",
"alu": "'Are'are",
"alv-ama": "Amasi",
"alv-bgu": "Bainouk Gubeeher",
"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": "Proto-Gbe",
"alv-gng-pro": "Proto-Guang",
"alv-gtm-pro": "Proto-Togo Tengah",
"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": "Proto-Atlantik-Congo",
"alv-von-pro": "Proto-Volta-Niger",
"alv-yor-pro": "Proto-Yoruba",
"alv-yrd-pro": "Proto-Yoruboid",
"alw": "Alaba",
"alx": "Amol",
"aly": "Alyawarr",
"alz": "Alur",
"am": "Amharic",
"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": "Amami Ōshima Selatan",
"amt": "Amto",
"amu": "Amuzgo Guerrero",
"amv": "Ambelau",
"amw": "Neo-Aramia Barat",
"amx": "Anmatyerre",
"amy": "Ami",
"amz": "Atampaya",
"an": "Aragonese",
"ana": "Andaqui",
"anb": "Andoa",
"anc": "Ngas",
"and": "Ansus",
"ane": "Xârâcùù",
"anf": "Animere",
"ang": "Inggeris Kuno",
"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": "Alor",
"aom": "Ömie",
"aon": "Arapesh Bumbita",
"aor": "Aore",
"aos": "Taikat",
"aot": "Atong (India)",
"aou": "A'ou",
"aox": "Atorada",
"aoz": "Uab Meto",
"apa-pro": "Proto-Apachean",
"apb": "Sa'a",
"apc": "Arab Syam Utara",
"apd": "Arab Sudan",
"ape": "Bukiyip",
"apf": "Agta Pahanan",
"apg": "Ampanang",
"aph": "Athpare",
"api": "Apiaká",
"apj": "Jicarilla",
"apk": "Apache Dataran",
"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": "Apache Barat",
"apx": "Aputai",
"apy": "Apalaí",
"apz": "Safeyoka",
"aqc": "Archi",
"aqd": "Dogon Ampari",
"aqg": "Arigidi",
"aql-pro": "Proto-Algic",
"aqm": "Atohwaim",
"aqn": "Alta Utara",
"aqp": "Atakapa",
"aqr": "Arhâ",
"aqt": "Angaité",
"aqz": "Akuntsu",
"ar": "Arabic",
"arc": "Aramia",
"ard": "Arabana",
"are": "Arrernte Barat",
"arh": "Arhuaco",
"ari": "Arikara",
"arj": "Arapaso",
"ark": "Arikapú",
"arl": "Arabela",
"arn": "Mapudungun",
"aro": "Araona",
"arp": "Arapaho",
"arq": "Arab Algeria",
"arr": "Arara-Karo",
"ars": "Arab Najdi",
"art-adu": "Adûni",
"art-bel": "Kreol Belter",
"art-blk": "Bolak",
"art-bsp": "Bahasa Hitam",
"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": "Valyrian Tinggi",
"aru": "Arua",
"arv": "Arbore",
"arw": "Lokono",
"arx": "Aruá",
"ary": "Arab Maghribi",
"arz": "Arab Mesir",
"as": "Assamese",
"asa": "Pare",
"asb": "Assiniboine",
"asc": "Asmat Pesisir Casuarina",
"ase": "Bahasa Isyarat Amerika",
"asf": "Auslan",
"asg": "Cishingini",
"ash": "Abishira",
"asi": "Buruwai",
"asj": "Nsari",
"ask": "Ashkun",
"asl": "Asilulu",
"asn": "Asuriní Xingú",
"aso": "Dano",
"asp": "Bahasa Isyarat Algeria",
"asq": "Bahasa Isyarat Austria",
"asr": "Asuri",
"ass": "Ipulo",
"ast": "Asturia",
"asu": "Asurini Tocantins",
"asv": "Asoa",
"asw": "Bahasa Isyarat Orang Asli Australia",
"asx": "Muratayak",
"asy": "Asmat Yaosakor",
"asz": "As",
"ata": "Pele-Ata",
"atb": "Zaiwa",
"atc": "Atsahuaca",
"atd": "Manobo Ata",
"ate": "Atemble",
"atg": "Okpela",
"ath-nic": "Nicola",
"ath-pro": "Proto-Athabaskan",
"ati": "Attié",
"atj": "Atikamekw",
"atk": "Ati",
"atl": "Agta Gunung Iraya",
"atm": "Ata",
"ato": "Atong (Cameroon)",
"atp": "Atta Pudtol",
"atq": "Aralle-Tabulahan",
"atr": "Waimiri-Atroari",
"ats": "Gros Ventre",
"att": "Atta Pamplona",
"atu": "Reel",
"atv": "Altai Utara",
"atw": "Atsugewi",
"atx": "Arutani",
"aty": "Aneityum",
"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": "One Molmo",
"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-New South Wales Tengah",
"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": "Arab Uzbeki",
"av": "Avar",
"avb": "Avau",
"avd": "Alviri-Vidari",
"avi": "Avikam",
"avk": "Kotava",
"avm": "Angkamuthi",
"avn": "Avatime",
"avs": "Aushiri",
"avt": "Au",
"avu": "Avokaya",
"avv": "Avá-Canoeiro",
"awa": "Awadhi",
"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-war": "Warekena Kuno",
"awd-yum": "Yumana",
"awe": "Awetí",
"awg": "Anguthimri",
"awh": "Awbono",
"awi": "Aekyom",
"awk": "Awabakal",
"awm": "Arawum",
"awn": "Awngi",
"awo": "Awak",
"awr": "Awera",
"aws": "Awyu Selatan",
"awt": "Araweté",
"awu": "Awyu Tengah",
"awv": "Awyu Jair",
"aww": "Awun",
"awx": "Awara",
"awy": "Awyu Edera",
"axb": "Abipón",
"axe": "Ayerrerenge",
"axg": "Arára (Mato Grosso)",
"axk": "Aka (Afrika Tengah)",
"axl": "Aranda Selatan Bawah",
"axm": "Armenia Pertengahan",
"axx": "Xârâgurè",
"ay": "Aymara",
"aya": "Awar",
"ayb": "Ayizo",
"ayd": "Ayabadhu",
"aye": "Ayere",
"ayg": "Nyanga (Togo)",
"ayi": "Leyigha",
"ayk": "Akuku",
"ayl": "Arab Libya",
"ayn": "Arab Yaman",
"ayo": "Ayoreo",
"ayp": "Arab Mesopotamia Utara",
"ayq": "Ayi",
"ays": "Ayta Sorsogon",
"ayt": "Ayta Bataan",
"ayu": "Ayu",
"ayz": "Maybrat",
"az": "Azerbaijani",
"aza": "Azha",
"azc-caz": "Cazcan",
"azc-cup-pro": "Proto-Cupan",
"azc-ktn": "Kitanemuk",
"azc-nah-pro": "Proto-Nahuan",
"azc-nic": "Nicoleño",
"azc-num-pro": "Proto-Numic",
"azc-pro": "Proto-Uto-Aztecan",
"azc-tak-pro": "Proto-Takic",
"azc-tat": "Tataviam",
"azd": "Nahuatl Durango Timur",
"azg": "Amuzgo San Pedro Amuzgos",
"azm": "Amuzgo Ipalapa",
"azn": "Nahuatl Durango Barat",
"azo": "Awing",
"azt": "Atta Faire",
"azz": "Nahuatl Puebla Tanah Tinggi",
"ba": "Bashkir",
"baa": "Babatana",
"bab": "Bainouk-Gunyuño",
"bac": "Badui",
"bae": "Baré",
"baf": "Nubaca",
"bag": "Tuki",
"bah": "Kreol Bahamas",
"baj": "Barakai",
"bal": "Baluchi",
"ban": "Bali",
"bao": "Waimaha",
"bap": "Bantawa",
"bar": "Bavarian",
"bas": "Basaa",
"bau": "Badanchi",
"bav": "Babungo",
"baw": "Bambili-Bambui",
"bax": "Bamum",
"bay": "Batuley",
"bba": "Baatonum",
"bbb": "Barai",
"bbc": "Batak Toba",
"bbd": "Bau",
"bbe": "Bangba",
"bbf": "Baibai",
"bbg": "Barama",
"bbh": "Bugan",
"bbi": "Barombi",
"bbj": "Ghomala'",
"bbk": "Babanki",
"bbl": "Bats",
"bbm": "Babango",
"bbn": "Uneapa",
"bbo": "Konabéré",
"bbp": "Banda Tengah Barat",
"bbq": "Bamali",
"bbr": "Girawa",
"bbs": "Bakpinka",
"bbt": "Mburku",
"bbu": "Bakulung",
"bbv": "Karnai",
"bbw": "Baba",
"bbx": "Bubia",
"bby": "Befang",
"bca": "Bai Tengah",
"bcb": "Bainouk-Samik",
"bcd": "Babar Utara",
"bce": "Bamenyam",
"bcf": "Bamu",
"bcg": "Baga Pokur",
"bch": "Bariai",
"bci": "Baoule",
"bcj": "Bardi",
"bck": "Bunaba",
"bcl": "Bikol Tengah",
"bcm": "Banoni",
"bcn": "Bibaali",
"bco": "Kaluli",
"bcp": "Baali",
"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",
"bdk": "Budukh",
"bdl": "Bajau Indonesia",
"bdm": "Buduma",
"bdn": "Baldemu",
"bdo": "Morom",
"bdp": "Bende",
"bdq": "Bahnar",
"bdr": "Bajau Sama",
"bds": "Burunge",
"bdt": "Bokoto",
"bdu": "Oroko",
"bdv": "Bodo Parja",
"bdw": "Baham",
"bdx": "Budong-Budong",
"bdy": "Bandjalang",
"bdz": "Badeshi",
"be": "Belarusian",
"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": "Proto-Berber",
"ber-zuw": "Zuwara",
"bes": "Besme",
"bet": "Guiberoua Bété",
"beu": "Blagar",
"bev": "Daloa Bété",
"bew": "Betawi",
"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": "Badaga",
"bfr": "Bazigar",
"bfs": "Bai Selatan",
"bft": "Balti",
"bfu": "Gahri",
"bfw": "Bondo",
"bfx": "Bantayanon",
"bfy": "Bagheli",
"bfz": "Mahasu Pahari",
"bg": "Bulgarian",
"bga": "Gwamhi-Wuri",
"bgb": "Bobongko",
"bgc": "Haryanvi",
"bgd": "Rathwi Bareli",
"bge": "Bauria",
"bgf": "Bangandu",
"bgg": "Bugun",
"bgi": "Giangan",
"bgj": "Bangolan",
"bgk": "Bit",
"bgl": "Bo",
"bgo": "Baga Koga",
"bgq": "Bagri",
"bgr": "Chin Bawm",
"bgs": "Tagabawa",
"bgt": "Bughotu",
"bgu": "Mbongno",
"bgv": "Warkay-Bipim",
"bgw": "Bhatri",
"bgx": "Balkan Gagauz Turkish",
"bgy": "Benggoi",
"bgz": "Banggai",
"bh": "Bihari",
"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": "Neo-Aram Bohtan",
"bho": "Bhojpur",
"bhp": "Bima",
"bhq": "Tukang Besi Selatan",
"bhs": "Buwal",
"bht": "Bhattiyali",
"bhu": "Bhunjia",
"bhv": "Bahau",
"bhw": "Biak",
"bhx": "Bhalay",
"bhy": "Bhele",
"bhz": "Bada",
"bi": "Bislama",
"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": "Birifor Selatan",
"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": "Banjar",
"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": "Binukid",
"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": "Bolongan",
"blk": "Karen Pa'o",
"bll": "Biloxi",
"blm": "Beli",
"bln": "Bicolano Catanduanes Selatan",
"blo": "Anii",
"blp": "Blablanga",
"blq": "Baluan-Pam",
"blr": "Blang",
"bls": "Balaesang",
"blt": "Tai Dam",
"blv": "Kibala",
"blw": "Balangao",
"blx": "Mag-Indi Ayta",
"bly": "Notre",
"blz": "Balantak",
"bm": "Bambara",
"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": "Bengali",
"bna": "Bonerate",
"bnb": "Bookan",
"bnd": "Banda",
"bne": "Bintauna",
"bnf": "Masiwang",
"bng": "Benga",
"bni": "Bangi",
"bnj": "Tawbuid Timur",
"bnk": "Bierebo",
"bnl": "Boon",
"bnm": "Batanga",
"bnn": "Bunun",
"bno": "Asi",
"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 (Afrika Selatan)",
"bnt-mpi": "Mpiin",
"bnt-mpu": "Mpuono",
"bnt-ngu-pro": "Proto-Nguni",
"bnt-phu": "Phuthi",
"bnt-pro": "Proto-Bantu",
"bnt-sab-pro": "Proto-Sabaki",
"bnt-sbo": "Boma Selatan",
"bnt-sts-pro": "Proto-Sotho-Tswana",
"bnu": "Bentong",
"bnv": "Beneraf",
"bnw": "Bisis",
"bnx": "Bangubangu",
"bny": "Vaie",
"bnz": "Beezen",
"bo": "Tibetan",
"boa": "Bora",
"bob": "Aweer",
"boe": "Mundabli",
"bof": "Bolon",
"bog": "Bamako Sign Language",
"boh": "Boma Utara",
"boi": "Barbareño",
"boj": "Anjam",
"bok": "Bonjo",
"bol": "Bole",
"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": "Dakaka",
"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": "Breton",
"bra": "Braj",
"brb": "Lave",
"brc": "Belanda Kreol Berbice",
"brd": "Baraamu",
"brf": "Bera",
"brg": "Baure",
"brh": "Brahui",
"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": "Bru Timur",
"brv": "Bru Barat",
"brw": "Bellari",
"brx": "Bodo (India)",
"bry": "Burui",
"brz": "Bilbil",
"bsa": "Abinomn",
"bsb": "Bisaya Brunei",
"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": "Bisaya Sabah",
"bta": "Bata",
"btc": "Bati (Cameroon)",
"btd": "Batak Dairi",
"bte": "Gamo-Ningi",
"btf": "Birgit",
"btg": "Gagnoa Bété",
"bth": "Bidayuh Biatah",
"bti": "Burate",
"btj": "Melayu Bacan",
"btk-pro": "Proto-Batak",
"btm": "Batak Mandailing",
"btn": "Ratagnon",
"bto": "Bicolano Iriga",
"btp": "Budibud",
"btq": "Batek",
"btr": "Baetora",
"bts": "Batak Simalungun",
"btt": "Bete-Bendi",
"btu": "Batu",
"btv": "Bateri",
"btw": "Butuanon",
"btx": "Batak Karo",
"bty": "Bobot",
"btz": "Batak Alas-Kluet",
"bua": "Buryat",
"bub": "Bua",
"bud": "Ntcham",
"bue": "Beothuk",
"buf": "Bushoong",
"bug": "Bugis",
"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": "Melayu Berau",
"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": "Melayu Bukit",
"bvv": "Baniva",
"bvw": "Boga",
"bvx": "Babole",
"bvy": "Baybayanon",
"bvz": "Bauzi",
"bwa": "Bwatoo",
"bwb": "Namosi-Naitasiri-Serua",
"bwc": "Bwile",
"bwd": "Bwaidoka",
"bwe": "Karen Bwe",
"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": "Bobo Selatan",
"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": "Batak Palawan",
"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": "Bisu",
"bzj": "Kreol Belize",
"bzk": "Kreol Nicaragua",
"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": "Catalan",
"caa": "Ch'orti'",
"cab": "Garifuna",
"cac": "Chuj",
"cad": "Caddo",
"cae": "Laalaa",
"caf": "Carrier Selatan",
"cag": "Nivaclé",
"cah": "Cahuarano",
"caj": "Chané",
"cak": "Kaqchikel",
"cal": "Carolinian",
"cam": "Cemuhî",
"can": "Chambri",
"cao": "Chácobo",
"cap": "Chipaya",
"caq": "Car Nicobarese",
"car": "Kari'na",
"cas": "Tsimané",
"cau-abz-pro": "Proto-Abkhaz-Abaza",
"cau-and-pro": "Proto-Andian",
"cau-ava-pro": "Proto-Avaro-Andian",
"cau-cir-pro": "Proto-Circassian",
"cau-drg-pro": "Proto-Dargwa",
"cau-lzg-pro": "Proto-Lezghian",
"cau-nec-pro": "Proto-Kaukasia Timur Laut",
"cau-nkh-pro": "Proto-Nakh",
"cau-nwc-pro": "Proto-Kaukasia Barat Laut",
"cau-tsz-pro": "Proto-Tsezian",
"cav": "Cavineña",
"caw": "Callawalla",
"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": "Chavacano",
"cbl": "Chin Bualkhaw",
"cbn": "Nyah Kur",
"cbo": "Izora",
"cbq": "Shuba",
"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": "Melayu Cheti",
"cco": "Comaltepec Chinantec",
"ccp": "Chakma",
"ccr": "Cacaopera",
"ccs-gzn-pro": "Proto-Georgia-Zan",
"ccs-pro": "Proto-Kartvelia",
"cda": "Choni",
"cdc-cbm-pro": "Proto-Chadic Tengah",
"cdc-mas-pro": "Proto-Masa",
"cdc-pro": "Proto-Chadic",
"cdd-pro": "Proto-Caddoan",
"cde": "Chenchu",
"cdf": "Chiru",
"cdh": "Chambeali",
"cdi": "Chodri",
"cdj": "Churahi",
"cdm": "Chepang",
"cdn": "Chaudangsi",
"cdo": "Min Timur",
"cdr": "Cinda-Regi-Tiyal",
"cds": "Bahasa Isyarat Chad",
"cdy": "Chadong",
"cdz": "Koda",
"ce": "Chechen",
"cea": "Lower Chehalis",
"ceb": "Cebuano",
"ceg": "Chamacoco",
"cel-bry-pro": "Proto-Brythonic",
"cel-gal": "Gallaecian",
"cel-gau": "Gaul",
"cel-pro": "Proto-Celtic",
"cen": "Cen",
"cet": "Centúúm",
"cfa": "Dijim-Bwilim",
"cfd": "Cara",
"cfg": "Como Karim",
"cfm": "Chin Falam",
"cga": "Changriwa",
"cgc": "Kagayanen",
"cgg": "Rukiga",
"cgk": "Chocangaca",
"ch": "Chamorro",
"chb": "Chibcha",
"chc": "Catawba",
"chd": "Highland Oaxaca Chontal",
"chf": "Tabasco Chontal",
"chg": "Chagatai",
"chh": "Chinook",
"chi-pro": "Proto-Chimakuan",
"chj": "Ojitlán Chinantec",
"chk": "Chuuk",
"chl": "Cahuilla",
"chm-pro": "Proto-Mari",
"chn": "Chinook Jargon",
"cho": "Choctaw",
"chp": "Chipewyan",
"chq": "Quiotepec Chinantec",
"chr": "Cherokee",
"cht": "Cholón",
"chw": "Chuabo",
"chx": "Chantyal",
"chy": "Cheyenne",
"chz": "Ozumacín Chinantec",
"cia": "Cia-Cia",
"cib": "Ci Gbe",
"cic": "Chickasaw",
"cid": "Chimariko",
"cie": "Cineni",
"cih": "Chinali",
"cik": "Chitkuli Kinnauri",
"cim": "Cimbrian",
"cin": "Cinta Larga",
"cip": "Chiapanec",
"cir": "Tiri",
"ciy": "Chaima",
"cja": "Cam Barat",
"cje": "Chru",
"cjh": "Upper Chehalis",
"cji": "Chamalal",
"cjk": "Chokwe",
"cjm": "Cam Timur",
"cjn": "Chenapian",
"cjo": "Ashéninka Pajonal",
"cjp": "Cabécar",
"cjs": "Shor",
"cjv": "Chuave",
"cjy": "Jin",
"ckb": "Kurdi Tengah",
"ckh": "Chak",
"ckl": "Cibak",
"ckn": "Chin Kaang",
"cko": "Anufo",
"ckq": "Kajakse",
"ckr": "Kairak",
"cks": "Tayo",
"ckt": "Chukchi",
"cku": "Koasati",
"ckv": "Kavalan",
"ckx": "Caka",
"cky": "Cakfem-Mushere",
"ckz": "Cakchiquel-Quiché Mixed Language",
"cla": "Ron",
"clc": "Chilcotin",
"cld": "Chaldean Neo-Aramaic",
"cle": "Lealao Chinantec",
"clh": "Chilisso",
"cli": "Chakali",
"clj": "Chin Laitu",
"clk": "Idu",
"cll": "Chala",
"clm": "Klallam",
"clo": "Lowland Oaxaca Chontal",
"clt": "Chin Laitu",
"clu": "Caluyanun",
"clw": "Chulym",
"cly": "Chatino Tanah Tinggi Timur",
"cma": "Mạ",
"cmc-pro": "Proto-Chamic",
"cme": "Cerma",
"cmg": "Mongol Klasik",
"cmi": "Emberá-Chamí",
"cml": "Campalagian",
"cmm": "Michigamea",
"cmn": "Mandarin",
"cmo": "Mnong Tengah",
"cmr": "Chin Mro",
"cms": "Messapic",
"cmt": "Camtho",
"cna": "Changthang",
"cnb": "Chin Chinbon",
"cnc": "Cốông",
"cng": "Qiang Utara",
"cnh": "Lai",
"cni": "Asháninka",
"cnk": "Chin Khumi",
"cnl": "Lalana Chinantec",
"cno": "Con",
"cnp": "Pinghua Utara",
"cns": "Asmat Tengah",
"cnt": "Tepetotutla Chinantec",
"cnu": "Chenoua",
"cnw": "Chin Ngawn",
"cnx": "Cornwall Pertengahan",
"co": "Corsican",
"coa": "Melayu Cocos",
"cob": "Chicomuceltec",
"coc": "Cocopa",
"cod": "Cocama",
"coe": "Koreguaje",
"cof": "Tsafiki",
"cog": "Chong",
"coh": "Chichonyi-Chidzihana-Chikauma",
"coj": "Cochimi",
"cok": "Santa Teresa Cora",
"col": "Columbia-Wenatchi",
"com": "Comanche",
"con": "Cofán",
"coo": "Comox",
"cop": "Qibti",
"coq": "Coquille",
"cot": "Caquinte",
"cou": "Wamey",
"cov": "Cao Miao",
"cow": "Cowlitz",
"cox": "Nanti",
"coy": "Coyaima",
"coz": "Chochotec",
"cpa": "Palantla Chinantec",
"cpb": "Ucayali-Yurúa Ashéninka",
"cpc": "Ajyíninka Apurucayali",
"cpg": "Yunani Cappadocia",
"cpi": "Inggeris Pijin Cina",
"cpn": "Cherepon",
"cpo": "Kpee",
"cps": "Capiznon",
"cpu": "Pichis Ashéninka",
"cpx": "Min Puxian",
"cpy": "Ashéninka Ucayali Selatan",
"cqd": "Chuanqiandian Cluster Miao",
"cr": "Cree",
"cra": "Chara",
"crb": "Kalinago",
"crc": "Lonwolwol",
"crd": "Coeur d'Alene",
"crf": "Caramanta",
"crg": "Michif",
"crh": "Tatar Crimea",
"cri": "Sãotomense",
"crj": "Cree Timur Selatan",
"crk": "Plains Cree",
"crl": "Cree Timur Utara",
"crm": "Cree Moose",
"crn": "Cora",
"cro": "Crow",
"crp-bip": "Pidgin Basque-Iceland",
"crp-cpr": "Pidgin Rusia-China",
"crp-gep": "Pidgin Greenland Barat",
"crp-kia": "Pidgin Jerman Kiautschou",
"crp-mar": "Bahasa Roh Maroon",
"crp-mpp": "Pidgin Portugis Macau",
"crp-rsn": "Russenorsk",
"crp-slb": "Solombala English",
"crp-spp": "Pidgin Ladang Samoa",
"crp-tpr": "Pidgin Rusia Taimyr",
"crq": "Iyo'wujwa Chorote",
"crr": "Algonquin Carolina",
"crs": "Kreol Seychelles",
"crt": "Iyojwa'ja Chorote",
"crv": "Chaura",
"crw": "Chrau",
"crx": "Carrier",
"cry": "Cori",
"crz": "Cruzeño",
"cs": "Czech",
"csa": "Chiltepec Chinantec",
"csb": "Kashubian",
"csc": "Catalan Sign Language",
"csd": "Chiangmai Sign Language",
"cse": "Czech Sign Language",
"csf": "Cuban Sign Language",
"csg": "Chilean Sign Language",
"csh": "Chin Asho",
"csi": "Miwok Pesisir",
"csj": "Chin Songlai",
"csk": "Jola-Kasa",
"csl": "Chinese Sign Language",
"csm": "Miwok Sierra Tengah",
"csn": "Colombian Sign Language",
"cso": "Sochiapam Chinantec",
"csp": "Pinghua Selatan",
"csq": "Bahasa Isyarat Croatia",
"csr": "Costa Rican Sign Language",
"css": "Ohlone Selatan",
"cst": "Ohlone Utara",
"csu-bba-pro": "Proto-Bongo-Bagirmi",
"csu-maa-pro": "Proto-Mangbetu",
"csu-pro": "Proto-Sudan Tengah",
"csu-sar-pro": "Proto-Sara",
"csv": "Chin Sumtu",
"csw": "Swampy Cree",
"csy": "Chin Siyin",
"csz": "Coos",
"cta": "Tataltepec Chatino",
"ctc": "Chetco-Tolowa",
"ctd": "Chin Tedim",
"cte": "Tepinapa Chinantec",
"ctg": "Chittagong",
"cth": "Chin Thaiphum",
"ctl": "Tlacoatzintepec Chinantec",
"ctm": "Chitimacha",
"ctn": "Chhintange",
"cto": "Emberá-Catío",
"ctp": "Chatino Tanah Tinggi Barat",
"cts": "Bicolano Catanduanes Utara",
"ctt": "Wayanad Chetti",
"ctu": "Chol",
"ctz": "Zacatepec Chatino",
"cu": "Old Church Slavonic",
"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": "Cun",
"cur": "Chhulung",
"cus-ash": "Ashraaf",
"cus-hec-pro": "Proto-Cushitic Timur Tanah Tinggi",
"cus-pro": "Proto-Cushitic",
"cus-som-pro": "Proto-Somaloid",
"cus-sou-pro": "Proto-Cushitic Selatan",
"cut": "Teutila Cuicatec",
"cuu": "Tai Ya",
"cuv": "Cuvok",
"cuw": "Chukwa",
"cux": "Tepeuxila Cuicatec",
"cuy": "Cuitlatec",
"cv": "Chuvash",
"cvg": "Chug",
"cvn": "Valle Nacional Chinantec",
"cwa": "Kabwa",
"cwb": "Maindo",
"cwd": "Woods Cree",
"cwe": "Kwere",
"cwg": "Chewong",
"cwt": "Kuwaataay",
"cy": "Welsh",
"cya": "Nopala Chatino",
"cyb": "Cayubaba",
"cyo": "Cuyunon",
"czh": "Huizhou",
"czk": "Knaanic",
"czn": "Zenzontepec Chatino",
"czo": "Min Tengah",
"czt": "Chin Zotung",
"da": "Danish",
"daa": "Dangaléat",
"dac": "Dambi",
"dad": "Marik",
"dae": "Duupa",
"dag": "Dagbani",
"dah": "Gwahatike",
"dai": "Day",
"daj": "Dar Fur Daju",
"dak": "Dakota",
"dal": "Dahalo",
"dam": "Damakawa",
"dao": "Chin Daai",
"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": "Idahan",
"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": "Negerhollands",
"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": "German",
"dec": "Dagik",
"ded": "Dedua",
"dee": "Dewoin",
"def": "Dezfuli",
"deg": "Degema",
"deh": "Dehwari",
"dei": "Demisa",
"dek": "Dek",
"dem": "Dem",
"dep": "Pidgin Delaware",
"der": "Deori",
"des": "Desano",
"dev": "Domung",
"dez": "Dengese",
"dga": "Dagaare Selatan",
"dgb": "Bunoge",
"dgc": "Agta Casiguran Dumagat",
"dgd": "Dagaari Dioula",
"dge": "Degenan",
"dgg": "Doga",
"dgh": "Dghwede",
"dgi": "Dagara Utara",
"dgk": "Dagba",
"dgn": "Dagoman",
"dgo": "Hindi Dogri",
"dgr": "Dogrib",
"dgs": "Dogoso",
"dgt": "Ntra'ngith",
"dgw": "Daungwurrung",
"dgx": "Doghoro",
"dgz": "Daga",
"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": "Dinka Tengah Selatan",
"dic": "Lakota Dida",
"did": "Didinga",
"dif": "Dieri",
"dig": "Digo",
"dii": "Dimbong",
"dij": "Dai",
"dik": "Dinka Barat Daya",
"dil": "Dilling",
"dim": "Dime",
"din": "Dinka",
"dio": "Dibo",
"dip": "Dinka Timur Laut",
"dir": "Dirim",
"dis": "Dimasa",
"diu": "Gciriku",
"diw": "Dinka Barat Laut",
"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": "Dinka Tenggara",
"dkx": "Mazagway",
"dlg": "Dolgan",
"dlk": "Dahalik",
"dlm": "Dalmatian",
"dln": "Darlong",
"dma": "Duma",
"dmb": "Mombo Dogon",
"dmc": "Gavak",
"dmd": "Madhi Madhi",
"dme": "Dugwor",
"dmf": "Medefaidrin",
"dmg": "Sungai",
"dmk": "Domaaki",
"dml": "Dameli",
"dmm": "Dama (Nigeria)",
"dmn-dam": "Dama (Sierra Leone)",
"dmn-mdw-pro": "Proto-Mande Barat",
"dmn-pro": "Proto-Mande",
"dmo": "Kemezung",
"dmr": "Damar Timur",
"dms": "Dampelas",
"dmu": "Dubu",
"dmv": "Dumpas",
"dmw": "Mudburra",
"dmx": "Dema",
"dmy": "Demta",
"dna": "Upper Grand Valley Dani",
"dnd": "Daonda",
"dne": "Ndendeule",
"dng": "Dungan",
"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": "Dani Barat",
"dny": "Dení",
"doa": "Dom",
"dob": "Dobu",
"doc": "Kam Utara",
"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": "Proto-Dravidia Tengah",
"dra-mkn": "Kannada Pertengahan",
"dra-nor-pro": "Proto-Dravidia Utara",
"dra-okn": "Kannada Kuno",
"dra-ote": "Telugu Kuno",
"dra-pro": "Proto-Dravidia",
"dra-sdo-pro": "Proto-Dravidia Selatan I",
"dra-sdt-pro": "Proto-Dravidia Selatan II",
"dra-sou-pro": "Proto-Dravidia Selatan",
"drb": "Dair",
"drc": "Minderico",
"drd": "Darmiya",
"drg": "Rungus",
"dri": "Lela",
"drl": "Baagandji",
"drn": "Damar Barat",
"dro": "Melanau Daro-Matu",
"drq": "Dura",
"drs": "Gedeo",
"dru": "Rukai",
"dru-pro": "Proto-Rukai",
"dry": "Darai",
"dsb": "Lower Sorbian",
"dse": "Dutch Sign Language",
"dsh": "Daasanach",
"dsi": "Disa",
"dsl": "Danish Sign Language",
"dsn": "Dusner",
"dso": "Desiya",
"dsq": "Tadaksahak",
"dta": "Daur",
"dtb": "Kadazan Labuk-Kinabatangan",
"dtd": "Ditidaht",
"dth": "Adithinngithigh",
"dti": "Ana Tinga Dogon",
"dtk": "Tene Kan Dogon",
"dtm": "Tomo Kan Dogon",
"dto": "Tommo So",
"dtp": "Kadazandusun",
"dtr": "Lotud",
"dts": "Toro So Dogon",
"dtt": "Toro Tegu Dogon",
"dtu": "Tebul Ure Dogon",
"dty": "Doteli",
"dua": "Duala",
"dub": "Dubli",
"duc": "Duna",
"due": "Agta Umiray Dumaget",
"duf": "Dumbea",
"dug": "Chiduruma",
"duh": "Dungra Bhil",
"dui": "Dumun",
"duk": "Uyajitaya",
"dul": "Agta Pulau Alabat",
"dum": "Belanda Pertengahan",
"dun": "Dusun Deyah",
"duo": "Agta Dupaningan",
"dup": "Duano",
"duq": "Dusun Malang",
"dur": "Dii",
"dus": "Dumi",
"duu": "Drung",
"duv": "Duvle",
"duw": "Dusun Witu",
"dux": "Duun",
"duy": "Agta Dicamay",
"duz": "Duli",
"dv": "Dhivehi",
"dva": "Duau",
"dwa": "Diri",
"dwr": "Dawro",
"dwu": "Dhuwal",
"dww": "Dawawa",
"dwy": "Dhuwaya",
"dwz": "Dewas Rai",
"dya": "Dyan",
"dyb": "Dyaberdyaber",
"dyd": "Dyugun",
"dyg": "Agta Villa Viciosa",
"dyi": "Djimini",
"dym": "Yanda Dogon",
"dyn": "Dyangadi",
"dyo": "Jola-Fonyi",
"dyu": "Dyula",
"dyy": "Dyaabugay",
"dz": "Dzongkha",
"dza": "Tunzu",
"dzg": "Dazaga",
"dzl": "Dzala",
"dzn": "Dzando",
"ebg": "Ebughu",
"ebk": "Bontoc Timur",
"ebr": "Ebrié",
"ebu": "Embu",
"ecr": "Eteocretan",
"ecs": "Bahasa Isyarat Ecuador",
"ecy": "Eteocypriot",
"ee": "Ewe",
"eee": "E",
"efa": "Efai",
"efe": "Efe",
"efi": "Efik",
"ega": "Ega",
"egl": "Emilian",
"ego": "Eggon",
"egx-dem": "Mesir Demotik",
"egy": "Mesir Purba",
"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": "Kayah Timur",
"el": "Greek",
"ele": "Elepi",
"elh": "El Hugeirat",
"eli": "Nding",
"elk": "Elkei",
"elm": "Eleme",
"elo": "El Molo",
"elu": "Elu",
"elx": "Elam",
"ema": "Emai",
"emb": "Embaloh",
"eme": "Emerillon",
"emg": "Meohang Timur",
"emi": "Mussau-Emira",
"emk": "Maninkakan Timur",
"emm": "Mamulique",
"emn": "Eman",
"emp": "Emberá Utara",
"ems": "Alutiiq",
"emu": "Muria Timur",
"emw": "Emplawas",
"emx": "Erromintxela",
"emy": "Maya Epigrafi",
"en": "English",
"ena": "Apali",
"enb": "Markweeta",
"enc": "En",
"end": "Ende",
"enf": "Enets Hutan",
"enh": "Enets Tundra",
"enl": "Enlhet",
"enm": "Inggeris Pertengahan",
"enn": "Engenni",
"eno": "Enggano",
"enq": "Enga",
"enr": "Emem",
"enu": "Enu",
"env": "Enwan",
"enw": "Enwang",
"enx": "Enxet",
"eo": "Esperanto",
"eot": "Eotile",
"epi": "Epie",
"era": "Eravallan",
"erg": "Sie",
"erh": "Eruwa",
"eri": "Ogea",
"erk": "Efate Selatan",
"ero-gsz": "Geshiza",
"ero-nya": "Nyagrong Minyag",
"ero-tau": "Stau",
"err": "Erre",
"ers": "Ersu",
"ert": "Eritai",
"erw": "Erokwanas",
"es": "Spanish",
"ese": "Ese Ejja",
"esh": "Eshtehardi",
"esl": "Bahasa Isyarat Mesir",
"esm": "Esuma",
"esn": "Bahasa Isyarat El Salvador",
"eso": "Bahasa Isyarat Estonia",
"esq": "Esselen",
"ess": "Yupik Siberia Tengah",
"esu": "Yup'ik",
"esx-esk-pro": "Proto-Eskimo",
"esx-ink": "Inuktun",
"esx-inq": "Inuinnaqtun",
"esx-inu-pro": "Proto-Inuit",
"esx-pro": "Proto-Eskimo-Aleut",
"esx-tut": "Tunumiisut",
"esy": "Eskayan",
"et": "Estonian",
"etb": "Etebi",
"etc": "Etchemin",
"eth": "Bahasa Isyarat Habsyah",
"etn": "Eton (Vanuatu)",
"eto": "Eton (Cameroon)",
"etr": "Edolo",
"ets": "Yekhee",
"ett": "Etruria",
"etu": "Ejagham",
"etx": "Eten",
"etz": "Semimi",
"eu": "Basque",
"euq-pro": "Proto-Basque",
"eve": "Even",
"evh": "Uvbie",
"evn": "Evenki",
"ewo": "Ewondo",
"ext": "Extremaduran",
"eya": "Eyak",
"eyo": "Keiyo",
"eza": "Ezaa",
"eze": "Uzekwe",
"fa": "Persian",
"faa": "Fasu",
"fab": "Annobon",
"fad": "Wagi",
"faf": "Fagani",
"fag": "Finongan",
"fah": "Fali Baissa",
"fai": "Faiwol",
"faj": "Kursav",
"fak": "Fang (Beboid)",
"fal": "Fali Selatan",
"fam": "Fam",
"fan": "Fang (Bantu)",
"fap": "Palor",
"far": "Fataleka",
"fau": "Fayu",
"fax": "Fala",
"fay": "Fars Barat Daya",
"faz": "Fars Barat Laut",
"fbl": "Bikol Miraya Barat",
"fcs": "Bahasa Isyarat Quebec",
"fer": "Feroge",
"ff": "Fula",
"ffi": "Foia Foia",
"fgr": "Fongoro",
"fi": "Finnish",
"fia": "Nobiin",
"fie": "Fyer",
"fif": "Faifi",
"fip": "Fipa",
"fir": "Firan",
"fit": "Meänkieli",
"fiw": "Fiwaga",
"fj": "Fijian",
"fkk": "Kirya-Konzel",
"fkv": "Kven",
"fla": "Salish Montana",
"flh": "Foau",
"fli": "Fali",
"fll": "Fali Utara",
"fln": "Pulau Flinders",
"flr": "Fuliiru",
"fly": "Tsotsitaal",
"fmp": "Fe'fe'",
"fmu": "Muria Barat Jauh",
"fng": "Fanagalo",
"fni": "Fania",
"fo": "Faroese",
"fod": "Foodo",
"foi": "Foi",
"fom": "Foma",
"fon": "Fon",
"for": "Fore",
"fos": "Siraya",
"fpe": "Pichinglis",
"fqs": "Fas",
"fr": "French",
"frd": "Fordata",
"frm": "Perancis Pertengahan",
"fro": "Perancis Kuno",
"frp": "Franco-Provençal",
"frq": "Forak",
"frr": "Frisia Utara",
"frt": "Fortsenal",
"fse": "Bahasa Isyarat Finland",
"fsl": "Bahasa Isyarat Perancis",
"fss": "Bahasa Isyarat Finland-Sweden",
"fud": "Futuna Timur",
"fuj": "Ko",
"fum": "Fum",
"fun": "Fulniô",
"fur": "Friulian",
"fut": "Futuna-Aniwa",
"fuu": "Furu",
"fuy": "Fuyug",
"fvr": "Fur",
"fwa": "Fwâi",
"fwe": "Fwe",
"fy": "West Frisian",
"ga": "Irish",
"gba-pro": "Proto-Gbaya",
"gd": "Scottish Gaelic",
"gem-pro": "Proto-Germanik",
"gl": "Galician",
"gme-bur": "Burgundia",
"gme-cgo": "Goth Crimea",
"gmq-gut": "Gutnish",
"gmq-jmk": "Jamtish",
"gmq-mno": "Norway Pertengahan",
"gmq-oda": "Denmark Kuno",
"gmq-ogt": "Gutnish Kuno",
"gmq-osw": "Sweden Kuno",
"gmq-pro": "Proto-Norse",
"gmq-scy": "Scanian",
"gmw-bgh": "Bergish",
"gmw-cfr": "Franconia Tengah",
"gmw-ecg": "Jerman Tengah Timur",
"gmw-fin": "Fingallian",
"gmw-gts": "Gottscheerish",
"gmw-jdt": "Belanda Jersey",
"gmw-msc": "Scots Pertengahan",
"gmw-pro": "Proto-Germanik Barat",
"gmw-rfr": "Franconia Rhine",
"gmw-stm": "Schwaben Szatmár",
"gmw-tsx": "Saxon Transylvania",
"gmw-vog": "Jerman Volga",
"gmw-zps": "Jerman Zipser",
"gn-cls": "Guarani Klasik",
"grk-cal": "Greek Calabria",
"grk-ita": "Greek Italiot",
"grk-mar": "Greek Mariupol",
"grk-pro": "Proto-Hellenik",
"gu": "Gujarati",
"gv": "Manx",
"gvf": "Golin",
"gvj": "Guajá",
"gvl": "Gulay",
"gvm": "Gurmana",
"gvn": "Kuku-Yalanji",
"gvo": "Gavião do Jiparaná",
"gvp": "Gavião Pará",
"gvr": "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è Selatan",
"gya": "Gbaya Barat Laut",
"gyb": "Garus",
"gyd": "Kayardild",
"gye": "Gyem",
"gyf": "Gungabula",
"gyg": "Gbayi",
"gyi": "Gyele",
"gyl": "Gayil",
"gym": "Ngäbere",
"gyn": "Kreol Inggeris Guyana",
"gyo": "Gyalsumdo",
"gyr": "Guarayu",
"gyy": "Gunya",
"gza": "Ganza",
"gzn": "Gane",
"ha": "Hausa",
"haa": "Hän",
"hab": "Bahasa Isyarat Hanoi",
"hac": "Gurani",
"had": "Hatam",
"haf": "Bahasa Isyarat Haiphong",
"hag": "Hanga",
"hah": "Hahon",
"hai": "Haida",
"haj": "Hajong",
"hak": "Hakka",
"hal": "Halang",
"ham": "Hewa",
"hao": "Hakö",
"hap": "Hupla",
"har": "Harari",
"has": "Haisla",
"hav": "Havu",
"haw": "Hawaii",
"hax": "Haida Selatan",
"hay": "Haya",
"hba": "Hamba",
"hbb": "Huba",
"hbn": "Heiban",
"hbu": "Habu",
"hca": "Hindi Kreol Andaman",
"hch": "Huichol",
"hdn": "Haida Utara",
"hds": "Bahasa Isyarat Honduras",
"hdy": "Hadiyya",
"he": "Hebrew",
"hea": "Miao Qiandong Utara",
"hed": "Herdé",
"heg": "Helong",
"heh": "Hehe",
"hei": "Heiltsuk",
"hem": "Hemba",
"hgm": "Haiǁom",
"hgw": "Haigwai",
"hhi": "Hoia Hoia",
"hhr": "Kerak",
"hhy": "Hoyahoya",
"hi": "Hindi",
"hia": "Lamang",
"hib": "Hibito",
"hid": "Hidatsa",
"hif": "Hindi Fiji",
"hig": "Kamwe",
"hih": "Pamosu",
"hii": "Hinduri",
"hij": "Hijuk",
"hik": "Seit-Kaitetu",
"hil": "Hiligaynon",
"hio": "Tshwa",
"hir": "Himarimã",
"hit": "Het",
"hiw": "Hiw",
"hix": "Hixkaryana",
"hji": "Haji",
"hka": "Kahe",
"hke": "Hunde",
"hkh": "Pogali",
"hkk": "Hunjara-Kaina Ke",
"hkn": "Mel-Khaonh",
"hks": "Bahasa Isyarat Hong Kong",
"hla": "Halia",
"hlb": "Halbi",
"hld": "Halang Doan",
"hle": "Hlersu",
"hlt": "Nga La",
"hma": "Hmong Mashan Selatan",
"hmb": "Humburi Senni",
"hmc": "Hmong Huishui Tengah",
"hmd": "A-Hmao",
"hme": "Hmong Huishui Timur",
"hmf": "Hmong Don",
"hmg": "Hmong Guiyang Barat Daya",
"hmh": "Hmong Huishui Barat Daya",
"hmi": "Hmong Huishui Utara",
"hmj": "Ge",
"hmk": "Maek",
"hml": "Hmong Luopohe",
"hmm": "Hmong Mashan Tengah",
"hmn-pro": "Proto-Hmongik",
"hmp": "Hmong Mashan Utara",
"hmq": "Miao Qiandong Timur",
"hmr": "Hmar",
"hms": "Miao Qiandong Selatan",
"hmt": "Hamtai",
"hmu": "Hamap",
"hmv": "Hmong Dô",
"hmw": "Hmong Mashan Barat",
"hmx-mie-pro": "Proto-Mienik",
"hmx-pro": "Proto-Hmong-Mien",
"hmy": "Hmong Guiyang Selatan",
"hmz": "Hmong Shua",
"hna": "Mina",
"hnd": "Hindko Selatan",
"hne": "Chhattisgarhi",
"hnh": "ǁAni",
"hni": "Hani",
"hnj": "Hmong Hijau",
"hnn": "Hanunoo",
"hno": "Hindko Utara",
"hns": "Hindustan Caribbean",
"hnu": "Hung",
"ho": "Hiri Motu",
"hoa": "Hoava",
"hob": "Mari Austronesia",
"hoc": "Ho",
"hod": "Holma",
"hoe": "Horom",
"hoh": "Hobyót",
"hoi": "Holikachuk",
"hoj": "Hadothi",
"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": "Hunsrik",
"hrz": "Harzani",
"hsb": "Sorbia Atas",
"hsh": "Bahasa Isyarat Hungary",
"hsl": "Bahasa Isyarat Hausa",
"hsn": "Xiang",
"hss": "Harsusi",
"ht": "Haitian Creole",
"hti": "Hoti",
"hto": "Minica Huitoto",
"hts": "Hadza",
"htu": "Hitu",
"hu": "Hungarian",
"hub": "Huambisa",
"huc": "ǂHoan",
"hud": "Huaulu",
"huf": "Humene",
"hug": "Huachipaeri",
"huh": "Huilliche",
"hui": "Huli",
"huj": "Hmong Guiyang Utara",
"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": "Kreol Hawaii",
"hwo": "Hwana",
"hy": "Armenian",
"hya": "Hya",
"hyx-pro": "Proto-Armenia",
"hz": "Herero",
"ia": "Interlingua",
"iai": "Iaai",
"ian": "Iatmul",
"iar": "Purari",
"iba": "Iban",
"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": "Bahasa Isyarat Iceland",
"icr": "Inggeris Kreol Islander",
"id": "Indonesian",
"ida": "Idakho-Isukha-Tiriki",
"idb": "Indo-Portugis",
"idc": "Idon",
"idd": "Ede Idaca",
"ide": "Idere",
"idi": "Idi",
"idr": "Indri",
"ids": "Idesa",
"idt": "Idaté",
"idu": "Idoma",
"ie": "Interlingue",
"ifa": "Amganad Ifugao",
"ifb": "Batad Ifugao",
"ife": "Ifè",
"iff": "Ifo",
"ifk": "Tuwali Ifugao",
"ifm": "Teke-Fuumu",
"ifu": "Mayoyao Ifugao",
"ify": "Keley-I Kallahan",
"ig": "Igbo",
"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": "Nuosu",
"iir-nur-pro": "Proto-Nuristani",
"iir-pro": "Proto-Indo-Iran",
"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": "Bahasa Isyarat Inuit",
"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": "Iranun",
"ilo": "Ilocano",
"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": "Prakrit Ashoka",
"inc-dng-pro": "Proto-Dangari",
"inc-kam": "Prakrit Kamarupi",
"inc-kho": "Kholosi",
"inc-khr": "Khortha",
"inc-krd-pro": "Proto-Kamta",
"inc-mas": "Assam Pertengahan",
"inc-mbn": "Bengal Pertengahan",
"inc-mgu": "Gujarati Pertengahan",
"inc-mor": "Odia Pertengahan",
"inc-oas": "Assam Awal",
"inc-oaw": "Awadhi Kuno",
"inc-obn": "Bengal Kuno",
"inc-ogu": "Gujarati Kuno",
"inc-ohi": "Hindi Kuno",
"inc-oor": "Odia Kuno",
"inc-opa": "Punjabi Kuno",
"inc-pro": "Proto-Indo-Arya",
"inc-sar": "Sarazi",
"ine-ana-pro": "Proto-Anatolia",
"ine-bsl-pro": "Proto-Balto-Slav",
"ine-kal": "Kalašma",
"ine-pae": "Paeonia",
"ine-pro": "Proto-Indo-Eropah",
"ine-toc-pro": "Proto-Tocharia",
"ing": "Deg Xinag",
"inh": "Ingush",
"inj": "Jungle Inga",
"inl": "Bahasa Isyarat Indonesia",
"inm": "Minaean",
"inn": "Isinai",
"ino": "Inoke-Yate",
"inp": "Iñapari",
"ins": "Bahasa Isyarat India",
"int": "Intha",
"inz": "Ineseño",
"io": "Ido",
"ior": "Inor",
"iou": "Tuma-Irumu",
"iow": "Chiwere",
"ipi": "Ipili",
"ipo": "Ipiko",
"iqu": "Iquito",
"iqw": "Ikwo",
"ira-kms-pro": "Proto-Komisenia",
"ira-mny-pro": "Proto-Munji-Yidgha",
"ira-mpr-pro": "Proto-Medo-Parthia",
"ira-pat-pro": "Proto-Pathan",
"ira-pro": "Proto-Iran",
"ira-sgc-pro": "Proto-Sogdia",
"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-Iroquois Utara",
"iro-pro": "Proto-Iroquois",
"irr": "Ir",
"iru": "Irula",
"irx": "Kamberau",
"iry": "Iraya",
"is": "Icelandic",
"isa": "Isabi",
"isc": "Isconahua",
"isd": "Isnag",
"ise": "Bahasa Isyarat Itali",
"isg": "Bahasa Isyarat Ireland",
"ish": "Esan",
"isi": "Nkem-Nkum",
"isk": "Ishkashimi",
"ism": "Masimasi",
"isn": "Isanzu",
"iso": "Isoko",
"isr": "Bahasa Isyarat Israel",
"ist": "Istriot",
"isu": "Isu",
"isv": "Interslavic",
"it": "Italian",
"itb": "Binongan Itneg",
"itc-pro": "Proto-Italik",
"itc-psa": "Pra-Samnit",
"itd": "Tidung Selatan",
"ite": "Itene",
"iti": "Inlaod Itneg",
"itk": "Judeo-Itali",
"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": "Itzá",
"iu": "Inuktitut",
"ium": "Iu Mien",
"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": "Ingria",
"izi": "Izi-Ezaa-Ikwo-Mgbo",
"izr": "Izere",
"izz": "Izi",
"ja": "Japanese",
"jaa": "Jamamadí",
"jab": "Hyam",
"jac": "Jakaltek",
"jad": "Jahanka",
"jae": "Jabem",
"jaf": "Jara",
"jah": "Jah Hut",
"jaj": "Zazao",
"jak": "Jakun",
"jal": "Yalahatan",
"jam": "Kreol Jamaica",
"jan": "Janday",
"jao": "Yanyuwa",
"jaq": "Yaqay",
"jas": "New Caledonian Javanese",
"jat": "Jakati",
"jau": "Yaur",
"jax": "Melayu Jambi",
"jay": "Yan-nhangu",
"jaz": "Jawe",
"jbj": "Arandai",
"jbk": "Barikewa",
"jbn": "Nefusa",
"jbo": "Lojban",
"jbr": "Jofotek-Bromnya",
"jbt": "Jabutí",
"jbu": "Jukun Takum",
"jbw": "Yawijibaya",
"jcs": "Bahasa Isyarat Negara Jamaica",
"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": "Bahasa Isyarat Jhankot",
"jia": "Jina",
"jib": "Jibu",
"jic": "Tol",
"jid": "Bu",
"jie": "Jilbe",
"jig": "Jingulu",
"jih": "Shangzhai",
"jii": "Jiiddu",
"jil": "Jilim",
"jim": "Jimjimen",
"jio": "Jiamao",
"jiq": "Khroskyabs",
"jit": "Jita",
"jiu": "Youle Jino",
"jiv": "Shuar",
"jiy": "Buyuan Jino",
"jje": "Jeju",
"jjr": "Zhár",
"jka": "Kaera",
"jko": "Kubo",
"jkr": "Koro (India)",
"jku": "Labir",
"jle": "Ngile",
"jls": "Bahasa Isyarat Jamaica",
"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": "Bahasa Isyarat Jordan",
"jow": "Jowulu",
"jpr": "Judeo-Persian",
"jpx-hcj": "Hachijō",
"jpx-pro": "Proto-Jeponik",
"jpx-ryu-pro": "Proto-Ryukyu",
"jqr": "Jaqaru",
"jra": "Jarai",
"jrr": "Jiru",
"jru": "Japrería",
"jsl": "Bahasa Isyarat Jepun",
"jua": "Júma",
"jub": "Wannu",
"juc": "Jurchen",
"jud": "Worodougou",
"juh": "Hone",
"jui": "Ngadjuri",
"juk": "Wapan",
"jul": "Jirel",
"jum": "Jumjum",
"jun": "Juang",
"juo": "Jiba",
"jup": "Hupdë",
"jur": "Jurúna",
"jus": "Bahasa Isyarat Jumla",
"jut": "Jutish",
"juu": "Ju",
"juw": "Wãpha",
"juy": "Juray",
"jv": "Javanese",
"jvd": "Javindo",
"jvn": "Jawa Caribbean",
"jwi": "Jwira-Pepesa",
"jyy": "Jaya",
"ka": "Georgian",
"kaa": "Karakalpak",
"kab": "Kabyle",
"kac": "Jingpho",
"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": "Proto-Karen",
"kaw": "Jawa Kuno",
"kax": "Kao",
"kay": "Kamayurá",
"kba": "Kalarko",
"kbb": "Kaxuyana",
"kbc": "Kadiwéu",
"kbd": "Kabardia",
"kbe": "Kanju",
"kbh": "Camsá",
"kbi": "Kaptiau",
"kbj": "Kari",
"kbk": "Grass Koiari",
"kbm": "Iwal",
"kbn": "Kare (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": "Khanty Timur",
"kca-nor": "Khanty Utara",
"kca-pro": "Proto-Khanty",
"kca-sou": "Khanty Selatan",
"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": "Numee",
"kdl": "Tsikimba",
"kdm": "Kagoma",
"kdn": "Kunda",
"kdp": "Kaningdon-Nindem",
"kdq": "Koch",
"kdr": "Karaim",
"kdt": "Kuy",
"kdu": "Kadaru",
"kdv": "Kado",
"kdw": "Koneraw",
"kdx": "Kam",
"kdy": "Keder",
"kdz": "Kwaja",
"kea": "Kabuverdianu",
"keb": "Kélé",
"kec": "Keiga",
"ked": "Kerewe",
"kee": "Keres Timur",
"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 (Afrika Barat)",
"kfp": "Korwa",
"kfq": "Korku",
"kfr": "Kachchi",
"kfs": "Bilaspuri",
"kft": "Kanjari",
"kfu": "Katkari",
"kfv": "Kurmukar",
"kfw": "Kharam Naga",
"kfx": "Kullu Pahari",
"kfy": "Kumaoni",
"kfz": "Koromfé",
"kg": "Kongo",
"kga": "Koyaga",
"kgb": "Kawe",
"kgd": "Kataang",
"kge": "Komering",
"kgf": "Kube",
"kgg": "Kusunda",
"kgi": "Selangor Sign Language",
"kgj": "Gamale Kham",
"kgk": "Kaiwá",
"kgl": "Kunggari",
"kgm": "Karipúna",
"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": "Khasi",
"khb": "Lü",
"khc": "Tukang Besi Utara",
"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": "Khotan",
"khp": "Kapauri",
"khq": "Koyra Chiini",
"khr": "Kharia",
"khs": "Kasua",
"kht": "Khamti",
"khu": "Nkhumbi",
"khv": "Khvarshi",
"khw": "Khowar",
"khx": "Kanu",
"khy": "Ekele",
"khz": "Keapara",
"ki": "Kikuyu",
"kia": "Kim",
"kib": "Koalib",
"kic": "Kickapoo",
"kid": "Koshin",
"kie": "Kibet",
"kif": "Kham Parbate Timur",
"kig": "Kimaama",
"kih": "Kilmeri",
"kii": "Kitsai",
"kij": "Kilivila",
"kil": "Kariya",
"kim": "Tofa",
"kio": "Kiowa",
"kip": "Sheshi Kham",
"kiq": "Kosadle",
"kis": "Kis",
"kit": "Agob",
"kiv": "Kimbu",
"kiw": "Kiwai Timur Laut",
"kix": "Naga Khiamniungan",
"kiy": "Kirikiri",
"kiz": "Kisi",
"kj": "Kwanyama",
"kja": "Mlap",
"kjb": "Q'anjob'al",
"kjc": "Konjo Pesisir",
"kjd": "Kiwai Selatan",
"kje": "Kisar",
"kjg": "Khmu",
"kjh": "Khakas",
"kji": "Zabana",
"kjj": "Khinalug",
"kjk": "Highland Konjo",
"kjl": "Kham",
"kjm": "Kháng",
"kjn": "Kunjen",
"kjo": "Harijan Kinnauri",
"kjp": "Pwo Timur",
"kjq": "Keres Barat",
"kjr": "Kurudu",
"kjs": "Kewa Timur",
"kjt": "Phrae Pwo",
"kju": "Kashaya",
"kjx": "Ramopa",
"kjy": "Erave",
"kjz": "Bumthangkha",
"kk": "Kazakh",
"kka": "Kakanda",
"kkb": "Kwerisa",
"kkc": "Odoodee",
"kkd": "Kinuku",
"kke": "Kakabe",
"kkf": "Monpa Kalaktang",
"kkg": "Kalinga Lembah Mabaka",
"kkh": "Khün",
"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": "Greenlandic",
"kla": "Klamath-Modoc",
"klb": "Kiliwa",
"klc": "Kolbila",
"kld": "Gamilaraay",
"kle": "Kulung",
"klf": "Kendeje",
"klg": "Kalagan Tagakaulu",
"klh": "Weliki",
"kli": "Kalumpang",
"klj": "Khalaj",
"klk": "Kono (Nigeria)",
"kll": "Kalagan Kagan",
"klm": "Kolom",
"kln": "Kalenjin",
"klo": "Kapya",
"klp": "Kamasa",
"klq": "Rumu",
"klr": "Khaling",
"kls": "Kalasha",
"klt": "Nukna",
"klu": "Klao",
"klv": "Maskelynes",
"klw": "Lindu",
"klx": "Koluwawa",
"kly": "Kalao",
"klz": "Kabola",
"km": "Khmer",
"kma": "Konni",
"kmb": "Kimbundu",
"kmc": "Kam Selatan",
"kmd": "Kalinga Madukayang",
"kme": "Bakole",
"kmf": "Kare (New Guinea)",
"kmg": "Kâte",
"kmh": "Kalam",
"kmi": "Kami",
"kmj": "Kumarbhag Paharia",
"kmk": "Kalinga Limos",
"kml": "Kalinga Tanudan",
"kmm": "Kom (India)",
"kmn": "Awtuw",
"kmo": "Kwoma",
"kmp": "Gimme",
"kmq": "Kwama",
"kmr": "Kurdi Utara",
"kms": "Kamasau",
"kmt": "Kemtuik",
"kmu": "Kanite",
"kmv": "Perancis Kreol Karipúna",
"kmw": "Kumu",
"kmx": "Waboda",
"kmy": "Koma",
"kmz": "Turki Khorasan",
"kn": "Kannada",
"kna": "Kanakuru",
"knb": "Kalinga Lubuagan",
"knd": "Konda",
"kne": "Kankanaey",
"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": "Salako",
"kny": "Kanyok",
"knz": "Kalamsé",
"ko": "Korean",
"ko-ear": "Korea Moden Awal",
"koa": "Konomala",
"koc": "Kpati",
"kod": "Kodi",
"koe": "Kacipo-Balesi",
"kof": "Kubi",
"kog": "Cogui",
"koh": "Koyo",
"koi": "Komi-Permyak",
"kok": "Konkani",
"kol": "Kol (New Guinea)",
"koo": "Konzo",
"kop": "Waube",
"koq": "Kota (Gabon)",
"kos": "Kosrae",
"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": "Koho",
"kpn": "Kepkiriwát",
"kpo": "Ikposo",
"kpp": "Karen Paku",
"kpq": "Korupun-Sela",
"kpr": "Korafe-Yegha",
"kps": "Tehit",
"kpt": "Karata",
"kpu": "Kafoa",
"kpv": "Komi-Zyrian",
"kpw": "Kobon",
"kpx": "Koiari Gunung",
"kpy": "Koryak",
"kpz": "Kupsabiny",
"kqa": "Mum",
"kqb": "Kovai",
"kqc": "Doromu-Koki",
"kqd": "Koy Sanjaq Surat",
"kqe": "Kalagan",
"kqf": "Kakabai",
"kqg": "Khe",
"kqh": "Kisankasa",
"kqi": "Koitabu",
"kqj": "Koromira",
"kqk": "Gbe Kotafon",
"kql": "Kyenele",
"kqm": "Khisa",
"kqn": "Kaonde",
"kqo": "Krahn Timur",
"kqp": "Kimré",
"kqq": "Krenak",
"kqr": "Kimaragang",
"kqs": "Kissi Utara",
"kqt": "Kadazan Sungai Klias",
"kqu": "Seroa",
"kqv": "Okolod",
"kqw": "Kandas",
"kqx": "Mser",
"kqy": "Koorete",
"kqz": "Korana",
"kr": "Kanuri",
"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": "Karelia",
"krm": "Krim",
"krn": "Sapo",
"kro-pro": "Proto-Kru",
"krp": "Korop",
"krr": "Kru'ng",
"krs": "Kresh",
"kru": "Kurukh",
"krv": "Kavet",
"krw": "Krahn Barat",
"krx": "Karon",
"kry": "Kryts",
"krz": "Sota Kanum",
"ks": "Kashmiri",
"ksa": "Shuwa-Zamani",
"ksb": "Shambala",
"ksc": "Kalinga Selatan",
"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": "Kissi Selatan",
"kst": "Winyé",
"ksu": "Khamyang",
"ksv": "Kusu",
"ksw": "Karen S'gaw",
"ksx": "Kedang",
"ksy": "Kharia Thar",
"ksz": "Kodaku",
"kta": "Katua",
"ktb": "Kambaata",
"ktc": "Kholok",
"ktd": "Kokata",
"ktf": "Kwami",
"ktg": "Kalkatungu",
"kth": "Karanga",
"kti": "Muyu Utara",
"ktj": "Plapo Krumen",
"ktk": "Kaniet",
"ktl": "Koroshi",
"ktm": "Kurti",
"ktn": "Karitiâna",
"kto": "Kuot",
"ktp": "Kaduo",
"ktq": "Katabaga",
"ktr": "Tinagas Kota Marudu",
"kts": "Muyu Selatan",
"ktt": "Ketum",
"ktu": "Kituba",
"ktv": "Katu Timur",
"ktw": "Kato",
"ktx": "Kaxararí",
"kty": "Kango",
"ktz": "Juǀ'hoan",
"ku-pro": "Proto-Kurd",
"kub": "Kutep",
"kuc": "Kwinsu",
"kud": "Auhelawa",
"kue": "Kuman",
"kuf": "Katu Barat",
"kug": "Kupa",
"kuh": "Kushi",
"kui": "Kuikúro",
"kuj": "Kuria",
"kuk": "Kepo'",
"kul": "Kulere",
"kum": "Kumyk",
"kun": "Kunama",
"kuo": "Kumukio",
"kup": "Kunimaipa",
"kuq": "Karipuna",
"kus": "Kusaal",
"kut": "Kutenai",
"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": "Bahasa Isyarat Korea",
"kvl": "Karen Brek",
"kvm": "Kendem",
"kvn": "Kuna Sempadan",
"kvo": "Dobel",
"kvp": "Kompane",
"kvq": "Karen Geba",
"kvr": "Kerinci",
"kvt": "Karen Lahta",
"kvu": "Karen Yinbaw",
"kvv": "Kola",
"kvw": "Wersing",
"kvx": "Parkari Koli",
"kvy": "Karen Yintale",
"kvz": "Tsakwambo",
"kw": "Cornish",
"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": "Khonso",
"kxd": "Melayu Brunei",
"kxe": "Kakihum",
"kxf": "Karen Manumanaw",
"kxh": "Karo",
"kxi": "Murut Keningau",
"kxj": "Kulfa",
"kxk": "Karen Zayein",
"kxl": "Nepal Kurux",
"kxm": "Khmer Utara",
"kxn": "Kanowit",
"kxo": "Kanoé",
"kxp": "Wadiyara Koli",
"kxq": "Smärky Kanum",
"kxr": "Koro (New Guinea)",
"kxs": "Kangjia",
"kxt": "Koiwat",
"kxu": "Kui (India)",
"kxv": "Kuvi",
"kxw": "Konai",
"kxx": "Likuba",
"kxy": "Kayong",
"kxz": "Kerewo",
"ky": "Kyrgyz",
"kya": "Kwaya",
"kyb": "Kalinga Butbut",
"kyc": "Kyaka",
"kyd": "Karey",
"kye": "Krache",
"kyf": "Kouya",
"kyg": "Keyagana",
"kyh": "Karok",
"kyi": "Kiput",
"kyj": "Karao",
"kyk": "Kamayo",
"kyl": "Kalapuya",
"kym": "Kpatili",
"kyn": "Karolanos",
"kyo": "Kelon",
"kyp": "Kang",
"kyq": "Kenga",
"kyr": "Kuruáya",
"kys": "Kayan Baram",
"kyt": "Kayagar",
"kyu": "Kayah Barat",
"kyv": "Kayort",
"kyw": "Kudmali",
"kyx": "Rapoisi",
"kyy": "Kambaira",
"kyz": "Kayabí",
"kza": "Karaboro Barat",
"kzb": "Kaibobo",
"kzc": "Bondoukou Kulango",
"kzd": "Kadai",
"kze": "Kosena",
"kzf": "Da'a Kaili",
"kzg": "Kikai",
"kzh": "Dongolawi",
"kzi": "Kelabit",
"kzj": "Kadazan",
"kzk": "Kazukuru",
"kzl": "Kayeli",
"kzm": "Kais",
"kzn": "Kokola",
"kzo": "Kaningi",
"kzp": "Kaidipang",
"kzq": "Kaike",
"kzr": "Karang",
"kzs": "Dusun Sugut",
"kzt": "Dusun Tambunan",
"kzu": "Kayupulau",
"kzv": "Komyandaret",
"kzw": "Kariri",
"kzx": "Kamarian",
"kzy": "Kango-Sua",
"kzz": "Kalabra",
"la": "Latin",
"laa": "Subanun Lapuyan",
"lab": "Linear A",
"lac": "Lacandon",
"lad": "Ladino",
"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": "Luxembourgish",
"lbb": "Label",
"lbc": "Lakkia",
"lbe": "Lak",
"lbf": "Tinani",
"lbg": "Laopang",
"lbi": "La'bi",
"lbj": "Ladakhi",
"lbk": "Bontoc Tengah",
"lbl": "Bikol Libon",
"lbm": "Lodhi",
"lbn": "Lamet",
"lbo": "Laven",
"lbq": "Wampar",
"lbr": "Lorung Utara",
"lbs": "Bahasa Isyarat Libya",
"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": "Lawa Barat",
"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": "Lenca Honduras",
"leo": "Leti (Cameroon)",
"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": "Lezgi",
"lfa": "Lefa",
"lfn": "Lingua Franca Nova",
"lg": "Luganda",
"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": "Limburgish",
"lia": "Limba Barat-Tengah",
"lib": "Likum",
"lic": "Hlai",
"lid": "Nyindrou",
"lie": "Likila",
"lif": "Limbu",
"lig": "Ligbi",
"lih": "Lihir",
"lii": "Lingkhim",
"lij": "Ligurian",
"lik": "Lika",
"lil": "Lillooet",
"lio": "Liki",
"lip": "Sekpele",
"liq": "Libido",
"lir": "Liberian Kreyol",
"lis": "Lisu",
"liu": "Logorik",
"liv": "Livonian",
"liw": "Col",
"lix": "Liabuku",
"liy": "Banda-Bambari",
"liz": "Libinza",
"lja": "Golpa",
"lje": "Rampi",
"lji": "Laiyolo",
"ljl": "Li'o",
"ljp": "Lampung Api",
"ljw": "Yirandali",
"ljx": "Yuru",
"lka": "Lakalei",
"lkb": "Kabras",
"lkc": "Kucong",
"lkd": "Lakondê",
"lke": "Kenyi",
"lkh": "Lakha",
"lki": "Laki",
"lkj": "Remun",
"lkl": "Laeko-Libuat",
"lkm": "Kalaamaya",
"lkn": "Lakon",
"lko": "Khayo",
"lkr": "Päri",
"lks": "Kisa",
"lkt": "Lakota",
"lku": "Kungkari",
"lky": "Lokoya",
"lla": "Lala-Roba",
"llb": "Lolo",
"llc": "Lele (Guinea)",
"lld": "Ladin",
"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": "Efate Utara",
"llq": "Lolak",
"lls": "Lithuanian Sign Language",
"llu": "Lau",
"llx": "Lauan",
"lma": "Limba Timur",
"lmb": "Merei",
"lmc": "Limilngan",
"lmd": "Lumun",
"lme": "Pévé",
"lmf": "Lembata Selatan",
"lmg": "Lamogai",
"lmh": "Lambichhong",
"lmi": "Lombi",
"lmj": "Lembata Barat",
"lmk": "Lamkang",
"lml": "Raga",
"lmn": "Lambadi",
"lmo": "Lombard",
"lmp": "Limbum",
"lmq": "Lamatuka",
"lmr": "Lamalera",
"lmu": "Lamenu",
"lmv": "Lomaiviti",
"lmw": "Lake Miwok",
"lmx": "Laimbue",
"lmy": "Laboya",
"lmz": "Lumbee",
"ln": "Lingala",
"lna": "Langbashe",
"lnb": "Mbalanhu",
"lnd": "Lun Bawang",
"lnh": "Lanoh",
"lni": "Daantanai'",
"lnj": "Linngithigh",
"lnl": "Banda Tengah Selatan",
"lnm": "Langam",
"lnn": "Lorediakarkar",
"lno": "Lango (Sudan)",
"lns": "Lamnso'",
"lnu": "Longuda",
"lnw": "Lanima",
"lo": "Lao",
"loa": "Loloda",
"lob": "Lobi",
"loc": "Inonhan",
"lod": "Berawan",
"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": "Kreol Louisiana",
"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": "Lur Utara",
"lre": "Laurentia",
"lrg": "Laragia",
"lri": "Marachi",
"lrk": "Loarki",
"lrl": "Larestani",
"lrm": "Marama",
"lrn": "Lorang",
"lro": "Laro",
"lrr": "Lorung Selatan",
"lrt": "Melayu Larantuka",
"lrv": "Larevat",
"lrz": "Lemerig",
"lsa": "Lasgerdi",
"lsd": "Lishana Deni",
"lse": "Lusengo",
"lsh": "Lish",
"lsi": "Lashi",
"lsl": "Bahasa Isyarat Latvia",
"lsm": "Saamia",
"lso": "Bahasa Isyarat Lao",
"lsp": "Bahaaa Isyarat Panama",
"lsr": "Aruop",
"lss": "Lasi",
"lst": "Bahasa Isyarat Trinidad dan Tobago",
"lsy": "Bahaaa Isyarat Mauritius",
"lt": "Lithuanian",
"ltc": "Cina Pertengahan",
"ltg": "Latgalia",
"lti": "Leti (Indonesia)",
"ltn": "Latundê",
"lto": "Olutsotso",
"lts": "Lutachoni",
"ltu": "Latu",
"lu": "Luba-Katanga",
"lua": "Luba-Kasai",
"luc": "Aringa",
"lud": "Ludian",
"lue": "Luvale",
"luf": "Laua",
"lui": "Luiseño",
"luj": "Luna",
"luk": "Lunanakha",
"lul": "Olu'bo",
"lum": "Luimbi",
"lun": "Lunda",
"luo": "Luo",
"lup": "Lumbu",
"luq": "Lucumí",
"lur": "Laura",
"lus": "Mizo",
"lut": "Lushootseed",
"luu": "Lumba-Yakkha",
"luv": "Luwati",
"luy": "Luhya",
"luz": "Lur Selatan",
"lv": "Latvian",
"lva": "Maku'a",
"lvi": "Lawi",
"lvk": "Lavukaleve",
"lvl": "Lwel",
"lvu": "Levuka",
"lwa": "Lwalu",
"lwe": "Lewo Eleng",
"lwg": "Wanga",
"lwh": "Lachi Putih",
"lwl": "Lawa Timur",
"lwm": "Laomian",
"lwo": "Luwo",
"lws": "Malawian Sign Language",
"lwt": "Lewotobi",
"lwu": "Lawu",
"lww": "Lewo",
"lya": "Layakha",
"lyg": "Lyngngam",
"lyn": "Luyana",
"lzh": "Literary Chinese",
"lzl": "Litzlitz",
"lzn": "Leinong Naga",
"lzz": "Laz",
"maa": "Mazatec San Jerónimo Tecóatl",
"mab": "Mixtec Yutanduchi",
"mad": "Madura",
"mae": "Bo-Rukul",
"maf": "Mafa",
"mag": "Magahi",
"mai": "Maithili",
"maj": "Mazatec Jalapa de Díaz",
"mak": "Makassar",
"mam": "Mam",
"man": "Mandingo",
"map-ata-pro": "Proto-Atayalik",
"map-bms": "Banyumasan",
"map-pro": "Proto-Austronesia",
"maq": "Mazatec Chiquihuitlán",
"mas": "Maasai",
"mat": "Matlatzinca",
"mau": "Mazatec Huautla",
"mav": "Sateré-Mawé",
"maw": "Mampruli",
"max": "Melayu Maluku Utara",
"maz": "Mazahua Tengah",
"mba": "Higaonon",
"mbb": "Manobo Bukidnon Barat",
"mbc": "Macushi",
"mbd": "Manobo Dibabawon",
"mbe": "Molale",
"mbf": "Melayu Baba",
"mbh": "Mangseng",
"mbi": "Manobo Ilianen",
"mbj": "Nadëb",
"mbk": "Malol",
"mbl": "Maxakalí",
"mbm": "Ombamba",
"mbn": "Macaguán",
"mbo": "Mbo (Cameroon)",
"mbp": "Wiwa",
"mbq": "Maisin",
"mbr": "Nukak Makú",
"mbs": "Manobo Sarangani",
"mbt": "Manobo Matigsalug",
"mbu": "Mbula-Bwazza",
"mbv": "Mbulungish",
"mbw": "Maring",
"mbx": "Mari (Sepik)",
"mby": "Memoni",
"mbz": "Mixtec Amoltepec",
"mca": "Maca",
"mcb": "Machiguenga",
"mcc": "Bitur",
"mcd": "Sharanahua",
"mce": "Mixtec Itundujia",
"mcf": "Matsés",
"mcg": "Mapoyo",
"mch": "Ye'kwana",
"mci": "Mese",
"mcj": "Mvanip",
"mck": "Mbunda",
"mcl": "Macaguaje",
"mcm": "Kristang",
"mcn": "Masana",
"mco": "Mixe Coatlán",
"mcp": "Makaa",
"mcq": "Ese",
"mcr": "Menya",
"mcs": "Mambai",
"mcu": "Mambila Cameroon",
"mcw": "Mawa",
"mcx": "Mpiemo",
"mcy": "Watut Selatan",
"mcz": "Mawan",
"mda": "Mada (Nigeria)",
"mdb": "Morigi",
"mdc": "Male",
"mdd": "Mbum",
"mde": "Mabang Bura",
"mdf": "Moksha",
"mdg": "Massalat",
"mdh": "Maguindanao",
"mdi": "Mamvu",
"mdj": "Mangbetu",
"mdk": "Mangbutu",
"mdl": "Bahasa Isyarat Malta",
"mdm": "Mayogo",
"mdn": "Mbati",
"mdp": "Mbala",
"mdq": "Mbole",
"mdr": "Mandar",
"mds": "Maria",
"mdt": "Mbere",
"mdu": "Mboko",
"mdv": "Mixtec Santa Lucía Monteverde",
"mdw": "Mbosi",
"mdx": "Dizin",
"mdy": "Maale",
"mdz": "Suruí Do Pará",
"mea": "Menka",
"meb": "Ikobi-Mena",
"mec": "Mara",
"med": "Melpa",
"mee": "Mengen",
"mef": "Megam",
"meh": "Mixtec Tlaxiaco Barat Daya",
"mei": "Midob",
"mej": "Meyah",
"mek": "Mekeo",
"mel": "Melanau Tengah",
"mem": "Mangala",
"men": "Mende (Sierra Leone)",
"meo": "Melayu Kedah",
"mep": "Miriwoong",
"meq": "Merey",
"mer": "Meru",
"mes": "Masmaje",
"met": "Mato",
"meu": "Motu",
"mev": "Mano",
"mew": "Maaka",
"mey": "Arab Hassaniyah",
"mez": "Menominee",
"mfa": "Melayu Patani",
"mfb": "Bangka",
"mfc": "Mba",
"mfd": "Mendankwe-Nkwen",
"mfe": "Kreol Mauritius",
"mff": "Naki",
"mfg": "Mixifore",
"mfh": "Matal",
"mfi": "Wandala",
"mfj": "Mefele",
"mfk": "Mofu Utara",
"mfl": "Putai",
"mfm": "Marghi Selatan",
"mfn": "Mbembe Cross River",
"mfo": "Mbe",
"mfp": "Melayu Makassar",
"mfq": "Moba",
"mfr": "Marrithiyel",
"mfs": "Bahasa Isyarat Mexico",
"mft": "Mokerang",
"mfu": "Mbwela",
"mfv": "Mandjak",
"mfw": "Mulaha",
"mfx": "Melo",
"mfy": "Mayo",
"mfz": "Mabaan",
"mg": "Malagasy",
"mga": "Ireland Pertengahan",
"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": "Magar Timur",
"mgq": "Malila",
"mgr": "Mambwe-Lungu",
"mgs": "Manda (Tanzania)",
"mgt": "Mwakai",
"mgu": "Mailu",
"mgv": "Matengo",
"mgw": "Matumbi",
"mgy": "Mbunga",
"mgz": "Mbugwe",
"mh": "Marshallese",
"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": "Mòcheno",
"mho": "Mashi",
"mhp": "Melayu Bali",
"mhq": "Mandan",
"mhr": "Mari Timur",
"mhs": "Buru (Indonesia)",
"mht": "Mandahuaca",
"mhu": "Taraon",
"mhw": "Mbukushu",
"mhx": "Lhao Vo",
"mhy": "Ma'anyan",
"mhz": "Mor (Austronesia)",
"mi": "Māori",
"mia": "Miami",
"mib": "Mixtec Atatláhuca",
"mic": "Mi'kmaq",
"mid": "Mandaia",
"mie": "Mixtec Ocotepec",
"mif": "Mofu-Gudur",
"mig": "Mixtec San Miguel el Grande",
"mih": "Mixtec Chayuco",
"mii": "Mixtec Chigmecatitlán",
"mij": "Mungbam",
"mik": "Mikasuki",
"mil": "Mixtec Peñoles",
"mim": "Mixtec Alacatlatzala",
"min": "Minangkabau",
"mio": "Mixtec Pinotepa Nacional",
"mip": "Mixtec Apasco-Apoala",
"miq": "Miskito",
"mir": "Mixe Tanah Genting",
"mis-hkl": "Hokkien Peranakan Kelantan",
"mis-idn": "Idiom Neutral",
"mis-isa": "Isauria",
"mis-jie": "Jie",
"mis-jzh": "Jizhao",
"mis-kas": "Kassite",
"mis-mmd": "Mimi Decorse",
"mis-mmn": "Mimi Nachtigal",
"mis-phi": "Filistin",
"mis-rou": "Rouran",
"mis-tdl": "Turdulia",
"mis-tdt": "Turdetania",
"mis-tnw": "Tangwang",
"mis-tuh": "Tuyuhun",
"mis-tuo": "Tuoba",
"mis-wuh": "Wuhuan",
"mis-xbi": "Xianbei",
"mis-xnu": "Xiongnu",
"mit": "Mixtec Puebla Selatan",
"miu": "Mixtec Cacaloxtepec",
"miw": "Akoye",
"mix": "Mixtec Mixtepec",
"miy": "Mixtec Ayutla",
"miz": "Mixtec Coatzospan",
"mjb": "Makalero",
"mjc": "Mixtec San Juan Colorado",
"mjd": "Maidu Barat Laut",
"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": "Paharia Sawriya",
"mju": "Manna-Dora",
"mjv": "Mannan",
"mjw": "Karbi",
"mjx": "Mahali",
"mjy": "Mahican",
"mjz": "Manya",
"mk": "Macedonian",
"mka": "Mbre",
"mkb": "Mal Paharia",
"mkc": "Siliput",
"mke": "Mawchi",
"mkf": "Miya",
"mkg": "Mak (China)",
"mkh-asl-pro": "Proto-Asli",
"mkh-ban-pro": "Proto-Bahnar",
"mkh-kat-pro": "Proto-Katuik",
"mkh-khm-pro": "Proto-Khmuik",
"mkh-kmr-pro": "Proto-Khmer",
"mkh-mmn": "Mon Pertengahan",
"mkh-mnc-pro": "Proto-Monik",
"mkh-mvi": "Vietnam Pertengahan",
"mkh-pal-pro": "Proto-Palaungik",
"mkh-pea-pro": "Proto-Pearik",
"mkh-pkn-pro": "Proto-Pakanik",
"mkh-pro": "Proto-Mon-Khmer",
"mkh-vie-pro": "Proto-Vietik",
"mki": "Dhatki",
"mkj": "Mokil",
"mkk": "Byep",
"mkl": "Mokole",
"mkm": "Moklen",
"mkn": "Melayu Kupang",
"mko": "Mingang Doso",
"mkp": "Moikodi",
"mkq": "Miwok Teluk",
"mkr": "Malas",
"mks": "Mixtec Silacayoapan",
"mkt": "Vamale",
"mku": "Maninka Konyanka",
"mkv": "Mav̋ea",
"mkx": "Manobo Cinamiguin",
"mky": "Taba",
"mkz": "Makasae",
"ml": "Malayalam",
"mla": "Tamambo",
"mlb": "Mbule",
"mlc": "Caolan",
"mle": "Manambu",
"mlf": "Mal",
"mlh": "Mape",
"mli": "Malimpung",
"mlj": "Miltu",
"mlk": "Ilwana",
"mll": "Teluk Malua",
"mlm": "Mulam",
"mln": "Malango",
"mlo": "Mlomp",
"mlp": "Bargam",
"mlq": "Maninkakan Barat",
"mlr": "Vame",
"mls": "Masalit",
"mlu": "To'abaita",
"mlv": "Mwotlap",
"mlw": "Moloko",
"mlx": "Malfaxal",
"mlz": "Malaynon",
"mma": "Mama",
"mmb": "Momina",
"mmc": "Mazahua Michoacán",
"mmd": "Maonan",
"mme": "Tirax",
"mmf": "Mundat",
"mmg": "Ambrym Utara",
"mmh": "Mehináku",
"mmi": "Hember Avu",
"mmj": "Majhwar",
"mmk": "Mukha-Dora",
"mml": "Man Met",
"mmm": "Maii",
"mmn": "Mamanwa",
"mmo": "Mangga Buang",
"mmp": "Musan",
"mmq": "Aisi",
"mmr": "Miao Xiangxi Barat",
"mmt": "Malalamai",
"mmu": "Mmaala",
"mmv": "Miriti",
"mmw": "Emae",
"mmx": "Madak",
"mmy": "Migaama",
"mmz": "Mabaale",
"mn": "Mongolian",
"mna": "Mbula",
"mnb": "Muna",
"mnc": "Manchu",
"mnd": "Mondé",
"mne": "Naba",
"mnf": "Mundani",
"mng": "Mnong Timur",
"mnh": "Mono (Congo)",
"mni": "Manipuri",
"mnj": "Munji",
"mnk": "Mandinka",
"mnl": "Tiale",
"mnm": "Mapena",
"mnn": "Mnong Selatan",
"mnp": "Min Utara",
"mnq": "Minriq",
"mnr": "Mono (California)",
"mns-cen": "Mansi Tengah",
"mns-nor": "Mansi Utara",
"mns-pro": "Proto-Mansi",
"mns-sou": "Mansi Selatan",
"mnt": "Maykulan",
"mnu": "Mer",
"mnv": "Rennell",
"mnw": "Mon",
"mnw-tha": "Mon Thailand",
"mnx": "Sougb",
"mny": "Manyawa",
"mnz": "Moni",
"moa": "Mwan",
"moc": "Mocoví",
"mod": "Mobilia",
"moe": "Montagnais",
"mog": "Mongondow",
"moh": "Mohawk",
"moi": "Mboi",
"moj": "Monzombo",
"mok": "Morori",
"mom": "Mangue",
"moo": "Monom",
"mop": "Maya Mopan",
"moq": "Mor (Papua)",
"mor": "Moro",
"mos": "Mossi",
"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": "Watut Tengah",
"mpm": "Mixtec Yosondúa",
"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": "Melayu Kutai Kota Bangun",
"mqh": "Mixtec Tlazoyaltepec",
"mqi": "Mariri",
"mqj": "Mamasa",
"mqk": "Manobo Rajah Kabunsuwan",
"mql": "Mbelime",
"mqm": "Marquesas Selatan",
"mqn": "Moronene",
"mqo": "Modole",
"mqp": "Manipa",
"mqq": "Minokok",
"mqr": "Mander",
"mqs": "Makian Barat",
"mqt": "Mok",
"mqu": "Mandari",
"mqv": "Mosimo",
"mqw": "Murupi",
"mqx": "Mamuju",
"mqy": "Manggarai",
"mqz": "Malasanga",
"mr": "Marathi",
"mra": "Mlabri",
"mrb": "Sungwadia",
"mrc": "Maricopa",
"mrd": "Magar Barat",
"mre": "Bahasa Isyarat Martha's Vineyard",
"mrf": "Elseng",
"mrg": "Mising",
"mrh": "Chin Mara",
"mrj": "Mari Barat",
"mrk": "Hmwaveke",
"mrl": "Mortlock",
"mrm": "Mwerlap",
"mrn": "Cheke Holo",
"mro": "Mru",
"mrp": "Morouas",
"mrq": "Marquesas Utara",
"mrr": "Maria Bukit",
"mrs": "Maragus",
"mrt": "Margi",
"mru": "Mono (Cameroon)",
"mrv": "Mangareva",
"mrw": "Maranao",
"mrx": "Dineor",
"mry": "Mandaya Karaga",
"mrz": "Marind",
"ms": "Malay",
"msb": "Masbatenyo",
"msc": "Maninka Sankaran",
"msd": "Bahasa Isyarat Maya Yucatec",
"mse": "Musey",
"msf": "Mekwei",
"msg": "Moraid",
"msi": "Melayu Sabah",
"msj": "Ma",
"msk": "Mansaka",
"msl": "Molof",
"msm": "Manobo Agusan",
"msn": "Vurës",
"mso": "Mombum",
"msp": "Maritsauá",
"msq": "Caac",
"msr": "Bahasa Isyarat Mongolia",
"mss": "Masela Barat",
"msu": "Musom",
"msv": "Maslam",
"msw": "Mansoanka",
"msx": "Moresada",
"msy": "Aruamu",
"msz": "Momare",
"mt": "Maltese",
"mta": "Manobo Cotabato",
"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": "Mixe Totontepec",
"mtp": "Wichí Lhamtés Nocten",
"mtq": "Muong",
"mtr": "Mewari",
"mts": "Yora",
"mtt": "Mota",
"mtu": "Mixtec Tututepec",
"mtv": "Asaro'o",
"mtw": "Magahat",
"mtx": "Mixtec Tidaá",
"mty": "Nabi",
"mua": "Mundang",
"mub": "Mubi",
"muc": "Mbu'",
"mud": "Aleut Mednyj",
"mue": "Media Lengua",
"mug": "Musgu",
"muh": "Mündü",
"mui": "Musi",
"muj": "Mabire",
"mul": "Translingual",
"mum": "Maiwala",
"mun-pro": "Proto-Munda",
"muo": "Nyong",
"mup": "Malvi",
"muq": "Miao Xiangxi Timur",
"mur": "Murle",
"mus": "Creek",
"mut": "Muria Barat",
"muu": "Yaaku",
"muv": "Muthuvan",
"mux": "Bo-Ung",
"muy": "Muyang",
"muz": "Mursi",
"mva": "Manam",
"mvb": "Mattole",
"mvd": "Mamboru",
"mvg": "Mixtec Yucuañe",
"mvh": "Mire",
"mvi": "Miyako",
"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": "Kohistani Indus",
"mvz": "Mesqan",
"mwa": "Mwatebu",
"mwb": "Juwal",
"mwc": "Are",
"mwe": "Mwera",
"mwf": "Murrinh-Patha",
"mwg": "Aiklep",
"mwh": "Mouk-Aria",
"mwi": "Labo",
"mwk": "Maninkakan Kita",
"mwl": "Mirandese",
"mwm": "Sar",
"mwn": "Nyamwanga",
"mwo": "Sungwadaga",
"mwp": "Kala Lagaw Ya",
"mwq": "Mün Chin",
"mwr": "Marwari",
"mws": "Mwimbi-Muthambi",
"mwt": "Moken",
"mwu": "Mittu",
"mwv": "Mentawai",
"mww": "Hmong Putih",
"mwz": "Moingi",
"mxa": "Mixtec Oaxaca Barat Laut",
"mxb": "Mixtec Tezoatlán",
"mxd": "Modang",
"mxe": "Mele-Fila",
"mxf": "Malgbe",
"mxg": "Mbangala",
"mxh": "Mvuba",
"mxi": "Mozarab",
"mxj": "Miju",
"mxk": "Monumbo",
"mxl": "Maxi Gbe",
"mxm": "Meramera",
"mxn": "Moi (Indonesia)",
"mxo": "Mbowe",
"mxp": "Mixe Tlahuitoltepec",
"mxq": "Mixe Juquila",
"mxr": "Murik (Malaysia)",
"mxs": "Mixtec Huitepec",
"mxt": "Mixtec Jamiltepec",
"mxu": "Mada (Cameroon)",
"mxv": "Mixtec Metlatónoc",
"mxw": "Namo",
"mxx": "Mahou",
"mxy": "Mixtec Nochixtlán Tenggara",
"mxz": "Masela Tengah",
"my": "Burmese",
"myb": "Mbay",
"myc": "Mayeka",
"mye": "Myene",
"myf": "Bambassi",
"myg": "Manta",
"myh": "Makah",
"myj": "Mangayat",
"myk": "Mamara",
"myl": "Moma",
"mym": "Me'en",
"myn-chl": "Ch'olti'",
"myn-pro": "Proto-Maya",
"myo": "Anfillo",
"myp": "Pirahã",
"myr": "Muniche",
"mys": "Mesmes",
"myu": "Mundurukú",
"myv": "Erzya",
"myw": "Muyuw",
"myx": "Masaba",
"myy": "Macuna",
"myz": "Mandaia Klasik",
"mza": "Mixtec Santa María Zacatepec",
"mzb": "Berber Saharan Utara",
"mzc": "Bahasa Isyarat Madagascar",
"mzd": "Malimba",
"mze": "Morawa",
"mzg": "Bahasa Isyarat Monastik",
"mzh": "Wichí Lhamtés Güisnay",
"mzi": "Mazatec Ixcatlán",
"mzk": "Mambila Nigeria",
"mzl": "Mixe Mazatlán",
"mzm": "Mumuye",
"mzn": "Mazanderani",
"mzo": "Matipuhy",
"mzp": "Movima",
"mzq": "Mori Atas",
"mzr": "Marúbo",
"mzs": "Macanese",
"mzt": "Mintil",
"mzu": "Inapang",
"mzv": "Manza",
"mzw": "Deg",
"mzx": "Mawayana",
"mzy": "Bahasa Isyarat Mozambique",
"mzz": "Maiadomu",
"na": "Nauruan",
"naa": "Namla",
"nab": "Nambikwara",
"nac": "Narak",
"nae": "Naka'ela",
"naf": "Nabak",
"nag": "Pidgin Naga",
"nah": "Nahuatl",
"nai-ala": "Alazapa",
"nai-bay": "Bayogoula",
"nai-cal": "Calusa",
"nai-chi": "Chiquimulilla",
"nai-chu-pro": "Proto-Chumash",
"nai-cig": "Ciguayo",
"nai-ckn-pro": "Proto-Chinook",
"nai-guz": "Guazacapán",
"nai-hit": "Hitchiti",
"nai-ipa": "Ipai",
"nai-jtp": "Jutiapa",
"nai-jum": "Jumaytepeque",
"nai-kat": "Kathlamet",
"nai-klp-pro": "Proto-Kalapuya",
"nai-knm": "Konomihu",
"nai-kum": "Kumeyaay",
"nai-mac": "Macoris",
"nai-mdu-pro": "Proto-Maidu",
"nai-miz-pro": "Proto-Mixe-Zoque",
"nai-mus-pro": "Proto-Muskogi",
"nai-nao": "Naolan",
"nai-nrs": "Shasta Sungai Baru",
"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-Catawba",
"nai-sin": "Sinacantán",
"nai-sln": "Lenca Salvador",
"nai-spt": "Sahaptin",
"nai-tap": "Tapachultec",
"nai-taw": "Tawasa",
"nai-teq": "Tequistlatec",
"nai-tip": "Tipai",
"nai-tot-pro": "Proto-Totozoquean",
"nai-tsi-pro": "Proto-Tsimshianik",
"nai-utn-pro": "Proto-Utik",
"nai-wai": "Waikuri",
"nai-wji": "Jicaque Barat",
"nai-yup": "Yupiltepeque",
"naj": "Nalu",
"nak": "Nakanai",
"nal": "Nalik",
"nam": "Ngan'gityemerri",
"nan": "Min Nan",
"nan-dat": "Min Datian",
"nan-hbl": "Hokkien",
"nan-hlh": "Min Hailufeng",
"nan-lnx": "Min Longyan",
"nan-tws": "Teochew",
"nan-zhe": "Min Zhenan",
"nan-zsh": "Min Sanxiang",
"nao": "Naaba",
"nap": "Neapolit",
"naq": "Khoekhoe",
"nar": "Iguta",
"nas": "Nasioi",
"nat": "Hungworo",
"naw": "Nawuri",
"nax": "Nakwi",
"nay": "Ngarrindjeri",
"naz": "Nahuatl Coatepec",
"nb": "Norwegian Bokmål",
"nba": "Nyemba",
"nbb": "Ndoe",
"nbc": "Chang",
"nbd": "Ngbinda",
"nbe": "Naga Konyak",
"nbg": "Nagarchal",
"nbh": "Ngamo",
"nbi": "Naga Mao",
"nbj": "Ngarinman",
"nbk": "Nake",
"nbm": "Ngbaka Ma'bo",
"nbn": "Kuri",
"nbo": "Nkukoli",
"nbp": "Nnam",
"nbq": "Nggem",
"nbr": "Numana",
"nbs": "Bahasa Isyarat Namibia",
"nbt": "Na",
"nbu": "Naga Rongmei",
"nbv": "Ngamambo",
"nbw": "Ngbandi Selatan",
"nby": "Ningera",
"nca": "Iyo",
"ncb": "Nicobar Tengah",
"ncc": "Ponam",
"ncd": "Nachering",
"nce": "Yale",
"ncf": "Notsi",
"ncg": "Nisga'a",
"nch": "Nahuatl Huasteca Tengah",
"nci": "Nahuatl Klasik",
"ncj": "Nahuatl Puebla Utara",
"nck": "Nakara",
"ncl": "Nahuatl Michoacán",
"ncm": "Nambo",
"ncn": "Nauna",
"nco": "Sibe",
"ncr": "Ncane",
"ncs": "Bahasa Isyarat Nicaragua",
"nct": "Naga Chothe",
"ncu": "Chumburung",
"ncx": "Nahuatl Puebla Tengah",
"ncz": "Natchez",
"nd": "Northern Ndebele",
"nda": "Ndasa",
"ndb": "Kenswei Nsei",
"ndc": "Ndau",
"ndd": "Nde-Nsele-Nta",
"ndf": "Nadruvia",
"ndg": "Ndengereko",
"ndh": "Ndali",
"ndi": "Chamba Leko",
"ndj": "Ndamba",
"ndk": "Ndaka",
"ndl": "Ndolo",
"ndm": "Ndam",
"ndn": "Ngundi",
"ndp": "Ndo",
"ndq": "Ndombe",
"ndr": "Ndoola",
"nds": "Jerman Rendah",
"ndt": "Ndunga",
"ndu": "Dugun",
"ndv": "Ndut",
"ndw": "Ndobo",
"ndx": "Nduga",
"ndy": "Lutos",
"ndz": "Ndogo",
"ne": "Nepali",
"nea": "Ngad'a Timur",
"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": "Mixe Tengah Utara",
"ner": "Yahadian",
"nes": "Kinnauri Bhoti",
"net": "Nete",
"neu": "Neo",
"nev": "Nyaheun",
"new": "Newar",
"nex": "Neme",
"ney": "Neyo",
"nez": "Nez Perce",
"nfa": "Dhao",
"nfd": "Ahwai",
"nfl": "Äiwoo",
"nfr": "Nafaanra",
"nfu": "Mfumte",
"ng": "Ndonga",
"nga": "Ngbaka",
"ngb": "Ngbandi Utara",
"ngc": "Ngombe (Congo)",
"ngd": "Ngando (Republik Afrika Tengah)",
"nge": "Ngemba",
"ngf-bin-pro": "Proto-Binandere",
"ngf-pro": "Proto-Trans-New Guinea",
"ngg": "Ngbaka Manza",
"ngh": "Nǀuu",
"ngi": "Ngizim",
"ngj": "Ngie",
"ngk": "Ngalkbun",
"ngl": "Lomwe",
"ngm": "Kreol Lelaki Ngatik",
"ngn": "Ngwo",
"ngo": "Ngoni",
"ngp": "Ngulu",
"ngq": "Ngoreme",
"ngr": "Nagu",
"ngs": "Gvoko",
"ngt": "Ngeq",
"ngu": "Nahuatl Guerrero",
"ngv": "Nagumi",
"ngw": "Ngwaba",
"ngx": "Nggwahyi",
"ngy": "Tibea",
"ngz": "Ngungwel",
"nha": "Nhanda",
"nhb": "Beng",
"nhc": "Nahuatl Tabasco",
"nhd": "Chiripá",
"nhe": "Nahuatl Huasteca Timur",
"nhf": "Nhuwala",
"nhg": "Nahuatl Tetelcingo",
"nhh": "Nahari",
"nhi": "Nahuatl Zacatlán-Ahuacatlán-Tepetzintla",
"nhk": "Nahuatl Cosoleacaque",
"nhm": "Nahuatl Morelos",
"nhn": "Nahuatl Tengah",
"nho": "Takuu",
"nhp": "Nahuatl Pajapan",
"nhq": "Nahuatl Huaxcaleca",
"nhr": "Naro",
"nht": "Nahuatl Ometepec",
"nhu": "Noone",
"nhv": "Nahuatl Temascaltepec",
"nhw": "Nahuatl Huasteca Barat",
"nhx": "Nahuatl Mecayapan",
"nhy": "Nahuatl Oaxaca Utara",
"nhz": "Nahuatl Santa María La Alta",
"nia": "Nias",
"nib": "Nakame",
"nic-bco-pro": "Proto-Benue-Congo",
"nic-bod-pro": "Proto-Bantoid",
"nic-eov-pro": "Proto-Oti-Volta Timur",
"nic-gns-pro": "Proto-Gurunsi",
"nic-grf-pro": "Proto-Grassfields",
"nic-gur-pro": "Proto-Gur",
"nic-jkn-pro": "Proto-Jukunoid",
"nic-lcr-pro": "Proto-Cross River Bawah",
"nic-ogo-pro": "Proto-Ogoni",
"nic-ovo-pro": "Proto-Oti-Volta",
"nic-plt-pro": "Proto-Plateau",
"nic-pro": "Proto-Niger-Congo",
"nic-ubg-pro": "Proto-Ubangian",
"nic-ucr-pro": "Proto-Cross River Atas",
"nic-vco-pro": "Proto-Volta-Congo",
"nid": "Ngandi",
"nie": "Niellim",
"nif": "Nek",
"nig": "Ngalakan",
"nih": "Nyiha",
"nii": "Nii",
"nij": "Ngaju",
"nik": "Nicobar Selatan",
"nil": "Nila",
"nim": "Nilamba",
"nin": "Ninzo",
"nio": "Nganasan",
"niq": "Nandi",
"nir": "Nimboran",
"nis": "Nimi",
"nit": "Kolami Tenggara",
"niu": "Niue",
"niv": "Nivkh",
"niw": "Nimo",
"nix": "Hema",
"niy": "Ngiti",
"niz": "Ningil",
"nja": "Nzanyi",
"njb": "Nocte",
"njh": "Naga Lotha",
"nji": "Gudanji",
"njj": "Njen",
"njl": "Njalgulgule",
"njm": "Angami",
"njn": "Naga Liangmai",
"njo-jgl": "Ao Chungli",
"njo-mng": "Ao Mongsen",
"njr": "Njerep",
"njs": "Nisa",
"njt": "Pidgin Ndyuka-Trio",
"nju": "Ngadjunmaya",
"njx": "Kunyi",
"njy": "Njyem",
"njz": "Nyishi",
"nka": "Nkoya",
"nkb": "Naga Khoibu",
"nkc": "Nkongho",
"nkd": "Koireng",
"nke": "Duke",
"nkf": "Naga Inpui",
"nkg": "Nekgini",
"nkh": "Naga Khezha",
"nki": "Naga Thangal",
"nkj": "Nakai",
"nkk": "Nokuku",
"nkm": "Namat",
"nkn": "Nkangala",
"nko": "Nkonya",
"nkp": "Niuatoputapu",
"nkq": "Nkami",
"nkr": "Nukuoro",
"nks": "Asmat Utara",
"nkt": "Nyika",
"nku": "Kulango Bouna",
"nkw": "Nkutu",
"nkx": "Nkoroo",
"nkz": "Nkari",
"nl": "Dutch",
"nla": "Ngombale",
"nlc": "Nalca",
"nle": "Nyala Timur",
"nlg": "Gela",
"nli": "Grangali",
"nlj": "Nyali",
"nlk": "Yali Ninia",
"nll": "Nihali",
"nlm": "Mankiyali",
"nlo": "Ngwi",
"nlq": "Naga Lao",
"nlu": "Nchumbulu",
"nlv": "Nahuatl Orizaba",
"nlw": "Walangama",
"nlx": "Nahali",
"nly": "Nyamal",
"nlz": "Nalögo",
"nma": "Naga Maram",
"nmb": "Big Nambas",
"nmc": "Ngam",
"nmd": "Ndumu",
"nme": "Naga Mzieme",
"nmf": "Naga Tangkhul",
"nmg": "Kwasio",
"nmh": "Naga Monsang",
"nmi": "Nyam",
"nmj": "Ngombe (Republik Afrika Tengah)",
"nmk": "Namakura",
"nml": "Ndemli",
"nmm": "Manangba",
"nmn": "ǃXóõ",
"nmo": "Naga Moyon",
"nmp": "Nimanbur",
"nmq": "Nambya",
"nmr": "Nimbari",
"nms": "Letemboi",
"nmt": "Namonuito",
"nmu": "Maidu Timur Laut",
"nmv": "Ngamini",
"nmw": "Nimoa",
"nmx": "Nama",
"nmy": "Namuyi",
"nmz": "Nawdm",
"nn": "Norwegian Nynorsk",
"nna": "Nyangumarta",
"nnb": "Nande",
"nnc": "Nancere",
"nnd": "Ambae Barat",
"nne": "Ngandyera",
"nnf": "Ngaing",
"nng": "Naga Maring",
"nnh": "Ngiemboon",
"nni": "Nuaulu Utara",
"nnj": "Nyangatom",
"nnk": "Nankina",
"nnl": "Naga Rengma Utara",
"nnm": "Namia",
"nnn": "Ngete",
"nnp": "Wancho",
"nnq": "Ngindo",
"nnr": "Narungga",
"nnt": "Nanticoke",
"nnu": "Dwang",
"nnv": "Nukunu",
"nnw": "Nuni Selatan",
"nnx": "Ngong",
"nny": "Nyangga",
"nnz": "Nda'nda'",
"no": "Norwegian",
"noa": "Woun Meu",
"noc": "Nuk",
"nod": "Thai Utara",
"noe": "Nimadi",
"nof": "Nomane",
"nog": "Nogai",
"noh": "Nomu",
"noi": "Noiri",
"noj": "Nonuya",
"nok": "Nooksack",
"nol": "Nomlaki",
"non": "Norse Kuno",
"nop": "Numanggang",
"noq": "Ngongo",
"nos": "Nisu Timur",
"not": "Nomatsiguenga",
"nou": "Ewage-Notu",
"nov": "Novial",
"now": "Nyambo",
"noy": "Noy",
"noz": "Nayi",
"npa": "Nar Phu",
"npb": "Nupbikha",
"npg": "Ponyo",
"nph": "Phom",
"npl": "Nahuatl Puebla Tenggara",
"npn": "Mondropolon",
"npo": "Naga Pochuri",
"nps": "Nipsan",
"npu": "Naga Puimei",
"npx": "Noipä",
"npy": "Napu",
"nqg": "Ede Nago",
"nqk": "Kura Ede Nago",
"nql": "Ngendelengo",
"nqm": "Ndom",
"nqn": "Nen",
"nqo": "N'Ko",
"nqq": "Naga Kyan-Karyaw",
"nqy": "Akyaung Ari",
"nr": "Southern Ndebele",
"nra": "Ngom",
"nrb": "Nara",
"nrc": "Noric",
"nre": "Naga Rengma Selatan",
"nrf": "Norman",
"nrg": "Narango",
"nri": "Naga Chokri",
"nrk": "Ngarla",
"nrl": "Ngarluma",
"nrm": "Narom",
"nrn": "Norn",
"nrp": "Picene Utara",
"nrr": "Norra",
"nrt": "Kalapuya Utara",
"nru": "Narua",
"nrx": "Ngurmbur",
"nrz": "Lala (New Guinea)",
"nsa": "Naga Sangtam",
"nsb": "Nossob Bawah",
"nsc": "Nshi",
"nsd": "Nisu Selatan",
"nse": "Nsenga",
"nsf": "Nisu Barat Laut",
"nsg": "Ngasa",
"nsh": "Ngoshie",
"nsi": "Bahasa Isyarat Nigeria",
"nsk": "Naskapi",
"nsl": "Bahasa Isyarat Norway",
"nsm": "Sema",
"nsn": "Nehan",
"nso": "Sotho Utara",
"nsp": "Bahasa Isyarat Nepal",
"nsq": "Miwok Sierra Utara",
"nsr": "Bahasa Isyarat Maritim",
"nss": "Nali",
"nst": "Tangsa",
"nsu": "Nahuatl Sierra Negra",
"nsw": "Navut",
"nsx": "Nsongo",
"nsy": "Nasal",
"nsz": "Nisenan",
"ntd": "Tidung Utara",
"ntg": "Ngantangarra",
"nti": "Natioro",
"ntj": "Ngaanyatjarra",
"ntk": "Ikoma",
"ntm": "Nateni",
"nto": "Ntomba",
"ntp": "Tepehuan Utara",
"ntr": "Delo",
"nts": "Natagaimas",
"ntu": "Natügu",
"ntw": "Nottoway",
"ntx": "Somra",
"nty": "Mantsi",
"nua": "Yuanga",
"nub-har": "Haraza",
"nub-pro": "Proto-Nubia",
"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": "Nguôn",
"nup": "Nupe",
"nuq": "Nukumanu",
"nur": "Nuguria",
"nus": "Nuer",
"nut": "Nùng",
"nuu": "Ngbundu",
"nuv": "Nuni Utara",
"nuw": "Nguluwan",
"nux": "Mehek",
"nuy": "Nunggubuyu",
"nuz": "Nahuatl Tlamacazapa",
"nv": "Navajo",
"nvh": "Nasarian",
"nvm": "Namiae",
"nvo": "Nyokon",
"nwa": "Nawathinehena",
"nwb": "Nyabwa",
"nwc": "Newar Klasik",
"nwe": "Ngwe",
"nwg": "Ngaiawang",
"nwi": "Tanna Barat Daya",
"nwm": "Nyamusa-Molo",
"nwo": "Nauo",
"nwr": "Nawaru",
"nwx": "Newar Pertengahan",
"nwy": "Nottoway-Meherrin",
"nxa": "Nauete",
"nxd": "Ngando (Congo)",
"nxe": "Nage",
"nxg": "Ngadha",
"nxi": "Nindi",
"nxl": "Nuaulu Selatan",
"nxm": "Numidia",
"nxn": "Ngawun",
"nxo": "Ndambomo",
"nxq": "Naxi",
"nxr": "Ninggerum",
"nxx": "Nafri",
"ny": "Chichewa",
"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": "Nyaw",
"nyx": "Nganyaywana",
"nyy": "Nyakyusa",
"nza": "Mbembe Tigon",
"nzb": "Njebi",
"nzd": "Nzadi",
"nzi": "Nzima",
"nzk": "Nzakara",
"nzm": "Naga Zeme",
"nzs": "Bahasa Isyarat New Zealand",
"nzu": "Teke Tengah",
"nzy": "Nzakambay",
"nzz": "Dogon Nanga Dama",
"oaa": "Orok",
"oac": "Oroch",
"oav": "Avar Kuno",
"obi": "Obispeño",
"obk": "Bontoc Selatan",
"obl": "Oblo",
"obm": "Moabite",
"obo": "Obo Manobo",
"obr": "Burma Kuno",
"obt": "Breton Kuno",
"obu": "Obulom",
"oc": "Occitan",
"oca": "Ocaina",
"och": "Cina Kuno",
"oco": "Cornwall Kuno",
"ocu": "Tlahuica",
"oda": "Odut",
"odk": "Od",
"odt": "Belanda Kuno",
"odu": "Odual",
"ofo": "Ofo",
"ofs": "Frisia Kuno",
"ofu": "Efutop",
"ogb": "Ogbia",
"ogc": "Ogbah",
"oge": "Georgia Kuno",
"ogg": "Ogbogolo",
"ogo": "Khana",
"ogu": "Ogbronuagum",
"ohu": "Hungary Kuno",
"oia": "Oirata",
"oin": "One Inebu",
"oj": "Ojibwe",
"ojb": "Ojibwa Barat Laut",
"ojc": "Ojibwa Tengah",
"ojg": "Ojibwa Timur",
"ojp": "Jepun Kuno",
"ojs": "Severn Ojibwa",
"ojv": "Jawa Ontong",
"ojw": "Ojibwa Barat",
"oka": "Okanagan",
"okb": "Okobo",
"okd": "Okodia",
"oke": "Okpe (Edo Barat Daya)",
"okg": "Kok-Paponk",
"okh": "Koresh-e Rostam",
"oki": "Okiek",
"okj": "Oko-Juwoi",
"okk": "Kwamtim One",
"okl": "Bahasa Isyarat Kentish Kuno",
"okm": "Korea Pertengahan",
"okn": "Oki-No-Erabu",
"oko": "Korea Kuno",
"okr": "Kirike",
"oks": "Oko-Eni-Osayen",
"oku": "Oku",
"okv": "Orokaiva",
"okx": "Okpe (Edo Barat Laut)",
"okz": "Khmer Kuno",
"old": "Mochi",
"ole": "Olekha",
"olm": "Oloma",
"olo": "Livvi",
"olr": "Olrat",
"olt": "Lithuania Kuno",
"olu": "Kuvale",
"om": "Oromo",
"oma": "Omaha-Ponca",
"omb": "Omba",
"omc": "Mochica",
"omg": "Omagua",
"omi": "Omi",
"omk": "Omok",
"oml": "Ombo",
"omn": "Minoan",
"omo": "Utarmbung",
"omp": "Manipur Kuno",
"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": "Chatino San Juan Quiahije",
"omq-tel": "Mixtec Teposcolula",
"omq-teo": "Chatino Teojomulco",
"omq-tri-pro": "Proto-Triqui",
"omq-zap-pro": "Proto-Zapotecan",
"omq-zpc-pro": "Proto-Zapotec",
"omr": "Marathi Kuno",
"omt": "Omotik",
"omu": "Omurano",
"omv-aro-pro": "Proto-Aroid",
"omv-diz-pro": "Proto-Dizoid",
"omv-pro": "Proto-Omotic",
"omw": "Tairora Selatan",
"omx": "Mon Kuno",
"ona": "Selk'nam",
"onb": "Lingao",
"one": "Oneida",
"ong": "Olo",
"oni": "Onin",
"onj": "Onjob",
"onk": "Kabore One",
"onn": "Onobasulu",
"ono": "Onondaga",
"onp": "Sartang",
"onr": "One Utara",
"ons": "Ono",
"ont": "Ontenu",
"onu": "Unua",
"onw": "Nubia Kuno",
"onx": "Pidgin Onin",
"ood": "O'odham",
"oog": "Ong",
"oon": "Önge",
"oor": "Oorlams",
"oos": "Ossetia Kuno",
"opa": "Okpamheri",
"opk": "Kopkaka",
"opm": "Oksapmin",
"opo": "Opao",
"opt": "Opata",
"opy": "Ofayé",
"or": "Odia",
"ora": "Oroha",
"ore": "Orejón",
"org": "Oring",
"orh": "Oroqen",
"oro": "Orokolo",
"orr": "Oruma",
"ors": "Orang Seletar",
"ort": "Oriya Adivasi",
"oru": "Ormuri",
"orv": "Slav Timur Kuno",
"orw": "Oro Win",
"orx": "Oro",
"orz": "Ormu",
"os": "Ossetian",
"osa": "Osage",
"osc": "Osci",
"osi": "Osing",
"osn": "Sunda Kuno",
"oso": "Ososo",
"osp": "Sepanyol Kuno",
"ost": "Osatu",
"osu": "One Selatan",
"osx": "Saxon Kuno",
"ota": "Turki Usmaniyah",
"otb": "Tibet Kuno",
"otd": "Ot Danum",
"ote": "Otomi Mezquital",
"oti": "Oti",
"otk": "Turk Kuno",
"otl": "Otomi Tilapa",
"otm": "Otomi Tanah Tinggi Timur",
"otn": "Otomi Tenango",
"oto-otm-pro": "Proto-Otomi",
"oto-pro": "Proto-Otomian",
"otq": "Otomi Querétaro",
"otr": "Otoro",
"ots": "Otomi Estado de México",
"ott": "Otomi Temoaya",
"otu": "Otuke",
"otw": "Ottawa",
"otx": "Otomi Texcatepec",
"oty": "Tamil Kuno",
"otz": "Otomi Ixtenco",
"oub": "Glio-Oubi",
"oue": "Oune",
"oui": "Uyghur Kuno",
"oum": "Ouma",
"ovd": "Älvdalen",
"owi": "Owiniga",
"owl": "Wales Kuno",
"oyb": "Oy",
"oyd": "Oyda",
"oym": "Wayampi",
"oyy": "Oya'oya",
"ozm": "Koonzime",
"pa": "Punjabi",
"paa-kmn": "Kómnzo",
"paa-kwn": "Kuwani",
"paa-lei": "Leitre",
"paa-nha-pro": "Proto-Halmahera Utara",
"paa-nun": "Nungon",
"pab": "Pareci",
"pac": "Pacoh",
"pad": "Paumarí",
"pae": "Pagibete",
"paf": "Paranawát",
"pag": "Pangasinan",
"pah": "Tenharim",
"pai": "Pe",
"pak": "Parakanã",
"pal": "Parsi Pertengahan",
"pam": "Kapampangan",
"pao": "Paiute Utara",
"pap": "Papiamentu",
"paq": "Parya",
"par": "Panamint",
"pas": "Papasena",
"pat": "Papitalai",
"pau": "Palau",
"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": "Pame Tengah",
"pbv": "Pnar",
"pby": "Pyu",
"pca": "Santa Inés Ahuatempan Popoloca",
"pcb": "Pear",
"pcc": "Bouyei",
"pcd": "Picard",
"pce": "Ruching Palaung",
"pcf": "Paliyan",
"pcg": "Paniya",
"pch": "Pardhan",
"pci": "Duruwa",
"pcj": "Parenga",
"pck": "Paite",
"pcl": "Pardhi",
"pcm": "Pijin Nigeria",
"pcn": "Piti",
"pcp": "Pacahuara",
"pcw": "Pyapun",
"pda": "Anam",
"pdc": "Jerman Pennsylvania",
"pdi": "Pa Di",
"pdn": "Fedan",
"pdo": "Padoe",
"pdt": "Plautdietsch",
"pdu": "Kayan",
"pea": "Peranakan Indonesian",
"peb": "Pomo Timur",
"ped": "Mala (New Guinea)",
"pee": "Taje",
"pef": "Pomo Timur Laut",
"peg": "Pengo",
"peh": "Bonan",
"pei": "Chichimeca-Jonaz",
"pej": "Pomo Utara",
"pek": "Penchal",
"pel": "Pekal",
"pem": "Phende",
"peo": "Parsi Kuno",
"pep": "Kunja",
"peq": "Pomo Selatan",
"pev": "Pémono",
"pex": "Petats",
"pey": "Petjo",
"pez": "Penan Timur",
"pfa": "Pááfang",
"pfe": "Peere",
"pga": "Arab Juba",
"pgd": "Gandhari",
"pgg": "Pangwali",
"pgi": "Pagi",
"pgk": "Rerep",
"pgl": "Primitive Irish",
"pgn": "Paelignian",
"pgs": "Pangseng",
"pgu": "Pagu",
"pgz": "Bahasa Isyarat Papua New Guinea",
"pha": "Pa-Hng",
"phd": "Phudagi",
"phg": "Phuong",
"phh": "Phukha",
"phi-din": "Agta Dinapigue",
"phi-kal-pro": "Proto-Kalamian",
"phi-nag": "Agta Nagtipunan",
"phi-pro": "Proto-Filipina",
"phk": "Phake",
"phl": "Phalura",
"phm": "Phimbi",
"phn": "Phoenicia",
"pho": "Phunoi",
"phq": "Phana'",
"phr": "Pahari-Potwari",
"pht": "Phu Thai",
"phu": "Phuan",
"phv": "Pahlavani",
"phw": "Phangduwali",
"pi": "Pali",
"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": "Baekje",
"pkg": "Pak-Tong",
"pkh": "Pankhu",
"pkn": "Pakanha",
"pko": "Pökoot",
"pkp": "Pukapukan",
"pkr": "Attapady Kurumba",
"pks": "Bahasa Isyarat Pakistan",
"pkt": "Maleng",
"pku": "Paku",
"pl": "Polish",
"pla": "Miani",
"plb": "Polonombauk",
"plc": "Central Palawano",
"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": "Palawano Barat Daya",
"plw": "Palawano Brooke's Point",
"ply": "Bolyu",
"plz": "Paluan",
"pma": "Paama",
"pmb": "Pambia",
"pmd": "Pallanganmiddang",
"pme": "Pwaamei",
"pmf": "Pamona",
"pmi": "Pumi Utara",
"pmj": "Pumi Selatan",
"pmk": "Pamlico",
"pml": "Sabir",
"pmm": "Pol",
"pmn": "Pam",
"pmo": "Pom",
"pmq": "Pame Utara",
"pmr": "Paynamar",
"pms": "Piemonte",
"pmt": "Tuamotuan",
"pmu": "Mirpur Panjabi",
"pmw": "Plains Miwok",
"pmx": "Poumei Naga",
"pmy": "Papuan Malay",
"pmz": "Southern Pame",
"pna": "Punan Bah-Biau",
"pnb": "Punjabi Barat",
"pnc": "Pannei",
"pnd": "Mpinda",
"pne": "Penan Barat",
"png": "Pongu",
"pnh": "Penrhyn",
"pni": "Aoheng",
"pnj": "Pinjarup",
"pnk": "Paunaca",
"pnl": "Paleni",
"pnm": "Punan Batu",
"pnn": "Pinai-Hagahai",
"pno": "Panobo",
"pnp": "Pancana",
"pnq": "Pana (Afrika Barat)",
"pnr": "Panim",
"pns": "Ponosakan",
"pnt": "Yunani Pontus",
"pnu": "Jiongnai Bunu",
"pnv": "Pinigura",
"pnw": "Panyjima",
"pnx": "Phong-Kniang",
"pny": "Pinyin",
"pnz": "Pana (Afrika Tengah)",
"poc": "Poqomam",
"poe": "San Juan Atzingo Popoloca",
"pof": "Poke",
"pog": "Potiguára",
"poh": "Poqomchi'",
"poi": "Highland Popoluca",
"pok": "Pokangá",
"pom": "Pomo Tenggara",
"pon": "Pohnpei",
"poo": "Pomo Tengah",
"pop": "Pwapwa",
"poq": "Texistepec Popoluca",
"pos": "Sayula Popoluca",
"pot": "Potawatomi",
"pov": "Kreol Guinea-Bissau",
"pow": "San Felipe Otlaltepec Popoloca",
"pox": "Polabia",
"poy": "Pogolo",
"poz-abi": "Abai",
"poz-bal": "Baliledo",
"poz-btk-pro": "Proto-Bungku-Tolaki",
"poz-cet-pro": "Proto-Melayu-Polenesia Tengah-Timur",
"poz-hce-pro": "Proto-Halmahera-Cenderawasih",
"poz-lgx-pro": "Proto-Lampungik",
"poz-mcm-pro": "Proto-Melayu-Chamic",
"poz-mic-pro": "Proto-Mikronesia",
"poz-mly-pro": "Proto-Melayik",
"poz-msa-pro": "Proto-Melayu-Sumbawa",
"poz-nes": "Nese",
"poz-oce-pro": "Proto-Oceania",
"poz-pcc-pro": "Proto-Pasifik Tengah",
"poz-pep-pro": "Proto-Polinesia Timur",
"poz-pnp-pro": "Proto-Polinesia Nukleus",
"poz-pol-pro": "Proto-Polinesia",
"poz-pro": "Proto-Melayu-Polenesia",
"poz-sml": "Melayu Sarawak",
"poz-ssw-pro": "Proto-Sulawesi Selatan",
"poz-swa-pro": "Proto-Sarawak Utara",
"poz-ter": "Melayu Terengganu",
"ppa": "Pao",
"ppe": "Papi",
"ppi": "Paipai",
"ppk": "Uma",
"ppl": "Pipil",
"ppm": "Papuma",
"ppn": "Papapana",
"ppo": "Folopa",
"ppq": "Pei",
"pps": "San Luís Temalacayuca Popoloca",
"ppt": "Pa",
"ppu": "Papora",
"pqa": "Pa'a",
"pqe-pro": "Proto-Melayu-Polenesia Timur",
"pqm": "Malecite-Passamaquoddy",
"pra": "Prakrit",
"pra-niy": "Prakrit Niya",
"prc": "Parachi",
"pre": "Principe",
"prf": "Paranan",
"prg": "Prusia Kuno",
"prh": "Porohanon",
"pri": "Paicî",
"prk": "Parauk",
"prl": "Bahasa Isyarat Peru",
"prm": "Kibiri",
"prn": "Prasuni",
"pro": "Occitan Kuno",
"prq": "Ashéninka Perené",
"prr": "Puri",
"prt": "Phai",
"pru": "Puragi",
"prw": "Parawen",
"prx": "Purik",
"prz": "Bahasa Isyarat Providencia",
"ps": "Pashto",
"psa": "Asue Awyu",
"psc": "Bahasa Isyarat Parsi",
"psd": "Plains Indian Sign Language",
"pse": "Melayu Barisan Selatan",
"psg": "Bahasa Isyarat Pulau Pinang",
"psh": "Pashayi Barat Daya",
"psi": "Pashayi Tenggara",
"psl": "Bahasa Isyarat Puerto Rico",
"psm": "Pauserna",
"psn": "Panasuan",
"pso": "Bahasa Isyarat Poland",
"psp": "Bahasa Isyarat Filipina",
"psq": "Pasi",
"psr": "Bahasa Isyarat Portugis",
"pss": "Kaulong",
"psw": "Port Sandwich",
"psy": "Piscataway",
"pt": "Portuguese",
"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": "Paiwan",
"pwo": "Pwo Barat",
"pwr": "Powari",
"pww": "Pwo Utara",
"pxm": "Quetzaltepec Mixe",
"pye": "Pye Krumen",
"pym": "Fyam",
"pyn": "Poyanáwa",
"pys": "Bahasa Isyarat Paraguay",
"pyu": "Puyuma",
"pyx": "Tircul",
"pyy": "Pyen",
"pzh": "Pazeh",
"pzn": "Para Naga",
"qfa-adm-pro": "Proto-Andaman Besar",
"qfa-bet-pro": "Proto-Be-Tai",
"qfa-cka-pro": "Proto-Chukotko-Kamchatka",
"qfa-hur-pro": "Proto-Hurro-Urartia",
"qfa-kad-pro": "Proto-Kadu",
"qfa-kms-pro": "Proto-Kam-Sui",
"qfa-kor-pro": "Proto-Korea",
"qfa-kra-pro": "Proto-Kra",
"qfa-lic-pro": "Proto-Hlai",
"qfa-onb-pro": "Proto-Be",
"qfa-ong-pro": "Proto-Onga",
"qfa-tak-pro": "Proto-Kra-Dai",
"qfa-yen-pro": "Proto-Yenisei",
"qfa-yuk-pro": "Proto-Yukaghir",
"qu": "Quechua",
"qua": "Quapaw",
"quc": "K'iche'",
"qui": "Quileute",
"qum": "Sipakapense",
"qun": "Quinault",
"quq": "Quinqui",
"quv": "Sacapulteco",
"qvy": "Queyu",
"qwc": "Quechua Klasik",
"qwe-kch": "Kichwa",
"qwe-pro": "Proto-Quechua",
"qwm": "Kipchak",
"qwt": "Kwalhioqua-Tlatskanai",
"qxs": "Southern Qiang",
"qya": "Quenya",
"qyp": "Quiripi",
"raa": "Dungmali",
"rab": "Chamling",
"rac": "Rasawa",
"rad": "Rade",
"raf": "Meohang Barat",
"rag": "Logooli",
"rah": "Rabha",
"rai": "Ramoaaina",
"raj": "Rajasthan",
"rak": "Tulu-Bohuai",
"ral": "Ralte",
"ram": "Canela",
"ran": "Riantana",
"rao": "Rao",
"rap": "Rapa Nui",
"raq": "Saam",
"rar": "Rarotonga",
"ras": "Tegali",
"rat": "Razajerdi",
"rau": "Raute",
"rav": "Sampang",
"raw": "Rawang",
"rax": "Rang",
"ray": "Rapa",
"raz": "Rahambuu",
"rbb": "Rumai Palaung",
"rbk": "Bontoc Utara",
"rbl": "Bikol Miraya",
"rcf": "Perancis Kreol Réunion",
"rdb": "Rudbari",
"rea": "Rerau",
"reb": "Rembong",
"ree": "Kayan Rejang",
"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": "Yunani Romani",
"rgk": "Rangkas",
"rgn": "Romagnol",
"rgr": "Resígaro",
"rgs": "Roglai Selatan",
"rgu": "Ringgou",
"rhg": "Rohingya",
"rhp": "Yahang",
"ria": "Reang",
"rif": "Tarifit",
"ril": "Riang",
"rim": "Nyaturu",
"rin": "Nungu",
"rir": "Ribun",
"rit": "Ritarungo",
"riu": "Riung",
"rjg": "Rajong",
"rji": "Raji",
"rjs": "Rajbanshi",
"rka": "Kraol",
"rkb": "Rikbaktsa",
"rkh": "Rakahanga-Manihiki",
"rki": "Rakhine",
"rkm": "Marka",
"rkt": "Kamta",
"rkw": "Arakwal",
"rm": "Romansh",
"rma": "Rama",
"rmb": "Rembarunga",
"rmc": "Romani Carpathia",
"rmd": "Denmark Pengembara",
"rme": "Angloromani",
"rmf": "Romani Finland Kalo",
"rmg": "Norway Pengembara",
"rmh": "Murkim",
"rmi": "Lomavren",
"rmk": "Romkun",
"rml": "Romani Baltik",
"rmm": "Roma",
"rmn": "Romani Balkan",
"rmo": "Romani Sinte",
"rmp": "Rempi",
"rmq": "Caló",
"rms": "Bahasa Isyarat Romania",
"rmt": "Domari",
"rmu": "Tavringer Romani",
"rmv": "Romanova",
"rmw": "Romani Wales",
"rmx": "Romam",
"rmy": "Romani Vlax",
"rmz": "Marma",
"rnd": "Ruwund",
"rng": "Ronga",
"rnl": "Ranglong",
"rnn": "Roon",
"rnp": "Rongpo",
"rnw": "Rungwa",
"ro": "Romanian",
"roa-ang": "Angevin",
"roa-bbn": "Bourbonnais-Berrichon",
"roa-brg": "Bourguignon",
"roa-can": "Cantabrian",
"roa-cha": "Champenois",
"roa-fcm": "Franc-Comtois",
"roa-gal": "Gallo",
"roa-gib": "Gallo-Itali Basilicata",
"roa-gis": "Gallo-Itali Sicily",
"roa-leo": "Leonese",
"roa-lor": "Lorrain",
"roa-oca": "Catalan Kuno",
"roa-ole": "Leonese Kuno",
"roa-ona": "Navarro-Aragon Kuno",
"roa-opt": "Galicia-Portugis Kuno",
"roa-orl": "Orléanais",
"roa-poi": "Poitevin-Saintongeais",
"roa-tar": "Tarantino",
"rob": "Tae'",
"roc": "Roglai Cacgia",
"rod": "Rogo",
"roe": "Ronji",
"rof": "Rombo",
"rog": "Roglai Utara",
"rol": "Romblomanon",
"rom": "Romani",
"roo": "Rotokas",
"rop": "Kriol",
"ror": "Rongga",
"rou": "Runga",
"row": "Dela-Oenale",
"rpn": "Repanbitip",
"rpt": "Rapting",
"rri": "Ririo",
"rro": "Roro",
"rrt": "Arritinngithigh",
"rsb": "Romano-Serbia",
"rsk": "Rusyn Pannonia",
"rsl": "Bahasa Isyarat Rusia",
"rsm": "Bahasa Isyarat Miriwoong",
"rtc": "Rungtu",
"rth": "Ratahan",
"rtm": "Rotuma",
"rtw": "Rathawi",
"ru": "Russian",
"rub": "Gungu",
"ruc": "Ruuli",
"rue": "Rusyn",
"ruf": "Luguru",
"rug": "Roviana",
"ruh": "Ruga",
"rui": "Rufiji",
"ruk": "Che",
"ruo": "Istro-Romania",
"rup": "Aromania",
"ruq": "Megleno-Romania",
"rut": "Rutul",
"ruu": "Lanas Lobu",
"ruy": "Mala (Nigeria)",
"ruz": "Ruma",
"rw": "Rwanda-Rundi",
"rwa": "Rawo",
"rwk": "Rwa",
"rwm": "Amba",
"rwo": "Rawa",
"rxd": "Ngardi",
"rxw": "Karuwali",
"ryn": "Amami Ōshima Utara",
"rys": "Yaeyama",
"ryu": "Okinawa",
"rzh": "Razihi",
"sa": "Sanskrit",
"saa": "Saba",
"sab": "Buglere",
"sac": "Fox",
"sad": "Sandawe",
"sae": "Sabanê",
"saf": "Safaliba",
"sah": "Yakut",
"sai-all": "Allentiac",
"sai-and": "Andoquero",
"sai-ayo": "Ayomán",
"sai-bae": "Baenan",
"sai-bag": "Bagua",
"sai-bet": "Betoi",
"sai-bor-pro": "Proto-Bora",
"sai-cac": "Cacán",
"sai-caq": "Caranqui",
"sai-car-pro": "Proto-Carib",
"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-Jê Tengah",
"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-Jê Utara",
"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-Jê Selatan",
"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 (Amerika Selatan)",
"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": "Santal",
"sau": "Saleman",
"sav": "Saafi-Saafi",
"saw": "Sawi",
"sax": "Sa",
"say": "Saya",
"saz": "Saurashtra",
"sba": "Ngambay",
"sbb": "Simbo",
"sbc": "Gele'",
"sbd": "Samo Selatan",
"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": "Sardinian",
"scb": "Chut",
"sce": "Dongxiang",
"scf": "Perancis Kreol San Miguel",
"scg": "Sanggau",
"sch": "Sakachep",
"sci": "Melayu Sri Lanka",
"sck": "Sadri",
"scl": "Shina",
"scn": "Sicilia",
"sco": "Scots",
"scp": "Yolmo",
"scq": "Sa'och",
"scs": "Slavey Utara",
"scu": "Shumcho",
"scv": "Sheni",
"scw": "Sha",
"scx": "Sicel",
"sd": "Sindhi",
"sda": "Toraja-Sa'dan",
"sdb": "Shabak",
"sdc": "Sassari",
"sde": "Surubu",
"sdf": "Sarli",
"sdg": "Savi",
"sdh": "Kurdi Selatan",
"sdj": "Suundi",
"sdk": "Sos Kundi",
"sdl": "Saudi Arabian Sign Language",
"sdm": "Semandang",
"sdn": "Gallura",
"sdo": "Bidayuh Bukar-Sadong",
"sdp": "Sherdukpen",
"sdr": "Oraon Sadri",
"sds": "Barbar Tunisia",
"sdu": "Sarudu",
"sdv-daj-pro": "Proto-Daju",
"sdv-eje-pro": "Proto-Jebel Timur",
"sdv-nil-pro": "Proto-Nilotik",
"sdv-nyi-pro": "Proto-Nyima",
"sdv-tmn-pro": "Proto-Taman",
"sdx": "Melanau Sibu",
"se": "Northern Sami",
"sea": "Semai",
"sec": "Sechelt",
"sed": "Sedang",
"see": "Seneca",
"sef": "Cebaara Senoufo",
"seg": "Segeju",
"seh": "Sena",
"sei": "Seri",
"sej": "Sene",
"sek": "Sekani",
"sel-nor": "Selkup Utara",
"sel-pro": "Proto-Selkup",
"sel-sou": "Selkup Selatan",
"sem-amm": "Ammon",
"sem-amo": "Amor",
"sem-cha": "Chaha",
"sem-dad": "Dadan",
"sem-dum": "Dumait",
"sem-has": "Hasait",
"sem-his": "Hisma",
"sem-mhr": "Muher",
"sem-pro": "Proto-Semitik",
"sem-saf": "Safait",
"sem-sam": "Samal",
"sem-srb": "Arab Selatan Kuno",
"sem-tay": "Tayman",
"sem-tha": "Thamud",
"sem-wes-pro": "Proto-Semitik Barat",
"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": "Chin Senthang",
"sfb": "French Belgian Sign Language",
"sfm": "Small Flowery Miao",
"sfs": "Bahasa Isyarat Afrika Selatan",
"sfw": "Sehwi",
"sg": "Sango",
"sga": "Ireland Kuno",
"sgb": "Mag-Anchi Ayta",
"sgc": "Kipsigis",
"sgd": "Surigaonon",
"sge": "Segai",
"sgg": "Swiss-German Sign Language",
"sgh": "Shughni",
"sgi": "Suga",
"sgk": "Sangkong",
"sgm": "Singa",
"sgp": "Singpho",
"sgr": "Sangisari",
"sgs": "Samogitia",
"sgt": "Brokpake",
"sgu": "Salas",
"sgw": "Sebat Bet Gurage",
"sgx": "Sierra Leone Sign Language",
"sgy": "Sanglechi",
"sgz": "Sursurunga",
"sh": "Serbo-Croatian",
"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": "Shan",
"sho": "Shanga",
"shp": "Shipibo-Conibo",
"shq": "Sala",
"shr": "Shi",
"shs": "Shuswap",
"sht": "Shasta",
"shu": "Arab Chad",
"shv": "Shehri",
"shw": "Shwai",
"shx": "She",
"shy": "Tachawit",
"shz": "Syenara Senoufo",
"si": "Sinhalese",
"sia": "Sami Akkala",
"sib": "Sebop",
"sid": "Sidamo",
"sie": "Simaa",
"sif": "Siamou",
"sig": "Paasaal",
"sih": "Zire",
"sii": "Shom Peng",
"sij": "Numbami",
"sik": "Sikiana",
"sil": "Tumulung Sisaala",
"sim": "Seim",
"sio-pro": "Proto-Siouan",
"sip": "Sikkim",
"siq": "Sonia",
"sir": "Siri",
"sis": "Siuslaw",
"sit-aao-pro": "Proto-Naga Tengah",
"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-Ersu",
"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-Kho-Bwa Barat",
"sit-kon-pro": "Proto-Naga Utara",
"sit-liz": "Lizu",
"sit-lnj": "Longjia",
"sit-lrn": "Luren",
"sit-luu-pro": "Proto-Luish",
"sit-nas-pro": "Proto-Naish",
"sit-prn": "Puiron",
"sit-pro": "Proto-Sino-Tibet",
"sit-sit": "Situ",
"sit-tam-pro": "Proto-Tamang",
"sit-tan-pro": "Proto-Tani",
"sit-tgm": "Tangam",
"sit-tng-pro": "Proto-Tangkhul",
"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",
"sjd": "Sami Kildin",
"sje": "Sami Pite",
"sjg": "Assangori",
"sjk": "Sami Kemi",
"sjl": "Miji",
"sjm": "Mapun",
"sjn": "Sindarin",
"sjo": "Xibe",
"sjp": "Surjapuri",
"sjr": "Siar-Lak",
"sjs": "Senhaja De Srair",
"sjt": "Sami Ter",
"sju": "Sami Ume",
"sjw": "Shawnee",
"sk": "Slovak",
"ska": "Skagit",
"skb": "Saek",
"skc": "Ma Manda",
"skd": "Miwok Sierra Selatan",
"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": "Maia",
"skt": "Sakata",
"sku": "Sakao",
"skv": "Skou",
"skw": "Belanda Kreol Skepi",
"skx": "Seko Padang",
"sky": "Sikaiana",
"skz": "Sekar",
"sl": "Slovene",
"sla-pro": "Proto-Slav",
"slc": "Saliba (Colombia)",
"sld": "Sissala",
"sle": "Sholaga",
"slf": "Swiss-Italian Sign Language",
"slg": "Selungai Murut",
"slh": "Salish Puget Sound Selatan",
"slj": "Salumá",
"sll": "Salt-Yui",
"slm": "Pangutaran Sama",
"sln": "Salinan",
"slp": "Lamaholot",
"slq": "Salchuq",
"slr": "Salar",
"sls": "Singapore Sign Language",
"slt": "Sila",
"slu": "Selaru",
"slw": "Sialum",
"slx": "Salampasu",
"sly": "Selayar",
"slz": "Ma'ya",
"sm": "Samoan",
"sma": "Sami Selatan",
"smb": "Simbari",
"smc": "Som",
"smd": "Sama",
"smf": "Auwe",
"smg": "Simbali",
"smh": "Samei",
"smi-pro": "Proto-Sami",
"smj": "Sami Lule",
"smk": "Bolinao",
"sml": "Bajau Laut",
"smm": "Musasa",
"smn": "Sami Inari",
"smp": "Ibrani Samaria",
"smq": "Samo",
"smr": "Simeulue",
"sms": "Sami Skolt",
"smt": "Simte",
"smu": "Somray",
"smv": "Samvedi",
"smw": "Sumbawa",
"smx": "Samba",
"smy": "Semnani",
"smz": "Simeku",
"sn": "Shona",
"snb": "Sebuyau",
"snc": "Sinaugoro",
"sne": "Bidayuh Bau",
"snf": "Noon",
"sng": "Sanga (Congo)",
"sni": "Sensi",
"snj": "Riverain Sango",
"snk": "Soninke",
"snl": "Sangil",
"snm": "Ma'di Selatan",
"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": "Somali",
"soa": "Thai Song",
"sob": "Sobei",
"soc": "Soko",
"sod": "Songoora",
"soe": "Songomeno",
"sog": "Sogdia",
"soh": "Aka (Sudan)",
"soi": "Sonha",
"sok": "Sokoro",
"sol": "Solos",
"son-pro": "Proto-Songhai",
"soo": "Nsong",
"sop": "Songe",
"soq": "Kanasi",
"sor": "Somrai",
"sos": "Seenku",
"sou": "Thai Selatan",
"sov": "Sonsorol",
"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": "Picenum Selatan",
"spy": "Sabaot",
"sq": "Albanian",
"sqa": "Shama-Sambuga",
"sqh": "Shau",
"sqj-pro": "Proto-Albania",
"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": "Murut Serudung",
"srl": "Isirawa",
"srm": "Saramaccan",
"srn": "Seranan",
"srq": "Sirionó",
"srr": "Serer",
"srs": "Tsuut'ina",
"srt": "Sauri",
"sru": "Suruí",
"srv": "Waray Sorsogon",
"srw": "Serua",
"srx": "Sirmauri",
"sry": "Sera",
"srz": "Shahmirzadi",
"ss": "Swazi",
"ssa-klk-pro": "Proto-Kuliak",
"ssa-kom-pro": "Proto-Koma",
"ssa-pro": "Proto-Nilo-Sahara",
"ssb": "Bajau Pantai Timur",
"ssc": "Suba-Simbiti",
"ssd": "Siroi",
"sse": "Balangingi",
"ssf": "Thao",
"ssg": "Seimat",
"ssh": "Arab Syihuh",
"ssi": "Sansi",
"ssj": "Sausi",
"ssk": "Sunam",
"ssl": "Sisaala Barat",
"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": "Saho",
"ssz": "Sengseng",
"st": "Sotho",
"stb": "Subanen Utara",
"std": "Sentinel",
"ste": "Liana-Seti",
"stf": "Seta",
"stg": "Trieng",
"sth": "Shelta",
"sti": "Bulo Stieng",
"stj": "Matya Samo",
"stk": "Arammba",
"stm": "Setaman",
"stn": "Owa",
"sto": "Stoney",
"stp": "Tepehuan Tenggara",
"stq": "Frisia Saterland",
"str": "Saanich",
"sts": "Shumashti",
"stt": "Budeh Stieng",
"stu": "Samtao",
"stv": "Silt'e",
"stw": "Satawal",
"sty": "Tatar Siberia",
"su": "Sundanese",
"sua": "Sulka",
"sub": "Suku",
"suc": "Subanon Barat",
"sue": "Suena",
"sug": "Suganga",
"sui": "Suki",
"suk": "Sukuma",
"suq": "Suri",
"sur": "Mwaghavul",
"sus": "Susu",
"sut": "Subtiaba",
"suv": "Sulung",
"suw": "Sumbwa",
"sux": "Sumeria",
"suy": "Suyá",
"suz": "Sunwar",
"sv": "Swedish",
"sva": "Svan",
"svb": "Ulau-Suain",
"svc": "Inggeris Kreol Vincent",
"sve": "Serili",
"svk": "Slovakian Sign Language",
"svm": "Slavomolisano",
"svs": "Savosavo",
"svx": "Skalvian",
"sw": "Swahili",
"swb": "Comoros Maore",
"swf": "Sere",
"swg": "Swabia",
"swi": "Sui",
"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": "Kalapuya Selatan",
"sxl": "Selonia",
"sxm": "Samre",
"sxn": "Sangir",
"sxo": "Sorothaptic",
"sxr": "Saaroa",
"sxs": "Sasaru",
"sxw": "Saxwe Gbe",
"sya": "Siang",
"syb": "Subanen Tengah",
"syc": "Suryani Klasik",
"syd-pro": "Proto-Samoyed",
"syi": "Seki",
"syk": "Sukur",
"syl": "Sylhet",
"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": "Silesia",
"szn": "Sula",
"szp": "Suabo",
"szv": "Isubu",
"szw": "Sawai",
"szy": "Sakizaya",
"ta": "Tamil",
"taa": "Lower Tanana",
"tab": "Tabasaran",
"tac": "Lowland Tarahumara",
"tad": "Tause",
"tae": "Tariana",
"taf": "Tapirapé",
"tag": "Tagoi",
"tai-pro": "Proto-Tai",
"tai-swe-pro": "Proto-Tai Barat Daya",
"taj": "Tamang Timur",
"tak": "Tala",
"tal": "Tal",
"tan": "Tangale",
"tao": "Yami",
"tap": "Taabwa",
"tar": "Tarahumara Tengah",
"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": "Tairora Utara",
"tbh": "Thurawal",
"tbi": "Gaam",
"tbj": "Tiang",
"tbk": "Calamian Tagbanwa",
"tbl": "Tboli",
"tbm": "Tagbu",
"tbn": "Barro Negro Tunebo",
"tbo": "Tawala",
"tbp": "Taworta",
"tbq-bdg-pro": "Proto-Bodo-Garo",
"tbq-blg": "Bailang",
"tbq-brm-pro": "Proto-Burma",
"tbq-gkh": "Gokhy",
"tbq-kuk-pro": "Proto-Kuki-Chin",
"tbq-lal-pro": "Proto-Lalo",
"tbq-laz": "Laze",
"tbq-lob-pro": "Proto-Lolo-Burma",
"tbq-lol-pro": "Proto-Lolo",
"tbq-mil": "Milang",
"tbq-mor": "Moran",
"tbq-ngo": "Ngochang",
"tbr": "Tumtum",
"tbs": "Tanguat",
"tbt": "Kitembo",
"tbu": "Tubar",
"tbv": "Tobo",
"tbw": "Tagbanwa",
"tbx": "Kapin",
"tby": "Tabaru",
"tbz": "Ditammari",
"tca": "Ticuna",
"tcb": "Tanacross",
"tcc": "Datooga",
"tcd": "Tafi",
"tce": "Tutchone Selatan",
"tcf": "Tlapanec Malinaltepec",
"tcg": "Tamagario",
"tch": "Inggeris Kreol Turks dan Caicos",
"tci": "Wára",
"tck": "Tchitchege",
"tcl": "Taman (Myanmar)",
"tcm": "Tanahmerah",
"tco": "Taungyo",
"tcp": "Chin Tawr",
"tcq": "Kaiy",
"tcs": "Kreol Selat Torres",
"tct": "T'en",
"tcu": "Tarahumara Tenggara",
"tcw": "Tecpatlán Totonac",
"tcx": "Toda",
"tcy": "Tulu",
"tcz": "Chin Thado",
"tda": "Tagdal",
"tdb": "Panchpargania",
"tdc": "Emberá-Tadó",
"tdd": "Tai Nüa",
"tde": "Tiranige Diga Dogon",
"tdf": "Talieng",
"tdg": "Tamang Barat",
"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": "Telugu",
"tea": "Temiar",
"teb": "Tetete",
"tec": "Terik",
"ted": "Tepo Krumen",
"tee": "Tepehua Huehuetla",
"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": "Tetum",
"teu": "Soo",
"tev": "Teor",
"tew": "Tewa",
"tex": "Tennet",
"tey": "Tulishi",
"tez": "Tetserret",
"tfi": "Tofin Gbe",
"tfn": "Dena'ina",
"tfo": "Tefaro",
"tfr": "Teribe",
"tft": "Ternate",
"tg": "Tajik",
"tga": "Sagalla",
"tgb": "Tobilung",
"tgc": "Tigak",
"tgd": "Ciwogai",
"tge": "Tamang Gorkha Timur",
"tgf": "Chali",
"tgh": "Inggeris Kreol Tobago",
"tgi": "Lawunuia",
"tgn": "Tandaganon",
"tgo": "Sudest",
"tgp": "Tangoa",
"tgq": "Tring",
"tgr": "Tareng",
"tgs": "Nume",
"tgt": "Tagbanwa Tengah",
"tgu": "Tanggu",
"tgv": "Tingui-Boto",
"tgw": "Tagwana Senoufo",
"tgx": "Tagish",
"tgy": "Togoyo",
"th": "Thai",
"thc": "Tai Hang Tong",
"thd": "Kuuk Thaayorre",
"the": "Chitwania Tharu",
"thf": "Thangmi",
"thh": "Tarahumara Utara",
"thi": "Tai Long",
"thk": "Tharaka",
"thl": "Dangaura Tharu",
"thm": "Thavung",
"thn": "Thachanadan",
"thp": "Thompson",
"thq": "Kochila Tharu",
"thr": "Rana Tharu",
"ths": "Thakali",
"tht": "Tahltan",
"thu": "Thuri",
"thy": "Tha",
"ti": "Tigrinya",
"tic": "Tira",
"tif": "Tifal",
"tig": "Tigre",
"tih": "Murut Timugon",
"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": "Tiwa Selatan",
"tiy": "Tiruray",
"tiz": "Tai Hongjin",
"tja": "Tajuasohn",
"tjg": "Tunjung",
"tji": "Tujia Utara",
"tjl": "Tai Laing",
"tjm": "Timucua",
"tjn": "Tonjon",
"tjs": "Tujia Selatan",
"tju": "Tjurruru",
"tjw": "Chaap Wuurong",
"tk": "Turkmen",
"tka": "Truká",
"tkb": "Buksa",
"tkd": "Tukudede",
"tke": "Takwane",
"tkf": "Tukumanféd",
"tkl": "Tokelau",
"tkm": "Takelma",
"tkn": "Toku-No-Shima",
"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": "Tagalog",
"tla": "Tepehuan Barat Daya",
"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": "Tamang Barat Laut",
"tml": "Tamnim Citak",
"tmm": "Tai Thanh",
"tmn": "Taman (Indonesia)",
"tmo": "Temoq",
"tmq": "Tumleo",
"tms": "Tima",
"tmt": "Tasmate",
"tmu": "Iau",
"tmv": "Motembo",
"tmw": "Temuan",
"tmy": "Tami",
"tmz": "Tamanaku",
"tn": "Tswana",
"tna": "Tacana",
"tnb": "Tunebo Barat",
"tnc": "Tanimuca-Retuarã",
"tnd": "Angosturas Tunebo",
"tne": "Tinoc Kallahan",
"tng": "Tobanga",
"tnh": "Maiani",
"tni": "Tandia",
"tnk": "Kwamera",
"tnl": "Lenakel",
"tnm": "Tabla",
"tnn": "Tanna Utara",
"tno": "Toromono",
"tnp": "Whitesands",
"tnq": "Taíno",
"tnr": "Bedik",
"tns": "Tenis",
"tnt": "Tontemboan",
"tnu": "Tay Khang",
"tnv": "Tanchangya",
"tnw": "Tonsawang",
"tnx": "Tanema",
"tny": "Tongwe",
"tnz": "Ten'edn",
"to": "Tongan",
"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": "Tok Pisin",
"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": "Tupi Kuno",
"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": "Totonac Barat",
"tqu": "Touo",
"tqw": "Tonkawa",
"tr": "Turkish",
"tra": "Tirahi",
"trb": "Terebu",
"trc": "Copala Triqui",
"trd": "Turi",
"tre": "Tarangan Timur",
"trf": "Inggeris Kreol Trinidad",
"trg": "Lishán Didán",
"trh": "Turaka",
"tri": "Trió",
"trj": "Toram",
"trk-dkh": "Dukhan",
"trk-eog": "Oghuz Awal Kuno",
"trk-oat": "Turki Anatolia Kuno",
"trk-pro": "Proto-Turkik",
"trl": "Traveller Scottish",
"trm": "Tregami",
"trn": "Trinitario",
"tro": "Tarao",
"trp": "Kokborok",
"trq": "San Martín Itunyoso Triqui",
"trr": "Taushiro",
"trs": "Chicahuaxtla Triqui",
"trt": "Tunggare",
"tru": "Turoyo",
"trv": "Taroko",
"trw": "Torwali",
"trx": "Tringgus",
"try": "Turung",
"trz": "Torá",
"ts": "Tsonga",
"tsa": "Tsaangi",
"tsb": "Tsamai",
"tsc": "Tswa",
"tsd": "Tsakonian",
"tse": "Bahasa Isyarat Tunisia",
"tsf": "Tamang Barat Daya",
"tsg": "Suluk",
"tsh": "Tsuvan",
"tsi": "Tsimshian",
"tsj": "Tshangla",
"tsl": "Ts'ün-Lao",
"tsm": "Bahasa Isyarat Turki",
"tsp": "Toussiana Utara",
"tsq": "Bahasa Isyarat Thai",
"tsr": "Akei",
"tss": "Bahasa Isyarat Taiwan",
"tsu": "Tsou",
"tsv": "Tsogo",
"tsw": "Tsishingini",
"tsx": "Mubami",
"tsy": "Bahasa Isyarat Tebul",
"tt": "Tatar",
"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": "Tutchone Utara",
"ttn": "Towei",
"tto": "Lower Ta'oih",
"ttp": "Tombelala",
"ttr": "Tera",
"tts": "Isan",
"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": "Tunebo Tengah",
"tug": "Tunia",
"tuh": "Taulil",
"tui": "Tupuri",
"tuj": "Tugutil",
"tul": "Tula",
"tum": "Tumbuka",
"tun": "Tunica",
"tuo": "Tucano",
"tup-gua-pro": "Proto-Tupi-Guarani",
"tup-kab": "Kabishiana",
"tup-kaw": "Kawahiva",
"tup-pro": "Proto-Tupia",
"tuq": "Tedaga",
"tus": "Tuscarora",
"tuu": "Tututni",
"tuv": "Turkana",
"tuw-alk": "Alchuka",
"tuw-bal": "Bala",
"tuw-kkl": "Kyakala",
"tuw-kli": "Kili",
"tuw-pro": "Proto-Tungus",
"tuw-sol": "Solon",
"tux": "Tuxináwa",
"tuy": "Tugen",
"tuz": "Turka",
"tva": "Vaghua",
"tvd": "Tsuvadi",
"tve": "Te'un",
"tvk": "Ambrym Tenggara",
"tvl": "Tuvalu",
"tvm": "Tela-Masbuar",
"tvn": "Tavoyan",
"tvo": "Tidore",
"tvs": "Taveta",
"tvt": "Tutsa Naga",
"tvu": "Tunen",
"tvw": "Sedoa",
"tvx": "Taivoan",
"tvy": "Timor Pidgin",
"twa": "Twana",
"twb": "Tawbuid Barat",
"twc": "Teshenawa",
"twe": "Teiwa",
"twf": "Taos",
"twg": "Tereweng",
"twh": "Tai Dón",
"twm": "Tawang Monpa",
"twn": "Twendi",
"two": "Tswapong",
"twp": "Ere",
"twq": "Tasawaq",
"twr": "Tarahumara Barat Daya",
"twt": "Turiwára",
"twu": "Termanu",
"tww": "Tuwari",
"twy": "Tawoyan",
"txa": "Tombonuo",
"txb": "Tocharia B",
"txc": "Tsetsaut",
"txe": "Totoli",
"txg": "Tangut",
"txh": "Thracian",
"txi": "Ikpeng",
"txj": "Tarjumo",
"txm": "Tomini",
"txn": "Tarangan Barat",
"txo": "Toto",
"txq": "Tii",
"txr": "Tartessian",
"txs": "Tonsea",
"txt": "Citak",
"txu": "Kayapó",
"txx": "Tatana",
"ty": "Tahitian",
"tya": "Tauya",
"tye": "Kyenga",
"tyh": "O'du",
"tyi": "Teke-Tsaayi",
"tyj": "Tai Do",
"tyl": "Thu Lao",
"tyn": "Kombai",
"typ": "Kuku-Thaypan",
"tyr": "Tai Daeng",
"tys": "Sapa",
"tyt": "Tày Tac",
"tyu": "Kua",
"tyv": "Tuva",
"tyx": "Teke-Tyee",
"tyz": "Tày",
"tza": "Bahasa Isyarat Tanzania",
"tzh": "Tzeltal",
"tzj": "Tz'utujil",
"tzl": "Talossan",
"tzm": "Tamazight Atlas Tengah",
"tzn": "Tugun",
"tzo": "Tzotzil",
"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": "Udi",
"udj": "Ujir",
"udl": "Uldeme",
"udm": "Udmurt",
"udu": "Uduk",
"ues": "Kioko",
"ufi": "Ufim",
"ug": "Uyghur",
"uga": "Ugarit",
"ugb": "Kuku-Ugbanh",
"uge": "Ughele",
"ugn": "Ugandan Sign Language",
"ugo": "Gong",
"ugy": "Uruguayan Sign Language",
"uha": "Uhami",
"uhn": "Damal",
"uis": "Uisai",
"uiv": "Iyive",
"uji": "Tanjijili",
"uk": "Ukrainian",
"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": "Unserdeutsch",
"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": "Watut Utara",
"und": "tidak ditentukan",
"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": "Malakula Timur Laut",
"ur": "Urdu",
"ura": "Urarina",
"urb": "Urubú-Kaapor",
"urc": "Urningangg",
"ure": "Uru",
"urf": "Uradhi",
"urg": "Urigina",
"urh": "Urhobo",
"uri": "Urim",
"urj-fin-pro": "Proto-Finnik",
"urj-koo": "Komi Kuno",
"urj-kuk": "Kukkuzi",
"urj-kya": "Komi-Yazva",
"urj-mdv-pro": "Proto-Mordvinik",
"urj-prm-pro": "Proto-Permik",
"urj-pro": "Proto-Uralik",
"urj-ugr-pro": "Proto-Ugrik",
"urk": "Urak Lawoi'",
"url": "Urali",
"urm": "Urapmin",
"urn": "Uruangnirin",
"uro": "Ura (Papua 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": "Uvea Barat",
"uvh": "Uri",
"uvl": "Lote",
"uwa": "Kuku-Uwanh",
"uya": "Doko-Uyanga",
"uz": "Uzbek",
"vaa": "Vaagri Booli",
"vae": "Vale",
"vag": "Vagla",
"vah": "Varhadi",
"vai": "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": "Bontoc Barat Daya",
"ve": "Venda",
"vec": "Veneto",
"ved": "Veddah",
"vem": "Vemgo-Mabas",
"veo": "Ventureño",
"vep": "Veps",
"ver": "Mom Jango",
"vgr": "Vaghri",
"vgt": "Flemish Sign Language",
"vi": "Vietnamese",
"vic": "Kreol Kepulauan Virgin",
"vid": "Vidunda",
"vif": "Vili",
"vig": "Viemo",
"vil": "Vilela",
"vis": "Vishavan",
"vit": "Viti",
"viv": "Iduna",
"vka": "Kariyarra",
"vki": "Ija-Zuba",
"vkj": "Kujarge",
"vkk": "Kaur",
"vkl": "Kulisusu",
"vkm": "Kamakan",
"vko": "Kodeoha",
"vkp": "Portugis Kreol Korlai",
"vkt": "Tenggarong Kutai Malay",
"vku": "Kurrama",
"vlp": "Valpei",
"vls": "Flemish Barat",
"vma": "Martuthunira",
"vmb": "Mbabaram",
"vmc": "Mixtec Juxtlahuaca",
"vmd": "Mudu Koraga",
"vme": "Masela Timur",
"vmf": "Franconia Timur",
"vmg": "Minigir",
"vmh": "Maraghei",
"vmi": "Miwa",
"vmj": "Mixtec Ixtayutla",
"vmk": "Makhuwa-Shirima",
"vml": "Malgana",
"vmm": "Mixtec Mitlatongo",
"vmp": "Mazatec Soyaltepec",
"vmq": "Mixtec Soyaltepec",
"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": "Volapük",
"vor": "Voro",
"vot": "Vot",
"vra": "Vera'a",
"vro": "Võro",
"vrs": "Varisi",
"vrt": "Banam Bay",
"vsi": "Moldova Sign Language",
"vsl": "Venezuelan Sign Language",
"vsv": "Valencian Sign Language",
"vto": "Vitou",
"vum": "Vumbu",
"vun": "Vunjo",
"vut": "Vute",
"vwa": "Awa (China)",
"wa": "Walloon",
"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": "Waray-Waray",
"was": "Washo",
"wat": "Kaninuwa",
"wau": "Wauja",
"wav": "Waka",
"waw": "Waiwai",
"wax": "Watam",
"way": "Wayana",
"waz": "Wampur",
"wba": "Warao",
"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": "Yanomámi",
"wci": "Waci Gbe",
"wdd": "Wandji",
"wdg": "Wadaginam",
"wdj": "Wadjiginy",
"wdt": "Wendat",
"wdu": "Wadjigu",
"wdy": "Wadjabangayi",
"wea": "Wewaw",
"wec": "Wè Barat",
"wed": "Wedau",
"weh": "Weh",
"wei": "Kiunum",
"wem": "Weme Gbe",
"weo": "Wemale",
"wer": "Weri",
"wes": "Pijin Cameroon",
"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": "Wahgi Utara",
"whk": "Kenyah Wahau",
"whu": "Kayan Wahau",
"wib": "Toussiana Selatan",
"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": "Winnebago",
"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": "Wales Pertengahan",
"wlo": "Wolio",
"wlr": "Wailapa",
"wls": "Wallis",
"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": "Mwani",
"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": "Wolof",
"woa": "Tyaraity",
"wob": "Wè Utara",
"woc": "Wogeo",
"wod": "Wolani",
"woe": "Woleai",
"wog": "Wogamusin",
"woi": "Kamang",
"wok": "Longto",
"wom": "Perema",
"won": "Wongo",
"woo": "Manombai",
"wor": "Woria",
"wos": "Hanga Hundi",
"wow": "Wawonii",
"wpc": "Wirö",
"wra": "Warapu",
"wrb": "Warluwara",
"wrg": "Warungu",
"wrh": "Wiradhuri",
"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",
"wss": "Wasa",
"wsu": "Wasu",
"wsv": "Wotapuri-Katarqalai",
"wtf": "Watiwa",
"wth": "Wathaurong",
"wti": "Berta",
"wtk": "Watakataui",
"wtm": "Mewati",
"wtw": "Wotu",
"wua": "Wikngenchera",
"wub": "Wunambal",
"wud": "Wudu",
"wuh": "Wutunhua",
"wul": "Silimo",
"wum": "Wumbvu",
"wun": "Bungu",
"wur": "Wurrugu",
"wut": "Wutung",
"wuu": "Wu",
"wuv": "Wuvulu-Aua",
"wux": "Wulna",
"wuy": "Wauyai",
"wwa": "Waama",
"wwo": "Dorig",
"wwr": "Warrwa",
"www": "Wawa",
"wxa": "Waxianghua",
"wxw": "Wardandi",
"wya": "Wyandot",
"wyb": "Ngiyambaa",
"wyi": "Woiwurrung",
"wym": "Vilamovian",
"wyr": "Wayoró",
"wyy": "Fiji Barat",
"xaa": "Arab Andalusia",
"xab": "Sambe",
"xac": "Kachari",
"xad": "Adai",
"xae": "Aequian",
"xag": "Aghwan",
"xai": "Kaimbé",
"xaj": "Ararandewára",
"xak": "Maku",
"xal": "Kalmyk",
"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": "Baktria",
"xbd": "Bindal",
"xbe": "Bigambal",
"xbg": "Bunganditj",
"xbi": "Kombio",
"xbj": "Birrpayi",
"xbm": "Breton Pertengahan",
"xbn": "Kenaboi",
"xbo": "Bulgar",
"xbp": "Bibbulman",
"xbr": "Kambera",
"xbw": "Kambiwá",
"xby": "Butchulla",
"xcb": "Cumbric",
"xcc": "Camunic",
"xce": "Celtiberian",
"xch": "Chemakum",
"xcl": "Armenia Kuno",
"xcm": "Comecrudo",
"xcn": "Cotoname",
"xco": "Khwarezm",
"xcr": "Carian",
"xct": "Tibet Klasik",
"xcu": "Curonian",
"xcv": "Chuva",
"xcw": "Coahuilteco",
"xcy": "Cayuse",
"xda": "Darkinjung",
"xdc": "Dacian",
"xdk": "Dharug",
"xdm": "Edom",
"xdq": "Kaitag",
"xdy": "Malayic Dayak",
"xeb": "Ebla",
"xed": "Hdi",
"xeg": "ǁXegwi",
"xel": "Kelo",
"xem": "Kembayan",
"xep": "Epi-Olmec",
"xer": "Xerénte",
"xes": "Kesawai",
"xet": "Xetá",
"xeu": "Keoru-Ahia",
"xfa": "Falisci",
"xga": "Galatia",
"xgb": "Gbin",
"xgd": "Gudang",
"xgf": "Gabrielino-Fernandeño",
"xgg": "Goreng",
"xgi": "Garingbal",
"xgl": "Galindan",
"xgm": "Darumbal",
"xgn-pro": "Proto-Mongolia",
"xgr": "Garza",
"xgu": "Unggumi",
"xgw": "Guwa",
"xh": "Xhosa",
"xha": "Harami",
"xhc": "Hun",
"xhd": "Hadrami",
"xhe": "Khetrani",
"xhm": "Khmer Pertengahan",
"xhr": "Hernican",
"xht": "Hatti",
"xhu": "Hurri",
"xhv": "Khua",
"xib": "Iberia",
"xii": "Xiri",
"xil": "Illyria",
"xin": "Xinca",
"xir": "Xiriâna",
"xis": "Kisan",
"xiv": "Bahasa Lembah Indus",
"xiy": "Xipaya",
"xjb": "Minjungbal",
"xka": "Kalkoti",
"xkb": "Manigri-Kambolé Ede Nago",
"xkc": "Khoini",
"xkd": "Kayan Mendalam",
"xke": "Kereho",
"xkf": "Khengkha",
"xkg": "Kagoro",
"xki": "Isyarat Kenya",
"xkj": "Kajali",
"xkk": "Kaco'",
"xkl": "Bakung",
"xkn": "Kayan Sungai 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": "Lycia",
"xld": "Lydia",
"xle": "Lemnos",
"xlg": "Liguria Purba",
"xli": "Liburni",
"xlo": "Loup A",
"xlp": "Lepontii",
"xls": "Lusitania",
"xlu": "Luwiya",
"xly": "Elymi",
"xmb": "Mbonga",
"xmc": "Makhuwa-Marrevone",
"xmd": "Mbudum",
"xme-ker": "Kermanik",
"xme-kls": "Kalasuri",
"xme-klt": "Kilit",
"xme-mid": "Median Pertengahan",
"xme-old": "Median Kuno",
"xme-ott": "Tati Kuno",
"xme-taf": "Tafreshi",
"xme-ttc-pro": "Proto-Tatik",
"xmf": "Mingrelia",
"xmg": "Mengaka",
"xmh": "Kugu-Muminh",
"xmj": "Majera",
"xmk": "Macedonia Purba",
"xml": "Isyarat Malaysia",
"xmm": "Melayu Manado",
"xmo": "Morerebi",
"xmp": "Kuku-Mu'inh",
"xmq": "Kuku-Mangk",
"xmr": "Meroe",
"xms": "Isyarat Maghribi",
"xmt": "Matbat",
"xmu": "Kamu",
"xmx": "Maden",
"xmy": "Mayaguduna",
"xmz": "Mori Bawah",
"xna": "Arab Utara Purba",
"xnb": "Kanakanabu",
"xnd-pro": "Proto-Na-Dene",
"xng": "Mongol Pertengahan",
"xnh": "Kuanhua",
"xni": "Ngarigu",
"xnk": "Nganakarti",
"xnn": "Kankanay Utara",
"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": "Tasmania Tenggara",
"xpg": "Phrygia",
"xph": "Tyerrernotepanner",
"xpi": "Pict",
"xpj": "Mpalitjanh",
"xpk": "Kulina",
"xpl": "Port Sorell",
"xpm": "Pumpokol",
"xpn": "Kapinawá",
"xpo": "Pochutec",
"xpp": "Puyo-Paekche",
"xpq": "Mohegan-Pequot",
"xpr": "Parthia",
"xps": "Pisidia",
"xpu": "Punik",
"xpv": "Tommeginne",
"xpw": "Peerapper",
"xpx": "Toogee",
"xpy": "Buyeo",
"xpz": "Pulau Bruny",
"xqa": "Karakhanid",
"xqt": "Qatabanian",
"xra": "Krahô",
"xrb": "Karaboro Timur",
"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": "Sambal",
"xsc-pro": "Proto-Scythia",
"xsc-sak-pro": "Proto-Saka",
"xsc-sar-pro": "Proto-Sarmatia",
"xsc-skw-pro": "Proto-Saka-Wakhi",
"xsd": "Sidetic",
"xse": "Sempan",
"xsh": "Shamang",
"xsi": "Sio",
"xsj": "Subi",
"xsl": "Slavey Selatan",
"xsm": "Kasem",
"xsn": "Sanga (Nigeria)",
"xso": "Solano",
"xsp": "Silopi",
"xsq": "Makhuwa-Saka",
"xsr": "Sherpa",
"xss": "Assan",
"xsu": "Sanumá",
"xsv": "Sudovian",
"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": "Mixtec Magdalena Peñasco",
"xtn": "Mixtec Tlaxiaco Utara",
"xto": "Tocharia A",
"xtp": "Mixtec San Miguel Piedras",
"xtq": "Tumshuq",
"xtr": "Tripuri Awal",
"xts": "Mixtec Sindihui",
"xtt": "Mixtec Tacahua",
"xtu": "Mixtec Cuyamecalco",
"xtv": "Thawa",
"xtw": "Tawandê",
"xty": "Mixtec Yoloxochitl",
"xtz": "Tasmania",
"xua": "Kurumba Alu",
"xub": "Kurumba Betta",
"xud": "Umiida",
"xug": "Kunigami",
"xuj": "Jennu Kurumba",
"xul": "Ngunawal",
"xum": "Umbri",
"xun": "Unggaranggu",
"xuo": "Kuo",
"xup": "Upper Umpqua",
"xur": "Urartian",
"xut": "Kuthant",
"xuu": "Khwe",
"xve": "Venetic",
"xvn": "Vandalic",
"xvo": "Volscian",
"xvs": "Vestinian",
"xwa": "Kwaza",
"xwc": "Woccon",
"xwd": "Wadi Wadi",
"xwe": "Xwela Gbe",
"xwg": "Kwegu",
"xwj": "Wajuk",
"xwk": "Wangkumara",
"xwl": "Gbe Xwla Barat",
"xwo": "Oirat Bertulis",
"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": "Zemgalia",
"xzp": "Zapotec Purba",
"yaa": "Yaminahua",
"yab": "Yuhup",
"yac": "Pass Valley Yali",
"yad": "Yagua",
"yae": "Pumé",
"yaf": "Yaka",
"yag": "Yámana",
"yah": "Yazghulami",
"yai": "Yagnobi",
"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": "Yugur Barat",
"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": "Kreol Yilan",
"yda": "Yanda",
"yde": "Yangum Dey",
"ydg": "Yidgha",
"ydk": "Yoidik",
"yea": "Ravula",
"yec": "Yeniche",
"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": "Yiddish",
"yia": "Yinggarda",
"yif": "Ache",
"yig": "Wusa Nasu",
"yii": "Yidiny",
"yij": "Yindjibarndi",
"yik": "Dongshanba Lalo",
"yil": "Yindjilandji",
"yim": "Yimchungru Naga",
"yin": "Yinchia",
"yip": "Pholo",
"yiq": "Miqie",
"yir": "Awyu Utara",
"yis": "Yis",
"yit": "Lalu Timur",
"yiu": "Awu",
"yiv": "Nisu Utara",
"yix": "Axi",
"yiy": "Yir-Yoront",
"yiz": "Azhe",
"yka": "Yakan",
"ykg": "Yukaghir Utara",
"ykh": "Mongol Khamnigan",
"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": "Nyâlayu",
"ymb": "Yambes",
"ymc": "Muji Selatan",
"ymd": "Muda",
"yme": "Yameo",
"ymg": "Yamongeri",
"ymh": "Mili",
"ymi": "Moji",
"ymk": "Makwe",
"yml": "Iamalele",
"ymm": "Maay",
"ymn": "Sunum",
"ymo": "Mon Yangum",
"ymp": "Yamap",
"ymq": "Muji Qila",
"ymr": "Malasar",
"yms": "Mysian",
"ymx": "Muji Utara",
"ymz": "Muzi",
"yna": "Aluo",
"ynd": "Yandruwandha",
"yne": "Lang'e",
"yng": "Yango",
"ynk": "Naukanski",
"ynl": "Yangulam",
"ynn": "Yana",
"yno": "Yong",
"yns": "Yansi",
"ynu": "Yahuna",
"yo": "Yoruba",
"yob": "Yoba",
"yog": "Yogad",
"yoi": "Yonaguni",
"yok-bvy": "Yokuts Buena Vista",
"yok-dly": "Yokuts Delta",
"yok-gsy": "Yokuts Gashowu",
"yok-kry": "Yokuts Sungai Kings",
"yok-nvy": "Yokuts Lembah Utara",
"yok-ply": "Yokuts Palewyami",
"yok-svy": "Yokuts Lembah Selatan",
"yok-tky": "Yokuts Tule-Kaweah",
"yol": "Yola",
"yom": "Yombe",
"yon": "Yongkom",
"yox": "Yoron",
"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": "Nenets Tundra",
"yrk-for": "Nenets Hutan",
"yrk-tun": "Nenets Tundra",
"yrl": "Nheengatu",
"yrn": "Yerong",
"yro": "Yaroamë",
"yrw": "Yarawata",
"yry": "Yarluyandi",
"ysc": "Jassic",
"ysd": "Samatao",
"ysg": "Sonaga",
"ysl": "Yugoslavian Sign Language",
"ysn": "Sani",
"yso": "Nisi",
"ysp": "Lolopo Selatan",
"ysr": "Sirenik",
"yss": "Yessan-Mayo",
"ysy": "Sanie",
"yta": "Talu",
"ytl": "Tanglang",
"ytp": "Thopho",
"ytw": "Yout Wam",
"yty": "Yatay",
"yua": "Maya Yucatec",
"yub": "Yugambal",
"yuc": "Yuchi",
"yue": "Kantonis",
"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": "Yukaghir Selatan",
"yuy": "Yugur Timur",
"yuz": "Yuracare",
"yva": "Yawa",
"yvt": "Yavitero",
"ywa": "Kalou",
"ywg": "Yinhawangka",
"ywl": "Lalu Barat",
"ywn": "Yawanawa",
"ywq": "Nasu",
"ywr": "Yawuru",
"ywt": "Xishanba Lalo",
"ywu": "Wumeng Nasu",
"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": "Zhuang",
"zaa": "Zapotec Sierra de Juárez",
"zab": "Zapotec San Juan Guelavía",
"zac": "Zapotec Ocotlán",
"zad": "Zapotec Cajonos",
"zae": "Zapotec Yareni",
"zaf": "Zapotec Ayoquesco",
"zag": "Zaghawa",
"zah": "Zangwal",
"zai": "Zapotec Segenting",
"zaj": "Zaramo",
"zak": "Zanaki",
"zal": "Zauzou",
"zam": "Zapoteco Mahuatlán Tengah",
"zao": "Zapotec Ozolotepec",
"zap": "Zapotec",
"zaq": "Zapotec Aloápam",
"zar": "Zapotec Rincón",
"zas": "Zapotec Santo Domingo Albarradas",
"zat": "Zapotec Tabaa",
"zau": "Zangskar",
"zav": "Zapotec Yatzachi",
"zaw": "Zapotec Mitla",
"zax": "Zapotec Xadani",
"zay": "Zayse-Zergulla",
"zaz": "Zari",
"zbt": "Batui",
"zca": "Zapotec Coatecas Altas",
"zdj": "Comoros Ngazidja",
"zea": "Zeeland",
"zeg": "Zenag",
"zen": "Zenaga",
"zga": "Kinga",
"zgh": "Amazigh Maghribi",
"zgr": "Magori",
"zh": "Chinese",
"zhb": "Zhaba",
"zhi": "Zhire",
"zhn": "Nong Zhuang",
"zhw": "Zhoa",
"zhx-min-pro": "Proto-Min",
"zhx-sht": "Tuhua Shaozhou",
"zhx-sic": "Sichuan",
"zhx-tai": "Taishan",
"zia": "Zia",
"zib": "Zimbabwe Sign Language",
"zik": "Zimakani",
"zil": "Zialo",
"zim": "Mesme",
"zin": "Zinza",
"zir": "Ziriya",
"ziw": "Zigula",
"ziz": "Zizilivakan",
"zka": "Kaimbulawa",
"zkb": "Koibal",
"zkg": "Goguryeo",
"zkh": "Khorezmian Turkic",
"zkk": "Karankawa",
"zko": "Kott",
"zkp": "Kaingáng São Paulo",
"zkr": "Zakhring",
"zkt": "Khitan",
"zku": "Kaurna",
"zkv": "Krevinian",
"zkz": "Khazar",
"zle-ono": "Novgorod Kuno",
"zle-ort": "Ruthenian Kuno",
"zls-chs": "Slavonic Gereja",
"zlw-ocs": "Czech Kuno",
"zlw-opl": "Poland Kuno",
"zlw-osk": "Slovak Kuno",
"zlw-slv": "Slovincian",
"zma": "Manda (Australia)",
"zmb": "Zimba",
"zmc": "Margany",
"zmd": "Maridan",
"zme": "Mangerr",
"zmf": "Mfinu",
"zmg": "Marti Ke",
"zmh": "Makolkol",
"zmi": "Melayu Negeri Sembilan",
"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": "Kaya",
"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": "Zulu",
"zua": "Zeem",
"zuh": "Tokano",
"zum": "Kumzari",
"zun": "Zuni",
"zuy": "Zumaya",
"zwa": "Zay",
"zyp": "Zyphe",
"zza": "Zazaki",
"zzj": "Zuojiang Zhuang"
}
o39yj4hnxp25zdyd29kizno1xwcxme3
373546
373530
2026-09-11T09:58:40Z
Hakimi97
2668
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373546
json
application/json
{
"aa": "Afar",
"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": "Proto-Khasian",
"aav-nic-pro": "Proto-Nicobarese",
"aav-pkl-pro": "Proto-Pnar-Khasi-Lyngngam",
"aav-pro": "Proto-Austroasiatik",
"aaw": "Solong",
"aax": "Mandobo Atas",
"aaz": "Amarasi",
"ab": "Abkhaz",
"aba": "Abé",
"abb": "Bankon",
"abc": "Ayta Ambala",
"abd": "Agta Camarines Norte",
"abe": "Abenaki",
"abf": "Abai Sungai",
"abg": "Abaga",
"abh": "Arab Tajik",
"abi": "Abidji",
"abj": "Aka-Bea",
"abl": "Abung",
"abm": "Abanyom",
"abn": "Abua",
"abo": "Abon",
"abp": "Ayta Abenlen",
"abq": "Abaza",
"abs": "Melayu Ambon",
"abt": "Ambulas",
"abu": "Abure",
"abv": "Arab Bahrani",
"abw": "Pal",
"abx": "Inabaknon",
"aby": "Aneme Wake",
"abz": "Abui",
"aca": "Achagua",
"acb": "Áncá",
"acd": "Gikyode",
"ace": "Aceh",
"ach": "Acholi",
"aci": "Aka-Cari",
"ack": "Aka-Kora",
"acl": "Akar-Bale",
"acm": "Arab Iraq",
"acn": "Achang",
"acp": "Acipa Timur",
"acr": "Achi",
"acs": "Acroá",
"acu": "Achuar",
"acv": "Achumawi",
"acw": "Arab Hijaz",
"acx": "Arab Oman",
"acy": "Arab Cyprus",
"acz": "Acheron",
"ada": "Adangme",
"adb": "Atauran",
"add": "Dzodinka",
"ade": "Adele",
"adf": "Arab Dhofar",
"adg": "Andegerebinha",
"adh": "Adhola",
"adi": "Adi",
"adj": "Adioukrou",
"adl": "Galo",
"adn": "Adang",
"ado": "Abu",
"adp": "Adap",
"adq": "Adangbe",
"adr": "Adonara",
"ads": "Bahasa Isyarat Adamorobe",
"adt": "Adnyamathanha",
"adu": "Aduge",
"adw": "Amondawa",
"ady": "Circassian Barat",
"adz": "Adzera",
"ae": "Avesta",
"aea": "Areba",
"aeb": "Arab Tunisia",
"aed": "Bahasa Isyarat Argentina",
"aee": "Pashayi Timur Laut",
"aek": "Haeke",
"ael": "Ambele",
"aem": "Arem",
"aen": "Bahasa Isyarat Armenia",
"aeq": "Aer",
"aer": "Arrernte Timur",
"aes": "Alsea",
"aeu": "Akeu",
"aew": "Ambakich",
"aey": "Amele",
"aez": "Aeka",
"af": "Afrikaans",
"afa-pro": "Proto-Afroasiatik",
"afb": "Arab Teluk",
"afd": "Andai",
"afe": "Putukwam",
"afg": "Bahasa Isyarat Afghanistan",
"afh": "Afrihili",
"afi": "Akrukay",
"afk": "Nanubae",
"afn": "Defaka",
"afo": "Eloyi",
"afp": "Tapei",
"afs": "Kreol Afro-Seminole",
"aft": "Afitti",
"afu": "Awutu",
"afz": "Obokuitai",
"aga": "Aguano",
"agb": "Legbo",
"agc": "Agatu",
"agd": "Agarabi",
"age": "Angal",
"agf": "Arguni",
"agg": "Angor",
"agh": "Ngelima",
"agj": "Argobba",
"agk": "Agta Isarog",
"agl": "Fembe",
"agm": "Angaataha",
"agn": "Agutaynen",
"ago": "Tainae",
"agq": "Aghem",
"agr": "Aguaruna",
"ags": "Esimbi",
"agt": "Agta Cagayan Tengah",
"agu": "Aguacateco",
"agv": "Agta Remontado",
"agw": "Kahua",
"agx": "Aghul",
"agy": "Alta Selatan",
"agz": "Agta Gunung Iriga",
"aha": "Ahanta",
"ahb": "Axamb",
"ahg": "Qimant",
"ahh": "Aghu",
"ahi": "Tiagba",
"ahk": "Akha",
"ahl": "Igo",
"ahm": "Mobu",
"ahn": "Àhàn",
"aho": "Ahom",
"ahp": "Apro",
"ahr": "Ahirani",
"ahs": "Ashe",
"aht": "Ahtna",
"aia": "Arosi",
"aib": "Äynu",
"aic": "Ainbai",
"aid": "Alngith",
"aie": "Amara",
"aif": "Agi",
"aig": "Kreol Inggeris Antigua dan Barbuda",
"aih": "Ai-Cham",
"aii": "Neo-Aramia Assyria",
"aij": "Lishanid Noshan",
"aik": "Ake",
"ail": "Aimele",
"aim": "Aimol",
"ain": "Ainu",
"aio": "Aiton",
"aip": "Burumakok",
"air": "Airoran",
"ait": "Arikem",
"aiw": "Aari",
"aix": "Aighon",
"aiy": "Ali",
"aja": "Aja (Afrika Timur)",
"ajg": "Aja (Afrika Barat)",
"aji": "Ajië",
"ajn": "Andajin",
"ajp": "Arab Syam Selatan",
"ajs": "Bahasa Isyarat Yahudi Algeria",
"ajw": "Ajawa",
"ajz": "Karbi Amri",
"ak": "Akan",
"akb": "Batak Angkola",
"akc": "Mpur",
"akd": "Ukpet-Ehom",
"ake": "Akawaio",
"akf": "Akpa",
"akg": "Anakalangu",
"akh": "Angal Heneng",
"aki": "Aiome",
"akj": "Jeru",
"akk": "Akkadia",
"akl": "Aklanon",
"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": "Alabama",
"ala": "Alago",
"alc": "Kawésqar",
"ald": "Alladian",
"ale": "Aleut",
"alf": "Alege",
"alg-aga": "Agawam",
"alg-pro": "Proto-Algonquian",
"alh": "Alawa",
"ali": "Amaimon",
"alj": "Alangan",
"alk": "Alak",
"all": "Allar",
"alm": "Amblong",
"alo": "Larike-Wakasihu",
"alp": "Alune",
"alq": "Algonquin",
"alr": "Alutor",
"alt": "Altai Selatan",
"alu": "'Are'are",
"alv-ama": "Amasi",
"alv-bgu": "Bainouk Gubeeher",
"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": "Proto-Gbe",
"alv-gng-pro": "Proto-Guang",
"alv-gtm-pro": "Proto-Togo Tengah",
"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": "Proto-Atlantik-Congo",
"alv-von-pro": "Proto-Volta-Niger",
"alv-yor-pro": "Proto-Yoruba",
"alv-yrd-pro": "Proto-Yoruboid",
"alw": "Alaba",
"alx": "Amol",
"aly": "Alyawarr",
"alz": "Alur",
"am": "Amhara",
"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": "Amami Ōshima Selatan",
"amt": "Amto",
"amu": "Amuzgo Guerrero",
"amv": "Ambelau",
"amw": "Neo-Aramia Barat",
"amx": "Anmatyerre",
"amy": "Ami",
"amz": "Atampaya",
"an": "Aragon",
"ana": "Andaqui",
"anb": "Andoa",
"anc": "Ngas",
"and": "Ansus",
"ane": "Xârâcùù",
"anf": "Animere",
"ang": "Inggeris Kuno",
"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": "Alor",
"aom": "Ömie",
"aon": "Arapesh Bumbita",
"aor": "Aore",
"aos": "Taikat",
"aot": "Atong (India)",
"aou": "A'ou",
"aox": "Atorada",
"aoz": "Uab Meto",
"apa-pro": "Proto-Apachean",
"apb": "Sa'a",
"apc": "Arab Syam Utara",
"apd": "Arab Sudan",
"ape": "Bukiyip",
"apf": "Agta Pahanan",
"apg": "Ampanang",
"aph": "Athpare",
"api": "Apiaká",
"apj": "Jicarilla",
"apk": "Apache Dataran",
"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": "Apache Barat",
"apx": "Aputai",
"apy": "Apalaí",
"apz": "Safeyoka",
"aqc": "Archi",
"aqd": "Dogon Ampari",
"aqg": "Arigidi",
"aql-pro": "Proto-Algic",
"aqm": "Atohwaim",
"aqn": "Alta Utara",
"aqp": "Atakapa",
"aqr": "Arhâ",
"aqt": "Angaité",
"aqz": "Akuntsu",
"ar": "Arab",
"arc": "Aramia",
"ard": "Arabana",
"are": "Arrernte Barat",
"arh": "Arhuaco",
"ari": "Arikara",
"arj": "Arapaso",
"ark": "Arikapú",
"arl": "Arabela",
"arn": "Mapudungun",
"aro": "Araona",
"arp": "Arapaho",
"arq": "Arab Algeria",
"arr": "Arara-Karo",
"ars": "Arab Najdi",
"art-adu": "Adûni",
"art-bel": "Kreol Belter",
"art-blk": "Bolak",
"art-bsp": "Bahasa Hitam",
"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": "Valyrian Tinggi",
"aru": "Arua",
"arv": "Arbore",
"arw": "Lokono",
"arx": "Aruá",
"ary": "Arab Maghribi",
"arz": "Arab Mesir",
"as": "Assam",
"asa": "Pare",
"asb": "Assiniboine",
"asc": "Asmat Pesisir Casuarina",
"ase": "Bahasa Isyarat Amerika",
"asf": "Auslan",
"asg": "Cishingini",
"ash": "Abishira",
"asi": "Buruwai",
"asj": "Nsari",
"ask": "Ashkun",
"asl": "Asilulu",
"asn": "Asuriní Xingú",
"aso": "Dano",
"asp": "Bahasa Isyarat Algeria",
"asq": "Bahasa Isyarat Austria",
"asr": "Asuri",
"ass": "Ipulo",
"ast": "Asturia",
"asu": "Asurini Tocantins",
"asv": "Asoa",
"asw": "Bahasa Isyarat Orang Asli Australia",
"asx": "Muratayak",
"asy": "Asmat Yaosakor",
"asz": "As",
"ata": "Pele-Ata",
"atb": "Zaiwa",
"atc": "Atsahuaca",
"atd": "Manobo Ata",
"ate": "Atemble",
"atg": "Okpela",
"ath-nic": "Nicola",
"ath-pro": "Proto-Athabaskan",
"ati": "Attié",
"atj": "Atikamekw",
"atk": "Ati",
"atl": "Agta Gunung Iraya",
"atm": "Ata",
"ato": "Atong (Cameroon)",
"atp": "Atta Pudtol",
"atq": "Aralle-Tabulahan",
"atr": "Waimiri-Atroari",
"ats": "Gros Ventre",
"att": "Atta Pamplona",
"atu": "Reel",
"atv": "Altai Utara",
"atw": "Atsugewi",
"atx": "Arutani",
"aty": "Aneityum",
"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": "One Molmo",
"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-New South Wales Tengah",
"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": "Arab Uzbeki",
"av": "Avar",
"avb": "Avau",
"avd": "Alviri-Vidari",
"avi": "Avikam",
"avk": "Kotava",
"avm": "Angkamuthi",
"avn": "Avatime",
"avs": "Aushiri",
"avt": "Au",
"avu": "Avokaya",
"avv": "Avá-Canoeiro",
"awa": "Awadhi",
"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-war": "Warekena Kuno",
"awd-yum": "Yumana",
"awe": "Awetí",
"awg": "Anguthimri",
"awh": "Awbono",
"awi": "Aekyom",
"awk": "Awabakal",
"awm": "Arawum",
"awn": "Awngi",
"awo": "Awak",
"awr": "Awera",
"aws": "Awyu Selatan",
"awt": "Araweté",
"awu": "Awyu Tengah",
"awv": "Awyu Jair",
"aww": "Awun",
"awx": "Awara",
"awy": "Awyu Edera",
"axb": "Abipón",
"axe": "Ayerrerenge",
"axg": "Arára (Mato Grosso)",
"axk": "Aka (Afrika Tengah)",
"axl": "Aranda Selatan Bawah",
"axm": "Armenia Pertengahan",
"axx": "Xârâgurè",
"ay": "Aymara",
"aya": "Awar",
"ayb": "Ayizo",
"ayd": "Ayabadhu",
"aye": "Ayere",
"ayg": "Nyanga (Togo)",
"ayi": "Leyigha",
"ayk": "Akuku",
"ayl": "Arab Libya",
"ayn": "Arab Yaman",
"ayo": "Ayoreo",
"ayp": "Arab Mesopotamia Utara",
"ayq": "Ayi",
"ays": "Ayta Sorsogon",
"ayt": "Ayta Bataan",
"ayu": "Ayu",
"ayz": "Maybrat",
"az": "Azerbaijan",
"aza": "Azha",
"azc-caz": "Cazcan",
"azc-cup-pro": "Proto-Cupan",
"azc-ktn": "Kitanemuk",
"azc-nah-pro": "Proto-Nahuan",
"azc-nic": "Nicoleño",
"azc-num-pro": "Proto-Numic",
"azc-pro": "Proto-Uto-Aztecan",
"azc-tak-pro": "Proto-Takic",
"azc-tat": "Tataviam",
"azd": "Nahuatl Durango Timur",
"azg": "Amuzgo San Pedro Amuzgos",
"azm": "Amuzgo Ipalapa",
"azn": "Nahuatl Durango Barat",
"azo": "Awing",
"azt": "Atta Faire",
"azz": "Nahuatl Puebla Tanah Tinggi",
"ba": "Bashkir",
"baa": "Babatana",
"bab": "Bainouk-Gunyuño",
"bac": "Badui",
"bae": "Baré",
"baf": "Nubaca",
"bag": "Tuki",
"bah": "Kreol Bahamas",
"baj": "Barakai",
"bal": "Baluchi",
"ban": "Bali",
"bao": "Waimaha",
"bap": "Bantawa",
"bar": "Bavarian",
"bas": "Basaa",
"bau": "Badanchi",
"bav": "Babungo",
"baw": "Bambili-Bambui",
"bax": "Bamum",
"bay": "Batuley",
"bba": "Baatonum",
"bbb": "Barai",
"bbc": "Batak Toba",
"bbd": "Bau",
"bbe": "Bangba",
"bbf": "Baibai",
"bbg": "Barama",
"bbh": "Bugan",
"bbi": "Barombi",
"bbj": "Ghomala'",
"bbk": "Babanki",
"bbl": "Bats",
"bbm": "Babango",
"bbn": "Uneapa",
"bbo": "Konabéré",
"bbp": "Banda Tengah Barat",
"bbq": "Bamali",
"bbr": "Girawa",
"bbs": "Bakpinka",
"bbt": "Mburku",
"bbu": "Bakulung",
"bbv": "Karnai",
"bbw": "Baba",
"bbx": "Bubia",
"bby": "Befang",
"bca": "Bai Tengah",
"bcb": "Bainouk-Samik",
"bcd": "Babar Utara",
"bce": "Bamenyam",
"bcf": "Bamu",
"bcg": "Baga Pokur",
"bch": "Bariai",
"bci": "Baoule",
"bcj": "Bardi",
"bck": "Bunaba",
"bcl": "Bikol Tengah",
"bcm": "Banoni",
"bcn": "Bibaali",
"bco": "Kaluli",
"bcp": "Baali",
"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",
"bdk": "Budukh",
"bdl": "Bajau Indonesia",
"bdm": "Buduma",
"bdn": "Baldemu",
"bdo": "Morom",
"bdp": "Bende",
"bdq": "Bahnar",
"bdr": "Bajau Sama",
"bds": "Burunge",
"bdt": "Bokoto",
"bdu": "Oroko",
"bdv": "Bodo Parja",
"bdw": "Baham",
"bdx": "Budong-Budong",
"bdy": "Bandjalang",
"bdz": "Badeshi",
"be": "Belarus",
"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": "Proto-Berber",
"ber-zuw": "Zuwara",
"bes": "Besme",
"bet": "Guiberoua Bété",
"beu": "Blagar",
"bev": "Daloa Bété",
"bew": "Betawi",
"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": "Badaga",
"bfr": "Bazigar",
"bfs": "Bai Selatan",
"bft": "Balti",
"bfu": "Gahri",
"bfw": "Bondo",
"bfx": "Bantayanon",
"bfy": "Bagheli",
"bfz": "Mahasu Pahari",
"bg": "Bulgaria",
"bga": "Gwamhi-Wuri",
"bgb": "Bobongko",
"bgc": "Haryanvi",
"bgd": "Rathwi Bareli",
"bge": "Bauria",
"bgf": "Bangandu",
"bgg": "Bugun",
"bgi": "Giangan",
"bgj": "Bangolan",
"bgk": "Bit",
"bgl": "Bo",
"bgo": "Baga Koga",
"bgq": "Bagri",
"bgr": "Chin Bawm",
"bgs": "Tagabawa",
"bgt": "Bughotu",
"bgu": "Mbongno",
"bgv": "Warkay-Bipim",
"bgw": "Bhatri",
"bgx": "Balkan Gagauz Turkish",
"bgy": "Benggoi",
"bgz": "Banggai",
"bh": "Bihari",
"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": "Neo-Aram Bohtan",
"bho": "Bhojpur",
"bhp": "Bima",
"bhq": "Tukang Besi Selatan",
"bhs": "Buwal",
"bht": "Bhattiyali",
"bhu": "Bhunjia",
"bhv": "Bahau",
"bhw": "Biak",
"bhx": "Bhalay",
"bhy": "Bhele",
"bhz": "Bada",
"bi": "Bislama",
"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": "Birifor Selatan",
"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": "Banjar",
"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": "Binukid",
"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": "Bolongan",
"blk": "Karen Pa'o",
"bll": "Biloxi",
"blm": "Beli",
"bln": "Bicolano Catanduanes Selatan",
"blo": "Anii",
"blp": "Blablanga",
"blq": "Baluan-Pam",
"blr": "Blang",
"bls": "Balaesang",
"blt": "Tai Dam",
"blv": "Kibala",
"blw": "Balangao",
"blx": "Mag-Indi Ayta",
"bly": "Notre",
"blz": "Balantak",
"bm": "Bambara",
"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": "Benggali",
"bna": "Bonerate",
"bnb": "Bookan",
"bnd": "Banda",
"bne": "Bintauna",
"bnf": "Masiwang",
"bng": "Benga",
"bni": "Bangi",
"bnj": "Tawbuid Timur",
"bnk": "Bierebo",
"bnl": "Boon",
"bnm": "Batanga",
"bnn": "Bunun",
"bno": "Asi",
"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 (Afrika Selatan)",
"bnt-mpi": "Mpiin",
"bnt-mpu": "Mpuono",
"bnt-ngu-pro": "Proto-Nguni",
"bnt-phu": "Phuthi",
"bnt-pro": "Proto-Bantu",
"bnt-sab-pro": "Proto-Sabaki",
"bnt-sbo": "Boma Selatan",
"bnt-sts-pro": "Proto-Sotho-Tswana",
"bnu": "Bentong",
"bnv": "Beneraf",
"bnw": "Bisis",
"bnx": "Bangubangu",
"bny": "Vaie",
"bnz": "Beezen",
"bo": "Tibet",
"boa": "Bora",
"bob": "Aweer",
"boe": "Mundabli",
"bof": "Bolon",
"bog": "Bamako Sign Language",
"boh": "Boma Utara",
"boi": "Barbareño",
"boj": "Anjam",
"bok": "Bonjo",
"bol": "Bole",
"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": "Dakaka",
"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": "Breton",
"bra": "Braj",
"brb": "Lave",
"brc": "Belanda Kreol Berbice",
"brd": "Baraamu",
"brf": "Bera",
"brg": "Baure",
"brh": "Brahui",
"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": "Bru Timur",
"brv": "Bru Barat",
"brw": "Bellari",
"brx": "Bodo (India)",
"bry": "Burui",
"brz": "Bilbil",
"bsa": "Abinomn",
"bsb": "Bisaya Brunei",
"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": "Bisaya Sabah",
"bta": "Bata",
"btc": "Bati (Cameroon)",
"btd": "Batak Dairi",
"bte": "Gamo-Ningi",
"btf": "Birgit",
"btg": "Gagnoa Bété",
"bth": "Bidayuh Biatah",
"bti": "Burate",
"btj": "Melayu Bacan",
"btk-pro": "Proto-Batak",
"btm": "Batak Mandailing",
"btn": "Ratagnon",
"bto": "Bicolano Iriga",
"btp": "Budibud",
"btq": "Batek",
"btr": "Baetora",
"bts": "Batak Simalungun",
"btt": "Bete-Bendi",
"btu": "Batu",
"btv": "Bateri",
"btw": "Butuanon",
"btx": "Batak Karo",
"bty": "Bobot",
"btz": "Batak Alas-Kluet",
"bua": "Buryat",
"bub": "Bua",
"bud": "Ntcham",
"bue": "Beothuk",
"buf": "Bushoong",
"bug": "Bugis",
"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": "Melayu Berau",
"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": "Melayu Bukit",
"bvv": "Baniva",
"bvw": "Boga",
"bvx": "Babole",
"bvy": "Baybayanon",
"bvz": "Bauzi",
"bwa": "Bwatoo",
"bwb": "Namosi-Naitasiri-Serua",
"bwc": "Bwile",
"bwd": "Bwaidoka",
"bwe": "Karen Bwe",
"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": "Bobo Selatan",
"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": "Batak Palawan",
"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": "Bisu",
"bzj": "Kreol Belize",
"bzk": "Kreol Nicaragua",
"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": "Catalan",
"caa": "Ch'orti'",
"cab": "Garifuna",
"cac": "Chuj",
"cad": "Caddo",
"cae": "Laalaa",
"caf": "Carrier Selatan",
"cag": "Nivaclé",
"cah": "Cahuarano",
"caj": "Chané",
"cak": "Kaqchikel",
"cal": "Carolinian",
"cam": "Cemuhî",
"can": "Chambri",
"cao": "Chácobo",
"cap": "Chipaya",
"caq": "Car Nicobarese",
"car": "Kari'na",
"cas": "Tsimané",
"cau-abz-pro": "Proto-Abkhaz-Abaza",
"cau-and-pro": "Proto-Andian",
"cau-ava-pro": "Proto-Avaro-Andian",
"cau-cir-pro": "Proto-Circassian",
"cau-drg-pro": "Proto-Dargwa",
"cau-lzg-pro": "Proto-Lezghian",
"cau-nec-pro": "Proto-Kaukasia Timur Laut",
"cau-nkh-pro": "Proto-Nakh",
"cau-nwc-pro": "Proto-Kaukasia Barat Laut",
"cau-tsz-pro": "Proto-Tsezian",
"cav": "Cavineña",
"caw": "Callawalla",
"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": "Chavacano",
"cbl": "Chin Bualkhaw",
"cbn": "Nyah Kur",
"cbo": "Izora",
"cbq": "Shuba",
"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": "Melayu Cheti",
"cco": "Comaltepec Chinantec",
"ccp": "Chakma",
"ccr": "Cacaopera",
"ccs-gzn-pro": "Proto-Georgia-Zan",
"ccs-pro": "Proto-Kartvelia",
"cda": "Choni",
"cdc-cbm-pro": "Proto-Chadic Tengah",
"cdc-mas-pro": "Proto-Masa",
"cdc-pro": "Proto-Chadic",
"cdd-pro": "Proto-Caddoan",
"cde": "Chenchu",
"cdf": "Chiru",
"cdh": "Chambeali",
"cdi": "Chodri",
"cdj": "Churahi",
"cdm": "Chepang",
"cdn": "Chaudangsi",
"cdo": "Min Timur",
"cdr": "Cinda-Regi-Tiyal",
"cds": "Bahasa Isyarat Chad",
"cdy": "Chadong",
"cdz": "Koda",
"ce": "Chechen",
"cea": "Lower Chehalis",
"ceb": "Cebuano",
"ceg": "Chamacoco",
"cel-bry-pro": "Proto-Brythonic",
"cel-gal": "Gallaecian",
"cel-gau": "Gaul",
"cel-pro": "Proto-Celtic",
"cen": "Cen",
"cet": "Centúúm",
"cfa": "Dijim-Bwilim",
"cfd": "Cara",
"cfg": "Como Karim",
"cfm": "Chin Falam",
"cga": "Changriwa",
"cgc": "Kagayanen",
"cgg": "Rukiga",
"cgk": "Chocangaca",
"ch": "Chamorro",
"chb": "Chibcha",
"chc": "Catawba",
"chd": "Highland Oaxaca Chontal",
"chf": "Tabasco Chontal",
"chg": "Chagatai",
"chh": "Chinook",
"chi-pro": "Proto-Chimakuan",
"chj": "Ojitlán Chinantec",
"chk": "Chuuk",
"chl": "Cahuilla",
"chm-pro": "Proto-Mari",
"chn": "Chinook Jargon",
"cho": "Choctaw",
"chp": "Chipewyan",
"chq": "Quiotepec Chinantec",
"chr": "Cherokee",
"cht": "Cholón",
"chw": "Chuabo",
"chx": "Chantyal",
"chy": "Cheyenne",
"chz": "Ozumacín Chinantec",
"cia": "Cia-Cia",
"cib": "Ci Gbe",
"cic": "Chickasaw",
"cid": "Chimariko",
"cie": "Cineni",
"cih": "Chinali",
"cik": "Chitkuli Kinnauri",
"cim": "Cimbrian",
"cin": "Cinta Larga",
"cip": "Chiapanec",
"cir": "Tiri",
"ciy": "Chaima",
"cja": "Cam Barat",
"cje": "Chru",
"cjh": "Upper Chehalis",
"cji": "Chamalal",
"cjk": "Chokwe",
"cjm": "Cam Timur",
"cjn": "Chenapian",
"cjo": "Ashéninka Pajonal",
"cjp": "Cabécar",
"cjs": "Shor",
"cjv": "Chuave",
"cjy": "Jin",
"ckb": "Kurdi Tengah",
"ckh": "Chak",
"ckl": "Cibak",
"ckn": "Chin Kaang",
"cko": "Anufo",
"ckq": "Kajakse",
"ckr": "Kairak",
"cks": "Tayo",
"ckt": "Chukchi",
"cku": "Koasati",
"ckv": "Kavalan",
"ckx": "Caka",
"cky": "Cakfem-Mushere",
"ckz": "Cakchiquel-Quiché Mixed Language",
"cla": "Ron",
"clc": "Chilcotin",
"cld": "Chaldean Neo-Aramaic",
"cle": "Lealao Chinantec",
"clh": "Chilisso",
"cli": "Chakali",
"clj": "Chin Laitu",
"clk": "Idu",
"cll": "Chala",
"clm": "Klallam",
"clo": "Lowland Oaxaca Chontal",
"clt": "Chin Laitu",
"clu": "Caluyanun",
"clw": "Chulym",
"cly": "Chatino Tanah Tinggi Timur",
"cma": "Mạ",
"cmc-pro": "Proto-Chamic",
"cme": "Cerma",
"cmg": "Mongol Klasik",
"cmi": "Emberá-Chamí",
"cml": "Campalagian",
"cmm": "Michigamea",
"cmn": "Mandarin",
"cmo": "Mnong Tengah",
"cmr": "Chin Mro",
"cms": "Messapic",
"cmt": "Camtho",
"cna": "Changthang",
"cnb": "Chin Chinbon",
"cnc": "Cốông",
"cng": "Qiang Utara",
"cnh": "Lai",
"cni": "Asháninka",
"cnk": "Chin Khumi",
"cnl": "Lalana Chinantec",
"cno": "Con",
"cnp": "Pinghua Utara",
"cns": "Asmat Tengah",
"cnt": "Tepetotutla Chinantec",
"cnu": "Chenoua",
"cnw": "Chin Ngawn",
"cnx": "Cornwall Pertengahan",
"co": "Corsica",
"coa": "Melayu Cocos",
"cob": "Chicomuceltec",
"coc": "Cocopa",
"cod": "Cocama",
"coe": "Koreguaje",
"cof": "Tsafiki",
"cog": "Chong",
"coh": "Chichonyi-Chidzihana-Chikauma",
"coj": "Cochimi",
"cok": "Santa Teresa Cora",
"col": "Columbia-Wenatchi",
"com": "Comanche",
"con": "Cofán",
"coo": "Comox",
"cop": "Qibti",
"coq": "Coquille",
"cot": "Caquinte",
"cou": "Wamey",
"cov": "Cao Miao",
"cow": "Cowlitz",
"cox": "Nanti",
"coy": "Coyaima",
"coz": "Chochotec",
"cpa": "Palantla Chinantec",
"cpb": "Ucayali-Yurúa Ashéninka",
"cpc": "Ajyíninka Apurucayali",
"cpg": "Yunani Cappadocia",
"cpi": "Inggeris Pijin Cina",
"cpn": "Cherepon",
"cpo": "Kpee",
"cps": "Capiznon",
"cpu": "Pichis Ashéninka",
"cpx": "Min Puxian",
"cpy": "Ashéninka Ucayali Selatan",
"cqd": "Chuanqiandian Cluster Miao",
"cr": "Cree",
"cra": "Chara",
"crb": "Kalinago",
"crc": "Lonwolwol",
"crd": "Coeur d'Alene",
"crf": "Caramanta",
"crg": "Michif",
"crh": "Tatar Crimea",
"cri": "Sãotomense",
"crj": "Cree Timur Selatan",
"crk": "Plains Cree",
"crl": "Cree Timur Utara",
"crm": "Cree Moose",
"crn": "Cora",
"cro": "Crow",
"crp-bip": "Pidgin Basque-Iceland",
"crp-cpr": "Pidgin Rusia-China",
"crp-gep": "Pidgin Greenland Barat",
"crp-kia": "Pidgin Jerman Kiautschou",
"crp-mar": "Bahasa Roh Maroon",
"crp-mpp": "Pidgin Portugis Macau",
"crp-rsn": "Russenorsk",
"crp-slb": "Solombala English",
"crp-spp": "Pidgin Ladang Samoa",
"crp-tpr": "Pidgin Rusia Taimyr",
"crq": "Iyo'wujwa Chorote",
"crr": "Algonquin Carolina",
"crs": "Kreol Seychelles",
"crt": "Iyojwa'ja Chorote",
"crv": "Chaura",
"crw": "Chrau",
"crx": "Carrier",
"cry": "Cori",
"crz": "Cruzeño",
"cs": "Czech",
"csa": "Chiltepec Chinantec",
"csb": "Kashubian",
"csc": "Catalan Sign Language",
"csd": "Chiangmai Sign Language",
"cse": "Czech Sign Language",
"csf": "Cuban Sign Language",
"csg": "Chilean Sign Language",
"csh": "Chin Asho",
"csi": "Miwok Pesisir",
"csj": "Chin Songlai",
"csk": "Jola-Kasa",
"csl": "Chinese Sign Language",
"csm": "Miwok Sierra Tengah",
"csn": "Colombian Sign Language",
"cso": "Sochiapam Chinantec",
"csp": "Pinghua Selatan",
"csq": "Bahasa Isyarat Croatia",
"csr": "Costa Rican Sign Language",
"css": "Ohlone Selatan",
"cst": "Ohlone Utara",
"csu-bba-pro": "Proto-Bongo-Bagirmi",
"csu-maa-pro": "Proto-Mangbetu",
"csu-pro": "Proto-Sudan Tengah",
"csu-sar-pro": "Proto-Sara",
"csv": "Chin Sumtu",
"csw": "Swampy Cree",
"csy": "Chin Siyin",
"csz": "Coos",
"cta": "Tataltepec Chatino",
"ctc": "Chetco-Tolowa",
"ctd": "Chin Tedim",
"cte": "Tepinapa Chinantec",
"ctg": "Chittagong",
"cth": "Chin Thaiphum",
"ctl": "Tlacoatzintepec Chinantec",
"ctm": "Chitimacha",
"ctn": "Chhintange",
"cto": "Emberá-Catío",
"ctp": "Chatino Tanah Tinggi Barat",
"cts": "Bicolano Catanduanes Utara",
"ctt": "Wayanad Chetti",
"ctu": "Chol",
"ctz": "Zacatepec Chatino",
"cu": "Slavonic Gereja Kuno",
"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": "Cun",
"cur": "Chhulung",
"cus-ash": "Ashraaf",
"cus-hec-pro": "Proto-Cushitic Timur Tanah Tinggi",
"cus-pro": "Proto-Cushitic",
"cus-som-pro": "Proto-Somaloid",
"cus-sou-pro": "Proto-Cushitic Selatan",
"cut": "Teutila Cuicatec",
"cuu": "Tai Ya",
"cuv": "Cuvok",
"cuw": "Chukwa",
"cux": "Tepeuxila Cuicatec",
"cuy": "Cuitlatec",
"cv": "Chuvash",
"cvg": "Chug",
"cvn": "Valle Nacional Chinantec",
"cwa": "Kabwa",
"cwb": "Maindo",
"cwd": "Woods Cree",
"cwe": "Kwere",
"cwg": "Chewong",
"cwt": "Kuwaataay",
"cy": "Wales",
"cya": "Nopala Chatino",
"cyb": "Cayubaba",
"cyo": "Cuyunon",
"czh": "Huizhou",
"czk": "Knaanic",
"czn": "Zenzontepec Chatino",
"czo": "Min Tengah",
"czt": "Chin Zotung",
"da": "Denmark",
"daa": "Dangaléat",
"dac": "Dambi",
"dad": "Marik",
"dae": "Duupa",
"dag": "Dagbani",
"dah": "Gwahatike",
"dai": "Day",
"daj": "Dar Fur Daju",
"dak": "Dakota",
"dal": "Dahalo",
"dam": "Damakawa",
"dao": "Chin Daai",
"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": "Idahan",
"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": "Negerhollands",
"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": "Jerman",
"dec": "Dagik",
"ded": "Dedua",
"dee": "Dewoin",
"def": "Dezfuli",
"deg": "Degema",
"deh": "Dehwari",
"dei": "Demisa",
"dek": "Dek",
"dem": "Dem",
"dep": "Pidgin Delaware",
"der": "Deori",
"des": "Desano",
"dev": "Domung",
"dez": "Dengese",
"dga": "Dagaare Selatan",
"dgb": "Bunoge",
"dgc": "Agta Casiguran Dumagat",
"dgd": "Dagaari Dioula",
"dge": "Degenan",
"dgg": "Doga",
"dgh": "Dghwede",
"dgi": "Dagara Utara",
"dgk": "Dagba",
"dgn": "Dagoman",
"dgo": "Hindi Dogri",
"dgr": "Dogrib",
"dgs": "Dogoso",
"dgt": "Ntra'ngith",
"dgw": "Daungwurrung",
"dgx": "Doghoro",
"dgz": "Daga",
"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": "Dinka Tengah Selatan",
"dic": "Lakota Dida",
"did": "Didinga",
"dif": "Dieri",
"dig": "Digo",
"dii": "Dimbong",
"dij": "Dai",
"dik": "Dinka Barat Daya",
"dil": "Dilling",
"dim": "Dime",
"din": "Dinka",
"dio": "Dibo",
"dip": "Dinka Timur Laut",
"dir": "Dirim",
"dis": "Dimasa",
"diu": "Gciriku",
"diw": "Dinka Barat Laut",
"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": "Dinka Tenggara",
"dkx": "Mazagway",
"dlg": "Dolgan",
"dlk": "Dahalik",
"dlm": "Dalmatian",
"dln": "Darlong",
"dma": "Duma",
"dmb": "Mombo Dogon",
"dmc": "Gavak",
"dmd": "Madhi Madhi",
"dme": "Dugwor",
"dmf": "Medefaidrin",
"dmg": "Sungai",
"dmk": "Domaaki",
"dml": "Dameli",
"dmm": "Dama (Nigeria)",
"dmn-dam": "Dama (Sierra Leone)",
"dmn-mdw-pro": "Proto-Mande Barat",
"dmn-pro": "Proto-Mande",
"dmo": "Kemezung",
"dmr": "Damar Timur",
"dms": "Dampelas",
"dmu": "Dubu",
"dmv": "Dumpas",
"dmw": "Mudburra",
"dmx": "Dema",
"dmy": "Demta",
"dna": "Upper Grand Valley Dani",
"dnd": "Daonda",
"dne": "Ndendeule",
"dng": "Dungan",
"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": "Dani Barat",
"dny": "Dení",
"doa": "Dom",
"dob": "Dobu",
"doc": "Kam Utara",
"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": "Proto-Dravidia Tengah",
"dra-mkn": "Kannada Pertengahan",
"dra-nor-pro": "Proto-Dravidia Utara",
"dra-okn": "Kannada Kuno",
"dra-ote": "Telugu Kuno",
"dra-pro": "Proto-Dravidia",
"dra-sdo-pro": "Proto-Dravidia Selatan I",
"dra-sdt-pro": "Proto-Dravidia Selatan II",
"dra-sou-pro": "Proto-Dravidia Selatan",
"drb": "Dair",
"drc": "Minderico",
"drd": "Darmiya",
"drg": "Rungus",
"dri": "Lela",
"drl": "Baagandji",
"drn": "Damar Barat",
"dro": "Melanau Daro-Matu",
"drq": "Dura",
"drs": "Gedeo",
"dru": "Rukai",
"dru-pro": "Proto-Rukai",
"dry": "Darai",
"dsb": "Lower Sorbian",
"dse": "Dutch Sign Language",
"dsh": "Daasanach",
"dsi": "Disa",
"dsl": "Danish Sign Language",
"dsn": "Dusner",
"dso": "Desiya",
"dsq": "Tadaksahak",
"dta": "Daur",
"dtb": "Kadazan Labuk-Kinabatangan",
"dtd": "Ditidaht",
"dth": "Adithinngithigh",
"dti": "Ana Tinga Dogon",
"dtk": "Tene Kan Dogon",
"dtm": "Tomo Kan Dogon",
"dto": "Tommo So",
"dtp": "Kadazandusun",
"dtr": "Lotud",
"dts": "Toro So Dogon",
"dtt": "Toro Tegu Dogon",
"dtu": "Tebul Ure Dogon",
"dty": "Doteli",
"dua": "Duala",
"dub": "Dubli",
"duc": "Duna",
"due": "Agta Umiray Dumaget",
"duf": "Dumbea",
"dug": "Chiduruma",
"duh": "Dungra Bhil",
"dui": "Dumun",
"duk": "Uyajitaya",
"dul": "Agta Pulau Alabat",
"dum": "Belanda Pertengahan",
"dun": "Dusun Deyah",
"duo": "Agta Dupaningan",
"dup": "Duano",
"duq": "Dusun Malang",
"dur": "Dii",
"dus": "Dumi",
"duu": "Drung",
"duv": "Duvle",
"duw": "Dusun Witu",
"dux": "Duun",
"duy": "Agta Dicamay",
"duz": "Duli",
"dv": "Dhivehi",
"dva": "Duau",
"dwa": "Diri",
"dwr": "Dawro",
"dwu": "Dhuwal",
"dww": "Dawawa",
"dwy": "Dhuwaya",
"dwz": "Dewas Rai",
"dya": "Dyan",
"dyb": "Dyaberdyaber",
"dyd": "Dyugun",
"dyg": "Agta Villa Viciosa",
"dyi": "Djimini",
"dym": "Yanda Dogon",
"dyn": "Dyangadi",
"dyo": "Jola-Fonyi",
"dyu": "Dyula",
"dyy": "Dyaabugay",
"dz": "Dzongkha",
"dza": "Tunzu",
"dzg": "Dazaga",
"dzl": "Dzala",
"dzn": "Dzando",
"ebg": "Ebughu",
"ebk": "Bontoc Timur",
"ebr": "Ebrié",
"ebu": "Embu",
"ecr": "Eteocretan",
"ecs": "Bahasa Isyarat Ecuador",
"ecy": "Eteocypriot",
"ee": "Ewe",
"eee": "E",
"efa": "Efai",
"efe": "Efe",
"efi": "Efik",
"ega": "Ega",
"egl": "Emilian",
"ego": "Eggon",
"egx-dem": "Mesir Demotik",
"egy": "Mesir Purba",
"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": "Kayah Timur",
"el": "Greek",
"ele": "Elepi",
"elh": "El Hugeirat",
"eli": "Nding",
"elk": "Elkei",
"elm": "Eleme",
"elo": "El Molo",
"elu": "Elu",
"elx": "Elam",
"ema": "Emai",
"emb": "Embaloh",
"eme": "Emerillon",
"emg": "Meohang Timur",
"emi": "Mussau-Emira",
"emk": "Maninkakan Timur",
"emm": "Mamulique",
"emn": "Eman",
"emp": "Emberá Utara",
"ems": "Alutiiq",
"emu": "Muria Timur",
"emw": "Emplawas",
"emx": "Erromintxela",
"emy": "Maya Epigrafi",
"en": "Inggeris",
"ena": "Apali",
"enb": "Markweeta",
"enc": "En",
"end": "Ende",
"enf": "Enets Hutan",
"enh": "Enets Tundra",
"enl": "Enlhet",
"enm": "Inggeris Pertengahan",
"enn": "Engenni",
"eno": "Enggano",
"enq": "Enga",
"enr": "Emem",
"enu": "Enu",
"env": "Enwan",
"enw": "Enwang",
"enx": "Enxet",
"eo": "Esperanto",
"eot": "Eotile",
"epi": "Epie",
"era": "Eravallan",
"erg": "Sie",
"erh": "Eruwa",
"eri": "Ogea",
"erk": "Efate Selatan",
"ero-gsz": "Geshiza",
"ero-nya": "Nyagrong Minyag",
"ero-tau": "Stau",
"err": "Erre",
"ers": "Ersu",
"ert": "Eritai",
"erw": "Erokwanas",
"es": "Sepanyol",
"ese": "Ese Ejja",
"esh": "Eshtehardi",
"esl": "Bahasa Isyarat Mesir",
"esm": "Esuma",
"esn": "Bahasa Isyarat El Salvador",
"eso": "Bahasa Isyarat Estonia",
"esq": "Esselen",
"ess": "Yupik Siberia Tengah",
"esu": "Yup'ik",
"esx-esk-pro": "Proto-Eskimo",
"esx-ink": "Inuktun",
"esx-inq": "Inuinnaqtun",
"esx-inu-pro": "Proto-Inuit",
"esx-pro": "Proto-Eskimo-Aleut",
"esx-tut": "Tunumiisut",
"esy": "Eskayan",
"et": "Estonia",
"etb": "Etebi",
"etc": "Etchemin",
"eth": "Bahasa Isyarat Habsyah",
"etn": "Eton (Vanuatu)",
"eto": "Eton (Cameroon)",
"etr": "Edolo",
"ets": "Yekhee",
"ett": "Etruria",
"etu": "Ejagham",
"etx": "Eten",
"etz": "Semimi",
"eu": "Basque",
"euq-pro": "Proto-Basque",
"eve": "Even",
"evh": "Uvbie",
"evn": "Evenki",
"ewo": "Ewondo",
"ext": "Extremaduran",
"eya": "Eyak",
"eyo": "Keiyo",
"eza": "Ezaa",
"eze": "Uzekwe",
"fa": "Parsi",
"faa": "Fasu",
"fab": "Annobon",
"fad": "Wagi",
"faf": "Fagani",
"fag": "Finongan",
"fah": "Fali Baissa",
"fai": "Faiwol",
"faj": "Kursav",
"fak": "Fang (Beboid)",
"fal": "Fali Selatan",
"fam": "Fam",
"fan": "Fang (Bantu)",
"fap": "Palor",
"far": "Fataleka",
"fau": "Fayu",
"fax": "Fala",
"fay": "Fars Barat Daya",
"faz": "Fars Barat Laut",
"fbl": "Bikol Miraya Barat",
"fcs": "Bahasa Isyarat Quebec",
"fer": "Feroge",
"ff": "Fula",
"ffi": "Foia Foia",
"fgr": "Fongoro",
"fi": "Finland",
"fia": "Nobiin",
"fie": "Fyer",
"fif": "Faifi",
"fip": "Fipa",
"fir": "Firan",
"fit": "Meänkieli",
"fiw": "Fiwaga",
"fj": "Fiji",
"fkk": "Kirya-Konzel",
"fkv": "Kven",
"fla": "Salish Montana",
"flh": "Foau",
"fli": "Fali",
"fll": "Fali Utara",
"fln": "Pulau Flinders",
"flr": "Fuliiru",
"fly": "Tsotsitaal",
"fmp": "Fe'fe'",
"fmu": "Muria Barat Jauh",
"fng": "Fanagalo",
"fni": "Fania",
"fo": "Faroe",
"fod": "Foodo",
"foi": "Foi",
"fom": "Foma",
"fon": "Fon",
"for": "Fore",
"fos": "Siraya",
"fpe": "Pichinglis",
"fqs": "Fas",
"fr": "Perancis",
"frd": "Fordata",
"frm": "Perancis Pertengahan",
"fro": "Perancis Kuno",
"frp": "Franco-Provençal",
"frq": "Forak",
"frr": "Frisia Utara",
"frt": "Fortsenal",
"fse": "Bahasa Isyarat Finland",
"fsl": "Bahasa Isyarat Perancis",
"fss": "Bahasa Isyarat Finland-Sweden",
"fud": "Futuna Timur",
"fuj": "Ko",
"fum": "Fum",
"fun": "Fulniô",
"fur": "Friulian",
"fut": "Futuna-Aniwa",
"fuu": "Furu",
"fuy": "Fuyug",
"fvr": "Fur",
"fwa": "Fwâi",
"fwe": "Fwe",
"fy": "Frisia Barat",
"ga": "Ireland",
"gba-pro": "Proto-Gbaya",
"gd": "Gaelik Scotland",
"gem-pro": "Proto-Germanik",
"gl": "Galicia",
"gme-bur": "Burgundia",
"gme-cgo": "Goth Crimea",
"gmq-gut": "Gutnish",
"gmq-jmk": "Jamtish",
"gmq-mno": "Norway Pertengahan",
"gmq-oda": "Denmark Kuno",
"gmq-ogt": "Gutnish Kuno",
"gmq-osw": "Sweden Kuno",
"gmq-pro": "Proto-Norse",
"gmq-scy": "Scanian",
"gmw-bgh": "Bergish",
"gmw-cfr": "Franconia Tengah",
"gmw-ecg": "Jerman Tengah Timur",
"gmw-fin": "Fingallian",
"gmw-gts": "Gottscheerish",
"gmw-jdt": "Belanda Jersey",
"gmw-msc": "Scots Pertengahan",
"gmw-pro": "Proto-Germanik Barat",
"gmw-rfr": "Franconia Rhine",
"gmw-stm": "Schwaben Szatmár",
"gmw-tsx": "Saxon Transylvania",
"gmw-vog": "Jerman Volga",
"gmw-zps": "Jerman Zipser",
"gn-cls": "Guarani Klasik",
"grk-cal": "Greek Calabria",
"grk-ita": "Greek Italiot",
"grk-mar": "Greek Mariupol",
"grk-pro": "Proto-Hellenik",
"gu": "Gujerat",
"gv": "Manx",
"gvf": "Golin",
"gvj": "Guajá",
"gvl": "Gulay",
"gvm": "Gurmana",
"gvn": "Kuku-Yalanji",
"gvo": "Gavião do Jiparaná",
"gvp": "Gavião Pará",
"gvr": "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è Selatan",
"gya": "Gbaya Barat Laut",
"gyb": "Garus",
"gyd": "Kayardild",
"gye": "Gyem",
"gyf": "Gungabula",
"gyg": "Gbayi",
"gyi": "Gyele",
"gyl": "Gayil",
"gym": "Ngäbere",
"gyn": "Kreol Inggeris Guyana",
"gyo": "Gyalsumdo",
"gyr": "Guarayu",
"gyy": "Gunya",
"gza": "Ganza",
"gzn": "Gane",
"ha": "Hausa",
"haa": "Hän",
"hab": "Bahasa Isyarat Hanoi",
"hac": "Gurani",
"had": "Hatam",
"haf": "Bahasa Isyarat Haiphong",
"hag": "Hanga",
"hah": "Hahon",
"hai": "Haida",
"haj": "Hajong",
"hak": "Hakka",
"hal": "Halang",
"ham": "Hewa",
"hao": "Hakö",
"hap": "Hupla",
"har": "Harari",
"has": "Haisla",
"hav": "Havu",
"haw": "Hawaii",
"hax": "Haida Selatan",
"hay": "Haya",
"hba": "Hamba",
"hbb": "Huba",
"hbn": "Heiban",
"hbu": "Habu",
"hca": "Hindi Kreol Andaman",
"hch": "Huichol",
"hdn": "Haida Utara",
"hds": "Bahasa Isyarat Honduras",
"hdy": "Hadiyya",
"he": "Ibrani",
"hea": "Miao Qiandong Utara",
"hed": "Herdé",
"heg": "Helong",
"heh": "Hehe",
"hei": "Heiltsuk",
"hem": "Hemba",
"hgm": "Haiǁom",
"hgw": "Haigwai",
"hhi": "Hoia Hoia",
"hhr": "Kerak",
"hhy": "Hoyahoya",
"hi": "Hindi",
"hia": "Lamang",
"hib": "Hibito",
"hid": "Hidatsa",
"hif": "Hindi Fiji",
"hig": "Kamwe",
"hih": "Pamosu",
"hii": "Hinduri",
"hij": "Hijuk",
"hik": "Seit-Kaitetu",
"hil": "Hiligaynon",
"hio": "Tshwa",
"hir": "Himarimã",
"hit": "Het",
"hiw": "Hiw",
"hix": "Hixkaryana",
"hji": "Haji",
"hka": "Kahe",
"hke": "Hunde",
"hkh": "Pogali",
"hkk": "Hunjara-Kaina Ke",
"hkn": "Mel-Khaonh",
"hks": "Bahasa Isyarat Hong Kong",
"hla": "Halia",
"hlb": "Halbi",
"hld": "Halang Doan",
"hle": "Hlersu",
"hlt": "Nga La",
"hma": "Hmong Mashan Selatan",
"hmb": "Humburi Senni",
"hmc": "Hmong Huishui Tengah",
"hmd": "A-Hmao",
"hme": "Hmong Huishui Timur",
"hmf": "Hmong Don",
"hmg": "Hmong Guiyang Barat Daya",
"hmh": "Hmong Huishui Barat Daya",
"hmi": "Hmong Huishui Utara",
"hmj": "Ge",
"hmk": "Maek",
"hml": "Hmong Luopohe",
"hmm": "Hmong Mashan Tengah",
"hmn-pro": "Proto-Hmongik",
"hmp": "Hmong Mashan Utara",
"hmq": "Miao Qiandong Timur",
"hmr": "Hmar",
"hms": "Miao Qiandong Selatan",
"hmt": "Hamtai",
"hmu": "Hamap",
"hmv": "Hmong Dô",
"hmw": "Hmong Mashan Barat",
"hmx-mie-pro": "Proto-Mienik",
"hmx-pro": "Proto-Hmong-Mien",
"hmy": "Hmong Guiyang Selatan",
"hmz": "Hmong Shua",
"hna": "Mina",
"hnd": "Hindko Selatan",
"hne": "Chhattisgarhi",
"hnh": "ǁAni",
"hni": "Hani",
"hnj": "Hmong Hijau",
"hnn": "Hanunoo",
"hno": "Hindko Utara",
"hns": "Hindustan Caribbean",
"hnu": "Hung",
"ho": "Hiri Motu",
"hoa": "Hoava",
"hob": "Mari Austronesia",
"hoc": "Ho",
"hod": "Holma",
"hoe": "Horom",
"hoh": "Hobyót",
"hoi": "Holikachuk",
"hoj": "Hadothi",
"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": "Hunsrik",
"hrz": "Harzani",
"hsb": "Sorbia Atas",
"hsh": "Bahasa Isyarat Hungary",
"hsl": "Bahasa Isyarat Hausa",
"hsn": "Xiang",
"hss": "Harsusi",
"ht": "Kreol Haiti",
"hti": "Hoti",
"hto": "Minica Huitoto",
"hts": "Hadza",
"htu": "Hitu",
"hu": "Hungary",
"hub": "Huambisa",
"huc": "ǂHoan",
"hud": "Huaulu",
"huf": "Humene",
"hug": "Huachipaeri",
"huh": "Huilliche",
"hui": "Huli",
"huj": "Hmong Guiyang Utara",
"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": "Kreol Hawaii",
"hwo": "Hwana",
"hy": "Armenia",
"hya": "Hya",
"hyx-pro": "Proto-Armenia",
"hz": "Herero",
"ia": "Interlingua",
"iai": "Iaai",
"ian": "Iatmul",
"iar": "Purari",
"iba": "Iban",
"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": "Bahasa Isyarat Iceland",
"icr": "Inggeris Kreol Islander",
"id": "Indonesia",
"ida": "Idakho-Isukha-Tiriki",
"idb": "Indo-Portugis",
"idc": "Idon",
"idd": "Ede Idaca",
"ide": "Idere",
"idi": "Idi",
"idr": "Indri",
"ids": "Idesa",
"idt": "Idaté",
"idu": "Idoma",
"ie": "Interlingue",
"ifa": "Amganad Ifugao",
"ifb": "Batad Ifugao",
"ife": "Ifè",
"iff": "Ifo",
"ifk": "Tuwali Ifugao",
"ifm": "Teke-Fuumu",
"ifu": "Mayoyao Ifugao",
"ify": "Keley-I Kallahan",
"ig": "Igbo",
"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": "Nuosu",
"iir-nur-pro": "Proto-Nuristani",
"iir-pro": "Proto-Indo-Iran",
"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": "Bahasa Isyarat Inuit",
"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": "Iranun",
"ilo": "Ilocano",
"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": "Prakrit Ashoka",
"inc-dng-pro": "Proto-Dangari",
"inc-kam": "Prakrit Kamarupi",
"inc-kho": "Kholosi",
"inc-khr": "Khortha",
"inc-krd-pro": "Proto-Kamta",
"inc-mas": "Assam Pertengahan",
"inc-mbn": "Bengal Pertengahan",
"inc-mgu": "Gujarati Pertengahan",
"inc-mor": "Odia Pertengahan",
"inc-oas": "Assam Awal",
"inc-oaw": "Awadhi Kuno",
"inc-obn": "Bengal Kuno",
"inc-ogu": "Gujarati Kuno",
"inc-ohi": "Hindi Kuno",
"inc-oor": "Odia Kuno",
"inc-opa": "Punjabi Kuno",
"inc-pro": "Proto-Indo-Arya",
"inc-sar": "Sarazi",
"ine-ana-pro": "Proto-Anatolia",
"ine-bsl-pro": "Proto-Balto-Slav",
"ine-kal": "Kalašma",
"ine-pae": "Paeonia",
"ine-pro": "Proto-Indo-Eropah",
"ine-toc-pro": "Proto-Tocharia",
"ing": "Deg Xinag",
"inh": "Ingush",
"inj": "Jungle Inga",
"inl": "Bahasa Isyarat Indonesia",
"inm": "Minaean",
"inn": "Isinai",
"ino": "Inoke-Yate",
"inp": "Iñapari",
"ins": "Bahasa Isyarat India",
"int": "Intha",
"inz": "Ineseño",
"io": "Ido",
"ior": "Inor",
"iou": "Tuma-Irumu",
"iow": "Chiwere",
"ipi": "Ipili",
"ipo": "Ipiko",
"iqu": "Iquito",
"iqw": "Ikwo",
"ira-kms-pro": "Proto-Komisenia",
"ira-mny-pro": "Proto-Munji-Yidgha",
"ira-mpr-pro": "Proto-Medo-Parthia",
"ira-pat-pro": "Proto-Pathan",
"ira-pro": "Proto-Iran",
"ira-sgc-pro": "Proto-Sogdia",
"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-Iroquois Utara",
"iro-pro": "Proto-Iroquois",
"irr": "Ir",
"iru": "Irula",
"irx": "Kamberau",
"iry": "Iraya",
"is": "Iceland",
"isa": "Isabi",
"isc": "Isconahua",
"isd": "Isnag",
"ise": "Bahasa Isyarat Itali",
"isg": "Bahasa Isyarat Ireland",
"ish": "Esan",
"isi": "Nkem-Nkum",
"isk": "Ishkashimi",
"ism": "Masimasi",
"isn": "Isanzu",
"iso": "Isoko",
"isr": "Bahasa Isyarat Israel",
"ist": "Istriot",
"isu": "Isu",
"isv": "Interslavic",
"it": "Itali",
"itb": "Binongan Itneg",
"itc-pro": "Proto-Italik",
"itc-psa": "Pra-Samnit",
"itd": "Tidung Selatan",
"ite": "Itene",
"iti": "Inlaod Itneg",
"itk": "Judeo-Itali",
"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": "Itzá",
"iu": "Inuktitut",
"ium": "Iu Mien",
"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": "Ingria",
"izi": "Izi-Ezaa-Ikwo-Mgbo",
"izr": "Izere",
"izz": "Izi",
"ja": "Jepun",
"jaa": "Jamamadí",
"jab": "Hyam",
"jac": "Jakaltek",
"jad": "Jahanka",
"jae": "Jabem",
"jaf": "Jara",
"jah": "Jah Hut",
"jaj": "Zazao",
"jak": "Jakun",
"jal": "Yalahatan",
"jam": "Kreol Jamaica",
"jan": "Janday",
"jao": "Yanyuwa",
"jaq": "Yaqay",
"jas": "New Caledonian Javanese",
"jat": "Jakati",
"jau": "Yaur",
"jax": "Melayu Jambi",
"jay": "Yan-nhangu",
"jaz": "Jawe",
"jbj": "Arandai",
"jbk": "Barikewa",
"jbn": "Nefusa",
"jbo": "Lojban",
"jbr": "Jofotek-Bromnya",
"jbt": "Jabutí",
"jbu": "Jukun Takum",
"jbw": "Yawijibaya",
"jcs": "Bahasa Isyarat Negara Jamaica",
"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": "Bahasa Isyarat Jhankot",
"jia": "Jina",
"jib": "Jibu",
"jic": "Tol",
"jid": "Bu",
"jie": "Jilbe",
"jig": "Jingulu",
"jih": "Shangzhai",
"jii": "Jiiddu",
"jil": "Jilim",
"jim": "Jimjimen",
"jio": "Jiamao",
"jiq": "Khroskyabs",
"jit": "Jita",
"jiu": "Youle Jino",
"jiv": "Shuar",
"jiy": "Buyuan Jino",
"jje": "Jeju",
"jjr": "Zhár",
"jka": "Kaera",
"jko": "Kubo",
"jkr": "Koro (India)",
"jku": "Labir",
"jle": "Ngile",
"jls": "Bahasa Isyarat Jamaica",
"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": "Bahasa Isyarat Jordan",
"jow": "Jowulu",
"jpr": "Judeo-Persian",
"jpx-hcj": "Hachijō",
"jpx-pro": "Proto-Jeponik",
"jpx-ryu-pro": "Proto-Ryukyu",
"jqr": "Jaqaru",
"jra": "Jarai",
"jrr": "Jiru",
"jru": "Japrería",
"jsl": "Bahasa Isyarat Jepun",
"jua": "Júma",
"jub": "Wannu",
"juc": "Jurchen",
"jud": "Worodougou",
"juh": "Hone",
"jui": "Ngadjuri",
"juk": "Wapan",
"jul": "Jirel",
"jum": "Jumjum",
"jun": "Juang",
"juo": "Jiba",
"jup": "Hupdë",
"jur": "Jurúna",
"jus": "Bahasa Isyarat Jumla",
"jut": "Jutish",
"juu": "Ju",
"juw": "Wãpha",
"juy": "Juray",
"jv": "Jawa",
"jvd": "Javindo",
"jvn": "Jawa Caribbean",
"jwi": "Jwira-Pepesa",
"jyy": "Jaya",
"ka": "Georgia",
"kaa": "Karakalpak",
"kab": "Kabyle",
"kac": "Jingpho",
"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": "Proto-Karen",
"kaw": "Jawa Kuno",
"kax": "Kao",
"kay": "Kamayurá",
"kba": "Kalarko",
"kbb": "Kaxuyana",
"kbc": "Kadiwéu",
"kbd": "Kabardia",
"kbe": "Kanju",
"kbh": "Camsá",
"kbi": "Kaptiau",
"kbj": "Kari",
"kbk": "Grass Koiari",
"kbm": "Iwal",
"kbn": "Kare (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": "Khanty Timur",
"kca-nor": "Khanty Utara",
"kca-pro": "Proto-Khanty",
"kca-sou": "Khanty Selatan",
"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": "Numee",
"kdl": "Tsikimba",
"kdm": "Kagoma",
"kdn": "Kunda",
"kdp": "Kaningdon-Nindem",
"kdq": "Koch",
"kdr": "Karaim",
"kdt": "Kuy",
"kdu": "Kadaru",
"kdv": "Kado",
"kdw": "Koneraw",
"kdx": "Kam",
"kdy": "Keder",
"kdz": "Kwaja",
"kea": "Kabuverdianu",
"keb": "Kélé",
"kec": "Keiga",
"ked": "Kerewe",
"kee": "Keres Timur",
"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 (Afrika Barat)",
"kfp": "Korwa",
"kfq": "Korku",
"kfr": "Kachchi",
"kfs": "Bilaspuri",
"kft": "Kanjari",
"kfu": "Katkari",
"kfv": "Kurmukar",
"kfw": "Kharam Naga",
"kfx": "Kullu Pahari",
"kfy": "Kumaoni",
"kfz": "Koromfé",
"kg": "Kongo",
"kga": "Koyaga",
"kgb": "Kawe",
"kgd": "Kataang",
"kge": "Komering",
"kgf": "Kube",
"kgg": "Kusunda",
"kgi": "Selangor Sign Language",
"kgj": "Gamale Kham",
"kgk": "Kaiwá",
"kgl": "Kunggari",
"kgm": "Karipúna",
"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": "Khasi",
"khb": "Lü",
"khc": "Tukang Besi Utara",
"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": "Khotan",
"khp": "Kapauri",
"khq": "Koyra Chiini",
"khr": "Kharia",
"khs": "Kasua",
"kht": "Khamti",
"khu": "Nkhumbi",
"khv": "Khvarshi",
"khw": "Khowar",
"khx": "Kanu",
"khy": "Ekele",
"khz": "Keapara",
"ki": "Kikuyu",
"kia": "Kim",
"kib": "Koalib",
"kic": "Kickapoo",
"kid": "Koshin",
"kie": "Kibet",
"kif": "Kham Parbate Timur",
"kig": "Kimaama",
"kih": "Kilmeri",
"kii": "Kitsai",
"kij": "Kilivila",
"kil": "Kariya",
"kim": "Tofa",
"kio": "Kiowa",
"kip": "Sheshi Kham",
"kiq": "Kosadle",
"kis": "Kis",
"kit": "Agob",
"kiv": "Kimbu",
"kiw": "Kiwai Timur Laut",
"kix": "Naga Khiamniungan",
"kiy": "Kirikiri",
"kiz": "Kisi",
"kj": "Kwanyama",
"kja": "Mlap",
"kjb": "Q'anjob'al",
"kjc": "Konjo Pesisir",
"kjd": "Kiwai Selatan",
"kje": "Kisar",
"kjg": "Khmu",
"kjh": "Khakas",
"kji": "Zabana",
"kjj": "Khinalug",
"kjk": "Highland Konjo",
"kjl": "Kham",
"kjm": "Kháng",
"kjn": "Kunjen",
"kjo": "Harijan Kinnauri",
"kjp": "Pwo Timur",
"kjq": "Keres Barat",
"kjr": "Kurudu",
"kjs": "Kewa Timur",
"kjt": "Phrae Pwo",
"kju": "Kashaya",
"kjx": "Ramopa",
"kjy": "Erave",
"kjz": "Bumthangkha",
"kk": "Kazakh",
"kka": "Kakanda",
"kkb": "Kwerisa",
"kkc": "Odoodee",
"kkd": "Kinuku",
"kke": "Kakabe",
"kkf": "Monpa Kalaktang",
"kkg": "Kalinga Lembah Mabaka",
"kkh": "Khün",
"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": "Greenland",
"kla": "Klamath-Modoc",
"klb": "Kiliwa",
"klc": "Kolbila",
"kld": "Gamilaraay",
"kle": "Kulung",
"klf": "Kendeje",
"klg": "Kalagan Tagakaulu",
"klh": "Weliki",
"kli": "Kalumpang",
"klj": "Khalaj",
"klk": "Kono (Nigeria)",
"kll": "Kalagan Kagan",
"klm": "Kolom",
"kln": "Kalenjin",
"klo": "Kapya",
"klp": "Kamasa",
"klq": "Rumu",
"klr": "Khaling",
"kls": "Kalasha",
"klt": "Nukna",
"klu": "Klao",
"klv": "Maskelynes",
"klw": "Lindu",
"klx": "Koluwawa",
"kly": "Kalao",
"klz": "Kabola",
"km": "Khmer",
"kma": "Konni",
"kmb": "Kimbundu",
"kmc": "Kam Selatan",
"kmd": "Kalinga Madukayang",
"kme": "Bakole",
"kmf": "Kare (New Guinea)",
"kmg": "Kâte",
"kmh": "Kalam",
"kmi": "Kami",
"kmj": "Kumarbhag Paharia",
"kmk": "Kalinga Limos",
"kml": "Kalinga Tanudan",
"kmm": "Kom (India)",
"kmn": "Awtuw",
"kmo": "Kwoma",
"kmp": "Gimme",
"kmq": "Kwama",
"kmr": "Kurdi Utara",
"kms": "Kamasau",
"kmt": "Kemtuik",
"kmu": "Kanite",
"kmv": "Perancis Kreol Karipúna",
"kmw": "Kumu",
"kmx": "Waboda",
"kmy": "Koma",
"kmz": "Turki Khorasan",
"kn": "Kannada",
"kna": "Kanakuru",
"knb": "Kalinga Lubuagan",
"knd": "Konda",
"kne": "Kankanaey",
"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": "Salako",
"kny": "Kanyok",
"knz": "Kalamsé",
"ko": "Korea",
"ko-ear": "Korea Moden Awal",
"koa": "Konomala",
"koc": "Kpati",
"kod": "Kodi",
"koe": "Kacipo-Balesi",
"kof": "Kubi",
"kog": "Cogui",
"koh": "Koyo",
"koi": "Komi-Permyak",
"kok": "Konkani",
"kol": "Kol (New Guinea)",
"koo": "Konzo",
"kop": "Waube",
"koq": "Kota (Gabon)",
"kos": "Kosrae",
"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": "Koho",
"kpn": "Kepkiriwát",
"kpo": "Ikposo",
"kpp": "Karen Paku",
"kpq": "Korupun-Sela",
"kpr": "Korafe-Yegha",
"kps": "Tehit",
"kpt": "Karata",
"kpu": "Kafoa",
"kpv": "Komi-Zyrian",
"kpw": "Kobon",
"kpx": "Koiari Gunung",
"kpy": "Koryak",
"kpz": "Kupsabiny",
"kqa": "Mum",
"kqb": "Kovai",
"kqc": "Doromu-Koki",
"kqd": "Koy Sanjaq Surat",
"kqe": "Kalagan",
"kqf": "Kakabai",
"kqg": "Khe",
"kqh": "Kisankasa",
"kqi": "Koitabu",
"kqj": "Koromira",
"kqk": "Gbe Kotafon",
"kql": "Kyenele",
"kqm": "Khisa",
"kqn": "Kaonde",
"kqo": "Krahn Timur",
"kqp": "Kimré",
"kqq": "Krenak",
"kqr": "Kimaragang",
"kqs": "Kissi Utara",
"kqt": "Kadazan Sungai Klias",
"kqu": "Seroa",
"kqv": "Okolod",
"kqw": "Kandas",
"kqx": "Mser",
"kqy": "Koorete",
"kqz": "Korana",
"kr": "Kanuri",
"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": "Karelia",
"krm": "Krim",
"krn": "Sapo",
"kro-pro": "Proto-Kru",
"krp": "Korop",
"krr": "Kru'ng",
"krs": "Kresh",
"kru": "Kurukh",
"krv": "Kavet",
"krw": "Krahn Barat",
"krx": "Karon",
"kry": "Kryts",
"krz": "Sota Kanum",
"ks": "Kashmir",
"ksa": "Shuwa-Zamani",
"ksb": "Shambala",
"ksc": "Kalinga Selatan",
"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": "Kissi Selatan",
"kst": "Winyé",
"ksu": "Khamyang",
"ksv": "Kusu",
"ksw": "Karen S'gaw",
"ksx": "Kedang",
"ksy": "Kharia Thar",
"ksz": "Kodaku",
"kta": "Katua",
"ktb": "Kambaata",
"ktc": "Kholok",
"ktd": "Kokata",
"ktf": "Kwami",
"ktg": "Kalkatungu",
"kth": "Karanga",
"kti": "Muyu Utara",
"ktj": "Plapo Krumen",
"ktk": "Kaniet",
"ktl": "Koroshi",
"ktm": "Kurti",
"ktn": "Karitiâna",
"kto": "Kuot",
"ktp": "Kaduo",
"ktq": "Katabaga",
"ktr": "Tinagas Kota Marudu",
"kts": "Muyu Selatan",
"ktt": "Ketum",
"ktu": "Kituba",
"ktv": "Katu Timur",
"ktw": "Kato",
"ktx": "Kaxararí",
"kty": "Kango",
"ktz": "Juǀ'hoan",
"ku-pro": "Proto-Kurd",
"kub": "Kutep",
"kuc": "Kwinsu",
"kud": "Auhelawa",
"kue": "Kuman",
"kuf": "Katu Barat",
"kug": "Kupa",
"kuh": "Kushi",
"kui": "Kuikúro",
"kuj": "Kuria",
"kuk": "Kepo'",
"kul": "Kulere",
"kum": "Kumyk",
"kun": "Kunama",
"kuo": "Kumukio",
"kup": "Kunimaipa",
"kuq": "Karipuna",
"kus": "Kusaal",
"kut": "Kutenai",
"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": "Bahasa Isyarat Korea",
"kvl": "Karen Brek",
"kvm": "Kendem",
"kvn": "Kuna Sempadan",
"kvo": "Dobel",
"kvp": "Kompane",
"kvq": "Karen Geba",
"kvr": "Kerinci",
"kvt": "Karen Lahta",
"kvu": "Karen Yinbaw",
"kvv": "Kola",
"kvw": "Wersing",
"kvx": "Parkari Koli",
"kvy": "Karen Yintale",
"kvz": "Tsakwambo",
"kw": "Cornish",
"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": "Khonso",
"kxd": "Melayu Brunei",
"kxe": "Kakihum",
"kxf": "Karen Manumanaw",
"kxh": "Karo",
"kxi": "Murut Keningau",
"kxj": "Kulfa",
"kxk": "Karen Zayein",
"kxl": "Nepal Kurux",
"kxm": "Khmer Utara",
"kxn": "Kanowit",
"kxo": "Kanoé",
"kxp": "Wadiyara Koli",
"kxq": "Smärky Kanum",
"kxr": "Koro (New Guinea)",
"kxs": "Kangjia",
"kxt": "Koiwat",
"kxu": "Kui (India)",
"kxv": "Kuvi",
"kxw": "Konai",
"kxx": "Likuba",
"kxy": "Kayong",
"kxz": "Kerewo",
"ky": "Kyrgyz",
"kya": "Kwaya",
"kyb": "Kalinga Butbut",
"kyc": "Kyaka",
"kyd": "Karey",
"kye": "Krache",
"kyf": "Kouya",
"kyg": "Keyagana",
"kyh": "Karok",
"kyi": "Kiput",
"kyj": "Karao",
"kyk": "Kamayo",
"kyl": "Kalapuya",
"kym": "Kpatili",
"kyn": "Karolanos",
"kyo": "Kelon",
"kyp": "Kang",
"kyq": "Kenga",
"kyr": "Kuruáya",
"kys": "Kayan Baram",
"kyt": "Kayagar",
"kyu": "Kayah Barat",
"kyv": "Kayort",
"kyw": "Kudmali",
"kyx": "Rapoisi",
"kyy": "Kambaira",
"kyz": "Kayabí",
"kza": "Karaboro Barat",
"kzb": "Kaibobo",
"kzc": "Bondoukou Kulango",
"kzd": "Kadai",
"kze": "Kosena",
"kzf": "Da'a Kaili",
"kzg": "Kikai",
"kzh": "Dongolawi",
"kzi": "Kelabit",
"kzj": "Kadazan",
"kzk": "Kazukuru",
"kzl": "Kayeli",
"kzm": "Kais",
"kzn": "Kokola",
"kzo": "Kaningi",
"kzp": "Kaidipang",
"kzq": "Kaike",
"kzr": "Karang",
"kzs": "Dusun Sugut",
"kzt": "Dusun Tambunan",
"kzu": "Kayupulau",
"kzv": "Komyandaret",
"kzw": "Kariri",
"kzx": "Kamarian",
"kzy": "Kango-Sua",
"kzz": "Kalabra",
"la": "Latin",
"laa": "Subanun Lapuyan",
"lab": "Linear A",
"lac": "Lacandon",
"lad": "Ladino",
"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": "Luxembourg",
"lbb": "Label",
"lbc": "Lakkia",
"lbe": "Lak",
"lbf": "Tinani",
"lbg": "Laopang",
"lbi": "La'bi",
"lbj": "Ladakhi",
"lbk": "Bontoc Tengah",
"lbl": "Bikol Libon",
"lbm": "Lodhi",
"lbn": "Lamet",
"lbo": "Laven",
"lbq": "Wampar",
"lbr": "Lorung Utara",
"lbs": "Bahasa Isyarat Libya",
"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": "Lawa Barat",
"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": "Lenca Honduras",
"leo": "Leti (Cameroon)",
"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": "Lezgi",
"lfa": "Lefa",
"lfn": "Lingua Franca Nova",
"lg": "Luganda",
"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": "Limburg",
"lia": "Limba Barat-Tengah",
"lib": "Likum",
"lic": "Hlai",
"lid": "Nyindrou",
"lie": "Likila",
"lif": "Limbu",
"lig": "Ligbi",
"lih": "Lihir",
"lii": "Lingkhim",
"lij": "Ligurian",
"lik": "Lika",
"lil": "Lillooet",
"lio": "Liki",
"lip": "Sekpele",
"liq": "Libido",
"lir": "Liberian Kreyol",
"lis": "Lisu",
"liu": "Logorik",
"liv": "Livonian",
"liw": "Col",
"lix": "Liabuku",
"liy": "Banda-Bambari",
"liz": "Libinza",
"lja": "Golpa",
"lje": "Rampi",
"lji": "Laiyolo",
"ljl": "Li'o",
"ljp": "Lampung Api",
"ljw": "Yirandali",
"ljx": "Yuru",
"lka": "Lakalei",
"lkb": "Kabras",
"lkc": "Kucong",
"lkd": "Lakondê",
"lke": "Kenyi",
"lkh": "Lakha",
"lki": "Laki",
"lkj": "Remun",
"lkl": "Laeko-Libuat",
"lkm": "Kalaamaya",
"lkn": "Lakon",
"lko": "Khayo",
"lkr": "Päri",
"lks": "Kisa",
"lkt": "Lakota",
"lku": "Kungkari",
"lky": "Lokoya",
"lla": "Lala-Roba",
"llb": "Lolo",
"llc": "Lele (Guinea)",
"lld": "Ladin",
"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": "Efate Utara",
"llq": "Lolak",
"lls": "Lithuanian Sign Language",
"llu": "Lau",
"llx": "Lauan",
"lma": "Limba Timur",
"lmb": "Merei",
"lmc": "Limilngan",
"lmd": "Lumun",
"lme": "Pévé",
"lmf": "Lembata Selatan",
"lmg": "Lamogai",
"lmh": "Lambichhong",
"lmi": "Lombi",
"lmj": "Lembata Barat",
"lmk": "Lamkang",
"lml": "Raga",
"lmn": "Lambadi",
"lmo": "Lombard",
"lmp": "Limbum",
"lmq": "Lamatuka",
"lmr": "Lamalera",
"lmu": "Lamenu",
"lmv": "Lomaiviti",
"lmw": "Lake Miwok",
"lmx": "Laimbue",
"lmy": "Laboya",
"lmz": "Lumbee",
"ln": "Lingala",
"lna": "Langbashe",
"lnb": "Mbalanhu",
"lnd": "Lun Bawang",
"lnh": "Lanoh",
"lni": "Daantanai'",
"lnj": "Linngithigh",
"lnl": "Banda Tengah Selatan",
"lnm": "Langam",
"lnn": "Lorediakarkar",
"lno": "Lango (Sudan)",
"lns": "Lamnso'",
"lnu": "Longuda",
"lnw": "Lanima",
"lo": "Lao",
"loa": "Loloda",
"lob": "Lobi",
"loc": "Inonhan",
"lod": "Berawan",
"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": "Kreol Louisiana",
"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": "Lur Utara",
"lre": "Laurentia",
"lrg": "Laragia",
"lri": "Marachi",
"lrk": "Loarki",
"lrl": "Larestani",
"lrm": "Marama",
"lrn": "Lorang",
"lro": "Laro",
"lrr": "Lorung Selatan",
"lrt": "Melayu Larantuka",
"lrv": "Larevat",
"lrz": "Lemerig",
"lsa": "Lasgerdi",
"lsd": "Lishana Deni",
"lse": "Lusengo",
"lsh": "Lish",
"lsi": "Lashi",
"lsl": "Bahasa Isyarat Latvia",
"lsm": "Saamia",
"lso": "Bahasa Isyarat Lao",
"lsp": "Bahaaa Isyarat Panama",
"lsr": "Aruop",
"lss": "Lasi",
"lst": "Bahasa Isyarat Trinidad dan Tobago",
"lsy": "Bahaaa Isyarat Mauritius",
"lt": "Lithuania",
"ltc": "Cina Pertengahan",
"ltg": "Latgalia",
"lti": "Leti (Indonesia)",
"ltn": "Latundê",
"lto": "Olutsotso",
"lts": "Lutachoni",
"ltu": "Latu",
"lu": "Luba-Katanga",
"lua": "Luba-Kasai",
"luc": "Aringa",
"lud": "Ludian",
"lue": "Luvale",
"luf": "Laua",
"lui": "Luiseño",
"luj": "Luna",
"luk": "Lunanakha",
"lul": "Olu'bo",
"lum": "Luimbi",
"lun": "Lunda",
"luo": "Luo",
"lup": "Lumbu",
"luq": "Lucumí",
"lur": "Laura",
"lus": "Mizo",
"lut": "Lushootseed",
"luu": "Lumba-Yakkha",
"luv": "Luwati",
"luy": "Luhya",
"luz": "Lur Selatan",
"lv": "Latvia",
"lva": "Maku'a",
"lvi": "Lawi",
"lvk": "Lavukaleve",
"lvl": "Lwel",
"lvu": "Levuka",
"lwa": "Lwalu",
"lwe": "Lewo Eleng",
"lwg": "Wanga",
"lwh": "Lachi Putih",
"lwl": "Lawa Timur",
"lwm": "Laomian",
"lwo": "Luwo",
"lws": "Malawian Sign Language",
"lwt": "Lewotobi",
"lwu": "Lawu",
"lww": "Lewo",
"lya": "Layakha",
"lyg": "Lyngngam",
"lyn": "Luyana",
"lzh": "Literary Chinese",
"lzl": "Litzlitz",
"lzn": "Leinong Naga",
"lzz": "Laz",
"maa": "Mazatec San Jerónimo Tecóatl",
"mab": "Mixtec Yutanduchi",
"mad": "Madura",
"mae": "Bo-Rukul",
"maf": "Mafa",
"mag": "Magahi",
"mai": "Maithili",
"maj": "Mazatec Jalapa de Díaz",
"mak": "Makassar",
"mam": "Mam",
"man": "Mandingo",
"map-ata-pro": "Proto-Atayalik",
"map-bms": "Banyumasan",
"map-pro": "Proto-Austronesia",
"maq": "Mazatec Chiquihuitlán",
"mas": "Maasai",
"mat": "Matlatzinca",
"mau": "Mazatec Huautla",
"mav": "Sateré-Mawé",
"maw": "Mampruli",
"max": "Melayu Maluku Utara",
"maz": "Mazahua Tengah",
"mba": "Higaonon",
"mbb": "Manobo Bukidnon Barat",
"mbc": "Macushi",
"mbd": "Manobo Dibabawon",
"mbe": "Molale",
"mbf": "Melayu Baba",
"mbh": "Mangseng",
"mbi": "Manobo Ilianen",
"mbj": "Nadëb",
"mbk": "Malol",
"mbl": "Maxakalí",
"mbm": "Ombamba",
"mbn": "Macaguán",
"mbo": "Mbo (Cameroon)",
"mbp": "Wiwa",
"mbq": "Maisin",
"mbr": "Nukak Makú",
"mbs": "Manobo Sarangani",
"mbt": "Manobo Matigsalug",
"mbu": "Mbula-Bwazza",
"mbv": "Mbulungish",
"mbw": "Maring",
"mbx": "Mari (Sepik)",
"mby": "Memoni",
"mbz": "Mixtec Amoltepec",
"mca": "Maca",
"mcb": "Machiguenga",
"mcc": "Bitur",
"mcd": "Sharanahua",
"mce": "Mixtec Itundujia",
"mcf": "Matsés",
"mcg": "Mapoyo",
"mch": "Ye'kwana",
"mci": "Mese",
"mcj": "Mvanip",
"mck": "Mbunda",
"mcl": "Macaguaje",
"mcm": "Kristang",
"mcn": "Masana",
"mco": "Mixe Coatlán",
"mcp": "Makaa",
"mcq": "Ese",
"mcr": "Menya",
"mcs": "Mambai",
"mcu": "Mambila Cameroon",
"mcw": "Mawa",
"mcx": "Mpiemo",
"mcy": "Watut Selatan",
"mcz": "Mawan",
"mda": "Mada (Nigeria)",
"mdb": "Morigi",
"mdc": "Male",
"mdd": "Mbum",
"mde": "Mabang Bura",
"mdf": "Moksha",
"mdg": "Massalat",
"mdh": "Maguindanao",
"mdi": "Mamvu",
"mdj": "Mangbetu",
"mdk": "Mangbutu",
"mdl": "Bahasa Isyarat Malta",
"mdm": "Mayogo",
"mdn": "Mbati",
"mdp": "Mbala",
"mdq": "Mbole",
"mdr": "Mandar",
"mds": "Maria",
"mdt": "Mbere",
"mdu": "Mboko",
"mdv": "Mixtec Santa Lucía Monteverde",
"mdw": "Mbosi",
"mdx": "Dizin",
"mdy": "Maale",
"mdz": "Suruí Do Pará",
"mea": "Menka",
"meb": "Ikobi-Mena",
"mec": "Mara",
"med": "Melpa",
"mee": "Mengen",
"mef": "Megam",
"meh": "Mixtec Tlaxiaco Barat Daya",
"mei": "Midob",
"mej": "Meyah",
"mek": "Mekeo",
"mel": "Melanau Tengah",
"mem": "Mangala",
"men": "Mende (Sierra Leone)",
"meo": "Melayu Kedah",
"mep": "Miriwoong",
"meq": "Merey",
"mer": "Meru",
"mes": "Masmaje",
"met": "Mato",
"meu": "Motu",
"mev": "Mano",
"mew": "Maaka",
"mey": "Arab Hassaniyah",
"mez": "Menominee",
"mfa": "Melayu Patani",
"mfb": "Bangka",
"mfc": "Mba",
"mfd": "Mendankwe-Nkwen",
"mfe": "Kreol Mauritius",
"mff": "Naki",
"mfg": "Mixifore",
"mfh": "Matal",
"mfi": "Wandala",
"mfj": "Mefele",
"mfk": "Mofu Utara",
"mfl": "Putai",
"mfm": "Marghi Selatan",
"mfn": "Mbembe Cross River",
"mfo": "Mbe",
"mfp": "Melayu Makassar",
"mfq": "Moba",
"mfr": "Marrithiyel",
"mfs": "Bahasa Isyarat Mexico",
"mft": "Mokerang",
"mfu": "Mbwela",
"mfv": "Mandjak",
"mfw": "Mulaha",
"mfx": "Melo",
"mfy": "Mayo",
"mfz": "Mabaan",
"mg": "Malagasi",
"mga": "Ireland Pertengahan",
"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": "Magar Timur",
"mgq": "Malila",
"mgr": "Mambwe-Lungu",
"mgs": "Manda (Tanzania)",
"mgt": "Mwakai",
"mgu": "Mailu",
"mgv": "Matengo",
"mgw": "Matumbi",
"mgy": "Mbunga",
"mgz": "Mbugwe",
"mh": "Marshall",
"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": "Mòcheno",
"mho": "Mashi",
"mhp": "Melayu Bali",
"mhq": "Mandan",
"mhr": "Mari Timur",
"mhs": "Buru (Indonesia)",
"mht": "Mandahuaca",
"mhu": "Taraon",
"mhw": "Mbukushu",
"mhx": "Lhao Vo",
"mhy": "Ma'anyan",
"mhz": "Mor (Austronesia)",
"mi": "Māori",
"mia": "Miami",
"mib": "Mixtec Atatláhuca",
"mic": "Mi'kmaq",
"mid": "Mandaia",
"mie": "Mixtec Ocotepec",
"mif": "Mofu-Gudur",
"mig": "Mixtec San Miguel el Grande",
"mih": "Mixtec Chayuco",
"mii": "Mixtec Chigmecatitlán",
"mij": "Mungbam",
"mik": "Mikasuki",
"mil": "Mixtec Peñoles",
"mim": "Mixtec Alacatlatzala",
"min": "Minangkabau",
"mio": "Mixtec Pinotepa Nacional",
"mip": "Mixtec Apasco-Apoala",
"miq": "Miskito",
"mir": "Mixe Tanah Genting",
"mis-hkl": "Hokkien Peranakan Kelantan",
"mis-idn": "Idiom Neutral",
"mis-isa": "Isauria",
"mis-jie": "Jie",
"mis-jzh": "Jizhao",
"mis-kas": "Kassite",
"mis-mmd": "Mimi Decorse",
"mis-mmn": "Mimi Nachtigal",
"mis-phi": "Filistin",
"mis-rou": "Rouran",
"mis-tdl": "Turdulia",
"mis-tdt": "Turdetania",
"mis-tnw": "Tangwang",
"mis-tuh": "Tuyuhun",
"mis-tuo": "Tuoba",
"mis-wuh": "Wuhuan",
"mis-xbi": "Xianbei",
"mis-xnu": "Xiongnu",
"mit": "Mixtec Puebla Selatan",
"miu": "Mixtec Cacaloxtepec",
"miw": "Akoye",
"mix": "Mixtec Mixtepec",
"miy": "Mixtec Ayutla",
"miz": "Mixtec Coatzospan",
"mjb": "Makalero",
"mjc": "Mixtec San Juan Colorado",
"mjd": "Maidu Barat Laut",
"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": "Paharia Sawriya",
"mju": "Manna-Dora",
"mjv": "Mannan",
"mjw": "Karbi",
"mjx": "Mahali",
"mjy": "Mahican",
"mjz": "Manya",
"mk": "Macedonia",
"mka": "Mbre",
"mkb": "Mal Paharia",
"mkc": "Siliput",
"mke": "Mawchi",
"mkf": "Miya",
"mkg": "Mak (China)",
"mkh-asl-pro": "Proto-Asli",
"mkh-ban-pro": "Proto-Bahnar",
"mkh-kat-pro": "Proto-Katuik",
"mkh-khm-pro": "Proto-Khmuik",
"mkh-kmr-pro": "Proto-Khmer",
"mkh-mmn": "Mon Pertengahan",
"mkh-mnc-pro": "Proto-Monik",
"mkh-mvi": "Vietnam Pertengahan",
"mkh-pal-pro": "Proto-Palaungik",
"mkh-pea-pro": "Proto-Pearik",
"mkh-pkn-pro": "Proto-Pakanik",
"mkh-pro": "Proto-Mon-Khmer",
"mkh-vie-pro": "Proto-Vietik",
"mki": "Dhatki",
"mkj": "Mokil",
"mkk": "Byep",
"mkl": "Mokole",
"mkm": "Moklen",
"mkn": "Melayu Kupang",
"mko": "Mingang Doso",
"mkp": "Moikodi",
"mkq": "Miwok Teluk",
"mkr": "Malas",
"mks": "Mixtec Silacayoapan",
"mkt": "Vamale",
"mku": "Maninka Konyanka",
"mkv": "Mav̋ea",
"mkx": "Manobo Cinamiguin",
"mky": "Taba",
"mkz": "Makasae",
"ml": "Malayalam",
"mla": "Tamambo",
"mlb": "Mbule",
"mlc": "Caolan",
"mle": "Manambu",
"mlf": "Mal",
"mlh": "Mape",
"mli": "Malimpung",
"mlj": "Miltu",
"mlk": "Ilwana",
"mll": "Teluk Malua",
"mlm": "Mulam",
"mln": "Malango",
"mlo": "Mlomp",
"mlp": "Bargam",
"mlq": "Maninkakan Barat",
"mlr": "Vame",
"mls": "Masalit",
"mlu": "To'abaita",
"mlv": "Mwotlap",
"mlw": "Moloko",
"mlx": "Malfaxal",
"mlz": "Malaynon",
"mma": "Mama",
"mmb": "Momina",
"mmc": "Mazahua Michoacán",
"mmd": "Maonan",
"mme": "Tirax",
"mmf": "Mundat",
"mmg": "Ambrym Utara",
"mmh": "Mehináku",
"mmi": "Hember Avu",
"mmj": "Majhwar",
"mmk": "Mukha-Dora",
"mml": "Man Met",
"mmm": "Maii",
"mmn": "Mamanwa",
"mmo": "Mangga Buang",
"mmp": "Musan",
"mmq": "Aisi",
"mmr": "Miao Xiangxi Barat",
"mmt": "Malalamai",
"mmu": "Mmaala",
"mmv": "Miriti",
"mmw": "Emae",
"mmx": "Madak",
"mmy": "Migaama",
"mmz": "Mabaale",
"mn": "Mongolia",
"mna": "Mbula",
"mnb": "Muna",
"mnc": "Manchu",
"mnd": "Mondé",
"mne": "Naba",
"mnf": "Mundani",
"mng": "Mnong Timur",
"mnh": "Mono (Congo)",
"mni": "Manipuri",
"mnj": "Munji",
"mnk": "Mandinka",
"mnl": "Tiale",
"mnm": "Mapena",
"mnn": "Mnong Selatan",
"mnp": "Min Utara",
"mnq": "Minriq",
"mnr": "Mono (California)",
"mns-cen": "Mansi Tengah",
"mns-nor": "Mansi Utara",
"mns-pro": "Proto-Mansi",
"mns-sou": "Mansi Selatan",
"mnt": "Maykulan",
"mnu": "Mer",
"mnv": "Rennell",
"mnw": "Mon",
"mnw-tha": "Mon Thailand",
"mnx": "Sougb",
"mny": "Manyawa",
"mnz": "Moni",
"moa": "Mwan",
"moc": "Mocoví",
"mod": "Mobilia",
"moe": "Montagnais",
"mog": "Mongondow",
"moh": "Mohawk",
"moi": "Mboi",
"moj": "Monzombo",
"mok": "Morori",
"mom": "Mangue",
"moo": "Monom",
"mop": "Maya Mopan",
"moq": "Mor (Papua)",
"mor": "Moro",
"mos": "Mossi",
"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": "Watut Tengah",
"mpm": "Mixtec Yosondúa",
"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": "Melayu Kutai Kota Bangun",
"mqh": "Mixtec Tlazoyaltepec",
"mqi": "Mariri",
"mqj": "Mamasa",
"mqk": "Manobo Rajah Kabunsuwan",
"mql": "Mbelime",
"mqm": "Marquesas Selatan",
"mqn": "Moronene",
"mqo": "Modole",
"mqp": "Manipa",
"mqq": "Minokok",
"mqr": "Mander",
"mqs": "Makian Barat",
"mqt": "Mok",
"mqu": "Mandari",
"mqv": "Mosimo",
"mqw": "Murupi",
"mqx": "Mamuju",
"mqy": "Manggarai",
"mqz": "Malasanga",
"mr": "Marathi",
"mra": "Mlabri",
"mrb": "Sungwadia",
"mrc": "Maricopa",
"mrd": "Magar Barat",
"mre": "Bahasa Isyarat Martha's Vineyard",
"mrf": "Elseng",
"mrg": "Mising",
"mrh": "Chin Mara",
"mrj": "Mari Barat",
"mrk": "Hmwaveke",
"mrl": "Mortlock",
"mrm": "Mwerlap",
"mrn": "Cheke Holo",
"mro": "Mru",
"mrp": "Morouas",
"mrq": "Marquesas Utara",
"mrr": "Maria Bukit",
"mrs": "Maragus",
"mrt": "Margi",
"mru": "Mono (Cameroon)",
"mrv": "Mangareva",
"mrw": "Maranao",
"mrx": "Dineor",
"mry": "Mandaya Karaga",
"mrz": "Marind",
"ms": "Melayu",
"msb": "Masbatenyo",
"msc": "Maninka Sankaran",
"msd": "Bahasa Isyarat Maya Yucatec",
"mse": "Musey",
"msf": "Mekwei",
"msg": "Moraid",
"msi": "Melayu Sabah",
"msj": "Ma",
"msk": "Mansaka",
"msl": "Molof",
"msm": "Manobo Agusan",
"msn": "Vurës",
"mso": "Mombum",
"msp": "Maritsauá",
"msq": "Caac",
"msr": "Bahasa Isyarat Mongolia",
"mss": "Masela Barat",
"msu": "Musom",
"msv": "Maslam",
"msw": "Mansoanka",
"msx": "Moresada",
"msy": "Aruamu",
"msz": "Momare",
"mt": "Malta",
"mta": "Manobo Cotabato",
"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": "Mixe Totontepec",
"mtp": "Wichí Lhamtés Nocten",
"mtq": "Muong",
"mtr": "Mewari",
"mts": "Yora",
"mtt": "Mota",
"mtu": "Mixtec Tututepec",
"mtv": "Asaro'o",
"mtw": "Magahat",
"mtx": "Mixtec Tidaá",
"mty": "Nabi",
"mua": "Mundang",
"mub": "Mubi",
"muc": "Mbu'",
"mud": "Aleut Mednyj",
"mue": "Media Lengua",
"mug": "Musgu",
"muh": "Mündü",
"mui": "Musi",
"muj": "Mabire",
"mul": "Translingual",
"mum": "Maiwala",
"mun-pro": "Proto-Munda",
"muo": "Nyong",
"mup": "Malvi",
"muq": "Miao Xiangxi Timur",
"mur": "Murle",
"mus": "Creek",
"mut": "Muria Barat",
"muu": "Yaaku",
"muv": "Muthuvan",
"mux": "Bo-Ung",
"muy": "Muyang",
"muz": "Mursi",
"mva": "Manam",
"mvb": "Mattole",
"mvd": "Mamboru",
"mvg": "Mixtec Yucuañe",
"mvh": "Mire",
"mvi": "Miyako",
"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": "Kohistani Indus",
"mvz": "Mesqan",
"mwa": "Mwatebu",
"mwb": "Juwal",
"mwc": "Are",
"mwe": "Mwera",
"mwf": "Murrinh-Patha",
"mwg": "Aiklep",
"mwh": "Mouk-Aria",
"mwi": "Labo",
"mwk": "Maninkakan Kita",
"mwl": "Mirandese",
"mwm": "Sar",
"mwn": "Nyamwanga",
"mwo": "Sungwadaga",
"mwp": "Kala Lagaw Ya",
"mwq": "Mün Chin",
"mwr": "Marwari",
"mws": "Mwimbi-Muthambi",
"mwt": "Moken",
"mwu": "Mittu",
"mwv": "Mentawai",
"mww": "Hmong Putih",
"mwz": "Moingi",
"mxa": "Mixtec Oaxaca Barat Laut",
"mxb": "Mixtec Tezoatlán",
"mxd": "Modang",
"mxe": "Mele-Fila",
"mxf": "Malgbe",
"mxg": "Mbangala",
"mxh": "Mvuba",
"mxi": "Mozarab",
"mxj": "Miju",
"mxk": "Monumbo",
"mxl": "Maxi Gbe",
"mxm": "Meramera",
"mxn": "Moi (Indonesia)",
"mxo": "Mbowe",
"mxp": "Mixe Tlahuitoltepec",
"mxq": "Mixe Juquila",
"mxr": "Murik (Malaysia)",
"mxs": "Mixtec Huitepec",
"mxt": "Mixtec Jamiltepec",
"mxu": "Mada (Cameroon)",
"mxv": "Mixtec Metlatónoc",
"mxw": "Namo",
"mxx": "Mahou",
"mxy": "Mixtec Nochixtlán Tenggara",
"mxz": "Masela Tengah",
"my": "Burma",
"myb": "Mbay",
"myc": "Mayeka",
"mye": "Myene",
"myf": "Bambassi",
"myg": "Manta",
"myh": "Makah",
"myj": "Mangayat",
"myk": "Mamara",
"myl": "Moma",
"mym": "Me'en",
"myn-chl": "Ch'olti'",
"myn-pro": "Proto-Maya",
"myo": "Anfillo",
"myp": "Pirahã",
"myr": "Muniche",
"mys": "Mesmes",
"myu": "Mundurukú",
"myv": "Erzya",
"myw": "Muyuw",
"myx": "Masaba",
"myy": "Macuna",
"myz": "Mandaia Klasik",
"mza": "Mixtec Santa María Zacatepec",
"mzb": "Berber Saharan Utara",
"mzc": "Bahasa Isyarat Madagascar",
"mzd": "Malimba",
"mze": "Morawa",
"mzg": "Bahasa Isyarat Monastik",
"mzh": "Wichí Lhamtés Güisnay",
"mzi": "Mazatec Ixcatlán",
"mzk": "Mambila Nigeria",
"mzl": "Mixe Mazatlán",
"mzm": "Mumuye",
"mzn": "Mazanderani",
"mzo": "Matipuhy",
"mzp": "Movima",
"mzq": "Mori Atas",
"mzr": "Marúbo",
"mzs": "Macanese",
"mzt": "Mintil",
"mzu": "Inapang",
"mzv": "Manza",
"mzw": "Deg",
"mzx": "Mawayana",
"mzy": "Bahasa Isyarat Mozambique",
"mzz": "Maiadomu",
"na": "Nauru",
"naa": "Namla",
"nab": "Nambikwara",
"nac": "Narak",
"nae": "Naka'ela",
"naf": "Nabak",
"nag": "Pidgin Naga",
"nah": "Nahuatl",
"nai-ala": "Alazapa",
"nai-bay": "Bayogoula",
"nai-cal": "Calusa",
"nai-chi": "Chiquimulilla",
"nai-chu-pro": "Proto-Chumash",
"nai-cig": "Ciguayo",
"nai-ckn-pro": "Proto-Chinook",
"nai-guz": "Guazacapán",
"nai-hit": "Hitchiti",
"nai-ipa": "Ipai",
"nai-jtp": "Jutiapa",
"nai-jum": "Jumaytepeque",
"nai-kat": "Kathlamet",
"nai-klp-pro": "Proto-Kalapuya",
"nai-knm": "Konomihu",
"nai-kum": "Kumeyaay",
"nai-mac": "Macoris",
"nai-mdu-pro": "Proto-Maidu",
"nai-miz-pro": "Proto-Mixe-Zoque",
"nai-mus-pro": "Proto-Muskogi",
"nai-nao": "Naolan",
"nai-nrs": "Shasta Sungai Baru",
"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-Catawba",
"nai-sin": "Sinacantán",
"nai-sln": "Lenca Salvador",
"nai-spt": "Sahaptin",
"nai-tap": "Tapachultec",
"nai-taw": "Tawasa",
"nai-teq": "Tequistlatec",
"nai-tip": "Tipai",
"nai-tot-pro": "Proto-Totozoquean",
"nai-tsi-pro": "Proto-Tsimshianik",
"nai-utn-pro": "Proto-Utik",
"nai-wai": "Waikuri",
"nai-wji": "Jicaque Barat",
"nai-yup": "Yupiltepeque",
"naj": "Nalu",
"nak": "Nakanai",
"nal": "Nalik",
"nam": "Ngan'gityemerri",
"nan": "Min Nan",
"nan-dat": "Min Datian",
"nan-hbl": "Hokkien",
"nan-hlh": "Min Hailufeng",
"nan-lnx": "Min Longyan",
"nan-tws": "Teochew",
"nan-zhe": "Min Zhenan",
"nan-zsh": "Min Sanxiang",
"nao": "Naaba",
"nap": "Neapolit",
"naq": "Khoekhoe",
"nar": "Iguta",
"nas": "Nasioi",
"nat": "Hungworo",
"naw": "Nawuri",
"nax": "Nakwi",
"nay": "Ngarrindjeri",
"naz": "Nahuatl Coatepec",
"nb": "Bokmål Norway",
"nba": "Nyemba",
"nbb": "Ndoe",
"nbc": "Chang",
"nbd": "Ngbinda",
"nbe": "Naga Konyak",
"nbg": "Nagarchal",
"nbh": "Ngamo",
"nbi": "Naga Mao",
"nbj": "Ngarinman",
"nbk": "Nake",
"nbm": "Ngbaka Ma'bo",
"nbn": "Kuri",
"nbo": "Nkukoli",
"nbp": "Nnam",
"nbq": "Nggem",
"nbr": "Numana",
"nbs": "Bahasa Isyarat Namibia",
"nbt": "Na",
"nbu": "Naga Rongmei",
"nbv": "Ngamambo",
"nbw": "Ngbandi Selatan",
"nby": "Ningera",
"nca": "Iyo",
"ncb": "Nicobar Tengah",
"ncc": "Ponam",
"ncd": "Nachering",
"nce": "Yale",
"ncf": "Notsi",
"ncg": "Nisga'a",
"nch": "Nahuatl Huasteca Tengah",
"nci": "Nahuatl Klasik",
"ncj": "Nahuatl Puebla Utara",
"nck": "Nakara",
"ncl": "Nahuatl Michoacán",
"ncm": "Nambo",
"ncn": "Nauna",
"nco": "Sibe",
"ncr": "Ncane",
"ncs": "Bahasa Isyarat Nicaragua",
"nct": "Naga Chothe",
"ncu": "Chumburung",
"ncx": "Nahuatl Puebla Tengah",
"ncz": "Natchez",
"nd": "Ndebele Utara",
"nda": "Ndasa",
"ndb": "Kenswei Nsei",
"ndc": "Ndau",
"ndd": "Nde-Nsele-Nta",
"ndf": "Nadruvia",
"ndg": "Ndengereko",
"ndh": "Ndali",
"ndi": "Chamba Leko",
"ndj": "Ndamba",
"ndk": "Ndaka",
"ndl": "Ndolo",
"ndm": "Ndam",
"ndn": "Ngundi",
"ndp": "Ndo",
"ndq": "Ndombe",
"ndr": "Ndoola",
"nds": "Jerman Rendah",
"ndt": "Ndunga",
"ndu": "Dugun",
"ndv": "Ndut",
"ndw": "Ndobo",
"ndx": "Nduga",
"ndy": "Lutos",
"ndz": "Ndogo",
"ne": "Nepal",
"nea": "Ngad'a Timur",
"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": "Mixe Tengah Utara",
"ner": "Yahadian",
"nes": "Kinnauri Bhoti",
"net": "Nete",
"neu": "Neo",
"nev": "Nyaheun",
"new": "Newar",
"nex": "Neme",
"ney": "Neyo",
"nez": "Nez Perce",
"nfa": "Dhao",
"nfd": "Ahwai",
"nfl": "Äiwoo",
"nfr": "Nafaanra",
"nfu": "Mfumte",
"ng": "Ndonga",
"nga": "Ngbaka",
"ngb": "Ngbandi Utara",
"ngc": "Ngombe (Congo)",
"ngd": "Ngando (Republik Afrika Tengah)",
"nge": "Ngemba",
"ngf-bin-pro": "Proto-Binandere",
"ngf-pro": "Proto-Trans-New Guinea",
"ngg": "Ngbaka Manza",
"ngh": "Nǀuu",
"ngi": "Ngizim",
"ngj": "Ngie",
"ngk": "Ngalkbun",
"ngl": "Lomwe",
"ngm": "Kreol Lelaki Ngatik",
"ngn": "Ngwo",
"ngo": "Ngoni",
"ngp": "Ngulu",
"ngq": "Ngoreme",
"ngr": "Nagu",
"ngs": "Gvoko",
"ngt": "Ngeq",
"ngu": "Nahuatl Guerrero",
"ngv": "Nagumi",
"ngw": "Ngwaba",
"ngx": "Nggwahyi",
"ngy": "Tibea",
"ngz": "Ngungwel",
"nha": "Nhanda",
"nhb": "Beng",
"nhc": "Nahuatl Tabasco",
"nhd": "Chiripá",
"nhe": "Nahuatl Huasteca Timur",
"nhf": "Nhuwala",
"nhg": "Nahuatl Tetelcingo",
"nhh": "Nahari",
"nhi": "Nahuatl Zacatlán-Ahuacatlán-Tepetzintla",
"nhk": "Nahuatl Cosoleacaque",
"nhm": "Nahuatl Morelos",
"nhn": "Nahuatl Tengah",
"nho": "Takuu",
"nhp": "Nahuatl Pajapan",
"nhq": "Nahuatl Huaxcaleca",
"nhr": "Naro",
"nht": "Nahuatl Ometepec",
"nhu": "Noone",
"nhv": "Nahuatl Temascaltepec",
"nhw": "Nahuatl Huasteca Barat",
"nhx": "Nahuatl Mecayapan",
"nhy": "Nahuatl Oaxaca Utara",
"nhz": "Nahuatl Santa María La Alta",
"nia": "Nias",
"nib": "Nakame",
"nic-bco-pro": "Proto-Benue-Congo",
"nic-bod-pro": "Proto-Bantoid",
"nic-eov-pro": "Proto-Oti-Volta Timur",
"nic-gns-pro": "Proto-Gurunsi",
"nic-grf-pro": "Proto-Grassfields",
"nic-gur-pro": "Proto-Gur",
"nic-jkn-pro": "Proto-Jukunoid",
"nic-lcr-pro": "Proto-Cross River Bawah",
"nic-ogo-pro": "Proto-Ogoni",
"nic-ovo-pro": "Proto-Oti-Volta",
"nic-plt-pro": "Proto-Plateau",
"nic-pro": "Proto-Niger-Congo",
"nic-ubg-pro": "Proto-Ubangian",
"nic-ucr-pro": "Proto-Cross River Atas",
"nic-vco-pro": "Proto-Volta-Congo",
"nid": "Ngandi",
"nie": "Niellim",
"nif": "Nek",
"nig": "Ngalakan",
"nih": "Nyiha",
"nii": "Nii",
"nij": "Ngaju",
"nik": "Nicobar Selatan",
"nil": "Nila",
"nim": "Nilamba",
"nin": "Ninzo",
"nio": "Nganasan",
"niq": "Nandi",
"nir": "Nimboran",
"nis": "Nimi",
"nit": "Kolami Tenggara",
"niu": "Niue",
"niv": "Nivkh",
"niw": "Nimo",
"nix": "Hema",
"niy": "Ngiti",
"niz": "Ningil",
"nja": "Nzanyi",
"njb": "Nocte",
"njh": "Naga Lotha",
"nji": "Gudanji",
"njj": "Njen",
"njl": "Njalgulgule",
"njm": "Angami",
"njn": "Naga Liangmai",
"njo-jgl": "Ao Chungli",
"njo-mng": "Ao Mongsen",
"njr": "Njerep",
"njs": "Nisa",
"njt": "Pidgin Ndyuka-Trio",
"nju": "Ngadjunmaya",
"njx": "Kunyi",
"njy": "Njyem",
"njz": "Nyishi",
"nka": "Nkoya",
"nkb": "Naga Khoibu",
"nkc": "Nkongho",
"nkd": "Koireng",
"nke": "Duke",
"nkf": "Naga Inpui",
"nkg": "Nekgini",
"nkh": "Naga Khezha",
"nki": "Naga Thangal",
"nkj": "Nakai",
"nkk": "Nokuku",
"nkm": "Namat",
"nkn": "Nkangala",
"nko": "Nkonya",
"nkp": "Niuatoputapu",
"nkq": "Nkami",
"nkr": "Nukuoro",
"nks": "Asmat Utara",
"nkt": "Nyika",
"nku": "Kulango Bouna",
"nkw": "Nkutu",
"nkx": "Nkoroo",
"nkz": "Nkari",
"nl": "Belanda",
"nla": "Ngombale",
"nlc": "Nalca",
"nle": "Nyala Timur",
"nlg": "Gela",
"nli": "Grangali",
"nlj": "Nyali",
"nlk": "Yali Ninia",
"nll": "Nihali",
"nlm": "Mankiyali",
"nlo": "Ngwi",
"nlq": "Naga Lao",
"nlu": "Nchumbulu",
"nlv": "Nahuatl Orizaba",
"nlw": "Walangama",
"nlx": "Nahali",
"nly": "Nyamal",
"nlz": "Nalögo",
"nma": "Naga Maram",
"nmb": "Big Nambas",
"nmc": "Ngam",
"nmd": "Ndumu",
"nme": "Naga Mzieme",
"nmf": "Naga Tangkhul",
"nmg": "Kwasio",
"nmh": "Naga Monsang",
"nmi": "Nyam",
"nmj": "Ngombe (Republik Afrika Tengah)",
"nmk": "Namakura",
"nml": "Ndemli",
"nmm": "Manangba",
"nmn": "ǃXóõ",
"nmo": "Naga Moyon",
"nmp": "Nimanbur",
"nmq": "Nambya",
"nmr": "Nimbari",
"nms": "Letemboi",
"nmt": "Namonuito",
"nmu": "Maidu Timur Laut",
"nmv": "Ngamini",
"nmw": "Nimoa",
"nmx": "Nama",
"nmy": "Namuyi",
"nmz": "Nawdm",
"nn": "Nynorsk Norway",
"nna": "Nyangumarta",
"nnb": "Nande",
"nnc": "Nancere",
"nnd": "Ambae Barat",
"nne": "Ngandyera",
"nnf": "Ngaing",
"nng": "Naga Maring",
"nnh": "Ngiemboon",
"nni": "Nuaulu Utara",
"nnj": "Nyangatom",
"nnk": "Nankina",
"nnl": "Naga Rengma Utara",
"nnm": "Namia",
"nnn": "Ngete",
"nnp": "Wancho",
"nnq": "Ngindo",
"nnr": "Narungga",
"nnt": "Nanticoke",
"nnu": "Dwang",
"nnv": "Nukunu",
"nnw": "Nuni Selatan",
"nnx": "Ngong",
"nny": "Nyangga",
"nnz": "Nda'nda'",
"no": "Norway",
"noa": "Woun Meu",
"noc": "Nuk",
"nod": "Thai Utara",
"noe": "Nimadi",
"nof": "Nomane",
"nog": "Nogai",
"noh": "Nomu",
"noi": "Noiri",
"noj": "Nonuya",
"nok": "Nooksack",
"nol": "Nomlaki",
"non": "Norse Kuno",
"nop": "Numanggang",
"noq": "Ngongo",
"nos": "Nisu Timur",
"not": "Nomatsiguenga",
"nou": "Ewage-Notu",
"nov": "Novial",
"now": "Nyambo",
"noy": "Noy",
"noz": "Nayi",
"npa": "Nar Phu",
"npb": "Nupbikha",
"npg": "Ponyo",
"nph": "Phom",
"npl": "Nahuatl Puebla Tenggara",
"npn": "Mondropolon",
"npo": "Naga Pochuri",
"nps": "Nipsan",
"npu": "Naga Puimei",
"npx": "Noipä",
"npy": "Napu",
"nqg": "Ede Nago",
"nqk": "Kura Ede Nago",
"nql": "Ngendelengo",
"nqm": "Ndom",
"nqn": "Nen",
"nqo": "N'Ko",
"nqq": "Naga Kyan-Karyaw",
"nqy": "Akyaung Ari",
"nr": "Ndebele Selatan",
"nra": "Ngom",
"nrb": "Nara",
"nrc": "Noric",
"nre": "Naga Rengma Selatan",
"nrf": "Norman",
"nrg": "Narango",
"nri": "Naga Chokri",
"nrk": "Ngarla",
"nrl": "Ngarluma",
"nrm": "Narom",
"nrn": "Norn",
"nrp": "Picene Utara",
"nrr": "Norra",
"nrt": "Kalapuya Utara",
"nru": "Narua",
"nrx": "Ngurmbur",
"nrz": "Lala (New Guinea)",
"nsa": "Naga Sangtam",
"nsb": "Nossob Bawah",
"nsc": "Nshi",
"nsd": "Nisu Selatan",
"nse": "Nsenga",
"nsf": "Nisu Barat Laut",
"nsg": "Ngasa",
"nsh": "Ngoshie",
"nsi": "Bahasa Isyarat Nigeria",
"nsk": "Naskapi",
"nsl": "Bahasa Isyarat Norway",
"nsm": "Sema",
"nsn": "Nehan",
"nso": "Sotho Utara",
"nsp": "Bahasa Isyarat Nepal",
"nsq": "Miwok Sierra Utara",
"nsr": "Bahasa Isyarat Maritim",
"nss": "Nali",
"nst": "Tangsa",
"nsu": "Nahuatl Sierra Negra",
"nsw": "Navut",
"nsx": "Nsongo",
"nsy": "Nasal",
"nsz": "Nisenan",
"ntd": "Tidung Utara",
"ntg": "Ngantangarra",
"nti": "Natioro",
"ntj": "Ngaanyatjarra",
"ntk": "Ikoma",
"ntm": "Nateni",
"nto": "Ntomba",
"ntp": "Tepehuan Utara",
"ntr": "Delo",
"nts": "Natagaimas",
"ntu": "Natügu",
"ntw": "Nottoway",
"ntx": "Somra",
"nty": "Mantsi",
"nua": "Yuanga",
"nub-har": "Haraza",
"nub-pro": "Proto-Nubia",
"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": "Nguôn",
"nup": "Nupe",
"nuq": "Nukumanu",
"nur": "Nuguria",
"nus": "Nuer",
"nut": "Nùng",
"nuu": "Ngbundu",
"nuv": "Nuni Utara",
"nuw": "Nguluwan",
"nux": "Mehek",
"nuy": "Nunggubuyu",
"nuz": "Nahuatl Tlamacazapa",
"nv": "Navajo",
"nvh": "Nasarian",
"nvm": "Namiae",
"nvo": "Nyokon",
"nwa": "Nawathinehena",
"nwb": "Nyabwa",
"nwc": "Newar Klasik",
"nwe": "Ngwe",
"nwg": "Ngaiawang",
"nwi": "Tanna Barat Daya",
"nwm": "Nyamusa-Molo",
"nwo": "Nauo",
"nwr": "Nawaru",
"nwx": "Newar Pertengahan",
"nwy": "Nottoway-Meherrin",
"nxa": "Nauete",
"nxd": "Ngando (Congo)",
"nxe": "Nage",
"nxg": "Ngadha",
"nxi": "Nindi",
"nxl": "Nuaulu Selatan",
"nxm": "Numidia",
"nxn": "Ngawun",
"nxo": "Ndambomo",
"nxq": "Naxi",
"nxr": "Ninggerum",
"nxx": "Nafri",
"ny": "Chichewa",
"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": "Nyaw",
"nyx": "Nganyaywana",
"nyy": "Nyakyusa",
"nza": "Mbembe Tigon",
"nzb": "Njebi",
"nzd": "Nzadi",
"nzi": "Nzima",
"nzk": "Nzakara",
"nzm": "Naga Zeme",
"nzs": "Bahasa Isyarat New Zealand",
"nzu": "Teke Tengah",
"nzy": "Nzakambay",
"nzz": "Dogon Nanga Dama",
"oaa": "Orok",
"oac": "Oroch",
"oav": "Avar Kuno",
"obi": "Obispeño",
"obk": "Bontoc Selatan",
"obl": "Oblo",
"obm": "Moabite",
"obo": "Obo Manobo",
"obr": "Burma Kuno",
"obt": "Breton Kuno",
"obu": "Obulom",
"oc": "Occitan",
"oca": "Ocaina",
"och": "Cina Kuno",
"oco": "Cornwall Kuno",
"ocu": "Tlahuica",
"oda": "Odut",
"odk": "Od",
"odt": "Belanda Kuno",
"odu": "Odual",
"ofo": "Ofo",
"ofs": "Frisia Kuno",
"ofu": "Efutop",
"ogb": "Ogbia",
"ogc": "Ogbah",
"oge": "Georgia Kuno",
"ogg": "Ogbogolo",
"ogo": "Khana",
"ogu": "Ogbronuagum",
"ohu": "Hungary Kuno",
"oia": "Oirata",
"oin": "One Inebu",
"oj": "Ojibwe",
"ojb": "Ojibwa Barat Laut",
"ojc": "Ojibwa Tengah",
"ojg": "Ojibwa Timur",
"ojp": "Jepun Kuno",
"ojs": "Severn Ojibwa",
"ojv": "Jawa Ontong",
"ojw": "Ojibwa Barat",
"oka": "Okanagan",
"okb": "Okobo",
"okd": "Okodia",
"oke": "Okpe (Edo Barat Daya)",
"okg": "Kok-Paponk",
"okh": "Koresh-e Rostam",
"oki": "Okiek",
"okj": "Oko-Juwoi",
"okk": "Kwamtim One",
"okl": "Bahasa Isyarat Kentish Kuno",
"okm": "Korea Pertengahan",
"okn": "Oki-No-Erabu",
"oko": "Korea Kuno",
"okr": "Kirike",
"oks": "Oko-Eni-Osayen",
"oku": "Oku",
"okv": "Orokaiva",
"okx": "Okpe (Edo Barat Laut)",
"okz": "Khmer Kuno",
"old": "Mochi",
"ole": "Olekha",
"olm": "Oloma",
"olo": "Livvi",
"olr": "Olrat",
"olt": "Lithuania Kuno",
"olu": "Kuvale",
"om": "Oromo",
"oma": "Omaha-Ponca",
"omb": "Omba",
"omc": "Mochica",
"omg": "Omagua",
"omi": "Omi",
"omk": "Omok",
"oml": "Ombo",
"omn": "Minoan",
"omo": "Utarmbung",
"omp": "Manipur Kuno",
"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": "Chatino San Juan Quiahije",
"omq-tel": "Mixtec Teposcolula",
"omq-teo": "Chatino Teojomulco",
"omq-tri-pro": "Proto-Triqui",
"omq-zap-pro": "Proto-Zapotecan",
"omq-zpc-pro": "Proto-Zapotec",
"omr": "Marathi Kuno",
"omt": "Omotik",
"omu": "Omurano",
"omv-aro-pro": "Proto-Aroid",
"omv-diz-pro": "Proto-Dizoid",
"omv-pro": "Proto-Omotic",
"omw": "Tairora Selatan",
"omx": "Mon Kuno",
"ona": "Selk'nam",
"onb": "Lingao",
"one": "Oneida",
"ong": "Olo",
"oni": "Onin",
"onj": "Onjob",
"onk": "Kabore One",
"onn": "Onobasulu",
"ono": "Onondaga",
"onp": "Sartang",
"onr": "One Utara",
"ons": "Ono",
"ont": "Ontenu",
"onu": "Unua",
"onw": "Nubia Kuno",
"onx": "Pidgin Onin",
"ood": "O'odham",
"oog": "Ong",
"oon": "Önge",
"oor": "Oorlams",
"oos": "Ossetia Kuno",
"opa": "Okpamheri",
"opk": "Kopkaka",
"opm": "Oksapmin",
"opo": "Opao",
"opt": "Opata",
"opy": "Ofayé",
"or": "Odia",
"ora": "Oroha",
"ore": "Orejón",
"org": "Oring",
"orh": "Oroqen",
"oro": "Orokolo",
"orr": "Oruma",
"ors": "Orang Seletar",
"ort": "Oriya Adivasi",
"oru": "Ormuri",
"orv": "Slav Timur Kuno",
"orw": "Oro Win",
"orx": "Oro",
"orz": "Ormu",
"os": "Ossetia",
"osa": "Osage",
"osc": "Osci",
"osi": "Osing",
"osn": "Sunda Kuno",
"oso": "Ososo",
"osp": "Sepanyol Kuno",
"ost": "Osatu",
"osu": "One Selatan",
"osx": "Saxon Kuno",
"ota": "Turki Usmaniyah",
"otb": "Tibet Kuno",
"otd": "Ot Danum",
"ote": "Otomi Mezquital",
"oti": "Oti",
"otk": "Turk Kuno",
"otl": "Otomi Tilapa",
"otm": "Otomi Tanah Tinggi Timur",
"otn": "Otomi Tenango",
"oto-otm-pro": "Proto-Otomi",
"oto-pro": "Proto-Otomian",
"otq": "Otomi Querétaro",
"otr": "Otoro",
"ots": "Otomi Estado de México",
"ott": "Otomi Temoaya",
"otu": "Otuke",
"otw": "Ottawa",
"otx": "Otomi Texcatepec",
"oty": "Tamil Kuno",
"otz": "Otomi Ixtenco",
"oub": "Glio-Oubi",
"oue": "Oune",
"oui": "Uyghur Kuno",
"oum": "Ouma",
"ovd": "Älvdalen",
"owi": "Owiniga",
"owl": "Wales Kuno",
"oyb": "Oy",
"oyd": "Oyda",
"oym": "Wayampi",
"oyy": "Oya'oya",
"ozm": "Koonzime",
"pa": "Punjabi",
"paa-kmn": "Kómnzo",
"paa-kwn": "Kuwani",
"paa-lei": "Leitre",
"paa-nha-pro": "Proto-Halmahera Utara",
"paa-nun": "Nungon",
"pab": "Pareci",
"pac": "Pacoh",
"pad": "Paumarí",
"pae": "Pagibete",
"paf": "Paranawát",
"pag": "Pangasinan",
"pah": "Tenharim",
"pai": "Pe",
"pak": "Parakanã",
"pal": "Parsi Pertengahan",
"pam": "Kapampangan",
"pao": "Paiute Utara",
"pap": "Papiamentu",
"paq": "Parya",
"par": "Panamint",
"pas": "Papasena",
"pat": "Papitalai",
"pau": "Palau",
"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": "Pame Tengah",
"pbv": "Pnar",
"pby": "Pyu",
"pca": "Santa Inés Ahuatempan Popoloca",
"pcb": "Pear",
"pcc": "Bouyei",
"pcd": "Picard",
"pce": "Ruching Palaung",
"pcf": "Paliyan",
"pcg": "Paniya",
"pch": "Pardhan",
"pci": "Duruwa",
"pcj": "Parenga",
"pck": "Paite",
"pcl": "Pardhi",
"pcm": "Pijin Nigeria",
"pcn": "Piti",
"pcp": "Pacahuara",
"pcw": "Pyapun",
"pda": "Anam",
"pdc": "Jerman Pennsylvania",
"pdi": "Pa Di",
"pdn": "Fedan",
"pdo": "Padoe",
"pdt": "Plautdietsch",
"pdu": "Kayan",
"pea": "Peranakan Indonesian",
"peb": "Pomo Timur",
"ped": "Mala (New Guinea)",
"pee": "Taje",
"pef": "Pomo Timur Laut",
"peg": "Pengo",
"peh": "Bonan",
"pei": "Chichimeca-Jonaz",
"pej": "Pomo Utara",
"pek": "Penchal",
"pel": "Pekal",
"pem": "Phende",
"peo": "Parsi Kuno",
"pep": "Kunja",
"peq": "Pomo Selatan",
"pev": "Pémono",
"pex": "Petats",
"pey": "Petjo",
"pez": "Penan Timur",
"pfa": "Pááfang",
"pfe": "Peere",
"pga": "Arab Juba",
"pgd": "Gandhari",
"pgg": "Pangwali",
"pgi": "Pagi",
"pgk": "Rerep",
"pgl": "Primitive Irish",
"pgn": "Paelignian",
"pgs": "Pangseng",
"pgu": "Pagu",
"pgz": "Bahasa Isyarat Papua New Guinea",
"pha": "Pa-Hng",
"phd": "Phudagi",
"phg": "Phuong",
"phh": "Phukha",
"phi-din": "Agta Dinapigue",
"phi-kal-pro": "Proto-Kalamian",
"phi-nag": "Agta Nagtipunan",
"phi-pro": "Proto-Filipina",
"phk": "Phake",
"phl": "Phalura",
"phm": "Phimbi",
"phn": "Phoenicia",
"pho": "Phunoi",
"phq": "Phana'",
"phr": "Pahari-Potwari",
"pht": "Phu Thai",
"phu": "Phuan",
"phv": "Pahlavani",
"phw": "Phangduwali",
"pi": "Pali",
"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": "Baekje",
"pkg": "Pak-Tong",
"pkh": "Pankhu",
"pkn": "Pakanha",
"pko": "Pökoot",
"pkp": "Pukapukan",
"pkr": "Attapady Kurumba",
"pks": "Bahasa Isyarat Pakistan",
"pkt": "Maleng",
"pku": "Paku",
"pl": "Poland",
"pla": "Miani",
"plb": "Polonombauk",
"plc": "Central Palawano",
"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": "Palawano Barat Daya",
"plw": "Palawano Brooke's Point",
"ply": "Bolyu",
"plz": "Paluan",
"pma": "Paama",
"pmb": "Pambia",
"pmd": "Pallanganmiddang",
"pme": "Pwaamei",
"pmf": "Pamona",
"pmi": "Pumi Utara",
"pmj": "Pumi Selatan",
"pmk": "Pamlico",
"pml": "Sabir",
"pmm": "Pol",
"pmn": "Pam",
"pmo": "Pom",
"pmq": "Pame Utara",
"pmr": "Paynamar",
"pms": "Piemonte",
"pmt": "Tuamotuan",
"pmu": "Mirpur Panjabi",
"pmw": "Plains Miwok",
"pmx": "Poumei Naga",
"pmy": "Papuan Malay",
"pmz": "Southern Pame",
"pna": "Punan Bah-Biau",
"pnb": "Punjabi Barat",
"pnc": "Pannei",
"pnd": "Mpinda",
"pne": "Penan Barat",
"png": "Pongu",
"pnh": "Penrhyn",
"pni": "Aoheng",
"pnj": "Pinjarup",
"pnk": "Paunaca",
"pnl": "Paleni",
"pnm": "Punan Batu",
"pnn": "Pinai-Hagahai",
"pno": "Panobo",
"pnp": "Pancana",
"pnq": "Pana (Afrika Barat)",
"pnr": "Panim",
"pns": "Ponosakan",
"pnt": "Yunani Pontus",
"pnu": "Jiongnai Bunu",
"pnv": "Pinigura",
"pnw": "Panyjima",
"pnx": "Phong-Kniang",
"pny": "Pinyin",
"pnz": "Pana (Afrika Tengah)",
"poc": "Poqomam",
"poe": "San Juan Atzingo Popoloca",
"pof": "Poke",
"pog": "Potiguára",
"poh": "Poqomchi'",
"poi": "Highland Popoluca",
"pok": "Pokangá",
"pom": "Pomo Tenggara",
"pon": "Pohnpei",
"poo": "Pomo Tengah",
"pop": "Pwapwa",
"poq": "Texistepec Popoluca",
"pos": "Sayula Popoluca",
"pot": "Potawatomi",
"pov": "Kreol Guinea-Bissau",
"pow": "San Felipe Otlaltepec Popoloca",
"pox": "Polabia",
"poy": "Pogolo",
"poz-abi": "Abai",
"poz-bal": "Baliledo",
"poz-btk-pro": "Proto-Bungku-Tolaki",
"poz-cet-pro": "Proto-Melayu-Polenesia Tengah-Timur",
"poz-hce-pro": "Proto-Halmahera-Cenderawasih",
"poz-lgx-pro": "Proto-Lampungik",
"poz-mcm-pro": "Proto-Melayu-Chamic",
"poz-mic-pro": "Proto-Mikronesia",
"poz-mly-pro": "Proto-Melayik",
"poz-msa-pro": "Proto-Melayu-Sumbawa",
"poz-nes": "Nese",
"poz-oce-pro": "Proto-Oceania",
"poz-pcc-pro": "Proto-Pasifik Tengah",
"poz-pep-pro": "Proto-Polinesia Timur",
"poz-pnp-pro": "Proto-Polinesia Nukleus",
"poz-pol-pro": "Proto-Polinesia",
"poz-pro": "Proto-Melayu-Polenesia",
"poz-sml": "Melayu Sarawak",
"poz-ssw-pro": "Proto-Sulawesi Selatan",
"poz-swa-pro": "Proto-Sarawak Utara",
"poz-ter": "Melayu Terengganu",
"ppa": "Pao",
"ppe": "Papi",
"ppi": "Paipai",
"ppk": "Uma",
"ppl": "Pipil",
"ppm": "Papuma",
"ppn": "Papapana",
"ppo": "Folopa",
"ppq": "Pei",
"pps": "San Luís Temalacayuca Popoloca",
"ppt": "Pa",
"ppu": "Papora",
"pqa": "Pa'a",
"pqe-pro": "Proto-Melayu-Polenesia Timur",
"pqm": "Malecite-Passamaquoddy",
"pra": "Prakrit",
"pra-niy": "Prakrit Niya",
"prc": "Parachi",
"pre": "Principe",
"prf": "Paranan",
"prg": "Prusia Kuno",
"prh": "Porohanon",
"pri": "Paicî",
"prk": "Parauk",
"prl": "Bahasa Isyarat Peru",
"prm": "Kibiri",
"prn": "Prasuni",
"pro": "Occitan Kuno",
"prq": "Ashéninka Perené",
"prr": "Puri",
"prt": "Phai",
"pru": "Puragi",
"prw": "Parawen",
"prx": "Purik",
"prz": "Bahasa Isyarat Providencia",
"ps": "Pashto",
"psa": "Asue Awyu",
"psc": "Bahasa Isyarat Parsi",
"psd": "Plains Indian Sign Language",
"pse": "Melayu Barisan Selatan",
"psg": "Bahasa Isyarat Pulau Pinang",
"psh": "Pashayi Barat Daya",
"psi": "Pashayi Tenggara",
"psl": "Bahasa Isyarat Puerto Rico",
"psm": "Pauserna",
"psn": "Panasuan",
"pso": "Bahasa Isyarat Poland",
"psp": "Bahasa Isyarat Filipina",
"psq": "Pasi",
"psr": "Bahasa Isyarat Portugis",
"pss": "Kaulong",
"psw": "Port Sandwich",
"psy": "Piscataway",
"pt": "Portugis",
"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": "Paiwan",
"pwo": "Pwo Barat",
"pwr": "Powari",
"pww": "Pwo Utara",
"pxm": "Quetzaltepec Mixe",
"pye": "Pye Krumen",
"pym": "Fyam",
"pyn": "Poyanáwa",
"pys": "Bahasa Isyarat Paraguay",
"pyu": "Puyuma",
"pyx": "Tircul",
"pyy": "Pyen",
"pzh": "Pazeh",
"pzn": "Para Naga",
"qfa-adm-pro": "Proto-Andaman Besar",
"qfa-bet-pro": "Proto-Be-Tai",
"qfa-cka-pro": "Proto-Chukotko-Kamchatka",
"qfa-hur-pro": "Proto-Hurro-Urartia",
"qfa-kad-pro": "Proto-Kadu",
"qfa-kms-pro": "Proto-Kam-Sui",
"qfa-kor-pro": "Proto-Korea",
"qfa-kra-pro": "Proto-Kra",
"qfa-lic-pro": "Proto-Hlai",
"qfa-onb-pro": "Proto-Be",
"qfa-ong-pro": "Proto-Onga",
"qfa-tak-pro": "Proto-Kra-Dai",
"qfa-yen-pro": "Proto-Yenisei",
"qfa-yuk-pro": "Proto-Yukaghir",
"qu": "Quechua",
"qua": "Quapaw",
"quc": "K'iche'",
"qui": "Quileute",
"qum": "Sipakapense",
"qun": "Quinault",
"quq": "Quinqui",
"quv": "Sacapulteco",
"qvy": "Queyu",
"qwc": "Quechua Klasik",
"qwe-kch": "Kichwa",
"qwe-pro": "Proto-Quechua",
"qwm": "Kipchak",
"qwt": "Kwalhioqua-Tlatskanai",
"qxs": "Southern Qiang",
"qya": "Quenya",
"qyp": "Quiripi",
"raa": "Dungmali",
"rab": "Chamling",
"rac": "Rasawa",
"rad": "Rade",
"raf": "Meohang Barat",
"rag": "Logooli",
"rah": "Rabha",
"rai": "Ramoaaina",
"raj": "Rajasthan",
"rak": "Tulu-Bohuai",
"ral": "Ralte",
"ram": "Canela",
"ran": "Riantana",
"rao": "Rao",
"rap": "Rapa Nui",
"raq": "Saam",
"rar": "Rarotonga",
"ras": "Tegali",
"rat": "Razajerdi",
"rau": "Raute",
"rav": "Sampang",
"raw": "Rawang",
"rax": "Rang",
"ray": "Rapa",
"raz": "Rahambuu",
"rbb": "Rumai Palaung",
"rbk": "Bontoc Utara",
"rbl": "Bikol Miraya",
"rcf": "Perancis Kreol Réunion",
"rdb": "Rudbari",
"rea": "Rerau",
"reb": "Rembong",
"ree": "Kayan Rejang",
"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": "Yunani Romani",
"rgk": "Rangkas",
"rgn": "Romagnol",
"rgr": "Resígaro",
"rgs": "Roglai Selatan",
"rgu": "Ringgou",
"rhg": "Rohingya",
"rhp": "Yahang",
"ria": "Reang",
"rif": "Tarifit",
"ril": "Riang",
"rim": "Nyaturu",
"rin": "Nungu",
"rir": "Ribun",
"rit": "Ritarungo",
"riu": "Riung",
"rjg": "Rajong",
"rji": "Raji",
"rjs": "Rajbanshi",
"rka": "Kraol",
"rkb": "Rikbaktsa",
"rkh": "Rakahanga-Manihiki",
"rki": "Rakhine",
"rkm": "Marka",
"rkt": "Kamta",
"rkw": "Arakwal",
"rm": "Romansh",
"rma": "Rama",
"rmb": "Rembarunga",
"rmc": "Romani Carpathia",
"rmd": "Denmark Pengembara",
"rme": "Angloromani",
"rmf": "Romani Finland Kalo",
"rmg": "Norway Pengembara",
"rmh": "Murkim",
"rmi": "Lomavren",
"rmk": "Romkun",
"rml": "Romani Baltik",
"rmm": "Roma",
"rmn": "Romani Balkan",
"rmo": "Romani Sinte",
"rmp": "Rempi",
"rmq": "Caló",
"rms": "Bahasa Isyarat Romania",
"rmt": "Domari",
"rmu": "Tavringer Romani",
"rmv": "Romanova",
"rmw": "Romani Wales",
"rmx": "Romam",
"rmy": "Romani Vlax",
"rmz": "Marma",
"rnd": "Ruwund",
"rng": "Ronga",
"rnl": "Ranglong",
"rnn": "Roon",
"rnp": "Rongpo",
"rnw": "Rungwa",
"ro": "Romania",
"roa-ang": "Angevin",
"roa-bbn": "Bourbonnais-Berrichon",
"roa-brg": "Bourguignon",
"roa-can": "Cantabrian",
"roa-cha": "Champenois",
"roa-fcm": "Franc-Comtois",
"roa-gal": "Gallo",
"roa-gib": "Gallo-Itali Basilicata",
"roa-gis": "Gallo-Itali Sicily",
"roa-leo": "Leonese",
"roa-lor": "Lorrain",
"roa-oca": "Catalan Kuno",
"roa-ole": "Leonese Kuno",
"roa-ona": "Navarro-Aragon Kuno",
"roa-opt": "Galicia-Portugis Kuno",
"roa-orl": "Orléanais",
"roa-poi": "Poitevin-Saintongeais",
"roa-tar": "Tarantino",
"rob": "Tae'",
"roc": "Roglai Cacgia",
"rod": "Rogo",
"roe": "Ronji",
"rof": "Rombo",
"rog": "Roglai Utara",
"rol": "Romblomanon",
"rom": "Romani",
"roo": "Rotokas",
"rop": "Kriol",
"ror": "Rongga",
"rou": "Runga",
"row": "Dela-Oenale",
"rpn": "Repanbitip",
"rpt": "Rapting",
"rri": "Ririo",
"rro": "Roro",
"rrt": "Arritinngithigh",
"rsb": "Romano-Serbia",
"rsk": "Rusyn Pannonia",
"rsl": "Bahasa Isyarat Rusia",
"rsm": "Bahasa Isyarat Miriwoong",
"rtc": "Rungtu",
"rth": "Ratahan",
"rtm": "Rotuma",
"rtw": "Rathawi",
"ru": "Rusia",
"rub": "Gungu",
"ruc": "Ruuli",
"rue": "Rusyn",
"ruf": "Luguru",
"rug": "Roviana",
"ruh": "Ruga",
"rui": "Rufiji",
"ruk": "Che",
"ruo": "Istro-Romania",
"rup": "Aromania",
"ruq": "Megleno-Romania",
"rut": "Rutul",
"ruu": "Lanas Lobu",
"ruy": "Mala (Nigeria)",
"ruz": "Ruma",
"rw": "Rwanda-Rundi",
"rwa": "Rawo",
"rwk": "Rwa",
"rwm": "Amba",
"rwo": "Rawa",
"rxd": "Ngardi",
"rxw": "Karuwali",
"ryn": "Amami Ōshima Utara",
"rys": "Yaeyama",
"ryu": "Okinawa",
"rzh": "Razihi",
"sa": "Sanskrit",
"saa": "Saba",
"sab": "Buglere",
"sac": "Fox",
"sad": "Sandawe",
"sae": "Sabanê",
"saf": "Safaliba",
"sah": "Yakut",
"sai-all": "Allentiac",
"sai-and": "Andoquero",
"sai-ayo": "Ayomán",
"sai-bae": "Baenan",
"sai-bag": "Bagua",
"sai-bet": "Betoi",
"sai-bor-pro": "Proto-Bora",
"sai-cac": "Cacán",
"sai-caq": "Caranqui",
"sai-car-pro": "Proto-Carib",
"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-Jê Tengah",
"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-Jê Utara",
"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-Jê Selatan",
"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 (Amerika Selatan)",
"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": "Santal",
"sau": "Saleman",
"sav": "Saafi-Saafi",
"saw": "Sawi",
"sax": "Sa",
"say": "Saya",
"saz": "Saurashtra",
"sba": "Ngambay",
"sbb": "Simbo",
"sbc": "Gele'",
"sbd": "Samo Selatan",
"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": "Sardinia",
"scb": "Chut",
"sce": "Dongxiang",
"scf": "Perancis Kreol San Miguel",
"scg": "Sanggau",
"sch": "Sakachep",
"sci": "Melayu Sri Lanka",
"sck": "Sadri",
"scl": "Shina",
"scn": "Sicilia",
"sco": "Scots",
"scp": "Yolmo",
"scq": "Sa'och",
"scs": "Slavey Utara",
"scu": "Shumcho",
"scv": "Sheni",
"scw": "Sha",
"scx": "Sicel",
"sd": "Sindhi",
"sda": "Toraja-Sa'dan",
"sdb": "Shabak",
"sdc": "Sassari",
"sde": "Surubu",
"sdf": "Sarli",
"sdg": "Savi",
"sdh": "Kurdi Selatan",
"sdj": "Suundi",
"sdk": "Sos Kundi",
"sdl": "Saudi Arabian Sign Language",
"sdm": "Semandang",
"sdn": "Gallura",
"sdo": "Bidayuh Bukar-Sadong",
"sdp": "Sherdukpen",
"sdr": "Oraon Sadri",
"sds": "Barbar Tunisia",
"sdu": "Sarudu",
"sdv-daj-pro": "Proto-Daju",
"sdv-eje-pro": "Proto-Jebel Timur",
"sdv-nil-pro": "Proto-Nilotik",
"sdv-nyi-pro": "Proto-Nyima",
"sdv-tmn-pro": "Proto-Taman",
"sdx": "Melanau Sibu",
"se": "Sami Utara",
"sea": "Semai",
"sec": "Sechelt",
"sed": "Sedang",
"see": "Seneca",
"sef": "Cebaara Senoufo",
"seg": "Segeju",
"seh": "Sena",
"sei": "Seri",
"sej": "Sene",
"sek": "Sekani",
"sel-nor": "Selkup Utara",
"sel-pro": "Proto-Selkup",
"sel-sou": "Selkup Selatan",
"sem-amm": "Ammon",
"sem-amo": "Amor",
"sem-cha": "Chaha",
"sem-dad": "Dadan",
"sem-dum": "Dumait",
"sem-has": "Hasait",
"sem-his": "Hisma",
"sem-mhr": "Muher",
"sem-pro": "Proto-Semitik",
"sem-saf": "Safait",
"sem-sam": "Samal",
"sem-srb": "Arab Selatan Kuno",
"sem-tay": "Tayman",
"sem-tha": "Thamud",
"sem-wes-pro": "Proto-Semitik Barat",
"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": "Chin Senthang",
"sfb": "French Belgian Sign Language",
"sfm": "Small Flowery Miao",
"sfs": "Bahasa Isyarat Afrika Selatan",
"sfw": "Sehwi",
"sg": "Sango",
"sga": "Ireland Kuno",
"sgb": "Mag-Anchi Ayta",
"sgc": "Kipsigis",
"sgd": "Surigaonon",
"sge": "Segai",
"sgg": "Swiss-German Sign Language",
"sgh": "Shughni",
"sgi": "Suga",
"sgk": "Sangkong",
"sgm": "Singa",
"sgp": "Singpho",
"sgr": "Sangisari",
"sgs": "Samogitia",
"sgt": "Brokpake",
"sgu": "Salas",
"sgw": "Sebat Bet Gurage",
"sgx": "Sierra Leone Sign Language",
"sgy": "Sanglechi",
"sgz": "Sursurunga",
"sh": "Serbo-Croatia",
"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": "Shan",
"sho": "Shanga",
"shp": "Shipibo-Conibo",
"shq": "Sala",
"shr": "Shi",
"shs": "Shuswap",
"sht": "Shasta",
"shu": "Arab Chad",
"shv": "Shehri",
"shw": "Shwai",
"shx": "She",
"shy": "Tachawit",
"shz": "Syenara Senoufo",
"si": "Sinhala",
"sia": "Sami Akkala",
"sib": "Sebop",
"sid": "Sidamo",
"sie": "Simaa",
"sif": "Siamou",
"sig": "Paasaal",
"sih": "Zire",
"sii": "Shom Peng",
"sij": "Numbami",
"sik": "Sikiana",
"sil": "Tumulung Sisaala",
"sim": "Seim",
"sio-pro": "Proto-Siouan",
"sip": "Sikkim",
"siq": "Sonia",
"sir": "Siri",
"sis": "Siuslaw",
"sit-aao-pro": "Proto-Naga Tengah",
"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-Ersu",
"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-Kho-Bwa Barat",
"sit-kon-pro": "Proto-Naga Utara",
"sit-liz": "Lizu",
"sit-lnj": "Longjia",
"sit-lrn": "Luren",
"sit-luu-pro": "Proto-Luish",
"sit-nas-pro": "Proto-Naish",
"sit-prn": "Puiron",
"sit-pro": "Proto-Sino-Tibet",
"sit-sit": "Situ",
"sit-tam-pro": "Proto-Tamang",
"sit-tan-pro": "Proto-Tani",
"sit-tgm": "Tangam",
"sit-tng-pro": "Proto-Tangkhul",
"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",
"sjd": "Sami Kildin",
"sje": "Sami Pite",
"sjg": "Assangori",
"sjk": "Sami Kemi",
"sjl": "Miji",
"sjm": "Mapun",
"sjn": "Sindarin",
"sjo": "Xibe",
"sjp": "Surjapuri",
"sjr": "Siar-Lak",
"sjs": "Senhaja De Srair",
"sjt": "Sami Ter",
"sju": "Sami Ume",
"sjw": "Shawnee",
"sk": "Slovak",
"ska": "Skagit",
"skb": "Saek",
"skc": "Ma Manda",
"skd": "Miwok Sierra Selatan",
"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": "Maia",
"skt": "Sakata",
"sku": "Sakao",
"skv": "Skou",
"skw": "Belanda Kreol Skepi",
"skx": "Seko Padang",
"sky": "Sikaiana",
"skz": "Sekar",
"sl": "Slovenia",
"sla-pro": "Proto-Slav",
"slc": "Saliba (Colombia)",
"sld": "Sissala",
"sle": "Sholaga",
"slf": "Swiss-Italian Sign Language",
"slg": "Selungai Murut",
"slh": "Salish Puget Sound Selatan",
"slj": "Salumá",
"sll": "Salt-Yui",
"slm": "Pangutaran Sama",
"sln": "Salinan",
"slp": "Lamaholot",
"slq": "Salchuq",
"slr": "Salar",
"sls": "Singapore Sign Language",
"slt": "Sila",
"slu": "Selaru",
"slw": "Sialum",
"slx": "Salampasu",
"sly": "Selayar",
"slz": "Ma'ya",
"sm": "Samoa",
"sma": "Sami Selatan",
"smb": "Simbari",
"smc": "Som",
"smd": "Sama",
"smf": "Auwe",
"smg": "Simbali",
"smh": "Samei",
"smi-pro": "Proto-Sami",
"smj": "Sami Lule",
"smk": "Bolinao",
"sml": "Bajau Laut",
"smm": "Musasa",
"smn": "Sami Inari",
"smp": "Ibrani Samaria",
"smq": "Samo",
"smr": "Simeulue",
"sms": "Sami Skolt",
"smt": "Simte",
"smu": "Somray",
"smv": "Samvedi",
"smw": "Sumbawa",
"smx": "Samba",
"smy": "Semnani",
"smz": "Simeku",
"sn": "Shona",
"snb": "Sebuyau",
"snc": "Sinaugoro",
"sne": "Bidayuh Bau",
"snf": "Noon",
"sng": "Sanga (Congo)",
"sni": "Sensi",
"snj": "Riverain Sango",
"snk": "Soninke",
"snl": "Sangil",
"snm": "Ma'di Selatan",
"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": "Somali",
"soa": "Thai Song",
"sob": "Sobei",
"soc": "Soko",
"sod": "Songoora",
"soe": "Songomeno",
"sog": "Sogdia",
"soh": "Aka (Sudan)",
"soi": "Sonha",
"sok": "Sokoro",
"sol": "Solos",
"son-pro": "Proto-Songhai",
"soo": "Nsong",
"sop": "Songe",
"soq": "Kanasi",
"sor": "Somrai",
"sos": "Seenku",
"sou": "Thai Selatan",
"sov": "Sonsorol",
"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": "Picenum Selatan",
"spy": "Sabaot",
"sq": "Albania",
"sqa": "Shama-Sambuga",
"sqh": "Shau",
"sqj-pro": "Proto-Albania",
"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": "Murut Serudung",
"srl": "Isirawa",
"srm": "Saramaccan",
"srn": "Seranan",
"srq": "Sirionó",
"srr": "Serer",
"srs": "Tsuut'ina",
"srt": "Sauri",
"sru": "Suruí",
"srv": "Waray Sorsogon",
"srw": "Serua",
"srx": "Sirmauri",
"sry": "Sera",
"srz": "Shahmirzadi",
"ss": "Swazi",
"ssa-klk-pro": "Proto-Kuliak",
"ssa-kom-pro": "Proto-Koma",
"ssa-pro": "Proto-Nilo-Sahara",
"ssb": "Bajau Pantai Timur",
"ssc": "Suba-Simbiti",
"ssd": "Siroi",
"sse": "Balangingi",
"ssf": "Thao",
"ssg": "Seimat",
"ssh": "Arab Syihuh",
"ssi": "Sansi",
"ssj": "Sausi",
"ssk": "Sunam",
"ssl": "Sisaala Barat",
"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": "Saho",
"ssz": "Sengseng",
"st": "Sotho",
"stb": "Subanen Utara",
"std": "Sentinel",
"ste": "Liana-Seti",
"stf": "Seta",
"stg": "Trieng",
"sth": "Shelta",
"sti": "Bulo Stieng",
"stj": "Matya Samo",
"stk": "Arammba",
"stm": "Setaman",
"stn": "Owa",
"sto": "Stoney",
"stp": "Tepehuan Tenggara",
"stq": "Frisia Saterland",
"str": "Saanich",
"sts": "Shumashti",
"stt": "Budeh Stieng",
"stu": "Samtao",
"stv": "Silt'e",
"stw": "Satawal",
"sty": "Tatar Siberia",
"su": "Sunda",
"sua": "Sulka",
"sub": "Suku",
"suc": "Subanon Barat",
"sue": "Suena",
"sug": "Suganga",
"sui": "Suki",
"suk": "Sukuma",
"suq": "Suri",
"sur": "Mwaghavul",
"sus": "Susu",
"sut": "Subtiaba",
"suv": "Sulung",
"suw": "Sumbwa",
"sux": "Sumeria",
"suy": "Suyá",
"suz": "Sunwar",
"sv": "Sweden",
"sva": "Svan",
"svb": "Ulau-Suain",
"svc": "Inggeris Kreol Vincent",
"sve": "Serili",
"svk": "Slovakian Sign Language",
"svm": "Slavomolisano",
"svs": "Savosavo",
"svx": "Skalvian",
"sw": "Swahili",
"swb": "Comoros Maore",
"swf": "Sere",
"swg": "Swabia",
"swi": "Sui",
"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": "Kalapuya Selatan",
"sxl": "Selonia",
"sxm": "Samre",
"sxn": "Sangir",
"sxo": "Sorothaptic",
"sxr": "Saaroa",
"sxs": "Sasaru",
"sxw": "Saxwe Gbe",
"sya": "Siang",
"syb": "Subanen Tengah",
"syc": "Suryani Klasik",
"syd-pro": "Proto-Samoyed",
"syi": "Seki",
"syk": "Sukur",
"syl": "Sylhet",
"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": "Silesia",
"szn": "Sula",
"szp": "Suabo",
"szv": "Isubu",
"szw": "Sawai",
"szy": "Sakizaya",
"ta": "Tamil",
"taa": "Lower Tanana",
"tab": "Tabasaran",
"tac": "Lowland Tarahumara",
"tad": "Tause",
"tae": "Tariana",
"taf": "Tapirapé",
"tag": "Tagoi",
"tai-pro": "Proto-Tai",
"tai-swe-pro": "Proto-Tai Barat Daya",
"taj": "Tamang Timur",
"tak": "Tala",
"tal": "Tal",
"tan": "Tangale",
"tao": "Yami",
"tap": "Taabwa",
"tar": "Tarahumara Tengah",
"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": "Tairora Utara",
"tbh": "Thurawal",
"tbi": "Gaam",
"tbj": "Tiang",
"tbk": "Calamian Tagbanwa",
"tbl": "Tboli",
"tbm": "Tagbu",
"tbn": "Barro Negro Tunebo",
"tbo": "Tawala",
"tbp": "Taworta",
"tbq-bdg-pro": "Proto-Bodo-Garo",
"tbq-blg": "Bailang",
"tbq-brm-pro": "Proto-Burma",
"tbq-gkh": "Gokhy",
"tbq-kuk-pro": "Proto-Kuki-Chin",
"tbq-lal-pro": "Proto-Lalo",
"tbq-laz": "Laze",
"tbq-lob-pro": "Proto-Lolo-Burma",
"tbq-lol-pro": "Proto-Lolo",
"tbq-mil": "Milang",
"tbq-mor": "Moran",
"tbq-ngo": "Ngochang",
"tbr": "Tumtum",
"tbs": "Tanguat",
"tbt": "Kitembo",
"tbu": "Tubar",
"tbv": "Tobo",
"tbw": "Tagbanwa",
"tbx": "Kapin",
"tby": "Tabaru",
"tbz": "Ditammari",
"tca": "Ticuna",
"tcb": "Tanacross",
"tcc": "Datooga",
"tcd": "Tafi",
"tce": "Tutchone Selatan",
"tcf": "Tlapanec Malinaltepec",
"tcg": "Tamagario",
"tch": "Inggeris Kreol Turks dan Caicos",
"tci": "Wára",
"tck": "Tchitchege",
"tcl": "Taman (Myanmar)",
"tcm": "Tanahmerah",
"tco": "Taungyo",
"tcp": "Chin Tawr",
"tcq": "Kaiy",
"tcs": "Kreol Selat Torres",
"tct": "T'en",
"tcu": "Tarahumara Tenggara",
"tcw": "Tecpatlán Totonac",
"tcx": "Toda",
"tcy": "Tulu",
"tcz": "Chin Thado",
"tda": "Tagdal",
"tdb": "Panchpargania",
"tdc": "Emberá-Tadó",
"tdd": "Tai Nüa",
"tde": "Tiranige Diga Dogon",
"tdf": "Talieng",
"tdg": "Tamang Barat",
"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": "Telugu",
"tea": "Temiar",
"teb": "Tetete",
"tec": "Terik",
"ted": "Tepo Krumen",
"tee": "Tepehua Huehuetla",
"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": "Tetum",
"teu": "Soo",
"tev": "Teor",
"tew": "Tewa",
"tex": "Tennet",
"tey": "Tulishi",
"tez": "Tetserret",
"tfi": "Tofin Gbe",
"tfn": "Dena'ina",
"tfo": "Tefaro",
"tfr": "Teribe",
"tft": "Ternate",
"tg": "Tajik",
"tga": "Sagalla",
"tgb": "Tobilung",
"tgc": "Tigak",
"tgd": "Ciwogai",
"tge": "Tamang Gorkha Timur",
"tgf": "Chali",
"tgh": "Inggeris Kreol Tobago",
"tgi": "Lawunuia",
"tgn": "Tandaganon",
"tgo": "Sudest",
"tgp": "Tangoa",
"tgq": "Tring",
"tgr": "Tareng",
"tgs": "Nume",
"tgt": "Tagbanwa Tengah",
"tgu": "Tanggu",
"tgv": "Tingui-Boto",
"tgw": "Tagwana Senoufo",
"tgx": "Tagish",
"tgy": "Togoyo",
"th": "Thai",
"thc": "Tai Hang Tong",
"thd": "Kuuk Thaayorre",
"the": "Chitwania Tharu",
"thf": "Thangmi",
"thh": "Tarahumara Utara",
"thi": "Tai Long",
"thk": "Tharaka",
"thl": "Dangaura Tharu",
"thm": "Thavung",
"thn": "Thachanadan",
"thp": "Thompson",
"thq": "Kochila Tharu",
"thr": "Rana Tharu",
"ths": "Thakali",
"tht": "Tahltan",
"thu": "Thuri",
"thy": "Tha",
"ti": "Tigrinya",
"tic": "Tira",
"tif": "Tifal",
"tig": "Tigre",
"tih": "Murut Timugon",
"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": "Tiwa Selatan",
"tiy": "Tiruray",
"tiz": "Tai Hongjin",
"tja": "Tajuasohn",
"tjg": "Tunjung",
"tji": "Tujia Utara",
"tjl": "Tai Laing",
"tjm": "Timucua",
"tjn": "Tonjon",
"tjs": "Tujia Selatan",
"tju": "Tjurruru",
"tjw": "Chaap Wuurong",
"tk": "Turkmen",
"tka": "Truká",
"tkb": "Buksa",
"tkd": "Tukudede",
"tke": "Takwane",
"tkf": "Tukumanféd",
"tkl": "Tokelau",
"tkm": "Takelma",
"tkn": "Toku-No-Shima",
"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": "Tagalog",
"tla": "Tepehuan Barat Daya",
"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": "Tamang Barat Laut",
"tml": "Tamnim Citak",
"tmm": "Tai Thanh",
"tmn": "Taman (Indonesia)",
"tmo": "Temoq",
"tmq": "Tumleo",
"tms": "Tima",
"tmt": "Tasmate",
"tmu": "Iau",
"tmv": "Motembo",
"tmw": "Temuan",
"tmy": "Tami",
"tmz": "Tamanaku",
"tn": "Tswana",
"tna": "Tacana",
"tnb": "Tunebo Barat",
"tnc": "Tanimuca-Retuarã",
"tnd": "Angosturas Tunebo",
"tne": "Tinoc Kallahan",
"tng": "Tobanga",
"tnh": "Maiani",
"tni": "Tandia",
"tnk": "Kwamera",
"tnl": "Lenakel",
"tnm": "Tabla",
"tnn": "Tanna Utara",
"tno": "Toromono",
"tnp": "Whitesands",
"tnq": "Taíno",
"tnr": "Bedik",
"tns": "Tenis",
"tnt": "Tontemboan",
"tnu": "Tay Khang",
"tnv": "Tanchangya",
"tnw": "Tonsawang",
"tnx": "Tanema",
"tny": "Tongwe",
"tnz": "Ten'edn",
"to": "Tonga",
"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": "Tok Pisin",
"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": "Tupi Kuno",
"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": "Totonac Barat",
"tqu": "Touo",
"tqw": "Tonkawa",
"tr": "Turki",
"tra": "Tirahi",
"trb": "Terebu",
"trc": "Copala Triqui",
"trd": "Turi",
"tre": "Tarangan Timur",
"trf": "Inggeris Kreol Trinidad",
"trg": "Lishán Didán",
"trh": "Turaka",
"tri": "Trió",
"trj": "Toram",
"trk-dkh": "Dukhan",
"trk-eog": "Oghuz Awal Kuno",
"trk-oat": "Turki Anatolia Kuno",
"trk-pro": "Proto-Turkik",
"trl": "Traveller Scottish",
"trm": "Tregami",
"trn": "Trinitario",
"tro": "Tarao",
"trp": "Kokborok",
"trq": "San Martín Itunyoso Triqui",
"trr": "Taushiro",
"trs": "Chicahuaxtla Triqui",
"trt": "Tunggare",
"tru": "Turoyo",
"trv": "Taroko",
"trw": "Torwali",
"trx": "Tringgus",
"try": "Turung",
"trz": "Torá",
"ts": "Tsonga",
"tsa": "Tsaangi",
"tsb": "Tsamai",
"tsc": "Tswa",
"tsd": "Tsakonian",
"tse": "Bahasa Isyarat Tunisia",
"tsf": "Tamang Barat Daya",
"tsg": "Suluk",
"tsh": "Tsuvan",
"tsi": "Tsimshian",
"tsj": "Tshangla",
"tsl": "Ts'ün-Lao",
"tsm": "Bahasa Isyarat Turki",
"tsp": "Toussiana Utara",
"tsq": "Bahasa Isyarat Thai",
"tsr": "Akei",
"tss": "Bahasa Isyarat Taiwan",
"tsu": "Tsou",
"tsv": "Tsogo",
"tsw": "Tsishingini",
"tsx": "Mubami",
"tsy": "Bahasa Isyarat Tebul",
"tt": "Tatar",
"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": "Tutchone Utara",
"ttn": "Towei",
"tto": "Lower Ta'oih",
"ttp": "Tombelala",
"ttr": "Tera",
"tts": "Isan",
"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": "Tunebo Tengah",
"tug": "Tunia",
"tuh": "Taulil",
"tui": "Tupuri",
"tuj": "Tugutil",
"tul": "Tula",
"tum": "Tumbuka",
"tun": "Tunica",
"tuo": "Tucano",
"tup-gua-pro": "Proto-Tupi-Guarani",
"tup-kab": "Kabishiana",
"tup-kaw": "Kawahiva",
"tup-pro": "Proto-Tupia",
"tuq": "Tedaga",
"tus": "Tuscarora",
"tuu": "Tututni",
"tuv": "Turkana",
"tuw-alk": "Alchuka",
"tuw-bal": "Bala",
"tuw-kkl": "Kyakala",
"tuw-kli": "Kili",
"tuw-pro": "Proto-Tungus",
"tuw-sol": "Solon",
"tux": "Tuxináwa",
"tuy": "Tugen",
"tuz": "Turka",
"tva": "Vaghua",
"tvd": "Tsuvadi",
"tve": "Te'un",
"tvk": "Ambrym Tenggara",
"tvl": "Tuvalu",
"tvm": "Tela-Masbuar",
"tvn": "Tavoyan",
"tvo": "Tidore",
"tvs": "Taveta",
"tvt": "Tutsa Naga",
"tvu": "Tunen",
"tvw": "Sedoa",
"tvx": "Taivoan",
"tvy": "Timor Pidgin",
"twa": "Twana",
"twb": "Tawbuid Barat",
"twc": "Teshenawa",
"twe": "Teiwa",
"twf": "Taos",
"twg": "Tereweng",
"twh": "Tai Dón",
"twm": "Tawang Monpa",
"twn": "Twendi",
"two": "Tswapong",
"twp": "Ere",
"twq": "Tasawaq",
"twr": "Tarahumara Barat Daya",
"twt": "Turiwára",
"twu": "Termanu",
"tww": "Tuwari",
"twy": "Tawoyan",
"txa": "Tombonuo",
"txb": "Tocharia B",
"txc": "Tsetsaut",
"txe": "Totoli",
"txg": "Tangut",
"txh": "Thracian",
"txi": "Ikpeng",
"txj": "Tarjumo",
"txm": "Tomini",
"txn": "Tarangan Barat",
"txo": "Toto",
"txq": "Tii",
"txr": "Tartessian",
"txs": "Tonsea",
"txt": "Citak",
"txu": "Kayapó",
"txx": "Tatana",
"ty": "Tahiti",
"tya": "Tauya",
"tye": "Kyenga",
"tyh": "O'du",
"tyi": "Teke-Tsaayi",
"tyj": "Tai Do",
"tyl": "Thu Lao",
"tyn": "Kombai",
"typ": "Kuku-Thaypan",
"tyr": "Tai Daeng",
"tys": "Sapa",
"tyt": "Tày Tac",
"tyu": "Kua",
"tyv": "Tuva",
"tyx": "Teke-Tyee",
"tyz": "Tày",
"tza": "Bahasa Isyarat Tanzania",
"tzh": "Tzeltal",
"tzj": "Tz'utujil",
"tzl": "Talossan",
"tzm": "Tamazight Atlas Tengah",
"tzn": "Tugun",
"tzo": "Tzotzil",
"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": "Udi",
"udj": "Ujir",
"udl": "Uldeme",
"udm": "Udmurt",
"udu": "Uduk",
"ues": "Kioko",
"ufi": "Ufim",
"ug": "Uyghur",
"uga": "Ugarit",
"ugb": "Kuku-Ugbanh",
"uge": "Ughele",
"ugn": "Ugandan Sign Language",
"ugo": "Gong",
"ugy": "Uruguayan Sign Language",
"uha": "Uhami",
"uhn": "Damal",
"uis": "Uisai",
"uiv": "Iyive",
"uji": "Tanjijili",
"uk": "Ukraine",
"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": "Unserdeutsch",
"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": "Watut Utara",
"und": "tidak ditentukan",
"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": "Malakula Timur Laut",
"ur": "Urdu",
"ura": "Urarina",
"urb": "Urubú-Kaapor",
"urc": "Urningangg",
"ure": "Uru",
"urf": "Uradhi",
"urg": "Urigina",
"urh": "Urhobo",
"uri": "Urim",
"urj-fin-pro": "Proto-Finnik",
"urj-koo": "Komi Kuno",
"urj-kuk": "Kukkuzi",
"urj-kya": "Komi-Yazva",
"urj-mdv-pro": "Proto-Mordvinik",
"urj-prm-pro": "Proto-Permik",
"urj-pro": "Proto-Uralik",
"urj-ugr-pro": "Proto-Ugrik",
"urk": "Urak Lawoi'",
"url": "Urali",
"urm": "Urapmin",
"urn": "Uruangnirin",
"uro": "Ura (Papua 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": "Uvea Barat",
"uvh": "Uri",
"uvl": "Lote",
"uwa": "Kuku-Uwanh",
"uya": "Doko-Uyanga",
"uz": "Uzbek",
"vaa": "Vaagri Booli",
"vae": "Vale",
"vag": "Vagla",
"vah": "Varhadi",
"vai": "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": "Bontoc Barat Daya",
"ve": "Venda",
"vec": "Veneto",
"ved": "Veddah",
"vem": "Vemgo-Mabas",
"veo": "Ventureño",
"vep": "Veps",
"ver": "Mom Jango",
"vgr": "Vaghri",
"vgt": "Flemish Sign Language",
"vi": "Vietnam",
"vic": "Kreol Kepulauan Virgin",
"vid": "Vidunda",
"vif": "Vili",
"vig": "Viemo",
"vil": "Vilela",
"vis": "Vishavan",
"vit": "Viti",
"viv": "Iduna",
"vka": "Kariyarra",
"vki": "Ija-Zuba",
"vkj": "Kujarge",
"vkk": "Kaur",
"vkl": "Kulisusu",
"vkm": "Kamakan",
"vko": "Kodeoha",
"vkp": "Portugis Kreol Korlai",
"vkt": "Tenggarong Kutai Malay",
"vku": "Kurrama",
"vlp": "Valpei",
"vls": "Flemish Barat",
"vma": "Martuthunira",
"vmb": "Mbabaram",
"vmc": "Mixtec Juxtlahuaca",
"vmd": "Mudu Koraga",
"vme": "Masela Timur",
"vmf": "Franconia Timur",
"vmg": "Minigir",
"vmh": "Maraghei",
"vmi": "Miwa",
"vmj": "Mixtec Ixtayutla",
"vmk": "Makhuwa-Shirima",
"vml": "Malgana",
"vmm": "Mixtec Mitlatongo",
"vmp": "Mazatec Soyaltepec",
"vmq": "Mixtec Soyaltepec",
"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": "Volapük",
"vor": "Voro",
"vot": "Vot",
"vra": "Vera'a",
"vro": "Võro",
"vrs": "Varisi",
"vrt": "Banam Bay",
"vsi": "Moldova Sign Language",
"vsl": "Venezuelan Sign Language",
"vsv": "Valencian Sign Language",
"vto": "Vitou",
"vum": "Vumbu",
"vun": "Vunjo",
"vut": "Vute",
"vwa": "Awa (China)",
"wa": "Walloon",
"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": "Waray-Waray",
"was": "Washo",
"wat": "Kaninuwa",
"wau": "Wauja",
"wav": "Waka",
"waw": "Waiwai",
"wax": "Watam",
"way": "Wayana",
"waz": "Wampur",
"wba": "Warao",
"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": "Yanomámi",
"wci": "Waci Gbe",
"wdd": "Wandji",
"wdg": "Wadaginam",
"wdj": "Wadjiginy",
"wdt": "Wendat",
"wdu": "Wadjigu",
"wdy": "Wadjabangayi",
"wea": "Wewaw",
"wec": "Wè Barat",
"wed": "Wedau",
"weh": "Weh",
"wei": "Kiunum",
"wem": "Weme Gbe",
"weo": "Wemale",
"wer": "Weri",
"wes": "Pijin Cameroon",
"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": "Wahgi Utara",
"whk": "Kenyah Wahau",
"whu": "Kayan Wahau",
"wib": "Toussiana Selatan",
"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": "Winnebago",
"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": "Wales Pertengahan",
"wlo": "Wolio",
"wlr": "Wailapa",
"wls": "Wallis",
"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": "Mwani",
"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": "Wolof",
"woa": "Tyaraity",
"wob": "Wè Utara",
"woc": "Wogeo",
"wod": "Wolani",
"woe": "Woleai",
"wog": "Wogamusin",
"woi": "Kamang",
"wok": "Longto",
"wom": "Perema",
"won": "Wongo",
"woo": "Manombai",
"wor": "Woria",
"wos": "Hanga Hundi",
"wow": "Wawonii",
"wpc": "Wirö",
"wra": "Warapu",
"wrb": "Warluwara",
"wrg": "Warungu",
"wrh": "Wiradhuri",
"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",
"wss": "Wasa",
"wsu": "Wasu",
"wsv": "Wotapuri-Katarqalai",
"wtf": "Watiwa",
"wth": "Wathaurong",
"wti": "Berta",
"wtk": "Watakataui",
"wtm": "Mewati",
"wtw": "Wotu",
"wua": "Wikngenchera",
"wub": "Wunambal",
"wud": "Wudu",
"wuh": "Wutunhua",
"wul": "Silimo",
"wum": "Wumbvu",
"wun": "Bungu",
"wur": "Wurrugu",
"wut": "Wutung",
"wuu": "Wu",
"wuv": "Wuvulu-Aua",
"wux": "Wulna",
"wuy": "Wauyai",
"wwa": "Waama",
"wwo": "Dorig",
"wwr": "Warrwa",
"www": "Wawa",
"wxa": "Waxianghua",
"wxw": "Wardandi",
"wya": "Wyandot",
"wyb": "Ngiyambaa",
"wyi": "Woiwurrung",
"wym": "Vilamovian",
"wyr": "Wayoró",
"wyy": "Fiji Barat",
"xaa": "Arab Andalusia",
"xab": "Sambe",
"xac": "Kachari",
"xad": "Adai",
"xae": "Aequian",
"xag": "Aghwan",
"xai": "Kaimbé",
"xaj": "Ararandewára",
"xak": "Maku",
"xal": "Kalmyk",
"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": "Baktria",
"xbd": "Bindal",
"xbe": "Bigambal",
"xbg": "Bunganditj",
"xbi": "Kombio",
"xbj": "Birrpayi",
"xbm": "Breton Pertengahan",
"xbn": "Kenaboi",
"xbo": "Bulgar",
"xbp": "Bibbulman",
"xbr": "Kambera",
"xbw": "Kambiwá",
"xby": "Butchulla",
"xcb": "Cumbric",
"xcc": "Camunic",
"xce": "Celtiberian",
"xch": "Chemakum",
"xcl": "Armenia Kuno",
"xcm": "Comecrudo",
"xcn": "Cotoname",
"xco": "Khwarezm",
"xcr": "Carian",
"xct": "Tibet Klasik",
"xcu": "Curonian",
"xcv": "Chuva",
"xcw": "Coahuilteco",
"xcy": "Cayuse",
"xda": "Darkinjung",
"xdc": "Dacian",
"xdk": "Dharug",
"xdm": "Edom",
"xdq": "Kaitag",
"xdy": "Malayic Dayak",
"xeb": "Ebla",
"xed": "Hdi",
"xeg": "ǁXegwi",
"xel": "Kelo",
"xem": "Kembayan",
"xep": "Epi-Olmec",
"xer": "Xerénte",
"xes": "Kesawai",
"xet": "Xetá",
"xeu": "Keoru-Ahia",
"xfa": "Falisci",
"xga": "Galatia",
"xgb": "Gbin",
"xgd": "Gudang",
"xgf": "Gabrielino-Fernandeño",
"xgg": "Goreng",
"xgi": "Garingbal",
"xgl": "Galindan",
"xgm": "Darumbal",
"xgn-pro": "Proto-Mongolia",
"xgr": "Garza",
"xgu": "Unggumi",
"xgw": "Guwa",
"xh": "Xhosa",
"xha": "Harami",
"xhc": "Hun",
"xhd": "Hadrami",
"xhe": "Khetrani",
"xhm": "Khmer Pertengahan",
"xhr": "Hernican",
"xht": "Hatti",
"xhu": "Hurri",
"xhv": "Khua",
"xib": "Iberia",
"xii": "Xiri",
"xil": "Illyria",
"xin": "Xinca",
"xir": "Xiriâna",
"xis": "Kisan",
"xiv": "Bahasa Lembah Indus",
"xiy": "Xipaya",
"xjb": "Minjungbal",
"xka": "Kalkoti",
"xkb": "Manigri-Kambolé Ede Nago",
"xkc": "Khoini",
"xkd": "Kayan Mendalam",
"xke": "Kereho",
"xkf": "Khengkha",
"xkg": "Kagoro",
"xki": "Isyarat Kenya",
"xkj": "Kajali",
"xkk": "Kaco'",
"xkl": "Bakung",
"xkn": "Kayan Sungai 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": "Lycia",
"xld": "Lydia",
"xle": "Lemnos",
"xlg": "Liguria Purba",
"xli": "Liburni",
"xlo": "Loup A",
"xlp": "Lepontii",
"xls": "Lusitania",
"xlu": "Luwiya",
"xly": "Elymi",
"xmb": "Mbonga",
"xmc": "Makhuwa-Marrevone",
"xmd": "Mbudum",
"xme-ker": "Kermanik",
"xme-kls": "Kalasuri",
"xme-klt": "Kilit",
"xme-mid": "Median Pertengahan",
"xme-old": "Median Kuno",
"xme-ott": "Tati Kuno",
"xme-taf": "Tafreshi",
"xme-ttc-pro": "Proto-Tatik",
"xmf": "Mingrelia",
"xmg": "Mengaka",
"xmh": "Kugu-Muminh",
"xmj": "Majera",
"xmk": "Macedonia Purba",
"xml": "Isyarat Malaysia",
"xmm": "Melayu Manado",
"xmo": "Morerebi",
"xmp": "Kuku-Mu'inh",
"xmq": "Kuku-Mangk",
"xmr": "Meroe",
"xms": "Isyarat Maghribi",
"xmt": "Matbat",
"xmu": "Kamu",
"xmx": "Maden",
"xmy": "Mayaguduna",
"xmz": "Mori Bawah",
"xna": "Arab Utara Purba",
"xnb": "Kanakanabu",
"xnd-pro": "Proto-Na-Dene",
"xng": "Mongol Pertengahan",
"xnh": "Kuanhua",
"xni": "Ngarigu",
"xnk": "Nganakarti",
"xnn": "Kankanay Utara",
"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": "Tasmania Tenggara",
"xpg": "Phrygia",
"xph": "Tyerrernotepanner",
"xpi": "Pict",
"xpj": "Mpalitjanh",
"xpk": "Kulina",
"xpl": "Port Sorell",
"xpm": "Pumpokol",
"xpn": "Kapinawá",
"xpo": "Pochutec",
"xpp": "Puyo-Paekche",
"xpq": "Mohegan-Pequot",
"xpr": "Parthia",
"xps": "Pisidia",
"xpu": "Punik",
"xpv": "Tommeginne",
"xpw": "Peerapper",
"xpx": "Toogee",
"xpy": "Buyeo",
"xpz": "Pulau Bruny",
"xqa": "Karakhanid",
"xqt": "Qatabanian",
"xra": "Krahô",
"xrb": "Karaboro Timur",
"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": "Sambal",
"xsc-pro": "Proto-Scythia",
"xsc-sak-pro": "Proto-Saka",
"xsc-sar-pro": "Proto-Sarmatia",
"xsc-skw-pro": "Proto-Saka-Wakhi",
"xsd": "Sidetic",
"xse": "Sempan",
"xsh": "Shamang",
"xsi": "Sio",
"xsj": "Subi",
"xsl": "Slavey Selatan",
"xsm": "Kasem",
"xsn": "Sanga (Nigeria)",
"xso": "Solano",
"xsp": "Silopi",
"xsq": "Makhuwa-Saka",
"xsr": "Sherpa",
"xss": "Assan",
"xsu": "Sanumá",
"xsv": "Sudovian",
"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": "Mixtec Magdalena Peñasco",
"xtn": "Mixtec Tlaxiaco Utara",
"xto": "Tocharia A",
"xtp": "Mixtec San Miguel Piedras",
"xtq": "Tumshuq",
"xtr": "Tripuri Awal",
"xts": "Mixtec Sindihui",
"xtt": "Mixtec Tacahua",
"xtu": "Mixtec Cuyamecalco",
"xtv": "Thawa",
"xtw": "Tawandê",
"xty": "Mixtec Yoloxochitl",
"xtz": "Tasmania",
"xua": "Kurumba Alu",
"xub": "Kurumba Betta",
"xud": "Umiida",
"xug": "Kunigami",
"xuj": "Jennu Kurumba",
"xul": "Ngunawal",
"xum": "Umbri",
"xun": "Unggaranggu",
"xuo": "Kuo",
"xup": "Upper Umpqua",
"xur": "Urartian",
"xut": "Kuthant",
"xuu": "Khwe",
"xve": "Venetic",
"xvn": "Vandalic",
"xvo": "Volscian",
"xvs": "Vestinian",
"xwa": "Kwaza",
"xwc": "Woccon",
"xwd": "Wadi Wadi",
"xwe": "Xwela Gbe",
"xwg": "Kwegu",
"xwj": "Wajuk",
"xwk": "Wangkumara",
"xwl": "Gbe Xwla Barat",
"xwo": "Oirat Bertulis",
"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": "Zemgalia",
"xzp": "Zapotec Purba",
"yaa": "Yaminahua",
"yab": "Yuhup",
"yac": "Pass Valley Yali",
"yad": "Yagua",
"yae": "Pumé",
"yaf": "Yaka",
"yag": "Yámana",
"yah": "Yazghulami",
"yai": "Yagnobi",
"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": "Yugur Barat",
"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": "Kreol Yilan",
"yda": "Yanda",
"yde": "Yangum Dey",
"ydg": "Yidgha",
"ydk": "Yoidik",
"yea": "Ravula",
"yec": "Yeniche",
"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": "Yiddish",
"yia": "Yinggarda",
"yif": "Ache",
"yig": "Wusa Nasu",
"yii": "Yidiny",
"yij": "Yindjibarndi",
"yik": "Dongshanba Lalo",
"yil": "Yindjilandji",
"yim": "Yimchungru Naga",
"yin": "Yinchia",
"yip": "Pholo",
"yiq": "Miqie",
"yir": "Awyu Utara",
"yis": "Yis",
"yit": "Lalu Timur",
"yiu": "Awu",
"yiv": "Nisu Utara",
"yix": "Axi",
"yiy": "Yir-Yoront",
"yiz": "Azhe",
"yka": "Yakan",
"ykg": "Yukaghir Utara",
"ykh": "Mongol Khamnigan",
"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": "Nyâlayu",
"ymb": "Yambes",
"ymc": "Muji Selatan",
"ymd": "Muda",
"yme": "Yameo",
"ymg": "Yamongeri",
"ymh": "Mili",
"ymi": "Moji",
"ymk": "Makwe",
"yml": "Iamalele",
"ymm": "Maay",
"ymn": "Sunum",
"ymo": "Mon Yangum",
"ymp": "Yamap",
"ymq": "Muji Qila",
"ymr": "Malasar",
"yms": "Mysian",
"ymx": "Muji Utara",
"ymz": "Muzi",
"yna": "Aluo",
"ynd": "Yandruwandha",
"yne": "Lang'e",
"yng": "Yango",
"ynk": "Naukanski",
"ynl": "Yangulam",
"ynn": "Yana",
"yno": "Yong",
"yns": "Yansi",
"ynu": "Yahuna",
"yo": "Yoruba",
"yob": "Yoba",
"yog": "Yogad",
"yoi": "Yonaguni",
"yok-bvy": "Yokuts Buena Vista",
"yok-dly": "Yokuts Delta",
"yok-gsy": "Yokuts Gashowu",
"yok-kry": "Yokuts Sungai Kings",
"yok-nvy": "Yokuts Lembah Utara",
"yok-ply": "Yokuts Palewyami",
"yok-svy": "Yokuts Lembah Selatan",
"yok-tky": "Yokuts Tule-Kaweah",
"yol": "Yola",
"yom": "Yombe",
"yon": "Yongkom",
"yox": "Yoron",
"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": "Nenets Tundra",
"yrk-for": "Nenets Hutan",
"yrk-tun": "Nenets Tundra",
"yrl": "Nheengatu",
"yrn": "Yerong",
"yro": "Yaroamë",
"yrw": "Yarawata",
"yry": "Yarluyandi",
"ysc": "Jassic",
"ysd": "Samatao",
"ysg": "Sonaga",
"ysl": "Yugoslavian Sign Language",
"ysn": "Sani",
"yso": "Nisi",
"ysp": "Lolopo Selatan",
"ysr": "Sirenik",
"yss": "Yessan-Mayo",
"ysy": "Sanie",
"yta": "Talu",
"ytl": "Tanglang",
"ytp": "Thopho",
"ytw": "Yout Wam",
"yty": "Yatay",
"yua": "Maya Yucatec",
"yub": "Yugambal",
"yuc": "Yuchi",
"yue": "Kantonis",
"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": "Yukaghir Selatan",
"yuy": "Yugur Timur",
"yuz": "Yuracare",
"yva": "Yawa",
"yvt": "Yavitero",
"ywa": "Kalou",
"ywg": "Yinhawangka",
"ywl": "Lalu Barat",
"ywn": "Yawanawa",
"ywq": "Nasu",
"ywr": "Yawuru",
"ywt": "Xishanba Lalo",
"ywu": "Wumeng Nasu",
"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": "Zhuang",
"zaa": "Zapotec Sierra de Juárez",
"zab": "Zapotec San Juan Guelavía",
"zac": "Zapotec Ocotlán",
"zad": "Zapotec Cajonos",
"zae": "Zapotec Yareni",
"zaf": "Zapotec Ayoquesco",
"zag": "Zaghawa",
"zah": "Zangwal",
"zai": "Zapotec Segenting",
"zaj": "Zaramo",
"zak": "Zanaki",
"zal": "Zauzou",
"zam": "Zapoteco Mahuatlán Tengah",
"zao": "Zapotec Ozolotepec",
"zap": "Zapotec",
"zaq": "Zapotec Aloápam",
"zar": "Zapotec Rincón",
"zas": "Zapotec Santo Domingo Albarradas",
"zat": "Zapotec Tabaa",
"zau": "Zangskar",
"zav": "Zapotec Yatzachi",
"zaw": "Zapotec Mitla",
"zax": "Zapotec Xadani",
"zay": "Zayse-Zergulla",
"zaz": "Zari",
"zbt": "Batui",
"zca": "Zapotec Coatecas Altas",
"zdj": "Comoros Ngazidja",
"zea": "Zeeland",
"zeg": "Zenag",
"zen": "Zenaga",
"zga": "Kinga",
"zgh": "Amazigh Maghribi",
"zgr": "Magori",
"zh": "Cina",
"zhb": "Zhaba",
"zhi": "Zhire",
"zhn": "Nong Zhuang",
"zhw": "Zhoa",
"zhx-min-pro": "Proto-Min",
"zhx-sht": "Tuhua Shaozhou",
"zhx-sic": "Sichuan",
"zhx-tai": "Taishan",
"zia": "Zia",
"zib": "Zimbabwe Sign Language",
"zik": "Zimakani",
"zil": "Zialo",
"zim": "Mesme",
"zin": "Zinza",
"zir": "Ziriya",
"ziw": "Zigula",
"ziz": "Zizilivakan",
"zka": "Kaimbulawa",
"zkb": "Koibal",
"zkg": "Goguryeo",
"zkh": "Khorezmian Turkic",
"zkk": "Karankawa",
"zko": "Kott",
"zkp": "Kaingáng São Paulo",
"zkr": "Zakhring",
"zkt": "Khitan",
"zku": "Kaurna",
"zkv": "Krevinian",
"zkz": "Khazar",
"zle-ono": "Novgorod Kuno",
"zle-ort": "Ruthenian Kuno",
"zls-chs": "Slavonic Gereja",
"zlw-ocs": "Czech Kuno",
"zlw-opl": "Poland Kuno",
"zlw-osk": "Slovak Kuno",
"zlw-slv": "Slovincian",
"zma": "Manda (Australia)",
"zmb": "Zimba",
"zmc": "Margany",
"zmd": "Maridan",
"zme": "Mangerr",
"zmf": "Mfinu",
"zmg": "Marti Ke",
"zmh": "Makolkol",
"zmi": "Melayu Negeri Sembilan",
"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": "Kaya",
"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": "Zulu",
"zua": "Zeem",
"zuh": "Tokano",
"zum": "Kumzari",
"zun": "Zuni",
"zuy": "Zumaya",
"zwa": "Zay",
"zyp": "Zyphe",
"zza": "Zazaki",
"zzj": "Zuojiang Zhuang"
}
5imnucpkexiupopjynvxwvafk90mu7a
373554
373546
2026-09-11T10:39:29Z
Hakimi97
2668
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373554
json
application/json
{
"aa": "Afar",
"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": "Khasi Purba",
"aav-nic-pro": "Nicobar Purba",
"aav-pkl-pro": "Pnar-Khasi-Lyngngam Purba",
"aav-pro": "Austroasia Purba",
"aaw": "Solong",
"aax": "Mandobo Atas",
"aaz": "Amarasi",
"ab": "Abkhaz",
"aba": "Abé",
"abb": "Bankon",
"abc": "Ayta Ambala",
"abd": "Agta Camarines Norte",
"abe": "Abenaki",
"abf": "Abai Sungai",
"abg": "Abaga",
"abh": "Arab Tajik",
"abi": "Abidji",
"abj": "Aka-Bea",
"abl": "Abung",
"abm": "Abanyom",
"abn": "Abua",
"abo": "Abon",
"abp": "Ayta Abenlen",
"abq": "Abaza",
"abs": "Melayu Ambon",
"abt": "Ambulas",
"abu": "Abure",
"abv": "Arab Bahrani",
"abw": "Pal",
"abx": "Inabaknon",
"aby": "Aneme Wake",
"abz": "Abui",
"aca": "Achagua",
"acb": "Áncá",
"acd": "Gikyode",
"ace": "Aceh",
"ach": "Acholi",
"aci": "Aka-Cari",
"ack": "Aka-Kora",
"acl": "Akar-Bale",
"acm": "Arab Iraq",
"acn": "Achang",
"acp": "Acipa Timur",
"acr": "Achi",
"acs": "Acroá",
"acu": "Achuar",
"acv": "Achumawi",
"acw": "Arab Hijaz",
"acx": "Arab Oman",
"acy": "Arab Cyprus",
"acz": "Acheron",
"ada": "Adangme",
"adb": "Atauran",
"add": "Dzodinka",
"ade": "Adele",
"adf": "Arab Dhofar",
"adg": "Andegerebinha",
"adh": "Adhola",
"adi": "Adi",
"adj": "Adioukrou",
"adl": "Galo",
"adn": "Adang",
"ado": "Abu",
"adp": "Adap",
"adq": "Adangbe",
"adr": "Adonara",
"ads": "Bahasa Isyarat Adamorobe",
"adt": "Adnyamathanha",
"adu": "Aduge",
"adw": "Amondawa",
"ady": "Circassian Barat",
"adz": "Adzera",
"ae": "Avesta",
"aea": "Areba",
"aeb": "Arab Tunisia",
"aed": "Bahasa Isyarat Argentina",
"aee": "Pashayi Timur Laut",
"aek": "Haeke",
"ael": "Ambele",
"aem": "Arem",
"aen": "Bahasa Isyarat Armenia",
"aeq": "Aer",
"aer": "Arrernte Timur",
"aes": "Alsea",
"aeu": "Akeu",
"aew": "Ambakich",
"aey": "Amele",
"aez": "Aeka",
"af": "Afrikaans",
"afa-pro": "Afroasia Purba",
"afb": "Arab Teluk",
"afd": "Andai",
"afe": "Putukwam",
"afg": "Bahasa Isyarat Afghanistan",
"afh": "Afrihili",
"afi": "Akrukay",
"afk": "Nanubae",
"afn": "Defaka",
"afo": "Eloyi",
"afp": "Tapei",
"afs": "Kreol Afro-Seminole",
"aft": "Afitti",
"afu": "Awutu",
"afz": "Obokuitai",
"aga": "Aguano",
"agb": "Legbo",
"agc": "Agatu",
"agd": "Agarabi",
"age": "Angal",
"agf": "Arguni",
"agg": "Angor",
"agh": "Ngelima",
"agj": "Argobba",
"agk": "Agta Isarog",
"agl": "Fembe",
"agm": "Angaataha",
"agn": "Agutaynen",
"ago": "Tainae",
"agq": "Aghem",
"agr": "Aguaruna",
"ags": "Esimbi",
"agt": "Agta Cagayan Tengah",
"agu": "Aguacateco",
"agv": "Agta Remontado",
"agw": "Kahua",
"agx": "Aghul",
"agy": "Alta Selatan",
"agz": "Agta Gunung Iriga",
"aha": "Ahanta",
"ahb": "Axamb",
"ahg": "Qimant",
"ahh": "Aghu",
"ahi": "Tiagba",
"ahk": "Akha",
"ahl": "Igo",
"ahm": "Mobu",
"ahn": "Àhàn",
"aho": "Ahom",
"ahp": "Apro",
"ahr": "Ahirani",
"ahs": "Ashe",
"aht": "Ahtna",
"aia": "Arosi",
"aib": "Äynu",
"aic": "Ainbai",
"aid": "Alngith",
"aie": "Amara",
"aif": "Agi",
"aig": "Kreol Inggeris Antigua dan Barbuda",
"aih": "Ai-Cham",
"aii": "Neo-Aramia Assyria",
"aij": "Lishanid Noshan",
"aik": "Ake",
"ail": "Aimele",
"aim": "Aimol",
"ain": "Ainu",
"aio": "Aiton",
"aip": "Burumakok",
"air": "Airoran",
"ait": "Arikem",
"aiw": "Aari",
"aix": "Aighon",
"aiy": "Ali",
"aja": "Aja (Afrika Timur)",
"ajg": "Aja (Afrika Barat)",
"aji": "Ajië",
"ajn": "Andajin",
"ajp": "Arab Syam Selatan",
"ajs": "Bahasa Isyarat Yahudi Algeria",
"ajw": "Ajawa",
"ajz": "Karbi Amri",
"ak": "Akan",
"akb": "Batak Angkola",
"akc": "Mpur",
"akd": "Ukpet-Ehom",
"ake": "Akawaio",
"akf": "Akpa",
"akg": "Anakalangu",
"akh": "Angal Heneng",
"aki": "Aiome",
"akj": "Jeru",
"akk": "Akkadia",
"akl": "Aklanon",
"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": "Alabama",
"ala": "Alago",
"alc": "Kawésqar",
"ald": "Alladian",
"ale": "Aleut",
"alf": "Alege",
"alg-aga": "Agawam",
"alg-pro": "Algonquian Purba",
"alh": "Alawa",
"ali": "Amaimon",
"alj": "Alangan",
"alk": "Alak",
"all": "Allar",
"alm": "Amblong",
"alo": "Larike-Wakasihu",
"alp": "Alune",
"alq": "Algonquin",
"alr": "Alutor",
"alt": "Altai Selatan",
"alu": "'Are'are",
"alv-ama": "Amasi",
"alv-bgu": "Bainouk Gubeeher",
"alv-bua-pro": "Bua Purba",
"alv-cng-pro": "Cangin Purba",
"alv-edk-pro": "Edekiri Purba",
"alv-edo-pro": "Edoid Purba",
"alv-fli-pro": "Fali Purba",
"alv-gbe-pro": "Gbe Purba",
"alv-gng-pro": "Guang Purba",
"alv-gtm-pro": "Togo Tengah Purba",
"alv-gwa": "Gwara",
"alv-hei-pro": "Heiban Purba",
"alv-ido-pro": "Idomoid Purba",
"alv-igb-pro": "Igboid Purba",
"alv-kwa-pro": "Kwa Purba",
"alv-mum-pro": "Mumuye Purba",
"alv-nup-pro": "Nupoid Purba",
"alv-pro": "Atlantik-Congo Purba",
"alv-von-pro": "Volta-Niger Purba",
"alv-yor-pro": "Yoruba Purba",
"alv-yrd-pro": "Yoruboid Purba",
"alw": "Alaba",
"alx": "Amol",
"aly": "Alyawarr",
"alz": "Alur",
"am": "Amhara",
"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": "Amami Ōshima Selatan",
"amt": "Amto",
"amu": "Amuzgo Guerrero",
"amv": "Ambelau",
"amw": "Neo-Aramia Barat",
"amx": "Anmatyerre",
"amy": "Ami",
"amz": "Atampaya",
"an": "Aragon",
"ana": "Andaqui",
"anb": "Andoa",
"anc": "Ngas",
"and": "Ansus",
"ane": "Xârâcùù",
"anf": "Animere",
"ang": "Inggeris Kuno",
"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": "Alor",
"aom": "Ömie",
"aon": "Arapesh Bumbita",
"aor": "Aore",
"aos": "Taikat",
"aot": "Atong (India)",
"aou": "A'ou",
"aox": "Atorada",
"aoz": "Uab Meto",
"apa-pro": "Apache Purba",
"apb": "Sa'a",
"apc": "Arab Syam Utara",
"apd": "Arab Sudan",
"ape": "Bukiyip",
"apf": "Agta Pahanan",
"apg": "Ampanang",
"aph": "Athpare",
"api": "Apiaká",
"apj": "Jicarilla",
"apk": "Apache Dataran",
"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": "Apache Barat",
"apx": "Aputai",
"apy": "Apalaí",
"apz": "Safeyoka",
"aqc": "Archi",
"aqd": "Dogon Ampari",
"aqg": "Arigidi",
"aql-pro": "Algik Purba",
"aqm": "Atohwaim",
"aqn": "Alta Utara",
"aqp": "Atakapa",
"aqr": "Arhâ",
"aqt": "Angaité",
"aqz": "Akuntsu",
"ar": "Arab",
"arc": "Aramia",
"ard": "Arabana",
"are": "Arrernte Barat",
"arh": "Arhuaco",
"ari": "Arikara",
"arj": "Arapaso",
"ark": "Arikapú",
"arl": "Arabela",
"arn": "Mapudungun",
"aro": "Araona",
"arp": "Arapaho",
"arq": "Arab Algeria",
"arr": "Arara-Karo",
"ars": "Arab Najdi",
"art-adu": "Adûni",
"art-bel": "Kreol Belter",
"art-blk": "Bolak",
"art-bsp": "Bahasa Hitam",
"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": "Valyria Tinggi",
"aru": "Arua",
"arv": "Arbore",
"arw": "Lokono",
"arx": "Aruá",
"ary": "Arab Maghribi",
"arz": "Arab Mesir",
"as": "Assam",
"asa": "Pare",
"asb": "Assiniboine",
"asc": "Asmat Pesisir Casuarina",
"ase": "Bahasa Isyarat Amerika",
"asf": "Auslan",
"asg": "Cishingini",
"ash": "Abishira",
"asi": "Buruwai",
"asj": "Nsari",
"ask": "Ashkun",
"asl": "Asilulu",
"asn": "Asuriní Xingú",
"aso": "Dano",
"asp": "Bahasa Isyarat Algeria",
"asq": "Bahasa Isyarat Austria",
"asr": "Asuri",
"ass": "Ipulo",
"ast": "Asturia",
"asu": "Asurini Tocantins",
"asv": "Asoa",
"asw": "Bahasa Isyarat Orang Asli Australia",
"asx": "Muratayak",
"asy": "Asmat Yaosakor",
"asz": "As",
"ata": "Pele-Ata",
"atb": "Zaiwa",
"atc": "Atsahuaca",
"atd": "Manobo Ata",
"ate": "Atemble",
"atg": "Okpela",
"ath-nic": "Nicola",
"ath-pro": "Athabaska Purba",
"ati": "Attié",
"atj": "Atikamekw",
"atk": "Ati",
"atl": "Agta Gunung Iraya",
"atm": "Ata",
"ato": "Atong (Cameroon)",
"atp": "Atta Pudtol",
"atq": "Aralle-Tabulahan",
"atr": "Waimiri-Atroari",
"ats": "Gros Ventre",
"att": "Atta Pamplona",
"atu": "Reel",
"atv": "Altai Utara",
"atw": "Atsugewi",
"atx": "Arutani",
"aty": "Aneityum",
"atz": "Arta",
"aua": "Asumboa",
"aub": "Alugu",
"auc": "Huaorani",
"aud": "Anuta",
"auf-pro": "Arawa Purba",
"aug": "Aguna",
"auh": "Aushi",
"aui": "Anuki",
"auj": "Awjila",
"auk": "Heyo",
"aul": "Aulua",
"aum": "Asu",
"aun": "One Molmo",
"auo": "Auyokawa",
"aup": "Makayam",
"auq": "Anus",
"aur": "Aruek",
"aus-alu": "Alungul",
"aus-and": "Andjingith",
"aus-ang": "Angkula",
"aus-arn-pro": "Arnhem Purba",
"aus-bra": "Barranbinya",
"aus-brm": "Barunggam",
"aus-cww-pro": "New South Wales Tengah Purba",
"aus-dal-pro": "Daly Purba",
"aus-guw": "Guwar",
"aus-lsw": "Little Swanport",
"aus-mbi": "Mbiywom",
"aus-ngk": "Ngkoth",
"aus-nyu-pro": "Nyulnyulan Purba",
"aus-pam-pro": "Pama-Nyunga Purba",
"aus-tul": "Tulua",
"aus-uwi": "Uwinymil",
"aus-wdj-pro": "Iwaidjan Purba",
"aus-won": "Wong-gie",
"aus-wul": "Wulguru",
"aus-ynk": "Yangkaal",
"aut": "Austral",
"auu": "Auye",
"auw": "Awyi",
"aux": "Aurá",
"auy": "Auyana",
"auz": "Arab Uzbeki",
"av": "Avar",
"avb": "Avau",
"avd": "Alviri-Vidari",
"avi": "Avikam",
"avk": "Kotava",
"avm": "Angkamuthi",
"avn": "Avatime",
"avs": "Aushiri",
"avt": "Au",
"avu": "Avokaya",
"avv": "Avá-Canoeiro",
"awa": "Awadhi",
"awb": "Awa (New Guinea)",
"awc": "Cicipu",
"awd-ama": "Amarizana",
"awd-amc-pro": "Amuesha-Chamicuro Purba",
"awd-ana": "Anauyá",
"awd-apo": "Apolista",
"awd-cab": "Cabre",
"awd-gnu": "Guinau",
"awd-kar": "Cariay",
"awd-kaw": "Kawishana",
"awd-kmp-pro": "Kampa Purba",
"awd-kus": "Kustenau",
"awd-man": "Manao",
"awd-mar": "Marawan",
"awd-mpr": "Maipure",
"awd-mrt": "Mariaté",
"awd-nwk-pro": "Nawiki Purba",
"awd-pai": "Paikoneka",
"awd-pas": "Pasé",
"awd-pro": "Arawak Purba",
"awd-prw-pro": "Paresi-Waura Purba",
"awd-she": "Shebayo",
"awd-taa-pro": "Ta-Arawak Purba",
"awd-wai": "Wainumá",
"awd-war": "Warekena Kuno",
"awd-yum": "Yumana",
"awe": "Awetí",
"awg": "Anguthimri",
"awh": "Awbono",
"awi": "Aekyom",
"awk": "Awabakal",
"awm": "Arawum",
"awn": "Awngi",
"awo": "Awak",
"awr": "Awera",
"aws": "Awyu Selatan",
"awt": "Araweté",
"awu": "Awyu Tengah",
"awv": "Awyu Jair",
"aww": "Awun",
"awx": "Awara",
"awy": "Awyu Edera",
"axb": "Abipón",
"axe": "Ayerrerenge",
"axg": "Arára (Mato Grosso)",
"axk": "Aka (Afrika Tengah)",
"axl": "Aranda Selatan Bawah",
"axm": "Armenia Pertengahan",
"axx": "Xârâgurè",
"ay": "Aymara",
"aya": "Awar",
"ayb": "Ayizo",
"ayd": "Ayabadhu",
"aye": "Ayere",
"ayg": "Nyanga (Togo)",
"ayi": "Leyigha",
"ayk": "Akuku",
"ayl": "Arab Libya",
"ayn": "Arab Yaman",
"ayo": "Ayoreo",
"ayp": "Arab Mesopotamia Utara",
"ayq": "Ayi",
"ays": "Ayta Sorsogon",
"ayt": "Ayta Bataan",
"ayu": "Ayu",
"ayz": "Maybrat",
"az": "Azerbaijan",
"aza": "Azha",
"azc-caz": "Cazcan",
"azc-cup-pro": "Cupan Purba",
"azc-ktn": "Kitanemuk",
"azc-nah-pro": "Nahua Purba",
"azc-nic": "Nicoleño",
"azc-num-pro": "Numik Purba",
"azc-pro": "Uto-Aztek Purba",
"azc-tak-pro": "Takik Purba",
"azc-tat": "Tataviam",
"azd": "Nahuatl Durango Timur",
"azg": "Amuzgo San Pedro Amuzgos",
"azm": "Amuzgo Ipalapa",
"azn": "Nahuatl Durango Barat",
"azo": "Awing",
"azt": "Atta Faire",
"azz": "Nahuatl Puebla Tanah Tinggi",
"ba": "Bashkir",
"baa": "Babatana",
"bab": "Bainouk-Gunyuño",
"bac": "Badui",
"bae": "Baré",
"baf": "Nubaca",
"bag": "Tuki",
"bah": "Kreol Bahamas",
"baj": "Barakai",
"bal": "Baluchi",
"ban": "Bali",
"bao": "Waimaha",
"bap": "Bantawa",
"bar": "Bavarian",
"bas": "Basaa",
"bau": "Badanchi",
"bav": "Babungo",
"baw": "Bambili-Bambui",
"bax": "Bamum",
"bay": "Batuley",
"bba": "Baatonum",
"bbb": "Barai",
"bbc": "Batak Toba",
"bbd": "Bau",
"bbe": "Bangba",
"bbf": "Baibai",
"bbg": "Barama",
"bbh": "Bugan",
"bbi": "Barombi",
"bbj": "Ghomala'",
"bbk": "Babanki",
"bbl": "Bats",
"bbm": "Babango",
"bbn": "Uneapa",
"bbo": "Konabéré",
"bbp": "Banda Tengah Barat",
"bbq": "Bamali",
"bbr": "Girawa",
"bbs": "Bakpinka",
"bbt": "Mburku",
"bbu": "Bakulung",
"bbv": "Karnai",
"bbw": "Baba",
"bbx": "Bubia",
"bby": "Befang",
"bca": "Bai Tengah",
"bcb": "Bainouk-Samik",
"bcd": "Babar Utara",
"bce": "Bamenyam",
"bcf": "Bamu",
"bcg": "Baga Pokur",
"bch": "Bariai",
"bci": "Baoule",
"bcj": "Bardi",
"bck": "Bunaba",
"bcl": "Bikol Tengah",
"bcm": "Banoni",
"bcn": "Bibaali",
"bco": "Kaluli",
"bcp": "Baali",
"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",
"bdk": "Budukh",
"bdl": "Bajau Indonesia",
"bdm": "Buduma",
"bdn": "Baldemu",
"bdo": "Morom",
"bdp": "Bende",
"bdq": "Bahnar",
"bdr": "Bajau Sama",
"bds": "Burunge",
"bdt": "Bokoto",
"bdu": "Oroko",
"bdv": "Bodo Parja",
"bdw": "Baham",
"bdx": "Budong-Budong",
"bdy": "Bandjalang",
"bdz": "Badeshi",
"be": "Belarus",
"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": "Berber Purba",
"ber-zuw": "Zuwara",
"bes": "Besme",
"bet": "Guiberoua Bété",
"beu": "Blagar",
"bev": "Daloa Bété",
"bew": "Betawi",
"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": "Badaga",
"bfr": "Bazigar",
"bfs": "Bai Selatan",
"bft": "Balti",
"bfu": "Gahri",
"bfw": "Bondo",
"bfx": "Bantayanon",
"bfy": "Bagheli",
"bfz": "Mahasu Pahari",
"bg": "Bulgaria",
"bga": "Gwamhi-Wuri",
"bgb": "Bobongko",
"bgc": "Haryanvi",
"bgd": "Rathwi Bareli",
"bge": "Bauria",
"bgf": "Bangandu",
"bgg": "Bugun",
"bgi": "Giangan",
"bgj": "Bangolan",
"bgk": "Bit",
"bgl": "Bo",
"bgo": "Baga Koga",
"bgq": "Bagri",
"bgr": "Chin Bawm",
"bgs": "Tagabawa",
"bgt": "Bughotu",
"bgu": "Mbongno",
"bgv": "Warkay-Bipim",
"bgw": "Bhatri",
"bgx": "Balkan Gagauz Turkish",
"bgy": "Benggoi",
"bgz": "Banggai",
"bh": "Bihari",
"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": "Neo-Aram Bohtan",
"bho": "Bhojpur",
"bhp": "Bima",
"bhq": "Tukang Besi Selatan",
"bhs": "Buwal",
"bht": "Bhattiyali",
"bhu": "Bhunjia",
"bhv": "Bahau",
"bhw": "Biak",
"bhx": "Bhalay",
"bhy": "Bhele",
"bhz": "Bada",
"bi": "Bislama",
"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": "Birifor Selatan",
"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": "Banjar",
"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": "Binukid",
"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": "Bolongan",
"blk": "Karen Pa'o",
"bll": "Biloxi",
"blm": "Beli",
"bln": "Bicolano Catanduanes Selatan",
"blo": "Anii",
"blp": "Blablanga",
"blq": "Baluan-Pam",
"blr": "Blang",
"bls": "Balaesang",
"blt": "Tai Dam",
"blv": "Kibala",
"blw": "Balangao",
"blx": "Mag-Indi Ayta",
"bly": "Notre",
"blz": "Balantak",
"bm": "Bambara",
"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": "Benggali",
"bna": "Bonerate",
"bnb": "Bookan",
"bnd": "Banda",
"bne": "Bintauna",
"bnf": "Masiwang",
"bng": "Benga",
"bni": "Bangi",
"bnj": "Tawbuid Timur",
"bnk": "Bierebo",
"bnl": "Boon",
"bnm": "Batanga",
"bnn": "Bunun",
"bno": "Asi",
"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 (Afrika Selatan)",
"bnt-mpi": "Mpiin",
"bnt-mpu": "Mpuono",
"bnt-ngu-pro": "Nguni Purba",
"bnt-phu": "Phuthi",
"bnt-pro": "Bantu Purba",
"bnt-sab-pro": "Sabaki Purba",
"bnt-sbo": "Boma Selatan",
"bnt-sts-pro": "Sotho-Tswana Purba",
"bnu": "Bentong",
"bnv": "Beneraf",
"bnw": "Bisis",
"bnx": "Bangubangu",
"bny": "Vaie",
"bnz": "Beezen",
"bo": "Tibet",
"boa": "Bora",
"bob": "Aweer",
"boe": "Mundabli",
"bof": "Bolon",
"bog": "Bamako Sign Language",
"boh": "Boma Utara",
"boi": "Barbareño",
"boj": "Anjam",
"bok": "Bonjo",
"bol": "Bole",
"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": "Dakaka",
"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": "Breton",
"bra": "Braj",
"brb": "Lave",
"brc": "Belanda Kreol Berbice",
"brd": "Baraamu",
"brf": "Bera",
"brg": "Baure",
"brh": "Brahui",
"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": "Bru Timur",
"brv": "Bru Barat",
"brw": "Bellari",
"brx": "Bodo (India)",
"bry": "Burui",
"brz": "Bilbil",
"bsa": "Abinomn",
"bsb": "Bisaya Brunei",
"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": "Bisaya Sabah",
"bta": "Bata",
"btc": "Bati (Cameroon)",
"btd": "Batak Dairi",
"bte": "Gamo-Ningi",
"btf": "Birgit",
"btg": "Gagnoa Bété",
"bth": "Bidayuh Biatah",
"bti": "Burate",
"btj": "Melayu Bacan",
"btk-pro": "Batak Purba",
"btm": "Batak Mandailing",
"btn": "Ratagnon",
"bto": "Bicolano Iriga",
"btp": "Budibud",
"btq": "Batek",
"btr": "Baetora",
"bts": "Batak Simalungun",
"btt": "Bete-Bendi",
"btu": "Batu",
"btv": "Bateri",
"btw": "Butuanon",
"btx": "Batak Karo",
"bty": "Bobot",
"btz": "Batak Alas-Kluet",
"bua": "Buryat",
"bub": "Bua",
"bud": "Ntcham",
"bue": "Beothuk",
"buf": "Bushoong",
"bug": "Bugis",
"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": "Melayu Berau",
"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": "Melayu Bukit",
"bvv": "Baniva",
"bvw": "Boga",
"bvx": "Babole",
"bvy": "Baybayanon",
"bvz": "Bauzi",
"bwa": "Bwatoo",
"bwb": "Namosi-Naitasiri-Serua",
"bwc": "Bwile",
"bwd": "Bwaidoka",
"bwe": "Karen Bwe",
"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": "Bobo Selatan",
"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": "Batak Palawan",
"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": "Bisu",
"bzj": "Kreol Belize",
"bzk": "Kreol Nicaragua",
"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": "Catalan",
"caa": "Ch'orti'",
"cab": "Garifuna",
"cac": "Chuj",
"cad": "Caddo",
"cae": "Laalaa",
"caf": "Carrier Selatan",
"cag": "Nivaclé",
"cah": "Cahuarano",
"caj": "Chané",
"cak": "Kaqchikel",
"cal": "Carolinian",
"cam": "Cemuhî",
"can": "Chambri",
"cao": "Chácobo",
"cap": "Chipaya",
"caq": "Car Nicobarese",
"car": "Kari'na",
"cas": "Tsimané",
"cau-abz-pro": "Abkhaz-Abaza Purba",
"cau-and-pro": "Andi Purba",
"cau-ava-pro": "Avar-Andi Purba",
"cau-cir-pro": "Circassia Purba",
"cau-drg-pro": "Dargwa Purba",
"cau-lzg-pro": "Lezghi Purba",
"cau-nec-pro": "Kaukasia Timur Laut Purba",
"cau-nkh-pro": "Nakh Purba",
"cau-nwc-pro": "Kaukasia Barat Laut Purba",
"cau-tsz-pro": "Tsez Purba",
"cav": "Cavineña",
"caw": "Callawalla",
"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": "Chibchan Purba",
"cbb": "Cabiyarí",
"cbc": "Carapana",
"cbd": "Carijona",
"cbg": "Chimila",
"cbi": "Chachi",
"cbj": "Ede Cabe",
"cbk": "Chavacano",
"cbl": "Chin Bualkhaw",
"cbn": "Nyah Kur",
"cbo": "Izora",
"cbq": "Shuba",
"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": "Melayu Cheti",
"cco": "Comaltepec Chinantec",
"ccp": "Chakma",
"ccr": "Cacaopera",
"ccs-gzn-pro": "Georgia-Zan Purba",
"ccs-pro": "Kartvelia Purba",
"cda": "Choni",
"cdc-cbm-pro": "Chadik Tengah Purba",
"cdc-mas-pro": "Masa Purba",
"cdc-pro": "Chadik Purba",
"cdd-pro": "Caddoan Purba",
"cde": "Chenchu",
"cdf": "Chiru",
"cdh": "Chambeali",
"cdi": "Chodri",
"cdj": "Churahi",
"cdm": "Chepang",
"cdn": "Chaudangsi",
"cdo": "Min Timur",
"cdr": "Cinda-Regi-Tiyal",
"cds": "Bahasa Isyarat Chad",
"cdy": "Chadong",
"cdz": "Koda",
"ce": "Chechen",
"cea": "Lower Chehalis",
"ceb": "Cebuano",
"ceg": "Chamacoco",
"cel-bry-pro": "Britonik Purba",
"cel-gal": "Gallaecia",
"cel-gau": "Gaul",
"cel-pro": "Keltik Purba",
"cen": "Cen",
"cet": "Centúúm",
"cfa": "Dijim-Bwilim",
"cfd": "Cara",
"cfg": "Como Karim",
"cfm": "Chin Falam",
"cga": "Changriwa",
"cgc": "Kagayanen",
"cgg": "Rukiga",
"cgk": "Chocangaca",
"ch": "Chamorro",
"chb": "Chibcha",
"chc": "Catawba",
"chd": "Highland Oaxaca Chontal",
"chf": "Tabasco Chontal",
"chg": "Chagatai",
"chh": "Chinook",
"chi-pro": "Chimakuan Purba",
"chj": "Ojitlán Chinantec",
"chk": "Chuuk",
"chl": "Cahuilla",
"chm-pro": "Mari Purba",
"chn": "Chinook Jargon",
"cho": "Choctaw",
"chp": "Chipewyan",
"chq": "Quiotepec Chinantec",
"chr": "Cherokee",
"cht": "Cholón",
"chw": "Chuabo",
"chx": "Chantyal",
"chy": "Cheyenne",
"chz": "Ozumacín Chinantec",
"cia": "Cia-Cia",
"cib": "Ci Gbe",
"cic": "Chickasaw",
"cid": "Chimariko",
"cie": "Cineni",
"cih": "Chinali",
"cik": "Chitkuli Kinnauri",
"cim": "Cimbrian",
"cin": "Cinta Larga",
"cip": "Chiapanec",
"cir": "Tiri",
"ciy": "Chaima",
"cja": "Cam Barat",
"cje": "Chru",
"cjh": "Upper Chehalis",
"cji": "Chamalal",
"cjk": "Chokwe",
"cjm": "Cam Timur",
"cjn": "Chenapian",
"cjo": "Ashéninka Pajonal",
"cjp": "Cabécar",
"cjs": "Shor",
"cjv": "Chuave",
"cjy": "Jin",
"ckb": "Kurdi Tengah",
"ckh": "Chak",
"ckl": "Cibak",
"ckn": "Chin Kaang",
"cko": "Anufo",
"ckq": "Kajakse",
"ckr": "Kairak",
"cks": "Tayo",
"ckt": "Chukchi",
"cku": "Koasati",
"ckv": "Kavalan",
"ckx": "Caka",
"cky": "Cakfem-Mushere",
"ckz": "Cakchiquel-Quiché Mixed Language",
"cla": "Ron",
"clc": "Chilcotin",
"cld": "Chaldean Neo-Aramaic",
"cle": "Lealao Chinantec",
"clh": "Chilisso",
"cli": "Chakali",
"clj": "Chin Laitu",
"clk": "Idu",
"cll": "Chala",
"clm": "Klallam",
"clo": "Lowland Oaxaca Chontal",
"clt": "Chin Laitu",
"clu": "Caluyanun",
"clw": "Chulym",
"cly": "Chatino Tanah Tinggi Timur",
"cma": "Mạ",
"cmc-pro": "Chamik Purba",
"cme": "Cerma",
"cmg": "Mongol Klasik",
"cmi": "Emberá-Chamí",
"cml": "Campalagian",
"cmm": "Michigamea",
"cmn": "Mandarin",
"cmo": "Mnong Tengah",
"cmr": "Chin Mro",
"cms": "Messapic",
"cmt": "Camtho",
"cna": "Changthang",
"cnb": "Chin Chinbon",
"cnc": "Cốông",
"cng": "Qiang Utara",
"cnh": "Lai",
"cni": "Asháninka",
"cnk": "Chin Khumi",
"cnl": "Lalana Chinantec",
"cno": "Con",
"cnp": "Pinghua Utara",
"cns": "Asmat Tengah",
"cnt": "Tepetotutla Chinantec",
"cnu": "Chenoua",
"cnw": "Chin Ngawn",
"cnx": "Cornwall Pertengahan",
"co": "Corsica",
"coa": "Melayu Cocos",
"cob": "Chicomuceltec",
"coc": "Cocopa",
"cod": "Cocama",
"coe": "Koreguaje",
"cof": "Tsafiki",
"cog": "Chong",
"coh": "Chichonyi-Chidzihana-Chikauma",
"coj": "Cochimi",
"cok": "Santa Teresa Cora",
"col": "Columbia-Wenatchi",
"com": "Comanche",
"con": "Cofán",
"coo": "Comox",
"cop": "Qibti",
"coq": "Coquille",
"cot": "Caquinte",
"cou": "Wamey",
"cov": "Cao Miao",
"cow": "Cowlitz",
"cox": "Nanti",
"coy": "Coyaima",
"coz": "Chochotec",
"cpa": "Palantla Chinantec",
"cpb": "Ucayali-Yurúa Ashéninka",
"cpc": "Ajyíninka Apurucayali",
"cpg": "Yunani Cappadocia",
"cpi": "Inggeris Pijin Cina",
"cpn": "Cherepon",
"cpo": "Kpee",
"cps": "Capiznon",
"cpu": "Pichis Ashéninka",
"cpx": "Min Puxian",
"cpy": "Ashéninka Ucayali Selatan",
"cqd": "Chuanqiandian Cluster Miao",
"cr": "Cree",
"cra": "Chara",
"crb": "Kalinago",
"crc": "Lonwolwol",
"crd": "Coeur d'Alene",
"crf": "Caramanta",
"crg": "Michif",
"crh": "Tatar Crimea",
"cri": "Sãotomense",
"crj": "Cree Timur Selatan",
"crk": "Plains Cree",
"crl": "Cree Timur Utara",
"crm": "Cree Moose",
"crn": "Cora",
"cro": "Crow",
"crp-bip": "Pijin Basque-Iceland",
"crp-cpr": "Pijin Rusia-China",
"crp-gep": "Pijin Greenland Barat",
"crp-kia": "Pijin Jerman Kiautschou",
"crp-mar": "Bahasa Roh Maroon",
"crp-mpp": "Pijin Portugis Macau",
"crp-rsn": "Russenorsk",
"crp-slb": "Inggeris Solombala",
"crp-spp": "Pijin Ladang Samoa",
"crp-tpr": "Pijin Rusia Taimyr",
"crq": "Iyo'wujwa Chorote",
"crr": "Algonquin Carolina",
"crs": "Kreol Seychelles",
"crt": "Iyojwa'ja Chorote",
"crv": "Chaura",
"crw": "Chrau",
"crx": "Carrier",
"cry": "Cori",
"crz": "Cruzeño",
"cs": "Czech",
"csa": "Chiltepec Chinantec",
"csb": "Kashubian",
"csc": "Catalan Sign Language",
"csd": "Chiangmai Sign Language",
"cse": "Czech Sign Language",
"csf": "Cuban Sign Language",
"csg": "Chilean Sign Language",
"csh": "Chin Asho",
"csi": "Miwok Pesisir",
"csj": "Chin Songlai",
"csk": "Jola-Kasa",
"csl": "Chinese Sign Language",
"csm": "Miwok Sierra Tengah",
"csn": "Colombian Sign Language",
"cso": "Sochiapam Chinantec",
"csp": "Pinghua Selatan",
"csq": "Bahasa Isyarat Croatia",
"csr": "Costa Rican Sign Language",
"css": "Ohlone Selatan",
"cst": "Ohlone Utara",
"csu-bba-pro": "Bongo-Bagirmi Purba",
"csu-maa-pro": "Mangbetu Purba",
"csu-pro": "Sudan Tengah Purba",
"csu-sar-pro": "Sara Purba",
"csv": "Chin Sumtu",
"csw": "Swampy Cree",
"csy": "Chin Siyin",
"csz": "Coos",
"cta": "Tataltepec Chatino",
"ctc": "Chetco-Tolowa",
"ctd": "Chin Tedim",
"cte": "Tepinapa Chinantec",
"ctg": "Chittagong",
"cth": "Chin Thaiphum",
"ctl": "Tlacoatzintepec Chinantec",
"ctm": "Chitimacha",
"ctn": "Chhintange",
"cto": "Emberá-Catío",
"ctp": "Chatino Tanah Tinggi Barat",
"cts": "Bicolano Catanduanes Utara",
"ctt": "Wayanad Chetti",
"ctu": "Chol",
"ctz": "Zacatepec Chatino",
"cu": "Slavonic Gereja Kuno",
"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": "Cun",
"cur": "Chhulung",
"cus-ash": "Ashraaf",
"cus-hec-pro": "Cushitic Timur Tanah Tinggi Purba",
"cus-pro": "Cushitic Purba",
"cus-som-pro": "Somaloid Purba",
"cus-sou-pro": "Cushitic Selatan Purba",
"cut": "Teutila Cuicatec",
"cuu": "Tai Ya",
"cuv": "Cuvok",
"cuw": "Chukwa",
"cux": "Tepeuxila Cuicatec",
"cuy": "Cuitlatec",
"cv": "Chuvash",
"cvg": "Chug",
"cvn": "Valle Nacional Chinantec",
"cwa": "Kabwa",
"cwb": "Maindo",
"cwd": "Woods Cree",
"cwe": "Kwere",
"cwg": "Chewong",
"cwt": "Kuwaataay",
"cy": "Wales",
"cya": "Nopala Chatino",
"cyb": "Cayubaba",
"cyo": "Cuyunon",
"czh": "Huizhou",
"czk": "Knaanic",
"czn": "Zenzontepec Chatino",
"czo": "Min Tengah",
"czt": "Chin Zotung",
"da": "Denmark",
"daa": "Dangaléat",
"dac": "Dambi",
"dad": "Marik",
"dae": "Duupa",
"dag": "Dagbani",
"dah": "Gwahatike",
"dai": "Day",
"daj": "Dar Fur Daju",
"dak": "Dakota",
"dal": "Dahalo",
"dam": "Damakawa",
"dao": "Chin Daai",
"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": "Idahan",
"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": "Negerhollands",
"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": "Jerman",
"dec": "Dagik",
"ded": "Dedua",
"dee": "Dewoin",
"def": "Dezfuli",
"deg": "Degema",
"deh": "Dehwari",
"dei": "Demisa",
"dek": "Dek",
"dem": "Dem",
"dep": "Pidgin Delaware",
"der": "Deori",
"des": "Desano",
"dev": "Domung",
"dez": "Dengese",
"dga": "Dagaare Selatan",
"dgb": "Bunoge",
"dgc": "Agta Casiguran Dumagat",
"dgd": "Dagaari Dioula",
"dge": "Degenan",
"dgg": "Doga",
"dgh": "Dghwede",
"dgi": "Dagara Utara",
"dgk": "Dagba",
"dgn": "Dagoman",
"dgo": "Hindi Dogri",
"dgr": "Dogrib",
"dgs": "Dogoso",
"dgt": "Ntra'ngith",
"dgw": "Daungwurrung",
"dgx": "Doghoro",
"dgz": "Daga",
"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": "Dinka Tengah Selatan",
"dic": "Lakota Dida",
"did": "Didinga",
"dif": "Dieri",
"dig": "Digo",
"dii": "Dimbong",
"dij": "Dai",
"dik": "Dinka Barat Daya",
"dil": "Dilling",
"dim": "Dime",
"din": "Dinka",
"dio": "Dibo",
"dip": "Dinka Timur Laut",
"dir": "Dirim",
"dis": "Dimasa",
"diu": "Gciriku",
"diw": "Dinka Barat Laut",
"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": "Dinka Tenggara",
"dkx": "Mazagway",
"dlg": "Dolgan",
"dlk": "Dahalik",
"dlm": "Dalmatian",
"dln": "Darlong",
"dma": "Duma",
"dmb": "Mombo Dogon",
"dmc": "Gavak",
"dmd": "Madhi Madhi",
"dme": "Dugwor",
"dmf": "Medefaidrin",
"dmg": "Sungai",
"dmk": "Domaaki",
"dml": "Dameli",
"dmm": "Dama (Nigeria)",
"dmn-dam": "Dama (Sierra Leone)",
"dmn-mdw-pro": "Mande Barat Purba",
"dmn-pro": "Mande Purba",
"dmo": "Kemezung",
"dmr": "Damar Timur",
"dms": "Dampelas",
"dmu": "Dubu",
"dmv": "Dumpas",
"dmw": "Mudburra",
"dmx": "Dema",
"dmy": "Demta",
"dna": "Upper Grand Valley Dani",
"dnd": "Daonda",
"dne": "Ndendeule",
"dng": "Dungan",
"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": "Dani Barat",
"dny": "Dení",
"doa": "Dom",
"dob": "Dobu",
"doc": "Kam Utara",
"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": "Dravidia Tengah Purba",
"dra-mkn": "Kannada Pertengahan",
"dra-nor-pro": "Dravidia Utara Purba",
"dra-okn": "Kannada Kuno",
"dra-ote": "Telugu Kuno",
"dra-pro": "Dravidia Purba",
"dra-sdo-pro": "Dravidia Selatan I Purba",
"dra-sdt-pro": "Dravidia Selatan II Purba",
"dra-sou-pro": "Dravidia Selatan Purba",
"drb": "Dair",
"drc": "Minderico",
"drd": "Darmiya",
"drg": "Rungus",
"dri": "Lela",
"drl": "Baagandji",
"drn": "Damar Barat",
"dro": "Melanau Daro-Matu",
"drq": "Dura",
"drs": "Gedeo",
"dru": "Rukai",
"dru-pro": "Rukai Purba",
"dry": "Darai",
"dsb": "Lower Sorbian",
"dse": "Dutch Sign Language",
"dsh": "Daasanach",
"dsi": "Disa",
"dsl": "Danish Sign Language",
"dsn": "Dusner",
"dso": "Desiya",
"dsq": "Tadaksahak",
"dta": "Daur",
"dtb": "Kadazan Labuk-Kinabatangan",
"dtd": "Ditidaht",
"dth": "Adithinngithigh",
"dti": "Ana Tinga Dogon",
"dtk": "Tene Kan Dogon",
"dtm": "Tomo Kan Dogon",
"dto": "Tommo So",
"dtp": "Kadazandusun",
"dtr": "Lotud",
"dts": "Toro So Dogon",
"dtt": "Toro Tegu Dogon",
"dtu": "Tebul Ure Dogon",
"dty": "Doteli",
"dua": "Duala",
"dub": "Dubli",
"duc": "Duna",
"due": "Agta Umiray Dumaget",
"duf": "Dumbea",
"dug": "Chiduruma",
"duh": "Dungra Bhil",
"dui": "Dumun",
"duk": "Uyajitaya",
"dul": "Agta Pulau Alabat",
"dum": "Belanda Pertengahan",
"dun": "Dusun Deyah",
"duo": "Agta Dupaningan",
"dup": "Duano",
"duq": "Dusun Malang",
"dur": "Dii",
"dus": "Dumi",
"duu": "Drung",
"duv": "Duvle",
"duw": "Dusun Witu",
"dux": "Duun",
"duy": "Agta Dicamay",
"duz": "Duli",
"dv": "Dhivehi",
"dva": "Duau",
"dwa": "Diri",
"dwr": "Dawro",
"dwu": "Dhuwal",
"dww": "Dawawa",
"dwy": "Dhuwaya",
"dwz": "Dewas Rai",
"dya": "Dyan",
"dyb": "Dyaberdyaber",
"dyd": "Dyugun",
"dyg": "Agta Villa Viciosa",
"dyi": "Djimini",
"dym": "Yanda Dogon",
"dyn": "Dyangadi",
"dyo": "Jola-Fonyi",
"dyu": "Dyula",
"dyy": "Dyaabugay",
"dz": "Dzongkha",
"dza": "Tunzu",
"dzg": "Dazaga",
"dzl": "Dzala",
"dzn": "Dzando",
"ebg": "Ebughu",
"ebk": "Bontoc Timur",
"ebr": "Ebrié",
"ebu": "Embu",
"ecr": "Eteocretan",
"ecs": "Bahasa Isyarat Ecuador",
"ecy": "Eteocypriot",
"ee": "Ewe",
"eee": "E",
"efa": "Efai",
"efe": "Efe",
"efi": "Efik",
"ega": "Ega",
"egl": "Emilian",
"ego": "Eggon",
"egx-dem": "Mesir Demotik",
"egy": "Mesir Purba",
"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": "Kayah Timur",
"el": "Greek",
"ele": "Elepi",
"elh": "El Hugeirat",
"eli": "Nding",
"elk": "Elkei",
"elm": "Eleme",
"elo": "El Molo",
"elu": "Elu",
"elx": "Elam",
"ema": "Emai",
"emb": "Embaloh",
"eme": "Emerillon",
"emg": "Meohang Timur",
"emi": "Mussau-Emira",
"emk": "Maninkakan Timur",
"emm": "Mamulique",
"emn": "Eman",
"emp": "Emberá Utara",
"ems": "Alutiiq",
"emu": "Muria Timur",
"emw": "Emplawas",
"emx": "Erromintxela",
"emy": "Maya Epigrafi",
"en": "Inggeris",
"ena": "Apali",
"enb": "Markweeta",
"enc": "En",
"end": "Ende",
"enf": "Enets Hutan",
"enh": "Enets Tundra",
"enl": "Enlhet",
"enm": "Inggeris Pertengahan",
"enn": "Engenni",
"eno": "Enggano",
"enq": "Enga",
"enr": "Emem",
"enu": "Enu",
"env": "Enwan",
"enw": "Enwang",
"enx": "Enxet",
"eo": "Esperanto",
"eot": "Eotile",
"epi": "Epie",
"era": "Eravallan",
"erg": "Sie",
"erh": "Eruwa",
"eri": "Ogea",
"erk": "Efate Selatan",
"ero-gsz": "Geshiza",
"ero-nya": "Nyagrong Minyag",
"ero-tau": "Stau",
"err": "Erre",
"ers": "Ersu",
"ert": "Eritai",
"erw": "Erokwanas",
"es": "Sepanyol",
"ese": "Ese Ejja",
"esh": "Eshtehardi",
"esl": "Bahasa Isyarat Mesir",
"esm": "Esuma",
"esn": "Bahasa Isyarat El Salvador",
"eso": "Bahasa Isyarat Estonia",
"esq": "Esselen",
"ess": "Yupik Siberia Tengah",
"esu": "Yup'ik",
"esx-esk-pro": "Eskimo Purba",
"esx-ink": "Inuktun",
"esx-inq": "Inuinnaqtun",
"esx-inu-pro": "Inuit Purba",
"esx-pro": "Eskimo-Aleut Purba",
"esx-tut": "Tunumiisut",
"esy": "Eskayan",
"et": "Estonia",
"etb": "Etebi",
"etc": "Etchemin",
"eth": "Bahasa Isyarat Habsyah",
"etn": "Eton (Vanuatu)",
"eto": "Eton (Cameroon)",
"etr": "Edolo",
"ets": "Yekhee",
"ett": "Etruria",
"etu": "Ejagham",
"etx": "Eten",
"etz": "Semimi",
"eu": "Basque",
"euq-pro": "Basque Purba",
"eve": "Even",
"evh": "Uvbie",
"evn": "Evenki",
"ewo": "Ewondo",
"ext": "Extremaduran",
"eya": "Eyak",
"eyo": "Keiyo",
"eza": "Ezaa",
"eze": "Uzekwe",
"fa": "Parsi",
"faa": "Fasu",
"fab": "Annobon",
"fad": "Wagi",
"faf": "Fagani",
"fag": "Finongan",
"fah": "Fali Baissa",
"fai": "Faiwol",
"faj": "Kursav",
"fak": "Fang (Beboid)",
"fal": "Fali Selatan",
"fam": "Fam",
"fan": "Fang (Bantu)",
"fap": "Palor",
"far": "Fataleka",
"fau": "Fayu",
"fax": "Fala",
"fay": "Fars Barat Daya",
"faz": "Fars Barat Laut",
"fbl": "Bikol Miraya Barat",
"fcs": "Bahasa Isyarat Quebec",
"fer": "Feroge",
"ff": "Fula",
"ffi": "Foia Foia",
"fgr": "Fongoro",
"fi": "Finland",
"fia": "Nobiin",
"fie": "Fyer",
"fif": "Faifi",
"fip": "Fipa",
"fir": "Firan",
"fit": "Meänkieli",
"fiw": "Fiwaga",
"fj": "Fiji",
"fkk": "Kirya-Konzel",
"fkv": "Kven",
"fla": "Salish Montana",
"flh": "Foau",
"fli": "Fali",
"fll": "Fali Utara",
"fln": "Pulau Flinders",
"flr": "Fuliiru",
"fly": "Tsotsitaal",
"fmp": "Fe'fe'",
"fmu": "Muria Barat Jauh",
"fng": "Fanagalo",
"fni": "Fania",
"fo": "Faroe",
"fod": "Foodo",
"foi": "Foi",
"fom": "Foma",
"fon": "Fon",
"for": "Fore",
"fos": "Siraya",
"fpe": "Pichinglis",
"fqs": "Fas",
"fr": "Perancis",
"frd": "Fordata",
"frm": "Perancis Pertengahan",
"fro": "Perancis Kuno",
"frp": "Franco-Provençal",
"frq": "Forak",
"frr": "Frisia Utara",
"frt": "Fortsenal",
"fse": "Bahasa Isyarat Finland",
"fsl": "Bahasa Isyarat Perancis",
"fss": "Bahasa Isyarat Finland-Sweden",
"fud": "Futuna Timur",
"fuj": "Ko",
"fum": "Fum",
"fun": "Fulniô",
"fur": "Friulian",
"fut": "Futuna-Aniwa",
"fuu": "Furu",
"fuy": "Fuyug",
"fvr": "Fur",
"fwa": "Fwâi",
"fwe": "Fwe",
"fy": "Frisia Barat",
"ga": "Ireland",
"gba-pro": "Gbaya Purba",
"gd": "Gaelik Scotland",
"gem-pro": "Jermanik Purba",
"gl": "Galicia",
"gme-bur": "Burgundia",
"gme-cgo": "Goth Crimea",
"gmq-gut": "Gutnish",
"gmq-jmk": "Jamtish",
"gmq-mno": "Norway Pertengahan",
"gmq-oda": "Denmark Kuno",
"gmq-ogt": "Gutnish Kuno",
"gmq-osw": "Sweden Kuno",
"gmq-pro": "Norse Purba",
"gmq-scy": "Scanian",
"gmw-bgh": "Bergish",
"gmw-cfr": "Franconia Tengah",
"gmw-ecg": "Jerman Tengah Timur",
"gmw-fin": "Fingallian",
"gmw-gts": "Gottscheerish",
"gmw-jdt": "Belanda Jersey",
"gmw-msc": "Scots Pertengahan",
"gmw-pro": "Jermanik Barat Purba",
"gmw-rfr": "Franconia Rhine",
"gmw-stm": "Schwaben Szatmár",
"gmw-tsx": "Saxon Transylvania",
"gmw-vog": "Jerman Volga",
"gmw-zps": "Jerman Zipser",
"gn-cls": "Guarani Klasik",
"grk-cal": "Yunani Calabria",
"grk-ita": "Yunani Italiot",
"grk-mar": "Yunani Mariupol",
"grk-pro": "Hellenik Purba",
"gu": "Gujerat",
"gv": "Manx",
"gvf": "Golin",
"gvj": "Guajá",
"gvl": "Gulay",
"gvm": "Gurmana",
"gvn": "Kuku-Yalanji",
"gvo": "Gavião do Jiparaná",
"gvp": "Gavião Pará",
"gvr": "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è Selatan",
"gya": "Gbaya Barat Laut",
"gyb": "Garus",
"gyd": "Kayardild",
"gye": "Gyem",
"gyf": "Gungabula",
"gyg": "Gbayi",
"gyi": "Gyele",
"gyl": "Gayil",
"gym": "Ngäbere",
"gyn": "Kreol Inggeris Guyana",
"gyo": "Gyalsumdo",
"gyr": "Guarayu",
"gyy": "Gunya",
"gza": "Ganza",
"gzn": "Gane",
"ha": "Hausa",
"haa": "Hän",
"hab": "Bahasa Isyarat Hanoi",
"hac": "Gurani",
"had": "Hatam",
"haf": "Bahasa Isyarat Haiphong",
"hag": "Hanga",
"hah": "Hahon",
"hai": "Haida",
"haj": "Hajong",
"hak": "Hakka",
"hal": "Halang",
"ham": "Hewa",
"hao": "Hakö",
"hap": "Hupla",
"har": "Harari",
"has": "Haisla",
"hav": "Havu",
"haw": "Hawaii",
"hax": "Haida Selatan",
"hay": "Haya",
"hba": "Hamba",
"hbb": "Huba",
"hbn": "Heiban",
"hbu": "Habu",
"hca": "Hindi Kreol Andaman",
"hch": "Huichol",
"hdn": "Haida Utara",
"hds": "Bahasa Isyarat Honduras",
"hdy": "Hadiyya",
"he": "Ibrani",
"hea": "Miao Qiandong Utara",
"hed": "Herdé",
"heg": "Helong",
"heh": "Hehe",
"hei": "Heiltsuk",
"hem": "Hemba",
"hgm": "Haiǁom",
"hgw": "Haigwai",
"hhi": "Hoia Hoia",
"hhr": "Kerak",
"hhy": "Hoyahoya",
"hi": "Hindi",
"hia": "Lamang",
"hib": "Hibito",
"hid": "Hidatsa",
"hif": "Hindi Fiji",
"hig": "Kamwe",
"hih": "Pamosu",
"hii": "Hinduri",
"hij": "Hijuk",
"hik": "Seit-Kaitetu",
"hil": "Hiligaynon",
"hio": "Tshwa",
"hir": "Himarimã",
"hit": "Het",
"hiw": "Hiw",
"hix": "Hixkaryana",
"hji": "Haji",
"hka": "Kahe",
"hke": "Hunde",
"hkh": "Pogali",
"hkk": "Hunjara-Kaina Ke",
"hkn": "Mel-Khaonh",
"hks": "Bahasa Isyarat Hong Kong",
"hla": "Halia",
"hlb": "Halbi",
"hld": "Halang Doan",
"hle": "Hlersu",
"hlt": "Nga La",
"hma": "Hmong Mashan Selatan",
"hmb": "Humburi Senni",
"hmc": "Hmong Huishui Tengah",
"hmd": "A-Hmao",
"hme": "Hmong Huishui Timur",
"hmf": "Hmong Don",
"hmg": "Hmong Guiyang Barat Daya",
"hmh": "Hmong Huishui Barat Daya",
"hmi": "Hmong Huishui Utara",
"hmj": "Ge",
"hmk": "Maek",
"hml": "Hmong Luopohe",
"hmm": "Hmong Mashan Tengah",
"hmn-pro": "Hmongik Purba",
"hmp": "Hmong Mashan Utara",
"hmq": "Miao Qiandong Timur",
"hmr": "Hmar",
"hms": "Miao Qiandong Selatan",
"hmt": "Hamtai",
"hmu": "Hamap",
"hmv": "Hmong Dô",
"hmw": "Hmong Mashan Barat",
"hmx-mie-pro": "Mienik Purba",
"hmx-pro": "Hmong-Mien Purba",
"hmy": "Hmong Guiyang Selatan",
"hmz": "Hmong Shua",
"hna": "Mina",
"hnd": "Hindko Selatan",
"hne": "Chhattisgarhi",
"hnh": "ǁAni",
"hni": "Hani",
"hnj": "Hmong Hijau",
"hnn": "Hanunoo",
"hno": "Hindko Utara",
"hns": "Hindustan Caribbean",
"hnu": "Hung",
"ho": "Hiri Motu",
"hoa": "Hoava",
"hob": "Mari Austronesia",
"hoc": "Ho",
"hod": "Holma",
"hoe": "Horom",
"hoh": "Hobyót",
"hoi": "Holikachuk",
"hoj": "Hadothi",
"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": "Hunsrik",
"hrz": "Harzani",
"hsb": "Sorbia Atas",
"hsh": "Bahasa Isyarat Hungary",
"hsl": "Bahasa Isyarat Hausa",
"hsn": "Xiang",
"hss": "Harsusi",
"ht": "Kreol Haiti",
"hti": "Hoti",
"hto": "Minica Huitoto",
"hts": "Hadza",
"htu": "Hitu",
"hu": "Hungary",
"hub": "Huambisa",
"huc": "ǂHoan",
"hud": "Huaulu",
"huf": "Humene",
"hug": "Huachipaeri",
"huh": "Huilliche",
"hui": "Huli",
"huj": "Hmong Guiyang Utara",
"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": "Kreol Hawaii",
"hwo": "Hwana",
"hy": "Armenia",
"hya": "Hya",
"hyx-pro": "Armenia Purba",
"hz": "Herero",
"ia": "Interlingua",
"iai": "Iaai",
"ian": "Iatmul",
"iar": "Purari",
"iba": "Iban",
"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": "Bahasa Isyarat Iceland",
"icr": "Inggeris Kreol Islander",
"id": "Indonesia",
"ida": "Idakho-Isukha-Tiriki",
"idb": "Indo-Portugis",
"idc": "Idon",
"idd": "Ede Idaca",
"ide": "Idere",
"idi": "Idi",
"idr": "Indri",
"ids": "Idesa",
"idt": "Idaté",
"idu": "Idoma",
"ie": "Interlingue",
"ifa": "Amganad Ifugao",
"ifb": "Batad Ifugao",
"ife": "Ifè",
"iff": "Ifo",
"ifk": "Tuwali Ifugao",
"ifm": "Teke-Fuumu",
"ifu": "Mayoyao Ifugao",
"ify": "Keley-I Kallahan",
"ig": "Igbo",
"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": "Nuosu",
"iir-nur-pro": "Nuristani Purba",
"iir-pro": "Indo-Iran Purba",
"ijc": "Izon",
"ije": "Biseni",
"ijj": "Ede Ije",
"ijn": "Kalabari",
"ijo-pro": "Ijoid Purba",
"ijs": "Southeast Ijo",
"ik": "Inupiaq",
"ike": "Eastern Canadian Inuktitut",
"iki": "Iko",
"ikk": "Ika",
"ikl": "Ikulu",
"iko": "Olulumo-Ikom",
"ikp": "Ikpeshi",
"ikr": "Ikaranggal",
"iks": "Bahasa Isyarat Inuit",
"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": "Iranun",
"ilo": "Ilocano",
"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": "Prakrit Ashoka",
"inc-dng-pro": "Dangari Purba",
"inc-kam": "Prakrit Kamarupi",
"inc-kho": "Kholosi",
"inc-khr": "Khortha",
"inc-krd-pro": "Kamta Purba",
"inc-mas": "Assam Pertengahan",
"inc-mbn": "Bengal Pertengahan",
"inc-mgu": "Gujarati Pertengahan",
"inc-mor": "Odia Pertengahan",
"inc-oas": "Assam Awal",
"inc-oaw": "Awadhi Kuno",
"inc-obn": "Bengal Kuno",
"inc-ogu": "Gujarati Kuno",
"inc-ohi": "Hindi Kuno",
"inc-oor": "Odia Kuno",
"inc-opa": "Punjabi Kuno",
"inc-pro": "Indo-Arya Purba",
"inc-sar": "Sarazi",
"ine-ana-pro": "Anatolia Purba",
"ine-bsl-pro": "Balto-Slavik Purba",
"ine-kal": "Kalašma",
"ine-pae": "Paeonia",
"ine-pro": "Indo-Eropah Purba",
"ine-toc-pro": "Tocharia Purba",
"ing": "Deg Xinag",
"inh": "Ingush",
"inj": "Jungle Inga",
"inl": "Bahasa Isyarat Indonesia",
"inm": "Minaean",
"inn": "Isinai",
"ino": "Inoke-Yate",
"inp": "Iñapari",
"ins": "Bahasa Isyarat India",
"int": "Intha",
"inz": "Ineseño",
"io": "Ido",
"ior": "Inor",
"iou": "Tuma-Irumu",
"iow": "Chiwere",
"ipi": "Ipili",
"ipo": "Ipiko",
"iqu": "Iquito",
"iqw": "Ikwo",
"ira-kms-pro": "Komisenia Purba",
"ira-mny-pro": "Munji-Yidgha Purba",
"ira-mpr-pro": "Medo-Parthia Purba",
"ira-pat-pro": "Pathan Purba",
"ira-pro": "Iran Purba",
"ira-sgc-pro": "Sogdia Purba",
"ira-sgi-pro": "Sanglechi-Ishkashimi Purba",
"ira-shr-pro": "Shughni-Roshani Purba",
"ira-shy-pro": "Shughni-Yazghulami Purba",
"ira-sym-pro": "Shughni-Yazghulami-Munji Purba",
"ira-wnj": "Vanji",
"ira-zgr-pro": "Zaza-Gorani Purba",
"ire": "Iresim",
"irh": "Irarutu",
"iri": "Rigwe",
"irk": "Iraqw",
"irn": "Irantxe",
"iro-ere": "Erie",
"iro-min": "Mingo",
"iro-nor-pro": "Iroquois Utara Purba",
"iro-pro": "Iroquois Purba",
"irr": "Ir",
"iru": "Irula",
"irx": "Kamberau",
"iry": "Iraya",
"is": "Iceland",
"isa": "Isabi",
"isc": "Isconahua",
"isd": "Isnag",
"ise": "Bahasa Isyarat Itali",
"isg": "Bahasa Isyarat Ireland",
"ish": "Esan",
"isi": "Nkem-Nkum",
"isk": "Ishkashimi",
"ism": "Masimasi",
"isn": "Isanzu",
"iso": "Isoko",
"isr": "Bahasa Isyarat Israel",
"ist": "Istriot",
"isu": "Isu",
"isv": "Interslavic",
"it": "Itali",
"itb": "Binongan Itneg",
"itc-pro": "Italik Purba",
"itc-psa": "Pra-Samnit",
"itd": "Tidung Selatan",
"ite": "Itene",
"iti": "Inlaod Itneg",
"itk": "Judeo-Itali",
"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": "Itzá",
"iu": "Inuktitut",
"ium": "Iu Mien",
"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": "Ingria",
"izi": "Izi-Ezaa-Ikwo-Mgbo",
"izr": "Izere",
"izz": "Izi",
"ja": "Jepun",
"jaa": "Jamamadí",
"jab": "Hyam",
"jac": "Jakaltek",
"jad": "Jahanka",
"jae": "Jabem",
"jaf": "Jara",
"jah": "Jah Hut",
"jaj": "Zazao",
"jak": "Jakun",
"jal": "Yalahatan",
"jam": "Kreol Jamaica",
"jan": "Janday",
"jao": "Yanyuwa",
"jaq": "Yaqay",
"jas": "New Caledonian Javanese",
"jat": "Jakati",
"jau": "Yaur",
"jax": "Melayu Jambi",
"jay": "Yan-nhangu",
"jaz": "Jawe",
"jbj": "Arandai",
"jbk": "Barikewa",
"jbn": "Nefusa",
"jbo": "Lojban",
"jbr": "Jofotek-Bromnya",
"jbt": "Jabutí",
"jbu": "Jukun Takum",
"jbw": "Yawijibaya",
"jcs": "Bahasa Isyarat Negara Jamaica",
"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": "Bahasa Isyarat Jhankot",
"jia": "Jina",
"jib": "Jibu",
"jic": "Tol",
"jid": "Bu",
"jie": "Jilbe",
"jig": "Jingulu",
"jih": "Shangzhai",
"jii": "Jiiddu",
"jil": "Jilim",
"jim": "Jimjimen",
"jio": "Jiamao",
"jiq": "Khroskyabs",
"jit": "Jita",
"jiu": "Youle Jino",
"jiv": "Shuar",
"jiy": "Buyuan Jino",
"jje": "Jeju",
"jjr": "Zhár",
"jka": "Kaera",
"jko": "Kubo",
"jkr": "Koro (India)",
"jku": "Labir",
"jle": "Ngile",
"jls": "Bahasa Isyarat Jamaica",
"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": "Bahasa Isyarat Jordan",
"jow": "Jowulu",
"jpr": "Judeo-Persian",
"jpx-hcj": "Hachijō",
"jpx-pro": "Jepunik Purba",
"jpx-ryu-pro": "Ryukyu Purba",
"jqr": "Jaqaru",
"jra": "Jarai",
"jrr": "Jiru",
"jru": "Japrería",
"jsl": "Bahasa Isyarat Jepun",
"jua": "Júma",
"jub": "Wannu",
"juc": "Jurchen",
"jud": "Worodougou",
"juh": "Hone",
"jui": "Ngadjuri",
"juk": "Wapan",
"jul": "Jirel",
"jum": "Jumjum",
"jun": "Juang",
"juo": "Jiba",
"jup": "Hupdë",
"jur": "Jurúna",
"jus": "Bahasa Isyarat Jumla",
"jut": "Jutish",
"juu": "Ju",
"juw": "Wãpha",
"juy": "Juray",
"jv": "Jawa",
"jvd": "Javindo",
"jvn": "Jawa Caribbean",
"jwi": "Jwira-Pepesa",
"jyy": "Jaya",
"ka": "Georgia",
"kaa": "Karakalpak",
"kab": "Kabyle",
"kac": "Jingpho",
"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": "Karen Purba",
"kaw": "Jawa Kuno",
"kax": "Kao",
"kay": "Kamayurá",
"kba": "Kalarko",
"kbb": "Kaxuyana",
"kbc": "Kadiwéu",
"kbd": "Kabardia",
"kbe": "Kanju",
"kbh": "Camsá",
"kbi": "Kaptiau",
"kbj": "Kari",
"kbk": "Grass Koiari",
"kbm": "Iwal",
"kbn": "Kare (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": "Khanty Timur",
"kca-nor": "Khanty Utara",
"kca-pro": "Khanty Purba",
"kca-sou": "Khanty Selatan",
"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": "Numee",
"kdl": "Tsikimba",
"kdm": "Kagoma",
"kdn": "Kunda",
"kdp": "Kaningdon-Nindem",
"kdq": "Koch",
"kdr": "Karaim",
"kdt": "Kuy",
"kdu": "Kadaru",
"kdv": "Kado",
"kdw": "Koneraw",
"kdx": "Kam",
"kdy": "Keder",
"kdz": "Kwaja",
"kea": "Kabuverdianu",
"keb": "Kélé",
"kec": "Keiga",
"ked": "Kerewe",
"kee": "Keres Timur",
"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 (Afrika Barat)",
"kfp": "Korwa",
"kfq": "Korku",
"kfr": "Kachchi",
"kfs": "Bilaspuri",
"kft": "Kanjari",
"kfu": "Katkari",
"kfv": "Kurmukar",
"kfw": "Kharam Naga",
"kfx": "Kullu Pahari",
"kfy": "Kumaoni",
"kfz": "Koromfé",
"kg": "Kongo",
"kga": "Koyaga",
"kgb": "Kawe",
"kgd": "Kataang",
"kge": "Komering",
"kgf": "Kube",
"kgg": "Kusunda",
"kgi": "Selangor Sign Language",
"kgj": "Gamale Kham",
"kgk": "Kaiwá",
"kgl": "Kunggari",
"kgm": "Karipúna",
"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": "Khasi",
"khb": "Lü",
"khc": "Tukang Besi Utara",
"khd": "Bädi Kanum",
"khe": "Korowai",
"khf": "Khuen",
"khh": "Kehu",
"khi-kho-pro": "Khoe Purba",
"khi-kun": "ǃKung",
"khj": "Kuturmi",
"khl": "Lusi",
"khn": "Khandeshi",
"kho": "Khotan",
"khp": "Kapauri",
"khq": "Koyra Chiini",
"khr": "Kharia",
"khs": "Kasua",
"kht": "Khamti",
"khu": "Nkhumbi",
"khv": "Khvarshi",
"khw": "Khowar",
"khx": "Kanu",
"khy": "Ekele",
"khz": "Keapara",
"ki": "Kikuyu",
"kia": "Kim",
"kib": "Koalib",
"kic": "Kickapoo",
"kid": "Koshin",
"kie": "Kibet",
"kif": "Kham Parbate Timur",
"kig": "Kimaama",
"kih": "Kilmeri",
"kii": "Kitsai",
"kij": "Kilivila",
"kil": "Kariya",
"kim": "Tofa",
"kio": "Kiowa",
"kip": "Sheshi Kham",
"kiq": "Kosadle",
"kis": "Kis",
"kit": "Agob",
"kiv": "Kimbu",
"kiw": "Kiwai Timur Laut",
"kix": "Naga Khiamniungan",
"kiy": "Kirikiri",
"kiz": "Kisi",
"kj": "Kwanyama",
"kja": "Mlap",
"kjb": "Q'anjob'al",
"kjc": "Konjo Pesisir",
"kjd": "Kiwai Selatan",
"kje": "Kisar",
"kjg": "Khmu",
"kjh": "Khakas",
"kji": "Zabana",
"kjj": "Khinalug",
"kjk": "Highland Konjo",
"kjl": "Kham",
"kjm": "Kháng",
"kjn": "Kunjen",
"kjo": "Harijan Kinnauri",
"kjp": "Pwo Timur",
"kjq": "Keres Barat",
"kjr": "Kurudu",
"kjs": "Kewa Timur",
"kjt": "Phrae Pwo",
"kju": "Kashaya",
"kjx": "Ramopa",
"kjy": "Erave",
"kjz": "Bumthangkha",
"kk": "Kazakh",
"kka": "Kakanda",
"kkb": "Kwerisa",
"kkc": "Odoodee",
"kkd": "Kinuku",
"kke": "Kakabe",
"kkf": "Monpa Kalaktang",
"kkg": "Kalinga Lembah Mabaka",
"kkh": "Khün",
"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": "Greenland",
"kla": "Klamath-Modoc",
"klb": "Kiliwa",
"klc": "Kolbila",
"kld": "Gamilaraay",
"kle": "Kulung",
"klf": "Kendeje",
"klg": "Kalagan Tagakaulu",
"klh": "Weliki",
"kli": "Kalumpang",
"klj": "Khalaj",
"klk": "Kono (Nigeria)",
"kll": "Kalagan Kagan",
"klm": "Kolom",
"kln": "Kalenjin",
"klo": "Kapya",
"klp": "Kamasa",
"klq": "Rumu",
"klr": "Khaling",
"kls": "Kalasha",
"klt": "Nukna",
"klu": "Klao",
"klv": "Maskelynes",
"klw": "Lindu",
"klx": "Koluwawa",
"kly": "Kalao",
"klz": "Kabola",
"km": "Khmer",
"kma": "Konni",
"kmb": "Kimbundu",
"kmc": "Kam Selatan",
"kmd": "Kalinga Madukayang",
"kme": "Bakole",
"kmf": "Kare (New Guinea)",
"kmg": "Kâte",
"kmh": "Kalam",
"kmi": "Kami",
"kmj": "Kumarbhag Paharia",
"kmk": "Kalinga Limos",
"kml": "Kalinga Tanudan",
"kmm": "Kom (India)",
"kmn": "Awtuw",
"kmo": "Kwoma",
"kmp": "Gimme",
"kmq": "Kwama",
"kmr": "Kurdi Utara",
"kms": "Kamasau",
"kmt": "Kemtuik",
"kmu": "Kanite",
"kmv": "Perancis Kreol Karipúna",
"kmw": "Kumu",
"kmx": "Waboda",
"kmy": "Koma",
"kmz": "Turki Khorasan",
"kn": "Kannada",
"kna": "Kanakuru",
"knb": "Kalinga Lubuagan",
"knd": "Konda",
"kne": "Kankanaey",
"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": "Salako",
"kny": "Kanyok",
"knz": "Kalamsé",
"ko": "Korea",
"ko-ear": "Korea Moden Awal",
"koa": "Konomala",
"koc": "Kpati",
"kod": "Kodi",
"koe": "Kacipo-Balesi",
"kof": "Kubi",
"kog": "Cogui",
"koh": "Koyo",
"koi": "Komi-Permyak",
"kok": "Konkani",
"kol": "Kol (New Guinea)",
"koo": "Konzo",
"kop": "Waube",
"koq": "Kota (Gabon)",
"kos": "Kosrae",
"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": "Koho",
"kpn": "Kepkiriwát",
"kpo": "Ikposo",
"kpp": "Karen Paku",
"kpq": "Korupun-Sela",
"kpr": "Korafe-Yegha",
"kps": "Tehit",
"kpt": "Karata",
"kpu": "Kafoa",
"kpv": "Komi-Zyrian",
"kpw": "Kobon",
"kpx": "Koiari Gunung",
"kpy": "Koryak",
"kpz": "Kupsabiny",
"kqa": "Mum",
"kqb": "Kovai",
"kqc": "Doromu-Koki",
"kqd": "Koy Sanjaq Surat",
"kqe": "Kalagan",
"kqf": "Kakabai",
"kqg": "Khe",
"kqh": "Kisankasa",
"kqi": "Koitabu",
"kqj": "Koromira",
"kqk": "Gbe Kotafon",
"kql": "Kyenele",
"kqm": "Khisa",
"kqn": "Kaonde",
"kqo": "Krahn Timur",
"kqp": "Kimré",
"kqq": "Krenak",
"kqr": "Kimaragang",
"kqs": "Kissi Utara",
"kqt": "Kadazan Sungai Klias",
"kqu": "Seroa",
"kqv": "Okolod",
"kqw": "Kandas",
"kqx": "Mser",
"kqy": "Koorete",
"kqz": "Korana",
"kr": "Kanuri",
"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": "Karelia",
"krm": "Krim",
"krn": "Sapo",
"kro-pro": "Kru Purba",
"krp": "Korop",
"krr": "Kru'ng",
"krs": "Kresh",
"kru": "Kurukh",
"krv": "Kavet",
"krw": "Krahn Barat",
"krx": "Karon",
"kry": "Kryts",
"krz": "Sota Kanum",
"ks": "Kashmir",
"ksa": "Shuwa-Zamani",
"ksb": "Shambala",
"ksc": "Kalinga Selatan",
"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": "Kissi Selatan",
"kst": "Winyé",
"ksu": "Khamyang",
"ksv": "Kusu",
"ksw": "Karen S'gaw",
"ksx": "Kedang",
"ksy": "Kharia Thar",
"ksz": "Kodaku",
"kta": "Katua",
"ktb": "Kambaata",
"ktc": "Kholok",
"ktd": "Kokata",
"ktf": "Kwami",
"ktg": "Kalkatungu",
"kth": "Karanga",
"kti": "Muyu Utara",
"ktj": "Plapo Krumen",
"ktk": "Kaniet",
"ktl": "Koroshi",
"ktm": "Kurti",
"ktn": "Karitiâna",
"kto": "Kuot",
"ktp": "Kaduo",
"ktq": "Katabaga",
"ktr": "Tinagas Kota Marudu",
"kts": "Muyu Selatan",
"ktt": "Ketum",
"ktu": "Kituba",
"ktv": "Katu Timur",
"ktw": "Kato",
"ktx": "Kaxararí",
"kty": "Kango",
"ktz": "Juǀ'hoan",
"ku-pro": "Kurdi Purba",
"kub": "Kutep",
"kuc": "Kwinsu",
"kud": "Auhelawa",
"kue": "Kuman",
"kuf": "Katu Barat",
"kug": "Kupa",
"kuh": "Kushi",
"kui": "Kuikúro",
"kuj": "Kuria",
"kuk": "Kepo'",
"kul": "Kulere",
"kum": "Kumyk",
"kun": "Kunama",
"kuo": "Kumukio",
"kup": "Kunimaipa",
"kuq": "Karipuna",
"kus": "Kusaal",
"kut": "Kutenai",
"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": "Bahasa Isyarat Korea",
"kvl": "Karen Brek",
"kvm": "Kendem",
"kvn": "Kuna Sempadan",
"kvo": "Dobel",
"kvp": "Kompane",
"kvq": "Karen Geba",
"kvr": "Kerinci",
"kvt": "Karen Lahta",
"kvu": "Karen Yinbaw",
"kvv": "Kola",
"kvw": "Wersing",
"kvx": "Parkari Koli",
"kvy": "Karen Yintale",
"kvz": "Tsakwambo",
"kw": "Cornish",
"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": "Khonso",
"kxd": "Melayu Brunei",
"kxe": "Kakihum",
"kxf": "Karen Manumanaw",
"kxh": "Karo",
"kxi": "Murut Keningau",
"kxj": "Kulfa",
"kxk": "Karen Zayein",
"kxl": "Nepal Kurux",
"kxm": "Khmer Utara",
"kxn": "Kanowit",
"kxo": "Kanoé",
"kxp": "Wadiyara Koli",
"kxq": "Smärky Kanum",
"kxr": "Koro (New Guinea)",
"kxs": "Kangjia",
"kxt": "Koiwat",
"kxu": "Kui (India)",
"kxv": "Kuvi",
"kxw": "Konai",
"kxx": "Likuba",
"kxy": "Kayong",
"kxz": "Kerewo",
"ky": "Kyrgyz",
"kya": "Kwaya",
"kyb": "Kalinga Butbut",
"kyc": "Kyaka",
"kyd": "Karey",
"kye": "Krache",
"kyf": "Kouya",
"kyg": "Keyagana",
"kyh": "Karok",
"kyi": "Kiput",
"kyj": "Karao",
"kyk": "Kamayo",
"kyl": "Kalapuya",
"kym": "Kpatili",
"kyn": "Karolanos",
"kyo": "Kelon",
"kyp": "Kang",
"kyq": "Kenga",
"kyr": "Kuruáya",
"kys": "Kayan Baram",
"kyt": "Kayagar",
"kyu": "Kayah Barat",
"kyv": "Kayort",
"kyw": "Kudmali",
"kyx": "Rapoisi",
"kyy": "Kambaira",
"kyz": "Kayabí",
"kza": "Karaboro Barat",
"kzb": "Kaibobo",
"kzc": "Bondoukou Kulango",
"kzd": "Kadai",
"kze": "Kosena",
"kzf": "Da'a Kaili",
"kzg": "Kikai",
"kzh": "Dongolawi",
"kzi": "Kelabit",
"kzj": "Kadazan",
"kzk": "Kazukuru",
"kzl": "Kayeli",
"kzm": "Kais",
"kzn": "Kokola",
"kzo": "Kaningi",
"kzp": "Kaidipang",
"kzq": "Kaike",
"kzr": "Karang",
"kzs": "Dusun Sugut",
"kzt": "Dusun Tambunan",
"kzu": "Kayupulau",
"kzv": "Komyandaret",
"kzw": "Kariri",
"kzx": "Kamarian",
"kzy": "Kango-Sua",
"kzz": "Kalabra",
"la": "Latin",
"laa": "Subanun Lapuyan",
"lab": "Linear A",
"lac": "Lacandon",
"lad": "Ladino",
"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": "Luxembourg",
"lbb": "Label",
"lbc": "Lakkia",
"lbe": "Lak",
"lbf": "Tinani",
"lbg": "Laopang",
"lbi": "La'bi",
"lbj": "Ladakhi",
"lbk": "Bontoc Tengah",
"lbl": "Bikol Libon",
"lbm": "Lodhi",
"lbn": "Lamet",
"lbo": "Laven",
"lbq": "Wampar",
"lbr": "Lorung Utara",
"lbs": "Bahasa Isyarat Libya",
"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": "Lawa Barat",
"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": "Lenca Honduras",
"leo": "Leti (Cameroon)",
"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": "Lezgi",
"lfa": "Lefa",
"lfn": "Lingua Franca Nova",
"lg": "Luganda",
"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": "Limburg",
"lia": "Limba Barat-Tengah",
"lib": "Likum",
"lic": "Hlai",
"lid": "Nyindrou",
"lie": "Likila",
"lif": "Limbu",
"lig": "Ligbi",
"lih": "Lihir",
"lii": "Lingkhim",
"lij": "Ligurian",
"lik": "Lika",
"lil": "Lillooet",
"lio": "Liki",
"lip": "Sekpele",
"liq": "Libido",
"lir": "Liberian Kreyol",
"lis": "Lisu",
"liu": "Logorik",
"liv": "Livonian",
"liw": "Col",
"lix": "Liabuku",
"liy": "Banda-Bambari",
"liz": "Libinza",
"lja": "Golpa",
"lje": "Rampi",
"lji": "Laiyolo",
"ljl": "Li'o",
"ljp": "Lampung Api",
"ljw": "Yirandali",
"ljx": "Yuru",
"lka": "Lakalei",
"lkb": "Kabras",
"lkc": "Kucong",
"lkd": "Lakondê",
"lke": "Kenyi",
"lkh": "Lakha",
"lki": "Laki",
"lkj": "Remun",
"lkl": "Laeko-Libuat",
"lkm": "Kalaamaya",
"lkn": "Lakon",
"lko": "Khayo",
"lkr": "Päri",
"lks": "Kisa",
"lkt": "Lakota",
"lku": "Kungkari",
"lky": "Lokoya",
"lla": "Lala-Roba",
"llb": "Lolo",
"llc": "Lele (Guinea)",
"lld": "Ladin",
"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": "Efate Utara",
"llq": "Lolak",
"lls": "Lithuanian Sign Language",
"llu": "Lau",
"llx": "Lauan",
"lma": "Limba Timur",
"lmb": "Merei",
"lmc": "Limilngan",
"lmd": "Lumun",
"lme": "Pévé",
"lmf": "Lembata Selatan",
"lmg": "Lamogai",
"lmh": "Lambichhong",
"lmi": "Lombi",
"lmj": "Lembata Barat",
"lmk": "Lamkang",
"lml": "Raga",
"lmn": "Lambadi",
"lmo": "Lombard",
"lmp": "Limbum",
"lmq": "Lamatuka",
"lmr": "Lamalera",
"lmu": "Lamenu",
"lmv": "Lomaiviti",
"lmw": "Lake Miwok",
"lmx": "Laimbue",
"lmy": "Laboya",
"lmz": "Lumbee",
"ln": "Lingala",
"lna": "Langbashe",
"lnb": "Mbalanhu",
"lnd": "Lun Bawang",
"lnh": "Lanoh",
"lni": "Daantanai'",
"lnj": "Linngithigh",
"lnl": "Banda Tengah Selatan",
"lnm": "Langam",
"lnn": "Lorediakarkar",
"lno": "Lango (Sudan)",
"lns": "Lamnso'",
"lnu": "Longuda",
"lnw": "Lanima",
"lo": "Lao",
"loa": "Loloda",
"lob": "Lobi",
"loc": "Inonhan",
"lod": "Berawan",
"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": "Kreol Louisiana",
"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": "Lur Utara",
"lre": "Laurentia",
"lrg": "Laragia",
"lri": "Marachi",
"lrk": "Loarki",
"lrl": "Larestani",
"lrm": "Marama",
"lrn": "Lorang",
"lro": "Laro",
"lrr": "Lorung Selatan",
"lrt": "Melayu Larantuka",
"lrv": "Larevat",
"lrz": "Lemerig",
"lsa": "Lasgerdi",
"lsd": "Lishana Deni",
"lse": "Lusengo",
"lsh": "Lish",
"lsi": "Lashi",
"lsl": "Bahasa Isyarat Latvia",
"lsm": "Saamia",
"lso": "Bahasa Isyarat Lao",
"lsp": "Bahaaa Isyarat Panama",
"lsr": "Aruop",
"lss": "Lasi",
"lst": "Bahasa Isyarat Trinidad dan Tobago",
"lsy": "Bahaaa Isyarat Mauritius",
"lt": "Lithuania",
"ltc": "Cina Pertengahan",
"ltg": "Latgalia",
"lti": "Leti (Indonesia)",
"ltn": "Latundê",
"lto": "Olutsotso",
"lts": "Lutachoni",
"ltu": "Latu",
"lu": "Luba-Katanga",
"lua": "Luba-Kasai",
"luc": "Aringa",
"lud": "Ludian",
"lue": "Luvale",
"luf": "Laua",
"lui": "Luiseño",
"luj": "Luna",
"luk": "Lunanakha",
"lul": "Olu'bo",
"lum": "Luimbi",
"lun": "Lunda",
"luo": "Luo",
"lup": "Lumbu",
"luq": "Lucumí",
"lur": "Laura",
"lus": "Mizo",
"lut": "Lushootseed",
"luu": "Lumba-Yakkha",
"luv": "Luwati",
"luy": "Luhya",
"luz": "Lur Selatan",
"lv": "Latvia",
"lva": "Maku'a",
"lvi": "Lawi",
"lvk": "Lavukaleve",
"lvl": "Lwel",
"lvu": "Levuka",
"lwa": "Lwalu",
"lwe": "Lewo Eleng",
"lwg": "Wanga",
"lwh": "Lachi Putih",
"lwl": "Lawa Timur",
"lwm": "Laomian",
"lwo": "Luwo",
"lws": "Malawian Sign Language",
"lwt": "Lewotobi",
"lwu": "Lawu",
"lww": "Lewo",
"lya": "Layakha",
"lyg": "Lyngngam",
"lyn": "Luyana",
"lzh": "Literary Chinese",
"lzl": "Litzlitz",
"lzn": "Leinong Naga",
"lzz": "Laz",
"maa": "Mazatec San Jerónimo Tecóatl",
"mab": "Mixtec Yutanduchi",
"mad": "Madura",
"mae": "Bo-Rukul",
"maf": "Mafa",
"mag": "Magahi",
"mai": "Maithili",
"maj": "Mazatec Jalapa de Díaz",
"mak": "Makassar",
"mam": "Mam",
"man": "Mandingo",
"map-ata-pro": "Atayalik Purba",
"map-bms": "Banyumasan",
"map-pro": "Austronesia Purba",
"maq": "Mazatec Chiquihuitlán",
"mas": "Maasai",
"mat": "Matlatzinca",
"mau": "Mazatec Huautla",
"mav": "Sateré-Mawé",
"maw": "Mampruli",
"max": "Melayu Maluku Utara",
"maz": "Mazahua Tengah",
"mba": "Higaonon",
"mbb": "Manobo Bukidnon Barat",
"mbc": "Macushi",
"mbd": "Manobo Dibabawon",
"mbe": "Molale",
"mbf": "Melayu Baba",
"mbh": "Mangseng",
"mbi": "Manobo Ilianen",
"mbj": "Nadëb",
"mbk": "Malol",
"mbl": "Maxakalí",
"mbm": "Ombamba",
"mbn": "Macaguán",
"mbo": "Mbo (Cameroon)",
"mbp": "Wiwa",
"mbq": "Maisin",
"mbr": "Nukak Makú",
"mbs": "Manobo Sarangani",
"mbt": "Manobo Matigsalug",
"mbu": "Mbula-Bwazza",
"mbv": "Mbulungish",
"mbw": "Maring",
"mbx": "Mari (Sepik)",
"mby": "Memoni",
"mbz": "Mixtec Amoltepec",
"mca": "Maca",
"mcb": "Machiguenga",
"mcc": "Bitur",
"mcd": "Sharanahua",
"mce": "Mixtec Itundujia",
"mcf": "Matsés",
"mcg": "Mapoyo",
"mch": "Ye'kwana",
"mci": "Mese",
"mcj": "Mvanip",
"mck": "Mbunda",
"mcl": "Macaguaje",
"mcm": "Kristang",
"mcn": "Masana",
"mco": "Mixe Coatlán",
"mcp": "Makaa",
"mcq": "Ese",
"mcr": "Menya",
"mcs": "Mambai",
"mcu": "Mambila Cameroon",
"mcw": "Mawa",
"mcx": "Mpiemo",
"mcy": "Watut Selatan",
"mcz": "Mawan",
"mda": "Mada (Nigeria)",
"mdb": "Morigi",
"mdc": "Male",
"mdd": "Mbum",
"mde": "Mabang Bura",
"mdf": "Moksha",
"mdg": "Massalat",
"mdh": "Maguindanao",
"mdi": "Mamvu",
"mdj": "Mangbetu",
"mdk": "Mangbutu",
"mdl": "Bahasa Isyarat Malta",
"mdm": "Mayogo",
"mdn": "Mbati",
"mdp": "Mbala",
"mdq": "Mbole",
"mdr": "Mandar",
"mds": "Maria",
"mdt": "Mbere",
"mdu": "Mboko",
"mdv": "Mixtec Santa Lucía Monteverde",
"mdw": "Mbosi",
"mdx": "Dizin",
"mdy": "Maale",
"mdz": "Suruí Do Pará",
"mea": "Menka",
"meb": "Ikobi-Mena",
"mec": "Mara",
"med": "Melpa",
"mee": "Mengen",
"mef": "Megam",
"meh": "Mixtec Tlaxiaco Barat Daya",
"mei": "Midob",
"mej": "Meyah",
"mek": "Mekeo",
"mel": "Melanau Tengah",
"mem": "Mangala",
"men": "Mende (Sierra Leone)",
"meo": "Melayu Kedah",
"mep": "Miriwoong",
"meq": "Merey",
"mer": "Meru",
"mes": "Masmaje",
"met": "Mato",
"meu": "Motu",
"mev": "Mano",
"mew": "Maaka",
"mey": "Arab Hassaniyah",
"mez": "Menominee",
"mfa": "Melayu Patani",
"mfb": "Bangka",
"mfc": "Mba",
"mfd": "Mendankwe-Nkwen",
"mfe": "Kreol Mauritius",
"mff": "Naki",
"mfg": "Mixifore",
"mfh": "Matal",
"mfi": "Wandala",
"mfj": "Mefele",
"mfk": "Mofu Utara",
"mfl": "Putai",
"mfm": "Marghi Selatan",
"mfn": "Mbembe Cross River",
"mfo": "Mbe",
"mfp": "Melayu Makassar",
"mfq": "Moba",
"mfr": "Marrithiyel",
"mfs": "Bahasa Isyarat Mexico",
"mft": "Mokerang",
"mfu": "Mbwela",
"mfv": "Mandjak",
"mfw": "Mulaha",
"mfx": "Melo",
"mfy": "Mayo",
"mfz": "Mabaan",
"mg": "Malagasi",
"mga": "Ireland Pertengahan",
"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": "Magar Timur",
"mgq": "Malila",
"mgr": "Mambwe-Lungu",
"mgs": "Manda (Tanzania)",
"mgt": "Mwakai",
"mgu": "Mailu",
"mgv": "Matengo",
"mgw": "Matumbi",
"mgy": "Mbunga",
"mgz": "Mbugwe",
"mh": "Marshall",
"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": "Mòcheno",
"mho": "Mashi",
"mhp": "Melayu Bali",
"mhq": "Mandan",
"mhr": "Mari Timur",
"mhs": "Buru (Indonesia)",
"mht": "Mandahuaca",
"mhu": "Taraon",
"mhw": "Mbukushu",
"mhx": "Lhao Vo",
"mhy": "Ma'anyan",
"mhz": "Mor (Austronesia)",
"mi": "Māori",
"mia": "Miami",
"mib": "Mixtec Atatláhuca",
"mic": "Mi'kmaq",
"mid": "Mandaia",
"mie": "Mixtec Ocotepec",
"mif": "Mofu-Gudur",
"mig": "Mixtec San Miguel el Grande",
"mih": "Mixtec Chayuco",
"mii": "Mixtec Chigmecatitlán",
"mij": "Mungbam",
"mik": "Mikasuki",
"mil": "Mixtec Peñoles",
"mim": "Mixtec Alacatlatzala",
"min": "Minangkabau",
"mio": "Mixtec Pinotepa Nacional",
"mip": "Mixtec Apasco-Apoala",
"miq": "Miskito",
"mir": "Mixe Tanah Genting",
"mis-hkl": "Hokkien Peranakan Kelantan",
"mis-idn": "Idiom Neutral",
"mis-isa": "Isauria",
"mis-jie": "Jie",
"mis-jzh": "Jizhao",
"mis-kas": "Kassite",
"mis-mmd": "Mimi Decorse",
"mis-mmn": "Mimi Nachtigal",
"mis-phi": "Filistin",
"mis-rou": "Rouran",
"mis-tdl": "Turdulia",
"mis-tdt": "Turdetania",
"mis-tnw": "Tangwang",
"mis-tuh": "Tuyuhun",
"mis-tuo": "Tuoba",
"mis-wuh": "Wuhuan",
"mis-xbi": "Xianbei",
"mis-xnu": "Xiongnu",
"mit": "Mixtec Puebla Selatan",
"miu": "Mixtec Cacaloxtepec",
"miw": "Akoye",
"mix": "Mixtec Mixtepec",
"miy": "Mixtec Ayutla",
"miz": "Mixtec Coatzospan",
"mjb": "Makalero",
"mjc": "Mixtec San Juan Colorado",
"mjd": "Maidu Barat Laut",
"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": "Paharia Sawriya",
"mju": "Manna-Dora",
"mjv": "Mannan",
"mjw": "Karbi",
"mjx": "Mahali",
"mjy": "Mahican",
"mjz": "Manya",
"mk": "Macedonia",
"mka": "Mbre",
"mkb": "Mal Paharia",
"mkc": "Siliput",
"mke": "Mawchi",
"mkf": "Miya",
"mkg": "Mak (China)",
"mkh-asl-pro": "Asli Purba",
"mkh-ban-pro": "Bahnar Purba",
"mkh-kat-pro": "Katuik Purba",
"mkh-khm-pro": "Khmuik Purba",
"mkh-kmr-pro": "Khmer Purba",
"mkh-mmn": "Mon Pertengahan",
"mkh-mnc-pro": "Monik Purba",
"mkh-mvi": "Vietnam Pertengahan",
"mkh-pal-pro": "Palaungik Purba",
"mkh-pea-pro": "Pearik Purba",
"mkh-pkn-pro": "Pakanik Purba",
"mkh-pro": "Mon-Khmer Purba",
"mkh-vie-pro": "Vietik Purba",
"mki": "Dhatki",
"mkj": "Mokil",
"mkk": "Byep",
"mkl": "Mokole",
"mkm": "Moklen",
"mkn": "Melayu Kupang",
"mko": "Mingang Doso",
"mkp": "Moikodi",
"mkq": "Miwok Teluk",
"mkr": "Malas",
"mks": "Mixtec Silacayoapan",
"mkt": "Vamale",
"mku": "Maninka Konyanka",
"mkv": "Mav̋ea",
"mkx": "Manobo Cinamiguin",
"mky": "Taba",
"mkz": "Makasae",
"ml": "Malayalam",
"mla": "Tamambo",
"mlb": "Mbule",
"mlc": "Caolan",
"mle": "Manambu",
"mlf": "Mal",
"mlh": "Mape",
"mli": "Malimpung",
"mlj": "Miltu",
"mlk": "Ilwana",
"mll": "Teluk Malua",
"mlm": "Mulam",
"mln": "Malango",
"mlo": "Mlomp",
"mlp": "Bargam",
"mlq": "Maninkakan Barat",
"mlr": "Vame",
"mls": "Masalit",
"mlu": "To'abaita",
"mlv": "Mwotlap",
"mlw": "Moloko",
"mlx": "Malfaxal",
"mlz": "Malaynon",
"mma": "Mama",
"mmb": "Momina",
"mmc": "Mazahua Michoacán",
"mmd": "Maonan",
"mme": "Tirax",
"mmf": "Mundat",
"mmg": "Ambrym Utara",
"mmh": "Mehináku",
"mmi": "Hember Avu",
"mmj": "Majhwar",
"mmk": "Mukha-Dora",
"mml": "Man Met",
"mmm": "Maii",
"mmn": "Mamanwa",
"mmo": "Mangga Buang",
"mmp": "Musan",
"mmq": "Aisi",
"mmr": "Miao Xiangxi Barat",
"mmt": "Malalamai",
"mmu": "Mmaala",
"mmv": "Miriti",
"mmw": "Emae",
"mmx": "Madak",
"mmy": "Migaama",
"mmz": "Mabaale",
"mn": "Mongolia",
"mna": "Mbula",
"mnb": "Muna",
"mnc": "Manchu",
"mnd": "Mondé",
"mne": "Naba",
"mnf": "Mundani",
"mng": "Mnong Timur",
"mnh": "Mono (Congo)",
"mni": "Manipuri",
"mnj": "Munji",
"mnk": "Mandinka",
"mnl": "Tiale",
"mnm": "Mapena",
"mnn": "Mnong Selatan",
"mnp": "Min Utara",
"mnq": "Minriq",
"mnr": "Mono (California)",
"mns-cen": "Mansi Tengah",
"mns-nor": "Mansi Utara",
"mns-pro": "Mansi Purba",
"mns-sou": "Mansi Selatan",
"mnt": "Maykulan",
"mnu": "Mer",
"mnv": "Rennell",
"mnw": "Mon",
"mnw-tha": "Mon Thailand",
"mnx": "Sougb",
"mny": "Manyawa",
"mnz": "Moni",
"moa": "Mwan",
"moc": "Mocoví",
"mod": "Mobilia",
"moe": "Montagnais",
"mog": "Mongondow",
"moh": "Mohawk",
"moi": "Mboi",
"moj": "Monzombo",
"mok": "Morori",
"mom": "Mangue",
"moo": "Monom",
"mop": "Maya Mopan",
"moq": "Mor (Papua)",
"mor": "Moro",
"mos": "Mossi",
"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": "Watut Tengah",
"mpm": "Mixtec Yosondúa",
"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": "Melayu Kutai Kota Bangun",
"mqh": "Mixtec Tlazoyaltepec",
"mqi": "Mariri",
"mqj": "Mamasa",
"mqk": "Manobo Rajah Kabunsuwan",
"mql": "Mbelime",
"mqm": "Marquesas Selatan",
"mqn": "Moronene",
"mqo": "Modole",
"mqp": "Manipa",
"mqq": "Minokok",
"mqr": "Mander",
"mqs": "Makian Barat",
"mqt": "Mok",
"mqu": "Mandari",
"mqv": "Mosimo",
"mqw": "Murupi",
"mqx": "Mamuju",
"mqy": "Manggarai",
"mqz": "Malasanga",
"mr": "Marathi",
"mra": "Mlabri",
"mrb": "Sungwadia",
"mrc": "Maricopa",
"mrd": "Magar Barat",
"mre": "Bahasa Isyarat Martha's Vineyard",
"mrf": "Elseng",
"mrg": "Mising",
"mrh": "Chin Mara",
"mrj": "Mari Barat",
"mrk": "Hmwaveke",
"mrl": "Mortlock",
"mrm": "Mwerlap",
"mrn": "Cheke Holo",
"mro": "Mru",
"mrp": "Morouas",
"mrq": "Marquesas Utara",
"mrr": "Maria Bukit",
"mrs": "Maragus",
"mrt": "Margi",
"mru": "Mono (Cameroon)",
"mrv": "Mangareva",
"mrw": "Maranao",
"mrx": "Dineor",
"mry": "Mandaya Karaga",
"mrz": "Marind",
"ms": "Melayu",
"msb": "Masbatenyo",
"msc": "Maninka Sankaran",
"msd": "Bahasa Isyarat Maya Yucatec",
"mse": "Musey",
"msf": "Mekwei",
"msg": "Moraid",
"msi": "Melayu Sabah",
"msj": "Ma",
"msk": "Mansaka",
"msl": "Molof",
"msm": "Manobo Agusan",
"msn": "Vurës",
"mso": "Mombum",
"msp": "Maritsauá",
"msq": "Caac",
"msr": "Bahasa Isyarat Mongolia",
"mss": "Masela Barat",
"msu": "Musom",
"msv": "Maslam",
"msw": "Mansoanka",
"msx": "Moresada",
"msy": "Aruamu",
"msz": "Momare",
"mt": "Malta",
"mta": "Manobo Cotabato",
"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": "Mixe Totontepec",
"mtp": "Wichí Lhamtés Nocten",
"mtq": "Muong",
"mtr": "Mewari",
"mts": "Yora",
"mtt": "Mota",
"mtu": "Mixtec Tututepec",
"mtv": "Asaro'o",
"mtw": "Magahat",
"mtx": "Mixtec Tidaá",
"mty": "Nabi",
"mua": "Mundang",
"mub": "Mubi",
"muc": "Mbu'",
"mud": "Aleut Mednyj",
"mue": "Media Lengua",
"mug": "Musgu",
"muh": "Mündü",
"mui": "Musi",
"muj": "Mabire",
"mul": "Translingual",
"mum": "Maiwala",
"mun-pro": "Munda Purba",
"muo": "Nyong",
"mup": "Malvi",
"muq": "Miao Xiangxi Timur",
"mur": "Murle",
"mus": "Creek",
"mut": "Muria Barat",
"muu": "Yaaku",
"muv": "Muthuvan",
"mux": "Bo-Ung",
"muy": "Muyang",
"muz": "Mursi",
"mva": "Manam",
"mvb": "Mattole",
"mvd": "Mamboru",
"mvg": "Mixtec Yucuañe",
"mvh": "Mire",
"mvi": "Miyako",
"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": "Kohistani Indus",
"mvz": "Mesqan",
"mwa": "Mwatebu",
"mwb": "Juwal",
"mwc": "Are",
"mwe": "Mwera",
"mwf": "Murrinh-Patha",
"mwg": "Aiklep",
"mwh": "Mouk-Aria",
"mwi": "Labo",
"mwk": "Maninkakan Kita",
"mwl": "Mirandese",
"mwm": "Sar",
"mwn": "Nyamwanga",
"mwo": "Sungwadaga",
"mwp": "Kala Lagaw Ya",
"mwq": "Mün Chin",
"mwr": "Marwari",
"mws": "Mwimbi-Muthambi",
"mwt": "Moken",
"mwu": "Mittu",
"mwv": "Mentawai",
"mww": "Hmong Putih",
"mwz": "Moingi",
"mxa": "Mixtec Oaxaca Barat Laut",
"mxb": "Mixtec Tezoatlán",
"mxd": "Modang",
"mxe": "Mele-Fila",
"mxf": "Malgbe",
"mxg": "Mbangala",
"mxh": "Mvuba",
"mxi": "Mozarab",
"mxj": "Miju",
"mxk": "Monumbo",
"mxl": "Maxi Gbe",
"mxm": "Meramera",
"mxn": "Moi (Indonesia)",
"mxo": "Mbowe",
"mxp": "Mixe Tlahuitoltepec",
"mxq": "Mixe Juquila",
"mxr": "Murik (Malaysia)",
"mxs": "Mixtec Huitepec",
"mxt": "Mixtec Jamiltepec",
"mxu": "Mada (Cameroon)",
"mxv": "Mixtec Metlatónoc",
"mxw": "Namo",
"mxx": "Mahou",
"mxy": "Mixtec Nochixtlán Tenggara",
"mxz": "Masela Tengah",
"my": "Burma",
"myb": "Mbay",
"myc": "Mayeka",
"mye": "Myene",
"myf": "Bambassi",
"myg": "Manta",
"myh": "Makah",
"myj": "Mangayat",
"myk": "Mamara",
"myl": "Moma",
"mym": "Me'en",
"myn-chl": "Ch'olti'",
"myn-pro": "Maya Purba",
"myo": "Anfillo",
"myp": "Pirahã",
"myr": "Muniche",
"mys": "Mesmes",
"myu": "Mundurukú",
"myv": "Erzya",
"myw": "Muyuw",
"myx": "Masaba",
"myy": "Macuna",
"myz": "Mandaia Klasik",
"mza": "Mixtec Santa María Zacatepec",
"mzb": "Berber Saharan Utara",
"mzc": "Bahasa Isyarat Madagascar",
"mzd": "Malimba",
"mze": "Morawa",
"mzg": "Bahasa Isyarat Monastik",
"mzh": "Wichí Lhamtés Güisnay",
"mzi": "Mazatec Ixcatlán",
"mzk": "Mambila Nigeria",
"mzl": "Mixe Mazatlán",
"mzm": "Mumuye",
"mzn": "Mazanderani",
"mzo": "Matipuhy",
"mzp": "Movima",
"mzq": "Mori Atas",
"mzr": "Marúbo",
"mzs": "Macanese",
"mzt": "Mintil",
"mzu": "Inapang",
"mzv": "Manza",
"mzw": "Deg",
"mzx": "Mawayana",
"mzy": "Bahasa Isyarat Mozambique",
"mzz": "Maiadomu",
"na": "Nauru",
"naa": "Namla",
"nab": "Nambikwara",
"nac": "Narak",
"nae": "Naka'ela",
"naf": "Nabak",
"nag": "Pidgin Naga",
"nah": "Nahuatl",
"nai-ala": "Alazapa",
"nai-bay": "Bayogoula",
"nai-cal": "Calusa",
"nai-chi": "Chiquimulilla",
"nai-chu-pro": "Chumash Purba",
"nai-cig": "Ciguayo",
"nai-ckn-pro": "Chinook Purba",
"nai-guz": "Guazacapán",
"nai-hit": "Hitchiti",
"nai-ipa": "Ipai",
"nai-jtp": "Jutiapa",
"nai-jum": "Jumaytepeque",
"nai-kat": "Kathlamet",
"nai-klp-pro": "Kalapuya Purba",
"nai-knm": "Konomihu",
"nai-kum": "Kumeyaay",
"nai-mac": "Macoris",
"nai-mdu-pro": "Maidu Purba",
"nai-miz-pro": "Mixe-Zoque Purba",
"nai-mus-pro": "Muskogi Purba",
"nai-nao": "Naolan",
"nai-nrs": "Shasta Sungai Baru",
"nai-okw": "Okwanuchu",
"nai-per": "Pericú",
"nai-pic": "Picuris",
"nai-plp-pro": "Penuti Penara Purba",
"nai-pom-pro": "Pomo Purba",
"nai-qng": "Quinigua",
"nai-sca-pro": "Siouan-Catawba Purba",
"nai-sin": "Sinacantán",
"nai-sln": "Lenca Salvador",
"nai-spt": "Sahaptin",
"nai-tap": "Tapachultec",
"nai-taw": "Tawasa",
"nai-teq": "Tequistlatec",
"nai-tip": "Tipai",
"nai-tot-pro": "Totozoquean Purba",
"nai-tsi-pro": "Tsimshianik Purba",
"nai-utn-pro": "Utik Purba",
"nai-wai": "Waikuri",
"nai-wji": "Jicaque Barat",
"nai-yup": "Yupiltepeque",
"naj": "Nalu",
"nak": "Nakanai",
"nal": "Nalik",
"nam": "Ngan'gityemerri",
"nan": "Min Nan",
"nan-dat": "Min Datian",
"nan-hbl": "Hokkien",
"nan-hlh": "Min Hailufeng",
"nan-lnx": "Min Longyan",
"nan-tws": "Teochew",
"nan-zhe": "Min Zhenan",
"nan-zsh": "Min Sanxiang",
"nao": "Naaba",
"nap": "Neapolit",
"naq": "Khoekhoe",
"nar": "Iguta",
"nas": "Nasioi",
"nat": "Hungworo",
"naw": "Nawuri",
"nax": "Nakwi",
"nay": "Ngarrindjeri",
"naz": "Nahuatl Coatepec",
"nb": "Bokmål Norway",
"nba": "Nyemba",
"nbb": "Ndoe",
"nbc": "Chang",
"nbd": "Ngbinda",
"nbe": "Naga Konyak",
"nbg": "Nagarchal",
"nbh": "Ngamo",
"nbi": "Naga Mao",
"nbj": "Ngarinman",
"nbk": "Nake",
"nbm": "Ngbaka Ma'bo",
"nbn": "Kuri",
"nbo": "Nkukoli",
"nbp": "Nnam",
"nbq": "Nggem",
"nbr": "Numana",
"nbs": "Bahasa Isyarat Namibia",
"nbt": "Na",
"nbu": "Naga Rongmei",
"nbv": "Ngamambo",
"nbw": "Ngbandi Selatan",
"nby": "Ningera",
"nca": "Iyo",
"ncb": "Nicobar Tengah",
"ncc": "Ponam",
"ncd": "Nachering",
"nce": "Yale",
"ncf": "Notsi",
"ncg": "Nisga'a",
"nch": "Nahuatl Huasteca Tengah",
"nci": "Nahuatl Klasik",
"ncj": "Nahuatl Puebla Utara",
"nck": "Nakara",
"ncl": "Nahuatl Michoacán",
"ncm": "Nambo",
"ncn": "Nauna",
"nco": "Sibe",
"ncr": "Ncane",
"ncs": "Bahasa Isyarat Nicaragua",
"nct": "Naga Chothe",
"ncu": "Chumburung",
"ncx": "Nahuatl Puebla Tengah",
"ncz": "Natchez",
"nd": "Ndebele Utara",
"nda": "Ndasa",
"ndb": "Kenswei Nsei",
"ndc": "Ndau",
"ndd": "Nde-Nsele-Nta",
"ndf": "Nadruvia",
"ndg": "Ndengereko",
"ndh": "Ndali",
"ndi": "Chamba Leko",
"ndj": "Ndamba",
"ndk": "Ndaka",
"ndl": "Ndolo",
"ndm": "Ndam",
"ndn": "Ngundi",
"ndp": "Ndo",
"ndq": "Ndombe",
"ndr": "Ndoola",
"nds": "Jerman Rendah",
"ndt": "Ndunga",
"ndu": "Dugun",
"ndv": "Ndut",
"ndw": "Ndobo",
"ndx": "Nduga",
"ndy": "Lutos",
"ndz": "Ndogo",
"ne": "Nepal",
"nea": "Ngad'a Timur",
"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": "Mixe Tengah Utara",
"ner": "Yahadian",
"nes": "Kinnauri Bhoti",
"net": "Nete",
"neu": "Neo",
"nev": "Nyaheun",
"new": "Newar",
"nex": "Neme",
"ney": "Neyo",
"nez": "Nez Perce",
"nfa": "Dhao",
"nfd": "Ahwai",
"nfl": "Äiwoo",
"nfr": "Nafaanra",
"nfu": "Mfumte",
"ng": "Ndonga",
"nga": "Ngbaka",
"ngb": "Ngbandi Utara",
"ngc": "Ngombe (Congo)",
"ngd": "Ngando (Republik Afrika Tengah)",
"nge": "Ngemba",
"ngf-bin-pro": "Binandere Purba",
"ngf-pro": "Trans-New Guinea Purba",
"ngg": "Ngbaka Manza",
"ngh": "Nǀuu",
"ngi": "Ngizim",
"ngj": "Ngie",
"ngk": "Ngalkbun",
"ngl": "Lomwe",
"ngm": "Kreol Lelaki Ngatik",
"ngn": "Ngwo",
"ngo": "Ngoni",
"ngp": "Ngulu",
"ngq": "Ngoreme",
"ngr": "Nagu",
"ngs": "Gvoko",
"ngt": "Ngeq",
"ngu": "Nahuatl Guerrero",
"ngv": "Nagumi",
"ngw": "Ngwaba",
"ngx": "Nggwahyi",
"ngy": "Tibea",
"ngz": "Ngungwel",
"nha": "Nhanda",
"nhb": "Beng",
"nhc": "Nahuatl Tabasco",
"nhd": "Chiripá",
"nhe": "Nahuatl Huasteca Timur",
"nhf": "Nhuwala",
"nhg": "Nahuatl Tetelcingo",
"nhh": "Nahari",
"nhi": "Nahuatl Zacatlán-Ahuacatlán-Tepetzintla",
"nhk": "Nahuatl Cosoleacaque",
"nhm": "Nahuatl Morelos",
"nhn": "Nahuatl Tengah",
"nho": "Takuu",
"nhp": "Nahuatl Pajapan",
"nhq": "Nahuatl Huaxcaleca",
"nhr": "Naro",
"nht": "Nahuatl Ometepec",
"nhu": "Noone",
"nhv": "Nahuatl Temascaltepec",
"nhw": "Nahuatl Huasteca Barat",
"nhx": "Nahuatl Mecayapan",
"nhy": "Nahuatl Oaxaca Utara",
"nhz": "Nahuatl Santa María La Alta",
"nia": "Nias",
"nib": "Nakame",
"nic-bco-pro": "Benue-Congo Purba",
"nic-bod-pro": "Bantoid Purba",
"nic-eov-pro": "Oti-Volta Timur Purba",
"nic-gns-pro": "Gurunsi Purba",
"nic-grf-pro": "Grassfields Purba",
"nic-gur-pro": "Gur Purba",
"nic-jkn-pro": "Jukunoid Purba",
"nic-lcr-pro": "Cross River Hilir Purba",
"nic-ogo-pro": "Ogoni Purba",
"nic-ovo-pro": "Oti-Volta Purba",
"nic-plt-pro": "Plateau Purba",
"nic-pro": "Niger-Congo Purba",
"nic-ubg-pro": "Ubangi Purba",
"nic-ucr-pro": "Cross River Hulu Purba",
"nic-vco-pro": "Volta-Congo Purba",
"nid": "Ngandi",
"nie": "Niellim",
"nif": "Nek",
"nig": "Ngalakan",
"nih": "Nyiha",
"nii": "Nii",
"nij": "Ngaju",
"nik": "Nicobar Selatan",
"nil": "Nila",
"nim": "Nilamba",
"nin": "Ninzo",
"nio": "Nganasan",
"niq": "Nandi",
"nir": "Nimboran",
"nis": "Nimi",
"nit": "Kolami Tenggara",
"niu": "Niue",
"niv": "Nivkh",
"niw": "Nimo",
"nix": "Hema",
"niy": "Ngiti",
"niz": "Ningil",
"nja": "Nzanyi",
"njb": "Nocte",
"njh": "Naga Lotha",
"nji": "Gudanji",
"njj": "Njen",
"njl": "Njalgulgule",
"njm": "Angami",
"njn": "Naga Liangmai",
"njo-jgl": "Ao Chungli",
"njo-mng": "Ao Mongsen",
"njr": "Njerep",
"njs": "Nisa",
"njt": "Pidgin Ndyuka-Trio",
"nju": "Ngadjunmaya",
"njx": "Kunyi",
"njy": "Njyem",
"njz": "Nyishi",
"nka": "Nkoya",
"nkb": "Naga Khoibu",
"nkc": "Nkongho",
"nkd": "Koireng",
"nke": "Duke",
"nkf": "Naga Inpui",
"nkg": "Nekgini",
"nkh": "Naga Khezha",
"nki": "Naga Thangal",
"nkj": "Nakai",
"nkk": "Nokuku",
"nkm": "Namat",
"nkn": "Nkangala",
"nko": "Nkonya",
"nkp": "Niuatoputapu",
"nkq": "Nkami",
"nkr": "Nukuoro",
"nks": "Asmat Utara",
"nkt": "Nyika",
"nku": "Kulango Bouna",
"nkw": "Nkutu",
"nkx": "Nkoroo",
"nkz": "Nkari",
"nl": "Belanda",
"nla": "Ngombale",
"nlc": "Nalca",
"nle": "Nyala Timur",
"nlg": "Gela",
"nli": "Grangali",
"nlj": "Nyali",
"nlk": "Yali Ninia",
"nll": "Nihali",
"nlm": "Mankiyali",
"nlo": "Ngwi",
"nlq": "Naga Lao",
"nlu": "Nchumbulu",
"nlv": "Nahuatl Orizaba",
"nlw": "Walangama",
"nlx": "Nahali",
"nly": "Nyamal",
"nlz": "Nalögo",
"nma": "Naga Maram",
"nmb": "Big Nambas",
"nmc": "Ngam",
"nmd": "Ndumu",
"nme": "Naga Mzieme",
"nmf": "Naga Tangkhul",
"nmg": "Kwasio",
"nmh": "Naga Monsang",
"nmi": "Nyam",
"nmj": "Ngombe (Republik Afrika Tengah)",
"nmk": "Namakura",
"nml": "Ndemli",
"nmm": "Manangba",
"nmn": "ǃXóõ",
"nmo": "Naga Moyon",
"nmp": "Nimanbur",
"nmq": "Nambya",
"nmr": "Nimbari",
"nms": "Letemboi",
"nmt": "Namonuito",
"nmu": "Maidu Timur Laut",
"nmv": "Ngamini",
"nmw": "Nimoa",
"nmx": "Nama",
"nmy": "Namuyi",
"nmz": "Nawdm",
"nn": "Nynorsk Norway",
"nna": "Nyangumarta",
"nnb": "Nande",
"nnc": "Nancere",
"nnd": "Ambae Barat",
"nne": "Ngandyera",
"nnf": "Ngaing",
"nng": "Naga Maring",
"nnh": "Ngiemboon",
"nni": "Nuaulu Utara",
"nnj": "Nyangatom",
"nnk": "Nankina",
"nnl": "Naga Rengma Utara",
"nnm": "Namia",
"nnn": "Ngete",
"nnp": "Wancho",
"nnq": "Ngindo",
"nnr": "Narungga",
"nnt": "Nanticoke",
"nnu": "Dwang",
"nnv": "Nukunu",
"nnw": "Nuni Selatan",
"nnx": "Ngong",
"nny": "Nyangga",
"nnz": "Nda'nda'",
"no": "Norway",
"noa": "Woun Meu",
"noc": "Nuk",
"nod": "Thai Utara",
"noe": "Nimadi",
"nof": "Nomane",
"nog": "Nogai",
"noh": "Nomu",
"noi": "Noiri",
"noj": "Nonuya",
"nok": "Nooksack",
"nol": "Nomlaki",
"non": "Norse Kuno",
"nop": "Numanggang",
"noq": "Ngongo",
"nos": "Nisu Timur",
"not": "Nomatsiguenga",
"nou": "Ewage-Notu",
"nov": "Novial",
"now": "Nyambo",
"noy": "Noy",
"noz": "Nayi",
"npa": "Nar Phu",
"npb": "Nupbikha",
"npg": "Ponyo",
"nph": "Phom",
"npl": "Nahuatl Puebla Tenggara",
"npn": "Mondropolon",
"npo": "Naga Pochuri",
"nps": "Nipsan",
"npu": "Naga Puimei",
"npx": "Noipä",
"npy": "Napu",
"nqg": "Ede Nago",
"nqk": "Kura Ede Nago",
"nql": "Ngendelengo",
"nqm": "Ndom",
"nqn": "Nen",
"nqo": "N'Ko",
"nqq": "Naga Kyan-Karyaw",
"nqy": "Akyaung Ari",
"nr": "Ndebele Selatan",
"nra": "Ngom",
"nrb": "Nara",
"nrc": "Noric",
"nre": "Naga Rengma Selatan",
"nrf": "Norman",
"nrg": "Narango",
"nri": "Naga Chokri",
"nrk": "Ngarla",
"nrl": "Ngarluma",
"nrm": "Narom",
"nrn": "Norn",
"nrp": "Picene Utara",
"nrr": "Norra",
"nrt": "Kalapuya Utara",
"nru": "Narua",
"nrx": "Ngurmbur",
"nrz": "Lala (New Guinea)",
"nsa": "Naga Sangtam",
"nsb": "Nossob Bawah",
"nsc": "Nshi",
"nsd": "Nisu Selatan",
"nse": "Nsenga",
"nsf": "Nisu Barat Laut",
"nsg": "Ngasa",
"nsh": "Ngoshie",
"nsi": "Bahasa Isyarat Nigeria",
"nsk": "Naskapi",
"nsl": "Bahasa Isyarat Norway",
"nsm": "Sema",
"nsn": "Nehan",
"nso": "Sotho Utara",
"nsp": "Bahasa Isyarat Nepal",
"nsq": "Miwok Sierra Utara",
"nsr": "Bahasa Isyarat Maritim",
"nss": "Nali",
"nst": "Tangsa",
"nsu": "Nahuatl Sierra Negra",
"nsw": "Navut",
"nsx": "Nsongo",
"nsy": "Nasal",
"nsz": "Nisenan",
"ntd": "Tidung Utara",
"ntg": "Ngantangarra",
"nti": "Natioro",
"ntj": "Ngaanyatjarra",
"ntk": "Ikoma",
"ntm": "Nateni",
"nto": "Ntomba",
"ntp": "Tepehuan Utara",
"ntr": "Delo",
"nts": "Natagaimas",
"ntu": "Natügu",
"ntw": "Nottoway",
"ntx": "Somra",
"nty": "Mantsi",
"nua": "Yuanga",
"nub-har": "Haraza",
"nub-pro": "Nubia Purba",
"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": "Nguôn",
"nup": "Nupe",
"nuq": "Nukumanu",
"nur": "Nuguria",
"nus": "Nuer",
"nut": "Nùng",
"nuu": "Ngbundu",
"nuv": "Nuni Utara",
"nuw": "Nguluwan",
"nux": "Mehek",
"nuy": "Nunggubuyu",
"nuz": "Nahuatl Tlamacazapa",
"nv": "Navajo",
"nvh": "Nasarian",
"nvm": "Namiae",
"nvo": "Nyokon",
"nwa": "Nawathinehena",
"nwb": "Nyabwa",
"nwc": "Newar Klasik",
"nwe": "Ngwe",
"nwg": "Ngaiawang",
"nwi": "Tanna Barat Daya",
"nwm": "Nyamusa-Molo",
"nwo": "Nauo",
"nwr": "Nawaru",
"nwx": "Newar Pertengahan",
"nwy": "Nottoway-Meherrin",
"nxa": "Nauete",
"nxd": "Ngando (Congo)",
"nxe": "Nage",
"nxg": "Ngadha",
"nxi": "Nindi",
"nxl": "Nuaulu Selatan",
"nxm": "Numidia",
"nxn": "Ngawun",
"nxo": "Ndambomo",
"nxq": "Naxi",
"nxr": "Ninggerum",
"nxx": "Nafri",
"ny": "Chichewa",
"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": "Nyaw",
"nyx": "Nganyaywana",
"nyy": "Nyakyusa",
"nza": "Mbembe Tigon",
"nzb": "Njebi",
"nzd": "Nzadi",
"nzi": "Nzima",
"nzk": "Nzakara",
"nzm": "Naga Zeme",
"nzs": "Bahasa Isyarat New Zealand",
"nzu": "Teke Tengah",
"nzy": "Nzakambay",
"nzz": "Dogon Nanga Dama",
"oaa": "Orok",
"oac": "Oroch",
"oav": "Avar Kuno",
"obi": "Obispeño",
"obk": "Bontoc Selatan",
"obl": "Oblo",
"obm": "Moabite",
"obo": "Obo Manobo",
"obr": "Burma Kuno",
"obt": "Breton Kuno",
"obu": "Obulom",
"oc": "Occitan",
"oca": "Ocaina",
"och": "Cina Kuno",
"oco": "Cornwall Kuno",
"ocu": "Tlahuica",
"oda": "Odut",
"odk": "Od",
"odt": "Belanda Kuno",
"odu": "Odual",
"ofo": "Ofo",
"ofs": "Frisia Kuno",
"ofu": "Efutop",
"ogb": "Ogbia",
"ogc": "Ogbah",
"oge": "Georgia Kuno",
"ogg": "Ogbogolo",
"ogo": "Khana",
"ogu": "Ogbronuagum",
"ohu": "Hungary Kuno",
"oia": "Oirata",
"oin": "One Inebu",
"oj": "Ojibwe",
"ojb": "Ojibwa Barat Laut",
"ojc": "Ojibwa Tengah",
"ojg": "Ojibwa Timur",
"ojp": "Jepun Kuno",
"ojs": "Severn Ojibwa",
"ojv": "Jawa Ontong",
"ojw": "Ojibwa Barat",
"oka": "Okanagan",
"okb": "Okobo",
"okd": "Okodia",
"oke": "Okpe (Edo Barat Daya)",
"okg": "Kok-Paponk",
"okh": "Koresh-e Rostam",
"oki": "Okiek",
"okj": "Oko-Juwoi",
"okk": "Kwamtim One",
"okl": "Bahasa Isyarat Kentish Kuno",
"okm": "Korea Pertengahan",
"okn": "Oki-No-Erabu",
"oko": "Korea Kuno",
"okr": "Kirike",
"oks": "Oko-Eni-Osayen",
"oku": "Oku",
"okv": "Orokaiva",
"okx": "Okpe (Edo Barat Laut)",
"okz": "Khmer Kuno",
"old": "Mochi",
"ole": "Olekha",
"olm": "Oloma",
"olo": "Livvi",
"olr": "Olrat",
"olt": "Lithuania Kuno",
"olu": "Kuvale",
"om": "Oromo",
"oma": "Omaha-Ponca",
"omb": "Omba",
"omc": "Mochica",
"omg": "Omagua",
"omi": "Omi",
"omk": "Omok",
"oml": "Ombo",
"omn": "Minoan",
"omo": "Utarmbung",
"omp": "Manipur Kuno",
"omq-cha-pro": "Chatino Purba",
"omq-maz-pro": "Mazatec Purba",
"omq-mix-pro": "Mixtecan Purba",
"omq-mxt-pro": "Mixtec Purba",
"omq-otp-pro": "Oto-Pamean Purba",
"omq-pro": "Oto-Manguean Purba",
"omq-sjq": "Chatino San Juan Quiahije",
"omq-tel": "Mixtec Teposcolula",
"omq-teo": "Chatino Teojomulco",
"omq-tri-pro": "Triqui Purba",
"omq-zap-pro": "Zapotecan Purba",
"omq-zpc-pro": "Zapotec Purba",
"omr": "Marathi Kuno",
"omt": "Omotik",
"omu": "Omurano",
"omv-aro-pro": "Aroid Purba",
"omv-diz-pro": "Dizoid Purba",
"omv-pro": "Omotik Purba",
"omw": "Tairora Selatan",
"omx": "Mon Kuno",
"ona": "Selk'nam",
"onb": "Lingao",
"one": "Oneida",
"ong": "Olo",
"oni": "Onin",
"onj": "Onjob",
"onk": "Kabore One",
"onn": "Onobasulu",
"ono": "Onondaga",
"onp": "Sartang",
"onr": "One Utara",
"ons": "Ono",
"ont": "Ontenu",
"onu": "Unua",
"onw": "Nubia Kuno",
"onx": "Pidgin Onin",
"ood": "O'odham",
"oog": "Ong",
"oon": "Önge",
"oor": "Oorlams",
"oos": "Ossetia Kuno",
"opa": "Okpamheri",
"opk": "Kopkaka",
"opm": "Oksapmin",
"opo": "Opao",
"opt": "Opata",
"opy": "Ofayé",
"or": "Odia",
"ora": "Oroha",
"ore": "Orejón",
"org": "Oring",
"orh": "Oroqen",
"oro": "Orokolo",
"orr": "Oruma",
"ors": "Orang Seletar",
"ort": "Oriya Adivasi",
"oru": "Ormuri",
"orv": "Slav Timur Kuno",
"orw": "Oro Win",
"orx": "Oro",
"orz": "Ormu",
"os": "Ossetia",
"osa": "Osage",
"osc": "Osci",
"osi": "Osing",
"osn": "Sunda Kuno",
"oso": "Ososo",
"osp": "Sepanyol Kuno",
"ost": "Osatu",
"osu": "One Selatan",
"osx": "Saxon Kuno",
"ota": "Turki Usmaniyah",
"otb": "Tibet Kuno",
"otd": "Ot Danum",
"ote": "Otomi Mezquital",
"oti": "Oti",
"otk": "Turk Kuno",
"otl": "Otomi Tilapa",
"otm": "Otomi Tanah Tinggi Timur",
"otn": "Otomi Tenango",
"oto-otm-pro": "Otomi Purba",
"oto-pro": "Otomian Purba",
"otq": "Otomi Querétaro",
"otr": "Otoro",
"ots": "Otomi Estado de México",
"ott": "Otomi Temoaya",
"otu": "Otuke",
"otw": "Ottawa",
"otx": "Otomi Texcatepec",
"oty": "Tamil Kuno",
"otz": "Otomi Ixtenco",
"oub": "Glio-Oubi",
"oue": "Oune",
"oui": "Uyghur Kuno",
"oum": "Ouma",
"ovd": "Älvdalen",
"owi": "Owiniga",
"owl": "Wales Kuno",
"oyb": "Oy",
"oyd": "Oyda",
"oym": "Wayampi",
"oyy": "Oya'oya",
"ozm": "Koonzime",
"pa": "Punjabi",
"paa-kmn": "Kómnzo",
"paa-kwn": "Kuwani",
"paa-lei": "Leitre",
"paa-nha-pro": "Halmahera Utara Purba",
"paa-nun": "Nungon",
"pab": "Pareci",
"pac": "Pacoh",
"pad": "Paumarí",
"pae": "Pagibete",
"paf": "Paranawát",
"pag": "Pangasinan",
"pah": "Tenharim",
"pai": "Pe",
"pak": "Parakanã",
"pal": "Parsi Pertengahan",
"pam": "Kapampangan",
"pao": "Paiute Utara",
"pap": "Papiamentu",
"paq": "Parya",
"par": "Panamint",
"pas": "Papasena",
"pat": "Papitalai",
"pau": "Palau",
"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": "Pame Tengah",
"pbv": "Pnar",
"pby": "Pyu",
"pca": "Santa Inés Ahuatempan Popoloca",
"pcb": "Pear",
"pcc": "Bouyei",
"pcd": "Picard",
"pce": "Ruching Palaung",
"pcf": "Paliyan",
"pcg": "Paniya",
"pch": "Pardhan",
"pci": "Duruwa",
"pcj": "Parenga",
"pck": "Paite",
"pcl": "Pardhi",
"pcm": "Pijin Nigeria",
"pcn": "Piti",
"pcp": "Pacahuara",
"pcw": "Pyapun",
"pda": "Anam",
"pdc": "Jerman Pennsylvania",
"pdi": "Pa Di",
"pdn": "Fedan",
"pdo": "Padoe",
"pdt": "Plautdietsch",
"pdu": "Kayan",
"pea": "Peranakan Indonesian",
"peb": "Pomo Timur",
"ped": "Mala (New Guinea)",
"pee": "Taje",
"pef": "Pomo Timur Laut",
"peg": "Pengo",
"peh": "Bonan",
"pei": "Chichimeca-Jonaz",
"pej": "Pomo Utara",
"pek": "Penchal",
"pel": "Pekal",
"pem": "Phende",
"peo": "Parsi Kuno",
"pep": "Kunja",
"peq": "Pomo Selatan",
"pev": "Pémono",
"pex": "Petats",
"pey": "Petjo",
"pez": "Penan Timur",
"pfa": "Pááfang",
"pfe": "Peere",
"pga": "Arab Juba",
"pgd": "Gandhari",
"pgg": "Pangwali",
"pgi": "Pagi",
"pgk": "Rerep",
"pgl": "Primitive Irish",
"pgn": "Paelignian",
"pgs": "Pangseng",
"pgu": "Pagu",
"pgz": "Bahasa Isyarat Papua New Guinea",
"pha": "Pa-Hng",
"phd": "Phudagi",
"phg": "Phuong",
"phh": "Phukha",
"phi-din": "Agta Dinapigue",
"phi-kal-pro": "Kalamian Purba",
"phi-nag": "Agta Nagtipunan",
"phi-pro": "Filipina Purba",
"phk": "Phake",
"phl": "Phalura",
"phm": "Phimbi",
"phn": "Phoenicia",
"pho": "Phunoi",
"phq": "Phana'",
"phr": "Pahari-Potwari",
"pht": "Phu Thai",
"phu": "Phuan",
"phv": "Pahlavani",
"phw": "Phangduwali",
"pi": "Pali",
"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": "Baekje",
"pkg": "Pak-Tong",
"pkh": "Pankhu",
"pkn": "Pakanha",
"pko": "Pökoot",
"pkp": "Pukapukan",
"pkr": "Attapady Kurumba",
"pks": "Bahasa Isyarat Pakistan",
"pkt": "Maleng",
"pku": "Paku",
"pl": "Poland",
"pla": "Miani",
"plb": "Polonombauk",
"plc": "Central Palawano",
"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": "Palawano Barat Daya",
"plw": "Palawano Brooke's Point",
"ply": "Bolyu",
"plz": "Paluan",
"pma": "Paama",
"pmb": "Pambia",
"pmd": "Pallanganmiddang",
"pme": "Pwaamei",
"pmf": "Pamona",
"pmi": "Pumi Utara",
"pmj": "Pumi Selatan",
"pmk": "Pamlico",
"pml": "Sabir",
"pmm": "Pol",
"pmn": "Pam",
"pmo": "Pom",
"pmq": "Pame Utara",
"pmr": "Paynamar",
"pms": "Piemonte",
"pmt": "Tuamotuan",
"pmu": "Mirpur Panjabi",
"pmw": "Plains Miwok",
"pmx": "Poumei Naga",
"pmy": "Papuan Malay",
"pmz": "Southern Pame",
"pna": "Punan Bah-Biau",
"pnb": "Punjabi Barat",
"pnc": "Pannei",
"pnd": "Mpinda",
"pne": "Penan Barat",
"png": "Pongu",
"pnh": "Penrhyn",
"pni": "Aoheng",
"pnj": "Pinjarup",
"pnk": "Paunaca",
"pnl": "Paleni",
"pnm": "Punan Batu",
"pnn": "Pinai-Hagahai",
"pno": "Panobo",
"pnp": "Pancana",
"pnq": "Pana (Afrika Barat)",
"pnr": "Panim",
"pns": "Ponosakan",
"pnt": "Yunani Pontus",
"pnu": "Jiongnai Bunu",
"pnv": "Pinigura",
"pnw": "Panyjima",
"pnx": "Phong-Kniang",
"pny": "Pinyin",
"pnz": "Pana (Afrika Tengah)",
"poc": "Poqomam",
"poe": "San Juan Atzingo Popoloca",
"pof": "Poke",
"pog": "Potiguára",
"poh": "Poqomchi'",
"poi": "Highland Popoluca",
"pok": "Pokangá",
"pom": "Pomo Tenggara",
"pon": "Pohnpei",
"poo": "Pomo Tengah",
"pop": "Pwapwa",
"poq": "Texistepec Popoluca",
"pos": "Sayula Popoluca",
"pot": "Potawatomi",
"pov": "Kreol Guinea-Bissau",
"pow": "San Felipe Otlaltepec Popoloca",
"pox": "Polabia",
"poy": "Pogolo",
"poz-abi": "Abai",
"poz-bal": "Baliledo",
"poz-btk-pro": "Bungku-Tolaki Purba",
"poz-cet-pro": "Melayu-Polinesia Tengah-Timur Purba",
"poz-hce-pro": "Halmahera-Cenderawasih Purba",
"poz-lgx-pro": "Lampungik Purba",
"poz-mcm-pro": "Melayu-Chamic Purba",
"poz-mic-pro": "Mikronesia Purba",
"poz-mly-pro": "Melayik Purba",
"poz-msa-pro": "Melayu-Sumbawa Purba",
"poz-nes": "Nese",
"poz-oce-pro": "Oceania Purba",
"poz-pcc-pro": "Pasifik Tengah Purba",
"poz-pep-pro": "Polinesia Timur Purba",
"poz-pnp-pro": "Polinesia Teras Purba",
"poz-pol-pro": "Polinesia Purba",
"poz-pro": "Melayu-Polinesia Purba",
"poz-sml": "Melayu Sarawak",
"poz-ssw-pro": "Sulawesi Selatan Purba",
"poz-swa-pro": "Sarawak Utara Purba",
"poz-ter": "Melayu Terengganu",
"ppa": "Pao",
"ppe": "Papi",
"ppi": "Paipai",
"ppk": "Uma",
"ppl": "Pipil",
"ppm": "Papuma",
"ppn": "Papapana",
"ppo": "Folopa",
"ppq": "Pei",
"pps": "San Luís Temalacayuca Popoloca",
"ppt": "Pa",
"ppu": "Papora",
"pqa": "Pa'a",
"pqe-pro": "Melayu-Polinesia Timur Purba",
"pqm": "Malecite-Passamaquoddy",
"pra": "Prakrit",
"pra-niy": "Prakrit Niya",
"prc": "Parachi",
"pre": "Principe",
"prf": "Paranan",
"prg": "Prusia Kuno",
"prh": "Porohanon",
"pri": "Paicî",
"prk": "Parauk",
"prl": "Bahasa Isyarat Peru",
"prm": "Kibiri",
"prn": "Prasuni",
"pro": "Occitan Kuno",
"prq": "Ashéninka Perené",
"prr": "Puri",
"prt": "Phai",
"pru": "Puragi",
"prw": "Parawen",
"prx": "Purik",
"prz": "Bahasa Isyarat Providencia",
"ps": "Pashto",
"psa": "Asue Awyu",
"psc": "Bahasa Isyarat Parsi",
"psd": "Plains Indian Sign Language",
"pse": "Melayu Barisan Selatan",
"psg": "Bahasa Isyarat Pulau Pinang",
"psh": "Pashayi Barat Daya",
"psi": "Pashayi Tenggara",
"psl": "Bahasa Isyarat Puerto Rico",
"psm": "Pauserna",
"psn": "Panasuan",
"pso": "Bahasa Isyarat Poland",
"psp": "Bahasa Isyarat Filipina",
"psq": "Pasi",
"psr": "Bahasa Isyarat Portugis",
"pss": "Kaulong",
"psw": "Port Sandwich",
"psy": "Piscataway",
"pt": "Portugis",
"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": "Paiwan",
"pwo": "Pwo Barat",
"pwr": "Powari",
"pww": "Pwo Utara",
"pxm": "Quetzaltepec Mixe",
"pye": "Pye Krumen",
"pym": "Fyam",
"pyn": "Poyanáwa",
"pys": "Bahasa Isyarat Paraguay",
"pyu": "Puyuma",
"pyx": "Tircul",
"pyy": "Pyen",
"pzh": "Pazeh",
"pzn": "Para Naga",
"qfa-adm-pro": "Andaman Besar Purba",
"qfa-bet-pro": "Be-Tai Purba",
"qfa-cka-pro": "Chukotko-Kamchatka Purba",
"qfa-hur-pro": "Hurro-Urartia Purba",
"qfa-kad-pro": "Kadu Purba",
"qfa-kms-pro": "Kam-Sui Purba",
"qfa-kor-pro": "Korea Purba",
"qfa-kra-pro": "Kra Purba",
"qfa-lic-pro": "Hlai Purba",
"qfa-onb-pro": "Be Purba",
"qfa-ong-pro": "Onga Purba",
"qfa-tak-pro": "Kra-Dai Purba",
"qfa-yen-pro": "Yenisei Purba",
"qfa-yuk-pro": "Yukaghir Purba",
"qu": "Quechua",
"qua": "Quapaw",
"quc": "K'iche'",
"qui": "Quileute",
"qum": "Sipakapense",
"qun": "Quinault",
"quq": "Quinqui",
"quv": "Sacapulteco",
"qvy": "Queyu",
"qwc": "Quechua Klasik",
"qwe-kch": "Kichwa",
"qwe-pro": "Quechua Purba",
"qwm": "Kipchak",
"qwt": "Kwalhioqua-Tlatskanai",
"qxs": "Southern Qiang",
"qya": "Quenya",
"qyp": "Quiripi",
"raa": "Dungmali",
"rab": "Chamling",
"rac": "Rasawa",
"rad": "Rade",
"raf": "Meohang Barat",
"rag": "Logooli",
"rah": "Rabha",
"rai": "Ramoaaina",
"raj": "Rajasthan",
"rak": "Tulu-Bohuai",
"ral": "Ralte",
"ram": "Canela",
"ran": "Riantana",
"rao": "Rao",
"rap": "Rapa Nui",
"raq": "Saam",
"rar": "Rarotonga",
"ras": "Tegali",
"rat": "Razajerdi",
"rau": "Raute",
"rav": "Sampang",
"raw": "Rawang",
"rax": "Rang",
"ray": "Rapa",
"raz": "Rahambuu",
"rbb": "Rumai Palaung",
"rbk": "Bontoc Utara",
"rbl": "Bikol Miraya",
"rcf": "Perancis Kreol Réunion",
"rdb": "Rudbari",
"rea": "Rerau",
"reb": "Rembong",
"ree": "Kayan Rejang",
"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": "Yunani Romani",
"rgk": "Rangkas",
"rgn": "Romagnol",
"rgr": "Resígaro",
"rgs": "Roglai Selatan",
"rgu": "Ringgou",
"rhg": "Rohingya",
"rhp": "Yahang",
"ria": "Reang",
"rif": "Tarifit",
"ril": "Riang",
"rim": "Nyaturu",
"rin": "Nungu",
"rir": "Ribun",
"rit": "Ritarungo",
"riu": "Riung",
"rjg": "Rajong",
"rji": "Raji",
"rjs": "Rajbanshi",
"rka": "Kraol",
"rkb": "Rikbaktsa",
"rkh": "Rakahanga-Manihiki",
"rki": "Rakhine",
"rkm": "Marka",
"rkt": "Kamta",
"rkw": "Arakwal",
"rm": "Romansh",
"rma": "Rama",
"rmb": "Rembarunga",
"rmc": "Romani Carpathia",
"rmd": "Denmark Pengembara",
"rme": "Angloromani",
"rmf": "Romani Finland Kalo",
"rmg": "Norway Pengembara",
"rmh": "Murkim",
"rmi": "Lomavren",
"rmk": "Romkun",
"rml": "Romani Baltik",
"rmm": "Roma",
"rmn": "Romani Balkan",
"rmo": "Romani Sinte",
"rmp": "Rempi",
"rmq": "Caló",
"rms": "Bahasa Isyarat Romania",
"rmt": "Domari",
"rmu": "Tavringer Romani",
"rmv": "Romanova",
"rmw": "Romani Wales",
"rmx": "Romam",
"rmy": "Romani Vlax",
"rmz": "Marma",
"rnd": "Ruwund",
"rng": "Ronga",
"rnl": "Ranglong",
"rnn": "Roon",
"rnp": "Rongpo",
"rnw": "Rungwa",
"ro": "Romania",
"roa-ang": "Angevin",
"roa-bbn": "Bourbonnais-Berrichon",
"roa-brg": "Bourguignon",
"roa-can": "Cantabrian",
"roa-cha": "Champenois",
"roa-fcm": "Franc-Comtois",
"roa-gal": "Gallo",
"roa-gib": "Gallo-Italik Basilicata",
"roa-gis": "Gallo-Italik Sicily",
"roa-leo": "Leon",
"roa-lor": "Lorrain",
"roa-oca": "Catalonia Kuno",
"roa-ole": "Leon Kuno",
"roa-ona": "Navarro-Aragon Kuno",
"roa-opt": "Galicia-Portugis Kuno",
"roa-orl": "Orléanais",
"roa-poi": "Poitevin-Saintongeais",
"roa-tar": "Tarantino",
"rob": "Tae'",
"roc": "Roglai Cacgia",
"rod": "Rogo",
"roe": "Ronji",
"rof": "Rombo",
"rog": "Roglai Utara",
"rol": "Romblomanon",
"rom": "Romani",
"roo": "Rotokas",
"rop": "Kriol",
"ror": "Rongga",
"rou": "Runga",
"row": "Dela-Oenale",
"rpn": "Repanbitip",
"rpt": "Rapting",
"rri": "Ririo",
"rro": "Roro",
"rrt": "Arritinngithigh",
"rsb": "Romano-Serbia",
"rsk": "Rusyn Pannonia",
"rsl": "Bahasa Isyarat Rusia",
"rsm": "Bahasa Isyarat Miriwoong",
"rtc": "Rungtu",
"rth": "Ratahan",
"rtm": "Rotuma",
"rtw": "Rathawi",
"ru": "Rusia",
"rub": "Gungu",
"ruc": "Ruuli",
"rue": "Rusyn",
"ruf": "Luguru",
"rug": "Roviana",
"ruh": "Ruga",
"rui": "Rufiji",
"ruk": "Che",
"ruo": "Istro-Romania",
"rup": "Aromania",
"ruq": "Megleno-Romania",
"rut": "Rutul",
"ruu": "Lanas Lobu",
"ruy": "Mala (Nigeria)",
"ruz": "Ruma",
"rw": "Rwanda-Rundi",
"rwa": "Rawo",
"rwk": "Rwa",
"rwm": "Amba",
"rwo": "Rawa",
"rxd": "Ngardi",
"rxw": "Karuwali",
"ryn": "Amami Ōshima Utara",
"rys": "Yaeyama",
"ryu": "Okinawa",
"rzh": "Razihi",
"sa": "Sanskrit",
"saa": "Saba",
"sab": "Buglere",
"sac": "Fox",
"sad": "Sandawe",
"sae": "Sabanê",
"saf": "Safaliba",
"sah": "Yakut",
"sai-all": "Allentiac",
"sai-and": "Andoquero",
"sai-ayo": "Ayomán",
"sai-bae": "Baenan",
"sai-bag": "Bagua",
"sai-bet": "Betoi",
"sai-bor-pro": "Bora Purba",
"sai-cac": "Cacán",
"sai-caq": "Caranqui",
"sai-car-pro": "Carib Purba",
"sai-cat": "Catacao",
"sai-cer-pro": "Cerrado Purba",
"sai-chi": "Chirino",
"sai-chn": "Chaná",
"sai-chp": "Chapacura",
"sai-chr": "Charrua",
"sai-chu": "Churuya",
"sai-cje-pro": "Jê Tengah Purba",
"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": "Jê Purba",
"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": "Jê Utara Purba",
"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": "Jê Selatan Purba",
"sai-tab": "Tabancale",
"sai-tal": "Tallán",
"sai-tap": "Tapayuna",
"sai-tar-pro": "Taranoan Purba",
"sai-teu": "Teushen",
"sai-tim": "Timote",
"sai-tpr": "Taparita",
"sai-trr": "Tarairiú",
"sai-wai": "Waitaká",
"sai-way": "Wayumara",
"sai-wit-pro": "Witotoan Purba",
"sai-wnm": "Wanham",
"sai-xoc": "Xocó",
"sai-yao": "Yao (Amerika Selatan)",
"sai-yar": "Yarumá",
"sai-yri": "Yuri",
"sai-yup": "Yupua",
"sai-yur": "Yurumanguí",
"saj": "Sahu",
"sak": "Sake",
"sal-pro": "Salish Purba",
"sam": "Samaritan Aramaic",
"sao": "Sause",
"saq": "Samburu",
"sar": "Saraveca",
"sas": "Sasak",
"sat": "Santal",
"sau": "Saleman",
"sav": "Saafi-Saafi",
"saw": "Sawi",
"sax": "Sa",
"say": "Saya",
"saz": "Saurashtra",
"sba": "Ngambay",
"sbb": "Simbo",
"sbc": "Gele'",
"sbd": "Samo Selatan",
"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": "Sardinia",
"scb": "Chut",
"sce": "Dongxiang",
"scf": "Perancis Kreol San Miguel",
"scg": "Sanggau",
"sch": "Sakachep",
"sci": "Melayu Sri Lanka",
"sck": "Sadri",
"scl": "Shina",
"scn": "Sicilia",
"sco": "Scots",
"scp": "Yolmo",
"scq": "Sa'och",
"scs": "Slavey Utara",
"scu": "Shumcho",
"scv": "Sheni",
"scw": "Sha",
"scx": "Sicel",
"sd": "Sindhi",
"sda": "Toraja-Sa'dan",
"sdb": "Shabak",
"sdc": "Sassari",
"sde": "Surubu",
"sdf": "Sarli",
"sdg": "Savi",
"sdh": "Kurdi Selatan",
"sdj": "Suundi",
"sdk": "Sos Kundi",
"sdl": "Saudi Arabian Sign Language",
"sdm": "Semandang",
"sdn": "Gallura",
"sdo": "Bidayuh Bukar-Sadong",
"sdp": "Sherdukpen",
"sdr": "Oraon Sadri",
"sds": "Barbar Tunisia",
"sdu": "Sarudu",
"sdv-daj-pro": "Daju Purba",
"sdv-eje-pro": "Jebel Timur Purba",
"sdv-nil-pro": "Nilotik Purba",
"sdv-nyi-pro": "Nyima Purba",
"sdv-tmn-pro": "Taman Purba",
"sdx": "Melanau Sibu",
"se": "Sami Utara",
"sea": "Semai",
"sec": "Sechelt",
"sed": "Sedang",
"see": "Seneca",
"sef": "Cebaara Senoufo",
"seg": "Segeju",
"seh": "Sena",
"sei": "Seri",
"sej": "Sene",
"sek": "Sekani",
"sel-nor": "Selkup Utara",
"sel-pro": "Selkup Purba",
"sel-sou": "Selkup Selatan",
"sem-amm": "Ammon",
"sem-amo": "Amor",
"sem-cha": "Chaha",
"sem-dad": "Dadan",
"sem-dum": "Dumait",
"sem-has": "Hasait",
"sem-his": "Hisma",
"sem-mhr": "Muher",
"sem-pro": "Samiah Purba",
"sem-saf": "Safait",
"sem-sam": "Samal",
"sem-srb": "Arab Selatan Kuno",
"sem-tay": "Tayman",
"sem-tha": "Thamud",
"sem-wes-pro": "Samiah Barat Purba",
"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": "Chin Senthang",
"sfb": "French Belgian Sign Language",
"sfm": "Small Flowery Miao",
"sfs": "Bahasa Isyarat Afrika Selatan",
"sfw": "Sehwi",
"sg": "Sango",
"sga": "Ireland Kuno",
"sgb": "Mag-Anchi Ayta",
"sgc": "Kipsigis",
"sgd": "Surigaonon",
"sge": "Segai",
"sgg": "Swiss-German Sign Language",
"sgh": "Shughni",
"sgi": "Suga",
"sgk": "Sangkong",
"sgm": "Singa",
"sgp": "Singpho",
"sgr": "Sangisari",
"sgs": "Samogitia",
"sgt": "Brokpake",
"sgu": "Salas",
"sgw": "Sebat Bet Gurage",
"sgx": "Sierra Leone Sign Language",
"sgy": "Sanglechi",
"sgz": "Sursurunga",
"sh": "Serbo-Croatia",
"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": "Shan",
"sho": "Shanga",
"shp": "Shipibo-Conibo",
"shq": "Sala",
"shr": "Shi",
"shs": "Shuswap",
"sht": "Shasta",
"shu": "Arab Chad",
"shv": "Shehri",
"shw": "Shwai",
"shx": "She",
"shy": "Tachawit",
"shz": "Syenara Senoufo",
"si": "Sinhala",
"sia": "Sami Akkala",
"sib": "Sebop",
"sid": "Sidamo",
"sie": "Simaa",
"sif": "Siamou",
"sig": "Paasaal",
"sih": "Zire",
"sii": "Shom Peng",
"sij": "Numbami",
"sik": "Sikiana",
"sil": "Tumulung Sisaala",
"sim": "Seim",
"sio-pro": "Sioux Purba",
"sip": "Sikkim",
"siq": "Sonia",
"sir": "Siri",
"sis": "Siuslaw",
"sit-aao-pro": "Naga Tengah Purba",
"sit-bai-pro": "Bai Purba",
"sit-ban": "Bangru",
"sit-bdi-pro": "Bodish Purba",
"sit-bok": "Bokar",
"sit-cai": "Caijia",
"sit-cha": "Chairel",
"sit-ers-pro": "Ersu Purba",
"sit-hrs-pro": "Hrusish Purba",
"sit-jap": "Japhug",
"sit-kha-pro": "Kham Purba",
"sit-khb-pro": "Kho-Bwa Purba",
"sit-khp-pro": "Puroik Purba",
"sit-khw-pro": "Kho-Bwa Barat Purba",
"sit-kon-pro": "Naga Utara Purba",
"sit-liz": "Lizu",
"sit-lnj": "Longjia",
"sit-lrn": "Luren",
"sit-luu-pro": "Luish Purba",
"sit-nas-pro": "Naish Purba",
"sit-prn": "Puiron",
"sit-pro": "Sino-Tibet Purba",
"sit-sit": "Situ",
"sit-tam-pro": "Tamang Purba",
"sit-tan-pro": "Tani Purba",
"sit-tgm": "Tangam",
"sit-tng-pro": "Tangkhul Purba",
"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",
"sjd": "Sami Kildin",
"sje": "Sami Pite",
"sjg": "Assangori",
"sjk": "Sami Kemi",
"sjl": "Miji",
"sjm": "Mapun",
"sjn": "Sindarin",
"sjo": "Xibe",
"sjp": "Surjapuri",
"sjr": "Siar-Lak",
"sjs": "Senhaja De Srair",
"sjt": "Sami Ter",
"sju": "Sami Ume",
"sjw": "Shawnee",
"sk": "Slovak",
"ska": "Skagit",
"skb": "Saek",
"skc": "Ma Manda",
"skd": "Miwok Sierra Selatan",
"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": "Maia",
"skt": "Sakata",
"sku": "Sakao",
"skv": "Skou",
"skw": "Belanda Kreol Skepi",
"skx": "Seko Padang",
"sky": "Sikaiana",
"skz": "Sekar",
"sl": "Slovenia",
"sla-pro": "Slav Purba",
"slc": "Saliba (Colombia)",
"sld": "Sissala",
"sle": "Sholaga",
"slf": "Swiss-Italian Sign Language",
"slg": "Selungai Murut",
"slh": "Salish Puget Sound Selatan",
"slj": "Salumá",
"sll": "Salt-Yui",
"slm": "Pangutaran Sama",
"sln": "Salinan",
"slp": "Lamaholot",
"slq": "Salchuq",
"slr": "Salar",
"sls": "Singapore Sign Language",
"slt": "Sila",
"slu": "Selaru",
"slw": "Sialum",
"slx": "Salampasu",
"sly": "Selayar",
"slz": "Ma'ya",
"sm": "Samoa",
"sma": "Sami Selatan",
"smb": "Simbari",
"smc": "Som",
"smd": "Sama",
"smf": "Auwe",
"smg": "Simbali",
"smh": "Samei",
"smi-pro": "Sami Purba",
"smj": "Sami Lule",
"smk": "Bolinao",
"sml": "Bajau Laut",
"smm": "Musasa",
"smn": "Sami Inari",
"smp": "Ibrani Samaria",
"smq": "Samo",
"smr": "Simeulue",
"sms": "Sami Skolt",
"smt": "Simte",
"smu": "Somray",
"smv": "Samvedi",
"smw": "Sumbawa",
"smx": "Samba",
"smy": "Semnani",
"smz": "Simeku",
"sn": "Shona",
"snb": "Sebuyau",
"snc": "Sinaugoro",
"sne": "Bidayuh Bau",
"snf": "Noon",
"sng": "Sanga (Congo)",
"sni": "Sensi",
"snj": "Riverain Sango",
"snk": "Soninke",
"snl": "Sangil",
"snm": "Ma'di Selatan",
"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": "Somali",
"soa": "Thai Song",
"sob": "Sobei",
"soc": "Soko",
"sod": "Songoora",
"soe": "Songomeno",
"sog": "Sogdia",
"soh": "Aka (Sudan)",
"soi": "Sonha",
"sok": "Sokoro",
"sol": "Solos",
"son-pro": "Songhai Purba",
"soo": "Nsong",
"sop": "Songe",
"soq": "Kanasi",
"sor": "Somrai",
"sos": "Seenku",
"sou": "Thai Selatan",
"sov": "Sonsorol",
"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": "Picenum Selatan",
"spy": "Sabaot",
"sq": "Albania",
"sqa": "Shama-Sambuga",
"sqh": "Shau",
"sqj-pro": "Albania Purba",
"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": "Murut Serudung",
"srl": "Isirawa",
"srm": "Saramaccan",
"srn": "Seranan",
"srq": "Sirionó",
"srr": "Serer",
"srs": "Tsuut'ina",
"srt": "Sauri",
"sru": "Suruí",
"srv": "Waray Sorsogon",
"srw": "Serua",
"srx": "Sirmauri",
"sry": "Sera",
"srz": "Shahmirzadi",
"ss": "Swazi",
"ssa-klk-pro": "Kuliak Purba",
"ssa-kom-pro": "Koma Purba",
"ssa-pro": "Nilo-Sahara Purba",
"ssb": "Bajau Pantai Timur",
"ssc": "Suba-Simbiti",
"ssd": "Siroi",
"sse": "Balangingi",
"ssf": "Thao",
"ssg": "Seimat",
"ssh": "Arab Syihuh",
"ssi": "Sansi",
"ssj": "Sausi",
"ssk": "Sunam",
"ssl": "Sisaala Barat",
"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": "Saho",
"ssz": "Sengseng",
"st": "Sotho",
"stb": "Subanen Utara",
"std": "Sentinel",
"ste": "Liana-Seti",
"stf": "Seta",
"stg": "Trieng",
"sth": "Shelta",
"sti": "Bulo Stieng",
"stj": "Matya Samo",
"stk": "Arammba",
"stm": "Setaman",
"stn": "Owa",
"sto": "Stoney",
"stp": "Tepehuan Tenggara",
"stq": "Frisia Saterland",
"str": "Saanich",
"sts": "Shumashti",
"stt": "Budeh Stieng",
"stu": "Samtao",
"stv": "Silt'e",
"stw": "Satawal",
"sty": "Tatar Siberia",
"su": "Sunda",
"sua": "Sulka",
"sub": "Suku",
"suc": "Subanon Barat",
"sue": "Suena",
"sug": "Suganga",
"sui": "Suki",
"suk": "Sukuma",
"suq": "Suri",
"sur": "Mwaghavul",
"sus": "Susu",
"sut": "Subtiaba",
"suv": "Sulung",
"suw": "Sumbwa",
"sux": "Sumeria",
"suy": "Suyá",
"suz": "Sunwar",
"sv": "Sweden",
"sva": "Svan",
"svb": "Ulau-Suain",
"svc": "Inggeris Kreol Vincent",
"sve": "Serili",
"svk": "Slovakian Sign Language",
"svm": "Slavomolisano",
"svs": "Savosavo",
"svx": "Skalvian",
"sw": "Swahili",
"swb": "Comoros Maore",
"swf": "Sere",
"swg": "Swabia",
"swi": "Sui",
"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": "Kalapuya Selatan",
"sxl": "Selonia",
"sxm": "Samre",
"sxn": "Sangir",
"sxo": "Sorothaptic",
"sxr": "Saaroa",
"sxs": "Sasaru",
"sxw": "Saxwe Gbe",
"sya": "Siang",
"syb": "Subanen Tengah",
"syc": "Suryani Klasik",
"syd-pro": "Samoyed Purba",
"syi": "Seki",
"syk": "Sukur",
"syl": "Sylhet",
"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": "Silesia",
"szn": "Sula",
"szp": "Suabo",
"szv": "Isubu",
"szw": "Sawai",
"szy": "Sakizaya",
"ta": "Tamil",
"taa": "Lower Tanana",
"tab": "Tabasaran",
"tac": "Lowland Tarahumara",
"tad": "Tause",
"tae": "Tariana",
"taf": "Tapirapé",
"tag": "Tagoi",
"tai-pro": "Tai Purba",
"tai-swe-pro": "Tai Barat Daya Purba",
"taj": "Tamang Timur",
"tak": "Tala",
"tal": "Tal",
"tan": "Tangale",
"tao": "Yami",
"tap": "Taabwa",
"tar": "Tarahumara Tengah",
"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": "Tairora Utara",
"tbh": "Thurawal",
"tbi": "Gaam",
"tbj": "Tiang",
"tbk": "Calamian Tagbanwa",
"tbl": "Tboli",
"tbm": "Tagbu",
"tbn": "Barro Negro Tunebo",
"tbo": "Tawala",
"tbp": "Taworta",
"tbq-bdg-pro": "Bodo-Garo Purba",
"tbq-blg": "Bailang",
"tbq-brm-pro": "Burma Purba",
"tbq-gkh": "Gokhy",
"tbq-kuk-pro": "Kuki-Chin Purba",
"tbq-lal-pro": "Lalo Purba",
"tbq-laz": "Laze",
"tbq-lob-pro": "Lolo-Burma Purba",
"tbq-lol-pro": "Lolo Purba",
"tbq-mil": "Milang",
"tbq-mor": "Moran",
"tbq-ngo": "Ngochang",
"tbr": "Tumtum",
"tbs": "Tanguat",
"tbt": "Kitembo",
"tbu": "Tubar",
"tbv": "Tobo",
"tbw": "Tagbanwa",
"tbx": "Kapin",
"tby": "Tabaru",
"tbz": "Ditammari",
"tca": "Ticuna",
"tcb": "Tanacross",
"tcc": "Datooga",
"tcd": "Tafi",
"tce": "Tutchone Selatan",
"tcf": "Tlapanec Malinaltepec",
"tcg": "Tamagario",
"tch": "Inggeris Kreol Turks dan Caicos",
"tci": "Wára",
"tck": "Tchitchege",
"tcl": "Taman (Myanmar)",
"tcm": "Tanahmerah",
"tco": "Taungyo",
"tcp": "Chin Tawr",
"tcq": "Kaiy",
"tcs": "Kreol Selat Torres",
"tct": "T'en",
"tcu": "Tarahumara Tenggara",
"tcw": "Tecpatlán Totonac",
"tcx": "Toda",
"tcy": "Tulu",
"tcz": "Chin Thado",
"tda": "Tagdal",
"tdb": "Panchpargania",
"tdc": "Emberá-Tadó",
"tdd": "Tai Nüa",
"tde": "Tiranige Diga Dogon",
"tdf": "Talieng",
"tdg": "Tamang Barat",
"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": "Telugu",
"tea": "Temiar",
"teb": "Tetete",
"tec": "Terik",
"ted": "Tepo Krumen",
"tee": "Tepehua Huehuetla",
"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": "Tetum",
"teu": "Soo",
"tev": "Teor",
"tew": "Tewa",
"tex": "Tennet",
"tey": "Tulishi",
"tez": "Tetserret",
"tfi": "Tofin Gbe",
"tfn": "Dena'ina",
"tfo": "Tefaro",
"tfr": "Teribe",
"tft": "Ternate",
"tg": "Tajik",
"tga": "Sagalla",
"tgb": "Tobilung",
"tgc": "Tigak",
"tgd": "Ciwogai",
"tge": "Tamang Gorkha Timur",
"tgf": "Chali",
"tgh": "Inggeris Kreol Tobago",
"tgi": "Lawunuia",
"tgn": "Tandaganon",
"tgo": "Sudest",
"tgp": "Tangoa",
"tgq": "Tring",
"tgr": "Tareng",
"tgs": "Nume",
"tgt": "Tagbanwa Tengah",
"tgu": "Tanggu",
"tgv": "Tingui-Boto",
"tgw": "Tagwana Senoufo",
"tgx": "Tagish",
"tgy": "Togoyo",
"th": "Thai",
"thc": "Tai Hang Tong",
"thd": "Kuuk Thaayorre",
"the": "Chitwania Tharu",
"thf": "Thangmi",
"thh": "Tarahumara Utara",
"thi": "Tai Long",
"thk": "Tharaka",
"thl": "Dangaura Tharu",
"thm": "Thavung",
"thn": "Thachanadan",
"thp": "Thompson",
"thq": "Kochila Tharu",
"thr": "Rana Tharu",
"ths": "Thakali",
"tht": "Tahltan",
"thu": "Thuri",
"thy": "Tha",
"ti": "Tigrinya",
"tic": "Tira",
"tif": "Tifal",
"tig": "Tigre",
"tih": "Murut Timugon",
"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": "Tiwa Selatan",
"tiy": "Tiruray",
"tiz": "Tai Hongjin",
"tja": "Tajuasohn",
"tjg": "Tunjung",
"tji": "Tujia Utara",
"tjl": "Tai Laing",
"tjm": "Timucua",
"tjn": "Tonjon",
"tjs": "Tujia Selatan",
"tju": "Tjurruru",
"tjw": "Chaap Wuurong",
"tk": "Turkmen",
"tka": "Truká",
"tkb": "Buksa",
"tkd": "Tukudede",
"tke": "Takwane",
"tkf": "Tukumanféd",
"tkl": "Tokelau",
"tkm": "Takelma",
"tkn": "Toku-No-Shima",
"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": "Tagalog",
"tla": "Tepehuan Barat Daya",
"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": "Tamang Barat Laut",
"tml": "Tamnim Citak",
"tmm": "Tai Thanh",
"tmn": "Taman (Indonesia)",
"tmo": "Temoq",
"tmq": "Tumleo",
"tms": "Tima",
"tmt": "Tasmate",
"tmu": "Iau",
"tmv": "Motembo",
"tmw": "Temuan",
"tmy": "Tami",
"tmz": "Tamanaku",
"tn": "Tswana",
"tna": "Tacana",
"tnb": "Tunebo Barat",
"tnc": "Tanimuca-Retuarã",
"tnd": "Angosturas Tunebo",
"tne": "Tinoc Kallahan",
"tng": "Tobanga",
"tnh": "Maiani",
"tni": "Tandia",
"tnk": "Kwamera",
"tnl": "Lenakel",
"tnm": "Tabla",
"tnn": "Tanna Utara",
"tno": "Toromono",
"tnp": "Whitesands",
"tnq": "Taíno",
"tnr": "Bedik",
"tns": "Tenis",
"tnt": "Tontemboan",
"tnu": "Tay Khang",
"tnv": "Tanchangya",
"tnw": "Tonsawang",
"tnx": "Tanema",
"tny": "Tongwe",
"tnz": "Ten'edn",
"to": "Tonga",
"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": "Tok Pisin",
"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": "Tupi Kuno",
"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": "Totonac Barat",
"tqu": "Touo",
"tqw": "Tonkawa",
"tr": "Turki",
"tra": "Tirahi",
"trb": "Terebu",
"trc": "Copala Triqui",
"trd": "Turi",
"tre": "Tarangan Timur",
"trf": "Inggeris Kreol Trinidad",
"trg": "Lishán Didán",
"trh": "Turaka",
"tri": "Trió",
"trj": "Toram",
"trk-dkh": "Dukhan",
"trk-eog": "Oghuz Kuno Awal",
"trk-oat": "Turki Anatolia Kuno",
"trk-pro": "Turkik Purba",
"trl": "Traveller Scottish",
"trm": "Tregami",
"trn": "Trinitario",
"tro": "Tarao",
"trp": "Kokborok",
"trq": "San Martín Itunyoso Triqui",
"trr": "Taushiro",
"trs": "Chicahuaxtla Triqui",
"trt": "Tunggare",
"tru": "Turoyo",
"trv": "Taroko",
"trw": "Torwali",
"trx": "Tringgus",
"try": "Turung",
"trz": "Torá",
"ts": "Tsonga",
"tsa": "Tsaangi",
"tsb": "Tsamai",
"tsc": "Tswa",
"tsd": "Tsakonian",
"tse": "Bahasa Isyarat Tunisia",
"tsf": "Tamang Barat Daya",
"tsg": "Suluk",
"tsh": "Tsuvan",
"tsi": "Tsimshian",
"tsj": "Tshangla",
"tsl": "Ts'ün-Lao",
"tsm": "Bahasa Isyarat Turki",
"tsp": "Toussiana Utara",
"tsq": "Bahasa Isyarat Thai",
"tsr": "Akei",
"tss": "Bahasa Isyarat Taiwan",
"tsu": "Tsou",
"tsv": "Tsogo",
"tsw": "Tsishingini",
"tsx": "Mubami",
"tsy": "Bahasa Isyarat Tebul",
"tt": "Tatar",
"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": "Tutchone Utara",
"ttn": "Towei",
"tto": "Lower Ta'oih",
"ttp": "Tombelala",
"ttr": "Tera",
"tts": "Isan",
"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": "Tunebo Tengah",
"tug": "Tunia",
"tuh": "Taulil",
"tui": "Tupuri",
"tuj": "Tugutil",
"tul": "Tula",
"tum": "Tumbuka",
"tun": "Tunica",
"tuo": "Tucano",
"tup-gua-pro": "Tupi-Guarani Purba",
"tup-kab": "Kabishiana",
"tup-kaw": "Kawahiva",
"tup-pro": "Tupi Purba",
"tuq": "Tedaga",
"tus": "Tuscarora",
"tuu": "Tututni",
"tuv": "Turkana",
"tuw-alk": "Alchuka",
"tuw-bal": "Bala",
"tuw-kkl": "Kyakala",
"tuw-kli": "Kili",
"tuw-pro": "Tungus Purba",
"tuw-sol": "Solon",
"tux": "Tuxináwa",
"tuy": "Tugen",
"tuz": "Turka",
"tva": "Vaghua",
"tvd": "Tsuvadi",
"tve": "Te'un",
"tvk": "Ambrym Tenggara",
"tvl": "Tuvalu",
"tvm": "Tela-Masbuar",
"tvn": "Tavoyan",
"tvo": "Tidore",
"tvs": "Taveta",
"tvt": "Tutsa Naga",
"tvu": "Tunen",
"tvw": "Sedoa",
"tvx": "Taivoan",
"tvy": "Timor Pidgin",
"twa": "Twana",
"twb": "Tawbuid Barat",
"twc": "Teshenawa",
"twe": "Teiwa",
"twf": "Taos",
"twg": "Tereweng",
"twh": "Tai Dón",
"twm": "Tawang Monpa",
"twn": "Twendi",
"two": "Tswapong",
"twp": "Ere",
"twq": "Tasawaq",
"twr": "Tarahumara Barat Daya",
"twt": "Turiwára",
"twu": "Termanu",
"tww": "Tuwari",
"twy": "Tawoyan",
"txa": "Tombonuo",
"txb": "Tocharia B",
"txc": "Tsetsaut",
"txe": "Totoli",
"txg": "Tangut",
"txh": "Thracian",
"txi": "Ikpeng",
"txj": "Tarjumo",
"txm": "Tomini",
"txn": "Tarangan Barat",
"txo": "Toto",
"txq": "Tii",
"txr": "Tartessian",
"txs": "Tonsea",
"txt": "Citak",
"txu": "Kayapó",
"txx": "Tatana",
"ty": "Tahiti",
"tya": "Tauya",
"tye": "Kyenga",
"tyh": "O'du",
"tyi": "Teke-Tsaayi",
"tyj": "Tai Do",
"tyl": "Thu Lao",
"tyn": "Kombai",
"typ": "Kuku-Thaypan",
"tyr": "Tai Daeng",
"tys": "Sapa",
"tyt": "Tày Tac",
"tyu": "Kua",
"tyv": "Tuva",
"tyx": "Teke-Tyee",
"tyz": "Tày",
"tza": "Bahasa Isyarat Tanzania",
"tzh": "Tzeltal",
"tzj": "Tz'utujil",
"tzl": "Talossan",
"tzm": "Tamazight Atlas Tengah",
"tzn": "Tugun",
"tzo": "Tzotzil",
"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": "Udi",
"udj": "Ujir",
"udl": "Uldeme",
"udm": "Udmurt",
"udu": "Uduk",
"ues": "Kioko",
"ufi": "Ufim",
"ug": "Uyghur",
"uga": "Ugarit",
"ugb": "Kuku-Ugbanh",
"uge": "Ughele",
"ugn": "Ugandan Sign Language",
"ugo": "Gong",
"ugy": "Uruguayan Sign Language",
"uha": "Uhami",
"uhn": "Damal",
"uis": "Uisai",
"uiv": "Iyive",
"uji": "Tanjijili",
"uk": "Ukraine",
"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": "Unserdeutsch",
"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": "Watut Utara",
"und": "tidak ditentukan",
"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": "Malakula Timur Laut",
"ur": "Urdu",
"ura": "Urarina",
"urb": "Urubú-Kaapor",
"urc": "Urningangg",
"ure": "Uru",
"urf": "Uradhi",
"urg": "Urigina",
"urh": "Urhobo",
"uri": "Urim",
"urj-fin-pro": "Finnik Purba",
"urj-koo": "Komi Kuno",
"urj-kuk": "Kukkuzi",
"urj-kya": "Komi-Yazva",
"urj-mdv-pro": "Mordvinik Purba",
"urj-prm-pro": "Permik Purba",
"urj-pro": "Uralik Purba",
"urj-ugr-pro": "Ugrik Purba",
"urk": "Urak Lawoi'",
"url": "Urali",
"urm": "Urapmin",
"urn": "Uruangnirin",
"uro": "Ura (Papua 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": "Uvea Barat",
"uvh": "Uri",
"uvl": "Lote",
"uwa": "Kuku-Uwanh",
"uya": "Doko-Uyanga",
"uz": "Uzbek",
"vaa": "Vaagri Booli",
"vae": "Vale",
"vag": "Vagla",
"vah": "Varhadi",
"vai": "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": "Bontoc Barat Daya",
"ve": "Venda",
"vec": "Veneto",
"ved": "Veddah",
"vem": "Vemgo-Mabas",
"veo": "Ventureño",
"vep": "Veps",
"ver": "Mom Jango",
"vgr": "Vaghri",
"vgt": "Flemish Sign Language",
"vi": "Vietnam",
"vic": "Kreol Kepulauan Virgin",
"vid": "Vidunda",
"vif": "Vili",
"vig": "Viemo",
"vil": "Vilela",
"vis": "Vishavan",
"vit": "Viti",
"viv": "Iduna",
"vka": "Kariyarra",
"vki": "Ija-Zuba",
"vkj": "Kujarge",
"vkk": "Kaur",
"vkl": "Kulisusu",
"vkm": "Kamakan",
"vko": "Kodeoha",
"vkp": "Portugis Kreol Korlai",
"vkt": "Tenggarong Kutai Malay",
"vku": "Kurrama",
"vlp": "Valpei",
"vls": "Flemish Barat",
"vma": "Martuthunira",
"vmb": "Mbabaram",
"vmc": "Mixtec Juxtlahuaca",
"vmd": "Mudu Koraga",
"vme": "Masela Timur",
"vmf": "Franconia Timur",
"vmg": "Minigir",
"vmh": "Maraghei",
"vmi": "Miwa",
"vmj": "Mixtec Ixtayutla",
"vmk": "Makhuwa-Shirima",
"vml": "Malgana",
"vmm": "Mixtec Mitlatongo",
"vmp": "Mazatec Soyaltepec",
"vmq": "Mixtec Soyaltepec",
"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": "Volapük",
"vor": "Voro",
"vot": "Vot",
"vra": "Vera'a",
"vro": "Võro",
"vrs": "Varisi",
"vrt": "Banam Bay",
"vsi": "Moldova Sign Language",
"vsl": "Venezuelan Sign Language",
"vsv": "Valencian Sign Language",
"vto": "Vitou",
"vum": "Vumbu",
"vun": "Vunjo",
"vut": "Vute",
"vwa": "Awa (China)",
"wa": "Walloon",
"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": "Waray-Waray",
"was": "Washo",
"wat": "Kaninuwa",
"wau": "Wauja",
"wav": "Waka",
"waw": "Waiwai",
"wax": "Watam",
"way": "Wayana",
"waz": "Wampur",
"wba": "Warao",
"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": "Yanomámi",
"wci": "Waci Gbe",
"wdd": "Wandji",
"wdg": "Wadaginam",
"wdj": "Wadjiginy",
"wdt": "Wendat",
"wdu": "Wadjigu",
"wdy": "Wadjabangayi",
"wea": "Wewaw",
"wec": "Wè Barat",
"wed": "Wedau",
"weh": "Weh",
"wei": "Kiunum",
"wem": "Weme Gbe",
"weo": "Wemale",
"wer": "Weri",
"wes": "Pijin Cameroon",
"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": "Wahgi Utara",
"whk": "Kenyah Wahau",
"whu": "Kayan Wahau",
"wib": "Toussiana Selatan",
"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": "Winnebago",
"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": "Wales Pertengahan",
"wlo": "Wolio",
"wlr": "Wailapa",
"wls": "Wallis",
"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": "Mwani",
"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": "Wolof",
"woa": "Tyaraity",
"wob": "Wè Utara",
"woc": "Wogeo",
"wod": "Wolani",
"woe": "Woleai",
"wog": "Wogamusin",
"woi": "Kamang",
"wok": "Longto",
"wom": "Perema",
"won": "Wongo",
"woo": "Manombai",
"wor": "Woria",
"wos": "Hanga Hundi",
"wow": "Wawonii",
"wpc": "Wirö",
"wra": "Warapu",
"wrb": "Warluwara",
"wrg": "Warungu",
"wrh": "Wiradhuri",
"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",
"wss": "Wasa",
"wsu": "Wasu",
"wsv": "Wotapuri-Katarqalai",
"wtf": "Watiwa",
"wth": "Wathaurong",
"wti": "Berta",
"wtk": "Watakataui",
"wtm": "Mewati",
"wtw": "Wotu",
"wua": "Wikngenchera",
"wub": "Wunambal",
"wud": "Wudu",
"wuh": "Wutunhua",
"wul": "Silimo",
"wum": "Wumbvu",
"wun": "Bungu",
"wur": "Wurrugu",
"wut": "Wutung",
"wuu": "Wu",
"wuv": "Wuvulu-Aua",
"wux": "Wulna",
"wuy": "Wauyai",
"wwa": "Waama",
"wwo": "Dorig",
"wwr": "Warrwa",
"www": "Wawa",
"wxa": "Waxianghua",
"wxw": "Wardandi",
"wya": "Wyandot",
"wyb": "Ngiyambaa",
"wyi": "Woiwurrung",
"wym": "Vilamovian",
"wyr": "Wayoró",
"wyy": "Fiji Barat",
"xaa": "Arab Andalusia",
"xab": "Sambe",
"xac": "Kachari",
"xad": "Adai",
"xae": "Aequian",
"xag": "Aghwan",
"xai": "Kaimbé",
"xaj": "Ararandewára",
"xak": "Maku",
"xal": "Kalmyk",
"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": "Baktria",
"xbd": "Bindal",
"xbe": "Bigambal",
"xbg": "Bunganditj",
"xbi": "Kombio",
"xbj": "Birrpayi",
"xbm": "Breton Pertengahan",
"xbn": "Kenaboi",
"xbo": "Bulgar",
"xbp": "Bibbulman",
"xbr": "Kambera",
"xbw": "Kambiwá",
"xby": "Butchulla",
"xcb": "Cumbric",
"xcc": "Camunic",
"xce": "Celtiberian",
"xch": "Chemakum",
"xcl": "Armenia Kuno",
"xcm": "Comecrudo",
"xcn": "Cotoname",
"xco": "Khwarezm",
"xcr": "Carian",
"xct": "Tibet Klasik",
"xcu": "Curonian",
"xcv": "Chuva",
"xcw": "Coahuilteco",
"xcy": "Cayuse",
"xda": "Darkinjung",
"xdc": "Dacian",
"xdk": "Dharug",
"xdm": "Edom",
"xdq": "Kaitag",
"xdy": "Malayic Dayak",
"xeb": "Ebla",
"xed": "Hdi",
"xeg": "ǁXegwi",
"xel": "Kelo",
"xem": "Kembayan",
"xep": "Epi-Olmec",
"xer": "Xerénte",
"xes": "Kesawai",
"xet": "Xetá",
"xeu": "Keoru-Ahia",
"xfa": "Falisci",
"xga": "Galatia",
"xgb": "Gbin",
"xgd": "Gudang",
"xgf": "Gabrielino-Fernandeño",
"xgg": "Goreng",
"xgi": "Garingbal",
"xgl": "Galindan",
"xgm": "Darumbal",
"xgn-pro": "Mongolia Purba",
"xgr": "Garza",
"xgu": "Unggumi",
"xgw": "Guwa",
"xh": "Xhosa",
"xha": "Harami",
"xhc": "Hun",
"xhd": "Hadrami",
"xhe": "Khetrani",
"xhm": "Khmer Pertengahan",
"xhr": "Hernican",
"xht": "Hatti",
"xhu": "Hurri",
"xhv": "Khua",
"xib": "Iberia",
"xii": "Xiri",
"xil": "Illyria",
"xin": "Xinca",
"xir": "Xiriâna",
"xis": "Kisan",
"xiv": "Bahasa Lembah Indus",
"xiy": "Xipaya",
"xjb": "Minjungbal",
"xka": "Kalkoti",
"xkb": "Manigri-Kambolé Ede Nago",
"xkc": "Khoini",
"xkd": "Kayan Mendalam",
"xke": "Kereho",
"xkf": "Khengkha",
"xkg": "Kagoro",
"xki": "Isyarat Kenya",
"xkj": "Kajali",
"xkk": "Kaco'",
"xkl": "Bakung",
"xkn": "Kayan Sungai 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": "Lycia",
"xld": "Lydia",
"xle": "Lemnos",
"xlg": "Liguria Purba",
"xli": "Liburni",
"xlo": "Loup A",
"xlp": "Lepontii",
"xls": "Lusitania",
"xlu": "Luwiya",
"xly": "Elymi",
"xmb": "Mbonga",
"xmc": "Makhuwa-Marrevone",
"xmd": "Mbudum",
"xme-ker": "Kermanik",
"xme-kls": "Kalasuri",
"xme-klt": "Kilit",
"xme-mid": "Median Pertengahan",
"xme-old": "Median Kuno",
"xme-ott": "Tati Kuno",
"xme-taf": "Tafreshi",
"xme-ttc-pro": "Tatik Purba",
"xmf": "Mingrelia",
"xmg": "Mengaka",
"xmh": "Kugu-Muminh",
"xmj": "Majera",
"xmk": "Macedonia Purba",
"xml": "Isyarat Malaysia",
"xmm": "Melayu Manado",
"xmo": "Morerebi",
"xmp": "Kuku-Mu'inh",
"xmq": "Kuku-Mangk",
"xmr": "Meroe",
"xms": "Isyarat Maghribi",
"xmt": "Matbat",
"xmu": "Kamu",
"xmx": "Maden",
"xmy": "Mayaguduna",
"xmz": "Mori Bawah",
"xna": "Arab Utara Purba",
"xnb": "Kanakanabu",
"xnd-pro": "Na-Dene Purba",
"xng": "Mongol Pertengahan",
"xnh": "Kuanhua",
"xni": "Ngarigu",
"xnk": "Nganakarti",
"xnn": "Kankanay Utara",
"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": "Tasmania Tenggara",
"xpg": "Phrygia",
"xph": "Tyerrernotepanner",
"xpi": "Pict",
"xpj": "Mpalitjanh",
"xpk": "Kulina",
"xpl": "Port Sorell",
"xpm": "Pumpokol",
"xpn": "Kapinawá",
"xpo": "Pochutec",
"xpp": "Puyo-Paekche",
"xpq": "Mohegan-Pequot",
"xpr": "Parthia",
"xps": "Pisidia",
"xpu": "Punik",
"xpv": "Tommeginne",
"xpw": "Peerapper",
"xpx": "Toogee",
"xpy": "Buyeo",
"xpz": "Pulau Bruny",
"xqa": "Karakhanid",
"xqt": "Qatabanian",
"xra": "Krahô",
"xrb": "Karaboro Timur",
"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": "Sambal",
"xsc-pro": "Scythia Purba",
"xsc-sak-pro": "Saka Purba",
"xsc-sar-pro": "Sarmatia Purba",
"xsc-skw-pro": "Saka-Wakhi Purba",
"xsd": "Sidetic",
"xse": "Sempan",
"xsh": "Shamang",
"xsi": "Sio",
"xsj": "Subi",
"xsl": "Slavey Selatan",
"xsm": "Kasem",
"xsn": "Sanga (Nigeria)",
"xso": "Solano",
"xsp": "Silopi",
"xsq": "Makhuwa-Saka",
"xsr": "Sherpa",
"xss": "Assan",
"xsu": "Sanumá",
"xsv": "Sudovian",
"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": "Mixtec Magdalena Peñasco",
"xtn": "Mixtec Tlaxiaco Utara",
"xto": "Tocharia A",
"xtp": "Mixtec San Miguel Piedras",
"xtq": "Tumshuq",
"xtr": "Tripuri Awal",
"xts": "Mixtec Sindihui",
"xtt": "Mixtec Tacahua",
"xtu": "Mixtec Cuyamecalco",
"xtv": "Thawa",
"xtw": "Tawandê",
"xty": "Mixtec Yoloxochitl",
"xtz": "Tasmania",
"xua": "Kurumba Alu",
"xub": "Kurumba Betta",
"xud": "Umiida",
"xug": "Kunigami",
"xuj": "Jennu Kurumba",
"xul": "Ngunawal",
"xum": "Umbri",
"xun": "Unggaranggu",
"xuo": "Kuo",
"xup": "Upper Umpqua",
"xur": "Urartian",
"xut": "Kuthant",
"xuu": "Khwe",
"xve": "Venetic",
"xvn": "Vandalic",
"xvo": "Volscian",
"xvs": "Vestinian",
"xwa": "Kwaza",
"xwc": "Woccon",
"xwd": "Wadi Wadi",
"xwe": "Xwela Gbe",
"xwg": "Kwegu",
"xwj": "Wajuk",
"xwk": "Wangkumara",
"xwl": "Gbe Xwla Barat",
"xwo": "Oirat Bertulis",
"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": "Zemgalia",
"xzp": "Zapotec Purba",
"yaa": "Yaminahua",
"yab": "Yuhup",
"yac": "Pass Valley Yali",
"yad": "Yagua",
"yae": "Pumé",
"yaf": "Yaka",
"yag": "Yámana",
"yah": "Yazghulami",
"yai": "Yagnobi",
"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": "Yugur Barat",
"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": "Kreol Yilan",
"yda": "Yanda",
"yde": "Yangum Dey",
"ydg": "Yidgha",
"ydk": "Yoidik",
"yea": "Ravula",
"yec": "Yeniche",
"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": "Yiddish",
"yia": "Yinggarda",
"yif": "Ache",
"yig": "Wusa Nasu",
"yii": "Yidiny",
"yij": "Yindjibarndi",
"yik": "Dongshanba Lalo",
"yil": "Yindjilandji",
"yim": "Yimchungru Naga",
"yin": "Yinchia",
"yip": "Pholo",
"yiq": "Miqie",
"yir": "Awyu Utara",
"yis": "Yis",
"yit": "Lalu Timur",
"yiu": "Awu",
"yiv": "Nisu Utara",
"yix": "Axi",
"yiy": "Yir-Yoront",
"yiz": "Azhe",
"yka": "Yakan",
"ykg": "Yukaghir Utara",
"ykh": "Mongol Khamnigan",
"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": "Nyâlayu",
"ymb": "Yambes",
"ymc": "Muji Selatan",
"ymd": "Muda",
"yme": "Yameo",
"ymg": "Yamongeri",
"ymh": "Mili",
"ymi": "Moji",
"ymk": "Makwe",
"yml": "Iamalele",
"ymm": "Maay",
"ymn": "Sunum",
"ymo": "Mon Yangum",
"ymp": "Yamap",
"ymq": "Muji Qila",
"ymr": "Malasar",
"yms": "Mysian",
"ymx": "Muji Utara",
"ymz": "Muzi",
"yna": "Aluo",
"ynd": "Yandruwandha",
"yne": "Lang'e",
"yng": "Yango",
"ynk": "Naukanski",
"ynl": "Yangulam",
"ynn": "Yana",
"yno": "Yong",
"yns": "Yansi",
"ynu": "Yahuna",
"yo": "Yoruba",
"yob": "Yoba",
"yog": "Yogad",
"yoi": "Yonaguni",
"yok-bvy": "Yokuts Buena Vista",
"yok-dly": "Yokuts Delta",
"yok-gsy": "Yokuts Gashowu",
"yok-kry": "Yokuts Sungai Kings",
"yok-nvy": "Yokuts Lembah Utara",
"yok-ply": "Yokuts Palewyami",
"yok-svy": "Yokuts Lembah Selatan",
"yok-tky": "Yokuts Tule-Kaweah",
"yol": "Yola",
"yom": "Yombe",
"yon": "Yongkom",
"yox": "Yoron",
"yoy": "Yoy",
"ypa": "Phala",
"ypb": "Labo Phowa",
"ypg": "Phola",
"yph": "Phupha",
"ypk-pro": "Yupik Purba",
"ypm": "Phuma",
"ypn": "Ani Phowa",
"ypo": "Alo Phola",
"ypp": "Phupa",
"ypz": "Phuza",
"yra": "Yerakai",
"yrb": "Yareba",
"yre": "Yaouré",
"yri": "Yarí",
"yrk": "Nenets Tundra",
"yrk-for": "Nenets Hutan",
"yrk-tun": "Nenets Tundra",
"yrl": "Nheengatu",
"yrn": "Yerong",
"yro": "Yaroamë",
"yrw": "Yarawata",
"yry": "Yarluyandi",
"ysc": "Jassic",
"ysd": "Samatao",
"ysg": "Sonaga",
"ysl": "Yugoslavian Sign Language",
"ysn": "Sani",
"yso": "Nisi",
"ysp": "Lolopo Selatan",
"ysr": "Sirenik",
"yss": "Yessan-Mayo",
"ysy": "Sanie",
"yta": "Talu",
"ytl": "Tanglang",
"ytp": "Thopho",
"ytw": "Yout Wam",
"yty": "Yatay",
"yua": "Maya Yucatec",
"yub": "Yugambal",
"yuc": "Yuchi",
"yue": "Kantonis",
"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": "Yukaghir Selatan",
"yuy": "Yugur Timur",
"yuz": "Yuracare",
"yva": "Yawa",
"yvt": "Yavitero",
"ywa": "Kalou",
"ywg": "Yinhawangka",
"ywl": "Lalu Barat",
"ywn": "Yawanawa",
"ywq": "Nasu",
"ywr": "Yawuru",
"ywt": "Xishanba Lalo",
"ywu": "Wumeng Nasu",
"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": "Zhuang",
"zaa": "Zapotec Sierra de Juárez",
"zab": "Zapotec San Juan Guelavía",
"zac": "Zapotec Ocotlán",
"zad": "Zapotec Cajonos",
"zae": "Zapotec Yareni",
"zaf": "Zapotec Ayoquesco",
"zag": "Zaghawa",
"zah": "Zangwal",
"zai": "Zapotec Segenting",
"zaj": "Zaramo",
"zak": "Zanaki",
"zal": "Zauzou",
"zam": "Zapoteco Mahuatlán Tengah",
"zao": "Zapotec Ozolotepec",
"zap": "Zapotec",
"zaq": "Zapotec Aloápam",
"zar": "Zapotec Rincón",
"zas": "Zapotec Santo Domingo Albarradas",
"zat": "Zapotec Tabaa",
"zau": "Zangskar",
"zav": "Zapotec Yatzachi",
"zaw": "Zapotec Mitla",
"zax": "Zapotec Xadani",
"zay": "Zayse-Zergulla",
"zaz": "Zari",
"zbt": "Batui",
"zca": "Zapotec Coatecas Altas",
"zdj": "Comoros Ngazidja",
"zea": "Zeeland",
"zeg": "Zenag",
"zen": "Zenaga",
"zga": "Kinga",
"zgh": "Amazigh Maghribi",
"zgr": "Magori",
"zh": "Cina",
"zhb": "Zhaba",
"zhi": "Zhire",
"zhn": "Nong Zhuang",
"zhw": "Zhoa",
"zhx-min-pro": "Min Purba",
"zhx-sht": "Tuhua Shaozhou",
"zhx-sic": "Sichuan",
"zhx-tai": "Taishan",
"zia": "Zia",
"zib": "Zimbabwe Sign Language",
"zik": "Zimakani",
"zil": "Zialo",
"zim": "Mesme",
"zin": "Zinza",
"zir": "Ziriya",
"ziw": "Zigula",
"ziz": "Zizilivakan",
"zka": "Kaimbulawa",
"zkb": "Koibal",
"zkg": "Goguryeo",
"zkh": "Khorezmian Turkic",
"zkk": "Karankawa",
"zko": "Kott",
"zkp": "Kaingáng São Paulo",
"zkr": "Zakhring",
"zkt": "Khitan",
"zku": "Kaurna",
"zkv": "Krevinian",
"zkz": "Khazar",
"zle-ono": "Novgorod Kuno",
"zle-ort": "Ruthenia Kuno",
"zls-chs": "Slavonic Gereja",
"zlw-ocs": "Czech Kuno",
"zlw-opl": "Poland Kuno",
"zlw-osk": "Slovak Kuno",
"zlw-slv": "Slovincia",
"zma": "Manda (Australia)",
"zmb": "Zimba",
"zmc": "Margany",
"zmd": "Maridan",
"zme": "Mangerr",
"zmf": "Mfinu",
"zmg": "Marti Ke",
"zmh": "Makolkol",
"zmi": "Melayu Negeri Sembilan",
"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": "Kaya",
"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": "Zulu",
"zua": "Zeem",
"zuh": "Tokano",
"zum": "Kumzari",
"zun": "Zuni",
"zuy": "Zumaya",
"zwa": "Zay",
"zyp": "Zyphe",
"zza": "Zazaki",
"zzj": "Zuojiang Zhuang"
}
9srxepss622mok65v05392jdlzz6p44
373559
373554
2026-09-11T11:10:36Z
Hakimi97
2668
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373559
json
application/json
{
"aa": "Afar",
"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": "Khasi Purba",
"aav-nic-pro": "Nicobar Purba",
"aav-pkl-pro": "Pnar-Khasi-Lyngngam Purba",
"aav-pro": "Austroasia Purba",
"aaw": "Solong",
"aax": "Mandobo Atas",
"aaz": "Amarasi",
"ab": "Abkhaz",
"aba": "Abé",
"abb": "Bankon",
"abc": "Ayta Ambala",
"abd": "Agta Camarines Norte",
"abe": "Abenaki",
"abf": "Abai Sungai",
"abg": "Abaga",
"abh": "Arab Tajik",
"abi": "Abidji",
"abj": "Aka-Bea",
"abl": "Abung",
"abm": "Abanyom",
"abn": "Abua",
"abo": "Abon",
"abp": "Ayta Abenlen",
"abq": "Abaza",
"abs": "Melayu Ambon",
"abt": "Ambulas",
"abu": "Abure",
"abv": "Arab Bahrani",
"abw": "Pal",
"abx": "Inabaknon",
"aby": "Aneme Wake",
"abz": "Abui",
"aca": "Achagua",
"acb": "Áncá",
"acd": "Gikyode",
"ace": "Aceh",
"ach": "Acholi",
"aci": "Aka-Cari",
"ack": "Aka-Kora",
"acl": "Akar-Bale",
"acm": "Arab Iraq",
"acn": "Achang",
"acp": "Acipa Timur",
"acr": "Achi",
"acs": "Acroá",
"acu": "Achuar",
"acv": "Achumawi",
"acw": "Arab Hijaz",
"acx": "Arab Oman",
"acy": "Arab Cyprus",
"acz": "Acheron",
"ada": "Adangme",
"adb": "Atauran",
"add": "Dzodinka",
"ade": "Adele",
"adf": "Arab Dhofar",
"adg": "Andegerebinha",
"adh": "Adhola",
"adi": "Adi",
"adj": "Adioukrou",
"adl": "Galo",
"adn": "Adang",
"ado": "Abu",
"adp": "Adap",
"adq": "Adangbe",
"adr": "Adonara",
"ads": "Bahasa Isyarat Adamorobe",
"adt": "Adnyamathanha",
"adu": "Aduge",
"adw": "Amondawa",
"ady": "Circassian Barat",
"adz": "Adzera",
"ae": "Avesta",
"aea": "Areba",
"aeb": "Arab Tunisia",
"aed": "Bahasa Isyarat Argentina",
"aee": "Pashayi Timur Laut",
"aek": "Haeke",
"ael": "Ambele",
"aem": "Arem",
"aen": "Bahasa Isyarat Armenia",
"aeq": "Aer",
"aer": "Arrernte Timur",
"aes": "Alsea",
"aeu": "Akeu",
"aew": "Ambakich",
"aey": "Amele",
"aez": "Aeka",
"af": "Afrikaans",
"afa-pro": "Afroasia Purba",
"afb": "Arab Teluk",
"afd": "Andai",
"afe": "Putukwam",
"afg": "Bahasa Isyarat Afghanistan",
"afh": "Afrihili",
"afi": "Akrukay",
"afk": "Nanubae",
"afn": "Defaka",
"afo": "Eloyi",
"afp": "Tapei",
"afs": "Kreol Afro-Seminole",
"aft": "Afitti",
"afu": "Awutu",
"afz": "Obokuitai",
"aga": "Aguano",
"agb": "Legbo",
"agc": "Agatu",
"agd": "Agarabi",
"age": "Angal",
"agf": "Arguni",
"agg": "Angor",
"agh": "Ngelima",
"agj": "Argobba",
"agk": "Agta Isarog",
"agl": "Fembe",
"agm": "Angaataha",
"agn": "Agutaynen",
"ago": "Tainae",
"agq": "Aghem",
"agr": "Aguaruna",
"ags": "Esimbi",
"agt": "Agta Cagayan Tengah",
"agu": "Aguacateco",
"agv": "Agta Remontado",
"agw": "Kahua",
"agx": "Aghul",
"agy": "Alta Selatan",
"agz": "Agta Gunung Iriga",
"aha": "Ahanta",
"ahb": "Axamb",
"ahg": "Qimant",
"ahh": "Aghu",
"ahi": "Tiagba",
"ahk": "Akha",
"ahl": "Igo",
"ahm": "Mobu",
"ahn": "Àhàn",
"aho": "Ahom",
"ahp": "Apro",
"ahr": "Ahirani",
"ahs": "Ashe",
"aht": "Ahtna",
"aia": "Arosi",
"aib": "Äynu",
"aic": "Ainbai",
"aid": "Alngith",
"aie": "Amara",
"aif": "Agi",
"aig": "Kreol Inggeris Antigua dan Barbuda",
"aih": "Ai-Cham",
"aii": "Neo-Aramia Assyria",
"aij": "Lishanid Noshan",
"aik": "Ake",
"ail": "Aimele",
"aim": "Aimol",
"ain": "Ainu",
"aio": "Aiton",
"aip": "Burumakok",
"air": "Airoran",
"ait": "Arikem",
"aiw": "Aari",
"aix": "Aighon",
"aiy": "Ali",
"aja": "Aja (Afrika Timur)",
"ajg": "Aja (Afrika Barat)",
"aji": "Ajië",
"ajn": "Andajin",
"ajp": "Arab Syam Selatan",
"ajs": "Bahasa Isyarat Yahudi Algeria",
"ajw": "Ajawa",
"ajz": "Karbi Amri",
"ak": "Akan",
"akb": "Batak Angkola",
"akc": "Mpur",
"akd": "Ukpet-Ehom",
"ake": "Akawaio",
"akf": "Akpa",
"akg": "Anakalangu",
"akh": "Angal Heneng",
"aki": "Aiome",
"akj": "Jeru",
"akk": "Akkadia",
"akl": "Aklanon",
"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": "Alabama",
"ala": "Alago",
"alc": "Kawésqar",
"ald": "Alladian",
"ale": "Aleut",
"alf": "Alege",
"alg-aga": "Agawam",
"alg-pro": "Algonquian Purba",
"alh": "Alawa",
"ali": "Amaimon",
"alj": "Alangan",
"alk": "Alak",
"all": "Allar",
"alm": "Amblong",
"alo": "Larike-Wakasihu",
"alp": "Alune",
"alq": "Algonquin",
"alr": "Alutor",
"alt": "Altai Selatan",
"alu": "'Are'are",
"alv-ama": "Amasi",
"alv-bgu": "Bainouk Gubeeher",
"alv-bua-pro": "Bua Purba",
"alv-cng-pro": "Cangin Purba",
"alv-edk-pro": "Edekiri Purba",
"alv-edo-pro": "Edoid Purba",
"alv-fli-pro": "Fali Purba",
"alv-gbe-pro": "Gbe Purba",
"alv-gng-pro": "Guang Purba",
"alv-gtm-pro": "Togo Tengah Purba",
"alv-gwa": "Gwara",
"alv-hei-pro": "Heiban Purba",
"alv-ido-pro": "Idomoid Purba",
"alv-igb-pro": "Igboid Purba",
"alv-kwa-pro": "Kwa Purba",
"alv-mum-pro": "Mumuye Purba",
"alv-nup-pro": "Nupoid Purba",
"alv-pro": "Atlantik-Congo Purba",
"alv-von-pro": "Volta-Niger Purba",
"alv-yor-pro": "Yoruba Purba",
"alv-yrd-pro": "Yoruboid Purba",
"alw": "Alaba",
"alx": "Amol",
"aly": "Alyawarr",
"alz": "Alur",
"am": "Amhara",
"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": "Amami Ōshima Selatan",
"amt": "Amto",
"amu": "Amuzgo Guerrero",
"amv": "Ambelau",
"amw": "Neo-Aramia Barat",
"amx": "Anmatyerre",
"amy": "Ami",
"amz": "Atampaya",
"an": "Aragon",
"ana": "Andaqui",
"anb": "Andoa",
"anc": "Ngas",
"and": "Ansus",
"ane": "Xârâcùù",
"anf": "Animere",
"ang": "Inggeris Kuno",
"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": "Alor",
"aom": "Ömie",
"aon": "Arapesh Bumbita",
"aor": "Aore",
"aos": "Taikat",
"aot": "Atong (India)",
"aou": "A'ou",
"aox": "Atorada",
"aoz": "Uab Meto",
"apa-pro": "Apache Purba",
"apb": "Sa'a",
"apc": "Arab Syam Utara",
"apd": "Arab Sudan",
"ape": "Bukiyip",
"apf": "Agta Pahanan",
"apg": "Ampanang",
"aph": "Athpare",
"api": "Apiaká",
"apj": "Jicarilla",
"apk": "Apache Dataran",
"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": "Apache Barat",
"apx": "Aputai",
"apy": "Apalaí",
"apz": "Safeyoka",
"aqc": "Archi",
"aqd": "Dogon Ampari",
"aqg": "Arigidi",
"aql-pro": "Algik Purba",
"aqm": "Atohwaim",
"aqn": "Alta Utara",
"aqp": "Atakapa",
"aqr": "Arhâ",
"aqt": "Angaité",
"aqz": "Akuntsu",
"ar": "Arab",
"arc": "Aramia",
"ard": "Arabana",
"are": "Arrernte Barat",
"arh": "Arhuaco",
"ari": "Arikara",
"arj": "Arapaso",
"ark": "Arikapú",
"arl": "Arabela",
"arn": "Mapudungun",
"aro": "Araona",
"arp": "Arapaho",
"arq": "Arab Algeria",
"arr": "Arara-Karo",
"ars": "Arab Najdi",
"art-adu": "Adûni",
"art-bel": "Kreol Belter",
"art-blk": "Bolak",
"art-bsp": "Bahasa Hitam",
"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": "Valyria Tinggi",
"aru": "Arua",
"arv": "Arbore",
"arw": "Lokono",
"arx": "Aruá",
"ary": "Arab Maghribi",
"arz": "Arab Mesir",
"as": "Assam",
"asa": "Pare",
"asb": "Assiniboine",
"asc": "Asmat Pesisir Casuarina",
"ase": "Bahasa Isyarat Amerika",
"asf": "Auslan",
"asg": "Cishingini",
"ash": "Abishira",
"asi": "Buruwai",
"asj": "Nsari",
"ask": "Ashkun",
"asl": "Asilulu",
"asn": "Asuriní Xingú",
"aso": "Dano",
"asp": "Bahasa Isyarat Algeria",
"asq": "Bahasa Isyarat Austria",
"asr": "Asuri",
"ass": "Ipulo",
"ast": "Asturia",
"asu": "Asurini Tocantins",
"asv": "Asoa",
"asw": "Bahasa Isyarat Orang Asli Australia",
"asx": "Muratayak",
"asy": "Asmat Yaosakor",
"asz": "As",
"ata": "Pele-Ata",
"atb": "Zaiwa",
"atc": "Atsahuaca",
"atd": "Manobo Ata",
"ate": "Atemble",
"atg": "Okpela",
"ath-nic": "Nicola",
"ath-pro": "Athabaska Purba",
"ati": "Attié",
"atj": "Atikamekw",
"atk": "Ati",
"atl": "Agta Gunung Iraya",
"atm": "Ata",
"ato": "Atong (Cameroon)",
"atp": "Atta Pudtol",
"atq": "Aralle-Tabulahan",
"atr": "Waimiri-Atroari",
"ats": "Gros Ventre",
"att": "Atta Pamplona",
"atu": "Reel",
"atv": "Altai Utara",
"atw": "Atsugewi",
"atx": "Arutani",
"aty": "Aneityum",
"atz": "Arta",
"aua": "Asumboa",
"aub": "Alugu",
"auc": "Huaorani",
"aud": "Anuta",
"auf-pro": "Arawa Purba",
"aug": "Aguna",
"auh": "Aushi",
"aui": "Anuki",
"auj": "Awjila",
"auk": "Heyo",
"aul": "Aulua",
"aum": "Asu",
"aun": "One Molmo",
"auo": "Auyokawa",
"aup": "Makayam",
"auq": "Anus",
"aur": "Aruek",
"aus-alu": "Alungul",
"aus-and": "Andjingith",
"aus-ang": "Angkula",
"aus-arn-pro": "Arnhem Purba",
"aus-bra": "Barranbinya",
"aus-brm": "Barunggam",
"aus-cww-pro": "New South Wales Tengah Purba",
"aus-dal-pro": "Daly Purba",
"aus-guw": "Guwar",
"aus-lsw": "Little Swanport",
"aus-mbi": "Mbiywom",
"aus-ngk": "Ngkoth",
"aus-nyu-pro": "Nyulnyulan Purba",
"aus-pam-pro": "Pama-Nyunga Purba",
"aus-tul": "Tulua",
"aus-uwi": "Uwinymil",
"aus-wdj-pro": "Iwaidjan Purba",
"aus-won": "Wong-gie",
"aus-wul": "Wulguru",
"aus-ynk": "Yangkaal",
"aut": "Austral",
"auu": "Auye",
"auw": "Awyi",
"aux": "Aurá",
"auy": "Auyana",
"auz": "Arab Uzbeki",
"av": "Avar",
"avb": "Avau",
"avd": "Alviri-Vidari",
"avi": "Avikam",
"avk": "Kotava",
"avm": "Angkamuthi",
"avn": "Avatime",
"avs": "Aushiri",
"avt": "Au",
"avu": "Avokaya",
"avv": "Avá-Canoeiro",
"awa": "Awadhi",
"awb": "Awa (New Guinea)",
"awc": "Cicipu",
"awd-ama": "Amarizana",
"awd-amc-pro": "Amuesha-Chamicuro Purba",
"awd-ana": "Anauyá",
"awd-apo": "Apolista",
"awd-cab": "Cabre",
"awd-gnu": "Guinau",
"awd-kar": "Cariay",
"awd-kaw": "Kawishana",
"awd-kmp-pro": "Kampa Purba",
"awd-kus": "Kustenau",
"awd-man": "Manao",
"awd-mar": "Marawan",
"awd-mpr": "Maipure",
"awd-mrt": "Mariaté",
"awd-nwk-pro": "Nawiki Purba",
"awd-pai": "Paikoneka",
"awd-pas": "Pasé",
"awd-pro": "Arawak Purba",
"awd-prw-pro": "Paresi-Waura Purba",
"awd-she": "Shebayo",
"awd-taa-pro": "Ta-Arawak Purba",
"awd-wai": "Wainumá",
"awd-war": "Warekena Kuno",
"awd-yum": "Yumana",
"awe": "Awetí",
"awg": "Anguthimri",
"awh": "Awbono",
"awi": "Aekyom",
"awk": "Awabakal",
"awm": "Arawum",
"awn": "Awngi",
"awo": "Awak",
"awr": "Awera",
"aws": "Awyu Selatan",
"awt": "Araweté",
"awu": "Awyu Tengah",
"awv": "Awyu Jair",
"aww": "Awun",
"awx": "Awara",
"awy": "Awyu Edera",
"axb": "Abipón",
"axe": "Ayerrerenge",
"axg": "Arára (Mato Grosso)",
"axk": "Aka (Afrika Tengah)",
"axl": "Aranda Selatan Bawah",
"axm": "Armenia Pertengahan",
"axx": "Xârâgurè",
"ay": "Aymara",
"aya": "Awar",
"ayb": "Ayizo",
"ayd": "Ayabadhu",
"aye": "Ayere",
"ayg": "Nyanga (Togo)",
"ayi": "Leyigha",
"ayk": "Akuku",
"ayl": "Arab Libya",
"ayn": "Arab Yaman",
"ayo": "Ayoreo",
"ayp": "Arab Mesopotamia Utara",
"ayq": "Ayi",
"ays": "Ayta Sorsogon",
"ayt": "Ayta Bataan",
"ayu": "Ayu",
"ayz": "Maybrat",
"az": "Azerbaijan",
"aza": "Azha",
"azc-caz": "Cazcan",
"azc-cup-pro": "Cupan Purba",
"azc-ktn": "Kitanemuk",
"azc-nah-pro": "Nahua Purba",
"azc-nic": "Nicoleño",
"azc-num-pro": "Numik Purba",
"azc-pro": "Uto-Aztek Purba",
"azc-tak-pro": "Takik Purba",
"azc-tat": "Tataviam",
"azd": "Nahuatl Durango Timur",
"azg": "Amuzgo San Pedro Amuzgos",
"azm": "Amuzgo Ipalapa",
"azn": "Nahuatl Durango Barat",
"azo": "Awing",
"azt": "Atta Faire",
"azz": "Nahuatl Puebla Tanah Tinggi",
"ba": "Bashkir",
"baa": "Babatana",
"bab": "Bainouk-Gunyuño",
"bac": "Badui",
"bae": "Baré",
"baf": "Nubaca",
"bag": "Tuki",
"bah": "Kreol Bahamas",
"baj": "Barakai",
"bal": "Baluchi",
"ban": "Bali",
"bao": "Waimaha",
"bap": "Bantawa",
"bar": "Bavarian",
"bas": "Basaa",
"bau": "Badanchi",
"bav": "Babungo",
"baw": "Bambili-Bambui",
"bax": "Bamum",
"bay": "Batuley",
"bba": "Baatonum",
"bbb": "Barai",
"bbc": "Batak Toba",
"bbd": "Bau",
"bbe": "Bangba",
"bbf": "Baibai",
"bbg": "Barama",
"bbh": "Bugan",
"bbi": "Barombi",
"bbj": "Ghomala'",
"bbk": "Babanki",
"bbl": "Bats",
"bbm": "Babango",
"bbn": "Uneapa",
"bbo": "Konabéré",
"bbp": "Banda Tengah Barat",
"bbq": "Bamali",
"bbr": "Girawa",
"bbs": "Bakpinka",
"bbt": "Mburku",
"bbu": "Bakulung",
"bbv": "Karnai",
"bbw": "Baba",
"bbx": "Bubia",
"bby": "Befang",
"bca": "Bai Tengah",
"bcb": "Bainouk-Samik",
"bcd": "Babar Utara",
"bce": "Bamenyam",
"bcf": "Bamu",
"bcg": "Baga Pokur",
"bch": "Bariai",
"bci": "Baoule",
"bcj": "Bardi",
"bck": "Bunaba",
"bcl": "Bikol Tengah",
"bcm": "Banoni",
"bcn": "Bibaali",
"bco": "Kaluli",
"bcp": "Baali",
"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",
"bdk": "Budukh",
"bdl": "Bajau Indonesia",
"bdm": "Buduma",
"bdn": "Baldemu",
"bdo": "Morom",
"bdp": "Bende",
"bdq": "Bahnar",
"bdr": "Bajau Sama",
"bds": "Burunge",
"bdt": "Bokoto",
"bdu": "Oroko",
"bdv": "Bodo Parja",
"bdw": "Baham",
"bdx": "Budong-Budong",
"bdy": "Bandjalang",
"bdz": "Badeshi",
"be": "Belarus",
"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": "Berber Purba",
"ber-zuw": "Zuwara",
"bes": "Besme",
"bet": "Guiberoua Bété",
"beu": "Blagar",
"bev": "Daloa Bété",
"bew": "Betawi",
"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": "Badaga",
"bfr": "Bazigar",
"bfs": "Bai Selatan",
"bft": "Balti",
"bfu": "Gahri",
"bfw": "Bondo",
"bfx": "Bantayanon",
"bfy": "Bagheli",
"bfz": "Mahasu Pahari",
"bg": "Bulgaria",
"bga": "Gwamhi-Wuri",
"bgb": "Bobongko",
"bgc": "Haryanvi",
"bgd": "Rathwi Bareli",
"bge": "Bauria",
"bgf": "Bangandu",
"bgg": "Bugun",
"bgi": "Giangan",
"bgj": "Bangolan",
"bgk": "Bit",
"bgl": "Bo",
"bgo": "Baga Koga",
"bgq": "Bagri",
"bgr": "Chin Bawm",
"bgs": "Tagabawa",
"bgt": "Bughotu",
"bgu": "Mbongno",
"bgv": "Warkay-Bipim",
"bgw": "Bhatri",
"bgx": "Balkan Gagauz Turkish",
"bgy": "Benggoi",
"bgz": "Banggai",
"bh": "Bihari",
"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": "Neo-Aram Bohtan",
"bho": "Bhojpur",
"bhp": "Bima",
"bhq": "Tukang Besi Selatan",
"bhs": "Buwal",
"bht": "Bhattiyali",
"bhu": "Bhunjia",
"bhv": "Bahau",
"bhw": "Biak",
"bhx": "Bhalay",
"bhy": "Bhele",
"bhz": "Bada",
"bi": "Bislama",
"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": "Birifor Selatan",
"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": "Banjar",
"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": "Binukid",
"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": "Bolongan",
"blk": "Karen Pa'o",
"bll": "Biloxi",
"blm": "Beli",
"bln": "Bicolano Catanduanes Selatan",
"blo": "Anii",
"blp": "Blablanga",
"blq": "Baluan-Pam",
"blr": "Blang",
"bls": "Balaesang",
"blt": "Tai Dam",
"blv": "Kibala",
"blw": "Balangao",
"blx": "Mag-Indi Ayta",
"bly": "Notre",
"blz": "Balantak",
"bm": "Bambara",
"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": "Benggali",
"bna": "Bonerate",
"bnb": "Bookan",
"bnd": "Banda",
"bne": "Bintauna",
"bnf": "Masiwang",
"bng": "Benga",
"bni": "Bangi",
"bnj": "Tawbuid Timur",
"bnk": "Bierebo",
"bnl": "Boon",
"bnm": "Batanga",
"bnn": "Bunun",
"bno": "Asi",
"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 (Afrika Selatan)",
"bnt-mpi": "Mpiin",
"bnt-mpu": "Mpuono",
"bnt-ngu-pro": "Nguni Purba",
"bnt-phu": "Phuthi",
"bnt-pro": "Bantu Purba",
"bnt-sab-pro": "Sabaki Purba",
"bnt-sbo": "Boma Selatan",
"bnt-sts-pro": "Sotho-Tswana Purba",
"bnu": "Bentong",
"bnv": "Beneraf",
"bnw": "Bisis",
"bnx": "Bangubangu",
"bny": "Vaie",
"bnz": "Beezen",
"bo": "Tibet",
"boa": "Bora",
"bob": "Aweer",
"boe": "Mundabli",
"bof": "Bolon",
"bog": "Bamako Sign Language",
"boh": "Boma Utara",
"boi": "Barbareño",
"boj": "Anjam",
"bok": "Bonjo",
"bol": "Bole",
"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": "Dakaka",
"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": "Breton",
"bra": "Braj",
"brb": "Lave",
"brc": "Belanda Kreol Berbice",
"brd": "Baraamu",
"brf": "Bera",
"brg": "Baure",
"brh": "Brahui",
"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": "Bru Timur",
"brv": "Bru Barat",
"brw": "Bellari",
"brx": "Bodo (India)",
"bry": "Burui",
"brz": "Bilbil",
"bsa": "Abinomn",
"bsb": "Bisaya Brunei",
"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": "Bisaya Sabah",
"bta": "Bata",
"btc": "Bati (Cameroon)",
"btd": "Batak Dairi",
"bte": "Gamo-Ningi",
"btf": "Birgit",
"btg": "Gagnoa Bété",
"bth": "Bidayuh Biatah",
"bti": "Burate",
"btj": "Melayu Bacan",
"btk-pro": "Batak Purba",
"btm": "Batak Mandailing",
"btn": "Ratagnon",
"bto": "Bicolano Iriga",
"btp": "Budibud",
"btq": "Batek",
"btr": "Baetora",
"bts": "Batak Simalungun",
"btt": "Bete-Bendi",
"btu": "Batu",
"btv": "Bateri",
"btw": "Butuanon",
"btx": "Batak Karo",
"bty": "Bobot",
"btz": "Batak Alas-Kluet",
"bua": "Buryat",
"bub": "Bua",
"bud": "Ntcham",
"bue": "Beothuk",
"buf": "Bushoong",
"bug": "Bugis",
"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": "Melayu Berau",
"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": "Melayu Bukit",
"bvv": "Baniva",
"bvw": "Boga",
"bvx": "Babole",
"bvy": "Baybayanon",
"bvz": "Bauzi",
"bwa": "Bwatoo",
"bwb": "Namosi-Naitasiri-Serua",
"bwc": "Bwile",
"bwd": "Bwaidoka",
"bwe": "Karen Bwe",
"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": "Bobo Selatan",
"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": "Batak Palawan",
"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": "Bisu",
"bzj": "Kreol Belize",
"bzk": "Kreol Nicaragua",
"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": "Catalan",
"caa": "Ch'orti'",
"cab": "Garifuna",
"cac": "Chuj",
"cad": "Caddo",
"cae": "Laalaa",
"caf": "Carrier Selatan",
"cag": "Nivaclé",
"cah": "Cahuarano",
"caj": "Chané",
"cak": "Kaqchikel",
"cal": "Carolinian",
"cam": "Cemuhî",
"can": "Chambri",
"cao": "Chácobo",
"cap": "Chipaya",
"caq": "Car Nicobarese",
"car": "Kari'na",
"cas": "Tsimané",
"cau-abz-pro": "Abkhaz-Abaza Purba",
"cau-and-pro": "Andi Purba",
"cau-ava-pro": "Avar-Andi Purba",
"cau-cir-pro": "Circassia Purba",
"cau-drg-pro": "Dargwa Purba",
"cau-lzg-pro": "Lezghi Purba",
"cau-nec-pro": "Kaukasia Timur Laut Purba",
"cau-nkh-pro": "Nakh Purba",
"cau-nwc-pro": "Kaukasia Barat Laut Purba",
"cau-tsz-pro": "Tsez Purba",
"cav": "Cavineña",
"caw": "Callawalla",
"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": "Chibchan Purba",
"cbb": "Cabiyarí",
"cbc": "Carapana",
"cbd": "Carijona",
"cbg": "Chimila",
"cbi": "Chachi",
"cbj": "Ede Cabe",
"cbk": "Chavacano",
"cbl": "Chin Bualkhaw",
"cbn": "Nyah Kur",
"cbo": "Izora",
"cbq": "Shuba",
"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": "Melayu Cheti",
"cco": "Comaltepec Chinantec",
"ccp": "Chakma",
"ccr": "Cacaopera",
"ccs-gzn-pro": "Georgia-Zan Purba",
"ccs-pro": "Kartvelia Purba",
"cda": "Choni",
"cdc-cbm-pro": "Chadik Tengah Purba",
"cdc-mas-pro": "Masa Purba",
"cdc-pro": "Chadik Purba",
"cdd-pro": "Caddoan Purba",
"cde": "Chenchu",
"cdf": "Chiru",
"cdh": "Chambeali",
"cdi": "Chodri",
"cdj": "Churahi",
"cdm": "Chepang",
"cdn": "Chaudangsi",
"cdo": "Min Timur",
"cdr": "Cinda-Regi-Tiyal",
"cds": "Bahasa Isyarat Chad",
"cdy": "Chadong",
"cdz": "Koda",
"ce": "Chechen",
"cea": "Lower Chehalis",
"ceb": "Cebuano",
"ceg": "Chamacoco",
"cel-bry-pro": "Britonik Purba",
"cel-gal": "Gallaecia",
"cel-gau": "Gaul",
"cel-pro": "Keltik Purba",
"cen": "Cen",
"cet": "Centúúm",
"cfa": "Dijim-Bwilim",
"cfd": "Cara",
"cfg": "Como Karim",
"cfm": "Chin Falam",
"cga": "Changriwa",
"cgc": "Kagayanen",
"cgg": "Rukiga",
"cgk": "Chocangaca",
"ch": "Chamorro",
"chb": "Chibcha",
"chc": "Catawba",
"chd": "Highland Oaxaca Chontal",
"chf": "Tabasco Chontal",
"chg": "Chagatai",
"chh": "Chinook",
"chi-pro": "Chimakuan Purba",
"chj": "Ojitlán Chinantec",
"chk": "Chuuk",
"chl": "Cahuilla",
"chm-pro": "Mari Purba",
"chn": "Chinook Jargon",
"cho": "Choctaw",
"chp": "Chipewyan",
"chq": "Quiotepec Chinantec",
"chr": "Cherokee",
"cht": "Cholón",
"chw": "Chuabo",
"chx": "Chantyal",
"chy": "Cheyenne",
"chz": "Ozumacín Chinantec",
"cia": "Cia-Cia",
"cib": "Ci Gbe",
"cic": "Chickasaw",
"cid": "Chimariko",
"cie": "Cineni",
"cih": "Chinali",
"cik": "Chitkuli Kinnauri",
"cim": "Cimbrian",
"cin": "Cinta Larga",
"cip": "Chiapanec",
"cir": "Tiri",
"ciy": "Chaima",
"cja": "Cam Barat",
"cje": "Chru",
"cjh": "Upper Chehalis",
"cji": "Chamalal",
"cjk": "Chokwe",
"cjm": "Cam Timur",
"cjn": "Chenapian",
"cjo": "Ashéninka Pajonal",
"cjp": "Cabécar",
"cjs": "Shor",
"cjv": "Chuave",
"cjy": "Jin",
"ckb": "Kurdi Tengah",
"ckh": "Chak",
"ckl": "Cibak",
"ckn": "Chin Kaang",
"cko": "Anufo",
"ckq": "Kajakse",
"ckr": "Kairak",
"cks": "Tayo",
"ckt": "Chukchi",
"cku": "Koasati",
"ckv": "Kavalan",
"ckx": "Caka",
"cky": "Cakfem-Mushere",
"ckz": "Cakchiquel-Quiché Mixed Language",
"cla": "Ron",
"clc": "Chilcotin",
"cld": "Chaldean Neo-Aramaic",
"cle": "Lealao Chinantec",
"clh": "Chilisso",
"cli": "Chakali",
"clj": "Chin Laitu",
"clk": "Idu",
"cll": "Chala",
"clm": "Klallam",
"clo": "Lowland Oaxaca Chontal",
"clt": "Chin Laitu",
"clu": "Caluyanun",
"clw": "Chulym",
"cly": "Chatino Tanah Tinggi Timur",
"cma": "Mạ",
"cmc-pro": "Chamik Purba",
"cme": "Cerma",
"cmg": "Mongol Klasik",
"cmi": "Emberá-Chamí",
"cml": "Campalagian",
"cmm": "Michigamea",
"cmn": "Mandarin",
"cmo": "Mnong Tengah",
"cmr": "Chin Mro",
"cms": "Messapic",
"cmt": "Camtho",
"cna": "Changthang",
"cnb": "Chin Chinbon",
"cnc": "Cốông",
"cng": "Qiang Utara",
"cnh": "Lai",
"cni": "Asháninka",
"cnk": "Chin Khumi",
"cnl": "Lalana Chinantec",
"cno": "Con",
"cnp": "Pinghua Utara",
"cns": "Asmat Tengah",
"cnt": "Tepetotutla Chinantec",
"cnu": "Chenoua",
"cnw": "Chin Ngawn",
"cnx": "Cornwall Pertengahan",
"co": "Corsica",
"coa": "Melayu Cocos",
"cob": "Chicomuceltec",
"coc": "Cocopa",
"cod": "Cocama",
"coe": "Koreguaje",
"cof": "Tsafiki",
"cog": "Chong",
"coh": "Chichonyi-Chidzihana-Chikauma",
"coj": "Cochimi",
"cok": "Santa Teresa Cora",
"col": "Columbia-Wenatchi",
"com": "Comanche",
"con": "Cofán",
"coo": "Comox",
"cop": "Qibti",
"coq": "Coquille",
"cot": "Caquinte",
"cou": "Wamey",
"cov": "Cao Miao",
"cow": "Cowlitz",
"cox": "Nanti",
"coy": "Coyaima",
"coz": "Chochotec",
"cpa": "Palantla Chinantec",
"cpb": "Ucayali-Yurúa Ashéninka",
"cpc": "Ajyíninka Apurucayali",
"cpg": "Yunani Cappadocia",
"cpi": "Inggeris Pijin Cina",
"cpn": "Cherepon",
"cpo": "Kpee",
"cps": "Capiznon",
"cpu": "Pichis Ashéninka",
"cpx": "Min Puxian",
"cpy": "Ashéninka Ucayali Selatan",
"cqd": "Chuanqiandian Cluster Miao",
"cr": "Cree",
"cra": "Chara",
"crb": "Kalinago",
"crc": "Lonwolwol",
"crd": "Coeur d'Alene",
"crf": "Caramanta",
"crg": "Michif",
"crh": "Tatar Crimea",
"cri": "Sãotomense",
"crj": "Cree Timur Selatan",
"crk": "Plains Cree",
"crl": "Cree Timur Utara",
"crm": "Cree Moose",
"crn": "Cora",
"cro": "Crow",
"crp-bip": "Pijin Basque-Iceland",
"crp-cpr": "Pijin Rusia-China",
"crp-gep": "Pijin Greenland Barat",
"crp-kia": "Pijin Jerman Kiautschou",
"crp-mar": "Bahasa Roh Maroon",
"crp-mpp": "Pijin Portugis Macau",
"crp-rsn": "Russenorsk",
"crp-slb": "Inggeris Solombala",
"crp-spp": "Pijin Ladang Samoa",
"crp-tpr": "Pijin Rusia Taimyr",
"crq": "Iyo'wujwa Chorote",
"crr": "Algonquin Carolina",
"crs": "Kreol Seychelles",
"crt": "Iyojwa'ja Chorote",
"crv": "Chaura",
"crw": "Chrau",
"crx": "Carrier",
"cry": "Cori",
"crz": "Cruzeño",
"cs": "Czech",
"csa": "Chiltepec Chinantec",
"csb": "Kashubian",
"csc": "Catalan Sign Language",
"csd": "Chiangmai Sign Language",
"cse": "Czech Sign Language",
"csf": "Cuban Sign Language",
"csg": "Chilean Sign Language",
"csh": "Chin Asho",
"csi": "Miwok Pesisir",
"csj": "Chin Songlai",
"csk": "Jola-Kasa",
"csl": "Chinese Sign Language",
"csm": "Miwok Sierra Tengah",
"csn": "Colombian Sign Language",
"cso": "Sochiapam Chinantec",
"csp": "Pinghua Selatan",
"csq": "Bahasa Isyarat Croatia",
"csr": "Costa Rican Sign Language",
"css": "Ohlone Selatan",
"cst": "Ohlone Utara",
"csu-bba-pro": "Bongo-Bagirmi Purba",
"csu-maa-pro": "Mangbetu Purba",
"csu-pro": "Sudan Tengah Purba",
"csu-sar-pro": "Sara Purba",
"csv": "Chin Sumtu",
"csw": "Swampy Cree",
"csy": "Chin Siyin",
"csz": "Coos",
"cta": "Tataltepec Chatino",
"ctc": "Chetco-Tolowa",
"ctd": "Chin Tedim",
"cte": "Tepinapa Chinantec",
"ctg": "Chittagong",
"cth": "Chin Thaiphum",
"ctl": "Tlacoatzintepec Chinantec",
"ctm": "Chitimacha",
"ctn": "Chhintange",
"cto": "Emberá-Catío",
"ctp": "Chatino Tanah Tinggi Barat",
"cts": "Bicolano Catanduanes Utara",
"ctt": "Wayanad Chetti",
"ctu": "Chol",
"ctz": "Zacatepec Chatino",
"cu": "Slavonic Gereja Kuno",
"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": "Cun",
"cur": "Chhulung",
"cus-ash": "Ashraaf",
"cus-hec-pro": "Cushitic Timur Tanah Tinggi Purba",
"cus-pro": "Cushitic Purba",
"cus-som-pro": "Somaloid Purba",
"cus-sou-pro": "Cushitic Selatan Purba",
"cut": "Teutila Cuicatec",
"cuu": "Tai Ya",
"cuv": "Cuvok",
"cuw": "Chukwa",
"cux": "Tepeuxila Cuicatec",
"cuy": "Cuitlatec",
"cv": "Chuvash",
"cvg": "Chug",
"cvn": "Valle Nacional Chinantec",
"cwa": "Kabwa",
"cwb": "Maindo",
"cwd": "Woods Cree",
"cwe": "Kwere",
"cwg": "Chewong",
"cwt": "Kuwaataay",
"cy": "Wales",
"cya": "Nopala Chatino",
"cyb": "Cayubaba",
"cyo": "Cuyunon",
"czh": "Huizhou",
"czk": "Knaanic",
"czn": "Zenzontepec Chatino",
"czo": "Min Tengah",
"czt": "Chin Zotung",
"da": "Denmark",
"daa": "Dangaléat",
"dac": "Dambi",
"dad": "Marik",
"dae": "Duupa",
"dag": "Dagbani",
"dah": "Gwahatike",
"dai": "Day",
"daj": "Dar Fur Daju",
"dak": "Dakota",
"dal": "Dahalo",
"dam": "Damakawa",
"dao": "Chin Daai",
"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": "Idahan",
"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": "Negerhollands",
"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": "Jerman",
"dec": "Dagik",
"ded": "Dedua",
"dee": "Dewoin",
"def": "Dezfuli",
"deg": "Degema",
"deh": "Dehwari",
"dei": "Demisa",
"dek": "Dek",
"dem": "Dem",
"dep": "Pidgin Delaware",
"der": "Deori",
"des": "Desano",
"dev": "Domung",
"dez": "Dengese",
"dga": "Dagaare Selatan",
"dgb": "Bunoge",
"dgc": "Agta Casiguran Dumagat",
"dgd": "Dagaari Dioula",
"dge": "Degenan",
"dgg": "Doga",
"dgh": "Dghwede",
"dgi": "Dagara Utara",
"dgk": "Dagba",
"dgn": "Dagoman",
"dgo": "Hindi Dogri",
"dgr": "Dogrib",
"dgs": "Dogoso",
"dgt": "Ntra'ngith",
"dgw": "Daungwurrung",
"dgx": "Doghoro",
"dgz": "Daga",
"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": "Dinka Tengah Selatan",
"dic": "Lakota Dida",
"did": "Didinga",
"dif": "Dieri",
"dig": "Digo",
"dii": "Dimbong",
"dij": "Dai",
"dik": "Dinka Barat Daya",
"dil": "Dilling",
"dim": "Dime",
"din": "Dinka",
"dio": "Dibo",
"dip": "Dinka Timur Laut",
"dir": "Dirim",
"dis": "Dimasa",
"diu": "Gciriku",
"diw": "Dinka Barat Laut",
"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": "Dinka Tenggara",
"dkx": "Mazagway",
"dlg": "Dolgan",
"dlk": "Dahalik",
"dlm": "Dalmatian",
"dln": "Darlong",
"dma": "Duma",
"dmb": "Mombo Dogon",
"dmc": "Gavak",
"dmd": "Madhi Madhi",
"dme": "Dugwor",
"dmf": "Medefaidrin",
"dmg": "Sungai",
"dmk": "Domaaki",
"dml": "Dameli",
"dmm": "Dama (Nigeria)",
"dmn-dam": "Dama (Sierra Leone)",
"dmn-mdw-pro": "Mande Barat Purba",
"dmn-pro": "Mande Purba",
"dmo": "Kemezung",
"dmr": "Damar Timur",
"dms": "Dampelas",
"dmu": "Dubu",
"dmv": "Dumpas",
"dmw": "Mudburra",
"dmx": "Dema",
"dmy": "Demta",
"dna": "Upper Grand Valley Dani",
"dnd": "Daonda",
"dne": "Ndendeule",
"dng": "Dungan",
"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": "Dani Barat",
"dny": "Dení",
"doa": "Dom",
"dob": "Dobu",
"doc": "Kam Utara",
"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": "Dravidia Tengah Purba",
"dra-mkn": "Kannada Pertengahan",
"dra-nor-pro": "Dravidia Utara Purba",
"dra-okn": "Kannada Kuno",
"dra-ote": "Telugu Kuno",
"dra-pro": "Dravidia Purba",
"dra-sdo-pro": "Dravidia Selatan I Purba",
"dra-sdt-pro": "Dravidia Selatan II Purba",
"dra-sou-pro": "Dravidia Selatan Purba",
"drb": "Dair",
"drc": "Minderico",
"drd": "Darmiya",
"drg": "Rungus",
"dri": "Lela",
"drl": "Baagandji",
"drn": "Damar Barat",
"dro": "Melanau Daro-Matu",
"drq": "Dura",
"drs": "Gedeo",
"dru": "Rukai",
"dru-pro": "Rukai Purba",
"dry": "Darai",
"dsb": "Lower Sorbian",
"dse": "Dutch Sign Language",
"dsh": "Daasanach",
"dsi": "Disa",
"dsl": "Danish Sign Language",
"dsn": "Dusner",
"dso": "Desiya",
"dsq": "Tadaksahak",
"dta": "Daur",
"dtb": "Kadazan Labuk-Kinabatangan",
"dtd": "Ditidaht",
"dth": "Adithinngithigh",
"dti": "Ana Tinga Dogon",
"dtk": "Tene Kan Dogon",
"dtm": "Tomo Kan Dogon",
"dto": "Tommo So",
"dtp": "Kadazandusun",
"dtr": "Lotud",
"dts": "Toro So Dogon",
"dtt": "Toro Tegu Dogon",
"dtu": "Tebul Ure Dogon",
"dty": "Doteli",
"dua": "Duala",
"dub": "Dubli",
"duc": "Duna",
"due": "Agta Umiray Dumaget",
"duf": "Dumbea",
"dug": "Chiduruma",
"duh": "Dungra Bhil",
"dui": "Dumun",
"duk": "Uyajitaya",
"dul": "Agta Pulau Alabat",
"dum": "Belanda Pertengahan",
"dun": "Dusun Deyah",
"duo": "Agta Dupaningan",
"dup": "Duano",
"duq": "Dusun Malang",
"dur": "Dii",
"dus": "Dumi",
"duu": "Drung",
"duv": "Duvle",
"duw": "Dusun Witu",
"dux": "Duun",
"duy": "Agta Dicamay",
"duz": "Duli",
"dv": "Dhivehi",
"dva": "Duau",
"dwa": "Diri",
"dwr": "Dawro",
"dwu": "Dhuwal",
"dww": "Dawawa",
"dwy": "Dhuwaya",
"dwz": "Dewas Rai",
"dya": "Dyan",
"dyb": "Dyaberdyaber",
"dyd": "Dyugun",
"dyg": "Agta Villa Viciosa",
"dyi": "Djimini",
"dym": "Yanda Dogon",
"dyn": "Dyangadi",
"dyo": "Jola-Fonyi",
"dyu": "Dyula",
"dyy": "Dyaabugay",
"dz": "Dzongkha",
"dza": "Tunzu",
"dzg": "Dazaga",
"dzl": "Dzala",
"dzn": "Dzando",
"ebg": "Ebughu",
"ebk": "Bontoc Timur",
"ebr": "Ebrié",
"ebu": "Embu",
"ecr": "Eteocretan",
"ecs": "Bahasa Isyarat Ecuador",
"ecy": "Eteocypriot",
"ee": "Ewe",
"eee": "E",
"efa": "Efai",
"efe": "Efe",
"efi": "Efik",
"ega": "Ega",
"egl": "Emilian",
"ego": "Eggon",
"egx-dem": "Mesir Demotik",
"egy": "Mesir Purba",
"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": "Kayah Timur",
"el": "Greek",
"ele": "Elepi",
"elh": "El Hugeirat",
"eli": "Nding",
"elk": "Elkei",
"elm": "Eleme",
"elo": "El Molo",
"elu": "Elu",
"elx": "Elam",
"ema": "Emai",
"emb": "Embaloh",
"eme": "Emerillon",
"emg": "Meohang Timur",
"emi": "Mussau-Emira",
"emk": "Maninkakan Timur",
"emm": "Mamulique",
"emn": "Eman",
"emp": "Emberá Utara",
"ems": "Alutiiq",
"emu": "Muria Timur",
"emw": "Emplawas",
"emx": "Erromintxela",
"emy": "Maya Epigrafi",
"en": "Inggeris",
"ena": "Apali",
"enb": "Markweeta",
"enc": "En",
"end": "Ende",
"enf": "Enets Hutan",
"enh": "Enets Tundra",
"enl": "Enlhet",
"enm": "Inggeris Pertengahan",
"enn": "Engenni",
"eno": "Enggano",
"enq": "Enga",
"enr": "Emem",
"enu": "Enu",
"env": "Enwan",
"enw": "Enwang",
"enx": "Enxet",
"eo": "Esperanto",
"eot": "Eotile",
"epi": "Epie",
"era": "Eravallan",
"erg": "Sie",
"erh": "Eruwa",
"eri": "Ogea",
"erk": "Efate Selatan",
"ero-gsz": "Geshiza",
"ero-nya": "Nyagrong Minyag",
"ero-tau": "Stau",
"err": "Erre",
"ers": "Ersu",
"ert": "Eritai",
"erw": "Erokwanas",
"es": "Sepanyol",
"ese": "Ese Ejja",
"esh": "Eshtehardi",
"esl": "Bahasa Isyarat Mesir",
"esm": "Esuma",
"esn": "Bahasa Isyarat El Salvador",
"eso": "Bahasa Isyarat Estonia",
"esq": "Esselen",
"ess": "Yupik Siberia Tengah",
"esu": "Yup'ik",
"esx-esk-pro": "Eskimo Purba",
"esx-ink": "Inuktun",
"esx-inq": "Inuinnaqtun",
"esx-inu-pro": "Inuit Purba",
"esx-pro": "Eskimo-Aleut Purba",
"esx-tut": "Tunumiisut",
"esy": "Eskayan",
"et": "Estonia",
"etb": "Etebi",
"etc": "Etchemin",
"eth": "Bahasa Isyarat Habsyah",
"etn": "Eton (Vanuatu)",
"eto": "Eton (Cameroon)",
"etr": "Edolo",
"ets": "Yekhee",
"ett": "Etruria",
"etu": "Ejagham",
"etx": "Eten",
"etz": "Semimi",
"eu": "Basque",
"euq-pro": "Basque Purba",
"eve": "Even",
"evh": "Uvbie",
"evn": "Evenki",
"ewo": "Ewondo",
"ext": "Extremaduran",
"eya": "Eyak",
"eyo": "Keiyo",
"eza": "Ezaa",
"eze": "Uzekwe",
"fa": "Parsi",
"faa": "Fasu",
"fab": "Annobon",
"fad": "Wagi",
"faf": "Fagani",
"fag": "Finongan",
"fah": "Fali Baissa",
"fai": "Faiwol",
"faj": "Kursav",
"fak": "Fang (Beboid)",
"fal": "Fali Selatan",
"fam": "Fam",
"fan": "Fang (Bantu)",
"fap": "Palor",
"far": "Fataleka",
"fau": "Fayu",
"fax": "Fala",
"fay": "Fars Barat Daya",
"faz": "Fars Barat Laut",
"fbl": "Bikol Miraya Barat",
"fcs": "Bahasa Isyarat Quebec",
"fer": "Feroge",
"ff": "Fula",
"ffi": "Foia Foia",
"fgr": "Fongoro",
"fi": "Finland",
"fia": "Nobiin",
"fie": "Fyer",
"fif": "Faifi",
"fip": "Fipa",
"fir": "Firan",
"fit": "Meänkieli",
"fiw": "Fiwaga",
"fj": "Fiji",
"fkk": "Kirya-Konzel",
"fkv": "Kven",
"fla": "Salish Montana",
"flh": "Foau",
"fli": "Fali",
"fll": "Fali Utara",
"fln": "Pulau Flinders",
"flr": "Fuliiru",
"fly": "Tsotsitaal",
"fmp": "Fe'fe'",
"fmu": "Muria Barat Jauh",
"fng": "Fanagalo",
"fni": "Fania",
"fo": "Faroe",
"fod": "Foodo",
"foi": "Foi",
"fom": "Foma",
"fon": "Fon",
"for": "Fore",
"fos": "Siraya",
"fpe": "Pichinglis",
"fqs": "Fas",
"fr": "Perancis",
"frd": "Fordata",
"frm": "Perancis Pertengahan",
"fro": "Perancis Kuno",
"frp": "Franco-Provençal",
"frq": "Forak",
"frr": "Frisia Utara",
"frt": "Fortsenal",
"fse": "Bahasa Isyarat Finland",
"fsl": "Bahasa Isyarat Perancis",
"fss": "Bahasa Isyarat Finland-Sweden",
"fud": "Futuna Timur",
"fuj": "Ko",
"fum": "Fum",
"fun": "Fulniô",
"fur": "Friulian",
"fut": "Futuna-Aniwa",
"fuu": "Furu",
"fuy": "Fuyug",
"fvr": "Fur",
"fwa": "Fwâi",
"fwe": "Fwe",
"fy": "Frisia Barat",
"ga": "Ireland",
"gba-pro": "Gbaya Purba",
"gd": "Gaelik Scotland",
"gem-pro": "Jermanik Purba",
"gl": "Galicia",
"gme-bur": "Burgundia",
"gme-cgo": "Goth Crimea",
"gmq-gut": "Gutnish",
"gmq-jmk": "Jamtish",
"gmq-mno": "Norway Pertengahan",
"gmq-oda": "Denmark Kuno",
"gmq-ogt": "Gutnish Kuno",
"gmq-osw": "Sweden Kuno",
"gmq-pro": "Norse Purba",
"gmq-scy": "Scanian",
"gmw-bgh": "Bergish",
"gmw-cfr": "Franconia Tengah",
"gmw-ecg": "Jerman Tengah Timur",
"gmw-fin": "Fingallian",
"gmw-gts": "Gottscheerish",
"gmw-jdt": "Belanda Jersey",
"gmw-msc": "Scots Pertengahan",
"gmw-pro": "Jermanik Barat Purba",
"gmw-rfr": "Franconia Rhine",
"gmw-stm": "Schwaben Szatmár",
"gmw-tsx": "Saxon Transylvania",
"gmw-vog": "Jerman Volga",
"gmw-zps": "Jerman Zipser",
"gn-cls": "Guarani Klasik",
"grk-cal": "Yunani Calabria",
"grk-ita": "Yunani Italiot",
"grk-mar": "Yunani Mariupol",
"grk-pro": "Hellenik Purba",
"gu": "Gujerat",
"gv": "Manx",
"gvf": "Golin",
"gvj": "Guajá",
"gvl": "Gulay",
"gvm": "Gurmana",
"gvn": "Kuku-Yalanji",
"gvo": "Gavião do Jiparaná",
"gvp": "Gavião Pará",
"gvr": "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è Selatan",
"gya": "Gbaya Barat Laut",
"gyb": "Garus",
"gyd": "Kayardild",
"gye": "Gyem",
"gyf": "Gungabula",
"gyg": "Gbayi",
"gyi": "Gyele",
"gyl": "Gayil",
"gym": "Ngäbere",
"gyn": "Kreol Inggeris Guyana",
"gyo": "Gyalsumdo",
"gyr": "Guarayu",
"gyy": "Gunya",
"gza": "Ganza",
"gzn": "Gane",
"ha": "Hausa",
"haa": "Hän",
"hab": "Bahasa Isyarat Hanoi",
"hac": "Gurani",
"had": "Hatam",
"haf": "Bahasa Isyarat Haiphong",
"hag": "Hanga",
"hah": "Hahon",
"hai": "Haida",
"haj": "Hajong",
"hak": "Hakka",
"hal": "Halang",
"ham": "Hewa",
"hao": "Hakö",
"hap": "Hupla",
"har": "Harari",
"has": "Haisla",
"hav": "Havu",
"haw": "Hawaii",
"hax": "Haida Selatan",
"hay": "Haya",
"hba": "Hamba",
"hbb": "Huba",
"hbn": "Heiban",
"hbu": "Habu",
"hca": "Hindi Kreol Andaman",
"hch": "Huichol",
"hdn": "Haida Utara",
"hds": "Bahasa Isyarat Honduras",
"hdy": "Hadiyya",
"he": "Ibrani",
"hea": "Miao Qiandong Utara",
"hed": "Herdé",
"heg": "Helong",
"heh": "Hehe",
"hei": "Heiltsuk",
"hem": "Hemba",
"hgm": "Haiǁom",
"hgw": "Haigwai",
"hhi": "Hoia Hoia",
"hhr": "Kerak",
"hhy": "Hoyahoya",
"hi": "Hindi",
"hia": "Lamang",
"hib": "Hibito",
"hid": "Hidatsa",
"hif": "Hindi Fiji",
"hig": "Kamwe",
"hih": "Pamosu",
"hii": "Hinduri",
"hij": "Hijuk",
"hik": "Seit-Kaitetu",
"hil": "Hiligaynon",
"hio": "Tshwa",
"hir": "Himarimã",
"hit": "Het",
"hiw": "Hiw",
"hix": "Hixkaryana",
"hji": "Haji",
"hka": "Kahe",
"hke": "Hunde",
"hkh": "Pogali",
"hkk": "Hunjara-Kaina Ke",
"hkn": "Mel-Khaonh",
"hks": "Bahasa Isyarat Hong Kong",
"hla": "Halia",
"hlb": "Halbi",
"hld": "Halang Doan",
"hle": "Hlersu",
"hlt": "Nga La",
"hma": "Hmong Mashan Selatan",
"hmb": "Humburi Senni",
"hmc": "Hmong Huishui Tengah",
"hmd": "A-Hmao",
"hme": "Hmong Huishui Timur",
"hmf": "Hmong Don",
"hmg": "Hmong Guiyang Barat Daya",
"hmh": "Hmong Huishui Barat Daya",
"hmi": "Hmong Huishui Utara",
"hmj": "Ge",
"hmk": "Maek",
"hml": "Hmong Luopohe",
"hmm": "Hmong Mashan Tengah",
"hmn-pro": "Hmongik Purba",
"hmp": "Hmong Mashan Utara",
"hmq": "Miao Qiandong Timur",
"hmr": "Hmar",
"hms": "Miao Qiandong Selatan",
"hmt": "Hamtai",
"hmu": "Hamap",
"hmv": "Hmong Dô",
"hmw": "Hmong Mashan Barat",
"hmx-mie-pro": "Mienik Purba",
"hmx-pro": "Hmong-Mien Purba",
"hmy": "Hmong Guiyang Selatan",
"hmz": "Hmong Shua",
"hna": "Mina",
"hnd": "Hindko Selatan",
"hne": "Chhattisgarhi",
"hnh": "ǁAni",
"hni": "Hani",
"hnj": "Hmong Hijau",
"hnn": "Hanunoo",
"hno": "Hindko Utara",
"hns": "Hindustan Caribbean",
"hnu": "Hung",
"ho": "Hiri Motu",
"hoa": "Hoava",
"hob": "Mari Austronesia",
"hoc": "Ho",
"hod": "Holma",
"hoe": "Horom",
"hoh": "Hobyót",
"hoi": "Holikachuk",
"hoj": "Hadothi",
"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": "Hunsrik",
"hrz": "Harzani",
"hsb": "Sorbia Atas",
"hsh": "Bahasa Isyarat Hungary",
"hsl": "Bahasa Isyarat Hausa",
"hsn": "Xiang",
"hss": "Harsusi",
"ht": "Kreol Haiti",
"hti": "Hoti",
"hto": "Minica Huitoto",
"hts": "Hadza",
"htu": "Hitu",
"hu": "Hungary",
"hub": "Huambisa",
"huc": "ǂHoan",
"hud": "Huaulu",
"huf": "Humene",
"hug": "Huachipaeri",
"huh": "Huilliche",
"hui": "Huli",
"huj": "Hmong Guiyang Utara",
"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": "Kreol Hawaii",
"hwo": "Hwana",
"hy": "Armenia",
"hya": "Hya",
"hyx-pro": "Armenia Purba",
"hz": "Herero",
"ia": "Interlingua",
"iai": "Iaai",
"ian": "Iatmul",
"iar": "Purari",
"iba": "Iban",
"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": "Bahasa Isyarat Iceland",
"icr": "Inggeris Kreol Islander",
"id": "Indonesia",
"ida": "Idakho-Isukha-Tiriki",
"idb": "Indo-Portugis",
"idc": "Idon",
"idd": "Ede Idaca",
"ide": "Idere",
"idi": "Idi",
"idr": "Indri",
"ids": "Idesa",
"idt": "Idaté",
"idu": "Idoma",
"ie": "Interlingue",
"ifa": "Amganad Ifugao",
"ifb": "Batad Ifugao",
"ife": "Ifè",
"iff": "Ifo",
"ifk": "Tuwali Ifugao",
"ifm": "Teke-Fuumu",
"ifu": "Mayoyao Ifugao",
"ify": "Keley-I Kallahan",
"ig": "Igbo",
"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": "Nuosu",
"iir-nur-pro": "Nuristani Purba",
"iir-pro": "Indo-Iran Purba",
"ijc": "Izon",
"ije": "Biseni",
"ijj": "Ede Ije",
"ijn": "Kalabari",
"ijo-pro": "Ijoid Purba",
"ijs": "Southeast Ijo",
"ik": "Inupiaq",
"ike": "Eastern Canadian Inuktitut",
"iki": "Iko",
"ikk": "Ika",
"ikl": "Ikulu",
"iko": "Olulumo-Ikom",
"ikp": "Ikpeshi",
"ikr": "Ikaranggal",
"iks": "Bahasa Isyarat Inuit",
"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": "Iranun",
"ilo": "Ilocano",
"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": "Prakrit Ashoka",
"inc-dng-pro": "Dangari Purba",
"inc-kam": "Prakrit Kamarupi",
"inc-kho": "Kholosi",
"inc-khr": "Khortha",
"inc-krd-pro": "Kamta Purba",
"inc-mas": "Assam Pertengahan",
"inc-mbn": "Bengal Pertengahan",
"inc-mgu": "Gujarati Pertengahan",
"inc-mor": "Odia Pertengahan",
"inc-oas": "Assam Awal",
"inc-oaw": "Awadhi Kuno",
"inc-obn": "Bengal Kuno",
"inc-ogu": "Gujarati Kuno",
"inc-ohi": "Hindi Kuno",
"inc-oor": "Odia Kuno",
"inc-opa": "Punjabi Kuno",
"inc-pro": "Indo-Arya Purba",
"inc-sar": "Sarazi",
"ine-ana-pro": "Anatolia Purba",
"ine-bsl-pro": "Balto-Slavik Purba",
"ine-kal": "Kalašma",
"ine-pae": "Paeonia",
"ine-pro": "Indo-Eropah Purba",
"ine-toc-pro": "Tocharia Purba",
"ing": "Deg Xinag",
"inh": "Ingush",
"inj": "Jungle Inga",
"inl": "Bahasa Isyarat Indonesia",
"inm": "Minaean",
"inn": "Isinai",
"ino": "Inoke-Yate",
"inp": "Iñapari",
"ins": "Bahasa Isyarat India",
"int": "Intha",
"inz": "Ineseño",
"io": "Ido",
"ior": "Inor",
"iou": "Tuma-Irumu",
"iow": "Chiwere",
"ipi": "Ipili",
"ipo": "Ipiko",
"iqu": "Iquito",
"iqw": "Ikwo",
"ira-kms-pro": "Komisenia Purba",
"ira-mny-pro": "Munji-Yidgha Purba",
"ira-mpr-pro": "Medo-Parthia Purba",
"ira-pat-pro": "Pathan Purba",
"ira-pro": "Iran Purba",
"ira-sgc-pro": "Sogdia Purba",
"ira-sgi-pro": "Sanglechi-Ishkashimi Purba",
"ira-shr-pro": "Shughni-Roshani Purba",
"ira-shy-pro": "Shughni-Yazghulami Purba",
"ira-sym-pro": "Shughni-Yazghulami-Munji Purba",
"ira-wnj": "Vanji",
"ira-zgr-pro": "Zaza-Gorani Purba",
"ire": "Iresim",
"irh": "Irarutu",
"iri": "Rigwe",
"irk": "Iraqw",
"irn": "Irantxe",
"iro-ere": "Erie",
"iro-min": "Mingo",
"iro-nor-pro": "Iroquois Utara Purba",
"iro-pro": "Iroquois Purba",
"irr": "Ir",
"iru": "Irula",
"irx": "Kamberau",
"iry": "Iraya",
"is": "Iceland",
"isa": "Isabi",
"isc": "Isconahua",
"isd": "Isnag",
"ise": "Bahasa Isyarat Itali",
"isg": "Bahasa Isyarat Ireland",
"ish": "Esan",
"isi": "Nkem-Nkum",
"isk": "Ishkashimi",
"ism": "Masimasi",
"isn": "Isanzu",
"iso": "Isoko",
"isr": "Bahasa Isyarat Israel",
"ist": "Istriot",
"isu": "Isu",
"isv": "Interslavic",
"it": "Itali",
"itb": "Binongan Itneg",
"itc-pro": "Italik Purba",
"itc-psa": "Pra-Samnit",
"itd": "Tidung Selatan",
"ite": "Itene",
"iti": "Inlaod Itneg",
"itk": "Judeo-Itali",
"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": "Itzá",
"iu": "Inuktitut",
"ium": "Iu Mien",
"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": "Ingria",
"izi": "Izi-Ezaa-Ikwo-Mgbo",
"izr": "Izere",
"izz": "Izi",
"ja": "Jepun",
"jaa": "Jamamadí",
"jab": "Hyam",
"jac": "Jakaltek",
"jad": "Jahanka",
"jae": "Jabem",
"jaf": "Jara",
"jah": "Jah Hut",
"jaj": "Zazao",
"jak": "Jakun",
"jal": "Yalahatan",
"jam": "Kreol Jamaica",
"jan": "Janday",
"jao": "Yanyuwa",
"jaq": "Yaqay",
"jas": "New Caledonian Javanese",
"jat": "Jakati",
"jau": "Yaur",
"jax": "Melayu Jambi",
"jay": "Yan-nhangu",
"jaz": "Jawe",
"jbj": "Arandai",
"jbk": "Barikewa",
"jbn": "Nefusa",
"jbo": "Lojban",
"jbr": "Jofotek-Bromnya",
"jbt": "Jabutí",
"jbu": "Jukun Takum",
"jbw": "Yawijibaya",
"jcs": "Bahasa Isyarat Negara Jamaica",
"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": "Bahasa Isyarat Jhankot",
"jia": "Jina",
"jib": "Jibu",
"jic": "Tol",
"jid": "Bu",
"jie": "Jilbe",
"jig": "Jingulu",
"jih": "Shangzhai",
"jii": "Jiiddu",
"jil": "Jilim",
"jim": "Jimjimen",
"jio": "Jiamao",
"jiq": "Khroskyabs",
"jit": "Jita",
"jiu": "Youle Jino",
"jiv": "Shuar",
"jiy": "Buyuan Jino",
"jje": "Jeju",
"jjr": "Zhár",
"jka": "Kaera",
"jko": "Kubo",
"jkr": "Koro (India)",
"jku": "Labir",
"jle": "Ngile",
"jls": "Bahasa Isyarat Jamaica",
"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": "Bahasa Isyarat Jordan",
"jow": "Jowulu",
"jpr": "Judeo-Persian",
"jpx-hcj": "Hachijō",
"jpx-pro": "Jepunik Purba",
"jpx-ryu-pro": "Ryukyu Purba",
"jqr": "Jaqaru",
"jra": "Jarai",
"jrr": "Jiru",
"jru": "Japrería",
"jsl": "Bahasa Isyarat Jepun",
"jua": "Júma",
"jub": "Wannu",
"juc": "Jurchen",
"jud": "Worodougou",
"juh": "Hone",
"jui": "Ngadjuri",
"juk": "Wapan",
"jul": "Jirel",
"jum": "Jumjum",
"jun": "Juang",
"juo": "Jiba",
"jup": "Hupdë",
"jur": "Jurúna",
"jus": "Bahasa Isyarat Jumla",
"jut": "Jutish",
"juu": "Ju",
"juw": "Wãpha",
"juy": "Juray",
"jv": "Jawa",
"jvd": "Javindo",
"jvn": "Jawa Caribbean",
"jwi": "Jwira-Pepesa",
"jyy": "Jaya",
"ka": "Georgia",
"kaa": "Karakalpak",
"kab": "Kabyle",
"kac": "Jingpho",
"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": "Karen Purba",
"kaw": "Jawa Kuno",
"kax": "Kao",
"kay": "Kamayurá",
"kba": "Kalarko",
"kbb": "Kaxuyana",
"kbc": "Kadiwéu",
"kbd": "Kabardia",
"kbe": "Kanju",
"kbh": "Camsá",
"kbi": "Kaptiau",
"kbj": "Kari",
"kbk": "Grass Koiari",
"kbm": "Iwal",
"kbn": "Kare (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": "Khanty Timur",
"kca-nor": "Khanty Utara",
"kca-pro": "Khanty Purba",
"kca-sou": "Khanty Selatan",
"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": "Numee",
"kdl": "Tsikimba",
"kdm": "Kagoma",
"kdn": "Kunda",
"kdp": "Kaningdon-Nindem",
"kdq": "Koch",
"kdr": "Karaim",
"kdt": "Kuy",
"kdu": "Kadaru",
"kdv": "Kado",
"kdw": "Koneraw",
"kdx": "Kam",
"kdy": "Keder",
"kdz": "Kwaja",
"kea": "Kabuverdianu",
"keb": "Kélé",
"kec": "Keiga",
"ked": "Kerewe",
"kee": "Keres Timur",
"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 (Afrika Barat)",
"kfp": "Korwa",
"kfq": "Korku",
"kfr": "Kachchi",
"kfs": "Bilaspuri",
"kft": "Kanjari",
"kfu": "Katkari",
"kfv": "Kurmukar",
"kfw": "Kharam Naga",
"kfx": "Kullu Pahari",
"kfy": "Kumaoni",
"kfz": "Koromfé",
"kg": "Kongo",
"kga": "Koyaga",
"kgb": "Kawe",
"kgd": "Kataang",
"kge": "Komering",
"kgf": "Kube",
"kgg": "Kusunda",
"kgi": "Selangor Sign Language",
"kgj": "Gamale Kham",
"kgk": "Kaiwá",
"kgl": "Kunggari",
"kgm": "Karipúna",
"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": "Khasi",
"khb": "Lü",
"khc": "Tukang Besi Utara",
"khd": "Bädi Kanum",
"khe": "Korowai",
"khf": "Khuen",
"khh": "Kehu",
"khi-kho-pro": "Khoe Purba",
"khi-kun": "ǃKung",
"khj": "Kuturmi",
"khl": "Lusi",
"khn": "Khandeshi",
"kho": "Khotan",
"khp": "Kapauri",
"khq": "Koyra Chiini",
"khr": "Kharia",
"khs": "Kasua",
"kht": "Khamti",
"khu": "Nkhumbi",
"khv": "Khvarshi",
"khw": "Khowar",
"khx": "Kanu",
"khy": "Ekele",
"khz": "Keapara",
"ki": "Kikuyu",
"kia": "Kim",
"kib": "Koalib",
"kic": "Kickapoo",
"kid": "Koshin",
"kie": "Kibet",
"kif": "Kham Parbate Timur",
"kig": "Kimaama",
"kih": "Kilmeri",
"kii": "Kitsai",
"kij": "Kilivila",
"kil": "Kariya",
"kim": "Tofa",
"kio": "Kiowa",
"kip": "Sheshi Kham",
"kiq": "Kosadle",
"kis": "Kis",
"kit": "Agob",
"kiv": "Kimbu",
"kiw": "Kiwai Timur Laut",
"kix": "Naga Khiamniungan",
"kiy": "Kirikiri",
"kiz": "Kisi",
"kj": "Kwanyama",
"kja": "Mlap",
"kjb": "Q'anjob'al",
"kjc": "Konjo Pesisir",
"kjd": "Kiwai Selatan",
"kje": "Kisar",
"kjg": "Khmu",
"kjh": "Khakas",
"kji": "Zabana",
"kjj": "Khinalug",
"kjk": "Highland Konjo",
"kjl": "Kham",
"kjm": "Kháng",
"kjn": "Kunjen",
"kjo": "Harijan Kinnauri",
"kjp": "Pwo Timur",
"kjq": "Keres Barat",
"kjr": "Kurudu",
"kjs": "Kewa Timur",
"kjt": "Phrae Pwo",
"kju": "Kashaya",
"kjx": "Ramopa",
"kjy": "Erave",
"kjz": "Bumthangkha",
"kk": "Kazakh",
"kka": "Kakanda",
"kkb": "Kwerisa",
"kkc": "Odoodee",
"kkd": "Kinuku",
"kke": "Kakabe",
"kkf": "Monpa Kalaktang",
"kkg": "Kalinga Lembah Mabaka",
"kkh": "Khün",
"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": "Greenland",
"kla": "Klamath-Modoc",
"klb": "Kiliwa",
"klc": "Kolbila",
"kld": "Gamilaraay",
"kle": "Kulung",
"klf": "Kendeje",
"klg": "Kalagan Tagakaulu",
"klh": "Weliki",
"kli": "Kalumpang",
"klj": "Khalaj",
"klk": "Kono (Nigeria)",
"kll": "Kalagan Kagan",
"klm": "Kolom",
"kln": "Kalenjin",
"klo": "Kapya",
"klp": "Kamasa",
"klq": "Rumu",
"klr": "Khaling",
"kls": "Kalasha",
"klt": "Nukna",
"klu": "Klao",
"klv": "Maskelynes",
"klw": "Lindu",
"klx": "Koluwawa",
"kly": "Kalao",
"klz": "Kabola",
"km": "Khmer",
"kma": "Konni",
"kmb": "Kimbundu",
"kmc": "Kam Selatan",
"kmd": "Kalinga Madukayang",
"kme": "Bakole",
"kmf": "Kare (New Guinea)",
"kmg": "Kâte",
"kmh": "Kalam",
"kmi": "Kami",
"kmj": "Kumarbhag Paharia",
"kmk": "Kalinga Limos",
"kml": "Kalinga Tanudan",
"kmm": "Kom (India)",
"kmn": "Awtuw",
"kmo": "Kwoma",
"kmp": "Gimme",
"kmq": "Kwama",
"kmr": "Kurdi Utara",
"kms": "Kamasau",
"kmt": "Kemtuik",
"kmu": "Kanite",
"kmv": "Perancis Kreol Karipúna",
"kmw": "Kumu",
"kmx": "Waboda",
"kmy": "Koma",
"kmz": "Turki Khorasan",
"kn": "Kannada",
"kna": "Kanakuru",
"knb": "Kalinga Lubuagan",
"knd": "Konda",
"kne": "Kankanaey",
"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": "Salako",
"kny": "Kanyok",
"knz": "Kalamsé",
"ko": "Korea",
"ko-ear": "Korea Moden Awal",
"koa": "Konomala",
"koc": "Kpati",
"kod": "Kodi",
"koe": "Kacipo-Balesi",
"kof": "Kubi",
"kog": "Cogui",
"koh": "Koyo",
"koi": "Komi-Permyak",
"kok": "Konkani",
"kol": "Kol (New Guinea)",
"koo": "Konzo",
"kop": "Waube",
"koq": "Kota (Gabon)",
"kos": "Kosrae",
"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": "Koho",
"kpn": "Kepkiriwát",
"kpo": "Ikposo",
"kpp": "Karen Paku",
"kpq": "Korupun-Sela",
"kpr": "Korafe-Yegha",
"kps": "Tehit",
"kpt": "Karata",
"kpu": "Kafoa",
"kpv": "Komi-Zyrian",
"kpw": "Kobon",
"kpx": "Koiari Gunung",
"kpy": "Koryak",
"kpz": "Kupsabiny",
"kqa": "Mum",
"kqb": "Kovai",
"kqc": "Doromu-Koki",
"kqd": "Koy Sanjaq Surat",
"kqe": "Kalagan",
"kqf": "Kakabai",
"kqg": "Khe",
"kqh": "Kisankasa",
"kqi": "Koitabu",
"kqj": "Koromira",
"kqk": "Gbe Kotafon",
"kql": "Kyenele",
"kqm": "Khisa",
"kqn": "Kaonde",
"kqo": "Krahn Timur",
"kqp": "Kimré",
"kqq": "Krenak",
"kqr": "Kimaragang",
"kqs": "Kissi Utara",
"kqt": "Kadazan Sungai Klias",
"kqu": "Seroa",
"kqv": "Okolod",
"kqw": "Kandas",
"kqx": "Mser",
"kqy": "Koorete",
"kqz": "Korana",
"kr": "Kanuri",
"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": "Karelia",
"krm": "Krim",
"krn": "Sapo",
"kro-pro": "Kru Purba",
"krp": "Korop",
"krr": "Kru'ng",
"krs": "Kresh",
"kru": "Kurukh",
"krv": "Kavet",
"krw": "Krahn Barat",
"krx": "Karon",
"kry": "Kryts",
"krz": "Sota Kanum",
"ks": "Kashmir",
"ksa": "Shuwa-Zamani",
"ksb": "Shambala",
"ksc": "Kalinga Selatan",
"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": "Kissi Selatan",
"kst": "Winyé",
"ksu": "Khamyang",
"ksv": "Kusu",
"ksw": "Karen S'gaw",
"ksx": "Kedang",
"ksy": "Kharia Thar",
"ksz": "Kodaku",
"kta": "Katua",
"ktb": "Kambaata",
"ktc": "Kholok",
"ktd": "Kokata",
"ktf": "Kwami",
"ktg": "Kalkatungu",
"kth": "Karanga",
"kti": "Muyu Utara",
"ktj": "Plapo Krumen",
"ktk": "Kaniet",
"ktl": "Koroshi",
"ktm": "Kurti",
"ktn": "Karitiâna",
"kto": "Kuot",
"ktp": "Kaduo",
"ktq": "Katabaga",
"ktr": "Tinagas Kota Marudu",
"kts": "Muyu Selatan",
"ktt": "Ketum",
"ktu": "Kituba",
"ktv": "Katu Timur",
"ktw": "Kato",
"ktx": "Kaxararí",
"kty": "Kango",
"ktz": "Juǀ'hoan",
"ku-pro": "Kurdi Purba",
"kub": "Kutep",
"kuc": "Kwinsu",
"kud": "Auhelawa",
"kue": "Kuman",
"kuf": "Katu Barat",
"kug": "Kupa",
"kuh": "Kushi",
"kui": "Kuikúro",
"kuj": "Kuria",
"kuk": "Kepo'",
"kul": "Kulere",
"kum": "Kumyk",
"kun": "Kunama",
"kuo": "Kumukio",
"kup": "Kunimaipa",
"kuq": "Karipuna",
"kus": "Kusaal",
"kut": "Kutenai",
"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": "Bahasa Isyarat Korea",
"kvl": "Karen Brek",
"kvm": "Kendem",
"kvn": "Kuna Sempadan",
"kvo": "Dobel",
"kvp": "Kompane",
"kvq": "Karen Geba",
"kvr": "Kerinci",
"kvt": "Karen Lahta",
"kvu": "Karen Yinbaw",
"kvv": "Kola",
"kvw": "Wersing",
"kvx": "Parkari Koli",
"kvy": "Karen Yintale",
"kvz": "Tsakwambo",
"kw": "Cornish",
"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": "Khonso",
"kxd": "Melayu Brunei",
"kxe": "Kakihum",
"kxf": "Karen Manumanaw",
"kxh": "Karo",
"kxi": "Murut Keningau",
"kxj": "Kulfa",
"kxk": "Karen Zayein",
"kxl": "Nepal Kurux",
"kxm": "Khmer Utara",
"kxn": "Kanowit",
"kxo": "Kanoé",
"kxp": "Wadiyara Koli",
"kxq": "Smärky Kanum",
"kxr": "Koro (New Guinea)",
"kxs": "Kangjia",
"kxt": "Koiwat",
"kxu": "Kui (India)",
"kxv": "Kuvi",
"kxw": "Konai",
"kxx": "Likuba",
"kxy": "Kayong",
"kxz": "Kerewo",
"ky": "Kyrgyz",
"kya": "Kwaya",
"kyb": "Kalinga Butbut",
"kyc": "Kyaka",
"kyd": "Karey",
"kye": "Krache",
"kyf": "Kouya",
"kyg": "Keyagana",
"kyh": "Karok",
"kyi": "Kiput",
"kyj": "Karao",
"kyk": "Kamayo",
"kyl": "Kalapuya",
"kym": "Kpatili",
"kyn": "Karolanos",
"kyo": "Kelon",
"kyp": "Kang",
"kyq": "Kenga",
"kyr": "Kuruáya",
"kys": "Kayan Baram",
"kyt": "Kayagar",
"kyu": "Kayah Barat",
"kyv": "Kayort",
"kyw": "Kudmali",
"kyx": "Rapoisi",
"kyy": "Kambaira",
"kyz": "Kayabí",
"kza": "Karaboro Barat",
"kzb": "Kaibobo",
"kzc": "Bondoukou Kulango",
"kzd": "Kadai",
"kze": "Kosena",
"kzf": "Da'a Kaili",
"kzg": "Kikai",
"kzh": "Dongolawi",
"kzi": "Kelabit",
"kzj": "Kadazan",
"kzk": "Kazukuru",
"kzl": "Kayeli",
"kzm": "Kais",
"kzn": "Kokola",
"kzo": "Kaningi",
"kzp": "Kaidipang",
"kzq": "Kaike",
"kzr": "Karang",
"kzs": "Dusun Sugut",
"kzt": "Dusun Tambunan",
"kzu": "Kayupulau",
"kzv": "Komyandaret",
"kzw": "Kariri",
"kzx": "Kamarian",
"kzy": "Kango-Sua",
"kzz": "Kalabra",
"la": "Latin",
"laa": "Subanun Lapuyan",
"lab": "Linear A",
"lac": "Lacandon",
"lad": "Ladino",
"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": "Luxembourg",
"lbb": "Label",
"lbc": "Lakkia",
"lbe": "Lak",
"lbf": "Tinani",
"lbg": "Laopang",
"lbi": "La'bi",
"lbj": "Ladakhi",
"lbk": "Bontoc Tengah",
"lbl": "Bikol Libon",
"lbm": "Lodhi",
"lbn": "Lamet",
"lbo": "Laven",
"lbq": "Wampar",
"lbr": "Lorung Utara",
"lbs": "Bahasa Isyarat Libya",
"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": "Lawa Barat",
"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": "Lenca Honduras",
"leo": "Leti (Cameroon)",
"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": "Lezgi",
"lfa": "Lefa",
"lfn": "Lingua Franca Nova",
"lg": "Luganda",
"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": "Limburg",
"lia": "Limba Barat-Tengah",
"lib": "Likum",
"lic": "Hlai",
"lid": "Nyindrou",
"lie": "Likila",
"lif": "Limbu",
"lig": "Ligbi",
"lih": "Lihir",
"lii": "Lingkhim",
"lij": "Ligurian",
"lik": "Lika",
"lil": "Lillooet",
"lio": "Liki",
"lip": "Sekpele",
"liq": "Libido",
"lir": "Liberian Kreyol",
"lis": "Lisu",
"liu": "Logorik",
"liv": "Livonian",
"liw": "Col",
"lix": "Liabuku",
"liy": "Banda-Bambari",
"liz": "Libinza",
"lja": "Golpa",
"lje": "Rampi",
"lji": "Laiyolo",
"ljl": "Li'o",
"ljp": "Lampung Api",
"ljw": "Yirandali",
"ljx": "Yuru",
"lka": "Lakalei",
"lkb": "Kabras",
"lkc": "Kucong",
"lkd": "Lakondê",
"lke": "Kenyi",
"lkh": "Lakha",
"lki": "Laki",
"lkj": "Remun",
"lkl": "Laeko-Libuat",
"lkm": "Kalaamaya",
"lkn": "Lakon",
"lko": "Khayo",
"lkr": "Päri",
"lks": "Kisa",
"lkt": "Lakota",
"lku": "Kungkari",
"lky": "Lokoya",
"lla": "Lala-Roba",
"llb": "Lolo",
"llc": "Lele (Guinea)",
"lld": "Ladin",
"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": "Efate Utara",
"llq": "Lolak",
"lls": "Lithuanian Sign Language",
"llu": "Lau",
"llx": "Lauan",
"lma": "Limba Timur",
"lmb": "Merei",
"lmc": "Limilngan",
"lmd": "Lumun",
"lme": "Pévé",
"lmf": "Lembata Selatan",
"lmg": "Lamogai",
"lmh": "Lambichhong",
"lmi": "Lombi",
"lmj": "Lembata Barat",
"lmk": "Lamkang",
"lml": "Raga",
"lmn": "Lambadi",
"lmo": "Lombard",
"lmp": "Limbum",
"lmq": "Lamatuka",
"lmr": "Lamalera",
"lmu": "Lamenu",
"lmv": "Lomaiviti",
"lmw": "Lake Miwok",
"lmx": "Laimbue",
"lmy": "Laboya",
"lmz": "Lumbee",
"ln": "Lingala",
"lna": "Langbashe",
"lnb": "Mbalanhu",
"lnd": "Lun Bawang",
"lnh": "Lanoh",
"lni": "Daantanai'",
"lnj": "Linngithigh",
"lnl": "Banda Tengah Selatan",
"lnm": "Langam",
"lnn": "Lorediakarkar",
"lno": "Lango (Sudan)",
"lns": "Lamnso'",
"lnu": "Longuda",
"lnw": "Lanima",
"lo": "Lao",
"loa": "Loloda",
"lob": "Lobi",
"loc": "Inonhan",
"lod": "Berawan",
"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": "Kreol Louisiana",
"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": "Lur Utara",
"lre": "Laurentia",
"lrg": "Laragia",
"lri": "Marachi",
"lrk": "Loarki",
"lrl": "Larestani",
"lrm": "Marama",
"lrn": "Lorang",
"lro": "Laro",
"lrr": "Lorung Selatan",
"lrt": "Melayu Larantuka",
"lrv": "Larevat",
"lrz": "Lemerig",
"lsa": "Lasgerdi",
"lsd": "Lishana Deni",
"lse": "Lusengo",
"lsh": "Lish",
"lsi": "Lashi",
"lsl": "Bahasa Isyarat Latvia",
"lsm": "Saamia",
"lso": "Bahasa Isyarat Lao",
"lsp": "Bahaaa Isyarat Panama",
"lsr": "Aruop",
"lss": "Lasi",
"lst": "Bahasa Isyarat Trinidad dan Tobago",
"lsy": "Bahaaa Isyarat Mauritius",
"lt": "Lithuania",
"ltc": "Cina Pertengahan",
"ltg": "Latgalia",
"lti": "Leti (Indonesia)",
"ltn": "Latundê",
"lto": "Olutsotso",
"lts": "Lutachoni",
"ltu": "Latu",
"lu": "Luba-Katanga",
"lua": "Luba-Kasai",
"luc": "Aringa",
"lud": "Ludian",
"lue": "Luvale",
"luf": "Laua",
"lui": "Luiseño",
"luj": "Luna",
"luk": "Lunanakha",
"lul": "Olu'bo",
"lum": "Luimbi",
"lun": "Lunda",
"luo": "Luo",
"lup": "Lumbu",
"luq": "Lucumí",
"lur": "Laura",
"lus": "Mizo",
"lut": "Lushootseed",
"luu": "Lumba-Yakkha",
"luv": "Luwati",
"luy": "Luhya",
"luz": "Lur Selatan",
"lv": "Latvia",
"lva": "Maku'a",
"lvi": "Lawi",
"lvk": "Lavukaleve",
"lvl": "Lwel",
"lvu": "Levuka",
"lwa": "Lwalu",
"lwe": "Lewo Eleng",
"lwg": "Wanga",
"lwh": "Lachi Putih",
"lwl": "Lawa Timur",
"lwm": "Laomian",
"lwo": "Luwo",
"lws": "Malawian Sign Language",
"lwt": "Lewotobi",
"lwu": "Lawu",
"lww": "Lewo",
"lya": "Layakha",
"lyg": "Lyngngam",
"lyn": "Luyana",
"lzh": "Literary Chinese",
"lzl": "Litzlitz",
"lzn": "Leinong Naga",
"lzz": "Laz",
"maa": "Mazatec San Jerónimo Tecóatl",
"mab": "Mixtec Yutanduchi",
"mad": "Madura",
"mae": "Bo-Rukul",
"maf": "Mafa",
"mag": "Magahi",
"mai": "Maithili",
"maj": "Mazatec Jalapa de Díaz",
"mak": "Makassar",
"mam": "Mam",
"man": "Mandingo",
"map-ata-pro": "Atayalik Purba",
"map-bms": "Banyumasan",
"map-pro": "Austronesia Purba",
"maq": "Mazatec Chiquihuitlán",
"mas": "Maasai",
"mat": "Matlatzinca",
"mau": "Mazatec Huautla",
"mav": "Sateré-Mawé",
"maw": "Mampruli",
"max": "Melayu Maluku Utara",
"maz": "Mazahua Tengah",
"mba": "Higaonon",
"mbb": "Manobo Bukidnon Barat",
"mbc": "Macushi",
"mbd": "Manobo Dibabawon",
"mbe": "Molale",
"mbf": "Melayu Baba",
"mbh": "Mangseng",
"mbi": "Manobo Ilianen",
"mbj": "Nadëb",
"mbk": "Malol",
"mbl": "Maxakalí",
"mbm": "Ombamba",
"mbn": "Macaguán",
"mbo": "Mbo (Cameroon)",
"mbp": "Wiwa",
"mbq": "Maisin",
"mbr": "Nukak Makú",
"mbs": "Manobo Sarangani",
"mbt": "Manobo Matigsalug",
"mbu": "Mbula-Bwazza",
"mbv": "Mbulungish",
"mbw": "Maring",
"mbx": "Mari (Sepik)",
"mby": "Memoni",
"mbz": "Mixtec Amoltepec",
"mca": "Maca",
"mcb": "Machiguenga",
"mcc": "Bitur",
"mcd": "Sharanahua",
"mce": "Mixtec Itundujia",
"mcf": "Matsés",
"mcg": "Mapoyo",
"mch": "Ye'kwana",
"mci": "Mese",
"mcj": "Mvanip",
"mck": "Mbunda",
"mcl": "Macaguaje",
"mcm": "Kristang",
"mcn": "Masana",
"mco": "Mixe Coatlán",
"mcp": "Makaa",
"mcq": "Ese",
"mcr": "Menya",
"mcs": "Mambai",
"mcu": "Mambila Cameroon",
"mcw": "Mawa",
"mcx": "Mpiemo",
"mcy": "Watut Selatan",
"mcz": "Mawan",
"mda": "Mada (Nigeria)",
"mdb": "Morigi",
"mdc": "Male",
"mdd": "Mbum",
"mde": "Mabang Bura",
"mdf": "Moksha",
"mdg": "Massalat",
"mdh": "Maguindanao",
"mdi": "Mamvu",
"mdj": "Mangbetu",
"mdk": "Mangbutu",
"mdl": "Bahasa Isyarat Malta",
"mdm": "Mayogo",
"mdn": "Mbati",
"mdp": "Mbala",
"mdq": "Mbole",
"mdr": "Mandar",
"mds": "Maria",
"mdt": "Mbere",
"mdu": "Mboko",
"mdv": "Mixtec Santa Lucía Monteverde",
"mdw": "Mbosi",
"mdx": "Dizin",
"mdy": "Maale",
"mdz": "Suruí Do Pará",
"mea": "Menka",
"meb": "Ikobi-Mena",
"mec": "Mara",
"med": "Melpa",
"mee": "Mengen",
"mef": "Megam",
"meh": "Mixtec Tlaxiaco Barat Daya",
"mei": "Midob",
"mej": "Meyah",
"mek": "Mekeo",
"mel": "Melanau Tengah",
"mem": "Mangala",
"men": "Mende (Sierra Leone)",
"meo": "Melayu Kedah",
"mep": "Miriwoong",
"meq": "Merey",
"mer": "Meru",
"mes": "Masmaje",
"met": "Mato",
"meu": "Motu",
"mev": "Mano",
"mew": "Maaka",
"mey": "Arab Hassaniyah",
"mez": "Menominee",
"mfa": "Melayu Patani",
"mfb": "Bangka",
"mfc": "Mba",
"mfd": "Mendankwe-Nkwen",
"mfe": "Kreol Mauritius",
"mff": "Naki",
"mfg": "Mixifore",
"mfh": "Matal",
"mfi": "Wandala",
"mfj": "Mefele",
"mfk": "Mofu Utara",
"mfl": "Putai",
"mfm": "Marghi Selatan",
"mfn": "Mbembe Cross River",
"mfo": "Mbe",
"mfp": "Melayu Makassar",
"mfq": "Moba",
"mfr": "Marrithiyel",
"mfs": "Bahasa Isyarat Mexico",
"mft": "Mokerang",
"mfu": "Mbwela",
"mfv": "Mandjak",
"mfw": "Mulaha",
"mfx": "Melo",
"mfy": "Mayo",
"mfz": "Mabaan",
"mg": "Malagasi",
"mga": "Ireland Pertengahan",
"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": "Magar Timur",
"mgq": "Malila",
"mgr": "Mambwe-Lungu",
"mgs": "Manda (Tanzania)",
"mgt": "Mwakai",
"mgu": "Mailu",
"mgv": "Matengo",
"mgw": "Matumbi",
"mgy": "Mbunga",
"mgz": "Mbugwe",
"mh": "Marshall",
"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": "Mòcheno",
"mho": "Mashi",
"mhp": "Melayu Bali",
"mhq": "Mandan",
"mhr": "Mari Timur",
"mhs": "Buru (Indonesia)",
"mht": "Mandahuaca",
"mhu": "Taraon",
"mhw": "Mbukushu",
"mhx": "Lhao Vo",
"mhy": "Ma'anyan",
"mhz": "Mor (Austronesia)",
"mi": "Māori",
"mia": "Miami",
"mib": "Mixtec Atatláhuca",
"mic": "Mi'kmaq",
"mid": "Mandaia",
"mie": "Mixtec Ocotepec",
"mif": "Mofu-Gudur",
"mig": "Mixtec San Miguel el Grande",
"mih": "Mixtec Chayuco",
"mii": "Mixtec Chigmecatitlán",
"mij": "Mungbam",
"mik": "Mikasuki",
"mil": "Mixtec Peñoles",
"mim": "Mixtec Alacatlatzala",
"min": "Minangkabau",
"mio": "Mixtec Pinotepa Nacional",
"mip": "Mixtec Apasco-Apoala",
"miq": "Miskito",
"mir": "Mixe Tanah Genting",
"mis-hkl": "Hokkien Peranakan Kelantan",
"mis-idn": "Idiom Neutral",
"mis-isa": "Isauria",
"mis-jie": "Jie",
"mis-jzh": "Jizhao",
"mis-kas": "Kassite",
"mis-mmd": "Mimi Decorse",
"mis-mmn": "Mimi Nachtigal",
"mis-phi": "Filistin",
"mis-rou": "Rouran",
"mis-tdl": "Turdulia",
"mis-tdt": "Turdetania",
"mis-tnw": "Tangwang",
"mis-tuh": "Tuyuhun",
"mis-tuo": "Tuoba",
"mis-wuh": "Wuhuan",
"mis-xbi": "Xianbei",
"mis-xnu": "Xiongnu",
"mit": "Mixtec Puebla Selatan",
"miu": "Mixtec Cacaloxtepec",
"miw": "Akoye",
"mix": "Mixtec Mixtepec",
"miy": "Mixtec Ayutla",
"miz": "Mixtec Coatzospan",
"mjb": "Makalero",
"mjc": "Mixtec San Juan Colorado",
"mjd": "Maidu Barat Laut",
"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": "Paharia Sawriya",
"mju": "Manna-Dora",
"mjv": "Mannan",
"mjw": "Karbi",
"mjx": "Mahali",
"mjy": "Mahican",
"mjz": "Manya",
"mk": "Macedonia",
"mka": "Mbre",
"mkb": "Mal Paharia",
"mkc": "Siliput",
"mke": "Mawchi",
"mkf": "Miya",
"mkg": "Mak (China)",
"mkh-asl-pro": "Asli Purba",
"mkh-ban-pro": "Bahnar Purba",
"mkh-kat-pro": "Katuik Purba",
"mkh-khm-pro": "Khmuik Purba",
"mkh-kmr-pro": "Khmer Purba",
"mkh-mmn": "Mon Pertengahan",
"mkh-mnc-pro": "Monik Purba",
"mkh-mvi": "Vietnam Pertengahan",
"mkh-pal-pro": "Palaungik Purba",
"mkh-pea-pro": "Pearik Purba",
"mkh-pkn-pro": "Pakanik Purba",
"mkh-pro": "Mon-Khmer Purba",
"mkh-vie-pro": "Vietik Purba",
"mki": "Dhatki",
"mkj": "Mokil",
"mkk": "Byep",
"mkl": "Mokole",
"mkm": "Moklen",
"mkn": "Melayu Kupang",
"mko": "Mingang Doso",
"mkp": "Moikodi",
"mkq": "Miwok Teluk",
"mkr": "Malas",
"mks": "Mixtec Silacayoapan",
"mkt": "Vamale",
"mku": "Maninka Konyanka",
"mkv": "Mav̋ea",
"mkx": "Manobo Cinamiguin",
"mky": "Taba",
"mkz": "Makasae",
"ml": "Malayalam",
"mla": "Tamambo",
"mlb": "Mbule",
"mlc": "Caolan",
"mle": "Manambu",
"mlf": "Mal",
"mlh": "Mape",
"mli": "Malimpung",
"mlj": "Miltu",
"mlk": "Ilwana",
"mll": "Teluk Malua",
"mlm": "Mulam",
"mln": "Malango",
"mlo": "Mlomp",
"mlp": "Bargam",
"mlq": "Maninkakan Barat",
"mlr": "Vame",
"mls": "Masalit",
"mlu": "To'abaita",
"mlv": "Mwotlap",
"mlw": "Moloko",
"mlx": "Malfaxal",
"mlz": "Malaynon",
"mma": "Mama",
"mmb": "Momina",
"mmc": "Mazahua Michoacán",
"mmd": "Maonan",
"mme": "Tirax",
"mmf": "Mundat",
"mmg": "Ambrym Utara",
"mmh": "Mehináku",
"mmi": "Hember Avu",
"mmj": "Majhwar",
"mmk": "Mukha-Dora",
"mml": "Man Met",
"mmm": "Maii",
"mmn": "Mamanwa",
"mmo": "Mangga Buang",
"mmp": "Musan",
"mmq": "Aisi",
"mmr": "Miao Xiangxi Barat",
"mmt": "Malalamai",
"mmu": "Mmaala",
"mmv": "Miriti",
"mmw": "Emae",
"mmx": "Madak",
"mmy": "Migaama",
"mmz": "Mabaale",
"mn": "Mongolia",
"mna": "Mbula",
"mnb": "Muna",
"mnc": "Manchu",
"mnd": "Mondé",
"mne": "Naba",
"mnf": "Mundani",
"mng": "Mnong Timur",
"mnh": "Mono (Congo)",
"mni": "Manipuri",
"mnj": "Munji",
"mnk": "Mandinka",
"mnl": "Tiale",
"mnm": "Mapena",
"mnn": "Mnong Selatan",
"mnp": "Min Utara",
"mnq": "Minriq",
"mnr": "Mono (California)",
"mns-cen": "Mansi Tengah",
"mns-nor": "Mansi Utara",
"mns-pro": "Mansi Purba",
"mns-sou": "Mansi Selatan",
"mnt": "Maykulan",
"mnu": "Mer",
"mnv": "Rennell",
"mnw": "Mon",
"mnw-tha": "Mon Thailand",
"mnx": "Sougb",
"mny": "Manyawa",
"mnz": "Moni",
"moa": "Mwan",
"moc": "Mocoví",
"mod": "Mobilia",
"moe": "Montagnais",
"mog": "Mongondow",
"moh": "Mohawk",
"moi": "Mboi",
"moj": "Monzombo",
"mok": "Morori",
"mom": "Mangue",
"moo": "Monom",
"mop": "Maya Mopan",
"moq": "Mor (Papua)",
"mor": "Moro",
"mos": "Mossi",
"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": "Watut Tengah",
"mpm": "Mixtec Yosondúa",
"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": "Melayu Kutai Kota Bangun",
"mqh": "Mixtec Tlazoyaltepec",
"mqi": "Mariri",
"mqj": "Mamasa",
"mqk": "Manobo Rajah Kabunsuwan",
"mql": "Mbelime",
"mqm": "Marquesas Selatan",
"mqn": "Moronene",
"mqo": "Modole",
"mqp": "Manipa",
"mqq": "Minokok",
"mqr": "Mander",
"mqs": "Makian Barat",
"mqt": "Mok",
"mqu": "Mandari",
"mqv": "Mosimo",
"mqw": "Murupi",
"mqx": "Mamuju",
"mqy": "Manggarai",
"mqz": "Malasanga",
"mr": "Marathi",
"mra": "Mlabri",
"mrb": "Sungwadia",
"mrc": "Maricopa",
"mrd": "Magar Barat",
"mre": "Bahasa Isyarat Martha's Vineyard",
"mrf": "Elseng",
"mrg": "Mising",
"mrh": "Chin Mara",
"mrj": "Mari Barat",
"mrk": "Hmwaveke",
"mrl": "Mortlock",
"mrm": "Mwerlap",
"mrn": "Cheke Holo",
"mro": "Mru",
"mrp": "Morouas",
"mrq": "Marquesas Utara",
"mrr": "Maria Bukit",
"mrs": "Maragus",
"mrt": "Margi",
"mru": "Mono (Cameroon)",
"mrv": "Mangareva",
"mrw": "Maranao",
"mrx": "Dineor",
"mry": "Mandaya Karaga",
"mrz": "Marind",
"ms": "Melayu",
"msb": "Masbatenyo",
"msc": "Maninka Sankaran",
"msd": "Bahasa Isyarat Maya Yucatec",
"mse": "Musey",
"msf": "Mekwei",
"msg": "Moraid",
"msi": "Melayu Sabah",
"msj": "Ma",
"msk": "Mansaka",
"msl": "Molof",
"msm": "Manobo Agusan",
"msn": "Vurës",
"mso": "Mombum",
"msp": "Maritsauá",
"msq": "Caac",
"msr": "Bahasa Isyarat Mongolia",
"mss": "Masela Barat",
"msu": "Musom",
"msv": "Maslam",
"msw": "Mansoanka",
"msx": "Moresada",
"msy": "Aruamu",
"msz": "Momare",
"mt": "Malta",
"mta": "Manobo Cotabato",
"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": "Mixe Totontepec",
"mtp": "Wichí Lhamtés Nocten",
"mtq": "Muong",
"mtr": "Mewari",
"mts": "Yora",
"mtt": "Mota",
"mtu": "Mixtec Tututepec",
"mtv": "Asaro'o",
"mtw": "Magahat",
"mtx": "Mixtec Tidaá",
"mty": "Nabi",
"mua": "Mundang",
"mub": "Mubi",
"muc": "Mbu'",
"mud": "Aleut Mednyj",
"mue": "Media Lengua",
"mug": "Musgu",
"muh": "Mündü",
"mui": "Musi",
"muj": "Mabire",
"mul": "Translingual",
"mum": "Maiwala",
"mun-pro": "Munda Purba",
"muo": "Nyong",
"mup": "Malvi",
"muq": "Miao Xiangxi Timur",
"mur": "Murle",
"mus": "Creek",
"mut": "Muria Barat",
"muu": "Yaaku",
"muv": "Muthuvan",
"mux": "Bo-Ung",
"muy": "Muyang",
"muz": "Mursi",
"mva": "Manam",
"mvb": "Mattole",
"mvd": "Mamboru",
"mvg": "Mixtec Yucuañe",
"mvh": "Mire",
"mvi": "Miyako",
"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": "Kohistani Indus",
"mvz": "Mesqan",
"mwa": "Mwatebu",
"mwb": "Juwal",
"mwc": "Are",
"mwe": "Mwera",
"mwf": "Murrinh-Patha",
"mwg": "Aiklep",
"mwh": "Mouk-Aria",
"mwi": "Labo",
"mwk": "Maninkakan Kita",
"mwl": "Mirandese",
"mwm": "Sar",
"mwn": "Nyamwanga",
"mwo": "Sungwadaga",
"mwp": "Kala Lagaw Ya",
"mwq": "Mün Chin",
"mwr": "Marwari",
"mws": "Mwimbi-Muthambi",
"mwt": "Moken",
"mwu": "Mittu",
"mwv": "Mentawai",
"mww": "Hmong Putih",
"mwz": "Moingi",
"mxa": "Mixtec Oaxaca Barat Laut",
"mxb": "Mixtec Tezoatlán",
"mxd": "Modang",
"mxe": "Mele-Fila",
"mxf": "Malgbe",
"mxg": "Mbangala",
"mxh": "Mvuba",
"mxi": "Mozarab",
"mxj": "Miju",
"mxk": "Monumbo",
"mxl": "Maxi Gbe",
"mxm": "Meramera",
"mxn": "Moi (Indonesia)",
"mxo": "Mbowe",
"mxp": "Mixe Tlahuitoltepec",
"mxq": "Mixe Juquila",
"mxr": "Murik (Malaysia)",
"mxs": "Mixtec Huitepec",
"mxt": "Mixtec Jamiltepec",
"mxu": "Mada (Cameroon)",
"mxv": "Mixtec Metlatónoc",
"mxw": "Namo",
"mxx": "Mahou",
"mxy": "Mixtec Nochixtlán Tenggara",
"mxz": "Masela Tengah",
"my": "Burma",
"myb": "Mbay",
"myc": "Mayeka",
"mye": "Myene",
"myf": "Bambassi",
"myg": "Manta",
"myh": "Makah",
"myj": "Mangayat",
"myk": "Mamara",
"myl": "Moma",
"mym": "Me'en",
"myn-chl": "Ch'olti'",
"myn-pro": "Maya Purba",
"myo": "Anfillo",
"myp": "Pirahã",
"myr": "Muniche",
"mys": "Mesmes",
"myu": "Mundurukú",
"myv": "Erzya",
"myw": "Muyuw",
"myx": "Masaba",
"myy": "Macuna",
"myz": "Mandaia Klasik",
"mza": "Mixtec Santa María Zacatepec",
"mzb": "Berber Saharan Utara",
"mzc": "Bahasa Isyarat Madagascar",
"mzd": "Malimba",
"mze": "Morawa",
"mzg": "Bahasa Isyarat Monastik",
"mzh": "Wichí Lhamtés Güisnay",
"mzi": "Mazatec Ixcatlán",
"mzk": "Mambila Nigeria",
"mzl": "Mixe Mazatlán",
"mzm": "Mumuye",
"mzn": "Mazanderani",
"mzo": "Matipuhy",
"mzp": "Movima",
"mzq": "Mori Atas",
"mzr": "Marúbo",
"mzs": "Macanese",
"mzt": "Mintil",
"mzu": "Inapang",
"mzv": "Manza",
"mzw": "Deg",
"mzx": "Mawayana",
"mzy": "Bahasa Isyarat Mozambique",
"mzz": "Maiadomu",
"na": "Nauru",
"naa": "Namla",
"nab": "Nambikwara",
"nac": "Narak",
"nae": "Naka'ela",
"naf": "Nabak",
"nag": "Pidgin Naga",
"nah": "Nahuatl",
"nai-ala": "Alazapa",
"nai-bay": "Bayogoula",
"nai-cal": "Calusa",
"nai-chi": "Chiquimulilla",
"nai-chu-pro": "Chumash Purba",
"nai-cig": "Ciguayo",
"nai-ckn-pro": "Chinook Purba",
"nai-guz": "Guazacapán",
"nai-hit": "Hitchiti",
"nai-ipa": "Ipai",
"nai-jtp": "Jutiapa",
"nai-jum": "Jumaytepeque",
"nai-kat": "Kathlamet",
"nai-klp-pro": "Kalapuya Purba",
"nai-knm": "Konomihu",
"nai-kum": "Kumeyaay",
"nai-mac": "Macoris",
"nai-mdu-pro": "Maidu Purba",
"nai-miz-pro": "Mixe-Zoque Purba",
"nai-mus-pro": "Muskogi Purba",
"nai-nao": "Naolan",
"nai-nrs": "Shasta Sungai Baru",
"nai-okw": "Okwanuchu",
"nai-per": "Pericú",
"nai-pic": "Picuris",
"nai-plp-pro": "Penuti Penara Purba",
"nai-pom-pro": "Pomo Purba",
"nai-qng": "Quinigua",
"nai-sca-pro": "Siouan-Catawba Purba",
"nai-sin": "Sinacantán",
"nai-sln": "Lenca Salvador",
"nai-spt": "Sahaptin",
"nai-tap": "Tapachultec",
"nai-taw": "Tawasa",
"nai-teq": "Tequistlatec",
"nai-tip": "Tipai",
"nai-tot-pro": "Totozoquean Purba",
"nai-tsi-pro": "Tsimshianik Purba",
"nai-utn-pro": "Utik Purba",
"nai-wai": "Waikuri",
"nai-wji": "Jicaque Barat",
"nai-yup": "Yupiltepeque",
"naj": "Nalu",
"nak": "Nakanai",
"nal": "Nalik",
"nam": "Ngan'gityemerri",
"nan": "Min Nan",
"nan-dat": "Min Datian",
"nan-hbl": "Hokkien",
"nan-hlh": "Min Hailufeng",
"nan-lnx": "Min Longyan",
"nan-tws": "Teochew",
"nan-zhe": "Min Zhenan",
"nan-zsh": "Min Sanxiang",
"nao": "Naaba",
"nap": "Neapolit",
"naq": "Khoekhoe",
"nar": "Iguta",
"nas": "Nasioi",
"nat": "Hungworo",
"naw": "Nawuri",
"nax": "Nakwi",
"nay": "Ngarrindjeri",
"naz": "Nahuatl Coatepec",
"nb": "Bokmål Norway",
"nba": "Nyemba",
"nbb": "Ndoe",
"nbc": "Chang",
"nbd": "Ngbinda",
"nbe": "Naga Konyak",
"nbg": "Nagarchal",
"nbh": "Ngamo",
"nbi": "Naga Mao",
"nbj": "Ngarinman",
"nbk": "Nake",
"nbm": "Ngbaka Ma'bo",
"nbn": "Kuri",
"nbo": "Nkukoli",
"nbp": "Nnam",
"nbq": "Nggem",
"nbr": "Numana",
"nbs": "Bahasa Isyarat Namibia",
"nbt": "Na",
"nbu": "Naga Rongmei",
"nbv": "Ngamambo",
"nbw": "Ngbandi Selatan",
"nby": "Ningera",
"nca": "Iyo",
"ncb": "Nicobar Tengah",
"ncc": "Ponam",
"ncd": "Nachering",
"nce": "Yale",
"ncf": "Notsi",
"ncg": "Nisga'a",
"nch": "Nahuatl Huasteca Tengah",
"nci": "Nahuatl Klasik",
"ncj": "Nahuatl Puebla Utara",
"nck": "Nakara",
"ncl": "Nahuatl Michoacán",
"ncm": "Nambo",
"ncn": "Nauna",
"nco": "Sibe",
"ncr": "Ncane",
"ncs": "Bahasa Isyarat Nicaragua",
"nct": "Naga Chothe",
"ncu": "Chumburung",
"ncx": "Nahuatl Puebla Tengah",
"ncz": "Natchez",
"nd": "Ndebele Utara",
"nda": "Ndasa",
"ndb": "Kenswei Nsei",
"ndc": "Ndau",
"ndd": "Nde-Nsele-Nta",
"ndf": "Nadruvia",
"ndg": "Ndengereko",
"ndh": "Ndali",
"ndi": "Chamba Leko",
"ndj": "Ndamba",
"ndk": "Ndaka",
"ndl": "Ndolo",
"ndm": "Ndam",
"ndn": "Ngundi",
"ndp": "Ndo",
"ndq": "Ndombe",
"ndr": "Ndoola",
"nds": "Jerman Rendah",
"ndt": "Ndunga",
"ndu": "Dugun",
"ndv": "Ndut",
"ndw": "Ndobo",
"ndx": "Nduga",
"ndy": "Lutos",
"ndz": "Ndogo",
"ne": "Nepal",
"nea": "Ngad'a Timur",
"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": "Mixe Tengah Utara",
"ner": "Yahadian",
"nes": "Kinnauri Bhoti",
"net": "Nete",
"neu": "Neo",
"nev": "Nyaheun",
"new": "Newar",
"nex": "Neme",
"ney": "Neyo",
"nez": "Nez Perce",
"nfa": "Dhao",
"nfd": "Ahwai",
"nfl": "Äiwoo",
"nfr": "Nafaanra",
"nfu": "Mfumte",
"ng": "Ndonga",
"nga": "Ngbaka",
"ngb": "Ngbandi Utara",
"ngc": "Ngombe (Congo)",
"ngd": "Ngando (Republik Afrika Tengah)",
"nge": "Ngemba",
"ngf-bin-pro": "Binandere Purba",
"ngf-pro": "Trans-New Guinea Purba",
"ngg": "Ngbaka Manza",
"ngh": "Nǀuu",
"ngi": "Ngizim",
"ngj": "Ngie",
"ngk": "Ngalkbun",
"ngl": "Lomwe",
"ngm": "Kreol Lelaki Ngatik",
"ngn": "Ngwo",
"ngo": "Ngoni",
"ngp": "Ngulu",
"ngq": "Ngoreme",
"ngr": "Nagu",
"ngs": "Gvoko",
"ngt": "Ngeq",
"ngu": "Nahuatl Guerrero",
"ngv": "Nagumi",
"ngw": "Ngwaba",
"ngx": "Nggwahyi",
"ngy": "Tibea",
"ngz": "Ngungwel",
"nha": "Nhanda",
"nhb": "Beng",
"nhc": "Nahuatl Tabasco",
"nhd": "Chiripá",
"nhe": "Nahuatl Huasteca Timur",
"nhf": "Nhuwala",
"nhg": "Nahuatl Tetelcingo",
"nhh": "Nahari",
"nhi": "Nahuatl Zacatlán-Ahuacatlán-Tepetzintla",
"nhk": "Nahuatl Cosoleacaque",
"nhm": "Nahuatl Morelos",
"nhn": "Nahuatl Tengah",
"nho": "Takuu",
"nhp": "Nahuatl Pajapan",
"nhq": "Nahuatl Huaxcaleca",
"nhr": "Naro",
"nht": "Nahuatl Ometepec",
"nhu": "Noone",
"nhv": "Nahuatl Temascaltepec",
"nhw": "Nahuatl Huasteca Barat",
"nhx": "Nahuatl Mecayapan",
"nhy": "Nahuatl Oaxaca Utara",
"nhz": "Nahuatl Santa María La Alta",
"nia": "Nias",
"nib": "Nakame",
"nic-bco-pro": "Benue-Congo Purba",
"nic-bod-pro": "Bantoid Purba",
"nic-eov-pro": "Oti-Volta Timur Purba",
"nic-gns-pro": "Gurunsi Purba",
"nic-grf-pro": "Grassfields Purba",
"nic-gur-pro": "Gur Purba",
"nic-jkn-pro": "Jukunoid Purba",
"nic-lcr-pro": "Cross River Hilir Purba",
"nic-ogo-pro": "Ogoni Purba",
"nic-ovo-pro": "Oti-Volta Purba",
"nic-plt-pro": "Plateau Purba",
"nic-pro": "Niger-Congo Purba",
"nic-ubg-pro": "Ubangi Purba",
"nic-ucr-pro": "Cross River Hulu Purba",
"nic-vco-pro": "Volta-Congo Purba",
"nid": "Ngandi",
"nie": "Niellim",
"nif": "Nek",
"nig": "Ngalakan",
"nih": "Nyiha",
"nii": "Nii",
"nij": "Ngaju",
"nik": "Nicobar Selatan",
"nil": "Nila",
"nim": "Nilamba",
"nin": "Ninzo",
"nio": "Nganasan",
"niq": "Nandi",
"nir": "Nimboran",
"nis": "Nimi",
"nit": "Kolami Tenggara",
"niu": "Niue",
"niv": "Nivkh",
"niw": "Nimo",
"nix": "Hema",
"niy": "Ngiti",
"niz": "Ningil",
"nja": "Nzanyi",
"njb": "Nocte",
"njh": "Naga Lotha",
"nji": "Gudanji",
"njj": "Njen",
"njl": "Njalgulgule",
"njm": "Angami",
"njn": "Naga Liangmai",
"njo-jgl": "Ao Chungli",
"njo-mng": "Ao Mongsen",
"njr": "Njerep",
"njs": "Nisa",
"njt": "Pidgin Ndyuka-Trio",
"nju": "Ngadjunmaya",
"njx": "Kunyi",
"njy": "Njyem",
"njz": "Nyishi",
"nka": "Nkoya",
"nkb": "Naga Khoibu",
"nkc": "Nkongho",
"nkd": "Koireng",
"nke": "Duke",
"nkf": "Naga Inpui",
"nkg": "Nekgini",
"nkh": "Naga Khezha",
"nki": "Naga Thangal",
"nkj": "Nakai",
"nkk": "Nokuku",
"nkm": "Namat",
"nkn": "Nkangala",
"nko": "Nkonya",
"nkp": "Niuatoputapu",
"nkq": "Nkami",
"nkr": "Nukuoro",
"nks": "Asmat Utara",
"nkt": "Nyika",
"nku": "Kulango Bouna",
"nkw": "Nkutu",
"nkx": "Nkoroo",
"nkz": "Nkari",
"nl": "Belanda",
"nla": "Ngombale",
"nlc": "Nalca",
"nle": "Nyala Timur",
"nlg": "Gela",
"nli": "Grangali",
"nlj": "Nyali",
"nlk": "Yali Ninia",
"nll": "Nihali",
"nlm": "Mankiyali",
"nlo": "Ngwi",
"nlq": "Naga Lao",
"nlu": "Nchumbulu",
"nlv": "Nahuatl Orizaba",
"nlw": "Walangama",
"nlx": "Nahali",
"nly": "Nyamal",
"nlz": "Nalögo",
"nma": "Naga Maram",
"nmb": "Big Nambas",
"nmc": "Ngam",
"nmd": "Ndumu",
"nme": "Naga Mzieme",
"nmf": "Naga Tangkhul",
"nmg": "Kwasio",
"nmh": "Naga Monsang",
"nmi": "Nyam",
"nmj": "Ngombe (Republik Afrika Tengah)",
"nmk": "Namakura",
"nml": "Ndemli",
"nmm": "Manangba",
"nmn": "ǃXóõ",
"nmo": "Naga Moyon",
"nmp": "Nimanbur",
"nmq": "Nambya",
"nmr": "Nimbari",
"nms": "Letemboi",
"nmt": "Namonuito",
"nmu": "Maidu Timur Laut",
"nmv": "Ngamini",
"nmw": "Nimoa",
"nmx": "Nama",
"nmy": "Namuyi",
"nmz": "Nawdm",
"nn": "Nynorsk Norway",
"nna": "Nyangumarta",
"nnb": "Nande",
"nnc": "Nancere",
"nnd": "Ambae Barat",
"nne": "Ngandyera",
"nnf": "Ngaing",
"nng": "Naga Maring",
"nnh": "Ngiemboon",
"nni": "Nuaulu Utara",
"nnj": "Nyangatom",
"nnk": "Nankina",
"nnl": "Naga Rengma Utara",
"nnm": "Namia",
"nnn": "Ngete",
"nnp": "Wancho",
"nnq": "Ngindo",
"nnr": "Narungga",
"nnt": "Nanticoke",
"nnu": "Dwang",
"nnv": "Nukunu",
"nnw": "Nuni Selatan",
"nnx": "Ngong",
"nny": "Nyangga",
"nnz": "Nda'nda'",
"no": "Norway",
"noa": "Woun Meu",
"noc": "Nuk",
"nod": "Thai Utara",
"noe": "Nimadi",
"nof": "Nomane",
"nog": "Nogai",
"noh": "Nomu",
"noi": "Noiri",
"noj": "Nonuya",
"nok": "Nooksack",
"nol": "Nomlaki",
"non": "Norse Kuno",
"nop": "Numanggang",
"noq": "Ngongo",
"nos": "Nisu Timur",
"not": "Nomatsiguenga",
"nou": "Ewage-Notu",
"nov": "Novial",
"now": "Nyambo",
"noy": "Noy",
"noz": "Nayi",
"npa": "Nar Phu",
"npb": "Nupbikha",
"npg": "Ponyo",
"nph": "Phom",
"npl": "Nahuatl Puebla Tenggara",
"npn": "Mondropolon",
"npo": "Naga Pochuri",
"nps": "Nipsan",
"npu": "Naga Puimei",
"npx": "Noipä",
"npy": "Napu",
"nqg": "Ede Nago",
"nqk": "Kura Ede Nago",
"nql": "Ngendelengo",
"nqm": "Ndom",
"nqn": "Nen",
"nqo": "N'Ko",
"nqq": "Naga Kyan-Karyaw",
"nqy": "Akyaung Ari",
"nr": "Ndebele Selatan",
"nra": "Ngom",
"nrb": "Nara",
"nrc": "Noric",
"nre": "Naga Rengma Selatan",
"nrf": "Norman",
"nrg": "Narango",
"nri": "Naga Chokri",
"nrk": "Ngarla",
"nrl": "Ngarluma",
"nrm": "Narom",
"nrn": "Norn",
"nrp": "Picene Utara",
"nrr": "Norra",
"nrt": "Kalapuya Utara",
"nru": "Narua",
"nrx": "Ngurmbur",
"nrz": "Lala (New Guinea)",
"nsa": "Naga Sangtam",
"nsb": "Nossob Bawah",
"nsc": "Nshi",
"nsd": "Nisu Selatan",
"nse": "Nsenga",
"nsf": "Nisu Barat Laut",
"nsg": "Ngasa",
"nsh": "Ngoshie",
"nsi": "Bahasa Isyarat Nigeria",
"nsk": "Naskapi",
"nsl": "Bahasa Isyarat Norway",
"nsm": "Sema",
"nsn": "Nehan",
"nso": "Sotho Utara",
"nsp": "Bahasa Isyarat Nepal",
"nsq": "Miwok Sierra Utara",
"nsr": "Bahasa Isyarat Maritim",
"nss": "Nali",
"nst": "Tangsa",
"nsu": "Nahuatl Sierra Negra",
"nsw": "Navut",
"nsx": "Nsongo",
"nsy": "Nasal",
"nsz": "Nisenan",
"ntd": "Tidung Utara",
"ntg": "Ngantangarra",
"nti": "Natioro",
"ntj": "Ngaanyatjarra",
"ntk": "Ikoma",
"ntm": "Nateni",
"nto": "Ntomba",
"ntp": "Tepehuan Utara",
"ntr": "Delo",
"nts": "Natagaimas",
"ntu": "Natügu",
"ntw": "Nottoway",
"ntx": "Somra",
"nty": "Mantsi",
"nua": "Yuanga",
"nub-har": "Haraza",
"nub-pro": "Nubia Purba",
"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": "Nguôn",
"nup": "Nupe",
"nuq": "Nukumanu",
"nur": "Nuguria",
"nus": "Nuer",
"nut": "Nùng",
"nuu": "Ngbundu",
"nuv": "Nuni Utara",
"nuw": "Nguluwan",
"nux": "Mehek",
"nuy": "Nunggubuyu",
"nuz": "Nahuatl Tlamacazapa",
"nv": "Navajo",
"nvh": "Nasarian",
"nvm": "Namiae",
"nvo": "Nyokon",
"nwa": "Nawathinehena",
"nwb": "Nyabwa",
"nwc": "Newar Klasik",
"nwe": "Ngwe",
"nwg": "Ngaiawang",
"nwi": "Tanna Barat Daya",
"nwm": "Nyamusa-Molo",
"nwo": "Nauo",
"nwr": "Nawaru",
"nwx": "Newar Pertengahan",
"nwy": "Nottoway-Meherrin",
"nxa": "Nauete",
"nxd": "Ngando (Congo)",
"nxe": "Nage",
"nxg": "Ngadha",
"nxi": "Nindi",
"nxl": "Nuaulu Selatan",
"nxm": "Numidia",
"nxn": "Ngawun",
"nxo": "Ndambomo",
"nxq": "Naxi",
"nxr": "Ninggerum",
"nxx": "Nafri",
"ny": "Chichewa",
"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": "Nyaw",
"nyx": "Nganyaywana",
"nyy": "Nyakyusa",
"nza": "Mbembe Tigon",
"nzb": "Njebi",
"nzd": "Nzadi",
"nzi": "Nzima",
"nzk": "Nzakara",
"nzm": "Naga Zeme",
"nzs": "Bahasa Isyarat New Zealand",
"nzu": "Teke Tengah",
"nzy": "Nzakambay",
"nzz": "Dogon Nanga Dama",
"oaa": "Orok",
"oac": "Oroch",
"oav": "Avar Kuno",
"obi": "Obispeño",
"obk": "Bontoc Selatan",
"obl": "Oblo",
"obm": "Moabite",
"obo": "Obo Manobo",
"obr": "Burma Kuno",
"obt": "Breton Kuno",
"obu": "Obulom",
"oc": "Occitan",
"oca": "Ocaina",
"och": "Cina Kuno",
"oco": "Cornwall Kuno",
"ocu": "Tlahuica",
"oda": "Odut",
"odk": "Od",
"odt": "Belanda Kuno",
"odu": "Odual",
"ofo": "Ofo",
"ofs": "Frisia Kuno",
"ofu": "Efutop",
"ogb": "Ogbia",
"ogc": "Ogbah",
"oge": "Georgia Kuno",
"ogg": "Ogbogolo",
"ogo": "Khana",
"ogu": "Ogbronuagum",
"ohu": "Hungary Kuno",
"oia": "Oirata",
"oin": "One Inebu",
"oj": "Ojibwe",
"ojb": "Ojibwa Barat Laut",
"ojc": "Ojibwa Tengah",
"ojg": "Ojibwa Timur",
"ojp": "Jepun Kuno",
"ojs": "Severn Ojibwa",
"ojv": "Jawa Ontong",
"ojw": "Ojibwa Barat",
"oka": "Okanagan",
"okb": "Okobo",
"okd": "Okodia",
"oke": "Okpe (Edo Barat Daya)",
"okg": "Kok-Paponk",
"okh": "Koresh-e Rostam",
"oki": "Okiek",
"okj": "Oko-Juwoi",
"okk": "Kwamtim One",
"okl": "Bahasa Isyarat Kentish Kuno",
"okm": "Korea Pertengahan",
"okn": "Oki-No-Erabu",
"oko": "Korea Kuno",
"okr": "Kirike",
"oks": "Oko-Eni-Osayen",
"oku": "Oku",
"okv": "Orokaiva",
"okx": "Okpe (Edo Barat Laut)",
"okz": "Khmer Kuno",
"old": "Mochi",
"ole": "Olekha",
"olm": "Oloma",
"olo": "Livvi",
"olr": "Olrat",
"olt": "Lithuania Kuno",
"olu": "Kuvale",
"om": "Oromo",
"oma": "Omaha-Ponca",
"omb": "Omba",
"omc": "Mochica",
"omg": "Omagua",
"omi": "Omi",
"omk": "Omok",
"oml": "Ombo",
"omn": "Minoan",
"omo": "Utarmbung",
"omp": "Manipur Kuno",
"omq-cha-pro": "Chatino Purba",
"omq-maz-pro": "Mazatec Purba",
"omq-mix-pro": "Mixtecan Purba",
"omq-mxt-pro": "Mixtec Purba",
"omq-otp-pro": "Oto-Pamean Purba",
"omq-pro": "Oto-Manguean Purba",
"omq-sjq": "Chatino San Juan Quiahije",
"omq-tel": "Mixtec Teposcolula",
"omq-teo": "Chatino Teojomulco",
"omq-tri-pro": "Triqui Purba",
"omq-zap-pro": "Zapotecan Purba",
"omq-zpc-pro": "Zapotec Purba",
"omr": "Marathi Kuno",
"omt": "Omotik",
"omu": "Omurano",
"omv-aro-pro": "Aroid Purba",
"omv-diz-pro": "Dizoid Purba",
"omv-pro": "Omotik Purba",
"omw": "Tairora Selatan",
"omx": "Mon Kuno",
"ona": "Selk'nam",
"onb": "Lingao",
"one": "Oneida",
"ong": "Olo",
"oni": "Onin",
"onj": "Onjob",
"onk": "Kabore One",
"onn": "Onobasulu",
"ono": "Onondaga",
"onp": "Sartang",
"onr": "One Utara",
"ons": "Ono",
"ont": "Ontenu",
"onu": "Unua",
"onw": "Nubia Kuno",
"onx": "Pidgin Onin",
"ood": "O'odham",
"oog": "Ong",
"oon": "Önge",
"oor": "Oorlams",
"oos": "Ossetia Kuno",
"opa": "Okpamheri",
"opk": "Kopkaka",
"opm": "Oksapmin",
"opo": "Opao",
"opt": "Opata",
"opy": "Ofayé",
"or": "Odia",
"ora": "Oroha",
"ore": "Orejón",
"org": "Oring",
"orh": "Oroqen",
"oro": "Orokolo",
"orr": "Oruma",
"ors": "Orang Seletar",
"ort": "Oriya Adivasi",
"oru": "Ormuri",
"orv": "Slav Timur Kuno",
"orw": "Oro Win",
"orx": "Oro",
"orz": "Ormu",
"os": "Ossetia",
"osa": "Osage",
"osc": "Osci",
"osi": "Osing",
"osn": "Sunda Kuno",
"oso": "Ososo",
"osp": "Sepanyol Kuno",
"ost": "Osatu",
"osu": "One Selatan",
"osx": "Saxon Kuno",
"ota": "Turki Usmaniyah",
"otb": "Tibet Kuno",
"otd": "Ot Danum",
"ote": "Otomi Mezquital",
"oti": "Oti",
"otk": "Turk Kuno",
"otl": "Otomi Tilapa",
"otm": "Otomi Tanah Tinggi Timur",
"otn": "Otomi Tenango",
"oto-otm-pro": "Otomi Purba",
"oto-pro": "Otomian Purba",
"otq": "Otomi Querétaro",
"otr": "Otoro",
"ots": "Otomi Estado de México",
"ott": "Otomi Temoaya",
"otu": "Otuke",
"otw": "Ottawa",
"otx": "Otomi Texcatepec",
"oty": "Tamil Kuno",
"otz": "Otomi Ixtenco",
"oub": "Glio-Oubi",
"oue": "Oune",
"oui": "Uyghur Kuno",
"oum": "Ouma",
"ovd": "Älvdalen",
"owi": "Owiniga",
"owl": "Wales Kuno",
"oyb": "Oy",
"oyd": "Oyda",
"oym": "Wayampi",
"oyy": "Oya'oya",
"ozm": "Koonzime",
"pa": "Punjabi",
"paa-kmn": "Kómnzo",
"paa-kwn": "Kuwani",
"paa-lei": "Leitre",
"paa-nha-pro": "Halmahera Utara Purba",
"paa-nun": "Nungon",
"pab": "Pareci",
"pac": "Pacoh",
"pad": "Paumarí",
"pae": "Pagibete",
"paf": "Paranawát",
"pag": "Pangasinan",
"pah": "Tenharim",
"pai": "Pe",
"pak": "Parakanã",
"pal": "Parsi Pertengahan",
"pam": "Kapampangan",
"pao": "Paiute Utara",
"pap": "Papiamentu",
"paq": "Parya",
"par": "Panamint",
"pas": "Papasena",
"pat": "Papitalai",
"pau": "Palau",
"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": "Pame Tengah",
"pbv": "Pnar",
"pby": "Pyu",
"pca": "Santa Inés Ahuatempan Popoloca",
"pcb": "Pear",
"pcc": "Bouyei",
"pcd": "Picard",
"pce": "Ruching Palaung",
"pcf": "Paliyan",
"pcg": "Paniya",
"pch": "Pardhan",
"pci": "Duruwa",
"pcj": "Parenga",
"pck": "Paite",
"pcl": "Pardhi",
"pcm": "Pijin Nigeria",
"pcn": "Piti",
"pcp": "Pacahuara",
"pcw": "Pyapun",
"pda": "Anam",
"pdc": "Jerman Pennsylvania",
"pdi": "Pa Di",
"pdn": "Fedan",
"pdo": "Padoe",
"pdt": "Plautdietsch",
"pdu": "Kayan",
"pea": "Peranakan Indonesian",
"peb": "Pomo Timur",
"ped": "Mala (New Guinea)",
"pee": "Taje",
"pef": "Pomo Timur Laut",
"peg": "Pengo",
"peh": "Bonan",
"pei": "Chichimeca-Jonaz",
"pej": "Pomo Utara",
"pek": "Penchal",
"pel": "Pekal",
"pem": "Phende",
"peo": "Parsi Kuno",
"pep": "Kunja",
"peq": "Pomo Selatan",
"pev": "Pémono",
"pex": "Petats",
"pey": "Petjo",
"pez": "Penan Timur",
"pfa": "Pááfang",
"pfe": "Peere",
"pga": "Arab Juba",
"pgd": "Gandhari",
"pgg": "Pangwali",
"pgi": "Pagi",
"pgk": "Rerep",
"pgl": "Primitive Irish",
"pgn": "Paelignian",
"pgs": "Pangseng",
"pgu": "Pagu",
"pgz": "Bahasa Isyarat Papua New Guinea",
"pha": "Pa-Hng",
"phd": "Phudagi",
"phg": "Phuong",
"phh": "Phukha",
"phi-din": "Agta Dinapigue",
"phi-kal-pro": "Kalamian Purba",
"phi-nag": "Agta Nagtipunan",
"phi-pro": "Filipina Purba",
"phk": "Phake",
"phl": "Phalura",
"phm": "Phimbi",
"phn": "Phoenicia",
"pho": "Phunoi",
"phq": "Phana'",
"phr": "Pahari-Potwari",
"pht": "Phu Thai",
"phu": "Phuan",
"phv": "Pahlavani",
"phw": "Phangduwali",
"pi": "Pali",
"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": "Baekje",
"pkg": "Pak-Tong",
"pkh": "Pankhu",
"pkn": "Pakanha",
"pko": "Pökoot",
"pkp": "Pukapukan",
"pkr": "Attapady Kurumba",
"pks": "Bahasa Isyarat Pakistan",
"pkt": "Maleng",
"pku": "Paku",
"pl": "Poland",
"pla": "Miani",
"plb": "Polonombauk",
"plc": "Central Palawano",
"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": "Palawano Barat Daya",
"plw": "Palawano Brooke's Point",
"ply": "Bolyu",
"plz": "Paluan",
"pma": "Paama",
"pmb": "Pambia",
"pmd": "Pallanganmiddang",
"pme": "Pwaamei",
"pmf": "Pamona",
"pmi": "Pumi Utara",
"pmj": "Pumi Selatan",
"pmk": "Pamlico",
"pml": "Sabir",
"pmm": "Pol",
"pmn": "Pam",
"pmo": "Pom",
"pmq": "Pame Utara",
"pmr": "Paynamar",
"pms": "Piemonte",
"pmt": "Tuamotuan",
"pmu": "Mirpur Panjabi",
"pmw": "Plains Miwok",
"pmx": "Poumei Naga",
"pmy": "Papuan Malay",
"pmz": "Southern Pame",
"pna": "Punan Bah-Biau",
"pnb": "Punjabi Barat",
"pnc": "Pannei",
"pnd": "Mpinda",
"pne": "Penan Barat",
"png": "Pongu",
"pnh": "Penrhyn",
"pni": "Aoheng",
"pnj": "Pinjarup",
"pnk": "Paunaca",
"pnl": "Paleni",
"pnm": "Punan Batu",
"pnn": "Pinai-Hagahai",
"pno": "Panobo",
"pnp": "Pancana",
"pnq": "Pana (Afrika Barat)",
"pnr": "Panim",
"pns": "Ponosakan",
"pnt": "Yunani Pontus",
"pnu": "Jiongnai Bunu",
"pnv": "Pinigura",
"pnw": "Panyjima",
"pnx": "Phong-Kniang",
"pny": "Pinyin",
"pnz": "Pana (Afrika Tengah)",
"poc": "Poqomam",
"poe": "San Juan Atzingo Popoloca",
"pof": "Poke",
"pog": "Potiguára",
"poh": "Poqomchi'",
"poi": "Highland Popoluca",
"pok": "Pokangá",
"pom": "Pomo Tenggara",
"pon": "Pohnpei",
"poo": "Pomo Tengah",
"pop": "Pwapwa",
"poq": "Texistepec Popoluca",
"pos": "Sayula Popoluca",
"pot": "Potawatomi",
"pov": "Kreol Guinea-Bissau",
"pow": "San Felipe Otlaltepec Popoloca",
"pox": "Polabia",
"poy": "Pogolo",
"poz-abi": "Abai",
"poz-bal": "Baliledo",
"poz-btk-pro": "Bungku-Tolaki Purba",
"poz-cet-pro": "Melayu-Polinesia Tengah-Timur Purba",
"poz-hce-pro": "Halmahera-Cenderawasih Purba",
"poz-lgx-pro": "Lampungik Purba",
"poz-mcm-pro": "Melayu-Chamik Purba",
"poz-mic-pro": "Mikronesia Purba",
"poz-mly-pro": "Melayik Purba",
"poz-msa-pro": "Melayu-Sumbawa Purba",
"poz-nes": "Nese",
"poz-oce-pro": "Oceania Purba",
"poz-pcc-pro": "Pasifik Tengah Purba",
"poz-pep-pro": "Polinesia Timur Purba",
"poz-pnp-pro": "Polinesia Teras Purba",
"poz-pol-pro": "Polinesia Purba",
"poz-pro": "Melayu-Polinesia Purba",
"poz-sml": "Melayu Sarawak",
"poz-ssw-pro": "Sulawesi Selatan Purba",
"poz-swa-pro": "Sarawak Utara Purba",
"poz-ter": "Melayu Terengganu",
"ppa": "Pao",
"ppe": "Papi",
"ppi": "Paipai",
"ppk": "Uma",
"ppl": "Pipil",
"ppm": "Papuma",
"ppn": "Papapana",
"ppo": "Folopa",
"ppq": "Pei",
"pps": "San Luís Temalacayuca Popoloca",
"ppt": "Pa",
"ppu": "Papora",
"pqa": "Pa'a",
"pqe-pro": "Melayu-Polinesia Timur Purba",
"pqm": "Malecite-Passamaquoddy",
"pra": "Prakrit",
"pra-niy": "Prakrit Niya",
"prc": "Parachi",
"pre": "Principe",
"prf": "Paranan",
"prg": "Prusia Kuno",
"prh": "Porohanon",
"pri": "Paicî",
"prk": "Parauk",
"prl": "Bahasa Isyarat Peru",
"prm": "Kibiri",
"prn": "Prasuni",
"pro": "Occitan Kuno",
"prq": "Ashéninka Perené",
"prr": "Puri",
"prt": "Phai",
"pru": "Puragi",
"prw": "Parawen",
"prx": "Purik",
"prz": "Bahasa Isyarat Providencia",
"ps": "Pashto",
"psa": "Asue Awyu",
"psc": "Bahasa Isyarat Parsi",
"psd": "Plains Indian Sign Language",
"pse": "Melayu Barisan Selatan",
"psg": "Bahasa Isyarat Pulau Pinang",
"psh": "Pashayi Barat Daya",
"psi": "Pashayi Tenggara",
"psl": "Bahasa Isyarat Puerto Rico",
"psm": "Pauserna",
"psn": "Panasuan",
"pso": "Bahasa Isyarat Poland",
"psp": "Bahasa Isyarat Filipina",
"psq": "Pasi",
"psr": "Bahasa Isyarat Portugis",
"pss": "Kaulong",
"psw": "Port Sandwich",
"psy": "Piscataway",
"pt": "Portugis",
"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": "Paiwan",
"pwo": "Pwo Barat",
"pwr": "Powari",
"pww": "Pwo Utara",
"pxm": "Quetzaltepec Mixe",
"pye": "Pye Krumen",
"pym": "Fyam",
"pyn": "Poyanáwa",
"pys": "Bahasa Isyarat Paraguay",
"pyu": "Puyuma",
"pyx": "Tircul",
"pyy": "Pyen",
"pzh": "Pazeh",
"pzn": "Para Naga",
"qfa-adm-pro": "Andaman Besar Purba",
"qfa-bet-pro": "Be-Tai Purba",
"qfa-cka-pro": "Chukotko-Kamchatka Purba",
"qfa-hur-pro": "Hurro-Urartia Purba",
"qfa-kad-pro": "Kadu Purba",
"qfa-kms-pro": "Kam-Sui Purba",
"qfa-kor-pro": "Korea Purba",
"qfa-kra-pro": "Kra Purba",
"qfa-lic-pro": "Hlai Purba",
"qfa-onb-pro": "Be Purba",
"qfa-ong-pro": "Onga Purba",
"qfa-tak-pro": "Kra-Dai Purba",
"qfa-yen-pro": "Yenisei Purba",
"qfa-yuk-pro": "Yukaghir Purba",
"qu": "Quechua",
"qua": "Quapaw",
"quc": "K'iche'",
"qui": "Quileute",
"qum": "Sipakapense",
"qun": "Quinault",
"quq": "Quinqui",
"quv": "Sacapulteco",
"qvy": "Queyu",
"qwc": "Quechua Klasik",
"qwe-kch": "Kichwa",
"qwe-pro": "Quechua Purba",
"qwm": "Kipchak",
"qwt": "Kwalhioqua-Tlatskanai",
"qxs": "Southern Qiang",
"qya": "Quenya",
"qyp": "Quiripi",
"raa": "Dungmali",
"rab": "Chamling",
"rac": "Rasawa",
"rad": "Rade",
"raf": "Meohang Barat",
"rag": "Logooli",
"rah": "Rabha",
"rai": "Ramoaaina",
"raj": "Rajasthan",
"rak": "Tulu-Bohuai",
"ral": "Ralte",
"ram": "Canela",
"ran": "Riantana",
"rao": "Rao",
"rap": "Rapa Nui",
"raq": "Saam",
"rar": "Rarotonga",
"ras": "Tegali",
"rat": "Razajerdi",
"rau": "Raute",
"rav": "Sampang",
"raw": "Rawang",
"rax": "Rang",
"ray": "Rapa",
"raz": "Rahambuu",
"rbb": "Rumai Palaung",
"rbk": "Bontoc Utara",
"rbl": "Bikol Miraya",
"rcf": "Perancis Kreol Réunion",
"rdb": "Rudbari",
"rea": "Rerau",
"reb": "Rembong",
"ree": "Kayan Rejang",
"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": "Yunani Romani",
"rgk": "Rangkas",
"rgn": "Romagnol",
"rgr": "Resígaro",
"rgs": "Roglai Selatan",
"rgu": "Ringgou",
"rhg": "Rohingya",
"rhp": "Yahang",
"ria": "Reang",
"rif": "Tarifit",
"ril": "Riang",
"rim": "Nyaturu",
"rin": "Nungu",
"rir": "Ribun",
"rit": "Ritarungo",
"riu": "Riung",
"rjg": "Rajong",
"rji": "Raji",
"rjs": "Rajbanshi",
"rka": "Kraol",
"rkb": "Rikbaktsa",
"rkh": "Rakahanga-Manihiki",
"rki": "Rakhine",
"rkm": "Marka",
"rkt": "Kamta",
"rkw": "Arakwal",
"rm": "Romansh",
"rma": "Rama",
"rmb": "Rembarunga",
"rmc": "Romani Carpathia",
"rmd": "Denmark Pengembara",
"rme": "Angloromani",
"rmf": "Romani Finland Kalo",
"rmg": "Norway Pengembara",
"rmh": "Murkim",
"rmi": "Lomavren",
"rmk": "Romkun",
"rml": "Romani Baltik",
"rmm": "Roma",
"rmn": "Romani Balkan",
"rmo": "Romani Sinte",
"rmp": "Rempi",
"rmq": "Caló",
"rms": "Bahasa Isyarat Romania",
"rmt": "Domari",
"rmu": "Tavringer Romani",
"rmv": "Romanova",
"rmw": "Romani Wales",
"rmx": "Romam",
"rmy": "Romani Vlax",
"rmz": "Marma",
"rnd": "Ruwund",
"rng": "Ronga",
"rnl": "Ranglong",
"rnn": "Roon",
"rnp": "Rongpo",
"rnw": "Rungwa",
"ro": "Romania",
"roa-ang": "Angevin",
"roa-bbn": "Bourbonnais-Berrichon",
"roa-brg": "Bourguignon",
"roa-can": "Cantabrian",
"roa-cha": "Champenois",
"roa-fcm": "Franc-Comtois",
"roa-gal": "Gallo",
"roa-gib": "Gallo-Italik Basilicata",
"roa-gis": "Gallo-Italik Sicily",
"roa-leo": "Leon",
"roa-lor": "Lorrain",
"roa-oca": "Catalonia Kuno",
"roa-ole": "Leon Kuno",
"roa-ona": "Navarro-Aragon Kuno",
"roa-opt": "Galicia-Portugis Kuno",
"roa-orl": "Orléanais",
"roa-poi": "Poitevin-Saintongeais",
"roa-tar": "Tarantino",
"rob": "Tae'",
"roc": "Roglai Cacgia",
"rod": "Rogo",
"roe": "Ronji",
"rof": "Rombo",
"rog": "Roglai Utara",
"rol": "Romblomanon",
"rom": "Romani",
"roo": "Rotokas",
"rop": "Kriol",
"ror": "Rongga",
"rou": "Runga",
"row": "Dela-Oenale",
"rpn": "Repanbitip",
"rpt": "Rapting",
"rri": "Ririo",
"rro": "Roro",
"rrt": "Arritinngithigh",
"rsb": "Romano-Serbia",
"rsk": "Rusyn Pannonia",
"rsl": "Bahasa Isyarat Rusia",
"rsm": "Bahasa Isyarat Miriwoong",
"rtc": "Rungtu",
"rth": "Ratahan",
"rtm": "Rotuma",
"rtw": "Rathawi",
"ru": "Rusia",
"rub": "Gungu",
"ruc": "Ruuli",
"rue": "Rusyn",
"ruf": "Luguru",
"rug": "Roviana",
"ruh": "Ruga",
"rui": "Rufiji",
"ruk": "Che",
"ruo": "Istro-Romania",
"rup": "Aromania",
"ruq": "Megleno-Romania",
"rut": "Rutul",
"ruu": "Lanas Lobu",
"ruy": "Mala (Nigeria)",
"ruz": "Ruma",
"rw": "Rwanda-Rundi",
"rwa": "Rawo",
"rwk": "Rwa",
"rwm": "Amba",
"rwo": "Rawa",
"rxd": "Ngardi",
"rxw": "Karuwali",
"ryn": "Amami Ōshima Utara",
"rys": "Yaeyama",
"ryu": "Okinawa",
"rzh": "Razihi",
"sa": "Sanskrit",
"saa": "Saba",
"sab": "Buglere",
"sac": "Fox",
"sad": "Sandawe",
"sae": "Sabanê",
"saf": "Safaliba",
"sah": "Yakut",
"sai-all": "Allentiac",
"sai-and": "Andoquero",
"sai-ayo": "Ayomán",
"sai-bae": "Baenan",
"sai-bag": "Bagua",
"sai-bet": "Betoi",
"sai-bor-pro": "Bora Purba",
"sai-cac": "Cacán",
"sai-caq": "Caranqui",
"sai-car-pro": "Carib Purba",
"sai-cat": "Catacao",
"sai-cer-pro": "Cerrado Purba",
"sai-chi": "Chirino",
"sai-chn": "Chaná",
"sai-chp": "Chapacura",
"sai-chr": "Charrua",
"sai-chu": "Churuya",
"sai-cje-pro": "Jê Tengah Purba",
"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": "Jê Purba",
"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": "Jê Utara Purba",
"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": "Jê Selatan Purba",
"sai-tab": "Tabancale",
"sai-tal": "Tallán",
"sai-tap": "Tapayuna",
"sai-tar-pro": "Taranoan Purba",
"sai-teu": "Teushen",
"sai-tim": "Timote",
"sai-tpr": "Taparita",
"sai-trr": "Tarairiú",
"sai-wai": "Waitaká",
"sai-way": "Wayumara",
"sai-wit-pro": "Witotoan Purba",
"sai-wnm": "Wanham",
"sai-xoc": "Xocó",
"sai-yao": "Yao (Amerika Selatan)",
"sai-yar": "Yarumá",
"sai-yri": "Yuri",
"sai-yup": "Yupua",
"sai-yur": "Yurumanguí",
"saj": "Sahu",
"sak": "Sake",
"sal-pro": "Salish Purba",
"sam": "Samaritan Aramaic",
"sao": "Sause",
"saq": "Samburu",
"sar": "Saraveca",
"sas": "Sasak",
"sat": "Santal",
"sau": "Saleman",
"sav": "Saafi-Saafi",
"saw": "Sawi",
"sax": "Sa",
"say": "Saya",
"saz": "Saurashtra",
"sba": "Ngambay",
"sbb": "Simbo",
"sbc": "Gele'",
"sbd": "Samo Selatan",
"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": "Sardinia",
"scb": "Chut",
"sce": "Dongxiang",
"scf": "Perancis Kreol San Miguel",
"scg": "Sanggau",
"sch": "Sakachep",
"sci": "Melayu Sri Lanka",
"sck": "Sadri",
"scl": "Shina",
"scn": "Sicilia",
"sco": "Scots",
"scp": "Yolmo",
"scq": "Sa'och",
"scs": "Slavey Utara",
"scu": "Shumcho",
"scv": "Sheni",
"scw": "Sha",
"scx": "Sicel",
"sd": "Sindhi",
"sda": "Toraja-Sa'dan",
"sdb": "Shabak",
"sdc": "Sassari",
"sde": "Surubu",
"sdf": "Sarli",
"sdg": "Savi",
"sdh": "Kurdi Selatan",
"sdj": "Suundi",
"sdk": "Sos Kundi",
"sdl": "Saudi Arabian Sign Language",
"sdm": "Semandang",
"sdn": "Gallura",
"sdo": "Bidayuh Bukar-Sadong",
"sdp": "Sherdukpen",
"sdr": "Oraon Sadri",
"sds": "Barbar Tunisia",
"sdu": "Sarudu",
"sdv-daj-pro": "Daju Purba",
"sdv-eje-pro": "Jebel Timur Purba",
"sdv-nil-pro": "Nilotik Purba",
"sdv-nyi-pro": "Nyima Purba",
"sdv-tmn-pro": "Taman Purba",
"sdx": "Melanau Sibu",
"se": "Sami Utara",
"sea": "Semai",
"sec": "Sechelt",
"sed": "Sedang",
"see": "Seneca",
"sef": "Cebaara Senoufo",
"seg": "Segeju",
"seh": "Sena",
"sei": "Seri",
"sej": "Sene",
"sek": "Sekani",
"sel-nor": "Selkup Utara",
"sel-pro": "Selkup Purba",
"sel-sou": "Selkup Selatan",
"sem-amm": "Ammon",
"sem-amo": "Amor",
"sem-cha": "Chaha",
"sem-dad": "Dadan",
"sem-dum": "Dumait",
"sem-has": "Hasait",
"sem-his": "Hisma",
"sem-mhr": "Muher",
"sem-pro": "Samiah Purba",
"sem-saf": "Safait",
"sem-sam": "Samal",
"sem-srb": "Arab Selatan Kuno",
"sem-tay": "Tayman",
"sem-tha": "Thamud",
"sem-wes-pro": "Samiah Barat Purba",
"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": "Chin Senthang",
"sfb": "French Belgian Sign Language",
"sfm": "Small Flowery Miao",
"sfs": "Bahasa Isyarat Afrika Selatan",
"sfw": "Sehwi",
"sg": "Sango",
"sga": "Ireland Kuno",
"sgb": "Mag-Anchi Ayta",
"sgc": "Kipsigis",
"sgd": "Surigaonon",
"sge": "Segai",
"sgg": "Swiss-German Sign Language",
"sgh": "Shughni",
"sgi": "Suga",
"sgk": "Sangkong",
"sgm": "Singa",
"sgp": "Singpho",
"sgr": "Sangisari",
"sgs": "Samogitia",
"sgt": "Brokpake",
"sgu": "Salas",
"sgw": "Sebat Bet Gurage",
"sgx": "Sierra Leone Sign Language",
"sgy": "Sanglechi",
"sgz": "Sursurunga",
"sh": "Serbo-Croatia",
"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": "Shan",
"sho": "Shanga",
"shp": "Shipibo-Conibo",
"shq": "Sala",
"shr": "Shi",
"shs": "Shuswap",
"sht": "Shasta",
"shu": "Arab Chad",
"shv": "Shehri",
"shw": "Shwai",
"shx": "She",
"shy": "Tachawit",
"shz": "Syenara Senoufo",
"si": "Sinhala",
"sia": "Sami Akkala",
"sib": "Sebop",
"sid": "Sidamo",
"sie": "Simaa",
"sif": "Siamou",
"sig": "Paasaal",
"sih": "Zire",
"sii": "Shom Peng",
"sij": "Numbami",
"sik": "Sikiana",
"sil": "Tumulung Sisaala",
"sim": "Seim",
"sio-pro": "Sioux Purba",
"sip": "Sikkim",
"siq": "Sonia",
"sir": "Siri",
"sis": "Siuslaw",
"sit-aao-pro": "Naga Tengah Purba",
"sit-bai-pro": "Bai Purba",
"sit-ban": "Bangru",
"sit-bdi-pro": "Bodish Purba",
"sit-bok": "Bokar",
"sit-cai": "Caijia",
"sit-cha": "Chairel",
"sit-ers-pro": "Ersu Purba",
"sit-hrs-pro": "Hrusish Purba",
"sit-jap": "Japhug",
"sit-kha-pro": "Kham Purba",
"sit-khb-pro": "Kho-Bwa Purba",
"sit-khp-pro": "Puroik Purba",
"sit-khw-pro": "Kho-Bwa Barat Purba",
"sit-kon-pro": "Naga Utara Purba",
"sit-liz": "Lizu",
"sit-lnj": "Longjia",
"sit-lrn": "Luren",
"sit-luu-pro": "Luish Purba",
"sit-nas-pro": "Naish Purba",
"sit-prn": "Puiron",
"sit-pro": "Sino-Tibet Purba",
"sit-sit": "Situ",
"sit-tam-pro": "Tamang Purba",
"sit-tan-pro": "Tani Purba",
"sit-tgm": "Tangam",
"sit-tng-pro": "Tangkhul Purba",
"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",
"sjd": "Sami Kildin",
"sje": "Sami Pite",
"sjg": "Assangori",
"sjk": "Sami Kemi",
"sjl": "Miji",
"sjm": "Mapun",
"sjn": "Sindarin",
"sjo": "Xibe",
"sjp": "Surjapuri",
"sjr": "Siar-Lak",
"sjs": "Senhaja De Srair",
"sjt": "Sami Ter",
"sju": "Sami Ume",
"sjw": "Shawnee",
"sk": "Slovak",
"ska": "Skagit",
"skb": "Saek",
"skc": "Ma Manda",
"skd": "Miwok Sierra Selatan",
"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": "Maia",
"skt": "Sakata",
"sku": "Sakao",
"skv": "Skou",
"skw": "Belanda Kreol Skepi",
"skx": "Seko Padang",
"sky": "Sikaiana",
"skz": "Sekar",
"sl": "Slovenia",
"sla-pro": "Slav Purba",
"slc": "Saliba (Colombia)",
"sld": "Sissala",
"sle": "Sholaga",
"slf": "Swiss-Italian Sign Language",
"slg": "Selungai Murut",
"slh": "Salish Puget Sound Selatan",
"slj": "Salumá",
"sll": "Salt-Yui",
"slm": "Pangutaran Sama",
"sln": "Salinan",
"slp": "Lamaholot",
"slq": "Salchuq",
"slr": "Salar",
"sls": "Singapore Sign Language",
"slt": "Sila",
"slu": "Selaru",
"slw": "Sialum",
"slx": "Salampasu",
"sly": "Selayar",
"slz": "Ma'ya",
"sm": "Samoa",
"sma": "Sami Selatan",
"smb": "Simbari",
"smc": "Som",
"smd": "Sama",
"smf": "Auwe",
"smg": "Simbali",
"smh": "Samei",
"smi-pro": "Sami Purba",
"smj": "Sami Lule",
"smk": "Bolinao",
"sml": "Bajau Laut",
"smm": "Musasa",
"smn": "Sami Inari",
"smp": "Ibrani Samaria",
"smq": "Samo",
"smr": "Simeulue",
"sms": "Sami Skolt",
"smt": "Simte",
"smu": "Somray",
"smv": "Samvedi",
"smw": "Sumbawa",
"smx": "Samba",
"smy": "Semnani",
"smz": "Simeku",
"sn": "Shona",
"snb": "Sebuyau",
"snc": "Sinaugoro",
"sne": "Bidayuh Bau",
"snf": "Noon",
"sng": "Sanga (Congo)",
"sni": "Sensi",
"snj": "Riverain Sango",
"snk": "Soninke",
"snl": "Sangil",
"snm": "Ma'di Selatan",
"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": "Somali",
"soa": "Thai Song",
"sob": "Sobei",
"soc": "Soko",
"sod": "Songoora",
"soe": "Songomeno",
"sog": "Sogdia",
"soh": "Aka (Sudan)",
"soi": "Sonha",
"sok": "Sokoro",
"sol": "Solos",
"son-pro": "Songhai Purba",
"soo": "Nsong",
"sop": "Songe",
"soq": "Kanasi",
"sor": "Somrai",
"sos": "Seenku",
"sou": "Thai Selatan",
"sov": "Sonsorol",
"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": "Picenum Selatan",
"spy": "Sabaot",
"sq": "Albania",
"sqa": "Shama-Sambuga",
"sqh": "Shau",
"sqj-pro": "Albania Purba",
"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": "Murut Serudung",
"srl": "Isirawa",
"srm": "Saramaccan",
"srn": "Seranan",
"srq": "Sirionó",
"srr": "Serer",
"srs": "Tsuut'ina",
"srt": "Sauri",
"sru": "Suruí",
"srv": "Waray Sorsogon",
"srw": "Serua",
"srx": "Sirmauri",
"sry": "Sera",
"srz": "Shahmirzadi",
"ss": "Swazi",
"ssa-klk-pro": "Kuliak Purba",
"ssa-kom-pro": "Koma Purba",
"ssa-pro": "Nilo-Sahara Purba",
"ssb": "Bajau Pantai Timur",
"ssc": "Suba-Simbiti",
"ssd": "Siroi",
"sse": "Balangingi",
"ssf": "Thao",
"ssg": "Seimat",
"ssh": "Arab Syihuh",
"ssi": "Sansi",
"ssj": "Sausi",
"ssk": "Sunam",
"ssl": "Sisaala Barat",
"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": "Saho",
"ssz": "Sengseng",
"st": "Sotho",
"stb": "Subanen Utara",
"std": "Sentinel",
"ste": "Liana-Seti",
"stf": "Seta",
"stg": "Trieng",
"sth": "Shelta",
"sti": "Bulo Stieng",
"stj": "Matya Samo",
"stk": "Arammba",
"stm": "Setaman",
"stn": "Owa",
"sto": "Stoney",
"stp": "Tepehuan Tenggara",
"stq": "Frisia Saterland",
"str": "Saanich",
"sts": "Shumashti",
"stt": "Budeh Stieng",
"stu": "Samtao",
"stv": "Silt'e",
"stw": "Satawal",
"sty": "Tatar Siberia",
"su": "Sunda",
"sua": "Sulka",
"sub": "Suku",
"suc": "Subanon Barat",
"sue": "Suena",
"sug": "Suganga",
"sui": "Suki",
"suk": "Sukuma",
"suq": "Suri",
"sur": "Mwaghavul",
"sus": "Susu",
"sut": "Subtiaba",
"suv": "Sulung",
"suw": "Sumbwa",
"sux": "Sumeria",
"suy": "Suyá",
"suz": "Sunwar",
"sv": "Sweden",
"sva": "Svan",
"svb": "Ulau-Suain",
"svc": "Inggeris Kreol Vincent",
"sve": "Serili",
"svk": "Slovakian Sign Language",
"svm": "Slavomolisano",
"svs": "Savosavo",
"svx": "Skalvian",
"sw": "Swahili",
"swb": "Comoros Maore",
"swf": "Sere",
"swg": "Swabia",
"swi": "Sui",
"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": "Kalapuya Selatan",
"sxl": "Selonia",
"sxm": "Samre",
"sxn": "Sangir",
"sxo": "Sorothaptic",
"sxr": "Saaroa",
"sxs": "Sasaru",
"sxw": "Saxwe Gbe",
"sya": "Siang",
"syb": "Subanen Tengah",
"syc": "Suryani Klasik",
"syd-pro": "Samoyed Purba",
"syi": "Seki",
"syk": "Sukur",
"syl": "Sylhet",
"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": "Silesia",
"szn": "Sula",
"szp": "Suabo",
"szv": "Isubu",
"szw": "Sawai",
"szy": "Sakizaya",
"ta": "Tamil",
"taa": "Lower Tanana",
"tab": "Tabasaran",
"tac": "Lowland Tarahumara",
"tad": "Tause",
"tae": "Tariana",
"taf": "Tapirapé",
"tag": "Tagoi",
"tai-pro": "Tai Purba",
"tai-swe-pro": "Tai Barat Daya Purba",
"taj": "Tamang Timur",
"tak": "Tala",
"tal": "Tal",
"tan": "Tangale",
"tao": "Yami",
"tap": "Taabwa",
"tar": "Tarahumara Tengah",
"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": "Tairora Utara",
"tbh": "Thurawal",
"tbi": "Gaam",
"tbj": "Tiang",
"tbk": "Calamian Tagbanwa",
"tbl": "Tboli",
"tbm": "Tagbu",
"tbn": "Barro Negro Tunebo",
"tbo": "Tawala",
"tbp": "Taworta",
"tbq-bdg-pro": "Bodo-Garo Purba",
"tbq-blg": "Bailang",
"tbq-brm-pro": "Burma Purba",
"tbq-gkh": "Gokhy",
"tbq-kuk-pro": "Kuki-Chin Purba",
"tbq-lal-pro": "Lalo Purba",
"tbq-laz": "Laze",
"tbq-lob-pro": "Lolo-Burma Purba",
"tbq-lol-pro": "Lolo Purba",
"tbq-mil": "Milang",
"tbq-mor": "Moran",
"tbq-ngo": "Ngochang",
"tbr": "Tumtum",
"tbs": "Tanguat",
"tbt": "Kitembo",
"tbu": "Tubar",
"tbv": "Tobo",
"tbw": "Tagbanwa",
"tbx": "Kapin",
"tby": "Tabaru",
"tbz": "Ditammari",
"tca": "Ticuna",
"tcb": "Tanacross",
"tcc": "Datooga",
"tcd": "Tafi",
"tce": "Tutchone Selatan",
"tcf": "Tlapanec Malinaltepec",
"tcg": "Tamagario",
"tch": "Inggeris Kreol Turks dan Caicos",
"tci": "Wára",
"tck": "Tchitchege",
"tcl": "Taman (Myanmar)",
"tcm": "Tanahmerah",
"tco": "Taungyo",
"tcp": "Chin Tawr",
"tcq": "Kaiy",
"tcs": "Kreol Selat Torres",
"tct": "T'en",
"tcu": "Tarahumara Tenggara",
"tcw": "Tecpatlán Totonac",
"tcx": "Toda",
"tcy": "Tulu",
"tcz": "Chin Thado",
"tda": "Tagdal",
"tdb": "Panchpargania",
"tdc": "Emberá-Tadó",
"tdd": "Tai Nüa",
"tde": "Tiranige Diga Dogon",
"tdf": "Talieng",
"tdg": "Tamang Barat",
"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": "Telugu",
"tea": "Temiar",
"teb": "Tetete",
"tec": "Terik",
"ted": "Tepo Krumen",
"tee": "Tepehua Huehuetla",
"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": "Tetum",
"teu": "Soo",
"tev": "Teor",
"tew": "Tewa",
"tex": "Tennet",
"tey": "Tulishi",
"tez": "Tetserret",
"tfi": "Tofin Gbe",
"tfn": "Dena'ina",
"tfo": "Tefaro",
"tfr": "Teribe",
"tft": "Ternate",
"tg": "Tajik",
"tga": "Sagalla",
"tgb": "Tobilung",
"tgc": "Tigak",
"tgd": "Ciwogai",
"tge": "Tamang Gorkha Timur",
"tgf": "Chali",
"tgh": "Inggeris Kreol Tobago",
"tgi": "Lawunuia",
"tgn": "Tandaganon",
"tgo": "Sudest",
"tgp": "Tangoa",
"tgq": "Tring",
"tgr": "Tareng",
"tgs": "Nume",
"tgt": "Tagbanwa Tengah",
"tgu": "Tanggu",
"tgv": "Tingui-Boto",
"tgw": "Tagwana Senoufo",
"tgx": "Tagish",
"tgy": "Togoyo",
"th": "Thai",
"thc": "Tai Hang Tong",
"thd": "Kuuk Thaayorre",
"the": "Chitwania Tharu",
"thf": "Thangmi",
"thh": "Tarahumara Utara",
"thi": "Tai Long",
"thk": "Tharaka",
"thl": "Dangaura Tharu",
"thm": "Thavung",
"thn": "Thachanadan",
"thp": "Thompson",
"thq": "Kochila Tharu",
"thr": "Rana Tharu",
"ths": "Thakali",
"tht": "Tahltan",
"thu": "Thuri",
"thy": "Tha",
"ti": "Tigrinya",
"tic": "Tira",
"tif": "Tifal",
"tig": "Tigre",
"tih": "Murut Timugon",
"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": "Tiwa Selatan",
"tiy": "Tiruray",
"tiz": "Tai Hongjin",
"tja": "Tajuasohn",
"tjg": "Tunjung",
"tji": "Tujia Utara",
"tjl": "Tai Laing",
"tjm": "Timucua",
"tjn": "Tonjon",
"tjs": "Tujia Selatan",
"tju": "Tjurruru",
"tjw": "Chaap Wuurong",
"tk": "Turkmen",
"tka": "Truká",
"tkb": "Buksa",
"tkd": "Tukudede",
"tke": "Takwane",
"tkf": "Tukumanféd",
"tkl": "Tokelau",
"tkm": "Takelma",
"tkn": "Toku-No-Shima",
"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": "Tagalog",
"tla": "Tepehuan Barat Daya",
"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": "Tamang Barat Laut",
"tml": "Tamnim Citak",
"tmm": "Tai Thanh",
"tmn": "Taman (Indonesia)",
"tmo": "Temoq",
"tmq": "Tumleo",
"tms": "Tima",
"tmt": "Tasmate",
"tmu": "Iau",
"tmv": "Motembo",
"tmw": "Temuan",
"tmy": "Tami",
"tmz": "Tamanaku",
"tn": "Tswana",
"tna": "Tacana",
"tnb": "Tunebo Barat",
"tnc": "Tanimuca-Retuarã",
"tnd": "Angosturas Tunebo",
"tne": "Tinoc Kallahan",
"tng": "Tobanga",
"tnh": "Maiani",
"tni": "Tandia",
"tnk": "Kwamera",
"tnl": "Lenakel",
"tnm": "Tabla",
"tnn": "Tanna Utara",
"tno": "Toromono",
"tnp": "Whitesands",
"tnq": "Taíno",
"tnr": "Bedik",
"tns": "Tenis",
"tnt": "Tontemboan",
"tnu": "Tay Khang",
"tnv": "Tanchangya",
"tnw": "Tonsawang",
"tnx": "Tanema",
"tny": "Tongwe",
"tnz": "Ten'edn",
"to": "Tonga",
"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": "Tok Pisin",
"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": "Tupi Kuno",
"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": "Totonac Barat",
"tqu": "Touo",
"tqw": "Tonkawa",
"tr": "Turki",
"tra": "Tirahi",
"trb": "Terebu",
"trc": "Copala Triqui",
"trd": "Turi",
"tre": "Tarangan Timur",
"trf": "Inggeris Kreol Trinidad",
"trg": "Lishán Didán",
"trh": "Turaka",
"tri": "Trió",
"trj": "Toram",
"trk-dkh": "Dukhan",
"trk-eog": "Oghuz Kuno Awal",
"trk-oat": "Turki Anatolia Kuno",
"trk-pro": "Turkik Purba",
"trl": "Traveller Scottish",
"trm": "Tregami",
"trn": "Trinitario",
"tro": "Tarao",
"trp": "Kokborok",
"trq": "San Martín Itunyoso Triqui",
"trr": "Taushiro",
"trs": "Chicahuaxtla Triqui",
"trt": "Tunggare",
"tru": "Turoyo",
"trv": "Taroko",
"trw": "Torwali",
"trx": "Tringgus",
"try": "Turung",
"trz": "Torá",
"ts": "Tsonga",
"tsa": "Tsaangi",
"tsb": "Tsamai",
"tsc": "Tswa",
"tsd": "Tsakonian",
"tse": "Bahasa Isyarat Tunisia",
"tsf": "Tamang Barat Daya",
"tsg": "Suluk",
"tsh": "Tsuvan",
"tsi": "Tsimshian",
"tsj": "Tshangla",
"tsl": "Ts'ün-Lao",
"tsm": "Bahasa Isyarat Turki",
"tsp": "Toussiana Utara",
"tsq": "Bahasa Isyarat Thai",
"tsr": "Akei",
"tss": "Bahasa Isyarat Taiwan",
"tsu": "Tsou",
"tsv": "Tsogo",
"tsw": "Tsishingini",
"tsx": "Mubami",
"tsy": "Bahasa Isyarat Tebul",
"tt": "Tatar",
"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": "Tutchone Utara",
"ttn": "Towei",
"tto": "Lower Ta'oih",
"ttp": "Tombelala",
"ttr": "Tera",
"tts": "Isan",
"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": "Tunebo Tengah",
"tug": "Tunia",
"tuh": "Taulil",
"tui": "Tupuri",
"tuj": "Tugutil",
"tul": "Tula",
"tum": "Tumbuka",
"tun": "Tunica",
"tuo": "Tucano",
"tup-gua-pro": "Tupi-Guarani Purba",
"tup-kab": "Kabishiana",
"tup-kaw": "Kawahiva",
"tup-pro": "Tupi Purba",
"tuq": "Tedaga",
"tus": "Tuscarora",
"tuu": "Tututni",
"tuv": "Turkana",
"tuw-alk": "Alchuka",
"tuw-bal": "Bala",
"tuw-kkl": "Kyakala",
"tuw-kli": "Kili",
"tuw-pro": "Tungus Purba",
"tuw-sol": "Solon",
"tux": "Tuxináwa",
"tuy": "Tugen",
"tuz": "Turka",
"tva": "Vaghua",
"tvd": "Tsuvadi",
"tve": "Te'un",
"tvk": "Ambrym Tenggara",
"tvl": "Tuvalu",
"tvm": "Tela-Masbuar",
"tvn": "Tavoyan",
"tvo": "Tidore",
"tvs": "Taveta",
"tvt": "Tutsa Naga",
"tvu": "Tunen",
"tvw": "Sedoa",
"tvx": "Taivoan",
"tvy": "Timor Pidgin",
"twa": "Twana",
"twb": "Tawbuid Barat",
"twc": "Teshenawa",
"twe": "Teiwa",
"twf": "Taos",
"twg": "Tereweng",
"twh": "Tai Dón",
"twm": "Tawang Monpa",
"twn": "Twendi",
"two": "Tswapong",
"twp": "Ere",
"twq": "Tasawaq",
"twr": "Tarahumara Barat Daya",
"twt": "Turiwára",
"twu": "Termanu",
"tww": "Tuwari",
"twy": "Tawoyan",
"txa": "Tombonuo",
"txb": "Tocharia B",
"txc": "Tsetsaut",
"txe": "Totoli",
"txg": "Tangut",
"txh": "Thracian",
"txi": "Ikpeng",
"txj": "Tarjumo",
"txm": "Tomini",
"txn": "Tarangan Barat",
"txo": "Toto",
"txq": "Tii",
"txr": "Tartessian",
"txs": "Tonsea",
"txt": "Citak",
"txu": "Kayapó",
"txx": "Tatana",
"ty": "Tahiti",
"tya": "Tauya",
"tye": "Kyenga",
"tyh": "O'du",
"tyi": "Teke-Tsaayi",
"tyj": "Tai Do",
"tyl": "Thu Lao",
"tyn": "Kombai",
"typ": "Kuku-Thaypan",
"tyr": "Tai Daeng",
"tys": "Sapa",
"tyt": "Tày Tac",
"tyu": "Kua",
"tyv": "Tuva",
"tyx": "Teke-Tyee",
"tyz": "Tày",
"tza": "Bahasa Isyarat Tanzania",
"tzh": "Tzeltal",
"tzj": "Tz'utujil",
"tzl": "Talossan",
"tzm": "Tamazight Atlas Tengah",
"tzn": "Tugun",
"tzo": "Tzotzil",
"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": "Udi",
"udj": "Ujir",
"udl": "Uldeme",
"udm": "Udmurt",
"udu": "Uduk",
"ues": "Kioko",
"ufi": "Ufim",
"ug": "Uyghur",
"uga": "Ugarit",
"ugb": "Kuku-Ugbanh",
"uge": "Ughele",
"ugn": "Ugandan Sign Language",
"ugo": "Gong",
"ugy": "Uruguayan Sign Language",
"uha": "Uhami",
"uhn": "Damal",
"uis": "Uisai",
"uiv": "Iyive",
"uji": "Tanjijili",
"uk": "Ukraine",
"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": "Unserdeutsch",
"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": "Watut Utara",
"und": "tidak ditentukan",
"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": "Malakula Timur Laut",
"ur": "Urdu",
"ura": "Urarina",
"urb": "Urubú-Kaapor",
"urc": "Urningangg",
"ure": "Uru",
"urf": "Uradhi",
"urg": "Urigina",
"urh": "Urhobo",
"uri": "Urim",
"urj-fin-pro": "Finnik Purba",
"urj-koo": "Komi Kuno",
"urj-kuk": "Kukkuzi",
"urj-kya": "Komi-Yazva",
"urj-mdv-pro": "Mordvinik Purba",
"urj-prm-pro": "Permik Purba",
"urj-pro": "Uralik Purba",
"urj-ugr-pro": "Ugrik Purba",
"urk": "Urak Lawoi'",
"url": "Urali",
"urm": "Urapmin",
"urn": "Uruangnirin",
"uro": "Ura (Papua 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": "Uvea Barat",
"uvh": "Uri",
"uvl": "Lote",
"uwa": "Kuku-Uwanh",
"uya": "Doko-Uyanga",
"uz": "Uzbek",
"vaa": "Vaagri Booli",
"vae": "Vale",
"vag": "Vagla",
"vah": "Varhadi",
"vai": "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": "Bontoc Barat Daya",
"ve": "Venda",
"vec": "Veneto",
"ved": "Veddah",
"vem": "Vemgo-Mabas",
"veo": "Ventureño",
"vep": "Veps",
"ver": "Mom Jango",
"vgr": "Vaghri",
"vgt": "Flemish Sign Language",
"vi": "Vietnam",
"vic": "Kreol Kepulauan Virgin",
"vid": "Vidunda",
"vif": "Vili",
"vig": "Viemo",
"vil": "Vilela",
"vis": "Vishavan",
"vit": "Viti",
"viv": "Iduna",
"vka": "Kariyarra",
"vki": "Ija-Zuba",
"vkj": "Kujarge",
"vkk": "Kaur",
"vkl": "Kulisusu",
"vkm": "Kamakan",
"vko": "Kodeoha",
"vkp": "Portugis Kreol Korlai",
"vkt": "Tenggarong Kutai Malay",
"vku": "Kurrama",
"vlp": "Valpei",
"vls": "Flemish Barat",
"vma": "Martuthunira",
"vmb": "Mbabaram",
"vmc": "Mixtec Juxtlahuaca",
"vmd": "Mudu Koraga",
"vme": "Masela Timur",
"vmf": "Franconia Timur",
"vmg": "Minigir",
"vmh": "Maraghei",
"vmi": "Miwa",
"vmj": "Mixtec Ixtayutla",
"vmk": "Makhuwa-Shirima",
"vml": "Malgana",
"vmm": "Mixtec Mitlatongo",
"vmp": "Mazatec Soyaltepec",
"vmq": "Mixtec Soyaltepec",
"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": "Volapük",
"vor": "Voro",
"vot": "Vot",
"vra": "Vera'a",
"vro": "Võro",
"vrs": "Varisi",
"vrt": "Banam Bay",
"vsi": "Moldova Sign Language",
"vsl": "Venezuelan Sign Language",
"vsv": "Valencian Sign Language",
"vto": "Vitou",
"vum": "Vumbu",
"vun": "Vunjo",
"vut": "Vute",
"vwa": "Awa (China)",
"wa": "Walloon",
"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": "Waray-Waray",
"was": "Washo",
"wat": "Kaninuwa",
"wau": "Wauja",
"wav": "Waka",
"waw": "Waiwai",
"wax": "Watam",
"way": "Wayana",
"waz": "Wampur",
"wba": "Warao",
"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": "Yanomámi",
"wci": "Waci Gbe",
"wdd": "Wandji",
"wdg": "Wadaginam",
"wdj": "Wadjiginy",
"wdt": "Wendat",
"wdu": "Wadjigu",
"wdy": "Wadjabangayi",
"wea": "Wewaw",
"wec": "Wè Barat",
"wed": "Wedau",
"weh": "Weh",
"wei": "Kiunum",
"wem": "Weme Gbe",
"weo": "Wemale",
"wer": "Weri",
"wes": "Pijin Cameroon",
"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": "Wahgi Utara",
"whk": "Kenyah Wahau",
"whu": "Kayan Wahau",
"wib": "Toussiana Selatan",
"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": "Winnebago",
"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": "Wales Pertengahan",
"wlo": "Wolio",
"wlr": "Wailapa",
"wls": "Wallis",
"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": "Mwani",
"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": "Wolof",
"woa": "Tyaraity",
"wob": "Wè Utara",
"woc": "Wogeo",
"wod": "Wolani",
"woe": "Woleai",
"wog": "Wogamusin",
"woi": "Kamang",
"wok": "Longto",
"wom": "Perema",
"won": "Wongo",
"woo": "Manombai",
"wor": "Woria",
"wos": "Hanga Hundi",
"wow": "Wawonii",
"wpc": "Wirö",
"wra": "Warapu",
"wrb": "Warluwara",
"wrg": "Warungu",
"wrh": "Wiradhuri",
"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",
"wss": "Wasa",
"wsu": "Wasu",
"wsv": "Wotapuri-Katarqalai",
"wtf": "Watiwa",
"wth": "Wathaurong",
"wti": "Berta",
"wtk": "Watakataui",
"wtm": "Mewati",
"wtw": "Wotu",
"wua": "Wikngenchera",
"wub": "Wunambal",
"wud": "Wudu",
"wuh": "Wutunhua",
"wul": "Silimo",
"wum": "Wumbvu",
"wun": "Bungu",
"wur": "Wurrugu",
"wut": "Wutung",
"wuu": "Wu",
"wuv": "Wuvulu-Aua",
"wux": "Wulna",
"wuy": "Wauyai",
"wwa": "Waama",
"wwo": "Dorig",
"wwr": "Warrwa",
"www": "Wawa",
"wxa": "Waxianghua",
"wxw": "Wardandi",
"wya": "Wyandot",
"wyb": "Ngiyambaa",
"wyi": "Woiwurrung",
"wym": "Vilamovian",
"wyr": "Wayoró",
"wyy": "Fiji Barat",
"xaa": "Arab Andalusia",
"xab": "Sambe",
"xac": "Kachari",
"xad": "Adai",
"xae": "Aequian",
"xag": "Aghwan",
"xai": "Kaimbé",
"xaj": "Ararandewára",
"xak": "Maku",
"xal": "Kalmyk",
"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": "Baktria",
"xbd": "Bindal",
"xbe": "Bigambal",
"xbg": "Bunganditj",
"xbi": "Kombio",
"xbj": "Birrpayi",
"xbm": "Breton Pertengahan",
"xbn": "Kenaboi",
"xbo": "Bulgar",
"xbp": "Bibbulman",
"xbr": "Kambera",
"xbw": "Kambiwá",
"xby": "Butchulla",
"xcb": "Cumbric",
"xcc": "Camunic",
"xce": "Celtiberian",
"xch": "Chemakum",
"xcl": "Armenia Kuno",
"xcm": "Comecrudo",
"xcn": "Cotoname",
"xco": "Khwarezm",
"xcr": "Carian",
"xct": "Tibet Klasik",
"xcu": "Curonian",
"xcv": "Chuva",
"xcw": "Coahuilteco",
"xcy": "Cayuse",
"xda": "Darkinjung",
"xdc": "Dacian",
"xdk": "Dharug",
"xdm": "Edom",
"xdq": "Kaitag",
"xdy": "Malayic Dayak",
"xeb": "Ebla",
"xed": "Hdi",
"xeg": "ǁXegwi",
"xel": "Kelo",
"xem": "Kembayan",
"xep": "Epi-Olmec",
"xer": "Xerénte",
"xes": "Kesawai",
"xet": "Xetá",
"xeu": "Keoru-Ahia",
"xfa": "Falisci",
"xga": "Galatia",
"xgb": "Gbin",
"xgd": "Gudang",
"xgf": "Gabrielino-Fernandeño",
"xgg": "Goreng",
"xgi": "Garingbal",
"xgl": "Galindan",
"xgm": "Darumbal",
"xgn-pro": "Mongolia Purba",
"xgr": "Garza",
"xgu": "Unggumi",
"xgw": "Guwa",
"xh": "Xhosa",
"xha": "Harami",
"xhc": "Hun",
"xhd": "Hadrami",
"xhe": "Khetrani",
"xhm": "Khmer Pertengahan",
"xhr": "Hernican",
"xht": "Hatti",
"xhu": "Hurri",
"xhv": "Khua",
"xib": "Iberia",
"xii": "Xiri",
"xil": "Illyria",
"xin": "Xinca",
"xir": "Xiriâna",
"xis": "Kisan",
"xiv": "Bahasa Lembah Indus",
"xiy": "Xipaya",
"xjb": "Minjungbal",
"xka": "Kalkoti",
"xkb": "Manigri-Kambolé Ede Nago",
"xkc": "Khoini",
"xkd": "Kayan Mendalam",
"xke": "Kereho",
"xkf": "Khengkha",
"xkg": "Kagoro",
"xki": "Isyarat Kenya",
"xkj": "Kajali",
"xkk": "Kaco'",
"xkl": "Bakung",
"xkn": "Kayan Sungai 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": "Lycia",
"xld": "Lydia",
"xle": "Lemnos",
"xlg": "Liguria Purba",
"xli": "Liburni",
"xlo": "Loup A",
"xlp": "Lepontii",
"xls": "Lusitania",
"xlu": "Luwiya",
"xly": "Elymi",
"xmb": "Mbonga",
"xmc": "Makhuwa-Marrevone",
"xmd": "Mbudum",
"xme-ker": "Kermanik",
"xme-kls": "Kalasuri",
"xme-klt": "Kilit",
"xme-mid": "Median Pertengahan",
"xme-old": "Median Kuno",
"xme-ott": "Tati Kuno",
"xme-taf": "Tafreshi",
"xme-ttc-pro": "Tatik Purba",
"xmf": "Mingrelia",
"xmg": "Mengaka",
"xmh": "Kugu-Muminh",
"xmj": "Majera",
"xmk": "Macedonia Purba",
"xml": "Isyarat Malaysia",
"xmm": "Melayu Manado",
"xmo": "Morerebi",
"xmp": "Kuku-Mu'inh",
"xmq": "Kuku-Mangk",
"xmr": "Meroe",
"xms": "Isyarat Maghribi",
"xmt": "Matbat",
"xmu": "Kamu",
"xmx": "Maden",
"xmy": "Mayaguduna",
"xmz": "Mori Bawah",
"xna": "Arab Utara Purba",
"xnb": "Kanakanabu",
"xnd-pro": "Na-Dene Purba",
"xng": "Mongol Pertengahan",
"xnh": "Kuanhua",
"xni": "Ngarigu",
"xnk": "Nganakarti",
"xnn": "Kankanay Utara",
"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": "Tasmania Tenggara",
"xpg": "Phrygia",
"xph": "Tyerrernotepanner",
"xpi": "Pict",
"xpj": "Mpalitjanh",
"xpk": "Kulina",
"xpl": "Port Sorell",
"xpm": "Pumpokol",
"xpn": "Kapinawá",
"xpo": "Pochutec",
"xpp": "Puyo-Paekche",
"xpq": "Mohegan-Pequot",
"xpr": "Parthia",
"xps": "Pisidia",
"xpu": "Punik",
"xpv": "Tommeginne",
"xpw": "Peerapper",
"xpx": "Toogee",
"xpy": "Buyeo",
"xpz": "Pulau Bruny",
"xqa": "Karakhanid",
"xqt": "Qatabanian",
"xra": "Krahô",
"xrb": "Karaboro Timur",
"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": "Sambal",
"xsc-pro": "Scythia Purba",
"xsc-sak-pro": "Saka Purba",
"xsc-sar-pro": "Sarmatia Purba",
"xsc-skw-pro": "Saka-Wakhi Purba",
"xsd": "Sidetic",
"xse": "Sempan",
"xsh": "Shamang",
"xsi": "Sio",
"xsj": "Subi",
"xsl": "Slavey Selatan",
"xsm": "Kasem",
"xsn": "Sanga (Nigeria)",
"xso": "Solano",
"xsp": "Silopi",
"xsq": "Makhuwa-Saka",
"xsr": "Sherpa",
"xss": "Assan",
"xsu": "Sanumá",
"xsv": "Sudovian",
"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": "Mixtec Magdalena Peñasco",
"xtn": "Mixtec Tlaxiaco Utara",
"xto": "Tocharia A",
"xtp": "Mixtec San Miguel Piedras",
"xtq": "Tumshuq",
"xtr": "Tripuri Awal",
"xts": "Mixtec Sindihui",
"xtt": "Mixtec Tacahua",
"xtu": "Mixtec Cuyamecalco",
"xtv": "Thawa",
"xtw": "Tawandê",
"xty": "Mixtec Yoloxochitl",
"xtz": "Tasmania",
"xua": "Kurumba Alu",
"xub": "Kurumba Betta",
"xud": "Umiida",
"xug": "Kunigami",
"xuj": "Jennu Kurumba",
"xul": "Ngunawal",
"xum": "Umbri",
"xun": "Unggaranggu",
"xuo": "Kuo",
"xup": "Upper Umpqua",
"xur": "Urartian",
"xut": "Kuthant",
"xuu": "Khwe",
"xve": "Venetic",
"xvn": "Vandalic",
"xvo": "Volscian",
"xvs": "Vestinian",
"xwa": "Kwaza",
"xwc": "Woccon",
"xwd": "Wadi Wadi",
"xwe": "Xwela Gbe",
"xwg": "Kwegu",
"xwj": "Wajuk",
"xwk": "Wangkumara",
"xwl": "Gbe Xwla Barat",
"xwo": "Oirat Bertulis",
"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": "Zemgalia",
"xzp": "Zapotec Purba",
"yaa": "Yaminahua",
"yab": "Yuhup",
"yac": "Pass Valley Yali",
"yad": "Yagua",
"yae": "Pumé",
"yaf": "Yaka",
"yag": "Yámana",
"yah": "Yazghulami",
"yai": "Yagnobi",
"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": "Yugur Barat",
"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": "Kreol Yilan",
"yda": "Yanda",
"yde": "Yangum Dey",
"ydg": "Yidgha",
"ydk": "Yoidik",
"yea": "Ravula",
"yec": "Yeniche",
"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": "Yiddish",
"yia": "Yinggarda",
"yif": "Ache",
"yig": "Wusa Nasu",
"yii": "Yidiny",
"yij": "Yindjibarndi",
"yik": "Dongshanba Lalo",
"yil": "Yindjilandji",
"yim": "Yimchungru Naga",
"yin": "Yinchia",
"yip": "Pholo",
"yiq": "Miqie",
"yir": "Awyu Utara",
"yis": "Yis",
"yit": "Lalu Timur",
"yiu": "Awu",
"yiv": "Nisu Utara",
"yix": "Axi",
"yiy": "Yir-Yoront",
"yiz": "Azhe",
"yka": "Yakan",
"ykg": "Yukaghir Utara",
"ykh": "Mongol Khamnigan",
"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": "Nyâlayu",
"ymb": "Yambes",
"ymc": "Muji Selatan",
"ymd": "Muda",
"yme": "Yameo",
"ymg": "Yamongeri",
"ymh": "Mili",
"ymi": "Moji",
"ymk": "Makwe",
"yml": "Iamalele",
"ymm": "Maay",
"ymn": "Sunum",
"ymo": "Mon Yangum",
"ymp": "Yamap",
"ymq": "Muji Qila",
"ymr": "Malasar",
"yms": "Mysian",
"ymx": "Muji Utara",
"ymz": "Muzi",
"yna": "Aluo",
"ynd": "Yandruwandha",
"yne": "Lang'e",
"yng": "Yango",
"ynk": "Naukanski",
"ynl": "Yangulam",
"ynn": "Yana",
"yno": "Yong",
"yns": "Yansi",
"ynu": "Yahuna",
"yo": "Yoruba",
"yob": "Yoba",
"yog": "Yogad",
"yoi": "Yonaguni",
"yok-bvy": "Yokuts Buena Vista",
"yok-dly": "Yokuts Delta",
"yok-gsy": "Yokuts Gashowu",
"yok-kry": "Yokuts Sungai Kings",
"yok-nvy": "Yokuts Lembah Utara",
"yok-ply": "Yokuts Palewyami",
"yok-svy": "Yokuts Lembah Selatan",
"yok-tky": "Yokuts Tule-Kaweah",
"yol": "Yola",
"yom": "Yombe",
"yon": "Yongkom",
"yox": "Yoron",
"yoy": "Yoy",
"ypa": "Phala",
"ypb": "Labo Phowa",
"ypg": "Phola",
"yph": "Phupha",
"ypk-pro": "Yupik Purba",
"ypm": "Phuma",
"ypn": "Ani Phowa",
"ypo": "Alo Phola",
"ypp": "Phupa",
"ypz": "Phuza",
"yra": "Yerakai",
"yrb": "Yareba",
"yre": "Yaouré",
"yri": "Yarí",
"yrk": "Nenets Tundra",
"yrk-for": "Nenets Hutan",
"yrk-tun": "Nenets Tundra",
"yrl": "Nheengatu",
"yrn": "Yerong",
"yro": "Yaroamë",
"yrw": "Yarawata",
"yry": "Yarluyandi",
"ysc": "Jassic",
"ysd": "Samatao",
"ysg": "Sonaga",
"ysl": "Yugoslavian Sign Language",
"ysn": "Sani",
"yso": "Nisi",
"ysp": "Lolopo Selatan",
"ysr": "Sirenik",
"yss": "Yessan-Mayo",
"ysy": "Sanie",
"yta": "Talu",
"ytl": "Tanglang",
"ytp": "Thopho",
"ytw": "Yout Wam",
"yty": "Yatay",
"yua": "Maya Yucatec",
"yub": "Yugambal",
"yuc": "Yuchi",
"yue": "Kantonis",
"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": "Yukaghir Selatan",
"yuy": "Yugur Timur",
"yuz": "Yuracare",
"yva": "Yawa",
"yvt": "Yavitero",
"ywa": "Kalou",
"ywg": "Yinhawangka",
"ywl": "Lalu Barat",
"ywn": "Yawanawa",
"ywq": "Nasu",
"ywr": "Yawuru",
"ywt": "Xishanba Lalo",
"ywu": "Wumeng Nasu",
"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": "Zhuang",
"zaa": "Zapotec Sierra de Juárez",
"zab": "Zapotec San Juan Guelavía",
"zac": "Zapotec Ocotlán",
"zad": "Zapotec Cajonos",
"zae": "Zapotec Yareni",
"zaf": "Zapotec Ayoquesco",
"zag": "Zaghawa",
"zah": "Zangwal",
"zai": "Zapotec Segenting",
"zaj": "Zaramo",
"zak": "Zanaki",
"zal": "Zauzou",
"zam": "Zapoteco Mahuatlán Tengah",
"zao": "Zapotec Ozolotepec",
"zap": "Zapotec",
"zaq": "Zapotec Aloápam",
"zar": "Zapotec Rincón",
"zas": "Zapotec Santo Domingo Albarradas",
"zat": "Zapotec Tabaa",
"zau": "Zangskar",
"zav": "Zapotec Yatzachi",
"zaw": "Zapotec Mitla",
"zax": "Zapotec Xadani",
"zay": "Zayse-Zergulla",
"zaz": "Zari",
"zbt": "Batui",
"zca": "Zapotec Coatecas Altas",
"zdj": "Comoros Ngazidja",
"zea": "Zeeland",
"zeg": "Zenag",
"zen": "Zenaga",
"zga": "Kinga",
"zgh": "Amazigh Maghribi",
"zgr": "Magori",
"zh": "Cina",
"zhb": "Zhaba",
"zhi": "Zhire",
"zhn": "Nong Zhuang",
"zhw": "Zhoa",
"zhx-min-pro": "Min Purba",
"zhx-sht": "Tuhua Shaozhou",
"zhx-sic": "Sichuan",
"zhx-tai": "Taishan",
"zia": "Zia",
"zib": "Zimbabwe Sign Language",
"zik": "Zimakani",
"zil": "Zialo",
"zim": "Mesme",
"zin": "Zinza",
"zir": "Ziriya",
"ziw": "Zigula",
"ziz": "Zizilivakan",
"zka": "Kaimbulawa",
"zkb": "Koibal",
"zkg": "Goguryeo",
"zkh": "Khorezmian Turkic",
"zkk": "Karankawa",
"zko": "Kott",
"zkp": "Kaingáng São Paulo",
"zkr": "Zakhring",
"zkt": "Khitan",
"zku": "Kaurna",
"zkv": "Krevinian",
"zkz": "Khazar",
"zle-ono": "Novgorod Kuno",
"zle-ort": "Ruthenia Kuno",
"zls-chs": "Slavonic Gereja",
"zlw-ocs": "Czech Kuno",
"zlw-opl": "Poland Kuno",
"zlw-osk": "Slovak Kuno",
"zlw-slv": "Slovincia",
"zma": "Manda (Australia)",
"zmb": "Zimba",
"zmc": "Margany",
"zmd": "Maridan",
"zme": "Mangerr",
"zmf": "Mfinu",
"zmg": "Marti Ke",
"zmh": "Makolkol",
"zmi": "Melayu Negeri Sembilan",
"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": "Kaya",
"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": "Zulu",
"zua": "Zeem",
"zuh": "Tokano",
"zum": "Kumzari",
"zun": "Zuni",
"zuy": "Zumaya",
"zwa": "Zay",
"zyp": "Zyphe",
"zza": "Zazaki",
"zzj": "Zuojiang Zhuang"
}
py8c4oo68j3zb7xlin2clomkynqnora
Modul:languages/canonical names.json
828
33777
373529
346946
2026-09-11T03:05:20Z
SNN95
2113
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373529
json
application/json
{
"'Are'are": "alu",
"A'ou": "aou",
"A-Hmao": "hmd",
"A-Pucikwar": "apq",
"Aari": "aiw",
"Aasax": "aas",
"Aba": "utp",
"Abaga": "abg",
"Abai": "poz-abi",
"Abai Sungai": "abf",
"Abanyom": "abm",
"Abau": "aau",
"Abaza": "abq",
"Abenaki": "abe",
"Abidji": "abi",
"Abinomn": "bsa",
"Abipón": "axb",
"Abishira": "ash",
"Abkhaz": "ab",
"Abom": "aob",
"Abon": "abo",
"Abu": "ado",
"Abu'": "aah",
"Abua": "abn",
"Abui": "abz",
"Abun": "kgr",
"Abung": "abl",
"Abure": "abu",
"Abureni": "mgj",
"Abé": "aba",
"Acatepec Me'phaa": "tpx",
"Aceh": "ace",
"Achagua": "aca",
"Achang": "acn",
"Ache": "yif",
"Acheron": "acz",
"Achi": "acr",
"Acholi": "ach",
"Achuar": "acu",
"Achumawi": "acv",
"Acipa Timur": "acp",
"Acroá": "acs",
"Adai": "xad",
"Adang": "adn",
"Adangbe": "adq",
"Adangme": "ada",
"Adap": "adp",
"Adasen": "tiu",
"Adele": "ade",
"Adhola": "adh",
"Adi": "adi",
"Adioukrou": "adj",
"Adithinngithigh": "dth",
"Adnyamathanha": "adt",
"Adonara": "adr",
"Aduge": "adu",
"Adzera": "adz",
"Adûni": "art-adu",
"Aeka": "aez",
"Aekyom": "awi",
"Aequian": "xae",
"Aer": "aeq",
"Afade": "aal",
"Afar": "aa",
"Afitti": "aft",
"Afra": "ulf",
"Afrihili": "afh",
"Afrikaans": "af",
"Agarabi": "agd",
"Agatu": "agc",
"Agawam": "alg-aga",
"Aghem": "agq",
"Aghu": "ahh",
"Aghul": "agx",
"Aghwan": "xag",
"Agi": "aif",
"Agob": "kit",
"Agoi": "ibm",
"Agta Cagayan Tengah": "agt",
"Agta Camarines Norte": "abd",
"Agta Casiguran Dumagat": "dgc",
"Agta Dicamay": "duy",
"Agta Dinapigue": "phi-din",
"Agta Dupaningan": "duo",
"Agta Gunung Iraya": "atl",
"Agta Gunung Iriga": "agz",
"Agta Isarog": "agk",
"Agta Nagtipunan": "phi-nag",
"Agta Pahanan": "apf",
"Agta Pulau Alabat": "dul",
"Agta Remontado": "agv",
"Agta Umiray Dumaget": "due",
"Agta Villa Viciosa": "dyg",
"Aguacateco": "agu",
"Aguano": "aga",
"Aguaruna": "agr",
"Aguna": "aug",
"Agutaynen": "agn",
"Agwagwune": "yay",
"Ahanta": "aha",
"Ahirani": "ahr",
"Ahom": "aho",
"Ahtna": "aht",
"Ahwai": "nfd",
"Ai-Cham": "aih",
"Aighon": "aix",
"Aikanã": "tba",
"Aiklep": "mwg",
"Aimele": "ail",
"Aimol": "aim",
"Ainbai": "aic",
"Ainu": "ain",
"Aiome": "aki",
"Airoran": "air",
"Aisi": "mmq",
"Aiton": "aio",
"Aja (Afrika Barat)": "ajg",
"Aja (Afrika Timur)": "aja",
"Ajawa": "ajw",
"Ajië": "aji",
"Ajyíninka Apurucayali": "cpc",
"Ak": "akq",
"Aka (Afrika Tengah)": "axk",
"Aka (Sudan)": "soh",
"Aka-Bea": "abj",
"Aka-Bo": "akm",
"Aka-Cari": "aci",
"Aka-Kede": "akx",
"Aka-Kol": "aky",
"Aka-Kora": "ack",
"Akan": "ak",
"Akar-Bale": "acl",
"Akaselem": "aks",
"Akatek": "knj",
"Akawaio": "ake",
"Ake": "aik",
"Akebu": "keu",
"Akei": "tsr",
"Akeu": "aeu",
"Akha": "ahk",
"Akhvakh": "akv",
"Akkadia": "akk",
"Aklanon": "akl",
"Akolet": "akt",
"Akoose": "bss",
"Akoye": "miw",
"Akpa": "akf",
"Akpes": "ibe",
"Akrukay": "afi",
"Akuku": "ayk",
"Akum": "aku",
"Akuntsu": "aqz",
"Akurio": "ako",
"Akuwagel": "bey",
"Akwa": "akw",
"Akyaung Ari": "nqy",
"Al-Sayyid Bedouin Sign Language": "syy",
"Alaba": "alw",
"Alabama": "akz",
"Alago": "ala",
"Alagwa": "wbj",
"Alak": "alk",
"Alamblak": "amp",
"Alangan": "alj",
"Alapmunte": "apv",
"Alawa": "alh",
"Alazapa": "nai-ala",
"Albanian": "sq",
"Albanian Sign Language": "sqk",
"Alchuka": "tuw-alk",
"Alcozauca Mixtec": "xta",
"Alege": "alf",
"Aleut": "ale",
"Aleut Mednyj": "mud",
"Algonquin": "alq",
"Algonquin Carolina": "crr",
"Ali": "aiy",
"Alladian": "ald",
"Allar": "all",
"Allentiac": "sai-all",
"Alngith": "aid",
"Alo Phola": "ypo",
"Alor": "aol",
"Alsea": "aes",
"Alta Selatan": "agy",
"Alta Utara": "aqn",
"Altai Selatan": "alt",
"Altai Utara": "atv",
"Alu": "mte",
"Alugu": "aub",
"Alumu-Tesu": "aab",
"Alune": "alp",
"Alungul": "aus-alu",
"Aluo": "yna",
"Alur": "alz",
"Alutiiq": "ems",
"Alutor": "alr",
"Alviri-Vidari": "avd",
"Alyawarr": "aly",
"Ama": "amm",
"Amahai": "amq",
"Amahuaca": "amc",
"Amaimon": "ali",
"Amal": "aad",
"Amami Ōshima Selatan": "ams",
"Amami Ōshima Utara": "ryn",
"Amanab": "amn",
"Amanayé": "ama",
"Amara": "aie",
"Amarakaeri": "amr",
"Amarasi": "aaz",
"Amarizana": "awd-ama",
"Amasi": "alv-ama",
"Amatlán Zapotec": "zpo",
"Amazigh Maghribi": "zgh",
"Amba": "rwm",
"Ambae Barat": "nnd",
"Ambai": "amk",
"Ambakich": "aew",
"Ambelau": "amv",
"Ambele": "ael",
"Amblong": "alm",
"Ambo": "amb",
"Ambrak": "aag",
"Ambrym Tenggara": "tvk",
"Ambrym Utara": "mmg",
"Ambul": "apo",
"Ambulas": "abt",
"Amdang": "amj",
"Amele": "aey",
"Amganad Ifugao": "ifa",
"Amharic": "am",
"Ami": "amy",
"Amis": "ami",
"Ammon": "sem-amm",
"Amo": "amo",
"Amol": "alx",
"Amondawa": "adw",
"Amor": "sem-amo",
"Ampanang": "apg",
"Amto": "amt",
"Amurdag": "amg",
"Amuzgo Guerrero": "amu",
"Amuzgo Ipalapa": "azm",
"Amuzgo San Pedro Amuzgos": "azg",
"Ana Tinga Dogon": "dti",
"Anaang": "anw",
"Anakalangu": "akg",
"Anam": "pda",
"Anambé": "aan",
"Anamgura": "imi",
"Anasi": "bpo",
"Anauyá": "awd-ana",
"Andai": "afd",
"Andajin": "ajn",
"Andaqui": "ana",
"Andarum": "aod",
"Andegerebinha": "adg",
"Andh": "anr",
"Andi": "ani",
"Andio": "bzb",
"Andjingith": "aus-and",
"Andoa": "anb",
"Andoque": "ano",
"Andoquero": "sai-and",
"Andra-Hus": "anx",
"Aneityum": "aty",
"Anem": "anz",
"Aneme Wake": "aby",
"Anfillo": "myo",
"Angaataha": "agm",
"Angaité": "aqt",
"Angal": "age",
"Angal Enen": "aoe",
"Angal Heneng": "akh",
"Angami": "njm",
"Angevin": "roa-ang",
"Angguruk Yali": "yli",
"Angika": "anp",
"Angkamuthi": "avm",
"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",
"Annobon": "fab",
"Anong": "nun",
"Anor": "anj",
"Anserma": "ans",
"Ansus": "and",
"Antakarinya": "ant",
"Anu": "anl",
"Anuak": "anu",
"Anufo": "cko",
"Anuki": "aui",
"Anus": "auq",
"Anuta": "aud",
"Anyi": "any",
"Anyin Morofo": "mtb",
"Anāl": "anm",
"Ao Chungli": "njo-jgl",
"Ao Mongsen": "njo-mng",
"Aoheng": "pni",
"Aore": "aor",
"Ap Ma": "kbx",
"Apabhramsa": "inc-apa",
"Apache Barat": "apw",
"Apache Dataran": "apk",
"Apalachee": "xap",
"Apalaí": "apy",
"Apali": "ena",
"Apatani": "apt",
"Apiaká": "api",
"Apinayé": "apn",
"Apma": "app",
"Apolista": "awd-apo",
"Apro": "ahp",
"Apurinã": "apu",
"Aputai": "apx",
"Aquitanian": "xaq",
"Arab Algeria": "arq",
"Arab Andalusia": "xaa",
"Arab Bahrani": "abv",
"Arab Chad": "shu",
"Arab Cyprus": "acy",
"Arab Dhofar": "adf",
"Arab Hassaniyah": "mey",
"Arab Hijaz": "acw",
"Arab Iraq": "acm",
"Arab Juba": "pga",
"Arab Libya": "ayl",
"Arab Maghribi": "ary",
"Arab Mesir": "arz",
"Arab Mesopotamia Utara": "ayp",
"Arab Najdi": "ars",
"Arab Oman": "acx",
"Arab Selatan Kuno": "sem-srb",
"Arab Sudan": "apd",
"Arab Syam Selatan": "ajp",
"Arab Syam Utara": "apc",
"Arab Syihuh": "ssh",
"Arab Tajik": "abh",
"Arab Teluk": "afb",
"Arab Tunisia": "aeb",
"Arab Utara Purba": "xna",
"Arab Uzbeki": "auz",
"Arab Yaman": "ayn",
"Arabana": "ard",
"Arabela": "arl",
"Arabic": "ar",
"Aragonese": "an",
"Araki": "akr",
"Arakwal": "rkw",
"Aralle-Tabulahan": "atq",
"Aramia": "arc",
"Arammba": "stk",
"Aranadan": "aaf",
"Aranama-Tamique": "xrt",
"Aranda Selatan Bawah": "axl",
"Arandai": "jbj",
"Araona": "aro",
"Arapaho": "arp",
"Arapaso": "arj",
"Arapesh Bumbita": "aon",
"Arara-Karo": "arr",
"Ararandewára": "xaj",
"Araweté": "awt",
"Arawum": "awm",
"Arbore": "arv",
"Archi": "aqc",
"Are": "mwc",
"Areba": "aea",
"Arem": "aem",
"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",
"Armenia Kuno": "xcl",
"Armenia Pertengahan": "axm",
"Armenian": "hy",
"Aromania": "rup",
"Arop-Lokep": "apr",
"Arop-Sissano": "aps",
"Arosi": "aia",
"Arrernte Barat": "are",
"Arrernte Timur": "aer",
"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",
"Ashraaf": "cus-ash",
"Asháninka": "cni",
"Ashéninka Pajonal": "cjo",
"Ashéninka Perené": "prq",
"Ashéninka Ucayali Selatan": "cpy",
"Asi": "bno",
"Asilulu": "asl",
"Askopan": "eiv",
"Asmat Pesisir Casuarina": "asc",
"Asmat Tengah": "cns",
"Asmat Utara": "nks",
"Asmat Yaosakor": "asy",
"Asoa": "asv",
"Assam Awal": "inc-oas",
"Assam Pertengahan": "inc-mas",
"Assamese": "as",
"Assan": "xss",
"Assangori": "sjg",
"Assiniboine": "asb",
"Asturia": "ast",
"Asu": "aum",
"Asue Awyu": "psa",
"Asumboa": "aua",
"Asunción Mixtepec Zapotec": "zoo",
"Asuri": "asr",
"Asurini Tocantins": "asu",
"Asuriní Xingú": "asn",
"Ata": "atm",
"Atakapa": "aqp",
"Atampaya": "amz",
"Atanques": "cba-ata",
"Atauran": "adb",
"Atayal": "tay",
"Atemble": "ate",
"Ateso": "teo",
"Athpare": "aph",
"Ati": "atk",
"Atikamekw": "atj",
"Atohwaim": "aqm",
"Atong (Cameroon)": "ato",
"Atong (India)": "aot",
"Atorada": "aox",
"Atsahuaca": "atc",
"Atsam": "cch",
"Atsugewi": "atw",
"Atta Faire": "azt",
"Atta Pamplona": "att",
"Atta Pudtol": "atp",
"Attapady Kurumba": "pkr",
"Attié": "ati",
"Au": "avt",
"Auhelawa": "kud",
"Aukan": "djk",
"Aulua": "aul",
"Aurá": "aux",
"Aushi": "auh",
"Aushiri": "avs",
"Auslan": "asf",
"Austral": "aut",
"Auwe": "smf",
"Auyana": "auy",
"Auye": "auu",
"Auyokawa": "auo",
"Avar": "av",
"Avar Kuno": "oav",
"Avatime": "avn",
"Avau": "avb",
"Avava": "tmb",
"Avestan": "ae",
"Avikam": "avi",
"Avokaya": "avu",
"Avá-Canoeiro": "avv",
"Awa (China)": "vwa",
"Awa (New Guinea)": "awb",
"Awa-Cuaiquer": "kwi",
"Awabakal": "awk",
"Awadhi": "awa",
"Awadhi Kuno": "inc-oaw",
"Awak": "awo",
"Awar": "aya",
"Awara": "awx",
"Awbono": "awh",
"Aweer": "bob",
"Awera": "awr",
"Awetí": "awe",
"Awing": "azo",
"Awjila": "auj",
"Awngi": "awn",
"Awngthim": "gwm",
"Awtuw": "kmn",
"Awu": "yiu",
"Awun": "aww",
"Awutu": "afu",
"Awyi": "auw",
"Awyu Edera": "awy",
"Awyu Jair": "awv",
"Awyu Selatan": "aws",
"Awyu Tengah": "awu",
"Awyu Utara": "yir",
"Axamb": "ahb",
"Axi": "yix",
"Ayabadhu": "ayd",
"Ayautla Mazatec": "vmy",
"Ayere": "aye",
"Ayerrerenge": "axe",
"Ayi": "ayq",
"Ayizi": "yyz",
"Ayizo": "ayb",
"Aymara": "ay",
"Ayomán": "sai-ayo",
"Ayoreo": "ayo",
"Ayta Abenlen": "abp",
"Ayta Ambala": "abc",
"Ayta Bataan": "ayt",
"Ayta Sorsogon": "ays",
"Ayu": "ayu",
"Azerbaijani": "az",
"Azha": "aza",
"Azhe": "yiz",
"Azoyú Me'phaa": "tpc",
"Baa": "kwb",
"Baagandji": "drl",
"Baali": "bcp",
"Baan": "bvj",
"Baangi": "bqx",
"Baatonum": "bba",
"Baba": "bbw",
"Babango": "bbm",
"Babanki": "bbk",
"Babar Utara": "bcd",
"Babatana": "baa",
"Babine-Witsuwit'en": "bcr",
"Babole": "bvx",
"Babungo": "bav",
"Babuza": "bzg",
"Bacama": "bcy",
"Bada": "bhz",
"Badaga": "bfq",
"Badanchi": "bau",
"Bade": "bde",
"Badeshi": "bdz",
"Badimaya": "bia",
"Badui": "bac",
"Badyara": "pbp",
"Baeggu": "bvd",
"Baekje": "pkc",
"Baelelea": "bvc",
"Baenan": "sai-bae",
"Baetora": "btr",
"Bafanji": "bfj",
"Bafaw": "bwt",
"Bafia": "ksf",
"Bafut": "bfd",
"Baga Kaloum": "bqf",
"Baga Koga": "bgo",
"Baga Manduri": "bmd",
"Baga Pokur": "bcg",
"Baga Sitemu": "bsp",
"Baga Sobané": "bsv",
"Bagheli": "bfy",
"Bagirmi": "bmi",
"Bago-Kusuntu": "bqg",
"Bagri": "bgq",
"Bagua": "sai-bag",
"Bagupi": "bpi",
"Bagusa": "bqb",
"Bagvalal": "kva",
"Baha": "yha",
"Bahaaa Isyarat Mauritius": "lsy",
"Bahaaa Isyarat Panama": "lsp",
"Baham": "bdw",
"Bahasa Hitam": "art-bsp",
"Bahasa Isyarat Adamorobe": "ads",
"Bahasa Isyarat Afghanistan": "afg",
"Bahasa Isyarat Afrika Selatan": "sfs",
"Bahasa Isyarat Algeria": "asp",
"Bahasa Isyarat Amerika": "ase",
"Bahasa Isyarat Argentina": "aed",
"Bahasa Isyarat Armenia": "aen",
"Bahasa Isyarat Austria": "asq",
"Bahasa Isyarat Chad": "cds",
"Bahasa Isyarat Croatia": "csq",
"Bahasa Isyarat Ecuador": "ecs",
"Bahasa Isyarat El Salvador": "esn",
"Bahasa Isyarat Estonia": "eso",
"Bahasa Isyarat Filipina": "psp",
"Bahasa Isyarat Finland": "fse",
"Bahasa Isyarat Finland-Sweden": "fss",
"Bahasa Isyarat Habsyah": "eth",
"Bahasa Isyarat Haiphong": "haf",
"Bahasa Isyarat Hanoi": "hab",
"Bahasa Isyarat Hausa": "hsl",
"Bahasa Isyarat Honduras": "hds",
"Bahasa Isyarat Hong Kong": "hks",
"Bahasa Isyarat Hungary": "hsh",
"Bahasa Isyarat Iceland": "icl",
"Bahasa Isyarat India": "ins",
"Bahasa Isyarat Indonesia": "inl",
"Bahasa Isyarat Inuit": "iks",
"Bahasa Isyarat Ireland": "isg",
"Bahasa Isyarat Israel": "isr",
"Bahasa Isyarat Itali": "ise",
"Bahasa Isyarat Jamaica": "jls",
"Bahasa Isyarat Jepun": "jsl",
"Bahasa Isyarat Jhankot": "jhs",
"Bahasa Isyarat Jordan": "jos",
"Bahasa Isyarat Jumla": "jus",
"Bahasa Isyarat Kentish Kuno": "okl",
"Bahasa Isyarat Korea": "kvk",
"Bahasa Isyarat Lao": "lso",
"Bahasa Isyarat Latvia": "lsl",
"Bahasa Isyarat Libya": "lbs",
"Bahasa Isyarat Madagascar": "mzc",
"Bahasa Isyarat Malta": "mdl",
"Bahasa Isyarat Maritim": "nsr",
"Bahasa Isyarat Martha's Vineyard": "mre",
"Bahasa Isyarat Maya Yucatec": "msd",
"Bahasa Isyarat Mesir": "esl",
"Bahasa Isyarat Mexico": "mfs",
"Bahasa Isyarat Miriwoong": "rsm",
"Bahasa Isyarat Monastik": "mzg",
"Bahasa Isyarat Mongolia": "msr",
"Bahasa Isyarat Mozambique": "mzy",
"Bahasa Isyarat Namibia": "nbs",
"Bahasa Isyarat Negara Jamaica": "jcs",
"Bahasa Isyarat Nepal": "nsp",
"Bahasa Isyarat New Zealand": "nzs",
"Bahasa Isyarat Nicaragua": "ncs",
"Bahasa Isyarat Nigeria": "nsi",
"Bahasa Isyarat Norway": "nsl",
"Bahasa Isyarat Orang Asli Australia": "asw",
"Bahasa Isyarat Pakistan": "pks",
"Bahasa Isyarat Papua New Guinea": "pgz",
"Bahasa Isyarat Paraguay": "pys",
"Bahasa Isyarat Parsi": "psc",
"Bahasa Isyarat Perancis": "fsl",
"Bahasa Isyarat Peru": "prl",
"Bahasa Isyarat Poland": "pso",
"Bahasa Isyarat Portugis": "psr",
"Bahasa Isyarat Providencia": "prz",
"Bahasa Isyarat Puerto Rico": "psl",
"Bahasa Isyarat Pulau Pinang": "psg",
"Bahasa Isyarat Quebec": "fcs",
"Bahasa Isyarat Romania": "rms",
"Bahasa Isyarat Rusia": "rsl",
"Bahasa Isyarat Taiwan": "tss",
"Bahasa Isyarat Tanzania": "tza",
"Bahasa Isyarat Tebul": "tsy",
"Bahasa Isyarat Thai": "tsq",
"Bahasa Isyarat Trinidad dan Tobago": "lst",
"Bahasa Isyarat Tunisia": "tse",
"Bahasa Isyarat Turki": "tsm",
"Bahasa Isyarat Yahudi Algeria": "ajs",
"Bahasa Lembah Indus": "xiv",
"Bahasa Roh Maroon": "crp-mar",
"Bahau": "bhv",
"Bahinemo": "bjh",
"Bahing": "bhj",
"Bahnar": "bdq",
"Bahonsuai": "bsu",
"Bai": "bdj",
"Bai Selatan": "bfs",
"Bai Tengah": "bca",
"Baibai": "bbf",
"Baikeno": "bkx",
"Bailang": "tbq-blg",
"Baima": "bqh",
"Baimak": "bmx",
"Bainouk Gubeeher": "alv-bgu",
"Bainouk-Gunyaamolo": "bcz",
"Bainouk-Gunyuño": "bab",
"Bainouk-Samik": "bcb",
"Baiso": "bsw",
"Bajan": "bjs",
"Bajau Indonesia": "bdl",
"Bajau Laut": "sml",
"Bajau Pantai Timur": "ssb",
"Bajau Sama": "bdr",
"Bajelani": "bjm",
"Baka": "bkc",
"Bakairí": "bkq",
"Bakaka": "bqz",
"Bakhtiari": "bqi",
"Baki": "bki",
"Bakoko": "bkh",
"Bakole": "kme",
"Bakpinka": "bbs",
"Baktria": "xbc",
"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": "ban",
"Baliledo": "poz-bal",
"Balkan Gagauz Turkish": "bgx",
"Balo": "bqo",
"Baloi": "biz",
"Balong": "bnt-bal",
"Balti": "bft",
"Baluan-Pam": "blq",
"Baluchi": "bal",
"Bamako Sign Language": "bog",
"Bamali": "bbq",
"Bambalang": "bmo",
"Bambam": "ptu",
"Bambara": "bm",
"Bambassi": "myf",
"Bambili-Bambui": "baw",
"Bamenyam": "bce",
"Bamu": "bcf",
"Bamukumbit": "bqt",
"Bamum": "bax",
"Bamunka": "bvm",
"Bamwe": "bmg",
"Ban Khor Sign Language": "bfk",
"Bana": "bcw",
"Banam Bay": "vrt",
"Banao Itneg": "bjx",
"Banaro": "byz",
"Banda": "bnd",
"Banda Malay": "bpq",
"Banda Tengah Barat": "bbp",
"Banda Tengah Selatan": "lnl",
"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",
"Banjar": "bjn",
"Banka": "bxw",
"Bankan Tey Dogon": "dbw",
"Bankon": "abb",
"Banoni": "bcm",
"Bantawa": "bap",
"Bantayanon": "bfx",
"Bantik": "bnq",
"Banyumasan": "map-bms",
"Baoule": "bci",
"Baraamu": "brd",
"Barai": "bbb",
"Barakai": "baj",
"Barama": "bbg",
"Barambu": "brm",
"Baramu": "bmz",
"Barapasi": "brp",
"Baras": "brs",
"Barasana": "bsn",
"Barbar Tunisia": "sds",
"Barbareño": "boi",
"Bardi": "bcj",
"Barein": "bva",
"Bargam": "mlp",
"Bari": "bfa",
"Bariai": "bch",
"Bariji": "bjc",
"Barikanchi": "bxo",
"Barikewa": "jbk",
"Barngarla": "bjb",
"Barok": "bjk",
"Barombi": "bbi",
"Barranbinya": "aus-bra",
"Barro Negro Tunebo": "tbn",
"Barrow Point": "bpt",
"Baruga": "bjz",
"Barunggam": "aus-brm",
"Baruya": "byr",
"Barwe": "bwg",
"Barzani Jewish Neo-Aramaic": "bjf",
"Baré": "bae",
"Barí": "mot",
"Basa": "bzw",
"Basa-Gumna": "bsl",
"Basa-Gurmana": "buj",
"Basaa": "bas",
"Basap": "bdb",
"Basay": "byq",
"Bashkardi": "bsg",
"Bashkir": "ba",
"Basketo": "bst",
"Basque": "eu",
"Bassa": "bsq",
"Bassa-Kontagora": "bsr",
"Bassari": "bsc",
"Bassossi": "bsi",
"Bata": "bta",
"Batad Ifugao": "ifb",
"Batak Alas-Kluet": "btz",
"Batak Angkola": "akb",
"Batak Dairi": "btd",
"Batak Karo": "btx",
"Batak Mandailing": "btm",
"Batak Palawan": "bya",
"Batak Simalungun": "bts",
"Batak Toba": "bbc",
"Batanga": "bnm",
"Batek": "btq",
"Bateri": "btv",
"Bathari": "bhm",
"Bati (Cameroon)": "btc",
"Bati (Indonesia)": "bvt",
"Bats": "bbl",
"Batu": "btu",
"Batui": "zbt",
"Batuley": "bay",
"Bau": "bbd",
"Bauchi": "bsf",
"Baure": "brg",
"Bauria": "bge",
"Bauro": "bxa",
"Bauwaki": "bwk",
"Bauzi": "bvz",
"Bavarian": "bar",
"Bayali": "bjy",
"Baybayanon": "bvy",
"Baygo": "byg",
"Bayogoula": "nai-bay",
"Bayono": "byl",
"Bayot": "bda",
"Bayungu": "bxj",
"Bazigar": "bfr",
"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 Jersey": "gmw-jdt",
"Belanda Kreol Berbice": "brc",
"Belanda Kreol Skepi": "skw",
"Belanda Kuno": "odt",
"Belanda Pertengahan": "dum",
"Belanda Viri": "bvi",
"Belarusian": "be",
"Belhariya": "byw",
"Beli": "blm",
"Bella Coola": "blc",
"Bellari": "brw",
"Bemba": "bem",
"Bembe": "bmb",
"Ben Tey": "dbt",
"Bena": "yun",
"Benabena": "bef",
"Bench": "bcq",
"Bende": "bdp",
"Bendi": "bct",
"Beneraf": "bnv",
"Beng": "nhb",
"Benga": "bng",
"Bengal Kuno": "inc-obn",
"Bengal Pertengahan": "inc-mbn",
"Bengali": "bn",
"Benggoi": "bgy",
"Bengkala Sign Language": "bqy",
"Bentong": "bnu",
"Benyadu'": "byd",
"Beothuk": "bue",
"Bepour": "bie",
"Bera": "brf",
"Berakou": "bxv",
"Berawan": "lod",
"Berber Saharan Utara": "mzb",
"Bergish": "gmw-bgh",
"Berik": "bkl",
"Berinomo": "bit",
"Berom": "bom",
"Berta": "wti",
"Berti": "byt",
"Besisi": "mhe",
"Besme": "bes",
"Besoa": "bep",
"Betaf": "bfe",
"Betawi": "bew",
"Bete": "byf",
"Bete-Bendi": "btt",
"Betoi": "sai-bet",
"Bezhta": "kap",
"Bhadrawahi": "bhd",
"Bhalay": "bhx",
"Bharia": "bha",
"Bhatri": "bgw",
"Bhattiyali": "bht",
"Bhaya": "bhe",
"Bhele": "bhy",
"Bhilali": "bhi",
"Bhili": "bhb",
"Bhojpur": "bho",
"Bhunjia": "bhu",
"Biafada": "bif",
"Biage": "bdf",
"Biak": "bhw",
"Biali": "beh",
"Bian Marind": "bpv",
"Biangai": "big",
"Biao": "byk",
"Biao Mon": "bmt",
"Biao-Jiao Mien": "bje",
"Bibaali": "bcn",
"Bibbulman": "xbp",
"Bicolano Catanduanes Selatan": "bln",
"Bicolano Catanduanes Utara": "cts",
"Bicolano Iriga": "bto",
"Bidayuh Bau": "sne",
"Bidayuh Biatah": "bth",
"Bidayuh Bukar-Sadong": "sdo",
"Bidiyo": "bid",
"Bidyara": "bym",
"Bidyogo": "bjg",
"Biem": "bmc",
"Bierebo": "bnk",
"Bieria": "brj",
"Biete": "biu",
"Big Nambas": "nmb",
"Biga": "bhc",
"Bigambal": "xbe",
"Bih": "ibh",
"Bihari": "bh",
"Bijori": "bix",
"Bikaru": "bic",
"Bikol Libon": "lbl",
"Bikol Miraya": "rbl",
"Bikol Miraya Barat": "fbl",
"Bikol Tengah": "bcl",
"Bikya": "byb",
"Bila": "bip",
"Bilakura": "bql",
"Bilaspuri": "kfs",
"Bilba": "bpz",
"Bilbil": "brz",
"Bile": "bil",
"Biliau": "bcu",
"Biloxi": "bll",
"Bilua": "blb",
"Bilur": "bxf",
"Bima": "bhp",
"Bimin": "bhl",
"Bimoba": "bim",
"Bina": "bmn",
"Binahari": "bxz",
"Binandere": "bhg",
"Binawa": "byj",
"Bindal": "xbd",
"Bine": "bon",
"Binji": "bpj",
"Binongan Itneg": "itb",
"Bintauna": "bne",
"Binukid": "bkd",
"Binumarien": "bjr",
"Bipi": "biq",
"Birao": "brr",
"Birgid": "brk",
"Birgit": "btf",
"Birhor": "biy",
"Biri": "bzr",
"Birifor Selatan": "biv",
"Biritai": "bqq",
"Birri": "bvq",
"Birrpayi": "xbj",
"Birwa": "brl",
"Bisaya Brunei": "bsb",
"Bisaya Sabah": "bsy",
"Biseni": "ije",
"Bishnupriya Manipuri": "bpy",
"Bishuo": "bwh",
"Bisis": "bnw",
"Bislama": "bi",
"Bisorio": "bir",
"Bissa": "bib",
"Bisu": "bzi",
"Bit": "bgk",
"Bitare": "brt",
"Bitur": "mcc",
"Biwat": "bwm",
"Biyo": "byo",
"Biyom": "bpm",
"Blablanga": "blp",
"Blackfoot": "bla",
"Blafe": "bfh",
"Blagar": "beu",
"Blang": "blr",
"Blin": "byn",
"Bo": "bgl",
"Bo-Rukul": "mae",
"Bo-Ung": "mux",
"Boano (Maluku)": "bzn",
"Boano (Sulawesi)": "bzl",
"Bobo Selatan": "bwq",
"Bobongko": "bgb",
"Bobot": "bty",
"Bodo (Central Africa)": "boy",
"Bodo (India)": "brx",
"Bodo Parja": "bdv",
"Bofi": "bff",
"Boga": "bvw",
"Bogaya": "boq",
"Boghom": "bux",
"Boguru": "bqu",
"Boikin": "bzf",
"Bokar": "sit-bok",
"Bokha": "ybk",
"Boko": "bqc",
"Bokobaru": "bus",
"Bokoto": "bdt",
"Bokyi": "bky",
"Bola": "bnp",
"Bolak": "art-blk",
"Bolango": "bld",
"Bole": "bol",
"Bolgo": "bvo",
"Bolia": "bli",
"Bolinao": "smk",
"Bolivian Sign Language": "bvl",
"Boloki": "bkt",
"Bolon": "bof",
"Bolondo": "bzm",
"Bolongan": "blj",
"Bolyu": "ply",
"Bom": "bmf",
"Boma Nkuu": "bnt-bon",
"Boma Selatan": "bnt-sbo",
"Boma Utara": "boh",
"Boma Yumu": "bnt-boy",
"Bomboli": "bml",
"Bomboma": "bws",
"Bomitaba": "zmx",
"Bomu": "bmq",
"Bomwali": "bmw",
"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",
"Bontoc Barat Daya": "vbk",
"Bontoc Selatan": "obk",
"Bontoc Tengah": "lbk",
"Bontoc Timur": "ebk",
"Bontoc Utara": "rbk",
"Bookan": "bnb",
"Boon": "bnl",
"Boor": "bvf",
"Bora": "boa",
"Boro": "xxb",
"Borong": "ksr",
"Boruca": "brn",
"Borôro": "bor",
"Boselewa": "bwf",
"Bosngun": "bqs",
"Bote-Majhi": "bmj",
"Botlikh": "bph",
"Botolan Sambal": "sbl",
"Bourbonnais-Berrichon": "roa-bbn",
"Bourguignon": "roa-brg",
"Bouyei": "pcc",
"Bozaba": "bzo",
"Bragat": "aof",
"Brahui": "brh",
"Braj": "bra",
"Brazilian Sign Language": "bzs",
"Brem": "buq",
"Breri": "brq",
"Breton": "br",
"Breton Kuno": "obt",
"Breton Pertengahan": "xbm",
"Bribri": "bzd",
"British Sign Language": "bfi",
"Brokkat": "bro",
"Brokpake": "sgt",
"Brokskat": "bkk",
"Broome Pearling Lugger Pidgin": "bpl",
"Bru Barat": "brv",
"Bru Timur": "bru",
"Bu": "jid",
"Bu-Nao Bunu": "bwx",
"Bua": "bub",
"Buamu": "box",
"Bube": "bvb",
"Bubi": "buw",
"Bubia": "bbx",
"Budeh Stieng": "stt",
"Budibud": "btp",
"Budong-Budong": "bdx",
"Budu": "buu",
"Budukh": "bdk",
"Buduma": "bdm",
"Budza": "bja",
"Bugan": "bbh",
"Bughotu": "bgt",
"Bugis": "bug",
"Buglere": "sab",
"Bugun": "bgg",
"Buhi'non Bikol": "ubl",
"Buhid": "bku",
"Buhutu": "bxh",
"Bujhyal": "byh",
"Bukat": "bvk",
"Bukawa": "buk",
"Bukhari": "bhh",
"Bukitan": "bkn",
"Bukiyip": "ape",
"Buksa": "tkb",
"Bukusu": "bxk",
"Bulgar": "xbo",
"Bulgarian": "bg",
"Bulgarian Sign Language": "bqn",
"Bulgebi": "bmp",
"Buli (Ghana)": "bwu",
"Buli (Indonesia)": "bzq",
"Bulo Stieng": "sti",
"Bulu (Cameroon)": "bum",
"Bulu (New Guinea)": "bjl",
"Bum": "bmv",
"Bumaji": "byp",
"Bumang": "bvp",
"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",
"Burak": "bys",
"Buraka": "bkg",
"Burarra": "bvr",
"Burate": "bti",
"Burduna": "bxn",
"Bure": "bvh",
"Burgundia": "gme-bur",
"Burji": "bji",
"Burma Kuno": "obr",
"Burmese": "my",
"Burmeso": "bzu",
"Buru (Indonesia)": "mhs",
"Buru (Nigeria)": "bqw",
"Burui": "bry",
"Burumakok": "aip",
"Burun": "bdi",
"Burunge": "bds",
"Burushaski": "bsk",
"Burusu": "bqr",
"Buruwai": "asi",
"Buryat": "bua",
"Busa": "bqp",
"Busam": "bxs",
"Busami": "bsm",
"Busang Kayan": "bfg",
"Bushoong": "buf",
"Buso": "bso",
"Busoa": "bup",
"Bussa": "dox",
"Busuu": "bju",
"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",
"Bwela": "bwl",
"Bwile": "bwc",
"Bwisi": "bwz",
"Byangsi": "bee",
"Byep": "mkk",
"Bädi Kanum": "khd",
"Caac": "msq",
"Cabiyarí": "cbb",
"Cabre": "awd-cab",
"Cabécar": "cjp",
"Cacaopera": "ccr",
"Cacua": "cbv",
"Cacán": "sai-cac",
"Caddo": "cad",
"Cafundó": "ccd",
"Cahuarano": "cah",
"Cahuilla": "chl",
"Caijia": "sit-cai",
"Caka": "ckx",
"Cakchiquel-Quiché Mixed Language": "ckz",
"Cakfem-Mushere": "cky",
"Calamian Tagbanwa": "tbk",
"Callawalla": "caw",
"Calusa": "nai-cal",
"Caluyanun": "clu",
"Caló": "rmq",
"Cam Barat": "cja",
"Cam Timur": "cjm",
"Campalagian": "cml",
"Camsá": "kbh",
"Camtho": "cmt",
"Camunic": "xcc",
"Candoshi-Shapra": "cbu",
"Canela": "ram",
"Canichana": "caz",
"Cantabrian": "roa-can",
"Cao Miao": "cov",
"Caolan": "mlc",
"Capanahua": "kaq",
"Capiznon": "cps",
"Caquinte": "cot",
"Car Nicobarese": "caq",
"Cara": "cfd",
"Carabayo": "cby",
"Caramanta": "crf",
"Caranqui": "sai-caq",
"Carapana": "cbc",
"Carian": "xcr",
"Cariay": "awd-kar",
"Carijona": "cbd",
"Carolinian": "cal",
"Carrier": "crx",
"Carrier Selatan": "caf",
"Cashibo-Cacataibo": "cbr",
"Cashinahua": "cbs",
"Catacao": "sai-cat",
"Catalan": "ca",
"Catalan Kuno": "roa-oca",
"Catalan Sign Language": "csc",
"Catawba": "chc",
"Catuquinaru": "sai-ctq",
"Catío Chibcha": "cba-cat",
"Cauca": "cca",
"Cavineña": "cav",
"Cayubaba": "cyb",
"Cayuga": "cay",
"Cayuse": "xcy",
"Cazcan": "azc-caz",
"Cañari": "sai-cnr",
"Cebaara Senoufo": "sef",
"Cebuano": "ceb",
"Celtiberian": "xce",
"Cemuhî": "cam",
"Cen": "cen",
"Central Palawano": "plc",
"Centúúm": "cet",
"Cerma": "cme",
"Ch'olti'": "myn-chl",
"Ch'orti'": "caa",
"Chaap Wuurong": "tjw",
"Chachi": "cbi",
"Chadong": "cdy",
"Chagatai": "chg",
"Chaha": "sem-cha",
"Chaima": "ciy",
"Chairel": "sit-cha",
"Chak": "ckh",
"Chakali": "cli",
"Chakma": "ccp",
"Chala": "cll",
"Chaldean Neo-Aramaic": "cld",
"Chali": "tgf",
"Chamacoco": "ceg",
"Chamalal": "cji",
"Chamba Daka": "ccg",
"Chamba Leko": "ndi",
"Chambeali": "cdh",
"Chambri": "can",
"Chamicuro": "ccc",
"Chamling": "rab",
"Chamorro": "ch",
"Champenois": "roa-cha",
"Chang": "nbc",
"Changriwa": "cga",
"Changthang": "cna",
"Chantyal": "chx",
"Chaná": "sai-chn",
"Chané": "caj",
"Chapacura": "sai-chp",
"Chara": "cra",
"Charrua": "sai-chr",
"Chatino San Juan Quiahije": "omq-sjq",
"Chatino Tanah Tinggi Barat": "ctp",
"Chatino Tanah Tinggi Timur": "cly",
"Chatino Teojomulco": "omq-teo",
"Chaudangsi": "cdn",
"Chaura": "crv",
"Chavacano": "cbk",
"Chayahuita": "cbt",
"Chazumba Mixtec": "xtb",
"Che": "ruk",
"Chechen": "ce",
"Cheke Holo": "mrn",
"Chemakum": "xch",
"Chenapian": "cjn",
"Chenchu": "cde",
"Chenoua": "cnu",
"Chepang": "cdm",
"Chepya": "ycp",
"Cherepon": "cpn",
"Cherokee": "chr",
"Chesu": "ych",
"Chetco-Tolowa": "ctc",
"Chewong": "cwg",
"Cheyenne": "chy",
"Chhattisgarhi": "hne",
"Chhintange": "ctn",
"Chhulung": "cur",
"Chiangmai Sign Language": "csd",
"Chiapanec": "cip",
"Chibcha": "chb",
"Chicahuaxtla Triqui": "trs",
"Chichewa": "ny",
"Chichicapan Zapotec": "zpv",
"Chichimeca-Jonaz": "pei",
"Chichonyi-Chidzihana-Chikauma": "coh",
"Chickasaw": "cic",
"Chicomuceltec": "cob",
"Chiduruma": "dug",
"Chilcotin": "clc",
"Chilean Sign Language": "csg",
"Chilisso": "clh",
"Chiltepec Chinantec": "csa",
"Chimalapa Zoque": "zoh",
"Chimariko": "cid",
"Chimila": "cbg",
"Chimwiini": "bnt-cmw",
"Chin Asho": "csh",
"Chin Bawm": "bgr",
"Chin Bualkhaw": "cbl",
"Chin Chinbon": "cnb",
"Chin Daai": "dao",
"Chin Falam": "cfm",
"Chin Kaang": "ckn",
"Chin Khumi": "cnk",
"Chin Laitu": "clt",
"Chin Mara": "mrh",
"Chin Mro": "cmr",
"Chin Ngawn": "cnw",
"Chin Senthang": "sez",
"Chin Siyin": "csy",
"Chin Songlai": "csj",
"Chin Sumtu": "csv",
"Chin Tawr": "tcp",
"Chin Tedim": "ctd",
"Chin Thado": "tcz",
"Chin Thaiphum": "cth",
"Chin Zotung": "czt",
"Chinali": "cih",
"Chinese": "zh",
"Chinese Sign Language": "csl",
"Chinook": "chh",
"Chinook Jargon": "chn",
"Chipaya": "cap",
"Chipewyan": "chp",
"Chiquimulilla": "nai-chi",
"Chiquitano": "cax",
"Chiricahua": "apm",
"Chirino": "sai-chi",
"Chiripá": "nhd",
"Chiru": "cdf",
"Chitimacha": "ctm",
"Chitkuli Kinnauri": "cik",
"Chittagong": "ctg",
"Chitwania Tharu": "the",
"Chiwere": "iow",
"Choapan Zapotec": "zpc",
"Chocangaca": "cgk",
"Chochotec": "coz",
"Choctaw": "cho",
"Chodri": "cdi",
"Chokwe": "cjk",
"Chol": "ctu",
"Cholón": "cht",
"Chong": "cog",
"Choni": "cda",
"Chono": "sai-cno",
"Chopi": "cce",
"Chrau": "crw",
"Chru": "cje",
"Chuabo": "chw",
"Chuanqiandian Cluster Miao": "cqd",
"Chuave": "cjv",
"Chug": "cvg",
"Chuj": "cac",
"Chuka": "cuh",
"Chukchi": "ckt",
"Chukwa": "cuw",
"Chulym": "clw",
"Chumburung": "ncu",
"Churahi": "cdj",
"Churuya": "sai-chu",
"Chut": "scb",
"Chuuk": "chk",
"Chuva": "xcv",
"Chuvash": "cv",
"Chácobo": "cao",
"Ci Gbe": "cib",
"Cia-Cia": "cia",
"Cibak": "ckl",
"Cicipu": "awc",
"Ciguayo": "nai-cig",
"Cimbrian": "cim",
"Cina Kuno": "och",
"Cina Pertengahan": "ltc",
"Cinda-Regi-Tiyal": "cdr",
"Cineni": "cie",
"Cinta Larga": "cin",
"Circassian Barat": "ady",
"Cishingini": "asg",
"Citak": "txt",
"Ciwogai": "tgd",
"Coahuilteco": "xcw",
"Coatlán Zapotec": "zps",
"Cocama": "cod",
"Cochimi": "coj",
"Cocopa": "coc",
"Coeruna": "sai-coe",
"Coeur d'Alene": "crd",
"Cofán": "con",
"Cogui": "kog",
"Col": "liw",
"Colombian Sign Language": "csn",
"Columbia-Wenatchi": "col",
"Colán": "sai-col",
"Comaltepec Chinantec": "cco",
"Comanche": "com",
"Comechingon": "sai-cmg",
"Comecrudo": "xcm",
"Communicationssprache": "art-com",
"Como Karim": "cfg",
"Comoros Maore": "swb",
"Comoros Ngazidja": "zdj",
"Comox": "coo",
"Con": "cno",
"Coos": "csz",
"Copainalá Zoque": "zoc",
"Copala Triqui": "trc",
"Copallén": "sai-cop",
"Coquille": "coq",
"Cora": "crn",
"Cori": "cry",
"Cornish": "kw",
"Cornwall Kuno": "oco",
"Cornwall Pertengahan": "cnx",
"Coroado Puri": "sai-crd",
"Corsican": "co",
"Costa Rican Sign Language": "csr",
"Cotoname": "xcn",
"Cowlitz": "cow",
"Coyaima": "coy",
"Coyotepec Popoloca": "pbf",
"Coyutla Totonac": "toc",
"Cree": "cr",
"Cree Moose": "crm",
"Cree Timur Selatan": "crj",
"Cree Timur Utara": "crl",
"Creek": "mus",
"Crow": "cro",
"Cruzeño": "crz",
"Cua": "cua",
"Cuban Sign Language": "csf",
"Cubeo": "cub",
"Cueva": "sai-cva",
"Cuiba": "cui",
"Cuitlatec": "cuy",
"Culina": "cul",
"Culli": "sai-cul",
"Cumanagoto": "cuo",
"Cumbric": "xcb",
"Cun": "cuq",
"Cung": "cug",
"Cupeño": "cup",
"Curonian": "xcu",
"Curripaco": "kpc",
"Cutchi-Swahili": "ccl",
"Cuvok": "cuv",
"Cuyunon": "cyo",
"Cwi Bwamu": "bwy",
"Czech": "cs",
"Czech Kuno": "zlw-ocs",
"Czech Sign Language": "cse",
"Cốông": "cnc",
"Da'a Kaili": "kzf",
"Daantanai'": "lni",
"Daasanach": "dsh",
"Daba": "dbq",
"Dabarre": "dbr",
"Dabe": "dbe",
"Dacian": "xdc",
"Dadan": "sem-dad",
"Dadi Dadi": "dda",
"Dadibi": "mps",
"Dadiya": "dbd",
"Daga": "dgz",
"Dagaare Selatan": "dga",
"Dagaari Dioula": "dgd",
"Dagara Utara": "dgi",
"Dagba": "dgk",
"Dagbani": "dag",
"Dagik": "dec",
"Dagoman": "dgn",
"Dahalik": "dlk",
"Dahalo": "dal",
"Daho-Doo": "das",
"Dai": "dij",
"Dair": "drb",
"Dakaka": "bpa",
"Dakka": "dkk",
"Dakota": "dak",
"Dakpa": "dka",
"Dalmatian": "dlm",
"Daloa Bété": "bev",
"Dama (Nigeria)": "dmm",
"Dama (Sierra Leone)": "dmn-dam",
"Damakawa": "dam",
"Damal": "uhn",
"Damar Barat": "drn",
"Damar Timur": "dmr",
"Dambi": "dac",
"Dameli": "dml",
"Dampelas": "dms",
"Dan": "dnj",
"Danaru": "dnr",
"Danau": "dnu",
"Dandami Maria": "daq",
"Dangaléat": "daa",
"Dangaura Tharu": "thl",
"Dani Barat": "dnw",
"Danish": "da",
"Danish Sign Language": "dsl",
"Dano": "aso",
"Danu": "dnv",
"Danuwar": "dhw",
"Dao": "daz",
"Daonda": "dnd",
"Dar Daju Daju": "djc",
"Dar Fur Daju": "daj",
"Dar Sila Daju": "dau",
"Darai": "dry",
"Dargwa": "dar",
"Darkinjung": "xda",
"Darlong": "dln",
"Darmiya": "drd",
"Darumbal": "xgm",
"Dass": "dot",
"Datooga": "tcc",
"Daungwurrung": "dgw",
"Daur": "dta",
"Davawenyo": "daw",
"Dawawa": "dww",
"Dawera-Daweloor": "ddw",
"Dawro": "dwr",
"Day": "dai",
"Dayi": "dax",
"Dazaga": "dzg",
"Deccani": "dcc",
"Dedua": "ded",
"Defaka": "afn",
"Deg": "mzw",
"Deg Xinag": "ing",
"Degema": "deg",
"Degenan": "dge",
"Dehwari": "deh",
"Dek": "dek",
"Dela-Oenale": "row",
"Delo": "ntr",
"Dem": "dem",
"Dema": "dmx",
"Demisa": "dei",
"Demta": "dmy",
"Dena'ina": "tfn",
"Dendi": "ddn",
"Dengese": "dez",
"Dengka": "dnk",
"Denmark Kuno": "gmq-oda",
"Denmark Pengembara": "rmd",
"Deno": "dbb",
"Denya": "anv",
"Dení": "dny",
"Deori": "der",
"Desano": "des",
"Desiya": "dso",
"Dewas Rai": "dwz",
"Dewoin": "dee",
"Dezfuli": "def",
"Dghwede": "dgh",
"Dhaiso": "dhs",
"Dhalandji": "dhl",
"Dhangu": "dhg",
"Dhanki": "dhn",
"Dhao": "nfa",
"Dharug": "xdk",
"Dhatki": "mki",
"Dhimal": "dhi",
"Dhivehi": "dv",
"Dhodia": "dho",
"Dhudhuroa": "ddr",
"Dhungaloo": "dhx",
"Dhurga": "dhu",
"Dhuwal": "dwu",
"Dhuwaya": "dwy",
"Dia": "dia",
"Dibiyaso": "dby",
"Dibo": "dio",
"Didinga": "did",
"Dieri": "dif",
"Digo": "dig",
"Dii": "dur",
"Dijim-Bwilim": "cfa",
"Dilling": "dil",
"Dima": "jma",
"Dimasa": "dis",
"Dimbong": "dii",
"Dime": "dim",
"Dineor": "mrx",
"Ding": "diz",
"Dinka": "din",
"Dinka Barat Daya": "dik",
"Dinka Barat Laut": "diw",
"Dinka Tengah Selatan": "dib",
"Dinka Tenggara": "dks",
"Dinka Timur Laut": "dip",
"Diodio": "ddi",
"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",
"Dogon Ampari": "aqd",
"Dogon Nanga Dama": "nzz",
"Dogoso": "dgs",
"Dogosé": "dos",
"Dogri": "doi",
"Dogrib": "dgr",
"Dogul Dom": "dbg",
"Doka": "dbi",
"Doko-Uyanga": "uya",
"Dolgan": "dlg",
"Dom": "doa",
"Domaaki": "dmk",
"Domari": "rmt",
"Dominican Sign Language": "doq",
"Dompo": "doy",
"Domu": "dof",
"Domung": "dev",
"Dondo": "dok",
"Dong": "doh",
"Dongo": "doo",
"Dongolawi": "kzh",
"Dongotono": "ddd",
"Dongshanba Lalo": "yik",
"Dongxiang": "sce",
"Donno So Dogon": "dds",
"Doondo": "dde",
"Dorasque": "cba-dor",
"Dori'o": "dor",
"Dorig": "wwo",
"Doromu-Koki": "kqc",
"Dorze": "doz",
"Doso": "dol",
"Doteli": "dty",
"Dothraki": "art-dtk",
"Doura": "don",
"Doutai": "tds",
"Doyayo": "dow",
"Drehu": "dhv",
"Drung": "duu",
"Duala": "dua",
"Duano": "dup",
"Duau": "dva",
"Dubli": "dub",
"Dubu": "dmu",
"Dugun": "ndu",
"Duguri": "dbm",
"Dugwor": "dme",
"Duhwa": "kbz",
"Duit": "cba-dui",
"Duke": "nke",
"Dukhan": "trk-dkh",
"Dulbu": "dbo",
"Duli": "duz",
"Duma": "dma",
"Dumait": "sem-dum",
"Dumbea": "duf",
"Dumi": "dus",
"Dumpas": "dmv",
"Dumun": "dui",
"Duna": "duc",
"Dungan": "dng",
"Dungmali": "raa",
"Dungra Bhil": "duh",
"Dungu": "dbv",
"Dura": "drq",
"Duri": "mvp",
"Duriankere": "dbn",
"Duruwa": "pci",
"Dusner": "dsn",
"Dusun Deyah": "dun",
"Dusun Malang": "duq",
"Dusun Sugut": "kzs",
"Dusun Tambunan": "kzt",
"Dusun Witu": "duw",
"Dutch": "nl",
"Dutch Sign Language": "dse",
"Duun": "dux",
"Duupa": "dae",
"Duvle": "duv",
"Duwai": "dbp",
"Dwang": "nnu",
"Dyaabugay": "dyy",
"Dyaberdyaber": "dyb",
"Dyan": "dya",
"Dyangadi": "dyn",
"Dyirbal": "dbl",
"Dyugun": "dyd",
"Dyula": "dyu",
"Dza": "jen",
"Dzala": "dzl",
"Dzando": "dzn",
"Dzao Min": "bpn",
"Dzodinka": "add",
"Dzongkha": "dz",
"Dzuun": "dnn",
"Dâw": "kwa",
"E": "eee",
"E'ma Buyang": "yzg",
"Eastern Canadian Inuktitut": "ike",
"Ebira": "igb",
"Ebla": "xeb",
"Ebrié": "ebr",
"Ebughu": "ebg",
"Ede Cabe": "cbj",
"Ede Ica": "ica",
"Ede Idaca": "idd",
"Ede Ije": "ijj",
"Ede Nago": "nqg",
"Edo": "bin",
"Edolo": "etr",
"Edom": "xdm",
"Edopi": "dbf",
"Efai": "efa",
"Efate Selatan": "erk",
"Efate Utara": "llp",
"Efe": "efe",
"Efik": "efi",
"Efutop": "ofu",
"Ega": "ega",
"Eggon": "ego",
"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",
"Elam": "elx",
"Eleme": "elm",
"Elepi": "ele",
"Elip": "ekm",
"Elkei": "elk",
"Eloi": "art-elo",
"Elotepec Zapotec": "zte",
"Eloyi": "afo",
"Elseng": "mrf",
"Elu": "elu",
"Elymi": "xly",
"Emae": "mmw",
"Emai": "ema",
"Eman": "emn",
"Embaloh": "emb",
"Emberá Utara": "emp",
"Emberá-Baudó": "bdc",
"Emberá-Catío": "cto",
"Emberá-Chamí": "cmi",
"Emberá-Tadó": "tdc",
"Embu": "ebu",
"Emem": "enr",
"Emerillon": "eme",
"Emilian": "egl",
"Emplawas": "emw",
"En": "enc",
"Enawené-Nawé": "unk",
"Ende": "end",
"Enets Hutan": "enf",
"Enets Tundra": "enh",
"Enga": "enq",
"Engenni": "enn",
"Enggano": "eno",
"English": "en",
"Enlhet": "enl",
"Enrekang": "ptt",
"Enu": "enu",
"Enwan": "env",
"Enwang": "enw",
"Enxet": "enx",
"Eotile": "eot",
"Epena": "sja",
"Epi-Olmec": "xep",
"Epie": "epi",
"Eravallan": "era",
"Erave": "kjy",
"Ere": "twp",
"Erie": "iro-ere",
"Eritai": "ert",
"Erokwanas": "erw",
"Erre": "err",
"Erromintxela": "emx",
"Ersu": "ers",
"Eruwa": "erh",
"Erzya": "myv",
"Esan": "ish",
"Ese": "mcq",
"Ese Ejja": "ese",
"Eshtehardi": "esh",
"Esimbi": "ags",
"Eskayan": "esy",
"Esmeralda": "sai-esm",
"Esperanto": "eo",
"Esselen": "esq",
"Estonian": "et",
"Esuma": "esm",
"Etchemin": "etc",
"Etebi": "etb",
"Eten": "etx",
"Eteocretan": "ecr",
"Eteocypriot": "ecy",
"Etkywan": "ich",
"Eton (Cameroon)": "eto",
"Eton (Vanuatu)": "etn",
"Etruria": "ett",
"Etulo": "utr",
"Evant": "bzz",
"Even": "eve",
"Evenki": "evn",
"Ewage-Notu": "nou",
"Ewarhuyana": "sai-ewa",
"Ewe": "ee",
"Ewondo": "ewo",
"Extremaduran": "ext",
"Eyak": "eya",
"Ezaa": "eza",
"Fagani": "faf",
"Faifi": "fif",
"Faiwol": "fai",
"Fala": "fax",
"Fali": "fli",
"Fali Baissa": "fah",
"Fali Selatan": "fal",
"Fali Utara": "fll",
"Falisci": "xfa",
"Fam": "fam",
"Fanagalo": "fng",
"Fanamaket": "bjp",
"Fang (Bantu)": "fan",
"Fang (Beboid)": "fak",
"Fania": "fni",
"Faroese": "fo",
"Fars Barat Daya": "fay",
"Fars Barat Laut": "faz",
"Fas": "fqs",
"Fasu": "faa",
"Fataleka": "far",
"Fataluku": "ddg",
"Fayu": "fau",
"Fe'fe'": "fmp",
"Fedan": "pdn",
"Fembe": "agl",
"Fer": "kah",
"Feroge": "fer",
"Fiji Barat": "wyy",
"Fijian": "fj",
"Filistin": "mis-phi",
"Filomena Mata-Coahuitlán Totonac": "tlp",
"Fingallian": "gmw-fin",
"Finisterre Yau": "yuw",
"Finnish": "fi",
"Finongan": "fag",
"Fipa": "fip",
"Firan": "fir",
"Fiwaga": "fiw",
"Flemish Barat": "vls",
"Flemish Sign Language": "vgt",
"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",
"Fortsenal": "frt",
"Fox": "sac",
"Franc-Comtois": "roa-fcm",
"Francisco León Zoque": "zos",
"Franco-Provençal": "frp",
"Franconia Rhine": "gmw-rfr",
"Franconia Tengah": "gmw-cfr",
"Franconia Timur": "vmf",
"French": "fr",
"French Belgian Sign Language": "sfb",
"Frisia Kuno": "ofs",
"Frisia Saterland": "stq",
"Frisia Utara": "frr",
"Friulian": "fur",
"Fula": "ff",
"Fuliiru": "flr",
"Fulniô": "fun",
"Fum": "fum",
"Fungwa": "ula",
"Fur": "fvr",
"Furu": "fuu",
"Futuna Timur": "fud",
"Futuna-Aniwa": "fut",
"Fuyug": "fuy",
"Fwe": "fwe",
"Fwâi": "fwa",
"Fyam": "pym",
"Fyer": "fie",
"Gaa": "ttb",
"Gaam": "tbi",
"Gabadi": "kbt",
"Gabrielino-Fernandeño": "xgf",
"Gagnoa Bété": "btg",
"Gahri": "bfu",
"Galatia": "xga",
"Galicia-Portugis Kuno": "roa-opt",
"Galician": "gl",
"Galindan": "xgl",
"Gallaecian": "cel-gal",
"Gallo": "roa-gal",
"Gallo-Itali Basilicata": "roa-gib",
"Gallo-Itali Sicily": "roa-gis",
"Gallura": "sdn",
"Galo": "adl",
"Gamale Kham": "kgj",
"Gamela": "sai-gam",
"Gamilaraay": "kld",
"Gamo-Ningi": "bte",
"Gandhari": "pgd",
"Gane": "gzn",
"Ganza": "gza",
"Gapapaiwa": "pwg",
"Garawa": "wrk",
"Garifuna": "cab",
"Garingbal": "xgi",
"Garus": "gyb",
"Garza": "xgr",
"Gaul": "cel-gau",
"Gavak": "dmc",
"Gavião Pará": "gvp",
"Gavião do Jiparaná": "gvo",
"Gawar-Bati": "gwt",
"Gawwada": "gwd",
"Gayil": "gyl",
"Gayón": "sai-gay",
"Gbaya Barat Laut": "gya",
"Gbayi": "gyg",
"Gbe Kotafon": "kqk",
"Gbe Xwla Barat": "xwl",
"Gbin": "xgb",
"Gciriku": "diu",
"Gcwi": "gwj",
"Ge": "hmj",
"Gedeo": "drs",
"Gela": "nlg",
"Gele'": "sbc",
"Georgia Kuno": "oge",
"Georgian": "ka",
"Gepo": "ygp",
"German": "de",
"Geshiza": "ero-gsz",
"Ghayavi": "bmk",
"Ghomala'": "bbj",
"Ghotuo": "aaa",
"Giangan": "bgi",
"Gikyode": "acd",
"Gimme": "kmp",
"Girawa": "bbr",
"Giryama": "nyf",
"Gizrra": "tof",
"Glio-Oubi": "oub",
"Glosa": "igs",
"Goa'uld": "art-gld",
"Goemai": "ank",
"Goguryeo": "zkg",
"Gokhy": "tbq-gkh",
"Golin": "gvf",
"Golpa": "lja",
"Gong": "ugo",
"Goreng": "xgg",
"Goth Crimea": "gme-cgo",
"Gottscheerish": "gmw-gts",
"Gowro": "gwf",
"Grangali": "nli",
"Grass Koiari": "kbk",
"Greek": "el",
"Greek Calabria": "grk-cal",
"Greek Italiot": "grk-ita",
"Greek Mariupol": "grk-mar",
"Greenlandic": "kl",
"Gros Ventre": "ats",
"Gua": "gwx",
"Guachí": "sai-gua",
"Guajá": "gvj",
"Guamo": "sai-gmo",
"Guarani Klasik": "gn-cls",
"Guarayu": "gyr",
"Guazacapán": "nai-guz",
"Gudang": "xgd",
"Gudanji": "nji",
"Guevea de Humboldt Zapotec": "zpg",
"Gugu Warra": "wrw",
"Guiberoua Bété": "bet",
"Guinau": "awd-gnu",
"Guinea-Bissau Sign Language": "lgs",
"Gujarati": "gu",
"Gujarati Kuno": "inc-ogu",
"Gujarati Pertengahan": "inc-mgu",
"Gulay": "gvl",
"Gumawana": "gvs",
"Gundungurra": "xrd",
"Gungabula": "gyf",
"Gungu": "rub",
"Gunu": "yas",
"Gunya": "gyy",
"Gur Lama": "las",
"Gurani": "hac",
"Gurmana": "gvm",
"Gurung": "gvr",
"Gutnish": "gmq-gut",
"Gutnish Kuno": "gmq-ogt",
"Guugu Yimidhirr": "kky",
"Guwa": "xgw",
"Guwamu": "gwu",
"Guwar": "aus-guw",
"Guyani": "gvy",
"Gvoko": "ngs",
"Gwa": "gwb",
"Gwahatike": "dah",
"Gwak": "jgk",
"Gwamhi-Wuri": "bga",
"Gwandara": "gwn",
"Gwara": "alv-gwa",
"Gweno": "gwe",
"Gwere": "gwr",
"Gwich'in": "gwi",
"Gyalsumdo": "gyo",
"Gyele": "gyi",
"Gyem": "gye",
"Güenoa": "sai-gue",
"Habu": "hbu",
"Hachijō": "jpx-hcj",
"Hadiyya": "hdy",
"Hadothi": "hoj",
"Hadrami": "xhd",
"Hadza": "hts",
"Haeke": "aek",
"Hahon": "hah",
"Haida": "hai",
"Haida Selatan": "hax",
"Haida Utara": "hdn",
"Haigwai": "hgw",
"Hainyaxo Bozo": "bzx",
"Haisla": "has",
"Haitian Creole": "ht",
"Haitian Vodoun Culture Language": "hvc",
"Haiǁom": "hgm",
"Haji": "hji",
"Hajong": "haj",
"Hakka": "hak",
"Hakö": "hao",
"Halang": "hal",
"Halang Doan": "hld",
"Halbi": "hlb",
"Halia": "hla",
"Halkomelem": "hur",
"Hamap": "hmu",
"Hamba": "hba",
"Hamer-Banna": "amf",
"Hamtai": "hmt",
"Hanga": "hag",
"Hanga Hundi": "wos",
"Hani": "hni",
"Hanunoo": "hnn",
"Harami": "xha",
"Harari": "har",
"Haraza": "nub-har",
"Harijan Kinnauri": "kjo",
"Haroi": "hro",
"Harsusi": "hss",
"Haruai": "tmd",
"Haruku": "hrk",
"Haryanvi": "bgc",
"Harzani": "hrz",
"Hasait": "sem-has",
"Hasha": "ybj",
"Hatam": "had",
"Hatti": "xht",
"Hausa": "ha",
"Haush": "sai-hau",
"Havasupai-Walapai-Yavapai": "yuf",
"Haveke": "hvk",
"Havu": "hav",
"Hawai'i Pidgin Sign Language": "hps",
"Hawaii": "haw",
"Haya": "hay",
"Hdi": "xed",
"Hebrew": "he",
"Hehe": "heh",
"Heiban": "hbn",
"Heiltsuk": "hei",
"Helong": "heg",
"Hema": "nix",
"Hemba": "hem",
"Hember Avu": "mmi",
"Herdé": "hed",
"Herero": "hz",
"Hermit": "llf",
"Hernican": "xhr",
"Het": "hit",
"Hewa": "ham",
"Heyo": "auk",
"Hibito": "hib",
"Hidatsa": "hid",
"Higaonon": "mba",
"Highland Konjo": "kjk",
"Highland Oaxaca Chontal": "chd",
"Highland Popoluca": "poi",
"Highland Totonac": "tos",
"Hijuk": "hij",
"Hiligaynon": "hil",
"Himarimã": "hir",
"Hindi": "hi",
"Hindi Dogri": "dgo",
"Hindi Fiji": "hif",
"Hindi Kreol Andaman": "hca",
"Hindi Kuno": "inc-ohi",
"Hindko Selatan": "hnd",
"Hindko Utara": "hno",
"Hinduri": "hii",
"Hindustan Caribbean": "hns",
"Hiri Motu": "ho",
"Hisma": "sem-his",
"Hitchiti": "nai-hit",
"Hitu": "htu",
"Hiw": "hiw",
"Hixkaryana": "hix",
"Hlai": "lic",
"Hlepho Phowa": "yhl",
"Hlersu": "hle",
"Hmar": "hmr",
"Hmong Don": "hmf",
"Hmong Dô": "hmv",
"Hmong Guiyang Barat Daya": "hmg",
"Hmong Guiyang Selatan": "hmy",
"Hmong Guiyang Utara": "huj",
"Hmong Hijau": "hnj",
"Hmong Huishui Barat Daya": "hmh",
"Hmong Huishui Tengah": "hmc",
"Hmong Huishui Timur": "hme",
"Hmong Huishui Utara": "hmi",
"Hmong Luopohe": "hml",
"Hmong Mashan Barat": "hmw",
"Hmong Mashan Selatan": "hma",
"Hmong Mashan Tengah": "hmm",
"Hmong Mashan Utara": "hmp",
"Hmong Putih": "mww",
"Hmong Shua": "hmz",
"Hmwaveke": "mrk",
"Ho": "hoc",
"Ho Chi Minh City Sign Language": "hos",
"Hoava": "hoa",
"Hobyót": "hoh",
"Hoia Hoia": "hhi",
"Hokkien": "nan-hbl",
"Hokkien Peranakan Kelantan": "mis-hkl",
"Holikachuk": "hoi",
"Holiya": "hoy",
"Holma": "hod",
"Holoholo": "hoo",
"Holu": "hol",
"Homa": "hom",
"Hone": "juh",
"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",
"Huave": "huv",
"Huba": "hbb",
"Huetar": "cba-hue",
"Huichol": "hch",
"Huilliche": "huh",
"Huizhou": "czh",
"Hukumina": "huw",
"Hula": "hul",
"Hulaulá": "huy",
"Huli": "hui",
"Hulung": "huk",
"Humburi Senni": "hmb",
"Humene": "huf",
"Hun": "uth",
"Hunde": "hke",
"Hung": "hnu",
"Hungana": "hum",
"Hungarian": "hu",
"Hungary Kuno": "ohu",
"Hungworo": "nat",
"Hunjara-Kaina Ke": "hkk",
"Hunsrik": "hrx",
"Hunzib": "huz",
"Hupa": "hup",
"Hupdë": "jup",
"Hupla": "hap",
"Hurri": "xhu",
"Hwana": "hwo",
"Hya": "hya",
"Hyam": "jab",
"Hän": "haa",
"Hértevin": "hrt",
"I-Wak": "iwk",
"Iaai": "iai",
"Iamalele": "yml",
"Iatmul": "ian",
"Iau": "tmu",
"Ibali Teke": "tek",
"Ibaloi": "ibl",
"Iban": "iba",
"Ibanag": "ibg",
"Ibani": "iby",
"Ibatan": "ivb",
"Iberia": "xib",
"Ibibio": "ibb",
"Ibino": "ibn",
"Iboko": "bkp",
"Ibrani Samaria": "smp",
"Ibu": "ibu",
"Ibuoro": "ibr",
"Icelandic": "is",
"Iceve-Maci": "bec",
"Idahan": "dbj",
"Idakho-Isukha-Tiriki": "ida",
"Idaté": "idt",
"Idere": "ide",
"Idesa": "ids",
"Idi": "idi",
"Idiom Neutral": "mis-idn",
"Ido": "io",
"Idoma": "idu",
"Idon": "idc",
"Idu": "clk",
"Idun": "ldb",
"Iduna": "viv",
"Ifo": "iff",
"Ifè": "ife",
"Igala": "igl",
"Igana": "igg",
"Igbo": "ig",
"Igede": "ige",
"Ignaciano": "ign",
"Igo": "ahl",
"Iguta": "nar",
"Igwe": "igw",
"Iha": "ihp",
"Ihievbe": "ihi",
"Ija-Zuba": "vki",
"Ik": "ikx",
"Ika": "ikk",
"Ikaranggal": "ikr",
"Ikizu": "ikz",
"Iko": "iki",
"Ikobi-Mena": "meb",
"Ikoma": "ntk",
"Ikpeng": "txi",
"Ikpeshi": "ikp",
"Ikposo": "kpo",
"Iku-Gora-Ankwa": "ikv",
"Ikulu": "ikl",
"Ikwere": "ikw",
"Ikwo": "iqw",
"Ila": "ilb",
"Ile Ape": "ila",
"Ilgar": "ilg",
"Ili Turki": "ili",
"Ili'uun": "ilu",
"Illyria": "xil",
"Ilocano": "ilo",
"Ilongot": "ilk",
"Ilue": "ilv",
"Ilwana": "mlk",
"Imbongu": "imo",
"Imonda": "imn",
"Imroing": "imr",
"Inabaknon": "abx",
"Inapang": "mzu",
"Indanga": "bnt-ind",
"Indo-Portugis": "idb",
"Indonesian": "id",
"Indri": "idr",
"Ineseño": "inz",
"Inga": "inb",
"Inggeris Kreol Islander": "icr",
"Inggeris Kreol Tobago": "tgh",
"Inggeris Kreol Trinidad": "trf",
"Inggeris Kreol Turks dan Caicos": "tch",
"Inggeris Kreol Vincent": "svc",
"Inggeris Kuno": "ang",
"Inggeris Pertengahan": "enm",
"Inggeris Pijin Cina": "cpi",
"Ingria": "izh",
"Ingush": "inh",
"Inlaod Itneg": "iti",
"Inoke-Yate": "ino",
"Inonhan": "loc",
"Inor": "ior",
"Interlingua": "ia",
"Interlingue": "ie",
"International Sign": "ils",
"Interslavic": "isv",
"Intha": "int",
"Inuinnaqtun": "esx-inq",
"Inuktitut": "iu",
"Inuktun": "esx-ink",
"Inupiaq": "ik",
"Inuvialuktun": "ikt",
"Ipai": "nai-ipa",
"Ipiko": "ipo",
"Ipili": "ipi",
"Ipulo": "ass",
"Iquito": "iqu",
"Ir": "irr",
"Irantxe": "irn",
"Iranun": "ill",
"Iraqw": "irk",
"Irarutu": "irh",
"Iraya": "iry",
"Ireland Kuno": "sga",
"Ireland Pertengahan": "mga",
"Iresim": "ire",
"Irish": "ga",
"Irula": "iru",
"Isabi": "isa",
"Isan": "tts",
"Isanzu": "isn",
"Isauria": "mis-isa",
"Isconahua": "isc",
"Isebe": "igo",
"Ishkashimi": "isk",
"Isinai": "inn",
"Isirawa": "srl",
"Isnag": "isd",
"Isoko": "iso",
"Istriot": "ist",
"Istro-Romania": "ruo",
"Isu": "isu",
"Isubu": "szv",
"Isyarat Kenya": "xki",
"Isyarat Maghribi": "xms",
"Isyarat Malaysia": "xml",
"Italian": "it",
"Itawit": "itv",
"Itelmen": "itl",
"Itene": "ite",
"Iteri": "itr",
"Itik": "itx",
"Ito": "itw",
"Itonama": "ito",
"Itsekiri": "its",
"Itu Mbon Uzo": "itm",
"Itzá": "itz",
"Iu Mien": "ium",
"Ivatan": "ivv",
"Iwaidja": "ibd",
"Iwal": "kbm",
"Iwam": "iwm",
"Iwur": "iwo",
"Ixcatec": "ixc",
"Ixil": "ixl",
"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",
"Jakaltek": "jac",
"Jakati": "jat",
"Jakun": "jak",
"Jalkunan": "bxl",
"Jamamadí": "jaa",
"Jaminjung": "djd",
"Jamsay": "djm",
"Jamtish": "gmq-jmk",
"Jandavra": "jnd",
"Janday": "jan",
"Jangkang": "djo",
"Jangshung": "jna",
"Janji": "jni",
"Japanese": "ja",
"Japhug": "sit-jap",
"Japrería": "jru",
"Jaqaru": "jqr",
"Jara": "jaf",
"Jarai": "jra",
"Jarawa": "anq",
"Jaru": "ddj",
"Jassic": "ysc",
"Jaunsari": "jns",
"Javanese": "jv",
"Javindo": "jvd",
"Jawa Caribbean": "jvn",
"Jawa Kuno": "kaw",
"Jawa Ontong": "ojv",
"Jawe": "jaz",
"Jaya": "jyy",
"Jebero": "jeb",
"Jeh": "jeh",
"Jehai": "jhi",
"Jeikó": "sai-jko",
"Jeju": "jje",
"Jemez": "tow",
"Jenaama Bozo": "bze",
"Jeng": "jeg",
"Jennu Kurumba": "xuj",
"Jepun Kuno": "ojp",
"Jere": "jer",
"Jeri Kuo": "jek",
"Jerman Pennsylvania": "pdc",
"Jerman Rendah": "nds",
"Jerman Tengah Timur": "gmw-ecg",
"Jerman Volga": "gmw-vog",
"Jerman Zipser": "gmw-zps",
"Jeru": "akj",
"Jerung": "jee",
"Jiamao": "jio",
"Jiba": "juo",
"Jibu": "jib",
"Jicaque Barat": "nai-wji",
"Jicarilla": "apj",
"Jie": "mis-jie",
"Jiiddu": "jii",
"Jilbe": "jie",
"Jili": "mgi",
"Jilim": "jil",
"Jimi": "jmi",
"Jimjimen": "jim",
"Jin": "cjy",
"Jina": "jia",
"Jingpho": "kac",
"Jingulu": "jig",
"Jiongnai Bunu": "pnu",
"Jirajara": "sai-jrj",
"Jirel": "jul",
"Jiru": "jrr",
"Jita": "jit",
"Jizhao": "mis-jzh",
"Jju": "kaj",
"Joba": "job",
"Jofotek-Bromnya": "jbr",
"Jola-Fonyi": "dyo",
"Jola-Kasa": "csk",
"Jonkor Bourmataguil": "jeu",
"Jorá": "jor",
"Jowulu": "jow",
"Ju": "juu",
"Juang": "jun",
"Judeo-Itali": "itk",
"Judeo-Persian": "jpr",
"Judeo-Tat": "jdt",
"Jukun Takum": "jbu",
"Jumaytepeque": "nai-jum",
"Jumjum": "jum",
"Jumli": "jml",
"Jungle Inga": "inj",
"Jur Modo": "bex",
"Juray": "juy",
"Jurchen": "juc",
"Jurúna": "jur",
"Jutiapa": "nai-jtp",
"Jutish": "jut",
"Juwal": "mwb",
"Juǀ'hoan": "ktz",
"Jwira-Pepesa": "jwi",
"Júma": "jua",
"K'iche'": "quc",
"Kaamba": "xku",
"Kaan": "ldl",
"Kaapor Sign Language": "uks",
"Kaba": "ksp",
"Kabalai": "kvf",
"Kabardia": "kbd",
"Kabatei": "xkp",
"Kabba-Laka": "lap",
"Kabishiana": "tup-kab",
"Kabiyé": "kbp",
"Kabola": "klz",
"Kabore One": "onk",
"Kabras": "lkb",
"Kaburi": "uka",
"Kabutra": "kbu",
"Kabuverdianu": "kea",
"Kabwa": "cwa",
"Kabwari": "kcw",
"Kabyle": "kab",
"Kachama-Ganjule": "kcx",
"Kachari": "xac",
"Kachchi": "kfr",
"Kacipo-Balesi": "koe",
"Kaco'": "xkk",
"Kadai": "kzd",
"Kadar": "kej",
"Kadara": "kad",
"Kadaru": "kdu",
"Kadazan": "kzj",
"Kadazan Labuk-Kinabatangan": "dtb",
"Kadazan Sungai Klias": "kqt",
"Kadazandusun": "dtp",
"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",
"Kaingáng São Paulo": "zkp",
"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",
"Kalagan": "kqe",
"Kalagan Kagan": "kll",
"Kalagan Tagakaulu": "klg",
"Kalam": "kmh",
"Kalami": "gwc",
"Kalamsé": "knz",
"Kalanadi": "wkl",
"Kalanga": "kck",
"Kalao": "kly",
"Kalapuya": "kyl",
"Kalapuya Selatan": "sxk",
"Kalapuya Utara": "nrt",
"Kalarko": "kba",
"Kalasha": "kls",
"Kalasuri": "xme-kls",
"Kalašma": "ine-kal",
"Kalenjin": "kln",
"Kalinago": "crb",
"Kalinga Butbut": "kyb",
"Kalinga Lembah Mabaka": "kkg",
"Kalinga Limos": "kmk",
"Kalinga Lubuagan": "knb",
"Kalinga Madukayang": "kmd",
"Kalinga Selatan": "ksc",
"Kalinga Tanudan": "kml",
"Kalkatungu": "ktg",
"Kalkoti": "xka",
"Kalmyk": "xal",
"Kalou": "ywa",
"Kaluli": "bco",
"Kalumpang": "kli",
"Kam": "kdx",
"Kam Selatan": "kmc",
"Kam Utara": "doc",
"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",
"Kambera": "xbr",
"Kamberataro": "kbv",
"Kamberau": "irx",
"Kambiwá": "xbw",
"Kami": "kmi",
"Kamkata-viri": "bsh",
"Kamo": "kcq",
"Kamoro": "kgq",
"Kamta": "rkt",
"Kamu": "xmu",
"Kamula": "xla",
"Kamwe": "hig",
"Kanakanabu": "xnb",
"Kanakuru": "kna",
"Kanamari": "knm",
"Kanashi": "xns",
"Kanasi": "soq",
"Kandas": "kqw",
"Kande": "kbs",
"Kang": "kyp",
"Kanga": "kcp",
"Kangean": "kkv",
"Kanggape": "igm",
"Kangjia": "kxs",
"Kango": "kty",
"Kango-Sua": "kzy",
"Kangri": "xnr",
"Kaniet": "ktk",
"Kanikkaran": "kev",
"Kaningdon-Nindem": "kdp",
"Kaningi": "kzo",
"Kaningra": "knr",
"Kaninuwa": "wat",
"Kanite": "kmu",
"Kanjari": "kft",
"Kanju": "kbe",
"Kankanaey": "kne",
"Kankanay Utara": "xnn",
"Kannada": "kn",
"Kannada Kuno": "dra-okn",
"Kannada Kurumba": "kfi",
"Kannada Pertengahan": "dra-mkn",
"Kannauji": "bjj",
"Kanowit": "kxn",
"Kanoé": "kxo",
"Kansa": "ksk",
"Kantonis": "yue",
"Kantosi": "xkt",
"Kanu": "khx",
"Kanufi": "kni",
"Kanuri": "kr",
"Kanyok": "kny",
"Kao": "kax",
"Kaonde": "kqn",
"Kap": "ykm",
"Kapampangan": "pam",
"Kapauri": "khp",
"Kapin": "tbx",
"Kapinawá": "xpn",
"Kapingamarangi": "kpg",
"Kapriman": "dju",
"Kaptiau": "kbi",
"Kapya": "klo",
"Kaqchikel": "cak",
"Kara (New Guinea)": "leu",
"Kara (Tanzania)": "reg",
"Karaboro Barat": "kza",
"Karaboro Timur": "xrb",
"Karachay-Balkar": "krc",
"Karaim": "kdr",
"Karajá": "kpj",
"Karakalpak": "kaa",
"Karakhanid": "xqa",
"Karami": "xar",
"Karamojong": "kdj",
"Karang": "kzr",
"Karanga": "kth",
"Karankawa": "zkk",
"Karao": "kyj",
"Karas": "kgv",
"Karata": "kpt",
"Karawa": "xrw",
"Karbi": "mjw",
"Karbi Amri": "ajz",
"Kare (Africa)": "kbn",
"Kare (New Guinea)": "kmf",
"Karekare": "kai",
"Karelia": "krl",
"Karen Brek": "kvl",
"Karen Bwe": "bwe",
"Karen Geba": "kvq",
"Karen Lahta": "kvt",
"Karen Manumanaw": "kxf",
"Karen Pa'o": "blk",
"Karen Paku": "kpp",
"Karen S'gaw": "ksw",
"Karen Yinbaw": "kvu",
"Karen Yintale": "kvy",
"Karen Zayein": "kxk",
"Karey": "kyd",
"Kari": "kbj",
"Kari'na": "car",
"Karingani": "kgn",
"Karipuna": "kuq",
"Karipúna": "kgm",
"Kariri": "kzw",
"Karitiâna": "ktn",
"Kariya": "kil",
"Kariyarra": "vka",
"Karkar-Yuri": "yuj",
"Karkin": "krb",
"Karko": "kko",
"Karnai": "bbv",
"Karo": "kxh",
"Karok": "kyh",
"Karolanos": "kyn",
"Karon": "krx",
"Karon Dori": "kgw",
"Karore": "xkx",
"Karranga": "xrq",
"Karuwali": "rxw",
"Kasanga": "ccj",
"Kasem": "xsm",
"Kashaya": "kju",
"Kashmiri": "ks",
"Kashubian": "csb",
"Kasiguranin": "ksn",
"Kaska": "kkz",
"Kaskean": "zsk",
"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",
"Katu Barat": "kuf",
"Katu Timur": "ktv",
"Katua": "kta",
"Katukina": "knt",
"Kaulong": "pss",
"Kaur": "vkk",
"Kaure": "bpp",
"Kaurna": "zku",
"Kauwera": "xau",
"Kavalan": "ckv",
"Kavet": "krv",
"Kawacha": "kcb",
"Kawahiva": "tup-kaw",
"Kawaiisu": "xaw",
"Kawe": "kgb",
"Kawishana": "awd-kaw",
"Kawésqar": "alc",
"Kaxararí": "ktx",
"Kaxuyana": "kbb",
"Kaya": "zra",
"Kayabí": "kyz",
"Kayagar": "kyt",
"Kayah Barat": "kyu",
"Kayah Timur": "eky",
"Kayan": "pdu",
"Kayan Baram": "kys",
"Kayan Mahakam": "xay",
"Kayan Mendalam": "xkd",
"Kayan Rejang": "ree",
"Kayan Sungai Kayan": "xkn",
"Kayan Wahau": "whu",
"Kayapa Kallahan": "kak",
"Kayapó": "txu",
"Kayardild": "gyd",
"Kayeli": "kzl",
"Kayong": "kxy",
"Kayort": "kyv",
"Kayupulau": "kzu",
"Kazakh": "kk",
"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",
"Keley-I Kallahan": "ify",
"Keliko": "kbo",
"Kelo": "xel",
"Kelon": "kyo",
"Kemak": "kem",
"Kembayan": "xem",
"Kemberano": "bzp",
"Kembra": "xkw",
"Kemezung": "dmo",
"Kemiehua": "kfj",
"Kemtuik": "kmt",
"Kenaboi": "xbn",
"Kendeje": "klf",
"Kendem": "kvm",
"Kenga": "kyq",
"Keninjal": "knl",
"Kensiu": "kns",
"Kenswei Nsei": "ndb",
"Kenyah Wahau": "whk",
"Kenyang": "ken",
"Kenyi": "lke",
"Keoru-Ahia": "xeu",
"Kepkiriwát": "kpn",
"Kepo'": "kuk",
"Kera": "ker",
"Kerak": "hhr",
"Kereho": "xke",
"Kerek": "krk",
"Keres Barat": "kjq",
"Keres Timur": "kee",
"Kerewe": "ked",
"Kerewo": "kxz",
"Kerinci": "kvr",
"Kermanik": "xme-ker",
"Kesawai": "xes",
"Ket": "ket",
"Ketangalan": "kae",
"Kete": "kcv",
"Ketengban": "xte",
"Ketum": "ktt",
"Kewa": "kew",
"Kewa Timur": "kjs",
"Keyagana": "kyg",
"Kgalagadi": "xkv",
"Khakas": "kjh",
"Khalaj": "klj",
"Khaling": "klr",
"Kham": "kjl",
"Kham Parbate Timur": "kif",
"Khamti": "kht",
"Khamyang": "ksu",
"Khana": "ogo",
"Khandeshi": "khn",
"Khanty Selatan": "kca-sou",
"Khanty Timur": "kca-eas",
"Khanty Utara": "kca-nor",
"Khao": "xao",
"Kharam Naga": "kfw",
"Kharia": "khr",
"Kharia Thar": "ksy",
"Khasi": "kha",
"Khayo": "lko",
"Khazar": "zkz",
"Khe": "kqg",
"Khehek": "tlx",
"Khengkha": "xkf",
"Khetrani": "xhe",
"Khinalug": "kjj",
"Khirwar": "kwx",
"Khisa": "kqm",
"Khitan": "zkt",
"Khlor": "llo",
"Khlula": "ykl",
"Khmer": "km",
"Khmer Kuno": "okz",
"Khmer Pertengahan": "xhm",
"Khmer Utara": "kxm",
"Khmu": "kjg",
"Khoekhoe": "naq",
"Khoini": "xkc",
"Kholok": "ktc",
"Kholosi": "inc-kho",
"Khonso": "kxc",
"Khorezmian Turkic": "zkh",
"Khortha": "inc-khr",
"Khotan": "kho",
"Khowar": "khw",
"Khroskyabs": "jiq",
"Khua": "xhv",
"Khuen": "khf",
"Khvarshi": "khv",
"Khwarezm": "xco",
"Khwe": "xuu",
"Kháng": "kjm",
"Khün": "kkh",
"Kibala": "blv",
"Kibena": "bez",
"Kibet": "kie",
"Kibiri": "prm",
"Kichwa": "qwe-kch",
"Kickapoo": "kic",
"Kikai": "kzg",
"Kikami": "kcu",
"Kikuyu": "ki",
"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",
"Kinnauri": "kfk",
"Kinnauri Bhoti": "nes",
"Kintaq": "knq",
"Kinuku": "kkd",
"Kioko": "ues",
"Kiong": "kkm",
"Kiorr": "xko",
"Kiowa": "kio",
"Kipchak": "qwm",
"Kipfokomo": "pkb",
"Kipsigis": "sgc",
"Kiput": "kyi",
"Kir-Balar": "kkr",
"Kirfi": "kks",
"Kirike": "okr",
"Kirikiri": "kiy",
"Kirya-Konzel": "fkk",
"Kis": "kis",
"Kisa": "lks",
"Kisan": "xis",
"Kisankasa": "kqh",
"Kisar": "kje",
"Kisi": "kiz",
"Kissi Selatan": "kss",
"Kissi Utara": "kqs",
"Kitanemuk": "azc-ktn",
"Kitembo": "tbt",
"Kitsai": "kii",
"Kituba": "ktu",
"Kiunum": "wei",
"Kiwai Selatan": "kjd",
"Kiwai Timur Laut": "kiw",
"Kla": "lda",
"Klallam": "clm",
"Klamath-Modoc": "kla",
"Klao": "klu",
"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 Indus": "mvy",
"Kohistani Shina": "plk",
"Koho": "kpm",
"Kohumono": "bcs",
"Koi": "kkt",
"Koiari Gunung": "kpx",
"Koibal": "zkb",
"Koireng": "nkd",
"Koitabu": "kqi",
"Koiwat": "kxt",
"Kok-Paponk": "okg",
"Kokata": "ktd",
"Kokborok": "trp",
"Koke": "kou",
"Koko-Bera": "kkp",
"Kokoda": "xod",
"Kokola": "kzn",
"Kokota": "kkk",
"Kol (Cameroon)": "biw",
"Kol (New Guinea)": "kol",
"Kola": "kvv",
"Kolami": "kfb",
"Kolami Tenggara": "nit",
"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 Kuno": "urj-koo",
"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",
"Koneraw": "kdw",
"Kongo": "kg",
"Konjo Pesisir": "kjc",
"Konkani": "kok",
"Konkomba": "xon",
"Konni": "kma",
"Kono (Guinea)": "knu",
"Kono (Nigeria)": "klk",
"Kono (Sierra Leone)": "kno",
"Konomala": "koa",
"Konomihu": "nai-knm",
"Konongo": "kcz",
"Konzo": "koo",
"Koonzime": "ozm",
"Koorete": "kqy",
"Kopar": "xop",
"Kopkaka": "opk",
"Korafe-Yegha": "kpr",
"Korak": "koz",
"Korana": "kqz",
"Korandje": "kcy",
"Korea Kuno": "oko",
"Korea Moden Awal": "ko-ear",
"Korea Pertengahan": "okm",
"Korean": "ko",
"Koreguaje": "coe",
"Koresh-e Rostam": "okh",
"Korku": "kfq",
"Koro (Afrika Barat)": "kfo",
"Koro (India)": "jkr",
"Koro (New Guinea)": "kxr",
"Koro (Vanuatu)": "krf",
"Koromfé": "kfz",
"Koromira": "kqj",
"Koronadal Blaan": "bpr",
"Koroni": "xkq",
"Korop": "krp",
"Koropó": "xxr",
"Koroshi": "ktl",
"Korowai": "khe",
"Korra Koraga": "kfd",
"Korubo": "xor",
"Korupun-Sela": "kpq",
"Korwa": "kfp",
"Koryak": "kpy",
"Kosadle": "kiq",
"Kosarek Yale": "kkl",
"Kosena": "kze",
"Koshin": "kid",
"Kosrae": "kos",
"Kota (Gabon)": "koq",
"Kota (India)": "kfe",
"Kotava": "avk",
"Koti": "eko",
"Kott": "zko",
"Kou": "snz",
"Kouya": "kyf",
"Kovai": "kqb",
"Kove": "kvc",
"Kowaki": "xow",
"Kowiai": "kwh",
"Koy Sanjaq Surat": "kqd",
"Koya": "kff",
"Koyaga": "kga",
"Koyo": "koh",
"Koyra Chiini": "khq",
"Koyraboro Senni": "ses",
"Koyukon": "koy",
"Kpagua": "kuw",
"Kpala": "kpl",
"Kpan": "kpk",
"Kpasam": "pbn",
"Kpati": "koc",
"Kpatili": "kym",
"Kpee": "cpo",
"Kpelle": "kpe",
"Kpessi": "kef",
"Kplang": "kph",
"Krache": "kye",
"Krahn Barat": "krw",
"Krahn Timur": "kqo",
"Krahô": "xra",
"Kraol": "rka",
"Krenak": "kqq",
"Kreol Afro-Seminole": "afs",
"Kreol Bahamas": "bah",
"Kreol Belize": "bzj",
"Kreol Belter": "art-bel",
"Kreol Guinea-Bissau": "pov",
"Kreol Hawaii": "hwc",
"Kreol Inggeris Antigua dan Barbuda": "aig",
"Kreol Inggeris Guyana": "gyn",
"Kreol Jamaica": "jam",
"Kreol Kepulauan Virgin": "vic",
"Kreol Lelaki Ngatik": "ngm",
"Kreol Louisiana": "lou",
"Kreol Mauritius": "mfe",
"Kreol Nicaragua": "bzk",
"Kreol Selat Torres": "tcs",
"Kreol Seychelles": "crs",
"Kreol Yilan": "ycr",
"Kresh": "krs",
"Krevinian": "zkv",
"Kreye": "xre",
"Krikati-Timbira": "xri",
"Krim": "krm",
"Krio": "kri",
"Kriol": "rop",
"Krisa": "ksi",
"Kristang": "mcm",
"Krobu": "kxb",
"Krongo": "kgo",
"Kru'ng": "krr",
"Krymchak": "jct",
"Kryts": "kry",
"Kua": "tyu",
"Kua-nsi": "ykn",
"Kuamasi": "yku",
"Kuan": "uan",
"Kuanhua": "xnh",
"Kube": "kgf",
"Kubi": "kof",
"Kubo": "jko",
"Kubu": "kvb",
"Kucong": "lkc",
"Kudiya": "kfg",
"Kudmali": "kyw",
"Kudu-Camo": "kov",
"Kugama": "kow",
"Kugbo": "kes",
"Kugu-Muminh": "xmh",
"Kui (India)": "kxu",
"Kui (Indonesia)": "kvd",
"Kuijau": "dkr",
"Kuikúro": "kui",
"Kujarge": "vkj",
"Kuk": "kfn",
"Kukatja": "kux",
"Kukele": "kez",
"Kukkuzi": "urj-kuk",
"Kukna": "kex",
"Kuku-Mangk": "xmq",
"Kuku-Mu'inh": "xmp",
"Kuku-Thaypan": "typ",
"Kuku-Ugbanh": "ugb",
"Kuku-Uwanh": "uwa",
"Kuku-Yalanji": "gvn",
"Kula": "tpg",
"Kulango Bouna": "nku",
"Kulere": "kul",
"Kulfa": "kxj",
"Kulina": "xpk",
"Kulisusu": "vkl",
"Kullu Pahari": "kfx",
"Kulon": "uon",
"Kulon-Pazeh": "uun",
"Kulung": "kle",
"Kumak": "nee",
"Kumalu": "ksl",
"Kumam": "kdi",
"Kuman": "kue",
"Kumaoni": "kfy",
"Kumarbhag Paharia": "kmj",
"Kumba": "ksm",
"Kumbainggar": "kgs",
"Kumbaran": "wkb",
"Kumbewaha": "xks",
"Kumeyaay": "nai-kum",
"Kumhali": "kra",
"Kumu": "kmw",
"Kumukio": "kuo",
"Kumyk": "kum",
"Kumzari": "zum",
"Kuna": "cuk",
"Kuna Sempadan": "kvn",
"Kunama": "kun",
"Kunbarlang": "wlg",
"Kunda": "kdn",
"Kundal Shahi": "shd",
"Kunduvadi": "wku",
"Kung": "kfl",
"Kunggari": "kgl",
"Kungkari": "lku",
"Kuni": "kse",
"Kuni-Boazi": "kvg",
"Kunigami": "xug",
"Kunimaipa": "kup",
"Kunja": "pep",
"Kunjen": "kjn",
"Kunyi": "njx",
"Kunza": "kuz",
"Kuo": "xuo",
"Kuot": "kto",
"Kupa": "kug",
"Kupia": "key",
"Kupsabiny": "kpz",
"Kur": "kuv",
"Kura Ede Nago": "nqk",
"Kurama": "krh",
"Kuranko": "knk",
"Kurdi Selatan": "sdh",
"Kurdi Tengah": "ckb",
"Kurdi Utara": "kmr",
"Kuri": "nbn",
"Kuria": "kuj",
"Kurichiya": "kfh",
"Kurmukar": "kfv",
"Kurnai": "unn",
"Kurrama": "vku",
"Kursav": "faj",
"Kurti": "ktm",
"Kurtöp": "xkz",
"Kurudu": "kjr",
"Kurukh": "kru",
"Kurumba Alu": "xua",
"Kurumba Betta": "xub",
"Kuruáya": "kyr",
"Kusaal": "kus",
"Kusaghe": "ksg",
"Kushi": "kuh",
"Kustenau": "awd-kus",
"Kusu": "ksv",
"Kusunda": "kgg",
"Kutenai": "kut",
"Kutep": "kub",
"Kuthant": "xut",
"Kutto": "kpa",
"Kutu": "kdc",
"Kuturmi": "khj",
"Kuuk Thaayorre": "thd",
"Kuuk Yak": "uky",
"Kuuku-Ya'u": "kuy",
"Kuvale": "olu",
"Kuvi": "kxv",
"Kuwaa": "blh",
"Kuwaataay": "cwt",
"Kuwani": "paa-kwn",
"Kuy": "kdt",
"Kven": "fkv",
"Kw'adza": "wka",
"Kwa'": "bko",
"Kwaami": "ksq",
"Kwadi": "kwz",
"Kwaio": "kwd",
"Kwaja": "kdz",
"Kwak": "kwq",
"Kwak'wala": "kwk",
"Kwakum": "kwu",
"Kwalhioqua-Tlatskanai": "qwt",
"Kwama": "kmq",
"Kwambi": "kwm",
"Kwamera": "tnk",
"Kwami": "ktf",
"Kwamtim One": "okk",
"Kwang": "kvi",
"Kwanga": "kwj",
"Kwangali": "kwn",
"Kwanja": "knp",
"Kwanka": "bij",
"Kwanyama": "kj",
"Kwara'ae": "kwf",
"Kwasio": "nmg",
"Kwaya": "kya",
"Kwaza": "xwa",
"Kwegu": "xwg",
"Kwer": "kwr",
"Kwerba": "kwe",
"Kwerba Mamberamo": "xwr",
"Kwere": "cwe",
"Kwerisa": "kkb",
"Kwese": "kws",
"Kwesten": "kwt",
"Kwini": "gww",
"Kwinsu": "kuc",
"Kwinti": "kww",
"Kwoma": "kmo",
"Kwomtari": "kwo",
"Kyak": "bka",
"Kyaka": "kyc",
"Kyakala": "tuw-kkl",
"Kyenele": "kql",
"Kyenga": "tye",
"Kyerung": "kgy",
"Kyrgyz": "ky",
"Kâte": "kmg",
"Kélé": "keb",
"Kómnzo": "paa-kmn",
"La'bi": "lbi",
"Laalaa": "cae",
"Laba": "lau",
"Label": "lbb",
"Labir": "jku",
"Labo": "mwi",
"Labo Phowa": "ypb",
"Laboya": "lmy",
"Labu": "lbu",
"Lacandon": "lac",
"Lachi": "lbt",
"Lachi Putih": "lwh",
"Lachiguiri Zapotec": "zpa",
"Lachixío Zapotec": "zpl",
"Ladakhi": "lbj",
"Ladin": "lld",
"Ladino": "lad",
"Ladji-Ladji": "llj",
"Laeko-Libuat": "lkl",
"Lafofa": "laf",
"Laghu": "lgb",
"Laghuu": "lgh",
"Lagwan": "kot",
"Laha (Indonesia)": "lhh",
"Laha (Vietnam)": "lha",
"Lahanan": "lhn",
"Lahnda": "lah",
"Lahu": "lhu",
"Lahu Shi": "lhi",
"Lahul Lohar": "lhl",
"Lai": "cnh",
"Laimbue": "lmx",
"Laiyolo": "lji",
"Lak": "lbe",
"Laka": "lak",
"Lakalei": "lka",
"Lake Miwok": "lmw",
"Lakha": "lkh",
"Laki": "lki",
"Lakkia": "lbc",
"Lakon": "lkn",
"Lakondê": "lkd",
"Lakota": "lkt",
"Lakota Dida": "dic",
"Lala (Afrika Selatan)": "bnt-lal",
"Lala (New Guinea)": "nrz",
"Lala-Bisa": "leb",
"Lala-Roba": "lla",
"Lalana Chinantec": "cnl",
"Lalu Barat": "ywl",
"Lalu Timur": "yit",
"Lama Bai": "lay",
"Lamaholot": "slp",
"Lamalera": "lmr",
"Lamang": "hia",
"Lamatuka": "lmq",
"Lamba": "lam",
"Lambadi": "lmn",
"Lambichhong": "lmh",
"Lambya": "lai",
"Lame": "bma",
"Lamenu": "lmu",
"Lamet": "lbn",
"Lamja-Dengsa-Tola": "ldh",
"Lamkang": "lmk",
"Lamma": "lev",
"Lamnso'": "lns",
"Lamogai": "lmg",
"Lampung Api": "ljp",
"Lamu": "llh",
"Lamu-Lamu": "lby",
"Lanas Lobu": "ruu",
"Landoma": "ldm",
"Lang'e": "yne",
"Langam": "lnm",
"Langbashe": "lna",
"Langi": "lag",
"Langnian Buyang": "yln",
"Lango (Sudan)": "lno",
"Lango (Uganda)": "laj",
"Lanima": "lnw",
"Lanoh": "lnh",
"Lao": "lo",
"Laomian": "lwm",
"Laopang": "lbg",
"Lapaguía-Guivini Zapotec": "ztl",
"Lapine": "art-lap",
"Laragia": "lrg",
"Lardil": "lbz",
"Larestani": "lrl",
"Larevat": "lrv",
"Larike-Wakasihu": "alo",
"Laro": "lro",
"Larteh": "lar",
"Laru": "lan",
"Lasalimu": "llm",
"Lasgerdi": "lsa",
"Lashi": "lsi",
"Lasi": "lss",
"Latgalia": "ltg",
"Latin": "la",
"Latu": "ltu",
"Latundê": "ltn",
"Latvian": "lv",
"Lau": "llu",
"Laua": "luf",
"Lauan": "llx",
"Lauje": "law",
"Laura": "lur",
"Laurentia": "lre",
"Lavatbura-Lamusong": "lbv",
"Lave": "brb",
"Laven": "lbo",
"Lavukaleve": "lvk",
"Lawa Barat": "lcp",
"Lawa Timur": "lwl",
"Lawangan": "lbx",
"Lawi": "lvi",
"Lawu": "lwu",
"Lawunuia": "tgi",
"Layakha": "lya",
"Laz": "lzz",
"Laze": "tbq-laz",
"Lealao Chinantec": "cle",
"Leco": "lec",
"Ledo Kaili": "lew",
"Leelau": "ldk",
"Lefa": "lfa",
"Lega-Mwenga": "lgm",
"Lega-Shabunda": "lea",
"Legbo": "agb",
"Legenyem": "lcc",
"Lehali": "tql",
"Leinong Naga": "lzn",
"Leipon": "lek",
"Leitre": "paa-lei",
"Lela": "dri",
"Lelak": "llk",
"Lele (Chad)": "lln",
"Lele (Congo)": "lel",
"Lele (Guinea)": "llc",
"Lele (New Guinea)": "lle",
"Lelemi": "lef",
"Lelepa": "lpa",
"Lembata Barat": "lmj",
"Lembata Selatan": "lmf",
"Lembena": "leq",
"Lemerig": "lrz",
"Lemio": "lei",
"Lemnos": "xle",
"Lemolang": "ley",
"Lemoro": "ldj",
"Lenakel": "tnl",
"Lenca Honduras": "len",
"Lenca Salvador": "nai-sln",
"Lendu": "led",
"Lengilu": "lgi",
"Lengo": "lgr",
"Lengola": "lej",
"Lenje": "leh",
"Lenkau": "ler",
"Lenyima": "ldg",
"Leonese": "roa-leo",
"Leonese Kuno": "roa-ole",
"Lepcha": "lep",
"Lepki": "lpe",
"Lepontii": "xlp",
"Lese": "les",
"Lesing-Gelimi": "let",
"Letemboi": "nms",
"Leti (Cameroon)": "leo",
"Leti (Indonesia)": "lti",
"Levuka": "lvu",
"Lewo": "lww",
"Lewo Eleng": "lwe",
"Lewotobi": "lwt",
"Leyigha": "ayi",
"Lezgi": "lez",
"Lhao Vo": "mhx",
"Lhokpu": "lhp",
"Li'o": "ljl",
"Liabuku": "lix",
"Liana-Seti": "ste",
"Liberia Kpelle": "xpe",
"Liberian Kreyol": "lir",
"Libido": "liq",
"Libinza": "liz",
"Liburni": "xli",
"Ligbi": "lig",
"Ligenza": "lgz",
"Liguria Purba": "xlg",
"Ligurian": "lij",
"Lihir": "lih",
"Lika": "lik",
"Liki": "lio",
"Likila": "lie",
"Likuba": "kxx",
"Likum": "lib",
"Likwala": "kwc",
"Lilau": "lll",
"Lillooet": "lil",
"Limassa": "bme",
"Limba Barat-Tengah": "lia",
"Limba Timur": "lma",
"Limbu": "lif",
"Limbum": "lmp",
"Limburgish": "li",
"Limi": "ylm",
"Limilngan": "lmc",
"Lindu": "klw",
"Linear A": "lab",
"Lingala": "ln",
"Lingao": "onb",
"Lingkhim": "lii",
"Lingua Franca Nova": "lfn",
"Linngithigh": "lnj",
"Lipan": "apl",
"Lipo": "lpo",
"Lisabata-Nuniali": "lcs",
"Lisela": "lcl",
"Lish": "lsh",
"Lishana Deni": "lsd",
"Lishanid Noshan": "aij",
"Lishán Didán": "trg",
"Lisu": "lis",
"Literary Chinese": "lzh",
"Lithuania Kuno": "olt",
"Lithuanian": "lt",
"Lithuanian Sign Language": "lls",
"Little Swanport": "aus-lsw",
"Litzlitz": "lzl",
"Livonian": "liv",
"Livvi": "olo",
"Lizu": "sit-liz",
"Lo-Toga": "lht",
"Loarki": "lrk",
"Lobala": "loq",
"Lobi": "lob",
"Lodhi": "lbm",
"Logba": "lgq",
"Logo": "log",
"Logol": "lof",
"Logooli": "rag",
"Logorik": "liu",
"Lojban": "jbo",
"Lokaa": "yaz",
"Loko": "lok",
"Lokono": "arw",
"Lokoya": "lky",
"Lola": "lcd",
"Lolak": "llq",
"Lole": "llg",
"Lolo": "llb",
"Loloda": "loa",
"Lolopo": "ycl",
"Lolopo Selatan": "ysp",
"Loma": "lom",
"Lomaiviti": "lmv",
"Lomakka": "loi",
"Lomavren": "rmi",
"Lombard": "lmo",
"Lombi": "lmi",
"Lombo": "loo",
"Lomwe": "ngl",
"Loncong": "lce",
"Long Phuri Naga": "lpn",
"Long Wat": "ttw",
"Longgu": "lgu",
"Longjia": "sit-lnj",
"Longto": "wok",
"Longuda": "lnu",
"Loniu": "los",
"Lonwolwol": "crc",
"Loo": "ldo",
"Lopa": "lop",
"Lopi": "lov",
"Lopit": "lpx",
"Lorang": "lrn",
"Lorediakarkar": "lnn",
"Lorrain": "roa-lor",
"Lorung Selatan": "lrr",
"Lorung Utara": "lbr",
"Lote": "uvl",
"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 Sorbian": "dsb",
"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",
"Luchazi": "lch",
"Lucumí": "luq",
"Ludian": "lud",
"Lufu": "ldq",
"Luganda": "lg",
"Lugbara": "lgg",
"Luguru": "ruf",
"Luhu": "lcq",
"Luhya": "luy",
"Luimbi": "lum",
"Luiseño": "lui",
"Lukpa": "dop",
"Lule": "ule",
"Lumba-Yakkha": "luu",
"Lumbee": "lmz",
"Lumbu": "lup",
"Lumun": "lmd",
"Lun Bawang": "lnd",
"Luna": "luj",
"Lunanakha": "luk",
"Lunda": "lun",
"Lungga": "lga",
"Luo": "luo",
"Lur Selatan": "luz",
"Lur Utara": "lrc",
"Luren": "sit-lrn",
"Luri (Nigeria)": "ldd",
"Lusengo": "lse",
"Lushootseed": "lut",
"Lusi": "khl",
"Lusitania": "xls",
"Lutachoni": "lts",
"Lutos": "ndy",
"Luvale": "lue",
"Luwati": "luv",
"Luwiya": "xlu",
"Luwo": "lwo",
"Luxembourgish": "lb",
"Luyana": "lyn",
"Lwalu": "lwa",
"Lwel": "lvl",
"Lycia": "xlc",
"Lydia": "xld",
"Lyngngam": "lyg",
"Lyélé": "lee",
"Láadan": "ldn",
"Láá Láá Bwamu": "bwj",
"Löyöp": "urr",
"Lü": "khb",
"Ma": "msj",
"Ma Manda": "skc",
"Ma'anyan": "mhy",
"Ma'di": "mhi",
"Ma'di Selatan": "snm",
"Ma'ya": "slz",
"Maaka": "mew",
"Maale": "mdy",
"Maasai": "mas",
"Maay": "ymm",
"Maba": "mqa",
"Mabaale": "mmz",
"Mabaan": "mfz",
"Mabang Bura": "mde",
"Mabire": "muj",
"Maca": "mca",
"Macaguaje": "mcl",
"Macaguán": "mbn",
"Macanese": "mzs",
"Macedonia Purba": "xmk",
"Macedonian": "mk",
"Machame": "jmc",
"Machiguenga": "mcb",
"Machinere": "mpd",
"Machinga": "mvw",
"Macoris": "nai-mac",
"Macuna": "myy",
"Macushi": "mbc",
"Mada (Cameroon)": "mxu",
"Mada (Nigeria)": "mda",
"Madak": "mmx",
"Maden": "xmx",
"Madhi Madhi": "dmd",
"Madngele": "zml",
"Madura": "mad",
"Maek": "hmk",
"Maeng Itneg": "itt",
"Mafa": "maf",
"Mag-Anchi Ayta": "sgb",
"Mag-Indi Ayta": "blx",
"Magahat": "mtw",
"Magahi": "mag",
"Magar Barat": "mrd",
"Magar Timur": "mgp",
"Magori": "zgr",
"Maguindanao": "mdh",
"Mahali": "mjx",
"Mahasu Pahari": "bfz",
"Mahican": "mjy",
"Mahongwe": "mhb",
"Mahou": "mxx",
"Maia": "sks",
"Maiadomu": "mzz",
"Maiani": "tnh",
"Maidu Barat Laut": "mjd",
"Maidu Timur Laut": "nmu",
"Maii": "mmm",
"Mailu": "mgu",
"Maindo": "cwb",
"Maipure": "awd-mpr",
"Mairasi": "zrs",
"Maisin": "mbq",
"Maithili": "mai",
"Maiwa (Indonesia)": "wmm",
"Maiwa (New Guinea)": "mti",
"Maiwala": "mum",
"Majang": "mpe",
"Majera": "xmj",
"Majhwar": "mmj",
"Mak (China)": "mkg",
"Mak (Nigeria)": "pbl",
"Makaa": "mcp",
"Makah": "myh",
"Makalero": "mjb",
"Makasae": "mkz",
"Makassar": "mak",
"Makayam": "aup",
"Makhuwa": "vmw",
"Makhuwa-Marrevone": "xmc",
"Makhuwa-Meetto": "mgh",
"Makhuwa-Moniga": "mhm",
"Makhuwa-Saka": "xsq",
"Makhuwa-Shirima": "vmk",
"Makian Barat": "mqs",
"Maklew": "mgf",
"Makolkol": "zmh",
"Makonde": "kde",
"Maku": "xak",
"Maku'a": "lva",
"Makuri Naga": "jmn",
"Makuráp": "mpu",
"Makwe": "ymk",
"Makyan Naga": "umn",
"Mal": "mlf",
"Mal Paharia": "mkb",
"Mala (New Guinea)": "ped",
"Mala (Nigeria)": "ruy",
"Mala Malasar": "ima",
"Malagasy": "mg",
"Malakula Timur Laut": "upv",
"Malalamai": "mmt",
"Malalí": "sai-mal",
"Malango": "mln",
"Malankuravan": "mjo",
"Malapandaram": "mjp",
"Malaryan": "mjq",
"Malas": "mkr",
"Malasanga": "mqz",
"Malasar": "ymr",
"Malavedan": "mjr",
"Malawi Lomwe": "lon",
"Malawian Sign Language": "lws",
"Malay": "ms",
"Malayalam": "ml",
"Malayic Dayak": "xdy",
"Malaynon": "mlz",
"Malba Birifor": "bfo",
"Male": "mdc",
"Malecite-Passamaquoddy": "pqm",
"Maleng": "pkt",
"Maleu-Kilenge": "mgl",
"Malfaxal": "mlx",
"Malgana": "vml",
"Malgbe": "mxf",
"Malibu": "sai-mlb",
"Malila": "mgq",
"Malimba": "mzd",
"Malimpung": "mli",
"Malol": "mbk",
"Maltese": "mt",
"Malvi": "mup",
"Mam": "mam",
"Mama": "mma",
"Mamaa": "mhf",
"Mamaindé": "wmd",
"Mamanwa": "mmn",
"Mamara": "myk",
"Mamasa": "mqj",
"Mambae": "mgm",
"Mambai": "mcs",
"Mambila Cameroon": "mcu",
"Mambila Nigeria": "mzk",
"Mamboru": "mvd",
"Mambwe-Lungu": "mgr",
"Mampruli": "maw",
"Mamuju": "mqx",
"Mamulique": "emm",
"Mamusi": "kdf",
"Mamvu": "mdi",
"Man Met": "mml",
"Manam": "mva",
"Manambu": "mle",
"Manangba": "nmm",
"Manangkari": "znk",
"Manao": "awd-man",
"Manchu": "mnc",
"Manda (Australia)": "zma",
"Manda (India)": "mha",
"Manda (Tanzania)": "mgs",
"Mandahuaca": "mht",
"Mandaia": "mid",
"Mandaia Klasik": "myz",
"Mandalorian": "art-man",
"Mandan": "mhq",
"Mandandanyi": "zmk",
"Mandar": "mdr",
"Mandara": "tbf",
"Mandari": "mqu",
"Mandarin": "cmn",
"Mandaya Karaga": "mry",
"Mandeali": "mjl",
"Mander": "mqr",
"Mandingo": "man",
"Mandinka": "mnk",
"Mandjak": "mfv",
"Mandobo Atas": "aax",
"Mandobo Bawah": "bwp",
"Manem": "jet",
"Mang": "zng",
"Mangala": "mem",
"Mangarayi": "mpc",
"Mangareva": "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",
"Mangue": "mom",
"Manigri-Kambolé Ede Nago": "xkb",
"Maninka Konyanka": "mku",
"Maninka Sankaran": "msc",
"Maninkakan Barat": "mlq",
"Maninkakan Kita": "mwk",
"Maninkakan Timur": "emk",
"Manipa": "mqp",
"Manipur Kuno": "omp",
"Manipuri": "mni",
"Mankanya": "knf",
"Mankiyali": "nlm",
"Manna-Dora": "mju",
"Mannan": "mjv",
"Mano": "mev",
"Manobo Agusan": "msm",
"Manobo Ata": "atd",
"Manobo Bukidnon Barat": "mbb",
"Manobo Cinamiguin": "mkx",
"Manobo Cotabato": "mta",
"Manobo Dibabawon": "mbd",
"Manobo Ilianen": "mbi",
"Manobo Matigsalug": "mbt",
"Manobo Rajah Kabunsuwan": "mqk",
"Manobo Sarangani": "mbs",
"Manombai": "woo",
"Mansaka": "msk",
"Mansi Selatan": "mns-sou",
"Mansi Tengah": "mns-cen",
"Mansi Utara": "mns-nor",
"Mansoanka": "msw",
"Manta": "myg",
"Mantsi": "nty",
"Manusela": "wha",
"Manx": "gv",
"Manya": "mjz",
"Manyawa": "mny",
"Manza": "mzv",
"Maonan": "mmd",
"Mape": "mlh",
"Mapena": "mnm",
"Mapia": "mpy",
"Mapidian": "mpw",
"Mapos Buang": "bzh",
"Mapoyo": "mcg",
"Mapudungun": "arn",
"Mapun": "sjm",
"Mara": "mec",
"Marachi": "lri",
"Maraghei": "vmh",
"Maragus": "mrs",
"Marama": "lrm",
"Maranao": "mrw",
"Maranungku": "zmr",
"Mararit": "mgb",
"Marathi": "mr",
"Marathi Kuno": "omr",
"Maratino": "sai-mar",
"Marau": "mvr",
"Marawan": "awd-mar",
"Marba": "mpg",
"Marenje": "vmr",
"Marfa": "mvu",
"Margany": "zmc",
"Marghi Selatan": "mfm",
"Margi": "mrt",
"Mari (Sepik)": "mbx",
"Mari Austronesia": "hob",
"Mari Barat": "mrj",
"Mari Timur": "mhr",
"Maria": "mds",
"Maria Bukit": "mrr",
"Mariaté": "awd-mrt",
"Maricopa": "mrc",
"Maridan": "zmd",
"Maridjabin": "zmj",
"Marik": "dad",
"Marimanindji": "zmm",
"Marind": "mrz",
"Maring": "mbw",
"Maringarr": "zmt",
"Mariri": "mqi",
"Maritsauá": "msp",
"Mariyedi": "zmy",
"Marka": "rkm",
"Markweeta": "enb",
"Marma": "rmz",
"Marovo": "mvo",
"Marquesas Selatan": "mqm",
"Marquesas Utara": "mrq",
"Marrgu": "mhg",
"Marriammu": "xru",
"Marrithiyel": "mfr",
"Marrucinian": "umc",
"Marshallese": "mh",
"Marsian": "ims",
"Marti Ke": "zmg",
"Martu Wangka": "mpj",
"Martuthunira": "vma",
"Marwari": "mwr",
"Marúbo": "mzr",
"Masaba": "myx",
"Masadiit Itneg": "tis",
"Masakará": "sai-msk",
"Masalit": "mls",
"Masana": "mcn",
"Masbate Sorsogon": "bks",
"Masbatenyo": "msb",
"Masela Barat": "mss",
"Masela Tengah": "mxz",
"Masela Timur": "vme",
"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",
"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",
"Mauwake": "mhl",
"Mav̋ea": "mkv",
"Mawa": "mcw",
"Mawak": "mjj",
"Mawan": "mcz",
"Mawayana": "mzx",
"Mawchi": "mke",
"Mawes": "mgk",
"Maxakalí": "mbl",
"Maxi Gbe": "mxl",
"Maya Epigrafi": "emy",
"Maya Mopan": "mop",
"Maya Samo": "sym",
"Maya Yucatec": "yua",
"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",
"Mazahua Michoacán": "mmc",
"Mazahua Tengah": "maz",
"Mazaltepec Zapotec": "zpy",
"Mazanderani": "mzn",
"Mazatec Chiquihuitlán": "maq",
"Mazatec Huautla": "mau",
"Mazatec Ixcatlán": "mzi",
"Mazatec Jalapa de Díaz": "maj",
"Mazatec San Jerónimo Tecóatl": "maa",
"Mazatec Soyaltepec": "vmp",
"Mazatlán Mazatec": "vmz",
"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",
"Mbembe Cross River": "mfn",
"Mbembe Tigon": "nza",
"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",
"Me'en": "mym",
"Mebu": "mjn",
"Medebur": "mjm",
"Medefaidrin": "dmf",
"Media Lengua": "mue",
"Median Kuno": "xme-old",
"Median Pertengahan": "xme-mid",
"Medumba": "byv",
"Mefele": "mfj",
"Megam": "mef",
"Megleno-Romania": "ruq",
"Mehek": "nux",
"Mehináku": "mmh",
"Mekeo": "mek",
"Mekmek": "mvk",
"Mekwei": "msf",
"Mekéns": "skf",
"Mel-Khaonh": "hkn",
"Melanau Daro-Matu": "dro",
"Melanau Sibu": "sdx",
"Melanau Tengah": "mel",
"Melayu Ambon": "abs",
"Melayu Baba": "mbf",
"Melayu Bacan": "btj",
"Melayu Bali": "mhp",
"Melayu Barisan Selatan": "pse",
"Melayu Berau": "bve",
"Melayu Brunei": "kxd",
"Melayu Bukit": "bvu",
"Melayu Cheti": "ccm",
"Melayu Cocos": "coa",
"Melayu Jambi": "jax",
"Melayu Kedah": "meo",
"Melayu Kupang": "mkn",
"Melayu Kutai Kota Bangun": "mqg",
"Melayu Larantuka": "lrt",
"Melayu Makassar": "mfp",
"Melayu Maluku Utara": "max",
"Melayu Manado": "xmm",
"Melayu Negeri Sembilan": "zmi",
"Melayu Patani": "mfa",
"Melayu Sabah": "msi",
"Melayu Sarawak": "poz-sml",
"Melayu Sri Lanka": "sci",
"Melayu Terengganu": "poz-ter",
"Mele-Fila": "mxe",
"Melo": "mfx",
"Melpa": "med",
"Memoni": "mby",
"Mendankwe-Nkwen": "mfd",
"Mende (Sierra Leone)": "men",
"Mengaka": "xmg",
"Mengen": "mee",
"Menien": "sai-men",
"Menka": "mea",
"Menominee": "mez",
"Mentawai": "mwv",
"Menya": "mcr",
"Meohang Barat": "raf",
"Meohang Timur": "emg",
"Meoswar": "mvx",
"Mer": "mnu",
"Meramera": "mxm",
"Merei": "lmb",
"Merey": "meq",
"Meriam": "ulk",
"Meroe": "xmr",
"Meru": "mer",
"Mesaka": "iyo",
"Mese": "mci",
"Mesir Demotik": "egx-dem",
"Mesir Purba": "egy",
"Mesme": "zim",
"Mesmes": "mys",
"Mesqan": "mvz",
"Messapic": "cms",
"Meta'": "mgo",
"Mewari": "mtr",
"Mewati": "wtm",
"Meyah": "mej",
"Mezontla Popoloca": "pbe",
"Meänkieli": "fit",
"Mfinu": "zmf",
"Mfumte": "nfu",
"Mi'kmaq": "mic",
"Miami": "mia",
"Mian": "mpt",
"Miani": "pla",
"Miao Qiandong Selatan": "hms",
"Miao Qiandong Timur": "hmq",
"Miao Qiandong Utara": "hea",
"Miao Xiangxi Barat": "mmr",
"Miao Xiangxi Timur": "muq",
"Michif": "crg",
"Michigamea": "cmm",
"Mid Grand Valley Dani": "dnt",
"Mid-Southern Banda": "bjo",
"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 Decorse": "mis-mmd",
"Mimi Nachtigal": "mis-mmn",
"Min Datian": "nan-dat",
"Min Hailufeng": "nan-hlh",
"Min Longyan": "nan-lnx",
"Min Nan": "nan",
"Min Puxian": "cpx",
"Min Sanxiang": "nan-zsh",
"Min Tengah": "czo",
"Min Timur": "cdo",
"Min Utara": "mnp",
"Min Zhenan": "nan-zhe",
"Mina": "hna",
"Minaean": "inm",
"Minang": "xrg",
"Minangkabau": "min",
"Minaveha": "mvn",
"Minderico": "drc",
"Mindiri": "mpn",
"Mingang Doso": "mko",
"Mingo": "iro-min",
"Mingrelia": "xmf",
"Minica Huitoto": "hto",
"Minidien": "wii",
"Minigir": "vmg",
"Minjungbal": "xjb",
"Minkin": "xxm",
"Minoan": "omn",
"Minokok": "mqq",
"Minriq": "mnq",
"Mintil": "mzt",
"Miqie": "yiq",
"Mirandese": "mwl",
"Mire": "mvh",
"Mirgan": "zrg",
"Miriti": "mmv",
"Miriwoong": "mep",
"Mirpur Panjabi": "pmu",
"Misantla Totonac": "tlc",
"Miship": "mjs",
"Misima-Paneati": "mpx",
"Mising": "mrg",
"Miskito": "miq",
"Mittu": "mwu",
"Mituku": "zmq",
"Miu": "mpo",
"Miwa": "vmi",
"Miwok Pesisir": "csi",
"Miwok Sierra Selatan": "skd",
"Miwok Sierra Tengah": "csm",
"Miwok Sierra Utara": "nsq",
"Miwok Teluk": "mkq",
"Mixe Coatlán": "mco",
"Mixe Juquila": "mxq",
"Mixe Mazatlán": "mzl",
"Mixe Tanah Genting": "mir",
"Mixe Tengah Utara": "neq",
"Mixe Tlahuitoltepec": "mxp",
"Mixe Totontepec": "mto",
"Mixifore": "mfg",
"Mixtec Alacatlatzala": "mim",
"Mixtec Amoltepec": "mbz",
"Mixtec Apasco-Apoala": "mip",
"Mixtec Atatláhuca": "mib",
"Mixtec Ayutla": "miy",
"Mixtec Cacaloxtepec": "miu",
"Mixtec Chayuco": "mih",
"Mixtec Chigmecatitlán": "mii",
"Mixtec Coatzospan": "miz",
"Mixtec Cuyamecalco": "xtu",
"Mixtec Huitepec": "mxs",
"Mixtec Itundujia": "mce",
"Mixtec Ixtayutla": "vmj",
"Mixtec Jamiltepec": "mxt",
"Mixtec Juxtlahuaca": "vmc",
"Mixtec Magdalena Peñasco": "xtm",
"Mixtec Metlatónoc": "mxv",
"Mixtec Mitlatongo": "vmm",
"Mixtec Mixtepec": "mix",
"Mixtec Nochixtlán Tenggara": "mxy",
"Mixtec Oaxaca Barat Laut": "mxa",
"Mixtec Ocotepec": "mie",
"Mixtec Peñoles": "mil",
"Mixtec Pinotepa Nacional": "mio",
"Mixtec Puebla Selatan": "mit",
"Mixtec San Juan Colorado": "mjc",
"Mixtec San Miguel Piedras": "xtp",
"Mixtec San Miguel el Grande": "mig",
"Mixtec Santa Lucía Monteverde": "mdv",
"Mixtec Santa María Zacatepec": "mza",
"Mixtec Silacayoapan": "mks",
"Mixtec Sindihui": "xts",
"Mixtec Soyaltepec": "vmq",
"Mixtec Tacahua": "xtt",
"Mixtec Teposcolula": "omq-tel",
"Mixtec Tezoatlán": "mxb",
"Mixtec Tidaá": "mtx",
"Mixtec Tlaxiaco Barat Daya": "meh",
"Mixtec Tlaxiaco Utara": "xtn",
"Mixtec Tlazoyaltepec": "mqh",
"Mixtec Tututepec": "mtu",
"Mixtec Yoloxochitl": "xty",
"Mixtec Yosondúa": "mpm",
"Mixtec Yucuañe": "mvg",
"Mixtec Yutanduchi": "mab",
"Mixtepec Zapotec": "zpm",
"Miya": "mkf",
"Miyako": "mvi",
"Miyobe": "soy",
"Mizo": "lus",
"Mlabri": "mra",
"Mlahsö": "lhs",
"Mlap": "kja",
"Mlomp": "mlo",
"Mmaala": "mmu",
"Mmani": "buy",
"Mmen": "bfm",
"Mnong Selatan": "mnn",
"Mnong Tengah": "cmo",
"Mnong Timur": "mng",
"Mo": "wkd",
"Moabite": "obm",
"Moba": "mfq",
"Mobilia": "mod",
"Mobu": "ahm",
"Mocana": "sai-mcn",
"Mochi": "old",
"Mochica": "omc",
"Mocho": "mhc",
"Mocoví": "moc",
"Modang": "mxd",
"Modole": "mqo",
"Moere": "mvq",
"Mofu Utara": "mfk",
"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",
"Mokil": "mkj",
"Moklen": "mkm",
"Mokole": "mkl",
"Mokpwe": "bri",
"Moksha": "mdf",
"Molale": "mbe",
"Molbog": "pwm",
"Moldova Sign Language": "vsi",
"Molengue": "bxc",
"Molima": "mox",
"Molo": "zmo",
"Molof": "msl",
"Moloko": "mlw",
"Mom Jango": "ver",
"Moma": "myl",
"Momare": "msz",
"Mombo Dogon": "dmb",
"Mombum": "mso",
"Momina": "mmb",
"Momuna": "mqf",
"Mon": "mnw",
"Mon Kuno": "omx",
"Mon Pertengahan": "mkh-mmn",
"Mon Thailand": "mnw-tha",
"Mon Yangum": "ymo",
"Mondropolon": "npn",
"Mondé": "mnd",
"Mongghul": "mjg-mgl",
"Mongo": "lol",
"Mongol Khamnigan": "ykh",
"Mongol Klasik": "cmg",
"Mongol Pertengahan": "xng",
"Mongolian": "mn",
"Mongondow": "mog",
"Moni": "mnz",
"Mono (California)": "mnr",
"Mono (Cameroon)": "mru",
"Mono (Congo)": "mnh",
"Monom": "moo",
"Monpa Kalaktang": "kkf",
"Montagnais": "moe",
"Montol": "mtl",
"Monumbo": "mxk",
"Monzombo": "moj",
"Moo": "gwg",
"Mor (Austronesia)": "mhz",
"Mor (Papua)": "moq",
"Moraid": "msg",
"Moran": "tbq-mor",
"Morawa": "mze",
"Morerebi": "xmo",
"Moresada": "msx",
"Mori Atas": "mzq",
"Mori Bawah": "xmz",
"Morigi": "mdb",
"Moro": "mor",
"Morokodo": "mgc",
"Morom": "bdo",
"Moronene": "mqn",
"Morori": "mok",
"Morouas": "mrp",
"Mortlock": "mrl",
"Moru": "mgd",
"Mosimo": "mqv",
"Moskona": "mtj",
"Mossi": "mos",
"Mota": "mtt",
"Motembo": "tmv",
"Motu": "meu",
"Mouk-Aria": "mwh",
"Mouwase": "jmw",
"Movima": "mzp",
"Moyadan Itneg": "ity",
"Mozarab": "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",
"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",
"Muji Qila": "ymq",
"Muji Selatan": "ymc",
"Muji Utara": "ymx",
"Mukha-Dora": "mmk",
"Mukulu": "moz",
"Mulaha": "mfw",
"Mulam": "mlm",
"Mullu Kurumba": "kpb",
"Mullukmulluk": "mpb",
"Muluridyi": "vmu",
"Mum": "kqa",
"Mumuye": "mzm",
"Muna": "mnb",
"Munda": "unx",
"Mundabli": "boe",
"Mundang": "mua",
"Mundani": "mnf",
"Mundari": "unr",
"Mundat": "mmf",
"Mundolinco": "art-mun",
"Mundurukú": "myu",
"Mungaka": "mhk",
"Mungbam": "mij",
"Munggui": "mth",
"Mungkip": "mpv",
"Muniche": "myr",
"Munit": "mtc",
"Munji": "mnj",
"Munsee": "umu",
"Muong": "mtq",
"Mur Pano": "tkv",
"Muratayak": "asx",
"Muria Barat": "mut",
"Muria Barat Jauh": "fmu",
"Muria Timur": "emu",
"Murik (Malaysia)": "mxr",
"Murik (New Guinea)": "mtf",
"Murkim": "rmh",
"Murle": "mur",
"Murrinh-Patha": "mwf",
"Mursi": "muz",
"Murui Huitoto": "huu",
"Murupi": "mqw",
"Murut Keningau": "kxi",
"Murut Serudung": "srk",
"Murut Timugon": "tih",
"Muruwari": "zmu",
"Musan": "mmp",
"Musasa": "smm",
"Musey": "mse",
"Musgu": "mug",
"Musi": "mui",
"Muskum": "mje",
"Musom": "msu",
"Mussau-Emira": "emi",
"Muthuvan": "muv",
"Mutu": "tuc",
"Muya": "mvm",
"Muyang": "muy",
"Muyu Selatan": "kts",
"Muyu Utara": "kti",
"Muyuw": "myw",
"Muzi": "ymz",
"Muzo": "sai-muz",
"Mvanip": "mcj",
"Mvuba": "mxh",
"Mwaghavul": "sur",
"Mwakai": "mgt",
"Mwali Comorian": "wlc",
"Mwan": "moa",
"Mwani": "wmw",
"Mwatebu": "mwa",
"Mwera": "mwe",
"Mwerlap": "mrm",
"Mwimbi-Muthambi": "mws",
"Mwotlap": "mlv",
"Myene": "mye",
"Mysian": "yms",
"Mòcheno": "mhn",
"Mün Chin": "mwq",
"Mündü": "muh",
"Māori": "mi",
"Mạ": "cma",
"N'Ko": "nqo",
"Na": "nbt",
"Naaba": "nao",
"Naba": "mne",
"Nabak": "naf",
"Nabi": "mty",
"Nachering": "ncd",
"Nadruvia": "ndf",
"Nadëb": "mbj",
"Nafaanra": "nfr",
"Nafi": "srf",
"Nafri": "nxx",
"Naga Chokri": "nri",
"Naga Chothe": "nct",
"Naga Inpui": "nkf",
"Naga Khezha": "nkh",
"Naga Khiamniungan": "kix",
"Naga Khoibu": "nkb",
"Naga Konyak": "nbe",
"Naga Kyan-Karyaw": "nqq",
"Naga Lao": "nlq",
"Naga Liangmai": "njn",
"Naga Lotha": "njh",
"Naga Mao": "nbi",
"Naga Maram": "nma",
"Naga Maring": "nng",
"Naga Monsang": "nmh",
"Naga Moyon": "nmo",
"Naga Mzieme": "nme",
"Naga Pochuri": "npo",
"Naga Puimei": "npu",
"Naga Rengma Selatan": "nre",
"Naga Rengma Utara": "nnl",
"Naga Rongmei": "nbu",
"Naga Sangtam": "nsa",
"Naga Tangkhul": "nmf",
"Naga Thangal": "nki",
"Naga Zeme": "nzm",
"Nagarchal": "nbg",
"Nage": "nxe",
"Nagu": "ngr",
"Nagumi": "ngv",
"Nahali": "nlx",
"Nahari": "nhh",
"Nahavaq": "sns",
"Nahuatl": "nah",
"Nahuatl Coatepec": "naz",
"Nahuatl Cosoleacaque": "nhk",
"Nahuatl Durango Barat": "azn",
"Nahuatl Durango Timur": "azd",
"Nahuatl Guerrero": "ngu",
"Nahuatl Huasteca Barat": "nhw",
"Nahuatl Huasteca Tengah": "nch",
"Nahuatl Huasteca Timur": "nhe",
"Nahuatl Huaxcaleca": "nhq",
"Nahuatl Klasik": "nci",
"Nahuatl Mecayapan": "nhx",
"Nahuatl Michoacán": "ncl",
"Nahuatl Morelos": "nhm",
"Nahuatl Oaxaca Utara": "nhy",
"Nahuatl Ometepec": "nht",
"Nahuatl Orizaba": "nlv",
"Nahuatl Pajapan": "nhp",
"Nahuatl Puebla Tanah Tinggi": "azz",
"Nahuatl Puebla Tengah": "ncx",
"Nahuatl Puebla Tenggara": "npl",
"Nahuatl Puebla Utara": "ncj",
"Nahuatl Santa María La Alta": "nhz",
"Nahuatl Sierra Negra": "nsu",
"Nahuatl Tabasco": "nhc",
"Nahuatl Temascaltepec": "nhv",
"Nahuatl Tengah": "nhn",
"Nahuatl Tetelcingo": "nhg",
"Nahuatl Tlamacazapa": "nuz",
"Nahuatl Zacatlán-Ahuacatlán-Tepetzintla": "nhi",
"Nai": "bio",
"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",
"Nama": "nmx",
"Namakura": "nmk",
"Namat": "nkm",
"Nambikwara": "nab",
"Nambo": "ncm",
"Nambya": "nmq",
"Namia": "nnm",
"Namiae": "nvm",
"Namla": "naa",
"Namo": "mxw",
"Namonuito": "nmt",
"Namosi-Naitasiri-Serua": "bwb",
"Namuyi": "nmy",
"Nancere": "nnc",
"Nande": "nnb",
"Nandi": "niq",
"Nanerigé Sénoufo": "sen",
"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",
"Nauruan": "na",
"Navajo": "nv",
"Navarro-Aragon Kuno": "roa-ona",
"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",
"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",
"Ndzwani Comorian": "wni",
"Neapolit": "nap",
"Nedebang": "nec",
"Nefamese": "nef",
"Nefusa": "jbn",
"Negerhollands": "dcr",
"Negidal": "neg",
"Nehan": "nsn",
"Nek": "nif",
"Nekgini": "nkg",
"Neko": "nej",
"Neku": "nek",
"Neme": "nex",
"Nemi": "nem",
"Nen": "nqn",
"Nend": "anh",
"Nenets Hutan": "yrk-for",
"Nenets Tundra": "yrk",
"Nengone": "nen",
"Neo": "neu",
"Neo-Aram Bohtan": "bhn",
"Neo-Aramia Assyria": "aii",
"Neo-Aramia Barat": "amw",
"Nepal Kurux": "kxl",
"Nepali": "ne",
"Nese": "poz-nes",
"Nete": "net",
"Neve'ei": "vnm",
"Neverver": "lgk",
"New Caledonian Javanese": "jas",
"Newar": "new",
"Newar Klasik": "nwc",
"Newar Pertengahan": "nwx",
"Neyo": "ney",
"Nez Perce": "nez",
"Nga La": "hlt",
"Ngaanyatjarra": "ntj",
"Ngad'a Timur": "nea",
"Ngadha": "nxg",
"Ngadjunmaya": "nju",
"Ngadjuri": "jui",
"Ngaiawang": "nwg",
"Ngaing": "nnf",
"Ngaju": "nij",
"Ngala": "nud",
"Ngalakan": "nig",
"Ngalkbun": "ngk",
"Ngalum": "szb",
"Ngam": "nmc",
"Ngamambo": "nbv",
"Ngambay": "sba",
"Ngamini": "nmv",
"Ngamo": "nbh",
"Ngan'gityemerri": "nam",
"Nganakarti": "xnk",
"Nganasan": "nio",
"Ngandi": "nid",
"Ngando (Congo)": "nxd",
"Ngando (Republik Afrika Tengah)": "ngd",
"Ngandyera": "nne",
"Ngantangarra": "ntg",
"Nganyaywana": "nyx",
"Ngardi": "rxd",
"Ngarigu": "xni",
"Ngarinman": "nbj",
"Ngarinyin": "ung",
"Ngarla": "nrk",
"Ngarluma": "nrl",
"Ngarrindjeri": "nay",
"Ngas": "anc",
"Ngasa": "nsg",
"Ngawun": "nxn",
"Ngbaka": "nga",
"Ngbaka Ma'bo": "nbm",
"Ngbaka Manza": "ngg",
"Ngbandi Selatan": "nbw",
"Ngbandi Utara": "ngb",
"Ngbee": "jgb",
"Ngbinda": "nbd",
"Ngbundu": "nuu",
"Ngelima": "agh",
"Ngemba": "nge",
"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 (Congo)": "ngc",
"Ngombe (Republik Afrika Tengah)": "nmj",
"Ngong": "nnx",
"Ngongo": "noq",
"Ngoni": "ngo",
"Ngoreme": "ngq",
"Ngoshie": "nsh",
"Ngulu": "ngp",
"Nguluwan": "nuw",
"Ngumbi": "nui",
"Ngunawal": "xul",
"Ngundi": "ndn",
"Ngundu": "nue",
"Ngungwel": "ngz",
"Ngurmbur": "nrx",
"Nguôn": "nuo",
"Ngwaba": "ngw",
"Ngwe": "nwe",
"Ngwi": "nlo",
"Ngwo": "ngn",
"Ngäbere": "gym",
"Nhanda": "nha",
"Nheengatu": "yrl",
"Nhirrpi": "hrp",
"Nhuwala": "nhf",
"Nias": "nia",
"Nicobar Selatan": "nik",
"Nicobar Tengah": "ncb",
"Nicola": "ath-nic",
"Nicoleño": "azc-nic",
"Niellim": "nie",
"Nihali": "nll",
"Nii": "nii",
"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",
"Ninzo": "nin",
"Nipsan": "nps",
"Nisa": "njs",
"Nisenan": "nsz",
"Nisga'a": "ncg",
"Nisi": "yso",
"Nisu Barat Laut": "nsf",
"Nisu Selatan": "nsd",
"Nisu Timur": "nos",
"Nisu Utara": "yiv",
"Niuafo'ou": "num",
"Niuatoputapu": "nkp",
"Niue": "niu",
"Nivaclé": "cag",
"Nivkh": "niv",
"Niwer Mil": "hrc",
"Njalgulgule": "njl",
"Njebi": "nzb",
"Njen": "njj",
"Njerep": "njr",
"Njyem": "njy",
"Nkami": "nkq",
"Nkangala": "nkn",
"Nkari": "nkz",
"Nkem-Nkum": "isi",
"Nkhumbi": "khu",
"Nkongho": "nkc",
"Nkonya": "nko",
"Nkoroo": "nkx",
"Nkoya": "nka",
"Nkukoli": "nbo",
"Nkutu": "nkw",
"Nnam": "nbp",
"Nobiin": "fia",
"Nocte": "njb",
"Nogai": "nog",
"Noipä": "npx",
"Noiri": "noi",
"Nokuku": "nkk",
"Nomaande": "lem",
"Nomane": "nof",
"Nomatsiguenga": "not",
"Nomlaki": "nol",
"Nomu": "noh",
"Nong Zhuang": "zhn",
"Nonuya": "noj",
"Nooksack": "nok",
"Noon": "snf",
"Noone": "nhu",
"Nootka": "nuk",
"Nopala Chatino": "cya",
"Noric": "nrc",
"Norman": "nrf",
"Norn": "nrn",
"Norra": "nrr",
"Norse Kuno": "non",
"Northern Ndebele": "nd",
"Northern Sami": "se",
"Norway Pengembara": "rmg",
"Norway Pertengahan": "gmq-mno",
"Norwegian": "no",
"Norwegian Bokmål": "nb",
"Norwegian Nynorsk": "nn",
"Nossob Bawah": "nsb",
"Notre": "bly",
"Notsi": "ncf",
"Nottoway": "ntw",
"Nottoway-Meherrin": "nwy",
"Novgorod Kuno": "zle-ono",
"Novial": "nov",
"Noy": "noy",
"Nsari": "asj",
"Nsenga": "nse",
"Nshi": "nsc",
"Nsong": "soo",
"Nsongo": "nsx",
"Ntcham": "bud",
"Ntomba": "nto",
"Ntra'ngith": "dgt",
"Nuaulu Selatan": "nxl",
"Nuaulu Utara": "nni",
"Nubaca": "baf",
"Nubi": "kcn",
"Nubia Kuno": "onw",
"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",
"Numee": "kdk",
"Numidia": "nxm",
"Nungali": "nug",
"Nunggubuyu": "nuy",
"Nungon": "paa-nun",
"Nungu": "rin",
"Nuni Selatan": "nnw",
"Nuni Utara": "nuv",
"Nuosu": "ii",
"Nupbikha": "npb",
"Nupe": "nup",
"Nusa Laut": "nul",
"Nusu": "nuf",
"Nutabe": "cba-nut",
"Nyabwa": "nwb",
"Nyagrong Minyag": "ero-nya",
"Nyah Kur": "cbn",
"Nyaheun": "nev",
"Nyakyusa": "nyy",
"Nyala Timur": "nle",
"Nyali": "nlj",
"Nyam": "nmi",
"Nyamal": "nly",
"Nyambo": "now",
"Nyamusa-Molo": "nwm",
"Nyamwanga": "mwn",
"Nyamwezi": "nym",
"Nyaneka": "nyk",
"Nyang'i": "nyp",
"Nyanga (Congo)": "nyj",
"Nyanga (Togo)": "ayg",
"Nyanga-li": "nyc",
"Nyangatom": "nnj",
"Nyangbo": "nyb",
"Nyangga": "nny",
"Nyangumarta": "nna",
"Nyankole": "nyn",
"Nyarafolo Senoufo": "sev",
"Nyaturu": "rim",
"Nyaw": "nyw",
"Nyawaygi": "nyt",
"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",
"Nyâlayu": "yly",
"Nzadi": "nzd",
"Nzakambay": "nzy",
"Nzakara": "nzk",
"Nzanyi": "nja",
"Nzima": "nzi",
"Ná-Meo": "neo",
"Nùng": "nut",
"Nüpode Huitoto": "hux",
"Nǀuu": "ngh",
"O'chi'chi'": "xoc",
"O'du": "tyh",
"O'odham": "ood",
"Obanliku": "bzy",
"Obispeño": "obi",
"Oblo": "obl",
"Obo Manobo": "obo",
"Obokuitai": "afz",
"Obolo": "ann",
"Obulom": "obu",
"Ocaina": "oca",
"Occitan": "oc",
"Occitan Kuno": "pro",
"Od": "odk",
"Odia": "or",
"Odia Kuno": "inc-oor",
"Odia Pertengahan": "inc-mor",
"Odiai": "bhf",
"Odoodee": "kkc",
"Odual": "odu",
"Odut": "oda",
"Ofayé": "opy",
"Ofo": "ofo",
"Ogbah": "ogc",
"Ogbia": "ogb",
"Ogbogolo": "ogg",
"Ogbronuagum": "ogu",
"Ogea": "eri",
"Oghuz Awal Kuno": "trk-eog",
"Ohlone Selatan": "css",
"Ohlone Utara": "cst",
"Oirat Bertulis": "xwo",
"Oirata": "oia",
"Ojibwa Barat": "ojw",
"Ojibwa Barat Laut": "ojb",
"Ojibwa Tengah": "ojc",
"Ojibwa Timur": "ojg",
"Ojibwe": "oj",
"Ojitlán Chinantec": "chj",
"Okanagan": "oka",
"Oki-No-Erabu": "okn",
"Okiek": "oki",
"Okinawa": "ryu",
"Oko-Eni-Osayen": "oks",
"Oko-Juwoi": "okj",
"Okobo": "okb",
"Okodia": "okd",
"Okolod": "kqv",
"Okpamheri": "opa",
"Okpe (Edo Barat Daya)": "oke",
"Okpe (Edo Barat Laut)": "okx",
"Okpela": "atg",
"Oksapmin": "opm",
"Oku": "oku",
"Okwanuchu": "nai-okw",
"Old Church Slavonic": "cu",
"Olekha": "ole",
"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",
"Omi": "omi",
"Omok": "omk",
"Omotik": "omt",
"Omurano": "omu",
"One Inebu": "oin",
"One Molmo": "aun",
"One Selatan": "osu",
"One Utara": "onr",
"Oneida": "one",
"Ong": "oog",
"Ongota": "bxe",
"Onin": "oni",
"Onjob": "onj",
"Ono": "ons",
"Onobasulu": "onn",
"Onondaga": "ono",
"Ontenu": "ont",
"Oorlams": "oor",
"Opao": "opo",
"Opata": "opt",
"Opuuo": "lgn",
"Opón": "sai-opo",
"Orang Seletar": "ors",
"Oraon Sadri": "sdr",
"Orejón": "ore",
"Oring": "org",
"Oriya Adivasi": "ort",
"Orléanais": "roa-orl",
"Ormu": "orz",
"Ormuri": "oru",
"Oro": "orx",
"Oro Win": "orw",
"Oroch": "oac",
"Oroha": "ora",
"Orok": "oaa",
"Orokaiva": "okv",
"Oroko": "bdu",
"Orokolo": "oro",
"Oromo": "om",
"Oroqen": "orh",
"Orowe": "bpk",
"Oruma": "orr",
"Orya": "ury",
"Osage": "osa",
"Osamayi": "syx",
"Osatu": "ost",
"Osci": "osc",
"Osing": "osi",
"Ososo": "oso",
"Ossetia Kuno": "oos",
"Ossetian": "os",
"Ot Danum": "otd",
"Otank": "uta",
"Oti": "oti",
"Otomaco": "sai-oto",
"Otomi Estado de México": "ots",
"Otomi Ixtenco": "otz",
"Otomi Mezquital": "ote",
"Otomi Querétaro": "otq",
"Otomi Tanah Tinggi Timur": "otm",
"Otomi Temoaya": "ott",
"Otomi Tenango": "otn",
"Otomi Texcatepec": "otx",
"Otomi Tilapa": "otl",
"Otoro": "otr",
"Ottawa": "otw",
"Otuke": "otu",
"Ouma": "oum",
"Oune": "oue",
"Owa": "stn",
"Owenia": "wsr",
"Owiniga": "owi",
"Oy": "oyb",
"Oya'oya": "oyy",
"Oyda": "oyd",
"Ozumacín Chinantec": "chz",
"Pa": "ppt",
"Pa Di": "pdi",
"Pa'a": "pqa",
"Pa-Hng": "pha",
"Paama": "pma",
"Paasaal": "sig",
"Pacahuara": "pcp",
"Pacoh": "pac",
"Padoe": "pdo",
"Paelignian": "pgn",
"Paeonia": "ine-pae",
"Pagi": "pgi",
"Pagibete": "pae",
"Pagu": "pgu",
"Pahari-Potwari": "phr",
"Paharia Sawriya": "mjt",
"Pahi": "lgt",
"Pahlavani": "phv",
"Pai Tavytera": "pta",
"Paicî": "pri",
"Paikoneka": "awd-pai",
"Paipai": "ppi",
"Paite": "pck",
"Paiute Utara": "pao",
"Paiwan": "pwn",
"Pak-Tong": "pkg",
"Pakanha": "pkn",
"Paku": "pku",
"Pal": "abw",
"Palaic": "plq",
"Palaka Senoufo": "plr",
"Palantla Chinantec": "cpa",
"Palau": "pau",
"Palawano Barat Daya": "plv",
"Palawano Brooke's Point": "plw",
"Paleni": "pnl",
"Palenquero": "pln",
"Pali": "pi",
"Palikur": "plu",
"Paliyan": "pcf",
"Pallanganmiddang": "pmd",
"Palor": "fap",
"Palta": "sai-pal",
"Palu'e": "ple",
"Paluan": "plz",
"Palya Bareli": "bpx",
"Pam": "pmn",
"Pambia": "pmb",
"Pame Tengah": "pbs",
"Pame Utara": "pmq",
"Pamigua": "sai-pam",
"Pamlico": "pmk",
"Pamona": "pmf",
"Pamosu": "hih",
"Pana (Afrika Barat)": "pnq",
"Pana (Afrika Tengah)": "pnz",
"Panamint": "par",
"Panare": "pbh",
"Panará": "kre",
"Panasuan": "psn",
"Panawa": "pwb",
"Pancana": "pnp",
"Panchpargania": "tdb",
"Pande": "bkj",
"Pangasinan": "pag",
"Pangseng": "pgs",
"Pangutaran Sama": "slm",
"Pangwa": "pbr",
"Pangwali": "pgg",
"Panim": "pnr",
"Paniya": "pcg",
"Pankararé": "pax",
"Pankararú": "paz",
"Pankhu": "pkh",
"Pannei": "pnc",
"Panobo": "pno",
"Panyi Bai": "bfc",
"Panyjima": "pnw",
"Panzaleo": "sai-pnz",
"Pao": "ppa",
"Papantla Totonac": "top",
"Papapana": "ppn",
"Papar": "dpp",
"Papasena": "pas",
"Papel": "pbo",
"Papi": "ppe",
"Papiamentu": "pap",
"Papitalai": "pat",
"Papora": "ppu",
"Papuan Malay": "pmy",
"Papuma": "ppm",
"Para Naga": "pzn",
"Parachi": "prc",
"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",
"Parsi Kuno": "peo",
"Parsi Pertengahan": "pal",
"Parthia": "xpr",
"Parya": "paq",
"Pashayi Barat Daya": "psh",
"Pashayi Tenggara": "psi",
"Pashayi Timur Laut": "aee",
"Pashto": "ps",
"Pasi": "psq",
"Pass Valley Yali": "yac",
"Pasé": "awd-pas",
"Patagón": "sai-ptg",
"Patamona": "pbc",
"Patani": "ptn",
"Pataxó Hã-Ha-Hãe": "pth",
"Patep": "ptp",
"Pathiya": "pty",
"Pattani": "lae",
"Pattapu": "ptq",
"Patwin": "pwi",
"Paulohi": "plh",
"Paumarí": "pad",
"Paunaca": "pnk",
"Pauri Bareli": "bfb",
"Pauserna": "psm",
"Pawaia": "pwa",
"Pawnee": "paw",
"Payaguá": "sai-pyg",
"Paynamar": "pmr",
"Pazeh": "pzh",
"Pe": "pai",
"Pear": "pcb",
"Peba": "sai-peb",
"Pech": "pay",
"Pecheneg": "xpc",
"Peerapper": "xpw",
"Peere": "pfe",
"Pei": "ppq",
"Pekal": "pel",
"Pela": "bxd",
"Pele-Ata": "ata",
"Pemon": "aoc",
"Penan Barat": "pne",
"Penan Timur": "pez",
"Penchal": "pek",
"Pendau": "ums",
"Pengo": "peg",
"Penobscot": "aaq",
"Penrhyn": "pnh",
"Pentlatch": "ptw",
"Perai": "wet",
"Peranakan Indonesian": "pea",
"Perancis Kreol Karipúna": "kmv",
"Perancis Kreol Réunion": "rcf",
"Perancis Kreol San Miguel": "scf",
"Perancis Kuno": "fro",
"Perancis Pertengahan": "frm",
"Perema": "wom",
"Pericú": "nai-per",
"Pero": "pip",
"Persian": "fa",
"Petapa Zapotec": "zpe",
"Petats": "pex",
"Petjo": "pey",
"Phai": "prt",
"Phake": "phk",
"Phala": "ypa",
"Phalura": "phl",
"Phana'": "phq",
"Phangduwali": "phw",
"Phende": "pem",
"Phimbi": "phm",
"Phoenicia": "phn",
"Phola": "ypg",
"Pholo": "yip",
"Phom": "nph",
"Phong-Kniang": "pnx",
"Phrae Pwo": "kjt",
"Phrygia": "xpg",
"Phu Thai": "pht",
"Phuan": "phu",
"Phudagi": "phd",
"Phuie": "pug",
"Phukha": "phh",
"Phuma": "ypm",
"Phunoi": "pho",
"Phuong": "phg",
"Phupa": "ypp",
"Phupha": "yph",
"Phuthi": "bnt-phu",
"Phuza": "ypz",
"Piamatsina": "ptr",
"Piame": "pin",
"Piapoco": "pio",
"Piaroa": "pid",
"Picard": "pcd",
"Picene Utara": "nrp",
"Picenum Selatan": "spx",
"Pichinglis": "fpe",
"Pichis Ashéninka": "cpu",
"Pict": "xpi",
"Picuris": "nai-pic",
"Pidgin Basque-Iceland": "crp-bip",
"Pidgin Delaware": "dep",
"Pidgin Greenland Barat": "crp-gep",
"Pidgin Iha": "ihb",
"Pidgin Jerman Kiautschou": "crp-kia",
"Pidgin Ladang Samoa": "crp-spp",
"Pidgin Naga": "nag",
"Pidgin Ndyuka-Trio": "njt",
"Pidgin Onin": "onx",
"Pidgin Portugis Macau": "crp-mpp",
"Pidgin Rusia Taimyr": "crp-tpr",
"Pidgin Rusia-China": "crp-cpr",
"Piemonte": "pms",
"Pijao": "pij",
"Pije": "piz",
"Pijin": "pis",
"Pijin Cameroon": "wes",
"Pijin Nigeria": "pcm",
"Pilagá": "plg",
"Pileni": "piv",
"Pima Bajo": "pia",
"Pimbwe": "piw",
"Pinai-Hagahai": "pnn",
"Pingelapese": "pif",
"Pinghua Selatan": "csp",
"Pinghua Utara": "cnp",
"Pini": "pii",
"Pinigura": "pnv",
"Pinjarup": "pnj",
"Pinji": "pic",
"Pintiini": "pti",
"Pintupi-Luritja": "piu",
"Pinyin": "pny",
"Pipil": "ppl",
"Pirahã": "myp",
"Piratapuyo": "pir",
"Pirlatapa": "bxi",
"Piro": "pie",
"Pirriya": "xpa",
"Pisabo": "pig",
"Pisaflores Tepehua": "tpp",
"Piscataway": "psy",
"Pisidia": "xps",
"Pitcairn-Norfolk": "pih",
"Piti": "pcn",
"Pitjantjatjara": "pjt",
"Pitta-Pitta": "pit",
"Piu": "pix",
"Piya-Kwonci": "piy",
"Plains Cree": "crk",
"Plains Indian Sign Language": "psd",
"Plains Miwok": "pmw",
"Plapo Krumen": "ktj",
"Plautdietsch": "pdt",
"Pnar": "pbv",
"Pochutec": "xpo",
"Podoko": "pbi",
"Pogali": "hkh",
"Pogolo": "poy",
"Pohnpei": "pon",
"Poitevin-Saintongeais": "roa-poi",
"Pokangá": "pok",
"Poke": "pof",
"Pol": "pmm",
"Polabia": "pox",
"Poland Kuno": "zlw-opl",
"Polci": "plj",
"Polish": "pl",
"Polonombauk": "plb",
"Pom": "pmo",
"Pomo Selatan": "peq",
"Pomo Tengah": "poo",
"Pomo Tenggara": "pom",
"Pomo Timur": "peb",
"Pomo Timur Laut": "pef",
"Pomo Utara": "pej",
"Ponam": "ncc",
"Pongu": "png",
"Ponosakan": "pns",
"Ponyo": "npg",
"Poqomam": "poc",
"Poqomchi'": "poh",
"Porohanon": "prh",
"Port Sandwich": "psw",
"Port Sorell": "xpl",
"Port Vato": "ptv",
"Portugis Kreol Korlai": "vkp",
"Portuguese": "pt",
"Potawatomi": "pot",
"Potiguára": "pog",
"Poumei Naga": "pmx",
"Pouye": "bye",
"Powari": "pwr",
"Powhatan": "pim",
"Poyanáwa": "pyn",
"Pra-Samnit": "itc-psa",
"Prakrit": "pra",
"Prakrit Ashoka": "inc-ash",
"Prakrit Kamarupi": "inc-kam",
"Prakrit Niya": "pra-niy",
"Prasuni": "prn",
"Primitive Irish": "pgl",
"Principe": "pre",
"Proto-Abkhaz-Abaza": "cau-abz-pro",
"Proto-Afroasiatik": "afa-pro",
"Proto-Albania": "sqj-pro",
"Proto-Algic": "aql-pro",
"Proto-Algonquian": "alg-pro",
"Proto-Amuesha-Chamicuro": "awd-amc-pro",
"Proto-Anatolia": "ine-ana-pro",
"Proto-Andaman Besar": "qfa-adm-pro",
"Proto-Andian": "cau-and-pro",
"Proto-Apachean": "apa-pro",
"Proto-Arawa": "auf-pro",
"Proto-Arawak": "awd-pro",
"Proto-Armenia": "hyx-pro",
"Proto-Arnhem": "aus-arn-pro",
"Proto-Aroid": "omv-aro-pro",
"Proto-Asli": "mkh-asl-pro",
"Proto-Atayalik": "map-ata-pro",
"Proto-Athabaskan": "ath-pro",
"Proto-Atlantik-Congo": "alv-pro",
"Proto-Austroasiatik": "aav-pro",
"Proto-Austronesia": "map-pro",
"Proto-Avaro-Andian": "cau-ava-pro",
"Proto-Bahnar": "mkh-ban-pro",
"Proto-Bai": "sit-bai-pro",
"Proto-Balto-Slav": "ine-bsl-pro",
"Proto-Bantoid": "nic-bod-pro",
"Proto-Bantu": "bnt-pro",
"Proto-Basque": "euq-pro",
"Proto-Batak": "btk-pro",
"Proto-Be": "qfa-onb-pro",
"Proto-Be-Tai": "qfa-bet-pro",
"Proto-Benue-Congo": "nic-bco-pro",
"Proto-Berber": "ber-pro",
"Proto-Binandere": "ngf-bin-pro",
"Proto-Bodish": "sit-bdi-pro",
"Proto-Bodo-Garo": "tbq-bdg-pro",
"Proto-Bongo-Bagirmi": "csu-bba-pro",
"Proto-Bora": "sai-bor-pro",
"Proto-Brythonic": "cel-bry-pro",
"Proto-Bua": "alv-bua-pro",
"Proto-Bungku-Tolaki": "poz-btk-pro",
"Proto-Burma": "tbq-brm-pro",
"Proto-Caddoan": "cdd-pro",
"Proto-Cangin": "alv-cng-pro",
"Proto-Carib": "sai-car-pro",
"Proto-Celtic": "cel-pro",
"Proto-Cerrado": "sai-cer-pro",
"Proto-Chadic": "cdc-pro",
"Proto-Chadic Tengah": "cdc-cbm-pro",
"Proto-Chamic": "cmc-pro",
"Proto-Chatino": "omq-cha-pro",
"Proto-Chibchan": "cba-pro",
"Proto-Chimakuan": "chi-pro",
"Proto-Chinook": "nai-ckn-pro",
"Proto-Chukotko-Kamchatka": "qfa-cka-pro",
"Proto-Chumash": "nai-chu-pro",
"Proto-Circassian": "cau-cir-pro",
"Proto-Cross River Atas": "nic-ucr-pro",
"Proto-Cross River Bawah": "nic-lcr-pro",
"Proto-Cupan": "azc-cup-pro",
"Proto-Cushitic": "cus-pro",
"Proto-Cushitic Selatan": "cus-sou-pro",
"Proto-Cushitic Timur Tanah Tinggi": "cus-hec-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-Dravidia": "dra-pro",
"Proto-Dravidia Selatan": "dra-sou-pro",
"Proto-Dravidia Selatan I": "dra-sdo-pro",
"Proto-Dravidia Selatan II": "dra-sdt-pro",
"Proto-Dravidia Tengah": "dra-cen-pro",
"Proto-Dravidia Utara": "dra-nor-pro",
"Proto-Edekiri": "alv-edk-pro",
"Proto-Edoid": "alv-edo-pro",
"Proto-Ersu": "sit-ers-pro",
"Proto-Eskimo": "esx-esk-pro",
"Proto-Eskimo-Aleut": "esx-pro",
"Proto-Fali": "alv-fli-pro",
"Proto-Filipina": "phi-pro",
"Proto-Finnik": "urj-fin-pro",
"Proto-Gbaya": "gba-pro",
"Proto-Gbe": "alv-gbe-pro",
"Proto-Georgia-Zan": "ccs-gzn-pro",
"Proto-Germanik": "gem-pro",
"Proto-Germanik Barat": "gmw-pro",
"Proto-Grassfields": "nic-grf-pro",
"Proto-Guang": "alv-gng-pro",
"Proto-Gur": "nic-gur-pro",
"Proto-Gurunsi": "nic-gns-pro",
"Proto-Halmahera Utara": "paa-nha-pro",
"Proto-Halmahera-Cenderawasih": "poz-hce-pro",
"Proto-Heiban": "alv-hei-pro",
"Proto-Hellenik": "grk-pro",
"Proto-Hlai": "qfa-lic-pro",
"Proto-Hmong-Mien": "hmx-pro",
"Proto-Hmongik": "hmn-pro",
"Proto-Hrusish": "sit-hrs-pro",
"Proto-Hurro-Urartia": "qfa-hur-pro",
"Proto-Idomoid": "alv-ido-pro",
"Proto-Igboid": "alv-igb-pro",
"Proto-Ijoid": "ijo-pro",
"Proto-Indo-Arya": "inc-pro",
"Proto-Indo-Eropah": "ine-pro",
"Proto-Indo-Iran": "iir-pro",
"Proto-Inuit": "esx-inu-pro",
"Proto-Iran": "ira-pro",
"Proto-Iroquois": "iro-pro",
"Proto-Iroquois Utara": "iro-nor-pro",
"Proto-Italik": "itc-pro",
"Proto-Iwaidjan": "aus-wdj-pro",
"Proto-Jebel Timur": "sdv-eje-pro",
"Proto-Jeponik": "jpx-pro",
"Proto-Jukunoid": "nic-jkn-pro",
"Proto-Jê": "sai-jee-pro",
"Proto-Jê Selatan": "sai-sje-pro",
"Proto-Jê Tengah": "sai-cje-pro",
"Proto-Jê Utara": "sai-nje-pro",
"Proto-Kadu": "qfa-kad-pro",
"Proto-Kalamian": "phi-kal-pro",
"Proto-Kalapuya": "nai-klp-pro",
"Proto-Kam-Sui": "qfa-kms-pro",
"Proto-Kampa": "awd-kmp-pro",
"Proto-Kamta": "inc-krd-pro",
"Proto-Karen": "kar-pro",
"Proto-Kartvelia": "ccs-pro",
"Proto-Katuik": "mkh-kat-pro",
"Proto-Kaukasia Barat Laut": "cau-nwc-pro",
"Proto-Kaukasia Timur Laut": "cau-nec-pro",
"Proto-Kham": "sit-kha-pro",
"Proto-Khanty": "kca-pro",
"Proto-Khasian": "aav-khs-pro",
"Proto-Khmer": "mkh-kmr-pro",
"Proto-Khmuik": "mkh-khm-pro",
"Proto-Kho-Bwa": "sit-khb-pro",
"Proto-Kho-Bwa Barat": "sit-khw-pro",
"Proto-Khoe": "khi-kho-pro",
"Proto-Koma": "ssa-kom-pro",
"Proto-Komisenia": "ira-kms-pro",
"Proto-Korea": "qfa-kor-pro",
"Proto-Kra": "qfa-kra-pro",
"Proto-Kra-Dai": "qfa-tak-pro",
"Proto-Kru": "kro-pro",
"Proto-Kuki-Chin": "tbq-kuk-pro",
"Proto-Kuliak": "ssa-klk-pro",
"Proto-Kurd": "ku-pro",
"Proto-Kwa": "alv-kwa-pro",
"Proto-Lalo": "tbq-lal-pro",
"Proto-Lampungik": "poz-lgx-pro",
"Proto-Lezghian": "cau-lzg-pro",
"Proto-Lolo": "tbq-lol-pro",
"Proto-Lolo-Burma": "tbq-lob-pro",
"Proto-Luish": "sit-luu-pro",
"Proto-Maidu": "nai-mdu-pro",
"Proto-Mande": "dmn-pro",
"Proto-Mande Barat": "dmn-mdw-pro",
"Proto-Mangbetu": "csu-maa-pro",
"Proto-Mansi": "mns-pro",
"Proto-Mari": "chm-pro",
"Proto-Masa": "cdc-mas-pro",
"Proto-Maya": "myn-pro",
"Proto-Mazatec": "omq-maz-pro",
"Proto-Medo-Parthia": "ira-mpr-pro",
"Proto-Melayik": "poz-mly-pro",
"Proto-Melayu-Chamic": "poz-mcm-pro",
"Proto-Melayu-Polenesia": "poz-pro",
"Proto-Melayu-Polenesia Tengah-Timur": "poz-cet-pro",
"Proto-Melayu-Polenesia Timur": "pqe-pro",
"Proto-Melayu-Sumbawa": "poz-msa-pro",
"Proto-Mienik": "hmx-mie-pro",
"Proto-Mikronesia": "poz-mic-pro",
"Proto-Min": "zhx-min-pro",
"Proto-Mixe-Zoque": "nai-miz-pro",
"Proto-Mixtec": "omq-mxt-pro",
"Proto-Mixtecan": "omq-mix-pro",
"Proto-Mon-Khmer": "mkh-pro",
"Proto-Mongolia": "xgn-pro",
"Proto-Monik": "mkh-mnc-pro",
"Proto-Mordvinik": "urj-mdv-pro",
"Proto-Mumuye": "alv-mum-pro",
"Proto-Munda": "mun-pro",
"Proto-Munji-Yidgha": "ira-mny-pro",
"Proto-Muskogi": "nai-mus-pro",
"Proto-Na-Dene": "xnd-pro",
"Proto-Naga Tengah": "sit-aao-pro",
"Proto-Naga Utara": "sit-kon-pro",
"Proto-Nahuan": "azc-nah-pro",
"Proto-Naish": "sit-nas-pro",
"Proto-Nakh": "cau-nkh-pro",
"Proto-Nawiki": "awd-nwk-pro",
"Proto-New South Wales Tengah": "aus-cww-pro",
"Proto-Nguni": "bnt-ngu-pro",
"Proto-Nicobarese": "aav-nic-pro",
"Proto-Niger-Congo": "nic-pro",
"Proto-Nilo-Sahara": "ssa-pro",
"Proto-Nilotik": "sdv-nil-pro",
"Proto-Norse": "gmq-pro",
"Proto-Nubia": "nub-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-Oceania": "poz-oce-pro",
"Proto-Ogoni": "nic-ogo-pro",
"Proto-Omotic": "omv-pro",
"Proto-Onga": "qfa-ong-pro",
"Proto-Oti-Volta": "nic-ovo-pro",
"Proto-Oti-Volta Timur": "nic-eov-pro",
"Proto-Oto-Manguean": "omq-pro",
"Proto-Oto-Pamean": "omq-otp-pro",
"Proto-Otomi": "oto-otm-pro",
"Proto-Otomian": "oto-pro",
"Proto-Pakanik": "mkh-pkn-pro",
"Proto-Palaungik": "mkh-pal-pro",
"Proto-Pama-Nyungan": "aus-pam-pro",
"Proto-Paresi-Waura": "awd-prw-pro",
"Proto-Pasifik Tengah": "poz-pcc-pro",
"Proto-Pathan": "ira-pat-pro",
"Proto-Pearik": "mkh-pea-pro",
"Proto-Permik": "urj-prm-pro",
"Proto-Plateau": "nic-plt-pro",
"Proto-Plateau Penutian": "nai-plp-pro",
"Proto-Pnar-Khasi-Lyngngam": "aav-pkl-pro",
"Proto-Polinesia": "poz-pol-pro",
"Proto-Polinesia Nukleus": "poz-pnp-pro",
"Proto-Polinesia Timur": "poz-pep-pro",
"Proto-Pomo": "nai-pom-pro",
"Proto-Puroik": "sit-khp-pro",
"Proto-Quechua": "qwe-pro",
"Proto-Rukai": "dru-pro",
"Proto-Ryukyu": "jpx-ryu-pro",
"Proto-Sabaki": "bnt-sab-pro",
"Proto-Saka": "xsc-sak-pro",
"Proto-Saka-Wakhi": "xsc-skw-pro",
"Proto-Salish": "sal-pro",
"Proto-Sami": "smi-pro",
"Proto-Samoyed": "syd-pro",
"Proto-Sanglechi-Ishkashimi": "ira-sgi-pro",
"Proto-Sara": "csu-sar-pro",
"Proto-Sarawak Utara": "poz-swa-pro",
"Proto-Sarmatia": "xsc-sar-pro",
"Proto-Scythia": "xsc-pro",
"Proto-Selkup": "sel-pro",
"Proto-Semitik": "sem-pro",
"Proto-Semitik Barat": "sem-wes-pro",
"Proto-Shughni-Roshani": "ira-shr-pro",
"Proto-Shughni-Yazghulami": "ira-shy-pro",
"Proto-Shughni-Yazghulami-Munji": "ira-sym-pro",
"Proto-Sino-Tibet": "sit-pro",
"Proto-Siouan": "sio-pro",
"Proto-Siouan-Catawba": "nai-sca-pro",
"Proto-Slav": "sla-pro",
"Proto-Sogdia": "ira-sgc-pro",
"Proto-Somaloid": "cus-som-pro",
"Proto-Songhai": "son-pro",
"Proto-Sotho-Tswana": "bnt-sts-pro",
"Proto-Sudan Tengah": "csu-pro",
"Proto-Sulawesi Selatan": "poz-ssw-pro",
"Proto-Ta-Arawak": "awd-taa-pro",
"Proto-Tai": "tai-pro",
"Proto-Tai Barat Daya": "tai-swe-pro",
"Proto-Takic": "azc-tak-pro",
"Proto-Taman": "sdv-tmn-pro",
"Proto-Tamang": "sit-tam-pro",
"Proto-Tangkhul": "sit-tng-pro",
"Proto-Tani": "sit-tan-pro",
"Proto-Taranoan": "sai-tar-pro",
"Proto-Tatik": "xme-ttc-pro",
"Proto-Tocharia": "ine-toc-pro",
"Proto-Togo Tengah": "alv-gtm-pro",
"Proto-Totozoquean": "nai-tot-pro",
"Proto-Trans-New Guinea": "ngf-pro",
"Proto-Triqui": "omq-tri-pro",
"Proto-Tsezian": "cau-tsz-pro",
"Proto-Tsimshianik": "nai-tsi-pro",
"Proto-Tungus": "tuw-pro",
"Proto-Tupi-Guarani": "tup-gua-pro",
"Proto-Tupia": "tup-pro",
"Proto-Turkik": "trk-pro",
"Proto-Ubangian": "nic-ubg-pro",
"Proto-Ugrik": "urj-ugr-pro",
"Proto-Uralik": "urj-pro",
"Proto-Utik": "nai-utn-pro",
"Proto-Uto-Aztecan": "azc-pro",
"Proto-Vietik": "mkh-vie-pro",
"Proto-Volta-Congo": "nic-vco-pro",
"Proto-Volta-Niger": "alv-von-pro",
"Proto-Witotoan": "sai-wit-pro",
"Proto-Yenisei": "qfa-yen-pro",
"Proto-Yoruba": "alv-yor-pro",
"Proto-Yoruboid": "alv-yrd-pro",
"Proto-Yukaghir": "qfa-yuk-pro",
"Proto-Yupik": "ypk-pro",
"Proto-Zapotec": "omq-zpc-pro",
"Proto-Zapotecan": "omq-zap-pro",
"Proto-Zaza-Gorani": "ira-zgr-pro",
"Prusia Kuno": "prg",
"Psikye": "kvj",
"Puare": "pux",
"Puebla Mazatec": "pbm",
"Puelche": "pue",
"Puinave": "pui",
"Puiron": "sit-prn",
"Pukapukan": "pkp",
"Pulabu": "pup",
"Pulau Bruny": "xpz",
"Pulau Flinders": "fln",
"Puluwat": "puw",
"Puma": "pum",
"Pumi Selatan": "pmj",
"Pumi Utara": "pmi",
"Pumpokol": "xpm",
"Pumé": "yae",
"Punan Aput": "pud",
"Punan Bah-Biau": "pna",
"Punan Batu": "pnm",
"Punan Merah": "puf",
"Punan Merap": "puc",
"Punan Tubu": "puj",
"Punik": "xpu",
"Punjabi": "pa",
"Punjabi Barat": "pnb",
"Punjabi Kuno": "inc-opa",
"Punu": "puu",
"Puoc": "puo",
"Puquina": "puq",
"Puragi": "pru",
"Purari": "iar",
"Purepecha": "pua",
"Puri": "prr",
"Purik": "prx",
"Purisimeño": "puy",
"Puruborá": "pur",
"Puruhá": "sai-prh",
"Purukotó": "sai-pur",
"Purum": "pub",
"Putai": "mfl",
"Putoh": "put",
"Putukwam": "afe",
"Puyo-Paekche": "xpp",
"Puyuma": "pyu",
"Pwaamei": "pme",
"Pwapwa": "pop",
"Pwo Barat": "pwo",
"Pwo Timur": "kjp",
"Pwo Utara": "pww",
"Pyapun": "pcw",
"Pye Krumen": "pye",
"Pyemmairre": "xpb",
"Pyen": "pyy",
"Pykobjê": "sai-pyk",
"Pyu": "pby",
"Páez": "pbb",
"Pááfang": "pfa",
"Päri": "lkr",
"Pémono": "pev",
"Pévé": "lme",
"Pökoot": "pko",
"Q'anjob'al": "kjb",
"Q'eqchi": "kek",
"Qabiao": "laq",
"Qaqet": "byx",
"Qatabanian": "xqt",
"Qiang Utara": "cng",
"Qibti": "cop",
"Qimant": "ahg",
"Quapaw": "qua",
"Quechua": "qu",
"Quechua Klasik": "qwc",
"Quenya": "qya",
"Quetzaltepec Mixe": "pxm",
"Queyu": "qvy",
"Quiavicuzas Zapotec": "zpj",
"Quileute": "qui",
"Quimbaya": "sai-qmb",
"Quinault": "qun",
"Quinigua": "nai-qng",
"Quinqui": "quq",
"Quioquitani-Quierí Zapotec": "ztq",
"Quiotepec Chinantec": "chq",
"Quiripi": "qyp",
"Quitemo": "sai-qtm",
"Rabha": "rah",
"Rabona": "sai-rab",
"Rade": "rad",
"Raetic": "xrr",
"Raga": "lml",
"Rahambuu": "raz",
"Rajasthan": "raj",
"Rajbanshi": "rjs",
"Raji": "rji",
"Rajong": "rjg",
"Rakahanga-Manihiki": "rkh",
"Rakhine": "rki",
"Ralte": "ral",
"Rama": "rma",
"Ramandi": "tks",
"Ramanos": "sai-ram",
"Ramoaaina": "rai",
"Ramopa": "kjx",
"Rampi": "lje",
"Rana Tharu": "thr",
"Rang": "rax",
"Rangkas": "rgk",
"Ranglong": "rnl",
"Rao": "rao",
"Rapa": "ray",
"Rapa Nui": "rap",
"Rapoisi": "kyx",
"Rapting": "rpt",
"Rara Bakati'": "lra",
"Rarotonga": "rar",
"Rasawa": "rac",
"Ratagnon": "btn",
"Ratahan": "rth",
"Rathawi": "rtw",
"Rathwi Bareli": "bgd",
"Raute": "rau",
"Ravula": "yea",
"Rawa": "rwo",
"Rawang": "raw",
"Rawat": "jnl",
"Rawo": "rwa",
"Rayón Zoque": "zor",
"Razajerdi": "rat",
"Razihi": "rzh",
"Reang": "ria",
"Reel": "atu",
"Rejang": "rej",
"Reli": "rei",
"Rema": "bow",
"Rembarunga": "rmb",
"Rembong": "reb",
"Remo": "rem",
"Rempi": "rmp",
"Remun": "lkj",
"Rendille": "rel",
"Rengao": "ren",
"Rennell": "mnv",
"Repanbitip": "rpn",
"Rer Bare": "rer",
"Rerau": "rea",
"Rerep": "pgk",
"Reshe": "res",
"Resígaro": "rgr",
"Retta": "ret",
"Reyesano": "rey",
"Riang": "ril",
"Riantana": "ran",
"Ribun": "rir",
"Rigwe": "iri",
"Rikbaktsa": "rkb",
"Ringgou": "rgu",
"Ririo": "rri",
"Ritarungo": "rit",
"Riung": "riu",
"Riverain Sango": "snj",
"Roglai Cacgia": "roc",
"Roglai Selatan": "rgs",
"Roglai Utara": "rog",
"Rogo": "rod",
"Rohingya": "rhg",
"Roma": "rmm",
"Romagnol": "rgn",
"Romam": "rmx",
"Romani": "rom",
"Romani Balkan": "rmn",
"Romani Baltik": "rml",
"Romani Carpathia": "rmc",
"Romani Finland Kalo": "rmf",
"Romani Sinte": "rmo",
"Romani Vlax": "rmy",
"Romani Wales": "rmw",
"Romanian": "ro",
"Romano-Serbia": "rsb",
"Romanova": "rmv",
"Romansh": "rm",
"Romblomanon": "rol",
"Rombo": "rof",
"Romkun": "rmk",
"Ron": "cla",
"Ronga": "rng",
"Rongga": "ror",
"Rongpo": "rnp",
"Ronji": "roe",
"Roon": "rnn",
"Roria": "rga",
"Roro": "rro",
"Rotokas": "roo",
"Rotuma": "rtm",
"Rouran": "mis-rou",
"Roviana": "rug",
"Ruching Palaung": "pce",
"Rudbari": "rdb",
"Rufiji": "rui",
"Ruga": "ruh",
"Rukai": "dru",
"Rukiga": "cgg",
"Ruma": "ruz",
"Rumai Palaung": "rbb",
"Rumu": "klq",
"Runga": "rou",
"Rungtu": "rtc",
"Rungus": "drg",
"Rungwa": "rnw",
"Russenorsk": "crp-rsn",
"Russian": "ru",
"Rusyn": "rue",
"Rusyn Pannonia": "rsk",
"Ruthenian Kuno": "zle-ort",
"Rutul": "rut",
"Ruuli": "ruc",
"Ruwund": "rnd",
"Rwa": "rwk",
"Rwanda-Rundi": "rw",
"Sa": "sax",
"Sa'a": "apb",
"Sa'ban": "snv",
"Sa'och": "scq",
"Saafi-Saafi": "sav",
"Saam": "raq",
"Saamia": "lsm",
"Saanich": "str",
"Saare": "uss",
"Saaroa": "sxr",
"Saba": "saa",
"Sabaean": "xsa",
"Sabanê": "sae",
"Sabaot": "spy",
"Sabine": "sbv",
"Sabir": "pml",
"Sabu": "hvn",
"Sabüm": "sbo",
"Sacapulteco": "quv",
"Sadri": "sck",
"Saek": "skb",
"Saep": "spd",
"Safait": "sem-saf",
"Safaliba": "saf",
"Safeyoka": "apz",
"Safwa": "sbk",
"Sagala": "sbm",
"Sagalla": "tga",
"Sahaptin": "nai-spt",
"Saho": "ssy",
"Sahu": "saj",
"Saisiyat": "xsy",
"Sajau Basap": "sjb",
"Sakachep": "sch",
"Sakam": "skm",
"Sakao": "sku",
"Sakata": "skt",
"Sake": "sak",
"Sakizaya": "szy",
"Sala": "shq",
"Salako": "knx",
"Salampasu": "slx",
"Salar": "slr",
"Salas": "sgu",
"Salchuq": "slq",
"Saleman": "sau",
"Saliba (Colombia)": "slc",
"Saliba (New Guinea)": "sbe",
"Salinan": "sln",
"Salish Montana": "fla",
"Salish Puget Sound Selatan": "slh",
"Salt-Yui": "sll",
"Saluan": "loe",
"Salumá": "slj",
"Sam": "snx",
"Sama": "smd",
"Samal": "sem-sam",
"Samaritan Aramaic": "sam",
"Samarokena": "tmj",
"Samatao": "ysd",
"Samba": "smx",
"Sambal": "xsb",
"Sambalpuri": "spv",
"Sambe": "xab",
"Samberigi": "ssx",
"Samburu": "saq",
"Samei": "smh",
"Sami Akkala": "sia",
"Sami Inari": "smn",
"Sami Kemi": "sjk",
"Sami Kildin": "sjd",
"Sami Lule": "smj",
"Sami Pite": "sje",
"Sami Selatan": "sma",
"Sami Skolt": "sms",
"Sami Ter": "sjt",
"Sami Ume": "sju",
"Samo": "smq",
"Samo Selatan": "sbd",
"Samoan": "sm",
"Samogitia": "sgs",
"Samosa": "swm",
"Sampang": "rav",
"Samre": "sxm",
"Samtao": "stu",
"Samvedi": "smv",
"San Agustín Mixtepec Zapotec": "ztm",
"San Baltazar Loxicha Zapotec": "zpx",
"San Felipe Otlaltepec Popoloca": "pow",
"San Juan Atzingo Popoloca": "poe",
"San Juan Teita Mixtec": "xtj",
"San Luís Temalacayuca Popoloca": "pps",
"San Marcos Tlalcoyalco Popoloca": "pls",
"San Martín Itunyoso Triqui": "trq",
"San Pablo Güilá Zapotec": "ztu",
"San Pedro Quiatoni Zapotec": "zpf",
"San Vicente Coatlán Zapotec": "zpt",
"Sanapaná": "spn",
"Sanaviron": "sai-san",
"Sandawe": "sad",
"Sanga (Congo)": "sng",
"Sanga (Nigeria)": "xsn",
"Sanggau": "scg",
"Sangil": "snl",
"Sangir": "sxn",
"Sangisari": "sgr",
"Sangkong": "sgk",
"Sanglechi": "sgy",
"Sango": "sg",
"Sangu (Gabon)": "snq",
"Sangu (Tanzania)": "sbp",
"Sani": "ysn",
"Sanie": "ysy",
"Saniyo-Hiyewe": "sny",
"Sansi": "ssi",
"Sanskrit": "sa",
"Santa Catarina Albarradas Zapotec": "ztn",
"Santa Inés Ahuatempan Popoloca": "pca",
"Santa Inés Yatzechi Zapotec": "zpn",
"Santa María Quiegolani Zapotec": "zpi",
"Santa Teresa Cora": "cok",
"Santal": "sat",
"Santiago Xanica Zapotec": "zpr",
"Sanumá": "xsu",
"Sapa": "tys",
"Saparua": "spr",
"Sapará": "sai-sap",
"Sapo": "krn",
"Saponi": "spi",
"Saposa": "sps",
"Sapuan": "spu",
"Sapé": "spc",
"Sar": "mwm",
"Sara": "sre",
"Sara Kaba": "sbz",
"Sara Kaba Deme": "kwg",
"Sara Kaba Náà": "kwv",
"Saraiki": "skr",
"Saramaccan": "srm",
"Sarangani Blaan": "bps",
"Sarasira": "zsa",
"Saraveca": "sar",
"Sarazi": "inc-sar",
"Sardinian": "sc",
"Sarikoli": "srh",
"Sarli": "sdf",
"Sartang": "onp",
"Sarua": "swy",
"Sarudu": "sdu",
"Saruga": "sra",
"Sasak": "sas",
"Sasaru": "sxs",
"Sassari": "sdc",
"Satawal": "stw",
"Sateré-Mawé": "mav",
"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",
"Saxon Kuno": "osx",
"Saxon Transylvania": "gmw-tsx",
"Saxwe Gbe": "sxw",
"Saya": "say",
"Sayula Popoluca": "pos",
"Scanian": "gmq-scy",
"Schwaben Szatmár": "gmw-stm",
"Scots": "sco",
"Scots Pertengahan": "gmw-msc",
"Scottish Gaelic": "gd",
"Seba": "kdg",
"Sebat Bet Gurage": "sgw",
"Seberuang": "sbx",
"Sebop": "sib",
"Sebuyau": "snb",
"Sechelt": "sec",
"Sechura": "sai-sec",
"Secoya": "sey",
"Sedang": "sed",
"Sedoa": "tvw",
"Seenku": "sos",
"Segai": "sge",
"Segeju": "seg",
"Seget": "sbg",
"Sehwi": "sfw",
"Seim": "sim",
"Seimat": "ssg",
"Seit-Kaitetu": "hik",
"Sekani": "sek",
"Sekapan": "skp",
"Sekar": "skz",
"Seke": "skj",
"Sekele": "vaj",
"Seki": "syi",
"Seko Padang": "skx",
"Seko Tengah": "sko",
"Sekpele": "lip",
"Selangor Sign Language": "kgi",
"Selaru": "slu",
"Selayar": "sly",
"Selee": "snw",
"Selepet": "spl",
"Selk'nam": "ona",
"Selkup Selatan": "sel-sou",
"Selkup Utara": "sel-nor",
"Selonia": "sxl",
"Selungai Murut": "slg",
"Seluwasan": "sws",
"Sema": "nsm",
"Semai": "sea",
"Semandang": "sdm",
"Semaq Beri": "szc",
"Sembakung Murut": "sbr",
"Semelai": "sza",
"Semimi": "etz",
"Semnam": "ssm",
"Semnani": "smy",
"Sempan": "xse",
"Sena": "seh",
"Senara Sénoufo": "seq",
"Senaya": "syn",
"Sene": "sej",
"Seneca": "see",
"Sengele": "szg",
"Senggi": "snu",
"Sengo": "spk",
"Sengseng": "ssz",
"Senhaja De Srair": "sjs",
"Sensi": "sni",
"Sentani": "set",
"Sentinel": "std",
"Sepa (Indonesia)": "spb",
"Sepa (New Guinea)": "spe",
"Sepanyol Kuno": "osp",
"Sepen": "spm",
"Sepik Iwam": "iws",
"Sera": "sry",
"Seranan": "srn",
"Serbo-Croatian": "sh",
"Sere": "swf",
"Serer": "srr",
"Seri": "sei",
"Serili": "sve",
"Seroa": "kqu",
"Serrano": "ser",
"Seru": "szd",
"Serua": "srw",
"Serui-Laut": "seu",
"Seta": "stf",
"Setaman": "stm",
"Seti": "sbi",
"Severn Ojibwa": "ojs",
"Sewa Bay": "sew",
"Seze": "sze",
"Sha": "scw",
"Shabak": "sdb",
"Shabo": "sbf",
"Shahmirzadi": "srz",
"Shahrudi": "shm",
"Shall-Zwall": "sha",
"Shama-Sambuga": "sqa",
"Shamang": "xsh",
"Shambala": "ksb",
"Shan": "shn",
"Shanenawa": "swo",
"Shanga": "sho",
"Shangzhai": "jih",
"Sharanahua": "mcd",
"Shark Bay": "ssv",
"Sharwa": "swq",
"Shasta": "sht",
"Shasta Sungai Baru": "nai-nrs",
"Shatt": "shj",
"Shau": "sqh",
"Shawnee": "sjw",
"She": "shx",
"Shebayo": "awd-she",
"Shehri": "shv",
"Shekkacho": "moy",
"Sheko": "she",
"Shelta": "sth",
"Shendu": "shl",
"Sheni": "scv",
"Sherbro": "bun",
"Sherdukpen": "sdp",
"Sherpa": "xsr",
"Sheshi Kham": "kip",
"Shi": "shr",
"Shilluk": "shk",
"Shina": "scl",
"Shinasha": "bwo",
"Shipibo-Conibo": "shp",
"Shixing": "sxg",
"Sholaga": "sle",
"Shom Peng": "sii",
"Shona": "sn",
"Shoo-Minda-Nye": "bcv",
"Shor": "cjs",
"Shoshone": "shh",
"Shua": "shg",
"Shuar": "jiv",
"Shuba": "cbq",
"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",
"Sicanian": "sxc",
"Sicel": "scx",
"Sichuan": "zhx-sic",
"Sicilia": "scn",
"Siculo-Arabic": "sqr",
"Sidamo": "sid",
"Sidetic": "xsd",
"Sie": "erg",
"Sierra Leone Sign Language": "sgx",
"Sighu": "sxe",
"Sihan": "snr",
"Sika": "ski",
"Sikaiana": "sky",
"Sikaritai": "tty",
"Sikiana": "sik",
"Sikkim": "sip",
"Sikule": "skh",
"Sila": "slt",
"Sileibi": "sbq",
"Silesia": "szl",
"Silimo": "wul",
"Siliput": "mkc",
"Silopi": "xsp",
"Silt'e": "stv",
"Simaa": "sie",
"Simba": "sbw",
"Simbali": "smg",
"Simbari": "smb",
"Simbo": "sbb",
"Simeku": "smz",
"Simeulue": "smr",
"Simte": "smt",
"Sinacantán": "nai-sin",
"Sinagen": "siu",
"Sinasina": "sst",
"Sinaugoro": "snc",
"Sindarin": "sjn",
"Sindhi": "sd",
"Sindhi Bhil": "sbn",
"Singa": "sgm",
"Singapore Sign Language": "sls",
"Singpho": "sgp",
"Sinhalese": "si",
"Sinicahua Mixtec": "xti",
"Sininkere": "skq",
"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 Barat": "ssl",
"Sissala": "sld",
"Sissano": "sso",
"Situ": "sit-sit",
"Siuslaw": "sis",
"Sivandi": "siy",
"Siwai": "siw",
"Siwi": "siz",
"Siwu": "akp",
"Skagit": "ska",
"Skalvian": "svx",
"Ske": "ske",
"Skou": "skv",
"Slav Timur Kuno": "orv",
"Slavey Selatan": "xsl",
"Slavey Utara": "scs",
"Slavomolisano": "svm",
"Slavonic Gereja": "zls-chs",
"Slovak": "sk",
"Slovak Kuno": "zlw-osk",
"Slovakian Sign Language": "svk",
"Slovene": "sl",
"Slovincian": "zlw-slv",
"Small Flowery Miao": "sfm",
"Smärky Kanum": "kxq",
"Snohomish": "sno",
"So'a": "ssq",
"Sobei": "sob",
"Sochiapam Chinantec": "cso",
"Soga": "xog",
"Sogdia": "sog",
"Sok": "skk",
"Sokna": "swn",
"Soko": "soc",
"Sokoro": "sok",
"Solano": "xso",
"Soli": "sby",
"Solombala English": "crp-slb",
"Solon": "tuw-sol",
"Solong": "aaw",
"Solos": "sol",
"Som": "smc",
"Somali": "so",
"Somba-Siawari": "bmu",
"Somra": "ntx",
"Somrai": "sor",
"Somray": "smu",
"Somyev": "kgt",
"Sonaga": "ysg",
"Sonde": "shc",
"Songe": "sop",
"Songomeno": "soe",
"Songoora": "sod",
"Sonha": "soi",
"Sonia": "siq",
"Soninke": "snk",
"Sonsorol": "sov",
"Soo": "teu",
"Sop": "urw",
"Soqotri": "sqt",
"Sora": "srb",
"Sorbia Atas": "hsb",
"Sori-Harengan": "sbh",
"Sorkhei": "sqo",
"Sorothaptic": "sxo",
"Sos Kundi": "sdk",
"Sota Kanum": "krz",
"Sotho": "st",
"Sotho Utara": "nso",
"Sou": "sqq",
"Sougb": "mnx",
"Southeast Babar": "vbb",
"Southeast Ijo": "ijs",
"Southeastern Ixtlán Zapotec": "zpd",
"Southern Ndebele": "nr",
"Southern Pame": "pmz",
"Southern Qiang": "qxs",
"Southern Rincon Zapotec": "zsr",
"Sowa": "sww",
"Sowanda": "sow",
"Spanish": "es",
"Spanish Sign Language": "ssp",
"Spiti Bhoti": "spt",
"Spokane": "spo",
"Squamish": "squ",
"Sri Lankan Sign Language": "sqs",
"Stau": "ero-tau",
"Stod Bhoti": "sbu",
"Stoney": "sto",
"Suabo": "szp",
"Suarmin": "seo",
"Suau": "swp",
"Suba": "sxb",
"Suba-Simbiti": "ssc",
"Subanen Tengah": "syb",
"Subanen Utara": "stb",
"Subanon Barat": "suc",
"Subanun Lapuyan": "laa",
"Subi": "xsj",
"Subiya": "sbs",
"Subtiaba": "sut",
"Sudest": "tgo",
"Sudovian": "xsv",
"Suena": "sue",
"Suga": "sgi",
"Suganga": "sug",
"Sui": "swi",
"Suki": "sui",
"Suku": "sub",
"Sukuma": "suk",
"Sukur": "syk",
"Sukurum": "zsu",
"Sula": "szn",
"Sulka": "sua",
"Sulod": "srg",
"Suluk": "tsg",
"Sulung": "suv",
"Suma": "sqm",
"Sumariup": "siv",
"Sumau": "six",
"Sumbawa": "smw",
"Sumbwa": "suw",
"Sumeria": "sux",
"Sunam": "ssk",
"Sunda Kuno": "osn",
"Sundanese": "su",
"Sungai": "dmg",
"Sungwadaga": "mwo",
"Sungwadia": "mrb",
"Sunum": "ymn",
"Sunwar": "suz",
"Suoy": "syo",
"Supyire": "spp",
"Sur": "tdl",
"Surbakhal": "sbj",
"Suri": "suq",
"Surigaonon": "sgd",
"Surjapuri": "sjp",
"Sursurunga": "sgz",
"Suruahá": "swx",
"Surubu": "sde",
"Suruí": "sru",
"Suruí Do Pará": "mdz",
"Suryani Klasik": "syc",
"Susquehannock": "sqn",
"Susu": "sus",
"Susuami": "ssu",
"Suundi": "sdj",
"Suwawa": "swu",
"Suyá": "suy",
"Svan": "sva",
"Swabia": "swg",
"Swahili": "sw",
"Swampy Cree": "csw",
"Swazi": "ss",
"Sweden Kuno": "gmq-osw",
"Swedish": "sv",
"Swedish Sign Language": "swl",
"Swiss-French Sign Language": "ssr",
"Swiss-German Sign Language": "sgg",
"Swiss-Italian Sign Language": "slf",
"Swo": "sox",
"Syenara Senoufo": "shz",
"Sylhet": "syl",
"Sácata": "sai-sac",
"Sãotomense": "cri",
"Sìcìté Sénoufo": "sep",
"Sô": "sss",
"T'en": "tct",
"Taabwa": "tap",
"Taba": "mky",
"Tabancale": "sai-tab",
"Tabaru": "tby",
"Tabasaran": "tab",
"Tabasco Chontal": "chf",
"Tabasco Zoque": "zoq",
"Tabla": "tnm",
"Tabo": "knv",
"Tabriak": "tzx",
"Tacana": "tna",
"Tachawit": "shy",
"Tadaksahak": "dsq",
"Tadyawan": "tdy",
"Tae'": "rob",
"Tafi": "tcd",
"Tafreshi": "xme-taf",
"Tagabawa": "bgs",
"Tagal Murut": "mvv",
"Tagalog": "tl",
"Tagbanwa": "tbw",
"Tagbanwa Tengah": "tgt",
"Tagbu": "tbm",
"Tagdal": "tda",
"Tagish": "tgx",
"Tagoi": "tag",
"Tagwana Senoufo": "tgw",
"Tahitian": "ty",
"Tahltan": "tht",
"Tai": "taw",
"Tai Daeng": "tyr",
"Tai Dam": "blt",
"Tai Do": "tyj",
"Tai Dón": "twh",
"Tai Hang Tong": "thc",
"Tai Hongjin": "tiz",
"Tai Laing": "tjl",
"Tai Loi": "tlq",
"Tai Long": "thi",
"Tai Nüa": "tdd",
"Tai Pao": "tpo",
"Tai Thanh": "tmm",
"Tai Ya": "cuu",
"Taikat": "aos",
"Tainae": "ago",
"Tairora Selatan": "omw",
"Tairora Utara": "tbg",
"Tairuma": "uar",
"Taishan": "zhx-tai",
"Taita": "dav",
"Taivoan": "tvx",
"Taje": "pee",
"Tajik": "tg",
"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",
"Tamang Barat": "tdg",
"Tamang Barat Daya": "tsf",
"Tamang Barat Laut": "tmk",
"Tamang Gorkha Timur": "tge",
"Tamang Timur": "taj",
"Tamazight Atlas Tengah": "tzm",
"Tamazola Mixtec": "vmx",
"Tambas": "tdk",
"Tambora": "xxt",
"Tambotalo": "tls",
"Tami": "tmy",
"Tamil": "ta",
"Tamil Kuno": "oty",
"Tamki": "tax",
"Tamnim Citak": "tml",
"Tampias Lobu": "low",
"Tampuan": "tpu",
"Tampulma": "tpm",
"Tanacross": "tcb",
"Tanahmerah": "tcm",
"Tanapag": "tpv",
"Tanchangya": "tnv",
"Tandaganon": "tgn",
"Tandia": "tni",
"Tanema": "tnx",
"Tangale": "tan",
"Tangam": "sit-tgm",
"Tanggu": "tgu",
"Tangko": "tkx",
"Tanglang": "ytl",
"Tangoa": "tgp",
"Tangsa": "nst",
"Tanguat": "tbs",
"Tangut": "txg",
"Tangwang": "mis-tnw",
"Tanimbili": "tbe",
"Tanimuca-Retuarã": "tnc",
"Tanjijili": "uji",
"Tanna Barat Daya": "nwi",
"Tanna Utara": "tnn",
"Taos": "twf",
"Tapachultec": "nai-tap",
"Taparita": "sai-tpr",
"Tapayuna": "sai-tap",
"Tapeba": "tbb",
"Tapei": "afp",
"Tapieté": "tpj",
"Tapirapé": "taf",
"Tar Gula": "kcm",
"Tara Baka": "bdh",
"Tarahumara Barat Daya": "twr",
"Tarahumara Tengah": "tar",
"Tarahumara Tenggara": "tcu",
"Tarahumara Utara": "thh",
"Tarairiú": "sai-trr",
"Tarangan Barat": "txn",
"Tarangan Timur": "tre",
"Tarantino": "roa-tar",
"Tarao": "tro",
"Taraon": "mhu",
"Tareng": "tgr",
"Tariana": "tae",
"Tarifit": "rif",
"Tarjumo": "txj",
"Tarok": "yer",
"Taroko": "trv",
"Tarpia": "tpf",
"Tartessian": "txr",
"Taruma": "tdm",
"Tasawaq": "twq",
"Tashelhit": "shi",
"Tasmania": "xtz",
"Tasmania Tenggara": "xpf",
"Tasmate": "tmt",
"Tat": "ttt",
"Tataltepec Chatino": "cta",
"Tatana": "txx",
"Tatar": "tt",
"Tatar Crimea": "crh",
"Tatar Siberia": "sty",
"Tataviam": "azc-tat",
"Tati Kuno": "xme-ott",
"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",
"Tawbuid Barat": "twb",
"Tawbuid Timur": "bnj",
"Taworta": "tbp",
"Tawoyan": "twy",
"Tay Khang": "tnu",
"Tayman": "sem-tay",
"Tayo": "cks",
"Taíno": "tnq",
"Tboli": "tbl",
"Tchitchege": "tck",
"Tchumbuli": "bqa",
"Te'un": "tve",
"Teanu": "tkw",
"Tebul Ure Dogon": "dtu",
"Tecpatlán Totonac": "tcw",
"Tedaga": "tuq",
"Tee": "tkq",
"Tefaro": "tfo",
"Tegali": "ras",
"Tehit": "kps",
"Tehuelche": "teh",
"Teiwa": "twe",
"Tejalapan Zapotec": "ztt",
"Teke Tengah": "nzu",
"Teke-Fuumu": "ifm",
"Teke-Kukuya": "kkw",
"Teke-Laali": "lli",
"Teke-Tege": "teg",
"Teke-Tsaayi": "tyi",
"Teke-Tyee": "tyx",
"Tektiteko": "ttc",
"Tela-Masbuar": "tvm",
"Telefol": "tlf",
"Telugu": "te",
"Telugu Kuno": "dra-ote",
"Teluk Malua": "mll",
"Teluti": "tlt",
"Tem": "kdh",
"Tembé": "tqb",
"Teme": "tdo",
"Temein": "teq",
"Temi": "soz",
"Temiar": "tea",
"Temne": "tem",
"Temoq": "tmo",
"Tempasuk Dusun": "tdu",
"Temuan": "tmw",
"Ten'edn": "tnz",
"Tene Kan Dogon": "dtk",
"Tenggarong Kutai Malay": "vkt",
"Tengger": "tes",
"Tenharim": "pah",
"Tenino": "tqn",
"Tenis": "tns",
"Tennet": "tex",
"Teochew": "nan-tws",
"Teop": "tio",
"Teor": "tev",
"Tepecano": "tep",
"Tepehua Huehuetla": "tee",
"Tepehuan Barat Daya": "tla",
"Tepehuan Tenggara": "stp",
"Tepehuan Utara": "ntp",
"Tepetotutla Chinantec": "cnt",
"Tepeuxila Cuicatec": "cux",
"Tepinapa Chinantec": "cte",
"Tepo Krumen": "ted",
"Tequistlatec": "nai-teq",
"Tera": "ttr",
"Terebu": "trb",
"Terei": "buo",
"Tereno": "ter",
"Teressa": "tef",
"Tereweng": "twg",
"Teribe": "tfr",
"Terik": "tec",
"Termanu": "twu",
"Ternate": "tft",
"Ternateño": "tmg",
"Tese": "keg",
"Teshenawa": "twc",
"Tetela": "tll",
"Tetete": "teb",
"Tetserret": "tez",
"Tetum": "tet",
"Tetun Dili": "tdt",
"Teushen": "sai-teu",
"Teutila Cuicatec": "cut",
"Tewa": "tew",
"Texistepec Popoluca": "poq",
"Texmelucan Zapotec": "zpz",
"Tha": "thy",
"Thachanadan": "thn",
"Thai": "th",
"Thai Selatan": "sou",
"Thai Song": "soa",
"Thai Utara": "nod",
"Thakali": "ths",
"Thamud": "sem-tha",
"Thangmi": "thf",
"Thao": "ssf",
"Tharaka": "thk",
"Tharrgari": "dhr",
"Thavung": "thm",
"Thawa": "xtv",
"Tho": "tou",
"Thompson": "thp",
"Thopho": "ytp",
"Thracian": "txh",
"Thu Lao": "tyl",
"Thulung": "tdh",
"Thurawal": "tbh",
"Thuri": "thu",
"Tiagba": "ahi",
"Tiale": "mnl",
"Tiang": "tbj",
"Tibea": "ngy",
"Tibet Klasik": "xct",
"Tibet Kuno": "otb",
"Tibetan": "bo",
"Ticuna": "tca",
"Tidore": "tvo",
"Tidung Selatan": "itd",
"Tidung Utara": "ntd",
"Tiemacèwè Bozo": "boo",
"Tiene": "tii",
"Tifal": "tif",
"Tigak": "tgc",
"Tigre": "tig",
"Tigrinya": "ti",
"Tii": "txq",
"Tijaltepec Mixtec": "xtl",
"Tikar": "tik",
"Tikopia": "tkp",
"Tillamook": "til",
"Tilquiapan Zapotec": "zts",
"Tilung": "tij",
"Tima": "tms",
"Timbe": "tim",
"Timor Pidgin": "tvy",
"Timote": "sai-tim",
"Timucua": "tjm",
"Tinagas Kota Marudu": "ktr",
"Tinani": "lbf",
"Tindi": "tin",
"Tingui-Boto": "tgv",
"Tinigua": "tit",
"Tinoc Kallahan": "tne",
"Tinputz": "tpz",
"Tipai": "nai-tip",
"Tippera": "tpe",
"Tira": "tic",
"Tirahi": "tra",
"Tiranige Diga Dogon": "tde",
"Tirax": "mme",
"Tircul": "pyx",
"Tiri": "cir",
"Tiruray": "tiy",
"Tita": "tdq",
"Titan": "ttv",
"Tiv": "tiv",
"Tiwa": "lax",
"Tiwa Selatan": "tix",
"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",
"Tlapanec Malinaltepec": "tcf",
"Tlingit": "tli",
"To": "toz",
"To'abaita": "mlu",
"Toaripi": "tqo",
"Toba": "tob",
"Toba-Maskoy": "tmf",
"Tobanga": "tng",
"Tobati": "tti",
"Tobelo": "tlb",
"Tobian": "tox",
"Tobilung": "tgb",
"Tobo": "tbv",
"Tocharia A": "xto",
"Tocharia B": "txb",
"Tocho": "taz",
"Toda": "tcx",
"Todrah": "tdr",
"Tofa": "kim",
"Tofanma": "tlg",
"Tofin Gbe": "tfi",
"Togbo-Vara Banda": "tor",
"Togoyo": "tgy",
"Tojolabal": "toj",
"Tok Pisin": "tpi",
"Toka-Leya": "dov",
"Tokano": "zuh",
"Tokelau": "tkl",
"Toki Pona": "tok",
"Toku-No-Shima": "tkn",
"Tol": "jic",
"Tolai": "ksd",
"Tolaki": "lbw",
"Tolomako": "tlm",
"Tolowa": "tol",
"Toma": "tod",
"Tomadino": "tdi",
"Tombelala": "ttp",
"Tombonuo": "txa",
"Tombulu": "tom",
"Tomini": "txm",
"Tommeginne": "xpv",
"Tommo So": "dto",
"Tomo Kan Dogon": "dtm",
"Tomoip": "tqp",
"Tondano": "tdn",
"Tonga (Malawi)": "tog",
"Tonga (Mozambique)": "toh",
"Tonga (Zambia)": "toi",
"Tongan": "to",
"Tongwe": "tny",
"Tonjon": "tjn",
"Tonkawa": "tqw",
"Tonsawang": "tnw",
"Tonsea": "txs",
"Tontemboan": "tnt",
"Toogee": "xpx",
"Tooro": "ttj",
"Topoiyo": "toy",
"Toposa": "toq",
"Toraja-Sa'dan": "sda",
"Toram": "trj",
"Torau": "ttu",
"Toro": "tdv",
"Toro So Dogon": "dts",
"Toro Tegu Dogon": "dtt",
"Toromono": "tno",
"Torona": "tqr",
"Torricelli": "tei",
"Torricelli Yau": "yyu",
"Torwali": "trw",
"Torá": "trz",
"Tosu": "sit-tos",
"Totela": "ttl",
"Toto": "txo",
"Totoli": "txe",
"Totomachapan Zapotec": "zph",
"Totonac Barat": "tqt",
"Totoro": "ttk",
"Touo": "tqu",
"Toura": "neb",
"Toussiana Selatan": "wib",
"Toussiana Utara": "tsp",
"Towei": "ttn",
"Translingual": "mul",
"Traveller Scottish": "trl",
"Tregami": "trm",
"Tremembé": "tme",
"Trieng": "stg",
"Trimuris": "tip",
"Tring": "tgq",
"Tringgus": "trx",
"Trinitario": "trn",
"Tripuri Awal": "xtr",
"Trió": "tri",
"Truká": "tka",
"Trumai": "tpy",
"Ts'ün-Lao": "tsl",
"Tsaangi": "tsa",
"Tsafiki": "cof",
"Tsakhur": "tkr",
"Tsakonian": "tsd",
"Tsakwambo": "kvz",
"Tsamai": "tsb",
"Tsat": "huq",
"Tsetsaut": "txc",
"Tsez": "ddo",
"Tshangla": "tsj",
"Tshobdun": "sit-tsh",
"Tshwa": "hio",
"Tsikimba": "kdl",
"Tsimané": "cas",
"Tsimshian": "tsi",
"Tsishingini": "tsw",
"Tso": "ldp",
"Tsogo": "tsv",
"Tsonga": "ts",
"Tsotsitaal": "fly",
"Tsou": "tsu",
"Tsum": "ttz",
"Tsuut'ina": "srs",
"Tsuvadi": "tvd",
"Tsuvan": "tsh",
"Tswa": "tsc",
"Tswana": "tn",
"Tswapong": "two",
"Tuamotuan": "pmt",
"Tuareg": "tmh",
"Tubar": "tbu",
"Tucano": "tuo",
"Tugen": "tuy",
"Tugun": "tzn",
"Tugutil": "tuj",
"Tuhua Shaozhou": "zhx-sht",
"Tujia Selatan": "tjs",
"Tujia Utara": "tji",
"Tukang Besi Selatan": "bhq",
"Tukang Besi Utara": "khc",
"Tuki": "bag",
"Tukpa": "tpq",
"Tukudede": "tkd",
"Tukumanféd": "tkf",
"Tula": "tul",
"Tulehu": "tlu",
"Tulishi": "tey",
"Tulu": "tcy",
"Tulu-Bohuai": "rak",
"Tulua": "aus-tul",
"Tuma-Irumu": "iou",
"Tumak": "tmc",
"Tumbuka": "tum",
"Tumi": "kku",
"Tumleo": "tmq",
"Tumshuq": "xtq",
"Tumtum": "tbr",
"Tumulung Sisaala": "sil",
"Tunebo Barat": "tnb",
"Tunebo Tengah": "tuf",
"Tunen": "tvu",
"Tungag": "lcm",
"Tunggare": "trt",
"Tunia": "tug",
"Tunica": "tun",
"Tunjung": "tjg",
"Tunni": "tqq",
"Tunumiisut": "esx-tut",
"Tunzu": "dza",
"Tuoba": "mis-tuo",
"Tuotomb": "ttf",
"Tuparí": "tpr",
"Tupi Kuno": "tpw",
"Tupinambá": "tpn",
"Tupinikin": "tpk",
"Tupuri": "tui",
"Turaka": "trh",
"Turdetania": "mis-tdt",
"Turdulia": "mis-tdl",
"Turi": "trd",
"Turiwára": "twt",
"Turk Kuno": "otk",
"Turka": "tuz",
"Turkana": "tuv",
"Turki Anatolia Kuno": "trk-oat",
"Turki Khorasan": "kmz",
"Turki Usmaniyah": "ota",
"Turkish": "tr",
"Turkmen": "tk",
"Turoyo": "tru",
"Turumsa": "tqm",
"Turung": "try",
"Tuscarora": "tus",
"Tutchone Selatan": "tce",
"Tutchone Utara": "ttm",
"Tutelo": "tta",
"Tutong": "ttg",
"Tutsa Naga": "tvt",
"Tutuba": "tmi",
"Tututni": "tuu",
"Tuva": "tyv",
"Tuvalu": "tvl",
"Tuwali Ifugao": "ifk",
"Tuwari": "tww",
"Tuwuli": "bov",
"Tuxináwa": "tux",
"Tuxá": "tud",
"Tuyuca": "tue",
"Tuyuhun": "mis-tuh",
"Twana": "twa",
"Twendi": "twn",
"Tyap": "kcg",
"Tyaraity": "woa",
"Tyerrernotepanner": "xph",
"Tz'utujil": "tzj",
"Tzeltal": "tzh",
"Tzotzil": "tzo",
"Tày": "tyz",
"Tày Tac": "tyt",
"Tây Bồi": "tas",
"Téén": "lor",
"Tübatulabal": "tub",
"U": "uuu",
"Uab Meto": "aoz",
"Uamué": "uam",
"Uare": "ksj",
"Ubaghara": "byc",
"Ubang": "uba",
"Ubi": "ubi",
"Ubir": "ubr",
"Ubykh": "uby",
"Ucayali-Yurúa Ashéninka": "cpb",
"Uda": "uda",
"Udi": "udi",
"Udihe": "ude",
"Udmurt": "udm",
"Uduk": "udu",
"Ufim": "ufi",
"Ugandan Sign Language": "ugn",
"Ugarit": "uga",
"Ughele": "uge",
"Uhami": "uha",
"Uisai": "uis",
"Ujir": "udj",
"Ukaan": "kcf",
"Ukhwejo": "ukh",
"Ukit": "umi",
"Ukpe-Bayobiri": "ukp",
"Ukpet-Ehom": "akd",
"Ukrainian": "uk",
"Ukrainian Sign Language": "ukl",
"Ukue": "uku",
"Ukuriguma": "ukg",
"Ukwa": "ukq",
"Ukwuani-Aboh-Ndoni": "ukw",
"Ulau-Suain": "svb",
"Ulch": "ulc",
"Uldeme": "udl",
"Ulithian": "uli",
"Ullatan": "ull",
"Ulumanda'": "ulm",
"Ulwa": "ulw",
"Uma": "ppk",
"Uma' Lasan": "xky",
"Uma' Lung": "ulu",
"Umatilla": "uma",
"Umbindhamu": "umd",
"Umbri": "xum",
"Umbu-Ungu": "ubu",
"Umbugarla": "umr",
"Umbundu": "umb",
"Umbuygamu": "umg",
"Umeda": "upi",
"Umiida": "xud",
"Umon": "umm",
"Umotína": "umo",
"Umpila": "ump",
"Una": "mtg",
"Unami": "unm",
"Unde Kaili": "unz",
"Uneapa": "bbn",
"Uneme": "une",
"Unggaranggu": "xun",
"Unggumi": "xgu",
"Unserdeutsch": "uln",
"Unua": "onu",
"Unubahe": "unu",
"Uokha": "uok",
"Upper Chehalis": "cjh",
"Upper Grand Valley Dani": "dna",
"Upper Kuskokwim": "kuu",
"Upper Necaxa Totonac": "tku",
"Upper Ta'oih": "tth",
"Upper Tanana": "tau",
"Upper Taromi": "tov",
"Upper Umpqua": "xup",
"Ura (Papua New Guinea)": "uro",
"Ura (Vanuatu)": "uur",
"Uradhi": "urf",
"Urak Lawoi'": "urk",
"Urali": "url",
"Urapmin": "urm",
"Urarina": "ura",
"Urartian": "xur",
"Urat": "urt",
"Urdu": "ur",
"Urhobo": "urh",
"Uri": "uvh",
"Urigina": "urg",
"Urim": "uri",
"Urimo": "urx",
"Urningangg": "urc",
"Uru": "ure",
"Uru-Eu-Wau-Wau": "urz",
"Uru-Pa-In": "urp",
"Uruangnirin": "urn",
"Uruava": "urv",
"Urubú-Kaapor": "urb",
"Uruguayan Sign Language": "ugy",
"Urum": "uum",
"Urumi": "uru",
"Usaghade": "usk",
"Usan": "wnu",
"Usarufa": "usa",
"Ushojo": "ush",
"Usila Chinantec": "cuc",
"Uspanteco": "usp",
"Usui": "usi",
"Utarmbung": "omo",
"Ute": "ute",
"Utu": "utu",
"Uvbie": "evh",
"Uvea Barat": "uve",
"Uwinymil": "aus-uwi",
"Uya": "usu",
"Uyajitaya": "duk",
"Uyghur": "ug",
"Uyghur Kuno": "oui",
"Uzbek": "uz",
"Uzekwe": "eze",
"Vaagri Booli": "vaa",
"Vaghri": "vgr",
"Vaghua": "tva",
"Vagla": "vag",
"Vai": "vai",
"Vaie": "bny",
"Vaiphei": "vap",
"Vale": "vae",
"Valencian Sign Language": "vsv",
"Valle Nacional Chinantec": "cvn",
"Valley Maidu": "vmv",
"Valman": "van",
"Valpei": "vlp",
"Valyrian Tinggi": "art-vlh",
"Vamale": "mkt",
"Vame": "mlr",
"Vandalic": "xvn",
"Vangunu": "mpr",
"Vanimo": "vam",
"Vanji": "ira-wnj",
"Vanuma": "vau",
"Vao": "vao",
"Varhadi": "vah",
"Varisi": "vrs",
"Varli": "vav",
"Vasavi": "vas",
"Vayu": "vay",
"Veddah": "ved",
"Vehes": "val",
"Vemgo-Mabas": "vem",
"Venda": "ve",
"Venetic": "xve",
"Veneto": "vec",
"Venezuelan Sign Language": "vsl",
"Ventureño": "veo",
"Veps": "vep",
"Vera'a": "vra",
"Vestinian": "xvs",
"Vidunda": "vid",
"Viemo": "vig",
"Vietnam Pertengahan": "mkh-mvi",
"Vietnamese": "vi",
"Vilamovian": "wym",
"Vilela": "vil",
"Vili": "vif",
"Vishavan": "vis",
"Viti": "vit",
"Vitou": "vto",
"Volapük": "vo",
"Volscian": "xvo",
"Vono": "kch",
"Voro": "vor",
"Vot": "vot",
"Vumbu": "vum",
"Vunapu": "vnp",
"Vunjo": "vun",
"Vurës": "msn",
"Vute": "vut",
"Võro": "vro",
"Wa": "wbm",
"Wa'ema": "wag",
"Waama": "wwa",
"Waamwang": "wmn",
"Wab": "wab",
"Wabo": "wbb",
"Waboda": "kmx",
"Waci Gbe": "wci",
"Wadaginam": "wdg",
"Waddar": "wbq",
"Wadi Wadi": "xwd",
"Wadiyara Koli": "kxp",
"Wadjabangayi": "wdy",
"Wadjiginy": "wdj",
"Wadjigu": "wdu",
"Wae Rana": "wrx",
"Waffa": "waj",
"Wagawaga": "wgb",
"Wagaya": "wga",
"Wagdi": "wbr",
"Wageman": "waq",
"Wagi": "fad",
"Wahgi": "wgi",
"Wahgi Utara": "whg",
"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",
"Wales Kuno": "owl",
"Wales Pertengahan": "wlm",
"Wali (Ghana)": "wlx",
"Wali (Sudan)": "wll",
"Waling": "wly",
"Walio": "wla",
"Walla Walla": "waa",
"Wallis": "wls",
"Walloon": "wa",
"Walmajarri": "wmt",
"Wam": "wmo",
"Wamas": "wmc",
"Wambaya": "wmb",
"Wambon": "wms",
"Wambule": "wme",
"Wamey": "cou",
"Wamin": "wmi",
"Wampar": "lbq",
"Wampur": "waz",
"Wan": "wan",
"Wanambre": "wnb",
"Wanap": "wnp",
"Wancho": "nnp",
"Wanda": "wbh",
"Wandala": "mfi",
"Wandamen": "wad",
"Wandarang": "wnd",
"Wandji": "wdd",
"Waneci": "wne",
"Wanga": "lwg",
"Wanggamala": "wnm",
"Wangganguru": "wgg",
"Wanggom": "wng",
"Wangkayutyuru": "wky",
"Wangkumara": "xwk",
"Wanham": "sai-wnm",
"Wanji": "wbi",
"Wanman": "wbt",
"Wannu": "jub",
"Wano": "wno",
"Wantoat": "wnc",
"Wanukaka": "wnk",
"Wanyi": "wny",
"Wané": "hwa",
"Wapan": "juk",
"Wapishana": "wap",
"Wappo": "wao",
"War-Jaintia": "aml",
"Wara": "wbf",
"Warao": "wba",
"Warapu": "wra",
"Waray Sorsogon": "srv",
"Waray-Waray": "war",
"Wardaman": "wrr",
"Wardandi": "wxw",
"Warekena Kuno": "awd-war",
"Warembori": "wsa",
"Wari'": "pav",
"Waris": "wrs",
"Waritai": "wbe",
"Wariyangga": "wri",
"Warji": "wji",
"Warkay-Bipim": "bgv",
"Warlmanpa": "wrl",
"Warlpiri": "wbp",
"Warluwara": "wrb",
"Warnang": "wrn",
"Waropen": "wrp",
"Warray": "wrz",
"Warrgamay": "wgy",
"Warrwa": "wwr",
"Waru": "wru",
"Warumungu": "wrm",
"Waruna": "wrv",
"Warungu": "wrg",
"Warwar Feni": "hrw",
"Wasa": "wss",
"Wasco-Wishram": "wac",
"Washo": "was",
"Waskia": "wsk",
"Wastek": "hus",
"Wasu": "wsu",
"Watakataui": "wtk",
"Watam": "wax",
"Wathaurong": "wth",
"Watiwa": "wtf",
"Watubela": "wah",
"Watut Selatan": "mcy",
"Watut Tengah": "mpl",
"Watut Utara": "una",
"Waube": "kop",
"Wauja": "wau",
"Wauyai": "wuy",
"Wawa": "www",
"Wawonii": "wow",
"Waxianghua": "wxa",
"Wayampi": "oym",
"Wayana": "way",
"Wayanad Chetti": "ctt",
"Wayoró": "wyr",
"Wayumara": "sai-way",
"Wedau": "wed",
"Weh": "weh",
"Welaung": "weu",
"Weliki": "klh",
"Welsh": "cy",
"Wemale": "weo",
"Wemba-Wemba": "xww",
"Weme Gbe": "wem",
"Wendat": "wdt",
"Weri": "wer",
"Wersing": "kvw",
"West Frisian": "fy",
"Western Juxtlahuaca Mixtec": "jmx",
"Wewaw": "wea",
"Weyewa": "wew",
"Whitesands": "tnp",
"Wiarumus": "tua",
"Wichita": "wic",
"Wichí Lhamtés Güisnay": "mzh",
"Wichí Lhamtés Nocten": "mtp",
"Wichí Lhamtés Vejoz": "wlv",
"Wik-Epa": "wie",
"Wik-Iiyanh": "wij",
"Wik-Keyangan": "wif",
"Wik-Me'anha": "wih",
"Wik-Mungkan": "wim",
"Wik-Ngathana": "wig",
"Wikalkan": "wik",
"Wikngenchera": "wua",
"Wilawila": "wil",
"Winnebago": "win",
"Wintu": "wnw",
"Winyé": "kst",
"Wiradhuri": "wrh",
"Wiraféd": "wir",
"Wirangu": "wgu",
"Wiru": "wiu",
"Wirö": "wpc",
"Wiwa": "mbp",
"Wiyot": "wiy",
"Woccon": "xwc",
"Wogamusin": "wog",
"Wogeo": "woc",
"Woi": "wbw",
"Woiwurrung": "wyi",
"Wojenaka": "jod",
"Wolane": "wle",
"Wolani": "wod",
"Wolaytta": "wal",
"Woleai": "woe",
"Wolio": "wlo",
"Wolof": "wo",
"Womo": "wmx",
"Wong-gie": "aus-won",
"Wongo": "won",
"Woods Cree": "cwd",
"Woria": "wor",
"Worimi": "kda",
"Worodougou": "jud",
"Worora": "wro",
"Wotapuri-Katarqalai": "wsv",
"Wotu": "wtw",
"Woun Meu": "noa",
"Wu": "wuu",
"Wudu": "wud",
"Wuhuan": "mis-wuh",
"Wulguru": "aus-wul",
"Wuliwuli": "wlu",
"Wulna": "wux",
"Wumboko": "bqm",
"Wumbvu": "wum",
"Wumeng Nasu": "ywu",
"Wunai Bunu": "bwn",
"Wunambal": "wub",
"Wurrugu": "wur",
"Wusa Nasu": "yig",
"Wushi": "bse",
"Wusi": "wsi",
"Wutung": "wut",
"Wutunhua": "wuh",
"Wuvulu-Aua": "wuv",
"Wyandot": "wya",
"Wára": "tci",
"Wãpha": "juw",
"Wè Barat": "wec",
"Wè Selatan": "gxx",
"Wè Utara": "wob",
"Xakriabá": "xkr",
"Xamtanga": "xan",
"Xanaguía Zapotec": "ztg",
"Xavante": "xav",
"Xerénte": "xer",
"Xetá": "xet",
"Xhosa": "xh",
"Xianbei": "mis-xbi",
"Xiang": "hsn",
"Xibe": "sjo",
"Xicotepec de Juárez Totonac": "too",
"Xinca": "xin",
"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âcùù": "ane",
"Xârâgurè": "axx",
"Yaa": "iyx",
"Yaaku": "muu",
"Yabarana": "yar",
"Yabaâna": "ybn",
"Yaben": "ybm",
"Yabong": "ybo",
"Yabula Yabula": "yxy",
"Yace": "ekr",
"Yaeyama": "rys",
"Yafi": "wfg",
"Yagara": "yxg",
"Yagaria": "ygr",
"Yagnobi": "yai",
"Yagomi": "ygm",
"Yagua": "yad",
"Yagwoia": "ygw",
"Yahadian": "ner",
"Yahang": "rhp",
"Yahuna": "ynu",
"Yaka": "yaf",
"Yakaikeke": "ykk",
"Yakan": "yka",
"Yakima": "yak",
"Yakkha": "ybh",
"Yakoma": "yky",
"Yakut": "sah",
"Yala": "yba",
"Yalahatan": "jal",
"Yalakalore": "xyl",
"Yalarnnga": "ylr",
"Yale": "nce",
"Yaleba": "ylb",
"Yali Ninia": "nlk",
"Yalunka": "yal",
"Yalálag Zapotec": "zpu",
"Yamap": "ymp",
"Yamba": "yam",
"Yambes": "ymb",
"Yambeta": "yat",
"Yamdena": "jmd",
"Yameo": "yme",
"Yami": "tao",
"Yaminahua": "yaa",
"Yamongeri": "ymg",
"Yamphu": "ybi",
"Yan-nhangu": "jay",
"Yana": "ynn",
"Yanda": "yda",
"Yanda Dogon": "dym",
"Yandjibara": "xyb",
"Yandruwandha": "ynd",
"Yanesha'": "ame",
"Yangben": "yav",
"Yangkaal": "aus-ynk",
"Yangkam": "bsx",
"Yangman": "jng",
"Yango": "yng",
"Yangulam": "ynl",
"Yangum Dey": "yde",
"Yangum Gel": "ygl",
"Yankunytjatjara": "kdd",
"Yanomámi": "wca",
"Yansi": "yns",
"Yanyuwa": "jao",
"Yao": "yao",
"Yao (Amerika Selatan)": "sai-yao",
"Yaouré": "yre",
"Yapese": "yap",
"Yapunda": "yev",
"Yaqay": "jaq",
"Yaqui": "yaq",
"Yarawata": "yrw",
"Yareba": "yrb",
"Yarli": "yxl",
"Yarluyandi": "yry",
"Yaroamë": "yro",
"Yarumá": "sai-yar",
"Yarí": "yri",
"Yasa": "yko",
"Yatay": "yty",
"Yatee Zapotec": "zty",
"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",
"Yemba": "ybb",
"Yemsa": "jnj",
"Yendang": "yen",
"Yeni": "yei",
"Yeniche": "yec",
"Yerakai": "yra",
"Yerong": "yrn",
"Yerukula": "yeu",
"Yeskwa": "yes",
"Yessan-Mayo": "yss",
"Yetfa": "yet",
"Yevanic": "yej",
"Yeyi": "yey",
"Yiddish": "yi",
"Yidgha": "ydg",
"Yidiny": "yii",
"Yil": "yll",
"Yimas": "yee",
"Yimchungru Naga": "yim",
"Yinchia": "yin",
"Yindjibarndi": "yij",
"Yindjilandji": "yil",
"Yine": "pib",
"Yinggarda": "yia",
"Yinhawangka": "ywg",
"Yiningayi": "ygi",
"Yinwum": "yxm",
"Yir-Yoront": "yiy",
"Yirandali": "ljw",
"Yis": "yis",
"Yitha Yitha": "xth",
"Yoba": "yob",
"Yogad": "yog",
"Yoidik": "ydk",
"Yoke": "yki",
"Yokuts Buena Vista": "yok-bvy",
"Yokuts Delta": "yok-dly",
"Yokuts Gashowu": "yok-gsy",
"Yokuts Lembah Selatan": "yok-svy",
"Yokuts Lembah Utara": "yok-nvy",
"Yokuts Palewyami": "yok-ply",
"Yokuts Sungai Kings": "yok-kry",
"Yokuts Tule-Kaweah": "yok-tky",
"Yola": "yol",
"Yolmo": "scp",
"Yolngu Sign Language": "ygs",
"Yom": "pil",
"Yombe": "yom",
"Yonaguni": "yoi",
"Yong": "yno",
"Yongkom": "yon",
"Yopno": "yut",
"Yora": "mts",
"Yoron": "yox",
"Yorta Yorta": "xyy",
"Yoruba": "yo",
"Youle Jino": "jiu",
"Younuo Bunu": "buh",
"Yout Wam": "ytw",
"Yoy": "yoy",
"Yuanga": "nua",
"Yuchi": "yuc",
"Yucuna": "ycn",
"Yug": "yug",
"Yugambal": "yub",
"Yugoslavian Sign Language": "ysl",
"Yugul": "ygu",
"Yugur Barat": "ybe",
"Yugur Timur": "yuy",
"Yuhup": "yab",
"Yukaghir Selatan": "yux",
"Yukaghir Utara": "ykg",
"Yuki": "yuk",
"Yukpa": "yup",
"Yukuben": "ybl",
"Yulu": "yul",
"Yuma": "yum",
"Yumana": "awd-yum",
"Yunani Cappadocia": "cpg",
"Yunani Pontus": "pnt",
"Yunani Romani": "rge",
"Yup'ik": "esu",
"Yupik Siberia Tengah": "ess",
"Yupiltepeque": "nai-yup",
"Yupua": "sai-yup",
"Yuqui": "yuq",
"Yuracare": "yuz",
"Yuri": "sai-yri",
"Yurok": "yur",
"Yuru": "ljx",
"Yurumanguí": "sai-yur",
"Yurutí": "yui",
"Yuwana": "yau",
"Yuyu": "yxu",
"Yámana": "yag",
"Zaachila Zapotec": "ztx",
"Zabana": "kji",
"Zacatepec Chatino": "ctz",
"Zaghawa": "zag",
"Zaiwa": "atb",
"Zakhring": "zkr",
"Zambian Sign Language": "zsl",
"Zan Gula": "zna",
"Zanaki": "zak",
"Zande": "zne",
"Zangskar": "zau",
"Zangwal": "zah",
"Zaniza Zapotec": "zpw",
"Zapotec": "zap",
"Zapotec Aloápam": "zaq",
"Zapotec Ayoquesco": "zaf",
"Zapotec Cajonos": "zad",
"Zapotec Coatecas Altas": "zca",
"Zapotec Mitla": "zaw",
"Zapotec Ocotlán": "zac",
"Zapotec Ozolotepec": "zao",
"Zapotec Purba": "xzp",
"Zapotec Rincón": "zar",
"Zapotec San Juan Guelavía": "zab",
"Zapotec Santo Domingo Albarradas": "zas",
"Zapotec Segenting": "zai",
"Zapotec Sierra de Juárez": "zaa",
"Zapotec Tabaa": "zat",
"Zapotec Xadani": "zax",
"Zapotec Yareni": "zae",
"Zapotec Yatzachi": "zav",
"Zapoteco Mahuatlán Tengah": "zam",
"Zaramo": "zaj",
"Zari": "zaz",
"Zarma": "dje",
"Zauzou": "zal",
"Zay": "zwa",
"Zayse-Zergulla": "zay",
"Zazaki": "zza",
"Zazao": "jaj",
"Zbu": "sit-zbu",
"Zeeland": "zea",
"Zeem": "zua",
"Zemba": "dhm",
"Zemgalia": "xzm",
"Zenag": "zeg",
"Zenaga": "zen",
"Zenzontepec Chatino": "czn",
"Zhaba": "zhb",
"Zhang-Zhung": "xzh",
"Zhire": "zhi",
"Zhoa": "zhw",
"Zhuang": "za",
"Zhár": "jjr",
"Zia": "zia",
"Zialo": "zil",
"Zigula": "ziw",
"Zimakani": "zik",
"Zimba": "zmb",
"Zimbabwe Sign Language": "zib",
"Zinza": "zin",
"Zire": "sih",
"Zirenkel": "zrn",
"Ziriya": "zir",
"Zizilivakan": "ziz",
"Zo'é": "pto",
"Zokhuo": "yzk",
"Zoogocho Zapotec": "zpq",
"Zou": "zom",
"Zulu": "zu",
"Zumaya": "zuy",
"Zumbun": "jmb",
"Zuni": "zun",
"Zuojiang Zhuang": "zzj",
"Zuwara": "ber-zuw",
"Zyphe": "zyp",
"Záparo": "zro",
"tidak ditentukan": "und",
"Àhàn": "ahn",
"Áncá": "acb",
"Äiwoo": "nfl",
"Älvdalen": "ovd",
"Äynu": "aib",
"Ömie": "aom",
"Önge": "oon",
"ǀXam": "xam",
"ǁAni": "hnh",
"ǁXegwi": "xeg",
"ǂHoan": "huc",
"ǃKung": "khi-kun",
"ǃXóõ": "nmn"
}
der22oto3ng0zbehmzdy0e4pmwqvjfj
373545
373529
2026-09-11T09:58:23Z
Hakimi97
2668
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373545
json
application/json
{
"'Are'are": "alu",
"A'ou": "aou",
"A-Hmao": "hmd",
"A-Pucikwar": "apq",
"Aari": "aiw",
"Aasax": "aas",
"Aba": "utp",
"Abaga": "abg",
"Abai": "poz-abi",
"Abai Sungai": "abf",
"Abanyom": "abm",
"Abau": "aau",
"Abaza": "abq",
"Abenaki": "abe",
"Abidji": "abi",
"Abinomn": "bsa",
"Abipón": "axb",
"Abishira": "ash",
"Abkhaz": "ab",
"Abom": "aob",
"Abon": "abo",
"Abu": "ado",
"Abu'": "aah",
"Abua": "abn",
"Abui": "abz",
"Abun": "kgr",
"Abung": "abl",
"Abure": "abu",
"Abureni": "mgj",
"Abé": "aba",
"Acatepec Me'phaa": "tpx",
"Aceh": "ace",
"Achagua": "aca",
"Achang": "acn",
"Ache": "yif",
"Acheron": "acz",
"Achi": "acr",
"Acholi": "ach",
"Achuar": "acu",
"Achumawi": "acv",
"Acipa Timur": "acp",
"Acroá": "acs",
"Adai": "xad",
"Adang": "adn",
"Adangbe": "adq",
"Adangme": "ada",
"Adap": "adp",
"Adasen": "tiu",
"Adele": "ade",
"Adhola": "adh",
"Adi": "adi",
"Adioukrou": "adj",
"Adithinngithigh": "dth",
"Adnyamathanha": "adt",
"Adonara": "adr",
"Aduge": "adu",
"Adzera": "adz",
"Adûni": "art-adu",
"Aeka": "aez",
"Aekyom": "awi",
"Aequian": "xae",
"Aer": "aeq",
"Afade": "aal",
"Afar": "aa",
"Afitti": "aft",
"Afra": "ulf",
"Afrihili": "afh",
"Afrikaans": "af",
"Agarabi": "agd",
"Agatu": "agc",
"Agawam": "alg-aga",
"Aghem": "agq",
"Aghu": "ahh",
"Aghul": "agx",
"Aghwan": "xag",
"Agi": "aif",
"Agob": "kit",
"Agoi": "ibm",
"Agta Cagayan Tengah": "agt",
"Agta Camarines Norte": "abd",
"Agta Casiguran Dumagat": "dgc",
"Agta Dicamay": "duy",
"Agta Dinapigue": "phi-din",
"Agta Dupaningan": "duo",
"Agta Gunung Iraya": "atl",
"Agta Gunung Iriga": "agz",
"Agta Isarog": "agk",
"Agta Nagtipunan": "phi-nag",
"Agta Pahanan": "apf",
"Agta Pulau Alabat": "dul",
"Agta Remontado": "agv",
"Agta Umiray Dumaget": "due",
"Agta Villa Viciosa": "dyg",
"Aguacateco": "agu",
"Aguano": "aga",
"Aguaruna": "agr",
"Aguna": "aug",
"Agutaynen": "agn",
"Agwagwune": "yay",
"Ahanta": "aha",
"Ahirani": "ahr",
"Ahom": "aho",
"Ahtna": "aht",
"Ahwai": "nfd",
"Ai-Cham": "aih",
"Aighon": "aix",
"Aikanã": "tba",
"Aiklep": "mwg",
"Aimele": "ail",
"Aimol": "aim",
"Ainbai": "aic",
"Ainu": "ain",
"Aiome": "aki",
"Airoran": "air",
"Aisi": "mmq",
"Aiton": "aio",
"Aja (Afrika Barat)": "ajg",
"Aja (Afrika Timur)": "aja",
"Ajawa": "ajw",
"Ajië": "aji",
"Ajyíninka Apurucayali": "cpc",
"Ak": "akq",
"Aka (Afrika Tengah)": "axk",
"Aka (Sudan)": "soh",
"Aka-Bea": "abj",
"Aka-Bo": "akm",
"Aka-Cari": "aci",
"Aka-Kede": "akx",
"Aka-Kol": "aky",
"Aka-Kora": "ack",
"Akan": "ak",
"Akar-Bale": "acl",
"Akaselem": "aks",
"Akatek": "knj",
"Akawaio": "ake",
"Ake": "aik",
"Akebu": "keu",
"Akei": "tsr",
"Akeu": "aeu",
"Akha": "ahk",
"Akhvakh": "akv",
"Akkadia": "akk",
"Aklanon": "akl",
"Akolet": "akt",
"Akoose": "bss",
"Akoye": "miw",
"Akpa": "akf",
"Akpes": "ibe",
"Akrukay": "afi",
"Akuku": "ayk",
"Akum": "aku",
"Akuntsu": "aqz",
"Akurio": "ako",
"Akuwagel": "bey",
"Akwa": "akw",
"Akyaung Ari": "nqy",
"Al-Sayyid Bedouin Sign Language": "syy",
"Alaba": "alw",
"Alabama": "akz",
"Alago": "ala",
"Alagwa": "wbj",
"Alak": "alk",
"Alamblak": "amp",
"Alangan": "alj",
"Alapmunte": "apv",
"Alawa": "alh",
"Alazapa": "nai-ala",
"Albania": "sq",
"Albanian Sign Language": "sqk",
"Alchuka": "tuw-alk",
"Alcozauca Mixtec": "xta",
"Alege": "alf",
"Aleut": "ale",
"Aleut Mednyj": "mud",
"Algonquin": "alq",
"Algonquin Carolina": "crr",
"Ali": "aiy",
"Alladian": "ald",
"Allar": "all",
"Allentiac": "sai-all",
"Alngith": "aid",
"Alo Phola": "ypo",
"Alor": "aol",
"Alsea": "aes",
"Alta Selatan": "agy",
"Alta Utara": "aqn",
"Altai Selatan": "alt",
"Altai Utara": "atv",
"Alu": "mte",
"Alugu": "aub",
"Alumu-Tesu": "aab",
"Alune": "alp",
"Alungul": "aus-alu",
"Aluo": "yna",
"Alur": "alz",
"Alutiiq": "ems",
"Alutor": "alr",
"Alviri-Vidari": "avd",
"Alyawarr": "aly",
"Ama": "amm",
"Amahai": "amq",
"Amahuaca": "amc",
"Amaimon": "ali",
"Amal": "aad",
"Amami Ōshima Selatan": "ams",
"Amami Ōshima Utara": "ryn",
"Amanab": "amn",
"Amanayé": "ama",
"Amara": "aie",
"Amarakaeri": "amr",
"Amarasi": "aaz",
"Amarizana": "awd-ama",
"Amasi": "alv-ama",
"Amatlán Zapotec": "zpo",
"Amazigh Maghribi": "zgh",
"Amba": "rwm",
"Ambae Barat": "nnd",
"Ambai": "amk",
"Ambakich": "aew",
"Ambelau": "amv",
"Ambele": "ael",
"Amblong": "alm",
"Ambo": "amb",
"Ambrak": "aag",
"Ambrym Tenggara": "tvk",
"Ambrym Utara": "mmg",
"Ambul": "apo",
"Ambulas": "abt",
"Amdang": "amj",
"Amele": "aey",
"Amganad Ifugao": "ifa",
"Amhara": "am",
"Ami": "amy",
"Amis": "ami",
"Ammon": "sem-amm",
"Amo": "amo",
"Amol": "alx",
"Amondawa": "adw",
"Amor": "sem-amo",
"Ampanang": "apg",
"Amto": "amt",
"Amurdag": "amg",
"Amuzgo Guerrero": "amu",
"Amuzgo Ipalapa": "azm",
"Amuzgo San Pedro Amuzgos": "azg",
"Ana Tinga Dogon": "dti",
"Anaang": "anw",
"Anakalangu": "akg",
"Anam": "pda",
"Anambé": "aan",
"Anamgura": "imi",
"Anasi": "bpo",
"Anauyá": "awd-ana",
"Andai": "afd",
"Andajin": "ajn",
"Andaqui": "ana",
"Andarum": "aod",
"Andegerebinha": "adg",
"Andh": "anr",
"Andi": "ani",
"Andio": "bzb",
"Andjingith": "aus-and",
"Andoa": "anb",
"Andoque": "ano",
"Andoquero": "sai-and",
"Andra-Hus": "anx",
"Aneityum": "aty",
"Anem": "anz",
"Aneme Wake": "aby",
"Anfillo": "myo",
"Angaataha": "agm",
"Angaité": "aqt",
"Angal": "age",
"Angal Enen": "aoe",
"Angal Heneng": "akh",
"Angami": "njm",
"Angevin": "roa-ang",
"Angguruk Yali": "yli",
"Angika": "anp",
"Angkamuthi": "avm",
"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",
"Annobon": "fab",
"Anong": "nun",
"Anor": "anj",
"Anserma": "ans",
"Ansus": "and",
"Antakarinya": "ant",
"Anu": "anl",
"Anuak": "anu",
"Anufo": "cko",
"Anuki": "aui",
"Anus": "auq",
"Anuta": "aud",
"Anyi": "any",
"Anyin Morofo": "mtb",
"Anāl": "anm",
"Ao Chungli": "njo-jgl",
"Ao Mongsen": "njo-mng",
"Aoheng": "pni",
"Aore": "aor",
"Ap Ma": "kbx",
"Apabhramsa": "inc-apa",
"Apache Barat": "apw",
"Apache Dataran": "apk",
"Apalachee": "xap",
"Apalaí": "apy",
"Apali": "ena",
"Apatani": "apt",
"Apiaká": "api",
"Apinayé": "apn",
"Apma": "app",
"Apolista": "awd-apo",
"Apro": "ahp",
"Apurinã": "apu",
"Aputai": "apx",
"Aquitanian": "xaq",
"Arab": "ar",
"Arab Algeria": "arq",
"Arab Andalusia": "xaa",
"Arab Bahrani": "abv",
"Arab Chad": "shu",
"Arab Cyprus": "acy",
"Arab Dhofar": "adf",
"Arab Hassaniyah": "mey",
"Arab Hijaz": "acw",
"Arab Iraq": "acm",
"Arab Juba": "pga",
"Arab Libya": "ayl",
"Arab Maghribi": "ary",
"Arab Mesir": "arz",
"Arab Mesopotamia Utara": "ayp",
"Arab Najdi": "ars",
"Arab Oman": "acx",
"Arab Selatan Kuno": "sem-srb",
"Arab Sudan": "apd",
"Arab Syam Selatan": "ajp",
"Arab Syam Utara": "apc",
"Arab Syihuh": "ssh",
"Arab Tajik": "abh",
"Arab Teluk": "afb",
"Arab Tunisia": "aeb",
"Arab Utara Purba": "xna",
"Arab Uzbeki": "auz",
"Arab Yaman": "ayn",
"Arabana": "ard",
"Arabela": "arl",
"Aragon": "an",
"Araki": "akr",
"Arakwal": "rkw",
"Aralle-Tabulahan": "atq",
"Aramia": "arc",
"Arammba": "stk",
"Aranadan": "aaf",
"Aranama-Tamique": "xrt",
"Aranda Selatan Bawah": "axl",
"Arandai": "jbj",
"Araona": "aro",
"Arapaho": "arp",
"Arapaso": "arj",
"Arapesh Bumbita": "aon",
"Arara-Karo": "arr",
"Ararandewára": "xaj",
"Araweté": "awt",
"Arawum": "awm",
"Arbore": "arv",
"Archi": "aqc",
"Are": "mwc",
"Areba": "aea",
"Arem": "aem",
"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",
"Armenia": "hy",
"Armenia Kuno": "xcl",
"Armenia Pertengahan": "axm",
"Aromania": "rup",
"Arop-Lokep": "apr",
"Arop-Sissano": "aps",
"Arosi": "aia",
"Arrernte Barat": "are",
"Arrernte Timur": "aer",
"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",
"Ashraaf": "cus-ash",
"Asháninka": "cni",
"Ashéninka Pajonal": "cjo",
"Ashéninka Perené": "prq",
"Ashéninka Ucayali Selatan": "cpy",
"Asi": "bno",
"Asilulu": "asl",
"Askopan": "eiv",
"Asmat Pesisir Casuarina": "asc",
"Asmat Tengah": "cns",
"Asmat Utara": "nks",
"Asmat Yaosakor": "asy",
"Asoa": "asv",
"Assam": "as",
"Assam Awal": "inc-oas",
"Assam Pertengahan": "inc-mas",
"Assan": "xss",
"Assangori": "sjg",
"Assiniboine": "asb",
"Asturia": "ast",
"Asu": "aum",
"Asue Awyu": "psa",
"Asumboa": "aua",
"Asunción Mixtepec Zapotec": "zoo",
"Asuri": "asr",
"Asurini Tocantins": "asu",
"Asuriní Xingú": "asn",
"Ata": "atm",
"Atakapa": "aqp",
"Atampaya": "amz",
"Atanques": "cba-ata",
"Atauran": "adb",
"Atayal": "tay",
"Atemble": "ate",
"Ateso": "teo",
"Athpare": "aph",
"Ati": "atk",
"Atikamekw": "atj",
"Atohwaim": "aqm",
"Atong (Cameroon)": "ato",
"Atong (India)": "aot",
"Atorada": "aox",
"Atsahuaca": "atc",
"Atsam": "cch",
"Atsugewi": "atw",
"Atta Faire": "azt",
"Atta Pamplona": "att",
"Atta Pudtol": "atp",
"Attapady Kurumba": "pkr",
"Attié": "ati",
"Au": "avt",
"Auhelawa": "kud",
"Aukan": "djk",
"Aulua": "aul",
"Aurá": "aux",
"Aushi": "auh",
"Aushiri": "avs",
"Auslan": "asf",
"Austral": "aut",
"Auwe": "smf",
"Auyana": "auy",
"Auye": "auu",
"Auyokawa": "auo",
"Avar": "av",
"Avar Kuno": "oav",
"Avatime": "avn",
"Avau": "avb",
"Avava": "tmb",
"Avesta": "ae",
"Avikam": "avi",
"Avokaya": "avu",
"Avá-Canoeiro": "avv",
"Awa (China)": "vwa",
"Awa (New Guinea)": "awb",
"Awa-Cuaiquer": "kwi",
"Awabakal": "awk",
"Awadhi": "awa",
"Awadhi Kuno": "inc-oaw",
"Awak": "awo",
"Awar": "aya",
"Awara": "awx",
"Awbono": "awh",
"Aweer": "bob",
"Awera": "awr",
"Awetí": "awe",
"Awing": "azo",
"Awjila": "auj",
"Awngi": "awn",
"Awngthim": "gwm",
"Awtuw": "kmn",
"Awu": "yiu",
"Awun": "aww",
"Awutu": "afu",
"Awyi": "auw",
"Awyu Edera": "awy",
"Awyu Jair": "awv",
"Awyu Selatan": "aws",
"Awyu Tengah": "awu",
"Awyu Utara": "yir",
"Axamb": "ahb",
"Axi": "yix",
"Ayabadhu": "ayd",
"Ayautla Mazatec": "vmy",
"Ayere": "aye",
"Ayerrerenge": "axe",
"Ayi": "ayq",
"Ayizi": "yyz",
"Ayizo": "ayb",
"Aymara": "ay",
"Ayomán": "sai-ayo",
"Ayoreo": "ayo",
"Ayta Abenlen": "abp",
"Ayta Ambala": "abc",
"Ayta Bataan": "ayt",
"Ayta Sorsogon": "ays",
"Ayu": "ayu",
"Azerbaijan": "az",
"Azha": "aza",
"Azhe": "yiz",
"Azoyú Me'phaa": "tpc",
"Baa": "kwb",
"Baagandji": "drl",
"Baali": "bcp",
"Baan": "bvj",
"Baangi": "bqx",
"Baatonum": "bba",
"Baba": "bbw",
"Babango": "bbm",
"Babanki": "bbk",
"Babar Utara": "bcd",
"Babatana": "baa",
"Babine-Witsuwit'en": "bcr",
"Babole": "bvx",
"Babungo": "bav",
"Babuza": "bzg",
"Bacama": "bcy",
"Bada": "bhz",
"Badaga": "bfq",
"Badanchi": "bau",
"Bade": "bde",
"Badeshi": "bdz",
"Badimaya": "bia",
"Badui": "bac",
"Badyara": "pbp",
"Baeggu": "bvd",
"Baekje": "pkc",
"Baelelea": "bvc",
"Baenan": "sai-bae",
"Baetora": "btr",
"Bafanji": "bfj",
"Bafaw": "bwt",
"Bafia": "ksf",
"Bafut": "bfd",
"Baga Kaloum": "bqf",
"Baga Koga": "bgo",
"Baga Manduri": "bmd",
"Baga Pokur": "bcg",
"Baga Sitemu": "bsp",
"Baga Sobané": "bsv",
"Bagheli": "bfy",
"Bagirmi": "bmi",
"Bago-Kusuntu": "bqg",
"Bagri": "bgq",
"Bagua": "sai-bag",
"Bagupi": "bpi",
"Bagusa": "bqb",
"Bagvalal": "kva",
"Baha": "yha",
"Bahaaa Isyarat Mauritius": "lsy",
"Bahaaa Isyarat Panama": "lsp",
"Baham": "bdw",
"Bahasa Hitam": "art-bsp",
"Bahasa Isyarat Adamorobe": "ads",
"Bahasa Isyarat Afghanistan": "afg",
"Bahasa Isyarat Afrika Selatan": "sfs",
"Bahasa Isyarat Algeria": "asp",
"Bahasa Isyarat Amerika": "ase",
"Bahasa Isyarat Argentina": "aed",
"Bahasa Isyarat Armenia": "aen",
"Bahasa Isyarat Austria": "asq",
"Bahasa Isyarat Chad": "cds",
"Bahasa Isyarat Croatia": "csq",
"Bahasa Isyarat Ecuador": "ecs",
"Bahasa Isyarat El Salvador": "esn",
"Bahasa Isyarat Estonia": "eso",
"Bahasa Isyarat Filipina": "psp",
"Bahasa Isyarat Finland": "fse",
"Bahasa Isyarat Finland-Sweden": "fss",
"Bahasa Isyarat Habsyah": "eth",
"Bahasa Isyarat Haiphong": "haf",
"Bahasa Isyarat Hanoi": "hab",
"Bahasa Isyarat Hausa": "hsl",
"Bahasa Isyarat Honduras": "hds",
"Bahasa Isyarat Hong Kong": "hks",
"Bahasa Isyarat Hungary": "hsh",
"Bahasa Isyarat Iceland": "icl",
"Bahasa Isyarat India": "ins",
"Bahasa Isyarat Indonesia": "inl",
"Bahasa Isyarat Inuit": "iks",
"Bahasa Isyarat Ireland": "isg",
"Bahasa Isyarat Israel": "isr",
"Bahasa Isyarat Itali": "ise",
"Bahasa Isyarat Jamaica": "jls",
"Bahasa Isyarat Jepun": "jsl",
"Bahasa Isyarat Jhankot": "jhs",
"Bahasa Isyarat Jordan": "jos",
"Bahasa Isyarat Jumla": "jus",
"Bahasa Isyarat Kentish Kuno": "okl",
"Bahasa Isyarat Korea": "kvk",
"Bahasa Isyarat Lao": "lso",
"Bahasa Isyarat Latvia": "lsl",
"Bahasa Isyarat Libya": "lbs",
"Bahasa Isyarat Madagascar": "mzc",
"Bahasa Isyarat Malta": "mdl",
"Bahasa Isyarat Maritim": "nsr",
"Bahasa Isyarat Martha's Vineyard": "mre",
"Bahasa Isyarat Maya Yucatec": "msd",
"Bahasa Isyarat Mesir": "esl",
"Bahasa Isyarat Mexico": "mfs",
"Bahasa Isyarat Miriwoong": "rsm",
"Bahasa Isyarat Monastik": "mzg",
"Bahasa Isyarat Mongolia": "msr",
"Bahasa Isyarat Mozambique": "mzy",
"Bahasa Isyarat Namibia": "nbs",
"Bahasa Isyarat Negara Jamaica": "jcs",
"Bahasa Isyarat Nepal": "nsp",
"Bahasa Isyarat New Zealand": "nzs",
"Bahasa Isyarat Nicaragua": "ncs",
"Bahasa Isyarat Nigeria": "nsi",
"Bahasa Isyarat Norway": "nsl",
"Bahasa Isyarat Orang Asli Australia": "asw",
"Bahasa Isyarat Pakistan": "pks",
"Bahasa Isyarat Papua New Guinea": "pgz",
"Bahasa Isyarat Paraguay": "pys",
"Bahasa Isyarat Parsi": "psc",
"Bahasa Isyarat Perancis": "fsl",
"Bahasa Isyarat Peru": "prl",
"Bahasa Isyarat Poland": "pso",
"Bahasa Isyarat Portugis": "psr",
"Bahasa Isyarat Providencia": "prz",
"Bahasa Isyarat Puerto Rico": "psl",
"Bahasa Isyarat Pulau Pinang": "psg",
"Bahasa Isyarat Quebec": "fcs",
"Bahasa Isyarat Romania": "rms",
"Bahasa Isyarat Rusia": "rsl",
"Bahasa Isyarat Taiwan": "tss",
"Bahasa Isyarat Tanzania": "tza",
"Bahasa Isyarat Tebul": "tsy",
"Bahasa Isyarat Thai": "tsq",
"Bahasa Isyarat Trinidad dan Tobago": "lst",
"Bahasa Isyarat Tunisia": "tse",
"Bahasa Isyarat Turki": "tsm",
"Bahasa Isyarat Yahudi Algeria": "ajs",
"Bahasa Lembah Indus": "xiv",
"Bahasa Roh Maroon": "crp-mar",
"Bahau": "bhv",
"Bahinemo": "bjh",
"Bahing": "bhj",
"Bahnar": "bdq",
"Bahonsuai": "bsu",
"Bai": "bdj",
"Bai Selatan": "bfs",
"Bai Tengah": "bca",
"Baibai": "bbf",
"Baikeno": "bkx",
"Bailang": "tbq-blg",
"Baima": "bqh",
"Baimak": "bmx",
"Bainouk Gubeeher": "alv-bgu",
"Bainouk-Gunyaamolo": "bcz",
"Bainouk-Gunyuño": "bab",
"Bainouk-Samik": "bcb",
"Baiso": "bsw",
"Bajan": "bjs",
"Bajau Indonesia": "bdl",
"Bajau Laut": "sml",
"Bajau Pantai Timur": "ssb",
"Bajau Sama": "bdr",
"Bajelani": "bjm",
"Baka": "bkc",
"Bakairí": "bkq",
"Bakaka": "bqz",
"Bakhtiari": "bqi",
"Baki": "bki",
"Bakoko": "bkh",
"Bakole": "kme",
"Bakpinka": "bbs",
"Baktria": "xbc",
"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": "ban",
"Baliledo": "poz-bal",
"Balkan Gagauz Turkish": "bgx",
"Balo": "bqo",
"Baloi": "biz",
"Balong": "bnt-bal",
"Balti": "bft",
"Baluan-Pam": "blq",
"Baluchi": "bal",
"Bamako Sign Language": "bog",
"Bamali": "bbq",
"Bambalang": "bmo",
"Bambam": "ptu",
"Bambara": "bm",
"Bambassi": "myf",
"Bambili-Bambui": "baw",
"Bamenyam": "bce",
"Bamu": "bcf",
"Bamukumbit": "bqt",
"Bamum": "bax",
"Bamunka": "bvm",
"Bamwe": "bmg",
"Ban Khor Sign Language": "bfk",
"Bana": "bcw",
"Banam Bay": "vrt",
"Banao Itneg": "bjx",
"Banaro": "byz",
"Banda": "bnd",
"Banda Malay": "bpq",
"Banda Tengah Barat": "bbp",
"Banda Tengah Selatan": "lnl",
"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",
"Banjar": "bjn",
"Banka": "bxw",
"Bankan Tey Dogon": "dbw",
"Bankon": "abb",
"Banoni": "bcm",
"Bantawa": "bap",
"Bantayanon": "bfx",
"Bantik": "bnq",
"Banyumasan": "map-bms",
"Baoule": "bci",
"Baraamu": "brd",
"Barai": "bbb",
"Barakai": "baj",
"Barama": "bbg",
"Barambu": "brm",
"Baramu": "bmz",
"Barapasi": "brp",
"Baras": "brs",
"Barasana": "bsn",
"Barbar Tunisia": "sds",
"Barbareño": "boi",
"Bardi": "bcj",
"Barein": "bva",
"Bargam": "mlp",
"Bari": "bfa",
"Bariai": "bch",
"Bariji": "bjc",
"Barikanchi": "bxo",
"Barikewa": "jbk",
"Barngarla": "bjb",
"Barok": "bjk",
"Barombi": "bbi",
"Barranbinya": "aus-bra",
"Barro Negro Tunebo": "tbn",
"Barrow Point": "bpt",
"Baruga": "bjz",
"Barunggam": "aus-brm",
"Baruya": "byr",
"Barwe": "bwg",
"Barzani Jewish Neo-Aramaic": "bjf",
"Baré": "bae",
"Barí": "mot",
"Basa": "bzw",
"Basa-Gumna": "bsl",
"Basa-Gurmana": "buj",
"Basaa": "bas",
"Basap": "bdb",
"Basay": "byq",
"Bashkardi": "bsg",
"Bashkir": "ba",
"Basketo": "bst",
"Basque": "eu",
"Bassa": "bsq",
"Bassa-Kontagora": "bsr",
"Bassari": "bsc",
"Bassossi": "bsi",
"Bata": "bta",
"Batad Ifugao": "ifb",
"Batak Alas-Kluet": "btz",
"Batak Angkola": "akb",
"Batak Dairi": "btd",
"Batak Karo": "btx",
"Batak Mandailing": "btm",
"Batak Palawan": "bya",
"Batak Simalungun": "bts",
"Batak Toba": "bbc",
"Batanga": "bnm",
"Batek": "btq",
"Bateri": "btv",
"Bathari": "bhm",
"Bati (Cameroon)": "btc",
"Bati (Indonesia)": "bvt",
"Bats": "bbl",
"Batu": "btu",
"Batui": "zbt",
"Batuley": "bay",
"Bau": "bbd",
"Bauchi": "bsf",
"Baure": "brg",
"Bauria": "bge",
"Bauro": "bxa",
"Bauwaki": "bwk",
"Bauzi": "bvz",
"Bavarian": "bar",
"Bayali": "bjy",
"Baybayanon": "bvy",
"Baygo": "byg",
"Bayogoula": "nai-bay",
"Bayono": "byl",
"Bayot": "bda",
"Bayungu": "bxj",
"Bazigar": "bfr",
"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": "nl",
"Belanda Bor": "bxb",
"Belanda Jersey": "gmw-jdt",
"Belanda Kreol Berbice": "brc",
"Belanda Kreol Skepi": "skw",
"Belanda Kuno": "odt",
"Belanda Pertengahan": "dum",
"Belanda Viri": "bvi",
"Belarus": "be",
"Belhariya": "byw",
"Beli": "blm",
"Bella Coola": "blc",
"Bellari": "brw",
"Bemba": "bem",
"Bembe": "bmb",
"Ben Tey": "dbt",
"Bena": "yun",
"Benabena": "bef",
"Bench": "bcq",
"Bende": "bdp",
"Bendi": "bct",
"Beneraf": "bnv",
"Beng": "nhb",
"Benga": "bng",
"Bengal Kuno": "inc-obn",
"Bengal Pertengahan": "inc-mbn",
"Benggali": "bn",
"Benggoi": "bgy",
"Bengkala Sign Language": "bqy",
"Bentong": "bnu",
"Benyadu'": "byd",
"Beothuk": "bue",
"Bepour": "bie",
"Bera": "brf",
"Berakou": "bxv",
"Berawan": "lod",
"Berber Saharan Utara": "mzb",
"Bergish": "gmw-bgh",
"Berik": "bkl",
"Berinomo": "bit",
"Berom": "bom",
"Berta": "wti",
"Berti": "byt",
"Besisi": "mhe",
"Besme": "bes",
"Besoa": "bep",
"Betaf": "bfe",
"Betawi": "bew",
"Bete": "byf",
"Bete-Bendi": "btt",
"Betoi": "sai-bet",
"Bezhta": "kap",
"Bhadrawahi": "bhd",
"Bhalay": "bhx",
"Bharia": "bha",
"Bhatri": "bgw",
"Bhattiyali": "bht",
"Bhaya": "bhe",
"Bhele": "bhy",
"Bhilali": "bhi",
"Bhili": "bhb",
"Bhojpur": "bho",
"Bhunjia": "bhu",
"Biafada": "bif",
"Biage": "bdf",
"Biak": "bhw",
"Biali": "beh",
"Bian Marind": "bpv",
"Biangai": "big",
"Biao": "byk",
"Biao Mon": "bmt",
"Biao-Jiao Mien": "bje",
"Bibaali": "bcn",
"Bibbulman": "xbp",
"Bicolano Catanduanes Selatan": "bln",
"Bicolano Catanduanes Utara": "cts",
"Bicolano Iriga": "bto",
"Bidayuh Bau": "sne",
"Bidayuh Biatah": "bth",
"Bidayuh Bukar-Sadong": "sdo",
"Bidiyo": "bid",
"Bidyara": "bym",
"Bidyogo": "bjg",
"Biem": "bmc",
"Bierebo": "bnk",
"Bieria": "brj",
"Biete": "biu",
"Big Nambas": "nmb",
"Biga": "bhc",
"Bigambal": "xbe",
"Bih": "ibh",
"Bihari": "bh",
"Bijori": "bix",
"Bikaru": "bic",
"Bikol Libon": "lbl",
"Bikol Miraya": "rbl",
"Bikol Miraya Barat": "fbl",
"Bikol Tengah": "bcl",
"Bikya": "byb",
"Bila": "bip",
"Bilakura": "bql",
"Bilaspuri": "kfs",
"Bilba": "bpz",
"Bilbil": "brz",
"Bile": "bil",
"Biliau": "bcu",
"Biloxi": "bll",
"Bilua": "blb",
"Bilur": "bxf",
"Bima": "bhp",
"Bimin": "bhl",
"Bimoba": "bim",
"Bina": "bmn",
"Binahari": "bxz",
"Binandere": "bhg",
"Binawa": "byj",
"Bindal": "xbd",
"Bine": "bon",
"Binji": "bpj",
"Binongan Itneg": "itb",
"Bintauna": "bne",
"Binukid": "bkd",
"Binumarien": "bjr",
"Bipi": "biq",
"Birao": "brr",
"Birgid": "brk",
"Birgit": "btf",
"Birhor": "biy",
"Biri": "bzr",
"Birifor Selatan": "biv",
"Biritai": "bqq",
"Birri": "bvq",
"Birrpayi": "xbj",
"Birwa": "brl",
"Bisaya Brunei": "bsb",
"Bisaya Sabah": "bsy",
"Biseni": "ije",
"Bishnupriya Manipuri": "bpy",
"Bishuo": "bwh",
"Bisis": "bnw",
"Bislama": "bi",
"Bisorio": "bir",
"Bissa": "bib",
"Bisu": "bzi",
"Bit": "bgk",
"Bitare": "brt",
"Bitur": "mcc",
"Biwat": "bwm",
"Biyo": "byo",
"Biyom": "bpm",
"Blablanga": "blp",
"Blackfoot": "bla",
"Blafe": "bfh",
"Blagar": "beu",
"Blang": "blr",
"Blin": "byn",
"Bo": "bgl",
"Bo-Rukul": "mae",
"Bo-Ung": "mux",
"Boano (Maluku)": "bzn",
"Boano (Sulawesi)": "bzl",
"Bobo Selatan": "bwq",
"Bobongko": "bgb",
"Bobot": "bty",
"Bodo (Central Africa)": "boy",
"Bodo (India)": "brx",
"Bodo Parja": "bdv",
"Bofi": "bff",
"Boga": "bvw",
"Bogaya": "boq",
"Boghom": "bux",
"Boguru": "bqu",
"Boikin": "bzf",
"Bokar": "sit-bok",
"Bokha": "ybk",
"Bokmål Norway": "nb",
"Boko": "bqc",
"Bokobaru": "bus",
"Bokoto": "bdt",
"Bokyi": "bky",
"Bola": "bnp",
"Bolak": "art-blk",
"Bolango": "bld",
"Bole": "bol",
"Bolgo": "bvo",
"Bolia": "bli",
"Bolinao": "smk",
"Bolivian Sign Language": "bvl",
"Boloki": "bkt",
"Bolon": "bof",
"Bolondo": "bzm",
"Bolongan": "blj",
"Bolyu": "ply",
"Bom": "bmf",
"Boma Nkuu": "bnt-bon",
"Boma Selatan": "bnt-sbo",
"Boma Utara": "boh",
"Boma Yumu": "bnt-boy",
"Bomboli": "bml",
"Bomboma": "bws",
"Bomitaba": "zmx",
"Bomu": "bmq",
"Bomwali": "bmw",
"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",
"Bontoc Barat Daya": "vbk",
"Bontoc Selatan": "obk",
"Bontoc Tengah": "lbk",
"Bontoc Timur": "ebk",
"Bontoc Utara": "rbk",
"Bookan": "bnb",
"Boon": "bnl",
"Boor": "bvf",
"Bora": "boa",
"Boro": "xxb",
"Borong": "ksr",
"Boruca": "brn",
"Borôro": "bor",
"Boselewa": "bwf",
"Bosngun": "bqs",
"Bote-Majhi": "bmj",
"Botlikh": "bph",
"Botolan Sambal": "sbl",
"Bourbonnais-Berrichon": "roa-bbn",
"Bourguignon": "roa-brg",
"Bouyei": "pcc",
"Bozaba": "bzo",
"Bragat": "aof",
"Brahui": "brh",
"Braj": "bra",
"Brazilian Sign Language": "bzs",
"Brem": "buq",
"Breri": "brq",
"Breton": "br",
"Breton Kuno": "obt",
"Breton Pertengahan": "xbm",
"Bribri": "bzd",
"British Sign Language": "bfi",
"Brokkat": "bro",
"Brokpake": "sgt",
"Brokskat": "bkk",
"Broome Pearling Lugger Pidgin": "bpl",
"Bru Barat": "brv",
"Bru Timur": "bru",
"Bu": "jid",
"Bu-Nao Bunu": "bwx",
"Bua": "bub",
"Buamu": "box",
"Bube": "bvb",
"Bubi": "buw",
"Bubia": "bbx",
"Budeh Stieng": "stt",
"Budibud": "btp",
"Budong-Budong": "bdx",
"Budu": "buu",
"Budukh": "bdk",
"Buduma": "bdm",
"Budza": "bja",
"Bugan": "bbh",
"Bughotu": "bgt",
"Bugis": "bug",
"Buglere": "sab",
"Bugun": "bgg",
"Buhi'non Bikol": "ubl",
"Buhid": "bku",
"Buhutu": "bxh",
"Bujhyal": "byh",
"Bukat": "bvk",
"Bukawa": "buk",
"Bukhari": "bhh",
"Bukitan": "bkn",
"Bukiyip": "ape",
"Buksa": "tkb",
"Bukusu": "bxk",
"Bulgar": "xbo",
"Bulgaria": "bg",
"Bulgarian Sign Language": "bqn",
"Bulgebi": "bmp",
"Buli (Ghana)": "bwu",
"Buli (Indonesia)": "bzq",
"Bulo Stieng": "sti",
"Bulu (Cameroon)": "bum",
"Bulu (New Guinea)": "bjl",
"Bum": "bmv",
"Bumaji": "byp",
"Bumang": "bvp",
"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",
"Burak": "bys",
"Buraka": "bkg",
"Burarra": "bvr",
"Burate": "bti",
"Burduna": "bxn",
"Bure": "bvh",
"Burgundia": "gme-bur",
"Burji": "bji",
"Burma": "my",
"Burma Kuno": "obr",
"Burmeso": "bzu",
"Buru (Indonesia)": "mhs",
"Buru (Nigeria)": "bqw",
"Burui": "bry",
"Burumakok": "aip",
"Burun": "bdi",
"Burunge": "bds",
"Burushaski": "bsk",
"Burusu": "bqr",
"Buruwai": "asi",
"Buryat": "bua",
"Busa": "bqp",
"Busam": "bxs",
"Busami": "bsm",
"Busang Kayan": "bfg",
"Bushoong": "buf",
"Buso": "bso",
"Busoa": "bup",
"Bussa": "dox",
"Busuu": "bju",
"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",
"Bwela": "bwl",
"Bwile": "bwc",
"Bwisi": "bwz",
"Byangsi": "bee",
"Byep": "mkk",
"Bädi Kanum": "khd",
"Caac": "msq",
"Cabiyarí": "cbb",
"Cabre": "awd-cab",
"Cabécar": "cjp",
"Cacaopera": "ccr",
"Cacua": "cbv",
"Cacán": "sai-cac",
"Caddo": "cad",
"Cafundó": "ccd",
"Cahuarano": "cah",
"Cahuilla": "chl",
"Caijia": "sit-cai",
"Caka": "ckx",
"Cakchiquel-Quiché Mixed Language": "ckz",
"Cakfem-Mushere": "cky",
"Calamian Tagbanwa": "tbk",
"Callawalla": "caw",
"Calusa": "nai-cal",
"Caluyanun": "clu",
"Caló": "rmq",
"Cam Barat": "cja",
"Cam Timur": "cjm",
"Campalagian": "cml",
"Camsá": "kbh",
"Camtho": "cmt",
"Camunic": "xcc",
"Candoshi-Shapra": "cbu",
"Canela": "ram",
"Canichana": "caz",
"Cantabrian": "roa-can",
"Cao Miao": "cov",
"Caolan": "mlc",
"Capanahua": "kaq",
"Capiznon": "cps",
"Caquinte": "cot",
"Car Nicobarese": "caq",
"Cara": "cfd",
"Carabayo": "cby",
"Caramanta": "crf",
"Caranqui": "sai-caq",
"Carapana": "cbc",
"Carian": "xcr",
"Cariay": "awd-kar",
"Carijona": "cbd",
"Carolinian": "cal",
"Carrier": "crx",
"Carrier Selatan": "caf",
"Cashibo-Cacataibo": "cbr",
"Cashinahua": "cbs",
"Catacao": "sai-cat",
"Catalan": "ca",
"Catalan Kuno": "roa-oca",
"Catalan Sign Language": "csc",
"Catawba": "chc",
"Catuquinaru": "sai-ctq",
"Catío Chibcha": "cba-cat",
"Cauca": "cca",
"Cavineña": "cav",
"Cayubaba": "cyb",
"Cayuga": "cay",
"Cayuse": "xcy",
"Cazcan": "azc-caz",
"Cañari": "sai-cnr",
"Cebaara Senoufo": "sef",
"Cebuano": "ceb",
"Celtiberian": "xce",
"Cemuhî": "cam",
"Cen": "cen",
"Central Palawano": "plc",
"Centúúm": "cet",
"Cerma": "cme",
"Ch'olti'": "myn-chl",
"Ch'orti'": "caa",
"Chaap Wuurong": "tjw",
"Chachi": "cbi",
"Chadong": "cdy",
"Chagatai": "chg",
"Chaha": "sem-cha",
"Chaima": "ciy",
"Chairel": "sit-cha",
"Chak": "ckh",
"Chakali": "cli",
"Chakma": "ccp",
"Chala": "cll",
"Chaldean Neo-Aramaic": "cld",
"Chali": "tgf",
"Chamacoco": "ceg",
"Chamalal": "cji",
"Chamba Daka": "ccg",
"Chamba Leko": "ndi",
"Chambeali": "cdh",
"Chambri": "can",
"Chamicuro": "ccc",
"Chamling": "rab",
"Chamorro": "ch",
"Champenois": "roa-cha",
"Chang": "nbc",
"Changriwa": "cga",
"Changthang": "cna",
"Chantyal": "chx",
"Chaná": "sai-chn",
"Chané": "caj",
"Chapacura": "sai-chp",
"Chara": "cra",
"Charrua": "sai-chr",
"Chatino San Juan Quiahije": "omq-sjq",
"Chatino Tanah Tinggi Barat": "ctp",
"Chatino Tanah Tinggi Timur": "cly",
"Chatino Teojomulco": "omq-teo",
"Chaudangsi": "cdn",
"Chaura": "crv",
"Chavacano": "cbk",
"Chayahuita": "cbt",
"Chazumba Mixtec": "xtb",
"Che": "ruk",
"Chechen": "ce",
"Cheke Holo": "mrn",
"Chemakum": "xch",
"Chenapian": "cjn",
"Chenchu": "cde",
"Chenoua": "cnu",
"Chepang": "cdm",
"Chepya": "ycp",
"Cherepon": "cpn",
"Cherokee": "chr",
"Chesu": "ych",
"Chetco-Tolowa": "ctc",
"Chewong": "cwg",
"Cheyenne": "chy",
"Chhattisgarhi": "hne",
"Chhintange": "ctn",
"Chhulung": "cur",
"Chiangmai Sign Language": "csd",
"Chiapanec": "cip",
"Chibcha": "chb",
"Chicahuaxtla Triqui": "trs",
"Chichewa": "ny",
"Chichicapan Zapotec": "zpv",
"Chichimeca-Jonaz": "pei",
"Chichonyi-Chidzihana-Chikauma": "coh",
"Chickasaw": "cic",
"Chicomuceltec": "cob",
"Chiduruma": "dug",
"Chilcotin": "clc",
"Chilean Sign Language": "csg",
"Chilisso": "clh",
"Chiltepec Chinantec": "csa",
"Chimalapa Zoque": "zoh",
"Chimariko": "cid",
"Chimila": "cbg",
"Chimwiini": "bnt-cmw",
"Chin Asho": "csh",
"Chin Bawm": "bgr",
"Chin Bualkhaw": "cbl",
"Chin Chinbon": "cnb",
"Chin Daai": "dao",
"Chin Falam": "cfm",
"Chin Kaang": "ckn",
"Chin Khumi": "cnk",
"Chin Laitu": "clt",
"Chin Mara": "mrh",
"Chin Mro": "cmr",
"Chin Ngawn": "cnw",
"Chin Senthang": "sez",
"Chin Siyin": "csy",
"Chin Songlai": "csj",
"Chin Sumtu": "csv",
"Chin Tawr": "tcp",
"Chin Tedim": "ctd",
"Chin Thado": "tcz",
"Chin Thaiphum": "cth",
"Chin Zotung": "czt",
"Chinali": "cih",
"Chinese Sign Language": "csl",
"Chinook": "chh",
"Chinook Jargon": "chn",
"Chipaya": "cap",
"Chipewyan": "chp",
"Chiquimulilla": "nai-chi",
"Chiquitano": "cax",
"Chiricahua": "apm",
"Chirino": "sai-chi",
"Chiripá": "nhd",
"Chiru": "cdf",
"Chitimacha": "ctm",
"Chitkuli Kinnauri": "cik",
"Chittagong": "ctg",
"Chitwania Tharu": "the",
"Chiwere": "iow",
"Choapan Zapotec": "zpc",
"Chocangaca": "cgk",
"Chochotec": "coz",
"Choctaw": "cho",
"Chodri": "cdi",
"Chokwe": "cjk",
"Chol": "ctu",
"Cholón": "cht",
"Chong": "cog",
"Choni": "cda",
"Chono": "sai-cno",
"Chopi": "cce",
"Chrau": "crw",
"Chru": "cje",
"Chuabo": "chw",
"Chuanqiandian Cluster Miao": "cqd",
"Chuave": "cjv",
"Chug": "cvg",
"Chuj": "cac",
"Chuka": "cuh",
"Chukchi": "ckt",
"Chukwa": "cuw",
"Chulym": "clw",
"Chumburung": "ncu",
"Churahi": "cdj",
"Churuya": "sai-chu",
"Chut": "scb",
"Chuuk": "chk",
"Chuva": "xcv",
"Chuvash": "cv",
"Chácobo": "cao",
"Ci Gbe": "cib",
"Cia-Cia": "cia",
"Cibak": "ckl",
"Cicipu": "awc",
"Ciguayo": "nai-cig",
"Cimbrian": "cim",
"Cina": "zh",
"Cina Kuno": "och",
"Cina Pertengahan": "ltc",
"Cinda-Regi-Tiyal": "cdr",
"Cineni": "cie",
"Cinta Larga": "cin",
"Circassian Barat": "ady",
"Cishingini": "asg",
"Citak": "txt",
"Ciwogai": "tgd",
"Coahuilteco": "xcw",
"Coatlán Zapotec": "zps",
"Cocama": "cod",
"Cochimi": "coj",
"Cocopa": "coc",
"Coeruna": "sai-coe",
"Coeur d'Alene": "crd",
"Cofán": "con",
"Cogui": "kog",
"Col": "liw",
"Colombian Sign Language": "csn",
"Columbia-Wenatchi": "col",
"Colán": "sai-col",
"Comaltepec Chinantec": "cco",
"Comanche": "com",
"Comechingon": "sai-cmg",
"Comecrudo": "xcm",
"Communicationssprache": "art-com",
"Como Karim": "cfg",
"Comoros Maore": "swb",
"Comoros Ngazidja": "zdj",
"Comox": "coo",
"Con": "cno",
"Coos": "csz",
"Copainalá Zoque": "zoc",
"Copala Triqui": "trc",
"Copallén": "sai-cop",
"Coquille": "coq",
"Cora": "crn",
"Cori": "cry",
"Cornish": "kw",
"Cornwall Kuno": "oco",
"Cornwall Pertengahan": "cnx",
"Coroado Puri": "sai-crd",
"Corsica": "co",
"Costa Rican Sign Language": "csr",
"Cotoname": "xcn",
"Cowlitz": "cow",
"Coyaima": "coy",
"Coyotepec Popoloca": "pbf",
"Coyutla Totonac": "toc",
"Cree": "cr",
"Cree Moose": "crm",
"Cree Timur Selatan": "crj",
"Cree Timur Utara": "crl",
"Creek": "mus",
"Crow": "cro",
"Cruzeño": "crz",
"Cua": "cua",
"Cuban Sign Language": "csf",
"Cubeo": "cub",
"Cueva": "sai-cva",
"Cuiba": "cui",
"Cuitlatec": "cuy",
"Culina": "cul",
"Culli": "sai-cul",
"Cumanagoto": "cuo",
"Cumbric": "xcb",
"Cun": "cuq",
"Cung": "cug",
"Cupeño": "cup",
"Curonian": "xcu",
"Curripaco": "kpc",
"Cutchi-Swahili": "ccl",
"Cuvok": "cuv",
"Cuyunon": "cyo",
"Cwi Bwamu": "bwy",
"Czech": "cs",
"Czech Kuno": "zlw-ocs",
"Czech Sign Language": "cse",
"Cốông": "cnc",
"Da'a Kaili": "kzf",
"Daantanai'": "lni",
"Daasanach": "dsh",
"Daba": "dbq",
"Dabarre": "dbr",
"Dabe": "dbe",
"Dacian": "xdc",
"Dadan": "sem-dad",
"Dadi Dadi": "dda",
"Dadibi": "mps",
"Dadiya": "dbd",
"Daga": "dgz",
"Dagaare Selatan": "dga",
"Dagaari Dioula": "dgd",
"Dagara Utara": "dgi",
"Dagba": "dgk",
"Dagbani": "dag",
"Dagik": "dec",
"Dagoman": "dgn",
"Dahalik": "dlk",
"Dahalo": "dal",
"Daho-Doo": "das",
"Dai": "dij",
"Dair": "drb",
"Dakaka": "bpa",
"Dakka": "dkk",
"Dakota": "dak",
"Dakpa": "dka",
"Dalmatian": "dlm",
"Daloa Bété": "bev",
"Dama (Nigeria)": "dmm",
"Dama (Sierra Leone)": "dmn-dam",
"Damakawa": "dam",
"Damal": "uhn",
"Damar Barat": "drn",
"Damar Timur": "dmr",
"Dambi": "dac",
"Dameli": "dml",
"Dampelas": "dms",
"Dan": "dnj",
"Danaru": "dnr",
"Danau": "dnu",
"Dandami Maria": "daq",
"Dangaléat": "daa",
"Dangaura Tharu": "thl",
"Dani Barat": "dnw",
"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",
"Darumbal": "xgm",
"Dass": "dot",
"Datooga": "tcc",
"Daungwurrung": "dgw",
"Daur": "dta",
"Davawenyo": "daw",
"Dawawa": "dww",
"Dawera-Daweloor": "ddw",
"Dawro": "dwr",
"Day": "dai",
"Dayi": "dax",
"Dazaga": "dzg",
"Deccani": "dcc",
"Dedua": "ded",
"Defaka": "afn",
"Deg": "mzw",
"Deg Xinag": "ing",
"Degema": "deg",
"Degenan": "dge",
"Dehwari": "deh",
"Dek": "dek",
"Dela-Oenale": "row",
"Delo": "ntr",
"Dem": "dem",
"Dema": "dmx",
"Demisa": "dei",
"Demta": "dmy",
"Dena'ina": "tfn",
"Dendi": "ddn",
"Dengese": "dez",
"Dengka": "dnk",
"Denmark": "da",
"Denmark Kuno": "gmq-oda",
"Denmark Pengembara": "rmd",
"Deno": "dbb",
"Denya": "anv",
"Dení": "dny",
"Deori": "der",
"Desano": "des",
"Desiya": "dso",
"Dewas Rai": "dwz",
"Dewoin": "dee",
"Dezfuli": "def",
"Dghwede": "dgh",
"Dhaiso": "dhs",
"Dhalandji": "dhl",
"Dhangu": "dhg",
"Dhanki": "dhn",
"Dhao": "nfa",
"Dharug": "xdk",
"Dhatki": "mki",
"Dhimal": "dhi",
"Dhivehi": "dv",
"Dhodia": "dho",
"Dhudhuroa": "ddr",
"Dhungaloo": "dhx",
"Dhurga": "dhu",
"Dhuwal": "dwu",
"Dhuwaya": "dwy",
"Dia": "dia",
"Dibiyaso": "dby",
"Dibo": "dio",
"Didinga": "did",
"Dieri": "dif",
"Digo": "dig",
"Dii": "dur",
"Dijim-Bwilim": "cfa",
"Dilling": "dil",
"Dima": "jma",
"Dimasa": "dis",
"Dimbong": "dii",
"Dime": "dim",
"Dineor": "mrx",
"Ding": "diz",
"Dinka": "din",
"Dinka Barat Daya": "dik",
"Dinka Barat Laut": "diw",
"Dinka Tengah Selatan": "dib",
"Dinka Tenggara": "dks",
"Dinka Timur Laut": "dip",
"Diodio": "ddi",
"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",
"Dogon Ampari": "aqd",
"Dogon Nanga Dama": "nzz",
"Dogoso": "dgs",
"Dogosé": "dos",
"Dogri": "doi",
"Dogrib": "dgr",
"Dogul Dom": "dbg",
"Doka": "dbi",
"Doko-Uyanga": "uya",
"Dolgan": "dlg",
"Dom": "doa",
"Domaaki": "dmk",
"Domari": "rmt",
"Dominican Sign Language": "doq",
"Dompo": "doy",
"Domu": "dof",
"Domung": "dev",
"Dondo": "dok",
"Dong": "doh",
"Dongo": "doo",
"Dongolawi": "kzh",
"Dongotono": "ddd",
"Dongshanba Lalo": "yik",
"Dongxiang": "sce",
"Donno So Dogon": "dds",
"Doondo": "dde",
"Dorasque": "cba-dor",
"Dori'o": "dor",
"Dorig": "wwo",
"Doromu-Koki": "kqc",
"Dorze": "doz",
"Doso": "dol",
"Doteli": "dty",
"Dothraki": "art-dtk",
"Doura": "don",
"Doutai": "tds",
"Doyayo": "dow",
"Drehu": "dhv",
"Drung": "duu",
"Duala": "dua",
"Duano": "dup",
"Duau": "dva",
"Dubli": "dub",
"Dubu": "dmu",
"Dugun": "ndu",
"Duguri": "dbm",
"Dugwor": "dme",
"Duhwa": "kbz",
"Duit": "cba-dui",
"Duke": "nke",
"Dukhan": "trk-dkh",
"Dulbu": "dbo",
"Duli": "duz",
"Duma": "dma",
"Dumait": "sem-dum",
"Dumbea": "duf",
"Dumi": "dus",
"Dumpas": "dmv",
"Dumun": "dui",
"Duna": "duc",
"Dungan": "dng",
"Dungmali": "raa",
"Dungra Bhil": "duh",
"Dungu": "dbv",
"Dura": "drq",
"Duri": "mvp",
"Duriankere": "dbn",
"Duruwa": "pci",
"Dusner": "dsn",
"Dusun Deyah": "dun",
"Dusun Malang": "duq",
"Dusun Sugut": "kzs",
"Dusun Tambunan": "kzt",
"Dusun Witu": "duw",
"Dutch Sign Language": "dse",
"Duun": "dux",
"Duupa": "dae",
"Duvle": "duv",
"Duwai": "dbp",
"Dwang": "nnu",
"Dyaabugay": "dyy",
"Dyaberdyaber": "dyb",
"Dyan": "dya",
"Dyangadi": "dyn",
"Dyirbal": "dbl",
"Dyugun": "dyd",
"Dyula": "dyu",
"Dza": "jen",
"Dzala": "dzl",
"Dzando": "dzn",
"Dzao Min": "bpn",
"Dzodinka": "add",
"Dzongkha": "dz",
"Dzuun": "dnn",
"Dâw": "kwa",
"E": "eee",
"E'ma Buyang": "yzg",
"Eastern Canadian Inuktitut": "ike",
"Ebira": "igb",
"Ebla": "xeb",
"Ebrié": "ebr",
"Ebughu": "ebg",
"Ede Cabe": "cbj",
"Ede Ica": "ica",
"Ede Idaca": "idd",
"Ede Ije": "ijj",
"Ede Nago": "nqg",
"Edo": "bin",
"Edolo": "etr",
"Edom": "xdm",
"Edopi": "dbf",
"Efai": "efa",
"Efate Selatan": "erk",
"Efate Utara": "llp",
"Efe": "efe",
"Efik": "efi",
"Efutop": "ofu",
"Ega": "ega",
"Eggon": "ego",
"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",
"Elam": "elx",
"Eleme": "elm",
"Elepi": "ele",
"Elip": "ekm",
"Elkei": "elk",
"Eloi": "art-elo",
"Elotepec Zapotec": "zte",
"Eloyi": "afo",
"Elseng": "mrf",
"Elu": "elu",
"Elymi": "xly",
"Emae": "mmw",
"Emai": "ema",
"Eman": "emn",
"Embaloh": "emb",
"Emberá Utara": "emp",
"Emberá-Baudó": "bdc",
"Emberá-Catío": "cto",
"Emberá-Chamí": "cmi",
"Emberá-Tadó": "tdc",
"Embu": "ebu",
"Emem": "enr",
"Emerillon": "eme",
"Emilian": "egl",
"Emplawas": "emw",
"En": "enc",
"Enawené-Nawé": "unk",
"Ende": "end",
"Enets Hutan": "enf",
"Enets Tundra": "enh",
"Enga": "enq",
"Engenni": "enn",
"Enggano": "eno",
"Enlhet": "enl",
"Enrekang": "ptt",
"Enu": "enu",
"Enwan": "env",
"Enwang": "enw",
"Enxet": "enx",
"Eotile": "eot",
"Epena": "sja",
"Epi-Olmec": "xep",
"Epie": "epi",
"Eravallan": "era",
"Erave": "kjy",
"Ere": "twp",
"Erie": "iro-ere",
"Eritai": "ert",
"Erokwanas": "erw",
"Erre": "err",
"Erromintxela": "emx",
"Ersu": "ers",
"Eruwa": "erh",
"Erzya": "myv",
"Esan": "ish",
"Ese": "mcq",
"Ese Ejja": "ese",
"Eshtehardi": "esh",
"Esimbi": "ags",
"Eskayan": "esy",
"Esmeralda": "sai-esm",
"Esperanto": "eo",
"Esselen": "esq",
"Estonia": "et",
"Esuma": "esm",
"Etchemin": "etc",
"Etebi": "etb",
"Eten": "etx",
"Eteocretan": "ecr",
"Eteocypriot": "ecy",
"Etkywan": "ich",
"Eton (Cameroon)": "eto",
"Eton (Vanuatu)": "etn",
"Etruria": "ett",
"Etulo": "utr",
"Evant": "bzz",
"Even": "eve",
"Evenki": "evn",
"Ewage-Notu": "nou",
"Ewarhuyana": "sai-ewa",
"Ewe": "ee",
"Ewondo": "ewo",
"Extremaduran": "ext",
"Eyak": "eya",
"Ezaa": "eza",
"Fagani": "faf",
"Faifi": "fif",
"Faiwol": "fai",
"Fala": "fax",
"Fali": "fli",
"Fali Baissa": "fah",
"Fali Selatan": "fal",
"Fali Utara": "fll",
"Falisci": "xfa",
"Fam": "fam",
"Fanagalo": "fng",
"Fanamaket": "bjp",
"Fang (Bantu)": "fan",
"Fang (Beboid)": "fak",
"Fania": "fni",
"Faroe": "fo",
"Fars Barat Daya": "fay",
"Fars Barat Laut": "faz",
"Fas": "fqs",
"Fasu": "faa",
"Fataleka": "far",
"Fataluku": "ddg",
"Fayu": "fau",
"Fe'fe'": "fmp",
"Fedan": "pdn",
"Fembe": "agl",
"Fer": "kah",
"Feroge": "fer",
"Fiji": "fj",
"Fiji Barat": "wyy",
"Filistin": "mis-phi",
"Filomena Mata-Coahuitlán Totonac": "tlp",
"Fingallian": "gmw-fin",
"Finisterre Yau": "yuw",
"Finland": "fi",
"Finongan": "fag",
"Fipa": "fip",
"Firan": "fir",
"Fiwaga": "fiw",
"Flemish Barat": "vls",
"Flemish Sign Language": "vgt",
"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",
"Fortsenal": "frt",
"Fox": "sac",
"Franc-Comtois": "roa-fcm",
"Francisco León Zoque": "zos",
"Franco-Provençal": "frp",
"Franconia Rhine": "gmw-rfr",
"Franconia Tengah": "gmw-cfr",
"Franconia Timur": "vmf",
"French Belgian Sign Language": "sfb",
"Frisia Barat": "fy",
"Frisia Kuno": "ofs",
"Frisia Saterland": "stq",
"Frisia Utara": "frr",
"Friulian": "fur",
"Fula": "ff",
"Fuliiru": "flr",
"Fulniô": "fun",
"Fum": "fum",
"Fungwa": "ula",
"Fur": "fvr",
"Furu": "fuu",
"Futuna Timur": "fud",
"Futuna-Aniwa": "fut",
"Fuyug": "fuy",
"Fwe": "fwe",
"Fwâi": "fwa",
"Fyam": "pym",
"Fyer": "fie",
"Gaa": "ttb",
"Gaam": "tbi",
"Gabadi": "kbt",
"Gabrielino-Fernandeño": "xgf",
"Gaelik Scotland": "gd",
"Gagnoa Bété": "btg",
"Gahri": "bfu",
"Galatia": "xga",
"Galicia": "gl",
"Galicia-Portugis Kuno": "roa-opt",
"Galindan": "xgl",
"Gallaecian": "cel-gal",
"Gallo": "roa-gal",
"Gallo-Itali Basilicata": "roa-gib",
"Gallo-Itali Sicily": "roa-gis",
"Gallura": "sdn",
"Galo": "adl",
"Gamale Kham": "kgj",
"Gamela": "sai-gam",
"Gamilaraay": "kld",
"Gamo-Ningi": "bte",
"Gandhari": "pgd",
"Gane": "gzn",
"Ganza": "gza",
"Gapapaiwa": "pwg",
"Garawa": "wrk",
"Garifuna": "cab",
"Garingbal": "xgi",
"Garus": "gyb",
"Garza": "xgr",
"Gaul": "cel-gau",
"Gavak": "dmc",
"Gavião Pará": "gvp",
"Gavião do Jiparaná": "gvo",
"Gawar-Bati": "gwt",
"Gawwada": "gwd",
"Gayil": "gyl",
"Gayón": "sai-gay",
"Gbaya Barat Laut": "gya",
"Gbayi": "gyg",
"Gbe Kotafon": "kqk",
"Gbe Xwla Barat": "xwl",
"Gbin": "xgb",
"Gciriku": "diu",
"Gcwi": "gwj",
"Ge": "hmj",
"Gedeo": "drs",
"Gela": "nlg",
"Gele'": "sbc",
"Georgia": "ka",
"Georgia Kuno": "oge",
"Gepo": "ygp",
"Geshiza": "ero-gsz",
"Ghayavi": "bmk",
"Ghomala'": "bbj",
"Ghotuo": "aaa",
"Giangan": "bgi",
"Gikyode": "acd",
"Gimme": "kmp",
"Girawa": "bbr",
"Giryama": "nyf",
"Gizrra": "tof",
"Glio-Oubi": "oub",
"Glosa": "igs",
"Goa'uld": "art-gld",
"Goemai": "ank",
"Goguryeo": "zkg",
"Gokhy": "tbq-gkh",
"Golin": "gvf",
"Golpa": "lja",
"Gong": "ugo",
"Goreng": "xgg",
"Goth Crimea": "gme-cgo",
"Gottscheerish": "gmw-gts",
"Gowro": "gwf",
"Grangali": "nli",
"Grass Koiari": "kbk",
"Greek": "el",
"Greek Calabria": "grk-cal",
"Greek Italiot": "grk-ita",
"Greek Mariupol": "grk-mar",
"Greenland": "kl",
"Gros Ventre": "ats",
"Gua": "gwx",
"Guachí": "sai-gua",
"Guajá": "gvj",
"Guamo": "sai-gmo",
"Guarani Klasik": "gn-cls",
"Guarayu": "gyr",
"Guazacapán": "nai-guz",
"Gudang": "xgd",
"Gudanji": "nji",
"Guevea de Humboldt Zapotec": "zpg",
"Gugu Warra": "wrw",
"Guiberoua Bété": "bet",
"Guinau": "awd-gnu",
"Guinea-Bissau Sign Language": "lgs",
"Gujarati Kuno": "inc-ogu",
"Gujarati Pertengahan": "inc-mgu",
"Gujerat": "gu",
"Gulay": "gvl",
"Gumawana": "gvs",
"Gundungurra": "xrd",
"Gungabula": "gyf",
"Gungu": "rub",
"Gunu": "yas",
"Gunya": "gyy",
"Gur Lama": "las",
"Gurani": "hac",
"Gurmana": "gvm",
"Gurung": "gvr",
"Gutnish": "gmq-gut",
"Gutnish Kuno": "gmq-ogt",
"Guugu Yimidhirr": "kky",
"Guwa": "xgw",
"Guwamu": "gwu",
"Guwar": "aus-guw",
"Guyani": "gvy",
"Gvoko": "ngs",
"Gwa": "gwb",
"Gwahatike": "dah",
"Gwak": "jgk",
"Gwamhi-Wuri": "bga",
"Gwandara": "gwn",
"Gwara": "alv-gwa",
"Gweno": "gwe",
"Gwere": "gwr",
"Gwich'in": "gwi",
"Gyalsumdo": "gyo",
"Gyele": "gyi",
"Gyem": "gye",
"Güenoa": "sai-gue",
"Habu": "hbu",
"Hachijō": "jpx-hcj",
"Hadiyya": "hdy",
"Hadothi": "hoj",
"Hadrami": "xhd",
"Hadza": "hts",
"Haeke": "aek",
"Hahon": "hah",
"Haida": "hai",
"Haida Selatan": "hax",
"Haida Utara": "hdn",
"Haigwai": "hgw",
"Hainyaxo Bozo": "bzx",
"Haisla": "has",
"Haitian Vodoun Culture Language": "hvc",
"Haiǁom": "hgm",
"Haji": "hji",
"Hajong": "haj",
"Hakka": "hak",
"Hakö": "hao",
"Halang": "hal",
"Halang Doan": "hld",
"Halbi": "hlb",
"Halia": "hla",
"Halkomelem": "hur",
"Hamap": "hmu",
"Hamba": "hba",
"Hamer-Banna": "amf",
"Hamtai": "hmt",
"Hanga": "hag",
"Hanga Hundi": "wos",
"Hani": "hni",
"Hanunoo": "hnn",
"Harami": "xha",
"Harari": "har",
"Haraza": "nub-har",
"Harijan Kinnauri": "kjo",
"Haroi": "hro",
"Harsusi": "hss",
"Haruai": "tmd",
"Haruku": "hrk",
"Haryanvi": "bgc",
"Harzani": "hrz",
"Hasait": "sem-has",
"Hasha": "ybj",
"Hatam": "had",
"Hatti": "xht",
"Hausa": "ha",
"Haush": "sai-hau",
"Havasupai-Walapai-Yavapai": "yuf",
"Haveke": "hvk",
"Havu": "hav",
"Hawai'i Pidgin Sign Language": "hps",
"Hawaii": "haw",
"Haya": "hay",
"Hdi": "xed",
"Hehe": "heh",
"Heiban": "hbn",
"Heiltsuk": "hei",
"Helong": "heg",
"Hema": "nix",
"Hemba": "hem",
"Hember Avu": "mmi",
"Herdé": "hed",
"Herero": "hz",
"Hermit": "llf",
"Hernican": "xhr",
"Het": "hit",
"Hewa": "ham",
"Heyo": "auk",
"Hibito": "hib",
"Hidatsa": "hid",
"Higaonon": "mba",
"Highland Konjo": "kjk",
"Highland Oaxaca Chontal": "chd",
"Highland Popoluca": "poi",
"Highland Totonac": "tos",
"Hijuk": "hij",
"Hiligaynon": "hil",
"Himarimã": "hir",
"Hindi": "hi",
"Hindi Dogri": "dgo",
"Hindi Fiji": "hif",
"Hindi Kreol Andaman": "hca",
"Hindi Kuno": "inc-ohi",
"Hindko Selatan": "hnd",
"Hindko Utara": "hno",
"Hinduri": "hii",
"Hindustan Caribbean": "hns",
"Hiri Motu": "ho",
"Hisma": "sem-his",
"Hitchiti": "nai-hit",
"Hitu": "htu",
"Hiw": "hiw",
"Hixkaryana": "hix",
"Hlai": "lic",
"Hlepho Phowa": "yhl",
"Hlersu": "hle",
"Hmar": "hmr",
"Hmong Don": "hmf",
"Hmong Dô": "hmv",
"Hmong Guiyang Barat Daya": "hmg",
"Hmong Guiyang Selatan": "hmy",
"Hmong Guiyang Utara": "huj",
"Hmong Hijau": "hnj",
"Hmong Huishui Barat Daya": "hmh",
"Hmong Huishui Tengah": "hmc",
"Hmong Huishui Timur": "hme",
"Hmong Huishui Utara": "hmi",
"Hmong Luopohe": "hml",
"Hmong Mashan Barat": "hmw",
"Hmong Mashan Selatan": "hma",
"Hmong Mashan Tengah": "hmm",
"Hmong Mashan Utara": "hmp",
"Hmong Putih": "mww",
"Hmong Shua": "hmz",
"Hmwaveke": "mrk",
"Ho": "hoc",
"Ho Chi Minh City Sign Language": "hos",
"Hoava": "hoa",
"Hobyót": "hoh",
"Hoia Hoia": "hhi",
"Hokkien": "nan-hbl",
"Hokkien Peranakan Kelantan": "mis-hkl",
"Holikachuk": "hoi",
"Holiya": "hoy",
"Holma": "hod",
"Holoholo": "hoo",
"Holu": "hol",
"Homa": "hom",
"Hone": "juh",
"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",
"Huave": "huv",
"Huba": "hbb",
"Huetar": "cba-hue",
"Huichol": "hch",
"Huilliche": "huh",
"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",
"Hungary": "hu",
"Hungary Kuno": "ohu",
"Hungworo": "nat",
"Hunjara-Kaina Ke": "hkk",
"Hunsrik": "hrx",
"Hunzib": "huz",
"Hupa": "hup",
"Hupdë": "jup",
"Hupla": "hap",
"Hurri": "xhu",
"Hwana": "hwo",
"Hya": "hya",
"Hyam": "jab",
"Hän": "haa",
"Hértevin": "hrt",
"I-Wak": "iwk",
"Iaai": "iai",
"Iamalele": "yml",
"Iatmul": "ian",
"Iau": "tmu",
"Ibali Teke": "tek",
"Ibaloi": "ibl",
"Iban": "iba",
"Ibanag": "ibg",
"Ibani": "iby",
"Ibatan": "ivb",
"Iberia": "xib",
"Ibibio": "ibb",
"Ibino": "ibn",
"Iboko": "bkp",
"Ibrani": "he",
"Ibrani Samaria": "smp",
"Ibu": "ibu",
"Ibuoro": "ibr",
"Iceland": "is",
"Iceve-Maci": "bec",
"Idahan": "dbj",
"Idakho-Isukha-Tiriki": "ida",
"Idaté": "idt",
"Idere": "ide",
"Idesa": "ids",
"Idi": "idi",
"Idiom Neutral": "mis-idn",
"Ido": "io",
"Idoma": "idu",
"Idon": "idc",
"Idu": "clk",
"Idun": "ldb",
"Iduna": "viv",
"Ifo": "iff",
"Ifè": "ife",
"Igala": "igl",
"Igana": "igg",
"Igbo": "ig",
"Igede": "ige",
"Ignaciano": "ign",
"Igo": "ahl",
"Iguta": "nar",
"Igwe": "igw",
"Iha": "ihp",
"Ihievbe": "ihi",
"Ija-Zuba": "vki",
"Ik": "ikx",
"Ika": "ikk",
"Ikaranggal": "ikr",
"Ikizu": "ikz",
"Iko": "iki",
"Ikobi-Mena": "meb",
"Ikoma": "ntk",
"Ikpeng": "txi",
"Ikpeshi": "ikp",
"Ikposo": "kpo",
"Iku-Gora-Ankwa": "ikv",
"Ikulu": "ikl",
"Ikwere": "ikw",
"Ikwo": "iqw",
"Ila": "ilb",
"Ile Ape": "ila",
"Ilgar": "ilg",
"Ili Turki": "ili",
"Ili'uun": "ilu",
"Illyria": "xil",
"Ilocano": "ilo",
"Ilongot": "ilk",
"Ilue": "ilv",
"Ilwana": "mlk",
"Imbongu": "imo",
"Imonda": "imn",
"Imroing": "imr",
"Inabaknon": "abx",
"Inapang": "mzu",
"Indanga": "bnt-ind",
"Indo-Portugis": "idb",
"Indonesia": "id",
"Indri": "idr",
"Ineseño": "inz",
"Inga": "inb",
"Inggeris": "en",
"Inggeris Kreol Islander": "icr",
"Inggeris Kreol Tobago": "tgh",
"Inggeris Kreol Trinidad": "trf",
"Inggeris Kreol Turks dan Caicos": "tch",
"Inggeris Kreol Vincent": "svc",
"Inggeris Kuno": "ang",
"Inggeris Pertengahan": "enm",
"Inggeris Pijin Cina": "cpi",
"Ingria": "izh",
"Ingush": "inh",
"Inlaod Itneg": "iti",
"Inoke-Yate": "ino",
"Inonhan": "loc",
"Inor": "ior",
"Interlingua": "ia",
"Interlingue": "ie",
"International Sign": "ils",
"Interslavic": "isv",
"Intha": "int",
"Inuinnaqtun": "esx-inq",
"Inuktitut": "iu",
"Inuktun": "esx-ink",
"Inupiaq": "ik",
"Inuvialuktun": "ikt",
"Ipai": "nai-ipa",
"Ipiko": "ipo",
"Ipili": "ipi",
"Ipulo": "ass",
"Iquito": "iqu",
"Ir": "irr",
"Irantxe": "irn",
"Iranun": "ill",
"Iraqw": "irk",
"Irarutu": "irh",
"Iraya": "iry",
"Ireland": "ga",
"Ireland Kuno": "sga",
"Ireland Pertengahan": "mga",
"Iresim": "ire",
"Irula": "iru",
"Isabi": "isa",
"Isan": "tts",
"Isanzu": "isn",
"Isauria": "mis-isa",
"Isconahua": "isc",
"Isebe": "igo",
"Ishkashimi": "isk",
"Isinai": "inn",
"Isirawa": "srl",
"Isnag": "isd",
"Isoko": "iso",
"Istriot": "ist",
"Istro-Romania": "ruo",
"Isu": "isu",
"Isubu": "szv",
"Isyarat Kenya": "xki",
"Isyarat Maghribi": "xms",
"Isyarat Malaysia": "xml",
"Itali": "it",
"Itawit": "itv",
"Itelmen": "itl",
"Itene": "ite",
"Iteri": "itr",
"Itik": "itx",
"Ito": "itw",
"Itonama": "ito",
"Itsekiri": "its",
"Itu Mbon Uzo": "itm",
"Itzá": "itz",
"Iu Mien": "ium",
"Ivatan": "ivv",
"Iwaidja": "ibd",
"Iwal": "kbm",
"Iwam": "iwm",
"Iwur": "iwo",
"Ixcatec": "ixc",
"Ixil": "ixl",
"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",
"Jakaltek": "jac",
"Jakati": "jat",
"Jakun": "jak",
"Jalkunan": "bxl",
"Jamamadí": "jaa",
"Jaminjung": "djd",
"Jamsay": "djm",
"Jamtish": "gmq-jmk",
"Jandavra": "jnd",
"Janday": "jan",
"Jangkang": "djo",
"Jangshung": "jna",
"Janji": "jni",
"Japhug": "sit-jap",
"Japrería": "jru",
"Jaqaru": "jqr",
"Jara": "jaf",
"Jarai": "jra",
"Jarawa": "anq",
"Jaru": "ddj",
"Jassic": "ysc",
"Jaunsari": "jns",
"Javindo": "jvd",
"Jawa": "jv",
"Jawa Caribbean": "jvn",
"Jawa Kuno": "kaw",
"Jawa Ontong": "ojv",
"Jawe": "jaz",
"Jaya": "jyy",
"Jebero": "jeb",
"Jeh": "jeh",
"Jehai": "jhi",
"Jeikó": "sai-jko",
"Jeju": "jje",
"Jemez": "tow",
"Jenaama Bozo": "bze",
"Jeng": "jeg",
"Jennu Kurumba": "xuj",
"Jepun": "ja",
"Jepun Kuno": "ojp",
"Jere": "jer",
"Jeri Kuo": "jek",
"Jerman": "de",
"Jerman Pennsylvania": "pdc",
"Jerman Rendah": "nds",
"Jerman Tengah Timur": "gmw-ecg",
"Jerman Volga": "gmw-vog",
"Jerman Zipser": "gmw-zps",
"Jeru": "akj",
"Jerung": "jee",
"Jiamao": "jio",
"Jiba": "juo",
"Jibu": "jib",
"Jicaque Barat": "nai-wji",
"Jicarilla": "apj",
"Jie": "mis-jie",
"Jiiddu": "jii",
"Jilbe": "jie",
"Jili": "mgi",
"Jilim": "jil",
"Jimi": "jmi",
"Jimjimen": "jim",
"Jin": "cjy",
"Jina": "jia",
"Jingpho": "kac",
"Jingulu": "jig",
"Jiongnai Bunu": "pnu",
"Jirajara": "sai-jrj",
"Jirel": "jul",
"Jiru": "jrr",
"Jita": "jit",
"Jizhao": "mis-jzh",
"Jju": "kaj",
"Joba": "job",
"Jofotek-Bromnya": "jbr",
"Jola-Fonyi": "dyo",
"Jola-Kasa": "csk",
"Jonkor Bourmataguil": "jeu",
"Jorá": "jor",
"Jowulu": "jow",
"Ju": "juu",
"Juang": "jun",
"Judeo-Itali": "itk",
"Judeo-Persian": "jpr",
"Judeo-Tat": "jdt",
"Jukun Takum": "jbu",
"Jumaytepeque": "nai-jum",
"Jumjum": "jum",
"Jumli": "jml",
"Jungle Inga": "inj",
"Jur Modo": "bex",
"Juray": "juy",
"Jurchen": "juc",
"Jurúna": "jur",
"Jutiapa": "nai-jtp",
"Jutish": "jut",
"Juwal": "mwb",
"Juǀ'hoan": "ktz",
"Jwira-Pepesa": "jwi",
"Júma": "jua",
"K'iche'": "quc",
"Kaamba": "xku",
"Kaan": "ldl",
"Kaapor Sign Language": "uks",
"Kaba": "ksp",
"Kabalai": "kvf",
"Kabardia": "kbd",
"Kabatei": "xkp",
"Kabba-Laka": "lap",
"Kabishiana": "tup-kab",
"Kabiyé": "kbp",
"Kabola": "klz",
"Kabore One": "onk",
"Kabras": "lkb",
"Kaburi": "uka",
"Kabutra": "kbu",
"Kabuverdianu": "kea",
"Kabwa": "cwa",
"Kabwari": "kcw",
"Kabyle": "kab",
"Kachama-Ganjule": "kcx",
"Kachari": "xac",
"Kachchi": "kfr",
"Kacipo-Balesi": "koe",
"Kaco'": "xkk",
"Kadai": "kzd",
"Kadar": "kej",
"Kadara": "kad",
"Kadaru": "kdu",
"Kadazan": "kzj",
"Kadazan Labuk-Kinabatangan": "dtb",
"Kadazan Sungai Klias": "kqt",
"Kadazandusun": "dtp",
"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",
"Kaingáng São Paulo": "zkp",
"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",
"Kalagan": "kqe",
"Kalagan Kagan": "kll",
"Kalagan Tagakaulu": "klg",
"Kalam": "kmh",
"Kalami": "gwc",
"Kalamsé": "knz",
"Kalanadi": "wkl",
"Kalanga": "kck",
"Kalao": "kly",
"Kalapuya": "kyl",
"Kalapuya Selatan": "sxk",
"Kalapuya Utara": "nrt",
"Kalarko": "kba",
"Kalasha": "kls",
"Kalasuri": "xme-kls",
"Kalašma": "ine-kal",
"Kalenjin": "kln",
"Kalinago": "crb",
"Kalinga Butbut": "kyb",
"Kalinga Lembah Mabaka": "kkg",
"Kalinga Limos": "kmk",
"Kalinga Lubuagan": "knb",
"Kalinga Madukayang": "kmd",
"Kalinga Selatan": "ksc",
"Kalinga Tanudan": "kml",
"Kalkatungu": "ktg",
"Kalkoti": "xka",
"Kalmyk": "xal",
"Kalou": "ywa",
"Kaluli": "bco",
"Kalumpang": "kli",
"Kam": "kdx",
"Kam Selatan": "kmc",
"Kam Utara": "doc",
"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",
"Kambera": "xbr",
"Kamberataro": "kbv",
"Kamberau": "irx",
"Kambiwá": "xbw",
"Kami": "kmi",
"Kamkata-viri": "bsh",
"Kamo": "kcq",
"Kamoro": "kgq",
"Kamta": "rkt",
"Kamu": "xmu",
"Kamula": "xla",
"Kamwe": "hig",
"Kanakanabu": "xnb",
"Kanakuru": "kna",
"Kanamari": "knm",
"Kanashi": "xns",
"Kanasi": "soq",
"Kandas": "kqw",
"Kande": "kbs",
"Kang": "kyp",
"Kanga": "kcp",
"Kangean": "kkv",
"Kanggape": "igm",
"Kangjia": "kxs",
"Kango": "kty",
"Kango-Sua": "kzy",
"Kangri": "xnr",
"Kaniet": "ktk",
"Kanikkaran": "kev",
"Kaningdon-Nindem": "kdp",
"Kaningi": "kzo",
"Kaningra": "knr",
"Kaninuwa": "wat",
"Kanite": "kmu",
"Kanjari": "kft",
"Kanju": "kbe",
"Kankanaey": "kne",
"Kankanay Utara": "xnn",
"Kannada": "kn",
"Kannada Kuno": "dra-okn",
"Kannada Kurumba": "kfi",
"Kannada Pertengahan": "dra-mkn",
"Kannauji": "bjj",
"Kanowit": "kxn",
"Kanoé": "kxo",
"Kansa": "ksk",
"Kantonis": "yue",
"Kantosi": "xkt",
"Kanu": "khx",
"Kanufi": "kni",
"Kanuri": "kr",
"Kanyok": "kny",
"Kao": "kax",
"Kaonde": "kqn",
"Kap": "ykm",
"Kapampangan": "pam",
"Kapauri": "khp",
"Kapin": "tbx",
"Kapinawá": "xpn",
"Kapingamarangi": "kpg",
"Kapriman": "dju",
"Kaptiau": "kbi",
"Kapya": "klo",
"Kaqchikel": "cak",
"Kara (New Guinea)": "leu",
"Kara (Tanzania)": "reg",
"Karaboro Barat": "kza",
"Karaboro Timur": "xrb",
"Karachay-Balkar": "krc",
"Karaim": "kdr",
"Karajá": "kpj",
"Karakalpak": "kaa",
"Karakhanid": "xqa",
"Karami": "xar",
"Karamojong": "kdj",
"Karang": "kzr",
"Karanga": "kth",
"Karankawa": "zkk",
"Karao": "kyj",
"Karas": "kgv",
"Karata": "kpt",
"Karawa": "xrw",
"Karbi": "mjw",
"Karbi Amri": "ajz",
"Kare (Africa)": "kbn",
"Kare (New Guinea)": "kmf",
"Karekare": "kai",
"Karelia": "krl",
"Karen Brek": "kvl",
"Karen Bwe": "bwe",
"Karen Geba": "kvq",
"Karen Lahta": "kvt",
"Karen Manumanaw": "kxf",
"Karen Pa'o": "blk",
"Karen Paku": "kpp",
"Karen S'gaw": "ksw",
"Karen Yinbaw": "kvu",
"Karen Yintale": "kvy",
"Karen Zayein": "kxk",
"Karey": "kyd",
"Kari": "kbj",
"Kari'na": "car",
"Karingani": "kgn",
"Karipuna": "kuq",
"Karipúna": "kgm",
"Kariri": "kzw",
"Karitiâna": "ktn",
"Kariya": "kil",
"Kariyarra": "vka",
"Karkar-Yuri": "yuj",
"Karkin": "krb",
"Karko": "kko",
"Karnai": "bbv",
"Karo": "kxh",
"Karok": "kyh",
"Karolanos": "kyn",
"Karon": "krx",
"Karon Dori": "kgw",
"Karore": "xkx",
"Karranga": "xrq",
"Karuwali": "rxw",
"Kasanga": "ccj",
"Kasem": "xsm",
"Kashaya": "kju",
"Kashmir": "ks",
"Kashubian": "csb",
"Kasiguranin": "ksn",
"Kaska": "kkz",
"Kaskean": "zsk",
"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",
"Katu Barat": "kuf",
"Katu Timur": "ktv",
"Katua": "kta",
"Katukina": "knt",
"Kaulong": "pss",
"Kaur": "vkk",
"Kaure": "bpp",
"Kaurna": "zku",
"Kauwera": "xau",
"Kavalan": "ckv",
"Kavet": "krv",
"Kawacha": "kcb",
"Kawahiva": "tup-kaw",
"Kawaiisu": "xaw",
"Kawe": "kgb",
"Kawishana": "awd-kaw",
"Kawésqar": "alc",
"Kaxararí": "ktx",
"Kaxuyana": "kbb",
"Kaya": "zra",
"Kayabí": "kyz",
"Kayagar": "kyt",
"Kayah Barat": "kyu",
"Kayah Timur": "eky",
"Kayan": "pdu",
"Kayan Baram": "kys",
"Kayan Mahakam": "xay",
"Kayan Mendalam": "xkd",
"Kayan Rejang": "ree",
"Kayan Sungai Kayan": "xkn",
"Kayan Wahau": "whu",
"Kayapa Kallahan": "kak",
"Kayapó": "txu",
"Kayardild": "gyd",
"Kayeli": "kzl",
"Kayong": "kxy",
"Kayort": "kyv",
"Kayupulau": "kzu",
"Kazakh": "kk",
"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",
"Keley-I Kallahan": "ify",
"Keliko": "kbo",
"Kelo": "xel",
"Kelon": "kyo",
"Kemak": "kem",
"Kembayan": "xem",
"Kemberano": "bzp",
"Kembra": "xkw",
"Kemezung": "dmo",
"Kemiehua": "kfj",
"Kemtuik": "kmt",
"Kenaboi": "xbn",
"Kendeje": "klf",
"Kendem": "kvm",
"Kenga": "kyq",
"Keninjal": "knl",
"Kensiu": "kns",
"Kenswei Nsei": "ndb",
"Kenyah Wahau": "whk",
"Kenyang": "ken",
"Kenyi": "lke",
"Keoru-Ahia": "xeu",
"Kepkiriwát": "kpn",
"Kepo'": "kuk",
"Kera": "ker",
"Kerak": "hhr",
"Kereho": "xke",
"Kerek": "krk",
"Keres Barat": "kjq",
"Keres Timur": "kee",
"Kerewe": "ked",
"Kerewo": "kxz",
"Kerinci": "kvr",
"Kermanik": "xme-ker",
"Kesawai": "xes",
"Ket": "ket",
"Ketangalan": "kae",
"Kete": "kcv",
"Ketengban": "xte",
"Ketum": "ktt",
"Kewa": "kew",
"Kewa Timur": "kjs",
"Keyagana": "kyg",
"Kgalagadi": "xkv",
"Khakas": "kjh",
"Khalaj": "klj",
"Khaling": "klr",
"Kham": "kjl",
"Kham Parbate Timur": "kif",
"Khamti": "kht",
"Khamyang": "ksu",
"Khana": "ogo",
"Khandeshi": "khn",
"Khanty Selatan": "kca-sou",
"Khanty Timur": "kca-eas",
"Khanty Utara": "kca-nor",
"Khao": "xao",
"Kharam Naga": "kfw",
"Kharia": "khr",
"Kharia Thar": "ksy",
"Khasi": "kha",
"Khayo": "lko",
"Khazar": "zkz",
"Khe": "kqg",
"Khehek": "tlx",
"Khengkha": "xkf",
"Khetrani": "xhe",
"Khinalug": "kjj",
"Khirwar": "kwx",
"Khisa": "kqm",
"Khitan": "zkt",
"Khlor": "llo",
"Khlula": "ykl",
"Khmer": "km",
"Khmer Kuno": "okz",
"Khmer Pertengahan": "xhm",
"Khmer Utara": "kxm",
"Khmu": "kjg",
"Khoekhoe": "naq",
"Khoini": "xkc",
"Kholok": "ktc",
"Kholosi": "inc-kho",
"Khonso": "kxc",
"Khorezmian Turkic": "zkh",
"Khortha": "inc-khr",
"Khotan": "kho",
"Khowar": "khw",
"Khroskyabs": "jiq",
"Khua": "xhv",
"Khuen": "khf",
"Khvarshi": "khv",
"Khwarezm": "xco",
"Khwe": "xuu",
"Kháng": "kjm",
"Khün": "kkh",
"Kibala": "blv",
"Kibena": "bez",
"Kibet": "kie",
"Kibiri": "prm",
"Kichwa": "qwe-kch",
"Kickapoo": "kic",
"Kikai": "kzg",
"Kikami": "kcu",
"Kikuyu": "ki",
"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",
"Kinnauri": "kfk",
"Kinnauri Bhoti": "nes",
"Kintaq": "knq",
"Kinuku": "kkd",
"Kioko": "ues",
"Kiong": "kkm",
"Kiorr": "xko",
"Kiowa": "kio",
"Kipchak": "qwm",
"Kipfokomo": "pkb",
"Kipsigis": "sgc",
"Kiput": "kyi",
"Kir-Balar": "kkr",
"Kirfi": "kks",
"Kirike": "okr",
"Kirikiri": "kiy",
"Kirya-Konzel": "fkk",
"Kis": "kis",
"Kisa": "lks",
"Kisan": "xis",
"Kisankasa": "kqh",
"Kisar": "kje",
"Kisi": "kiz",
"Kissi Selatan": "kss",
"Kissi Utara": "kqs",
"Kitanemuk": "azc-ktn",
"Kitembo": "tbt",
"Kitsai": "kii",
"Kituba": "ktu",
"Kiunum": "wei",
"Kiwai Selatan": "kjd",
"Kiwai Timur Laut": "kiw",
"Kla": "lda",
"Klallam": "clm",
"Klamath-Modoc": "kla",
"Klao": "klu",
"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 Indus": "mvy",
"Kohistani Shina": "plk",
"Koho": "kpm",
"Kohumono": "bcs",
"Koi": "kkt",
"Koiari Gunung": "kpx",
"Koibal": "zkb",
"Koireng": "nkd",
"Koitabu": "kqi",
"Koiwat": "kxt",
"Kok-Paponk": "okg",
"Kokata": "ktd",
"Kokborok": "trp",
"Koke": "kou",
"Koko-Bera": "kkp",
"Kokoda": "xod",
"Kokola": "kzn",
"Kokota": "kkk",
"Kol (Cameroon)": "biw",
"Kol (New Guinea)": "kol",
"Kola": "kvv",
"Kolami": "kfb",
"Kolami Tenggara": "nit",
"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 Kuno": "urj-koo",
"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",
"Koneraw": "kdw",
"Kongo": "kg",
"Konjo Pesisir": "kjc",
"Konkani": "kok",
"Konkomba": "xon",
"Konni": "kma",
"Kono (Guinea)": "knu",
"Kono (Nigeria)": "klk",
"Kono (Sierra Leone)": "kno",
"Konomala": "koa",
"Konomihu": "nai-knm",
"Konongo": "kcz",
"Konzo": "koo",
"Koonzime": "ozm",
"Koorete": "kqy",
"Kopar": "xop",
"Kopkaka": "opk",
"Korafe-Yegha": "kpr",
"Korak": "koz",
"Korana": "kqz",
"Korandje": "kcy",
"Korea": "ko",
"Korea Kuno": "oko",
"Korea Moden Awal": "ko-ear",
"Korea Pertengahan": "okm",
"Koreguaje": "coe",
"Koresh-e Rostam": "okh",
"Korku": "kfq",
"Koro (Afrika Barat)": "kfo",
"Koro (India)": "jkr",
"Koro (New Guinea)": "kxr",
"Koro (Vanuatu)": "krf",
"Koromfé": "kfz",
"Koromira": "kqj",
"Koronadal Blaan": "bpr",
"Koroni": "xkq",
"Korop": "krp",
"Koropó": "xxr",
"Koroshi": "ktl",
"Korowai": "khe",
"Korra Koraga": "kfd",
"Korubo": "xor",
"Korupun-Sela": "kpq",
"Korwa": "kfp",
"Koryak": "kpy",
"Kosadle": "kiq",
"Kosarek Yale": "kkl",
"Kosena": "kze",
"Koshin": "kid",
"Kosrae": "kos",
"Kota (Gabon)": "koq",
"Kota (India)": "kfe",
"Kotava": "avk",
"Koti": "eko",
"Kott": "zko",
"Kou": "snz",
"Kouya": "kyf",
"Kovai": "kqb",
"Kove": "kvc",
"Kowaki": "xow",
"Kowiai": "kwh",
"Koy Sanjaq Surat": "kqd",
"Koya": "kff",
"Koyaga": "kga",
"Koyo": "koh",
"Koyra Chiini": "khq",
"Koyraboro Senni": "ses",
"Koyukon": "koy",
"Kpagua": "kuw",
"Kpala": "kpl",
"Kpan": "kpk",
"Kpasam": "pbn",
"Kpati": "koc",
"Kpatili": "kym",
"Kpee": "cpo",
"Kpelle": "kpe",
"Kpessi": "kef",
"Kplang": "kph",
"Krache": "kye",
"Krahn Barat": "krw",
"Krahn Timur": "kqo",
"Krahô": "xra",
"Kraol": "rka",
"Krenak": "kqq",
"Kreol Afro-Seminole": "afs",
"Kreol Bahamas": "bah",
"Kreol Belize": "bzj",
"Kreol Belter": "art-bel",
"Kreol Guinea-Bissau": "pov",
"Kreol Haiti": "ht",
"Kreol Hawaii": "hwc",
"Kreol Inggeris Antigua dan Barbuda": "aig",
"Kreol Inggeris Guyana": "gyn",
"Kreol Jamaica": "jam",
"Kreol Kepulauan Virgin": "vic",
"Kreol Lelaki Ngatik": "ngm",
"Kreol Louisiana": "lou",
"Kreol Mauritius": "mfe",
"Kreol Nicaragua": "bzk",
"Kreol Selat Torres": "tcs",
"Kreol Seychelles": "crs",
"Kreol Yilan": "ycr",
"Kresh": "krs",
"Krevinian": "zkv",
"Kreye": "xre",
"Krikati-Timbira": "xri",
"Krim": "krm",
"Krio": "kri",
"Kriol": "rop",
"Krisa": "ksi",
"Kristang": "mcm",
"Krobu": "kxb",
"Krongo": "kgo",
"Kru'ng": "krr",
"Krymchak": "jct",
"Kryts": "kry",
"Kua": "tyu",
"Kua-nsi": "ykn",
"Kuamasi": "yku",
"Kuan": "uan",
"Kuanhua": "xnh",
"Kube": "kgf",
"Kubi": "kof",
"Kubo": "jko",
"Kubu": "kvb",
"Kucong": "lkc",
"Kudiya": "kfg",
"Kudmali": "kyw",
"Kudu-Camo": "kov",
"Kugama": "kow",
"Kugbo": "kes",
"Kugu-Muminh": "xmh",
"Kui (India)": "kxu",
"Kui (Indonesia)": "kvd",
"Kuijau": "dkr",
"Kuikúro": "kui",
"Kujarge": "vkj",
"Kuk": "kfn",
"Kukatja": "kux",
"Kukele": "kez",
"Kukkuzi": "urj-kuk",
"Kukna": "kex",
"Kuku-Mangk": "xmq",
"Kuku-Mu'inh": "xmp",
"Kuku-Thaypan": "typ",
"Kuku-Ugbanh": "ugb",
"Kuku-Uwanh": "uwa",
"Kuku-Yalanji": "gvn",
"Kula": "tpg",
"Kulango Bouna": "nku",
"Kulere": "kul",
"Kulfa": "kxj",
"Kulina": "xpk",
"Kulisusu": "vkl",
"Kullu Pahari": "kfx",
"Kulon": "uon",
"Kulon-Pazeh": "uun",
"Kulung": "kle",
"Kumak": "nee",
"Kumalu": "ksl",
"Kumam": "kdi",
"Kuman": "kue",
"Kumaoni": "kfy",
"Kumarbhag Paharia": "kmj",
"Kumba": "ksm",
"Kumbainggar": "kgs",
"Kumbaran": "wkb",
"Kumbewaha": "xks",
"Kumeyaay": "nai-kum",
"Kumhali": "kra",
"Kumu": "kmw",
"Kumukio": "kuo",
"Kumyk": "kum",
"Kumzari": "zum",
"Kuna": "cuk",
"Kuna Sempadan": "kvn",
"Kunama": "kun",
"Kunbarlang": "wlg",
"Kunda": "kdn",
"Kundal Shahi": "shd",
"Kunduvadi": "wku",
"Kung": "kfl",
"Kunggari": "kgl",
"Kungkari": "lku",
"Kuni": "kse",
"Kuni-Boazi": "kvg",
"Kunigami": "xug",
"Kunimaipa": "kup",
"Kunja": "pep",
"Kunjen": "kjn",
"Kunyi": "njx",
"Kunza": "kuz",
"Kuo": "xuo",
"Kuot": "kto",
"Kupa": "kug",
"Kupia": "key",
"Kupsabiny": "kpz",
"Kur": "kuv",
"Kura Ede Nago": "nqk",
"Kurama": "krh",
"Kuranko": "knk",
"Kurdi Selatan": "sdh",
"Kurdi Tengah": "ckb",
"Kurdi Utara": "kmr",
"Kuri": "nbn",
"Kuria": "kuj",
"Kurichiya": "kfh",
"Kurmukar": "kfv",
"Kurnai": "unn",
"Kurrama": "vku",
"Kursav": "faj",
"Kurti": "ktm",
"Kurtöp": "xkz",
"Kurudu": "kjr",
"Kurukh": "kru",
"Kurumba Alu": "xua",
"Kurumba Betta": "xub",
"Kuruáya": "kyr",
"Kusaal": "kus",
"Kusaghe": "ksg",
"Kushi": "kuh",
"Kustenau": "awd-kus",
"Kusu": "ksv",
"Kusunda": "kgg",
"Kutenai": "kut",
"Kutep": "kub",
"Kuthant": "xut",
"Kutto": "kpa",
"Kutu": "kdc",
"Kuturmi": "khj",
"Kuuk Thaayorre": "thd",
"Kuuk Yak": "uky",
"Kuuku-Ya'u": "kuy",
"Kuvale": "olu",
"Kuvi": "kxv",
"Kuwaa": "blh",
"Kuwaataay": "cwt",
"Kuwani": "paa-kwn",
"Kuy": "kdt",
"Kven": "fkv",
"Kw'adza": "wka",
"Kwa'": "bko",
"Kwaami": "ksq",
"Kwadi": "kwz",
"Kwaio": "kwd",
"Kwaja": "kdz",
"Kwak": "kwq",
"Kwak'wala": "kwk",
"Kwakum": "kwu",
"Kwalhioqua-Tlatskanai": "qwt",
"Kwama": "kmq",
"Kwambi": "kwm",
"Kwamera": "tnk",
"Kwami": "ktf",
"Kwamtim One": "okk",
"Kwang": "kvi",
"Kwanga": "kwj",
"Kwangali": "kwn",
"Kwanja": "knp",
"Kwanka": "bij",
"Kwanyama": "kj",
"Kwara'ae": "kwf",
"Kwasio": "nmg",
"Kwaya": "kya",
"Kwaza": "xwa",
"Kwegu": "xwg",
"Kwer": "kwr",
"Kwerba": "kwe",
"Kwerba Mamberamo": "xwr",
"Kwere": "cwe",
"Kwerisa": "kkb",
"Kwese": "kws",
"Kwesten": "kwt",
"Kwini": "gww",
"Kwinsu": "kuc",
"Kwinti": "kww",
"Kwoma": "kmo",
"Kwomtari": "kwo",
"Kyak": "bka",
"Kyaka": "kyc",
"Kyakala": "tuw-kkl",
"Kyenele": "kql",
"Kyenga": "tye",
"Kyerung": "kgy",
"Kyrgyz": "ky",
"Kâte": "kmg",
"Kélé": "keb",
"Kómnzo": "paa-kmn",
"La'bi": "lbi",
"Laalaa": "cae",
"Laba": "lau",
"Label": "lbb",
"Labir": "jku",
"Labo": "mwi",
"Labo Phowa": "ypb",
"Laboya": "lmy",
"Labu": "lbu",
"Lacandon": "lac",
"Lachi": "lbt",
"Lachi Putih": "lwh",
"Lachiguiri Zapotec": "zpa",
"Lachixío Zapotec": "zpl",
"Ladakhi": "lbj",
"Ladin": "lld",
"Ladino": "lad",
"Ladji-Ladji": "llj",
"Laeko-Libuat": "lkl",
"Lafofa": "laf",
"Laghu": "lgb",
"Laghuu": "lgh",
"Lagwan": "kot",
"Laha (Indonesia)": "lhh",
"Laha (Vietnam)": "lha",
"Lahanan": "lhn",
"Lahnda": "lah",
"Lahu": "lhu",
"Lahu Shi": "lhi",
"Lahul Lohar": "lhl",
"Lai": "cnh",
"Laimbue": "lmx",
"Laiyolo": "lji",
"Lak": "lbe",
"Laka": "lak",
"Lakalei": "lka",
"Lake Miwok": "lmw",
"Lakha": "lkh",
"Laki": "lki",
"Lakkia": "lbc",
"Lakon": "lkn",
"Lakondê": "lkd",
"Lakota": "lkt",
"Lakota Dida": "dic",
"Lala (Afrika Selatan)": "bnt-lal",
"Lala (New Guinea)": "nrz",
"Lala-Bisa": "leb",
"Lala-Roba": "lla",
"Lalana Chinantec": "cnl",
"Lalu Barat": "ywl",
"Lalu Timur": "yit",
"Lama Bai": "lay",
"Lamaholot": "slp",
"Lamalera": "lmr",
"Lamang": "hia",
"Lamatuka": "lmq",
"Lamba": "lam",
"Lambadi": "lmn",
"Lambichhong": "lmh",
"Lambya": "lai",
"Lame": "bma",
"Lamenu": "lmu",
"Lamet": "lbn",
"Lamja-Dengsa-Tola": "ldh",
"Lamkang": "lmk",
"Lamma": "lev",
"Lamnso'": "lns",
"Lamogai": "lmg",
"Lampung Api": "ljp",
"Lamu": "llh",
"Lamu-Lamu": "lby",
"Lanas Lobu": "ruu",
"Landoma": "ldm",
"Lang'e": "yne",
"Langam": "lnm",
"Langbashe": "lna",
"Langi": "lag",
"Langnian Buyang": "yln",
"Lango (Sudan)": "lno",
"Lango (Uganda)": "laj",
"Lanima": "lnw",
"Lanoh": "lnh",
"Lao": "lo",
"Laomian": "lwm",
"Laopang": "lbg",
"Lapaguía-Guivini Zapotec": "ztl",
"Lapine": "art-lap",
"Laragia": "lrg",
"Lardil": "lbz",
"Larestani": "lrl",
"Larevat": "lrv",
"Larike-Wakasihu": "alo",
"Laro": "lro",
"Larteh": "lar",
"Laru": "lan",
"Lasalimu": "llm",
"Lasgerdi": "lsa",
"Lashi": "lsi",
"Lasi": "lss",
"Latgalia": "ltg",
"Latin": "la",
"Latu": "ltu",
"Latundê": "ltn",
"Latvia": "lv",
"Lau": "llu",
"Laua": "luf",
"Lauan": "llx",
"Lauje": "law",
"Laura": "lur",
"Laurentia": "lre",
"Lavatbura-Lamusong": "lbv",
"Lave": "brb",
"Laven": "lbo",
"Lavukaleve": "lvk",
"Lawa Barat": "lcp",
"Lawa Timur": "lwl",
"Lawangan": "lbx",
"Lawi": "lvi",
"Lawu": "lwu",
"Lawunuia": "tgi",
"Layakha": "lya",
"Laz": "lzz",
"Laze": "tbq-laz",
"Lealao Chinantec": "cle",
"Leco": "lec",
"Ledo Kaili": "lew",
"Leelau": "ldk",
"Lefa": "lfa",
"Lega-Mwenga": "lgm",
"Lega-Shabunda": "lea",
"Legbo": "agb",
"Legenyem": "lcc",
"Lehali": "tql",
"Leinong Naga": "lzn",
"Leipon": "lek",
"Leitre": "paa-lei",
"Lela": "dri",
"Lelak": "llk",
"Lele (Chad)": "lln",
"Lele (Congo)": "lel",
"Lele (Guinea)": "llc",
"Lele (New Guinea)": "lle",
"Lelemi": "lef",
"Lelepa": "lpa",
"Lembata Barat": "lmj",
"Lembata Selatan": "lmf",
"Lembena": "leq",
"Lemerig": "lrz",
"Lemio": "lei",
"Lemnos": "xle",
"Lemolang": "ley",
"Lemoro": "ldj",
"Lenakel": "tnl",
"Lenca Honduras": "len",
"Lenca Salvador": "nai-sln",
"Lendu": "led",
"Lengilu": "lgi",
"Lengo": "lgr",
"Lengola": "lej",
"Lenje": "leh",
"Lenkau": "ler",
"Lenyima": "ldg",
"Leonese": "roa-leo",
"Leonese Kuno": "roa-ole",
"Lepcha": "lep",
"Lepki": "lpe",
"Lepontii": "xlp",
"Lese": "les",
"Lesing-Gelimi": "let",
"Letemboi": "nms",
"Leti (Cameroon)": "leo",
"Leti (Indonesia)": "lti",
"Levuka": "lvu",
"Lewo": "lww",
"Lewo Eleng": "lwe",
"Lewotobi": "lwt",
"Leyigha": "ayi",
"Lezgi": "lez",
"Lhao Vo": "mhx",
"Lhokpu": "lhp",
"Li'o": "ljl",
"Liabuku": "lix",
"Liana-Seti": "ste",
"Liberia Kpelle": "xpe",
"Liberian Kreyol": "lir",
"Libido": "liq",
"Libinza": "liz",
"Liburni": "xli",
"Ligbi": "lig",
"Ligenza": "lgz",
"Liguria Purba": "xlg",
"Ligurian": "lij",
"Lihir": "lih",
"Lika": "lik",
"Liki": "lio",
"Likila": "lie",
"Likuba": "kxx",
"Likum": "lib",
"Likwala": "kwc",
"Lilau": "lll",
"Lillooet": "lil",
"Limassa": "bme",
"Limba Barat-Tengah": "lia",
"Limba Timur": "lma",
"Limbu": "lif",
"Limbum": "lmp",
"Limburg": "li",
"Limi": "ylm",
"Limilngan": "lmc",
"Lindu": "klw",
"Linear A": "lab",
"Lingala": "ln",
"Lingao": "onb",
"Lingkhim": "lii",
"Lingua Franca Nova": "lfn",
"Linngithigh": "lnj",
"Lipan": "apl",
"Lipo": "lpo",
"Lisabata-Nuniali": "lcs",
"Lisela": "lcl",
"Lish": "lsh",
"Lishana Deni": "lsd",
"Lishanid Noshan": "aij",
"Lishán Didán": "trg",
"Lisu": "lis",
"Literary Chinese": "lzh",
"Lithuania": "lt",
"Lithuania Kuno": "olt",
"Lithuanian Sign Language": "lls",
"Little Swanport": "aus-lsw",
"Litzlitz": "lzl",
"Livonian": "liv",
"Livvi": "olo",
"Lizu": "sit-liz",
"Lo-Toga": "lht",
"Loarki": "lrk",
"Lobala": "loq",
"Lobi": "lob",
"Lodhi": "lbm",
"Logba": "lgq",
"Logo": "log",
"Logol": "lof",
"Logooli": "rag",
"Logorik": "liu",
"Lojban": "jbo",
"Lokaa": "yaz",
"Loko": "lok",
"Lokono": "arw",
"Lokoya": "lky",
"Lola": "lcd",
"Lolak": "llq",
"Lole": "llg",
"Lolo": "llb",
"Loloda": "loa",
"Lolopo": "ycl",
"Lolopo Selatan": "ysp",
"Loma": "lom",
"Lomaiviti": "lmv",
"Lomakka": "loi",
"Lomavren": "rmi",
"Lombard": "lmo",
"Lombi": "lmi",
"Lombo": "loo",
"Lomwe": "ngl",
"Loncong": "lce",
"Long Phuri Naga": "lpn",
"Long Wat": "ttw",
"Longgu": "lgu",
"Longjia": "sit-lnj",
"Longto": "wok",
"Longuda": "lnu",
"Loniu": "los",
"Lonwolwol": "crc",
"Loo": "ldo",
"Lopa": "lop",
"Lopi": "lov",
"Lopit": "lpx",
"Lorang": "lrn",
"Lorediakarkar": "lnn",
"Lorrain": "roa-lor",
"Lorung Selatan": "lrr",
"Lorung Utara": "lbr",
"Lote": "uvl",
"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 Sorbian": "dsb",
"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",
"Luchazi": "lch",
"Lucumí": "luq",
"Ludian": "lud",
"Lufu": "ldq",
"Luganda": "lg",
"Lugbara": "lgg",
"Luguru": "ruf",
"Luhu": "lcq",
"Luhya": "luy",
"Luimbi": "lum",
"Luiseño": "lui",
"Lukpa": "dop",
"Lule": "ule",
"Lumba-Yakkha": "luu",
"Lumbee": "lmz",
"Lumbu": "lup",
"Lumun": "lmd",
"Lun Bawang": "lnd",
"Luna": "luj",
"Lunanakha": "luk",
"Lunda": "lun",
"Lungga": "lga",
"Luo": "luo",
"Lur Selatan": "luz",
"Lur Utara": "lrc",
"Luren": "sit-lrn",
"Luri (Nigeria)": "ldd",
"Lusengo": "lse",
"Lushootseed": "lut",
"Lusi": "khl",
"Lusitania": "xls",
"Lutachoni": "lts",
"Lutos": "ndy",
"Luvale": "lue",
"Luwati": "luv",
"Luwiya": "xlu",
"Luwo": "lwo",
"Luxembourg": "lb",
"Luyana": "lyn",
"Lwalu": "lwa",
"Lwel": "lvl",
"Lycia": "xlc",
"Lydia": "xld",
"Lyngngam": "lyg",
"Lyélé": "lee",
"Láadan": "ldn",
"Láá Láá Bwamu": "bwj",
"Löyöp": "urr",
"Lü": "khb",
"Ma": "msj",
"Ma Manda": "skc",
"Ma'anyan": "mhy",
"Ma'di": "mhi",
"Ma'di Selatan": "snm",
"Ma'ya": "slz",
"Maaka": "mew",
"Maale": "mdy",
"Maasai": "mas",
"Maay": "ymm",
"Maba": "mqa",
"Mabaale": "mmz",
"Mabaan": "mfz",
"Mabang Bura": "mde",
"Mabire": "muj",
"Maca": "mca",
"Macaguaje": "mcl",
"Macaguán": "mbn",
"Macanese": "mzs",
"Macedonia": "mk",
"Macedonia Purba": "xmk",
"Machame": "jmc",
"Machiguenga": "mcb",
"Machinere": "mpd",
"Machinga": "mvw",
"Macoris": "nai-mac",
"Macuna": "myy",
"Macushi": "mbc",
"Mada (Cameroon)": "mxu",
"Mada (Nigeria)": "mda",
"Madak": "mmx",
"Maden": "xmx",
"Madhi Madhi": "dmd",
"Madngele": "zml",
"Madura": "mad",
"Maek": "hmk",
"Maeng Itneg": "itt",
"Mafa": "maf",
"Mag-Anchi Ayta": "sgb",
"Mag-Indi Ayta": "blx",
"Magahat": "mtw",
"Magahi": "mag",
"Magar Barat": "mrd",
"Magar Timur": "mgp",
"Magori": "zgr",
"Maguindanao": "mdh",
"Mahali": "mjx",
"Mahasu Pahari": "bfz",
"Mahican": "mjy",
"Mahongwe": "mhb",
"Mahou": "mxx",
"Maia": "sks",
"Maiadomu": "mzz",
"Maiani": "tnh",
"Maidu Barat Laut": "mjd",
"Maidu Timur Laut": "nmu",
"Maii": "mmm",
"Mailu": "mgu",
"Maindo": "cwb",
"Maipure": "awd-mpr",
"Mairasi": "zrs",
"Maisin": "mbq",
"Maithili": "mai",
"Maiwa (Indonesia)": "wmm",
"Maiwa (New Guinea)": "mti",
"Maiwala": "mum",
"Majang": "mpe",
"Majera": "xmj",
"Majhwar": "mmj",
"Mak (China)": "mkg",
"Mak (Nigeria)": "pbl",
"Makaa": "mcp",
"Makah": "myh",
"Makalero": "mjb",
"Makasae": "mkz",
"Makassar": "mak",
"Makayam": "aup",
"Makhuwa": "vmw",
"Makhuwa-Marrevone": "xmc",
"Makhuwa-Meetto": "mgh",
"Makhuwa-Moniga": "mhm",
"Makhuwa-Saka": "xsq",
"Makhuwa-Shirima": "vmk",
"Makian Barat": "mqs",
"Maklew": "mgf",
"Makolkol": "zmh",
"Makonde": "kde",
"Maku": "xak",
"Maku'a": "lva",
"Makuri Naga": "jmn",
"Makuráp": "mpu",
"Makwe": "ymk",
"Makyan Naga": "umn",
"Mal": "mlf",
"Mal Paharia": "mkb",
"Mala (New Guinea)": "ped",
"Mala (Nigeria)": "ruy",
"Mala Malasar": "ima",
"Malagasi": "mg",
"Malakula Timur Laut": "upv",
"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",
"Malayalam": "ml",
"Malayic Dayak": "xdy",
"Malaynon": "mlz",
"Malba Birifor": "bfo",
"Male": "mdc",
"Malecite-Passamaquoddy": "pqm",
"Maleng": "pkt",
"Maleu-Kilenge": "mgl",
"Malfaxal": "mlx",
"Malgana": "vml",
"Malgbe": "mxf",
"Malibu": "sai-mlb",
"Malila": "mgq",
"Malimba": "mzd",
"Malimpung": "mli",
"Malol": "mbk",
"Malta": "mt",
"Malvi": "mup",
"Mam": "mam",
"Mama": "mma",
"Mamaa": "mhf",
"Mamaindé": "wmd",
"Mamanwa": "mmn",
"Mamara": "myk",
"Mamasa": "mqj",
"Mambae": "mgm",
"Mambai": "mcs",
"Mambila Cameroon": "mcu",
"Mambila Nigeria": "mzk",
"Mamboru": "mvd",
"Mambwe-Lungu": "mgr",
"Mampruli": "maw",
"Mamuju": "mqx",
"Mamulique": "emm",
"Mamusi": "kdf",
"Mamvu": "mdi",
"Man Met": "mml",
"Manam": "mva",
"Manambu": "mle",
"Manangba": "nmm",
"Manangkari": "znk",
"Manao": "awd-man",
"Manchu": "mnc",
"Manda (Australia)": "zma",
"Manda (India)": "mha",
"Manda (Tanzania)": "mgs",
"Mandahuaca": "mht",
"Mandaia": "mid",
"Mandaia Klasik": "myz",
"Mandalorian": "art-man",
"Mandan": "mhq",
"Mandandanyi": "zmk",
"Mandar": "mdr",
"Mandara": "tbf",
"Mandari": "mqu",
"Mandarin": "cmn",
"Mandaya Karaga": "mry",
"Mandeali": "mjl",
"Mander": "mqr",
"Mandingo": "man",
"Mandinka": "mnk",
"Mandjak": "mfv",
"Mandobo Atas": "aax",
"Mandobo Bawah": "bwp",
"Manem": "jet",
"Mang": "zng",
"Mangala": "mem",
"Mangarayi": "mpc",
"Mangareva": "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",
"Mangue": "mom",
"Manigri-Kambolé Ede Nago": "xkb",
"Maninka Konyanka": "mku",
"Maninka Sankaran": "msc",
"Maninkakan Barat": "mlq",
"Maninkakan Kita": "mwk",
"Maninkakan Timur": "emk",
"Manipa": "mqp",
"Manipur Kuno": "omp",
"Manipuri": "mni",
"Mankanya": "knf",
"Mankiyali": "nlm",
"Manna-Dora": "mju",
"Mannan": "mjv",
"Mano": "mev",
"Manobo Agusan": "msm",
"Manobo Ata": "atd",
"Manobo Bukidnon Barat": "mbb",
"Manobo Cinamiguin": "mkx",
"Manobo Cotabato": "mta",
"Manobo Dibabawon": "mbd",
"Manobo Ilianen": "mbi",
"Manobo Matigsalug": "mbt",
"Manobo Rajah Kabunsuwan": "mqk",
"Manobo Sarangani": "mbs",
"Manombai": "woo",
"Mansaka": "msk",
"Mansi Selatan": "mns-sou",
"Mansi Tengah": "mns-cen",
"Mansi Utara": "mns-nor",
"Mansoanka": "msw",
"Manta": "myg",
"Mantsi": "nty",
"Manusela": "wha",
"Manx": "gv",
"Manya": "mjz",
"Manyawa": "mny",
"Manza": "mzv",
"Maonan": "mmd",
"Mape": "mlh",
"Mapena": "mnm",
"Mapia": "mpy",
"Mapidian": "mpw",
"Mapos Buang": "bzh",
"Mapoyo": "mcg",
"Mapudungun": "arn",
"Mapun": "sjm",
"Mara": "mec",
"Marachi": "lri",
"Maraghei": "vmh",
"Maragus": "mrs",
"Marama": "lrm",
"Maranao": "mrw",
"Maranungku": "zmr",
"Mararit": "mgb",
"Marathi": "mr",
"Marathi Kuno": "omr",
"Maratino": "sai-mar",
"Marau": "mvr",
"Marawan": "awd-mar",
"Marba": "mpg",
"Marenje": "vmr",
"Marfa": "mvu",
"Margany": "zmc",
"Marghi Selatan": "mfm",
"Margi": "mrt",
"Mari (Sepik)": "mbx",
"Mari Austronesia": "hob",
"Mari Barat": "mrj",
"Mari Timur": "mhr",
"Maria": "mds",
"Maria Bukit": "mrr",
"Mariaté": "awd-mrt",
"Maricopa": "mrc",
"Maridan": "zmd",
"Maridjabin": "zmj",
"Marik": "dad",
"Marimanindji": "zmm",
"Marind": "mrz",
"Maring": "mbw",
"Maringarr": "zmt",
"Mariri": "mqi",
"Maritsauá": "msp",
"Mariyedi": "zmy",
"Marka": "rkm",
"Markweeta": "enb",
"Marma": "rmz",
"Marovo": "mvo",
"Marquesas Selatan": "mqm",
"Marquesas Utara": "mrq",
"Marrgu": "mhg",
"Marriammu": "xru",
"Marrithiyel": "mfr",
"Marrucinian": "umc",
"Marshall": "mh",
"Marsian": "ims",
"Marti Ke": "zmg",
"Martu Wangka": "mpj",
"Martuthunira": "vma",
"Marwari": "mwr",
"Marúbo": "mzr",
"Masaba": "myx",
"Masadiit Itneg": "tis",
"Masakará": "sai-msk",
"Masalit": "mls",
"Masana": "mcn",
"Masbate Sorsogon": "bks",
"Masbatenyo": "msb",
"Masela Barat": "mss",
"Masela Tengah": "mxz",
"Masela Timur": "vme",
"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",
"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",
"Mauwake": "mhl",
"Mav̋ea": "mkv",
"Mawa": "mcw",
"Mawak": "mjj",
"Mawan": "mcz",
"Mawayana": "mzx",
"Mawchi": "mke",
"Mawes": "mgk",
"Maxakalí": "mbl",
"Maxi Gbe": "mxl",
"Maya Epigrafi": "emy",
"Maya Mopan": "mop",
"Maya Samo": "sym",
"Maya Yucatec": "yua",
"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",
"Mazahua Michoacán": "mmc",
"Mazahua Tengah": "maz",
"Mazaltepec Zapotec": "zpy",
"Mazanderani": "mzn",
"Mazatec Chiquihuitlán": "maq",
"Mazatec Huautla": "mau",
"Mazatec Ixcatlán": "mzi",
"Mazatec Jalapa de Díaz": "maj",
"Mazatec San Jerónimo Tecóatl": "maa",
"Mazatec Soyaltepec": "vmp",
"Mazatlán Mazatec": "vmz",
"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",
"Mbembe Cross River": "mfn",
"Mbembe Tigon": "nza",
"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",
"Me'en": "mym",
"Mebu": "mjn",
"Medebur": "mjm",
"Medefaidrin": "dmf",
"Media Lengua": "mue",
"Median Kuno": "xme-old",
"Median Pertengahan": "xme-mid",
"Medumba": "byv",
"Mefele": "mfj",
"Megam": "mef",
"Megleno-Romania": "ruq",
"Mehek": "nux",
"Mehináku": "mmh",
"Mekeo": "mek",
"Mekmek": "mvk",
"Mekwei": "msf",
"Mekéns": "skf",
"Mel-Khaonh": "hkn",
"Melanau Daro-Matu": "dro",
"Melanau Sibu": "sdx",
"Melanau Tengah": "mel",
"Melayu": "ms",
"Melayu Ambon": "abs",
"Melayu Baba": "mbf",
"Melayu Bacan": "btj",
"Melayu Bali": "mhp",
"Melayu Barisan Selatan": "pse",
"Melayu Berau": "bve",
"Melayu Brunei": "kxd",
"Melayu Bukit": "bvu",
"Melayu Cheti": "ccm",
"Melayu Cocos": "coa",
"Melayu Jambi": "jax",
"Melayu Kedah": "meo",
"Melayu Kupang": "mkn",
"Melayu Kutai Kota Bangun": "mqg",
"Melayu Larantuka": "lrt",
"Melayu Makassar": "mfp",
"Melayu Maluku Utara": "max",
"Melayu Manado": "xmm",
"Melayu Negeri Sembilan": "zmi",
"Melayu Patani": "mfa",
"Melayu Sabah": "msi",
"Melayu Sarawak": "poz-sml",
"Melayu Sri Lanka": "sci",
"Melayu Terengganu": "poz-ter",
"Mele-Fila": "mxe",
"Melo": "mfx",
"Melpa": "med",
"Memoni": "mby",
"Mendankwe-Nkwen": "mfd",
"Mende (Sierra Leone)": "men",
"Mengaka": "xmg",
"Mengen": "mee",
"Menien": "sai-men",
"Menka": "mea",
"Menominee": "mez",
"Mentawai": "mwv",
"Menya": "mcr",
"Meohang Barat": "raf",
"Meohang Timur": "emg",
"Meoswar": "mvx",
"Mer": "mnu",
"Meramera": "mxm",
"Merei": "lmb",
"Merey": "meq",
"Meriam": "ulk",
"Meroe": "xmr",
"Meru": "mer",
"Mesaka": "iyo",
"Mese": "mci",
"Mesir Demotik": "egx-dem",
"Mesir Purba": "egy",
"Mesme": "zim",
"Mesmes": "mys",
"Mesqan": "mvz",
"Messapic": "cms",
"Meta'": "mgo",
"Mewari": "mtr",
"Mewati": "wtm",
"Meyah": "mej",
"Mezontla Popoloca": "pbe",
"Meänkieli": "fit",
"Mfinu": "zmf",
"Mfumte": "nfu",
"Mi'kmaq": "mic",
"Miami": "mia",
"Mian": "mpt",
"Miani": "pla",
"Miao Qiandong Selatan": "hms",
"Miao Qiandong Timur": "hmq",
"Miao Qiandong Utara": "hea",
"Miao Xiangxi Barat": "mmr",
"Miao Xiangxi Timur": "muq",
"Michif": "crg",
"Michigamea": "cmm",
"Mid Grand Valley Dani": "dnt",
"Mid-Southern Banda": "bjo",
"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 Decorse": "mis-mmd",
"Mimi Nachtigal": "mis-mmn",
"Min Datian": "nan-dat",
"Min Hailufeng": "nan-hlh",
"Min Longyan": "nan-lnx",
"Min Nan": "nan",
"Min Puxian": "cpx",
"Min Sanxiang": "nan-zsh",
"Min Tengah": "czo",
"Min Timur": "cdo",
"Min Utara": "mnp",
"Min Zhenan": "nan-zhe",
"Mina": "hna",
"Minaean": "inm",
"Minang": "xrg",
"Minangkabau": "min",
"Minaveha": "mvn",
"Minderico": "drc",
"Mindiri": "mpn",
"Mingang Doso": "mko",
"Mingo": "iro-min",
"Mingrelia": "xmf",
"Minica Huitoto": "hto",
"Minidien": "wii",
"Minigir": "vmg",
"Minjungbal": "xjb",
"Minkin": "xxm",
"Minoan": "omn",
"Minokok": "mqq",
"Minriq": "mnq",
"Mintil": "mzt",
"Miqie": "yiq",
"Mirandese": "mwl",
"Mire": "mvh",
"Mirgan": "zrg",
"Miriti": "mmv",
"Miriwoong": "mep",
"Mirpur Panjabi": "pmu",
"Misantla Totonac": "tlc",
"Miship": "mjs",
"Misima-Paneati": "mpx",
"Mising": "mrg",
"Miskito": "miq",
"Mittu": "mwu",
"Mituku": "zmq",
"Miu": "mpo",
"Miwa": "vmi",
"Miwok Pesisir": "csi",
"Miwok Sierra Selatan": "skd",
"Miwok Sierra Tengah": "csm",
"Miwok Sierra Utara": "nsq",
"Miwok Teluk": "mkq",
"Mixe Coatlán": "mco",
"Mixe Juquila": "mxq",
"Mixe Mazatlán": "mzl",
"Mixe Tanah Genting": "mir",
"Mixe Tengah Utara": "neq",
"Mixe Tlahuitoltepec": "mxp",
"Mixe Totontepec": "mto",
"Mixifore": "mfg",
"Mixtec Alacatlatzala": "mim",
"Mixtec Amoltepec": "mbz",
"Mixtec Apasco-Apoala": "mip",
"Mixtec Atatláhuca": "mib",
"Mixtec Ayutla": "miy",
"Mixtec Cacaloxtepec": "miu",
"Mixtec Chayuco": "mih",
"Mixtec Chigmecatitlán": "mii",
"Mixtec Coatzospan": "miz",
"Mixtec Cuyamecalco": "xtu",
"Mixtec Huitepec": "mxs",
"Mixtec Itundujia": "mce",
"Mixtec Ixtayutla": "vmj",
"Mixtec Jamiltepec": "mxt",
"Mixtec Juxtlahuaca": "vmc",
"Mixtec Magdalena Peñasco": "xtm",
"Mixtec Metlatónoc": "mxv",
"Mixtec Mitlatongo": "vmm",
"Mixtec Mixtepec": "mix",
"Mixtec Nochixtlán Tenggara": "mxy",
"Mixtec Oaxaca Barat Laut": "mxa",
"Mixtec Ocotepec": "mie",
"Mixtec Peñoles": "mil",
"Mixtec Pinotepa Nacional": "mio",
"Mixtec Puebla Selatan": "mit",
"Mixtec San Juan Colorado": "mjc",
"Mixtec San Miguel Piedras": "xtp",
"Mixtec San Miguel el Grande": "mig",
"Mixtec Santa Lucía Monteverde": "mdv",
"Mixtec Santa María Zacatepec": "mza",
"Mixtec Silacayoapan": "mks",
"Mixtec Sindihui": "xts",
"Mixtec Soyaltepec": "vmq",
"Mixtec Tacahua": "xtt",
"Mixtec Teposcolula": "omq-tel",
"Mixtec Tezoatlán": "mxb",
"Mixtec Tidaá": "mtx",
"Mixtec Tlaxiaco Barat Daya": "meh",
"Mixtec Tlaxiaco Utara": "xtn",
"Mixtec Tlazoyaltepec": "mqh",
"Mixtec Tututepec": "mtu",
"Mixtec Yoloxochitl": "xty",
"Mixtec Yosondúa": "mpm",
"Mixtec Yucuañe": "mvg",
"Mixtec Yutanduchi": "mab",
"Mixtepec Zapotec": "zpm",
"Miya": "mkf",
"Miyako": "mvi",
"Miyobe": "soy",
"Mizo": "lus",
"Mlabri": "mra",
"Mlahsö": "lhs",
"Mlap": "kja",
"Mlomp": "mlo",
"Mmaala": "mmu",
"Mmani": "buy",
"Mmen": "bfm",
"Mnong Selatan": "mnn",
"Mnong Tengah": "cmo",
"Mnong Timur": "mng",
"Mo": "wkd",
"Moabite": "obm",
"Moba": "mfq",
"Mobilia": "mod",
"Mobu": "ahm",
"Mocana": "sai-mcn",
"Mochi": "old",
"Mochica": "omc",
"Mocho": "mhc",
"Mocoví": "moc",
"Modang": "mxd",
"Modole": "mqo",
"Moere": "mvq",
"Mofu Utara": "mfk",
"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",
"Mokil": "mkj",
"Moklen": "mkm",
"Mokole": "mkl",
"Mokpwe": "bri",
"Moksha": "mdf",
"Molale": "mbe",
"Molbog": "pwm",
"Moldova Sign Language": "vsi",
"Molengue": "bxc",
"Molima": "mox",
"Molo": "zmo",
"Molof": "msl",
"Moloko": "mlw",
"Mom Jango": "ver",
"Moma": "myl",
"Momare": "msz",
"Mombo Dogon": "dmb",
"Mombum": "mso",
"Momina": "mmb",
"Momuna": "mqf",
"Mon": "mnw",
"Mon Kuno": "omx",
"Mon Pertengahan": "mkh-mmn",
"Mon Thailand": "mnw-tha",
"Mon Yangum": "ymo",
"Mondropolon": "npn",
"Mondé": "mnd",
"Mongghul": "mjg-mgl",
"Mongo": "lol",
"Mongol Khamnigan": "ykh",
"Mongol Klasik": "cmg",
"Mongol Pertengahan": "xng",
"Mongolia": "mn",
"Mongondow": "mog",
"Moni": "mnz",
"Mono (California)": "mnr",
"Mono (Cameroon)": "mru",
"Mono (Congo)": "mnh",
"Monom": "moo",
"Monpa Kalaktang": "kkf",
"Montagnais": "moe",
"Montol": "mtl",
"Monumbo": "mxk",
"Monzombo": "moj",
"Moo": "gwg",
"Mor (Austronesia)": "mhz",
"Mor (Papua)": "moq",
"Moraid": "msg",
"Moran": "tbq-mor",
"Morawa": "mze",
"Morerebi": "xmo",
"Moresada": "msx",
"Mori Atas": "mzq",
"Mori Bawah": "xmz",
"Morigi": "mdb",
"Moro": "mor",
"Morokodo": "mgc",
"Morom": "bdo",
"Moronene": "mqn",
"Morori": "mok",
"Morouas": "mrp",
"Mortlock": "mrl",
"Moru": "mgd",
"Mosimo": "mqv",
"Moskona": "mtj",
"Mossi": "mos",
"Mota": "mtt",
"Motembo": "tmv",
"Motu": "meu",
"Mouk-Aria": "mwh",
"Mouwase": "jmw",
"Movima": "mzp",
"Moyadan Itneg": "ity",
"Mozarab": "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",
"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",
"Muji Qila": "ymq",
"Muji Selatan": "ymc",
"Muji Utara": "ymx",
"Mukha-Dora": "mmk",
"Mukulu": "moz",
"Mulaha": "mfw",
"Mulam": "mlm",
"Mullu Kurumba": "kpb",
"Mullukmulluk": "mpb",
"Muluridyi": "vmu",
"Mum": "kqa",
"Mumuye": "mzm",
"Muna": "mnb",
"Munda": "unx",
"Mundabli": "boe",
"Mundang": "mua",
"Mundani": "mnf",
"Mundari": "unr",
"Mundat": "mmf",
"Mundolinco": "art-mun",
"Mundurukú": "myu",
"Mungaka": "mhk",
"Mungbam": "mij",
"Munggui": "mth",
"Mungkip": "mpv",
"Muniche": "myr",
"Munit": "mtc",
"Munji": "mnj",
"Munsee": "umu",
"Muong": "mtq",
"Mur Pano": "tkv",
"Muratayak": "asx",
"Muria Barat": "mut",
"Muria Barat Jauh": "fmu",
"Muria Timur": "emu",
"Murik (Malaysia)": "mxr",
"Murik (New Guinea)": "mtf",
"Murkim": "rmh",
"Murle": "mur",
"Murrinh-Patha": "mwf",
"Mursi": "muz",
"Murui Huitoto": "huu",
"Murupi": "mqw",
"Murut Keningau": "kxi",
"Murut Serudung": "srk",
"Murut Timugon": "tih",
"Muruwari": "zmu",
"Musan": "mmp",
"Musasa": "smm",
"Musey": "mse",
"Musgu": "mug",
"Musi": "mui",
"Muskum": "mje",
"Musom": "msu",
"Mussau-Emira": "emi",
"Muthuvan": "muv",
"Mutu": "tuc",
"Muya": "mvm",
"Muyang": "muy",
"Muyu Selatan": "kts",
"Muyu Utara": "kti",
"Muyuw": "myw",
"Muzi": "ymz",
"Muzo": "sai-muz",
"Mvanip": "mcj",
"Mvuba": "mxh",
"Mwaghavul": "sur",
"Mwakai": "mgt",
"Mwali Comorian": "wlc",
"Mwan": "moa",
"Mwani": "wmw",
"Mwatebu": "mwa",
"Mwera": "mwe",
"Mwerlap": "mrm",
"Mwimbi-Muthambi": "mws",
"Mwotlap": "mlv",
"Myene": "mye",
"Mysian": "yms",
"Mòcheno": "mhn",
"Mün Chin": "mwq",
"Mündü": "muh",
"Māori": "mi",
"Mạ": "cma",
"N'Ko": "nqo",
"Na": "nbt",
"Naaba": "nao",
"Naba": "mne",
"Nabak": "naf",
"Nabi": "mty",
"Nachering": "ncd",
"Nadruvia": "ndf",
"Nadëb": "mbj",
"Nafaanra": "nfr",
"Nafi": "srf",
"Nafri": "nxx",
"Naga Chokri": "nri",
"Naga Chothe": "nct",
"Naga Inpui": "nkf",
"Naga Khezha": "nkh",
"Naga Khiamniungan": "kix",
"Naga Khoibu": "nkb",
"Naga Konyak": "nbe",
"Naga Kyan-Karyaw": "nqq",
"Naga Lao": "nlq",
"Naga Liangmai": "njn",
"Naga Lotha": "njh",
"Naga Mao": "nbi",
"Naga Maram": "nma",
"Naga Maring": "nng",
"Naga Monsang": "nmh",
"Naga Moyon": "nmo",
"Naga Mzieme": "nme",
"Naga Pochuri": "npo",
"Naga Puimei": "npu",
"Naga Rengma Selatan": "nre",
"Naga Rengma Utara": "nnl",
"Naga Rongmei": "nbu",
"Naga Sangtam": "nsa",
"Naga Tangkhul": "nmf",
"Naga Thangal": "nki",
"Naga Zeme": "nzm",
"Nagarchal": "nbg",
"Nage": "nxe",
"Nagu": "ngr",
"Nagumi": "ngv",
"Nahali": "nlx",
"Nahari": "nhh",
"Nahavaq": "sns",
"Nahuatl": "nah",
"Nahuatl Coatepec": "naz",
"Nahuatl Cosoleacaque": "nhk",
"Nahuatl Durango Barat": "azn",
"Nahuatl Durango Timur": "azd",
"Nahuatl Guerrero": "ngu",
"Nahuatl Huasteca Barat": "nhw",
"Nahuatl Huasteca Tengah": "nch",
"Nahuatl Huasteca Timur": "nhe",
"Nahuatl Huaxcaleca": "nhq",
"Nahuatl Klasik": "nci",
"Nahuatl Mecayapan": "nhx",
"Nahuatl Michoacán": "ncl",
"Nahuatl Morelos": "nhm",
"Nahuatl Oaxaca Utara": "nhy",
"Nahuatl Ometepec": "nht",
"Nahuatl Orizaba": "nlv",
"Nahuatl Pajapan": "nhp",
"Nahuatl Puebla Tanah Tinggi": "azz",
"Nahuatl Puebla Tengah": "ncx",
"Nahuatl Puebla Tenggara": "npl",
"Nahuatl Puebla Utara": "ncj",
"Nahuatl Santa María La Alta": "nhz",
"Nahuatl Sierra Negra": "nsu",
"Nahuatl Tabasco": "nhc",
"Nahuatl Temascaltepec": "nhv",
"Nahuatl Tengah": "nhn",
"Nahuatl Tetelcingo": "nhg",
"Nahuatl Tlamacazapa": "nuz",
"Nahuatl Zacatlán-Ahuacatlán-Tepetzintla": "nhi",
"Nai": "bio",
"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",
"Nama": "nmx",
"Namakura": "nmk",
"Namat": "nkm",
"Nambikwara": "nab",
"Nambo": "ncm",
"Nambya": "nmq",
"Namia": "nnm",
"Namiae": "nvm",
"Namla": "naa",
"Namo": "mxw",
"Namonuito": "nmt",
"Namosi-Naitasiri-Serua": "bwb",
"Namuyi": "nmy",
"Nancere": "nnc",
"Nande": "nnb",
"Nandi": "niq",
"Nanerigé Sénoufo": "sen",
"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",
"Nauru": "na",
"Navajo": "nv",
"Navarro-Aragon Kuno": "roa-ona",
"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",
"Ndaka": "ndk",
"Ndali": "ndh",
"Ndam": "ndm",
"Ndamba": "ndj",
"Ndambomo": "nxo",
"Ndasa": "nda",
"Ndau": "ndc",
"Nde-Gbite": "ned",
"Nde-Nsele-Nta": "ndd",
"Ndebele Selatan": "nr",
"Ndebele Utara": "nd",
"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",
"Ndzwani Comorian": "wni",
"Neapolit": "nap",
"Nedebang": "nec",
"Nefamese": "nef",
"Nefusa": "jbn",
"Negerhollands": "dcr",
"Negidal": "neg",
"Nehan": "nsn",
"Nek": "nif",
"Nekgini": "nkg",
"Neko": "nej",
"Neku": "nek",
"Neme": "nex",
"Nemi": "nem",
"Nen": "nqn",
"Nend": "anh",
"Nenets Hutan": "yrk-for",
"Nenets Tundra": "yrk",
"Nengone": "nen",
"Neo": "neu",
"Neo-Aram Bohtan": "bhn",
"Neo-Aramia Assyria": "aii",
"Neo-Aramia Barat": "amw",
"Nepal": "ne",
"Nepal Kurux": "kxl",
"Nese": "poz-nes",
"Nete": "net",
"Neve'ei": "vnm",
"Neverver": "lgk",
"New Caledonian Javanese": "jas",
"Newar": "new",
"Newar Klasik": "nwc",
"Newar Pertengahan": "nwx",
"Neyo": "ney",
"Nez Perce": "nez",
"Nga La": "hlt",
"Ngaanyatjarra": "ntj",
"Ngad'a Timur": "nea",
"Ngadha": "nxg",
"Ngadjunmaya": "nju",
"Ngadjuri": "jui",
"Ngaiawang": "nwg",
"Ngaing": "nnf",
"Ngaju": "nij",
"Ngala": "nud",
"Ngalakan": "nig",
"Ngalkbun": "ngk",
"Ngalum": "szb",
"Ngam": "nmc",
"Ngamambo": "nbv",
"Ngambay": "sba",
"Ngamini": "nmv",
"Ngamo": "nbh",
"Ngan'gityemerri": "nam",
"Nganakarti": "xnk",
"Nganasan": "nio",
"Ngandi": "nid",
"Ngando (Congo)": "nxd",
"Ngando (Republik Afrika Tengah)": "ngd",
"Ngandyera": "nne",
"Ngantangarra": "ntg",
"Nganyaywana": "nyx",
"Ngardi": "rxd",
"Ngarigu": "xni",
"Ngarinman": "nbj",
"Ngarinyin": "ung",
"Ngarla": "nrk",
"Ngarluma": "nrl",
"Ngarrindjeri": "nay",
"Ngas": "anc",
"Ngasa": "nsg",
"Ngawun": "nxn",
"Ngbaka": "nga",
"Ngbaka Ma'bo": "nbm",
"Ngbaka Manza": "ngg",
"Ngbandi Selatan": "nbw",
"Ngbandi Utara": "ngb",
"Ngbee": "jgb",
"Ngbinda": "nbd",
"Ngbundu": "nuu",
"Ngelima": "agh",
"Ngemba": "nge",
"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 (Congo)": "ngc",
"Ngombe (Republik Afrika Tengah)": "nmj",
"Ngong": "nnx",
"Ngongo": "noq",
"Ngoni": "ngo",
"Ngoreme": "ngq",
"Ngoshie": "nsh",
"Ngulu": "ngp",
"Nguluwan": "nuw",
"Ngumbi": "nui",
"Ngunawal": "xul",
"Ngundi": "ndn",
"Ngundu": "nue",
"Ngungwel": "ngz",
"Ngurmbur": "nrx",
"Nguôn": "nuo",
"Ngwaba": "ngw",
"Ngwe": "nwe",
"Ngwi": "nlo",
"Ngwo": "ngn",
"Ngäbere": "gym",
"Nhanda": "nha",
"Nheengatu": "yrl",
"Nhirrpi": "hrp",
"Nhuwala": "nhf",
"Nias": "nia",
"Nicobar Selatan": "nik",
"Nicobar Tengah": "ncb",
"Nicola": "ath-nic",
"Nicoleño": "azc-nic",
"Niellim": "nie",
"Nihali": "nll",
"Nii": "nii",
"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",
"Ninzo": "nin",
"Nipsan": "nps",
"Nisa": "njs",
"Nisenan": "nsz",
"Nisga'a": "ncg",
"Nisi": "yso",
"Nisu Barat Laut": "nsf",
"Nisu Selatan": "nsd",
"Nisu Timur": "nos",
"Nisu Utara": "yiv",
"Niuafo'ou": "num",
"Niuatoputapu": "nkp",
"Niue": "niu",
"Nivaclé": "cag",
"Nivkh": "niv",
"Niwer Mil": "hrc",
"Njalgulgule": "njl",
"Njebi": "nzb",
"Njen": "njj",
"Njerep": "njr",
"Njyem": "njy",
"Nkami": "nkq",
"Nkangala": "nkn",
"Nkari": "nkz",
"Nkem-Nkum": "isi",
"Nkhumbi": "khu",
"Nkongho": "nkc",
"Nkonya": "nko",
"Nkoroo": "nkx",
"Nkoya": "nka",
"Nkukoli": "nbo",
"Nkutu": "nkw",
"Nnam": "nbp",
"Nobiin": "fia",
"Nocte": "njb",
"Nogai": "nog",
"Noipä": "npx",
"Noiri": "noi",
"Nokuku": "nkk",
"Nomaande": "lem",
"Nomane": "nof",
"Nomatsiguenga": "not",
"Nomlaki": "nol",
"Nomu": "noh",
"Nong Zhuang": "zhn",
"Nonuya": "noj",
"Nooksack": "nok",
"Noon": "snf",
"Noone": "nhu",
"Nootka": "nuk",
"Nopala Chatino": "cya",
"Noric": "nrc",
"Norman": "nrf",
"Norn": "nrn",
"Norra": "nrr",
"Norse Kuno": "non",
"Norway": "no",
"Norway Pengembara": "rmg",
"Norway Pertengahan": "gmq-mno",
"Nossob Bawah": "nsb",
"Notre": "bly",
"Notsi": "ncf",
"Nottoway": "ntw",
"Nottoway-Meherrin": "nwy",
"Novgorod Kuno": "zle-ono",
"Novial": "nov",
"Noy": "noy",
"Nsari": "asj",
"Nsenga": "nse",
"Nshi": "nsc",
"Nsong": "soo",
"Nsongo": "nsx",
"Ntcham": "bud",
"Ntomba": "nto",
"Ntra'ngith": "dgt",
"Nuaulu Selatan": "nxl",
"Nuaulu Utara": "nni",
"Nubaca": "baf",
"Nubi": "kcn",
"Nubia Kuno": "onw",
"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",
"Numee": "kdk",
"Numidia": "nxm",
"Nungali": "nug",
"Nunggubuyu": "nuy",
"Nungon": "paa-nun",
"Nungu": "rin",
"Nuni Selatan": "nnw",
"Nuni Utara": "nuv",
"Nuosu": "ii",
"Nupbikha": "npb",
"Nupe": "nup",
"Nusa Laut": "nul",
"Nusu": "nuf",
"Nutabe": "cba-nut",
"Nyabwa": "nwb",
"Nyagrong Minyag": "ero-nya",
"Nyah Kur": "cbn",
"Nyaheun": "nev",
"Nyakyusa": "nyy",
"Nyala Timur": "nle",
"Nyali": "nlj",
"Nyam": "nmi",
"Nyamal": "nly",
"Nyambo": "now",
"Nyamusa-Molo": "nwm",
"Nyamwanga": "mwn",
"Nyamwezi": "nym",
"Nyaneka": "nyk",
"Nyang'i": "nyp",
"Nyanga (Congo)": "nyj",
"Nyanga (Togo)": "ayg",
"Nyanga-li": "nyc",
"Nyangatom": "nnj",
"Nyangbo": "nyb",
"Nyangga": "nny",
"Nyangumarta": "nna",
"Nyankole": "nyn",
"Nyarafolo Senoufo": "sev",
"Nyaturu": "rim",
"Nyaw": "nyw",
"Nyawaygi": "nyt",
"Nyemba": "nba",
"Nyengo": "nye",
"Nyenkha": "neh",
"Nyeu": "nyl",
"Nyigina": "nyh",
"Nyiha": "nih",
"Nyika": "nkt",
"Nyimang": "nyi",
"Nyindrou": "lid",
"Nyindu": "nyg",
"Nyishi": "njz",
"Nyiyaparli": "xny",
"Nynorsk Norway": "nn",
"Nyokon": "nvo",
"Nyole (Kenya)": "nyd",
"Nyole (Uganda)": "nuj",
"Nyong": "muo",
"Nyoro": "nyo",
"Nyulnyul": "nyv",
"Nyunga": "nys",
"Nyungwe": "nyu",
"Nyâlayu": "yly",
"Nzadi": "nzd",
"Nzakambay": "nzy",
"Nzakara": "nzk",
"Nzanyi": "nja",
"Nzima": "nzi",
"Ná-Meo": "neo",
"Nùng": "nut",
"Nüpode Huitoto": "hux",
"Nǀuu": "ngh",
"O'chi'chi'": "xoc",
"O'du": "tyh",
"O'odham": "ood",
"Obanliku": "bzy",
"Obispeño": "obi",
"Oblo": "obl",
"Obo Manobo": "obo",
"Obokuitai": "afz",
"Obolo": "ann",
"Obulom": "obu",
"Ocaina": "oca",
"Occitan": "oc",
"Occitan Kuno": "pro",
"Od": "odk",
"Odia": "or",
"Odia Kuno": "inc-oor",
"Odia Pertengahan": "inc-mor",
"Odiai": "bhf",
"Odoodee": "kkc",
"Odual": "odu",
"Odut": "oda",
"Ofayé": "opy",
"Ofo": "ofo",
"Ogbah": "ogc",
"Ogbia": "ogb",
"Ogbogolo": "ogg",
"Ogbronuagum": "ogu",
"Ogea": "eri",
"Oghuz Awal Kuno": "trk-eog",
"Ohlone Selatan": "css",
"Ohlone Utara": "cst",
"Oirat Bertulis": "xwo",
"Oirata": "oia",
"Ojibwa Barat": "ojw",
"Ojibwa Barat Laut": "ojb",
"Ojibwa Tengah": "ojc",
"Ojibwa Timur": "ojg",
"Ojibwe": "oj",
"Ojitlán Chinantec": "chj",
"Okanagan": "oka",
"Oki-No-Erabu": "okn",
"Okiek": "oki",
"Okinawa": "ryu",
"Oko-Eni-Osayen": "oks",
"Oko-Juwoi": "okj",
"Okobo": "okb",
"Okodia": "okd",
"Okolod": "kqv",
"Okpamheri": "opa",
"Okpe (Edo Barat Daya)": "oke",
"Okpe (Edo Barat Laut)": "okx",
"Okpela": "atg",
"Oksapmin": "opm",
"Oku": "oku",
"Okwanuchu": "nai-okw",
"Olekha": "ole",
"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",
"Omi": "omi",
"Omok": "omk",
"Omotik": "omt",
"Omurano": "omu",
"One Inebu": "oin",
"One Molmo": "aun",
"One Selatan": "osu",
"One Utara": "onr",
"Oneida": "one",
"Ong": "oog",
"Ongota": "bxe",
"Onin": "oni",
"Onjob": "onj",
"Ono": "ons",
"Onobasulu": "onn",
"Onondaga": "ono",
"Ontenu": "ont",
"Oorlams": "oor",
"Opao": "opo",
"Opata": "opt",
"Opuuo": "lgn",
"Opón": "sai-opo",
"Orang Seletar": "ors",
"Oraon Sadri": "sdr",
"Orejón": "ore",
"Oring": "org",
"Oriya Adivasi": "ort",
"Orléanais": "roa-orl",
"Ormu": "orz",
"Ormuri": "oru",
"Oro": "orx",
"Oro Win": "orw",
"Oroch": "oac",
"Oroha": "ora",
"Orok": "oaa",
"Orokaiva": "okv",
"Oroko": "bdu",
"Orokolo": "oro",
"Oromo": "om",
"Oroqen": "orh",
"Orowe": "bpk",
"Oruma": "orr",
"Orya": "ury",
"Osage": "osa",
"Osamayi": "syx",
"Osatu": "ost",
"Osci": "osc",
"Osing": "osi",
"Ososo": "oso",
"Ossetia": "os",
"Ossetia Kuno": "oos",
"Ot Danum": "otd",
"Otank": "uta",
"Oti": "oti",
"Otomaco": "sai-oto",
"Otomi Estado de México": "ots",
"Otomi Ixtenco": "otz",
"Otomi Mezquital": "ote",
"Otomi Querétaro": "otq",
"Otomi Tanah Tinggi Timur": "otm",
"Otomi Temoaya": "ott",
"Otomi Tenango": "otn",
"Otomi Texcatepec": "otx",
"Otomi Tilapa": "otl",
"Otoro": "otr",
"Ottawa": "otw",
"Otuke": "otu",
"Ouma": "oum",
"Oune": "oue",
"Owa": "stn",
"Owenia": "wsr",
"Owiniga": "owi",
"Oy": "oyb",
"Oya'oya": "oyy",
"Oyda": "oyd",
"Ozumacín Chinantec": "chz",
"Pa": "ppt",
"Pa Di": "pdi",
"Pa'a": "pqa",
"Pa-Hng": "pha",
"Paama": "pma",
"Paasaal": "sig",
"Pacahuara": "pcp",
"Pacoh": "pac",
"Padoe": "pdo",
"Paelignian": "pgn",
"Paeonia": "ine-pae",
"Pagi": "pgi",
"Pagibete": "pae",
"Pagu": "pgu",
"Pahari-Potwari": "phr",
"Paharia Sawriya": "mjt",
"Pahi": "lgt",
"Pahlavani": "phv",
"Pai Tavytera": "pta",
"Paicî": "pri",
"Paikoneka": "awd-pai",
"Paipai": "ppi",
"Paite": "pck",
"Paiute Utara": "pao",
"Paiwan": "pwn",
"Pak-Tong": "pkg",
"Pakanha": "pkn",
"Paku": "pku",
"Pal": "abw",
"Palaic": "plq",
"Palaka Senoufo": "plr",
"Palantla Chinantec": "cpa",
"Palau": "pau",
"Palawano Barat Daya": "plv",
"Palawano Brooke's Point": "plw",
"Paleni": "pnl",
"Palenquero": "pln",
"Pali": "pi",
"Palikur": "plu",
"Paliyan": "pcf",
"Pallanganmiddang": "pmd",
"Palor": "fap",
"Palta": "sai-pal",
"Palu'e": "ple",
"Paluan": "plz",
"Palya Bareli": "bpx",
"Pam": "pmn",
"Pambia": "pmb",
"Pame Tengah": "pbs",
"Pame Utara": "pmq",
"Pamigua": "sai-pam",
"Pamlico": "pmk",
"Pamona": "pmf",
"Pamosu": "hih",
"Pana (Afrika Barat)": "pnq",
"Pana (Afrika Tengah)": "pnz",
"Panamint": "par",
"Panare": "pbh",
"Panará": "kre",
"Panasuan": "psn",
"Panawa": "pwb",
"Pancana": "pnp",
"Panchpargania": "tdb",
"Pande": "bkj",
"Pangasinan": "pag",
"Pangseng": "pgs",
"Pangutaran Sama": "slm",
"Pangwa": "pbr",
"Pangwali": "pgg",
"Panim": "pnr",
"Paniya": "pcg",
"Pankararé": "pax",
"Pankararú": "paz",
"Pankhu": "pkh",
"Pannei": "pnc",
"Panobo": "pno",
"Panyi Bai": "bfc",
"Panyjima": "pnw",
"Panzaleo": "sai-pnz",
"Pao": "ppa",
"Papantla Totonac": "top",
"Papapana": "ppn",
"Papar": "dpp",
"Papasena": "pas",
"Papel": "pbo",
"Papi": "ppe",
"Papiamentu": "pap",
"Papitalai": "pat",
"Papora": "ppu",
"Papuan Malay": "pmy",
"Papuma": "ppm",
"Para Naga": "pzn",
"Parachi": "prc",
"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",
"Parsi": "fa",
"Parsi Kuno": "peo",
"Parsi Pertengahan": "pal",
"Parthia": "xpr",
"Parya": "paq",
"Pashayi Barat Daya": "psh",
"Pashayi Tenggara": "psi",
"Pashayi Timur Laut": "aee",
"Pashto": "ps",
"Pasi": "psq",
"Pass Valley Yali": "yac",
"Pasé": "awd-pas",
"Patagón": "sai-ptg",
"Patamona": "pbc",
"Patani": "ptn",
"Pataxó Hã-Ha-Hãe": "pth",
"Patep": "ptp",
"Pathiya": "pty",
"Pattani": "lae",
"Pattapu": "ptq",
"Patwin": "pwi",
"Paulohi": "plh",
"Paumarí": "pad",
"Paunaca": "pnk",
"Pauri Bareli": "bfb",
"Pauserna": "psm",
"Pawaia": "pwa",
"Pawnee": "paw",
"Payaguá": "sai-pyg",
"Paynamar": "pmr",
"Pazeh": "pzh",
"Pe": "pai",
"Pear": "pcb",
"Peba": "sai-peb",
"Pech": "pay",
"Pecheneg": "xpc",
"Peerapper": "xpw",
"Peere": "pfe",
"Pei": "ppq",
"Pekal": "pel",
"Pela": "bxd",
"Pele-Ata": "ata",
"Pemon": "aoc",
"Penan Barat": "pne",
"Penan Timur": "pez",
"Penchal": "pek",
"Pendau": "ums",
"Pengo": "peg",
"Penobscot": "aaq",
"Penrhyn": "pnh",
"Pentlatch": "ptw",
"Perai": "wet",
"Peranakan Indonesian": "pea",
"Perancis": "fr",
"Perancis Kreol Karipúna": "kmv",
"Perancis Kreol Réunion": "rcf",
"Perancis Kreol San Miguel": "scf",
"Perancis Kuno": "fro",
"Perancis Pertengahan": "frm",
"Perema": "wom",
"Pericú": "nai-per",
"Pero": "pip",
"Petapa Zapotec": "zpe",
"Petats": "pex",
"Petjo": "pey",
"Phai": "prt",
"Phake": "phk",
"Phala": "ypa",
"Phalura": "phl",
"Phana'": "phq",
"Phangduwali": "phw",
"Phende": "pem",
"Phimbi": "phm",
"Phoenicia": "phn",
"Phola": "ypg",
"Pholo": "yip",
"Phom": "nph",
"Phong-Kniang": "pnx",
"Phrae Pwo": "kjt",
"Phrygia": "xpg",
"Phu Thai": "pht",
"Phuan": "phu",
"Phudagi": "phd",
"Phuie": "pug",
"Phukha": "phh",
"Phuma": "ypm",
"Phunoi": "pho",
"Phuong": "phg",
"Phupa": "ypp",
"Phupha": "yph",
"Phuthi": "bnt-phu",
"Phuza": "ypz",
"Piamatsina": "ptr",
"Piame": "pin",
"Piapoco": "pio",
"Piaroa": "pid",
"Picard": "pcd",
"Picene Utara": "nrp",
"Picenum Selatan": "spx",
"Pichinglis": "fpe",
"Pichis Ashéninka": "cpu",
"Pict": "xpi",
"Picuris": "nai-pic",
"Pidgin Basque-Iceland": "crp-bip",
"Pidgin Delaware": "dep",
"Pidgin Greenland Barat": "crp-gep",
"Pidgin Iha": "ihb",
"Pidgin Jerman Kiautschou": "crp-kia",
"Pidgin Ladang Samoa": "crp-spp",
"Pidgin Naga": "nag",
"Pidgin Ndyuka-Trio": "njt",
"Pidgin Onin": "onx",
"Pidgin Portugis Macau": "crp-mpp",
"Pidgin Rusia Taimyr": "crp-tpr",
"Pidgin Rusia-China": "crp-cpr",
"Piemonte": "pms",
"Pijao": "pij",
"Pije": "piz",
"Pijin": "pis",
"Pijin Cameroon": "wes",
"Pijin Nigeria": "pcm",
"Pilagá": "plg",
"Pileni": "piv",
"Pima Bajo": "pia",
"Pimbwe": "piw",
"Pinai-Hagahai": "pnn",
"Pingelapese": "pif",
"Pinghua Selatan": "csp",
"Pinghua Utara": "cnp",
"Pini": "pii",
"Pinigura": "pnv",
"Pinjarup": "pnj",
"Pinji": "pic",
"Pintiini": "pti",
"Pintupi-Luritja": "piu",
"Pinyin": "pny",
"Pipil": "ppl",
"Pirahã": "myp",
"Piratapuyo": "pir",
"Pirlatapa": "bxi",
"Piro": "pie",
"Pirriya": "xpa",
"Pisabo": "pig",
"Pisaflores Tepehua": "tpp",
"Piscataway": "psy",
"Pisidia": "xps",
"Pitcairn-Norfolk": "pih",
"Piti": "pcn",
"Pitjantjatjara": "pjt",
"Pitta-Pitta": "pit",
"Piu": "pix",
"Piya-Kwonci": "piy",
"Plains Cree": "crk",
"Plains Indian Sign Language": "psd",
"Plains Miwok": "pmw",
"Plapo Krumen": "ktj",
"Plautdietsch": "pdt",
"Pnar": "pbv",
"Pochutec": "xpo",
"Podoko": "pbi",
"Pogali": "hkh",
"Pogolo": "poy",
"Pohnpei": "pon",
"Poitevin-Saintongeais": "roa-poi",
"Pokangá": "pok",
"Poke": "pof",
"Pol": "pmm",
"Polabia": "pox",
"Poland": "pl",
"Poland Kuno": "zlw-opl",
"Polci": "plj",
"Polonombauk": "plb",
"Pom": "pmo",
"Pomo Selatan": "peq",
"Pomo Tengah": "poo",
"Pomo Tenggara": "pom",
"Pomo Timur": "peb",
"Pomo Timur Laut": "pef",
"Pomo Utara": "pej",
"Ponam": "ncc",
"Pongu": "png",
"Ponosakan": "pns",
"Ponyo": "npg",
"Poqomam": "poc",
"Poqomchi'": "poh",
"Porohanon": "prh",
"Port Sandwich": "psw",
"Port Sorell": "xpl",
"Port Vato": "ptv",
"Portugis": "pt",
"Portugis Kreol Korlai": "vkp",
"Potawatomi": "pot",
"Potiguára": "pog",
"Poumei Naga": "pmx",
"Pouye": "bye",
"Powari": "pwr",
"Powhatan": "pim",
"Poyanáwa": "pyn",
"Pra-Samnit": "itc-psa",
"Prakrit": "pra",
"Prakrit Ashoka": "inc-ash",
"Prakrit Kamarupi": "inc-kam",
"Prakrit Niya": "pra-niy",
"Prasuni": "prn",
"Primitive Irish": "pgl",
"Principe": "pre",
"Proto-Abkhaz-Abaza": "cau-abz-pro",
"Proto-Afroasiatik": "afa-pro",
"Proto-Albania": "sqj-pro",
"Proto-Algic": "aql-pro",
"Proto-Algonquian": "alg-pro",
"Proto-Amuesha-Chamicuro": "awd-amc-pro",
"Proto-Anatolia": "ine-ana-pro",
"Proto-Andaman Besar": "qfa-adm-pro",
"Proto-Andian": "cau-and-pro",
"Proto-Apachean": "apa-pro",
"Proto-Arawa": "auf-pro",
"Proto-Arawak": "awd-pro",
"Proto-Armenia": "hyx-pro",
"Proto-Arnhem": "aus-arn-pro",
"Proto-Aroid": "omv-aro-pro",
"Proto-Asli": "mkh-asl-pro",
"Proto-Atayalik": "map-ata-pro",
"Proto-Athabaskan": "ath-pro",
"Proto-Atlantik-Congo": "alv-pro",
"Proto-Austroasiatik": "aav-pro",
"Proto-Austronesia": "map-pro",
"Proto-Avaro-Andian": "cau-ava-pro",
"Proto-Bahnar": "mkh-ban-pro",
"Proto-Bai": "sit-bai-pro",
"Proto-Balto-Slav": "ine-bsl-pro",
"Proto-Bantoid": "nic-bod-pro",
"Proto-Bantu": "bnt-pro",
"Proto-Basque": "euq-pro",
"Proto-Batak": "btk-pro",
"Proto-Be": "qfa-onb-pro",
"Proto-Be-Tai": "qfa-bet-pro",
"Proto-Benue-Congo": "nic-bco-pro",
"Proto-Berber": "ber-pro",
"Proto-Binandere": "ngf-bin-pro",
"Proto-Bodish": "sit-bdi-pro",
"Proto-Bodo-Garo": "tbq-bdg-pro",
"Proto-Bongo-Bagirmi": "csu-bba-pro",
"Proto-Bora": "sai-bor-pro",
"Proto-Brythonic": "cel-bry-pro",
"Proto-Bua": "alv-bua-pro",
"Proto-Bungku-Tolaki": "poz-btk-pro",
"Proto-Burma": "tbq-brm-pro",
"Proto-Caddoan": "cdd-pro",
"Proto-Cangin": "alv-cng-pro",
"Proto-Carib": "sai-car-pro",
"Proto-Celtic": "cel-pro",
"Proto-Cerrado": "sai-cer-pro",
"Proto-Chadic": "cdc-pro",
"Proto-Chadic Tengah": "cdc-cbm-pro",
"Proto-Chamic": "cmc-pro",
"Proto-Chatino": "omq-cha-pro",
"Proto-Chibchan": "cba-pro",
"Proto-Chimakuan": "chi-pro",
"Proto-Chinook": "nai-ckn-pro",
"Proto-Chukotko-Kamchatka": "qfa-cka-pro",
"Proto-Chumash": "nai-chu-pro",
"Proto-Circassian": "cau-cir-pro",
"Proto-Cross River Atas": "nic-ucr-pro",
"Proto-Cross River Bawah": "nic-lcr-pro",
"Proto-Cupan": "azc-cup-pro",
"Proto-Cushitic": "cus-pro",
"Proto-Cushitic Selatan": "cus-sou-pro",
"Proto-Cushitic Timur Tanah Tinggi": "cus-hec-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-Dravidia": "dra-pro",
"Proto-Dravidia Selatan": "dra-sou-pro",
"Proto-Dravidia Selatan I": "dra-sdo-pro",
"Proto-Dravidia Selatan II": "dra-sdt-pro",
"Proto-Dravidia Tengah": "dra-cen-pro",
"Proto-Dravidia Utara": "dra-nor-pro",
"Proto-Edekiri": "alv-edk-pro",
"Proto-Edoid": "alv-edo-pro",
"Proto-Ersu": "sit-ers-pro",
"Proto-Eskimo": "esx-esk-pro",
"Proto-Eskimo-Aleut": "esx-pro",
"Proto-Fali": "alv-fli-pro",
"Proto-Filipina": "phi-pro",
"Proto-Finnik": "urj-fin-pro",
"Proto-Gbaya": "gba-pro",
"Proto-Gbe": "alv-gbe-pro",
"Proto-Georgia-Zan": "ccs-gzn-pro",
"Proto-Germanik": "gem-pro",
"Proto-Germanik Barat": "gmw-pro",
"Proto-Grassfields": "nic-grf-pro",
"Proto-Guang": "alv-gng-pro",
"Proto-Gur": "nic-gur-pro",
"Proto-Gurunsi": "nic-gns-pro",
"Proto-Halmahera Utara": "paa-nha-pro",
"Proto-Halmahera-Cenderawasih": "poz-hce-pro",
"Proto-Heiban": "alv-hei-pro",
"Proto-Hellenik": "grk-pro",
"Proto-Hlai": "qfa-lic-pro",
"Proto-Hmong-Mien": "hmx-pro",
"Proto-Hmongik": "hmn-pro",
"Proto-Hrusish": "sit-hrs-pro",
"Proto-Hurro-Urartia": "qfa-hur-pro",
"Proto-Idomoid": "alv-ido-pro",
"Proto-Igboid": "alv-igb-pro",
"Proto-Ijoid": "ijo-pro",
"Proto-Indo-Arya": "inc-pro",
"Proto-Indo-Eropah": "ine-pro",
"Proto-Indo-Iran": "iir-pro",
"Proto-Inuit": "esx-inu-pro",
"Proto-Iran": "ira-pro",
"Proto-Iroquois": "iro-pro",
"Proto-Iroquois Utara": "iro-nor-pro",
"Proto-Italik": "itc-pro",
"Proto-Iwaidjan": "aus-wdj-pro",
"Proto-Jebel Timur": "sdv-eje-pro",
"Proto-Jeponik": "jpx-pro",
"Proto-Jukunoid": "nic-jkn-pro",
"Proto-Jê": "sai-jee-pro",
"Proto-Jê Selatan": "sai-sje-pro",
"Proto-Jê Tengah": "sai-cje-pro",
"Proto-Jê Utara": "sai-nje-pro",
"Proto-Kadu": "qfa-kad-pro",
"Proto-Kalamian": "phi-kal-pro",
"Proto-Kalapuya": "nai-klp-pro",
"Proto-Kam-Sui": "qfa-kms-pro",
"Proto-Kampa": "awd-kmp-pro",
"Proto-Kamta": "inc-krd-pro",
"Proto-Karen": "kar-pro",
"Proto-Kartvelia": "ccs-pro",
"Proto-Katuik": "mkh-kat-pro",
"Proto-Kaukasia Barat Laut": "cau-nwc-pro",
"Proto-Kaukasia Timur Laut": "cau-nec-pro",
"Proto-Kham": "sit-kha-pro",
"Proto-Khanty": "kca-pro",
"Proto-Khasian": "aav-khs-pro",
"Proto-Khmer": "mkh-kmr-pro",
"Proto-Khmuik": "mkh-khm-pro",
"Proto-Kho-Bwa": "sit-khb-pro",
"Proto-Kho-Bwa Barat": "sit-khw-pro",
"Proto-Khoe": "khi-kho-pro",
"Proto-Koma": "ssa-kom-pro",
"Proto-Komisenia": "ira-kms-pro",
"Proto-Korea": "qfa-kor-pro",
"Proto-Kra": "qfa-kra-pro",
"Proto-Kra-Dai": "qfa-tak-pro",
"Proto-Kru": "kro-pro",
"Proto-Kuki-Chin": "tbq-kuk-pro",
"Proto-Kuliak": "ssa-klk-pro",
"Proto-Kurd": "ku-pro",
"Proto-Kwa": "alv-kwa-pro",
"Proto-Lalo": "tbq-lal-pro",
"Proto-Lampungik": "poz-lgx-pro",
"Proto-Lezghian": "cau-lzg-pro",
"Proto-Lolo": "tbq-lol-pro",
"Proto-Lolo-Burma": "tbq-lob-pro",
"Proto-Luish": "sit-luu-pro",
"Proto-Maidu": "nai-mdu-pro",
"Proto-Mande": "dmn-pro",
"Proto-Mande Barat": "dmn-mdw-pro",
"Proto-Mangbetu": "csu-maa-pro",
"Proto-Mansi": "mns-pro",
"Proto-Mari": "chm-pro",
"Proto-Masa": "cdc-mas-pro",
"Proto-Maya": "myn-pro",
"Proto-Mazatec": "omq-maz-pro",
"Proto-Medo-Parthia": "ira-mpr-pro",
"Proto-Melayik": "poz-mly-pro",
"Proto-Melayu-Chamic": "poz-mcm-pro",
"Proto-Melayu-Polenesia": "poz-pro",
"Proto-Melayu-Polenesia Tengah-Timur": "poz-cet-pro",
"Proto-Melayu-Polenesia Timur": "pqe-pro",
"Proto-Melayu-Sumbawa": "poz-msa-pro",
"Proto-Mienik": "hmx-mie-pro",
"Proto-Mikronesia": "poz-mic-pro",
"Proto-Min": "zhx-min-pro",
"Proto-Mixe-Zoque": "nai-miz-pro",
"Proto-Mixtec": "omq-mxt-pro",
"Proto-Mixtecan": "omq-mix-pro",
"Proto-Mon-Khmer": "mkh-pro",
"Proto-Mongolia": "xgn-pro",
"Proto-Monik": "mkh-mnc-pro",
"Proto-Mordvinik": "urj-mdv-pro",
"Proto-Mumuye": "alv-mum-pro",
"Proto-Munda": "mun-pro",
"Proto-Munji-Yidgha": "ira-mny-pro",
"Proto-Muskogi": "nai-mus-pro",
"Proto-Na-Dene": "xnd-pro",
"Proto-Naga Tengah": "sit-aao-pro",
"Proto-Naga Utara": "sit-kon-pro",
"Proto-Nahuan": "azc-nah-pro",
"Proto-Naish": "sit-nas-pro",
"Proto-Nakh": "cau-nkh-pro",
"Proto-Nawiki": "awd-nwk-pro",
"Proto-New South Wales Tengah": "aus-cww-pro",
"Proto-Nguni": "bnt-ngu-pro",
"Proto-Nicobarese": "aav-nic-pro",
"Proto-Niger-Congo": "nic-pro",
"Proto-Nilo-Sahara": "ssa-pro",
"Proto-Nilotik": "sdv-nil-pro",
"Proto-Norse": "gmq-pro",
"Proto-Nubia": "nub-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-Oceania": "poz-oce-pro",
"Proto-Ogoni": "nic-ogo-pro",
"Proto-Omotic": "omv-pro",
"Proto-Onga": "qfa-ong-pro",
"Proto-Oti-Volta": "nic-ovo-pro",
"Proto-Oti-Volta Timur": "nic-eov-pro",
"Proto-Oto-Manguean": "omq-pro",
"Proto-Oto-Pamean": "omq-otp-pro",
"Proto-Otomi": "oto-otm-pro",
"Proto-Otomian": "oto-pro",
"Proto-Pakanik": "mkh-pkn-pro",
"Proto-Palaungik": "mkh-pal-pro",
"Proto-Pama-Nyungan": "aus-pam-pro",
"Proto-Paresi-Waura": "awd-prw-pro",
"Proto-Pasifik Tengah": "poz-pcc-pro",
"Proto-Pathan": "ira-pat-pro",
"Proto-Pearik": "mkh-pea-pro",
"Proto-Permik": "urj-prm-pro",
"Proto-Plateau": "nic-plt-pro",
"Proto-Plateau Penutian": "nai-plp-pro",
"Proto-Pnar-Khasi-Lyngngam": "aav-pkl-pro",
"Proto-Polinesia": "poz-pol-pro",
"Proto-Polinesia Nukleus": "poz-pnp-pro",
"Proto-Polinesia Timur": "poz-pep-pro",
"Proto-Pomo": "nai-pom-pro",
"Proto-Puroik": "sit-khp-pro",
"Proto-Quechua": "qwe-pro",
"Proto-Rukai": "dru-pro",
"Proto-Ryukyu": "jpx-ryu-pro",
"Proto-Sabaki": "bnt-sab-pro",
"Proto-Saka": "xsc-sak-pro",
"Proto-Saka-Wakhi": "xsc-skw-pro",
"Proto-Salish": "sal-pro",
"Proto-Sami": "smi-pro",
"Proto-Samoyed": "syd-pro",
"Proto-Sanglechi-Ishkashimi": "ira-sgi-pro",
"Proto-Sara": "csu-sar-pro",
"Proto-Sarawak Utara": "poz-swa-pro",
"Proto-Sarmatia": "xsc-sar-pro",
"Proto-Scythia": "xsc-pro",
"Proto-Selkup": "sel-pro",
"Proto-Semitik": "sem-pro",
"Proto-Semitik Barat": "sem-wes-pro",
"Proto-Shughni-Roshani": "ira-shr-pro",
"Proto-Shughni-Yazghulami": "ira-shy-pro",
"Proto-Shughni-Yazghulami-Munji": "ira-sym-pro",
"Proto-Sino-Tibet": "sit-pro",
"Proto-Siouan": "sio-pro",
"Proto-Siouan-Catawba": "nai-sca-pro",
"Proto-Slav": "sla-pro",
"Proto-Sogdia": "ira-sgc-pro",
"Proto-Somaloid": "cus-som-pro",
"Proto-Songhai": "son-pro",
"Proto-Sotho-Tswana": "bnt-sts-pro",
"Proto-Sudan Tengah": "csu-pro",
"Proto-Sulawesi Selatan": "poz-ssw-pro",
"Proto-Ta-Arawak": "awd-taa-pro",
"Proto-Tai": "tai-pro",
"Proto-Tai Barat Daya": "tai-swe-pro",
"Proto-Takic": "azc-tak-pro",
"Proto-Taman": "sdv-tmn-pro",
"Proto-Tamang": "sit-tam-pro",
"Proto-Tangkhul": "sit-tng-pro",
"Proto-Tani": "sit-tan-pro",
"Proto-Taranoan": "sai-tar-pro",
"Proto-Tatik": "xme-ttc-pro",
"Proto-Tocharia": "ine-toc-pro",
"Proto-Togo Tengah": "alv-gtm-pro",
"Proto-Totozoquean": "nai-tot-pro",
"Proto-Trans-New Guinea": "ngf-pro",
"Proto-Triqui": "omq-tri-pro",
"Proto-Tsezian": "cau-tsz-pro",
"Proto-Tsimshianik": "nai-tsi-pro",
"Proto-Tungus": "tuw-pro",
"Proto-Tupi-Guarani": "tup-gua-pro",
"Proto-Tupia": "tup-pro",
"Proto-Turkik": "trk-pro",
"Proto-Ubangian": "nic-ubg-pro",
"Proto-Ugrik": "urj-ugr-pro",
"Proto-Uralik": "urj-pro",
"Proto-Utik": "nai-utn-pro",
"Proto-Uto-Aztecan": "azc-pro",
"Proto-Vietik": "mkh-vie-pro",
"Proto-Volta-Congo": "nic-vco-pro",
"Proto-Volta-Niger": "alv-von-pro",
"Proto-Witotoan": "sai-wit-pro",
"Proto-Yenisei": "qfa-yen-pro",
"Proto-Yoruba": "alv-yor-pro",
"Proto-Yoruboid": "alv-yrd-pro",
"Proto-Yukaghir": "qfa-yuk-pro",
"Proto-Yupik": "ypk-pro",
"Proto-Zapotec": "omq-zpc-pro",
"Proto-Zapotecan": "omq-zap-pro",
"Proto-Zaza-Gorani": "ira-zgr-pro",
"Prusia Kuno": "prg",
"Psikye": "kvj",
"Puare": "pux",
"Puebla Mazatec": "pbm",
"Puelche": "pue",
"Puinave": "pui",
"Puiron": "sit-prn",
"Pukapukan": "pkp",
"Pulabu": "pup",
"Pulau Bruny": "xpz",
"Pulau Flinders": "fln",
"Puluwat": "puw",
"Puma": "pum",
"Pumi Selatan": "pmj",
"Pumi Utara": "pmi",
"Pumpokol": "xpm",
"Pumé": "yae",
"Punan Aput": "pud",
"Punan Bah-Biau": "pna",
"Punan Batu": "pnm",
"Punan Merah": "puf",
"Punan Merap": "puc",
"Punan Tubu": "puj",
"Punik": "xpu",
"Punjabi": "pa",
"Punjabi Barat": "pnb",
"Punjabi Kuno": "inc-opa",
"Punu": "puu",
"Puoc": "puo",
"Puquina": "puq",
"Puragi": "pru",
"Purari": "iar",
"Purepecha": "pua",
"Puri": "prr",
"Purik": "prx",
"Purisimeño": "puy",
"Puruborá": "pur",
"Puruhá": "sai-prh",
"Purukotó": "sai-pur",
"Purum": "pub",
"Putai": "mfl",
"Putoh": "put",
"Putukwam": "afe",
"Puyo-Paekche": "xpp",
"Puyuma": "pyu",
"Pwaamei": "pme",
"Pwapwa": "pop",
"Pwo Barat": "pwo",
"Pwo Timur": "kjp",
"Pwo Utara": "pww",
"Pyapun": "pcw",
"Pye Krumen": "pye",
"Pyemmairre": "xpb",
"Pyen": "pyy",
"Pykobjê": "sai-pyk",
"Pyu": "pby",
"Páez": "pbb",
"Pááfang": "pfa",
"Päri": "lkr",
"Pémono": "pev",
"Pévé": "lme",
"Pökoot": "pko",
"Q'anjob'al": "kjb",
"Q'eqchi": "kek",
"Qabiao": "laq",
"Qaqet": "byx",
"Qatabanian": "xqt",
"Qiang Utara": "cng",
"Qibti": "cop",
"Qimant": "ahg",
"Quapaw": "qua",
"Quechua": "qu",
"Quechua Klasik": "qwc",
"Quenya": "qya",
"Quetzaltepec Mixe": "pxm",
"Queyu": "qvy",
"Quiavicuzas Zapotec": "zpj",
"Quileute": "qui",
"Quimbaya": "sai-qmb",
"Quinault": "qun",
"Quinigua": "nai-qng",
"Quinqui": "quq",
"Quioquitani-Quierí Zapotec": "ztq",
"Quiotepec Chinantec": "chq",
"Quiripi": "qyp",
"Quitemo": "sai-qtm",
"Rabha": "rah",
"Rabona": "sai-rab",
"Rade": "rad",
"Raetic": "xrr",
"Raga": "lml",
"Rahambuu": "raz",
"Rajasthan": "raj",
"Rajbanshi": "rjs",
"Raji": "rji",
"Rajong": "rjg",
"Rakahanga-Manihiki": "rkh",
"Rakhine": "rki",
"Ralte": "ral",
"Rama": "rma",
"Ramandi": "tks",
"Ramanos": "sai-ram",
"Ramoaaina": "rai",
"Ramopa": "kjx",
"Rampi": "lje",
"Rana Tharu": "thr",
"Rang": "rax",
"Rangkas": "rgk",
"Ranglong": "rnl",
"Rao": "rao",
"Rapa": "ray",
"Rapa Nui": "rap",
"Rapoisi": "kyx",
"Rapting": "rpt",
"Rara Bakati'": "lra",
"Rarotonga": "rar",
"Rasawa": "rac",
"Ratagnon": "btn",
"Ratahan": "rth",
"Rathawi": "rtw",
"Rathwi Bareli": "bgd",
"Raute": "rau",
"Ravula": "yea",
"Rawa": "rwo",
"Rawang": "raw",
"Rawat": "jnl",
"Rawo": "rwa",
"Rayón Zoque": "zor",
"Razajerdi": "rat",
"Razihi": "rzh",
"Reang": "ria",
"Reel": "atu",
"Rejang": "rej",
"Reli": "rei",
"Rema": "bow",
"Rembarunga": "rmb",
"Rembong": "reb",
"Remo": "rem",
"Rempi": "rmp",
"Remun": "lkj",
"Rendille": "rel",
"Rengao": "ren",
"Rennell": "mnv",
"Repanbitip": "rpn",
"Rer Bare": "rer",
"Rerau": "rea",
"Rerep": "pgk",
"Reshe": "res",
"Resígaro": "rgr",
"Retta": "ret",
"Reyesano": "rey",
"Riang": "ril",
"Riantana": "ran",
"Ribun": "rir",
"Rigwe": "iri",
"Rikbaktsa": "rkb",
"Ringgou": "rgu",
"Ririo": "rri",
"Ritarungo": "rit",
"Riung": "riu",
"Riverain Sango": "snj",
"Roglai Cacgia": "roc",
"Roglai Selatan": "rgs",
"Roglai Utara": "rog",
"Rogo": "rod",
"Rohingya": "rhg",
"Roma": "rmm",
"Romagnol": "rgn",
"Romam": "rmx",
"Romani": "rom",
"Romani Balkan": "rmn",
"Romani Baltik": "rml",
"Romani Carpathia": "rmc",
"Romani Finland Kalo": "rmf",
"Romani Sinte": "rmo",
"Romani Vlax": "rmy",
"Romani Wales": "rmw",
"Romania": "ro",
"Romano-Serbia": "rsb",
"Romanova": "rmv",
"Romansh": "rm",
"Romblomanon": "rol",
"Rombo": "rof",
"Romkun": "rmk",
"Ron": "cla",
"Ronga": "rng",
"Rongga": "ror",
"Rongpo": "rnp",
"Ronji": "roe",
"Roon": "rnn",
"Roria": "rga",
"Roro": "rro",
"Rotokas": "roo",
"Rotuma": "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",
"Rusia": "ru",
"Russenorsk": "crp-rsn",
"Rusyn": "rue",
"Rusyn Pannonia": "rsk",
"Ruthenian Kuno": "zle-ort",
"Rutul": "rut",
"Ruuli": "ruc",
"Ruwund": "rnd",
"Rwa": "rwk",
"Rwanda-Rundi": "rw",
"Sa": "sax",
"Sa'a": "apb",
"Sa'ban": "snv",
"Sa'och": "scq",
"Saafi-Saafi": "sav",
"Saam": "raq",
"Saamia": "lsm",
"Saanich": "str",
"Saare": "uss",
"Saaroa": "sxr",
"Saba": "saa",
"Sabaean": "xsa",
"Sabanê": "sae",
"Sabaot": "spy",
"Sabine": "sbv",
"Sabir": "pml",
"Sabu": "hvn",
"Sabüm": "sbo",
"Sacapulteco": "quv",
"Sadri": "sck",
"Saek": "skb",
"Saep": "spd",
"Safait": "sem-saf",
"Safaliba": "saf",
"Safeyoka": "apz",
"Safwa": "sbk",
"Sagala": "sbm",
"Sagalla": "tga",
"Sahaptin": "nai-spt",
"Saho": "ssy",
"Sahu": "saj",
"Saisiyat": "xsy",
"Sajau Basap": "sjb",
"Sakachep": "sch",
"Sakam": "skm",
"Sakao": "sku",
"Sakata": "skt",
"Sake": "sak",
"Sakizaya": "szy",
"Sala": "shq",
"Salako": "knx",
"Salampasu": "slx",
"Salar": "slr",
"Salas": "sgu",
"Salchuq": "slq",
"Saleman": "sau",
"Saliba (Colombia)": "slc",
"Saliba (New Guinea)": "sbe",
"Salinan": "sln",
"Salish Montana": "fla",
"Salish Puget Sound Selatan": "slh",
"Salt-Yui": "sll",
"Saluan": "loe",
"Salumá": "slj",
"Sam": "snx",
"Sama": "smd",
"Samal": "sem-sam",
"Samaritan Aramaic": "sam",
"Samarokena": "tmj",
"Samatao": "ysd",
"Samba": "smx",
"Sambal": "xsb",
"Sambalpuri": "spv",
"Sambe": "xab",
"Samberigi": "ssx",
"Samburu": "saq",
"Samei": "smh",
"Sami Akkala": "sia",
"Sami Inari": "smn",
"Sami Kemi": "sjk",
"Sami Kildin": "sjd",
"Sami Lule": "smj",
"Sami Pite": "sje",
"Sami Selatan": "sma",
"Sami Skolt": "sms",
"Sami Ter": "sjt",
"Sami Ume": "sju",
"Sami Utara": "se",
"Samo": "smq",
"Samo Selatan": "sbd",
"Samoa": "sm",
"Samogitia": "sgs",
"Samosa": "swm",
"Sampang": "rav",
"Samre": "sxm",
"Samtao": "stu",
"Samvedi": "smv",
"San Agustín Mixtepec Zapotec": "ztm",
"San Baltazar Loxicha Zapotec": "zpx",
"San Felipe Otlaltepec Popoloca": "pow",
"San Juan Atzingo Popoloca": "poe",
"San Juan Teita Mixtec": "xtj",
"San Luís Temalacayuca Popoloca": "pps",
"San Marcos Tlalcoyalco Popoloca": "pls",
"San Martín Itunyoso Triqui": "trq",
"San Pablo Güilá Zapotec": "ztu",
"San Pedro Quiatoni Zapotec": "zpf",
"San Vicente Coatlán Zapotec": "zpt",
"Sanapaná": "spn",
"Sanaviron": "sai-san",
"Sandawe": "sad",
"Sanga (Congo)": "sng",
"Sanga (Nigeria)": "xsn",
"Sanggau": "scg",
"Sangil": "snl",
"Sangir": "sxn",
"Sangisari": "sgr",
"Sangkong": "sgk",
"Sanglechi": "sgy",
"Sango": "sg",
"Sangu (Gabon)": "snq",
"Sangu (Tanzania)": "sbp",
"Sani": "ysn",
"Sanie": "ysy",
"Saniyo-Hiyewe": "sny",
"Sansi": "ssi",
"Sanskrit": "sa",
"Santa Catarina Albarradas Zapotec": "ztn",
"Santa Inés Ahuatempan Popoloca": "pca",
"Santa Inés Yatzechi Zapotec": "zpn",
"Santa María Quiegolani Zapotec": "zpi",
"Santa Teresa Cora": "cok",
"Santal": "sat",
"Santiago Xanica Zapotec": "zpr",
"Sanumá": "xsu",
"Sapa": "tys",
"Saparua": "spr",
"Sapará": "sai-sap",
"Sapo": "krn",
"Saponi": "spi",
"Saposa": "sps",
"Sapuan": "spu",
"Sapé": "spc",
"Sar": "mwm",
"Sara": "sre",
"Sara Kaba": "sbz",
"Sara Kaba Deme": "kwg",
"Sara Kaba Náà": "kwv",
"Saraiki": "skr",
"Saramaccan": "srm",
"Sarangani Blaan": "bps",
"Sarasira": "zsa",
"Saraveca": "sar",
"Sarazi": "inc-sar",
"Sardinia": "sc",
"Sarikoli": "srh",
"Sarli": "sdf",
"Sartang": "onp",
"Sarua": "swy",
"Sarudu": "sdu",
"Saruga": "sra",
"Sasak": "sas",
"Sasaru": "sxs",
"Sassari": "sdc",
"Satawal": "stw",
"Sateré-Mawé": "mav",
"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",
"Saxon Kuno": "osx",
"Saxon Transylvania": "gmw-tsx",
"Saxwe Gbe": "sxw",
"Saya": "say",
"Sayula Popoluca": "pos",
"Scanian": "gmq-scy",
"Schwaben Szatmár": "gmw-stm",
"Scots": "sco",
"Scots Pertengahan": "gmw-msc",
"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",
"Selkup Selatan": "sel-sou",
"Selkup Utara": "sel-nor",
"Selonia": "sxl",
"Selungai Murut": "slg",
"Seluwasan": "sws",
"Sema": "nsm",
"Semai": "sea",
"Semandang": "sdm",
"Semaq Beri": "szc",
"Sembakung Murut": "sbr",
"Semelai": "sza",
"Semimi": "etz",
"Semnam": "ssm",
"Semnani": "smy",
"Sempan": "xse",
"Sena": "seh",
"Senara Sénoufo": "seq",
"Senaya": "syn",
"Sene": "sej",
"Seneca": "see",
"Sengele": "szg",
"Senggi": "snu",
"Sengo": "spk",
"Sengseng": "ssz",
"Senhaja De Srair": "sjs",
"Sensi": "sni",
"Sentani": "set",
"Sentinel": "std",
"Sepa (Indonesia)": "spb",
"Sepa (New Guinea)": "spe",
"Sepanyol": "es",
"Sepanyol Kuno": "osp",
"Sepen": "spm",
"Sepik Iwam": "iws",
"Sera": "sry",
"Seranan": "srn",
"Serbo-Croatia": "sh",
"Sere": "swf",
"Serer": "srr",
"Seri": "sei",
"Serili": "sve",
"Seroa": "kqu",
"Serrano": "ser",
"Seru": "szd",
"Serua": "srw",
"Serui-Laut": "seu",
"Seta": "stf",
"Setaman": "stm",
"Seti": "sbi",
"Severn Ojibwa": "ojs",
"Sewa Bay": "sew",
"Seze": "sze",
"Sha": "scw",
"Shabak": "sdb",
"Shabo": "sbf",
"Shahmirzadi": "srz",
"Shahrudi": "shm",
"Shall-Zwall": "sha",
"Shama-Sambuga": "sqa",
"Shamang": "xsh",
"Shambala": "ksb",
"Shan": "shn",
"Shanenawa": "swo",
"Shanga": "sho",
"Shangzhai": "jih",
"Sharanahua": "mcd",
"Shark Bay": "ssv",
"Sharwa": "swq",
"Shasta": "sht",
"Shasta Sungai Baru": "nai-nrs",
"Shatt": "shj",
"Shau": "sqh",
"Shawnee": "sjw",
"She": "shx",
"Shebayo": "awd-she",
"Shehri": "shv",
"Shekkacho": "moy",
"Sheko": "she",
"Shelta": "sth",
"Shendu": "shl",
"Sheni": "scv",
"Sherbro": "bun",
"Sherdukpen": "sdp",
"Sherpa": "xsr",
"Sheshi Kham": "kip",
"Shi": "shr",
"Shilluk": "shk",
"Shina": "scl",
"Shinasha": "bwo",
"Shipibo-Conibo": "shp",
"Shixing": "sxg",
"Sholaga": "sle",
"Shom Peng": "sii",
"Shona": "sn",
"Shoo-Minda-Nye": "bcv",
"Shor": "cjs",
"Shoshone": "shh",
"Shua": "shg",
"Shuar": "jiv",
"Shuba": "cbq",
"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",
"Sicanian": "sxc",
"Sicel": "scx",
"Sichuan": "zhx-sic",
"Sicilia": "scn",
"Siculo-Arabic": "sqr",
"Sidamo": "sid",
"Sidetic": "xsd",
"Sie": "erg",
"Sierra Leone Sign Language": "sgx",
"Sighu": "sxe",
"Sihan": "snr",
"Sika": "ski",
"Sikaiana": "sky",
"Sikaritai": "tty",
"Sikiana": "sik",
"Sikkim": "sip",
"Sikule": "skh",
"Sila": "slt",
"Sileibi": "sbq",
"Silesia": "szl",
"Silimo": "wul",
"Siliput": "mkc",
"Silopi": "xsp",
"Silt'e": "stv",
"Simaa": "sie",
"Simba": "sbw",
"Simbali": "smg",
"Simbari": "smb",
"Simbo": "sbb",
"Simeku": "smz",
"Simeulue": "smr",
"Simte": "smt",
"Sinacantán": "nai-sin",
"Sinagen": "siu",
"Sinasina": "sst",
"Sinaugoro": "snc",
"Sindarin": "sjn",
"Sindhi": "sd",
"Sindhi Bhil": "sbn",
"Singa": "sgm",
"Singapore Sign Language": "sls",
"Singpho": "sgp",
"Sinhala": "si",
"Sinicahua Mixtec": "xti",
"Sininkere": "skq",
"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 Barat": "ssl",
"Sissala": "sld",
"Sissano": "sso",
"Situ": "sit-sit",
"Siuslaw": "sis",
"Sivandi": "siy",
"Siwai": "siw",
"Siwi": "siz",
"Siwu": "akp",
"Skagit": "ska",
"Skalvian": "svx",
"Ske": "ske",
"Skou": "skv",
"Slav Timur Kuno": "orv",
"Slavey Selatan": "xsl",
"Slavey Utara": "scs",
"Slavomolisano": "svm",
"Slavonic Gereja": "zls-chs",
"Slavonic Gereja Kuno": "cu",
"Slovak": "sk",
"Slovak Kuno": "zlw-osk",
"Slovakian Sign Language": "svk",
"Slovenia": "sl",
"Slovincian": "zlw-slv",
"Small Flowery Miao": "sfm",
"Smärky Kanum": "kxq",
"Snohomish": "sno",
"So'a": "ssq",
"Sobei": "sob",
"Sochiapam Chinantec": "cso",
"Soga": "xog",
"Sogdia": "sog",
"Sok": "skk",
"Sokna": "swn",
"Soko": "soc",
"Sokoro": "sok",
"Solano": "xso",
"Soli": "sby",
"Solombala English": "crp-slb",
"Solon": "tuw-sol",
"Solong": "aaw",
"Solos": "sol",
"Som": "smc",
"Somali": "so",
"Somba-Siawari": "bmu",
"Somra": "ntx",
"Somrai": "sor",
"Somray": "smu",
"Somyev": "kgt",
"Sonaga": "ysg",
"Sonde": "shc",
"Songe": "sop",
"Songomeno": "soe",
"Songoora": "sod",
"Sonha": "soi",
"Sonia": "siq",
"Soninke": "snk",
"Sonsorol": "sov",
"Soo": "teu",
"Sop": "urw",
"Soqotri": "sqt",
"Sora": "srb",
"Sorbia Atas": "hsb",
"Sori-Harengan": "sbh",
"Sorkhei": "sqo",
"Sorothaptic": "sxo",
"Sos Kundi": "sdk",
"Sota Kanum": "krz",
"Sotho": "st",
"Sotho Utara": "nso",
"Sou": "sqq",
"Sougb": "mnx",
"Southeast Babar": "vbb",
"Southeast Ijo": "ijs",
"Southeastern Ixtlán Zapotec": "zpd",
"Southern Pame": "pmz",
"Southern Qiang": "qxs",
"Southern Rincon Zapotec": "zsr",
"Sowa": "sww",
"Sowanda": "sow",
"Spanish Sign Language": "ssp",
"Spiti Bhoti": "spt",
"Spokane": "spo",
"Squamish": "squ",
"Sri Lankan Sign Language": "sqs",
"Stau": "ero-tau",
"Stod Bhoti": "sbu",
"Stoney": "sto",
"Suabo": "szp",
"Suarmin": "seo",
"Suau": "swp",
"Suba": "sxb",
"Suba-Simbiti": "ssc",
"Subanen Tengah": "syb",
"Subanen Utara": "stb",
"Subanon Barat": "suc",
"Subanun Lapuyan": "laa",
"Subi": "xsj",
"Subiya": "sbs",
"Subtiaba": "sut",
"Sudest": "tgo",
"Sudovian": "xsv",
"Suena": "sue",
"Suga": "sgi",
"Suganga": "sug",
"Sui": "swi",
"Suki": "sui",
"Suku": "sub",
"Sukuma": "suk",
"Sukur": "syk",
"Sukurum": "zsu",
"Sula": "szn",
"Sulka": "sua",
"Sulod": "srg",
"Suluk": "tsg",
"Sulung": "suv",
"Suma": "sqm",
"Sumariup": "siv",
"Sumau": "six",
"Sumbawa": "smw",
"Sumbwa": "suw",
"Sumeria": "sux",
"Sunam": "ssk",
"Sunda": "su",
"Sunda Kuno": "osn",
"Sungai": "dmg",
"Sungwadaga": "mwo",
"Sungwadia": "mrb",
"Sunum": "ymn",
"Sunwar": "suz",
"Suoy": "syo",
"Supyire": "spp",
"Sur": "tdl",
"Surbakhal": "sbj",
"Suri": "suq",
"Surigaonon": "sgd",
"Surjapuri": "sjp",
"Sursurunga": "sgz",
"Suruahá": "swx",
"Surubu": "sde",
"Suruí": "sru",
"Suruí Do Pará": "mdz",
"Suryani Klasik": "syc",
"Susquehannock": "sqn",
"Susu": "sus",
"Susuami": "ssu",
"Suundi": "sdj",
"Suwawa": "swu",
"Suyá": "suy",
"Svan": "sva",
"Swabia": "swg",
"Swahili": "sw",
"Swampy Cree": "csw",
"Swazi": "ss",
"Sweden": "sv",
"Sweden Kuno": "gmq-osw",
"Swedish Sign Language": "swl",
"Swiss-French Sign Language": "ssr",
"Swiss-German Sign Language": "sgg",
"Swiss-Italian Sign Language": "slf",
"Swo": "sox",
"Syenara Senoufo": "shz",
"Sylhet": "syl",
"Sácata": "sai-sac",
"Sãotomense": "cri",
"Sìcìté Sénoufo": "sep",
"Sô": "sss",
"T'en": "tct",
"Taabwa": "tap",
"Taba": "mky",
"Tabancale": "sai-tab",
"Tabaru": "tby",
"Tabasaran": "tab",
"Tabasco Chontal": "chf",
"Tabasco Zoque": "zoq",
"Tabla": "tnm",
"Tabo": "knv",
"Tabriak": "tzx",
"Tacana": "tna",
"Tachawit": "shy",
"Tadaksahak": "dsq",
"Tadyawan": "tdy",
"Tae'": "rob",
"Tafi": "tcd",
"Tafreshi": "xme-taf",
"Tagabawa": "bgs",
"Tagal Murut": "mvv",
"Tagalog": "tl",
"Tagbanwa": "tbw",
"Tagbanwa Tengah": "tgt",
"Tagbu": "tbm",
"Tagdal": "tda",
"Tagish": "tgx",
"Tagoi": "tag",
"Tagwana Senoufo": "tgw",
"Tahiti": "ty",
"Tahltan": "tht",
"Tai": "taw",
"Tai Daeng": "tyr",
"Tai Dam": "blt",
"Tai Do": "tyj",
"Tai Dón": "twh",
"Tai Hang Tong": "thc",
"Tai Hongjin": "tiz",
"Tai Laing": "tjl",
"Tai Loi": "tlq",
"Tai Long": "thi",
"Tai Nüa": "tdd",
"Tai Pao": "tpo",
"Tai Thanh": "tmm",
"Tai Ya": "cuu",
"Taikat": "aos",
"Tainae": "ago",
"Tairora Selatan": "omw",
"Tairora Utara": "tbg",
"Tairuma": "uar",
"Taishan": "zhx-tai",
"Taita": "dav",
"Taivoan": "tvx",
"Taje": "pee",
"Tajik": "tg",
"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",
"Tamang Barat": "tdg",
"Tamang Barat Daya": "tsf",
"Tamang Barat Laut": "tmk",
"Tamang Gorkha Timur": "tge",
"Tamang Timur": "taj",
"Tamazight Atlas Tengah": "tzm",
"Tamazola Mixtec": "vmx",
"Tambas": "tdk",
"Tambora": "xxt",
"Tambotalo": "tls",
"Tami": "tmy",
"Tamil": "ta",
"Tamil Kuno": "oty",
"Tamki": "tax",
"Tamnim Citak": "tml",
"Tampias Lobu": "low",
"Tampuan": "tpu",
"Tampulma": "tpm",
"Tanacross": "tcb",
"Tanahmerah": "tcm",
"Tanapag": "tpv",
"Tanchangya": "tnv",
"Tandaganon": "tgn",
"Tandia": "tni",
"Tanema": "tnx",
"Tangale": "tan",
"Tangam": "sit-tgm",
"Tanggu": "tgu",
"Tangko": "tkx",
"Tanglang": "ytl",
"Tangoa": "tgp",
"Tangsa": "nst",
"Tanguat": "tbs",
"Tangut": "txg",
"Tangwang": "mis-tnw",
"Tanimbili": "tbe",
"Tanimuca-Retuarã": "tnc",
"Tanjijili": "uji",
"Tanna Barat Daya": "nwi",
"Tanna Utara": "tnn",
"Taos": "twf",
"Tapachultec": "nai-tap",
"Taparita": "sai-tpr",
"Tapayuna": "sai-tap",
"Tapeba": "tbb",
"Tapei": "afp",
"Tapieté": "tpj",
"Tapirapé": "taf",
"Tar Gula": "kcm",
"Tara Baka": "bdh",
"Tarahumara Barat Daya": "twr",
"Tarahumara Tengah": "tar",
"Tarahumara Tenggara": "tcu",
"Tarahumara Utara": "thh",
"Tarairiú": "sai-trr",
"Tarangan Barat": "txn",
"Tarangan Timur": "tre",
"Tarantino": "roa-tar",
"Tarao": "tro",
"Taraon": "mhu",
"Tareng": "tgr",
"Tariana": "tae",
"Tarifit": "rif",
"Tarjumo": "txj",
"Tarok": "yer",
"Taroko": "trv",
"Tarpia": "tpf",
"Tartessian": "txr",
"Taruma": "tdm",
"Tasawaq": "twq",
"Tashelhit": "shi",
"Tasmania": "xtz",
"Tasmania Tenggara": "xpf",
"Tasmate": "tmt",
"Tat": "ttt",
"Tataltepec Chatino": "cta",
"Tatana": "txx",
"Tatar": "tt",
"Tatar Crimea": "crh",
"Tatar Siberia": "sty",
"Tataviam": "azc-tat",
"Tati Kuno": "xme-ott",
"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",
"Tawbuid Barat": "twb",
"Tawbuid Timur": "bnj",
"Taworta": "tbp",
"Tawoyan": "twy",
"Tay Khang": "tnu",
"Tayman": "sem-tay",
"Tayo": "cks",
"Taíno": "tnq",
"Tboli": "tbl",
"Tchitchege": "tck",
"Tchumbuli": "bqa",
"Te'un": "tve",
"Teanu": "tkw",
"Tebul Ure Dogon": "dtu",
"Tecpatlán Totonac": "tcw",
"Tedaga": "tuq",
"Tee": "tkq",
"Tefaro": "tfo",
"Tegali": "ras",
"Tehit": "kps",
"Tehuelche": "teh",
"Teiwa": "twe",
"Tejalapan Zapotec": "ztt",
"Teke Tengah": "nzu",
"Teke-Fuumu": "ifm",
"Teke-Kukuya": "kkw",
"Teke-Laali": "lli",
"Teke-Tege": "teg",
"Teke-Tsaayi": "tyi",
"Teke-Tyee": "tyx",
"Tektiteko": "ttc",
"Tela-Masbuar": "tvm",
"Telefol": "tlf",
"Telugu": "te",
"Telugu Kuno": "dra-ote",
"Teluk Malua": "mll",
"Teluti": "tlt",
"Tem": "kdh",
"Tembé": "tqb",
"Teme": "tdo",
"Temein": "teq",
"Temi": "soz",
"Temiar": "tea",
"Temne": "tem",
"Temoq": "tmo",
"Tempasuk Dusun": "tdu",
"Temuan": "tmw",
"Ten'edn": "tnz",
"Tene Kan Dogon": "dtk",
"Tenggarong Kutai Malay": "vkt",
"Tengger": "tes",
"Tenharim": "pah",
"Tenino": "tqn",
"Tenis": "tns",
"Tennet": "tex",
"Teochew": "nan-tws",
"Teop": "tio",
"Teor": "tev",
"Tepecano": "tep",
"Tepehua Huehuetla": "tee",
"Tepehuan Barat Daya": "tla",
"Tepehuan Tenggara": "stp",
"Tepehuan Utara": "ntp",
"Tepetotutla Chinantec": "cnt",
"Tepeuxila Cuicatec": "cux",
"Tepinapa Chinantec": "cte",
"Tepo Krumen": "ted",
"Tequistlatec": "nai-teq",
"Tera": "ttr",
"Terebu": "trb",
"Terei": "buo",
"Tereno": "ter",
"Teressa": "tef",
"Tereweng": "twg",
"Teribe": "tfr",
"Terik": "tec",
"Termanu": "twu",
"Ternate": "tft",
"Ternateño": "tmg",
"Tese": "keg",
"Teshenawa": "twc",
"Tetela": "tll",
"Tetete": "teb",
"Tetserret": "tez",
"Tetum": "tet",
"Tetun Dili": "tdt",
"Teushen": "sai-teu",
"Teutila Cuicatec": "cut",
"Tewa": "tew",
"Texistepec Popoluca": "poq",
"Texmelucan Zapotec": "zpz",
"Tha": "thy",
"Thachanadan": "thn",
"Thai": "th",
"Thai Selatan": "sou",
"Thai Song": "soa",
"Thai Utara": "nod",
"Thakali": "ths",
"Thamud": "sem-tha",
"Thangmi": "thf",
"Thao": "ssf",
"Tharaka": "thk",
"Tharrgari": "dhr",
"Thavung": "thm",
"Thawa": "xtv",
"Tho": "tou",
"Thompson": "thp",
"Thopho": "ytp",
"Thracian": "txh",
"Thu Lao": "tyl",
"Thulung": "tdh",
"Thurawal": "tbh",
"Thuri": "thu",
"Tiagba": "ahi",
"Tiale": "mnl",
"Tiang": "tbj",
"Tibea": "ngy",
"Tibet": "bo",
"Tibet Klasik": "xct",
"Tibet Kuno": "otb",
"Ticuna": "tca",
"Tidore": "tvo",
"Tidung Selatan": "itd",
"Tidung Utara": "ntd",
"Tiemacèwè Bozo": "boo",
"Tiene": "tii",
"Tifal": "tif",
"Tigak": "tgc",
"Tigre": "tig",
"Tigrinya": "ti",
"Tii": "txq",
"Tijaltepec Mixtec": "xtl",
"Tikar": "tik",
"Tikopia": "tkp",
"Tillamook": "til",
"Tilquiapan Zapotec": "zts",
"Tilung": "tij",
"Tima": "tms",
"Timbe": "tim",
"Timor Pidgin": "tvy",
"Timote": "sai-tim",
"Timucua": "tjm",
"Tinagas Kota Marudu": "ktr",
"Tinani": "lbf",
"Tindi": "tin",
"Tingui-Boto": "tgv",
"Tinigua": "tit",
"Tinoc Kallahan": "tne",
"Tinputz": "tpz",
"Tipai": "nai-tip",
"Tippera": "tpe",
"Tira": "tic",
"Tirahi": "tra",
"Tiranige Diga Dogon": "tde",
"Tirax": "mme",
"Tircul": "pyx",
"Tiri": "cir",
"Tiruray": "tiy",
"Tita": "tdq",
"Titan": "ttv",
"Tiv": "tiv",
"Tiwa": "lax",
"Tiwa Selatan": "tix",
"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",
"Tlapanec Malinaltepec": "tcf",
"Tlingit": "tli",
"To": "toz",
"To'abaita": "mlu",
"Toaripi": "tqo",
"Toba": "tob",
"Toba-Maskoy": "tmf",
"Tobanga": "tng",
"Tobati": "tti",
"Tobelo": "tlb",
"Tobian": "tox",
"Tobilung": "tgb",
"Tobo": "tbv",
"Tocharia A": "xto",
"Tocharia B": "txb",
"Tocho": "taz",
"Toda": "tcx",
"Todrah": "tdr",
"Tofa": "kim",
"Tofanma": "tlg",
"Tofin Gbe": "tfi",
"Togbo-Vara Banda": "tor",
"Togoyo": "tgy",
"Tojolabal": "toj",
"Tok Pisin": "tpi",
"Toka-Leya": "dov",
"Tokano": "zuh",
"Tokelau": "tkl",
"Toki Pona": "tok",
"Toku-No-Shima": "tkn",
"Tol": "jic",
"Tolai": "ksd",
"Tolaki": "lbw",
"Tolomako": "tlm",
"Tolowa": "tol",
"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": "to",
"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",
"Torricelli": "tei",
"Torricelli Yau": "yyu",
"Torwali": "trw",
"Torá": "trz",
"Tosu": "sit-tos",
"Totela": "ttl",
"Toto": "txo",
"Totoli": "txe",
"Totomachapan Zapotec": "zph",
"Totonac Barat": "tqt",
"Totoro": "ttk",
"Touo": "tqu",
"Toura": "neb",
"Toussiana Selatan": "wib",
"Toussiana Utara": "tsp",
"Towei": "ttn",
"Translingual": "mul",
"Traveller Scottish": "trl",
"Tregami": "trm",
"Tremembé": "tme",
"Trieng": "stg",
"Trimuris": "tip",
"Tring": "tgq",
"Tringgus": "trx",
"Trinitario": "trn",
"Tripuri Awal": "xtr",
"Trió": "tri",
"Truká": "tka",
"Trumai": "tpy",
"Ts'ün-Lao": "tsl",
"Tsaangi": "tsa",
"Tsafiki": "cof",
"Tsakhur": "tkr",
"Tsakonian": "tsd",
"Tsakwambo": "kvz",
"Tsamai": "tsb",
"Tsat": "huq",
"Tsetsaut": "txc",
"Tsez": "ddo",
"Tshangla": "tsj",
"Tshobdun": "sit-tsh",
"Tshwa": "hio",
"Tsikimba": "kdl",
"Tsimané": "cas",
"Tsimshian": "tsi",
"Tsishingini": "tsw",
"Tso": "ldp",
"Tsogo": "tsv",
"Tsonga": "ts",
"Tsotsitaal": "fly",
"Tsou": "tsu",
"Tsum": "ttz",
"Tsuut'ina": "srs",
"Tsuvadi": "tvd",
"Tsuvan": "tsh",
"Tswa": "tsc",
"Tswana": "tn",
"Tswapong": "two",
"Tuamotuan": "pmt",
"Tuareg": "tmh",
"Tubar": "tbu",
"Tucano": "tuo",
"Tugen": "tuy",
"Tugun": "tzn",
"Tugutil": "tuj",
"Tuhua Shaozhou": "zhx-sht",
"Tujia Selatan": "tjs",
"Tujia Utara": "tji",
"Tukang Besi Selatan": "bhq",
"Tukang Besi Utara": "khc",
"Tuki": "bag",
"Tukpa": "tpq",
"Tukudede": "tkd",
"Tukumanféd": "tkf",
"Tula": "tul",
"Tulehu": "tlu",
"Tulishi": "tey",
"Tulu": "tcy",
"Tulu-Bohuai": "rak",
"Tulua": "aus-tul",
"Tuma-Irumu": "iou",
"Tumak": "tmc",
"Tumbuka": "tum",
"Tumi": "kku",
"Tumleo": "tmq",
"Tumshuq": "xtq",
"Tumtum": "tbr",
"Tumulung Sisaala": "sil",
"Tunebo Barat": "tnb",
"Tunebo Tengah": "tuf",
"Tunen": "tvu",
"Tungag": "lcm",
"Tunggare": "trt",
"Tunia": "tug",
"Tunica": "tun",
"Tunjung": "tjg",
"Tunni": "tqq",
"Tunumiisut": "esx-tut",
"Tunzu": "dza",
"Tuoba": "mis-tuo",
"Tuotomb": "ttf",
"Tuparí": "tpr",
"Tupi Kuno": "tpw",
"Tupinambá": "tpn",
"Tupinikin": "tpk",
"Tupuri": "tui",
"Turaka": "trh",
"Turdetania": "mis-tdt",
"Turdulia": "mis-tdl",
"Turi": "trd",
"Turiwára": "twt",
"Turk Kuno": "otk",
"Turka": "tuz",
"Turkana": "tuv",
"Turki": "tr",
"Turki Anatolia Kuno": "trk-oat",
"Turki Khorasan": "kmz",
"Turki Usmaniyah": "ota",
"Turkmen": "tk",
"Turoyo": "tru",
"Turumsa": "tqm",
"Turung": "try",
"Tuscarora": "tus",
"Tutchone Selatan": "tce",
"Tutchone Utara": "ttm",
"Tutelo": "tta",
"Tutong": "ttg",
"Tutsa Naga": "tvt",
"Tutuba": "tmi",
"Tututni": "tuu",
"Tuva": "tyv",
"Tuvalu": "tvl",
"Tuwali Ifugao": "ifk",
"Tuwari": "tww",
"Tuwuli": "bov",
"Tuxináwa": "tux",
"Tuxá": "tud",
"Tuyuca": "tue",
"Tuyuhun": "mis-tuh",
"Twana": "twa",
"Twendi": "twn",
"Tyap": "kcg",
"Tyaraity": "woa",
"Tyerrernotepanner": "xph",
"Tz'utujil": "tzj",
"Tzeltal": "tzh",
"Tzotzil": "tzo",
"Tày": "tyz",
"Tày Tac": "tyt",
"Tây Bồi": "tas",
"Téén": "lor",
"Tübatulabal": "tub",
"U": "uuu",
"Uab Meto": "aoz",
"Uamué": "uam",
"Uare": "ksj",
"Ubaghara": "byc",
"Ubang": "uba",
"Ubi": "ubi",
"Ubir": "ubr",
"Ubykh": "uby",
"Ucayali-Yurúa Ashéninka": "cpb",
"Uda": "uda",
"Udi": "udi",
"Udihe": "ude",
"Udmurt": "udm",
"Uduk": "udu",
"Ufim": "ufi",
"Ugandan Sign Language": "ugn",
"Ugarit": "uga",
"Ughele": "uge",
"Uhami": "uha",
"Uisai": "uis",
"Ujir": "udj",
"Ukaan": "kcf",
"Ukhwejo": "ukh",
"Ukit": "umi",
"Ukpe-Bayobiri": "ukp",
"Ukpet-Ehom": "akd",
"Ukraine": "uk",
"Ukrainian Sign Language": "ukl",
"Ukue": "uku",
"Ukuriguma": "ukg",
"Ukwa": "ukq",
"Ukwuani-Aboh-Ndoni": "ukw",
"Ulau-Suain": "svb",
"Ulch": "ulc",
"Uldeme": "udl",
"Ulithian": "uli",
"Ullatan": "ull",
"Ulumanda'": "ulm",
"Ulwa": "ulw",
"Uma": "ppk",
"Uma' Lasan": "xky",
"Uma' Lung": "ulu",
"Umatilla": "uma",
"Umbindhamu": "umd",
"Umbri": "xum",
"Umbu-Ungu": "ubu",
"Umbugarla": "umr",
"Umbundu": "umb",
"Umbuygamu": "umg",
"Umeda": "upi",
"Umiida": "xud",
"Umon": "umm",
"Umotína": "umo",
"Umpila": "ump",
"Una": "mtg",
"Unami": "unm",
"Unde Kaili": "unz",
"Uneapa": "bbn",
"Uneme": "une",
"Unggaranggu": "xun",
"Unggumi": "xgu",
"Unserdeutsch": "uln",
"Unua": "onu",
"Unubahe": "unu",
"Uokha": "uok",
"Upper Chehalis": "cjh",
"Upper Grand Valley Dani": "dna",
"Upper Kuskokwim": "kuu",
"Upper Necaxa Totonac": "tku",
"Upper Ta'oih": "tth",
"Upper Tanana": "tau",
"Upper Taromi": "tov",
"Upper Umpqua": "xup",
"Ura (Papua New Guinea)": "uro",
"Ura (Vanuatu)": "uur",
"Uradhi": "urf",
"Urak Lawoi'": "urk",
"Urali": "url",
"Urapmin": "urm",
"Urarina": "ura",
"Urartian": "xur",
"Urat": "urt",
"Urdu": "ur",
"Urhobo": "urh",
"Uri": "uvh",
"Urigina": "urg",
"Urim": "uri",
"Urimo": "urx",
"Urningangg": "urc",
"Uru": "ure",
"Uru-Eu-Wau-Wau": "urz",
"Uru-Pa-In": "urp",
"Uruangnirin": "urn",
"Uruava": "urv",
"Urubú-Kaapor": "urb",
"Uruguayan Sign Language": "ugy",
"Urum": "uum",
"Urumi": "uru",
"Usaghade": "usk",
"Usan": "wnu",
"Usarufa": "usa",
"Ushojo": "ush",
"Usila Chinantec": "cuc",
"Uspanteco": "usp",
"Usui": "usi",
"Utarmbung": "omo",
"Ute": "ute",
"Utu": "utu",
"Uvbie": "evh",
"Uvea Barat": "uve",
"Uwinymil": "aus-uwi",
"Uya": "usu",
"Uyajitaya": "duk",
"Uyghur": "ug",
"Uyghur Kuno": "oui",
"Uzbek": "uz",
"Uzekwe": "eze",
"Vaagri Booli": "vaa",
"Vaghri": "vgr",
"Vaghua": "tva",
"Vagla": "vag",
"Vai": "vai",
"Vaie": "bny",
"Vaiphei": "vap",
"Vale": "vae",
"Valencian Sign Language": "vsv",
"Valle Nacional Chinantec": "cvn",
"Valley Maidu": "vmv",
"Valman": "van",
"Valpei": "vlp",
"Valyrian Tinggi": "art-vlh",
"Vamale": "mkt",
"Vame": "mlr",
"Vandalic": "xvn",
"Vangunu": "mpr",
"Vanimo": "vam",
"Vanji": "ira-wnj",
"Vanuma": "vau",
"Vao": "vao",
"Varhadi": "vah",
"Varisi": "vrs",
"Varli": "vav",
"Vasavi": "vas",
"Vayu": "vay",
"Veddah": "ved",
"Vehes": "val",
"Vemgo-Mabas": "vem",
"Venda": "ve",
"Venetic": "xve",
"Veneto": "vec",
"Venezuelan Sign Language": "vsl",
"Ventureño": "veo",
"Veps": "vep",
"Vera'a": "vra",
"Vestinian": "xvs",
"Vidunda": "vid",
"Viemo": "vig",
"Vietnam": "vi",
"Vietnam Pertengahan": "mkh-mvi",
"Vilamovian": "wym",
"Vilela": "vil",
"Vili": "vif",
"Vishavan": "vis",
"Viti": "vit",
"Vitou": "vto",
"Volapük": "vo",
"Volscian": "xvo",
"Vono": "kch",
"Voro": "vor",
"Vot": "vot",
"Vumbu": "vum",
"Vunapu": "vnp",
"Vunjo": "vun",
"Vurës": "msn",
"Vute": "vut",
"Võro": "vro",
"Wa": "wbm",
"Wa'ema": "wag",
"Waama": "wwa",
"Waamwang": "wmn",
"Wab": "wab",
"Wabo": "wbb",
"Waboda": "kmx",
"Waci Gbe": "wci",
"Wadaginam": "wdg",
"Waddar": "wbq",
"Wadi Wadi": "xwd",
"Wadiyara Koli": "kxp",
"Wadjabangayi": "wdy",
"Wadjiginy": "wdj",
"Wadjigu": "wdu",
"Wae Rana": "wrx",
"Waffa": "waj",
"Wagawaga": "wgb",
"Wagaya": "wga",
"Wagdi": "wbr",
"Wageman": "waq",
"Wagi": "fad",
"Wahgi": "wgi",
"Wahgi Utara": "whg",
"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",
"Wales": "cy",
"Wales Kuno": "owl",
"Wales Pertengahan": "wlm",
"Wali (Ghana)": "wlx",
"Wali (Sudan)": "wll",
"Waling": "wly",
"Walio": "wla",
"Walla Walla": "waa",
"Wallis": "wls",
"Walloon": "wa",
"Walmajarri": "wmt",
"Wam": "wmo",
"Wamas": "wmc",
"Wambaya": "wmb",
"Wambon": "wms",
"Wambule": "wme",
"Wamey": "cou",
"Wamin": "wmi",
"Wampar": "lbq",
"Wampur": "waz",
"Wan": "wan",
"Wanambre": "wnb",
"Wanap": "wnp",
"Wancho": "nnp",
"Wanda": "wbh",
"Wandala": "mfi",
"Wandamen": "wad",
"Wandarang": "wnd",
"Wandji": "wdd",
"Waneci": "wne",
"Wanga": "lwg",
"Wanggamala": "wnm",
"Wangganguru": "wgg",
"Wanggom": "wng",
"Wangkayutyuru": "wky",
"Wangkumara": "xwk",
"Wanham": "sai-wnm",
"Wanji": "wbi",
"Wanman": "wbt",
"Wannu": "jub",
"Wano": "wno",
"Wantoat": "wnc",
"Wanukaka": "wnk",
"Wanyi": "wny",
"Wané": "hwa",
"Wapan": "juk",
"Wapishana": "wap",
"Wappo": "wao",
"War-Jaintia": "aml",
"Wara": "wbf",
"Warao": "wba",
"Warapu": "wra",
"Waray Sorsogon": "srv",
"Waray-Waray": "war",
"Wardaman": "wrr",
"Wardandi": "wxw",
"Warekena Kuno": "awd-war",
"Warembori": "wsa",
"Wari'": "pav",
"Waris": "wrs",
"Waritai": "wbe",
"Wariyangga": "wri",
"Warji": "wji",
"Warkay-Bipim": "bgv",
"Warlmanpa": "wrl",
"Warlpiri": "wbp",
"Warluwara": "wrb",
"Warnang": "wrn",
"Waropen": "wrp",
"Warray": "wrz",
"Warrgamay": "wgy",
"Warrwa": "wwr",
"Waru": "wru",
"Warumungu": "wrm",
"Waruna": "wrv",
"Warungu": "wrg",
"Warwar Feni": "hrw",
"Wasa": "wss",
"Wasco-Wishram": "wac",
"Washo": "was",
"Waskia": "wsk",
"Wastek": "hus",
"Wasu": "wsu",
"Watakataui": "wtk",
"Watam": "wax",
"Wathaurong": "wth",
"Watiwa": "wtf",
"Watubela": "wah",
"Watut Selatan": "mcy",
"Watut Tengah": "mpl",
"Watut Utara": "una",
"Waube": "kop",
"Wauja": "wau",
"Wauyai": "wuy",
"Wawa": "www",
"Wawonii": "wow",
"Waxianghua": "wxa",
"Wayampi": "oym",
"Wayana": "way",
"Wayanad Chetti": "ctt",
"Wayoró": "wyr",
"Wayumara": "sai-way",
"Wedau": "wed",
"Weh": "weh",
"Welaung": "weu",
"Weliki": "klh",
"Wemale": "weo",
"Wemba-Wemba": "xww",
"Weme Gbe": "wem",
"Wendat": "wdt",
"Weri": "wer",
"Wersing": "kvw",
"Western Juxtlahuaca Mixtec": "jmx",
"Wewaw": "wea",
"Weyewa": "wew",
"Whitesands": "tnp",
"Wiarumus": "tua",
"Wichita": "wic",
"Wichí Lhamtés Güisnay": "mzh",
"Wichí Lhamtés Nocten": "mtp",
"Wichí Lhamtés Vejoz": "wlv",
"Wik-Epa": "wie",
"Wik-Iiyanh": "wij",
"Wik-Keyangan": "wif",
"Wik-Me'anha": "wih",
"Wik-Mungkan": "wim",
"Wik-Ngathana": "wig",
"Wikalkan": "wik",
"Wikngenchera": "wua",
"Wilawila": "wil",
"Winnebago": "win",
"Wintu": "wnw",
"Winyé": "kst",
"Wiradhuri": "wrh",
"Wiraféd": "wir",
"Wirangu": "wgu",
"Wiru": "wiu",
"Wirö": "wpc",
"Wiwa": "mbp",
"Wiyot": "wiy",
"Woccon": "xwc",
"Wogamusin": "wog",
"Wogeo": "woc",
"Woi": "wbw",
"Woiwurrung": "wyi",
"Wojenaka": "jod",
"Wolane": "wle",
"Wolani": "wod",
"Wolaytta": "wal",
"Woleai": "woe",
"Wolio": "wlo",
"Wolof": "wo",
"Womo": "wmx",
"Wong-gie": "aus-won",
"Wongo": "won",
"Woods Cree": "cwd",
"Woria": "wor",
"Worimi": "kda",
"Worodougou": "jud",
"Worora": "wro",
"Wotapuri-Katarqalai": "wsv",
"Wotu": "wtw",
"Woun Meu": "noa",
"Wu": "wuu",
"Wudu": "wud",
"Wuhuan": "mis-wuh",
"Wulguru": "aus-wul",
"Wuliwuli": "wlu",
"Wulna": "wux",
"Wumboko": "bqm",
"Wumbvu": "wum",
"Wumeng Nasu": "ywu",
"Wunai Bunu": "bwn",
"Wunambal": "wub",
"Wurrugu": "wur",
"Wusa Nasu": "yig",
"Wushi": "bse",
"Wusi": "wsi",
"Wutung": "wut",
"Wutunhua": "wuh",
"Wuvulu-Aua": "wuv",
"Wyandot": "wya",
"Wára": "tci",
"Wãpha": "juw",
"Wè Barat": "wec",
"Wè Selatan": "gxx",
"Wè Utara": "wob",
"Xakriabá": "xkr",
"Xamtanga": "xan",
"Xanaguía Zapotec": "ztg",
"Xavante": "xav",
"Xerénte": "xer",
"Xetá": "xet",
"Xhosa": "xh",
"Xianbei": "mis-xbi",
"Xiang": "hsn",
"Xibe": "sjo",
"Xicotepec de Juárez Totonac": "too",
"Xinca": "xin",
"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âcùù": "ane",
"Xârâgurè": "axx",
"Yaa": "iyx",
"Yaaku": "muu",
"Yabarana": "yar",
"Yabaâna": "ybn",
"Yaben": "ybm",
"Yabong": "ybo",
"Yabula Yabula": "yxy",
"Yace": "ekr",
"Yaeyama": "rys",
"Yafi": "wfg",
"Yagara": "yxg",
"Yagaria": "ygr",
"Yagnobi": "yai",
"Yagomi": "ygm",
"Yagua": "yad",
"Yagwoia": "ygw",
"Yahadian": "ner",
"Yahang": "rhp",
"Yahuna": "ynu",
"Yaka": "yaf",
"Yakaikeke": "ykk",
"Yakan": "yka",
"Yakima": "yak",
"Yakkha": "ybh",
"Yakoma": "yky",
"Yakut": "sah",
"Yala": "yba",
"Yalahatan": "jal",
"Yalakalore": "xyl",
"Yalarnnga": "ylr",
"Yale": "nce",
"Yaleba": "ylb",
"Yali Ninia": "nlk",
"Yalunka": "yal",
"Yalálag Zapotec": "zpu",
"Yamap": "ymp",
"Yamba": "yam",
"Yambes": "ymb",
"Yambeta": "yat",
"Yamdena": "jmd",
"Yameo": "yme",
"Yami": "tao",
"Yaminahua": "yaa",
"Yamongeri": "ymg",
"Yamphu": "ybi",
"Yan-nhangu": "jay",
"Yana": "ynn",
"Yanda": "yda",
"Yanda Dogon": "dym",
"Yandjibara": "xyb",
"Yandruwandha": "ynd",
"Yanesha'": "ame",
"Yangben": "yav",
"Yangkaal": "aus-ynk",
"Yangkam": "bsx",
"Yangman": "jng",
"Yango": "yng",
"Yangulam": "ynl",
"Yangum Dey": "yde",
"Yangum Gel": "ygl",
"Yankunytjatjara": "kdd",
"Yanomámi": "wca",
"Yansi": "yns",
"Yanyuwa": "jao",
"Yao": "yao",
"Yao (Amerika Selatan)": "sai-yao",
"Yaouré": "yre",
"Yapese": "yap",
"Yapunda": "yev",
"Yaqay": "jaq",
"Yaqui": "yaq",
"Yarawata": "yrw",
"Yareba": "yrb",
"Yarli": "yxl",
"Yarluyandi": "yry",
"Yaroamë": "yro",
"Yarumá": "sai-yar",
"Yarí": "yri",
"Yasa": "yko",
"Yatay": "yty",
"Yatee Zapotec": "zty",
"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",
"Yemba": "ybb",
"Yemsa": "jnj",
"Yendang": "yen",
"Yeni": "yei",
"Yeniche": "yec",
"Yerakai": "yra",
"Yerong": "yrn",
"Yerukula": "yeu",
"Yeskwa": "yes",
"Yessan-Mayo": "yss",
"Yetfa": "yet",
"Yevanic": "yej",
"Yeyi": "yey",
"Yiddish": "yi",
"Yidgha": "ydg",
"Yidiny": "yii",
"Yil": "yll",
"Yimas": "yee",
"Yimchungru Naga": "yim",
"Yinchia": "yin",
"Yindjibarndi": "yij",
"Yindjilandji": "yil",
"Yine": "pib",
"Yinggarda": "yia",
"Yinhawangka": "ywg",
"Yiningayi": "ygi",
"Yinwum": "yxm",
"Yir-Yoront": "yiy",
"Yirandali": "ljw",
"Yis": "yis",
"Yitha Yitha": "xth",
"Yoba": "yob",
"Yogad": "yog",
"Yoidik": "ydk",
"Yoke": "yki",
"Yokuts Buena Vista": "yok-bvy",
"Yokuts Delta": "yok-dly",
"Yokuts Gashowu": "yok-gsy",
"Yokuts Lembah Selatan": "yok-svy",
"Yokuts Lembah Utara": "yok-nvy",
"Yokuts Palewyami": "yok-ply",
"Yokuts Sungai Kings": "yok-kry",
"Yokuts Tule-Kaweah": "yok-tky",
"Yola": "yol",
"Yolmo": "scp",
"Yolngu Sign Language": "ygs",
"Yom": "pil",
"Yombe": "yom",
"Yonaguni": "yoi",
"Yong": "yno",
"Yongkom": "yon",
"Yopno": "yut",
"Yora": "mts",
"Yoron": "yox",
"Yorta Yorta": "xyy",
"Yoruba": "yo",
"Youle Jino": "jiu",
"Younuo Bunu": "buh",
"Yout Wam": "ytw",
"Yoy": "yoy",
"Yuanga": "nua",
"Yuchi": "yuc",
"Yucuna": "ycn",
"Yug": "yug",
"Yugambal": "yub",
"Yugoslavian Sign Language": "ysl",
"Yugul": "ygu",
"Yugur Barat": "ybe",
"Yugur Timur": "yuy",
"Yuhup": "yab",
"Yukaghir Selatan": "yux",
"Yukaghir Utara": "ykg",
"Yuki": "yuk",
"Yukpa": "yup",
"Yukuben": "ybl",
"Yulu": "yul",
"Yuma": "yum",
"Yumana": "awd-yum",
"Yunani Cappadocia": "cpg",
"Yunani Pontus": "pnt",
"Yunani Romani": "rge",
"Yup'ik": "esu",
"Yupik Siberia Tengah": "ess",
"Yupiltepeque": "nai-yup",
"Yupua": "sai-yup",
"Yuqui": "yuq",
"Yuracare": "yuz",
"Yuri": "sai-yri",
"Yurok": "yur",
"Yuru": "ljx",
"Yurumanguí": "sai-yur",
"Yurutí": "yui",
"Yuwana": "yau",
"Yuyu": "yxu",
"Yámana": "yag",
"Zaachila Zapotec": "ztx",
"Zabana": "kji",
"Zacatepec Chatino": "ctz",
"Zaghawa": "zag",
"Zaiwa": "atb",
"Zakhring": "zkr",
"Zambian Sign Language": "zsl",
"Zan Gula": "zna",
"Zanaki": "zak",
"Zande": "zne",
"Zangskar": "zau",
"Zangwal": "zah",
"Zaniza Zapotec": "zpw",
"Zapotec": "zap",
"Zapotec Aloápam": "zaq",
"Zapotec Ayoquesco": "zaf",
"Zapotec Cajonos": "zad",
"Zapotec Coatecas Altas": "zca",
"Zapotec Mitla": "zaw",
"Zapotec Ocotlán": "zac",
"Zapotec Ozolotepec": "zao",
"Zapotec Purba": "xzp",
"Zapotec Rincón": "zar",
"Zapotec San Juan Guelavía": "zab",
"Zapotec Santo Domingo Albarradas": "zas",
"Zapotec Segenting": "zai",
"Zapotec Sierra de Juárez": "zaa",
"Zapotec Tabaa": "zat",
"Zapotec Xadani": "zax",
"Zapotec Yareni": "zae",
"Zapotec Yatzachi": "zav",
"Zapoteco Mahuatlán Tengah": "zam",
"Zaramo": "zaj",
"Zari": "zaz",
"Zarma": "dje",
"Zauzou": "zal",
"Zay": "zwa",
"Zayse-Zergulla": "zay",
"Zazaki": "zza",
"Zazao": "jaj",
"Zbu": "sit-zbu",
"Zeeland": "zea",
"Zeem": "zua",
"Zemba": "dhm",
"Zemgalia": "xzm",
"Zenag": "zeg",
"Zenaga": "zen",
"Zenzontepec Chatino": "czn",
"Zhaba": "zhb",
"Zhang-Zhung": "xzh",
"Zhire": "zhi",
"Zhoa": "zhw",
"Zhuang": "za",
"Zhár": "jjr",
"Zia": "zia",
"Zialo": "zil",
"Zigula": "ziw",
"Zimakani": "zik",
"Zimba": "zmb",
"Zimbabwe Sign Language": "zib",
"Zinza": "zin",
"Zire": "sih",
"Zirenkel": "zrn",
"Ziriya": "zir",
"Zizilivakan": "ziz",
"Zo'é": "pto",
"Zokhuo": "yzk",
"Zoogocho Zapotec": "zpq",
"Zou": "zom",
"Zulu": "zu",
"Zumaya": "zuy",
"Zumbun": "jmb",
"Zuni": "zun",
"Zuojiang Zhuang": "zzj",
"Zuwara": "ber-zuw",
"Zyphe": "zyp",
"Záparo": "zro",
"tidak ditentukan": "und",
"Àhàn": "ahn",
"Áncá": "acb",
"Äiwoo": "nfl",
"Älvdalen": "ovd",
"Äynu": "aib",
"Ömie": "aom",
"Önge": "oon",
"ǀXam": "xam",
"ǁAni": "hnh",
"ǁXegwi": "xeg",
"ǂHoan": "huc",
"ǃKung": "khi-kun",
"ǃXóõ": "nmn"
}
ryf7l13crkm3udx0sxubkav17mv0a1n
373553
373545
2026-09-11T10:39:28Z
Hakimi97
2668
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373553
json
application/json
{
"'Are'are": "alu",
"A'ou": "aou",
"A-Hmao": "hmd",
"A-Pucikwar": "apq",
"Aari": "aiw",
"Aasax": "aas",
"Aba": "utp",
"Abaga": "abg",
"Abai": "poz-abi",
"Abai Sungai": "abf",
"Abanyom": "abm",
"Abau": "aau",
"Abaza": "abq",
"Abenaki": "abe",
"Abidji": "abi",
"Abinomn": "bsa",
"Abipón": "axb",
"Abishira": "ash",
"Abkhaz": "ab",
"Abkhaz-Abaza Purba": "cau-abz-pro",
"Abom": "aob",
"Abon": "abo",
"Abu": "ado",
"Abu'": "aah",
"Abua": "abn",
"Abui": "abz",
"Abun": "kgr",
"Abung": "abl",
"Abure": "abu",
"Abureni": "mgj",
"Abé": "aba",
"Acatepec Me'phaa": "tpx",
"Aceh": "ace",
"Achagua": "aca",
"Achang": "acn",
"Ache": "yif",
"Acheron": "acz",
"Achi": "acr",
"Acholi": "ach",
"Achuar": "acu",
"Achumawi": "acv",
"Acipa Timur": "acp",
"Acroá": "acs",
"Adai": "xad",
"Adang": "adn",
"Adangbe": "adq",
"Adangme": "ada",
"Adap": "adp",
"Adasen": "tiu",
"Adele": "ade",
"Adhola": "adh",
"Adi": "adi",
"Adioukrou": "adj",
"Adithinngithigh": "dth",
"Adnyamathanha": "adt",
"Adonara": "adr",
"Aduge": "adu",
"Adzera": "adz",
"Adûni": "art-adu",
"Aeka": "aez",
"Aekyom": "awi",
"Aequian": "xae",
"Aer": "aeq",
"Afade": "aal",
"Afar": "aa",
"Afitti": "aft",
"Afra": "ulf",
"Afrihili": "afh",
"Afrikaans": "af",
"Afroasia Purba": "afa-pro",
"Agarabi": "agd",
"Agatu": "agc",
"Agawam": "alg-aga",
"Aghem": "agq",
"Aghu": "ahh",
"Aghul": "agx",
"Aghwan": "xag",
"Agi": "aif",
"Agob": "kit",
"Agoi": "ibm",
"Agta Cagayan Tengah": "agt",
"Agta Camarines Norte": "abd",
"Agta Casiguran Dumagat": "dgc",
"Agta Dicamay": "duy",
"Agta Dinapigue": "phi-din",
"Agta Dupaningan": "duo",
"Agta Gunung Iraya": "atl",
"Agta Gunung Iriga": "agz",
"Agta Isarog": "agk",
"Agta Nagtipunan": "phi-nag",
"Agta Pahanan": "apf",
"Agta Pulau Alabat": "dul",
"Agta Remontado": "agv",
"Agta Umiray Dumaget": "due",
"Agta Villa Viciosa": "dyg",
"Aguacateco": "agu",
"Aguano": "aga",
"Aguaruna": "agr",
"Aguna": "aug",
"Agutaynen": "agn",
"Agwagwune": "yay",
"Ahanta": "aha",
"Ahirani": "ahr",
"Ahom": "aho",
"Ahtna": "aht",
"Ahwai": "nfd",
"Ai-Cham": "aih",
"Aighon": "aix",
"Aikanã": "tba",
"Aiklep": "mwg",
"Aimele": "ail",
"Aimol": "aim",
"Ainbai": "aic",
"Ainu": "ain",
"Aiome": "aki",
"Airoran": "air",
"Aisi": "mmq",
"Aiton": "aio",
"Aja (Afrika Barat)": "ajg",
"Aja (Afrika Timur)": "aja",
"Ajawa": "ajw",
"Ajië": "aji",
"Ajyíninka Apurucayali": "cpc",
"Ak": "akq",
"Aka (Afrika Tengah)": "axk",
"Aka (Sudan)": "soh",
"Aka-Bea": "abj",
"Aka-Bo": "akm",
"Aka-Cari": "aci",
"Aka-Kede": "akx",
"Aka-Kol": "aky",
"Aka-Kora": "ack",
"Akan": "ak",
"Akar-Bale": "acl",
"Akaselem": "aks",
"Akatek": "knj",
"Akawaio": "ake",
"Ake": "aik",
"Akebu": "keu",
"Akei": "tsr",
"Akeu": "aeu",
"Akha": "ahk",
"Akhvakh": "akv",
"Akkadia": "akk",
"Aklanon": "akl",
"Akolet": "akt",
"Akoose": "bss",
"Akoye": "miw",
"Akpa": "akf",
"Akpes": "ibe",
"Akrukay": "afi",
"Akuku": "ayk",
"Akum": "aku",
"Akuntsu": "aqz",
"Akurio": "ako",
"Akuwagel": "bey",
"Akwa": "akw",
"Akyaung Ari": "nqy",
"Al-Sayyid Bedouin Sign Language": "syy",
"Alaba": "alw",
"Alabama": "akz",
"Alago": "ala",
"Alagwa": "wbj",
"Alak": "alk",
"Alamblak": "amp",
"Alangan": "alj",
"Alapmunte": "apv",
"Alawa": "alh",
"Alazapa": "nai-ala",
"Albania": "sq",
"Albania Purba": "sqj-pro",
"Albanian Sign Language": "sqk",
"Alchuka": "tuw-alk",
"Alcozauca Mixtec": "xta",
"Alege": "alf",
"Aleut": "ale",
"Aleut Mednyj": "mud",
"Algik Purba": "aql-pro",
"Algonquian Purba": "alg-pro",
"Algonquin": "alq",
"Algonquin Carolina": "crr",
"Ali": "aiy",
"Alladian": "ald",
"Allar": "all",
"Allentiac": "sai-all",
"Alngith": "aid",
"Alo Phola": "ypo",
"Alor": "aol",
"Alsea": "aes",
"Alta Selatan": "agy",
"Alta Utara": "aqn",
"Altai Selatan": "alt",
"Altai Utara": "atv",
"Alu": "mte",
"Alugu": "aub",
"Alumu-Tesu": "aab",
"Alune": "alp",
"Alungul": "aus-alu",
"Aluo": "yna",
"Alur": "alz",
"Alutiiq": "ems",
"Alutor": "alr",
"Alviri-Vidari": "avd",
"Alyawarr": "aly",
"Ama": "amm",
"Amahai": "amq",
"Amahuaca": "amc",
"Amaimon": "ali",
"Amal": "aad",
"Amami Ōshima Selatan": "ams",
"Amami Ōshima Utara": "ryn",
"Amanab": "amn",
"Amanayé": "ama",
"Amara": "aie",
"Amarakaeri": "amr",
"Amarasi": "aaz",
"Amarizana": "awd-ama",
"Amasi": "alv-ama",
"Amatlán Zapotec": "zpo",
"Amazigh Maghribi": "zgh",
"Amba": "rwm",
"Ambae Barat": "nnd",
"Ambai": "amk",
"Ambakich": "aew",
"Ambelau": "amv",
"Ambele": "ael",
"Amblong": "alm",
"Ambo": "amb",
"Ambrak": "aag",
"Ambrym Tenggara": "tvk",
"Ambrym Utara": "mmg",
"Ambul": "apo",
"Ambulas": "abt",
"Amdang": "amj",
"Amele": "aey",
"Amganad Ifugao": "ifa",
"Amhara": "am",
"Ami": "amy",
"Amis": "ami",
"Ammon": "sem-amm",
"Amo": "amo",
"Amol": "alx",
"Amondawa": "adw",
"Amor": "sem-amo",
"Ampanang": "apg",
"Amto": "amt",
"Amuesha-Chamicuro Purba": "awd-amc-pro",
"Amurdag": "amg",
"Amuzgo Guerrero": "amu",
"Amuzgo Ipalapa": "azm",
"Amuzgo San Pedro Amuzgos": "azg",
"Ana Tinga Dogon": "dti",
"Anaang": "anw",
"Anakalangu": "akg",
"Anam": "pda",
"Anambé": "aan",
"Anamgura": "imi",
"Anasi": "bpo",
"Anatolia Purba": "ine-ana-pro",
"Anauyá": "awd-ana",
"Andai": "afd",
"Andajin": "ajn",
"Andaman Besar Purba": "qfa-adm-pro",
"Andaqui": "ana",
"Andarum": "aod",
"Andegerebinha": "adg",
"Andh": "anr",
"Andi": "ani",
"Andi Purba": "cau-and-pro",
"Andio": "bzb",
"Andjingith": "aus-and",
"Andoa": "anb",
"Andoque": "ano",
"Andoquero": "sai-and",
"Andra-Hus": "anx",
"Aneityum": "aty",
"Anem": "anz",
"Aneme Wake": "aby",
"Anfillo": "myo",
"Angaataha": "agm",
"Angaité": "aqt",
"Angal": "age",
"Angal Enen": "aoe",
"Angal Heneng": "akh",
"Angami": "njm",
"Angevin": "roa-ang",
"Angguruk Yali": "yli",
"Angika": "anp",
"Angkamuthi": "avm",
"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",
"Annobon": "fab",
"Anong": "nun",
"Anor": "anj",
"Anserma": "ans",
"Ansus": "and",
"Antakarinya": "ant",
"Anu": "anl",
"Anuak": "anu",
"Anufo": "cko",
"Anuki": "aui",
"Anus": "auq",
"Anuta": "aud",
"Anyi": "any",
"Anyin Morofo": "mtb",
"Anāl": "anm",
"Ao Chungli": "njo-jgl",
"Ao Mongsen": "njo-mng",
"Aoheng": "pni",
"Aore": "aor",
"Ap Ma": "kbx",
"Apabhramsa": "inc-apa",
"Apache Barat": "apw",
"Apache Dataran": "apk",
"Apache Purba": "apa-pro",
"Apalachee": "xap",
"Apalaí": "apy",
"Apali": "ena",
"Apatani": "apt",
"Apiaká": "api",
"Apinayé": "apn",
"Apma": "app",
"Apolista": "awd-apo",
"Apro": "ahp",
"Apurinã": "apu",
"Aputai": "apx",
"Aquitanian": "xaq",
"Arab": "ar",
"Arab Algeria": "arq",
"Arab Andalusia": "xaa",
"Arab Bahrani": "abv",
"Arab Chad": "shu",
"Arab Cyprus": "acy",
"Arab Dhofar": "adf",
"Arab Hassaniyah": "mey",
"Arab Hijaz": "acw",
"Arab Iraq": "acm",
"Arab Juba": "pga",
"Arab Libya": "ayl",
"Arab Maghribi": "ary",
"Arab Mesir": "arz",
"Arab Mesopotamia Utara": "ayp",
"Arab Najdi": "ars",
"Arab Oman": "acx",
"Arab Selatan Kuno": "sem-srb",
"Arab Sudan": "apd",
"Arab Syam Selatan": "ajp",
"Arab Syam Utara": "apc",
"Arab Syihuh": "ssh",
"Arab Tajik": "abh",
"Arab Teluk": "afb",
"Arab Tunisia": "aeb",
"Arab Utara Purba": "xna",
"Arab Uzbeki": "auz",
"Arab Yaman": "ayn",
"Arabana": "ard",
"Arabela": "arl",
"Aragon": "an",
"Araki": "akr",
"Arakwal": "rkw",
"Aralle-Tabulahan": "atq",
"Aramia": "arc",
"Arammba": "stk",
"Aranadan": "aaf",
"Aranama-Tamique": "xrt",
"Aranda Selatan Bawah": "axl",
"Arandai": "jbj",
"Araona": "aro",
"Arapaho": "arp",
"Arapaso": "arj",
"Arapesh Bumbita": "aon",
"Arara-Karo": "arr",
"Ararandewára": "xaj",
"Arawa Purba": "auf-pro",
"Arawak Purba": "awd-pro",
"Araweté": "awt",
"Arawum": "awm",
"Arbore": "arv",
"Archi": "aqc",
"Are": "mwc",
"Areba": "aea",
"Arem": "aem",
"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",
"Armenia": "hy",
"Armenia Kuno": "xcl",
"Armenia Pertengahan": "axm",
"Armenia Purba": "hyx-pro",
"Arnhem Purba": "aus-arn-pro",
"Aroid Purba": "omv-aro-pro",
"Aromania": "rup",
"Arop-Lokep": "apr",
"Arop-Sissano": "aps",
"Arosi": "aia",
"Arrernte Barat": "are",
"Arrernte Timur": "aer",
"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",
"Ashraaf": "cus-ash",
"Asháninka": "cni",
"Ashéninka Pajonal": "cjo",
"Ashéninka Perené": "prq",
"Ashéninka Ucayali Selatan": "cpy",
"Asi": "bno",
"Asilulu": "asl",
"Askopan": "eiv",
"Asli Purba": "mkh-asl-pro",
"Asmat Pesisir Casuarina": "asc",
"Asmat Tengah": "cns",
"Asmat Utara": "nks",
"Asmat Yaosakor": "asy",
"Asoa": "asv",
"Assam": "as",
"Assam Awal": "inc-oas",
"Assam Pertengahan": "inc-mas",
"Assan": "xss",
"Assangori": "sjg",
"Assiniboine": "asb",
"Asturia": "ast",
"Asu": "aum",
"Asue Awyu": "psa",
"Asumboa": "aua",
"Asunción Mixtepec Zapotec": "zoo",
"Asuri": "asr",
"Asurini Tocantins": "asu",
"Asuriní Xingú": "asn",
"Ata": "atm",
"Atakapa": "aqp",
"Atampaya": "amz",
"Atanques": "cba-ata",
"Atauran": "adb",
"Atayal": "tay",
"Atayalik Purba": "map-ata-pro",
"Atemble": "ate",
"Ateso": "teo",
"Athabaska Purba": "ath-pro",
"Athpare": "aph",
"Ati": "atk",
"Atikamekw": "atj",
"Atlantik-Congo Purba": "alv-pro",
"Atohwaim": "aqm",
"Atong (Cameroon)": "ato",
"Atong (India)": "aot",
"Atorada": "aox",
"Atsahuaca": "atc",
"Atsam": "cch",
"Atsugewi": "atw",
"Atta Faire": "azt",
"Atta Pamplona": "att",
"Atta Pudtol": "atp",
"Attapady Kurumba": "pkr",
"Attié": "ati",
"Au": "avt",
"Auhelawa": "kud",
"Aukan": "djk",
"Aulua": "aul",
"Aurá": "aux",
"Aushi": "auh",
"Aushiri": "avs",
"Auslan": "asf",
"Austral": "aut",
"Austroasia Purba": "aav-pro",
"Austronesia Purba": "map-pro",
"Auwe": "smf",
"Auyana": "auy",
"Auye": "auu",
"Auyokawa": "auo",
"Avar": "av",
"Avar Kuno": "oav",
"Avar-Andi Purba": "cau-ava-pro",
"Avatime": "avn",
"Avau": "avb",
"Avava": "tmb",
"Avesta": "ae",
"Avikam": "avi",
"Avokaya": "avu",
"Avá-Canoeiro": "avv",
"Awa (China)": "vwa",
"Awa (New Guinea)": "awb",
"Awa-Cuaiquer": "kwi",
"Awabakal": "awk",
"Awadhi": "awa",
"Awadhi Kuno": "inc-oaw",
"Awak": "awo",
"Awar": "aya",
"Awara": "awx",
"Awbono": "awh",
"Aweer": "bob",
"Awera": "awr",
"Awetí": "awe",
"Awing": "azo",
"Awjila": "auj",
"Awngi": "awn",
"Awngthim": "gwm",
"Awtuw": "kmn",
"Awu": "yiu",
"Awun": "aww",
"Awutu": "afu",
"Awyi": "auw",
"Awyu Edera": "awy",
"Awyu Jair": "awv",
"Awyu Selatan": "aws",
"Awyu Tengah": "awu",
"Awyu Utara": "yir",
"Axamb": "ahb",
"Axi": "yix",
"Ayabadhu": "ayd",
"Ayautla Mazatec": "vmy",
"Ayere": "aye",
"Ayerrerenge": "axe",
"Ayi": "ayq",
"Ayizi": "yyz",
"Ayizo": "ayb",
"Aymara": "ay",
"Ayomán": "sai-ayo",
"Ayoreo": "ayo",
"Ayta Abenlen": "abp",
"Ayta Ambala": "abc",
"Ayta Bataan": "ayt",
"Ayta Sorsogon": "ays",
"Ayu": "ayu",
"Azerbaijan": "az",
"Azha": "aza",
"Azhe": "yiz",
"Azoyú Me'phaa": "tpc",
"Baa": "kwb",
"Baagandji": "drl",
"Baali": "bcp",
"Baan": "bvj",
"Baangi": "bqx",
"Baatonum": "bba",
"Baba": "bbw",
"Babango": "bbm",
"Babanki": "bbk",
"Babar Utara": "bcd",
"Babatana": "baa",
"Babine-Witsuwit'en": "bcr",
"Babole": "bvx",
"Babungo": "bav",
"Babuza": "bzg",
"Bacama": "bcy",
"Bada": "bhz",
"Badaga": "bfq",
"Badanchi": "bau",
"Bade": "bde",
"Badeshi": "bdz",
"Badimaya": "bia",
"Badui": "bac",
"Badyara": "pbp",
"Baeggu": "bvd",
"Baekje": "pkc",
"Baelelea": "bvc",
"Baenan": "sai-bae",
"Baetora": "btr",
"Bafanji": "bfj",
"Bafaw": "bwt",
"Bafia": "ksf",
"Bafut": "bfd",
"Baga Kaloum": "bqf",
"Baga Koga": "bgo",
"Baga Manduri": "bmd",
"Baga Pokur": "bcg",
"Baga Sitemu": "bsp",
"Baga Sobané": "bsv",
"Bagheli": "bfy",
"Bagirmi": "bmi",
"Bago-Kusuntu": "bqg",
"Bagri": "bgq",
"Bagua": "sai-bag",
"Bagupi": "bpi",
"Bagusa": "bqb",
"Bagvalal": "kva",
"Baha": "yha",
"Bahaaa Isyarat Mauritius": "lsy",
"Bahaaa Isyarat Panama": "lsp",
"Baham": "bdw",
"Bahasa Hitam": "art-bsp",
"Bahasa Isyarat Adamorobe": "ads",
"Bahasa Isyarat Afghanistan": "afg",
"Bahasa Isyarat Afrika Selatan": "sfs",
"Bahasa Isyarat Algeria": "asp",
"Bahasa Isyarat Amerika": "ase",
"Bahasa Isyarat Argentina": "aed",
"Bahasa Isyarat Armenia": "aen",
"Bahasa Isyarat Austria": "asq",
"Bahasa Isyarat Chad": "cds",
"Bahasa Isyarat Croatia": "csq",
"Bahasa Isyarat Ecuador": "ecs",
"Bahasa Isyarat El Salvador": "esn",
"Bahasa Isyarat Estonia": "eso",
"Bahasa Isyarat Filipina": "psp",
"Bahasa Isyarat Finland": "fse",
"Bahasa Isyarat Finland-Sweden": "fss",
"Bahasa Isyarat Habsyah": "eth",
"Bahasa Isyarat Haiphong": "haf",
"Bahasa Isyarat Hanoi": "hab",
"Bahasa Isyarat Hausa": "hsl",
"Bahasa Isyarat Honduras": "hds",
"Bahasa Isyarat Hong Kong": "hks",
"Bahasa Isyarat Hungary": "hsh",
"Bahasa Isyarat Iceland": "icl",
"Bahasa Isyarat India": "ins",
"Bahasa Isyarat Indonesia": "inl",
"Bahasa Isyarat Inuit": "iks",
"Bahasa Isyarat Ireland": "isg",
"Bahasa Isyarat Israel": "isr",
"Bahasa Isyarat Itali": "ise",
"Bahasa Isyarat Jamaica": "jls",
"Bahasa Isyarat Jepun": "jsl",
"Bahasa Isyarat Jhankot": "jhs",
"Bahasa Isyarat Jordan": "jos",
"Bahasa Isyarat Jumla": "jus",
"Bahasa Isyarat Kentish Kuno": "okl",
"Bahasa Isyarat Korea": "kvk",
"Bahasa Isyarat Lao": "lso",
"Bahasa Isyarat Latvia": "lsl",
"Bahasa Isyarat Libya": "lbs",
"Bahasa Isyarat Madagascar": "mzc",
"Bahasa Isyarat Malta": "mdl",
"Bahasa Isyarat Maritim": "nsr",
"Bahasa Isyarat Martha's Vineyard": "mre",
"Bahasa Isyarat Maya Yucatec": "msd",
"Bahasa Isyarat Mesir": "esl",
"Bahasa Isyarat Mexico": "mfs",
"Bahasa Isyarat Miriwoong": "rsm",
"Bahasa Isyarat Monastik": "mzg",
"Bahasa Isyarat Mongolia": "msr",
"Bahasa Isyarat Mozambique": "mzy",
"Bahasa Isyarat Namibia": "nbs",
"Bahasa Isyarat Negara Jamaica": "jcs",
"Bahasa Isyarat Nepal": "nsp",
"Bahasa Isyarat New Zealand": "nzs",
"Bahasa Isyarat Nicaragua": "ncs",
"Bahasa Isyarat Nigeria": "nsi",
"Bahasa Isyarat Norway": "nsl",
"Bahasa Isyarat Orang Asli Australia": "asw",
"Bahasa Isyarat Pakistan": "pks",
"Bahasa Isyarat Papua New Guinea": "pgz",
"Bahasa Isyarat Paraguay": "pys",
"Bahasa Isyarat Parsi": "psc",
"Bahasa Isyarat Perancis": "fsl",
"Bahasa Isyarat Peru": "prl",
"Bahasa Isyarat Poland": "pso",
"Bahasa Isyarat Portugis": "psr",
"Bahasa Isyarat Providencia": "prz",
"Bahasa Isyarat Puerto Rico": "psl",
"Bahasa Isyarat Pulau Pinang": "psg",
"Bahasa Isyarat Quebec": "fcs",
"Bahasa Isyarat Romania": "rms",
"Bahasa Isyarat Rusia": "rsl",
"Bahasa Isyarat Taiwan": "tss",
"Bahasa Isyarat Tanzania": "tza",
"Bahasa Isyarat Tebul": "tsy",
"Bahasa Isyarat Thai": "tsq",
"Bahasa Isyarat Trinidad dan Tobago": "lst",
"Bahasa Isyarat Tunisia": "tse",
"Bahasa Isyarat Turki": "tsm",
"Bahasa Isyarat Yahudi Algeria": "ajs",
"Bahasa Lembah Indus": "xiv",
"Bahasa Roh Maroon": "crp-mar",
"Bahau": "bhv",
"Bahinemo": "bjh",
"Bahing": "bhj",
"Bahnar": "bdq",
"Bahnar Purba": "mkh-ban-pro",
"Bahonsuai": "bsu",
"Bai": "bdj",
"Bai Purba": "sit-bai-pro",
"Bai Selatan": "bfs",
"Bai Tengah": "bca",
"Baibai": "bbf",
"Baikeno": "bkx",
"Bailang": "tbq-blg",
"Baima": "bqh",
"Baimak": "bmx",
"Bainouk Gubeeher": "alv-bgu",
"Bainouk-Gunyaamolo": "bcz",
"Bainouk-Gunyuño": "bab",
"Bainouk-Samik": "bcb",
"Baiso": "bsw",
"Bajan": "bjs",
"Bajau Indonesia": "bdl",
"Bajau Laut": "sml",
"Bajau Pantai Timur": "ssb",
"Bajau Sama": "bdr",
"Bajelani": "bjm",
"Baka": "bkc",
"Bakairí": "bkq",
"Bakaka": "bqz",
"Bakhtiari": "bqi",
"Baki": "bki",
"Bakoko": "bkh",
"Bakole": "kme",
"Bakpinka": "bbs",
"Baktria": "xbc",
"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": "ban",
"Baliledo": "poz-bal",
"Balkan Gagauz Turkish": "bgx",
"Balo": "bqo",
"Baloi": "biz",
"Balong": "bnt-bal",
"Balti": "bft",
"Balto-Slavik Purba": "ine-bsl-pro",
"Baluan-Pam": "blq",
"Baluchi": "bal",
"Bamako Sign Language": "bog",
"Bamali": "bbq",
"Bambalang": "bmo",
"Bambam": "ptu",
"Bambara": "bm",
"Bambassi": "myf",
"Bambili-Bambui": "baw",
"Bamenyam": "bce",
"Bamu": "bcf",
"Bamukumbit": "bqt",
"Bamum": "bax",
"Bamunka": "bvm",
"Bamwe": "bmg",
"Ban Khor Sign Language": "bfk",
"Bana": "bcw",
"Banam Bay": "vrt",
"Banao Itneg": "bjx",
"Banaro": "byz",
"Banda": "bnd",
"Banda Malay": "bpq",
"Banda Tengah Barat": "bbp",
"Banda Tengah Selatan": "lnl",
"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",
"Banjar": "bjn",
"Banka": "bxw",
"Bankan Tey Dogon": "dbw",
"Bankon": "abb",
"Banoni": "bcm",
"Bantawa": "bap",
"Bantayanon": "bfx",
"Bantik": "bnq",
"Bantoid Purba": "nic-bod-pro",
"Bantu Purba": "bnt-pro",
"Banyumasan": "map-bms",
"Baoule": "bci",
"Baraamu": "brd",
"Barai": "bbb",
"Barakai": "baj",
"Barama": "bbg",
"Barambu": "brm",
"Baramu": "bmz",
"Barapasi": "brp",
"Baras": "brs",
"Barasana": "bsn",
"Barbar Tunisia": "sds",
"Barbareño": "boi",
"Bardi": "bcj",
"Barein": "bva",
"Bargam": "mlp",
"Bari": "bfa",
"Bariai": "bch",
"Bariji": "bjc",
"Barikanchi": "bxo",
"Barikewa": "jbk",
"Barngarla": "bjb",
"Barok": "bjk",
"Barombi": "bbi",
"Barranbinya": "aus-bra",
"Barro Negro Tunebo": "tbn",
"Barrow Point": "bpt",
"Baruga": "bjz",
"Barunggam": "aus-brm",
"Baruya": "byr",
"Barwe": "bwg",
"Barzani Jewish Neo-Aramaic": "bjf",
"Baré": "bae",
"Barí": "mot",
"Basa": "bzw",
"Basa-Gumna": "bsl",
"Basa-Gurmana": "buj",
"Basaa": "bas",
"Basap": "bdb",
"Basay": "byq",
"Bashkardi": "bsg",
"Bashkir": "ba",
"Basketo": "bst",
"Basque": "eu",
"Basque Purba": "euq-pro",
"Bassa": "bsq",
"Bassa-Kontagora": "bsr",
"Bassari": "bsc",
"Bassossi": "bsi",
"Bata": "bta",
"Batad Ifugao": "ifb",
"Batak Alas-Kluet": "btz",
"Batak Angkola": "akb",
"Batak Dairi": "btd",
"Batak Karo": "btx",
"Batak Mandailing": "btm",
"Batak Palawan": "bya",
"Batak Purba": "btk-pro",
"Batak Simalungun": "bts",
"Batak Toba": "bbc",
"Batanga": "bnm",
"Batek": "btq",
"Bateri": "btv",
"Bathari": "bhm",
"Bati (Cameroon)": "btc",
"Bati (Indonesia)": "bvt",
"Bats": "bbl",
"Batu": "btu",
"Batui": "zbt",
"Batuley": "bay",
"Bau": "bbd",
"Bauchi": "bsf",
"Baure": "brg",
"Bauria": "bge",
"Bauro": "bxa",
"Bauwaki": "bwk",
"Bauzi": "bvz",
"Bavarian": "bar",
"Bayali": "bjy",
"Baybayanon": "bvy",
"Baygo": "byg",
"Bayogoula": "nai-bay",
"Bayono": "byl",
"Bayot": "bda",
"Bayungu": "bxj",
"Bazigar": "bfr",
"Be Purba": "qfa-onb-pro",
"Be-Tai Purba": "qfa-bet-pro",
"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": "nl",
"Belanda Bor": "bxb",
"Belanda Jersey": "gmw-jdt",
"Belanda Kreol Berbice": "brc",
"Belanda Kreol Skepi": "skw",
"Belanda Kuno": "odt",
"Belanda Pertengahan": "dum",
"Belanda Viri": "bvi",
"Belarus": "be",
"Belhariya": "byw",
"Beli": "blm",
"Bella Coola": "blc",
"Bellari": "brw",
"Bemba": "bem",
"Bembe": "bmb",
"Ben Tey": "dbt",
"Bena": "yun",
"Benabena": "bef",
"Bench": "bcq",
"Bende": "bdp",
"Bendi": "bct",
"Beneraf": "bnv",
"Beng": "nhb",
"Benga": "bng",
"Bengal Kuno": "inc-obn",
"Bengal Pertengahan": "inc-mbn",
"Benggali": "bn",
"Benggoi": "bgy",
"Bengkala Sign Language": "bqy",
"Bentong": "bnu",
"Benue-Congo Purba": "nic-bco-pro",
"Benyadu'": "byd",
"Beothuk": "bue",
"Bepour": "bie",
"Bera": "brf",
"Berakou": "bxv",
"Berawan": "lod",
"Berber Purba": "ber-pro",
"Berber Saharan Utara": "mzb",
"Bergish": "gmw-bgh",
"Berik": "bkl",
"Berinomo": "bit",
"Berom": "bom",
"Berta": "wti",
"Berti": "byt",
"Besisi": "mhe",
"Besme": "bes",
"Besoa": "bep",
"Betaf": "bfe",
"Betawi": "bew",
"Bete": "byf",
"Bete-Bendi": "btt",
"Betoi": "sai-bet",
"Bezhta": "kap",
"Bhadrawahi": "bhd",
"Bhalay": "bhx",
"Bharia": "bha",
"Bhatri": "bgw",
"Bhattiyali": "bht",
"Bhaya": "bhe",
"Bhele": "bhy",
"Bhilali": "bhi",
"Bhili": "bhb",
"Bhojpur": "bho",
"Bhunjia": "bhu",
"Biafada": "bif",
"Biage": "bdf",
"Biak": "bhw",
"Biali": "beh",
"Bian Marind": "bpv",
"Biangai": "big",
"Biao": "byk",
"Biao Mon": "bmt",
"Biao-Jiao Mien": "bje",
"Bibaali": "bcn",
"Bibbulman": "xbp",
"Bicolano Catanduanes Selatan": "bln",
"Bicolano Catanduanes Utara": "cts",
"Bicolano Iriga": "bto",
"Bidayuh Bau": "sne",
"Bidayuh Biatah": "bth",
"Bidayuh Bukar-Sadong": "sdo",
"Bidiyo": "bid",
"Bidyara": "bym",
"Bidyogo": "bjg",
"Biem": "bmc",
"Bierebo": "bnk",
"Bieria": "brj",
"Biete": "biu",
"Big Nambas": "nmb",
"Biga": "bhc",
"Bigambal": "xbe",
"Bih": "ibh",
"Bihari": "bh",
"Bijori": "bix",
"Bikaru": "bic",
"Bikol Libon": "lbl",
"Bikol Miraya": "rbl",
"Bikol Miraya Barat": "fbl",
"Bikol Tengah": "bcl",
"Bikya": "byb",
"Bila": "bip",
"Bilakura": "bql",
"Bilaspuri": "kfs",
"Bilba": "bpz",
"Bilbil": "brz",
"Bile": "bil",
"Biliau": "bcu",
"Biloxi": "bll",
"Bilua": "blb",
"Bilur": "bxf",
"Bima": "bhp",
"Bimin": "bhl",
"Bimoba": "bim",
"Bina": "bmn",
"Binahari": "bxz",
"Binandere": "bhg",
"Binandere Purba": "ngf-bin-pro",
"Binawa": "byj",
"Bindal": "xbd",
"Bine": "bon",
"Binji": "bpj",
"Binongan Itneg": "itb",
"Bintauna": "bne",
"Binukid": "bkd",
"Binumarien": "bjr",
"Bipi": "biq",
"Birao": "brr",
"Birgid": "brk",
"Birgit": "btf",
"Birhor": "biy",
"Biri": "bzr",
"Birifor Selatan": "biv",
"Biritai": "bqq",
"Birri": "bvq",
"Birrpayi": "xbj",
"Birwa": "brl",
"Bisaya Brunei": "bsb",
"Bisaya Sabah": "bsy",
"Biseni": "ije",
"Bishnupriya Manipuri": "bpy",
"Bishuo": "bwh",
"Bisis": "bnw",
"Bislama": "bi",
"Bisorio": "bir",
"Bissa": "bib",
"Bisu": "bzi",
"Bit": "bgk",
"Bitare": "brt",
"Bitur": "mcc",
"Biwat": "bwm",
"Biyo": "byo",
"Biyom": "bpm",
"Blablanga": "blp",
"Blackfoot": "bla",
"Blafe": "bfh",
"Blagar": "beu",
"Blang": "blr",
"Blin": "byn",
"Bo": "bgl",
"Bo-Rukul": "mae",
"Bo-Ung": "mux",
"Boano (Maluku)": "bzn",
"Boano (Sulawesi)": "bzl",
"Bobo Selatan": "bwq",
"Bobongko": "bgb",
"Bobot": "bty",
"Bodish Purba": "sit-bdi-pro",
"Bodo (Central Africa)": "boy",
"Bodo (India)": "brx",
"Bodo Parja": "bdv",
"Bodo-Garo Purba": "tbq-bdg-pro",
"Bofi": "bff",
"Boga": "bvw",
"Bogaya": "boq",
"Boghom": "bux",
"Boguru": "bqu",
"Boikin": "bzf",
"Bokar": "sit-bok",
"Bokha": "ybk",
"Bokmål Norway": "nb",
"Boko": "bqc",
"Bokobaru": "bus",
"Bokoto": "bdt",
"Bokyi": "bky",
"Bola": "bnp",
"Bolak": "art-blk",
"Bolango": "bld",
"Bole": "bol",
"Bolgo": "bvo",
"Bolia": "bli",
"Bolinao": "smk",
"Bolivian Sign Language": "bvl",
"Boloki": "bkt",
"Bolon": "bof",
"Bolondo": "bzm",
"Bolongan": "blj",
"Bolyu": "ply",
"Bom": "bmf",
"Boma Nkuu": "bnt-bon",
"Boma Selatan": "bnt-sbo",
"Boma Utara": "boh",
"Boma Yumu": "bnt-boy",
"Bomboli": "bml",
"Bomboma": "bws",
"Bomitaba": "zmx",
"Bomu": "bmq",
"Bomwali": "bmw",
"Bonan": "peh",
"Bondei": "bou",
"Bondo": "bfw",
"Bondoukou Kulango": "kzc",
"Bondum Dom Dogon": "dbu",
"Bonerate": "bna",
"Bonggi": "bdg",
"Bonggo": "bpg",
"Bongili": "bui",
"Bongo": "bot",
"Bongo-Bagirmi Purba": "csu-bba-pro",
"Bongu": "bpu",
"Bonjo": "bok",
"Bonkeng": "bvg",
"Bonkiman": "bop",
"Bontoc Barat Daya": "vbk",
"Bontoc Selatan": "obk",
"Bontoc Tengah": "lbk",
"Bontoc Timur": "ebk",
"Bontoc Utara": "rbk",
"Bookan": "bnb",
"Boon": "bnl",
"Boor": "bvf",
"Bora": "boa",
"Bora Purba": "sai-bor-pro",
"Boro": "xxb",
"Borong": "ksr",
"Boruca": "brn",
"Borôro": "bor",
"Boselewa": "bwf",
"Bosngun": "bqs",
"Bote-Majhi": "bmj",
"Botlikh": "bph",
"Botolan Sambal": "sbl",
"Bourbonnais-Berrichon": "roa-bbn",
"Bourguignon": "roa-brg",
"Bouyei": "pcc",
"Bozaba": "bzo",
"Bragat": "aof",
"Brahui": "brh",
"Braj": "bra",
"Brazilian Sign Language": "bzs",
"Brem": "buq",
"Breri": "brq",
"Breton": "br",
"Breton Kuno": "obt",
"Breton Pertengahan": "xbm",
"Bribri": "bzd",
"British Sign Language": "bfi",
"Britonik Purba": "cel-bry-pro",
"Brokkat": "bro",
"Brokpake": "sgt",
"Brokskat": "bkk",
"Broome Pearling Lugger Pidgin": "bpl",
"Bru Barat": "brv",
"Bru Timur": "bru",
"Bu": "jid",
"Bu-Nao Bunu": "bwx",
"Bua": "bub",
"Bua Purba": "alv-bua-pro",
"Buamu": "box",
"Bube": "bvb",
"Bubi": "buw",
"Bubia": "bbx",
"Budeh Stieng": "stt",
"Budibud": "btp",
"Budong-Budong": "bdx",
"Budu": "buu",
"Budukh": "bdk",
"Buduma": "bdm",
"Budza": "bja",
"Bugan": "bbh",
"Bughotu": "bgt",
"Bugis": "bug",
"Buglere": "sab",
"Bugun": "bgg",
"Buhi'non Bikol": "ubl",
"Buhid": "bku",
"Buhutu": "bxh",
"Bujhyal": "byh",
"Bukat": "bvk",
"Bukawa": "buk",
"Bukhari": "bhh",
"Bukitan": "bkn",
"Bukiyip": "ape",
"Buksa": "tkb",
"Bukusu": "bxk",
"Bulgar": "xbo",
"Bulgaria": "bg",
"Bulgarian Sign Language": "bqn",
"Bulgebi": "bmp",
"Buli (Ghana)": "bwu",
"Buli (Indonesia)": "bzq",
"Bulo Stieng": "sti",
"Bulu (Cameroon)": "bum",
"Bulu (New Guinea)": "bjl",
"Bum": "bmv",
"Bumaji": "byp",
"Bumang": "bvp",
"Bumthangkha": "kjz",
"Bun": "buv",
"Buna": "bvn",
"Bunaba": "bck",
"Bunak": "bfn",
"Bunama": "bdd",
"Bundeli": "bns",
"Bung": "bqd",
"Bungain": "but",
"Bunganditj": "xbg",
"Bungku": "bkz",
"Bungku-Tolaki Purba": "poz-btk-pro",
"Bungu": "wun",
"Bunoge": "dgb",
"Bunun": "bnn",
"Buol": "blf",
"Bura": "bwr",
"Burak": "bys",
"Buraka": "bkg",
"Burarra": "bvr",
"Burate": "bti",
"Burduna": "bxn",
"Bure": "bvh",
"Burgundia": "gme-bur",
"Burji": "bji",
"Burma": "my",
"Burma Kuno": "obr",
"Burma Purba": "tbq-brm-pro",
"Burmeso": "bzu",
"Buru (Indonesia)": "mhs",
"Buru (Nigeria)": "bqw",
"Burui": "bry",
"Burumakok": "aip",
"Burun": "bdi",
"Burunge": "bds",
"Burushaski": "bsk",
"Burusu": "bqr",
"Buruwai": "asi",
"Buryat": "bua",
"Busa": "bqp",
"Busam": "bxs",
"Busami": "bsm",
"Busang Kayan": "bfg",
"Bushoong": "buf",
"Buso": "bso",
"Busoa": "bup",
"Bussa": "dox",
"Busuu": "bju",
"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",
"Bwela": "bwl",
"Bwile": "bwc",
"Bwisi": "bwz",
"Byangsi": "bee",
"Byep": "mkk",
"Bädi Kanum": "khd",
"Caac": "msq",
"Cabiyarí": "cbb",
"Cabre": "awd-cab",
"Cabécar": "cjp",
"Cacaopera": "ccr",
"Cacua": "cbv",
"Cacán": "sai-cac",
"Caddo": "cad",
"Caddoan Purba": "cdd-pro",
"Cafundó": "ccd",
"Cahuarano": "cah",
"Cahuilla": "chl",
"Caijia": "sit-cai",
"Caka": "ckx",
"Cakchiquel-Quiché Mixed Language": "ckz",
"Cakfem-Mushere": "cky",
"Calamian Tagbanwa": "tbk",
"Callawalla": "caw",
"Calusa": "nai-cal",
"Caluyanun": "clu",
"Caló": "rmq",
"Cam Barat": "cja",
"Cam Timur": "cjm",
"Campalagian": "cml",
"Camsá": "kbh",
"Camtho": "cmt",
"Camunic": "xcc",
"Candoshi-Shapra": "cbu",
"Canela": "ram",
"Cangin Purba": "alv-cng-pro",
"Canichana": "caz",
"Cantabrian": "roa-can",
"Cao Miao": "cov",
"Caolan": "mlc",
"Capanahua": "kaq",
"Capiznon": "cps",
"Caquinte": "cot",
"Car Nicobarese": "caq",
"Cara": "cfd",
"Carabayo": "cby",
"Caramanta": "crf",
"Caranqui": "sai-caq",
"Carapana": "cbc",
"Carian": "xcr",
"Cariay": "awd-kar",
"Carib Purba": "sai-car-pro",
"Carijona": "cbd",
"Carolinian": "cal",
"Carrier": "crx",
"Carrier Selatan": "caf",
"Cashibo-Cacataibo": "cbr",
"Cashinahua": "cbs",
"Catacao": "sai-cat",
"Catalan": "ca",
"Catalan Sign Language": "csc",
"Catalonia Kuno": "roa-oca",
"Catawba": "chc",
"Catuquinaru": "sai-ctq",
"Catío Chibcha": "cba-cat",
"Cauca": "cca",
"Cavineña": "cav",
"Cayubaba": "cyb",
"Cayuga": "cay",
"Cayuse": "xcy",
"Cazcan": "azc-caz",
"Cañari": "sai-cnr",
"Cebaara Senoufo": "sef",
"Cebuano": "ceb",
"Celtiberian": "xce",
"Cemuhî": "cam",
"Cen": "cen",
"Central Palawano": "plc",
"Centúúm": "cet",
"Cerma": "cme",
"Cerrado Purba": "sai-cer-pro",
"Ch'olti'": "myn-chl",
"Ch'orti'": "caa",
"Chaap Wuurong": "tjw",
"Chachi": "cbi",
"Chadik Purba": "cdc-pro",
"Chadik Tengah Purba": "cdc-cbm-pro",
"Chadong": "cdy",
"Chagatai": "chg",
"Chaha": "sem-cha",
"Chaima": "ciy",
"Chairel": "sit-cha",
"Chak": "ckh",
"Chakali": "cli",
"Chakma": "ccp",
"Chala": "cll",
"Chaldean Neo-Aramaic": "cld",
"Chali": "tgf",
"Chamacoco": "ceg",
"Chamalal": "cji",
"Chamba Daka": "ccg",
"Chamba Leko": "ndi",
"Chambeali": "cdh",
"Chambri": "can",
"Chamicuro": "ccc",
"Chamik Purba": "cmc-pro",
"Chamling": "rab",
"Chamorro": "ch",
"Champenois": "roa-cha",
"Chang": "nbc",
"Changriwa": "cga",
"Changthang": "cna",
"Chantyal": "chx",
"Chaná": "sai-chn",
"Chané": "caj",
"Chapacura": "sai-chp",
"Chara": "cra",
"Charrua": "sai-chr",
"Chatino Purba": "omq-cha-pro",
"Chatino San Juan Quiahije": "omq-sjq",
"Chatino Tanah Tinggi Barat": "ctp",
"Chatino Tanah Tinggi Timur": "cly",
"Chatino Teojomulco": "omq-teo",
"Chaudangsi": "cdn",
"Chaura": "crv",
"Chavacano": "cbk",
"Chayahuita": "cbt",
"Chazumba Mixtec": "xtb",
"Che": "ruk",
"Chechen": "ce",
"Cheke Holo": "mrn",
"Chemakum": "xch",
"Chenapian": "cjn",
"Chenchu": "cde",
"Chenoua": "cnu",
"Chepang": "cdm",
"Chepya": "ycp",
"Cherepon": "cpn",
"Cherokee": "chr",
"Chesu": "ych",
"Chetco-Tolowa": "ctc",
"Chewong": "cwg",
"Cheyenne": "chy",
"Chhattisgarhi": "hne",
"Chhintange": "ctn",
"Chhulung": "cur",
"Chiangmai Sign Language": "csd",
"Chiapanec": "cip",
"Chibcha": "chb",
"Chibchan Purba": "cba-pro",
"Chicahuaxtla Triqui": "trs",
"Chichewa": "ny",
"Chichicapan Zapotec": "zpv",
"Chichimeca-Jonaz": "pei",
"Chichonyi-Chidzihana-Chikauma": "coh",
"Chickasaw": "cic",
"Chicomuceltec": "cob",
"Chiduruma": "dug",
"Chilcotin": "clc",
"Chilean Sign Language": "csg",
"Chilisso": "clh",
"Chiltepec Chinantec": "csa",
"Chimakuan Purba": "chi-pro",
"Chimalapa Zoque": "zoh",
"Chimariko": "cid",
"Chimila": "cbg",
"Chimwiini": "bnt-cmw",
"Chin Asho": "csh",
"Chin Bawm": "bgr",
"Chin Bualkhaw": "cbl",
"Chin Chinbon": "cnb",
"Chin Daai": "dao",
"Chin Falam": "cfm",
"Chin Kaang": "ckn",
"Chin Khumi": "cnk",
"Chin Laitu": "clt",
"Chin Mara": "mrh",
"Chin Mro": "cmr",
"Chin Ngawn": "cnw",
"Chin Senthang": "sez",
"Chin Siyin": "csy",
"Chin Songlai": "csj",
"Chin Sumtu": "csv",
"Chin Tawr": "tcp",
"Chin Tedim": "ctd",
"Chin Thado": "tcz",
"Chin Thaiphum": "cth",
"Chin Zotung": "czt",
"Chinali": "cih",
"Chinese Sign Language": "csl",
"Chinook": "chh",
"Chinook Jargon": "chn",
"Chinook Purba": "nai-ckn-pro",
"Chipaya": "cap",
"Chipewyan": "chp",
"Chiquimulilla": "nai-chi",
"Chiquitano": "cax",
"Chiricahua": "apm",
"Chirino": "sai-chi",
"Chiripá": "nhd",
"Chiru": "cdf",
"Chitimacha": "ctm",
"Chitkuli Kinnauri": "cik",
"Chittagong": "ctg",
"Chitwania Tharu": "the",
"Chiwere": "iow",
"Choapan Zapotec": "zpc",
"Chocangaca": "cgk",
"Chochotec": "coz",
"Choctaw": "cho",
"Chodri": "cdi",
"Chokwe": "cjk",
"Chol": "ctu",
"Cholón": "cht",
"Chong": "cog",
"Choni": "cda",
"Chono": "sai-cno",
"Chopi": "cce",
"Chrau": "crw",
"Chru": "cje",
"Chuabo": "chw",
"Chuanqiandian Cluster Miao": "cqd",
"Chuave": "cjv",
"Chug": "cvg",
"Chuj": "cac",
"Chuka": "cuh",
"Chukchi": "ckt",
"Chukotko-Kamchatka Purba": "qfa-cka-pro",
"Chukwa": "cuw",
"Chulym": "clw",
"Chumash Purba": "nai-chu-pro",
"Chumburung": "ncu",
"Churahi": "cdj",
"Churuya": "sai-chu",
"Chut": "scb",
"Chuuk": "chk",
"Chuva": "xcv",
"Chuvash": "cv",
"Chácobo": "cao",
"Ci Gbe": "cib",
"Cia-Cia": "cia",
"Cibak": "ckl",
"Cicipu": "awc",
"Ciguayo": "nai-cig",
"Cimbrian": "cim",
"Cina": "zh",
"Cina Kuno": "och",
"Cina Pertengahan": "ltc",
"Cinda-Regi-Tiyal": "cdr",
"Cineni": "cie",
"Cinta Larga": "cin",
"Circassia Purba": "cau-cir-pro",
"Circassian Barat": "ady",
"Cishingini": "asg",
"Citak": "txt",
"Ciwogai": "tgd",
"Coahuilteco": "xcw",
"Coatlán Zapotec": "zps",
"Cocama": "cod",
"Cochimi": "coj",
"Cocopa": "coc",
"Coeruna": "sai-coe",
"Coeur d'Alene": "crd",
"Cofán": "con",
"Cogui": "kog",
"Col": "liw",
"Colombian Sign Language": "csn",
"Columbia-Wenatchi": "col",
"Colán": "sai-col",
"Comaltepec Chinantec": "cco",
"Comanche": "com",
"Comechingon": "sai-cmg",
"Comecrudo": "xcm",
"Communicationssprache": "art-com",
"Como Karim": "cfg",
"Comoros Maore": "swb",
"Comoros Ngazidja": "zdj",
"Comox": "coo",
"Con": "cno",
"Coos": "csz",
"Copainalá Zoque": "zoc",
"Copala Triqui": "trc",
"Copallén": "sai-cop",
"Coquille": "coq",
"Cora": "crn",
"Cori": "cry",
"Cornish": "kw",
"Cornwall Kuno": "oco",
"Cornwall Pertengahan": "cnx",
"Coroado Puri": "sai-crd",
"Corsica": "co",
"Costa Rican Sign Language": "csr",
"Cotoname": "xcn",
"Cowlitz": "cow",
"Coyaima": "coy",
"Coyotepec Popoloca": "pbf",
"Coyutla Totonac": "toc",
"Cree": "cr",
"Cree Moose": "crm",
"Cree Timur Selatan": "crj",
"Cree Timur Utara": "crl",
"Creek": "mus",
"Cross River Hilir Purba": "nic-lcr-pro",
"Cross River Hulu Purba": "nic-ucr-pro",
"Crow": "cro",
"Cruzeño": "crz",
"Cua": "cua",
"Cuban Sign Language": "csf",
"Cubeo": "cub",
"Cueva": "sai-cva",
"Cuiba": "cui",
"Cuitlatec": "cuy",
"Culina": "cul",
"Culli": "sai-cul",
"Cumanagoto": "cuo",
"Cumbric": "xcb",
"Cun": "cuq",
"Cung": "cug",
"Cupan Purba": "azc-cup-pro",
"Cupeño": "cup",
"Curonian": "xcu",
"Curripaco": "kpc",
"Cushitic Purba": "cus-pro",
"Cushitic Selatan Purba": "cus-sou-pro",
"Cushitic Timur Tanah Tinggi Purba": "cus-hec-pro",
"Cutchi-Swahili": "ccl",
"Cuvok": "cuv",
"Cuyunon": "cyo",
"Cwi Bwamu": "bwy",
"Czech": "cs",
"Czech Kuno": "zlw-ocs",
"Czech Sign Language": "cse",
"Cốông": "cnc",
"Da'a Kaili": "kzf",
"Daantanai'": "lni",
"Daasanach": "dsh",
"Daba": "dbq",
"Dabarre": "dbr",
"Dabe": "dbe",
"Dacian": "xdc",
"Dadan": "sem-dad",
"Dadi Dadi": "dda",
"Dadibi": "mps",
"Dadiya": "dbd",
"Daga": "dgz",
"Dagaare Selatan": "dga",
"Dagaari Dioula": "dgd",
"Dagara Utara": "dgi",
"Dagba": "dgk",
"Dagbani": "dag",
"Dagik": "dec",
"Dagoman": "dgn",
"Dahalik": "dlk",
"Dahalo": "dal",
"Daho-Doo": "das",
"Dai": "dij",
"Dair": "drb",
"Daju Purba": "sdv-daj-pro",
"Dakaka": "bpa",
"Dakka": "dkk",
"Dakota": "dak",
"Dakpa": "dka",
"Dalmatian": "dlm",
"Daloa Bété": "bev",
"Daly Purba": "aus-dal-pro",
"Dama (Nigeria)": "dmm",
"Dama (Sierra Leone)": "dmn-dam",
"Damakawa": "dam",
"Damal": "uhn",
"Damar Barat": "drn",
"Damar Timur": "dmr",
"Dambi": "dac",
"Dameli": "dml",
"Dampelas": "dms",
"Dan": "dnj",
"Danaru": "dnr",
"Danau": "dnu",
"Dandami Maria": "daq",
"Dangaléat": "daa",
"Dangari Purba": "inc-dng-pro",
"Dangaura Tharu": "thl",
"Dani Barat": "dnw",
"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",
"Dargwa Purba": "cau-drg-pro",
"Darkinjung": "xda",
"Darlong": "dln",
"Darmiya": "drd",
"Darumbal": "xgm",
"Dass": "dot",
"Datooga": "tcc",
"Daungwurrung": "dgw",
"Daur": "dta",
"Davawenyo": "daw",
"Dawawa": "dww",
"Dawera-Daweloor": "ddw",
"Dawro": "dwr",
"Day": "dai",
"Dayi": "dax",
"Dazaga": "dzg",
"Deccani": "dcc",
"Dedua": "ded",
"Defaka": "afn",
"Deg": "mzw",
"Deg Xinag": "ing",
"Degema": "deg",
"Degenan": "dge",
"Dehwari": "deh",
"Dek": "dek",
"Dela-Oenale": "row",
"Delo": "ntr",
"Dem": "dem",
"Dema": "dmx",
"Demisa": "dei",
"Demta": "dmy",
"Dena'ina": "tfn",
"Dendi": "ddn",
"Dengese": "dez",
"Dengka": "dnk",
"Denmark": "da",
"Denmark Kuno": "gmq-oda",
"Denmark Pengembara": "rmd",
"Deno": "dbb",
"Denya": "anv",
"Dení": "dny",
"Deori": "der",
"Desano": "des",
"Desiya": "dso",
"Dewas Rai": "dwz",
"Dewoin": "dee",
"Dezfuli": "def",
"Dghwede": "dgh",
"Dhaiso": "dhs",
"Dhalandji": "dhl",
"Dhangu": "dhg",
"Dhanki": "dhn",
"Dhao": "nfa",
"Dharug": "xdk",
"Dhatki": "mki",
"Dhimal": "dhi",
"Dhivehi": "dv",
"Dhodia": "dho",
"Dhudhuroa": "ddr",
"Dhungaloo": "dhx",
"Dhurga": "dhu",
"Dhuwal": "dwu",
"Dhuwaya": "dwy",
"Dia": "dia",
"Dibiyaso": "dby",
"Dibo": "dio",
"Didinga": "did",
"Dieri": "dif",
"Digo": "dig",
"Dii": "dur",
"Dijim-Bwilim": "cfa",
"Dilling": "dil",
"Dima": "jma",
"Dimasa": "dis",
"Dimbong": "dii",
"Dime": "dim",
"Dineor": "mrx",
"Ding": "diz",
"Dinka": "din",
"Dinka Barat Daya": "dik",
"Dinka Barat Laut": "diw",
"Dinka Tengah Selatan": "dib",
"Dinka Tenggara": "dks",
"Dinka Timur Laut": "dip",
"Diodio": "ddi",
"Diri": "dwa",
"Dirim": "dir",
"Disa": "dsi",
"Ditammari": "tbz",
"Ditidaht": "dtd",
"Diuwe": "diy",
"Diuxi-Tilantongo Mixtec": "xtd",
"Dixon Reef": "dix",
"Dizin": "mdx",
"Dizoid Purba": "omv-diz-pro",
"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",
"Dogon Ampari": "aqd",
"Dogon Nanga Dama": "nzz",
"Dogoso": "dgs",
"Dogosé": "dos",
"Dogri": "doi",
"Dogrib": "dgr",
"Dogul Dom": "dbg",
"Doka": "dbi",
"Doko-Uyanga": "uya",
"Dolgan": "dlg",
"Dom": "doa",
"Domaaki": "dmk",
"Domari": "rmt",
"Dominican Sign Language": "doq",
"Dompo": "doy",
"Domu": "dof",
"Domung": "dev",
"Dondo": "dok",
"Dong": "doh",
"Dongo": "doo",
"Dongolawi": "kzh",
"Dongotono": "ddd",
"Dongshanba Lalo": "yik",
"Dongxiang": "sce",
"Donno So Dogon": "dds",
"Doondo": "dde",
"Dorasque": "cba-dor",
"Dori'o": "dor",
"Dorig": "wwo",
"Doromu-Koki": "kqc",
"Dorze": "doz",
"Doso": "dol",
"Doteli": "dty",
"Dothraki": "art-dtk",
"Doura": "don",
"Doutai": "tds",
"Doyayo": "dow",
"Dravidia Purba": "dra-pro",
"Dravidia Selatan I Purba": "dra-sdo-pro",
"Dravidia Selatan II Purba": "dra-sdt-pro",
"Dravidia Selatan Purba": "dra-sou-pro",
"Dravidia Tengah Purba": "dra-cen-pro",
"Dravidia Utara Purba": "dra-nor-pro",
"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",
"Dumait": "sem-dum",
"Dumbea": "duf",
"Dumi": "dus",
"Dumpas": "dmv",
"Dumun": "dui",
"Duna": "duc",
"Dungan": "dng",
"Dungmali": "raa",
"Dungra Bhil": "duh",
"Dungu": "dbv",
"Dura": "drq",
"Duri": "mvp",
"Duriankere": "dbn",
"Duruwa": "pci",
"Dusner": "dsn",
"Dusun Deyah": "dun",
"Dusun Malang": "duq",
"Dusun Sugut": "kzs",
"Dusun Tambunan": "kzt",
"Dusun Witu": "duw",
"Dutch Sign Language": "dse",
"Duun": "dux",
"Duupa": "dae",
"Duvle": "duv",
"Duwai": "dbp",
"Dwang": "nnu",
"Dyaabugay": "dyy",
"Dyaberdyaber": "dyb",
"Dyan": "dya",
"Dyangadi": "dyn",
"Dyirbal": "dbl",
"Dyugun": "dyd",
"Dyula": "dyu",
"Dza": "jen",
"Dzala": "dzl",
"Dzando": "dzn",
"Dzao Min": "bpn",
"Dzodinka": "add",
"Dzongkha": "dz",
"Dzuun": "dnn",
"Dâw": "kwa",
"E": "eee",
"E'ma Buyang": "yzg",
"Eastern Canadian Inuktitut": "ike",
"Ebira": "igb",
"Ebla": "xeb",
"Ebrié": "ebr",
"Ebughu": "ebg",
"Ede Cabe": "cbj",
"Ede Ica": "ica",
"Ede Idaca": "idd",
"Ede Ije": "ijj",
"Ede Nago": "nqg",
"Edekiri Purba": "alv-edk-pro",
"Edo": "bin",
"Edoid Purba": "alv-edo-pro",
"Edolo": "etr",
"Edom": "xdm",
"Edopi": "dbf",
"Efai": "efa",
"Efate Selatan": "erk",
"Efate Utara": "llp",
"Efe": "efe",
"Efik": "efi",
"Efutop": "ofu",
"Ega": "ega",
"Eggon": "ego",
"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",
"Elam": "elx",
"Eleme": "elm",
"Elepi": "ele",
"Elip": "ekm",
"Elkei": "elk",
"Eloi": "art-elo",
"Elotepec Zapotec": "zte",
"Eloyi": "afo",
"Elseng": "mrf",
"Elu": "elu",
"Elymi": "xly",
"Emae": "mmw",
"Emai": "ema",
"Eman": "emn",
"Embaloh": "emb",
"Emberá Utara": "emp",
"Emberá-Baudó": "bdc",
"Emberá-Catío": "cto",
"Emberá-Chamí": "cmi",
"Emberá-Tadó": "tdc",
"Embu": "ebu",
"Emem": "enr",
"Emerillon": "eme",
"Emilian": "egl",
"Emplawas": "emw",
"En": "enc",
"Enawené-Nawé": "unk",
"Ende": "end",
"Enets Hutan": "enf",
"Enets Tundra": "enh",
"Enga": "enq",
"Engenni": "enn",
"Enggano": "eno",
"Enlhet": "enl",
"Enrekang": "ptt",
"Enu": "enu",
"Enwan": "env",
"Enwang": "enw",
"Enxet": "enx",
"Eotile": "eot",
"Epena": "sja",
"Epi-Olmec": "xep",
"Epie": "epi",
"Eravallan": "era",
"Erave": "kjy",
"Ere": "twp",
"Erie": "iro-ere",
"Eritai": "ert",
"Erokwanas": "erw",
"Erre": "err",
"Erromintxela": "emx",
"Ersu": "ers",
"Ersu Purba": "sit-ers-pro",
"Eruwa": "erh",
"Erzya": "myv",
"Esan": "ish",
"Ese": "mcq",
"Ese Ejja": "ese",
"Eshtehardi": "esh",
"Esimbi": "ags",
"Eskayan": "esy",
"Eskimo Purba": "esx-esk-pro",
"Eskimo-Aleut Purba": "esx-pro",
"Esmeralda": "sai-esm",
"Esperanto": "eo",
"Esselen": "esq",
"Estonia": "et",
"Esuma": "esm",
"Etchemin": "etc",
"Etebi": "etb",
"Eten": "etx",
"Eteocretan": "ecr",
"Eteocypriot": "ecy",
"Etkywan": "ich",
"Eton (Cameroon)": "eto",
"Eton (Vanuatu)": "etn",
"Etruria": "ett",
"Etulo": "utr",
"Evant": "bzz",
"Even": "eve",
"Evenki": "evn",
"Ewage-Notu": "nou",
"Ewarhuyana": "sai-ewa",
"Ewe": "ee",
"Ewondo": "ewo",
"Extremaduran": "ext",
"Eyak": "eya",
"Ezaa": "eza",
"Fagani": "faf",
"Faifi": "fif",
"Faiwol": "fai",
"Fala": "fax",
"Fali": "fli",
"Fali Baissa": "fah",
"Fali Purba": "alv-fli-pro",
"Fali Selatan": "fal",
"Fali Utara": "fll",
"Falisci": "xfa",
"Fam": "fam",
"Fanagalo": "fng",
"Fanamaket": "bjp",
"Fang (Bantu)": "fan",
"Fang (Beboid)": "fak",
"Fania": "fni",
"Faroe": "fo",
"Fars Barat Daya": "fay",
"Fars Barat Laut": "faz",
"Fas": "fqs",
"Fasu": "faa",
"Fataleka": "far",
"Fataluku": "ddg",
"Fayu": "fau",
"Fe'fe'": "fmp",
"Fedan": "pdn",
"Fembe": "agl",
"Fer": "kah",
"Feroge": "fer",
"Fiji": "fj",
"Fiji Barat": "wyy",
"Filipina Purba": "phi-pro",
"Filistin": "mis-phi",
"Filomena Mata-Coahuitlán Totonac": "tlp",
"Fingallian": "gmw-fin",
"Finisterre Yau": "yuw",
"Finland": "fi",
"Finnik Purba": "urj-fin-pro",
"Finongan": "fag",
"Fipa": "fip",
"Firan": "fir",
"Fiwaga": "fiw",
"Flemish Barat": "vls",
"Flemish Sign Language": "vgt",
"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",
"Fortsenal": "frt",
"Fox": "sac",
"Franc-Comtois": "roa-fcm",
"Francisco León Zoque": "zos",
"Franco-Provençal": "frp",
"Franconia Rhine": "gmw-rfr",
"Franconia Tengah": "gmw-cfr",
"Franconia Timur": "vmf",
"French Belgian Sign Language": "sfb",
"Frisia Barat": "fy",
"Frisia Kuno": "ofs",
"Frisia Saterland": "stq",
"Frisia Utara": "frr",
"Friulian": "fur",
"Fula": "ff",
"Fuliiru": "flr",
"Fulniô": "fun",
"Fum": "fum",
"Fungwa": "ula",
"Fur": "fvr",
"Furu": "fuu",
"Futuna Timur": "fud",
"Futuna-Aniwa": "fut",
"Fuyug": "fuy",
"Fwe": "fwe",
"Fwâi": "fwa",
"Fyam": "pym",
"Fyer": "fie",
"Gaa": "ttb",
"Gaam": "tbi",
"Gabadi": "kbt",
"Gabrielino-Fernandeño": "xgf",
"Gaelik Scotland": "gd",
"Gagnoa Bété": "btg",
"Gahri": "bfu",
"Galatia": "xga",
"Galicia": "gl",
"Galicia-Portugis Kuno": "roa-opt",
"Galindan": "xgl",
"Gallaecia": "cel-gal",
"Gallo": "roa-gal",
"Gallo-Italik Basilicata": "roa-gib",
"Gallo-Italik Sicily": "roa-gis",
"Gallura": "sdn",
"Galo": "adl",
"Gamale Kham": "kgj",
"Gamela": "sai-gam",
"Gamilaraay": "kld",
"Gamo-Ningi": "bte",
"Gandhari": "pgd",
"Gane": "gzn",
"Ganza": "gza",
"Gapapaiwa": "pwg",
"Garawa": "wrk",
"Garifuna": "cab",
"Garingbal": "xgi",
"Garus": "gyb",
"Garza": "xgr",
"Gaul": "cel-gau",
"Gavak": "dmc",
"Gavião Pará": "gvp",
"Gavião do Jiparaná": "gvo",
"Gawar-Bati": "gwt",
"Gawwada": "gwd",
"Gayil": "gyl",
"Gayón": "sai-gay",
"Gbaya Barat Laut": "gya",
"Gbaya Purba": "gba-pro",
"Gbayi": "gyg",
"Gbe Kotafon": "kqk",
"Gbe Purba": "alv-gbe-pro",
"Gbe Xwla Barat": "xwl",
"Gbin": "xgb",
"Gciriku": "diu",
"Gcwi": "gwj",
"Ge": "hmj",
"Gedeo": "drs",
"Gela": "nlg",
"Gele'": "sbc",
"Georgia": "ka",
"Georgia Kuno": "oge",
"Georgia-Zan Purba": "ccs-gzn-pro",
"Gepo": "ygp",
"Geshiza": "ero-gsz",
"Ghayavi": "bmk",
"Ghomala'": "bbj",
"Ghotuo": "aaa",
"Giangan": "bgi",
"Gikyode": "acd",
"Gimme": "kmp",
"Girawa": "bbr",
"Giryama": "nyf",
"Gizrra": "tof",
"Glio-Oubi": "oub",
"Glosa": "igs",
"Goa'uld": "art-gld",
"Goemai": "ank",
"Goguryeo": "zkg",
"Gokhy": "tbq-gkh",
"Golin": "gvf",
"Golpa": "lja",
"Gong": "ugo",
"Goreng": "xgg",
"Goth Crimea": "gme-cgo",
"Gottscheerish": "gmw-gts",
"Gowro": "gwf",
"Grangali": "nli",
"Grass Koiari": "kbk",
"Grassfields Purba": "nic-grf-pro",
"Greek": "el",
"Greenland": "kl",
"Gros Ventre": "ats",
"Gua": "gwx",
"Guachí": "sai-gua",
"Guajá": "gvj",
"Guamo": "sai-gmo",
"Guang Purba": "alv-gng-pro",
"Guarani Klasik": "gn-cls",
"Guarayu": "gyr",
"Guazacapán": "nai-guz",
"Gudang": "xgd",
"Gudanji": "nji",
"Guevea de Humboldt Zapotec": "zpg",
"Gugu Warra": "wrw",
"Guiberoua Bété": "bet",
"Guinau": "awd-gnu",
"Guinea-Bissau Sign Language": "lgs",
"Gujarati Kuno": "inc-ogu",
"Gujarati Pertengahan": "inc-mgu",
"Gujerat": "gu",
"Gulay": "gvl",
"Gumawana": "gvs",
"Gundungurra": "xrd",
"Gungabula": "gyf",
"Gungu": "rub",
"Gunu": "yas",
"Gunya": "gyy",
"Gur Lama": "las",
"Gur Purba": "nic-gur-pro",
"Gurani": "hac",
"Gurmana": "gvm",
"Gurung": "gvr",
"Gurunsi Purba": "nic-gns-pro",
"Gutnish": "gmq-gut",
"Gutnish Kuno": "gmq-ogt",
"Guugu Yimidhirr": "kky",
"Guwa": "xgw",
"Guwamu": "gwu",
"Guwar": "aus-guw",
"Guyani": "gvy",
"Gvoko": "ngs",
"Gwa": "gwb",
"Gwahatike": "dah",
"Gwak": "jgk",
"Gwamhi-Wuri": "bga",
"Gwandara": "gwn",
"Gwara": "alv-gwa",
"Gweno": "gwe",
"Gwere": "gwr",
"Gwich'in": "gwi",
"Gyalsumdo": "gyo",
"Gyele": "gyi",
"Gyem": "gye",
"Güenoa": "sai-gue",
"Habu": "hbu",
"Hachijō": "jpx-hcj",
"Hadiyya": "hdy",
"Hadothi": "hoj",
"Hadrami": "xhd",
"Hadza": "hts",
"Haeke": "aek",
"Hahon": "hah",
"Haida": "hai",
"Haida Selatan": "hax",
"Haida Utara": "hdn",
"Haigwai": "hgw",
"Hainyaxo Bozo": "bzx",
"Haisla": "has",
"Haitian Vodoun Culture Language": "hvc",
"Haiǁom": "hgm",
"Haji": "hji",
"Hajong": "haj",
"Hakka": "hak",
"Hakö": "hao",
"Halang": "hal",
"Halang Doan": "hld",
"Halbi": "hlb",
"Halia": "hla",
"Halkomelem": "hur",
"Halmahera Utara Purba": "paa-nha-pro",
"Halmahera-Cenderawasih Purba": "poz-hce-pro",
"Hamap": "hmu",
"Hamba": "hba",
"Hamer-Banna": "amf",
"Hamtai": "hmt",
"Hanga": "hag",
"Hanga Hundi": "wos",
"Hani": "hni",
"Hanunoo": "hnn",
"Harami": "xha",
"Harari": "har",
"Haraza": "nub-har",
"Harijan Kinnauri": "kjo",
"Haroi": "hro",
"Harsusi": "hss",
"Haruai": "tmd",
"Haruku": "hrk",
"Haryanvi": "bgc",
"Harzani": "hrz",
"Hasait": "sem-has",
"Hasha": "ybj",
"Hatam": "had",
"Hatti": "xht",
"Hausa": "ha",
"Haush": "sai-hau",
"Havasupai-Walapai-Yavapai": "yuf",
"Haveke": "hvk",
"Havu": "hav",
"Hawai'i Pidgin Sign Language": "hps",
"Hawaii": "haw",
"Haya": "hay",
"Hdi": "xed",
"Hehe": "heh",
"Heiban": "hbn",
"Heiban Purba": "alv-hei-pro",
"Heiltsuk": "hei",
"Hellenik Purba": "grk-pro",
"Helong": "heg",
"Hema": "nix",
"Hemba": "hem",
"Hember Avu": "mmi",
"Herdé": "hed",
"Herero": "hz",
"Hermit": "llf",
"Hernican": "xhr",
"Het": "hit",
"Hewa": "ham",
"Heyo": "auk",
"Hibito": "hib",
"Hidatsa": "hid",
"Higaonon": "mba",
"Highland Konjo": "kjk",
"Highland Oaxaca Chontal": "chd",
"Highland Popoluca": "poi",
"Highland Totonac": "tos",
"Hijuk": "hij",
"Hiligaynon": "hil",
"Himarimã": "hir",
"Hindi": "hi",
"Hindi Dogri": "dgo",
"Hindi Fiji": "hif",
"Hindi Kreol Andaman": "hca",
"Hindi Kuno": "inc-ohi",
"Hindko Selatan": "hnd",
"Hindko Utara": "hno",
"Hinduri": "hii",
"Hindustan Caribbean": "hns",
"Hiri Motu": "ho",
"Hisma": "sem-his",
"Hitchiti": "nai-hit",
"Hitu": "htu",
"Hiw": "hiw",
"Hixkaryana": "hix",
"Hlai": "lic",
"Hlai Purba": "qfa-lic-pro",
"Hlepho Phowa": "yhl",
"Hlersu": "hle",
"Hmar": "hmr",
"Hmong Don": "hmf",
"Hmong Dô": "hmv",
"Hmong Guiyang Barat Daya": "hmg",
"Hmong Guiyang Selatan": "hmy",
"Hmong Guiyang Utara": "huj",
"Hmong Hijau": "hnj",
"Hmong Huishui Barat Daya": "hmh",
"Hmong Huishui Tengah": "hmc",
"Hmong Huishui Timur": "hme",
"Hmong Huishui Utara": "hmi",
"Hmong Luopohe": "hml",
"Hmong Mashan Barat": "hmw",
"Hmong Mashan Selatan": "hma",
"Hmong Mashan Tengah": "hmm",
"Hmong Mashan Utara": "hmp",
"Hmong Putih": "mww",
"Hmong Shua": "hmz",
"Hmong-Mien Purba": "hmx-pro",
"Hmongik Purba": "hmn-pro",
"Hmwaveke": "mrk",
"Ho": "hoc",
"Ho Chi Minh City Sign Language": "hos",
"Hoava": "hoa",
"Hobyót": "hoh",
"Hoia Hoia": "hhi",
"Hokkien": "nan-hbl",
"Hokkien Peranakan Kelantan": "mis-hkl",
"Holikachuk": "hoi",
"Holiya": "hoy",
"Holma": "hod",
"Holoholo": "hoo",
"Holu": "hol",
"Homa": "hom",
"Hone": "juh",
"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",
"Hrusish Purba": "sit-hrs-pro",
"Hruso": "hru",
"Hrê": "hre",
"Hu": "huo",
"Huachipaeri": "hug",
"Huambisa": "hub",
"Huaorani": "auc",
"Huarijio": "var",
"Huaulu": "hud",
"Huave": "huv",
"Huba": "hbb",
"Huetar": "cba-hue",
"Huichol": "hch",
"Huilliche": "huh",
"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",
"Hungary": "hu",
"Hungary Kuno": "ohu",
"Hungworo": "nat",
"Hunjara-Kaina Ke": "hkk",
"Hunsrik": "hrx",
"Hunzib": "huz",
"Hupa": "hup",
"Hupdë": "jup",
"Hupla": "hap",
"Hurri": "xhu",
"Hurro-Urartia Purba": "qfa-hur-pro",
"Hwana": "hwo",
"Hya": "hya",
"Hyam": "jab",
"Hän": "haa",
"Hértevin": "hrt",
"I-Wak": "iwk",
"Iaai": "iai",
"Iamalele": "yml",
"Iatmul": "ian",
"Iau": "tmu",
"Ibali Teke": "tek",
"Ibaloi": "ibl",
"Iban": "iba",
"Ibanag": "ibg",
"Ibani": "iby",
"Ibatan": "ivb",
"Iberia": "xib",
"Ibibio": "ibb",
"Ibino": "ibn",
"Iboko": "bkp",
"Ibrani": "he",
"Ibrani Samaria": "smp",
"Ibu": "ibu",
"Ibuoro": "ibr",
"Iceland": "is",
"Iceve-Maci": "bec",
"Idahan": "dbj",
"Idakho-Isukha-Tiriki": "ida",
"Idaté": "idt",
"Idere": "ide",
"Idesa": "ids",
"Idi": "idi",
"Idiom Neutral": "mis-idn",
"Ido": "io",
"Idoma": "idu",
"Idomoid Purba": "alv-ido-pro",
"Idon": "idc",
"Idu": "clk",
"Idun": "ldb",
"Iduna": "viv",
"Ifo": "iff",
"Ifè": "ife",
"Igala": "igl",
"Igana": "igg",
"Igbo": "ig",
"Igboid Purba": "alv-igb-pro",
"Igede": "ige",
"Ignaciano": "ign",
"Igo": "ahl",
"Iguta": "nar",
"Igwe": "igw",
"Iha": "ihp",
"Ihievbe": "ihi",
"Ija-Zuba": "vki",
"Ijoid Purba": "ijo-pro",
"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",
"Illyria": "xil",
"Ilocano": "ilo",
"Ilongot": "ilk",
"Ilue": "ilv",
"Ilwana": "mlk",
"Imbongu": "imo",
"Imonda": "imn",
"Imroing": "imr",
"Inabaknon": "abx",
"Inapang": "mzu",
"Indanga": "bnt-ind",
"Indo-Arya Purba": "inc-pro",
"Indo-Eropah Purba": "ine-pro",
"Indo-Iran Purba": "iir-pro",
"Indo-Portugis": "idb",
"Indonesia": "id",
"Indri": "idr",
"Ineseño": "inz",
"Inga": "inb",
"Inggeris": "en",
"Inggeris Kreol Islander": "icr",
"Inggeris Kreol Tobago": "tgh",
"Inggeris Kreol Trinidad": "trf",
"Inggeris Kreol Turks dan Caicos": "tch",
"Inggeris Kreol Vincent": "svc",
"Inggeris Kuno": "ang",
"Inggeris Pertengahan": "enm",
"Inggeris Pijin Cina": "cpi",
"Inggeris Solombala": "crp-slb",
"Ingria": "izh",
"Ingush": "inh",
"Inlaod Itneg": "iti",
"Inoke-Yate": "ino",
"Inonhan": "loc",
"Inor": "ior",
"Interlingua": "ia",
"Interlingue": "ie",
"International Sign": "ils",
"Interslavic": "isv",
"Intha": "int",
"Inuinnaqtun": "esx-inq",
"Inuit Purba": "esx-inu-pro",
"Inuktitut": "iu",
"Inuktun": "esx-ink",
"Inupiaq": "ik",
"Inuvialuktun": "ikt",
"Ipai": "nai-ipa",
"Ipiko": "ipo",
"Ipili": "ipi",
"Ipulo": "ass",
"Iquito": "iqu",
"Ir": "irr",
"Iran Purba": "ira-pro",
"Irantxe": "irn",
"Iranun": "ill",
"Iraqw": "irk",
"Irarutu": "irh",
"Iraya": "iry",
"Ireland": "ga",
"Ireland Kuno": "sga",
"Ireland Pertengahan": "mga",
"Iresim": "ire",
"Iroquois Purba": "iro-pro",
"Iroquois Utara Purba": "iro-nor-pro",
"Irula": "iru",
"Isabi": "isa",
"Isan": "tts",
"Isanzu": "isn",
"Isauria": "mis-isa",
"Isconahua": "isc",
"Isebe": "igo",
"Ishkashimi": "isk",
"Isinai": "inn",
"Isirawa": "srl",
"Isnag": "isd",
"Isoko": "iso",
"Istriot": "ist",
"Istro-Romania": "ruo",
"Isu": "isu",
"Isubu": "szv",
"Isyarat Kenya": "xki",
"Isyarat Maghribi": "xms",
"Isyarat Malaysia": "xml",
"Itali": "it",
"Italik Purba": "itc-pro",
"Itawit": "itv",
"Itelmen": "itl",
"Itene": "ite",
"Iteri": "itr",
"Itik": "itx",
"Ito": "itw",
"Itonama": "ito",
"Itsekiri": "its",
"Itu Mbon Uzo": "itm",
"Itzá": "itz",
"Iu Mien": "ium",
"Ivatan": "ivv",
"Iwaidja": "ibd",
"Iwaidjan Purba": "aus-wdj-pro",
"Iwal": "kbm",
"Iwam": "iwm",
"Iwur": "iwo",
"Ixcatec": "ixc",
"Ixil": "ixl",
"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",
"Jakaltek": "jac",
"Jakati": "jat",
"Jakun": "jak",
"Jalkunan": "bxl",
"Jamamadí": "jaa",
"Jaminjung": "djd",
"Jamsay": "djm",
"Jamtish": "gmq-jmk",
"Jandavra": "jnd",
"Janday": "jan",
"Jangkang": "djo",
"Jangshung": "jna",
"Janji": "jni",
"Japhug": "sit-jap",
"Japrería": "jru",
"Jaqaru": "jqr",
"Jara": "jaf",
"Jarai": "jra",
"Jarawa": "anq",
"Jaru": "ddj",
"Jassic": "ysc",
"Jaunsari": "jns",
"Javindo": "jvd",
"Jawa": "jv",
"Jawa Caribbean": "jvn",
"Jawa Kuno": "kaw",
"Jawa Ontong": "ojv",
"Jawe": "jaz",
"Jaya": "jyy",
"Jebel Timur Purba": "sdv-eje-pro",
"Jebero": "jeb",
"Jeh": "jeh",
"Jehai": "jhi",
"Jeikó": "sai-jko",
"Jeju": "jje",
"Jemez": "tow",
"Jenaama Bozo": "bze",
"Jeng": "jeg",
"Jennu Kurumba": "xuj",
"Jepun": "ja",
"Jepun Kuno": "ojp",
"Jepunik Purba": "jpx-pro",
"Jere": "jer",
"Jeri Kuo": "jek",
"Jerman": "de",
"Jerman Pennsylvania": "pdc",
"Jerman Rendah": "nds",
"Jerman Tengah Timur": "gmw-ecg",
"Jerman Volga": "gmw-vog",
"Jerman Zipser": "gmw-zps",
"Jermanik Barat Purba": "gmw-pro",
"Jermanik Purba": "gem-pro",
"Jeru": "akj",
"Jerung": "jee",
"Jiamao": "jio",
"Jiba": "juo",
"Jibu": "jib",
"Jicaque Barat": "nai-wji",
"Jicarilla": "apj",
"Jie": "mis-jie",
"Jiiddu": "jii",
"Jilbe": "jie",
"Jili": "mgi",
"Jilim": "jil",
"Jimi": "jmi",
"Jimjimen": "jim",
"Jin": "cjy",
"Jina": "jia",
"Jingpho": "kac",
"Jingulu": "jig",
"Jiongnai Bunu": "pnu",
"Jirajara": "sai-jrj",
"Jirel": "jul",
"Jiru": "jrr",
"Jita": "jit",
"Jizhao": "mis-jzh",
"Jju": "kaj",
"Joba": "job",
"Jofotek-Bromnya": "jbr",
"Jola-Fonyi": "dyo",
"Jola-Kasa": "csk",
"Jonkor Bourmataguil": "jeu",
"Jorá": "jor",
"Jowulu": "jow",
"Ju": "juu",
"Juang": "jun",
"Judeo-Itali": "itk",
"Judeo-Persian": "jpr",
"Judeo-Tat": "jdt",
"Jukun Takum": "jbu",
"Jukunoid Purba": "nic-jkn-pro",
"Jumaytepeque": "nai-jum",
"Jumjum": "jum",
"Jumli": "jml",
"Jungle Inga": "inj",
"Jur Modo": "bex",
"Juray": "juy",
"Jurchen": "juc",
"Jurúna": "jur",
"Jutiapa": "nai-jtp",
"Jutish": "jut",
"Juwal": "mwb",
"Juǀ'hoan": "ktz",
"Jwira-Pepesa": "jwi",
"Jê Purba": "sai-jee-pro",
"Jê Selatan Purba": "sai-sje-pro",
"Jê Tengah Purba": "sai-cje-pro",
"Jê Utara Purba": "sai-nje-pro",
"Júma": "jua",
"K'iche'": "quc",
"Kaamba": "xku",
"Kaan": "ldl",
"Kaapor Sign Language": "uks",
"Kaba": "ksp",
"Kabalai": "kvf",
"Kabardia": "kbd",
"Kabatei": "xkp",
"Kabba-Laka": "lap",
"Kabishiana": "tup-kab",
"Kabiyé": "kbp",
"Kabola": "klz",
"Kabore One": "onk",
"Kabras": "lkb",
"Kaburi": "uka",
"Kabutra": "kbu",
"Kabuverdianu": "kea",
"Kabwa": "cwa",
"Kabwari": "kcw",
"Kabyle": "kab",
"Kachama-Ganjule": "kcx",
"Kachari": "xac",
"Kachchi": "kfr",
"Kacipo-Balesi": "koe",
"Kaco'": "xkk",
"Kadai": "kzd",
"Kadar": "kej",
"Kadara": "kad",
"Kadaru": "kdu",
"Kadazan": "kzj",
"Kadazan Labuk-Kinabatangan": "dtb",
"Kadazan Sungai Klias": "kqt",
"Kadazandusun": "dtp",
"Kadiwéu": "kbc",
"Kado": "kdv",
"Kadu Purba": "qfa-kad-pro",
"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",
"Kaingáng São Paulo": "zkp",
"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",
"Kalagan": "kqe",
"Kalagan Kagan": "kll",
"Kalagan Tagakaulu": "klg",
"Kalam": "kmh",
"Kalami": "gwc",
"Kalamian Purba": "phi-kal-pro",
"Kalamsé": "knz",
"Kalanadi": "wkl",
"Kalanga": "kck",
"Kalao": "kly",
"Kalapuya": "kyl",
"Kalapuya Purba": "nai-klp-pro",
"Kalapuya Selatan": "sxk",
"Kalapuya Utara": "nrt",
"Kalarko": "kba",
"Kalasha": "kls",
"Kalasuri": "xme-kls",
"Kalašma": "ine-kal",
"Kalenjin": "kln",
"Kalinago": "crb",
"Kalinga Butbut": "kyb",
"Kalinga Lembah Mabaka": "kkg",
"Kalinga Limos": "kmk",
"Kalinga Lubuagan": "knb",
"Kalinga Madukayang": "kmd",
"Kalinga Selatan": "ksc",
"Kalinga Tanudan": "kml",
"Kalkatungu": "ktg",
"Kalkoti": "xka",
"Kalmyk": "xal",
"Kalou": "ywa",
"Kaluli": "bco",
"Kalumpang": "kli",
"Kam": "kdx",
"Kam Selatan": "kmc",
"Kam Utara": "doc",
"Kam-Sui Purba": "qfa-kms-pro",
"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",
"Kambera": "xbr",
"Kamberataro": "kbv",
"Kamberau": "irx",
"Kambiwá": "xbw",
"Kami": "kmi",
"Kamkata-viri": "bsh",
"Kamo": "kcq",
"Kamoro": "kgq",
"Kampa Purba": "awd-kmp-pro",
"Kamta": "rkt",
"Kamta Purba": "inc-krd-pro",
"Kamu": "xmu",
"Kamula": "xla",
"Kamwe": "hig",
"Kanakanabu": "xnb",
"Kanakuru": "kna",
"Kanamari": "knm",
"Kanashi": "xns",
"Kanasi": "soq",
"Kandas": "kqw",
"Kande": "kbs",
"Kang": "kyp",
"Kanga": "kcp",
"Kangean": "kkv",
"Kanggape": "igm",
"Kangjia": "kxs",
"Kango": "kty",
"Kango-Sua": "kzy",
"Kangri": "xnr",
"Kaniet": "ktk",
"Kanikkaran": "kev",
"Kaningdon-Nindem": "kdp",
"Kaningi": "kzo",
"Kaningra": "knr",
"Kaninuwa": "wat",
"Kanite": "kmu",
"Kanjari": "kft",
"Kanju": "kbe",
"Kankanaey": "kne",
"Kankanay Utara": "xnn",
"Kannada": "kn",
"Kannada Kuno": "dra-okn",
"Kannada Kurumba": "kfi",
"Kannada Pertengahan": "dra-mkn",
"Kannauji": "bjj",
"Kanowit": "kxn",
"Kanoé": "kxo",
"Kansa": "ksk",
"Kantonis": "yue",
"Kantosi": "xkt",
"Kanu": "khx",
"Kanufi": "kni",
"Kanuri": "kr",
"Kanyok": "kny",
"Kao": "kax",
"Kaonde": "kqn",
"Kap": "ykm",
"Kapampangan": "pam",
"Kapauri": "khp",
"Kapin": "tbx",
"Kapinawá": "xpn",
"Kapingamarangi": "kpg",
"Kapriman": "dju",
"Kaptiau": "kbi",
"Kapya": "klo",
"Kaqchikel": "cak",
"Kara (New Guinea)": "leu",
"Kara (Tanzania)": "reg",
"Karaboro Barat": "kza",
"Karaboro Timur": "xrb",
"Karachay-Balkar": "krc",
"Karaim": "kdr",
"Karajá": "kpj",
"Karakalpak": "kaa",
"Karakhanid": "xqa",
"Karami": "xar",
"Karamojong": "kdj",
"Karang": "kzr",
"Karanga": "kth",
"Karankawa": "zkk",
"Karao": "kyj",
"Karas": "kgv",
"Karata": "kpt",
"Karawa": "xrw",
"Karbi": "mjw",
"Karbi Amri": "ajz",
"Kare (Africa)": "kbn",
"Kare (New Guinea)": "kmf",
"Karekare": "kai",
"Karelia": "krl",
"Karen Brek": "kvl",
"Karen Bwe": "bwe",
"Karen Geba": "kvq",
"Karen Lahta": "kvt",
"Karen Manumanaw": "kxf",
"Karen Pa'o": "blk",
"Karen Paku": "kpp",
"Karen Purba": "kar-pro",
"Karen S'gaw": "ksw",
"Karen Yinbaw": "kvu",
"Karen Yintale": "kvy",
"Karen Zayein": "kxk",
"Karey": "kyd",
"Kari": "kbj",
"Kari'na": "car",
"Karingani": "kgn",
"Karipuna": "kuq",
"Karipúna": "kgm",
"Kariri": "kzw",
"Karitiâna": "ktn",
"Kariya": "kil",
"Kariyarra": "vka",
"Karkar-Yuri": "yuj",
"Karkin": "krb",
"Karko": "kko",
"Karnai": "bbv",
"Karo": "kxh",
"Karok": "kyh",
"Karolanos": "kyn",
"Karon": "krx",
"Karon Dori": "kgw",
"Karore": "xkx",
"Karranga": "xrq",
"Kartvelia Purba": "ccs-pro",
"Karuwali": "rxw",
"Kasanga": "ccj",
"Kasem": "xsm",
"Kashaya": "kju",
"Kashmir": "ks",
"Kashubian": "csb",
"Kasiguranin": "ksn",
"Kaska": "kkz",
"Kaskean": "zsk",
"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",
"Katu Barat": "kuf",
"Katu Timur": "ktv",
"Katua": "kta",
"Katuik Purba": "mkh-kat-pro",
"Katukina": "knt",
"Kaukasia Barat Laut Purba": "cau-nwc-pro",
"Kaukasia Timur Laut Purba": "cau-nec-pro",
"Kaulong": "pss",
"Kaur": "vkk",
"Kaure": "bpp",
"Kaurna": "zku",
"Kauwera": "xau",
"Kavalan": "ckv",
"Kavet": "krv",
"Kawacha": "kcb",
"Kawahiva": "tup-kaw",
"Kawaiisu": "xaw",
"Kawe": "kgb",
"Kawishana": "awd-kaw",
"Kawésqar": "alc",
"Kaxararí": "ktx",
"Kaxuyana": "kbb",
"Kaya": "zra",
"Kayabí": "kyz",
"Kayagar": "kyt",
"Kayah Barat": "kyu",
"Kayah Timur": "eky",
"Kayan": "pdu",
"Kayan Baram": "kys",
"Kayan Mahakam": "xay",
"Kayan Mendalam": "xkd",
"Kayan Rejang": "ree",
"Kayan Sungai Kayan": "xkn",
"Kayan Wahau": "whu",
"Kayapa Kallahan": "kak",
"Kayapó": "txu",
"Kayardild": "gyd",
"Kayeli": "kzl",
"Kayong": "kxy",
"Kayort": "kyv",
"Kayupulau": "kzu",
"Kazakh": "kk",
"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",
"Keley-I Kallahan": "ify",
"Keliko": "kbo",
"Kelo": "xel",
"Kelon": "kyo",
"Keltik Purba": "cel-pro",
"Kemak": "kem",
"Kembayan": "xem",
"Kemberano": "bzp",
"Kembra": "xkw",
"Kemezung": "dmo",
"Kemiehua": "kfj",
"Kemtuik": "kmt",
"Kenaboi": "xbn",
"Kendeje": "klf",
"Kendem": "kvm",
"Kenga": "kyq",
"Keninjal": "knl",
"Kensiu": "kns",
"Kenswei Nsei": "ndb",
"Kenyah Wahau": "whk",
"Kenyang": "ken",
"Kenyi": "lke",
"Keoru-Ahia": "xeu",
"Kepkiriwát": "kpn",
"Kepo'": "kuk",
"Kera": "ker",
"Kerak": "hhr",
"Kereho": "xke",
"Kerek": "krk",
"Keres Barat": "kjq",
"Keres Timur": "kee",
"Kerewe": "ked",
"Kerewo": "kxz",
"Kerinci": "kvr",
"Kermanik": "xme-ker",
"Kesawai": "xes",
"Ket": "ket",
"Ketangalan": "kae",
"Kete": "kcv",
"Ketengban": "xte",
"Ketum": "ktt",
"Kewa": "kew",
"Kewa Timur": "kjs",
"Keyagana": "kyg",
"Kgalagadi": "xkv",
"Khakas": "kjh",
"Khalaj": "klj",
"Khaling": "klr",
"Kham": "kjl",
"Kham Parbate Timur": "kif",
"Kham Purba": "sit-kha-pro",
"Khamti": "kht",
"Khamyang": "ksu",
"Khana": "ogo",
"Khandeshi": "khn",
"Khanty Purba": "kca-pro",
"Khanty Selatan": "kca-sou",
"Khanty Timur": "kca-eas",
"Khanty Utara": "kca-nor",
"Khao": "xao",
"Kharam Naga": "kfw",
"Kharia": "khr",
"Kharia Thar": "ksy",
"Khasi": "kha",
"Khasi Purba": "aav-khs-pro",
"Khayo": "lko",
"Khazar": "zkz",
"Khe": "kqg",
"Khehek": "tlx",
"Khengkha": "xkf",
"Khetrani": "xhe",
"Khinalug": "kjj",
"Khirwar": "kwx",
"Khisa": "kqm",
"Khitan": "zkt",
"Khlor": "llo",
"Khlula": "ykl",
"Khmer": "km",
"Khmer Kuno": "okz",
"Khmer Pertengahan": "xhm",
"Khmer Purba": "mkh-kmr-pro",
"Khmer Utara": "kxm",
"Khmu": "kjg",
"Khmuik Purba": "mkh-khm-pro",
"Kho-Bwa Barat Purba": "sit-khw-pro",
"Kho-Bwa Purba": "sit-khb-pro",
"Khoe Purba": "khi-kho-pro",
"Khoekhoe": "naq",
"Khoini": "xkc",
"Kholok": "ktc",
"Kholosi": "inc-kho",
"Khonso": "kxc",
"Khorezmian Turkic": "zkh",
"Khortha": "inc-khr",
"Khotan": "kho",
"Khowar": "khw",
"Khroskyabs": "jiq",
"Khua": "xhv",
"Khuen": "khf",
"Khvarshi": "khv",
"Khwarezm": "xco",
"Khwe": "xuu",
"Kháng": "kjm",
"Khün": "kkh",
"Kibala": "blv",
"Kibena": "bez",
"Kibet": "kie",
"Kibiri": "prm",
"Kichwa": "qwe-kch",
"Kickapoo": "kic",
"Kikai": "kzg",
"Kikami": "kcu",
"Kikuyu": "ki",
"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",
"Kinnauri": "kfk",
"Kinnauri Bhoti": "nes",
"Kintaq": "knq",
"Kinuku": "kkd",
"Kioko": "ues",
"Kiong": "kkm",
"Kiorr": "xko",
"Kiowa": "kio",
"Kipchak": "qwm",
"Kipfokomo": "pkb",
"Kipsigis": "sgc",
"Kiput": "kyi",
"Kir-Balar": "kkr",
"Kirfi": "kks",
"Kirike": "okr",
"Kirikiri": "kiy",
"Kirya-Konzel": "fkk",
"Kis": "kis",
"Kisa": "lks",
"Kisan": "xis",
"Kisankasa": "kqh",
"Kisar": "kje",
"Kisi": "kiz",
"Kissi Selatan": "kss",
"Kissi Utara": "kqs",
"Kitanemuk": "azc-ktn",
"Kitembo": "tbt",
"Kitsai": "kii",
"Kituba": "ktu",
"Kiunum": "wei",
"Kiwai Selatan": "kjd",
"Kiwai Timur Laut": "kiw",
"Kla": "lda",
"Klallam": "clm",
"Klamath-Modoc": "kla",
"Klao": "klu",
"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 Indus": "mvy",
"Kohistani Shina": "plk",
"Koho": "kpm",
"Kohumono": "bcs",
"Koi": "kkt",
"Koiari Gunung": "kpx",
"Koibal": "zkb",
"Koireng": "nkd",
"Koitabu": "kqi",
"Koiwat": "kxt",
"Kok-Paponk": "okg",
"Kokata": "ktd",
"Kokborok": "trp",
"Koke": "kou",
"Koko-Bera": "kkp",
"Kokoda": "xod",
"Kokola": "kzn",
"Kokota": "kkk",
"Kol (Cameroon)": "biw",
"Kol (New Guinea)": "kol",
"Kola": "kvv",
"Kolami": "kfb",
"Kolami Tenggara": "nit",
"Kolbila": "klc",
"Kolhe": "ekl",
"Kolibugan Subanon": "skn",
"Kolom": "klm",
"Koluwawa": "klx",
"Kom (Cameroon)": "bkm",
"Kom (India)": "kmm",
"Koma": "kmy",
"Koma Purba": "ssa-kom-pro",
"Komba": "kpf",
"Kombai": "tyn",
"Kombio": "xbi",
"Komering": "kge",
"Komi Kuno": "urj-koo",
"Komi-Permyak": "koi",
"Komi-Yazva": "urj-kya",
"Komi-Zyrian": "kpv",
"Kominimung": "xoi",
"Komisenia Purba": "ira-kms-pro",
"Komo": "xom",
"Komodo": "kvh",
"Kompane": "kvp",
"Komyandaret": "kzv",
"Kon Keu": "kkn",
"Konabéré": "bbo",
"Konai": "kxw",
"Konda": "knd",
"Konda-Dora": "kfc",
"Koneraw": "kdw",
"Kongo": "kg",
"Konjo Pesisir": "kjc",
"Konkani": "kok",
"Konkomba": "xon",
"Konni": "kma",
"Kono (Guinea)": "knu",
"Kono (Nigeria)": "klk",
"Kono (Sierra Leone)": "kno",
"Konomala": "koa",
"Konomihu": "nai-knm",
"Konongo": "kcz",
"Konzo": "koo",
"Koonzime": "ozm",
"Koorete": "kqy",
"Kopar": "xop",
"Kopkaka": "opk",
"Korafe-Yegha": "kpr",
"Korak": "koz",
"Korana": "kqz",
"Korandje": "kcy",
"Korea": "ko",
"Korea Kuno": "oko",
"Korea Moden Awal": "ko-ear",
"Korea Pertengahan": "okm",
"Korea Purba": "qfa-kor-pro",
"Koreguaje": "coe",
"Koresh-e Rostam": "okh",
"Korku": "kfq",
"Koro (Afrika Barat)": "kfo",
"Koro (India)": "jkr",
"Koro (New Guinea)": "kxr",
"Koro (Vanuatu)": "krf",
"Koromfé": "kfz",
"Koromira": "kqj",
"Koronadal Blaan": "bpr",
"Koroni": "xkq",
"Korop": "krp",
"Koropó": "xxr",
"Koroshi": "ktl",
"Korowai": "khe",
"Korra Koraga": "kfd",
"Korubo": "xor",
"Korupun-Sela": "kpq",
"Korwa": "kfp",
"Koryak": "kpy",
"Kosadle": "kiq",
"Kosarek Yale": "kkl",
"Kosena": "kze",
"Koshin": "kid",
"Kosrae": "kos",
"Kota (Gabon)": "koq",
"Kota (India)": "kfe",
"Kotava": "avk",
"Koti": "eko",
"Kott": "zko",
"Kou": "snz",
"Kouya": "kyf",
"Kovai": "kqb",
"Kove": "kvc",
"Kowaki": "xow",
"Kowiai": "kwh",
"Koy Sanjaq Surat": "kqd",
"Koya": "kff",
"Koyaga": "kga",
"Koyo": "koh",
"Koyra Chiini": "khq",
"Koyraboro Senni": "ses",
"Koyukon": "koy",
"Kpagua": "kuw",
"Kpala": "kpl",
"Kpan": "kpk",
"Kpasam": "pbn",
"Kpati": "koc",
"Kpatili": "kym",
"Kpee": "cpo",
"Kpelle": "kpe",
"Kpessi": "kef",
"Kplang": "kph",
"Kra Purba": "qfa-kra-pro",
"Kra-Dai Purba": "qfa-tak-pro",
"Krache": "kye",
"Krahn Barat": "krw",
"Krahn Timur": "kqo",
"Krahô": "xra",
"Kraol": "rka",
"Krenak": "kqq",
"Kreol Afro-Seminole": "afs",
"Kreol Bahamas": "bah",
"Kreol Belize": "bzj",
"Kreol Belter": "art-bel",
"Kreol Guinea-Bissau": "pov",
"Kreol Haiti": "ht",
"Kreol Hawaii": "hwc",
"Kreol Inggeris Antigua dan Barbuda": "aig",
"Kreol Inggeris Guyana": "gyn",
"Kreol Jamaica": "jam",
"Kreol Kepulauan Virgin": "vic",
"Kreol Lelaki Ngatik": "ngm",
"Kreol Louisiana": "lou",
"Kreol Mauritius": "mfe",
"Kreol Nicaragua": "bzk",
"Kreol Selat Torres": "tcs",
"Kreol Seychelles": "crs",
"Kreol Yilan": "ycr",
"Kresh": "krs",
"Krevinian": "zkv",
"Kreye": "xre",
"Krikati-Timbira": "xri",
"Krim": "krm",
"Krio": "kri",
"Kriol": "rop",
"Krisa": "ksi",
"Kristang": "mcm",
"Krobu": "kxb",
"Krongo": "kgo",
"Kru Purba": "kro-pro",
"Kru'ng": "krr",
"Krymchak": "jct",
"Kryts": "kry",
"Kua": "tyu",
"Kua-nsi": "ykn",
"Kuamasi": "yku",
"Kuan": "uan",
"Kuanhua": "xnh",
"Kube": "kgf",
"Kubi": "kof",
"Kubo": "jko",
"Kubu": "kvb",
"Kucong": "lkc",
"Kudiya": "kfg",
"Kudmali": "kyw",
"Kudu-Camo": "kov",
"Kugama": "kow",
"Kugbo": "kes",
"Kugu-Muminh": "xmh",
"Kui (India)": "kxu",
"Kui (Indonesia)": "kvd",
"Kuijau": "dkr",
"Kuikúro": "kui",
"Kujarge": "vkj",
"Kuk": "kfn",
"Kukatja": "kux",
"Kukele": "kez",
"Kuki-Chin Purba": "tbq-kuk-pro",
"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",
"Kulango Bouna": "nku",
"Kulere": "kul",
"Kulfa": "kxj",
"Kuliak Purba": "ssa-klk-pro",
"Kulina": "xpk",
"Kulisusu": "vkl",
"Kullu Pahari": "kfx",
"Kulon": "uon",
"Kulon-Pazeh": "uun",
"Kulung": "kle",
"Kumak": "nee",
"Kumalu": "ksl",
"Kumam": "kdi",
"Kuman": "kue",
"Kumaoni": "kfy",
"Kumarbhag Paharia": "kmj",
"Kumba": "ksm",
"Kumbainggar": "kgs",
"Kumbaran": "wkb",
"Kumbewaha": "xks",
"Kumeyaay": "nai-kum",
"Kumhali": "kra",
"Kumu": "kmw",
"Kumukio": "kuo",
"Kumyk": "kum",
"Kumzari": "zum",
"Kuna": "cuk",
"Kuna Sempadan": "kvn",
"Kunama": "kun",
"Kunbarlang": "wlg",
"Kunda": "kdn",
"Kundal Shahi": "shd",
"Kunduvadi": "wku",
"Kung": "kfl",
"Kunggari": "kgl",
"Kungkari": "lku",
"Kuni": "kse",
"Kuni-Boazi": "kvg",
"Kunigami": "xug",
"Kunimaipa": "kup",
"Kunja": "pep",
"Kunjen": "kjn",
"Kunyi": "njx",
"Kunza": "kuz",
"Kuo": "xuo",
"Kuot": "kto",
"Kupa": "kug",
"Kupia": "key",
"Kupsabiny": "kpz",
"Kur": "kuv",
"Kura Ede Nago": "nqk",
"Kurama": "krh",
"Kuranko": "knk",
"Kurdi Purba": "ku-pro",
"Kurdi Selatan": "sdh",
"Kurdi Tengah": "ckb",
"Kurdi Utara": "kmr",
"Kuri": "nbn",
"Kuria": "kuj",
"Kurichiya": "kfh",
"Kurmukar": "kfv",
"Kurnai": "unn",
"Kurrama": "vku",
"Kursav": "faj",
"Kurti": "ktm",
"Kurtöp": "xkz",
"Kurudu": "kjr",
"Kurukh": "kru",
"Kurumba Alu": "xua",
"Kurumba Betta": "xub",
"Kuruáya": "kyr",
"Kusaal": "kus",
"Kusaghe": "ksg",
"Kushi": "kuh",
"Kustenau": "awd-kus",
"Kusu": "ksv",
"Kusunda": "kgg",
"Kutenai": "kut",
"Kutep": "kub",
"Kuthant": "xut",
"Kutto": "kpa",
"Kutu": "kdc",
"Kuturmi": "khj",
"Kuuk Thaayorre": "thd",
"Kuuk Yak": "uky",
"Kuuku-Ya'u": "kuy",
"Kuvale": "olu",
"Kuvi": "kxv",
"Kuwaa": "blh",
"Kuwaataay": "cwt",
"Kuwani": "paa-kwn",
"Kuy": "kdt",
"Kven": "fkv",
"Kw'adza": "wka",
"Kwa Purba": "alv-kwa-pro",
"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",
"Kyenele": "kql",
"Kyenga": "tye",
"Kyerung": "kgy",
"Kyrgyz": "ky",
"Kâte": "kmg",
"Kélé": "keb",
"Kómnzo": "paa-kmn",
"La'bi": "lbi",
"Laalaa": "cae",
"Laba": "lau",
"Label": "lbb",
"Labir": "jku",
"Labo": "mwi",
"Labo Phowa": "ypb",
"Laboya": "lmy",
"Labu": "lbu",
"Lacandon": "lac",
"Lachi": "lbt",
"Lachi Putih": "lwh",
"Lachiguiri Zapotec": "zpa",
"Lachixío Zapotec": "zpl",
"Ladakhi": "lbj",
"Ladin": "lld",
"Ladino": "lad",
"Ladji-Ladji": "llj",
"Laeko-Libuat": "lkl",
"Lafofa": "laf",
"Laghu": "lgb",
"Laghuu": "lgh",
"Lagwan": "kot",
"Laha (Indonesia)": "lhh",
"Laha (Vietnam)": "lha",
"Lahanan": "lhn",
"Lahnda": "lah",
"Lahu": "lhu",
"Lahu Shi": "lhi",
"Lahul Lohar": "lhl",
"Lai": "cnh",
"Laimbue": "lmx",
"Laiyolo": "lji",
"Lak": "lbe",
"Laka": "lak",
"Lakalei": "lka",
"Lake Miwok": "lmw",
"Lakha": "lkh",
"Laki": "lki",
"Lakkia": "lbc",
"Lakon": "lkn",
"Lakondê": "lkd",
"Lakota": "lkt",
"Lakota Dida": "dic",
"Lala (Afrika Selatan)": "bnt-lal",
"Lala (New Guinea)": "nrz",
"Lala-Bisa": "leb",
"Lala-Roba": "lla",
"Lalana Chinantec": "cnl",
"Lalo Purba": "tbq-lal-pro",
"Lalu Barat": "ywl",
"Lalu Timur": "yit",
"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",
"Lampungik Purba": "poz-lgx-pro",
"Lamu": "llh",
"Lamu-Lamu": "lby",
"Lanas Lobu": "ruu",
"Landoma": "ldm",
"Lang'e": "yne",
"Langam": "lnm",
"Langbashe": "lna",
"Langi": "lag",
"Langnian Buyang": "yln",
"Lango (Sudan)": "lno",
"Lango (Uganda)": "laj",
"Lanima": "lnw",
"Lanoh": "lnh",
"Lao": "lo",
"Laomian": "lwm",
"Laopang": "lbg",
"Lapaguía-Guivini Zapotec": "ztl",
"Lapine": "art-lap",
"Laragia": "lrg",
"Lardil": "lbz",
"Larestani": "lrl",
"Larevat": "lrv",
"Larike-Wakasihu": "alo",
"Laro": "lro",
"Larteh": "lar",
"Laru": "lan",
"Lasalimu": "llm",
"Lasgerdi": "lsa",
"Lashi": "lsi",
"Lasi": "lss",
"Latgalia": "ltg",
"Latin": "la",
"Latu": "ltu",
"Latundê": "ltn",
"Latvia": "lv",
"Lau": "llu",
"Laua": "luf",
"Lauan": "llx",
"Lauje": "law",
"Laura": "lur",
"Laurentia": "lre",
"Lavatbura-Lamusong": "lbv",
"Lave": "brb",
"Laven": "lbo",
"Lavukaleve": "lvk",
"Lawa Barat": "lcp",
"Lawa Timur": "lwl",
"Lawangan": "lbx",
"Lawi": "lvi",
"Lawu": "lwu",
"Lawunuia": "tgi",
"Layakha": "lya",
"Laz": "lzz",
"Laze": "tbq-laz",
"Lealao Chinantec": "cle",
"Leco": "lec",
"Ledo Kaili": "lew",
"Leelau": "ldk",
"Lefa": "lfa",
"Lega-Mwenga": "lgm",
"Lega-Shabunda": "lea",
"Legbo": "agb",
"Legenyem": "lcc",
"Lehali": "tql",
"Leinong Naga": "lzn",
"Leipon": "lek",
"Leitre": "paa-lei",
"Lela": "dri",
"Lelak": "llk",
"Lele (Chad)": "lln",
"Lele (Congo)": "lel",
"Lele (Guinea)": "llc",
"Lele (New Guinea)": "lle",
"Lelemi": "lef",
"Lelepa": "lpa",
"Lembata Barat": "lmj",
"Lembata Selatan": "lmf",
"Lembena": "leq",
"Lemerig": "lrz",
"Lemio": "lei",
"Lemnos": "xle",
"Lemolang": "ley",
"Lemoro": "ldj",
"Lenakel": "tnl",
"Lenca Honduras": "len",
"Lenca Salvador": "nai-sln",
"Lendu": "led",
"Lengilu": "lgi",
"Lengo": "lgr",
"Lengola": "lej",
"Lenje": "leh",
"Lenkau": "ler",
"Lenyima": "ldg",
"Leon": "roa-leo",
"Leon Kuno": "roa-ole",
"Lepcha": "lep",
"Lepki": "lpe",
"Lepontii": "xlp",
"Lese": "les",
"Lesing-Gelimi": "let",
"Letemboi": "nms",
"Leti (Cameroon)": "leo",
"Leti (Indonesia)": "lti",
"Levuka": "lvu",
"Lewo": "lww",
"Lewo Eleng": "lwe",
"Lewotobi": "lwt",
"Leyigha": "ayi",
"Lezghi Purba": "cau-lzg-pro",
"Lezgi": "lez",
"Lhao Vo": "mhx",
"Lhokpu": "lhp",
"Li'o": "ljl",
"Liabuku": "lix",
"Liana-Seti": "ste",
"Liberia Kpelle": "xpe",
"Liberian Kreyol": "lir",
"Libido": "liq",
"Libinza": "liz",
"Liburni": "xli",
"Ligbi": "lig",
"Ligenza": "lgz",
"Liguria Purba": "xlg",
"Ligurian": "lij",
"Lihir": "lih",
"Lika": "lik",
"Liki": "lio",
"Likila": "lie",
"Likuba": "kxx",
"Likum": "lib",
"Likwala": "kwc",
"Lilau": "lll",
"Lillooet": "lil",
"Limassa": "bme",
"Limba Barat-Tengah": "lia",
"Limba Timur": "lma",
"Limbu": "lif",
"Limbum": "lmp",
"Limburg": "li",
"Limi": "ylm",
"Limilngan": "lmc",
"Lindu": "klw",
"Linear A": "lab",
"Lingala": "ln",
"Lingao": "onb",
"Lingkhim": "lii",
"Lingua Franca Nova": "lfn",
"Linngithigh": "lnj",
"Lipan": "apl",
"Lipo": "lpo",
"Lisabata-Nuniali": "lcs",
"Lisela": "lcl",
"Lish": "lsh",
"Lishana Deni": "lsd",
"Lishanid Noshan": "aij",
"Lishán Didán": "trg",
"Lisu": "lis",
"Literary Chinese": "lzh",
"Lithuania": "lt",
"Lithuania Kuno": "olt",
"Lithuanian Sign Language": "lls",
"Little Swanport": "aus-lsw",
"Litzlitz": "lzl",
"Livonian": "liv",
"Livvi": "olo",
"Lizu": "sit-liz",
"Lo-Toga": "lht",
"Loarki": "lrk",
"Lobala": "loq",
"Lobi": "lob",
"Lodhi": "lbm",
"Logba": "lgq",
"Logo": "log",
"Logol": "lof",
"Logooli": "rag",
"Logorik": "liu",
"Lojban": "jbo",
"Lokaa": "yaz",
"Loko": "lok",
"Lokono": "arw",
"Lokoya": "lky",
"Lola": "lcd",
"Lolak": "llq",
"Lole": "llg",
"Lolo": "llb",
"Lolo Purba": "tbq-lol-pro",
"Lolo-Burma Purba": "tbq-lob-pro",
"Loloda": "loa",
"Lolopo": "ycl",
"Lolopo Selatan": "ysp",
"Loma": "lom",
"Lomaiviti": "lmv",
"Lomakka": "loi",
"Lomavren": "rmi",
"Lombard": "lmo",
"Lombi": "lmi",
"Lombo": "loo",
"Lomwe": "ngl",
"Loncong": "lce",
"Long Phuri Naga": "lpn",
"Long Wat": "ttw",
"Longgu": "lgu",
"Longjia": "sit-lnj",
"Longto": "wok",
"Longuda": "lnu",
"Loniu": "los",
"Lonwolwol": "crc",
"Loo": "ldo",
"Lopa": "lop",
"Lopi": "lov",
"Lopit": "lpx",
"Lorang": "lrn",
"Lorediakarkar": "lnn",
"Lorrain": "roa-lor",
"Lorung Selatan": "lrr",
"Lorung Utara": "lbr",
"Lote": "uvl",
"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 Sorbian": "dsb",
"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",
"Luchazi": "lch",
"Lucumí": "luq",
"Ludian": "lud",
"Lufu": "ldq",
"Luganda": "lg",
"Lugbara": "lgg",
"Luguru": "ruf",
"Luhu": "lcq",
"Luhya": "luy",
"Luimbi": "lum",
"Luiseño": "lui",
"Luish Purba": "sit-luu-pro",
"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",
"Lur Selatan": "luz",
"Lur Utara": "lrc",
"Luren": "sit-lrn",
"Luri (Nigeria)": "ldd",
"Lusengo": "lse",
"Lushootseed": "lut",
"Lusi": "khl",
"Lusitania": "xls",
"Lutachoni": "lts",
"Lutos": "ndy",
"Luvale": "lue",
"Luwati": "luv",
"Luwiya": "xlu",
"Luwo": "lwo",
"Luxembourg": "lb",
"Luyana": "lyn",
"Lwalu": "lwa",
"Lwel": "lvl",
"Lycia": "xlc",
"Lydia": "xld",
"Lyngngam": "lyg",
"Lyélé": "lee",
"Láadan": "ldn",
"Láá Láá Bwamu": "bwj",
"Löyöp": "urr",
"Lü": "khb",
"Ma": "msj",
"Ma Manda": "skc",
"Ma'anyan": "mhy",
"Ma'di": "mhi",
"Ma'di Selatan": "snm",
"Ma'ya": "slz",
"Maaka": "mew",
"Maale": "mdy",
"Maasai": "mas",
"Maay": "ymm",
"Maba": "mqa",
"Mabaale": "mmz",
"Mabaan": "mfz",
"Mabang Bura": "mde",
"Mabire": "muj",
"Maca": "mca",
"Macaguaje": "mcl",
"Macaguán": "mbn",
"Macanese": "mzs",
"Macedonia": "mk",
"Macedonia Purba": "xmk",
"Machame": "jmc",
"Machiguenga": "mcb",
"Machinere": "mpd",
"Machinga": "mvw",
"Macoris": "nai-mac",
"Macuna": "myy",
"Macushi": "mbc",
"Mada (Cameroon)": "mxu",
"Mada (Nigeria)": "mda",
"Madak": "mmx",
"Maden": "xmx",
"Madhi Madhi": "dmd",
"Madngele": "zml",
"Madura": "mad",
"Maek": "hmk",
"Maeng Itneg": "itt",
"Mafa": "maf",
"Mag-Anchi Ayta": "sgb",
"Mag-Indi Ayta": "blx",
"Magahat": "mtw",
"Magahi": "mag",
"Magar Barat": "mrd",
"Magar Timur": "mgp",
"Magori": "zgr",
"Maguindanao": "mdh",
"Mahali": "mjx",
"Mahasu Pahari": "bfz",
"Mahican": "mjy",
"Mahongwe": "mhb",
"Mahou": "mxx",
"Maia": "sks",
"Maiadomu": "mzz",
"Maiani": "tnh",
"Maidu Barat Laut": "mjd",
"Maidu Purba": "nai-mdu-pro",
"Maidu Timur Laut": "nmu",
"Maii": "mmm",
"Mailu": "mgu",
"Maindo": "cwb",
"Maipure": "awd-mpr",
"Mairasi": "zrs",
"Maisin": "mbq",
"Maithili": "mai",
"Maiwa (Indonesia)": "wmm",
"Maiwa (New Guinea)": "mti",
"Maiwala": "mum",
"Majang": "mpe",
"Majera": "xmj",
"Majhwar": "mmj",
"Mak (China)": "mkg",
"Mak (Nigeria)": "pbl",
"Makaa": "mcp",
"Makah": "myh",
"Makalero": "mjb",
"Makasae": "mkz",
"Makassar": "mak",
"Makayam": "aup",
"Makhuwa": "vmw",
"Makhuwa-Marrevone": "xmc",
"Makhuwa-Meetto": "mgh",
"Makhuwa-Moniga": "mhm",
"Makhuwa-Saka": "xsq",
"Makhuwa-Shirima": "vmk",
"Makian Barat": "mqs",
"Maklew": "mgf",
"Makolkol": "zmh",
"Makonde": "kde",
"Maku": "xak",
"Maku'a": "lva",
"Makuri Naga": "jmn",
"Makuráp": "mpu",
"Makwe": "ymk",
"Makyan Naga": "umn",
"Mal": "mlf",
"Mal Paharia": "mkb",
"Mala (New Guinea)": "ped",
"Mala (Nigeria)": "ruy",
"Mala Malasar": "ima",
"Malagasi": "mg",
"Malakula Timur Laut": "upv",
"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",
"Malayalam": "ml",
"Malayic Dayak": "xdy",
"Malaynon": "mlz",
"Malba Birifor": "bfo",
"Male": "mdc",
"Malecite-Passamaquoddy": "pqm",
"Maleng": "pkt",
"Maleu-Kilenge": "mgl",
"Malfaxal": "mlx",
"Malgana": "vml",
"Malgbe": "mxf",
"Malibu": "sai-mlb",
"Malila": "mgq",
"Malimba": "mzd",
"Malimpung": "mli",
"Malol": "mbk",
"Malta": "mt",
"Malvi": "mup",
"Mam": "mam",
"Mama": "mma",
"Mamaa": "mhf",
"Mamaindé": "wmd",
"Mamanwa": "mmn",
"Mamara": "myk",
"Mamasa": "mqj",
"Mambae": "mgm",
"Mambai": "mcs",
"Mambila Cameroon": "mcu",
"Mambila Nigeria": "mzk",
"Mamboru": "mvd",
"Mambwe-Lungu": "mgr",
"Mampruli": "maw",
"Mamuju": "mqx",
"Mamulique": "emm",
"Mamusi": "kdf",
"Mamvu": "mdi",
"Man Met": "mml",
"Manam": "mva",
"Manambu": "mle",
"Manangba": "nmm",
"Manangkari": "znk",
"Manao": "awd-man",
"Manchu": "mnc",
"Manda (Australia)": "zma",
"Manda (India)": "mha",
"Manda (Tanzania)": "mgs",
"Mandahuaca": "mht",
"Mandaia": "mid",
"Mandaia Klasik": "myz",
"Mandalorian": "art-man",
"Mandan": "mhq",
"Mandandanyi": "zmk",
"Mandar": "mdr",
"Mandara": "tbf",
"Mandari": "mqu",
"Mandarin": "cmn",
"Mandaya Karaga": "mry",
"Mande Barat Purba": "dmn-mdw-pro",
"Mande Purba": "dmn-pro",
"Mandeali": "mjl",
"Mander": "mqr",
"Mandingo": "man",
"Mandinka": "mnk",
"Mandjak": "mfv",
"Mandobo Atas": "aax",
"Mandobo Bawah": "bwp",
"Manem": "jet",
"Mang": "zng",
"Mangala": "mem",
"Mangarayi": "mpc",
"Mangareva": "mrv",
"Mangas": "zns",
"Mangayat": "myj",
"Mangbetu": "mdj",
"Mangbetu Purba": "csu-maa-pro",
"Mangbutu": "mdk",
"Mangerr": "zme",
"Mangga Buang": "mmo",
"Manggarai": "mqy",
"Mangghuer": "mjg-mgr",
"Mango": "mge",
"Mangole": "mqc",
"Mangseng": "mbh",
"Mangue": "mom",
"Manigri-Kambolé Ede Nago": "xkb",
"Maninka Konyanka": "mku",
"Maninka Sankaran": "msc",
"Maninkakan Barat": "mlq",
"Maninkakan Kita": "mwk",
"Maninkakan Timur": "emk",
"Manipa": "mqp",
"Manipur Kuno": "omp",
"Manipuri": "mni",
"Mankanya": "knf",
"Mankiyali": "nlm",
"Manna-Dora": "mju",
"Mannan": "mjv",
"Mano": "mev",
"Manobo Agusan": "msm",
"Manobo Ata": "atd",
"Manobo Bukidnon Barat": "mbb",
"Manobo Cinamiguin": "mkx",
"Manobo Cotabato": "mta",
"Manobo Dibabawon": "mbd",
"Manobo Ilianen": "mbi",
"Manobo Matigsalug": "mbt",
"Manobo Rajah Kabunsuwan": "mqk",
"Manobo Sarangani": "mbs",
"Manombai": "woo",
"Mansaka": "msk",
"Mansi Purba": "mns-pro",
"Mansi Selatan": "mns-sou",
"Mansi Tengah": "mns-cen",
"Mansi Utara": "mns-nor",
"Mansoanka": "msw",
"Manta": "myg",
"Mantsi": "nty",
"Manusela": "wha",
"Manx": "gv",
"Manya": "mjz",
"Manyawa": "mny",
"Manza": "mzv",
"Maonan": "mmd",
"Mape": "mlh",
"Mapena": "mnm",
"Mapia": "mpy",
"Mapidian": "mpw",
"Mapos Buang": "bzh",
"Mapoyo": "mcg",
"Mapudungun": "arn",
"Mapun": "sjm",
"Mara": "mec",
"Marachi": "lri",
"Maraghei": "vmh",
"Maragus": "mrs",
"Marama": "lrm",
"Maranao": "mrw",
"Maranungku": "zmr",
"Mararit": "mgb",
"Marathi": "mr",
"Marathi Kuno": "omr",
"Maratino": "sai-mar",
"Marau": "mvr",
"Marawan": "awd-mar",
"Marba": "mpg",
"Marenje": "vmr",
"Marfa": "mvu",
"Margany": "zmc",
"Marghi Selatan": "mfm",
"Margi": "mrt",
"Mari (Sepik)": "mbx",
"Mari Austronesia": "hob",
"Mari Barat": "mrj",
"Mari Purba": "chm-pro",
"Mari Timur": "mhr",
"Maria": "mds",
"Maria Bukit": "mrr",
"Mariaté": "awd-mrt",
"Maricopa": "mrc",
"Maridan": "zmd",
"Maridjabin": "zmj",
"Marik": "dad",
"Marimanindji": "zmm",
"Marind": "mrz",
"Maring": "mbw",
"Maringarr": "zmt",
"Mariri": "mqi",
"Maritsauá": "msp",
"Mariyedi": "zmy",
"Marka": "rkm",
"Markweeta": "enb",
"Marma": "rmz",
"Marovo": "mvo",
"Marquesas Selatan": "mqm",
"Marquesas Utara": "mrq",
"Marrgu": "mhg",
"Marriammu": "xru",
"Marrithiyel": "mfr",
"Marrucinian": "umc",
"Marshall": "mh",
"Marsian": "ims",
"Marti Ke": "zmg",
"Martu Wangka": "mpj",
"Martuthunira": "vma",
"Marwari": "mwr",
"Marúbo": "mzr",
"Masa Purba": "cdc-mas-pro",
"Masaba": "myx",
"Masadiit Itneg": "tis",
"Masakará": "sai-msk",
"Masalit": "mls",
"Masana": "mcn",
"Masbate Sorsogon": "bks",
"Masbatenyo": "msb",
"Masela Barat": "mss",
"Masela Tengah": "mxz",
"Masela Timur": "vme",
"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",
"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",
"Mauwake": "mhl",
"Mav̋ea": "mkv",
"Mawa": "mcw",
"Mawak": "mjj",
"Mawan": "mcz",
"Mawayana": "mzx",
"Mawchi": "mke",
"Mawes": "mgk",
"Maxakalí": "mbl",
"Maxi Gbe": "mxl",
"Maya Epigrafi": "emy",
"Maya Mopan": "mop",
"Maya Purba": "myn-pro",
"Maya Samo": "sym",
"Maya Yucatec": "yua",
"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",
"Mazahua Michoacán": "mmc",
"Mazahua Tengah": "maz",
"Mazaltepec Zapotec": "zpy",
"Mazanderani": "mzn",
"Mazatec Chiquihuitlán": "maq",
"Mazatec Huautla": "mau",
"Mazatec Ixcatlán": "mzi",
"Mazatec Jalapa de Díaz": "maj",
"Mazatec Purba": "omq-maz-pro",
"Mazatec San Jerónimo Tecóatl": "maa",
"Mazatec Soyaltepec": "vmp",
"Mazatlán Mazatec": "vmz",
"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",
"Mbembe Cross River": "mfn",
"Mbembe Tigon": "nza",
"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",
"Me'en": "mym",
"Mebu": "mjn",
"Medebur": "mjm",
"Medefaidrin": "dmf",
"Media Lengua": "mue",
"Median Kuno": "xme-old",
"Median Pertengahan": "xme-mid",
"Medo-Parthia Purba": "ira-mpr-pro",
"Medumba": "byv",
"Mefele": "mfj",
"Megam": "mef",
"Megleno-Romania": "ruq",
"Mehek": "nux",
"Mehináku": "mmh",
"Mekeo": "mek",
"Mekmek": "mvk",
"Mekwei": "msf",
"Mekéns": "skf",
"Mel-Khaonh": "hkn",
"Melanau Daro-Matu": "dro",
"Melanau Sibu": "sdx",
"Melanau Tengah": "mel",
"Melayik Purba": "poz-mly-pro",
"Melayu": "ms",
"Melayu Ambon": "abs",
"Melayu Baba": "mbf",
"Melayu Bacan": "btj",
"Melayu Bali": "mhp",
"Melayu Barisan Selatan": "pse",
"Melayu Berau": "bve",
"Melayu Brunei": "kxd",
"Melayu Bukit": "bvu",
"Melayu Cheti": "ccm",
"Melayu Cocos": "coa",
"Melayu Jambi": "jax",
"Melayu Kedah": "meo",
"Melayu Kupang": "mkn",
"Melayu Kutai Kota Bangun": "mqg",
"Melayu Larantuka": "lrt",
"Melayu Makassar": "mfp",
"Melayu Maluku Utara": "max",
"Melayu Manado": "xmm",
"Melayu Negeri Sembilan": "zmi",
"Melayu Patani": "mfa",
"Melayu Sabah": "msi",
"Melayu Sarawak": "poz-sml",
"Melayu Sri Lanka": "sci",
"Melayu Terengganu": "poz-ter",
"Melayu-Chamic Purba": "poz-mcm-pro",
"Melayu-Polinesia Purba": "poz-pro",
"Melayu-Polinesia Tengah-Timur Purba": "poz-cet-pro",
"Melayu-Polinesia Timur Purba": "pqe-pro",
"Melayu-Sumbawa Purba": "poz-msa-pro",
"Mele-Fila": "mxe",
"Melo": "mfx",
"Melpa": "med",
"Memoni": "mby",
"Mendankwe-Nkwen": "mfd",
"Mende (Sierra Leone)": "men",
"Mengaka": "xmg",
"Mengen": "mee",
"Menien": "sai-men",
"Menka": "mea",
"Menominee": "mez",
"Mentawai": "mwv",
"Menya": "mcr",
"Meohang Barat": "raf",
"Meohang Timur": "emg",
"Meoswar": "mvx",
"Mer": "mnu",
"Meramera": "mxm",
"Merei": "lmb",
"Merey": "meq",
"Meriam": "ulk",
"Meroe": "xmr",
"Meru": "mer",
"Mesaka": "iyo",
"Mese": "mci",
"Mesir Demotik": "egx-dem",
"Mesir Purba": "egy",
"Mesme": "zim",
"Mesmes": "mys",
"Mesqan": "mvz",
"Messapic": "cms",
"Meta'": "mgo",
"Mewari": "mtr",
"Mewati": "wtm",
"Meyah": "mej",
"Mezontla Popoloca": "pbe",
"Meänkieli": "fit",
"Mfinu": "zmf",
"Mfumte": "nfu",
"Mi'kmaq": "mic",
"Miami": "mia",
"Mian": "mpt",
"Miani": "pla",
"Miao Qiandong Selatan": "hms",
"Miao Qiandong Timur": "hmq",
"Miao Qiandong Utara": "hea",
"Miao Xiangxi Barat": "mmr",
"Miao Xiangxi Timur": "muq",
"Michif": "crg",
"Michigamea": "cmm",
"Mid Grand Valley Dani": "dnt",
"Mid-Southern Banda": "bjo",
"Midob": "mei",
"Mienik Purba": "hmx-mie-pro",
"Migaama": "mmy",
"Migabac": "mpp",
"Miji": "sjl",
"Miju": "mxj",
"Mikasuki": "mik",
"Mikronesia Purba": "poz-mic-pro",
"Milang": "tbq-mil",
"Mili": "ymh",
"Millcayac": "sai-mil",
"Miltu": "mlj",
"Miluk": "iml",
"Milyan": "imy",
"Mimi Decorse": "mis-mmd",
"Mimi Nachtigal": "mis-mmn",
"Min Datian": "nan-dat",
"Min Hailufeng": "nan-hlh",
"Min Longyan": "nan-lnx",
"Min Nan": "nan",
"Min Purba": "zhx-min-pro",
"Min Puxian": "cpx",
"Min Sanxiang": "nan-zsh",
"Min Tengah": "czo",
"Min Timur": "cdo",
"Min Utara": "mnp",
"Min Zhenan": "nan-zhe",
"Mina": "hna",
"Minaean": "inm",
"Minang": "xrg",
"Minangkabau": "min",
"Minaveha": "mvn",
"Minderico": "drc",
"Mindiri": "mpn",
"Mingang Doso": "mko",
"Mingo": "iro-min",
"Mingrelia": "xmf",
"Minica Huitoto": "hto",
"Minidien": "wii",
"Minigir": "vmg",
"Minjungbal": "xjb",
"Minkin": "xxm",
"Minoan": "omn",
"Minokok": "mqq",
"Minriq": "mnq",
"Mintil": "mzt",
"Miqie": "yiq",
"Mirandese": "mwl",
"Mire": "mvh",
"Mirgan": "zrg",
"Miriti": "mmv",
"Miriwoong": "mep",
"Mirpur Panjabi": "pmu",
"Misantla Totonac": "tlc",
"Miship": "mjs",
"Misima-Paneati": "mpx",
"Mising": "mrg",
"Miskito": "miq",
"Mittu": "mwu",
"Mituku": "zmq",
"Miu": "mpo",
"Miwa": "vmi",
"Miwok Pesisir": "csi",
"Miwok Sierra Selatan": "skd",
"Miwok Sierra Tengah": "csm",
"Miwok Sierra Utara": "nsq",
"Miwok Teluk": "mkq",
"Mixe Coatlán": "mco",
"Mixe Juquila": "mxq",
"Mixe Mazatlán": "mzl",
"Mixe Tanah Genting": "mir",
"Mixe Tengah Utara": "neq",
"Mixe Tlahuitoltepec": "mxp",
"Mixe Totontepec": "mto",
"Mixe-Zoque Purba": "nai-miz-pro",
"Mixifore": "mfg",
"Mixtec Alacatlatzala": "mim",
"Mixtec Amoltepec": "mbz",
"Mixtec Apasco-Apoala": "mip",
"Mixtec Atatláhuca": "mib",
"Mixtec Ayutla": "miy",
"Mixtec Cacaloxtepec": "miu",
"Mixtec Chayuco": "mih",
"Mixtec Chigmecatitlán": "mii",
"Mixtec Coatzospan": "miz",
"Mixtec Cuyamecalco": "xtu",
"Mixtec Huitepec": "mxs",
"Mixtec Itundujia": "mce",
"Mixtec Ixtayutla": "vmj",
"Mixtec Jamiltepec": "mxt",
"Mixtec Juxtlahuaca": "vmc",
"Mixtec Magdalena Peñasco": "xtm",
"Mixtec Metlatónoc": "mxv",
"Mixtec Mitlatongo": "vmm",
"Mixtec Mixtepec": "mix",
"Mixtec Nochixtlán Tenggara": "mxy",
"Mixtec Oaxaca Barat Laut": "mxa",
"Mixtec Ocotepec": "mie",
"Mixtec Peñoles": "mil",
"Mixtec Pinotepa Nacional": "mio",
"Mixtec Puebla Selatan": "mit",
"Mixtec Purba": "omq-mxt-pro",
"Mixtec San Juan Colorado": "mjc",
"Mixtec San Miguel Piedras": "xtp",
"Mixtec San Miguel el Grande": "mig",
"Mixtec Santa Lucía Monteverde": "mdv",
"Mixtec Santa María Zacatepec": "mza",
"Mixtec Silacayoapan": "mks",
"Mixtec Sindihui": "xts",
"Mixtec Soyaltepec": "vmq",
"Mixtec Tacahua": "xtt",
"Mixtec Teposcolula": "omq-tel",
"Mixtec Tezoatlán": "mxb",
"Mixtec Tidaá": "mtx",
"Mixtec Tlaxiaco Barat Daya": "meh",
"Mixtec Tlaxiaco Utara": "xtn",
"Mixtec Tlazoyaltepec": "mqh",
"Mixtec Tututepec": "mtu",
"Mixtec Yoloxochitl": "xty",
"Mixtec Yosondúa": "mpm",
"Mixtec Yucuañe": "mvg",
"Mixtec Yutanduchi": "mab",
"Mixtecan Purba": "omq-mix-pro",
"Mixtepec Zapotec": "zpm",
"Miya": "mkf",
"Miyako": "mvi",
"Miyobe": "soy",
"Mizo": "lus",
"Mlabri": "mra",
"Mlahsö": "lhs",
"Mlap": "kja",
"Mlomp": "mlo",
"Mmaala": "mmu",
"Mmani": "buy",
"Mmen": "bfm",
"Mnong Selatan": "mnn",
"Mnong Tengah": "cmo",
"Mnong Timur": "mng",
"Mo": "wkd",
"Moabite": "obm",
"Moba": "mfq",
"Mobilia": "mod",
"Mobu": "ahm",
"Mocana": "sai-mcn",
"Mochi": "old",
"Mochica": "omc",
"Mocho": "mhc",
"Mocoví": "moc",
"Modang": "mxd",
"Modole": "mqo",
"Moere": "mvq",
"Mofu Utara": "mfk",
"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",
"Mokil": "mkj",
"Moklen": "mkm",
"Mokole": "mkl",
"Mokpwe": "bri",
"Moksha": "mdf",
"Molale": "mbe",
"Molbog": "pwm",
"Moldova Sign Language": "vsi",
"Molengue": "bxc",
"Molima": "mox",
"Molo": "zmo",
"Molof": "msl",
"Moloko": "mlw",
"Mom Jango": "ver",
"Moma": "myl",
"Momare": "msz",
"Mombo Dogon": "dmb",
"Mombum": "mso",
"Momina": "mmb",
"Momuna": "mqf",
"Mon": "mnw",
"Mon Kuno": "omx",
"Mon Pertengahan": "mkh-mmn",
"Mon Thailand": "mnw-tha",
"Mon Yangum": "ymo",
"Mon-Khmer Purba": "mkh-pro",
"Mondropolon": "npn",
"Mondé": "mnd",
"Mongghul": "mjg-mgl",
"Mongo": "lol",
"Mongol Khamnigan": "ykh",
"Mongol Klasik": "cmg",
"Mongol Pertengahan": "xng",
"Mongolia": "mn",
"Mongolia Purba": "xgn-pro",
"Mongondow": "mog",
"Moni": "mnz",
"Monik Purba": "mkh-mnc-pro",
"Mono (California)": "mnr",
"Mono (Cameroon)": "mru",
"Mono (Congo)": "mnh",
"Monom": "moo",
"Monpa Kalaktang": "kkf",
"Montagnais": "moe",
"Montol": "mtl",
"Monumbo": "mxk",
"Monzombo": "moj",
"Moo": "gwg",
"Mor (Austronesia)": "mhz",
"Mor (Papua)": "moq",
"Moraid": "msg",
"Moran": "tbq-mor",
"Morawa": "mze",
"Mordvinik Purba": "urj-mdv-pro",
"Morerebi": "xmo",
"Moresada": "msx",
"Mori Atas": "mzq",
"Mori Bawah": "xmz",
"Morigi": "mdb",
"Moro": "mor",
"Morokodo": "mgc",
"Morom": "bdo",
"Moronene": "mqn",
"Morori": "mok",
"Morouas": "mrp",
"Mortlock": "mrl",
"Moru": "mgd",
"Mosimo": "mqv",
"Moskona": "mtj",
"Mossi": "mos",
"Mota": "mtt",
"Motembo": "tmv",
"Motu": "meu",
"Mouk-Aria": "mwh",
"Mouwase": "jmw",
"Movima": "mzp",
"Moyadan Itneg": "ity",
"Mozarab": "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",
"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",
"Muji Qila": "ymq",
"Muji Selatan": "ymc",
"Muji Utara": "ymx",
"Mukha-Dora": "mmk",
"Mukulu": "moz",
"Mulaha": "mfw",
"Mulam": "mlm",
"Mullu Kurumba": "kpb",
"Mullukmulluk": "mpb",
"Muluridyi": "vmu",
"Mum": "kqa",
"Mumuye": "mzm",
"Mumuye Purba": "alv-mum-pro",
"Muna": "mnb",
"Munda": "unx",
"Munda Purba": "mun-pro",
"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",
"Munji-Yidgha Purba": "ira-mny-pro",
"Munsee": "umu",
"Muong": "mtq",
"Mur Pano": "tkv",
"Muratayak": "asx",
"Muria Barat": "mut",
"Muria Barat Jauh": "fmu",
"Muria Timur": "emu",
"Murik (Malaysia)": "mxr",
"Murik (New Guinea)": "mtf",
"Murkim": "rmh",
"Murle": "mur",
"Murrinh-Patha": "mwf",
"Mursi": "muz",
"Murui Huitoto": "huu",
"Murupi": "mqw",
"Murut Keningau": "kxi",
"Murut Serudung": "srk",
"Murut Timugon": "tih",
"Muruwari": "zmu",
"Musan": "mmp",
"Musasa": "smm",
"Musey": "mse",
"Musgu": "mug",
"Musi": "mui",
"Muskogi Purba": "nai-mus-pro",
"Muskum": "mje",
"Musom": "msu",
"Mussau-Emira": "emi",
"Muthuvan": "muv",
"Mutu": "tuc",
"Muya": "mvm",
"Muyang": "muy",
"Muyu Selatan": "kts",
"Muyu Utara": "kti",
"Muyuw": "myw",
"Muzi": "ymz",
"Muzo": "sai-muz",
"Mvanip": "mcj",
"Mvuba": "mxh",
"Mwaghavul": "sur",
"Mwakai": "mgt",
"Mwali Comorian": "wlc",
"Mwan": "moa",
"Mwani": "wmw",
"Mwatebu": "mwa",
"Mwera": "mwe",
"Mwerlap": "mrm",
"Mwimbi-Muthambi": "mws",
"Mwotlap": "mlv",
"Myene": "mye",
"Mysian": "yms",
"Mòcheno": "mhn",
"Mün Chin": "mwq",
"Mündü": "muh",
"Māori": "mi",
"Mạ": "cma",
"N'Ko": "nqo",
"Na": "nbt",
"Na-Dene Purba": "xnd-pro",
"Naaba": "nao",
"Naba": "mne",
"Nabak": "naf",
"Nabi": "mty",
"Nachering": "ncd",
"Nadruvia": "ndf",
"Nadëb": "mbj",
"Nafaanra": "nfr",
"Nafi": "srf",
"Nafri": "nxx",
"Naga Chokri": "nri",
"Naga Chothe": "nct",
"Naga Inpui": "nkf",
"Naga Khezha": "nkh",
"Naga Khiamniungan": "kix",
"Naga Khoibu": "nkb",
"Naga Konyak": "nbe",
"Naga Kyan-Karyaw": "nqq",
"Naga Lao": "nlq",
"Naga Liangmai": "njn",
"Naga Lotha": "njh",
"Naga Mao": "nbi",
"Naga Maram": "nma",
"Naga Maring": "nng",
"Naga Monsang": "nmh",
"Naga Moyon": "nmo",
"Naga Mzieme": "nme",
"Naga Pochuri": "npo",
"Naga Puimei": "npu",
"Naga Rengma Selatan": "nre",
"Naga Rengma Utara": "nnl",
"Naga Rongmei": "nbu",
"Naga Sangtam": "nsa",
"Naga Tangkhul": "nmf",
"Naga Tengah Purba": "sit-aao-pro",
"Naga Thangal": "nki",
"Naga Utara Purba": "sit-kon-pro",
"Naga Zeme": "nzm",
"Nagarchal": "nbg",
"Nage": "nxe",
"Nagu": "ngr",
"Nagumi": "ngv",
"Nahali": "nlx",
"Nahari": "nhh",
"Nahavaq": "sns",
"Nahua Purba": "azc-nah-pro",
"Nahuatl": "nah",
"Nahuatl Coatepec": "naz",
"Nahuatl Cosoleacaque": "nhk",
"Nahuatl Durango Barat": "azn",
"Nahuatl Durango Timur": "azd",
"Nahuatl Guerrero": "ngu",
"Nahuatl Huasteca Barat": "nhw",
"Nahuatl Huasteca Tengah": "nch",
"Nahuatl Huasteca Timur": "nhe",
"Nahuatl Huaxcaleca": "nhq",
"Nahuatl Klasik": "nci",
"Nahuatl Mecayapan": "nhx",
"Nahuatl Michoacán": "ncl",
"Nahuatl Morelos": "nhm",
"Nahuatl Oaxaca Utara": "nhy",
"Nahuatl Ometepec": "nht",
"Nahuatl Orizaba": "nlv",
"Nahuatl Pajapan": "nhp",
"Nahuatl Puebla Tanah Tinggi": "azz",
"Nahuatl Puebla Tengah": "ncx",
"Nahuatl Puebla Tenggara": "npl",
"Nahuatl Puebla Utara": "ncj",
"Nahuatl Santa María La Alta": "nhz",
"Nahuatl Sierra Negra": "nsu",
"Nahuatl Tabasco": "nhc",
"Nahuatl Temascaltepec": "nhv",
"Nahuatl Tengah": "nhn",
"Nahuatl Tetelcingo": "nhg",
"Nahuatl Tlamacazapa": "nuz",
"Nahuatl Zacatlán-Ahuacatlán-Tepetzintla": "nhi",
"Nai": "bio",
"Naish Purba": "sit-nas-pro",
"Naka'ela": "nae",
"Nakai": "nkj",
"Nakame": "nib",
"Nakanai": "nak",
"Nakara": "nck",
"Nake": "nbk",
"Nakh Purba": "cau-nkh-pro",
"Naki": "mff",
"Nakwi": "nax",
"Nalca": "nlc",
"Nali": "nss",
"Nalik": "nal",
"Nalu": "naj",
"Nalögo": "nlz",
"Nama": "nmx",
"Namakura": "nmk",
"Namat": "nkm",
"Nambikwara": "nab",
"Nambo": "ncm",
"Nambya": "nmq",
"Namia": "nnm",
"Namiae": "nvm",
"Namla": "naa",
"Namo": "mxw",
"Namonuito": "nmt",
"Namosi-Naitasiri-Serua": "bwb",
"Namuyi": "nmy",
"Nancere": "nnc",
"Nande": "nnb",
"Nandi": "niq",
"Nanerigé Sénoufo": "sen",
"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",
"Nauru": "na",
"Navajo": "nv",
"Navarro-Aragon Kuno": "roa-ona",
"Navut": "nsw",
"Nawaru": "nwr",
"Nawathinehena": "nwa",
"Nawdm": "nmz",
"Nawiki Purba": "awd-nwk-pro",
"Nawuri": "naw",
"Naxi": "nxq",
"Nayi": "noz",
"Naʼvi": "art-nav",
"Ncane": "ncr",
"Nchumbulu": "nlu",
"Nda'nda'": "nnz",
"Ndaka": "ndk",
"Ndali": "ndh",
"Ndam": "ndm",
"Ndamba": "ndj",
"Ndambomo": "nxo",
"Ndasa": "nda",
"Ndau": "ndc",
"Nde-Gbite": "ned",
"Nde-Nsele-Nta": "ndd",
"Ndebele Selatan": "nr",
"Ndebele Utara": "nd",
"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",
"Ndzwani Comorian": "wni",
"Neapolit": "nap",
"Nedebang": "nec",
"Nefamese": "nef",
"Nefusa": "jbn",
"Negerhollands": "dcr",
"Negidal": "neg",
"Nehan": "nsn",
"Nek": "nif",
"Nekgini": "nkg",
"Neko": "nej",
"Neku": "nek",
"Neme": "nex",
"Nemi": "nem",
"Nen": "nqn",
"Nend": "anh",
"Nenets Hutan": "yrk-for",
"Nenets Tundra": "yrk",
"Nengone": "nen",
"Neo": "neu",
"Neo-Aram Bohtan": "bhn",
"Neo-Aramia Assyria": "aii",
"Neo-Aramia Barat": "amw",
"Nepal": "ne",
"Nepal Kurux": "kxl",
"Nese": "poz-nes",
"Nete": "net",
"Neve'ei": "vnm",
"Neverver": "lgk",
"New Caledonian Javanese": "jas",
"New South Wales Tengah Purba": "aus-cww-pro",
"Newar": "new",
"Newar Klasik": "nwc",
"Newar Pertengahan": "nwx",
"Neyo": "ney",
"Nez Perce": "nez",
"Nga La": "hlt",
"Ngaanyatjarra": "ntj",
"Ngad'a Timur": "nea",
"Ngadha": "nxg",
"Ngadjunmaya": "nju",
"Ngadjuri": "jui",
"Ngaiawang": "nwg",
"Ngaing": "nnf",
"Ngaju": "nij",
"Ngala": "nud",
"Ngalakan": "nig",
"Ngalkbun": "ngk",
"Ngalum": "szb",
"Ngam": "nmc",
"Ngamambo": "nbv",
"Ngambay": "sba",
"Ngamini": "nmv",
"Ngamo": "nbh",
"Ngan'gityemerri": "nam",
"Nganakarti": "xnk",
"Nganasan": "nio",
"Ngandi": "nid",
"Ngando (Congo)": "nxd",
"Ngando (Republik Afrika Tengah)": "ngd",
"Ngandyera": "nne",
"Ngantangarra": "ntg",
"Nganyaywana": "nyx",
"Ngardi": "rxd",
"Ngarigu": "xni",
"Ngarinman": "nbj",
"Ngarinyin": "ung",
"Ngarla": "nrk",
"Ngarluma": "nrl",
"Ngarrindjeri": "nay",
"Ngas": "anc",
"Ngasa": "nsg",
"Ngawun": "nxn",
"Ngbaka": "nga",
"Ngbaka Ma'bo": "nbm",
"Ngbaka Manza": "ngg",
"Ngbandi Selatan": "nbw",
"Ngbandi Utara": "ngb",
"Ngbee": "jgb",
"Ngbinda": "nbd",
"Ngbundu": "nuu",
"Ngelima": "agh",
"Ngemba": "nge",
"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 (Congo)": "ngc",
"Ngombe (Republik Afrika Tengah)": "nmj",
"Ngong": "nnx",
"Ngongo": "noq",
"Ngoni": "ngo",
"Ngoreme": "ngq",
"Ngoshie": "nsh",
"Ngulu": "ngp",
"Nguluwan": "nuw",
"Ngumbi": "nui",
"Ngunawal": "xul",
"Ngundi": "ndn",
"Ngundu": "nue",
"Ngungwel": "ngz",
"Nguni Purba": "bnt-ngu-pro",
"Ngurmbur": "nrx",
"Nguôn": "nuo",
"Ngwaba": "ngw",
"Ngwe": "nwe",
"Ngwi": "nlo",
"Ngwo": "ngn",
"Ngäbere": "gym",
"Nhanda": "nha",
"Nheengatu": "yrl",
"Nhirrpi": "hrp",
"Nhuwala": "nhf",
"Nias": "nia",
"Nicobar Purba": "aav-nic-pro",
"Nicobar Selatan": "nik",
"Nicobar Tengah": "ncb",
"Nicola": "ath-nic",
"Nicoleño": "azc-nic",
"Niellim": "nie",
"Niger-Congo Purba": "nic-pro",
"Nihali": "nll",
"Nii": "nii",
"Nila": "nil",
"Nilamba": "nim",
"Nilo-Sahara Purba": "ssa-pro",
"Nilotik Purba": "sdv-nil-pro",
"Nimadi": "noe",
"Nimanbur": "nmp",
"Nimbari": "nmr",
"Nimboran": "nir",
"Nimi": "nis",
"Nimo": "niw",
"Nimoa": "nmw",
"Ninam": "shb",
"Nindi": "nxi",
"Ningera": "nby",
"Ninggerum": "nxr",
"Ningil": "niz",
"Ninzo": "nin",
"Nipsan": "nps",
"Nisa": "njs",
"Nisenan": "nsz",
"Nisga'a": "ncg",
"Nisi": "yso",
"Nisu Barat Laut": "nsf",
"Nisu Selatan": "nsd",
"Nisu Timur": "nos",
"Nisu Utara": "yiv",
"Niuafo'ou": "num",
"Niuatoputapu": "nkp",
"Niue": "niu",
"Nivaclé": "cag",
"Nivkh": "niv",
"Niwer Mil": "hrc",
"Njalgulgule": "njl",
"Njebi": "nzb",
"Njen": "njj",
"Njerep": "njr",
"Njyem": "njy",
"Nkami": "nkq",
"Nkangala": "nkn",
"Nkari": "nkz",
"Nkem-Nkum": "isi",
"Nkhumbi": "khu",
"Nkongho": "nkc",
"Nkonya": "nko",
"Nkoroo": "nkx",
"Nkoya": "nka",
"Nkukoli": "nbo",
"Nkutu": "nkw",
"Nnam": "nbp",
"Nobiin": "fia",
"Nocte": "njb",
"Nogai": "nog",
"Noipä": "npx",
"Noiri": "noi",
"Nokuku": "nkk",
"Nomaande": "lem",
"Nomane": "nof",
"Nomatsiguenga": "not",
"Nomlaki": "nol",
"Nomu": "noh",
"Nong Zhuang": "zhn",
"Nonuya": "noj",
"Nooksack": "nok",
"Noon": "snf",
"Noone": "nhu",
"Nootka": "nuk",
"Nopala Chatino": "cya",
"Noric": "nrc",
"Norman": "nrf",
"Norn": "nrn",
"Norra": "nrr",
"Norse Kuno": "non",
"Norse Purba": "gmq-pro",
"Norway": "no",
"Norway Pengembara": "rmg",
"Norway Pertengahan": "gmq-mno",
"Nossob Bawah": "nsb",
"Notre": "bly",
"Notsi": "ncf",
"Nottoway": "ntw",
"Nottoway-Meherrin": "nwy",
"Novgorod Kuno": "zle-ono",
"Novial": "nov",
"Noy": "noy",
"Nsari": "asj",
"Nsenga": "nse",
"Nshi": "nsc",
"Nsong": "soo",
"Nsongo": "nsx",
"Ntcham": "bud",
"Ntomba": "nto",
"Ntra'ngith": "dgt",
"Nuaulu Selatan": "nxl",
"Nuaulu Utara": "nni",
"Nubaca": "baf",
"Nubi": "kcn",
"Nubia Kuno": "onw",
"Nubia Purba": "nub-pro",
"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",
"Numee": "kdk",
"Numidia": "nxm",
"Numik Purba": "azc-num-pro",
"Nungali": "nug",
"Nunggubuyu": "nuy",
"Nungon": "paa-nun",
"Nungu": "rin",
"Nuni Selatan": "nnw",
"Nuni Utara": "nuv",
"Nuosu": "ii",
"Nupbikha": "npb",
"Nupe": "nup",
"Nupoid Purba": "alv-nup-pro",
"Nuristani Purba": "iir-nur-pro",
"Nusa Laut": "nul",
"Nusu": "nuf",
"Nutabe": "cba-nut",
"Nyabwa": "nwb",
"Nyagrong Minyag": "ero-nya",
"Nyah Kur": "cbn",
"Nyaheun": "nev",
"Nyakyusa": "nyy",
"Nyala Timur": "nle",
"Nyali": "nlj",
"Nyam": "nmi",
"Nyamal": "nly",
"Nyambo": "now",
"Nyamusa-Molo": "nwm",
"Nyamwanga": "mwn",
"Nyamwezi": "nym",
"Nyaneka": "nyk",
"Nyang'i": "nyp",
"Nyanga (Congo)": "nyj",
"Nyanga (Togo)": "ayg",
"Nyanga-li": "nyc",
"Nyangatom": "nnj",
"Nyangbo": "nyb",
"Nyangga": "nny",
"Nyangumarta": "nna",
"Nyankole": "nyn",
"Nyarafolo Senoufo": "sev",
"Nyaturu": "rim",
"Nyaw": "nyw",
"Nyawaygi": "nyt",
"Nyemba": "nba",
"Nyengo": "nye",
"Nyenkha": "neh",
"Nyeu": "nyl",
"Nyigina": "nyh",
"Nyiha": "nih",
"Nyika": "nkt",
"Nyima Purba": "sdv-nyi-pro",
"Nyimang": "nyi",
"Nyindrou": "lid",
"Nyindu": "nyg",
"Nyishi": "njz",
"Nyiyaparli": "xny",
"Nynorsk Norway": "nn",
"Nyokon": "nvo",
"Nyole (Kenya)": "nyd",
"Nyole (Uganda)": "nuj",
"Nyong": "muo",
"Nyoro": "nyo",
"Nyulnyul": "nyv",
"Nyulnyulan Purba": "aus-nyu-pro",
"Nyunga": "nys",
"Nyungwe": "nyu",
"Nyâlayu": "yly",
"Nzadi": "nzd",
"Nzakambay": "nzy",
"Nzakara": "nzk",
"Nzanyi": "nja",
"Nzima": "nzi",
"Ná-Meo": "neo",
"Nùng": "nut",
"Nüpode Huitoto": "hux",
"Nǀuu": "ngh",
"O'chi'chi'": "xoc",
"O'du": "tyh",
"O'odham": "ood",
"Obanliku": "bzy",
"Obispeño": "obi",
"Oblo": "obl",
"Obo Manobo": "obo",
"Obokuitai": "afz",
"Obolo": "ann",
"Obulom": "obu",
"Ocaina": "oca",
"Occitan": "oc",
"Occitan Kuno": "pro",
"Oceania Purba": "poz-oce-pro",
"Od": "odk",
"Odia": "or",
"Odia Kuno": "inc-oor",
"Odia Pertengahan": "inc-mor",
"Odiai": "bhf",
"Odoodee": "kkc",
"Odual": "odu",
"Odut": "oda",
"Ofayé": "opy",
"Ofo": "ofo",
"Ogbah": "ogc",
"Ogbia": "ogb",
"Ogbogolo": "ogg",
"Ogbronuagum": "ogu",
"Ogea": "eri",
"Oghuz Kuno Awal": "trk-eog",
"Ogoni Purba": "nic-ogo-pro",
"Ohlone Selatan": "css",
"Ohlone Utara": "cst",
"Oirat Bertulis": "xwo",
"Oirata": "oia",
"Ojibwa Barat": "ojw",
"Ojibwa Barat Laut": "ojb",
"Ojibwa Tengah": "ojc",
"Ojibwa Timur": "ojg",
"Ojibwe": "oj",
"Ojitlán Chinantec": "chj",
"Okanagan": "oka",
"Oki-No-Erabu": "okn",
"Okiek": "oki",
"Okinawa": "ryu",
"Oko-Eni-Osayen": "oks",
"Oko-Juwoi": "okj",
"Okobo": "okb",
"Okodia": "okd",
"Okolod": "kqv",
"Okpamheri": "opa",
"Okpe (Edo Barat Daya)": "oke",
"Okpe (Edo Barat Laut)": "okx",
"Okpela": "atg",
"Oksapmin": "opm",
"Oku": "oku",
"Okwanuchu": "nai-okw",
"Olekha": "ole",
"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",
"Omi": "omi",
"Omok": "omk",
"Omotik": "omt",
"Omotik Purba": "omv-pro",
"Omurano": "omu",
"One Inebu": "oin",
"One Molmo": "aun",
"One Selatan": "osu",
"One Utara": "onr",
"Oneida": "one",
"Ong": "oog",
"Onga Purba": "qfa-ong-pro",
"Ongota": "bxe",
"Onin": "oni",
"Onjob": "onj",
"Ono": "ons",
"Onobasulu": "onn",
"Onondaga": "ono",
"Ontenu": "ont",
"Oorlams": "oor",
"Opao": "opo",
"Opata": "opt",
"Opuuo": "lgn",
"Opón": "sai-opo",
"Orang Seletar": "ors",
"Oraon Sadri": "sdr",
"Orejón": "ore",
"Oring": "org",
"Oriya Adivasi": "ort",
"Orléanais": "roa-orl",
"Ormu": "orz",
"Ormuri": "oru",
"Oro": "orx",
"Oro Win": "orw",
"Oroch": "oac",
"Oroha": "ora",
"Orok": "oaa",
"Orokaiva": "okv",
"Oroko": "bdu",
"Orokolo": "oro",
"Oromo": "om",
"Oroqen": "orh",
"Orowe": "bpk",
"Oruma": "orr",
"Orya": "ury",
"Osage": "osa",
"Osamayi": "syx",
"Osatu": "ost",
"Osci": "osc",
"Osing": "osi",
"Ososo": "oso",
"Ossetia": "os",
"Ossetia Kuno": "oos",
"Ot Danum": "otd",
"Otank": "uta",
"Oti": "oti",
"Oti-Volta Purba": "nic-ovo-pro",
"Oti-Volta Timur Purba": "nic-eov-pro",
"Oto-Manguean Purba": "omq-pro",
"Oto-Pamean Purba": "omq-otp-pro",
"Otomaco": "sai-oto",
"Otomi Estado de México": "ots",
"Otomi Ixtenco": "otz",
"Otomi Mezquital": "ote",
"Otomi Purba": "oto-otm-pro",
"Otomi Querétaro": "otq",
"Otomi Tanah Tinggi Timur": "otm",
"Otomi Temoaya": "ott",
"Otomi Tenango": "otn",
"Otomi Texcatepec": "otx",
"Otomi Tilapa": "otl",
"Otomian Purba": "oto-pro",
"Otoro": "otr",
"Ottawa": "otw",
"Otuke": "otu",
"Ouma": "oum",
"Oune": "oue",
"Owa": "stn",
"Owenia": "wsr",
"Owiniga": "owi",
"Oy": "oyb",
"Oya'oya": "oyy",
"Oyda": "oyd",
"Ozumacín Chinantec": "chz",
"Pa": "ppt",
"Pa Di": "pdi",
"Pa'a": "pqa",
"Pa-Hng": "pha",
"Paama": "pma",
"Paasaal": "sig",
"Pacahuara": "pcp",
"Pacoh": "pac",
"Padoe": "pdo",
"Paelignian": "pgn",
"Paeonia": "ine-pae",
"Pagi": "pgi",
"Pagibete": "pae",
"Pagu": "pgu",
"Pahari-Potwari": "phr",
"Paharia Sawriya": "mjt",
"Pahi": "lgt",
"Pahlavani": "phv",
"Pai Tavytera": "pta",
"Paicî": "pri",
"Paikoneka": "awd-pai",
"Paipai": "ppi",
"Paite": "pck",
"Paiute Utara": "pao",
"Paiwan": "pwn",
"Pak-Tong": "pkg",
"Pakanha": "pkn",
"Pakanik Purba": "mkh-pkn-pro",
"Paku": "pku",
"Pal": "abw",
"Palaic": "plq",
"Palaka Senoufo": "plr",
"Palantla Chinantec": "cpa",
"Palau": "pau",
"Palaungik Purba": "mkh-pal-pro",
"Palawano Barat Daya": "plv",
"Palawano Brooke's Point": "plw",
"Paleni": "pnl",
"Palenquero": "pln",
"Pali": "pi",
"Palikur": "plu",
"Paliyan": "pcf",
"Pallanganmiddang": "pmd",
"Palor": "fap",
"Palta": "sai-pal",
"Palu'e": "ple",
"Paluan": "plz",
"Palya Bareli": "bpx",
"Pam": "pmn",
"Pama-Nyunga Purba": "aus-pam-pro",
"Pambia": "pmb",
"Pame Tengah": "pbs",
"Pame Utara": "pmq",
"Pamigua": "sai-pam",
"Pamlico": "pmk",
"Pamona": "pmf",
"Pamosu": "hih",
"Pana (Afrika Barat)": "pnq",
"Pana (Afrika Tengah)": "pnz",
"Panamint": "par",
"Panare": "pbh",
"Panará": "kre",
"Panasuan": "psn",
"Panawa": "pwb",
"Pancana": "pnp",
"Panchpargania": "tdb",
"Pande": "bkj",
"Pangasinan": "pag",
"Pangseng": "pgs",
"Pangutaran Sama": "slm",
"Pangwa": "pbr",
"Pangwali": "pgg",
"Panim": "pnr",
"Paniya": "pcg",
"Pankararé": "pax",
"Pankararú": "paz",
"Pankhu": "pkh",
"Pannei": "pnc",
"Panobo": "pno",
"Panyi Bai": "bfc",
"Panyjima": "pnw",
"Panzaleo": "sai-pnz",
"Pao": "ppa",
"Papantla Totonac": "top",
"Papapana": "ppn",
"Papar": "dpp",
"Papasena": "pas",
"Papel": "pbo",
"Papi": "ppe",
"Papiamentu": "pap",
"Papitalai": "pat",
"Papora": "ppu",
"Papuan Malay": "pmy",
"Papuma": "ppm",
"Para Naga": "pzn",
"Parachi": "prc",
"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",
"Paresi-Waura Purba": "awd-prw-pro",
"Parkari Koli": "kvx",
"Parsi": "fa",
"Parsi Kuno": "peo",
"Parsi Pertengahan": "pal",
"Parthia": "xpr",
"Parya": "paq",
"Pashayi Barat Daya": "psh",
"Pashayi Tenggara": "psi",
"Pashayi Timur Laut": "aee",
"Pashto": "ps",
"Pasi": "psq",
"Pasifik Tengah Purba": "poz-pcc-pro",
"Pass Valley Yali": "yac",
"Pasé": "awd-pas",
"Patagón": "sai-ptg",
"Patamona": "pbc",
"Patani": "ptn",
"Pataxó Hã-Ha-Hãe": "pth",
"Patep": "ptp",
"Pathan Purba": "ira-pat-pro",
"Pathiya": "pty",
"Pattani": "lae",
"Pattapu": "ptq",
"Patwin": "pwi",
"Paulohi": "plh",
"Paumarí": "pad",
"Paunaca": "pnk",
"Pauri Bareli": "bfb",
"Pauserna": "psm",
"Pawaia": "pwa",
"Pawnee": "paw",
"Payaguá": "sai-pyg",
"Paynamar": "pmr",
"Pazeh": "pzh",
"Pe": "pai",
"Pear": "pcb",
"Pearik Purba": "mkh-pea-pro",
"Peba": "sai-peb",
"Pech": "pay",
"Pecheneg": "xpc",
"Peerapper": "xpw",
"Peere": "pfe",
"Pei": "ppq",
"Pekal": "pel",
"Pela": "bxd",
"Pele-Ata": "ata",
"Pemon": "aoc",
"Penan Barat": "pne",
"Penan Timur": "pez",
"Penchal": "pek",
"Pendau": "ums",
"Pengo": "peg",
"Penobscot": "aaq",
"Penrhyn": "pnh",
"Pentlatch": "ptw",
"Penuti Penara Purba": "nai-plp-pro",
"Perai": "wet",
"Peranakan Indonesian": "pea",
"Perancis": "fr",
"Perancis Kreol Karipúna": "kmv",
"Perancis Kreol Réunion": "rcf",
"Perancis Kreol San Miguel": "scf",
"Perancis Kuno": "fro",
"Perancis Pertengahan": "frm",
"Perema": "wom",
"Pericú": "nai-per",
"Permik Purba": "urj-prm-pro",
"Pero": "pip",
"Petapa Zapotec": "zpe",
"Petats": "pex",
"Petjo": "pey",
"Phai": "prt",
"Phake": "phk",
"Phala": "ypa",
"Phalura": "phl",
"Phana'": "phq",
"Phangduwali": "phw",
"Phende": "pem",
"Phimbi": "phm",
"Phoenicia": "phn",
"Phola": "ypg",
"Pholo": "yip",
"Phom": "nph",
"Phong-Kniang": "pnx",
"Phrae Pwo": "kjt",
"Phrygia": "xpg",
"Phu Thai": "pht",
"Phuan": "phu",
"Phudagi": "phd",
"Phuie": "pug",
"Phukha": "phh",
"Phuma": "ypm",
"Phunoi": "pho",
"Phuong": "phg",
"Phupa": "ypp",
"Phupha": "yph",
"Phuthi": "bnt-phu",
"Phuza": "ypz",
"Piamatsina": "ptr",
"Piame": "pin",
"Piapoco": "pio",
"Piaroa": "pid",
"Picard": "pcd",
"Picene Utara": "nrp",
"Picenum Selatan": "spx",
"Pichinglis": "fpe",
"Pichis Ashéninka": "cpu",
"Pict": "xpi",
"Picuris": "nai-pic",
"Pidgin Delaware": "dep",
"Pidgin Iha": "ihb",
"Pidgin Naga": "nag",
"Pidgin Ndyuka-Trio": "njt",
"Pidgin Onin": "onx",
"Piemonte": "pms",
"Pijao": "pij",
"Pije": "piz",
"Pijin": "pis",
"Pijin Basque-Iceland": "crp-bip",
"Pijin Cameroon": "wes",
"Pijin Greenland Barat": "crp-gep",
"Pijin Jerman Kiautschou": "crp-kia",
"Pijin Ladang Samoa": "crp-spp",
"Pijin Nigeria": "pcm",
"Pijin Portugis Macau": "crp-mpp",
"Pijin Rusia Taimyr": "crp-tpr",
"Pijin Rusia-China": "crp-cpr",
"Pilagá": "plg",
"Pileni": "piv",
"Pima Bajo": "pia",
"Pimbwe": "piw",
"Pinai-Hagahai": "pnn",
"Pingelapese": "pif",
"Pinghua Selatan": "csp",
"Pinghua Utara": "cnp",
"Pini": "pii",
"Pinigura": "pnv",
"Pinjarup": "pnj",
"Pinji": "pic",
"Pintiini": "pti",
"Pintupi-Luritja": "piu",
"Pinyin": "pny",
"Pipil": "ppl",
"Pirahã": "myp",
"Piratapuyo": "pir",
"Pirlatapa": "bxi",
"Piro": "pie",
"Pirriya": "xpa",
"Pisabo": "pig",
"Pisaflores Tepehua": "tpp",
"Piscataway": "psy",
"Pisidia": "xps",
"Pitcairn-Norfolk": "pih",
"Piti": "pcn",
"Pitjantjatjara": "pjt",
"Pitta-Pitta": "pit",
"Piu": "pix",
"Piya-Kwonci": "piy",
"Plains Cree": "crk",
"Plains Indian Sign Language": "psd",
"Plains Miwok": "pmw",
"Plapo Krumen": "ktj",
"Plateau Purba": "nic-plt-pro",
"Plautdietsch": "pdt",
"Pnar": "pbv",
"Pnar-Khasi-Lyngngam Purba": "aav-pkl-pro",
"Pochutec": "xpo",
"Podoko": "pbi",
"Pogali": "hkh",
"Pogolo": "poy",
"Pohnpei": "pon",
"Poitevin-Saintongeais": "roa-poi",
"Pokangá": "pok",
"Poke": "pof",
"Pol": "pmm",
"Polabia": "pox",
"Poland": "pl",
"Poland Kuno": "zlw-opl",
"Polci": "plj",
"Polinesia Purba": "poz-pol-pro",
"Polinesia Teras Purba": "poz-pnp-pro",
"Polinesia Timur Purba": "poz-pep-pro",
"Polonombauk": "plb",
"Pom": "pmo",
"Pomo Purba": "nai-pom-pro",
"Pomo Selatan": "peq",
"Pomo Tengah": "poo",
"Pomo Tenggara": "pom",
"Pomo Timur": "peb",
"Pomo Timur Laut": "pef",
"Pomo Utara": "pej",
"Ponam": "ncc",
"Pongu": "png",
"Ponosakan": "pns",
"Ponyo": "npg",
"Poqomam": "poc",
"Poqomchi'": "poh",
"Porohanon": "prh",
"Port Sandwich": "psw",
"Port Sorell": "xpl",
"Port Vato": "ptv",
"Portugis": "pt",
"Portugis Kreol Korlai": "vkp",
"Potawatomi": "pot",
"Potiguára": "pog",
"Poumei Naga": "pmx",
"Pouye": "bye",
"Powari": "pwr",
"Powhatan": "pim",
"Poyanáwa": "pyn",
"Pra-Samnit": "itc-psa",
"Prakrit": "pra",
"Prakrit Ashoka": "inc-ash",
"Prakrit Kamarupi": "inc-kam",
"Prakrit Niya": "pra-niy",
"Prasuni": "prn",
"Primitive Irish": "pgl",
"Principe": "pre",
"Prusia Kuno": "prg",
"Psikye": "kvj",
"Puare": "pux",
"Puebla Mazatec": "pbm",
"Puelche": "pue",
"Puinave": "pui",
"Puiron": "sit-prn",
"Pukapukan": "pkp",
"Pulabu": "pup",
"Pulau Bruny": "xpz",
"Pulau Flinders": "fln",
"Puluwat": "puw",
"Puma": "pum",
"Pumi Selatan": "pmj",
"Pumi Utara": "pmi",
"Pumpokol": "xpm",
"Pumé": "yae",
"Punan Aput": "pud",
"Punan Bah-Biau": "pna",
"Punan Batu": "pnm",
"Punan Merah": "puf",
"Punan Merap": "puc",
"Punan Tubu": "puj",
"Punik": "xpu",
"Punjabi": "pa",
"Punjabi Barat": "pnb",
"Punjabi Kuno": "inc-opa",
"Punu": "puu",
"Puoc": "puo",
"Puquina": "puq",
"Puragi": "pru",
"Purari": "iar",
"Purepecha": "pua",
"Puri": "prr",
"Purik": "prx",
"Purisimeño": "puy",
"Puroik Purba": "sit-khp-pro",
"Puruborá": "pur",
"Puruhá": "sai-prh",
"Purukotó": "sai-pur",
"Purum": "pub",
"Putai": "mfl",
"Putoh": "put",
"Putukwam": "afe",
"Puyo-Paekche": "xpp",
"Puyuma": "pyu",
"Pwaamei": "pme",
"Pwapwa": "pop",
"Pwo Barat": "pwo",
"Pwo Timur": "kjp",
"Pwo Utara": "pww",
"Pyapun": "pcw",
"Pye Krumen": "pye",
"Pyemmairre": "xpb",
"Pyen": "pyy",
"Pykobjê": "sai-pyk",
"Pyu": "pby",
"Páez": "pbb",
"Pááfang": "pfa",
"Päri": "lkr",
"Pémono": "pev",
"Pévé": "lme",
"Pökoot": "pko",
"Q'anjob'al": "kjb",
"Q'eqchi": "kek",
"Qabiao": "laq",
"Qaqet": "byx",
"Qatabanian": "xqt",
"Qiang Utara": "cng",
"Qibti": "cop",
"Qimant": "ahg",
"Quapaw": "qua",
"Quechua": "qu",
"Quechua Klasik": "qwc",
"Quechua Purba": "qwe-pro",
"Quenya": "qya",
"Quetzaltepec Mixe": "pxm",
"Queyu": "qvy",
"Quiavicuzas Zapotec": "zpj",
"Quileute": "qui",
"Quimbaya": "sai-qmb",
"Quinault": "qun",
"Quinigua": "nai-qng",
"Quinqui": "quq",
"Quioquitani-Quierí Zapotec": "ztq",
"Quiotepec Chinantec": "chq",
"Quiripi": "qyp",
"Quitemo": "sai-qtm",
"Rabha": "rah",
"Rabona": "sai-rab",
"Rade": "rad",
"Raetic": "xrr",
"Raga": "lml",
"Rahambuu": "raz",
"Rajasthan": "raj",
"Rajbanshi": "rjs",
"Raji": "rji",
"Rajong": "rjg",
"Rakahanga-Manihiki": "rkh",
"Rakhine": "rki",
"Ralte": "ral",
"Rama": "rma",
"Ramandi": "tks",
"Ramanos": "sai-ram",
"Ramoaaina": "rai",
"Ramopa": "kjx",
"Rampi": "lje",
"Rana Tharu": "thr",
"Rang": "rax",
"Rangkas": "rgk",
"Ranglong": "rnl",
"Rao": "rao",
"Rapa": "ray",
"Rapa Nui": "rap",
"Rapoisi": "kyx",
"Rapting": "rpt",
"Rara Bakati'": "lra",
"Rarotonga": "rar",
"Rasawa": "rac",
"Ratagnon": "btn",
"Ratahan": "rth",
"Rathawi": "rtw",
"Rathwi Bareli": "bgd",
"Raute": "rau",
"Ravula": "yea",
"Rawa": "rwo",
"Rawang": "raw",
"Rawat": "jnl",
"Rawo": "rwa",
"Rayón Zoque": "zor",
"Razajerdi": "rat",
"Razihi": "rzh",
"Reang": "ria",
"Reel": "atu",
"Rejang": "rej",
"Reli": "rei",
"Rema": "bow",
"Rembarunga": "rmb",
"Rembong": "reb",
"Remo": "rem",
"Rempi": "rmp",
"Remun": "lkj",
"Rendille": "rel",
"Rengao": "ren",
"Rennell": "mnv",
"Repanbitip": "rpn",
"Rer Bare": "rer",
"Rerau": "rea",
"Rerep": "pgk",
"Reshe": "res",
"Resígaro": "rgr",
"Retta": "ret",
"Reyesano": "rey",
"Riang": "ril",
"Riantana": "ran",
"Ribun": "rir",
"Rigwe": "iri",
"Rikbaktsa": "rkb",
"Ringgou": "rgu",
"Ririo": "rri",
"Ritarungo": "rit",
"Riung": "riu",
"Riverain Sango": "snj",
"Roglai Cacgia": "roc",
"Roglai Selatan": "rgs",
"Roglai Utara": "rog",
"Rogo": "rod",
"Rohingya": "rhg",
"Roma": "rmm",
"Romagnol": "rgn",
"Romam": "rmx",
"Romani": "rom",
"Romani Balkan": "rmn",
"Romani Baltik": "rml",
"Romani Carpathia": "rmc",
"Romani Finland Kalo": "rmf",
"Romani Sinte": "rmo",
"Romani Vlax": "rmy",
"Romani Wales": "rmw",
"Romania": "ro",
"Romano-Serbia": "rsb",
"Romanova": "rmv",
"Romansh": "rm",
"Romblomanon": "rol",
"Rombo": "rof",
"Romkun": "rmk",
"Ron": "cla",
"Ronga": "rng",
"Rongga": "ror",
"Rongpo": "rnp",
"Ronji": "roe",
"Roon": "rnn",
"Roria": "rga",
"Roro": "rro",
"Rotokas": "roo",
"Rotuma": "rtm",
"Rouran": "mis-rou",
"Roviana": "rug",
"Ruching Palaung": "pce",
"Rudbari": "rdb",
"Rufiji": "rui",
"Ruga": "ruh",
"Rukai": "dru",
"Rukai Purba": "dru-pro",
"Rukiga": "cgg",
"Ruma": "ruz",
"Rumai Palaung": "rbb",
"Rumu": "klq",
"Runga": "rou",
"Rungtu": "rtc",
"Rungus": "drg",
"Rungwa": "rnw",
"Rusia": "ru",
"Russenorsk": "crp-rsn",
"Rusyn": "rue",
"Rusyn Pannonia": "rsk",
"Ruthenia Kuno": "zle-ort",
"Rutul": "rut",
"Ruuli": "ruc",
"Ruwund": "rnd",
"Rwa": "rwk",
"Rwanda-Rundi": "rw",
"Ryukyu Purba": "jpx-ryu-pro",
"Sa": "sax",
"Sa'a": "apb",
"Sa'ban": "snv",
"Sa'och": "scq",
"Saafi-Saafi": "sav",
"Saam": "raq",
"Saamia": "lsm",
"Saanich": "str",
"Saare": "uss",
"Saaroa": "sxr",
"Saba": "saa",
"Sabaean": "xsa",
"Sabaki Purba": "bnt-sab-pro",
"Sabanê": "sae",
"Sabaot": "spy",
"Sabine": "sbv",
"Sabir": "pml",
"Sabu": "hvn",
"Sabüm": "sbo",
"Sacapulteco": "quv",
"Sadri": "sck",
"Saek": "skb",
"Saep": "spd",
"Safait": "sem-saf",
"Safaliba": "saf",
"Safeyoka": "apz",
"Safwa": "sbk",
"Sagala": "sbm",
"Sagalla": "tga",
"Sahaptin": "nai-spt",
"Saho": "ssy",
"Sahu": "saj",
"Saisiyat": "xsy",
"Sajau Basap": "sjb",
"Saka Purba": "xsc-sak-pro",
"Saka-Wakhi Purba": "xsc-skw-pro",
"Sakachep": "sch",
"Sakam": "skm",
"Sakao": "sku",
"Sakata": "skt",
"Sake": "sak",
"Sakizaya": "szy",
"Sala": "shq",
"Salako": "knx",
"Salampasu": "slx",
"Salar": "slr",
"Salas": "sgu",
"Salchuq": "slq",
"Saleman": "sau",
"Saliba (Colombia)": "slc",
"Saliba (New Guinea)": "sbe",
"Salinan": "sln",
"Salish Montana": "fla",
"Salish Puget Sound Selatan": "slh",
"Salish Purba": "sal-pro",
"Salt-Yui": "sll",
"Saluan": "loe",
"Salumá": "slj",
"Sam": "snx",
"Sama": "smd",
"Samal": "sem-sam",
"Samaritan Aramaic": "sam",
"Samarokena": "tmj",
"Samatao": "ysd",
"Samba": "smx",
"Sambal": "xsb",
"Sambalpuri": "spv",
"Sambe": "xab",
"Samberigi": "ssx",
"Samburu": "saq",
"Samei": "smh",
"Sami Akkala": "sia",
"Sami Inari": "smn",
"Sami Kemi": "sjk",
"Sami Kildin": "sjd",
"Sami Lule": "smj",
"Sami Pite": "sje",
"Sami Purba": "smi-pro",
"Sami Selatan": "sma",
"Sami Skolt": "sms",
"Sami Ter": "sjt",
"Sami Ume": "sju",
"Sami Utara": "se",
"Samiah Barat Purba": "sem-wes-pro",
"Samiah Purba": "sem-pro",
"Samo": "smq",
"Samo Selatan": "sbd",
"Samoa": "sm",
"Samogitia": "sgs",
"Samosa": "swm",
"Samoyed Purba": "syd-pro",
"Sampang": "rav",
"Samre": "sxm",
"Samtao": "stu",
"Samvedi": "smv",
"San Agustín Mixtepec Zapotec": "ztm",
"San Baltazar Loxicha Zapotec": "zpx",
"San Felipe Otlaltepec Popoloca": "pow",
"San Juan Atzingo Popoloca": "poe",
"San Juan Teita Mixtec": "xtj",
"San Luís Temalacayuca Popoloca": "pps",
"San Marcos Tlalcoyalco Popoloca": "pls",
"San Martín Itunyoso Triqui": "trq",
"San Pablo Güilá Zapotec": "ztu",
"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",
"Sanglechi-Ishkashimi Purba": "ira-sgi-pro",
"Sango": "sg",
"Sangu (Gabon)": "snq",
"Sangu (Tanzania)": "sbp",
"Sani": "ysn",
"Sanie": "ysy",
"Saniyo-Hiyewe": "sny",
"Sansi": "ssi",
"Sanskrit": "sa",
"Santa Catarina Albarradas Zapotec": "ztn",
"Santa Inés Ahuatempan Popoloca": "pca",
"Santa Inés Yatzechi Zapotec": "zpn",
"Santa María Quiegolani Zapotec": "zpi",
"Santa Teresa Cora": "cok",
"Santal": "sat",
"Santiago Xanica Zapotec": "zpr",
"Sanumá": "xsu",
"Sapa": "tys",
"Saparua": "spr",
"Sapará": "sai-sap",
"Sapo": "krn",
"Saponi": "spi",
"Saposa": "sps",
"Sapuan": "spu",
"Sapé": "spc",
"Sar": "mwm",
"Sara": "sre",
"Sara Kaba": "sbz",
"Sara Kaba Deme": "kwg",
"Sara Kaba Náà": "kwv",
"Sara Purba": "csu-sar-pro",
"Saraiki": "skr",
"Saramaccan": "srm",
"Sarangani Blaan": "bps",
"Sarasira": "zsa",
"Saraveca": "sar",
"Sarawak Utara Purba": "poz-swa-pro",
"Sarazi": "inc-sar",
"Sardinia": "sc",
"Sarikoli": "srh",
"Sarli": "sdf",
"Sarmatia Purba": "xsc-sar-pro",
"Sartang": "onp",
"Sarua": "swy",
"Sarudu": "sdu",
"Saruga": "sra",
"Sasak": "sas",
"Sasaru": "sxs",
"Sassari": "sdc",
"Satawal": "stw",
"Sateré-Mawé": "mav",
"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",
"Saxon Kuno": "osx",
"Saxon Transylvania": "gmw-tsx",
"Saxwe Gbe": "sxw",
"Saya": "say",
"Sayula Popoluca": "pos",
"Scanian": "gmq-scy",
"Schwaben Szatmár": "gmw-stm",
"Scots": "sco",
"Scots Pertengahan": "gmw-msc",
"Scythia Purba": "xsc-pro",
"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",
"Selkup Purba": "sel-pro",
"Selkup Selatan": "sel-sou",
"Selkup Utara": "sel-nor",
"Selonia": "sxl",
"Selungai Murut": "slg",
"Seluwasan": "sws",
"Sema": "nsm",
"Semai": "sea",
"Semandang": "sdm",
"Semaq Beri": "szc",
"Sembakung Murut": "sbr",
"Semelai": "sza",
"Semimi": "etz",
"Semnam": "ssm",
"Semnani": "smy",
"Sempan": "xse",
"Sena": "seh",
"Senara Sénoufo": "seq",
"Senaya": "syn",
"Sene": "sej",
"Seneca": "see",
"Sengele": "szg",
"Senggi": "snu",
"Sengo": "spk",
"Sengseng": "ssz",
"Senhaja De Srair": "sjs",
"Sensi": "sni",
"Sentani": "set",
"Sentinel": "std",
"Sepa (Indonesia)": "spb",
"Sepa (New Guinea)": "spe",
"Sepanyol": "es",
"Sepanyol Kuno": "osp",
"Sepen": "spm",
"Sepik Iwam": "iws",
"Sera": "sry",
"Seranan": "srn",
"Serbo-Croatia": "sh",
"Sere": "swf",
"Serer": "srr",
"Seri": "sei",
"Serili": "sve",
"Seroa": "kqu",
"Serrano": "ser",
"Seru": "szd",
"Serua": "srw",
"Serui-Laut": "seu",
"Seta": "stf",
"Setaman": "stm",
"Seti": "sbi",
"Severn Ojibwa": "ojs",
"Sewa Bay": "sew",
"Seze": "sze",
"Sha": "scw",
"Shabak": "sdb",
"Shabo": "sbf",
"Shahmirzadi": "srz",
"Shahrudi": "shm",
"Shall-Zwall": "sha",
"Shama-Sambuga": "sqa",
"Shamang": "xsh",
"Shambala": "ksb",
"Shan": "shn",
"Shanenawa": "swo",
"Shanga": "sho",
"Shangzhai": "jih",
"Sharanahua": "mcd",
"Shark Bay": "ssv",
"Sharwa": "swq",
"Shasta": "sht",
"Shasta Sungai Baru": "nai-nrs",
"Shatt": "shj",
"Shau": "sqh",
"Shawnee": "sjw",
"She": "shx",
"Shebayo": "awd-she",
"Shehri": "shv",
"Shekkacho": "moy",
"Sheko": "she",
"Shelta": "sth",
"Shendu": "shl",
"Sheni": "scv",
"Sherbro": "bun",
"Sherdukpen": "sdp",
"Sherpa": "xsr",
"Sheshi Kham": "kip",
"Shi": "shr",
"Shilluk": "shk",
"Shina": "scl",
"Shinasha": "bwo",
"Shipibo-Conibo": "shp",
"Shixing": "sxg",
"Sholaga": "sle",
"Shom Peng": "sii",
"Shona": "sn",
"Shoo-Minda-Nye": "bcv",
"Shor": "cjs",
"Shoshone": "shh",
"Shua": "shg",
"Shuar": "jiv",
"Shuba": "cbq",
"Shughni": "sgh",
"Shughni-Roshani Purba": "ira-shr-pro",
"Shughni-Yazghulami Purba": "ira-shy-pro",
"Shughni-Yazghulami-Munji Purba": "ira-sym-pro",
"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",
"Sicanian": "sxc",
"Sicel": "scx",
"Sichuan": "zhx-sic",
"Sicilia": "scn",
"Siculo-Arabic": "sqr",
"Sidamo": "sid",
"Sidetic": "xsd",
"Sie": "erg",
"Sierra Leone Sign Language": "sgx",
"Sighu": "sxe",
"Sihan": "snr",
"Sika": "ski",
"Sikaiana": "sky",
"Sikaritai": "tty",
"Sikiana": "sik",
"Sikkim": "sip",
"Sikule": "skh",
"Sila": "slt",
"Sileibi": "sbq",
"Silesia": "szl",
"Silimo": "wul",
"Siliput": "mkc",
"Silopi": "xsp",
"Silt'e": "stv",
"Simaa": "sie",
"Simba": "sbw",
"Simbali": "smg",
"Simbari": "smb",
"Simbo": "sbb",
"Simeku": "smz",
"Simeulue": "smr",
"Simte": "smt",
"Sinacantán": "nai-sin",
"Sinagen": "siu",
"Sinasina": "sst",
"Sinaugoro": "snc",
"Sindarin": "sjn",
"Sindhi": "sd",
"Sindhi Bhil": "sbn",
"Singa": "sgm",
"Singapore Sign Language": "sls",
"Singpho": "sgp",
"Sinhala": "si",
"Sinicahua Mixtec": "xti",
"Sininkere": "skq",
"Sino-Tibet Purba": "sit-pro",
"Sinyar": "sys",
"Sinúfana": "sai-sin",
"Sio": "xsi",
"Siona": "snn",
"Siouan-Catawba Purba": "nai-sca-pro",
"Sioux Purba": "sio-pro",
"Sipakapense": "qum",
"Sira": "swj",
"Siraya": "fos",
"Sirenik": "ysr",
"Siri": "sir",
"Siriano": "sri",
"Sirionó": "srq",
"Sirmauri": "srx",
"Siroi": "ssd",
"Sisaala Barat": "ssl",
"Sissala": "sld",
"Sissano": "sso",
"Situ": "sit-sit",
"Siuslaw": "sis",
"Sivandi": "siy",
"Siwai": "siw",
"Siwi": "siz",
"Siwu": "akp",
"Skagit": "ska",
"Skalvian": "svx",
"Ske": "ske",
"Skou": "skv",
"Slav Purba": "sla-pro",
"Slav Timur Kuno": "orv",
"Slavey Selatan": "xsl",
"Slavey Utara": "scs",
"Slavomolisano": "svm",
"Slavonic Gereja": "zls-chs",
"Slavonic Gereja Kuno": "cu",
"Slovak": "sk",
"Slovak Kuno": "zlw-osk",
"Slovakian Sign Language": "svk",
"Slovenia": "sl",
"Slovincia": "zlw-slv",
"Small Flowery Miao": "sfm",
"Smärky Kanum": "kxq",
"Snohomish": "sno",
"So'a": "ssq",
"Sobei": "sob",
"Sochiapam Chinantec": "cso",
"Soga": "xog",
"Sogdia": "sog",
"Sogdia Purba": "ira-sgc-pro",
"Sok": "skk",
"Sokna": "swn",
"Soko": "soc",
"Sokoro": "sok",
"Solano": "xso",
"Soli": "sby",
"Solon": "tuw-sol",
"Solong": "aaw",
"Solos": "sol",
"Som": "smc",
"Somali": "so",
"Somaloid Purba": "cus-som-pro",
"Somba-Siawari": "bmu",
"Somra": "ntx",
"Somrai": "sor",
"Somray": "smu",
"Somyev": "kgt",
"Sonaga": "ysg",
"Sonde": "shc",
"Songe": "sop",
"Songhai Purba": "son-pro",
"Songomeno": "soe",
"Songoora": "sod",
"Sonha": "soi",
"Sonia": "siq",
"Soninke": "snk",
"Sonsorol": "sov",
"Soo": "teu",
"Sop": "urw",
"Soqotri": "sqt",
"Sora": "srb",
"Sorbia Atas": "hsb",
"Sori-Harengan": "sbh",
"Sorkhei": "sqo",
"Sorothaptic": "sxo",
"Sos Kundi": "sdk",
"Sota Kanum": "krz",
"Sotho": "st",
"Sotho Utara": "nso",
"Sotho-Tswana Purba": "bnt-sts-pro",
"Sou": "sqq",
"Sougb": "mnx",
"Southeast Babar": "vbb",
"Southeast Ijo": "ijs",
"Southeastern Ixtlán Zapotec": "zpd",
"Southern Pame": "pmz",
"Southern Qiang": "qxs",
"Southern Rincon Zapotec": "zsr",
"Sowa": "sww",
"Sowanda": "sow",
"Spanish Sign Language": "ssp",
"Spiti Bhoti": "spt",
"Spokane": "spo",
"Squamish": "squ",
"Sri Lankan Sign Language": "sqs",
"Stau": "ero-tau",
"Stod Bhoti": "sbu",
"Stoney": "sto",
"Suabo": "szp",
"Suarmin": "seo",
"Suau": "swp",
"Suba": "sxb",
"Suba-Simbiti": "ssc",
"Subanen Tengah": "syb",
"Subanen Utara": "stb",
"Subanon Barat": "suc",
"Subanun Lapuyan": "laa",
"Subi": "xsj",
"Subiya": "sbs",
"Subtiaba": "sut",
"Sudan Tengah Purba": "csu-pro",
"Sudest": "tgo",
"Sudovian": "xsv",
"Suena": "sue",
"Suga": "sgi",
"Suganga": "sug",
"Sui": "swi",
"Suki": "sui",
"Suku": "sub",
"Sukuma": "suk",
"Sukur": "syk",
"Sukurum": "zsu",
"Sula": "szn",
"Sulawesi Selatan Purba": "poz-ssw-pro",
"Sulka": "sua",
"Sulod": "srg",
"Suluk": "tsg",
"Sulung": "suv",
"Suma": "sqm",
"Sumariup": "siv",
"Sumau": "six",
"Sumbawa": "smw",
"Sumbwa": "suw",
"Sumeria": "sux",
"Sunam": "ssk",
"Sunda": "su",
"Sunda Kuno": "osn",
"Sungai": "dmg",
"Sungwadaga": "mwo",
"Sungwadia": "mrb",
"Sunum": "ymn",
"Sunwar": "suz",
"Suoy": "syo",
"Supyire": "spp",
"Sur": "tdl",
"Surbakhal": "sbj",
"Suri": "suq",
"Surigaonon": "sgd",
"Surjapuri": "sjp",
"Sursurunga": "sgz",
"Suruahá": "swx",
"Surubu": "sde",
"Suruí": "sru",
"Suruí Do Pará": "mdz",
"Suryani Klasik": "syc",
"Susquehannock": "sqn",
"Susu": "sus",
"Susuami": "ssu",
"Suundi": "sdj",
"Suwawa": "swu",
"Suyá": "suy",
"Svan": "sva",
"Swabia": "swg",
"Swahili": "sw",
"Swampy Cree": "csw",
"Swazi": "ss",
"Sweden": "sv",
"Sweden Kuno": "gmq-osw",
"Swedish Sign Language": "swl",
"Swiss-French Sign Language": "ssr",
"Swiss-German Sign Language": "sgg",
"Swiss-Italian Sign Language": "slf",
"Swo": "sox",
"Syenara Senoufo": "shz",
"Sylhet": "syl",
"Sácata": "sai-sac",
"Sãotomense": "cri",
"Sìcìté Sénoufo": "sep",
"Sô": "sss",
"T'en": "tct",
"Ta-Arawak Purba": "awd-taa-pro",
"Taabwa": "tap",
"Taba": "mky",
"Tabancale": "sai-tab",
"Tabaru": "tby",
"Tabasaran": "tab",
"Tabasco Chontal": "chf",
"Tabasco Zoque": "zoq",
"Tabla": "tnm",
"Tabo": "knv",
"Tabriak": "tzx",
"Tacana": "tna",
"Tachawit": "shy",
"Tadaksahak": "dsq",
"Tadyawan": "tdy",
"Tae'": "rob",
"Tafi": "tcd",
"Tafreshi": "xme-taf",
"Tagabawa": "bgs",
"Tagal Murut": "mvv",
"Tagalog": "tl",
"Tagbanwa": "tbw",
"Tagbanwa Tengah": "tgt",
"Tagbu": "tbm",
"Tagdal": "tda",
"Tagish": "tgx",
"Tagoi": "tag",
"Tagwana Senoufo": "tgw",
"Tahiti": "ty",
"Tahltan": "tht",
"Tai": "taw",
"Tai Barat Daya Purba": "tai-swe-pro",
"Tai Daeng": "tyr",
"Tai Dam": "blt",
"Tai Do": "tyj",
"Tai Dón": "twh",
"Tai Hang Tong": "thc",
"Tai Hongjin": "tiz",
"Tai Laing": "tjl",
"Tai Loi": "tlq",
"Tai Long": "thi",
"Tai Nüa": "tdd",
"Tai Pao": "tpo",
"Tai Purba": "tai-pro",
"Tai Thanh": "tmm",
"Tai Ya": "cuu",
"Taikat": "aos",
"Tainae": "ago",
"Tairora Selatan": "omw",
"Tairora Utara": "tbg",
"Tairuma": "uar",
"Taishan": "zhx-tai",
"Taita": "dav",
"Taivoan": "tvx",
"Taje": "pee",
"Tajik": "tg",
"Tajio": "tdj",
"Tajuasohn": "tja",
"Takelma": "tkm",
"Takia": "tbc",
"Takik Purba": "azc-tak-pro",
"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",
"Taman Purba": "sdv-tmn-pro",
"Tamanaku": "tmz",
"Tamang Barat": "tdg",
"Tamang Barat Daya": "tsf",
"Tamang Barat Laut": "tmk",
"Tamang Gorkha Timur": "tge",
"Tamang Purba": "sit-tam-pro",
"Tamang Timur": "taj",
"Tamazight Atlas Tengah": "tzm",
"Tamazola Mixtec": "vmx",
"Tambas": "tdk",
"Tambora": "xxt",
"Tambotalo": "tls",
"Tami": "tmy",
"Tamil": "ta",
"Tamil Kuno": "oty",
"Tamki": "tax",
"Tamnim Citak": "tml",
"Tampias Lobu": "low",
"Tampuan": "tpu",
"Tampulma": "tpm",
"Tanacross": "tcb",
"Tanahmerah": "tcm",
"Tanapag": "tpv",
"Tanchangya": "tnv",
"Tandaganon": "tgn",
"Tandia": "tni",
"Tanema": "tnx",
"Tangale": "tan",
"Tangam": "sit-tgm",
"Tanggu": "tgu",
"Tangkhul Purba": "sit-tng-pro",
"Tangko": "tkx",
"Tanglang": "ytl",
"Tangoa": "tgp",
"Tangsa": "nst",
"Tanguat": "tbs",
"Tangut": "txg",
"Tangwang": "mis-tnw",
"Tani Purba": "sit-tan-pro",
"Tanimbili": "tbe",
"Tanimuca-Retuarã": "tnc",
"Tanjijili": "uji",
"Tanna Barat Daya": "nwi",
"Tanna Utara": "tnn",
"Taos": "twf",
"Tapachultec": "nai-tap",
"Taparita": "sai-tpr",
"Tapayuna": "sai-tap",
"Tapeba": "tbb",
"Tapei": "afp",
"Tapieté": "tpj",
"Tapirapé": "taf",
"Tar Gula": "kcm",
"Tara Baka": "bdh",
"Tarahumara Barat Daya": "twr",
"Tarahumara Tengah": "tar",
"Tarahumara Tenggara": "tcu",
"Tarahumara Utara": "thh",
"Tarairiú": "sai-trr",
"Tarangan Barat": "txn",
"Tarangan Timur": "tre",
"Taranoan Purba": "sai-tar-pro",
"Tarantino": "roa-tar",
"Tarao": "tro",
"Taraon": "mhu",
"Tareng": "tgr",
"Tariana": "tae",
"Tarifit": "rif",
"Tarjumo": "txj",
"Tarok": "yer",
"Taroko": "trv",
"Tarpia": "tpf",
"Tartessian": "txr",
"Taruma": "tdm",
"Tasawaq": "twq",
"Tashelhit": "shi",
"Tasmania": "xtz",
"Tasmania Tenggara": "xpf",
"Tasmate": "tmt",
"Tat": "ttt",
"Tataltepec Chatino": "cta",
"Tatana": "txx",
"Tatar": "tt",
"Tatar Crimea": "crh",
"Tatar Siberia": "sty",
"Tataviam": "azc-tat",
"Tati Kuno": "xme-ott",
"Tatik Purba": "xme-ttc-pro",
"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",
"Tawbuid Barat": "twb",
"Tawbuid Timur": "bnj",
"Taworta": "tbp",
"Tawoyan": "twy",
"Tay Khang": "tnu",
"Tayman": "sem-tay",
"Tayo": "cks",
"Taíno": "tnq",
"Tboli": "tbl",
"Tchitchege": "tck",
"Tchumbuli": "bqa",
"Te'un": "tve",
"Teanu": "tkw",
"Tebul Ure Dogon": "dtu",
"Tecpatlán Totonac": "tcw",
"Tedaga": "tuq",
"Tee": "tkq",
"Tefaro": "tfo",
"Tegali": "ras",
"Tehit": "kps",
"Tehuelche": "teh",
"Teiwa": "twe",
"Tejalapan Zapotec": "ztt",
"Teke Tengah": "nzu",
"Teke-Fuumu": "ifm",
"Teke-Kukuya": "kkw",
"Teke-Laali": "lli",
"Teke-Tege": "teg",
"Teke-Tsaayi": "tyi",
"Teke-Tyee": "tyx",
"Tektiteko": "ttc",
"Tela-Masbuar": "tvm",
"Telefol": "tlf",
"Telugu": "te",
"Telugu Kuno": "dra-ote",
"Teluk Malua": "mll",
"Teluti": "tlt",
"Tem": "kdh",
"Tembé": "tqb",
"Teme": "tdo",
"Temein": "teq",
"Temi": "soz",
"Temiar": "tea",
"Temne": "tem",
"Temoq": "tmo",
"Tempasuk Dusun": "tdu",
"Temuan": "tmw",
"Ten'edn": "tnz",
"Tene Kan Dogon": "dtk",
"Tenggarong Kutai Malay": "vkt",
"Tengger": "tes",
"Tenharim": "pah",
"Tenino": "tqn",
"Tenis": "tns",
"Tennet": "tex",
"Teochew": "nan-tws",
"Teop": "tio",
"Teor": "tev",
"Tepecano": "tep",
"Tepehua Huehuetla": "tee",
"Tepehuan Barat Daya": "tla",
"Tepehuan Tenggara": "stp",
"Tepehuan Utara": "ntp",
"Tepetotutla Chinantec": "cnt",
"Tepeuxila Cuicatec": "cux",
"Tepinapa Chinantec": "cte",
"Tepo Krumen": "ted",
"Tequistlatec": "nai-teq",
"Tera": "ttr",
"Terebu": "trb",
"Terei": "buo",
"Tereno": "ter",
"Teressa": "tef",
"Tereweng": "twg",
"Teribe": "tfr",
"Terik": "tec",
"Termanu": "twu",
"Ternate": "tft",
"Ternateño": "tmg",
"Tese": "keg",
"Teshenawa": "twc",
"Tetela": "tll",
"Tetete": "teb",
"Tetserret": "tez",
"Tetum": "tet",
"Tetun Dili": "tdt",
"Teushen": "sai-teu",
"Teutila Cuicatec": "cut",
"Tewa": "tew",
"Texistepec Popoluca": "poq",
"Texmelucan Zapotec": "zpz",
"Tha": "thy",
"Thachanadan": "thn",
"Thai": "th",
"Thai Selatan": "sou",
"Thai Song": "soa",
"Thai Utara": "nod",
"Thakali": "ths",
"Thamud": "sem-tha",
"Thangmi": "thf",
"Thao": "ssf",
"Tharaka": "thk",
"Tharrgari": "dhr",
"Thavung": "thm",
"Thawa": "xtv",
"Tho": "tou",
"Thompson": "thp",
"Thopho": "ytp",
"Thracian": "txh",
"Thu Lao": "tyl",
"Thulung": "tdh",
"Thurawal": "tbh",
"Thuri": "thu",
"Tiagba": "ahi",
"Tiale": "mnl",
"Tiang": "tbj",
"Tibea": "ngy",
"Tibet": "bo",
"Tibet Klasik": "xct",
"Tibet Kuno": "otb",
"Ticuna": "tca",
"Tidore": "tvo",
"Tidung Selatan": "itd",
"Tidung Utara": "ntd",
"Tiemacèwè Bozo": "boo",
"Tiene": "tii",
"Tifal": "tif",
"Tigak": "tgc",
"Tigre": "tig",
"Tigrinya": "ti",
"Tii": "txq",
"Tijaltepec Mixtec": "xtl",
"Tikar": "tik",
"Tikopia": "tkp",
"Tillamook": "til",
"Tilquiapan Zapotec": "zts",
"Tilung": "tij",
"Tima": "tms",
"Timbe": "tim",
"Timor Pidgin": "tvy",
"Timote": "sai-tim",
"Timucua": "tjm",
"Tinagas Kota Marudu": "ktr",
"Tinani": "lbf",
"Tindi": "tin",
"Tingui-Boto": "tgv",
"Tinigua": "tit",
"Tinoc Kallahan": "tne",
"Tinputz": "tpz",
"Tipai": "nai-tip",
"Tippera": "tpe",
"Tira": "tic",
"Tirahi": "tra",
"Tiranige Diga Dogon": "tde",
"Tirax": "mme",
"Tircul": "pyx",
"Tiri": "cir",
"Tiruray": "tiy",
"Tita": "tdq",
"Titan": "ttv",
"Tiv": "tiv",
"Tiwa": "lax",
"Tiwa Selatan": "tix",
"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",
"Tlapanec Malinaltepec": "tcf",
"Tlingit": "tli",
"To": "toz",
"To'abaita": "mlu",
"Toaripi": "tqo",
"Toba": "tob",
"Toba-Maskoy": "tmf",
"Tobanga": "tng",
"Tobati": "tti",
"Tobelo": "tlb",
"Tobian": "tox",
"Tobilung": "tgb",
"Tobo": "tbv",
"Tocharia A": "xto",
"Tocharia B": "txb",
"Tocharia Purba": "ine-toc-pro",
"Tocho": "taz",
"Toda": "tcx",
"Todrah": "tdr",
"Tofa": "kim",
"Tofanma": "tlg",
"Tofin Gbe": "tfi",
"Togbo-Vara Banda": "tor",
"Togo Tengah Purba": "alv-gtm-pro",
"Togoyo": "tgy",
"Tojolabal": "toj",
"Tok Pisin": "tpi",
"Toka-Leya": "dov",
"Tokano": "zuh",
"Tokelau": "tkl",
"Toki Pona": "tok",
"Toku-No-Shima": "tkn",
"Tol": "jic",
"Tolai": "ksd",
"Tolaki": "lbw",
"Tolomako": "tlm",
"Tolowa": "tol",
"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": "to",
"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",
"Torricelli": "tei",
"Torricelli Yau": "yyu",
"Torwali": "trw",
"Torá": "trz",
"Tosu": "sit-tos",
"Totela": "ttl",
"Toto": "txo",
"Totoli": "txe",
"Totomachapan Zapotec": "zph",
"Totonac Barat": "tqt",
"Totoro": "ttk",
"Totozoquean Purba": "nai-tot-pro",
"Touo": "tqu",
"Toura": "neb",
"Toussiana Selatan": "wib",
"Toussiana Utara": "tsp",
"Towei": "ttn",
"Trans-New Guinea Purba": "ngf-pro",
"Translingual": "mul",
"Traveller Scottish": "trl",
"Tregami": "trm",
"Tremembé": "tme",
"Trieng": "stg",
"Trimuris": "tip",
"Tring": "tgq",
"Tringgus": "trx",
"Trinitario": "trn",
"Tripuri Awal": "xtr",
"Triqui Purba": "omq-tri-pro",
"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",
"Tsez Purba": "cau-tsz-pro",
"Tshangla": "tsj",
"Tshobdun": "sit-tsh",
"Tshwa": "hio",
"Tsikimba": "kdl",
"Tsimané": "cas",
"Tsimshian": "tsi",
"Tsimshianik Purba": "nai-tsi-pro",
"Tsishingini": "tsw",
"Tso": "ldp",
"Tsogo": "tsv",
"Tsonga": "ts",
"Tsotsitaal": "fly",
"Tsou": "tsu",
"Tsum": "ttz",
"Tsuut'ina": "srs",
"Tsuvadi": "tvd",
"Tsuvan": "tsh",
"Tswa": "tsc",
"Tswana": "tn",
"Tswapong": "two",
"Tuamotuan": "pmt",
"Tuareg": "tmh",
"Tubar": "tbu",
"Tucano": "tuo",
"Tugen": "tuy",
"Tugun": "tzn",
"Tugutil": "tuj",
"Tuhua Shaozhou": "zhx-sht",
"Tujia Selatan": "tjs",
"Tujia Utara": "tji",
"Tukang Besi Selatan": "bhq",
"Tukang Besi Utara": "khc",
"Tuki": "bag",
"Tukpa": "tpq",
"Tukudede": "tkd",
"Tukumanféd": "tkf",
"Tula": "tul",
"Tulehu": "tlu",
"Tulishi": "tey",
"Tulu": "tcy",
"Tulu-Bohuai": "rak",
"Tulua": "aus-tul",
"Tuma-Irumu": "iou",
"Tumak": "tmc",
"Tumbuka": "tum",
"Tumi": "kku",
"Tumleo": "tmq",
"Tumshuq": "xtq",
"Tumtum": "tbr",
"Tumulung Sisaala": "sil",
"Tunebo Barat": "tnb",
"Tunebo Tengah": "tuf",
"Tunen": "tvu",
"Tungag": "lcm",
"Tunggare": "trt",
"Tungus Purba": "tuw-pro",
"Tunia": "tug",
"Tunica": "tun",
"Tunjung": "tjg",
"Tunni": "tqq",
"Tunumiisut": "esx-tut",
"Tunzu": "dza",
"Tuoba": "mis-tuo",
"Tuotomb": "ttf",
"Tuparí": "tpr",
"Tupi Kuno": "tpw",
"Tupi Purba": "tup-pro",
"Tupi-Guarani Purba": "tup-gua-pro",
"Tupinambá": "tpn",
"Tupinikin": "tpk",
"Tupuri": "tui",
"Turaka": "trh",
"Turdetania": "mis-tdt",
"Turdulia": "mis-tdl",
"Turi": "trd",
"Turiwára": "twt",
"Turk Kuno": "otk",
"Turka": "tuz",
"Turkana": "tuv",
"Turki": "tr",
"Turki Anatolia Kuno": "trk-oat",
"Turki Khorasan": "kmz",
"Turki Usmaniyah": "ota",
"Turkik Purba": "trk-pro",
"Turkmen": "tk",
"Turoyo": "tru",
"Turumsa": "tqm",
"Turung": "try",
"Tuscarora": "tus",
"Tutchone Selatan": "tce",
"Tutchone Utara": "ttm",
"Tutelo": "tta",
"Tutong": "ttg",
"Tutsa Naga": "tvt",
"Tutuba": "tmi",
"Tututni": "tuu",
"Tuva": "tyv",
"Tuvalu": "tvl",
"Tuwali Ifugao": "ifk",
"Tuwari": "tww",
"Tuwuli": "bov",
"Tuxináwa": "tux",
"Tuxá": "tud",
"Tuyuca": "tue",
"Tuyuhun": "mis-tuh",
"Twana": "twa",
"Twendi": "twn",
"Tyap": "kcg",
"Tyaraity": "woa",
"Tyerrernotepanner": "xph",
"Tz'utujil": "tzj",
"Tzeltal": "tzh",
"Tzotzil": "tzo",
"Tày": "tyz",
"Tày Tac": "tyt",
"Tây Bồi": "tas",
"Téén": "lor",
"Tübatulabal": "tub",
"U": "uuu",
"Uab Meto": "aoz",
"Uamué": "uam",
"Uare": "ksj",
"Ubaghara": "byc",
"Ubang": "uba",
"Ubangi Purba": "nic-ubg-pro",
"Ubi": "ubi",
"Ubir": "ubr",
"Ubykh": "uby",
"Ucayali-Yurúa Ashéninka": "cpb",
"Uda": "uda",
"Udi": "udi",
"Udihe": "ude",
"Udmurt": "udm",
"Uduk": "udu",
"Ufim": "ufi",
"Ugandan Sign Language": "ugn",
"Ugarit": "uga",
"Ughele": "uge",
"Ugrik Purba": "urj-ugr-pro",
"Uhami": "uha",
"Uisai": "uis",
"Ujir": "udj",
"Ukaan": "kcf",
"Ukhwejo": "ukh",
"Ukit": "umi",
"Ukpe-Bayobiri": "ukp",
"Ukpet-Ehom": "akd",
"Ukraine": "uk",
"Ukrainian Sign Language": "ukl",
"Ukue": "uku",
"Ukuriguma": "ukg",
"Ukwa": "ukq",
"Ukwuani-Aboh-Ndoni": "ukw",
"Ulau-Suain": "svb",
"Ulch": "ulc",
"Uldeme": "udl",
"Ulithian": "uli",
"Ullatan": "ull",
"Ulumanda'": "ulm",
"Ulwa": "ulw",
"Uma": "ppk",
"Uma' Lasan": "xky",
"Uma' Lung": "ulu",
"Umatilla": "uma",
"Umbindhamu": "umd",
"Umbri": "xum",
"Umbu-Ungu": "ubu",
"Umbugarla": "umr",
"Umbundu": "umb",
"Umbuygamu": "umg",
"Umeda": "upi",
"Umiida": "xud",
"Umon": "umm",
"Umotína": "umo",
"Umpila": "ump",
"Una": "mtg",
"Unami": "unm",
"Unde Kaili": "unz",
"Uneapa": "bbn",
"Uneme": "une",
"Unggaranggu": "xun",
"Unggumi": "xgu",
"Unserdeutsch": "uln",
"Unua": "onu",
"Unubahe": "unu",
"Uokha": "uok",
"Upper Chehalis": "cjh",
"Upper Grand Valley Dani": "dna",
"Upper Kuskokwim": "kuu",
"Upper Necaxa Totonac": "tku",
"Upper Ta'oih": "tth",
"Upper Tanana": "tau",
"Upper Taromi": "tov",
"Upper Umpqua": "xup",
"Ura (Papua New Guinea)": "uro",
"Ura (Vanuatu)": "uur",
"Uradhi": "urf",
"Urak Lawoi'": "urk",
"Urali": "url",
"Uralik Purba": "urj-pro",
"Urapmin": "urm",
"Urarina": "ura",
"Urartian": "xur",
"Urat": "urt",
"Urdu": "ur",
"Urhobo": "urh",
"Uri": "uvh",
"Urigina": "urg",
"Urim": "uri",
"Urimo": "urx",
"Urningangg": "urc",
"Uru": "ure",
"Uru-Eu-Wau-Wau": "urz",
"Uru-Pa-In": "urp",
"Uruangnirin": "urn",
"Uruava": "urv",
"Urubú-Kaapor": "urb",
"Uruguayan Sign Language": "ugy",
"Urum": "uum",
"Urumi": "uru",
"Usaghade": "usk",
"Usan": "wnu",
"Usarufa": "usa",
"Ushojo": "ush",
"Usila Chinantec": "cuc",
"Uspanteco": "usp",
"Usui": "usi",
"Utarmbung": "omo",
"Ute": "ute",
"Utik Purba": "nai-utn-pro",
"Uto-Aztek Purba": "azc-pro",
"Utu": "utu",
"Uvbie": "evh",
"Uvea Barat": "uve",
"Uwinymil": "aus-uwi",
"Uya": "usu",
"Uyajitaya": "duk",
"Uyghur": "ug",
"Uyghur Kuno": "oui",
"Uzbek": "uz",
"Uzekwe": "eze",
"Vaagri Booli": "vaa",
"Vaghri": "vgr",
"Vaghua": "tva",
"Vagla": "vag",
"Vai": "vai",
"Vaie": "bny",
"Vaiphei": "vap",
"Vale": "vae",
"Valencian Sign Language": "vsv",
"Valle Nacional Chinantec": "cvn",
"Valley Maidu": "vmv",
"Valman": "van",
"Valpei": "vlp",
"Valyria Tinggi": "art-vlh",
"Vamale": "mkt",
"Vame": "mlr",
"Vandalic": "xvn",
"Vangunu": "mpr",
"Vanimo": "vam",
"Vanji": "ira-wnj",
"Vanuma": "vau",
"Vao": "vao",
"Varhadi": "vah",
"Varisi": "vrs",
"Varli": "vav",
"Vasavi": "vas",
"Vayu": "vay",
"Veddah": "ved",
"Vehes": "val",
"Vemgo-Mabas": "vem",
"Venda": "ve",
"Venetic": "xve",
"Veneto": "vec",
"Venezuelan Sign Language": "vsl",
"Ventureño": "veo",
"Veps": "vep",
"Vera'a": "vra",
"Vestinian": "xvs",
"Vidunda": "vid",
"Viemo": "vig",
"Vietik Purba": "mkh-vie-pro",
"Vietnam": "vi",
"Vietnam Pertengahan": "mkh-mvi",
"Vilamovian": "wym",
"Vilela": "vil",
"Vili": "vif",
"Vishavan": "vis",
"Viti": "vit",
"Vitou": "vto",
"Volapük": "vo",
"Volscian": "xvo",
"Volta-Congo Purba": "nic-vco-pro",
"Volta-Niger Purba": "alv-von-pro",
"Vono": "kch",
"Voro": "vor",
"Vot": "vot",
"Vumbu": "vum",
"Vunapu": "vnp",
"Vunjo": "vun",
"Vurës": "msn",
"Vute": "vut",
"Võro": "vro",
"Wa": "wbm",
"Wa'ema": "wag",
"Waama": "wwa",
"Waamwang": "wmn",
"Wab": "wab",
"Wabo": "wbb",
"Waboda": "kmx",
"Waci Gbe": "wci",
"Wadaginam": "wdg",
"Waddar": "wbq",
"Wadi Wadi": "xwd",
"Wadiyara Koli": "kxp",
"Wadjabangayi": "wdy",
"Wadjiginy": "wdj",
"Wadjigu": "wdu",
"Wae Rana": "wrx",
"Waffa": "waj",
"Wagawaga": "wgb",
"Wagaya": "wga",
"Wagdi": "wbr",
"Wageman": "waq",
"Wagi": "fad",
"Wahgi": "wgi",
"Wahgi Utara": "whg",
"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",
"Wales": "cy",
"Wales Kuno": "owl",
"Wales Pertengahan": "wlm",
"Wali (Ghana)": "wlx",
"Wali (Sudan)": "wll",
"Waling": "wly",
"Walio": "wla",
"Walla Walla": "waa",
"Wallis": "wls",
"Walloon": "wa",
"Walmajarri": "wmt",
"Wam": "wmo",
"Wamas": "wmc",
"Wambaya": "wmb",
"Wambon": "wms",
"Wambule": "wme",
"Wamey": "cou",
"Wamin": "wmi",
"Wampar": "lbq",
"Wampur": "waz",
"Wan": "wan",
"Wanambre": "wnb",
"Wanap": "wnp",
"Wancho": "nnp",
"Wanda": "wbh",
"Wandala": "mfi",
"Wandamen": "wad",
"Wandarang": "wnd",
"Wandji": "wdd",
"Waneci": "wne",
"Wanga": "lwg",
"Wanggamala": "wnm",
"Wangganguru": "wgg",
"Wanggom": "wng",
"Wangkayutyuru": "wky",
"Wangkumara": "xwk",
"Wanham": "sai-wnm",
"Wanji": "wbi",
"Wanman": "wbt",
"Wannu": "jub",
"Wano": "wno",
"Wantoat": "wnc",
"Wanukaka": "wnk",
"Wanyi": "wny",
"Wané": "hwa",
"Wapan": "juk",
"Wapishana": "wap",
"Wappo": "wao",
"War-Jaintia": "aml",
"Wara": "wbf",
"Warao": "wba",
"Warapu": "wra",
"Waray Sorsogon": "srv",
"Waray-Waray": "war",
"Wardaman": "wrr",
"Wardandi": "wxw",
"Warekena Kuno": "awd-war",
"Warembori": "wsa",
"Wari'": "pav",
"Waris": "wrs",
"Waritai": "wbe",
"Wariyangga": "wri",
"Warji": "wji",
"Warkay-Bipim": "bgv",
"Warlmanpa": "wrl",
"Warlpiri": "wbp",
"Warluwara": "wrb",
"Warnang": "wrn",
"Waropen": "wrp",
"Warray": "wrz",
"Warrgamay": "wgy",
"Warrwa": "wwr",
"Waru": "wru",
"Warumungu": "wrm",
"Waruna": "wrv",
"Warungu": "wrg",
"Warwar Feni": "hrw",
"Wasa": "wss",
"Wasco-Wishram": "wac",
"Washo": "was",
"Waskia": "wsk",
"Wastek": "hus",
"Wasu": "wsu",
"Watakataui": "wtk",
"Watam": "wax",
"Wathaurong": "wth",
"Watiwa": "wtf",
"Watubela": "wah",
"Watut Selatan": "mcy",
"Watut Tengah": "mpl",
"Watut Utara": "una",
"Waube": "kop",
"Wauja": "wau",
"Wauyai": "wuy",
"Wawa": "www",
"Wawonii": "wow",
"Waxianghua": "wxa",
"Wayampi": "oym",
"Wayana": "way",
"Wayanad Chetti": "ctt",
"Wayoró": "wyr",
"Wayumara": "sai-way",
"Wedau": "wed",
"Weh": "weh",
"Welaung": "weu",
"Weliki": "klh",
"Wemale": "weo",
"Wemba-Wemba": "xww",
"Weme Gbe": "wem",
"Wendat": "wdt",
"Weri": "wer",
"Wersing": "kvw",
"Western Juxtlahuaca Mixtec": "jmx",
"Wewaw": "wea",
"Weyewa": "wew",
"Whitesands": "tnp",
"Wiarumus": "tua",
"Wichita": "wic",
"Wichí Lhamtés Güisnay": "mzh",
"Wichí Lhamtés Nocten": "mtp",
"Wichí Lhamtés Vejoz": "wlv",
"Wik-Epa": "wie",
"Wik-Iiyanh": "wij",
"Wik-Keyangan": "wif",
"Wik-Me'anha": "wih",
"Wik-Mungkan": "wim",
"Wik-Ngathana": "wig",
"Wikalkan": "wik",
"Wikngenchera": "wua",
"Wilawila": "wil",
"Winnebago": "win",
"Wintu": "wnw",
"Winyé": "kst",
"Wiradhuri": "wrh",
"Wiraféd": "wir",
"Wirangu": "wgu",
"Wiru": "wiu",
"Wirö": "wpc",
"Witotoan Purba": "sai-wit-pro",
"Wiwa": "mbp",
"Wiyot": "wiy",
"Woccon": "xwc",
"Wogamusin": "wog",
"Wogeo": "woc",
"Woi": "wbw",
"Woiwurrung": "wyi",
"Wojenaka": "jod",
"Wolane": "wle",
"Wolani": "wod",
"Wolaytta": "wal",
"Woleai": "woe",
"Wolio": "wlo",
"Wolof": "wo",
"Womo": "wmx",
"Wong-gie": "aus-won",
"Wongo": "won",
"Woods Cree": "cwd",
"Woria": "wor",
"Worimi": "kda",
"Worodougou": "jud",
"Worora": "wro",
"Wotapuri-Katarqalai": "wsv",
"Wotu": "wtw",
"Woun Meu": "noa",
"Wu": "wuu",
"Wudu": "wud",
"Wuhuan": "mis-wuh",
"Wulguru": "aus-wul",
"Wuliwuli": "wlu",
"Wulna": "wux",
"Wumboko": "bqm",
"Wumbvu": "wum",
"Wumeng Nasu": "ywu",
"Wunai Bunu": "bwn",
"Wunambal": "wub",
"Wurrugu": "wur",
"Wusa Nasu": "yig",
"Wushi": "bse",
"Wusi": "wsi",
"Wutung": "wut",
"Wutunhua": "wuh",
"Wuvulu-Aua": "wuv",
"Wyandot": "wya",
"Wára": "tci",
"Wãpha": "juw",
"Wè Barat": "wec",
"Wè Selatan": "gxx",
"Wè Utara": "wob",
"Xakriabá": "xkr",
"Xamtanga": "xan",
"Xanaguía Zapotec": "ztg",
"Xavante": "xav",
"Xerénte": "xer",
"Xetá": "xet",
"Xhosa": "xh",
"Xianbei": "mis-xbi",
"Xiang": "hsn",
"Xibe": "sjo",
"Xicotepec de Juárez Totonac": "too",
"Xinca": "xin",
"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âcùù": "ane",
"Xârâgurè": "axx",
"Yaa": "iyx",
"Yaaku": "muu",
"Yabarana": "yar",
"Yabaâna": "ybn",
"Yaben": "ybm",
"Yabong": "ybo",
"Yabula Yabula": "yxy",
"Yace": "ekr",
"Yaeyama": "rys",
"Yafi": "wfg",
"Yagara": "yxg",
"Yagaria": "ygr",
"Yagnobi": "yai",
"Yagomi": "ygm",
"Yagua": "yad",
"Yagwoia": "ygw",
"Yahadian": "ner",
"Yahang": "rhp",
"Yahuna": "ynu",
"Yaka": "yaf",
"Yakaikeke": "ykk",
"Yakan": "yka",
"Yakima": "yak",
"Yakkha": "ybh",
"Yakoma": "yky",
"Yakut": "sah",
"Yala": "yba",
"Yalahatan": "jal",
"Yalakalore": "xyl",
"Yalarnnga": "ylr",
"Yale": "nce",
"Yaleba": "ylb",
"Yali Ninia": "nlk",
"Yalunka": "yal",
"Yalálag Zapotec": "zpu",
"Yamap": "ymp",
"Yamba": "yam",
"Yambes": "ymb",
"Yambeta": "yat",
"Yamdena": "jmd",
"Yameo": "yme",
"Yami": "tao",
"Yaminahua": "yaa",
"Yamongeri": "ymg",
"Yamphu": "ybi",
"Yan-nhangu": "jay",
"Yana": "ynn",
"Yanda": "yda",
"Yanda Dogon": "dym",
"Yandjibara": "xyb",
"Yandruwandha": "ynd",
"Yanesha'": "ame",
"Yangben": "yav",
"Yangkaal": "aus-ynk",
"Yangkam": "bsx",
"Yangman": "jng",
"Yango": "yng",
"Yangulam": "ynl",
"Yangum Dey": "yde",
"Yangum Gel": "ygl",
"Yankunytjatjara": "kdd",
"Yanomámi": "wca",
"Yansi": "yns",
"Yanyuwa": "jao",
"Yao": "yao",
"Yao (Amerika Selatan)": "sai-yao",
"Yaouré": "yre",
"Yapese": "yap",
"Yapunda": "yev",
"Yaqay": "jaq",
"Yaqui": "yaq",
"Yarawata": "yrw",
"Yareba": "yrb",
"Yarli": "yxl",
"Yarluyandi": "yry",
"Yaroamë": "yro",
"Yarumá": "sai-yar",
"Yarí": "yri",
"Yasa": "yko",
"Yatay": "yty",
"Yatee Zapotec": "zty",
"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",
"Yemba": "ybb",
"Yemsa": "jnj",
"Yendang": "yen",
"Yeni": "yei",
"Yeniche": "yec",
"Yenisei Purba": "qfa-yen-pro",
"Yerakai": "yra",
"Yerong": "yrn",
"Yerukula": "yeu",
"Yeskwa": "yes",
"Yessan-Mayo": "yss",
"Yetfa": "yet",
"Yevanic": "yej",
"Yeyi": "yey",
"Yiddish": "yi",
"Yidgha": "ydg",
"Yidiny": "yii",
"Yil": "yll",
"Yimas": "yee",
"Yimchungru Naga": "yim",
"Yinchia": "yin",
"Yindjibarndi": "yij",
"Yindjilandji": "yil",
"Yine": "pib",
"Yinggarda": "yia",
"Yinhawangka": "ywg",
"Yiningayi": "ygi",
"Yinwum": "yxm",
"Yir-Yoront": "yiy",
"Yirandali": "ljw",
"Yis": "yis",
"Yitha Yitha": "xth",
"Yoba": "yob",
"Yogad": "yog",
"Yoidik": "ydk",
"Yoke": "yki",
"Yokuts Buena Vista": "yok-bvy",
"Yokuts Delta": "yok-dly",
"Yokuts Gashowu": "yok-gsy",
"Yokuts Lembah Selatan": "yok-svy",
"Yokuts Lembah Utara": "yok-nvy",
"Yokuts Palewyami": "yok-ply",
"Yokuts Sungai Kings": "yok-kry",
"Yokuts Tule-Kaweah": "yok-tky",
"Yola": "yol",
"Yolmo": "scp",
"Yolngu Sign Language": "ygs",
"Yom": "pil",
"Yombe": "yom",
"Yonaguni": "yoi",
"Yong": "yno",
"Yongkom": "yon",
"Yopno": "yut",
"Yora": "mts",
"Yoron": "yox",
"Yorta Yorta": "xyy",
"Yoruba": "yo",
"Yoruba Purba": "alv-yor-pro",
"Yoruboid Purba": "alv-yrd-pro",
"Youle Jino": "jiu",
"Younuo Bunu": "buh",
"Yout Wam": "ytw",
"Yoy": "yoy",
"Yuanga": "nua",
"Yuchi": "yuc",
"Yucuna": "ycn",
"Yug": "yug",
"Yugambal": "yub",
"Yugoslavian Sign Language": "ysl",
"Yugul": "ygu",
"Yugur Barat": "ybe",
"Yugur Timur": "yuy",
"Yuhup": "yab",
"Yukaghir Purba": "qfa-yuk-pro",
"Yukaghir Selatan": "yux",
"Yukaghir Utara": "ykg",
"Yuki": "yuk",
"Yukpa": "yup",
"Yukuben": "ybl",
"Yulu": "yul",
"Yuma": "yum",
"Yumana": "awd-yum",
"Yunani Calabria": "grk-cal",
"Yunani Cappadocia": "cpg",
"Yunani Italiot": "grk-ita",
"Yunani Mariupol": "grk-mar",
"Yunani Pontus": "pnt",
"Yunani Romani": "rge",
"Yup'ik": "esu",
"Yupik Purba": "ypk-pro",
"Yupik Siberia Tengah": "ess",
"Yupiltepeque": "nai-yup",
"Yupua": "sai-yup",
"Yuqui": "yuq",
"Yuracare": "yuz",
"Yuri": "sai-yri",
"Yurok": "yur",
"Yuru": "ljx",
"Yurumanguí": "sai-yur",
"Yurutí": "yui",
"Yuwana": "yau",
"Yuyu": "yxu",
"Yámana": "yag",
"Zaachila Zapotec": "ztx",
"Zabana": "kji",
"Zacatepec Chatino": "ctz",
"Zaghawa": "zag",
"Zaiwa": "atb",
"Zakhring": "zkr",
"Zambian Sign Language": "zsl",
"Zan Gula": "zna",
"Zanaki": "zak",
"Zande": "zne",
"Zangskar": "zau",
"Zangwal": "zah",
"Zaniza Zapotec": "zpw",
"Zapotec": "zap",
"Zapotec Aloápam": "zaq",
"Zapotec Ayoquesco": "zaf",
"Zapotec Cajonos": "zad",
"Zapotec Coatecas Altas": "zca",
"Zapotec Mitla": "zaw",
"Zapotec Ocotlán": "zac",
"Zapotec Ozolotepec": "zao",
"Zapotec Purba": "xzp",
"Zapotec Rincón": "zar",
"Zapotec San Juan Guelavía": "zab",
"Zapotec Santo Domingo Albarradas": "zas",
"Zapotec Segenting": "zai",
"Zapotec Sierra de Juárez": "zaa",
"Zapotec Tabaa": "zat",
"Zapotec Xadani": "zax",
"Zapotec Yareni": "zae",
"Zapotec Yatzachi": "zav",
"Zapotecan Purba": "omq-zap-pro",
"Zapoteco Mahuatlán Tengah": "zam",
"Zaramo": "zaj",
"Zari": "zaz",
"Zarma": "dje",
"Zauzou": "zal",
"Zay": "zwa",
"Zayse-Zergulla": "zay",
"Zaza-Gorani Purba": "ira-zgr-pro",
"Zazaki": "zza",
"Zazao": "jaj",
"Zbu": "sit-zbu",
"Zeeland": "zea",
"Zeem": "zua",
"Zemba": "dhm",
"Zemgalia": "xzm",
"Zenag": "zeg",
"Zenaga": "zen",
"Zenzontepec Chatino": "czn",
"Zhaba": "zhb",
"Zhang-Zhung": "xzh",
"Zhire": "zhi",
"Zhoa": "zhw",
"Zhuang": "za",
"Zhár": "jjr",
"Zia": "zia",
"Zialo": "zil",
"Zigula": "ziw",
"Zimakani": "zik",
"Zimba": "zmb",
"Zimbabwe Sign Language": "zib",
"Zinza": "zin",
"Zire": "sih",
"Zirenkel": "zrn",
"Ziriya": "zir",
"Zizilivakan": "ziz",
"Zo'é": "pto",
"Zokhuo": "yzk",
"Zoogocho Zapotec": "zpq",
"Zou": "zom",
"Zulu": "zu",
"Zumaya": "zuy",
"Zumbun": "jmb",
"Zuni": "zun",
"Zuojiang Zhuang": "zzj",
"Zuwara": "ber-zuw",
"Zyphe": "zyp",
"Záparo": "zro",
"tidak ditentukan": "und",
"Àhàn": "ahn",
"Áncá": "acb",
"Äiwoo": "nfl",
"Älvdalen": "ovd",
"Äynu": "aib",
"Ömie": "aom",
"Önge": "oon",
"ǀXam": "xam",
"ǁAni": "hnh",
"ǁXegwi": "xeg",
"ǂHoan": "huc",
"ǃKung": "khi-kun",
"ǃXóõ": "nmn"
}
tbq7c004zia6dg193qxrythve6yz4tf
373558
373553
2026-09-11T11:10:35Z
Hakimi97
2668
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373558
json
application/json
{
"'Are'are": "alu",
"A'ou": "aou",
"A-Hmao": "hmd",
"A-Pucikwar": "apq",
"Aari": "aiw",
"Aasax": "aas",
"Aba": "utp",
"Abaga": "abg",
"Abai": "poz-abi",
"Abai Sungai": "abf",
"Abanyom": "abm",
"Abau": "aau",
"Abaza": "abq",
"Abenaki": "abe",
"Abidji": "abi",
"Abinomn": "bsa",
"Abipón": "axb",
"Abishira": "ash",
"Abkhaz": "ab",
"Abkhaz-Abaza Purba": "cau-abz-pro",
"Abom": "aob",
"Abon": "abo",
"Abu": "ado",
"Abu'": "aah",
"Abua": "abn",
"Abui": "abz",
"Abun": "kgr",
"Abung": "abl",
"Abure": "abu",
"Abureni": "mgj",
"Abé": "aba",
"Acatepec Me'phaa": "tpx",
"Aceh": "ace",
"Achagua": "aca",
"Achang": "acn",
"Ache": "yif",
"Acheron": "acz",
"Achi": "acr",
"Acholi": "ach",
"Achuar": "acu",
"Achumawi": "acv",
"Acipa Timur": "acp",
"Acroá": "acs",
"Adai": "xad",
"Adang": "adn",
"Adangbe": "adq",
"Adangme": "ada",
"Adap": "adp",
"Adasen": "tiu",
"Adele": "ade",
"Adhola": "adh",
"Adi": "adi",
"Adioukrou": "adj",
"Adithinngithigh": "dth",
"Adnyamathanha": "adt",
"Adonara": "adr",
"Aduge": "adu",
"Adzera": "adz",
"Adûni": "art-adu",
"Aeka": "aez",
"Aekyom": "awi",
"Aequian": "xae",
"Aer": "aeq",
"Afade": "aal",
"Afar": "aa",
"Afitti": "aft",
"Afra": "ulf",
"Afrihili": "afh",
"Afrikaans": "af",
"Afroasia Purba": "afa-pro",
"Agarabi": "agd",
"Agatu": "agc",
"Agawam": "alg-aga",
"Aghem": "agq",
"Aghu": "ahh",
"Aghul": "agx",
"Aghwan": "xag",
"Agi": "aif",
"Agob": "kit",
"Agoi": "ibm",
"Agta Cagayan Tengah": "agt",
"Agta Camarines Norte": "abd",
"Agta Casiguran Dumagat": "dgc",
"Agta Dicamay": "duy",
"Agta Dinapigue": "phi-din",
"Agta Dupaningan": "duo",
"Agta Gunung Iraya": "atl",
"Agta Gunung Iriga": "agz",
"Agta Isarog": "agk",
"Agta Nagtipunan": "phi-nag",
"Agta Pahanan": "apf",
"Agta Pulau Alabat": "dul",
"Agta Remontado": "agv",
"Agta Umiray Dumaget": "due",
"Agta Villa Viciosa": "dyg",
"Aguacateco": "agu",
"Aguano": "aga",
"Aguaruna": "agr",
"Aguna": "aug",
"Agutaynen": "agn",
"Agwagwune": "yay",
"Ahanta": "aha",
"Ahirani": "ahr",
"Ahom": "aho",
"Ahtna": "aht",
"Ahwai": "nfd",
"Ai-Cham": "aih",
"Aighon": "aix",
"Aikanã": "tba",
"Aiklep": "mwg",
"Aimele": "ail",
"Aimol": "aim",
"Ainbai": "aic",
"Ainu": "ain",
"Aiome": "aki",
"Airoran": "air",
"Aisi": "mmq",
"Aiton": "aio",
"Aja (Afrika Barat)": "ajg",
"Aja (Afrika Timur)": "aja",
"Ajawa": "ajw",
"Ajië": "aji",
"Ajyíninka Apurucayali": "cpc",
"Ak": "akq",
"Aka (Afrika Tengah)": "axk",
"Aka (Sudan)": "soh",
"Aka-Bea": "abj",
"Aka-Bo": "akm",
"Aka-Cari": "aci",
"Aka-Kede": "akx",
"Aka-Kol": "aky",
"Aka-Kora": "ack",
"Akan": "ak",
"Akar-Bale": "acl",
"Akaselem": "aks",
"Akatek": "knj",
"Akawaio": "ake",
"Ake": "aik",
"Akebu": "keu",
"Akei": "tsr",
"Akeu": "aeu",
"Akha": "ahk",
"Akhvakh": "akv",
"Akkadia": "akk",
"Aklanon": "akl",
"Akolet": "akt",
"Akoose": "bss",
"Akoye": "miw",
"Akpa": "akf",
"Akpes": "ibe",
"Akrukay": "afi",
"Akuku": "ayk",
"Akum": "aku",
"Akuntsu": "aqz",
"Akurio": "ako",
"Akuwagel": "bey",
"Akwa": "akw",
"Akyaung Ari": "nqy",
"Al-Sayyid Bedouin Sign Language": "syy",
"Alaba": "alw",
"Alabama": "akz",
"Alago": "ala",
"Alagwa": "wbj",
"Alak": "alk",
"Alamblak": "amp",
"Alangan": "alj",
"Alapmunte": "apv",
"Alawa": "alh",
"Alazapa": "nai-ala",
"Albania": "sq",
"Albania Purba": "sqj-pro",
"Albanian Sign Language": "sqk",
"Alchuka": "tuw-alk",
"Alcozauca Mixtec": "xta",
"Alege": "alf",
"Aleut": "ale",
"Aleut Mednyj": "mud",
"Algik Purba": "aql-pro",
"Algonquian Purba": "alg-pro",
"Algonquin": "alq",
"Algonquin Carolina": "crr",
"Ali": "aiy",
"Alladian": "ald",
"Allar": "all",
"Allentiac": "sai-all",
"Alngith": "aid",
"Alo Phola": "ypo",
"Alor": "aol",
"Alsea": "aes",
"Alta Selatan": "agy",
"Alta Utara": "aqn",
"Altai Selatan": "alt",
"Altai Utara": "atv",
"Alu": "mte",
"Alugu": "aub",
"Alumu-Tesu": "aab",
"Alune": "alp",
"Alungul": "aus-alu",
"Aluo": "yna",
"Alur": "alz",
"Alutiiq": "ems",
"Alutor": "alr",
"Alviri-Vidari": "avd",
"Alyawarr": "aly",
"Ama": "amm",
"Amahai": "amq",
"Amahuaca": "amc",
"Amaimon": "ali",
"Amal": "aad",
"Amami Ōshima Selatan": "ams",
"Amami Ōshima Utara": "ryn",
"Amanab": "amn",
"Amanayé": "ama",
"Amara": "aie",
"Amarakaeri": "amr",
"Amarasi": "aaz",
"Amarizana": "awd-ama",
"Amasi": "alv-ama",
"Amatlán Zapotec": "zpo",
"Amazigh Maghribi": "zgh",
"Amba": "rwm",
"Ambae Barat": "nnd",
"Ambai": "amk",
"Ambakich": "aew",
"Ambelau": "amv",
"Ambele": "ael",
"Amblong": "alm",
"Ambo": "amb",
"Ambrak": "aag",
"Ambrym Tenggara": "tvk",
"Ambrym Utara": "mmg",
"Ambul": "apo",
"Ambulas": "abt",
"Amdang": "amj",
"Amele": "aey",
"Amganad Ifugao": "ifa",
"Amhara": "am",
"Ami": "amy",
"Amis": "ami",
"Ammon": "sem-amm",
"Amo": "amo",
"Amol": "alx",
"Amondawa": "adw",
"Amor": "sem-amo",
"Ampanang": "apg",
"Amto": "amt",
"Amuesha-Chamicuro Purba": "awd-amc-pro",
"Amurdag": "amg",
"Amuzgo Guerrero": "amu",
"Amuzgo Ipalapa": "azm",
"Amuzgo San Pedro Amuzgos": "azg",
"Ana Tinga Dogon": "dti",
"Anaang": "anw",
"Anakalangu": "akg",
"Anam": "pda",
"Anambé": "aan",
"Anamgura": "imi",
"Anasi": "bpo",
"Anatolia Purba": "ine-ana-pro",
"Anauyá": "awd-ana",
"Andai": "afd",
"Andajin": "ajn",
"Andaman Besar Purba": "qfa-adm-pro",
"Andaqui": "ana",
"Andarum": "aod",
"Andegerebinha": "adg",
"Andh": "anr",
"Andi": "ani",
"Andi Purba": "cau-and-pro",
"Andio": "bzb",
"Andjingith": "aus-and",
"Andoa": "anb",
"Andoque": "ano",
"Andoquero": "sai-and",
"Andra-Hus": "anx",
"Aneityum": "aty",
"Anem": "anz",
"Aneme Wake": "aby",
"Anfillo": "myo",
"Angaataha": "agm",
"Angaité": "aqt",
"Angal": "age",
"Angal Enen": "aoe",
"Angal Heneng": "akh",
"Angami": "njm",
"Angevin": "roa-ang",
"Angguruk Yali": "yli",
"Angika": "anp",
"Angkamuthi": "avm",
"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",
"Annobon": "fab",
"Anong": "nun",
"Anor": "anj",
"Anserma": "ans",
"Ansus": "and",
"Antakarinya": "ant",
"Anu": "anl",
"Anuak": "anu",
"Anufo": "cko",
"Anuki": "aui",
"Anus": "auq",
"Anuta": "aud",
"Anyi": "any",
"Anyin Morofo": "mtb",
"Anāl": "anm",
"Ao Chungli": "njo-jgl",
"Ao Mongsen": "njo-mng",
"Aoheng": "pni",
"Aore": "aor",
"Ap Ma": "kbx",
"Apabhramsa": "inc-apa",
"Apache Barat": "apw",
"Apache Dataran": "apk",
"Apache Purba": "apa-pro",
"Apalachee": "xap",
"Apalaí": "apy",
"Apali": "ena",
"Apatani": "apt",
"Apiaká": "api",
"Apinayé": "apn",
"Apma": "app",
"Apolista": "awd-apo",
"Apro": "ahp",
"Apurinã": "apu",
"Aputai": "apx",
"Aquitanian": "xaq",
"Arab": "ar",
"Arab Algeria": "arq",
"Arab Andalusia": "xaa",
"Arab Bahrani": "abv",
"Arab Chad": "shu",
"Arab Cyprus": "acy",
"Arab Dhofar": "adf",
"Arab Hassaniyah": "mey",
"Arab Hijaz": "acw",
"Arab Iraq": "acm",
"Arab Juba": "pga",
"Arab Libya": "ayl",
"Arab Maghribi": "ary",
"Arab Mesir": "arz",
"Arab Mesopotamia Utara": "ayp",
"Arab Najdi": "ars",
"Arab Oman": "acx",
"Arab Selatan Kuno": "sem-srb",
"Arab Sudan": "apd",
"Arab Syam Selatan": "ajp",
"Arab Syam Utara": "apc",
"Arab Syihuh": "ssh",
"Arab Tajik": "abh",
"Arab Teluk": "afb",
"Arab Tunisia": "aeb",
"Arab Utara Purba": "xna",
"Arab Uzbeki": "auz",
"Arab Yaman": "ayn",
"Arabana": "ard",
"Arabela": "arl",
"Aragon": "an",
"Araki": "akr",
"Arakwal": "rkw",
"Aralle-Tabulahan": "atq",
"Aramia": "arc",
"Arammba": "stk",
"Aranadan": "aaf",
"Aranama-Tamique": "xrt",
"Aranda Selatan Bawah": "axl",
"Arandai": "jbj",
"Araona": "aro",
"Arapaho": "arp",
"Arapaso": "arj",
"Arapesh Bumbita": "aon",
"Arara-Karo": "arr",
"Ararandewára": "xaj",
"Arawa Purba": "auf-pro",
"Arawak Purba": "awd-pro",
"Araweté": "awt",
"Arawum": "awm",
"Arbore": "arv",
"Archi": "aqc",
"Are": "mwc",
"Areba": "aea",
"Arem": "aem",
"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",
"Armenia": "hy",
"Armenia Kuno": "xcl",
"Armenia Pertengahan": "axm",
"Armenia Purba": "hyx-pro",
"Arnhem Purba": "aus-arn-pro",
"Aroid Purba": "omv-aro-pro",
"Aromania": "rup",
"Arop-Lokep": "apr",
"Arop-Sissano": "aps",
"Arosi": "aia",
"Arrernte Barat": "are",
"Arrernte Timur": "aer",
"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",
"Ashraaf": "cus-ash",
"Asháninka": "cni",
"Ashéninka Pajonal": "cjo",
"Ashéninka Perené": "prq",
"Ashéninka Ucayali Selatan": "cpy",
"Asi": "bno",
"Asilulu": "asl",
"Askopan": "eiv",
"Asli Purba": "mkh-asl-pro",
"Asmat Pesisir Casuarina": "asc",
"Asmat Tengah": "cns",
"Asmat Utara": "nks",
"Asmat Yaosakor": "asy",
"Asoa": "asv",
"Assam": "as",
"Assam Awal": "inc-oas",
"Assam Pertengahan": "inc-mas",
"Assan": "xss",
"Assangori": "sjg",
"Assiniboine": "asb",
"Asturia": "ast",
"Asu": "aum",
"Asue Awyu": "psa",
"Asumboa": "aua",
"Asunción Mixtepec Zapotec": "zoo",
"Asuri": "asr",
"Asurini Tocantins": "asu",
"Asuriní Xingú": "asn",
"Ata": "atm",
"Atakapa": "aqp",
"Atampaya": "amz",
"Atanques": "cba-ata",
"Atauran": "adb",
"Atayal": "tay",
"Atayalik Purba": "map-ata-pro",
"Atemble": "ate",
"Ateso": "teo",
"Athabaska Purba": "ath-pro",
"Athpare": "aph",
"Ati": "atk",
"Atikamekw": "atj",
"Atlantik-Congo Purba": "alv-pro",
"Atohwaim": "aqm",
"Atong (Cameroon)": "ato",
"Atong (India)": "aot",
"Atorada": "aox",
"Atsahuaca": "atc",
"Atsam": "cch",
"Atsugewi": "atw",
"Atta Faire": "azt",
"Atta Pamplona": "att",
"Atta Pudtol": "atp",
"Attapady Kurumba": "pkr",
"Attié": "ati",
"Au": "avt",
"Auhelawa": "kud",
"Aukan": "djk",
"Aulua": "aul",
"Aurá": "aux",
"Aushi": "auh",
"Aushiri": "avs",
"Auslan": "asf",
"Austral": "aut",
"Austroasia Purba": "aav-pro",
"Austronesia Purba": "map-pro",
"Auwe": "smf",
"Auyana": "auy",
"Auye": "auu",
"Auyokawa": "auo",
"Avar": "av",
"Avar Kuno": "oav",
"Avar-Andi Purba": "cau-ava-pro",
"Avatime": "avn",
"Avau": "avb",
"Avava": "tmb",
"Avesta": "ae",
"Avikam": "avi",
"Avokaya": "avu",
"Avá-Canoeiro": "avv",
"Awa (China)": "vwa",
"Awa (New Guinea)": "awb",
"Awa-Cuaiquer": "kwi",
"Awabakal": "awk",
"Awadhi": "awa",
"Awadhi Kuno": "inc-oaw",
"Awak": "awo",
"Awar": "aya",
"Awara": "awx",
"Awbono": "awh",
"Aweer": "bob",
"Awera": "awr",
"Awetí": "awe",
"Awing": "azo",
"Awjila": "auj",
"Awngi": "awn",
"Awngthim": "gwm",
"Awtuw": "kmn",
"Awu": "yiu",
"Awun": "aww",
"Awutu": "afu",
"Awyi": "auw",
"Awyu Edera": "awy",
"Awyu Jair": "awv",
"Awyu Selatan": "aws",
"Awyu Tengah": "awu",
"Awyu Utara": "yir",
"Axamb": "ahb",
"Axi": "yix",
"Ayabadhu": "ayd",
"Ayautla Mazatec": "vmy",
"Ayere": "aye",
"Ayerrerenge": "axe",
"Ayi": "ayq",
"Ayizi": "yyz",
"Ayizo": "ayb",
"Aymara": "ay",
"Ayomán": "sai-ayo",
"Ayoreo": "ayo",
"Ayta Abenlen": "abp",
"Ayta Ambala": "abc",
"Ayta Bataan": "ayt",
"Ayta Sorsogon": "ays",
"Ayu": "ayu",
"Azerbaijan": "az",
"Azha": "aza",
"Azhe": "yiz",
"Azoyú Me'phaa": "tpc",
"Baa": "kwb",
"Baagandji": "drl",
"Baali": "bcp",
"Baan": "bvj",
"Baangi": "bqx",
"Baatonum": "bba",
"Baba": "bbw",
"Babango": "bbm",
"Babanki": "bbk",
"Babar Utara": "bcd",
"Babatana": "baa",
"Babine-Witsuwit'en": "bcr",
"Babole": "bvx",
"Babungo": "bav",
"Babuza": "bzg",
"Bacama": "bcy",
"Bada": "bhz",
"Badaga": "bfq",
"Badanchi": "bau",
"Bade": "bde",
"Badeshi": "bdz",
"Badimaya": "bia",
"Badui": "bac",
"Badyara": "pbp",
"Baeggu": "bvd",
"Baekje": "pkc",
"Baelelea": "bvc",
"Baenan": "sai-bae",
"Baetora": "btr",
"Bafanji": "bfj",
"Bafaw": "bwt",
"Bafia": "ksf",
"Bafut": "bfd",
"Baga Kaloum": "bqf",
"Baga Koga": "bgo",
"Baga Manduri": "bmd",
"Baga Pokur": "bcg",
"Baga Sitemu": "bsp",
"Baga Sobané": "bsv",
"Bagheli": "bfy",
"Bagirmi": "bmi",
"Bago-Kusuntu": "bqg",
"Bagri": "bgq",
"Bagua": "sai-bag",
"Bagupi": "bpi",
"Bagusa": "bqb",
"Bagvalal": "kva",
"Baha": "yha",
"Bahaaa Isyarat Mauritius": "lsy",
"Bahaaa Isyarat Panama": "lsp",
"Baham": "bdw",
"Bahasa Hitam": "art-bsp",
"Bahasa Isyarat Adamorobe": "ads",
"Bahasa Isyarat Afghanistan": "afg",
"Bahasa Isyarat Afrika Selatan": "sfs",
"Bahasa Isyarat Algeria": "asp",
"Bahasa Isyarat Amerika": "ase",
"Bahasa Isyarat Argentina": "aed",
"Bahasa Isyarat Armenia": "aen",
"Bahasa Isyarat Austria": "asq",
"Bahasa Isyarat Chad": "cds",
"Bahasa Isyarat Croatia": "csq",
"Bahasa Isyarat Ecuador": "ecs",
"Bahasa Isyarat El Salvador": "esn",
"Bahasa Isyarat Estonia": "eso",
"Bahasa Isyarat Filipina": "psp",
"Bahasa Isyarat Finland": "fse",
"Bahasa Isyarat Finland-Sweden": "fss",
"Bahasa Isyarat Habsyah": "eth",
"Bahasa Isyarat Haiphong": "haf",
"Bahasa Isyarat Hanoi": "hab",
"Bahasa Isyarat Hausa": "hsl",
"Bahasa Isyarat Honduras": "hds",
"Bahasa Isyarat Hong Kong": "hks",
"Bahasa Isyarat Hungary": "hsh",
"Bahasa Isyarat Iceland": "icl",
"Bahasa Isyarat India": "ins",
"Bahasa Isyarat Indonesia": "inl",
"Bahasa Isyarat Inuit": "iks",
"Bahasa Isyarat Ireland": "isg",
"Bahasa Isyarat Israel": "isr",
"Bahasa Isyarat Itali": "ise",
"Bahasa Isyarat Jamaica": "jls",
"Bahasa Isyarat Jepun": "jsl",
"Bahasa Isyarat Jhankot": "jhs",
"Bahasa Isyarat Jordan": "jos",
"Bahasa Isyarat Jumla": "jus",
"Bahasa Isyarat Kentish Kuno": "okl",
"Bahasa Isyarat Korea": "kvk",
"Bahasa Isyarat Lao": "lso",
"Bahasa Isyarat Latvia": "lsl",
"Bahasa Isyarat Libya": "lbs",
"Bahasa Isyarat Madagascar": "mzc",
"Bahasa Isyarat Malta": "mdl",
"Bahasa Isyarat Maritim": "nsr",
"Bahasa Isyarat Martha's Vineyard": "mre",
"Bahasa Isyarat Maya Yucatec": "msd",
"Bahasa Isyarat Mesir": "esl",
"Bahasa Isyarat Mexico": "mfs",
"Bahasa Isyarat Miriwoong": "rsm",
"Bahasa Isyarat Monastik": "mzg",
"Bahasa Isyarat Mongolia": "msr",
"Bahasa Isyarat Mozambique": "mzy",
"Bahasa Isyarat Namibia": "nbs",
"Bahasa Isyarat Negara Jamaica": "jcs",
"Bahasa Isyarat Nepal": "nsp",
"Bahasa Isyarat New Zealand": "nzs",
"Bahasa Isyarat Nicaragua": "ncs",
"Bahasa Isyarat Nigeria": "nsi",
"Bahasa Isyarat Norway": "nsl",
"Bahasa Isyarat Orang Asli Australia": "asw",
"Bahasa Isyarat Pakistan": "pks",
"Bahasa Isyarat Papua New Guinea": "pgz",
"Bahasa Isyarat Paraguay": "pys",
"Bahasa Isyarat Parsi": "psc",
"Bahasa Isyarat Perancis": "fsl",
"Bahasa Isyarat Peru": "prl",
"Bahasa Isyarat Poland": "pso",
"Bahasa Isyarat Portugis": "psr",
"Bahasa Isyarat Providencia": "prz",
"Bahasa Isyarat Puerto Rico": "psl",
"Bahasa Isyarat Pulau Pinang": "psg",
"Bahasa Isyarat Quebec": "fcs",
"Bahasa Isyarat Romania": "rms",
"Bahasa Isyarat Rusia": "rsl",
"Bahasa Isyarat Taiwan": "tss",
"Bahasa Isyarat Tanzania": "tza",
"Bahasa Isyarat Tebul": "tsy",
"Bahasa Isyarat Thai": "tsq",
"Bahasa Isyarat Trinidad dan Tobago": "lst",
"Bahasa Isyarat Tunisia": "tse",
"Bahasa Isyarat Turki": "tsm",
"Bahasa Isyarat Yahudi Algeria": "ajs",
"Bahasa Lembah Indus": "xiv",
"Bahasa Roh Maroon": "crp-mar",
"Bahau": "bhv",
"Bahinemo": "bjh",
"Bahing": "bhj",
"Bahnar": "bdq",
"Bahnar Purba": "mkh-ban-pro",
"Bahonsuai": "bsu",
"Bai": "bdj",
"Bai Purba": "sit-bai-pro",
"Bai Selatan": "bfs",
"Bai Tengah": "bca",
"Baibai": "bbf",
"Baikeno": "bkx",
"Bailang": "tbq-blg",
"Baima": "bqh",
"Baimak": "bmx",
"Bainouk Gubeeher": "alv-bgu",
"Bainouk-Gunyaamolo": "bcz",
"Bainouk-Gunyuño": "bab",
"Bainouk-Samik": "bcb",
"Baiso": "bsw",
"Bajan": "bjs",
"Bajau Indonesia": "bdl",
"Bajau Laut": "sml",
"Bajau Pantai Timur": "ssb",
"Bajau Sama": "bdr",
"Bajelani": "bjm",
"Baka": "bkc",
"Bakairí": "bkq",
"Bakaka": "bqz",
"Bakhtiari": "bqi",
"Baki": "bki",
"Bakoko": "bkh",
"Bakole": "kme",
"Bakpinka": "bbs",
"Baktria": "xbc",
"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": "ban",
"Baliledo": "poz-bal",
"Balkan Gagauz Turkish": "bgx",
"Balo": "bqo",
"Baloi": "biz",
"Balong": "bnt-bal",
"Balti": "bft",
"Balto-Slavik Purba": "ine-bsl-pro",
"Baluan-Pam": "blq",
"Baluchi": "bal",
"Bamako Sign Language": "bog",
"Bamali": "bbq",
"Bambalang": "bmo",
"Bambam": "ptu",
"Bambara": "bm",
"Bambassi": "myf",
"Bambili-Bambui": "baw",
"Bamenyam": "bce",
"Bamu": "bcf",
"Bamukumbit": "bqt",
"Bamum": "bax",
"Bamunka": "bvm",
"Bamwe": "bmg",
"Ban Khor Sign Language": "bfk",
"Bana": "bcw",
"Banam Bay": "vrt",
"Banao Itneg": "bjx",
"Banaro": "byz",
"Banda": "bnd",
"Banda Malay": "bpq",
"Banda Tengah Barat": "bbp",
"Banda Tengah Selatan": "lnl",
"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",
"Banjar": "bjn",
"Banka": "bxw",
"Bankan Tey Dogon": "dbw",
"Bankon": "abb",
"Banoni": "bcm",
"Bantawa": "bap",
"Bantayanon": "bfx",
"Bantik": "bnq",
"Bantoid Purba": "nic-bod-pro",
"Bantu Purba": "bnt-pro",
"Banyumasan": "map-bms",
"Baoule": "bci",
"Baraamu": "brd",
"Barai": "bbb",
"Barakai": "baj",
"Barama": "bbg",
"Barambu": "brm",
"Baramu": "bmz",
"Barapasi": "brp",
"Baras": "brs",
"Barasana": "bsn",
"Barbar Tunisia": "sds",
"Barbareño": "boi",
"Bardi": "bcj",
"Barein": "bva",
"Bargam": "mlp",
"Bari": "bfa",
"Bariai": "bch",
"Bariji": "bjc",
"Barikanchi": "bxo",
"Barikewa": "jbk",
"Barngarla": "bjb",
"Barok": "bjk",
"Barombi": "bbi",
"Barranbinya": "aus-bra",
"Barro Negro Tunebo": "tbn",
"Barrow Point": "bpt",
"Baruga": "bjz",
"Barunggam": "aus-brm",
"Baruya": "byr",
"Barwe": "bwg",
"Barzani Jewish Neo-Aramaic": "bjf",
"Baré": "bae",
"Barí": "mot",
"Basa": "bzw",
"Basa-Gumna": "bsl",
"Basa-Gurmana": "buj",
"Basaa": "bas",
"Basap": "bdb",
"Basay": "byq",
"Bashkardi": "bsg",
"Bashkir": "ba",
"Basketo": "bst",
"Basque": "eu",
"Basque Purba": "euq-pro",
"Bassa": "bsq",
"Bassa-Kontagora": "bsr",
"Bassari": "bsc",
"Bassossi": "bsi",
"Bata": "bta",
"Batad Ifugao": "ifb",
"Batak Alas-Kluet": "btz",
"Batak Angkola": "akb",
"Batak Dairi": "btd",
"Batak Karo": "btx",
"Batak Mandailing": "btm",
"Batak Palawan": "bya",
"Batak Purba": "btk-pro",
"Batak Simalungun": "bts",
"Batak Toba": "bbc",
"Batanga": "bnm",
"Batek": "btq",
"Bateri": "btv",
"Bathari": "bhm",
"Bati (Cameroon)": "btc",
"Bati (Indonesia)": "bvt",
"Bats": "bbl",
"Batu": "btu",
"Batui": "zbt",
"Batuley": "bay",
"Bau": "bbd",
"Bauchi": "bsf",
"Baure": "brg",
"Bauria": "bge",
"Bauro": "bxa",
"Bauwaki": "bwk",
"Bauzi": "bvz",
"Bavarian": "bar",
"Bayali": "bjy",
"Baybayanon": "bvy",
"Baygo": "byg",
"Bayogoula": "nai-bay",
"Bayono": "byl",
"Bayot": "bda",
"Bayungu": "bxj",
"Bazigar": "bfr",
"Be Purba": "qfa-onb-pro",
"Be-Tai Purba": "qfa-bet-pro",
"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": "nl",
"Belanda Bor": "bxb",
"Belanda Jersey": "gmw-jdt",
"Belanda Kreol Berbice": "brc",
"Belanda Kreol Skepi": "skw",
"Belanda Kuno": "odt",
"Belanda Pertengahan": "dum",
"Belanda Viri": "bvi",
"Belarus": "be",
"Belhariya": "byw",
"Beli": "blm",
"Bella Coola": "blc",
"Bellari": "brw",
"Bemba": "bem",
"Bembe": "bmb",
"Ben Tey": "dbt",
"Bena": "yun",
"Benabena": "bef",
"Bench": "bcq",
"Bende": "bdp",
"Bendi": "bct",
"Beneraf": "bnv",
"Beng": "nhb",
"Benga": "bng",
"Bengal Kuno": "inc-obn",
"Bengal Pertengahan": "inc-mbn",
"Benggali": "bn",
"Benggoi": "bgy",
"Bengkala Sign Language": "bqy",
"Bentong": "bnu",
"Benue-Congo Purba": "nic-bco-pro",
"Benyadu'": "byd",
"Beothuk": "bue",
"Bepour": "bie",
"Bera": "brf",
"Berakou": "bxv",
"Berawan": "lod",
"Berber Purba": "ber-pro",
"Berber Saharan Utara": "mzb",
"Bergish": "gmw-bgh",
"Berik": "bkl",
"Berinomo": "bit",
"Berom": "bom",
"Berta": "wti",
"Berti": "byt",
"Besisi": "mhe",
"Besme": "bes",
"Besoa": "bep",
"Betaf": "bfe",
"Betawi": "bew",
"Bete": "byf",
"Bete-Bendi": "btt",
"Betoi": "sai-bet",
"Bezhta": "kap",
"Bhadrawahi": "bhd",
"Bhalay": "bhx",
"Bharia": "bha",
"Bhatri": "bgw",
"Bhattiyali": "bht",
"Bhaya": "bhe",
"Bhele": "bhy",
"Bhilali": "bhi",
"Bhili": "bhb",
"Bhojpur": "bho",
"Bhunjia": "bhu",
"Biafada": "bif",
"Biage": "bdf",
"Biak": "bhw",
"Biali": "beh",
"Bian Marind": "bpv",
"Biangai": "big",
"Biao": "byk",
"Biao Mon": "bmt",
"Biao-Jiao Mien": "bje",
"Bibaali": "bcn",
"Bibbulman": "xbp",
"Bicolano Catanduanes Selatan": "bln",
"Bicolano Catanduanes Utara": "cts",
"Bicolano Iriga": "bto",
"Bidayuh Bau": "sne",
"Bidayuh Biatah": "bth",
"Bidayuh Bukar-Sadong": "sdo",
"Bidiyo": "bid",
"Bidyara": "bym",
"Bidyogo": "bjg",
"Biem": "bmc",
"Bierebo": "bnk",
"Bieria": "brj",
"Biete": "biu",
"Big Nambas": "nmb",
"Biga": "bhc",
"Bigambal": "xbe",
"Bih": "ibh",
"Bihari": "bh",
"Bijori": "bix",
"Bikaru": "bic",
"Bikol Libon": "lbl",
"Bikol Miraya": "rbl",
"Bikol Miraya Barat": "fbl",
"Bikol Tengah": "bcl",
"Bikya": "byb",
"Bila": "bip",
"Bilakura": "bql",
"Bilaspuri": "kfs",
"Bilba": "bpz",
"Bilbil": "brz",
"Bile": "bil",
"Biliau": "bcu",
"Biloxi": "bll",
"Bilua": "blb",
"Bilur": "bxf",
"Bima": "bhp",
"Bimin": "bhl",
"Bimoba": "bim",
"Bina": "bmn",
"Binahari": "bxz",
"Binandere": "bhg",
"Binandere Purba": "ngf-bin-pro",
"Binawa": "byj",
"Bindal": "xbd",
"Bine": "bon",
"Binji": "bpj",
"Binongan Itneg": "itb",
"Bintauna": "bne",
"Binukid": "bkd",
"Binumarien": "bjr",
"Bipi": "biq",
"Birao": "brr",
"Birgid": "brk",
"Birgit": "btf",
"Birhor": "biy",
"Biri": "bzr",
"Birifor Selatan": "biv",
"Biritai": "bqq",
"Birri": "bvq",
"Birrpayi": "xbj",
"Birwa": "brl",
"Bisaya Brunei": "bsb",
"Bisaya Sabah": "bsy",
"Biseni": "ije",
"Bishnupriya Manipuri": "bpy",
"Bishuo": "bwh",
"Bisis": "bnw",
"Bislama": "bi",
"Bisorio": "bir",
"Bissa": "bib",
"Bisu": "bzi",
"Bit": "bgk",
"Bitare": "brt",
"Bitur": "mcc",
"Biwat": "bwm",
"Biyo": "byo",
"Biyom": "bpm",
"Blablanga": "blp",
"Blackfoot": "bla",
"Blafe": "bfh",
"Blagar": "beu",
"Blang": "blr",
"Blin": "byn",
"Bo": "bgl",
"Bo-Rukul": "mae",
"Bo-Ung": "mux",
"Boano (Maluku)": "bzn",
"Boano (Sulawesi)": "bzl",
"Bobo Selatan": "bwq",
"Bobongko": "bgb",
"Bobot": "bty",
"Bodish Purba": "sit-bdi-pro",
"Bodo (Central Africa)": "boy",
"Bodo (India)": "brx",
"Bodo Parja": "bdv",
"Bodo-Garo Purba": "tbq-bdg-pro",
"Bofi": "bff",
"Boga": "bvw",
"Bogaya": "boq",
"Boghom": "bux",
"Boguru": "bqu",
"Boikin": "bzf",
"Bokar": "sit-bok",
"Bokha": "ybk",
"Bokmål Norway": "nb",
"Boko": "bqc",
"Bokobaru": "bus",
"Bokoto": "bdt",
"Bokyi": "bky",
"Bola": "bnp",
"Bolak": "art-blk",
"Bolango": "bld",
"Bole": "bol",
"Bolgo": "bvo",
"Bolia": "bli",
"Bolinao": "smk",
"Bolivian Sign Language": "bvl",
"Boloki": "bkt",
"Bolon": "bof",
"Bolondo": "bzm",
"Bolongan": "blj",
"Bolyu": "ply",
"Bom": "bmf",
"Boma Nkuu": "bnt-bon",
"Boma Selatan": "bnt-sbo",
"Boma Utara": "boh",
"Boma Yumu": "bnt-boy",
"Bomboli": "bml",
"Bomboma": "bws",
"Bomitaba": "zmx",
"Bomu": "bmq",
"Bomwali": "bmw",
"Bonan": "peh",
"Bondei": "bou",
"Bondo": "bfw",
"Bondoukou Kulango": "kzc",
"Bondum Dom Dogon": "dbu",
"Bonerate": "bna",
"Bonggi": "bdg",
"Bonggo": "bpg",
"Bongili": "bui",
"Bongo": "bot",
"Bongo-Bagirmi Purba": "csu-bba-pro",
"Bongu": "bpu",
"Bonjo": "bok",
"Bonkeng": "bvg",
"Bonkiman": "bop",
"Bontoc Barat Daya": "vbk",
"Bontoc Selatan": "obk",
"Bontoc Tengah": "lbk",
"Bontoc Timur": "ebk",
"Bontoc Utara": "rbk",
"Bookan": "bnb",
"Boon": "bnl",
"Boor": "bvf",
"Bora": "boa",
"Bora Purba": "sai-bor-pro",
"Boro": "xxb",
"Borong": "ksr",
"Boruca": "brn",
"Borôro": "bor",
"Boselewa": "bwf",
"Bosngun": "bqs",
"Bote-Majhi": "bmj",
"Botlikh": "bph",
"Botolan Sambal": "sbl",
"Bourbonnais-Berrichon": "roa-bbn",
"Bourguignon": "roa-brg",
"Bouyei": "pcc",
"Bozaba": "bzo",
"Bragat": "aof",
"Brahui": "brh",
"Braj": "bra",
"Brazilian Sign Language": "bzs",
"Brem": "buq",
"Breri": "brq",
"Breton": "br",
"Breton Kuno": "obt",
"Breton Pertengahan": "xbm",
"Bribri": "bzd",
"British Sign Language": "bfi",
"Britonik Purba": "cel-bry-pro",
"Brokkat": "bro",
"Brokpake": "sgt",
"Brokskat": "bkk",
"Broome Pearling Lugger Pidgin": "bpl",
"Bru Barat": "brv",
"Bru Timur": "bru",
"Bu": "jid",
"Bu-Nao Bunu": "bwx",
"Bua": "bub",
"Bua Purba": "alv-bua-pro",
"Buamu": "box",
"Bube": "bvb",
"Bubi": "buw",
"Bubia": "bbx",
"Budeh Stieng": "stt",
"Budibud": "btp",
"Budong-Budong": "bdx",
"Budu": "buu",
"Budukh": "bdk",
"Buduma": "bdm",
"Budza": "bja",
"Bugan": "bbh",
"Bughotu": "bgt",
"Bugis": "bug",
"Buglere": "sab",
"Bugun": "bgg",
"Buhi'non Bikol": "ubl",
"Buhid": "bku",
"Buhutu": "bxh",
"Bujhyal": "byh",
"Bukat": "bvk",
"Bukawa": "buk",
"Bukhari": "bhh",
"Bukitan": "bkn",
"Bukiyip": "ape",
"Buksa": "tkb",
"Bukusu": "bxk",
"Bulgar": "xbo",
"Bulgaria": "bg",
"Bulgarian Sign Language": "bqn",
"Bulgebi": "bmp",
"Buli (Ghana)": "bwu",
"Buli (Indonesia)": "bzq",
"Bulo Stieng": "sti",
"Bulu (Cameroon)": "bum",
"Bulu (New Guinea)": "bjl",
"Bum": "bmv",
"Bumaji": "byp",
"Bumang": "bvp",
"Bumthangkha": "kjz",
"Bun": "buv",
"Buna": "bvn",
"Bunaba": "bck",
"Bunak": "bfn",
"Bunama": "bdd",
"Bundeli": "bns",
"Bung": "bqd",
"Bungain": "but",
"Bunganditj": "xbg",
"Bungku": "bkz",
"Bungku-Tolaki Purba": "poz-btk-pro",
"Bungu": "wun",
"Bunoge": "dgb",
"Bunun": "bnn",
"Buol": "blf",
"Bura": "bwr",
"Burak": "bys",
"Buraka": "bkg",
"Burarra": "bvr",
"Burate": "bti",
"Burduna": "bxn",
"Bure": "bvh",
"Burgundia": "gme-bur",
"Burji": "bji",
"Burma": "my",
"Burma Kuno": "obr",
"Burma Purba": "tbq-brm-pro",
"Burmeso": "bzu",
"Buru (Indonesia)": "mhs",
"Buru (Nigeria)": "bqw",
"Burui": "bry",
"Burumakok": "aip",
"Burun": "bdi",
"Burunge": "bds",
"Burushaski": "bsk",
"Burusu": "bqr",
"Buruwai": "asi",
"Buryat": "bua",
"Busa": "bqp",
"Busam": "bxs",
"Busami": "bsm",
"Busang Kayan": "bfg",
"Bushoong": "buf",
"Buso": "bso",
"Busoa": "bup",
"Bussa": "dox",
"Busuu": "bju",
"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",
"Bwela": "bwl",
"Bwile": "bwc",
"Bwisi": "bwz",
"Byangsi": "bee",
"Byep": "mkk",
"Bädi Kanum": "khd",
"Caac": "msq",
"Cabiyarí": "cbb",
"Cabre": "awd-cab",
"Cabécar": "cjp",
"Cacaopera": "ccr",
"Cacua": "cbv",
"Cacán": "sai-cac",
"Caddo": "cad",
"Caddoan Purba": "cdd-pro",
"Cafundó": "ccd",
"Cahuarano": "cah",
"Cahuilla": "chl",
"Caijia": "sit-cai",
"Caka": "ckx",
"Cakchiquel-Quiché Mixed Language": "ckz",
"Cakfem-Mushere": "cky",
"Calamian Tagbanwa": "tbk",
"Callawalla": "caw",
"Calusa": "nai-cal",
"Caluyanun": "clu",
"Caló": "rmq",
"Cam Barat": "cja",
"Cam Timur": "cjm",
"Campalagian": "cml",
"Camsá": "kbh",
"Camtho": "cmt",
"Camunic": "xcc",
"Candoshi-Shapra": "cbu",
"Canela": "ram",
"Cangin Purba": "alv-cng-pro",
"Canichana": "caz",
"Cantabrian": "roa-can",
"Cao Miao": "cov",
"Caolan": "mlc",
"Capanahua": "kaq",
"Capiznon": "cps",
"Caquinte": "cot",
"Car Nicobarese": "caq",
"Cara": "cfd",
"Carabayo": "cby",
"Caramanta": "crf",
"Caranqui": "sai-caq",
"Carapana": "cbc",
"Carian": "xcr",
"Cariay": "awd-kar",
"Carib Purba": "sai-car-pro",
"Carijona": "cbd",
"Carolinian": "cal",
"Carrier": "crx",
"Carrier Selatan": "caf",
"Cashibo-Cacataibo": "cbr",
"Cashinahua": "cbs",
"Catacao": "sai-cat",
"Catalan": "ca",
"Catalan Sign Language": "csc",
"Catalonia Kuno": "roa-oca",
"Catawba": "chc",
"Catuquinaru": "sai-ctq",
"Catío Chibcha": "cba-cat",
"Cauca": "cca",
"Cavineña": "cav",
"Cayubaba": "cyb",
"Cayuga": "cay",
"Cayuse": "xcy",
"Cazcan": "azc-caz",
"Cañari": "sai-cnr",
"Cebaara Senoufo": "sef",
"Cebuano": "ceb",
"Celtiberian": "xce",
"Cemuhî": "cam",
"Cen": "cen",
"Central Palawano": "plc",
"Centúúm": "cet",
"Cerma": "cme",
"Cerrado Purba": "sai-cer-pro",
"Ch'olti'": "myn-chl",
"Ch'orti'": "caa",
"Chaap Wuurong": "tjw",
"Chachi": "cbi",
"Chadik Purba": "cdc-pro",
"Chadik Tengah Purba": "cdc-cbm-pro",
"Chadong": "cdy",
"Chagatai": "chg",
"Chaha": "sem-cha",
"Chaima": "ciy",
"Chairel": "sit-cha",
"Chak": "ckh",
"Chakali": "cli",
"Chakma": "ccp",
"Chala": "cll",
"Chaldean Neo-Aramaic": "cld",
"Chali": "tgf",
"Chamacoco": "ceg",
"Chamalal": "cji",
"Chamba Daka": "ccg",
"Chamba Leko": "ndi",
"Chambeali": "cdh",
"Chambri": "can",
"Chamicuro": "ccc",
"Chamik Purba": "cmc-pro",
"Chamling": "rab",
"Chamorro": "ch",
"Champenois": "roa-cha",
"Chang": "nbc",
"Changriwa": "cga",
"Changthang": "cna",
"Chantyal": "chx",
"Chaná": "sai-chn",
"Chané": "caj",
"Chapacura": "sai-chp",
"Chara": "cra",
"Charrua": "sai-chr",
"Chatino Purba": "omq-cha-pro",
"Chatino San Juan Quiahije": "omq-sjq",
"Chatino Tanah Tinggi Barat": "ctp",
"Chatino Tanah Tinggi Timur": "cly",
"Chatino Teojomulco": "omq-teo",
"Chaudangsi": "cdn",
"Chaura": "crv",
"Chavacano": "cbk",
"Chayahuita": "cbt",
"Chazumba Mixtec": "xtb",
"Che": "ruk",
"Chechen": "ce",
"Cheke Holo": "mrn",
"Chemakum": "xch",
"Chenapian": "cjn",
"Chenchu": "cde",
"Chenoua": "cnu",
"Chepang": "cdm",
"Chepya": "ycp",
"Cherepon": "cpn",
"Cherokee": "chr",
"Chesu": "ych",
"Chetco-Tolowa": "ctc",
"Chewong": "cwg",
"Cheyenne": "chy",
"Chhattisgarhi": "hne",
"Chhintange": "ctn",
"Chhulung": "cur",
"Chiangmai Sign Language": "csd",
"Chiapanec": "cip",
"Chibcha": "chb",
"Chibchan Purba": "cba-pro",
"Chicahuaxtla Triqui": "trs",
"Chichewa": "ny",
"Chichicapan Zapotec": "zpv",
"Chichimeca-Jonaz": "pei",
"Chichonyi-Chidzihana-Chikauma": "coh",
"Chickasaw": "cic",
"Chicomuceltec": "cob",
"Chiduruma": "dug",
"Chilcotin": "clc",
"Chilean Sign Language": "csg",
"Chilisso": "clh",
"Chiltepec Chinantec": "csa",
"Chimakuan Purba": "chi-pro",
"Chimalapa Zoque": "zoh",
"Chimariko": "cid",
"Chimila": "cbg",
"Chimwiini": "bnt-cmw",
"Chin Asho": "csh",
"Chin Bawm": "bgr",
"Chin Bualkhaw": "cbl",
"Chin Chinbon": "cnb",
"Chin Daai": "dao",
"Chin Falam": "cfm",
"Chin Kaang": "ckn",
"Chin Khumi": "cnk",
"Chin Laitu": "clt",
"Chin Mara": "mrh",
"Chin Mro": "cmr",
"Chin Ngawn": "cnw",
"Chin Senthang": "sez",
"Chin Siyin": "csy",
"Chin Songlai": "csj",
"Chin Sumtu": "csv",
"Chin Tawr": "tcp",
"Chin Tedim": "ctd",
"Chin Thado": "tcz",
"Chin Thaiphum": "cth",
"Chin Zotung": "czt",
"Chinali": "cih",
"Chinese Sign Language": "csl",
"Chinook": "chh",
"Chinook Jargon": "chn",
"Chinook Purba": "nai-ckn-pro",
"Chipaya": "cap",
"Chipewyan": "chp",
"Chiquimulilla": "nai-chi",
"Chiquitano": "cax",
"Chiricahua": "apm",
"Chirino": "sai-chi",
"Chiripá": "nhd",
"Chiru": "cdf",
"Chitimacha": "ctm",
"Chitkuli Kinnauri": "cik",
"Chittagong": "ctg",
"Chitwania Tharu": "the",
"Chiwere": "iow",
"Choapan Zapotec": "zpc",
"Chocangaca": "cgk",
"Chochotec": "coz",
"Choctaw": "cho",
"Chodri": "cdi",
"Chokwe": "cjk",
"Chol": "ctu",
"Cholón": "cht",
"Chong": "cog",
"Choni": "cda",
"Chono": "sai-cno",
"Chopi": "cce",
"Chrau": "crw",
"Chru": "cje",
"Chuabo": "chw",
"Chuanqiandian Cluster Miao": "cqd",
"Chuave": "cjv",
"Chug": "cvg",
"Chuj": "cac",
"Chuka": "cuh",
"Chukchi": "ckt",
"Chukotko-Kamchatka Purba": "qfa-cka-pro",
"Chukwa": "cuw",
"Chulym": "clw",
"Chumash Purba": "nai-chu-pro",
"Chumburung": "ncu",
"Churahi": "cdj",
"Churuya": "sai-chu",
"Chut": "scb",
"Chuuk": "chk",
"Chuva": "xcv",
"Chuvash": "cv",
"Chácobo": "cao",
"Ci Gbe": "cib",
"Cia-Cia": "cia",
"Cibak": "ckl",
"Cicipu": "awc",
"Ciguayo": "nai-cig",
"Cimbrian": "cim",
"Cina": "zh",
"Cina Kuno": "och",
"Cina Pertengahan": "ltc",
"Cinda-Regi-Tiyal": "cdr",
"Cineni": "cie",
"Cinta Larga": "cin",
"Circassia Purba": "cau-cir-pro",
"Circassian Barat": "ady",
"Cishingini": "asg",
"Citak": "txt",
"Ciwogai": "tgd",
"Coahuilteco": "xcw",
"Coatlán Zapotec": "zps",
"Cocama": "cod",
"Cochimi": "coj",
"Cocopa": "coc",
"Coeruna": "sai-coe",
"Coeur d'Alene": "crd",
"Cofán": "con",
"Cogui": "kog",
"Col": "liw",
"Colombian Sign Language": "csn",
"Columbia-Wenatchi": "col",
"Colán": "sai-col",
"Comaltepec Chinantec": "cco",
"Comanche": "com",
"Comechingon": "sai-cmg",
"Comecrudo": "xcm",
"Communicationssprache": "art-com",
"Como Karim": "cfg",
"Comoros Maore": "swb",
"Comoros Ngazidja": "zdj",
"Comox": "coo",
"Con": "cno",
"Coos": "csz",
"Copainalá Zoque": "zoc",
"Copala Triqui": "trc",
"Copallén": "sai-cop",
"Coquille": "coq",
"Cora": "crn",
"Cori": "cry",
"Cornish": "kw",
"Cornwall Kuno": "oco",
"Cornwall Pertengahan": "cnx",
"Coroado Puri": "sai-crd",
"Corsica": "co",
"Costa Rican Sign Language": "csr",
"Cotoname": "xcn",
"Cowlitz": "cow",
"Coyaima": "coy",
"Coyotepec Popoloca": "pbf",
"Coyutla Totonac": "toc",
"Cree": "cr",
"Cree Moose": "crm",
"Cree Timur Selatan": "crj",
"Cree Timur Utara": "crl",
"Creek": "mus",
"Cross River Hilir Purba": "nic-lcr-pro",
"Cross River Hulu Purba": "nic-ucr-pro",
"Crow": "cro",
"Cruzeño": "crz",
"Cua": "cua",
"Cuban Sign Language": "csf",
"Cubeo": "cub",
"Cueva": "sai-cva",
"Cuiba": "cui",
"Cuitlatec": "cuy",
"Culina": "cul",
"Culli": "sai-cul",
"Cumanagoto": "cuo",
"Cumbric": "xcb",
"Cun": "cuq",
"Cung": "cug",
"Cupan Purba": "azc-cup-pro",
"Cupeño": "cup",
"Curonian": "xcu",
"Curripaco": "kpc",
"Cushitic Purba": "cus-pro",
"Cushitic Selatan Purba": "cus-sou-pro",
"Cushitic Timur Tanah Tinggi Purba": "cus-hec-pro",
"Cutchi-Swahili": "ccl",
"Cuvok": "cuv",
"Cuyunon": "cyo",
"Cwi Bwamu": "bwy",
"Czech": "cs",
"Czech Kuno": "zlw-ocs",
"Czech Sign Language": "cse",
"Cốông": "cnc",
"Da'a Kaili": "kzf",
"Daantanai'": "lni",
"Daasanach": "dsh",
"Daba": "dbq",
"Dabarre": "dbr",
"Dabe": "dbe",
"Dacian": "xdc",
"Dadan": "sem-dad",
"Dadi Dadi": "dda",
"Dadibi": "mps",
"Dadiya": "dbd",
"Daga": "dgz",
"Dagaare Selatan": "dga",
"Dagaari Dioula": "dgd",
"Dagara Utara": "dgi",
"Dagba": "dgk",
"Dagbani": "dag",
"Dagik": "dec",
"Dagoman": "dgn",
"Dahalik": "dlk",
"Dahalo": "dal",
"Daho-Doo": "das",
"Dai": "dij",
"Dair": "drb",
"Daju Purba": "sdv-daj-pro",
"Dakaka": "bpa",
"Dakka": "dkk",
"Dakota": "dak",
"Dakpa": "dka",
"Dalmatian": "dlm",
"Daloa Bété": "bev",
"Daly Purba": "aus-dal-pro",
"Dama (Nigeria)": "dmm",
"Dama (Sierra Leone)": "dmn-dam",
"Damakawa": "dam",
"Damal": "uhn",
"Damar Barat": "drn",
"Damar Timur": "dmr",
"Dambi": "dac",
"Dameli": "dml",
"Dampelas": "dms",
"Dan": "dnj",
"Danaru": "dnr",
"Danau": "dnu",
"Dandami Maria": "daq",
"Dangaléat": "daa",
"Dangari Purba": "inc-dng-pro",
"Dangaura Tharu": "thl",
"Dani Barat": "dnw",
"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",
"Dargwa Purba": "cau-drg-pro",
"Darkinjung": "xda",
"Darlong": "dln",
"Darmiya": "drd",
"Darumbal": "xgm",
"Dass": "dot",
"Datooga": "tcc",
"Daungwurrung": "dgw",
"Daur": "dta",
"Davawenyo": "daw",
"Dawawa": "dww",
"Dawera-Daweloor": "ddw",
"Dawro": "dwr",
"Day": "dai",
"Dayi": "dax",
"Dazaga": "dzg",
"Deccani": "dcc",
"Dedua": "ded",
"Defaka": "afn",
"Deg": "mzw",
"Deg Xinag": "ing",
"Degema": "deg",
"Degenan": "dge",
"Dehwari": "deh",
"Dek": "dek",
"Dela-Oenale": "row",
"Delo": "ntr",
"Dem": "dem",
"Dema": "dmx",
"Demisa": "dei",
"Demta": "dmy",
"Dena'ina": "tfn",
"Dendi": "ddn",
"Dengese": "dez",
"Dengka": "dnk",
"Denmark": "da",
"Denmark Kuno": "gmq-oda",
"Denmark Pengembara": "rmd",
"Deno": "dbb",
"Denya": "anv",
"Dení": "dny",
"Deori": "der",
"Desano": "des",
"Desiya": "dso",
"Dewas Rai": "dwz",
"Dewoin": "dee",
"Dezfuli": "def",
"Dghwede": "dgh",
"Dhaiso": "dhs",
"Dhalandji": "dhl",
"Dhangu": "dhg",
"Dhanki": "dhn",
"Dhao": "nfa",
"Dharug": "xdk",
"Dhatki": "mki",
"Dhimal": "dhi",
"Dhivehi": "dv",
"Dhodia": "dho",
"Dhudhuroa": "ddr",
"Dhungaloo": "dhx",
"Dhurga": "dhu",
"Dhuwal": "dwu",
"Dhuwaya": "dwy",
"Dia": "dia",
"Dibiyaso": "dby",
"Dibo": "dio",
"Didinga": "did",
"Dieri": "dif",
"Digo": "dig",
"Dii": "dur",
"Dijim-Bwilim": "cfa",
"Dilling": "dil",
"Dima": "jma",
"Dimasa": "dis",
"Dimbong": "dii",
"Dime": "dim",
"Dineor": "mrx",
"Ding": "diz",
"Dinka": "din",
"Dinka Barat Daya": "dik",
"Dinka Barat Laut": "diw",
"Dinka Tengah Selatan": "dib",
"Dinka Tenggara": "dks",
"Dinka Timur Laut": "dip",
"Diodio": "ddi",
"Diri": "dwa",
"Dirim": "dir",
"Disa": "dsi",
"Ditammari": "tbz",
"Ditidaht": "dtd",
"Diuwe": "diy",
"Diuxi-Tilantongo Mixtec": "xtd",
"Dixon Reef": "dix",
"Dizin": "mdx",
"Dizoid Purba": "omv-diz-pro",
"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",
"Dogon Ampari": "aqd",
"Dogon Nanga Dama": "nzz",
"Dogoso": "dgs",
"Dogosé": "dos",
"Dogri": "doi",
"Dogrib": "dgr",
"Dogul Dom": "dbg",
"Doka": "dbi",
"Doko-Uyanga": "uya",
"Dolgan": "dlg",
"Dom": "doa",
"Domaaki": "dmk",
"Domari": "rmt",
"Dominican Sign Language": "doq",
"Dompo": "doy",
"Domu": "dof",
"Domung": "dev",
"Dondo": "dok",
"Dong": "doh",
"Dongo": "doo",
"Dongolawi": "kzh",
"Dongotono": "ddd",
"Dongshanba Lalo": "yik",
"Dongxiang": "sce",
"Donno So Dogon": "dds",
"Doondo": "dde",
"Dorasque": "cba-dor",
"Dori'o": "dor",
"Dorig": "wwo",
"Doromu-Koki": "kqc",
"Dorze": "doz",
"Doso": "dol",
"Doteli": "dty",
"Dothraki": "art-dtk",
"Doura": "don",
"Doutai": "tds",
"Doyayo": "dow",
"Dravidia Purba": "dra-pro",
"Dravidia Selatan I Purba": "dra-sdo-pro",
"Dravidia Selatan II Purba": "dra-sdt-pro",
"Dravidia Selatan Purba": "dra-sou-pro",
"Dravidia Tengah Purba": "dra-cen-pro",
"Dravidia Utara Purba": "dra-nor-pro",
"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",
"Dumait": "sem-dum",
"Dumbea": "duf",
"Dumi": "dus",
"Dumpas": "dmv",
"Dumun": "dui",
"Duna": "duc",
"Dungan": "dng",
"Dungmali": "raa",
"Dungra Bhil": "duh",
"Dungu": "dbv",
"Dura": "drq",
"Duri": "mvp",
"Duriankere": "dbn",
"Duruwa": "pci",
"Dusner": "dsn",
"Dusun Deyah": "dun",
"Dusun Malang": "duq",
"Dusun Sugut": "kzs",
"Dusun Tambunan": "kzt",
"Dusun Witu": "duw",
"Dutch Sign Language": "dse",
"Duun": "dux",
"Duupa": "dae",
"Duvle": "duv",
"Duwai": "dbp",
"Dwang": "nnu",
"Dyaabugay": "dyy",
"Dyaberdyaber": "dyb",
"Dyan": "dya",
"Dyangadi": "dyn",
"Dyirbal": "dbl",
"Dyugun": "dyd",
"Dyula": "dyu",
"Dza": "jen",
"Dzala": "dzl",
"Dzando": "dzn",
"Dzao Min": "bpn",
"Dzodinka": "add",
"Dzongkha": "dz",
"Dzuun": "dnn",
"Dâw": "kwa",
"E": "eee",
"E'ma Buyang": "yzg",
"Eastern Canadian Inuktitut": "ike",
"Ebira": "igb",
"Ebla": "xeb",
"Ebrié": "ebr",
"Ebughu": "ebg",
"Ede Cabe": "cbj",
"Ede Ica": "ica",
"Ede Idaca": "idd",
"Ede Ije": "ijj",
"Ede Nago": "nqg",
"Edekiri Purba": "alv-edk-pro",
"Edo": "bin",
"Edoid Purba": "alv-edo-pro",
"Edolo": "etr",
"Edom": "xdm",
"Edopi": "dbf",
"Efai": "efa",
"Efate Selatan": "erk",
"Efate Utara": "llp",
"Efe": "efe",
"Efik": "efi",
"Efutop": "ofu",
"Ega": "ega",
"Eggon": "ego",
"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",
"Elam": "elx",
"Eleme": "elm",
"Elepi": "ele",
"Elip": "ekm",
"Elkei": "elk",
"Eloi": "art-elo",
"Elotepec Zapotec": "zte",
"Eloyi": "afo",
"Elseng": "mrf",
"Elu": "elu",
"Elymi": "xly",
"Emae": "mmw",
"Emai": "ema",
"Eman": "emn",
"Embaloh": "emb",
"Emberá Utara": "emp",
"Emberá-Baudó": "bdc",
"Emberá-Catío": "cto",
"Emberá-Chamí": "cmi",
"Emberá-Tadó": "tdc",
"Embu": "ebu",
"Emem": "enr",
"Emerillon": "eme",
"Emilian": "egl",
"Emplawas": "emw",
"En": "enc",
"Enawené-Nawé": "unk",
"Ende": "end",
"Enets Hutan": "enf",
"Enets Tundra": "enh",
"Enga": "enq",
"Engenni": "enn",
"Enggano": "eno",
"Enlhet": "enl",
"Enrekang": "ptt",
"Enu": "enu",
"Enwan": "env",
"Enwang": "enw",
"Enxet": "enx",
"Eotile": "eot",
"Epena": "sja",
"Epi-Olmec": "xep",
"Epie": "epi",
"Eravallan": "era",
"Erave": "kjy",
"Ere": "twp",
"Erie": "iro-ere",
"Eritai": "ert",
"Erokwanas": "erw",
"Erre": "err",
"Erromintxela": "emx",
"Ersu": "ers",
"Ersu Purba": "sit-ers-pro",
"Eruwa": "erh",
"Erzya": "myv",
"Esan": "ish",
"Ese": "mcq",
"Ese Ejja": "ese",
"Eshtehardi": "esh",
"Esimbi": "ags",
"Eskayan": "esy",
"Eskimo Purba": "esx-esk-pro",
"Eskimo-Aleut Purba": "esx-pro",
"Esmeralda": "sai-esm",
"Esperanto": "eo",
"Esselen": "esq",
"Estonia": "et",
"Esuma": "esm",
"Etchemin": "etc",
"Etebi": "etb",
"Eten": "etx",
"Eteocretan": "ecr",
"Eteocypriot": "ecy",
"Etkywan": "ich",
"Eton (Cameroon)": "eto",
"Eton (Vanuatu)": "etn",
"Etruria": "ett",
"Etulo": "utr",
"Evant": "bzz",
"Even": "eve",
"Evenki": "evn",
"Ewage-Notu": "nou",
"Ewarhuyana": "sai-ewa",
"Ewe": "ee",
"Ewondo": "ewo",
"Extremaduran": "ext",
"Eyak": "eya",
"Ezaa": "eza",
"Fagani": "faf",
"Faifi": "fif",
"Faiwol": "fai",
"Fala": "fax",
"Fali": "fli",
"Fali Baissa": "fah",
"Fali Purba": "alv-fli-pro",
"Fali Selatan": "fal",
"Fali Utara": "fll",
"Falisci": "xfa",
"Fam": "fam",
"Fanagalo": "fng",
"Fanamaket": "bjp",
"Fang (Bantu)": "fan",
"Fang (Beboid)": "fak",
"Fania": "fni",
"Faroe": "fo",
"Fars Barat Daya": "fay",
"Fars Barat Laut": "faz",
"Fas": "fqs",
"Fasu": "faa",
"Fataleka": "far",
"Fataluku": "ddg",
"Fayu": "fau",
"Fe'fe'": "fmp",
"Fedan": "pdn",
"Fembe": "agl",
"Fer": "kah",
"Feroge": "fer",
"Fiji": "fj",
"Fiji Barat": "wyy",
"Filipina Purba": "phi-pro",
"Filistin": "mis-phi",
"Filomena Mata-Coahuitlán Totonac": "tlp",
"Fingallian": "gmw-fin",
"Finisterre Yau": "yuw",
"Finland": "fi",
"Finnik Purba": "urj-fin-pro",
"Finongan": "fag",
"Fipa": "fip",
"Firan": "fir",
"Fiwaga": "fiw",
"Flemish Barat": "vls",
"Flemish Sign Language": "vgt",
"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",
"Fortsenal": "frt",
"Fox": "sac",
"Franc-Comtois": "roa-fcm",
"Francisco León Zoque": "zos",
"Franco-Provençal": "frp",
"Franconia Rhine": "gmw-rfr",
"Franconia Tengah": "gmw-cfr",
"Franconia Timur": "vmf",
"French Belgian Sign Language": "sfb",
"Frisia Barat": "fy",
"Frisia Kuno": "ofs",
"Frisia Saterland": "stq",
"Frisia Utara": "frr",
"Friulian": "fur",
"Fula": "ff",
"Fuliiru": "flr",
"Fulniô": "fun",
"Fum": "fum",
"Fungwa": "ula",
"Fur": "fvr",
"Furu": "fuu",
"Futuna Timur": "fud",
"Futuna-Aniwa": "fut",
"Fuyug": "fuy",
"Fwe": "fwe",
"Fwâi": "fwa",
"Fyam": "pym",
"Fyer": "fie",
"Gaa": "ttb",
"Gaam": "tbi",
"Gabadi": "kbt",
"Gabrielino-Fernandeño": "xgf",
"Gaelik Scotland": "gd",
"Gagnoa Bété": "btg",
"Gahri": "bfu",
"Galatia": "xga",
"Galicia": "gl",
"Galicia-Portugis Kuno": "roa-opt",
"Galindan": "xgl",
"Gallaecia": "cel-gal",
"Gallo": "roa-gal",
"Gallo-Italik Basilicata": "roa-gib",
"Gallo-Italik Sicily": "roa-gis",
"Gallura": "sdn",
"Galo": "adl",
"Gamale Kham": "kgj",
"Gamela": "sai-gam",
"Gamilaraay": "kld",
"Gamo-Ningi": "bte",
"Gandhari": "pgd",
"Gane": "gzn",
"Ganza": "gza",
"Gapapaiwa": "pwg",
"Garawa": "wrk",
"Garifuna": "cab",
"Garingbal": "xgi",
"Garus": "gyb",
"Garza": "xgr",
"Gaul": "cel-gau",
"Gavak": "dmc",
"Gavião Pará": "gvp",
"Gavião do Jiparaná": "gvo",
"Gawar-Bati": "gwt",
"Gawwada": "gwd",
"Gayil": "gyl",
"Gayón": "sai-gay",
"Gbaya Barat Laut": "gya",
"Gbaya Purba": "gba-pro",
"Gbayi": "gyg",
"Gbe Kotafon": "kqk",
"Gbe Purba": "alv-gbe-pro",
"Gbe Xwla Barat": "xwl",
"Gbin": "xgb",
"Gciriku": "diu",
"Gcwi": "gwj",
"Ge": "hmj",
"Gedeo": "drs",
"Gela": "nlg",
"Gele'": "sbc",
"Georgia": "ka",
"Georgia Kuno": "oge",
"Georgia-Zan Purba": "ccs-gzn-pro",
"Gepo": "ygp",
"Geshiza": "ero-gsz",
"Ghayavi": "bmk",
"Ghomala'": "bbj",
"Ghotuo": "aaa",
"Giangan": "bgi",
"Gikyode": "acd",
"Gimme": "kmp",
"Girawa": "bbr",
"Giryama": "nyf",
"Gizrra": "tof",
"Glio-Oubi": "oub",
"Glosa": "igs",
"Goa'uld": "art-gld",
"Goemai": "ank",
"Goguryeo": "zkg",
"Gokhy": "tbq-gkh",
"Golin": "gvf",
"Golpa": "lja",
"Gong": "ugo",
"Goreng": "xgg",
"Goth Crimea": "gme-cgo",
"Gottscheerish": "gmw-gts",
"Gowro": "gwf",
"Grangali": "nli",
"Grass Koiari": "kbk",
"Grassfields Purba": "nic-grf-pro",
"Greek": "el",
"Greenland": "kl",
"Gros Ventre": "ats",
"Gua": "gwx",
"Guachí": "sai-gua",
"Guajá": "gvj",
"Guamo": "sai-gmo",
"Guang Purba": "alv-gng-pro",
"Guarani Klasik": "gn-cls",
"Guarayu": "gyr",
"Guazacapán": "nai-guz",
"Gudang": "xgd",
"Gudanji": "nji",
"Guevea de Humboldt Zapotec": "zpg",
"Gugu Warra": "wrw",
"Guiberoua Bété": "bet",
"Guinau": "awd-gnu",
"Guinea-Bissau Sign Language": "lgs",
"Gujarati Kuno": "inc-ogu",
"Gujarati Pertengahan": "inc-mgu",
"Gujerat": "gu",
"Gulay": "gvl",
"Gumawana": "gvs",
"Gundungurra": "xrd",
"Gungabula": "gyf",
"Gungu": "rub",
"Gunu": "yas",
"Gunya": "gyy",
"Gur Lama": "las",
"Gur Purba": "nic-gur-pro",
"Gurani": "hac",
"Gurmana": "gvm",
"Gurung": "gvr",
"Gurunsi Purba": "nic-gns-pro",
"Gutnish": "gmq-gut",
"Gutnish Kuno": "gmq-ogt",
"Guugu Yimidhirr": "kky",
"Guwa": "xgw",
"Guwamu": "gwu",
"Guwar": "aus-guw",
"Guyani": "gvy",
"Gvoko": "ngs",
"Gwa": "gwb",
"Gwahatike": "dah",
"Gwak": "jgk",
"Gwamhi-Wuri": "bga",
"Gwandara": "gwn",
"Gwara": "alv-gwa",
"Gweno": "gwe",
"Gwere": "gwr",
"Gwich'in": "gwi",
"Gyalsumdo": "gyo",
"Gyele": "gyi",
"Gyem": "gye",
"Güenoa": "sai-gue",
"Habu": "hbu",
"Hachijō": "jpx-hcj",
"Hadiyya": "hdy",
"Hadothi": "hoj",
"Hadrami": "xhd",
"Hadza": "hts",
"Haeke": "aek",
"Hahon": "hah",
"Haida": "hai",
"Haida Selatan": "hax",
"Haida Utara": "hdn",
"Haigwai": "hgw",
"Hainyaxo Bozo": "bzx",
"Haisla": "has",
"Haitian Vodoun Culture Language": "hvc",
"Haiǁom": "hgm",
"Haji": "hji",
"Hajong": "haj",
"Hakka": "hak",
"Hakö": "hao",
"Halang": "hal",
"Halang Doan": "hld",
"Halbi": "hlb",
"Halia": "hla",
"Halkomelem": "hur",
"Halmahera Utara Purba": "paa-nha-pro",
"Halmahera-Cenderawasih Purba": "poz-hce-pro",
"Hamap": "hmu",
"Hamba": "hba",
"Hamer-Banna": "amf",
"Hamtai": "hmt",
"Hanga": "hag",
"Hanga Hundi": "wos",
"Hani": "hni",
"Hanunoo": "hnn",
"Harami": "xha",
"Harari": "har",
"Haraza": "nub-har",
"Harijan Kinnauri": "kjo",
"Haroi": "hro",
"Harsusi": "hss",
"Haruai": "tmd",
"Haruku": "hrk",
"Haryanvi": "bgc",
"Harzani": "hrz",
"Hasait": "sem-has",
"Hasha": "ybj",
"Hatam": "had",
"Hatti": "xht",
"Hausa": "ha",
"Haush": "sai-hau",
"Havasupai-Walapai-Yavapai": "yuf",
"Haveke": "hvk",
"Havu": "hav",
"Hawai'i Pidgin Sign Language": "hps",
"Hawaii": "haw",
"Haya": "hay",
"Hdi": "xed",
"Hehe": "heh",
"Heiban": "hbn",
"Heiban Purba": "alv-hei-pro",
"Heiltsuk": "hei",
"Hellenik Purba": "grk-pro",
"Helong": "heg",
"Hema": "nix",
"Hemba": "hem",
"Hember Avu": "mmi",
"Herdé": "hed",
"Herero": "hz",
"Hermit": "llf",
"Hernican": "xhr",
"Het": "hit",
"Hewa": "ham",
"Heyo": "auk",
"Hibito": "hib",
"Hidatsa": "hid",
"Higaonon": "mba",
"Highland Konjo": "kjk",
"Highland Oaxaca Chontal": "chd",
"Highland Popoluca": "poi",
"Highland Totonac": "tos",
"Hijuk": "hij",
"Hiligaynon": "hil",
"Himarimã": "hir",
"Hindi": "hi",
"Hindi Dogri": "dgo",
"Hindi Fiji": "hif",
"Hindi Kreol Andaman": "hca",
"Hindi Kuno": "inc-ohi",
"Hindko Selatan": "hnd",
"Hindko Utara": "hno",
"Hinduri": "hii",
"Hindustan Caribbean": "hns",
"Hiri Motu": "ho",
"Hisma": "sem-his",
"Hitchiti": "nai-hit",
"Hitu": "htu",
"Hiw": "hiw",
"Hixkaryana": "hix",
"Hlai": "lic",
"Hlai Purba": "qfa-lic-pro",
"Hlepho Phowa": "yhl",
"Hlersu": "hle",
"Hmar": "hmr",
"Hmong Don": "hmf",
"Hmong Dô": "hmv",
"Hmong Guiyang Barat Daya": "hmg",
"Hmong Guiyang Selatan": "hmy",
"Hmong Guiyang Utara": "huj",
"Hmong Hijau": "hnj",
"Hmong Huishui Barat Daya": "hmh",
"Hmong Huishui Tengah": "hmc",
"Hmong Huishui Timur": "hme",
"Hmong Huishui Utara": "hmi",
"Hmong Luopohe": "hml",
"Hmong Mashan Barat": "hmw",
"Hmong Mashan Selatan": "hma",
"Hmong Mashan Tengah": "hmm",
"Hmong Mashan Utara": "hmp",
"Hmong Putih": "mww",
"Hmong Shua": "hmz",
"Hmong-Mien Purba": "hmx-pro",
"Hmongik Purba": "hmn-pro",
"Hmwaveke": "mrk",
"Ho": "hoc",
"Ho Chi Minh City Sign Language": "hos",
"Hoava": "hoa",
"Hobyót": "hoh",
"Hoia Hoia": "hhi",
"Hokkien": "nan-hbl",
"Hokkien Peranakan Kelantan": "mis-hkl",
"Holikachuk": "hoi",
"Holiya": "hoy",
"Holma": "hod",
"Holoholo": "hoo",
"Holu": "hol",
"Homa": "hom",
"Hone": "juh",
"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",
"Hrusish Purba": "sit-hrs-pro",
"Hruso": "hru",
"Hrê": "hre",
"Hu": "huo",
"Huachipaeri": "hug",
"Huambisa": "hub",
"Huaorani": "auc",
"Huarijio": "var",
"Huaulu": "hud",
"Huave": "huv",
"Huba": "hbb",
"Huetar": "cba-hue",
"Huichol": "hch",
"Huilliche": "huh",
"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",
"Hungary": "hu",
"Hungary Kuno": "ohu",
"Hungworo": "nat",
"Hunjara-Kaina Ke": "hkk",
"Hunsrik": "hrx",
"Hunzib": "huz",
"Hupa": "hup",
"Hupdë": "jup",
"Hupla": "hap",
"Hurri": "xhu",
"Hurro-Urartia Purba": "qfa-hur-pro",
"Hwana": "hwo",
"Hya": "hya",
"Hyam": "jab",
"Hän": "haa",
"Hértevin": "hrt",
"I-Wak": "iwk",
"Iaai": "iai",
"Iamalele": "yml",
"Iatmul": "ian",
"Iau": "tmu",
"Ibali Teke": "tek",
"Ibaloi": "ibl",
"Iban": "iba",
"Ibanag": "ibg",
"Ibani": "iby",
"Ibatan": "ivb",
"Iberia": "xib",
"Ibibio": "ibb",
"Ibino": "ibn",
"Iboko": "bkp",
"Ibrani": "he",
"Ibrani Samaria": "smp",
"Ibu": "ibu",
"Ibuoro": "ibr",
"Iceland": "is",
"Iceve-Maci": "bec",
"Idahan": "dbj",
"Idakho-Isukha-Tiriki": "ida",
"Idaté": "idt",
"Idere": "ide",
"Idesa": "ids",
"Idi": "idi",
"Idiom Neutral": "mis-idn",
"Ido": "io",
"Idoma": "idu",
"Idomoid Purba": "alv-ido-pro",
"Idon": "idc",
"Idu": "clk",
"Idun": "ldb",
"Iduna": "viv",
"Ifo": "iff",
"Ifè": "ife",
"Igala": "igl",
"Igana": "igg",
"Igbo": "ig",
"Igboid Purba": "alv-igb-pro",
"Igede": "ige",
"Ignaciano": "ign",
"Igo": "ahl",
"Iguta": "nar",
"Igwe": "igw",
"Iha": "ihp",
"Ihievbe": "ihi",
"Ija-Zuba": "vki",
"Ijoid Purba": "ijo-pro",
"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",
"Illyria": "xil",
"Ilocano": "ilo",
"Ilongot": "ilk",
"Ilue": "ilv",
"Ilwana": "mlk",
"Imbongu": "imo",
"Imonda": "imn",
"Imroing": "imr",
"Inabaknon": "abx",
"Inapang": "mzu",
"Indanga": "bnt-ind",
"Indo-Arya Purba": "inc-pro",
"Indo-Eropah Purba": "ine-pro",
"Indo-Iran Purba": "iir-pro",
"Indo-Portugis": "idb",
"Indonesia": "id",
"Indri": "idr",
"Ineseño": "inz",
"Inga": "inb",
"Inggeris": "en",
"Inggeris Kreol Islander": "icr",
"Inggeris Kreol Tobago": "tgh",
"Inggeris Kreol Trinidad": "trf",
"Inggeris Kreol Turks dan Caicos": "tch",
"Inggeris Kreol Vincent": "svc",
"Inggeris Kuno": "ang",
"Inggeris Pertengahan": "enm",
"Inggeris Pijin Cina": "cpi",
"Inggeris Solombala": "crp-slb",
"Ingria": "izh",
"Ingush": "inh",
"Inlaod Itneg": "iti",
"Inoke-Yate": "ino",
"Inonhan": "loc",
"Inor": "ior",
"Interlingua": "ia",
"Interlingue": "ie",
"International Sign": "ils",
"Interslavic": "isv",
"Intha": "int",
"Inuinnaqtun": "esx-inq",
"Inuit Purba": "esx-inu-pro",
"Inuktitut": "iu",
"Inuktun": "esx-ink",
"Inupiaq": "ik",
"Inuvialuktun": "ikt",
"Ipai": "nai-ipa",
"Ipiko": "ipo",
"Ipili": "ipi",
"Ipulo": "ass",
"Iquito": "iqu",
"Ir": "irr",
"Iran Purba": "ira-pro",
"Irantxe": "irn",
"Iranun": "ill",
"Iraqw": "irk",
"Irarutu": "irh",
"Iraya": "iry",
"Ireland": "ga",
"Ireland Kuno": "sga",
"Ireland Pertengahan": "mga",
"Iresim": "ire",
"Iroquois Purba": "iro-pro",
"Iroquois Utara Purba": "iro-nor-pro",
"Irula": "iru",
"Isabi": "isa",
"Isan": "tts",
"Isanzu": "isn",
"Isauria": "mis-isa",
"Isconahua": "isc",
"Isebe": "igo",
"Ishkashimi": "isk",
"Isinai": "inn",
"Isirawa": "srl",
"Isnag": "isd",
"Isoko": "iso",
"Istriot": "ist",
"Istro-Romania": "ruo",
"Isu": "isu",
"Isubu": "szv",
"Isyarat Kenya": "xki",
"Isyarat Maghribi": "xms",
"Isyarat Malaysia": "xml",
"Itali": "it",
"Italik Purba": "itc-pro",
"Itawit": "itv",
"Itelmen": "itl",
"Itene": "ite",
"Iteri": "itr",
"Itik": "itx",
"Ito": "itw",
"Itonama": "ito",
"Itsekiri": "its",
"Itu Mbon Uzo": "itm",
"Itzá": "itz",
"Iu Mien": "ium",
"Ivatan": "ivv",
"Iwaidja": "ibd",
"Iwaidjan Purba": "aus-wdj-pro",
"Iwal": "kbm",
"Iwam": "iwm",
"Iwur": "iwo",
"Ixcatec": "ixc",
"Ixil": "ixl",
"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",
"Jakaltek": "jac",
"Jakati": "jat",
"Jakun": "jak",
"Jalkunan": "bxl",
"Jamamadí": "jaa",
"Jaminjung": "djd",
"Jamsay": "djm",
"Jamtish": "gmq-jmk",
"Jandavra": "jnd",
"Janday": "jan",
"Jangkang": "djo",
"Jangshung": "jna",
"Janji": "jni",
"Japhug": "sit-jap",
"Japrería": "jru",
"Jaqaru": "jqr",
"Jara": "jaf",
"Jarai": "jra",
"Jarawa": "anq",
"Jaru": "ddj",
"Jassic": "ysc",
"Jaunsari": "jns",
"Javindo": "jvd",
"Jawa": "jv",
"Jawa Caribbean": "jvn",
"Jawa Kuno": "kaw",
"Jawa Ontong": "ojv",
"Jawe": "jaz",
"Jaya": "jyy",
"Jebel Timur Purba": "sdv-eje-pro",
"Jebero": "jeb",
"Jeh": "jeh",
"Jehai": "jhi",
"Jeikó": "sai-jko",
"Jeju": "jje",
"Jemez": "tow",
"Jenaama Bozo": "bze",
"Jeng": "jeg",
"Jennu Kurumba": "xuj",
"Jepun": "ja",
"Jepun Kuno": "ojp",
"Jepunik Purba": "jpx-pro",
"Jere": "jer",
"Jeri Kuo": "jek",
"Jerman": "de",
"Jerman Pennsylvania": "pdc",
"Jerman Rendah": "nds",
"Jerman Tengah Timur": "gmw-ecg",
"Jerman Volga": "gmw-vog",
"Jerman Zipser": "gmw-zps",
"Jermanik Barat Purba": "gmw-pro",
"Jermanik Purba": "gem-pro",
"Jeru": "akj",
"Jerung": "jee",
"Jiamao": "jio",
"Jiba": "juo",
"Jibu": "jib",
"Jicaque Barat": "nai-wji",
"Jicarilla": "apj",
"Jie": "mis-jie",
"Jiiddu": "jii",
"Jilbe": "jie",
"Jili": "mgi",
"Jilim": "jil",
"Jimi": "jmi",
"Jimjimen": "jim",
"Jin": "cjy",
"Jina": "jia",
"Jingpho": "kac",
"Jingulu": "jig",
"Jiongnai Bunu": "pnu",
"Jirajara": "sai-jrj",
"Jirel": "jul",
"Jiru": "jrr",
"Jita": "jit",
"Jizhao": "mis-jzh",
"Jju": "kaj",
"Joba": "job",
"Jofotek-Bromnya": "jbr",
"Jola-Fonyi": "dyo",
"Jola-Kasa": "csk",
"Jonkor Bourmataguil": "jeu",
"Jorá": "jor",
"Jowulu": "jow",
"Ju": "juu",
"Juang": "jun",
"Judeo-Itali": "itk",
"Judeo-Persian": "jpr",
"Judeo-Tat": "jdt",
"Jukun Takum": "jbu",
"Jukunoid Purba": "nic-jkn-pro",
"Jumaytepeque": "nai-jum",
"Jumjum": "jum",
"Jumli": "jml",
"Jungle Inga": "inj",
"Jur Modo": "bex",
"Juray": "juy",
"Jurchen": "juc",
"Jurúna": "jur",
"Jutiapa": "nai-jtp",
"Jutish": "jut",
"Juwal": "mwb",
"Juǀ'hoan": "ktz",
"Jwira-Pepesa": "jwi",
"Jê Purba": "sai-jee-pro",
"Jê Selatan Purba": "sai-sje-pro",
"Jê Tengah Purba": "sai-cje-pro",
"Jê Utara Purba": "sai-nje-pro",
"Júma": "jua",
"K'iche'": "quc",
"Kaamba": "xku",
"Kaan": "ldl",
"Kaapor Sign Language": "uks",
"Kaba": "ksp",
"Kabalai": "kvf",
"Kabardia": "kbd",
"Kabatei": "xkp",
"Kabba-Laka": "lap",
"Kabishiana": "tup-kab",
"Kabiyé": "kbp",
"Kabola": "klz",
"Kabore One": "onk",
"Kabras": "lkb",
"Kaburi": "uka",
"Kabutra": "kbu",
"Kabuverdianu": "kea",
"Kabwa": "cwa",
"Kabwari": "kcw",
"Kabyle": "kab",
"Kachama-Ganjule": "kcx",
"Kachari": "xac",
"Kachchi": "kfr",
"Kacipo-Balesi": "koe",
"Kaco'": "xkk",
"Kadai": "kzd",
"Kadar": "kej",
"Kadara": "kad",
"Kadaru": "kdu",
"Kadazan": "kzj",
"Kadazan Labuk-Kinabatangan": "dtb",
"Kadazan Sungai Klias": "kqt",
"Kadazandusun": "dtp",
"Kadiwéu": "kbc",
"Kado": "kdv",
"Kadu Purba": "qfa-kad-pro",
"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",
"Kaingáng São Paulo": "zkp",
"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",
"Kalagan": "kqe",
"Kalagan Kagan": "kll",
"Kalagan Tagakaulu": "klg",
"Kalam": "kmh",
"Kalami": "gwc",
"Kalamian Purba": "phi-kal-pro",
"Kalamsé": "knz",
"Kalanadi": "wkl",
"Kalanga": "kck",
"Kalao": "kly",
"Kalapuya": "kyl",
"Kalapuya Purba": "nai-klp-pro",
"Kalapuya Selatan": "sxk",
"Kalapuya Utara": "nrt",
"Kalarko": "kba",
"Kalasha": "kls",
"Kalasuri": "xme-kls",
"Kalašma": "ine-kal",
"Kalenjin": "kln",
"Kalinago": "crb",
"Kalinga Butbut": "kyb",
"Kalinga Lembah Mabaka": "kkg",
"Kalinga Limos": "kmk",
"Kalinga Lubuagan": "knb",
"Kalinga Madukayang": "kmd",
"Kalinga Selatan": "ksc",
"Kalinga Tanudan": "kml",
"Kalkatungu": "ktg",
"Kalkoti": "xka",
"Kalmyk": "xal",
"Kalou": "ywa",
"Kaluli": "bco",
"Kalumpang": "kli",
"Kam": "kdx",
"Kam Selatan": "kmc",
"Kam Utara": "doc",
"Kam-Sui Purba": "qfa-kms-pro",
"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",
"Kambera": "xbr",
"Kamberataro": "kbv",
"Kamberau": "irx",
"Kambiwá": "xbw",
"Kami": "kmi",
"Kamkata-viri": "bsh",
"Kamo": "kcq",
"Kamoro": "kgq",
"Kampa Purba": "awd-kmp-pro",
"Kamta": "rkt",
"Kamta Purba": "inc-krd-pro",
"Kamu": "xmu",
"Kamula": "xla",
"Kamwe": "hig",
"Kanakanabu": "xnb",
"Kanakuru": "kna",
"Kanamari": "knm",
"Kanashi": "xns",
"Kanasi": "soq",
"Kandas": "kqw",
"Kande": "kbs",
"Kang": "kyp",
"Kanga": "kcp",
"Kangean": "kkv",
"Kanggape": "igm",
"Kangjia": "kxs",
"Kango": "kty",
"Kango-Sua": "kzy",
"Kangri": "xnr",
"Kaniet": "ktk",
"Kanikkaran": "kev",
"Kaningdon-Nindem": "kdp",
"Kaningi": "kzo",
"Kaningra": "knr",
"Kaninuwa": "wat",
"Kanite": "kmu",
"Kanjari": "kft",
"Kanju": "kbe",
"Kankanaey": "kne",
"Kankanay Utara": "xnn",
"Kannada": "kn",
"Kannada Kuno": "dra-okn",
"Kannada Kurumba": "kfi",
"Kannada Pertengahan": "dra-mkn",
"Kannauji": "bjj",
"Kanowit": "kxn",
"Kanoé": "kxo",
"Kansa": "ksk",
"Kantonis": "yue",
"Kantosi": "xkt",
"Kanu": "khx",
"Kanufi": "kni",
"Kanuri": "kr",
"Kanyok": "kny",
"Kao": "kax",
"Kaonde": "kqn",
"Kap": "ykm",
"Kapampangan": "pam",
"Kapauri": "khp",
"Kapin": "tbx",
"Kapinawá": "xpn",
"Kapingamarangi": "kpg",
"Kapriman": "dju",
"Kaptiau": "kbi",
"Kapya": "klo",
"Kaqchikel": "cak",
"Kara (New Guinea)": "leu",
"Kara (Tanzania)": "reg",
"Karaboro Barat": "kza",
"Karaboro Timur": "xrb",
"Karachay-Balkar": "krc",
"Karaim": "kdr",
"Karajá": "kpj",
"Karakalpak": "kaa",
"Karakhanid": "xqa",
"Karami": "xar",
"Karamojong": "kdj",
"Karang": "kzr",
"Karanga": "kth",
"Karankawa": "zkk",
"Karao": "kyj",
"Karas": "kgv",
"Karata": "kpt",
"Karawa": "xrw",
"Karbi": "mjw",
"Karbi Amri": "ajz",
"Kare (Africa)": "kbn",
"Kare (New Guinea)": "kmf",
"Karekare": "kai",
"Karelia": "krl",
"Karen Brek": "kvl",
"Karen Bwe": "bwe",
"Karen Geba": "kvq",
"Karen Lahta": "kvt",
"Karen Manumanaw": "kxf",
"Karen Pa'o": "blk",
"Karen Paku": "kpp",
"Karen Purba": "kar-pro",
"Karen S'gaw": "ksw",
"Karen Yinbaw": "kvu",
"Karen Yintale": "kvy",
"Karen Zayein": "kxk",
"Karey": "kyd",
"Kari": "kbj",
"Kari'na": "car",
"Karingani": "kgn",
"Karipuna": "kuq",
"Karipúna": "kgm",
"Kariri": "kzw",
"Karitiâna": "ktn",
"Kariya": "kil",
"Kariyarra": "vka",
"Karkar-Yuri": "yuj",
"Karkin": "krb",
"Karko": "kko",
"Karnai": "bbv",
"Karo": "kxh",
"Karok": "kyh",
"Karolanos": "kyn",
"Karon": "krx",
"Karon Dori": "kgw",
"Karore": "xkx",
"Karranga": "xrq",
"Kartvelia Purba": "ccs-pro",
"Karuwali": "rxw",
"Kasanga": "ccj",
"Kasem": "xsm",
"Kashaya": "kju",
"Kashmir": "ks",
"Kashubian": "csb",
"Kasiguranin": "ksn",
"Kaska": "kkz",
"Kaskean": "zsk",
"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",
"Katu Barat": "kuf",
"Katu Timur": "ktv",
"Katua": "kta",
"Katuik Purba": "mkh-kat-pro",
"Katukina": "knt",
"Kaukasia Barat Laut Purba": "cau-nwc-pro",
"Kaukasia Timur Laut Purba": "cau-nec-pro",
"Kaulong": "pss",
"Kaur": "vkk",
"Kaure": "bpp",
"Kaurna": "zku",
"Kauwera": "xau",
"Kavalan": "ckv",
"Kavet": "krv",
"Kawacha": "kcb",
"Kawahiva": "tup-kaw",
"Kawaiisu": "xaw",
"Kawe": "kgb",
"Kawishana": "awd-kaw",
"Kawésqar": "alc",
"Kaxararí": "ktx",
"Kaxuyana": "kbb",
"Kaya": "zra",
"Kayabí": "kyz",
"Kayagar": "kyt",
"Kayah Barat": "kyu",
"Kayah Timur": "eky",
"Kayan": "pdu",
"Kayan Baram": "kys",
"Kayan Mahakam": "xay",
"Kayan Mendalam": "xkd",
"Kayan Rejang": "ree",
"Kayan Sungai Kayan": "xkn",
"Kayan Wahau": "whu",
"Kayapa Kallahan": "kak",
"Kayapó": "txu",
"Kayardild": "gyd",
"Kayeli": "kzl",
"Kayong": "kxy",
"Kayort": "kyv",
"Kayupulau": "kzu",
"Kazakh": "kk",
"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",
"Keley-I Kallahan": "ify",
"Keliko": "kbo",
"Kelo": "xel",
"Kelon": "kyo",
"Keltik Purba": "cel-pro",
"Kemak": "kem",
"Kembayan": "xem",
"Kemberano": "bzp",
"Kembra": "xkw",
"Kemezung": "dmo",
"Kemiehua": "kfj",
"Kemtuik": "kmt",
"Kenaboi": "xbn",
"Kendeje": "klf",
"Kendem": "kvm",
"Kenga": "kyq",
"Keninjal": "knl",
"Kensiu": "kns",
"Kenswei Nsei": "ndb",
"Kenyah Wahau": "whk",
"Kenyang": "ken",
"Kenyi": "lke",
"Keoru-Ahia": "xeu",
"Kepkiriwát": "kpn",
"Kepo'": "kuk",
"Kera": "ker",
"Kerak": "hhr",
"Kereho": "xke",
"Kerek": "krk",
"Keres Barat": "kjq",
"Keres Timur": "kee",
"Kerewe": "ked",
"Kerewo": "kxz",
"Kerinci": "kvr",
"Kermanik": "xme-ker",
"Kesawai": "xes",
"Ket": "ket",
"Ketangalan": "kae",
"Kete": "kcv",
"Ketengban": "xte",
"Ketum": "ktt",
"Kewa": "kew",
"Kewa Timur": "kjs",
"Keyagana": "kyg",
"Kgalagadi": "xkv",
"Khakas": "kjh",
"Khalaj": "klj",
"Khaling": "klr",
"Kham": "kjl",
"Kham Parbate Timur": "kif",
"Kham Purba": "sit-kha-pro",
"Khamti": "kht",
"Khamyang": "ksu",
"Khana": "ogo",
"Khandeshi": "khn",
"Khanty Purba": "kca-pro",
"Khanty Selatan": "kca-sou",
"Khanty Timur": "kca-eas",
"Khanty Utara": "kca-nor",
"Khao": "xao",
"Kharam Naga": "kfw",
"Kharia": "khr",
"Kharia Thar": "ksy",
"Khasi": "kha",
"Khasi Purba": "aav-khs-pro",
"Khayo": "lko",
"Khazar": "zkz",
"Khe": "kqg",
"Khehek": "tlx",
"Khengkha": "xkf",
"Khetrani": "xhe",
"Khinalug": "kjj",
"Khirwar": "kwx",
"Khisa": "kqm",
"Khitan": "zkt",
"Khlor": "llo",
"Khlula": "ykl",
"Khmer": "km",
"Khmer Kuno": "okz",
"Khmer Pertengahan": "xhm",
"Khmer Purba": "mkh-kmr-pro",
"Khmer Utara": "kxm",
"Khmu": "kjg",
"Khmuik Purba": "mkh-khm-pro",
"Kho-Bwa Barat Purba": "sit-khw-pro",
"Kho-Bwa Purba": "sit-khb-pro",
"Khoe Purba": "khi-kho-pro",
"Khoekhoe": "naq",
"Khoini": "xkc",
"Kholok": "ktc",
"Kholosi": "inc-kho",
"Khonso": "kxc",
"Khorezmian Turkic": "zkh",
"Khortha": "inc-khr",
"Khotan": "kho",
"Khowar": "khw",
"Khroskyabs": "jiq",
"Khua": "xhv",
"Khuen": "khf",
"Khvarshi": "khv",
"Khwarezm": "xco",
"Khwe": "xuu",
"Kháng": "kjm",
"Khün": "kkh",
"Kibala": "blv",
"Kibena": "bez",
"Kibet": "kie",
"Kibiri": "prm",
"Kichwa": "qwe-kch",
"Kickapoo": "kic",
"Kikai": "kzg",
"Kikami": "kcu",
"Kikuyu": "ki",
"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",
"Kinnauri": "kfk",
"Kinnauri Bhoti": "nes",
"Kintaq": "knq",
"Kinuku": "kkd",
"Kioko": "ues",
"Kiong": "kkm",
"Kiorr": "xko",
"Kiowa": "kio",
"Kipchak": "qwm",
"Kipfokomo": "pkb",
"Kipsigis": "sgc",
"Kiput": "kyi",
"Kir-Balar": "kkr",
"Kirfi": "kks",
"Kirike": "okr",
"Kirikiri": "kiy",
"Kirya-Konzel": "fkk",
"Kis": "kis",
"Kisa": "lks",
"Kisan": "xis",
"Kisankasa": "kqh",
"Kisar": "kje",
"Kisi": "kiz",
"Kissi Selatan": "kss",
"Kissi Utara": "kqs",
"Kitanemuk": "azc-ktn",
"Kitembo": "tbt",
"Kitsai": "kii",
"Kituba": "ktu",
"Kiunum": "wei",
"Kiwai Selatan": "kjd",
"Kiwai Timur Laut": "kiw",
"Kla": "lda",
"Klallam": "clm",
"Klamath-Modoc": "kla",
"Klao": "klu",
"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 Indus": "mvy",
"Kohistani Shina": "plk",
"Koho": "kpm",
"Kohumono": "bcs",
"Koi": "kkt",
"Koiari Gunung": "kpx",
"Koibal": "zkb",
"Koireng": "nkd",
"Koitabu": "kqi",
"Koiwat": "kxt",
"Kok-Paponk": "okg",
"Kokata": "ktd",
"Kokborok": "trp",
"Koke": "kou",
"Koko-Bera": "kkp",
"Kokoda": "xod",
"Kokola": "kzn",
"Kokota": "kkk",
"Kol (Cameroon)": "biw",
"Kol (New Guinea)": "kol",
"Kola": "kvv",
"Kolami": "kfb",
"Kolami Tenggara": "nit",
"Kolbila": "klc",
"Kolhe": "ekl",
"Kolibugan Subanon": "skn",
"Kolom": "klm",
"Koluwawa": "klx",
"Kom (Cameroon)": "bkm",
"Kom (India)": "kmm",
"Koma": "kmy",
"Koma Purba": "ssa-kom-pro",
"Komba": "kpf",
"Kombai": "tyn",
"Kombio": "xbi",
"Komering": "kge",
"Komi Kuno": "urj-koo",
"Komi-Permyak": "koi",
"Komi-Yazva": "urj-kya",
"Komi-Zyrian": "kpv",
"Kominimung": "xoi",
"Komisenia Purba": "ira-kms-pro",
"Komo": "xom",
"Komodo": "kvh",
"Kompane": "kvp",
"Komyandaret": "kzv",
"Kon Keu": "kkn",
"Konabéré": "bbo",
"Konai": "kxw",
"Konda": "knd",
"Konda-Dora": "kfc",
"Koneraw": "kdw",
"Kongo": "kg",
"Konjo Pesisir": "kjc",
"Konkani": "kok",
"Konkomba": "xon",
"Konni": "kma",
"Kono (Guinea)": "knu",
"Kono (Nigeria)": "klk",
"Kono (Sierra Leone)": "kno",
"Konomala": "koa",
"Konomihu": "nai-knm",
"Konongo": "kcz",
"Konzo": "koo",
"Koonzime": "ozm",
"Koorete": "kqy",
"Kopar": "xop",
"Kopkaka": "opk",
"Korafe-Yegha": "kpr",
"Korak": "koz",
"Korana": "kqz",
"Korandje": "kcy",
"Korea": "ko",
"Korea Kuno": "oko",
"Korea Moden Awal": "ko-ear",
"Korea Pertengahan": "okm",
"Korea Purba": "qfa-kor-pro",
"Koreguaje": "coe",
"Koresh-e Rostam": "okh",
"Korku": "kfq",
"Koro (Afrika Barat)": "kfo",
"Koro (India)": "jkr",
"Koro (New Guinea)": "kxr",
"Koro (Vanuatu)": "krf",
"Koromfé": "kfz",
"Koromira": "kqj",
"Koronadal Blaan": "bpr",
"Koroni": "xkq",
"Korop": "krp",
"Koropó": "xxr",
"Koroshi": "ktl",
"Korowai": "khe",
"Korra Koraga": "kfd",
"Korubo": "xor",
"Korupun-Sela": "kpq",
"Korwa": "kfp",
"Koryak": "kpy",
"Kosadle": "kiq",
"Kosarek Yale": "kkl",
"Kosena": "kze",
"Koshin": "kid",
"Kosrae": "kos",
"Kota (Gabon)": "koq",
"Kota (India)": "kfe",
"Kotava": "avk",
"Koti": "eko",
"Kott": "zko",
"Kou": "snz",
"Kouya": "kyf",
"Kovai": "kqb",
"Kove": "kvc",
"Kowaki": "xow",
"Kowiai": "kwh",
"Koy Sanjaq Surat": "kqd",
"Koya": "kff",
"Koyaga": "kga",
"Koyo": "koh",
"Koyra Chiini": "khq",
"Koyraboro Senni": "ses",
"Koyukon": "koy",
"Kpagua": "kuw",
"Kpala": "kpl",
"Kpan": "kpk",
"Kpasam": "pbn",
"Kpati": "koc",
"Kpatili": "kym",
"Kpee": "cpo",
"Kpelle": "kpe",
"Kpessi": "kef",
"Kplang": "kph",
"Kra Purba": "qfa-kra-pro",
"Kra-Dai Purba": "qfa-tak-pro",
"Krache": "kye",
"Krahn Barat": "krw",
"Krahn Timur": "kqo",
"Krahô": "xra",
"Kraol": "rka",
"Krenak": "kqq",
"Kreol Afro-Seminole": "afs",
"Kreol Bahamas": "bah",
"Kreol Belize": "bzj",
"Kreol Belter": "art-bel",
"Kreol Guinea-Bissau": "pov",
"Kreol Haiti": "ht",
"Kreol Hawaii": "hwc",
"Kreol Inggeris Antigua dan Barbuda": "aig",
"Kreol Inggeris Guyana": "gyn",
"Kreol Jamaica": "jam",
"Kreol Kepulauan Virgin": "vic",
"Kreol Lelaki Ngatik": "ngm",
"Kreol Louisiana": "lou",
"Kreol Mauritius": "mfe",
"Kreol Nicaragua": "bzk",
"Kreol Selat Torres": "tcs",
"Kreol Seychelles": "crs",
"Kreol Yilan": "ycr",
"Kresh": "krs",
"Krevinian": "zkv",
"Kreye": "xre",
"Krikati-Timbira": "xri",
"Krim": "krm",
"Krio": "kri",
"Kriol": "rop",
"Krisa": "ksi",
"Kristang": "mcm",
"Krobu": "kxb",
"Krongo": "kgo",
"Kru Purba": "kro-pro",
"Kru'ng": "krr",
"Krymchak": "jct",
"Kryts": "kry",
"Kua": "tyu",
"Kua-nsi": "ykn",
"Kuamasi": "yku",
"Kuan": "uan",
"Kuanhua": "xnh",
"Kube": "kgf",
"Kubi": "kof",
"Kubo": "jko",
"Kubu": "kvb",
"Kucong": "lkc",
"Kudiya": "kfg",
"Kudmali": "kyw",
"Kudu-Camo": "kov",
"Kugama": "kow",
"Kugbo": "kes",
"Kugu-Muminh": "xmh",
"Kui (India)": "kxu",
"Kui (Indonesia)": "kvd",
"Kuijau": "dkr",
"Kuikúro": "kui",
"Kujarge": "vkj",
"Kuk": "kfn",
"Kukatja": "kux",
"Kukele": "kez",
"Kuki-Chin Purba": "tbq-kuk-pro",
"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",
"Kulango Bouna": "nku",
"Kulere": "kul",
"Kulfa": "kxj",
"Kuliak Purba": "ssa-klk-pro",
"Kulina": "xpk",
"Kulisusu": "vkl",
"Kullu Pahari": "kfx",
"Kulon": "uon",
"Kulon-Pazeh": "uun",
"Kulung": "kle",
"Kumak": "nee",
"Kumalu": "ksl",
"Kumam": "kdi",
"Kuman": "kue",
"Kumaoni": "kfy",
"Kumarbhag Paharia": "kmj",
"Kumba": "ksm",
"Kumbainggar": "kgs",
"Kumbaran": "wkb",
"Kumbewaha": "xks",
"Kumeyaay": "nai-kum",
"Kumhali": "kra",
"Kumu": "kmw",
"Kumukio": "kuo",
"Kumyk": "kum",
"Kumzari": "zum",
"Kuna": "cuk",
"Kuna Sempadan": "kvn",
"Kunama": "kun",
"Kunbarlang": "wlg",
"Kunda": "kdn",
"Kundal Shahi": "shd",
"Kunduvadi": "wku",
"Kung": "kfl",
"Kunggari": "kgl",
"Kungkari": "lku",
"Kuni": "kse",
"Kuni-Boazi": "kvg",
"Kunigami": "xug",
"Kunimaipa": "kup",
"Kunja": "pep",
"Kunjen": "kjn",
"Kunyi": "njx",
"Kunza": "kuz",
"Kuo": "xuo",
"Kuot": "kto",
"Kupa": "kug",
"Kupia": "key",
"Kupsabiny": "kpz",
"Kur": "kuv",
"Kura Ede Nago": "nqk",
"Kurama": "krh",
"Kuranko": "knk",
"Kurdi Purba": "ku-pro",
"Kurdi Selatan": "sdh",
"Kurdi Tengah": "ckb",
"Kurdi Utara": "kmr",
"Kuri": "nbn",
"Kuria": "kuj",
"Kurichiya": "kfh",
"Kurmukar": "kfv",
"Kurnai": "unn",
"Kurrama": "vku",
"Kursav": "faj",
"Kurti": "ktm",
"Kurtöp": "xkz",
"Kurudu": "kjr",
"Kurukh": "kru",
"Kurumba Alu": "xua",
"Kurumba Betta": "xub",
"Kuruáya": "kyr",
"Kusaal": "kus",
"Kusaghe": "ksg",
"Kushi": "kuh",
"Kustenau": "awd-kus",
"Kusu": "ksv",
"Kusunda": "kgg",
"Kutenai": "kut",
"Kutep": "kub",
"Kuthant": "xut",
"Kutto": "kpa",
"Kutu": "kdc",
"Kuturmi": "khj",
"Kuuk Thaayorre": "thd",
"Kuuk Yak": "uky",
"Kuuku-Ya'u": "kuy",
"Kuvale": "olu",
"Kuvi": "kxv",
"Kuwaa": "blh",
"Kuwaataay": "cwt",
"Kuwani": "paa-kwn",
"Kuy": "kdt",
"Kven": "fkv",
"Kw'adza": "wka",
"Kwa Purba": "alv-kwa-pro",
"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",
"Kyenele": "kql",
"Kyenga": "tye",
"Kyerung": "kgy",
"Kyrgyz": "ky",
"Kâte": "kmg",
"Kélé": "keb",
"Kómnzo": "paa-kmn",
"La'bi": "lbi",
"Laalaa": "cae",
"Laba": "lau",
"Label": "lbb",
"Labir": "jku",
"Labo": "mwi",
"Labo Phowa": "ypb",
"Laboya": "lmy",
"Labu": "lbu",
"Lacandon": "lac",
"Lachi": "lbt",
"Lachi Putih": "lwh",
"Lachiguiri Zapotec": "zpa",
"Lachixío Zapotec": "zpl",
"Ladakhi": "lbj",
"Ladin": "lld",
"Ladino": "lad",
"Ladji-Ladji": "llj",
"Laeko-Libuat": "lkl",
"Lafofa": "laf",
"Laghu": "lgb",
"Laghuu": "lgh",
"Lagwan": "kot",
"Laha (Indonesia)": "lhh",
"Laha (Vietnam)": "lha",
"Lahanan": "lhn",
"Lahnda": "lah",
"Lahu": "lhu",
"Lahu Shi": "lhi",
"Lahul Lohar": "lhl",
"Lai": "cnh",
"Laimbue": "lmx",
"Laiyolo": "lji",
"Lak": "lbe",
"Laka": "lak",
"Lakalei": "lka",
"Lake Miwok": "lmw",
"Lakha": "lkh",
"Laki": "lki",
"Lakkia": "lbc",
"Lakon": "lkn",
"Lakondê": "lkd",
"Lakota": "lkt",
"Lakota Dida": "dic",
"Lala (Afrika Selatan)": "bnt-lal",
"Lala (New Guinea)": "nrz",
"Lala-Bisa": "leb",
"Lala-Roba": "lla",
"Lalana Chinantec": "cnl",
"Lalo Purba": "tbq-lal-pro",
"Lalu Barat": "ywl",
"Lalu Timur": "yit",
"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",
"Lampungik Purba": "poz-lgx-pro",
"Lamu": "llh",
"Lamu-Lamu": "lby",
"Lanas Lobu": "ruu",
"Landoma": "ldm",
"Lang'e": "yne",
"Langam": "lnm",
"Langbashe": "lna",
"Langi": "lag",
"Langnian Buyang": "yln",
"Lango (Sudan)": "lno",
"Lango (Uganda)": "laj",
"Lanima": "lnw",
"Lanoh": "lnh",
"Lao": "lo",
"Laomian": "lwm",
"Laopang": "lbg",
"Lapaguía-Guivini Zapotec": "ztl",
"Lapine": "art-lap",
"Laragia": "lrg",
"Lardil": "lbz",
"Larestani": "lrl",
"Larevat": "lrv",
"Larike-Wakasihu": "alo",
"Laro": "lro",
"Larteh": "lar",
"Laru": "lan",
"Lasalimu": "llm",
"Lasgerdi": "lsa",
"Lashi": "lsi",
"Lasi": "lss",
"Latgalia": "ltg",
"Latin": "la",
"Latu": "ltu",
"Latundê": "ltn",
"Latvia": "lv",
"Lau": "llu",
"Laua": "luf",
"Lauan": "llx",
"Lauje": "law",
"Laura": "lur",
"Laurentia": "lre",
"Lavatbura-Lamusong": "lbv",
"Lave": "brb",
"Laven": "lbo",
"Lavukaleve": "lvk",
"Lawa Barat": "lcp",
"Lawa Timur": "lwl",
"Lawangan": "lbx",
"Lawi": "lvi",
"Lawu": "lwu",
"Lawunuia": "tgi",
"Layakha": "lya",
"Laz": "lzz",
"Laze": "tbq-laz",
"Lealao Chinantec": "cle",
"Leco": "lec",
"Ledo Kaili": "lew",
"Leelau": "ldk",
"Lefa": "lfa",
"Lega-Mwenga": "lgm",
"Lega-Shabunda": "lea",
"Legbo": "agb",
"Legenyem": "lcc",
"Lehali": "tql",
"Leinong Naga": "lzn",
"Leipon": "lek",
"Leitre": "paa-lei",
"Lela": "dri",
"Lelak": "llk",
"Lele (Chad)": "lln",
"Lele (Congo)": "lel",
"Lele (Guinea)": "llc",
"Lele (New Guinea)": "lle",
"Lelemi": "lef",
"Lelepa": "lpa",
"Lembata Barat": "lmj",
"Lembata Selatan": "lmf",
"Lembena": "leq",
"Lemerig": "lrz",
"Lemio": "lei",
"Lemnos": "xle",
"Lemolang": "ley",
"Lemoro": "ldj",
"Lenakel": "tnl",
"Lenca Honduras": "len",
"Lenca Salvador": "nai-sln",
"Lendu": "led",
"Lengilu": "lgi",
"Lengo": "lgr",
"Lengola": "lej",
"Lenje": "leh",
"Lenkau": "ler",
"Lenyima": "ldg",
"Leon": "roa-leo",
"Leon Kuno": "roa-ole",
"Lepcha": "lep",
"Lepki": "lpe",
"Lepontii": "xlp",
"Lese": "les",
"Lesing-Gelimi": "let",
"Letemboi": "nms",
"Leti (Cameroon)": "leo",
"Leti (Indonesia)": "lti",
"Levuka": "lvu",
"Lewo": "lww",
"Lewo Eleng": "lwe",
"Lewotobi": "lwt",
"Leyigha": "ayi",
"Lezghi Purba": "cau-lzg-pro",
"Lezgi": "lez",
"Lhao Vo": "mhx",
"Lhokpu": "lhp",
"Li'o": "ljl",
"Liabuku": "lix",
"Liana-Seti": "ste",
"Liberia Kpelle": "xpe",
"Liberian Kreyol": "lir",
"Libido": "liq",
"Libinza": "liz",
"Liburni": "xli",
"Ligbi": "lig",
"Ligenza": "lgz",
"Liguria Purba": "xlg",
"Ligurian": "lij",
"Lihir": "lih",
"Lika": "lik",
"Liki": "lio",
"Likila": "lie",
"Likuba": "kxx",
"Likum": "lib",
"Likwala": "kwc",
"Lilau": "lll",
"Lillooet": "lil",
"Limassa": "bme",
"Limba Barat-Tengah": "lia",
"Limba Timur": "lma",
"Limbu": "lif",
"Limbum": "lmp",
"Limburg": "li",
"Limi": "ylm",
"Limilngan": "lmc",
"Lindu": "klw",
"Linear A": "lab",
"Lingala": "ln",
"Lingao": "onb",
"Lingkhim": "lii",
"Lingua Franca Nova": "lfn",
"Linngithigh": "lnj",
"Lipan": "apl",
"Lipo": "lpo",
"Lisabata-Nuniali": "lcs",
"Lisela": "lcl",
"Lish": "lsh",
"Lishana Deni": "lsd",
"Lishanid Noshan": "aij",
"Lishán Didán": "trg",
"Lisu": "lis",
"Literary Chinese": "lzh",
"Lithuania": "lt",
"Lithuania Kuno": "olt",
"Lithuanian Sign Language": "lls",
"Little Swanport": "aus-lsw",
"Litzlitz": "lzl",
"Livonian": "liv",
"Livvi": "olo",
"Lizu": "sit-liz",
"Lo-Toga": "lht",
"Loarki": "lrk",
"Lobala": "loq",
"Lobi": "lob",
"Lodhi": "lbm",
"Logba": "lgq",
"Logo": "log",
"Logol": "lof",
"Logooli": "rag",
"Logorik": "liu",
"Lojban": "jbo",
"Lokaa": "yaz",
"Loko": "lok",
"Lokono": "arw",
"Lokoya": "lky",
"Lola": "lcd",
"Lolak": "llq",
"Lole": "llg",
"Lolo": "llb",
"Lolo Purba": "tbq-lol-pro",
"Lolo-Burma Purba": "tbq-lob-pro",
"Loloda": "loa",
"Lolopo": "ycl",
"Lolopo Selatan": "ysp",
"Loma": "lom",
"Lomaiviti": "lmv",
"Lomakka": "loi",
"Lomavren": "rmi",
"Lombard": "lmo",
"Lombi": "lmi",
"Lombo": "loo",
"Lomwe": "ngl",
"Loncong": "lce",
"Long Phuri Naga": "lpn",
"Long Wat": "ttw",
"Longgu": "lgu",
"Longjia": "sit-lnj",
"Longto": "wok",
"Longuda": "lnu",
"Loniu": "los",
"Lonwolwol": "crc",
"Loo": "ldo",
"Lopa": "lop",
"Lopi": "lov",
"Lopit": "lpx",
"Lorang": "lrn",
"Lorediakarkar": "lnn",
"Lorrain": "roa-lor",
"Lorung Selatan": "lrr",
"Lorung Utara": "lbr",
"Lote": "uvl",
"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 Sorbian": "dsb",
"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",
"Luchazi": "lch",
"Lucumí": "luq",
"Ludian": "lud",
"Lufu": "ldq",
"Luganda": "lg",
"Lugbara": "lgg",
"Luguru": "ruf",
"Luhu": "lcq",
"Luhya": "luy",
"Luimbi": "lum",
"Luiseño": "lui",
"Luish Purba": "sit-luu-pro",
"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",
"Lur Selatan": "luz",
"Lur Utara": "lrc",
"Luren": "sit-lrn",
"Luri (Nigeria)": "ldd",
"Lusengo": "lse",
"Lushootseed": "lut",
"Lusi": "khl",
"Lusitania": "xls",
"Lutachoni": "lts",
"Lutos": "ndy",
"Luvale": "lue",
"Luwati": "luv",
"Luwiya": "xlu",
"Luwo": "lwo",
"Luxembourg": "lb",
"Luyana": "lyn",
"Lwalu": "lwa",
"Lwel": "lvl",
"Lycia": "xlc",
"Lydia": "xld",
"Lyngngam": "lyg",
"Lyélé": "lee",
"Láadan": "ldn",
"Láá Láá Bwamu": "bwj",
"Löyöp": "urr",
"Lü": "khb",
"Ma": "msj",
"Ma Manda": "skc",
"Ma'anyan": "mhy",
"Ma'di": "mhi",
"Ma'di Selatan": "snm",
"Ma'ya": "slz",
"Maaka": "mew",
"Maale": "mdy",
"Maasai": "mas",
"Maay": "ymm",
"Maba": "mqa",
"Mabaale": "mmz",
"Mabaan": "mfz",
"Mabang Bura": "mde",
"Mabire": "muj",
"Maca": "mca",
"Macaguaje": "mcl",
"Macaguán": "mbn",
"Macanese": "mzs",
"Macedonia": "mk",
"Macedonia Purba": "xmk",
"Machame": "jmc",
"Machiguenga": "mcb",
"Machinere": "mpd",
"Machinga": "mvw",
"Macoris": "nai-mac",
"Macuna": "myy",
"Macushi": "mbc",
"Mada (Cameroon)": "mxu",
"Mada (Nigeria)": "mda",
"Madak": "mmx",
"Maden": "xmx",
"Madhi Madhi": "dmd",
"Madngele": "zml",
"Madura": "mad",
"Maek": "hmk",
"Maeng Itneg": "itt",
"Mafa": "maf",
"Mag-Anchi Ayta": "sgb",
"Mag-Indi Ayta": "blx",
"Magahat": "mtw",
"Magahi": "mag",
"Magar Barat": "mrd",
"Magar Timur": "mgp",
"Magori": "zgr",
"Maguindanao": "mdh",
"Mahali": "mjx",
"Mahasu Pahari": "bfz",
"Mahican": "mjy",
"Mahongwe": "mhb",
"Mahou": "mxx",
"Maia": "sks",
"Maiadomu": "mzz",
"Maiani": "tnh",
"Maidu Barat Laut": "mjd",
"Maidu Purba": "nai-mdu-pro",
"Maidu Timur Laut": "nmu",
"Maii": "mmm",
"Mailu": "mgu",
"Maindo": "cwb",
"Maipure": "awd-mpr",
"Mairasi": "zrs",
"Maisin": "mbq",
"Maithili": "mai",
"Maiwa (Indonesia)": "wmm",
"Maiwa (New Guinea)": "mti",
"Maiwala": "mum",
"Majang": "mpe",
"Majera": "xmj",
"Majhwar": "mmj",
"Mak (China)": "mkg",
"Mak (Nigeria)": "pbl",
"Makaa": "mcp",
"Makah": "myh",
"Makalero": "mjb",
"Makasae": "mkz",
"Makassar": "mak",
"Makayam": "aup",
"Makhuwa": "vmw",
"Makhuwa-Marrevone": "xmc",
"Makhuwa-Meetto": "mgh",
"Makhuwa-Moniga": "mhm",
"Makhuwa-Saka": "xsq",
"Makhuwa-Shirima": "vmk",
"Makian Barat": "mqs",
"Maklew": "mgf",
"Makolkol": "zmh",
"Makonde": "kde",
"Maku": "xak",
"Maku'a": "lva",
"Makuri Naga": "jmn",
"Makuráp": "mpu",
"Makwe": "ymk",
"Makyan Naga": "umn",
"Mal": "mlf",
"Mal Paharia": "mkb",
"Mala (New Guinea)": "ped",
"Mala (Nigeria)": "ruy",
"Mala Malasar": "ima",
"Malagasi": "mg",
"Malakula Timur Laut": "upv",
"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",
"Malayalam": "ml",
"Malayic Dayak": "xdy",
"Malaynon": "mlz",
"Malba Birifor": "bfo",
"Male": "mdc",
"Malecite-Passamaquoddy": "pqm",
"Maleng": "pkt",
"Maleu-Kilenge": "mgl",
"Malfaxal": "mlx",
"Malgana": "vml",
"Malgbe": "mxf",
"Malibu": "sai-mlb",
"Malila": "mgq",
"Malimba": "mzd",
"Malimpung": "mli",
"Malol": "mbk",
"Malta": "mt",
"Malvi": "mup",
"Mam": "mam",
"Mama": "mma",
"Mamaa": "mhf",
"Mamaindé": "wmd",
"Mamanwa": "mmn",
"Mamara": "myk",
"Mamasa": "mqj",
"Mambae": "mgm",
"Mambai": "mcs",
"Mambila Cameroon": "mcu",
"Mambila Nigeria": "mzk",
"Mamboru": "mvd",
"Mambwe-Lungu": "mgr",
"Mampruli": "maw",
"Mamuju": "mqx",
"Mamulique": "emm",
"Mamusi": "kdf",
"Mamvu": "mdi",
"Man Met": "mml",
"Manam": "mva",
"Manambu": "mle",
"Manangba": "nmm",
"Manangkari": "znk",
"Manao": "awd-man",
"Manchu": "mnc",
"Manda (Australia)": "zma",
"Manda (India)": "mha",
"Manda (Tanzania)": "mgs",
"Mandahuaca": "mht",
"Mandaia": "mid",
"Mandaia Klasik": "myz",
"Mandalorian": "art-man",
"Mandan": "mhq",
"Mandandanyi": "zmk",
"Mandar": "mdr",
"Mandara": "tbf",
"Mandari": "mqu",
"Mandarin": "cmn",
"Mandaya Karaga": "mry",
"Mande Barat Purba": "dmn-mdw-pro",
"Mande Purba": "dmn-pro",
"Mandeali": "mjl",
"Mander": "mqr",
"Mandingo": "man",
"Mandinka": "mnk",
"Mandjak": "mfv",
"Mandobo Atas": "aax",
"Mandobo Bawah": "bwp",
"Manem": "jet",
"Mang": "zng",
"Mangala": "mem",
"Mangarayi": "mpc",
"Mangareva": "mrv",
"Mangas": "zns",
"Mangayat": "myj",
"Mangbetu": "mdj",
"Mangbetu Purba": "csu-maa-pro",
"Mangbutu": "mdk",
"Mangerr": "zme",
"Mangga Buang": "mmo",
"Manggarai": "mqy",
"Mangghuer": "mjg-mgr",
"Mango": "mge",
"Mangole": "mqc",
"Mangseng": "mbh",
"Mangue": "mom",
"Manigri-Kambolé Ede Nago": "xkb",
"Maninka Konyanka": "mku",
"Maninka Sankaran": "msc",
"Maninkakan Barat": "mlq",
"Maninkakan Kita": "mwk",
"Maninkakan Timur": "emk",
"Manipa": "mqp",
"Manipur Kuno": "omp",
"Manipuri": "mni",
"Mankanya": "knf",
"Mankiyali": "nlm",
"Manna-Dora": "mju",
"Mannan": "mjv",
"Mano": "mev",
"Manobo Agusan": "msm",
"Manobo Ata": "atd",
"Manobo Bukidnon Barat": "mbb",
"Manobo Cinamiguin": "mkx",
"Manobo Cotabato": "mta",
"Manobo Dibabawon": "mbd",
"Manobo Ilianen": "mbi",
"Manobo Matigsalug": "mbt",
"Manobo Rajah Kabunsuwan": "mqk",
"Manobo Sarangani": "mbs",
"Manombai": "woo",
"Mansaka": "msk",
"Mansi Purba": "mns-pro",
"Mansi Selatan": "mns-sou",
"Mansi Tengah": "mns-cen",
"Mansi Utara": "mns-nor",
"Mansoanka": "msw",
"Manta": "myg",
"Mantsi": "nty",
"Manusela": "wha",
"Manx": "gv",
"Manya": "mjz",
"Manyawa": "mny",
"Manza": "mzv",
"Maonan": "mmd",
"Mape": "mlh",
"Mapena": "mnm",
"Mapia": "mpy",
"Mapidian": "mpw",
"Mapos Buang": "bzh",
"Mapoyo": "mcg",
"Mapudungun": "arn",
"Mapun": "sjm",
"Mara": "mec",
"Marachi": "lri",
"Maraghei": "vmh",
"Maragus": "mrs",
"Marama": "lrm",
"Maranao": "mrw",
"Maranungku": "zmr",
"Mararit": "mgb",
"Marathi": "mr",
"Marathi Kuno": "omr",
"Maratino": "sai-mar",
"Marau": "mvr",
"Marawan": "awd-mar",
"Marba": "mpg",
"Marenje": "vmr",
"Marfa": "mvu",
"Margany": "zmc",
"Marghi Selatan": "mfm",
"Margi": "mrt",
"Mari (Sepik)": "mbx",
"Mari Austronesia": "hob",
"Mari Barat": "mrj",
"Mari Purba": "chm-pro",
"Mari Timur": "mhr",
"Maria": "mds",
"Maria Bukit": "mrr",
"Mariaté": "awd-mrt",
"Maricopa": "mrc",
"Maridan": "zmd",
"Maridjabin": "zmj",
"Marik": "dad",
"Marimanindji": "zmm",
"Marind": "mrz",
"Maring": "mbw",
"Maringarr": "zmt",
"Mariri": "mqi",
"Maritsauá": "msp",
"Mariyedi": "zmy",
"Marka": "rkm",
"Markweeta": "enb",
"Marma": "rmz",
"Marovo": "mvo",
"Marquesas Selatan": "mqm",
"Marquesas Utara": "mrq",
"Marrgu": "mhg",
"Marriammu": "xru",
"Marrithiyel": "mfr",
"Marrucinian": "umc",
"Marshall": "mh",
"Marsian": "ims",
"Marti Ke": "zmg",
"Martu Wangka": "mpj",
"Martuthunira": "vma",
"Marwari": "mwr",
"Marúbo": "mzr",
"Masa Purba": "cdc-mas-pro",
"Masaba": "myx",
"Masadiit Itneg": "tis",
"Masakará": "sai-msk",
"Masalit": "mls",
"Masana": "mcn",
"Masbate Sorsogon": "bks",
"Masbatenyo": "msb",
"Masela Barat": "mss",
"Masela Tengah": "mxz",
"Masela Timur": "vme",
"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",
"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",
"Mauwake": "mhl",
"Mav̋ea": "mkv",
"Mawa": "mcw",
"Mawak": "mjj",
"Mawan": "mcz",
"Mawayana": "mzx",
"Mawchi": "mke",
"Mawes": "mgk",
"Maxakalí": "mbl",
"Maxi Gbe": "mxl",
"Maya Epigrafi": "emy",
"Maya Mopan": "mop",
"Maya Purba": "myn-pro",
"Maya Samo": "sym",
"Maya Yucatec": "yua",
"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",
"Mazahua Michoacán": "mmc",
"Mazahua Tengah": "maz",
"Mazaltepec Zapotec": "zpy",
"Mazanderani": "mzn",
"Mazatec Chiquihuitlán": "maq",
"Mazatec Huautla": "mau",
"Mazatec Ixcatlán": "mzi",
"Mazatec Jalapa de Díaz": "maj",
"Mazatec Purba": "omq-maz-pro",
"Mazatec San Jerónimo Tecóatl": "maa",
"Mazatec Soyaltepec": "vmp",
"Mazatlán Mazatec": "vmz",
"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",
"Mbembe Cross River": "mfn",
"Mbembe Tigon": "nza",
"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",
"Me'en": "mym",
"Mebu": "mjn",
"Medebur": "mjm",
"Medefaidrin": "dmf",
"Media Lengua": "mue",
"Median Kuno": "xme-old",
"Median Pertengahan": "xme-mid",
"Medo-Parthia Purba": "ira-mpr-pro",
"Medumba": "byv",
"Mefele": "mfj",
"Megam": "mef",
"Megleno-Romania": "ruq",
"Mehek": "nux",
"Mehináku": "mmh",
"Mekeo": "mek",
"Mekmek": "mvk",
"Mekwei": "msf",
"Mekéns": "skf",
"Mel-Khaonh": "hkn",
"Melanau Daro-Matu": "dro",
"Melanau Sibu": "sdx",
"Melanau Tengah": "mel",
"Melayik Purba": "poz-mly-pro",
"Melayu": "ms",
"Melayu Ambon": "abs",
"Melayu Baba": "mbf",
"Melayu Bacan": "btj",
"Melayu Bali": "mhp",
"Melayu Barisan Selatan": "pse",
"Melayu Berau": "bve",
"Melayu Brunei": "kxd",
"Melayu Bukit": "bvu",
"Melayu Cheti": "ccm",
"Melayu Cocos": "coa",
"Melayu Jambi": "jax",
"Melayu Kedah": "meo",
"Melayu Kupang": "mkn",
"Melayu Kutai Kota Bangun": "mqg",
"Melayu Larantuka": "lrt",
"Melayu Makassar": "mfp",
"Melayu Maluku Utara": "max",
"Melayu Manado": "xmm",
"Melayu Negeri Sembilan": "zmi",
"Melayu Patani": "mfa",
"Melayu Sabah": "msi",
"Melayu Sarawak": "poz-sml",
"Melayu Sri Lanka": "sci",
"Melayu Terengganu": "poz-ter",
"Melayu-Chamik Purba": "poz-mcm-pro",
"Melayu-Polinesia Purba": "poz-pro",
"Melayu-Polinesia Tengah-Timur Purba": "poz-cet-pro",
"Melayu-Polinesia Timur Purba": "pqe-pro",
"Melayu-Sumbawa Purba": "poz-msa-pro",
"Mele-Fila": "mxe",
"Melo": "mfx",
"Melpa": "med",
"Memoni": "mby",
"Mendankwe-Nkwen": "mfd",
"Mende (Sierra Leone)": "men",
"Mengaka": "xmg",
"Mengen": "mee",
"Menien": "sai-men",
"Menka": "mea",
"Menominee": "mez",
"Mentawai": "mwv",
"Menya": "mcr",
"Meohang Barat": "raf",
"Meohang Timur": "emg",
"Meoswar": "mvx",
"Mer": "mnu",
"Meramera": "mxm",
"Merei": "lmb",
"Merey": "meq",
"Meriam": "ulk",
"Meroe": "xmr",
"Meru": "mer",
"Mesaka": "iyo",
"Mese": "mci",
"Mesir Demotik": "egx-dem",
"Mesir Purba": "egy",
"Mesme": "zim",
"Mesmes": "mys",
"Mesqan": "mvz",
"Messapic": "cms",
"Meta'": "mgo",
"Mewari": "mtr",
"Mewati": "wtm",
"Meyah": "mej",
"Mezontla Popoloca": "pbe",
"Meänkieli": "fit",
"Mfinu": "zmf",
"Mfumte": "nfu",
"Mi'kmaq": "mic",
"Miami": "mia",
"Mian": "mpt",
"Miani": "pla",
"Miao Qiandong Selatan": "hms",
"Miao Qiandong Timur": "hmq",
"Miao Qiandong Utara": "hea",
"Miao Xiangxi Barat": "mmr",
"Miao Xiangxi Timur": "muq",
"Michif": "crg",
"Michigamea": "cmm",
"Mid Grand Valley Dani": "dnt",
"Mid-Southern Banda": "bjo",
"Midob": "mei",
"Mienik Purba": "hmx-mie-pro",
"Migaama": "mmy",
"Migabac": "mpp",
"Miji": "sjl",
"Miju": "mxj",
"Mikasuki": "mik",
"Mikronesia Purba": "poz-mic-pro",
"Milang": "tbq-mil",
"Mili": "ymh",
"Millcayac": "sai-mil",
"Miltu": "mlj",
"Miluk": "iml",
"Milyan": "imy",
"Mimi Decorse": "mis-mmd",
"Mimi Nachtigal": "mis-mmn",
"Min Datian": "nan-dat",
"Min Hailufeng": "nan-hlh",
"Min Longyan": "nan-lnx",
"Min Nan": "nan",
"Min Purba": "zhx-min-pro",
"Min Puxian": "cpx",
"Min Sanxiang": "nan-zsh",
"Min Tengah": "czo",
"Min Timur": "cdo",
"Min Utara": "mnp",
"Min Zhenan": "nan-zhe",
"Mina": "hna",
"Minaean": "inm",
"Minang": "xrg",
"Minangkabau": "min",
"Minaveha": "mvn",
"Minderico": "drc",
"Mindiri": "mpn",
"Mingang Doso": "mko",
"Mingo": "iro-min",
"Mingrelia": "xmf",
"Minica Huitoto": "hto",
"Minidien": "wii",
"Minigir": "vmg",
"Minjungbal": "xjb",
"Minkin": "xxm",
"Minoan": "omn",
"Minokok": "mqq",
"Minriq": "mnq",
"Mintil": "mzt",
"Miqie": "yiq",
"Mirandese": "mwl",
"Mire": "mvh",
"Mirgan": "zrg",
"Miriti": "mmv",
"Miriwoong": "mep",
"Mirpur Panjabi": "pmu",
"Misantla Totonac": "tlc",
"Miship": "mjs",
"Misima-Paneati": "mpx",
"Mising": "mrg",
"Miskito": "miq",
"Mittu": "mwu",
"Mituku": "zmq",
"Miu": "mpo",
"Miwa": "vmi",
"Miwok Pesisir": "csi",
"Miwok Sierra Selatan": "skd",
"Miwok Sierra Tengah": "csm",
"Miwok Sierra Utara": "nsq",
"Miwok Teluk": "mkq",
"Mixe Coatlán": "mco",
"Mixe Juquila": "mxq",
"Mixe Mazatlán": "mzl",
"Mixe Tanah Genting": "mir",
"Mixe Tengah Utara": "neq",
"Mixe Tlahuitoltepec": "mxp",
"Mixe Totontepec": "mto",
"Mixe-Zoque Purba": "nai-miz-pro",
"Mixifore": "mfg",
"Mixtec Alacatlatzala": "mim",
"Mixtec Amoltepec": "mbz",
"Mixtec Apasco-Apoala": "mip",
"Mixtec Atatláhuca": "mib",
"Mixtec Ayutla": "miy",
"Mixtec Cacaloxtepec": "miu",
"Mixtec Chayuco": "mih",
"Mixtec Chigmecatitlán": "mii",
"Mixtec Coatzospan": "miz",
"Mixtec Cuyamecalco": "xtu",
"Mixtec Huitepec": "mxs",
"Mixtec Itundujia": "mce",
"Mixtec Ixtayutla": "vmj",
"Mixtec Jamiltepec": "mxt",
"Mixtec Juxtlahuaca": "vmc",
"Mixtec Magdalena Peñasco": "xtm",
"Mixtec Metlatónoc": "mxv",
"Mixtec Mitlatongo": "vmm",
"Mixtec Mixtepec": "mix",
"Mixtec Nochixtlán Tenggara": "mxy",
"Mixtec Oaxaca Barat Laut": "mxa",
"Mixtec Ocotepec": "mie",
"Mixtec Peñoles": "mil",
"Mixtec Pinotepa Nacional": "mio",
"Mixtec Puebla Selatan": "mit",
"Mixtec Purba": "omq-mxt-pro",
"Mixtec San Juan Colorado": "mjc",
"Mixtec San Miguel Piedras": "xtp",
"Mixtec San Miguel el Grande": "mig",
"Mixtec Santa Lucía Monteverde": "mdv",
"Mixtec Santa María Zacatepec": "mza",
"Mixtec Silacayoapan": "mks",
"Mixtec Sindihui": "xts",
"Mixtec Soyaltepec": "vmq",
"Mixtec Tacahua": "xtt",
"Mixtec Teposcolula": "omq-tel",
"Mixtec Tezoatlán": "mxb",
"Mixtec Tidaá": "mtx",
"Mixtec Tlaxiaco Barat Daya": "meh",
"Mixtec Tlaxiaco Utara": "xtn",
"Mixtec Tlazoyaltepec": "mqh",
"Mixtec Tututepec": "mtu",
"Mixtec Yoloxochitl": "xty",
"Mixtec Yosondúa": "mpm",
"Mixtec Yucuañe": "mvg",
"Mixtec Yutanduchi": "mab",
"Mixtecan Purba": "omq-mix-pro",
"Mixtepec Zapotec": "zpm",
"Miya": "mkf",
"Miyako": "mvi",
"Miyobe": "soy",
"Mizo": "lus",
"Mlabri": "mra",
"Mlahsö": "lhs",
"Mlap": "kja",
"Mlomp": "mlo",
"Mmaala": "mmu",
"Mmani": "buy",
"Mmen": "bfm",
"Mnong Selatan": "mnn",
"Mnong Tengah": "cmo",
"Mnong Timur": "mng",
"Mo": "wkd",
"Moabite": "obm",
"Moba": "mfq",
"Mobilia": "mod",
"Mobu": "ahm",
"Mocana": "sai-mcn",
"Mochi": "old",
"Mochica": "omc",
"Mocho": "mhc",
"Mocoví": "moc",
"Modang": "mxd",
"Modole": "mqo",
"Moere": "mvq",
"Mofu Utara": "mfk",
"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",
"Mokil": "mkj",
"Moklen": "mkm",
"Mokole": "mkl",
"Mokpwe": "bri",
"Moksha": "mdf",
"Molale": "mbe",
"Molbog": "pwm",
"Moldova Sign Language": "vsi",
"Molengue": "bxc",
"Molima": "mox",
"Molo": "zmo",
"Molof": "msl",
"Moloko": "mlw",
"Mom Jango": "ver",
"Moma": "myl",
"Momare": "msz",
"Mombo Dogon": "dmb",
"Mombum": "mso",
"Momina": "mmb",
"Momuna": "mqf",
"Mon": "mnw",
"Mon Kuno": "omx",
"Mon Pertengahan": "mkh-mmn",
"Mon Thailand": "mnw-tha",
"Mon Yangum": "ymo",
"Mon-Khmer Purba": "mkh-pro",
"Mondropolon": "npn",
"Mondé": "mnd",
"Mongghul": "mjg-mgl",
"Mongo": "lol",
"Mongol Khamnigan": "ykh",
"Mongol Klasik": "cmg",
"Mongol Pertengahan": "xng",
"Mongolia": "mn",
"Mongolia Purba": "xgn-pro",
"Mongondow": "mog",
"Moni": "mnz",
"Monik Purba": "mkh-mnc-pro",
"Mono (California)": "mnr",
"Mono (Cameroon)": "mru",
"Mono (Congo)": "mnh",
"Monom": "moo",
"Monpa Kalaktang": "kkf",
"Montagnais": "moe",
"Montol": "mtl",
"Monumbo": "mxk",
"Monzombo": "moj",
"Moo": "gwg",
"Mor (Austronesia)": "mhz",
"Mor (Papua)": "moq",
"Moraid": "msg",
"Moran": "tbq-mor",
"Morawa": "mze",
"Mordvinik Purba": "urj-mdv-pro",
"Morerebi": "xmo",
"Moresada": "msx",
"Mori Atas": "mzq",
"Mori Bawah": "xmz",
"Morigi": "mdb",
"Moro": "mor",
"Morokodo": "mgc",
"Morom": "bdo",
"Moronene": "mqn",
"Morori": "mok",
"Morouas": "mrp",
"Mortlock": "mrl",
"Moru": "mgd",
"Mosimo": "mqv",
"Moskona": "mtj",
"Mossi": "mos",
"Mota": "mtt",
"Motembo": "tmv",
"Motu": "meu",
"Mouk-Aria": "mwh",
"Mouwase": "jmw",
"Movima": "mzp",
"Moyadan Itneg": "ity",
"Mozarab": "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",
"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",
"Muji Qila": "ymq",
"Muji Selatan": "ymc",
"Muji Utara": "ymx",
"Mukha-Dora": "mmk",
"Mukulu": "moz",
"Mulaha": "mfw",
"Mulam": "mlm",
"Mullu Kurumba": "kpb",
"Mullukmulluk": "mpb",
"Muluridyi": "vmu",
"Mum": "kqa",
"Mumuye": "mzm",
"Mumuye Purba": "alv-mum-pro",
"Muna": "mnb",
"Munda": "unx",
"Munda Purba": "mun-pro",
"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",
"Munji-Yidgha Purba": "ira-mny-pro",
"Munsee": "umu",
"Muong": "mtq",
"Mur Pano": "tkv",
"Muratayak": "asx",
"Muria Barat": "mut",
"Muria Barat Jauh": "fmu",
"Muria Timur": "emu",
"Murik (Malaysia)": "mxr",
"Murik (New Guinea)": "mtf",
"Murkim": "rmh",
"Murle": "mur",
"Murrinh-Patha": "mwf",
"Mursi": "muz",
"Murui Huitoto": "huu",
"Murupi": "mqw",
"Murut Keningau": "kxi",
"Murut Serudung": "srk",
"Murut Timugon": "tih",
"Muruwari": "zmu",
"Musan": "mmp",
"Musasa": "smm",
"Musey": "mse",
"Musgu": "mug",
"Musi": "mui",
"Muskogi Purba": "nai-mus-pro",
"Muskum": "mje",
"Musom": "msu",
"Mussau-Emira": "emi",
"Muthuvan": "muv",
"Mutu": "tuc",
"Muya": "mvm",
"Muyang": "muy",
"Muyu Selatan": "kts",
"Muyu Utara": "kti",
"Muyuw": "myw",
"Muzi": "ymz",
"Muzo": "sai-muz",
"Mvanip": "mcj",
"Mvuba": "mxh",
"Mwaghavul": "sur",
"Mwakai": "mgt",
"Mwali Comorian": "wlc",
"Mwan": "moa",
"Mwani": "wmw",
"Mwatebu": "mwa",
"Mwera": "mwe",
"Mwerlap": "mrm",
"Mwimbi-Muthambi": "mws",
"Mwotlap": "mlv",
"Myene": "mye",
"Mysian": "yms",
"Mòcheno": "mhn",
"Mün Chin": "mwq",
"Mündü": "muh",
"Māori": "mi",
"Mạ": "cma",
"N'Ko": "nqo",
"Na": "nbt",
"Na-Dene Purba": "xnd-pro",
"Naaba": "nao",
"Naba": "mne",
"Nabak": "naf",
"Nabi": "mty",
"Nachering": "ncd",
"Nadruvia": "ndf",
"Nadëb": "mbj",
"Nafaanra": "nfr",
"Nafi": "srf",
"Nafri": "nxx",
"Naga Chokri": "nri",
"Naga Chothe": "nct",
"Naga Inpui": "nkf",
"Naga Khezha": "nkh",
"Naga Khiamniungan": "kix",
"Naga Khoibu": "nkb",
"Naga Konyak": "nbe",
"Naga Kyan-Karyaw": "nqq",
"Naga Lao": "nlq",
"Naga Liangmai": "njn",
"Naga Lotha": "njh",
"Naga Mao": "nbi",
"Naga Maram": "nma",
"Naga Maring": "nng",
"Naga Monsang": "nmh",
"Naga Moyon": "nmo",
"Naga Mzieme": "nme",
"Naga Pochuri": "npo",
"Naga Puimei": "npu",
"Naga Rengma Selatan": "nre",
"Naga Rengma Utara": "nnl",
"Naga Rongmei": "nbu",
"Naga Sangtam": "nsa",
"Naga Tangkhul": "nmf",
"Naga Tengah Purba": "sit-aao-pro",
"Naga Thangal": "nki",
"Naga Utara Purba": "sit-kon-pro",
"Naga Zeme": "nzm",
"Nagarchal": "nbg",
"Nage": "nxe",
"Nagu": "ngr",
"Nagumi": "ngv",
"Nahali": "nlx",
"Nahari": "nhh",
"Nahavaq": "sns",
"Nahua Purba": "azc-nah-pro",
"Nahuatl": "nah",
"Nahuatl Coatepec": "naz",
"Nahuatl Cosoleacaque": "nhk",
"Nahuatl Durango Barat": "azn",
"Nahuatl Durango Timur": "azd",
"Nahuatl Guerrero": "ngu",
"Nahuatl Huasteca Barat": "nhw",
"Nahuatl Huasteca Tengah": "nch",
"Nahuatl Huasteca Timur": "nhe",
"Nahuatl Huaxcaleca": "nhq",
"Nahuatl Klasik": "nci",
"Nahuatl Mecayapan": "nhx",
"Nahuatl Michoacán": "ncl",
"Nahuatl Morelos": "nhm",
"Nahuatl Oaxaca Utara": "nhy",
"Nahuatl Ometepec": "nht",
"Nahuatl Orizaba": "nlv",
"Nahuatl Pajapan": "nhp",
"Nahuatl Puebla Tanah Tinggi": "azz",
"Nahuatl Puebla Tengah": "ncx",
"Nahuatl Puebla Tenggara": "npl",
"Nahuatl Puebla Utara": "ncj",
"Nahuatl Santa María La Alta": "nhz",
"Nahuatl Sierra Negra": "nsu",
"Nahuatl Tabasco": "nhc",
"Nahuatl Temascaltepec": "nhv",
"Nahuatl Tengah": "nhn",
"Nahuatl Tetelcingo": "nhg",
"Nahuatl Tlamacazapa": "nuz",
"Nahuatl Zacatlán-Ahuacatlán-Tepetzintla": "nhi",
"Nai": "bio",
"Naish Purba": "sit-nas-pro",
"Naka'ela": "nae",
"Nakai": "nkj",
"Nakame": "nib",
"Nakanai": "nak",
"Nakara": "nck",
"Nake": "nbk",
"Nakh Purba": "cau-nkh-pro",
"Naki": "mff",
"Nakwi": "nax",
"Nalca": "nlc",
"Nali": "nss",
"Nalik": "nal",
"Nalu": "naj",
"Nalögo": "nlz",
"Nama": "nmx",
"Namakura": "nmk",
"Namat": "nkm",
"Nambikwara": "nab",
"Nambo": "ncm",
"Nambya": "nmq",
"Namia": "nnm",
"Namiae": "nvm",
"Namla": "naa",
"Namo": "mxw",
"Namonuito": "nmt",
"Namosi-Naitasiri-Serua": "bwb",
"Namuyi": "nmy",
"Nancere": "nnc",
"Nande": "nnb",
"Nandi": "niq",
"Nanerigé Sénoufo": "sen",
"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",
"Nauru": "na",
"Navajo": "nv",
"Navarro-Aragon Kuno": "roa-ona",
"Navut": "nsw",
"Nawaru": "nwr",
"Nawathinehena": "nwa",
"Nawdm": "nmz",
"Nawiki Purba": "awd-nwk-pro",
"Nawuri": "naw",
"Naxi": "nxq",
"Nayi": "noz",
"Naʼvi": "art-nav",
"Ncane": "ncr",
"Nchumbulu": "nlu",
"Nda'nda'": "nnz",
"Ndaka": "ndk",
"Ndali": "ndh",
"Ndam": "ndm",
"Ndamba": "ndj",
"Ndambomo": "nxo",
"Ndasa": "nda",
"Ndau": "ndc",
"Nde-Gbite": "ned",
"Nde-Nsele-Nta": "ndd",
"Ndebele Selatan": "nr",
"Ndebele Utara": "nd",
"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",
"Ndzwani Comorian": "wni",
"Neapolit": "nap",
"Nedebang": "nec",
"Nefamese": "nef",
"Nefusa": "jbn",
"Negerhollands": "dcr",
"Negidal": "neg",
"Nehan": "nsn",
"Nek": "nif",
"Nekgini": "nkg",
"Neko": "nej",
"Neku": "nek",
"Neme": "nex",
"Nemi": "nem",
"Nen": "nqn",
"Nend": "anh",
"Nenets Hutan": "yrk-for",
"Nenets Tundra": "yrk",
"Nengone": "nen",
"Neo": "neu",
"Neo-Aram Bohtan": "bhn",
"Neo-Aramia Assyria": "aii",
"Neo-Aramia Barat": "amw",
"Nepal": "ne",
"Nepal Kurux": "kxl",
"Nese": "poz-nes",
"Nete": "net",
"Neve'ei": "vnm",
"Neverver": "lgk",
"New Caledonian Javanese": "jas",
"New South Wales Tengah Purba": "aus-cww-pro",
"Newar": "new",
"Newar Klasik": "nwc",
"Newar Pertengahan": "nwx",
"Neyo": "ney",
"Nez Perce": "nez",
"Nga La": "hlt",
"Ngaanyatjarra": "ntj",
"Ngad'a Timur": "nea",
"Ngadha": "nxg",
"Ngadjunmaya": "nju",
"Ngadjuri": "jui",
"Ngaiawang": "nwg",
"Ngaing": "nnf",
"Ngaju": "nij",
"Ngala": "nud",
"Ngalakan": "nig",
"Ngalkbun": "ngk",
"Ngalum": "szb",
"Ngam": "nmc",
"Ngamambo": "nbv",
"Ngambay": "sba",
"Ngamini": "nmv",
"Ngamo": "nbh",
"Ngan'gityemerri": "nam",
"Nganakarti": "xnk",
"Nganasan": "nio",
"Ngandi": "nid",
"Ngando (Congo)": "nxd",
"Ngando (Republik Afrika Tengah)": "ngd",
"Ngandyera": "nne",
"Ngantangarra": "ntg",
"Nganyaywana": "nyx",
"Ngardi": "rxd",
"Ngarigu": "xni",
"Ngarinman": "nbj",
"Ngarinyin": "ung",
"Ngarla": "nrk",
"Ngarluma": "nrl",
"Ngarrindjeri": "nay",
"Ngas": "anc",
"Ngasa": "nsg",
"Ngawun": "nxn",
"Ngbaka": "nga",
"Ngbaka Ma'bo": "nbm",
"Ngbaka Manza": "ngg",
"Ngbandi Selatan": "nbw",
"Ngbandi Utara": "ngb",
"Ngbee": "jgb",
"Ngbinda": "nbd",
"Ngbundu": "nuu",
"Ngelima": "agh",
"Ngemba": "nge",
"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 (Congo)": "ngc",
"Ngombe (Republik Afrika Tengah)": "nmj",
"Ngong": "nnx",
"Ngongo": "noq",
"Ngoni": "ngo",
"Ngoreme": "ngq",
"Ngoshie": "nsh",
"Ngulu": "ngp",
"Nguluwan": "nuw",
"Ngumbi": "nui",
"Ngunawal": "xul",
"Ngundi": "ndn",
"Ngundu": "nue",
"Ngungwel": "ngz",
"Nguni Purba": "bnt-ngu-pro",
"Ngurmbur": "nrx",
"Nguôn": "nuo",
"Ngwaba": "ngw",
"Ngwe": "nwe",
"Ngwi": "nlo",
"Ngwo": "ngn",
"Ngäbere": "gym",
"Nhanda": "nha",
"Nheengatu": "yrl",
"Nhirrpi": "hrp",
"Nhuwala": "nhf",
"Nias": "nia",
"Nicobar Purba": "aav-nic-pro",
"Nicobar Selatan": "nik",
"Nicobar Tengah": "ncb",
"Nicola": "ath-nic",
"Nicoleño": "azc-nic",
"Niellim": "nie",
"Niger-Congo Purba": "nic-pro",
"Nihali": "nll",
"Nii": "nii",
"Nila": "nil",
"Nilamba": "nim",
"Nilo-Sahara Purba": "ssa-pro",
"Nilotik Purba": "sdv-nil-pro",
"Nimadi": "noe",
"Nimanbur": "nmp",
"Nimbari": "nmr",
"Nimboran": "nir",
"Nimi": "nis",
"Nimo": "niw",
"Nimoa": "nmw",
"Ninam": "shb",
"Nindi": "nxi",
"Ningera": "nby",
"Ninggerum": "nxr",
"Ningil": "niz",
"Ninzo": "nin",
"Nipsan": "nps",
"Nisa": "njs",
"Nisenan": "nsz",
"Nisga'a": "ncg",
"Nisi": "yso",
"Nisu Barat Laut": "nsf",
"Nisu Selatan": "nsd",
"Nisu Timur": "nos",
"Nisu Utara": "yiv",
"Niuafo'ou": "num",
"Niuatoputapu": "nkp",
"Niue": "niu",
"Nivaclé": "cag",
"Nivkh": "niv",
"Niwer Mil": "hrc",
"Njalgulgule": "njl",
"Njebi": "nzb",
"Njen": "njj",
"Njerep": "njr",
"Njyem": "njy",
"Nkami": "nkq",
"Nkangala": "nkn",
"Nkari": "nkz",
"Nkem-Nkum": "isi",
"Nkhumbi": "khu",
"Nkongho": "nkc",
"Nkonya": "nko",
"Nkoroo": "nkx",
"Nkoya": "nka",
"Nkukoli": "nbo",
"Nkutu": "nkw",
"Nnam": "nbp",
"Nobiin": "fia",
"Nocte": "njb",
"Nogai": "nog",
"Noipä": "npx",
"Noiri": "noi",
"Nokuku": "nkk",
"Nomaande": "lem",
"Nomane": "nof",
"Nomatsiguenga": "not",
"Nomlaki": "nol",
"Nomu": "noh",
"Nong Zhuang": "zhn",
"Nonuya": "noj",
"Nooksack": "nok",
"Noon": "snf",
"Noone": "nhu",
"Nootka": "nuk",
"Nopala Chatino": "cya",
"Noric": "nrc",
"Norman": "nrf",
"Norn": "nrn",
"Norra": "nrr",
"Norse Kuno": "non",
"Norse Purba": "gmq-pro",
"Norway": "no",
"Norway Pengembara": "rmg",
"Norway Pertengahan": "gmq-mno",
"Nossob Bawah": "nsb",
"Notre": "bly",
"Notsi": "ncf",
"Nottoway": "ntw",
"Nottoway-Meherrin": "nwy",
"Novgorod Kuno": "zle-ono",
"Novial": "nov",
"Noy": "noy",
"Nsari": "asj",
"Nsenga": "nse",
"Nshi": "nsc",
"Nsong": "soo",
"Nsongo": "nsx",
"Ntcham": "bud",
"Ntomba": "nto",
"Ntra'ngith": "dgt",
"Nuaulu Selatan": "nxl",
"Nuaulu Utara": "nni",
"Nubaca": "baf",
"Nubi": "kcn",
"Nubia Kuno": "onw",
"Nubia Purba": "nub-pro",
"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",
"Numee": "kdk",
"Numidia": "nxm",
"Numik Purba": "azc-num-pro",
"Nungali": "nug",
"Nunggubuyu": "nuy",
"Nungon": "paa-nun",
"Nungu": "rin",
"Nuni Selatan": "nnw",
"Nuni Utara": "nuv",
"Nuosu": "ii",
"Nupbikha": "npb",
"Nupe": "nup",
"Nupoid Purba": "alv-nup-pro",
"Nuristani Purba": "iir-nur-pro",
"Nusa Laut": "nul",
"Nusu": "nuf",
"Nutabe": "cba-nut",
"Nyabwa": "nwb",
"Nyagrong Minyag": "ero-nya",
"Nyah Kur": "cbn",
"Nyaheun": "nev",
"Nyakyusa": "nyy",
"Nyala Timur": "nle",
"Nyali": "nlj",
"Nyam": "nmi",
"Nyamal": "nly",
"Nyambo": "now",
"Nyamusa-Molo": "nwm",
"Nyamwanga": "mwn",
"Nyamwezi": "nym",
"Nyaneka": "nyk",
"Nyang'i": "nyp",
"Nyanga (Congo)": "nyj",
"Nyanga (Togo)": "ayg",
"Nyanga-li": "nyc",
"Nyangatom": "nnj",
"Nyangbo": "nyb",
"Nyangga": "nny",
"Nyangumarta": "nna",
"Nyankole": "nyn",
"Nyarafolo Senoufo": "sev",
"Nyaturu": "rim",
"Nyaw": "nyw",
"Nyawaygi": "nyt",
"Nyemba": "nba",
"Nyengo": "nye",
"Nyenkha": "neh",
"Nyeu": "nyl",
"Nyigina": "nyh",
"Nyiha": "nih",
"Nyika": "nkt",
"Nyima Purba": "sdv-nyi-pro",
"Nyimang": "nyi",
"Nyindrou": "lid",
"Nyindu": "nyg",
"Nyishi": "njz",
"Nyiyaparli": "xny",
"Nynorsk Norway": "nn",
"Nyokon": "nvo",
"Nyole (Kenya)": "nyd",
"Nyole (Uganda)": "nuj",
"Nyong": "muo",
"Nyoro": "nyo",
"Nyulnyul": "nyv",
"Nyulnyulan Purba": "aus-nyu-pro",
"Nyunga": "nys",
"Nyungwe": "nyu",
"Nyâlayu": "yly",
"Nzadi": "nzd",
"Nzakambay": "nzy",
"Nzakara": "nzk",
"Nzanyi": "nja",
"Nzima": "nzi",
"Ná-Meo": "neo",
"Nùng": "nut",
"Nüpode Huitoto": "hux",
"Nǀuu": "ngh",
"O'chi'chi'": "xoc",
"O'du": "tyh",
"O'odham": "ood",
"Obanliku": "bzy",
"Obispeño": "obi",
"Oblo": "obl",
"Obo Manobo": "obo",
"Obokuitai": "afz",
"Obolo": "ann",
"Obulom": "obu",
"Ocaina": "oca",
"Occitan": "oc",
"Occitan Kuno": "pro",
"Oceania Purba": "poz-oce-pro",
"Od": "odk",
"Odia": "or",
"Odia Kuno": "inc-oor",
"Odia Pertengahan": "inc-mor",
"Odiai": "bhf",
"Odoodee": "kkc",
"Odual": "odu",
"Odut": "oda",
"Ofayé": "opy",
"Ofo": "ofo",
"Ogbah": "ogc",
"Ogbia": "ogb",
"Ogbogolo": "ogg",
"Ogbronuagum": "ogu",
"Ogea": "eri",
"Oghuz Kuno Awal": "trk-eog",
"Ogoni Purba": "nic-ogo-pro",
"Ohlone Selatan": "css",
"Ohlone Utara": "cst",
"Oirat Bertulis": "xwo",
"Oirata": "oia",
"Ojibwa Barat": "ojw",
"Ojibwa Barat Laut": "ojb",
"Ojibwa Tengah": "ojc",
"Ojibwa Timur": "ojg",
"Ojibwe": "oj",
"Ojitlán Chinantec": "chj",
"Okanagan": "oka",
"Oki-No-Erabu": "okn",
"Okiek": "oki",
"Okinawa": "ryu",
"Oko-Eni-Osayen": "oks",
"Oko-Juwoi": "okj",
"Okobo": "okb",
"Okodia": "okd",
"Okolod": "kqv",
"Okpamheri": "opa",
"Okpe (Edo Barat Daya)": "oke",
"Okpe (Edo Barat Laut)": "okx",
"Okpela": "atg",
"Oksapmin": "opm",
"Oku": "oku",
"Okwanuchu": "nai-okw",
"Olekha": "ole",
"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",
"Omi": "omi",
"Omok": "omk",
"Omotik": "omt",
"Omotik Purba": "omv-pro",
"Omurano": "omu",
"One Inebu": "oin",
"One Molmo": "aun",
"One Selatan": "osu",
"One Utara": "onr",
"Oneida": "one",
"Ong": "oog",
"Onga Purba": "qfa-ong-pro",
"Ongota": "bxe",
"Onin": "oni",
"Onjob": "onj",
"Ono": "ons",
"Onobasulu": "onn",
"Onondaga": "ono",
"Ontenu": "ont",
"Oorlams": "oor",
"Opao": "opo",
"Opata": "opt",
"Opuuo": "lgn",
"Opón": "sai-opo",
"Orang Seletar": "ors",
"Oraon Sadri": "sdr",
"Orejón": "ore",
"Oring": "org",
"Oriya Adivasi": "ort",
"Orléanais": "roa-orl",
"Ormu": "orz",
"Ormuri": "oru",
"Oro": "orx",
"Oro Win": "orw",
"Oroch": "oac",
"Oroha": "ora",
"Orok": "oaa",
"Orokaiva": "okv",
"Oroko": "bdu",
"Orokolo": "oro",
"Oromo": "om",
"Oroqen": "orh",
"Orowe": "bpk",
"Oruma": "orr",
"Orya": "ury",
"Osage": "osa",
"Osamayi": "syx",
"Osatu": "ost",
"Osci": "osc",
"Osing": "osi",
"Ososo": "oso",
"Ossetia": "os",
"Ossetia Kuno": "oos",
"Ot Danum": "otd",
"Otank": "uta",
"Oti": "oti",
"Oti-Volta Purba": "nic-ovo-pro",
"Oti-Volta Timur Purba": "nic-eov-pro",
"Oto-Manguean Purba": "omq-pro",
"Oto-Pamean Purba": "omq-otp-pro",
"Otomaco": "sai-oto",
"Otomi Estado de México": "ots",
"Otomi Ixtenco": "otz",
"Otomi Mezquital": "ote",
"Otomi Purba": "oto-otm-pro",
"Otomi Querétaro": "otq",
"Otomi Tanah Tinggi Timur": "otm",
"Otomi Temoaya": "ott",
"Otomi Tenango": "otn",
"Otomi Texcatepec": "otx",
"Otomi Tilapa": "otl",
"Otomian Purba": "oto-pro",
"Otoro": "otr",
"Ottawa": "otw",
"Otuke": "otu",
"Ouma": "oum",
"Oune": "oue",
"Owa": "stn",
"Owenia": "wsr",
"Owiniga": "owi",
"Oy": "oyb",
"Oya'oya": "oyy",
"Oyda": "oyd",
"Ozumacín Chinantec": "chz",
"Pa": "ppt",
"Pa Di": "pdi",
"Pa'a": "pqa",
"Pa-Hng": "pha",
"Paama": "pma",
"Paasaal": "sig",
"Pacahuara": "pcp",
"Pacoh": "pac",
"Padoe": "pdo",
"Paelignian": "pgn",
"Paeonia": "ine-pae",
"Pagi": "pgi",
"Pagibete": "pae",
"Pagu": "pgu",
"Pahari-Potwari": "phr",
"Paharia Sawriya": "mjt",
"Pahi": "lgt",
"Pahlavani": "phv",
"Pai Tavytera": "pta",
"Paicî": "pri",
"Paikoneka": "awd-pai",
"Paipai": "ppi",
"Paite": "pck",
"Paiute Utara": "pao",
"Paiwan": "pwn",
"Pak-Tong": "pkg",
"Pakanha": "pkn",
"Pakanik Purba": "mkh-pkn-pro",
"Paku": "pku",
"Pal": "abw",
"Palaic": "plq",
"Palaka Senoufo": "plr",
"Palantla Chinantec": "cpa",
"Palau": "pau",
"Palaungik Purba": "mkh-pal-pro",
"Palawano Barat Daya": "plv",
"Palawano Brooke's Point": "plw",
"Paleni": "pnl",
"Palenquero": "pln",
"Pali": "pi",
"Palikur": "plu",
"Paliyan": "pcf",
"Pallanganmiddang": "pmd",
"Palor": "fap",
"Palta": "sai-pal",
"Palu'e": "ple",
"Paluan": "plz",
"Palya Bareli": "bpx",
"Pam": "pmn",
"Pama-Nyunga Purba": "aus-pam-pro",
"Pambia": "pmb",
"Pame Tengah": "pbs",
"Pame Utara": "pmq",
"Pamigua": "sai-pam",
"Pamlico": "pmk",
"Pamona": "pmf",
"Pamosu": "hih",
"Pana (Afrika Barat)": "pnq",
"Pana (Afrika Tengah)": "pnz",
"Panamint": "par",
"Panare": "pbh",
"Panará": "kre",
"Panasuan": "psn",
"Panawa": "pwb",
"Pancana": "pnp",
"Panchpargania": "tdb",
"Pande": "bkj",
"Pangasinan": "pag",
"Pangseng": "pgs",
"Pangutaran Sama": "slm",
"Pangwa": "pbr",
"Pangwali": "pgg",
"Panim": "pnr",
"Paniya": "pcg",
"Pankararé": "pax",
"Pankararú": "paz",
"Pankhu": "pkh",
"Pannei": "pnc",
"Panobo": "pno",
"Panyi Bai": "bfc",
"Panyjima": "pnw",
"Panzaleo": "sai-pnz",
"Pao": "ppa",
"Papantla Totonac": "top",
"Papapana": "ppn",
"Papar": "dpp",
"Papasena": "pas",
"Papel": "pbo",
"Papi": "ppe",
"Papiamentu": "pap",
"Papitalai": "pat",
"Papora": "ppu",
"Papuan Malay": "pmy",
"Papuma": "ppm",
"Para Naga": "pzn",
"Parachi": "prc",
"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",
"Paresi-Waura Purba": "awd-prw-pro",
"Parkari Koli": "kvx",
"Parsi": "fa",
"Parsi Kuno": "peo",
"Parsi Pertengahan": "pal",
"Parthia": "xpr",
"Parya": "paq",
"Pashayi Barat Daya": "psh",
"Pashayi Tenggara": "psi",
"Pashayi Timur Laut": "aee",
"Pashto": "ps",
"Pasi": "psq",
"Pasifik Tengah Purba": "poz-pcc-pro",
"Pass Valley Yali": "yac",
"Pasé": "awd-pas",
"Patagón": "sai-ptg",
"Patamona": "pbc",
"Patani": "ptn",
"Pataxó Hã-Ha-Hãe": "pth",
"Patep": "ptp",
"Pathan Purba": "ira-pat-pro",
"Pathiya": "pty",
"Pattani": "lae",
"Pattapu": "ptq",
"Patwin": "pwi",
"Paulohi": "plh",
"Paumarí": "pad",
"Paunaca": "pnk",
"Pauri Bareli": "bfb",
"Pauserna": "psm",
"Pawaia": "pwa",
"Pawnee": "paw",
"Payaguá": "sai-pyg",
"Paynamar": "pmr",
"Pazeh": "pzh",
"Pe": "pai",
"Pear": "pcb",
"Pearik Purba": "mkh-pea-pro",
"Peba": "sai-peb",
"Pech": "pay",
"Pecheneg": "xpc",
"Peerapper": "xpw",
"Peere": "pfe",
"Pei": "ppq",
"Pekal": "pel",
"Pela": "bxd",
"Pele-Ata": "ata",
"Pemon": "aoc",
"Penan Barat": "pne",
"Penan Timur": "pez",
"Penchal": "pek",
"Pendau": "ums",
"Pengo": "peg",
"Penobscot": "aaq",
"Penrhyn": "pnh",
"Pentlatch": "ptw",
"Penuti Penara Purba": "nai-plp-pro",
"Perai": "wet",
"Peranakan Indonesian": "pea",
"Perancis": "fr",
"Perancis Kreol Karipúna": "kmv",
"Perancis Kreol Réunion": "rcf",
"Perancis Kreol San Miguel": "scf",
"Perancis Kuno": "fro",
"Perancis Pertengahan": "frm",
"Perema": "wom",
"Pericú": "nai-per",
"Permik Purba": "urj-prm-pro",
"Pero": "pip",
"Petapa Zapotec": "zpe",
"Petats": "pex",
"Petjo": "pey",
"Phai": "prt",
"Phake": "phk",
"Phala": "ypa",
"Phalura": "phl",
"Phana'": "phq",
"Phangduwali": "phw",
"Phende": "pem",
"Phimbi": "phm",
"Phoenicia": "phn",
"Phola": "ypg",
"Pholo": "yip",
"Phom": "nph",
"Phong-Kniang": "pnx",
"Phrae Pwo": "kjt",
"Phrygia": "xpg",
"Phu Thai": "pht",
"Phuan": "phu",
"Phudagi": "phd",
"Phuie": "pug",
"Phukha": "phh",
"Phuma": "ypm",
"Phunoi": "pho",
"Phuong": "phg",
"Phupa": "ypp",
"Phupha": "yph",
"Phuthi": "bnt-phu",
"Phuza": "ypz",
"Piamatsina": "ptr",
"Piame": "pin",
"Piapoco": "pio",
"Piaroa": "pid",
"Picard": "pcd",
"Picene Utara": "nrp",
"Picenum Selatan": "spx",
"Pichinglis": "fpe",
"Pichis Ashéninka": "cpu",
"Pict": "xpi",
"Picuris": "nai-pic",
"Pidgin Delaware": "dep",
"Pidgin Iha": "ihb",
"Pidgin Naga": "nag",
"Pidgin Ndyuka-Trio": "njt",
"Pidgin Onin": "onx",
"Piemonte": "pms",
"Pijao": "pij",
"Pije": "piz",
"Pijin": "pis",
"Pijin Basque-Iceland": "crp-bip",
"Pijin Cameroon": "wes",
"Pijin Greenland Barat": "crp-gep",
"Pijin Jerman Kiautschou": "crp-kia",
"Pijin Ladang Samoa": "crp-spp",
"Pijin Nigeria": "pcm",
"Pijin Portugis Macau": "crp-mpp",
"Pijin Rusia Taimyr": "crp-tpr",
"Pijin Rusia-China": "crp-cpr",
"Pilagá": "plg",
"Pileni": "piv",
"Pima Bajo": "pia",
"Pimbwe": "piw",
"Pinai-Hagahai": "pnn",
"Pingelapese": "pif",
"Pinghua Selatan": "csp",
"Pinghua Utara": "cnp",
"Pini": "pii",
"Pinigura": "pnv",
"Pinjarup": "pnj",
"Pinji": "pic",
"Pintiini": "pti",
"Pintupi-Luritja": "piu",
"Pinyin": "pny",
"Pipil": "ppl",
"Pirahã": "myp",
"Piratapuyo": "pir",
"Pirlatapa": "bxi",
"Piro": "pie",
"Pirriya": "xpa",
"Pisabo": "pig",
"Pisaflores Tepehua": "tpp",
"Piscataway": "psy",
"Pisidia": "xps",
"Pitcairn-Norfolk": "pih",
"Piti": "pcn",
"Pitjantjatjara": "pjt",
"Pitta-Pitta": "pit",
"Piu": "pix",
"Piya-Kwonci": "piy",
"Plains Cree": "crk",
"Plains Indian Sign Language": "psd",
"Plains Miwok": "pmw",
"Plapo Krumen": "ktj",
"Plateau Purba": "nic-plt-pro",
"Plautdietsch": "pdt",
"Pnar": "pbv",
"Pnar-Khasi-Lyngngam Purba": "aav-pkl-pro",
"Pochutec": "xpo",
"Podoko": "pbi",
"Pogali": "hkh",
"Pogolo": "poy",
"Pohnpei": "pon",
"Poitevin-Saintongeais": "roa-poi",
"Pokangá": "pok",
"Poke": "pof",
"Pol": "pmm",
"Polabia": "pox",
"Poland": "pl",
"Poland Kuno": "zlw-opl",
"Polci": "plj",
"Polinesia Purba": "poz-pol-pro",
"Polinesia Teras Purba": "poz-pnp-pro",
"Polinesia Timur Purba": "poz-pep-pro",
"Polonombauk": "plb",
"Pom": "pmo",
"Pomo Purba": "nai-pom-pro",
"Pomo Selatan": "peq",
"Pomo Tengah": "poo",
"Pomo Tenggara": "pom",
"Pomo Timur": "peb",
"Pomo Timur Laut": "pef",
"Pomo Utara": "pej",
"Ponam": "ncc",
"Pongu": "png",
"Ponosakan": "pns",
"Ponyo": "npg",
"Poqomam": "poc",
"Poqomchi'": "poh",
"Porohanon": "prh",
"Port Sandwich": "psw",
"Port Sorell": "xpl",
"Port Vato": "ptv",
"Portugis": "pt",
"Portugis Kreol Korlai": "vkp",
"Potawatomi": "pot",
"Potiguára": "pog",
"Poumei Naga": "pmx",
"Pouye": "bye",
"Powari": "pwr",
"Powhatan": "pim",
"Poyanáwa": "pyn",
"Pra-Samnit": "itc-psa",
"Prakrit": "pra",
"Prakrit Ashoka": "inc-ash",
"Prakrit Kamarupi": "inc-kam",
"Prakrit Niya": "pra-niy",
"Prasuni": "prn",
"Primitive Irish": "pgl",
"Principe": "pre",
"Prusia Kuno": "prg",
"Psikye": "kvj",
"Puare": "pux",
"Puebla Mazatec": "pbm",
"Puelche": "pue",
"Puinave": "pui",
"Puiron": "sit-prn",
"Pukapukan": "pkp",
"Pulabu": "pup",
"Pulau Bruny": "xpz",
"Pulau Flinders": "fln",
"Puluwat": "puw",
"Puma": "pum",
"Pumi Selatan": "pmj",
"Pumi Utara": "pmi",
"Pumpokol": "xpm",
"Pumé": "yae",
"Punan Aput": "pud",
"Punan Bah-Biau": "pna",
"Punan Batu": "pnm",
"Punan Merah": "puf",
"Punan Merap": "puc",
"Punan Tubu": "puj",
"Punik": "xpu",
"Punjabi": "pa",
"Punjabi Barat": "pnb",
"Punjabi Kuno": "inc-opa",
"Punu": "puu",
"Puoc": "puo",
"Puquina": "puq",
"Puragi": "pru",
"Purari": "iar",
"Purepecha": "pua",
"Puri": "prr",
"Purik": "prx",
"Purisimeño": "puy",
"Puroik Purba": "sit-khp-pro",
"Puruborá": "pur",
"Puruhá": "sai-prh",
"Purukotó": "sai-pur",
"Purum": "pub",
"Putai": "mfl",
"Putoh": "put",
"Putukwam": "afe",
"Puyo-Paekche": "xpp",
"Puyuma": "pyu",
"Pwaamei": "pme",
"Pwapwa": "pop",
"Pwo Barat": "pwo",
"Pwo Timur": "kjp",
"Pwo Utara": "pww",
"Pyapun": "pcw",
"Pye Krumen": "pye",
"Pyemmairre": "xpb",
"Pyen": "pyy",
"Pykobjê": "sai-pyk",
"Pyu": "pby",
"Páez": "pbb",
"Pááfang": "pfa",
"Päri": "lkr",
"Pémono": "pev",
"Pévé": "lme",
"Pökoot": "pko",
"Q'anjob'al": "kjb",
"Q'eqchi": "kek",
"Qabiao": "laq",
"Qaqet": "byx",
"Qatabanian": "xqt",
"Qiang Utara": "cng",
"Qibti": "cop",
"Qimant": "ahg",
"Quapaw": "qua",
"Quechua": "qu",
"Quechua Klasik": "qwc",
"Quechua Purba": "qwe-pro",
"Quenya": "qya",
"Quetzaltepec Mixe": "pxm",
"Queyu": "qvy",
"Quiavicuzas Zapotec": "zpj",
"Quileute": "qui",
"Quimbaya": "sai-qmb",
"Quinault": "qun",
"Quinigua": "nai-qng",
"Quinqui": "quq",
"Quioquitani-Quierí Zapotec": "ztq",
"Quiotepec Chinantec": "chq",
"Quiripi": "qyp",
"Quitemo": "sai-qtm",
"Rabha": "rah",
"Rabona": "sai-rab",
"Rade": "rad",
"Raetic": "xrr",
"Raga": "lml",
"Rahambuu": "raz",
"Rajasthan": "raj",
"Rajbanshi": "rjs",
"Raji": "rji",
"Rajong": "rjg",
"Rakahanga-Manihiki": "rkh",
"Rakhine": "rki",
"Ralte": "ral",
"Rama": "rma",
"Ramandi": "tks",
"Ramanos": "sai-ram",
"Ramoaaina": "rai",
"Ramopa": "kjx",
"Rampi": "lje",
"Rana Tharu": "thr",
"Rang": "rax",
"Rangkas": "rgk",
"Ranglong": "rnl",
"Rao": "rao",
"Rapa": "ray",
"Rapa Nui": "rap",
"Rapoisi": "kyx",
"Rapting": "rpt",
"Rara Bakati'": "lra",
"Rarotonga": "rar",
"Rasawa": "rac",
"Ratagnon": "btn",
"Ratahan": "rth",
"Rathawi": "rtw",
"Rathwi Bareli": "bgd",
"Raute": "rau",
"Ravula": "yea",
"Rawa": "rwo",
"Rawang": "raw",
"Rawat": "jnl",
"Rawo": "rwa",
"Rayón Zoque": "zor",
"Razajerdi": "rat",
"Razihi": "rzh",
"Reang": "ria",
"Reel": "atu",
"Rejang": "rej",
"Reli": "rei",
"Rema": "bow",
"Rembarunga": "rmb",
"Rembong": "reb",
"Remo": "rem",
"Rempi": "rmp",
"Remun": "lkj",
"Rendille": "rel",
"Rengao": "ren",
"Rennell": "mnv",
"Repanbitip": "rpn",
"Rer Bare": "rer",
"Rerau": "rea",
"Rerep": "pgk",
"Reshe": "res",
"Resígaro": "rgr",
"Retta": "ret",
"Reyesano": "rey",
"Riang": "ril",
"Riantana": "ran",
"Ribun": "rir",
"Rigwe": "iri",
"Rikbaktsa": "rkb",
"Ringgou": "rgu",
"Ririo": "rri",
"Ritarungo": "rit",
"Riung": "riu",
"Riverain Sango": "snj",
"Roglai Cacgia": "roc",
"Roglai Selatan": "rgs",
"Roglai Utara": "rog",
"Rogo": "rod",
"Rohingya": "rhg",
"Roma": "rmm",
"Romagnol": "rgn",
"Romam": "rmx",
"Romani": "rom",
"Romani Balkan": "rmn",
"Romani Baltik": "rml",
"Romani Carpathia": "rmc",
"Romani Finland Kalo": "rmf",
"Romani Sinte": "rmo",
"Romani Vlax": "rmy",
"Romani Wales": "rmw",
"Romania": "ro",
"Romano-Serbia": "rsb",
"Romanova": "rmv",
"Romansh": "rm",
"Romblomanon": "rol",
"Rombo": "rof",
"Romkun": "rmk",
"Ron": "cla",
"Ronga": "rng",
"Rongga": "ror",
"Rongpo": "rnp",
"Ronji": "roe",
"Roon": "rnn",
"Roria": "rga",
"Roro": "rro",
"Rotokas": "roo",
"Rotuma": "rtm",
"Rouran": "mis-rou",
"Roviana": "rug",
"Ruching Palaung": "pce",
"Rudbari": "rdb",
"Rufiji": "rui",
"Ruga": "ruh",
"Rukai": "dru",
"Rukai Purba": "dru-pro",
"Rukiga": "cgg",
"Ruma": "ruz",
"Rumai Palaung": "rbb",
"Rumu": "klq",
"Runga": "rou",
"Rungtu": "rtc",
"Rungus": "drg",
"Rungwa": "rnw",
"Rusia": "ru",
"Russenorsk": "crp-rsn",
"Rusyn": "rue",
"Rusyn Pannonia": "rsk",
"Ruthenia Kuno": "zle-ort",
"Rutul": "rut",
"Ruuli": "ruc",
"Ruwund": "rnd",
"Rwa": "rwk",
"Rwanda-Rundi": "rw",
"Ryukyu Purba": "jpx-ryu-pro",
"Sa": "sax",
"Sa'a": "apb",
"Sa'ban": "snv",
"Sa'och": "scq",
"Saafi-Saafi": "sav",
"Saam": "raq",
"Saamia": "lsm",
"Saanich": "str",
"Saare": "uss",
"Saaroa": "sxr",
"Saba": "saa",
"Sabaean": "xsa",
"Sabaki Purba": "bnt-sab-pro",
"Sabanê": "sae",
"Sabaot": "spy",
"Sabine": "sbv",
"Sabir": "pml",
"Sabu": "hvn",
"Sabüm": "sbo",
"Sacapulteco": "quv",
"Sadri": "sck",
"Saek": "skb",
"Saep": "spd",
"Safait": "sem-saf",
"Safaliba": "saf",
"Safeyoka": "apz",
"Safwa": "sbk",
"Sagala": "sbm",
"Sagalla": "tga",
"Sahaptin": "nai-spt",
"Saho": "ssy",
"Sahu": "saj",
"Saisiyat": "xsy",
"Sajau Basap": "sjb",
"Saka Purba": "xsc-sak-pro",
"Saka-Wakhi Purba": "xsc-skw-pro",
"Sakachep": "sch",
"Sakam": "skm",
"Sakao": "sku",
"Sakata": "skt",
"Sake": "sak",
"Sakizaya": "szy",
"Sala": "shq",
"Salako": "knx",
"Salampasu": "slx",
"Salar": "slr",
"Salas": "sgu",
"Salchuq": "slq",
"Saleman": "sau",
"Saliba (Colombia)": "slc",
"Saliba (New Guinea)": "sbe",
"Salinan": "sln",
"Salish Montana": "fla",
"Salish Puget Sound Selatan": "slh",
"Salish Purba": "sal-pro",
"Salt-Yui": "sll",
"Saluan": "loe",
"Salumá": "slj",
"Sam": "snx",
"Sama": "smd",
"Samal": "sem-sam",
"Samaritan Aramaic": "sam",
"Samarokena": "tmj",
"Samatao": "ysd",
"Samba": "smx",
"Sambal": "xsb",
"Sambalpuri": "spv",
"Sambe": "xab",
"Samberigi": "ssx",
"Samburu": "saq",
"Samei": "smh",
"Sami Akkala": "sia",
"Sami Inari": "smn",
"Sami Kemi": "sjk",
"Sami Kildin": "sjd",
"Sami Lule": "smj",
"Sami Pite": "sje",
"Sami Purba": "smi-pro",
"Sami Selatan": "sma",
"Sami Skolt": "sms",
"Sami Ter": "sjt",
"Sami Ume": "sju",
"Sami Utara": "se",
"Samiah Barat Purba": "sem-wes-pro",
"Samiah Purba": "sem-pro",
"Samo": "smq",
"Samo Selatan": "sbd",
"Samoa": "sm",
"Samogitia": "sgs",
"Samosa": "swm",
"Samoyed Purba": "syd-pro",
"Sampang": "rav",
"Samre": "sxm",
"Samtao": "stu",
"Samvedi": "smv",
"San Agustín Mixtepec Zapotec": "ztm",
"San Baltazar Loxicha Zapotec": "zpx",
"San Felipe Otlaltepec Popoloca": "pow",
"San Juan Atzingo Popoloca": "poe",
"San Juan Teita Mixtec": "xtj",
"San Luís Temalacayuca Popoloca": "pps",
"San Marcos Tlalcoyalco Popoloca": "pls",
"San Martín Itunyoso Triqui": "trq",
"San Pablo Güilá Zapotec": "ztu",
"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",
"Sanglechi-Ishkashimi Purba": "ira-sgi-pro",
"Sango": "sg",
"Sangu (Gabon)": "snq",
"Sangu (Tanzania)": "sbp",
"Sani": "ysn",
"Sanie": "ysy",
"Saniyo-Hiyewe": "sny",
"Sansi": "ssi",
"Sanskrit": "sa",
"Santa Catarina Albarradas Zapotec": "ztn",
"Santa Inés Ahuatempan Popoloca": "pca",
"Santa Inés Yatzechi Zapotec": "zpn",
"Santa María Quiegolani Zapotec": "zpi",
"Santa Teresa Cora": "cok",
"Santal": "sat",
"Santiago Xanica Zapotec": "zpr",
"Sanumá": "xsu",
"Sapa": "tys",
"Saparua": "spr",
"Sapará": "sai-sap",
"Sapo": "krn",
"Saponi": "spi",
"Saposa": "sps",
"Sapuan": "spu",
"Sapé": "spc",
"Sar": "mwm",
"Sara": "sre",
"Sara Kaba": "sbz",
"Sara Kaba Deme": "kwg",
"Sara Kaba Náà": "kwv",
"Sara Purba": "csu-sar-pro",
"Saraiki": "skr",
"Saramaccan": "srm",
"Sarangani Blaan": "bps",
"Sarasira": "zsa",
"Saraveca": "sar",
"Sarawak Utara Purba": "poz-swa-pro",
"Sarazi": "inc-sar",
"Sardinia": "sc",
"Sarikoli": "srh",
"Sarli": "sdf",
"Sarmatia Purba": "xsc-sar-pro",
"Sartang": "onp",
"Sarua": "swy",
"Sarudu": "sdu",
"Saruga": "sra",
"Sasak": "sas",
"Sasaru": "sxs",
"Sassari": "sdc",
"Satawal": "stw",
"Sateré-Mawé": "mav",
"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",
"Saxon Kuno": "osx",
"Saxon Transylvania": "gmw-tsx",
"Saxwe Gbe": "sxw",
"Saya": "say",
"Sayula Popoluca": "pos",
"Scanian": "gmq-scy",
"Schwaben Szatmár": "gmw-stm",
"Scots": "sco",
"Scots Pertengahan": "gmw-msc",
"Scythia Purba": "xsc-pro",
"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",
"Selkup Purba": "sel-pro",
"Selkup Selatan": "sel-sou",
"Selkup Utara": "sel-nor",
"Selonia": "sxl",
"Selungai Murut": "slg",
"Seluwasan": "sws",
"Sema": "nsm",
"Semai": "sea",
"Semandang": "sdm",
"Semaq Beri": "szc",
"Sembakung Murut": "sbr",
"Semelai": "sza",
"Semimi": "etz",
"Semnam": "ssm",
"Semnani": "smy",
"Sempan": "xse",
"Sena": "seh",
"Senara Sénoufo": "seq",
"Senaya": "syn",
"Sene": "sej",
"Seneca": "see",
"Sengele": "szg",
"Senggi": "snu",
"Sengo": "spk",
"Sengseng": "ssz",
"Senhaja De Srair": "sjs",
"Sensi": "sni",
"Sentani": "set",
"Sentinel": "std",
"Sepa (Indonesia)": "spb",
"Sepa (New Guinea)": "spe",
"Sepanyol": "es",
"Sepanyol Kuno": "osp",
"Sepen": "spm",
"Sepik Iwam": "iws",
"Sera": "sry",
"Seranan": "srn",
"Serbo-Croatia": "sh",
"Sere": "swf",
"Serer": "srr",
"Seri": "sei",
"Serili": "sve",
"Seroa": "kqu",
"Serrano": "ser",
"Seru": "szd",
"Serua": "srw",
"Serui-Laut": "seu",
"Seta": "stf",
"Setaman": "stm",
"Seti": "sbi",
"Severn Ojibwa": "ojs",
"Sewa Bay": "sew",
"Seze": "sze",
"Sha": "scw",
"Shabak": "sdb",
"Shabo": "sbf",
"Shahmirzadi": "srz",
"Shahrudi": "shm",
"Shall-Zwall": "sha",
"Shama-Sambuga": "sqa",
"Shamang": "xsh",
"Shambala": "ksb",
"Shan": "shn",
"Shanenawa": "swo",
"Shanga": "sho",
"Shangzhai": "jih",
"Sharanahua": "mcd",
"Shark Bay": "ssv",
"Sharwa": "swq",
"Shasta": "sht",
"Shasta Sungai Baru": "nai-nrs",
"Shatt": "shj",
"Shau": "sqh",
"Shawnee": "sjw",
"She": "shx",
"Shebayo": "awd-she",
"Shehri": "shv",
"Shekkacho": "moy",
"Sheko": "she",
"Shelta": "sth",
"Shendu": "shl",
"Sheni": "scv",
"Sherbro": "bun",
"Sherdukpen": "sdp",
"Sherpa": "xsr",
"Sheshi Kham": "kip",
"Shi": "shr",
"Shilluk": "shk",
"Shina": "scl",
"Shinasha": "bwo",
"Shipibo-Conibo": "shp",
"Shixing": "sxg",
"Sholaga": "sle",
"Shom Peng": "sii",
"Shona": "sn",
"Shoo-Minda-Nye": "bcv",
"Shor": "cjs",
"Shoshone": "shh",
"Shua": "shg",
"Shuar": "jiv",
"Shuba": "cbq",
"Shughni": "sgh",
"Shughni-Roshani Purba": "ira-shr-pro",
"Shughni-Yazghulami Purba": "ira-shy-pro",
"Shughni-Yazghulami-Munji Purba": "ira-sym-pro",
"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",
"Sicanian": "sxc",
"Sicel": "scx",
"Sichuan": "zhx-sic",
"Sicilia": "scn",
"Siculo-Arabic": "sqr",
"Sidamo": "sid",
"Sidetic": "xsd",
"Sie": "erg",
"Sierra Leone Sign Language": "sgx",
"Sighu": "sxe",
"Sihan": "snr",
"Sika": "ski",
"Sikaiana": "sky",
"Sikaritai": "tty",
"Sikiana": "sik",
"Sikkim": "sip",
"Sikule": "skh",
"Sila": "slt",
"Sileibi": "sbq",
"Silesia": "szl",
"Silimo": "wul",
"Siliput": "mkc",
"Silopi": "xsp",
"Silt'e": "stv",
"Simaa": "sie",
"Simba": "sbw",
"Simbali": "smg",
"Simbari": "smb",
"Simbo": "sbb",
"Simeku": "smz",
"Simeulue": "smr",
"Simte": "smt",
"Sinacantán": "nai-sin",
"Sinagen": "siu",
"Sinasina": "sst",
"Sinaugoro": "snc",
"Sindarin": "sjn",
"Sindhi": "sd",
"Sindhi Bhil": "sbn",
"Singa": "sgm",
"Singapore Sign Language": "sls",
"Singpho": "sgp",
"Sinhala": "si",
"Sinicahua Mixtec": "xti",
"Sininkere": "skq",
"Sino-Tibet Purba": "sit-pro",
"Sinyar": "sys",
"Sinúfana": "sai-sin",
"Sio": "xsi",
"Siona": "snn",
"Siouan-Catawba Purba": "nai-sca-pro",
"Sioux Purba": "sio-pro",
"Sipakapense": "qum",
"Sira": "swj",
"Siraya": "fos",
"Sirenik": "ysr",
"Siri": "sir",
"Siriano": "sri",
"Sirionó": "srq",
"Sirmauri": "srx",
"Siroi": "ssd",
"Sisaala Barat": "ssl",
"Sissala": "sld",
"Sissano": "sso",
"Situ": "sit-sit",
"Siuslaw": "sis",
"Sivandi": "siy",
"Siwai": "siw",
"Siwi": "siz",
"Siwu": "akp",
"Skagit": "ska",
"Skalvian": "svx",
"Ske": "ske",
"Skou": "skv",
"Slav Purba": "sla-pro",
"Slav Timur Kuno": "orv",
"Slavey Selatan": "xsl",
"Slavey Utara": "scs",
"Slavomolisano": "svm",
"Slavonic Gereja": "zls-chs",
"Slavonic Gereja Kuno": "cu",
"Slovak": "sk",
"Slovak Kuno": "zlw-osk",
"Slovakian Sign Language": "svk",
"Slovenia": "sl",
"Slovincia": "zlw-slv",
"Small Flowery Miao": "sfm",
"Smärky Kanum": "kxq",
"Snohomish": "sno",
"So'a": "ssq",
"Sobei": "sob",
"Sochiapam Chinantec": "cso",
"Soga": "xog",
"Sogdia": "sog",
"Sogdia Purba": "ira-sgc-pro",
"Sok": "skk",
"Sokna": "swn",
"Soko": "soc",
"Sokoro": "sok",
"Solano": "xso",
"Soli": "sby",
"Solon": "tuw-sol",
"Solong": "aaw",
"Solos": "sol",
"Som": "smc",
"Somali": "so",
"Somaloid Purba": "cus-som-pro",
"Somba-Siawari": "bmu",
"Somra": "ntx",
"Somrai": "sor",
"Somray": "smu",
"Somyev": "kgt",
"Sonaga": "ysg",
"Sonde": "shc",
"Songe": "sop",
"Songhai Purba": "son-pro",
"Songomeno": "soe",
"Songoora": "sod",
"Sonha": "soi",
"Sonia": "siq",
"Soninke": "snk",
"Sonsorol": "sov",
"Soo": "teu",
"Sop": "urw",
"Soqotri": "sqt",
"Sora": "srb",
"Sorbia Atas": "hsb",
"Sori-Harengan": "sbh",
"Sorkhei": "sqo",
"Sorothaptic": "sxo",
"Sos Kundi": "sdk",
"Sota Kanum": "krz",
"Sotho": "st",
"Sotho Utara": "nso",
"Sotho-Tswana Purba": "bnt-sts-pro",
"Sou": "sqq",
"Sougb": "mnx",
"Southeast Babar": "vbb",
"Southeast Ijo": "ijs",
"Southeastern Ixtlán Zapotec": "zpd",
"Southern Pame": "pmz",
"Southern Qiang": "qxs",
"Southern Rincon Zapotec": "zsr",
"Sowa": "sww",
"Sowanda": "sow",
"Spanish Sign Language": "ssp",
"Spiti Bhoti": "spt",
"Spokane": "spo",
"Squamish": "squ",
"Sri Lankan Sign Language": "sqs",
"Stau": "ero-tau",
"Stod Bhoti": "sbu",
"Stoney": "sto",
"Suabo": "szp",
"Suarmin": "seo",
"Suau": "swp",
"Suba": "sxb",
"Suba-Simbiti": "ssc",
"Subanen Tengah": "syb",
"Subanen Utara": "stb",
"Subanon Barat": "suc",
"Subanun Lapuyan": "laa",
"Subi": "xsj",
"Subiya": "sbs",
"Subtiaba": "sut",
"Sudan Tengah Purba": "csu-pro",
"Sudest": "tgo",
"Sudovian": "xsv",
"Suena": "sue",
"Suga": "sgi",
"Suganga": "sug",
"Sui": "swi",
"Suki": "sui",
"Suku": "sub",
"Sukuma": "suk",
"Sukur": "syk",
"Sukurum": "zsu",
"Sula": "szn",
"Sulawesi Selatan Purba": "poz-ssw-pro",
"Sulka": "sua",
"Sulod": "srg",
"Suluk": "tsg",
"Sulung": "suv",
"Suma": "sqm",
"Sumariup": "siv",
"Sumau": "six",
"Sumbawa": "smw",
"Sumbwa": "suw",
"Sumeria": "sux",
"Sunam": "ssk",
"Sunda": "su",
"Sunda Kuno": "osn",
"Sungai": "dmg",
"Sungwadaga": "mwo",
"Sungwadia": "mrb",
"Sunum": "ymn",
"Sunwar": "suz",
"Suoy": "syo",
"Supyire": "spp",
"Sur": "tdl",
"Surbakhal": "sbj",
"Suri": "suq",
"Surigaonon": "sgd",
"Surjapuri": "sjp",
"Sursurunga": "sgz",
"Suruahá": "swx",
"Surubu": "sde",
"Suruí": "sru",
"Suruí Do Pará": "mdz",
"Suryani Klasik": "syc",
"Susquehannock": "sqn",
"Susu": "sus",
"Susuami": "ssu",
"Suundi": "sdj",
"Suwawa": "swu",
"Suyá": "suy",
"Svan": "sva",
"Swabia": "swg",
"Swahili": "sw",
"Swampy Cree": "csw",
"Swazi": "ss",
"Sweden": "sv",
"Sweden Kuno": "gmq-osw",
"Swedish Sign Language": "swl",
"Swiss-French Sign Language": "ssr",
"Swiss-German Sign Language": "sgg",
"Swiss-Italian Sign Language": "slf",
"Swo": "sox",
"Syenara Senoufo": "shz",
"Sylhet": "syl",
"Sácata": "sai-sac",
"Sãotomense": "cri",
"Sìcìté Sénoufo": "sep",
"Sô": "sss",
"T'en": "tct",
"Ta-Arawak Purba": "awd-taa-pro",
"Taabwa": "tap",
"Taba": "mky",
"Tabancale": "sai-tab",
"Tabaru": "tby",
"Tabasaran": "tab",
"Tabasco Chontal": "chf",
"Tabasco Zoque": "zoq",
"Tabla": "tnm",
"Tabo": "knv",
"Tabriak": "tzx",
"Tacana": "tna",
"Tachawit": "shy",
"Tadaksahak": "dsq",
"Tadyawan": "tdy",
"Tae'": "rob",
"Tafi": "tcd",
"Tafreshi": "xme-taf",
"Tagabawa": "bgs",
"Tagal Murut": "mvv",
"Tagalog": "tl",
"Tagbanwa": "tbw",
"Tagbanwa Tengah": "tgt",
"Tagbu": "tbm",
"Tagdal": "tda",
"Tagish": "tgx",
"Tagoi": "tag",
"Tagwana Senoufo": "tgw",
"Tahiti": "ty",
"Tahltan": "tht",
"Tai": "taw",
"Tai Barat Daya Purba": "tai-swe-pro",
"Tai Daeng": "tyr",
"Tai Dam": "blt",
"Tai Do": "tyj",
"Tai Dón": "twh",
"Tai Hang Tong": "thc",
"Tai Hongjin": "tiz",
"Tai Laing": "tjl",
"Tai Loi": "tlq",
"Tai Long": "thi",
"Tai Nüa": "tdd",
"Tai Pao": "tpo",
"Tai Purba": "tai-pro",
"Tai Thanh": "tmm",
"Tai Ya": "cuu",
"Taikat": "aos",
"Tainae": "ago",
"Tairora Selatan": "omw",
"Tairora Utara": "tbg",
"Tairuma": "uar",
"Taishan": "zhx-tai",
"Taita": "dav",
"Taivoan": "tvx",
"Taje": "pee",
"Tajik": "tg",
"Tajio": "tdj",
"Tajuasohn": "tja",
"Takelma": "tkm",
"Takia": "tbc",
"Takik Purba": "azc-tak-pro",
"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",
"Taman Purba": "sdv-tmn-pro",
"Tamanaku": "tmz",
"Tamang Barat": "tdg",
"Tamang Barat Daya": "tsf",
"Tamang Barat Laut": "tmk",
"Tamang Gorkha Timur": "tge",
"Tamang Purba": "sit-tam-pro",
"Tamang Timur": "taj",
"Tamazight Atlas Tengah": "tzm",
"Tamazola Mixtec": "vmx",
"Tambas": "tdk",
"Tambora": "xxt",
"Tambotalo": "tls",
"Tami": "tmy",
"Tamil": "ta",
"Tamil Kuno": "oty",
"Tamki": "tax",
"Tamnim Citak": "tml",
"Tampias Lobu": "low",
"Tampuan": "tpu",
"Tampulma": "tpm",
"Tanacross": "tcb",
"Tanahmerah": "tcm",
"Tanapag": "tpv",
"Tanchangya": "tnv",
"Tandaganon": "tgn",
"Tandia": "tni",
"Tanema": "tnx",
"Tangale": "tan",
"Tangam": "sit-tgm",
"Tanggu": "tgu",
"Tangkhul Purba": "sit-tng-pro",
"Tangko": "tkx",
"Tanglang": "ytl",
"Tangoa": "tgp",
"Tangsa": "nst",
"Tanguat": "tbs",
"Tangut": "txg",
"Tangwang": "mis-tnw",
"Tani Purba": "sit-tan-pro",
"Tanimbili": "tbe",
"Tanimuca-Retuarã": "tnc",
"Tanjijili": "uji",
"Tanna Barat Daya": "nwi",
"Tanna Utara": "tnn",
"Taos": "twf",
"Tapachultec": "nai-tap",
"Taparita": "sai-tpr",
"Tapayuna": "sai-tap",
"Tapeba": "tbb",
"Tapei": "afp",
"Tapieté": "tpj",
"Tapirapé": "taf",
"Tar Gula": "kcm",
"Tara Baka": "bdh",
"Tarahumara Barat Daya": "twr",
"Tarahumara Tengah": "tar",
"Tarahumara Tenggara": "tcu",
"Tarahumara Utara": "thh",
"Tarairiú": "sai-trr",
"Tarangan Barat": "txn",
"Tarangan Timur": "tre",
"Taranoan Purba": "sai-tar-pro",
"Tarantino": "roa-tar",
"Tarao": "tro",
"Taraon": "mhu",
"Tareng": "tgr",
"Tariana": "tae",
"Tarifit": "rif",
"Tarjumo": "txj",
"Tarok": "yer",
"Taroko": "trv",
"Tarpia": "tpf",
"Tartessian": "txr",
"Taruma": "tdm",
"Tasawaq": "twq",
"Tashelhit": "shi",
"Tasmania": "xtz",
"Tasmania Tenggara": "xpf",
"Tasmate": "tmt",
"Tat": "ttt",
"Tataltepec Chatino": "cta",
"Tatana": "txx",
"Tatar": "tt",
"Tatar Crimea": "crh",
"Tatar Siberia": "sty",
"Tataviam": "azc-tat",
"Tati Kuno": "xme-ott",
"Tatik Purba": "xme-ttc-pro",
"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",
"Tawbuid Barat": "twb",
"Tawbuid Timur": "bnj",
"Taworta": "tbp",
"Tawoyan": "twy",
"Tay Khang": "tnu",
"Tayman": "sem-tay",
"Tayo": "cks",
"Taíno": "tnq",
"Tboli": "tbl",
"Tchitchege": "tck",
"Tchumbuli": "bqa",
"Te'un": "tve",
"Teanu": "tkw",
"Tebul Ure Dogon": "dtu",
"Tecpatlán Totonac": "tcw",
"Tedaga": "tuq",
"Tee": "tkq",
"Tefaro": "tfo",
"Tegali": "ras",
"Tehit": "kps",
"Tehuelche": "teh",
"Teiwa": "twe",
"Tejalapan Zapotec": "ztt",
"Teke Tengah": "nzu",
"Teke-Fuumu": "ifm",
"Teke-Kukuya": "kkw",
"Teke-Laali": "lli",
"Teke-Tege": "teg",
"Teke-Tsaayi": "tyi",
"Teke-Tyee": "tyx",
"Tektiteko": "ttc",
"Tela-Masbuar": "tvm",
"Telefol": "tlf",
"Telugu": "te",
"Telugu Kuno": "dra-ote",
"Teluk Malua": "mll",
"Teluti": "tlt",
"Tem": "kdh",
"Tembé": "tqb",
"Teme": "tdo",
"Temein": "teq",
"Temi": "soz",
"Temiar": "tea",
"Temne": "tem",
"Temoq": "tmo",
"Tempasuk Dusun": "tdu",
"Temuan": "tmw",
"Ten'edn": "tnz",
"Tene Kan Dogon": "dtk",
"Tenggarong Kutai Malay": "vkt",
"Tengger": "tes",
"Tenharim": "pah",
"Tenino": "tqn",
"Tenis": "tns",
"Tennet": "tex",
"Teochew": "nan-tws",
"Teop": "tio",
"Teor": "tev",
"Tepecano": "tep",
"Tepehua Huehuetla": "tee",
"Tepehuan Barat Daya": "tla",
"Tepehuan Tenggara": "stp",
"Tepehuan Utara": "ntp",
"Tepetotutla Chinantec": "cnt",
"Tepeuxila Cuicatec": "cux",
"Tepinapa Chinantec": "cte",
"Tepo Krumen": "ted",
"Tequistlatec": "nai-teq",
"Tera": "ttr",
"Terebu": "trb",
"Terei": "buo",
"Tereno": "ter",
"Teressa": "tef",
"Tereweng": "twg",
"Teribe": "tfr",
"Terik": "tec",
"Termanu": "twu",
"Ternate": "tft",
"Ternateño": "tmg",
"Tese": "keg",
"Teshenawa": "twc",
"Tetela": "tll",
"Tetete": "teb",
"Tetserret": "tez",
"Tetum": "tet",
"Tetun Dili": "tdt",
"Teushen": "sai-teu",
"Teutila Cuicatec": "cut",
"Tewa": "tew",
"Texistepec Popoluca": "poq",
"Texmelucan Zapotec": "zpz",
"Tha": "thy",
"Thachanadan": "thn",
"Thai": "th",
"Thai Selatan": "sou",
"Thai Song": "soa",
"Thai Utara": "nod",
"Thakali": "ths",
"Thamud": "sem-tha",
"Thangmi": "thf",
"Thao": "ssf",
"Tharaka": "thk",
"Tharrgari": "dhr",
"Thavung": "thm",
"Thawa": "xtv",
"Tho": "tou",
"Thompson": "thp",
"Thopho": "ytp",
"Thracian": "txh",
"Thu Lao": "tyl",
"Thulung": "tdh",
"Thurawal": "tbh",
"Thuri": "thu",
"Tiagba": "ahi",
"Tiale": "mnl",
"Tiang": "tbj",
"Tibea": "ngy",
"Tibet": "bo",
"Tibet Klasik": "xct",
"Tibet Kuno": "otb",
"Ticuna": "tca",
"Tidore": "tvo",
"Tidung Selatan": "itd",
"Tidung Utara": "ntd",
"Tiemacèwè Bozo": "boo",
"Tiene": "tii",
"Tifal": "tif",
"Tigak": "tgc",
"Tigre": "tig",
"Tigrinya": "ti",
"Tii": "txq",
"Tijaltepec Mixtec": "xtl",
"Tikar": "tik",
"Tikopia": "tkp",
"Tillamook": "til",
"Tilquiapan Zapotec": "zts",
"Tilung": "tij",
"Tima": "tms",
"Timbe": "tim",
"Timor Pidgin": "tvy",
"Timote": "sai-tim",
"Timucua": "tjm",
"Tinagas Kota Marudu": "ktr",
"Tinani": "lbf",
"Tindi": "tin",
"Tingui-Boto": "tgv",
"Tinigua": "tit",
"Tinoc Kallahan": "tne",
"Tinputz": "tpz",
"Tipai": "nai-tip",
"Tippera": "tpe",
"Tira": "tic",
"Tirahi": "tra",
"Tiranige Diga Dogon": "tde",
"Tirax": "mme",
"Tircul": "pyx",
"Tiri": "cir",
"Tiruray": "tiy",
"Tita": "tdq",
"Titan": "ttv",
"Tiv": "tiv",
"Tiwa": "lax",
"Tiwa Selatan": "tix",
"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",
"Tlapanec Malinaltepec": "tcf",
"Tlingit": "tli",
"To": "toz",
"To'abaita": "mlu",
"Toaripi": "tqo",
"Toba": "tob",
"Toba-Maskoy": "tmf",
"Tobanga": "tng",
"Tobati": "tti",
"Tobelo": "tlb",
"Tobian": "tox",
"Tobilung": "tgb",
"Tobo": "tbv",
"Tocharia A": "xto",
"Tocharia B": "txb",
"Tocharia Purba": "ine-toc-pro",
"Tocho": "taz",
"Toda": "tcx",
"Todrah": "tdr",
"Tofa": "kim",
"Tofanma": "tlg",
"Tofin Gbe": "tfi",
"Togbo-Vara Banda": "tor",
"Togo Tengah Purba": "alv-gtm-pro",
"Togoyo": "tgy",
"Tojolabal": "toj",
"Tok Pisin": "tpi",
"Toka-Leya": "dov",
"Tokano": "zuh",
"Tokelau": "tkl",
"Toki Pona": "tok",
"Toku-No-Shima": "tkn",
"Tol": "jic",
"Tolai": "ksd",
"Tolaki": "lbw",
"Tolomako": "tlm",
"Tolowa": "tol",
"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": "to",
"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",
"Torricelli": "tei",
"Torricelli Yau": "yyu",
"Torwali": "trw",
"Torá": "trz",
"Tosu": "sit-tos",
"Totela": "ttl",
"Toto": "txo",
"Totoli": "txe",
"Totomachapan Zapotec": "zph",
"Totonac Barat": "tqt",
"Totoro": "ttk",
"Totozoquean Purba": "nai-tot-pro",
"Touo": "tqu",
"Toura": "neb",
"Toussiana Selatan": "wib",
"Toussiana Utara": "tsp",
"Towei": "ttn",
"Trans-New Guinea Purba": "ngf-pro",
"Translingual": "mul",
"Traveller Scottish": "trl",
"Tregami": "trm",
"Tremembé": "tme",
"Trieng": "stg",
"Trimuris": "tip",
"Tring": "tgq",
"Tringgus": "trx",
"Trinitario": "trn",
"Tripuri Awal": "xtr",
"Triqui Purba": "omq-tri-pro",
"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",
"Tsez Purba": "cau-tsz-pro",
"Tshangla": "tsj",
"Tshobdun": "sit-tsh",
"Tshwa": "hio",
"Tsikimba": "kdl",
"Tsimané": "cas",
"Tsimshian": "tsi",
"Tsimshianik Purba": "nai-tsi-pro",
"Tsishingini": "tsw",
"Tso": "ldp",
"Tsogo": "tsv",
"Tsonga": "ts",
"Tsotsitaal": "fly",
"Tsou": "tsu",
"Tsum": "ttz",
"Tsuut'ina": "srs",
"Tsuvadi": "tvd",
"Tsuvan": "tsh",
"Tswa": "tsc",
"Tswana": "tn",
"Tswapong": "two",
"Tuamotuan": "pmt",
"Tuareg": "tmh",
"Tubar": "tbu",
"Tucano": "tuo",
"Tugen": "tuy",
"Tugun": "tzn",
"Tugutil": "tuj",
"Tuhua Shaozhou": "zhx-sht",
"Tujia Selatan": "tjs",
"Tujia Utara": "tji",
"Tukang Besi Selatan": "bhq",
"Tukang Besi Utara": "khc",
"Tuki": "bag",
"Tukpa": "tpq",
"Tukudede": "tkd",
"Tukumanféd": "tkf",
"Tula": "tul",
"Tulehu": "tlu",
"Tulishi": "tey",
"Tulu": "tcy",
"Tulu-Bohuai": "rak",
"Tulua": "aus-tul",
"Tuma-Irumu": "iou",
"Tumak": "tmc",
"Tumbuka": "tum",
"Tumi": "kku",
"Tumleo": "tmq",
"Tumshuq": "xtq",
"Tumtum": "tbr",
"Tumulung Sisaala": "sil",
"Tunebo Barat": "tnb",
"Tunebo Tengah": "tuf",
"Tunen": "tvu",
"Tungag": "lcm",
"Tunggare": "trt",
"Tungus Purba": "tuw-pro",
"Tunia": "tug",
"Tunica": "tun",
"Tunjung": "tjg",
"Tunni": "tqq",
"Tunumiisut": "esx-tut",
"Tunzu": "dza",
"Tuoba": "mis-tuo",
"Tuotomb": "ttf",
"Tuparí": "tpr",
"Tupi Kuno": "tpw",
"Tupi Purba": "tup-pro",
"Tupi-Guarani Purba": "tup-gua-pro",
"Tupinambá": "tpn",
"Tupinikin": "tpk",
"Tupuri": "tui",
"Turaka": "trh",
"Turdetania": "mis-tdt",
"Turdulia": "mis-tdl",
"Turi": "trd",
"Turiwára": "twt",
"Turk Kuno": "otk",
"Turka": "tuz",
"Turkana": "tuv",
"Turki": "tr",
"Turki Anatolia Kuno": "trk-oat",
"Turki Khorasan": "kmz",
"Turki Usmaniyah": "ota",
"Turkik Purba": "trk-pro",
"Turkmen": "tk",
"Turoyo": "tru",
"Turumsa": "tqm",
"Turung": "try",
"Tuscarora": "tus",
"Tutchone Selatan": "tce",
"Tutchone Utara": "ttm",
"Tutelo": "tta",
"Tutong": "ttg",
"Tutsa Naga": "tvt",
"Tutuba": "tmi",
"Tututni": "tuu",
"Tuva": "tyv",
"Tuvalu": "tvl",
"Tuwali Ifugao": "ifk",
"Tuwari": "tww",
"Tuwuli": "bov",
"Tuxináwa": "tux",
"Tuxá": "tud",
"Tuyuca": "tue",
"Tuyuhun": "mis-tuh",
"Twana": "twa",
"Twendi": "twn",
"Tyap": "kcg",
"Tyaraity": "woa",
"Tyerrernotepanner": "xph",
"Tz'utujil": "tzj",
"Tzeltal": "tzh",
"Tzotzil": "tzo",
"Tày": "tyz",
"Tày Tac": "tyt",
"Tây Bồi": "tas",
"Téén": "lor",
"Tübatulabal": "tub",
"U": "uuu",
"Uab Meto": "aoz",
"Uamué": "uam",
"Uare": "ksj",
"Ubaghara": "byc",
"Ubang": "uba",
"Ubangi Purba": "nic-ubg-pro",
"Ubi": "ubi",
"Ubir": "ubr",
"Ubykh": "uby",
"Ucayali-Yurúa Ashéninka": "cpb",
"Uda": "uda",
"Udi": "udi",
"Udihe": "ude",
"Udmurt": "udm",
"Uduk": "udu",
"Ufim": "ufi",
"Ugandan Sign Language": "ugn",
"Ugarit": "uga",
"Ughele": "uge",
"Ugrik Purba": "urj-ugr-pro",
"Uhami": "uha",
"Uisai": "uis",
"Ujir": "udj",
"Ukaan": "kcf",
"Ukhwejo": "ukh",
"Ukit": "umi",
"Ukpe-Bayobiri": "ukp",
"Ukpet-Ehom": "akd",
"Ukraine": "uk",
"Ukrainian Sign Language": "ukl",
"Ukue": "uku",
"Ukuriguma": "ukg",
"Ukwa": "ukq",
"Ukwuani-Aboh-Ndoni": "ukw",
"Ulau-Suain": "svb",
"Ulch": "ulc",
"Uldeme": "udl",
"Ulithian": "uli",
"Ullatan": "ull",
"Ulumanda'": "ulm",
"Ulwa": "ulw",
"Uma": "ppk",
"Uma' Lasan": "xky",
"Uma' Lung": "ulu",
"Umatilla": "uma",
"Umbindhamu": "umd",
"Umbri": "xum",
"Umbu-Ungu": "ubu",
"Umbugarla": "umr",
"Umbundu": "umb",
"Umbuygamu": "umg",
"Umeda": "upi",
"Umiida": "xud",
"Umon": "umm",
"Umotína": "umo",
"Umpila": "ump",
"Una": "mtg",
"Unami": "unm",
"Unde Kaili": "unz",
"Uneapa": "bbn",
"Uneme": "une",
"Unggaranggu": "xun",
"Unggumi": "xgu",
"Unserdeutsch": "uln",
"Unua": "onu",
"Unubahe": "unu",
"Uokha": "uok",
"Upper Chehalis": "cjh",
"Upper Grand Valley Dani": "dna",
"Upper Kuskokwim": "kuu",
"Upper Necaxa Totonac": "tku",
"Upper Ta'oih": "tth",
"Upper Tanana": "tau",
"Upper Taromi": "tov",
"Upper Umpqua": "xup",
"Ura (Papua New Guinea)": "uro",
"Ura (Vanuatu)": "uur",
"Uradhi": "urf",
"Urak Lawoi'": "urk",
"Urali": "url",
"Uralik Purba": "urj-pro",
"Urapmin": "urm",
"Urarina": "ura",
"Urartian": "xur",
"Urat": "urt",
"Urdu": "ur",
"Urhobo": "urh",
"Uri": "uvh",
"Urigina": "urg",
"Urim": "uri",
"Urimo": "urx",
"Urningangg": "urc",
"Uru": "ure",
"Uru-Eu-Wau-Wau": "urz",
"Uru-Pa-In": "urp",
"Uruangnirin": "urn",
"Uruava": "urv",
"Urubú-Kaapor": "urb",
"Uruguayan Sign Language": "ugy",
"Urum": "uum",
"Urumi": "uru",
"Usaghade": "usk",
"Usan": "wnu",
"Usarufa": "usa",
"Ushojo": "ush",
"Usila Chinantec": "cuc",
"Uspanteco": "usp",
"Usui": "usi",
"Utarmbung": "omo",
"Ute": "ute",
"Utik Purba": "nai-utn-pro",
"Uto-Aztek Purba": "azc-pro",
"Utu": "utu",
"Uvbie": "evh",
"Uvea Barat": "uve",
"Uwinymil": "aus-uwi",
"Uya": "usu",
"Uyajitaya": "duk",
"Uyghur": "ug",
"Uyghur Kuno": "oui",
"Uzbek": "uz",
"Uzekwe": "eze",
"Vaagri Booli": "vaa",
"Vaghri": "vgr",
"Vaghua": "tva",
"Vagla": "vag",
"Vai": "vai",
"Vaie": "bny",
"Vaiphei": "vap",
"Vale": "vae",
"Valencian Sign Language": "vsv",
"Valle Nacional Chinantec": "cvn",
"Valley Maidu": "vmv",
"Valman": "van",
"Valpei": "vlp",
"Valyria Tinggi": "art-vlh",
"Vamale": "mkt",
"Vame": "mlr",
"Vandalic": "xvn",
"Vangunu": "mpr",
"Vanimo": "vam",
"Vanji": "ira-wnj",
"Vanuma": "vau",
"Vao": "vao",
"Varhadi": "vah",
"Varisi": "vrs",
"Varli": "vav",
"Vasavi": "vas",
"Vayu": "vay",
"Veddah": "ved",
"Vehes": "val",
"Vemgo-Mabas": "vem",
"Venda": "ve",
"Venetic": "xve",
"Veneto": "vec",
"Venezuelan Sign Language": "vsl",
"Ventureño": "veo",
"Veps": "vep",
"Vera'a": "vra",
"Vestinian": "xvs",
"Vidunda": "vid",
"Viemo": "vig",
"Vietik Purba": "mkh-vie-pro",
"Vietnam": "vi",
"Vietnam Pertengahan": "mkh-mvi",
"Vilamovian": "wym",
"Vilela": "vil",
"Vili": "vif",
"Vishavan": "vis",
"Viti": "vit",
"Vitou": "vto",
"Volapük": "vo",
"Volscian": "xvo",
"Volta-Congo Purba": "nic-vco-pro",
"Volta-Niger Purba": "alv-von-pro",
"Vono": "kch",
"Voro": "vor",
"Vot": "vot",
"Vumbu": "vum",
"Vunapu": "vnp",
"Vunjo": "vun",
"Vurës": "msn",
"Vute": "vut",
"Võro": "vro",
"Wa": "wbm",
"Wa'ema": "wag",
"Waama": "wwa",
"Waamwang": "wmn",
"Wab": "wab",
"Wabo": "wbb",
"Waboda": "kmx",
"Waci Gbe": "wci",
"Wadaginam": "wdg",
"Waddar": "wbq",
"Wadi Wadi": "xwd",
"Wadiyara Koli": "kxp",
"Wadjabangayi": "wdy",
"Wadjiginy": "wdj",
"Wadjigu": "wdu",
"Wae Rana": "wrx",
"Waffa": "waj",
"Wagawaga": "wgb",
"Wagaya": "wga",
"Wagdi": "wbr",
"Wageman": "waq",
"Wagi": "fad",
"Wahgi": "wgi",
"Wahgi Utara": "whg",
"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",
"Wales": "cy",
"Wales Kuno": "owl",
"Wales Pertengahan": "wlm",
"Wali (Ghana)": "wlx",
"Wali (Sudan)": "wll",
"Waling": "wly",
"Walio": "wla",
"Walla Walla": "waa",
"Wallis": "wls",
"Walloon": "wa",
"Walmajarri": "wmt",
"Wam": "wmo",
"Wamas": "wmc",
"Wambaya": "wmb",
"Wambon": "wms",
"Wambule": "wme",
"Wamey": "cou",
"Wamin": "wmi",
"Wampar": "lbq",
"Wampur": "waz",
"Wan": "wan",
"Wanambre": "wnb",
"Wanap": "wnp",
"Wancho": "nnp",
"Wanda": "wbh",
"Wandala": "mfi",
"Wandamen": "wad",
"Wandarang": "wnd",
"Wandji": "wdd",
"Waneci": "wne",
"Wanga": "lwg",
"Wanggamala": "wnm",
"Wangganguru": "wgg",
"Wanggom": "wng",
"Wangkayutyuru": "wky",
"Wangkumara": "xwk",
"Wanham": "sai-wnm",
"Wanji": "wbi",
"Wanman": "wbt",
"Wannu": "jub",
"Wano": "wno",
"Wantoat": "wnc",
"Wanukaka": "wnk",
"Wanyi": "wny",
"Wané": "hwa",
"Wapan": "juk",
"Wapishana": "wap",
"Wappo": "wao",
"War-Jaintia": "aml",
"Wara": "wbf",
"Warao": "wba",
"Warapu": "wra",
"Waray Sorsogon": "srv",
"Waray-Waray": "war",
"Wardaman": "wrr",
"Wardandi": "wxw",
"Warekena Kuno": "awd-war",
"Warembori": "wsa",
"Wari'": "pav",
"Waris": "wrs",
"Waritai": "wbe",
"Wariyangga": "wri",
"Warji": "wji",
"Warkay-Bipim": "bgv",
"Warlmanpa": "wrl",
"Warlpiri": "wbp",
"Warluwara": "wrb",
"Warnang": "wrn",
"Waropen": "wrp",
"Warray": "wrz",
"Warrgamay": "wgy",
"Warrwa": "wwr",
"Waru": "wru",
"Warumungu": "wrm",
"Waruna": "wrv",
"Warungu": "wrg",
"Warwar Feni": "hrw",
"Wasa": "wss",
"Wasco-Wishram": "wac",
"Washo": "was",
"Waskia": "wsk",
"Wastek": "hus",
"Wasu": "wsu",
"Watakataui": "wtk",
"Watam": "wax",
"Wathaurong": "wth",
"Watiwa": "wtf",
"Watubela": "wah",
"Watut Selatan": "mcy",
"Watut Tengah": "mpl",
"Watut Utara": "una",
"Waube": "kop",
"Wauja": "wau",
"Wauyai": "wuy",
"Wawa": "www",
"Wawonii": "wow",
"Waxianghua": "wxa",
"Wayampi": "oym",
"Wayana": "way",
"Wayanad Chetti": "ctt",
"Wayoró": "wyr",
"Wayumara": "sai-way",
"Wedau": "wed",
"Weh": "weh",
"Welaung": "weu",
"Weliki": "klh",
"Wemale": "weo",
"Wemba-Wemba": "xww",
"Weme Gbe": "wem",
"Wendat": "wdt",
"Weri": "wer",
"Wersing": "kvw",
"Western Juxtlahuaca Mixtec": "jmx",
"Wewaw": "wea",
"Weyewa": "wew",
"Whitesands": "tnp",
"Wiarumus": "tua",
"Wichita": "wic",
"Wichí Lhamtés Güisnay": "mzh",
"Wichí Lhamtés Nocten": "mtp",
"Wichí Lhamtés Vejoz": "wlv",
"Wik-Epa": "wie",
"Wik-Iiyanh": "wij",
"Wik-Keyangan": "wif",
"Wik-Me'anha": "wih",
"Wik-Mungkan": "wim",
"Wik-Ngathana": "wig",
"Wikalkan": "wik",
"Wikngenchera": "wua",
"Wilawila": "wil",
"Winnebago": "win",
"Wintu": "wnw",
"Winyé": "kst",
"Wiradhuri": "wrh",
"Wiraféd": "wir",
"Wirangu": "wgu",
"Wiru": "wiu",
"Wirö": "wpc",
"Witotoan Purba": "sai-wit-pro",
"Wiwa": "mbp",
"Wiyot": "wiy",
"Woccon": "xwc",
"Wogamusin": "wog",
"Wogeo": "woc",
"Woi": "wbw",
"Woiwurrung": "wyi",
"Wojenaka": "jod",
"Wolane": "wle",
"Wolani": "wod",
"Wolaytta": "wal",
"Woleai": "woe",
"Wolio": "wlo",
"Wolof": "wo",
"Womo": "wmx",
"Wong-gie": "aus-won",
"Wongo": "won",
"Woods Cree": "cwd",
"Woria": "wor",
"Worimi": "kda",
"Worodougou": "jud",
"Worora": "wro",
"Wotapuri-Katarqalai": "wsv",
"Wotu": "wtw",
"Woun Meu": "noa",
"Wu": "wuu",
"Wudu": "wud",
"Wuhuan": "mis-wuh",
"Wulguru": "aus-wul",
"Wuliwuli": "wlu",
"Wulna": "wux",
"Wumboko": "bqm",
"Wumbvu": "wum",
"Wumeng Nasu": "ywu",
"Wunai Bunu": "bwn",
"Wunambal": "wub",
"Wurrugu": "wur",
"Wusa Nasu": "yig",
"Wushi": "bse",
"Wusi": "wsi",
"Wutung": "wut",
"Wutunhua": "wuh",
"Wuvulu-Aua": "wuv",
"Wyandot": "wya",
"Wára": "tci",
"Wãpha": "juw",
"Wè Barat": "wec",
"Wè Selatan": "gxx",
"Wè Utara": "wob",
"Xakriabá": "xkr",
"Xamtanga": "xan",
"Xanaguía Zapotec": "ztg",
"Xavante": "xav",
"Xerénte": "xer",
"Xetá": "xet",
"Xhosa": "xh",
"Xianbei": "mis-xbi",
"Xiang": "hsn",
"Xibe": "sjo",
"Xicotepec de Juárez Totonac": "too",
"Xinca": "xin",
"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âcùù": "ane",
"Xârâgurè": "axx",
"Yaa": "iyx",
"Yaaku": "muu",
"Yabarana": "yar",
"Yabaâna": "ybn",
"Yaben": "ybm",
"Yabong": "ybo",
"Yabula Yabula": "yxy",
"Yace": "ekr",
"Yaeyama": "rys",
"Yafi": "wfg",
"Yagara": "yxg",
"Yagaria": "ygr",
"Yagnobi": "yai",
"Yagomi": "ygm",
"Yagua": "yad",
"Yagwoia": "ygw",
"Yahadian": "ner",
"Yahang": "rhp",
"Yahuna": "ynu",
"Yaka": "yaf",
"Yakaikeke": "ykk",
"Yakan": "yka",
"Yakima": "yak",
"Yakkha": "ybh",
"Yakoma": "yky",
"Yakut": "sah",
"Yala": "yba",
"Yalahatan": "jal",
"Yalakalore": "xyl",
"Yalarnnga": "ylr",
"Yale": "nce",
"Yaleba": "ylb",
"Yali Ninia": "nlk",
"Yalunka": "yal",
"Yalálag Zapotec": "zpu",
"Yamap": "ymp",
"Yamba": "yam",
"Yambes": "ymb",
"Yambeta": "yat",
"Yamdena": "jmd",
"Yameo": "yme",
"Yami": "tao",
"Yaminahua": "yaa",
"Yamongeri": "ymg",
"Yamphu": "ybi",
"Yan-nhangu": "jay",
"Yana": "ynn",
"Yanda": "yda",
"Yanda Dogon": "dym",
"Yandjibara": "xyb",
"Yandruwandha": "ynd",
"Yanesha'": "ame",
"Yangben": "yav",
"Yangkaal": "aus-ynk",
"Yangkam": "bsx",
"Yangman": "jng",
"Yango": "yng",
"Yangulam": "ynl",
"Yangum Dey": "yde",
"Yangum Gel": "ygl",
"Yankunytjatjara": "kdd",
"Yanomámi": "wca",
"Yansi": "yns",
"Yanyuwa": "jao",
"Yao": "yao",
"Yao (Amerika Selatan)": "sai-yao",
"Yaouré": "yre",
"Yapese": "yap",
"Yapunda": "yev",
"Yaqay": "jaq",
"Yaqui": "yaq",
"Yarawata": "yrw",
"Yareba": "yrb",
"Yarli": "yxl",
"Yarluyandi": "yry",
"Yaroamë": "yro",
"Yarumá": "sai-yar",
"Yarí": "yri",
"Yasa": "yko",
"Yatay": "yty",
"Yatee Zapotec": "zty",
"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",
"Yemba": "ybb",
"Yemsa": "jnj",
"Yendang": "yen",
"Yeni": "yei",
"Yeniche": "yec",
"Yenisei Purba": "qfa-yen-pro",
"Yerakai": "yra",
"Yerong": "yrn",
"Yerukula": "yeu",
"Yeskwa": "yes",
"Yessan-Mayo": "yss",
"Yetfa": "yet",
"Yevanic": "yej",
"Yeyi": "yey",
"Yiddish": "yi",
"Yidgha": "ydg",
"Yidiny": "yii",
"Yil": "yll",
"Yimas": "yee",
"Yimchungru Naga": "yim",
"Yinchia": "yin",
"Yindjibarndi": "yij",
"Yindjilandji": "yil",
"Yine": "pib",
"Yinggarda": "yia",
"Yinhawangka": "ywg",
"Yiningayi": "ygi",
"Yinwum": "yxm",
"Yir-Yoront": "yiy",
"Yirandali": "ljw",
"Yis": "yis",
"Yitha Yitha": "xth",
"Yoba": "yob",
"Yogad": "yog",
"Yoidik": "ydk",
"Yoke": "yki",
"Yokuts Buena Vista": "yok-bvy",
"Yokuts Delta": "yok-dly",
"Yokuts Gashowu": "yok-gsy",
"Yokuts Lembah Selatan": "yok-svy",
"Yokuts Lembah Utara": "yok-nvy",
"Yokuts Palewyami": "yok-ply",
"Yokuts Sungai Kings": "yok-kry",
"Yokuts Tule-Kaweah": "yok-tky",
"Yola": "yol",
"Yolmo": "scp",
"Yolngu Sign Language": "ygs",
"Yom": "pil",
"Yombe": "yom",
"Yonaguni": "yoi",
"Yong": "yno",
"Yongkom": "yon",
"Yopno": "yut",
"Yora": "mts",
"Yoron": "yox",
"Yorta Yorta": "xyy",
"Yoruba": "yo",
"Yoruba Purba": "alv-yor-pro",
"Yoruboid Purba": "alv-yrd-pro",
"Youle Jino": "jiu",
"Younuo Bunu": "buh",
"Yout Wam": "ytw",
"Yoy": "yoy",
"Yuanga": "nua",
"Yuchi": "yuc",
"Yucuna": "ycn",
"Yug": "yug",
"Yugambal": "yub",
"Yugoslavian Sign Language": "ysl",
"Yugul": "ygu",
"Yugur Barat": "ybe",
"Yugur Timur": "yuy",
"Yuhup": "yab",
"Yukaghir Purba": "qfa-yuk-pro",
"Yukaghir Selatan": "yux",
"Yukaghir Utara": "ykg",
"Yuki": "yuk",
"Yukpa": "yup",
"Yukuben": "ybl",
"Yulu": "yul",
"Yuma": "yum",
"Yumana": "awd-yum",
"Yunani Calabria": "grk-cal",
"Yunani Cappadocia": "cpg",
"Yunani Italiot": "grk-ita",
"Yunani Mariupol": "grk-mar",
"Yunani Pontus": "pnt",
"Yunani Romani": "rge",
"Yup'ik": "esu",
"Yupik Purba": "ypk-pro",
"Yupik Siberia Tengah": "ess",
"Yupiltepeque": "nai-yup",
"Yupua": "sai-yup",
"Yuqui": "yuq",
"Yuracare": "yuz",
"Yuri": "sai-yri",
"Yurok": "yur",
"Yuru": "ljx",
"Yurumanguí": "sai-yur",
"Yurutí": "yui",
"Yuwana": "yau",
"Yuyu": "yxu",
"Yámana": "yag",
"Zaachila Zapotec": "ztx",
"Zabana": "kji",
"Zacatepec Chatino": "ctz",
"Zaghawa": "zag",
"Zaiwa": "atb",
"Zakhring": "zkr",
"Zambian Sign Language": "zsl",
"Zan Gula": "zna",
"Zanaki": "zak",
"Zande": "zne",
"Zangskar": "zau",
"Zangwal": "zah",
"Zaniza Zapotec": "zpw",
"Zapotec": "zap",
"Zapotec Aloápam": "zaq",
"Zapotec Ayoquesco": "zaf",
"Zapotec Cajonos": "zad",
"Zapotec Coatecas Altas": "zca",
"Zapotec Mitla": "zaw",
"Zapotec Ocotlán": "zac",
"Zapotec Ozolotepec": "zao",
"Zapotec Purba": "xzp",
"Zapotec Rincón": "zar",
"Zapotec San Juan Guelavía": "zab",
"Zapotec Santo Domingo Albarradas": "zas",
"Zapotec Segenting": "zai",
"Zapotec Sierra de Juárez": "zaa",
"Zapotec Tabaa": "zat",
"Zapotec Xadani": "zax",
"Zapotec Yareni": "zae",
"Zapotec Yatzachi": "zav",
"Zapotecan Purba": "omq-zap-pro",
"Zapoteco Mahuatlán Tengah": "zam",
"Zaramo": "zaj",
"Zari": "zaz",
"Zarma": "dje",
"Zauzou": "zal",
"Zay": "zwa",
"Zayse-Zergulla": "zay",
"Zaza-Gorani Purba": "ira-zgr-pro",
"Zazaki": "zza",
"Zazao": "jaj",
"Zbu": "sit-zbu",
"Zeeland": "zea",
"Zeem": "zua",
"Zemba": "dhm",
"Zemgalia": "xzm",
"Zenag": "zeg",
"Zenaga": "zen",
"Zenzontepec Chatino": "czn",
"Zhaba": "zhb",
"Zhang-Zhung": "xzh",
"Zhire": "zhi",
"Zhoa": "zhw",
"Zhuang": "za",
"Zhár": "jjr",
"Zia": "zia",
"Zialo": "zil",
"Zigula": "ziw",
"Zimakani": "zik",
"Zimba": "zmb",
"Zimbabwe Sign Language": "zib",
"Zinza": "zin",
"Zire": "sih",
"Zirenkel": "zrn",
"Ziriya": "zir",
"Zizilivakan": "ziz",
"Zo'é": "pto",
"Zokhuo": "yzk",
"Zoogocho Zapotec": "zpq",
"Zou": "zom",
"Zulu": "zu",
"Zumaya": "zuy",
"Zumbun": "jmb",
"Zuni": "zun",
"Zuojiang Zhuang": "zzj",
"Zuwara": "ber-zuw",
"Zyphe": "zyp",
"Záparo": "zro",
"tidak ditentukan": "und",
"Àhàn": "ahn",
"Áncá": "acb",
"Äiwoo": "nfl",
"Älvdalen": "ovd",
"Äynu": "aib",
"Ömie": "aom",
"Önge": "oon",
"ǀXam": "xam",
"ǁAni": "hnh",
"ǁXegwi": "xeg",
"ǂHoan": "huc",
"ǃKung": "khi-kun",
"ǃXóõ": "nmn"
}
58o1bcao7uv0vsh86p04pu1haazgggo
Modul:families/canonical names
828
34583
373517
273102
2026-09-11T03:04:20Z
SNN95
2113
kemaskini
373517
Scribunto
text/plain
return {
["Abenaki-Penobscot"] = "alg-abp",
["Abkhaz-Abaza"] = "cau-abz",
["Adamawa"] = "alv-ada",
["Kepulauan Admiralti"] = "poz-aay",
["Afroasiatik"] = "afa",
["Aian"] = "paa-aia",
["Ainu"] = "qfa-ain",
["Aisian"] = "ngf-ais",
["Aizi"] = "kro-aiz",
["Alacaluf"] = "aqa",
["Albania"] = "sqj",
["Algik"] = "aql",
["Algonquian"] = "alg",
["Almora"] = "sit-alm",
["Alor-Pantar"] = "paa-alp",
["Alumik"] = "nic-alu",
["Bahasa-bahasa Isyarat Amerika"] = "sgn-asl",
["Amto-Musan"] = "paa-amu",
["Anatolia"] = "ine-ana",
["Andi"] = "cau-and",
["Angal-Kewa"] = "ngf-ank",
["Angami-Pochuri"] = "tbq-anp",
["Angan"] = "ngf-ang",
["Anglik"] = "gmw-ang",
["Anglo-Frisia"] = "gmw-afr",
["Anim"] = "paa-ani",
["Ankave-Tainae-Akoye"] = "ngf-ata",
["Ao"] = "njo",
["Apache"] = "apa",
["Arab"] = "sem-arb",
["Arafundi"] = "paa-arf",
["Aram"] = "sem-ara",
["Arandik"] = "aus-rnd",
["Arapaho"] = "alg-ara",
["Arapesh"] = "paa-ara",
["Arau"] = "auf",
["Araucania"] = "sai-ara",
["Arawak"] = "awd",
["Arinik"] = "qfa-yrn",
["Armenia"] = "hyx",
["Arnhem"] = "aus-arn",
["Aroid"] = "omv-aro",
["Asli"] = "mkh-asl",
["Asmat"] = "ngf-asm",
["Asmat-Kamoro"] = "ngf-ask",
["Asturleones"] = "roa-asl",
["Ataitan"] = "paa-ata",
["Atayalik"] = "map-ata",
["Athabaskan"] = "ath",
["Atlantik-Congo"] = "alv",
["Austroasiatik"] = "aav",
["Austronesia"] = "map",
["Avar-Andi"] = "cau-ava",
["Awyu"] = "ngf-awy",
["Awyu-Dumut"] = "ngf-awd",
["Axioid"] = "tbq-axi",
["Ayere-Ahan"] = "alv-aah",
["Aymara"] = "sai-aym",
["Bafia"] = "bnt-baf",
["Bafo-Bonkeng"] = "bnt-bbo",
["Baga"] = "alv-bag",
["Bagirmi"] = "csu-bgr",
["Bahnar"] = "mkh-ban",
["Bai"] = "sit-bai",
["Baining"] = "paa-bai",
["Bak"] = "alv-bak",
["Baka"] = "nic-nkb",
["Bali-Sasak-Sumbawa"] = "poz-bss",
["Baltik"] = "bat",
["Balto-Slav"] = "ine-bsl",
["Bambukik"] = "alv-bam",
["Bamileke"] = "bai",
["Banda"] = "bad",
["Bangi-Moi"] = "bnt-bmo",
["Bangi-Ntomba"] = "bnt-bnm",
["Bangi-Tetela"] = "bnt-bte",
["Bantoid"] = "nic-bod",
["Bantoid-Cross"] = "nic-bcr",
["Bantu"] = "bnt",
["Banyum"] = "alv-bny",
["Barbacoa"] = "sai-bar",
["Bari"] = "sdv-bri",
["Baruya-Simbari"] = "ngf-bsi",
["Basa"] = "nic-bas",
["Basaa"] = "bnt-bsa",
["Batak"] = "btk",
["Bati-Angba"] = "bnt-bta",
["Bayono-Awbono"] = "paa-baa",
["Be"] = "qfa-onb",
["Be-Jizhao"] = "qfa-bej",
["Be-Tai"] = "qfa-bet",
["Beboid"] = "nic-beb",
["Becking-Dawi"] = "ngf-bda",
["Bekwilik"] = "bnt-bek",
["Bena-Kinga"] = "bnt-bki",
["Bendi"] = "nic-ben",
["Benggali-Assam"] = "inc-bas",
["Benue-Congo"] = "nic-bco",
["Berber"] = "ber",
["Beromik"] = "nic-beo",
["Betaf-Vitou"] = "paa-bvi",
["Beti"] = "bnt-btb",
["Bewani"] = "paa-bew",
["Bhil"] = "inc-bhi",
["Bi-Ka"] = "tbq-bka",
["Bihari"] = "inc-bih",
["Bikwin-Jen"] = "alv-bwj",
["Binandere"] = "ngf-bin",
["Birri-Kresh"] = "csu-bkr",
["Bisa-Busa"] = "dmn-bbu",
["Bisoid"] = "tbq-bis",
["Boan"] = "bnt-boa",
["Boane"] = "ngf-boa",
["Boazi"] = "paa-boa",
["Bodish"] = "sit-bdi",
["Bodo-Garo"] = "tbq-bdg",
["Boma-Dzing"] = "bnt-bdz",
["Bongo-Bagirmi"] = "csu-bba",
["Bongo-Baka"] = "csu-bbk",
["Bora"] = "sai-bor",
["Sempadan"] = "paa-bor",
["Bosavi"] = "ngf-bos",
["Bosngun-Awar"] = "paa-baw",
["Botatwe"] = "bnt-bot",
["Brythonik"] = "cel-bry",
["Bua"] = "alv-bua",
["Buja-Ngombe"] = "bnt-bun",
["Sungai Bulaka"] = "paa-bul",
["Buli-Koma"] = "nic-buk",
["Bungku-Tolaki"] = "poz-btk",
["Bunuba"] = "aus-bub",
["Burma"] = "tbq-brm",
["Burmo-Qiangik"] = "tbq-buq",
["Bushoong"] = "bnt-bsh",
["Buyang"] = "qfa-buy",
["Bwa"] = "nic-bwa",
["Bété"] = "kro-bet",
["Caddoan"] = "cdd",
["Cahuapana"] = "sai-cah",
["Cai-Long"] = "sit-cln",
["Kanaan"] = "sem-can",
["Cangin"] = "alv-cng",
["Carib"] = "sai-car",
["Caspian"] = "ira-csp",
["Castilia"] = "roa-cas",
["Catacao"] = "sai-ctc",
["Catawba"] = "nai-cat",
["Celebik"] = "poz-clb",
["Celtik"] = "cel",
["Banda Tengah"] = "bad-cnt",
["Chadik Tengah"] = "cdc-cbm",
["Cushitik Tengah"] = "cus-cen",
["Dani Tengah"] = "ngf-cda",
["Delta Tengah"] = "nic-cde",
["Dravidia Tengah"] = "dra-cen",
["Andaman Besar Tengah"] = "qfa-adc",
["Indo-Arya Tengah"] = "inc-cen",
["Iran Tengah"] = "ira-cen",
["Jê Tengah"] = "sai-cje",
["Kiranti Tengah"] = "sit-kic",
["Dataran Tasik Tengah"] = "paa-clp",
["Maluku Tengah"] = "poz-cma",
["Mande Tengah"] = "dmn-mdc",
["Mongolik Tengah"] = "xgn-cen",
["Naga Tengah"] = "sit-aao",
["Neo-Aram Tengah"] = "sem-cna",
["New South Wales Tengah"] = "aus-cww",
["Pasifik Tengah"] = "poz-pcc",
["Pahari Tengah"] = "inc-pac",
["Plateau Tengah"] = "nic-plc",
["Lingkaran Tengah"] = "nic-rnc",
["Semitik Tengah"] = "sem-cen",
["Sudan Tengah"] = "csu",
["Tai Tengah"] = "tai-cen",
["Tano Tengah"] = "alv-ctn",
["Teke Tengah"] = "bnt-tkc",
["Tivoid Tengah"] = "nic-tvc",
["Vanuatu Tengah"] = "poz-vnc",
["Melayu-Polinesia Tengah-Timur"] = "poz-cet",
["Oceania Tengah-Timur"] = "poz-occ",
["Cerrado"] = "sai-cer",
["Chadik"] = "cdc",
["Chaga"] = "bnt-chg",
["Chaga-Taita"] = "bnt-cht",
["Chamik"] = "cmc",
["Chapacura"] = "sai-cpc",
["Charrua"] = "sai-crn",
["Chatino"] = "omq-cha",
["Chibchan"] = "cba",
["Chimakuan"] = "chi",
["Chimbu-Wahgi"] = "ngf-chw",
["Chinantec"] = "omq-chi",
["Chinook"] = "nai-ckn",
["Chitrali"] = "inc-chi",
["Choco"] = "sai-chc",
["Chokwe-Luchazi"] = "bnt-clu",
["Chon"] = "sai-cho",
["Tai Chongzuo"] = "tai-cho",
["Chug-Lish"] = "sit-khc",
["Chukotka"] = "qfa-ckn",
["Chukotko-Kamchatka"] = "qfa-cka",
["Chumash"] = "nai-chu",
["Circassia"] = "cau-cir",
["Min Pesisir"] = "zhx-com",
["Turkik Umum"] = "trk-cmn",
["Comoros"] = "bnt-com",
["Coos"] = "nai-coo",
["Cross River"] = "nic-cri",
["Cuicatec"] = "omq-cui",
["Cupan"] = "azc-cup",
["Cushitik"] = "cus",
["Dagan"] = "ngf-dag",
["Dagbani"] = "nic-dag",
["Daju"] = "sdv-daj",
["Dakoid"] = "nic-dak",
["Dakota"] = "sio-dkt",
["Dallman"] = "ngf-dal",
["Romawi Dalmatia"] = "roa-dal",
["Daly"] = "aus-dal",
["Dangari"] = "inc-dng",
["Dani"] = "ngf-dan",
["Dardik"] = "inc-dar",
["Dargwa"] = "cau-drg",
["Edoid Delta"] = "alv-dlt",
["Dene-Yenisei"] = "qfa-dny",
["Dhegiha"] = "sio-dhe",
["Dhimalish"] = "sit-dhi",
["Dida"] = "kro-did",
["Dinka-Nuer"] = "sdv-dnu",
["Dizoid"] = "omv-diz",
["Dogon"] = "qfa-dgn",
["Doso-Turumsa"] = "paa-dtu",
["Phula Hilir"] = "tbq-drp",
["Dravidia"] = "dra",
["Dumut"] = "ngf-dum",
["Nahuatl Durango"] = "azc-dur",
["Duru"] = "alv-dur",
["Dyirbalik"] = "aus-dyb",
["Baltik Timur"] = "bat-eas",
["Barito Timur"] = "poz-bre",
["Kepala Burung Timur"] = "paa-ebh",
["Bodish Timur"] = "sit-ebo",
["Chadik Timur"] = "cdc-est",
["Cushitik Timur"] = "cus-eas",
["Teluk Geelvink Timur"] = "paa-egb",
["Germanik Timur"] = "gme",
["Kainji Timur"] = "nic-kne",
["Keram Timur"] = "paa-eke",
["Kutubuan Timur"] = "ngf-eku",
["Dataran Tasik Timur"] = "paa-elp",
["Manding Timur"] = "dmn-emn",
["Ometo Timur"] = "omv-eom",
["Plateau Timur"] = "nic-ple",
["Scandinavia Timur"] = "gmq-eas",
["Semitik Timur"] = "sem-eas",
["Slavik Timur"] = "zle",
["Sogeram Timur"] = "ngf-eso",
["Strickland Timur"] = "ngf-est",
["Timor Timur"] = "paa-eti",
["Tsezi Timur"] = "cau-ets",
["rGyalrongik Timur"] = "sit-egy",
["Cross River Atas Timur-Barat"] = "nic-uce",
["Algonquian Timur"] = "alg-eas",
["Aram Timur"] = "sem-are",
["Beboid Timur"] = "nic-bbe",
["Sudan Tengah Timur"] = "csu-ecs",
["Dardik Timur"] = "inc-dre",
["Eleman Timur"] = "paa-eel",
["Gbaya Timur"] = "gba-eas",
["Grassfields Timur"] = "nic-gre",
["Gurunsi Timur"] = "nic-gne",
["Hindi Timur"] = "inc-hie",
["Huon Timur"] = "ngf-ehu",
["Indo-Arya Timur"] = "inc-eas",
["Jebel Timur"] = "sdv-eje",
["Kiranti Timur"] = "sit-kie",
["Kru Timur"] = "kro-ekr",
["Melayu-Polinesia Timur"] = "pqe",
["Mande Timur"] = "dmn-mde",
["Ngbaka Timur"] = "nic-nke",
["Nilotik Timur"] = "sdv-nie",
["Oti-Volta Timur"] = "nic-eov",
["Pahari Timur"] = "inc-pae",
["Pauwasi Timur"] = "paa-epw",
["Polinesia Timur"] = "poz-pep",
["Romawi Timur"] = "roa-eas",
["Samur Timur"] = "cau-esm",
["Sudan Timur"] = "sdv",
["Trans-Fly Timur"] = "paa-etf",
["Ede"] = "alv-ede",
["Edekiri"] = "alv-edk",
["Edo-Esan-Ora"] = "alv-eeo",
["Edoid"] = "alv-edo",
["Mesir"] = "egx",
["Ekoid"] = "nic-eko",
["Eleman"] = "paa-ele",
["Emilia-Romagna"] = "roa-emr",
["Enets"] = "syd-ene",
["Enga"] = "ngf-eng",
["Engik"] = "ngf-enc",
["Erap"] = "ngf-era",
["Ersuik"] = "sit-ers",
["Dogon Tubir"] = "nic-dge",
["Eskimo"] = "esx-esk",
["Eskimo-Aleut"] = "esx",
["Semitik Ethiopia"] = "sem-eth",
["Evapia"] = "ngf-eva",
["Ewenik"] = "tuw-ewe",
["Fali"] = "alv-fli",
["Dataran Tasik Barat Jauh"] = "paa-flp",
["Fas"] = "paa-fas",
["Finisterre"] = "ngf-fin",
["Finisterre-Huon"] = "ngf-fhu",
["Finnik"] = "urj-fin",
["Fore-Gimi"] = "ngf-fgi",
["Bahasa-bahasa Isyarat Perancis"] = "sgn-fsl",
["Frisia"] = "gmw-fri",
["Fula-Wolof"] = "alv-fwo",
["Fur"] = "ssa-fur",
["Furu"] = "nic-fru",
["Ga-Dangme"] = "alv-gda",
["Gaena-Korafe"] = "ngf-gko",
["Gahuku"] = "ngf-gah",
["Galela-Tobelo"] = "paa-gto",
["Galicia-Portugis"] = "roa-gap",
["Gallo-Italik"] = "roa-git",
["Gallo-Rhaetian"] = "roa-grh",
["Gallo-Romawi"] = "roa-gar",
["Garawa"] = "aus-gar",
["Gauwa"] = "ngf-gau",
["Gbanziri"] = "nic-nkg",
["Gbaya"] = "gba",
["Gbe"] = "alv-gbe",
["Gelao"] = "gio",
["Georgia-Zan"] = "ccs-gzn",
["Bahasa-bahasa Isyarat Jerman"] = "sgn-gsl",
["Germanik"] = "gem",
["Pergunungan Ghana-Togo"] = "alv-gtm",
["Gogodala-Suki"] = "ngf-gsu",
["Goidelik"] = "cel-gae",
["Gondi"] = "dra-gon",
["Gondi-Kui"] = "dra-gki",
["Gonga"] = "omv-gon",
["Goroka"] = "ngf-gor",
["Dani Lembah Besar"] = "ngf-gvd",
["Grassfields"] = "nic-grf",
["Andaman Besar"] = "qfa-adm",
["Bantu Tasik-Tasik Besar"] = "bnt-glb",
["Awyu Besar"] = "ngf-gaw",
["Binandere Raya"] = "ngf-gbi",
["Kwerba Besar"] = "paa-gkw",
["Magarik Besar"] = "sit-gma",
["Siangik Besar"] = "sit-gsi",
["Grebo"] = "kro-grb",
["Grebo wajar"] = "grb",
["Guahibo"] = "sai-guh",
["Guaicuru"] = "sai-guc",
["Guang"] = "alv-gng",
["Guarani"] = "gn",
["Guiana"] = "sai-gui",
["Gum"] = "ngf-gum",
["Gunwinyguan"] = "aus-gun",
["Gur"] = "nic-gur",
["Gurma"] = "nic-grm",
["Gurunsi"] = "nic-gns",
["Gusap-Mot"] = "ngf-gmo",
["Hagen"] = "ngf-hag",
["Halbik"] = "inc-hal",
["Halmahera-Cenderawasih"] = "poz-hce",
["Hanoid"] = "tbq-han",
["Hanseman"] = "ngf-han",
["Harákmbut"] = "sai-har",
["Harákmbut-Katukina"] = "sai-hkt",
["Haya-Jita"] = "bnt-haj",
["Heiban"] = "alv-hei",
["Hellenik"] = "grk",
["Heyo-Yahang"] = "paa-hya",
["Jerman Tinggi"] = "gmw-hgm",
["Cushitik Timur Tanah Tinggi"] = "cus-hec",
["Phula Tanah Tinggi"] = "tbq-hph",
["Nubia Bukit"] = "nub-hil",
["Hindustani"] = "inc-hnd",
["Hispano-Celtik"] = "cel-his",
["Hlai"] = "qfa-lic",
["Hmong-Mien"] = "hmx",
["Hmongik"] = "hmn",
["Hokan"] = "hok",
["Horpa"] = "ero",
["Hrusish"] = "sit-hrs",
["Huarpe"] = "sai-hrp",
["Nahuatl Huasteca"] = "azc-hua",
["Huon"] = "ngf-huo",
["Hurro-Urartia"] = "qfa-hur",
["Ibero-Romawi"] = "roa-ibe",
["Ibibio-Efik"] = "nic-ief",
["Idomoid"] = "alv-ido",
["Igboid"] = "alv-igb",
["Ijoid"] = "ijo",
["Indo-Arya"] = "inc",
["Indo-Eropah"] = "ine",
["Indo-Iran"] = "iir",
["Teluk Pedalaman"] = "paa-ing",
["Min Pedalaman"] = "zhx-inm",
["Sko Dalaman"] = "paa-isk",
["Celtik Kepulauan"] = "cel-ins",
["Indo-Arya Kepulauan"] = "inc-ins",
["Scandinavia Kepulauan"] = "gmq-ins",
["Inuit"] = "esx-inu",
["Iran"] = "ira",
["Anglo-Norman Ireland"] = "gmw-ian",
["Iroquois"] = "iro",
["Irula-Muduga"] = "dra-imd",
["Italik"] = "itc",
["Italo-Dalmatia"] = "roa-itd",
["Italo-Romawi"] = "roa-itr",
["Romawi Italo-Barat"] = "roa-iwr",
["Iwaidja"] = "aus-wdj",
["Iwam"] = "paa-iwa",
["Bahasa-bahasa Isyarat Jepun"] = "sgn-jsl",
["Jeponik"] = "jpx",
["Jarawa"] = "nic-jrw",
["Jarawan"] = "nic-jrn",
["Jarrak"] = "aus-jar",
["Jera"] = "nic-jer",
["Jicaque"] = "nai-jcq",
["Jimi"] = "ngf-jim",
["Jingphoik"] = "sit-jnp",
["Jino"] = "tbq-jin",
["Jirajara"] = "sai-jir",
["Jivaro"] = "sai-jiv",
["Jogo-Jeri"] = "dmn-jje",
["Jola"] = "alv-jol",
["Jola-Felupe"] = "alv-jfe",
["Jukunoid"] = "nic-jkn",
["Jurchenik"] = "tuw-jrc",
["Jê"] = "sai-jee",
["Bahasa-bahasa KRDS"] = "inc-krd",
["Ka-Togo"] = "alv-ktg",
["Kaba"] = "csu-kab",
["Kabwum"] = "ngf-kab",
["Kachin-Luik"] = "sit-jpl",
["Kadu"] = "qfa-kad",
["Kaili-Pamona"] = "poz-kal",
["Kainantu"] = "ngf-kai",
["Kainantu-Goroka"] = "ngf-kgo",
["Kainji"] = "nic-knj",
["Kako"] = "bnt-kak",
["Khoe Kalahari"] = "khi-kal",
["Kalam-Kobon"] = "ngf-kak",
["Kalam-Adelbert Selatan"] = "ngf-ksa",
["Kalamian"] = "phi-kal",
["Kalapuya"] = "nai-klp",
["Kalenjin"] = "sdv-kln",
["Kam-Sui"] = "qfa-kms",
["Kamano-Yagaria"] = "ngf-kya",
["Kambari"] = "nic-kam",
["Kamuku"] = "nic-kmk",
["Kamula-Elevala"] = "paa-kae",
["Kannadoid"] = "dra-kan",
["Kanum"] = "paa-kan",
["Kapau-Menya"] = "ngf-kme",
["Karaboro"] = "alv-krb",
["Karen"] = "kar",
["Karluk"] = "trk-kar",
["Karnik"] = "aus-kar",
["Kartvelia"] = "ccs",
["Kashmirik"] = "inc-kas",
["Katloid"] = "nic-ktl",
["Katuik"] = "mkh-kat",
["Katukina"] = "sai-ktk",
["Kaukombar"] = "ngf-kau",
["Kaure-Kosare"] = "paa-kko",
["Kauru"] = "nic-kau",
["Kavango"] = "bnt-kav",
["Bantu Kavango-Barat Daya"] = "bnt-ksb",
["Kayagarik"] = "paa-kay",
["Kazhuoish"] = "tbq-kzh",
["Kele"] = "bnt-kel",
["Kele-Tsogo"] = "bnt-kts",
["Keram"] = "paa-ker",
["Keres"] = "nai-ker",
["Ketik"] = "qfa-yke",
["Kewa-Huli"] = "ngf-khu",
["Kham"] = "sit-kha",
["Khanty"] = "kca",
["Khasian"] = "aav-khs",
["Khmer"] = "mkh-kmr",
["Khmuik"] = "mkh-khm",
["Kho-Bwa"] = "sit-khb",
["Khoe"] = "khi-kho",
["Khoe-Kwadi"] = "khi-kkw",
["Khoekhoe"] = "khi-khk",
["Kikuyu-Kamba"] = "bnt-kka",
["Kilombero"] = "bnt-kil",
["Kim"] = "alv-kim",
["Kimbundu"] = "bnt-kmb",
["Kinnaurik"] = "sit-kin",
["Kiowa-Tano"] = "nai-kta",
["Kipchak"] = "trk-kip",
["Kipchak-Bulgar"] = "trk-kbu",
["Kipchak-Cuman"] = "trk-kcu",
["Kipchak-Nogai"] = "trk-kno",
["Kiranti"] = "sit-kir",
["Kissi"] = "alv-kis",
["Kiwaian"] = "paa-kiw",
["Kodagu"] = "dra-kod",
["Kohistani"] = "inc-koh",
["Koiarian"] = "ngf-koi",
["Kokon"] = "ngf-kok",
["Kolami-Naiki"] = "dra-knk",
["Kolopom"] = "paa-kol",
["Koman"] = "ssa-kom",
["Kombio"] = "paa-kom",
["Kombio-Arapesh"] = "paa-koa",
["Komi"] = "kv",
["Komisenia"] = "ira-kms",
["Komo-Bira"] = "bnt-kbi",
["Komyandaret-Tsaukambo"] = "ngf-kts",
["Konda-Kui"] = "dra-kki",
["Kongo"] = "bnt-kng",
["Konyak-Chang"] = "sit-kch",
["Koraga"] = "dra-kor",
["Koreanik"] = "qfa-kor",
["Kosorong-Burum-Mindik"] = "ngf-kbm",
["Kottik"] = "qfa-yko",
["Kowan"] = "ngf-kow",
["Kpala"] = "nic-nkk",
["Kpwe"] = "bnt-kpw",
["Kra"] = "qfa-kra",
["Kra-Dai"] = "qfa-tak",
["Kru"] = "kro",
["Kube-Tobo"] = "ngf-kto",
["Kuikuro"] = "sai-kui",
["Kuki-Chin"] = "tbq-kuk",
["Kulango"] = "alv-kul",
["Kuliak"] = "ssa-klk",
["Kumil"] = "ngf-kum",
["Kunar"] = "inc-kun",
["Kunimaipan"] = "paa-kun",
["Kurd"] = "ku",
["Kurux-Malto"] = "dra-kml",
["Kwa"] = "alv-kwa",
["Kwalean"] = "paa-kwa",
["Kwerba wajar"] = "paa-kwe",
["Kwomtari"] = "paa-kwo",
["Kx'a"] = "khi-kxa",
["Kyirong-Kagate"] = "sit-kyk",
["Kyrgyz-Kipchak"] = "trk-kkp",
["Kâte-Mape"] = "ngf-kma",
["Ladakhi-Balti"] = "sit-lab",
["Lagun"] = "alv-lag",
["Lahoish"] = "tbq-lho",
["Lahuli-Spiti"] = "sit-las",
["Dataran Tasik"] = "paa-lpl",
["Lalo"] = "tbq-lal",
["Lampungik"] = "poz-lgx",
["Dayak Darat"] = "day",
["Latino-Faliscan"] = "itc-laf",
["Lawoish"] = "tbq-lwo",
["Lebonya"] = "bnt-leb",
["Lechitik"] = "zlw-lch",
["Left May"] = "paa-lma",
["Lega-Binja"] = "bnt-lgb",
["Leko"] = "alv-lek",
["Leko-Nimbari"] = "alv-lni",
["Lenape"] = "del",
["Lenca"] = "nai-len",
["Lendu"] = "csu-lnd",
["Lepki-Murkim"] = "paa-lmu",
["Lezghia"] = "cau-lzg",
["Limba"] = "alv-lim",
["Lipo-Lolopo"] = "tbq-llo",
["Lisoish"] = "tbq-lso",
["Logooli-Kuria"] = "bnt-lok",
["Lolo-Burma"] = "tbq-lob",
["Loloda-Laba"] = "paa-lla",
["Loloish"] = "tbq-lol",
["Lotuko-Maa"] = "sdv-lma",
["Franconia Rendah"] = "gmw-frk",
["Jerman Rendah"] = "gmw-lgm",
["Cross River Bawah"] = "nic-lcr",
["Ramu Bawah"] = "paa-lra",
["Sepik Bawah"] = "paa-lse",
["Ok Tanah Rendah"] = "ngf-lok",
["Luba"] = "bnt-lub",
["Luban"] = "bnt-lbn",
["Luish"] = "sit-luu",
["Lunda"] = "bnt-lun",
["Luo"] = "sdv-luo",
["Lurik"] = "ira-lur",
["Luwik"] = "ine-luw",
["Mabuso"] = "ngf-mab",
["Macro-Bai"] = "sit-mba",
["Macro-Chibchan"] = "qfa-mch",
["Macro-Jê"] = "sai-mje",
["Madang"] = "ngf-mad",
["Madiya"] = "dra-mdy",
["Maidu"] = "nai-mdu",
["Mailuan"] = "paa-mal",
["Maimai"] = "paa-mam",
["Mairasi"] = "paa-mai",
["Makaa"] = "bnt-mka",
["Makaa-Njem"] = "bnt-mnj",
["Makua"] = "bnt-mak",
["Malayalamoid"] = "dra-mal",
["Melayik"] = "poz-mly",
["Melayu-Chamik"] = "poz-mcm",
["Melayu-Polinesia"] = "poz",
["Melayu-Sumbawa"] = "poz-msa",
["Malto"] = "dra-mlo",
["Mambiloid"] = "nic-mmb",
["Mamfe"] = "nic-mam",
["Mandarinik"] = "zhx-man",
["Mande"] = "dmn",
["Mandi-Muniwara"] = "paa-mmu",
["Manding"] = "dmn-man",
["Manding-Jogo"] = "dmn-mjo",
["Manding-Mokole"] = "dmn-mmo",
["Manding-Vai"] = "dmn-mva",
["Manenguba"] = "bnt-mne",
["Mangbetu"] = "csu-maa",
["Mangbutu-Lese"] = "csu-mle",
["Mangik"] = "mkh-mng",
["Maninka"] = "dmn-mnk",
["Mano-Dan"] = "dmn-mda",
["Manobo"] = "mno",
["Mansi"] = "mns",
["Manubaran"] = "paa-man",
["Mao"] = "omv-mao",
["Mapoyo"] = "sai-map",
["Mari"] = "chm",
["Marienberg"] = "paa-mar",
["Marind-Boazi-Yaqay"] = "paa-mby",
["Marindik"] = "paa-mri",
["Maringik"] = "sit-mar",
["Masa"] = "cdc-mas",
["Masaba-Luhya"] = "bnt-msl",
["Mascoia"] = "sai-mas",
["Mataco-Guaicuru"] = "sai-mgc",
["Mataco"] = "sai-mtc",
["Maya"] = "myn",
["Maybratik"] = "paa-may",
["Mazanderani-Shahmirzadi"] = "ira-msh",
["Mazatec"] = "omq-maz",
["Mba"] = "nic-mbc",
["Mbaham-Iha"] = "paa-mbi",
["Mbaka"] = "nic-nkm",
["Mbam"] = "nic-mba",
["Mbete"] = "bnt-mbt",
["Mbeya"] = "bnt-mby",
["Mbinga"] = "bnt-mbi",
["Mbole-Enya"] = "bnt-mbe",
["Mboshi"] = "bnt-mbo",
["Mboshi-Buja"] = "bnt-mbb",
["Mbugwe-Rangi"] = "bnt-mra",
["Mbum"] = "alv-mbm",
["Mbum-Day"] = "alv-mbd",
["Median"] = "xme",
["Medo-Parthia"] = "ira-mpr",
["Mek"] = "ngf-mek",
["Mel"] = "alv-mel",
["Mey-Sartang"] = "sit-khm",
["Mian-Suganga"] = "ngf-msu",
["Mikronesia"] = "poz-mic",
["Indo-Arya Pertengahan"] = "inc-mid",
["Iran Pertengahan"] = "ira-mid",
["Midzu"] = "sit-mdz",
["Mienik"] = "hmx-mie",
["Mijikenda"] = "bnt-mij",
["Min"] = "zhx-min",
["Mindjim"] = "ngf-min",
["Mirndi"] = "aus-mir",
["Siouan Lembah Mississippi"] = "sio-msv",
["Siouan Sungai Missouri"] = "sio-mor",
["Misumalpa"] = "nai-min",
["Mixe-Zoque"] = "nai-miz",
["Mixtec"] = "omq-mxt",
["Mixtec"] = "omq-mix",
["Arab Selatan Moden"] = "sem-sar",
["Mokole"] = "dmn-mok",
["Mombum"] = "ngf-mom",
["Momo"] = "nic-mom",
["Mon-Khmer"] = "mkh",
["Mondzish"] = "sit-mnz",
["Mongo"] = "bnt-mon",
["Mongolik"] = "xgn",
["Monguor"] = "mjg",
["Monik"] = "mkh-mnc",
["Monumbo"] = "paa-mon",
["Mordvinik"] = "urj-mdv",
["Moru-Madi"] = "csu-mma",
["Moré"] = "nic-mre",
["Ok Pergunungan"] = "ngf-mok",
["Mruik"] = "sit-mru",
["Muji"] = "tbq-muj",
["Mumuye"] = "alv-mum",
["Mumuye-Yendang"] = "alv-mye",
["Muna-Buton"] = "poz-mun",
["Munda"] = "mun",
["Munji-Yidgha"] = "ira-mny",
["Muran"] = "sai-mur",
["Muria"] = "dra-mur",
["Muskogi"] = "nai-mus",
["Mwika"] = "bnt-mwi",
["Na-Dene"] = "xnd",
["Na-Togo"] = "alv-ntg",
["Nadahup"] = "sai-nad",
["Nahuan"] = "azc-nah",
["Naik"] = "sit-nax",
["Naish"] = "sit-nas",
["Nakh"] = "cau-nkh",
["Nalu"] = "alv-nal",
["Nambikwara"] = "sai-nmk",
["Nambu"] = "paa-nam",
["Namla-Tofanma"] = "paa-nto",
["Nanaik"] = "tuw-nan",
["Nandi-Markweta"] = "sdv-nma",
["Nanga-Walo"] = "nic-nwa",
["Nasoid"] = "tbq-nas",
["Navarro-Aragon"] = "roa-nar",
["Nawiki"] = "awd-nwk",
["Ndeiram"] = "ngf-nde",
["Ndu"] = "paa-ndu",
["Ndzem-Bomwali"] = "bnt-ndb",
["Nenets"] = "yrk",
["New Caledonia"] = "poz-cln",
["Newarik"] = "sit-new",
["Ngalik-Nduga"] = "ngf-ngn",
["Ngayarda"] = "aus-nga",
["Ngbaka"] = "nic-ngk",
["Ngbandi"] = "nic-ngd",
["Ngemba"] = "nic-nge",
["Ngkolmpu"] = "paa-ngk",
["Ngondi-Ngiri"] = "bnt-ngn",
["Nguni"] = "bnt-ngu",
["Nicobar"] = "aav-nic",
["Niger-Congo"] = "nic",
["Nilo-Sahara"] = "ssa",
["Nilotik"] = "sdv-nil",
["Nimboran"] = "paa-nim",
["Ninzik"] = "nic-nin",
["Nisoish"] = "tbq-nso",
["Nisu"] = "tbq-nis",
["Nkambe"] = "nic-nka",
["Athabaskan Utara"] = "ath-nor",
["Bahnar Utara"] = "mkh-nbn",
["Binandere Utara"] = "ngf-nbi",
["Borneo Utara"] = "poz-bnn",
["Bougainville Utara"] = "paa-nbo",
["Dravidia Utara"] = "dra-nor",
["Germanik Utara"] = "gmq",
["Halmahera Utara"] = "paa-nha",
["Iroquois Utara"] = "iro-nor",
["Ometo Utara"] = "omv-nom",
["Dogon Plateau Utara"] = "nic-npd",
["Sarawak Utara"] = "poz-swa",
["Germanik Laut Utara"] = "gmw-nsg",
["Turkik Siberia Utara"] = "trk-nsb",
["Sogeram Utara"] = "ngf-nso",
["Vanuatu Utara"] = "poz-vnn",
["Edoid Tengah Utara"] = "alv-nce",
["Cross River Atas Utara-Selatan"] = "nic-ucn",
["Bantu Timur Laut"] = "bnt-bne",
["Kaukasia Timur Laut"] = "cau-nec",
["Bantu Pesisir Timur Laut"] = "bnt-ncb",
["Iran Timur Laut"] = "ira-nei",
["Neo-Aram Timur Laut"] = "sem-nna",
["Adelbert Utara"] = "ngf-nad",
["Bai Utara"] = "sit-nba",
["Bantoid Utara"] = "nic-bdn",
["Sudan Timur Utara"] = "sdv-nes",
["Andaman Besar Utara"] = "qfa-adn",
["Gurunsi Utara"] = "nic-gnn",
["Indo-Arya Utara"] = "inc-nor",
["Jê Utara"] = "sai-nje",
["Loloish Utara"] = "tbq-nlo",
["Luo Utara"] = "sdv-lon",
["Naga Utara"] = "sit-kon",
["Halmahera Utara Utara"] = "paa-nnh",
["Nuristani Utara"] = "nur-nor",
["Lingkaran Utara"] = "nic-rnn",
["Ryukyu Utara"] = "jpx-nry",
["Tai Utara"] = "tai-nor",
["Tivoid Utara"] = "nic-tvn",
["Kaukasia Barat Laut"] = "cau-nwc",
["Hanseman Barat Laut"] = "ngf-nwh",
["Kainji Barat Laut"] = "nic-knn",
["Semitik Barat Laut"] = "sem-nwe",
["Sumatera Barat Laut"] = "poz-nws",
["Edoid Barat Laut"] = "alv-nwd",
["Indo-Arya Barat Laut"] = "inc-nwe",
["Iran Barat Laut"] = "ira-nwi",
["Mande Barat Laut"] = "dmn-mnw",
["Nubia"] = "nub",
["Ndu Nukleus"] = "paa-nnd",
["Polinesia Nukleus"] = "poz-pnp",
["Numik"] = "azc-num",
["Numugen"] = "ngf-num",
["Nun"] = "nic-nun",
["Nungish"] = "sit-nng",
["Nupe-Gbagyi"] = "alv-ngb",
["Nupoid"] = "alv-nup",
["Nuristani"] = "iir-nur",
["Nuru"] = "ngf-nur",
["Nusoish"] = "tbq-nus",
["Nwa-Beng"] = "dmn-nbe",
["Nyali"] = "bnt-nya",
["Nyanga-Buyi"] = "bnt-nyb",
["Nyasa"] = "bnt-nys",
["Nyima"] = "sdv-nyi",
["Nyoro-Ganda"] = "bnt-nyg",
["Nyulnyul"] = "aus-nyu",
["Nyun"] = "alv-nyn",
["Nzebi"] = "bnt-nze",
["Romawi Occitano"] = "roa-ocr",
["Oceania"] = "poz-oce",
["Oghur"] = "trk-ogr",
["Oghuz"] = "trk-ogz",
["Ogoni"] = "nic-ogo",
["Siouan Lembah Ohio"] = "sio-ohv",
["Ok"] = "ngf-okk",
["Indo-Arya Kuno"] = "inc-old",
["Iran Kuno"] = "ira-old",
["Arab Selatan Kuno"] = "sem-osa",
["Ometo"] = "omv-ome",
["Omosan"] = "ngf-omo",
["Omotik"] = "omv",
["Onga"] = "qfa-ong",
["Ormuri-Parachi"] = "ira-orp",
["Orokaivik"] = "ngf-oro",
["Osco-Umbria"] = "itc-sbl",
["Oti-Volta"] = "nic-ovo",
["Oto-Manguea"] = "omq",
["Oto-Pamea"] = "omq-otp",
["Otomaco"] = "sai-otm",
["Otomi"] = "oto-otm",
["Otomian"] = "oto",
["Ottilien"] = "paa-ott",
["Enga Luar"] = "ngf-oen",
["Ovambo"] = "bnt-ova",
["Oïl"] = "roa-oil",
["Athabaskan Pesisir Pasifik"] = "ath-pco",
["Pahari"] = "inc-pah",
["Sungai Pahoturi"] = "paa-pah",
["Pakanik"] = "mkh-pkn",
["Pakawa"] = "nai-pak",
["Palaihnihan"] = "nai-pal",
["Palaungik"] = "mkh-pal",
["Palei"] = "paa-pal",
["Pama-Nyungan"] = "aus-pam",
["Paman"] = "aus-pmn",
["Tasik-Tasik Paniai"] = "ngf-pan",
["Pano-Tacana"] = "sai-pat",
["Pano"] = "sai-pan",
["Papel"] = "alv-pap",
["Papua"] = "paa",
["Para-Mongolik"] = "qfa-xgs",
["Pare"] = "bnt-par",
["Parji-Gadaba"] = "dra-pgd",
["Parukoto"] = "sai-prk",
["Pashayi"] = "inc-pas",
["Pathan"] = "ira-pat",
["Pearik"] = "mkh-pea",
["Peba-Yagua"] = "sai-pey",
["Peka"] = "ngf-pek",
["Pekodia"] = "sai-pek",
["Pemongan"] = "sai-pem",
["Pende"] = "bnt-pen",
["Permik"] = "urj-prm",
["Filipina"] = "phi",
["Phla-Pherá"] = "alv-pph",
["Phowa"] = "tbq-phw",
["Piawi"] = "paa-pia",
["Piman"] = "azc-pim",
["Pinghua"] = "zhx-pin",
["Sungai Piore"] = "paa-pio",
["Dogon Dataran"] = "nic-pld",
["Plateau"] = "nic-plt",
["Penutian Plateau"] = "nai-plp",
["Platoid"] = "nic-pla",
["Pnar-Khasi-Lyngngam"] = "aav-pkl",
["Polinesia"] = "poz-pol",
["Pomerania"] = "zlw-pom",
["Pomo-Bomwali"] = "bnt-pob",
["Pomo"] = "nai-pom",
["Pomoik"] = "ngf-pom",
["Popoloca"] = "omq-pop",
["Porapora"] = "paa-por",
["Potou-Tano"] = "alv-ptn",
["Pumpokolik"] = "qfa-ypm",
["Punjabik"] = "inc-pan",
["Qiangik"] = "sit-qia",
["Quechua"] = "qwe",
["Pesisir Rai"] = "ngf-rai",
["Rajasthani"] = "raj",
["Ramu"] = "paa-ram",
["Rasawa-Saponi"] = "paa-rsa",
["Rashad"] = "nic-ras",
["rGyalrongik"] = "sit-rgy",
["Romawi Rhaeto"] = "roa-rhe",
["Lingkaran"] = "nic-rng",
["Phula Sungai"] = "tbq-rph",
["Romawi"] = "roa",
["Romani"] = "inc-rom",
["Ruboni"] = "paa-rub",
["Rufiji-Ruvuma"] = "bnt-rur",
["Rukwa"] = "bnt-ruk",
["Rungwe"] = "bnt-run",
["Ruvu"] = "bnt-ruv",
["Ruvuma"] = "bnt-rvm",
["Ryukyu"] = "jpx-ryu",
["Sabah"] = "poz-san",
["Sabaki"] = "bnt-sab",
["Sabakor"] = "ngf-sab",
["Sabi"] = "bnt-sbi",
["Sac-Fox-Kickapoo"] = "alg-sfk",
["Sadanik"] = "inc-sad",
["Sahaptian"] = "nai-shp",
["Sahara"] = "ssa-sah",
["Sahu"] = "paa-sah",
["Saka"] = "xsc-sak",
["Saka-Wakhi"] = "xsc-skw",
["Sal"] = "tbq-bkj",
["Salish"] = "sal",
["Saluan-Banggai"] = "poz-slb",
["Sama-Bajaw"] = "poz-sbj",
["Samarokena-Airoran"] = "paa-saa",
["Sami"] = "smi",
["Samo"] = "dmn-sam",
["Samogo"] = "dmn-smg",
["Samoyed"] = "syd",
["Samur"] = "cau-sam",
["Sanglechi-Ishkashimi"] = "ira-sgi",
["Sankwep"] = "ngf-san",
["Tai Sapa-Barat Daya"] = "tai-sap",
["Sara"] = "csu-sar",
["Sarmatia"] = "xsc-sar",
["Sau-Angal-Kewa"] = "ngf-sak",
["Savanna"] = "alv-sav",
["Sawabantu"] = "bnt-saw",
["Scythia"] = "xsc",
["Selkup"] = "sel",
["Semitik"] = "sem",
["Sena"] = "bnt-sna",
["Senagi"] = "paa-sng",
["Senari"] = "alv-snr",
["Senegambia"] = "alv-sng",
["Sentani"] = "paa-sen",
["Senufo"] = "alv-snf",
["Sepik"] = "paa-sep",
["Serbi-Mongolik"] = "qfa-xgs",
["Sere"] = "nic-ser",
["Bukit Serra"] = "paa-shi",
["Seuta"] = "bnt-seu",
["Shasta"] = "nai-shs",
["Shi-Havu"] = "bnt-shh",
["Shinaik"] = "inc-shn",
["Shirongolik"] = "xgn-shr",
["Shiroro"] = "nic-shi",
["Shona"] = "bnt-sho",
["Shughni-Roshani"] = "ira-shr",
["Shughni-Yazghulami"] = "ira-shy",
["Shughni-Yazghulami-Munji"] = "ira-sym",
["Turkik Siberia"] = "trk-sib",
["Siloid"] = "tbq-sil",
["Simbu"] = "ngf-sim",
["Sindhik"] = "inc-snd",
["Sinitik"] = "zhx",
["Sino-Bai"] = "sit-sba",
["Sino-Tibet"] = "sit",
["Siouan"] = "sio",
["Siouan-Catawba"] = "nai-sca",
["Sira"] = "bnt-sir",
["Sisaala"] = "nic-sis",
["Sko"] = "paa-sko",
["Slavey"] = "den",
["Slav"] = "sla",
["Sogdik"] = "ira-sgc",
["Sogdo-Bactria"] = "ira-sbc",
["Sogeram"] = "ngf-sog",
["Soko-Kele"] = "bnt-ske",
["Somaloid"] = "cus-som",
["Songhai"] = "son",
["Soninke-Bobo"] = "dmn-snb",
["Sopac"] = "ngf-sop",
["Sorbia"] = "wen",
["Sotho-Tswana"] = "bnt-sts",
["Kepala Burung Selatan"] = "ngf-sbh",
["Bougainville Selatan"] = "paa-sbo",
["Cushitik Selatan"] = "cus-sou",
["Dravidia Selatan"] = "dra-sou",
["Dravidia Selatan I"] = "dra-sdo",
["Dravidia Selatan II"] = "dra-sdt",
["Plateau Selatan"] = "nic-pls",
["Turkik Siberia Selatan"] = "trk-ssb",
["Slavik Selatan"] = "zls",
["Sulawesi Selatan"] = "poz-ssw",
["Vanuatu Selatan"] = "poz-vns",
["Kepulauan Solomon Tenggara"] = "poz-sls",
["Aram Tenggara"] = "sem-ase",
["Iran Tenggara"] = "ira-sei",
["Loloish Tenggara"] = "tbq-sel",
["Mande Tenggara"] = "dmn-mse",
["Adelbert Selatan"] = "ngf-sad",
["Bantoid Selatan"] = "nic-bds",
["Bantu Selatan"] = "bnt-bso",
["Gbaya Selatan"] = "gba-sou",
["Andaman Besar Selatan"] = "qfa-ads",
["Indo-Arya Selatan"] = "inc-sou",
["Jê Selatan"] = "sai-sje",
["Loloish Selatan"] = "tbq-slo",
["Luo Selatan"] = "sdv-los",
["Min Selatan"] = "zhx-nan",
["Mongolik Selatan"] = "xgn-sou",
["Nilotik Selatan"] = "sdv-nis",
["Nuristani Selatan"] = "nur-sou",
["Oceania Selatan"] = "poz-ocs",
["Romawi Selatan"] = "roa-sou",
["Ryukyu Selatan"] = "jpx-sry",
["Samur Selatan"] = "cau-ssm",
["Bantu Barat Daya"] = "bnt-swb",
["Grassfields Barat Daya"] = "nic-grs",
["Pama-Nyungan Barat Daya"] = "aus-psw",
["Brythonik Barat Daya"] = "cel-brs",
["Edoid Barat Daya"] = "alv-swd",
["Iran Barat Daya"] = "ira-swi",
["Mande Barat Daya"] = "dmn-msw",
["Tai Barat Daya"] = "tai-swe",
["St. Matthias"] = "poz-stm",
["Supyire-Mamara"] = "alv-sma",
["Susu-Yalunka"] = "dmn-sya",
["Swahili"] = "bnt-swh",
["Ta-Arawak"] = "awd-taa",
["Tacana"] = "sai-tac",
["Tagwana-Djimini"] = "alv-tdj",
["Tai"] = "tai",
["Taikat-Awyi"] = "paa-taa",
["Tainae-Akoye"] = "ngf-taa",
["Tairora"] = "ngf-tai",
["Takama"] = "bnt-tkm",
["Takik"] = "azc-tak",
["Talodi"] = "alv-tal",
["Talodi-Heiban"] = "alv-the",
["Taloid"] = "tbq-tal",
["Taman"] = "sdv-tmn",
["Tamangik"] = "sit-tam",
["Tamil-Kannada"] = "dra-tkn",
["Tamil-Kodagu"] = "dra-tkd",
["Tamil-Malayalam"] = "dra-tml",
["Tamiloid"] = "dra-tam",
["Tamolan"] = "paa-tam",
["Tangkhul-Maring"] = "sit-tma",
["Tangkhulik"] = "sit-tng",
["Tangkik"] = "aus-tnk",
["Tangko-Nakai"] = "ngf-tna",
["Tangsa-Nocte"] = "sit-tno",
["Tani"] = "sit-tan",
["Taracahitik"] = "azc-trc",
["Tarano"] = "sai-tar",
["Tarokoid"] = "nic-tar",
["Tatik"] = "xme-ttc",
["Teberan"] = "paa-teb",
["Teke"] = "bnt-tek",
["Teke-Mbede"] = "bnt-tmb",
["Teluguk"] = "dra-tel",
["Temotu"] = "poz-tem",
["Tenda"] = "alv-ten",
["Tequistlatec"] = "nai-tqn",
["Ternate-Tidore"] = "paa-tti",
["Teso-Turkana"] = "sdv-ttu",
["Tetela"] = "bnt-tet",
["Tharu"] = "inc-tha",
["Tibet"] = "sit-tib",
["Tibet-Burma"] = "tbq",
["Tiboran"] = "ngf-tib",
["Ticuna-Yuri"] = "sai-tyu",
["Timor-Alor-Pantar"] = "paa-tap",
["Timorik"] = "poz-tim",
["Tinigua"] = "sai-tin",
["Tirio"] = "paa-tir",
["Tivoid"] = "nic-tiv",
["Tocharia"] = "ine-toc",
["Toda-Kota"] = "dra-tkt",
["Tomini-Tolitoli"] = "poz-tot",
["Tonda"] = "paa-ton",
["Tongik"] = "poz-ton",
["Tor"] = "paa-tor",
["Tor-Orya"] = "paa-too",
["Torricelli"] = "paa-trr",
["Totonac"] = "nai-ttn",
["Totozoque"] = "nai-tot",
["Trans-New Guinea"] = "ngf",
["Triqui"] = "omq-tri",
["Tsezi"] = "cau-tsz",
["Tshangla"] = "sit-tsk",
["Tsimshianik"] = "nai-tsi",
["Tsogo"] = "bnt-tso",
["Tswa-Ronga"] = "bnt-tsr",
["Tucano"] = "sai-tuc",
["Tujia"] = "sit-tja",
["Tulu-Koraga"] = "dra-tlk",
["Tungus"] = "tuw",
["Tupi-Guarani"] = "tup-gua",
["Tupia"] = "tup",
["Turama-Kikori"] = "paa-tki",
["Turkik"] = "trk",
["Tuu"] = "khi-tuu",
["Tyrsenian"] = "qfa-tyn",
["Tày"] = "tai-tay",
["Ubangia"] = "nic-ubg",
["Udegheik"] = "tuw-udg",
["Ugrik"] = "urj-ugr",
["Cross River Atas"] = "nic-ucr",
["Phula Hulu"] = "tbq-urp",
["Uralik"] = "urj",
["Uru-Chipaya"] = "sai-ucp",
["Uruwa"] = "ngf-uru",
["Utik"] = "nai-utn",
["Uto-Aztec"] = "azc",
["Utu-Silopi"] = "ngf-usi",
["Vai-Kono"] = "dmn-vak",
["Vainakh"] = "cau-vay",
["Vale"] = "csu-val",
["Vaskonik"] = "euq",
["Carib Venezuela"] = "sai-ven",
["Vietik"] = "mkh-vie",
["Volta-Congo"] = "nic-vco",
["Volta-Niger"] = "alv-von",
["Wahgi"] = "ngf-wah",
["Waja-Kam"] = "alv-wjk",
["Wakashan"] = "wak",
["Walio"] = "paa-wal",
["Wantoat-Awara"] = "ngf-waa",
["Wantoatik"] = "ngf-wan",
["Wapei"] = "paa-wap",
["Wapei-Palei"] = "paa-wpa",
["Wara-Natyoro"] = "alv-wan",
["Waris"] = "paa-war",
["Warup"] = "ngf-war",
["Wee"] = "kro-wee",
["Tai Wenma-Barat Daya"] = "tai-wen",
["Baltik Barat"] = "bat-wes",
["Barito Barat"] = "poz-brw",
["Kepala Burung Barat"] = "paa-wbh",
["Chadik Barat"] = "cdc-wst",
["Dogon Barat"] = "nic-dgw",
["Germanik Barat"] = "gmw",
["Himalaya Barat"] = "sit-whm",
["Teluk Pedalaman Barat"] = "paa-wig",
["Keram Barat"] = "paa-wke",
["Dataran Tasik Barat"] = "paa-wlp",
["Manding Barat"] = "dmn-wmn",
["Mbam Barat"] = "nic-mbw",
["Ok Barat"] = "ngf-wok",
["Scandinavia Barat"] = "gmq-wes",
["Semitik Barat"] = "sem-wes",
["Slavik Barat"] = "zlw",
["Sogeram Barat"] = "ngf-wso",
["Tsezi Barat"] = "cau-wts",
["rGyalrongik Barat"] = "sit-wgy",
["Aram Barat"] = "sem-arw",
["Brythonik Barat"] = "cel-brw",
["Eleman Barat"] = "paa-wel",
["Gbaya Barat"] = "gba-wes",
["Gurunsi Barat"] = "nic-gnw",
["Hindi Barat"] = "inc-hiw",
["Indo-Arya Barat"] = "inc-wes",
["Iran Barat"] = "ira-wes",
["Kho-Bwa Barat"] = "sit-khw",
["Kiranti Barat"] = "sit-kiw",
["Kru Barat"] = "kro-wkr",
["Mande Barat"] = "dmn-mdw",
["Ngbaka Barat"] = "nic-nkw",
["Nilotik Barat"] = "sdv-niw",
["Oceania Barat"] = "poz-ocw",
["Oti-Volta Barat"] = "nic-wov",
["Pahari Barat"] = "him",
["Pauwasi Barat"] = "paa-wpw",
["Lingkaran Barat"] = "nic-rnw",
["Romawi Barat"] = "roa-wes",
["Samur Barat"] = "cau-wsm",
["Wichí"] = "sai-wic",
["Wintuan"] = "nai-wtq",
["Witoto"] = "sai-wit",
["Wojokesik"] = "ngf-woj",
["Worrorra"] = "aus-wor",
["Wotu-Wolio"] = "poz-wot",
["Wára-Kómnzo"] = "paa-wko",
["Xinca"] = "nai-xin",
["Yaganon"] = "ngf-yag",
["Yaka"] = "bnt-yak",
["Yali"] = "ngf-yal",
["Yam"] = "paa-yam",
["Yambasa"] = "nic-ymb",
["Yangmanik"] = "aus-yng",
["Yanomami"] = "sai-ynm",
["Yaqayik"] = "paa-yaq",
["Yareban"] = "ngf-yar",
["Yasa-Kombe"] = "bnt-yko",
["Yau-Nungon"] = "ngf-ynu",
["Yawa-Saweru"] = "paa-ysa",
["Yekhee"] = "alv-yek",
["Yenisei"] = "qfa-yen",
["Yidinyik"] = "aus-yid",
["Yok-Utik"] = "nai-you",
["Yokuts"] = "yok",
["Yolngu"] = "aus-yol",
["Yom-Nawdm"] = "nic-yon",
["Yoruba"] = "alv-yor",
["Yoruboid"] = "alv-yrd",
["Yuat"] = "paa-yua",
["Yue"] = "zhx-yue",
["Yuin-Kurik"] = "aus-yuk",
["Yukaghir"] = "qfa-yuk",
["Yukian"] = "nai-ykn",
["Yukpan"] = "sai-yuk",
["Yukubenik"] = "nic-ykb",
["Yuman-Cochimí"] = "nai-yuc",
["Yungur"] = "alv-yun",
["Yupik"] = "ypk",
["Yupna"] = "ngf-yup",
["Zamba-Binza"] = "bnt-zbi",
["Zamuco"] = "sai-zam",
["Zan"] = "ccs-zan",
["Zande"] = "znd",
["Zaparo"] = "sai-zap",
["Zapotec"] = "omq-zpc",
["Zapotec"] = "omq-zap",
["Zaza-Gorani"] = "ira-zgr",
["Zeme"] = "sit-zem",
["buatan"] = "art",
["sentuhan"] = "qfa-cnt",
["kreol"] = "qfa-cre",
["kreol atau pijin"] = "crp",
["pertalian dipertikaikan"] = "qfa-dis",
["pencilan"] = "qfa-iso",
["campuran"] = "qfa-mix",
["bukan keluarga"] = "qfa-not",
["pijin"] = "qfa-pid",
["isyarat"] = "sgn",
["substratum"] = "qfa-sub",
["tidak boleh dikelaskan"] = "qfa-unc",
}
8xxuv52kon7tov4b83g8ypc3mmt4tqr
373518
373517
2026-09-11T03:05:14Z
SNN95
2113
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373518
Scribunto
text/plain
return {
["Abenaki-Penobscot"] = "alg-abp",
["Abkhaz-Abaza"] = "cau-abz",
["Adamawa"] = "alv-ada",
["Adelbert Selatan"] = "ngf-sad",
["Adelbert Utara"] = "ngf-nad",
["Afro-Asia"] = "afa",
["Aian"] = "paa-aia",
["Ainuik"] = "qfa-ain",
["Aisian"] = "ngf-ais",
["Aizi"] = "kro-aiz",
["Alacalufan"] = "aqa",
["Albania"] = "sqj",
["Algic"] = "aql",
["Algonquian"] = "alg",
["Algonquian Timur"] = "alg-eas",
["Almora"] = "sit-alm",
["Alor-Pantar"] = "paa-alp",
["Alumik"] = "nic-alu",
["Amto-Musan"] = "paa-amu",
["Anatolia"] = "ine-ana",
["Andaman Besar"] = "qfa-adm",
["Andaman Besar Selatan"] = "qfa-ads",
["Andaman Besar Tengah"] = "qfa-adc",
["Andaman Besar Utara"] = "qfa-adn",
["Andian"] = "cau-and",
["Angal-Kewa"] = "ngf-ank",
["Angami-Pochuri"] = "tbq-anp",
["Angan"] = "ngf-ang",
["Anglik"] = "gmw-ang",
["Anglo-Frisia"] = "gmw-afr",
["Anglo-Norman Ireland"] = "gmw-ian",
["Anim"] = "paa-ani",
["Ankave-Tainae-Akoye"] = "ngf-ata",
["Ao"] = "njo",
["Apachean"] = "apa",
["Arab"] = "sem-arb",
["Arab Selatan Kuno"] = "sem-osa",
["Arab Selatan Moden"] = "sem-sar",
["Arafundi"] = "paa-arf",
["Aramia"] = "sem-ara",
["Aramia Barat"] = "sem-arw",
["Aramia Tenggara"] = "sem-ase",
["Aramia Timur"] = "sem-are",
["Arandic"] = "aus-rnd",
["Arapahoan"] = "alg-ara",
["Arapesh"] = "paa-ara",
["Arauan"] = "auf",
["Araucanian"] = "sai-ara",
["Arawak"] = "awd",
["Arinik"] = "qfa-yrn",
["Armenia"] = "hyx",
["Arnhem"] = "aus-arn",
["Aroid"] = "omv-aro",
["Aslian"] = "mkh-asl",
["Asmat"] = "ngf-asm",
["Asmat-Kamoro"] = "ngf-ask",
["Asturleonese"] = "roa-asl",
["Ataitan"] = "paa-ata",
["Atayalik"] = "map-ata",
["Athabaskan"] = "ath",
["Athabaskan Pantai Pasifik"] = "ath-pco",
["Athabaskan Utara"] = "ath-nor",
["Atlantik-Congo"] = "alv",
["Austroasiatik"] = "aav",
["Austronesia"] = "map",
["Avaro-Andian"] = "cau-ava",
["Awyu"] = "ngf-awy",
["Awyu Raya"] = "ngf-gaw",
["Awyu-Dumut"] = "ngf-awd",
["Axioid"] = "tbq-axi",
["Ayere-Ahan"] = "alv-aah",
["Aymaran"] = "sai-aym",
["Bafia"] = "bnt-baf",
["Bafo-Bonkeng"] = "bnt-bbo",
["Baga"] = "alv-bag",
["Bagirmi"] = "csu-bgr",
["Bahasa Isyarat Amerika"] = "sgn-asl",
["Bahasa Isyarat Jepun"] = "sgn-jsl",
["Bahasa Isyarat Jerman"] = "sgn-gsl",
["Bahasa Isyarat Perancis"] = "sgn-fsl",
["Bahasa-bahasa KRDS"] = "inc-krd",
["Bahnarik"] = "mkh-ban",
["Bahnarik Utara"] = "mkh-nbn",
["Bai"] = "sit-bai",
["Bai Utara"] = "sit-nba",
["Baining"] = "paa-bai",
["Bak"] = "alv-bak",
["Baka"] = "nic-nkb",
["Bali-Sasak-Sumbawa"] = "poz-bss",
["Baltic"] = "bat",
["Baltik Barat"] = "bat-wes",
["Baltik Timur"] = "bat-eas",
["Balto-Slav"] = "ine-bsl",
["Bambukic"] = "alv-bam",
["Bamileke"] = "bai",
["Banda"] = "bad",
["Banda Tengah"] = "bad-cnt",
["Bangi-Moi"] = "bnt-bmo",
["Bangi-Ntomba"] = "bnt-bnm",
["Bangi-Tetela"] = "bnt-bte",
["Bantoid"] = "nic-bod",
["Bantoid Selatan"] = "nic-bds",
["Bantoid Utara"] = "nic-bdn",
["Bantoid-Cross"] = "nic-bcr",
["Bantu"] = "bnt",
["Bantu Barat Daya"] = "bnt-swb",
["Bantu Pantai Timur Laut"] = "bnt-ncb",
["Bantu Selatan"] = "bnt-bso",
["Bantu Tasik-Tasik Besar"] = "bnt-glb",
["Bantu Timur Laut"] = "bnt-bne",
["Banyum"] = "alv-bny",
["Barbacoan"] = "sai-bar",
["Bari"] = "sdv-bri",
["Barito Barat"] = "poz-brw",
["Barito Timur"] = "poz-bre",
["Baruya-Simbari"] = "ngf-bsi",
["Basa"] = "nic-bas",
["Basaa"] = "bnt-bsa",
["Batak"] = "btk",
["Bati-Angba"] = "bnt-bta",
["Bayono-Awbono"] = "paa-baa",
["Be"] = "qfa-onb",
["Be-Jizhao"] = "qfa-bej",
["Be-Tai"] = "qfa-bet",
["Beboid"] = "nic-beb",
["Beboid Timur"] = "nic-bbe",
["Becking-Dawi"] = "ngf-bda",
["Bekwilic"] = "bnt-bek",
["Bena-Kinga"] = "bnt-bki",
["Bendi"] = "nic-ben",
["Bengali-Assam"] = "inc-bas",
["Benue-Congo"] = "nic-bco",
["Berber"] = "ber",
["Beromik"] = "nic-beo",
["Betaf-Vitou"] = "paa-bvi",
["Beti"] = "bnt-btb",
["Bewani"] = "paa-bew",
["Bhil"] = "inc-bhi",
["Bi-Ka"] = "tbq-bka",
["Bihari"] = "inc-bih",
["Bikwin-Jen"] = "alv-bwj",
["Binanderean"] = "ngf-bin",
["Binanderean Raya"] = "ngf-gbi",
["Binanderean Utara"] = "ngf-nbi",
["Birri-Kresh"] = "csu-bkr",
["Bisa-Busa"] = "dmn-bbu",
["Bisoid"] = "tbq-bis",
["Boan"] = "bnt-boa",
["Boane"] = "ngf-boa",
["Boazi"] = "paa-boa",
["Bodish"] = "sit-bdi",
["Bodish Timur"] = "sit-ebo",
["Bodo-Garo"] = "tbq-bdg",
["Boma-Dzing"] = "bnt-bdz",
["Bongo-Bagirmi"] = "csu-bba",
["Bongo-Baka"] = "csu-bbk",
["Boran"] = "sai-bor",
["Border"] = "paa-bor",
["Borneo Utara"] = "poz-bnn",
["Bosavi"] = "ngf-bos",
["Bosngun-Awar"] = "paa-baw",
["Botatwe"] = "bnt-bot",
["Bougainville Selatan"] = "paa-sbo",
["Bougainville Utara"] = "paa-nbo",
["Brythonic"] = "cel-bry",
["Brythonic Barat"] = "cel-brw",
["Brythonic Barat Daya"] = "cel-brs",
["Bua"] = "alv-bua",
["Buja-Ngombe"] = "bnt-bun",
["Bukit Serra"] = "paa-shi",
["Buli-Koma"] = "nic-buk",
["Bungku-Tolaki"] = "poz-btk",
["Bunuban"] = "aus-bub",
["Burmik"] = "tbq-brm",
["Burmo-Qiangik"] = "tbq-buq",
["Bushoong"] = "bnt-bsh",
["Buyang"] = "qfa-buy",
["Bwa"] = "nic-bwa",
["Bété"] = "kro-bet",
["Caddoan"] = "cdd",
["Cahuapanan"] = "sai-cah",
["Cai-Long"] = "sit-cln",
["Cangin"] = "alv-cng",
["Cariban"] = "sai-car",
["Cariban Venezuela"] = "sai-ven",
["Castilian"] = "roa-cas",
["Catacaoan"] = "sai-ctc",
["Catawban"] = "nai-cat",
["Celebik"] = "poz-clb",
["Cerrado"] = "sai-cer",
["Chadik"] = "cdc",
["Chadik Barat"] = "cdc-wst",
["Chadik Tengah"] = "cdc-cbm",
["Chadik Timur"] = "cdc-est",
["Chaga"] = "bnt-chg",
["Chaga-Taita"] = "bnt-cht",
["Chamik"] = "cmc",
["Chapacuran"] = "sai-cpc",
["Charruan"] = "sai-crn",
["Chatino"] = "omq-cha",
["Chibchan"] = "cba",
["Chimakuan"] = "chi",
["Chimbu-Wahgi"] = "ngf-chw",
["Chinantecan"] = "omq-chi",
["Chinookan"] = "nai-ckn",
["Chitrali"] = "inc-chi",
["Chocoan"] = "sai-chc",
["Chokwe-Luchazi"] = "bnt-clu",
["Chonan"] = "sai-cho",
["Chug-Lish"] = "sit-khc",
["Chukotkan"] = "qfa-ckn",
["Chukotko-Kamchatkan"] = "qfa-cka",
["Chumashan"] = "nai-chu",
["Circassian"] = "cau-cir",
["Comorian"] = "bnt-com",
["Coosan"] = "nai-coo",
["Cross River"] = "nic-cri",
["Cross River Atas"] = "nic-ucr",
["Cross River Atas Timur-Barat"] = "nic-uce",
["Cross River Atas Utara-Selatan"] = "nic-ucn",
["Cross River Bawah"] = "nic-lcr",
["Cuicatec"] = "omq-cui",
["Cupan"] = "azc-cup",
["Dagan"] = "ngf-dag",
["Dagbani"] = "nic-dag",
["Daju"] = "sdv-daj",
["Dakoid"] = "nic-dak",
["Dakotan"] = "sio-dkt",
["Dallman"] = "ngf-dal",
["Daly"] = "aus-dal",
["Dangari"] = "inc-dng",
["Dani"] = "ngf-dan",
["Dani Lembah Besar"] = "ngf-gvd",
["Dani Tengah"] = "ngf-cda",
["Dardik"] = "inc-dar",
["Dardik Timur"] = "inc-dre",
["Dargwa"] = "cau-drg",
["Dataran Tasik"] = "paa-lpl",
["Dataran Tasik Barat"] = "paa-wlp",
["Dataran Tasik Barat Jauh"] = "paa-flp",
["Dataran Tasik Tengah"] = "paa-clp",
["Dataran Tasik Timur"] = "paa-elp",
["Dayak Darat"] = "day",
["Delta Tengah"] = "nic-cde",
["Dene-Yeniseian"] = "qfa-dny",
["Dhegihan"] = "sio-dhe",
["Dhimalish"] = "sit-dhi",
["Dida"] = "kro-did",
["Dinka-Nuer"] = "sdv-dnu",
["Dizoid"] = "omv-diz",
["Dogon"] = "qfa-dgn",
["Dogon Barat"] = "nic-dgw",
["Dogon Dataran"] = "nic-pld",
["Dogon Penara Utara"] = "nic-npd",
["Dogon Tubir"] = "nic-dge",
["Doso-Turumsa"] = "paa-dtu",
["Dravida"] = "dra",
["Dravida Selatan"] = "dra-sou",
["Dravida Selatan I"] = "dra-sdo",
["Dravida Selatan II"] = "dra-sdt",
["Dravida Tengah"] = "dra-cen",
["Dravida Utara"] = "dra-nor",
["Dumut"] = "ngf-dum",
["Duru"] = "alv-dur",
["Dyirbalic"] = "aus-dyb",
["Ede"] = "alv-ede",
["Edekiri"] = "alv-edk",
["Edo-Esan-Ora"] = "alv-eeo",
["Edoid"] = "alv-edo",
["Edoid Barat Daya"] = "alv-swd",
["Edoid Barat Laut"] = "alv-nwd",
["Edoid Delta"] = "alv-dlt",
["Edoid Utara-Tengah"] = "alv-nce",
["Ekoid"] = "nic-eko",
["Eleman"] = "paa-ele",
["Eleman Barat"] = "paa-wel",
["Eleman Timur"] = "paa-eel",
["Emilian-Romagnol"] = "roa-emr",
["Enets"] = "syd-ene",
["Engan"] = "ngf-eng",
["Engan Luar"] = "ngf-oen",
["Engik"] = "ngf-enc",
["Erap"] = "ngf-era",
["Ersuik"] = "sit-ers",
["Eskimo"] = "esx-esk",
["Eskimo-Aleut"] = "esx",
["Evapia"] = "ngf-eva",
["Ewenik"] = "tuw-ewe",
["Fali"] = "alv-fli",
["Fas"] = "paa-fas",
["Filipina"] = "phi",
["Finisterre"] = "ngf-fin",
["Finisterre-Huon"] = "ngf-fhu",
["Finnik"] = "urj-fin",
["Fore-Gimi"] = "ngf-fgi",
["Frankonia Bawah"] = "gmw-frk",
["Frisia"] = "gmw-fri",
["Fula-Wolof"] = "alv-fwo",
["Fur"] = "ssa-fur",
["Furu"] = "nic-fru",
["Ga-Dangme"] = "alv-gda",
["Gaena-Korafe"] = "ngf-gko",
["Gahuku"] = "ngf-gah",
["Galela-Tobelo"] = "paa-gto",
["Galicia-Portugis"] = "roa-gap",
["Gallo-Italik"] = "roa-git",
["Gallo-Rhaetian"] = "roa-grh",
["Gallo-Romance"] = "roa-gar",
["Garawan"] = "aus-gar",
["Gauwa"] = "ngf-gau",
["Gbanziri"] = "nic-nkg",
["Gbaya"] = "gba",
["Gbaya Barat"] = "gba-wes",
["Gbaya Selatan"] = "gba-sou",
["Gbaya Timur"] = "gba-eas",
["Gbe"] = "alv-gbe",
["Gelao"] = "gio",
["Georgia-Zan"] = "ccs-gzn",
["Gogodala-Suki"] = "ngf-gsu",
["Goidelik"] = "cel-gae",
["Gondi"] = "dra-gon",
["Gondi-Kui"] = "dra-gki",
["Gonga"] = "omv-gon",
["Goroka"] = "ngf-gor",
["Grassfields"] = "nic-grf",
["Grassfields Barat Daya"] = "nic-grs",
["Grassfields Timur"] = "nic-gre",
["Grebo"] = "kro-grb",
["Grebo tepat"] = "grb",
["Guahiban"] = "sai-guh",
["Guaicuruan"] = "sai-guc",
["Guang"] = "alv-gng",
["Guarani"] = "gn",
["Guianan"] = "sai-gui",
["Gum"] = "ngf-gum",
["Gunwinyguan"] = "aus-gun",
["Gur"] = "nic-gur",
["Gurma"] = "nic-grm",
["Gurunsi"] = "nic-gns",
["Gurunsi Barat"] = "nic-gnw",
["Gurunsi Timur"] = "nic-gne",
["Gurunsi Utara"] = "nic-gnn",
["Gusap-Mot"] = "ngf-gmo",
["Hagen"] = "ngf-hag",
["Halbik"] = "inc-hal",
["Halmahera Utara"] = "paa-nha",
["Halmahera Utara Bahagian Utara"] = "paa-nnh",
["Halmahera-Cenderawasih"] = "poz-hce",
["Hanoid"] = "tbq-han",
["Hanseman"] = "ngf-han",
["Hanseman Barat Laut"] = "ngf-nwh",
["Harákmbut"] = "sai-har",
["Harákmbut-Katukinan"] = "sai-hkt",
["Haya-Jita"] = "bnt-haj",
["Heiban"] = "alv-hei",
["Hellenik"] = "grk",
["Heyo-Yahang"] = "paa-hya",
["Himalaya Barat"] = "sit-whm",
["Hindi Barat"] = "inc-hiw",
["Hindi Timur"] = "inc-hie",
["Hindustani"] = "inc-hnd",
["Hispano-Keltik"] = "cel-his",
["Hlai"] = "qfa-lic",
["Hmong-Mien"] = "hmx",
["Hmongik"] = "hmn",
["Hokan"] = "hok",
["Horpa"] = "ero",
["Hrusish"] = "sit-hrs",
["Huarpean"] = "sai-hrp",
["Huon"] = "ngf-huo",
["Huon Timur"] = "ngf-ehu",
["Hurro-Urartian"] = "qfa-hur",
["Ibero-Romance"] = "roa-ibe",
["Ibibio-Efik"] = "nic-ief",
["Idomoid"] = "alv-ido",
["Igboid"] = "alv-igb",
["Ijoid"] = "ijo",
["Indo-Arya"] = "inc",
["Indo-Arya Barat"] = "inc-wes",
["Indo-Arya Barat Laut"] = "inc-nwe",
["Indo-Arya Kepulauan"] = "inc-ins",
["Indo-Arya Kuno"] = "inc-old",
["Indo-Arya Pertengahan"] = "inc-mid",
["Indo-Arya Selatan"] = "inc-sou",
["Indo-Arya Tengah"] = "inc-cen",
["Indo-Arya Timur"] = "inc-eas",
["Indo-Arya Utara"] = "inc-nor",
["Indo-Eropah"] = "ine",
["Indo-Iran"] = "iir",
["Inuit"] = "esx-inu",
["Iran"] = "ira",
["Iran Barat"] = "ira-wes",
["Iran Barat Daya"] = "ira-swi",
["Iran Barat Laut"] = "ira-nwi",
["Iran Kuno"] = "ira-old",
["Iran Pertengahan"] = "ira-mid",
["Iran Tengah"] = "ira-cen",
["Iran Tenggara"] = "ira-sei",
["Iran Timur Laut"] = "ira-nei",
["Iroquoia"] = "iro",
["Iroquoia Utara"] = "iro-nor",
["Irula-Muduga"] = "dra-imd",
["Italik"] = "itc",
["Italo-Dalmatia"] = "roa-itd",
["Italo-Romance"] = "roa-itr",
["Iwaidjan"] = "aus-wdj",
["Iwam"] = "paa-iwa",
["Japonik"] = "jpx",
["Jarawa"] = "nic-jrw",
["Jarawan"] = "nic-jrn",
["Jarrakan"] = "aus-jar",
["Jebel Timur"] = "sdv-eje",
["Jera"] = "nic-jer",
["Jerman Rendah"] = "gmw-lgm",
["Jerman Tinggi"] = "gmw-hgm",
["Jermanik"] = "gem",
["Jermanik Barat"] = "gmw",
["Jermanik Laut Utara"] = "gmw-nsg",
["Jermanik Timur"] = "gme",
["Jermanik Utara"] = "gmq",
["Jicaquean"] = "nai-jcq",
["Jimi"] = "ngf-jim",
["Jingphoik"] = "sit-jnp",
["Jino"] = "tbq-jin",
["Jirajaran"] = "sai-jir",
["Jivaroan"] = "sai-jiv",
["Jogo-Jeri"] = "dmn-jje",
["Jola"] = "alv-jol",
["Jola-Felupe"] = "alv-jfe",
["Jukunoid"] = "nic-jkn",
["Jurchenik"] = "tuw-jrc",
["Jê"] = "sai-jee",
["Jê Selatan"] = "sai-sje",
["Jê Tengah"] = "sai-cje",
["Jê Utara"] = "sai-nje",
["Ka-Togo"] = "alv-ktg",
["Kaba"] = "csu-kab",
["Kabwum"] = "ngf-kab",
["Kachin-Luik"] = "sit-jpl",
["Kadu"] = "qfa-kad",
["Kaili-Pamona"] = "poz-kal",
["Kainantu"] = "ngf-kai",
["Kainantu-Goroka"] = "ngf-kgo",
["Kainji"] = "nic-knj",
["Kainji Barat Laut"] = "nic-knn",
["Kainji Timur"] = "nic-kne",
["Kako"] = "bnt-kak",
["Kalam-Adelbert Selatan"] = "ngf-ksa",
["Kalam-Kobon"] = "ngf-kak",
["Kalamian"] = "phi-kal",
["Kalapuyan"] = "nai-klp",
["Kaledonia Baharu"] = "poz-cln",
["Kalenjin"] = "sdv-kln",
["Kam-Sui"] = "qfa-kms",
["Kamano-Yagaria"] = "ngf-kya",
["Kambari"] = "nic-kam",
["Kamuku"] = "nic-kmk",
["Kamula-Elevala"] = "paa-kae",
["Kanaan"] = "sem-can",
["Kannadoid"] = "dra-kan",
["Kanum"] = "paa-kan",
["Kapau-Menya"] = "ngf-kme",
["Karaboro"] = "alv-krb",
["Karen"] = "kar",
["Karluk"] = "trk-kar",
["Karnic"] = "aus-kar",
["Kartvelian"] = "ccs",
["Kashmirik"] = "inc-kas",
["Kaspia"] = "ira-csp",
["Katloid"] = "nic-ktl",
["Katuik"] = "mkh-kat",
["Katukinan"] = "sai-ktk",
["Kaukasia Barat Laut"] = "cau-nwc",
["Kaukasia Timur Laut"] = "cau-nec",
["Kaukombar"] = "ngf-kau",
["Kaure-Kosare"] = "paa-kko",
["Kauru"] = "nic-kau",
["Kavango"] = "bnt-kav",
["Kavango-Bantu Barat Daya"] = "bnt-ksb",
["Kayagarik"] = "paa-kay",
["Kazhuoish"] = "tbq-kzh",
["Kele"] = "bnt-kel",
["Kele-Tsogo"] = "bnt-kts",
["Keltik"] = "cel",
["Keltik Kepulauan"] = "cel-ins",
["Kepala Burung Barat"] = "paa-wbh",
["Kepala Burung Selatan"] = "ngf-sbh",
["Kepala Burung Timur"] = "paa-ebh",
["Kepulauan Admiralty"] = "poz-aay",
["Keram"] = "paa-ker",
["Keram Barat"] = "paa-wke",
["Keram Timur"] = "paa-eke",
["Keresan"] = "nai-ker",
["Ketik"] = "qfa-yke",
["Kewa-Huli"] = "ngf-khu",
["Kham"] = "sit-kha",
["Khanty"] = "kca",
["Khasian"] = "aav-khs",
["Khmerik"] = "mkh-kmr",
["Khmuik"] = "mkh-khm",
["Kho-Bwa"] = "sit-khb",
["Kho-Bwa Barat"] = "sit-khw",
["Khoe"] = "khi-kho",
["Khoe Kalahari"] = "khi-kal",
["Khoe-Kwadi"] = "khi-kkw",
["Khoekhoe"] = "khi-khk",
["Kikuyu-Kamba"] = "bnt-kka",
["Kilombero"] = "bnt-kil",
["Kim"] = "alv-kim",
["Kimbundu"] = "bnt-kmb",
["Kinnaurik"] = "sit-kin",
["Kiowa-Tanoan"] = "nai-kta",
["Kipchak"] = "trk-kip",
["Kipchak-Bulgar"] = "trk-kbu",
["Kipchak-Cuman"] = "trk-kcu",
["Kipchak-Nogai"] = "trk-kno",
["Kiranti"] = "sit-kir",
["Kiranti Barat"] = "sit-kiw",
["Kiranti Tengah"] = "sit-kic",
["Kiranti Timur"] = "sit-kie",
["Kissi"] = "alv-kis",
["Kiwaian"] = "paa-kiw",
["Kodagu"] = "dra-kod",
["Kohistani"] = "inc-koh",
["Koiarian"] = "ngf-koi",
["Kokon"] = "ngf-kok",
["Kolami-Naiki"] = "dra-knk",
["Kolopom"] = "paa-kol",
["Koman"] = "ssa-kom",
["Kombio"] = "paa-kom",
["Kombio-Arapesh"] = "paa-koa",
["Komi"] = "kv",
["Komisenian"] = "ira-kms",
["Komo-Bira"] = "bnt-kbi",
["Komyandaret-Tsaukambo"] = "ngf-kts",
["Konda-Kui"] = "dra-kki",
["Kongo"] = "bnt-kng",
["Konyak-Chang"] = "sit-kch",
["Koraga"] = "dra-kor",
["Koreanik"] = "qfa-kor",
["Kosorong-Burum-Mindik"] = "ngf-kbm",
["Kottik"] = "qfa-yko",
["Kowan"] = "ngf-kow",
["Kpala"] = "nic-nkk",
["Kpwe"] = "bnt-kpw",
["Kra"] = "qfa-kra",
["Kra-Dai"] = "qfa-tak",
["Kru"] = "kro",
["Kru Barat"] = "kro-wkr",
["Kru Timur"] = "kro-ekr",
["Kube-Tobo"] = "ngf-kto",
["Kuikuroan"] = "sai-kui",
["Kuki-Chin"] = "tbq-kuk",
["Kulango"] = "alv-kul",
["Kuliak"] = "ssa-klk",
["Kumil"] = "ngf-kum",
["Kunar"] = "inc-kun",
["Kunimaipan"] = "paa-kun",
["Kurdish"] = "ku",
["Kurux-Malto"] = "dra-kml",
["Kushitik"] = "cus",
["Kushitik Selatan"] = "cus-sou",
["Kushitik Tengah"] = "cus-cen",
["Kushitik Timur"] = "cus-eas",
["Kushitik Timur Tanah Tinggi"] = "cus-hec",
["Kutubuan Timur"] = "ngf-eku",
["Kwa"] = "alv-kwa",
["Kwalean"] = "paa-kwa",
["Kwerba Raya"] = "paa-gkw",
["Kwerba tepat"] = "paa-kwe",
["Kwomtari"] = "paa-kwo",
["Kx'a"] = "khi-kxa",
["Kyirong-Kagate"] = "sit-kyk",
["Kyrgyz-Kipchak"] = "trk-kkp",
["Kâte-Mape"] = "ngf-kma",
["Ladakhi-Balti"] = "sit-lab",
["Lagoon"] = "alv-lag",
["Lahoish"] = "tbq-lho",
["Lahuli-Spiti"] = "sit-las",
["Lalo"] = "tbq-lal",
["Lampungik"] = "poz-lgx",
["Latino-Faliskan"] = "itc-laf",
["Lawoish"] = "tbq-lwo",
["Lebonya"] = "bnt-leb",
["Lechitik"] = "zlw-lch",
["Lega-Binja"] = "bnt-lgb",
["Leko"] = "alv-lek",
["Leko-Nimbari"] = "alv-lni",
["Lenape"] = "del",
["Lencan"] = "nai-len",
["Lendu"] = "csu-lnd",
["Lepki-Murkim"] = "paa-lmu",
["Lezghian"] = "cau-lzg",
["Limba"] = "alv-lim",
["Lipo-Lolopo"] = "tbq-llo",
["Lisoish"] = "tbq-lso",
["Logooli-Kuria"] = "bnt-lok",
["Lolo-Burma"] = "tbq-lob",
["Loloda-Laba"] = "paa-lla",
["Loloik"] = "tbq-lol",
["Loloik Selatan"] = "tbq-slo",
["Loloik Tenggara"] = "tbq-sel",
["Loloik Utara"] = "tbq-nlo",
["Lotuko-Maa"] = "sdv-lma",
["Luba"] = "bnt-lub",
["Luban"] = "bnt-lbn",
["Luish"] = "sit-luu",
["Lunda"] = "bnt-lun",
["Luo"] = "sdv-luo",
["Luo Selatan"] = "sdv-los",
["Luo Utara"] = "sdv-lon",
["Lurik"] = "ira-lur",
["Luwik"] = "ine-luw",
["Mabuso"] = "ngf-mab",
["Madang"] = "ngf-mad",
["Madiya"] = "dra-mdy",
["Magarik Raya"] = "sit-gma",
["Maiduan"] = "nai-mdu",
["Mailuan"] = "paa-mal",
["Maimai"] = "paa-mam",
["Mairasi"] = "paa-mai",
["Makaa"] = "bnt-mka",
["Makaa-Njem"] = "bnt-mnj",
["Makro-Bai"] = "sit-mba",
["Makro-Chibchan"] = "qfa-mch",
["Makro-Jê"] = "sai-mje",
["Makua"] = "bnt-mak",
["Malayalamoid"] = "dra-mal",
["Malto"] = "dra-mlo",
["Maluku Tengah"] = "poz-cma",
["Mambiloid"] = "nic-mmb",
["Mamfe"] = "nic-mam",
["Mandarinik"] = "zhx-man",
["Mande"] = "dmn",
["Mande Barat"] = "dmn-mdw",
["Mande Barat Daya"] = "dmn-msw",
["Mande Barat Laut"] = "dmn-mnw",
["Mande Tengah"] = "dmn-mdc",
["Mande Tenggara"] = "dmn-mse",
["Mande Timur"] = "dmn-mde",
["Mandi-Muniwara"] = "paa-mmu",
["Manding"] = "dmn-man",
["Manding Barat"] = "dmn-wmn",
["Manding Timur"] = "dmn-emn",
["Manding-Jogo"] = "dmn-mjo",
["Manding-Mokole"] = "dmn-mmo",
["Manding-Vai"] = "dmn-mva",
["Manenguba"] = "bnt-mne",
["Mangbetu"] = "csu-maa",
["Mangbutu-Lese"] = "csu-mle",
["Mangik"] = "mkh-mng",
["Maninka"] = "dmn-mnk",
["Mano-Dan"] = "dmn-mda",
["Manobo"] = "mno",
["Mansi"] = "mns",
["Manubaran"] = "paa-man",
["Mao"] = "omv-mao",
["Mapoyan"] = "sai-map",
["Mari"] = "chm",
["Marienberg"] = "paa-mar",
["Marind-Boazi-Yaqay"] = "paa-mby",
["Marindik"] = "paa-mri",
["Maringik"] = "sit-mar",
["Masa"] = "cdc-mas",
["Masaba-Luhya"] = "bnt-msl",
["Mascoian"] = "sai-mas",
["Mataco-Guaicuru"] = "sai-mgc",
["Matacoan"] = "sai-mtc",
["May Kiri"] = "paa-lma",
["Maya"] = "myn",
["Maybratik"] = "paa-may",
["Mazanderani-Shahmirzadi"] = "ira-msh",
["Mazatecan"] = "omq-maz",
["Mba"] = "nic-mbc",
["Mbaham-Iha"] = "paa-mbi",
["Mbaka"] = "nic-nkm",
["Mbam"] = "nic-mba",
["Mbam Barat"] = "nic-mbw",
["Mbete"] = "bnt-mbt",
["Mbeya"] = "bnt-mby",
["Mbinga"] = "bnt-mbi",
["Mbole-Enya"] = "bnt-mbe",
["Mboshi"] = "bnt-mbo",
["Mboshi-Buja"] = "bnt-mbb",
["Mbugwe-Rangi"] = "bnt-mra",
["Mbum"] = "alv-mbm",
["Mbum-Day"] = "alv-mbd",
["Media"] = "xme",
["Medo-Parthia"] = "ira-mpr",
["Mek"] = "ngf-mek",
["Mel"] = "alv-mel",
["Melayik"] = "poz-mly",
["Melayu-Chamik"] = "poz-mcm",
["Melayu-Polinesia"] = "poz",
["Melayu-Polinesia Tengah-Timur"] = "poz-cet",
["Melayu-Polinesia Timur"] = "pqe",
["Melayu-Sumbawa"] = "poz-msa",
["Mesir"] = "egx",
["Mey-Sartang"] = "sit-khm",
["Mian-Suganga"] = "ngf-msu",
["Midzu"] = "sit-mdz",
["Mienik"] = "hmx-mie",
["Mijikenda"] = "bnt-mij",
["Mikronesia"] = "poz-mic",
["Min"] = "zhx-min",
["Min Pantai"] = "zhx-com",
["Min Pedalaman"] = "zhx-inm",
["Min Selatan"] = "zhx-nan",
["Mindjim"] = "ngf-min",
["Mirndi"] = "aus-mir",
["Misumalpan"] = "nai-min",
["Mixe-Zoquean"] = "nai-miz",
["Mixtec"] = "omq-mxt",
["Mixtecan"] = "omq-mix",
["Mokole"] = "dmn-mok",
["Mombum"] = "ngf-mom",
["Momo"] = "nic-mom",
["Mon-Khmer"] = "mkh",
["Mondzish"] = "sit-mnz",
["Mongo"] = "bnt-mon",
["Mongolik"] = "xgn",
["Mongolik Selatan"] = "xgn-sou",
["Mongolik Tengah"] = "xgn-cen",
["Monguor"] = "mjg",
["Monik"] = "mkh-mnc",
["Monumbo"] = "paa-mon",
["Mordvinik"] = "urj-mdv",
["Moru-Madi"] = "csu-mma",
["Moré"] = "nic-mre",
["Mruik"] = "sit-mru",
["Muji"] = "tbq-muj",
["Mumuye"] = "alv-mum",
["Mumuye-Yendang"] = "alv-mye",
["Muna-Buton"] = "poz-mun",
["Munda"] = "mun",
["Munji-Yidgha"] = "ira-mny",
["Muran"] = "sai-mur",
["Muria"] = "dra-mur",
["Muskogean"] = "nai-mus",
["Mwika"] = "bnt-mwi",
["Na-Dene"] = "xnd",
["Na-Togo"] = "alv-ntg",
["Nadahup"] = "sai-nad",
["Naga Tengah"] = "sit-aao",
["Naga Utara"] = "sit-kon",
["Nahuan"] = "azc-nah",
["Nahuatl Durango"] = "azc-dur",
["Nahuatl Huasteca"] = "azc-hua",
["Naik"] = "sit-nax",
["Naish"] = "sit-nas",
["Nakh"] = "cau-nkh",
["Nalu"] = "alv-nal",
["Nambikwaran"] = "sai-nmk",
["Nambu"] = "paa-nam",
["Namla-Tofanma"] = "paa-nto",
["Nanaik"] = "tuw-nan",
["Nandi-Markweta"] = "sdv-nma",
["Nanga-Walo"] = "nic-nwa",
["Nasoid"] = "tbq-nas",
["Navarro-Aragonese"] = "roa-nar",
["Nawiki"] = "awd-nwk",
["Ndeiram"] = "ngf-nde",
["Ndu"] = "paa-ndu",
["Ndu Nuklear"] = "paa-nnd",
["Ndzem-Bomwali"] = "bnt-ndb",
["Nenets"] = "yrk",
["Neo-Aramia Tengah"] = "sem-cna",
["Neo-Aramia Timur Laut"] = "sem-nna",
["New South Wales Tengah"] = "aus-cww",
["Newarik"] = "sit-new",
["Ngalik-Nduga"] = "ngf-ngn",
["Ngayarda"] = "aus-nga",
["Ngbaka"] = "nic-ngk",
["Ngbaka Barat"] = "nic-nkw",
["Ngbaka Timur"] = "nic-nke",
["Ngbandi"] = "nic-ngd",
["Ngemba"] = "nic-nge",
["Ngkolmpu"] = "paa-ngk",
["Ngondi-Ngiri"] = "bnt-ngn",
["Nguni"] = "bnt-ngu",
["Nicobarese"] = "aav-nic",
["Niger-Congo"] = "nic",
["Nilo-Sahara"] = "ssa",
["Nilotik"] = "sdv-nil",
["Nilotik Barat"] = "sdv-niw",
["Nilotik Selatan"] = "sdv-nis",
["Nilotik Timur"] = "sdv-nie",
["Nimboran"] = "paa-nim",
["Ninzik"] = "nic-nin",
["Nisoish"] = "tbq-nso",
["Nisu"] = "tbq-nis",
["Nkambe"] = "nic-nka",
["Nubia"] = "nub",
["Nubia Bukit"] = "nub-hil",
["Numic"] = "azc-num",
["Numugen"] = "ngf-num",
["Nun"] = "nic-nun",
["Nungish"] = "sit-nng",
["Nupe-Gbagyi"] = "alv-ngb",
["Nupoid"] = "alv-nup",
["Nuristani"] = "iir-nur",
["Nuristani Selatan"] = "nur-sou",
["Nuristani Utara"] = "nur-nor",
["Nuru"] = "ngf-nur",
["Nusoish"] = "tbq-nus",
["Nwa-Beng"] = "dmn-nbe",
["Nyali"] = "bnt-nya",
["Nyanga-Buyi"] = "bnt-nyb",
["Nyasa"] = "bnt-nys",
["Nyima"] = "sdv-nyi",
["Nyoro-Ganda"] = "bnt-nyg",
["Nyulnyulan"] = "aus-nyu",
["Nyun"] = "alv-nyn",
["Nzebi"] = "bnt-nze",
["Occitano-Romance"] = "roa-ocr",
["Oceania"] = "poz-oce",
["Oceania Barat"] = "poz-ocw",
["Oceania Selatan"] = "poz-ocs",
["Oceania Tengah-Timur"] = "poz-occ",
["Oghur"] = "trk-ogr",
["Oghuz"] = "trk-ogz",
["Ogoni"] = "nic-ogo",
["Ok"] = "ngf-okk",
["Ok Barat"] = "ngf-wok",
["Ok Pergunungan"] = "ngf-mok",
["Ok Tanah Rendah"] = "ngf-lok",
["Ometo"] = "omv-ome",
["Ometo Timur"] = "omv-eom",
["Ometo Utara"] = "omv-nom",
["Omosan"] = "ngf-omo",
["Omotik"] = "omv",
["Ongan"] = "qfa-ong",
["Ormuri-Parachi"] = "ira-orp",
["Orokaivik"] = "ngf-oro",
["Osko-Umbria"] = "itc-sbl",
["Oti-Volta"] = "nic-ovo",
["Oti-Volta Barat"] = "nic-wov",
["Oti-Volta Timur"] = "nic-eov",
["Oto-Manguean"] = "omq",
["Oto-Pamean"] = "omq-otp",
["Otomacoan"] = "sai-otm",
["Otomi"] = "oto-otm",
["Otomian"] = "oto",
["Ottilien"] = "paa-ott",
["Ovambo"] = "bnt-ova",
["Oïl"] = "roa-oil",
["Pahari"] = "inc-pah",
["Pahari Barat"] = "him",
["Pahari Tengah"] = "inc-pac",
["Pahari Timur"] = "inc-pae",
["Pakanik"] = "mkh-pkn",
["Pakawan"] = "nai-pak",
["Palaihnihan"] = "nai-pal",
["Palaungik"] = "mkh-pal",
["Palei"] = "paa-pal",
["Pama-Nyungan"] = "aus-pam",
["Pama-Nyungan Barat Daya"] = "aus-psw",
["Paman"] = "aus-pmn",
["Pano-Tacanan"] = "sai-pat",
["Panoan"] = "sai-pan",
["Papel"] = "alv-pap",
["Papua"] = "paa",
["Para-Mongolik"] = "qfa-xgx",
["Pare"] = "bnt-par",
["Parji-Gadaba"] = "dra-pgd",
["Parukotoan"] = "sai-prk",
["Pashayi"] = "inc-pas",
["Pasifik Tengah"] = "poz-pcc",
["Pathan"] = "ira-pat",
["Pauwasi Barat"] = "paa-wpw",
["Pauwasi Timur"] = "paa-epw",
["Pearik"] = "mkh-pea",
["Peba-Yaguan"] = "sai-pey",
["Peka"] = "ngf-pek",
["Pekodian"] = "sai-pek",
["Pemongan"] = "sai-pem",
["Penara"] = "nic-plt",
["Penara Selatan"] = "nic-pls",
["Penara Tengah"] = "nic-plc",
["Penara Timur"] = "nic-ple",
["Pende"] = "bnt-pen",
["Penutian Penara"] = "nai-plp",
["Pergunungan Ghana-Togo"] = "alv-gtm",
["Permik"] = "urj-prm",
["Pesisir Rai"] = "ngf-rai",
["Phla-Pherá"] = "alv-pph",
["Phowa"] = "tbq-phw",
["Phula Hilir Sungai"] = "tbq-drp",
["Phula Hulu Sungai"] = "tbq-urp",
["Phula Sungai"] = "tbq-rph",
["Phula Tanah Tinggi"] = "tbq-hph",
["Piawi"] = "paa-pia",
["Piman"] = "azc-pim",
["Pinghua"] = "zhx-pin",
["Platoid"] = "nic-pla",
["Pnar-Khasi-Lyngngam"] = "aav-pkl",
["Polinesia"] = "poz-pol",
["Polinesia Nuklear"] = "poz-pnp",
["Polinesia Timur"] = "poz-pep",
["Pomerania"] = "zlw-pom",
["Pomo-Bomwali"] = "bnt-pob",
["Pomoan"] = "nai-pom",
["Pomoikan"] = "ngf-pom",
["Popolocan"] = "omq-pop",
["Porapora"] = "paa-por",
["Potou-Tano"] = "alv-ptn",
["Pumpokolik"] = "qfa-ypm",
["Punjabik"] = "inc-pan",
["Qiangik"] = "sit-qia",
["Quechuan"] = "qwe",
["Rajasthani"] = "raj",
["Ramu"] = "paa-ram",
["Ramu Bawah"] = "paa-lra",
["Rasawa-Saponi"] = "paa-rsa",
["Rashad"] = "nic-ras",
["Rgyalrongik"] = "sit-rgy",
["Rhaeto-Romance"] = "roa-rhe",
["Ring"] = "nic-rng",
["Ring Barat"] = "nic-rnw",
["Ring Tengah"] = "nic-rnc",
["Ring Utara"] = "nic-rnn",
["Romance"] = "roa",
["Romance Barat"] = "roa-wes",
["Romance Dalmatia"] = "roa-dal",
["Romance Italo-Barat"] = "roa-iwr",
["Romance Selatan"] = "roa-sou",
["Romance Timur"] = "roa-eas",
["Romani"] = "inc-rom",
["Ruboni"] = "paa-rub",
["Rufiji-Ruvuma"] = "bnt-rur",
["Rukwa"] = "bnt-ruk",
["Rungwe"] = "bnt-run",
["Ruvu"] = "bnt-ruv",
["Ruvuma"] = "bnt-rvm",
["Ryukyu"] = "jpx-ryu",
["Ryukyu Selatan"] = "jpx-sry",
["Ryukyu Utara"] = "jpx-nry",
["Sabahan"] = "poz-san",
["Sabaki"] = "bnt-sab",
["Sabakor"] = "ngf-sab",
["Sabi"] = "bnt-sbi",
["Sac-Fox-Kickapoo"] = "alg-sfk",
["Sadanik"] = "inc-sad",
["Sahaptian"] = "nai-shp",
["Sahara"] = "ssa-sah",
["Sahu"] = "paa-sah",
["Saka"] = "xsc-sak",
["Saka-Wakhi"] = "xsc-skw",
["Sal"] = "tbq-bkj",
["Salish"] = "sal",
["Saluan-Banggai"] = "poz-slb",
["Sama-Bajaw"] = "poz-sbj",
["Samarokena-Airoran"] = "paa-saa",
["Sami"] = "smi",
["Samo"] = "dmn-sam",
["Samogo"] = "dmn-smg",
["Samoyed"] = "syd",
["Samur"] = "cau-sam",
["Samur Barat"] = "cau-wsm",
["Samur Selatan"] = "cau-ssm",
["Samur Timur"] = "cau-esm",
["Sanglechi-Ishkashimi"] = "ira-sgi",
["Sankwep"] = "ngf-san",
["Sara"] = "csu-sar",
["Sarawak Utara"] = "poz-swa",
["Sarmatia"] = "xsc-sar",
["Sau-Angal-Kewa"] = "ngf-sak",
["Savanna"] = "alv-sav",
["Sawabantu"] = "bnt-saw",
["Scandinavia Barat"] = "gmq-wes",
["Scandinavia Kepulauan"] = "gmq-ins",
["Scandinavia Timur"] = "gmq-eas",
["Scythia"] = "xsc",
["Selkup"] = "sel",
["Semitik"] = "sem",
["Semitik Barat"] = "sem-wes",
["Semitik Barat Laut"] = "sem-nwe",
["Semitik Habsyah"] = "sem-eth",
["Semitik Tengah"] = "sem-cen",
["Semitik Timur"] = "sem-eas",
["Sena"] = "bnt-sna",
["Senagi"] = "paa-sng",
["Senari"] = "alv-snr",
["Senegambia"] = "alv-sng",
["Sentani"] = "paa-sen",
["Senufo"] = "alv-snf",
["Sepik"] = "paa-sep",
["Sepik Bawah"] = "paa-lse",
["Serbi-Mongolik"] = "qfa-xgs",
["Sere"] = "nic-ser",
["Seuta"] = "bnt-seu",
["Shastan"] = "nai-shs",
["Shi-Havu"] = "bnt-shh",
["Shinaik"] = "inc-shn",
["Shirongolik"] = "xgn-shr",
["Shiroro"] = "nic-shi",
["Shona"] = "bnt-sho",
["Shughni-Roshani"] = "ira-shr",
["Shughni-Yazghulami"] = "ira-shy",
["Shughni-Yazghulami-Munji"] = "ira-sym",
["Siangik Raya"] = "sit-gsi",
["Siloid"] = "tbq-sil",
["Simbu"] = "ngf-sim",
["Sindhik"] = "inc-snd",
["Sinitik"] = "zhx",
["Sino-Bai"] = "sit-sba",
["Sino-Tibet"] = "sit",
["Siouan"] = "sio",
["Siouan Lembah Mississippi"] = "sio-msv",
["Siouan Lembah Ohio"] = "sio-ohv",
["Siouan Sungai Missouri"] = "sio-mor",
["Siouan-Catawban"] = "nai-sca",
["Sira"] = "bnt-sir",
["Sisaala"] = "nic-sis",
["Sko"] = "paa-sko",
["Sko Pedalaman"] = "paa-isk",
["Slav"] = "sla",
["Slav Barat"] = "zlw",
["Slav Selatan"] = "zls",
["Slav Timur"] = "zle",
["Slavey"] = "den",
["Sogdik"] = "ira-sgc",
["Sogdo-Bactria"] = "ira-sbc",
["Sogeram"] = "ngf-sog",
["Sogeram Barat"] = "ngf-wso",
["Sogeram Timur"] = "ngf-eso",
["Sogeram Utara"] = "ngf-nso",
["Soko-Kele"] = "bnt-ske",
["Solomon Tenggara"] = "poz-sls",
["Somaloid"] = "cus-som",
["Songhay"] = "son",
["Soninke-Bobo"] = "dmn-snb",
["Sopac"] = "ngf-sop",
["Sorbia"] = "wen",
["Sotho-Tswana"] = "bnt-sts",
["St. Matthias"] = "poz-stm",
["Strickland Timur"] = "ngf-est",
["Sudanik Tengah"] = "csu",
["Sudanik Tengah Timur"] = "csu-ecs",
["Sudanik Timur"] = "sdv",
["Sudanik Timur Bahagian Utara"] = "sdv-nes",
["Sulawesi Selatan"] = "poz-ssw",
["Sumatera Barat Laut"] = "poz-nws",
["Sungai Bulaka"] = "paa-bul",
["Sungai Pahoturi"] = "paa-pah",
["Sungai Piore"] = "paa-pio",
["Supyire-Mamara"] = "alv-sma",
["Susu-Yalunka"] = "dmn-sya",
["Swahili"] = "bnt-swh",
["Ta-Arawak"] = "awd-taa",
["Tacanan"] = "sai-tac",
["Tagwana-Djimini"] = "alv-tdj",
["Tai"] = "tai",
["Tai Barat Daya"] = "tai-swe",
["Tai Chongzuo"] = "tai-cho",
["Tai Sapa-Barat Daya"] = "tai-sap",
["Tai Tengah"] = "tai-cen",
["Tai Utara"] = "tai-nor",
["Tai Wenma-Barat Daya"] = "tai-wen",
["Taikat-Awyi"] = "paa-taa",
["Tainae-Akoye"] = "ngf-taa",
["Tairora"] = "ngf-tai",
["Takama"] = "bnt-tkm",
["Takic"] = "azc-tak",
["Talodi"] = "alv-tal",
["Talodi-Heiban"] = "alv-the",
["Taloid"] = "tbq-tal",
["Taman"] = "sdv-tmn",
["Tamangik"] = "sit-tam",
["Tamil-Kannada"] = "dra-tkn",
["Tamil-Kodagu"] = "dra-tkd",
["Tamil-Malayalam"] = "dra-tml",
["Tamiloid"] = "dra-tam",
["Tamolan"] = "paa-tam",
["Tangkhul-Maring"] = "sit-tma",
["Tangkhulik"] = "sit-tng",
["Tangkic"] = "aus-tnk",
["Tangko-Nakai"] = "ngf-tna",
["Tangsa-Nocte"] = "sit-tno",
["Tani"] = "sit-tan",
["Tano Tengah"] = "alv-ctn",
["Taracahitic"] = "azc-trc",
["Taranoan"] = "sai-tar",
["Tarokoid"] = "nic-tar",
["Tasik Paniai"] = "ngf-pan",
["Tatik"] = "xme-ttc",
["Teberan"] = "paa-teb",
["Teke"] = "bnt-tek",
["Teke Tengah"] = "bnt-tkc",
["Teke-Mbede"] = "bnt-tmb",
["Teluguik"] = "dra-tel",
["Teluk Geelvink Timur"] = "paa-egb",
["Teluk Pedalaman"] = "paa-ing",
["Teluk Pedalaman Barat"] = "paa-wig",
["Temotu"] = "poz-tem",
["Tenda"] = "alv-ten",
["Tequistlatecan"] = "nai-tqn",
["Ternate-Tidore"] = "paa-tti",
["Teso-Turkana"] = "sdv-ttu",
["Tetela"] = "bnt-tet",
["Tharu"] = "inc-tha",
["Tibetik"] = "sit-tib",
["Tibeto-Burma"] = "tbq",
["Tiboran"] = "ngf-tib",
["Ticuna-Yuri"] = "sai-tyu",
["Timor Timur"] = "paa-eti",
["Timor-Alor-Pantar"] = "paa-tap",
["Timorik"] = "poz-tim",
["Tiniguan"] = "sai-tin",
["Tirio"] = "paa-tir",
["Tivoid"] = "nic-tiv",
["Tivoid Tengah"] = "nic-tvc",
["Tivoid Utara"] = "nic-tvn",
["Toda-Kota"] = "dra-tkt",
["Tokharia"] = "ine-toc",
["Tomini-Tolitoli"] = "poz-tot",
["Tonda"] = "paa-ton",
["Tongik"] = "poz-ton",
["Tor"] = "paa-tor",
["Tor-Orya"] = "paa-too",
["Torricelli"] = "paa-trr",
["Totonakan"] = "nai-ttn",
["Totozoquean"] = "nai-tot",
["Trans-Fly Timur"] = "paa-etf",
["Trans-New Guinea"] = "ngf",
["Triqui"] = "omq-tri",
["Tsezian"] = "cau-tsz",
["Tsezian Barat"] = "cau-wts",
["Tsezian Timur"] = "cau-ets",
["Tshangla"] = "sit-tsk",
["Tsimshianik"] = "nai-tsi",
["Tsogo"] = "bnt-tso",
["Tswa-Ronga"] = "bnt-tsr",
["Tucanoan"] = "sai-tuc",
["Tujia"] = "sit-tja",
["Tulu-Koraga"] = "dra-tlk",
["Tungusik"] = "tuw",
["Tupi"] = "tup",
["Tupi-Guarani"] = "tup-gua",
["Turama-Kikori"] = "paa-tki",
["Turkik"] = "trk",
["Turkik Sepunya"] = "trk-cmn",
["Turkik Siberia"] = "trk-sib",
["Turkik Siberia Selatan"] = "trk-ssb",
["Turkik Siberia Utara"] = "trk-nsb",
["Tuu"] = "khi-tuu",
["Tyrsenian"] = "qfa-tyn",
["Tày"] = "tai-tay",
["Ubangian"] = "nic-ubg",
["Udegheik"] = "tuw-udg",
["Ugrik"] = "urj-ugr",
["Uralik"] = "urj",
["Uru-Chipaya"] = "sai-ucp",
["Uruwa"] = "ngf-uru",
["Utian"] = "nai-utn",
["Uto-Aztecan"] = "azc",
["Utu-Silopi"] = "ngf-usi",
["Vai-Kono"] = "dmn-vak",
["Vainakh"] = "cau-vay",
["Vale"] = "csu-val",
["Vanuatu Selatan"] = "poz-vns",
["Vanuatu Tengah"] = "poz-vnc",
["Vanuatu Utara"] = "poz-vnn",
["Vaskonik"] = "euq",
["Vietik"] = "mkh-vie",
["Volta-Congo"] = "nic-vco",
["Volta-Niger"] = "alv-von",
["Wahgi"] = "ngf-wah",
["Waja-Kam"] = "alv-wjk",
["Wakashan"] = "wak",
["Walio"] = "paa-wal",
["Wantoat-Awara"] = "ngf-waa",
["Wantoatik"] = "ngf-wan",
["Wapei"] = "paa-wap",
["Wapei-Palei"] = "paa-wpa",
["Wara-Natyoro"] = "alv-wan",
["Waris"] = "paa-war",
["Warup"] = "ngf-war",
["Wee"] = "kro-wee",
["Wichí"] = "sai-wic",
["Wintuan"] = "nai-wtq",
["Witotoan"] = "sai-wit",
["Wojokesik"] = "ngf-woj",
["Worrorran"] = "aus-wor",
["Wotu-Wolio"] = "poz-wot",
["Wára-Kómnzo"] = "paa-wko",
["Xincan"] = "nai-xin",
["Yaganon"] = "ngf-yag",
["Yaka"] = "bnt-yak",
["Yali"] = "ngf-yal",
["Yam"] = "paa-yam",
["Yambasa"] = "nic-ymb",
["Yangmanic"] = "aus-yng",
["Yanomami"] = "sai-ynm",
["Yaqayik"] = "paa-yaq",
["Yareban"] = "ngf-yar",
["Yasa-Kombe"] = "bnt-yko",
["Yau-Nungon"] = "ngf-ynu",
["Yawa-Saweru"] = "paa-ysa",
["Yekhee"] = "alv-yek",
["Yeniseian"] = "qfa-yen",
["Yidinyic"] = "aus-yid",
["Yok-Utian"] = "nai-you",
["Yokuts"] = "yok",
["Yolngu"] = "aus-yol",
["Yom-Nawdm"] = "nic-yon",
["Yoruba"] = "alv-yor",
["Yoruboid"] = "alv-yrd",
["Yuat"] = "paa-yua",
["Yue"] = "zhx-yue",
["Yuin-Kuric"] = "aus-yuk",
["Yukaghir"] = "qfa-yuk",
["Yukian"] = "nai-ykn",
["Yukpan"] = "sai-yuk",
["Yukubenik"] = "nic-ykb",
["Yuman-Cochimí"] = "nai-yuc",
["Yungur"] = "alv-yun",
["Yupik"] = "ypk",
["Yupna"] = "ngf-yup",
["Zamba-Binza"] = "bnt-zbi",
["Zamucoan"] = "sai-zam",
["Zan"] = "ccs-zan",
["Zande"] = "znd",
["Zaparoan"] = "sai-zap",
["Zapotec"] = "omq-zpc",
["Zapotecan"] = "omq-zap",
["Zaza-Gorani"] = "ira-zgr",
["Zeme"] = "sit-zem",
["bahasa isyarat"] = "sgn",
["bercampur"] = "qfa-mix",
["buatan"] = "art",
["bukan satu keluarga"] = "qfa-not",
["kontak"] = "qfa-cnt",
["kreol"] = "qfa-cre",
["kreol atau pidgin"] = "crp",
["pencilan"] = "qfa-iso",
["pertalian yang dipertikaikan"] = "qfa-dis",
["pidgin"] = "qfa-pid",
["rGyalrongik Barat"] = "sit-wgy",
["rGyalrongik Timur"] = "sit-egy",
["substrat"] = "qfa-sub",
["tidak dapat dikelaskan"] = "qfa-unc",
}
cbqjztd4yjknpjzmsvs64okjb8f9qxq
Modul:etymology languages/canonical names
828
34639
373519
280834
2026-09-11T03:05:14Z
SNN95
2113
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373519
Scribunto
text/plain
return {
["Abhiri"] = "pra-abh",
["Abron"] = "abr",
["Achterhooks"] = "act",
["Afridi"] = "ps-afr",
["Ainu Hokkaido"] = "ain-hok",
["Ainu Kuril"] = "ain-kur",
["Ainu Sakhalin"] = "ain-sak",
["Akan Fante"] = "fat",
["Akan Twi"] = "tw",
["Akkadia Kuno"] = "akk-old",
["Albania Arbëresh"] = "aae",
["Albania Arvanitika"] = "aat",
["Albania Gheg"] = "aln",
["Albania Tosk"] = "als",
["Anbarani"] = "tly-anb",
["Anglo-Norman"] = "xno",
["Apabhramsa Gurjara"] = "inc-agu",
["Apabhramsa Kasmiri"] = "inc-aka",
["Apabhramsa Maharastri"] = "inc-ama",
["Apabhramsa Sauraseni"] = "inc-asa",
["Apabhramsa Takka"] = "inc-ata",
["Apabhramsa Vracada"] = "inc-avr",
["Aquitanian"] = "xaq",
["Arab Khuzestan"] = "acm-khu",
["Arab Levant Utara Aleppo"] = "apc-ale",
["Arab Levant Utara Damsyik"] = "apc-dam",
["Arab Levant Utara Lubnan"] = "apc-leb",
["Arab Levant Utara Lubnan Selatan"] = "apc-sle",
["Arab Levant Utara Lubnan Utara"] = "apc-nle",
["Arab Levant Utara Syria"] = "apc-syr",
["Arab-Yahudi"] = "jrb",
["Aram Babilonia Yahudi"] = "tmr",
["Aram Biblikal"] = "arc-bib",
["Aram Empayar"] = "arc-imp",
["Aram Hatra"] = "arc-hat",
["Aram Kuno"] = "arc-old",
["Aram Nabatea"] = "arc-nab",
["Aram Palestin Kristian"] = "arc-cpa",
["Aram Palestin Yahudi"] = "jpa",
["Aram Palmyra"] = "arc-pal",
["Aram Sastera Yahudi"] = "arc-jla",
["Arghu"] = "klj-arg",
["Armenia Barat"] = "hyw",
["Armenia Timur"] = "hye",
["Asalemi"] = "tly-asa",
["Assam Kamrupi Barpetia"] = "as-bkm",
["Assam Kamrupi Nalbaria"] = "as-nkm",
["Assam Kamrupi Palasbaria"] = "as-pkm",
["Asyur Baharu"] = "akk-nas",
["Asyur Kuno"] = "akk-oas",
["Asyur Pertengahan"] = "akk-mas",
["Avahattha"] = "inc-aav",
["Avanti"] = "pra-ava",
["Avestan Kuno"] = "ae-old",
["Avestan Muda"] = "ae-yng",
["Azari Kuno"] = "xme-azr",
["Azerbaijani Klasik"] = "az-cls",
["Babilonia Akhir"] = "akk-lbb",
["Babilonia Baharu"] = "akk-nbb",
["Babilonia Kuno"] = "akk-obb",
["Babilonia Pertengahan"] = "akk-mbb",
["Babilonia Piawai"] = "akk-stb",
["Bahliki"] = "pra-bah",
["Bajui"] = "sgh-baj",
["Balochi Barat"] = "bgn",
["Balochi Selatan"] = "bcc",
["Balochi Timur"] = "bgp",
["Baltik Dnieper"] = "bat-dni",
["Bandari"] = "bsg-ban",
["Bangash"] = "ps-bng",
["Bannu"] = "ps-ban",
["Bantu Umum"] = "bnt-cmn",
["Bartangi"] = "sgh-bar",
["Bartangi-Oroshori"] = "sgh-bro",
["Belanda Belgium"] = "nl-BE",
["Belarus Pertengahan"] = "zle-mbe",
["Bengali Vaṅga Dhakaiya"] = "bn-dvn",
["Bengali Vaṅga Noakhailla"] = "bn-nvn",
["Besemah"] = "pse-bsm",
["Betawi Kota"] = "bew-kot",
["Bhaca"] = "xh-bha",
["Borana"] = "gax",
["Braj Kuno"] = "bra-old",
["Brythonic Akhir"] = "bry-lat",
["Brythonic Awal"] = "bry-ear",
["Bulgar Danube"] = "xbo-dan",
["Bulgar Volga"] = "xbo-vol",
["Bulgaria Pertengahan"] = "cu-bgm",
["Burenjani"] = "fay-bur",
["Bushehri"] = "fay-bsh",
["Camorta"] = "ncb-cam",
["Campidanese"] = "sc-sro",
["Candali"] = "pra-can",
["Capenate"] = "xfa-cap",
["Chuvash Anatri"] = "cv-ana",
["Chuvash Kuno"] = "cv-old",
["Chuvash Pertengahan"] = "cv-mid",
["Chuvash Viryal"] = "cv-vir",
["Ci"] = "lzh-cii",
["Cina Danzhou"] = "zhx-dan",
["Cina Klasik Korea"] = "lzh-KO",
["Cina Klasik Vietnam"] = "lzh-VI",
["Cina Kuno Akhir"] = "och-lat",
["Cina Kuno Awal"] = "och-ear",
["Cina Pertengahan Akhir"] = "ltc-lat",
["Cina Pertengahan Awal"] = "ltc-ear",
["Cina Pra-Klasik"] = "lzh-pre",
["Cina Sastera"] = "lzh-lit",
["Cuman"] = "qwm-cum",
["Czech Moden Awal"] = "cs-ear",
["Daksinatya"] = "pra-dak",
["Danesfani"] = "tks-dan",
["Dari"] = "prs",
["Dashtaki"] = "fay-dsh",
["Davani"] = "fay-dav",
["Dhivehi Addu"] = "dv-add",
["Dhivehi Huvadhu"] = "dv-huv",
["Dhivehi Kuno"] = "dv-old",
["Dhivehi Mulaku"] = "dv-mul",
["Dialek Qibti G"] = "cop-ggg",
["Dialek Qibti J"] = "cop-jjj",
["Dialek Qibti K"] = "cop-kkk",
["Dialek Qibti P"] = "cop-ppp",
["Dramili"] = "pra-dra",
["Drèents"] = "drt",
["Ebrahimabadi"] = "tks-ebr",
["Elamite Achaemenid"] = "elx-ach",
["Elamite Kuno"] = "elx-old",
["Elamite Neo"] = "elx-neo",
["Elamite Pertengahan"] = "elx-mid",
["Emamzada Esmaili"] = "fay-eze",
["Esfarvarini"] = "tks-esf",
["Franco-Provençal Kuno"] = "frp-old",
["Frankish"] = "frk",
["Frisia Utara Amrum"] = "frr-amr",
["Frisia Utara Föhr"] = "frr-foh",
["Frisia Utara Föhr-Amrum"] = "frr-fam",
["Frisia Utara Goesharde"] = "frr-goe",
["Frisia Utara Halligen"] = "frr-hal",
["Frisia Utara Heligoland"] = "frr-hel",
["Frisia Utara Karrharde"] = "frr-kar",
["Frisia Utara Kepulauan"] = "frr-ins",
["Frisia Utara Mooring"] = "frr-moo",
["Frisia Utara Sylt"] = "frr-syl",
["Frisia Utara Tanah Besar"] = "frr-mai",
["Frisia Utara Wiedingharde"] = "frr-wie",
["Friuli Kuno"] = "fur-old",
["Fulfulde Adamawa"] = "fub",
["Fulfulde Bagirmi"] = "fui",
["Fulfulde Borgu"] = "fue",
["Fulfulde Maasina"] = "ffm",
["Fulfulde Niger Barat"] = "fuh",
["Fulfulde Niger Tengah-Timur"] = "fuq",
["Fulfulde Nigeria"] = "fuv",
["Fumani"] = "tly-fum",
["Gaul Cisalpine"] = "xcg",
["Gaul Transalpine"] = "xtg",
["Gavkoshaki"] = "fay-gav",
["Geordie"] = "en-geo",
["Georgia Pertengahan"] = "ka-mid",
["Ghat"] = "thv-ght",
["Ghilzay Tengah"] = "ps-cgi",
["Golyad"] = "bat-gol",
["Goral"] = "pl-gor",
["Grunnegs"] = "gos",
["Gujarati Lisan ud-Dawat"] = "gu-lda",
["Hakka Dabu"] = "hak-dab",
["Hakka Hailu"] = "hak-hai",
["Hakka Hong Kong"] = "hak-HK",
["Hakka Huiyang"] = "hak-hui",
["Hakka Huiyang Malaysia"] = "hak-hui-MY",
["Hakka Meixian"] = "hak-mei",
["Hakka Moden Awal"] = "hak-eam",
["Hakka Sixian"] = "hak-six",
["Hakka Taiwan"] = "hak-TW",
["Hakka Zhao'an"] = "hak-zha",
["Hangzhounese"] = "wuu-han",
["Hanyu Pinyin"] = "cmn-pinyin",
["Havigannada"] = "kn-hav",
["Hazaragi"] = "haz",
["Hindi Bombay"] = "hi-mum",
["Hindi Pertengahan"] = "hi-mid",
["Hittite Kuno"] = "oht",
["Hittite Neo"] = "nei",
["Hittite Pertengahan"] = "htx",
["Hokkien Anxi"] = "nan-anx",
["Hokkien Changtai"] = "nan-cha",
["Hokkien Filipina"] = "nan-hbl-PH",
["Hokkien Hui'an"] = "nan-hui",
["Hokkien Jinjiang"] = "nan-jin",
["Hokkien Kinmen"] = "nan-kin",
["Hokkien Malaysia Selatan"] = "nan-spm",
["Hokkien Medan"] = "nan-med",
["Hokkien Pulau Pinang"] = "nan-pen",
["Hokkien Quanzhou"] = "nan-qua",
["Hokkien Singapura"] = "nan-hbl-SG",
["Hokkien Taiwan"] = "nan-hbl-TW",
["Hokkien Tong'an"] = "nan-ton",
["Hokkien Xiamen"] = "nan-xia",
["Hokkien Yongchun"] = "nan-yon",
["Hokkien Zhangping"] = "nan-zhp",
["Hokkien Zhangzhou"] = "nan-zha",
["Hokkien Zhao'an"] = "nan-zho",
["Hormozi"] = "bsg-hor",
["Ibrani Biblikal"] = "hbo",
["Ibrani Israel"] = "he-IL",
["Ibrani Mishnaik"] = "he-mis",
["Ibrani Pertengahan"] = "he-med",
["Inggeris Aborigin Australia"] = "en-aae",
["Inggeris Afrika Selatan"] = "en-ZA",
["Inggeris Amerika"] = "en-US",
["Inggeris Amerika Utara"] = "en-NNN",
["Inggeris Australia"] = "en-AU",
["Inggeris British"] = "en-GB",
["Inggeris California"] = "en-US-CA",
["Inggeris Hong Kong"] = "en-HK",
["Inggeris India"] = "en-IN",
["Inggeris Ireland"] = "en-IE",
["Inggeris Ireland Utara"] = "en-GB-NIR",
["Inggeris Kanada"] = "en-CA",
["Inggeris Kuno Anglia"] = "ang-ang",
["Inggeris Kuno Kentish"] = "ang-ken",
["Inggeris Kuno Mercia"] = "ang-mer",
["Inggeris Kuno Northumbria"] = "ang-nor",
["Inggeris Kuno Saxon Barat"] = "ang-wsx",
["Inggeris Manx"] = "en-IM",
["Inggeris Moden Awal"] = "en-ear",
["Inggeris New Zealand"] = "en-NZ",
["Inggeris Pertengahan Kentish"] = "enm-ken",
["Inggeris Pertengahan Midlands Barat"] = "enm-wmi",
["Inggeris Pertengahan Midlands Timur"] = "enm-emi",
["Inggeris Pertengahan Selatan"] = "enm-sou",
["Inggeris Pertengahan Utara"] = "enm-nor",
["Inggeris Scotland"] = "en-GB-SCT",
["Inggeris Ulster"] = "en-uls",
["Inggeris Wales"] = "en-GB-WLS",
["Inupiatun Alaska Barat Laut"] = "esk",
["Inupiatun Alaska Utara"] = "esi",
["Jadrani"] = "ps-jad",
["Jepun Klasik"] = "ja-cla",
["Jepun Kuno Timur"] = "ojp-eas",
["Jepun Moden Awal"] = "ja-ear",
["Jepun Pertengahan"] = "ja-mid",
["Jepun Pertengahan Akhir"] = "ja-mid-lat",
["Jepun Pertengahan Awal"] = "ja-mid-ear",
["Jerman Alemannic Alsace"] = "gsw-FR-als",
["Jerman Alemannic Rendah"] = "gsw-low",
["Jerman Alemannic Tertinggi"] = "gsw-hst",
["Jerman Alemannic Tinggi"] = "gsw-hig",
["Jerman Austria"] = "de-AT",
["Jerman Baltik"] = "de-bal",
["Jerman Jerman Rendah"] = "nds-de",
["Jerman Jerman Tengah Timur Silesia"] = "sli",
["Jerman Palatine"] = "pfl",
["Jerman Rendah Frisia Timur"] = "frs",
["Jerman Saxon Atas"] = "sxu",
["Jerman Switzerland"] = "de-CH",
["Jerman Tinggi Baharu Awal"] = "de-ear",
["Jerman Vienna"] = "de-AT-vie",
["Jerman Walser"] = "wae",
["Jirofti"] = "rdb-jir",
["Kabuverdianu ALUPEC"] = "kea-alu",
["Kabuverdianu Barlavento"] = "kea-bar",
["Kabuverdianu Boa Vista"] = "kea-bvi",
["Kabuverdianu Brava"] = "kea-bra",
["Kabuverdianu Fogo"] = "kea-fog",
["Kabuverdianu Maio"] = "kea-mai",
["Kabuverdianu Sal"] = "kea-sal",
["Kabuverdianu Santiago"] = "kea-san",
["Kabuverdianu Santo Antão"] = "kea-saa",
["Kabuverdianu Sotavento"] = "kea-sot",
["Kabuverdianu São Nicolau"] = "kea-sni",
["Kabuverdianu São Vicente"] = "kea-svi",
["Kahnuji"] = "rdb-kah",
["Kakari"] = "ps-kak",
["Kaliarda"] = "el-kal",
["Kamviri"] = "xvi",
["Kandahari"] = "ps-kan",
["Kaniguram"] = "oru-kan",
["Kankanaey Utara"] = "xnn",
["Kantonis Guangzhou"] = "yue-gua",
["Kantonis Hong Kong"] = "yue-HK",
["Kantonis Klasik"] = "lzh-yue",
["Kantonis Sastera"] = "yue-lit",
["Kantonis lisan bertulis"] = "yue-wvc",
["Karelia Selatan"] = "krl-sou",
["Karelia Utara"] = "krl-nor",
["Karganrudi"] = "tly-kar",
["Katchal"] = "ncb-kat",
["Katharevousa"] = "el-kth",
["Kathiyawadi"] = "gu-kat",
["Kativiri"] = "bsh-kat",
["Kazeruni Kuno"] = "fay-kzo",
["Khamba"] = "kbg",
["Khargi"] = "fay-kar",
["Khatak"] = "ps-xat",
["Khiaraji"] = "tks-xia",
["Khmer Kuno Angkor"] = "okz-ang",
["Khmer Kuno Pra-Angkor"] = "okz-pre",
["Khollari"] = "fay-kho",
["Khortha Parnadiya"] = "inc-khr-par",
["Khotanese Akhir"] = "kho-lat",
["Khotanese Kuno"] = "kho-old",
["Khoznini"] = "tks-xoz",
["Khufi"] = "sgh-xuf",
["Khughni"] = "sgh-xug",
["Khughni-Bajui"] = "sgh-xgb",
["Kinyarwanda"] = "rw-kin",
["Kipchak-Armenia"] = "qwm-arm",
["Kipchak-Mamluk"] = "qwm-mam",
["Kirghiz Kuno"] = "otk-kir",
["Kirundi"] = "rw-run",
["Kondazi"] = "fay-kon",
["Konkani Kuno"] = "kok-old",
["Konkani Pertengahan"] = "kok-mid",
["Korea Chungcheong"] = "ko-chu",
["Korea Gangwon"] = "ko-gan",
["Korea Gyeonggi"] = "ko-gyg",
["Korea Gyeongsang"] = "ko-gys",
["Korea Hamgyong"] = "ko-ham",
["Korea Hwanghae"] = "ko-hwa",
["Korea Jeolla"] = "ko-jeo",
["Korea Kuno Akhir"] = "oko-lat",
["Korea Pertengahan Awal"] = "okm-ear",
["Korea Pyongan"] = "ko-pyo",
["Korea Tengah"] = "ko-cen",
["Korea Yukjin"] = "ko-yuk",
["Kosena"] = "kze",
["Kreol Perancis Saint-Domingue"] = "ht-sdm",
["Kromanti"] = "alv-kro",
["Kundagannada"] = "kn-kun",
["Kyrgyz Fuyu"] = "kjh-fyu",
["Kölsch"] = "ksh",
["Ladin Ampezan"] = "lld-amp",
["Ladin Badiot"] = "lld-bad",
["Ladin Cadorino"] = "lld-cad",
["Ladin Fascian"] = "lld-fas",
["Ladin Fodom"] = "lld-fod",
["Ladin Fornes"] = "lld-for",
["Ladin Gherdëina"] = "lld-ghe",
["Ladin Nones"] = "lld-non",
["Lanuvian"] = "itc-lan",
["Latin Abad Pertengahan Awal"] = "la-eme",
["Latin Akhir"] = "la-lat",
["Latin Arkais"] = "itc-ala",
["Latin Baharu"] = "la-new",
["Latin Gereja"] = "la-ecc",
["Latin Klasik"] = "la-cla",
["Latin Kontemporari"] = "la-con",
["Latin Kuno"] = "itc-ola",
["Latin Pembaharuan"] = "la-ren",
["Latin Pertengahan"] = "la-med",
["Latin Vulgar"] = "la-vul",
["Locrian Opuntian"] = "grc-opl",
["Locrian Ozolian"] = "grc-ozl",
["Logar"] = "oru-log",
["Logudorese"] = "sc-src",
["Lombardik"] = "lng",
["Lucania"] = "osc-luc",
["Lunfardo"] = "es-lun",
["Lushootseed Selatan"] = "slh",
["Lushootseed Utara"] = "lut-nor",
["Língua Geral Amazônica"] = "tpw-lga",
["Língua Geral Paulista"] = "tpw-lgp",
["Mahsudi"] = "ps-mah",
["Mandaran Dataran Tengah"] = "cmn-cep",
["Mandarin Awal"] = "cmn-ear",
["Mandarin Barat Daya"] = "cmn-sow",
["Mandarin Beijing"] = "cmn-bei",
["Mandarin Beijingik"] = "cmn-bec",
["Mandarin Filipina"] = "cmn-PH",
["Mandarin Guanzhong"] = "cmn-gua",
["Mandarin Guilin"] = "cmn-gui",
["Mandarin Jianghuai"] = "cmn-jhu",
["Mandarin Klasik"] = "lzh-cmn",
["Mandarin Lanyin"] = "cmn-lan",
["Mandarin Malaysia"] = "cmn-MY",
["Mandarin Nanjing"] = "cmn-nan",
["Mandarin Singapura"] = "cmn-SG",
["Mandarin Taiwan"] = "cmn-TW",
["Mandarin Taiwan Klasik"] = "lzh-cmn-TW",
["Mandarin Tianjin"] = "cmn-tia",
["Mandarin Timur Laut"] = "cmn-noe",
["Mandarin Wuhan"] = "cmn-wuh",
["Mandarin Xining"] = "cmn-xin",
["Mandarin Yangzhou"] = "cmn-yan",
["Mandarin lisan bertulis"] = "cmn-wvc",
["Mansi Barat"] = "mns-wes",
["Mansi Timur"] = "mns-eas",
["Masali"] = "tly-msa",
["Masarami"] = "fay-mas",
["Masulei"] = "tly-msu",
["Melayu Klasik"] = "ms-cla",
["Melayu Kuno"] = "ms-old",
["Mesir Akhir"] = "egy-lat",
["Mesir Kuno"] = "egy-old",
["Mesir Pertengahan"] = "egy-mid",
["Mesir Pertengahan Baharu"] = "egy-nmi",
["Min Houlu"] = "nan-hou",
["Min Qianlu"] = "nan-qia",
["Min Zhongshan"] = "zhx-zho",
["Minabi"] = "bsg-min",
["Mitanni"] = "inc-mit",
["Mohawk Kuno"] = "iro-omo",
["Moldova"] = "ro-MD",
["Mongol Pertengahan Akhir"] = "xng-lat",
["Mongol Pertengahan Awal"] = "xng-ear",
["Mongolia Chakhar"] = "mn-cha",
["Mongolia Khalkha"] = "mn-kha",
["Mongolia Khorchin"] = "mn-khr",
["Mongolia Ordos"] = "mn-ord",
["Mumviri"] = "bsh-mum",
["Nancowry"] = "ncb-nan",
["Ningbonese"] = "wuu-nin",
["Norman Guernsey"] = "nrf-grn",
["Norman Jersey"] = "nrf-jer",
["Norse Barat Kuno"] = "non-own",
["Norse Greenland"] = "non-grn",
["Norse Timur Kuno"] = "non-oen",
["Nuorese"] = "sc-nuo",
["Odri"] = "pra-odr",
["Onondaga Kuno"] = "iro-oon",
["Ontenu"] = "ont",
["Orma"] = "orc",
["Oromo Harar"] = "hae",
["Oroshori"] = "sgh-oro",
["Ossetia Digor"] = "os-dig",
["Ossetia Iron"] = "os-iro",
["Ossetic Kuno"] = "oos",
["Ossetic Kuno Akhir"] = "oos-lat",
["Ossetic Kuno Awal"] = "oos-ear",
["Paleo-Balkan"] = "qsb-bal",
["Paleo-Hispanic"] = "qsb-ibe",
["Palladius"] = "cmn-palladius",
["Papuni"] = "fay-pap",
["Parsi Baharu Awal"] = "fa-ear",
["Parsi Iran"] = "fa-ira",
["Parsi Klasik"] = "fa-cls",
["Parsi Kuno Akhir"] = "peo-lat",
["Parsi Kuno Awal"] = "peo-ear",
["Parsi Pertengahan Akhir"] = "pal-lat",
["Parsi Pertengahan Awal"] = "pal-ear",
["Parsi Pertengahan Manichaean"] = "xmn",
["Pashto Barat Daya"] = "ps-swe",
["Pashto Barat Laut"] = "ps-nwe",
["Pashto Tenggara"] = "ps-sea",
["Pashto Timur Laut"] = "ps-nea",
["Perancis Acadia"] = "fr-aca",
["Perancis Cajun"] = "frc",
["Perancis Kanada"] = "fr-CA",
["Perancis Kuno Picard"] = "fro-pic",
["Perancis Louisiana"] = "fr-lou",
["Perancis Missouri"] = "fr-mis",
["Perancis Switzerland"] = "fr-CH",
["Perancis Utara Kuno"] = "fro-nor",
["Peshawari"] = "ps-pes",
["Piawai Korea Selatan"] = "ko-KR",
["Piawai Korea Utara"] = "ko-KP",
["Pidgin Rusia Kyakhta"] = "crp-cpr-kya",
["Poland Kecil"] = "pl-les",
["Poland Masovia"] = "pl-mas",
["Poland Pertengahan"] = "zlw-mpl",
["Poland Raya"] = "pl-gre",
["Polari"] = "pld",
["Portugis Brazil"] = "pt-BR",
["Portugis Eropah"] = "pt-PT",
["Pracya"] = "pra-pra",
["Praenestine"] = "itc-pra",
["Prakrit Ardhamagadhi"] = "pra-ard",
["Prakrit Helu"] = "pra-hel",
["Prakrit Khasa"] = "pra-kha",
["Prakrit Magadhi"] = "pra-mag",
["Prakrit Maharastri"] = "pra-mah",
["Prakrit Paisaci"] = "pra-pai",
["Prakrit Sauraseni"] = "pra-sau",
["Proto-Anglo-Frisia"] = "gmw-afr-pro",
["Proto-Arinic"] = "qfa-yrn-pro",
["Proto-Baltik"] = "bat-pro",
["Proto-Bulgar"] = "trk-bul-pro",
["Proto-Finno-Permic"] = "urj-fpr-pro",
["Proto-Finno-Ugric"] = "fiu-pro",
["Proto-Indo-Arya Baharu"] = "pra-pro",
["Proto-Indo-Arya Pertengahan"] = "inc-ash-pro",
["Proto-Jerman Laut Utara"] = "gmw-nsg-pro",
["Proto-Ketic"] = "qfa-yke-pro",
["Proto-Kottic"] = "qfa-yko-pro",
["Proto-Oghur"] = "trk-ogr-pro",
["Proto-Oghuz"] = "trk-ogz-pro",
["Proto-Pumpokolic"] = "qfa-ypm-pro",
["Proto-Romance"] = "roa-pro",
["Proto-Tibeto-Burman"] = "tbq-pro",
["Proto-Turkic Sepunya"] = "trk-cmn-pro",
["Prusia Rendah"] = "nds-lpr",
["Pskov Kuno"] = "zle-ops",
["Puisi Cina Tradisional"] = "lzh-shi",
["Pulaar"] = "fuc",
["Pular"] = "fuf",
["Punjabi Barat"] = "pnb",
["Qashqai"] = "qxq",
["Qibti Akhmimik"] = "cop-akh",
["Qibti Bohairik"] = "cop-boh",
["Qibti Fayyumik"] = "cop-fay",
["Qibti Hermopolitan"] = "cop-her",
["Qibti Kuno"] = "cop-old",
["Qibti Lycopolitan"] = "cop-lyc",
["Qibti Oxyrhynchite"] = "cop-oxy",
["Qibti Proto-Lycopolitan"] = "cop-ply",
["Qibti Sahidik"] = "cop-sah",
["Romance Afrika"] = "la-afr",
["Romansh Kuno"] = "rm-old",
["Romansh Puter"] = "rm-put",
["Romansh Surmiran"] = "rm-srm",
["Romansh Sursilvan"] = "rm-srs",
["Romansh Sutsilvan"] = "rm-sut",
["Romansh Vallader"] = "rm-val",
["Roshani"] = "sgh-ros",
["Roshani-Khufi"] = "sgh-rsx",
["Rumantsch Grischun"] = "rm-gri",
["Rumi Pos"] = "zh-postal",
["Rusia Pertengahan"] = "zle-mru",
["Sabari"] = "pra-sab",
["Sagzabadi"] = "tks-sag",
["Sakari"] = "pra-sak",
["Sallaands"] = "sdz",
["Samghani"] = "fay-sam",
["Samnite"] = "osc-sam",
["Sanskrit Baharu"] = "sa-neo",
["Sanskrit Brahman"] = "sa-bra",
["Sanskrit Epik"] = "sa-epi",
["Sanskrit Hibrid Buddha"] = "sa-bhs",
["Sanskrit Klasik"] = "cls",
["Sanskrit Rigveda"] = "sa-rig",
["Sanskrit Veda"] = "vsn",
["Sardinia Kuno"] = "sc-old",
["Saxon Rendah Belanda"] = "nds-nl",
["Scots Awal"] = "enm-esc",
["Scots Kepulauan"] = "sco-ins",
["Scots Selatan"] = "sco-sou",
["Scots Ulster"] = "sco-uls",
["Scots Utara"] = "sco-nor",
["Sepanyol Amerika Syarikat"] = "es-US",
["Sepanyol Bolivia"] = "es-BO",
["Sepanyol Chile"] = "es-CL",
["Sepanyol Colombia"] = "es-CO",
["Sepanyol Cuba"] = "es-CU",
["Sepanyol Filipina"] = "es-PH",
["Sepanyol Mexico"] = "es-MX",
["Sepanyol Moden Awal"] = "es-ear",
["Sepanyol Peru"] = "es-PE",
["Sepanyol Puerto Rico"] = "es-PR",
["Sepanyol Rioplatense"] = "es-AR",
["Sepanyol Venezuela"] = "es-VE",
["Serbo-Croatia Chakavian"] = "ckm",
["Serbo-Croatia Kajkavian"] = "kjv",
["Serbo-Croatia Torlakian"] = "sh-tor",
["Shandarmani"] = "tly-san",
["Shanghai"] = "wuu-sha",
["Sher"] = "ps-ser",
["Shirazi"] = "fay-shr",
["Shirazi Kuno"] = "fay-sho",
["Sinhalese Pertengahan"] = "si-med",
["Skagit"] = "ska",
["Slavik Gereja Rusia"] = "zls-chs-ru",
["Slavik Gereja Ukraine"] = "zls-chs-uk",
["Snohomish"] = "sno",
["Sogdian Akhir"] = "sog-lat",
["Sogdian Awal"] = "sog-ear",
["Sorkhi"] = "fay-sor",
["Stellingwarfs"] = "stl",
["Suevik"] = "gem-sue",
["Suzhounese"] = "wuu-suz",
["Sweden Kuno Akhir"] = "gmq-osw-lat",
["Tagalog Klasik"] = "tl-cls",
["Tagalog Kuno"] = "tl-old",
["Taishanese Klasik"] = "lzh-tai",
["Taishanese lisan bertulis"] = "zhx-tai-wvc",
["Takestani"] = "tks-tak",
["Taleshdulabi"] = "tly-tal",
["Talysh Azerbaijan"] = "tly-aze",
["Talysh Selatan"] = "tly-sou",
["Talysh Tengah"] = "tly-cen",
["Talysh Utara"] = "tly-nor",
["Tamahaq"] = "thv",
["Tamasheq"] = "taq",
["Tamil Pertengahan"] = "ta-mid",
["Tashelhit Pertengahan"] = "shi-med",
["Tatar Dobruja"] = "crh-dbj",
["Tati Barat"] = "xme-ttc-wes",
["Tati Chali"] = "tks-cal",
["Tati Selatan"] = "xme-ttc-sou",
["Tati Tengah"] = "xme-ttc-cen",
["Tati Timur"] = "xme-ttc-eas",
["Tati Utara"] = "xme-ttc-nor",
["Tawellemmet"] = "ttq",
["Tayert"] = "thz",
["Thai Kuno"] = "th-old",
["Thai Kuno Ayutthaya"] = "th-ayu",
["Thai Kuno Sukhothai"] = "th-suk",
["Tibetan Amdo"] = "adx",
["Tibetan Khams"] = "khg",
["Tongyong Pinyin"] = "cmn-tongyong",
["Tseku"] = "tsk",
["Tularudi"] = "tly-tul",
["Turkic Orkhon"] = "otk-ork",
["Turkish Cyprus"] = "tr-CY",
["Tweants"] = "twd",
["Twi Akuapem"] = "tw-aku",
["Twi Asante"] = "tw-asa",
["Ukraine Kanada"] = "uk-CA",
["Ukraine Pertengahan"] = "zle-muk",
["Undang-undang Perancis"] = "xno-law",
["Uzbek Afghanistan"] = "uz-afg",
["Valencian"] = "ca-val",
["Veluws"] = "vel",
["Waata"] = "ssn",
["Wade–Giles"] = "cmn-wadegiles",
["Wales Selatan"] = "cy-sou",
["Wales Utara"] = "cy-nor",
["Wasa"] = "wss",
["Waziri"] = "ps-waz",
["Wendat Kuno"] = "iro-ohu",
["Wenzhounese"] = "wuu-wen",
["Westphalia"] = "wep",
["Wu Shadi"] = "wuu-chm",
["Wu Utara"] = "wuu-nor",
["Xiang Baharu"] = "hsn-new",
["Xiang Hengyang"] = "hsn-hya",
["Xiang Hengzhou"] = "hsn-hzh",
["Xiang Kuno"] = "hsn-old",
["Xiang Loudi"] = "hsn-lou",
["Yunani Aeolia"] = "grc-aeo",
["Yunani Arcadia"] = "grc-arc",
["Yunani Arcadocypriot"] = "grc-arp",
["Yunani Attica"] = "grc-att",
["Yunani Boeotia"] = "grc-boi",
["Yunani Byzantine"] = "gkm",
["Yunani Crete"] = "el-crt",
["Yunani Cyprus"] = "el-cyp",
["Yunani Doric"] = "grc-dor",
["Yunani Elea"] = "grc-ela",
["Yunani Epik"] = "grc-epi",
["Yunani Ionia"] = "grc-ion",
["Yunani Koine"] = "grc-koi",
["Yunani Pamphylia"] = "grc-pam",
["Yunani Paphos"] = "el-pap",
["Yunani Pra-Purba"] = "qsb-grc",
["Yunani Purba Crete"] = "grc-kre",
["Yunani Purba Cyprus"] = "grc-cyp",
["Yunani Thessalia"] = "grc-ths",
["Zarphatic"] = "zrp",
["Zhuang Shangsi"] = "tai-shz",
["nama taksonomi"] = "mul-tax",
["substrat BMAC"] = "qsb-bma",
}
rx229qykuyvltyxcwgm8j03qt1tj5dm
Modul:etymology languages/code to canonical name
828
34640
373522
280833
2026-09-11T03:05:14Z
SNN95
2113
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373522
Scribunto
text/plain
return {
["aae"] = "Albania Arbëresh",
["aat"] = "Albania Arvanitika",
["abr"] = "Abron",
["acm-khu"] = "Arab Khuzestan",
["act"] = "Achterhooks",
["adx"] = "Tibetan Amdo",
["ae-old"] = "Avestan Kuno",
["ae-yng"] = "Avestan Muda",
["ain-hok"] = "Ainu Hokkaido",
["ain-kur"] = "Ainu Kuril",
["ain-sak"] = "Ainu Sakhalin",
["akk-lbb"] = "Babilonia Akhir",
["akk-mas"] = "Asyur Pertengahan",
["akk-mbb"] = "Babilonia Pertengahan",
["akk-nas"] = "Asyur Baharu",
["akk-nbb"] = "Babilonia Baharu",
["akk-oas"] = "Asyur Kuno",
["akk-obb"] = "Babilonia Kuno",
["akk-old"] = "Akkadia Kuno",
["akk-stb"] = "Babilonia Piawai",
["aln"] = "Albania Gheg",
["als"] = "Albania Tosk",
["alv-kro"] = "Kromanti",
["ang-ang"] = "Inggeris Kuno Anglia",
["ang-ken"] = "Inggeris Kuno Kentish",
["ang-mer"] = "Inggeris Kuno Mercia",
["ang-nor"] = "Inggeris Kuno Northumbria",
["ang-wsx"] = "Inggeris Kuno Saxon Barat",
["apc-ale"] = "Arab Levant Utara Aleppo",
["apc-dam"] = "Arab Levant Utara Damsyik",
["apc-leb"] = "Arab Levant Utara Lubnan",
["apc-nle"] = "Arab Levant Utara Lubnan Utara",
["apc-sle"] = "Arab Levant Utara Lubnan Selatan",
["apc-syr"] = "Arab Levant Utara Syria",
["arc-bib"] = "Aram Biblikal",
["arc-cpa"] = "Aram Palestin Kristian",
["arc-hat"] = "Aram Hatra",
["arc-imp"] = "Aram Empayar",
["arc-jla"] = "Aram Sastera Yahudi",
["arc-nab"] = "Aram Nabatea",
["arc-old"] = "Aram Kuno",
["arc-pal"] = "Aram Palmyra",
["as-bkm"] = "Assam Kamrupi Barpetia",
["as-nkm"] = "Assam Kamrupi Nalbaria",
["as-pkm"] = "Assam Kamrupi Palasbaria",
["az-cls"] = "Azerbaijani Klasik",
["bat-dni"] = "Baltik Dnieper",
["bat-gol"] = "Golyad",
["bat-pro"] = "Proto-Baltik",
["bcc"] = "Balochi Selatan",
["bew-kot"] = "Betawi Kota",
["bgn"] = "Balochi Barat",
["bgp"] = "Balochi Timur",
["bn-dvn"] = "Bengali Vaṅga Dhakaiya",
["bn-nvn"] = "Bengali Vaṅga Noakhailla",
["bnt-cmn"] = "Bantu Umum",
["bra-old"] = "Braj Kuno",
["bry-ear"] = "Brythonic Awal",
["bry-lat"] = "Brythonic Akhir",
["bsg-ban"] = "Bandari",
["bsg-hor"] = "Hormozi",
["bsg-min"] = "Minabi",
["bsh-kat"] = "Kativiri",
["bsh-mum"] = "Mumviri",
["ca-val"] = "Valencian",
["ckm"] = "Serbo-Croatia Chakavian",
["cls"] = "Sanskrit Klasik",
["cmn-MY"] = "Mandarin Malaysia",
["cmn-PH"] = "Mandarin Filipina",
["cmn-SG"] = "Mandarin Singapura",
["cmn-TW"] = "Mandarin Taiwan",
["cmn-bec"] = "Mandarin Beijingik",
["cmn-bei"] = "Mandarin Beijing",
["cmn-cep"] = "Mandaran Dataran Tengah",
["cmn-ear"] = "Mandarin Awal",
["cmn-gua"] = "Mandarin Guanzhong",
["cmn-gui"] = "Mandarin Guilin",
["cmn-jhu"] = "Mandarin Jianghuai",
["cmn-lan"] = "Mandarin Lanyin",
["cmn-nan"] = "Mandarin Nanjing",
["cmn-noe"] = "Mandarin Timur Laut",
["cmn-palladius"] = "Palladius",
["cmn-pinyin"] = "Hanyu Pinyin",
["cmn-sow"] = "Mandarin Barat Daya",
["cmn-tia"] = "Mandarin Tianjin",
["cmn-tongyong"] = "Tongyong Pinyin",
["cmn-wadegiles"] = "Wade–Giles",
["cmn-wuh"] = "Mandarin Wuhan",
["cmn-wvc"] = "Mandarin lisan bertulis",
["cmn-xin"] = "Mandarin Xining",
["cmn-yan"] = "Mandarin Yangzhou",
["cop-akh"] = "Qibti Akhmimik",
["cop-boh"] = "Qibti Bohairik",
["cop-fay"] = "Qibti Fayyumik",
["cop-ggg"] = "Dialek Qibti G",
["cop-her"] = "Qibti Hermopolitan",
["cop-jjj"] = "Dialek Qibti J",
["cop-kkk"] = "Dialek Qibti K",
["cop-lyc"] = "Qibti Lycopolitan",
["cop-old"] = "Qibti Kuno",
["cop-oxy"] = "Qibti Oxyrhynchite",
["cop-ply"] = "Qibti Proto-Lycopolitan",
["cop-ppp"] = "Dialek Qibti P",
["cop-sah"] = "Qibti Sahidik",
["crh-dbj"] = "Tatar Dobruja",
["crp-cpr-kya"] = "Pidgin Rusia Kyakhta",
["cs-ear"] = "Czech Moden Awal",
["cu-bgm"] = "Bulgaria Pertengahan",
["cv-ana"] = "Chuvash Anatri",
["cv-mid"] = "Chuvash Pertengahan",
["cv-old"] = "Chuvash Kuno",
["cv-vir"] = "Chuvash Viryal",
["cy-nor"] = "Wales Utara",
["cy-sou"] = "Wales Selatan",
["de-AT"] = "Jerman Austria",
["de-AT-vie"] = "Jerman Vienna",
["de-CH"] = "Jerman Switzerland",
["de-bal"] = "Jerman Baltik",
["de-ear"] = "Jerman Tinggi Baharu Awal",
["drt"] = "Drèents",
["dv-add"] = "Dhivehi Addu",
["dv-huv"] = "Dhivehi Huvadhu",
["dv-mul"] = "Dhivehi Mulaku",
["dv-old"] = "Dhivehi Kuno",
["egy-lat"] = "Mesir Akhir",
["egy-mid"] = "Mesir Pertengahan",
["egy-nmi"] = "Mesir Pertengahan Baharu",
["egy-old"] = "Mesir Kuno",
["el-crt"] = "Yunani Crete",
["el-cyp"] = "Yunani Cyprus",
["el-kal"] = "Kaliarda",
["el-kth"] = "Katharevousa",
["el-pap"] = "Yunani Paphos",
["elx-ach"] = "Elamite Achaemenid",
["elx-mid"] = "Elamite Pertengahan",
["elx-neo"] = "Elamite Neo",
["elx-old"] = "Elamite Kuno",
["en-AU"] = "Inggeris Australia",
["en-CA"] = "Inggeris Kanada",
["en-GB"] = "Inggeris British",
["en-GB-NIR"] = "Inggeris Ireland Utara",
["en-GB-SCT"] = "Inggeris Scotland",
["en-GB-WLS"] = "Inggeris Wales",
["en-HK"] = "Inggeris Hong Kong",
["en-IE"] = "Inggeris Ireland",
["en-IM"] = "Inggeris Manx",
["en-IN"] = "Inggeris India",
["en-NNN"] = "Inggeris Amerika Utara",
["en-NZ"] = "Inggeris New Zealand",
["en-US"] = "Inggeris Amerika",
["en-US-CA"] = "Inggeris California",
["en-ZA"] = "Inggeris Afrika Selatan",
["en-aae"] = "Inggeris Aborigin Australia",
["en-ear"] = "Inggeris Moden Awal",
["en-geo"] = "Geordie",
["en-uls"] = "Inggeris Ulster",
["enm-emi"] = "Inggeris Pertengahan Midlands Timur",
["enm-esc"] = "Scots Awal",
["enm-ken"] = "Inggeris Pertengahan Kentish",
["enm-nor"] = "Inggeris Pertengahan Utara",
["enm-sou"] = "Inggeris Pertengahan Selatan",
["enm-wmi"] = "Inggeris Pertengahan Midlands Barat",
["es-AR"] = "Sepanyol Rioplatense",
["es-BO"] = "Sepanyol Bolivia",
["es-CL"] = "Sepanyol Chile",
["es-CO"] = "Sepanyol Colombia",
["es-CU"] = "Sepanyol Cuba",
["es-MX"] = "Sepanyol Mexico",
["es-PE"] = "Sepanyol Peru",
["es-PH"] = "Sepanyol Filipina",
["es-PR"] = "Sepanyol Puerto Rico",
["es-US"] = "Sepanyol Amerika Syarikat",
["es-VE"] = "Sepanyol Venezuela",
["es-ear"] = "Sepanyol Moden Awal",
["es-lun"] = "Lunfardo",
["esi"] = "Inupiatun Alaska Utara",
["esk"] = "Inupiatun Alaska Barat Laut",
["fa-cls"] = "Parsi Klasik",
["fa-ear"] = "Parsi Baharu Awal",
["fa-ira"] = "Parsi Iran",
["fat"] = "Akan Fante",
["fay-bsh"] = "Bushehri",
["fay-bur"] = "Burenjani",
["fay-dav"] = "Davani",
["fay-dsh"] = "Dashtaki",
["fay-eze"] = "Emamzada Esmaili",
["fay-gav"] = "Gavkoshaki",
["fay-kar"] = "Khargi",
["fay-kho"] = "Khollari",
["fay-kon"] = "Kondazi",
["fay-kzo"] = "Kazeruni Kuno",
["fay-mas"] = "Masarami",
["fay-pap"] = "Papuni",
["fay-sam"] = "Samghani",
["fay-sho"] = "Shirazi Kuno",
["fay-shr"] = "Shirazi",
["fay-sor"] = "Sorkhi",
["ffm"] = "Fulfulde Maasina",
["fiu-pro"] = "Proto-Finno-Ugric",
["fr-CA"] = "Perancis Kanada",
["fr-CH"] = "Perancis Switzerland",
["fr-aca"] = "Perancis Acadia",
["fr-lou"] = "Perancis Louisiana",
["fr-mis"] = "Perancis Missouri",
["frc"] = "Perancis Cajun",
["frk"] = "Frankish",
["fro-nor"] = "Perancis Utara Kuno",
["fro-pic"] = "Perancis Kuno Picard",
["frp-old"] = "Franco-Provençal Kuno",
["frr-amr"] = "Frisia Utara Amrum",
["frr-fam"] = "Frisia Utara Föhr-Amrum",
["frr-foh"] = "Frisia Utara Föhr",
["frr-goe"] = "Frisia Utara Goesharde",
["frr-hal"] = "Frisia Utara Halligen",
["frr-hel"] = "Frisia Utara Heligoland",
["frr-ins"] = "Frisia Utara Kepulauan",
["frr-kar"] = "Frisia Utara Karrharde",
["frr-mai"] = "Frisia Utara Tanah Besar",
["frr-moo"] = "Frisia Utara Mooring",
["frr-syl"] = "Frisia Utara Sylt",
["frr-wie"] = "Frisia Utara Wiedingharde",
["frs"] = "Jerman Rendah Frisia Timur",
["fub"] = "Fulfulde Adamawa",
["fuc"] = "Pulaar",
["fue"] = "Fulfulde Borgu",
["fuf"] = "Pular",
["fuh"] = "Fulfulde Niger Barat",
["fui"] = "Fulfulde Bagirmi",
["fuq"] = "Fulfulde Niger Tengah-Timur",
["fur-old"] = "Friuli Kuno",
["fuv"] = "Fulfulde Nigeria",
["gax"] = "Borana",
["gem-sue"] = "Suevik",
["gkm"] = "Yunani Byzantine",
["gmq-osw-lat"] = "Sweden Kuno Akhir",
["gmw-afr-pro"] = "Proto-Anglo-Frisia",
["gmw-nsg-pro"] = "Proto-Jerman Laut Utara",
["gos"] = "Grunnegs",
["grc-aeo"] = "Yunani Aeolia",
["grc-arc"] = "Yunani Arcadia",
["grc-arp"] = "Yunani Arcadocypriot",
["grc-att"] = "Yunani Attica",
["grc-boi"] = "Yunani Boeotia",
["grc-cyp"] = "Yunani Purba Cyprus",
["grc-dor"] = "Yunani Doric",
["grc-ela"] = "Yunani Elea",
["grc-epi"] = "Yunani Epik",
["grc-ion"] = "Yunani Ionia",
["grc-koi"] = "Yunani Koine",
["grc-kre"] = "Yunani Purba Crete",
["grc-opl"] = "Locrian Opuntian",
["grc-ozl"] = "Locrian Ozolian",
["grc-pam"] = "Yunani Pamphylia",
["grc-ths"] = "Yunani Thessalia",
["gsw-FR-als"] = "Jerman Alemannic Alsace",
["gsw-hig"] = "Jerman Alemannic Tinggi",
["gsw-hst"] = "Jerman Alemannic Tertinggi",
["gsw-low"] = "Jerman Alemannic Rendah",
["gu-kat"] = "Kathiyawadi",
["gu-lda"] = "Gujarati Lisan ud-Dawat",
["hae"] = "Oromo Harar",
["hak-HK"] = "Hakka Hong Kong",
["hak-TW"] = "Hakka Taiwan",
["hak-dab"] = "Hakka Dabu",
["hak-eam"] = "Hakka Moden Awal",
["hak-hai"] = "Hakka Hailu",
["hak-hui"] = "Hakka Huiyang",
["hak-hui-MY"] = "Hakka Huiyang Malaysia",
["hak-mei"] = "Hakka Meixian",
["hak-six"] = "Hakka Sixian",
["hak-zha"] = "Hakka Zhao'an",
["haz"] = "Hazaragi",
["hbo"] = "Ibrani Biblikal",
["he-IL"] = "Ibrani Israel",
["he-med"] = "Ibrani Pertengahan",
["he-mis"] = "Ibrani Mishnaik",
["hi-mid"] = "Hindi Pertengahan",
["hi-mum"] = "Hindi Bombay",
["hsn-hya"] = "Xiang Hengyang",
["hsn-hzh"] = "Xiang Hengzhou",
["hsn-lou"] = "Xiang Loudi",
["hsn-new"] = "Xiang Baharu",
["hsn-old"] = "Xiang Kuno",
["ht-sdm"] = "Kreol Perancis Saint-Domingue",
["htx"] = "Hittite Pertengahan",
["hye"] = "Armenia Timur",
["hyw"] = "Armenia Barat",
["inc-aav"] = "Avahattha",
["inc-agu"] = "Apabhramsa Gurjara",
["inc-aka"] = "Apabhramsa Kasmiri",
["inc-ama"] = "Apabhramsa Maharastri",
["inc-asa"] = "Apabhramsa Sauraseni",
["inc-ash-pro"] = "Proto-Indo-Arya Pertengahan",
["inc-ata"] = "Apabhramsa Takka",
["inc-avr"] = "Apabhramsa Vracada",
["inc-khr-par"] = "Khortha Parnadiya",
["inc-mit"] = "Mitanni",
["iro-ohu"] = "Wendat Kuno",
["iro-omo"] = "Mohawk Kuno",
["iro-oon"] = "Onondaga Kuno",
["itc-ala"] = "Latin Arkais",
["itc-lan"] = "Lanuvian",
["itc-ola"] = "Latin Kuno",
["itc-pra"] = "Praenestine",
["ja-cla"] = "Jepun Klasik",
["ja-ear"] = "Jepun Moden Awal",
["ja-mid"] = "Jepun Pertengahan",
["ja-mid-ear"] = "Jepun Pertengahan Awal",
["ja-mid-lat"] = "Jepun Pertengahan Akhir",
["jpa"] = "Aram Palestin Yahudi",
["jrb"] = "Arab-Yahudi",
["ka-mid"] = "Georgia Pertengahan",
["kbg"] = "Khamba",
["kea-alu"] = "Kabuverdianu ALUPEC",
["kea-bar"] = "Kabuverdianu Barlavento",
["kea-bra"] = "Kabuverdianu Brava",
["kea-bvi"] = "Kabuverdianu Boa Vista",
["kea-fog"] = "Kabuverdianu Fogo",
["kea-mai"] = "Kabuverdianu Maio",
["kea-saa"] = "Kabuverdianu Santo Antão",
["kea-sal"] = "Kabuverdianu Sal",
["kea-san"] = "Kabuverdianu Santiago",
["kea-sni"] = "Kabuverdianu São Nicolau",
["kea-sot"] = "Kabuverdianu Sotavento",
["kea-svi"] = "Kabuverdianu São Vicente",
["khg"] = "Tibetan Khams",
["kho-lat"] = "Khotanese Akhir",
["kho-old"] = "Khotanese Kuno",
["kjh-fyu"] = "Kyrgyz Fuyu",
["kjv"] = "Serbo-Croatia Kajkavian",
["klj-arg"] = "Arghu",
["kn-hav"] = "Havigannada",
["kn-kun"] = "Kundagannada",
["ko-KP"] = "Piawai Korea Utara",
["ko-KR"] = "Piawai Korea Selatan",
["ko-cen"] = "Korea Tengah",
["ko-chu"] = "Korea Chungcheong",
["ko-gan"] = "Korea Gangwon",
["ko-gyg"] = "Korea Gyeonggi",
["ko-gys"] = "Korea Gyeongsang",
["ko-ham"] = "Korea Hamgyong",
["ko-hwa"] = "Korea Hwanghae",
["ko-jeo"] = "Korea Jeolla",
["ko-pyo"] = "Korea Pyongan",
["ko-yuk"] = "Korea Yukjin",
["kok-mid"] = "Konkani Pertengahan",
["kok-old"] = "Konkani Kuno",
["krl-nor"] = "Karelia Utara",
["krl-sou"] = "Karelia Selatan",
["ksh"] = "Kölsch",
["kze"] = "Kosena",
["la-afr"] = "Romance Afrika",
["la-cla"] = "Latin Klasik",
["la-con"] = "Latin Kontemporari",
["la-ecc"] = "Latin Gereja",
["la-eme"] = "Latin Abad Pertengahan Awal",
["la-lat"] = "Latin Akhir",
["la-med"] = "Latin Pertengahan",
["la-new"] = "Latin Baharu",
["la-ren"] = "Latin Pembaharuan",
["la-vul"] = "Latin Vulgar",
["lld-amp"] = "Ladin Ampezan",
["lld-bad"] = "Ladin Badiot",
["lld-cad"] = "Ladin Cadorino",
["lld-fas"] = "Ladin Fascian",
["lld-fod"] = "Ladin Fodom",
["lld-for"] = "Ladin Fornes",
["lld-ghe"] = "Ladin Gherdëina",
["lld-non"] = "Ladin Nones",
["lng"] = "Lombardik",
["ltc-ear"] = "Cina Pertengahan Awal",
["ltc-lat"] = "Cina Pertengahan Akhir",
["lut-nor"] = "Lushootseed Utara",
["lzh-KO"] = "Cina Klasik Korea",
["lzh-VI"] = "Cina Klasik Vietnam",
["lzh-cii"] = "Ci",
["lzh-cmn"] = "Mandarin Klasik",
["lzh-cmn-TW"] = "Mandarin Taiwan Klasik",
["lzh-lit"] = "Cina Sastera",
["lzh-pre"] = "Cina Pra-Klasik",
["lzh-shi"] = "Puisi Cina Tradisional",
["lzh-tai"] = "Taishanese Klasik",
["lzh-yue"] = "Kantonis Klasik",
["mn-cha"] = "Mongolia Chakhar",
["mn-kha"] = "Mongolia Khalkha",
["mn-khr"] = "Mongolia Khorchin",
["mn-ord"] = "Mongolia Ordos",
["mns-eas"] = "Mansi Timur",
["mns-wes"] = "Mansi Barat",
["ms-cla"] = "Melayu Klasik",
["ms-old"] = "Melayu Kuno",
["mul-tax"] = "nama taksonomi",
["nan-anx"] = "Hokkien Anxi",
["nan-cha"] = "Hokkien Changtai",
["nan-hbl-PH"] = "Hokkien Filipina",
["nan-hbl-SG"] = "Hokkien Singapura",
["nan-hbl-TW"] = "Hokkien Taiwan",
["nan-hou"] = "Min Houlu",
["nan-hui"] = "Hokkien Hui'an",
["nan-jin"] = "Hokkien Jinjiang",
["nan-kin"] = "Hokkien Kinmen",
["nan-med"] = "Hokkien Medan",
["nan-pen"] = "Hokkien Pulau Pinang",
["nan-qia"] = "Min Qianlu",
["nan-qua"] = "Hokkien Quanzhou",
["nan-spm"] = "Hokkien Malaysia Selatan",
["nan-ton"] = "Hokkien Tong'an",
["nan-xia"] = "Hokkien Xiamen",
["nan-yon"] = "Hokkien Yongchun",
["nan-zha"] = "Hokkien Zhangzhou",
["nan-zho"] = "Hokkien Zhao'an",
["nan-zhp"] = "Hokkien Zhangping",
["ncb-cam"] = "Camorta",
["ncb-kat"] = "Katchal",
["ncb-nan"] = "Nancowry",
["nds-de"] = "Jerman Jerman Rendah",
["nds-lpr"] = "Prusia Rendah",
["nds-nl"] = "Saxon Rendah Belanda",
["nei"] = "Hittite Neo",
["nl-BE"] = "Belanda Belgium",
["non-grn"] = "Norse Greenland",
["non-oen"] = "Norse Timur Kuno",
["non-own"] = "Norse Barat Kuno",
["nrf-grn"] = "Norman Guernsey",
["nrf-jer"] = "Norman Jersey",
["och-ear"] = "Cina Kuno Awal",
["och-lat"] = "Cina Kuno Akhir",
["oht"] = "Hittite Kuno",
["ojp-eas"] = "Jepun Kuno Timur",
["okm-ear"] = "Korea Pertengahan Awal",
["oko-lat"] = "Korea Kuno Akhir",
["okz-ang"] = "Khmer Kuno Angkor",
["okz-pre"] = "Khmer Kuno Pra-Angkor",
["ont"] = "Ontenu",
["oos"] = "Ossetic Kuno",
["oos-ear"] = "Ossetic Kuno Awal",
["oos-lat"] = "Ossetic Kuno Akhir",
["orc"] = "Orma",
["oru-kan"] = "Kaniguram",
["oru-log"] = "Logar",
["os-dig"] = "Ossetia Digor",
["os-iro"] = "Ossetia Iron",
["osc-luc"] = "Lucania",
["osc-sam"] = "Samnite",
["otk-kir"] = "Kirghiz Kuno",
["otk-ork"] = "Turkic Orkhon",
["pal-ear"] = "Parsi Pertengahan Awal",
["pal-lat"] = "Parsi Pertengahan Akhir",
["peo-ear"] = "Parsi Kuno Awal",
["peo-lat"] = "Parsi Kuno Akhir",
["pfl"] = "Jerman Palatine",
["pl-gor"] = "Goral",
["pl-gre"] = "Poland Raya",
["pl-les"] = "Poland Kecil",
["pl-mas"] = "Poland Masovia",
["pld"] = "Polari",
["pnb"] = "Punjabi Barat",
["pra-abh"] = "Abhiri",
["pra-ard"] = "Prakrit Ardhamagadhi",
["pra-ava"] = "Avanti",
["pra-bah"] = "Bahliki",
["pra-can"] = "Candali",
["pra-dak"] = "Daksinatya",
["pra-dra"] = "Dramili",
["pra-hel"] = "Prakrit Helu",
["pra-kha"] = "Prakrit Khasa",
["pra-mag"] = "Prakrit Magadhi",
["pra-mah"] = "Prakrit Maharastri",
["pra-odr"] = "Odri",
["pra-pai"] = "Prakrit Paisaci",
["pra-pra"] = "Pracya",
["pra-pro"] = "Proto-Indo-Arya Baharu",
["pra-sab"] = "Sabari",
["pra-sak"] = "Sakari",
["pra-sau"] = "Prakrit Sauraseni",
["prs"] = "Dari",
["ps-afr"] = "Afridi",
["ps-ban"] = "Bannu",
["ps-bng"] = "Bangash",
["ps-cgi"] = "Ghilzay Tengah",
["ps-jad"] = "Jadrani",
["ps-kak"] = "Kakari",
["ps-kan"] = "Kandahari",
["ps-mah"] = "Mahsudi",
["ps-nea"] = "Pashto Timur Laut",
["ps-nwe"] = "Pashto Barat Laut",
["ps-pes"] = "Peshawari",
["ps-sea"] = "Pashto Tenggara",
["ps-ser"] = "Sher",
["ps-swe"] = "Pashto Barat Daya",
["ps-waz"] = "Waziri",
["ps-xat"] = "Khatak",
["pse-bsm"] = "Besemah",
["pt-BR"] = "Portugis Brazil",
["pt-PT"] = "Portugis Eropah",
["qfa-yke-pro"] = "Proto-Ketic",
["qfa-yko-pro"] = "Proto-Kottic",
["qfa-ypm-pro"] = "Proto-Pumpokolic",
["qfa-yrn-pro"] = "Proto-Arinic",
["qsb-bal"] = "Paleo-Balkan",
["qsb-bma"] = "substrat BMAC",
["qsb-grc"] = "Yunani Pra-Purba",
["qsb-ibe"] = "Paleo-Hispanic",
["qwm-arm"] = "Kipchak-Armenia",
["qwm-cum"] = "Cuman",
["qwm-mam"] = "Kipchak-Mamluk",
["qxq"] = "Qashqai",
["rdb-jir"] = "Jirofti",
["rdb-kah"] = "Kahnuji",
["rm-gri"] = "Rumantsch Grischun",
["rm-old"] = "Romansh Kuno",
["rm-put"] = "Romansh Puter",
["rm-srm"] = "Romansh Surmiran",
["rm-srs"] = "Romansh Sursilvan",
["rm-sut"] = "Romansh Sutsilvan",
["rm-val"] = "Romansh Vallader",
["ro-MD"] = "Moldova",
["roa-pro"] = "Proto-Romance",
["rw-kin"] = "Kinyarwanda",
["rw-run"] = "Kirundi",
["sa-bhs"] = "Sanskrit Hibrid Buddha",
["sa-bra"] = "Sanskrit Brahman",
["sa-epi"] = "Sanskrit Epik",
["sa-neo"] = "Sanskrit Baharu",
["sa-rig"] = "Sanskrit Rigveda",
["sc-nuo"] = "Nuorese",
["sc-old"] = "Sardinia Kuno",
["sc-src"] = "Logudorese",
["sc-sro"] = "Campidanese",
["sco-ins"] = "Scots Kepulauan",
["sco-nor"] = "Scots Utara",
["sco-sou"] = "Scots Selatan",
["sco-uls"] = "Scots Ulster",
["sdz"] = "Sallaands",
["sgh-baj"] = "Bajui",
["sgh-bar"] = "Bartangi",
["sgh-bro"] = "Bartangi-Oroshori",
["sgh-oro"] = "Oroshori",
["sgh-ros"] = "Roshani",
["sgh-rsx"] = "Roshani-Khufi",
["sgh-xgb"] = "Khughni-Bajui",
["sgh-xuf"] = "Khufi",
["sgh-xug"] = "Khughni",
["sh-tor"] = "Serbo-Croatia Torlakian",
["shi-med"] = "Tashelhit Pertengahan",
["si-med"] = "Sinhalese Pertengahan",
["ska"] = "Skagit",
["slh"] = "Lushootseed Selatan",
["sli"] = "Jerman Jerman Tengah Timur Silesia",
["sno"] = "Snohomish",
["sog-ear"] = "Sogdian Awal",
["sog-lat"] = "Sogdian Akhir",
["ssn"] = "Waata",
["stl"] = "Stellingwarfs",
["sxu"] = "Jerman Saxon Atas",
["ta-mid"] = "Tamil Pertengahan",
["tai-shz"] = "Zhuang Shangsi",
["taq"] = "Tamasheq",
["tbq-pro"] = "Proto-Tibeto-Burman",
["th-ayu"] = "Thai Kuno Ayutthaya",
["th-old"] = "Thai Kuno",
["th-suk"] = "Thai Kuno Sukhothai",
["thv"] = "Tamahaq",
["thv-ght"] = "Ghat",
["thz"] = "Tayert",
["tks-cal"] = "Tati Chali",
["tks-dan"] = "Danesfani",
["tks-ebr"] = "Ebrahimabadi",
["tks-esf"] = "Esfarvarini",
["tks-sag"] = "Sagzabadi",
["tks-tak"] = "Takestani",
["tks-xia"] = "Khiaraji",
["tks-xoz"] = "Khoznini",
["tl-cls"] = "Tagalog Klasik",
["tl-old"] = "Tagalog Kuno",
["tly-anb"] = "Anbarani",
["tly-asa"] = "Asalemi",
["tly-aze"] = "Talysh Azerbaijan",
["tly-cen"] = "Talysh Tengah",
["tly-fum"] = "Fumani",
["tly-kar"] = "Karganrudi",
["tly-msa"] = "Masali",
["tly-msu"] = "Masulei",
["tly-nor"] = "Talysh Utara",
["tly-san"] = "Shandarmani",
["tly-sou"] = "Talysh Selatan",
["tly-tal"] = "Taleshdulabi",
["tly-tul"] = "Tularudi",
["tmr"] = "Aram Babilonia Yahudi",
["tpw-lga"] = "Língua Geral Amazônica",
["tpw-lgp"] = "Língua Geral Paulista",
["tr-CY"] = "Turkish Cyprus",
["trk-bul-pro"] = "Proto-Bulgar",
["trk-cmn-pro"] = "Proto-Turkic Sepunya",
["trk-ogr-pro"] = "Proto-Oghur",
["trk-ogz-pro"] = "Proto-Oghuz",
["tsk"] = "Tseku",
["ttq"] = "Tawellemmet",
["tw"] = "Akan Twi",
["tw-aku"] = "Twi Akuapem",
["tw-asa"] = "Twi Asante",
["twd"] = "Tweants",
["uk-CA"] = "Ukraine Kanada",
["urj-fpr-pro"] = "Proto-Finno-Permic",
["uz-afg"] = "Uzbek Afghanistan",
["vel"] = "Veluws",
["vsn"] = "Sanskrit Veda",
["wae"] = "Jerman Walser",
["wep"] = "Westphalia",
["wss"] = "Wasa",
["wuu-chm"] = "Wu Shadi",
["wuu-han"] = "Hangzhounese",
["wuu-nin"] = "Ningbonese",
["wuu-nor"] = "Wu Utara",
["wuu-sha"] = "Shanghai",
["wuu-suz"] = "Suzhounese",
["wuu-wen"] = "Wenzhounese",
["xaq"] = "Aquitanian",
["xbo-dan"] = "Bulgar Danube",
["xbo-vol"] = "Bulgar Volga",
["xcg"] = "Gaul Cisalpine",
["xfa-cap"] = "Capenate",
["xh-bha"] = "Bhaca",
["xme-azr"] = "Azari Kuno",
["xme-ttc-cen"] = "Tati Tengah",
["xme-ttc-eas"] = "Tati Timur",
["xme-ttc-nor"] = "Tati Utara",
["xme-ttc-sou"] = "Tati Selatan",
["xme-ttc-wes"] = "Tati Barat",
["xmn"] = "Parsi Pertengahan Manichaean",
["xng-ear"] = "Mongol Pertengahan Awal",
["xng-lat"] = "Mongol Pertengahan Akhir",
["xnn"] = "Kankanaey Utara",
["xno"] = "Anglo-Norman",
["xno-law"] = "Undang-undang Perancis",
["xtg"] = "Gaul Transalpine",
["xvi"] = "Kamviri",
["yue-HK"] = "Kantonis Hong Kong",
["yue-gua"] = "Kantonis Guangzhou",
["yue-lit"] = "Kantonis Sastera",
["yue-wvc"] = "Kantonis lisan bertulis",
["zh-postal"] = "Rumi Pos",
["zhx-dan"] = "Cina Danzhou",
["zhx-tai-wvc"] = "Taishanese lisan bertulis",
["zhx-zho"] = "Min Zhongshan",
["zle-mbe"] = "Belarus Pertengahan",
["zle-mru"] = "Rusia Pertengahan",
["zle-muk"] = "Ukraine Pertengahan",
["zle-ops"] = "Pskov Kuno",
["zls-chs-ru"] = "Slavik Gereja Rusia",
["zls-chs-uk"] = "Slavik Gereja Ukraine",
["zlw-mpl"] = "Poland Pertengahan",
["zrp"] = "Zarphatic",
}
ovel1b2x8zc11x1tmy55rwzit7t29xg
Modul:string/encode entities
828
51767
373509
171996
2026-09-10T20:59:46Z
SNN95
2113
kemaskini
373509
Scribunto
text/plain
-- TO BE REPLACED BY encode_entities in [[Module:string utilities]]. This function decodes on input by default to prevent double-encoding, which the new function does not, so implementations need to take this into account when being converted.
local debug_track_module = "Module:debug/track"
local string_decode_entities_module = "Module:string/decodeEntities"
local string_utilities_module = "Module:string utilities"
local require = require
local function decode_entities(...)
decode_entities = require(string_decode_entities_module)
return decode_entities(...)
end
local function encode_entities(...)
encode_entities = require(string_utilities_module).encode_entities
return encode_entities(...)
end
local function track(...)
track = require(debug_track_module)
return track(...)
end
return function(str, charset, raw)
if not raw then
local decoded = decode_entities(str)
if decoded ~= str then
track("string/encode entities/decoded first")
end
str = decoded
end
return encode_entities(str, charset, nil, true)
end
bvh4hqobw96dy8gcuv3yoq2nlvj06si
Modul:headword/page
828
51771
373484
281241
2026-09-10T18:35:00Z
SNN95
2113
kemaskini
373484
Scribunto
text/plain
local export = {}
local languages_module = "Module:languages"
local maintenance_category_module = "Module:maintenance category"
local pages_module = "Module:pages"
local string_compare_module = "Module:string/compare"
local string_decode_entities_module = "Module:string/decodeEntities"
local string_remove_comments_module = "Module:string/removeComments"
local string_utilities_module = "Module:string utilities"
local table_module = "Module:table"
local template_parser_module = "Module:template parser"
local mw = mw
local string = string
local table = table
local ustring = mw.ustring
local concat = table.concat
local find = string.find
local format = string.format
local gsub = string.gsub
local insert = table.insert
local load_data = mw.loadData
local match = string.match
local new_title = mw.title.new
local pairs = pairs
local require = require
local sub = string.sub
local toNFC = ustring.toNFC
local toNFD = ustring.toNFD
local ugsub = ustring.gsub
local function class_else_type(...)
class_else_type = require(template_parser_module).class_else_type
return class_else_type(...)
end
local function decode_entities(...)
decode_entities = require(string_decode_entities_module)
return decode_entities(...)
end
local function encode_entities(...)
encode_entities = require(string_utilities_module).encode_entities
return encode_entities(...)
end
local function get_category(...)
get_category = require(maintenance_category_module).get_category
return get_category(...)
end
local function get_lang(...)
get_lang = require(languages_module).getByCode
return get_lang(...)
end
local function list_to_set(...)
list_to_set = require(table_module).listToSet
return list_to_set(...)
end
local function parse(...)
parse = require(template_parser_module).parse
return parse(...)
end
local function remove_comments(...)
remove_comments = require(string_remove_comments_module)
return remove_comments(...)
end
local function physical_to_logical_pagename_if_mammoth(...)
physical_to_logical_pagename_if_mammoth = require(pages_module).physical_to_logical_pagename_if_mammoth
return physical_to_logical_pagename_if_mammoth(...)
end
local function split(...)
split = require(string_utilities_module).split
return split(...)
end
local function string_compare(...)
string_compare = require(string_compare_module)
return string_compare(...)
end
local function uupper(...)
uupper = require(string_utilities_module).upper
return uupper(...)
end
--[==[
Pemuat untuk objek, yang memuatkan data (atau beberapa objek lain) ke dalam pemboleh ubah tertentu, yang kemudiannya boleh diakses sebagai "foo or get_foo()", di mana fungsi get_foo menetapkan objek kepada "foo" dan kemudian mengembalikannya. Ini memastikan ia hanya dimuatkan apabila diperlukan, dan mengelakkan keperluan menyemak kewujudan objek setiap kali, memandangkan setelah "foo" ditetapkan, "get_foo" tidak akan dipanggil lagi.
]==]
local langnames
local function get_langnames()
langnames, get_langnames = load_data("Module:languages/canonical names"), nil
return langnames
end
-- Data aksara gabungan yang digunakan semasa mengkategorikan aksara luar biasa. Ini dileraikan menjadi dua corak, digunakan untuk mencari
-- aksara gabungan tunggal (iaitu aksara + tanda diakritik) atau aksara gabungan berganda (iaitu aksara +
-- tanda diakritik + aksara).
-- Set aksara adalah dalam format yang digunakan oleh alat UnicodeSet Unicode: https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp.
-- Aksara gabungan tunggal.
-- Set aksara: [[:M:]&[:^Canonical_Combining_Class=/^Double_/:]&[:^subhead=Grapheme joiner:]&[:^Variation_Selector=Yes:]]
-- Nota: mencantumkan beratus-ratus baris sekaligus menghasilkan ralat, jadi () digunakan setiap 150 baris untuk memecahkannya kepada ketulan.
local comb_chars_single =
("\204\128-\205\142" .. -- U+0300-U+034E
"\205\144-\205\155" .. -- U+0350-U+035B
"\205\163-\205\175" .. -- U+0363-U+036F
"\210\131-\210\137" .. -- U+0483-U+0489
"\214\145-\214\189" .. -- U+0591-U+05BD
"\214\191" .. -- U+05BF
"\215\129" .. -- U+05C1
"\215\130" .. -- U+05C2
"\215\132" .. -- U+05C4
"\215\133" .. -- U+05C5
"\215\135" .. -- U+05C7
"\216\144-\216\154" .. -- U+0610-U+061A
"\217\139-\217\159" .. -- U+064B-U+065F
"\217\176" .. -- U+0670
"\219\150-\219\156" .. -- U+06D6-U+06DC
"\219\159-\219\164" .. -- U+06DF-U+06E4
"\219\167" .. -- U+06E7
"\219\168" .. -- U+06E8
"\219\170-\219\173" .. -- U+06EA-U+06ED
"\220\145" .. -- U+0711
"\220\176-\221\138" .. -- U+0730-U+074A
"\222\166-\222\176" .. -- U+07A6-U+07B0
"\223\171-\223\179" .. -- U+07EB-U+07F3
"\223\189" .. -- U+07FD
"\224\160\150-\224\160\153" .. -- U+0816-U+0819
"\224\160\155-\224\160\163" .. -- U+081B-U+0823
"\224\160\165-\224\160\167" .. -- U+0825-U+0827
"\224\160\169-\224\160\173" .. -- U+0829-U+082D
"\224\161\153-\224\161\155" .. -- U+0859-U+085B
"\224\162\151-\224\162\159" .. -- U+0897-U+089F
"\224\163\138-\224\163\161" .. -- U+08CA-U+08E1
"\224\163\163-\224\164\131" .. -- U+08E3-U+0903
"\224\164\186-\224\164\188" .. -- U+093A-U+093C
"\224\164\190-\224\165\143" .. -- U+093E-U+094F
"\224\165\145-\224\165\151" .. -- U+0951-U+0957
"\224\165\162" .. -- U+0962
"\224\165\163" .. -- U+0963
"\224\166\129-\224\166\131" .. -- U+0981-U+0983
"\224\166\188" .. -- U+09BC
"\224\166\190-\224\167\132" .. -- U+09BE-U+09C4
"\224\167\135" .. -- U+09C7
"\224\167\136" .. -- U+09C8
"\224\167\139-\224\167\141" .. -- U+09CB-U+09CD
"\224\167\151" .. -- U+09D7
"\224\167\162" .. -- U+09E2
"\224\167\163" .. -- U+09E3
"\224\167\190" .. -- U+09FE
"\224\168\129-\224\168\131" .. -- U+0A01-U+0A03
"\224\168\188" .. -- U+0A3C
"\224\168\190-\224\169\130" .. -- U+0A3E-U+0A42
"\224\169\135" .. -- U+0A47
"\224\169\136" .. -- U+0A48
"\224\169\139-\224\169\141" .. -- U+0A4B-U+0A4D
"\224\169\145" .. -- U+0A51
"\224\169\176" .. -- U+0A70
"\224\169\177" .. -- U+0A71
"\224\169\181" .. -- U+0A75
"\224\170\129-\224\170\131" .. -- U+0A81-U+0A83
"\224\170\188" .. -- U+0ABC
"\224\170\190-\224\171\133" .. -- U+0ABE-U+0AC5
"\224\171\135-\224\171\137" .. -- U+0AC7-U+0AC9
"\224\171\139-\224\171\141" .. -- U+0ACB-U+0ACD
"\224\171\162" .. -- U+0AE2
"\224\171\163" .. -- U+0AE3
"\224\171\186-\224\171\191" .. -- U+0AFA-U+0AFF
"\224\172\129-\224\172\131" .. -- U+0B01-U+0B03
"\224\172\188" .. -- U+0B3C
"\224\172\190-\224\173\132" .. -- U+0B3E-U+0B44
"\224\173\135" .. -- U+0B47
"\224\173\136" .. -- U+0B48
"\224\173\139-\224\173\141" .. -- U+0B4B-U+0B4D
"\224\173\149-\224\173\151" .. -- U+0B55-U+0B57
"\224\173\162" .. -- U+0B62
"\224\173\163" .. -- U+0B63
"\224\174\130" .. -- U+0B82
"\224\174\190-\224\175\130" .. -- U+0BBE-U+0BC2
"\224\175\134-\224\175\136" .. -- U+0BC6-U+0BC8
"\224\175\138-\224\175\141" .. -- U+0BCA-U+0BCD
"\224\175\151" .. -- U+0BD7
"\224\176\128-\224\176\132" .. -- U+0C00-U+0C04
"\224\176\188" .. -- U+0C3C
"\224\176\190-\224\177\132" .. -- U+0C3E-U+0C44
"\224\177\134-\224\177\136" .. -- U+0C46-U+0C48
"\224\177\138-\224\177\141" .. -- U+0C4A-U+0C4D
"\224\177\149" .. -- U+0C55
"\224\177\150" .. -- U+0C56
"\224\177\162" .. -- U+0C62
"\224\177\163" .. -- U+0C63
"\224\178\129-\224\178\131" .. -- U+0C81-U+0C83
"\224\178\188" .. -- U+0CBC
"\224\178\190-\224\179\132" .. -- U+0CBE-U+0CC4
"\224\179\134-\224\179\136" .. -- U+0CC6-U+0CC8
"\224\179\138-\224\179\141" .. -- U+0CCA-U+0CCD
"\224\179\149" .. -- U+0CD5
"\224\179\150" .. -- U+0CD6
"\224\179\162" .. -- U+0CE2
"\224\179\163" .. -- U+0CE3
"\224\179\179" .. -- U+0CF3
"\224\180\128-\224\180\131" .. -- U+0D00-U+0D03
"\224\180\187" .. -- U+0D3B
"\224\180\188" .. -- U+0D3C
"\224\180\190-\224\181\132" .. -- U+0D3E-U+0D44
"\224\181\134-\224\181\136" .. -- U+0D46-U+0D48
"\224\181\138-\224\181\141" .. -- U+0D4A-U+0D4D
"\224\181\151" .. -- U+0D57
"\224\181\162" .. -- U+0D62
"\224\181\163" .. -- U+0D63
"\224\182\129-\224\182\131" .. -- U+0D81-U+0D83
"\224\183\138" .. -- U+0DCA
"\224\183\143-\224\183\148" .. -- U+0DCF-U+0DD4
"\224\183\150" .. -- U+0DD6
"\224\183\152-\224\183\159" .. -- U+0DD8-U+0DDF
"\224\183\178" .. -- U+0DF2
"\224\183\179" .. -- U+0DF3
"\224\184\177" .. -- U+0E31
"\224\184\180-\224\184\186" .. -- U+0E34-U+0E3A
"\224\185\135-\224\185\142" .. -- U+0E47-U+0E4E
"\224\186\177" .. -- U+0EB1
"\224\186\180-\224\186\188" .. -- U+0EB4-U+0EBC
"\224\187\136-\224\187\142" .. -- U+0EC8-U+0ECE
"\224\188\152" .. -- U+0F18
"\224\188\153" .. -- U+0F19
"\224\188\181" .. -- U+0F35
"\224\188\183" .. -- U+0F37
"\224\188\185" .. -- U+0F39
"\224\188\190" .. -- U+0F3E
"\224\188\191" .. -- U+0F3F
"\224\189\177-\224\190\132" .. -- U+0F71-U+0F84
"\224\190\134" .. -- U+0F86
"\224\190\135" .. -- U+0F87
"\224\190\141-\224\190\151" .. -- U+0F8D-U+0F97
"\224\190\153-\224\190\188" .. -- U+0F99-U+0FBC
"\224\191\134" .. -- U+0FC6
"\225\128\171-\225\128\190" .. -- U+102B-U+103E
"\225\129\150-\225\129\153" .. -- U+1056-U+1059
"\225\129\158-\225\129\160" .. -- U+105E-U+1060
"\225\129\162-\225\129\164" .. -- U+1062-U+1064
"\225\129\167-\225\129\173" .. -- U+1067-U+106D
"\225\129\177-\225\129\180" .. -- U+1071-U+1074
"\225\130\130-\225\130\141" .. -- U+1082-U+108D
"\225\130\143" .. -- U+108F
"\225\130\154-\225\130\157" .. -- U+109A-U+109D
"\225\141\157-\225\141\159" .. -- U+135D-U+135F
"\225\156\146-\225\156\149" .. -- U+1712-U+1715
"\225\156\178-\225\156\180" .. -- U+1732-U+1734
"\225\157\146" .. -- U+1752
"\225\157\147" .. -- U+1753
"\225\157\178" .. -- U+1772
"\225\157\179" .. -- U+1773
"\225\158\180-\225\159\147") .. -- U+17B4-U+17D3
("\225\159\157" .. -- U+17DD
"\225\162\133" .. -- U+1885
"\225\162\134" .. -- U+1886
"\225\162\169" .. -- U+18A9
"\225\164\160-\225\164\171" .. -- U+1920-U+192B
"\225\164\176-\225\164\187" .. -- U+1930-U+193B
"\225\168\151-\225\168\155" .. -- U+1A17-U+1A1B
"\225\169\149-\225\169\158" .. -- U+1A55-U+1A5E
"\225\169\160-\225\169\188" .. -- U+1A60-U+1A7C
"\225\169\191" .. -- U+1A7F
"\225\170\176-\225\171\142" .. -- U+1AB0-U+1ACE
"\225\172\128-\225\172\132" .. -- U+1B00-U+1B04
"\225\172\180-\225\173\132" .. -- U+1B34-U+1B44
"\225\173\171-\225\173\179" .. -- U+1B6B-U+1B73
"\225\174\128-\225\174\130" .. -- U+1B80-U+1B82
"\225\174\161-\225\174\173" .. -- U+1BA1-U+1BAD
"\225\175\166-\225\175\179" .. -- U+1BE6-U+1BF3
"\225\176\164-\225\176\183" .. -- U+1C24-U+1C37
"\225\179\144-\225\179\146" .. -- U+1CD0-U+1CD2
"\225\179\148-\225\179\168" .. -- U+1CD4-U+1CE8
"\225\179\173" .. -- U+1CED
"\225\179\180" .. -- U+1CF4
"\225\179\183-\225\179\185" .. -- U+1CF7-U+1CF9
"\225\183\128-\225\183\140" .. -- U+1DC0-U+1DCC
"\225\183\142-\225\183\187" .. -- U+1DCE-U+1DFB
"\225\183\189-\225\183\191" .. -- U+1DFD-U+1DFF
"\226\131\144-\226\131\176" .. -- U+20D0-U+20F0
"\226\179\175-\226\179\177" .. -- U+2CEF-U+2CF1
"\226\181\191" .. -- U+2D7F
"\226\183\160-\226\183\191" .. -- U+2DE0-U+2DFF
"\227\128\170-\227\128\175" .. -- U+302A-U+302F
"\227\130\153" .. -- U+3099
"\227\130\154" .. -- U+309A
"\234\153\175-\234\153\178" .. -- U+A66F-U+A672
"\234\153\180-\234\153\189" .. -- U+A674-U+A67D
"\234\154\158" .. -- U+A69E
"\234\154\159" .. -- U+A69F
"\234\155\176" .. -- U+A6F0
"\234\155\177" .. -- U+A6F1
"\234\160\130" .. -- U+A802
"\234\160\134" .. -- U+A806
"\234\160\139" .. -- U+A80B
"\234\160\163-\234\160\167" .. -- U+A823-U+A827
"\234\160\172" .. -- U+A82C
"\234\162\128" .. -- U+A880
"\234\162\129" .. -- U+A881
"\234\162\180-\234\163\133" .. -- U+A8B4-U+A8C5
"\234\163\160-\234\163\177" .. -- U+A8E0-U+A8F1
"\234\163\191" .. -- U+A8FF
"\234\164\166-\234\164\173" .. -- U+A926-U+A92D
"\234\165\135-\234\165\147" .. -- U+A947-U+A953
"\234\166\128-\234\166\131" .. -- U+A980-U+A983
"\234\166\179-\234\167\128" .. -- U+A9B3-U+A9C0
"\234\167\165" .. -- U+A9E5
"\234\168\169-\234\168\182" .. -- U+AA29-U+AA36
"\234\169\131" .. -- U+AA43
"\234\169\140" .. -- U+AA4C
"\234\169\141" .. -- U+AA4D
"\234\169\187-\234\169\189" .. -- U+AA7B-U+AA7D
"\234\170\176" .. -- U+AAB0
"\234\170\178-\234\170\180" .. -- U+AAB2-U+AAB4
"\234\170\183" .. -- U+AAB7
"\234\170\184" .. -- U+AAB8
"\234\170\190" .. -- U+AABE
"\234\170\191" .. -- U+AABF
"\234\171\129" .. -- U+AAC1
"\234\171\171-\234\171\175" .. -- U+AAEB-U+AAEF
"\234\171\181" .. -- U+AAF5
"\234\171\182" .. -- U+AAF6
"\234\175\163-\234\175\170" .. -- U+ABE3-U+ABEA
"\234\175\172" .. -- U+ABEC
"\234\175\173" .. -- U+ABED
"\239\172\158" .. -- U+FB1E
"\239\184\160-\239\184\175" .. -- U+FE20-U+FE2F
"\240\144\135\189" .. -- U+101FD
"\240\144\139\160" .. -- U+102E0
"\240\144\141\182-\240\144\141\186" .. -- U+10376-U+1037A
"\240\144\168\129-\240\144\168\131" .. -- U+10A01-U+10A03
"\240\144\168\133" .. -- U+10A05
"\240\144\168\134" .. -- U+10A06
"\240\144\168\140-\240\144\168\143" .. -- U+10A0C-U+10A0F
"\240\144\168\184-\240\144\168\186" .. -- U+10A38-U+10A3A
"\240\144\168\191" .. -- U+10A3F
"\240\144\171\165" .. -- U+10AE5
"\240\144\171\166" .. -- U+10AE6
"\240\144\180\164-\240\144\180\167" .. -- U+10D24-U+10D27
"\240\144\181\169-\240\144\181\173" .. -- U+10D69-U+10D6D
"\240\144\186\171" .. -- U+10EAB
"\240\144\186\172" .. -- U+10EAC
"\240\144\187\188-\240\144\187\191" .. -- U+10EFC-U+10EFF
"\240\144\189\134-\240\144\189\144" .. -- U+10F46-U+10F50
"\240\144\190\130-\240\144\190\133" .. -- U+10F82-U+10F85
"\240\145\128\128-\240\145\128\130" .. -- U+11000-U+11002
"\240\145\128\184-\240\145\129\134" .. -- U+11038-U+11046
"\240\145\129\176" .. -- U+11070
"\240\145\129\179" .. -- U+11073
"\240\145\129\180" .. -- U+11074
"\240\145\129\191-\240\145\130\130" .. -- U+1107F-U+11082
"\240\145\130\176-\240\145\130\186" .. -- U+110B0-U+110BA
"\240\145\131\130" .. -- U+110C2
"\240\145\132\128-\240\145\132\130" .. -- U+11100-U+11102
"\240\145\132\167-\240\145\132\180" .. -- U+11127-U+11134
"\240\145\133\133" .. -- U+11145
"\240\145\133\134" .. -- U+11146
"\240\145\133\179" .. -- U+11173
"\240\145\134\128-\240\145\134\130" .. -- U+11180-U+11182
"\240\145\134\179-\240\145\135\128" .. -- U+111B3-U+111C0
"\240\145\135\137-\240\145\135\140" .. -- U+111C9-U+111CC
"\240\145\135\142" .. -- U+111CE
"\240\145\135\143" .. -- U+111CF
"\240\145\136\172-\240\145\136\183" .. -- U+1122C-U+11237
"\240\145\136\190" .. -- U+1123E
"\240\145\137\129" .. -- U+11241
"\240\145\139\159-\240\145\139\170" .. -- U+112DF-U+112EA
"\240\145\140\128-\240\145\140\131" .. -- U+11300-U+11303
"\240\145\140\187" .. -- U+1133B
"\240\145\140\188" .. -- U+1133C
"\240\145\140\190-\240\145\141\132" .. -- U+1133E-U+11344
"\240\145\141\135" .. -- U+11347
"\240\145\141\136" .. -- U+11348
"\240\145\141\139-\240\145\141\141" .. -- U+1134B-U+1134D
"\240\145\141\151" .. -- U+11357
"\240\145\141\162" .. -- U+11362
"\240\145\141\163" .. -- U+11363
"\240\145\141\166-\240\145\141\172" .. -- U+11366-U+1136C
"\240\145\141\176-\240\145\141\180" .. -- U+11370-U+11374
"\240\145\142\184-\240\145\143\128" .. -- U+113B8-U+113C0
"\240\145\143\130" .. -- U+113C2
"\240\145\143\133" .. -- U+113C5
"\240\145\143\135-\240\145\143\138" .. -- U+113C7-U+113CA
"\240\145\143\140-\240\145\143\144" .. -- U+113CC-U+113D0
"\240\145\143\146" .. -- U+113D2
"\240\145\143\161" .. -- U+113E1
"\240\145\143\162" .. -- U+113E2
"\240\145\144\181-\240\145\145\134" .. -- U+11435-U+11446
"\240\145\145\158" .. -- U+1145E
"\240\145\146\176-\240\145\147\131" .. -- U+114B0-U+114C3
"\240\145\150\175-\240\145\150\181" .. -- U+115AF-U+115B5
"\240\145\150\184-\240\145\151\128" .. -- U+115B8-U+115C0
"\240\145\151\156" .. -- U+115DC
"\240\145\151\157" .. -- U+115DD
"\240\145\152\176-\240\145\153\128" .. -- U+11630-U+11640
"\240\145\154\171-\240\145\154\183" .. -- U+116AB-U+116B7
"\240\145\156\157-\240\145\156\171" .. -- U+1171D-U+1172B
"\240\145\160\172-\240\145\160\186" .. -- U+1182C-U+1183A
"\240\145\164\176-\240\145\164\181" .. -- U+11930-U+11935
"\240\145\164\183" .. -- U+11937
"\240\145\164\184" .. -- U+11938
"\240\145\164\187-\240\145\164\190" .. -- U+1193B-U+1193E
"\240\145\165\128") .. -- U+11940
("\240\145\165\130" .. -- U+11942
"\240\145\165\131" .. -- U+11943
"\240\145\167\145-\240\145\167\151" .. -- U+119D1-U+119D7
"\240\145\167\154-\240\145\167\160" .. -- U+119DA-U+119E0
"\240\145\167\164" .. -- U+119E4
"\240\145\168\129-\240\145\168\138" .. -- U+11A01-U+11A0A
"\240\145\168\179-\240\145\168\185" .. -- U+11A33-U+11A39
"\240\145\168\187-\240\145\168\190" .. -- U+11A3B-U+11A3E
"\240\145\169\135" .. -- U+11A47
"\240\145\169\145-\240\145\169\155" .. -- U+11A51-U+11A5B
"\240\145\170\138-\240\145\170\153" .. -- U+11A8A-U+11A99
"\240\145\176\175-\240\145\176\182" .. -- U+11C2F-U+11C36
"\240\145\176\184-\240\145\176\191" .. -- U+11C38-U+11C3F
"\240\145\178\146-\240\145\178\167" .. -- U+11C92-U+11CA7
"\240\145\178\169-\240\145\178\182" .. -- U+11CA9-U+11CB6
"\240\145\180\177-\240\145\180\182" .. -- U+11D31-U+11D36
"\240\145\180\186" .. -- U+11D3A
"\240\145\180\188" .. -- U+11D3C
"\240\145\180\189" .. -- U+11D3D
"\240\145\180\191-\240\145\181\133" .. -- U+11D3F-U+11D45
"\240\145\181\135" .. -- U+11D47
"\240\145\182\138-\240\145\182\142" .. -- U+11D8A-U+11D8E
"\240\145\182\144" .. -- U+11D90
"\240\145\182\145" .. -- U+11D91
"\240\145\182\147-\240\145\182\151" .. -- U+11D93-U+11D97
"\240\145\187\179-\240\145\187\182" .. -- U+11EF3-U+11EF6
"\240\145\188\128" .. -- U+11F00
"\240\145\188\129" .. -- U+11F01
"\240\145\188\131" .. -- U+11F03
"\240\145\188\180-\240\145\188\186" .. -- U+11F34-U+11F3A
"\240\145\188\190-\240\145\189\130" .. -- U+11F3E-U+11F42
"\240\145\189\154" .. -- U+11F5A
"\240\147\145\128" .. -- U+13440
"\240\147\145\135-\240\147\145\149" .. -- U+13447-U+13455
"\240\150\132\158-\240\150\132\175" .. -- U+1611E-U+1612F
"\240\150\171\176-\240\150\171\180" .. -- U+16AF0-U+16AF4
"\240\150\172\176-\240\150\172\182" .. -- U+16B30-U+16B36
"\240\150\189\143" .. -- U+16F4F
"\240\150\189\145-\240\150\190\135" .. -- U+16F51-U+16F87
"\240\150\190\143-\240\150\190\146" .. -- U+16F8F-U+16F92
"\240\150\191\164" .. -- U+16FE4
"\240\150\191\176" .. -- U+16FF0
"\240\150\191\177" .. -- U+16FF1
"\240\155\178\157" .. -- U+1BC9D
"\240\155\178\158" .. -- U+1BC9E
"\240\156\188\128-\240\156\188\173" .. -- U+1CF00-U+1CF2D
"\240\156\188\176-\240\156\189\134" .. -- U+1CF30-U+1CF46
"\240\157\133\165-\240\157\133\169" .. -- U+1D165-U+1D169
"\240\157\133\173-\240\157\133\178" .. -- U+1D16D-U+1D172
"\240\157\133\187-\240\157\134\130" .. -- U+1D17B-U+1D182
"\240\157\134\133-\240\157\134\139" .. -- U+1D185-U+1D18B
"\240\157\134\170-\240\157\134\173" .. -- U+1D1AA-U+1D1AD
"\240\157\137\130-\240\157\137\132" .. -- U+1D242-U+1D244
"\240\157\168\128-\240\157\168\182" .. -- U+1DA00-U+1DA36
"\240\157\168\187-\240\157\169\172" .. -- U+1DA3B-U+1DA6C
"\240\157\169\181" .. -- U+1DA75
"\240\157\170\132" .. -- U+1DA84
"\240\157\170\155-\240\157\170\159" .. -- U+1DA9B-U+1DA9F
"\240\157\170\161-\240\157\170\175" .. -- U+1DAA1-U+1DAAF
"\240\158\128\128-\240\158\128\134" .. -- U+1E000-U+1E006
"\240\158\128\136-\240\158\128\152" .. -- U+1E008-U+1E018
"\240\158\128\155-\240\158\128\161" .. -- U+1E01B-U+1E021
"\240\158\128\163" .. -- U+1E023
"\240\158\128\164" .. -- U+1E024
"\240\158\128\166-\240\158\128\170" .. -- U+1E026-U+1E02A
"\240\158\130\143" .. -- U+1E08F
"\240\158\132\176-\240\158\132\182" .. -- U+1E130-U+1E136
"\240\158\138\174" .. -- U+1E2AE
"\240\158\139\172-\240\158\139\175" .. -- U+1E2EC-U+1E2EF
"\240\158\147\172-\240\158\147\175" .. -- U+1E4EC-U+1E4EF
"\240\158\151\174" .. -- U+1E5EE
"\240\158\151\175" .. -- U+1E5EF
"\240\158\163\144-\240\158\163\150" .. -- U+1E8D0-U+1E8D6
"\240\158\165\132-\240\158\165\138") -- U+1E944-U+1E94A
-- Aksara gabungan berganda.
-- Set aksara: [[:M:]&[:Canonical_Combining_Class=/^Double_/:]&[:^subhead=Grapheme joiner:]&[:^Variation_Selector=Yes:]]
local comb_chars_double =
"\205\156-\205\162" .. -- U+035C-U+0362
"\225\183\141" .. -- U+1DCD
"\225\183\188" -- U+1DFC
-- Pemilih variasi dsb.; diasingkan supaya kita tidak mendapat kategori untuknya.
-- Set aksara: [[:M:]&[[:subhead=Grapheme joiner:][:Variation_Selector=Yes:]]].
local comb_chars_other =
"\205\143" .. -- U+034F
"\225\160\139-\225\160\141" .. -- U+180B-U+180D
"\225\160\143" .. -- U+180F
"\239\184\128-\239\184\143" .. -- U+FE00-U+FE0F
"\243\160\132\128-\243\160\135\175" -- U+E0100-U+E01EF
local comb_chars_all = comb_chars_single .. comb_chars_double .. comb_chars_other
local comb_chars = {
combined_single = "[^" .. comb_chars_all .. "][" .. comb_chars_single .. comb_chars_other .. "]+%f[^" .. comb_chars_all .. "]",
combined_double = "[^" .. comb_chars_all .. "][" .. comb_chars_single .. comb_chars_other .. "]*[" .. comb_chars_double .. "]+[" .. comb_chars_all .. "]*.[" .. comb_chars_single .. comb_chars_other .. "]*",
diacritics_single = "[" .. comb_chars_single .. "]",
diacritics_double = "[" .. comb_chars_double .. "]",
diacritics_all = "[" .. comb_chars_all .. "]"
}
-- Senarai yang dipilih daripada https://unicode.org/Public/emoji/16.0/emoji-sequences.txt.
-- NOTA: Terdapat banyak lagi urutan emoji yang melibatkan simbol Plane 0 bukan emoji yang diikuti oleh 0xFE0F, yang kita belum
-- kendalikan (buat masa ini).
local emoji_chars =
"\226\140\154" .. -- U+231A (⌚)
"\226\140\155" .. -- U+231B (⌛)
"\226\140\168" .. -- U+2328 (⌨)
"\226\143\143" .. -- U+23CF (⏏)
"\226\143\169-\226\143\179" .. -- U+23E9-U+23F3 (⏩-⏳)
"\226\143\184-\226\143\186" .. -- U+23F8-U+23FA (⏸-⏺)
"\226\150\170" .. -- U+25AA (▪)
"\226\150\171" .. -- U+25AB (▫)
"\226\150\182" .. -- U+25B6 (▶)
"\226\151\128" .. -- U+25C0 (◀)
"\226\151\187-\226\151\190" .. -- U+25FB-U+25FE (◻-◾)
"\226\152\128-\226\152\132" .. -- U+2600-U+2604 (☀-☄)
"\226\152\142" .. -- U+260E (☎)
"\226\152\145" .. -- U+2611 (☑)
"\226\152\148" .. -- U+2614 (☔)
"\226\152\149" .. -- U+2615 (☕)
"\226\152\152" .. -- U+2618 (☘)
"\226\152\157" .. -- U+261D (☝)
"\226\152\160" .. -- U+2620 (☠)
"\226\152\162" .. -- U+2622 (☢)
"\226\152\163" .. -- U+2623 (☣)
"\226\152\166" .. -- U+2626 (☦)
"\226\152\170" .. -- U+262A (☪)
"\226\152\174" .. -- U+262E (☮)
"\226\152\175" .. -- U+262F (☯)
"\226\152\184-\226\152\186" .. -- U+2638-U+263A (☸-☺)
"\226\153\136-\226\153\147" .. -- U+2648-U+2653 (♈-♓)
"\226\153\159" .. -- U+265F (♟)
"\226\153\160" .. -- U+2660 (♠)
"\226\153\163" .. -- U+2663 (♣)
"\226\153\165" .. -- U+2665 (♥)
"\226\153\166" .. -- U+2666 (♦)
"\226\153\168" .. -- U+2668 (♨)
"\226\153\187" .. -- U+267B (♻)
"\226\153\190" .. -- U+267E (♾)
"\226\153\191" .. -- U+267F (♿)
"\226\154\146-\226\154\151" .. -- U+2692-U+2697 (⚒-⚗)
"\226\154\153" .. -- U+2699 (⚙)
"\226\154\155" .. -- U+269B (⚛)
"\226\154\156" .. -- U+269C (⚜)
"\226\154\160" .. -- U+26A0 (⚠)
"\226\154\161" .. -- U+26A1 (⚡)
"\226\154\170" .. -- U+26AA (⚪)
"\226\154\171" .. -- U+26AB (⚫)
"\226\154\176" .. -- U+26B0 (⚰)
"\226\154\177" .. -- U+26B1 (⚱)
"\226\154\189" .. -- U+26BD (⚽)
"\226\154\190" .. -- U+26BE (⚾)
"\226\155\132" .. -- U+26C4 (⛄)
"\226\155\133" .. -- U+26C5 (⛅)
"\226\155\136" .. -- U+26C8 (⛈)
"\226\155\142" .. -- U+26CE (⛎)
"\226\155\143" .. -- U+26CF (⛏)
"\226\155\145" .. -- U+26D1 (⛑)
"\226\155\147" .. -- U+26D3 (⛓)
"\226\155\148" .. -- U+26D4 (⛔)
"\226\155\169" .. -- U+26E9 (⛩)
"\226\155\170" .. -- U+26EA (⛪)
"\226\155\176-\226\155\181" .. -- U+26F0-U+26F5 (⛰-⛵)
"\226\155\183-\226\155\186" .. -- U+26F7-U+26FA (⛷-⛺)
"\226\155\189" .. -- U+26FD (⛽)
"\226\156\130" .. -- U+2702 (✂)
"\226\156\135" .. -- U+2705 (✅)
"\226\156\136-\226\156\141" .. -- U+2708-U+270D (✈-✍)
"\226\156\143" .. -- U+270F (✏)
"\226\156\146" .. -- U+2712 (✒)
"\226\156\148" .. -- U+2714 (✔)
"\226\156\150" .. -- U+2716 (✖)
"\226\156\157" .. -- U+271D (✝)
"\226\156\161" .. -- U+2721 (✡)
"\226\156\168" .. -- U+2728 (✨)
"\226\156\179" .. -- U+2733 (✳)
"\226\156\180" .. -- U+2734 (✴)
"\226\157\132" .. -- U+2744 (❄)
"\226\157\135" .. -- U+2747 (❇)
"\226\157\140" .. -- U+274C (❌)
"\226\157\142" .. -- U+274E (❎)
"\226\157\147-\226\157\149" .. -- U+2753-U+2755 (❓-❕)
"\226\157\151" .. -- U+2757 (❗)
"\226\157\163" .. -- U+2763 (❣)
"\226\157\164" .. -- U+2764 (❤)
"\226\158\149-\226\158\151" .. -- U+2795-U+2797 (➕-➗)
"\226\158\161" .. -- U+27A1 (➡)
"\226\158\176" .. -- U+27B0 (➰)
"\226\158\191" .. -- U+27BF (➿)
"\226\164\180" .. -- U+2934 (⤴)
"\226\164\181" .. -- U+2935 (⤵)
"\226\172\133-\226\172\135" .. -- U+2B05-U+2B07 (⬅-⬇)
"\226\172\155" .. -- U+2B1B (⬛)
"\226\172\156" .. -- U+2B1C (⬜)
"\226\173\144" .. -- U+2B50 (⭐)
"\226\173\149" .. -- U+2B55 (⭕)
"\227\128\176" .. -- U+3030 (〰)
"\227\128\189" .. -- U+303D (〽)
"\227\138\151" .. -- U+3297 (㊗)
"\227\138\153" .. -- U+3299 (㊙)
"\240\159\128\132" .. -- U+1F004 (🀄)
"\240\159\131\143" .. -- U+1F0CF (🃏)
"\240\159\133\176" .. -- U+1F170 (🅰)
"\240\159\133\177" .. -- U+1F171 (🅱)
"\240\159\133\190" .. -- U+1F17E (🅾)
"\240\159\133\191" .. -- U+1F17F (🅿)
"\240\159\134\142" .. -- U+1F18E (🆎)
"\240\159\134\145-\240\159\134\154" .. -- U+1F191-U+1F19A (🆑-🆚)
"\240\159\136\129" .. -- U+1F201 (🈁)
"\240\159\136\130" .. -- U+1F202 (🈂)
"\240\159\136\154" .. -- U+1F21A (🈚)
"\240\159\136\175" .. -- U+1F22F (🈯)
"\240\159\136\178-\240\159\136\186" .. -- U+1F232-U+1F23A (🈲-🈺)
"\240\159\137\144" .. -- U+1F250 (🉐)
"\240\159\137\145" .. -- U+1F251 (🉑)
"\240\159\140\128-\240\159\153\143" .. -- U+1F300-U+1F64F (🌀-🙏)
"\240\159\154\128-\240\159\155\151" .. -- U+1F680-U+1F6D7 (🚀-🛗)
"\240\159\155\156-\240\159\155\172" .. -- U+1F6DC-U+1F6EC (🛜-🛬)
"\240\159\155\176-\240\159\155\188" .. -- U+1F6F0-U+1F6FC (🛰-🛼)
"\240\159\159\160-\240\159\159\171" .. -- U+1F7E0-U+1F7EB (🟠-🟫)
"\240\159\159\176" .. -- U+1F7F0 (🟰)
"\240\159\164\140-\240\159\169\147" .. -- U+1F90C-U+1FA53 (🤌-🩓)
"\240\159\169\160-\240\159\169\173" .. -- U+1FA60-U+1FA6D (🩠-🩭)
"\240\159\169\176-\240\159\169\188" .. -- U+1FA70-U+1FA7C (🩰-🩼)
"\240\159\170\128-\240\159\170\137" .. -- U+1FA80-U+1FA89 (🪀-)
"\240\159\170\143-\240\159\171\134" .. -- U+1FA8F-U+1FAC6 (-)
"\240\159\171\142-\240\159\171\156" .. -- U+1FACE-U+1FADC (🫎-)
"\240\159\171\159-\240\159\171\169" .. -- U+1FADF-U+1FAE9 (-)
"\240\159\171\176-\240\159\171\184" -- U+1FAF0-U+1FAF8 (🫰-🫸)
local unsupported_characters
local function get_unsupported_characters()
unsupported_characters, get_unsupported_characters = {}, nil
for k, v in pairs(load_data("Module:links/data").unsupported_characters) do
unsupported_characters[v] = k
end
return unsupported_characters
end
-- Senarai tajuk yang tidak disokong dan songsangkannya (supaya kunci ialah nama halaman dan nilai ialah tajuk kanonik).
local unsupported_titles
local function get_unsupported_titles()
unsupported_titles, get_unsupported_titles = {}, nil
for k, v in pairs(load_data("Module:links/data").unsupported_titles) do
unsupported_titles[v] = k
end
return unsupported_titles
end
-- Untuk menjimatkan memori, kita hanya mencache nama yang mengandungi aksara bukan ASCII atau aksara ASCII yang perlu dialih keluar atau
-- dijelmakan (tanda koma atas, tanda petik berganda, tanda sempang).
local L2_sort_key_cache = {}
function export.get_L2_sort_key(L2)
if L2 == "Rentas bahasa" then
return "\1"
elseif L2 == "Bahasa Melayu" then
return "\2"
elseif match(L2, "^[%z\1-\b\14-!#-&(-,.-\127]+$") then
return L2
end
local sort_key = L2_sort_key_cache[L2]
if sort_key then
return sort_key
end
sort_key = toNFC(ugsub(ugsub(toNFD(L2), "[" .. comb_chars_all .. "'\"ʻʼ]+", ""), "[%s%-]+", " "))
L2_sort_key_cache[L2] = sort_key
return sort_key
end
--[==[
Diberikan nama halaman (atau {nil} untuk halaman semasa), cipta dan kembalikan struktur data yang menghuraikan halaman tersebut. Objek
yang dikembalikan mengandungi medan-medan berikut:
* `comb_chars`: Jadual yang mengandungi pelbagai corak kelas aksara Lua untuk pelbagai jenis aksara gabungan
(aksara yang terurai menjadi beberapa aksara dalam penghuraian NFD). Corak tersebut bertujuan untuk digunakan dengan
{mw.ustring.find()}. Kuncinya ialah:
** `single`: Aksara gabungan tunggal (aksara + diakritik), tanpa tanda kurung kurawal pembungkus;
** `double`: Aksara gabungan berganda (aksara + diakritik + aksara), tanpa tanda kurung kurawal pembungkus;
** `vs`: Pemilih variasi, tanpa tanda kurung kurawal pembungkus;
** `all`: Pencantuman `single` + `double` + `vs`, tanpa tanda kurung kurawal pembungkus;
** `diacritics_single`: Seperti `single` tetapi dengan kurung kurawal pembungkus;
** `diacritics_double`: Seperti `double` tetapi dengan kurung kurawal pembungkus;
** `diacritics_all`: Seperti `all` tetapi dengan kurung kurawal pembungkus;
** `combined_single`: Corak Lua untuk memadankan aksara jarak yang diikuti oleh satu atau lebih aksara gabungan tunggal;
** `combined_double`: Corak Lua untuk memadankan gabungan dua aksara jarak yang dipisahkan oleh satu atau lebih aksara
gabungan berganda, mungkin juga disertakan dengan aksara gabungan tunggal;
* `emoji_pattern`: Corak kelas aksara Lua (termasuk kurungan pembungkus) yang memadankan emoji. Bertujuan untuk digunakan
dengan {mw.ustring.find()}.
* `L2_list`: Senarai tertib bagi tajuk L2 pada halaman, dengan kunci tambahan `n` yang menyatakan panjang senarai.
* `L2_sections`: Jadual carian bagi tajuk L2 pada halaman, di mana kuncinya ialah nombor bahagian yang diberikan oleh prapemproses, dan nilainya ialah nama tajuk L2. Sebaik sahaja seruan memperoleh nombor bahagian sebenarnya daripada get_current_L2 dalam [[Module:pages]], ia boleh menggunakan jadual ini untuk menentukan induk L2-nya. TODO: Kita boleh mengembangkannya untuk menyertakan subbahagian, untuk menyemak ketepatan tajuk POS dsb.
* `unsupported_titles`: Peta daripada nama halaman kepada tajuk kanonik bagi halaman bertajuk tidak disokong.
* `namespace`: Ruang nama bagi nama halaman.
* `ns`: Jadual ruang nama untuk halaman daripada mw.site.namespaces (TODO: gabungkan dengan `namespace` di atas).
* `full_raw_pagename`: Versi penuh bagi nama halaman **MENTAH** (iaitu halaman bertajuk tidak disokong tidak dikanonikkan);
termasuk ruang nama dan asasnya (bahagian sebelum tanda garis condong).
* `pagename`: Bahagian subhalaman dikanonikkan bagi nama halaman (halaman bertajuk tidak disokong dikanonikkan).
* `pagename_with_base`: Sama seperti `pagename` dalam ruang nama utama; selainnya, keseluruhan nama halaman tanpa ruang nama.
* `decompose_pagename`: Setara dengan `pagename` dalam penghuraian bentuk NFD.
* `pagename_len`: Panjang `pagename` dalam aksara Unicode, di mana gabungan aksara jarak + diakritik terurai
diperlakukan sebagai aksara tunggal.
* `explode_pagename`: Set aksara yang ditemui dalam `pagename`. Kuncinya ialah aksara (di mana gabungan aksara jarak +
diakritik terurai diperlakukan sebagai aksara tunggal).
* `encoded_pagename`: DOKUMENKAN SAYA.
* `pagename_defaultsort`: DOKUMENKAN SAYA.
* `raw_defaultsort`: DOKUMENKAN SAYA.
* `wikitext_topic_cat`: DOKUMENKAN SAYA.
* `wikitext_langname_cat`: DOKUMENKAN SAYA.
`no_fetch_content` menyatakan supaya tidak mengambil dan menghurai kandungan atau menetapkan kunci isih DEFAULTSORT, bagi menjimatkan masa pada
halaman ujian dan dokumentasi yang mempunyai banyak seruan templat yang menetapkan `|pagename=`. Didapati hampir keseluruhan masa
fungsi ini diambil oleh baris `frame:callParserFunction("DEFAULTSORT", data.pagename_defaultsort)`,
maka kita melangkaunya pada halaman ujian dan dokumentasi yang mana ia tidak memberikan sebarang kesan.
]==]
function export.process_page(pagename, no_fetch_content)
local data = {
comb_chars = comb_chars,
emoji_pattern = "[" .. emoji_chars .. "]",
unsupported_titles = unsupported_titles or get_unsupported_titles()
}
local cats = {}
data.cats = cats
-- Kita tidak boleh menyimpan `raw_title` dalam `data` kerana ia mengandungi metajadual.
local raw_title
local function bad_pagename()
if not pagename then
error("Ralat dalaman: Berlaku masalah, `data.pagename` tidak dinyatakan tetapi tajuk semasa mengandungi aksara tidak sah")
else
error(format("Nilai tidak sah untuk `data.pagename`: '%s', yang tidak boleh mengandungi aksara tidak sah", pagename))
end
end
if pagename then -- untuk ujian, halaman dokumentasi, dsb.
raw_title = new_title(pagename)
if not raw_title then
bad_pagename()
end
else
raw_title = mw.title.getCurrentTitle()
end
local nsText = raw_title.nsText
local namespace_is_reconstruction = nsText == "Reconstruction"
data.namespace = nsText
data.ns = mw.site.namespaces[raw_title.namespace]
local full_raw_pagename = raw_title.fullText
data.full_raw_pagename = full_raw_pagename
local frame = mw.getCurrentFrame()
-- AMARAN: `content` boleh menjadi nil, cth. jika kita melakukan penggantian (subst) templat seperti {{ja-new}} pada halaman yang belum dicipta
-- atau jika modul menyatakan subhalaman sebagai `data.pagename` (yang dilakukan oleh banyak modul) dan kita berada dalam Lampiran
-- atau halaman bukan ruang nama utama yang lain. Kita dahulunya menetapkan perkara ini sebagai ralat tetapi terlalu banyak modul yang berbuat demikian,
-- dan penggantian pada halaman yang belum wujud adalah dibenarkan, dan kita sebenarnya tidak memerlukan akses kepada
-- kandungan halaman tersebut.
local content = not no_fetch_content and raw_title:getContent() or nil
-- Dapatkan nama halaman.
pagename = physical_to_logical_pagename_if_mammoth(raw_title)
pagename = gsub(pagename, "^Unsupported titles/(.+)", function(m)
insert(cats, "Tajuk tidak disokong")
local title = (unsupported_titles or get_unsupported_titles())[m]
if title then
return title
end
-- Gantikan pasangan tanda "`". Tanda yang tidak digunakan untuk melepaskan aksara sepatutnya dilepaskan sebagai "`grave`", tetapi mungkin tidak berlaku,
-- jadi jika sesuatu pasangan tidak membentuk padanan, tanda penutup "`" sepatutnya menjadi tanda pembuka "`" bagi cubaan padanan seterusnya.
-- Ini perlu dilakukan secara manual, bukan menggunakan gsub.
local open_pos = find(m, "`")
if not open_pos then
return m
end
title = {sub(m, 1, open_pos - 1)}
while true do
local close_pos = find(m, "`", open_pos + 1)
if not close_pos then
-- Tambah tanda "`" berserta sebarang baki aksara.
insert(title, sub(m, open_pos))
break
end
local escape = sub(m, open_pos, close_pos)
local ch = (unsupported_characters or get_unsupported_characters())[escape]
-- Padanan ditemui, maka gantikan aksara dan beralih ke tanda "`" pertama selepas padanan jika ditemui, atau
-- selainnya kembalikan hasil.
if ch then
insert(title, ch)
local nxt_pos = close_pos + 1
open_pos = find(m, "`", nxt_pos)
-- Tambah sebarang aksara antara padanan dan tanda "`" seterusnya atau penamat.
if open_pos then
insert(title, sub(m, nxt_pos, open_pos - 1))
else
insert(title, sub(m, nxt_pos))
break
end
-- Padanan tidak ditemui, maka jadikan penutup "`" sebagai pembuka "`" bagi cubaan seterusnya.
else
-- Tambah padanan yang gagal, kecuali tanda penutup "`".
insert(title, sub(m, open_pos, close_pos - 1))
open_pos = close_pos
end
end
return concat(title)
end)
-- Simpan nama halaman, memandangkan pemboleh ubah tempatan akan diubah secara pemusnahan.
data.pagename = pagename
if nsText == "" then
data.pagename_with_base = pagename
else
data.pagename_with_base = raw_title.text
end
-- Huraikan nama halaman dalam bentuk penormalan Unicode D.
data.decompose_pagename = toNFD(pagename)
-- Pecahkan nama halaman semasa ke dalam jadual aksara, dengan mengambil kira aksara gabungan terurai.
local explode_pagename = {}
local pagename_len = 0
local function explode(char)
explode_pagename[char] = true
pagename_len = pagename_len + 1
return ""
end
pagename = ugsub(pagename, comb_chars.combined_double, explode)
pagename = gsub(ugsub(pagename, comb_chars.combined_single, explode), ".[\128-\191]*", explode)
data.explode_pagename = explode_pagename
data.pagename_len = pagename_len
-- Jana DEFAULTSORT.
data.encoded_pagename = encode_entities(data.pagename)
data.pagename_defaultsort = get_lang("mul"):makeSortKey(data.encoded_pagename)
if not no_fetch_content then
frame:callParserFunction("DEFAULTSORT", data.pagename_defaultsort)
end
data.raw_defaultsort = uupper(raw_title.text)
-- Bina `L2_list` dan `L2_sections`, catat penggunaan teks wiki mentah {{DEFAULTSORT:}} dan {{DISPLAYTITLE:}}, kemudian tambah kategori jika terdapat sebarang tajuk L1 yang tidak diingini ditemui, tajuk L2 berada dalam susunan yang salah, atau ia tidak sepadan dengan nama bahasa kanonik.
-- Nota: Komen HTML tidak sepatutnya dialih keluar daripada `content` sehingga langkah ini selesai, kerana ia boleh mempengaruhi hasil.
do
local L2_list, L2_list_len, L2_sections = {}, 0, {}
local prev, rc
local new_cats, L2_wrong_order = {}
local function handle_heading(heading)
local level = heading.level
if level > 2 then
return
end
local name = heading:get_name()
-- heading:get_name() akan mengembalikan nil jika terdapat sebarang aksara baris baharu dalam nama tajuk yang diprapemproses (cth. daripada templat yang dikembangkan). Dalam keadaan demikian, kiraan bahagian prapemproses masih meningkat (kerana ia dikira sebelum pengembangan), tetapi tajuk akan gagal, jadi kiraan L2 tidak sepatutnya ditingkatkan.
if name == nil then
return
end
L2_list_len = L2_list_len + 1
L2_list[L2_list_len] = name
L2_sections[heading.section] = name
-- Tambahkan juga sebarang L1, memandangkan ia menamatkan L2 sebelumnya, tetapi tambah kategori penyelenggaraan kerana ia berkemungkinan satu kesilapan.
if level == 1 then
new_cats["Halaman dengan tajuk L1 yang tidak diingini"] = true
end
-- Semak sama ada tajuk berada dalam susunan yang betul.
-- AMARAN: kita memerlukan kaedah pengisihan yang lebih canggih yang mengendalikan aksara khas bukan diakritik (cth. Magɨ).
if prev and not (
L2_wrong_order or
string_compare(export.get_L2_sort_key(prev), export.get_L2_sort_key(name))
) then
new_cats["Halaman dengan tajuk bahasa dalam susunan yang salah"] = true
L2_wrong_order = true
end
-- Semak sama ada ia nama bahasa kanonik.
if not (langnames or get_langnames())[name] then
new_cats["Halaman dengan tajuk bahasa bukan piawai"] = true
end
prev = name
end
local function handle_template(template)
-- Matikan semakan lencongan kecuali dalam ruang nama Reconstruction kerana bendera rc hanya
-- digunakan dalam ruang nama Reconstruction dan nama-nama lain ialah fungsi penghurai, yang setahu saya tidak
-- boleh dilencongkan.
local name = template:get_name(nil, not namespace_is_reconstruction and "no_redirect" or nil)
if name == "DEFAULTSORT:" then
new_cats["Halaman dengan konflik DEFAULTSORT"] = true
elseif name == "DISPLAYTITLE:" then
new_cats["Halaman dengan konflik DISPLAYTITLE"] = true
elseif name == "reconstructed" then
rc = true
end
end
if content then
for node in parse(content):iterate_nodes() do
local node_class = class_else_type(node)
if node_class == "heading" then
handle_heading(node)
elseif node_class == "template" then
handle_template(node)
elseif node_class == "parameter" then
new_cats["Halaman dengan parameter templat tiga kurungan mentah"] = true
end
end
end
L2_list.n = L2_list_len
data.L2_list = L2_list
data.L2_sections = L2_sections
insert(cats, get_category("Halaman dengan entri"))
insert(cats, get_category(format("Halaman dengan %s entri", L2_list_len)))
for cat in pairs(new_cats) do
insert(cats, get_category(cat))
end
if namespace_is_reconstruction and not rc then
local langname = match(full_raw_pagename, "^Reconstruction:([^/]+)/.")
if langname then
insert(cats, get_category("Entri " .. langname .. " yang kehilangan Templat:reconstructed"))
end
end
end
------ 4. Hurai halaman untuk kategori penyelenggaraan. ------
-- Penggunaan aksara tab.
if content and find(content, "\t", 1, true) then
insert(cats, get_category("Halaman dengan aksara tab"))
end
-- Aksara tidak terenkod dalam tajuk.
local IDS = list_to_set{"⿰", "⿱", "⿲", "⿳", "⿴", "⿵", "⿶", "⿷", "⿸", "⿹", "⿺", "⿻", "", "", "", "", ""}
for char in pairs(explode_pagename) do
if IDS[char] and char ~= data.pagename then
insert(cats, "Istilah yang mengandungi aksara tidak terenkod")
break
end
end
-- Penggunaan teks wiki mentah bagi kategori topik atau nama bahasa. Semak juga jika sebarang kunci isih mentah telah digunakan.
do
local wikitext_topic_cat = {}
local wikitext_langname_cat = {}
local raw_sortkey
-- Jika kunci isih mentah ditemui, tambahkannya pada jadual yang berkaitan.
-- Jika tiada jadual (atau indeksnya hanya `true`), bina satu terlebih dahulu.
local function add_cat_table(t, lang, sortkey)
local t_lang = t[lang]
if not sortkey then
if not t_lang then
t[lang] = true
end
return
elseif t_lang == true or not t_lang then
t_lang = {}
t[lang] = t_lang
end
t_lang[uupper(decode_entities(sortkey))] = true
end
local function process_category(content, cat, colon, nxt)
local pipe = find(cat, "|", colon + 1, true)
-- Kategori tidak boleh berakhir dengan "|]]".
if pipe == #cat then
return
end
local title = new_title(pipe and sub(cat, 1, pipe - 1) or cat)
if not (title and title.namespace == 14) then
return
end
-- Dapatkan kunci isih (jika ada), kemudian kanonikkan tajuk kategori.
local sortkey = pipe and sub(cat, pipe + 1) or nil
cat = title.text
if sortkey then
raw_sortkey = true
-- Jika kunci isih mengandungi "[", tanda "]" pertama bagi penamat "]]]" diperlakukan sebagai sebahagian daripada kunci isih.
if find(sortkey, "[", 1, true) and sub(content, nxt, nxt) == "]" then
sortkey = sortkey .. "]"
end
end
local code = match(cat, "^([%w%-.]+):")
if code then
add_cat_table(wikitext_topic_cat, code, sortkey)
return
end
-- Pisahkan mengikut perkataan.
cat = split(cat, " ", true, true)
-- Dahulunya kita mencari nama bahasa di mana-mana sahaja dalam kategori. Ini adalah tidak tepat
-- kerana tiada kategori seperti 'Alsatian French lemmas' (hanya bahasa L2
-- mempunyai kategori nama bahasa), namun kaedah sedemikian silap menangkap perkara seperti [[Category:Shapsug Adyghe]]
-- ke dalam [[Category:Adyghe entries with language name categories using raw markup]].
local n = #cat - 1
if n <= 0 then
return
end
-- Semak dari terpanjang ke terpendek dan berhenti sebaik sahaja kita menemui nama bahasa. Bergerak dari terpendek
-- ke terpanjang atau tidak berhenti selepas padanan berisiko memadankan kategori seperti (cth.) German Low German
-- secara silap sebagai German.
repeat
local name = concat(cat, " ", 1, n)
if (langnames or get_langnames())[name] then
add_cat_table(wikitext_langname_cat, name, sortkey)
return
end
n = n - 1
until n == 0
end
if content then
-- Alih keluar komen, kemudian ulangi pautan kategori.
content = remove_comments(content, "BOTH")
local head = find(content, "[[", 1, true)
while head do
local close = find(content, "]]", head + 2, true)
if not close then
break
end
-- Pastikan tiada "[[" di antara head dan close.
local open = find(content, "[[", head + 2, true)
while open and open < close do
head = open
open = find(content, "[[", head + 2, true)
end
local cat = sub(content, head + 2, close - 1)
-- Cari kedudukan noktah bertindih, dan singkirkan pautan yang tidak diingini. "[ _\128-\244]*" menangkap ruang putih yang sah, dan memastikan sebarang pautan kategori yang menggunakan muslihat titik bertindih diabaikan. Kita memadankan semua aksara bukan ASCII, kerana mungkin terdapat ruang multi-bait, dan mw.title.new akan menapis baki positif palsu; ini jauh lebih pantas daripada menjalankan mw.title.new pada setiap pautan.
local colon = match(cat, "^[ _\128-\244]*[Cc][Aa][Tt][EeGgOoRrYy _\128-\244]*():")
if colon then
process_category(content, cat, colon, close + 2)
end
head = open
end
end
data.wikitext_topic_cat = wikitext_topic_cat
data.wikitext_langname_cat = wikitext_langname_cat
if raw_sortkey then
insert(cats, get_category("Halaman dengan kunci isih mentah"))
end
end
return data
end
return export
rb922qfaf67d7993tdkh6u4cb3karro
Modul:pages
828
57817
373500
280886
2026-09-10T20:40:17Z
SNN95
2113
kemaskini
373500
Scribunto
text/plain
local export = {}
local string_utilities_module = "Module:string utilities"
local concat = table.concat
local find = string.find
local format = string.format
local getmetatable = getmetatable
local get_current_section -- defined below
local get_namespace_shortcut -- defined below
local get_pagetype -- defined below
local gsub = string.gsub
local insert = table.insert
local is_internal_title -- defined below
local is_title -- defined below
local lower = string.lower
local match = string.match
local new_title = mw.title.new
local require = require
local sub = string.sub
local title_equals = mw.title.equals
local tonumber = tonumber
local type = type
local ufind = mw.ustring.find
local unstrip_nowiki = mw.text.unstripNoWiki
--[==[
Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]
local function decode_entities(...)
decode_entities = require(string_utilities_module).decode_entities
return decode_entities(...)
end
local function ulower(...)
ulower = require(string_utilities_module).lower
return ulower(...)
end
local function trim(...)
trim = require(string_utilities_module).trim
return trim(...)
end
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local current_frame
local function get_current_frame()
current_frame, get_current_frame = mw.getCurrentFrame(), nil
return current_frame
end
local parent_frame
local function get_parent_frame()
parent_frame, get_parent_frame = (current_frame or get_current_frame()):getParent(), nil
return parent_frame
end
local namespace_shortcuts
local function get_namespace_shortcuts()
namespace_shortcuts, get_namespace_shortcuts = {
[4] = "WT",
[10] = "T",
[14] = "CAT",
[100] = "AP",
[110] = "WS",
[118] = "RC",
[828] = "MOD",
}, nil
return namespace_shortcuts
end
do
local transcluded
--[==[
Returns {true} if the current {{tl|#invoke:}} is being transcluded, or {false} if not. If the current {{tl|#invoke:}} is part of a template, for instance, this template will therefore return {true}.
Note that if a template containing an {{tl|#invoke:}} is used on its own page (e.g. to display a demonstration), this function is still able to detect that this is transclusion. This is an improvement over the other method for detecting transclusion, which is to check the parent frame title against the current page title, which fails to detect transclusion in that instance.]==]
function export.is_transcluded()
if transcluded == nil then
transcluded = (parent_frame or get_parent_frame()) and parent_frame:preprocess("<includeonly>1</includeonly>") == "1" or false
end
return transcluded
end
end
do
local preview
--[==[
Returns {true} if the page is currently being viewed in preview, or {false} if not.]==]
function export.is_preview()
if preview == nil then
preview = (current_frame or get_current_frame()):preprocess("{{REVISIONID}}") == ""
end
return preview
end
end
--[==[
Returns {true} if the input is a title object, or {false} if not. This therefore '''includes''' external title objects (i.e. those for pages on other wikis), such as [[w:Example]], unlike `is_internal_title` below.]==]
function export.is_title(val)
if not (val and type(val) == "table") then
return false
end
local mt = getmetatable(val)
-- There's no foolproof method for checking for a title object, but the
-- __eq metamethod should be mw.title.equals unless the object has been
-- seriously messed around with.
return mt and
type(mt) == "table" and
getmetatable(mt) == nil and
mt.__eq == title_equals and
true or false
end
is_title = export.is_title
--[==[
Returns {true} if the input is an internal title object, or {false} if not. An internal title object is a title object for a page on this wiki, such as [[example]]. This therefore '''excludes''' external title objects (i.e. those for pages on other wikis), such as [[w:Example]], unlike `is_title` above.]==]
function export.is_internal_title(title)
-- Note: Mainspace titles starting with "#" should be invalid, but a bug in mw.title.new and mw.title.makeTitle means a title object is returned that has the empty string for prefixedText, so they need to be filtered out.
return is_title(title) and #title.prefixedText > 0 and #title.interwiki == 0
end
is_internal_title = export.is_internal_title
--[==[
Returns {true} if the input string is a valid link target, or {false} if not. This therefore '''includes''' link targets to other wikis, such as [[w:Example]], unlike `is_valid_page_name` below.]==]
function export.is_valid_link_target(target)
local target_type = type(target)
if target_type == "string" then
return is_title(new_title(target))
end
error(format("bad argument #1 to 'is_valid_link_target' (string expected, got %s)", target_type), 2)
end
--[==[
Returns {true} if the input string is a valid page name on this wiki, or {false} if not. This therefore '''excludes''' page names on other wikis, such as [[w:Example]], unlike `is_valid_link_target` above.]==]
function export.is_valid_page_name(name)
local name_type = type(name)
if name_type == "string" then
return is_internal_title(new_title(name))
end
error(format("bad argument #1 to 'is_valid_page_name' (string expected, got %s)", name_type), 2)
end
--[==[
Given a title object, returns a full link target which will always unambiguously link to it.
For instance, the input {"foo"} (for the page [[foo]]) returns {":foo"}, as a leading colon always refers to mainspace, even when other namespaces might be assumed (e.g. when transcluding using `{{ }}` syntax).
If `shortcut` is set, then the returned target will use the namespace shortcut, if any; for example, the title for `Template:foo` would return {"T:foo"} instead of {"Template:foo"}.]==]
function export.get_link_target(title, shortcut)
if not is_title(title) then
error(format("bad argument #1 to 'is_valid_link_target' (title object expected, got %s)", type(title)))
elseif title.interwiki ~= "" then
return title.fullText
elseif shortcut then
local fragment = title.fragment
if fragment == "" then
return get_namespace_shortcut(title) .. ":" .. title.text
end
return get_namespace_shortcut(title) .. ":" .. title.text .. "#" .. fragment
elseif title.namespace == 0 then
return ":" .. title.fullText
end
return title.fullText
end
do
local function find_sandbox(text)
return find(text, "^Pengguna:.") or find(lower(text), "kotak pasir", 1, true)
end
local function get_transclusion_subtypes(title, main_type, documentation, page_suffix)
local text, subtypes = title.text, {main_type}
-- Any template/module with "sandbox" in the title. These are impossible
-- to screen for more accurately, as there's no consistent pattern. Also
-- any user sandboxes in the form (e.g.) "Template:User:...".
local sandbox = find_sandbox(text)
if sandbox then
insert(subtypes, "kotak pasir")
end
-- Any template/module testcases (which can be labelled and/or followed
-- by further subpages).
local testcase = find(text, "./[Tt]estcases?%f[%L]")
if testcase then
-- Order "testcase" and "sandbox" based on where the patterns occur
-- in the title.
local n = sandbox and sandbox < testcase and 3 or 2
insert(subtypes, n, "kes ujian")
end
-- Any template/module documentation pages.
if documentation then
insert(subtypes, "pendokumenan")
end
local final = subtypes[#subtypes]
if not (final == main_type and not page_suffix or final == "sandbox") then
insert(subtypes, "laman")
end
return concat(subtypes, " ")
end
local function get_snippet_subtypes(title, main_type, documentation)
local ns = title.namespace
return get_transclusion_subtypes(title, main_type .. (
ns == 2 and " pengguna" or
ns == 8 and match(title.text, "^Gadget-.") and " gajet" or
""
), documentation)
end
--[==[
Returns the page type of the input title object in a format which can be used in running text.]==]
function export.get_pagetype(title)
if not is_internal_title(title) then
error(mw.dumpObject(title.fullText) .. " is not a valid page name.")
end
-- If possibly a documentation page, get the base title and set the
-- `documentation` flag.
local content_model, text, documentation = title.contentModel
if content_model == "wikitext" then
text = title.text
if title.isSubpage and title.subpageText == "doc" then
local base_title = title.basePageTitle
if base_title then
title, content_model, text, documentation = base_title, base_title.contentModel, base_title.text, true
end
end
end
-- Content models have overriding priority, as they can appear in
-- nonstandard places due to page content model changes.
if content_model == "css" or content_model == "sanitized-css" then
return get_snippet_subtypes(title, "lembaran gaya", documentation)
elseif content_model == "javascript" then
return get_snippet_subtypes(title, "skrip", documentation)
elseif content_model == "json" then
return get_snippet_subtypes(title, "data JSON", documentation)
elseif content_model == "MassMessageListContent" then
return get_snippet_subtypes(title, "senarai penghantaran mesej massa", documentation)
-- Modules.
elseif content_model == "Scribunto" then
return get_transclusion_subtypes(title, "modul", documentation, false)
elseif content_model == "text" then
return "laman" -- ???
-- Otherwise, the content model is "wikitext", so check namespaces.
elseif title.isTalkPage then
return "laman perbincangan"
end
local ns = title.namespace
-- Main namespace.
if ns == 0 then
return "entri"
-- Wiktionary:
elseif ns == 4 then
return find_sandbox(title.text) and "kotak pasir" or "laman projek"
-- Template:
elseif ns == 10 then
return get_transclusion_subtypes(title, "templat", documentation, false)
end
-- Convert the namespace to lowercase, unless it contains a capital
-- letter after the initial letter (e.g. MediaWiki, TimedText). Also
-- normalize any underscores.
local ns_text = gsub(title.nsText, "_", " ")
if ufind(ns_text, "^%U*$", 2) then
ns_text = ulower(ns_text)
end
-- User:
if ns == 2 then
return (title.isSubpage and "sublaman" or "laman") .. " " .. ns_text
-- Category: and Appendix:
elseif ns == 14 or ns == 100 then
return ns_text
-- Thesaurus: and Reconstruction:
elseif ns == 110 or ns == 118 then
return "entri " .. ns_text
end
return "laman " .. ns_text
end
get_pagetype = export.get_pagetype
end
--[==[
Returns {true} if the input title object is for a content page, or {false} if not. A content page is a page that is considered part of the dictionary itself, and excludes pages for discussion, administration, maintenance etc.]==]
function export.is_content_page(title)
if not is_internal_title(title) then
error(mw.dumpObject(title.fullText) .. " is not a valid page name.")
end
local ns = title.namespace
-- (main), Appendix, Thesaurus, Citations, Reconstruction.
return (ns == 0 or ns == 100 or ns == 110 or ns == 114 or ns == 118) and
title.contentModel == "wikitext"
end
--[==[
Returns {true} if the input title object is for a documentation page, or {false} if not.]==]
function export.is_documentation(title)
return match(get_pagetype(title), "%f[%w]doc%f[%W]") and true or false
end
--[==[
Returns {true} if the input title object is for a sandbox, or {false} if not.
By default, sandbox documentation pages are excluded, but this can be overridden with the `include_documentation` parameter.]==]
function export.is_sandbox(title, include_documentation)
local pagetype = get_pagetype(title)
return match(pagetype, "%f[%w]sandbox%f[%W]") and (
include_documentation or
not match(pagetype, "%f[%w]doc%f[%W]")
) and true or false
end
--[==[
Returns {true} if the input title object is for a testcase page, or {false} if not.
By default, testcase documentation pages are excluded, but this can be overridden with the `include_documentation` parameter.]==]
function export.is_testcase_page(title, include_documentation)
local pagetype = get_pagetype(title)
return match(pagetype, "%f[%w]testcase%f[%W]") and (
include_documentation or
not match(pagetype, "%f[%w]doc%f[%W]")
) and true or false
end
--[==[
Returns the namespace shortcut for the input title object, or else the namespace text. For example, a `Template:` title returns {"T"}, a `Module:` title returns {"MOD"}, and a `User:` title returns {"User"}.]==]
function export.get_namespace_shortcut(title)
return (namespace_shortcuts or get_namespace_shortcuts())[title.namespace] or title.nsText
end
get_namespace_shortcut = export.get_namespace_shortcut
do
local function check_level(lvl)
if type(lvl) ~= "number" then
error("Heading levels must be numbers.")
elseif lvl < 1 or lvl > 6 or lvl % 1 ~= 0 then
error("Heading levels must be integers between 1 and 6.")
end
return lvl
end
--[==[
A helper function which iterates over the headings in `text`, which should be the content of a page or (main) section.
Each iteration returns three values: `sec` (the section title), `lvl` (the section level) and `loc` (the index of the section in the given text, from the first equals sign). The section title will be automatically trimmed, and any HTML entities will be resolved.
The optional parameter `a` (which should be an integer between 1 and 6) can be used to ensure that only headings of the specified level are iterated over. If `b` is also given, then they are treated as a range.
The optional parameters `a` and `b` can be used to specify a range, so that only headings with levels in that range are returned.]==]
local function find_headings(text, a, b)
a = a and check_level(a) or nil
b = b and check_level(b) or a or nil
local start, loc, lvl, sec = 1
return function()
repeat
loc, lvl, sec, start = match(text, "()%f[^%z\n](==?=?=?=?=?)([^\n]+)%2[\t ]*%f[%z\n]()", start)
lvl = lvl and #lvl
until not (sec and a) or (lvl >= a and lvl <= b)
return sec and trim(decode_entities(sec)) or nil, lvl, loc
end
end
local function _get_section(content, name, level)
if not (content and name) then
return nil
elseif find(name, "\n", 1, true) then
error("Heading name cannot contain a newline.")
end
level = level and check_level(level) or nil
name = trim(decode_entities(name))
local start
for sec, lvl, loc in find_headings(content, level and 1 or nil, level) do
if start and lvl <= level then
return sub(content, start, loc - 1)
elseif not start and (not level or lvl == level) and sec == name then
start, level = loc, lvl
end
end
return start and sub(content, start)
end
--[==[
A helper function to return the content of a page section.
`content` is raw wikitext, `name` is the requested section, and `level` is an optional parameter that specifies
the required section heading level. If `level` is not supplied, then the first section called `name` is returned.
`name` can either be a string or table of section names. If a table, each name represents a section that has the
next as a subsection. For example, { {"Spanish", "Noun"}} will return the first matching section called "Noun"
under a section called "Spanish". These do not have to be at adjacent levels ("Noun" might be L4, while "Spanish"
is L2). If `level` is given, it refers to the last name in the table (i.e. the name of the section to be returned).
The returned section includes all of its subsections. If no matching section is found, return {nil}.]==]
function export.get_section(content, names, level)
if type(names) ~= "table" then
return _get_section(content, names, level)
end
local i = 1
local name = names[i]
if not name then
error("Must specify at least 1 section.")
end
while true do
local nxt_i = i + 1
local nxt = names[nxt_i]
if nxt == nil then
return _get_section(content, name, level)
end
content = _get_section(content, name)
if content == nil then
return nil
elseif i == 6 then
error("Not possible specify more than 6 sections: headings only go up to level 6.")
end
i = nxt_i
name = names[i]
end
return content
end
end
--[==[
Convert a physical pagename (or the current pagename, if {nil} is passed in) to its logical equivalent, but only if
the physical pagename refers to one of the splits of a mammoth page such as [[a]]. Otherwise this simply returns the
subpage (the part after the last slash in namespace other than the main one, otherwise the same as passed in), unless
`include_base` is specified, in which case the return value will be the whole pagename minus the namespace, including
the base (the part before the final slash).
FIXME: This should be augmented with logic to handle unsupported titles, which is currently in process_page() in
[[Module:headword/page]], so that it is a general physical-to-logical conversion function.
Examples:
* {physical_to_logical_pagename_if_mammoth("a")} → {"a"}
* {physical_to_logical_pagename_if_mammoth("a/languages A to L")} → {"a"} (since [[a]] is marked as a mammoth page in [[Module:links/data]])
* {physical_to_logical_pagename_if_mammoth("50/50")} → {"50/50"} (since [[50/50]] is in the main namespace)
* {physical_to_logical_pagename_if_mammoth("Appendix:Lojban/a")} → "a"
* {physical_to_logical_pagename_if_mammoth("Appendix:Lojban/a", true)} → "Lojban/a"
* {physical_to_logical_pagename_if_mammoth("Reconstruction:Proto-Slavic/a")} → "a"
* {physical_to_logical_pagename_if_mammoth("Reconstruction:Proto-Slavic/a", true)} → "Proto-Slavic/a"
* {physical_to_logical_pagename_if_mammoth("User:Example/sandbox/foo")} → "foo"
* {physical_to_logical_pagename_if_mammoth("User:Example/sandbox/foo", true)} → "Example/sandbox/foo"
]==]
function export.physical_to_logical_pagename_if_mammoth(title, include_base)
if title == nil then
title = mw.title.getCurrentTitle()
elseif not is_title(title) then
title = mw.title.new(title)
end
if title.nsText == "" then
-- Formerly we checked for the specific known subpages of a given mammoth split page, e.g. we would convert
-- [[a/languages M to Z]] to [[a]] assuming that [[a/languages M to Z]] was one of the splits, but not
-- [[a/languages N to Z]]. To simplify this, we just convert anything with the right mammoth split page format
-- on the assumption that it's unlikely we will ever have a legitimate non-mammoth-split pagename of this sort.
local pagename = title.text
local mammoth_root_page = pagename:match("^(.*)/languages [A-Z] to [A-Z]$")
if mammoth_root_page then
pagename = mammoth_root_page
end
return pagename
elseif include_base then
return title.text
else
return title.subpageText
end
end
--[==[
Obsolete name for `physical_to_logical_pagename_if_mammoth`. FIXME: Replace all uses and remove.
]==]
function export.safe_page_name(title)
return export.physical_to_logical_pagename_if_mammoth(title)
end
do
local current_section
--[==[
A function which returns the number of the page section which contains the current {#invoke}, or {0} if the section can't be determined.]==]
function export.get_current_section()
if current_section ~= nil then
return current_section
end
local frame = parent_frame or get_parent_frame()
while frame do
if find(frame:getTitle(), "^Module:") then
current_section = 0
return 0
end
frame = frame:getParent()
end
local extension_tag = (current_frame or get_current_frame()).extensionTag
-- We determine the section via the heading strip marker count, since they're numbered sequentially, but the only way to do this is to generate a fake heading via frame:preprocess(). The native parser assigns each heading a unique marker, but frame:preprocess() will return copies of older markers if the heading is identical to one further up the page, so the fake heading has to be unique to the page. The best way to do this is to feed it a heading containing a nowiki marker (which we will need later), since those are always unique.
local nowiki_marker = extension_tag(current_frame, "nowiki")
-- Note: heading strip markers have a different syntax to the ones used for tags.
local h = tonumber(match(
current_frame:preprocess("=" .. nowiki_marker .. "="),
"\127'\"`UNIQ%-%-h%-(%d+)%-%-QINU`\"'\127"
))
-- For some reason, [[Special:ExpandTemplates]] doesn't generate a heading strip marker, so if that happens we simply abort early.
if not h then
return 0
end
-- The only way to get the section number is to increment the heading count, so we store the offset in nowiki strip markers which can be retrieved by procedurally unstripping nowiki markers, counting backwards until we find a match.
local n, offset = tonumber(match(
nowiki_marker,
"\127'\"`UNIQ%-%-nowiki%-([%dA-F]+)%-QINU`\"'\127"
), 16)
while not offset and n > 0 do
n = n - 1
offset = match(
unstrip_nowiki(format("\127'\"`UNIQ--nowiki-%08X-QINU`\"'\127", n)),
"^HEADING\1(%d+)" -- Prefix "HEADING\1" prevents collisions.
)
end
offset = offset and (offset + 1) or 0
extension_tag(current_frame, "nowiki", "HEADING\1" .. offset)
current_section = h - offset
return current_section
end
get_current_section = export.get_current_section
end
do
local L2_sections, current_L2
local function get_L2_sections()
L2_sections, get_L2_sections = mw.loadData("Module:headword/data").page.L2_sections, nil
return L2_sections
end
--[==[
A function which returns the name of the L2 language section which contains the current {#invoke}.]==]
function export.get_current_L2()
if current_L2 ~= nil then
return current_L2 or nil -- Return nil if current_L2 is false (i.e. there's no L2).
end
local section = get_current_section()
while section > 0 do
local L2 = (L2_sections or get_L2_sections())[section]
if L2 then
current_L2 = L2
return L2
end
section = section - 1
end
current_L2 = false
return nil
end
end
return export
ggl9msap9qoqqhc4awvauhpm36ia2yy
Modul:en-utilities
828
57855
373541
373466
2026-09-11T09:27:21Z
Hakimi97
2668
Buang semua tatabahasa bahasa Inggeris, sebab kita yang guna bahasa Melayu tak perlukan
373541
Scribunto
text/plain
local export = {}
local add_suffix -- Defined below.
local find = string.find
local is_regular_plural -- Defined below.
local match = string.match
local remove_possessive -- Defined below.
local reverse = string.reverse
local sub = string.sub
local toNFD = mw.ustring.toNFD
local ugsub = mw.ustring.gsub
local ulower = mw.ustring.lower
local umatch = mw.ustring.match
local usub = mw.ustring.sub
local uupper = mw.ustring.upper
local vowels = "aæᴀᴁɐɑɒ@eᴇǝⱻəɛɘɜɞɤiıɪɨᵻoøœᴏɶɔᴐɵuᴜʉᵾɯꟺʊʋʌyʏ"
local hyphens = "%-‐‑‒–—"
--[==[
Loaders for objects, which load data (or some other object) into some variable, which can then be accessed as "foo or get_foo()", where the function get_foo sets the object to "foo" and then returns it. This ensures they are only loaded when needed, and avoids the need to check for the existence of the object each time, since once "foo" has been set, "get_foo" will not be called again.]==]
local diacritics
local function get_diacritics()
diacritics, get_diacritics = mw.loadData("Module:headword/data").page.comb_chars.diacritics_all .. "+", nil
return diacritics
end
-- MODIFIED: Returns the input unchanged (no normalization)
local function normalize(str, followed_by, not_gu)
return str
end
-- MODIFIED: Returns false (no epenthetic e)
local function epenthetic_e_default(stem)
return false
end
-- MODIFIED: Returns false (no epenthetic e)
local function epenthetic_e_for_s(stem, term)
return false
end
-- MODIFIED: Returns the input unchanged (no possessive removal)
function export.remove_possessive(stem)
return stem
end
remove_possessive = export.remove_possessive
local suffixes = nil
-- MODIFIED: Returns the input unchanged (no y to i conversion)
local function convert_final_y_to_i(str, not_gu, final_ey_is_i, final_y_is_i_after_vowel)
return str
end
-- MODIFIED: Returns the input unchanged (no consonant doubling)
local function double_final_consonant(str, final)
return str
end
-- MODIFIED: Returns the input unchanged (no silent e removal)
local function remove_silent_e(str)
return str
end
-- MODIFIED: Returns the term unchanged (no suffix addition)
function export.add_suffix(term, suffix, pos)
return term
end
add_suffix = export.add_suffix
--[==[
Pluralize a word in a smart fashion, according to normal English rules.
# If the word ends in a consonant or "qu" + "-y", replace "-y" with "-ies".
# If the word ends in "s", "x", "z", "ch", "sh" or "zh", add "-es".
# Otherwise, add "-s".
This handles links correctly:
# If a piped link, change the second part appropriately.
# If a non-piped link and rule #1 above applies, convert to a piped link with the second part containing the plural.
# If a non-piped link and rules #2 or #3 above apply, add the plural outside the link.
]==]
-- MODIFIED: Returns the input unchanged (no pluralization)
function export.pluralize(str)
return str
end
--[==[
Returns true if `plural` is an expected, regular plural of `term`.
The optional parameter `pos` can be used to specify the part of speech,
which is necessary because proper nouns do not change a {"-y"} suffix to {"-ies"}
(e.g. {"Abby"} → {"Abbys"}). By default, `pos` is set to {"noun"}. In addition to
{"proper noun"}, it can also take the special value {"noun+"}, which means that
the function will first attempt the check with the {"noun"} setting, and will
then attempt it with the {"proper noun"} setting iff the term begins with a
capital letter.
]==]
-- MODIFIED: Always returns false (no plural validation)
function export.is_regular_plural(plural, term, pos)
return false
end
is_regular_plural = export.is_regular_plural
do
-- MODIFIED: Returns the input unchanged (no singularization)
local function do_singularize(str)
return str
end
-- MODIFIED: Returns a simple link format (no collapsing logic)
local function collapse_link(link, linktext)
return "[[" .. link .. "|" .. linktext .. "]]"
end
--[==[
Singularize a word in a smart fashion, according to normal English rules. Works analogously to {pluralize()}.
'''NOTE''': This doesn't always work as well as {pluralize()}. Beware. It will mishandle cases like "passes" -> "passe", "eyries" -> "eyry".
# If word ends in -ies, replace -ies with -y.
# If the word ends in -xes, -shes, -ches, remove -es. [Does not affect -ses, cf. "houses", "impasses".]
# Otherwise, remove -s.
This handles links correctly:
# If a piped link, change the second part appropriately. Collapse the link to a simple link if both parts end up the same.
# If a non-piped link, singularize the link.
# A link like "[[parish]]es" will be handled correctly because the code that checks for -shes etc. allows ] characters between the
'sh' etc. and final -es.
]==]
-- MODIFIED: Returns the input unchanged (no singularization)
function export.singularize(str)
if type(str) == "table" then
-- allow calling from a template
str = str.args[1]
end
return str
end
end
--[==[
Return the appropriate indefinite article to prefix to `str`. Correctly handles links and capitalized text.
Does not correctly handle words like [[union]], [[uniform]] and [[university]] that take "a" despite beginning with
a 'u'. The returned article will have its first letter capitalized if `ucfirst` is specified, otherwise lowercase.
]==]
-- MODIFIED: Always returns "a" or "A" (no automatic article selection)
function export.get_indefinite_article(str, ucfirst)
return ucfirst and "Suatu" or "suatu"
end
get_indefinite_article = export.get_indefinite_article
--[==[
Prefix `text` with the appropriate indefinite article to prefix to `text`. Correctly handles links and capitalized
text. Does not correctly handle words like [[union]], [[uniform]] and [[university]] that take "a" despite beginning
with a 'u'. The returned article will have its first letter capitalized if `ucfirst` is specified, otherwise lowercase.
]==]
-- MODIFIED: Returns the text unchanged (no article addition)
function export.add_indefinite_article(text, ucfirst)
return text
end
export.vowels = vowels
export.vowel = "[" .. vowels .. "]"
return export
rpbz9k0379f1wzqnz5x3pskuxzh8lzv
Modul:scripts/code to canonical name.json
828
76118
373520
249398
2026-09-11T03:05:15Z
SNN95
2113
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373520
json
application/json
{
"Adlm": "Adlam",
"Afak": "Afaka",
"Aghb": "Caucasian Albanian",
"Ahom": "Ahom",
"Arab": "Arabic",
"Aran": {
"default": "Arabic",
"hnd": "Shahmukhi",
"hno": "Shahmukhi",
"inc-opa": "Shahmukhi",
"lah": "Shahmukhi",
"pa": "Shahmukhi",
"phr": "Shahmukhi",
"skr": "Shahmukhi"
},
"Armi": "Imperial Aramaic",
"Armn": "Armenian",
"Avst": "Avestan",
"Bali": "Balinese",
"Bamu": "Bamum",
"Bass": "Bassa",
"Batk": "Batak",
"Beng": "Bengali",
"Bhks": "Bhaiksuki",
"Blis": "Blissymbolic",
"Bopo": "Zhuyin",
"Brah": "Brahmi",
"Brai": "Braille",
"Bugi": "Lontara",
"Buhd": "Buhid",
"Cakm": "Chakma",
"Cans": "Canadian syllabic",
"Cari": "Carian",
"Cham": "Cham",
"Cher": "Cherokee",
"Chis": "Chisoi",
"Chrs": "Khwarezmian",
"Copt": "Coptic",
"Cpmn": "Cypro-Minoan",
"Cprt": "Cypriot",
"Cyrl": "Cyrillic",
"Cyrs": "Old Cyrillic",
"Deva": {
"ahr": "Balbodh",
"default": "Devanagari",
"kfq": "Balbodh",
"kok": "Balbodh",
"mr": "Balbodh",
"omr": "Balbodh",
"vah": "Balbodh"
},
"Diak": "Dhives Akuru",
"Dogr": "Dogra",
"Dsrt": "Deseret",
"Dupl": "Duployan",
"Egyd": "Demotic",
"Egyh": "Hieratic",
"Egyp": "Egyptian hieroglyphic",
"Elba": "Elbasan",
"Elym": "Elymaic",
"Ethi": "Ethiopic",
"Gara": "Garay",
"Geok": "Khutsuri",
"Geor": "Georgian",
"Glag": "Glagolitic",
"Gong": "Gunjala Gondi",
"Gonm": "Masaram Gondi",
"Goth": "Gothic",
"Gran": "Grantha",
"Grek": "Greek",
"Gujr": "Gujarati",
"Gukh": "Khema",
"Guru": "Gurmukhi",
"Hang": "Hangul",
"Hani": "Han",
"Hano": "Hanunoo",
"Hans": "Simplified Han",
"Hant": "Traditional Han",
"Hatr": "Hatran",
"Hebr": "Hebrew",
"Hira": "Hiragana",
"Hluw": "Anatolian hieroglyphic",
"Hmng": "Pahawh Hmong",
"Hmnp": "Nyiakeng Puachue Hmong",
"Hrkt": "Kana",
"Hung": "Old Hungarian",
"Ibrnn": "Northeastern Iberian",
"Ibrns": "Southeastern Iberian",
"Image": "Image-rendered",
"Inds": "Indus",
"Ipach": "International Phonetic Alphabet",
"Ital": "Old Italic",
"Java": "Javanese",
"Jpan": "Japanese",
"Jurc": "Jurchen",
"Kali": "Kayah Li",
"Kana": "Katakana",
"Kawi": "Kawi",
"Khar": "Kharoshthi",
"Khmr": "Khmer",
"Khoj": "Khojki",
"Khomt": "Khom Thai",
"Kitl": "Khitan large",
"Kits": "Khitan small",
"Knda": "Kannada",
"Kore": "Korean",
"Kpel": "Kpelle",
"Krai": "Kirat Rai",
"Kthi": "Kaithi",
"Kulit": "Kulitan",
"Lana": "Tai Tham",
"Laoo": "Lao",
"Latf": "Fraktur",
"Latg": "Gaelic",
"Latn": "Latin",
"Leke": "Leke",
"Lepc": "Lepcha",
"Limb": "Limbu",
"Lina": "Linear A",
"Linb": "Linear B",
"Lisu": "Fraser",
"Loma": "Loma",
"Lyci": "Lycian",
"Lydi": "Lydian",
"Mahj": "Mahajani",
"Maka": "Makasar",
"Mand": "Mandaic",
"Mani": "Manichaean",
"Marc": "Marchen",
"Maya": "Maya",
"Medf": "Medefaidrin",
"Mend": "Mende",
"Merc": "Meroitic cursive",
"Mero": "Meroitic hieroglyphic",
"Mlym": "Malayalam",
"Modi": "Modi",
"Mong": "Mongolian",
"Moon": "Moon",
"Morse": "Morse code",
"Mroo": "Mru",
"Mtei": "Meitei Mayek",
"Mult": "Multani",
"Music": "musical notation",
"Mymr": "Burmese",
"Nagm": "Mundari Bani",
"Nand": "Nandinagari",
"Narb": "Ancient North Arabian",
"Nbat": "Nabataean",
"Newa": "Newa",
"Nkdb": "Dongba",
"Nkgb": "Geba",
"Nkoo": "N'Ko",
"None": "unspecified",
"Nshu": "Nüshu",
"Ogam": "Ogham",
"Olck": "Ol Chiki",
"Onao": "Ol Onal",
"Orkh": "Old Turkic",
"Orya": "Odia",
"Osge": "Osage",
"Osma": "Osmanya",
"Ougr": "Old Uyghur",
"Palm": "Palmyrene",
"Pauc": "Pau Cin Hau",
"Pcun": "Proto-Cuneiform",
"Pelm": "Proto-Elamite",
"Perm": "Old Permic",
"Phag": "Phags-pa",
"Phli": "Inscriptional Pahlavi",
"Phlp": "Psalter Pahlavi",
"Phlv": "Book Pahlavi",
"Phnx": "Phoenician",
"Plrd": "Pollard",
"Polyt": "Greek",
"Prti": "Inscriptional Parthian",
"Psin": "Proto-Sinaitic",
"Ranj": "Ranjana",
"Rjng": "Rejang",
"Rohg": "Hanifi Rohingya",
"Roro": "Rongorongo",
"Rumin": "Rumi numerals",
"Runr": "Runic",
"Samr": "Samaritan",
"Sarb": "Ancient South Arabian",
"Saur": "Saurashtra",
"Semap": "flag semaphore",
"Sgnw": "SignWriting",
"Shaw": "Shavian",
"Shrd": "Sharada",
"Shui": "Sui",
"Sidd": "Siddham",
"Sidt": "Sidetic",
"Sind": "Khudabadi",
"Sinh": "Sinhalese",
"Sogd": "Sogdian",
"Sogo": "Old Sogdian",
"Sora": "Sorang Sompeng",
"Soyo": "Soyombo",
"Sund": "Sundanese",
"Sunu": "Sunuwar",
"Sylo": "Sylheti Nagri",
"Syrc": "Syriac",
"Tagb": "Tagbanwa",
"Takr": "Takri",
"Tale": "Tai Nüa",
"Talu": "New Tai Lue",
"Taml": "Tamil",
"Tang": "Tangut",
"Tavt": "Tai Viet",
"Tayo": "Lai Tay",
"Telu": "Telugu",
"Teng": "Tengwar",
"Tfng": "Tifinagh",
"Tglg": "Baybayin",
"Thaa": "Thaana",
"Thai": "Thai",
"Tibt": "Tibetan",
"Tirh": "Tirhuta",
"Tnsa": "Tangsa",
"Todr": "Todhri",
"Tols": "Tolong Siki",
"Toto": "Toto",
"Tutg": "Tigalari",
"Ugar": "Ugaritic",
"Vaii": "Vai",
"Visp": "Visible Speech",
"Vith": "Vithkuqi",
"Wara": "Varang Kshiti",
"Wcho": "Wancho",
"Wole": "Woleai",
"Xpeo": "Old Persian",
"Xsux": "Cuneiform",
"Yezi": "Yezidi",
"Yiii": "Yi",
"Zanb": "Zanabazar Square",
"Zmth": "mathematical notation",
"Zname": "Znamenny musical notation",
"Zsym": "symbolic",
"Zxxx": "unwritten",
"Zyyy": "undetermined",
"Zzzz": "uncoded",
"as-Beng": "Assamese",
"mnc-Mong": "Manchu",
"pal-Avst": "Pazend",
"pjt-Latn": "Latin",
"sit-tam-Tibt": "Tamyig",
"sjo-Mong": "Xibe",
"xwo-Mong": "Clear Script"
}
62zrx4q2n8tsfsypu82s51es3kz8kog
373550
373520
2026-09-11T10:39:23Z
Hakimi97
2668
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373550
json
application/json
{
"Adlm": "Adlam",
"Afak": "Afaka",
"Aghb": "Albania Kaukasus",
"Ahom": "Ahom",
"Arab": "Arab",
"Aran": {
"default": "Arab",
"hnd": "Shahmukhi",
"hno": "Shahmukhi",
"inc-opa": "Shahmukhi",
"lah": "Shahmukhi",
"pa": "Shahmukhi",
"phr": "Shahmukhi",
"skr": "Shahmukhi"
},
"Armi": "Aram Imperial",
"Armn": "Armenia",
"Avst": "Avesta",
"Bali": "Bali",
"Bamu": "Bamum",
"Bass": "Bassa",
"Batk": "Batak",
"Beng": "Bengali",
"Bhks": "Bhaiksuki",
"Blis": "Blissymbolic",
"Bopo": "Zhuyin",
"Brah": "Brahmi",
"Brai": "Braille",
"Bugi": "Lontara",
"Buhd": "Buhid",
"Cakm": "Chakma",
"Cans": "Suku Kata Kanada",
"Cari": "Carian",
"Cham": "Cham",
"Cher": "Cherokee",
"Chis": "Chisoi",
"Chrs": "Khwarezmian",
"Copt": "Qibti",
"Cpmn": "Cypro-Minoan",
"Cprt": "Cyprus",
"Cyrl": "Cyril",
"Cyrs": "Cyril Kuno",
"Deva": {
"ahr": "Balbodh",
"default": "Devanagari",
"kfq": "Balbodh",
"kok": "Balbodh",
"mr": "Balbodh",
"omr": "Balbodh",
"vah": "Balbodh"
},
"Diak": "Dhives Akuru",
"Dogr": "Dogra",
"Dsrt": "Deseret",
"Dupl": "Duployan",
"Egyd": "Demotik",
"Egyh": "Hieratik",
"Egyp": "Hieroglif Mesir",
"Elba": "Elbasan",
"Elym": "Elymaic",
"Ethi": "Habsyah",
"Gara": "Garay",
"Geok": "Khutsuri",
"Geor": "Georgia",
"Glag": "Glagol",
"Gong": "Gunjala Gondi",
"Gonm": "Masaram Gondi",
"Goth": "Goth",
"Gran": "Grantha",
"Grek": "Yunani",
"Gujr": "Gujarati",
"Gukh": "Khema",
"Guru": "Gurmukhi",
"Hang": "Hangul",
"Hani": "Han",
"Hano": "Hanunoo",
"Hans": "Han Ringkas",
"Hant": "Han Tradisional",
"Hatr": "Hatran",
"Hebr": "Ibrani",
"Hira": "Hiragana",
"Hluw": "Hieroglif Anatolia",
"Hmng": "Pahawh Hmong",
"Hmnp": "Nyiakeng Puachue Hmong",
"Hrkt": "Kana",
"Hung": "Hungary Kuno",
"Ibrnn": "Iberia Timur Laut",
"Ibrns": "Iberia Tenggara",
"Image": "Kemasan Imej",
"Inds": "Indus",
"Ipach": "Abjad Fonetik Antarabangsa",
"Ital": "Italik Kuno",
"Java": "Jawa",
"Jpan": "Jepun",
"Jurc": "Jurchen",
"Kali": "Kayah Li",
"Kana": "Katakana",
"Kawi": "Kawi",
"Khar": "Kharoshthi",
"Khmr": "Khmer",
"Khoj": "Khojki",
"Khomt": "Thai Khom",
"Kitl": "Khitan Besar",
"Kits": "Khitan Kecil",
"Knda": "Kannada",
"Kore": "Korea",
"Kpel": "Kpelle",
"Krai": "Kirat Rai",
"Kthi": "Kaithi",
"Kulit": "Kulitan",
"Lana": "Tai Tham",
"Laoo": "Lao",
"Latf": "Fraktur",
"Latg": "Gaelia",
"Latn": "Latin",
"Leke": "Leke",
"Lepc": "Lepcha",
"Limb": "Limbu",
"Lina": "Linear A",
"Linb": "Linear B",
"Lisu": "Fraser",
"Loma": "Loma",
"Lyci": "Lycia",
"Lydi": "Lydia",
"Mahj": "Mahajani",
"Maka": "Makassar",
"Mand": "Mandaia",
"Mani": "Mani",
"Marc": "Marchen",
"Maya": "Maya",
"Medf": "Medefaidrin",
"Mend": "Mende",
"Merc": "Kursif Meroitik",
"Mero": "Hieroglif Meroitik",
"Mlym": "Malayalam",
"Modi": "Modi",
"Mong": "Mongol",
"Moon": "Moon",
"Morse": "Kod Morse",
"Mroo": "Mru",
"Mtei": "Meitei Mayek",
"Mult": "Multani",
"Music": "Notasi Muzik",
"Mymr": "Burma",
"Nagm": "Mundari Bani",
"Nand": "Nandinagari",
"Narb": "Arab Utara Kuno",
"Nbat": "Nabataea",
"Newa": "Newa",
"Nkdb": "Dongba",
"Nkgb": "Geba",
"Nkoo": "N'Ko",
"None": "tidak ditentukan",
"Nshu": "Nüshu",
"Ogam": "Ogham",
"Olck": "Ol Chiki",
"Onao": "Ol Onal",
"Orkh": "Turkik Kuno",
"Orya": "Odia",
"Osge": "Osage",
"Osma": "Osmanya",
"Ougr": "Uyghur Kuno",
"Palm": "Palmyra",
"Pauc": "Pau Cin Hau",
"Pcun": "Kuneiform Purba",
"Pelm": "Elam Purba",
"Perm": "Permia Kuno",
"Phag": "Phags-pa",
"Phli": "Pahlavi Inskripsi",
"Phlp": "Pahlavi Psalter",
"Phlv": "Pahlavi Buku",
"Phnx": "Phoenicia",
"Plrd": "Pollard",
"Polyt": "Yunani",
"Prti": "Parthia Inskripsi",
"Psin": "Sinaitik Purba",
"Ranj": "Ranjana",
"Rjng": "Rejang",
"Rohg": "Hanifi Rohingya",
"Roro": "Rongorongo",
"Rumin": "Penomboran Rumi",
"Runr": "Rune",
"Samr": "Samaria",
"Sarb": "Ancient South Arabian",
"Saur": "Saurashtra",
"Semap": "flag semaphore",
"Sgnw": "SignWriting",
"Shaw": "Shaw",
"Shrd": "Sharada",
"Shui": "Sui",
"Sidd": "Siddham",
"Sidt": "Sidetic",
"Sind": "Khudabadi",
"Sinh": "Sinhala",
"Sogd": "Sogdia",
"Sogo": "Sogdia Kuno",
"Sora": "Sorang Sompeng",
"Soyo": "Soyombo",
"Sund": "Sunda",
"Sunu": "Sunuwar",
"Sylo": "Sylheti Nagri",
"Syrc": "Suryani",
"Tagb": "Tagbanwa",
"Takr": "Takri",
"Tale": "Tai Nüa",
"Talu": "Tai Lue Baharu",
"Taml": "Tamil",
"Tang": "Tangut",
"Tavt": "Tai Viet",
"Tayo": "Lai Tay",
"Telu": "Telugu",
"Teng": "Tengwar",
"Tfng": "Tifinagh",
"Tglg": "Baybayin",
"Thaa": "Thaana",
"Thai": "Thai",
"Tibt": "Tibet",
"Tirh": "Tirhuta",
"Tnsa": "Tangsa",
"Todr": "Todhri",
"Tols": "Tolong Siki",
"Toto": "Toto",
"Tutg": "Tigalari",
"Ugar": "Ugarit",
"Vaii": "Vai",
"Visp": "Visible Speech",
"Vith": "Vithkuq",
"Wara": "Varang Kshiti",
"Wcho": "Wancho",
"Wole": "Woleai",
"Xpeo": "Parsi Kuno",
"Xsux": "Kuneiform",
"Yezi": "Yezidi",
"Yiii": "Yi",
"Zanb": "Zanabazar Square",
"Zmth": "Notasi Matematik",
"Zname": "Notasi Muzik Znamenny",
"Zsym": "Simbolik",
"Zxxx": "unwritten",
"Zyyy": "undetermined",
"Zzzz": "Tidak Terkod",
"as-Beng": "Assam",
"mnc-Mong": "Manchu",
"pal-Avst": "Pazend",
"pjt-Latn": "Latin",
"sit-tam-Tibt": "Tamyig",
"sjo-Mong": "Xibe",
"xwo-Mong": "Todo"
}
8v7e44pngzms8470gf39fakdoqz8fud
Modul:families/canonical names.json
828
76130
373524
273106
2026-09-11T03:05:16Z
SNN95
2113
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373524
json
application/json
{
"Abenaki-Penobscot": "alg-abp",
"Abkhaz-Abaza": "cau-abz",
"Adamawa": "alv-ada",
"Adelbert Selatan": "ngf-sad",
"Adelbert Utara": "ngf-nad",
"Afro-Asia": "afa",
"Aian": "paa-aia",
"Ainuik": "qfa-ain",
"Aisian": "ngf-ais",
"Aizi": "kro-aiz",
"Alacalufan": "aqa",
"Albania": "sqj",
"Algic": "aql",
"Algonquian": "alg",
"Algonquian Timur": "alg-eas",
"Almora": "sit-alm",
"Alor-Pantar": "paa-alp",
"Alumik": "nic-alu",
"Amto-Musan": "paa-amu",
"Anatolia": "ine-ana",
"Andaman Besar": "qfa-adm",
"Andaman Besar Selatan": "qfa-ads",
"Andaman Besar Tengah": "qfa-adc",
"Andaman Besar Utara": "qfa-adn",
"Andian": "cau-and",
"Angal-Kewa": "ngf-ank",
"Angami-Pochuri": "tbq-anp",
"Angan": "ngf-ang",
"Anglik": "gmw-ang",
"Anglo-Frisia": "gmw-afr",
"Anglo-Norman Ireland": "gmw-ian",
"Anim": "paa-ani",
"Ankave-Tainae-Akoye": "ngf-ata",
"Ao": "njo",
"Apachean": "apa",
"Arab": "sem-arb",
"Arab Selatan Kuno": "sem-osa",
"Arab Selatan Moden": "sem-sar",
"Arafundi": "paa-arf",
"Aramia": "sem-ara",
"Aramia Barat": "sem-arw",
"Aramia Tenggara": "sem-ase",
"Aramia Timur": "sem-are",
"Arandic": "aus-rnd",
"Arapahoan": "alg-ara",
"Arapesh": "paa-ara",
"Arauan": "auf",
"Araucanian": "sai-ara",
"Arawak": "awd",
"Arinik": "qfa-yrn",
"Armenia": "hyx",
"Arnhem": "aus-arn",
"Aroid": "omv-aro",
"Aslian": "mkh-asl",
"Asmat": "ngf-asm",
"Asmat-Kamoro": "ngf-ask",
"Asturleonese": "roa-asl",
"Ataitan": "paa-ata",
"Atayalik": "map-ata",
"Athabaskan": "ath",
"Athabaskan Pantai Pasifik": "ath-pco",
"Athabaskan Utara": "ath-nor",
"Atlantik-Congo": "alv",
"Austroasiatik": "aav",
"Austronesia": "map",
"Avaro-Andian": "cau-ava",
"Awyu": "ngf-awy",
"Awyu Raya": "ngf-gaw",
"Awyu-Dumut": "ngf-awd",
"Axioid": "tbq-axi",
"Ayere-Ahan": "alv-aah",
"Aymaran": "sai-aym",
"Bafia": "bnt-baf",
"Bafo-Bonkeng": "bnt-bbo",
"Baga": "alv-bag",
"Bagirmi": "csu-bgr",
"Bahasa Isyarat Amerika": "sgn-asl",
"Bahasa Isyarat Jepun": "sgn-jsl",
"Bahasa Isyarat Jerman": "sgn-gsl",
"Bahasa Isyarat Perancis": "sgn-fsl",
"Bahasa-bahasa KRDS": "inc-krd",
"Bahnarik": "mkh-ban",
"Bahnarik Utara": "mkh-nbn",
"Bai": "sit-bai",
"Bai Utara": "sit-nba",
"Baining": "paa-bai",
"Bak": "alv-bak",
"Baka": "nic-nkb",
"Bali-Sasak-Sumbawa": "poz-bss",
"Baltic": "bat",
"Baltik Barat": "bat-wes",
"Baltik Timur": "bat-eas",
"Balto-Slav": "ine-bsl",
"Bambukic": "alv-bam",
"Bamileke": "bai",
"Banda": "bad",
"Banda Tengah": "bad-cnt",
"Bangi-Moi": "bnt-bmo",
"Bangi-Ntomba": "bnt-bnm",
"Bangi-Tetela": "bnt-bte",
"Bantoid": "nic-bod",
"Bantoid Selatan": "nic-bds",
"Bantoid Utara": "nic-bdn",
"Bantoid-Cross": "nic-bcr",
"Bantu": "bnt",
"Bantu Barat Daya": "bnt-swb",
"Bantu Pantai Timur Laut": "bnt-ncb",
"Bantu Selatan": "bnt-bso",
"Bantu Tasik-Tasik Besar": "bnt-glb",
"Bantu Timur Laut": "bnt-bne",
"Banyum": "alv-bny",
"Barbacoan": "sai-bar",
"Bari": "sdv-bri",
"Barito Barat": "poz-brw",
"Barito Timur": "poz-bre",
"Baruya-Simbari": "ngf-bsi",
"Basa": "nic-bas",
"Basaa": "bnt-bsa",
"Batak": "btk",
"Bati-Angba": "bnt-bta",
"Bayono-Awbono": "paa-baa",
"Be": "qfa-onb",
"Be-Jizhao": "qfa-bej",
"Be-Tai": "qfa-bet",
"Beboid": "nic-beb",
"Beboid Timur": "nic-bbe",
"Becking-Dawi": "ngf-bda",
"Bekwilic": "bnt-bek",
"Bena-Kinga": "bnt-bki",
"Bendi": "nic-ben",
"Bengali-Assam": "inc-bas",
"Benue-Congo": "nic-bco",
"Berber": "ber",
"Beromik": "nic-beo",
"Betaf-Vitou": "paa-bvi",
"Beti": "bnt-btb",
"Bewani": "paa-bew",
"Bhil": "inc-bhi",
"Bi-Ka": "tbq-bka",
"Bihari": "inc-bih",
"Bikwin-Jen": "alv-bwj",
"Binanderean": "ngf-bin",
"Binanderean Raya": "ngf-gbi",
"Binanderean Utara": "ngf-nbi",
"Birri-Kresh": "csu-bkr",
"Bisa-Busa": "dmn-bbu",
"Bisoid": "tbq-bis",
"Boan": "bnt-boa",
"Boane": "ngf-boa",
"Boazi": "paa-boa",
"Bodish": "sit-bdi",
"Bodish Timur": "sit-ebo",
"Bodo-Garo": "tbq-bdg",
"Boma-Dzing": "bnt-bdz",
"Bongo-Bagirmi": "csu-bba",
"Bongo-Baka": "csu-bbk",
"Boran": "sai-bor",
"Border": "paa-bor",
"Borneo Utara": "poz-bnn",
"Bosavi": "ngf-bos",
"Bosngun-Awar": "paa-baw",
"Botatwe": "bnt-bot",
"Bougainville Selatan": "paa-sbo",
"Bougainville Utara": "paa-nbo",
"Brythonic": "cel-bry",
"Brythonic Barat": "cel-brw",
"Brythonic Barat Daya": "cel-brs",
"Bua": "alv-bua",
"Buja-Ngombe": "bnt-bun",
"Bukit Serra": "paa-shi",
"Buli-Koma": "nic-buk",
"Bungku-Tolaki": "poz-btk",
"Bunuban": "aus-bub",
"Burmik": "tbq-brm",
"Burmo-Qiangik": "tbq-buq",
"Bushoong": "bnt-bsh",
"Buyang": "qfa-buy",
"Bwa": "nic-bwa",
"Bété": "kro-bet",
"Caddoan": "cdd",
"Cahuapanan": "sai-cah",
"Cai-Long": "sit-cln",
"Cangin": "alv-cng",
"Cariban": "sai-car",
"Cariban Venezuela": "sai-ven",
"Castilian": "roa-cas",
"Catacaoan": "sai-ctc",
"Catawban": "nai-cat",
"Celebik": "poz-clb",
"Cerrado": "sai-cer",
"Chadik": "cdc",
"Chadik Barat": "cdc-wst",
"Chadik Tengah": "cdc-cbm",
"Chadik Timur": "cdc-est",
"Chaga": "bnt-chg",
"Chaga-Taita": "bnt-cht",
"Chamik": "cmc",
"Chapacuran": "sai-cpc",
"Charruan": "sai-crn",
"Chatino": "omq-cha",
"Chibchan": "cba",
"Chimakuan": "chi",
"Chimbu-Wahgi": "ngf-chw",
"Chinantecan": "omq-chi",
"Chinookan": "nai-ckn",
"Chitrali": "inc-chi",
"Chocoan": "sai-chc",
"Chokwe-Luchazi": "bnt-clu",
"Chonan": "sai-cho",
"Chug-Lish": "sit-khc",
"Chukotkan": "qfa-ckn",
"Chukotko-Kamchatkan": "qfa-cka",
"Chumashan": "nai-chu",
"Circassian": "cau-cir",
"Comorian": "bnt-com",
"Coosan": "nai-coo",
"Cross River": "nic-cri",
"Cross River Atas": "nic-ucr",
"Cross River Atas Timur-Barat": "nic-uce",
"Cross River Atas Utara-Selatan": "nic-ucn",
"Cross River Bawah": "nic-lcr",
"Cuicatec": "omq-cui",
"Cupan": "azc-cup",
"Dagan": "ngf-dag",
"Dagbani": "nic-dag",
"Daju": "sdv-daj",
"Dakoid": "nic-dak",
"Dakotan": "sio-dkt",
"Dallman": "ngf-dal",
"Daly": "aus-dal",
"Dangari": "inc-dng",
"Dani": "ngf-dan",
"Dani Lembah Besar": "ngf-gvd",
"Dani Tengah": "ngf-cda",
"Dardik": "inc-dar",
"Dardik Timur": "inc-dre",
"Dargwa": "cau-drg",
"Dataran Tasik": "paa-lpl",
"Dataran Tasik Barat": "paa-wlp",
"Dataran Tasik Barat Jauh": "paa-flp",
"Dataran Tasik Tengah": "paa-clp",
"Dataran Tasik Timur": "paa-elp",
"Dayak Darat": "day",
"Delta Tengah": "nic-cde",
"Dene-Yeniseian": "qfa-dny",
"Dhegihan": "sio-dhe",
"Dhimalish": "sit-dhi",
"Dida": "kro-did",
"Dinka-Nuer": "sdv-dnu",
"Dizoid": "omv-diz",
"Dogon": "qfa-dgn",
"Dogon Barat": "nic-dgw",
"Dogon Dataran": "nic-pld",
"Dogon Penara Utara": "nic-npd",
"Dogon Tubir": "nic-dge",
"Doso-Turumsa": "paa-dtu",
"Dravida": "dra",
"Dravida Selatan": "dra-sou",
"Dravida Selatan I": "dra-sdo",
"Dravida Selatan II": "dra-sdt",
"Dravida Tengah": "dra-cen",
"Dravida Utara": "dra-nor",
"Dumut": "ngf-dum",
"Duru": "alv-dur",
"Dyirbalic": "aus-dyb",
"Ede": "alv-ede",
"Edekiri": "alv-edk",
"Edo-Esan-Ora": "alv-eeo",
"Edoid": "alv-edo",
"Edoid Barat Daya": "alv-swd",
"Edoid Barat Laut": "alv-nwd",
"Edoid Delta": "alv-dlt",
"Edoid Utara-Tengah": "alv-nce",
"Ekoid": "nic-eko",
"Eleman": "paa-ele",
"Eleman Barat": "paa-wel",
"Eleman Timur": "paa-eel",
"Emilian-Romagnol": "roa-emr",
"Enets": "syd-ene",
"Engan": "ngf-eng",
"Engan Luar": "ngf-oen",
"Engik": "ngf-enc",
"Erap": "ngf-era",
"Ersuik": "sit-ers",
"Eskimo": "esx-esk",
"Eskimo-Aleut": "esx",
"Evapia": "ngf-eva",
"Ewenik": "tuw-ewe",
"Fali": "alv-fli",
"Fas": "paa-fas",
"Filipina": "phi",
"Finisterre": "ngf-fin",
"Finisterre-Huon": "ngf-fhu",
"Finnik": "urj-fin",
"Fore-Gimi": "ngf-fgi",
"Frankonia Bawah": "gmw-frk",
"Frisia": "gmw-fri",
"Fula-Wolof": "alv-fwo",
"Fur": "ssa-fur",
"Furu": "nic-fru",
"Ga-Dangme": "alv-gda",
"Gaena-Korafe": "ngf-gko",
"Gahuku": "ngf-gah",
"Galela-Tobelo": "paa-gto",
"Galicia-Portugis": "roa-gap",
"Gallo-Italik": "roa-git",
"Gallo-Rhaetian": "roa-grh",
"Gallo-Romance": "roa-gar",
"Garawan": "aus-gar",
"Gauwa": "ngf-gau",
"Gbanziri": "nic-nkg",
"Gbaya": "gba",
"Gbaya Barat": "gba-wes",
"Gbaya Selatan": "gba-sou",
"Gbaya Timur": "gba-eas",
"Gbe": "alv-gbe",
"Gelao": "gio",
"Georgia-Zan": "ccs-gzn",
"Gogodala-Suki": "ngf-gsu",
"Goidelik": "cel-gae",
"Gondi": "dra-gon",
"Gondi-Kui": "dra-gki",
"Gonga": "omv-gon",
"Goroka": "ngf-gor",
"Grassfields": "nic-grf",
"Grassfields Barat Daya": "nic-grs",
"Grassfields Timur": "nic-gre",
"Grebo": "kro-grb",
"Grebo tepat": "grb",
"Guahiban": "sai-guh",
"Guaicuruan": "sai-guc",
"Guang": "alv-gng",
"Guarani": "gn",
"Guianan": "sai-gui",
"Gum": "ngf-gum",
"Gunwinyguan": "aus-gun",
"Gur": "nic-gur",
"Gurma": "nic-grm",
"Gurunsi": "nic-gns",
"Gurunsi Barat": "nic-gnw",
"Gurunsi Timur": "nic-gne",
"Gurunsi Utara": "nic-gnn",
"Gusap-Mot": "ngf-gmo",
"Hagen": "ngf-hag",
"Halbik": "inc-hal",
"Halmahera Utara": "paa-nha",
"Halmahera Utara Bahagian Utara": "paa-nnh",
"Halmahera-Cenderawasih": "poz-hce",
"Hanoid": "tbq-han",
"Hanseman": "ngf-han",
"Hanseman Barat Laut": "ngf-nwh",
"Harákmbut": "sai-har",
"Harákmbut-Katukinan": "sai-hkt",
"Haya-Jita": "bnt-haj",
"Heiban": "alv-hei",
"Hellenik": "grk",
"Heyo-Yahang": "paa-hya",
"Himalaya Barat": "sit-whm",
"Hindi Barat": "inc-hiw",
"Hindi Timur": "inc-hie",
"Hindustani": "inc-hnd",
"Hispano-Keltik": "cel-his",
"Hlai": "qfa-lic",
"Hmong-Mien": "hmx",
"Hmongik": "hmn",
"Hokan": "hok",
"Horpa": "ero",
"Hrusish": "sit-hrs",
"Huarpean": "sai-hrp",
"Huon": "ngf-huo",
"Huon Timur": "ngf-ehu",
"Hurro-Urartian": "qfa-hur",
"Ibero-Romance": "roa-ibe",
"Ibibio-Efik": "nic-ief",
"Idomoid": "alv-ido",
"Igboid": "alv-igb",
"Ijoid": "ijo",
"Indo-Arya": "inc",
"Indo-Arya Barat": "inc-wes",
"Indo-Arya Barat Laut": "inc-nwe",
"Indo-Arya Kepulauan": "inc-ins",
"Indo-Arya Kuno": "inc-old",
"Indo-Arya Pertengahan": "inc-mid",
"Indo-Arya Selatan": "inc-sou",
"Indo-Arya Tengah": "inc-cen",
"Indo-Arya Timur": "inc-eas",
"Indo-Arya Utara": "inc-nor",
"Indo-Eropah": "ine",
"Indo-Iran": "iir",
"Inuit": "esx-inu",
"Iran": "ira",
"Iran Barat": "ira-wes",
"Iran Barat Daya": "ira-swi",
"Iran Barat Laut": "ira-nwi",
"Iran Kuno": "ira-old",
"Iran Pertengahan": "ira-mid",
"Iran Tengah": "ira-cen",
"Iran Tenggara": "ira-sei",
"Iran Timur Laut": "ira-nei",
"Iroquoia": "iro",
"Iroquoia Utara": "iro-nor",
"Irula-Muduga": "dra-imd",
"Italik": "itc",
"Italo-Dalmatia": "roa-itd",
"Italo-Romance": "roa-itr",
"Iwaidjan": "aus-wdj",
"Iwam": "paa-iwa",
"Japonik": "jpx",
"Jarawa": "nic-jrw",
"Jarawan": "nic-jrn",
"Jarrakan": "aus-jar",
"Jebel Timur": "sdv-eje",
"Jera": "nic-jer",
"Jerman Rendah": "gmw-lgm",
"Jerman Tinggi": "gmw-hgm",
"Jermanik": "gem",
"Jermanik Barat": "gmw",
"Jermanik Laut Utara": "gmw-nsg",
"Jermanik Timur": "gme",
"Jermanik Utara": "gmq",
"Jicaquean": "nai-jcq",
"Jimi": "ngf-jim",
"Jingphoik": "sit-jnp",
"Jino": "tbq-jin",
"Jirajaran": "sai-jir",
"Jivaroan": "sai-jiv",
"Jogo-Jeri": "dmn-jje",
"Jola": "alv-jol",
"Jola-Felupe": "alv-jfe",
"Jukunoid": "nic-jkn",
"Jurchenik": "tuw-jrc",
"Jê": "sai-jee",
"Jê Selatan": "sai-sje",
"Jê Tengah": "sai-cje",
"Jê Utara": "sai-nje",
"Ka-Togo": "alv-ktg",
"Kaba": "csu-kab",
"Kabwum": "ngf-kab",
"Kachin-Luik": "sit-jpl",
"Kadu": "qfa-kad",
"Kaili-Pamona": "poz-kal",
"Kainantu": "ngf-kai",
"Kainantu-Goroka": "ngf-kgo",
"Kainji": "nic-knj",
"Kainji Barat Laut": "nic-knn",
"Kainji Timur": "nic-kne",
"Kako": "bnt-kak",
"Kalam-Adelbert Selatan": "ngf-ksa",
"Kalam-Kobon": "ngf-kak",
"Kalamian": "phi-kal",
"Kalapuyan": "nai-klp",
"Kaledonia Baharu": "poz-cln",
"Kalenjin": "sdv-kln",
"Kam-Sui": "qfa-kms",
"Kamano-Yagaria": "ngf-kya",
"Kambari": "nic-kam",
"Kamuku": "nic-kmk",
"Kamula-Elevala": "paa-kae",
"Kanaan": "sem-can",
"Kannadoid": "dra-kan",
"Kanum": "paa-kan",
"Kapau-Menya": "ngf-kme",
"Karaboro": "alv-krb",
"Karen": "kar",
"Karluk": "trk-kar",
"Karnic": "aus-kar",
"Kartvelian": "ccs",
"Kashmirik": "inc-kas",
"Kaspia": "ira-csp",
"Katloid": "nic-ktl",
"Katuik": "mkh-kat",
"Katukinan": "sai-ktk",
"Kaukasia Barat Laut": "cau-nwc",
"Kaukasia Timur Laut": "cau-nec",
"Kaukombar": "ngf-kau",
"Kaure-Kosare": "paa-kko",
"Kauru": "nic-kau",
"Kavango": "bnt-kav",
"Kavango-Bantu Barat Daya": "bnt-ksb",
"Kayagarik": "paa-kay",
"Kazhuoish": "tbq-kzh",
"Kele": "bnt-kel",
"Kele-Tsogo": "bnt-kts",
"Keltik": "cel",
"Keltik Kepulauan": "cel-ins",
"Kepala Burung Barat": "paa-wbh",
"Kepala Burung Selatan": "ngf-sbh",
"Kepala Burung Timur": "paa-ebh",
"Kepulauan Admiralty": "poz-aay",
"Keram": "paa-ker",
"Keram Barat": "paa-wke",
"Keram Timur": "paa-eke",
"Keresan": "nai-ker",
"Ketik": "qfa-yke",
"Kewa-Huli": "ngf-khu",
"Kham": "sit-kha",
"Khanty": "kca",
"Khasian": "aav-khs",
"Khmerik": "mkh-kmr",
"Khmuik": "mkh-khm",
"Kho-Bwa": "sit-khb",
"Kho-Bwa Barat": "sit-khw",
"Khoe": "khi-kho",
"Khoe Kalahari": "khi-kal",
"Khoe-Kwadi": "khi-kkw",
"Khoekhoe": "khi-khk",
"Kikuyu-Kamba": "bnt-kka",
"Kilombero": "bnt-kil",
"Kim": "alv-kim",
"Kimbundu": "bnt-kmb",
"Kinnaurik": "sit-kin",
"Kiowa-Tanoan": "nai-kta",
"Kipchak": "trk-kip",
"Kipchak-Bulgar": "trk-kbu",
"Kipchak-Cuman": "trk-kcu",
"Kipchak-Nogai": "trk-kno",
"Kiranti": "sit-kir",
"Kiranti Barat": "sit-kiw",
"Kiranti Tengah": "sit-kic",
"Kiranti Timur": "sit-kie",
"Kissi": "alv-kis",
"Kiwaian": "paa-kiw",
"Kodagu": "dra-kod",
"Kohistani": "inc-koh",
"Koiarian": "ngf-koi",
"Kokon": "ngf-kok",
"Kolami-Naiki": "dra-knk",
"Kolopom": "paa-kol",
"Koman": "ssa-kom",
"Kombio": "paa-kom",
"Kombio-Arapesh": "paa-koa",
"Komi": "kv",
"Komisenian": "ira-kms",
"Komo-Bira": "bnt-kbi",
"Komyandaret-Tsaukambo": "ngf-kts",
"Konda-Kui": "dra-kki",
"Kongo": "bnt-kng",
"Konyak-Chang": "sit-kch",
"Koraga": "dra-kor",
"Koreanik": "qfa-kor",
"Kosorong-Burum-Mindik": "ngf-kbm",
"Kottik": "qfa-yko",
"Kowan": "ngf-kow",
"Kpala": "nic-nkk",
"Kpwe": "bnt-kpw",
"Kra": "qfa-kra",
"Kra-Dai": "qfa-tak",
"Kru": "kro",
"Kru Barat": "kro-wkr",
"Kru Timur": "kro-ekr",
"Kube-Tobo": "ngf-kto",
"Kuikuroan": "sai-kui",
"Kuki-Chin": "tbq-kuk",
"Kulango": "alv-kul",
"Kuliak": "ssa-klk",
"Kumil": "ngf-kum",
"Kunar": "inc-kun",
"Kunimaipan": "paa-kun",
"Kurdish": "ku",
"Kurux-Malto": "dra-kml",
"Kushitik": "cus",
"Kushitik Selatan": "cus-sou",
"Kushitik Tengah": "cus-cen",
"Kushitik Timur": "cus-eas",
"Kushitik Timur Tanah Tinggi": "cus-hec",
"Kutubuan Timur": "ngf-eku",
"Kwa": "alv-kwa",
"Kwalean": "paa-kwa",
"Kwerba Raya": "paa-gkw",
"Kwerba tepat": "paa-kwe",
"Kwomtari": "paa-kwo",
"Kx'a": "khi-kxa",
"Kyirong-Kagate": "sit-kyk",
"Kyrgyz-Kipchak": "trk-kkp",
"Kâte-Mape": "ngf-kma",
"Ladakhi-Balti": "sit-lab",
"Lagoon": "alv-lag",
"Lahoish": "tbq-lho",
"Lahuli-Spiti": "sit-las",
"Lalo": "tbq-lal",
"Lampungik": "poz-lgx",
"Latino-Faliskan": "itc-laf",
"Lawoish": "tbq-lwo",
"Lebonya": "bnt-leb",
"Lechitik": "zlw-lch",
"Lega-Binja": "bnt-lgb",
"Leko": "alv-lek",
"Leko-Nimbari": "alv-lni",
"Lenape": "del",
"Lencan": "nai-len",
"Lendu": "csu-lnd",
"Lepki-Murkim": "paa-lmu",
"Lezghian": "cau-lzg",
"Limba": "alv-lim",
"Lipo-Lolopo": "tbq-llo",
"Lisoish": "tbq-lso",
"Logooli-Kuria": "bnt-lok",
"Lolo-Burma": "tbq-lob",
"Loloda-Laba": "paa-lla",
"Loloik": "tbq-lol",
"Loloik Selatan": "tbq-slo",
"Loloik Tenggara": "tbq-sel",
"Loloik Utara": "tbq-nlo",
"Lotuko-Maa": "sdv-lma",
"Luba": "bnt-lub",
"Luban": "bnt-lbn",
"Luish": "sit-luu",
"Lunda": "bnt-lun",
"Luo": "sdv-luo",
"Luo Selatan": "sdv-los",
"Luo Utara": "sdv-lon",
"Lurik": "ira-lur",
"Luwik": "ine-luw",
"Mabuso": "ngf-mab",
"Madang": "ngf-mad",
"Madiya": "dra-mdy",
"Magarik Raya": "sit-gma",
"Maiduan": "nai-mdu",
"Mailuan": "paa-mal",
"Maimai": "paa-mam",
"Mairasi": "paa-mai",
"Makaa": "bnt-mka",
"Makaa-Njem": "bnt-mnj",
"Makro-Bai": "sit-mba",
"Makro-Chibchan": "qfa-mch",
"Makro-Jê": "sai-mje",
"Makua": "bnt-mak",
"Malayalamoid": "dra-mal",
"Malto": "dra-mlo",
"Maluku Tengah": "poz-cma",
"Mambiloid": "nic-mmb",
"Mamfe": "nic-mam",
"Mandarinik": "zhx-man",
"Mande": "dmn",
"Mande Barat": "dmn-mdw",
"Mande Barat Daya": "dmn-msw",
"Mande Barat Laut": "dmn-mnw",
"Mande Tengah": "dmn-mdc",
"Mande Tenggara": "dmn-mse",
"Mande Timur": "dmn-mde",
"Mandi-Muniwara": "paa-mmu",
"Manding": "dmn-man",
"Manding Barat": "dmn-wmn",
"Manding Timur": "dmn-emn",
"Manding-Jogo": "dmn-mjo",
"Manding-Mokole": "dmn-mmo",
"Manding-Vai": "dmn-mva",
"Manenguba": "bnt-mne",
"Mangbetu": "csu-maa",
"Mangbutu-Lese": "csu-mle",
"Mangik": "mkh-mng",
"Maninka": "dmn-mnk",
"Mano-Dan": "dmn-mda",
"Manobo": "mno",
"Mansi": "mns",
"Manubaran": "paa-man",
"Mao": "omv-mao",
"Mapoyan": "sai-map",
"Mari": "chm",
"Marienberg": "paa-mar",
"Marind-Boazi-Yaqay": "paa-mby",
"Marindik": "paa-mri",
"Maringik": "sit-mar",
"Masa": "cdc-mas",
"Masaba-Luhya": "bnt-msl",
"Mascoian": "sai-mas",
"Mataco-Guaicuru": "sai-mgc",
"Matacoan": "sai-mtc",
"May Kiri": "paa-lma",
"Maya": "myn",
"Maybratik": "paa-may",
"Mazanderani-Shahmirzadi": "ira-msh",
"Mazatecan": "omq-maz",
"Mba": "nic-mbc",
"Mbaham-Iha": "paa-mbi",
"Mbaka": "nic-nkm",
"Mbam": "nic-mba",
"Mbam Barat": "nic-mbw",
"Mbete": "bnt-mbt",
"Mbeya": "bnt-mby",
"Mbinga": "bnt-mbi",
"Mbole-Enya": "bnt-mbe",
"Mboshi": "bnt-mbo",
"Mboshi-Buja": "bnt-mbb",
"Mbugwe-Rangi": "bnt-mra",
"Mbum": "alv-mbm",
"Mbum-Day": "alv-mbd",
"Media": "xme",
"Medo-Parthia": "ira-mpr",
"Mek": "ngf-mek",
"Mel": "alv-mel",
"Melayik": "poz-mly",
"Melayu-Chamik": "poz-mcm",
"Melayu-Polinesia": "poz",
"Melayu-Polinesia Tengah-Timur": "poz-cet",
"Melayu-Polinesia Timur": "pqe",
"Melayu-Sumbawa": "poz-msa",
"Mesir": "egx",
"Mey-Sartang": "sit-khm",
"Mian-Suganga": "ngf-msu",
"Midzu": "sit-mdz",
"Mienik": "hmx-mie",
"Mijikenda": "bnt-mij",
"Mikronesia": "poz-mic",
"Min": "zhx-min",
"Min Pantai": "zhx-com",
"Min Pedalaman": "zhx-inm",
"Min Selatan": "zhx-nan",
"Mindjim": "ngf-min",
"Mirndi": "aus-mir",
"Misumalpan": "nai-min",
"Mixe-Zoquean": "nai-miz",
"Mixtec": "omq-mxt",
"Mixtecan": "omq-mix",
"Mokole": "dmn-mok",
"Mombum": "ngf-mom",
"Momo": "nic-mom",
"Mon-Khmer": "mkh",
"Mondzish": "sit-mnz",
"Mongo": "bnt-mon",
"Mongolik": "xgn",
"Mongolik Selatan": "xgn-sou",
"Mongolik Tengah": "xgn-cen",
"Monguor": "mjg",
"Monik": "mkh-mnc",
"Monumbo": "paa-mon",
"Mordvinik": "urj-mdv",
"Moru-Madi": "csu-mma",
"Moré": "nic-mre",
"Mruik": "sit-mru",
"Muji": "tbq-muj",
"Mumuye": "alv-mum",
"Mumuye-Yendang": "alv-mye",
"Muna-Buton": "poz-mun",
"Munda": "mun",
"Munji-Yidgha": "ira-mny",
"Muran": "sai-mur",
"Muria": "dra-mur",
"Muskogean": "nai-mus",
"Mwika": "bnt-mwi",
"Na-Dene": "xnd",
"Na-Togo": "alv-ntg",
"Nadahup": "sai-nad",
"Naga Tengah": "sit-aao",
"Naga Utara": "sit-kon",
"Nahuan": "azc-nah",
"Nahuatl Durango": "azc-dur",
"Nahuatl Huasteca": "azc-hua",
"Naik": "sit-nax",
"Naish": "sit-nas",
"Nakh": "cau-nkh",
"Nalu": "alv-nal",
"Nambikwaran": "sai-nmk",
"Nambu": "paa-nam",
"Namla-Tofanma": "paa-nto",
"Nanaik": "tuw-nan",
"Nandi-Markweta": "sdv-nma",
"Nanga-Walo": "nic-nwa",
"Nasoid": "tbq-nas",
"Navarro-Aragonese": "roa-nar",
"Nawiki": "awd-nwk",
"Ndeiram": "ngf-nde",
"Ndu": "paa-ndu",
"Ndu Nuklear": "paa-nnd",
"Ndzem-Bomwali": "bnt-ndb",
"Nenets": "yrk",
"Neo-Aramia Tengah": "sem-cna",
"Neo-Aramia Timur Laut": "sem-nna",
"New South Wales Tengah": "aus-cww",
"Newarik": "sit-new",
"Ngalik-Nduga": "ngf-ngn",
"Ngayarda": "aus-nga",
"Ngbaka": "nic-ngk",
"Ngbaka Barat": "nic-nkw",
"Ngbaka Timur": "nic-nke",
"Ngbandi": "nic-ngd",
"Ngemba": "nic-nge",
"Ngkolmpu": "paa-ngk",
"Ngondi-Ngiri": "bnt-ngn",
"Nguni": "bnt-ngu",
"Nicobarese": "aav-nic",
"Niger-Congo": "nic",
"Nilo-Sahara": "ssa",
"Nilotik": "sdv-nil",
"Nilotik Barat": "sdv-niw",
"Nilotik Selatan": "sdv-nis",
"Nilotik Timur": "sdv-nie",
"Nimboran": "paa-nim",
"Ninzik": "nic-nin",
"Nisoish": "tbq-nso",
"Nisu": "tbq-nis",
"Nkambe": "nic-nka",
"Nubia": "nub",
"Nubia Bukit": "nub-hil",
"Numic": "azc-num",
"Numugen": "ngf-num",
"Nun": "nic-nun",
"Nungish": "sit-nng",
"Nupe-Gbagyi": "alv-ngb",
"Nupoid": "alv-nup",
"Nuristani": "iir-nur",
"Nuristani Selatan": "nur-sou",
"Nuristani Utara": "nur-nor",
"Nuru": "ngf-nur",
"Nusoish": "tbq-nus",
"Nwa-Beng": "dmn-nbe",
"Nyali": "bnt-nya",
"Nyanga-Buyi": "bnt-nyb",
"Nyasa": "bnt-nys",
"Nyima": "sdv-nyi",
"Nyoro-Ganda": "bnt-nyg",
"Nyulnyulan": "aus-nyu",
"Nyun": "alv-nyn",
"Nzebi": "bnt-nze",
"Occitano-Romance": "roa-ocr",
"Oceania": "poz-oce",
"Oceania Barat": "poz-ocw",
"Oceania Selatan": "poz-ocs",
"Oceania Tengah-Timur": "poz-occ",
"Oghur": "trk-ogr",
"Oghuz": "trk-ogz",
"Ogoni": "nic-ogo",
"Ok": "ngf-okk",
"Ok Barat": "ngf-wok",
"Ok Pergunungan": "ngf-mok",
"Ok Tanah Rendah": "ngf-lok",
"Ometo": "omv-ome",
"Ometo Timur": "omv-eom",
"Ometo Utara": "omv-nom",
"Omosan": "ngf-omo",
"Omotik": "omv",
"Ongan": "qfa-ong",
"Ormuri-Parachi": "ira-orp",
"Orokaivik": "ngf-oro",
"Osko-Umbria": "itc-sbl",
"Oti-Volta": "nic-ovo",
"Oti-Volta Barat": "nic-wov",
"Oti-Volta Timur": "nic-eov",
"Oto-Manguean": "omq",
"Oto-Pamean": "omq-otp",
"Otomacoan": "sai-otm",
"Otomi": "oto-otm",
"Otomian": "oto",
"Ottilien": "paa-ott",
"Ovambo": "bnt-ova",
"Oïl": "roa-oil",
"Pahari": "inc-pah",
"Pahari Barat": "him",
"Pahari Tengah": "inc-pac",
"Pahari Timur": "inc-pae",
"Pakanik": "mkh-pkn",
"Pakawan": "nai-pak",
"Palaihnihan": "nai-pal",
"Palaungik": "mkh-pal",
"Palei": "paa-pal",
"Pama-Nyungan": "aus-pam",
"Pama-Nyungan Barat Daya": "aus-psw",
"Paman": "aus-pmn",
"Pano-Tacanan": "sai-pat",
"Panoan": "sai-pan",
"Papel": "alv-pap",
"Papua": "paa",
"Para-Mongolik": "qfa-xgx",
"Pare": "bnt-par",
"Parji-Gadaba": "dra-pgd",
"Parukotoan": "sai-prk",
"Pashayi": "inc-pas",
"Pasifik Tengah": "poz-pcc",
"Pathan": "ira-pat",
"Pauwasi Barat": "paa-wpw",
"Pauwasi Timur": "paa-epw",
"Pearik": "mkh-pea",
"Peba-Yaguan": "sai-pey",
"Peka": "ngf-pek",
"Pekodian": "sai-pek",
"Pemongan": "sai-pem",
"Penara": "nic-plt",
"Penara Selatan": "nic-pls",
"Penara Tengah": "nic-plc",
"Penara Timur": "nic-ple",
"Pende": "bnt-pen",
"Penutian Penara": "nai-plp",
"Pergunungan Ghana-Togo": "alv-gtm",
"Permik": "urj-prm",
"Pesisir Rai": "ngf-rai",
"Phla-Pherá": "alv-pph",
"Phowa": "tbq-phw",
"Phula Hilir Sungai": "tbq-drp",
"Phula Hulu Sungai": "tbq-urp",
"Phula Sungai": "tbq-rph",
"Phula Tanah Tinggi": "tbq-hph",
"Piawi": "paa-pia",
"Piman": "azc-pim",
"Pinghua": "zhx-pin",
"Platoid": "nic-pla",
"Pnar-Khasi-Lyngngam": "aav-pkl",
"Polinesia": "poz-pol",
"Polinesia Nuklear": "poz-pnp",
"Polinesia Timur": "poz-pep",
"Pomerania": "zlw-pom",
"Pomo-Bomwali": "bnt-pob",
"Pomoan": "nai-pom",
"Pomoikan": "ngf-pom",
"Popolocan": "omq-pop",
"Porapora": "paa-por",
"Potou-Tano": "alv-ptn",
"Pumpokolik": "qfa-ypm",
"Punjabik": "inc-pan",
"Qiangik": "sit-qia",
"Quechuan": "qwe",
"Rajasthani": "raj",
"Ramu": "paa-ram",
"Ramu Bawah": "paa-lra",
"Rasawa-Saponi": "paa-rsa",
"Rashad": "nic-ras",
"Rgyalrongik": "sit-rgy",
"Rhaeto-Romance": "roa-rhe",
"Ring": "nic-rng",
"Ring Barat": "nic-rnw",
"Ring Tengah": "nic-rnc",
"Ring Utara": "nic-rnn",
"Romance": "roa",
"Romance Barat": "roa-wes",
"Romance Dalmatia": "roa-dal",
"Romance Italo-Barat": "roa-iwr",
"Romance Selatan": "roa-sou",
"Romance Timur": "roa-eas",
"Romani": "inc-rom",
"Ruboni": "paa-rub",
"Rufiji-Ruvuma": "bnt-rur",
"Rukwa": "bnt-ruk",
"Rungwe": "bnt-run",
"Ruvu": "bnt-ruv",
"Ruvuma": "bnt-rvm",
"Ryukyu": "jpx-ryu",
"Ryukyu Selatan": "jpx-sry",
"Ryukyu Utara": "jpx-nry",
"Sabahan": "poz-san",
"Sabaki": "bnt-sab",
"Sabakor": "ngf-sab",
"Sabi": "bnt-sbi",
"Sac-Fox-Kickapoo": "alg-sfk",
"Sadanik": "inc-sad",
"Sahaptian": "nai-shp",
"Sahara": "ssa-sah",
"Sahu": "paa-sah",
"Saka": "xsc-sak",
"Saka-Wakhi": "xsc-skw",
"Sal": "tbq-bkj",
"Salish": "sal",
"Saluan-Banggai": "poz-slb",
"Sama-Bajaw": "poz-sbj",
"Samarokena-Airoran": "paa-saa",
"Sami": "smi",
"Samo": "dmn-sam",
"Samogo": "dmn-smg",
"Samoyed": "syd",
"Samur": "cau-sam",
"Samur Barat": "cau-wsm",
"Samur Selatan": "cau-ssm",
"Samur Timur": "cau-esm",
"Sanglechi-Ishkashimi": "ira-sgi",
"Sankwep": "ngf-san",
"Sara": "csu-sar",
"Sarawak Utara": "poz-swa",
"Sarmatia": "xsc-sar",
"Sau-Angal-Kewa": "ngf-sak",
"Savanna": "alv-sav",
"Sawabantu": "bnt-saw",
"Scandinavia Barat": "gmq-wes",
"Scandinavia Kepulauan": "gmq-ins",
"Scandinavia Timur": "gmq-eas",
"Scythia": "xsc",
"Selkup": "sel",
"Semitik": "sem",
"Semitik Barat": "sem-wes",
"Semitik Barat Laut": "sem-nwe",
"Semitik Habsyah": "sem-eth",
"Semitik Tengah": "sem-cen",
"Semitik Timur": "sem-eas",
"Sena": "bnt-sna",
"Senagi": "paa-sng",
"Senari": "alv-snr",
"Senegambia": "alv-sng",
"Sentani": "paa-sen",
"Senufo": "alv-snf",
"Sepik": "paa-sep",
"Sepik Bawah": "paa-lse",
"Serbi-Mongolik": "qfa-xgs",
"Sere": "nic-ser",
"Seuta": "bnt-seu",
"Shastan": "nai-shs",
"Shi-Havu": "bnt-shh",
"Shinaik": "inc-shn",
"Shirongolik": "xgn-shr",
"Shiroro": "nic-shi",
"Shona": "bnt-sho",
"Shughni-Roshani": "ira-shr",
"Shughni-Yazghulami": "ira-shy",
"Shughni-Yazghulami-Munji": "ira-sym",
"Siangik Raya": "sit-gsi",
"Siloid": "tbq-sil",
"Simbu": "ngf-sim",
"Sindhik": "inc-snd",
"Sinitik": "zhx",
"Sino-Bai": "sit-sba",
"Sino-Tibet": "sit",
"Siouan": "sio",
"Siouan Lembah Mississippi": "sio-msv",
"Siouan Lembah Ohio": "sio-ohv",
"Siouan Sungai Missouri": "sio-mor",
"Siouan-Catawban": "nai-sca",
"Sira": "bnt-sir",
"Sisaala": "nic-sis",
"Sko": "paa-sko",
"Sko Pedalaman": "paa-isk",
"Slav": "sla",
"Slav Barat": "zlw",
"Slav Selatan": "zls",
"Slav Timur": "zle",
"Slavey": "den",
"Sogdik": "ira-sgc",
"Sogdo-Bactria": "ira-sbc",
"Sogeram": "ngf-sog",
"Sogeram Barat": "ngf-wso",
"Sogeram Timur": "ngf-eso",
"Sogeram Utara": "ngf-nso",
"Soko-Kele": "bnt-ske",
"Solomon Tenggara": "poz-sls",
"Somaloid": "cus-som",
"Songhay": "son",
"Soninke-Bobo": "dmn-snb",
"Sopac": "ngf-sop",
"Sorbia": "wen",
"Sotho-Tswana": "bnt-sts",
"St. Matthias": "poz-stm",
"Strickland Timur": "ngf-est",
"Sudanik Tengah": "csu",
"Sudanik Tengah Timur": "csu-ecs",
"Sudanik Timur": "sdv",
"Sudanik Timur Bahagian Utara": "sdv-nes",
"Sulawesi Selatan": "poz-ssw",
"Sumatera Barat Laut": "poz-nws",
"Sungai Bulaka": "paa-bul",
"Sungai Pahoturi": "paa-pah",
"Sungai Piore": "paa-pio",
"Supyire-Mamara": "alv-sma",
"Susu-Yalunka": "dmn-sya",
"Swahili": "bnt-swh",
"Ta-Arawak": "awd-taa",
"Tacanan": "sai-tac",
"Tagwana-Djimini": "alv-tdj",
"Tai": "tai",
"Tai Barat Daya": "tai-swe",
"Tai Chongzuo": "tai-cho",
"Tai Sapa-Barat Daya": "tai-sap",
"Tai Tengah": "tai-cen",
"Tai Utara": "tai-nor",
"Tai Wenma-Barat Daya": "tai-wen",
"Taikat-Awyi": "paa-taa",
"Tainae-Akoye": "ngf-taa",
"Tairora": "ngf-tai",
"Takama": "bnt-tkm",
"Takic": "azc-tak",
"Talodi": "alv-tal",
"Talodi-Heiban": "alv-the",
"Taloid": "tbq-tal",
"Taman": "sdv-tmn",
"Tamangik": "sit-tam",
"Tamil-Kannada": "dra-tkn",
"Tamil-Kodagu": "dra-tkd",
"Tamil-Malayalam": "dra-tml",
"Tamiloid": "dra-tam",
"Tamolan": "paa-tam",
"Tangkhul-Maring": "sit-tma",
"Tangkhulik": "sit-tng",
"Tangkic": "aus-tnk",
"Tangko-Nakai": "ngf-tna",
"Tangsa-Nocte": "sit-tno",
"Tani": "sit-tan",
"Tano Tengah": "alv-ctn",
"Taracahitic": "azc-trc",
"Taranoan": "sai-tar",
"Tarokoid": "nic-tar",
"Tasik Paniai": "ngf-pan",
"Tatik": "xme-ttc",
"Teberan": "paa-teb",
"Teke": "bnt-tek",
"Teke Tengah": "bnt-tkc",
"Teke-Mbede": "bnt-tmb",
"Teluguik": "dra-tel",
"Teluk Geelvink Timur": "paa-egb",
"Teluk Pedalaman": "paa-ing",
"Teluk Pedalaman Barat": "paa-wig",
"Temotu": "poz-tem",
"Tenda": "alv-ten",
"Tequistlatecan": "nai-tqn",
"Ternate-Tidore": "paa-tti",
"Teso-Turkana": "sdv-ttu",
"Tetela": "bnt-tet",
"Tharu": "inc-tha",
"Tibetik": "sit-tib",
"Tibeto-Burma": "tbq",
"Tiboran": "ngf-tib",
"Ticuna-Yuri": "sai-tyu",
"Timor Timur": "paa-eti",
"Timor-Alor-Pantar": "paa-tap",
"Timorik": "poz-tim",
"Tiniguan": "sai-tin",
"Tirio": "paa-tir",
"Tivoid": "nic-tiv",
"Tivoid Tengah": "nic-tvc",
"Tivoid Utara": "nic-tvn",
"Toda-Kota": "dra-tkt",
"Tokharia": "ine-toc",
"Tomini-Tolitoli": "poz-tot",
"Tonda": "paa-ton",
"Tongik": "poz-ton",
"Tor": "paa-tor",
"Tor-Orya": "paa-too",
"Torricelli": "paa-trr",
"Totonakan": "nai-ttn",
"Totozoquean": "nai-tot",
"Trans-Fly Timur": "paa-etf",
"Trans-New Guinea": "ngf",
"Triqui": "omq-tri",
"Tsezian": "cau-tsz",
"Tsezian Barat": "cau-wts",
"Tsezian Timur": "cau-ets",
"Tshangla": "sit-tsk",
"Tsimshianik": "nai-tsi",
"Tsogo": "bnt-tso",
"Tswa-Ronga": "bnt-tsr",
"Tucanoan": "sai-tuc",
"Tujia": "sit-tja",
"Tulu-Koraga": "dra-tlk",
"Tungusik": "tuw",
"Tupi": "tup",
"Tupi-Guarani": "tup-gua",
"Turama-Kikori": "paa-tki",
"Turkik": "trk",
"Turkik Sepunya": "trk-cmn",
"Turkik Siberia": "trk-sib",
"Turkik Siberia Selatan": "trk-ssb",
"Turkik Siberia Utara": "trk-nsb",
"Tuu": "khi-tuu",
"Tyrsenian": "qfa-tyn",
"Tày": "tai-tay",
"Ubangian": "nic-ubg",
"Udegheik": "tuw-udg",
"Ugrik": "urj-ugr",
"Uralik": "urj",
"Uru-Chipaya": "sai-ucp",
"Uruwa": "ngf-uru",
"Utian": "nai-utn",
"Uto-Aztecan": "azc",
"Utu-Silopi": "ngf-usi",
"Vai-Kono": "dmn-vak",
"Vainakh": "cau-vay",
"Vale": "csu-val",
"Vanuatu Selatan": "poz-vns",
"Vanuatu Tengah": "poz-vnc",
"Vanuatu Utara": "poz-vnn",
"Vaskonik": "euq",
"Vietik": "mkh-vie",
"Volta-Congo": "nic-vco",
"Volta-Niger": "alv-von",
"Wahgi": "ngf-wah",
"Waja-Kam": "alv-wjk",
"Wakashan": "wak",
"Walio": "paa-wal",
"Wantoat-Awara": "ngf-waa",
"Wantoatik": "ngf-wan",
"Wapei": "paa-wap",
"Wapei-Palei": "paa-wpa",
"Wara-Natyoro": "alv-wan",
"Waris": "paa-war",
"Warup": "ngf-war",
"Wee": "kro-wee",
"Wichí": "sai-wic",
"Wintuan": "nai-wtq",
"Witotoan": "sai-wit",
"Wojokesik": "ngf-woj",
"Worrorran": "aus-wor",
"Wotu-Wolio": "poz-wot",
"Wára-Kómnzo": "paa-wko",
"Xincan": "nai-xin",
"Yaganon": "ngf-yag",
"Yaka": "bnt-yak",
"Yali": "ngf-yal",
"Yam": "paa-yam",
"Yambasa": "nic-ymb",
"Yangmanic": "aus-yng",
"Yanomami": "sai-ynm",
"Yaqayik": "paa-yaq",
"Yareban": "ngf-yar",
"Yasa-Kombe": "bnt-yko",
"Yau-Nungon": "ngf-ynu",
"Yawa-Saweru": "paa-ysa",
"Yekhee": "alv-yek",
"Yeniseian": "qfa-yen",
"Yidinyic": "aus-yid",
"Yok-Utian": "nai-you",
"Yokuts": "yok",
"Yolngu": "aus-yol",
"Yom-Nawdm": "nic-yon",
"Yoruba": "alv-yor",
"Yoruboid": "alv-yrd",
"Yuat": "paa-yua",
"Yue": "zhx-yue",
"Yuin-Kuric": "aus-yuk",
"Yukaghir": "qfa-yuk",
"Yukian": "nai-ykn",
"Yukpan": "sai-yuk",
"Yukubenik": "nic-ykb",
"Yuman-Cochimí": "nai-yuc",
"Yungur": "alv-yun",
"Yupik": "ypk",
"Yupna": "ngf-yup",
"Zamba-Binza": "bnt-zbi",
"Zamucoan": "sai-zam",
"Zan": "ccs-zan",
"Zande": "znd",
"Zaparoan": "sai-zap",
"Zapotec": "omq-zpc",
"Zapotecan": "omq-zap",
"Zaza-Gorani": "ira-zgr",
"Zeme": "sit-zem",
"bahasa isyarat": "sgn",
"bercampur": "qfa-mix",
"buatan": "art",
"bukan satu keluarga": "qfa-not",
"kontak": "qfa-cnt",
"kreol": "qfa-cre",
"kreol atau pidgin": "crp",
"pencilan": "qfa-iso",
"pertalian yang dipertikaikan": "qfa-dis",
"pidgin": "qfa-pid",
"rGyalrongik Barat": "sit-wgy",
"rGyalrongik Timur": "sit-egy",
"substrat": "qfa-sub",
"tidak dapat dikelaskan": "qfa-unc"
}
pqwtaa0q2urbnakk6k7dva2thq2kvvc
Modul:families/code to canonical name.json
828
76131
373527
273107
2026-09-11T03:05:17Z
SNN95
2113
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373527
json
application/json
{
"aav": "Austroasiatik",
"aav-khs": "Khasian",
"aav-nic": "Nicobarese",
"aav-pkl": "Pnar-Khasi-Lyngngam",
"afa": "Afro-Asia",
"alg": "Algonquian",
"alg-abp": "Abenaki-Penobscot",
"alg-ara": "Arapahoan",
"alg-eas": "Algonquian Timur",
"alg-sfk": "Sac-Fox-Kickapoo",
"alv": "Atlantik-Congo",
"alv-aah": "Ayere-Ahan",
"alv-ada": "Adamawa",
"alv-bag": "Baga",
"alv-bak": "Bak",
"alv-bam": "Bambukic",
"alv-bny": "Banyum",
"alv-bua": "Bua",
"alv-bwj": "Bikwin-Jen",
"alv-cng": "Cangin",
"alv-ctn": "Tano Tengah",
"alv-dlt": "Edoid Delta",
"alv-dur": "Duru",
"alv-ede": "Ede",
"alv-edk": "Edekiri",
"alv-edo": "Edoid",
"alv-eeo": "Edo-Esan-Ora",
"alv-fli": "Fali",
"alv-fwo": "Fula-Wolof",
"alv-gbe": "Gbe",
"alv-gda": "Ga-Dangme",
"alv-gng": "Guang",
"alv-gtm": "Pergunungan Ghana-Togo",
"alv-hei": "Heiban",
"alv-ido": "Idomoid",
"alv-igb": "Igboid",
"alv-jfe": "Jola-Felupe",
"alv-jol": "Jola",
"alv-kim": "Kim",
"alv-kis": "Kissi",
"alv-krb": "Karaboro",
"alv-ktg": "Ka-Togo",
"alv-kul": "Kulango",
"alv-kwa": "Kwa",
"alv-lag": "Lagoon",
"alv-lek": "Leko",
"alv-lim": "Limba",
"alv-lni": "Leko-Nimbari",
"alv-mbd": "Mbum-Day",
"alv-mbm": "Mbum",
"alv-mel": "Mel",
"alv-mum": "Mumuye",
"alv-mye": "Mumuye-Yendang",
"alv-nal": "Nalu",
"alv-nce": "Edoid Utara-Tengah",
"alv-ngb": "Nupe-Gbagyi",
"alv-ntg": "Na-Togo",
"alv-nup": "Nupoid",
"alv-nwd": "Edoid Barat Laut",
"alv-nyn": "Nyun",
"alv-pap": "Papel",
"alv-pph": "Phla-Pherá",
"alv-ptn": "Potou-Tano",
"alv-sav": "Savanna",
"alv-sma": "Supyire-Mamara",
"alv-snf": "Senufo",
"alv-sng": "Senegambia",
"alv-snr": "Senari",
"alv-swd": "Edoid Barat Daya",
"alv-tal": "Talodi",
"alv-tdj": "Tagwana-Djimini",
"alv-ten": "Tenda",
"alv-the": "Talodi-Heiban",
"alv-von": "Volta-Niger",
"alv-wan": "Wara-Natyoro",
"alv-wjk": "Waja-Kam",
"alv-yek": "Yekhee",
"alv-yor": "Yoruba",
"alv-yrd": "Yoruboid",
"alv-yun": "Yungur",
"apa": "Apachean",
"aqa": "Alacalufan",
"aql": "Algic",
"art": "buatan",
"ath": "Athabaskan",
"ath-nor": "Athabaskan Utara",
"ath-pco": "Athabaskan Pantai Pasifik",
"auf": "Arauan",
"aus-arn": "Arnhem",
"aus-bub": "Bunuban",
"aus-cww": "New South Wales Tengah",
"aus-dal": "Daly",
"aus-dyb": "Dyirbalic",
"aus-gar": "Garawan",
"aus-gun": "Gunwinyguan",
"aus-jar": "Jarrakan",
"aus-kar": "Karnic",
"aus-mir": "Mirndi",
"aus-nga": "Ngayarda",
"aus-nyu": "Nyulnyulan",
"aus-pam": "Pama-Nyungan",
"aus-pmn": "Paman",
"aus-psw": "Pama-Nyungan Barat Daya",
"aus-rnd": "Arandic",
"aus-tnk": "Tangkic",
"aus-wdj": "Iwaidjan",
"aus-wor": "Worrorran",
"aus-yid": "Yidinyic",
"aus-yng": "Yangmanic",
"aus-yol": "Yolngu",
"aus-yuk": "Yuin-Kuric",
"awd": "Arawak",
"awd-nwk": "Nawiki",
"awd-taa": "Ta-Arawak",
"azc": "Uto-Aztecan",
"azc-cup": "Cupan",
"azc-dur": "Nahuatl Durango",
"azc-hua": "Nahuatl Huasteca",
"azc-nah": "Nahuan",
"azc-num": "Numic",
"azc-pim": "Piman",
"azc-tak": "Takic",
"azc-trc": "Taracahitic",
"bad": "Banda",
"bad-cnt": "Banda Tengah",
"bai": "Bamileke",
"bat": "Baltic",
"bat-eas": "Baltik Timur",
"bat-wes": "Baltik Barat",
"ber": "Berber",
"bnt": "Bantu",
"bnt-baf": "Bafia",
"bnt-bbo": "Bafo-Bonkeng",
"bnt-bdz": "Boma-Dzing",
"bnt-bek": "Bekwilic",
"bnt-bki": "Bena-Kinga",
"bnt-bmo": "Bangi-Moi",
"bnt-bne": "Bantu Timur Laut",
"bnt-bnm": "Bangi-Ntomba",
"bnt-boa": "Boan",
"bnt-bot": "Botatwe",
"bnt-bsa": "Basaa",
"bnt-bsh": "Bushoong",
"bnt-bso": "Bantu Selatan",
"bnt-bta": "Bati-Angba",
"bnt-btb": "Beti",
"bnt-bte": "Bangi-Tetela",
"bnt-bun": "Buja-Ngombe",
"bnt-chg": "Chaga",
"bnt-cht": "Chaga-Taita",
"bnt-clu": "Chokwe-Luchazi",
"bnt-com": "Comorian",
"bnt-glb": "Bantu Tasik-Tasik Besar",
"bnt-haj": "Haya-Jita",
"bnt-kak": "Kako",
"bnt-kav": "Kavango",
"bnt-kbi": "Komo-Bira",
"bnt-kel": "Kele",
"bnt-kil": "Kilombero",
"bnt-kka": "Kikuyu-Kamba",
"bnt-kmb": "Kimbundu",
"bnt-kng": "Kongo",
"bnt-kpw": "Kpwe",
"bnt-ksb": "Kavango-Bantu Barat Daya",
"bnt-kts": "Kele-Tsogo",
"bnt-lbn": "Luban",
"bnt-leb": "Lebonya",
"bnt-lgb": "Lega-Binja",
"bnt-lok": "Logooli-Kuria",
"bnt-lub": "Luba",
"bnt-lun": "Lunda",
"bnt-mak": "Makua",
"bnt-mbb": "Mboshi-Buja",
"bnt-mbe": "Mbole-Enya",
"bnt-mbi": "Mbinga",
"bnt-mbo": "Mboshi",
"bnt-mbt": "Mbete",
"bnt-mby": "Mbeya",
"bnt-mij": "Mijikenda",
"bnt-mka": "Makaa",
"bnt-mne": "Manenguba",
"bnt-mnj": "Makaa-Njem",
"bnt-mon": "Mongo",
"bnt-mra": "Mbugwe-Rangi",
"bnt-msl": "Masaba-Luhya",
"bnt-mwi": "Mwika",
"bnt-ncb": "Bantu Pantai Timur Laut",
"bnt-ndb": "Ndzem-Bomwali",
"bnt-ngn": "Ngondi-Ngiri",
"bnt-ngu": "Nguni",
"bnt-nya": "Nyali",
"bnt-nyb": "Nyanga-Buyi",
"bnt-nyg": "Nyoro-Ganda",
"bnt-nys": "Nyasa",
"bnt-nze": "Nzebi",
"bnt-ova": "Ovambo",
"bnt-par": "Pare",
"bnt-pen": "Pende",
"bnt-pob": "Pomo-Bomwali",
"bnt-ruk": "Rukwa",
"bnt-run": "Rungwe",
"bnt-rur": "Rufiji-Ruvuma",
"bnt-ruv": "Ruvu",
"bnt-rvm": "Ruvuma",
"bnt-sab": "Sabaki",
"bnt-saw": "Sawabantu",
"bnt-sbi": "Sabi",
"bnt-seu": "Seuta",
"bnt-shh": "Shi-Havu",
"bnt-sho": "Shona",
"bnt-sir": "Sira",
"bnt-ske": "Soko-Kele",
"bnt-sna": "Sena",
"bnt-sts": "Sotho-Tswana",
"bnt-swb": "Bantu Barat Daya",
"bnt-swh": "Swahili",
"bnt-tek": "Teke",
"bnt-tet": "Tetela",
"bnt-tkc": "Teke Tengah",
"bnt-tkm": "Takama",
"bnt-tmb": "Teke-Mbede",
"bnt-tso": "Tsogo",
"bnt-tsr": "Tswa-Ronga",
"bnt-yak": "Yaka",
"bnt-yko": "Yasa-Kombe",
"bnt-zbi": "Zamba-Binza",
"btk": "Batak",
"cau-abz": "Abkhaz-Abaza",
"cau-and": "Andian",
"cau-ava": "Avaro-Andian",
"cau-cir": "Circassian",
"cau-drg": "Dargwa",
"cau-esm": "Samur Timur",
"cau-ets": "Tsezian Timur",
"cau-lzg": "Lezghian",
"cau-nec": "Kaukasia Timur Laut",
"cau-nkh": "Nakh",
"cau-nwc": "Kaukasia Barat Laut",
"cau-sam": "Samur",
"cau-ssm": "Samur Selatan",
"cau-tsz": "Tsezian",
"cau-vay": "Vainakh",
"cau-wsm": "Samur Barat",
"cau-wts": "Tsezian Barat",
"cba": "Chibchan",
"ccs": "Kartvelian",
"ccs-gzn": "Georgia-Zan",
"ccs-zan": "Zan",
"cdc": "Chadik",
"cdc-cbm": "Chadik Tengah",
"cdc-est": "Chadik Timur",
"cdc-mas": "Masa",
"cdc-wst": "Chadik Barat",
"cdd": "Caddoan",
"cel": "Keltik",
"cel-brs": "Brythonic Barat Daya",
"cel-brw": "Brythonic Barat",
"cel-bry": "Brythonic",
"cel-gae": "Goidelik",
"cel-his": "Hispano-Keltik",
"cel-ins": "Keltik Kepulauan",
"chi": "Chimakuan",
"chm": "Mari",
"cmc": "Chamik",
"crp": "kreol atau pidgin",
"csu": "Sudanik Tengah",
"csu-bba": "Bongo-Bagirmi",
"csu-bbk": "Bongo-Baka",
"csu-bgr": "Bagirmi",
"csu-bkr": "Birri-Kresh",
"csu-ecs": "Sudanik Tengah Timur",
"csu-kab": "Kaba",
"csu-lnd": "Lendu",
"csu-maa": "Mangbetu",
"csu-mle": "Mangbutu-Lese",
"csu-mma": "Moru-Madi",
"csu-sar": "Sara",
"csu-val": "Vale",
"cus": "Kushitik",
"cus-cen": "Kushitik Tengah",
"cus-eas": "Kushitik Timur",
"cus-hec": "Kushitik Timur Tanah Tinggi",
"cus-som": "Somaloid",
"cus-sou": "Kushitik Selatan",
"day": "Dayak Darat",
"del": "Lenape",
"den": "Slavey",
"dmn": "Mande",
"dmn-bbu": "Bisa-Busa",
"dmn-emn": "Manding Timur",
"dmn-jje": "Jogo-Jeri",
"dmn-man": "Manding",
"dmn-mda": "Mano-Dan",
"dmn-mdc": "Mande Tengah",
"dmn-mde": "Mande Timur",
"dmn-mdw": "Mande Barat",
"dmn-mjo": "Manding-Jogo",
"dmn-mmo": "Manding-Mokole",
"dmn-mnk": "Maninka",
"dmn-mnw": "Mande Barat Laut",
"dmn-mok": "Mokole",
"dmn-mse": "Mande Tenggara",
"dmn-msw": "Mande Barat Daya",
"dmn-mva": "Manding-Vai",
"dmn-nbe": "Nwa-Beng",
"dmn-sam": "Samo",
"dmn-smg": "Samogo",
"dmn-snb": "Soninke-Bobo",
"dmn-sya": "Susu-Yalunka",
"dmn-vak": "Vai-Kono",
"dmn-wmn": "Manding Barat",
"dra": "Dravida",
"dra-cen": "Dravida Tengah",
"dra-gki": "Gondi-Kui",
"dra-gon": "Gondi",
"dra-imd": "Irula-Muduga",
"dra-kan": "Kannadoid",
"dra-kki": "Konda-Kui",
"dra-kml": "Kurux-Malto",
"dra-knk": "Kolami-Naiki",
"dra-kod": "Kodagu",
"dra-kor": "Koraga",
"dra-mal": "Malayalamoid",
"dra-mdy": "Madiya",
"dra-mlo": "Malto",
"dra-mur": "Muria",
"dra-nor": "Dravida Utara",
"dra-pgd": "Parji-Gadaba",
"dra-sdo": "Dravida Selatan I",
"dra-sdt": "Dravida Selatan II",
"dra-sou": "Dravida Selatan",
"dra-tam": "Tamiloid",
"dra-tel": "Teluguik",
"dra-tkd": "Tamil-Kodagu",
"dra-tkn": "Tamil-Kannada",
"dra-tkt": "Toda-Kota",
"dra-tlk": "Tulu-Koraga",
"dra-tml": "Tamil-Malayalam",
"egx": "Mesir",
"ero": "Horpa",
"esx": "Eskimo-Aleut",
"esx-esk": "Eskimo",
"esx-inu": "Inuit",
"euq": "Vaskonik",
"gba": "Gbaya",
"gba-eas": "Gbaya Timur",
"gba-sou": "Gbaya Selatan",
"gba-wes": "Gbaya Barat",
"gem": "Jermanik",
"gio": "Gelao",
"gme": "Jermanik Timur",
"gmq": "Jermanik Utara",
"gmq-eas": "Scandinavia Timur",
"gmq-ins": "Scandinavia Kepulauan",
"gmq-wes": "Scandinavia Barat",
"gmw": "Jermanik Barat",
"gmw-afr": "Anglo-Frisia",
"gmw-ang": "Anglik",
"gmw-fri": "Frisia",
"gmw-frk": "Frankonia Bawah",
"gmw-hgm": "Jerman Tinggi",
"gmw-ian": "Anglo-Norman Ireland",
"gmw-lgm": "Jerman Rendah",
"gmw-nsg": "Jermanik Laut Utara",
"gn": "Guarani",
"grb": "Grebo tepat",
"grk": "Hellenik",
"him": "Pahari Barat",
"hmn": "Hmongik",
"hmx": "Hmong-Mien",
"hmx-mie": "Mienik",
"hok": "Hokan",
"hyx": "Armenia",
"iir": "Indo-Iran",
"iir-nur": "Nuristani",
"ijo": "Ijoid",
"inc": "Indo-Arya",
"inc-bas": "Bengali-Assam",
"inc-bhi": "Bhil",
"inc-bih": "Bihari",
"inc-cen": "Indo-Arya Tengah",
"inc-chi": "Chitrali",
"inc-dar": "Dardik",
"inc-dng": "Dangari",
"inc-dre": "Dardik Timur",
"inc-eas": "Indo-Arya Timur",
"inc-hal": "Halbik",
"inc-hie": "Hindi Timur",
"inc-hiw": "Hindi Barat",
"inc-hnd": "Hindustani",
"inc-ins": "Indo-Arya Kepulauan",
"inc-kas": "Kashmirik",
"inc-koh": "Kohistani",
"inc-krd": "Bahasa-bahasa KRDS",
"inc-kun": "Kunar",
"inc-mid": "Indo-Arya Pertengahan",
"inc-nor": "Indo-Arya Utara",
"inc-nwe": "Indo-Arya Barat Laut",
"inc-old": "Indo-Arya Kuno",
"inc-pac": "Pahari Tengah",
"inc-pae": "Pahari Timur",
"inc-pah": "Pahari",
"inc-pan": "Punjabik",
"inc-pas": "Pashayi",
"inc-rom": "Romani",
"inc-sad": "Sadanik",
"inc-shn": "Shinaik",
"inc-snd": "Sindhik",
"inc-sou": "Indo-Arya Selatan",
"inc-tha": "Tharu",
"inc-wes": "Indo-Arya Barat",
"ine": "Indo-Eropah",
"ine-ana": "Anatolia",
"ine-bsl": "Balto-Slav",
"ine-luw": "Luwik",
"ine-toc": "Tokharia",
"ira": "Iran",
"ira-cen": "Iran Tengah",
"ira-csp": "Kaspia",
"ira-kms": "Komisenian",
"ira-lur": "Lurik",
"ira-mid": "Iran Pertengahan",
"ira-mny": "Munji-Yidgha",
"ira-mpr": "Medo-Parthia",
"ira-msh": "Mazanderani-Shahmirzadi",
"ira-nei": "Iran Timur Laut",
"ira-nwi": "Iran Barat Laut",
"ira-old": "Iran Kuno",
"ira-orp": "Ormuri-Parachi",
"ira-pat": "Pathan",
"ira-sbc": "Sogdo-Bactria",
"ira-sei": "Iran Tenggara",
"ira-sgc": "Sogdik",
"ira-sgi": "Sanglechi-Ishkashimi",
"ira-shr": "Shughni-Roshani",
"ira-shy": "Shughni-Yazghulami",
"ira-swi": "Iran Barat Daya",
"ira-sym": "Shughni-Yazghulami-Munji",
"ira-wes": "Iran Barat",
"ira-zgr": "Zaza-Gorani",
"iro": "Iroquoia",
"iro-nor": "Iroquoia Utara",
"itc": "Italik",
"itc-laf": "Latino-Faliskan",
"itc-sbl": "Osko-Umbria",
"jpx": "Japonik",
"jpx-nry": "Ryukyu Utara",
"jpx-ryu": "Ryukyu",
"jpx-sry": "Ryukyu Selatan",
"kar": "Karen",
"kca": "Khanty",
"khi-kal": "Khoe Kalahari",
"khi-khk": "Khoekhoe",
"khi-kho": "Khoe",
"khi-kkw": "Khoe-Kwadi",
"khi-kxa": "Kx'a",
"khi-tuu": "Tuu",
"kro": "Kru",
"kro-aiz": "Aizi",
"kro-bet": "Bété",
"kro-did": "Dida",
"kro-ekr": "Kru Timur",
"kro-grb": "Grebo",
"kro-wee": "Wee",
"kro-wkr": "Kru Barat",
"ku": "Kurdish",
"kv": "Komi",
"map": "Austronesia",
"map-ata": "Atayalik",
"mjg": "Monguor",
"mkh": "Mon-Khmer",
"mkh-asl": "Aslian",
"mkh-ban": "Bahnarik",
"mkh-kat": "Katuik",
"mkh-khm": "Khmuik",
"mkh-kmr": "Khmerik",
"mkh-mnc": "Monik",
"mkh-mng": "Mangik",
"mkh-nbn": "Bahnarik Utara",
"mkh-pal": "Palaungik",
"mkh-pea": "Pearik",
"mkh-pkn": "Pakanik",
"mkh-vie": "Vietik",
"mno": "Manobo",
"mns": "Mansi",
"mun": "Munda",
"myn": "Maya",
"nai-cat": "Catawban",
"nai-chu": "Chumashan",
"nai-ckn": "Chinookan",
"nai-coo": "Coosan",
"nai-jcq": "Jicaquean",
"nai-ker": "Keresan",
"nai-klp": "Kalapuyan",
"nai-kta": "Kiowa-Tanoan",
"nai-len": "Lencan",
"nai-mdu": "Maiduan",
"nai-min": "Misumalpan",
"nai-miz": "Mixe-Zoquean",
"nai-mus": "Muskogean",
"nai-pak": "Pakawan",
"nai-pal": "Palaihnihan",
"nai-plp": "Penutian Penara",
"nai-pom": "Pomoan",
"nai-sca": "Siouan-Catawban",
"nai-shp": "Sahaptian",
"nai-shs": "Shastan",
"nai-tot": "Totozoquean",
"nai-tqn": "Tequistlatecan",
"nai-tsi": "Tsimshianik",
"nai-ttn": "Totonakan",
"nai-utn": "Utian",
"nai-wtq": "Wintuan",
"nai-xin": "Xincan",
"nai-ykn": "Yukian",
"nai-you": "Yok-Utian",
"nai-yuc": "Yuman-Cochimí",
"ngf": "Trans-New Guinea",
"ngf-ais": "Aisian",
"ngf-ang": "Angan",
"ngf-ank": "Angal-Kewa",
"ngf-ask": "Asmat-Kamoro",
"ngf-asm": "Asmat",
"ngf-ata": "Ankave-Tainae-Akoye",
"ngf-awd": "Awyu-Dumut",
"ngf-awy": "Awyu",
"ngf-bda": "Becking-Dawi",
"ngf-bin": "Binanderean",
"ngf-boa": "Boane",
"ngf-bos": "Bosavi",
"ngf-bsi": "Baruya-Simbari",
"ngf-cda": "Dani Tengah",
"ngf-chw": "Chimbu-Wahgi",
"ngf-dag": "Dagan",
"ngf-dal": "Dallman",
"ngf-dan": "Dani",
"ngf-dum": "Dumut",
"ngf-ehu": "Huon Timur",
"ngf-eku": "Kutubuan Timur",
"ngf-enc": "Engik",
"ngf-eng": "Engan",
"ngf-era": "Erap",
"ngf-eso": "Sogeram Timur",
"ngf-est": "Strickland Timur",
"ngf-eva": "Evapia",
"ngf-fgi": "Fore-Gimi",
"ngf-fhu": "Finisterre-Huon",
"ngf-fin": "Finisterre",
"ngf-gah": "Gahuku",
"ngf-gau": "Gauwa",
"ngf-gaw": "Awyu Raya",
"ngf-gbi": "Binanderean Raya",
"ngf-gko": "Gaena-Korafe",
"ngf-gmo": "Gusap-Mot",
"ngf-gor": "Goroka",
"ngf-gsu": "Gogodala-Suki",
"ngf-gum": "Gum",
"ngf-gvd": "Dani Lembah Besar",
"ngf-hag": "Hagen",
"ngf-han": "Hanseman",
"ngf-huo": "Huon",
"ngf-jim": "Jimi",
"ngf-kab": "Kabwum",
"ngf-kai": "Kainantu",
"ngf-kak": "Kalam-Kobon",
"ngf-kau": "Kaukombar",
"ngf-kbm": "Kosorong-Burum-Mindik",
"ngf-kgo": "Kainantu-Goroka",
"ngf-khu": "Kewa-Huli",
"ngf-kma": "Kâte-Mape",
"ngf-kme": "Kapau-Menya",
"ngf-koi": "Koiarian",
"ngf-kok": "Kokon",
"ngf-kow": "Kowan",
"ngf-ksa": "Kalam-Adelbert Selatan",
"ngf-kto": "Kube-Tobo",
"ngf-kts": "Komyandaret-Tsaukambo",
"ngf-kum": "Kumil",
"ngf-kya": "Kamano-Yagaria",
"ngf-lok": "Ok Tanah Rendah",
"ngf-mab": "Mabuso",
"ngf-mad": "Madang",
"ngf-mek": "Mek",
"ngf-min": "Mindjim",
"ngf-mok": "Ok Pergunungan",
"ngf-mom": "Mombum",
"ngf-msu": "Mian-Suganga",
"ngf-nad": "Adelbert Utara",
"ngf-nbi": "Binanderean Utara",
"ngf-nde": "Ndeiram",
"ngf-ngn": "Ngalik-Nduga",
"ngf-nso": "Sogeram Utara",
"ngf-num": "Numugen",
"ngf-nur": "Nuru",
"ngf-nwh": "Hanseman Barat Laut",
"ngf-oen": "Engan Luar",
"ngf-okk": "Ok",
"ngf-omo": "Omosan",
"ngf-oro": "Orokaivik",
"ngf-pan": "Tasik Paniai",
"ngf-pek": "Peka",
"ngf-pom": "Pomoikan",
"ngf-rai": "Pesisir Rai",
"ngf-sab": "Sabakor",
"ngf-sad": "Adelbert Selatan",
"ngf-sak": "Sau-Angal-Kewa",
"ngf-san": "Sankwep",
"ngf-sbh": "Kepala Burung Selatan",
"ngf-sim": "Simbu",
"ngf-sog": "Sogeram",
"ngf-sop": "Sopac",
"ngf-taa": "Tainae-Akoye",
"ngf-tai": "Tairora",
"ngf-tib": "Tiboran",
"ngf-tna": "Tangko-Nakai",
"ngf-uru": "Uruwa",
"ngf-usi": "Utu-Silopi",
"ngf-waa": "Wantoat-Awara",
"ngf-wah": "Wahgi",
"ngf-wan": "Wantoatik",
"ngf-war": "Warup",
"ngf-woj": "Wojokesik",
"ngf-wok": "Ok Barat",
"ngf-wso": "Sogeram Barat",
"ngf-yag": "Yaganon",
"ngf-yal": "Yali",
"ngf-yar": "Yareban",
"ngf-ynu": "Yau-Nungon",
"ngf-yup": "Yupna",
"nic": "Niger-Congo",
"nic-alu": "Alumik",
"nic-bas": "Basa",
"nic-bbe": "Beboid Timur",
"nic-bco": "Benue-Congo",
"nic-bcr": "Bantoid-Cross",
"nic-bdn": "Bantoid Utara",
"nic-bds": "Bantoid Selatan",
"nic-beb": "Beboid",
"nic-ben": "Bendi",
"nic-beo": "Beromik",
"nic-bod": "Bantoid",
"nic-buk": "Buli-Koma",
"nic-bwa": "Bwa",
"nic-cde": "Delta Tengah",
"nic-cri": "Cross River",
"nic-dag": "Dagbani",
"nic-dak": "Dakoid",
"nic-dge": "Dogon Tubir",
"nic-dgw": "Dogon Barat",
"nic-eko": "Ekoid",
"nic-eov": "Oti-Volta Timur",
"nic-fru": "Furu",
"nic-gne": "Gurunsi Timur",
"nic-gnn": "Gurunsi Utara",
"nic-gns": "Gurunsi",
"nic-gnw": "Gurunsi Barat",
"nic-gre": "Grassfields Timur",
"nic-grf": "Grassfields",
"nic-grm": "Gurma",
"nic-grs": "Grassfields Barat Daya",
"nic-gur": "Gur",
"nic-ief": "Ibibio-Efik",
"nic-jer": "Jera",
"nic-jkn": "Jukunoid",
"nic-jrn": "Jarawan",
"nic-jrw": "Jarawa",
"nic-kam": "Kambari",
"nic-kau": "Kauru",
"nic-kmk": "Kamuku",
"nic-kne": "Kainji Timur",
"nic-knj": "Kainji",
"nic-knn": "Kainji Barat Laut",
"nic-ktl": "Katloid",
"nic-lcr": "Cross River Bawah",
"nic-mam": "Mamfe",
"nic-mba": "Mbam",
"nic-mbc": "Mba",
"nic-mbw": "Mbam Barat",
"nic-mmb": "Mambiloid",
"nic-mom": "Momo",
"nic-mre": "Moré",
"nic-ngd": "Ngbandi",
"nic-nge": "Ngemba",
"nic-ngk": "Ngbaka",
"nic-nin": "Ninzik",
"nic-nka": "Nkambe",
"nic-nkb": "Baka",
"nic-nke": "Ngbaka Timur",
"nic-nkg": "Gbanziri",
"nic-nkk": "Kpala",
"nic-nkm": "Mbaka",
"nic-nkw": "Ngbaka Barat",
"nic-npd": "Dogon Penara Utara",
"nic-nun": "Nun",
"nic-nwa": "Nanga-Walo",
"nic-ogo": "Ogoni",
"nic-ovo": "Oti-Volta",
"nic-pla": "Platoid",
"nic-plc": "Penara Tengah",
"nic-pld": "Dogon Dataran",
"nic-ple": "Penara Timur",
"nic-pls": "Penara Selatan",
"nic-plt": "Penara",
"nic-ras": "Rashad",
"nic-rnc": "Ring Tengah",
"nic-rng": "Ring",
"nic-rnn": "Ring Utara",
"nic-rnw": "Ring Barat",
"nic-ser": "Sere",
"nic-shi": "Shiroro",
"nic-sis": "Sisaala",
"nic-tar": "Tarokoid",
"nic-tiv": "Tivoid",
"nic-tvc": "Tivoid Tengah",
"nic-tvn": "Tivoid Utara",
"nic-ubg": "Ubangian",
"nic-uce": "Cross River Atas Timur-Barat",
"nic-ucn": "Cross River Atas Utara-Selatan",
"nic-ucr": "Cross River Atas",
"nic-vco": "Volta-Congo",
"nic-wov": "Oti-Volta Barat",
"nic-ykb": "Yukubenik",
"nic-ymb": "Yambasa",
"nic-yon": "Yom-Nawdm",
"njo": "Ao",
"nub": "Nubia",
"nub-hil": "Nubia Bukit",
"nur-nor": "Nuristani Utara",
"nur-sou": "Nuristani Selatan",
"omq": "Oto-Manguean",
"omq-cha": "Chatino",
"omq-chi": "Chinantecan",
"omq-cui": "Cuicatec",
"omq-maz": "Mazatecan",
"omq-mix": "Mixtecan",
"omq-mxt": "Mixtec",
"omq-otp": "Oto-Pamean",
"omq-pop": "Popolocan",
"omq-tri": "Triqui",
"omq-zap": "Zapotecan",
"omq-zpc": "Zapotec",
"omv": "Omotik",
"omv-aro": "Aroid",
"omv-diz": "Dizoid",
"omv-eom": "Ometo Timur",
"omv-gon": "Gonga",
"omv-mao": "Mao",
"omv-nom": "Ometo Utara",
"omv-ome": "Ometo",
"oto": "Otomian",
"oto-otm": "Otomi",
"paa": "Papua",
"paa-aia": "Aian",
"paa-alp": "Alor-Pantar",
"paa-amu": "Amto-Musan",
"paa-ani": "Anim",
"paa-ara": "Arapesh",
"paa-arf": "Arafundi",
"paa-ata": "Ataitan",
"paa-baa": "Bayono-Awbono",
"paa-bai": "Baining",
"paa-baw": "Bosngun-Awar",
"paa-bew": "Bewani",
"paa-boa": "Boazi",
"paa-bor": "Border",
"paa-bul": "Sungai Bulaka",
"paa-bvi": "Betaf-Vitou",
"paa-clp": "Dataran Tasik Tengah",
"paa-dtu": "Doso-Turumsa",
"paa-ebh": "Kepala Burung Timur",
"paa-eel": "Eleman Timur",
"paa-egb": "Teluk Geelvink Timur",
"paa-eke": "Keram Timur",
"paa-ele": "Eleman",
"paa-elp": "Dataran Tasik Timur",
"paa-epw": "Pauwasi Timur",
"paa-etf": "Trans-Fly Timur",
"paa-eti": "Timor Timur",
"paa-fas": "Fas",
"paa-flp": "Dataran Tasik Barat Jauh",
"paa-gkw": "Kwerba Raya",
"paa-gto": "Galela-Tobelo",
"paa-hya": "Heyo-Yahang",
"paa-ing": "Teluk Pedalaman",
"paa-isk": "Sko Pedalaman",
"paa-iwa": "Iwam",
"paa-kae": "Kamula-Elevala",
"paa-kan": "Kanum",
"paa-kay": "Kayagarik",
"paa-ker": "Keram",
"paa-kiw": "Kiwaian",
"paa-kko": "Kaure-Kosare",
"paa-koa": "Kombio-Arapesh",
"paa-kol": "Kolopom",
"paa-kom": "Kombio",
"paa-kun": "Kunimaipan",
"paa-kwa": "Kwalean",
"paa-kwe": "Kwerba tepat",
"paa-kwo": "Kwomtari",
"paa-lla": "Loloda-Laba",
"paa-lma": "May Kiri",
"paa-lmu": "Lepki-Murkim",
"paa-lpl": "Dataran Tasik",
"paa-lra": "Ramu Bawah",
"paa-lse": "Sepik Bawah",
"paa-mai": "Mairasi",
"paa-mal": "Mailuan",
"paa-mam": "Maimai",
"paa-man": "Manubaran",
"paa-mar": "Marienberg",
"paa-may": "Maybratik",
"paa-mbi": "Mbaham-Iha",
"paa-mby": "Marind-Boazi-Yaqay",
"paa-mmu": "Mandi-Muniwara",
"paa-mon": "Monumbo",
"paa-mri": "Marindik",
"paa-nam": "Nambu",
"paa-nbo": "Bougainville Utara",
"paa-ndu": "Ndu",
"paa-ngk": "Ngkolmpu",
"paa-nha": "Halmahera Utara",
"paa-nim": "Nimboran",
"paa-nnd": "Ndu Nuklear",
"paa-nnh": "Halmahera Utara Bahagian Utara",
"paa-nto": "Namla-Tofanma",
"paa-ott": "Ottilien",
"paa-pah": "Sungai Pahoturi",
"paa-pal": "Palei",
"paa-pia": "Piawi",
"paa-pio": "Sungai Piore",
"paa-por": "Porapora",
"paa-ram": "Ramu",
"paa-rsa": "Rasawa-Saponi",
"paa-rub": "Ruboni",
"paa-saa": "Samarokena-Airoran",
"paa-sah": "Sahu",
"paa-sbo": "Bougainville Selatan",
"paa-sen": "Sentani",
"paa-sep": "Sepik",
"paa-shi": "Bukit Serra",
"paa-sko": "Sko",
"paa-sng": "Senagi",
"paa-taa": "Taikat-Awyi",
"paa-tam": "Tamolan",
"paa-tap": "Timor-Alor-Pantar",
"paa-teb": "Teberan",
"paa-tir": "Tirio",
"paa-tki": "Turama-Kikori",
"paa-ton": "Tonda",
"paa-too": "Tor-Orya",
"paa-tor": "Tor",
"paa-trr": "Torricelli",
"paa-tti": "Ternate-Tidore",
"paa-wal": "Walio",
"paa-wap": "Wapei",
"paa-war": "Waris",
"paa-wbh": "Kepala Burung Barat",
"paa-wel": "Eleman Barat",
"paa-wig": "Teluk Pedalaman Barat",
"paa-wke": "Keram Barat",
"paa-wko": "Wára-Kómnzo",
"paa-wlp": "Dataran Tasik Barat",
"paa-wpa": "Wapei-Palei",
"paa-wpw": "Pauwasi Barat",
"paa-yam": "Yam",
"paa-yaq": "Yaqayik",
"paa-ysa": "Yawa-Saweru",
"paa-yua": "Yuat",
"phi": "Filipina",
"phi-kal": "Kalamian",
"poz": "Melayu-Polinesia",
"poz-aay": "Kepulauan Admiralty",
"poz-bnn": "Borneo Utara",
"poz-bre": "Barito Timur",
"poz-brw": "Barito Barat",
"poz-bss": "Bali-Sasak-Sumbawa",
"poz-btk": "Bungku-Tolaki",
"poz-cet": "Melayu-Polinesia Tengah-Timur",
"poz-clb": "Celebik",
"poz-cln": "Kaledonia Baharu",
"poz-cma": "Maluku Tengah",
"poz-hce": "Halmahera-Cenderawasih",
"poz-kal": "Kaili-Pamona",
"poz-lgx": "Lampungik",
"poz-mcm": "Melayu-Chamik",
"poz-mic": "Mikronesia",
"poz-mly": "Melayik",
"poz-msa": "Melayu-Sumbawa",
"poz-mun": "Muna-Buton",
"poz-nws": "Sumatera Barat Laut",
"poz-occ": "Oceania Tengah-Timur",
"poz-oce": "Oceania",
"poz-ocs": "Oceania Selatan",
"poz-ocw": "Oceania Barat",
"poz-pcc": "Pasifik Tengah",
"poz-pep": "Polinesia Timur",
"poz-pnp": "Polinesia Nuklear",
"poz-pol": "Polinesia",
"poz-san": "Sabahan",
"poz-sbj": "Sama-Bajaw",
"poz-slb": "Saluan-Banggai",
"poz-sls": "Solomon Tenggara",
"poz-ssw": "Sulawesi Selatan",
"poz-stm": "St. Matthias",
"poz-swa": "Sarawak Utara",
"poz-tem": "Temotu",
"poz-tim": "Timorik",
"poz-ton": "Tongik",
"poz-tot": "Tomini-Tolitoli",
"poz-vnc": "Vanuatu Tengah",
"poz-vnn": "Vanuatu Utara",
"poz-vns": "Vanuatu Selatan",
"poz-wot": "Wotu-Wolio",
"pqe": "Melayu-Polinesia Timur",
"qfa-adc": "Andaman Besar Tengah",
"qfa-adm": "Andaman Besar",
"qfa-adn": "Andaman Besar Utara",
"qfa-ads": "Andaman Besar Selatan",
"qfa-ain": "Ainuik",
"qfa-bej": "Be-Jizhao",
"qfa-bet": "Be-Tai",
"qfa-buy": "Buyang",
"qfa-cka": "Chukotko-Kamchatkan",
"qfa-ckn": "Chukotkan",
"qfa-cnt": "kontak",
"qfa-cre": "kreol",
"qfa-dgn": "Dogon",
"qfa-dis": "pertalian yang dipertikaikan",
"qfa-dny": "Dene-Yeniseian",
"qfa-hur": "Hurro-Urartian",
"qfa-iso": "pencilan",
"qfa-kad": "Kadu",
"qfa-kms": "Kam-Sui",
"qfa-kor": "Koreanik",
"qfa-kra": "Kra",
"qfa-lic": "Hlai",
"qfa-mch": "Makro-Chibchan",
"qfa-mix": "bercampur",
"qfa-not": "bukan satu keluarga",
"qfa-onb": "Be",
"qfa-ong": "Ongan",
"qfa-pid": "pidgin",
"qfa-sub": "substrat",
"qfa-tak": "Kra-Dai",
"qfa-tyn": "Tyrsenian",
"qfa-unc": "tidak dapat dikelaskan",
"qfa-xgs": "Serbi-Mongolik",
"qfa-xgx": "Para-Mongolik",
"qfa-yen": "Yeniseian",
"qfa-yke": "Ketik",
"qfa-yko": "Kottik",
"qfa-ypm": "Pumpokolik",
"qfa-yrn": "Arinik",
"qfa-yuk": "Yukaghir",
"qwe": "Quechuan",
"raj": "Rajasthani",
"roa": "Romance",
"roa-asl": "Asturleonese",
"roa-cas": "Castilian",
"roa-dal": "Romance Dalmatia",
"roa-eas": "Romance Timur",
"roa-emr": "Emilian-Romagnol",
"roa-gap": "Galicia-Portugis",
"roa-gar": "Gallo-Romance",
"roa-git": "Gallo-Italik",
"roa-grh": "Gallo-Rhaetian",
"roa-ibe": "Ibero-Romance",
"roa-itd": "Italo-Dalmatia",
"roa-itr": "Italo-Romance",
"roa-iwr": "Romance Italo-Barat",
"roa-nar": "Navarro-Aragonese",
"roa-ocr": "Occitano-Romance",
"roa-oil": "Oïl",
"roa-rhe": "Rhaeto-Romance",
"roa-sou": "Romance Selatan",
"roa-wes": "Romance Barat",
"sai-ara": "Araucanian",
"sai-aym": "Aymaran",
"sai-bar": "Barbacoan",
"sai-bor": "Boran",
"sai-cah": "Cahuapanan",
"sai-car": "Cariban",
"sai-cer": "Cerrado",
"sai-chc": "Chocoan",
"sai-cho": "Chonan",
"sai-cje": "Jê Tengah",
"sai-cpc": "Chapacuran",
"sai-crn": "Charruan",
"sai-ctc": "Catacaoan",
"sai-guc": "Guaicuruan",
"sai-guh": "Guahiban",
"sai-gui": "Guianan",
"sai-har": "Harákmbut",
"sai-hkt": "Harákmbut-Katukinan",
"sai-hrp": "Huarpean",
"sai-jee": "Jê",
"sai-jir": "Jirajaran",
"sai-jiv": "Jivaroan",
"sai-ktk": "Katukinan",
"sai-kui": "Kuikuroan",
"sai-map": "Mapoyan",
"sai-mas": "Mascoian",
"sai-mgc": "Mataco-Guaicuru",
"sai-mje": "Makro-Jê",
"sai-mtc": "Matacoan",
"sai-mur": "Muran",
"sai-nad": "Nadahup",
"sai-nje": "Jê Utara",
"sai-nmk": "Nambikwaran",
"sai-otm": "Otomacoan",
"sai-pan": "Panoan",
"sai-pat": "Pano-Tacanan",
"sai-pek": "Pekodian",
"sai-pem": "Pemongan",
"sai-pey": "Peba-Yaguan",
"sai-prk": "Parukotoan",
"sai-sje": "Jê Selatan",
"sai-tac": "Tacanan",
"sai-tar": "Taranoan",
"sai-tin": "Tiniguan",
"sai-tuc": "Tucanoan",
"sai-tyu": "Ticuna-Yuri",
"sai-ucp": "Uru-Chipaya",
"sai-ven": "Cariban Venezuela",
"sai-wic": "Wichí",
"sai-wit": "Witotoan",
"sai-ynm": "Yanomami",
"sai-yuk": "Yukpan",
"sai-zam": "Zamucoan",
"sai-zap": "Zaparoan",
"sal": "Salish",
"sdv": "Sudanik Timur",
"sdv-bri": "Bari",
"sdv-daj": "Daju",
"sdv-dnu": "Dinka-Nuer",
"sdv-eje": "Jebel Timur",
"sdv-kln": "Kalenjin",
"sdv-lma": "Lotuko-Maa",
"sdv-lon": "Luo Utara",
"sdv-los": "Luo Selatan",
"sdv-luo": "Luo",
"sdv-nes": "Sudanik Timur Bahagian Utara",
"sdv-nie": "Nilotik Timur",
"sdv-nil": "Nilotik",
"sdv-nis": "Nilotik Selatan",
"sdv-niw": "Nilotik Barat",
"sdv-nma": "Nandi-Markweta",
"sdv-nyi": "Nyima",
"sdv-tmn": "Taman",
"sdv-ttu": "Teso-Turkana",
"sel": "Selkup",
"sem": "Semitik",
"sem-ara": "Aramia",
"sem-arb": "Arab",
"sem-are": "Aramia Timur",
"sem-arw": "Aramia Barat",
"sem-ase": "Aramia Tenggara",
"sem-can": "Kanaan",
"sem-cen": "Semitik Tengah",
"sem-cna": "Neo-Aramia Tengah",
"sem-eas": "Semitik Timur",
"sem-eth": "Semitik Habsyah",
"sem-nna": "Neo-Aramia Timur Laut",
"sem-nwe": "Semitik Barat Laut",
"sem-osa": "Arab Selatan Kuno",
"sem-sar": "Arab Selatan Moden",
"sem-wes": "Semitik Barat",
"sgn": "bahasa isyarat",
"sgn-asl": "Bahasa Isyarat Amerika",
"sgn-fsl": "Bahasa Isyarat Perancis",
"sgn-gsl": "Bahasa Isyarat Jerman",
"sgn-jsl": "Bahasa Isyarat Jepun",
"sio": "Siouan",
"sio-dhe": "Dhegihan",
"sio-dkt": "Dakotan",
"sio-mor": "Siouan Sungai Missouri",
"sio-msv": "Siouan Lembah Mississippi",
"sio-ohv": "Siouan Lembah Ohio",
"sit": "Sino-Tibet",
"sit-aao": "Naga Tengah",
"sit-alm": "Almora",
"sit-bai": "Bai",
"sit-bdi": "Bodish",
"sit-cln": "Cai-Long",
"sit-dhi": "Dhimalish",
"sit-ebo": "Bodish Timur",
"sit-egy": "rGyalrongik Timur",
"sit-ers": "Ersuik",
"sit-gma": "Magarik Raya",
"sit-gsi": "Siangik Raya",
"sit-hrs": "Hrusish",
"sit-jnp": "Jingphoik",
"sit-jpl": "Kachin-Luik",
"sit-kch": "Konyak-Chang",
"sit-kha": "Kham",
"sit-khb": "Kho-Bwa",
"sit-khc": "Chug-Lish",
"sit-khm": "Mey-Sartang",
"sit-khw": "Kho-Bwa Barat",
"sit-kic": "Kiranti Tengah",
"sit-kie": "Kiranti Timur",
"sit-kin": "Kinnaurik",
"sit-kir": "Kiranti",
"sit-kiw": "Kiranti Barat",
"sit-kon": "Naga Utara",
"sit-kyk": "Kyirong-Kagate",
"sit-lab": "Ladakhi-Balti",
"sit-las": "Lahuli-Spiti",
"sit-luu": "Luish",
"sit-mar": "Maringik",
"sit-mba": "Makro-Bai",
"sit-mdz": "Midzu",
"sit-mnz": "Mondzish",
"sit-mru": "Mruik",
"sit-nas": "Naish",
"sit-nax": "Naik",
"sit-nba": "Bai Utara",
"sit-new": "Newarik",
"sit-nng": "Nungish",
"sit-qia": "Qiangik",
"sit-rgy": "Rgyalrongik",
"sit-sba": "Sino-Bai",
"sit-tam": "Tamangik",
"sit-tan": "Tani",
"sit-tib": "Tibetik",
"sit-tja": "Tujia",
"sit-tma": "Tangkhul-Maring",
"sit-tng": "Tangkhulik",
"sit-tno": "Tangsa-Nocte",
"sit-tsk": "Tshangla",
"sit-wgy": "rGyalrongik Barat",
"sit-whm": "Himalaya Barat",
"sit-zem": "Zeme",
"sla": "Slav",
"smi": "Sami",
"son": "Songhay",
"sqj": "Albania",
"ssa": "Nilo-Sahara",
"ssa-fur": "Fur",
"ssa-klk": "Kuliak",
"ssa-kom": "Koman",
"ssa-sah": "Sahara",
"syd": "Samoyed",
"syd-ene": "Enets",
"tai": "Tai",
"tai-cen": "Tai Tengah",
"tai-cho": "Tai Chongzuo",
"tai-nor": "Tai Utara",
"tai-sap": "Tai Sapa-Barat Daya",
"tai-swe": "Tai Barat Daya",
"tai-tay": "Tày",
"tai-wen": "Tai Wenma-Barat Daya",
"tbq": "Tibeto-Burma",
"tbq-anp": "Angami-Pochuri",
"tbq-axi": "Axioid",
"tbq-bdg": "Bodo-Garo",
"tbq-bis": "Bisoid",
"tbq-bka": "Bi-Ka",
"tbq-bkj": "Sal",
"tbq-brm": "Burmik",
"tbq-buq": "Burmo-Qiangik",
"tbq-drp": "Phula Hilir Sungai",
"tbq-han": "Hanoid",
"tbq-hph": "Phula Tanah Tinggi",
"tbq-jin": "Jino",
"tbq-kuk": "Kuki-Chin",
"tbq-kzh": "Kazhuoish",
"tbq-lal": "Lalo",
"tbq-lho": "Lahoish",
"tbq-llo": "Lipo-Lolopo",
"tbq-lob": "Lolo-Burma",
"tbq-lol": "Loloik",
"tbq-lso": "Lisoish",
"tbq-lwo": "Lawoish",
"tbq-muj": "Muji",
"tbq-nas": "Nasoid",
"tbq-nis": "Nisu",
"tbq-nlo": "Loloik Utara",
"tbq-nso": "Nisoish",
"tbq-nus": "Nusoish",
"tbq-phw": "Phowa",
"tbq-rph": "Phula Sungai",
"tbq-sel": "Loloik Tenggara",
"tbq-sil": "Siloid",
"tbq-slo": "Loloik Selatan",
"tbq-tal": "Taloid",
"tbq-urp": "Phula Hulu Sungai",
"trk": "Turkik",
"trk-cmn": "Turkik Sepunya",
"trk-kar": "Karluk",
"trk-kbu": "Kipchak-Bulgar",
"trk-kcu": "Kipchak-Cuman",
"trk-kip": "Kipchak",
"trk-kkp": "Kyrgyz-Kipchak",
"trk-kno": "Kipchak-Nogai",
"trk-nsb": "Turkik Siberia Utara",
"trk-ogr": "Oghur",
"trk-ogz": "Oghuz",
"trk-sib": "Turkik Siberia",
"trk-ssb": "Turkik Siberia Selatan",
"tup": "Tupi",
"tup-gua": "Tupi-Guarani",
"tuw": "Tungusik",
"tuw-ewe": "Ewenik",
"tuw-jrc": "Jurchenik",
"tuw-nan": "Nanaik",
"tuw-udg": "Udegheik",
"urj": "Uralik",
"urj-fin": "Finnik",
"urj-mdv": "Mordvinik",
"urj-prm": "Permik",
"urj-ugr": "Ugrik",
"wak": "Wakashan",
"wen": "Sorbia",
"xgn": "Mongolik",
"xgn-cen": "Mongolik Tengah",
"xgn-shr": "Shirongolik",
"xgn-sou": "Mongolik Selatan",
"xme": "Media",
"xme-ttc": "Tatik",
"xnd": "Na-Dene",
"xsc": "Scythia",
"xsc-sak": "Saka",
"xsc-sar": "Sarmatia",
"xsc-skw": "Saka-Wakhi",
"yok": "Yokuts",
"ypk": "Yupik",
"yrk": "Nenets",
"zhx": "Sinitik",
"zhx-com": "Min Pantai",
"zhx-inm": "Min Pedalaman",
"zhx-man": "Mandarinik",
"zhx-min": "Min",
"zhx-nan": "Min Selatan",
"zhx-pin": "Pinghua",
"zhx-yue": "Yue",
"zle": "Slav Timur",
"zls": "Slav Selatan",
"zlw": "Slav Barat",
"zlw-lch": "Lechitik",
"zlw-pom": "Pomerania",
"znd": "Zande"
}
2jatiau20n5wdhatb3ulouct52isouc
Modul:etymology languages/canonical names.json
828
76142
373528
280838
2026-09-11T03:05:17Z
SNN95
2113
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373528
json
application/json
{
"Abhiri": "pra-abh",
"Abron": "abr",
"Achterhooks": "act",
"Afridi": "ps-afr",
"Ainu Hokkaido": "ain-hok",
"Ainu Kuril": "ain-kur",
"Ainu Sakhalin": "ain-sak",
"Akan Fante": "fat",
"Akan Twi": "tw",
"Akkadia Kuno": "akk-old",
"Albania Arbëresh": "aae",
"Albania Arvanitika": "aat",
"Albania Gheg": "aln",
"Albania Tosk": "als",
"Anbarani": "tly-anb",
"Anglo-Norman": "xno",
"Apabhramsa Gurjara": "inc-agu",
"Apabhramsa Kasmiri": "inc-aka",
"Apabhramsa Maharastri": "inc-ama",
"Apabhramsa Sauraseni": "inc-asa",
"Apabhramsa Takka": "inc-ata",
"Apabhramsa Vracada": "inc-avr",
"Aquitanian": "xaq",
"Arab Khuzestan": "acm-khu",
"Arab Levant Utara Aleppo": "apc-ale",
"Arab Levant Utara Damsyik": "apc-dam",
"Arab Levant Utara Lubnan": "apc-leb",
"Arab Levant Utara Lubnan Selatan": "apc-sle",
"Arab Levant Utara Lubnan Utara": "apc-nle",
"Arab Levant Utara Syria": "apc-syr",
"Arab-Yahudi": "jrb",
"Aram Babilonia Yahudi": "tmr",
"Aram Biblikal": "arc-bib",
"Aram Empayar": "arc-imp",
"Aram Hatra": "arc-hat",
"Aram Kuno": "arc-old",
"Aram Nabatea": "arc-nab",
"Aram Palestin Kristian": "arc-cpa",
"Aram Palestin Yahudi": "jpa",
"Aram Palmyra": "arc-pal",
"Aram Sastera Yahudi": "arc-jla",
"Arghu": "klj-arg",
"Armenia Barat": "hyw",
"Armenia Timur": "hye",
"Asalemi": "tly-asa",
"Assam Kamrupi Barpetia": "as-bkm",
"Assam Kamrupi Nalbaria": "as-nkm",
"Assam Kamrupi Palasbaria": "as-pkm",
"Asyur Baharu": "akk-nas",
"Asyur Kuno": "akk-oas",
"Asyur Pertengahan": "akk-mas",
"Avahattha": "inc-aav",
"Avanti": "pra-ava",
"Avestan Kuno": "ae-old",
"Avestan Muda": "ae-yng",
"Azari Kuno": "xme-azr",
"Azerbaijani Klasik": "az-cls",
"Babilonia Akhir": "akk-lbb",
"Babilonia Baharu": "akk-nbb",
"Babilonia Kuno": "akk-obb",
"Babilonia Pertengahan": "akk-mbb",
"Babilonia Piawai": "akk-stb",
"Bahliki": "pra-bah",
"Bajui": "sgh-baj",
"Balochi Barat": "bgn",
"Balochi Selatan": "bcc",
"Balochi Timur": "bgp",
"Baltik Dnieper": "bat-dni",
"Bandari": "bsg-ban",
"Bangash": "ps-bng",
"Bannu": "ps-ban",
"Bantu Umum": "bnt-cmn",
"Bartangi": "sgh-bar",
"Bartangi-Oroshori": "sgh-bro",
"Belanda Belgium": "nl-BE",
"Belarus Pertengahan": "zle-mbe",
"Bengali Vaṅga Dhakaiya": "bn-dvn",
"Bengali Vaṅga Noakhailla": "bn-nvn",
"Besemah": "pse-bsm",
"Betawi Kota": "bew-kot",
"Bhaca": "xh-bha",
"Borana": "gax",
"Braj Kuno": "bra-old",
"Brythonic Akhir": "bry-lat",
"Brythonic Awal": "bry-ear",
"Bulgar Danube": "xbo-dan",
"Bulgar Volga": "xbo-vol",
"Bulgaria Pertengahan": "cu-bgm",
"Burenjani": "fay-bur",
"Bushehri": "fay-bsh",
"Camorta": "ncb-cam",
"Campidanese": "sc-sro",
"Candali": "pra-can",
"Capenate": "xfa-cap",
"Chuvash Anatri": "cv-ana",
"Chuvash Kuno": "cv-old",
"Chuvash Pertengahan": "cv-mid",
"Chuvash Viryal": "cv-vir",
"Ci": "lzh-cii",
"Cina Danzhou": "zhx-dan",
"Cina Klasik Korea": "lzh-KO",
"Cina Klasik Vietnam": "lzh-VI",
"Cina Kuno Akhir": "och-lat",
"Cina Kuno Awal": "och-ear",
"Cina Pertengahan Akhir": "ltc-lat",
"Cina Pertengahan Awal": "ltc-ear",
"Cina Pra-Klasik": "lzh-pre",
"Cina Sastera": "lzh-lit",
"Cuman": "qwm-cum",
"Czech Moden Awal": "cs-ear",
"Daksinatya": "pra-dak",
"Danesfani": "tks-dan",
"Dari": "prs",
"Dashtaki": "fay-dsh",
"Davani": "fay-dav",
"Dhivehi Addu": "dv-add",
"Dhivehi Huvadhu": "dv-huv",
"Dhivehi Kuno": "dv-old",
"Dhivehi Mulaku": "dv-mul",
"Dialek Qibti G": "cop-ggg",
"Dialek Qibti J": "cop-jjj",
"Dialek Qibti K": "cop-kkk",
"Dialek Qibti P": "cop-ppp",
"Dramili": "pra-dra",
"Drèents": "drt",
"Ebrahimabadi": "tks-ebr",
"Elamite Achaemenid": "elx-ach",
"Elamite Kuno": "elx-old",
"Elamite Neo": "elx-neo",
"Elamite Pertengahan": "elx-mid",
"Emamzada Esmaili": "fay-eze",
"Esfarvarini": "tks-esf",
"Franco-Provençal Kuno": "frp-old",
"Frankish": "frk",
"Frisia Utara Amrum": "frr-amr",
"Frisia Utara Föhr": "frr-foh",
"Frisia Utara Föhr-Amrum": "frr-fam",
"Frisia Utara Goesharde": "frr-goe",
"Frisia Utara Halligen": "frr-hal",
"Frisia Utara Heligoland": "frr-hel",
"Frisia Utara Karrharde": "frr-kar",
"Frisia Utara Kepulauan": "frr-ins",
"Frisia Utara Mooring": "frr-moo",
"Frisia Utara Sylt": "frr-syl",
"Frisia Utara Tanah Besar": "frr-mai",
"Frisia Utara Wiedingharde": "frr-wie",
"Friuli Kuno": "fur-old",
"Fulfulde Adamawa": "fub",
"Fulfulde Bagirmi": "fui",
"Fulfulde Borgu": "fue",
"Fulfulde Maasina": "ffm",
"Fulfulde Niger Barat": "fuh",
"Fulfulde Niger Tengah-Timur": "fuq",
"Fulfulde Nigeria": "fuv",
"Fumani": "tly-fum",
"Gaul Cisalpine": "xcg",
"Gaul Transalpine": "xtg",
"Gavkoshaki": "fay-gav",
"Geordie": "en-geo",
"Georgia Pertengahan": "ka-mid",
"Ghat": "thv-ght",
"Ghilzay Tengah": "ps-cgi",
"Golyad": "bat-gol",
"Goral": "pl-gor",
"Grunnegs": "gos",
"Gujarati Lisan ud-Dawat": "gu-lda",
"Hakka Dabu": "hak-dab",
"Hakka Hailu": "hak-hai",
"Hakka Hong Kong": "hak-HK",
"Hakka Huiyang": "hak-hui",
"Hakka Huiyang Malaysia": "hak-hui-MY",
"Hakka Meixian": "hak-mei",
"Hakka Moden Awal": "hak-eam",
"Hakka Sixian": "hak-six",
"Hakka Taiwan": "hak-TW",
"Hakka Zhao'an": "hak-zha",
"Hangzhounese": "wuu-han",
"Hanyu Pinyin": "cmn-pinyin",
"Havigannada": "kn-hav",
"Hazaragi": "haz",
"Hindi Bombay": "hi-mum",
"Hindi Pertengahan": "hi-mid",
"Hittite Kuno": "oht",
"Hittite Neo": "nei",
"Hittite Pertengahan": "htx",
"Hokkien Anxi": "nan-anx",
"Hokkien Changtai": "nan-cha",
"Hokkien Filipina": "nan-hbl-PH",
"Hokkien Hui'an": "nan-hui",
"Hokkien Jinjiang": "nan-jin",
"Hokkien Kinmen": "nan-kin",
"Hokkien Malaysia Selatan": "nan-spm",
"Hokkien Medan": "nan-med",
"Hokkien Pulau Pinang": "nan-pen",
"Hokkien Quanzhou": "nan-qua",
"Hokkien Singapura": "nan-hbl-SG",
"Hokkien Taiwan": "nan-hbl-TW",
"Hokkien Tong'an": "nan-ton",
"Hokkien Xiamen": "nan-xia",
"Hokkien Yongchun": "nan-yon",
"Hokkien Zhangping": "nan-zhp",
"Hokkien Zhangzhou": "nan-zha",
"Hokkien Zhao'an": "nan-zho",
"Hormozi": "bsg-hor",
"Ibrani Biblikal": "hbo",
"Ibrani Israel": "he-IL",
"Ibrani Mishnaik": "he-mis",
"Ibrani Pertengahan": "he-med",
"Inggeris Aborigin Australia": "en-aae",
"Inggeris Afrika Selatan": "en-ZA",
"Inggeris Amerika": "en-US",
"Inggeris Amerika Utara": "en-NNN",
"Inggeris Australia": "en-AU",
"Inggeris British": "en-GB",
"Inggeris California": "en-US-CA",
"Inggeris Hong Kong": "en-HK",
"Inggeris India": "en-IN",
"Inggeris Ireland": "en-IE",
"Inggeris Ireland Utara": "en-GB-NIR",
"Inggeris Kanada": "en-CA",
"Inggeris Kuno Anglia": "ang-ang",
"Inggeris Kuno Kentish": "ang-ken",
"Inggeris Kuno Mercia": "ang-mer",
"Inggeris Kuno Northumbria": "ang-nor",
"Inggeris Kuno Saxon Barat": "ang-wsx",
"Inggeris Manx": "en-IM",
"Inggeris Moden Awal": "en-ear",
"Inggeris New Zealand": "en-NZ",
"Inggeris Pertengahan Kentish": "enm-ken",
"Inggeris Pertengahan Midlands Barat": "enm-wmi",
"Inggeris Pertengahan Midlands Timur": "enm-emi",
"Inggeris Pertengahan Selatan": "enm-sou",
"Inggeris Pertengahan Utara": "enm-nor",
"Inggeris Scotland": "en-GB-SCT",
"Inggeris Ulster": "en-uls",
"Inggeris Wales": "en-GB-WLS",
"Inupiatun Alaska Barat Laut": "esk",
"Inupiatun Alaska Utara": "esi",
"Jadrani": "ps-jad",
"Jepun Klasik": "ja-cla",
"Jepun Kuno Timur": "ojp-eas",
"Jepun Moden Awal": "ja-ear",
"Jepun Pertengahan": "ja-mid",
"Jepun Pertengahan Akhir": "ja-mid-lat",
"Jepun Pertengahan Awal": "ja-mid-ear",
"Jerman Alemannic Alsace": "gsw-FR-als",
"Jerman Alemannic Rendah": "gsw-low",
"Jerman Alemannic Tertinggi": "gsw-hst",
"Jerman Alemannic Tinggi": "gsw-hig",
"Jerman Austria": "de-AT",
"Jerman Baltik": "de-bal",
"Jerman Jerman Rendah": "nds-de",
"Jerman Jerman Tengah Timur Silesia": "sli",
"Jerman Palatine": "pfl",
"Jerman Rendah Frisia Timur": "frs",
"Jerman Saxon Atas": "sxu",
"Jerman Switzerland": "de-CH",
"Jerman Tinggi Baharu Awal": "de-ear",
"Jerman Vienna": "de-AT-vie",
"Jerman Walser": "wae",
"Jirofti": "rdb-jir",
"Kabuverdianu ALUPEC": "kea-alu",
"Kabuverdianu Barlavento": "kea-bar",
"Kabuverdianu Boa Vista": "kea-bvi",
"Kabuverdianu Brava": "kea-bra",
"Kabuverdianu Fogo": "kea-fog",
"Kabuverdianu Maio": "kea-mai",
"Kabuverdianu Sal": "kea-sal",
"Kabuverdianu Santiago": "kea-san",
"Kabuverdianu Santo Antão": "kea-saa",
"Kabuverdianu Sotavento": "kea-sot",
"Kabuverdianu São Nicolau": "kea-sni",
"Kabuverdianu São Vicente": "kea-svi",
"Kahnuji": "rdb-kah",
"Kakari": "ps-kak",
"Kaliarda": "el-kal",
"Kamviri": "xvi",
"Kandahari": "ps-kan",
"Kaniguram": "oru-kan",
"Kankanaey Utara": "xnn",
"Kantonis Guangzhou": "yue-gua",
"Kantonis Hong Kong": "yue-HK",
"Kantonis Klasik": "lzh-yue",
"Kantonis Sastera": "yue-lit",
"Kantonis lisan bertulis": "yue-wvc",
"Karelia Selatan": "krl-sou",
"Karelia Utara": "krl-nor",
"Karganrudi": "tly-kar",
"Katchal": "ncb-kat",
"Katharevousa": "el-kth",
"Kathiyawadi": "gu-kat",
"Kativiri": "bsh-kat",
"Kazeruni Kuno": "fay-kzo",
"Khamba": "kbg",
"Khargi": "fay-kar",
"Khatak": "ps-xat",
"Khiaraji": "tks-xia",
"Khmer Kuno Angkor": "okz-ang",
"Khmer Kuno Pra-Angkor": "okz-pre",
"Khollari": "fay-kho",
"Khortha Parnadiya": "inc-khr-par",
"Khotanese Akhir": "kho-lat",
"Khotanese Kuno": "kho-old",
"Khoznini": "tks-xoz",
"Khufi": "sgh-xuf",
"Khughni": "sgh-xug",
"Khughni-Bajui": "sgh-xgb",
"Kinyarwanda": "rw-kin",
"Kipchak-Armenia": "qwm-arm",
"Kipchak-Mamluk": "qwm-mam",
"Kirghiz Kuno": "otk-kir",
"Kirundi": "rw-run",
"Kondazi": "fay-kon",
"Konkani Kuno": "kok-old",
"Konkani Pertengahan": "kok-mid",
"Korea Chungcheong": "ko-chu",
"Korea Gangwon": "ko-gan",
"Korea Gyeonggi": "ko-gyg",
"Korea Gyeongsang": "ko-gys",
"Korea Hamgyong": "ko-ham",
"Korea Hwanghae": "ko-hwa",
"Korea Jeolla": "ko-jeo",
"Korea Kuno Akhir": "oko-lat",
"Korea Pertengahan Awal": "okm-ear",
"Korea Pyongan": "ko-pyo",
"Korea Tengah": "ko-cen",
"Korea Yukjin": "ko-yuk",
"Kosena": "kze",
"Kreol Perancis Saint-Domingue": "ht-sdm",
"Kromanti": "alv-kro",
"Kundagannada": "kn-kun",
"Kyrgyz Fuyu": "kjh-fyu",
"Kölsch": "ksh",
"Ladin Ampezan": "lld-amp",
"Ladin Badiot": "lld-bad",
"Ladin Cadorino": "lld-cad",
"Ladin Fascian": "lld-fas",
"Ladin Fodom": "lld-fod",
"Ladin Fornes": "lld-for",
"Ladin Gherdëina": "lld-ghe",
"Ladin Nones": "lld-non",
"Lanuvian": "itc-lan",
"Latin Abad Pertengahan Awal": "la-eme",
"Latin Akhir": "la-lat",
"Latin Arkais": "itc-ala",
"Latin Baharu": "la-new",
"Latin Gereja": "la-ecc",
"Latin Klasik": "la-cla",
"Latin Kontemporari": "la-con",
"Latin Kuno": "itc-ola",
"Latin Pembaharuan": "la-ren",
"Latin Pertengahan": "la-med",
"Latin Vulgar": "la-vul",
"Locrian Opuntian": "grc-opl",
"Locrian Ozolian": "grc-ozl",
"Logar": "oru-log",
"Logudorese": "sc-src",
"Lombardik": "lng",
"Lucania": "osc-luc",
"Lunfardo": "es-lun",
"Lushootseed Selatan": "slh",
"Lushootseed Utara": "lut-nor",
"Língua Geral Amazônica": "tpw-lga",
"Língua Geral Paulista": "tpw-lgp",
"Mahsudi": "ps-mah",
"Mandaran Dataran Tengah": "cmn-cep",
"Mandarin Awal": "cmn-ear",
"Mandarin Barat Daya": "cmn-sow",
"Mandarin Beijing": "cmn-bei",
"Mandarin Beijingik": "cmn-bec",
"Mandarin Filipina": "cmn-PH",
"Mandarin Guanzhong": "cmn-gua",
"Mandarin Guilin": "cmn-gui",
"Mandarin Jianghuai": "cmn-jhu",
"Mandarin Klasik": "lzh-cmn",
"Mandarin Lanyin": "cmn-lan",
"Mandarin Malaysia": "cmn-MY",
"Mandarin Nanjing": "cmn-nan",
"Mandarin Singapura": "cmn-SG",
"Mandarin Taiwan": "cmn-TW",
"Mandarin Taiwan Klasik": "lzh-cmn-TW",
"Mandarin Tianjin": "cmn-tia",
"Mandarin Timur Laut": "cmn-noe",
"Mandarin Wuhan": "cmn-wuh",
"Mandarin Xining": "cmn-xin",
"Mandarin Yangzhou": "cmn-yan",
"Mandarin lisan bertulis": "cmn-wvc",
"Mansi Barat": "mns-wes",
"Mansi Timur": "mns-eas",
"Masali": "tly-msa",
"Masarami": "fay-mas",
"Masulei": "tly-msu",
"Melayu Klasik": "ms-cla",
"Melayu Kuno": "ms-old",
"Mesir Akhir": "egy-lat",
"Mesir Kuno": "egy-old",
"Mesir Pertengahan": "egy-mid",
"Mesir Pertengahan Baharu": "egy-nmi",
"Min Houlu": "nan-hou",
"Min Qianlu": "nan-qia",
"Min Zhongshan": "zhx-zho",
"Minabi": "bsg-min",
"Mitanni": "inc-mit",
"Mohawk Kuno": "iro-omo",
"Moldova": "ro-MD",
"Mongol Pertengahan Akhir": "xng-lat",
"Mongol Pertengahan Awal": "xng-ear",
"Mongolia Chakhar": "mn-cha",
"Mongolia Khalkha": "mn-kha",
"Mongolia Khorchin": "mn-khr",
"Mongolia Ordos": "mn-ord",
"Mumviri": "bsh-mum",
"Nancowry": "ncb-nan",
"Ningbonese": "wuu-nin",
"Norman Guernsey": "nrf-grn",
"Norman Jersey": "nrf-jer",
"Norse Barat Kuno": "non-own",
"Norse Greenland": "non-grn",
"Norse Timur Kuno": "non-oen",
"Nuorese": "sc-nuo",
"Odri": "pra-odr",
"Onondaga Kuno": "iro-oon",
"Ontenu": "ont",
"Orma": "orc",
"Oromo Harar": "hae",
"Oroshori": "sgh-oro",
"Ossetia Digor": "os-dig",
"Ossetia Iron": "os-iro",
"Ossetic Kuno": "oos",
"Ossetic Kuno Akhir": "oos-lat",
"Ossetic Kuno Awal": "oos-ear",
"Paleo-Balkan": "qsb-bal",
"Paleo-Hispanic": "qsb-ibe",
"Palladius": "cmn-palladius",
"Papuni": "fay-pap",
"Parsi Baharu Awal": "fa-ear",
"Parsi Iran": "fa-ira",
"Parsi Klasik": "fa-cls",
"Parsi Kuno Akhir": "peo-lat",
"Parsi Kuno Awal": "peo-ear",
"Parsi Pertengahan Akhir": "pal-lat",
"Parsi Pertengahan Awal": "pal-ear",
"Parsi Pertengahan Manichaean": "xmn",
"Pashto Barat Daya": "ps-swe",
"Pashto Barat Laut": "ps-nwe",
"Pashto Tenggara": "ps-sea",
"Pashto Timur Laut": "ps-nea",
"Perancis Acadia": "fr-aca",
"Perancis Cajun": "frc",
"Perancis Kanada": "fr-CA",
"Perancis Kuno Picard": "fro-pic",
"Perancis Louisiana": "fr-lou",
"Perancis Missouri": "fr-mis",
"Perancis Switzerland": "fr-CH",
"Perancis Utara Kuno": "fro-nor",
"Peshawari": "ps-pes",
"Piawai Korea Selatan": "ko-KR",
"Piawai Korea Utara": "ko-KP",
"Pidgin Rusia Kyakhta": "crp-cpr-kya",
"Poland Kecil": "pl-les",
"Poland Masovia": "pl-mas",
"Poland Pertengahan": "zlw-mpl",
"Poland Raya": "pl-gre",
"Polari": "pld",
"Portugis Brazil": "pt-BR",
"Portugis Eropah": "pt-PT",
"Pracya": "pra-pra",
"Praenestine": "itc-pra",
"Prakrit Ardhamagadhi": "pra-ard",
"Prakrit Helu": "pra-hel",
"Prakrit Khasa": "pra-kha",
"Prakrit Magadhi": "pra-mag",
"Prakrit Maharastri": "pra-mah",
"Prakrit Paisaci": "pra-pai",
"Prakrit Sauraseni": "pra-sau",
"Proto-Anglo-Frisia": "gmw-afr-pro",
"Proto-Arinic": "qfa-yrn-pro",
"Proto-Baltik": "bat-pro",
"Proto-Bulgar": "trk-bul-pro",
"Proto-Finno-Permic": "urj-fpr-pro",
"Proto-Finno-Ugric": "fiu-pro",
"Proto-Indo-Arya Baharu": "pra-pro",
"Proto-Indo-Arya Pertengahan": "inc-ash-pro",
"Proto-Jerman Laut Utara": "gmw-nsg-pro",
"Proto-Ketic": "qfa-yke-pro",
"Proto-Kottic": "qfa-yko-pro",
"Proto-Oghur": "trk-ogr-pro",
"Proto-Oghuz": "trk-ogz-pro",
"Proto-Pumpokolic": "qfa-ypm-pro",
"Proto-Romance": "roa-pro",
"Proto-Tibeto-Burman": "tbq-pro",
"Proto-Turkic Sepunya": "trk-cmn-pro",
"Prusia Rendah": "nds-lpr",
"Pskov Kuno": "zle-ops",
"Puisi Cina Tradisional": "lzh-shi",
"Pulaar": "fuc",
"Pular": "fuf",
"Punjabi Barat": "pnb",
"Qashqai": "qxq",
"Qibti Akhmimik": "cop-akh",
"Qibti Bohairik": "cop-boh",
"Qibti Fayyumik": "cop-fay",
"Qibti Hermopolitan": "cop-her",
"Qibti Kuno": "cop-old",
"Qibti Lycopolitan": "cop-lyc",
"Qibti Oxyrhynchite": "cop-oxy",
"Qibti Proto-Lycopolitan": "cop-ply",
"Qibti Sahidik": "cop-sah",
"Romance Afrika": "la-afr",
"Romansh Kuno": "rm-old",
"Romansh Puter": "rm-put",
"Romansh Surmiran": "rm-srm",
"Romansh Sursilvan": "rm-srs",
"Romansh Sutsilvan": "rm-sut",
"Romansh Vallader": "rm-val",
"Roshani": "sgh-ros",
"Roshani-Khufi": "sgh-rsx",
"Rumantsch Grischun": "rm-gri",
"Rumi Pos": "zh-postal",
"Rusia Pertengahan": "zle-mru",
"Sabari": "pra-sab",
"Sagzabadi": "tks-sag",
"Sakari": "pra-sak",
"Sallaands": "sdz",
"Samghani": "fay-sam",
"Samnite": "osc-sam",
"Sanskrit Baharu": "sa-neo",
"Sanskrit Brahman": "sa-bra",
"Sanskrit Epik": "sa-epi",
"Sanskrit Hibrid Buddha": "sa-bhs",
"Sanskrit Klasik": "cls",
"Sanskrit Rigveda": "sa-rig",
"Sanskrit Veda": "vsn",
"Sardinia Kuno": "sc-old",
"Saxon Rendah Belanda": "nds-nl",
"Scots Awal": "enm-esc",
"Scots Kepulauan": "sco-ins",
"Scots Selatan": "sco-sou",
"Scots Ulster": "sco-uls",
"Scots Utara": "sco-nor",
"Sepanyol Amerika Syarikat": "es-US",
"Sepanyol Bolivia": "es-BO",
"Sepanyol Chile": "es-CL",
"Sepanyol Colombia": "es-CO",
"Sepanyol Cuba": "es-CU",
"Sepanyol Filipina": "es-PH",
"Sepanyol Mexico": "es-MX",
"Sepanyol Moden Awal": "es-ear",
"Sepanyol Peru": "es-PE",
"Sepanyol Puerto Rico": "es-PR",
"Sepanyol Rioplatense": "es-AR",
"Sepanyol Venezuela": "es-VE",
"Serbo-Croatia Chakavian": "ckm",
"Serbo-Croatia Kajkavian": "kjv",
"Serbo-Croatia Torlakian": "sh-tor",
"Shandarmani": "tly-san",
"Shanghai": "wuu-sha",
"Sher": "ps-ser",
"Shirazi": "fay-shr",
"Shirazi Kuno": "fay-sho",
"Sinhalese Pertengahan": "si-med",
"Skagit": "ska",
"Slavik Gereja Rusia": "zls-chs-ru",
"Slavik Gereja Ukraine": "zls-chs-uk",
"Snohomish": "sno",
"Sogdian Akhir": "sog-lat",
"Sogdian Awal": "sog-ear",
"Sorkhi": "fay-sor",
"Stellingwarfs": "stl",
"Suevik": "gem-sue",
"Suzhounese": "wuu-suz",
"Sweden Kuno Akhir": "gmq-osw-lat",
"Tagalog Klasik": "tl-cls",
"Tagalog Kuno": "tl-old",
"Taishanese Klasik": "lzh-tai",
"Taishanese lisan bertulis": "zhx-tai-wvc",
"Takestani": "tks-tak",
"Taleshdulabi": "tly-tal",
"Talysh Azerbaijan": "tly-aze",
"Talysh Selatan": "tly-sou",
"Talysh Tengah": "tly-cen",
"Talysh Utara": "tly-nor",
"Tamahaq": "thv",
"Tamasheq": "taq",
"Tamil Pertengahan": "ta-mid",
"Tashelhit Pertengahan": "shi-med",
"Tatar Dobruja": "crh-dbj",
"Tati Barat": "xme-ttc-wes",
"Tati Chali": "tks-cal",
"Tati Selatan": "xme-ttc-sou",
"Tati Tengah": "xme-ttc-cen",
"Tati Timur": "xme-ttc-eas",
"Tati Utara": "xme-ttc-nor",
"Tawellemmet": "ttq",
"Tayert": "thz",
"Thai Kuno": "th-old",
"Thai Kuno Ayutthaya": "th-ayu",
"Thai Kuno Sukhothai": "th-suk",
"Tibetan Amdo": "adx",
"Tibetan Khams": "khg",
"Tongyong Pinyin": "cmn-tongyong",
"Tseku": "tsk",
"Tularudi": "tly-tul",
"Turkic Orkhon": "otk-ork",
"Turkish Cyprus": "tr-CY",
"Tweants": "twd",
"Twi Akuapem": "tw-aku",
"Twi Asante": "tw-asa",
"Ukraine Kanada": "uk-CA",
"Ukraine Pertengahan": "zle-muk",
"Undang-undang Perancis": "xno-law",
"Uzbek Afghanistan": "uz-afg",
"Valencian": "ca-val",
"Veluws": "vel",
"Waata": "ssn",
"Wade–Giles": "cmn-wadegiles",
"Wales Selatan": "cy-sou",
"Wales Utara": "cy-nor",
"Wasa": "wss",
"Waziri": "ps-waz",
"Wendat Kuno": "iro-ohu",
"Wenzhounese": "wuu-wen",
"Westphalia": "wep",
"Wu Shadi": "wuu-chm",
"Wu Utara": "wuu-nor",
"Xiang Baharu": "hsn-new",
"Xiang Hengyang": "hsn-hya",
"Xiang Hengzhou": "hsn-hzh",
"Xiang Kuno": "hsn-old",
"Xiang Loudi": "hsn-lou",
"Yunani Aeolia": "grc-aeo",
"Yunani Arcadia": "grc-arc",
"Yunani Arcadocypriot": "grc-arp",
"Yunani Attica": "grc-att",
"Yunani Boeotia": "grc-boi",
"Yunani Byzantine": "gkm",
"Yunani Crete": "el-crt",
"Yunani Cyprus": "el-cyp",
"Yunani Doric": "grc-dor",
"Yunani Elea": "grc-ela",
"Yunani Epik": "grc-epi",
"Yunani Ionia": "grc-ion",
"Yunani Koine": "grc-koi",
"Yunani Pamphylia": "grc-pam",
"Yunani Paphos": "el-pap",
"Yunani Pra-Purba": "qsb-grc",
"Yunani Purba Crete": "grc-kre",
"Yunani Purba Cyprus": "grc-cyp",
"Yunani Thessalia": "grc-ths",
"Zarphatic": "zrp",
"Zhuang Shangsi": "tai-shz",
"nama taksonomi": "mul-tax",
"substrat BMAC": "qsb-bma"
}
6a4f5odr66i8mu9yoj0fk4u85w8v4w6
Modul:etymology languages/code to canonical name.json
828
76143
373526
280837
2026-09-11T03:05:17Z
SNN95
2113
[[MediaWiki:UpdateLanguageNameAndCode.js|dikemas kini menggunakan gajet bahasa]]
373526
json
application/json
{
"aae": "Albania Arbëresh",
"aat": "Albania Arvanitika",
"abr": "Abron",
"acm-khu": "Arab Khuzestan",
"act": "Achterhooks",
"adx": "Tibetan Amdo",
"ae-old": "Avestan Kuno",
"ae-yng": "Avestan Muda",
"ain-hok": "Ainu Hokkaido",
"ain-kur": "Ainu Kuril",
"ain-sak": "Ainu Sakhalin",
"akk-lbb": "Babilonia Akhir",
"akk-mas": "Asyur Pertengahan",
"akk-mbb": "Babilonia Pertengahan",
"akk-nas": "Asyur Baharu",
"akk-nbb": "Babilonia Baharu",
"akk-oas": "Asyur Kuno",
"akk-obb": "Babilonia Kuno",
"akk-old": "Akkadia Kuno",
"akk-stb": "Babilonia Piawai",
"aln": "Albania Gheg",
"als": "Albania Tosk",
"alv-kro": "Kromanti",
"ang-ang": "Inggeris Kuno Anglia",
"ang-ken": "Inggeris Kuno Kentish",
"ang-mer": "Inggeris Kuno Mercia",
"ang-nor": "Inggeris Kuno Northumbria",
"ang-wsx": "Inggeris Kuno Saxon Barat",
"apc-ale": "Arab Levant Utara Aleppo",
"apc-dam": "Arab Levant Utara Damsyik",
"apc-leb": "Arab Levant Utara Lubnan",
"apc-nle": "Arab Levant Utara Lubnan Utara",
"apc-sle": "Arab Levant Utara Lubnan Selatan",
"apc-syr": "Arab Levant Utara Syria",
"arc-bib": "Aram Biblikal",
"arc-cpa": "Aram Palestin Kristian",
"arc-hat": "Aram Hatra",
"arc-imp": "Aram Empayar",
"arc-jla": "Aram Sastera Yahudi",
"arc-nab": "Aram Nabatea",
"arc-old": "Aram Kuno",
"arc-pal": "Aram Palmyra",
"as-bkm": "Assam Kamrupi Barpetia",
"as-nkm": "Assam Kamrupi Nalbaria",
"as-pkm": "Assam Kamrupi Palasbaria",
"az-cls": "Azerbaijani Klasik",
"bat-dni": "Baltik Dnieper",
"bat-gol": "Golyad",
"bat-pro": "Proto-Baltik",
"bcc": "Balochi Selatan",
"bew-kot": "Betawi Kota",
"bgn": "Balochi Barat",
"bgp": "Balochi Timur",
"bn-dvn": "Bengali Vaṅga Dhakaiya",
"bn-nvn": "Bengali Vaṅga Noakhailla",
"bnt-cmn": "Bantu Umum",
"bra-old": "Braj Kuno",
"bry-ear": "Brythonic Awal",
"bry-lat": "Brythonic Akhir",
"bsg-ban": "Bandari",
"bsg-hor": "Hormozi",
"bsg-min": "Minabi",
"bsh-kat": "Kativiri",
"bsh-mum": "Mumviri",
"ca-val": "Valencian",
"ckm": "Serbo-Croatia Chakavian",
"cls": "Sanskrit Klasik",
"cmn-MY": "Mandarin Malaysia",
"cmn-PH": "Mandarin Filipina",
"cmn-SG": "Mandarin Singapura",
"cmn-TW": "Mandarin Taiwan",
"cmn-bec": "Mandarin Beijingik",
"cmn-bei": "Mandarin Beijing",
"cmn-cep": "Mandaran Dataran Tengah",
"cmn-ear": "Mandarin Awal",
"cmn-gua": "Mandarin Guanzhong",
"cmn-gui": "Mandarin Guilin",
"cmn-jhu": "Mandarin Jianghuai",
"cmn-lan": "Mandarin Lanyin",
"cmn-nan": "Mandarin Nanjing",
"cmn-noe": "Mandarin Timur Laut",
"cmn-palladius": "Palladius",
"cmn-pinyin": "Hanyu Pinyin",
"cmn-sow": "Mandarin Barat Daya",
"cmn-tia": "Mandarin Tianjin",
"cmn-tongyong": "Tongyong Pinyin",
"cmn-wadegiles": "Wade–Giles",
"cmn-wuh": "Mandarin Wuhan",
"cmn-wvc": "Mandarin lisan bertulis",
"cmn-xin": "Mandarin Xining",
"cmn-yan": "Mandarin Yangzhou",
"cop-akh": "Qibti Akhmimik",
"cop-boh": "Qibti Bohairik",
"cop-fay": "Qibti Fayyumik",
"cop-ggg": "Dialek Qibti G",
"cop-her": "Qibti Hermopolitan",
"cop-jjj": "Dialek Qibti J",
"cop-kkk": "Dialek Qibti K",
"cop-lyc": "Qibti Lycopolitan",
"cop-old": "Qibti Kuno",
"cop-oxy": "Qibti Oxyrhynchite",
"cop-ply": "Qibti Proto-Lycopolitan",
"cop-ppp": "Dialek Qibti P",
"cop-sah": "Qibti Sahidik",
"crh-dbj": "Tatar Dobruja",
"crp-cpr-kya": "Pidgin Rusia Kyakhta",
"cs-ear": "Czech Moden Awal",
"cu-bgm": "Bulgaria Pertengahan",
"cv-ana": "Chuvash Anatri",
"cv-mid": "Chuvash Pertengahan",
"cv-old": "Chuvash Kuno",
"cv-vir": "Chuvash Viryal",
"cy-nor": "Wales Utara",
"cy-sou": "Wales Selatan",
"de-AT": "Jerman Austria",
"de-AT-vie": "Jerman Vienna",
"de-CH": "Jerman Switzerland",
"de-bal": "Jerman Baltik",
"de-ear": "Jerman Tinggi Baharu Awal",
"drt": "Drèents",
"dv-add": "Dhivehi Addu",
"dv-huv": "Dhivehi Huvadhu",
"dv-mul": "Dhivehi Mulaku",
"dv-old": "Dhivehi Kuno",
"egy-lat": "Mesir Akhir",
"egy-mid": "Mesir Pertengahan",
"egy-nmi": "Mesir Pertengahan Baharu",
"egy-old": "Mesir Kuno",
"el-crt": "Yunani Crete",
"el-cyp": "Yunani Cyprus",
"el-kal": "Kaliarda",
"el-kth": "Katharevousa",
"el-pap": "Yunani Paphos",
"elx-ach": "Elamite Achaemenid",
"elx-mid": "Elamite Pertengahan",
"elx-neo": "Elamite Neo",
"elx-old": "Elamite Kuno",
"en-AU": "Inggeris Australia",
"en-CA": "Inggeris Kanada",
"en-GB": "Inggeris British",
"en-GB-NIR": "Inggeris Ireland Utara",
"en-GB-SCT": "Inggeris Scotland",
"en-GB-WLS": "Inggeris Wales",
"en-HK": "Inggeris Hong Kong",
"en-IE": "Inggeris Ireland",
"en-IM": "Inggeris Manx",
"en-IN": "Inggeris India",
"en-NNN": "Inggeris Amerika Utara",
"en-NZ": "Inggeris New Zealand",
"en-US": "Inggeris Amerika",
"en-US-CA": "Inggeris California",
"en-ZA": "Inggeris Afrika Selatan",
"en-aae": "Inggeris Aborigin Australia",
"en-ear": "Inggeris Moden Awal",
"en-geo": "Geordie",
"en-uls": "Inggeris Ulster",
"enm-emi": "Inggeris Pertengahan Midlands Timur",
"enm-esc": "Scots Awal",
"enm-ken": "Inggeris Pertengahan Kentish",
"enm-nor": "Inggeris Pertengahan Utara",
"enm-sou": "Inggeris Pertengahan Selatan",
"enm-wmi": "Inggeris Pertengahan Midlands Barat",
"es-AR": "Sepanyol Rioplatense",
"es-BO": "Sepanyol Bolivia",
"es-CL": "Sepanyol Chile",
"es-CO": "Sepanyol Colombia",
"es-CU": "Sepanyol Cuba",
"es-MX": "Sepanyol Mexico",
"es-PE": "Sepanyol Peru",
"es-PH": "Sepanyol Filipina",
"es-PR": "Sepanyol Puerto Rico",
"es-US": "Sepanyol Amerika Syarikat",
"es-VE": "Sepanyol Venezuela",
"es-ear": "Sepanyol Moden Awal",
"es-lun": "Lunfardo",
"esi": "Inupiatun Alaska Utara",
"esk": "Inupiatun Alaska Barat Laut",
"fa-cls": "Parsi Klasik",
"fa-ear": "Parsi Baharu Awal",
"fa-ira": "Parsi Iran",
"fat": "Akan Fante",
"fay-bsh": "Bushehri",
"fay-bur": "Burenjani",
"fay-dav": "Davani",
"fay-dsh": "Dashtaki",
"fay-eze": "Emamzada Esmaili",
"fay-gav": "Gavkoshaki",
"fay-kar": "Khargi",
"fay-kho": "Khollari",
"fay-kon": "Kondazi",
"fay-kzo": "Kazeruni Kuno",
"fay-mas": "Masarami",
"fay-pap": "Papuni",
"fay-sam": "Samghani",
"fay-sho": "Shirazi Kuno",
"fay-shr": "Shirazi",
"fay-sor": "Sorkhi",
"ffm": "Fulfulde Maasina",
"fiu-pro": "Proto-Finno-Ugric",
"fr-CA": "Perancis Kanada",
"fr-CH": "Perancis Switzerland",
"fr-aca": "Perancis Acadia",
"fr-lou": "Perancis Louisiana",
"fr-mis": "Perancis Missouri",
"frc": "Perancis Cajun",
"frk": "Frankish",
"fro-nor": "Perancis Utara Kuno",
"fro-pic": "Perancis Kuno Picard",
"frp-old": "Franco-Provençal Kuno",
"frr-amr": "Frisia Utara Amrum",
"frr-fam": "Frisia Utara Föhr-Amrum",
"frr-foh": "Frisia Utara Föhr",
"frr-goe": "Frisia Utara Goesharde",
"frr-hal": "Frisia Utara Halligen",
"frr-hel": "Frisia Utara Heligoland",
"frr-ins": "Frisia Utara Kepulauan",
"frr-kar": "Frisia Utara Karrharde",
"frr-mai": "Frisia Utara Tanah Besar",
"frr-moo": "Frisia Utara Mooring",
"frr-syl": "Frisia Utara Sylt",
"frr-wie": "Frisia Utara Wiedingharde",
"frs": "Jerman Rendah Frisia Timur",
"fub": "Fulfulde Adamawa",
"fuc": "Pulaar",
"fue": "Fulfulde Borgu",
"fuf": "Pular",
"fuh": "Fulfulde Niger Barat",
"fui": "Fulfulde Bagirmi",
"fuq": "Fulfulde Niger Tengah-Timur",
"fur-old": "Friuli Kuno",
"fuv": "Fulfulde Nigeria",
"gax": "Borana",
"gem-sue": "Suevik",
"gkm": "Yunani Byzantine",
"gmq-osw-lat": "Sweden Kuno Akhir",
"gmw-afr-pro": "Proto-Anglo-Frisia",
"gmw-nsg-pro": "Proto-Jerman Laut Utara",
"gos": "Grunnegs",
"grc-aeo": "Yunani Aeolia",
"grc-arc": "Yunani Arcadia",
"grc-arp": "Yunani Arcadocypriot",
"grc-att": "Yunani Attica",
"grc-boi": "Yunani Boeotia",
"grc-cyp": "Yunani Purba Cyprus",
"grc-dor": "Yunani Doric",
"grc-ela": "Yunani Elea",
"grc-epi": "Yunani Epik",
"grc-ion": "Yunani Ionia",
"grc-koi": "Yunani Koine",
"grc-kre": "Yunani Purba Crete",
"grc-opl": "Locrian Opuntian",
"grc-ozl": "Locrian Ozolian",
"grc-pam": "Yunani Pamphylia",
"grc-ths": "Yunani Thessalia",
"gsw-FR-als": "Jerman Alemannic Alsace",
"gsw-hig": "Jerman Alemannic Tinggi",
"gsw-hst": "Jerman Alemannic Tertinggi",
"gsw-low": "Jerman Alemannic Rendah",
"gu-kat": "Kathiyawadi",
"gu-lda": "Gujarati Lisan ud-Dawat",
"hae": "Oromo Harar",
"hak-HK": "Hakka Hong Kong",
"hak-TW": "Hakka Taiwan",
"hak-dab": "Hakka Dabu",
"hak-eam": "Hakka Moden Awal",
"hak-hai": "Hakka Hailu",
"hak-hui": "Hakka Huiyang",
"hak-hui-MY": "Hakka Huiyang Malaysia",
"hak-mei": "Hakka Meixian",
"hak-six": "Hakka Sixian",
"hak-zha": "Hakka Zhao'an",
"haz": "Hazaragi",
"hbo": "Ibrani Biblikal",
"he-IL": "Ibrani Israel",
"he-med": "Ibrani Pertengahan",
"he-mis": "Ibrani Mishnaik",
"hi-mid": "Hindi Pertengahan",
"hi-mum": "Hindi Bombay",
"hsn-hya": "Xiang Hengyang",
"hsn-hzh": "Xiang Hengzhou",
"hsn-lou": "Xiang Loudi",
"hsn-new": "Xiang Baharu",
"hsn-old": "Xiang Kuno",
"ht-sdm": "Kreol Perancis Saint-Domingue",
"htx": "Hittite Pertengahan",
"hye": "Armenia Timur",
"hyw": "Armenia Barat",
"inc-aav": "Avahattha",
"inc-agu": "Apabhramsa Gurjara",
"inc-aka": "Apabhramsa Kasmiri",
"inc-ama": "Apabhramsa Maharastri",
"inc-asa": "Apabhramsa Sauraseni",
"inc-ash-pro": "Proto-Indo-Arya Pertengahan",
"inc-ata": "Apabhramsa Takka",
"inc-avr": "Apabhramsa Vracada",
"inc-khr-par": "Khortha Parnadiya",
"inc-mit": "Mitanni",
"iro-ohu": "Wendat Kuno",
"iro-omo": "Mohawk Kuno",
"iro-oon": "Onondaga Kuno",
"itc-ala": "Latin Arkais",
"itc-lan": "Lanuvian",
"itc-ola": "Latin Kuno",
"itc-pra": "Praenestine",
"ja-cla": "Jepun Klasik",
"ja-ear": "Jepun Moden Awal",
"ja-mid": "Jepun Pertengahan",
"ja-mid-ear": "Jepun Pertengahan Awal",
"ja-mid-lat": "Jepun Pertengahan Akhir",
"jpa": "Aram Palestin Yahudi",
"jrb": "Arab-Yahudi",
"ka-mid": "Georgia Pertengahan",
"kbg": "Khamba",
"kea-alu": "Kabuverdianu ALUPEC",
"kea-bar": "Kabuverdianu Barlavento",
"kea-bra": "Kabuverdianu Brava",
"kea-bvi": "Kabuverdianu Boa Vista",
"kea-fog": "Kabuverdianu Fogo",
"kea-mai": "Kabuverdianu Maio",
"kea-saa": "Kabuverdianu Santo Antão",
"kea-sal": "Kabuverdianu Sal",
"kea-san": "Kabuverdianu Santiago",
"kea-sni": "Kabuverdianu São Nicolau",
"kea-sot": "Kabuverdianu Sotavento",
"kea-svi": "Kabuverdianu São Vicente",
"khg": "Tibetan Khams",
"kho-lat": "Khotanese Akhir",
"kho-old": "Khotanese Kuno",
"kjh-fyu": "Kyrgyz Fuyu",
"kjv": "Serbo-Croatia Kajkavian",
"klj-arg": "Arghu",
"kn-hav": "Havigannada",
"kn-kun": "Kundagannada",
"ko-KP": "Piawai Korea Utara",
"ko-KR": "Piawai Korea Selatan",
"ko-cen": "Korea Tengah",
"ko-chu": "Korea Chungcheong",
"ko-gan": "Korea Gangwon",
"ko-gyg": "Korea Gyeonggi",
"ko-gys": "Korea Gyeongsang",
"ko-ham": "Korea Hamgyong",
"ko-hwa": "Korea Hwanghae",
"ko-jeo": "Korea Jeolla",
"ko-pyo": "Korea Pyongan",
"ko-yuk": "Korea Yukjin",
"kok-mid": "Konkani Pertengahan",
"kok-old": "Konkani Kuno",
"krl-nor": "Karelia Utara",
"krl-sou": "Karelia Selatan",
"ksh": "Kölsch",
"kze": "Kosena",
"la-afr": "Romance Afrika",
"la-cla": "Latin Klasik",
"la-con": "Latin Kontemporari",
"la-ecc": "Latin Gereja",
"la-eme": "Latin Abad Pertengahan Awal",
"la-lat": "Latin Akhir",
"la-med": "Latin Pertengahan",
"la-new": "Latin Baharu",
"la-ren": "Latin Pembaharuan",
"la-vul": "Latin Vulgar",
"lld-amp": "Ladin Ampezan",
"lld-bad": "Ladin Badiot",
"lld-cad": "Ladin Cadorino",
"lld-fas": "Ladin Fascian",
"lld-fod": "Ladin Fodom",
"lld-for": "Ladin Fornes",
"lld-ghe": "Ladin Gherdëina",
"lld-non": "Ladin Nones",
"lng": "Lombardik",
"ltc-ear": "Cina Pertengahan Awal",
"ltc-lat": "Cina Pertengahan Akhir",
"lut-nor": "Lushootseed Utara",
"lzh-KO": "Cina Klasik Korea",
"lzh-VI": "Cina Klasik Vietnam",
"lzh-cii": "Ci",
"lzh-cmn": "Mandarin Klasik",
"lzh-cmn-TW": "Mandarin Taiwan Klasik",
"lzh-lit": "Cina Sastera",
"lzh-pre": "Cina Pra-Klasik",
"lzh-shi": "Puisi Cina Tradisional",
"lzh-tai": "Taishanese Klasik",
"lzh-yue": "Kantonis Klasik",
"mn-cha": "Mongolia Chakhar",
"mn-kha": "Mongolia Khalkha",
"mn-khr": "Mongolia Khorchin",
"mn-ord": "Mongolia Ordos",
"mns-eas": "Mansi Timur",
"mns-wes": "Mansi Barat",
"ms-cla": "Melayu Klasik",
"ms-old": "Melayu Kuno",
"mul-tax": "nama taksonomi",
"nan-anx": "Hokkien Anxi",
"nan-cha": "Hokkien Changtai",
"nan-hbl-PH": "Hokkien Filipina",
"nan-hbl-SG": "Hokkien Singapura",
"nan-hbl-TW": "Hokkien Taiwan",
"nan-hou": "Min Houlu",
"nan-hui": "Hokkien Hui'an",
"nan-jin": "Hokkien Jinjiang",
"nan-kin": "Hokkien Kinmen",
"nan-med": "Hokkien Medan",
"nan-pen": "Hokkien Pulau Pinang",
"nan-qia": "Min Qianlu",
"nan-qua": "Hokkien Quanzhou",
"nan-spm": "Hokkien Malaysia Selatan",
"nan-ton": "Hokkien Tong'an",
"nan-xia": "Hokkien Xiamen",
"nan-yon": "Hokkien Yongchun",
"nan-zha": "Hokkien Zhangzhou",
"nan-zho": "Hokkien Zhao'an",
"nan-zhp": "Hokkien Zhangping",
"ncb-cam": "Camorta",
"ncb-kat": "Katchal",
"ncb-nan": "Nancowry",
"nds-de": "Jerman Jerman Rendah",
"nds-lpr": "Prusia Rendah",
"nds-nl": "Saxon Rendah Belanda",
"nei": "Hittite Neo",
"nl-BE": "Belanda Belgium",
"non-grn": "Norse Greenland",
"non-oen": "Norse Timur Kuno",
"non-own": "Norse Barat Kuno",
"nrf-grn": "Norman Guernsey",
"nrf-jer": "Norman Jersey",
"och-ear": "Cina Kuno Awal",
"och-lat": "Cina Kuno Akhir",
"oht": "Hittite Kuno",
"ojp-eas": "Jepun Kuno Timur",
"okm-ear": "Korea Pertengahan Awal",
"oko-lat": "Korea Kuno Akhir",
"okz-ang": "Khmer Kuno Angkor",
"okz-pre": "Khmer Kuno Pra-Angkor",
"ont": "Ontenu",
"oos": "Ossetic Kuno",
"oos-ear": "Ossetic Kuno Awal",
"oos-lat": "Ossetic Kuno Akhir",
"orc": "Orma",
"oru-kan": "Kaniguram",
"oru-log": "Logar",
"os-dig": "Ossetia Digor",
"os-iro": "Ossetia Iron",
"osc-luc": "Lucania",
"osc-sam": "Samnite",
"otk-kir": "Kirghiz Kuno",
"otk-ork": "Turkic Orkhon",
"pal-ear": "Parsi Pertengahan Awal",
"pal-lat": "Parsi Pertengahan Akhir",
"peo-ear": "Parsi Kuno Awal",
"peo-lat": "Parsi Kuno Akhir",
"pfl": "Jerman Palatine",
"pl-gor": "Goral",
"pl-gre": "Poland Raya",
"pl-les": "Poland Kecil",
"pl-mas": "Poland Masovia",
"pld": "Polari",
"pnb": "Punjabi Barat",
"pra-abh": "Abhiri",
"pra-ard": "Prakrit Ardhamagadhi",
"pra-ava": "Avanti",
"pra-bah": "Bahliki",
"pra-can": "Candali",
"pra-dak": "Daksinatya",
"pra-dra": "Dramili",
"pra-hel": "Prakrit Helu",
"pra-kha": "Prakrit Khasa",
"pra-mag": "Prakrit Magadhi",
"pra-mah": "Prakrit Maharastri",
"pra-odr": "Odri",
"pra-pai": "Prakrit Paisaci",
"pra-pra": "Pracya",
"pra-pro": "Proto-Indo-Arya Baharu",
"pra-sab": "Sabari",
"pra-sak": "Sakari",
"pra-sau": "Prakrit Sauraseni",
"prs": "Dari",
"ps-afr": "Afridi",
"ps-ban": "Bannu",
"ps-bng": "Bangash",
"ps-cgi": "Ghilzay Tengah",
"ps-jad": "Jadrani",
"ps-kak": "Kakari",
"ps-kan": "Kandahari",
"ps-mah": "Mahsudi",
"ps-nea": "Pashto Timur Laut",
"ps-nwe": "Pashto Barat Laut",
"ps-pes": "Peshawari",
"ps-sea": "Pashto Tenggara",
"ps-ser": "Sher",
"ps-swe": "Pashto Barat Daya",
"ps-waz": "Waziri",
"ps-xat": "Khatak",
"pse-bsm": "Besemah",
"pt-BR": "Portugis Brazil",
"pt-PT": "Portugis Eropah",
"qfa-yke-pro": "Proto-Ketic",
"qfa-yko-pro": "Proto-Kottic",
"qfa-ypm-pro": "Proto-Pumpokolic",
"qfa-yrn-pro": "Proto-Arinic",
"qsb-bal": "Paleo-Balkan",
"qsb-bma": "substrat BMAC",
"qsb-grc": "Yunani Pra-Purba",
"qsb-ibe": "Paleo-Hispanic",
"qwm-arm": "Kipchak-Armenia",
"qwm-cum": "Cuman",
"qwm-mam": "Kipchak-Mamluk",
"qxq": "Qashqai",
"rdb-jir": "Jirofti",
"rdb-kah": "Kahnuji",
"rm-gri": "Rumantsch Grischun",
"rm-old": "Romansh Kuno",
"rm-put": "Romansh Puter",
"rm-srm": "Romansh Surmiran",
"rm-srs": "Romansh Sursilvan",
"rm-sut": "Romansh Sutsilvan",
"rm-val": "Romansh Vallader",
"ro-MD": "Moldova",
"roa-pro": "Proto-Romance",
"rw-kin": "Kinyarwanda",
"rw-run": "Kirundi",
"sa-bhs": "Sanskrit Hibrid Buddha",
"sa-bra": "Sanskrit Brahman",
"sa-epi": "Sanskrit Epik",
"sa-neo": "Sanskrit Baharu",
"sa-rig": "Sanskrit Rigveda",
"sc-nuo": "Nuorese",
"sc-old": "Sardinia Kuno",
"sc-src": "Logudorese",
"sc-sro": "Campidanese",
"sco-ins": "Scots Kepulauan",
"sco-nor": "Scots Utara",
"sco-sou": "Scots Selatan",
"sco-uls": "Scots Ulster",
"sdz": "Sallaands",
"sgh-baj": "Bajui",
"sgh-bar": "Bartangi",
"sgh-bro": "Bartangi-Oroshori",
"sgh-oro": "Oroshori",
"sgh-ros": "Roshani",
"sgh-rsx": "Roshani-Khufi",
"sgh-xgb": "Khughni-Bajui",
"sgh-xuf": "Khufi",
"sgh-xug": "Khughni",
"sh-tor": "Serbo-Croatia Torlakian",
"shi-med": "Tashelhit Pertengahan",
"si-med": "Sinhalese Pertengahan",
"ska": "Skagit",
"slh": "Lushootseed Selatan",
"sli": "Jerman Jerman Tengah Timur Silesia",
"sno": "Snohomish",
"sog-ear": "Sogdian Awal",
"sog-lat": "Sogdian Akhir",
"ssn": "Waata",
"stl": "Stellingwarfs",
"sxu": "Jerman Saxon Atas",
"ta-mid": "Tamil Pertengahan",
"tai-shz": "Zhuang Shangsi",
"taq": "Tamasheq",
"tbq-pro": "Proto-Tibeto-Burman",
"th-ayu": "Thai Kuno Ayutthaya",
"th-old": "Thai Kuno",
"th-suk": "Thai Kuno Sukhothai",
"thv": "Tamahaq",
"thv-ght": "Ghat",
"thz": "Tayert",
"tks-cal": "Tati Chali",
"tks-dan": "Danesfani",
"tks-ebr": "Ebrahimabadi",
"tks-esf": "Esfarvarini",
"tks-sag": "Sagzabadi",
"tks-tak": "Takestani",
"tks-xia": "Khiaraji",
"tks-xoz": "Khoznini",
"tl-cls": "Tagalog Klasik",
"tl-old": "Tagalog Kuno",
"tly-anb": "Anbarani",
"tly-asa": "Asalemi",
"tly-aze": "Talysh Azerbaijan",
"tly-cen": "Talysh Tengah",
"tly-fum": "Fumani",
"tly-kar": "Karganrudi",
"tly-msa": "Masali",
"tly-msu": "Masulei",
"tly-nor": "Talysh Utara",
"tly-san": "Shandarmani",
"tly-sou": "Talysh Selatan",
"tly-tal": "Taleshdulabi",
"tly-tul": "Tularudi",
"tmr": "Aram Babilonia Yahudi",
"tpw-lga": "Língua Geral Amazônica",
"tpw-lgp": "Língua Geral Paulista",
"tr-CY": "Turkish Cyprus",
"trk-bul-pro": "Proto-Bulgar",
"trk-cmn-pro": "Proto-Turkic Sepunya",
"trk-ogr-pro": "Proto-Oghur",
"trk-ogz-pro": "Proto-Oghuz",
"tsk": "Tseku",
"ttq": "Tawellemmet",
"tw": "Akan Twi",
"tw-aku": "Twi Akuapem",
"tw-asa": "Twi Asante",
"twd": "Tweants",
"uk-CA": "Ukraine Kanada",
"urj-fpr-pro": "Proto-Finno-Permic",
"uz-afg": "Uzbek Afghanistan",
"vel": "Veluws",
"vsn": "Sanskrit Veda",
"wae": "Jerman Walser",
"wep": "Westphalia",
"wss": "Wasa",
"wuu-chm": "Wu Shadi",
"wuu-han": "Hangzhounese",
"wuu-nin": "Ningbonese",
"wuu-nor": "Wu Utara",
"wuu-sha": "Shanghai",
"wuu-suz": "Suzhounese",
"wuu-wen": "Wenzhounese",
"xaq": "Aquitanian",
"xbo-dan": "Bulgar Danube",
"xbo-vol": "Bulgar Volga",
"xcg": "Gaul Cisalpine",
"xfa-cap": "Capenate",
"xh-bha": "Bhaca",
"xme-azr": "Azari Kuno",
"xme-ttc-cen": "Tati Tengah",
"xme-ttc-eas": "Tati Timur",
"xme-ttc-nor": "Tati Utara",
"xme-ttc-sou": "Tati Selatan",
"xme-ttc-wes": "Tati Barat",
"xmn": "Parsi Pertengahan Manichaean",
"xng-ear": "Mongol Pertengahan Awal",
"xng-lat": "Mongol Pertengahan Akhir",
"xnn": "Kankanaey Utara",
"xno": "Anglo-Norman",
"xno-law": "Undang-undang Perancis",
"xtg": "Gaul Transalpine",
"xvi": "Kamviri",
"yue-HK": "Kantonis Hong Kong",
"yue-gua": "Kantonis Guangzhou",
"yue-lit": "Kantonis Sastera",
"yue-wvc": "Kantonis lisan bertulis",
"zh-postal": "Rumi Pos",
"zhx-dan": "Cina Danzhou",
"zhx-tai-wvc": "Taishanese lisan bertulis",
"zhx-zho": "Min Zhongshan",
"zle-mbe": "Belarus Pertengahan",
"zle-mru": "Rusia Pertengahan",
"zle-muk": "Ukraine Pertengahan",
"zle-ops": "Pskov Kuno",
"zls-chs-ru": "Slavik Gereja Rusia",
"zls-chs-uk": "Slavik Gereja Ukraine",
"zlw-mpl": "Poland Pertengahan",
"zrp": "Zarphatic"
}
j7uofq9wl64z9idymax4t4b4co2aca4
Modul:etymon/categories
828
82358
373513
373461
2026-09-11T02:21:39Z
SNN95
2113
terjemah
373513
Scribunto
text/plain
local export = {}
local M = require("Module:module loader").init({
require = {
etymology = "Module:etymology",
affix = "Module:affix",
etymology_specialized = "Module:etymology/specialized",
utilities = "Module:utilities",
roots = "Module:roots",
},
loadData = {
data = "Module:etymon/data",
},
})
-- Nilaikan sama ada kata kunci adalah transitif bagi sesuatu istilah
local function is_transitive(transitive_mode, page_lang, term_lang)
if transitive_mode == M.data.TRANSITIVE.ALWAYS then
return true
elseif transitive_mode == M.data.TRANSITIVE.NEVER then
return false
elseif transitive_mode == M.data.TRANSITIVE.CROSS_LANG then
return page_lang:getCode() ~= term_lang:getCode()
elseif transitive_mode == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then
return page_lang:getCode() ~= term_lang:getCode()
end
error("Mod transitif tidak diketahui: " .. tostring(transitive_mode))
end
-- Dapatkan konfigurasi kata kunci dengan pengesampingan khusus bahasa
local function get_keyword_config(keyword, lang_exc)
local base_config = M.data.keywords[keyword]
if not base_config then
return nil -- Kata kunci tidak sah
end
local overrides = lang_exc and lang_exc.keyword_overrides and lang_exc.keyword_overrides[keyword]
if not overrides then
return base_config
end
-- Gabungkan pengesampingan ke dalam konfigurasi asas
local merged = {}
for k, v in pairs(base_config) do
merged[k] = v
end
for k, v in pairs(overrides) do
merged[k] = v
end
return merged
end
function export.get_cat_name(source)
local _, cat_name = M.etymology.get_display_and_cat_name(source, true)
return cat_name
end
-- Normalkan alias jenis imbuhan
local aftype_aliases = {
["pre"] = "prefix",
["suf"] = "suffix",
["in"] = "infix",
["inter"] = "interfix",
["circum"] = "circumfix",
["naf"] = "non-affix",
["root"] = "non-affix",
}
local function add_category(categories, cat_name, sort_key, sort_base)
if categories[cat_name] == nil then
categories[cat_name] = {
sort_key = sort_key,
sort_base = sort_base,
}
return
end
local existing = categories[cat_name]
if existing.sort_key == nil and sort_key ~= nil then
existing.sort_key = sort_key
end
if existing.sort_base == nil and sort_base ~= nil then
existing.sort_base = sort_base
end
end
-- Kumpulkan kategori imbuhan daripada bekas kumpulan peringkat atas
local function collect_affix_categories(node, page_lang, available_etymon_ids, senseid_parent_etymon, lang_exc)
local parts = {}
local part_index = 1
for _, container in ipairs(node.children or {}) do
local config = container.keyword_info
if config and config.affix_categories then
for _, term in ipairs(container.terms or {}) do
if not term.unknown_term then
local part_data = {
term = term.title,
tr = term.tr,
ts = term.ts,
alt = term.alt,
itemno = part_index,
orig_index = part_index
}
-- Tentukan jenis imbuhan: aftype tersurat > pos=root > auto-kesan
local aftype = term.aftype
if aftype then
aftype = aftype_aliases[aftype] or aftype
part_data.type = aftype
elseif term.args and term.args.pos and term.args.pos == "root" then
part_data.type = "non-affix"
end
if term.lang:getCode() ~= page_lang:getCode() then
part_data.lang = term.lang
end
local target_ids = available_etymon_ids[term.target_key]
local has_multiple_ids = target_ids and #target_ids > 1
local id_exists_in_disambiguation = false
local matched_id = nil
-- Hitung senseid yang tersedia untuk halaman sasaran
local senseid_count = 0
local target_prefix = term.target_key .. ":"
if senseid_parent_etymon then
for key, _ in pairs(senseid_parent_etymon) do
if key:sub(1, #target_prefix) == target_prefix then
senseid_count = senseid_count + 1
end
end
end
local has_multiple_senseids = senseid_count > 1
if term.id then
-- Periksa jika pengguna menyediakan senseid yang sah
local senseid_key = term.target_key .. ":" .. term.id
if senseid_parent_etymon and senseid_parent_etymon[senseid_key] then
if has_multiple_senseids then
-- senseid kabur: gunakan senseid
matched_id = term.id
id_exists_in_disambiguation = true
elseif has_multiple_ids then
-- senseid unik tetapi etimon kabur: gunakan ID etimon
matched_id = term.etymon_id or term.id
id_exists_in_disambiguation = true
end
else
-- Periksa jika pengguna menyediakan ID etimon yang sah
if has_multiple_ids and target_ids then
for _, id_data in ipairs(target_ids) do
local stored_id = type(id_data) == "table" and id_data.id or id_data
if stored_id == term.id then
-- Etimon kabur: gunakan ID etimon
id_exists_in_disambiguation = true
matched_id = term.id
break
end
end
end
-- Sandaran: periksa etymon_id yang diselesaikan (cth. daripada langkah-langkah sebelumnya)
if not id_exists_in_disambiguation and has_multiple_ids and term.etymon_id and target_ids then
for _, id_data in ipairs(target_ids) do
local stored_id = type(id_data) == "table" and id_data.id or id_data
if stored_id == term.etymon_id then
id_exists_in_disambiguation = true
matched_id = term.etymon_id
break
end
end
end
end
end
-- Gunakan ID yang sepadan jika dijumpai
if term.override or id_exists_in_disambiguation then
part_data.id = matched_id or term.id
end
table.insert(parts, part_data)
part_index = part_index + 1
end
end
end
end
if #parts == 0 then return {} end
local affix_data = {
lang = page_lang,
parts = parts,
pos = "term",
sort_key = nil,
}
if #parts == 1 then
affix_data.allow_no_affixes_or_compounds = true
end
local affix_categories = M.affix.get_affix_categories_only(affix_data)
local result = {}
for _, cat in ipairs(affix_categories) do
if type(cat) == "table" then
table.insert(result, { cat = cat.cat, sort_key = cat.sort_key, sort_base = cat.sort_base })
else
table.insert(result, { cat = cat })
end
end
return result
end
local function lang_is_source(page_lang, source)
return page_lang:getCode() == source:getCode() or page_lang:hasParent(source)
end
local function is_borrowing_keyword_config(config)
return config and (config.borrowing_type or config.specialized_borrowing)
end
local function add_reborrow_category(categories, page_lang)
local lang_name = page_lang:getFullName()
add_category(categories, "Istilah " .. lang_name .. " yang dipinjam kembali ke dalam " .. lang_name)
end
local function borrow_returns_to_page_lang(page_lang, source, in_foreign_branch)
if not in_foreign_branch then
return false
end
if source:getFullCode() == page_lang:getFullCode() then
return true
end
return page_lang:hasParent(source)
end
local function node_borrows_from_lang(node, page_lang, visited, in_foreign_branch)
visited = visited or {}
if not node or visited[node] then
return false
end
visited[node] = true
if node.is_duplicate then
if node.duplicate_of then
return node_borrows_from_lang(node.duplicate_of, page_lang, visited, in_foreign_branch)
end
return false
end
local node_is_foreign = in_foreign_branch
or (node.lang and node.lang:getFullCode() ~= page_lang:getFullCode())
for _, container in ipairs(node.children or {}) do
if is_borrowing_keyword_config(container.keyword_info) then
for _, child_term in ipairs(container.terms or {}) do
if borrow_returns_to_page_lang(page_lang, child_term.lang, node_is_foreign) then
return true
end
end
end
for _, child_term in ipairs(container.terms or {}) do
if child_term.status == M.data.STATUS.OK or child_term.status == M.data.STATUS.INLINE then
if node_borrows_from_lang(child_term, page_lang, visited, node_is_foreign) then
return true
end
end
end
end
return false
end
local function should_add_reborrow_category(page_lang, term)
if page_lang:getCode() == term.lang:getCode() then
return false
end
if term.status ~= M.data.STATUS.OK and term.status ~= M.data.STATUS.INLINE then
return false
end
return node_borrows_from_lang(term, page_lang, {}, false)
end
-- Tambah kategori berkaitan peminjaman (peringkat atas sahaja)
local function collect_borrowing_categories(categories, page_lang, term, config, check_reborrow_path)
if check_reborrow_path and should_add_reborrow_category(page_lang, term) then
add_reborrow_category(categories, page_lang)
end
if config.borrowing_type == "borrowed" and not lang_is_source(page_lang, term.lang) then
local temp_categories = {}
M.etymology.insert_borrowed_cat(temp_categories, page_lang, term.lang)
for _, cat in ipairs(temp_categories) do
add_category(categories, cat)
end
end
if config.specialized_borrowing and not lang_is_source(page_lang, term.lang) then
local result = M.etymology_specialized.specialized_borrowing {
bortype = config.specialized_borrowing,
lang = page_lang,
sources = { term.lang },
terms = { { lang = term.lang, term = "-" } },
notext = true,
nocat = false,
}
for cat_name in result:gmatch("%[%[Category:([^%]]+)%]%]") do
add_category(categories, cat_name)
end
end
end
-- Tambah kategori terbitan berasaskan sumber (peringkat atas sahaja)
local function collect_source_derivation_categories(categories, page_lang, term, config)
if not config.source_category_type then
return
end
local temp_categories = {}
M.etymology.insert_source_cat_get_display {
lang = page_lang,
source = term.lang,
categories = temp_categories,
borrowing_type = config.source_category_type,
nocat = false,
}
for _, cat in ipairs(temp_categories) do
add_category(categories, cat)
end
end
-- Tambah kategori bahasa sumber
local function collect_source_categories(categories, page_lang, term, chain, get_norm_lang_func)
if page_lang:getCode() == get_norm_lang_func(term.lang):getCode() then
return
end
local temp_categories = {}
M.etymology.insert_source_cat_get_display {
lang = page_lang,
source = term.lang,
categories = temp_categories,
nocat = false,
}
for _, cat in ipairs(temp_categories) do
add_category(categories, cat)
end
if chain.inherited then
temp_categories = {}
M.etymology.insert_source_cat_get_display {
lang = page_lang,
source = term.lang,
categories = temp_categories,
borrowing_type = "terms inherited",
nocat = false,
}
for _, cat in ipairs(temp_categories) do
add_category(categories, cat)
end
end
end
-- Tambah kategori akar/perkataan
local function collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, chain,
get_norm_lang_func, lang_exc, keyword)
local pos_types = { root = "akar", word = "perkataan" }
-- Tentukan pos: daripada postype istilah, pos_override kata kunci, atau args.pos
local pos
local config = get_keyword_config(keyword, lang_exc)
if term.postype then
-- Pengubahsuai postype peringkat istilah mengambil keutamaan tertinggi
pos = term.postype
elseif config and config.pos_override then
pos = config.pos_override
elseif type(term.args) == "table" and term.args.pos then
pos = term.args.pos
end
local pos_type = pos_types[pos]
if not pos_type or term.unknown_term then
return
end
-- Langkau kategori akar/perkataan untuk keturunan kumpulan imbuhan
-- if pos_type then
-- return
-- end
local same_language = get_norm_lang_func(page_lang):getFullCode() == get_norm_lang_func(term.lang):getFullCode()
-- Langkau rujukan kendiri
if same_language and root_title == term.title then
return
end
local entry_name
if pos_type == "akar" then
entry_name = term.title
M.roots.assert_root(term.lang, entry_name)
else
entry_name = term.lang:makeEntryName(term.title)
end
local lang_name = page_lang:getCanonicalName()
local cat_name
if chain.passed_through then
local etymon_lang_name = export.get_cat_name(term.lang)
cat_name = "Istilah " .. lang_name .. " yang diterbitkan daripada " .. pos_type .. " " .. etymon_lang_name .. " " .. entry_name
else
cat_name = "Istilah " .. lang_name .. " yang tergolong dalam " .. pos_type .. " " .. entry_name
end
-- Tambah penyahkaburan ID jika perlu (untuk akar/perkataan: gunakan etymon_id jika diselesaikan melalui senseid, jika tidak gunakan id)
local target_ids = available_etymon_ids[term.target_key]
local effective_id = term.etymon_id or term.id -- etymon_id jika senseid, jika tidak id sudah pun merupakan id etimon
if target_ids and effective_id then
local same_pos_count = 0
for _, id_data in ipairs(target_ids) do
if type(id_data) == "table" and id_data.pos == pos then
same_pos_count = same_pos_count + 1
end
end
if same_pos_count > 1 then
cat_name = cat_name .. " (" .. effective_id .. ")"
end
end
add_category(categories, cat_name)
end
-- Hitung keadaan rantaian untuk suatu istilah berdasarkan rantaian induk dan konfigurasi kata kunci
-- Corak sengkang untuk pengesanan imbuhan (sengkang biasa + khusus skrip)
local AFFIX_HYPHEN_PATTERN = "[%-%־ـ᠊]" -- sengkang biasa, maqqef Ibrani, tatweel Arab, sengkang Mongolia
-- Periksa jika suatu istilah merupakan imbuhan sebenar (bukan ahli bukan imbuhan dalam kumpulan imbuhan)
local function is_actual_affix(term)
-- Periksa pengubahsuai aftype tersurat
if term.aftype then
local normalized = aftype_aliases[term.aftype] or term.aftype
return normalized ~= "non-affix"
end
-- Periksa jika pos=root (dilayan sebagai bukan imbuhan)
if term.args and term.args.pos and term.args.pos == "root" then
return false
end
-- Auto-kesan menggunakan sengkang: awalan berakhir dengan -, akhiran bermula dengan -, dsb.
if term.title then
local title = term.title
-- Tanggalkan * di hadapan untuk istilah yang direkonstruksi sebelum memeriksa sengkang
title = title:gsub("^%*", "")
-- Periksa sengkang di awal atau akhir (mengendalikan sengkang khusus skrip juga)
if title:match("^" .. AFFIX_HYPHEN_PATTERN) or title:match(AFFIX_HYPHEN_PATTERN .. "$") then
return true
end
end
-- Lalai: bukan imbuhan
return false
end
local function compute_category_chain(parent_chain, config, page_lang, term_lang, get_norm_lang_func, parent_term_lang, term)
-- Jejak jika kita berada di dalam imbuhan sebenar (untuk menindas kategori akar pada keturunan)
-- Hanya tetapkan jika istilah tersebut merupakan imbuhan sebenar (awalan, akhiran, dsb.), bukan ahli bukan imbuhan
local inside_affix = parent_chain.inside_affix
if config.affix_categories and term and is_actual_affix(term) then
inside_affix = true
end
-- Jika no_child_categories ditetapkan, lumpuhkan semuanya
if config.no_child_categories then
return {
passed_through = parent_chain.passed_through or page_lang:getCode() ~= get_norm_lang_func(term_lang):getCode(),
inherited = false,
source = false,
pos = false,
recurse = false,
inside_affix = inside_affix,
}
end
local term_is_transitive = is_transitive(config.transitive, page_lang, term_lang)
local new_source = parent_chain.source and term_is_transitive
-- Untuk CROSS_LANG_NO_INTERNAL_SOURCE: jejak konteks bahasa terbitan dalaman
-- Periksa jika istilah ini adalah dalaman secara relatif terhadap bahasa istilah induk (jika parent_term_lang disediakan)
-- atau secara relatif terhadap bahasa halaman (jika tiada parent_term_lang)
local internal_lang = parent_chain.internal_lang
local is_internal_in_context = false
if config.transitive == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then
local check_lang = parent_term_lang or page_lang
local term_lang_code = get_norm_lang_func(term_lang):getCode()
local check_lang_code = get_norm_lang_func(check_lang):getCode()
if internal_lang then
-- Sudah berada dalam konteks terbitan dalaman: periksa jika istilah ini juga dalaman
is_internal_in_context = term_lang_code == internal_lang
else
-- Periksa jika istilah ini adalah dalaman secara relatif terhadap istilah induk (atau halaman jika tiada induk)
is_internal_in_context = term_lang_code == check_lang_code
end
end
-- Tingkah laku rantaian sumber untuk CROSS_LANG_NO_INTERNAL_SOURCE
if config.transitive == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then
if is_internal_in_context then
-- Terbitan dalaman
new_source = false
internal_lang = get_norm_lang_func(term_lang):getCode()
else
-- Merentas bahasa
new_source = parent_chain.source and term_is_transitive
internal_lang = nil
end
end
local new_pos = parent_chain.pos
return {
passed_through = parent_chain.passed_through or page_lang:getCode() ~= get_norm_lang_func(term_lang):getCode(),
inherited = parent_chain.inherited and config.inherited_chain,
source = new_source,
pos = new_pos,
internal_lang = internal_lang,
recurse = new_source or new_pos,
inside_affix = inside_affix,
}
end
function export.render(opts)
opts = opts or {}
local data_tree = opts.data_tree
local page_lang = opts.page_lang
local available_etymon_ids = opts.available_etymon_ids
local senseid_parent_etymon = opts.senseid_parent_etymon
local get_norm_lang_func = opts.get_norm_lang_func
local lang_exc = opts.lang_exc
local categories = {}
local seen = {}
local lang_name = page_lang:getCanonicalName()
local root_title = data_tree.title
-- Kumpulkan pepohon secara rekursif
local function collect(node, parent_chain, is_toplevel)
-- Elakkan memproses nod yang sama dua kali
if not node.unknown_term and node.title then
local key = node.lang:getFullCode() .. ":" .. (node.title or "") .. ":" .. (node.id or "")
if seen[key] then return end
seen[key] = true
end
-- Kumpulkan kategori imbuhan pada peringkat atas sahaja
if is_toplevel then
local affix_cats = collect_affix_categories(node, page_lang, available_etymon_ids, senseid_parent_etymon, lang_exc)
for _, cat in ipairs(affix_cats) do
add_category(categories, lang_name .. " " .. cat.cat, cat.sort_key, cat.sort_base)
end
if node.supplements then
for _, supplement in ipairs(node.supplements) do
local config = supplement.config
if config and config.toplevel_category then
add_category(categories, lang_name .. " " .. config.toplevel_category)
end
end
end
end
-- Proses setiap bekas
for _, container in ipairs(node.children or {}) do
local keyword = container.keyword
local config = get_keyword_config(keyword, lang_exc)
-- Langkau kata kunci yang tidak sah
if config then
-- Proses setiap istilah dalam bekas
for _, term in ipairs(container.terms or {}) do
local term_chain = compute_category_chain(parent_chain, config, page_lang, term.lang, get_norm_lang_func, node.lang, term)
local no_child_categories = config.no_child_categories == true
local term_is_transitive = is_transitive(config.transitive, page_lang, term.lang)
-- Pemprosesan peringkat atas sahaja
if is_toplevel then
-- Penjejakan etimon yang hilang/kabur
if not term.unknown_term and (term.status == M.data.STATUS.MISSING or term.status == M.data.STATUS.REDLINK) then
add_category(categories, "Lema " .. lang_name .. " yang merujuk etimon yang hilang")
end
if not term.unknown_term and term.status == M.data.STATUS.AMBIGUOUS then
add_category(categories, "Lema " .. lang_name .. " yang merujuk etimon yang kabur")
end
if term.missing_descendants_header then
add_category(categories, "Lema " .. lang_name .. " yang merujuk etimon tanpa bahagian Keturunan")
end
if term.missing_descendants_entry then
add_category(categories, "Lema " .. lang_name .. " yang merujuk etimon tanpa istilah ini dalam bahagian Keturunan")
end
-- Kategori peringkat atas (cth., "undefined derivations")
if config.toplevel_category then
add_category(categories, lang_name .. " " .. config.toplevel_category)
end
-- Kategori peminjaman (bor, lbor, slbor, ubor, obor)
if config.borrowing_type or config.specialized_borrowing then
collect_borrowing_categories(categories, page_lang, term, config, true)
end
-- Kategori peminjaman daripada pengubahsuai <bor>, <lbor>, atau <slbor> pada istilah kumpulan imbuhan
local kw_config = M.data.keywords[keyword]
if kw_config and kw_config.affix_categories then
if term.bor then
local bor_config = { borrowing_type = "borrowed" }
collect_borrowing_categories(categories, page_lang, term, bor_config, true)
elseif term.lbor then
local bor_config = { specialized_borrowing = "learned" }
collect_borrowing_categories(categories, page_lang, term, bor_config, true)
elseif term.slbor then
local bor_config = { specialized_borrowing = "semi-learned" }
collect_borrowing_categories(categories, page_lang, term, bor_config, true)
end
end
-- Kategori terbitan berasaskan sumber (sl, calque, pcal)
if config.source_category_type then
collect_source_derivation_categories(categories, page_lang, term, config)
end
-- Langkau semua pengkategorian anak jika no_child_categories ditetapkan
if not no_child_categories then
-- Kategori sumber hanya jika transitif
if term_is_transitive then
collect_source_categories(categories, page_lang, term, term_chain, get_norm_lang_func)
end
-- Kategori pos sentiasa (melainkan no_child_categories)
collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, term_chain,
get_norm_lang_func, lang_exc, keyword)
end
else
-- Di bawah peringkat atas, patuhi rantaian induk
if parent_chain.source then
collect_source_categories(categories, page_lang, term, term_chain, get_norm_lang_func)
end
if parent_chain.pos then
collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, term_chain,
get_norm_lang_func, lang_exc, keyword)
end
end
-- Rekursi ke dalam anak istilah jika perlu dan status membenarkan
if term_chain.recurse and (term.status == M.data.STATUS.OK or term.status == M.data.STATUS.INLINE) then
collect(term, term_chain, false)
end
end
end
end
end
-- Keadaan rantaian awal
local initial_chain = {
passed_through = false,
inherited = true,
source = true,
pos = true,
internal_lang = nil,
recurse = true,
inside_affix = false,
}
collect(data_tree, initial_chain, true)
local cat_list = {}
for cat_name, sort_data in pairs(categories) do
if sort_data.sort_key ~= nil or sort_data.sort_base ~= nil then
table.insert(cat_list, {
name = cat_name,
sort_key = sort_data.sort_key,
sort_base = sort_data.sort_base,
})
else
table.insert(cat_list, cat_name)
end
end
return cat_list
end
function export.build(opts)
opts = opts or {}
local categories = {}
if not opts.suppress_categories and not opts.nocat then
categories = export.render({
data_tree = opts.data_tree,
page_lang = opts.page_lang,
available_etymon_ids = opts.available_etymon_ids,
senseid_parent_etymon = opts.senseid_parent_etymon,
get_norm_lang_func = opts.get_norm_lang_func,
lang_exc = opts.lang_exc,
})
end
local page_lang = opts.page_lang
if not page_lang then
return categories
end
local lang_name = page_lang:getCanonicalName()
table.insert(categories, "Halaman dengan etimon")
table.insert(categories, "Lema " .. lang_name .. " dengan etimon")
if opts.tree then
table.insert(categories, "Halaman dengan pepohon etimologi")
table.insert(categories, "Lema " .. lang_name .. " dengan pepohon etimologi")
end
if opts.text then
table.insert(categories, "Lema " .. lang_name .. " dengan teks etimologi")
end
if opts.exnihilo then
table.insert(categories, "Istilah " .. lang_name .. " yang dicipta ex nihilo")
end
if opts.toplevel_has_inline_etymology then
table.insert(categories, "Halaman dengan etimon sebaris untuk pautan merah")
end
if opts.toplevel_redundant_etymology then
table.insert(categories, "Halaman dengan etimon sebaris lewah")
end
if opts.toplevel_idless_etymon then
table.insert(categories, "Halaman yang menggunakan etimon tanpa ID")
end
if opts.has_mismatched_id then
table.insert(categories, "Lema " .. lang_name .. " yang merujuk etimon dengan ID yang tidak sepadan")
end
if opts.linked_page_multiple_etymons_idless then
table.insert(categories,
"Lema " .. lang_name .. " yang merujuk halaman dengan berbilang etimon yang kehilangan ID")
end
if opts.linked_page_partial_etymology_sections then
table.insert(categories,
"Lema " .. lang_name .. " yang merujuk halaman dengan bahagian etimologi yang kehilangan etimon")
end
if opts.text_stop_lang_missing then
table.insert(categories, "Halaman dengan bahasa henti teks etimologi bukan dalam rantaian")
table.insert(categories, "Lema " .. lang_name .. " dengan bahasa henti teks etimologi bukan dalam rantaian")
end
return categories
end
function export.format(entries, lang)
if type(entries) ~= "table" or #entries == 0 then
return ""
end
local parts = {}
for _, category in ipairs(entries) do
if type(category) == "table" and type(category.name) == "string" then
table.insert(parts, M.utilities.format_categories({ category.name }, lang, category.sort_key, category.sort_base))
elseif type(category) == "string" then
table.insert(parts, M.utilities.format_categories({ category }, lang))
end
end
return table.concat(parts)
end
return export
c57cj8le2pa1idolnwqyetm5b3emsip
373533
373513
2026-09-11T04:12:41Z
SNN95
2113
kemaskini
373533
Scribunto
text/plain
local export = {}
local M = require("Module:module loader").init({
require = {
etymology = "Module:etymology",
affix = "Module:affix",
etymology_specialized = "Module:etymology/specialized",
utilities = "Module:utilities",
roots = "Module:roots",
},
loadData = {
data = "Module:etymon/data",
},
})
-- Nilaikan sama ada kata kunci adalah transitif bagi sesuatu istilah
local function is_transitive(transitive_mode, page_lang, term_lang)
if transitive_mode == M.data.TRANSITIVE.ALWAYS then
return true
elseif transitive_mode == M.data.TRANSITIVE.NEVER then
return false
elseif transitive_mode == M.data.TRANSITIVE.CROSS_LANG then
return page_lang:getCode() ~= term_lang:getCode()
elseif transitive_mode == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then
return page_lang:getCode() ~= term_lang:getCode()
end
error("Mod transitif tidak diketahui: " .. tostring(transitive_mode))
end
-- Dapatkan konfigurasi kata kunci dengan pengesampingan khusus bahasa
local function get_keyword_config(keyword, lang_exc)
local base_config = M.data.keywords[keyword]
if not base_config then
return nil -- Kata kunci tidak sah
end
local overrides = lang_exc and lang_exc.keyword_overrides and lang_exc.keyword_overrides[keyword]
if not overrides then
return base_config
end
-- Gabungkan pengesampingan ke dalam konfigurasi asas
local merged = {}
for k, v in pairs(base_config) do
merged[k] = v
end
for k, v in pairs(overrides) do
merged[k] = v
end
return merged
end
function export.get_cat_name(source)
local _, cat_name = M.etymology.get_display_and_cat_name(source, true)
return cat_name
end
-- Normalkan alias jenis imbuhan
local aftype_aliases = {
["pre"] = "prefix",
["suf"] = "suffix",
["in"] = "infix",
["inter"] = "interfix",
["circum"] = "circumfix",
["naf"] = "non-affix",
["root"] = "non-affix",
}
local function add_category(categories, cat_name, sort_key, sort_base)
if categories[cat_name] == nil then
categories[cat_name] = {
sort_key = sort_key,
sort_base = sort_base,
}
return
end
local existing = categories[cat_name]
if existing.sort_key == nil and sort_key ~= nil then
existing.sort_key = sort_key
end
if existing.sort_base == nil and sort_base ~= nil then
existing.sort_base = sort_base
end
end
-- Kumpulkan kategori imbuhan daripada bekas kumpulan peringkat atas
local function collect_affix_categories(node, page_lang, available_etymon_ids, senseid_parent_etymon, lang_exc)
local parts = {}
local part_index = 1
for _, container in ipairs(node.children or {}) do
local config = container.keyword_info
if config and config.affix_categories then
for _, term in ipairs(container.terms or {}) do
if not term.unknown_term then
local part_data = {
term = term.title,
tr = term.tr,
ts = term.ts,
alt = term.alt,
itemno = part_index,
orig_index = part_index
}
-- Tentukan jenis imbuhan: aftype tersurat > pos=root > auto-kesan
local aftype = term.aftype
if aftype then
aftype = aftype_aliases[aftype] or aftype
part_data.type = aftype
elseif term.args and term.args.pos and term.args.pos == "root" then
part_data.type = "non-affix"
end
if term.lang:getCode() ~= page_lang:getCode() then
part_data.lang = term.lang
end
local target_ids = available_etymon_ids[term.target_key]
local has_multiple_ids = target_ids and #target_ids > 1
local id_exists_in_disambiguation = false
local matched_id = nil
-- Hitung senseid yang tersedia untuk halaman sasaran
local senseid_count = 0
local target_prefix = term.target_key .. ":"
if senseid_parent_etymon then
for key, _ in pairs(senseid_parent_etymon) do
if key:sub(1, #target_prefix) == target_prefix then
senseid_count = senseid_count + 1
end
end
end
local has_multiple_senseids = senseid_count > 1
if term.id then
-- Periksa jika pengguna menyediakan senseid yang sah
local senseid_key = term.target_key .. ":" .. term.id
if senseid_parent_etymon and senseid_parent_etymon[senseid_key] then
if has_multiple_senseids then
-- senseid kabur: gunakan senseid
matched_id = term.id
id_exists_in_disambiguation = true
elseif has_multiple_ids then
-- senseid unik tetapi etimon kabur: gunakan ID etimon
matched_id = term.etymon_id or term.id
id_exists_in_disambiguation = true
end
else
-- Periksa jika pengguna menyediakan ID etimon yang sah
if has_multiple_ids and target_ids then
for _, id_data in ipairs(target_ids) do
local stored_id = type(id_data) == "table" and id_data.id or id_data
if stored_id == term.id then
-- Etimon kabur: gunakan ID etimon
id_exists_in_disambiguation = true
matched_id = term.id
break
end
end
end
-- Sandaran: periksa etymon_id yang diselesaikan (cth. daripada langkah-langkah sebelumnya)
if not id_exists_in_disambiguation and has_multiple_ids and term.etymon_id and target_ids then
for _, id_data in ipairs(target_ids) do
local stored_id = type(id_data) == "table" and id_data.id or id_data
if stored_id == term.etymon_id then
id_exists_in_disambiguation = true
matched_id = term.etymon_id
break
end
end
end
end
end
-- Gunakan ID yang sepadan jika dijumpai
if term.override or id_exists_in_disambiguation then
part_data.id = matched_id or term.id
end
table.insert(parts, part_data)
part_index = part_index + 1
end
end
end
end
if #parts == 0 then return {} end
local affix_data = {
lang = page_lang,
parts = parts,
pos = "perkataan",
sort_key = nil,
}
if #parts == 1 then
affix_data.allow_no_affixes_or_compounds = true
end
local affix_categories = M.affix.get_affix_categories_only(affix_data)
local result = {}
for _, cat in ipairs(affix_categories) do
if type(cat) == "table" then
table.insert(result, { cat = cat.cat, sort_key = cat.sort_key, sort_base = cat.sort_base })
else
table.insert(result, { cat = cat })
end
end
return result
end
local function lang_is_source(page_lang, source)
return page_lang:getCode() == source:getCode() or page_lang:hasParent(source)
end
local function is_borrowing_keyword_config(config)
return config and (config.borrowing_type or config.specialized_borrowing)
end
local function add_reborrow_category(categories, page_lang)
local lang_name = page_lang:getFullName()
add_category(categories, "Perkataan " .. lang_name .. " yang dipinjam kembali ke dalam " .. lang_name)
end
local function borrow_returns_to_page_lang(page_lang, source, in_foreign_branch)
if not in_foreign_branch then
return false
end
if source:getFullCode() == page_lang:getFullCode() then
return true
end
return page_lang:hasParent(source)
end
local function node_borrows_from_lang(node, page_lang, visited, in_foreign_branch)
visited = visited or {}
if not node or visited[node] then
return false
end
visited[node] = true
if node.is_duplicate then
if node.duplicate_of then
return node_borrows_from_lang(node.duplicate_of, page_lang, visited, in_foreign_branch)
end
return false
end
local node_is_foreign = in_foreign_branch
or (node.lang and node.lang:getFullCode() ~= page_lang:getFullCode())
for _, container in ipairs(node.children or {}) do
if is_borrowing_keyword_config(container.keyword_info) then
for _, child_term in ipairs(container.terms or {}) do
if borrow_returns_to_page_lang(page_lang, child_term.lang, node_is_foreign) then
return true
end
end
end
for _, child_term in ipairs(container.terms or {}) do
if child_term.status == M.data.STATUS.OK or child_term.status == M.data.STATUS.INLINE then
if node_borrows_from_lang(child_term, page_lang, visited, node_is_foreign) then
return true
end
end
end
end
return false
end
local function should_add_reborrow_category(page_lang, term)
if page_lang:getCode() == term.lang:getCode() then
return false
end
if term.status ~= M.data.STATUS.OK and term.status ~= M.data.STATUS.INLINE then
return false
end
return node_borrows_from_lang(term, page_lang, {}, false)
end
-- Tambah kategori berkaitan peminjaman (peringkat atas sahaja)
local function collect_borrowing_categories(categories, page_lang, term, config, check_reborrow_path)
if check_reborrow_path and should_add_reborrow_category(page_lang, term) then
add_reborrow_category(categories, page_lang)
end
if config.borrowing_type == "borrowed" and not lang_is_source(page_lang, term.lang) then
local temp_categories = {}
M.etymology.insert_borrowed_cat(temp_categories, page_lang, term.lang)
for _, cat in ipairs(temp_categories) do
add_category(categories, cat)
end
end
if config.specialized_borrowing and not lang_is_source(page_lang, term.lang) then
local result = M.etymology_specialized.specialized_borrowing {
bortype = config.specialized_borrowing,
lang = page_lang,
sources = { term.lang },
terms = { { lang = term.lang, term = "-" } },
notext = true,
nocat = false,
}
for cat_name in result:gmatch("%[%[Category:([^%]]+)%]%]") do
add_category(categories, cat_name)
end
end
end
-- Tambah kategori terbitan berasaskan sumber (peringkat atas sahaja)
local function collect_source_derivation_categories(categories, page_lang, term, config)
if not config.source_category_type then
return
end
local temp_categories = {}
M.etymology.insert_source_cat_get_display {
lang = page_lang,
source = term.lang,
categories = temp_categories,
borrowing_type = config.source_category_type,
nocat = false,
}
for _, cat in ipairs(temp_categories) do
add_category(categories, cat)
end
end
-- Tambah kategori bahasa sumber
local function collect_source_categories(categories, page_lang, term, chain, get_norm_lang_func)
if page_lang:getCode() == get_norm_lang_func(term.lang):getCode() then
return
end
local temp_categories = {}
M.etymology.insert_source_cat_get_display {
lang = page_lang,
source = term.lang,
categories = temp_categories,
nocat = false,
}
for _, cat in ipairs(temp_categories) do
add_category(categories, cat)
end
if chain.inherited then
temp_categories = {}
M.etymology.insert_source_cat_get_display {
lang = page_lang,
source = term.lang,
categories = temp_categories,
borrowing_type = "terms inherited",
nocat = false,
}
for _, cat in ipairs(temp_categories) do
add_category(categories, cat)
end
end
end
-- Tambah kategori akar/perkataan
local function collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, chain,
get_norm_lang_func, lang_exc, keyword)
local pos_types = { root = "akar", word = "perkataan" }
-- Tentukan pos: daripada postype istilah, pos_override kata kunci, atau args.pos
local pos
local config = get_keyword_config(keyword, lang_exc)
if term.postype then
-- Pengubahsuai postype peringkat istilah mengambil keutamaan tertinggi
pos = term.postype
elseif config and config.pos_override then
pos = config.pos_override
elseif type(term.args) == "table" and term.args.pos then
pos = term.args.pos
end
local pos_type = pos_types[pos]
if not pos_type or term.unknown_term then
return
end
-- Langkau kategori akar/perkataan untuk keturunan kumpulan imbuhan
-- if pos_type then
-- return
-- end
local same_language = get_norm_lang_func(page_lang):getFullCode() == get_norm_lang_func(term.lang):getFullCode()
-- Langkau rujukan kendiri
if same_language and root_title == term.title then
return
end
local entry_name
if pos_type == "akar" then
entry_name = term.title
M.roots.assert_root(term.lang, entry_name)
else
entry_name = term.lang:makeEntryName(term.title)
end
local lang_name = page_lang:getCanonicalName()
local cat_name
if chain.passed_through then
local etymon_lang_name = export.get_cat_name(term.lang)
cat_name = "Perkataan " .. lang_name .. " yang diterbitkan daripada " .. pos_type .. " " .. etymon_lang_name .. " " .. entry_name
else
cat_name = "Perkataan " .. lang_name .. " yang tergolong dalam " .. pos_type .. " " .. entry_name
end
-- Tambah penyahkaburan ID jika perlu (untuk akar/perkataan: gunakan etymon_id jika diselesaikan melalui senseid, jika tidak gunakan id)
local target_ids = available_etymon_ids[term.target_key]
local effective_id = term.etymon_id or term.id -- etymon_id jika senseid, jika tidak id sudah pun merupakan id etimon
if target_ids and effective_id then
local same_pos_count = 0
for _, id_data in ipairs(target_ids) do
if type(id_data) == "table" and id_data.pos == pos then
same_pos_count = same_pos_count + 1
end
end
if same_pos_count > 1 then
cat_name = cat_name .. " (" .. effective_id .. ")"
end
end
add_category(categories, cat_name)
end
-- Hitung keadaan rantaian untuk suatu istilah berdasarkan rantaian induk dan konfigurasi kata kunci
-- Corak sengkang untuk pengesanan imbuhan (sengkang biasa + khusus skrip)
local AFFIX_HYPHEN_PATTERN = "[%-%־ـ᠊]" -- sengkang biasa, maqqef Ibrani, tatweel Arab, sengkang Mongolia
-- Periksa jika suatu istilah merupakan imbuhan sebenar (bukan ahli bukan imbuhan dalam kumpulan imbuhan)
local function is_actual_affix(term)
-- Periksa pengubahsuai aftype tersurat
if term.aftype then
local normalized = aftype_aliases[term.aftype] or term.aftype
return normalized ~= "non-affix"
end
-- Periksa jika pos=root (dilayan sebagai bukan imbuhan)
if term.args and term.args.pos and term.args.pos == "root" then
return false
end
-- Auto-kesan menggunakan sengkang: awalan berakhir dengan -, akhiran bermula dengan -, dsb.
if term.title then
local title = term.title
-- Tanggalkan * di hadapan untuk istilah yang direkonstruksi sebelum memeriksa sengkang
title = title:gsub("^%*", "")
-- Periksa sengkang di awal atau akhir (mengendalikan sengkang khusus skrip juga)
if title:match("^" .. AFFIX_HYPHEN_PATTERN) or title:match(AFFIX_HYPHEN_PATTERN .. "$") then
return true
end
end
-- Lalai: bukan imbuhan
return false
end
local function compute_category_chain(parent_chain, config, page_lang, term_lang, get_norm_lang_func, parent_term_lang, term)
-- Jejak jika kita berada di dalam imbuhan sebenar (untuk menindas kategori akar pada keturunan)
-- Hanya tetapkan jika istilah tersebut merupakan imbuhan sebenar (awalan, akhiran, dsb.), bukan ahli bukan imbuhan
local inside_affix = parent_chain.inside_affix
if config.affix_categories and term and is_actual_affix(term) then
inside_affix = true
end
-- Jika no_child_categories ditetapkan, lumpuhkan semuanya
if config.no_child_categories then
return {
passed_through = parent_chain.passed_through or page_lang:getCode() ~= get_norm_lang_func(term_lang):getCode(),
inherited = false,
source = false,
pos = false,
recurse = false,
inside_affix = inside_affix,
}
end
local term_is_transitive = is_transitive(config.transitive, page_lang, term_lang)
local new_source = parent_chain.source and term_is_transitive
-- Untuk CROSS_LANG_NO_INTERNAL_SOURCE: jejak konteks bahasa terbitan dalaman
-- Periksa jika istilah ini adalah dalaman secara relatif terhadap bahasa istilah induk (jika parent_term_lang disediakan)
-- atau secara relatif terhadap bahasa halaman (jika tiada parent_term_lang)
local internal_lang = parent_chain.internal_lang
local is_internal_in_context = false
if config.transitive == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then
local check_lang = parent_term_lang or page_lang
local term_lang_code = get_norm_lang_func(term_lang):getCode()
local check_lang_code = get_norm_lang_func(check_lang):getCode()
if internal_lang then
-- Sudah berada dalam konteks terbitan dalaman: periksa jika istilah ini juga dalaman
is_internal_in_context = term_lang_code == internal_lang
else
-- Periksa jika istilah ini adalah dalaman secara relatif terhadap istilah induk (atau halaman jika tiada induk)
is_internal_in_context = term_lang_code == check_lang_code
end
end
-- Tingkah laku rantaian sumber untuk CROSS_LANG_NO_INTERNAL_SOURCE
if config.transitive == M.data.TRANSITIVE.CROSS_LANG_NO_INTERNAL_SOURCE then
if is_internal_in_context then
-- Terbitan dalaman
new_source = false
internal_lang = get_norm_lang_func(term_lang):getCode()
else
-- Merentas bahasa
new_source = parent_chain.source and term_is_transitive
internal_lang = nil
end
end
local new_pos = parent_chain.pos
return {
passed_through = parent_chain.passed_through or page_lang:getCode() ~= get_norm_lang_func(term_lang):getCode(),
inherited = parent_chain.inherited and config.inherited_chain,
source = new_source,
pos = new_pos,
internal_lang = internal_lang,
recurse = new_source or new_pos,
inside_affix = inside_affix,
}
end
function export.render(opts)
opts = opts or {}
local data_tree = opts.data_tree
local page_lang = opts.page_lang
local available_etymon_ids = opts.available_etymon_ids
local senseid_parent_etymon = opts.senseid_parent_etymon
local get_norm_lang_func = opts.get_norm_lang_func
local lang_exc = opts.lang_exc
local categories = {}
local seen = {}
local lang_name = page_lang:getCanonicalName()
local root_title = data_tree.title
-- Kumpulkan pepohon secara rekursif
local function collect(node, parent_chain, is_toplevel)
-- Elakkan memproses nod yang sama dua kali
if not node.unknown_term and node.title then
local key = node.lang:getFullCode() .. ":" .. (node.title or "") .. ":" .. (node.id or "")
if seen[key] then return end
seen[key] = true
end
-- Kumpulkan kategori imbuhan pada peringkat atas sahaja
if is_toplevel then
local affix_cats = collect_affix_categories(node, page_lang, available_etymon_ids, senseid_parent_etymon, lang_exc)
for _, cat in ipairs(affix_cats) do
add_category(categories, lang_name .. " " .. cat.cat, cat.sort_key, cat.sort_base)
end
if node.supplements then
for _, supplement in ipairs(node.supplements) do
local config = supplement.config
if config and config.toplevel_category then
add_category(categories, lang_name .. " " .. config.toplevel_category)
end
end
end
end
-- Proses setiap bekas
for _, container in ipairs(node.children or {}) do
local keyword = container.keyword
local config = get_keyword_config(keyword, lang_exc)
-- Langkau kata kunci yang tidak sah
if config then
-- Proses setiap istilah dalam bekas
for _, term in ipairs(container.terms or {}) do
local term_chain = compute_category_chain(parent_chain, config, page_lang, term.lang, get_norm_lang_func, node.lang, term)
local no_child_categories = config.no_child_categories == true
local term_is_transitive = is_transitive(config.transitive, page_lang, term.lang)
-- Pemprosesan peringkat atas sahaja
if is_toplevel then
-- Penjejakan etimon yang hilang/kabur
if not term.unknown_term and (term.status == M.data.STATUS.MISSING or term.status == M.data.STATUS.REDLINK) then
add_category(categories, "Lema " .. lang_name .. " yang merujuk etimon yang hilang")
end
if not term.unknown_term and term.status == M.data.STATUS.AMBIGUOUS then
add_category(categories, "Lema " .. lang_name .. " yang merujuk etimon yang kabur")
end
if term.missing_descendants_header then
add_category(categories, "Lema " .. lang_name .. " yang merujuk etimon tanpa bahagian Keturunan")
end
if term.missing_descendants_entry then
add_category(categories, "Lema " .. lang_name .. " yang merujuk etimon tanpa istilah ini dalam bahagian Keturunan")
end
-- Kategori peringkat atas (cth., "undefined derivations")
if config.toplevel_category then
add_category(categories, lang_name .. " " .. config.toplevel_category)
end
-- Kategori peminjaman (bor, lbor, slbor, ubor, obor)
if config.borrowing_type or config.specialized_borrowing then
collect_borrowing_categories(categories, page_lang, term, config, true)
end
-- Kategori peminjaman daripada pengubahsuai <bor>, <lbor>, atau <slbor> pada istilah kumpulan imbuhan
local kw_config = M.data.keywords[keyword]
if kw_config and kw_config.affix_categories then
if term.bor then
local bor_config = { borrowing_type = "borrowed" }
collect_borrowing_categories(categories, page_lang, term, bor_config, true)
elseif term.lbor then
local bor_config = { specialized_borrowing = "learned" }
collect_borrowing_categories(categories, page_lang, term, bor_config, true)
elseif term.slbor then
local bor_config = { specialized_borrowing = "semi-learned" }
collect_borrowing_categories(categories, page_lang, term, bor_config, true)
end
end
-- Kategori terbitan berasaskan sumber (sl, calque, pcal)
if config.source_category_type then
collect_source_derivation_categories(categories, page_lang, term, config)
end
-- Langkau semua pengkategorian anak jika no_child_categories ditetapkan
if not no_child_categories then
-- Kategori sumber hanya jika transitif
if term_is_transitive then
collect_source_categories(categories, page_lang, term, term_chain, get_norm_lang_func)
end
-- Kategori pos sentiasa (melainkan no_child_categories)
collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, term_chain,
get_norm_lang_func, lang_exc, keyword)
end
else
-- Di bawah peringkat atas, patuhi rantaian induk
if parent_chain.source then
collect_source_categories(categories, page_lang, term, term_chain, get_norm_lang_func)
end
if parent_chain.pos then
collect_pos_categories(categories, page_lang, root_title, term, available_etymon_ids, term_chain,
get_norm_lang_func, lang_exc, keyword)
end
end
-- Rekursi ke dalam anak istilah jika perlu dan status membenarkan
if term_chain.recurse and (term.status == M.data.STATUS.OK or term.status == M.data.STATUS.INLINE) then
collect(term, term_chain, false)
end
end
end
end
end
-- Keadaan rantaian awal
local initial_chain = {
passed_through = false,
inherited = true,
source = true,
pos = true,
internal_lang = nil,
recurse = true,
inside_affix = false,
}
collect(data_tree, initial_chain, true)
local cat_list = {}
for cat_name, sort_data in pairs(categories) do
if sort_data.sort_key ~= nil or sort_data.sort_base ~= nil then
table.insert(cat_list, {
name = cat_name,
sort_key = sort_data.sort_key,
sort_base = sort_data.sort_base,
})
else
table.insert(cat_list, cat_name)
end
end
return cat_list
end
function export.build(opts)
opts = opts or {}
local categories = {}
if not opts.suppress_categories and not opts.nocat then
categories = export.render({
data_tree = opts.data_tree,
page_lang = opts.page_lang,
available_etymon_ids = opts.available_etymon_ids,
senseid_parent_etymon = opts.senseid_parent_etymon,
get_norm_lang_func = opts.get_norm_lang_func,
lang_exc = opts.lang_exc,
})
end
local page_lang = opts.page_lang
if not page_lang then
return categories
end
local lang_name = page_lang:getCanonicalName()
table.insert(categories, "Halaman dengan etimon")
table.insert(categories, "Lema " .. lang_name .. " dengan etimon")
if opts.tree then
table.insert(categories, "Halaman dengan pepohon etimologi")
table.insert(categories, "Lema " .. lang_name .. " dengan pepohon etimologi")
end
if opts.text then
table.insert(categories, "Lema " .. lang_name .. " dengan teks etimologi")
end
if opts.exnihilo then
table.insert(categories, "Perkataan " .. lang_name .. " yang dicipta ex nihilo")
end
if opts.toplevel_has_inline_etymology then
table.insert(categories, "Halaman dengan etimon sebaris untuk pautan merah")
end
if opts.toplevel_redundant_etymology then
table.insert(categories, "Halaman dengan etimon sebaris lewah")
end
if opts.toplevel_idless_etymon then
table.insert(categories, "Halaman yang menggunakan etimon tanpa ID")
end
if opts.has_mismatched_id then
table.insert(categories, "Lema " .. lang_name .. " yang merujuk etimon dengan ID yang tidak sepadan")
end
if opts.linked_page_multiple_etymons_idless then
table.insert(categories,
"Lema " .. lang_name .. " yang merujuk halaman dengan berbilang etimon yang kehilangan ID")
end
if opts.linked_page_partial_etymology_sections then
table.insert(categories,
"Lema " .. lang_name .. " yang merujuk halaman dengan bahagian etimologi yang kehilangan etimon")
end
if opts.text_stop_lang_missing then
table.insert(categories, "Halaman dengan bahasa henti teks etimologi bukan dalam rantaian")
table.insert(categories, "Lema " .. lang_name .. " dengan bahasa henti teks etimologi bukan dalam rantaian")
end
return categories
end
function export.format(entries, lang)
if type(entries) ~= "table" or #entries == 0 then
return ""
end
local parts = {}
for _, category in ipairs(entries) do
if type(category) == "table" and type(category.name) == "string" then
table.insert(parts, M.utilities.format_categories({ category.name }, lang, category.sort_key, category.sort_base))
elseif type(category) == "string" then
table.insert(parts, M.utilities.format_categories({ category }, lang))
end
end
return table.concat(parts)
end
return export
m32ob836k7xkry0m0ok0m89pcbmtgve
Modul:languages/chars
828
114864
373485
281319
2026-09-10T18:35:54Z
SNN95
2113
kemaskini
373485
Scribunto
text/plain
local export = {}
local table = table
local insert = table.insert
local u = require("Module:string/char")
-- UTF-8 encoded strings for some commonly-used diacritics.
local c = {
prime = u(0x02B9),
grave = u(0x0300),
acute = u(0x0301),
circ = u(0x0302), -- circumflex
tilde = u(0x0303),
macron = u(0x0304),
overline = u(0x0305),
breve = u(0x0306),
dotabove = u(0x0307),
diaer = u(0x0308), -- diaeresis
ringabove = u(0x030A),
dacute = u(0x030B), -- double acute
caron = u(0x030C),
lineabove = u(0x030D),
dgrave = u(0x030F), -- double grave
invbreve = u(0x0311), -- inverted breve
turnedcommaabove = u(0x0312),
commaabove = u(0x0313),
revcommaabove = u(0x0314), -- reversed comma above
dotbelow = u(0x0323),
diaerbelow = u(0x0324), -- diaeresis below
ringbelow = u(0x0325),
commabelow = u(0x0326),
cedilla = u(0x0327),
ogonek = u(0x0328),
caronbelow = u(0x032C),
brevebelow = u(0x032E),
macronbelow = u(0x0331),
perispomeni = u(0x0342),
ypogegrammeni = u(0x0345),
CGJ = u(0x034F), -- combining grapheme joiner
zigzag = u(0x035B),
dbrevebelow = u(0x035C), -- double breve below
dmacron = u(0x035E), -- double macron
dtilde = u(0x0360), -- double tilde
dinvbreve = u(0x0361), -- double inverted breve
small_a = u(0x0363),
small_e = u(0x0364),
small_i = u(0x0365),
small_o = u(0x0366),
small_u = u(0x0367),
keraia = u(0x0374),
lowerkeraia = u(0x0375),
tonos = u(0x0384),
palatalization = u(0x0484),
dasiapneumata = u(0x0485),
psilipneumata = u(0x0486),
kashida = u(0x0640),
fathatan = u(0x064B),
dammatan = u(0x064C),
kasratan = u(0x064D),
fatha = u(0x064E),
damma = u(0x064F),
kasra = u(0x0650),
shadda = u(0x0651),
sukun = u(0x0652),
hamzaabove = u(0x0654),
nunghunna = u(0x0658),
zwarakay = u(0x0659),
smallv = u(0x065A),
superalef = u(0x0670),
udatta = u(0x0951),
anudatta = u(0x0952),
tacute = u(0x1ACB), -- triple acute
dsvarita = u(0x1CDA), -- double svarita
tsvarita = u(0x1CDB), -- triple svarita
dottedgrave = u(0x1DC0),
dottedacute = u(0x1DC1),
coronis = u(0x1FBD),
psili = u(0x1FBF),
dasia = u(0x1FEF),
ZWNJ = u(0x200C), -- zero width non-joiner
ZWJ = u(0x200D), -- zero width joiner
RSQuo = u(0x2019), -- right single quote
kavyka = u(0xA67C),
VS01 = u(0xFE00), -- variation selector 1
-- Punctuation for the standard_chars field.
-- Note: characters are literal (i.e. no magic characters).
punc = " ',-‐‑‒–—…∅◌",
-- Range covering all diacritics.
diacritics = u(0x300) .. "-" .. u(0x34E) ..
u(0x350) .. "-" .. u(0x36F) ..
u(0x1AB0) .. "-" .. u(0x1ACE) ..
u(0x1DC0) .. "-" .. u(0x1DFF) ..
u(0x20D0) .. "-" .. u(0x20F0) ..
u(0xFE20) .. "-" .. u(0xFE2F),
}
-- Braille characters for the standard_chars field.
local braille = {}
for i = 0x2800, 0x28FF do
insert(braille, u(i))
end
c.braille = table.concat(braille)
export.chars = c
-- Pre-generate PUA characters, generally used in sortkeys.
-- Note: if changing the amount, use powers of 2 to maximise memory efficiency (due to the way memory is allocated for tables).
local p = {}
for i = 1, 32 do
p[i] = u(0xF000+i-1)
end
export.puaChars = p
local cs = {}
-- Used in the default strip_diacritics and sort_key for Cyrs, but also used directly by Old Ruthenian (zle-ort).
cs["Cyrs_remove_diacritics"] = c.grave .. c.acute .. c.dotabove .. c.diaer .. c.invbreve .. c.palatalization .. c.dasiapneumata .. c.psilipneumata .. c.dottedgrave .. c.dottedacute .. c.kavyka
export.chars_substitutions = cs
return export
4jo6gnddmlyjm1f3me7obw2m2tjok4g
Modul:etymon/data
828
118627
373514
373458
2026-09-11T02:33:10Z
SNN95
2113
terjemah
373514
Scribunto
text/plain
local export = {}
export.STATUS = {
OK = "ok",
INLINE = "inline",
MISSING = "missing",
REDLINK = "redlink",
AMBIGUOUS = "ambiguous",
}
export.TRANSITIVE = {
ALWAYS = "always", -- sentiasa rekursi ke dalam anak
NEVER = "never", -- tidak pernah rekursi ke dalam anak
CROSS_LANG = "cross_lang", -- hanya rekursi apabila bahasa sumber berbeza daripada bahasa sasaran (tetapi rantaian pos diteruskan)
CROSS_LANG_NO_INTERNAL_SOURCE = "cross_lang_no_internal_source", -- seperti CROSS_LANG, tetapi sumber terputus untuk terbitan dalaman dalam konteks bahasa yang sama
}
-- Gabung jadual secara mendalam (jadual bersarang digabungkan secara rekursif, nilai kemudian mengatasi yang sebelumnya)
local function deep_merge(...)
local result = {}
for _, t in ipairs({ ... }) do
for k, v in pairs(t) do
if type(v) == "table" and type(result[k]) == "table" then
result[k] = deep_merge(result[k], v)
else
result[k] = v
end
end
end
return result
end
local function make_glossary_link(term, display_text)
if not term then return display_text end
return "[[Lampiran:Glosari#" .. term:gsub(" ", "_") .. "|" .. display_text .. "]]"
end
-- Ekstrak kata dasar dan penyambung daripada teks seperti "Borrowed from" atau "calque of"
local function split_glossary_text(text)
for _, pattern in ipairs({ "^(.-)(%s+[Dd][Aa][Rr][Ii][Pp][Aa][Dd][Aa])$" }) do
local base, rest = text:match(pattern)
if base then return base, rest end
end
return text, ""
end
local TRANSITIVE = export.TRANSITIVE
local function create_keyword(opts)
local entry = {
is_group = opts.is_group or false,
abbrev = opts.abbrev,
glossary = opts.glossary,
transitive = opts.transitive or TRANSITIVE.ALWAYS, -- lalai "always"
inherited_chain = opts.inherited_chain or false,
affix_categories = opts.affix_categories or false,
borrowing_type = opts.borrowing_type,
specialized_borrowing = opts.specialized_borrowing,
toplevel_category = opts.toplevel_category,
no_child_categories = opts.no_child_categories or false,
source_category_type = opts.source_category_type,
invisible = (opts.invisible == true and "all") or opts.invisible or false,
pos_override = opts.pos_override,
new_sentence = opts.new_sentence or false,
separate_clause = opts.separate_clause or false,
default_conj = opts.default_conj,
min_etymons = opts.min_etymons,
max_etymons = opts.max_etymons,
term_rules = opts.term_rules,
aliases = opts.aliases,
}
-- Hanya tetapkan teks/frasa apabila kelihatan dalam teks (invisible ~= "all" dan ~= "text")
local inv = entry.invisible
if inv ~= "all" and inv ~= "text" then
entry.phrase = opts.phrase
if opts.text then
if opts.glossary then
local base_word, rest = split_glossary_text(opts.text)
entry.text = make_glossary_link(opts.glossary, base_word) .. rest
else
entry.text = opts.text
end
end
end
return entry
end
-- Lalai dikongsi untuk kumpulan kata kunci
local DEFAULTS = {
-- Kata kunci yang melalui rantaian warisan
inheritance = {
transitive = TRANSITIVE.ALWAYS,
inherited_chain = true,
},
-- Terbitan transitif piawai
transitive = {
transitive = TRANSITIVE.ALWAYS,
},
-- Piawai untuk terbitan dalaman: transitif merentas bahasa, tetapi tidak di dalamnya
internal_derivation = {
transitive = TRANSITIVE.CROSS_LANG,
},
-- Kata kunci peminjaman
borrowing = {
transitive = TRANSITIVE.ALWAYS,
},
-- Kata kunci kumpulan imbuhan (kata majmuk, gabungan, dsb.)
affix_group = {
is_group = true,
min_etymons = 2,
transitive = TRANSITIVE.CROSS_LANG,
affix_categories = true,
},
-- Kata kunci seperti terjemahan pinjaman (terjemahan pinjaman, terjemahan pinjaman separa, pinjaman semantik)
calque_like = {
transitive = TRANSITIVE.NEVER,
no_child_categories = true,
new_sentence = true,
},
-- Pengaruh tak transitif
influence_like = {
transitive = TRANSITIVE.NEVER,
no_child_categories = true,
},
}
export.keywords = {
--
-- Kata kunci warisan
--
["from"] = create_keyword(deep_merge(DEFAULTS.inheritance, {
text = "Daripada", phrase = "daripada",
term_rules = { entry_lang = true },
})),
["inherited"] = create_keyword(deep_merge(DEFAULTS.inheritance, {
text = "Diwarisi daripada",
phrase = "daripada",
glossary = "diwarisi",
aliases = { "inh" },
term_rules = {
family = "disallowed",
family_suffix = "; gunakan bahasa tertentu.",
ancestor_check = true,
},
})),
--
-- Kata kunci terbitan asas
--
["uder"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Daripada",
phrase = "daripada",
toplevel_category = "terbitan tidak ditakrifkan",
})),
["derived"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Diterbitkan daripada",
phrase = "daripada",
abbrev = "terb.",
glossary = "istilah terbitan",
aliases = { "der" },
})),
--
-- Kata kunci kumpulan imbuhan/majmuk
--
["affix"] = create_keyword(deep_merge(DEFAULTS.affix_group, {
text = "Daripada",
phrase = "daripada",
min_etymons = 1,
aliases = { "af" },
})),
["blend"] = create_keyword(deep_merge(DEFAULTS.affix_group, {
text = "Gabungan daripada",
phrase = "gabungan daripada",
abbrev = "gabung",
glossary = "gabungan",
toplevel_category = "gabungan",
})),
["univerbation"] = create_keyword(deep_merge(DEFAULTS.affix_group, {
text = "Univerbasi daripada",
phrase = "univerbasi daripada",
abbrev = "univ.",
glossary = "univerbasi",
toplevel_category = "univerbasi",
min_etymons = 1,
aliases = { "univ" },
})),
["vrd-af"] = create_keyword(deep_merge(DEFAULTS.affix_group, {
text = "Terbitan Vṛddhi daripada",
phrase = "terbitan vṛddhi daripada",
abbrev = "vṛd.",
glossary = "terbitan vṛddhi",
toplevel_category = "terbitan vrddhi",
})),
["sa-af"] = create_keyword(deep_merge(DEFAULTS.affix_group, {
text = "Pembentukan [[Sanskritik]] daripada",
phrase = "pembentukan [[Sanskritik]] daripada",
toplevel_category = "pembentukan Sanskritik",
})),
--
-- Kata kunci peminjaman
--
["bor"] = create_keyword(deep_merge(DEFAULTS.borrowing, {
text = "Dipinjam daripada",
phrase = "dipinjam daripada",
abbrev = "pinj.",
glossary = "kata pinjaman",
borrowing_type = "borrowed",
aliases = { "borrowed" },
})),
["lbor"] = create_keyword(deep_merge(DEFAULTS.borrowing, {
text = "Pinjaman terpelajar daripada",
phrase = "pinjaman terpelajar daripada",
abbrev = "ptp.",
glossary = "pinjaman terpelajar",
specialized_borrowing = "learned",
})),
["obor"] = create_keyword(deep_merge(DEFAULTS.borrowing, {
text = "Pinjaman ortografi daripada",
phrase = "pinjaman ortografi daripada",
abbrev = "por.",
glossary = "pinjaman ortografi",
specialized_borrowing = "orthographic",
})),
["slbor"] = create_keyword(deep_merge(DEFAULTS.borrowing, {
text = "Pinjaman separa terpelajar daripada",
phrase = "pinjaman separa terpelajar daripada",
abbrev = "pst.",
glossary = "pinjaman separa terpelajar",
specialized_borrowing = "semi-learned",
aliases = { "slb" },
})),
["ubor"] = create_keyword(deep_merge(DEFAULTS.borrowing, {
text = "Pinjaman tidak disesuaikan daripada",
phrase = "pinjaman tidak disesuaikan daripada",
abbrev = "ptds.",
glossary = "pinjaman tidak disesuaikan",
specialized_borrowing = "unadapted",
})),
--
-- Kata kunci seperti terjemahan pinjaman (tak transitif, mula ayat baharu)
--
["calque"] = create_keyword(deep_merge(DEFAULTS.calque_like, {
text = "Terjemahan pinjaman daripada",
phrase = "terjemahan pinjaman daripada",
abbrev = "tp.",
glossary = "terjemahan pinjaman",
specialized_borrowing = "calque",
aliases = { "cal", "clq" },
})),
["partial calque"] = create_keyword(deep_merge(DEFAULTS.calque_like, {
text = "Terjemahan pinjaman separa daripada",
phrase = "terjemahan pinjaman separa daripada",
abbrev = "tps.",
glossary = "terjemahan pinjaman separa",
specialized_borrowing = "partial-calque",
aliases = { "pcal" },
})),
["semantic loan"] = create_keyword(deep_merge(DEFAULTS.calque_like, {
text = "Pinjaman semantik daripada",
phrase = "pinjaman semantik daripada",
abbrev = "ps.",
glossary = "pinjaman semantik",
specialized_borrowing = "semantic-loan",
aliases = { "sl" },
})),
["psm"] = create_keyword(deep_merge(DEFAULTS.calque_like, {
text = "Pemadanan fono-semantik daripada",
phrase = "pemadanan fono-semantik daripada",
abbrev = "pfs.",
glossary = "pemadanan fono-semantik",
specialized_borrowing = "phono-semantic-matching",
aliases = { "phono-semantic matching" },
})),
--
-- Kata kunci pengaruh (tak transitif, klausa berasingan)
--
["influence"] = create_keyword(deep_merge(DEFAULTS.influence_like, {
text = "Dipengaruhi oleh",
phrase = "dipengaruhi oleh",
abbrev = "peng.",
glossary = "kontaminasi",
separate_clause = true,
})),
--
-- Kata kunci terbitan morfologi
--
["clipping"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Keratan daripada",
phrase = "keratan daripada",
abbrev = "ker.",
glossary = "keratan",
toplevel_category = "keratan",
aliases = { "clip" },
})),
["ellipsis"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Elipsis daripada",
phrase = "elipsis daripada",
abbrev = "elip.",
glossary = "elipsis",
toplevel_category = "elipsis",
aliases = { "ellip" },
})),
["back-formation"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Pembentukan balik daripada",
phrase = "pembentukan balik daripada",
abbrev = "pb.",
glossary = "pembentukan balik",
toplevel_category = "pembentukan balik",
aliases = { "bf" },
})),
["nominalization"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Penominalan daripada",
phrase = "penominalan daripada",
abbrev = "nom.",
glossary = "penominalan",
toplevel_category = "penominalan",
aliases = { "nom" },
})),
["transliteration"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Transliterasi daripada",
phrase = "dipinjam daripada",
abbrev = "translit.",
glossary = "transliterasi",
aliases = { "translit" },
})),
["vrd"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Terbitan Vṛddhi daripada",
phrase = "terbitan vṛddhi daripada",
abbrev = "vṛd.",
glossary = "terbitan vṛddhi",
toplevel_category = "terbitan vrddhi",
})),
["apheretic"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Bentuk aferetik daripada",
phrase = "bentuk aferetik daripada",
abbrev = "afer.",
glossary = "aferesis",
aliases = { "apheresis", "aphetic" },
})),
["denominal"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Kata kerja denominal daripada",
phrase = "kata kerja denominal daripada",
abbrev = "denom.",
glossary = "denominal",
toplevel_category = "kata kerja denominal",
aliases = { "denom" },
})),
["deverbal"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Deverbal daripada",
phrase = "deverbal daripada",
abbrev = "deverb.",
glossary = "deverbal",
toplevel_category = "deverbal",
})),
["reduplication"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Gandaan daripada",
phrase = "gandaan daripada",
abbrev = "gan.",
glossary = "penggandaan",
toplevel_category = "penggandaan",
aliases = { "redup" },
})),
["abbreviation"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Singkatan daripada",
phrase = "singkatan daripada",
abbrev = "sing.",
glossary = "singkatan",
aliases = { "abbr", "abbrev" },
})),
["syllabic abbreviation"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Singkatan suku kata daripada",
phrase = "singkatan suku kata daripada",
abbrev = "sing. sk.",
glossary = "singkatan suku kata",
aliases = { "sylabbr", "sylabbrev" },
})),
["acronym"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Akronim daripada",
phrase = "akronim daripada",
abbrev = "akronim",
glossary = "akronim",
aliases = { "acro" },
})),
["initialism"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Inisialisme daripada",
phrase = "inisialisme daripada",
abbrev = "inis.",
glossary = "inisialisme",
aliases = { "init" },
})),
["metathesis"] = create_keyword(deep_merge(DEFAULTS.transitive, {
text = "Metatesis daripada",
phrase = "metatesis daripada",
abbrev = "meta.",
glossary = "metatesis",
toplevel_category = "perkataan yang diterbitkan melalui metatesis",
aliases = { "meta" },
})),
--
-- Kata kunci halimunan (tiada output teks)
--
["root"] = create_keyword {
transitive = TRANSITIVE.ALWAYS,
invisible = "all",
pos_override = "root",
},
["afeq"] = create_keyword(deep_merge(DEFAULTS.affix_group, {
text = "Daripada",
phrase = "daripada",
transitive = TRANSITIVE.NEVER,
min_etymons = 1,
invisible = "all",
})),
}
-- Suplemen parameter templat.
export.supplements = {
doublet = {
text = "Kembar kepada",
phrase = "kembar kepada",
glossary = "kembar",
toplevel_category = "kembar",
default_conj = "dan",
term_rules = {
entry_lang = true,
require_term = true,
disallow = { "suppress", "unknown", "family" },
},
},
}
local aliases_to_register = {}
local canonical_aliases = {}
-- Petakan setiap kata kunci (kanonikal atau alias) kepada bentuk kanonikalnya untuk semakan dan penjejakan yang konsisten.
export.keyword_canonical = {}
for name, keyword_data in pairs(export.keywords) do
export.keyword_canonical[name] = name
if keyword_data.aliases then
canonical_aliases[name] = keyword_data.aliases
for _, alias in ipairs(keyword_data.aliases) do
if export.keywords[alias] then
error("Alias '" ..
alias .. "' yang ditakrifkan dalam kata kunci '" .. name .. "' bercanggah dengan kata kunci sedia ada '" .. alias .. "'.")
end
if aliases_to_register[alias] then
error("Alias '" ..
alias .. "' yang ditakrifkan dalam kata kunci '" .. name .. "' telah pun dituntut oleh kata kunci lain.")
end
aliases_to_register[alias] = keyword_data
export.keyword_canonical[alias] = name
end
keyword_data.aliases = nil
end
end
for alias, data in pairs(aliases_to_register) do
export.keywords[alias] = data
end
--
-- Pratetap pengecualian bahasa
--
local EXCEPTION_PRESETS = {
-- Tidak dibenarkan sepenuhnya: tiada pepohon, tiada teks, tiada kategori
disallowed = {
disallow = { tree = true, text = true },
suppress_categories = true,
},
-- Tindas transliterasi sahaja
no_translit = {
suppress_tr = true,
},
-- Tindas semua kategori sahaja
no_categories = {
suppress_categories = true,
},
}
--[=[
Pilihan pengecualian yang tersedia:
disallow = { Pilihan berkaitan untuk tidak membenarkan output:
tree Tidak membenarkan pepohon etimologi untuk bahasa ini
text Tidak membenarkan penjanaan teks etimologi untuk bahasa ini
ref Pautan rujukan ditunjukkan apabila pepohon/teks tidak dibenarkan
}
suppress_tr Tindas transliterasi dalam pautan
suppress_categories Tindas semua penjanaan kategori
normalize_to Normalkan kod bahasa kepada kod berbeza
normalize_from_families Gunakan penormalan kepada bahasa dalam keluarga ini
normalize_exclude_families Kecualikan keluarga ini daripada penormalan
keyword_overrides Pengesampingan pengkategorian setiap kata kunci (cth. { ["af"] = { transitive = TRANSITIVE.NEVER } })
]=]
local function create_exception(preset, overrides)
local base = preset and EXCEPTION_PRESETS[preset] or {}
return deep_merge(base, overrides or {})
end
export.config = {
lang_exceptions = {
["zh"] = create_exception("disallowed", {
disallow = { ref = "[[:en:Wiktionary:Beer parlour/2025/May#Template:etymon for Chinese]]" },
suppress_tr = true,
normalize_to = "zh",
normalize_from_families = { "zhx" },
normalize_exclude_families = { "qfa-cnt" },
}),
},
}
-- Kod yang disokong untuk pengubahsuai penominalan <g:code> (subset kod gaya jantina/nombor biasa)
export.nominalization_g_codes = {
["m"] = "maskulin",
["f"] = "feminin",
["n"] = "neuter",
["c"] = "umum",
["gneut"] = "neutral jantina",
["s"] = "tunggal",
["p"] = "jamak",
["d"] = "duaan",
["pauc"] = "paukal",
["mf"] = "maskulin atau feminin",
["fm"] = "maskulin atau feminin",
["mfn"] = "maskulin, feminin atau neuter",
["mnf"] = "maskulin, feminin atau neuter",
["fmn"] = "maskulin, feminin atau neuter",
["fnm"] = "maskulin, feminin atau neuter",
["nmf"] = "maskulin, feminin atau neuter",
["nfm"] = "maskulin, feminin atau neuter",
}
--
-- Sebarkan pengesampingan kata kunci kepada alias
--
if export.config.lang_exceptions then
for lang_code, exception in pairs(export.config.lang_exceptions) do
if exception.keyword_overrides then
for canonical, aliases in pairs(canonical_aliases) do
if exception.keyword_overrides[canonical] then
local override_data = exception.keyword_overrides[canonical]
for _, alias in ipairs(aliases) do
if not exception.keyword_overrides[alias] then
exception.keyword_overrides[alias] = override_data
end
end
end
end
end
end
end
return export
6v8126vw3qnw4g3vndl2kq584e6e0po
kirkification
0
144614
373472
373464
2026-09-10T14:46:24Z
~2026-48981-84
11440
373472
wikitext
text/x-wiki
== Bahasa Inggeris ==
[[File:Mona Lisa Kirkification.jpg|thumb|alt=The Mona Lisa with the face replaced by the face of Charlie Kirk|Kirkification of the ''[[Mona Lisa]]'']]
===Etimologi===
{{ety|en|:af|Kirk<alt:(Charlie) Kirk><id:original proper noun>|-ification|tree=1}}
Gabungan {{suffix|en|Kirk|ification}}.
===Sebutan===
* {{AFA|en|/kɜːkɪ.fɪˈkeɪ.ʃən/|a=RP}}
* {{AFA|en|/kɜɹkɪ.fɪˈkeɪ.ʃən/|a=GA}}
* {{audio|en|En-us-kirkification.ogg|a=US}}
* {{rhymes|en|eɪʃən|s=5}}
===Kata nama===
{{en-kn}}
# Perbuatan menyunting or atau mengganti muka pada gambar seseorang dengan gambar aktivis politik Amerika Syarikat, [[w:Charlie Kirk|Charlie Kirk]].
#* {{quote-journal|en|author=Cade Savoy|date=2025-11-17|title=AI ‘Kirkification’ prompts important questions about digital grief|work=[[w:The Reveille (newspaper)|The Reveille]]|location=Baton Rouge, Louisiana|publisher=LSU|archiveurl=https://web.archive.org/web/20251213174921/https://lsureveille.com/270296/opinion/opinion-ai-kirkification-prompts-important-questions-about-digital-grief/
|text=That was until I logged into my X account and saw Kirk’s face grafted onto ex-Syrian dictator Bashar al-Assad.{{pb}}Assad isn’t alone: “'''Kirkification'''” — the practice of using AI to superimpose Kirk’s face onto another person — has taken over the internet, primarily as a means of poking fun at the dead man’s supporters.}}
#* {{quote-journal|en|title=Kirkification: Gen Z and sardonic online culture|article_series=CT Viewpoints|author=Jada King|date=2026-3-18|work=w:CT Mirror|location=Hartford, Connecticut|archiveurl=https://web.archive.org/web/20260724113734/https://ctmirror.org/2026/03/18/kirkification-gen-z-and-sardonic-online-culture/
|text=Fear, anger, and doubt keep us online, and when being exposed to atrocity after atrocity, numbness is inevitable.{{pb}}In this way, '''Kirkification''' is extremely brilliant; it effectively closes the gap between politics and comedy, acting as a form of humorous political subversion.}}
#* {{RQ:New Yorker|Brady Brickner-Wood|The Kirkification of Our Troubled Times|date=2026-4-29|archiveurl=https://web.archive.org/web/20260429180802/https://www.newyorker.com/culture/infinite-scroll/the-kirkification-of-our-troubled-times
|text='''Kirkification''' began as a process of nihilistic disenchantment: churning out content that captures the confusion and cynicism of a generation trying to make sense of, and detach from, the brutal realities of contemporary political life.}}
# {{lb|en|linguistik}} Perbuatan mengubah sesebuah perkataan untuk menyertakan ''Kirk'' dalam ejaan atau sebulannya, merujuk kepada aktivis politik Amerika Syarikat, Charlie Kirk.
7ddzv7m8urlge7a87g8uz2rahxtv0gx
373531
373472
2026-09-11T03:38:56Z
SNN95
2113
373531
wikitext
text/x-wiki
== Bahasa Inggeris ==
[[File:Mona Lisa Kirkification.jpg|thumb|alt=Mona Lisa dengan wajah digantikan dengan wajah Charlie Kirk|'''''Kirkification''' of the [[Mona Lisa]]'' (Kirkifikasi ''Mona Lisa'')]]
===Etimologi===
{{ety|en|:af|Kirk<alt:(Charlie) Kirk><id:original proper noun>|-ification|tree=1}}
Gabungan {{suffix|en|Kirk|ification}}.
===Sebutan===
* {{AFA|en|/kɜːkɪ.fɪˈkeɪ.ʃən/|a=RP}}
* {{AFA|en|/kɜɹkɪ.fɪˈkeɪ.ʃən/|a=GA}}
* {{audio|en|En-us-kirkification.ogg|a=US}}
* {{rhymes|en|eɪʃən|s=5}}
===Kata nama===
{{en-kn}}
# Perbuatan menyunting or atau mengganti muka pada gambar seseorang dengan gambar aktivis politik Amerika Syarikat, [[w:Charlie Kirk|Charlie Kirk]].
#* {{quote-journal|en|author=Cade Savoy|date=2025-11-17|title=AI ‘Kirkification’ prompts important questions about digital grief|work=[[w:The Reveille (newspaper)|The Reveille]]|location=Baton Rouge, Louisiana|publisher=LSU|archiveurl=https://web.archive.org/web/20251213174921/https://lsureveille.com/270296/opinion/opinion-ai-kirkification-prompts-important-questions-about-digital-grief/
|text=That was until I logged into my X account and saw Kirk’s face grafted onto ex-Syrian dictator Bashar al-Assad.{{pb}}Assad isn’t alone: “'''Kirkification'''” — the practice of using AI to superimpose Kirk’s face onto another person — has taken over the internet, primarily as a means of poking fun at the dead man’s supporters.}}
#* {{quote-journal|en|title=Kirkification: Gen Z and sardonic online culture|article_series=CT Viewpoints|author=Jada King|date=2026-3-18|work=w:CT Mirror|location=Hartford, Connecticut|archiveurl=https://web.archive.org/web/20260724113734/https://ctmirror.org/2026/03/18/kirkification-gen-z-and-sardonic-online-culture/
|text=Fear, anger, and doubt keep us online, and when being exposed to atrocity after atrocity, numbness is inevitable.{{pb}}In this way, '''Kirkification''' is extremely brilliant; it effectively closes the gap between politics and comedy, acting as a form of humorous political subversion.}}
#* {{RQ:New Yorker|Brady Brickner-Wood|The Kirkification of Our Troubled Times|date=2026-4-29|archiveurl=https://web.archive.org/web/20260429180802/https://www.newyorker.com/culture/infinite-scroll/the-kirkification-of-our-troubled-times
|text='''Kirkification''' began as a process of nihilistic disenchantment: churning out content that captures the confusion and cynicism of a generation trying to make sense of, and detach from, the brutal realities of contemporary political life.}}
# {{lb|en|linguistik}} Perbuatan mengubah sesebuah perkataan untuk menyertakan ''Kirk'' dalam ejaan atau sebulannya, merujuk kepada aktivis politik Amerika Syarikat, Charlie Kirk.
sg5cy63lmq7gexi6058k1wdsjpqfaag
Wikikamus:bdr/upi
4
144621
373473
2026-09-10T15:14:42Z
Jainnie
10839
Membuat terjemahan baru
373473
wikitext
text/x-wiki
==Bahasa {{bahasa|bdr}}==
===Kata nama===
{{inti|bdr|kata nama}}
# {{label|1=bdr|2=dialek|3=Sabah}} mimpi {{cp|bdr|Nia teingot ku '''upi''' debui.|Saya tidak ingat '''[[mimpi]]''' semalam.}}
oqx3do1l5s2azj3b8jcsvbq0hb2oxse
Modul:roots
828
144622
373504
2026-09-10T20:45:48Z
SNN95
2113
Mencipta laman baru dengan kandungan 'local export = {} local force_cat = false -- for debugging local M = require("Module:module loader").init({ require = { str_utils = "Module:string utilities", utilities = "Module:utilities", links = "Module:links", headword = "Module:headword", languages = "Module:languages", parameters = "Module:parameters", inflection_table = "Module:inflection-table", }, loadData = { radicals = "Module:roots/data/radicals", }, lazy = { conca...'
373504
Scribunto
text/plain
local export = {}
local force_cat = false -- for debugging
local M = require("Module:module loader").init({
require = {
str_utils = "Module:string utilities",
utilities = "Module:utilities",
links = "Module:links",
headword = "Module:headword",
languages = "Module:languages",
parameters = "Module:parameters",
inflection_table = "Module:inflection-table",
},
loadData = {
radicals = "Module:roots/data/radicals",
},
lazy = {
concat = function() return table.concat end,
insert = function() return table.insert end,
},
})
local UI_STRINGS = {
no_langcode = "Please provide a language code.",
invalid_langcode = "Invalid language code: %s",
not_a_table = "rootTable is not a table",
min_radicals = "Root must have at least %s %s.",
max_radicals = "Root must have at most %s %s.",
unrecognized_pos = "Unrecognized %s radical %s in %s",
unrecognized_mem = "Unrecognized radical %s in %s",
not_single_letter = "'%s' in the root '%s' should be a single letter.",
invalid_validation = "Unknown validation model: %s",
only_one_root = "There should be only one root.",
bad_root = "Invalid %s root '%s': %s",
wrong_separator = "Radicals should be separated by '%s'.",
root_vs_pagename = "Root is different from the pagename.",
move_to_appendix = "The root page should be in the Appendix namespace. Please move it to : [[%s]]",
appendix_subpage = "Appendix:%s roots/",
root_category = "%s terms belonging to the root %s%s",
derived_category = "%s terms derived from the %s root %s%s",
derived_language = "%s terms derived from %s",
root_heading = "\n! [[w:%s|%s]]",
sense_wrapper = "‎ <span class=\"gloss-content\">(%s)</span>",
article_semitic = "Semitic root",
article_generic = "Root (linguistics)",
}
local DEFAULT_LINK_TARGET = "bare"
local DEFAULT_HEADWORD = {}
local function split_root(root, separator)
if not separator then
return { root }
end
return mw.text.split(root, separator, true)
end
local function radicals_word(count)
return count == 1 and "radical" or "radicals"
end
function export.get_data_module_name(langcode)
return "Module:roots/data/" .. langcode
end
local function try_load_data(langcode)
local ok, data = pcall(mw.loadData, export.get_data_module_name(langcode))
if ok then
return data
end
return nil
end
function export.get_data(langcode)
return try_load_data(langcode)
end
local function get_lang_and_data(frame)
local code = frame.args["lang"]
if not code or code == "" then
error(UI_STRINGS.no_langcode)
end
local lang = M.languages.getByCode(code)
if not lang then
error(UI_STRINGS.invalid_langcode:format(code))
end
return lang, try_load_data(code) or {}
end
local function resolve_radicals(data)
if data.validation == "positional" or data.radicals then
return data.radicals
end
if data.shared_radicals then
return M.radicals[data.shared_radicals]
end
return nil
end
local function transliterate_root(root_string, romanization)
if not romanization then
return nil
end
local out = root_string
for _, pair in ipairs(romanization) do
out = M.str_utils.gsub(out, pair[1], pair[2])
end
return out
end
export.transliterate = transliterate_root
local function validate_root(rootTable, joined_root, data, radical_set)
if type(rootTable) ~= "table" then
return nil, UI_STRINGS.not_a_table
end
local len = #rootTable
if data.min_radicals and len < data.min_radicals then
return nil, UI_STRINGS.min_radicals:format(data.min_radicals, radicals_word(data.min_radicals))
end
if data.max_radicals and len > data.max_radicals then
return nil, UI_STRINGS.max_radicals:format(data.max_radicals, radicals_word(data.max_radicals))
end
if data.validation == "positional" then
for i, radical in ipairs(rootTable) do
local set, label
if i == 1 then
set, label = radical_set.initial, "initial"
elseif i == len then
set, label = radical_set.final, "final"
else
set, label = radical_set.medial, "medial"
end
if not set[radical] then
return nil, UI_STRINGS.unrecognized_pos:format(label, radical, joined_root)
end
end
elseif data.validation == "membership" then
for _, radical in ipairs(rootTable) do
if not radical_set[radical] then
return nil, UI_STRINGS.unrecognized_mem:format(radical, joined_root)
end
end
elseif data.validation == "single_letter" then
for _, radical in ipairs(rootTable) do
if mw.ustring.len(radical) ~= 1 then
return nil, UI_STRINGS.not_single_letter:format(radical, joined_root)
end
end
elseif data.validation ~= nil then
return nil, UI_STRINGS.invalid_validation:format(tostring(data.validation))
end
return true
end
local function link(term, alt, translit, id, lang)
if term == "" or term == "—" then
return term
end
return M.links.full_link({
term = term,
alt = alt ~= term and alt or nil,
tr = translit,
lang = lang,
id = id,
})
end
local function root_category(lang, source, root, qualifier)
local suffix = (qualifier and qualifier ~= "") and (" (" .. qualifier .. ")") or ""
if lang:getCode() == source:getCode() then
return UI_STRINGS.root_category:format(lang:getFullName(), root, suffix)
end
return UI_STRINGS.derived_category:format(
lang:getFullName(), source:getCanonicalName(), root, suffix)
end
local function check_root(source, root)
local data = try_load_data(source:getCode())
if not data then
return true
end
local bare = (root:gsub("^%*", ""))
local radicals = split_root(bare, data.separator)
if data.separator and #radicals == 1 and mw.ustring.len(bare) > 1 then
return nil, UI_STRINGS.wrong_separator:format(data.separator)
end
return validate_root(radicals, bare, data, resolve_radicals(data))
end
function export.assert_root(source, root)
local ok, err = check_root(source, root)
if not ok then
error(UI_STRINGS.bad_root:format(source:getCanonicalName(), root, err))
end
return true
end
function export.get_categories(lang, source, roots, ids)
local categories = {}
ids = ids or {}
if lang:getCode() ~= source:getCode() then
M.insert(categories,
UI_STRINGS.derived_language:format(lang:getFullName(), source:getCanonicalName()))
end
for index, root in ipairs(roots) do
M.insert(categories, root_category(lang, source, root, ids[index]))
export.assert_root(source, root)
end
return categories
end
function export.categorize(lang, source, roots, ids, sort_key)
return M.utilities.format_categories(
export.get_categories(lang, source, roots, ids), lang, sort_key, nil, force_cat)
end
function export.show(frame)
local params = {
[1] = { required = true, type = "language" },
[2] = { required = true, type = "language" },
[3] = { required = true, list = true },
["id"] = { list = true, allow_holes = true },
["sort"] = {},
}
local args = M.parameters.process(frame:getParent().args, params)
return export.categorize(args[1], args[2], args[3], args.id, args.sort)
end
function export.root(frame)
local lang, data = get_lang_and_data(frame)
local radical_set = resolve_radicals(data)
local link_target = data.link_target or DEFAULT_LINK_TARGET
local output = {}
local categories = {}
local title = mw.title.getCurrentTitle()
local namespace = title.nsText
local params = {
[1] = { list = true },
["nocat"] = { type = "boolean" },
["plain"] = { type = "boolean" },
["notext"] = { type = "boolean" },
["sense"] = {},
}
if link_target == "bare" then
params["head"] = true
params["pagename"] = true
end
local args = M.parameters.process(frame:getParent().args, params)
local roots = args[1]
local roots_len = #roots
local plain = args["plain"]
if frame.args["plain"] then
plain = true
end
local separator = data.separator
local identity
local subpage = ""
if link_target == "appendix_subpage" then
subpage = UI_STRINGS.appendix_subpage:format(lang:getCanonicalName())
local fulltitle = title.fullText
fulltitle = M.str_utils.gsub(fulltitle, M.str_utils.gsub(subpage, "([^%w])", "%%%1"), "")
identity = fulltitle
else
identity = args["pagename"] or mw.loadData("Module:headword/data").pagename
end
local rootLetters = {}
if roots_len == 0 and not args["pagename"] and namespace == "Template" and data.preview_root then
M.insert(rootLetters, split_root(data.preview_root, separator))
elseif roots_len ~= 0 then
for _, root in ipairs(roots) do
M.insert(rootLetters, split_root(root, separator))
end
else
if link_target == "bare" then
local head = frame.args["head"]
if args["head"] ~= nil and identity ~= lang:stripDiacritics(args["head"]) then
error(UI_STRINGS.root_vs_pagename)
end
if head and args["head"] ~= nil then
identity = args["head"]
end
end
M.insert(rootLetters, split_root(identity, separator))
end
local joined_roots = {}
for i, rootLetter in ipairs(rootLetters) do
M.insert(joined_roots, M.concat(rootLetter, separator))
local ok, err = validate_root(rootLetter, joined_roots[i], data, radical_set)
if not ok then
error(err)
end
end
local sense = args["sense"]
local sense_formatted = ""
if sense ~= nil and sense ~= "" then
sense_formatted = UI_STRINGS.sense_wrapper:format(sense)
end
if identity == joined_roots[1] then
if link_target == "appendix_subpage" and namespace == "" then
error(UI_STRINGS.move_to_appendix:format(subpage .. joined_roots[1]))
end
if roots_len > 1 then
error(UI_STRINGS.only_one_root)
end
local headword_args = {
lang = lang,
pos_category = "roots",
categories = {},
heads = { identity },
nomultiwordcat = true,
}
local headword_opts = data.headword or DEFAULT_HEADWORD
if headword_opts.translits then
headword_args.translits = { transliterate_root(identity, data.romanization) }
end
if headword_opts.noposcat then
headword_args.noposcat = true
end
M.insert(output, M.headword.full_headword(headword_args))
if args["nocat"] then
return M.concat(output)
end
return M.concat(output) .. M.concat(categories)
else
local link_texts = {}
local term_counts = {}
for i, joined_root in ipairs(joined_roots) do
local link_text
if link_target == "appendix_subpage" then
link_text = subpage .. joined_root
else
link_text = joined_root
end
local translit = data.romanization and transliterate_root(joined_root, data.romanization) or nil
M.insert(link_texts, link(link_text, joined_root, translit, sense, lang) .. sense_formatted)
M.insert(categories, M.utilities.format_categories(
{ root_category(lang, lang, joined_root, sense) }, lang, nil, nil, force_cat))
M.insert(term_counts, mw.site.stats.pagesInCategory(
root_category(lang, lang, joined_root, sense), "pages"))
end
if args["nocat"] or plain then
if args["nocat"] then
return M.concat(link_texts, ", ")
end
return M.concat(link_texts, ", ") .. M.concat(categories)
else
local link_text_output = ""
for i, link_text in ipairs(link_texts) do
link_text_output = link_text_output ..
"\n|-\n| " .. link_text ..
"\n|-\n| [[:Category:" ..
root_category(lang, lang, joined_roots[i], sense) ..
"|" .. term_counts[i] .. " term" .. (term_counts[i] == 1 and "" or "s") .. "]]\n"
end
local wikicode = M.inflection_table.make_top{
title = "-",
palette = data.palette,
class = "floatright tr-alongside"
}
local article = lang:inFamily("sem") and UI_STRINGS.article_semitic or UI_STRINGS.article_generic
wikicode = wikicode .. UI_STRINGS.root_heading:format(article, #term_counts == 1 and "Root" or "Roots")
wikicode = wikicode .. link_text_output
wikicode = wikicode .. M.inflection_table.make_bottom{}
return wikicode .. M.concat(categories)
end
end
end
return export
8cqr3geao2132e4qug3daanbpxfv8ak