speech-test commited on
Commit
83435d7
1 Parent(s): c12f7f2
Files changed (2) hide show
  1. app.py +65 -2
  2. languages.json +981 -0
app.py CHANGED
@@ -1,4 +1,5 @@
1
  import requests
 
2
  import pandas as pd
3
  from tqdm.auto import tqdm
4
  import streamlit as st
@@ -6,6 +7,15 @@ from huggingface_hub import HfApi, hf_hub_download
6
  from huggingface_hub.repocard import metadata_load
7
 
8
  cer_langs = ["ja", "zh-CN", "zh-HK", "zh-TW"]
 
 
 
 
 
 
 
 
 
9
 
10
 
11
  def make_clickable(model_name):
@@ -15,7 +25,7 @@ def make_clickable(model_name):
15
 
16
  def get_model_ids():
17
  api = HfApi()
18
- models = api.list_models(filter="robust-speech-event")
19
  model_ids = [x.modelId for x in models]
20
  return model_ids
21
 
@@ -91,6 +101,42 @@ def get_data():
91
  return pd.DataFrame.from_records(data)
92
 
93
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
94
  dataframe = get_data()
95
  dataframe = dataframe.fillna("")
96
  dataframe["model_id"] = dataframe["model_id"].apply(make_clickable)
@@ -98,7 +144,12 @@ dataframe["model_id"] = dataframe["model_id"].apply(make_clickable)
98
  _, col_center = st.columns([3, 6])
99
  with col_center:
100
  st.image("logo.png", width=200)
101
- st.markdown("# Speech Models Leaderboard")
 
 
 
 
 
102
 
