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>&amp;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>&amp;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>&amp;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>&amp;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 &gt; 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("&gt;", ""):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("&gt;", ""):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 &lrm; is what [[Module:affix]] has always done default_separator = data.allow_semicolon_separator and " +&lrm; " 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 = " +&lrm; ", 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 = " +&lrm; ", 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 = " +&lrm; ", 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 " +&lrm; " 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 " +&lrm; " 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`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 &ndash; 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 &ndash; 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 &ndash; 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 &ndash; 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 &ndash; 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, "&#58;", chunks_len) -- : ) return concat(chunks, "&#58;"), 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, "&#58;"), 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, "&#58;"), 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("&#123;&#123;" .. concat(output, "&#124;") .. "&#125;&#125;") -- {{ | }} ) 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("&#123;&#123;&#123;" .. concat({name, default}, "&#124;") .. "&#125;&#125;&#125;") -- {{{ | }}} ) 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("&lt;" .. tag .. "&gt;") ) 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 "&amp;#91;" to be treated equivalently, with either one closed by either "]" or "&amp;#93;". To do this, first replace "&amp;#91;" and "&amp;#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 = "&lrm; <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 == "&mdash;" 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