From 9f93a309883f575233172c4022c521dcdc0fd3f2 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Sat, 19 Apr 2025 02:03:58 +0300 Subject: [PATCH 1/6] Update dependencies --- package-lock.json | 34 ++++++++++++++++++++-------------- package.json | 2 +- yarn.lock | 12 +++++++----- 3 files changed, 28 insertions(+), 20 deletions(-) diff --git a/package-lock.json b/package-lock.json index 70798455..0aaca6ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "@eslint/eslintrc": "^3.2.0", "@eslint/js": "^9.17.0", "@freearhey/core": "^0.7.0", + "@freearhey/search-js": "^0.1.2", "@ntlab/sfetch": "^1.2.0", "@octokit/core": "^6.1.3", "@octokit/plugin-paginate-rest": "^11.3.6", @@ -43,7 +44,6 @@ "eslint-config-prettier": "^9.0.0", "form-data": "^4.0.0", "fs-extra": "^10.0.1", - "fuse.js": "^7.0.0", "glob": "^7.2.0", "globals": "^15.14.0", "husky": "^9.1.7", @@ -1179,6 +1179,17 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/@freearhey/search-js": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@freearhey/search-js/-/search-js-0.1.2.tgz", + "integrity": "sha512-F2o+xpGCXOK4OsZfKEHfXNNkAZmny2eBnPOp+P0iyV20ja7gJGfTFaEc6okcuEo6OB6P7LnSxTvISkoArFtlfg==", + "dependencies": { + "lodash": "^4.17.21" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -5359,14 +5370,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/fuse.js": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.0.0.tgz", - "integrity": "sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==", - "engines": { - "node": ">=10" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -10189,6 +10192,14 @@ } } }, + "@freearhey/search-js": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@freearhey/search-js/-/search-js-0.1.2.tgz", + "integrity": "sha512-F2o+xpGCXOK4OsZfKEHfXNNkAZmny2eBnPOp+P0iyV20ja7gJGfTFaEc6okcuEo6OB6P7LnSxTvISkoArFtlfg==", + "requires": { + "lodash": "^4.17.21" + } + }, "@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -13127,11 +13138,6 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, - "fuse.js": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.0.0.tgz", - "integrity": "sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==" - }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", diff --git a/package.json b/package.json index 28a940f6..35a24001 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "@eslint/eslintrc": "^3.2.0", "@eslint/js": "^9.17.0", "@freearhey/core": "^0.7.0", + "@freearhey/search-js": "^0.1.2", "@ntlab/sfetch": "^1.2.0", "@octokit/core": "^6.1.3", "@octokit/plugin-paginate-rest": "^11.3.6", @@ -74,7 +75,6 @@ "eslint-config-prettier": "^9.0.0", "form-data": "^4.0.0", "fs-extra": "^10.0.1", - "fuse.js": "^7.0.0", "glob": "^7.2.0", "globals": "^15.14.0", "husky": "^9.1.7", diff --git a/yarn.lock b/yarn.lock index ef6c4326..c4fd3ef2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -407,6 +407,13 @@ run-script-os "^1.1.6" signale "^1.4.0" +"@freearhey/search-js@^0.1.2": + version "0.1.2" + resolved "https://registry.npmjs.org/@freearhey/search-js/-/search-js-0.1.2.tgz" + integrity sha512-F2o+xpGCXOK4OsZfKEHfXNNkAZmny2eBnPOp+P0iyV20ja7gJGfTFaEc6okcuEo6OB6P7LnSxTvISkoArFtlfg== + dependencies: + lodash "^4.17.21" + "@humanfs/core@^0.19.1": version "0.19.1" resolved "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz" @@ -2887,11 +2894,6 @@ function-bind@^1.1.1: resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -fuse.js@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/fuse.js/-/fuse.js-7.0.0.tgz" - integrity sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q== - gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" From e54dfb404219f893d7b2bf8d7612c1488253ef8d Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Sat, 19 Apr 2025 02:04:20 +0300 Subject: [PATCH 2/6] Update tests/__data__ --- tests/__data__/expected/epg_grab/guide_4.xml | 8 ++++++ tests/__data__/input/__data__/blocklist.json | 1 + tests/__data__/input/__data__/categories.json | 1 + tests/__data__/input/__data__/guides.json | 10 +++++++ tests/__data__/input/__data__/languages.json | 1 + tests/__data__/input/__data__/streams.json | 10 +++++++ tests/__data__/input/__data__/timezones.json | 1 + .../channels_edit/example.com.channels.xml | 2 +- .../example.com/example.com.channels.xml | 7 +++++ .../example.com/example.com.config.js | 28 +++++++++++++++++++ 10 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 tests/__data__/expected/epg_grab/guide_4.xml create mode 100644 tests/__data__/input/__data__/blocklist.json create mode 100644 tests/__data__/input/__data__/categories.json create mode 100644 tests/__data__/input/__data__/guides.json create mode 100644 tests/__data__/input/__data__/languages.json create mode 100644 tests/__data__/input/__data__/streams.json create mode 100644 tests/__data__/input/__data__/timezones.json create mode 100644 tests/__data__/input/epg_grab/example.com/example.com.channels.xml create mode 100644 tests/__data__/input/epg_grab/example.com/example.com.config.js diff --git a/tests/__data__/expected/epg_grab/guide_4.xml b/tests/__data__/expected/epg_grab/guide_4.xml new file mode 100644 index 00000000..5cc5fbaa --- /dev/null +++ b/tests/__data__/expected/epg_grab/guide_4.xml @@ -0,0 +1,8 @@ + +Channel 1https://example.com +Channel 3https://example.com +Programme1 (example.com) +Programme1 (example.com) +Program1 (example.com) +Program1 (example.com) + \ No newline at end of file diff --git a/tests/__data__/input/__data__/blocklist.json b/tests/__data__/input/__data__/blocklist.json new file mode 100644 index 00000000..0637a088 --- /dev/null +++ b/tests/__data__/input/__data__/blocklist.json @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/tests/__data__/input/__data__/categories.json b/tests/__data__/input/__data__/categories.json new file mode 100644 index 00000000..c7feeffd --- /dev/null +++ b/tests/__data__/input/__data__/categories.json @@ -0,0 +1 @@ +[{"id":"auto","name":"Auto"},{"id":"animation","name":"Animation"},{"id":"business","name":"Business"},{"id":"classic","name":"Classic"},{"id":"comedy","name":"Comedy"},{"id":"cooking","name":"Cooking"},{"id":"culture","name":"Culture"},{"id":"documentary","name":"Documentary"},{"id":"education","name":"Education"},{"id":"entertainment","name":"Entertainment"},{"id":"family","name":"Family"},{"id":"general","name":"General"},{"id":"kids","name":"Kids"},{"id":"legislative","name":"Legislative"},{"id":"lifestyle","name":"Lifestyle"},{"id":"movies","name":"Movies"},{"id":"music","name":"Music"},{"id":"news","name":"News"},{"id":"outdoor","name":"Outdoor"},{"id":"relax","name":"Relax"},{"id":"religious","name":"Religious"},{"id":"series","name":"Series"},{"id":"science","name":"Science"},{"id":"shop","name":"Shop"},{"id":"sports","name":"Sports"},{"id":"travel","name":"Travel"},{"id":"weather","name":"Weather"},{"id":"xxx","name":"XXX"}] \ No newline at end of file diff --git a/tests/__data__/input/__data__/guides.json b/tests/__data__/input/__data__/guides.json new file mode 100644 index 00000000..fd21fb22 --- /dev/null +++ b/tests/__data__/input/__data__/guides.json @@ -0,0 +1,10 @@ +[ + { + "channel": "CNNInternational.us", + "feed": "SD", + "site": "9tv.co.il", + "site_id": "#", + "site_name": "CNN (guide)", + "lang": "en" + } +] \ No newline at end of file diff --git a/tests/__data__/input/__data__/languages.json b/tests/__data__/input/__data__/languages.json new file mode 100644 index 00000000..7997d55c --- /dev/null +++ b/tests/__data__/input/__data__/languages.json @@ -0,0 +1 @@ +[{"code":"aaa","name":"Ghotuo"},{"code":"aab","name":"Alumu-Tesu"},{"code":"aac","name":"Ari"},{"code":"aad","name":"Amal"},{"code":"aae","name":"Arbëreshë Albanian"},{"code":"aaf","name":"Aranadan"},{"code":"aag","name":"Ambrak"},{"code":"aah","name":"Abu' Arapesh"},{"code":"aai","name":"Arifama-Miniafia"},{"code":"aak","name":"Ankave"},{"code":"aal","name":"Afade"},{"code":"aan","name":"Anambé"},{"code":"aao","name":"Algerian Saharan Arabic"},{"code":"aap","name":"Pará Arára"},{"code":"aaq","name":"Eastern Abnaki"},{"code":"aar","name":"Afar"},{"code":"aas","name":"Aasáx"},{"code":"aat","name":"Arvanitika Albanian"},{"code":"aau","name":"Abau"},{"code":"aaw","name":"Solong"},{"code":"aax","name":"Mandobo Atas"},{"code":"aaz","name":"Amarasi"},{"code":"aba","name":"Abé"},{"code":"abb","name":"Bankon"},{"code":"abc","name":"Ambala Ayta"},{"code":"abd","name":"Manide"},{"code":"abe","name":"Western Abnaki"},{"code":"abf","name":"Abai Sungai"},{"code":"abg","name":"Abaga"},{"code":"abh","name":"Tajiki Arabic"},{"code":"abi","name":"Abidji"},{"code":"abj","name":"Aka-Bea"},{"code":"abk","name":"Abkhazian"},{"code":"abl","name":"Lampung Nyo"},{"code":"abm","name":"Abanyom"},{"code":"abn","name":"Abua"},{"code":"abo","name":"Abon"},{"code":"abp","name":"Abellen Ayta"},{"code":"abq","name":"Abaza"},{"code":"abr","name":"Abron"},{"code":"abs","name":"Ambonese Malay"},{"code":"abt","name":"Ambulas"},{"code":"abu","name":"Abure"},{"code":"abv","name":"Baharna Arabic"},{"code":"abw","name":"Pal"},{"code":"abx","name":"Inabaknon"},{"code":"aby","name":"Aneme Wake"},{"code":"abz","name":"Abui"},{"code":"aca","name":"Achagua"},{"code":"acb","name":"Áncá"},{"code":"acd","name":"Gikyode"},{"code":"ace","name":"Achinese"},{"code":"acf","name":"Saint Lucian Creole French"},{"code":"ach","name":"Acoli"},{"code":"aci","name":"Aka-Cari"},{"code":"ack","name":"Aka-Kora"},{"code":"acl","name":"Akar-Bale"},{"code":"acm","name":"Mesopotamian Arabic"},{"code":"acn","name":"Achang"},{"code":"acp","name":"Eastern Acipa"},{"code":"acq","name":"Ta'izzi-Adeni Arabic"},{"code":"acr","name":"Achi"},{"code":"acs","name":"Acroá"},{"code":"act","name":"Achterhoeks"},{"code":"acu","name":"Achuar-Shiwiar"},{"code":"acv","name":"Achumawi"},{"code":"acw","name":"Hijazi Arabic"},{"code":"acx","name":"Omani Arabic"},{"code":"acy","name":"Cypriot Arabic"},{"code":"acz","name":"Acheron"},{"code":"ada","name":"Adangme"},{"code":"adb","name":"Atauran"},{"code":"add","name":"Dzodinka"},{"code":"ade","name":"Adele"},{"code":"adf","name":"Dhofari Arabic"},{"code":"adg","name":"Andegerebinha"},{"code":"adh","name":"Adhola"},{"code":"adi","name":"Adi"},{"code":"adj","name":"Adioukrou"},{"code":"adl","name":"Galo"},{"code":"adn","name":"Adang"},{"code":"ado","name":"Abu"},{"code":"adq","name":"Adangbe"},{"code":"adr","name":"Adonara"},{"code":"ads","name":"Adamorobe Sign Language"},{"code":"adt","name":"Adnyamathanha"},{"code":"adu","name":"Aduge"},{"code":"adw","name":"Amundava"},{"code":"adx","name":"Amdo Tibetan"},{"code":"ady","name":"Adygei"},{"code":"adz","name":"Adzera"},{"code":"aea","name":"Areba"},{"code":"aeb","name":"Tunisian Arabic"},{"code":"aec","name":"Saidi Arabic"},{"code":"aed","name":"Argentine Sign Language"},{"code":"aee","name":"Northeast Pashai"},{"code":"aek","name":"Haeke"},{"code":"ael","name":"Ambele"},{"code":"aem","name":"Arem"},{"code":"aen","name":"Armenian Sign Language"},{"code":"aeq","name":"Aer"},{"code":"aer","name":"Eastern Arrernte"},{"code":"aes","name":"Alsea"},{"code":"aeu","name":"Akeu"},{"code":"aew","name":"Ambakich"},{"code":"aey","name":"Amele"},{"code":"aez","name":"Aeka"},{"code":"afb","name":"Gulf Arabic"},{"code":"afd","name":"Andai"},{"code":"afe","name":"Putukwam"},{"code":"afg","name":"Afghan Sign Language"},{"code":"afh","name":"Afrihili"},{"code":"afi","name":"Akrukay"},{"code":"afk","name":"Nanubae"},{"code":"afn","name":"Defaka"},{"code":"afo","name":"Eloyi"},{"code":"afp","name":"Tapei"},{"code":"afr","name":"Afrikaans"},{"code":"afs","name":"Afro-Seminole Creole"},{"code":"aft","name":"Afitti"},{"code":"afu","name":"Awutu"},{"code":"afz","name":"Obokuitai"},{"code":"aga","name":"Aguano"},{"code":"agb","name":"Legbo"},{"code":"agc","name":"Agatu"},{"code":"agd","name":"Agarabi"},{"code":"age","name":"Angal"},{"code":"agf","name":"Arguni"},{"code":"agg","name":"Angor"},{"code":"agh","name":"Ngelima"},{"code":"agi","name":"Agariya"},{"code":"agj","name":"Argobba"},{"code":"agk","name":"Isarog Agta"},{"code":"agl","name":"Fembe"},{"code":"agm","name":"Angaataha"},{"code":"agn","name":"Agutaynen"},{"code":"ago","name":"Tainae"},{"code":"agq","name":"Aghem"},{"code":"agr","name":"Aguaruna"},{"code":"ags","name":"Esimbi"},{"code":"agt","name":"Central Cagayan Agta"},{"code":"agu","name":"Aguacateco"},{"code":"agv","name":"Remontado Dumagat"},{"code":"agw","name":"Kahua"},{"code":"agx","name":"Aghul"},{"code":"agy","name":"Southern Alta"},{"code":"agz","name":"Mt. Iriga Agta"},{"code":"aha","name":"Ahanta"},{"code":"ahb","name":"Axamb"},{"code":"ahg","name":"Qimant"},{"code":"ahh","name":"Aghu"},{"code":"ahi","name":"Tiagbamrin Aizi"},{"code":"ahk","name":"Akha"},{"code":"ahl","name":"Igo"},{"code":"ahm","name":"Mobumrin Aizi"},{"code":"ahn","name":"Àhàn"},{"code":"aho","name":"Ahom"},{"code":"ahp","name":"Aproumu Aizi"},{"code":"ahr","name":"Ahirani"},{"code":"ahs","name":"Ashe"},{"code":"aht","name":"Ahtena"},{"code":"aia","name":"Arosi"},{"code":"aib","name":"Ainu (China)"},{"code":"aic","name":"Ainbai"},{"code":"aid","name":"Alngith"},{"code":"aie","name":"Amara"},{"code":"aif","name":"Agi"},{"code":"aig","name":"Antigua and Barbuda Creole English"},{"code":"aih","name":"Ai-Cham"},{"code":"aii","name":"Assyrian Neo-Aramaic"},{"code":"aij","name":"Lishanid Noshan"},{"code":"aik","name":"Ake"},{"code":"ail","name":"Aimele"},{"code":"aim","name":"Aimol"},{"code":"ain","name":"Ainu (Japan)"},{"code":"aio","name":"Aiton"},{"code":"aip","name":"Burumakok"},{"code":"aiq","name":"Aimaq"},{"code":"air","name":"Airoran"},{"code":"ait","name":"Arikem"},{"code":"aiw","name":"Aari"},{"code":"aix","name":"Aighon"},{"code":"aiy","name":"Ali"},{"code":"aja","name":"Aja (South Sudan)"},{"code":"ajg","name":"Aja (Benin)"},{"code":"aji","name":"Ajië"},{"code":"ajn","name":"Andajin"},{"code":"ajp","name":"South Levantine Arabic"},{"code":"ajt","name":"Judeo-Tunisian Arabic"},{"code":"aju","name":"Judeo-Moroccan Arabic"},{"code":"ajw","name":"Ajawa"},{"code":"ajz","name":"Amri Karbi"},{"code":"aka","name":"Akan"},{"code":"akb","name":"Batak Angkola"},{"code":"akc","name":"Mpur"},{"code":"akd","name":"Ukpet-Ehom"},{"code":"ake","name":"Akawaio"},{"code":"akf","name":"Akpa"},{"code":"akg","name":"Anakalangu"},{"code":"akh","name":"Angal Heneng"},{"code":"aki","name":"Aiome"},{"code":"akj","name":"Aka-Jeru"},{"code":"akk","name":"Akkadian"},{"code":"akl","name":"Aklanon"},{"code":"akm","name":"Aka-Bo"},{"code":"ako","name":"Akurio"},{"code":"akp","name":"Siwu"},{"code":"akq","name":"Ak"},{"code":"akr","name":"Araki"},{"code":"aks","name":"Akaselem"},{"code":"akt","name":"Akolet"},{"code":"aku","name":"Akum"},{"code":"akv","name":"Akhvakh"},{"code":"akw","name":"Akwa"},{"code":"akx","name":"Aka-Kede"},{"code":"aky","name":"Aka-Kol"},{"code":"akz","name":"Alabama"},{"code":"ala","name":"Alago"},{"code":"alc","name":"Qawasqar"},{"code":"ald","name":"Alladian"},{"code":"ale","name":"Aleut"},{"code":"alf","name":"Alege"},{"code":"alh","name":"Alawa"},{"code":"ali","name":"Amaimon"},{"code":"alj","name":"Alangan"},{"code":"alk","name":"Alak"},{"code":"all","name":"Allar"},{"code":"alm","name":"Amblong"},{"code":"aln","name":"Gheg Albanian"},{"code":"alo","name":"Larike-Wakasihu"},{"code":"alp","name":"Alune"},{"code":"alq","name":"Algonquin"},{"code":"alr","name":"Alutor"},{"code":"als","name":"Tosk Albanian"},{"code":"alt","name":"Southern Altai"},{"code":"alu","name":"'Are'are"},{"code":"alw","name":"Alaba-K’abeena"},{"code":"alx","name":"Amol"},{"code":"aly","name":"Alyawarr"},{"code":"alz","name":"Alur"},{"code":"ama","name":"Amanayé"},{"code":"amb","name":"Ambo"},{"code":"amc","name":"Amahuaca"},{"code":"ame","name":"Yanesha'"},{"code":"amf","name":"Hamer-Banna"},{"code":"amg","name":"Amurdak"},{"code":"amh","name":"Amharic"},{"code":"ami","name":"Amis"},{"code":"amj","name":"Amdang"},{"code":"amk","name":"Ambai"},{"code":"aml","name":"War-Jaintia"},{"code":"amm","name":"Ama (Papua New Guinea)"},{"code":"amn","name":"Amanab"},{"code":"amo","name":"Amo"},{"code":"amp","name":"Alamblak"},{"code":"amq","name":"Amahai"},{"code":"amr","name":"Amarakaeri"},{"code":"ams","name":"Southern Amami-Oshima"},{"code":"amt","name":"Amto"},{"code":"amu","name":"Guerrero Amuzgo"},{"code":"amv","name":"Ambelau"},{"code":"amw","name":"Western Neo-Aramaic"},{"code":"amx","name":"Anmatyerre"},{"code":"amy","name":"Ami"},{"code":"amz","name":"Atampaya"},{"code":"ana","name":"Andaqui"},{"code":"anb","name":"Andoa"},{"code":"anc","name":"Ngas"},{"code":"and","name":"Ansus"},{"code":"ane","name":"Xârâcùù"},{"code":"anf","name":"Animere"},{"code":"ang","name":"Old English (ca. 450-1100)"},{"code":"anh","name":"Nend"},{"code":"ani","name":"Andi"},{"code":"anj","name":"Anor"},{"code":"ank","name":"Goemai"},{"code":"anl","name":"Anu-Hkongso Chin"},{"code":"anm","name":"Anal"},{"code":"ann","name":"Obolo"},{"code":"ano","name":"Andoque"},{"code":"anp","name":"Angika"},{"code":"anq","name":"Jarawa (India)"},{"code":"anr","name":"Andh"},{"code":"ans","name":"Anserma"},{"code":"ant","name":"Antakarinya"},{"code":"anu","name":"Anuak"},{"code":"anv","name":"Denya"},{"code":"anw","name":"Anaang"},{"code":"anx","name":"Andra-Hus"},{"code":"any","name":"Anyin"},{"code":"anz","name":"Anem"},{"code":"aoa","name":"Angolar"},{"code":"aob","name":"Abom"},{"code":"aoc","name":"Pemon"},{"code":"aod","name":"Andarum"},{"code":"aoe","name":"Angal Enen"},{"code":"aof","name":"Bragat"},{"code":"aog","name":"Angoram"},{"code":"aoi","name":"Anindilyakwa"},{"code":"aoj","name":"Mufian"},{"code":"aok","name":"Arhö"},{"code":"aol","name":"Alor"},{"code":"aom","name":"Ömie"},{"code":"aon","name":"Bumbita Arapesh"},{"code":"aor","name":"Aore"},{"code":"aos","name":"Taikat"},{"code":"aot","name":"A'tong"},{"code":"aou","name":"A'ou"},{"code":"aox","name":"Atorada"},{"code":"aoz","name":"Uab Meto"},{"code":"apb","name":"Sa'a"},{"code":"apc","name":"North Levantine Arabic"},{"code":"apd","name":"Sudanese Arabic"},{"code":"ape","name":"Bukiyip"},{"code":"apf","name":"Pahanan Agta"},{"code":"apg","name":"Ampanang"},{"code":"aph","name":"Athpariya"},{"code":"api","name":"Apiaká"},{"code":"apj","name":"Jicarilla Apache"},{"code":"apk","name":"Kiowa Apache"},{"code":"apl","name":"Lipan Apache"},{"code":"apm","name":"Mescalero-Chiricahua Apache"},{"code":"apn","name":"Apinayé"},{"code":"apo","name":"Ambul"},{"code":"app","name":"Apma"},{"code":"apq","name":"A-Pucikwar"},{"code":"apr","name":"Arop-Lokep"},{"code":"aps","name":"Arop-Sissano"},{"code":"apt","name":"Apatani"},{"code":"apu","name":"Apurinã"},{"code":"apv","name":"Alapmunte"},{"code":"apw","name":"Western Apache"},{"code":"apx","name":"Aputai"},{"code":"apy","name":"Apalaí"},{"code":"apz","name":"Safeyoka"},{"code":"aqc","name":"Archi"},{"code":"aqd","name":"Ampari Dogon"},{"code":"aqg","name":"Arigidi"},{"code":"aqk","name":"Aninka"},{"code":"aqm","name":"Atohwaim"},{"code":"aqn","name":"Northern Alta"},{"code":"aqp","name":"Atakapa"},{"code":"aqr","name":"Arhâ"},{"code":"aqt","name":"Angaité"},{"code":"aqz","name":"Akuntsu"},{"code":"ara","name":"Arabic"},{"code":"arb","name":"Standard Arabic"},{"code":"arc","name":"Imperial Aramaic (700-300 BCE)"},{"code":"ard","name":"Arabana"},{"code":"are","name":"Western Arrarnta"},{"code":"arg","name":"Aragonese"},{"code":"arh","name":"Arhuaco"},{"code":"ari","name":"Arikara"},{"code":"arj","name":"Arapaso"},{"code":"ark","name":"Arikapú"},{"code":"arl","name":"Arabela"},{"code":"arn","name":"Mapuche"},{"code":"aro","name":"Araona"},{"code":"arp","name":"Arapaho"},{"code":"arq","name":"Algerian Arabic"},{"code":"arr","name":"Karo (Brazil)"},{"code":"ars","name":"Najdi Arabic"},{"code":"aru","name":"Arawá"},{"code":"arv","name":"Arbore"},{"code":"arw","name":"Arawak"},{"code":"arx","name":"Aruá (Rodonia State)"},{"code":"ary","name":"Moroccan Arabic"},{"code":"arz","name":"Egyptian Arabic"},{"code":"asa","name":"Asu (Tanzania)"},{"code":"asb","name":"Assiniboine"},{"code":"asc","name":"Casuarina Coast Asmat"},{"code":"ase","name":"American Sign Language"},{"code":"asf","name":"Auslan"},{"code":"asg","name":"Cishingini"},{"code":"ash","name":"Abishira"},{"code":"asi","name":"Buruwai"},{"code":"asj","name":"Sari"},{"code":"ask","name":"Ashkun"},{"code":"asl","name":"Asilulu"},{"code":"asm","name":"Assamese"},{"code":"asn","name":"Xingú Asuriní"},{"code":"aso","name":"Dano"},{"code":"asp","name":"Algerian Sign Language"},{"code":"asq","name":"Austrian Sign Language"},{"code":"asr","name":"Asuri"},{"code":"ass","name":"Ipulo"},{"code":"ast","name":"Asturian"},{"code":"asu","name":"Tocantins Asurini"},{"code":"asv","name":"Asoa"},{"code":"asw","name":"Australian Aborigines Sign Language"},{"code":"asx","name":"Muratayak"},{"code":"asy","name":"Yaosakor Asmat"},{"code":"asz","name":"As"},{"code":"ata","name":"Pele-Ata"},{"code":"atb","name":"Zaiwa"},{"code":"atc","name":"Atsahuaca"},{"code":"atd","name":"Ata Manobo"},{"code":"ate","name":"Atemble"},{"code":"atg","name":"Ivbie North-Okpela-Arhe"},{"code":"ati","name":"Attié"},{"code":"atj","name":"Atikamekw"},{"code":"atk","name":"Ati"},{"code":"atl","name":"Mt. Iraya Agta"},{"code":"atm","name":"Ata"},{"code":"atn","name":"Ashtiani"},{"code":"ato","name":"Atong (Cameroon)"},{"code":"atp","name":"Pudtol Atta"},{"code":"atq","name":"Aralle-Tabulahan"},{"code":"atr","name":"Waimiri-Atroari"},{"code":"ats","name":"Gros Ventre"},{"code":"att","name":"Pamplona Atta"},{"code":"atu","name":"Reel"},{"code":"atv","name":"Northern Altai"},{"code":"atw","name":"Atsugewi"},{"code":"atx","name":"Arutani"},{"code":"aty","name":"Aneityum"},{"code":"atz","name":"Arta"},{"code":"aua","name":"Asumboa"},{"code":"aub","name":"Alugu"},{"code":"auc","name":"Waorani"},{"code":"aud","name":"Anuta"},{"code":"aug","name":"Aguna"},{"code":"auh","name":"Aushi"},{"code":"aui","name":"Anuki"},{"code":"auj","name":"Awjilah"},{"code":"auk","name":"Heyo"},{"code":"aul","name":"Aulua"},{"code":"aum","name":"Asu (Nigeria)"},{"code":"aun","name":"Molmo One"},{"code":"auo","name":"Auyokawa"},{"code":"aup","name":"Makayam"},{"code":"auq","name":"Anus"},{"code":"aur","name":"Aruek"},{"code":"aut","name":"Austral"},{"code":"auu","name":"Auye"},{"code":"auw","name":"Awyi"},{"code":"aux","name":"Aurá"},{"code":"auy","name":"Awiyaana"},{"code":"auz","name":"Uzbeki Arabic"},{"code":"ava","name":"Avaric"},{"code":"avb","name":"Avau"},{"code":"avd","name":"Alviri-Vidari"},{"code":"ave","name":"Avestan"},{"code":"avi","name":"Avikam"},{"code":"avk","name":"Kotava"},{"code":"avl","name":"Eastern Egyptian Bedawi Arabic"},{"code":"avm","name":"Angkamuthi"},{"code":"avn","name":"Avatime"},{"code":"avo","name":"Agavotaguerra"},{"code":"avs","name":"Aushiri"},{"code":"avt","name":"Au"},{"code":"avu","name":"Avokaya"},{"code":"avv","name":"Avá-Canoeiro"},{"code":"awa","name":"Awadhi"},{"code":"awb","name":"Awa (Papua New Guinea)"},{"code":"awc","name":"Cicipu"},{"code":"awe","name":"Awetí"},{"code":"awg","name":"Anguthimri"},{"code":"awh","name":"Awbono"},{"code":"awi","name":"Aekyom"},{"code":"awk","name":"Awabakal"},{"code":"awm","name":"Arawum"},{"code":"awn","name":"Awngi"},{"code":"awo","name":"Awak"},{"code":"awr","name":"Awera"},{"code":"aws","name":"South Awyu"},{"code":"awt","name":"Araweté"},{"code":"awu","name":"Central Awyu"},{"code":"awv","name":"Jair Awyu"},{"code":"aww","name":"Awun"},{"code":"awx","name":"Awara"},{"code":"awy","name":"Edera Awyu"},{"code":"axb","name":"Abipon"},{"code":"axe","name":"Ayerrerenge"},{"code":"axg","name":"Mato Grosso Arára"},{"code":"axk","name":"Yaka (Central African Republic)"},{"code":"axl","name":"Lower Southern Aranda"},{"code":"axm","name":"Middle Armenian"},{"code":"axx","name":"Xârâgurè"},{"code":"aya","name":"Awar"},{"code":"ayb","name":"Ayizo Gbe"},{"code":"ayc","name":"Southern Aymara"},{"code":"ayd","name":"Ayabadhu"},{"code":"aye","name":"Ayere"},{"code":"ayg","name":"Ginyanga"},{"code":"ayh","name":"Hadrami Arabic"},{"code":"ayi","name":"Leyigha"},{"code":"ayk","name":"Akuku"},{"code":"ayl","name":"Libyan Arabic"},{"code":"aym","name":"Aymara"},{"code":"ayn","name":"Sanaani Arabic"},{"code":"ayo","name":"Ayoreo"},{"code":"ayp","name":"North Mesopotamian Arabic"},{"code":"ayq","name":"Ayi (Papua New Guinea)"},{"code":"ayr","name":"Central Aymara"},{"code":"ays","name":"Sorsogon Ayta"},{"code":"ayt","name":"Magbukun Ayta"},{"code":"ayu","name":"Ayu"},{"code":"ayz","name":"Mai Brat"},{"code":"aza","name":"Azha"},{"code":"azb","name":"South Azerbaijani"},{"code":"azd","name":"Eastern Durango Nahuatl"},{"code":"aze","name":"Azerbaijani"},{"code":"azg","name":"San Pedro Amuzgos Amuzgo"},{"code":"azj","name":"North Azerbaijani"},{"code":"azm","name":"Ipalapa Amuzgo"},{"code":"azn","name":"Western Durango Nahuatl"},{"code":"azo","name":"Awing"},{"code":"azt","name":"Faire Atta"},{"code":"azz","name":"Highland Puebla Nahuatl"},{"code":"baa","name":"Babatana"},{"code":"bab","name":"Bainouk-Gunyuño"},{"code":"bac","name":"Badui"},{"code":"bae","name":"Baré"},{"code":"baf","name":"Nubaca"},{"code":"bag","name":"Tuki"},{"code":"bah","name":"Bahamas Creole English"},{"code":"baj","name":"Barakai"},{"code":"bak","name":"Bashkir"},{"code":"bal","name":"Baluchi"},{"code":"bam","name":"Bambara"},{"code":"ban","name":"Balinese"},{"code":"bao","name":"Waimaha"},{"code":"bap","name":"Bantawa"},{"code":"bar","name":"Bavarian"},{"code":"bas","name":"Basa (Cameroon)"},{"code":"bau","name":"Bada (Nigeria)"},{"code":"bav","name":"Vengo"},{"code":"baw","name":"Bambili-Bambui"},{"code":"bax","name":"Bamun"},{"code":"bay","name":"Batuley"},{"code":"bba","name":"Baatonum"},{"code":"bbb","name":"Barai"},{"code":"bbc","name":"Batak Toba"},{"code":"bbd","name":"Bau"},{"code":"bbe","name":"Bangba"},{"code":"bbf","name":"Baibai"},{"code":"bbg","name":"Barama"},{"code":"bbh","name":"Bugan"},{"code":"bbi","name":"Barombi"},{"code":"bbj","name":"Ghomálá'"},{"code":"bbk","name":"Babanki"},{"code":"bbl","name":"Bats"},{"code":"bbm","name":"Babango"},{"code":"bbn","name":"Uneapa"},{"code":"bbo","name":"Konabéré"},{"code":"bbp","name":"West Central Banda"},{"code":"bbq","name":"Bamali"},{"code":"bbr","name":"Girawa"},{"code":"bbs","name":"Bakpinka"},{"code":"bbt","name":"Mburku"},{"code":"bbu","name":"Kulung (Nigeria)"},{"code":"bbv","name":"Karnai"},{"code":"bbw","name":"Baba"},{"code":"bbx","name":"Bubia"},{"code":"bby","name":"Befang"},{"code":"bca","name":"Central Bai"},{"code":"bcb","name":"Bainouk-Samik"},{"code":"bcc","name":"Southern Balochi"},{"code":"bcd","name":"North Babar"},{"code":"bce","name":"Bamenyam"},{"code":"bcf","name":"Bamu"},{"code":"bcg","name":"Baga Pokur"},{"code":"bch","name":"Bariai"},{"code":"bci","name":"Baoulé"},{"code":"bcj","name":"Bardi"},{"code":"bck","name":"Bunuba"},{"code":"bcl","name":"Central Bikol"},{"code":"bcm","name":"Bannoni"},{"code":"bcn","name":"Bali (Nigeria)"},{"code":"bco","name":"Kaluli"},{"code":"bcp","name":"Bali (Democratic Republic of Congo)"},{"code":"bcq","name":"Bench"},{"code":"bcr","name":"Babine"},{"code":"bcs","name":"Kohumono"},{"code":"bct","name":"Bendi"},{"code":"bcu","name":"Awad Bing"},{"code":"bcv","name":"Shoo-Minda-Nye"},{"code":"bcw","name":"Bana"},{"code":"bcy","name":"Bacama"},{"code":"bcz","name":"Bainouk-Gunyaamolo"},{"code":"bda","name":"Bayot"},{"code":"bdb","name":"Basap"},{"code":"bdc","name":"Emberá-Baudó"},{"code":"bdd","name":"Bunama"},{"code":"bde","name":"Bade"},{"code":"bdf","name":"Biage"},{"code":"bdg","name":"Bonggi"},{"code":"bdh","name":"Baka (South Sudan)"},{"code":"bdi","name":"Burun"},{"code":"bdj","name":"Bai"},{"code":"bdk","name":"Budukh"},{"code":"bdl","name":"Indonesian Bajau"},{"code":"bdm","name":"Buduma"},{"code":"bdn","name":"Baldemu"},{"code":"bdo","name":"Morom"},{"code":"bdp","name":"Bende"},{"code":"bdq","name":"Bahnar"},{"code":"bdr","name":"West Coast Bajau"},{"code":"bds","name":"Burunge"},{"code":"bdt","name":"Bokoto"},{"code":"bdu","name":"Oroko"},{"code":"bdv","name":"Bodo Parja"},{"code":"bdw","name":"Baham"},{"code":"bdx","name":"Budong-Budong"},{"code":"bdy","name":"Bandjalang"},{"code":"bdz","name":"Badeshi"},{"code":"bea","name":"Beaver"},{"code":"beb","name":"Bebele"},{"code":"bec","name":"Iceve-Maci"},{"code":"bed","name":"Bedoanas"},{"code":"bee","name":"Byangsi"},{"code":"bef","name":"Benabena"},{"code":"beg","name":"Belait"},{"code":"beh","name":"Biali"},{"code":"bei","name":"Bekati'"},{"code":"bej","name":"Bedawiyet"},{"code":"bek","name":"Bebeli"},{"code":"bel","name":"Belarusian"},{"code":"bem","name":"Bemba (Zambia)"},{"code":"ben","name":"Bengali"},{"code":"beo","name":"Beami"},{"code":"bep","name":"Besoa"},{"code":"beq","name":"Beembe"},{"code":"bes","name":"Besme"},{"code":"bet","name":"Guiberoua Béte"},{"code":"beu","name":"Blagar"},{"code":"bev","name":"Daloa Bété"},{"code":"bew","name":"Betawi"},{"code":"bex","name":"Jur Modo"},{"code":"bey","name":"Beli (Papua New Guinea)"},{"code":"bez","name":"Bena (Tanzania)"},{"code":"bfa","name":"Bari"},{"code":"bfb","name":"Pauri Bareli"},{"code":"bfc","name":"Northern Bai"},{"code":"bfd","name":"Bafut"},{"code":"bfe","name":"Betaf"},{"code":"bff","name":"Bofi"},{"code":"bfg","name":"Busang Kayan"},{"code":"bfh","name":"Blafe"},{"code":"bfi","name":"British Sign Language"},{"code":"bfj","name":"Bafanji"},{"code":"bfk","name":"Ban Khor Sign Language"},{"code":"bfl","name":"Banda-Ndélé"},{"code":"bfm","name":"Mmen"},{"code":"bfn","name":"Bunak"},{"code":"bfo","name":"Malba Birifor"},{"code":"bfp","name":"Beba"},{"code":"bfq","name":"Badaga"},{"code":"bfr","name":"Bazigar"},{"code":"bfs","name":"Southern Bai"},{"code":"bft","name":"Balti"},{"code":"bfu","name":"Gahri"},{"code":"bfw","name":"Bondo"},{"code":"bfx","name":"Bantayanon"},{"code":"bfy","name":"Bagheli"},{"code":"bfz","name":"Mahasu Pahari"},{"code":"bga","name":"Gwamhi-Wuri"},{"code":"bgb","name":"Bobongko"},{"code":"bgc","name":"Haryanvi"},{"code":"bgd","name":"Rathwi Bareli"},{"code":"bge","name":"Bauria"},{"code":"bgf","name":"Bangandu"},{"code":"bgg","name":"Bugun"},{"code":"bgi","name":"Giangan"},{"code":"bgj","name":"Bangolan"},{"code":"bgk","name":"Bit"},{"code":"bgl","name":"Bo (Laos)"},{"code":"bgn","name":"Western Balochi"},{"code":"bgo","name":"Baga Koga"},{"code":"bgp","name":"Eastern Balochi"},{"code":"bgq","name":"Bagri"},{"code":"bgr","name":"Bawm Chin"},{"code":"bgs","name":"Tagabawa"},{"code":"bgt","name":"Bughotu"},{"code":"bgu","name":"Mbongno"},{"code":"bgv","name":"Warkay-Bipim"},{"code":"bgw","name":"Bhatri"},{"code":"bgx","name":"Balkan Gagauz Turkish"},{"code":"bgy","name":"Benggoi"},{"code":"bgz","name":"Banggai"},{"code":"bha","name":"Bharia"},{"code":"bhb","name":"Bhili"},{"code":"bhc","name":"Biga"},{"code":"bhd","name":"Bhadrawahi"},{"code":"bhe","name":"Bhaya"},{"code":"bhf","name":"Odiai"},{"code":"bhg","name":"Binandere"},{"code":"bhh","name":"Bukharic"},{"code":"bhi","name":"Bhilali"},{"code":"bhj","name":"Bahing"},{"code":"bhl","name":"Bimin"},{"code":"bhm","name":"Bathari"},{"code":"bhn","name":"Bohtan Neo-Aramaic"},{"code":"bho","name":"Bhojpuri"},{"code":"bhp","name":"Bima"},{"code":"bhq","name":"Tukang Besi South"},{"code":"bhr","name":"Bara Malagasy"},{"code":"bhs","name":"Buwal"},{"code":"bht","name":"Bhattiyali"},{"code":"bhu","name":"Bhunjia"},{"code":"bhv","name":"Bahau"},{"code":"bhw","name":"Biak"},{"code":"bhx","name":"Bhalay"},{"code":"bhy","name":"Bhele"},{"code":"bhz","name":"Bada (Indonesia)"},{"code":"bia","name":"Badimaya"},{"code":"bib","name":"Bisa"},{"code":"bid","name":"Bidiyo"},{"code":"bie","name":"Bepour"},{"code":"bif","name":"Biafada"},{"code":"big","name":"Biangai"},{"code":"bik","name":"Bikol"},{"code":"bil","name":"Bile"},{"code":"bim","name":"Bimoba"},{"code":"bin","name":"Bini"},{"code":"bio","name":"Nai"},{"code":"bip","name":"Bila"},{"code":"biq","name":"Bipi"},{"code":"bir","name":"Bisorio"},{"code":"bis","name":"Bislama"},{"code":"bit","name":"Berinomo"},{"code":"biu","name":"Biete"},{"code":"biv","name":"Southern Birifor"},{"code":"biw","name":"Kol (Cameroon)"},{"code":"bix","name":"Bijori"},{"code":"biy","name":"Birhor"},{"code":"biz","name":"Baloi"},{"code":"bja","name":"Budza"},{"code":"bjb","name":"Banggarla"},{"code":"bjc","name":"Bariji"},{"code":"bje","name":"Biao-Jiao Mien"},{"code":"bjf","name":"Barzani Jewish Neo-Aramaic"},{"code":"bjg","name":"Bidyogo"},{"code":"bjh","name":"Bahinemo"},{"code":"bji","name":"Burji"},{"code":"bjj","name":"Kanauji"},{"code":"bjk","name":"Barok"},{"code":"bjl","name":"Bulu (Papua New Guinea)"},{"code":"bjm","name":"Bajelani"},{"code":"bjn","name":"Banjar"},{"code":"bjo","name":"Mid-Southern Banda"},{"code":"bjp","name":"Fanamaket"},{"code":"bjr","name":"Binumarien"},{"code":"bjs","name":"Bajan"},{"code":"bjt","name":"Balanta-Ganja"},{"code":"bju","name":"Busuu"},{"code":"bjv","name":"Bedjond"},{"code":"bjw","name":"Bakwé"},{"code":"bjx","name":"Banao Itneg"},{"code":"bjy","name":"Bayali"},{"code":"bjz","name":"Baruga"},{"code":"bka","name":"Kyak"},{"code":"bkc","name":"Baka (Cameroon)"},{"code":"bkd","name":"Binukid"},{"code":"bkf","name":"Beeke"},{"code":"bkg","name":"Buraka"},{"code":"bkh","name":"Bakoko"},{"code":"bki","name":"Baki"},{"code":"bkj","name":"Pande"},{"code":"bkk","name":"Brokskat"},{"code":"bkl","name":"Berik"},{"code":"bkm","name":"Kom (Cameroon)"},{"code":"bkn","name":"Bukitan"},{"code":"bko","name":"Kwa'"},{"code":"bkp","name":"Boko (Democratic Republic of Congo)"},{"code":"bkq","name":"Bakairí"},{"code":"bkr","name":"Bakumpai"},{"code":"bks","name":"Northern Sorsoganon"},{"code":"bkt","name":"Boloki"},{"code":"bku","name":"Buhid"},{"code":"bkv","name":"Bekwarra"},{"code":"bkw","name":"Bekwel"},{"code":"bkx","name":"Baikeno"},{"code":"bky","name":"Bokyi"},{"code":"bkz","name":"Bungku"},{"code":"bla","name":"Siksika"},{"code":"blb","name":"Bilua"},{"code":"blc","name":"Bella Coola"},{"code":"bld","name":"Bolango"},{"code":"ble","name":"Balanta-Kentohe"},{"code":"blf","name":"Buol"},{"code":"blh","name":"Kuwaa"},{"code":"bli","name":"Bolia"},{"code":"blj","name":"Bolongan"},{"code":"blk","name":"Pa'O"},{"code":"bll","name":"Biloxi"},{"code":"blm","name":"Beli (South Sudan)"},{"code":"bln","name":"Southern Catanduanes Bikol"},{"code":"blo","name":"Anii"},{"code":"blp","name":"Blablanga"},{"code":"blq","name":"Baluan-Pam"},{"code":"blr","name":"Blang"},{"code":"bls","name":"Balaesang"},{"code":"blt","name":"Tai Dam"},{"code":"blv","name":"Bolo"},{"code":"blw","name":"Balangao"},{"code":"blx","name":"Mag-Indi Ayta"},{"code":"bly","name":"Notre"},{"code":"blz","name":"Balantak"},{"code":"bma","name":"Lame"},{"code":"bmb","name":"Bembe"},{"code":"bmc","name":"Biem"},{"code":"bmd","name":"Baga Manduri"},{"code":"bme","name":"Limassa"},{"code":"bmf","name":"Bom-Kim"},{"code":"bmg","name":"Bamwe"},{"code":"bmh","name":"Kein"},{"code":"bmi","name":"Bagirmi"},{"code":"bmj","name":"Bote-Majhi"},{"code":"bmk","name":"Ghayavi"},{"code":"bml","name":"Bomboli"},{"code":"bmm","name":"Northern Betsimisaraka Malagasy"},{"code":"bmn","name":"Bina (Papua New Guinea)"},{"code":"bmo","name":"Bambalang"},{"code":"bmp","name":"Bulgebi"},{"code":"bmq","name":"Bomu"},{"code":"bmr","name":"Muinane"},{"code":"bms","name":"Bilma Kanuri"},{"code":"bmt","name":"Biao Mon"},{"code":"bmu","name":"Somba-Siawari"},{"code":"bmv","name":"Bum"},{"code":"bmw","name":"Bomwali"},{"code":"bmx","name":"Baimak"},{"code":"bmz","name":"Baramu"},{"code":"bna","name":"Bonerate"},{"code":"bnb","name":"Bookan"},{"code":"bnc","name":"Bontok"},{"code":"bnd","name":"Banda (Indonesia)"},{"code":"bne","name":"Bintauna"},{"code":"bnf","name":"Masiwang"},{"code":"bng","name":"Benga"},{"code":"bni","name":"Bangi"},{"code":"bnj","name":"Eastern Tawbuid"},{"code":"bnk","name":"Bierebo"},{"code":"bnl","name":"Boon"},{"code":"bnm","name":"Batanga"},{"code":"bnn","name":"Bunun"},{"code":"bno","name":"Bantoanon"},{"code":"bnp","name":"Bola"},{"code":"bnq","name":"Bantik"},{"code":"bnr","name":"Butmas-Tur"},{"code":"bns","name":"Bundeli"},{"code":"bnu","name":"Bentong"},{"code":"bnv","name":"Beneraf"},{"code":"bnw","name":"Bisis"},{"code":"bnx","name":"Bangubangu"},{"code":"bny","name":"Bintulu"},{"code":"bnz","name":"Beezen"},{"code":"boa","name":"Bora"},{"code":"bob","name":"Aweer"},{"code":"bod","name":"Tibetan"},{"code":"boe","name":"Mundabli"},{"code":"bof","name":"Bolon"},{"code":"bog","name":"Bamako Sign Language"},{"code":"boh","name":"Boma"},{"code":"boi","name":"Barbareño"},{"code":"boj","name":"Anjam"},{"code":"bok","name":"Bonjo"},{"code":"bol","name":"Bole"},{"code":"bom","name":"Berom"},{"code":"bon","name":"Bine"},{"code":"boo","name":"Tiemacèwè Bozo"},{"code":"bop","name":"Bonkiman"},{"code":"boq","name":"Bogaya"},{"code":"bor","name":"Borôro"},{"code":"bos","name":"Bosnian"},{"code":"bot","name":"Bongo"},{"code":"bou","name":"Bondei"},{"code":"bov","name":"Tuwuli"},{"code":"bow","name":"Rema"},{"code":"box","name":"Buamu"},{"code":"boy","name":"Bodo (Central African Republic)"},{"code":"boz","name":"Tiéyaxo Bozo"},{"code":"bpa","name":"Daakaka"},{"code":"bpd","name":"Banda-Banda"},{"code":"bpe","name":"Bauni"},{"code":"bpg","name":"Bonggo"},{"code":"bph","name":"Botlikh"},{"code":"bpi","name":"Bagupi"},{"code":"bpj","name":"Binji"},{"code":"bpk","name":"'Ôrôê"},{"code":"bpl","name":"Broome Pearling Lugger Pidgin"},{"code":"bpm","name":"Biyom"},{"code":"bpn","name":"Dzao Min"},{"code":"bpo","name":"Anasi"},{"code":"bpp","name":"Kaure"},{"code":"bpq","name":"Banda Malay"},{"code":"bpr","name":"Koronadal Blaan"},{"code":"bps","name":"Sarangani Blaan"},{"code":"bpt","name":"Barrow Point"},{"code":"bpu","name":"Bongu"},{"code":"bpv","name":"Bian Marind"},{"code":"bpw","name":"Bo (Papua New Guinea)"},{"code":"bpx","name":"Palya Bareli"},{"code":"bpy","name":"Bishnupriya"},{"code":"bpz","name":"Bilba"},{"code":"bqa","name":"Tchumbuli"},{"code":"bqb","name":"Bagusa"},{"code":"bqc","name":"Boko (Benin)"},{"code":"bqd","name":"Bung"},{"code":"bqf","name":"Baga Kaloum"},{"code":"bqg","name":"Bago-Kusuntu"},{"code":"bqh","name":"Baima"},{"code":"bqi","name":"Bakhtiari"},{"code":"bqj","name":"Bandial"},{"code":"bqk","name":"Banda-Mbrès"},{"code":"bql","name":"Bilakura"},{"code":"bqm","name":"Wumboko"},{"code":"bqn","name":"Bulgarian Sign Language"},{"code":"bqo","name":"Balo"},{"code":"bqp","name":"Busa"},{"code":"bqq","name":"Biritai"},{"code":"bqr","name":"Burusu"},{"code":"bqs","name":"Bosngun"},{"code":"bqt","name":"Bamukumbit"},{"code":"bqu","name":"Boguru"},{"code":"bqv","name":"Begbere-Ejar"},{"code":"bqw","name":"Buru (Nigeria)"},{"code":"bqx","name":"Baangi"},{"code":"bqy","name":"Bengkala Sign Language"},{"code":"bqz","name":"Bakaka"},{"code":"bra","name":"Braj"},{"code":"brb","name":"Lave"},{"code":"brc","name":"Berbice Creole Dutch"},{"code":"brd","name":"Baraamu"},{"code":"bre","name":"Breton"},{"code":"brf","name":"Bira"},{"code":"brg","name":"Baure"},{"code":"brh","name":"Brahui"},{"code":"bri","name":"Mokpwe"},{"code":"brj","name":"Bieria"},{"code":"brk","name":"Birked"},{"code":"brl","name":"Birwa"},{"code":"brm","name":"Barambu"},{"code":"brn","name":"Boruca"},{"code":"bro","name":"Brokkat"},{"code":"brp","name":"Barapasi"},{"code":"brq","name":"Breri"},{"code":"brr","name":"Birao"},{"code":"brs","name":"Baras"},{"code":"brt","name":"Bitare"},{"code":"bru","name":"Eastern Bru"},{"code":"brv","name":"Western Bru"},{"code":"brw","name":"Bellari"},{"code":"brx","name":"Bodo (India)"},{"code":"bry","name":"Burui"},{"code":"brz","name":"Bilbil"},{"code":"bsa","name":"Abinomn"},{"code":"bsb","name":"Brunei Bisaya"},{"code":"bsc","name":"Bassari"},{"code":"bse","name":"Wushi"},{"code":"bsf","name":"Bauchi"},{"code":"bsg","name":"Bashkardi"},{"code":"bsh","name":"Kati"},{"code":"bsi","name":"Bassossi"},{"code":"bsj","name":"Bangwinji"},{"code":"bsk","name":"Burushaski"},{"code":"bsl","name":"Basa-Gumna"},{"code":"bsm","name":"Busami"},{"code":"bsn","name":"Barasana-Eduria"},{"code":"bso","name":"Buso"},{"code":"bsp","name":"Baga Sitemu"},{"code":"bsq","name":"Bassa"},{"code":"bsr","name":"Bassa-Kontagora"},{"code":"bss","name":"Akoose"},{"code":"bst","name":"Basketo"},{"code":"bsu","name":"Bahonsuai"},{"code":"bsv","name":"Baga Sobané"},{"code":"bsw","name":"Baiso"},{"code":"bsx","name":"Yangkam"},{"code":"bsy","name":"Sabah Bisaya"},{"code":"bta","name":"Bata"},{"code":"btc","name":"Bati (Cameroon)"},{"code":"btd","name":"Batak Dairi"},{"code":"bte","name":"Gamo-Ningi"},{"code":"btf","name":"Birgit"},{"code":"btg","name":"Gagnoa Bété"},{"code":"bth","name":"Biatah Bidayuh"},{"code":"bti","name":"Burate"},{"code":"btj","name":"Bacanese Malay"},{"code":"btm","name":"Batak Mandailing"},{"code":"btn","name":"Ratagnon"},{"code":"bto","name":"Rinconada Bikol"},{"code":"btp","name":"Budibud"},{"code":"btq","name":"Batek"},{"code":"btr","name":"Baetora"},{"code":"bts","name":"Batak Simalungun"},{"code":"btt","name":"Bete-Bendi"},{"code":"btu","name":"Batu"},{"code":"btv","name":"Bateri"},{"code":"btw","name":"Butuanon"},{"code":"btx","name":"Batak Karo"},{"code":"bty","name":"Bobot"},{"code":"btz","name":"Batak Alas-Kluet"},{"code":"bua","name":"Buriat"},{"code":"bub","name":"Bua"},{"code":"buc","name":"Bushi"},{"code":"bud","name":"Ntcham"},{"code":"bue","name":"Beothuk"},{"code":"buf","name":"Bushoong"},{"code":"bug","name":"Buginese"},{"code":"buh","name":"Younuo Bunu"},{"code":"bui","name":"Bongili"},{"code":"buj","name":"Basa-Gurmana"},{"code":"buk","name":"Bugawac"},{"code":"bul","name":"Bulgarian"},{"code":"bum","name":"Bulu (Cameroon)"},{"code":"bun","name":"Sherbro"},{"code":"buo","name":"Terei"},{"code":"bup","name":"Busoa"},{"code":"buq","name":"Brem"},{"code":"bus","name":"Bokobaru"},{"code":"but","name":"Bungain"},{"code":"buu","name":"Budu"},{"code":"buv","name":"Bun"},{"code":"buw","name":"Bubi"},{"code":"bux","name":"Boghom"},{"code":"buy","name":"Bullom So"},{"code":"buz","name":"Bukwen"},{"code":"bva","name":"Barein"},{"code":"bvb","name":"Bube"},{"code":"bvc","name":"Baelelea"},{"code":"bvd","name":"Baeggu"},{"code":"bve","name":"Berau Malay"},{"code":"bvf","name":"Boor"},{"code":"bvg","name":"Bonkeng"},{"code":"bvh","name":"Bure"},{"code":"bvi","name":"Belanda Viri"},{"code":"bvj","name":"Baan"},{"code":"bvk","name":"Bukat"},{"code":"bvl","name":"Bolivian Sign Language"},{"code":"bvm","name":"Bamunka"},{"code":"bvn","name":"Buna"},{"code":"bvo","name":"Bolgo"},{"code":"bvp","name":"Bumang"},{"code":"bvq","name":"Birri"},{"code":"bvr","name":"Burarra"},{"code":"bvt","name":"Bati (Indonesia)"},{"code":"bvu","name":"Bukit Malay"},{"code":"bvv","name":"Baniva"},{"code":"bvw","name":"Boga"},{"code":"bvx","name":"Dibole"},{"code":"bvy","name":"Baybayanon"},{"code":"bvz","name":"Bauzi"},{"code":"bwa","name":"Bwatoo"},{"code":"bwb","name":"Namosi-Naitasiri-Serua"},{"code":"bwc","name":"Bwile"},{"code":"bwd","name":"Bwaidoka"},{"code":"bwe","name":"Bwe Karen"},{"code":"bwf","name":"Boselewa"},{"code":"bwg","name":"Barwe"},{"code":"bwh","name":"Bishuo"},{"code":"bwi","name":"Baniwa"},{"code":"bwj","name":"Láá Láá Bwamu"},{"code":"bwk","name":"Bauwaki"},{"code":"bwl","name":"Bwela"},{"code":"bwm","name":"Biwat"},{"code":"bwn","name":"Wunai Bunu"},{"code":"bwo","name":"Borna (Ethiopia)"},{"code":"bwp","name":"Mandobo Bawah"},{"code":"bwq","name":"Southern Bobo Madaré"},{"code":"bwr","name":"Bura-Pabir"},{"code":"bws","name":"Bomboma"},{"code":"bwt","name":"Bafaw-Balong"},{"code":"bwu","name":"Buli (Ghana)"},{"code":"bww","name":"Bwa"},{"code":"bwx","name":"Bu-Nao Bunu"},{"code":"bwy","name":"Cwi Bwamu"},{"code":"bwz","name":"Bwisi"},{"code":"bxa","name":"Tairaha"},{"code":"bxb","name":"Belanda Bor"},{"code":"bxc","name":"Molengue"},{"code":"bxd","name":"Pela"},{"code":"bxe","name":"Birale"},{"code":"bxf","name":"Bilur"},{"code":"bxg","name":"Bangala"},{"code":"bxh","name":"Buhutu"},{"code":"bxi","name":"Pirlatapa"},{"code":"bxj","name":"Bayungu"},{"code":"bxk","name":"Bukusu"},{"code":"bxl","name":"Jalkunan"},{"code":"bxm","name":"Mongolia Buriat"},{"code":"bxn","name":"Burduna"},{"code":"bxo","name":"Barikanchi"},{"code":"bxp","name":"Bebil"},{"code":"bxq","name":"Beele"},{"code":"bxr","name":"Russia Buriat"},{"code":"bxs","name":"Busam"},{"code":"bxu","name":"China Buriat"},{"code":"bxv","name":"Berakou"},{"code":"bxw","name":"Bankagooma"},{"code":"bxz","name":"Binahari"},{"code":"bya","name":"Batak"},{"code":"byb","name":"Bikya"},{"code":"byc","name":"Ubaghara"},{"code":"byd","name":"Benyadu'"},{"code":"bye","name":"Pouye"},{"code":"byf","name":"Bete"},{"code":"byg","name":"Baygo"},{"code":"byh","name":"Bhujel"},{"code":"byi","name":"Buyu"},{"code":"byj","name":"Bina (Nigeria)"},{"code":"byk","name":"Biao"},{"code":"byl","name":"Bayono"},{"code":"bym","name":"Bidjara"},{"code":"byn","name":"Bilin"},{"code":"byo","name":"Biyo"},{"code":"byp","name":"Bumaji"},{"code":"byq","name":"Basay"},{"code":"byr","name":"Baruya"},{"code":"bys","name":"Burak"},{"code":"byt","name":"Berti"},{"code":"byv","name":"Medumba"},{"code":"byw","name":"Belhariya"},{"code":"byx","name":"Qaqet"},{"code":"byz","name":"Banaro"},{"code":"bza","name":"Bandi"},{"code":"bzb","name":"Andio"},{"code":"bzc","name":"Southern Betsimisaraka Malagasy"},{"code":"bzd","name":"Bribri"},{"code":"bze","name":"Jenaama Bozo"},{"code":"bzf","name":"Boikin"},{"code":"bzg","name":"Babuza"},{"code":"bzh","name":"Mapos Buang"},{"code":"bzi","name":"Bisu"},{"code":"bzj","name":"Belize Kriol English"},{"code":"bzk","name":"Nicaragua Creole English"},{"code":"bzl","name":"Boano (Sulawesi)"},{"code":"bzm","name":"Bolondo"},{"code":"bzn","name":"Boano (Maluku)"},{"code":"bzo","name":"Bozaba"},{"code":"bzp","name":"Kemberano"},{"code":"bzq","name":"Buli (Indonesia)"},{"code":"bzr","name":"Biri"},{"code":"bzs","name":"Brazilian Sign Language"},{"code":"bzt","name":"Brithenig"},{"code":"bzu","name":"Burmeso"},{"code":"bzv","name":"Naami"},{"code":"bzw","name":"Basa (Nigeria)"},{"code":"bzx","name":"Kɛlɛngaxo Bozo"},{"code":"bzy","name":"Obanliku"},{"code":"bzz","name":"Evant"},{"code":"caa","name":"Chortí"},{"code":"cab","name":"Garifuna"},{"code":"cac","name":"Chuj"},{"code":"cad","name":"Caddo"},{"code":"cae","name":"Laalaa"},{"code":"caf","name":"Southern Carrier"},{"code":"cag","name":"Nivaclé"},{"code":"cah","name":"Cahuarano"},{"code":"caj","name":"Chané"},{"code":"cak","name":"Cakchiquel"},{"code":"cal","name":"Carolinian"},{"code":"cam","name":"Cemuhî"},{"code":"can","name":"Chambri"},{"code":"cao","name":"Chácobo"},{"code":"cap","name":"Chipaya"},{"code":"caq","name":"Car Nicobarese"},{"code":"car","name":"Galibi Carib"},{"code":"cas","name":"Tsimané"},{"code":"cat","name":"Catalan"},{"code":"cav","name":"Cavineña"},{"code":"caw","name":"Callawalla"},{"code":"cax","name":"Chiquitano"},{"code":"cay","name":"Cayuga"},{"code":"caz","name":"Canichana"},{"code":"cbb","name":"Cabiyarí"},{"code":"cbc","name":"Carapana"},{"code":"cbd","name":"Carijona"},{"code":"cbg","name":"Chimila"},{"code":"cbi","name":"Chachi"},{"code":"cbj","name":"Ede Cabe"},{"code":"cbk","name":"Chavacano"},{"code":"cbl","name":"Bualkhaw Chin"},{"code":"cbn","name":"Nyahkur"},{"code":"cbo","name":"Izora"},{"code":"cbq","name":"Cuba"},{"code":"cbr","name":"Cashibo-Cacataibo"},{"code":"cbs","name":"Cashinahua"},{"code":"cbt","name":"Chayahuita"},{"code":"cbu","name":"Candoshi-Shapra"},{"code":"cbv","name":"Cacua"},{"code":"cbw","name":"Kinabalian"},{"code":"cby","name":"Carabayo"},{"code":"ccc","name":"Chamicuro"},{"code":"ccd","name":"Cafundo Creole"},{"code":"cce","name":"Chopi"},{"code":"ccg","name":"Samba Daka"},{"code":"cch","name":"Atsam"},{"code":"ccj","name":"Kasanga"},{"code":"ccl","name":"Cutchi-Swahili"},{"code":"ccm","name":"Malaccan Creole Malay"},{"code":"cco","name":"Comaltepec Chinantec"},{"code":"ccp","name":"Chakma"},{"code":"ccr","name":"Cacaopera"},{"code":"cda","name":"Choni"},{"code":"cde","name":"Chenchu"},{"code":"cdf","name":"Chiru"},{"code":"cdh","name":"Chambeali"},{"code":"cdi","name":"Chodri"},{"code":"cdj","name":"Churahi"},{"code":"cdm","name":"Chepang"},{"code":"cdn","name":"Chaudangsi"},{"code":"cdo","name":"Min Dong Chinese"},{"code":"cdr","name":"Cinda-Regi-Tiyal"},{"code":"cds","name":"Chadian Sign Language"},{"code":"cdy","name":"Chadong"},{"code":"cdz","name":"Koda"},{"code":"cea","name":"Lower Chehalis"},{"code":"ceb","name":"Cebuano"},{"code":"ceg","name":"Chamacoco"},{"code":"cek","name":"Eastern Khumi Chin"},{"code":"cen","name":"Cen"},{"code":"ces","name":"Czech"},{"code":"cet","name":"Centúúm"},{"code":"cey","name":"Ekai Chin"},{"code":"cfa","name":"Dijim-Bwilim"},{"code":"cfd","name":"Cara"},{"code":"cfg","name":"Como Karim"},{"code":"cfm","name":"Falam Chin"},{"code":"cga","name":"Changriwa"},{"code":"cgc","name":"Kagayanen"},{"code":"cgg","name":"Chiga"},{"code":"cgk","name":"Chocangacakha"},{"code":"cha","name":"Chamorro"},{"code":"chb","name":"Chibcha"},{"code":"chc","name":"Catawba"},{"code":"chd","name":"Highland Oaxaca Chontal"},{"code":"che","name":"Chechen"},{"code":"chf","name":"Tabasco Chontal"},{"code":"chg","name":"Chagatai"},{"code":"chh","name":"Chinook"},{"code":"chj","name":"Ojitlán Chinantec"},{"code":"chk","name":"Chuukese"},{"code":"chl","name":"Cahuilla"},{"code":"chm","name":"Mari (Russia)"},{"code":"chn","name":"Chinook jargon"},{"code":"cho","name":"Choctaw"},{"code":"chp","name":"Chipewyan"},{"code":"chq","name":"Quiotepec Chinantec"},{"code":"chr","name":"Cherokee"},{"code":"cht","name":"Cholón"},{"code":"chu","name":"Church Slavic"},{"code":"chv","name":"Chuvash"},{"code":"chw","name":"Chuwabu"},{"code":"chx","name":"Chantyal"},{"code":"chy","name":"Cheyenne"},{"code":"chz","name":"Ozumacín Chinantec"},{"code":"cia","name":"Cia-Cia"},{"code":"cib","name":"Ci Gbe"},{"code":"cic","name":"Chickasaw"},{"code":"cid","name":"Chimariko"},{"code":"cie","name":"Cineni"},{"code":"cih","name":"Chinali"},{"code":"cik","name":"Chitkuli Kinnauri"},{"code":"cim","name":"Cimbrian"},{"code":"cin","name":"Cinta Larga"},{"code":"cip","name":"Chiapanec"},{"code":"cir","name":"Haméa"},{"code":"ciw","name":"Chippewa"},{"code":"ciy","name":"Chaima"},{"code":"cja","name":"Western Cham"},{"code":"cje","name":"Chru"},{"code":"cjh","name":"Upper Chehalis"},{"code":"cji","name":"Chamalal"},{"code":"cjk","name":"Chokwe"},{"code":"cjm","name":"Eastern Cham"},{"code":"cjn","name":"Chenapian"},{"code":"cjo","name":"Ashéninka Pajonal"},{"code":"cjp","name":"Cabécar"},{"code":"cjs","name":"Shor"},{"code":"cjv","name":"Chuave"},{"code":"cjy","name":"Jinyu Chinese"},{"code":"ckb","name":"Central Kurdish"},{"code":"ckh","name":"Chak"},{"code":"ckl","name":"Cibak"},{"code":"ckm","name":"Chakavian"},{"code":"ckn","name":"Kaang Chin"},{"code":"cko","name":"Anufo"},{"code":"ckq","name":"Kajakse"},{"code":"ckr","name":"Kairak"},{"code":"cks","name":"Tayo"},{"code":"ckt","name":"Chukot"},{"code":"cku","name":"Koasati"},{"code":"ckv","name":"Kavalan"},{"code":"ckx","name":"Caka"},{"code":"cky","name":"Cakfem-Mushere"},{"code":"ckz","name":"Cakchiquel-Quiché Mixed Language"},{"code":"cla","name":"Ron"},{"code":"clc","name":"Chilcotin"},{"code":"cld","name":"Chaldean Neo-Aramaic"},{"code":"cle","name":"Lealao Chinantec"},{"code":"clh","name":"Chilisso"},{"code":"cli","name":"Chakali"},{"code":"clj","name":"Laitu Chin"},{"code":"clk","name":"Idu-Mishmi"},{"code":"cll","name":"Chala"},{"code":"clm","name":"Clallam"},{"code":"clo","name":"Lowland Oaxaca Chontal"},{"code":"clt","name":"Lautu Chin"},{"code":"clu","name":"Caluyanun"},{"code":"clw","name":"Chulym"},{"code":"cly","name":"Eastern Highland Chatino"},{"code":"cma","name":"Maa"},{"code":"cme","name":"Cerma"},{"code":"cmg","name":"Classical Mongolian"},{"code":"cmi","name":"Emberá-Chamí"},{"code":"cml","name":"Campalagian"},{"code":"cmm","name":"Michigamea"},{"code":"cmn","name":"Mandarin Chinese"},{"code":"cmo","name":"Central Mnong"},{"code":"cmr","name":"Mro-Khimi Chin"},{"code":"cms","name":"Messapic"},{"code":"cmt","name":"Camtho"},{"code":"cna","name":"Changthang"},{"code":"cnb","name":"Chinbon Chin"},{"code":"cnc","name":"Côông"},{"code":"cng","name":"Northern Qiang"},{"code":"cnh","name":"Haka Chin"},{"code":"cni","name":"Asháninka"},{"code":"cnk","name":"Khumi Chin"},{"code":"cnl","name":"Lalana Chinantec"},{"code":"cno","name":"Con"},{"code":"cnp","name":"Northern Ping Chinese"},{"code":"cnr","name":"Montenegrin"},{"code":"cns","name":"Central Asmat"},{"code":"cnt","name":"Tepetotutla Chinantec"},{"code":"cnu","name":"Chenoua"},{"code":"cnw","name":"Ngawn Chin"},{"code":"cnx","name":"Middle Cornish"},{"code":"coa","name":"Cocos Islands Malay"},{"code":"cob","name":"Chicomuceltec"},{"code":"coc","name":"Cocopa"},{"code":"cod","name":"Cocama-Cocamilla"},{"code":"coe","name":"Koreguaje"},{"code":"cof","name":"Colorado"},{"code":"cog","name":"Chong"},{"code":"coh","name":"Chichonyi-Chidzihana-Chikauma"},{"code":"coj","name":"Cochimi"},{"code":"cok","name":"Santa Teresa Cora"},{"code":"col","name":"Columbia-Wenatchi"},{"code":"com","name":"Comanche"},{"code":"con","name":"Cofán"},{"code":"coo","name":"Comox"},{"code":"cop","name":"Coptic"},{"code":"coq","name":"Coquille"},{"code":"cor","name":"Cornish"},{"code":"cos","name":"Corsican"},{"code":"cot","name":"Caquinte"},{"code":"cou","name":"Wamey"},{"code":"cov","name":"Cao Miao"},{"code":"cow","name":"Cowlitz"},{"code":"cox","name":"Nanti"},{"code":"coz","name":"Chochotec"},{"code":"cpa","name":"Palantla Chinantec"},{"code":"cpb","name":"Ucayali-Yurúa Ashéninka"},{"code":"cpc","name":"Ajyíninka Apurucayali"},{"code":"cpg","name":"Cappadocian Greek"},{"code":"cpi","name":"Chinese Pidgin English"},{"code":"cpn","name":"Cherepon"},{"code":"cpo","name":"Kpeego"},{"code":"cps","name":"Capiznon"},{"code":"cpu","name":"Pichis Ashéninka"},{"code":"cpx","name":"Pu-Xian Chinese"},{"code":"cpy","name":"South Ucayali Ashéninka"},{"code":"cqd","name":"Chuanqiandian Cluster Miao"},{"code":"cra","name":"Chara"},{"code":"crb","name":"Island Carib"},{"code":"crc","name":"Lonwolwol"},{"code":"crd","name":"Coeur d'Alene"},{"code":"cre","name":"Cree"},{"code":"crf","name":"Caramanta"},{"code":"crg","name":"Michif"},{"code":"crh","name":"Crimean Tatar"},{"code":"cri","name":"Sãotomense"},{"code":"crj","name":"Southern East Cree"},{"code":"crk","name":"Plains Cree"},{"code":"crl","name":"Northern East Cree"},{"code":"crm","name":"Moose Cree"},{"code":"crn","name":"El Nayar Cora"},{"code":"cro","name":"Crow"},{"code":"crq","name":"Iyo'wujwa Chorote"},{"code":"crr","name":"Carolina Algonquian"},{"code":"crs","name":"Seselwa Creole French"},{"code":"crt","name":"Iyojwa'ja Chorote"},{"code":"crv","name":"Chaura"},{"code":"crw","name":"Chrau"},{"code":"crx","name":"Carrier"},{"code":"cry","name":"Cori"},{"code":"crz","name":"Cruzeño"},{"code":"csa","name":"Chiltepec Chinantec"},{"code":"csb","name":"Kashubian"},{"code":"csc","name":"Catalan Sign Language"},{"code":"csd","name":"Chiangmai Sign Language"},{"code":"cse","name":"Czech Sign Language"},{"code":"csf","name":"Cuba Sign Language"},{"code":"csg","name":"Chilean Sign Language"},{"code":"csh","name":"Asho Chin"},{"code":"csi","name":"Coast Miwok"},{"code":"csj","name":"Songlai Chin"},{"code":"csk","name":"Jola-Kasa"},{"code":"csl","name":"Chinese Sign Language"},{"code":"csm","name":"Central Sierra Miwok"},{"code":"csn","name":"Colombian Sign Language"},{"code":"cso","name":"Sochiapam Chinantec"},{"code":"csp","name":"Southern Ping Chinese"},{"code":"csq","name":"Croatia Sign Language"},{"code":"csr","name":"Costa Rican Sign Language"},{"code":"css","name":"Southern Ohlone"},{"code":"cst","name":"Northern Ohlone"},{"code":"csv","name":"Sumtu Chin"},{"code":"csw","name":"Swampy Cree"},{"code":"csx","name":"Cambodian Sign Language"},{"code":"csy","name":"Siyin Chin"},{"code":"csz","name":"Coos"},{"code":"cta","name":"Tataltepec Chatino"},{"code":"ctc","name":"Chetco"},{"code":"ctd","name":"Tedim Chin"},{"code":"cte","name":"Tepinapa Chinantec"},{"code":"ctg","name":"Chittagonian"},{"code":"cth","name":"Thaiphum Chin"},{"code":"ctl","name":"Tlacoatzintepec Chinantec"},{"code":"ctm","name":"Chitimacha"},{"code":"ctn","name":"Chhintange"},{"code":"cto","name":"Emberá-Catío"},{"code":"ctp","name":"Western Highland Chatino"},{"code":"cts","name":"Northern Catanduanes Bikol"},{"code":"ctt","name":"Wayanad Chetti"},{"code":"ctu","name":"Chol"},{"code":"cty","name":"Moundadan Chetty"},{"code":"ctz","name":"Zacatepec Chatino"},{"code":"cua","name":"Cua"},{"code":"cub","name":"Cubeo"},{"code":"cuc","name":"Usila Chinantec"},{"code":"cug","name":"Chungmboko"},{"code":"cuh","name":"Chuka"},{"code":"cui","name":"Cuiba"},{"code":"cuj","name":"Mashco Piro"},{"code":"cuk","name":"San Blas Kuna"},{"code":"cul","name":"Culina"},{"code":"cuo","name":"Cumanagoto"},{"code":"cup","name":"Cupeño"},{"code":"cuq","name":"Cun"},{"code":"cur","name":"Chhulung"},{"code":"cut","name":"Teutila Cuicatec"},{"code":"cuu","name":"Tai Ya"},{"code":"cuv","name":"Cuvok"},{"code":"cuw","name":"Chukwa"},{"code":"cux","name":"Tepeuxila Cuicatec"},{"code":"cuy","name":"Cuitlatec"},{"code":"cvg","name":"Chug"},{"code":"cvn","name":"Valle Nacional Chinantec"},{"code":"cwa","name":"Kabwa"},{"code":"cwb","name":"Maindo"},{"code":"cwd","name":"Woods Cree"},{"code":"cwe","name":"Kwere"},{"code":"cwg","name":"Cheq Wong"},{"code":"cwt","name":"Kuwaataay"},{"code":"cya","name":"Nopala Chatino"},{"code":"cyb","name":"Cayubaba"},{"code":"cym","name":"Welsh"},{"code":"cyo","name":"Cuyonon"},{"code":"czh","name":"Huizhou Chinese"},{"code":"czk","name":"Knaanic"},{"code":"czn","name":"Zenzontepec Chatino"},{"code":"czo","name":"Min Zhong Chinese"},{"code":"czt","name":"Zotung Chin"},{"code":"daa","name":"Dangaléat"},{"code":"dac","name":"Dambi"},{"code":"dad","name":"Marik"},{"code":"dae","name":"Duupa"},{"code":"dag","name":"Dagbani"},{"code":"dah","name":"Gwahatike"},{"code":"dai","name":"Day"},{"code":"daj","name":"Dar Fur Daju"},{"code":"dak","name":"Dakota"},{"code":"dal","name":"Dahalo"},{"code":"dam","name":"Damakawa"},{"code":"dan","name":"Danish"},{"code":"dao","name":"Daai Chin"},{"code":"daq","name":"Dandami Maria"},{"code":"dar","name":"Dargwa"},{"code":"das","name":"Daho-Doo"},{"code":"dau","name":"Dar Sila Daju"},{"code":"dav","name":"Dawida"},{"code":"daw","name":"Davawenyo"},{"code":"dax","name":"Dayi"},{"code":"daz","name":"Dao"},{"code":"dba","name":"Bangime"},{"code":"dbb","name":"Deno"},{"code":"dbd","name":"Dadiya"},{"code":"dbe","name":"Dabe"},{"code":"dbf","name":"Edopi"},{"code":"dbg","name":"Dogul Dom Dogon"},{"code":"dbi","name":"Doka"},{"code":"dbj","name":"Ida'an"},{"code":"dbl","name":"Dyirbal"},{"code":"dbm","name":"Duguri"},{"code":"dbn","name":"Duriankere"},{"code":"dbo","name":"Dulbu"},{"code":"dbp","name":"Duwai"},{"code":"dbq","name":"Daba"},{"code":"dbr","name":"Dabarre"},{"code":"dbt","name":"Ben Tey Dogon"},{"code":"dbu","name":"Bondum Dom Dogon"},{"code":"dbv","name":"Dungu"},{"code":"dbw","name":"Bankan Tey Dogon"},{"code":"dby","name":"Dibiyaso"},{"code":"dcc","name":"Deccan"},{"code":"dcr","name":"Negerhollands"},{"code":"dda","name":"Dadi Dadi"},{"code":"ddd","name":"Dongotono"},{"code":"dde","name":"Doondo"},{"code":"ddg","name":"Fataluku"},{"code":"ddi","name":"West Goodenough"},{"code":"ddj","name":"Jaru"},{"code":"ddn","name":"Dendi (Benin)"},{"code":"ddo","name":"Dido"},{"code":"ddr","name":"Dhudhuroa"},{"code":"dds","name":"Donno So Dogon"},{"code":"ddw","name":"Dawera-Daweloor"},{"code":"dec","name":"Dagik"},{"code":"ded","name":"Dedua"},{"code":"dee","name":"Dewoin"},{"code":"def","name":"Dezfuli"},{"code":"deg","name":"Degema"},{"code":"deh","name":"Dehwari"},{"code":"dei","name":"Demisa"},{"code":"dek","name":"Dek"},{"code":"del","name":"Delaware"},{"code":"dem","name":"Dem"},{"code":"den","name":"Slave (Athapascan)"},{"code":"dep","name":"Pidgin Delaware"},{"code":"deq","name":"Dendi (Central African Republic)"},{"code":"der","name":"Deori"},{"code":"des","name":"Desano"},{"code":"deu","name":"German"},{"code":"dev","name":"Domung"},{"code":"dez","name":"Dengese"},{"code":"dga","name":"Southern Dagaare"},{"code":"dgb","name":"Bunoge Dogon"},{"code":"dgc","name":"Casiguran Dumagat Agta"},{"code":"dgd","name":"Dagaari Dioula"},{"code":"dge","name":"Degenan"},{"code":"dgg","name":"Doga"},{"code":"dgh","name":"Dghwede"},{"code":"dgi","name":"Northern Dagara"},{"code":"dgk","name":"Dagba"},{"code":"dgl","name":"Andaandi"},{"code":"dgn","name":"Dagoman"},{"code":"dgo","name":"Dogri (individual language)"},{"code":"dgr","name":"Dogrib"},{"code":"dgs","name":"Dogoso"},{"code":"dgt","name":"Ndra'ngith"},{"code":"dgw","name":"Daungwurrung"},{"code":"dgx","name":"Doghoro"},{"code":"dgz","name":"Daga"},{"code":"dhd","name":"Dhundari"},{"code":"dhg","name":"Dhangu"},{"code":"dhi","name":"Dhimal"},{"code":"dhl","name":"Dhalandji"},{"code":"dhm","name":"Zemba"},{"code":"dhn","name":"Dhanki"},{"code":"dho","name":"Dhodia"},{"code":"dhr","name":"Dhargari"},{"code":"dhs","name":"Dhaiso"},{"code":"dhu","name":"Dhurga"},{"code":"dhv","name":"Dehu"},{"code":"dhw","name":"Dhanwar (Nepal)"},{"code":"dhx","name":"Dhungaloo"},{"code":"dia","name":"Dia"},{"code":"dib","name":"South Central Dinka"},{"code":"dic","name":"Lakota Dida"},{"code":"did","name":"Didinga"},{"code":"dif","name":"Dieri"},{"code":"dig","name":"Chidigo"},{"code":"dih","name":"Kumiai"},{"code":"dii","name":"Dimbong"},{"code":"dij","name":"Dai"},{"code":"dik","name":"Southwestern Dinka"},{"code":"dil","name":"Dilling"},{"code":"dim","name":"Dime"},{"code":"din","name":"Dinka"},{"code":"dio","name":"Dibo"},{"code":"dip","name":"Northeastern Dinka"},{"code":"diq","name":"Dimli (individual language)"},{"code":"dir","name":"Dirim"},{"code":"dis","name":"Dimasa"},{"code":"diu","name":"Diriku"},{"code":"div","name":"Dhivehi"},{"code":"diw","name":"Northwestern Dinka"},{"code":"dix","name":"Dixon Reef"},{"code":"diy","name":"Diuwe"},{"code":"diz","name":"Ding"},{"code":"dja","name":"Djadjawurrung"},{"code":"djb","name":"Djinba"},{"code":"djc","name":"Dar Daju Daju"},{"code":"djd","name":"Djamindjung"},{"code":"dje","name":"Zarma"},{"code":"djf","name":"Djangun"},{"code":"dji","name":"Djinang"},{"code":"djj","name":"Djeebbana"},{"code":"djk","name":"Businenge Tongo"},{"code":"djm","name":"Jamsay Dogon"},{"code":"djn","name":"Djauan"},{"code":"djo","name":"Jangkang"},{"code":"djr","name":"Djambarrpuyngu"},{"code":"dju","name":"Kapriman"},{"code":"djw","name":"Djawi"},{"code":"dka","name":"Dakpakha"},{"code":"dkg","name":"Kadung"},{"code":"dkk","name":"Dakka"},{"code":"dkr","name":"Kuijau"},{"code":"dks","name":"Southeastern Dinka"},{"code":"dkx","name":"Mazagway"},{"code":"dlg","name":"Dolgan"},{"code":"dlk","name":"Dahalik"},{"code":"dlm","name":"Dalmatian"},{"code":"dln","name":"Darlong"},{"code":"dma","name":"Duma"},{"code":"dmb","name":"Mombo Dogon"},{"code":"dmc","name":"Gavak"},{"code":"dmd","name":"Madhi Madhi"},{"code":"dme","name":"Dugwor"},{"code":"dmf","name":"Medefaidrin"},{"code":"dmg","name":"Upper Kinabatangan"},{"code":"dmk","name":"Domaaki"},{"code":"dml","name":"Dameli"},{"code":"dmm","name":"Dama"},{"code":"dmo","name":"Kemedzung"},{"code":"dmr","name":"East Damar"},{"code":"dms","name":"Dampelas"},{"code":"dmu","name":"Dubu"},{"code":"dmv","name":"Dumpas"},{"code":"dmw","name":"Mudburra"},{"code":"dmx","name":"Dema"},{"code":"dmy","name":"Demta"},{"code":"dna","name":"Upper Grand Valley Dani"},{"code":"dnd","name":"Daonda"},{"code":"dne","name":"Ndendeule"},{"code":"dng","name":"Dungan"},{"code":"dni","name":"Lower Grand Valley Dani"},{"code":"dnj","name":"Dan"},{"code":"dnk","name":"Dengka"},{"code":"dnn","name":"Dzùùngoo"},{"code":"dno","name":"Ndrulo"},{"code":"dnr","name":"Danaru"},{"code":"dnt","name":"Mid Grand Valley Dani"},{"code":"dnu","name":"Danau"},{"code":"dnv","name":"Danu"},{"code":"dnw","name":"Western Dani"},{"code":"dny","name":"Dení"},{"code":"doa","name":"Dom"},{"code":"dob","name":"Dobu"},{"code":"doc","name":"Northern Dong"},{"code":"doe","name":"Doe"},{"code":"dof","name":"Domu"},{"code":"doh","name":"Dong"},{"code":"doi","name":"Dogri (macrolanguage)"},{"code":"dok","name":"Dondo"},{"code":"dol","name":"Doso"},{"code":"don","name":"Toura (Papua New Guinea)"},{"code":"doo","name":"Dongo"},{"code":"dop","name":"Lukpa"},{"code":"doq","name":"Dominican Sign Language"},{"code":"dor","name":"Dori'o"},{"code":"dos","name":"Dogosé"},{"code":"dot","name":"Dass"},{"code":"dov","name":"Dombe"},{"code":"dow","name":"Doyayo"},{"code":"dox","name":"Bussa"},{"code":"doy","name":"Dompo"},{"code":"doz","name":"Dorze"},{"code":"dpp","name":"Papar"},{"code":"drb","name":"Dair"},{"code":"drc","name":"Minderico"},{"code":"drd","name":"Darmiya"},{"code":"dre","name":"Dolpo"},{"code":"drg","name":"Rungus"},{"code":"dri","name":"C'Lela"},{"code":"drl","name":"Paakantyi"},{"code":"drn","name":"West Damar"},{"code":"dro","name":"Daro-Matu Melanau"},{"code":"drq","name":"Dura"},{"code":"drs","name":"Gedeo"},{"code":"drt","name":"Drents"},{"code":"dru","name":"Rukai"},{"code":"dry","name":"Darai"},{"code":"dsb","name":"Lower Sorbian"},{"code":"dse","name":"Dutch Sign Language"},{"code":"dsh","name":"Daasanach"},{"code":"dsi","name":"Disa"},{"code":"dsl","name":"Danish Sign Language"},{"code":"dsn","name":"Dusner"},{"code":"dso","name":"Desiya"},{"code":"dsq","name":"Tadaksahak"},{"code":"dta","name":"Daur"},{"code":"dtb","name":"Labuk-Kinabatangan Kadazan"},{"code":"dtd","name":"Ditidaht"},{"code":"dth","name":"Adithinngithigh"},{"code":"dti","name":"Ana Tinga Dogon"},{"code":"dtk","name":"Tene Kan Dogon"},{"code":"dtm","name":"Tomo Kan Dogon"},{"code":"dtn","name":"Daatsʼíin"},{"code":"dto","name":"Tommo So Dogon"},{"code":"dtp","name":"Central Dusun"},{"code":"dtr","name":"Lotud"},{"code":"dts","name":"Toro So Dogon"},{"code":"dtt","name":"Toro Tegu Dogon"},{"code":"dtu","name":"Tebul Ure Dogon"},{"code":"dty","name":"Dotyali"},{"code":"dua","name":"Duala"},{"code":"dub","name":"Dubli"},{"code":"duc","name":"Duna"},{"code":"due","name":"Umiray Dumaget Agta"},{"code":"duf","name":"Drubea"},{"code":"dug","name":"Chiduruma"},{"code":"duh","name":"Dungra Bhil"},{"code":"dui","name":"Dumun"},{"code":"duk","name":"Uyajitaya"},{"code":"dul","name":"Alabat Island Agta"},{"code":"dum","name":"Middle Dutch (ca. 1050-1350)"},{"code":"dun","name":"Dusun Deyah"},{"code":"duo","name":"Dupaninan Agta"},{"code":"dup","name":"Duano"},{"code":"duq","name":"Dusun Malang"},{"code":"dur","name":"Dii"},{"code":"dus","name":"Dumi"},{"code":"duu","name":"Drung"},{"code":"duv","name":"Duvle"},{"code":"duw","name":"Dusun Witu"},{"code":"dux","name":"Duungooma"},{"code":"duy","name":"Dicamay Agta"},{"code":"duz","name":"Duli-Gey"},{"code":"dva","name":"Duau"},{"code":"dwa","name":"Diri"},{"code":"dwk","name":"Dawik Kui"},{"code":"dwr","name":"Dawro"},{"code":"dws","name":"Dutton World Speedwords"},{"code":"dwu","name":"Dhuwal"},{"code":"dww","name":"Dawawa"},{"code":"dwy","name":"Dhuwaya"},{"code":"dwz","name":"Dewas Rai"},{"code":"dya","name":"Dyan"},{"code":"dyb","name":"Dyaberdyaber"},{"code":"dyd","name":"Dyugun"},{"code":"dyg","name":"Villa Viciosa Agta"},{"code":"dyi","name":"Djimini Senoufo"},{"code":"dym","name":"Yanda Dom Dogon"},{"code":"dyn","name":"Dhanggatti"},{"code":"dyo","name":"Jola-Fonyi"},{"code":"dyu","name":"Dyula"},{"code":"dyy","name":"Djabugay"},{"code":"dza","name":"Tunzu"},{"code":"dze","name":"Djiwarli"},{"code":"dzg","name":"Dazaga"},{"code":"dzl","name":"Dzalakha"},{"code":"dzn","name":"Dzando"},{"code":"dzo","name":"Dzongkha"},{"code":"eaa","name":"Karenggapa"},{"code":"ebc","name":"Beginci"},{"code":"ebg","name":"Ebughu"},{"code":"ebk","name":"Eastern Bontok"},{"code":"ebo","name":"Teke-Ebo"},{"code":"ebr","name":"Ebrié"},{"code":"ebu","name":"Embu"},{"code":"ecr","name":"Eteocretan"},{"code":"ecs","name":"Ecuadorian Sign Language"},{"code":"ecy","name":"Eteocypriot"},{"code":"eee","name":"E"},{"code":"efa","name":"Efai"},{"code":"efe","name":"Efe"},{"code":"efi","name":"Efik"},{"code":"ega","name":"Ega"},{"code":"egl","name":"Emilian"},{"code":"ego","name":"Eggon"},{"code":"egy","name":"Egyptian (Ancient)"},{"code":"ehs","name":"Miyakubo Sign Language"},{"code":"ehu","name":"Ehueun"},{"code":"eip","name":"Eipomek"},{"code":"eit","name":"Eitiep"},{"code":"eiv","name":"Askopan"},{"code":"eja","name":"Ejamat"},{"code":"eka","name":"Ekajuk"},{"code":"eke","name":"Ekit"},{"code":"ekg","name":"Ekari"},{"code":"eki","name":"Eki"},{"code":"ekk","name":"Standard Estonian"},{"code":"ekl","name":"Kol"},{"code":"ekm","name":"Elip"},{"code":"eko","name":"Koti"},{"code":"ekp","name":"Ekpeye"},{"code":"ekr","name":"Yace"},{"code":"eky","name":"Eastern Kayah"},{"code":"ele","name":"Elepi"},{"code":"elh","name":"El Hugeirat"},{"code":"eli","name":"Nding"},{"code":"elk","name":"Elkei"},{"code":"ell","name":"Greek"},{"code":"elm","name":"Eleme"},{"code":"elo","name":"El Molo"},{"code":"elu","name":"Elu"},{"code":"elx","name":"Elamite"},{"code":"ema","name":"Emai-Iuleha-Ora"},{"code":"emb","name":"Embaloh"},{"code":"eme","name":"Emerillon"},{"code":"emg","name":"Eastern Meohang"},{"code":"emi","name":"Mussau-Emira"},{"code":"emk","name":"Eastern Maninkakan"},{"code":"emm","name":"Mamulique"},{"code":"emn","name":"Eman"},{"code":"emp","name":"Northern Emberá"},{"code":"emq","name":"Eastern Minyag"},{"code":"ems","name":"Pacific Gulf Yupik"},{"code":"emu","name":"Eastern Muria"},{"code":"emw","name":"Emplawas"},{"code":"emx","name":"Erromintxela"},{"code":"emy","name":"Epigraphic Mayan"},{"code":"emz","name":"Mbessa"},{"code":"ena","name":"Apali"},{"code":"enb","name":"Markweeta"},{"code":"enc","name":"En"},{"code":"end","name":"Ende"},{"code":"enf","name":"Forest Enets"},{"code":"eng","name":"English"},{"code":"enh","name":"Tundra Enets"},{"code":"enl","name":"Enlhet"},{"code":"enm","name":"Middle English (1100-1500)"},{"code":"enn","name":"Engenni"},{"code":"eno","name":"Enggano"},{"code":"enq","name":"Enga"},{"code":"enr","name":"Emem"},{"code":"enu","name":"Enu"},{"code":"env","name":"Enwan (Edu State)"},{"code":"enw","name":"Enwan (Akwa Ibom State)"},{"code":"enx","name":"Enxet"},{"code":"eot","name":"Beti (Côte d'Ivoire)"},{"code":"epi","name":"Epie"},{"code":"epo","name":"Esperanto"},{"code":"era","name":"Eravallan"},{"code":"erg","name":"Sie"},{"code":"erh","name":"Eruwa"},{"code":"eri","name":"Ogea"},{"code":"erk","name":"South Efate"},{"code":"ero","name":"Horpa"},{"code":"err","name":"Erre"},{"code":"ers","name":"Ersu"},{"code":"ert","name":"Eritai"},{"code":"erw","name":"Erokwanas"},{"code":"ese","name":"Ese Ejja"},{"code":"esg","name":"Aheri Gondi"},{"code":"esh","name":"Eshtehardi"},{"code":"esi","name":"North Alaskan Inupiatun"},{"code":"esk","name":"Northwest Alaska Inupiatun"},{"code":"esl","name":"Egypt Sign Language"},{"code":"esm","name":"Esuma"},{"code":"esn","name":"Salvadoran Sign Language"},{"code":"eso","name":"Estonian Sign Language"},{"code":"esq","name":"Esselen"},{"code":"ess","name":"Central Siberian Yupik"},{"code":"est","name":"Estonian"},{"code":"esu","name":"Central Yupik"},{"code":"esy","name":"Eskayan"},{"code":"etb","name":"Etebi"},{"code":"etc","name":"Etchemin"},{"code":"eth","name":"Ethiopian Sign Language"},{"code":"etn","name":"Eton (Vanuatu)"},{"code":"eto","name":"Eton (Cameroon)"},{"code":"etr","name":"Edolo"},{"code":"ets","name":"Yekhee"},{"code":"ett","name":"Etruscan"},{"code":"etu","name":"Ejagham"},{"code":"etx","name":"Eten"},{"code":"etz","name":"Semimi"},{"code":"eus","name":"Basque"},{"code":"eve","name":"Even"},{"code":"evh","name":"Uvbie"},{"code":"evn","name":"Evenki"},{"code":"ewe","name":"Ewe"},{"code":"ewo","name":"Ewondo"},{"code":"ext","name":"Extremaduran"},{"code":"eya","name":"Eyak"},{"code":"eyo","name":"Keiyo"},{"code":"eza","name":"Ezaa"},{"code":"eze","name":"Uzekwe"},{"code":"faa","name":"Fasu"},{"code":"fab","name":"Fa d'Ambu"},{"code":"fad","name":"Wagi"},{"code":"faf","name":"Fagani"},{"code":"fag","name":"Finongan"},{"code":"fah","name":"Baissa Fali"},{"code":"fai","name":"Faiwol"},{"code":"faj","name":"Faita"},{"code":"fak","name":"Fang (Cameroon)"},{"code":"fal","name":"South Fali"},{"code":"fam","name":"Fam"},{"code":"fan","name":"Fang (Equatorial Guinea)"},{"code":"fao","name":"Faroese"},{"code":"fap","name":"Paloor"},{"code":"far","name":"Fataleka"},{"code":"fas","name":"Persian"},{"code":"fat","name":"Fanti"},{"code":"fau","name":"Fayu"},{"code":"fax","name":"Fala"},{"code":"fay","name":"Southwestern Fars"},{"code":"faz","name":"Northwestern Fars"},{"code":"fbl","name":"West Albay Bikol"},{"code":"fcs","name":"Quebec Sign Language"},{"code":"fer","name":"Feroge"},{"code":"ffi","name":"Foia Foia"},{"code":"ffm","name":"Maasina Fulfulde"},{"code":"fgr","name":"Fongoro"},{"code":"fia","name":"Nobiin"},{"code":"fie","name":"Fyer"},{"code":"fif","name":"Faifi"},{"code":"fij","name":"Fijian"},{"code":"fil","name":"Filipino"},{"code":"fin","name":"Finnish"},{"code":"fip","name":"Fipa"},{"code":"fir","name":"Firan"},{"code":"fit","name":"Tornedalen Finnish"},{"code":"fiw","name":"Fiwaga"},{"code":"fkk","name":"Kirya-Konzəl"},{"code":"fkv","name":"Kven Finnish"},{"code":"fla","name":"Kalispel-Pend d'Oreille"},{"code":"flh","name":"Foau"},{"code":"fli","name":"Fali"},{"code":"fll","name":"North Fali"},{"code":"fln","name":"Flinders Island"},{"code":"flr","name":"Fuliiru"},{"code":"fly","name":"Flaaitaal"},{"code":"fmp","name":"Fe'fe'"},{"code":"fmu","name":"Far Western Muria"},{"code":"fnb","name":"Fanbak"},{"code":"fng","name":"Fanagalo"},{"code":"fni","name":"Fania"},{"code":"fod","name":"Foodo"},{"code":"foi","name":"Foi"},{"code":"fom","name":"Foma"},{"code":"fon","name":"Fon"},{"code":"for","name":"Fore"},{"code":"fos","name":"Siraya"},{"code":"fpe","name":"Fernando Po Creole English"},{"code":"fqs","name":"Fas"},{"code":"fra","name":"French"},{"code":"frc","name":"Cajun French"},{"code":"frd","name":"Fordata"},{"code":"frk","name":"Frankish"},{"code":"frm","name":"Middle French (ca. 1400-1600)"},{"code":"fro","name":"Old French (842-ca. 1400)"},{"code":"frp","name":"Arpitan"},{"code":"frq","name":"Forak"},{"code":"frr","name":"Northern Frisian"},{"code":"frs","name":"Eastern Frisian"},{"code":"frt","name":"Fortsenal"},{"code":"fry","name":"Western Frisian"},{"code":"fse","name":"Finnish Sign Language"},{"code":"fsl","name":"French Sign Language"},{"code":"fss","name":"finlandssvenskt teckenspråk"},{"code":"fub","name":"Adamawa Fulfulde"},{"code":"fuc","name":"Pulaar"},{"code":"fud","name":"East Futuna"},{"code":"fue","name":"Borgu Fulfulde"},{"code":"fuf","name":"Pular"},{"code":"fuh","name":"Western Niger Fulfulde"},{"code":"fui","name":"Bagirmi Fulfulde"},{"code":"fuj","name":"Ko"},{"code":"ful","name":"Fulah"},{"code":"fum","name":"Fum"},{"code":"fun","name":"Fulniô"},{"code":"fuq","name":"Central-Eastern Niger Fulfulde"},{"code":"fur","name":"Friulian"},{"code":"fut","name":"Futuna-Aniwa"},{"code":"fuu","name":"Furu"},{"code":"fuv","name":"Nigerian Fulfulde"},{"code":"fuy","name":"Fuyug"},{"code":"fvr","name":"Fur"},{"code":"fwa","name":"Fwâi"},{"code":"fwe","name":"Fwe"},{"code":"gaa","name":"Ga"},{"code":"gab","name":"Gabri"},{"code":"gac","name":"Mixed Great Andamanese"},{"code":"gad","name":"Gaddang"},{"code":"gae","name":"Guarequena"},{"code":"gaf","name":"Gende"},{"code":"gag","name":"Gagauz"},{"code":"gah","name":"Alekano"},{"code":"gai","name":"Borei"},{"code":"gaj","name":"Gadsup"},{"code":"gak","name":"Gamkonora"},{"code":"gal","name":"Galolen"},{"code":"gam","name":"Kandawo"},{"code":"gan","name":"Gan Chinese"},{"code":"gao","name":"Gants"},{"code":"gap","name":"Gal"},{"code":"gaq","name":"Gata'"},{"code":"gar","name":"Galeya"},{"code":"gas","name":"Adiwasi Garasia"},{"code":"gat","name":"Kenati"},{"code":"gau","name":"Mudhili Gadaba"},{"code":"gaw","name":"Nobonob"},{"code":"gax","name":"Borana-Arsi-Guji Oromo"},{"code":"gay","name":"Gayo"},{"code":"gaz","name":"West Central Oromo"},{"code":"gba","name":"Gbaya (Central African Republic)"},{"code":"gbb","name":"Kaytetye"},{"code":"gbd","name":"Karajarri"},{"code":"gbe","name":"Niksek"},{"code":"gbf","name":"Gaikundi"},{"code":"gbg","name":"Gbanziri"},{"code":"gbh","name":"Defi Gbe"},{"code":"gbi","name":"Galela"},{"code":"gbj","name":"Bodo Gadaba"},{"code":"gbk","name":"Gaddi"},{"code":"gbl","name":"Gamit"},{"code":"gbm","name":"Garhwali"},{"code":"gbn","name":"Mo'da"},{"code":"gbo","name":"Northern Grebo"},{"code":"gbp","name":"Gbaya-Bossangoa"},{"code":"gbq","name":"Gbaya-Bozoum"},{"code":"gbr","name":"Gbagyi"},{"code":"gbs","name":"Gbesi Gbe"},{"code":"gbu","name":"Gagadu"},{"code":"gbv","name":"Gbanu"},{"code":"gbw","name":"Gabi-Gabi"},{"code":"gbx","name":"Eastern Xwla Gbe"},{"code":"gby","name":"Gbari"},{"code":"gbz","name":"Zoroastrian Dari"},{"code":"gcc","name":"Mali"},{"code":"gcd","name":"Ganggalida"},{"code":"gce","name":"Galice"},{"code":"gcf","name":"Guadeloupean Creole French"},{"code":"gcl","name":"Grenadian Creole English"},{"code":"gcn","name":"Gaina"},{"code":"gcr","name":"Guianese Creole French"},{"code":"gct","name":"Colonia Tovar German"},{"code":"gda","name":"Gade Lohar"},{"code":"gdb","name":"Pottangi Ollar Gadaba"},{"code":"gdc","name":"Gugu Badhun"},{"code":"gdd","name":"Gedaged"},{"code":"gde","name":"Gude"},{"code":"gdf","name":"Guduf-Gava"},{"code":"gdg","name":"Ga'dang"},{"code":"gdh","name":"Gadjerawang"},{"code":"gdi","name":"Gundi"},{"code":"gdj","name":"Gurdjar"},{"code":"gdk","name":"Gadang"},{"code":"gdl","name":"Dirasha"},{"code":"gdm","name":"Laal"},{"code":"gdn","name":"Umanakaina"},{"code":"gdo","name":"Ghodoberi"},{"code":"gdq","name":"Mehri"},{"code":"gdr","name":"Wipi"},{"code":"gds","name":"Ghandruk Sign Language"},{"code":"gdt","name":"Kungardutyi"},{"code":"gdu","name":"Gudu"},{"code":"gdx","name":"Godwari"},{"code":"gea","name":"Geruma"},{"code":"geb","name":"Kire"},{"code":"gec","name":"Gboloo Grebo"},{"code":"ged","name":"Gade"},{"code":"gef","name":"Gerai"},{"code":"geg","name":"Gengle"},{"code":"geh","name":"Hutterisch"},{"code":"gei","name":"Gebe"},{"code":"gej","name":"Gen"},{"code":"gek","name":"Ywom"},{"code":"gel","name":"ut-Ma'in"},{"code":"geq","name":"Geme"},{"code":"ges","name":"Geser-Gorom"},{"code":"gev","name":"Eviya"},{"code":"gew","name":"Gera"},{"code":"gex","name":"Garre"},{"code":"gey","name":"Enya"},{"code":"gez","name":"Geez"},{"code":"gfk","name":"Patpatar"},{"code":"gft","name":"Gafat"},{"code":"gga","name":"Gao"},{"code":"ggb","name":"Gbii"},{"code":"ggd","name":"Gugadj"},{"code":"gge","name":"Gurr-goni"},{"code":"ggg","name":"Gurgula"},{"code":"ggk","name":"Kungarakany"},{"code":"ggl","name":"Ganglau"},{"code":"ggt","name":"Gitua"},{"code":"ggu","name":"Gagu"},{"code":"ggw","name":"Gogodala"},{"code":"gha","name":"Ghadamès"},{"code":"ghc","name":"Hiberno-Scottish Gaelic"},{"code":"ghe","name":"Southern Ghale"},{"code":"ghh","name":"Northern Ghale"},{"code":"ghk","name":"Geko Karen"},{"code":"ghl","name":"Ghulfan"},{"code":"ghn","name":"Ghanongga"},{"code":"gho","name":"Ghomara"},{"code":"ghr","name":"Ghera"},{"code":"ghs","name":"Guhu-Samane"},{"code":"ght","name":"Kuke"},{"code":"gia","name":"Kija"},{"code":"gib","name":"Gibanawa"},{"code":"gic","name":"Gail"},{"code":"gid","name":"Gidar"},{"code":"gie","name":"Gaɓogbo"},{"code":"gig","name":"Goaria"},{"code":"gih","name":"Githabul"},{"code":"gii","name":"Girirra"},{"code":"gil","name":"Gilbertese"},{"code":"gim","name":"Gimi (Eastern Highlands)"},{"code":"gin","name":"Hinukh"},{"code":"gip","name":"Gimi (West New Britain)"},{"code":"giq","name":"Green Gelao"},{"code":"gir","name":"Red Gelao"},{"code":"gis","name":"North Giziga"},{"code":"git","name":"Gitxsan"},{"code":"giu","name":"Mulao"},{"code":"giw","name":"White Gelao"},{"code":"gix","name":"Gilima"},{"code":"giy","name":"Giyug"},{"code":"giz","name":"South Giziga"},{"code":"gjk","name":"Kachi Koli"},{"code":"gjm","name":"Gunditjmara"},{"code":"gjn","name":"Gonja"},{"code":"gjr","name":"Gurindji Kriol"},{"code":"gju","name":"Gujari"},{"code":"gka","name":"Guya"},{"code":"gkd","name":"Magɨ (Madang Province)"},{"code":"gke","name":"Ndai"},{"code":"gkn","name":"Gokana"},{"code":"gko","name":"Kok-Nar"},{"code":"gkp","name":"Guinea Kpelle"},{"code":"gku","name":"ǂUngkue"},{"code":"gla","name":"Gaelic"},{"code":"glb","name":"Belning"},{"code":"glc","name":"Bon Gula"},{"code":"gld","name":"Nanai"},{"code":"gle","name":"Irish"},{"code":"glg","name":"Galician"},{"code":"glh","name":"Northwest Pashai"},{"code":"glj","name":"Gula Iro"},{"code":"glk","name":"Gilaki"},{"code":"gll","name":"Garlali"},{"code":"glo","name":"Galambu"},{"code":"glr","name":"Glaro-Twabo"},{"code":"glu","name":"Gula (Chad)"},{"code":"glv","name":"Manx"},{"code":"glw","name":"Glavda"},{"code":"gly","name":"Gule"},{"code":"gma","name":"Gambera"},{"code":"gmb","name":"Gula'alaa"},{"code":"gmd","name":"Mághdì"},{"code":"gmg","name":"Magɨyi"},{"code":"gmh","name":"Middle High German (ca. 1050-1500)"},{"code":"gml","name":"Middle Low German"},{"code":"gmm","name":"Gbaya-Mbodomo"},{"code":"gmn","name":"Gimnime"},{"code":"gmr","name":"Mirning"},{"code":"gmu","name":"Gumalu"},{"code":"gmv","name":"Gamo"},{"code":"gmx","name":"Magoma"},{"code":"gmy","name":"Mycenaean Greek"},{"code":"gmz","name":"Mgbolizhia"},{"code":"gna","name":"Kaansa"},{"code":"gnb","name":"Gangte"},{"code":"gnc","name":"Guanche"},{"code":"gnd","name":"Zulgo-Gemzek"},{"code":"gne","name":"Ganang"},{"code":"gng","name":"Ngangam"},{"code":"gnh","name":"Lere"},{"code":"gni","name":"Gooniyandi"},{"code":"gnj","name":"Ngen"},{"code":"gnk","name":"ǁGana"},{"code":"gnl","name":"Gangulu"},{"code":"gnm","name":"Ginuman"},{"code":"gnn","name":"Gumatj"},{"code":"gno","name":"Northern Gondi"},{"code":"gnq","name":"Gana"},{"code":"gnr","name":"Gureng Gureng"},{"code":"gnt","name":"Guntai"},{"code":"gnu","name":"Gnau"},{"code":"gnw","name":"Western Bolivian Guaraní"},{"code":"gnz","name":"Ganzi"},{"code":"goa","name":"Guro"},{"code":"gob","name":"Playero"},{"code":"goc","name":"Gorakor"},{"code":"god","name":"Godié"},{"code":"goe","name":"Gongduk"},{"code":"gof","name":"Gofa"},{"code":"gog","name":"Gogo"},{"code":"goh","name":"Old High German (ca. 750-1050)"},{"code":"goi","name":"Gobasi"},{"code":"goj","name":"Gowlan"},{"code":"gok","name":"Gowli"},{"code":"gol","name":"Gola"},{"code":"gom","name":"Goan Konkani"},{"code":"gon","name":"Gondi"},{"code":"goo","name":"Gone Dau"},{"code":"gop","name":"Yeretuar"},{"code":"goq","name":"Gorap"},{"code":"gor","name":"Gorontalo"},{"code":"gos","name":"Gronings"},{"code":"got","name":"Gothic"},{"code":"gou","name":"Gavar"},{"code":"gow","name":"Gorowa"},{"code":"gox","name":"Gobu"},{"code":"goy","name":"Goundo"},{"code":"goz","name":"Gozarkhani"},{"code":"gpa","name":"Gupa-Abawa"},{"code":"gpe","name":"Ghanaian Pidgin English"},{"code":"gpn","name":"Taiap"},{"code":"gqa","name":"Ga'anda"},{"code":"gqi","name":"Guiqiong"},{"code":"gqn","name":"Guana (Brazil)"},{"code":"gqr","name":"Gor"},{"code":"gqu","name":"Qau"},{"code":"gra","name":"Rajput Garasia"},{"code":"grb","name":"Grebo"},{"code":"grc","name":"Ancient Greek (to 1453)"},{"code":"grd","name":"Guruntum-Mbaaru"},{"code":"grg","name":"Madi"},{"code":"grh","name":"Gbiri-Niragu"},{"code":"gri","name":"Ghari"},{"code":"grj","name":"Southern Grebo"},{"code":"grm","name":"Kota Marudu Talantang"},{"code":"grn","name":"Guarani"},{"code":"gro","name":"Groma"},{"code":"grq","name":"Gorovu"},{"code":"grr","name":"Taznatit"},{"code":"grs","name":"Gresi"},{"code":"grt","name":"Garo"},{"code":"gru","name":"Kistane"},{"code":"grv","name":"Central Grebo"},{"code":"grw","name":"Gweda"},{"code":"grx","name":"Guriaso"},{"code":"gry","name":"Barclayville Grebo"},{"code":"grz","name":"Guramalum"},{"code":"gse","name":"Ghanaian Sign Language"},{"code":"gsg","name":"German Sign Language"},{"code":"gsl","name":"Gusilay"},{"code":"gsm","name":"Guatemalan Sign Language"},{"code":"gsn","name":"Gusan"},{"code":"gso","name":"Southwest Gbaya"},{"code":"gsp","name":"Wasembo"},{"code":"gss","name":"Greek Sign Language"},{"code":"gsw","name":"Alemannic"},{"code":"gta","name":"Guató"},{"code":"gtu","name":"Aghu-Tharnggala"},{"code":"gua","name":"Shiki"},{"code":"gub","name":"Guajajára"},{"code":"guc","name":"Wayuu"},{"code":"gud","name":"Yocoboué Dida"},{"code":"gue","name":"Gurindji"},{"code":"guf","name":"Gupapuyngu"},{"code":"gug","name":"Paraguayan Guaraní"},{"code":"guh","name":"Guahibo"},{"code":"gui","name":"Eastern Bolivian Guaraní"},{"code":"guj","name":"Gujarati"},{"code":"guk","name":"Gumuz"},{"code":"gul","name":"Sea Island Creole English"},{"code":"gum","name":"Guambiano"},{"code":"gun","name":"Mbyá Guaraní"},{"code":"guo","name":"Guayabero"},{"code":"gup","name":"Gunwinggu"},{"code":"guq","name":"Aché"},{"code":"gur","name":"Farefare"},{"code":"gus","name":"Guinean Sign Language"},{"code":"gut","name":"Maléku Jaíka"},{"code":"guu","name":"Yanomamö"},{"code":"guw","name":"Gun"},{"code":"gux","name":"Gourmanchéma"},{"code":"guz","name":"Ekegusii"},{"code":"gva","name":"Guana (Paraguay)"},{"code":"gvc","name":"Guanano"},{"code":"gve","name":"Duwet"},{"code":"gvf","name":"Golin"},{"code":"gvj","name":"Guajá"},{"code":"gvl","name":"Gulay"},{"code":"gvm","name":"Gurmana"},{"code":"gvn","name":"Kuku-Yalanji"},{"code":"gvo","name":"Gavião Do Jiparaná"},{"code":"gvp","name":"Pará Gavião"},{"code":"gvr","name":"Gurung"},{"code":"gvs","name":"Gumawana"},{"code":"gvy","name":"Guyani"},{"code":"gwa","name":"Mbato"},{"code":"gwb","name":"Gwa"},{"code":"gwc","name":"Gawri"},{"code":"gwd","name":"Gawwada"},{"code":"gwe","name":"Gweno"},{"code":"gwf","name":"Gowro"},{"code":"gwg","name":"Moo"},{"code":"gwi","name":"Gwichʼin"},{"code":"gwj","name":"ǀGwi"},{"code":"gwm","name":"Awngthim"},{"code":"gwn","name":"Gwandara"},{"code":"gwr","name":"Gwere"},{"code":"gwt","name":"Gawar-Bati"},{"code":"gwu","name":"Guwamu"},{"code":"gww","name":"Kwini"},{"code":"gwx","name":"Gua"},{"code":"gxx","name":"Wè Southern"},{"code":"gya","name":"Northwest Gbaya"},{"code":"gyb","name":"Garus"},{"code":"gyd","name":"Kayardild"},{"code":"gye","name":"Gyem"},{"code":"gyf","name":"Gungabula"},{"code":"gyg","name":"Gbayi"},{"code":"gyi","name":"Gyele"},{"code":"gyl","name":"Gayil"},{"code":"gym","name":"Ngäbere"},{"code":"gyn","name":"Guyanese Creole English"},{"code":"gyo","name":"Gyalsumdo"},{"code":"gyr","name":"Guarayu"},{"code":"gyy","name":"Gunya"},{"code":"gyz","name":"Geji"},{"code":"gza","name":"Ganza"},{"code":"gzi","name":"Gazi"},{"code":"gzn","name":"Gane"},{"code":"haa","name":"Han"},{"code":"hab","name":"Hanoi Sign Language"},{"code":"hac","name":"Gurani"},{"code":"had","name":"Hatam"},{"code":"hae","name":"Eastern Oromo"},{"code":"haf","name":"Haiphong Sign Language"},{"code":"hag","name":"Hanga"},{"code":"hah","name":"Hahon"},{"code":"hai","name":"Haida"},{"code":"haj","name":"Hajong"},{"code":"hak","name":"Hakka Chinese"},{"code":"hal","name":"Halang"},{"code":"ham","name":"Hewa"},{"code":"han","name":"Hangaza"},{"code":"hao","name":"Hakö"},{"code":"hap","name":"Hupla"},{"code":"haq","name":"Ha"},{"code":"har","name":"Harari"},{"code":"has","name":"Haisla"},{"code":"hat","name":"Haitian"},{"code":"hau","name":"Hausa"},{"code":"hav","name":"Havu"},{"code":"haw","name":"Hawaiian"},{"code":"hax","name":"Southern Haida"},{"code":"hay","name":"Haya"},{"code":"haz","name":"Hazaragi"},{"code":"hba","name":"Hamba"},{"code":"hbb","name":"Huba"},{"code":"hbn","name":"Heiban"},{"code":"hbo","name":"Ancient Hebrew"},{"code":"hbs","name":"Serbo-Croatian"},{"code":"hbu","name":"Habu"},{"code":"hca","name":"Andaman Creole Hindi"},{"code":"hch","name":"Huichol"},{"code":"hdn","name":"Northern Haida"},{"code":"hds","name":"Honduras Sign Language"},{"code":"hdy","name":"Hadiyya"},{"code":"hea","name":"Northern Qiandong Miao"},{"code":"heb","name":"Hebrew"},{"code":"hed","name":"Herdé"},{"code":"heg","name":"Helong"},{"code":"heh","name":"Hehe"},{"code":"hei","name":"Heiltsuk"},{"code":"hem","name":"Hemba"},{"code":"her","name":"Herero"},{"code":"hgm","name":"Haiǁom"},{"code":"hgw","name":"Haigwai"},{"code":"hhi","name":"Hoia Hoia"},{"code":"hhr","name":"Kerak"},{"code":"hhy","name":"Hoyahoya"},{"code":"hia","name":"Lamang"},{"code":"hib","name":"Hibito"},{"code":"hid","name":"Hidatsa"},{"code":"hif","name":"Fiji Hindi"},{"code":"hig","name":"Kamwe"},{"code":"hih","name":"Pamosu"},{"code":"hii","name":"Hinduri"},{"code":"hij","name":"Hijuk"},{"code":"hik","name":"Seit-Kaitetu"},{"code":"hil","name":"Hiligaynon"},{"code":"hin","name":"Hindi"},{"code":"hio","name":"Tsoa"},{"code":"hir","name":"Himarimã"},{"code":"hit","name":"Hittite"},{"code":"hiw","name":"Hiw"},{"code":"hix","name":"Hixkaryána"},{"code":"hji","name":"Haji"},{"code":"hka","name":"Kahe"},{"code":"hke","name":"Hunde"},{"code":"hkh","name":"Khah"},{"code":"hkk","name":"Hunjara-Kaina Ke"},{"code":"hkn","name":"Mel-Khaonh"},{"code":"hks","name":"Heung Kong Sau Yue"},{"code":"hla","name":"Halia"},{"code":"hlb","name":"Halbi"},{"code":"hld","name":"Halang Doan"},{"code":"hle","name":"Hlersu"},{"code":"hlt","name":"Matu Chin"},{"code":"hlu","name":"Hieroglyphic Luwian"},{"code":"hma","name":"Southern Mashan Hmong"},{"code":"hmb","name":"Humburi Senni Songhay"},{"code":"hmc","name":"Central Huishui Hmong"},{"code":"hmd","name":"A-hmaos"},{"code":"hme","name":"Eastern Huishui Hmong"},{"code":"hmf","name":"Hmong Don"},{"code":"hmg","name":"Southwestern Guiyang Hmong"},{"code":"hmh","name":"Southwestern Huishui Hmong"},{"code":"hmi","name":"Northern Huishui Hmong"},{"code":"hmj","name":"Ge"},{"code":"hmk","name":"Maek"},{"code":"hml","name":"Luopohe Hmong"},{"code":"hmm","name":"Central Mashan Hmong"},{"code":"hmn","name":"Hmong"},{"code":"hmo","name":"Hiri Motu"},{"code":"hmp","name":"Northern Mashan Hmong"},{"code":"hmq","name":"Eastern Qiandong Miao"},{"code":"hmr","name":"Hmar"},{"code":"hms","name":"Southern Qiandong Miao"},{"code":"hmt","name":"Hamtai"},{"code":"hmu","name":"Hamap"},{"code":"hmv","name":"Hmong Dô"},{"code":"hmw","name":"Western Mashan Hmong"},{"code":"hmy","name":"Southern Guiyang Hmong"},{"code":"hmz","name":"Hmong Shua"},{"code":"hna","name":"Mina (Cameroon)"},{"code":"hnd","name":"Southern Hindko"},{"code":"hne","name":"Chhattisgarhi"},{"code":"hng","name":"Hungu"},{"code":"hnh","name":"ǁAni"},{"code":"hni","name":"Hani"},{"code":"hnj","name":"Hmong Njua"},{"code":"hnn","name":"Hanunoo"},{"code":"hno","name":"Northern Hindko"},{"code":"hns","name":"Caribbean Hindustani"},{"code":"hnu","name":"Hung"},{"code":"hoa","name":"Hoava"},{"code":"hob","name":"Mari (Madang Province)"},{"code":"hoc","name":"Ho"},{"code":"hod","name":"Holma"},{"code":"hoe","name":"Horom"},{"code":"hoh","name":"Hobyót"},{"code":"hoi","name":"Holikachuk"},{"code":"hoj","name":"Hadothi"},{"code":"hol","name":"Holu"},{"code":"hom","name":"Homa"},{"code":"hoo","name":"Holoholo"},{"code":"hop","name":"Hopi"},{"code":"hor","name":"Horo"},{"code":"hos","name":"Ho Chi Minh City Sign Language"},{"code":"hot","name":"Hote"},{"code":"hov","name":"Hovongan"},{"code":"how","name":"Honi"},{"code":"hoy","name":"Holiya"},{"code":"hoz","name":"Hozo"},{"code":"hpo","name":"Hpon"},{"code":"hps","name":"Hawai'i Pidgin Sign Language"},{"code":"hra","name":"Hrangkhol"},{"code":"hrc","name":"Niwer Mil"},{"code":"hre","name":"Hre"},{"code":"hrk","name":"Haruku"},{"code":"hrm","name":"Horned Miao"},{"code":"hro","name":"Haroi"},{"code":"hrp","name":"Nhirrpi"},{"code":"hrt","name":"Hértevin"},{"code":"hru","name":"Hruso"},{"code":"hrv","name":"Croatian"},{"code":"hrw","name":"Warwar Feni"},{"code":"hrx","name":"Hunsrik"},{"code":"hrz","name":"Harzani"},{"code":"hsb","name":"Upper Sorbian"},{"code":"hsh","name":"Hungarian Sign Language"},{"code":"hsl","name":"Hausa Sign Language"},{"code":"hsn","name":"Xiang Chinese"},{"code":"hss","name":"Harsusi"},{"code":"hti","name":"Hoti"},{"code":"hto","name":"Minica Huitoto"},{"code":"hts","name":"Hadza"},{"code":"htu","name":"Hitu"},{"code":"htx","name":"Middle Hittite"},{"code":"hub","name":"Huambisa"},{"code":"huc","name":"ǂ'Amkhoe"},{"code":"hud","name":"Huaulu"},{"code":"hue","name":"San Francisco Del Mar Huave"},{"code":"huf","name":"Humene"},{"code":"hug","name":"Huachipaeri"},{"code":"huh","name":"Huilliche"},{"code":"hui","name":"Huli"},{"code":"huj","name":"Northern Guiyang Hmong"},{"code":"huk","name":"Hulung"},{"code":"hul","name":"Hula"},{"code":"hum","name":"Hungana"},{"code":"hun","name":"Hungarian"},{"code":"huo","name":"Hu"},{"code":"hup","name":"Hupa"},{"code":"huq","name":"Tsat"},{"code":"hur","name":"Halkomelem"},{"code":"hus","name":"Huastec"},{"code":"hut","name":"Humla"},{"code":"huu","name":"Murui Huitoto"},{"code":"huv","name":"San Mateo Del Mar Huave"},{"code":"huw","name":"Hukumina"},{"code":"hux","name":"Nüpode Huitoto"},{"code":"huy","name":"Hulaulá"},{"code":"huz","name":"Hunzib"},{"code":"hvc","name":"Haitian Vodoun Culture Language"},{"code":"hve","name":"San Dionisio Del Mar Huave"},{"code":"hvk","name":"Haveke"},{"code":"hvn","name":"Sabu"},{"code":"hvv","name":"Santa María Del Mar Huave"},{"code":"hwa","name":"Wané"},{"code":"hwc","name":"Hawai'i Creole English"},{"code":"hwo","name":"Hwana"},{"code":"hya","name":"Hya"},{"code":"hye","name":"Armenian"},{"code":"hyw","name":"Western Armenian"},{"code":"iai","name":"Iaai"},{"code":"ian","name":"Iatmul"},{"code":"iar","name":"Purari"},{"code":"iba","name":"Iban"},{"code":"ibb","name":"Ibibio"},{"code":"ibd","name":"Iwaidja"},{"code":"ibe","name":"Akpes"},{"code":"ibg","name":"Ibanag"},{"code":"ibh","name":"Bih"},{"code":"ibl","name":"Ibaloi"},{"code":"ibm","name":"Agoi"},{"code":"ibn","name":"Ibino"},{"code":"ibo","name":"Igbo"},{"code":"ibr","name":"Ibuoro"},{"code":"ibu","name":"Ibu"},{"code":"iby","name":"Ibani"},{"code":"ica","name":"Ede Ica"},{"code":"ich","name":"Etkywan"},{"code":"icl","name":"Icelandic Sign Language"},{"code":"icr","name":"Islander Creole English"},{"code":"ida","name":"Idakho-Isukha-Tiriki"},{"code":"idb","name":"Indo-Portuguese"},{"code":"idc","name":"Ajiya"},{"code":"idd","name":"Ede Idaca"},{"code":"ide","name":"Idere"},{"code":"idi","name":"Idi"},{"code":"ido","name":"Ido"},{"code":"idr","name":"Indri"},{"code":"ids","name":"Idesa"},{"code":"idt","name":"Idaté"},{"code":"idu","name":"Idoma"},{"code":"ifa","name":"Amganad Ifugao"},{"code":"ifb","name":"Ayangan Ifugao"},{"code":"ife","name":"Ifè"},{"code":"iff","name":"Ifo"},{"code":"ifk","name":"Tuwali Ifugao"},{"code":"ifm","name":"Teke-Fuumu"},{"code":"ifu","name":"Mayoyao Ifugao"},{"code":"ify","name":"Keley-I Kallahan"},{"code":"igb","name":"Ebira"},{"code":"ige","name":"Igede"},{"code":"igg","name":"Igana"},{"code":"igl","name":"Igala"},{"code":"igm","name":"Kanggape"},{"code":"ign","name":"Ignaciano"},{"code":"igo","name":"Isebe"},{"code":"igs","name":"Interglossa"},{"code":"igw","name":"Igwe"},{"code":"ihb","name":"Iha Based Pidgin"},{"code":"ihi","name":"Ihievbe"},{"code":"ihp","name":"Iha"},{"code":"ihw","name":"Bidhawal"},{"code":"iii","name":"Nuosu"},{"code":"iin","name":"Thiin"},{"code":"ijc","name":"Izon"},{"code":"ije","name":"Biseni"},{"code":"ijj","name":"Ede Ije"},{"code":"ijn","name":"Kalabari"},{"code":"ijs","name":"Southeast Ijo"},{"code":"ike","name":"Eastern Canadian Inuktitut"},{"code":"iki","name":"Iko"},{"code":"ikk","name":"Ika"},{"code":"ikl","name":"Ikulu"},{"code":"iko","name":"Olulumo-Ikom"},{"code":"ikp","name":"Ikpeshi"},{"code":"ikr","name":"Ikaranggal"},{"code":"iks","name":"Inuit Sign Language"},{"code":"ikt","name":"Inuinnaqtun"},{"code":"iku","name":"Inuktitut"},{"code":"ikv","name":"Iku-Gora-Ankwa"},{"code":"ikw","name":"Ikwere"},{"code":"ikx","name":"Ik"},{"code":"ikz","name":"Ikizu"},{"code":"ila","name":"Ile Ape"},{"code":"ilb","name":"Ila"},{"code":"ile","name":"Interlingue"},{"code":"ilg","name":"Garig-Ilgar"},{"code":"ili","name":"Ili Turki"},{"code":"ilk","name":"Ilongot"},{"code":"ilm","name":"Iranun (Malaysia)"},{"code":"ilo","name":"Iloko"},{"code":"ilp","name":"Iranun (Philippines)"},{"code":"ils","name":"International Sign"},{"code":"ilu","name":"Ili'uun"},{"code":"ilv","name":"Ilue"},{"code":"ima","name":"Mala Malasar"},{"code":"imi","name":"Anamgura"},{"code":"iml","name":"Miluk"},{"code":"imn","name":"Imonda"},{"code":"imo","name":"Imbongu"},{"code":"imr","name":"Imroing"},{"code":"ims","name":"Marsian"},{"code":"imy","name":"Milyan"},{"code":"ina","name":"Interlingua (International Auxiliary Language Association)"},{"code":"inb","name":"Inga"},{"code":"ind","name":"Indonesian"},{"code":"ing","name":"Degexit'an"},{"code":"inh","name":"Ingush"},{"code":"inj","name":"Jungle Inga"},{"code":"inl","name":"Indonesian Sign Language"},{"code":"inm","name":"Minaean"},{"code":"inn","name":"Isinai"},{"code":"ino","name":"Inoke-Yate"},{"code":"inp","name":"Iñapari"},{"code":"ins","name":"Indian Sign Language"},{"code":"int","name":"Intha"},{"code":"inz","name":"Ineseño"},{"code":"ior","name":"Inor"},{"code":"iou","name":"Tuma-Irumu"},{"code":"iow","name":"Iowa-Oto"},{"code":"ipi","name":"Ipili"},{"code":"ipk","name":"Inupiaq"},{"code":"ipo","name":"Ipiko"},{"code":"iqu","name":"Iquito"},{"code":"iqw","name":"Ikwo"},{"code":"ire","name":"Iresim"},{"code":"irh","name":"Irarutu"},{"code":"iri","name":"Irigwe"},{"code":"irk","name":"Iraqw"},{"code":"irn","name":"Irántxe"},{"code":"irr","name":"Ir"},{"code":"iru","name":"Irula"},{"code":"irx","name":"Kamberau"},{"code":"iry","name":"Iraya"},{"code":"isa","name":"Isabi"},{"code":"isc","name":"Isconahua"},{"code":"isd","name":"Isnag"},{"code":"ise","name":"Italian Sign Language"},{"code":"isg","name":"Irish Sign Language"},{"code":"ish","name":"Esan"},{"code":"isi","name":"Nkem-Nkum"},{"code":"isk","name":"Ishkashimi"},{"code":"isl","name":"Icelandic"},{"code":"ism","name":"Masimasi"},{"code":"isn","name":"Isanzu"},{"code":"iso","name":"Isoko"},{"code":"isr","name":"Israeli Sign Language"},{"code":"ist","name":"Istriot"},{"code":"isu","name":"Isu (Menchum Division)"},{"code":"ita","name":"Italian"},{"code":"itb","name":"Binongan Itneg"},{"code":"itd","name":"Southern Tidung"},{"code":"ite","name":"Itene"},{"code":"iti","name":"Inlaod Itneg"},{"code":"itk","name":"Judeo-Italian"},{"code":"itl","name":"Itelmen"},{"code":"itm","name":"Itu Mbon Uzo"},{"code":"ito","name":"Itonama"},{"code":"itr","name":"Iteri"},{"code":"its","name":"Isekiri"},{"code":"itt","name":"Maeng Itneg"},{"code":"itv","name":"Itawit"},{"code":"itw","name":"Ito"},{"code":"itx","name":"Itik"},{"code":"ity","name":"Moyadan Itneg"},{"code":"itz","name":"Itzá"},{"code":"ium","name":"Iu Mien"},{"code":"ivb","name":"Ibatan"},{"code":"ivv","name":"Ivatan"},{"code":"iwk","name":"I-Wak"},{"code":"iwm","name":"Iwam"},{"code":"iwo","name":"Iwur"},{"code":"iws","name":"Sepik Iwam"},{"code":"ixc","name":"Ixcatec"},{"code":"ixl","name":"Ixil"},{"code":"iya","name":"Iyayu"},{"code":"iyo","name":"Mesaka"},{"code":"iyx","name":"Yaka (Congo)"},{"code":"izh","name":"Ingrian"},{"code":"izr","name":"Izere"},{"code":"izz","name":"Izii"},{"code":"jaa","name":"Jamamadí"},{"code":"jab","name":"Hyam"},{"code":"jac","name":"Jakalteko"},{"code":"jad","name":"Jahanka"},{"code":"jae","name":"Yabem"},{"code":"jaf","name":"Jara"},{"code":"jah","name":"Jah Hut"},{"code":"jaj","name":"Zazao"},{"code":"jak","name":"Jakun"},{"code":"jal","name":"Yalahatan"},{"code":"jam","name":"Jamaican Creole English"},{"code":"jan","name":"Jandai"},{"code":"jao","name":"Yanyuwa"},{"code":"jaq","name":"Yaqay"},{"code":"jas","name":"New Caledonian Javanese"},{"code":"jat","name":"Jakati"},{"code":"jau","name":"Yaur"},{"code":"jav","name":"Javanese"},{"code":"jax","name":"Jambi Malay"},{"code":"jay","name":"Nhangu"},{"code":"jaz","name":"Jawe"},{"code":"jbe","name":"Judeo-Berber"},{"code":"jbi","name":"Badjiri"},{"code":"jbj","name":"Arandai"},{"code":"jbk","name":"Barikewa"},{"code":"jbm","name":"Bijim"},{"code":"jbn","name":"Nafusi"},{"code":"jbo","name":"Lojban"},{"code":"jbr","name":"Jofotek-Bromnya"},{"code":"jbt","name":"Jabutí"},{"code":"jbu","name":"Jukun Takum"},{"code":"jbw","name":"Yawijibaya"},{"code":"jcs","name":"Jamaican Country Sign Language"},{"code":"jct","name":"Krymchak"},{"code":"jda","name":"Jad"},{"code":"jdg","name":"Jadgali"},{"code":"jdt","name":"Judeo-Tat"},{"code":"jeb","name":"Jebero"},{"code":"jee","name":"Jerung"},{"code":"jeh","name":"Jeh"},{"code":"jei","name":"Yei"},{"code":"jek","name":"Jeri Kuo"},{"code":"jel","name":"Yelmek"},{"code":"jen","name":"Dza"},{"code":"jer","name":"Jere"},{"code":"jet","name":"Manem"},{"code":"jeu","name":"Jonkor Bourmataguil"},{"code":"jgb","name":"Ngbee"},{"code":"jge","name":"Judeo-Georgian"},{"code":"jgk","name":"Gwak"},{"code":"jgo","name":"Ngomba"},{"code":"jhi","name":"Jehai"},{"code":"jhs","name":"Jhankot Sign Language"},{"code":"jia","name":"Jina"},{"code":"jib","name":"Jibu"},{"code":"jic","name":"Tol"},{"code":"jid","name":"Bu (Kaduna State)"},{"code":"jie","name":"Jilbe"},{"code":"jig","name":"Djingili"},{"code":"jih","name":"Shangzhai"},{"code":"jii","name":"Jiiddu"},{"code":"jil","name":"Jilim"},{"code":"jim","name":"Jimi (Cameroon)"},{"code":"jio","name":"Jiamao"},{"code":"jiq","name":"Guanyinqiao"},{"code":"jit","name":"Jita"},{"code":"jiu","name":"Youle Jinuo"},{"code":"jiv","name":"Shuar"},{"code":"jiy","name":"Buyuan Jinuo"},{"code":"jje","name":"Jejueo"},{"code":"jjr","name":"Bankal"},{"code":"jka","name":"Kaera"},{"code":"jkm","name":"Mobwa Karen"},{"code":"jko","name":"Kubo"},{"code":"jkp","name":"Paku Karen"},{"code":"jkr","name":"Koro (India)"},{"code":"jks","name":"Amami Koniya Sign Language"},{"code":"jku","name":"Labir"},{"code":"jle","name":"Ngile"},{"code":"jls","name":"Jamaican Sign Language"},{"code":"jma","name":"Dima"},{"code":"jmb","name":"Zumbun"},{"code":"jmc","name":"Machame"},{"code":"jmd","name":"Yamdena"},{"code":"jmi","name":"Jimi (Nigeria)"},{"code":"jml","name":"Jumli"},{"code":"jmn","name":"Makuri Naga"},{"code":"jmr","name":"Kamara"},{"code":"jms","name":"Mashi (Nigeria)"},{"code":"jmw","name":"Mouwase"},{"code":"jmx","name":"Western Juxtlahuaca Mixtec"},{"code":"jna","name":"Jangshung"},{"code":"jnd","name":"Jandavra"},{"code":"jng","name":"Yangman"},{"code":"jni","name":"Janji"},{"code":"jnj","name":"Yemsa"},{"code":"jnl","name":"Rawat"},{"code":"jns","name":"Jaunsari"},{"code":"job","name":"Joba"},{"code":"jod","name":"Wojenaka"},{"code":"jog","name":"Jogi"},{"code":"jor","name":"Jorá"},{"code":"jos","name":"Jordanian Sign Language"},{"code":"jow","name":"Jowulu"},{"code":"jpa","name":"Jewish Palestinian Aramaic"},{"code":"jpn","name":"Japanese"},{"code":"jpr","name":"Judeo-Persian"},{"code":"jqr","name":"Jaqaru"},{"code":"jra","name":"Jarai"},{"code":"jrb","name":"Judeo-Arabic"},{"code":"jrr","name":"Jiru"},{"code":"jrt","name":"Jakattoe"},{"code":"jru","name":"Japrería"},{"code":"jsl","name":"Japanese Sign Language"},{"code":"jua","name":"Júma"},{"code":"jub","name":"Wannu"},{"code":"juc","name":"Jurchen"},{"code":"jud","name":"Worodougou"},{"code":"juh","name":"Hõne"},{"code":"jui","name":"Ngadjuri"},{"code":"juk","name":"Wapan"},{"code":"jul","name":"Jirel"},{"code":"jum","name":"Jumjum"},{"code":"jun","name":"Juang"},{"code":"juo","name":"Jiba"},{"code":"jup","name":"Hupdë"},{"code":"jur","name":"Jurúna"},{"code":"jus","name":"Jumla Sign Language"},{"code":"jut","name":"Jutish"},{"code":"juu","name":"Ju"},{"code":"juw","name":"Wãpha"},{"code":"juy","name":"Juray"},{"code":"jvd","name":"Javindo"},{"code":"jvn","name":"Caribbean Javanese"},{"code":"jwi","name":"Jwira-Pepesa"},{"code":"jya","name":"Jiarong"},{"code":"jye","name":"Judeo-Yemeni Arabic"},{"code":"jyy","name":"Jaya"},{"code":"kaa","name":"Karakalpak"},{"code":"kab","name":"Kabyle"},{"code":"kac","name":"Jingpho"},{"code":"kad","name":"Adara"},{"code":"kae","name":"Ketangalan"},{"code":"kaf","name":"Katso"},{"code":"kag","name":"Kajaman"},{"code":"kah","name":"Kara (Central African Republic)"},{"code":"kai","name":"Karekare"},{"code":"kaj","name":"Jju"},{"code":"kak","name":"Kalanguya"},{"code":"kal","name":"Greenlandic"},{"code":"kam","name":"Kamba (Kenya)"},{"code":"kan","name":"Kannada"},{"code":"kao","name":"Xaasongaxango"},{"code":"kap","name":"Bezhta"},{"code":"kaq","name":"Capanahua"},{"code":"kas","name":"Kashmiri"},{"code":"kat","name":"Georgian"},{"code":"kau","name":"Kanuri"},{"code":"kav","name":"Katukína"},{"code":"kaw","name":"Kawi"},{"code":"kax","name":"Kao"},{"code":"kay","name":"Kamayurá"},{"code":"kaz","name":"Kazakh"},{"code":"kba","name":"Kalarko"},{"code":"kbb","name":"Kaxuiâna"},{"code":"kbc","name":"Kadiwéu"},{"code":"kbd","name":"Kabardian"},{"code":"kbe","name":"Kanju"},{"code":"kbg","name":"Khamba"},{"code":"kbh","name":"Camsá"},{"code":"kbi","name":"Kaptiau"},{"code":"kbj","name":"Kari"},{"code":"kbk","name":"Grass Koiari"},{"code":"kbl","name":"Kanembu"},{"code":"kbm","name":"Iwal"},{"code":"kbn","name":"Kare (Central African Republic)"},{"code":"kbo","name":"Keliko"},{"code":"kbp","name":"Kabiyè"},{"code":"kbq","name":"Kamano"},{"code":"kbr","name":"Kafa"},{"code":"kbs","name":"Kande"},{"code":"kbt","name":"Abadi"},{"code":"kbu","name":"Kabutra"},{"code":"kbv","name":"Dera (Indonesia)"},{"code":"kbw","name":"Kaiep"},{"code":"kbx","name":"Ap Ma"},{"code":"kby","name":"Manga Kanuri"},{"code":"kbz","name":"Duhwa"},{"code":"kca","name":"Khanty"},{"code":"kcb","name":"Kawacha"},{"code":"kcc","name":"Lubila"},{"code":"kcd","name":"Ngkâlmpw Kanum"},{"code":"kce","name":"Kaivi"},{"code":"kcf","name":"Ukaan"},{"code":"kcg","name":"Tyap"},{"code":"kch","name":"Vono"},{"code":"kci","name":"Kamantan"},{"code":"kcj","name":"Kobiana"},{"code":"kck","name":"Kalanga"},{"code":"kcl","name":"Kala"},{"code":"kcm","name":"Gula (Central African Republic)"},{"code":"kcn","name":"Nubi"},{"code":"kco","name":"Kinalakna"},{"code":"kcp","name":"Kanga"},{"code":"kcq","name":"Kamo"},{"code":"kcr","name":"Katla"},{"code":"kcs","name":"Koenoem"},{"code":"kct","name":"Kaian"},{"code":"kcu","name":"Kami (Tanzania)"},{"code":"kcv","name":"Kete"},{"code":"kcw","name":"Kabwari"},{"code":"kcx","name":"Kachama-Ganjule"},{"code":"kcy","name":"Korandje"},{"code":"kcz","name":"Konongo"},{"code":"kda","name":"Worimi"},{"code":"kdc","name":"Kutu"},{"code":"kdd","name":"Yankunytjatjara"},{"code":"kde","name":"Makonde"},{"code":"kdf","name":"Mamusi"},{"code":"kdg","name":"Seba"},{"code":"kdh","name":"Tem"},{"code":"kdi","name":"Kumam"},{"code":"kdj","name":"Karamojong"},{"code":"kdk","name":"Kwényi"},{"code":"kdl","name":"Tsikimba"},{"code":"kdm","name":"Kagoma"},{"code":"kdn","name":"Kunda"},{"code":"kdp","name":"Kaningdon-Nindem"},{"code":"kdq","name":"Koch"},{"code":"kdr","name":"Karaim"},{"code":"kdt","name":"Kuy"},{"code":"kdu","name":"Kadaru"},{"code":"kdw","name":"Koneraw"},{"code":"kdx","name":"Kam"},{"code":"kdy","name":"Keder"},{"code":"kdz","name":"Kwaja"},{"code":"kea","name":"Kabuverdianu"},{"code":"keb","name":"Kélé"},{"code":"kec","name":"Keiga"},{"code":"ked","name":"Kerewe"},{"code":"kee","name":"Eastern Keres"},{"code":"kef","name":"Kpessi"},{"code":"keg","name":"Tese"},{"code":"keh","name":"Keak"},{"code":"kei","name":"Kei"},{"code":"kej","name":"Kadar"},{"code":"kek","name":"Kekchí"},{"code":"kel","name":"Kela (Democratic Republic of Congo)"},{"code":"kem","name":"Kemak"},{"code":"ken","name":"Kenyang"},{"code":"keo","name":"Kakwa"},{"code":"kep","name":"Kaikadi"},{"code":"keq","name":"Kamar"},{"code":"ker","name":"Kera"},{"code":"kes","name":"Kugbo"},{"code":"ket","name":"Ket"},{"code":"keu","name":"Akebu"},{"code":"kev","name":"Kanikkaran"},{"code":"kew","name":"West Kewa"},{"code":"kex","name":"Kukna"},{"code":"key","name":"Kupia"},{"code":"kez","name":"Kukele"},{"code":"kfa","name":"Kodava"},{"code":"kfb","name":"Northwestern Kolami"},{"code":"kfc","name":"Konda-Dora"},{"code":"kfd","name":"Korra Koraga"},{"code":"kfe","name":"Kota (India)"},{"code":"kff","name":"Koya"},{"code":"kfg","name":"Kudiya"},{"code":"kfh","name":"Kurichiya"},{"code":"kfi","name":"Kannada Kurumba"},{"code":"kfj","name":"Kemiehua"},{"code":"kfk","name":"Kinnauri"},{"code":"kfl","name":"Kung"},{"code":"kfm","name":"Khunsari"},{"code":"kfn","name":"Kuk"},{"code":"kfo","name":"Koro (Côte d'Ivoire)"},{"code":"kfp","name":"Korwa"},{"code":"kfq","name":"Korku"},{"code":"kfr","name":"Kachhi"},{"code":"kfs","name":"Bilaspuri"},{"code":"kft","name":"Kanjari"},{"code":"kfu","name":"Katkari"},{"code":"kfv","name":"Kurmukar"},{"code":"kfw","name":"Kharam Naga"},{"code":"kfx","name":"Kullu Pahari"},{"code":"kfy","name":"Kumaoni"},{"code":"kfz","name":"Koromfé"},{"code":"kga","name":"Koyaga"},{"code":"kgb","name":"Kawe"},{"code":"kge","name":"Komering"},{"code":"kgf","name":"Kube"},{"code":"kgg","name":"Kusunda"},{"code":"kgi","name":"Selangor Sign Language"},{"code":"kgj","name":"Gamale Kham"},{"code":"kgk","name":"Kaiwá"},{"code":"kgl","name":"Kunggari"},{"code":"kgm","name":"Karipúna"},{"code":"kgn","name":"Karingani"},{"code":"kgo","name":"Krongo"},{"code":"kgp","name":"Kaingang"},{"code":"kgq","name":"Kamoro"},{"code":"kgr","name":"Abun"},{"code":"kgs","name":"Kumbainggar"},{"code":"kgt","name":"Somyev"},{"code":"kgu","name":"Kobol"},{"code":"kgv","name":"Karas"},{"code":"kgw","name":"Karon Dori"},{"code":"kgx","name":"Kamaru"},{"code":"kgy","name":"Kyerung"},{"code":"kha","name":"Khasi"},{"code":"khb","name":"Lü"},{"code":"khc","name":"Tukang Besi North"},{"code":"khd","name":"Bädi Kanum"},{"code":"khe","name":"Korowai"},{"code":"khf","name":"Khuen"},{"code":"khg","name":"Khams Tibetan"},{"code":"khh","name":"Kehu"},{"code":"khj","name":"Kuturmi"},{"code":"khk","name":"Halh Mongolian"},{"code":"khl","name":"Lusi"},{"code":"khm","name":"Khmer"},{"code":"khn","name":"Khandesi"},{"code":"kho","name":"Khotanese"},{"code":"khp","name":"Kapauri"},{"code":"khq","name":"Koyra Chiini Songhay"},{"code":"khr","name":"Kharia"},{"code":"khs","name":"Kasua"},{"code":"kht","name":"Khamti"},{"code":"khu","name":"Nkhumbi"},{"code":"khv","name":"Khvarshi"},{"code":"khw","name":"Khowar"},{"code":"khx","name":"Kanu"},{"code":"khy","name":"Kele (Democratic Republic of Congo)"},{"code":"khz","name":"Keapara"},{"code":"kia","name":"Kim"},{"code":"kib","name":"Koalib"},{"code":"kic","name":"Kickapoo"},{"code":"kid","name":"Koshin"},{"code":"kie","name":"Kibet"},{"code":"kif","name":"Eastern Parbate Kham"},{"code":"kig","name":"Kimaama"},{"code":"kih","name":"Kilmeri"},{"code":"kii","name":"Kitsai"},{"code":"kij","name":"Kilivila"},{"code":"kik","name":"Gikuyu"},{"code":"kil","name":"Kariya"},{"code":"kim","name":"Karagas"},{"code":"kin","name":"Kinyarwanda"},{"code":"kio","name":"Kiowa"},{"code":"kip","name":"Sheshi Kham"},{"code":"kiq","name":"Kosadle"},{"code":"kir","name":"Kirghiz"},{"code":"kis","name":"Kis"},{"code":"kit","name":"Agob"},{"code":"kiu","name":"Kirmanjki (individual language)"},{"code":"kiv","name":"Kimbu"},{"code":"kiw","name":"Northeast Kiwai"},{"code":"kix","name":"Khiamniungan Naga"},{"code":"kiy","name":"Kirikiri"},{"code":"kiz","name":"Kisi"},{"code":"kja","name":"Mlap"},{"code":"kjb","name":"Kanjobal"},{"code":"kjc","name":"Coastal Konjo"},{"code":"kjd","name":"Southern Kiwai"},{"code":"kje","name":"Kisar"},{"code":"kjg","name":"Khmu"},{"code":"kjh","name":"Khakas"},{"code":"kji","name":"Zabana"},{"code":"kjj","name":"Khinalugh"},{"code":"kjk","name":"Highland Konjo"},{"code":"kjl","name":"Western Parbate Kham"},{"code":"kjm","name":"Kháng"},{"code":"kjn","name":"Kunjen"},{"code":"kjo","name":"Harijan Kinnauri"},{"code":"kjp","name":"Pwo Eastern Karen"},{"code":"kjq","name":"Western Keres"},{"code":"kjr","name":"Kurudu"},{"code":"kjs","name":"East Kewa"},{"code":"kjt","name":"Phrae Pwo Karen"},{"code":"kju","name":"Kashaya"},{"code":"kjv","name":"Kaikavian Literary Language"},{"code":"kjx","name":"Ramopa"},{"code":"kjy","name":"Erave"},{"code":"kjz","name":"Bumthangkha"},{"code":"kka","name":"Kakanda"},{"code":"kkb","name":"Kwerisa"},{"code":"kkc","name":"Odoodee"},{"code":"kkd","name":"Kinuku"},{"code":"kke","name":"Kakabe"},{"code":"kkf","name":"Kalaktang Monpa"},{"code":"kkg","name":"Mabaka Valley Kalinga"},{"code":"kkh","name":"Khün"},{"code":"kki","name":"Kagulu"},{"code":"kkj","name":"Kako"},{"code":"kkk","name":"Kokota"},{"code":"kkl","name":"Kosarek Yale"},{"code":"kkm","name":"Kiong"},{"code":"kkn","name":"Kon Keu"},{"code":"kko","name":"Karko"},{"code":"kkp","name":"Gugubera"},{"code":"kkq","name":"Kaeku"},{"code":"kkr","name":"Kir-Balar"},{"code":"kks","name":"Giiwo"},{"code":"kkt","name":"Koi"},{"code":"kku","name":"Tumi"},{"code":"kkv","name":"Kangean"},{"code":"kkw","name":"Teke-Kukuya"},{"code":"kkx","name":"Kohin"},{"code":"kky","name":"Guguyimidjir"},{"code":"kkz","name":"Kaska"},{"code":"kla","name":"Klamath-Modoc"},{"code":"klb","name":"Kiliwa"},{"code":"klc","name":"Kolbila"},{"code":"kld","name":"Gamilaraay"},{"code":"kle","name":"Kulung (Nepal)"},{"code":"klf","name":"Kendeje"},{"code":"klg","name":"Tagakaulo"},{"code":"klh","name":"Weliki"},{"code":"kli","name":"Kalumpang"},{"code":"klj","name":"Khalaj"},{"code":"klk","name":"Kono (Nigeria)"},{"code":"kll","name":"Kagan Kalagan"},{"code":"klm","name":"Migum"},{"code":"kln","name":"Kalenjin"},{"code":"klo","name":"Kapya"},{"code":"klp","name":"Kamasa"},{"code":"klq","name":"Rumu"},{"code":"klr","name":"Khaling"},{"code":"kls","name":"Kalasha"},{"code":"klt","name":"Nukna"},{"code":"klu","name":"Klao"},{"code":"klv","name":"Maskelynes"},{"code":"klw","name":"Lindu"},{"code":"klx","name":"Koluwawa"},{"code":"kly","name":"Kalao"},{"code":"klz","name":"Kabola"},{"code":"kma","name":"Konni"},{"code":"kmb","name":"Kimbundu"},{"code":"kmc","name":"Southern Dong"},{"code":"kmd","name":"Majukayang Kalinga"},{"code":"kme","name":"Bakole"},{"code":"kmf","name":"Kare (Papua New Guinea)"},{"code":"kmg","name":"Kâte"},{"code":"kmh","name":"Kalam"},{"code":"kmi","name":"Kami (Nigeria)"},{"code":"kmj","name":"Kumarbhag Paharia"},{"code":"kmk","name":"Limos Kalinga"},{"code":"kml","name":"Tanudan Kalinga"},{"code":"kmm","name":"Kom (India)"},{"code":"kmn","name":"Awtuw"},{"code":"kmo","name":"Kwoma"},{"code":"kmp","name":"Gimme"},{"code":"kmq","name":"Kwama"},{"code":"kmr","name":"Northern Kurdish"},{"code":"kms","name":"Kamasau"},{"code":"kmt","name":"Kemtuik"},{"code":"kmu","name":"Kanite"},{"code":"kmv","name":"Karipúna Creole French"},{"code":"kmw","name":"Komo (Democratic Republic of Congo)"},{"code":"kmx","name":"Waboda"},{"code":"kmy","name":"Koma"},{"code":"kmz","name":"Khorasani Turkish"},{"code":"kna","name":"Dera (Nigeria)"},{"code":"knb","name":"Lubuagan Kalinga"},{"code":"knc","name":"Central Kanuri"},{"code":"knd","name":"Konda"},{"code":"kne","name":"Kankanaey"},{"code":"knf","name":"Mankanya"},{"code":"kng","name":"Koongo"},{"code":"kni","name":"Kanufi"},{"code":"knj","name":"Western Kanjobal"},{"code":"knk","name":"Kuranko"},{"code":"knl","name":"Keninjal"},{"code":"knm","name":"Kanamarí"},{"code":"knn","name":"Konkani (individual language)"},{"code":"kno","name":"Kono (Sierra Leone)"},{"code":"knp","name":"Kwanja"},{"code":"knq","name":"Kintaq"},{"code":"knr","name":"Kaningra"},{"code":"kns","name":"Kensiu"},{"code":"knt","name":"Panoan Katukína"},{"code":"knu","name":"Kono (Guinea)"},{"code":"knv","name":"Tabo"},{"code":"knw","name":"Kung-Ekoka"},{"code":"knx","name":"Kendayan"},{"code":"kny","name":"Kanyok"},{"code":"knz","name":"Kalamsé"},{"code":"koa","name":"Konomala"},{"code":"koc","name":"Kpati"},{"code":"kod","name":"Kodi"},{"code":"koe","name":"Kacipo-Bale Suri"},{"code":"kof","name":"Kubi"},{"code":"kog","name":"Cogui"},{"code":"koh","name":"Koyo"},{"code":"koi","name":"Komi-Permyak"},{"code":"kok","name":"Konkani (macrolanguage)"},{"code":"kol","name":"Kol (Papua New Guinea)"},{"code":"kom","name":"Komi"},{"code":"kon","name":"Kongo"},{"code":"koo","name":"Konzo"},{"code":"kop","name":"Waube"},{"code":"koq","name":"Kota (Gabon)"},{"code":"kor","name":"Korean"},{"code":"kos","name":"Kosraean"},{"code":"kot","name":"Lagwan"},{"code":"kou","name":"Koke"},{"code":"kov","name":"Kudu-Camo"},{"code":"kow","name":"Kugama"},{"code":"koy","name":"Koyukon"},{"code":"koz","name":"Korak"},{"code":"kpa","name":"Kutto"},{"code":"kpb","name":"Mullu Kurumba"},{"code":"kpc","name":"Curripaco"},{"code":"kpd","name":"Koba"},{"code":"kpe","name":"Kpelle"},{"code":"kpf","name":"Komba"},{"code":"kpg","name":"Kapingamarangi"},{"code":"kph","name":"Kplang"},{"code":"kpi","name":"Kofei"},{"code":"kpj","name":"Karajá"},{"code":"kpk","name":"Kpan"},{"code":"kpl","name":"Kpala"},{"code":"kpm","name":"Koho"},{"code":"kpn","name":"Kepkiriwát"},{"code":"kpo","name":"Ikposo"},{"code":"kpq","name":"Korupun-Sela"},{"code":"kpr","name":"Korafe-Yegha"},{"code":"kps","name":"Tehit"},{"code":"kpt","name":"Karata"},{"code":"kpu","name":"Kafoa"},{"code":"kpv","name":"Komi-Zyrian"},{"code":"kpw","name":"Kobon"},{"code":"kpx","name":"Mountain Koiali"},{"code":"kpy","name":"Koryak"},{"code":"kpz","name":"Kupsabiny"},{"code":"kqa","name":"Mum"},{"code":"kqb","name":"Kovai"},{"code":"kqc","name":"Doromu-Koki"},{"code":"kqd","name":"Koy Sanjaq Surat"},{"code":"kqe","name":"Kalagan"},{"code":"kqf","name":"Kakabai"},{"code":"kqg","name":"Khe"},{"code":"kqh","name":"Kisankasa"},{"code":"kqi","name":"Koitabu"},{"code":"kqj","name":"Koromira"},{"code":"kqk","name":"Kotafon Gbe"},{"code":"kql","name":"Kyenele"},{"code":"kqm","name":"Khisa"},{"code":"kqn","name":"Kaonde"},{"code":"kqo","name":"Eastern Krahn"},{"code":"kqp","name":"Kimré"},{"code":"kqq","name":"Krenak"},{"code":"kqr","name":"Kimaragang"},{"code":"kqs","name":"Northern Kissi"},{"code":"kqt","name":"Klias River Kadazan"},{"code":"kqu","name":"Seroa"},{"code":"kqv","name":"Okolod"},{"code":"kqw","name":"Kandas"},{"code":"kqx","name":"Mser"},{"code":"kqy","name":"Koorete"},{"code":"kqz","name":"Korana"},{"code":"kra","name":"Kumhali"},{"code":"krb","name":"Karkin"},{"code":"krc","name":"Karachay-Balkar"},{"code":"krd","name":"Kairui-Midiki"},{"code":"kre","name":"Panará"},{"code":"krf","name":"Koro (Vanuatu)"},{"code":"krh","name":"Kurama"},{"code":"kri","name":"Krio"},{"code":"krj","name":"Kinaray-A"},{"code":"krk","name":"Kerek"},{"code":"krl","name":"Karelian"},{"code":"krn","name":"Sapo"},{"code":"krp","name":"Korop"},{"code":"krr","name":"Krung"},{"code":"krs","name":"Gbaya (Sudan)"},{"code":"krt","name":"Tumari Kanuri"},{"code":"kru","name":"Kurukh"},{"code":"krv","name":"Kavet"},{"code":"krw","name":"Western Krahn"},{"code":"krx","name":"Karon"},{"code":"kry","name":"Kryts"},{"code":"krz","name":"Sota Kanum"},{"code":"ksa","name":"Shuwa-Zamani"},{"code":"ksb","name":"Shambala"},{"code":"ksc","name":"Southern Kalinga"},{"code":"ksd","name":"Kuanua"},{"code":"kse","name":"Kuni"},{"code":"ksf","name":"Bafia"},{"code":"ksg","name":"Kusaghe"},{"code":"ksh","name":"Kölsch"},{"code":"ksi","name":"I'saka"},{"code":"ksj","name":"Uare"},{"code":"ksk","name":"Kansa"},{"code":"ksl","name":"Kumalu"},{"code":"ksm","name":"Kumba"},{"code":"ksn","name":"Kasiguranin"},{"code":"kso","name":"Kofa"},{"code":"ksp","name":"Kaba"},{"code":"ksq","name":"Kwaami"},{"code":"ksr","name":"Borong"},{"code":"kss","name":"Southern Kisi"},{"code":"kst","name":"Winyé"},{"code":"ksu","name":"Khamyang"},{"code":"ksv","name":"Kusu"},{"code":"ksw","name":"S'gaw Karen"},{"code":"ksx","name":"Kedang"},{"code":"ksy","name":"Kharia Thar"},{"code":"ksz","name":"Kodaku"},{"code":"kta","name":"Katua"},{"code":"ktb","name":"Kambaata"},{"code":"ktc","name":"Kholok"},{"code":"ktd","name":"Kokata"},{"code":"kte","name":"Nubri"},{"code":"ktf","name":"Kwami"},{"code":"ktg","name":"Kalkutung"},{"code":"kth","name":"Karanga"},{"code":"kti","name":"North Muyu"},{"code":"ktj","name":"Plapo Krumen"},{"code":"ktk","name":"Kaniet"},{"code":"ktl","name":"Koroshi"},{"code":"ktm","name":"Kurti"},{"code":"ktn","name":"Karitiâna"},{"code":"kto","name":"Kuot"},{"code":"ktp","name":"Kaduo"},{"code":"ktq","name":"Katabaga"},{"code":"kts","name":"South Muyu"},{"code":"ktt","name":"Ketum"},{"code":"ktu","name":"Kituba (Democratic Republic of Congo)"},{"code":"ktv","name":"Eastern Katu"},{"code":"ktw","name":"Kato"},{"code":"ktx","name":"Kaxararí"},{"code":"kty","name":"Kango (Bas-Uélé District)"},{"code":"ktz","name":"Juǀʼhoan"},{"code":"kua","name":"Kuanyama"},{"code":"kub","name":"Kutep"},{"code":"kuc","name":"Kwinsu"},{"code":"kud","name":"'Auhelawa"},{"code":"kue","name":"Kuman (Papua New Guinea)"},{"code":"kuf","name":"Western Katu"},{"code":"kug","name":"Kupa"},{"code":"kuh","name":"Kushi"},{"code":"kui","name":"Kalapalo"},{"code":"kuj","name":"Kuria"},{"code":"kuk","name":"Kepo'"},{"code":"kul","name":"Kulere"},{"code":"kum","name":"Kumyk"},{"code":"kun","name":"Kunama"},{"code":"kuo","name":"Kumukio"},{"code":"kup","name":"Kunimaipa"},{"code":"kuq","name":"Karipuna"},{"code":"kur","name":"Kurdish"},{"code":"kus","name":"Kusaal"},{"code":"kut","name":"Kutenai"},{"code":"kuu","name":"Upper Kuskokwim"},{"code":"kuv","name":"Kur"},{"code":"kuw","name":"Kpagua"},{"code":"kux","name":"Kukatja"},{"code":"kuy","name":"Kuuku-Ya'u"},{"code":"kuz","name":"Kunza"},{"code":"kva","name":"Bagvalal"},{"code":"kvb","name":"Kubu"},{"code":"kvc","name":"Kove"},{"code":"kvd","name":"Kui (Indonesia)"},{"code":"kve","name":"Kalabakan"},{"code":"kvf","name":"Kabalai"},{"code":"kvg","name":"Kuni-Boazi"},{"code":"kvh","name":"Komodo"},{"code":"kvi","name":"Kwang"},{"code":"kvj","name":"Psikye"},{"code":"kvk","name":"Korean Sign Language"},{"code":"kvl","name":"Kayaw"},{"code":"kvm","name":"Kendem"},{"code":"kvn","name":"Border Kuna"},{"code":"kvo","name":"Dobel"},{"code":"kvp","name":"Kompane"},{"code":"kvq","name":"Geba Karen"},{"code":"kvr","name":"Kerinci"},{"code":"kvt","name":"Lahta"},{"code":"kvu","name":"Yinbaw Karen"},{"code":"kvv","name":"Kola"},{"code":"kvw","name":"Wersing"},{"code":"kvx","name":"Parkari Koli"},{"code":"kvy","name":"Yintale"},{"code":"kvz","name":"Tsakwambo"},{"code":"kwa","name":"Dâw"},{"code":"kwb","name":"Kwa"},{"code":"kwc","name":"Likwala"},{"code":"kwd","name":"Kwaio"},{"code":"kwe","name":"Kwerba"},{"code":"kwf","name":"Kwara'ae"},{"code":"kwg","name":"Sara Kaba Deme"},{"code":"kwh","name":"Kowiai"},{"code":"kwi","name":"Awa-Cuaiquer"},{"code":"kwj","name":"Kwanga"},{"code":"kwk","name":"Kwakiutl"},{"code":"kwl","name":"Kofyar"},{"code":"kwm","name":"Kwambi"},{"code":"kwn","name":"Kwangali"},{"code":"kwo","name":"Kwomtari"},{"code":"kwp","name":"Kodia"},{"code":"kwr","name":"Kwer"},{"code":"kws","name":"Kwese"},{"code":"kwt","name":"Kwesten"},{"code":"kwu","name":"Kwakum"},{"code":"kwv","name":"Sara Kaba Náà"},{"code":"kww","name":"Kwinti"},{"code":"kwx","name":"Khirwar"},{"code":"kwy","name":"San Salvador Kongo"},{"code":"kwz","name":"Kwadi"},{"code":"kxa","name":"Kairiru"},{"code":"kxb","name":"Krobu"},{"code":"kxc","name":"Khonso"},{"code":"kxd","name":"Brunei"},{"code":"kxf","name":"Manumanaw"},{"code":"kxh","name":"Karo (Ethiopia)"},{"code":"kxi","name":"Keningau Murut"},{"code":"kxj","name":"Kulfa"},{"code":"kxk","name":"Zayein Karen"},{"code":"kxm","name":"Northern Khmer"},{"code":"kxn","name":"Kanowit-Tanjong Melanau"},{"code":"kxo","name":"Kanoé"},{"code":"kxp","name":"Wadiyara Koli"},{"code":"kxq","name":"Smärky Kanum"},{"code":"kxr","name":"Koro (Papua New Guinea)"},{"code":"kxs","name":"Kangjia"},{"code":"kxt","name":"Koiwat"},{"code":"kxv","name":"Kuvi"},{"code":"kxw","name":"Konai"},{"code":"kxx","name":"Likuba"},{"code":"kxy","name":"Kayong"},{"code":"kxz","name":"Kerewo"},{"code":"kya","name":"Kwaya"},{"code":"kyb","name":"Butbut Kalinga"},{"code":"kyc","name":"Kyaka"},{"code":"kyd","name":"Karey"},{"code":"kye","name":"Krache"},{"code":"kyf","name":"Kouya"},{"code":"kyg","name":"Keyagana"},{"code":"kyh","name":"Karok"},{"code":"kyi","name":"Kiput"},{"code":"kyj","name":"Karao"},{"code":"kyk","name":"Kamayo"},{"code":"kyl","name":"Kalapuya"},{"code":"kym","name":"Kpatili"},{"code":"kyn","name":"Northern Binukidnon"},{"code":"kyo","name":"Kelon"},{"code":"kyp","name":"Kang"},{"code":"kyq","name":"Kenga"},{"code":"kyr","name":"Kuruáya"},{"code":"kys","name":"Baram Kayan"},{"code":"kyt","name":"Kayagar"},{"code":"kyu","name":"Western Kayah"},{"code":"kyv","name":"Kayort"},{"code":"kyw","name":"Kudmali"},{"code":"kyx","name":"Rapoisi"},{"code":"kyy","name":"Kambaira"},{"code":"kyz","name":"Kayabí"},{"code":"kza","name":"Western Karaboro"},{"code":"kzb","name":"Kaibobo"},{"code":"kzc","name":"Bondoukou Kulango"},{"code":"kzd","name":"Kadai"},{"code":"kze","name":"Kosena"},{"code":"kzf","name":"Da'a Kaili"},{"code":"kzg","name":"Kikai"},{"code":"kzi","name":"Kelabit"},{"code":"kzk","name":"Kazukuru"},{"code":"kzl","name":"Kayeli"},{"code":"kzm","name":"Kais"},{"code":"kzn","name":"Kokola"},{"code":"kzo","name":"Kaningi"},{"code":"kzp","name":"Kaidipang"},{"code":"kzq","name":"Kaike"},{"code":"kzr","name":"Karang"},{"code":"kzs","name":"Sugut Dusun"},{"code":"kzu","name":"Kayupulau"},{"code":"kzv","name":"Komyandaret"},{"code":"kzw","name":"Karirí-Xocó"},{"code":"kzx","name":"Kamarian"},{"code":"kzy","name":"Kango (Tshopo District)"},{"code":"kzz","name":"Kalabra"},{"code":"laa","name":"Southern Subanen"},{"code":"lab","name":"Linear A"},{"code":"lac","name":"Lacandon"},{"code":"lad","name":"Ladino"},{"code":"lae","name":"Pattani"},{"code":"laf","name":"Lafofa"},{"code":"lag","name":"Langi"},{"code":"lah","name":"Lahnda"},{"code":"lai","name":"Lambya"},{"code":"laj","name":"Lango (Uganda)"},{"code":"lak","name":"Laka (Nigeria)"},{"code":"lal","name":"Lalia"},{"code":"lam","name":"Lamba"},{"code":"lan","name":"Laru"},{"code":"lao","name":"Lao"},{"code":"lap","name":"Laka (Chad)"},{"code":"laq","name":"Qabiao"},{"code":"lar","name":"Larteh"},{"code":"las","name":"Lama (Togo)"},{"code":"lat","name":"Latin"},{"code":"lau","name":"Laba"},{"code":"lav","name":"Latvian"},{"code":"law","name":"Lauje"},{"code":"lax","name":"Tiwa"},{"code":"lay","name":"Lama Bai"},{"code":"laz","name":"Aribwatsa"},{"code":"lbb","name":"Label"},{"code":"lbc","name":"Lakkia"},{"code":"lbe","name":"Lak"},{"code":"lbf","name":"Tinani"},{"code":"lbg","name":"Laopang"},{"code":"lbi","name":"La'bi"},{"code":"lbj","name":"Ladakhi"},{"code":"lbk","name":"Central Bontok"},{"code":"lbl","name":"Libon Bikol"},{"code":"lbm","name":"Lodhi"},{"code":"lbn","name":"Rmeet"},{"code":"lbo","name":"Laven"},{"code":"lbq","name":"Wampar"},{"code":"lbr","name":"Lohorung"},{"code":"lbs","name":"Libyan Sign Language"},{"code":"lbt","name":"Lachi"},{"code":"lbu","name":"Labu"},{"code":"lbv","name":"Lavatbura-Lamusong"},{"code":"lbw","name":"Tolaki"},{"code":"lbx","name":"Lawangan"},{"code":"lby","name":"Lamalama"},{"code":"lbz","name":"Lardil"},{"code":"lcc","name":"Legenyem"},{"code":"lcd","name":"Lola"},{"code":"lce","name":"Loncong"},{"code":"lcf","name":"Lubu"},{"code":"lch","name":"Luchazi"},{"code":"lcl","name":"Lisela"},{"code":"lcm","name":"Tungag"},{"code":"lcp","name":"Western Lawa"},{"code":"lcq","name":"Luhu"},{"code":"lcs","name":"Lisabata-Nuniali"},{"code":"lda","name":"Kla-Dan"},{"code":"ldb","name":"Dũya"},{"code":"ldd","name":"Luri"},{"code":"ldg","name":"Lenyima"},{"code":"ldh","name":"Lamja-Dengsa-Tola"},{"code":"ldi","name":"Laari"},{"code":"ldj","name":"Lemoro"},{"code":"ldk","name":"Leelau"},{"code":"ldl","name":"Kaan"},{"code":"ldm","name":"Landoma"},{"code":"ldn","name":"Láadan"},{"code":"ldo","name":"Loo"},{"code":"ldp","name":"Tso"},{"code":"ldq","name":"Lufu"},{"code":"lea","name":"Lega-Shabunda"},{"code":"leb","name":"Lala-Bisa"},{"code":"lec","name":"Leco"},{"code":"led","name":"Lendu"},{"code":"lee","name":"Lyélé"},{"code":"lef","name":"Lelemi"},{"code":"leh","name":"Lenje"},{"code":"lei","name":"Lemio"},{"code":"lej","name":"Lengola"},{"code":"lek","name":"Leipon"},{"code":"lel","name":"Lele (Democratic Republic of Congo)"},{"code":"lem","name":"Nomaande"},{"code":"len","name":"Lenca"},{"code":"leo","name":"Leti (Cameroon)"},{"code":"lep","name":"Lepcha"},{"code":"leq","name":"Lembena"},{"code":"ler","name":"Lenkau"},{"code":"les","name":"Lese"},{"code":"let","name":"Amio-Gelimi"},{"code":"leu","name":"Kara (Papua New Guinea)"},{"code":"lev","name":"Lamma"},{"code":"lew","name":"Ledo Kaili"},{"code":"lex","name":"Luang"},{"code":"ley","name":"Lemolang"},{"code":"lez","name":"Lezghian"},{"code":"lfa","name":"Lefa"},{"code":"lfn","name":"Lingua Franca Nova"},{"code":"lga","name":"Lungga"},{"code":"lgb","name":"Laghu"},{"code":"lgg","name":"Lugbara"},{"code":"lgh","name":"Laghuu"},{"code":"lgi","name":"Lengilu"},{"code":"lgk","name":"Lingarak"},{"code":"lgl","name":"Wala"},{"code":"lgm","name":"Lega-Mwenga"},{"code":"lgn","name":"Opuuo"},{"code":"lgq","name":"Logba"},{"code":"lgr","name":"Lengo"},{"code":"lgt","name":"Pahi"},{"code":"lgu","name":"Longgu"},{"code":"lgz","name":"Ligenza"},{"code":"lha","name":"Laha (Viet Nam)"},{"code":"lhh","name":"Laha (Indonesia)"},{"code":"lhi","name":"Lahu Shi"},{"code":"lhl","name":"Lahul Lohar"},{"code":"lhm","name":"Lhomi"},{"code":"lhn","name":"Lahanan"},{"code":"lhp","name":"Lhokpu"},{"code":"lhs","name":"Mlahsö"},{"code":"lht","name":"Lo-Toga"},{"code":"lhu","name":"Lahu"},{"code":"lia","name":"West-Central Limba"},{"code":"lib","name":"Likum"},{"code":"lic","name":"Hlai"},{"code":"lid","name":"Nyindrou"},{"code":"lie","name":"Likila"},{"code":"lif","name":"Limbu"},{"code":"lig","name":"Ligbi"},{"code":"lih","name":"Lihir"},{"code":"lij","name":"Ligurian"},{"code":"lik","name":"Lika"},{"code":"lil","name":"Lillooet"},{"code":"lim","name":"Limburgan"},{"code":"lin","name":"Lingala"},{"code":"lio","name":"Liki"},{"code":"lip","name":"Sekpele"},{"code":"liq","name":"Libido"},{"code":"lir","name":"Liberian English"},{"code":"lis","name":"Lisu"},{"code":"lit","name":"Lithuanian"},{"code":"liu","name":"Logorik"},{"code":"liv","name":"Liv"},{"code":"liw","name":"Col"},{"code":"lix","name":"Liabuku"},{"code":"liy","name":"Banda-Bambari"},{"code":"liz","name":"Libinza"},{"code":"lja","name":"Golpa"},{"code":"lje","name":"Rampi"},{"code":"lji","name":"Laiyolo"},{"code":"ljl","name":"Li'o"},{"code":"ljp","name":"Lampung Api"},{"code":"ljw","name":"Yirandali"},{"code":"ljx","name":"Yuru"},{"code":"lka","name":"Lakalei"},{"code":"lkb","name":"Kabras"},{"code":"lkc","name":"Kucong"},{"code":"lkd","name":"Lakondê"},{"code":"lke","name":"Kenyi"},{"code":"lkh","name":"Lakha"},{"code":"lki","name":"Laki"},{"code":"lkj","name":"Remun"},{"code":"lkl","name":"Laeko-Libuat"},{"code":"lkm","name":"Kalaamaya"},{"code":"lkn","name":"Lakon"},{"code":"lko","name":"Khayo"},{"code":"lkr","name":"Päri"},{"code":"lks","name":"Kisa"},{"code":"lkt","name":"Lakota"},{"code":"lku","name":"Kungkari"},{"code":"lky","name":"Lokoya"},{"code":"lla","name":"Lala-Roba"},{"code":"llb","name":"Lolo"},{"code":"llc","name":"Lele (Guinea)"},{"code":"lld","name":"Ladin"},{"code":"lle","name":"Lele (Papua New Guinea)"},{"code":"llf","name":"Hermit"},{"code":"llg","name":"Lole"},{"code":"llh","name":"Lamu"},{"code":"lli","name":"Teke-Laali"},{"code":"llj","name":"Ladji Ladji"},{"code":"llk","name":"Lelak"},{"code":"lll","name":"Lilau"},{"code":"llm","name":"Lasalimu"},{"code":"lln","name":"Lele (Chad)"},{"code":"llp","name":"North Efate"},{"code":"llq","name":"Lolak"},{"code":"lls","name":"Lithuanian Sign Language"},{"code":"llu","name":"Lau"},{"code":"llx","name":"Lauan"},{"code":"lma","name":"East Limba"},{"code":"lmb","name":"Merei"},{"code":"lmc","name":"Limilngan"},{"code":"lmd","name":"Lumun"},{"code":"lme","name":"Pévé"},{"code":"lmf","name":"South Lembata"},{"code":"lmg","name":"Lamogai"},{"code":"lmh","name":"Lambichhong"},{"code":"lmi","name":"Lombi"},{"code":"lmj","name":"West Lembata"},{"code":"lmk","name":"Lamkang"},{"code":"lml","name":"Hano"},{"code":"lmn","name":"Lambadi"},{"code":"lmo","name":"Lombard"},{"code":"lmp","name":"Limbum"},{"code":"lmq","name":"Lamatuka"},{"code":"lmr","name":"Lamalera"},{"code":"lmu","name":"Lamenu"},{"code":"lmv","name":"Lomaiviti"},{"code":"lmw","name":"Lake Miwok"},{"code":"lmx","name":"Laimbue"},{"code":"lmy","name":"Lamboya"},{"code":"lna","name":"Langbashe"},{"code":"lnb","name":"Mbalanhu"},{"code":"lnd","name":"Lun Bawang"},{"code":"lng","name":"Langobardic"},{"code":"lnh","name":"Lanoh"},{"code":"lni","name":"Daantanai'"},{"code":"lnj","name":"Leningitij"},{"code":"lnl","name":"South Central Banda"},{"code":"lnm","name":"Langam"},{"code":"lnn","name":"Lorediakarkar"},{"code":"lno","name":"Lango (South Sudan)"},{"code":"lns","name":"Lamnso'"},{"code":"lnu","name":"Longuda"},{"code":"lnw","name":"Lanima"},{"code":"lnz","name":"Lonzo"},{"code":"loa","name":"Loloda"},{"code":"lob","name":"Lobi"},{"code":"loc","name":"Inonhan"},{"code":"loe","name":"Saluan"},{"code":"lof","name":"Logol"},{"code":"log","name":"Logo"},{"code":"loh","name":"Narim"},{"code":"loi","name":"Loma (Côte d'Ivoire)"},{"code":"loj","name":"Lou"},{"code":"lok","name":"Loko"},{"code":"lol","name":"Mongo"},{"code":"lom","name":"Loma (Liberia)"},{"code":"lon","name":"Malawi Lomwe"},{"code":"loo","name":"Lombo"},{"code":"lop","name":"Lopa"},{"code":"loq","name":"Lobala"},{"code":"lor","name":"Téén"},{"code":"los","name":"Loniu"},{"code":"lot","name":"Otuho"},{"code":"lou","name":"Louisiana Creole"},{"code":"lov","name":"Lopi"},{"code":"low","name":"Tampias Lobu"},{"code":"lox","name":"Loun"},{"code":"loy","name":"Loke"},{"code":"loz","name":"Lozi"},{"code":"lpa","name":"Lelepa"},{"code":"lpe","name":"Lepki"},{"code":"lpn","name":"Long Phuri Naga"},{"code":"lpo","name":"Lipo"},{"code":"lpx","name":"Lopit"},{"code":"lra","name":"Rara Bakati'"},{"code":"lrc","name":"Northern Luri"},{"code":"lre","name":"Laurentian"},{"code":"lrg","name":"Laragia"},{"code":"lri","name":"Marachi"},{"code":"lrk","name":"Loarki"},{"code":"lrl","name":"Lari"},{"code":"lrm","name":"Marama"},{"code":"lrn","name":"Lorang"},{"code":"lro","name":"Laro"},{"code":"lrr","name":"Southern Yamphu"},{"code":"lrt","name":"Larantuka Malay"},{"code":"lrv","name":"Larevat"},{"code":"lrz","name":"Lemerig"},{"code":"lsa","name":"Lasgerdi"},{"code":"lsb","name":"Burundian Sign Language"},{"code":"lsd","name":"Lishana Deni"},{"code":"lse","name":"Lusengo"},{"code":"lsh","name":"Lish"},{"code":"lsi","name":"Lashi"},{"code":"lsl","name":"Latvian Sign Language"},{"code":"lsm","name":"Olusamia"},{"code":"lsn","name":"Tibetan Sign Language"},{"code":"lso","name":"Laos Sign Language"},{"code":"lsp","name":"Lengua de Señas Panameñas"},{"code":"lsr","name":"Aruop"},{"code":"lss","name":"Lasi"},{"code":"lst","name":"Trinidad and Tobago Sign Language"},{"code":"lsv","name":"Sivia Sign Language"},{"code":"lsy","name":"Mauritian Sign Language"},{"code":"ltc","name":"Late Middle Chinese"},{"code":"ltg","name":"Latgalian"},{"code":"lth","name":"Thur"},{"code":"lti","name":"Leti (Indonesia)"},{"code":"ltn","name":"Latundê"},{"code":"lto","name":"Olutsotso"},{"code":"lts","name":"Lutachoni"},{"code":"ltu","name":"Latu"},{"code":"ltz","name":"Letzeburgesch"},{"code":"lua","name":"Luba-Lulua"},{"code":"lub","name":"Luba-Katanga"},{"code":"luc","name":"Aringa"},{"code":"lud","name":"Ludian"},{"code":"lue","name":"Luvale"},{"code":"luf","name":"Laua"},{"code":"lug","name":"Ganda"},{"code":"lui","name":"Luiseno"},{"code":"luj","name":"Luna"},{"code":"luk","name":"Lunanakha"},{"code":"lul","name":"Olu'bo"},{"code":"lum","name":"Luimbi"},{"code":"lun","name":"Lunda"},{"code":"luo","name":"Dholuo"},{"code":"lup","name":"Lumbu"},{"code":"luq","name":"Lucumi"},{"code":"lur","name":"Laura"},{"code":"lus","name":"Lushai"},{"code":"lut","name":"Lushootseed"},{"code":"luu","name":"Lumba-Yakkha"},{"code":"luv","name":"Luwati"},{"code":"luw","name":"Luo (Cameroon)"},{"code":"luy","name":"Luyia"},{"code":"luz","name":"Southern Luri"},{"code":"lva","name":"Maku'a"},{"code":"lvi","name":"Lavi"},{"code":"lvk","name":"Lavukaleve"},{"code":"lvs","name":"Standard Latvian"},{"code":"lvu","name":"Levuka"},{"code":"lwa","name":"Lwalu"},{"code":"lwe","name":"Lewo Eleng"},{"code":"lwg","name":"Oluwanga"},{"code":"lwh","name":"White Lachi"},{"code":"lwl","name":"Eastern Lawa"},{"code":"lwm","name":"Laomian"},{"code":"lwo","name":"Luwo"},{"code":"lws","name":"Malawian Sign Language"},{"code":"lwt","name":"Lewotobi"},{"code":"lwu","name":"Lawu"},{"code":"lww","name":"Lewo"},{"code":"lxm","name":"Lakurumau"},{"code":"lya","name":"Layakha"},{"code":"lyg","name":"Lyngngam"},{"code":"lyn","name":"Luyana"},{"code":"lzh","name":"Literary Chinese"},{"code":"lzl","name":"Litzlitz"},{"code":"lzn","name":"Leinong Naga"},{"code":"lzz","name":"Laz"},{"code":"maa","name":"San Jerónimo Tecóatl Mazatec"},{"code":"mab","name":"Yutanduchi Mixtec"},{"code":"mad","name":"Madurese"},{"code":"mae","name":"Bo-Rukul"},{"code":"maf","name":"Mafa"},{"code":"mag","name":"Magahi"},{"code":"mah","name":"Marshallese"},{"code":"mai","name":"Maithili"},{"code":"maj","name":"Jalapa De Díaz Mazatec"},{"code":"mak","name":"Makasar"},{"code":"mal","name":"Malayalam"},{"code":"mam","name":"Mam"},{"code":"man","name":"Manding"},{"code":"maq","name":"Chiquihuitlán Mazatec"},{"code":"mar","name":"Marathi"},{"code":"mas","name":"Masai"},{"code":"mat","name":"San Francisco Matlatzinca"},{"code":"mau","name":"Huautla Mazatec"},{"code":"mav","name":"Sateré-Mawé"},{"code":"maw","name":"Mampruli"},{"code":"max","name":"North Moluccan Malay"},{"code":"maz","name":"Central Mazahua"},{"code":"mba","name":"Higaonon"},{"code":"mbb","name":"Western Bukidnon Manobo"},{"code":"mbc","name":"Macushi"},{"code":"mbd","name":"Dibabawon Manobo"},{"code":"mbe","name":"Molale"},{"code":"mbf","name":"Baba Malay"},{"code":"mbh","name":"Mangseng"},{"code":"mbi","name":"Ilianen Manobo"},{"code":"mbj","name":"Nadëb"},{"code":"mbk","name":"Malol"},{"code":"mbl","name":"Maxakalí"},{"code":"mbm","name":"Ombamba"},{"code":"mbn","name":"Macaguán"},{"code":"mbo","name":"Mbo (Cameroon)"},{"code":"mbp","name":"Malayo"},{"code":"mbq","name":"Maisin"},{"code":"mbr","name":"Nukak Makú"},{"code":"mbs","name":"Sarangani Manobo"},{"code":"mbt","name":"Matigsalug Manobo"},{"code":"mbu","name":"Mbula-Bwazza"},{"code":"mbv","name":"Mbulungish"},{"code":"mbw","name":"Maring"},{"code":"mbx","name":"Mari (East Sepik Province)"},{"code":"mby","name":"Memoni"},{"code":"mbz","name":"Amoltepec Mixtec"},{"code":"mca","name":"Maca"},{"code":"mcb","name":"Machiguenga"},{"code":"mcc","name":"Bitur"},{"code":"mcd","name":"Sharanahua"},{"code":"mce","name":"Itundujia Mixtec"},{"code":"mcf","name":"Matsés"},{"code":"mcg","name":"Mapoyo"},{"code":"mch","name":"Maquiritari"},{"code":"mci","name":"Mese"},{"code":"mcj","name":"Mvanip"},{"code":"mck","name":"Mbunda"},{"code":"mcl","name":"Macaguaje"},{"code":"mcm","name":"Malaccan Creole Portuguese"},{"code":"mcn","name":"Masana"},{"code":"mco","name":"Coatlán Mixe"},{"code":"mcp","name":"Makaa"},{"code":"mcq","name":"Ese"},{"code":"mcr","name":"Menya"},{"code":"mcs","name":"Mambai"},{"code":"mct","name":"Mengisa"},{"code":"mcu","name":"Cameroon Mambila"},{"code":"mcv","name":"Minanibai"},{"code":"mcw","name":"Mawa (Chad)"},{"code":"mcx","name":"Mpiemo"},{"code":"mcy","name":"South Watut"},{"code":"mcz","name":"Mawan"},{"code":"mda","name":"Mada (Nigeria)"},{"code":"mdb","name":"Morigi"},{"code":"mdc","name":"Male (Papua New Guinea)"},{"code":"mdd","name":"Mbum"},{"code":"mde","name":"Maba (Chad)"},{"code":"mdf","name":"Moksha"},{"code":"mdg","name":"Massalat"},{"code":"mdh","name":"Maguindanaon"},{"code":"mdi","name":"Mamvu"},{"code":"mdj","name":"Mangbetu"},{"code":"mdk","name":"Mangbutu"},{"code":"mdl","name":"Maltese Sign Language"},{"code":"mdm","name":"Mayogo"},{"code":"mdn","name":"Mbati"},{"code":"mdp","name":"Mbala"},{"code":"mdq","name":"Mbole"},{"code":"mdr","name":"Mandar"},{"code":"mds","name":"Maria (Papua New Guinea)"},{"code":"mdt","name":"Mbere"},{"code":"mdu","name":"Mboko"},{"code":"mdv","name":"Santa Lucía Monteverde Mixtec"},{"code":"mdw","name":"Mbosi"},{"code":"mdx","name":"Dizin"},{"code":"mdy","name":"Male (Ethiopia)"},{"code":"mdz","name":"Suruí Do Pará"},{"code":"mea","name":"Menka"},{"code":"meb","name":"Ikobi"},{"code":"mec","name":"Marra"},{"code":"med","name":"Melpa"},{"code":"mee","name":"Mengen"},{"code":"mef","name":"Megam"},{"code":"meh","name":"Southwestern Tlaxiaco Mixtec"},{"code":"mei","name":"Midob"},{"code":"mej","name":"Meyah"},{"code":"mek","name":"Mekeo"},{"code":"mel","name":"Central Melanau"},{"code":"mem","name":"Mangala"},{"code":"men","name":"Mende (Sierra Leone)"},{"code":"meo","name":"Kedah Malay"},{"code":"mep","name":"Miriwoong"},{"code":"meq","name":"Merey"},{"code":"mer","name":"Meru"},{"code":"mes","name":"Masmaje"},{"code":"met","name":"Mato"},{"code":"meu","name":"Motu"},{"code":"mev","name":"Mano"},{"code":"mew","name":"Maaka"},{"code":"mey","name":"Hassaniyya"},{"code":"mez","name":"Menominee"},{"code":"mfa","name":"Pattani Malay"},{"code":"mfb","name":"Bangka"},{"code":"mfc","name":"Mba"},{"code":"mfd","name":"Mendankwe-Nkwen"},{"code":"mfe","name":"Morisyen"},{"code":"mff","name":"Naki"},{"code":"mfg","name":"Mogofin"},{"code":"mfh","name":"Matal"},{"code":"mfi","name":"Wandala"},{"code":"mfj","name":"Mefele"},{"code":"mfk","name":"North Mofu"},{"code":"mfl","name":"Putai"},{"code":"mfm","name":"Marghi South"},{"code":"mfn","name":"Cross River Mbembe"},{"code":"mfo","name":"Mbe"},{"code":"mfp","name":"Makassar Malay"},{"code":"mfq","name":"Moba"},{"code":"mfr","name":"Marrithiyel"},{"code":"mfs","name":"Mexican Sign Language"},{"code":"mft","name":"Mokerang"},{"code":"mfu","name":"Mbwela"},{"code":"mfv","name":"Mandjak"},{"code":"mfw","name":"Mulaha"},{"code":"mfx","name":"Melo"},{"code":"mfy","name":"Mayo"},{"code":"mfz","name":"Mabaan"},{"code":"mga","name":"Middle Irish (900-1200)"},{"code":"mgb","name":"Mararit"},{"code":"mgc","name":"Morokodo"},{"code":"mgd","name":"Moru"},{"code":"mge","name":"Mango"},{"code":"mgf","name":"Maklew"},{"code":"mgg","name":"Mpumpong"},{"code":"mgh","name":"Makhuwa-Meetto"},{"code":"mgi","name":"Lijili"},{"code":"mgj","name":"Abureni"},{"code":"mgk","name":"Mawes"},{"code":"mgl","name":"Maleu-Kilenge"},{"code":"mgm","name":"Mambae"},{"code":"mgn","name":"Mbangi"},{"code":"mgo","name":"Meta'"},{"code":"mgp","name":"Eastern Magar"},{"code":"mgq","name":"Malila"},{"code":"mgr","name":"Mambwe-Lungu"},{"code":"mgs","name":"Manda (Tanzania)"},{"code":"mgt","name":"Mongol"},{"code":"mgu","name":"Mailu"},{"code":"mgv","name":"Matengo"},{"code":"mgw","name":"Matumbi"},{"code":"mgy","name":"Mbunga"},{"code":"mgz","name":"Mbugwe"},{"code":"mha","name":"Manda (India)"},{"code":"mhb","name":"Mahongwe"},{"code":"mhc","name":"Mocho"},{"code":"mhd","name":"Mbugu"},{"code":"mhe","name":"Besisi"},{"code":"mhf","name":"Mamaa"},{"code":"mhg","name":"Margu"},{"code":"mhi","name":"Ma'di"},{"code":"mhj","name":"Mogholi"},{"code":"mhk","name":"Mungaka"},{"code":"mhl","name":"Mauwake"},{"code":"mhm","name":"Makhuwa-Moniga"},{"code":"mhn","name":"Mócheno"},{"code":"mho","name":"Mashi (Zambia)"},{"code":"mhp","name":"Balinese Malay"},{"code":"mhq","name":"Mandan"},{"code":"mhr","name":"Eastern Mari"},{"code":"mhs","name":"Buru (Indonesia)"},{"code":"mht","name":"Mandahuaca"},{"code":"mhu","name":"Darang Deng"},{"code":"mhw","name":"Mbukushu"},{"code":"mhx","name":"Lhaovo"},{"code":"mhy","name":"Ma'anyan"},{"code":"mhz","name":"Mor (Mor Islands)"},{"code":"mia","name":"Miami"},{"code":"mib","name":"Atatláhuca Mixtec"},{"code":"mic","name":"Micmac"},{"code":"mid","name":"Mandaic"},{"code":"mie","name":"Ocotepec Mixtec"},{"code":"mif","name":"Mofu-Gudur"},{"code":"mig","name":"San Miguel El Grande Mixtec"},{"code":"mih","name":"Chayuco Mixtec"},{"code":"mii","name":"Chigmecatitlán Mixtec"},{"code":"mij","name":"Abar"},{"code":"mik","name":"Mikasuki"},{"code":"mil","name":"Peñoles Mixtec"},{"code":"mim","name":"Alacatlatzala Mixtec"},{"code":"min","name":"Minangkabau"},{"code":"mio","name":"Pinotepa Nacional Mixtec"},{"code":"mip","name":"Apasco-Apoala Mixtec"},{"code":"miq","name":"Mískito"},{"code":"mir","name":"Isthmus Mixe"},{"code":"mis","name":"Uncoded languages"},{"code":"mit","name":"Southern Puebla Mixtec"},{"code":"miu","name":"Cacaloxtepec Mixtec"},{"code":"miw","name":"Akoye"},{"code":"mix","name":"Mixtepec Mixtec"},{"code":"miy","name":"Ayutla Mixtec"},{"code":"miz","name":"Coatzospan Mixtec"},{"code":"mjb","name":"Makalero"},{"code":"mjc","name":"San Juan Colorado Mixtec"},{"code":"mjd","name":"Northwest Maidu"},{"code":"mje","name":"Muskum"},{"code":"mjg","name":"Tu"},{"code":"mjh","name":"Mwera (Nyasa)"},{"code":"mji","name":"Kim Mun"},{"code":"mjj","name":"Mawak"},{"code":"mjk","name":"Matukar"},{"code":"mjl","name":"Mandeali"},{"code":"mjm","name":"Medebur"},{"code":"mjn","name":"Ma (Papua New Guinea)"},{"code":"mjo","name":"Malankuravan"},{"code":"mjp","name":"Malapandaram"},{"code":"mjq","name":"Malaryan"},{"code":"mjr","name":"Malavedan"},{"code":"mjs","name":"Miship"},{"code":"mjt","name":"Sauria Paharia"},{"code":"mju","name":"Manna-Dora"},{"code":"mjv","name":"Mannan"},{"code":"mjw","name":"Karbi"},{"code":"mjx","name":"Mahali"},{"code":"mjy","name":"Mahican"},{"code":"mjz","name":"Majhi"},{"code":"mka","name":"Mbre"},{"code":"mkb","name":"Mal Paharia"},{"code":"mkc","name":"Siliput"},{"code":"mkd","name":"Macedonian"},{"code":"mke","name":"Mawchi"},{"code":"mkf","name":"Miya"},{"code":"mkg","name":"Mak (China)"},{"code":"mki","name":"Dhatki"},{"code":"mkj","name":"Mokilese"},{"code":"mkk","name":"Byep"},{"code":"mkl","name":"Mokole"},{"code":"mkm","name":"Moklen"},{"code":"mkn","name":"Kupang Malay"},{"code":"mko","name":"Mingang Doso"},{"code":"mkp","name":"Moikodi"},{"code":"mkq","name":"Bay Miwok"},{"code":"mkr","name":"Malas"},{"code":"mks","name":"Silacayoapan Mixtec"},{"code":"mkt","name":"Vamale"},{"code":"mku","name":"Konyanka Maninka"},{"code":"mkv","name":"Mafea"},{"code":"mkw","name":"Kituba (Congo)"},{"code":"mkx","name":"Kinamiging Manobo"},{"code":"mky","name":"East Makian"},{"code":"mkz","name":"Makasae"},{"code":"mla","name":"Malo"},{"code":"mlb","name":"Mbule"},{"code":"mlc","name":"Cao Lan"},{"code":"mle","name":"Manambu"},{"code":"mlf","name":"Mal"},{"code":"mlg","name":"Malagasy"},{"code":"mlh","name":"Mape"},{"code":"mli","name":"Malimpung"},{"code":"mlj","name":"Miltu"},{"code":"mlk","name":"Ilwana"},{"code":"mll","name":"Malua Bay"},{"code":"mlm","name":"Mulam"},{"code":"mln","name":"Malango"},{"code":"mlo","name":"Mlomp"},{"code":"mlp","name":"Bargam"},{"code":"mlq","name":"Western Maninkakan"},{"code":"mlr","name":"Vame"},{"code":"mls","name":"Masalit"},{"code":"mlt","name":"Maltese"},{"code":"mlu","name":"To'abaita"},{"code":"mlv","name":"Motlav"},{"code":"mlw","name":"Moloko"},{"code":"mlx","name":"Malfaxal"},{"code":"mlz","name":"Malaynon"},{"code":"mma","name":"Mama"},{"code":"mmb","name":"Momina"},{"code":"mmc","name":"Michoacán Mazahua"},{"code":"mmd","name":"Maonan"},{"code":"mme","name":"Mae"},{"code":"mmf","name":"Mundat"},{"code":"mmg","name":"North Ambrym"},{"code":"mmh","name":"Mehináku"},{"code":"mmi","name":"Musar"},{"code":"mmj","name":"Majhwar"},{"code":"mmk","name":"Mukha-Dora"},{"code":"mml","name":"Man Met"},{"code":"mmm","name":"Maii"},{"code":"mmn","name":"Mamanwa"},{"code":"mmo","name":"Mangga Buang"},{"code":"mmp","name":"Siawi"},{"code":"mmq","name":"Musak"},{"code":"mmr","name":"Western Xiangxi Miao"},{"code":"mmt","name":"Malalamai"},{"code":"mmu","name":"Mmaala"},{"code":"mmv","name":"Miriti"},{"code":"mmw","name":"Emae"},{"code":"mmx","name":"Madak"},{"code":"mmy","name":"Migaama"},{"code":"mmz","name":"Mabaale"},{"code":"mna","name":"Mbula"},{"code":"mnb","name":"Muna"},{"code":"mnc","name":"Manchu"},{"code":"mnd","name":"Mondé"},{"code":"mne","name":"Naba"},{"code":"mnf","name":"Mundani"},{"code":"mng","name":"Eastern Mnong"},{"code":"mnh","name":"Mono (Democratic Republic of Congo)"},{"code":"mni","name":"Manipuri"},{"code":"mnj","name":"Munji"},{"code":"mnk","name":"Mandinka"},{"code":"mnl","name":"Tiale"},{"code":"mnm","name":"Mapena"},{"code":"mnn","name":"Southern Mnong"},{"code":"mnp","name":"Min Bei Chinese"},{"code":"mnq","name":"Minriq"},{"code":"mnr","name":"Mono (USA)"},{"code":"mns","name":"Mansi"},{"code":"mnu","name":"Mer"},{"code":"mnv","name":"Rennell-Bellona"},{"code":"mnw","name":"Mon"},{"code":"mnx","name":"Manikion"},{"code":"mny","name":"Manyawa"},{"code":"mnz","name":"Moni"},{"code":"moa","name":"Mwan"},{"code":"moc","name":"Mocoví"},{"code":"mod","name":"Mobilian"},{"code":"moe","name":"Innu"},{"code":"mog","name":"Mongondow"},{"code":"moh","name":"Mohawk"},{"code":"moi","name":"Mboi"},{"code":"moj","name":"Monzombo"},{"code":"mok","name":"Morori"},{"code":"mom","name":"Mangue"},{"code":"mon","name":"Mongolian"},{"code":"moo","name":"Monom"},{"code":"mop","name":"Mopán Maya"},{"code":"moq","name":"Mor (Bomberai Peninsula)"},{"code":"mor","name":"Moro"},{"code":"mos","name":"Mossi"},{"code":"mot","name":"Barí"},{"code":"mou","name":"Mogum"},{"code":"mov","name":"Mohave"},{"code":"mow","name":"Moi (Congo)"},{"code":"mox","name":"Molima"},{"code":"moy","name":"Shekkacho"},{"code":"moz","name":"Gergiko"},{"code":"mpa","name":"Mpoto"},{"code":"mpb","name":"Malak Malak"},{"code":"mpc","name":"Mangarrayi"},{"code":"mpd","name":"Machinere"},{"code":"mpe","name":"Majang"},{"code":"mpg","name":"Marba"},{"code":"mph","name":"Maung"},{"code":"mpi","name":"Mpade"},{"code":"mpj","name":"Martu Wangka"},{"code":"mpk","name":"Mbara (Chad)"},{"code":"mpl","name":"Middle Watut"},{"code":"mpm","name":"Yosondúa Mixtec"},{"code":"mpn","name":"Mindiri"},{"code":"mpo","name":"Miu"},{"code":"mpp","name":"Migabac"},{"code":"mpq","name":"Matís"},{"code":"mpr","name":"Vangunu"},{"code":"mps","name":"Dadibi"},{"code":"mpt","name":"Mian"},{"code":"mpu","name":"Makuráp"},{"code":"mpv","name":"Mungkip"},{"code":"mpw","name":"Mapidian"},{"code":"mpx","name":"Misima-Panaeati"},{"code":"mpy","name":"Mapia"},{"code":"mpz","name":"Mpi"},{"code":"mqa","name":"Maba (Indonesia)"},{"code":"mqb","name":"Mbuko"},{"code":"mqc","name":"Mangole"},{"code":"mqe","name":"Matepi"},{"code":"mqf","name":"Momuna"},{"code":"mqg","name":"Kota Bangun Kutai Malay"},{"code":"mqh","name":"Tlazoyaltepec Mixtec"},{"code":"mqi","name":"Mariri"},{"code":"mqj","name":"Mamasa"},{"code":"mqk","name":"Rajah Kabunsuwan Manobo"},{"code":"mql","name":"Mbelime"},{"code":"mqm","name":"South Marquesan"},{"code":"mqn","name":"Moronene"},{"code":"mqo","name":"Modole"},{"code":"mqp","name":"Manipa"},{"code":"mqq","name":"Minokok"},{"code":"mqr","name":"Mander"},{"code":"mqs","name":"West Makian"},{"code":"mqt","name":"Mok"},{"code":"mqu","name":"Mandari"},{"code":"mqv","name":"Mosimo"},{"code":"mqw","name":"Murupi"},{"code":"mqx","name":"Mamuju"},{"code":"mqy","name":"Manggarai"},{"code":"mqz","name":"Pano"},{"code":"mra","name":"Mlabri"},{"code":"mrb","name":"Marino"},{"code":"mrc","name":"Maricopa"},{"code":"mrd","name":"Western Magar"},{"code":"mre","name":"Martha's Vineyard Sign Language"},{"code":"mrf","name":"Elseng"},{"code":"mrg","name":"Mising"},{"code":"mrh","name":"Mara Chin"},{"code":"mri","name":"Maori"},{"code":"mrj","name":"Western Mari"},{"code":"mrk","name":"Hmwaveke"},{"code":"mrl","name":"Mortlockese"},{"code":"mrm","name":"Merlav"},{"code":"mrn","name":"Cheke Holo"},{"code":"mro","name":"Mru"},{"code":"mrp","name":"Morouas"},{"code":"mrq","name":"North Marquesan"},{"code":"mrr","name":"Maria (India)"},{"code":"mrs","name":"Maragus"},{"code":"mrt","name":"Marghi Central"},{"code":"mru","name":"Mono (Cameroon)"},{"code":"mrv","name":"Mangareva"},{"code":"mrw","name":"Maranao"},{"code":"mrx","name":"Dineor"},{"code":"mry","name":"Mandaya"},{"code":"mrz","name":"Marind"},{"code":"msa","name":"Malay"},{"code":"msb","name":"Masbatenyo"},{"code":"msc","name":"Sankaran Maninka"},{"code":"msd","name":"Yucatec Maya Sign Language"},{"code":"mse","name":"Musey"},{"code":"msf","name":"Mekwei"},{"code":"msg","name":"Moraid"},{"code":"msh","name":"Masikoro Malagasy"},{"code":"msi","name":"Sabah Malay"},{"code":"msj","name":"Ma (Democratic Republic of Congo)"},{"code":"msk","name":"Mansaka"},{"code":"msl","name":"Molof"},{"code":"msm","name":"Agusan Manobo"},{"code":"msn","name":"Vurës"},{"code":"mso","name":"Mombum"},{"code":"msp","name":"Maritsauá"},{"code":"msq","name":"Caac"},{"code":"msr","name":"Mongolian Sign Language"},{"code":"mss","name":"West Masela"},{"code":"msu","name":"Musom"},{"code":"msv","name":"Maslam"},{"code":"msw","name":"Mansoanka"},{"code":"msx","name":"Moresada"},{"code":"msy","name":"Aruamu"},{"code":"msz","name":"Momare"},{"code":"mta","name":"Cotabato Manobo"},{"code":"mtb","name":"Anyin Morofo"},{"code":"mtc","name":"Munit"},{"code":"mtd","name":"Mualang"},{"code":"mte","name":"Mono (Solomon Islands)"},{"code":"mtf","name":"Murik (Papua New Guinea)"},{"code":"mtg","name":"Una"},{"code":"mth","name":"Munggui"},{"code":"mti","name":"Maiwa (Papua New Guinea)"},{"code":"mtj","name":"Moskona"},{"code":"mtk","name":"Mbe'"},{"code":"mtl","name":"Montol"},{"code":"mtm","name":"Mator"},{"code":"mtn","name":"Matagalpa"},{"code":"mto","name":"Totontepec Mixe"},{"code":"mtp","name":"Wichí Lhamtés Nocten"},{"code":"mtq","name":"Muong"},{"code":"mtr","name":"Mewari"},{"code":"mts","name":"Yora"},{"code":"mtt","name":"Mota"},{"code":"mtu","name":"Tututepec Mixtec"},{"code":"mtv","name":"Asaro'o"},{"code":"mtw","name":"Southern Binukidnon"},{"code":"mtx","name":"Tidaá Mixtec"},{"code":"mty","name":"Nabi"},{"code":"mua","name":"Mundang"},{"code":"mub","name":"Mubi"},{"code":"muc","name":"Ajumbu"},{"code":"mud","name":"Mednyj Aleut"},{"code":"mue","name":"Media Lengua"},{"code":"mug","name":"Musgu"},{"code":"muh","name":"Mündü"},{"code":"mui","name":"Musi"},{"code":"muj","name":"Mabire"},{"code":"muk","name":"Mugom"},{"code":"mul","name":"Multiple languages"},{"code":"mum","name":"Maiwala"},{"code":"muo","name":"Nyong"},{"code":"mup","name":"Malvi"},{"code":"muq","name":"Eastern Xiangxi Miao"},{"code":"mur","name":"Murle"},{"code":"mus","name":"Creek"},{"code":"mut","name":"Western Muria"},{"code":"muu","name":"Yaaku"},{"code":"muv","name":"Muthuvan"},{"code":"mux","name":"Bo-Ung"},{"code":"muy","name":"Muyang"},{"code":"muz","name":"Mursi"},{"code":"mva","name":"Manam"},{"code":"mvb","name":"Mattole"},{"code":"mvd","name":"Mamboru"},{"code":"mve","name":"Marwari (Pakistan)"},{"code":"mvf","name":"Peripheral Mongolian"},{"code":"mvg","name":"Yucuañe Mixtec"},{"code":"mvh","name":"Mulgi"},{"code":"mvi","name":"Miyako"},{"code":"mvk","name":"Mekmek"},{"code":"mvl","name":"Mbara (Australia)"},{"code":"mvn","name":"Minaveha"},{"code":"mvo","name":"Marovo"},{"code":"mvp","name":"Duri"},{"code":"mvq","name":"Moere"},{"code":"mvr","name":"Marau"},{"code":"mvs","name":"Massep"},{"code":"mvt","name":"Mpotovoro"},{"code":"mvu","name":"Marfa"},{"code":"mvv","name":"Tagal Murut"},{"code":"mvw","name":"Machinga"},{"code":"mvx","name":"Meoswar"},{"code":"mvy","name":"Indus Kohistani"},{"code":"mvz","name":"Mesqan"},{"code":"mwa","name":"Mwatebu"},{"code":"mwb","name":"Juwal"},{"code":"mwc","name":"Are"},{"code":"mwe","name":"Mwera (Chimwera)"},{"code":"mwf","name":"Murrinh-Patha"},{"code":"mwg","name":"Aiklep"},{"code":"mwh","name":"Mouk-Aria"},{"code":"mwi","name":"Labo"},{"code":"mwk","name":"Kita Maninkakan"},{"code":"mwl","name":"Mirandese"},{"code":"mwm","name":"Sar"},{"code":"mwn","name":"Nyamwanga"},{"code":"mwo","name":"Central Maewo"},{"code":"mwp","name":"Kala Lagaw Ya"},{"code":"mwq","name":"Mün Chin"},{"code":"mwr","name":"Marwari"},{"code":"mws","name":"Mwimbi-Muthambi"},{"code":"mwt","name":"Moken"},{"code":"mwu","name":"Mittu"},{"code":"mwv","name":"Mentawai"},{"code":"mww","name":"Hmong Daw"},{"code":"mwz","name":"Moingi"},{"code":"mxa","name":"Northwest Oaxaca Mixtec"},{"code":"mxb","name":"Tezoatlán Mixtec"},{"code":"mxc","name":"Manyika"},{"code":"mxd","name":"Modang"},{"code":"mxe","name":"Mele-Fila"},{"code":"mxf","name":"Malgbe"},{"code":"mxg","name":"Mbangala"},{"code":"mxh","name":"Mvuba"},{"code":"mxi","name":"Mozarabic"},{"code":"mxj","name":"Geman Deng"},{"code":"mxk","name":"Monumbo"},{"code":"mxl","name":"Maxi Gbe"},{"code":"mxm","name":"Meramera"},{"code":"mxn","name":"Moi (Indonesia)"},{"code":"mxo","name":"Mbowe"},{"code":"mxp","name":"Tlahuitoltepec Mixe"},{"code":"mxq","name":"Juquila Mixe"},{"code":"mxr","name":"Murik (Malaysia)"},{"code":"mxs","name":"Huitepec Mixtec"},{"code":"mxt","name":"Jamiltepec Mixtec"},{"code":"mxu","name":"Mada (Cameroon)"},{"code":"mxv","name":"Metlatónoc Mixtec"},{"code":"mxw","name":"Namo"},{"code":"mxx","name":"Mahou"},{"code":"mxy","name":"Southeastern Nochixtlán Mixtec"},{"code":"mxz","name":"Central Masela"},{"code":"mya","name":"Burmese"},{"code":"myb","name":"Mbay"},{"code":"myc","name":"Mayeka"},{"code":"mye","name":"Myene"},{"code":"myf","name":"Bambassi"},{"code":"myg","name":"Manta"},{"code":"myh","name":"Makah"},{"code":"myj","name":"Mangayat"},{"code":"myk","name":"Mamara Senoufo"},{"code":"myl","name":"Moma"},{"code":"mym","name":"Me'en"},{"code":"myo","name":"Anfillo"},{"code":"myp","name":"Pirahã"},{"code":"myr","name":"Muniche"},{"code":"mys","name":"Mesmes"},{"code":"myu","name":"Mundurukú"},{"code":"myv","name":"Erzya"},{"code":"myw","name":"Muyuw"},{"code":"myx","name":"Masaaba"},{"code":"myy","name":"Macuna"},{"code":"myz","name":"Classical Mandaic"},{"code":"mza","name":"Santa María Zacatepec Mixtec"},{"code":"mzb","name":"Tumzabt"},{"code":"mzc","name":"Madagascar Sign Language"},{"code":"mzd","name":"Malimba"},{"code":"mze","name":"Morawa"},{"code":"mzg","name":"Monastic Sign Language"},{"code":"mzh","name":"Wichí Lhamtés Güisnay"},{"code":"mzi","name":"Ixcatlán Mazatec"},{"code":"mzj","name":"Manya"},{"code":"mzk","name":"Nigeria Mambila"},{"code":"mzl","name":"Mazatlán Mixe"},{"code":"mzm","name":"Mumuye"},{"code":"mzn","name":"Mazanderani"},{"code":"mzo","name":"Matipuhy"},{"code":"mzp","name":"Movima"},{"code":"mzq","name":"Mori Atas"},{"code":"mzr","name":"Marúbo"},{"code":"mzs","name":"Macanese"},{"code":"mzt","name":"Mintil"},{"code":"mzu","name":"Inapang"},{"code":"mzv","name":"Manza"},{"code":"mzw","name":"Deg"},{"code":"mzx","name":"Mawayana"},{"code":"mzy","name":"Mozambican Sign Language"},{"code":"mzz","name":"Maiadomu"},{"code":"naa","name":"Namla"},{"code":"nab","name":"Southern Nambikuára"},{"code":"nac","name":"Narak"},{"code":"nae","name":"Naka'ela"},{"code":"naf","name":"Nabak"},{"code":"nag","name":"Naga Pidgin"},{"code":"naj","name":"Nalu"},{"code":"nak","name":"Nakanai"},{"code":"nal","name":"Nalik"},{"code":"nam","name":"Ngan'gityemerri"},{"code":"nan","name":"Min Nan Chinese"},{"code":"nao","name":"Naaba"},{"code":"nap","name":"Neapolitan"},{"code":"naq","name":"Khoekhoe"},{"code":"nar","name":"Iguta"},{"code":"nas","name":"Naasioi"},{"code":"nat","name":"Ca̱hungwa̱rya̱"},{"code":"nau","name":"Nauru"},{"code":"nav","name":"Navaho"},{"code":"naw","name":"Nawuri"},{"code":"nax","name":"Nakwi"},{"code":"nay","name":"Ngarrindjeri"},{"code":"naz","name":"Coatepec Nahuatl"},{"code":"nba","name":"Nyemba"},{"code":"nbb","name":"Ndoe"},{"code":"nbc","name":"Chang Naga"},{"code":"nbd","name":"Ngbinda"},{"code":"nbe","name":"Konyak Naga"},{"code":"nbg","name":"Nagarchal"},{"code":"nbh","name":"Ngamo"},{"code":"nbi","name":"Mao Naga"},{"code":"nbj","name":"Ngarinyman"},{"code":"nbk","name":"Nake"},{"code":"nbl","name":"South Ndebele"},{"code":"nbm","name":"Ngbaka Ma'bo"},{"code":"nbn","name":"Kuri"},{"code":"nbo","name":"Nkukoli"},{"code":"nbp","name":"Nnam"},{"code":"nbq","name":"Nggem"},{"code":"nbr","name":"Numana"},{"code":"nbs","name":"Namibian Sign Language"},{"code":"nbt","name":"Na"},{"code":"nbu","name":"Rongmei Naga"},{"code":"nbv","name":"Ngamambo"},{"code":"nbw","name":"Southern Ngbandi"},{"code":"nby","name":"Ningera"},{"code":"nca","name":"Iyo"},{"code":"ncb","name":"Central Nicobarese"},{"code":"ncc","name":"Ponam"},{"code":"ncd","name":"Nachering"},{"code":"nce","name":"Yale"},{"code":"ncf","name":"Notsi"},{"code":"ncg","name":"Nisga'a"},{"code":"nch","name":"Central Huasteca Nahuatl"},{"code":"nci","name":"Classical Nahuatl"},{"code":"ncj","name":"Northern Puebla Nahuatl"},{"code":"nck","name":"Na-kara"},{"code":"ncl","name":"Michoacán Nahuatl"},{"code":"ncm","name":"Nambo"},{"code":"ncn","name":"Nauna"},{"code":"nco","name":"Sibe"},{"code":"ncq","name":"Northern Katang"},{"code":"ncr","name":"Ncane"},{"code":"ncs","name":"Nicaraguan Sign Language"},{"code":"nct","name":"Chothe Naga"},{"code":"ncu","name":"Chumburung"},{"code":"ncx","name":"Central Puebla Nahuatl"},{"code":"ncz","name":"Natchez"},{"code":"nda","name":"Ndasa"},{"code":"ndb","name":"Kenswei Nsei"},{"code":"ndc","name":"Ndau"},{"code":"ndd","name":"Nde-Nsele-Nta"},{"code":"nde","name":"North Ndebele"},{"code":"ndf","name":"Nadruvian"},{"code":"ndg","name":"Ndengereko"},{"code":"ndh","name":"Ndali"},{"code":"ndi","name":"Samba Leko"},{"code":"ndj","name":"Ndamba"},{"code":"ndk","name":"Ndaka"},{"code":"ndl","name":"Ndolo"},{"code":"ndm","name":"Ndam"},{"code":"ndn","name":"Ngundi"},{"code":"ndo","name":"Ndonga"},{"code":"ndp","name":"Ndo"},{"code":"ndq","name":"Ndombe"},{"code":"ndr","name":"Ndoola"},{"code":"nds","name":"Low German"},{"code":"ndt","name":"Ndunga"},{"code":"ndu","name":"Dugun"},{"code":"ndv","name":"Ndut"},{"code":"ndw","name":"Ndobo"},{"code":"ndx","name":"Nduga"},{"code":"ndy","name":"Lutos"},{"code":"ndz","name":"Ndogo"},{"code":"nea","name":"Eastern Ngad'a"},{"code":"neb","name":"Toura (Côte d'Ivoire)"},{"code":"nec","name":"Nedebang"},{"code":"ned","name":"Nde-Gbite"},{"code":"nee","name":"Nêlêmwa-Nixumwak"},{"code":"nef","name":"Nefamese"},{"code":"neg","name":"Negidal"},{"code":"neh","name":"Nyenkha"},{"code":"nei","name":"Neo-Hittite"},{"code":"nej","name":"Neko"},{"code":"nek","name":"Neku"},{"code":"nem","name":"Nemi"},{"code":"nen","name":"Nengone"},{"code":"neo","name":"Ná-Meo"},{"code":"nep","name":"Nepali"},{"code":"neq","name":"North Central Mixe"},{"code":"ner","name":"Yahadian"},{"code":"nes","name":"Bhoti Kinnauri"},{"code":"net","name":"Nete"},{"code":"neu","name":"Neo"},{"code":"nev","name":"Nyaheun"},{"code":"new","name":"Nepal Bhasa"},{"code":"nex","name":"Neme"},{"code":"ney","name":"Neyo"},{"code":"nez","name":"Nez Perce"},{"code":"nfa","name":"Dhao"},{"code":"nfd","name":"Ahwai"},{"code":"nfl","name":"Äiwoo"},{"code":"nfr","name":"Nafaanra"},{"code":"nfu","name":"Mfumte"},{"code":"nga","name":"Ngbaka"},{"code":"ngb","name":"Northern Ngbandi"},{"code":"ngc","name":"Ngombe (Democratic Republic of Congo)"},{"code":"ngd","name":"Ngando (Central African Republic)"},{"code":"nge","name":"Ngemba"},{"code":"ngg","name":"Ngbaka Manza"},{"code":"ngh","name":"Nǁng"},{"code":"ngi","name":"Ngizim"},{"code":"ngj","name":"Ngie"},{"code":"ngk","name":"Dalabon"},{"code":"ngl","name":"Lomwe"},{"code":"ngm","name":"Ngatik Men's Creole"},{"code":"ngn","name":"Ngwo"},{"code":"ngp","name":"Ngulu"},{"code":"ngq","name":"Ngoreme"},{"code":"ngr","name":"Engdewu"},{"code":"ngs","name":"Gvoko"},{"code":"ngt","name":"Kriang"},{"code":"ngu","name":"Guerrero Nahuatl"},{"code":"ngv","name":"Nagumi"},{"code":"ngw","name":"Ngwaba"},{"code":"ngx","name":"Nggwahyi"},{"code":"ngy","name":"Tibea"},{"code":"ngz","name":"Ngungwel"},{"code":"nha","name":"Nhanda"},{"code":"nhb","name":"Beng"},{"code":"nhc","name":"Tabasco Nahuatl"},{"code":"nhd","name":"Ava Guaraní"},{"code":"nhe","name":"Eastern Huasteca Nahuatl"},{"code":"nhf","name":"Nhuwala"},{"code":"nhg","name":"Tetelcingo Nahuatl"},{"code":"nhh","name":"Nahari"},{"code":"nhi","name":"Zacatlán-Ahuacatlán-Tepetzintla Nahuatl"},{"code":"nhk","name":"Isthmus-Cosoleacaque Nahuatl"},{"code":"nhm","name":"Morelos Nahuatl"},{"code":"nhn","name":"Central Nahuatl"},{"code":"nho","name":"Takuu"},{"code":"nhp","name":"Isthmus-Pajapan Nahuatl"},{"code":"nhq","name":"Huaxcaleca Nahuatl"},{"code":"nhr","name":"Naro"},{"code":"nht","name":"Ometepec Nahuatl"},{"code":"nhu","name":"Noone"},{"code":"nhv","name":"Temascaltepec Nahuatl"},{"code":"nhw","name":"Western Huasteca Nahuatl"},{"code":"nhx","name":"Isthmus-Mecayapan Nahuatl"},{"code":"nhy","name":"Northern Oaxaca Nahuatl"},{"code":"nhz","name":"Santa María La Alta Nahuatl"},{"code":"nia","name":"Nias"},{"code":"nib","name":"Nakame"},{"code":"nid","name":"Ngandi"},{"code":"nie","name":"Niellim"},{"code":"nif","name":"Nek"},{"code":"nig","name":"Ngalakgan"},{"code":"nih","name":"Nyiha (Tanzania)"},{"code":"nii","name":"Nii"},{"code":"nij","name":"Ngaju"},{"code":"nik","name":"Southern Nicobarese"},{"code":"nil","name":"Nila"},{"code":"nim","name":"Nilamba"},{"code":"nin","name":"Ninzo"},{"code":"nio","name":"Nganasan"},{"code":"niq","name":"Nandi"},{"code":"nir","name":"Nimboran"},{"code":"nis","name":"Nimi"},{"code":"nit","name":"Southeastern Kolami"},{"code":"niu","name":"Niuean"},{"code":"niv","name":"Gilyak"},{"code":"niw","name":"Nimo"},{"code":"nix","name":"Hema"},{"code":"niy","name":"Ngiti"},{"code":"niz","name":"Ningil"},{"code":"nja","name":"Nzanyi"},{"code":"njb","name":"Nocte Naga"},{"code":"njd","name":"Ndonde Hamba"},{"code":"njh","name":"Lotha Naga"},{"code":"nji","name":"Gudanji"},{"code":"njj","name":"Njen"},{"code":"njl","name":"Njalgulgule"},{"code":"njm","name":"Angami Naga"},{"code":"njn","name":"Liangmai Naga"},{"code":"njo","name":"Ao Naga"},{"code":"njr","name":"Njerep"},{"code":"njs","name":"Nisa"},{"code":"njt","name":"Ndyuka-Trio Pidgin"},{"code":"nju","name":"Ngadjunmaya"},{"code":"njx","name":"Kunyi"},{"code":"njy","name":"Njyem"},{"code":"njz","name":"Nyishi"},{"code":"nka","name":"Nkoya"},{"code":"nkb","name":"Khoibu Naga"},{"code":"nkc","name":"Nkongho"},{"code":"nkd","name":"Koireng"},{"code":"nke","name":"Duke"},{"code":"nkf","name":"Inpui Naga"},{"code":"nkg","name":"Nekgini"},{"code":"nkh","name":"Khezha Naga"},{"code":"nki","name":"Thangal Naga"},{"code":"nkj","name":"Nakai"},{"code":"nkk","name":"Nokuku"},{"code":"nkm","name":"Namat"},{"code":"nkn","name":"Nkangala"},{"code":"nko","name":"Nkonya"},{"code":"nkp","name":"Niuatoputapu"},{"code":"nkq","name":"Nkami"},{"code":"nkr","name":"Nukuoro"},{"code":"nks","name":"North Asmat"},{"code":"nkt","name":"Nyika (Tanzania)"},{"code":"nku","name":"Bouna Kulango"},{"code":"nkv","name":"Nyika (Malawi and Zambia)"},{"code":"nkw","name":"Nkutu"},{"code":"nkx","name":"Nkoroo"},{"code":"nkz","name":"Nkari"},{"code":"nla","name":"Ngombale"},{"code":"nlc","name":"Nalca"},{"code":"nld","name":"Dutch"},{"code":"nle","name":"East Nyala"},{"code":"nlg","name":"Gela"},{"code":"nli","name":"Grangali"},{"code":"nlj","name":"Nyali"},{"code":"nlk","name":"Ninia Yali"},{"code":"nll","name":"Nihali"},{"code":"nlm","name":"Mankiyali"},{"code":"nlo","name":"Ngul"},{"code":"nlq","name":"Lao Naga"},{"code":"nlu","name":"Nchumbulu"},{"code":"nlv","name":"Orizaba Nahuatl"},{"code":"nlw","name":"Walangama"},{"code":"nlx","name":"Nahali"},{"code":"nly","name":"Nyamal"},{"code":"nlz","name":"Nalögo"},{"code":"nma","name":"Maram Naga"},{"code":"nmb","name":"Big Nambas"},{"code":"nmc","name":"Ngam"},{"code":"nmd","name":"Ndumu"},{"code":"nme","name":"Mzieme Naga"},{"code":"nmf","name":"Tangkhul Naga (India)"},{"code":"nmg","name":"Kwasio"},{"code":"nmh","name":"Monsang Naga"},{"code":"nmi","name":"Nyam"},{"code":"nmj","name":"Ngombe (Central African Republic)"},{"code":"nmk","name":"Namakura"},{"code":"nml","name":"Ndemli"},{"code":"nmm","name":"Manangba"},{"code":"nmn","name":"ǃXóõ"},{"code":"nmo","name":"Moyon Naga"},{"code":"nmp","name":"Nimanbur"},{"code":"nmq","name":"Nambya"},{"code":"nmr","name":"Nimbari"},{"code":"nms","name":"Letemboi"},{"code":"nmt","name":"Namonuito"},{"code":"nmu","name":"Northeast Maidu"},{"code":"nmv","name":"Ngamini"},{"code":"nmw","name":"Nimoa"},{"code":"nmx","name":"Nama (Papua New Guinea)"},{"code":"nmy","name":"Namuyi"},{"code":"nmz","name":"Nawdm"},{"code":"nna","name":"Nyangumarta"},{"code":"nnb","name":"Nande"},{"code":"nnc","name":"Nancere"},{"code":"nnd","name":"West Ambae"},{"code":"nne","name":"Ngandyera"},{"code":"nnf","name":"Ngaing"},{"code":"nng","name":"Maring Naga"},{"code":"nnh","name":"Ngiemboon"},{"code":"nni","name":"North Nuaulu"},{"code":"nnj","name":"Nyangatom"},{"code":"nnk","name":"Nankina"},{"code":"nnl","name":"Northern Rengma Naga"},{"code":"nnm","name":"Namia"},{"code":"nnn","name":"Ngete"},{"code":"nno","name":"Norwegian Nynorsk"},{"code":"nnp","name":"Wancho Naga"},{"code":"nnq","name":"Ngindo"},{"code":"nnr","name":"Narungga"},{"code":"nnt","name":"Nanticoke"},{"code":"nnu","name":"Dwang"},{"code":"nnv","name":"Nugunu (Australia)"},{"code":"nnw","name":"Southern Nuni"},{"code":"nny","name":"Nyangga"},{"code":"nnz","name":"Nda'nda'"},{"code":"noa","name":"Woun Meu"},{"code":"nob","name":"Norwegian Bokmål"},{"code":"noc","name":"Nuk"},{"code":"nod","name":"Northern Thai"},{"code":"noe","name":"Nimadi"},{"code":"nof","name":"Nomane"},{"code":"nog","name":"Nogai"},{"code":"noh","name":"Nomu"},{"code":"noi","name":"Noiri"},{"code":"noj","name":"Nonuya"},{"code":"nok","name":"Nooksack"},{"code":"nol","name":"Nomlaki"},{"code":"nom","name":"Nocamán"},{"code":"non","name":"Old Norse"},{"code":"nop","name":"Numanggang"},{"code":"noq","name":"Ngongo"},{"code":"nor","name":"Norwegian"},{"code":"nos","name":"Eastern Nisu"},{"code":"not","name":"Nomatsiguenga"},{"code":"nou","name":"Ewage-Notu"},{"code":"nov","name":"Novial"},{"code":"now","name":"Nyambo"},{"code":"noy","name":"Noy"},{"code":"noz","name":"Nayi"},{"code":"npa","name":"Nar Phu"},{"code":"npb","name":"Nupbikha"},{"code":"npg","name":"Ponyo-Gongwang Naga"},{"code":"nph","name":"Phom Naga"},{"code":"npi","name":"Nepali (individual language)"},{"code":"npl","name":"Southeastern Puebla Nahuatl"},{"code":"npn","name":"Mondropolon"},{"code":"npo","name":"Pochuri Naga"},{"code":"nps","name":"Nipsan"},{"code":"npu","name":"Puimei Naga"},{"code":"npx","name":"Noipx"},{"code":"npy","name":"Napu"},{"code":"nqg","name":"Southern Nago"},{"code":"nqk","name":"Kura Ede Nago"},{"code":"nql","name":"Ngendelengo"},{"code":"nqm","name":"Ndom"},{"code":"nqn","name":"Nen"},{"code":"nqo","name":"N'Ko"},{"code":"nqq","name":"Kyan-Karyaw Naga"},{"code":"nqt","name":"Nteng"},{"code":"nqy","name":"Akyaung Ari Naga"},{"code":"nra","name":"Ngom"},{"code":"nrb","name":"Nara"},{"code":"nrc","name":"Noric"},{"code":"nre","name":"Southern Rengma Naga"},{"code":"nrf","name":"Guernésiais"},{"code":"nrg","name":"Narango"},{"code":"nri","name":"Chokri Naga"},{"code":"nrk","name":"Ngarla"},{"code":"nrl","name":"Ngarluma"},{"code":"nrm","name":"Narom"},{"code":"nrn","name":"Norn"},{"code":"nrp","name":"North Picene"},{"code":"nrr","name":"Nora"},{"code":"nrt","name":"Northern Kalapuya"},{"code":"nru","name":"Narua"},{"code":"nrx","name":"Ngurmbur"},{"code":"nrz","name":"Lala"},{"code":"nsa","name":"Sangtam Naga"},{"code":"nsb","name":"Lower Nossob"},{"code":"nsc","name":"Nshi"},{"code":"nsd","name":"Southern Nisu"},{"code":"nse","name":"Nsenga"},{"code":"nsf","name":"Northwestern Nisu"},{"code":"nsg","name":"Ngasa"},{"code":"nsh","name":"Ngoshie"},{"code":"nsi","name":"Nigerian Sign Language"},{"code":"nsk","name":"Naskapi"},{"code":"nsl","name":"Norwegian Sign Language"},{"code":"nsm","name":"Sumi Naga"},{"code":"nsn","name":"Nehan"},{"code":"nso","name":"Northern Sotho"},{"code":"nsp","name":"Nepalese Sign Language"},{"code":"nsq","name":"Northern Sierra Miwok"},{"code":"nsr","name":"Maritime Sign Language"},{"code":"nss","name":"Nali"},{"code":"nst","name":"Tase Naga"},{"code":"nsu","name":"Sierra Negra Nahuatl"},{"code":"nsv","name":"Southwestern Nisu"},{"code":"nsw","name":"Navut"},{"code":"nsx","name":"Nsongo"},{"code":"nsy","name":"Nasal"},{"code":"nsz","name":"Nisenan"},{"code":"ntd","name":"Northern Tidung"},{"code":"nte","name":"Nathembo"},{"code":"ntg","name":"Ngantangarra"},{"code":"nti","name":"Natioro"},{"code":"ntj","name":"Ngaanyatjarra"},{"code":"ntk","name":"Ikoma-Nata-Isenye"},{"code":"ntm","name":"Nateni"},{"code":"nto","name":"Ntomba"},{"code":"ntp","name":"Northern Tepehuan"},{"code":"ntr","name":"Delo"},{"code":"ntu","name":"Natügu"},{"code":"ntw","name":"Nottoway"},{"code":"ntx","name":"Tangkhul Naga (Myanmar)"},{"code":"nty","name":"Mantsi"},{"code":"ntz","name":"Natanzi"},{"code":"nua","name":"Yuanga"},{"code":"nuc","name":"Nukuini"},{"code":"nud","name":"Ngala"},{"code":"nue","name":"Ngundu"},{"code":"nuf","name":"Nusu"},{"code":"nug","name":"Nungali"},{"code":"nuh","name":"Ndunda"},{"code":"nui","name":"Ngumbi"},{"code":"nuj","name":"Nyole"},{"code":"nuk","name":"Nuuchahnulth"},{"code":"nul","name":"Nusa Laut"},{"code":"num","name":"Niuafo'ou"},{"code":"nun","name":"Anong"},{"code":"nuo","name":"Nguôn"},{"code":"nup","name":"Nupe-Nupe-Tako"},{"code":"nuq","name":"Nukumanu"},{"code":"nur","name":"Nukuria"},{"code":"nus","name":"Nuer"},{"code":"nut","name":"Nung (Viet Nam)"},{"code":"nuu","name":"Ngbundu"},{"code":"nuv","name":"Northern Nuni"},{"code":"nuw","name":"Nguluwan"},{"code":"nux","name":"Mehek"},{"code":"nuy","name":"Nunggubuyu"},{"code":"nuz","name":"Tlamacazapa Nahuatl"},{"code":"nvh","name":"Nasarian"},{"code":"nvm","name":"Namiae"},{"code":"nvo","name":"Nyokon"},{"code":"nwa","name":"Nawathinehena"},{"code":"nwb","name":"Nyabwa"},{"code":"nwc","name":"Classical Nepal Bhasa"},{"code":"nwe","name":"Ngwe"},{"code":"nwg","name":"Ngayawung"},{"code":"nwi","name":"Southwest Tanna"},{"code":"nwm","name":"Nyamusa-Molo"},{"code":"nwo","name":"Nauo"},{"code":"nwr","name":"Nawaru"},{"code":"nwx","name":"Middle Newar"},{"code":"nwy","name":"Nottoway-Meherrin"},{"code":"nxa","name":"Nauete"},{"code":"nxd","name":"Ngando (Democratic Republic of Congo)"},{"code":"nxe","name":"Nage"},{"code":"nxg","name":"Ngad'a"},{"code":"nxi","name":"Nindi"},{"code":"nxk","name":"Koki Naga"},{"code":"nxl","name":"South Nuaulu"},{"code":"nxm","name":"Numidian"},{"code":"nxn","name":"Ngawun"},{"code":"nxo","name":"Ndambomo"},{"code":"nxq","name":"Naxi"},{"code":"nxr","name":"Ninggerum"},{"code":"nxx","name":"Nafri"},{"code":"nya","name":"Chewa"},{"code":"nyb","name":"Nyangbo"},{"code":"nyc","name":"Nyanga-li"},{"code":"nyd","name":"Nyore"},{"code":"nye","name":"Nyengo"},{"code":"nyf","name":"Giryama"},{"code":"nyg","name":"Nyindu"},{"code":"nyh","name":"Nyikina"},{"code":"nyi","name":"Ama (Sudan)"},{"code":"nyj","name":"Nyanga"},{"code":"nyk","name":"Nyaneka"},{"code":"nyl","name":"Nyeu"},{"code":"nym","name":"Nyamwezi"},{"code":"nyn","name":"Nyankole"},{"code":"nyo","name":"Nyoro"},{"code":"nyp","name":"Nyang'i"},{"code":"nyq","name":"Nayini"},{"code":"nyr","name":"Nyiha (Malawi)"},{"code":"nys","name":"Nyungar"},{"code":"nyt","name":"Nyawaygi"},{"code":"nyu","name":"Nyungwe"},{"code":"nyv","name":"Nyulnyul"},{"code":"nyw","name":"Nyaw"},{"code":"nyx","name":"Nganyaywana"},{"code":"nyy","name":"Nyakyusa-Ngonde"},{"code":"nza","name":"Tigon Mbembe"},{"code":"nzb","name":"Njebi"},{"code":"nzd","name":"Nzadi"},{"code":"nzi","name":"Nzima"},{"code":"nzk","name":"Nzakara"},{"code":"nzm","name":"Zeme Naga"},{"code":"nzs","name":"New Zealand Sign Language"},{"code":"nzu","name":"Teke-Nzikou"},{"code":"nzy","name":"Nzakambay"},{"code":"nzz","name":"Nanga Dama Dogon"},{"code":"oaa","name":"Orok"},{"code":"oac","name":"Oroch"},{"code":"oar","name":"Ancient Aramaic (up to 700 BCE)"},{"code":"oav","name":"Old Avar"},{"code":"obi","name":"Obispeño"},{"code":"obk","name":"Southern Bontok"},{"code":"obl","name":"Oblo"},{"code":"obm","name":"Moabite"},{"code":"obo","name":"Obo Manobo"},{"code":"obr","name":"Old Burmese"},{"code":"obt","name":"Old Breton"},{"code":"obu","name":"Obulom"},{"code":"oca","name":"Ocaina"},{"code":"och","name":"Old Chinese"},{"code":"oci","name":"Occitan (post 1500)"},{"code":"ocm","name":"Old Cham"},{"code":"oco","name":"Old Cornish"},{"code":"ocu","name":"Atzingo Matlatzinca"},{"code":"oda","name":"Odut"},{"code":"odk","name":"Od"},{"code":"odt","name":"Old Dutch"},{"code":"odu","name":"Odual"},{"code":"ofo","name":"Ofo"},{"code":"ofs","name":"Old Frisian"},{"code":"ofu","name":"Efutop"},{"code":"ogb","name":"Ogbia"},{"code":"ogc","name":"Ogbah"},{"code":"oge","name":"Old Georgian"},{"code":"ogg","name":"Ogbogolo"},{"code":"ogo","name":"Khana"},{"code":"ogu","name":"Ogbronuagum"},{"code":"oht","name":"Old Hittite"},{"code":"ohu","name":"Old Hungarian"},{"code":"oia","name":"Oirata"},{"code":"oin","name":"Inebu One"},{"code":"ojb","name":"Northwestern Ojibwa"},{"code":"ojc","name":"Central Ojibwa"},{"code":"ojg","name":"Eastern Ojibwa"},{"code":"oji","name":"Ojibwa"},{"code":"ojp","name":"Old Japanese"},{"code":"ojs","name":"Severn Ojibwa"},{"code":"ojv","name":"Ontong Java"},{"code":"ojw","name":"Western Ojibwa"},{"code":"oka","name":"Okanagan"},{"code":"okb","name":"Okobo"},{"code":"okc","name":"Kobo"},{"code":"okd","name":"Okodia"},{"code":"oke","name":"Okpe (Southwestern Edo)"},{"code":"okg","name":"Koko Babangk"},{"code":"okh","name":"Koresh-e Rostam"},{"code":"oki","name":"Okiek"},{"code":"okj","name":"Oko-Juwoi"},{"code":"okk","name":"Kwamtim One"},{"code":"okl","name":"Old Kentish Sign Language"},{"code":"okm","name":"Middle Korean (10th-16th cent.)"},{"code":"okn","name":"Oki-No-Erabu"},{"code":"oko","name":"Old Korean (3rd-9th cent.)"},{"code":"okr","name":"Kirike"},{"code":"oks","name":"Oko-Eni-Osayen"},{"code":"oku","name":"Oku"},{"code":"okv","name":"Orokaiva"},{"code":"okx","name":"Okpe (Northwestern Edo)"},{"code":"okz","name":"Old Khmer"},{"code":"ola","name":"Walungge"},{"code":"old","name":"Mochi"},{"code":"ole","name":"Olekha"},{"code":"olk","name":"Olkol"},{"code":"olm","name":"Oloma"},{"code":"olo","name":"Livvi"},{"code":"olr","name":"Olrat"},{"code":"olt","name":"Old Lithuanian"},{"code":"olu","name":"Kuvale"},{"code":"oma","name":"Omaha-Ponca"},{"code":"omb","name":"East Ambae"},{"code":"omc","name":"Mochica"},{"code":"omg","name":"Omagua"},{"code":"omi","name":"Omi"},{"code":"omk","name":"Omok"},{"code":"oml","name":"Ombo"},{"code":"omn","name":"Minoan"},{"code":"omo","name":"Utarmbung"},{"code":"omp","name":"Old Manipuri"},{"code":"omr","name":"Old Marathi"},{"code":"omt","name":"Omotik"},{"code":"omu","name":"Omurano"},{"code":"omw","name":"South Tairora"},{"code":"omx","name":"Old Mon"},{"code":"omy","name":"Old Malay"},{"code":"ona","name":"Ona"},{"code":"onb","name":"Lingao"},{"code":"one","name":"Oneida"},{"code":"ong","name":"Olo"},{"code":"oni","name":"Onin"},{"code":"onj","name":"Onjob"},{"code":"onk","name":"Kabore One"},{"code":"onn","name":"Onobasulu"},{"code":"ono","name":"Onondaga"},{"code":"onp","name":"Sartang"},{"code":"onr","name":"Northern One"},{"code":"ons","name":"Ono"},{"code":"ont","name":"Ontenu"},{"code":"onu","name":"Unua"},{"code":"onw","name":"Old Nubian"},{"code":"onx","name":"Onin Based Pidgin"},{"code":"ood","name":"Tohono O'odham"},{"code":"oog","name":"Ong"},{"code":"oon","name":"Önge"},{"code":"oor","name":"Oorlams"},{"code":"oos","name":"Old Ossetic"},{"code":"opa","name":"Okpamheri"},{"code":"opk","name":"Kopkaka"},{"code":"opm","name":"Oksapmin"},{"code":"opo","name":"Opao"},{"code":"opt","name":"Opata"},{"code":"opy","name":"Ofayé"},{"code":"ora","name":"Oroha"},{"code":"orc","name":"Orma"},{"code":"ore","name":"Orejón"},{"code":"org","name":"Oring"},{"code":"orh","name":"Oroqen"},{"code":"ori","name":"Oriya (macrolanguage)"},{"code":"orm","name":"Oromo"},{"code":"orn","name":"Orang Kanaq"},{"code":"oro","name":"Orokolo"},{"code":"orr","name":"Oruma"},{"code":"ors","name":"Orang Seletar"},{"code":"ort","name":"Adivasi Oriya"},{"code":"oru","name":"Ormuri"},{"code":"orv","name":"Old Russian"},{"code":"orw","name":"Oro Win"},{"code":"orx","name":"Oro"},{"code":"ory","name":"Odia"},{"code":"orz","name":"Ormu"},{"code":"osa","name":"Osage"},{"code":"osc","name":"Oscan"},{"code":"osi","name":"Osing"},{"code":"osn","name":"Old Sundanese"},{"code":"oso","name":"Ososo"},{"code":"osp","name":"Old Spanish"},{"code":"oss","name":"Ossetian"},{"code":"ost","name":"Osatu"},{"code":"osu","name":"Southern One"},{"code":"osx","name":"Old Saxon"},{"code":"ota","name":"Ottoman Turkish (1500-1928)"},{"code":"otb","name":"Old Tibetan"},{"code":"otd","name":"Ot Danum"},{"code":"ote","name":"Mezquital Otomi"},{"code":"oti","name":"Oti"},{"code":"otk","name":"Old Turkish"},{"code":"otl","name":"Tilapa Otomi"},{"code":"otm","name":"Eastern Highland Otomi"},{"code":"otn","name":"Tenango Otomi"},{"code":"otq","name":"Querétaro Otomi"},{"code":"otr","name":"Otoro"},{"code":"ots","name":"Estado de México Otomi"},{"code":"ott","name":"Temoaya Otomi"},{"code":"otu","name":"Otuke"},{"code":"otw","name":"Ottawa"},{"code":"otx","name":"Texcatepec Otomi"},{"code":"oty","name":"Old Tamil"},{"code":"otz","name":"Ixtenco Otomi"},{"code":"oua","name":"Tagargrent"},{"code":"oub","name":"Glio-Oubi"},{"code":"oue","name":"Oune"},{"code":"oui","name":"Old Uighur"},{"code":"oum","name":"Ouma"},{"code":"ovd","name":"Elfdalian"},{"code":"owi","name":"Owiniga"},{"code":"owl","name":"Old Welsh"},{"code":"oyb","name":"Oy"},{"code":"oyd","name":"Oyda"},{"code":"oym","name":"Wayampi"},{"code":"oyy","name":"Oya'oya"},{"code":"ozm","name":"Koonzime"},{"code":"pab","name":"Parecís"},{"code":"pac","name":"Pacoh"},{"code":"pad","name":"Paumarí"},{"code":"pae","name":"Pagibete"},{"code":"paf","name":"Paranawát"},{"code":"pag","name":"Pangasinan"},{"code":"pah","name":"Tenharim"},{"code":"pai","name":"Pe"},{"code":"pak","name":"Parakanã"},{"code":"pal","name":"Pahlavi"},{"code":"pam","name":"Kapampangan"},{"code":"pan","name":"Panjabi"},{"code":"pao","name":"Northern Paiute"},{"code":"pap","name":"Papiamento"},{"code":"paq","name":"Parya"},{"code":"par","name":"Panamint"},{"code":"pas","name":"Papasena"},{"code":"pau","name":"Palauan"},{"code":"pav","name":"Pakaásnovos"},{"code":"paw","name":"Pawnee"},{"code":"pax","name":"Pankararé"},{"code":"pay","name":"Pech"},{"code":"paz","name":"Pankararú"},{"code":"pbb","name":"Páez"},{"code":"pbc","name":"Patamona"},{"code":"pbe","name":"Mezontla Popoloca"},{"code":"pbf","name":"Coyotepec Popoloca"},{"code":"pbg","name":"Paraujano"},{"code":"pbh","name":"E'ñapa Woromaipu"},{"code":"pbi","name":"Parkwa"},{"code":"pbl","name":"Mak (Nigeria)"},{"code":"pbm","name":"Puebla Mazatec"},{"code":"pbn","name":"Kpasam"},{"code":"pbo","name":"Papel"},{"code":"pbp","name":"Badyara"},{"code":"pbr","name":"Pangwa"},{"code":"pbs","name":"Central Pame"},{"code":"pbt","name":"Southern Pashto"},{"code":"pbu","name":"Northern Pashto"},{"code":"pbv","name":"Pnar"},{"code":"pby","name":"Pyu (Papua New Guinea)"},{"code":"pca","name":"Santa Inés Ahuatempan Popoloca"},{"code":"pcb","name":"Pear"},{"code":"pcc","name":"Bouyei"},{"code":"pcd","name":"Picard"},{"code":"pce","name":"Ruching Palaung"},{"code":"pcf","name":"Paliyan"},{"code":"pcg","name":"Paniya"},{"code":"pch","name":"Pardhan"},{"code":"pci","name":"Duruwa"},{"code":"pcj","name":"Parenga"},{"code":"pck","name":"Paite Chin"},{"code":"pcl","name":"Pardhi"},{"code":"pcm","name":"Nigerian Pidgin"},{"code":"pcn","name":"Piti"},{"code":"pcp","name":"Pacahuara"},{"code":"pcw","name":"Pyapun"},{"code":"pda","name":"Anam"},{"code":"pdc","name":"Pennsylvania German"},{"code":"pdi","name":"Pa Di"},{"code":"pdn","name":"Fedan"},{"code":"pdo","name":"Padoe"},{"code":"pdt","name":"Plautdietsch"},{"code":"pdu","name":"Kayan"},{"code":"pea","name":"Peranakan Indonesian"},{"code":"peb","name":"Eastern Pomo"},{"code":"ped","name":"Mala (Papua New Guinea)"},{"code":"pee","name":"Taje"},{"code":"pef","name":"Northeastern Pomo"},{"code":"peg","name":"Pengo"},{"code":"peh","name":"Bonan"},{"code":"pei","name":"Chichimeca-Jonaz"},{"code":"pej","name":"Northern Pomo"},{"code":"pek","name":"Penchal"},{"code":"pel","name":"Pekal"},{"code":"pem","name":"Phende"},{"code":"peo","name":"Old Persian (ca. 600-400 B.C.)"},{"code":"pep","name":"Kunja"},{"code":"peq","name":"Southern Pomo"},{"code":"pes","name":"Iranian Persian"},{"code":"pev","name":"Pémono"},{"code":"pex","name":"Petats"},{"code":"pey","name":"Petjo"},{"code":"pez","name":"Eastern Penan"},{"code":"pfa","name":"Pááfang"},{"code":"pfe","name":"Pere"},{"code":"pfl","name":"Pfaelzisch"},{"code":"pga","name":"Sudanese Creole Arabic"},{"code":"pgd","name":"Gāndhārī"},{"code":"pgg","name":"Pangwali"},{"code":"pgi","name":"Pagi"},{"code":"pgk","name":"Rerep"},{"code":"pgl","name":"Primitive Irish"},{"code":"pgn","name":"Paelignian"},{"code":"pgs","name":"Pangseng"},{"code":"pgu","name":"Pagu"},{"code":"pgz","name":"Papua New Guinean Sign Language"},{"code":"pha","name":"Pa-Hng"},{"code":"phd","name":"Phudagi"},{"code":"phg","name":"Phuong"},{"code":"phh","name":"Phukha"},{"code":"phk","name":"Phake"},{"code":"phl","name":"Palula"},{"code":"phm","name":"Phimbi"},{"code":"phn","name":"Phoenician"},{"code":"pho","name":"Phunoi"},{"code":"phq","name":"Phana'"},{"code":"phr","name":"Pahari-Potwari"},{"code":"pht","name":"Phu Thai"},{"code":"phu","name":"Phuan"},{"code":"phv","name":"Pahlavani"},{"code":"phw","name":"Phangduwali"},{"code":"pia","name":"Pima Bajo"},{"code":"pib","name":"Yine"},{"code":"pic","name":"Pinji"},{"code":"pid","name":"Piaroa"},{"code":"pie","name":"Piro"},{"code":"pif","name":"Pingelapese"},{"code":"pig","name":"Pisabo"},{"code":"pih","name":"Pitcairn-Norfolk"},{"code":"pii","name":"Pini"},{"code":"pij","name":"Pijao"},{"code":"pil","name":"Yom"},{"code":"pim","name":"Powhatan"},{"code":"pin","name":"Piame"},{"code":"pio","name":"Piapoco"},{"code":"pip","name":"Pero"},{"code":"pir","name":"Piratapuyo"},{"code":"pis","name":"Pijin"},{"code":"pit","name":"Pitta Pitta"},{"code":"piu","name":"Pintupi-Luritja"},{"code":"piv","name":"Pileni"},{"code":"piw","name":"Pimbwe"},{"code":"pix","name":"Piu"},{"code":"piy","name":"Piya-Kwonci"},{"code":"piz","name":"Pije"},{"code":"pjt","name":"Pitjantjatjara"},{"code":"pka","name":"Ardhamāgadhī Prākrit"},{"code":"pkb","name":"Kipfokomo"},{"code":"pkc","name":"Paekche"},{"code":"pkg","name":"Pak-Tong"},{"code":"pkh","name":"Pankhu"},{"code":"pkn","name":"Pakanha"},{"code":"pko","name":"Pökoot"},{"code":"pkp","name":"Pukapuka"},{"code":"pkr","name":"Attapady Kurumba"},{"code":"pks","name":"Pakistan Sign Language"},{"code":"pkt","name":"Maleng"},{"code":"pku","name":"Paku"},{"code":"pla","name":"Miani"},{"code":"plb","name":"Polonombauk"},{"code":"plc","name":"Central Palawano"},{"code":"pld","name":"Polari"},{"code":"ple","name":"Palu'e"},{"code":"plg","name":"Pilagá"},{"code":"plh","name":"Paulohi"},{"code":"pli","name":"Pali"},{"code":"plj","name":"Polci"},{"code":"plk","name":"Kohistani Shina"},{"code":"pll","name":"Shwe Palaung"},{"code":"pln","name":"Palenquero"},{"code":"plo","name":"Oluta Popoluca"},{"code":"plq","name":"Palaic"},{"code":"plr","name":"Palaka Senoufo"},{"code":"pls","name":"San Marcos Tlacoyalco Popoloca"},{"code":"plt","name":"Plateau Malagasy"},{"code":"plu","name":"Palikúr"},{"code":"plv","name":"Southwest Palawano"},{"code":"plw","name":"Brooke's Point Palawano"},{"code":"ply","name":"Bolyu"},{"code":"plz","name":"Paluan"},{"code":"pma","name":"Paama"},{"code":"pmb","name":"Pambia"},{"code":"pmd","name":"Pallanganmiddang"},{"code":"pme","name":"Pwaamei"},{"code":"pmf","name":"Pamona"},{"code":"pmh","name":"Māhārāṣṭri Prākrit"},{"code":"pmi","name":"Northern Pumi"},{"code":"pmj","name":"Southern Pumi"},{"code":"pmk","name":"Pamlico"},{"code":"pml","name":"Lingua Franca"},{"code":"pmm","name":"Pomo"},{"code":"pmn","name":"Pam"},{"code":"pmo","name":"Pom"},{"code":"pmq","name":"Northern Pame"},{"code":"pmr","name":"Paynamar"},{"code":"pms","name":"Piemontese"},{"code":"pmt","name":"Tuamotuan"},{"code":"pmw","name":"Plains Miwok"},{"code":"pmx","name":"Poumei Naga"},{"code":"pmy","name":"Papuan Malay"},{"code":"pmz","name":"Southern Pame"},{"code":"pna","name":"Punan Bah-Biau"},{"code":"pnb","name":"Western Panjabi"},{"code":"pnc","name":"Pannei"},{"code":"pnd","name":"Mpinda"},{"code":"pne","name":"Western Penan"},{"code":"png","name":"Pangu"},{"code":"pnh","name":"Penrhyn"},{"code":"pni","name":"Aoheng"},{"code":"pnj","name":"Pinjarup"},{"code":"pnk","name":"Paunaka"},{"code":"pnl","name":"Paleni"},{"code":"pnm","name":"Punan Batu 1"},{"code":"pnn","name":"Pinai-Hagahai"},{"code":"pno","name":"Panobo"},{"code":"pnp","name":"Pancana"},{"code":"pnq","name":"Pana (Burkina Faso)"},{"code":"pnr","name":"Panim"},{"code":"pns","name":"Ponosakan"},{"code":"pnt","name":"Pontic"},{"code":"pnu","name":"Jiongnai Bunu"},{"code":"pnv","name":"Pinigura"},{"code":"pnw","name":"Banyjima"},{"code":"pnx","name":"Phong-Kniang"},{"code":"pny","name":"Pinyin"},{"code":"pnz","name":"Pana (Central African Republic)"},{"code":"poc","name":"Poqomam"},{"code":"poe","name":"San Juan Atzingo Popoloca"},{"code":"pof","name":"Poke"},{"code":"pog","name":"Potiguára"},{"code":"poh","name":"Poqomchi'"},{"code":"poi","name":"Highland Popoluca"},{"code":"pok","name":"Pokangá"},{"code":"pol","name":"Polish"},{"code":"pom","name":"Southeastern Pomo"},{"code":"pon","name":"Pohnpeian"},{"code":"poo","name":"Central Pomo"},{"code":"pop","name":"Pwapwâ"},{"code":"poq","name":"Texistepec Popoluca"},{"code":"por","name":"Portuguese"},{"code":"pos","name":"Sayula Popoluca"},{"code":"pot","name":"Potawatomi"},{"code":"pov","name":"Upper Guinea Crioulo"},{"code":"pow","name":"San Felipe Otlaltepec Popoloca"},{"code":"pox","name":"Polabian"},{"code":"poy","name":"Pogolo"},{"code":"ppe","name":"Papi"},{"code":"ppi","name":"Paipai"},{"code":"ppk","name":"Uma"},{"code":"ppl","name":"Nicarao"},{"code":"ppm","name":"Papuma"},{"code":"ppn","name":"Papapana"},{"code":"ppo","name":"Folopa"},{"code":"ppp","name":"Pelende"},{"code":"ppq","name":"Pei"},{"code":"pps","name":"San Luís Temalacayuca Popoloca"},{"code":"ppt","name":"Pare"},{"code":"ppu","name":"Papora"},{"code":"pqa","name":"Pa'a"},{"code":"pqm","name":"Malecite-Passamaquoddy"},{"code":"prc","name":"Parachi"},{"code":"prd","name":"Parsi-Dari"},{"code":"pre","name":"Principense"},{"code":"prf","name":"Paranan"},{"code":"prg","name":"Prussian"},{"code":"prh","name":"Porohanon"},{"code":"pri","name":"Paicî"},{"code":"prk","name":"Parauk"},{"code":"prl","name":"Peruvian Sign Language"},{"code":"prm","name":"Kibiri"},{"code":"prn","name":"Prasuni"},{"code":"pro","name":"Old Occitan (to 1500)"},{"code":"prp","name":"Parsi"},{"code":"prq","name":"Ashéninka Perené"},{"code":"prr","name":"Puri"},{"code":"prs","name":"Afghan Persian"},{"code":"prt","name":"Phai"},{"code":"pru","name":"Puragi"},{"code":"prw","name":"Parawen"},{"code":"prx","name":"Purik"},{"code":"prz","name":"Providencia Sign Language"},{"code":"psa","name":"Asue Awyu"},{"code":"psc","name":"Persian Sign Language"},{"code":"psd","name":"Plains Indian Sign Language"},{"code":"pse","name":"Central Malay"},{"code":"psg","name":"Penang Sign Language"},{"code":"psh","name":"Southwest Pashai"},{"code":"psi","name":"Southeast Pashai"},{"code":"psl","name":"Puerto Rican Sign Language"},{"code":"psm","name":"Pauserna"},{"code":"psn","name":"Panasuan"},{"code":"pso","name":"Polish Sign Language"},{"code":"psp","name":"Philippine Sign Language"},{"code":"psq","name":"Pasi"},{"code":"psr","name":"Portuguese Sign Language"},{"code":"pss","name":"Kaulong"},{"code":"pst","name":"Central Pashto"},{"code":"psu","name":"Sauraseni Prākrit"},{"code":"psw","name":"Port Sandwich"},{"code":"psy","name":"Piscataway"},{"code":"pta","name":"Pai Tavytera"},{"code":"pth","name":"Pataxó Hã-Ha-Hãe"},{"code":"pti","name":"Pindiini"},{"code":"ptn","name":"Patani"},{"code":"pto","name":"Zo'é"},{"code":"ptp","name":"Patep"},{"code":"ptq","name":"Pattapu"},{"code":"ptr","name":"Piamatsina"},{"code":"ptt","name":"Enrekang"},{"code":"ptu","name":"Bambam"},{"code":"ptv","name":"Port Vato"},{"code":"ptw","name":"Pentlatch"},{"code":"pty","name":"Pathiya"},{"code":"pua","name":"Western Highland Purepecha"},{"code":"pub","name":"Purum"},{"code":"puc","name":"Punan Merap"},{"code":"pud","name":"Punan Aput"},{"code":"pue","name":"Puelche"},{"code":"puf","name":"Punan Merah"},{"code":"pug","name":"Phuie"},{"code":"pui","name":"Puinave"},{"code":"puj","name":"Punan Tubu"},{"code":"pum","name":"Puma"},{"code":"puo","name":"Puoc"},{"code":"pup","name":"Pulabu"},{"code":"puq","name":"Puquina"},{"code":"pur","name":"Puruborá"},{"code":"pus","name":"Pashto"},{"code":"put","name":"Putoh"},{"code":"puu","name":"Punu"},{"code":"puw","name":"Puluwatese"},{"code":"pux","name":"Puare"},{"code":"puy","name":"Purisimeño"},{"code":"pwa","name":"Pawaia"},{"code":"pwb","name":"Panawa"},{"code":"pwg","name":"Gapapaiwa"},{"code":"pwi","name":"Patwin"},{"code":"pwm","name":"Molbog"},{"code":"pwn","name":"Paiwan"},{"code":"pwo","name":"Pwo Western Karen"},{"code":"pwr","name":"Powari"},{"code":"pww","name":"Pwo Northern Karen"},{"code":"pxm","name":"Quetzaltepec Mixe"},{"code":"pye","name":"Pye Krumen"},{"code":"pym","name":"Fyam"},{"code":"pyn","name":"Poyanáwa"},{"code":"pys","name":"Lengua de Señas del Paraguay"},{"code":"pyu","name":"Puyuma"},{"code":"pyx","name":"Pyu (Myanmar)"},{"code":"pyy","name":"Pyen"},{"code":"pzn","name":"Para Naga"},{"code":"qua","name":"Quapaw"},{"code":"qub","name":"Huallaga Huánuco Quechua"},{"code":"quc","name":"K'iche'"},{"code":"qud","name":"Calderón Highland Quichua"},{"code":"que","name":"Quechua"},{"code":"quf","name":"Lambayeque Quechua"},{"code":"qug","name":"Chimborazo Highland Quichua"},{"code":"quh","name":"South Bolivian Quechua"},{"code":"qui","name":"Quileute"},{"code":"quk","name":"Chachapoyas Quechua"},{"code":"qul","name":"North Bolivian Quechua"},{"code":"qum","name":"Sipacapense"},{"code":"qun","name":"Quinault"},{"code":"qup","name":"Southern Pastaza Quechua"},{"code":"quq","name":"Quinqui"},{"code":"qur","name":"Yanahuanca Pasco Quechua"},{"code":"qus","name":"Santiago del Estero Quichua"},{"code":"quv","name":"Sacapulteco"},{"code":"quw","name":"Tena Lowland Quichua"},{"code":"qux","name":"Yauyos Quechua"},{"code":"quy","name":"Ayacucho Quechua"},{"code":"quz","name":"Cusco Quechua"},{"code":"qva","name":"Ambo-Pasco Quechua"},{"code":"qvc","name":"Cajamarca Quechua"},{"code":"qve","name":"Eastern Apurímac Quechua"},{"code":"qvh","name":"Huamalíes-Dos de Mayo Huánuco Quechua"},{"code":"qvi","name":"Imbabura Highland Quichua"},{"code":"qvj","name":"Loja Highland Quichua"},{"code":"qvl","name":"Cajatambo North Lima Quechua"},{"code":"qvm","name":"Margos-Yarowilca-Lauricocha Quechua"},{"code":"qvn","name":"North Junín Quechua"},{"code":"qvo","name":"Napo Lowland Quechua"},{"code":"qvp","name":"Pacaraos Quechua"},{"code":"qvs","name":"San Martín Quechua"},{"code":"qvw","name":"Huaylla Wanca Quechua"},{"code":"qvy","name":"Queyu"},{"code":"qvz","name":"Northern Pastaza Quichua"},{"code":"qwa","name":"Corongo Ancash Quechua"},{"code":"qwc","name":"Classical Quechua"},{"code":"qwh","name":"Huaylas Ancash Quechua"},{"code":"qwm","name":"Kuman (Russia)"},{"code":"qws","name":"Sihuas Ancash Quechua"},{"code":"qwt","name":"Kwalhioqua-Tlatskanai"},{"code":"qxa","name":"Chiquián Ancash Quechua"},{"code":"qxc","name":"Chincha Quechua"},{"code":"qxh","name":"Panao Huánuco Quechua"},{"code":"qxl","name":"Salasaca Highland Quichua"},{"code":"qxn","name":"Northern Conchucos Ancash Quechua"},{"code":"qxo","name":"Southern Conchucos Ancash Quechua"},{"code":"qxp","name":"Puno Quechua"},{"code":"qxq","name":"Qashqa'i"},{"code":"qxr","name":"Cañar Highland Quichua"},{"code":"qxs","name":"Southern Qiang"},{"code":"qxt","name":"Santa Ana de Tusi Pasco Quechua"},{"code":"qxu","name":"Arequipa-La Unión Quechua"},{"code":"qxw","name":"Jauja Wanca Quechua"},{"code":"qya","name":"Quenya"},{"code":"qyp","name":"Quiripi"},{"code":"raa","name":"Dungmali"},{"code":"rab","name":"Camling"},{"code":"rac","name":"Rasawa"},{"code":"rad","name":"Rade"},{"code":"raf","name":"Western Meohang"},{"code":"rag","name":"Logooli"},{"code":"rah","name":"Rabha"},{"code":"rai","name":"Ramoaaina"},{"code":"raj","name":"Rajasthani"},{"code":"rak","name":"Tulu-Bohuai"},{"code":"ral","name":"Ralte"},{"code":"ram","name":"Canela"},{"code":"ran","name":"Riantana"},{"code":"rao","name":"Rao"},{"code":"rap","name":"Rapanui"},{"code":"raq","name":"Saam"},{"code":"rar","name":"Cook Islands Maori"},{"code":"ras","name":"Tegali"},{"code":"rat","name":"Razajerdi"},{"code":"rau","name":"Raute"},{"code":"rav","name":"Sampang"},{"code":"raw","name":"Rawang"},{"code":"rax","name":"Rang"},{"code":"ray","name":"Rapa"},{"code":"raz","name":"Rahambuu"},{"code":"rbb","name":"Rumai Palaung"},{"code":"rbk","name":"Northern Bontok"},{"code":"rbl","name":"Miraya Bikol"},{"code":"rbp","name":"Barababaraba"},{"code":"rcf","name":"Réunion Creole French"},{"code":"rdb","name":"Rudbari"},{"code":"rea","name":"Rerau"},{"code":"reb","name":"Rembong"},{"code":"ree","name":"Rejang Kayan"},{"code":"reg","name":"Kara (Tanzania)"},{"code":"rei","name":"Reli"},{"code":"rej","name":"Rejang"},{"code":"rel","name":"Rendille"},{"code":"rem","name":"Remo"},{"code":"ren","name":"Rengao"},{"code":"rer","name":"Rer Bare"},{"code":"res","name":"Reshe"},{"code":"ret","name":"Retta"},{"code":"rey","name":"Reyesano"},{"code":"rga","name":"Roria"},{"code":"rge","name":"Romano-Greek"},{"code":"rgk","name":"Rangkas"},{"code":"rgn","name":"Romagnol"},{"code":"rgr","name":"Resígaro"},{"code":"rgs","name":"Southern Roglai"},{"code":"rgu","name":"Ringgou"},{"code":"rhg","name":"Rohingya"},{"code":"rhp","name":"Yahang"},{"code":"ria","name":"Riang (India)"},{"code":"rif","name":"Tarifit"},{"code":"ril","name":"Riang (Myanmar)"},{"code":"rim","name":"Nyaturu"},{"code":"rin","name":"Nungu"},{"code":"rir","name":"Ribun"},{"code":"rit","name":"Ritharrngu"},{"code":"riu","name":"Riung"},{"code":"rjg","name":"Rajong"},{"code":"rji","name":"Raji"},{"code":"rjs","name":"Rajbanshi"},{"code":"rka","name":"Kraol"},{"code":"rkb","name":"Rikbaktsa"},{"code":"rkh","name":"Rakahanga-Manihiki"},{"code":"rki","name":"Rakhine"},{"code":"rkm","name":"Marka"},{"code":"rkt","name":"Kamta"},{"code":"rkw","name":"Arakwal"},{"code":"rma","name":"Rama"},{"code":"rmb","name":"Rembarrnga"},{"code":"rmc","name":"Carpathian Romani"},{"code":"rmd","name":"Traveller Danish"},{"code":"rme","name":"Angloromani"},{"code":"rmf","name":"Kalo Finnish Romani"},{"code":"rmg","name":"Traveller Norwegian"},{"code":"rmh","name":"Murkim"},{"code":"rmi","name":"Lomavren"},{"code":"rmk","name":"Romkun"},{"code":"rml","name":"Baltic Romani"},{"code":"rmm","name":"Roma"},{"code":"rmn","name":"Balkan Romani"},{"code":"rmo","name":"Sinte Romani"},{"code":"rmp","name":"Rempi"},{"code":"rmq","name":"Caló"},{"code":"rms","name":"Romanian Sign Language"},{"code":"rmt","name":"Domari"},{"code":"rmu","name":"Tavringer Romani"},{"code":"rmv","name":"Romanova"},{"code":"rmw","name":"Welsh Romani"},{"code":"rmx","name":"Romam"},{"code":"rmy","name":"Vlax Romani"},{"code":"rmz","name":"Marma"},{"code":"rnd","name":"Ruund"},{"code":"rng","name":"Ronga"},{"code":"rnl","name":"Ranglong"},{"code":"rnn","name":"Roon"},{"code":"rnp","name":"Rongpo"},{"code":"rnr","name":"Nari Nari"},{"code":"rnw","name":"Rungwa"},{"code":"rob","name":"Tae'"},{"code":"roc","name":"Cacgia Roglai"},{"code":"rod","name":"Rogo"},{"code":"roe","name":"Ronji"},{"code":"rof","name":"Rombo"},{"code":"rog","name":"Northern Roglai"},{"code":"roh","name":"Romansh"},{"code":"rol","name":"Romblomanon"},{"code":"rom","name":"Romany"},{"code":"ron","name":"Romanian"},{"code":"roo","name":"Rotokas"},{"code":"rop","name":"Kriol"},{"code":"ror","name":"Rongga"},{"code":"rou","name":"Runga"},{"code":"row","name":"Dela-Oenale"},{"code":"rpn","name":"Repanbitip"},{"code":"rpt","name":"Rapting"},{"code":"rri","name":"Ririo"},{"code":"rro","name":"Waima"},{"code":"rrt","name":"Arritinngithigh"},{"code":"rsb","name":"Romano-Serbian"},{"code":"rsl","name":"Russian Sign Language"},{"code":"rsm","name":"Miriwoong Sign Language"},{"code":"rtc","name":"Rungtu Chin"},{"code":"rth","name":"Ratahan"},{"code":"rtm","name":"Rotuman"},{"code":"rts","name":"Yurats"},{"code":"rtw","name":"Rathawi"},{"code":"rub","name":"Gungu"},{"code":"ruc","name":"Ruuli"},{"code":"rue","name":"Rusyn"},{"code":"ruf","name":"Luguru"},{"code":"rug","name":"Roviana"},{"code":"ruh","name":"Ruga"},{"code":"rui","name":"Rufiji"},{"code":"ruk","name":"Che"},{"code":"run","name":"Rundi"},{"code":"ruo","name":"Istro Romanian"},{"code":"rup","name":"Aromanian"},{"code":"ruq","name":"Megleno Romanian"},{"code":"rus","name":"Russian"},{"code":"rut","name":"Rutul"},{"code":"ruu","name":"Lanas Lobu"},{"code":"ruy","name":"Mala (Nigeria)"},{"code":"ruz","name":"Ruma"},{"code":"rwa","name":"Rawo"},{"code":"rwk","name":"Rwa"},{"code":"rwl","name":"Ruwila"},{"code":"rwm","name":"Amba (Uganda)"},{"code":"rwo","name":"Rawa"},{"code":"rwr","name":"Marwari (India)"},{"code":"rxd","name":"Ngardi"},{"code":"rxw","name":"Garuwali"},{"code":"ryn","name":"Northern Amami-Oshima"},{"code":"rys","name":"Yaeyama"},{"code":"ryu","name":"Central Okinawan"},{"code":"rzh","name":"Rāziḥī"},{"code":"saa","name":"Saba"},{"code":"sab","name":"Buglere"},{"code":"sac","name":"Meskwaki"},{"code":"sad","name":"Sandawe"},{"code":"sae","name":"Sabanê"},{"code":"saf","name":"Safaliba"},{"code":"sag","name":"Sango"},{"code":"sah","name":"Yakut"},{"code":"saj","name":"Sahu"},{"code":"sak","name":"Sake"},{"code":"sam","name":"Samaritan Aramaic"},{"code":"san","name":"Sanskrit"},{"code":"sao","name":"Sause"},{"code":"saq","name":"Samburu"},{"code":"sar","name":"Saraveca"},{"code":"sas","name":"Sasak"},{"code":"sat","name":"Santali"},{"code":"sau","name":"Saleman"},{"code":"sav","name":"Saafi-Saafi"},{"code":"saw","name":"Sawi"},{"code":"sax","name":"Sa"},{"code":"say","name":"Saya"},{"code":"saz","name":"Saurashtra"},{"code":"sba","name":"Ngambay"},{"code":"sbb","name":"Simbo"},{"code":"sbc","name":"Kele (Papua New Guinea)"},{"code":"sbd","name":"Southern Samo"},{"code":"sbe","name":"Saliba"},{"code":"sbf","name":"Chabu"},{"code":"sbg","name":"Seget"},{"code":"sbh","name":"Sori-Harengan"},{"code":"sbi","name":"Seti"},{"code":"sbj","name":"Surbakhal"},{"code":"sbk","name":"Safwa"},{"code":"sbl","name":"Botolan Sambal"},{"code":"sbm","name":"Sagala"},{"code":"sbn","name":"Sindhi Bhil"},{"code":"sbo","name":"Sabüm"},{"code":"sbp","name":"Sangu (Tanzania)"},{"code":"sbq","name":"Sileibi"},{"code":"sbr","name":"Sembakung Murut"},{"code":"sbs","name":"Subiya"},{"code":"sbt","name":"Kimki"},{"code":"sbu","name":"Stod Bhoti"},{"code":"sbv","name":"Sabine"},{"code":"sbw","name":"Simba"},{"code":"sbx","name":"Seberuang"},{"code":"sby","name":"Soli"},{"code":"sbz","name":"Sara Kaba"},{"code":"scb","name":"Chut"},{"code":"sce","name":"Dongxiang"},{"code":"scf","name":"San Miguel Creole French"},{"code":"scg","name":"Sanggau"},{"code":"sch","name":"Sakachep"},{"code":"sci","name":"Sri Lankan Creole Malay"},{"code":"sck","name":"Sadri"},{"code":"scl","name":"Shina"},{"code":"scn","name":"Sicilian"},{"code":"sco","name":"Scots"},{"code":"scp","name":"Helambu Sherpa"},{"code":"scq","name":"Sa'och"},{"code":"scs","name":"North Slavey"},{"code":"sct","name":"Southern Katang"},{"code":"scu","name":"Shumcho"},{"code":"scv","name":"Sheni"},{"code":"scw","name":"Sha"},{"code":"scx","name":"Sicel"},{"code":"sda","name":"Toraja-Sa'dan"},{"code":"sdb","name":"Shabak"},{"code":"sdc","name":"Sassarese Sardinian"},{"code":"sde","name":"Surubu"},{"code":"sdf","name":"Sarli"},{"code":"sdg","name":"Savi"},{"code":"sdh","name":"Southern Kurdish"},{"code":"sdj","name":"Suundi"},{"code":"sdk","name":"Sos Kundi"},{"code":"sdl","name":"Saudi Arabian Sign Language"},{"code":"sdn","name":"Gallurese Sardinian"},{"code":"sdo","name":"Bukar-Sadung Bidayuh"},{"code":"sdp","name":"Sherdukpen"},{"code":"sdq","name":"Semandang"},{"code":"sdr","name":"Oraon Sadri"},{"code":"sds","name":"Sened"},{"code":"sdt","name":"Shuadit"},{"code":"sdu","name":"Sarudu"},{"code":"sdx","name":"Sibu Melanau"},{"code":"sdz","name":"Sallands"},{"code":"sea","name":"Semai"},{"code":"seb","name":"Shempire Senoufo"},{"code":"sec","name":"Sechelt"},{"code":"sed","name":"Sedang"},{"code":"see","name":"Seneca"},{"code":"sef","name":"Cebaara Senoufo"},{"code":"seg","name":"Segeju"},{"code":"seh","name":"Sena"},{"code":"sei","name":"Seri"},{"code":"sej","name":"Sene"},{"code":"sek","name":"Sekani"},{"code":"sel","name":"Selkup"},{"code":"sen","name":"Nanerigé Sénoufo"},{"code":"seo","name":"Suarmin"},{"code":"sep","name":"Sìcìté Sénoufo"},{"code":"seq","name":"Senara Sénoufo"},{"code":"ser","name":"Serrano"},{"code":"ses","name":"Koyraboro Senni Songhai"},{"code":"set","name":"Sentani"},{"code":"seu","name":"Serui-Laut"},{"code":"sev","name":"Nyarafolo Senoufo"},{"code":"sew","name":"Sewa Bay"},{"code":"sey","name":"Secoya"},{"code":"sez","name":"Senthang Chin"},{"code":"sfb","name":"French Belgian Sign Language"},{"code":"sfe","name":"Eastern Subanen"},{"code":"sfm","name":"Small Flowery Miao"},{"code":"sfs","name":"South African Sign Language"},{"code":"sfw","name":"Sehwi"},{"code":"sga","name":"Old Irish (to 900)"},{"code":"sgb","name":"Mag-antsi Ayta"},{"code":"sgc","name":"Kipsigis"},{"code":"sgd","name":"Surigaonon"},{"code":"sge","name":"Segai"},{"code":"sgg","name":"Swiss-German Sign Language"},{"code":"sgh","name":"Shughni"},{"code":"sgi","name":"Suga"},{"code":"sgj","name":"Surgujia"},{"code":"sgk","name":"Sangkong"},{"code":"sgm","name":"Singa"},{"code":"sgp","name":"Singpho"},{"code":"sgr","name":"Sangisari"},{"code":"sgs","name":"Samogitian"},{"code":"sgt","name":"Brokpake"},{"code":"sgu","name":"Salas"},{"code":"sgw","name":"Sebat Bet Gurage"},{"code":"sgx","name":"Sierra Leone Sign Language"},{"code":"sgy","name":"Sanglechi"},{"code":"sgz","name":"Sursurunga"},{"code":"sha","name":"Shall-Zwall"},{"code":"shb","name":"Ninam"},{"code":"shc","name":"Sonde"},{"code":"shd","name":"Kundal Shahi"},{"code":"she","name":"Sheko"},{"code":"shg","name":"Shua"},{"code":"shh","name":"Shoshoni"},{"code":"shi","name":"Tachelhit"},{"code":"shj","name":"Shatt"},{"code":"shk","name":"Shilluk"},{"code":"shl","name":"Shendu"},{"code":"shm","name":"Shahrudi"},{"code":"shn","name":"Shan"},{"code":"sho","name":"Shanga"},{"code":"shp","name":"Shipibo-Conibo"},{"code":"shq","name":"Sala"},{"code":"shr","name":"Shi"},{"code":"shs","name":"Shuswap"},{"code":"sht","name":"Shasta"},{"code":"shu","name":"Chadian Arabic"},{"code":"shv","name":"Shehri"},{"code":"shw","name":"Shwai"},{"code":"shx","name":"She"},{"code":"shy","name":"Tachawit"},{"code":"shz","name":"Syenara Senoufo"},{"code":"sia","name":"Akkala Sami"},{"code":"sib","name":"Sebop"},{"code":"sid","name":"Sidamo"},{"code":"sie","name":"Simaa"},{"code":"sif","name":"Siamou"},{"code":"sig","name":"Paasaal"},{"code":"sih","name":"Sîshëë"},{"code":"sii","name":"Shom Peng"},{"code":"sij","name":"Numbami"},{"code":"sik","name":"Sikiana"},{"code":"sil","name":"Tumulung Sisaala"},{"code":"sim","name":"Mende (Papua New Guinea)"},{"code":"sin","name":"Sinhala"},{"code":"sip","name":"Sikkimese"},{"code":"siq","name":"Sonia"},{"code":"sir","name":"Siri"},{"code":"sis","name":"Siuslaw"},{"code":"siu","name":"Sinagen"},{"code":"siv","name":"Sumariup"},{"code":"siw","name":"Siwai"},{"code":"six","name":"Sumau"},{"code":"siy","name":"Sivandi"},{"code":"siz","name":"Siwi"},{"code":"sja","name":"Epena"},{"code":"sjb","name":"Sajau Basap"},{"code":"sjd","name":"Kildin Sami"},{"code":"sje","name":"Pite Sami"},{"code":"sjg","name":"Assangori"},{"code":"sjk","name":"Kemi Sami"},{"code":"sjl","name":"Miji"},{"code":"sjm","name":"Mapun"},{"code":"sjn","name":"Sindarin"},{"code":"sjo","name":"Xibe"},{"code":"sjp","name":"Surjapuri"},{"code":"sjr","name":"Siar-Lak"},{"code":"sjs","name":"Senhaja De Srair"},{"code":"sjt","name":"Ter Sami"},{"code":"sju","name":"Ume Sami"},{"code":"sjw","name":"Shawnee"},{"code":"ska","name":"Skagit"},{"code":"skb","name":"Saek"},{"code":"skc","name":"Ma Manda"},{"code":"skd","name":"Southern Sierra Miwok"},{"code":"ske","name":"Seke (Vanuatu)"},{"code":"skf","name":"Sakirabiá"},{"code":"skg","name":"Sakalava Malagasy"},{"code":"skh","name":"Sikule"},{"code":"ski","name":"Sika"},{"code":"skj","name":"Seke (Nepal)"},{"code":"skm","name":"Kutong"},{"code":"skn","name":"Kolibugan Subanon"},{"code":"sko","name":"Seko Tengah"},{"code":"skp","name":"Sekapan"},{"code":"skq","name":"Sininkere"},{"code":"skr","name":"Saraiki"},{"code":"sks","name":"Maia"},{"code":"skt","name":"Sakata"},{"code":"sku","name":"Sakao"},{"code":"skv","name":"Skou"},{"code":"skw","name":"Skepi Creole Dutch"},{"code":"skx","name":"Seko Padang"},{"code":"sky","name":"Sikaiana"},{"code":"skz","name":"Sekar"},{"code":"slc","name":"Sáliba"},{"code":"sld","name":"Sissala"},{"code":"sle","name":"Sholaga"},{"code":"slf","name":"Swiss-Italian Sign Language"},{"code":"slg","name":"Selungai Murut"},{"code":"slh","name":"Southern Puget Sound Salish"},{"code":"sli","name":"Lower Silesian"},{"code":"slj","name":"Salumá"},{"code":"slk","name":"Slovak"},{"code":"sll","name":"Salt-Yui"},{"code":"slm","name":"Pangutaran Sama"},{"code":"sln","name":"Salinan"},{"code":"slp","name":"Lamaholot"},{"code":"slq","name":"Salchuq"},{"code":"slr","name":"Salar"},{"code":"sls","name":"Singapore Sign Language"},{"code":"slt","name":"Sila"},{"code":"slu","name":"Selaru"},{"code":"slv","name":"Slovenian"},{"code":"slw","name":"Sialum"},{"code":"slx","name":"Salampasu"},{"code":"sly","name":"Selayar"},{"code":"slz","name":"Ma'ya"},{"code":"sma","name":"Southern Sami"},{"code":"smb","name":"Simbari"},{"code":"smc","name":"Som"},{"code":"smd","name":"Sama"},{"code":"sme","name":"Northern Sami"},{"code":"smf","name":"Auwe"},{"code":"smg","name":"Simbali"},{"code":"smh","name":"Samei"},{"code":"smj","name":"Lule Sami"},{"code":"smk","name":"Bolinao"},{"code":"sml","name":"Central Sama"},{"code":"smm","name":"Musasa"},{"code":"smn","name":"Inari Sami"},{"code":"smo","name":"Samoan"},{"code":"smp","name":"Samaritan"},{"code":"smq","name":"Samo"},{"code":"smr","name":"Simeulue"},{"code":"sms","name":"Skolt Sami"},{"code":"smt","name":"Simte"},{"code":"smu","name":"Somray"},{"code":"smv","name":"Samvedi"},{"code":"smw","name":"Sumbawa"},{"code":"smx","name":"Samba"},{"code":"smy","name":"Semnani"},{"code":"smz","name":"Simeku"},{"code":"sna","name":"Shona"},{"code":"snb","name":"Sebuyau"},{"code":"snc","name":"Sinaugoro"},{"code":"snd","name":"Sindhi"},{"code":"sne","name":"Bau Bidayuh"},{"code":"snf","name":"Noon"},{"code":"sng","name":"Sanga (Democratic Republic of Congo)"},{"code":"sni","name":"Sensi"},{"code":"snj","name":"Riverain Sango"},{"code":"snk","name":"Soninke"},{"code":"snl","name":"Sangil"},{"code":"snm","name":"Southern Ma'di"},{"code":"snn","name":"Siona"},{"code":"sno","name":"Snohomish"},{"code":"snp","name":"Siane"},{"code":"snq","name":"Sangu (Gabon)"},{"code":"snr","name":"Sihan"},{"code":"sns","name":"Nahavaq"},{"code":"snu","name":"Senggi"},{"code":"snv","name":"Sa'ban"},{"code":"snw","name":"Selee"},{"code":"snx","name":"Sam"},{"code":"sny","name":"Saniyo-Hiyewe"},{"code":"snz","name":"Kou"},{"code":"soa","name":"Thai Song"},{"code":"sob","name":"Sobei"},{"code":"soc","name":"So (Democratic Republic of Congo)"},{"code":"sod","name":"Songoora"},{"code":"soe","name":"Songomeno"},{"code":"sog","name":"Sogdian"},{"code":"soh","name":"Aka"},{"code":"soi","name":"Sonha"},{"code":"soj","name":"Soi"},{"code":"sok","name":"Sokoro"},{"code":"sol","name":"Solos"},{"code":"som","name":"Somali"},{"code":"soo","name":"Songo"},{"code":"sop","name":"Songe"},{"code":"soq","name":"Kanasi"},{"code":"sor","name":"Somrai"},{"code":"sos","name":"Seeku"},{"code":"sot","name":"Southern Sotho"},{"code":"sou","name":"Southern Thai"},{"code":"sov","name":"Sonsorol"},{"code":"sow","name":"Sowanda"},{"code":"sox","name":"Swo"},{"code":"soy","name":"Miyobe"},{"code":"soz","name":"Temi"},{"code":"spa","name":"Spanish"},{"code":"spb","name":"Sepa (Indonesia)"},{"code":"spc","name":"Sapé"},{"code":"spd","name":"Saep"},{"code":"spe","name":"Sepa (Papua New Guinea)"},{"code":"spg","name":"Sian"},{"code":"spi","name":"Saponi"},{"code":"spk","name":"Sengo"},{"code":"spl","name":"Selepet"},{"code":"spm","name":"Akukem"},{"code":"spn","name":"Sanapaná"},{"code":"spo","name":"Spokane"},{"code":"spp","name":"Supyire Senoufo"},{"code":"spq","name":"Loreto-Ucayali Spanish"},{"code":"spr","name":"Saparua"},{"code":"sps","name":"Saposa"},{"code":"spt","name":"Spiti Bhoti"},{"code":"spu","name":"Sapuan"},{"code":"spv","name":"Kosli"},{"code":"spx","name":"South Picene"},{"code":"spy","name":"Sabaot"},{"code":"sqa","name":"Shama-Sambuga"},{"code":"sqh","name":"Shau"},{"code":"sqi","name":"Albanian"},{"code":"sqk","name":"Albanian Sign Language"},{"code":"sqm","name":"Suma"},{"code":"sqn","name":"Susquehannock"},{"code":"sqo","name":"Sorkhei"},{"code":"sqq","name":"Sou"},{"code":"sqr","name":"Siculo Arabic"},{"code":"sqs","name":"Sri Lankan Sign Language"},{"code":"sqt","name":"Soqotri"},{"code":"squ","name":"Squamish"},{"code":"sqx","name":"Kufr Qassem Sign Language (KQSL)"},{"code":"sra","name":"Saruga"},{"code":"srb","name":"Sora"},{"code":"src","name":"Logudorese Sardinian"},{"code":"srd","name":"Sardinian"},{"code":"sre","name":"Sara"},{"code":"srf","name":"Nafi"},{"code":"srg","name":"Sulod"},{"code":"srh","name":"Sarikoli"},{"code":"sri","name":"Siriano"},{"code":"srk","name":"Serudung Murut"},{"code":"srl","name":"Isirawa"},{"code":"srm","name":"Saramaccan"},{"code":"srn","name":"Sranan Tongo"},{"code":"sro","name":"Campidanese Sardinian"},{"code":"srp","name":"Serbian"},{"code":"srq","name":"Sirionó"},{"code":"srr","name":"Serer"},{"code":"srs","name":"Sarsi"},{"code":"srt","name":"Sauri"},{"code":"sru","name":"Suruí"},{"code":"srv","name":"Southern Sorsoganon"},{"code":"srw","name":"Serua"},{"code":"srx","name":"Sirmauri"},{"code":"sry","name":"Sera"},{"code":"srz","name":"Shahmirzadi"},{"code":"ssb","name":"Southern Sama"},{"code":"ssc","name":"Suba-Simbiti"},{"code":"ssd","name":"Siroi"},{"code":"sse","name":"Balangingi"},{"code":"ssf","name":"Thao"},{"code":"ssg","name":"Seimat"},{"code":"ssh","name":"Shihhi Arabic"},{"code":"ssi","name":"Sansi"},{"code":"ssj","name":"Sausi"},{"code":"ssk","name":"Sunam"},{"code":"ssl","name":"Western Sisaala"},{"code":"ssm","name":"Semnam"},{"code":"ssn","name":"Waata"},{"code":"sso","name":"Sissano"},{"code":"ssp","name":"Spanish Sign Language"},{"code":"ssq","name":"So'a"},{"code":"ssr","name":"Swiss-French Sign Language"},{"code":"sss","name":"Sô"},{"code":"sst","name":"Sinasina"},{"code":"ssu","name":"Susuami"},{"code":"ssv","name":"Shark Bay"},{"code":"ssw","name":"Swati"},{"code":"ssx","name":"Samberigi"},{"code":"ssy","name":"Saho"},{"code":"ssz","name":"Sengseng"},{"code":"sta","name":"Settla"},{"code":"stb","name":"Northern Subanen"},{"code":"std","name":"Sentinel"},{"code":"ste","name":"Liana-Seti"},{"code":"stf","name":"Seta"},{"code":"stg","name":"Trieng"},{"code":"sth","name":"Shelta"},{"code":"sti","name":"Bulo Stieng"},{"code":"stj","name":"Matya Samo"},{"code":"stk","name":"Arammba"},{"code":"stl","name":"Stellingwerfs"},{"code":"stm","name":"Setaman"},{"code":"stn","name":"Owa"},{"code":"sto","name":"Stoney"},{"code":"stp","name":"Southeastern Tepehuan"},{"code":"stq","name":"Saterfriesisch"},{"code":"str","name":"Straits Salish"},{"code":"sts","name":"Shumashti"},{"code":"stt","name":"Budeh Stieng"},{"code":"stu","name":"Samtao"},{"code":"stv","name":"Silt'e"},{"code":"stw","name":"Satawalese"},{"code":"sty","name":"Siberian Tatar"},{"code":"sua","name":"Sulka"},{"code":"sub","name":"Suku"},{"code":"suc","name":"Western Subanon"},{"code":"sue","name":"Suena"},{"code":"sug","name":"Suganga"},{"code":"sui","name":"Suki"},{"code":"suj","name":"Shubi"},{"code":"suk","name":"Sukuma"},{"code":"sun","name":"Sundanese"},{"code":"suo","name":"Bouni"},{"code":"suq","name":"Suri"},{"code":"sur","name":"Mwaghavul"},{"code":"sus","name":"Susu"},{"code":"sut","name":"Subtiaba"},{"code":"suv","name":"Puroik"},{"code":"suw","name":"Sumbwa"},{"code":"sux","name":"Sumerian"},{"code":"suy","name":"Suyá"},{"code":"suz","name":"Sunwar"},{"code":"sva","name":"Svan"},{"code":"svb","name":"Ulau-Suain"},{"code":"svc","name":"Vincentian Creole English"},{"code":"sve","name":"Serili"},{"code":"svk","name":"Slovakian Sign Language"},{"code":"svm","name":"Slavomolisano"},{"code":"svs","name":"Savosavo"},{"code":"svx","name":"Skalvian"},{"code":"swa","name":"Swahili"},{"code":"swb","name":"Maore Comorian"},{"code":"swc","name":"Congo Swahili"},{"code":"swe","name":"Swedish"},{"code":"swf","name":"Sere"},{"code":"swg","name":"Swabian"},{"code":"swh","name":"Kiswahili"},{"code":"swi","name":"Sui"},{"code":"swj","name":"Sira"},{"code":"swk","name":"Malawi Sena"},{"code":"swl","name":"Swedish Sign Language"},{"code":"swm","name":"Samosa"},{"code":"swn","name":"Sawknah"},{"code":"swo","name":"Shanenawa"},{"code":"swp","name":"Suau"},{"code":"swq","name":"Sharwa"},{"code":"swr","name":"Saweru"},{"code":"sws","name":"Seluwasan"},{"code":"swt","name":"Sawila"},{"code":"swu","name":"Suwawa"},{"code":"swv","name":"Shekhawati"},{"code":"sww","name":"Sowa"},{"code":"swx","name":"Suruahá"},{"code":"swy","name":"Sarua"},{"code":"sxb","name":"Suba"},{"code":"sxc","name":"Sicanian"},{"code":"sxe","name":"Sighu"},{"code":"sxg","name":"Shixing"},{"code":"sxk","name":"Southern Kalapuya"},{"code":"sxl","name":"Selian"},{"code":"sxm","name":"Samre"},{"code":"sxn","name":"Sangir"},{"code":"sxo","name":"Sorothaptic"},{"code":"sxr","name":"Saaroa"},{"code":"sxs","name":"Sasaru"},{"code":"sxu","name":"Upper Saxon"},{"code":"sxw","name":"Saxwe Gbe"},{"code":"sya","name":"Siang"},{"code":"syb","name":"Central Subanen"},{"code":"syc","name":"Classical Syriac"},{"code":"syi","name":"Seki"},{"code":"syk","name":"Sukur"},{"code":"syl","name":"Sylheti"},{"code":"sym","name":"Maya Samo"},{"code":"syn","name":"Senaya"},{"code":"syo","name":"Suoy"},{"code":"syr","name":"Syriac"},{"code":"sys","name":"Sinyar"},{"code":"syw","name":"Kagate"},{"code":"syx","name":"Samay"},{"code":"syy","name":"Al-Sayyid Bedouin Sign Language"},{"code":"sza","name":"Semelai"},{"code":"szb","name":"Ngalum"},{"code":"szc","name":"Semaq Beri"},{"code":"szd","name":"Seru"},{"code":"sze","name":"Seze"},{"code":"szg","name":"Sengele"},{"code":"szl","name":"Silesian"},{"code":"szn","name":"Sula"},{"code":"szp","name":"Suabo"},{"code":"szs","name":"Solomon Islands Sign Language"},{"code":"szv","name":"Isu (Fako Division)"},{"code":"szw","name":"Sawai"},{"code":"szy","name":"Sakizaya"},{"code":"taa","name":"Lower Tanana"},{"code":"tab","name":"Tabassaran"},{"code":"tac","name":"Lowland Tarahumara"},{"code":"tad","name":"Tause"},{"code":"tae","name":"Tariana"},{"code":"taf","name":"Tapirapé"},{"code":"tag","name":"Tagoi"},{"code":"tah","name":"Tahitian"},{"code":"taj","name":"Eastern Tamang"},{"code":"tak","name":"Tala"},{"code":"tal","name":"Tal"},{"code":"tam","name":"Tamil"},{"code":"tan","name":"Tangale"},{"code":"tao","name":"Yami"},{"code":"tap","name":"Taabwa"},{"code":"taq","name":"Tamasheq"},{"code":"tar","name":"Central Tarahumara"},{"code":"tas","name":"Tay Boi"},{"code":"tat","name":"Tatar"},{"code":"tau","name":"Upper Tanana"},{"code":"tav","name":"Tatuyo"},{"code":"taw","name":"Tai"},{"code":"tax","name":"Tamki"},{"code":"tay","name":"Atayal"},{"code":"taz","name":"Tocho"},{"code":"tba","name":"Aikanã"},{"code":"tbc","name":"Takia"},{"code":"tbd","name":"Kaki Ae"},{"code":"tbe","name":"Tanimbili"},{"code":"tbf","name":"Mandara"},{"code":"tbg","name":"North Tairora"},{"code":"tbh","name":"Dharawal"},{"code":"tbi","name":"Gaam"},{"code":"tbj","name":"Tiang"},{"code":"tbk","name":"Calamian Tagbanwa"},{"code":"tbl","name":"Tboli"},{"code":"tbm","name":"Tagbu"},{"code":"tbn","name":"Barro Negro Tunebo"},{"code":"tbo","name":"Tawala"},{"code":"tbp","name":"Diebroud"},{"code":"tbr","name":"Tumtum"},{"code":"tbs","name":"Tanguat"},{"code":"tbt","name":"Tembo (Kitembo)"},{"code":"tbu","name":"Tubar"},{"code":"tbv","name":"Tobo"},{"code":"tbw","name":"Tagbanwa"},{"code":"tbx","name":"Kapin"},{"code":"tby","name":"Tabaru"},{"code":"tbz","name":"Ditammari"},{"code":"tca","name":"Ticuna"},{"code":"tcb","name":"Tanacross"},{"code":"tcc","name":"Datooga"},{"code":"tcd","name":"Tafi"},{"code":"tce","name":"Southern Tutchone"},{"code":"tcf","name":"Malinaltepec Me'phaa"},{"code":"tcg","name":"Tamagario"},{"code":"tch","name":"Turks And Caicos Creole English"},{"code":"tci","name":"Wára"},{"code":"tck","name":"Tchitchege"},{"code":"tcl","name":"Taman (Myanmar)"},{"code":"tcm","name":"Tanahmerah"},{"code":"tcn","name":"Tichurong"},{"code":"tco","name":"Taungyo"},{"code":"tcp","name":"Tawr Chin"},{"code":"tcq","name":"Kaiy"},{"code":"tcs","name":"Torres Strait Creole"},{"code":"tct","name":"T'en"},{"code":"tcu","name":"Southeastern Tarahumara"},{"code":"tcw","name":"Tecpatlán Totonac"},{"code":"tcx","name":"Toda"},{"code":"tcy","name":"Tulu"},{"code":"tcz","name":"Thado Chin"},{"code":"tda","name":"Tagdal"},{"code":"tdb","name":"Panchpargania"},{"code":"tdc","name":"Emberá-Tadó"},{"code":"tdd","name":"Tai Nüa"},{"code":"tde","name":"Tiranige Diga Dogon"},{"code":"tdf","name":"Talieng"},{"code":"tdg","name":"Western Tamang"},{"code":"tdh","name":"Thulung"},{"code":"tdi","name":"Tomadino"},{"code":"tdj","name":"Tajio"},{"code":"tdk","name":"Tambas"},{"code":"tdl","name":"Sur"},{"code":"tdm","name":"Taruma"},{"code":"tdn","name":"Tondano"},{"code":"tdo","name":"Teme"},{"code":"tdq","name":"Tita"},{"code":"tdr","name":"Todrah"},{"code":"tds","name":"Doutai"},{"code":"tdt","name":"Tetun Dili"},{"code":"tdv","name":"Toro"},{"code":"tdx","name":"Tandroy-Mahafaly Malagasy"},{"code":"tdy","name":"Tadyawan"},{"code":"tea","name":"Temiar"},{"code":"teb","name":"Tetete"},{"code":"tec","name":"Terik"},{"code":"ted","name":"Tepo Krumen"},{"code":"tee","name":"Huehuetla Tepehua"},{"code":"tef","name":"Teressa"},{"code":"teg","name":"Teke-Tege"},{"code":"teh","name":"Tehuelche"},{"code":"tei","name":"Torricelli"},{"code":"tek","name":"Ibali Teke"},{"code":"tel","name":"Telugu"},{"code":"tem","name":"Timne"},{"code":"ten","name":"Tama (Colombia)"},{"code":"teo","name":"Teso"},{"code":"tep","name":"Tepecano"},{"code":"teq","name":"Temein"},{"code":"ter","name":"Tereno"},{"code":"tes","name":"Tengger"},{"code":"tet","name":"Tetum"},{"code":"teu","name":"Soo"},{"code":"tev","name":"Teor"},{"code":"tew","name":"Tewa (USA)"},{"code":"tex","name":"Tennet"},{"code":"tey","name":"Tulishi"},{"code":"tez","name":"Tetserret"},{"code":"tfi","name":"Tofin Gbe"},{"code":"tfn","name":"Tanaina"},{"code":"tfo","name":"Tefaro"},{"code":"tfr","name":"Teribe"},{"code":"tft","name":"Ternate"},{"code":"tga","name":"Sagalla"},{"code":"tgb","name":"Tobilung"},{"code":"tgc","name":"Tigak"},{"code":"tgd","name":"Ciwogai"},{"code":"tge","name":"Eastern Gorkha Tamang"},{"code":"tgf","name":"Chalikha"},{"code":"tgh","name":"Tobagonian Creole English"},{"code":"tgi","name":"Lawunuia"},{"code":"tgj","name":"Tagin"},{"code":"tgk","name":"Tajik"},{"code":"tgl","name":"Tagalog"},{"code":"tgn","name":"Tandaganon"},{"code":"tgo","name":"Sudest"},{"code":"tgp","name":"Tangoa"},{"code":"tgq","name":"Tring"},{"code":"tgr","name":"Tareng"},{"code":"tgs","name":"Nume"},{"code":"tgt","name":"Central Tagbanwa"},{"code":"tgu","name":"Tanggu"},{"code":"tgv","name":"Tingui-Boto"},{"code":"tgw","name":"Tagwana Senoufo"},{"code":"tgx","name":"Tagish"},{"code":"tgy","name":"Togoyo"},{"code":"tgz","name":"Tagalaka"},{"code":"tha","name":"Thai"},{"code":"thd","name":"Kuuk Thaayorre"},{"code":"the","name":"Chitwania Tharu"},{"code":"thf","name":"Thangmi"},{"code":"thh","name":"Northern Tarahumara"},{"code":"thi","name":"Tai Long"},{"code":"thk","name":"Kitharaka"},{"code":"thl","name":"Dangaura Tharu"},{"code":"thm","name":"Aheu"},{"code":"thn","name":"Thachanadan"},{"code":"thp","name":"Thompson"},{"code":"thq","name":"Kochila Tharu"},{"code":"thr","name":"Rana Tharu"},{"code":"ths","name":"Thakali"},{"code":"tht","name":"Tahltan"},{"code":"thu","name":"Thuri"},{"code":"thv","name":"Tahaggart Tamahaq"},{"code":"thy","name":"Tha"},{"code":"thz","name":"Tayart Tamajeq"},{"code":"tia","name":"Tidikelt Tamazight"},{"code":"tic","name":"Tira"},{"code":"tif","name":"Tifal"},{"code":"tig","name":"Tigre"},{"code":"tih","name":"Timugon Murut"},{"code":"tii","name":"Tiene"},{"code":"tij","name":"Tilung"},{"code":"tik","name":"Tikar"},{"code":"til","name":"Tillamook"},{"code":"tim","name":"Timbe"},{"code":"tin","name":"Tindi"},{"code":"tio","name":"Teop"},{"code":"tip","name":"Trimuris"},{"code":"tiq","name":"Tiéfo"},{"code":"tir","name":"Tigrinya"},{"code":"tis","name":"Masadiit Itneg"},{"code":"tit","name":"Tinigua"},{"code":"tiu","name":"Adasen"},{"code":"tiv","name":"Tiv"},{"code":"tiw","name":"Tiwi"},{"code":"tix","name":"Southern Tiwa"},{"code":"tiy","name":"Tiruray"},{"code":"tiz","name":"Tai Hongjin"},{"code":"tja","name":"Tajuasohn"},{"code":"tjg","name":"Tunjung"},{"code":"tji","name":"Northern Tujia"},{"code":"tjj","name":"Tjungundji"},{"code":"tjl","name":"Tai Laing"},{"code":"tjm","name":"Timucua"},{"code":"tjn","name":"Tonjon"},{"code":"tjo","name":"Temacine Tamazight"},{"code":"tjp","name":"Tjupany"},{"code":"tjs","name":"Southern Tujia"},{"code":"tju","name":"Tjurruru"},{"code":"tjw","name":"Djabwurrung"},{"code":"tka","name":"Truká"},{"code":"tkb","name":"Buksa"},{"code":"tkd","name":"Tukudede"},{"code":"tke","name":"Takwane"},{"code":"tkf","name":"Tukumanféd"},{"code":"tkg","name":"Tesaka Malagasy"},{"code":"tkl","name":"Tokelau"},{"code":"tkm","name":"Takelma"},{"code":"tkn","name":"Toku-No-Shima"},{"code":"tkp","name":"Tikopia"},{"code":"tkq","name":"Tee"},{"code":"tkr","name":"Tsakhur"},{"code":"tks","name":"Takestani"},{"code":"tkt","name":"Kathoriya Tharu"},{"code":"tku","name":"Upper Necaxa Totonac"},{"code":"tkv","name":"Mur Pano"},{"code":"tkw","name":"Teanu"},{"code":"tkx","name":"Tangko"},{"code":"tkz","name":"Takua"},{"code":"tla","name":"Southwestern Tepehuan"},{"code":"tlb","name":"Tobelo"},{"code":"tlc","name":"Yecuatla Totonac"},{"code":"tld","name":"Talaud"},{"code":"tlf","name":"Telefol"},{"code":"tlg","name":"Tofanma"},{"code":"tlh","name":"Klingon"},{"code":"tli","name":"Tlingit"},{"code":"tlj","name":"Talinga-Bwisi"},{"code":"tlk","name":"Taloki"},{"code":"tll","name":"Tetela"},{"code":"tlm","name":"Tolomako"},{"code":"tln","name":"Talondo'"},{"code":"tlo","name":"Talodi"},{"code":"tlp","name":"Filomena Mata-Coahuitlán Totonac"},{"code":"tlq","name":"Tai Loi"},{"code":"tlr","name":"Talise"},{"code":"tls","name":"Tambotalo"},{"code":"tlt","name":"Sou Nama"},{"code":"tlu","name":"Tulehu"},{"code":"tlv","name":"Taliabu"},{"code":"tlx","name":"Khehek"},{"code":"tly","name":"Talysh"},{"code":"tma","name":"Tama (Chad)"},{"code":"tmb","name":"Avava"},{"code":"tmc","name":"Tumak"},{"code":"tmd","name":"Haruai"},{"code":"tme","name":"Tremembé"},{"code":"tmf","name":"Toba-Maskoy"},{"code":"tmg","name":"Ternateño"},{"code":"tmh","name":"Tamashek"},{"code":"tmi","name":"Tutuba"},{"code":"tmj","name":"Samarokena"},{"code":"tmk","name":"Northwestern Tamang"},{"code":"tml","name":"Tamnim Citak"},{"code":"tmm","name":"Tai Thanh"},{"code":"tmn","name":"Taman (Indonesia)"},{"code":"tmo","name":"Temoq"},{"code":"tmq","name":"Tumleo"},{"code":"tmr","name":"Jewish Babylonian Aramaic (ca. 200-1200 CE)"},{"code":"tms","name":"Tima"},{"code":"tmt","name":"Tasmate"},{"code":"tmu","name":"Iau"},{"code":"tmv","name":"Tembo (Motembo)"},{"code":"tmw","name":"Temuan"},{"code":"tmy","name":"Tami"},{"code":"tmz","name":"Tamanaku"},{"code":"tna","name":"Tacana"},{"code":"tnb","name":"Western Tunebo"},{"code":"tnc","name":"Tanimuca-Retuarã"},{"code":"tnd","name":"Angosturas Tunebo"},{"code":"tng","name":"Tobanga"},{"code":"tnh","name":"Maiani"},{"code":"tni","name":"Tandia"},{"code":"tnk","name":"Kwamera"},{"code":"tnl","name":"Lenakel"},{"code":"tnm","name":"Tabla"},{"code":"tnn","name":"North Tanna"},{"code":"tno","name":"Toromono"},{"code":"tnp","name":"Whitesands"},{"code":"tnq","name":"Taino"},{"code":"tnr","name":"Ménik"},{"code":"tns","name":"Tenis"},{"code":"tnt","name":"Tontemboan"},{"code":"tnu","name":"Tay Khang"},{"code":"tnv","name":"Tangchangya"},{"code":"tnw","name":"Tonsawang"},{"code":"tnx","name":"Tanema"},{"code":"tny","name":"Tongwe"},{"code":"tnz","name":"Ten'edn"},{"code":"tob","name":"Toba"},{"code":"toc","name":"Coyutla Totonac"},{"code":"tod","name":"Toma"},{"code":"tof","name":"Gizrra"},{"code":"tog","name":"Tonga (Nyasa)"},{"code":"toh","name":"Gitonga"},{"code":"toi","name":"Tonga (Zambia)"},{"code":"toj","name":"Tojolabal"},{"code":"tol","name":"Tolowa"},{"code":"tom","name":"Tombulu"},{"code":"ton","name":"Tonga (Tonga Islands)"},{"code":"too","name":"Xicotepec De Juárez Totonac"},{"code":"top","name":"Papantla Totonac"},{"code":"toq","name":"Toposa"},{"code":"tor","name":"Togbo-Vara Banda"},{"code":"tos","name":"Highland Totonac"},{"code":"tou","name":"Tho"},{"code":"tov","name":"Upper Taromi"},{"code":"tow","name":"Jemez"},{"code":"tox","name":"Tobian"},{"code":"toy","name":"Topoiyo"},{"code":"toz","name":"To"},{"code":"tpa","name":"Taupota"},{"code":"tpc","name":"Azoyú Me'phaa"},{"code":"tpe","name":"Tippera"},{"code":"tpf","name":"Tarpia"},{"code":"tpg","name":"Kula"},{"code":"tpi","name":"Tok Pisin"},{"code":"tpj","name":"Tapieté"},{"code":"tpk","name":"Tupinikin"},{"code":"tpl","name":"Tlacoapa Me'phaa"},{"code":"tpm","name":"Tampulma"},{"code":"tpn","name":"Tupinambá"},{"code":"tpo","name":"Tai Pao"},{"code":"tpp","name":"Pisaflores Tepehua"},{"code":"tpq","name":"Tukpa"},{"code":"tpr","name":"Tuparí"},{"code":"tpt","name":"Tlachichilco Tepehua"},{"code":"tpu","name":"Tampuan"},{"code":"tpv","name":"Tanapag"},{"code":"tpw","name":"Tupí"},{"code":"tpx","name":"Acatepec Me'phaa"},{"code":"tpy","name":"Trumai"},{"code":"tpz","name":"Tinputz"},{"code":"tqb","name":"Tembé"},{"code":"tql","name":"Lehali"},{"code":"tqm","name":"Turumsa"},{"code":"tqn","name":"Tenino"},{"code":"tqo","name":"Toaripi"},{"code":"tqp","name":"Tomoip"},{"code":"tqq","name":"Tunni"},{"code":"tqr","name":"Torona"},{"code":"tqt","name":"Western Totonac"},{"code":"tqu","name":"Touo"},{"code":"tqw","name":"Tonkawa"},{"code":"tra","name":"Tirahi"},{"code":"trb","name":"Terebu"},{"code":"trc","name":"Copala Triqui"},{"code":"trd","name":"Turi"},{"code":"tre","name":"East Tarangan"},{"code":"trf","name":"Trinidadian Creole English"},{"code":"trg","name":"Lishán Didán"},{"code":"trh","name":"Turaka"},{"code":"tri","name":"Trió"},{"code":"trj","name":"Toram"},{"code":"trl","name":"Traveller Scottish"},{"code":"trm","name":"Tregami"},{"code":"trn","name":"Trinitario"},{"code":"tro","name":"Tarao Naga"},{"code":"trp","name":"Kok Borok"},{"code":"trq","name":"San Martín Itunyoso Triqui"},{"code":"trr","name":"Taushiro"},{"code":"trs","name":"Chicahuaxtla Triqui"},{"code":"trt","name":"Tunggare"},{"code":"tru","name":"Surayt"},{"code":"trv","name":"Taroko"},{"code":"trw","name":"Torwali"},{"code":"trx","name":"Tringgus-Sembaan Bidayuh"},{"code":"try","name":"Turung"},{"code":"trz","name":"Torá"},{"code":"tsa","name":"Tsaangi"},{"code":"tsb","name":"Tsamai"},{"code":"tsc","name":"Tswa"},{"code":"tsd","name":"Tsakonian"},{"code":"tse","name":"Tunisian Sign Language"},{"code":"tsg","name":"Tausug"},{"code":"tsh","name":"Tsuvan"},{"code":"tsi","name":"Tsimshian"},{"code":"tsj","name":"Tshangla"},{"code":"tsk","name":"Tseku"},{"code":"tsl","name":"Ts'ün-Lao"},{"code":"tsm","name":"Türk İşaret Dili"},{"code":"tsn","name":"Tswana"},{"code":"tso","name":"Tsonga"},{"code":"tsp","name":"Northern Toussian"},{"code":"tsq","name":"Thai Sign Language"},{"code":"tsr","name":"Akei"},{"code":"tss","name":"Taiwan Sign Language"},{"code":"tst","name":"Tondi Songway Kiini"},{"code":"tsu","name":"Tsou"},{"code":"tsv","name":"Tsogo"},{"code":"tsw","name":"Tsishingini"},{"code":"tsx","name":"Mubami"},{"code":"tsy","name":"Tebul Sign Language"},{"code":"tsz","name":"Purepecha"},{"code":"tta","name":"Tutelo"},{"code":"ttb","name":"Gaa"},{"code":"ttc","name":"Tektiteko"},{"code":"ttd","name":"Tauade"},{"code":"tte","name":"Bwanabwana"},{"code":"ttf","name":"Tuotomb"},{"code":"ttg","name":"Tutong"},{"code":"tth","name":"Upper Ta'oih"},{"code":"tti","name":"Tobati"},{"code":"ttj","name":"Tooro"},{"code":"ttk","name":"Totoro"},{"code":"ttl","name":"Totela"},{"code":"ttm","name":"Northern Tutchone"},{"code":"ttn","name":"Towei"},{"code":"tto","name":"Lower Ta'oih"},{"code":"ttp","name":"Tombelala"},{"code":"ttq","name":"Tawallammat Tamajaq"},{"code":"ttr","name":"Tera"},{"code":"tts","name":"Northeastern Thai"},{"code":"ttt","name":"Muslim Tat"},{"code":"ttu","name":"Torau"},{"code":"ttv","name":"Titan"},{"code":"ttw","name":"Long Wat"},{"code":"tty","name":"Sikaritai"},{"code":"ttz","name":"Tsum"},{"code":"tua","name":"Wiarumus"},{"code":"tub","name":"Tübatulabal"},{"code":"tuc","name":"Mutu"},{"code":"tud","name":"Tuxá"},{"code":"tue","name":"Tuyuca"},{"code":"tuf","name":"Central Tunebo"},{"code":"tug","name":"Tunia"},{"code":"tuh","name":"Taulil"},{"code":"tui","name":"Tupuri"},{"code":"tuj","name":"Tugutil"},{"code":"tuk","name":"Turkmen"},{"code":"tul","name":"Tula"},{"code":"tum","name":"Tumbuka"},{"code":"tun","name":"Tunica"},{"code":"tuo","name":"Tucano"},{"code":"tuq","name":"Tedaga"},{"code":"tur","name":"Turkish"},{"code":"tus","name":"Tuscarora"},{"code":"tuu","name":"Tututni"},{"code":"tuv","name":"Turkana"},{"code":"tux","name":"Tuxináwa"},{"code":"tuy","name":"Tugen"},{"code":"tuz","name":"Turka"},{"code":"tva","name":"Vaghua"},{"code":"tvd","name":"Tsuvadi"},{"code":"tve","name":"Te'un"},{"code":"tvk","name":"Southeast Ambrym"},{"code":"tvl","name":"Tuvalu"},{"code":"tvm","name":"Tela-Masbuar"},{"code":"tvn","name":"Tavoyan"},{"code":"tvo","name":"Tidore"},{"code":"tvs","name":"Taveta"},{"code":"tvt","name":"Tutsa Naga"},{"code":"tvu","name":"Tunen"},{"code":"tvw","name":"Sedoa"},{"code":"tvx","name":"Taivoan"},{"code":"tvy","name":"Timor Pidgin"},{"code":"twa","name":"Twana"},{"code":"twb","name":"Western Tawbuid"},{"code":"twc","name":"Teshenawa"},{"code":"twd","name":"Twents"},{"code":"twe","name":"Tewa (Indonesia)"},{"code":"twf","name":"Northern Tiwa"},{"code":"twg","name":"Tereweng"},{"code":"twh","name":"Tai Dón"},{"code":"twi","name":"Twi"},{"code":"twl","name":"Tawara"},{"code":"twm","name":"Tawang Monpa"},{"code":"twn","name":"Twendi"},{"code":"two","name":"Tswapong"},{"code":"twp","name":"Ere"},{"code":"twq","name":"Tasawaq"},{"code":"twr","name":"Southwestern Tarahumara"},{"code":"twt","name":"Turiwára"},{"code":"twu","name":"Termanu"},{"code":"tww","name":"Tuwari"},{"code":"twx","name":"Tewe"},{"code":"twy","name":"Tawoyan"},{"code":"txa","name":"Tombonuo"},{"code":"txb","name":"Tokharian B"},{"code":"txc","name":"Tsetsaut"},{"code":"txe","name":"Totoli"},{"code":"txg","name":"Tangut"},{"code":"txh","name":"Thracian"},{"code":"txi","name":"Ikpeng"},{"code":"txj","name":"Tarjumo"},{"code":"txm","name":"Tomini"},{"code":"txn","name":"West Tarangan"},{"code":"txo","name":"Toto"},{"code":"txq","name":"Tii"},{"code":"txr","name":"Tartessian"},{"code":"txs","name":"Tonsea"},{"code":"txt","name":"Citak"},{"code":"txu","name":"Kayapó"},{"code":"txx","name":"Tatana"},{"code":"txy","name":"Tanosy Malagasy"},{"code":"tya","name":"Tauya"},{"code":"tye","name":"Kyanga"},{"code":"tyh","name":"O'du"},{"code":"tyi","name":"Teke-Tsaayi"},{"code":"tyj","name":"Tai Do"},{"code":"tyl","name":"Thu Lao"},{"code":"tyn","name":"Kombai"},{"code":"typ","name":"Thaypan"},{"code":"tyr","name":"Tai Daeng"},{"code":"tys","name":"Tày Sa Pa"},{"code":"tyt","name":"Tày Tac"},{"code":"tyu","name":"Kua"},{"code":"tyv","name":"Tuvinian"},{"code":"tyx","name":"Teke-Tyee"},{"code":"tyy","name":"Tiyaa"},{"code":"tyz","name":"Tày"},{"code":"tza","name":"Tanzanian Sign Language"},{"code":"tzh","name":"Tzeltal"},{"code":"tzj","name":"Tz'utujil"},{"code":"tzl","name":"Talossan"},{"code":"tzm","name":"Central Atlas Tamazight"},{"code":"tzn","name":"Tugun"},{"code":"tzo","name":"Tzotzil"},{"code":"tzx","name":"Tabriak"},{"code":"uam","name":"Uamué"},{"code":"uan","name":"Kuan"},{"code":"uar","name":"Tairuma"},{"code":"uba","name":"Ubang"},{"code":"ubi","name":"Ubi"},{"code":"ubl","name":"Buhi'non Bikol"},{"code":"ubr","name":"Ubir"},{"code":"ubu","name":"Umbu-Ungu"},{"code":"uby","name":"Ubykh"},{"code":"uda","name":"Uda"},{"code":"ude","name":"Udihe"},{"code":"udg","name":"Muduga"},{"code":"udi","name":"Udi"},{"code":"udj","name":"Ujir"},{"code":"udl","name":"Wuzlam"},{"code":"udm","name":"Udmurt"},{"code":"udu","name":"Uduk"},{"code":"ues","name":"Kioko"},{"code":"ufi","name":"Ufim"},{"code":"uga","name":"Ugaritic"},{"code":"ugb","name":"Kuku-Ugbanh"},{"code":"uge","name":"Ughele"},{"code":"ugn","name":"Ugandan Sign Language"},{"code":"ugo","name":"Ugong"},{"code":"ugy","name":"Uruguayan Sign Language"},{"code":"uha","name":"Uhami"},{"code":"uhn","name":"Damal"},{"code":"uig","name":"Uighur"},{"code":"uis","name":"Uisai"},{"code":"uiv","name":"Iyive"},{"code":"uji","name":"Tanjijili"},{"code":"uka","name":"Kaburi"},{"code":"ukg","name":"Ukuriguma"},{"code":"ukh","name":"Ukhwejo"},{"code":"uki","name":"Kui (India)"},{"code":"ukk","name":"Muak Sa-aak"},{"code":"ukl","name":"Ukrainian Sign Language"},{"code":"ukp","name":"Ukpe-Bayobiri"},{"code":"ukq","name":"Ukwa"},{"code":"ukr","name":"Ukrainian"},{"code":"uks","name":"Kaapor Sign Language"},{"code":"uku","name":"Ukue"},{"code":"ukv","name":"Kuku"},{"code":"ukw","name":"Ukwuani-Aboh-Ndoni"},{"code":"uky","name":"Kuuk-Yak"},{"code":"ula","name":"Fungwa"},{"code":"ulb","name":"Ulukwumi"},{"code":"ulc","name":"Ulch"},{"code":"ule","name":"Lule"},{"code":"ulf","name":"Afra"},{"code":"uli","name":"Ulithian"},{"code":"ulk","name":"Meriam Mir"},{"code":"ull","name":"Ullatan"},{"code":"ulm","name":"Ulumanda'"},{"code":"uln","name":"Unserdeutsch"},{"code":"ulu","name":"Uma' Lung"},{"code":"ulw","name":"Ulwa"},{"code":"uma","name":"Umatilla"},{"code":"umb","name":"Umbundu"},{"code":"umc","name":"Marrucinian"},{"code":"umd","name":"Umbindhamu"},{"code":"umg","name":"Morrobalama"},{"code":"umi","name":"Ukit"},{"code":"umm","name":"Umon"},{"code":"umn","name":"Makyan Naga"},{"code":"umo","name":"Umotína"},{"code":"ump","name":"Umpila"},{"code":"umr","name":"Umbugarla"},{"code":"ums","name":"Pendau"},{"code":"umu","name":"Munsee"},{"code":"una","name":"North Watut"},{"code":"und","name":"Undetermined"},{"code":"une","name":"Uneme"},{"code":"ung","name":"Ngarinyin"},{"code":"uni","name":"Uni"},{"code":"unk","name":"Enawené-Nawé"},{"code":"unm","name":"Unami"},{"code":"unn","name":"Kurnai"},{"code":"unr","name":"Mundari"},{"code":"unu","name":"Unubahe"},{"code":"unx","name":"Munda"},{"code":"unz","name":"Unde Kaili"},{"code":"upi","name":"Umeda"},{"code":"upv","name":"Uripiv-Wala-Rano-Atchin"},{"code":"ura","name":"Urarina"},{"code":"urb","name":"Kaapor"},{"code":"urc","name":"Urningangg"},{"code":"urd","name":"Urdu"},{"code":"ure","name":"Uru"},{"code":"urf","name":"Uradhi"},{"code":"urg","name":"Urigina"},{"code":"urh","name":"Urhobo"},{"code":"uri","name":"Urim"},{"code":"urk","name":"Urak Lawoi'"},{"code":"url","name":"Urali"},{"code":"urm","name":"Urapmin"},{"code":"urn","name":"Uruangnirin"},{"code":"uro","name":"Ura (Papua New Guinea)"},{"code":"urp","name":"Uru-Pa-In"},{"code":"urr","name":"Lehalurup"},{"code":"urt","name":"Urat"},{"code":"uru","name":"Urumi"},{"code":"urv","name":"Uruava"},{"code":"urw","name":"Sop"},{"code":"urx","name":"Urimo"},{"code":"ury","name":"Orya"},{"code":"urz","name":"Uru-Eu-Wau-Wau"},{"code":"usa","name":"Usarufa"},{"code":"ush","name":"Ushojo"},{"code":"usi","name":"Usui"},{"code":"usk","name":"Usaghade"},{"code":"usp","name":"Uspanteco"},{"code":"uss","name":"us-Saare"},{"code":"usu","name":"Uya"},{"code":"uta","name":"Otank"},{"code":"ute","name":"Ute-Southern Paiute"},{"code":"uth","name":"ut-Hun"},{"code":"utp","name":"Amba (Solomon Islands)"},{"code":"utr","name":"Etulo"},{"code":"utu","name":"Utu"},{"code":"uum","name":"Urum"},{"code":"uun","name":"Kulon-Pazeh"},{"code":"uur","name":"Ura (Vanuatu)"},{"code":"uuu","name":"U"},{"code":"uve","name":"Fagauvea"},{"code":"uvh","name":"Uri"},{"code":"uvl","name":"Lote"},{"code":"uwa","name":"Kuku-Uwanh"},{"code":"uya","name":"Doko-Uyanga"},{"code":"uzb","name":"Uzbek"},{"code":"uzn","name":"Northern Uzbek"},{"code":"uzs","name":"Southern Uzbek"},{"code":"vaa","name":"Vaagri Booli"},{"code":"vae","name":"Vale"},{"code":"vaf","name":"Vafsi"},{"code":"vag","name":"Vagla"},{"code":"vah","name":"Varhadi-Nagpuri"},{"code":"vai","name":"Vai"},{"code":"vaj","name":"Northwestern ǃKung"},{"code":"val","name":"Vehes"},{"code":"vam","name":"Vanimo"},{"code":"van","name":"Valman"},{"code":"vao","name":"Vao"},{"code":"vap","name":"Vaiphei"},{"code":"var","name":"Huarijio"},{"code":"vas","name":"Vasavi"},{"code":"vau","name":"Vanuma"},{"code":"vav","name":"Varli"},{"code":"vay","name":"Wayu"},{"code":"vbb","name":"Southeast Babar"},{"code":"vbk","name":"Southwestern Bontok"},{"code":"vec","name":"Venetian"},{"code":"ved","name":"Veddah"},{"code":"vel","name":"Veluws"},{"code":"vem","name":"Vemgo-Mabas"},{"code":"ven","name":"Venda"},{"code":"veo","name":"Ventureño"},{"code":"vep","name":"Veps"},{"code":"ver","name":"Mom Jango"},{"code":"vgr","name":"Vaghri"},{"code":"vgt","name":"Flemish Sign Language"},{"code":"vic","name":"Virgin Islands Creole English"},{"code":"vid","name":"Vidunda"},{"code":"vie","name":"Vietnamese"},{"code":"vif","name":"Vili"},{"code":"vig","name":"Viemo"},{"code":"vil","name":"Vilela"},{"code":"vin","name":"Vinza"},{"code":"vis","name":"Vishavan"},{"code":"vit","name":"Viti"},{"code":"viv","name":"Iduna"},{"code":"vka","name":"Kariyarra"},{"code":"vkj","name":"Kujarge"},{"code":"vkk","name":"Kaur"},{"code":"vkl","name":"Kulisusu"},{"code":"vkm","name":"Kamakan"},{"code":"vkn","name":"Koro Nulu"},{"code":"vko","name":"Kodeoha"},{"code":"vkp","name":"Korlai Creole Portuguese"},{"code":"vkt","name":"Tenggarong Kutai Malay"},{"code":"vku","name":"Kurrama"},{"code":"vkz","name":"Koro Zuba"},{"code":"vlp","name":"Valpei"},{"code":"vls","name":"Vlaams"},{"code":"vma","name":"Martuyhunira"},{"code":"vmb","name":"Barbaram"},{"code":"vmc","name":"Juxtlahuaca Mixtec"},{"code":"vmd","name":"Mudu Koraga"},{"code":"vme","name":"East Masela"},{"code":"vmf","name":"Mainfränkisch"},{"code":"vmg","name":"Lungalunga"},{"code":"vmh","name":"Maraghei"},{"code":"vmi","name":"Miwa"},{"code":"vmj","name":"Ixtayutla Mixtec"},{"code":"vmk","name":"Makhuwa-Shirima"},{"code":"vml","name":"Malgana"},{"code":"vmm","name":"Mitlatongo Mixtec"},{"code":"vmp","name":"Soyaltepec Mazatec"},{"code":"vmq","name":"Soyaltepec Mixtec"},{"code":"vmr","name":"Marenje"},{"code":"vms","name":"Moksela"},{"code":"vmu","name":"Muluridyi"},{"code":"vmv","name":"Valley Maidu"},{"code":"vmw","name":"Makhuwa"},{"code":"vmx","name":"Tamazola Mixtec"},{"code":"vmy","name":"Ayautla Mazatec"},{"code":"vmz","name":"Mazatlán Mazatec"},{"code":"vnk","name":"Lovono"},{"code":"vnm","name":"Neve'ei"},{"code":"vnp","name":"Vunapu"},{"code":"vol","name":"Volapük"},{"code":"vor","name":"Voro"},{"code":"vot","name":"Votic"},{"code":"vra","name":"Vera'a"},{"code":"vro","name":"Võro"},{"code":"vrs","name":"Varisi"},{"code":"vrt","name":"Banam Bay"},{"code":"vsi","name":"Moldova Sign Language"},{"code":"vsl","name":"Venezuelan Sign Language"},{"code":"vsv","name":"Llengua de signes valenciana"},{"code":"vto","name":"Vitou"},{"code":"vum","name":"Vumbu"},{"code":"vun","name":"Vunjo"},{"code":"vut","name":"Vute"},{"code":"vwa","name":"Awa (China)"},{"code":"waa","name":"Walla Walla"},{"code":"wab","name":"Wab"},{"code":"wac","name":"Wasco-Wishram"},{"code":"wad","name":"Wamesa"},{"code":"wae","name":"Walser"},{"code":"waf","name":"Wakoná"},{"code":"wag","name":"Wa'ema"},{"code":"wah","name":"Watubela"},{"code":"wai","name":"Wares"},{"code":"waj","name":"Waffa"},{"code":"wal","name":"Wolaitta"},{"code":"wam","name":"Wampanoag"},{"code":"wan","name":"Wan"},{"code":"wao","name":"Wappo"},{"code":"wap","name":"Wapishana"},{"code":"waq","name":"Wagiman"},{"code":"war","name":"Waray (Philippines)"},{"code":"was","name":"Washo"},{"code":"wat","name":"Kaninuwa"},{"code":"wau","name":"Waurá"},{"code":"wav","name":"Waka"},{"code":"waw","name":"Waiwai"},{"code":"wax","name":"Marangis"},{"code":"way","name":"Wayana"},{"code":"waz","name":"Wampur"},{"code":"wba","name":"Warao"},{"code":"wbb","name":"Wabo"},{"code":"wbe","name":"Waritai"},{"code":"wbf","name":"Wara"},{"code":"wbh","name":"Wanda"},{"code":"wbi","name":"Vwanji"},{"code":"wbj","name":"Alagwa"},{"code":"wbk","name":"Waigali"},{"code":"wbl","name":"Wakhi"},{"code":"wbm","name":"Wa"},{"code":"wbp","name":"Warlpiri"},{"code":"wbq","name":"Waddar"},{"code":"wbr","name":"Wagdi"},{"code":"wbs","name":"West Bengal Sign Language"},{"code":"wbt","name":"Warnman"},{"code":"wbv","name":"Wajarri"},{"code":"wbw","name":"Woi"},{"code":"wca","name":"Yanomámi"},{"code":"wci","name":"Waci Gbe"},{"code":"wdd","name":"Wandji"},{"code":"wdg","name":"Wadaginam"},{"code":"wdj","name":"Wadjiginy"},{"code":"wdk","name":"Wadikali"},{"code":"wdu","name":"Wadjigu"},{"code":"wdy","name":"Wadjabangayi"},{"code":"wea","name":"Wewaw"},{"code":"wec","name":"Wè Western"},{"code":"wed","name":"Wedau"},{"code":"weg","name":"Wergaia"},{"code":"weh","name":"Weh"},{"code":"wei","name":"Kiunum"},{"code":"wem","name":"Weme Gbe"},{"code":"weo","name":"Wemale"},{"code":"wep","name":"Westphalien"},{"code":"wer","name":"Weri"},{"code":"wes","name":"Cameroon Pidgin"},{"code":"wet","name":"Perai"},{"code":"weu","name":"Rawngtu Chin"},{"code":"wew","name":"Wejewa"},{"code":"wfg","name":"Yafi"},{"code":"wga","name":"Wagaya"},{"code":"wgb","name":"Wagawaga"},{"code":"wgg","name":"Wangganguru"},{"code":"wgi","name":"Wahgi"},{"code":"wgo","name":"Waigeo"},{"code":"wgu","name":"Wirangu"},{"code":"wgy","name":"Warrgamay"},{"code":"wha","name":"Manusela"},{"code":"whg","name":"North Wahgi"},{"code":"whk","name":"Wahau Kenyah"},{"code":"whu","name":"Wahau Kayan"},{"code":"wib","name":"Southern Toussian"},{"code":"wic","name":"Wichita"},{"code":"wie","name":"Wik-Epa"},{"code":"wif","name":"Wik-Keyangan"},{"code":"wig","name":"Wik Ngathan"},{"code":"wih","name":"Wik-Me'anha"},{"code":"wii","name":"Minidien"},{"code":"wij","name":"Wik-Iiyanh"},{"code":"wik","name":"Wikalkan"},{"code":"wil","name":"Wilawila"},{"code":"wim","name":"Wik-Mungkan"},{"code":"win","name":"Ho-Chunk"},{"code":"wir","name":"Wiraféd"},{"code":"wiu","name":"Wiru"},{"code":"wiv","name":"Vitu"},{"code":"wiy","name":"Wiyot"},{"code":"wja","name":"Waja"},{"code":"wji","name":"Warji"},{"code":"wka","name":"Kw'adza"},{"code":"wkb","name":"Kumbaran"},{"code":"wkd","name":"Mo"},{"code":"wkl","name":"Kalanadi"},{"code":"wkr","name":"Keerray-Woorroong"},{"code":"wku","name":"Kunduvadi"},{"code":"wkw","name":"Wakawaka"},{"code":"wky","name":"Wangkayutyuru"},{"code":"wla","name":"Walio"},{"code":"wlc","name":"Mwali Comorian"},{"code":"wle","name":"Wolane"},{"code":"wlg","name":"Kunbarlang"},{"code":"wlh","name":"Welaun"},{"code":"wli","name":"Waioli"},{"code":"wlk","name":"Wailaki"},{"code":"wll","name":"Wali (Sudan)"},{"code":"wlm","name":"Middle Welsh"},{"code":"wln","name":"Walloon"},{"code":"wlo","name":"Wolio"},{"code":"wlr","name":"Wailapa"},{"code":"wls","name":"Wallisian"},{"code":"wlu","name":"Wuliwuli"},{"code":"wlv","name":"Wichí Lhamtés Vejoz"},{"code":"wlw","name":"Walak"},{"code":"wlx","name":"Wali (Ghana)"},{"code":"wly","name":"Waling"},{"code":"wma","name":"Mawa (Nigeria)"},{"code":"wmb","name":"Wambaya"},{"code":"wmc","name":"Wamas"},{"code":"wmd","name":"Mamaindé"},{"code":"wme","name":"Wambule"},{"code":"wmg","name":"Western Minyag"},{"code":"wmh","name":"Waima'a"},{"code":"wmi","name":"Wamin"},{"code":"wmm","name":"Maiwa (Indonesia)"},{"code":"wmn","name":"Waamwang"},{"code":"wmo","name":"Wom (Papua New Guinea)"},{"code":"wms","name":"Wambon"},{"code":"wmt","name":"Walmajarri"},{"code":"wmw","name":"Mwani"},{"code":"wmx","name":"Womo"},{"code":"wnb","name":"Wanambre"},{"code":"wnc","name":"Wantoat"},{"code":"wnd","name":"Wandarang"},{"code":"wne","name":"Waneci"},{"code":"wng","name":"Wanggom"},{"code":"wni","name":"Ndzwani Comorian"},{"code":"wnk","name":"Wanukaka"},{"code":"wnm","name":"Wanggamala"},{"code":"wnn","name":"Wunumara"},{"code":"wno","name":"Wano"},{"code":"wnp","name":"Wanap"},{"code":"wnu","name":"Usan"},{"code":"wnw","name":"Wintu"},{"code":"wny","name":"Waanyi"},{"code":"woa","name":"Kuwema"},{"code":"wob","name":"Wè Northern"},{"code":"woc","name":"Wogeo"},{"code":"wod","name":"Wolani"},{"code":"woe","name":"Woleaian"},{"code":"wof","name":"Gambian Wolof"},{"code":"wog","name":"Wogamusin"},{"code":"woi","name":"Kamang"},{"code":"wok","name":"Longto"},{"code":"wol","name":"Wolof"},{"code":"wom","name":"Wom (Nigeria)"},{"code":"won","name":"Wongo"},{"code":"woo","name":"Manombai"},{"code":"wor","name":"Woria"},{"code":"wos","name":"Hanga Hundi"},{"code":"wow","name":"Wawonii"},{"code":"woy","name":"Weyto"},{"code":"wpc","name":"Maco"},{"code":"wrb","name":"Waluwarra"},{"code":"wrd","name":"Warduji"},{"code":"wrg","name":"Gudjal"},{"code":"wrh","name":"Wiradjuri"},{"code":"wri","name":"Wariyangga"},{"code":"wrk","name":"Garrwa"},{"code":"wrl","name":"Warlmanpa"},{"code":"wrm","name":"Warumungu"},{"code":"wrn","name":"Warnang"},{"code":"wro","name":"Worrorra"},{"code":"wrp","name":"Waropen"},{"code":"wrr","name":"Wardaman"},{"code":"wrs","name":"Waris"},{"code":"wru","name":"Waru"},{"code":"wrv","name":"Waruna"},{"code":"wrw","name":"Gugu Warra"},{"code":"wrx","name":"Wae Rana"},{"code":"wry","name":"Merwari"},{"code":"wrz","name":"Waray (Australia)"},{"code":"wsa","name":"Warembori"},{"code":"wsg","name":"Adilabad Gondi"},{"code":"wsi","name":"Wusi"},{"code":"wsk","name":"Waskia"},{"code":"wsr","name":"Owenia"},{"code":"wss","name":"Wasa"},{"code":"wsu","name":"Wasu"},{"code":"wsv","name":"Wotapuri-Katarqalai"},{"code":"wtf","name":"Watiwa"},{"code":"wth","name":"Wathawurrung"},{"code":"wti","name":"Berta"},{"code":"wtk","name":"Watakataui"},{"code":"wtm","name":"Mewati"},{"code":"wtw","name":"Wotu"},{"code":"wua","name":"Wikngenchera"},{"code":"wub","name":"Wunambal"},{"code":"wud","name":"Wudu"},{"code":"wuh","name":"Wutunhua"},{"code":"wul","name":"Silimo"},{"code":"wum","name":"Wumbvu"},{"code":"wun","name":"Bungu"},{"code":"wur","name":"Wurrugu"},{"code":"wut","name":"Wutung"},{"code":"wuu","name":"Wu Chinese"},{"code":"wuv","name":"Wuvulu-Aua"},{"code":"wux","name":"Wulna"},{"code":"wuy","name":"Wauyai"},{"code":"wwa","name":"Waama"},{"code":"wwb","name":"Wakabunga"},{"code":"wwo","name":"Dorig"},{"code":"wwr","name":"Warrwa"},{"code":"www","name":"Wawa"},{"code":"wxa","name":"Waxianghua"},{"code":"wxw","name":"Wardandi"},{"code":"wya","name":"Wyandot"},{"code":"wyb","name":"Wangaaybuwan-Ngiyambaa"},{"code":"wyi","name":"Woiwurrung"},{"code":"wym","name":"Wymysorys"},{"code":"wyr","name":"Wayoró"},{"code":"wyy","name":"Western Fijian"},{"code":"xaa","name":"Andalusian Arabic"},{"code":"xab","name":"Sambe"},{"code":"xac","name":"Kachari"},{"code":"xad","name":"Adai"},{"code":"xae","name":"Aequian"},{"code":"xag","name":"Aghwan"},{"code":"xai","name":"Kaimbé"},{"code":"xaj","name":"Ararandewára"},{"code":"xak","name":"Máku"},{"code":"xal","name":"Kalmyk"},{"code":"xam","name":"ǀXam"},{"code":"xan","name":"Xamtanga"},{"code":"xao","name":"Khao"},{"code":"xap","name":"Apalachee"},{"code":"xaq","name":"Aquitanian"},{"code":"xar","name":"Karami"},{"code":"xas","name":"Kamas"},{"code":"xat","name":"Katawixi"},{"code":"xau","name":"Kauwera"},{"code":"xav","name":"Xavánte"},{"code":"xaw","name":"Kawaiisu"},{"code":"xay","name":"Kayan Mahakam"},{"code":"xbb","name":"Lower Burdekin"},{"code":"xbc","name":"Bactrian"},{"code":"xbd","name":"Bindal"},{"code":"xbe","name":"Bigambal"},{"code":"xbg","name":"Bunganditj"},{"code":"xbi","name":"Kombio"},{"code":"xbj","name":"Birrpayi"},{"code":"xbm","name":"Middle Breton"},{"code":"xbn","name":"Kenaboi"},{"code":"xbo","name":"Bolgarian"},{"code":"xbp","name":"Bibbulman"},{"code":"xbr","name":"Kambera"},{"code":"xbw","name":"Kambiwá"},{"code":"xby","name":"Batjala"},{"code":"xcb","name":"Cumbric"},{"code":"xcc","name":"Camunic"},{"code":"xce","name":"Celtiberian"},{"code":"xcg","name":"Cisalpine Gaulish"},{"code":"xch","name":"Chemakum"},{"code":"xcl","name":"Classical Armenian"},{"code":"xcm","name":"Comecrudo"},{"code":"xcn","name":"Cotoname"},{"code":"xco","name":"Chorasmian"},{"code":"xcr","name":"Carian"},{"code":"xct","name":"Classical Tibetan"},{"code":"xcu","name":"Curonian"},{"code":"xcv","name":"Chuvantsy"},{"code":"xcw","name":"Coahuilteco"},{"code":"xcy","name":"Cayuse"},{"code":"xda","name":"Darkinyung"},{"code":"xdc","name":"Dacian"},{"code":"xdk","name":"Dharuk"},{"code":"xdm","name":"Edomite"},{"code":"xdo","name":"Kwandu"},{"code":"xdy","name":"Malayic Dayak"},{"code":"xeb","name":"Eblan"},{"code":"xed","name":"Hdi"},{"code":"xeg","name":"ǁXegwi"},{"code":"xel","name":"Kelo"},{"code":"xem","name":"Kembayan"},{"code":"xep","name":"Epi-Olmec"},{"code":"xer","name":"Xerénte"},{"code":"xes","name":"Kesawai"},{"code":"xet","name":"Xetá"},{"code":"xeu","name":"Keoru-Ahia"},{"code":"xfa","name":"Faliscan"},{"code":"xga","name":"Galatian"},{"code":"xgb","name":"Gbin"},{"code":"xgd","name":"Gudang"},{"code":"xgf","name":"Gabrielino-Fernandeño"},{"code":"xgg","name":"Goreng"},{"code":"xgi","name":"Garingbal"},{"code":"xgl","name":"Galindan"},{"code":"xgm","name":"Dharumbal"},{"code":"xgr","name":"Garza"},{"code":"xgu","name":"Unggumi"},{"code":"xgw","name":"Guwa"},{"code":"xha","name":"Harami"},{"code":"xhc","name":"Hunnic"},{"code":"xhd","name":"Hadrami"},{"code":"xhe","name":"Khetrani"},{"code":"xho","name":"Xhosa"},{"code":"xhr","name":"Hernican"},{"code":"xht","name":"Hattic"},{"code":"xhu","name":"Hurrian"},{"code":"xhv","name":"Khua"},{"code":"xib","name":"Iberian"},{"code":"xii","name":"Xiri"},{"code":"xil","name":"Illyrian"},{"code":"xin","name":"Xinca"},{"code":"xir","name":"Xiriâna"},{"code":"xis","name":"Kisan"},{"code":"xiv","name":"Indus Valley Language"},{"code":"xiy","name":"Xipaya"},{"code":"xjb","name":"Minjungbal"},{"code":"xjt","name":"Jaitmatang"},{"code":"xka","name":"Kalkoti"},{"code":"xkb","name":"Northern Nago"},{"code":"xkc","name":"Kho'ini"},{"code":"xkd","name":"Mendalam Kayan"},{"code":"xke","name":"Kereho"},{"code":"xkf","name":"Khengkha"},{"code":"xkg","name":"Kagoro"},{"code":"xki","name":"Kenyan Sign Language"},{"code":"xkj","name":"Kajali"},{"code":"xkk","name":"Kaco'"},{"code":"xkl","name":"Mainstream Kenyah"},{"code":"xkn","name":"Kayan River Kayan"},{"code":"xko","name":"Kiorr"},{"code":"xkp","name":"Kabatei"},{"code":"xkq","name":"Koroni"},{"code":"xkr","name":"Xakriabá"},{"code":"xks","name":"Kumbewaha"},{"code":"xkt","name":"Kantosi"},{"code":"xku","name":"Kaamba"},{"code":"xkv","name":"Kgalagadi"},{"code":"xkw","name":"Kembra"},{"code":"xkx","name":"Karore"},{"code":"xky","name":"Uma' Lasan"},{"code":"xkz","name":"Kurtokha"},{"code":"xla","name":"Kamula"},{"code":"xlb","name":"Loup B"},{"code":"xlc","name":"Lycian"},{"code":"xld","name":"Lydian"},{"code":"xle","name":"Lemnian"},{"code":"xlg","name":"Ligurian (Ancient)"},{"code":"xli","name":"Liburnian"},{"code":"xln","name":"Alanic"},{"code":"xlo","name":"Loup A"},{"code":"xlp","name":"Lepontic"},{"code":"xls","name":"Lusitanian"},{"code":"xlu","name":"Cuneiform Luwian"},{"code":"xly","name":"Elymian"},{"code":"xma","name":"Mushungulu"},{"code":"xmb","name":"Mbonga"},{"code":"xmc","name":"Makhuwa-Marrevone"},{"code":"xmd","name":"Mbudum"},{"code":"xme","name":"Median"},{"code":"xmf","name":"Mingrelian"},{"code":"xmg","name":"Mengaka"},{"code":"xmh","name":"Kugu-Muminh"},{"code":"xmj","name":"Majera"},{"code":"xmk","name":"Ancient Macedonian"},{"code":"xml","name":"Malaysian Sign Language"},{"code":"xmm","name":"Manado Malay"},{"code":"xmn","name":"Manichaean Middle Persian"},{"code":"xmo","name":"Morerebi"},{"code":"xmp","name":"Kuku-Mu'inh"},{"code":"xmq","name":"Kuku-Mangk"},{"code":"xmr","name":"Meroitic"},{"code":"xms","name":"Moroccan Sign Language"},{"code":"xmt","name":"Matbat"},{"code":"xmu","name":"Kamu"},{"code":"xmv","name":"Antankarana Malagasy"},{"code":"xmw","name":"Tsimihety Malagasy"},{"code":"xmx","name":"Maden"},{"code":"xmy","name":"Mayaguduna"},{"code":"xmz","name":"Mori Bawah"},{"code":"xna","name":"Ancient North Arabian"},{"code":"xnb","name":"Kanakanabu"},{"code":"xng","name":"Middle Mongolian"},{"code":"xnh","name":"Kuanhua"},{"code":"xni","name":"Ngarigu"},{"code":"xnj","name":"Ngoni (Tanzania)"},{"code":"xnk","name":"Nganakarti"},{"code":"xnm","name":"Ngumbarl"},{"code":"xnn","name":"Northern Kankanay"},{"code":"xno","name":"Anglo-Norman"},{"code":"xnq","name":"Ngoni (Mozambique)"},{"code":"xnr","name":"Kangri"},{"code":"xns","name":"Kanashi"},{"code":"xnt","name":"Narragansett"},{"code":"xnu","name":"Nukunul"},{"code":"xny","name":"Nyiyaparli"},{"code":"xnz","name":"Kenzi"},{"code":"xoc","name":"O'chi'chi'"},{"code":"xod","name":"Kokoda"},{"code":"xog","name":"Soga"},{"code":"xoi","name":"Kominimung"},{"code":"xok","name":"Xokleng"},{"code":"xom","name":"Komo (Sudan)"},{"code":"xon","name":"Konkomba"},{"code":"xoo","name":"Xukurú"},{"code":"xop","name":"Kopar"},{"code":"xor","name":"Korubo"},{"code":"xow","name":"Kowaki"},{"code":"xpa","name":"Pirriya"},{"code":"xpb","name":"Northeastern Tasmanian"},{"code":"xpc","name":"Pecheneg"},{"code":"xpd","name":"Oyster Bay Tasmanian"},{"code":"xpe","name":"Liberia Kpelle"},{"code":"xpf","name":"Nuenonne"},{"code":"xpg","name":"Phrygian"},{"code":"xph","name":"North Midlands Tasmanian"},{"code":"xpi","name":"Pictish"},{"code":"xpj","name":"Mpalitjanh"},{"code":"xpk","name":"Kulina Pano"},{"code":"xpl","name":"Port Sorell Tasmanian"},{"code":"xpm","name":"Pumpokol"},{"code":"xpn","name":"Kapinawá"},{"code":"xpo","name":"Pochutec"},{"code":"xpp","name":"Puyo-Paekche"},{"code":"xpq","name":"Mohegan-Pequot"},{"code":"xpr","name":"Parthian"},{"code":"xps","name":"Pisidian"},{"code":"xpt","name":"Punthamara"},{"code":"xpu","name":"Punic"},{"code":"xpv","name":"Northern Tasmanian"},{"code":"xpw","name":"Northwestern Tasmanian"},{"code":"xpx","name":"Southwestern Tasmanian"},{"code":"xpy","name":"Puyo"},{"code":"xpz","name":"Bruny Island Tasmanian"},{"code":"xqa","name":"Karakhanid"},{"code":"xqt","name":"Qatabanian"},{"code":"xra","name":"Krahô"},{"code":"xrb","name":"Eastern Karaboro"},{"code":"xrd","name":"Gundungurra"},{"code":"xre","name":"Kreye"},{"code":"xrg","name":"Minang"},{"code":"xri","name":"Krikati-Timbira"},{"code":"xrm","name":"Armazic"},{"code":"xrn","name":"Arin"},{"code":"xrr","name":"Raetic"},{"code":"xrt","name":"Aranama-Tamique"},{"code":"xru","name":"Marriammu"},{"code":"xrw","name":"Karawa"},{"code":"xsa","name":"Sabaean"},{"code":"xsb","name":"Sambal"},{"code":"xsc","name":"Scythian"},{"code":"xsd","name":"Sidetic"},{"code":"xse","name":"Sempan"},{"code":"xsh","name":"Shamang"},{"code":"xsi","name":"Sio"},{"code":"xsj","name":"Subi"},{"code":"xsl","name":"South Slavey"},{"code":"xsm","name":"Kasem"},{"code":"xsn","name":"Sanga (Nigeria)"},{"code":"xso","name":"Solano"},{"code":"xsp","name":"Silopi"},{"code":"xsq","name":"Makhuwa-Saka"},{"code":"xsr","name":"Sherpa"},{"code":"xss","name":"Assan"},{"code":"xsu","name":"Sanumá"},{"code":"xsv","name":"Sudovian"},{"code":"xsy","name":"Saisiyat"},{"code":"xta","name":"Alcozauca Mixtec"},{"code":"xtb","name":"Chazumba Mixtec"},{"code":"xtc","name":"Katcha-Kadugli-Miri"},{"code":"xtd","name":"Diuxi-Tilantongo Mixtec"},{"code":"xte","name":"Ketengban"},{"code":"xtg","name":"Transalpine Gaulish"},{"code":"xth","name":"Yitha Yitha"},{"code":"xti","name":"Sinicahua Mixtec"},{"code":"xtj","name":"San Juan Teita Mixtec"},{"code":"xtl","name":"Tijaltepec Mixtec"},{"code":"xtm","name":"Magdalena Peñasco Mixtec"},{"code":"xtn","name":"Northern Tlaxiaco Mixtec"},{"code":"xto","name":"Tokharian A"},{"code":"xtp","name":"San Miguel Piedras Mixtec"},{"code":"xtq","name":"Tumshuqese"},{"code":"xtr","name":"Early Tripuri"},{"code":"xts","name":"Sindihui Mixtec"},{"code":"xtt","name":"Tacahua Mixtec"},{"code":"xtu","name":"Cuyamecalco Mixtec"},{"code":"xtv","name":"Thawa"},{"code":"xtw","name":"Tawandê"},{"code":"xty","name":"Yoloxochitl Mixtec"},{"code":"xua","name":"Alu Kurumba"},{"code":"xub","name":"Betta Kurumba"},{"code":"xud","name":"Umiida"},{"code":"xug","name":"Kunigami"},{"code":"xuj","name":"Jennu Kurumba"},{"code":"xul","name":"Ngunawal"},{"code":"xum","name":"Umbrian"},{"code":"xun","name":"Unggaranggu"},{"code":"xuo","name":"Kuo"},{"code":"xup","name":"Upper Umpqua"},{"code":"xur","name":"Urartian"},{"code":"xut","name":"Kuthant"},{"code":"xuu","name":"Khwedam"},{"code":"xve","name":"Venetic"},{"code":"xvi","name":"Kamviri"},{"code":"xvn","name":"Vandalic"},{"code":"xvo","name":"Volscian"},{"code":"xvs","name":"Vestinian"},{"code":"xwa","name":"Kwaza"},{"code":"xwc","name":"Woccon"},{"code":"xwd","name":"Wadi Wadi"},{"code":"xwe","name":"Xwela Gbe"},{"code":"xwg","name":"Kwegu"},{"code":"xwj","name":"Wajuk"},{"code":"xwk","name":"Wangkumara"},{"code":"xwl","name":"Western Xwla Gbe"},{"code":"xwo","name":"Written Oirat"},{"code":"xwr","name":"Kwerba Mamberamo"},{"code":"xwt","name":"Wotjobaluk"},{"code":"xww","name":"Wemba Wemba"},{"code":"xxb","name":"Boro (Ghana)"},{"code":"xxk","name":"Ke'o"},{"code":"xxm","name":"Minkin"},{"code":"xxr","name":"Koropó"},{"code":"xxt","name":"Tambora"},{"code":"xya","name":"Yaygir"},{"code":"xyb","name":"Yandjibara"},{"code":"xyj","name":"Mayi-Yapi"},{"code":"xyk","name":"Mayi-Kulan"},{"code":"xyl","name":"Yalakalore"},{"code":"xyt","name":"Mayi-Thakurti"},{"code":"xyy","name":"Yorta Yorta"},{"code":"xzh","name":"Zhang-Zhung"},{"code":"xzm","name":"Zemgalian"},{"code":"xzp","name":"Ancient Zapotec"},{"code":"yaa","name":"Yaminahua"},{"code":"yab","name":"Yuhup"},{"code":"yac","name":"Pass Valley Yali"},{"code":"yad","name":"Yagua"},{"code":"yae","name":"Pumé"},{"code":"yaf","name":"Yaka (Democratic Republic of Congo)"},{"code":"yag","name":"Yámana"},{"code":"yah","name":"Yazgulyam"},{"code":"yai","name":"Yagnobi"},{"code":"yaj","name":"Banda-Yangere"},{"code":"yak","name":"Yakama"},{"code":"yal","name":"Yalunka"},{"code":"yam","name":"Yamba"},{"code":"yan","name":"Mayangna"},{"code":"yao","name":"Yao"},{"code":"yap","name":"Yapese"},{"code":"yaq","name":"Yaqui"},{"code":"yar","name":"Yabarana"},{"code":"yas","name":"Nugunu (Cameroon)"},{"code":"yat","name":"Yambeta"},{"code":"yau","name":"Yuwana"},{"code":"yav","name":"Yangben"},{"code":"yaw","name":"Yawalapití"},{"code":"yax","name":"Yauma"},{"code":"yay","name":"Agwagwune"},{"code":"yaz","name":"Lokaa"},{"code":"yba","name":"Yala"},{"code":"ybb","name":"Yemba"},{"code":"ybe","name":"West Yugur"},{"code":"ybh","name":"Yakha"},{"code":"ybi","name":"Yamphu"},{"code":"ybj","name":"Hasha"},{"code":"ybk","name":"Bokha"},{"code":"ybl","name":"Yukuben"},{"code":"ybm","name":"Yaben"},{"code":"ybn","name":"Yabaâna"},{"code":"ybo","name":"Yabong"},{"code":"ybx","name":"Yawiyo"},{"code":"yby","name":"Yaweyuha"},{"code":"ych","name":"Chesu"},{"code":"ycl","name":"Lolopo"},{"code":"ycn","name":"Yucuna"},{"code":"ycp","name":"Chepya"},{"code":"yda","name":"Yanda"},{"code":"ydd","name":"Eastern Yiddish"},{"code":"yde","name":"Yangum Dey"},{"code":"ydg","name":"Yidgha"},{"code":"ydk","name":"Yoidik"},{"code":"yea","name":"Ravula"},{"code":"yec","name":"Yeniche"},{"code":"yee","name":"Yimas"},{"code":"yei","name":"Yeni"},{"code":"yej","name":"Yevanic"},{"code":"yel","name":"Yela"},{"code":"yer","name":"Tarok"},{"code":"yes","name":"Nyankpa"},{"code":"yet","name":"Yetfa"},{"code":"yeu","name":"Yerukula"},{"code":"yev","name":"Yapunda"},{"code":"yey","name":"Yeyi"},{"code":"yga","name":"Malyangapa"},{"code":"ygi","name":"Yiningayi"},{"code":"ygl","name":"Yangum Gel"},{"code":"ygm","name":"Yagomi"},{"code":"ygp","name":"Gepo"},{"code":"ygr","name":"Yagaria"},{"code":"ygs","name":"Yolŋu Sign Language"},{"code":"ygu","name":"Yugul"},{"code":"ygw","name":"Yagwoia"},{"code":"yha","name":"Baha Buyang"},{"code":"yhd","name":"Judeo-Iraqi Arabic"},{"code":"yhl","name":"Hlepho Phowa"},{"code":"yhs","name":"Yan-nhaŋu Sign Language"},{"code":"yia","name":"Yinggarda"},{"code":"yid","name":"Yiddish"},{"code":"yif","name":"Ache"},{"code":"yig","name":"Wusa Nasu"},{"code":"yih","name":"Western Yiddish"},{"code":"yii","name":"Yidiny"},{"code":"yij","name":"Yindjibarndi"},{"code":"yik","name":"Dongshanba Lalo"},{"code":"yil","name":"Yindjilandji"},{"code":"yim","name":"Yimchungru Naga"},{"code":"yin","name":"Riang Lai"},{"code":"yip","name":"Pholo"},{"code":"yiq","name":"Miqie"},{"code":"yir","name":"North Awyu"},{"code":"yis","name":"Yis"},{"code":"yit","name":"Eastern Lalu"},{"code":"yiu","name":"Awu"},{"code":"yiv","name":"Northern Nisu"},{"code":"yix","name":"Axi Yi"},{"code":"yiz","name":"Azhe"},{"code":"yka","name":"Yakan"},{"code":"ykg","name":"Northern Yukaghir"},{"code":"yki","name":"Yoke"},{"code":"ykk","name":"Yakaikeke"},{"code":"ykl","name":"Khlula"},{"code":"ykm","name":"Kap"},{"code":"ykn","name":"Kua-nsi"},{"code":"yko","name":"Yasa"},{"code":"ykr","name":"Yekora"},{"code":"ykt","name":"Kathu"},{"code":"yku","name":"Kuamasi"},{"code":"yky","name":"Yakoma"},{"code":"yla","name":"Yaul"},{"code":"ylb","name":"Yaleba"},{"code":"yle","name":"Yele"},{"code":"ylg","name":"Yelogu"},{"code":"yli","name":"Angguruk Yali"},{"code":"yll","name":"Yil"},{"code":"ylm","name":"Limi"},{"code":"yln","name":"Langnian Buyang"},{"code":"ylo","name":"Naluo Yi"},{"code":"ylr","name":"Yalarnnga"},{"code":"ylu","name":"Aribwaung"},{"code":"yly","name":"Nyâlayu"},{"code":"ymb","name":"Yambes"},{"code":"ymc","name":"Southern Muji"},{"code":"ymd","name":"Muda"},{"code":"yme","name":"Yameo"},{"code":"ymg","name":"Yamongeri"},{"code":"ymh","name":"Mili"},{"code":"ymi","name":"Moji"},{"code":"ymk","name":"Makwe"},{"code":"yml","name":"Iamalele"},{"code":"ymm","name":"Maay"},{"code":"ymn","name":"Sunum"},{"code":"ymo","name":"Yangum Mon"},{"code":"ymp","name":"Yamap"},{"code":"ymq","name":"Qila Muji"},{"code":"ymr","name":"Malasar"},{"code":"yms","name":"Mysian"},{"code":"ymx","name":"Northern Muji"},{"code":"ymz","name":"Muzi"},{"code":"yna","name":"Aluo"},{"code":"ynd","name":"Yandruwandha"},{"code":"yne","name":"Lang'e"},{"code":"yng","name":"Yango"},{"code":"ynk","name":"Naukan Yupik"},{"code":"ynl","name":"Yangulam"},{"code":"ynn","name":"Yana"},{"code":"yno","name":"Yong"},{"code":"ynq","name":"Yendang"},{"code":"yns","name":"Yansi"},{"code":"ynu","name":"Yahuna"},{"code":"yob","name":"Yoba"},{"code":"yog","name":"Yogad"},{"code":"yoi","name":"Yonaguni"},{"code":"yok","name":"Yokuts"},{"code":"yol","name":"Yola"},{"code":"yom","name":"Yombe"},{"code":"yon","name":"Yongkom"},{"code":"yor","name":"Yoruba"},{"code":"yot","name":"Yotti"},{"code":"yox","name":"Yoron"},{"code":"yoy","name":"Yoy"},{"code":"ypa","name":"Phala"},{"code":"ypb","name":"Labo Phowa"},{"code":"ypg","name":"Phola"},{"code":"yph","name":"Phupha"},{"code":"ypm","name":"Phuma"},{"code":"ypn","name":"Ani Phowa"},{"code":"ypo","name":"Alo Phola"},{"code":"ypp","name":"Phupa"},{"code":"ypz","name":"Phuza"},{"code":"yra","name":"Yerakai"},{"code":"yrb","name":"Yareba"},{"code":"yre","name":"Yaouré"},{"code":"yrk","name":"Nenets"},{"code":"yrl","name":"Nhengatu"},{"code":"yrm","name":"Yirrk-Mel"},{"code":"yrn","name":"Yerong"},{"code":"yro","name":"Yaroamë"},{"code":"yrs","name":"Yarsun"},{"code":"yrw","name":"Yarawata"},{"code":"yry","name":"Yarluyandi"},{"code":"ysc","name":"Yassic"},{"code":"ysd","name":"Samatao"},{"code":"ysg","name":"Sonaga"},{"code":"ysl","name":"Yugoslavian Sign Language"},{"code":"ysm","name":"Myanmar Sign Language"},{"code":"ysn","name":"Sani"},{"code":"yso","name":"Nisi (China)"},{"code":"ysp","name":"Southern Lolopo"},{"code":"ysr","name":"Sirenik Yupik"},{"code":"yss","name":"Yessan-Mayo"},{"code":"ysy","name":"Sanie"},{"code":"yta","name":"Talu"},{"code":"ytl","name":"Tanglang"},{"code":"ytp","name":"Thopho"},{"code":"ytw","name":"Yout Wam"},{"code":"yty","name":"Yatay"},{"code":"yua","name":"Yucatec Maya"},{"code":"yub","name":"Yugambal"},{"code":"yuc","name":"Yuchi"},{"code":"yud","name":"Judeo-Tripolitanian Arabic"},{"code":"yue","name":"Yue Chinese"},{"code":"yuf","name":"Havasupai-Walapai-Yavapai"},{"code":"yug","name":"Yug"},{"code":"yui","name":"Yurutí"},{"code":"yuj","name":"Karkar-Yuri"},{"code":"yuk","name":"Yuki"},{"code":"yul","name":"Yulu"},{"code":"yum","name":"Quechan"},{"code":"yun","name":"Bena (Nigeria)"},{"code":"yup","name":"Yukpa"},{"code":"yuq","name":"Yuqui"},{"code":"yur","name":"Yurok"},{"code":"yut","name":"Yopno"},{"code":"yuw","name":"Yau (Morobe Province)"},{"code":"yux","name":"Southern Yukaghir"},{"code":"yuy","name":"East Yugur"},{"code":"yuz","name":"Yuracare"},{"code":"yva","name":"Yawa"},{"code":"yvt","name":"Yavitero"},{"code":"ywa","name":"Kalou"},{"code":"ywg","name":"Yinhawangka"},{"code":"ywl","name":"Western Lalu"},{"code":"ywn","name":"Yawanawa"},{"code":"ywq","name":"Wuding-Luquan Yi"},{"code":"ywr","name":"Yawuru"},{"code":"ywt","name":"Central Lalo"},{"code":"ywu","name":"Wumeng Nasu"},{"code":"yww","name":"Yawarawarga"},{"code":"yxa","name":"Mayawali"},{"code":"yxg","name":"Yagara"},{"code":"yxl","name":"Yardliyawarra"},{"code":"yxm","name":"Yinwum"},{"code":"yxu","name":"Yuyu"},{"code":"yxy","name":"Yabula Yabula"},{"code":"yyr","name":"Yir Yoront"},{"code":"yyu","name":"Yau (Sandaun Province)"},{"code":"yyz","name":"Ayizi"},{"code":"yzg","name":"E'ma Buyang"},{"code":"yzk","name":"Zokhuo"},{"code":"zaa","name":"Sierra de Juárez Zapotec"},{"code":"zab","name":"San Juan Guelavía Zapotec"},{"code":"zac","name":"Ocotlán Zapotec"},{"code":"zad","name":"Cajonos Zapotec"},{"code":"zae","name":"Yareni Zapotec"},{"code":"zaf","name":"Ayoquesco Zapotec"},{"code":"zag","name":"Zaghawa"},{"code":"zah","name":"Zangwal"},{"code":"zai","name":"Isthmus Zapotec"},{"code":"zaj","name":"Zaramo"},{"code":"zak","name":"Zanaki"},{"code":"zal","name":"Zauzou"},{"code":"zam","name":"Miahuatlán Zapotec"},{"code":"zao","name":"Ozolotepec Zapotec"},{"code":"zap","name":"Zapotec"},{"code":"zaq","name":"Aloápam Zapotec"},{"code":"zar","name":"Rincón Zapotec"},{"code":"zas","name":"Santo Domingo Albarradas Zapotec"},{"code":"zat","name":"Tabaa Zapotec"},{"code":"zau","name":"Zangskari"},{"code":"zav","name":"Yatzachi Zapotec"},{"code":"zaw","name":"Mitla Zapotec"},{"code":"zax","name":"Xadani Zapotec"},{"code":"zay","name":"Zaysete"},{"code":"zaz","name":"Zari"},{"code":"zba","name":"Balaibalan"},{"code":"zbc","name":"Central Berawan"},{"code":"zbe","name":"East Berawan"},{"code":"zbl","name":"Bliss"},{"code":"zbt","name":"Batui"},{"code":"zbu","name":"Bu (Bauchi State)"},{"code":"zbw","name":"West Berawan"},{"code":"zca","name":"Coatecas Altas Zapotec"},{"code":"zch","name":"Central Hongshuihe Zhuang"},{"code":"zdj","name":"Ngazidja Comorian"},{"code":"zea","name":"Zeeuws"},{"code":"zeg","name":"Zenag"},{"code":"zeh","name":"Eastern Hongshuihe Zhuang"},{"code":"zen","name":"Zenaga"},{"code":"zga","name":"Kinga"},{"code":"zgb","name":"Guibei Zhuang"},{"code":"zgh","name":"Standard Moroccan Tamazight"},{"code":"zgm","name":"Minz Zhuang"},{"code":"zgn","name":"Guibian Zhuang"},{"code":"zgr","name":"Magori"},{"code":"zha","name":"Chuang"},{"code":"zhb","name":"Zhaba"},{"code":"zhd","name":"Dai Zhuang"},{"code":"zhi","name":"Zhire"},{"code":"zhn","name":"Nong Zhuang"},{"code":"zho","name":"Chinese"},{"code":"zhw","name":"Zhoa"},{"code":"zia","name":"Zia"},{"code":"zib","name":"Zimbabwe Sign Language"},{"code":"zik","name":"Zimakani"},{"code":"zil","name":"Zialo"},{"code":"zim","name":"Mesme"},{"code":"zin","name":"Zinza"},{"code":"ziw","name":"Zigula"},{"code":"ziz","name":"Zizilivakan"},{"code":"zka","name":"Kaimbulawa"},{"code":"zkb","name":"Koibal"},{"code":"zkd","name":"Kadu"},{"code":"zkg","name":"Koguryo"},{"code":"zkh","name":"Khorezmian"},{"code":"zkk","name":"Karankawa"},{"code":"zkn","name":"Kanan"},{"code":"zko","name":"Kott"},{"code":"zkp","name":"São Paulo Kaingáng"},{"code":"zkr","name":"Zakhring"},{"code":"zkt","name":"Kitan"},{"code":"zku","name":"Kaurna"},{"code":"zkv","name":"Krevinian"},{"code":"zkz","name":"Khazar"},{"code":"zla","name":"Zula"},{"code":"zlj","name":"Liujiang Zhuang"},{"code":"zlm","name":"Malay (individual language)"},{"code":"zln","name":"Lianshan Zhuang"},{"code":"zlq","name":"Liuqian Zhuang"},{"code":"zma","name":"Manda (Australia)"},{"code":"zmb","name":"Zimba"},{"code":"zmc","name":"Margany"},{"code":"zmd","name":"Maridan"},{"code":"zme","name":"Mangerr"},{"code":"zmf","name":"Mfinu"},{"code":"zmg","name":"Marti Ke"},{"code":"zmh","name":"Makolkol"},{"code":"zmi","name":"Negeri Sembilan Malay"},{"code":"zmj","name":"Maridjabin"},{"code":"zmk","name":"Mandandanyi"},{"code":"zml","name":"Matngala"},{"code":"zmm","name":"Marimanindji"},{"code":"zmn","name":"Mbangwe"},{"code":"zmo","name":"Molo"},{"code":"zmp","name":"Mpuono"},{"code":"zmq","name":"Mituku"},{"code":"zmr","name":"Maranunggu"},{"code":"zms","name":"Mbesa"},{"code":"zmt","name":"Maringarr"},{"code":"zmu","name":"Muruwari"},{"code":"zmv","name":"Mbariman-Gudhinma"},{"code":"zmw","name":"Mbo (Democratic Republic of Congo)"},{"code":"zmx","name":"Bomitaba"},{"code":"zmy","name":"Mariyedi"},{"code":"zmz","name":"Mbandja"},{"code":"zna","name":"Zan Gula"},{"code":"zne","name":"Zande (individual language)"},{"code":"zng","name":"Mang"},{"code":"znk","name":"Manangkari"},{"code":"zns","name":"Mangas"},{"code":"zoc","name":"Copainalá Zoque"},{"code":"zoh","name":"Chimalapa Zoque"},{"code":"zom","name":"Zou"},{"code":"zoo","name":"Asunción Mixtepec Zapotec"},{"code":"zoq","name":"Tabasco Zoque"},{"code":"zor","name":"Rayón Zoque"},{"code":"zos","name":"Francisco León Zoque"},{"code":"zpa","name":"Lachiguiri Zapotec"},{"code":"zpb","name":"Yautepec Zapotec"},{"code":"zpc","name":"Choapan Zapotec"},{"code":"zpd","name":"Southeastern Ixtlán Zapotec"},{"code":"zpe","name":"Petapa Zapotec"},{"code":"zpf","name":"San Pedro Quiatoni Zapotec"},{"code":"zpg","name":"Guevea De Humboldt Zapotec"},{"code":"zph","name":"Totomachapan Zapotec"},{"code":"zpi","name":"Santa María Quiegolani Zapotec"},{"code":"zpj","name":"Quiavicuzas Zapotec"},{"code":"zpk","name":"Tlacolulita Zapotec"},{"code":"zpl","name":"Lachixío Zapotec"},{"code":"zpm","name":"Mixtepec Zapotec"},{"code":"zpn","name":"Santa Inés Yatzechi Zapotec"},{"code":"zpo","name":"Amatlán Zapotec"},{"code":"zpp","name":"El Alto Zapotec"},{"code":"zpq","name":"Zoogocho Zapotec"},{"code":"zpr","name":"Santiago Xanica Zapotec"},{"code":"zps","name":"Coatlán Zapotec"},{"code":"zpt","name":"San Vicente Coatlán Zapotec"},{"code":"zpu","name":"Yalálag Zapotec"},{"code":"zpv","name":"Chichicapan Zapotec"},{"code":"zpw","name":"Zaniza Zapotec"},{"code":"zpx","name":"San Baltazar Loxicha Zapotec"},{"code":"zpy","name":"Mazaltepec Zapotec"},{"code":"zpz","name":"Texmelucan Zapotec"},{"code":"zqe","name":"Qiubei Zhuang"},{"code":"zra","name":"Kara (Korea)"},{"code":"zrg","name":"Mirgan"},{"code":"zrn","name":"Zerenkel"},{"code":"zro","name":"Záparo"},{"code":"zrp","name":"Zarphatic"},{"code":"zrs","name":"Mairasi"},{"code":"zsa","name":"Sarasira"},{"code":"zsk","name":"Kaskean"},{"code":"zsl","name":"Zambian Sign Language"},{"code":"zsm","name":"Standard Malay"},{"code":"zsr","name":"Southern Rincon Zapotec"},{"code":"zsu","name":"Sukurum"},{"code":"zte","name":"Elotepec Zapotec"},{"code":"ztg","name":"Xanaguía Zapotec"},{"code":"ztl","name":"Lapaguía-Guivini Zapotec"},{"code":"ztm","name":"San Agustín Mixtepec Zapotec"},{"code":"ztn","name":"Santa Catarina Albarradas Zapotec"},{"code":"ztp","name":"Loxicha Zapotec"},{"code":"ztq","name":"Quioquitani-Quierí Zapotec"},{"code":"zts","name":"Tilquiapan Zapotec"},{"code":"ztt","name":"Tejalapan Zapotec"},{"code":"ztu","name":"Güilá Zapotec"},{"code":"ztx","name":"Zaachila Zapotec"},{"code":"zty","name":"Yatee Zapotec"},{"code":"zua","name":"Zeem"},{"code":"zuh","name":"Tokano"},{"code":"zul","name":"Zulu"},{"code":"zum","name":"Kumzari"},{"code":"zun","name":"Zuni"},{"code":"zuy","name":"Zumaya"},{"code":"zwa","name":"Zay"},{"code":"zxx","name":"No linguistic content"},{"code":"zyb","name":"Yongbei Zhuang"},{"code":"zyg","name":"Yang Zhuang"},{"code":"zyj","name":"Youjiang Zhuang"},{"code":"zyn","name":"Yongnan Zhuang"},{"code":"zyp","name":"Zyphe Chin"},{"code":"zza","name":"Dimili"},{"code":"zzj","name":"Zuojiang Zhuang"}] \ No newline at end of file diff --git a/tests/__data__/input/__data__/streams.json b/tests/__data__/input/__data__/streams.json new file mode 100644 index 00000000..ce52ae7c --- /dev/null +++ b/tests/__data__/input/__data__/streams.json @@ -0,0 +1,10 @@ +[ + { + "channel": "CNNInternational.us", + "feed": "SD", + "url": "https://live.relentlessinnovations.net:1936/imantv/imantv/playlist.m3u8", + "referrer": null, + "user_agent": null, + "quality": "480p" + } +] \ No newline at end of file diff --git a/tests/__data__/input/__data__/timezones.json b/tests/__data__/input/__data__/timezones.json new file mode 100644 index 00000000..0206e7e5 --- /dev/null +++ b/tests/__data__/input/__data__/timezones.json @@ -0,0 +1 @@ +[{"id":"Africa/Abidjan","utc_offset":"+00:00","countries":["CI","BF","GH","GM","GN","IS","ML","MR","SH","SL","SN","TG"]},{"id":"Africa/Accra","utc_offset":"+00:00","countries":["GH"]},{"id":"Africa/Addis_Ababa","utc_offset":"+03:00","countries":["ET"]},{"id":"Africa/Algiers","utc_offset":"+01:00","countries":["DZ"]},{"id":"Africa/Asmara","utc_offset":"+03:00","countries":["ER"]},{"id":"Africa/Bamako","utc_offset":"+00:00","countries":["ML"]},{"id":"Africa/Bangui","utc_offset":"+01:00","countries":["CF"]},{"id":"Africa/Banjul","utc_offset":"+00:00","countries":["GM"]},{"id":"Africa/Bissau","utc_offset":"+00:00","countries":["GW"]},{"id":"Africa/Blantyre","utc_offset":"+02:00","countries":["MW"]},{"id":"Africa/Brazzaville","utc_offset":"+01:00","countries":["CG"]},{"id":"Africa/Bujumbura","utc_offset":"+02:00","countries":["BI"]},{"id":"Africa/Cairo","utc_offset":"+02:00","countries":["EG"]},{"id":"Africa/Casablanca","utc_offset":"+00:00","countries":["MA"]},{"id":"Africa/Ceuta","utc_offset":"+01:00","countries":["ES"]},{"id":"Africa/Conakry","utc_offset":"+00:00","countries":["GN"]},{"id":"Africa/Dakar","utc_offset":"+00:00","countries":["SN"]},{"id":"Africa/Dar_es_Salaam","utc_offset":"+03:00","countries":["TZ"]},{"id":"Africa/Djibouti","utc_offset":"+03:00","countries":["DJ"]},{"id":"Africa/Douala","utc_offset":"+01:00","countries":["CM"]},{"id":"Africa/El_Aaiun","utc_offset":"+00:00","countries":["EH"]},{"id":"Africa/Freetown","utc_offset":"+00:00","countries":["SL"]},{"id":"Africa/Gaborone","utc_offset":"+02:00","countries":["BW"]},{"id":"Africa/Harare","utc_offset":"+02:00","countries":["ZW"]},{"id":"Africa/Johannesburg","utc_offset":"+02:00","countries":["ZA","LS","SZ"]},{"id":"Africa/Juba","utc_offset":"+02:00","countries":["SS"]},{"id":"Africa/Kampala","utc_offset":"+03:00","countries":["UG"]},{"id":"Africa/Khartoum","utc_offset":"+02:00","countries":["SD"]},{"id":"Africa/Kigali","utc_offset":"+02:00","countries":["RW"]},{"id":"Africa/Kinshasa","utc_offset":"+01:00","countries":["CD"]},{"id":"Africa/Lagos","utc_offset":"+01:00","countries":["NG","AO","BJ","CD","CF","CG","CM","GA","GQ","NE"]},{"id":"Africa/Libreville","utc_offset":"+01:00","countries":["GA"]},{"id":"Africa/Lome","utc_offset":"+00:00","countries":["TG"]},{"id":"Africa/Luanda","utc_offset":"+01:00","countries":["AO"]},{"id":"Africa/Lubumbashi","utc_offset":"+02:00","countries":["CD"]},{"id":"Africa/Lusaka","utc_offset":"+02:00","countries":["ZM"]},{"id":"Africa/Malabo","utc_offset":"+01:00","countries":["GQ"]},{"id":"Africa/Maputo","utc_offset":"+02:00","countries":["MZ","BI","BW","CD","MW","RW","ZM","ZW"]},{"id":"Africa/Maseru","utc_offset":"+02:00","countries":["LS"]},{"id":"Africa/Mbabane","utc_offset":"+02:00","countries":["SZ"]},{"id":"Africa/Mogadishu","utc_offset":"+03:00","countries":["SO"]},{"id":"Africa/Monrovia","utc_offset":"+00:00","countries":["LR"]},{"id":"Africa/Nairobi","utc_offset":"+03:00","countries":["KE","DJ","ER","ET","KM","MG","SO","TZ","UG","YT"]},{"id":"Africa/Ndjamena","utc_offset":"+01:00","countries":["TD"]},{"id":"Africa/Niamey","utc_offset":"+01:00","countries":["NE"]},{"id":"Africa/Nouakchott","utc_offset":"+00:00","countries":["MR"]},{"id":"Africa/Ouagadougou","utc_offset":"+00:00","countries":["BF"]},{"id":"Africa/Porto-Novo","utc_offset":"+01:00","countries":["BJ"]},{"id":"Africa/Sao_Tome","utc_offset":"+00:00","countries":["ST"]},{"id":"Africa/Tripoli","utc_offset":"+02:00","countries":["LY"]},{"id":"Africa/Tunis","utc_offset":"+01:00","countries":["TN"]},{"id":"Africa/Windhoek","utc_offset":"+01:00","countries":["NA"]},{"id":"America/Adak","utc_offset":"-10:00","countries":["US"]},{"id":"America/Anchorage","utc_offset":"-09:00","countries":["US"]},{"id":"America/Anguilla","utc_offset":"-04:00","countries":["AI"]},{"id":"America/Antigua","utc_offset":"-04:00","countries":["AG"]},{"id":"America/Araguaina","utc_offset":"-03:00","countries":["BR"]},{"id":"America/Argentina/Buenos_Aires","utc_offset":"-03:00","countries":["AR"]},{"id":"America/Argentina/Catamarca","utc_offset":"-03:00","countries":["AR"]},{"id":"America/Argentina/Cordoba","utc_offset":"-03:00","countries":["AR"]},{"id":"America/Argentina/Jujuy","utc_offset":"-03:00","countries":["AR"]},{"id":"America/Argentina/La_Rioja","utc_offset":"-03:00","countries":["AR"]},{"id":"America/Argentina/Mendoza","utc_offset":"-03:00","countries":["AR"]},{"id":"America/Argentina/Rio_Gallegos","utc_offset":"-03:00","countries":["AR"]},{"id":"America/Argentina/Salta","utc_offset":"-03:00","countries":["AR"]},{"id":"America/Argentina/San_Juan","utc_offset":"-03:00","countries":["AR"]},{"id":"America/Argentina/San_Luis","utc_offset":"-03:00","countries":["AR"]},{"id":"America/Argentina/Tucuman","utc_offset":"-03:00","countries":["AR"]},{"id":"America/Argentina/Ushuaia","utc_offset":"-03:00","countries":["AR"]},{"id":"America/Aruba","utc_offset":"-04:00","countries":["AW"]},{"id":"America/Asuncion","utc_offset":"-04:00","countries":["PY"]},{"id":"America/Atikokan","utc_offset":"-05:00","countries":["CA"]},{"id":"America/Bahia","utc_offset":"-03:00","countries":["BR"]},{"id":"America/Bahia_Banderas","utc_offset":"-06:00","countries":["MX"]},{"id":"America/Barbados","utc_offset":"-04:00","countries":["BB"]},{"id":"America/Belem","utc_offset":"-03:00","countries":["BR"]},{"id":"America/Belize","utc_offset":"-06:00","countries":["BZ"]},{"id":"America/Blanc-Sablon","utc_offset":"-04:00","countries":["CA"]},{"id":"America/Boa_Vista","utc_offset":"-04:00","countries":["BR"]},{"id":"America/Bogota","utc_offset":"-05:00","countries":["CO"]},{"id":"America/Boise","utc_offset":"-07:00","countries":["US"]},{"id":"America/Cambridge_Bay","utc_offset":"-07:00","countries":["CA"]},{"id":"America/Campo_Grande","utc_offset":"-04:00","countries":["BR"]},{"id":"America/Cancun","utc_offset":"-05:00","countries":["MX"]},{"id":"America/Caracas","utc_offset":"-04:00","countries":["VE"]},{"id":"America/Cayenne","utc_offset":"-03:00","countries":["GF"]},{"id":"America/Cayman","utc_offset":"-05:00","countries":["KY"]},{"id":"America/Chicago","utc_offset":"-06:00","countries":["US"]},{"id":"America/Chihuahua","utc_offset":"-07:00","countries":["MX"]},{"id":"America/Costa_Rica","utc_offset":"-06:00","countries":["CR"]},{"id":"America/Creston","utc_offset":"-07:00","countries":["CA"]},{"id":"America/Cuiaba","utc_offset":"-04:00","countries":["BR"]},{"id":"America/Curacao","utc_offset":"-04:00","countries":["CW"]},{"id":"America/Danmarkshavn","utc_offset":"+00:00","countries":["GL"]},{"id":"America/Dawson","utc_offset":"-07:00","countries":["CA"]},{"id":"America/Dawson_Creek","utc_offset":"-07:00","countries":["CA"]},{"id":"America/Denver","utc_offset":"-07:00","countries":["US"]},{"id":"America/Detroit","utc_offset":"-05:00","countries":["US"]},{"id":"America/Dominica","utc_offset":"-04:00","countries":["DM"]},{"id":"America/Edmonton","utc_offset":"-07:00","countries":["CA"]},{"id":"America/Eirunepe","utc_offset":"-05:00","countries":["BR"]},{"id":"America/El_Salvador","utc_offset":"-06:00","countries":["SV"]},{"id":"America/Fort_Nelson","utc_offset":"-07:00","countries":["CA"]},{"id":"America/Fortaleza","utc_offset":"-03:00","countries":["BR"]},{"id":"America/Glace_Bay","utc_offset":"-04:00","countries":["CA"]},{"id":"America/Goose_Bay","utc_offset":"-04:00","countries":["CA"]},{"id":"America/Grand_Turk","utc_offset":"-05:00","countries":["TC"]},{"id":"America/Grenada","utc_offset":"-04:00","countries":["GD"]},{"id":"America/Guadeloupe","utc_offset":"-04:00","countries":["GP"]},{"id":"America/Guatemala","utc_offset":"-06:00","countries":["GT"]},{"id":"America/Guayaquil","utc_offset":"-05:00","countries":["EC"]},{"id":"America/Guyana","utc_offset":"-04:00","countries":["GY"]},{"id":"America/Halifax","utc_offset":"-04:00","countries":["CA"]},{"id":"America/Havana","utc_offset":"-05:00","countries":["CU"]},{"id":"America/Hermosillo","utc_offset":"-07:00","countries":["MX"]},{"id":"America/Indiana/Indianapolis","utc_offset":"-05:00","countries":["US"]},{"id":"America/Indiana/Knox","utc_offset":"-06:00","countries":["US"]},{"id":"America/Indiana/Marengo","utc_offset":"-05:00","countries":["US"]},{"id":"America/Indiana/Petersburg","utc_offset":"-05:00","countries":["US"]},{"id":"America/Indiana/Tell_City","utc_offset":"-06:00","countries":["US"]},{"id":"America/Indiana/Vevay","utc_offset":"-05:00","countries":["US"]},{"id":"America/Indiana/Vincennes","utc_offset":"-05:00","countries":["US"]},{"id":"America/Indiana/Winamac","utc_offset":"-05:00","countries":["US"]},{"id":"America/Inuvik","utc_offset":"-07:00","countries":["CA"]},{"id":"America/Iqaluit","utc_offset":"-05:00","countries":["CA"]},{"id":"America/Jamaica","utc_offset":"-05:00","countries":["JM"]},{"id":"America/Juneau","utc_offset":"-09:00","countries":["US"]},{"id":"America/Kentucky/Louisville","utc_offset":"-05:00","countries":["US"]},{"id":"America/Kentucky/Monticello","utc_offset":"-05:00","countries":["US"]},{"id":"America/Kralendijk","utc_offset":"-04:00","countries":["BQ"]},{"id":"America/La_Paz","utc_offset":"-04:00","countries":["BO"]},{"id":"America/Lima","utc_offset":"-05:00","countries":["PE"]},{"id":"America/Los_Angeles","utc_offset":"-08:00","countries":["US"]},{"id":"America/Lower_Princes","utc_offset":"-04:00","countries":["SX"]},{"id":"America/Maceio","utc_offset":"-03:00","countries":["BR"]},{"id":"America/Managua","utc_offset":"-06:00","countries":["NI"]},{"id":"America/Manaus","utc_offset":"-04:00","countries":["BR"]},{"id":"America/Marigot","utc_offset":"-04:00","countries":["MF"]},{"id":"America/Martinique","utc_offset":"-04:00","countries":["MQ"]},{"id":"America/Matamoros","utc_offset":"-06:00","countries":["MX"]},{"id":"America/Mazatlan","utc_offset":"-07:00","countries":["MX"]},{"id":"America/Menominee","utc_offset":"-06:00","countries":["US"]},{"id":"America/Merida","utc_offset":"-06:00","countries":["MX"]},{"id":"America/Metlakatla","utc_offset":"-09:00","countries":["US"]},{"id":"America/Mexico_City","utc_offset":"-06:00","countries":["MX"]},{"id":"America/Miquelon","utc_offset":"-03:00","countries":["PM"]},{"id":"America/Moncton","utc_offset":"-04:00","countries":["CA"]},{"id":"America/Monterrey","utc_offset":"-06:00","countries":["MX"]},{"id":"America/Montevideo","utc_offset":"-03:00","countries":["UY"]},{"id":"America/Montserrat","utc_offset":"-04:00","countries":["MS"]},{"id":"America/Nassau","utc_offset":"-05:00","countries":["BS"]},{"id":"America/New_York","utc_offset":"-05:00","countries":["US"]},{"id":"America/Nipigon","utc_offset":"-05:00","countries":["CA"]},{"id":"America/Nome","utc_offset":"-09:00","countries":["US"]},{"id":"America/Noronha","utc_offset":"-02:00","countries":["BR"]},{"id":"America/North_Dakota/Beulah","utc_offset":"-06:00","countries":["US"]},{"id":"America/North_Dakota/Center","utc_offset":"-06:00","countries":["US"]},{"id":"America/North_Dakota/New_Salem","utc_offset":"-06:00","countries":["US"]},{"id":"America/Nuuk","utc_offset":"-02:00","countries":["GL"]},{"id":"America/Ojinaga","utc_offset":"-07:00","countries":["MX"]},{"id":"America/Panama","utc_offset":"-05:00","countries":["PA","CA","KY"]},{"id":"America/Paramaribo","utc_offset":"-03:00","countries":["SR"]},{"id":"America/Phoenix","utc_offset":"-07:00","countries":["US","CA"]},{"id":"America/Port-au-Prince","utc_offset":"-05:00","countries":["HT"]},{"id":"America/Port_of_Spain","utc_offset":"-04:00","countries":["TT"]},{"id":"America/Porto_Velho","utc_offset":"-04:00","countries":["BR"]},{"id":"America/Puerto_Rico","utc_offset":"-04:00","countries":["PR","AG","CA","AI","AW","BL","BQ","CW","DM","GD","GP","KN","LC","MF","MS","SX","TT","VC","VG","VI"]},{"id":"America/Punta_Arenas","utc_offset":"-03:00","countries":["CL"]},{"id":"America/Rankin_Inlet","utc_offset":"-06:00","countries":["CA"]},{"id":"America/Recife","utc_offset":"-03:00","countries":["BR"]},{"id":"America/Regina","utc_offset":"-06:00","countries":["CA"]},{"id":"America/Resolute","utc_offset":"-06:00","countries":["CA"]},{"id":"America/Rio_Branco","utc_offset":"-05:00","countries":["BR"]},{"id":"America/Santarem","utc_offset":"-03:00","countries":["BR"]},{"id":"America/Santiago","utc_offset":"-04:00","countries":["CL"]},{"id":"America/Santo_Domingo","utc_offset":"-04:00","countries":["DO"]},{"id":"America/Sao_Paulo","utc_offset":"-03:00","countries":["BR"]},{"id":"America/Scoresbysund","utc_offset":"-01:00","countries":["GL"]},{"id":"America/Sitka","utc_offset":"-09:00","countries":["US"]},{"id":"America/St_Barthelemy","utc_offset":"-04:00","countries":["BL"]},{"id":"America/St_Johns","utc_offset":"-03:30","countries":["CA"]},{"id":"America/St_Kitts","utc_offset":"-04:00","countries":["KN"]},{"id":"America/St_Lucia","utc_offset":"-04:00","countries":["LC"]},{"id":"America/St_Thomas","utc_offset":"-04:00","countries":["VI"]},{"id":"America/St_Vincent","utc_offset":"-04:00","countries":["VC"]},{"id":"America/Swift_Current","utc_offset":"-06:00","countries":["CA"]},{"id":"America/Tegucigalpa","utc_offset":"-06:00","countries":["HN"]},{"id":"America/Thule","utc_offset":"-04:00","countries":["GL"]},{"id":"America/Thunder_Bay","utc_offset":"-05:00","countries":["CA"]},{"id":"America/Tijuana","utc_offset":"-08:00","countries":["MX"]},{"id":"America/Toronto","utc_offset":"-05:00","countries":["CA","BS"]},{"id":"America/Tortola","utc_offset":"-04:00","countries":["VG"]},{"id":"America/Vancouver","utc_offset":"-08:00","countries":["CA"]},{"id":"America/Whitehorse","utc_offset":"-07:00","countries":["CA"]},{"id":"America/Winnipeg","utc_offset":"-06:00","countries":["CA"]},{"id":"America/Yakutat","utc_offset":"-09:00","countries":["US"]},{"id":"Antarctica/Casey","utc_offset":"+08:00","countries":["AQ"]},{"id":"Antarctica/Davis","utc_offset":"+07:00","countries":["AQ"]},{"id":"Antarctica/DumontDUrville","utc_offset":"+10:00","countries":["AQ"]},{"id":"Antarctica/Macquarie","utc_offset":"+10:00","countries":["AU"]},{"id":"Antarctica/Mawson","utc_offset":"+05:00","countries":["AQ"]},{"id":"Antarctica/McMurdo","utc_offset":"+12:00","countries":["AQ"]},{"id":"Antarctica/Palmer","utc_offset":"-03:00","countries":["AQ"]},{"id":"Antarctica/Rothera","utc_offset":"-03:00","countries":["AQ"]},{"id":"Antarctica/Syowa","utc_offset":"+03:00","countries":["AQ"]},{"id":"Antarctica/Troll","utc_offset":"+00:00","countries":["AQ"]},{"id":"Antarctica/Vostok","utc_offset":"+06:00","countries":["AQ"]},{"id":"Arctic/Longyearbyen","utc_offset":"+01:00","countries":["SJ"]},{"id":"Asia/Aden","utc_offset":"+03:00","countries":["YE"]},{"id":"Asia/Almaty","utc_offset":"+05:00","countries":["KZ"]},{"id":"Asia/Amman","utc_offset":"+02:00","countries":["JO"]},{"id":"Asia/Anadyr","utc_offset":"+12:00","countries":["RU"]},{"id":"Asia/Aqtau","utc_offset":"+05:00","countries":["KZ"]},{"id":"Asia/Aqtobe","utc_offset":"+05:00","countries":["KZ"]},{"id":"Asia/Ashgabat","utc_offset":"+05:00","countries":["TM"]},{"id":"Asia/Atyrau","utc_offset":"+05:00","countries":["KZ"]},{"id":"Asia/Baghdad","utc_offset":"+03:00","countries":["IQ"]},{"id":"Asia/Bahrain","utc_offset":"+03:00","countries":["BH"]},{"id":"Asia/Baku","utc_offset":"+04:00","countries":["AZ"]},{"id":"Asia/Bangkok","utc_offset":"+07:00","countries":["TH","CX","KH","LA","VN"]},{"id":"Asia/Barnaul","utc_offset":"+07:00","countries":["RU"]},{"id":"Asia/Beirut","utc_offset":"+02:00","countries":["LB"]},{"id":"Asia/Bishkek","utc_offset":"+06:00","countries":["KG"]},{"id":"Asia/Brunei","utc_offset":"+08:00","countries":["BN"]},{"id":"Asia/Chita","utc_offset":"+09:00","countries":["RU"]},{"id":"Asia/Colombo","utc_offset":"+05:30","countries":["LK"]},{"id":"Asia/Damascus","utc_offset":"+02:00","countries":["SY"]},{"id":"Asia/Dhaka","utc_offset":"+06:00","countries":["BD"]},{"id":"Asia/Dili","utc_offset":"+09:00","countries":["TL"]},{"id":"Asia/Dubai","utc_offset":"+04:00","countries":["AE","OM","RE","SC","TF"]},{"id":"Asia/Dushanbe","utc_offset":"+05:00","countries":["TJ"]},{"id":"Asia/Famagusta","utc_offset":"+02:00","countries":["CY"]},{"id":"Asia/Gaza","utc_offset":"+02:00","countries":["PS"]},{"id":"Asia/Hebron","utc_offset":"+02:00","countries":["PS"]},{"id":"Asia/Ho_Chi_Minh","utc_offset":"+07:00","countries":["VN"]},{"id":"Asia/Hong_Kong","utc_offset":"+08:00","countries":["HK"]},{"id":"Asia/Hovd","utc_offset":"+07:00","countries":["MN"]},{"id":"Asia/Irkutsk","utc_offset":"+08:00","countries":["RU"]},{"id":"Asia/Jakarta","utc_offset":"+07:00","countries":["ID"]},{"id":"Asia/Jayapura","utc_offset":"+09:00","countries":["ID"]},{"id":"Asia/Jerusalem","utc_offset":"+02:00","countries":["IL"]},{"id":"Asia/Kabul","utc_offset":"+04:30","countries":["AF"]},{"id":"Asia/Kamchatka","utc_offset":"+12:00","countries":["RU"]},{"id":"Asia/Karachi","utc_offset":"+05:00","countries":["PK"]},{"id":"Asia/Kathmandu","utc_offset":"+05:45","countries":["NP"]},{"id":"Asia/Khandyga","utc_offset":"+09:00","countries":["RU"]},{"id":"Asia/Kolkata","utc_offset":"+05:30","countries":["IN"]},{"id":"Asia/Krasnoyarsk","utc_offset":"+07:00","countries":["RU"]},{"id":"Asia/Kuala_Lumpur","utc_offset":"+08:00","countries":["MY"]},{"id":"Asia/Kuching","utc_offset":"+08:00","countries":["MY","BN"]},{"id":"Asia/Kuwait","utc_offset":"+03:00","countries":["KW"]},{"id":"Asia/Macau","utc_offset":"+08:00","countries":["MO"]},{"id":"Asia/Magadan","utc_offset":"+11:00","countries":["RU"]},{"id":"Asia/Makassar","utc_offset":"+08:00","countries":["ID"]},{"id":"Asia/Manila","utc_offset":"+08:00","countries":["PH"]},{"id":"Asia/Muscat","utc_offset":"+04:00","countries":["OM"]},{"id":"Asia/Nicosia","utc_offset":"+02:00","countries":["CY"]},{"id":"Asia/Novokuznetsk","utc_offset":"+07:00","countries":["RU"]},{"id":"Asia/Novosibirsk","utc_offset":"+07:00","countries":["RU"]},{"id":"Asia/Omsk","utc_offset":"+06:00","countries":["RU"]},{"id":"Asia/Oral","utc_offset":"+05:00","countries":["KZ"]},{"id":"Asia/Phnom_Penh","utc_offset":"+07:00","countries":["KH"]},{"id":"Asia/Pontianak","utc_offset":"+07:00","countries":["ID"]},{"id":"Asia/Pyongyang","utc_offset":"+09:00","countries":["KP"]},{"id":"Asia/Qatar","utc_offset":"+03:00","countries":["QA","BH"]},{"id":"Asia/Qostanay","utc_offset":"+06:00","countries":["KZ"]},{"id":"Asia/Qyzylorda","utc_offset":"+05:00","countries":["KZ"]},{"id":"Asia/Riyadh","utc_offset":"+03:00","countries":["SA","AQ","KW","YE"]},{"id":"Asia/Sakhalin","utc_offset":"+11:00","countries":["RU"]},{"id":"Asia/Samarkand","utc_offset":"+05:00","countries":["UZ"]},{"id":"Asia/Seoul","utc_offset":"+09:00","countries":["KR"]},{"id":"Asia/Shanghai","utc_offset":"+08:00","countries":["CN"]},{"id":"Asia/Singapore","utc_offset":"+08:00","countries":["SG","MY"]},{"id":"Asia/Srednekolymsk","utc_offset":"+11:00","countries":["RU"]},{"id":"Asia/Taipei","utc_offset":"+08:00","countries":["TW"]},{"id":"Asia/Tashkent","utc_offset":"+05:00","countries":["UZ"]},{"id":"Asia/Tbilisi","utc_offset":"+04:00","countries":["GE"]},{"id":"Asia/Tehran","utc_offset":"+03:30","countries":["IR"]},{"id":"Asia/Thimphu","utc_offset":"+06:00","countries":["BT"]},{"id":"Asia/Tokyo","utc_offset":"+09:00","countries":["JP"]},{"id":"Asia/Tomsk","utc_offset":"+07:00","countries":["RU"]},{"id":"Asia/Ulaanbaatar","utc_offset":"+08:00","countries":["MN"]},{"id":"Asia/Urumqi","utc_offset":"+06:00","countries":["CN"]},{"id":"Asia/Ust-Nera","utc_offset":"+10:00","countries":["RU"]},{"id":"Asia/Vientiane","utc_offset":"+07:00","countries":["LA"]},{"id":"Asia/Vladivostok","utc_offset":"+10:00","countries":["RU"]},{"id":"Asia/Yakutsk","utc_offset":"+09:00","countries":["RU"]},{"id":"Asia/Yangon","utc_offset":"+06:30","countries":["MM","CC"]},{"id":"Asia/Yekaterinburg","utc_offset":"+05:00","countries":["RU"]},{"id":"Asia/Yerevan","utc_offset":"+04:00","countries":["AM"]},{"id":"Atlantic/Azores","utc_offset":"-01:00","countries":["PT"]},{"id":"Atlantic/Bermuda","utc_offset":"-04:00","countries":["BM"]},{"id":"Atlantic/Canary","utc_offset":"+00:00","countries":["ES"]},{"id":"Atlantic/Cape_Verde","utc_offset":"-01:00","countries":["CV"]},{"id":"Atlantic/Faroe","utc_offset":"+00:00","countries":["FO"]},{"id":"Atlantic/Madeira","utc_offset":"+00:00","countries":["PT"]},{"id":"Atlantic/Reykjavik","utc_offset":"+00:00","countries":["IS"]},{"id":"Atlantic/South_Georgia","utc_offset":"-02:00","countries":["GS"]},{"id":"Atlantic/St_Helena","utc_offset":"+00:00","countries":["SH"]},{"id":"Atlantic/Stanley","utc_offset":"-03:00","countries":["FK"]},{"id":"Australia/Adelaide","utc_offset":"+09:30","countries":["AU"]},{"id":"Australia/Brisbane","utc_offset":"+10:00","countries":["AU"]},{"id":"Australia/Broken_Hill","utc_offset":"+09:30","countries":["AU"]},{"id":"Australia/Darwin","utc_offset":"+09:30","countries":["AU"]},{"id":"Australia/Eucla","utc_offset":"+08:45","countries":["AU"]},{"id":"Australia/Hobart","utc_offset":"+10:00","countries":["AU"]},{"id":"Australia/Lindeman","utc_offset":"+10:00","countries":["AU"]},{"id":"Australia/Lord_Howe","utc_offset":"+10:30","countries":["AU"]},{"id":"Australia/Melbourne","utc_offset":"+10:00","countries":["AU"]},{"id":"Australia/Perth","utc_offset":"+08:00","countries":["AU"]},{"id":"Australia/Sydney","utc_offset":"+10:00","countries":["AU"]},{"id":"Europe/Amsterdam","utc_offset":"+01:00","countries":["NL"]},{"id":"Europe/Andorra","utc_offset":"+01:00","countries":["AD"]},{"id":"Europe/Astrakhan","utc_offset":"+04:00","countries":["RU"]},{"id":"Europe/Athens","utc_offset":"+02:00","countries":["GR"]},{"id":"Europe/Belgrade","utc_offset":"+01:00","countries":["RS","BA","HR","ME","MK","SI"]},{"id":"Europe/Berlin","utc_offset":"+01:00","countries":["DE","DK","NO","SE","SJ"]},{"id":"Europe/Bratislava","utc_offset":"+01:00","countries":["SK"]},{"id":"Europe/Brussels","utc_offset":"+01:00","countries":["BE","LU","NL"]},{"id":"Europe/Bucharest","utc_offset":"+02:00","countries":["RO"]},{"id":"Europe/Budapest","utc_offset":"+01:00","countries":["HU"]},{"id":"Europe/Chisinau","utc_offset":"+02:00","countries":["MD"]},{"id":"Europe/Copenhagen","utc_offset":"+01:00","countries":["DK"]},{"id":"Europe/Dublin","utc_offset":"+00:00","countries":["IE"]},{"id":"Europe/Gibraltar","utc_offset":"+01:00","countries":["GI"]},{"id":"Europe/Guernsey","utc_offset":"+00:00","countries":["GG"]},{"id":"Europe/Helsinki","utc_offset":"+02:00","countries":["FI","AX"]},{"id":"Europe/Isle_of_Man","utc_offset":"+00:00","countries":["IM"]},{"id":"Europe/Istanbul","utc_offset":"+03:00","countries":["TR"]},{"id":"Europe/Jersey","utc_offset":"+00:00","countries":["JE"]},{"id":"Europe/Kaliningrad","utc_offset":"+02:00","countries":["RU"]},{"id":"Europe/Kirov","utc_offset":"+03:00","countries":["RU"]},{"id":"Europe/Kyiv","utc_offset":"+02:00","countries":["UA"]},{"id":"Europe/Lisbon","utc_offset":"+00:00","countries":["PT"]},{"id":"Europe/Ljubljana","utc_offset":"+01:00","countries":["SI"]},{"id":"Europe/London","utc_offset":"+00:00","countries":["UK","GG","IM","JE"]},{"id":"Europe/Luxembourg","utc_offset":"+01:00","countries":["LU"]},{"id":"Europe/Madrid","utc_offset":"+01:00","countries":["ES"]},{"id":"Europe/Malta","utc_offset":"+01:00","countries":["MT"]},{"id":"Europe/Mariehamn","utc_offset":"+02:00","countries":["AX"]},{"id":"Europe/Minsk","utc_offset":"+03:00","countries":["BY"]},{"id":"Europe/Monaco","utc_offset":"+01:00","countries":["MC"]},{"id":"Europe/Moscow","utc_offset":"+03:00","countries":["RU"]},{"id":"Europe/Oslo","utc_offset":"+01:00","countries":["NO"]},{"id":"Europe/Paris","utc_offset":"+01:00","countries":["FR","MC"]},{"id":"Europe/Podgorica","utc_offset":"+01:00","countries":["ME"]},{"id":"Europe/Prague","utc_offset":"+01:00","countries":["CZ","SK"]},{"id":"Europe/Riga","utc_offset":"+02:00","countries":["LV"]},{"id":"Europe/Rome","utc_offset":"+01:00","countries":["IT","SM","VA"]},{"id":"Europe/Samara","utc_offset":"+04:00","countries":["RU"]},{"id":"Europe/San_Marino","utc_offset":"+01:00","countries":["SM"]},{"id":"Europe/Sarajevo","utc_offset":"+01:00","countries":["BA"]},{"id":"Europe/Saratov","utc_offset":"+04:00","countries":["RU"]},{"id":"Europe/Simferopol","utc_offset":"+03:00","countries":["RU","UA"]},{"id":"Europe/Skopje","utc_offset":"+01:00","countries":["MK"]},{"id":"Europe/Sofia","utc_offset":"+02:00","countries":["BG"]},{"id":"Europe/Stockholm","utc_offset":"+01:00","countries":["SE"]},{"id":"Europe/Tallinn","utc_offset":"+02:00","countries":["EE"]},{"id":"Europe/Tirane","utc_offset":"+01:00","countries":["AL"]},{"id":"Europe/Ulyanovsk","utc_offset":"+04:00","countries":["RU"]},{"id":"Europe/Vaduz","utc_offset":"+01:00","countries":["LI"]},{"id":"Europe/Vatican","utc_offset":"+01:00","countries":["VA"]},{"id":"Europe/Vienna","utc_offset":"+01:00","countries":["AT"]},{"id":"Europe/Vilnius","utc_offset":"+02:00","countries":["LT"]},{"id":"Europe/Volgograd","utc_offset":"+03:00","countries":["RU"]},{"id":"Europe/Warsaw","utc_offset":"+01:00","countries":["PL"]},{"id":"Europe/Zagreb","utc_offset":"+01:00","countries":["HR"]},{"id":"Europe/Zurich","utc_offset":"+01:00","countries":["CH","DE","LI"]},{"id":"Indian/Antananarivo","utc_offset":"+03:00","countries":["MG"]},{"id":"Indian/Chagos","utc_offset":"+06:00","countries":["IO"]},{"id":"Indian/Christmas","utc_offset":"+07:00","countries":["CX"]},{"id":"Indian/Cocos","utc_offset":"+06:30","countries":["CC"]},{"id":"Indian/Comoro","utc_offset":"+03:00","countries":["KM"]},{"id":"Indian/Kerguelen","utc_offset":"+05:00","countries":["TF"]},{"id":"Indian/Mahe","utc_offset":"+04:00","countries":["SC"]},{"id":"Indian/Maldives","utc_offset":"+05:00","countries":["MV","TF"]},{"id":"Indian/Mauritius","utc_offset":"+04:00","countries":["MU"]},{"id":"Indian/Mayotte","utc_offset":"+03:00","countries":["YT"]},{"id":"Indian/Reunion","utc_offset":"+04:00","countries":["RE"]},{"id":"Pacific/Apia","utc_offset":"+13:00","countries":["WS"]},{"id":"Pacific/Auckland","utc_offset":"+12:00","countries":["NZ","AQ"]},{"id":"Pacific/Bougainville","utc_offset":"+11:00","countries":["PG"]},{"id":"Pacific/Chatham","utc_offset":"+12:45","countries":["NZ"]},{"id":"Pacific/Chuuk","utc_offset":"+10:00","countries":["FM"]},{"id":"Pacific/Easter","utc_offset":"-06:00","countries":["CL"]},{"id":"Pacific/Efate","utc_offset":"+11:00","countries":["VU"]},{"id":"Pacific/Fakaofo","utc_offset":"+13:00","countries":["TK"]},{"id":"Pacific/Fiji","utc_offset":"+12:00","countries":["FJ"]},{"id":"Pacific/Funafuti","utc_offset":"+12:00","countries":["TV"]},{"id":"Pacific/Galapagos","utc_offset":"-06:00","countries":["EC"]},{"id":"Pacific/Gambier","utc_offset":"-09:00","countries":["PF"]},{"id":"Pacific/Guadalcanal","utc_offset":"+11:00","countries":["SB","FM"]},{"id":"Pacific/Guam","utc_offset":"+10:00","countries":["GU","MP"]},{"id":"Pacific/Honolulu","utc_offset":"-10:00","countries":["US"]},{"id":"Pacific/Kiritimati","utc_offset":"+14:00","countries":["KI"]},{"id":"Pacific/Kosrae","utc_offset":"+11:00","countries":["FM"]},{"id":"Pacific/Kwajalein","utc_offset":"+12:00","countries":["MH"]},{"id":"Pacific/Majuro","utc_offset":"+12:00","countries":["MH"]},{"id":"Pacific/Marquesas","utc_offset":"-09:30","countries":["PF"]},{"id":"Pacific/Midway","utc_offset":"-11:00","countries":["UM"]},{"id":"Pacific/Nauru","utc_offset":"+12:00","countries":["NR"]},{"id":"Pacific/Niue","utc_offset":"-11:00","countries":["NU"]},{"id":"Pacific/Norfolk","utc_offset":"+11:00","countries":["NF"]},{"id":"Pacific/Noumea","utc_offset":"+11:00","countries":["NC"]},{"id":"Pacific/Pago_Pago","utc_offset":"-11:00","countries":["AS","UM"]},{"id":"Pacific/Palau","utc_offset":"+09:00","countries":["PW"]},{"id":"Pacific/Pitcairn","utc_offset":"-08:00","countries":["PN"]},{"id":"Pacific/Pohnpei","utc_offset":"+11:00","countries":["FM"]},{"id":"Pacific/Port_Moresby","utc_offset":"+10:00","countries":["PG","AQ","FM"]},{"id":"Pacific/Rarotonga","utc_offset":"-10:00","countries":["CK"]},{"id":"Pacific/Saipan","utc_offset":"+10:00","countries":["MP"]},{"id":"Pacific/Tahiti","utc_offset":"-10:00","countries":["PF"]},{"id":"Pacific/Tarawa","utc_offset":"+12:00","countries":["KI","MH","TV","UM","WF"]},{"id":"Pacific/Tongatapu","utc_offset":"+13:00","countries":["TO"]},{"id":"Pacific/Wake","utc_offset":"+12:00","countries":["UM"]},{"id":"Pacific/Wallis","utc_offset":"+12:00","countries":["WF"]}] \ No newline at end of file diff --git a/tests/__data__/input/channels_edit/example.com.channels.xml b/tests/__data__/input/channels_edit/example.com.channels.xml index cba9c26f..4c5ef0c5 100644 --- a/tests/__data__/input/channels_edit/example.com.channels.xml +++ b/tests/__data__/input/channels_edit/example.com.channels.xml @@ -1,6 +1,6 @@ - CNN International + CNN International Europe CNN International Bravo diff --git a/tests/__data__/input/epg_grab/example.com/example.com.channels.xml b/tests/__data__/input/epg_grab/example.com/example.com.channels.xml new file mode 100644 index 00000000..6f589e0b --- /dev/null +++ b/tests/__data__/input/epg_grab/example.com/example.com.channels.xml @@ -0,0 +1,7 @@ + + + Channel 1 + Channel 2 + Channel 1 + Channel 3 + \ No newline at end of file diff --git a/tests/__data__/input/epg_grab/example.com/example.com.config.js b/tests/__data__/input/epg_grab/example.com/example.com.config.js new file mode 100644 index 00000000..7f65c30c --- /dev/null +++ b/tests/__data__/input/epg_grab/example.com/example.com.config.js @@ -0,0 +1,28 @@ +module.exports = { + site: 'example.com', + days: 2, + request: { + timeout: 1000 + }, + url: 'https://example.com', + parser({ channel, date }) { + if (channel.xmltv_id === 'Channel2.us') return [] + else if (channel.xmltv_id === 'Channel1.us' && channel.lang === 'fr') { + return [ + { + title: 'Programme1 (example.com)', + start: `${date.format('YYYY-MM-DD')}T04:30:00.000Z`, + stop: `${date.format('YYYY-MM-DD')}T07:10:00.000Z` + } + ] + } + + return [ + { + title: 'Program1 (example.com)', + start: `${date.format('YYYY-MM-DD')}T04:30:00.000Z`, + stop: `${date.format('YYYY-MM-DD')}T07:10:00.000Z` + } + ] + } +} From d681fcb3d5fef8f2229894fd389cb5da2daf9fc4 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Sat, 19 Apr 2025 02:05:54 +0300 Subject: [PATCH 3/6] Update grab.test.ts --- tests/commands/epg/grab.test.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/commands/epg/grab.test.ts b/tests/commands/epg/grab.test.ts index 7233b427..375d5c12 100644 --- a/tests/commands/epg/grab.test.ts +++ b/tests/commands/epg/grab.test.ts @@ -82,6 +82,16 @@ describe('epg:grab', () => { ) }) + it('can grab epg then using a multi-language filter', () => { + const cmd = `${ENV_VAR} npm run grab --- --channels=tests/__data__/input/epg_grab/example.com/example.com.channels.xml --output=tests/__data__/output/guides/{site}.xml --lang=fr,it` + const stdout = execSync(cmd, { encoding: 'utf8' }) + if (process.env.DEBUG === 'true') console.log(cmd, stdout) + + expect(content('tests/__data__/output/guides/example.com.xml')).toEqual( + content('tests/__data__/expected/epg_grab/guide_4.xml') + ) + }) + it('can grab epg using custom channels list', () => { const cmd = `${ENV_VAR} npm run grab --- --channels=tests/__data__/input/epg_grab/custom.channels.xml --output=tests/__data__/output/guide.xml` const stdout = execSync(cmd, { encoding: 'utf8' }) From 8e363d0e833a499877367cf860b2b8f9355c5042 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Sat, 19 Apr 2025 02:06:15 +0300 Subject: [PATCH 4/6] Update scripts --- scripts/commands/api/load.ts | 31 +++++---- scripts/commands/channels/edit.ts | 92 ++++++++++++++++++-------- scripts/commands/epg/grab.ts | 8 ++- scripts/core/apiClient.ts | 57 ++-------------- scripts/core/dataLoader.ts | 100 ++++++++++++++++++++++++++++ scripts/core/dataProcessor.ts | 39 +++++++++++ scripts/core/index.ts | 24 +++---- scripts/core/queueCreator.ts | 1 - scripts/models/channel.ts | 105 +++++++++++++++++++++++------- scripts/models/feed.ts | 62 ++++++++++++++---- scripts/models/guide.ts | 35 ++++++++++ scripts/models/index.ts | 2 + scripts/models/stream.ts | 58 +++++++++++++++++ scripts/types/channel.d.ts | 28 ++++++++ scripts/types/dataLoader.d.ts | 19 ++++++ scripts/types/dataProcessor.d.ts | 12 ++++ scripts/types/feed.d.ts | 12 ++++ scripts/types/guide.d.ts | 8 +++ scripts/types/stream.d.ts | 10 +++ 19 files changed, 562 insertions(+), 141 deletions(-) create mode 100644 scripts/core/dataLoader.ts create mode 100644 scripts/core/dataProcessor.ts create mode 100644 scripts/models/guide.ts create mode 100644 scripts/models/stream.ts create mode 100644 scripts/types/channel.d.ts create mode 100644 scripts/types/dataLoader.d.ts create mode 100644 scripts/types/dataProcessor.d.ts create mode 100644 scripts/types/feed.d.ts create mode 100644 scripts/types/guide.d.ts create mode 100644 scripts/types/stream.d.ts diff --git a/scripts/commands/api/load.ts b/scripts/commands/api/load.ts index 28d19912..9e731c7f 100644 --- a/scripts/commands/api/load.ts +++ b/scripts/commands/api/load.ts @@ -1,19 +1,24 @@ -import { Logger } from '@freearhey/core' -import { ApiClient } from '../../core' +import { DATA_DIR } from '../../constants' +import { Storage } from '@freearhey/core' +import { DataLoader } from '../../core' async function main() { - const logger = new Logger() - const client = new ApiClient({ logger }) + const storage = new Storage(DATA_DIR) + const loader = new DataLoader({ storage }) - const requests = [ - client.download('channels.json'), - client.download('feeds.json'), - client.download('countries.json'), - client.download('regions.json'), - client.download('subdivisions.json') - ] - - await Promise.all(requests) + await Promise.all([ + loader.download('blocklist.json'), + loader.download('categories.json'), + loader.download('channels.json'), + loader.download('countries.json'), + loader.download('languages.json'), + loader.download('regions.json'), + loader.download('subdivisions.json'), + loader.download('feeds.json'), + loader.download('timezones.json'), + loader.download('guides.json'), + loader.download('streams.json') + ]) } main() diff --git a/scripts/commands/channels/edit.ts b/scripts/commands/channels/edit.ts index 87e81999..a67b6fe2 100644 --- a/scripts/commands/channels/edit.ts +++ b/scripts/commands/channels/edit.ts @@ -4,13 +4,17 @@ import { ChannelsParser, XML } from '../../core' import { Channel, Feed } from '../../models' import { DATA_DIR } from '../../constants' import nodeCleanup from 'node-cleanup' -import epgGrabber from 'epg-grabber' import { Command } from 'commander' import readline from 'readline' -import Fuse from 'fuse.js' +import sjs from '@freearhey/search-js' +import { DataProcessor, DataLoader } from '../../core' +import type { DataLoaderData } from '../../types/dataLoader' +import type { DataProcessorData } from '../../types/dataProcessor' +import epgGrabber from 'epg-grabber' +import { ChannelSearchableData } from '../../types/channel' type ChoiceValue = { type: string; value?: Feed | Channel } -type Choice = { name: string; short?: string; value: ChoiceValue } +type Choice = { name: string; short?: string; value: ChoiceValue; default?: boolean } if (process.platform === 'win32') { readline @@ -42,31 +46,48 @@ export default async function main(filepath: string) { throw new Error(`File "${filepath}" does not exists`) } + logger.info('loading data from api...') + const processor = new DataProcessor() + const dataStorage = new Storage(DATA_DIR) + const loader = new DataLoader({ storage: dataStorage }) + const data: DataLoaderData = await loader.load() + const { feedsGroupedByChannelId, channels, channelsKeyById }: DataProcessorData = + processor.process(data) + + logger.info('loading channels...') const parser = new ChannelsParser({ storage }) parsedChannels = await parser.parse(filepath) + const parsedChannelsWithoutId = parsedChannels.filter( + (channel: epgGrabber.Channel) => !channel.xmltv_id + ) - const dataStorage = new Storage(DATA_DIR) - const channelsData = await dataStorage.json('channels.json') - const channels = new Collection(channelsData).map(data => new Channel(data)) - const feedsData = await dataStorage.json('feeds.json') - const feeds = new Collection(feedsData).map(data => new Feed(data)) - const feedsGroupedByChannelId = feeds.groupBy((feed: Feed) => feed.channelId) + logger.info( + `found ${parsedChannels.count()} channels (including ${parsedChannelsWithoutId.count()} without ID)` + ) - const searchIndex: Fuse = new Fuse(channels.all(), { - keys: ['name', 'alt_names'], - threshold: 0.4 + logger.info('creating search index...') + const items = channels.map((channel: Channel) => channel.getSearchable()).all() + const searchIndex = sjs.createIndex(items, { + searchable: ['name', 'altNames', 'guideNames', 'streamNames', 'feedFullNames'] }) - for (const channel of parsedChannels.all()) { - if (channel.xmltv_id) continue + logger.info('starting...\n') + + for (const parsedChannel of parsedChannelsWithoutId.all()) { try { - channel.xmltv_id = await selectChannel(channel, searchIndex, feedsGroupedByChannelId) - } catch { + parsedChannel.xmltv_id = await selectChannel( + parsedChannel, + searchIndex, + feedsGroupedByChannelId, + channelsKeyById + ) + } catch (err) { + logger.info(err.message) break } } - parsedChannels.forEach((channel: epgGrabber.Channel) => { + parsedChannelsWithoutId.forEach((channel: epgGrabber.Channel) => { if (channel.xmltv_id === '-') { channel.xmltv_id = '' } @@ -75,12 +96,14 @@ export default async function main(filepath: string) { async function selectChannel( channel: epgGrabber.Channel, - searchIndex: Fuse, - feedsGroupedByChannelId: Dictionary + searchIndex, + feedsGroupedByChannelId: Dictionary, + channelsKeyById: Dictionary ): Promise { + const query = escapeRegex(channel.name) const similarChannels = searchIndex - .search(channel.name) - .map((result: { item: Channel }) => result.item) + .search(query) + .map((item: ChannelSearchableData) => channelsKeyById.get(item.id)) const selected: ChoiceValue = await select({ message: `Select channel ID for "${channel.name}" (${channel.site_id}):`, @@ -93,13 +116,16 @@ async function selectChannel( return '-' case 'type': { const typedChannelId = await input({ message: ' Channel ID:' }) - const typedFeedId = await input({ message: ' Feed ID:', default: 'SD' }) - return [typedChannelId, typedFeedId].join('@') + if (!typedChannelId) return '' + const selectedFeedId = await selectFeed(typedChannelId, feedsGroupedByChannelId) + if (selectedFeedId === '-') return typedChannelId + return [typedChannelId, selectedFeedId].join('@') } case 'channel': { const selectedChannel = selected.value if (!selectedChannel) return '' const selectedFeedId = await selectFeed(selectedChannel.id, feedsGroupedByChannelId) + if (selectedFeedId === '-') return selectedChannel.id return [selectedChannel.id, selectedFeedId].join('@') } } @@ -108,18 +134,22 @@ async function selectChannel( } async function selectFeed(channelId: string, feedsGroupedByChannelId: Dictionary): Promise { - const channelFeeds = feedsGroupedByChannelId.get(channelId) || [] - if (channelFeeds.length <= 1) return '' + const channelFeeds = feedsGroupedByChannelId.has(channelId) + ? new Collection(feedsGroupedByChannelId.get(channelId)) + : new Collection() + const choices = getFeedChoises(channelFeeds) const selected: ChoiceValue = await select({ message: `Select feed ID for "${channelId}":`, - choices: getFeedChoises(channelFeeds), + choices, pageSize: 10 }) switch (selected.type) { + case 'skip': + return '-' case 'type': - return await input({ message: ' Feed ID:' }) + return await input({ message: ' Feed ID:', default: 'SD' }) case 'feed': const selectedFeed = selected.value if (!selectedFeed) return '' @@ -133,7 +163,7 @@ function getChannelChoises(channels: Collection): Choice[] { const choises: Choice[] = [] channels.forEach((channel: Channel) => { - const names = [channel.name, ...channel.altNames.all()].join(', ') + const names = new Collection([channel.name, ...channel.getAltNames().all()]).uniq().join(', ') choises.push({ value: { @@ -163,12 +193,14 @@ function getFeedChoises(feeds: Collection): Choice[] { type: 'feed', value: feed }, + default: feed.isMain, name, short: feed.id }) }) choises.push({ name: 'Type...', value: { type: 'type' } }) + choises.push({ name: 'Skip', value: { type: 'skip' } }) return choises } @@ -179,3 +211,7 @@ function save(filepath: string) { storage.saveSync(filepath, xml.toString()) logger.info(`\nFile '${filepath}' successfully saved`) } + +function escapeRegex(string: string) { + return string.replace(/[/\-\\^$*+?.()|[\]{}]/g, '\\$&') +} diff --git a/scripts/commands/epg/grab.ts b/scripts/commands/epg/grab.ts index 8ce8e2a2..a5ad7d5e 100644 --- a/scripts/commands/epg/grab.ts +++ b/scripts/commands/epg/grab.ts @@ -14,7 +14,7 @@ program ) ) .addOption(new Option('-o, --output ', 'Path to output file').default('guide.xml')) - .addOption(new Option('-l, --lang ', 'Filter channels by language (ISO 639-1 code)')) + .addOption(new Option('-l, --lang ', 'Filter channels by languages (ISO 639-1 codes)')) .addOption( new Option('-t, --timeout ', 'Override the default timeout for each request').env( 'TIMEOUT' @@ -90,7 +90,11 @@ async function main() { parsedChannels = parsedChannels.concat(await parser.parse(filepath)) } if (options.lang) { - parsedChannels = parsedChannels.filter((channel: Channel) => channel.lang === options.lang) + parsedChannels = parsedChannels.filter((channel: Channel) => { + if (!options.lang || !channel.lang) return true + + return options.lang.includes(channel.lang) + }) } logger.info(` found ${parsedChannels.count()} channel(s)`) diff --git a/scripts/core/apiClient.ts b/scripts/core/apiClient.ts index c29d48af..931a9b14 100644 --- a/scripts/core/apiClient.ts +++ b/scripts/core/apiClient.ts @@ -1,59 +1,16 @@ -import { Logger, Storage } from '@freearhey/core' -import axios, { AxiosInstance, AxiosResponse, AxiosProgressEvent } from 'axios' -import cliProgress, { MultiBar } from 'cli-progress' -import numeral from 'numeral' +import axios, { AxiosInstance, AxiosResponse, AxiosRequestConfig } from 'axios' export class ApiClient { - progressBar: MultiBar - client: AxiosInstance - storage: Storage - logger: Logger + instance: AxiosInstance - constructor({ logger }: { logger: Logger }) { - this.logger = logger - this.client = axios.create({ + constructor() { + this.instance = axios.create({ + baseURL: 'https://iptv-org.github.io/api', responseType: 'stream' }) - this.storage = new Storage() - this.progressBar = new cliProgress.MultiBar({ - stopOnComplete: true, - hideCursor: true, - forceRedraw: true, - barsize: 36, - format(options, params, payload) { - const filename = payload.filename.padEnd(18, ' ') - const barsize = options.barsize || 40 - const percent = (params.progress * 100).toFixed(2) - const speed = payload.speed ? numeral(payload.speed).format('0.0 b') + '/s' : 'N/A' - const total = numeral(params.total).format('0.0 b') - const completeSize = Math.round(params.progress * barsize) - const incompleteSize = barsize - completeSize - const bar = - options.barCompleteString && options.barIncompleteString - ? options.barCompleteString.substr(0, completeSize) + - options.barGlue + - options.barIncompleteString.substr(0, incompleteSize) - : '-'.repeat(barsize) - - return `${filename} [${bar}] ${percent}% | ETA: ${params.eta}s | ${total} | ${speed}` - } - }) } - async download(filename: string) { - const stream = await this.storage.createStream(`temp/data/${filename}`) - - const bar = this.progressBar.create(0, 0, { filename }) - - this.client - .get(`https://iptv-org.github.io/api/${filename}`, { - onDownloadProgress({ total, loaded, rate }: AxiosProgressEvent) { - if (total) bar.setTotal(total) - bar.update(loaded, { speed: rate }) - } - }) - .then((response: AxiosResponse) => { - response.data.pipe(stream) - }) + get(url: string, options: AxiosRequestConfig): Promise { + return this.instance.get(url, options) } } diff --git a/scripts/core/dataLoader.ts b/scripts/core/dataLoader.ts new file mode 100644 index 00000000..51348bba --- /dev/null +++ b/scripts/core/dataLoader.ts @@ -0,0 +1,100 @@ +import type { DataLoaderProps, DataLoaderData } from '../types/dataLoader' +import cliProgress, { MultiBar } from 'cli-progress' +import { Storage } from '@freearhey/core' +import { ApiClient } from './apiClient' +import numeral from 'numeral' + +export class DataLoader { + client: ApiClient + storage: Storage + progressBar: MultiBar + + constructor(props: DataLoaderProps) { + this.client = new ApiClient() + this.storage = props.storage + this.progressBar = new cliProgress.MultiBar({ + stopOnComplete: true, + hideCursor: true, + forceRedraw: true, + barsize: 36, + format(options, params, payload) { + const filename = payload.filename.padEnd(18, ' ') + const barsize = options.barsize || 40 + const percent = (params.progress * 100).toFixed(2) + const speed = payload.speed ? numeral(payload.speed).format('0.0 b') + '/s' : 'N/A' + const total = numeral(params.total).format('0.0 b') + const completeSize = Math.round(params.progress * barsize) + const incompleteSize = barsize - completeSize + const bar = + options.barCompleteString && options.barIncompleteString + ? options.barCompleteString.substr(0, completeSize) + + options.barGlue + + options.barIncompleteString.substr(0, incompleteSize) + : '-'.repeat(barsize) + + return `${filename} [${bar}] ${percent}% | ETA: ${params.eta}s | ${total} | ${speed}` + } + }) + } + + async load(): Promise { + const [ + countries, + regions, + subdivisions, + languages, + categories, + blocklist, + channels, + feeds, + timezones, + guides, + streams + ] = await Promise.all([ + this.storage.json('countries.json'), + this.storage.json('regions.json'), + this.storage.json('subdivisions.json'), + this.storage.json('languages.json'), + this.storage.json('categories.json'), + this.storage.json('blocklist.json'), + this.storage.json('channels.json'), + this.storage.json('feeds.json'), + this.storage.json('timezones.json'), + this.storage.json('guides.json'), + this.storage.json('streams.json') + ]) + + return { + countries, + regions, + subdivisions, + languages, + categories, + blocklist, + channels, + feeds, + timezones, + guides, + streams + } + } + + async download(filename: string) { + if (!this.storage || !this.progressBar) return + + const stream = await this.storage.createStream(filename) + const progressBar = this.progressBar.create(0, 0, { filename }) + + this.client + .get(filename, { + responseType: 'stream', + onDownloadProgress({ total, loaded, rate }) { + if (total) progressBar.setTotal(total) + progressBar.update(loaded, { speed: rate }) + } + }) + .then(response => { + response.data.pipe(stream) + }) + } +} diff --git a/scripts/core/dataProcessor.ts b/scripts/core/dataProcessor.ts new file mode 100644 index 00000000..372d8716 --- /dev/null +++ b/scripts/core/dataProcessor.ts @@ -0,0 +1,39 @@ +import { DataLoaderData } from '../types/dataLoader' +import { Collection } from '@freearhey/core' +import { Channel, Feed, Guide, Stream } from '../models' + +export class DataProcessor { + constructor() {} + + process(data: DataLoaderData) { + let channels = new Collection(data.channels).map(data => new Channel(data)) + const channelsKeyById = channels.keyBy((channel: Channel) => channel.id) + + const guides = new Collection(data.guides).map(data => new Guide(data)) + const guidesGroupedByStreamId = guides.groupBy((guide: Guide) => guide.getStreamId()) + + const streams = new Collection(data.streams).map(data => new Stream(data)) + const streamsGroupedById = streams.groupBy((stream: Stream) => stream.getId()) + + const feeds = new Collection(data.feeds).map(data => + new Feed(data) + .withGuides(guidesGroupedByStreamId) + .withStreams(streamsGroupedById) + .withChannel(channelsKeyById) + ) + const feedsGroupedByChannelId = feeds.groupBy((feed: Feed) => feed.channelId) + + channels = channels.map((channel: Channel) => channel.withFeeds(feedsGroupedByChannelId)) + + return { + feedsGroupedByChannelId, + guidesGroupedByStreamId, + streamsGroupedById, + channelsKeyById, + channels, + streams, + guides, + feeds + } + } +} diff --git a/scripts/core/index.ts b/scripts/core/index.ts index 91a684ff..f545c6c2 100644 --- a/scripts/core/index.ts +++ b/scripts/core/index.ts @@ -1,15 +1,17 @@ -export * from './xml' -export * from './channelsParser' -export * from './xmltv' -export * from './configLoader' -export * from './grabber' -export * from './job' -export * from './queue' -export * from './guideManager' -export * from './guide' export * from './apiClient' -export * from './queueCreator' +export * from './channelsParser' +export * from './configLoader' +export * from './dataLoader' +export * from './dataProcessor' +export * from './grabber' +export * from './guide' +export * from './guideManager' +export * from './htmlTable' export * from './issueLoader' export * from './issueParser' -export * from './htmlTable' +export * from './job' export * from './proxyParser' +export * from './queue' +export * from './queueCreator' +export * from './xml' +export * from './xmltv' diff --git a/scripts/core/queueCreator.ts b/scripts/core/queueCreator.ts index d1ebf381..a09632e8 100644 --- a/scripts/core/queueCreator.ts +++ b/scripts/core/queueCreator.ts @@ -38,7 +38,6 @@ export class QueueCreator { const queue = new Queue() for (const channel of this.parsedChannels.all()) { if (!channel.site || !channel.site_id || !channel.name) continue - if (this.options.lang && channel.lang !== this.options.lang) continue const configPath = path.resolve(SITES_DIR, `${channel.site}/${channel.site}.config.js`) const config: SiteConfig = await this.configLoader.load(configPath) diff --git a/scripts/models/channel.ts b/scripts/models/channel.ts index 281c3914..2fb734bd 100644 --- a/scripts/models/channel.ts +++ b/scripts/models/channel.ts @@ -1,40 +1,24 @@ -import { Collection } from '@freearhey/core' - -type ChannelData = { - id: string - name: string - alt_names: string[] - network: string - owners: Collection - country: string - subdivision: string - city: string - categories: Collection - is_nsfw: boolean - launched: string - closed: string - replaced_by: string - website: string - logo: string -} +import { ChannelData, ChannelSearchableData } from '../types/channel' +import { Collection, Dictionary } from '@freearhey/core' +import { Stream, Guide, Feed } from './' export class Channel { id: string name: string - altNames: Collection + altNames?: Collection network?: string - owners: Collection + owners?: Collection countryCode: string subdivisionCode?: string cityName?: string - categoryIds: Collection - categories?: Collection + categoryIds?: Collection isNSFW: boolean launched?: string closed?: string replacedBy?: string website?: string - logo: string + logo?: string + feeds?: Collection constructor(data: ChannelData) { this.id = data.id @@ -53,4 +37,77 @@ export class Channel { this.website = data.website || undefined this.logo = data.logo } + + withFeeds(feedsGroupedByChannelId: Dictionary): this { + this.feeds = new Collection(feedsGroupedByChannelId.get(this.id)) + + return this + } + + getFeeds(): Collection { + if (!this.feeds) return new Collection() + + return this.feeds + } + + getGuides(): Collection { + let guides = new Collection() + + this.getFeeds().forEach((feed: Feed) => { + guides = guides.concat(feed.getGuides()) + }) + + return guides + } + + getGuideNames(): Collection { + return this.getGuides() + .map((guide: Guide) => guide.siteName) + .uniq() + } + + getStreams(): Collection { + let streams = new Collection() + + this.getFeeds().forEach((feed: Feed) => { + streams = streams.concat(feed.getStreams()) + }) + + return streams + } + + getStreamNames(): Collection { + return this.getStreams() + .map((stream: Stream) => stream.getName()) + .uniq() + } + + getFeedFullNames(): Collection { + return this.getFeeds() + .map((feed: Feed) => feed.getFullName()) + .uniq() + } + + getName(): string { + return this.name || '' + } + + getId(): string { + return this.id || '' + } + + getAltNames(): Collection { + return this.altNames || new Collection() + } + + getSearchable(): ChannelSearchableData { + return { + id: this.getId(), + name: this.getName(), + altNames: this.getAltNames().all(), + guideNames: this.getGuideNames().all(), + streamNames: this.getStreamNames().all(), + feedFullNames: this.getFeedFullNames().all() + } + } } diff --git a/scripts/models/feed.ts b/scripts/models/feed.ts index 4941d4f7..0035bb49 100644 --- a/scripts/models/feed.ts +++ b/scripts/models/feed.ts @@ -1,18 +1,10 @@ -import { Collection } from '@freearhey/core' - -type FeedData = { - channel: string - id: string - name: string - is_main: boolean - broadcast_area: Collection - languages: Collection - timezones: Collection - video_format: string -} +import { Collection, Dictionary } from '@freearhey/core' +import { FeedData } from '../types/feed' +import { Channel } from './channel' export class Feed { channelId: string + channel?: Channel id: string name: string isMain: boolean @@ -20,6 +12,8 @@ export class Feed { languageCodes: Collection timezoneIds: Collection videoFormat: string + guides?: Collection + streams?: Collection constructor(data: FeedData) { this.channelId = data.channel @@ -31,4 +25,48 @@ export class Feed { this.timezoneIds = new Collection(data.timezones) this.videoFormat = data.video_format } + + withChannel(channelsKeyById: Dictionary): this { + this.channel = channelsKeyById.get(this.channelId) + + return this + } + + withStreams(streamsGroupedById: Dictionary): this { + this.streams = new Collection(streamsGroupedById.get(`${this.channelId}@${this.id}`)) + + if (this.isMain) { + this.streams = this.streams.concat(new Collection(streamsGroupedById.get(this.channelId))) + } + + return this + } + + withGuides(guidesGroupedByStreamId: Dictionary): this { + this.guides = new Collection(guidesGroupedByStreamId.get(`${this.channelId}@${this.id}`)) + + if (this.isMain) { + this.guides = this.guides.concat(new Collection(guidesGroupedByStreamId.get(this.channelId))) + } + + return this + } + + getGuides(): Collection { + if (!this.guides) return new Collection() + + return this.guides + } + + getStreams(): Collection { + if (!this.streams) return new Collection() + + return this.streams + } + + getFullName(): string { + if (!this.channel) return '' + + return `${this.channel.name} ${this.name}` + } } diff --git a/scripts/models/guide.ts b/scripts/models/guide.ts new file mode 100644 index 00000000..349d6d5c --- /dev/null +++ b/scripts/models/guide.ts @@ -0,0 +1,35 @@ +import type { GuideData } from '../types/guide' +import { uniqueId } from 'lodash' + +export class Guide { + channelId?: string + feedId?: string + siteDomain?: string + siteId?: string + siteName?: string + languageCode?: string + + constructor(data?: GuideData) { + if (!data) return + + this.channelId = data.channel + this.feedId = data.feed + this.siteDomain = data.site + this.siteId = data.site_id + this.siteName = data.site_name + this.languageCode = data.lang + } + + getUUID(): string { + if (!this.getStreamId() || !this.siteId) return uniqueId() + + return this.getStreamId() + this.siteId + } + + getStreamId(): string | undefined { + if (!this.channelId) return undefined + if (!this.feedId) return this.channelId + + return `${this.channelId}@${this.feedId}` + } +} diff --git a/scripts/models/index.ts b/scripts/models/index.ts index 1b602c54..7602bede 100644 --- a/scripts/models/index.ts +++ b/scripts/models/index.ts @@ -2,3 +2,5 @@ export * from './issue' export * from './site' export * from './channel' export * from './feed' +export * from './stream' +export * from './guide' diff --git a/scripts/models/stream.ts b/scripts/models/stream.ts new file mode 100644 index 00000000..6ac1636b --- /dev/null +++ b/scripts/models/stream.ts @@ -0,0 +1,58 @@ +import type { StreamData } from '../types/stream' +import { Feed, Channel } from './index' + +export class Stream { + name?: string + url: string + id?: string + channelId?: string + channel?: Channel + feedId?: string + feed?: Feed + filepath?: string + line?: number + label?: string + verticalResolution?: number + isInterlaced?: boolean + referrer?: string + userAgent?: string + groupTitle: string = 'Undefined' + removed: boolean = false + + constructor(data: StreamData) { + const id = data.channel && data.feed ? [data.channel, data.feed].join('@') : data.channel + const { verticalResolution, isInterlaced } = parseQuality(data.quality) + + this.id = id || undefined + this.channelId = data.channel || undefined + this.feedId = data.feed || undefined + this.name = data.name || undefined + this.url = data.url + this.referrer = data.referrer || undefined + this.userAgent = data.user_agent || undefined + this.verticalResolution = verticalResolution || undefined + this.isInterlaced = isInterlaced || undefined + this.label = data.label || undefined + } + + getId(): string { + return this.id || '' + } + + getName(): string { + return this.name || '' + } +} + +function parseQuality(quality: string | null): { + verticalResolution: number | null + isInterlaced: boolean | null +} { + if (!quality) return { verticalResolution: null, isInterlaced: null } + const [, verticalResolutionString] = quality.match(/^(\d+)/) || [null, undefined] + const isInterlaced = /i$/i.test(quality) + let verticalResolution = 0 + if (verticalResolutionString) verticalResolution = parseInt(verticalResolutionString) + + return { verticalResolution, isInterlaced } +} diff --git a/scripts/types/channel.d.ts b/scripts/types/channel.d.ts new file mode 100644 index 00000000..d718c6b4 --- /dev/null +++ b/scripts/types/channel.d.ts @@ -0,0 +1,28 @@ +import { Collection } from '@freearhey/core' + +export type ChannelData = { + id: string + name: string + alt_names: string[] + network: string + owners: Collection + country: string + subdivision: string + city: string + categories: Collection + is_nsfw: boolean + launched: string + closed: string + replaced_by: string + website: string + logo: string +} + +export type ChannelSearchableData = { + id: string + name: string + altNames: string[] + guideNames: string[] + streamNames: string[] + feedFullNames: string[] +} diff --git a/scripts/types/dataLoader.d.ts b/scripts/types/dataLoader.d.ts new file mode 100644 index 00000000..41f21a96 --- /dev/null +++ b/scripts/types/dataLoader.d.ts @@ -0,0 +1,19 @@ +import { Storage } from '@freearhey/core' + +export type DataLoaderProps = { + storage: Storage +} + +export type DataLoaderData = { + countries: object | object[] + regions: object | object[] + subdivisions: object | object[] + languages: object | object[] + categories: object | object[] + blocklist: object | object[] + channels: object | object[] + feeds: object | object[] + timezones: object | object[] + guides: object | object[] + streams: object | object[] +} diff --git a/scripts/types/dataProcessor.d.ts b/scripts/types/dataProcessor.d.ts new file mode 100644 index 00000000..e99fb47e --- /dev/null +++ b/scripts/types/dataProcessor.d.ts @@ -0,0 +1,12 @@ +import { Collection, Dictionary } from '@freearhey/core' + +export type DataProcessorData = { + feedsGroupedByChannelId: Dictionary + guidesGroupedByStreamId: Dictionary + streamsGroupedById: Dictionary + channelsKeyById: Dictionary + channels: Collection + streams: Collection + guides: Collection + feeds: Collection +} diff --git a/scripts/types/feed.d.ts b/scripts/types/feed.d.ts new file mode 100644 index 00000000..00663a1b --- /dev/null +++ b/scripts/types/feed.d.ts @@ -0,0 +1,12 @@ +import { Collection } from '@freearhey/core' + +export type FeedData = { + channel: string + id: string + name: string + is_main: boolean + broadcast_area: Collection + languages: Collection + timezones: Collection + video_format: string +} diff --git a/scripts/types/guide.d.ts b/scripts/types/guide.d.ts new file mode 100644 index 00000000..61ff6233 --- /dev/null +++ b/scripts/types/guide.d.ts @@ -0,0 +1,8 @@ +export type GuideData = { + channel: string + feed: string + site: string + site_id: string + site_name: string + lang: string +} diff --git a/scripts/types/stream.d.ts b/scripts/types/stream.d.ts new file mode 100644 index 00000000..adae13cf --- /dev/null +++ b/scripts/types/stream.d.ts @@ -0,0 +1,10 @@ +export type StreamData = { + channel: string | null + feed: string | null + name?: string + url: string + referrer: string | null + user_agent: string | null + quality: string | null + label: string | null +} From 22dc9a06d1a10215e82ca6dea4f66daed6b2cf92 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Sat, 19 Apr 2025 02:06:33 +0300 Subject: [PATCH 5/6] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7b997b56..29050ffa 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ Options: -c, --channels Path to *.channels.xml file (required if the "--site" attribute is not specified) -o, --output Path to output file (default: "guide.xml") - -l, --lang Allows to limit the download to channels in the specified language only (ISO 639-1 code) + -l, --lang Allows you to restrict downloading to channels in specified languages only (example: "en,id") -t, --timeout Timeout for each request in milliseconds (default: 0) -d, --delay Delay between request in milliseconds (default: 0) -x, --proxy Use the specified proxy (example: "socks5://username:password@127.0.0.1:1234") From 11cab21cfcff7534e36cedaddc5a5f77620642d4 Mon Sep 17 00:00:00 2001 From: freearhey <7253922+freearhey@users.noreply.github.com> Date: Sat, 19 Apr 2025 02:09:05 +0300 Subject: [PATCH 6/6] Update CONTRIBUTING.md --- CONTRIBUTING.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3ec1c282..96797d64 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -391,9 +391,9 @@ npm run channels:edit path/to/channels.xml This way, you can map channels by simply selecting the proper ID from the list: ```sh -? Select xmltv_id for "BBC One" (bbc1): (Use arrow keys) -❯ BBC One (BBC1, BBC Television, BBC Television Service) | BBCOne.uk - BBC One HD | BBCOneHD.uk +? Select channel ID for "BBC One" (bbc1): (Use arrow keys) +❯ BBCOne.uk (BBC One, BBC1, BBC Television, BBC Television Service) + BBCOneHD.uk (BBC One HD) Type... Skip ```