103
  lang = st.selectbox(
104
  "Language",
@@ -107,6 +158,9 @@ lang = st.selectbox(
107
  )
108
  lang_df = dataframe[dataframe.lang == lang]
109
 
 
 
 
110
  dataset = st.selectbox(
111
  "Dataset",
112
  sorted(lang_df["dataset"].unique()),
@@ -129,3 +183,12 @@ dataset_df.rename(
129
  )
130
 
131
  st.write(dataset_df.to_html(escape=False, index=None), unsafe_allow_html=True)
 
 
 
 
 
 
 
 
 
 
1
  import requests
2
+ import json
3
  import pandas as pd
4
  from tqdm.auto import tqdm
5
  import streamlit as st
 
7
  from huggingface_hub.repocard import metadata_load
8
 
9
  cer_langs = ["ja", "zh-CN", "zh-HK", "zh-TW"]
10
+ with open("languages.json") as f:
11
+ lang2name = json.load(f)
12
+ suggested_datasets = [
13
+ "librispeech_asr",
14
+ "mozilla-foundation/common_voice_8_0",
15
+ "mozilla-foundation/common_voice_7_0",
16
+ "common_voice",
17
+ "speech-recognition-community-v2/eval_data",
18
+ ]
19
 
20
 
21
  def make_clickable(model_name):
 
25
 
26
  def get_model_ids():
27
  api = HfApi()
28
+ models = api.list_models(filter="hf-asr-leaderboard")
29
  model_ids = [x.modelId for x in models]
30
  return model_ids
31
 
 
101
  return pd.DataFrame.from_records(data)
102
 
103
 
104
+ def suggest_datasets(datasets):
105
+ ranked = set(suggested_datasets) & set(datasets)
106
+ ranked = sorted(ranked, key=suggested_datasets.index)[:3]
107
+ ranked = [f"1. *{dataset_id}*\n" for dataset_id in ranked]
108
+ if len(ranked) > 0:
109
+ return f"""
110
+ For general-purpose automatic speech recognition, we currently advise to pick a model that performs well on:
111
+ {"".join(ranked)}
112
+ """
113
+ else:
114
+ return ""
115
+
116
+
117
+ def generate_note(lang, lang_df):
118
+ lang_name = lang2name[lang] if lang in lang2name else ""
119
+ num_models = len(lang_df["model_id"].unique())
120
+ unique_datasets = sorted(lang_df["dataset"].unique())
121
+ num_datasets = len(unique_datasets)
122
+ msg = f"""
123
+ For the `{lang}` ({lang_name}) language, there are currently `{num_models}` models
124
+ trained on `{num_datasets}` datasets available for `automatic-speech-recognition`.
125
+
126
+ The models have been trained and/or evaluated on the following datasets:
127
+ """
128
+ for dataset_id in unique_datasets:
129
+ msg += f"* [{dataset_id}](https://hf.co/datasets/{dataset_id})\n"
130
+ msg += """
131
+ Choose the dataset that is most relevant to your task and select it from the dropdown below.
132
+ """
133
+ msg += suggest_datasets(unique_datasets)
134
+ msg += "Please click on the model's name to be redirected to its model card which includes documentation and examples on how to use it."
135
+
136
+ msg = "\n".join([line.strip() for line in msg.split("\n")])
137
+ return msg
138
+
139
+
140
  dataframe = get_data()
141
  dataframe = dataframe.fillna("")
142
  dataframe["model_id"] = dataframe["model_id"].apply(make_clickable)
 
144
  _, col_center = st.columns([3, 6])
145
  with col_center:
146
  st.image("logo.png", width=200)
147
+ st.markdown("# Speech Recognition Models Leaderboard")
148
+
149
+ st.markdown(
150
+ "This is leaderboard over all speech recognition models and datasets. "
151
+ "Please select a language you want to find a model for from the dropdown:"
152
+ )
153
 
154
  lang = st.selectbox(
155
  "Language",
 
158
  )
159
  lang_df = dataframe[dataframe.lang == lang]
160
 
161
+ msg = generate_note(lang, lang_df)
162
+ st.markdown(msg)
163
+
164
  dataset = st.selectbox(
165
  "Dataset",
166
  sorted(lang_df["dataset"].unique()),
 
183
  )
184
 
185
  st.write(dataset_df.to_html(escape=False, index=None), unsafe_allow_html=True)
186
+
187
+ if lang in cer_langs:
188
+ st.markdown(
189
+ "---\n\* **CER** is [Char Error Rate](https://huggingface.co/metrics/cer)"
190
+ )
191
+ else:
192
+ st.markdown(
193
+ "---\n\* **WER** is [Word Error Rate](https://huggingface.co/metrics/wer)"
194
+ )
languages.json ADDED
@@ -0,0 +1,981 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "aa": "Afar",
3
+ "ab": "Abkhazian",
4
+ "ace": "Achinese",
5
+ "ady": "Adyghe",
6
+ "af": "Afrikaans",
7
+ "af-NA": "Afrikaans (Namibia)",
8
+ "af-ZA": "Afrikaans (South Africa)",
9
+ "agq": "Aghem",
10
+ "agq-CM": "Aghem (Cameroon)",
11
+ "ak": "Akan",
12
+ "ak-GH": "Akan (Ghana)",
13
+ "als": "Tosk Albanian",
14
+ "am": "Amharic",
15
+ "am-ET": "Amharic (Ethiopia)",
16
+ "an": "Aragonese",
17
+ "ang": "English, Old (ca.450–1100)",
18
+ "ar": "Arabic",
19
+ "ar-001": "Arabic (World)",
20
+ "ar-AE": "Arabic (United Arab Emirates)",
21
+ "ar-BH": "Arabic (Bahrain)",
22
+ "ar-DJ": "Arabic (Djibouti)",
23
+ "ar-DZ": "Arabic (Algeria)",
24
+ "ar-EG": "Arabic (Egypt)",
25
+ "ar-EH": "Arabic (Western Sahara)",
26
+ "ar-ER": "Arabic (Eritrea)",
27
+ "ar-IL": "Arabic (Israel)",
28
+ "ar-IQ": "Arabic (Iraq)",
29
+ "ar-JO": "Arabic (Jordan)",
30
+ "ar-KM": "Arabic (Comoros)",
31
+ "ar-KW": "Arabic (Kuwait)",
32
+ "ar-LB": "Arabic (Lebanon)",
33
+ "ar-LY": "Arabic (Libya)",
34
+ "ar-MA": "Arabic (Morocco)",
35
+ "ar-MR": "Arabic (Mauritania)",
36
+ "ar-OM": "Arabic (Oman)",
37
+ "ar-PS": "Arabic (Palestinian Territories)",
38
+ "ar-QA": "Arabic (Qatar)",
39
+ "ar-SA": "Arabic (Saudi Arabia)",
40
+ "ar-SD": "Arabic (Sudan)",
41
+ "ar-SO": "Arabic (Somalia)",
42
+ "ar-SS": "Arabic (South Sudan)",
43
+ "ar-SY": "Arabic (Syria)",
44
+ "ar-TD": "Arabic (Chad)",
45
+ "ar-TN": "Arabic (Tunisia)",
46
+ "ar-YE": "Arabic (Yemen)",
47
+ "arc": "Official Aramaic (700–300 BCE); Imperial Aramaic (700–300 BCE)",
48
+ "arz": "Egyptian Arabic",
49
+ "as": "Assamese",
50
+ "as-IN": "Assamese (India)",
51
+ "asa": "Asu",
52
+ "asa-TZ": "Asu (Tanzania)",
53
+ "ast": "Asturian",
54
+ "ast-ES": "Asturian (Spain)",
55
+ "atj": "Atikamekw",
56
+ "av": "Avaric",
57
+ "ay": "Aymara",
58
+ "az": "Azerbaijani",
59
+ "az-Cyrl": "Azerbaijani (Cyrillic)",
60
+ "az-Cyrl-AZ": "Azerbaijani (Cyrillic, Azerbaijan)",
61
+ "az-Latn": "Azerbaijani (Latin)",
62
+ "az-Latn-AZ": "Azerbaijani (Latin, Azerbaijan)",
63
+ "azb": "South Azerbaijani",
64
+ "ba": "Bashkir",
65
+ "bar": "Bavarian",
66
+ "bas": "Basaa",
67
+ "bas-CM": "Basaa (Cameroon)",
68
+ "bcl": "Central Bikol",
69
+ "be": "Belarusian",
70
+ "be-BY": "Belarusian (Belarus)",
71
+ "be-tarask": "Belarusan (Taraškievica)",
72
+ "bem": "Bemba",
73
+ "bem-ZM": "Bemba (Zambia)",
74
+ "bez": "Bena",
75
+ "bez-TZ": "Bena (Tanzania)",
76
+ "bg": "Bulgarian",
77
+ "bg-BG": "Bulgarian (Bulgaria)",
78
+ "bg-Latn": "Bulgarian (Latin)",
79
+ "bh": "Bihari languages",
80
+ "bi": "Bislama",
81
+ "bjn": "Banjar",
82
+ "bm": "Bambara",
83
+ "bm-ML": "Bambara (Mali)",
84
+ "bn": "Bangla",
85
+ "bn-BD": "Bangla (Bangladesh)",
86
+ "bn-IN": "Bangla (India)",
87
+ "bn-Latn": "Bangla (Latin script)",
88
+ "bo": "Tibetan",
89
+ "bo-CN": "Tibetan (China)",
90
+ "bo-IN": "Tibetan (India)",
91
+ "bpy": "Bishnupriya",
92
+ "br": "Breton",
93
+ "br-FR": "Breton (France)",
94
+ "brx": "Bodo",
95
+ "brx-IN": "Bodo (India)",
96
+ "bs": "Bosnian",
97
+ "bs-Cyrl": "Bosnian (Cyrillic)",
98
+ "bs-Cyrl-BA": "Bosnian (Cyrillic, Bosnia & Herzegovina)",
99
+ "bs-Latn": "Bosnian",
100
+ "bs-Latn-BA": "Bosnian (Bosnia & Herzegovina)",
101
+ "bug": "Buginese",
102
+ "bxr": "Russia Buriat",
103
+ "bzd": "Bribri",
104
+ "ca": "Catalan",
105
+ "ca-AD": "Catalan (Andorra)",
106
+ "ca-ES": "Catalan (Spain)",
107
+ "ca-ES-valencia": "Catalan (Spain)",
108
+ "ca-FR": "Catalan (France)",
109
+ "ca-IT": "Catalan (Italy)",
110
+ "cbk": "Chavacano",
111
+ "ccp": "Chakma",
112
+ "ccp-BD": "Chakma (Bangladesh)",
113
+ "ccp-IN": "Chakma (India)",
114
+ "cdo": "Min Dong Chinese",
115
+ "ce": "Chechen",
116
+ "ce-RU": "Chechen (Russia)",
117
+ "ceb": "Cebuano",
118
+ "ceb-PH": "Cebuano (Philippines)",
119
+ "cgg": "Chiga",
120
+ "cgg-UG": "Chiga (Uganda)",
121
+ "ch": "Chamorro",
122
+ "cho": "Choctaw",
123
+ "chr": "Cherokee",
124
+ "chr-US": "Cherokee (United States)",
125
+ "chy": "Cheyenne",
126
+ "ckb": "Central Kurdish",
127
+ "ckb-IQ": "Central Kurdish (Iraq)",
128
+ "ckb-IR": "Central Kurdish (Iran)",
129
+ "cni": "Ashaninka",
130
+ "cnh": "Hakha Chin",
131
+ "co": "Corsican",
132
+ "code": "Programming language (C++, Java, Javascript, Python, etc.)",
133
+ "cr": "Cree",
134
+ "crh": "Crimean Tatar; Crimean Turkish",
135
+ "cs": "Czech",
136
+ "cs-CZ": "Czech (Czechia)",
137
+ "csb": "Kashubian",
138
+ "cu": "Church Slavic",
139
+ "cu-RU": "Church Slavic (Russia)",
140
+ "cv": "Chuvash",
141
+ "cy": "Welsh",
142
+ "cy-GB": "Welsh (United Kingdom)",
143
+ "da": "Danish",
144
+ "da-DK": "Danish (Denmark)",
145
+ "da-GL": "Danish (Greenland)",
146
+ "dav": "Taita",
147
+ "dav-KE": "Taita (Kenya)",
148
+ "de": "German",
149
+ "de-AT": "German (Austria)",
150
+ "de-BE": "German (Belgium)",
151
+ "de-CH": "German (Switzerland)",
152
+ "de-DE": "German (Germany)",
153
+ "de-IT": "German (Italy)",
154
+ "de-LI": "German (Liechtenstein)",
155
+ "de-LU": "German (Luxembourg)",
156
+ "din": "Dinka",
157
+ "diq": "Dimli (individual language)",
158
+ "dje": "Zarma",
159
+ "dje-NE": "Zarma (Niger)",
160
+ "dsb": "Lower Sorbian",
161
+ "dsb-DE": "Lower Sorbian (Germany)",
162
+ "dty": "Doteli",
163
+ "dua": "Duala",
164
+ "dua-CM": "Duala (Cameroon)",
165
+ "dv": "Dhivehi",
166
+ "dyo": "Jola-Fonyi",
167
+ "dyo-SN": "Jola-Fonyi (Senegal)",
168
+ "dz": "Dzongkha",
169
+ "dz-BT": "Dzongkha (Bhutan)",
170
+ "ebu": "Embu",
171
+ "ebu-KE": "Embu (Kenya)",
172
+ "ee": "Ewe",
173
+ "ee-GH": "Ewe (Ghana)",
174
+ "ee-TG": "Ewe (Togo)",
175
+ "egy": "Egyptian (Ancient)",
176
+ "el": "Greek",
177
+ "el-CY": "Greek (Cyprus)",
178
+ "el-GR": "Greek (Greece)",
179
+ "el-Latn": "Greek (Latin)",
180
+ "eml": "Emiliano-Romagnolo",
181
+ "en": "English",
182
+ "en-001": "English (World)",
183
+ "en-150": "English (Europe)",
184
+ "en-AE": "English (United Arab Emirates)",
185
+ "en-AG": "English (Antigua & Barbuda)",
186
+ "en-AI": "English (Anguilla)",
187
+ "en-AS": "English (American Samoa)",
188
+ "en-AT": "English (Austria)",
189
+ "en-AU": "English (Australia)",
190
+ "en-BB": "English (Barbados)",
191
+ "en-BE": "English (Belgium)",
192
+ "en-BI": "English (Burundi)",
193
+ "en-BM": "English (Bermuda)",
194
+ "en-BS": "English (Bahamas)",
195
+ "en-BW": "English (Botswana)",
196
+ "en-BZ": "English (Belize)",
197
+ "en-CA": "English (Canada)",
198
+ "en-CC": "English (Cocos (Keeling) Islands)",
199
+ "en-CH": "English (Switzerland)",
200
+ "en-CK": "English (Cook Islands)",
201
+ "en-CM": "English (Cameroon)",
202
+ "en-CX": "English (Christmas Island)",
203
+ "en-CY": "English (Cyprus)",
204
+ "en-DE": "English (Germany)",
205
+ "en-DG": "English (Diego Garcia)",
206
+ "en-DK": "English (Denmark)",
207
+ "en-DM": "English (Dominica)",
208
+ "en-ER": "English (Eritrea)",
209
+ "en-FI": "English (Finland)",
210
+ "en-FJ": "English (Fiji)",
211
+ "en-FK": "English (Falkland Islands)",
212
+ "en-FM": "English (Micronesia)",
213
+ "en-GB": "English (United Kingdom)",
214
+ "en-GD": "English (Grenada)",
215
+ "en-GG": "English (Guernsey)",
216
+ "en-GH": "English (Ghana)",
217
+ "en-GI": "English (Gibraltar)",
218
+ "en-GM": "English (Gambia)",
219
+ "en-GU": "English (Guam)",
220
+ "en-GY": "English (Guyana)",
221
+ "en-HK": "English (Hong Kong SAR China)",
222
+ "en-IE": "English (Ireland)",
223
+ "en-IL": "English (Israel)",
224
+ "en-IM": "English (Isle of Man)",
225
+ "en-IN": "English (India)",
226
+ "en-IO": "English (British Indian Ocean Territory)",
227
+ "en-JE": "English (Jersey)",
228
+ "en-JM": "English (Jamaica)",
229
+ "en-KE": "English (Kenya)",
230
+ "en-KI": "English (Kiribati)",
231
+ "en-KN": "English (St. Kitts & Nevis)",
232
+ "en-KY": "English (Cayman Islands)",
233
+ "en-LC": "English (St. Lucia)",
234
+ "en-LR": "English (Liberia)",
235
+ "en-LS": "English (Lesotho)",
236
+ "en-MG": "English (Madagascar)",
237
+ "en-MH": "English (Marshall Islands)",
238
+ "en-MO": "English (Macao SAR China)",
239
+ "en-MP": "English (Northern Mariana Islands)",
240
+ "en-MS": "English (Montserrat)",
241
+ "en-MT": "English (Malta)",
242
+ "en-MU": "English (Mauritius)",
243
+ "en-MW": "English (Malawi)",
244
+ "en-MY": "English (Malaysia)",
245
+ "en-NA": "English (Namibia)",
246
+ "en-NF": "English (Norfolk Island)",
247
+ "en-NG": "English (Nigeria)",
248
+ "en-NL": "English (Netherlands)",
249
+ "en-NR": "English (Nauru)",
250
+ "en-NU": "English (Niue)",
251
+ "en-NZ": "English (New Zealand)",
252
+ "en-PG": "English (Papua New Guinea)",
253
+ "en-PH": "English (Philippines)",
254
+ "en-PK": "English (Pakistan)",
255
+ "en-PN": "English (Pitcairn Islands)",
256
+ "en-PR": "English (Puerto Rico)",
257
+ "en-PW": "English (Palau)",
258
+ "en-RW": "English (Rwanda)",
259
+ "en-SB": "English (Solomon Islands)",
260
+ "en-SC": "English (Seychelles)",
261
+ "en-SD": "English (Sudan)",
262
+ "en-SE": "English (Sweden)",
263
+ "en-SG": "English (Singapore)",
264
+ "en-SH": "English (St. Helena)",
265
+ "en-SI": "English (Slovenia)",
266
+ "en-SL": "English (Sierra Leone)",
267
+ "en-SS": "English (South Sudan)",
268
+ "en-SX": "English (Sint Maarten)",
269
+ "en-SZ": "English (Eswatini)",
270
+ "en-TC": "English (Turks & Caicos Islands)",
271
+ "en-TK": "English (Tokelau)",
272
+ "en-TO": "English (Tonga)",
273
+ "en-TT": "English (Trinidad & Tobago)",
274
+ "en-TV": "English (Tuvalu)",
275
+ "en-TZ": "English (Tanzania)",
276
+ "en-UG": "English (Uganda)",
277
+ "en-UM": "English (U.S. Outlying Islands)",
278
+ "en-US": "English (United States)",
279
+ "en-US-posix": "English (United States)",
280
+ "en-VC": "English (St. Vincent & Grenadines)",
281
+ "en-VG": "English (British Virgin Islands)",
282
+ "en-VI": "English (U.S. Virgin Islands)",
283
+ "en-VU": "English (Vanuatu)",
284
+ "en-WS": "English (Samoa)",
285
+ "en-ZA": "English (South Africa)",
286
+ "en-ZM": "English (Zambia)",
287
+ "en-ZW": "English (Zimbabwe)",
288
+ "en-basiceng": "Basic English",
289
+ "eo": "Esperanto",
290
+ "eo-001": "Esperanto (World)",
291
+ "es": "Spanish",
292
+ "es-419": "Spanish (Latin America)",
293
+ "es-AR": "Spanish (Argentina)",
294
+ "es-BO": "Spanish (Bolivia)",
295
+ "es-BR": "Spanish (Brazil)",
296
+ "es-BZ": "Spanish (Belize)",
297
+ "es-CL": "Spanish (Chile)",
298
+ "es-CO": "Spanish (Colombia)",
299
+ "es-CR": "Spanish (Costa Rica)",
300
+ "es-CU": "Spanish (Cuba)",
301
+ "es-DO": "Spanish (Dominican Republic)",
302
+ "es-EA": "Spanish (Ceuta & Melilla)",
303
+ "es-EC": "Spanish (Ecuador)",
304
+ "es-ES": "Spanish (Spain)",
305
+ "es-GQ": "Spanish (Equatorial Guinea)",
306
+ "es-GT": "Spanish (Guatemala)",
307
+ "es-HN": "Spanish (Honduras)",
308
+ "es-IC": "Spanish (Canary Islands)",
309
+ "es-MX": "Spanish (Mexico)",
310
+ "es-NI": "Spanish (Nicaragua)",
311
+ "es-PA": "Spanish (Panama)",
312
+ "es-PE": "Spanish (Peru)",
313
+ "es-PH": "Spanish (Philippines)",
314
+ "es-PR": "Spanish (Puerto Rico)",
315
+ "es-PY": "Spanish (Paraguay)",
316
+ "es-SV": "Spanish (El Salvador)",
317
+ "es-US": "Spanish (United States)",
318
+ "es-UY": "Spanish (Uruguay)",
319
+ "es-VE": "Spanish (Venezuela)",
320
+ "et": "Estonian",
321
+ "et-EE": "Estonian (Estonia)",
322
+ "eu": "Basque",
323
+ "eu-ES": "Basque (Spain)",
324
+ "ewo": "Ewondo",
325
+ "ewo-CM": "Ewondo (Cameroon)",
326
+ "ext": "Extremaduran",
327
+ "fa": "Persian",
328
+ "fa-AF": "Persian (Afghanistan)",
329
+ "fa-IR": "Persian (Iran)",
330
+ "ff": "Fulah",
331
+ "ff-Adlm": "Fulah (Adlam)",
332
+ "ff-Adlm-BF": "Fulah (Adlam, Burkina Faso)",
333
+ "ff-Adlm-CM": "Fulah (Adlam, Cameroon)",
334
+ "ff-Adlm-GH": "Fulah (Adlam, Ghana)",
335
+ "ff-Adlm-GM": "Fulah (Adlam, Gambia)",
336
+ "ff-Adlm-GN": "Fulah (Adlam, Guinea)",
337
+ "ff-Adlm-GW": "Fulah (Adlam, Guinea-Bissau)",
338
+ "ff-Adlm-LR": "Fulah (Adlam, Liberia)",
339
+ "ff-Adlm-MR": "Fulah (Adlam, Mauritania)",
340
+ "ff-Adlm-NE": "Fulah (Adlam, Niger)",
341
+ "ff-Adlm-NG": "Fulah (Adlam, Nigeria)",
342
+ "ff-Adlm-SL": "Fulah (Adlam, Sierra Leone)",
343
+ "ff-Adlm-SN": "Fulah (Adlam, Senegal)",
344
+ "ff-Latn": "Fulah (Latin)",
345
+ "ff-Latn-BF": "Fulah (Latin, Burkina Faso)",
346
+ "ff-Latn-CM": "Fulah (Latin, Cameroon)",
347
+ "ff-Latn-GH": "Fulah (Latin, Ghana)",
348
+ "ff-Latn-GM": "Fulah (Latin, Gambia)",
349
+ "ff-Latn-GN": "Fulah (Latin, Guinea)",
350
+ "ff-Latn-GW": "Fulah (Latin, Guinea-Bissau)",
351
+ "ff-Latn-LR": "Fulah (Latin, Liberia)",
352
+ "ff-Latn-MR": "Fulah (Latin, Mauritania)",
353
+ "ff-Latn-NE": "Fulah (Latin, Niger)",
354
+ "ff-Latn-NG": "Fulah (Latin, Nigeria)",
355
+ "ff-Latn-SL": "Fulah (Latin, Sierra Leone)",
356
+ "ff-Latn-SN": "Fulah (Latin, Senegal)",
357
+ "fi": "Finnish",
358
+ "fi-FI": "Finnish (Finland)",
359
+ "fil": "Filipino",
360
+ "fil-PH": "Filipino (Philippines)",
361
+ "fj": "Fijian",
362
+ "fo": "Faroese",
363
+ "fo-DK": "Faroese (Denmark)",
364
+ "fo-FO": "Faroese (Faroe Islands)",
365
+ "fon": "Fon",
366
+ "fr": "French",
367
+ "fr-BE": "French (Belgium)",
368
+ "fr-BF": "French (Burkina Faso)",
369
+ "fr-BI": "French (Burundi)",
370
+ "fr-BJ": "French (Benin)",
371
+ "fr-BL": "French (St. Barthélemy)",
372
+ "fr-CA": "French (Canada)",
373
+ "fr-CD": "French (Congo - Kinshasa)",
374
+ "fr-CF": "French (Central African Republic)",
375
+ "fr-CG": "French (Congo - Brazzaville)",
376
+ "fr-CH": "French (Switzerland)",
377
+ "fr-CI": "French (Côte d’Ivoire)",
378
+ "fr-CM": "French (Cameroon)",
379
+ "fr-DJ": "French (Djibouti)",
380
+ "fr-DZ": "French (Algeria)",
381
+ "fr-FR": "French (France)",
382
+ "fr-GA": "French (Gabon)",
383
+ "fr-GF": "French (French Guiana)",
384
+ "fr-GN": "French (Guinea)",
385
+ "fr-GP": "French (Guadeloupe)",
386
+ "fr-GQ": "French (Equatorial Guinea)",
387
+ "fr-HT": "French (Haiti)",
388
+ "fr-KM": "French (Comoros)",
389
+ "fr-LU": "French (Luxembourg)",
390
+ "fr-MA": "French (Morocco)",
391
+ "fr-MC": "French (Monaco)",
392
+ "fr-MF": "French (St. Martin)",
393
+ "fr-MG": "French (Madagascar)",
394
+ "fr-ML": "French (Mali)",
395
+ "fr-MQ": "French (Martinique)",
396
+ "fr-MR": "French (Mauritania)",
397
+ "fr-MU": "French (Mauritius)",
398
+ "fr-NC": "French (New Caledonia)",
399
+ "fr-NE": "French (Niger)",
400
+ "fr-PF": "French (French Polynesia)",
401
+ "fr-PM": "French (St. Pierre & Miquelon)",
402
+ "fr-RE": "French (Réunion)",
403
+ "fr-RW": "French (Rwanda)",
404
+ "fr-SC": "French (Seychelles)",
405
+ "fr-SN": "French (Senegal)",
406
+ "fr-SY": "French (Syria)",
407
+ "fr-TD": "French (Chad)",
408
+ "fr-TG": "French (Togo)",
409
+ "fr-TN": "French (Tunisia)",
410
+ "fr-VU": "French (Vanuatu)",
411
+ "fr-WF": "French (Wallis & Futuna)",
412
+ "fr-YT": "French (Mayotte)",
413
+ "frp": "Franco-Provençal",
414
+ "frr": "Northern Frisian",
415
+ "fur": "Friulian",
416
+ "fur-IT": "Friulian (Italy)",
417
+ "fy": "Western Frisian",
418
+ "fy-NL": "Western Frisian (Netherlands)",
419
+ "ga": "Irish",
420
+ "ga-GB": "Irish (United Kingdom)",
421
+ "ga-IE": "Irish (Ireland)",
422
+ "gag": "Gagauz",
423
+ "gan": "Gan Chinese",
424
+ "gd": "Scottish Gaelic",
425
+ "gd-GB": "Scottish Gaelic (United Kingdom)",
426
+ "gl": "Galician",
427
+ "gl-ES": "Galician (Spain)",
428
+ "glk": "Gilaki",
429
+ "gn": "Guarani",
430
+ "gom": "Goan Konkani",
431
+ "gor": "Gorontalo",
432
+ "got": "Gothic",
433
+ "gsw": "Swiss German",
434
+ "gsw-CH": "Swiss German (Switzerland)",
435
+ "gsw-FR": "Swiss German (France)",
436
+ "gsw-LI": "Swiss German (Liechtenstein)",
437
+ "gu": "Gujarati",
438
+ "gu-IN": "Gujarati (India)",
439
+ "guz": "Gusii",
440
+ "guz-KE": "Gusii (Kenya)",
441
+ "gv": "Manx",
442
+ "gv-IM": "Manx (Isle of Man)",
443
+ "ha": "Hausa",
444
+ "ha-GH": "Hausa (Ghana)",
445
+ "ha-NE": "Hausa (Niger)",
446
+ "ha-NG": "Hausa (Nigeria)",
447
+ "hak": "Hakka Chinese",
448
+ "haw": "Hawaiian",
449
+ "haw-US": "Hawaiian (United States)",
450
+ "hch": "Wixarika",
451
+ "he": "Hebrew",
452
+ "he-IL": "Hebrew (Israel)",
453
+ "hi": "Hindi",
454
+ "hi-IN": "Hindi (India)",
455
+ "hi-Latn": "Hindi (Latin script)",
456
+ "hif": "Fiji Hindi",
457
+ "hmn": "Hmong, Mong",
458
+ "ho": "Hiri Motu",
459
+ "hr": "Croatian",
460
+ "hr-BA": "Croatian (Bosnia & Herzegovina)",
461
+ "hr-HR": "Croatian (Croatia)",
462
+ "hsb": "Upper Sorbian",
463
+ "hsb-DE": "Upper Sorbian (Germany)",
464
+ "ht": "Haitian",
465
+ "hu": "Hungarian",
466
+ "hu-HU": "Hungarian (Hungary)",
467
+ "hy": "Armenian",
468
+ "hy-AM": "Armenian (Armenia)",
469
+ "ia": "Interlingua",
470
+ "ia-001": "Interlingua (World)",
471
+ "id": "Indonesian",
472
+ "id-ID": "Indonesian (Indonesia)",
473
+ "ie": "Interlingue",
474
+ "ig": "Igbo",
475
+ "ig-NG": "Igbo (Nigeria)",
476
+ "ii": "Sichuan Yi",
477
+ "ii-CN": "Sichuan Yi (China)",
478
+ "ik": "Iñupiaq",
479
+ "ilo": "Iloko",
480
+ "inh": "Ingush",
481
+ "io": "Ido",
482
+ "is": "Icelandic",
483
+ "is-IS": "Icelandic (Iceland)",
484
+ "it": "Italian",
485
+ "it-CH": "Italian (Switzerland)",
486
+ "it-IT": "Italian (Italy)",
487
+ "it-SM": "Italian (San Marino)",
488
+ "it-VA": "Italian (Vatican City)",
489
+ "iu": "Inuktitut",
490
+ "iw": "former Hebrew",
491
+ "ja": "Japanese",
492
+ "ja-JP": "Japanese (Japan)",
493
+ "ja-Latn": "Japanese (Latin)",
494
+ "jam": "Jamaican Patois",
495
+ "jbo": "Lojban",
496
+ "jgo": "Ngomba",
497
+ "jgo-CM": "Ngomba (Cameroon)",
498
+ "jmc": "Machame",
499
+ "jmc-TZ": "Machame (Tanzania)",
500
+ "jv": "Javanese",
501
+ "jv-ID": "Javanese (Indonesia)",
502
+ "jv-x-bms": "Banyumasan",
503
+ "ka": "Georgian",
504
+ "ka-GE": "Georgian (Georgia)",
505
+ "kaa": "Karakalpak",
506
+ "kab": "Kabyle",
507
+ "kab-DZ": "Kabyle (Algeria)",
508
+ "kac": "Kachin; Jingpho",
509
+ "kam": "Kamba",
510
+ "kam-KE": "Kamba (Kenya)",
511
+ "kbd": "Kabardian",
512
+ "kbp": "Kabiye",
513
+ "kde": "Makonde",
514
+ "kde-TZ": "Makonde (Tanzania)",
515
+ "kea": "Kabuverdianu",
516
+ "kea-CV": "Kabuverdianu (Cape Verde)",
517
+ "kg": "Kongo",
518
+ "khq": "Koyra Chiini",
519
+ "khq-ML": "Koyra Chiini (Mali)",
520
+ "ki": "Kikuyu",
521
+ "ki-KE": "Kikuyu (Kenya)",
522
+ "kj": "Kwanyama",
523
+ "kk": "Kazakh",
524
+ "kk-KZ": "Kazakh (Kazakhstan)",
525
+ "kkj": "Kako",
526
+ "kkj-CM": "Kako (Cameroon)",
527
+ "kl": "Kalaallisut",
528
+ "kl-GL": "Kalaallisut (Greenland)",
529
+ "kln": "Kalenjin",
530
+ "kln-KE": "Kalenjin (Kenya)",
531
+ "km": "Khmer",
532
+ "km-KH": "Khmer (Cambodia)",
533
+ "kn": "Kannada",
534
+ "kn-IN": "Kannada (India)",
535
+ "ko": "Korean",
536
+ "ko-KP": "Korean (North Korea)",
537
+ "ko-KR": "Korean (South Korea)",
538
+ "koi": "Komi-Permyak",
539
+ "kok": "Konkani",
540
+ "kok-IN": "Konkani (India)",
541
+ "krc": "Karachay-Balkar",
542
+ "ks": "Kashmiri",
543
+ "ks-Arab": "Kashmiri (Arabic)",
544
+ "ks-IN": "Kashmiri (India)",
545
+ "ksb": "Shambala",
546
+ "ksb-TZ": "Shambala (Tanzania)",
547
+ "ksf": "Bafia",
548
+ "ksf-CM": "Bafia (Cameroon)",
549
+ "ksh": "Colognian",
550
+ "ksh-DE": "Colognian (Germany)",
551
+ "ku": "Kurdish",
552
+ "ku-TR": "Kurdish (Turkey)",
553
+ "kv": "Komi",
554
+ "kw": "Cornish",
555
+ "kw-GB": "Cornish (United Kingdom)",
556
+ "ky": "Kyrgyz",
557
+ "ky-KG": "Kyrgyz (Kyrgyzstan)",
558
+ "la": "Latin",
559
+ "lad": "Ladino",
560
+ "lag": "Langi",
561
+ "lag-TZ": "Langi (Tanzania)",
562
+ "lb": "Luxembourgish",
563
+ "lb-LU": "Luxembourgish (Luxembourg)",
564
+ "lbe": "Lak",
565
+ "lez": "Lezghian",
566
+ "lfn": "Lingua Franca Nova",
567
+ "lg": "Ganda",
568
+ "lg-UG": "Ganda (Uganda)",
569
+ "li": "Limburgan",
570
+ "lij": "Ligurian",
571
+ "lkt": "Lakota",
572
+ "lkt-US": "Lakota (United States)",
573
+ "lmo": "Lombard",
574
+ "ln": "Lingala",
575
+ "ln-AO": "Lingala (Angola)",
576
+ "ln-CD": "Lingala (Congo - Kinshasa)",
577
+ "ln-CF": "Lingala (Central African Republic)",
578
+ "ln-CG": "Lingala (Congo - Brazzaville)",
579
+ "lo": "Lao",
580
+ "lo-LA": "Lao (Laos)",
581
+ "lrc": "Northern Luri",
582
+ "lrc-IQ": "Northern Luri (Iraq)",
583
+ "lrc-IR": "Northern Luri (Iran)",
584
+ "lt": "Lithuanian",
585
+ "lt-LT": "Lithuanian (Lithuania)",
586
+ "ltg": "Latgalian",
587
+ "lu": "Luba-Katanga",
588
+ "lu-CD": "Luba-Katanga (Congo - Kinshasa)",
589
+ "luo": "Luo (Kenya and Tanzania)",
590
+ "luo-KE": "Luo (Kenya and Tanzania) (Kenya)",
591
+ "luy": "Luyia",
592
+ "luy-KE": "Luyia (Kenya)",
593
+ "lv": "Latvian",
594
+ "lv-LV": "Latvian (Latvia)",
595
+ "lzh": "Literary Chinese",
596
+ "mai": "Maithili",
597
+ "mai-IN": "Maithili (India)",
598
+ "mas": "Masai",
599
+ "mas-KE": "Masai (Kenya)",
600
+ "mas-TZ": "Masai (Tanzania)",
601
+ "mdf": "Moksha",
602
+ "mer": "Meru",
603
+ "mer-KE": "Meru (Kenya)",
604
+ "mfe": "Morisyen",
605
+ "mfe-MU": "Morisyen (Mauritius)",
606
+ "mg": "Malagasy",
607
+ "mg-MG": "Malagasy (Madagascar)",
608
+ "mgh": "Makhuwa-Meetto",
609
+ "mgh-MZ": "Makhuwa-Meetto (Mozambique)",
610
+ "mgo": "Metaʼ",
611
+ "mgo-CM": "Metaʼ (Cameroon)",
612
+ "mh": "Marshallese",
613
+ "mhr": "Eastern Mari",
614
+ "mi": "Maori",
615
+ "mi-NZ": "Maori (New Zealand)",
616
+ "min": "Minangkabau",
617
+ "mk": "Macedonian",
618
+ "mk-MK": "Macedonian (North Macedonia)",
619
+ "ml": "Malayalam",
620
+ "ml-IN": "Malayalam (India)",
621
+ "mn": "Mongolian",
622
+ "mn-MN": "Mongolian (Mongolia)",
623
+ "mni": "Manipuri",
624
+ "mni-Beng": "Manipuri (Bangla)",
625
+ "mni-Beng-IN": "Manipuri (Bangla, India)",
626
+ "mr": "Marathi",
627
+ "mr-IN": "Marathi (India)",
628
+ "mrj": "Western Mari",
629
+ "ms": "Malay",
630
+ "ms-BN": "Malay (Brunei)",
631
+ "ms-ID": "Malay (Indonesia)",
632
+ "ms-MY": "Malay (Malaysia)",
633
+ "ms-SG": "Malay (Singapore)",
634
+ "mt": "Maltese",
635
+ "mt-MT": "Maltese (Malta)",
636
+ "mua": "Mundang",
637
+ "mua-CM": "Mundang (Cameroon)",
638
+ "mus": "Muscogee",
639
+ "mwl": "Mirandese",
640
+ "my": "Burmese",
641
+ "my-MM": "Burmese (Myanmar (Burma))",
642
+ "my-x-zawgyi": "Myanmar (Zawgyi)",
643
+ "myv": "Erzya",
644
+ "mzn": "Mazanderani",
645
+ "mzn-IR": "Mazanderani (Iran)",
646
+ "na": "Nauruan",
647
+ "nah": "Nahuatl languages",
648
+ "nan": "Min Nan Chinese",
649
+ "nap": "Neapolitan",
650
+ "naq": "Nama",
651
+ "naq-NA": "Nama (Namibia)",
652
+ "nb": "Norwegian Bokmål",
653
+ "nb-NO": "Norwegian Bokmål (Norway)",
654
+ "nb-SJ": "Norwegian Bokmål (Svalbard & Jan Mayen)",
655
+ "nd": "North Ndebele",
656
+ "nd-ZW": "North Ndebele (Zimbabwe)",
657
+ "nds": "Low German",
658
+ "nds-DE": "Low German (Germany)",
659
+ "nds-NL": "Low German (Netherlands)",
660
+ "nds-nl": "Dutch Low Saxon",
661
+ "ne": "Nepali",
662
+ "ne-IN": "Nepali (India)",
663
+ "ne-NP": "Nepali (Nepal)",
664
+ "new": "Newari",
665
+ "ng": "Ndonga",
666
+ "nl": "Dutch",
667
+ "nl-AW": "Dutch (Aruba)",
668
+ "nl-BE": "Dutch (Belgium)",
669
+ "nl-BQ": "Dutch (Caribbean Netherlands)",
670
+ "nl-CW": "Dutch (Curaçao)",
671
+ "nl-NL": "Dutch (Netherlands)",
672
+ "nl-SR": "Dutch (Suriname)",
673
+ "nl-SX": "Dutch (Sint Maarten)",
674
+ "nmg": "Kwasio",
675
+ "nmg-CM": "Kwasio (Cameroon)",
676
+ "nn": "Norwegian Nynorsk",
677
+ "nn-NO": "Norwegian Nynorsk (Norway)",
678
+ "nnh": "Ngiemboon",
679
+ "nnh-CM": "Ngiemboon (Cameroon)",
680
+ "no": "Norwegian",
681
+ "nov": "Novial",
682
+ "nrf": "Norman",
683
+ "ns": "Northern Sotho",
684
+ "nso": "Pedi; Sepedi; Northern Sotho",
685
+ "nus": "Nuer",
686
+ "nus-SS": "Nuer (South Sudan)",
687
+ "nv": "Navajo",
688
+ "ny": "Nyanja",
689
+ "nyn": "Nyankole",
690
+ "nyn-UG": "Nyankole (Uganda)",
691
+ "oc": "Occitan (post 1500)",
692
+ "olo": "Livvi-Karelian",
693
+ "om": "Oromo",
694
+ "om-ET": "Oromo (Ethiopia)",
695
+ "om-KE": "Oromo (Kenya)",
696
+ "or": "Odia",
697
+ "or-IN": "Odia (India)",
698
+ "os": "Ossetic",
699
+ "os-GE": "Ossetic (Georgia)",
700
+ "os-RU": "Ossetic (Russia)",
701
+ "oto": "Otomi",
702
+ "pa": "Punjabi",
703
+ "pa-Arab": "Punjabi (Arabic)",
704
+ "pa-Arab-PK": "Punjabi (Arabic, Pakistan)",
705
+ "pa-Guru": "Punjabi",
706
+ "pa-Guru-IN": "Punjabi (India)",
707
+ "pa-IN": "Punjabi (India)",
708
+ "pag": "Pangasinan",
709
+ "pam": "Pampanga",
710
+ "pap": "Papiamento",
711
+ "pcd": "Picard",
712
+ "pcm": "Nigerian Pidgin",
713
+ "pcm-NG": "Nigerian Pidgin (Nigeria)",
714
+ "pdc": "Pennsylvania German",
715
+ "pfl": "Palatine German",
716
+ "pi": "Pali",
717
+ "pih": "Norfolk",
718
+ "pl": "Polish",
719
+ "pl-PL": "Polish (Poland)",
720
+ "pms": "Piemontese",
721
+ "pnb": "Western Panjabi",
722
+ "pnt": "Pontic Greek",
723
+ "prg": "Prussian",
724
+ "prg-001": "Prussian (World)",
725
+ "ps": "Pashto",
726
+ "ps-AF": "Pashto (Afghanistan)",
727
+ "ps-PK": "Pashto (Pakistan)",
728
+ "pt": "Portuguese",
729
+ "pt-AO": "Portuguese (Angola)",
730
+ "pt-BR": "Portuguese (Brazil)",
731
+ "pt-CH": "Portuguese (Switzerland)",
732
+ "pt-CV": "Portuguese (Cape Verde)",
733
+ "pt-GQ": "Portuguese (Equatorial Guinea)",
734
+ "pt-GW": "Portuguese (Guinea-Bissau)",
735
+ "pt-LU": "Portuguese (Luxembourg)",
736
+ "pt-MO": "Portuguese (Macao SAR China)",
737
+ "pt-MZ": "Portuguese (Mozambique)",
738
+ "pt-PT": "Portuguese (Portugal)",
739
+ "pt-ST": "Portuguese (São Tomé & Príncipe)",
740
+ "pt-TL": "Portuguese (Timor-Leste)",
741
+ "qu": "Quechua",
742
+ "qu-BO": "Quechua (Bolivia)",
743
+ "qu-EC": "Quechua (Ecuador)",
744
+ "qu-PE": "Quechua (Peru)",
745
+ "rm": "Romansh",
746
+ "rm-CH": "Romansh (Switzerland)",
747
+ "rm-sursilv": "Romansh (Sursilvan idiom, Switzerland)",
748
+ "rm-vallader": "Romansh (Vallader idiom, Swizterland)",
749
+ "rmy": "Vlax Romani",
750
+ "rn": "Rundi",
751
+ "rn-BI": "Rundi (Burundi)",
752
+ "ro": "Romanian",
753
+ "ro-MD": "Romanian (Moldova)",
754
+ "ro-RO": "Romanian (Romania)",
755
+ "rof": "Rombo",
756
+ "rof-TZ": "Rombo (Tanzania)",
757
+ "ru": "Russian",
758
+ "ru-BY": "Russian (Belarus)",
759
+ "ru-KG": "Russian (Kyrgyzstan)",
760
+ "ru-KZ": "Russian (Kazakhstan)",
761
+ "ru-Latn": "Russian (Latin)",
762
+ "ru-MD": "Russian (Moldova)",
763
+ "ru-RU": "Russian (Russia)",
764
+ "ru-UA": "Russian (Ukraine)",
765
+ "rue": "Rusyn",
766
+ "rup": "Aromanian",
767
+ "rw": "Kinyarwanda",
768
+ "rw-RW": "Kinyarwanda (Rwanda)",
769
+ "rwk": "Rwa",
770
+ "rwk-TZ": "Rwa (Tanzania)",
771
+ "sa": "Sanskrit",
772
+ "sah": "Sakha",
773
+ "sah-RU": "Sakha (Russia)",
774
+ "saq": "Samburu",
775
+ "saq-KE": "Samburu (Kenya)",
776
+ "sat": "Santali",
777
+ "sat-Olck": "Santali (Ol Chiki)",
778
+ "sat-Olck-IN": "Santali (Ol Chiki, India)",
779
+ "sbp": "Sangu",
780
+ "sbp-TZ": "Sangu (Tanzania)",
781
+ "sc": "Sardinian",
782
+ "scn": "Sicilian",
783
+ "sco": "Scots",
784
+ "sd": "Sindhi",
785
+ "sd-Arab": "Sindhi (Arabic)",
786
+ "sd-Arab-PK": "Sindhi (Arabic, Pakistan)",
787
+ "sd-Deva": "Sindhi (Devanagari)",
788
+ "sd-Deva-IN": "Sindhi (Devanagari, India)",
789
+ "se": "Northern Sami",
790
+ "se-FI": "Northern Sami (Finland)",
791
+ "se-NO": "Northern Sami (Norway)",
792
+ "se-SE": "Northern Sami (Sweden)",
793
+ "seh": "Sena",
794
+ "seh-MZ": "Sena (Mozambique)",
795
+ "ses": "Koyraboro Senni",
796
+ "ses-ML": "Koyraboro Senni (Mali)",
797
+ "sg": "Sango",
798
+ "sg-CF": "Sango (Central African Republic)",
799
+ "sgs": "Samogitian",
800
+ "sh": "Serbo-Croatian",
801
+ "shi": "Tachelhit",
802
+ "shi-Latn": "Tachelhit (Latin)",
803
+ "shi-Latn-MA": "Tachelhit (Latin, Morocco)",
804
+ "shi-Tfng": "Tachelhit (Tifinagh)",
805
+ "shi-Tfng-MA": "Tachelhit (Tifinagh, Morocco)",
806
+ "shn": "Shan",
807
+ "shp": "Shipibo-Konibo",
808
+ "si": "Sinhala",
809
+ "si-LK": "Sinhala (Sri Lanka)",
810
+ "simple": "en",
811
+ "sk": "Slovak",
812
+ "sk-SK": "Slovak (Slovakia)",
813
+ "sl": "Slovenian",
814
+ "sl-SI": "Slovenian (Slovenia)",
815
+ "sm": "San Marino",
816
+ "smn": "Inari Sami",
817
+ "smn-FI": "Inari Sami (Finland)",
818
+ "sn": "Shona",
819
+ "sn-ZW": "Shona (Zimbabwe)",
820
+ "so": "Somali",
821
+ "so-DJ": "Somali (Djibouti)",
822
+ "so-ET": "Somali (Ethiopia)",
823
+ "so-KE": "Somali (Kenya)",
824
+ "so-SO": "Somali (Somalia)",
825
+ "sq": "Albanian",
826
+ "sq-AL": "Albanian (Albania)",
827
+ "sq-MK": "Albanian (North Macedonia)",
828
+ "sq-XK": "Albanian (Kosovo)",
829
+ "sr": "Serbian",
830
+ "sr-Cyrl": "Serbian (Cyrillic)",
831
+ "sr-Cyrl-BA": "Serbian (Cyrillic, Bosnia & Herzegovina)",
832
+ "sr-Cyrl-ME": "Serbian (Cyrillic, Montenegro)",
833
+ "sr-Cyrl-RS": "Serbian (Cyrillic, Serbia)",
834
+ "sr-Cyrl-XK": "Serbian (Cyrillic, Kosovo)",
835
+ "sr-Latn": "Serbian (Latin)",
836
+ "sr-Latn-BA": "Serbian (Latin, Bosnia & Herzegovina)",
837
+ "sr-Latn-ME": "Serbian (Latin, Montenegro)",
838
+ "sr-Latn-RS": "Serbian (Latin, Serbia)",
839
+ "sr-Latn-XK": "Serbian (Latin, Kosovo)",
840
+ "srn": "Sranan Tongo",
841
+ "ss": "Swati",
842
+ "st": "Southern Sotho",
843
+ "stq": "Saterland Frisian",
844
+ "su": "Sundanese",
845
+ "su-Latn": "Sundanese (Latin)",
846
+ "su-Latn-ID": "Sundanese (Latin, Indonesia)",
847
+ "sv": "Swedish",
848
+ "sv-AX": "Swedish (Åland Islands)",
849
+ "sv-FI": "Swedish (Finland)",
850
+ "sv-SE": "Swedish (Sweden)",
851
+ "sw": "Swahili",
852
+ "sw-CD": "Swahili (Congo - Kinshasa)",
853
+ "sw-KE": "Swahili (Kenya)",
854
+ "sw-TZ": "Swahili (Tanzania)",
855
+ "sw-UG": "Swahili (Uganda)",
856
+ "syc": "Syriac",
857
+ "szl": "Silesian",
858
+ "ta": "Tamil",
859
+ "ta-IN": "Tamil (India)",
860
+ "ta-LK": "Tamil (Sri Lanka)",
861
+ "ta-Latn": "Tamil (Latin script)",
862
+ "ta-MY": "Tamil (Malaysia)",
863
+ "ta-SG": "Tamil (Singapore)",
864
+ "tar": "Raramuri",
865
+ "tcy": "Tulu",
866
+ "tdt": "Tetum",
867
+ "te": "Telugu",
868
+ "te-IN": "Telugu (India)",
869
+ "te-Latn": "Telugu (Latin script)",
870
+ "teo": "Teso",
871
+ "teo-KE": "Teso (Kenya)",
872
+ "teo-UG": "Teso (Uganda)",
873
+ "tg": "Tajik",
874
+ "tg-TJ": "Tajik (Tajikistan)",
875
+ "th": "Thai",
876
+ "th-TH": "Thai (Thailand)",
877
+ "ti": "Tigrinya",
878
+ "ti-ER": "Tigrinya (Eritrea)",
879
+ "ti-ET": "Tigrinya (Ethiopia)",
880
+ "tk": "Turkmen",
881
+ "tk-TM": "Turkmen (Turkmenistan)",
882
+ "tl": "Tagalog",
883
+ "tn": "Tswana",
884
+ "to": "Tongan",
885
+ "to-TO": "Tongan (Tonga)",
886
+ "tpi": "Tok Pisin",
887
+ "tr": "Turkish",
888
+ "tr-CY": "Turkish (Cyprus)",
889
+ "tr-TR": "Turkish (Turkey)",
890
+ "ts": "Tsonga",
891
+ "tt": "Tatar",
892
+ "tt-RU": "Tatar (Russia)",
893
+ "tum": "Tumbuka",
894
+ "tw": "Twi",
895
+ "twq": "Tasawaq",
896
+ "twq-NE": "Tasawaq (Niger)",
897
+ "ty": "Tahitian",
898
+ "tyv": "Tuvinian",
899
+ "tzm": "Central Atlas Tamazight",
900
+ "tzm-MA": "Central Atlas Tamazight (Morocco)",
901
+ "udm": "Udmurt",
902
+ "ug": "Uyghur",
903
+ "ug-CN": "Uyghur (China)",
904
+ "uk": "Ukrainian",
905
+ "uk-UA": "Ukrainian (Ukraine)",
906
+ "und": "Unknown language",
907
+ "ur": "Urdu",
908
+ "ur-IN": "Urdu (India)",
909
+ "ur-Latn": "Urdu (Latin script)",
910
+ "ur-PK": "Urdu (Pakistan)",
911
+ "uz": "Uzbek",
912
+ "uz-Arab": "Uzbek (Arabic)",
913
+ "uz-Arab-AF": "Uzbek (Arabic, Afghanistan)",
914
+ "uz-Cyrl": "Uzbek (Cyrillic)",
915
+ "uz-Cyrl-UZ": "Uzbek (Cyrillic, Uzbekistan)",
916
+ "uz-Latn": "Uzbek (Latin)",
917
+ "uz-Latn-UZ": "Uzbek (Latin, Uzbekistan)",
918
+ "vai": "Vai",
919
+ "vai-Latn": "Vai (Latin)",
920
+ "vai-Latn-LR": "Vai (Latin, Liberia)",
921
+ "vai-Vaii": "Vai (Vai)",
922
+ "vai-Vaii-LR": "Vai (Vai, Liberia)",
923
+ "ve": "Venda",
924
+ "vec": "Venetian",
925
+ "vep": "Veps",
926
+ "vi": "Vietnamese",
927
+ "vi-VN": "Vietnamese (Vietnam)",
928
+ "vls": "Vlaams",
929
+ "vo": "Volapük",
930
+ "vo-001": "Volapük (World)",
931
+ "vot": "Votic",
932
+ "vro": "Võro",
933
+ "vun": "Vunjo",
934
+ "vun-TZ": "Vunjo (Tanzania)",
935
+ "wa": "Walloon",
936
+ "wae": "Walser",
937
+ "wae-CH": "Walser (Switzerland)",
938
+ "war": "Waray (Philippines)",
939
+ "wo": "Wolof",
940
+ "wo-SN": "Wolof (Senegal)",
941
+ "wuu": "Wu Chinese",
942
+ "xal": "Kalmyk",
943
+ "xh": "Xhosa",
944
+ "xh-ZA": "Xhosa (South Africa)",
945
+ "xmf": "Mingrelian",
946
+ "xog": "Soga",
947
+ "xog-UG": "Soga (Uganda)",
948
+ "yav": "Yangben",
949
+ "yav-CM": "Yangben (Cameroon)",
950
+ "yi": "Yiddish",
951
+ "yi-001": "Yiddish (World)",
952
+ "yo": "Yoruba",
953
+ "yo-BJ": "Yoruba (Benin)",
954
+ "yo-NG": "Yoruba (Nigeria)",
955
+ "yue": "Cantonese",
956
+ "yue-Hans": "Cantonese (Simplified)",
957
+ "yue-Hans-CN": "Cantonese (Simplified, China)",
958
+ "yue-Hant": "Cantonese (Traditional)",
959
+ "yue-Hant-HK": "Cantonese (Traditional, Hong Kong SAR China)",
960
+ "za": "Zhuang",
961
+ "zea": "Zeeuws",
962
+ "zgh": "Standard Moroccan Tamazight",
963
+ "zgh-MA": "Standard Moroccan Tamazight (Morocco)",
964
+ "zh": "Chinese",
965
+ "zh-CN": "Chinese (Mandarin, China)",
966
+ "zh-HK": "Cantonese (Hong Kong)",
967
+ "zh-Hans": "Chinese (Simplified)",
968
+ "zh-Hans-CN": "Chinese (Simplified, China)",
969
+ "zh-Hans-HK": "Chinese (Simplified, Hong Kong SAR China)",
970
+ "zh-Hans-MO": "Chinese (Simplified, Macao SAR China)",
971
+ "zh-Hans-SG": "Chinese (Simplified, Singapore)",
972
+ "zh-Hant": "Chinese (Traditional)",
973
+ "zh-Hant-HK": "Chinese (Traditional, Hong Kong SAR China)",
974
+ "zh-Hant-MO": "Chinese (Traditional, Macao SAR China)",
975
+ "zh-Hant-TW": "Chinese (Traditional, Taiwan)",
976
+ "zh-Latn": "Chinese (Latin)",
977
+ "zh-TW": "Chinese (Mandarin, Taiwan)",
978
+ "zu": "Zulu",
979
+ "zu-ZA": "Zulu (South Africa)",
980
+ "zza": "Zaza"
981
+ }