EN
JavaScript - list of most popular languages with codes, english names and associated country flags
1 points
In this article, we would like to present simple JavaScript version of list for most popular languages with codes, english names and associated flags. Some languages doesn't have country flags so it is necessary to use dedicated language flag.
In below code, when flag
property starts with:
country-
- it means we can use country flag to represent language (last 2 letters represent ISO 3166 country code, that full list as JavaScript class can be found here),language-
- it means there should be used unique flag that represents language.
Language list object example:
xxxxxxxxxx
1
var Languages = new function() {
2
3
// https://wiki.openstreetmap.org/wiki/Nominatim/Country_Codes
4
5
var list = [
6
{ name: 'Afar', code: 'aa', flag: 'country-dj' },
7
{ name: 'Abkhazian', code: 'ab', flag: 'country-ge' },
8
{ name: 'Afrikaans', code: 'af', flag: 'country-za' },
9
{ name: 'Akan', code: 'ak', flag: 'country-gh' },
10
{ name: 'Amharic', code: 'am', flag: 'country-et' },
11
{ name: 'Arabic', code: 'ar', flag: 'country-sa' },
12
{ name: 'Assamese', code: 'as', flag: 'country-in' },
13
{ name: 'Awadhi', code: 'aw', flag: 'country-in' },
14
{ name: 'Aymara', code: 'ay', flag: 'country-bo' },
15
{ name: 'Azerbaijani', code: 'az', flag: 'country-az' },
16
{ name: 'Bhojpuri', code: 'b1', flag: 'country-in' },
17
{ name: 'Maithili', code: 'b2', flag: 'country-np' },
18
{ name: 'Bashkir', code: 'ba', flag: 'country-ru' },
19
{ name: 'Belarussian', code: 'be', flag: 'country-by' },
20
{ name: 'Bulgarian', code: 'bg', flag: 'country-bg' },
21
{ name: 'Bihari', code: 'bh', flag: 'country-in' },
22
{ name: 'Bislama', code: 'bi', flag: 'country-vu' },
23
{ name: 'Balochi', code: 'bl', flag: 'country-pk' },
24
{ name: 'Bengali', code: 'bn', flag: 'country-bd' },
25
{ name: 'Tibetan', code: 'bo', flag: 'country-cn' },
26
{ name: 'Breton', code: 'br', flag: 'country-fr' },
27
{ name: 'Catalan', code: 'ca', flag: 'language-ca' }, // language without country flag
28
{ name: 'Cebuano', code: 'cb', flag: 'country-ph' },
29
{ name: 'Chechen', code: 'ce', flag: 'language-ce' }, // language without country flag
30
{ name: 'Corsican', code: 'co', flag: 'country-fr' },
31
{ name: 'Czech', code: 'cs', flag: 'country-cz' },
32
{ name: 'Welsh', code: 'cy', flag: 'language-cy' }, // language without country flag
33
{ name: 'Danish', code: 'da', flag: 'country-dk' },
34
{ name: 'German', code: 'de', flag: 'country-de' },
35
{ name: 'Dakhini', code: 'dk', flag: 'country-in' },
36
{ name: 'Bhutani', code: 'dz', flag: 'country-bt' },
37
{ name: 'Greek', code: 'el', flag: 'country-gr' },
38
{ name: 'English', code: 'en', flag: 'country-gb' },
39
{ name: 'Esperanto', code: 'eo', flag: 'language-eo' }, // language without country flag
40
{ name: 'Spanish', code: 'es', flag: 'country-es' },
41
{ name: 'Estonian', code: 'et', flag: 'country-ee' },
42
{ name: 'Basque', code: 'eu', flag: 'language-eu' }, // language without country flag
43
{ name: 'Persian', code: 'fa', flag: 'country-ir' },
44
{ name: 'Finnish', code: 'fi', flag: 'country-fi' },
45
{ name: 'Fiji', code: 'fj', flag: 'country-fj' },
46
{ name: 'Faeroese', code: 'fo', flag: 'country-fo' },
47
{ name: 'French', code: 'fr', flag: 'country-fr' },
48
{ name: 'Frisian', code: 'fy', flag: 'country-nl' },
49
{ name: 'Irish', code: 'ga', flag: 'country-ie' },
50
{ name: 'Scottish Gaelic', code: 'gd', flag: 'language-gd' }, // language without country flag
51
{ name: 'Galician', code: 'gl', flag: 'language-gl' }, // language without country flag
52
{ name: 'Guarani', code: 'gn', flag: 'country-py' },
53
{ name: 'Gujarati', code: 'gu', flag: 'country-in' },
54
{ name: 'Hausa', code: 'ha', flag: 'country-ne' },
55
{ name: 'Hindi', code: 'hi', flag: 'country-in' },
56
{ name: 'Croatian', code: 'hr', flag: 'country-hr' },
57
{ name: 'Haitian Creole', code: 'ht', flag: 'country-ht' },
58
{ name: 'Hungarian', code: 'hu', flag: 'country-hu' },
59
{ name: 'Armenian', code: 'hy', flag: 'country-am' },
60
{ name: 'Interlingua', code: 'ia', flag: 'language-ia' }, // language without country flag
61
{ name: 'Interlingue', code: 'ie', flag: 'language-ie' }, // language without country flag
62
{ name: 'Inupiak', code: 'ik', flag: 'language-ik' }, // language without country flag
63
{ name: 'Indonesian', code: 'in', flag: 'country-id' },
64
{ name: 'Icelandic', code: 'is', flag: 'country-is' },
65
{ name: 'Italian', code: 'it', flag: 'country-it' },
66
{ name: 'Hebrew', code: 'iw', flag: 'country-il' },
67
{ name: 'Japanese', code: 'ja', flag: 'country-jp' },
68
{ name: 'Yiddish', code: 'ji', flag: 'language-ji' }, // language without country flag
69
{ name: 'Javanese', code: 'jw', flag: 'country-id' },
70
{ name: 'Georgian', code: 'ka', flag: 'country-ge' },
71
{ name: 'Kabyle', code: 'kb', flag: 'country-dz' },
72
{ name: 'Konkani', code: 'ki', flag: 'country-in' },
73
{ name: 'Kazakh', code: 'kk', flag: 'country-kz' },
74
{ name: 'Greenlandic', code: 'kl', flag: 'country-gl' },
75
{ name: 'Khmer', code: 'km', flag: 'country-kh' },
76
{ name: 'Kannada', code: 'kn', flag: 'country-in' },
77
{ name: 'Korean', code: 'ko', flag: 'country-kr' },
78
{ name: 'Kashmiri', code: 'ks', flag: 'country-in' },
79
{ name: 'Kurdish', code: 'ku', flag: 'country-iq' },
80
{ name: 'Kirghiz', code: 'ky', flag: 'country-kg' },
81
{ name: 'Latin', code: 'la', flag: 'country-va' },
82
{ name: 'Luxembourgish', code: 'lb', flag: 'country-lu' },
83
{ name: 'Lombard', code: 'lm', flag: 'country-it' },
84
{ name: 'Lingala', code: 'ln', flag: 'country-cg' },
85
{ name: 'Laothian', code: 'lo', flag: 'country-la' },
86
{ name: 'Lithuanian', code: 'lt', flag: 'country-lt' },
87
{ name: 'Latvian', code: 'lv', flag: 'country-lv' },
88
{ name: 'Malagasy', code: 'mg', flag: 'country-mg' },
89
{ name: 'Maori', code: 'mi', flag: 'country-nz' },
90
{ name: 'Macedonian', code: 'mk', flag: 'country-mk' },
91
{ name: 'Malayalam', code: 'ml', flag: 'country-in' },
92
{ name: 'Mongolian', code: 'mn', flag: 'country-mn' },
93
{ name: 'Moldavian', code: 'mo', flag: 'country-md' },
94
{ name: 'Marathi', code: 'mr', flag: 'country-in' },
95
{ name: 'Malay', code: 'ms', flag: 'country-my' },
96
{ name: 'Maltese', code: 'mt', flag: 'country-mt' },
97
{ name: 'Makhuwa', code: 'mu', flag: 'country-mz' },
98
{ name: 'Marwari', code: 'mw', flag: 'country-in' },
99
{ name: 'Burmese', code: 'my', flag: 'country-mm' },
100
{ name: 'Nauru', code: 'na', flag: 'country-nr' },
101
{ name: 'Nepali', code: 'ne', flag: 'country-np' },
102
{ name: 'Dutch', code: 'nl', flag: 'country-nl' },
103
{ name: 'Norwegian', code: 'no', flag: 'country-no' },
104
{ name: 'Occitan', code: 'oc', flag: 'country-fr' },
105
{ name: 'Oromo', code: 'om', flag: 'country-et' },
106
{ name: 'Oriya', code: 'or', flag: 'country-in' },
107
{ name: 'Punjabi', code: 'pa', flag: 'country-pk' },
108
{ name: 'Polish', code: 'pl', flag: 'country-pl' },
109
{ name: 'Pashto', code: 'ps', flag: 'country-af' },
110
{ name: 'Portuguese', code: 'pt', flag: 'country-pt' },
111
{ name: 'Quechua', code: 'qu', flag: 'country-pe' },
112
{ name: 'Rifian', code: 'ri', flag: 'country-ma' },
113
{ name: 'Rhaeto-Romance', code: 'rm', flag: 'country-ch' },
114
{ name: 'Kirundi', code: 'rn', flag: 'country-bi' },
115
{ name: 'Romanian', code: 'ro', flag: 'country-ro' },
116
{ name: 'Russian', code: 'ru', flag: 'country-ru' },
117
{ name: 'Kinyarwanda', code: 'rw', flag: 'country-rw' },
118
{ name: 'Sanskrit', code: 'sa', flag: 'country-in' },
119
{ name: 'Sindhi', code: 'sd', flag: 'country-pk' },
120
{ name: 'Sangro', code: 'sg', flag: 'country-cf' },
121
{ name: 'Serbo-Croatian', code: 'sh', flag: 'country-rs' },
122
{ name: 'Sinhalese', code: 'si', flag: 'country-lk' },
123
{ name: 'Slovak', code: 'sk', flag: 'country-sk' },
124
{ name: 'Slovenian', code: 'sl', flag: 'country-si' },
125
{ name: 'Samoan', code: 'sm', flag: 'country-ws' },
126
{ name: 'Shona', code: 'sn', flag: 'country-zw' },
127
{ name: 'Somali', code: 'so', flag: 'country-so' },
128
{ name: 'Albanian', code: 'sq', flag: 'country-al' },
129
{ name: 'Serbian', code: 'sr', flag: 'country-rs' },
130
{ name: 'Siswati', code: 'ss', flag: 'country-sz' },
131
{ name: 'Sesotho', code: 'st', flag: 'country-ls' },
132
{ name: 'Sundanese', code: 'su', flag: 'country-id' },
133
{ name: 'Swedish', code: 'sv', flag: 'country-se' },
134
{ name: 'Swahili', code: 'sw', flag: 'country-ke' },
135
{ name: 'Tamil', code: 'ta', flag: 'country-lk' },
136
{ name: 'Telugu', code: 'te', flag: 'country-in' },
137
{ name: 'Tajik', code: 'tg', flag: 'country-tj' },
138
{ name: 'Thai', code: 'th', flag: 'country-th' },
139
{ name: 'Tigrinya', code: 'ti', flag: 'country-er' },
140
{ name: 'Turkmen', code: 'tk', flag: 'country-tm' },
141
{ name: 'Tagalog', code: 'tl', flag: 'country-ph' },
142
{ name: 'Tuareg', code: 'tm', flag: 'language-tm' }, // language without country flag
143
{ name: 'Setswana', code: 'tn', flag: 'country-bw' },
144
{ name: 'Tonga', code: 'to', flag: 'country-to' },
145
{ name: 'Turkish', code: 'tr', flag: 'country-tr' },
146
{ name: 'Tsonga', code: 'ts', flag: 'country-za' },
147
{ name: 'Tatar', code: 'tt', flag: 'country-ru' },
148
{ name: 'Twi', code: 'tw', flag: 'country-gh' },
149
{ name: 'Tamazight', code: 'tz', flag: 'language-tz' }, // language without country flag
150
{ name: 'Uyghur', code: 'ug', flag: 'country-cn' },
151
{ name: 'Ukrainian', code: 'uk', flag: 'country-ua' },
152
{ name: 'Urdu', code: 'ur', flag: 'country-pk' },
153
{ name: 'Uzbek', code: 'uz', flag: 'country-uz' },
154
{ name: 'Vietnamese', code: 'vi', flag: 'country-vn' },
155
{ name: 'Volapuk', code: 'vo', flag: 'language-vo' }, // language without country flag
156
{ name: 'Wolof', code: 'wo', flag: 'country-sn' },
157
{ name: 'Xhosa', code: 'xh', flag: 'country-za' },
158
{ name: 'Yoruba', code: 'yo', flag: 'country-ng' },
159
{ name: 'Chinese', code: 'zh', flag: 'country-cn' },
160
{ name: 'Zulu', code: 'zu', flag: 'country-za' }
161
];
162
163
var codes = {};
164
165
for (var i = 0; i < list.length; ++i) {
166
var entry = list[i];
167
codes[entry.code] = entry;
168
}
169
170
// public methods
171
172
this.getList= function() {
173
return list;
174
};
175
176
this.getEntry = function(code) {
177
return codes[code] || null;
178
};
179
};
180
181
// Example usage:
182
183
var pl = Languages.getEntry('pl');
184
var en = Languages.getEntry('en');
185
var ja = Languages.getEntry('ja');
186
187
console.log(pl.name); // Polish
188
console.log(en.name); // English
189
console.log(ja.name); // Japanese