Skip to content

Instantly share code, notes, and snippets.

@jonathanolson
Created May 7, 2024 06:40
Show Gist options
  • Save jonathanolson/13813e2481f5e3bc860ab4e4f871c39a to your computer and use it in GitHub Desktop.
Save jonathanolson/13813e2481f5e3bc860ab4e4f871c39a to your computer and use it in GitHub Desktop.
Locale3 working copy changes snapshot
Subject: [PATCH] working copy snapshot (DO NOT COMMIT ZOMG)
---
Index: joist/js/i18n/isLeftToRightProperty.ts
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/joist/js/i18n/isLeftToRightProperty.ts b/joist/js/i18n/isLeftToRightProperty.ts
--- a/joist/js/i18n/isLeftToRightProperty.ts (revision b94d701c92cab77cd4cf554f333a7e0701c5b01b)
+++ b/joist/js/i18n/isLeftToRightProperty.ts (date 1715059840171)
@@ -8,12 +8,11 @@
*/
import DerivedProperty from '../../../axon/js/DerivedProperty.js';
-import localeInfoModule from '../../../chipper/js/data/localeInfoModule.js';
import joist from '../joist.js';
import localeProperty from './localeProperty.js';
const isLeftToRightProperty = new DerivedProperty( [ localeProperty ], locale => {
- return localeInfoModule[ locale ].direction === 'ltr';
+ return phet.chipper.localeData[ locale ].direction === 'ltr';
} );
joist.register( 'isLeftToRightProperty', isLeftToRightProperty );
Index: joist/js/i18n/localeProperty.ts
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/joist/js/i18n/localeProperty.ts b/joist/js/i18n/localeProperty.ts
--- a/joist/js/i18n/localeProperty.ts (revision b94d701c92cab77cd4cf554f333a7e0701c5b01b)
+++ b/joist/js/i18n/localeProperty.ts (date 1715060351147)
@@ -16,6 +16,7 @@
const FALLBACK_LOCALE = 'en';
+// TODO: See if there's a way we don't have to rely on the legacy file
export type Locale = keyof typeof localeInfoModule;
// All available locales for the runtime
Index: chipper/js/scripts/generateDevelopmentStrings.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/chipper/js/scripts/generateDevelopmentStrings.js b/chipper/js/scripts/generateDevelopmentStrings.js
--- a/chipper/js/scripts/generateDevelopmentStrings.js (revision 143ff65960670a192c57862abebda6cda5a3a201)
+++ b/chipper/js/scripts/generateDevelopmentStrings.js (date 1715058764212)
@@ -52,6 +52,8 @@
stringFiles.push( englishStringPath );
}
+ const localeData = JSON.parse( fs.readFileSync( '../babel/localeData.json', 'utf8' ) );
+
// Do not generate a file if no translations were found.
if ( stringFiles.length > 0 ) {
@@ -63,6 +65,11 @@
const localeMatches = join.substring( join.lastIndexOf( '/' ) ).match( localeRegex );
const locale = localeMatches[ 0 ];
+ if ( !localeData[ locale ] ) {
+ console.log( '[WARNING] Locale not found in localeData.json: ' + locale );
+ continue;
+ }
+
// Get the contents of the string file.
const stringFileContents = fs.readFileSync( stringFile, 'utf8' );
Index: babel/_generated_development_strings/scenery-phet_all.json
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/babel/_generated_development_strings/scenery-phet_all.json b/babel/_generated_development_strings/scenery-phet_all.json
--- a/babel/_generated_development_strings/scenery-phet_all.json (revision 514ca6eaee1b282900e0965a1a13f5e4924e7b27)
+++ b/babel/_generated_development_strings/scenery-phet_all.json (date 1715058933271)
@@ -15212,7 +15212,7 @@
"value": "Ieși din fereastră"
},
"speed.fast": {
- "value": "Repede"
+ "value": "Rapid"
},
"key.fn": {
"value": "Fn"
@@ -22459,7 +22459,7 @@
"value": "Choose a {{thingTitle}}"
},
"keyboardHelpDialog.comboBox.headingString": {
- "value": "Pop Up Menu"
+ "value": "Change Choice"
},
"keyboardHelpDialog.comboBox.popUpListPattern": {
"value": "1. Show {{thingPlural}}"
Index: joist/js/i18n/fallbackLocalesProperty.ts
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/joist/js/i18n/fallbackLocalesProperty.ts b/joist/js/i18n/fallbackLocalesProperty.ts
--- a/joist/js/i18n/fallbackLocalesProperty.ts (revision b94d701c92cab77cd4cf554f333a7e0701c5b01b)
+++ b/joist/js/i18n/fallbackLocalesProperty.ts (date 1715059840179)
@@ -8,7 +8,6 @@
*/
import Property from '../../../axon/js/Property.js';
-import localeInfoModule from '../../../chipper/js/data/localeInfoModule.js';
import Tandem from '../../../tandem/js/Tandem.js';
import ArrayIO from '../../../tandem/js/types/ArrayIO.js';
import StringIO from '../../../tandem/js/types/StringIO.js';
@@ -22,7 +21,7 @@
'guaranteed full coverage of all translated keys.',
phetioFeatured: true,
isValidValue: locales => {
- return _.every( locales, locale => !!localeInfoModule[ locale ] );
+ return _.every( locales, locale => !!phet.chipper.localeData[ locale ] );
},
phetioValueType: ArrayIO( StringIO )
} );
Index: babel/_generated_development_strings/chains_all.json
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/babel/_generated_development_strings/chains_all.json b/babel/_generated_development_strings/chains_all.json
--- a/babel/_generated_development_strings/chains_all.json (revision 514ca6eaee1b282900e0965a1a13f5e4924e7b27)
+++ b/babel/_generated_development_strings/chains_all.json (date 1715058813107)
@@ -33,11 +33,6 @@
"value": "السلاسل"
}
},
- "cu": {
- "multilineString": {
- "value": "Give him a break already!"
- }
- },
"da": {
"chains.title": {
"value": "Kæder"
Index: babel/_generated_development_strings/joist_all.json
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/babel/_generated_development_strings/joist_all.json b/babel/_generated_development_strings/joist_all.json
--- a/babel/_generated_development_strings/joist_all.json (revision 514ca6eaee1b282900e0965a1a13f5e4924e7b27)
+++ b/babel/_generated_development_strings/joist_all.json (date 1715058882536)
@@ -14197,6 +14197,27 @@
},
"preferences.tabs.localization.regionAndCulture.description": {
"value": "Selectați reprezentarea persoanelor, a locurilor sau a obiectelor din simulare. Imaginile nu sunt concepute pentru a reprezenta întreaga diversitate a unei regiuni sau culturi."
+ },
+ "preferences.tabs.localization.regionAndCulture.africa": {
+ "value": "Africa"
+ },
+ "preferences.tabs.localization.regionAndCulture.africaModest": {
+ "value": "Africa (Modest)"
+ },
+ "preferences.tabs.localization.regionAndCulture.asia": {
+ "value": "Asia"
+ },
+ "preferences.tabs.localization.regionAndCulture.latinAmerica": {
+ "value": "Latin America"
+ },
+ "preferences.tabs.localization.regionAndCulture.oceania": {
+ "value": "Oceania"
+ },
+ "preferences.tabs.localization.regionAndCulture.random": {
+ "value": "Aleatoriu"
+ },
+ "preferences.tabs.localization.regionAndCulture.unitedStatesOfAmerica": {
+ "value": "Statele Unite ale Americii"
}
},
"ru": {
@@ -14771,110 +14792,6 @@
"value": "Čuojat ligge jienaid mat soitet ávkin muhtin ohppide."
}
},
- "sh": {
- "credits.graphicArts": {
- "value": "Графика: {0}"
- },
- "credits.leadDesign": {
- "value": "Дизајн: {0}"
- },
- "credits.qualityAssurance": {
- "value": "Осигурање квалитета: {0}"
- },
- "credits.softwareDevelopment": {
- "value": "Развој софтвера: {0}"
- },
- "credits.team": {
- "value": "Тим: {0}"
- },
- "credits.thanks": {
- "value": "Хвала"
- },
- "credits.title": {
- "value": "Заслуге"
- },
- "credits.translation": {
- "value": "Превод"
- },
- "done": {
- "value": "Урађено"
- },
- "menuItem.about": {
- "value": "Основно о ..."
- },
- "menuItem.fullscreen": {
- "value": "Цео екран"
- },
- "menuItem.getUpdate": {
- "value": "Провери ажурирања..."
- },
- "menuItem.mailInputEventsLog": {
- "value": "Списак улазних промена"
- },
- "menuItem.options": {
- "value": "Опције...,"
- },
- "menuItem.outputInputEventsLog": {
- "value": "Излазне промене"
- },
- "menuItem.phetWebsite": {
- "value": " PhETвебсајт..."
- },
- "menuItem.reportAProblem": {
- "value": "Извести о проблему..."
- },
- "menuItem.screenshot": {
- "value": "Снимак екрана"
- },
- "menuItem.submitInputEventsLog": {
- "value": "Извести о променама"
- },
- "options.title": {
- "value": "Опције"
- },
- "showPointers": {
- "value": "Покажи ознаке"
- },
- "termsPrivacyAndLicensing": {
- "value": "Услови, приватност и лиценцирање"
- },
- "thirdParty.credits.link": {
- "value": "Заслуге треће стране"
- },
- "title.settings": {
- "value": "Подешавања"
- },
- "translation.credits.link": {
- "value": "Превео Владан Ал."
- },
- "updates.checking": {
- "value": "Провера ажурирања..."
- },
- "updates.getUpdate": {
- "value": "Преузми ажурирање..."
- },
- "updates.newVersionAvailable": {
- "value": "Нова верзија овде: {0}."
- },
- "updates.noThanks": {
- "value": "Не хвала!"
- },
- "updates.offline": {
- "value": "Не могу да проверим ажурирања."
- },
- "updates.outOfDate": {
- "value": "Доступна нова верзија"
- },
- "updates.upToDate": {
- "value": "Ова симулација је ажурирана"
- },
- "updates.yourCurrentVersion": {
- "value": "Ваша тренутна верзија{0}"
- },
- "versionPattern": {
- "value": "верзија{0}"
- }
- },
"si": {
"menuItem.about": {
"value": "පිළිබඳ…"
Index: chipper/templates/chipper-initialization.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/chipper/templates/chipper-initialization.js b/chipper/templates/chipper-initialization.js
--- a/chipper/templates/chipper-initialization.js (revision 143ff65960670a192c57862abebda6cda5a3a201)
+++ b/chipper/templates/chipper-initialization.js (date 1715056821580)
@@ -3,6 +3,7 @@
window.phet.chipper.buildTimestamp = '{{PHET_BUILD_TIMESTAMP}}';
window.phet.chipper.brand = '{{PHET_BRAND}}';
window.phet.chipper.locale = '{{PHET_LOCALE}}';
+window.phet.chipper.localeData = {{PHET_LOCALE_DATA}};
window.phet.chipper.dependencies = {{PHET_DEPENDENCIES}};
{{PHET_BEFORE_STRINGS}}window.phet.chipper.strings = {{PHET_STRINGS}};{{PHET_AFTER_STRINGS}}
window.phet.chipper.stringMetadata = {{PHET_STRING_METADATA}};
Index: chipper/data/localeInfo.json
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/chipper/data/localeInfo.json b/chipper/data/localeInfo.json
--- a/chipper/data/localeInfo.json (revision 143ff65960670a192c57862abebda6cda5a3a201)
+++ b/chipper/data/localeInfo.json (date 1714791298365)
@@ -10,21 +10,56 @@
"localizedName": "Abkhazian",
"direction": "ltr"
},
- "ae": {
- "name": "Avestan",
- "localizedName": "Avestan",
+ "ac": {
+ "name": "Achinese",
+ "localizedName": "بهسا اچيه",
"direction": "rtl"
},
+ "ad": {
+ "name": "Adyghe",
+ "localizedName": "Адыгабзэ",
+ "direction": "ltr"
+ },
"af": {
"name": "Afrikaans",
"localizedName": "Afrikaans",
"direction": "ltr"
},
+ "ag": {
+ "name": "Angika",
+ "localizedName": "अंगिका",
+ "direction": "ltr"
+ },
+ "ah": {
+ "name": "Masai",
+ "localizedName": "ɔl Maa",
+ "direction": "ltr"
+ },
+ "ai": {
+ "name": "Ainu",
+ "localizedName": "アイヌ・イタㇰ Ainu-itak",
+ "direction": "ltr"
+ },
+ "aj": {
+ "name": "Nogai",
+ "localizedName": "Ногай тили",
+ "direction": "ltr"
+ },
"ak": {
"name": "Akan",
"localizedName": "Akan",
"direction": "ltr"
},
+ "ak_FT": {
+ "name": "Fanti",
+ "localizedName": "Mfantse",
+ "direction": "ltr"
+ },
+ "al": {
+ "name": "Aleut",
+ "localizedName": "Уна́ӈам тунуу́",
+ "direction": "ltr"
+ },
"am": {
"name": "Amharic",
"localizedName": "Amharic",
@@ -35,31 +70,171 @@
"localizedName": "Aragonese",
"direction": "ltr"
},
+ "ao": {
+ "name": "Makasar",
+ "localizedName": "Basa Mangkasara' / ᨅᨔ ᨆᨀᨔᨑ",
+ "direction": "ltr"
+ },
+ "ap": {
+ "name": "Arapaho",
+ "localizedName": "Hinónoʼeitíít",
+ "direction": "ltr"
+ },
"ar": {
"name": "Arabic",
"localizedName": "العربية",
"direction": "rtl"
},
+ "ar_AE": {
+ "name": "Arabic (U.A.E.)",
+ "localizedName": "العربية (الإمارات العربية المتحدة)",
+ "direction": "rtl"
+ },
+ "ar_BH": {
+ "name": "Arabic (Bahrain)",
+ "localizedName": "العربية (البحرين)",
+ "direction": "rtl"
+ },
+ "ar_DJ": {
+ "name": "Arabic (Djibouti)",
+ "localizedName": "العربية (جيبوتي)",
+ "direction": "rtl"
+ },
+ "ar_DZ": {
+ "name": "Arabic (Algeria)",
+ "localizedName": "العربية (الجزائر)",
+ "direction": "rtl"
+ },
+ "ar_EG": {
+ "name": "Arabic (Egypt)",
+ "localizedName": "العربية (مصر)",
+ "direction": "rtl"
+ },
+ "ar_EH": {
+ "name": "Arabic (Sahrawi Republic)",
+ "localizedName": "العربية (الجمهورية الصحراوية)",
+ "direction": "rtl"
+ },
+ "ar_ER": {
+ "name": "Arabic (Eritrea)",
+ "localizedName": "العربية (إريتريا)",
+ "direction": "rtl"
+ },
+ "ar_IQ": {
+ "name": "Arabic (Iraq)",
+ "localizedName": "العربية (العراق)",
+ "direction": "rtl"
+ },
+ "ar_JO": {
+ "name": "Arabic (Jordan)",
+ "localizedName": "العربية (الأردن)",
+ "direction": "rtl"
+ },
+ "ar_KM": {
+ "name": "Arabic (Comoros)",
+ "localizedName": "العربية (جزر القمر)",
+ "direction": "rtl"
+ },
+ "ar_KW": {
+ "name": "Arabic (Kuwait)",
+ "localizedName": "العربية (الكويت)",
+ "direction": "rtl"
+ },
+ "ar_LB": {
+ "name": "Arabic (Lebanon)",
+ "localizedName": "العربية (لبنان)",
+ "direction": "rtl"
+ },
+ "ar_LY": {
+ "name": "Arabic (Libya)",
+ "localizedName": "العربية (ليبيا)",
+ "direction": "rtl"
+ },
"ar_MA": {
"name": "Arabic, Morocco",
"localizedName": "العربية (المغرب)",
"direction": "rtl"
},
+ "ar_MR": {
+ "name": "Arabic (Mauritania)",
+ "localizedName": "العربية (موريتانيا)",
+ "direction": "rtl"
+ },
+ "ar_OM": {
+ "name": "Arabic (Oman)",
+ "localizedName": "العربية (عُمان)",
+ "direction": "rtl"
+ },
+ "ar_QA": {
+ "name": "Arabic (Qatar)",
+ "localizedName": "العربية (قطر)",
+ "direction": "rtl"
+ },
"ar_SA": {
"name": "Arabic, Saudi Arabia",
"localizedName": "العربية (السعودية)",
"direction": "rtl"
+ },
+ "ar_SD": {
+ "name": "Arabic (Sudan)",
+ "localizedName": "العربية (السودان)",
+ "direction": "rtl"
+ },
+ "ar_SO": {
+ "name": "Arabic (Somalia)",
+ "localizedName": "العربية (الصومال)",
+ "direction": "rtl"
+ },
+ "ar_SY": {
+ "name": "Arabic (Syria)",
+ "localizedName": "العربية (سوريا)",
+ "direction": "rtl"
+ },
+ "ar_TD": {
+ "name": "Arabic (Chad)",
+ "localizedName": "العربية (تشاد)",
+ "direction": "rtl"
+ },
+ "ar_TN": {
+ "name": "Arabic (Tunisia)",
+ "localizedName": "العربية (تونس)",
+ "direction": "rtl"
+ },
+ "ar_YE": {
+ "name": "Arabic (Yemen)",
+ "localizedName": "العربية (اليمن)",
+ "direction": "rtl"
},
"as": {
"name": "Assamese",
"localizedName": "Assamese",
"direction": "ltr"
},
+ "at": {
+ "name": "Asturian",
+ "localizedName": "Asturianu",
+ "direction": "ltr"
+ },
+ "au": {
+ "name": "Awadhi",
+ "localizedName": "अवधी",
+ "direction": "ltr"
+ },
"av": {
"name": "Avaric",
"localizedName": "Avaric",
"direction": "ltr"
},
+ "aw": {
+ "name": "Arawak",
+ "localizedName": "Lokono",
+ "direction": "ltr"
+ },
+ "ax": {
+ "name": "Maithili",
+ "localizedName": "मैथिली",
+ "direction": "ltr"
+ },
"ay": {
"name": "Aymara",
"localizedName": "Aymara",
@@ -74,6 +249,21 @@
"name": "Bashkir",
"localizedName": "Bashkir",
"direction": "ltr"
+ },
+ "bb": {
+ "name": "Bemba",
+ "localizedName": "Chibemba",
+ "direction": "ltr"
+ },
+ "bc": {
+ "name": "Baluchi",
+ "localizedName": "بلۏچی",
+ "direction": "rtl"
+ },
+ "bd": {
+ "name": "Kimbundu",
+ "localizedName": "North Mbundu",
+ "direction": "ltr"
},
"be": {
"name": "Belarusian",
@@ -85,15 +275,25 @@
"localizedName": "български",
"direction": "ltr"
},
- "bh": {
- "name": "Bihari",
- "localizedName": "Bihari",
- "direction": "ltr"
- },
"bi": {
"name": "Bislama",
"localizedName": "Bislama",
"direction": "ltr"
+ },
+ "bj": {
+ "name": "Beja",
+ "localizedName": "Bidhaawyeet",
+ "direction": "ltr"
+ },
+ "bk": {
+ "name": "Bikol",
+ "localizedName": "Bikol",
+ "direction": "ltr"
+ },
+ "bl": {
+ "name": "Balinese",
+ "localizedName": "ᬪᬵᬱᬩᬮᬶ",
+ "direction": "ltr"
},
"bm": {
"name": "Bambara",
@@ -109,6 +309,16 @@
"name": "Tibetan",
"localizedName": "Tibetan",
"direction": "ltr"
+ },
+ "bp": {
+ "name": "Bhojpuri",
+ "localizedName": "भोजपुरी",
+ "direction": "ltr"
+ },
+ "bq": {
+ "name": "Buginese",
+ "localizedName": "ᨅᨔ ᨕᨘᨁᨗ",
+ "direction": "ltr"
},
"br": {
"name": "Breton",
@@ -120,11 +330,46 @@
"localizedName": "Bosnian",
"direction": "ltr"
},
+ "bt": {
+ "name": "Minangkabau",
+ "localizedName": "Baso Minang",
+ "direction": "ltr"
+ },
+ "bu": {
+ "name": "Buriat",
+ "localizedName": "буряад хэлэн",
+ "direction": "ltr"
+ },
+ "bx": {
+ "name": "Bontok",
+ "localizedName": "Finallig",
+ "direction": "rtl"
+ },
+ "by": {
+ "name": "Blin",
+ "localizedName": "ብሊና",
+ "direction": "ltr"
+ },
"ca": {
"name": "Catalan",
"localizedName": "català",
"direction": "ltr"
},
+ "cb": {
+ "name": "Cebuano",
+ "localizedName": "Sinugbuanong Binisayâ",
+ "direction": "ltr"
+ },
+ "cc": {
+ "name": "Chuukese",
+ "localizedName": "Trukese",
+ "direction": "ltr"
+ },
+ "cd": {
+ "name": "Caddo",
+ "localizedName": "Hasí:nay",
+ "direction": "ltr"
+ },
"ce": {
"name": "Chechen",
"localizedName": "Chechen",
@@ -135,11 +380,51 @@
"localizedName": "Chamorro",
"direction": "ltr"
},
+ "ci": {
+ "name": "Sicilian",
+ "localizedName": "Sicilianu",
+ "direction": "ltr"
+ },
+ "cj": {
+ "name": "Cheyenne",
+ "localizedName": "Tsėhésenėstsestȯtse",
+ "direction": "ltr"
+ },
+ "ck": {
+ "name": "Cherokee",
+ "localizedName": "ᏣᎳᎩ ᎦᏬᏂᎯᏍᏗ",
+ "direction": "ltr"
+ },
+ "cl": {
+ "name": "Lunda",
+ "localizedName": "Chilunda",
+ "direction": "ltr"
+ },
+ "cm": {
+ "name": "Mari",
+ "localizedName": "марий йылме",
+ "direction": "ltr"
+ },
+ "cn": {
+ "name": "Chinook jargon",
+ "localizedName": "chinuk wawa",
+ "direction": "ltr"
+ },
"co": {
"name": "Corsican",
"localizedName": "Corsican",
"direction": "ltr"
},
+ "cp": {
+ "name": "Chipewyan",
+ "localizedName": "ᑌᓀᓱᒼᕄᓀ (Dënesųłiné)",
+ "direction": "ltr"
+ },
+ "cq": {
+ "name": "kaqchikel",
+ "localizedName": "Kaqchikel Chʼabʼäl",
+ "direction": "ltr"
+ },
"cr": {
"name": "Cree",
"localizedName": "Cree",
@@ -150,9 +435,9 @@
"localizedName": "čeština",
"direction": "ltr"
},
- "cu": {
- "name": "Church Slavic",
- "localizedName": "Church Slavic",
+ "ct": {
+ "name": "Crimean Tatar",
+ "localizedName": "Къырымтатарджа",
"direction": "ltr"
},
"cv": {
@@ -160,59 +445,339 @@
"localizedName": "Chuvash",
"direction": "ltr"
},
+ "cw": {
+ "name": "Choctaw",
+ "localizedName": "Chahta'",
+ "direction": "ltr"
+ },
"cy": {
"name": "Welsh",
"localizedName": "Welsh",
"direction": "ltr"
},
+ "cz": {
+ "name": "Chocho",
+ "localizedName": "Ngiwa",
+ "direction": "ltr"
+ },
"da": {
"name": "Danish",
"localizedName": "Dansk",
"direction": "ltr"
},
+ "db": {
+ "name": "Dogrib",
+ "localizedName": "Tlicho",
+ "direction": "ltr"
+ },
"de": {
"name": "German",
"localizedName": "Deutsch",
"direction": "ltr"
},
+ "de_AT": {
+ "name": "German (Austria)",
+ "localizedName": "Deutsch (Österreich)",
+ "direction": "rtl"
+ },
+ "de_CH": {
+ "name": "German (Switzerland)",
+ "localizedName": "Deutsch (Schweiz)",
+ "direction": "rtl"
+ },
+ "de_LI": {
+ "name": "German (Liechtenstein)",
+ "localizedName": "Deutsch (Liechtenstein)",
+ "direction": "rtl"
+ },
+ "de_LU": {
+ "name": "German (Luxembourg)",
+ "localizedName": "Deutsch (Luxemburg)",
+ "direction": "rtl"
+ },
+ "dg": {
+ "name": "Adangme",
+ "localizedName": "Dangme",
+ "direction": "ltr"
+ },
+ "di": {
+ "name": "Dogri",
+ "localizedName": "डोगरी; ڈوگرى",
+ "direction": "rtl"
+ },
+ "dk": {
+ "name": "Dakota",
+ "localizedName": "Dakhótiyapi",
+ "direction": "ltr"
+ },
+ "dl": {
+ "name": "Delaware",
+ "localizedName": "Lënapei èlixsuwakàn",
+ "direction": "ltr"
+ },
+ "dm": {
+ "name": "Sidamo",
+ "localizedName": "Sidaamu Afoo",
+ "direction": "ltr"
+ },
+ "dn": {
+ "name": "Dinka",
+ "localizedName": "Thuɔŋjäŋ",
+ "direction": "ltr"
+ },
+ "dr": {
+ "name": "Dargwa",
+ "localizedName": "дарган мез",
+ "direction": "ltr"
+ },
+ "ds": {
+ "name": "Lower Sorbian",
+ "localizedName": "Dolnoserbski",
+ "direction": "ltr"
+ },
+ "du": {
+ "name": "Duala",
+ "localizedName": "Duālā",
+ "direction": "ltr"
+ },
"dv": {
"name": "Divehi",
"localizedName": "Divehi",
"direction": "ltr"
+ },
+ "dw": {
+ "name": "Sandawe",
+ "localizedName": "Sandaweeki",
+ "direction": "ltr"
+ },
+ "dy": {
+ "name": "Dyula",
+ "localizedName": "Julakan",
+ "direction": "ltr"
},
"dz": {
"name": "Dzongkha",
"localizedName": "Dzongkha",
"direction": "ltr"
+ },
+ "ed": {
+ "name": "Bini",
+ "localizedName": "Ẹ̀dó",
+ "direction": "ltr"
},
"ee": {
"name": "Ewe",
"localizedName": "Ewe",
"direction": "ltr"
},
+ "ef": {
+ "name": "Efik",
+ "localizedName": "Usem Efịk",
+ "direction": "ltr"
+ },
+ "ek": {
+ "name": "Ekajuk",
+ "localizedName": "Ekajuk",
+ "direction": "ltr"
+ },
"el": {
"name": "Greek",
"localizedName": "Ελληνικά",
"direction": "ltr"
},
+ "em": {
+ "name": "Slave (Athapascan)",
+ "localizedName": "Dene K'e",
+ "direction": "ltr"
+ },
"en": {
"name": "English",
"localizedName": "English",
"direction": "ltr"
+ },
+ "en_AU": {
+ "name": "English (Australia)",
+ "localizedName": "English (Australia)",
+ "direction": "ltr"
+ },
+ "en_BI": {
+ "name": "English (Burundi)",
+ "localizedName": "English (Burundi)",
+ "direction": "ltr"
+ },
+ "en_BW": {
+ "name": "English (Botswana)",
+ "localizedName": "English (Botswana)",
+ "direction": "ltr"
+ },
+ "en_BZ": {
+ "name": "English (Belize)",
+ "localizedName": "English (Belize)",
+ "direction": "ltr"
},
"en_CA": {
"name": "English, Canada",
"localizedName": "English (Canada)",
"direction": "ltr"
},
+ "en_CB": {
+ "name": "English (Caribbean)",
+ "localizedName": "English (Caribbean)",
+ "direction": "ltr"
+ },
+ "en_CM": {
+ "name": "English (Cameroon)",
+ "localizedName": "English (Cameroon)",
+ "direction": "ltr"
+ },
+ "en_ER": {
+ "name": "English (Eritrea)",
+ "localizedName": "English (Eritrea)",
+ "direction": "ltr"
+ },
+ "en_ET": {
+ "name": "English (Ethiopia)",
+ "localizedName": "English (Ethiopia)",
+ "direction": "ltr"
+ },
"en_GB": {
"name": "English, United Kingdom",
"localizedName": "English (United Kingdom)",
"direction": "ltr"
},
- "eo": {
- "name": "Esperanto",
- "localizedName": "Esperanto",
+ "en_GH": {
+ "name": "English (Ghana)",
+ "localizedName": "English (Ghana)",
+ "direction": "ltr"
+ },
+ "en_GM": {
+ "name": "English (Gambia)",
+ "localizedName": "English (Gambia)",
+ "direction": "ltr"
+ },
+ "en_IE": {
+ "name": "English (Ireland)",
+ "localizedName": "English (Ireland)",
+ "direction": "ltr"
+ },
+ "en_IN": {
+ "name": "English (India)",
+ "localizedName": "English (India)",
+ "direction": "ltr"
+ },
+ "en_JM": {
+ "name": "English (Jamaica)",
+ "localizedName": "English (Jamaica)",
+ "direction": "ltr"
+ },
+ "en_KE": {
+ "name": "English (Kenya)",
+ "localizedName": "English (Kenya)",
+ "direction": "ltr"
+ },
+ "en_LR": {
+ "name": "English (Liberia)",
+ "localizedName": "English (Liberia)",
+ "direction": "ltr"
+ },
+ "en_LS": {
+ "name": "English (Lesotho)",
+ "localizedName": "English (Lesotho)",
+ "direction": "ltr"
+ },
+ "en_MU": {
+ "name": "English (Mauritius)",
+ "localizedName": "English (Mauritius)",
+ "direction": "ltr"
+ },
+ "en_MW": {
+ "name": "English (Malawi)",
+ "localizedName": "English (Malawi)",
+ "direction": "ltr"
+ },
+ "en_MY": {
+ "name": "English (Malaysia)",
+ "localizedName": "English (Malaysia)",
+ "direction": "ltr"
+ },
+ "en_NA": {
+ "name": "English (Namibia)",
+ "localizedName": "English (Namibia)",
+ "direction": "ltr"
+ },
+ "en_NG": {
+ "name": "English (Nigeria)",
+ "localizedName": "English (Nigeria)",
+ "direction": "ltr"
+ },
+ "en_NZ": {
+ "name": "English (New Zealand)",
+ "localizedName": "English (New Zealand)",
+ "direction": "ltr"
+ },
+ "en_PH": {
+ "name": "English (Republic of the Philippines)",
+ "localizedName": "English (Republic of the Philippines)",
+ "direction": "ltr"
+ },
+ "en_RW": {
+ "name": "English (Rwanda)",
+ "localizedName": "English (Rwanda)",
+ "direction": "ltr"
+ },
+ "en_SC": {
+ "name": "English (Seychelles)",
+ "localizedName": "English (Seychelles)",
+ "direction": "ltr"
+ },
+ "en_SL": {
+ "name": "English (Sierra Leone)",
+ "localizedName": "English (Sierra Leone)",
+ "direction": "ltr"
+ },
+ "en_SS": {
+ "name": "English (South Sudan)",
+ "localizedName": "English (South Sudan)",
+ "direction": "ltr"
+ },
+ "en_SZ": {
+ "name": "English (Eswatini)",
+ "localizedName": "English (Eswatini)",
+ "direction": "ltr"
+ },
+ "en_TT": {
+ "name": "English (Trinidad and Tobago)",
+ "localizedName": "English (Trinidad and Tobago)",
+ "direction": "ltr"
+ },
+ "en_TZ": {
+ "name": "English (Tanzania)",
+ "localizedName": "English (Tanzania)",
+ "direction": "ltr"
+ },
+ "en_UG": {
+ "name": "English (Uganda)",
+ "localizedName": "English (Uganda)",
+ "direction": "ltr"
+ },
+ "en_ZA": {
+ "name": "English (South Africa)",
+ "localizedName": "English (South Africa)",
+ "direction": "ltr"
+ },
+ "en_ZM": {
+ "name": "English (Zambia)",
+ "localizedName": "English (Zambia)",
+ "direction": "ltr"
+ },
+ "en_ZW": {
+ "name": "English (Zimbabwe)",
+ "localizedName": "English (Zimbabwe)",
+ "direction": "ltr"
+ },
+ "er": {
+ "name": "Serer",
+ "localizedName": "Seereer",
"direction": "ltr"
},
"es": {
@@ -220,6 +785,21 @@
"localizedName": "español",
"direction": "ltr"
},
+ "es_AR": {
+ "name": "Spanish (Argentina)",
+ "localizedName": "español (Argentina)",
+ "direction": "rtl"
+ },
+ "es_BO": {
+ "name": "Spanish (Bolivia)",
+ "localizedName": "español (Bolivia)",
+ "direction": "rtl"
+ },
+ "es_CL": {
+ "name": "Spanish (Chile)",
+ "localizedName": "español (Chile)",
+ "direction": "rtl"
+ },
"es_CO": {
"name": "Spanish, Colombia",
"localizedName": "español (Colombia)",
@@ -230,21 +810,86 @@
"localizedName": "español (Costa Rica)",
"direction": "ltr"
},
+ "es_DO": {
+ "name": "Spanish (Dominican Republic)",
+ "localizedName": "español (Dominican Republic)",
+ "direction": "rtl"
+ },
+ "es_EC": {
+ "name": "Spanish (Ecuador)",
+ "localizedName": "español (Ecuador)",
+ "direction": "rtl"
+ },
"es_ES": {
"name": "Spanish, Spain",
"localizedName": "español (España)",
"direction": "ltr"
},
+ "es_GQ": {
+ "name": "Spanish (Equatorial Guinea)",
+ "localizedName": "español (Equatorial Guinea)",
+ "direction": "rtl"
+ },
+ "es_GT": {
+ "name": "Spanish (Guatemala)",
+ "localizedName": "español (Guatemala)",
+ "direction": "rtl"
+ },
+ "es_HN": {
+ "name": "Spanish (Honduras)",
+ "localizedName": "español (Honduras)",
+ "direction": "rtl"
+ },
"es_MX": {
"name": "Spanish, Mexico",
"localizedName": "español (México)",
"direction": "ltr"
},
+ "es_NI": {
+ "name": "Spanish (Nicaragua)",
+ "localizedName": "español (Nicaragua)",
+ "direction": "rtl"
+ },
+ "es_PA": {
+ "name": "Spanish (Panama)",
+ "localizedName": "español (Panama)",
+ "direction": "rtl"
+ },
"es_PE": {
"name": "Spanish, Peru",
"localizedName": "español (Perú)",
"direction": "ltr"
},
+ "es_PR": {
+ "name": "Spanish (Puerto Rico)",
+ "localizedName": "español (Puerto Rico)",
+ "direction": "rtl"
+ },
+ "es_PY": {
+ "name": "Spanish (Paraguay)",
+ "localizedName": "español (Paraguay)",
+ "direction": "rtl"
+ },
+ "es_SV": {
+ "name": "Spanish (El Salvador)",
+ "localizedName": "español (El Salvador)",
+ "direction": "rtl"
+ },
+ "es_US": {
+ "name": "Spanish (United States)",
+ "localizedName": "español (United States)",
+ "direction": "rtl"
+ },
+ "es_UY": {
+ "name": "Spanish (Uruguay)",
+ "localizedName": "español (Uruguay)",
+ "direction": "rtl"
+ },
+ "es_VE": {
+ "name": "Spanish (Venezuela)",
+ "localizedName": "español (Venezuela)",
+ "direction": "rtl"
+ },
"et": {
"name": "Estonian",
"localizedName": "Eesti",
@@ -255,16 +900,31 @@
"localizedName": "Basque",
"direction": "ltr"
},
+ "ew": {
+ "name": "Ewondo",
+ "localizedName": "Beti",
+ "direction": "ltr"
+ },
"fa": {
"name": "Persian",
"localizedName": "Persian",
"direction": "rtl"
},
+ "fa_DA": {
+ "name": "Persian (Dari)",
+ "localizedName": "Dari",
+ "direction": "rtl"
+ },
"ff": {
"name": "Fulah",
"localizedName": "Fulah",
"direction": "ltr"
},
+ "fg": {
+ "name": "Fon",
+ "localizedName": "Fon gbè",
+ "direction": "ltr"
+ },
"fi": {
"name": "Finnish",
"localizedName": "suomi",
@@ -275,6 +935,16 @@
"localizedName": "Fijian",
"direction": "ltr"
},
+ "fl": {
+ "name": "Filipino",
+ "localizedName": "Wikang Filipino",
+ "direction": "ltr"
+ },
+ "fn": {
+ "name": "Fang",
+ "localizedName": "Pangwe",
+ "direction": "ltr"
+ },
"fo": {
"name": "Faroese",
"localizedName": "Faroese",
@@ -284,10 +954,150 @@
"name": "French",
"localizedName": "français",
"direction": "ltr"
+ },
+ "fr_BE": {
+ "name": "French (Belgium)",
+ "localizedName": "français (Belgium)",
+ "direction": "rtl"
+ },
+ "fr_BF": {
+ "name": "French (Burkina Faso)",
+ "localizedName": "français (Burkina Faso)",
+ "direction": "rtl"
+ },
+ "fr_BI": {
+ "name": "French (Burundi)",
+ "localizedName": "français (Burundi)",
+ "direction": "rtl"
+ },
+ "fr_BJ": {
+ "name": "French (Benin)",
+ "localizedName": "français (Bénin)",
+ "direction": "rtl"
+ },
+ "fr_CA": {
+ "name": "French (Canada)",
+ "localizedName": "français (Canada)",
+ "direction": "rtl"
+ },
+ "fr_CD": {
+ "name": "French (DR Congo)",
+ "localizedName": "français (RD Congo)",
+ "direction": "rtl"
+ },
+ "fr_CF": {
+ "name": "French (Central African Republic)",
+ "localizedName": "français (République centrafricaine)",
+ "direction": "rtl"
+ },
+ "fr_CG": {
+ "name": "French (Congo Republic)",
+ "localizedName": "français (République du Congo)",
+ "direction": "rtl"
+ },
+ "fr_CH": {
+ "name": "French (Switzerland)",
+ "localizedName": "français (Suisse)",
+ "direction": "rtl"
+ },
+ "fr_CI": {
+ "name": "French (Côte d’Ivoire)",
+ "localizedName": "français (Côte d'Ivoire)",
+ "direction": "rtl"
+ },
+ "fr_CM": {
+ "name": "French (Cameroon)",
+ "localizedName": "français (Cameroon)",
+ "direction": "rtl"
+ },
+ "fr_DJ": {
+ "name": "French (Djibouti)",
+ "localizedName": "français (Djibouti)",
+ "direction": "rtl"
+ },
+ "fr_EH": {
+ "name": "French (Sahrawi Republic)",
+ "localizedName": "français (République sahraouie)",
+ "direction": "rtl"
+ },
+ "fr_GA": {
+ "name": "French (Gabon)",
+ "localizedName": "français (Gabon)",
+ "direction": "rtl"
+ },
+ "fr_GN": {
+ "name": "French (Guinea)",
+ "localizedName": "français (Guinée)",
+ "direction": "rtl"
+ },
+ "fr_GQ": {
+ "name": "French (Equatorial Guinea)",
+ "localizedName": "français (Guinée Équatoriale)",
+ "direction": "rtl"
+ },
+ "fr_KM": {
+ "name": "French (Comoros)",
+ "localizedName": "français (Comores)",
+ "direction": "rtl"
+ },
+ "fr_LU": {
+ "name": "French (Luxembourg)",
+ "localizedName": "français (Luxembourg)",
+ "direction": "rtl"
+ },
+ "fr_MC": {
+ "name": "French (Monaco)",
+ "localizedName": "français (Monaco)",
+ "direction": "rtl"
+ },
+ "fr_MG": {
+ "name": "French (Madagascar)",
+ "localizedName": "français (Madagascar)",
+ "direction": "rtl"
+ },
+ "fr_ML": {
+ "name": "French (Mali)",
+ "localizedName": "français (Mali)",
+ "direction": "rtl"
+ },
+ "fr_NE": {
+ "name": "French (Niger)",
+ "localizedName": "français (Niger)",
+ "direction": "rtl"
+ },
+ "fr_RW": {
+ "name": "French (Rwanda)",
+ "localizedName": "français (Rwanda)",
+ "direction": "rtl"
+ },
+ "fr_SC": {
+ "name": "French (Seychelles)",
+ "localizedName": "français (les Seychelles)",
+ "direction": "rtl"
+ },
+ "fr_SN": {
+ "name": "French (Senegal)",
+ "localizedName": "français (Sénégal)",
+ "direction": "rtl"
+ },
+ "fr_TD": {
+ "name": "French (Chad)",
+ "localizedName": "français (Tchad)",
+ "direction": "rtl"
+ },
+ "fr_TG": {
+ "name": "French (Togo)",
+ "localizedName": "français (Togo)",
+ "direction": "rtl"
+ },
+ "fs": {
+ "name": "East Frisian Low Saxon",
+ "localizedName": "Oostfreesk",
+ "direction": "ltr"
},
"fu": {
"name": "Friulian",
- "localizedName": "fu",
+ "localizedName": "furlan",
"direction": "ltr"
},
"fy": {
@@ -300,11 +1110,36 @@
"localizedName": "Gaeilge",
"direction": "ltr"
},
+ "gb": {
+ "name": "Gbaya",
+ "localizedName": "Gbaya–Manza–Ngbaka",
+ "direction": "ltr"
+ },
+ "gc": {
+ "name": "Galibi Carib",
+ "localizedName": "Kari'nja",
+ "direction": "ltr"
+ },
"gd": {
"name": "Scottish Gaelic",
"localizedName": "Scottish Gaelic",
"direction": "ltr"
},
+ "gf": {
+ "name": "Garifuna",
+ "localizedName": "Garifuna",
+ "direction": "ltr"
+ },
+ "gg": {
+ "name": "Ga",
+ "localizedName": "Gã",
+ "direction": "ltr"
+ },
+ "gk": {
+ "name": "Tokelau",
+ "localizedName": "gagana Tokelau",
+ "direction": "ltr"
+ },
"gl": {
"name": "Galician",
"localizedName": "Gallegan",
@@ -315,6 +1150,26 @@
"localizedName": "Guarani",
"direction": "ltr"
},
+ "go": {
+ "name": "Gondi",
+ "localizedName": "గోండి",
+ "direction": "ltr"
+ },
+ "gr": {
+ "name": "Gorontalo",
+ "localizedName": "Bahasa Hulontalo",
+ "direction": "ltr"
+ },
+ "gs": {
+ "name": "Swiss German",
+ "localizedName": "Schwiizerdütsch",
+ "direction": "ltr"
+ },
+ "gt": {
+ "name": "Gilbertese",
+ "localizedName": "Taetae ni Kiribati",
+ "direction": "ltr"
+ },
"gu": {
"name": "Gujarati",
"localizedName": "Gujarati",
@@ -325,26 +1180,81 @@
"localizedName": "Manx",
"direction": "ltr"
},
+ "gw": {
+ "name": "Gwich'in",
+ "localizedName": "Dinjii Zhu’ Ginjik",
+ "direction": "ltr"
+ },
+ "gy": {
+ "name": "Gayo",
+ "localizedName": "Basa Gayo",
+ "direction": "ltr"
+ },
"ha": {
"name": "Hausa",
"localizedName": "Hausa",
"direction": "ltr"
},
+ "hd": {
+ "name": "Mandar",
+ "localizedName": "Mandar",
+ "direction": "ltr"
+ },
+ "hh": {
+ "name": "Mohawk",
+ "localizedName": "Kanien’kéha",
+ "direction": "ltr"
+ },
"hi": {
"name": "Hindi",
"localizedName": "हिंदी",
"direction": "ltr"
+ },
+ "hk": {
+ "name": "Kurukh",
+ "localizedName": "कुड़ुख़",
+ "direction": "ltr"
+ },
+ "hl": {
+ "name": "Hiligaynon",
+ "localizedName": "Ilonggo",
+ "direction": "ltr"
+ },
+ "hm": {
+ "name": "Hmong",
+ "localizedName": "𖬇𖬰𖬞 𖬌𖬣𖬵",
+ "direction": "ltr"
+ },
+ "hn": {
+ "name": "Shan",
+ "localizedName": "ၵႂၢမ်းတႆးယႂ်",
+ "direction": "ltr"
},
"ho": {
"name": "Hiri Motu",
"localizedName": "Hiri Motu",
"direction": "ltr"
},
+ "hp": {
+ "name": "Hupa",
+ "localizedName": "Na:tinixwe Mixine:whe'",
+ "direction": "ltr"
+ },
"hr": {
"name": "Croatian",
"localizedName": "hrvatski",
"direction": "ltr"
},
+ "hr_BA": {
+ "name": "Croatian (Latin, Bosnia, and Herzegovina)",
+ "localizedName": "hrvatski (Latinica, Bosna i Hercegovina)",
+ "direction": "ltr"
+ },
+ "hs": {
+ "name": "Upper Sorbian",
+ "localizedName": "hornjoserbšćina",
+ "direction": "ltr"
+ },
"ht": {
"name": "Haitian",
"localizedName": "Haitian",
@@ -355,6 +1265,16 @@
"localizedName": "magyar",
"direction": "ltr"
},
+ "hw": {
+ "name": "Hawaiian",
+ "localizedName": "ʻŌlelo Hawaiʻi",
+ "direction": "ltr"
+ },
+ "hx": {
+ "name": "Haida",
+ "localizedName": "X̱aat Kíl",
+ "direction": "ltr"
+ },
"hy": {
"name": "Armenian",
"localizedName": "Armenian",
@@ -365,14 +1285,9 @@
"localizedName": "Herero",
"direction": "ltr"
},
- "ia": {
- "name": "Interlingua",
- "localizedName": "Interlingua",
- "direction": "ltr"
- },
- "ie": {
- "name": "Interlingue",
- "localizedName": "Interlingue",
+ "ib": {
+ "name": "Iban",
+ "localizedName": "Jaku Iban",
"direction": "ltr"
},
"ig": {
@@ -380,6 +1295,11 @@
"localizedName": "Igbo",
"direction": "ltr"
},
+ "ih": {
+ "name": "Ingush",
+ "localizedName": "ГӀалгӀай мотт",
+ "direction": "ltr"
+ },
"ii": {
"name": "Sichuan Yi",
"localizedName": "Sichuan Yi",
@@ -389,15 +1309,25 @@
"name": "Inupiaq",
"localizedName": "Inupiaq",
"direction": "ltr"
+ },
+ "il": {
+ "name": "Iloko",
+ "localizedName": "Pagsasao nga Ilokano",
+ "direction": "ltr"
+ },
+ "im": {
+ "name": "Southern Sami",
+ "localizedName": "Åarjelsaemien gïele",
+ "direction": "ltr"
},
"in": {
"name": "Indonesian",
"localizedName": "Bahasa Indonesia",
"direction": "ltr"
},
- "io": {
- "name": "Ido",
- "localizedName": "Ido",
+ "iq": {
+ "name": "Miskito",
+ "localizedName": "Miskitu",
"direction": "ltr"
},
"is": {
@@ -410,26 +1340,51 @@
"localizedName": "italiano",
"direction": "ltr"
},
+ "it_CH": {
+ "name": "Italian (Switzerland)",
+ "localizedName": "italiano(Svizzera)",
+ "direction": "rtl"
+ },
"iu": {
"name": "Inuktitut",
"localizedName": "Inuktitut",
"direction": "ltr"
},
+ "iv": {
+ "name": "Tiv",
+ "localizedName": "Tiv",
+ "direction": "ltr"
+ },
"iw": {
"name": "Hebrew",
"localizedName": "עברית",
"direction": "rtl"
},
+ "ix": {
+ "name": "ixil",
+ "localizedName": "Ixhil",
+ "direction": "ltr"
+ },
"ja": {
"name": "Japanese",
"localizedName": "日本語",
"direction": "ltr"
},
- "ji": {
- "name": "Yiddish",
- "localizedName": "Yiddish",
+ "jb": {
+ "name": "q'anjob'al",
+ "localizedName": "Kanjobal",
+ "direction": "ltr"
+ },
+ "jp": {
+ "name": "Judeo-Persian",
+ "localizedName": "Dzhidi",
"direction": "ltr"
},
+ "jr": {
+ "name": "Judeo-Arabic",
+ "localizedName": "عربية يهودية / ערבית יהודית",
+ "direction": "rtl"
+ },
"jv": {
"name": "Javanese",
"localizedName": "Javanese",
@@ -440,11 +1395,41 @@
"localizedName": "Georgian",
"direction": "ltr"
},
+ "kb": {
+ "name": "Kabyle",
+ "localizedName": "Tamaziɣt Taqbaylit",
+ "direction": "ltr"
+ },
+ "kc": {
+ "name": "Kachin",
+ "localizedName": "Jingpho",
+ "direction": "ltr"
+ },
+ "kd": {
+ "name": "Kabardian",
+ "localizedName": "Адыгэбзэ (Къэбэрдейбзэ)",
+ "direction": "ltr"
+ },
+ "ke": {
+ "name": "Kpelle",
+ "localizedName": "Kpɛlɛwoo",
+ "direction": "ltr"
+ },
+ "kf": {
+ "name": "Karachay-Balkar",
+ "localizedName": "Къарачай-Малкъар тил",
+ "direction": "ltr"
+ },
"kg": {
"name": "Kongo",
"localizedName": "Kongo",
"direction": "ltr"
},
+ "kh": {
+ "name": "Khasi",
+ "localizedName": "কা কতিয়েন খাশি",
+ "direction": "ltr"
+ },
"ki": {
"name": "Kikuyu",
"localizedName": "Kikuyu",
@@ -480,6 +1465,16 @@
"localizedName": "한국어",
"direction": "ltr"
},
+ "kp": {
+ "name": "Kara-Kalpak",
+ "localizedName": "Qaraqalpaq tili",
+ "direction": "ltr"
+ },
+ "kq": {
+ "name": "Kalenjin",
+ "localizedName": "Kalenjin",
+ "direction": "rtl"
+ },
"kr": {
"name": "Kanuri",
"localizedName": "Kanuri",
@@ -489,15 +1484,20 @@
"name": "Kashmiri",
"localizedName": "Kashmiri",
"direction": "ltr"
+ },
+ "kt": {
+ "name": "Kutenai",
+ "localizedName": "Ktunaxa",
+ "direction": "ltr"
},
"ku": {
- "name": "Kurdish",
- "localizedName": "Kurdish",
+ "name": "Kurdish (Sorani)",
+ "localizedName": "Sorani",
"direction": "ltr"
},
"ku_TR": {
- "name": "Kurdish, Turkey",
- "localizedName": "Kurdish (Turkey)",
+ "name": "Kurdish (Kurmanji)",
+ "localizedName": "Kurdish (Kurmanji)",
"direction": "ltr"
},
"kv": {
@@ -510,26 +1510,41 @@
"localizedName": "Cornish",
"direction": "ltr"
},
+ "kx": {
+ "name": "Kamba",
+ "localizedName": "Kikamba",
+ "direction": "ltr"
+ },
"ky": {
"name": "Kirghiz",
"localizedName": "Kirghiz",
"direction": "ltr"
},
- "la": {
- "name": "Latin",
- "localizedName": "Latin",
+ "kz": {
+ "name": "Kosraean",
+ "localizedName": "Kosraean",
"direction": "ltr"
},
"lb": {
"name": "Luxembourgish",
"localizedName": "Luxembourgish",
"direction": "ltr"
+ },
+ "ld": {
+ "name": "Ladino",
+ "localizedName": "Judeo-español",
+ "direction": "ltr"
},
"lg": {
"name": "Ganda",
"localizedName": "Ganda",
"direction": "ltr"
},
+ "lh": {
+ "name": "Lahnda",
+ "localizedName": "بھارت کا",
+ "direction": "rtl"
+ },
"li": {
"name": "Limburgish",
"localizedName": "Limburgish",
@@ -540,6 +1555,16 @@
"localizedName": "Lakota",
"direction": "ltr"
},
+ "ll": {
+ "name": "Luo (Kenya and Tanzania)",
+ "localizedName": "Dholuo",
+ "direction": "ltr"
+ },
+ "lm": {
+ "name": "Lamba",
+ "localizedName": "Ichilamba",
+ "direction": "ltr"
+ },
"ln": {
"name": "Lingala",
"localizedName": "Lingala",
@@ -550,6 +1575,16 @@
"localizedName": "Lao",
"direction": "ltr"
},
+ "lp": {
+ "name": "Selkup",
+ "localizedName": "чу́мэл шэ",
+ "direction": "ltr"
+ },
+ "ls": {
+ "name": "Lushai",
+ "localizedName": "Mizo ṭawng",
+ "direction": "ltr"
+ },
"lt": {
"name": "Lithuanian",
"localizedName": "Lietuvių",
@@ -565,6 +1600,56 @@
"localizedName": "Latviešu",
"direction": "ltr"
},
+ "lw": {
+ "name": "Acoli",
+ "localizedName": "Lwo",
+ "direction": "ltr"
+ },
+ "lx": {
+ "name": "Luba-Lulua",
+ "localizedName": "Cilubà",
+ "direction": "ltr"
+ },
+ "ly": {
+ "name": "Luyia",
+ "localizedName": "Luyia",
+ "direction": "rtl"
+ },
+ "lz": {
+ "name": "Lezghian",
+ "localizedName": "Лезги чӏал",
+ "direction": "ltr"
+ },
+ "ma": {
+ "name": "Magahi",
+ "localizedName": "मगही",
+ "direction": "ltr"
+ },
+ "mb": {
+ "name": "Basa",
+ "localizedName": "Mbene",
+ "direction": "ltr"
+ },
+ "mc": {
+ "name": "Manchu",
+ "localizedName": "ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ Manju gisun",
+ "direction": "ltr"
+ },
+ "md": {
+ "name": "Madurese",
+ "localizedName": "Madhura",
+ "direction": "ltr"
+ },
+ "me": {
+ "name": "Mende",
+ "localizedName": "Mɛnde yia",
+ "direction": "ltr"
+ },
+ "mf": {
+ "name": "Moksha",
+ "localizedName": "мокшень кяль",
+ "direction": "ltr"
+ },
"mg": {
"name": "Malagasy",
"localizedName": "Malagasy",
@@ -590,14 +1675,24 @@
"localizedName": "Malayalam",
"direction": "ltr"
},
+ "mm": {
+ "name": "Timne",
+ "localizedName": "KʌThemnɛ",
+ "direction": "ltr"
+ },
"mn": {
"name": "Mongolian",
"localizedName": "Mongolian",
"direction": "ltr"
},
"mo": {
- "name": "Moldavian",
- "localizedName": "Moldavian",
+ "name": "Individual",
+ "localizedName": "Living",
+ "direction": "ltr"
+ },
+ "mq": {
+ "name": "Mi'kmaq",
+ "localizedName": "Míkmawísimk",
"direction": "ltr"
},
"mr": {
@@ -610,15 +1705,45 @@
"localizedName": "Bahasa Melayu",
"direction": "ltr"
},
+ "ms_MY": {
+ "name": "Malay (Standard)",
+ "localizedName": "بهاس ملايو مليسيا",
+ "direction": "rtl"
+ },
"mt": {
"name": "Maltese",
"localizedName": "Malti",
"direction": "ltr"
},
+ "mu": {
+ "name": "Creek",
+ "localizedName": "Mvskoke",
+ "direction": "ltr"
+ },
+ "mv": {
+ "name": "Erzya",
+ "localizedName": "эрзянь кель",
+ "direction": "ltr"
+ },
+ "mw": {
+ "name": "Mirandese",
+ "localizedName": "mirandés",
+ "direction": "ltr"
+ },
+ "mx": {
+ "name": "mam",
+ "localizedName": "Qyool Mam",
+ "direction": "ltr"
+ },
"my": {
"name": "Burmese",
"localizedName": "Burmese",
"direction": "ltr"
+ },
+ "mz": {
+ "name": "Mazateco",
+ "localizedName": "En Ngixo",
+ "direction": "ltr"
},
"na": {
"name": "Nauru",
@@ -629,6 +1754,11 @@
"name": "Norwegian Bokmal",
"localizedName": "Norwegian Bokmål",
"direction": "ltr"
+ },
+ "nc": {
+ "name": "Nyankole",
+ "localizedName": "Orunyankore",
+ "direction": "ltr"
},
"nd": {
"name": "North Ndebele",
@@ -640,51 +1770,161 @@
"localizedName": "Nepali",
"direction": "ltr"
},
+ "nf": {
+ "name": "Northern Frisian",
+ "localizedName": "Frasch",
+ "direction": "ltr"
+ },
"ng": {
"name": "Ndonga",
"localizedName": "Ndonga",
"direction": "ltr"
+ },
+ "nh": {
+ "name": "Nyoro",
+ "localizedName": "Orunyoro",
+ "direction": "ltr"
+ },
+ "ni": {
+ "name": "Nias",
+ "localizedName": "Li Niha",
+ "direction": "ltr"
+ },
+ "nk": {
+ "name": "Norwegian",
+ "localizedName": "norsk",
+ "direction": "ltr"
},
"nl": {
"name": "Dutch",
"localizedName": "Nederlands",
"direction": "ltr"
+ },
+ "nl_BE": {
+ "name": "Dutch (Belgium)",
+ "localizedName": "Nederlands (België)",
+ "direction": "rtl"
+ },
+ "nm": {
+ "name": "Inari Sami",
+ "localizedName": "anarâškielâ",
+ "direction": "ltr"
},
"nn": {
"name": "Norwegian Nynorsk",
"localizedName": "Norwegian Nynorsk",
"direction": "ltr"
},
+ "np": {
+ "name": "Neapolitan",
+ "localizedName": "napulitano",
+ "direction": "ltr"
+ },
+ "nq": {
+ "name": "N'Ko",
+ "localizedName": "ߒߞߏ",
+ "direction": "rtl"
+ },
"nr": {
"name": "South Ndebele",
"localizedName": "South Ndebele",
"direction": "ltr"
},
+ "ns": {
+ "name": "Low German",
+ "localizedName": "Plattdütsch",
+ "direction": "ltr"
+ },
+ "nt": {
+ "name": "Santali",
+ "localizedName": "ᱥᱟᱱᱛᱟᱲᱤ",
+ "direction": "ltr"
+ },
+ "nu": {
+ "name": "Niuean",
+ "localizedName": "ko e vagahau Niuē",
+ "direction": "ltr"
+ },
"nv": {
"name": "Navajo",
"localizedName": "Navajo",
"direction": "ltr"
},
+ "nw": {
+ "name": "Nepal Bhasa",
+ "localizedName": "नेपाल भाषा",
+ "direction": "ltr"
+ },
+ "nx": {
+ "name": "Nyamwezi",
+ "localizedName": "Nyamwezi",
+ "direction": "ltr"
+ },
"ny": {
"name": "Chichewa",
"localizedName": "Nyanja",
"direction": "ltr"
+ },
+ "nz": {
+ "name": "Nzima",
+ "localizedName": "Nzima",
+ "direction": "ltr"
+ },
+ "oa": {
+ "name": "Osage",
+ "localizedName": "Wazhazhe ie / 𐓏𐓘𐓻𐓘𐓻𐓟 𐒻𐓟",
+ "direction": "ltr"
},
"oc": {
"name": "Occitan",
"localizedName": "Occitan",
"direction": "ltr"
+ },
+ "oe": {
+ "name": "Montenegrin",
+ "localizedName": "crnogorski / црногорски",
+ "direction": "ltr"
+ },
+ "og": {
+ "name": "Mandingo",
+ "localizedName": "Mandi'nka kango",
+ "direction": "ltr"
+ },
+ "oi": {
+ "name": "Soninke",
+ "localizedName": "Sooninkanxanne",
+ "direction": "ltr"
},
"oj": {
"name": "Ojibwa",
"localizedName": "Ojibwa",
"direction": "ltr"
},
+ "ok": {
+ "name": "Konkani",
+ "localizedName": "कोंकणी",
+ "direction": "ltr"
+ },
+ "ol": {
+ "name": "Skolt Sami",
+ "localizedName": "sääʹmǩiõll",
+ "direction": "ltr"
+ },
"om": {
"name": "Oromo",
"localizedName": "Oromo",
"direction": "ltr"
},
+ "oo": {
+ "name": "Mossi",
+ "localizedName": "Mooré",
+ "direction": "ltr"
+ },
+ "op": {
+ "name": "Totonaca",
+ "localizedName": "Totonac–Tepehua",
+ "direction": "ltr"
+ },
"or": {
"name": "Oriya",
"localizedName": "Oriya",
@@ -695,14 +1935,24 @@
"localizedName": "Ossetian",
"direction": "ltr"
},
+ "ot": {
+ "name": "Scots",
+ "localizedName": "Lallans",
+ "direction": "ltr"
+ },
+ "ou": {
+ "name": "Southern Altai",
+ "localizedName": "Алтай тили",
+ "direction": "ltr"
+ },
"pa": {
"name": "Panjabi",
"localizedName": "Panjabi",
"direction": "ltr"
},
- "pi": {
- "name": "Pali",
- "localizedName": "Pali",
+ "pg": {
+ "name": "Pangasinan",
+ "localizedName": "Salitan Pangasinan",
"direction": "ltr"
},
"pl": {
@@ -710,6 +1960,21 @@
"localizedName": "polski",
"direction": "ltr"
},
+ "pm": {
+ "name": "Pampanga",
+ "localizedName": "Amánung Kapampangan",
+ "direction": "ltr"
+ },
+ "pn": {
+ "name": "Pohnpeian",
+ "localizedName": "Lokaiahn Pohnpei",
+ "direction": "ltr"
+ },
+ "pp": {
+ "name": "Papiamento",
+ "localizedName": "Papiamentu",
+ "direction": "ltr"
+ },
"ps": {
"name": "Pashto",
"localizedName": "Pushto",
@@ -720,19 +1985,99 @@
"localizedName": "português",
"direction": "ltr"
},
+ "pt_AO": {
+ "name": "Portuguese(Angola)",
+ "localizedName": "português(Angola)",
+ "direction": "ltr"
+ },
"pt_BR": {
"name": "Portuguese, Brazil",
"localizedName": "português (Brasil)",
"direction": "ltr"
},
+ "pt_CV": {
+ "name": "Portuguese(Cabo verde)",
+ "localizedName": "português(Cabo verde)",
+ "direction": "ltr"
+ },
+ "pt_GQ": {
+ "name": "Portuguese(Equatorial Guinea)",
+ "localizedName": "português(Guiné Equatorial)",
+ "direction": "ltr"
+ },
+ "pt_GW": {
+ "name": "Portuguese(Guinea-Bissau)",
+ "localizedName": "português(Guiné-Bissau)",
+ "direction": "ltr"
+ },
+ "pt_MZ": {
+ "name": "Portuguese(Mozambique)",
+ "localizedName": "português(Moçambique)",
+ "direction": "ltr"
+ },
+ "pt_ST": {
+ "name": "Portuguese(São Tomé and Príncipe)",
+ "localizedName": "português(São Tomé e Príncipe)",
+ "direction": "ltr"
+ },
+ "pu": {
+ "name": "Palauan",
+ "localizedName": "a tekoi er a Belau",
+ "direction": "ltr"
+ },
+ "qc": {
+ "name": "k'iche'",
+ "localizedName": "Qatzijobʼal",
+ "direction": "ltr"
+ },
+ "qe": {
+ "name": "q'eqchi'",
+ "localizedName": "Kekchi",
+ "direction": "ltr"
+ },
"qu": {
"name": "Quechua",
"localizedName": "Quechua",
"direction": "ltr"
},
- "rm": {
- "name": "Raeto-Romance",
- "localizedName": "Raeto-Romance",
+ "ra": {
+ "name": "Braj",
+ "localizedName": "ब्रजभाषा",
+ "direction": "ltr"
+ },
+ "rb": {
+ "name": "Grebo",
+ "localizedName": "Kréébo",
+ "direction": "ltr"
+ },
+ "rc": {
+ "name": "Achi",
+ "localizedName": "Achiʼ",
+ "direction": "ltr"
+ },
+ "re": {
+ "name": "Tereno",
+ "localizedName": "Terêna",
+ "direction": "ltr"
+ },
+ "rh": {
+ "name": "Romansh",
+ "localizedName": "Rumantsch",
+ "direction": "ltr"
+ },
+ "ri": {
+ "name": "Rapanui",
+ "localizedName": "Vananga rapa nui",
+ "direction": "ltr"
+ },
+ "rj": {
+ "name": "Rajasthani",
+ "localizedName": "राजस्थानी",
+ "direction": "ltr"
+ },
+ "rl": {
+ "name": "Karelian",
+ "localizedName": "karjal",
"direction": "ltr"
},
"rn": {
@@ -744,6 +2089,16 @@
"name": "Romanian",
"localizedName": "română",
"direction": "ltr"
+ },
+ "rp": {
+ "name": "Aromanian",
+ "localizedName": "armãneashce",
+ "direction": "ltr"
+ },
+ "rr": {
+ "name": "Rarotongan (Cook Islands Māori)",
+ "localizedName": "Māori Kūki 'Āirani",
+ "direction": "ltr"
},
"ru": {
"name": "Russian",
@@ -755,9 +2110,19 @@
"localizedName": "Kinyarwanda",
"direction": "ltr"
},
- "sa": {
- "name": "Sanskrit",
- "localizedName": "Sanskrit",
+ "ry": {
+ "name": "Romany",
+ "localizedName": "romani čhib",
+ "direction": "ltr"
+ },
+ "rz": {
+ "name": "Lozi",
+ "localizedName": "siLozi",
+ "direction": "ltr"
+ },
+ "sb": {
+ "name": "Kashubian",
+ "localizedName": "Kaszëbsczi jãzëk",
"direction": "ltr"
},
"sc": {
@@ -780,16 +2145,16 @@
"localizedName": "Sango",
"direction": "ltr"
},
- "sh": {
- "name": "Serbo-Croatian",
- "localizedName": "Serbo-Croatian",
- "direction": "ltr"
- },
"si": {
"name": "Sinhalese",
"localizedName": "Sinhalese",
"direction": "ltr"
},
+ "sj": {
+ "name": "Lule Sami",
+ "localizedName": "julevsámegiella",
+ "direction": "ltr"
+ },
"sk": {
"name": "Slovak",
"localizedName": "Slovenčina",
@@ -814,6 +2179,11 @@
"name": "Somali",
"localizedName": "Somali",
"direction": "ltr"
+ },
+ "sp": {
+ "name": "Sepedi",
+ "localizedName": "Sesotho sa Leboa",
+ "direction": "ltr"
},
"sq": {
"name": "Albanian",
@@ -825,6 +2195,11 @@
"localizedName": "Српски",
"direction": "ltr"
},
+ "sr_BA": {
+ "name": "Serbian (Bosnia and Herzegovina)",
+ "localizedName": "Српски (Босна и Херцеговина)",
+ "direction": "rtl"
+ },
"ss": {
"name": "Swati",
"localizedName": "Swati",
@@ -845,15 +2220,40 @@
"localizedName": "svenska",
"direction": "ltr"
},
+ "sv_FI": {
+ "name": "Swedish (Finland)",
+ "localizedName": "svenska (Finland)",
+ "direction": "rtl"
+ },
"sw": {
"name": "Swahili",
"localizedName": "Swahili",
"direction": "ltr"
+ },
+ "sx": {
+ "name": "Susu",
+ "localizedName": "Sosoxui",
+ "direction": "ltr"
+ },
+ "sy": {
+ "name": "Syriac",
+ "localizedName": "ܠܫܢܐ ܣܘܪܝܝܐ Lešānā Suryāyā",
+ "direction": "rtl"
+ },
+ "sz": {
+ "name": "Sasak",
+ "localizedName": "ᬪᬵᬲᬵᬲᬓ᭄ᬱᬓ᭄",
+ "direction": "ltr"
},
"ta": {
"name": "Tamil",
"localizedName": "Tamil",
"direction": "ltr"
+ },
+ "tc": {
+ "name": "Tonga (Nyasa)",
+ "localizedName": "chiTonga",
+ "direction": "ltr"
},
"te": {
"name": "Telugu",
@@ -875,6 +2275,11 @@
"localizedName": "Tigrinya",
"direction": "ltr"
},
+ "tj": {
+ "name": "Tlingit",
+ "localizedName": "Lingít",
+ "direction": "ltr"
+ },
"tk": {
"name": "Turkmen",
"localizedName": "Turkmen",
@@ -884,6 +2289,11 @@
"name": "Tagalog",
"localizedName": "Tagalog",
"direction": "ltr"
+ },
+ "tm": {
+ "name": "Tamashek",
+ "localizedName": "Tafaghist",
+ "direction": "ltr"
},
"tn": {
"name": "Tswana",
@@ -895,6 +2305,16 @@
"localizedName": "Tonga",
"direction": "ltr"
},
+ "tp": {
+ "name": "Tok Pisin",
+ "localizedName": "Tok Pisin",
+ "direction": "ltr"
+ },
+ "tq": {
+ "name": "Tigre",
+ "localizedName": "ትግረ",
+ "direction": "ltr"
+ },
"tr": {
"name": "Turkish",
"localizedName": "Türkçe",
@@ -910,35 +2330,95 @@
"localizedName": "Tatar",
"direction": "ltr"
},
+ "tu": {
+ "name": "Tumbuka",
+ "localizedName": "chiTumbuka",
+ "direction": "ltr"
+ },
+ "tv": {
+ "name": "Tuvalu",
+ "localizedName": "Te Ggana Tuuvalu",
+ "direction": "ltr"
+ },
"tw": {
"name": "Twi",
"localizedName": "Twi",
"direction": "ltr"
},
+ "tx": {
+ "name": "Tuvinian",
+ "localizedName": "тыва дыл",
+ "direction": "ltr"
+ },
"ty": {
"name": "Tahitian",
"localizedName": "Tahitian",
"direction": "ltr"
},
+ "tz": {
+ "name": "Tsimshian",
+ "localizedName": "Tsmksian",
+ "direction": "ltr"
+ },
+ "ua": {
+ "name": "Náhuatl",
+ "localizedName": "Náhuatl",
+ "direction": "ltr"
+ },
+ "ud": {
+ "name": "Udmurt",
+ "localizedName": "удмурт кыл",
+ "direction": "ltr"
+ },
"ug": {
"name": "Uighur",
"localizedName": "Uighur",
"direction": "ltr"
},
+ "ui": {
+ "name": "Manipuri",
+ "localizedName": "Meitei",
+ "direction": "ltr"
+ },
"uk": {
"name": "Ukrainian",
"localizedName": "українська",
"direction": "ltr"
},
+ "um": {
+ "name": "Umbundu",
+ "localizedName": "Úmbúndú",
+ "direction": "ltr"
+ },
+ "un": {
+ "name": "Mapudungun",
+ "localizedName": "Mapuche",
+ "direction": "ltr"
+ },
"ur": {
"name": "Urdu",
"localizedName": "Urdu",
"direction": "rtl"
},
+ "ut": {
+ "name": "Tetum",
+ "localizedName": "Lia-Tetun",
+ "direction": "ltr"
+ },
+ "uy": {
+ "name": "Kumyk",
+ "localizedName": "къумукъ тил/qumuq til",
+ "direction": "ltr"
+ },
"uz": {
"name": "Uzbek",
"localizedName": "Uzbek",
"direction": "ltr"
+ },
+ "va": {
+ "name": "Vai",
+ "localizedName": "ꕙꔤ",
+ "direction": "ltr"
},
"ve": {
"name": "Venda",
@@ -950,9 +2430,14 @@
"localizedName": "Tiếng Việt",
"direction": "ltr"
},
- "vo": {
- "name": "Volapuk",
- "localizedName": "Volapük",
+ "vs": {
+ "name": "Siksika",
+ "localizedName": "ᓱᖽᐧᖿ",
+ "direction": "ltr"
+ },
+ "vt": {
+ "name": "Votic",
+ "localizedName": "vađđa ceeli",
"direction": "ltr"
},
"wa": {
@@ -960,26 +2445,101 @@
"localizedName": "Walloon",
"direction": "ltr"
},
+ "wl": {
+ "name": "Wolaitta",
+ "localizedName": "Wolayttatto Doonaa",
+ "direction": "ltr"
+ },
"wo": {
"name": "Wolof",
"localizedName": "Wolof",
"direction": "ltr"
},
+ "wr": {
+ "name": "Waray",
+ "localizedName": "Winaray",
+ "direction": "ltr"
+ },
+ "ws": {
+ "name": "Washo",
+ "localizedName": "wá:šiw ʔítlu",
+ "direction": "ltr"
+ },
+ "xa": {
+ "name": "Kalmyk",
+ "localizedName": "Хальмг келн",
+ "direction": "ltr"
+ },
"xh": {
"name": "Xhosa",
"localizedName": "Xhosa",
"direction": "ltr"
+ },
+ "xl": {
+ "name": "Mongo",
+ "localizedName": "Lomongo",
+ "direction": "ltr"
+ },
+ "xr": {
+ "name": "Marwari",
+ "localizedName": "मारवाड़ी",
+ "direction": "ltr"
+ },
+ "xs": {
+ "name": "Sukuma",
+ "localizedName": "Kɪsukuma",
+ "direction": "ltr"
+ },
+ "xt": {
+ "name": "Sranan Tongo",
+ "localizedName": "Sranan Tongo",
+ "direction": "ltr"
+ },
+ "ya": {
+ "name": "Yao",
+ "localizedName": "chiYao",
+ "direction": "ltr"
+ },
+ "yi": {
+ "name": "Yiddish",
+ "localizedName": "Yiddish",
+ "direction": "ltr"
+ },
+ "yk": {
+ "name": "Yakut",
+ "localizedName": "Сахалыы",
+ "direction": "ltr"
+ },
+ "yn": {
+ "name": "Mayan",
+ "localizedName": "Maya",
+ "direction": "ltr"
},
"yo": {
"name": "Yoruba",
"localizedName": "Yoruba",
"direction": "ltr"
},
+ "yp": {
+ "name": "Yapese",
+ "localizedName": "Thin nu Wa’ab",
+ "direction": "ltr"
+ },
"za": {
"name": "Zhuang",
"localizedName": "Zhuang",
"direction": "ltr"
},
+ "ze": {
+ "name": "Zenaga",
+ "localizedName": "Tuẓẓungiyya",
+ "direction": "ltr"
+ },
+ "zg": {
+ "name": "Standard Moroccan Tamazight",
+ "localizedName": "ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ",
+ "direction": "ltr"
+ },
"zh_CN": {
"name": "Chinese, Simplified",
"localizedName": "中文 (中国)",
@@ -990,14 +2550,44 @@
"localizedName": "中文 (香港)",
"direction": "ltr"
},
+ "zh_MO": {
+ "name": "Chinese (Macau)",
+ "localizedName": "中文(澳门)",
+ "direction": "rtl"
+ },
+ "zh_SG": {
+ "name": "Chinese (Singapore)",
+ "localizedName": "中文(新加坡)",
+ "direction": "rtl"
+ },
"zh_TW": {
"name": "Chinese, Traditional",
"localizedName": "中文 (台灣)",
"direction": "ltr"
},
+ "zn": {
+ "name": "Zuni",
+ "localizedName": "Shiwi'ma",
+ "direction": "ltr"
+ },
+ "zp": {
+ "name": "Zapotec",
+ "localizedName": "Diidxazá/Dizhsa",
+ "direction": "ltr"
+ },
+ "zt": {
+ "name": "tz'utujil",
+ "localizedName": "Tzʼutujiil",
+ "direction": "ltr"
+ },
"zu": {
"name": "Zulu",
"localizedName": "Zulu",
"direction": "ltr"
+ },
+ "zz": {
+ "name": "Zaza",
+ "localizedName": "kirmanckî",
+ "direction": "ltr"
}
}
\ No newline at end of file
Index: joist/js/preferences/LanguageSelectionNode.ts
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/joist/js/preferences/LanguageSelectionNode.ts b/joist/js/preferences/LanguageSelectionNode.ts
--- a/joist/js/preferences/LanguageSelectionNode.ts (revision b94d701c92cab77cd4cf554f333a7e0701c5b01b)
+++ b/joist/js/preferences/LanguageSelectionNode.ts (date 1715059840175)
@@ -17,7 +17,6 @@
import StringUtils from '../../../phetcommon/js/util/StringUtils.js';
import pushButtonSoundPlayer from '../../../tambo/js/shared-sound-players/pushButtonSoundPlayer.js';
import JoistStrings from '../JoistStrings.js';
-import localeInfoModule from '../../../chipper/js/data/localeInfoModule.js';
export default class LanguageSelectionNode extends Rectangle {
@@ -35,9 +34,9 @@
// The english name of the locale is reported for accessibility because PDOM strings are not translatable.
// If you use the localized name, it might change the screen reader voice.
- const localeInfo = localeInfoModule[ locale ];
- assert && assert( localeInfo, `No localeInfo for ${locale}` );
- const englishLocaleString = localeInfo.name;
+ const localeData = phet.chipper.localeData[ locale ];
+ assert && assert( localeData, `No localeData for ${locale}` );
+ const englishLocaleString = localeData.englishName;
const text = new Text( string, {
font: PreferencesDialog.CONTENT_FONT
Index: build-a-nucleus/build-a-nucleus_en.html
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/build-a-nucleus/build-a-nucleus_en.html b/build-a-nucleus/build-a-nucleus_en.html
--- a/build-a-nucleus/build-a-nucleus_en.html (revision 8be5d49300fcd04f43c6f2f5bb240f67e0ccdfb3)
+++ b/build-a-nucleus/build-a-nucleus_en.html (date 1715059253353)
@@ -54,7 +54,8 @@
"screenNameKeys": [
"BUILD_A_NUCLEUS/screen.decay",
"BUILD_A_NUCLEUS/screen.chartIntro"
- ]
+ ],
+ "published": true
},
"eslintConfig": {
"extends": "../chipper/eslint/sim_eslintrc.js"
Index: color-vision/color-vision_en.html
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/color-vision/color-vision_en.html b/color-vision/color-vision_en.html
--- a/color-vision/color-vision_en.html (revision a5d4a41803d277bd208b1d63028c71bca9b7bc71)
+++ b/color-vision/color-vision_en.html (date 1715059267373)
@@ -42,7 +42,8 @@
],
"simFeatures": {
"supportsInteractiveDescription": true,
- "supportsSound": true
+ "supportsSound": true,
+ "supportsDynamicLocale": true
},
"simulation": true,
"supportsOutputJS": true,
Index: color-vision/js/ColorVisionStrings.ts
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/color-vision/js/ColorVisionStrings.ts b/color-vision/js/ColorVisionStrings.ts
--- a/color-vision/js/ColorVisionStrings.ts (revision a5d4a41803d277bd208b1d63028c71bca9b7bc71)
+++ b/color-vision/js/ColorVisionStrings.ts (date 1715058822079)
@@ -10,23 +10,18 @@
type StringsType = {
'filterSlider': {
- 'label': string;
'labelStringProperty': LocalizedStringProperty;
};
'RgbBulbsModule': {
- 'title': string;
'titleStringProperty': LocalizedStringProperty;
};
'color-vision': {
- 'title': string;
'titleStringProperty': LocalizedStringProperty;
};
'bulbSlider': {
- 'label': string;
'labelStringProperty': LocalizedStringProperty;
};
'SingleBulbModule': {
- 'title': string;
'titleStringProperty': LocalizedStringProperty;
}
};
Index: phetcommon/js/util/StringUtils.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/phetcommon/js/util/StringUtils.js b/phetcommon/js/util/StringUtils.js
--- a/phetcommon/js/util/StringUtils.js (revision 9564ae351f5d9735b641603ded512506eef20ee6)
+++ b/phetcommon/js/util/StringUtils.js (date 1715059840166)
@@ -5,7 +5,6 @@
* @author Sam Reid (PhET Interactive Simulations)
*/
-import localeInfoModule from '../../../chipper/js/data/localeInfoModule.js';
import phetcommon from '../phetcommon.js';
// Unicode embedding marks that we use.
@@ -340,11 +339,11 @@
* @returns {string}
*/
localeToLocalizedName: function( locale ) {
- assert && assert( localeInfoModule[ locale ], 'locale needs to be a valid locale code defined in localeInfoModule' );
+ assert && assert( phet.chipper.localeData[ locale ], 'locale needs to be a valid locale code defined in localeInfoModule' );
return StringUtils.wrapDirection(
- localeInfoModule[ locale ].localizedName,
- localeInfoModule[ locale ].direction
+ phet.chipper.localeData[ locale ].localizedName,
+ phet.chipper.localeData[ locale ].direction
);
},
Index: chipper/js/getStringModule.ts
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/chipper/js/getStringModule.ts b/chipper/js/getStringModule.ts
--- a/chipper/js/getStringModule.ts (revision 143ff65960670a192c57862abebda6cda5a3a201)
+++ b/chipper/js/getStringModule.ts (date 1715059628929)
@@ -21,7 +21,6 @@
import LocalizedString, { LocalizedStringStateDelta, StringsStateStateObject } from './LocalizedString.js';
import TReadOnlyProperty from '../../axon/js/TReadOnlyProperty.js';
import { Locale } from '../../joist/js/i18n/localeProperty.js';
-import localeInfoModule from '../../chipper/js/data/localeInfoModule.js';
import { PhetioID } from '../../tandem/js/TandemConstants.js';
// constants
@@ -106,7 +105,7 @@
// Our locale information is from phet.chipper.locale
assert && assert( typeof phet.chipper.locale === 'string', 'phet.chipper.locale should have been loaded by now' );
- assert && assert( Object.keys( localeInfoModule ).includes( phet.chipper.locale ), 'phet.chipper.locale should have been loaded by now' );
+ assert && assert( Object.keys( phet.chipper.localeData ).includes( phet.chipper.locale ), 'phet.chipper.locale should have been loaded by now' );
assert && assert( phet.chipper.strings, 'phet.chipper.strings should have been loaded by now' );
// Construct locales in increasing specificity, e.g. [ 'en', 'zh', 'zh_CN' ], so we get fallbacks in order
Index: chipper/js/load-unbuilt-strings.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/chipper/js/load-unbuilt-strings.js b/chipper/js/load-unbuilt-strings.js
--- a/chipper/js/load-unbuilt-strings.js (revision 143ff65960670a192c57862abebda6cda5a3a201)
+++ b/chipper/js/load-unbuilt-strings.js (date 1715062326239)
@@ -32,7 +32,11 @@
// Prefixes, ideally a better way of accessing localeInfo on startup would exist. We have localeInfo, however it's
// in the form of a module, and we can't use that at this point.
- const rtlLocales = [ 'ae', 'ar', 'fa', 'iw', 'ur' ];
+ // NOTE: For built forms, we will always have this data. For unbuilt forms, we may conditionally have this data,
+ // depending on the load order
+ const rtlLocales = phet.chipper.localeData ? Object.keys( phet.chipper.localeData ).filter( locale => {
+ return phet.chipper.localeData[ locale ].direction === 'rtl';
+ } ) : [ 'ac', 'ar', 'ar_AE', 'ar_BH', 'ar_DJ', 'ar_DZ', 'ar_EG', 'ar_EH', 'ar_ER', 'ar_IQ', 'ar_JO', 'ar_KM', 'ar_KW', 'ar_LB', 'ar_LY', 'ar_MA', 'ar_MR', 'ar_OM', 'ar_QA', 'ar_SA', 'ar_SD', 'ar_SO', 'ar_SY', 'ar_TD', 'ar_TN', 'ar_YE', 'bc', 'bx', 'de_AT', 'de_CH', 'de_LI', 'de_LU', 'di', 'es_AR', 'es_BO', 'es_CL', 'es_DO', 'es_EC', 'es_GQ', 'es_GT', 'es_HN', 'es_NI', 'es_PA', 'es_PR', 'es_PY', 'es_SV', 'es_US', 'es_UY', 'es_VE', 'fa', 'fa_DA', 'fr_BE', 'fr_BF', 'fr_BI', 'fr_BJ', 'fr_CA', 'fr_CD', 'fr_CF', 'fr_CG', 'fr_CH', 'fr_CI', 'fr_CM', 'fr_DJ', 'fr_EH', 'fr_GA', 'fr_GN', 'fr_GQ', 'fr_KM', 'fr_LU', 'fr_MC', 'fr_MG', 'fr_ML', 'fr_NE', 'fr_RW', 'fr_SC', 'fr_SN', 'fr_TD', 'fr_TG', 'it_CH', 'iw', 'jr', 'kq', 'lh', 'ly', 'ms_MY', 'nl_BE', 'nq', 'sr_BA', 'sv_FI', 'sy', 'ur', 'zh_MO', 'zh_SG' ];
const localeQueryParam = new window.URLSearchParams( window.location.search ).get( 'locale' );
const localesQueryParam = new window.URLSearchParams( window.location.search ).get( 'locales' );
@@ -229,6 +233,15 @@
// phet.chipper.usedStringsEN = json;
// } );
+ // Load locale data
+ requestJSONFile( '../babel/localeData.json', json => {
+ phet.chipper.localeData = json;
+
+ // Because load-unbuilt-strings' "loading" of the locale data might not have happened BEFORE initialize-globals
+ // runs (and sets phet.chipper.locale), we'll attempt to handle the case where it hasn't been set yet.
+ phet.chipper.checkAndRemapLocale && phet.chipper.checkAndRemapLocale();
+ } );
+
if ( localesQueryParam === '*' ) {
// Load the conglomerate files
Index: perennial/package.json
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/perennial/package.json b/perennial/package.json
--- a/perennial/package.json (revision db8e41b579959ee2fb1497b646c2fabf764b781d)
+++ b/perennial/package.json (date 1714787632065)
@@ -15,6 +15,7 @@
"async-q": "~0.3.1",
"async-mutex": "~0.4.0",
"axios": "~0.21.4",
+ "csv-parser": "~3.0.0",
"emailjs": "~3.8.0",
"express": "~4.16.2",
"graceful-fs": "~4.1.11",
Index: forces-and-motion-basics/js/ForcesAndMotionBasicsStrings.ts
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/forces-and-motion-basics/js/ForcesAndMotionBasicsStrings.ts b/forces-and-motion-basics/js/ForcesAndMotionBasicsStrings.ts
--- a/forces-and-motion-basics/js/ForcesAndMotionBasicsStrings.ts (revision 6efcdd971bd9d19ec35708de3fb87ba2782dba29)
+++ b/forces-and-motion-basics/js/ForcesAndMotionBasicsStrings.ts (date 1715058850053)
@@ -9,71 +9,41 @@
import forcesAndMotionBasics from './forcesAndMotionBasics.js';
type StringsType = {
- 'none': string;
'noneStringProperty': LocalizedStringProperty;
- 'force': string;
'forceStringProperty': LocalizedStringProperty;
- 'values': string;
'valuesStringProperty': LocalizedStringProperty;
- 'redWins': string;
'redWinsStringProperty': LocalizedStringProperty;
- 'frictionForce': string;
'frictionForceStringProperty': LocalizedStringProperty;
- 'pause': string;
'pauseStringProperty': LocalizedStringProperty;
- 'friction': string;
'frictionStringProperty': LocalizedStringProperty;
'forces-and-motion-basics': {
- 'title': string;
'titleStringProperty': LocalizedStringProperty;
};
- 'leftForce': string;
'leftForceStringProperty': LocalizedStringProperty;
- 'appliedForce': string;
'appliedForceStringProperty': LocalizedStringProperty;
- 'rightForce': string;
'rightForceStringProperty': LocalizedStringProperty;
'pattern': {
- '0massUnitsKilograms': string;
'0massUnitsKilogramsStringProperty': LocalizedStringProperty;
- '0valueUnitsNewtons': string;
'0valueUnitsNewtonsStringProperty': LocalizedStringProperty;
'0name': {
- '1valueUnitsAcceleration': string;
'1valueUnitsAccelerationStringProperty': LocalizedStringProperty;
- '1valueUnitsVelocity': string;
'1valueUnitsVelocityStringProperty': LocalizedStringProperty;
};
- '0valueUnitsN': string;
'0valueUnitsNStringProperty': LocalizedStringProperty;
};
- 'acceleration': string;
'accelerationStringProperty': LocalizedStringProperty;
- 'lots': string;
'lotsStringProperty': LocalizedStringProperty;
- 'forces': string;
'forcesStringProperty': LocalizedStringProperty;
- 'netForce': string;
'netForceStringProperty': LocalizedStringProperty;
- 'motion': string;
'motionStringProperty': LocalizedStringProperty;
- 'go': string;
'goStringProperty': LocalizedStringProperty;
- 'sumOfForcesEqualsZero': string;
'sumOfForcesEqualsZeroStringProperty': LocalizedStringProperty;
- 'blueWins': string;
'blueWinsStringProperty': LocalizedStringProperty;
- 'sumOfForces': string;
'sumOfForcesStringProperty': LocalizedStringProperty;
- 'speed': string;
'speedStringProperty': LocalizedStringProperty;
- 'stopwatch': string;
'stopwatchStringProperty': LocalizedStringProperty;
- 'return': string;
'returnStringProperty': LocalizedStringProperty;
- 'masses': string;
'massesStringProperty': LocalizedStringProperty;
- 'unknownValueIndicator': string;
'unknownValueIndicatorStringProperty': LocalizedStringProperty;
};
Index: chipper/js/initialize-globals.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/chipper/js/initialize-globals.js b/chipper/js/initialize-globals.js
--- a/chipper/js/initialize-globals.js (revision 143ff65960670a192c57862abebda6cda5a3a201)
+++ b/chipper/js/initialize-globals.js (date 1715062398710)
@@ -964,9 +964,50 @@
stringTest;
};
+ // We will need to check for locale validity (once we have localeData loaded, if running unbuilt), and potentially
+ // either fall back to `en`, or remap from 3-character locales to our locale keys.
+ phet.chipper.checkAndRemapLocale = () => {
+ // We need both to proceed. Provided as a global, so we can call it from load-unbuilt-strings
+ // (IF initialize-globals loads first)
+ if ( !phet.chipper.localeData || !phet.chipper.locale ) {
+ return;
+ }
+
+ let locale = phet.chipper.locale;
+
+ if ( locale && locale.length === 3 ) {
+ for ( const candidateLocale of Object.keys( phet.chipper.localeData ) ) {
+ if ( phet.chipper.localeData[ candidateLocale ].locale3 === locale ) {
+ locale = candidateLocale;
+ break;
+ }
+ }
+ }
+
+ if ( !phet.chipper.localeData[ locale ] ) {
+ const badLocale = phet.chipper.queryParameters.locale;
+
+ const isPair = /^[a-z]{2}$/.test( badLocale );
+ const isTriple = /^[a-z]{3}$/.test( badLocale );
+ const isPair_PAIR = /^[a-z]{2}_[A-Z]{2}$/.test( badLocale );
+
+ if ( !isPair && !isTriple && !isPair_PAIR ) {
+ QueryStringMachine.addWarning( 'locale', phet.chipper.queryParameters.locale, `Invalid locale format received: ${badLocale}. ?locale query parameter accepts the following formats: "xx" for ISO-639-1, "xx_XX" for ISO-639-1 and a 2-letter country code, "xxx" for ISO-639-2` );
+ }
+
+ locale = 'en';
+ }
+
+ phet.chipper.locale = locale;
+ };
+
// If locale was provided as a query parameter, then change the locale used by Google Analytics.
if ( QueryStringMachine.containsKey( 'locale' ) ) {
- window.phet.chipper.locale = phet.chipper.queryParameters.locale;
+ phet.chipper.locale = phet.chipper.queryParameters.locale;
+
+ // NOTE: If we are loading in unbuilt mode, this may execute BEFORE we have loaded localeData. We have a similar
+ // remapping in load-unbuilt-strings when this happens.
+ phet.chipper.checkAndRemapLocale();
}
else if ( !window.phet.chipper.locale ) {
// Fill in a default
Index: make-a-ten/make-a-ten_en.html
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/make-a-ten/make-a-ten_en.html b/make-a-ten/make-a-ten_en.html
--- a/make-a-ten/make-a-ten_en.html (revision 2e4435fb6234def4c31a52e0c127d42a351c269d)
+++ b/make-a-ten/make-a-ten_en.html (date 1715059312056)
@@ -60,7 +60,18 @@
]
},
"eslintConfig": {
- "extends": "../chipper/eslint/sim_eslintrc.js"
+ "extends": "../chipper/eslint/sim_eslintrc.js",
+ "overrides": [
+ {
+ "files": [
+ "**/*.js",
+ "**/*.ts"
+ ],
+ "rules": {
+ "author-annotation": "error"
+ }
+ }
+ ]
}
};
window.phet.chipper.stringRepos =
Index: chipper/js/data/localeInfoModule.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/chipper/js/data/localeInfoModule.js b/chipper/js/data/localeInfoModule.js
--- a/chipper/js/data/localeInfoModule.js (revision 143ff65960670a192c57862abebda6cda5a3a201)
+++ b/chipper/js/data/localeInfoModule.js (date 1714791362428)
@@ -20,21 +20,56 @@
localizedName: 'Abkhazian',
direction: 'ltr'
},
- ae: {
- name: 'Avestan',
- localizedName: 'Avestan',
+ ac: {
+ name: 'Achinese',
+ localizedName: 'بهسا اچيه',
direction: 'rtl'
},
+ ad: {
+ name: 'Adyghe',
+ localizedName: 'Адыгабзэ',
+ direction: 'ltr'
+ },
af: {
name: 'Afrikaans',
localizedName: 'Afrikaans',
direction: 'ltr'
},
+ ag: {
+ name: 'Angika',
+ localizedName: 'अंगिका',
+ direction: 'ltr'
+ },
+ ah: {
+ name: 'Masai',
+ localizedName: 'ɔl Maa',
+ direction: 'ltr'
+ },
+ ai: {
+ name: 'Ainu',
+ localizedName: 'アイヌ・イタㇰ Ainu-itak',
+ direction: 'ltr'
+ },
+ aj: {
+ name: 'Nogai',
+ localizedName: 'Ногай тили',
+ direction: 'ltr'
+ },
ak: {
name: 'Akan',
localizedName: 'Akan',
direction: 'ltr'
},
+ ak_FT: {
+ name: 'Fanti',
+ localizedName: 'Mfantse',
+ direction: 'ltr'
+ },
+ al: {
+ name: 'Aleut',
+ localizedName: 'Уна́ӈам тунуу́',
+ direction: 'ltr'
+ },
am: {
name: 'Amharic',
localizedName: 'Amharic',
@@ -45,31 +80,171 @@
localizedName: 'Aragonese',
direction: 'ltr'
},
+ ao: {
+ name: 'Makasar',
+ localizedName: 'Basa Mangkasara\' / ᨅᨔ ᨆᨀᨔᨑ',
+ direction: 'ltr'
+ },
+ ap: {
+ name: 'Arapaho',
+ localizedName: 'Hinónoʼeitíít',
+ direction: 'ltr'
+ },
ar: {
name: 'Arabic',
localizedName: 'العربية',
direction: 'rtl'
},
+ ar_AE: {
+ name: 'Arabic (U.A.E.)',
+ localizedName: 'العربية (الإمارات العربية المتحدة)',
+ direction: 'rtl'
+ },
+ ar_BH: {
+ name: 'Arabic (Bahrain)',
+ localizedName: 'العربية (البحرين)',
+ direction: 'rtl'
+ },
+ ar_DJ: {
+ name: 'Arabic (Djibouti)',
+ localizedName: 'العربية (جيبوتي)',
+ direction: 'rtl'
+ },
+ ar_DZ: {
+ name: 'Arabic (Algeria)',
+ localizedName: 'العربية (الجزائر)',
+ direction: 'rtl'
+ },
+ ar_EG: {
+ name: 'Arabic (Egypt)',
+ localizedName: 'العربية (مصر)',
+ direction: 'rtl'
+ },
+ ar_EH: {
+ name: 'Arabic (Sahrawi Republic)',
+ localizedName: 'العربية (الجمهورية الصحراوية)',
+ direction: 'rtl'
+ },
+ ar_ER: {
+ name: 'Arabic (Eritrea)',
+ localizedName: 'العربية (إريتريا)',
+ direction: 'rtl'
+ },
+ ar_IQ: {
+ name: 'Arabic (Iraq)',
+ localizedName: 'العربية (العراق)',
+ direction: 'rtl'
+ },
+ ar_JO: {
+ name: 'Arabic (Jordan)',
+ localizedName: 'العربية (الأردن)',
+ direction: 'rtl'
+ },
+ ar_KM: {
+ name: 'Arabic (Comoros)',
+ localizedName: 'العربية (جزر القمر)',
+ direction: 'rtl'
+ },
+ ar_KW: {
+ name: 'Arabic (Kuwait)',
+ localizedName: 'العربية (الكويت)',
+ direction: 'rtl'
+ },
+ ar_LB: {
+ name: 'Arabic (Lebanon)',
+ localizedName: 'العربية (لبنان)',
+ direction: 'rtl'
+ },
+ ar_LY: {
+ name: 'Arabic (Libya)',
+ localizedName: 'العربية (ليبيا)',
+ direction: 'rtl'
+ },
ar_MA: {
name: 'Arabic, Morocco',
localizedName: 'العربية (المغرب)',
direction: 'rtl'
},
+ ar_MR: {
+ name: 'Arabic (Mauritania)',
+ localizedName: 'العربية (موريتانيا)',
+ direction: 'rtl'
+ },
+ ar_OM: {
+ name: 'Arabic (Oman)',
+ localizedName: 'العربية (عُمان)',
+ direction: 'rtl'
+ },
+ ar_QA: {
+ name: 'Arabic (Qatar)',
+ localizedName: 'العربية (قطر)',
+ direction: 'rtl'
+ },
ar_SA: {
name: 'Arabic, Saudi Arabia',
localizedName: 'العربية (السعودية)',
direction: 'rtl'
+ },
+ ar_SD: {
+ name: 'Arabic (Sudan)',
+ localizedName: 'العربية (السودان)',
+ direction: 'rtl'
+ },
+ ar_SO: {
+ name: 'Arabic (Somalia)',
+ localizedName: 'العربية (الصومال)',
+ direction: 'rtl'
+ },
+ ar_SY: {
+ name: 'Arabic (Syria)',
+ localizedName: 'العربية (سوريا)',
+ direction: 'rtl'
+ },
+ ar_TD: {
+ name: 'Arabic (Chad)',
+ localizedName: 'العربية (تشاد)',
+ direction: 'rtl'
+ },
+ ar_TN: {
+ name: 'Arabic (Tunisia)',
+ localizedName: 'العربية (تونس)',
+ direction: 'rtl'
+ },
+ ar_YE: {
+ name: 'Arabic (Yemen)',
+ localizedName: 'العربية (اليمن)',
+ direction: 'rtl'
},
as: {
name: 'Assamese',
localizedName: 'Assamese',
direction: 'ltr'
},
+ at: {
+ name: 'Asturian',
+ localizedName: 'Asturianu',
+ direction: 'ltr'
+ },
+ au: {
+ name: 'Awadhi',
+ localizedName: 'अवधी',
+ direction: 'ltr'
+ },
av: {
name: 'Avaric',
localizedName: 'Avaric',
direction: 'ltr'
},
+ aw: {
+ name: 'Arawak',
+ localizedName: 'Lokono',
+ direction: 'ltr'
+ },
+ ax: {
+ name: 'Maithili',
+ localizedName: 'मैथिली',
+ direction: 'ltr'
+ },
ay: {
name: 'Aymara',
localizedName: 'Aymara',
@@ -84,6 +259,21 @@
name: 'Bashkir',
localizedName: 'Bashkir',
direction: 'ltr'
+ },
+ bb: {
+ name: 'Bemba',
+ localizedName: 'Chibemba',
+ direction: 'ltr'
+ },
+ bc: {
+ name: 'Baluchi',
+ localizedName: 'بلۏچی',
+ direction: 'rtl'
+ },
+ bd: {
+ name: 'Kimbundu',
+ localizedName: 'North Mbundu',
+ direction: 'ltr'
},
be: {
name: 'Belarusian',
@@ -95,15 +285,25 @@
localizedName: 'български',
direction: 'ltr'
},
- bh: {
- name: 'Bihari',
- localizedName: 'Bihari',
- direction: 'ltr'
- },
bi: {
name: 'Bislama',
localizedName: 'Bislama',
direction: 'ltr'
+ },
+ bj: {
+ name: 'Beja',
+ localizedName: 'Bidhaawyeet',
+ direction: 'ltr'
+ },
+ bk: {
+ name: 'Bikol',
+ localizedName: 'Bikol',
+ direction: 'ltr'
+ },
+ bl: {
+ name: 'Balinese',
+ localizedName: 'ᬪᬵᬱᬩᬮᬶ',
+ direction: 'ltr'
},
bm: {
name: 'Bambara',
@@ -119,6 +319,16 @@
name: 'Tibetan',
localizedName: 'Tibetan',
direction: 'ltr'
+ },
+ bp: {
+ name: 'Bhojpuri',
+ localizedName: 'भोजपुरी',
+ direction: 'ltr'
+ },
+ bq: {
+ name: 'Buginese',
+ localizedName: 'ᨅᨔ ᨕᨘᨁᨗ',
+ direction: 'ltr'
},
br: {
name: 'Breton',
@@ -130,11 +340,46 @@
localizedName: 'Bosnian',
direction: 'ltr'
},
+ bt: {
+ name: 'Minangkabau',
+ localizedName: 'Baso Minang',
+ direction: 'ltr'
+ },
+ bu: {
+ name: 'Buriat',
+ localizedName: 'буряад хэлэн',
+ direction: 'ltr'
+ },
+ bx: {
+ name: 'Bontok',
+ localizedName: 'Finallig',
+ direction: 'rtl'
+ },
+ by: {
+ name: 'Blin',
+ localizedName: 'ብሊና',
+ direction: 'ltr'
+ },
ca: {
name: 'Catalan',
localizedName: 'català',
direction: 'ltr'
},
+ cb: {
+ name: 'Cebuano',
+ localizedName: 'Sinugbuanong Binisayâ',
+ direction: 'ltr'
+ },
+ cc: {
+ name: 'Chuukese',
+ localizedName: 'Trukese',
+ direction: 'ltr'
+ },
+ cd: {
+ name: 'Caddo',
+ localizedName: 'Hasí:nay',
+ direction: 'ltr'
+ },
ce: {
name: 'Chechen',
localizedName: 'Chechen',
@@ -145,11 +390,51 @@
localizedName: 'Chamorro',
direction: 'ltr'
},
+ ci: {
+ name: 'Sicilian',
+ localizedName: 'Sicilianu',
+ direction: 'ltr'
+ },
+ cj: {
+ name: 'Cheyenne',
+ localizedName: 'Tsėhésenėstsestȯtse',
+ direction: 'ltr'
+ },
+ ck: {
+ name: 'Cherokee',
+ localizedName: 'ᏣᎳᎩ ᎦᏬᏂᎯᏍᏗ',
+ direction: 'ltr'
+ },
+ cl: {
+ name: 'Lunda',
+ localizedName: 'Chilunda',
+ direction: 'ltr'
+ },
+ cm: {
+ name: 'Mari',
+ localizedName: 'марий йылме',
+ direction: 'ltr'
+ },
+ cn: {
+ name: 'Chinook jargon',
+ localizedName: 'chinuk wawa',
+ direction: 'ltr'
+ },
co: {
name: 'Corsican',
localizedName: 'Corsican',
direction: 'ltr'
},
+ cp: {
+ name: 'Chipewyan',
+ localizedName: 'ᑌᓀᓱᒼᕄᓀ (Dënesųłiné)',
+ direction: 'ltr'
+ },
+ cq: {
+ name: 'kaqchikel',
+ localizedName: 'Kaqchikel Chʼabʼäl',
+ direction: 'ltr'
+ },
cr: {
name: 'Cree',
localizedName: 'Cree',
@@ -160,9 +445,9 @@
localizedName: 'čeština',
direction: 'ltr'
},
- cu: {
- name: 'Church Slavic',
- localizedName: 'Church Slavic',
+ ct: {
+ name: 'Crimean Tatar',
+ localizedName: 'Къырымтатарджа',
direction: 'ltr'
},
cv: {
@@ -170,59 +455,340 @@
localizedName: 'Chuvash',
direction: 'ltr'
},
+ cw: {
+ name: 'Choctaw',
+ localizedName: 'Chahta\'',
+ direction: 'ltr'
+ },
cy: {
name: 'Welsh',
localizedName: 'Welsh',
direction: 'ltr'
},
+ cz: {
+ name: 'Chocho',
+ localizedName: 'Ngiwa',
+ direction: 'ltr'
+ },
da: {
name: 'Danish',
localizedName: 'Dansk',
direction: 'ltr'
},
+ db: {
+ name: 'Dogrib',
+ localizedName: 'Tlicho',
+ direction: 'ltr'
+ },
de: {
name: 'German',
localizedName: 'Deutsch',
direction: 'ltr'
},
+ de_AT: {
+ name: 'German (Austria)',
+ localizedName: 'Deutsch (Österreich)',
+ direction: 'rtl'
+ },
+ de_CH: {
+ name: 'German (Switzerland)',
+ localizedName: 'Deutsch (Schweiz)',
+ direction: 'rtl'
+ },
+ de_LI: {
+ name: 'German (Liechtenstein)',
+ localizedName: 'Deutsch (Liechtenstein)',
+ direction: 'rtl'
+ },
+ de_LU: {
+ name: 'German (Luxembourg)',
+ localizedName: 'Deutsch (Luxemburg)',
+ direction: 'rtl'
+ },
+ dg: {
+ name: 'Adangme',
+ localizedName: 'Dangme',
+ direction: 'ltr'
+ },
+ di: {
+ name: 'Dogri',
+ localizedName: 'डोगरी; ڈوگرى',
+ direction: 'rtl'
+ },
+ dk: {
+ name: 'Dakota',
+ localizedName: 'Dakhótiyapi',
+ direction: 'ltr'
+ },
+ dl: {
+ name: 'Delaware',
+ localizedName: 'Lënapei èlixsuwakàn',
+ direction: 'ltr'
+ },
+ dm: {
+ name: 'Sidamo',
+ localizedName: 'Sidaamu Afoo',
+ direction: 'ltr'
+ },
+ dn: {
+ name: 'Dinka',
+ localizedName: 'Thuɔŋjäŋ',
+ direction: 'ltr'
+ },
+ dr: {
+ name: 'Dargwa',
+ localizedName: 'дарган мез',
+ direction: 'ltr'
+ },
+ ds: {
+ name: 'Lower Sorbian',
+ localizedName: 'Dolnoserbski',
+ direction: 'ltr'
+ },
+ du: {
+ name: 'Duala',
+ localizedName: 'Duālā',
+ direction: 'ltr'
+ },
dv: {
name: 'Divehi',
localizedName: 'Divehi',
direction: 'ltr'
+ },
+ dw: {
+ name: 'Sandawe',
+ localizedName: 'Sandaweeki',
+ direction: 'ltr'
+ },
+ dy: {
+ name: 'Dyula',
+ localizedName: 'Julakan',
+ direction: 'ltr'
},
dz: {
name: 'Dzongkha',
localizedName: 'Dzongkha',
direction: 'ltr'
+ },
+ ed: {
+ name: 'Bini',
+ localizedName: 'Ẹ̀dó',
+ direction: 'ltr'
},
ee: {
name: 'Ewe',
localizedName: 'Ewe',
direction: 'ltr'
},
+ ef: {
+ name: 'Efik',
+ localizedName: 'Usem Efịk',
+ direction: 'ltr'
+ },
+ ek: {
+ name: 'Ekajuk',
+ localizedName: 'Ekajuk',
+ direction: 'ltr'
+ },
el: {
name: 'Greek',
localizedName: 'Ελληνικά',
direction: 'ltr'
},
+ em: {
+ // eslint-disable-next-line bad-text
+ name: 'Slave (Athapascan)',
+ localizedName: 'Dene K\'e',
+ direction: 'ltr'
+ },
en: {
name: 'English',
localizedName: 'English',
direction: 'ltr'
+ },
+ en_AU: {
+ name: 'English (Australia)',
+ localizedName: 'English (Australia)',
+ direction: 'ltr'
+ },
+ en_BI: {
+ name: 'English (Burundi)',
+ localizedName: 'English (Burundi)',
+ direction: 'ltr'
+ },
+ en_BW: {
+ name: 'English (Botswana)',
+ localizedName: 'English (Botswana)',
+ direction: 'ltr'
+ },
+ en_BZ: {
+ name: 'English (Belize)',
+ localizedName: 'English (Belize)',
+ direction: 'ltr'
},
en_CA: {
name: 'English, Canada',
localizedName: 'English (Canada)',
direction: 'ltr'
},
+ en_CB: {
+ name: 'English (Caribbean)',
+ localizedName: 'English (Caribbean)',
+ direction: 'ltr'
+ },
+ en_CM: {
+ name: 'English (Cameroon)',
+ localizedName: 'English (Cameroon)',
+ direction: 'ltr'
+ },
+ en_ER: {
+ name: 'English (Eritrea)',
+ localizedName: 'English (Eritrea)',
+ direction: 'ltr'
+ },
+ en_ET: {
+ name: 'English (Ethiopia)',
+ localizedName: 'English (Ethiopia)',
+ direction: 'ltr'
+ },
en_GB: {
name: 'English, United Kingdom',
localizedName: 'English (United Kingdom)',
direction: 'ltr'
},
- eo: {
- name: 'Esperanto',
- localizedName: 'Esperanto',
+ en_GH: {
+ name: 'English (Ghana)',
+ localizedName: 'English (Ghana)',
+ direction: 'ltr'
+ },
+ en_GM: {
+ name: 'English (Gambia)',
+ localizedName: 'English (Gambia)',
+ direction: 'ltr'
+ },
+ en_IE: {
+ name: 'English (Ireland)',
+ localizedName: 'English (Ireland)',
+ direction: 'ltr'
+ },
+ en_IN: {
+ name: 'English (India)',
+ localizedName: 'English (India)',
+ direction: 'ltr'
+ },
+ en_JM: {
+ name: 'English (Jamaica)',
+ localizedName: 'English (Jamaica)',
+ direction: 'ltr'
+ },
+ en_KE: {
+ name: 'English (Kenya)',
+ localizedName: 'English (Kenya)',
+ direction: 'ltr'
+ },
+ en_LR: {
+ name: 'English (Liberia)',
+ localizedName: 'English (Liberia)',
+ direction: 'ltr'
+ },
+ en_LS: {
+ name: 'English (Lesotho)',
+ localizedName: 'English (Lesotho)',
+ direction: 'ltr'
+ },
+ en_MU: {
+ name: 'English (Mauritius)',
+ localizedName: 'English (Mauritius)',
+ direction: 'ltr'
+ },
+ en_MW: {
+ name: 'English (Malawi)',
+ localizedName: 'English (Malawi)',
+ direction: 'ltr'
+ },
+ en_MY: {
+ name: 'English (Malaysia)',
+ localizedName: 'English (Malaysia)',
+ direction: 'ltr'
+ },
+ en_NA: {
+ name: 'English (Namibia)',
+ localizedName: 'English (Namibia)',
+ direction: 'ltr'
+ },
+ en_NG: {
+ name: 'English (Nigeria)',
+ localizedName: 'English (Nigeria)',
+ direction: 'ltr'
+ },
+ en_NZ: {
+ name: 'English (New Zealand)',
+ localizedName: 'English (New Zealand)',
+ direction: 'ltr'
+ },
+ en_PH: {
+ name: 'English (Republic of the Philippines)',
+ localizedName: 'English (Republic of the Philippines)',
+ direction: 'ltr'
+ },
+ en_RW: {
+ name: 'English (Rwanda)',
+ localizedName: 'English (Rwanda)',
+ direction: 'ltr'
+ },
+ en_SC: {
+ name: 'English (Seychelles)',
+ localizedName: 'English (Seychelles)',
+ direction: 'ltr'
+ },
+ en_SL: {
+ name: 'English (Sierra Leone)',
+ localizedName: 'English (Sierra Leone)',
+ direction: 'ltr'
+ },
+ en_SS: {
+ name: 'English (South Sudan)',
+ localizedName: 'English (South Sudan)',
+ direction: 'ltr'
+ },
+ en_SZ: {
+ name: 'English (Eswatini)',
+ localizedName: 'English (Eswatini)',
+ direction: 'ltr'
+ },
+ en_TT: {
+ name: 'English (Trinidad and Tobago)',
+ localizedName: 'English (Trinidad and Tobago)',
+ direction: 'ltr'
+ },
+ en_TZ: {
+ name: 'English (Tanzania)',
+ localizedName: 'English (Tanzania)',
+ direction: 'ltr'
+ },
+ en_UG: {
+ name: 'English (Uganda)',
+ localizedName: 'English (Uganda)',
+ direction: 'ltr'
+ },
+ en_ZA: {
+ name: 'English (South Africa)',
+ localizedName: 'English (South Africa)',
+ direction: 'ltr'
+ },
+ en_ZM: {
+ name: 'English (Zambia)',
+ localizedName: 'English (Zambia)',
+ direction: 'ltr'
+ },
+ en_ZW: {
+ name: 'English (Zimbabwe)',
+ localizedName: 'English (Zimbabwe)',
+ direction: 'ltr'
+ },
+ er: {
+ name: 'Serer',
+ localizedName: 'Seereer',
direction: 'ltr'
},
es: {
@@ -230,6 +796,21 @@
localizedName: 'español',
direction: 'ltr'
},
+ es_AR: {
+ name: 'Spanish (Argentina)',
+ localizedName: 'español (Argentina)',
+ direction: 'rtl'
+ },
+ es_BO: {
+ name: 'Spanish (Bolivia)',
+ localizedName: 'español (Bolivia)',
+ direction: 'rtl'
+ },
+ es_CL: {
+ name: 'Spanish (Chile)',
+ localizedName: 'español (Chile)',
+ direction: 'rtl'
+ },
es_CO: {
name: 'Spanish, Colombia',
localizedName: 'español (Colombia)',
@@ -240,21 +821,86 @@
localizedName: 'español (Costa Rica)',
direction: 'ltr'
},
+ es_DO: {
+ name: 'Spanish (Dominican Republic)',
+ localizedName: 'español (Dominican Republic)',
+ direction: 'rtl'
+ },
+ es_EC: {
+ name: 'Spanish (Ecuador)',
+ localizedName: 'español (Ecuador)',
+ direction: 'rtl'
+ },
es_ES: {
name: 'Spanish, Spain',
localizedName: 'español (España)',
direction: 'ltr'
},
+ es_GQ: {
+ name: 'Spanish (Equatorial Guinea)',
+ localizedName: 'español (Equatorial Guinea)',
+ direction: 'rtl'
+ },
+ es_GT: {
+ name: 'Spanish (Guatemala)',
+ localizedName: 'español (Guatemala)',
+ direction: 'rtl'
+ },
+ es_HN: {
+ name: 'Spanish (Honduras)',
+ localizedName: 'español (Honduras)',
+ direction: 'rtl'
+ },
es_MX: {
name: 'Spanish, Mexico',
localizedName: 'español (México)',
direction: 'ltr'
},
+ es_NI: {
+ name: 'Spanish (Nicaragua)',
+ localizedName: 'español (Nicaragua)',
+ direction: 'rtl'
+ },
+ es_PA: {
+ name: 'Spanish (Panama)',
+ localizedName: 'español (Panama)',
+ direction: 'rtl'
+ },
es_PE: {
name: 'Spanish, Peru',
localizedName: 'español (Perú)',
direction: 'ltr'
},
+ es_PR: {
+ name: 'Spanish (Puerto Rico)',
+ localizedName: 'español (Puerto Rico)',
+ direction: 'rtl'
+ },
+ es_PY: {
+ name: 'Spanish (Paraguay)',
+ localizedName: 'español (Paraguay)',
+ direction: 'rtl'
+ },
+ es_SV: {
+ name: 'Spanish (El Salvador)',
+ localizedName: 'español (El Salvador)',
+ direction: 'rtl'
+ },
+ es_US: {
+ name: 'Spanish (United States)',
+ localizedName: 'español (United States)',
+ direction: 'rtl'
+ },
+ es_UY: {
+ name: 'Spanish (Uruguay)',
+ localizedName: 'español (Uruguay)',
+ direction: 'rtl'
+ },
+ es_VE: {
+ name: 'Spanish (Venezuela)',
+ localizedName: 'español (Venezuela)',
+ direction: 'rtl'
+ },
et: {
name: 'Estonian',
localizedName: 'Eesti',
@@ -265,16 +911,31 @@
localizedName: 'Basque',
direction: 'ltr'
},
+ ew: {
+ name: 'Ewondo',
+ localizedName: 'Beti',
+ direction: 'ltr'
+ },
fa: {
name: 'Persian',
localizedName: 'Persian',
direction: 'rtl'
},
+ fa_DA: {
+ name: 'Persian (Dari)',
+ localizedName: 'Dari',
+ direction: 'rtl'
+ },
ff: {
name: 'Fulah',
localizedName: 'Fulah',
direction: 'ltr'
},
+ fg: {
+ name: 'Fon',
+ localizedName: 'Fon gbè',
+ direction: 'ltr'
+ },
fi: {
name: 'Finnish',
localizedName: 'suomi',
@@ -285,6 +946,16 @@
localizedName: 'Fijian',
direction: 'ltr'
},
+ fl: {
+ name: 'Filipino',
+ localizedName: 'Wikang Filipino',
+ direction: 'ltr'
+ },
+ fn: {
+ name: 'Fang',
+ localizedName: 'Pangwe',
+ direction: 'ltr'
+ },
fo: {
name: 'Faroese',
localizedName: 'Faroese',
@@ -294,10 +965,150 @@
name: 'French',
localizedName: 'français',
direction: 'ltr'
+ },
+ fr_BE: {
+ name: 'French (Belgium)',
+ localizedName: 'français (Belgium)',
+ direction: 'rtl'
+ },
+ fr_BF: {
+ name: 'French (Burkina Faso)',
+ localizedName: 'français (Burkina Faso)',
+ direction: 'rtl'
+ },
+ fr_BI: {
+ name: 'French (Burundi)',
+ localizedName: 'français (Burundi)',
+ direction: 'rtl'
+ },
+ fr_BJ: {
+ name: 'French (Benin)',
+ localizedName: 'français (Bénin)',
+ direction: 'rtl'
+ },
+ fr_CA: {
+ name: 'French (Canada)',
+ localizedName: 'français (Canada)',
+ direction: 'rtl'
+ },
+ fr_CD: {
+ name: 'French (DR Congo)',
+ localizedName: 'français (RD Congo)',
+ direction: 'rtl'
+ },
+ fr_CF: {
+ name: 'French (Central African Republic)',
+ localizedName: 'français (République centrafricaine)',
+ direction: 'rtl'
+ },
+ fr_CG: {
+ name: 'French (Congo Republic)',
+ localizedName: 'français (République du Congo)',
+ direction: 'rtl'
+ },
+ fr_CH: {
+ name: 'French (Switzerland)',
+ localizedName: 'français (Suisse)',
+ direction: 'rtl'
+ },
+ fr_CI: {
+ name: 'French (Côte d’Ivoire)',
+ localizedName: 'français (Côte d\'Ivoire)',
+ direction: 'rtl'
+ },
+ fr_CM: {
+ name: 'French (Cameroon)',
+ localizedName: 'français (Cameroon)',
+ direction: 'rtl'
+ },
+ fr_DJ: {
+ name: 'French (Djibouti)',
+ localizedName: 'français (Djibouti)',
+ direction: 'rtl'
+ },
+ fr_EH: {
+ name: 'French (Sahrawi Republic)',
+ localizedName: 'français (République sahraouie)',
+ direction: 'rtl'
+ },
+ fr_GA: {
+ name: 'French (Gabon)',
+ localizedName: 'français (Gabon)',
+ direction: 'rtl'
+ },
+ fr_GN: {
+ name: 'French (Guinea)',
+ localizedName: 'français (Guinée)',
+ direction: 'rtl'
+ },
+ fr_GQ: {
+ name: 'French (Equatorial Guinea)',
+ localizedName: 'français (Guinée Équatoriale)',
+ direction: 'rtl'
+ },
+ fr_KM: {
+ name: 'French (Comoros)',
+ localizedName: 'français (Comores)',
+ direction: 'rtl'
+ },
+ fr_LU: {
+ name: 'French (Luxembourg)',
+ localizedName: 'français (Luxembourg)',
+ direction: 'rtl'
+ },
+ fr_MC: {
+ name: 'French (Monaco)',
+ localizedName: 'français (Monaco)',
+ direction: 'rtl'
+ },
+ fr_MG: {
+ name: 'French (Madagascar)',
+ localizedName: 'français (Madagascar)',
+ direction: 'rtl'
+ },
+ fr_ML: {
+ name: 'French (Mali)',
+ localizedName: 'français (Mali)',
+ direction: 'rtl'
+ },
+ fr_NE: {
+ name: 'French (Niger)',
+ localizedName: 'français (Niger)',
+ direction: 'rtl'
+ },
+ fr_RW: {
+ name: 'French (Rwanda)',
+ localizedName: 'français (Rwanda)',
+ direction: 'rtl'
+ },
+ fr_SC: {
+ name: 'French (Seychelles)',
+ localizedName: 'français (les Seychelles)',
+ direction: 'rtl'
+ },
+ fr_SN: {
+ name: 'French (Senegal)',
+ localizedName: 'français (Sénégal)',
+ direction: 'rtl'
+ },
+ fr_TD: {
+ name: 'French (Chad)',
+ localizedName: 'français (Tchad)',
+ direction: 'rtl'
+ },
+ fr_TG: {
+ name: 'French (Togo)',
+ localizedName: 'français (Togo)',
+ direction: 'rtl'
+ },
+ fs: {
+ name: 'East Frisian Low Saxon',
+ localizedName: 'Oostfreesk',
+ direction: 'ltr'
},
fu: {
name: 'Friulian',
- localizedName: 'fu',
+ localizedName: 'furlan',
direction: 'ltr'
},
fy: {
@@ -310,11 +1121,36 @@
localizedName: 'Gaeilge',
direction: 'ltr'
},
+ gb: {
+ name: 'Gbaya',
+ localizedName: 'Gbaya–Manza–Ngbaka',
+ direction: 'ltr'
+ },
+ gc: {
+ name: 'Galibi Carib',
+ localizedName: 'Kari\'nja',
+ direction: 'ltr'
+ },
gd: {
name: 'Scottish Gaelic',
localizedName: 'Scottish Gaelic',
direction: 'ltr'
},
+ gf: {
+ name: 'Garifuna',
+ localizedName: 'Garifuna',
+ direction: 'ltr'
+ },
+ gg: {
+ name: 'Ga',
+ localizedName: 'Gã',
+ direction: 'ltr'
+ },
+ gk: {
+ name: 'Tokelau',
+ localizedName: 'gagana Tokelau',
+ direction: 'ltr'
+ },
gl: {
name: 'Galician',
localizedName: 'Gallegan',
@@ -325,6 +1161,26 @@
localizedName: 'Guarani',
direction: 'ltr'
},
+ go: {
+ name: 'Gondi',
+ localizedName: 'గోండి',
+ direction: 'ltr'
+ },
+ gr: {
+ name: 'Gorontalo',
+ localizedName: 'Bahasa Hulontalo',
+ direction: 'ltr'
+ },
+ gs: {
+ name: 'Swiss German',
+ localizedName: 'Schwiizerdütsch',
+ direction: 'ltr'
+ },
+ gt: {
+ name: 'Gilbertese',
+ localizedName: 'Taetae ni Kiribati',
+ direction: 'ltr'
+ },
gu: {
name: 'Gujarati',
localizedName: 'Gujarati',
@@ -335,26 +1191,81 @@
localizedName: 'Manx',
direction: 'ltr'
},
+ gw: {
+ name: 'Gwich\'in',
+ localizedName: 'Dinjii Zhu’ Ginjik',
+ direction: 'ltr'
+ },
+ gy: {
+ name: 'Gayo',
+ localizedName: 'Basa Gayo',
+ direction: 'ltr'
+ },
ha: {
name: 'Hausa',
localizedName: 'Hausa',
direction: 'ltr'
},
+ hd: {
+ name: 'Mandar',
+ localizedName: 'Mandar',
+ direction: 'ltr'
+ },
+ hh: {
+ name: 'Mohawk',
+ localizedName: 'Kanien’kéha',
+ direction: 'ltr'
+ },
hi: {
name: 'Hindi',
localizedName: 'हिंदी',
direction: 'ltr'
+ },
+ hk: {
+ name: 'Kurukh',
+ localizedName: 'कुड़ुख़',
+ direction: 'ltr'
+ },
+ hl: {
+ name: 'Hiligaynon',
+ localizedName: 'Ilonggo',
+ direction: 'ltr'
+ },
+ hm: {
+ name: 'Hmong',
+ localizedName: '𖬇𖬰𖬞 𖬌𖬣𖬵',
+ direction: 'ltr'
+ },
+ hn: {
+ name: 'Shan',
+ localizedName: 'ၵႂၢမ်းတႆးယႂ်',
+ direction: 'ltr'
},
ho: {
name: 'Hiri Motu',
localizedName: 'Hiri Motu',
direction: 'ltr'
},
+ hp: {
+ name: 'Hupa',
+ localizedName: 'Na:tinixwe Mixine:whe\'',
+ direction: 'ltr'
+ },
hr: {
name: 'Croatian',
localizedName: 'hrvatski',
direction: 'ltr'
},
+ hr_BA: {
+ name: 'Croatian (Latin, Bosnia, and Herzegovina)',
+ localizedName: 'hrvatski (Latinica, Bosna i Hercegovina)',
+ direction: 'ltr'
+ },
+ hs: {
+ name: 'Upper Sorbian',
+ localizedName: 'hornjoserbšćina',
+ direction: 'ltr'
+ },
ht: {
name: 'Haitian',
localizedName: 'Haitian',
@@ -365,6 +1276,16 @@
localizedName: 'magyar',
direction: 'ltr'
},
+ hw: {
+ name: 'Hawaiian',
+ localizedName: 'ʻŌlelo Hawaiʻi',
+ direction: 'ltr'
+ },
+ hx: {
+ name: 'Haida',
+ localizedName: 'X̱aat Kíl',
+ direction: 'ltr'
+ },
hy: {
name: 'Armenian',
localizedName: 'Armenian',
@@ -375,14 +1296,9 @@
localizedName: 'Herero',
direction: 'ltr'
},
- ia: {
- name: 'Interlingua',
- localizedName: 'Interlingua',
- direction: 'ltr'
- },
- ie: {
- name: 'Interlingue',
- localizedName: 'Interlingue',
+ ib: {
+ name: 'Iban',
+ localizedName: 'Jaku Iban',
direction: 'ltr'
},
ig: {
@@ -390,6 +1306,11 @@
localizedName: 'Igbo',
direction: 'ltr'
},
+ ih: {
+ name: 'Ingush',
+ localizedName: 'ГӀалгӀай мотт',
+ direction: 'ltr'
+ },
ii: {
name: 'Sichuan Yi',
localizedName: 'Sichuan Yi',
@@ -399,15 +1320,25 @@
name: 'Inupiaq',
localizedName: 'Inupiaq',
direction: 'ltr'
+ },
+ il: {
+ name: 'Iloko',
+ localizedName: 'Pagsasao nga Ilokano',
+ direction: 'ltr'
+ },
+ im: {
+ name: 'Southern Sami',
+ localizedName: 'Åarjelsaemien gïele',
+ direction: 'ltr'
},
in: {
name: 'Indonesian',
localizedName: 'Bahasa Indonesia',
direction: 'ltr'
},
- io: {
- name: 'Ido',
- localizedName: 'Ido',
+ iq: {
+ name: 'Miskito',
+ localizedName: 'Miskitu',
direction: 'ltr'
},
is: {
@@ -420,26 +1351,51 @@
localizedName: 'italiano',
direction: 'ltr'
},
+ it_CH: {
+ name: 'Italian (Switzerland)',
+ localizedName: 'italiano(Svizzera)',
+ direction: 'rtl'
+ },
iu: {
name: 'Inuktitut',
localizedName: 'Inuktitut',
direction: 'ltr'
},
+ iv: {
+ name: 'Tiv',
+ localizedName: 'Tiv',
+ direction: 'ltr'
+ },
iw: {
name: 'Hebrew',
localizedName: 'עברית',
direction: 'rtl'
},
+ ix: {
+ name: 'ixil',
+ localizedName: 'Ixhil',
+ direction: 'ltr'
+ },
ja: {
name: 'Japanese',
localizedName: '日本語',
direction: 'ltr'
},
- ji: {
- name: 'Yiddish',
- localizedName: 'Yiddish',
+ jb: {
+ name: 'q\'anjob\'al',
+ localizedName: 'Kanjobal',
+ direction: 'ltr'
+ },
+ jp: {
+ name: 'Judeo-Persian',
+ localizedName: 'Dzhidi',
direction: 'ltr'
},
+ jr: {
+ name: 'Judeo-Arabic',
+ localizedName: 'عربية يهودية / ערבית יהודית',
+ direction: 'rtl'
+ },
jv: {
name: 'Javanese',
localizedName: 'Javanese',
@@ -450,11 +1406,41 @@
localizedName: 'Georgian',
direction: 'ltr'
},
+ kb: {
+ name: 'Kabyle',
+ localizedName: 'Tamaziɣt Taqbaylit',
+ direction: 'ltr'
+ },
+ kc: {
+ name: 'Kachin',
+ localizedName: 'Jingpho',
+ direction: 'ltr'
+ },
+ kd: {
+ name: 'Kabardian',
+ localizedName: 'Адыгэбзэ (Къэбэрдейбзэ)',
+ direction: 'ltr'
+ },
+ ke: {
+ name: 'Kpelle',
+ localizedName: 'Kpɛlɛwoo',
+ direction: 'ltr'
+ },
+ kf: {
+ name: 'Karachay-Balkar',
+ localizedName: 'Къарачай-Малкъар тил',
+ direction: 'ltr'
+ },
kg: {
name: 'Kongo',
localizedName: 'Kongo',
direction: 'ltr'
},
+ kh: {
+ name: 'Khasi',
+ localizedName: 'কা কতিয়েন খাশি',
+ direction: 'ltr'
+ },
ki: {
name: 'Kikuyu',
localizedName: 'Kikuyu',
@@ -490,6 +1476,16 @@
localizedName: '한국어',
direction: 'ltr'
},
+ kp: {
+ name: 'Kara-Kalpak',
+ localizedName: 'Qaraqalpaq tili',
+ direction: 'ltr'
+ },
+ kq: {
+ name: 'Kalenjin',
+ localizedName: 'Kalenjin',
+ direction: 'rtl'
+ },
kr: {
name: 'Kanuri',
localizedName: 'Kanuri',
@@ -499,15 +1495,20 @@
name: 'Kashmiri',
localizedName: 'Kashmiri',
direction: 'ltr'
+ },
+ kt: {
+ name: 'Kutenai',
+ localizedName: 'Ktunaxa',
+ direction: 'ltr'
},
ku: {
- name: 'Kurdish',
- localizedName: 'Kurdish',
+ name: 'Kurdish (Sorani)',
+ localizedName: 'Sorani',
direction: 'ltr'
},
ku_TR: {
- name: 'Kurdish, Turkey',
- localizedName: 'Kurdish (Turkey)',
+ name: 'Kurdish (Kurmanji)',
+ localizedName: 'Kurdish (Kurmanji)',
direction: 'ltr'
},
kv: {
@@ -520,26 +1521,41 @@
localizedName: 'Cornish',
direction: 'ltr'
},
+ kx: {
+ name: 'Kamba',
+ localizedName: 'Kikamba',
+ direction: 'ltr'
+ },
ky: {
name: 'Kirghiz',
localizedName: 'Kirghiz',
direction: 'ltr'
},
- la: {
- name: 'Latin',
- localizedName: 'Latin',
+ kz: {
+ name: 'Kosraean',
+ localizedName: 'Kosraean',
direction: 'ltr'
},
lb: {
name: 'Luxembourgish',
localizedName: 'Luxembourgish',
direction: 'ltr'
+ },
+ ld: {
+ name: 'Ladino',
+ localizedName: 'Judeo-español',
+ direction: 'ltr'
},
lg: {
name: 'Ganda',
localizedName: 'Ganda',
direction: 'ltr'
},
+ lh: {
+ name: 'Lahnda',
+ localizedName: 'بھارت کا',
+ direction: 'rtl'
+ },
li: {
name: 'Limburgish',
localizedName: 'Limburgish',
@@ -550,6 +1566,16 @@
localizedName: 'Lakota',
direction: 'ltr'
},
+ ll: {
+ name: 'Luo (Kenya and Tanzania)',
+ localizedName: 'Dholuo',
+ direction: 'ltr'
+ },
+ lm: {
+ name: 'Lamba',
+ localizedName: 'Ichilamba',
+ direction: 'ltr'
+ },
ln: {
name: 'Lingala',
localizedName: 'Lingala',
@@ -560,6 +1586,16 @@
localizedName: 'Lao',
direction: 'ltr'
},
+ lp: {
+ name: 'Selkup',
+ localizedName: 'чу́мэл шэ',
+ direction: 'ltr'
+ },
+ ls: {
+ name: 'Lushai',
+ localizedName: 'Mizo ṭawng',
+ direction: 'ltr'
+ },
lt: {
name: 'Lithuanian',
localizedName: 'Lietuvių',
@@ -575,6 +1611,56 @@
localizedName: 'Latviešu',
direction: 'ltr'
},
+ lw: {
+ name: 'Acoli',
+ localizedName: 'Lwo',
+ direction: 'ltr'
+ },
+ lx: {
+ name: 'Luba-Lulua',
+ localizedName: 'Cilubà',
+ direction: 'ltr'
+ },
+ ly: {
+ name: 'Luyia',
+ localizedName: 'Luyia',
+ direction: 'rtl'
+ },
+ lz: {
+ name: 'Lezghian',
+ localizedName: 'Лезги чӏал',
+ direction: 'ltr'
+ },
+ ma: {
+ name: 'Magahi',
+ localizedName: 'मगही',
+ direction: 'ltr'
+ },
+ mb: {
+ name: 'Basa',
+ localizedName: 'Mbene',
+ direction: 'ltr'
+ },
+ mc: {
+ name: 'Manchu',
+ localizedName: 'ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ Manju gisun',
+ direction: 'ltr'
+ },
+ md: {
+ name: 'Madurese',
+ localizedName: 'Madhura',
+ direction: 'ltr'
+ },
+ me: {
+ name: 'Mende',
+ localizedName: 'Mɛnde yia',
+ direction: 'ltr'
+ },
+ mf: {
+ name: 'Moksha',
+ localizedName: 'мокшень кяль',
+ direction: 'ltr'
+ },
mg: {
name: 'Malagasy',
localizedName: 'Malagasy',
@@ -600,14 +1686,24 @@
localizedName: 'Malayalam',
direction: 'ltr'
},
+ mm: {
+ name: 'Timne',
+ localizedName: 'KʌThemnɛ',
+ direction: 'ltr'
+ },
mn: {
name: 'Mongolian',
localizedName: 'Mongolian',
direction: 'ltr'
},
mo: {
- name: 'Moldavian',
- localizedName: 'Moldavian',
+ name: 'Individual',
+ localizedName: 'Living',
+ direction: 'ltr'
+ },
+ mq: {
+ name: 'Mi\'kmaq',
+ localizedName: 'Míkmawísimk',
direction: 'ltr'
},
mr: {
@@ -620,15 +1716,45 @@
localizedName: 'Bahasa Melayu',
direction: 'ltr'
},
+ ms_MY: {
+ name: 'Malay (Standard)',
+ localizedName: 'بهاس ملايو مليسيا',
+ direction: 'rtl'
+ },
mt: {
name: 'Maltese',
localizedName: 'Malti',
direction: 'ltr'
},
+ mu: {
+ name: 'Creek',
+ localizedName: 'Mvskoke',
+ direction: 'ltr'
+ },
+ mv: {
+ name: 'Erzya',
+ localizedName: 'эрзянь кель',
+ direction: 'ltr'
+ },
+ mw: {
+ name: 'Mirandese',
+ localizedName: 'mirandés',
+ direction: 'ltr'
+ },
+ mx: {
+ name: 'mam',
+ localizedName: 'Qyool Mam',
+ direction: 'ltr'
+ },
my: {
name: 'Burmese',
localizedName: 'Burmese',
direction: 'ltr'
+ },
+ mz: {
+ name: 'Mazateco',
+ localizedName: 'En Ngixo',
+ direction: 'ltr'
},
na: {
name: 'Nauru',
@@ -639,6 +1765,11 @@
name: 'Norwegian Bokmal',
localizedName: 'Norwegian Bokmål',
direction: 'ltr'
+ },
+ nc: {
+ name: 'Nyankole',
+ localizedName: 'Orunyankore',
+ direction: 'ltr'
},
nd: {
name: 'North Ndebele',
@@ -650,51 +1781,161 @@
localizedName: 'Nepali',
direction: 'ltr'
},
+ nf: {
+ name: 'Northern Frisian',
+ localizedName: 'Frasch',
+ direction: 'ltr'
+ },
ng: {
name: 'Ndonga',
localizedName: 'Ndonga',
direction: 'ltr'
+ },
+ nh: {
+ name: 'Nyoro',
+ localizedName: 'Orunyoro',
+ direction: 'ltr'
+ },
+ ni: {
+ name: 'Nias',
+ localizedName: 'Li Niha',
+ direction: 'ltr'
+ },
+ nk: {
+ name: 'Norwegian',
+ localizedName: 'norsk',
+ direction: 'ltr'
},
nl: {
name: 'Dutch',
localizedName: 'Nederlands',
direction: 'ltr'
+ },
+ nl_BE: {
+ name: 'Dutch (Belgium)',
+ localizedName: 'Nederlands (België)',
+ direction: 'rtl'
+ },
+ nm: {
+ name: 'Inari Sami',
+ localizedName: 'anarâškielâ',
+ direction: 'ltr'
},
nn: {
name: 'Norwegian Nynorsk',
localizedName: 'Norwegian Nynorsk',
direction: 'ltr'
},
+ np: {
+ name: 'Neapolitan',
+ localizedName: 'napulitano',
+ direction: 'ltr'
+ },
+ nq: {
+ name: 'N\'Ko',
+ localizedName: 'ߒߞߏ',
+ direction: 'rtl'
+ },
nr: {
name: 'South Ndebele',
localizedName: 'South Ndebele',
direction: 'ltr'
},
+ ns: {
+ name: 'Low German',
+ localizedName: 'Plattdütsch',
+ direction: 'ltr'
+ },
+ nt: {
+ name: 'Santali',
+ localizedName: 'ᱥᱟᱱᱛᱟᱲᱤ',
+ direction: 'ltr'
+ },
+ nu: {
+ name: 'Niuean',
+ localizedName: 'ko e vagahau Niuē',
+ direction: 'ltr'
+ },
nv: {
name: 'Navajo',
localizedName: 'Navajo',
direction: 'ltr'
},
+ nw: {
+ name: 'Nepal Bhasa',
+ localizedName: 'नेपाल भाषा',
+ direction: 'ltr'
+ },
+ nx: {
+ name: 'Nyamwezi',
+ localizedName: 'Nyamwezi',
+ direction: 'ltr'
+ },
ny: {
name: 'Chichewa',
localizedName: 'Nyanja',
direction: 'ltr'
+ },
+ nz: {
+ name: 'Nzima',
+ localizedName: 'Nzima',
+ direction: 'ltr'
+ },
+ oa: {
+ name: 'Osage',
+ localizedName: 'Wazhazhe ie / 𐓏𐓘𐓻𐓘𐓻𐓟 𐒻𐓟',
+ direction: 'ltr'
},
oc: {
name: 'Occitan',
localizedName: 'Occitan',
direction: 'ltr'
+ },
+ oe: {
+ name: 'Montenegrin',
+ localizedName: 'crnogorski / црногорски',
+ direction: 'ltr'
+ },
+ og: {
+ name: 'Mandingo',
+ localizedName: 'Mandi\'nka kango',
+ direction: 'ltr'
+ },
+ oi: {
+ name: 'Soninke',
+ localizedName: 'Sooninkanxanne',
+ direction: 'ltr'
},
oj: {
name: 'Ojibwa',
localizedName: 'Ojibwa',
direction: 'ltr'
},
+ ok: {
+ name: 'Konkani',
+ localizedName: 'कोंकणी',
+ direction: 'ltr'
+ },
+ ol: {
+ name: 'Skolt Sami',
+ localizedName: 'sääʹmǩiõll',
+ direction: 'ltr'
+ },
om: {
name: 'Oromo',
localizedName: 'Oromo',
direction: 'ltr'
},
+ oo: {
+ name: 'Mossi',
+ localizedName: 'Mooré',
+ direction: 'ltr'
+ },
+ op: {
+ name: 'Totonaca',
+ localizedName: 'Totonac–Tepehua',
+ direction: 'ltr'
+ },
or: {
name: 'Oriya',
localizedName: 'Oriya',
@@ -705,14 +1946,24 @@
localizedName: 'Ossetian',
direction: 'ltr'
},
+ ot: {
+ name: 'Scots',
+ localizedName: 'Lallans',
+ direction: 'ltr'
+ },
+ ou: {
+ name: 'Southern Altai',
+ localizedName: 'Алтай тили',
+ direction: 'ltr'
+ },
pa: {
name: 'Panjabi',
localizedName: 'Panjabi',
direction: 'ltr'
},
- pi: {
- name: 'Pali',
- localizedName: 'Pali',
+ pg: {
+ name: 'Pangasinan',
+ localizedName: 'Salitan Pangasinan',
direction: 'ltr'
},
pl: {
@@ -720,6 +1971,21 @@
localizedName: 'polski',
direction: 'ltr'
},
+ pm: {
+ name: 'Pampanga',
+ localizedName: 'Amánung Kapampangan',
+ direction: 'ltr'
+ },
+ pn: {
+ name: 'Pohnpeian',
+ localizedName: 'Lokaiahn Pohnpei',
+ direction: 'ltr'
+ },
+ pp: {
+ name: 'Papiamento',
+ localizedName: 'Papiamentu',
+ direction: 'ltr'
+ },
ps: {
name: 'Pashto',
localizedName: 'Pushto',
@@ -730,19 +1996,99 @@
localizedName: 'português',
direction: 'ltr'
},
+ pt_AO: {
+ name: 'Portuguese(Angola)',
+ localizedName: 'português(Angola)',
+ direction: 'ltr'
+ },
pt_BR: {
name: 'Portuguese, Brazil',
localizedName: 'português (Brasil)',
direction: 'ltr'
},
+ pt_CV: {
+ name: 'Portuguese(Cabo verde)',
+ localizedName: 'português(Cabo verde)',
+ direction: 'ltr'
+ },
+ pt_GQ: {
+ name: 'Portuguese(Equatorial Guinea)',
+ localizedName: 'português(Guiné Equatorial)',
+ direction: 'ltr'
+ },
+ pt_GW: {
+ name: 'Portuguese(Guinea-Bissau)',
+ localizedName: 'português(Guiné-Bissau)',
+ direction: 'ltr'
+ },
+ pt_MZ: {
+ name: 'Portuguese(Mozambique)',
+ localizedName: 'português(Moçambique)',
+ direction: 'ltr'
+ },
+ pt_ST: {
+ name: 'Portuguese(São Tomé and Príncipe)',
+ localizedName: 'português(São Tomé e Príncipe)',
+ direction: 'ltr'
+ },
+ pu: {
+ name: 'Palauan',
+ localizedName: 'a tekoi er a Belau',
+ direction: 'ltr'
+ },
+ qc: {
+ name: 'k\'iche\'',
+ localizedName: 'Qatzijobʼal',
+ direction: 'ltr'
+ },
+ qe: {
+ name: 'q\'eqchi\'',
+ localizedName: 'Kekchi',
+ direction: 'ltr'
+ },
qu: {
name: 'Quechua',
localizedName: 'Quechua',
direction: 'ltr'
},
- rm: {
- name: 'Raeto-Romance',
- localizedName: 'Raeto-Romance',
+ ra: {
+ name: 'Braj',
+ localizedName: 'ब्रजभाषा',
+ direction: 'ltr'
+ },
+ rb: {
+ name: 'Grebo',
+ localizedName: 'Kréébo',
+ direction: 'ltr'
+ },
+ rc: {
+ name: 'Achi',
+ localizedName: 'Achiʼ',
+ direction: 'ltr'
+ },
+ re: {
+ name: 'Tereno',
+ localizedName: 'Terêna',
+ direction: 'ltr'
+ },
+ rh: {
+ name: 'Romansh',
+ localizedName: 'Rumantsch',
+ direction: 'ltr'
+ },
+ ri: {
+ name: 'Rapanui',
+ localizedName: 'Vananga rapa nui',
+ direction: 'ltr'
+ },
+ rj: {
+ name: 'Rajasthani',
+ localizedName: 'राजस्थानी',
+ direction: 'ltr'
+ },
+ rl: {
+ name: 'Karelian',
+ localizedName: 'karjal',
direction: 'ltr'
},
rn: {
@@ -754,6 +2100,16 @@
name: 'Romanian',
localizedName: 'română',
direction: 'ltr'
+ },
+ rp: {
+ name: 'Aromanian',
+ localizedName: 'armãneashce',
+ direction: 'ltr'
+ },
+ rr: {
+ name: 'Rarotongan (Cook Islands Māori)',
+ localizedName: 'Māori Kūki \'Āirani',
+ direction: 'ltr'
},
ru: {
name: 'Russian',
@@ -765,9 +2121,19 @@
localizedName: 'Kinyarwanda',
direction: 'ltr'
},
- sa: {
- name: 'Sanskrit',
- localizedName: 'Sanskrit',
+ ry: {
+ name: 'Romany',
+ localizedName: 'romani čhib',
+ direction: 'ltr'
+ },
+ rz: {
+ name: 'Lozi',
+ localizedName: 'siLozi',
+ direction: 'ltr'
+ },
+ sb: {
+ name: 'Kashubian',
+ localizedName: 'Kaszëbsczi jãzëk',
direction: 'ltr'
},
sc: {
@@ -790,16 +2156,16 @@
localizedName: 'Sango',
direction: 'ltr'
},
- sh: {
- name: 'Serbo-Croatian',
- localizedName: 'Serbo-Croatian',
- direction: 'ltr'
- },
si: {
name: 'Sinhalese',
localizedName: 'Sinhalese',
direction: 'ltr'
},
+ sj: {
+ name: 'Lule Sami',
+ localizedName: 'julevsámegiella',
+ direction: 'ltr'
+ },
sk: {
name: 'Slovak',
localizedName: 'Slovenčina',
@@ -824,6 +2190,11 @@
name: 'Somali',
localizedName: 'Somali',
direction: 'ltr'
+ },
+ sp: {
+ name: 'Sepedi',
+ localizedName: 'Sesotho sa Leboa',
+ direction: 'ltr'
},
sq: {
name: 'Albanian',
@@ -835,6 +2206,11 @@
localizedName: 'Српски',
direction: 'ltr'
},
+ sr_BA: {
+ name: 'Serbian (Bosnia and Herzegovina)',
+ localizedName: 'Српски (Босна и Херцеговина)',
+ direction: 'rtl'
+ },
ss: {
name: 'Swati',
localizedName: 'Swati',
@@ -855,15 +2231,40 @@
localizedName: 'svenska',
direction: 'ltr'
},
+ sv_FI: {
+ name: 'Swedish (Finland)',
+ localizedName: 'svenska (Finland)',
+ direction: 'rtl'
+ },
sw: {
name: 'Swahili',
localizedName: 'Swahili',
direction: 'ltr'
+ },
+ sx: {
+ name: 'Susu',
+ localizedName: 'Sosoxui',
+ direction: 'ltr'
+ },
+ sy: {
+ name: 'Syriac',
+ localizedName: 'ܠܫܢܐ ܣܘܪܝܝܐ Lešānā Suryāyā',
+ direction: 'rtl'
+ },
+ sz: {
+ name: 'Sasak',
+ localizedName: 'ᬪᬵᬲᬵᬲᬓ᭄ᬱᬓ᭄',
+ direction: 'ltr'
},
ta: {
name: 'Tamil',
localizedName: 'Tamil',
direction: 'ltr'
+ },
+ tc: {
+ name: 'Tonga (Nyasa)',
+ localizedName: 'chiTonga',
+ direction: 'ltr'
},
te: {
name: 'Telugu',
@@ -885,6 +2286,11 @@
localizedName: 'Tigrinya',
direction: 'ltr'
},
+ tj: {
+ name: 'Tlingit',
+ localizedName: 'Lingít',
+ direction: 'ltr'
+ },
tk: {
name: 'Turkmen',
localizedName: 'Turkmen',
@@ -894,6 +2300,11 @@
name: 'Tagalog',
localizedName: 'Tagalog',
direction: 'ltr'
+ },
+ tm: {
+ name: 'Tamashek',
+ localizedName: 'Tafaghist',
+ direction: 'ltr'
},
tn: {
name: 'Tswana',
@@ -905,6 +2316,16 @@
localizedName: 'Tonga',
direction: 'ltr'
},
+ tp: {
+ name: 'Tok Pisin',
+ localizedName: 'Tok Pisin',
+ direction: 'ltr'
+ },
+ tq: {
+ name: 'Tigre',
+ localizedName: 'ትግረ',
+ direction: 'ltr'
+ },
tr: {
name: 'Turkish',
localizedName: 'Türkçe',
@@ -920,35 +2341,95 @@
localizedName: 'Tatar',
direction: 'ltr'
},
+ tu: {
+ name: 'Tumbuka',
+ localizedName: 'chiTumbuka',
+ direction: 'ltr'
+ },
+ tv: {
+ name: 'Tuvalu',
+ localizedName: 'Te Ggana Tuuvalu',
+ direction: 'ltr'
+ },
tw: {
name: 'Twi',
localizedName: 'Twi',
direction: 'ltr'
},
+ tx: {
+ name: 'Tuvinian',
+ localizedName: 'тыва дыл',
+ direction: 'ltr'
+ },
ty: {
name: 'Tahitian',
localizedName: 'Tahitian',
direction: 'ltr'
},
+ tz: {
+ name: 'Tsimshian',
+ localizedName: 'Tsmksian',
+ direction: 'ltr'
+ },
+ ua: {
+ name: 'Náhuatl',
+ localizedName: 'Náhuatl',
+ direction: 'ltr'
+ },
+ ud: {
+ name: 'Udmurt',
+ localizedName: 'удмурт кыл',
+ direction: 'ltr'
+ },
ug: {
name: 'Uighur',
localizedName: 'Uighur',
direction: 'ltr'
},
+ ui: {
+ name: 'Manipuri',
+ localizedName: 'Meitei',
+ direction: 'ltr'
+ },
uk: {
name: 'Ukrainian',
localizedName: 'українська',
direction: 'ltr'
},
+ um: {
+ name: 'Umbundu',
+ localizedName: 'Úmbúndú',
+ direction: 'ltr'
+ },
+ un: {
+ name: 'Mapudungun',
+ localizedName: 'Mapuche',
+ direction: 'ltr'
+ },
ur: {
name: 'Urdu',
localizedName: 'Urdu',
direction: 'rtl'
},
+ ut: {
+ name: 'Tetum',
+ localizedName: 'Lia-Tetun',
+ direction: 'ltr'
+ },
+ uy: {
+ name: 'Kumyk',
+ localizedName: 'къумукъ тил/qumuq til',
+ direction: 'ltr'
+ },
uz: {
name: 'Uzbek',
localizedName: 'Uzbek',
direction: 'ltr'
+ },
+ va: {
+ name: 'Vai',
+ localizedName: 'ꕙꔤ',
+ direction: 'ltr'
},
ve: {
name: 'Venda',
@@ -960,9 +2441,14 @@
localizedName: 'Tiếng Việt',
direction: 'ltr'
},
- vo: {
- name: 'Volapuk',
- localizedName: 'Volapük',
+ vs: {
+ name: 'Siksika',
+ localizedName: 'ᓱᖽᐧᖿ',
+ direction: 'ltr'
+ },
+ vt: {
+ name: 'Votic',
+ localizedName: 'vađđa ceeli',
direction: 'ltr'
},
wa: {
@@ -970,26 +2456,101 @@
localizedName: 'Walloon',
direction: 'ltr'
},
+ wl: {
+ name: 'Wolaitta',
+ localizedName: 'Wolayttatto Doonaa',
+ direction: 'ltr'
+ },
wo: {
name: 'Wolof',
localizedName: 'Wolof',
direction: 'ltr'
},
+ wr: {
+ name: 'Waray',
+ localizedName: 'Winaray',
+ direction: 'ltr'
+ },
+ ws: {
+ name: 'Washo',
+ localizedName: 'wá:šiw ʔítlu',
+ direction: 'ltr'
+ },
+ xa: {
+ name: 'Kalmyk',
+ localizedName: 'Хальмг келн',
+ direction: 'ltr'
+ },
xh: {
name: 'Xhosa',
localizedName: 'Xhosa',
direction: 'ltr'
+ },
+ xl: {
+ name: 'Mongo',
+ localizedName: 'Lomongo',
+ direction: 'ltr'
+ },
+ xr: {
+ name: 'Marwari',
+ localizedName: 'मारवाड़ी',
+ direction: 'ltr'
+ },
+ xs: {
+ name: 'Sukuma',
+ localizedName: 'Kɪsukuma',
+ direction: 'ltr'
+ },
+ xt: {
+ name: 'Sranan Tongo',
+ localizedName: 'Sranan Tongo',
+ direction: 'ltr'
+ },
+ ya: {
+ name: 'Yao',
+ localizedName: 'chiYao',
+ direction: 'ltr'
+ },
+ yi: {
+ name: 'Yiddish',
+ localizedName: 'Yiddish',
+ direction: 'ltr'
+ },
+ yk: {
+ name: 'Yakut',
+ localizedName: 'Сахалыы',
+ direction: 'ltr'
+ },
+ yn: {
+ name: 'Mayan',
+ localizedName: 'Maya',
+ direction: 'ltr'
},
yo: {
name: 'Yoruba',
localizedName: 'Yoruba',
direction: 'ltr'
},
+ yp: {
+ name: 'Yapese',
+ localizedName: 'Thin nu Wa’ab',
+ direction: 'ltr'
+ },
za: {
name: 'Zhuang',
localizedName: 'Zhuang',
direction: 'ltr'
},
+ ze: {
+ name: 'Zenaga',
+ localizedName: 'Tuẓẓungiyya',
+ direction: 'ltr'
+ },
+ zg: {
+ name: 'Standard Moroccan Tamazight',
+ localizedName: 'ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ',
+ direction: 'ltr'
+ },
zh_CN: {
name: 'Chinese, Simplified',
localizedName: '中文 (中国)',
@@ -1000,14 +2561,44 @@
localizedName: '中文 (香港)',
direction: 'ltr'
},
+ zh_MO: {
+ name: 'Chinese (Macau)',
+ localizedName: '中文(澳门)',
+ direction: 'rtl'
+ },
+ zh_SG: {
+ name: 'Chinese (Singapore)',
+ localizedName: '中文(新加坡)',
+ direction: 'rtl'
+ },
zh_TW: {
name: 'Chinese, Traditional',
localizedName: '中文 (台灣)',
direction: 'ltr'
},
+ zn: {
+ name: 'Zuni',
+ localizedName: 'Shiwi\'ma',
+ direction: 'ltr'
+ },
+ zp: {
+ name: 'Zapotec',
+ localizedName: 'Diidxazá/Dizhsa',
+ direction: 'ltr'
+ },
+ zt: {
+ name: 'tz\'utujil',
+ localizedName: 'Tzʼutujiil',
+ direction: 'ltr'
+ },
zu: {
name: 'Zulu',
localizedName: 'Zulu',
direction: 'ltr'
+ },
+ zz: {
+ name: 'Zaza',
+ localizedName: 'kirmanckî',
+ direction: 'ltr'
}
};
\ No newline at end of file
Index: chipper/js/data/localeInfo.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/chipper/js/data/localeInfo.js b/chipper/js/data/localeInfo.js
--- a/chipper/js/data/localeInfo.js (revision 143ff65960670a192c57862abebda6cda5a3a201)
+++ b/chipper/js/data/localeInfo.js (date 1715055750371)
@@ -42,21 +42,56 @@
localizedName: 'Abkhazian',
direction: 'ltr'
},
- ae: {
- name: 'Avestan',
- localizedName: 'Avestan',
+ ac: {
+ name: 'Achinese',
+ localizedName: 'بهسا اچيه',
direction: 'rtl'
},
+ ad: {
+ name: 'Adyghe',
+ localizedName: 'Адыгабзэ',
+ direction: 'ltr'
+ },
af: {
name: 'Afrikaans',
localizedName: 'Afrikaans',
direction: 'ltr'
},
+ ag: {
+ name: 'Angika',
+ localizedName: 'अंगिका',
+ direction: 'ltr'
+ },
+ ah: {
+ name: 'Masai',
+ localizedName: 'ɔl Maa',
+ direction: 'ltr'
+ },
+ ai: {
+ name: 'Ainu',
+ localizedName: 'アイヌ・イタㇰ Ainu-itak',
+ direction: 'ltr'
+ },
+ aj: {
+ name: 'Nogai',
+ localizedName: 'Ногай тили',
+ direction: 'ltr'
+ },
ak: {
name: 'Akan',
localizedName: 'Akan',
direction: 'ltr'
},
+ ak_FT: {
+ name: 'Fanti',
+ localizedName: 'Mfantse',
+ direction: 'ltr'
+ },
+ al: {
+ name: 'Aleut',
+ localizedName: 'Уна́ӈам тунуу́',
+ direction: 'ltr'
+ },
am: {
name: 'Amharic',
localizedName: 'Amharic',
@@ -67,31 +102,171 @@
localizedName: 'Aragonese',
direction: 'ltr'
},
+ ao: {
+ name: 'Makasar',
+ localizedName: 'Basa Mangkasara\' / ᨅᨔ ᨆᨀᨔᨑ',
+ direction: 'ltr'
+ },
+ ap: {
+ name: 'Arapaho',
+ localizedName: 'Hinónoʼeitíít',
+ direction: 'ltr'
+ },
ar: {
name: 'Arabic',
localizedName: 'العربية',
direction: 'rtl'
},
+ ar_AE: {
+ name: 'Arabic (U.A.E.)',
+ localizedName: 'العربية (الإمارات العربية المتحدة)',
+ direction: 'rtl'
+ },
+ ar_BH: {
+ name: 'Arabic (Bahrain)',
+ localizedName: 'العربية (البحرين)',
+ direction: 'rtl'
+ },
+ ar_DJ: {
+ name: 'Arabic (Djibouti)',
+ localizedName: 'العربية (جيبوتي)',
+ direction: 'rtl'
+ },
+ ar_DZ: {
+ name: 'Arabic (Algeria)',
+ localizedName: 'العربية (الجزائر)',
+ direction: 'rtl'
+ },
+ ar_EG: {
+ name: 'Arabic (Egypt)',
+ localizedName: 'العربية (مصر)',
+ direction: 'rtl'
+ },
+ ar_EH: {
+ name: 'Arabic (Sahrawi Republic)',
+ localizedName: 'العربية (الجمهورية الصحراوية)',
+ direction: 'rtl'
+ },
+ ar_ER: {
+ name: 'Arabic (Eritrea)',
+ localizedName: 'العربية (إريتريا)',
+ direction: 'rtl'
+ },
+ ar_IQ: {
+ name: 'Arabic (Iraq)',
+ localizedName: 'العربية (العراق)',
+ direction: 'rtl'
+ },
+ ar_JO: {
+ name: 'Arabic (Jordan)',
+ localizedName: 'العربية (الأردن)',
+ direction: 'rtl'
+ },
+ ar_KM: {
+ name: 'Arabic (Comoros)',
+ localizedName: 'العربية (جزر القمر)',
+ direction: 'rtl'
+ },
+ ar_KW: {
+ name: 'Arabic (Kuwait)',
+ localizedName: 'العربية (الكويت)',
+ direction: 'rtl'
+ },
+ ar_LB: {
+ name: 'Arabic (Lebanon)',
+ localizedName: 'العربية (لبنان)',
+ direction: 'rtl'
+ },
+ ar_LY: {
+ name: 'Arabic (Libya)',
+ localizedName: 'العربية (ليبيا)',
+ direction: 'rtl'
+ },
ar_MA: {
name: 'Arabic, Morocco',
localizedName: 'العربية (المغرب)',
direction: 'rtl'
},
+ ar_MR: {
+ name: 'Arabic (Mauritania)',
+ localizedName: 'العربية (موريتانيا)',
+ direction: 'rtl'
+ },
+ ar_OM: {
+ name: 'Arabic (Oman)',
+ localizedName: 'العربية (عُمان)',
+ direction: 'rtl'
+ },
+ ar_QA: {
+ name: 'Arabic (Qatar)',
+ localizedName: 'العربية (قطر)',
+ direction: 'rtl'
+ },
ar_SA: {
name: 'Arabic, Saudi Arabia',
localizedName: 'العربية (السعودية)',
direction: 'rtl'
+ },
+ ar_SD: {
+ name: 'Arabic (Sudan)',
+ localizedName: 'العربية (السودان)',
+ direction: 'rtl'
+ },
+ ar_SO: {
+ name: 'Arabic (Somalia)',
+ localizedName: 'العربية (الصومال)',
+ direction: 'rtl'
+ },
+ ar_SY: {
+ name: 'Arabic (Syria)',
+ localizedName: 'العربية (سوريا)',
+ direction: 'rtl'
+ },
+ ar_TD: {
+ name: 'Arabic (Chad)',
+ localizedName: 'العربية (تشاد)',
+ direction: 'rtl'
+ },
+ ar_TN: {
+ name: 'Arabic (Tunisia)',
+ localizedName: 'العربية (تونس)',
+ direction: 'rtl'
+ },
+ ar_YE: {
+ name: 'Arabic (Yemen)',
+ localizedName: 'العربية (اليمن)',
+ direction: 'rtl'
},
as: {
name: 'Assamese',
localizedName: 'Assamese',
direction: 'ltr'
},
+ at: {
+ name: 'Asturian',
+ localizedName: 'Asturianu',
+ direction: 'ltr'
+ },
+ au: {
+ name: 'Awadhi',
+ localizedName: 'अवधी',
+ direction: 'ltr'
+ },
av: {
name: 'Avaric',
localizedName: 'Avaric',
direction: 'ltr'
},
+ aw: {
+ name: 'Arawak',
+ localizedName: 'Lokono',
+ direction: 'ltr'
+ },
+ ax: {
+ name: 'Maithili',
+ localizedName: 'मैथिली',
+ direction: 'ltr'
+ },
ay: {
name: 'Aymara',
localizedName: 'Aymara',
@@ -106,6 +281,21 @@
name: 'Bashkir',
localizedName: 'Bashkir',
direction: 'ltr'
+ },
+ bb: {
+ name: 'Bemba',
+ localizedName: 'Chibemba',
+ direction: 'ltr'
+ },
+ bc: {
+ name: 'Baluchi',
+ localizedName: 'بلۏچی',
+ direction: 'rtl'
+ },
+ bd: {
+ name: 'Kimbundu',
+ localizedName: 'North Mbundu',
+ direction: 'ltr'
},
be: {
name: 'Belarusian',
@@ -117,15 +307,25 @@
localizedName: 'български',
direction: 'ltr'
},
- bh: {
- name: 'Bihari',
- localizedName: 'Bihari',
- direction: 'ltr'
- },
bi: {
name: 'Bislama',
localizedName: 'Bislama',
direction: 'ltr'
+ },
+ bj: {
+ name: 'Beja',
+ localizedName: 'Bidhaawyeet',
+ direction: 'ltr'
+ },
+ bk: {
+ name: 'Bikol',
+ localizedName: 'Bikol',
+ direction: 'ltr'
+ },
+ bl: {
+ name: 'Balinese',
+ localizedName: 'ᬪᬵᬱᬩᬮᬶ',
+ direction: 'ltr'
},
bm: {
name: 'Bambara',
@@ -141,6 +341,16 @@
name: 'Tibetan',
localizedName: 'Tibetan',
direction: 'ltr'
+ },
+ bp: {
+ name: 'Bhojpuri',
+ localizedName: 'भोजपुरी',
+ direction: 'ltr'
+ },
+ bq: {
+ name: 'Buginese',
+ localizedName: 'ᨅᨔ ᨕᨘᨁᨗ',
+ direction: 'ltr'
},
br: {
name: 'Breton',
@@ -152,11 +362,46 @@
localizedName: 'Bosnian',
direction: 'ltr'
},
+ bt: {
+ name: 'Minangkabau',
+ localizedName: 'Baso Minang',
+ direction: 'ltr'
+ },
+ bu: {
+ name: 'Buriat',
+ localizedName: 'буряад хэлэн',
+ direction: 'ltr'
+ },
+ bx: {
+ name: 'Bontok',
+ localizedName: 'Finallig',
+ direction: 'rtl'
+ },
+ by: {
+ name: 'Blin',
+ localizedName: 'ብሊና',
+ direction: 'ltr'
+ },
ca: {
name: 'Catalan',
localizedName: 'català',
direction: 'ltr'
},
+ cb: {
+ name: 'Cebuano',
+ localizedName: 'Sinugbuanong Binisayâ',
+ direction: 'ltr'
+ },
+ cc: {
+ name: 'Chuukese',
+ localizedName: 'Trukese',
+ direction: 'ltr'
+ },
+ cd: {
+ name: 'Caddo',
+ localizedName: 'Hasí:nay',
+ direction: 'ltr'
+ },
ce: {
name: 'Chechen',
localizedName: 'Chechen',
@@ -167,11 +412,51 @@
localizedName: 'Chamorro',
direction: 'ltr'
},
+ ci: {
+ name: 'Sicilian',
+ localizedName: 'Sicilianu',
+ direction: 'ltr'
+ },
+ cj: {
+ name: 'Cheyenne',
+ localizedName: 'Tsėhésenėstsestȯtse',
+ direction: 'ltr'
+ },
+ ck: {
+ name: 'Cherokee',
+ localizedName: 'ᏣᎳᎩ ᎦᏬᏂᎯᏍᏗ',
+ direction: 'ltr'
+ },
+ cl: {
+ name: 'Lunda',
+ localizedName: 'Chilunda',
+ direction: 'ltr'
+ },
+ cm: {
+ name: 'Mari',
+ localizedName: 'марий йылме',
+ direction: 'ltr'
+ },
+ cn: {
+ name: 'Chinook jargon',
+ localizedName: 'chinuk wawa',
+ direction: 'ltr'
+ },
co: {
name: 'Corsican',
localizedName: 'Corsican',
direction: 'ltr'
},
+ cp: {
+ name: 'Chipewyan',
+ localizedName: 'ᑌᓀᓱᒼᕄᓀ (Dënesųłiné)',
+ direction: 'ltr'
+ },
+ cq: {
+ name: 'kaqchikel',
+ localizedName: 'Kaqchikel Chʼabʼäl',
+ direction: 'ltr'
+ },
cr: {
name: 'Cree',
localizedName: 'Cree',
@@ -182,9 +467,9 @@
localizedName: 'čeština',
direction: 'ltr'
},
- cu: {
- name: 'Church Slavic',
- localizedName: 'Church Slavic',
+ ct: {
+ name: 'Crimean Tatar',
+ localizedName: 'Къырымтатарджа',
direction: 'ltr'
},
cv: {
@@ -192,59 +477,340 @@
localizedName: 'Chuvash',
direction: 'ltr'
},
+ cw: {
+ name: 'Choctaw',
+ localizedName: 'Chahta\'',
+ direction: 'ltr'
+ },
cy: {
name: 'Welsh',
localizedName: 'Welsh',
direction: 'ltr'
},
+ cz: {
+ name: 'Chocho',
+ localizedName: 'Ngiwa',
+ direction: 'ltr'
+ },
da: {
name: 'Danish',
localizedName: 'Dansk',
direction: 'ltr'
},
+ db: {
+ name: 'Dogrib',
+ localizedName: 'Tlicho',
+ direction: 'ltr'
+ },
de: {
name: 'German',
localizedName: 'Deutsch',
direction: 'ltr'
},
+ de_AT: {
+ name: 'German (Austria)',
+ localizedName: 'Deutsch (Österreich)',
+ direction: 'rtl'
+ },
+ de_CH: {
+ name: 'German (Switzerland)',
+ localizedName: 'Deutsch (Schweiz)',
+ direction: 'rtl'
+ },
+ de_LI: {
+ name: 'German (Liechtenstein)',
+ localizedName: 'Deutsch (Liechtenstein)',
+ direction: 'rtl'
+ },
+ de_LU: {
+ name: 'German (Luxembourg)',
+ localizedName: 'Deutsch (Luxemburg)',
+ direction: 'rtl'
+ },
+ dg: {
+ name: 'Adangme',
+ localizedName: 'Dangme',
+ direction: 'ltr'
+ },
+ di: {
+ name: 'Dogri',
+ localizedName: 'डोगरी; ڈوگرى',
+ direction: 'rtl'
+ },
+ dk: {
+ name: 'Dakota',
+ localizedName: 'Dakhótiyapi',
+ direction: 'ltr'
+ },
+ dl: {
+ name: 'Delaware',
+ localizedName: 'Lënapei èlixsuwakàn',
+ direction: 'ltr'
+ },
+ dm: {
+ name: 'Sidamo',
+ localizedName: 'Sidaamu Afoo',
+ direction: 'ltr'
+ },
+ dn: {
+ name: 'Dinka',
+ localizedName: 'Thuɔŋjäŋ',
+ direction: 'ltr'
+ },
+ dr: {
+ name: 'Dargwa',
+ localizedName: 'дарган мез',
+ direction: 'ltr'
+ },
+ ds: {
+ name: 'Lower Sorbian',
+ localizedName: 'Dolnoserbski',
+ direction: 'ltr'
+ },
+ du: {
+ name: 'Duala',
+ localizedName: 'Duālā',
+ direction: 'ltr'
+ },
dv: {
name: 'Divehi',
localizedName: 'Divehi',
direction: 'ltr'
+ },
+ dw: {
+ name: 'Sandawe',
+ localizedName: 'Sandaweeki',
+ direction: 'ltr'
+ },
+ dy: {
+ name: 'Dyula',
+ localizedName: 'Julakan',
+ direction: 'ltr'
},
dz: {
name: 'Dzongkha',
localizedName: 'Dzongkha',
direction: 'ltr'
+ },
+ ed: {
+ name: 'Bini',
+ localizedName: 'Ẹ̀dó',
+ direction: 'ltr'
},
ee: {
name: 'Ewe',
localizedName: 'Ewe',
direction: 'ltr'
},
+ ef: {
+ name: 'Efik',
+ localizedName: 'Usem Efịk',
+ direction: 'ltr'
+ },
+ ek: {
+ name: 'Ekajuk',
+ localizedName: 'Ekajuk',
+ direction: 'ltr'
+ },
el: {
name: 'Greek',
localizedName: 'Ελληνικά',
direction: 'ltr'
},
+ em: {
+ // eslint-disable-next-line bad-text
+ name: 'Slave (Athapascan)',
+ localizedName: 'Dene K\'e',
+ direction: 'ltr'
+ },
en: {
name: 'English',
localizedName: 'English',
direction: 'ltr'
+ },
+ en_AU: {
+ name: 'English (Australia)',
+ localizedName: 'English (Australia)',
+ direction: 'ltr'
+ },
+ en_BI: {
+ name: 'English (Burundi)',
+ localizedName: 'English (Burundi)',
+ direction: 'ltr'
+ },
+ en_BW: {
+ name: 'English (Botswana)',
+ localizedName: 'English (Botswana)',
+ direction: 'ltr'
+ },
+ en_BZ: {
+ name: 'English (Belize)',
+ localizedName: 'English (Belize)',
+ direction: 'ltr'
},
en_CA: {
name: 'English, Canada',
localizedName: 'English (Canada)',
direction: 'ltr'
},
+ en_CB: {
+ name: 'English (Caribbean)',
+ localizedName: 'English (Caribbean)',
+ direction: 'ltr'
+ },
+ en_CM: {
+ name: 'English (Cameroon)',
+ localizedName: 'English (Cameroon)',
+ direction: 'ltr'
+ },
+ en_ER: {
+ name: 'English (Eritrea)',
+ localizedName: 'English (Eritrea)',
+ direction: 'ltr'
+ },
+ en_ET: {
+ name: 'English (Ethiopia)',
+ localizedName: 'English (Ethiopia)',
+ direction: 'ltr'
+ },
en_GB: {
name: 'English, United Kingdom',
localizedName: 'English (United Kingdom)',
direction: 'ltr'
},
- eo: {
- name: 'Esperanto',
- localizedName: 'Esperanto',
+ en_GH: {
+ name: 'English (Ghana)',
+ localizedName: 'English (Ghana)',
+ direction: 'ltr'
+ },
+ en_GM: {
+ name: 'English (Gambia)',
+ localizedName: 'English (Gambia)',
+ direction: 'ltr'
+ },
+ en_IE: {
+ name: 'English (Ireland)',
+ localizedName: 'English (Ireland)',
+ direction: 'ltr'
+ },
+ en_IN: {
+ name: 'English (India)',
+ localizedName: 'English (India)',
+ direction: 'ltr'
+ },
+ en_JM: {
+ name: 'English (Jamaica)',
+ localizedName: 'English (Jamaica)',
+ direction: 'ltr'
+ },
+ en_KE: {
+ name: 'English (Kenya)',
+ localizedName: 'English (Kenya)',
+ direction: 'ltr'
+ },
+ en_LR: {
+ name: 'English (Liberia)',
+ localizedName: 'English (Liberia)',
+ direction: 'ltr'
+ },
+ en_LS: {
+ name: 'English (Lesotho)',
+ localizedName: 'English (Lesotho)',
+ direction: 'ltr'
+ },
+ en_MU: {
+ name: 'English (Mauritius)',
+ localizedName: 'English (Mauritius)',
+ direction: 'ltr'
+ },
+ en_MW: {
+ name: 'English (Malawi)',
+ localizedName: 'English (Malawi)',
+ direction: 'ltr'
+ },
+ en_MY: {
+ name: 'English (Malaysia)',
+ localizedName: 'English (Malaysia)',
+ direction: 'ltr'
+ },
+ en_NA: {
+ name: 'English (Namibia)',
+ localizedName: 'English (Namibia)',
+ direction: 'ltr'
+ },
+ en_NG: {
+ name: 'English (Nigeria)',
+ localizedName: 'English (Nigeria)',
+ direction: 'ltr'
+ },
+ en_NZ: {
+ name: 'English (New Zealand)',
+ localizedName: 'English (New Zealand)',
+ direction: 'ltr'
+ },
+ en_PH: {
+ name: 'English (Republic of the Philippines)',
+ localizedName: 'English (Republic of the Philippines)',
+ direction: 'ltr'
+ },
+ en_RW: {
+ name: 'English (Rwanda)',
+ localizedName: 'English (Rwanda)',
+ direction: 'ltr'
+ },
+ en_SC: {
+ name: 'English (Seychelles)',
+ localizedName: 'English (Seychelles)',
+ direction: 'ltr'
+ },
+ en_SL: {
+ name: 'English (Sierra Leone)',
+ localizedName: 'English (Sierra Leone)',
+ direction: 'ltr'
+ },
+ en_SS: {
+ name: 'English (South Sudan)',
+ localizedName: 'English (South Sudan)',
+ direction: 'ltr'
+ },
+ en_SZ: {
+ name: 'English (Eswatini)',
+ localizedName: 'English (Eswatini)',
+ direction: 'ltr'
+ },
+ en_TT: {
+ name: 'English (Trinidad and Tobago)',
+ localizedName: 'English (Trinidad and Tobago)',
+ direction: 'ltr'
+ },
+ en_TZ: {
+ name: 'English (Tanzania)',
+ localizedName: 'English (Tanzania)',
+ direction: 'ltr'
+ },
+ en_UG: {
+ name: 'English (Uganda)',
+ localizedName: 'English (Uganda)',
+ direction: 'ltr'
+ },
+ en_ZA: {
+ name: 'English (South Africa)',
+ localizedName: 'English (South Africa)',
+ direction: 'ltr'
+ },
+ en_ZM: {
+ name: 'English (Zambia)',
+ localizedName: 'English (Zambia)',
+ direction: 'ltr'
+ },
+ en_ZW: {
+ name: 'English (Zimbabwe)',
+ localizedName: 'English (Zimbabwe)',
+ direction: 'ltr'
+ },
+ er: {
+ name: 'Serer',
+ localizedName: 'Seereer',
direction: 'ltr'
},
es: {
@@ -252,6 +818,21 @@
localizedName: 'español',
direction: 'ltr'
},
+ es_AR: {
+ name: 'Spanish (Argentina)',
+ localizedName: 'español (Argentina)',
+ direction: 'rtl'
+ },
+ es_BO: {
+ name: 'Spanish (Bolivia)',
+ localizedName: 'español (Bolivia)',
+ direction: 'rtl'
+ },
+ es_CL: {
+ name: 'Spanish (Chile)',
+ localizedName: 'español (Chile)',
+ direction: 'rtl'
+ },
es_CO: {
name: 'Spanish, Colombia',
localizedName: 'español (Colombia)',
@@ -262,21 +843,86 @@
localizedName: 'español (Costa Rica)',
direction: 'ltr'
},
+ es_DO: {
+ name: 'Spanish (Dominican Republic)',
+ localizedName: 'español (Dominican Republic)',
+ direction: 'rtl'
+ },
+ es_EC: {
+ name: 'Spanish (Ecuador)',
+ localizedName: 'español (Ecuador)',
+ direction: 'rtl'
+ },
es_ES: {
name: 'Spanish, Spain',
localizedName: 'español (España)',
direction: 'ltr'
},
+ es_GQ: {
+ name: 'Spanish (Equatorial Guinea)',
+ localizedName: 'español (Equatorial Guinea)',
+ direction: 'rtl'
+ },
+ es_GT: {
+ name: 'Spanish (Guatemala)',
+ localizedName: 'español (Guatemala)',
+ direction: 'rtl'
+ },
+ es_HN: {
+ name: 'Spanish (Honduras)',
+ localizedName: 'español (Honduras)',
+ direction: 'rtl'
+ },
es_MX: {
name: 'Spanish, Mexico',
localizedName: 'español (México)',
direction: 'ltr'
},
+ es_NI: {
+ name: 'Spanish (Nicaragua)',
+ localizedName: 'español (Nicaragua)',
+ direction: 'rtl'
+ },
+ es_PA: {
+ name: 'Spanish (Panama)',
+ localizedName: 'español (Panama)',
+ direction: 'rtl'
+ },
es_PE: {
name: 'Spanish, Peru',
localizedName: 'español (Perú)',
direction: 'ltr'
},
+ es_PR: {
+ name: 'Spanish (Puerto Rico)',
+ localizedName: 'español (Puerto Rico)',
+ direction: 'rtl'
+ },
+ es_PY: {
+ name: 'Spanish (Paraguay)',
+ localizedName: 'español (Paraguay)',
+ direction: 'rtl'
+ },
+ es_SV: {
+ name: 'Spanish (El Salvador)',
+ localizedName: 'español (El Salvador)',
+ direction: 'rtl'
+ },
+ es_US: {
+ name: 'Spanish (United States)',
+ localizedName: 'español (United States)',
+ direction: 'rtl'
+ },
+ es_UY: {
+ name: 'Spanish (Uruguay)',
+ localizedName: 'español (Uruguay)',
+ direction: 'rtl'
+ },
+ es_VE: {
+ name: 'Spanish (Venezuela)',
+ localizedName: 'español (Venezuela)',
+ direction: 'rtl'
+ },
et: {
name: 'Estonian',
localizedName: 'Eesti',
@@ -287,16 +933,31 @@
localizedName: 'Basque',
direction: 'ltr'
},
+ ew: {
+ name: 'Ewondo',
+ localizedName: 'Beti',
+ direction: 'ltr'
+ },
fa: {
name: 'Persian',
localizedName: 'Persian',
direction: 'rtl'
},
+ fa_DA: {
+ name: 'Persian (Dari)',
+ localizedName: 'Dari',
+ direction: 'rtl'
+ },
ff: {
name: 'Fulah',
localizedName: 'Fulah',
direction: 'ltr'
},
+ fg: {
+ name: 'Fon',
+ localizedName: 'Fon gbè',
+ direction: 'ltr'
+ },
fi: {
name: 'Finnish',
localizedName: 'suomi',
@@ -307,6 +968,16 @@
localizedName: 'Fijian',
direction: 'ltr'
},
+ fl: {
+ name: 'Filipino',
+ localizedName: 'Wikang Filipino',
+ direction: 'ltr'
+ },
+ fn: {
+ name: 'Fang',
+ localizedName: 'Pangwe',
+ direction: 'ltr'
+ },
fo: {
name: 'Faroese',
localizedName: 'Faroese',
@@ -316,10 +987,150 @@
name: 'French',
localizedName: 'français',
direction: 'ltr'
+ },
+ fr_BE: {
+ name: 'French (Belgium)',
+ localizedName: 'français (Belgium)',
+ direction: 'rtl'
+ },
+ fr_BF: {
+ name: 'French (Burkina Faso)',
+ localizedName: 'français (Burkina Faso)',
+ direction: 'rtl'
+ },
+ fr_BI: {
+ name: 'French (Burundi)',
+ localizedName: 'français (Burundi)',
+ direction: 'rtl'
+ },
+ fr_BJ: {
+ name: 'French (Benin)',
+ localizedName: 'français (Bénin)',
+ direction: 'rtl'
+ },
+ fr_CA: {
+ name: 'French (Canada)',
+ localizedName: 'français (Canada)',
+ direction: 'rtl'
+ },
+ fr_CD: {
+ name: 'French (DR Congo)',
+ localizedName: 'français (RD Congo)',
+ direction: 'rtl'
+ },
+ fr_CF: {
+ name: 'French (Central African Republic)',
+ localizedName: 'français (République centrafricaine)',
+ direction: 'rtl'
+ },
+ fr_CG: {
+ name: 'French (Congo Republic)',
+ localizedName: 'français (République du Congo)',
+ direction: 'rtl'
+ },
+ fr_CH: {
+ name: 'French (Switzerland)',
+ localizedName: 'français (Suisse)',
+ direction: 'rtl'
+ },
+ fr_CI: {
+ name: 'French (Côte d’Ivoire)',
+ localizedName: 'français (Côte d\'Ivoire)',
+ direction: 'rtl'
+ },
+ fr_CM: {
+ name: 'French (Cameroon)',
+ localizedName: 'français (Cameroon)',
+ direction: 'rtl'
+ },
+ fr_DJ: {
+ name: 'French (Djibouti)',
+ localizedName: 'français (Djibouti)',
+ direction: 'rtl'
+ },
+ fr_EH: {
+ name: 'French (Sahrawi Republic)',
+ localizedName: 'français (République sahraouie)',
+ direction: 'rtl'
+ },
+ fr_GA: {
+ name: 'French (Gabon)',
+ localizedName: 'français (Gabon)',
+ direction: 'rtl'
+ },
+ fr_GN: {
+ name: 'French (Guinea)',
+ localizedName: 'français (Guinée)',
+ direction: 'rtl'
+ },
+ fr_GQ: {
+ name: 'French (Equatorial Guinea)',
+ localizedName: 'français (Guinée Équatoriale)',
+ direction: 'rtl'
+ },
+ fr_KM: {
+ name: 'French (Comoros)',
+ localizedName: 'français (Comores)',
+ direction: 'rtl'
+ },
+ fr_LU: {
+ name: 'French (Luxembourg)',
+ localizedName: 'français (Luxembourg)',
+ direction: 'rtl'
+ },
+ fr_MC: {
+ name: 'French (Monaco)',
+ localizedName: 'français (Monaco)',
+ direction: 'rtl'
+ },
+ fr_MG: {
+ name: 'French (Madagascar)',
+ localizedName: 'français (Madagascar)',
+ direction: 'rtl'
+ },
+ fr_ML: {
+ name: 'French (Mali)',
+ localizedName: 'français (Mali)',
+ direction: 'rtl'
+ },
+ fr_NE: {
+ name: 'French (Niger)',
+ localizedName: 'français (Niger)',
+ direction: 'rtl'
+ },
+ fr_RW: {
+ name: 'French (Rwanda)',
+ localizedName: 'français (Rwanda)',
+ direction: 'rtl'
+ },
+ fr_SC: {
+ name: 'French (Seychelles)',
+ localizedName: 'français (les Seychelles)',
+ direction: 'rtl'
+ },
+ fr_SN: {
+ name: 'French (Senegal)',
+ localizedName: 'français (Sénégal)',
+ direction: 'rtl'
+ },
+ fr_TD: {
+ name: 'French (Chad)',
+ localizedName: 'français (Tchad)',
+ direction: 'rtl'
+ },
+ fr_TG: {
+ name: 'French (Togo)',
+ localizedName: 'français (Togo)',
+ direction: 'rtl'
+ },
+ fs: {
+ name: 'East Frisian Low Saxon',
+ localizedName: 'Oostfreesk',
+ direction: 'ltr'
},
fu: {
name: 'Friulian',
- localizedName: 'fu',
+ localizedName: 'furlan',
direction: 'ltr'
},
fy: {
@@ -332,11 +1143,36 @@
localizedName: 'Gaeilge',
direction: 'ltr'
},
+ gb: {
+ name: 'Gbaya',
+ localizedName: 'Gbaya–Manza–Ngbaka',
+ direction: 'ltr'
+ },
+ gc: {
+ name: 'Galibi Carib',
+ localizedName: 'Kari\'nja',
+ direction: 'ltr'
+ },
gd: {
name: 'Scottish Gaelic',
localizedName: 'Scottish Gaelic',
direction: 'ltr'
},
+ gf: {
+ name: 'Garifuna',
+ localizedName: 'Garifuna',
+ direction: 'ltr'
+ },
+ gg: {
+ name: 'Ga',
+ localizedName: 'Gã',
+ direction: 'ltr'
+ },
+ gk: {
+ name: 'Tokelau',
+ localizedName: 'gagana Tokelau',
+ direction: 'ltr'
+ },
gl: {
name: 'Galician',
localizedName: 'Gallegan',
@@ -347,6 +1183,26 @@
localizedName: 'Guarani',
direction: 'ltr'
},
+ go: {
+ name: 'Gondi',
+ localizedName: 'గోండి',
+ direction: 'ltr'
+ },
+ gr: {
+ name: 'Gorontalo',
+ localizedName: 'Bahasa Hulontalo',
+ direction: 'ltr'
+ },
+ gs: {
+ name: 'Swiss German',
+ localizedName: 'Schwiizerdütsch',
+ direction: 'ltr'
+ },
+ gt: {
+ name: 'Gilbertese',
+ localizedName: 'Taetae ni Kiribati',
+ direction: 'ltr'
+ },
gu: {
name: 'Gujarati',
localizedName: 'Gujarati',
@@ -357,26 +1213,81 @@
localizedName: 'Manx',
direction: 'ltr'
},
+ gw: {
+ name: 'Gwich\'in',
+ localizedName: 'Dinjii Zhu’ Ginjik',
+ direction: 'ltr'
+ },
+ gy: {
+ name: 'Gayo',
+ localizedName: 'Basa Gayo',
+ direction: 'ltr'
+ },
ha: {
name: 'Hausa',
localizedName: 'Hausa',
direction: 'ltr'
},
+ hd: {
+ name: 'Mandar',
+ localizedName: 'Mandar',
+ direction: 'ltr'
+ },
+ hh: {
+ name: 'Mohawk',
+ localizedName: 'Kanien’kéha',
+ direction: 'ltr'
+ },
hi: {
name: 'Hindi',
localizedName: 'हिंदी',
direction: 'ltr'
+ },
+ hk: {
+ name: 'Kurukh',
+ localizedName: 'कुड़ुख़',
+ direction: 'ltr'
+ },
+ hl: {
+ name: 'Hiligaynon',
+ localizedName: 'Ilonggo',
+ direction: 'ltr'
+ },
+ hm: {
+ name: 'Hmong',
+ localizedName: '𖬇𖬰𖬞 𖬌𖬣𖬵',
+ direction: 'ltr'
+ },
+ hn: {
+ name: 'Shan',
+ localizedName: 'ၵႂၢမ်းတႆးယႂ်',
+ direction: 'ltr'
},
ho: {
name: 'Hiri Motu',
localizedName: 'Hiri Motu',
direction: 'ltr'
},
+ hp: {
+ name: 'Hupa',
+ localizedName: 'Na:tinixwe Mixine:whe\'',
+ direction: 'ltr'
+ },
hr: {
name: 'Croatian',
localizedName: 'hrvatski',
direction: 'ltr'
},
+ hr_BA: {
+ name: 'Croatian (Latin, Bosnia, and Herzegovina)',
+ localizedName: 'hrvatski (Latinica, Bosna i Hercegovina)',
+ direction: 'ltr'
+ },
+ hs: {
+ name: 'Upper Sorbian',
+ localizedName: 'hornjoserbšćina',
+ direction: 'ltr'
+ },
ht: {
name: 'Haitian',
localizedName: 'Haitian',
@@ -387,6 +1298,16 @@
localizedName: 'magyar',
direction: 'ltr'
},
+ hw: {
+ name: 'Hawaiian',
+ localizedName: 'ʻŌlelo Hawaiʻi',
+ direction: 'ltr'
+ },
+ hx: {
+ name: 'Haida',
+ localizedName: 'X̱aat Kíl',
+ direction: 'ltr'
+ },
hy: {
name: 'Armenian',
localizedName: 'Armenian',
@@ -397,14 +1318,9 @@
localizedName: 'Herero',
direction: 'ltr'
},
- ia: {
- name: 'Interlingua',
- localizedName: 'Interlingua',
- direction: 'ltr'
- },
- ie: {
- name: 'Interlingue',
- localizedName: 'Interlingue',
+ ib: {
+ name: 'Iban',
+ localizedName: 'Jaku Iban',
direction: 'ltr'
},
ig: {
@@ -412,6 +1328,11 @@
localizedName: 'Igbo',
direction: 'ltr'
},
+ ih: {
+ name: 'Ingush',
+ localizedName: 'ГӀалгӀай мотт',
+ direction: 'ltr'
+ },
ii: {
name: 'Sichuan Yi',
localizedName: 'Sichuan Yi',
@@ -421,15 +1342,25 @@
name: 'Inupiaq',
localizedName: 'Inupiaq',
direction: 'ltr'
+ },
+ il: {
+ name: 'Iloko',
+ localizedName: 'Pagsasao nga Ilokano',
+ direction: 'ltr'
+ },
+ im: {
+ name: 'Southern Sami',
+ localizedName: 'Åarjelsaemien gïele',
+ direction: 'ltr'
},
in: {
name: 'Indonesian',
localizedName: 'Bahasa Indonesia',
direction: 'ltr'
},
- io: {
- name: 'Ido',
- localizedName: 'Ido',
+ iq: {
+ name: 'Miskito',
+ localizedName: 'Miskitu',
direction: 'ltr'
},
is: {
@@ -442,26 +1373,51 @@
localizedName: 'italiano',
direction: 'ltr'
},
+ it_CH: {
+ name: 'Italian (Switzerland)',
+ localizedName: 'italiano(Svizzera)',
+ direction: 'rtl'
+ },
iu: {
name: 'Inuktitut',
localizedName: 'Inuktitut',
direction: 'ltr'
},
+ iv: {
+ name: 'Tiv',
+ localizedName: 'Tiv',
+ direction: 'ltr'
+ },
iw: {
name: 'Hebrew',
localizedName: 'עברית',
direction: 'rtl'
},
+ ix: {
+ name: 'ixil',
+ localizedName: 'Ixhil',
+ direction: 'ltr'
+ },
ja: {
name: 'Japanese',
localizedName: '日本語',
direction: 'ltr'
},
- ji: {
- name: 'Yiddish',
- localizedName: 'Yiddish',
+ jb: {
+ name: 'q\'anjob\'al',
+ localizedName: 'Kanjobal',
+ direction: 'ltr'
+ },
+ jp: {
+ name: 'Judeo-Persian',
+ localizedName: 'Dzhidi',
direction: 'ltr'
},
+ jr: {
+ name: 'Judeo-Arabic',
+ localizedName: 'عربية يهودية / ערבית יהודית',
+ direction: 'rtl'
+ },
jv: {
name: 'Javanese',
localizedName: 'Javanese',
@@ -472,11 +1428,41 @@
localizedName: 'Georgian',
direction: 'ltr'
},
+ kb: {
+ name: 'Kabyle',
+ localizedName: 'Tamaziɣt Taqbaylit',
+ direction: 'ltr'
+ },
+ kc: {
+ name: 'Kachin',
+ localizedName: 'Jingpho',
+ direction: 'ltr'
+ },
+ kd: {
+ name: 'Kabardian',
+ localizedName: 'Адыгэбзэ (Къэбэрдейбзэ)',
+ direction: 'ltr'
+ },
+ ke: {
+ name: 'Kpelle',
+ localizedName: 'Kpɛlɛwoo',
+ direction: 'ltr'
+ },
+ kf: {
+ name: 'Karachay-Balkar',
+ localizedName: 'Къарачай-Малкъар тил',
+ direction: 'ltr'
+ },
kg: {
name: 'Kongo',
localizedName: 'Kongo',
direction: 'ltr'
},
+ kh: {
+ name: 'Khasi',
+ localizedName: 'কা কতিয়েন খাশি',
+ direction: 'ltr'
+ },
ki: {
name: 'Kikuyu',
localizedName: 'Kikuyu',
@@ -512,6 +1498,16 @@
localizedName: '한국어',
direction: 'ltr'
},
+ kp: {
+ name: 'Kara-Kalpak',
+ localizedName: 'Qaraqalpaq tili',
+ direction: 'ltr'
+ },
+ kq: {
+ name: 'Kalenjin',
+ localizedName: 'Kalenjin',
+ direction: 'rtl'
+ },
kr: {
name: 'Kanuri',
localizedName: 'Kanuri',
@@ -521,15 +1517,20 @@
name: 'Kashmiri',
localizedName: 'Kashmiri',
direction: 'ltr'
+ },
+ kt: {
+ name: 'Kutenai',
+ localizedName: 'Ktunaxa',
+ direction: 'ltr'
},
ku: {
- name: 'Kurdish',
- localizedName: 'Kurdish',
+ name: 'Kurdish (Sorani)',
+ localizedName: 'Sorani',
direction: 'ltr'
},
ku_TR: {
- name: 'Kurdish, Turkey',
- localizedName: 'Kurdish (Turkey)',
+ name: 'Kurdish (Kurmanji)',
+ localizedName: 'Kurdish (Kurmanji)',
direction: 'ltr'
},
kv: {
@@ -542,26 +1543,41 @@
localizedName: 'Cornish',
direction: 'ltr'
},
+ kx: {
+ name: 'Kamba',
+ localizedName: 'Kikamba',
+ direction: 'ltr'
+ },
ky: {
name: 'Kirghiz',
localizedName: 'Kirghiz',
direction: 'ltr'
},
- la: {
- name: 'Latin',
- localizedName: 'Latin',
+ kz: {
+ name: 'Kosraean',
+ localizedName: 'Kosraean',
direction: 'ltr'
},
lb: {
name: 'Luxembourgish',
localizedName: 'Luxembourgish',
direction: 'ltr'
+ },
+ ld: {
+ name: 'Ladino',
+ localizedName: 'Judeo-español',
+ direction: 'ltr'
},
lg: {
name: 'Ganda',
localizedName: 'Ganda',
direction: 'ltr'
},
+ lh: {
+ name: 'Lahnda',
+ localizedName: 'بھارت کا',
+ direction: 'rtl'
+ },
li: {
name: 'Limburgish',
localizedName: 'Limburgish',
@@ -572,6 +1588,16 @@
localizedName: 'Lakota',
direction: 'ltr'
},
+ ll: {
+ name: 'Luo (Kenya and Tanzania)',
+ localizedName: 'Dholuo',
+ direction: 'ltr'
+ },
+ lm: {
+ name: 'Lamba',
+ localizedName: 'Ichilamba',
+ direction: 'ltr'
+ },
ln: {
name: 'Lingala',
localizedName: 'Lingala',
@@ -582,6 +1608,16 @@
localizedName: 'Lao',
direction: 'ltr'
},
+ lp: {
+ name: 'Selkup',
+ localizedName: 'чу́мэл шэ',
+ direction: 'ltr'
+ },
+ ls: {
+ name: 'Lushai',
+ localizedName: 'Mizo ṭawng',
+ direction: 'ltr'
+ },
lt: {
name: 'Lithuanian',
localizedName: 'Lietuvių',
@@ -597,6 +1633,56 @@
localizedName: 'Latviešu',
direction: 'ltr'
},
+ lw: {
+ name: 'Acoli',
+ localizedName: 'Lwo',
+ direction: 'ltr'
+ },
+ lx: {
+ name: 'Luba-Lulua',
+ localizedName: 'Cilubà',
+ direction: 'ltr'
+ },
+ ly: {
+ name: 'Luyia',
+ localizedName: 'Luyia',
+ direction: 'rtl'
+ },
+ lz: {
+ name: 'Lezghian',
+ localizedName: 'Лезги чӏал',
+ direction: 'ltr'
+ },
+ ma: {
+ name: 'Magahi',
+ localizedName: 'मगही',
+ direction: 'ltr'
+ },
+ mb: {
+ name: 'Basa',
+ localizedName: 'Mbene',
+ direction: 'ltr'
+ },
+ mc: {
+ name: 'Manchu',
+ localizedName: 'ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ Manju gisun',
+ direction: 'ltr'
+ },
+ md: {
+ name: 'Madurese',
+ localizedName: 'Madhura',
+ direction: 'ltr'
+ },
+ me: {
+ name: 'Mende',
+ localizedName: 'Mɛnde yia',
+ direction: 'ltr'
+ },
+ mf: {
+ name: 'Moksha',
+ localizedName: 'мокшень кяль',
+ direction: 'ltr'
+ },
mg: {
name: 'Malagasy',
localizedName: 'Malagasy',
@@ -622,14 +1708,24 @@
localizedName: 'Malayalam',
direction: 'ltr'
},
+ mm: {
+ name: 'Timne',
+ localizedName: 'KʌThemnɛ',
+ direction: 'ltr'
+ },
mn: {
name: 'Mongolian',
localizedName: 'Mongolian',
direction: 'ltr'
},
mo: {
- name: 'Moldavian',
- localizedName: 'Moldavian',
+ name: 'Individual',
+ localizedName: 'Living',
+ direction: 'ltr'
+ },
+ mq: {
+ name: 'Mi\'kmaq',
+ localizedName: 'Míkmawísimk',
direction: 'ltr'
},
mr: {
@@ -642,15 +1738,45 @@
localizedName: 'Bahasa Melayu',
direction: 'ltr'
},
+ ms_MY: {
+ name: 'Malay (Standard)',
+ localizedName: 'بهاس ملايو مليسيا',
+ direction: 'rtl'
+ },
mt: {
name: 'Maltese',
localizedName: 'Malti',
direction: 'ltr'
},
+ mu: {
+ name: 'Creek',
+ localizedName: 'Mvskoke',
+ direction: 'ltr'
+ },
+ mv: {
+ name: 'Erzya',
+ localizedName: 'эрзянь кель',
+ direction: 'ltr'
+ },
+ mw: {
+ name: 'Mirandese',
+ localizedName: 'mirandés',
+ direction: 'ltr'
+ },
+ mx: {
+ name: 'mam',
+ localizedName: 'Qyool Mam',
+ direction: 'ltr'
+ },
my: {
name: 'Burmese',
localizedName: 'Burmese',
direction: 'ltr'
+ },
+ mz: {
+ name: 'Mazateco',
+ localizedName: 'En Ngixo',
+ direction: 'ltr'
},
na: {
name: 'Nauru',
@@ -661,6 +1787,11 @@
name: 'Norwegian Bokmal',
localizedName: 'Norwegian Bokmål',
direction: 'ltr'
+ },
+ nc: {
+ name: 'Nyankole',
+ localizedName: 'Orunyankore',
+ direction: 'ltr'
},
nd: {
name: 'North Ndebele',
@@ -672,51 +1803,161 @@
localizedName: 'Nepali',
direction: 'ltr'
},
+ nf: {
+ name: 'Northern Frisian',
+ localizedName: 'Frasch',
+ direction: 'ltr'
+ },
ng: {
name: 'Ndonga',
localizedName: 'Ndonga',
direction: 'ltr'
+ },
+ nh: {
+ name: 'Nyoro',
+ localizedName: 'Orunyoro',
+ direction: 'ltr'
+ },
+ ni: {
+ name: 'Nias',
+ localizedName: 'Li Niha',
+ direction: 'ltr'
+ },
+ nk: {
+ name: 'Norwegian',
+ localizedName: 'norsk',
+ direction: 'ltr'
},
nl: {
name: 'Dutch',
localizedName: 'Nederlands',
direction: 'ltr'
+ },
+ nl_BE: {
+ name: 'Dutch (Belgium)',
+ localizedName: 'Nederlands (België)',
+ direction: 'rtl'
+ },
+ nm: {
+ name: 'Inari Sami',
+ localizedName: 'anarâškielâ',
+ direction: 'ltr'
},
nn: {
name: 'Norwegian Nynorsk',
localizedName: 'Norwegian Nynorsk',
direction: 'ltr'
},
+ np: {
+ name: 'Neapolitan',
+ localizedName: 'napulitano',
+ direction: 'ltr'
+ },
+ nq: {
+ name: 'N\'Ko',
+ localizedName: 'ߒߞߏ',
+ direction: 'rtl'
+ },
nr: {
name: 'South Ndebele',
localizedName: 'South Ndebele',
direction: 'ltr'
},
+ ns: {
+ name: 'Low German',
+ localizedName: 'Plattdütsch',
+ direction: 'ltr'
+ },
+ nt: {
+ name: 'Santali',
+ localizedName: 'ᱥᱟᱱᱛᱟᱲᱤ',
+ direction: 'ltr'
+ },
+ nu: {
+ name: 'Niuean',
+ localizedName: 'ko e vagahau Niuē',
+ direction: 'ltr'
+ },
nv: {
name: 'Navajo',
localizedName: 'Navajo',
direction: 'ltr'
},
+ nw: {
+ name: 'Nepal Bhasa',
+ localizedName: 'नेपाल भाषा',
+ direction: 'ltr'
+ },
+ nx: {
+ name: 'Nyamwezi',
+ localizedName: 'Nyamwezi',
+ direction: 'ltr'
+ },
ny: {
name: 'Chichewa',
localizedName: 'Nyanja',
direction: 'ltr'
+ },
+ nz: {
+ name: 'Nzima',
+ localizedName: 'Nzima',
+ direction: 'ltr'
+ },
+ oa: {
+ name: 'Osage',
+ localizedName: 'Wazhazhe ie / 𐓏𐓘𐓻𐓘𐓻𐓟 𐒻𐓟',
+ direction: 'ltr'
},
oc: {
name: 'Occitan',
localizedName: 'Occitan',
direction: 'ltr'
+ },
+ oe: {
+ name: 'Montenegrin',
+ localizedName: 'crnogorski / црногорски',
+ direction: 'ltr'
+ },
+ og: {
+ name: 'Mandingo',
+ localizedName: 'Mandi\'nka kango',
+ direction: 'ltr'
+ },
+ oi: {
+ name: 'Soninke',
+ localizedName: 'Sooninkanxanne',
+ direction: 'ltr'
},
oj: {
name: 'Ojibwa',
localizedName: 'Ojibwa',
direction: 'ltr'
},
+ ok: {
+ name: 'Konkani',
+ localizedName: 'कोंकणी',
+ direction: 'ltr'
+ },
+ ol: {
+ name: 'Skolt Sami',
+ localizedName: 'sääʹmǩiõll',
+ direction: 'ltr'
+ },
om: {
name: 'Oromo',
localizedName: 'Oromo',
direction: 'ltr'
},
+ oo: {
+ name: 'Mossi',
+ localizedName: 'Mooré',
+ direction: 'ltr'
+ },
+ op: {
+ name: 'Totonaca',
+ localizedName: 'Totonac–Tepehua',
+ direction: 'ltr'
+ },
or: {
name: 'Oriya',
localizedName: 'Oriya',
@@ -727,14 +1968,24 @@
localizedName: 'Ossetian',
direction: 'ltr'
},
+ ot: {
+ name: 'Scots',
+ localizedName: 'Lallans',
+ direction: 'ltr'
+ },
+ ou: {
+ name: 'Southern Altai',
+ localizedName: 'Алтай тили',
+ direction: 'ltr'
+ },
pa: {
name: 'Panjabi',
localizedName: 'Panjabi',
direction: 'ltr'
},
- pi: {
- name: 'Pali',
- localizedName: 'Pali',
+ pg: {
+ name: 'Pangasinan',
+ localizedName: 'Salitan Pangasinan',
direction: 'ltr'
},
pl: {
@@ -742,6 +1993,21 @@
localizedName: 'polski',
direction: 'ltr'
},
+ pm: {
+ name: 'Pampanga',
+ localizedName: 'Amánung Kapampangan',
+ direction: 'ltr'
+ },
+ pn: {
+ name: 'Pohnpeian',
+ localizedName: 'Lokaiahn Pohnpei',
+ direction: 'ltr'
+ },
+ pp: {
+ name: 'Papiamento',
+ localizedName: 'Papiamentu',
+ direction: 'ltr'
+ },
ps: {
name: 'Pashto',
localizedName: 'Pushto',
@@ -752,19 +2018,99 @@
localizedName: 'português',
direction: 'ltr'
},
+ pt_AO: {
+ name: 'Portuguese(Angola)',
+ localizedName: 'português(Angola)',
+ direction: 'ltr'
+ },
pt_BR: {
name: 'Portuguese, Brazil',
localizedName: 'português (Brasil)',
direction: 'ltr'
},
+ pt_CV: {
+ name: 'Portuguese(Cabo verde)',
+ localizedName: 'português(Cabo verde)',
+ direction: 'ltr'
+ },
+ pt_GQ: {
+ name: 'Portuguese(Equatorial Guinea)',
+ localizedName: 'português(Guiné Equatorial)',
+ direction: 'ltr'
+ },
+ pt_GW: {
+ name: 'Portuguese(Guinea-Bissau)',
+ localizedName: 'português(Guiné-Bissau)',
+ direction: 'ltr'
+ },
+ pt_MZ: {
+ name: 'Portuguese(Mozambique)',
+ localizedName: 'português(Moçambique)',
+ direction: 'ltr'
+ },
+ pt_ST: {
+ name: 'Portuguese(São Tomé and Príncipe)',
+ localizedName: 'português(São Tomé e Príncipe)',
+ direction: 'ltr'
+ },
+ pu: {
+ name: 'Palauan',
+ localizedName: 'a tekoi er a Belau',
+ direction: 'ltr'
+ },
+ qc: {
+ name: 'k\'iche\'',
+ localizedName: 'Qatzijobʼal',
+ direction: 'ltr'
+ },
+ qe: {
+ name: 'q\'eqchi\'',
+ localizedName: 'Kekchi',
+ direction: 'ltr'
+ },
qu: {
name: 'Quechua',
localizedName: 'Quechua',
direction: 'ltr'
},
- rm: {
- name: 'Raeto-Romance',
- localizedName: 'Raeto-Romance',
+ ra: {
+ name: 'Braj',
+ localizedName: 'ब्रजभाषा',
+ direction: 'ltr'
+ },
+ rb: {
+ name: 'Grebo',
+ localizedName: 'Kréébo',
+ direction: 'ltr'
+ },
+ rc: {
+ name: 'Achi',
+ localizedName: 'Achiʼ',
+ direction: 'ltr'
+ },
+ re: {
+ name: 'Tereno',
+ localizedName: 'Terêna',
+ direction: 'ltr'
+ },
+ rh: {
+ name: 'Romansh',
+ localizedName: 'Rumantsch',
+ direction: 'ltr'
+ },
+ ri: {
+ name: 'Rapanui',
+ localizedName: 'Vananga rapa nui',
+ direction: 'ltr'
+ },
+ rj: {
+ name: 'Rajasthani',
+ localizedName: 'राजस्थानी',
+ direction: 'ltr'
+ },
+ rl: {
+ name: 'Karelian',
+ localizedName: 'karjal',
direction: 'ltr'
},
rn: {
@@ -776,6 +2122,16 @@
name: 'Romanian',
localizedName: 'română',
direction: 'ltr'
+ },
+ rp: {
+ name: 'Aromanian',
+ localizedName: 'armãneashce',
+ direction: 'ltr'
+ },
+ rr: {
+ name: 'Rarotongan (Cook Islands Māori)',
+ localizedName: 'Māori Kūki \'Āirani',
+ direction: 'ltr'
},
ru: {
name: 'Russian',
@@ -787,9 +2143,19 @@
localizedName: 'Kinyarwanda',
direction: 'ltr'
},
- sa: {
- name: 'Sanskrit',
- localizedName: 'Sanskrit',
+ ry: {
+ name: 'Romany',
+ localizedName: 'romani čhib',
+ direction: 'ltr'
+ },
+ rz: {
+ name: 'Lozi',
+ localizedName: 'siLozi',
+ direction: 'ltr'
+ },
+ sb: {
+ name: 'Kashubian',
+ localizedName: 'Kaszëbsczi jãzëk',
direction: 'ltr'
},
sc: {
@@ -812,16 +2178,16 @@
localizedName: 'Sango',
direction: 'ltr'
},
- sh: {
- name: 'Serbo-Croatian',
- localizedName: 'Serbo-Croatian',
- direction: 'ltr'
- },
si: {
name: 'Sinhalese',
localizedName: 'Sinhalese',
direction: 'ltr'
},
+ sj: {
+ name: 'Lule Sami',
+ localizedName: 'julevsámegiella',
+ direction: 'ltr'
+ },
sk: {
name: 'Slovak',
localizedName: 'Slovenčina',
@@ -846,6 +2212,11 @@
name: 'Somali',
localizedName: 'Somali',
direction: 'ltr'
+ },
+ sp: {
+ name: 'Sepedi',
+ localizedName: 'Sesotho sa Leboa',
+ direction: 'ltr'
},
sq: {
name: 'Albanian',
@@ -857,6 +2228,11 @@
localizedName: 'Српски',
direction: 'ltr'
},
+ sr_BA: {
+ name: 'Serbian (Bosnia and Herzegovina)',
+ localizedName: 'Српски (Босна и Херцеговина)',
+ direction: 'rtl'
+ },
ss: {
name: 'Swati',
localizedName: 'Swati',
@@ -877,15 +2253,40 @@
localizedName: 'svenska',
direction: 'ltr'
},
+ sv_FI: {
+ name: 'Swedish (Finland)',
+ localizedName: 'svenska (Finland)',
+ direction: 'rtl'
+ },
sw: {
name: 'Swahili',
localizedName: 'Swahili',
direction: 'ltr'
+ },
+ sx: {
+ name: 'Susu',
+ localizedName: 'Sosoxui',
+ direction: 'ltr'
+ },
+ sy: {
+ name: 'Syriac',
+ localizedName: 'ܠܫܢܐ ܣܘܪܝܝܐ Lešānā Suryāyā',
+ direction: 'rtl'
+ },
+ sz: {
+ name: 'Sasak',
+ localizedName: 'ᬪᬵᬲᬵᬲᬓ᭄ᬱᬓ᭄',
+ direction: 'ltr'
},
ta: {
name: 'Tamil',
localizedName: 'Tamil',
direction: 'ltr'
+ },
+ tc: {
+ name: 'Tonga (Nyasa)',
+ localizedName: 'chiTonga',
+ direction: 'ltr'
},
te: {
name: 'Telugu',
@@ -907,6 +2308,11 @@
localizedName: 'Tigrinya',
direction: 'ltr'
},
+ tj: {
+ name: 'Tlingit',
+ localizedName: 'Lingít',
+ direction: 'ltr'
+ },
tk: {
name: 'Turkmen',
localizedName: 'Turkmen',
@@ -916,6 +2322,11 @@
name: 'Tagalog',
localizedName: 'Tagalog',
direction: 'ltr'
+ },
+ tm: {
+ name: 'Tamashek',
+ localizedName: 'Tafaghist',
+ direction: 'ltr'
},
tn: {
name: 'Tswana',
@@ -927,6 +2338,16 @@
localizedName: 'Tonga',
direction: 'ltr'
},
+ tp: {
+ name: 'Tok Pisin',
+ localizedName: 'Tok Pisin',
+ direction: 'ltr'
+ },
+ tq: {
+ name: 'Tigre',
+ localizedName: 'ትግረ',
+ direction: 'ltr'
+ },
tr: {
name: 'Turkish',
localizedName: 'Türkçe',
@@ -942,35 +2363,95 @@
localizedName: 'Tatar',
direction: 'ltr'
},
+ tu: {
+ name: 'Tumbuka',
+ localizedName: 'chiTumbuka',
+ direction: 'ltr'
+ },
+ tv: {
+ name: 'Tuvalu',
+ localizedName: 'Te Ggana Tuuvalu',
+ direction: 'ltr'
+ },
tw: {
name: 'Twi',
localizedName: 'Twi',
direction: 'ltr'
},
+ tx: {
+ name: 'Tuvinian',
+ localizedName: 'тыва дыл',
+ direction: 'ltr'
+ },
ty: {
name: 'Tahitian',
localizedName: 'Tahitian',
direction: 'ltr'
},
+ tz: {
+ name: 'Tsimshian',
+ localizedName: 'Tsmksian',
+ direction: 'ltr'
+ },
+ ua: {
+ name: 'Náhuatl',
+ localizedName: 'Náhuatl',
+ direction: 'ltr'
+ },
+ ud: {
+ name: 'Udmurt',
+ localizedName: 'удмурт кыл',
+ direction: 'ltr'
+ },
ug: {
name: 'Uighur',
localizedName: 'Uighur',
direction: 'ltr'
},
+ ui: {
+ name: 'Manipuri',
+ localizedName: 'Meitei',
+ direction: 'ltr'
+ },
uk: {
name: 'Ukrainian',
localizedName: 'українська',
direction: 'ltr'
},
+ um: {
+ name: 'Umbundu',
+ localizedName: 'Úmbúndú',
+ direction: 'ltr'
+ },
+ un: {
+ name: 'Mapudungun',
+ localizedName: 'Mapuche',
+ direction: 'ltr'
+ },
ur: {
name: 'Urdu',
localizedName: 'Urdu',
direction: 'rtl'
},
+ ut: {
+ name: 'Tetum',
+ localizedName: 'Lia-Tetun',
+ direction: 'ltr'
+ },
+ uy: {
+ name: 'Kumyk',
+ localizedName: 'къумукъ тил/qumuq til',
+ direction: 'ltr'
+ },
uz: {
name: 'Uzbek',
localizedName: 'Uzbek',
direction: 'ltr'
+ },
+ va: {
+ name: 'Vai',
+ localizedName: 'ꕙꔤ',
+ direction: 'ltr'
},
ve: {
name: 'Venda',
@@ -982,9 +2463,14 @@
localizedName: 'Tiếng Việt',
direction: 'ltr'
},
- vo: {
- name: 'Volapuk',
- localizedName: 'Volapük',
+ vs: {
+ name: 'Siksika',
+ localizedName: 'ᓱᖽᐧᖿ',
+ direction: 'ltr'
+ },
+ vt: {
+ name: 'Votic',
+ localizedName: 'vađđa ceeli',
direction: 'ltr'
},
wa: {
@@ -992,26 +2478,101 @@
localizedName: 'Walloon',
direction: 'ltr'
},
+ wl: {
+ name: 'Wolaitta',
+ localizedName: 'Wolayttatto Doonaa',
+ direction: 'ltr'
+ },
wo: {
name: 'Wolof',
localizedName: 'Wolof',
direction: 'ltr'
},
+ wr: {
+ name: 'Waray',
+ localizedName: 'Winaray',
+ direction: 'ltr'
+ },
+ ws: {
+ name: 'Washo',
+ localizedName: 'wá:šiw ʔítlu',
+ direction: 'ltr'
+ },
+ xa: {
+ name: 'Kalmyk',
+ localizedName: 'Хальмг келн',
+ direction: 'ltr'
+ },
xh: {
name: 'Xhosa',
localizedName: 'Xhosa',
direction: 'ltr'
+ },
+ xl: {
+ name: 'Mongo',
+ localizedName: 'Lomongo',
+ direction: 'ltr'
+ },
+ xr: {
+ name: 'Marwari',
+ localizedName: 'मारवाड़ी',
+ direction: 'ltr'
+ },
+ xs: {
+ name: 'Sukuma',
+ localizedName: 'Kɪsukuma',
+ direction: 'ltr'
+ },
+ xt: {
+ name: 'Sranan Tongo',
+ localizedName: 'Sranan Tongo',
+ direction: 'ltr'
+ },
+ ya: {
+ name: 'Yao',
+ localizedName: 'chiYao',
+ direction: 'ltr'
+ },
+ yi: {
+ name: 'Yiddish',
+ localizedName: 'Yiddish',
+ direction: 'ltr'
+ },
+ yk: {
+ name: 'Yakut',
+ localizedName: 'Сахалыы',
+ direction: 'ltr'
+ },
+ yn: {
+ name: 'Mayan',
+ localizedName: 'Maya',
+ direction: 'ltr'
},
yo: {
name: 'Yoruba',
localizedName: 'Yoruba',
direction: 'ltr'
},
+ yp: {
+ name: 'Yapese',
+ localizedName: 'Thin nu Wa’ab',
+ direction: 'ltr'
+ },
za: {
name: 'Zhuang',
localizedName: 'Zhuang',
direction: 'ltr'
},
+ ze: {
+ name: 'Zenaga',
+ localizedName: 'Tuẓẓungiyya',
+ direction: 'ltr'
+ },
+ zg: {
+ name: 'Standard Moroccan Tamazight',
+ localizedName: 'ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ',
+ direction: 'ltr'
+ },
zh_CN: {
name: 'Chinese, Simplified',
localizedName: '中文 (中国)',
@@ -1022,15 +2583,45 @@
localizedName: '中文 (香港)',
direction: 'ltr'
},
+ zh_MO: {
+ name: 'Chinese (Macau)',
+ localizedName: '中文(澳门)',
+ direction: 'rtl'
+ },
+ zh_SG: {
+ name: 'Chinese (Singapore)',
+ localizedName: '中文(新加坡)',
+ direction: 'rtl'
+ },
zh_TW: {
name: 'Chinese, Traditional',
localizedName: '中文 (台灣)',
direction: 'ltr'
},
+ zn: {
+ name: 'Zuni',
+ localizedName: 'Shiwi\'ma',
+ direction: 'ltr'
+ },
+ zp: {
+ name: 'Zapotec',
+ localizedName: 'Diidxazá/Dizhsa',
+ direction: 'ltr'
+ },
+ zt: {
+ name: 'tz\'utujil',
+ localizedName: 'Tzʼutujiil',
+ direction: 'ltr'
+ },
zu: {
name: 'Zulu',
localizedName: 'Zulu',
direction: 'ltr'
+ },
+ zz: {
+ name: 'Zaza',
+ localizedName: 'kirmanckî',
+ direction: 'ltr'
}
};
Index: chipper/js/data/updateLocaleInfo.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/chipper/js/data/updateLocaleInfo.js b/chipper/js/data/updateLocaleInfo.js
--- a/chipper/js/data/updateLocaleInfo.js (revision 143ff65960670a192c57862abebda6cda5a3a201)
+++ b/chipper/js/data/updateLocaleInfo.js (date 1715055761394)
@@ -35,8 +35,8 @@
for ( const locale in localeInfo ) {
newModuleSourceCode += `
${locale}: {
- name: '${localeInfo[ locale ].name}',
- localizedName: '${localeInfo[ locale ].localizedName}',
+ name: '${localeInfo[ locale ].name.replace( /'/g, '\\\'' )}',
+ localizedName: '${localeInfo[ locale ].localizedName.replace( /'/g, '\\\'' )}',
direction: '${localeInfo[ locale ].direction}'
},`;
}
@@ -81,4 +81,6 @@
catch( e ) {
console.error( 'Unable to update files in git.', e );
}
-}
\ No newline at end of file
+}
+
+// TODO: write localeInfo.js main source from extended localeData directly
\ No newline at end of file
Index: forces-and-motion-basics/forces-and-motion-basics_en.html
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/forces-and-motion-basics/forces-and-motion-basics_en.html b/forces-and-motion-basics/forces-and-motion-basics_en.html
--- a/forces-and-motion-basics/forces-and-motion-basics_en.html (revision 6efcdd971bd9d19ec35708de3fb87ba2782dba29)
+++ b/forces-and-motion-basics/forces-and-motion-basics_en.html (date 1715059285649)
@@ -49,14 +49,12 @@
"simFeatures": {
"supportedRegionsAndCultures": [
"usa"
- ]
+ ],
+ "supportsDynamicLocale": true
},
"simulation": true,
"phet-io": {
- "validation": false,
- "wrappers": [
- "phet-io-wrapper-classroom-activity"
- ]
+ "validation": false
},
"supportsOutputJS": true,
"published": true,
Index: chipper/js/grunt/getInitializationScript.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/chipper/js/grunt/getInitializationScript.js b/chipper/js/grunt/getInitializationScript.js
--- a/chipper/js/grunt/getInitializationScript.js (revision 143ff65960670a192c57862abebda6cda5a3a201)
+++ b/chipper/js/grunt/getInitializationScript.js (date 1715060990547)
@@ -14,6 +14,7 @@
const assert = require( 'assert' );
const ChipperConstants = require( '../common/ChipperConstants' );
const ChipperStringUtils = require( '../common/ChipperStringUtils' );
+const fs = require( 'fs' );
const grunt = require( 'grunt' );
const transpile = require( './transpile' );
const stringEncoding = require( '../common/stringEncoding' );
@@ -29,6 +30,7 @@
const {
brand, // {string}, e.g. 'phet', 'phet-io'
repo, // {string}
+ allLocales, // {string[]}
stringMap, // {Object}, map[ locale ][ stringKey ] => {string}
stringMetadata, // {Object}, map[ stringKey ] => {Object}
version, // {string}
@@ -64,12 +66,19 @@
}
}
+ const fullLocaleData = JSON.parse( fs.readFileSync( '../babel/localeData.json', 'utf8' ) );
+ const localeData = {};
+ for ( const locale of allLocales ) {
+ localeData[ locale ] = fullLocaleData[ locale ];
+ }
+
return ChipperStringUtils.replacePlaceholders( grunt.file.read( '../chipper/templates/chipper-initialization.js' ), {
PHET_PROJECT: repo,
PHET_VERSION: version,
PHET_BUILD_TIMESTAMP: timestamp,
PHET_BRAND: brand,
PHET_LOCALE: locale,
+ PHET_LOCALE_DATA: JSON.stringify( localeData ),
PHET_DEPENDENCIES: JSON.stringify( dependencies, null, 2 ),
// If it's a debug build, don't encode the strings, so that they are easier to inspect
PHET_STRINGS: ( isDebugBuild || !encodeStringMap ) ? JSON.stringify( phetStrings, null, isDebugBuild ? 2 : '' ) : stringEncoding.encodeStringMapToJS( phetStrings ),
Index: babel/_generated_development_strings/beers-law-lab_all.json
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/babel/_generated_development_strings/beers-law-lab_all.json b/babel/_generated_development_strings/beers-law-lab_all.json
--- a/babel/_generated_development_strings/beers-law-lab_all.json (revision 514ca6eaee1b282900e0965a1a13f5e4924e7b27)
+++ b/babel/_generated_development_strings/beers-law-lab_all.json (date 1715058796963)
@@ -7206,92 +7206,6 @@
"value": "%"
}
},
- "sh": {
- "absorbance": {
- "value": "Апсорпција"
- },
- "beers-law-lab.title": {
- "value": "Ламбер-Беров закон"
- },
- "cobaltChloride": {
- "value": "Кобалт хлорид"
- },
- "cobaltIINitrate": {
- "value": "Бакар (II) нитрат"
- },
- "concentration": {
- "value": "Концентрација"
- },
- "copperSulfate": {
- "value": "Бакар сулфат"
- },
- "drinkMix": {
- "value": "\"коктел\""
- },
- "evaporation": {
- "value": "Испаравање"
- },
- "lots": {
- "value": "много"
- },
- "nickelIIChloride": {
- "value": "Никл (II) хлорид"
- },
- "none": {
- "value": "без"
- },
- "pattern.0soluteAmount": {
- "value": "Растворак : {0} g"
- },
- "potassiumChromate": {
- "value": "Калијум хромат"
- },
- "potassiumDichromate": {
- "value": "Калијум дихромат"
- },
- "potassiumPermanganate": {
- "value": "Калијум перманганат"
- },
- "preset": {
- "value": "стална"
- },
- "removeSolute": {
- "value": "Уклони растворак"
- },
- "saturated": {
- "value": "Засићено!"
- },
- "screen.beersLaw": {
- "value": "Беров закон"
- },
- "screen.concentration": {
- "value": "концентрација"
- },
- "sodiumChloride": {
- "value": "натријум хлорид"
- },
- "solid": {
- "value": "Чврсто стање"
- },
- "solute": {
- "value": "Супстанца која се раствара"
- },
- "solution": {
- "value": "Раствор"
- },
- "transmittance": {
- "value": "Прозрачност"
- },
- "variable": {
- "value": "променљива"
- },
- "water": {
- "value": "вода"
- },
- "wavelength": {
- "value": "Таласна дужина"
- }
- },
"si": {
"cobaltChloride": {
"value": "කොබොල්ට් ක්ලෝරයිඩ්"
Index: perennial/js/scripts/initial-parse-locales-csv.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/perennial/js/scripts/initial-parse-locales-csv.js b/perennial/js/scripts/initial-parse-locales-csv.js
new file mode 100644
--- /dev/null (date 1715055653214)
+++ b/perennial/js/scripts/initial-parse-locales-csv.js (date 1715055653214)
@@ -0,0 +1,195 @@
+// Copyright 2021, University of Colorado Boulder
+
+const fs = require( 'fs' );
+// eslint-disable-next-line require-statement-match
+const csv = require( 'csv-parser' );
+
+const filePath = process.argv[ 2 ];
+
+/**
+ * Read in the CSV export from the locales spreadsheet ("Final(dev)" format) and parse it into a localeJSON format.
+ *
+ * @author Jonathan Olson <[email protected]>
+ */
+
+const parseCSV = ( filePath, callback ) => {
+ const rows = [];
+
+ fs.createReadStream( filePath )
+ .pipe( csv() )
+ .on( 'data', row => {
+ const values = Object.values( row );
+ rows.push( values );
+ } )
+ .on( 'end', () => {
+ callback( null, rows );
+ } )
+ .on( 'error', error => {
+ callback( error, null );
+ } );
+};
+
+parseCSV( filePath, ( error, data ) => {
+ if ( error ) {
+ console.error( 'Error parsing CSV:', error );
+ }
+ else {
+ const localeMainData = data.map( row => {
+ let locale = row[ 1 ];
+ let threeLetterLocale = row[ 2 ];
+ let englishName = row[ 3 ];
+ let localizedName = row[ 4 ];
+ let direction = row[ 5 ];
+ const fallback = row[ 6 ];
+
+ locale = locale.trim();
+
+ if ( locale.length !== 2 && locale.length !== 5 ) {
+ throw new Error( `Invalid locale: ${JSON.stringify( locale )}` );
+ }
+
+ if ( !locale[ 0 ].match( /[a-z]/ ) ) {
+ throw new Error( `Invalid locale: ${locale}` );
+ }
+ if ( !locale[ 1 ].match( /[a-z]/ ) ) {
+ throw new Error( `Invalid locale: ${locale}` );
+ }
+
+ if ( locale.length === 5 ) {
+ if ( locale[ 2 ] !== '_' ) {
+ throw new Error( `Invalid locale: ${locale}` );
+ }
+ if ( !locale[ 3 ].match( /[A-Z]/ ) ) {
+ throw new Error( `Invalid locale: ${locale}` );
+ }
+ if ( !locale[ 4 ].match( /[A-Z]/ ) ) {
+ throw new Error( `Invalid locale: ${locale}` );
+ }
+ }
+
+ threeLetterLocale = threeLetterLocale.trim(); // remove tab
+
+ if ( threeLetterLocale.length === 5 && locale === threeLetterLocale ) {
+ threeLetterLocale = null;
+ }
+ else if ( threeLetterLocale.length === 0 ) {
+ threeLetterLocale = null;
+ }
+
+ if ( threeLetterLocale !== null ) {
+ if ( threeLetterLocale.length !== 3 ) {
+ throw new Error( `Invalid three-letter locale: ${JSON.stringify( row )}` );
+ }
+
+ if ( !threeLetterLocale.match( /^[a-z]{3}$/ ) ) {
+ throw new Error( `Invalid three-letter locale: ${JSON.stringify( row )}` );
+ }
+ }
+
+ englishName = englishName.trim().replace( /\u00A0/g, ' ' );
+
+ if ( englishName.length < 1 ) {
+ throw new Error( `Invalid English name: ${JSON.stringify( row )}` );
+ }
+
+ localizedName = localizedName.trim().replace( /\u00A0/g, ' ' );
+
+ if ( localizedName.length < 1 ) {
+ throw new Error( `Invalid localized name: ${JSON.stringify( row )}` );
+ }
+
+ // patch in
+ if ( locale === 'pt_ST' ) {
+ direction = 'ltr';
+ }
+
+ if ( direction !== 'ltr' && direction !== 'rtl' ) {
+ throw new Error( `Invalid direction: ${JSON.stringify( row )}` );
+ }
+
+ const fallbackLocales = fallback.trim().split( ',' ).map( x => x.trim() ).filter( l => l !== 'en' );
+
+ const result = {
+ locale: locale
+ };
+
+ if ( threeLetterLocale ) {
+ result.locale3 = threeLetterLocale;
+ }
+
+ result.englishName = englishName;
+ result.localizedName = localizedName;
+ result.direction = direction;
+
+ if ( fallbackLocales.length ) {
+ result.fallbackLocales = fallbackLocales;
+ }
+
+ return result;
+ } );
+
+ localeMainData.forEach( localeData => {
+ localeData.fallbackLocales && localeData.fallbackLocales.forEach( fallbackLocale => {
+ if ( !localeMainData.find( x => x.locale === fallbackLocale ) ) {
+ throw new Error( `Invalid fallback locale: ${JSON.stringify( localeData )}` );
+ }
+ } );
+ } );
+
+ localeMainData.sort( ( a, b ) => {
+ return a.locale.localeCompare( b.locale );
+ } );
+
+ const localeInfo = {};
+
+ localeMainData.forEach( localeData => {
+ const locale = localeData.locale;
+ delete localeData.locale;
+ localeInfo[ locale ] = localeData;
+ } );
+
+ const localeInfoString = JSON.stringify( localeInfo, null, 2 );
+ console.log( localeInfoString );
+
+ // legacy localeInfo.js, that will be propagated to the other copies
+ {
+ const legacyLocaleInfoPrimaryFilename = '../chipper/js/data/localeInfo.js';
+
+ if ( !fs.existsSync( legacyLocaleInfoPrimaryFilename ) ) {
+ throw new Error( `Expected to find ${legacyLocaleInfoPrimaryFilename}` );
+ }
+
+ const legacyLocaleInfoPrimary = fs.readFileSync( legacyLocaleInfoPrimaryFilename, 'utf8' );
+
+ const startIndex = legacyLocaleInfoPrimary.indexOf( 'const locales = {' );
+ const endIndex = legacyLocaleInfoPrimary.indexOf( 'module.exports = locales;', startIndex );
+
+ if ( startIndex === -1 || endIndex === -1 ) {
+ throw new Error( 'Failed to find localeInfo.js locales object' );
+ }
+
+ let replacement = 'const locales = {\n';
+
+ for ( const locale in localeInfo ) {
+ replacement += ` ${locale}: {\n`;
+ replacement += ` name: '${localeInfo[ locale ].englishName.replace( /'/g, '\\\'' )}',\n`;
+ replacement += ` localizedName: '${localeInfo[ locale ].localizedName.replace( /'/g, '\\\'' )}',\n`;
+ replacement += ` direction: '${localeInfo[ locale ].direction}'\n`;
+ replacement += ' },\n';
+ }
+
+ replacement += '};\n\n';
+
+ const newLocaleInfoPrimary = legacyLocaleInfoPrimary.substring( 0, startIndex ) + replacement + legacyLocaleInfoPrimary.substring( endIndex );
+
+ fs.writeFileSync( legacyLocaleInfoPrimaryFilename, newLocaleInfoPrimary, 'utf8' );
+ }
+
+ // New babel localeData
+ {
+ const babelExtendedLocaleInfoFilename = '../babel/localeData.json';
+
+ fs.writeFileSync( babelExtendedLocaleInfoFilename, localeInfoString );
+ }
+ }
+} );
\ No newline at end of file
Index: babel/localeData.json
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/babel/localeData.json b/babel/localeData.json
new file mode 100644
--- /dev/null (date 1715034303196)
+++ b/babel/localeData.json (date 1715034303196)
@@ -0,0 +1,3297 @@
+{
+ "aa": {
+ "locale3": "aar",
+ "englishName": "Afar",
+ "localizedName": "Afar",
+ "direction": "ltr"
+ },
+ "ab": {
+ "locale3": "abk",
+ "englishName": "Abkhazian",
+ "localizedName": "Abkhazian",
+ "direction": "ltr"
+ },
+ "ac": {
+ "locale3": "ace",
+ "englishName": "Achinese",
+ "localizedName": "بهسا اچيه",
+ "direction": "rtl"
+ },
+ "ad": {
+ "locale3": "ady",
+ "englishName": "Adyghe",
+ "localizedName": "Адыгабзэ",
+ "direction": "ltr"
+ },
+ "af": {
+ "locale3": "afr",
+ "englishName": "Afrikaans",
+ "localizedName": "Afrikaans",
+ "direction": "ltr"
+ },
+ "ag": {
+ "locale3": "anp",
+ "englishName": "Angika",
+ "localizedName": "अंगिका",
+ "direction": "ltr"
+ },
+ "ah": {
+ "locale3": "mas",
+ "englishName": "Masai",
+ "localizedName": "ɔl Maa",
+ "direction": "ltr"
+ },
+ "ai": {
+ "locale3": "ain",
+ "englishName": "Ainu",
+ "localizedName": "アイヌ・イタㇰ Ainu-itak",
+ "direction": "ltr"
+ },
+ "aj": {
+ "locale3": "nog",
+ "englishName": "Nogai",
+ "localizedName": "Ногай тили",
+ "direction": "ltr"
+ },
+ "ak": {
+ "locale3": "aka",
+ "englishName": "Akan",
+ "localizedName": "Akan",
+ "direction": "ltr"
+ },
+ "ak_FT": {
+ "locale3": "fat",
+ "englishName": "Fanti",
+ "localizedName": "Mfantse",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "ak"
+ ]
+ },
+ "al": {
+ "locale3": "ale",
+ "englishName": "Aleut",
+ "localizedName": "Уна́ӈам тунуу́",
+ "direction": "ltr"
+ },
+ "am": {
+ "locale3": "amh",
+ "englishName": "Amharic",
+ "localizedName": "Amharic",
+ "direction": "ltr"
+ },
+ "an": {
+ "locale3": "arg",
+ "englishName": "Aragonese",
+ "localizedName": "Aragonese",
+ "direction": "ltr"
+ },
+ "ao": {
+ "locale3": "mak",
+ "englishName": "Makasar",
+ "localizedName": "Basa Mangkasara' / ᨅᨔ ᨆᨀᨔᨑ",
+ "direction": "ltr"
+ },
+ "ap": {
+ "locale3": "arp",
+ "englishName": "Arapaho",
+ "localizedName": "Hinónoʼeitíít",
+ "direction": "ltr"
+ },
+ "ar": {
+ "locale3": "ara",
+ "englishName": "Arabic",
+ "localizedName": "العربية",
+ "direction": "rtl"
+ },
+ "ar_AE": {
+ "englishName": "Arabic (U.A.E.)",
+ "localizedName": "العربية (الإمارات العربية المتحدة)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_BH": {
+ "englishName": "Arabic (Bahrain)",
+ "localizedName": "العربية (البحرين)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_DJ": {
+ "englishName": "Arabic (Djibouti)",
+ "localizedName": "العربية (جيبوتي)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_DZ": {
+ "englishName": "Arabic (Algeria)",
+ "localizedName": "العربية (الجزائر)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_EG": {
+ "englishName": "Arabic (Egypt)",
+ "localizedName": "العربية (مصر)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_EH": {
+ "englishName": "Arabic (Sahrawi Republic)",
+ "localizedName": "العربية (الجمهورية الصحراوية)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_ER": {
+ "englishName": "Arabic (Eritrea)",
+ "localizedName": "العربية (إريتريا)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_IQ": {
+ "englishName": "Arabic (Iraq)",
+ "localizedName": "العربية (العراق)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_JO": {
+ "englishName": "Arabic (Jordan)",
+ "localizedName": "العربية (الأردن)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_KM": {
+ "englishName": "Arabic (Comoros)",
+ "localizedName": "العربية (جزر القمر)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_KW": {
+ "englishName": "Arabic (Kuwait)",
+ "localizedName": "العربية (الكويت)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_LB": {
+ "englishName": "Arabic (Lebanon)",
+ "localizedName": "العربية (لبنان)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_LY": {
+ "englishName": "Arabic (Libya)",
+ "localizedName": "العربية (ليبيا)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_MA": {
+ "locale3": "ary",
+ "englishName": "Arabic, Morocco",
+ "localizedName": "العربية (المغرب)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_MR": {
+ "englishName": "Arabic (Mauritania)",
+ "localizedName": "العربية (موريتانيا)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_OM": {
+ "englishName": "Arabic (Oman)",
+ "localizedName": "العربية (عُمان)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_QA": {
+ "englishName": "Arabic (Qatar)",
+ "localizedName": "العربية (قطر)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_SA": {
+ "englishName": "Arabic, Saudi Arabia",
+ "localizedName": "العربية (السعودية)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_SD": {
+ "englishName": "Arabic (Sudan)",
+ "localizedName": "العربية (السودان)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_SO": {
+ "englishName": "Arabic (Somalia)",
+ "localizedName": "العربية (الصومال)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_SY": {
+ "englishName": "Arabic (Syria)",
+ "localizedName": "العربية (سوريا)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_TD": {
+ "englishName": "Arabic (Chad)",
+ "localizedName": "العربية (تشاد)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_TN": {
+ "englishName": "Arabic (Tunisia)",
+ "localizedName": "العربية (تونس)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "ar_YE": {
+ "englishName": "Arabic (Yemen)",
+ "localizedName": "العربية (اليمن)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ar",
+ "ar_MA"
+ ]
+ },
+ "as": {
+ "locale3": "asm",
+ "englishName": "Assamese",
+ "localizedName": "Assamese",
+ "direction": "ltr"
+ },
+ "at": {
+ "locale3": "ast",
+ "englishName": "Asturian",
+ "localizedName": "Asturianu",
+ "direction": "ltr"
+ },
+ "au": {
+ "locale3": "awa",
+ "englishName": "Awadhi",
+ "localizedName": "अवधी",
+ "direction": "ltr"
+ },
+ "av": {
+ "locale3": "ava",
+ "englishName": "Avaric",
+ "localizedName": "Avaric",
+ "direction": "ltr"
+ },
+ "aw": {
+ "locale3": "arw",
+ "englishName": "Arawak",
+ "localizedName": "Lokono",
+ "direction": "ltr"
+ },
+ "ax": {
+ "locale3": "mai",
+ "englishName": "Maithili",
+ "localizedName": "मैथिली",
+ "direction": "ltr"
+ },
+ "ay": {
+ "locale3": "aym",
+ "englishName": "Aymara",
+ "localizedName": "Aymara",
+ "direction": "ltr"
+ },
+ "az": {
+ "locale3": "aze",
+ "englishName": "Azerbaijani",
+ "localizedName": "Azerbaijani",
+ "direction": "ltr"
+ },
+ "ba": {
+ "locale3": "bak",
+ "englishName": "Bashkir",
+ "localizedName": "Bashkir",
+ "direction": "ltr"
+ },
+ "bb": {
+ "locale3": "bem",
+ "englishName": "Bemba",
+ "localizedName": "Chibemba",
+ "direction": "ltr"
+ },
+ "bc": {
+ "locale3": "bal",
+ "englishName": "Baluchi",
+ "localizedName": "بلۏچی",
+ "direction": "rtl"
+ },
+ "bd": {
+ "locale3": "kmb",
+ "englishName": "Kimbundu",
+ "localizedName": "North Mbundu",
+ "direction": "ltr"
+ },
+ "be": {
+ "locale3": "bel",
+ "englishName": "Belarusian",
+ "localizedName": "беларускі",
+ "direction": "ltr"
+ },
+ "bg": {
+ "locale3": "bul",
+ "englishName": "Bulgarian",
+ "localizedName": "български",
+ "direction": "ltr"
+ },
+ "bi": {
+ "locale3": "bis",
+ "englishName": "Bislama",
+ "localizedName": "Bislama",
+ "direction": "ltr"
+ },
+ "bj": {
+ "locale3": "bej",
+ "englishName": "Beja",
+ "localizedName": "Bidhaawyeet",
+ "direction": "ltr"
+ },
+ "bk": {
+ "locale3": "bik",
+ "englishName": "Bikol",
+ "localizedName": "Bikol",
+ "direction": "ltr"
+ },
+ "bl": {
+ "locale3": "ban",
+ "englishName": "Balinese",
+ "localizedName": "ᬪᬵᬱᬩᬮᬶ",
+ "direction": "ltr"
+ },
+ "bm": {
+ "locale3": "bam",
+ "englishName": "Bambara",
+ "localizedName": "Bambara",
+ "direction": "ltr"
+ },
+ "bn": {
+ "locale3": "ben",
+ "englishName": "Bengali",
+ "localizedName": "Bengali",
+ "direction": "ltr"
+ },
+ "bo": {
+ "locale3": "bod",
+ "englishName": "Tibetan",
+ "localizedName": "Tibetan",
+ "direction": "ltr"
+ },
+ "bp": {
+ "locale3": "bho",
+ "englishName": "Bhojpuri",
+ "localizedName": "भोजपुरी",
+ "direction": "ltr"
+ },
+ "bq": {
+ "locale3": "bug",
+ "englishName": "Buginese",
+ "localizedName": "ᨅᨔ ᨕᨘᨁᨗ",
+ "direction": "ltr"
+ },
+ "br": {
+ "locale3": "bre",
+ "englishName": "Breton",
+ "localizedName": "Breton",
+ "direction": "ltr"
+ },
+ "bs": {
+ "locale3": "bos",
+ "englishName": "Bosnian",
+ "localizedName": "Bosnian",
+ "direction": "ltr"
+ },
+ "bt": {
+ "locale3": "min",
+ "englishName": "Minangkabau",
+ "localizedName": "Baso Minang",
+ "direction": "ltr"
+ },
+ "bu": {
+ "locale3": "bua",
+ "englishName": "Buriat",
+ "localizedName": "буряад хэлэн",
+ "direction": "ltr"
+ },
+ "bx": {
+ "locale3": "bnc",
+ "englishName": "Bontok",
+ "localizedName": "Finallig",
+ "direction": "rtl"
+ },
+ "by": {
+ "locale3": "byn",
+ "englishName": "Blin",
+ "localizedName": "ብሊና",
+ "direction": "ltr"
+ },
+ "ca": {
+ "locale3": "cat",
+ "englishName": "Catalan",
+ "localizedName": "català",
+ "direction": "ltr"
+ },
+ "cb": {
+ "locale3": "ceb",
+ "englishName": "Cebuano",
+ "localizedName": "Sinugbuanong Binisayâ",
+ "direction": "ltr"
+ },
+ "cc": {
+ "locale3": "chk",
+ "englishName": "Chuukese",
+ "localizedName": "Trukese",
+ "direction": "ltr"
+ },
+ "cd": {
+ "locale3": "cad",
+ "englishName": "Caddo",
+ "localizedName": "Hasí:nay",
+ "direction": "ltr"
+ },
+ "ce": {
+ "locale3": "che",
+ "englishName": "Chechen",
+ "localizedName": "Chechen",
+ "direction": "ltr"
+ },
+ "ch": {
+ "locale3": "cha",
+ "englishName": "Chamorro",
+ "localizedName": "Chamorro",
+ "direction": "ltr"
+ },
+ "ci": {
+ "locale3": "scn",
+ "englishName": "Sicilian",
+ "localizedName": "Sicilianu",
+ "direction": "ltr"
+ },
+ "cj": {
+ "locale3": "chy",
+ "englishName": "Cheyenne",
+ "localizedName": "Tsėhésenėstsestȯtse",
+ "direction": "ltr"
+ },
+ "ck": {
+ "locale3": "chr",
+ "englishName": "Cherokee",
+ "localizedName": "ᏣᎳᎩ ᎦᏬᏂᎯᏍᏗ",
+ "direction": "ltr"
+ },
+ "cl": {
+ "locale3": "lun",
+ "englishName": "Lunda",
+ "localizedName": "Chilunda",
+ "direction": "ltr"
+ },
+ "cm": {
+ "locale3": "chm",
+ "englishName": "Mari",
+ "localizedName": "марий йылме",
+ "direction": "ltr"
+ },
+ "cn": {
+ "locale3": "chn",
+ "englishName": "Chinook jargon",
+ "localizedName": "chinuk wawa",
+ "direction": "ltr"
+ },
+ "co": {
+ "locale3": "cos",
+ "englishName": "Corsican",
+ "localizedName": "Corsican",
+ "direction": "ltr"
+ },
+ "cp": {
+ "locale3": "chp",
+ "englishName": "Chipewyan",
+ "localizedName": "ᑌᓀᓱᒼᕄᓀ (Dënesųłiné)",
+ "direction": "ltr"
+ },
+ "cq": {
+ "locale3": "cak",
+ "englishName": "kaqchikel",
+ "localizedName": "Kaqchikel Chʼabʼäl",
+ "direction": "ltr"
+ },
+ "cr": {
+ "locale3": "cre",
+ "englishName": "Cree",
+ "localizedName": "Cree",
+ "direction": "ltr"
+ },
+ "cs": {
+ "locale3": "ces",
+ "englishName": "Czech",
+ "localizedName": "čeština",
+ "direction": "ltr"
+ },
+ "ct": {
+ "locale3": "crh",
+ "englishName": "Crimean Tatar",
+ "localizedName": "Къырымтатарджа",
+ "direction": "ltr"
+ },
+ "cv": {
+ "locale3": "chv",
+ "englishName": "Chuvash",
+ "localizedName": "Chuvash",
+ "direction": "ltr"
+ },
+ "cw": {
+ "locale3": "cho",
+ "englishName": "Choctaw",
+ "localizedName": "Chahta'",
+ "direction": "ltr"
+ },
+ "cy": {
+ "locale3": "cym",
+ "englishName": "Welsh",
+ "localizedName": "Welsh",
+ "direction": "ltr"
+ },
+ "cz": {
+ "locale3": "coz",
+ "englishName": "Chocho",
+ "localizedName": "Ngiwa",
+ "direction": "ltr"
+ },
+ "da": {
+ "locale3": "dan",
+ "englishName": "Danish",
+ "localizedName": "Dansk",
+ "direction": "ltr"
+ },
+ "db": {
+ "locale3": "dgr",
+ "englishName": "Dogrib",
+ "localizedName": "Tlicho",
+ "direction": "ltr"
+ },
+ "de": {
+ "locale3": "deu",
+ "englishName": "German",
+ "localizedName": "Deutsch",
+ "direction": "ltr"
+ },
+ "de_AT": {
+ "englishName": "German (Austria)",
+ "localizedName": "Deutsch (Österreich)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "de"
+ ]
+ },
+ "de_CH": {
+ "englishName": "German (Switzerland)",
+ "localizedName": "Deutsch (Schweiz)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "de"
+ ]
+ },
+ "de_LI": {
+ "englishName": "German (Liechtenstein)",
+ "localizedName": "Deutsch (Liechtenstein)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "de"
+ ]
+ },
+ "de_LU": {
+ "englishName": "German (Luxembourg)",
+ "localizedName": "Deutsch (Luxemburg)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "de"
+ ]
+ },
+ "dg": {
+ "locale3": "ada",
+ "englishName": "Adangme",
+ "localizedName": "Dangme",
+ "direction": "ltr"
+ },
+ "di": {
+ "locale3": "doi",
+ "englishName": "Dogri",
+ "localizedName": "डोगरी; ڈوگرى",
+ "direction": "rtl"
+ },
+ "dk": {
+ "locale3": "dak",
+ "englishName": "Dakota",
+ "localizedName": "Dakhótiyapi",
+ "direction": "ltr"
+ },
+ "dl": {
+ "locale3": "del",
+ "englishName": "Delaware",
+ "localizedName": "Lënapei èlixsuwakàn",
+ "direction": "ltr"
+ },
+ "dm": {
+ "locale3": "sid",
+ "englishName": "Sidamo",
+ "localizedName": "Sidaamu Afoo",
+ "direction": "ltr"
+ },
+ "dn": {
+ "locale3": "din",
+ "englishName": "Dinka",
+ "localizedName": "Thuɔŋjäŋ",
+ "direction": "ltr"
+ },
+ "dr": {
+ "locale3": "dar",
+ "englishName": "Dargwa",
+ "localizedName": "дарган мез",
+ "direction": "ltr"
+ },
+ "ds": {
+ "locale3": "dsb",
+ "englishName": "Lower Sorbian",
+ "localizedName": "Dolnoserbski",
+ "direction": "ltr"
+ },
+ "du": {
+ "locale3": "dua",
+ "englishName": "Duala",
+ "localizedName": "Duālā",
+ "direction": "ltr"
+ },
+ "dv": {
+ "locale3": "div",
+ "englishName": "Divehi",
+ "localizedName": "Divehi",
+ "direction": "ltr"
+ },
+ "dw": {
+ "locale3": "sad",
+ "englishName": "Sandawe",
+ "localizedName": "Sandaweeki",
+ "direction": "ltr"
+ },
+ "dy": {
+ "locale3": "dyu",
+ "englishName": "Dyula",
+ "localizedName": "Julakan",
+ "direction": "ltr"
+ },
+ "dz": {
+ "locale3": "dzo",
+ "englishName": "Dzongkha",
+ "localizedName": "Dzongkha",
+ "direction": "ltr"
+ },
+ "ed": {
+ "locale3": "bin",
+ "englishName": "Bini",
+ "localizedName": "Ẹ̀dó",
+ "direction": "ltr"
+ },
+ "ee": {
+ "locale3": "ewe",
+ "englishName": "Ewe",
+ "localizedName": "Ewe",
+ "direction": "ltr"
+ },
+ "ef": {
+ "locale3": "efi",
+ "englishName": "Efik",
+ "localizedName": "Usem Efịk",
+ "direction": "ltr"
+ },
+ "ek": {
+ "locale3": "eka",
+ "englishName": "Ekajuk",
+ "localizedName": "Ekajuk",
+ "direction": "ltr"
+ },
+ "el": {
+ "locale3": "ell",
+ "englishName": "Greek",
+ "localizedName": "Ελληνικά",
+ "direction": "ltr"
+ },
+ "em": {
+ "locale3": "den",
+ "englishName": "Slave (Athapascan)",
+ "localizedName": "Dene K'e",
+ "direction": "ltr"
+ },
+ "en": {
+ "locale3": "eng",
+ "englishName": "English",
+ "localizedName": "English",
+ "direction": "ltr"
+ },
+ "en_AU": {
+ "englishName": "English (Australia)",
+ "localizedName": "English (Australia)",
+ "direction": "ltr"
+ },
+ "en_BI": {
+ "englishName": "English (Burundi)",
+ "localizedName": "English (Burundi)",
+ "direction": "ltr"
+ },
+ "en_BW": {
+ "englishName": "English (Botswana)",
+ "localizedName": "English (Botswana)",
+ "direction": "ltr"
+ },
+ "en_BZ": {
+ "englishName": "English (Belize)",
+ "localizedName": "English (Belize)",
+ "direction": "ltr"
+ },
+ "en_CA": {
+ "englishName": "English, Canada",
+ "localizedName": "English (Canada)",
+ "direction": "ltr"
+ },
+ "en_CB": {
+ "englishName": "English (Caribbean)",
+ "localizedName": "English (Caribbean)",
+ "direction": "ltr"
+ },
+ "en_CM": {
+ "englishName": "English (Cameroon)",
+ "localizedName": "English (Cameroon)",
+ "direction": "ltr"
+ },
+ "en_ER": {
+ "englishName": "English (Eritrea)",
+ "localizedName": "English (Eritrea)",
+ "direction": "ltr"
+ },
+ "en_ET": {
+ "englishName": "English (Ethiopia)",
+ "localizedName": "English (Ethiopia)",
+ "direction": "ltr"
+ },
+ "en_GB": {
+ "englishName": "English, United Kingdom",
+ "localizedName": "English (United Kingdom)",
+ "direction": "ltr"
+ },
+ "en_GH": {
+ "englishName": "English (Ghana)",
+ "localizedName": "English (Ghana)",
+ "direction": "ltr"
+ },
+ "en_GM": {
+ "englishName": "English (Gambia)",
+ "localizedName": "English (Gambia)",
+ "direction": "ltr"
+ },
+ "en_IE": {
+ "englishName": "English (Ireland)",
+ "localizedName": "English (Ireland)",
+ "direction": "ltr"
+ },
+ "en_IN": {
+ "englishName": "English (India)",
+ "localizedName": "English (India)",
+ "direction": "ltr"
+ },
+ "en_JM": {
+ "englishName": "English (Jamaica)",
+ "localizedName": "English (Jamaica)",
+ "direction": "ltr"
+ },
+ "en_KE": {
+ "englishName": "English (Kenya)",
+ "localizedName": "English (Kenya)",
+ "direction": "ltr"
+ },
+ "en_LR": {
+ "englishName": "English (Liberia)",
+ "localizedName": "English (Liberia)",
+ "direction": "ltr"
+ },
+ "en_LS": {
+ "englishName": "English (Lesotho)",
+ "localizedName": "English (Lesotho)",
+ "direction": "ltr"
+ },
+ "en_MU": {
+ "englishName": "English (Mauritius)",
+ "localizedName": "English (Mauritius)",
+ "direction": "ltr"
+ },
+ "en_MW": {
+ "englishName": "English (Malawi)",
+ "localizedName": "English (Malawi)",
+ "direction": "ltr"
+ },
+ "en_MY": {
+ "englishName": "English (Malaysia)",
+ "localizedName": "English (Malaysia)",
+ "direction": "ltr"
+ },
+ "en_NA": {
+ "englishName": "English (Namibia)",
+ "localizedName": "English (Namibia)",
+ "direction": "ltr"
+ },
+ "en_NG": {
+ "englishName": "English (Nigeria)",
+ "localizedName": "English (Nigeria)",
+ "direction": "ltr"
+ },
+ "en_NZ": {
+ "englishName": "English (New Zealand)",
+ "localizedName": "English (New Zealand)",
+ "direction": "ltr"
+ },
+ "en_PH": {
+ "englishName": "English (Republic of the Philippines)",
+ "localizedName": "English (Republic of the Philippines)",
+ "direction": "ltr"
+ },
+ "en_RW": {
+ "englishName": "English (Rwanda)",
+ "localizedName": "English (Rwanda)",
+ "direction": "ltr"
+ },
+ "en_SC": {
+ "englishName": "English (Seychelles)",
+ "localizedName": "English (Seychelles)",
+ "direction": "ltr"
+ },
+ "en_SL": {
+ "englishName": "English (Sierra Leone)",
+ "localizedName": "English (Sierra Leone)",
+ "direction": "ltr"
+ },
+ "en_SS": {
+ "englishName": "English (South Sudan)",
+ "localizedName": "English (South Sudan)",
+ "direction": "ltr"
+ },
+ "en_SZ": {
+ "englishName": "English (Eswatini)",
+ "localizedName": "English (Eswatini)",
+ "direction": "ltr"
+ },
+ "en_TT": {
+ "englishName": "English (Trinidad and Tobago)",
+ "localizedName": "English (Trinidad and Tobago)",
+ "direction": "ltr"
+ },
+ "en_TZ": {
+ "englishName": "English (Tanzania)",
+ "localizedName": "English (Tanzania)",
+ "direction": "ltr"
+ },
+ "en_UG": {
+ "englishName": "English (Uganda)",
+ "localizedName": "English (Uganda)",
+ "direction": "ltr"
+ },
+ "en_ZA": {
+ "englishName": "English (South Africa)",
+ "localizedName": "English (South Africa)",
+ "direction": "ltr"
+ },
+ "en_ZM": {
+ "englishName": "English (Zambia)",
+ "localizedName": "English (Zambia)",
+ "direction": "ltr"
+ },
+ "en_ZW": {
+ "englishName": "English (Zimbabwe)",
+ "localizedName": "English (Zimbabwe)",
+ "direction": "ltr"
+ },
+ "er": {
+ "locale3": "srr",
+ "englishName": "Serer",
+ "localizedName": "Seereer",
+ "direction": "ltr"
+ },
+ "es": {
+ "locale3": "spa",
+ "englishName": "Spanish",
+ "localizedName": "español",
+ "direction": "ltr"
+ },
+ "es_AR": {
+ "englishName": "Spanish (Argentina)",
+ "localizedName": "español (Argentina)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_BO": {
+ "englishName": "Spanish (Bolivia)",
+ "localizedName": "español (Bolivia)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_CL": {
+ "englishName": "Spanish (Chile)",
+ "localizedName": "español (Chile)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_CO": {
+ "englishName": "Spanish, Colombia",
+ "localizedName": "español (Colombia)",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_CR": {
+ "englishName": "Spanish, Costa Rica",
+ "localizedName": "español (Costa Rica)",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_DO": {
+ "englishName": "Spanish (Dominican Republic)",
+ "localizedName": "español (Dominican Republic)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_EC": {
+ "englishName": "Spanish (Ecuador)",
+ "localizedName": "español (Ecuador)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_ES": {
+ "englishName": "Spanish, Spain",
+ "localizedName": "español (España)",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_GQ": {
+ "englishName": "Spanish (Equatorial Guinea)",
+ "localizedName": "español (Equatorial Guinea)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_GT": {
+ "englishName": "Spanish (Guatemala)",
+ "localizedName": "español (Guatemala)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_HN": {
+ "englishName": "Spanish (Honduras)",
+ "localizedName": "español (Honduras)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_MX": {
+ "englishName": "Spanish, Mexico",
+ "localizedName": "español (México)",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_NI": {
+ "englishName": "Spanish (Nicaragua)",
+ "localizedName": "español (Nicaragua)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_PA": {
+ "englishName": "Spanish (Panama)",
+ "localizedName": "español (Panama)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_PE": {
+ "englishName": "Spanish, Peru",
+ "localizedName": "español (Perú)",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_PR": {
+ "englishName": "Spanish (Puerto Rico)",
+ "localizedName": "español (Puerto Rico)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_PY": {
+ "englishName": "Spanish (Paraguay)",
+ "localizedName": "español (Paraguay)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_SV": {
+ "englishName": "Spanish (El Salvador)",
+ "localizedName": "español (El Salvador)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_US": {
+ "englishName": "Spanish (United States)",
+ "localizedName": "español (United States)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_UY": {
+ "englishName": "Spanish (Uruguay)",
+ "localizedName": "español (Uruguay)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "es_VE": {
+ "englishName": "Spanish (Venezuela)",
+ "localizedName": "español (Venezuela)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "es"
+ ]
+ },
+ "et": {
+ "locale3": "est",
+ "englishName": "Estonian",
+ "localizedName": "Eesti",
+ "direction": "ltr"
+ },
+ "eu": {
+ "locale3": "eus",
+ "englishName": "Basque",
+ "localizedName": "Basque",
+ "direction": "ltr"
+ },
+ "ew": {
+ "locale3": "ewo",
+ "englishName": "Ewondo",
+ "localizedName": "Beti",
+ "direction": "ltr"
+ },
+ "fa": {
+ "locale3": "fas",
+ "englishName": "Persian",
+ "localizedName": "Persian",
+ "direction": "rtl"
+ },
+ "fa_DA": {
+ "locale3": "prs",
+ "englishName": "Persian (Dari)",
+ "localizedName": "Dari",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fa"
+ ]
+ },
+ "ff": {
+ "locale3": "ful",
+ "englishName": "Fulah",
+ "localizedName": "Fulah",
+ "direction": "ltr"
+ },
+ "fg": {
+ "locale3": "fon",
+ "englishName": "Fon",
+ "localizedName": "Fon gbè",
+ "direction": "ltr"
+ },
+ "fi": {
+ "locale3": "fin",
+ "englishName": "Finnish",
+ "localizedName": "suomi",
+ "direction": "ltr"
+ },
+ "fj": {
+ "locale3": "fij",
+ "englishName": "Fijian",
+ "localizedName": "Fijian",
+ "direction": "ltr"
+ },
+ "fl": {
+ "locale3": "fil",
+ "englishName": "Filipino",
+ "localizedName": "Wikang Filipino",
+ "direction": "ltr"
+ },
+ "fn": {
+ "locale3": "fan",
+ "englishName": "Fang",
+ "localizedName": "Pangwe",
+ "direction": "ltr"
+ },
+ "fo": {
+ "locale3": "fao",
+ "englishName": "Faroese",
+ "localizedName": "Faroese",
+ "direction": "ltr"
+ },
+ "fr": {
+ "locale3": "fra",
+ "englishName": "French",
+ "localizedName": "français",
+ "direction": "ltr"
+ },
+ "fr_BE": {
+ "englishName": "French (Belgium)",
+ "localizedName": "français (Belgium)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_BF": {
+ "englishName": "French (Burkina Faso)",
+ "localizedName": "français (Burkina Faso)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_BI": {
+ "englishName": "French (Burundi)",
+ "localizedName": "français (Burundi)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_BJ": {
+ "englishName": "French (Benin)",
+ "localizedName": "français (Bénin)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_CA": {
+ "englishName": "French (Canada)",
+ "localizedName": "français (Canada)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_CD": {
+ "englishName": "French (DR Congo)",
+ "localizedName": "français (RD Congo)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_CF": {
+ "englishName": "French (Central African Republic)",
+ "localizedName": "français (République centrafricaine)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_CG": {
+ "englishName": "French (Congo Republic)",
+ "localizedName": "français (République du Congo)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_CH": {
+ "englishName": "French (Switzerland)",
+ "localizedName": "français (Suisse)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_CI": {
+ "englishName": "French (Côte d’Ivoire)",
+ "localizedName": "français (Côte d'Ivoire)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_CM": {
+ "englishName": "French (Cameroon)",
+ "localizedName": "français (Cameroon)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_DJ": {
+ "englishName": "French (Djibouti)",
+ "localizedName": "français (Djibouti)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_EH": {
+ "englishName": "French (Sahrawi Republic)",
+ "localizedName": "français (République sahraouie)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_GA": {
+ "englishName": "French (Gabon)",
+ "localizedName": "français (Gabon)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_GN": {
+ "englishName": "French (Guinea)",
+ "localizedName": "français (Guinée)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_GQ": {
+ "englishName": "French (Equatorial Guinea)",
+ "localizedName": "français (Guinée Équatoriale)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_KM": {
+ "englishName": "French (Comoros)",
+ "localizedName": "français (Comores)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_LU": {
+ "englishName": "French (Luxembourg)",
+ "localizedName": "français (Luxembourg)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_MC": {
+ "englishName": "French (Monaco)",
+ "localizedName": "français (Monaco)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_MG": {
+ "englishName": "French (Madagascar)",
+ "localizedName": "français (Madagascar)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_ML": {
+ "englishName": "French (Mali)",
+ "localizedName": "français (Mali)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_NE": {
+ "englishName": "French (Niger)",
+ "localizedName": "français (Niger)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_RW": {
+ "englishName": "French (Rwanda)",
+ "localizedName": "français (Rwanda)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_SC": {
+ "englishName": "French (Seychelles)",
+ "localizedName": "français (les Seychelles)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_SN": {
+ "englishName": "French (Senegal)",
+ "localizedName": "français (Sénégal)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_TD": {
+ "englishName": "French (Chad)",
+ "localizedName": "français (Tchad)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fr_TG": {
+ "englishName": "French (Togo)",
+ "localizedName": "français (Togo)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "fr"
+ ]
+ },
+ "fs": {
+ "locale3": "frs",
+ "englishName": "East Frisian Low Saxon",
+ "localizedName": "Oostfreesk",
+ "direction": "ltr"
+ },
+ "fu": {
+ "locale3": "fur",
+ "englishName": "Friulian",
+ "localizedName": "furlan",
+ "direction": "ltr"
+ },
+ "fy": {
+ "locale3": "fry",
+ "englishName": "Western Frisian",
+ "localizedName": "Frisian",
+ "direction": "ltr"
+ },
+ "ga": {
+ "locale3": "gle",
+ "englishName": "Irish",
+ "localizedName": "Gaeilge",
+ "direction": "ltr"
+ },
+ "gb": {
+ "locale3": "gba",
+ "englishName": "Gbaya",
+ "localizedName": "Gbaya–Manza–Ngbaka",
+ "direction": "ltr"
+ },
+ "gc": {
+ "locale3": "car",
+ "englishName": "Galibi Carib",
+ "localizedName": "Kari'nja",
+ "direction": "ltr"
+ },
+ "gd": {
+ "locale3": "gla",
+ "englishName": "Scottish Gaelic",
+ "localizedName": "Scottish Gaelic",
+ "direction": "ltr"
+ },
+ "gf": {
+ "locale3": "cab",
+ "englishName": "Garifuna",
+ "localizedName": "Garifuna",
+ "direction": "ltr"
+ },
+ "gg": {
+ "locale3": "gaa",
+ "englishName": "Ga",
+ "localizedName": "Gã",
+ "direction": "ltr"
+ },
+ "gk": {
+ "locale3": "tkl",
+ "englishName": "Tokelau",
+ "localizedName": "gagana Tokelau",
+ "direction": "ltr"
+ },
+ "gl": {
+ "locale3": "glg",
+ "englishName": "Galician",
+ "localizedName": "Gallegan",
+ "direction": "ltr"
+ },
+ "gn": {
+ "locale3": "grn",
+ "englishName": "Guarani",
+ "localizedName": "Guarani",
+ "direction": "ltr"
+ },
+ "go": {
+ "locale3": "gon",
+ "englishName": "Gondi",
+ "localizedName": "గోండి",
+ "direction": "ltr"
+ },
+ "gr": {
+ "locale3": "gor",
+ "englishName": "Gorontalo",
+ "localizedName": "Bahasa Hulontalo",
+ "direction": "ltr"
+ },
+ "gs": {
+ "locale3": "gsw",
+ "englishName": "Swiss German",
+ "localizedName": "Schwiizerdütsch",
+ "direction": "ltr"
+ },
+ "gt": {
+ "locale3": "gil",
+ "englishName": "Gilbertese",
+ "localizedName": "Taetae ni Kiribati",
+ "direction": "ltr"
+ },
+ "gu": {
+ "locale3": "guj",
+ "englishName": "Gujarati",
+ "localizedName": "Gujarati",
+ "direction": "ltr"
+ },
+ "gv": {
+ "locale3": "glv",
+ "englishName": "Manx",
+ "localizedName": "Manx",
+ "direction": "ltr"
+ },
+ "gw": {
+ "locale3": "gwi",
+ "englishName": "Gwich'in",
+ "localizedName": "Dinjii Zhu’ Ginjik",
+ "direction": "ltr"
+ },
+ "gy": {
+ "locale3": "gay",
+ "englishName": "Gayo",
+ "localizedName": "Basa Gayo",
+ "direction": "ltr"
+ },
+ "ha": {
+ "locale3": "hau",
+ "englishName": "Hausa",
+ "localizedName": "Hausa",
+ "direction": "ltr"
+ },
+ "hd": {
+ "locale3": "mdr",
+ "englishName": "Mandar",
+ "localizedName": "Mandar",
+ "direction": "ltr"
+ },
+ "hh": {
+ "locale3": "moh",
+ "englishName": "Mohawk",
+ "localizedName": "Kanien’kéha",
+ "direction": "ltr"
+ },
+ "hi": {
+ "locale3": "hin",
+ "englishName": "Hindi",
+ "localizedName": "हिंदी",
+ "direction": "ltr"
+ },
+ "hk": {
+ "locale3": "kru",
+ "englishName": "Kurukh",
+ "localizedName": "कुड़ुख़",
+ "direction": "ltr"
+ },
+ "hl": {
+ "locale3": "hil",
+ "englishName": "Hiligaynon",
+ "localizedName": "Ilonggo",
+ "direction": "ltr"
+ },
+ "hm": {
+ "locale3": "hmn",
+ "englishName": "Hmong",
+ "localizedName": "𖬇𖬰𖬞 𖬌𖬣𖬵",
+ "direction": "ltr"
+ },
+ "hn": {
+ "locale3": "shn",
+ "englishName": "Shan",
+ "localizedName": "ၵႂၢမ်းတႆးယႂ်",
+ "direction": "ltr"
+ },
+ "ho": {
+ "locale3": "hmo",
+ "englishName": "Hiri Motu",
+ "localizedName": "Hiri Motu",
+ "direction": "ltr"
+ },
+ "hp": {
+ "locale3": "hup",
+ "englishName": "Hupa",
+ "localizedName": "Na:tinixwe Mixine:whe'",
+ "direction": "ltr"
+ },
+ "hr": {
+ "locale3": "hrv",
+ "englishName": "Croatian",
+ "localizedName": "hrvatski",
+ "direction": "ltr"
+ },
+ "hr_BA": {
+ "englishName": "Croatian (Latin, Bosnia, and Herzegovina)",
+ "localizedName": "hrvatski (Latinica, Bosna i Hercegovina)",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "hr"
+ ]
+ },
+ "hs": {
+ "locale3": "hsb",
+ "englishName": "Upper Sorbian",
+ "localizedName": "hornjoserbšćina",
+ "direction": "ltr"
+ },
+ "ht": {
+ "locale3": "hat",
+ "englishName": "Haitian",
+ "localizedName": "Haitian",
+ "direction": "ltr"
+ },
+ "hu": {
+ "locale3": "hun",
+ "englishName": "Hungarian",
+ "localizedName": "magyar",
+ "direction": "ltr"
+ },
+ "hw": {
+ "locale3": "haw",
+ "englishName": "Hawaiian",
+ "localizedName": "ʻŌlelo Hawaiʻi",
+ "direction": "ltr"
+ },
+ "hx": {
+ "locale3": "hai",
+ "englishName": "Haida",
+ "localizedName": "X̱aat Kíl",
+ "direction": "ltr"
+ },
+ "hy": {
+ "locale3": "hye",
+ "englishName": "Armenian",
+ "localizedName": "Armenian",
+ "direction": "ltr"
+ },
+ "hz": {
+ "locale3": "her",
+ "englishName": "Herero",
+ "localizedName": "Herero",
+ "direction": "ltr"
+ },
+ "ib": {
+ "locale3": "iba",
+ "englishName": "Iban",
+ "localizedName": "Jaku Iban",
+ "direction": "ltr"
+ },
+ "ig": {
+ "locale3": "ibo",
+ "englishName": "Igbo",
+ "localizedName": "Igbo",
+ "direction": "ltr"
+ },
+ "ih": {
+ "locale3": "inh",
+ "englishName": "Ingush",
+ "localizedName": "ГӀалгӀай мотт",
+ "direction": "ltr"
+ },
+ "ii": {
+ "locale3": "iii",
+ "englishName": "Sichuan Yi",
+ "localizedName": "Sichuan Yi",
+ "direction": "ltr"
+ },
+ "ik": {
+ "locale3": "ipk",
+ "englishName": "Inupiaq",
+ "localizedName": "Inupiaq",
+ "direction": "ltr"
+ },
+ "il": {
+ "locale3": "ilo",
+ "englishName": "Iloko",
+ "localizedName": "Pagsasao nga Ilokano",
+ "direction": "ltr"
+ },
+ "im": {
+ "locale3": "sma",
+ "englishName": "Southern Sami",
+ "localizedName": "Åarjelsaemien gïele",
+ "direction": "ltr"
+ },
+ "in": {
+ "locale3": "ind",
+ "englishName": "Indonesian",
+ "localizedName": "Bahasa Indonesia",
+ "direction": "ltr"
+ },
+ "iq": {
+ "locale3": "miq",
+ "englishName": "Miskito",
+ "localizedName": "Miskitu",
+ "direction": "ltr"
+ },
+ "is": {
+ "locale3": "isl",
+ "englishName": "Icelandic",
+ "localizedName": "íslenska",
+ "direction": "ltr"
+ },
+ "it": {
+ "locale3": "ita",
+ "englishName": "Italian",
+ "localizedName": "italiano",
+ "direction": "ltr"
+ },
+ "it_CH": {
+ "englishName": "Italian (Switzerland)",
+ "localizedName": "italiano(Svizzera)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "it"
+ ]
+ },
+ "iu": {
+ "locale3": "iku",
+ "englishName": "Inuktitut",
+ "localizedName": "Inuktitut",
+ "direction": "ltr"
+ },
+ "iv": {
+ "locale3": "tiv",
+ "englishName": "Tiv",
+ "localizedName": "Tiv",
+ "direction": "ltr"
+ },
+ "iw": {
+ "locale3": "heb",
+ "englishName": "Hebrew",
+ "localizedName": "עברית",
+ "direction": "rtl"
+ },
+ "ix": {
+ "locale3": "ixl",
+ "englishName": "ixil",
+ "localizedName": "Ixhil",
+ "direction": "ltr"
+ },
+ "ja": {
+ "locale3": "jpn",
+ "englishName": "Japanese",
+ "localizedName": "日本語",
+ "direction": "ltr"
+ },
+ "jb": {
+ "locale3": "kjb",
+ "englishName": "q'anjob'al",
+ "localizedName": "Kanjobal",
+ "direction": "ltr"
+ },
+ "jp": {
+ "locale3": "jpr",
+ "englishName": "Judeo-Persian",
+ "localizedName": "Dzhidi",
+ "direction": "ltr"
+ },
+ "jr": {
+ "locale3": "jrb",
+ "englishName": "Judeo-Arabic",
+ "localizedName": "عربية يهودية / ערבית יהודית",
+ "direction": "rtl"
+ },
+ "jv": {
+ "locale3": "jav",
+ "englishName": "Javanese",
+ "localizedName": "Javanese",
+ "direction": "ltr"
+ },
+ "ka": {
+ "locale3": "kat",
+ "englishName": "Georgian",
+ "localizedName": "Georgian",
+ "direction": "ltr"
+ },
+ "kb": {
+ "locale3": "kab",
+ "englishName": "Kabyle",
+ "localizedName": "Tamaziɣt Taqbaylit",
+ "direction": "ltr"
+ },
+ "kc": {
+ "locale3": "kac",
+ "englishName": "Kachin",
+ "localizedName": "Jingpho",
+ "direction": "ltr"
+ },
+ "kd": {
+ "locale3": "kbd",
+ "englishName": "Kabardian",
+ "localizedName": "Адыгэбзэ (Къэбэрдейбзэ)",
+ "direction": "ltr"
+ },
+ "ke": {
+ "locale3": "kpe",
+ "englishName": "Kpelle",
+ "localizedName": "Kpɛlɛwoo",
+ "direction": "ltr"
+ },
+ "kf": {
+ "locale3": "krc",
+ "englishName": "Karachay-Balkar",
+ "localizedName": "Къарачай-Малкъар тил",
+ "direction": "ltr"
+ },
+ "kg": {
+ "locale3": "kon",
+ "englishName": "Kongo",
+ "localizedName": "Kongo",
+ "direction": "ltr"
+ },
+ "kh": {
+ "locale3": "kha",
+ "englishName": "Khasi",
+ "localizedName": "কা কতিয়েন খাশি",
+ "direction": "ltr"
+ },
+ "ki": {
+ "locale3": "kik",
+ "englishName": "Kikuyu",
+ "localizedName": "Kikuyu",
+ "direction": "ltr"
+ },
+ "kj": {
+ "locale3": "kua",
+ "englishName": "Kwanyama",
+ "localizedName": "Kwanyama",
+ "direction": "ltr"
+ },
+ "kk": {
+ "locale3": "kaz",
+ "englishName": "Kazakh",
+ "localizedName": "Kazakh",
+ "direction": "ltr"
+ },
+ "kl": {
+ "locale3": "kal",
+ "englishName": "Kalaallisut",
+ "localizedName": "Greenlandic",
+ "direction": "ltr"
+ },
+ "km": {
+ "locale3": "khm",
+ "englishName": "Khmer",
+ "localizedName": "Khmer",
+ "direction": "ltr"
+ },
+ "kn": {
+ "locale3": "kan",
+ "englishName": "Kannada",
+ "localizedName": "Kannada",
+ "direction": "ltr"
+ },
+ "ko": {
+ "locale3": "kor",
+ "englishName": "Korean",
+ "localizedName": "한국어",
+ "direction": "ltr"
+ },
+ "kp": {
+ "locale3": "kaa",
+ "englishName": "Kara-Kalpak",
+ "localizedName": "Qaraqalpaq tili",
+ "direction": "ltr"
+ },
+ "kq": {
+ "locale3": "kln",
+ "englishName": "Kalenjin",
+ "localizedName": "Kalenjin",
+ "direction": "rtl"
+ },
+ "kr": {
+ "locale3": "kau",
+ "englishName": "Kanuri",
+ "localizedName": "Kanuri",
+ "direction": "ltr"
+ },
+ "ks": {
+ "locale3": "kas",
+ "englishName": "Kashmiri",
+ "localizedName": "Kashmiri",
+ "direction": "ltr"
+ },
+ "kt": {
+ "locale3": "kut",
+ "englishName": "Kutenai",
+ "localizedName": "Ktunaxa",
+ "direction": "ltr"
+ },
+ "ku": {
+ "locale3": "kur",
+ "englishName": "Kurdish (Sorani)",
+ "localizedName": "Sorani",
+ "direction": "ltr"
+ },
+ "ku_TR": {
+ "locale3": "ckb",
+ "englishName": "Kurdish (Kurmanji)",
+ "localizedName": "Kurdish (Kurmanji)",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "ku"
+ ]
+ },
+ "kv": {
+ "locale3": "kom",
+ "englishName": "Komi",
+ "localizedName": "Komi",
+ "direction": "ltr"
+ },
+ "kw": {
+ "locale3": "cor",
+ "englishName": "Cornish",
+ "localizedName": "Cornish",
+ "direction": "ltr"
+ },
+ "kx": {
+ "locale3": "kam",
+ "englishName": "Kamba",
+ "localizedName": "Kikamba",
+ "direction": "ltr"
+ },
+ "ky": {
+ "locale3": "kir",
+ "englishName": "Kirghiz",
+ "localizedName": "Kirghiz",
+ "direction": "ltr"
+ },
+ "kz": {
+ "locale3": "kos",
+ "englishName": "Kosraean",
+ "localizedName": "Kosraean",
+ "direction": "ltr"
+ },
+ "lb": {
+ "locale3": "ltz",
+ "englishName": "Luxembourgish",
+ "localizedName": "Luxembourgish",
+ "direction": "ltr"
+ },
+ "ld": {
+ "locale3": "lad",
+ "englishName": "Ladino",
+ "localizedName": "Judeo-español",
+ "direction": "ltr"
+ },
+ "lg": {
+ "locale3": "lug",
+ "englishName": "Ganda",
+ "localizedName": "Ganda",
+ "direction": "ltr"
+ },
+ "lh": {
+ "locale3": "lah",
+ "englishName": "Lahnda",
+ "localizedName": "بھارت کا",
+ "direction": "rtl"
+ },
+ "li": {
+ "locale3": "lim",
+ "englishName": "Limburgish",
+ "localizedName": "Limburgish",
+ "direction": "ltr"
+ },
+ "lk": {
+ "locale3": "lak",
+ "englishName": "Lakota",
+ "localizedName": "Lakota",
+ "direction": "ltr"
+ },
+ "ll": {
+ "locale3": "luo",
+ "englishName": "Luo (Kenya and Tanzania)",
+ "localizedName": "Dholuo",
+ "direction": "ltr"
+ },
+ "lm": {
+ "locale3": "lam",
+ "englishName": "Lamba",
+ "localizedName": "Ichilamba",
+ "direction": "ltr"
+ },
+ "ln": {
+ "locale3": "lin",
+ "englishName": "Lingala",
+ "localizedName": "Lingala",
+ "direction": "ltr"
+ },
+ "lo": {
+ "locale3": "lao",
+ "englishName": "Lao",
+ "localizedName": "Lao",
+ "direction": "ltr"
+ },
+ "lp": {
+ "locale3": "sel",
+ "englishName": "Selkup",
+ "localizedName": "чу́мэл шэ",
+ "direction": "ltr"
+ },
+ "ls": {
+ "locale3": "lus",
+ "englishName": "Lushai",
+ "localizedName": "Mizo ṭawng",
+ "direction": "ltr"
+ },
+ "lt": {
+ "locale3": "lit",
+ "englishName": "Lithuanian",
+ "localizedName": "Lietuvių",
+ "direction": "ltr"
+ },
+ "lu": {
+ "locale3": "lub",
+ "englishName": "Luba-Katanga",
+ "localizedName": "Luba-Katanga",
+ "direction": "ltr"
+ },
+ "lv": {
+ "locale3": "lav",
+ "englishName": "Latvian",
+ "localizedName": "Latviešu",
+ "direction": "ltr"
+ },
+ "lw": {
+ "locale3": "ach",
+ "englishName": "Acoli",
+ "localizedName": "Lwo",
+ "direction": "ltr"
+ },
+ "lx": {
+ "locale3": "lua",
+ "englishName": "Luba-Lulua",
+ "localizedName": "Cilubà",
+ "direction": "ltr"
+ },
+ "ly": {
+ "locale3": "luy",
+ "englishName": "Luyia",
+ "localizedName": "Luyia",
+ "direction": "rtl"
+ },
+ "lz": {
+ "locale3": "lez",
+ "englishName": "Lezghian",
+ "localizedName": "Лезги чӏал",
+ "direction": "ltr"
+ },
+ "ma": {
+ "locale3": "mag",
+ "englishName": "Magahi",
+ "localizedName": "मगही",
+ "direction": "ltr"
+ },
+ "mb": {
+ "locale3": "bas",
+ "englishName": "Basa",
+ "localizedName": "Mbene",
+ "direction": "ltr"
+ },
+ "mc": {
+ "locale3": "mnc",
+ "englishName": "Manchu",
+ "localizedName": "ᠮᠠᠨᠵᡠ ᡤᡳᠰᡠᠨ Manju gisun",
+ "direction": "ltr"
+ },
+ "md": {
+ "locale3": "mad",
+ "englishName": "Madurese",
+ "localizedName": "Madhura",
+ "direction": "ltr"
+ },
+ "me": {
+ "locale3": "men",
+ "englishName": "Mende",
+ "localizedName": "Mɛnde yia",
+ "direction": "ltr"
+ },
+ "mf": {
+ "locale3": "mdf",
+ "englishName": "Moksha",
+ "localizedName": "мокшень кяль",
+ "direction": "ltr"
+ },
+ "mg": {
+ "locale3": "mlg",
+ "englishName": "Malagasy",
+ "localizedName": "Malagasy",
+ "direction": "ltr"
+ },
+ "mh": {
+ "locale3": "mah",
+ "englishName": "Marshallese",
+ "localizedName": "Marshallese",
+ "direction": "ltr"
+ },
+ "mi": {
+ "locale3": "mri",
+ "englishName": "Maori",
+ "localizedName": "Maori",
+ "direction": "ltr"
+ },
+ "mk": {
+ "locale3": "mkd",
+ "englishName": "Macedonian",
+ "localizedName": "македонски",
+ "direction": "ltr"
+ },
+ "ml": {
+ "locale3": "mal",
+ "englishName": "Malayalam",
+ "localizedName": "Malayalam",
+ "direction": "ltr"
+ },
+ "mm": {
+ "locale3": "tem",
+ "englishName": "Timne",
+ "localizedName": "KʌThemnɛ",
+ "direction": "ltr"
+ },
+ "mn": {
+ "locale3": "mon",
+ "englishName": "Mongolian",
+ "localizedName": "Mongolian",
+ "direction": "ltr"
+ },
+ "mo": {
+ "locale3": "mol",
+ "englishName": "Individual",
+ "localizedName": "Living",
+ "direction": "ltr"
+ },
+ "mq": {
+ "locale3": "mic",
+ "englishName": "Mi'kmaq",
+ "localizedName": "Míkmawísimk",
+ "direction": "ltr"
+ },
+ "mr": {
+ "locale3": "mar",
+ "englishName": "Marathi",
+ "localizedName": "Marathi",
+ "direction": "ltr"
+ },
+ "ms": {
+ "locale3": "msa",
+ "englishName": "Malay",
+ "localizedName": "Bahasa Melayu",
+ "direction": "ltr"
+ },
+ "ms_MY": {
+ "englishName": "Malay (Standard)",
+ "localizedName": "بهاس ملايو مليسيا",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "ms"
+ ]
+ },
+ "mt": {
+ "locale3": "mlt",
+ "englishName": "Maltese",
+ "localizedName": "Malti",
+ "direction": "ltr"
+ },
+ "mu": {
+ "locale3": "mus",
+ "englishName": "Creek",
+ "localizedName": "Mvskoke",
+ "direction": "ltr"
+ },
+ "mv": {
+ "locale3": "myv",
+ "englishName": "Erzya",
+ "localizedName": "эрзянь кель",
+ "direction": "ltr"
+ },
+ "mw": {
+ "locale3": "mwl",
+ "englishName": "Mirandese",
+ "localizedName": "mirandés",
+ "direction": "ltr"
+ },
+ "mx": {
+ "locale3": "mam",
+ "englishName": "mam",
+ "localizedName": "Qyool Mam",
+ "direction": "ltr"
+ },
+ "my": {
+ "locale3": "mya",
+ "englishName": "Burmese",
+ "localizedName": "Burmese",
+ "direction": "ltr"
+ },
+ "mz": {
+ "locale3": "mau",
+ "englishName": "Mazateco",
+ "localizedName": "En Ngixo",
+ "direction": "ltr"
+ },
+ "na": {
+ "locale3": "nau",
+ "englishName": "Nauru",
+ "localizedName": "Nauru",
+ "direction": "ltr"
+ },
+ "nb": {
+ "locale3": "nob",
+ "englishName": "Norwegian Bokmal",
+ "localizedName": "Norwegian Bokmål",
+ "direction": "ltr"
+ },
+ "nc": {
+ "locale3": "nyn",
+ "englishName": "Nyankole",
+ "localizedName": "Orunyankore",
+ "direction": "ltr"
+ },
+ "nd": {
+ "locale3": "nde",
+ "englishName": "North Ndebele",
+ "localizedName": "North Ndebele",
+ "direction": "ltr"
+ },
+ "ne": {
+ "locale3": "nep",
+ "englishName": "Nepali",
+ "localizedName": "Nepali",
+ "direction": "ltr"
+ },
+ "nf": {
+ "locale3": "frr",
+ "englishName": "Northern Frisian",
+ "localizedName": "Frasch",
+ "direction": "ltr"
+ },
+ "ng": {
+ "locale3": "ndo",
+ "englishName": "Ndonga",
+ "localizedName": "Ndonga",
+ "direction": "ltr"
+ },
+ "nh": {
+ "locale3": "nyo",
+ "englishName": "Nyoro",
+ "localizedName": "Orunyoro",
+ "direction": "ltr"
+ },
+ "ni": {
+ "locale3": "nia",
+ "englishName": "Nias",
+ "localizedName": "Li Niha",
+ "direction": "ltr"
+ },
+ "nk": {
+ "locale3": "nor",
+ "englishName": "Norwegian",
+ "localizedName": "norsk",
+ "direction": "ltr"
+ },
+ "nl": {
+ "locale3": "nld",
+ "englishName": "Dutch",
+ "localizedName": "Nederlands",
+ "direction": "ltr"
+ },
+ "nl_BE": {
+ "englishName": "Dutch (Belgium)",
+ "localizedName": "Nederlands (België)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "nl"
+ ]
+ },
+ "nm": {
+ "locale3": "smn",
+ "englishName": "Inari Sami",
+ "localizedName": "anarâškielâ",
+ "direction": "ltr"
+ },
+ "nn": {
+ "locale3": "nno",
+ "englishName": "Norwegian Nynorsk",
+ "localizedName": "Norwegian Nynorsk",
+ "direction": "ltr"
+ },
+ "np": {
+ "locale3": "nap",
+ "englishName": "Neapolitan",
+ "localizedName": "napulitano",
+ "direction": "ltr"
+ },
+ "nq": {
+ "locale3": "nqo",
+ "englishName": "N'Ko",
+ "localizedName": "ߒߞߏ",
+ "direction": "rtl"
+ },
+ "nr": {
+ "locale3": "nbl",
+ "englishName": "South Ndebele",
+ "localizedName": "South Ndebele",
+ "direction": "ltr"
+ },
+ "ns": {
+ "locale3": "nds",
+ "englishName": "Low German",
+ "localizedName": "Plattdütsch",
+ "direction": "ltr"
+ },
+ "nt": {
+ "locale3": "sat",
+ "englishName": "Santali",
+ "localizedName": "ᱥᱟᱱᱛᱟᱲᱤ",
+ "direction": "ltr"
+ },
+ "nu": {
+ "locale3": "niu",
+ "englishName": "Niuean",
+ "localizedName": "ko e vagahau Niuē",
+ "direction": "ltr"
+ },
+ "nv": {
+ "locale3": "nav",
+ "englishName": "Navajo",
+ "localizedName": "Navajo",
+ "direction": "ltr"
+ },
+ "nw": {
+ "locale3": "new",
+ "englishName": "Nepal Bhasa",
+ "localizedName": "नेपाल भाषा",
+ "direction": "ltr"
+ },
+ "nx": {
+ "locale3": "nym",
+ "englishName": "Nyamwezi",
+ "localizedName": "Nyamwezi",
+ "direction": "ltr"
+ },
+ "ny": {
+ "locale3": "nya",
+ "englishName": "Chichewa",
+ "localizedName": "Nyanja",
+ "direction": "ltr"
+ },
+ "nz": {
+ "locale3": "nzi",
+ "englishName": "Nzima",
+ "localizedName": "Nzima",
+ "direction": "ltr"
+ },
+ "oa": {
+ "locale3": "osa",
+ "englishName": "Osage",
+ "localizedName": "Wazhazhe ie / 𐓏𐓘𐓻𐓘𐓻𐓟 𐒻𐓟",
+ "direction": "ltr"
+ },
+ "oc": {
+ "locale3": "oci",
+ "englishName": "Occitan",
+ "localizedName": "Occitan",
+ "direction": "ltr"
+ },
+ "oe": {
+ "locale3": "cnr",
+ "englishName": "Montenegrin",
+ "localizedName": "crnogorski / црногорски",
+ "direction": "ltr"
+ },
+ "og": {
+ "locale3": "man",
+ "englishName": "Mandingo",
+ "localizedName": "Mandi'nka kango",
+ "direction": "ltr"
+ },
+ "oi": {
+ "locale3": "snk",
+ "englishName": "Soninke",
+ "localizedName": "Sooninkanxanne",
+ "direction": "ltr"
+ },
+ "oj": {
+ "locale3": "oji",
+ "englishName": "Ojibwa",
+ "localizedName": "Ojibwa",
+ "direction": "ltr"
+ },
+ "ok": {
+ "locale3": "kok",
+ "englishName": "Konkani",
+ "localizedName": "कोंकणी",
+ "direction": "ltr"
+ },
+ "ol": {
+ "locale3": "sms",
+ "englishName": "Skolt Sami",
+ "localizedName": "sääʹmǩiõll",
+ "direction": "ltr"
+ },
+ "om": {
+ "locale3": "orm",
+ "englishName": "Oromo",
+ "localizedName": "Oromo",
+ "direction": "ltr"
+ },
+ "oo": {
+ "locale3": "mos",
+ "englishName": "Mossi",
+ "localizedName": "Mooré",
+ "direction": "ltr"
+ },
+ "op": {
+ "locale3": "top",
+ "englishName": "Totonaca",
+ "localizedName": "Totonac–Tepehua",
+ "direction": "ltr"
+ },
+ "or": {
+ "locale3": "ori",
+ "englishName": "Oriya",
+ "localizedName": "Oriya",
+ "direction": "ltr"
+ },
+ "os": {
+ "locale3": "oss",
+ "englishName": "Ossetian",
+ "localizedName": "Ossetian",
+ "direction": "ltr"
+ },
+ "ot": {
+ "locale3": "sco",
+ "englishName": "Scots",
+ "localizedName": "Lallans",
+ "direction": "ltr"
+ },
+ "ou": {
+ "locale3": "alt",
+ "englishName": "Southern Altai",
+ "localizedName": "Алтай тили",
+ "direction": "ltr"
+ },
+ "pa": {
+ "locale3": "pan",
+ "englishName": "Panjabi",
+ "localizedName": "Panjabi",
+ "direction": "ltr"
+ },
+ "pg": {
+ "locale3": "pag",
+ "englishName": "Pangasinan",
+ "localizedName": "Salitan Pangasinan",
+ "direction": "ltr"
+ },
+ "pl": {
+ "locale3": "pol",
+ "englishName": "Polish",
+ "localizedName": "polski",
+ "direction": "ltr"
+ },
+ "pm": {
+ "locale3": "pam",
+ "englishName": "Pampanga",
+ "localizedName": "Amánung Kapampangan",
+ "direction": "ltr"
+ },
+ "pn": {
+ "locale3": "pon",
+ "englishName": "Pohnpeian",
+ "localizedName": "Lokaiahn Pohnpei",
+ "direction": "ltr"
+ },
+ "pp": {
+ "locale3": "pap",
+ "englishName": "Papiamento",
+ "localizedName": "Papiamentu",
+ "direction": "ltr"
+ },
+ "ps": {
+ "locale3": "pus",
+ "englishName": "Pashto",
+ "localizedName": "Pushto",
+ "direction": "ltr"
+ },
+ "pt": {
+ "locale3": "por",
+ "englishName": "Portuguese",
+ "localizedName": "português",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "pt_BR"
+ ]
+ },
+ "pt_AO": {
+ "englishName": "Portuguese(Angola)",
+ "localizedName": "português(Angola)",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "pt",
+ "pt_BR"
+ ]
+ },
+ "pt_BR": {
+ "englishName": "Portuguese, Brazil",
+ "localizedName": "português (Brasil)",
+ "direction": "ltr"
+ },
+ "pt_CV": {
+ "englishName": "Portuguese(Cabo verde)",
+ "localizedName": "português(Cabo verde)",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "pt",
+ "pt_BR"
+ ]
+ },
+ "pt_GQ": {
+ "englishName": "Portuguese(Equatorial Guinea)",
+ "localizedName": "português(Guiné Equatorial)",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "pt",
+ "pt_BR"
+ ]
+ },
+ "pt_GW": {
+ "englishName": "Portuguese(Guinea-Bissau)",
+ "localizedName": "português(Guiné-Bissau)",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "pt",
+ "pt_BR"
+ ]
+ },
+ "pt_MZ": {
+ "englishName": "Portuguese(Mozambique)",
+ "localizedName": "português(Moçambique)",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "pt",
+ "pt_BR"
+ ]
+ },
+ "pt_ST": {
+ "englishName": "Portuguese(São Tomé and Príncipe)",
+ "localizedName": "português(São Tomé e Príncipe)",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "pt",
+ "pt_BR"
+ ]
+ },
+ "pu": {
+ "locale3": "pau",
+ "englishName": "Palauan",
+ "localizedName": "a tekoi er a Belau",
+ "direction": "ltr"
+ },
+ "qc": {
+ "locale3": "quc",
+ "englishName": "k'iche'",
+ "localizedName": "Qatzijobʼal",
+ "direction": "ltr"
+ },
+ "qe": {
+ "locale3": "kek",
+ "englishName": "q'eqchi'",
+ "localizedName": "Kekchi",
+ "direction": "ltr"
+ },
+ "qu": {
+ "locale3": "que",
+ "englishName": "Quechua",
+ "localizedName": "Quechua",
+ "direction": "ltr"
+ },
+ "ra": {
+ "locale3": "bra",
+ "englishName": "Braj",
+ "localizedName": "ब्रजभाषा",
+ "direction": "ltr"
+ },
+ "rb": {
+ "locale3": "grb",
+ "englishName": "Grebo",
+ "localizedName": "Kréébo",
+ "direction": "ltr"
+ },
+ "rc": {
+ "locale3": "acr",
+ "englishName": "Achi",
+ "localizedName": "Achiʼ",
+ "direction": "ltr"
+ },
+ "re": {
+ "locale3": "ter",
+ "englishName": "Tereno",
+ "localizedName": "Terêna",
+ "direction": "ltr"
+ },
+ "rh": {
+ "locale3": "roh",
+ "englishName": "Romansh",
+ "localizedName": "Rumantsch",
+ "direction": "ltr"
+ },
+ "ri": {
+ "locale3": "rap",
+ "englishName": "Rapanui",
+ "localizedName": "Vananga rapa nui",
+ "direction": "ltr"
+ },
+ "rj": {
+ "locale3": "raj",
+ "englishName": "Rajasthani",
+ "localizedName": "राजस्थानी",
+ "direction": "ltr"
+ },
+ "rl": {
+ "locale3": "krl",
+ "englishName": "Karelian",
+ "localizedName": "karjal",
+ "direction": "ltr"
+ },
+ "rn": {
+ "locale3": "run",
+ "englishName": "Kirundi",
+ "localizedName": "Rundi",
+ "direction": "ltr"
+ },
+ "ro": {
+ "locale3": "ron",
+ "englishName": "Romanian",
+ "localizedName": "română",
+ "direction": "ltr"
+ },
+ "rp": {
+ "locale3": "rup",
+ "englishName": "Aromanian",
+ "localizedName": "armãneashce",
+ "direction": "ltr"
+ },
+ "rr": {
+ "locale3": "rar",
+ "englishName": "Rarotongan (Cook Islands Māori)",
+ "localizedName": "Māori Kūki 'Āirani",
+ "direction": "ltr"
+ },
+ "ru": {
+ "locale3": "rus",
+ "englishName": "Russian",
+ "localizedName": "русский",
+ "direction": "ltr"
+ },
+ "rw": {
+ "locale3": "kin",
+ "englishName": "Kinyarwanda",
+ "localizedName": "Kinyarwanda",
+ "direction": "ltr"
+ },
+ "ry": {
+ "locale3": "rom",
+ "englishName": "Romany",
+ "localizedName": "romani čhib",
+ "direction": "ltr"
+ },
+ "rz": {
+ "locale3": "loz",
+ "englishName": "Lozi",
+ "localizedName": "siLozi",
+ "direction": "ltr"
+ },
+ "sb": {
+ "locale3": "csb",
+ "englishName": "Kashubian",
+ "localizedName": "Kaszëbsczi jãzëk",
+ "direction": "ltr"
+ },
+ "sc": {
+ "locale3": "srd",
+ "englishName": "Sardinian",
+ "localizedName": "Sardinian",
+ "direction": "ltr"
+ },
+ "sd": {
+ "locale3": "snd",
+ "englishName": "Sindhi",
+ "localizedName": "Sindhi",
+ "direction": "ltr"
+ },
+ "se": {
+ "locale3": "sme",
+ "englishName": "Northern Sami",
+ "localizedName": "Northern Sami",
+ "direction": "ltr"
+ },
+ "sg": {
+ "locale3": "sag",
+ "englishName": "Sango",
+ "localizedName": "Sango",
+ "direction": "ltr"
+ },
+ "si": {
+ "locale3": "sin",
+ "englishName": "Sinhalese",
+ "localizedName": "Sinhalese",
+ "direction": "ltr"
+ },
+ "sj": {
+ "locale3": "smj",
+ "englishName": "Lule Sami",
+ "localizedName": "julevsámegiella",
+ "direction": "ltr"
+ },
+ "sk": {
+ "locale3": "slk",
+ "englishName": "Slovak",
+ "localizedName": "Slovenčina",
+ "direction": "ltr"
+ },
+ "sl": {
+ "locale3": "slv",
+ "englishName": "Slovenian",
+ "localizedName": "Slovenščina",
+ "direction": "ltr"
+ },
+ "sm": {
+ "locale3": "smo",
+ "englishName": "Samoan",
+ "localizedName": "Samoan",
+ "direction": "ltr"
+ },
+ "sn": {
+ "locale3": "sna",
+ "englishName": "Shona",
+ "localizedName": "Shona",
+ "direction": "ltr"
+ },
+ "so": {
+ "locale3": "som",
+ "englishName": "Somali",
+ "localizedName": "Somali",
+ "direction": "ltr"
+ },
+ "sp": {
+ "locale3": "nso",
+ "englishName": "Sepedi",
+ "localizedName": "Sesotho sa Leboa",
+ "direction": "ltr"
+ },
+ "sq": {
+ "locale3": "sqi",
+ "englishName": "Albanian",
+ "localizedName": "shqipe",
+ "direction": "ltr"
+ },
+ "sr": {
+ "locale3": "srp",
+ "englishName": "Serbian",
+ "localizedName": "Српски",
+ "direction": "ltr"
+ },
+ "sr_BA": {
+ "englishName": "Serbian (Bosnia and Herzegovina)",
+ "localizedName": "Српски (Босна и Херцеговина)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "sr"
+ ]
+ },
+ "ss": {
+ "locale3": "ssw",
+ "englishName": "Swati",
+ "localizedName": "Swati",
+ "direction": "ltr"
+ },
+ "st": {
+ "locale3": "sot",
+ "englishName": "Sotho",
+ "localizedName": "Southern Sotho",
+ "direction": "ltr"
+ },
+ "su": {
+ "locale3": "sun",
+ "englishName": "Sundanese",
+ "localizedName": "Sundanese",
+ "direction": "ltr"
+ },
+ "sv": {
+ "locale3": "swe",
+ "englishName": "Swedish",
+ "localizedName": "svenska",
+ "direction": "ltr"
+ },
+ "sv_FI": {
+ "englishName": "Swedish (Finland)",
+ "localizedName": "svenska (Finland)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "sv"
+ ]
+ },
+ "sw": {
+ "locale3": "swa",
+ "englishName": "Swahili",
+ "localizedName": "Swahili",
+ "direction": "ltr"
+ },
+ "sx": {
+ "locale3": "sus",
+ "englishName": "Susu",
+ "localizedName": "Sosoxui",
+ "direction": "ltr"
+ },
+ "sy": {
+ "locale3": "syr",
+ "englishName": "Syriac",
+ "localizedName": "ܠܫܢܐ ܣܘܪܝܝܐ Lešānā Suryāyā",
+ "direction": "rtl"
+ },
+ "sz": {
+ "locale3": "sas",
+ "englishName": "Sasak",
+ "localizedName": "ᬪᬵᬲᬵᬲᬓ᭄ᬱᬓ᭄",
+ "direction": "ltr"
+ },
+ "ta": {
+ "locale3": "tam",
+ "englishName": "Tamil",
+ "localizedName": "Tamil",
+ "direction": "ltr"
+ },
+ "tc": {
+ "locale3": "tog",
+ "englishName": "Tonga (Nyasa)",
+ "localizedName": "chiTonga",
+ "direction": "ltr"
+ },
+ "te": {
+ "locale3": "tel",
+ "englishName": "Telugu",
+ "localizedName": "Telugu",
+ "direction": "ltr"
+ },
+ "tg": {
+ "locale3": "tgk",
+ "englishName": "Tajik",
+ "localizedName": "Tajik",
+ "direction": "ltr"
+ },
+ "th": {
+ "locale3": "tha",
+ "englishName": "Thai",
+ "localizedName": "ไทย",
+ "direction": "ltr"
+ },
+ "ti": {
+ "locale3": "tir",
+ "englishName": "Tigrinya",
+ "localizedName": "Tigrinya",
+ "direction": "ltr"
+ },
+ "tj": {
+ "locale3": "tli",
+ "englishName": "Tlingit",
+ "localizedName": "Lingít",
+ "direction": "ltr"
+ },
+ "tk": {
+ "locale3": "tuk",
+ "englishName": "Turkmen",
+ "localizedName": "Turkmen",
+ "direction": "ltr"
+ },
+ "tl": {
+ "locale3": "tgl",
+ "englishName": "Tagalog",
+ "localizedName": "Tagalog",
+ "direction": "ltr"
+ },
+ "tm": {
+ "locale3": "tmh",
+ "englishName": "Tamashek",
+ "localizedName": "Tafaghist",
+ "direction": "ltr"
+ },
+ "tn": {
+ "locale3": "tsn",
+ "englishName": "Tswana",
+ "localizedName": "Tswana",
+ "direction": "ltr"
+ },
+ "to": {
+ "locale3": "ton",
+ "englishName": "Tonga",
+ "localizedName": "Tonga",
+ "direction": "ltr"
+ },
+ "tp": {
+ "locale3": "tpi",
+ "englishName": "Tok Pisin",
+ "localizedName": "Tok Pisin",
+ "direction": "ltr"
+ },
+ "tq": {
+ "locale3": "tig",
+ "englishName": "Tigre",
+ "localizedName": "ትግረ",
+ "direction": "ltr"
+ },
+ "tr": {
+ "locale3": "tur",
+ "englishName": "Turkish",
+ "localizedName": "Türkçe",
+ "direction": "ltr"
+ },
+ "ts": {
+ "locale3": "tso",
+ "englishName": "Tsonga",
+ "localizedName": "Tsonga",
+ "direction": "ltr"
+ },
+ "tt": {
+ "locale3": "tat",
+ "englishName": "Tatar",
+ "localizedName": "Tatar",
+ "direction": "ltr"
+ },
+ "tu": {
+ "locale3": "tum",
+ "englishName": "Tumbuka",
+ "localizedName": "chiTumbuka",
+ "direction": "ltr"
+ },
+ "tv": {
+ "locale3": "tvl",
+ "englishName": "Tuvalu",
+ "localizedName": "Te Ggana Tuuvalu",
+ "direction": "ltr"
+ },
+ "tw": {
+ "locale3": "twi",
+ "englishName": "Twi",
+ "localizedName": "Twi",
+ "direction": "ltr",
+ "fallbackLocales": [
+ "ak"
+ ]
+ },
+ "tx": {
+ "locale3": "tyv",
+ "englishName": "Tuvinian",
+ "localizedName": "тыва дыл",
+ "direction": "ltr"
+ },
+ "ty": {
+ "locale3": "tah",
+ "englishName": "Tahitian",
+ "localizedName": "Tahitian",
+ "direction": "ltr"
+ },
+ "tz": {
+ "locale3": "tsi",
+ "englishName": "Tsimshian",
+ "localizedName": "Tsmksian",
+ "direction": "ltr"
+ },
+ "ua": {
+ "locale3": "nah",
+ "englishName": "Náhuatl",
+ "localizedName": "Náhuatl",
+ "direction": "ltr"
+ },
+ "ud": {
+ "locale3": "udm",
+ "englishName": "Udmurt",
+ "localizedName": "удмурт кыл",
+ "direction": "ltr"
+ },
+ "ug": {
+ "locale3": "uig",
+ "englishName": "Uighur",
+ "localizedName": "Uighur",
+ "direction": "ltr"
+ },
+ "ui": {
+ "locale3": "mni",
+ "englishName": "Manipuri",
+ "localizedName": "Meitei",
+ "direction": "ltr"
+ },
+ "uk": {
+ "locale3": "ukr",
+ "englishName": "Ukrainian",
+ "localizedName": "українська",
+ "direction": "ltr"
+ },
+ "um": {
+ "locale3": "umb",
+ "englishName": "Umbundu",
+ "localizedName": "Úmbúndú",
+ "direction": "ltr"
+ },
+ "un": {
+ "locale3": "arn",
+ "englishName": "Mapudungun",
+ "localizedName": "Mapuche",
+ "direction": "ltr"
+ },
+ "ur": {
+ "locale3": "urd",
+ "englishName": "Urdu",
+ "localizedName": "Urdu",
+ "direction": "rtl"
+ },
+ "ut": {
+ "locale3": "tet",
+ "englishName": "Tetum",
+ "localizedName": "Lia-Tetun",
+ "direction": "ltr"
+ },
+ "uy": {
+ "locale3": "kum",
+ "englishName": "Kumyk",
+ "localizedName": "къумукъ тил/qumuq til",
+ "direction": "ltr"
+ },
+ "uz": {
+ "locale3": "uzb",
+ "englishName": "Uzbek",
+ "localizedName": "Uzbek",
+ "direction": "ltr"
+ },
+ "va": {
+ "locale3": "vai",
+ "englishName": "Vai",
+ "localizedName": "ꕙꔤ",
+ "direction": "ltr"
+ },
+ "ve": {
+ "locale3": "ven",
+ "englishName": "Venda",
+ "localizedName": "Venda",
+ "direction": "ltr"
+ },
+ "vi": {
+ "locale3": "vie",
+ "englishName": "Vietnamese",
+ "localizedName": "Tiếng Việt",
+ "direction": "ltr"
+ },
+ "vs": {
+ "locale3": "bla",
+ "englishName": "Siksika",
+ "localizedName": "ᓱᖽᐧᖿ",
+ "direction": "ltr"
+ },
+ "vt": {
+ "locale3": "vot",
+ "englishName": "Votic",
+ "localizedName": "vađđa ceeli",
+ "direction": "ltr"
+ },
+ "wa": {
+ "locale3": "wln",
+ "englishName": "Walloon",
+ "localizedName": "Walloon",
+ "direction": "ltr"
+ },
+ "wl": {
+ "locale3": "wal",
+ "englishName": "Wolaitta",
+ "localizedName": "Wolayttatto Doonaa",
+ "direction": "ltr"
+ },
+ "wo": {
+ "locale3": "wol",
+ "englishName": "Wolof",
+ "localizedName": "Wolof",
+ "direction": "ltr"
+ },
+ "wr": {
+ "locale3": "war",
+ "englishName": "Waray",
+ "localizedName": "Winaray",
+ "direction": "ltr"
+ },
+ "ws": {
+ "locale3": "was",
+ "englishName": "Washo",
+ "localizedName": "wá:šiw ʔítlu",
+ "direction": "ltr"
+ },
+ "xa": {
+ "locale3": "xal",
+ "englishName": "Kalmyk",
+ "localizedName": "Хальмг келн",
+ "direction": "ltr"
+ },
+ "xh": {
+ "locale3": "xho",
+ "englishName": "Xhosa",
+ "localizedName": "Xhosa",
+ "direction": "ltr"
+ },
+ "xl": {
+ "locale3": "lol",
+ "englishName": "Mongo",
+ "localizedName": "Lomongo",
+ "direction": "ltr"
+ },
+ "xr": {
+ "locale3": "mwr",
+ "englishName": "Marwari",
+ "localizedName": "मारवाड़ी",
+ "direction": "ltr"
+ },
+ "xs": {
+ "locale3": "suk",
+ "englishName": "Sukuma",
+ "localizedName": "Kɪsukuma",
+ "direction": "ltr"
+ },
+ "xt": {
+ "locale3": "srn",
+ "englishName": "Sranan Tongo",
+ "localizedName": "Sranan Tongo",
+ "direction": "ltr"
+ },
+ "ya": {
+ "locale3": "yao",
+ "englishName": "Yao",
+ "localizedName": "chiYao",
+ "direction": "ltr"
+ },
+ "yi": {
+ "locale3": "yid",
+ "englishName": "Yiddish",
+ "localizedName": "Yiddish",
+ "direction": "ltr"
+ },
+ "yk": {
+ "locale3": "sah",
+ "englishName": "Yakut",
+ "localizedName": "Сахалыы",
+ "direction": "ltr"
+ },
+ "yn": {
+ "locale3": "myn",
+ "englishName": "Mayan",
+ "localizedName": "Maya",
+ "direction": "ltr"
+ },
+ "yo": {
+ "locale3": "yor",
+ "englishName": "Yoruba",
+ "localizedName": "Yoruba",
+ "direction": "ltr"
+ },
+ "yp": {
+ "locale3": "yap",
+ "englishName": "Yapese",
+ "localizedName": "Thin nu Wa’ab",
+ "direction": "ltr"
+ },
+ "za": {
+ "locale3": "zha",
+ "englishName": "Zhuang",
+ "localizedName": "Zhuang",
+ "direction": "ltr"
+ },
+ "ze": {
+ "locale3": "zen",
+ "englishName": "Zenaga",
+ "localizedName": "Tuẓẓungiyya",
+ "direction": "ltr"
+ },
+ "zg": {
+ "locale3": "zgh",
+ "englishName": "Standard Moroccan Tamazight",
+ "localizedName": "ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ",
+ "direction": "ltr"
+ },
+ "zh_CN": {
+ "locale3": "zho",
+ "englishName": "Chinese, Simplified",
+ "localizedName": "中文 (中国)",
+ "direction": "ltr"
+ },
+ "zh_HK": {
+ "englishName": "Chinese, Hong Kong",
+ "localizedName": "中文 (香港)",
+ "direction": "ltr"
+ },
+ "zh_MO": {
+ "englishName": "Chinese (Macau)",
+ "localizedName": "中文(澳门)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "zh_CN"
+ ]
+ },
+ "zh_SG": {
+ "englishName": "Chinese (Singapore)",
+ "localizedName": "中文(新加坡)",
+ "direction": "rtl",
+ "fallbackLocales": [
+ "zh_CN"
+ ]
+ },
+ "zh_TW": {
+ "englishName": "Chinese, Traditional",
+ "localizedName": "中文 (台灣)",
+ "direction": "ltr"
+ },
+ "zn": {
+ "locale3": "zun",
+ "englishName": "Zuni",
+ "localizedName": "Shiwi'ma",
+ "direction": "ltr"
+ },
+ "zp": {
+ "locale3": "zap",
+ "englishName": "Zapotec",
+ "localizedName": "Diidxazá/Dizhsa",
+ "direction": "ltr"
+ },
+ "zt": {
+ "locale3": "tzj",
+ "englishName": "tz'utujil",
+ "localizedName": "Tzʼutujiil",
+ "direction": "ltr"
+ },
+ "zu": {
+ "locale3": "zul",
+ "englishName": "Zulu",
+ "localizedName": "Zulu",
+ "direction": "ltr"
+ },
+ "zz": {
+ "locale3": "zza",
+ "englishName": "Zaza",
+ "localizedName": "kirmanckî",
+ "direction": "ltr"
+ }
+}
\ No newline at end of file
Index: interaction-dashboard/interaction-dashboard_en.html
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/interaction-dashboard/interaction-dashboard_en.html b/interaction-dashboard/interaction-dashboard_en.html
--- a/interaction-dashboard/interaction-dashboard_en.html (revision bb05e3ad16645580f1bcdad587aa4b36fda40ed5)
+++ b/interaction-dashboard/interaction-dashboard_en.html (date 1715059305376)
@@ -55,7 +55,19 @@
]
},
"eslintConfig": {
- "extends": "../chipper/eslint/sim_eslintrc.js"
+ "extends": "../chipper/eslint/sim_eslintrc.js",
+ "overrides": [
+ {
+ "files": [
+ "./js/preprocessor/**"
+ ],
+ "extends": "../chipper/eslint/.eslintrc.js",
+ "rules": {
+ "todo-should-have-issue": "off",
+ "bad-sim-text": "off"
+ }
+ }
+ ]
}
};
window.phet.chipper.stringRepos =
Index: babel/_generated_development_strings/shred_all.json
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/babel/_generated_development_strings/shred_all.json b/babel/_generated_development_strings/shred_all.json
--- a/babel/_generated_development_strings/shred_all.json (revision 514ca6eaee1b282900e0965a1a13f5e4924e7b27)
+++ b/babel/_generated_development_strings/shred_all.json (date 1715058933930)
@@ -9942,7 +9942,7 @@
"value": "Holmij"
},
"hydrogen": {
- "value": "Hidrogen"
+ "value": "Vodik"
},
"indium": {
"value": "Indij"
Index: chipper/js/grunt/buildRunnable.js
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/chipper/js/grunt/buildRunnable.js b/chipper/js/grunt/buildRunnable.js
--- a/chipper/js/grunt/buildRunnable.js (revision 143ff65960670a192c57862abebda6cda5a3a201)
+++ b/chipper/js/grunt/buildRunnable.js (date 1715057377155)
@@ -235,6 +235,7 @@
const commonInitializationOptions = {
brand: brand,
repo: repo,
+ allLocales: allLocales,
stringMap: stringMap,
stringMetadata: stringMetadata,
dependencies: dependencies,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment