source: trunk/Packages/Common/Languages.pas

Last change on this file was 459, checked in by chronos, 6 months ago
  • Fixed: Chinese language list selection in Settings window didn't work correctly.
File size: 11.2 KB
Line 
1unit Languages;
2
3interface
4
5uses
6 Classes, SysUtils, Generics.Collections;
7
8type
9 TLanguage = class
10 Name: string;
11 Code: string;
12 Available: Boolean;
13 end;
14
15 { TLanguages }
16
17 TLanguages = class(TObjectList<TLanguage>)
18 function SearchByCode(ACode: string): TLanguage;
19 procedure AddNew(Code: string; Name: string);
20 constructor Create(FreeObjects: Boolean = True);
21 end;
22
23
24resourcestring
25 SLangAuto = 'Automatic';
26 SLang_aa = 'Afar';
27 SLang_ab = 'Abkhazian';
28 SLang_ae = 'Avestan';
29 SLang_af = 'Afrikaans';
30 SLang_ak = 'Akan';
31 SLang_am = 'Amharic';
32 SLang_an = 'Aragonese';
33 SLang_ar = 'Arabic';
34 SLang_as = 'Assamese';
35 SLang_av = 'Avaric';
36 SLang_ay = 'Aymara';
37 SLang_az = 'Azerbaijani';
38 SLang_ba = 'Bashkir';
39 SLang_be = 'Belarusian';
40 SLang_bg = 'Bulgarian';
41 SLang_bh = 'Bihari';
42 SLang_bi = 'Bislama';
43 SLang_bm = 'Bambara';
44 SLang_bn = 'Bengali';
45 SLang_bo = 'Tibetan';
46 SLang_br = 'Breton';
47 SLang_bs = 'Bosnian';
48 SLang_ca = 'Catalan';
49 SLang_ce = 'Chechen';
50 SLang_ch = 'Chamorro';
51 SLang_co = 'Corsican';
52 SLang_cr = 'Cree';
53 SLang_cs = 'Czech';
54 SLang_cv = 'Chuvash';
55 SLang_cy = 'Welsh';
56 SLang_da = 'Danish';
57 SLang_de = 'German';
58 SLang_de_AT = 'Austrian German';
59 SLang_de_CH = 'Swiss German';
60 SLang_dv = 'Divehi';
61 SLang_dz = 'Dzongkha';
62 SLang_ee = 'Ewe';
63 SLang_el = 'Greek';
64 SLang_en = 'English';
65 SLang_en_AU = 'Australian English';
66 SLang_en_CA = 'Canadian English';
67 SLang_en_GB = 'British English';
68 SLang_en_US = 'American English';
69 SLang_eo = 'Esperanto';
70 SLang_es = 'Spanish';
71 SLang_et = 'Estonian';
72 SLang_eu = 'Basque';
73 SLang_fa = 'Persian';
74 SLang_ff = 'Fulah';
75 SLang_fi = 'Finnish';
76 SLang_fj = 'Fijian';
77 SLang_fo = 'Faroese';
78 SLang_fr = 'French';
79 SLang_fr_BE = 'Walloon';
80 SLang_fy = 'Frisian';
81 SLang_ga = 'Irish';
82 SLang_gd = 'Gaelic';
83 SLang_gl = 'Gallegan';
84 SLang_gn = 'Guarani';
85 SLang_gu = 'Gujarati';
86 SLang_gv = 'Manx';
87 SLang_ha = 'Hausa';
88 SLang_he = 'Hebrew';
89 SLang_hi = 'Hindi';
90 SLang_ho = 'Hiri Motu';
91 SLang_hr = 'Croatian';
92 SLang_ht = 'Haitian';
93 SLang_hu = 'Hungarian';
94 SLang_hy = 'Armenian';
95 SLang_hz = 'Herero';
96 SLang_ia = 'Interlingua';
97 SLang_id = 'Indonesian';
98 SLang_ie = 'Interlingue';
99 SLang_ig = 'Igbo';
100 SLang_ii = 'Sichuan Yi';
101 SLang_ik = 'Inupiaq';
102 SLang_io = 'Ido';
103 SLang_is = 'Icelandic';
104 SLang_it = 'Italian';
105 SLang_iu = 'Inuktitut';
106 SLang_ja = 'Japanese';
107 SLang_jv = 'Javanese';
108 SLang_ka = 'Georgian';
109 SLang_kg = 'Kongo';
110 SLang_ki = 'Kikuyu';
111 SLang_kj = 'Kuanyama';
112 SLang_kk = 'Kazakh';
113 SLang_kl = 'Greenlandic';
114 SLang_km = 'Khmer';
115 SLang_kn = 'Kannada';
116 SLang_ko = 'Korean';
117 SLang_kr = 'Kanuri';
118 SLang_ks = 'Kashmiri';
119 SLang_ku = 'Kurdish';
120 SLang_kw = 'Cornish';
121 SLang_kv = 'Komi';
122 SLang_ky = 'Kirghiz';
123 SLang_la = 'Latin';
124 SLang_lb = 'Luxembourgish';
125 SLang_lg = 'Ganda';
126 SLang_li = 'Limburgan';
127 SLang_ln = 'Lingala';
128 SLang_lo = 'Lao';
129 SLang_lt = 'Lithuanian';
130 SLang_lu = 'Luba-Katanga';
131 SLang_lv = 'Latvian';
132 SLang_mg = 'Malagasy';
133 SLang_mh = 'Marshallese';
134 SLang_mi = 'Maori';
135 SLang_mk = 'Macedonian';
136 SLang_ml = 'Malayalam';
137 SLang_mn = 'Mongolian';
138 SLang_mo = 'Moldavian';
139 SLang_mr = 'Marathi';
140 SLang_ms = 'Malay';
141 SLang_mt = 'Maltese';
142 SLang_my = 'Burmese';
143 SLang_na = 'Nauru';
144 SLang_nb = 'Norwegian Bokmaal';
145 SLang_nd = 'Ndebele, North';
146 SLang_ne = 'Nepali';
147 SLang_ng = 'Ndonga';
148 SLang_nl = 'Dutch';
149 SLang_nl_BE = 'Flemish';
150 SLang_nn = 'Norwegian Nynorsk';
151 SLang_no = 'Norwegian';
152 SLang_nr = 'Ndebele, South';
153 SLang_nv = 'Navajo';
154 SLang_ny = 'Chichewa';
155 SLang_oc = 'Occitan';
156 SLang_oj = 'Ojibwa';
157 SLang_om = 'Oromo';
158 SLang_or = 'Oriya';
159 SLang_os = 'Ossetian';
160 SLang_pa = 'Panjabi';
161 SLang_pi = 'Pali';
162 SLang_pl = 'Polish';
163 SLang_ps = 'Pushto';
164 SLang_pt = 'Portuguese';
165 SLang_pt_BR = 'Brazilian Portuguese';
166 SLang_qu = 'Quechua';
167 SLang_rm = 'Raeto-Romance';
168 SLang_rn = 'Rundi';
169 SLang_ro = 'Romanian';
170 SLang_ru = 'Russian';
171 SLang_rw = 'Kinyarwanda';
172 SLang_sa = 'Sanskrit';
173 SLang_sc = 'Sardinian';
174 SLang_sd = 'Sindhi';
175 SLang_se = 'Northern Sami';
176 SLang_sg = 'Sango';
177 SLang_si = 'Sinhalese';
178 SLang_sk = 'Slovak';
179 SLang_sl = 'Slovenian';
180 SLang_sm = 'Samoan';
181 SLang_sn = 'Shona';
182 SLang_so = 'Somali';
183 SLang_sq = 'Albanian';
184 SLang_sr = 'Serbian';
185 SLang_ss = 'Swati';
186 SLang_st = 'Sotho, Southern';
187 SLang_su = 'Sundanese';
188 SLang_sv = 'Swedish';
189 SLang_sw = 'Swahili';
190 SLang_ta = 'Tamil';
191 SLang_te = 'Telugu';
192 SLang_tg = 'Tajik';
193 SLang_th = 'Thai';
194 SLang_ti = 'Tigrinya';
195 SLang_tk = 'Turkmen';
196 SLang_tl = 'Tagalog';
197 SLang_tn = 'Tswana';
198 SLang_to = 'Tonga';
199 SLang_tr = 'Turkish';
200 SLang_ts = 'Tsonga';
201 SLang_tt = 'Tatar';
202 SLang_tw = 'Twi';
203 SLang_ty = 'Tahitian';
204 SLang_ug = 'Uighur';
205 SLang_uk = 'Ukrainian';
206 SLang_ur = 'Urdu';
207 SLang_uz = 'Uzbek';
208 SLang_ve = 'Venda';
209 SLang_vi = 'Vietnamese';
210 SLang_vo = 'Volapuk';
211 SLang_wa = 'Walloon';
212 SLang_wo = 'Wolof';
213 SLang_xh = 'Xhosa';
214 SLang_yi = 'Yiddish';
215 SLang_yo = 'Yoruba';
216 SLang_za = 'Zhuang';
217 SLang_zh = 'Chinese';
218 SLang_zh_Hans = 'Simplified Chinese';
219 SLang_zh_Hant = 'Traditional Chinese';
220 SLang_zu = 'Zulu';
221
222
223implementation
224
225
226{ TLanguages }
227
228function TLanguages.SearchByCode(ACode: string): TLanguage;
229var
230 I: Integer;
231begin
232 I := 0;
233 while (I < Count) and (Items[I].Code <> ACode) do Inc(I);
234 if I < Count then Result := Items[I]
235 else Result := nil;
236end;
237
238procedure TLanguages.AddNew(Code: string; Name: string);
239var
240 NewItem: TLanguage;
241begin
242 NewItem := TLanguage.Create;
243 NewItem.Name := Name;
244 NewItem.Code := Code;
245 Add(NewItem);
246end;
247
248constructor TLanguages.Create(FreeObjects: Boolean);
249begin
250 inherited;
251 AddNew('', SLangAuto);
252 AddNew('aa', SLang_aa);
253 AddNew('ab', SLang_ab);
254 AddNew('ae', SLang_ae);
255 AddNew('af', SLang_af);
256 AddNew('ak', SLang_ak);
257 AddNew('am', SLang_am);
258 AddNew('an', SLang_an);
259 AddNew('ar', SLang_ar);
260 AddNew('as', SLang_as);
261 AddNew('av', SLang_av);
262 AddNew('ay', SLang_ay);
263 AddNew('az', SLang_az);
264 AddNew('ba', SLang_ba);
265 AddNew('be', SLang_be);
266 AddNew('bg', SLang_bg);
267 AddNew('bh', SLang_bh);
268 AddNew('bi', SLang_bi);
269 AddNew('bm', SLang_bm);
270 AddNew('bn', SLang_bn);
271 AddNew('bo', SLang_bo);
272 AddNew('br', SLang_br);
273 AddNew('bs', SLang_bs);
274 AddNew('ca', SLang_ca);
275 AddNew('ce', SLang_ce);
276 AddNew('ch', SLang_ch);
277 AddNew('co', SLang_co);
278 AddNew('cr', SLang_cr);
279 AddNew('cs', SLang_cs);
280 AddNew('cv', SLang_cv);
281 AddNew('cy', SLang_cy);
282 AddNew('da', SLang_da);
283 AddNew('de', SLang_de);
284 AddNew('de_AT', SLang_de_AT);
285 AddNew('de_CH', SLang_de_CH);
286 AddNew('dv', SLang_dv);
287 AddNew('dz', SLang_dz);
288 AddNew('ee', SLang_ee);
289 AddNew('el', SLang_el);
290 AddNew('en', SLang_en);
291 AddNew('en_AU', SLang_en_AU);
292 AddNew('en_CA', SLang_en_CA);
293 AddNew('en_GB', SLang_en_GB);
294 AddNew('en_US', SLang_en_US);
295 AddNew('eo', SLang_eo);
296 AddNew('es', SLang_es);
297 AddNew('et', SLang_et);
298 AddNew('eu', SLang_eu);
299 AddNew('fa', SLang_fa);
300 AddNew('ff', SLang_ff);
301 AddNew('fi', SLang_fi);
302 AddNew('fj', SLang_fj);
303 AddNew('fo', SLang_fo);
304 AddNew('fr', SLang_fr);
305 AddNew('fr_BE', SLang_fr_BE);
306 AddNew('fy', SLang_fy);
307 AddNew('ga', SLang_ga);
308 AddNew('gd', SLang_gd);
309 AddNew('gl', SLang_gl);
310 AddNew('gn', SLang_gn);
311 AddNew('gu', SLang_gu);
312 AddNew('gv', SLang_gv);
313 AddNew('ha', SLang_ha);
314 AddNew('he', SLang_he);
315 AddNew('hi', SLang_hi);
316 AddNew('ho', SLang_ho);
317 AddNew('hr', SLang_hr);
318 AddNew('ht', SLang_ht);
319 AddNew('hu', SLang_hu);
320 AddNew('hy', SLang_hy);
321 AddNew('hz', SLang_hz);
322 AddNew('ia', SLang_ia);
323 AddNew('id', SLang_id);
324 AddNew('ie', SLang_ie);
325 AddNew('ig', SLang_ig);
326 AddNew('ii', SLang_ii);
327 AddNew('ik', SLang_ik);
328 AddNew('io', SLang_io);
329 AddNew('is', SLang_is);
330 AddNew('it', SLang_it);
331 AddNew('iu', SLang_iu);
332 AddNew('ja', SLang_ja);
333 AddNew('jv', SLang_jv);
334 AddNew('ka', SLang_ka);
335 AddNew('kg', SLang_kg);
336 AddNew('ki', SLang_ki);
337 AddNew('kj', SLang_kj);
338 AddNew('kk', SLang_kk);
339 AddNew('kl', SLang_kl);
340 AddNew('km', SLang_km);
341 AddNew('kn', SLang_kn);
342 AddNew('ko', SLang_ko);
343 AddNew('kr', SLang_kr);
344 AddNew('ks', SLang_ks);
345 AddNew('ku', SLang_ku);
346 AddNew('kw', SLang_kw);
347 AddNew('kv', SLang_kv);
348 AddNew('ky', SLang_ky);
349 AddNew('la', SLang_la);
350 AddNew('lb', SLang_lb);
351 AddNew('lg', SLang_lg);
352 AddNew('li', SLang_li);
353 AddNew('ln', SLang_ln);
354 AddNew('lo', SLang_lo);
355 AddNew('lt', SLang_lt);
356 AddNew('lu', SLang_lu);
357 AddNew('lv', SLang_lv);
358 AddNew('mg', SLang_mg);
359 AddNew('mh', SLang_mh);
360 AddNew('mi', SLang_mi);
361 AddNew('mk', SLang_mk);
362 AddNew('ml', SLang_ml);
363 AddNew('mn', SLang_mn);
364 AddNew('mo', SLang_mo);
365 AddNew('mr', SLang_mr);
366 AddNew('ms', SLang_ms);
367 AddNew('mt', SLang_mt);
368 AddNew('my', SLang_my);
369 AddNew('na', SLang_na);
370 AddNew('nb', SLang_nb);
371 AddNew('nd', SLang_nd);
372 AddNew('ne', SLang_ne);
373 AddNew('ng', SLang_ng);
374 AddNew('nl', SLang_nl);
375 AddNew('nl_BE', SLang_nl_BE);
376 AddNew('nn', SLang_nn);
377 AddNew('no', SLang_no);
378 AddNew('nr', SLang_nr);
379 AddNew('nv', SLang_nv);
380 AddNew('ny', SLang_ny);
381 AddNew('oc', SLang_oc);
382 AddNew('oj', SLang_oj);
383 AddNew('om', SLang_om);
384 AddNew('or', SLang_or);
385 AddNew('os', SLang_os);
386 AddNew('pa', SLang_pa);
387 AddNew('pi', SLang_pi);
388 AddNew('pl', SLang_pl);
389 AddNew('ps', SLang_ps);
390 AddNew('pt', SLang_pt);
391 AddNew('pt_BR', SLang_pt_BR);
392 AddNew('qu', SLang_qu);
393 AddNew('rm', SLang_rm);
394 AddNew('rn', SLang_rn);
395 AddNew('ro', SLang_ro);
396 AddNew('ru', SLang_ru);
397 AddNew('rw', SLang_rw);
398 AddNew('sa', SLang_sa);
399 AddNew('sc', SLang_sc);
400 AddNew('sd', SLang_sd);
401 AddNew('se', SLang_se);
402 AddNew('sg', SLang_sg);
403 AddNew('si', SLang_si);
404 AddNew('sk', SLang_sk);
405 AddNew('sl', SLang_sl);
406 AddNew('sm', SLang_sm);
407 AddNew('sn', SLang_sn);
408 AddNew('so', SLang_so);
409 AddNew('sq', SLang_sq);
410 AddNew('sr', SLang_sr);
411 AddNew('ss', SLang_ss);
412 AddNew('st', SLang_st);
413 AddNew('su', SLang_su);
414 AddNew('sv', SLang_sv);
415 AddNew('sw', SLang_sw);
416 AddNew('ta', SLang_ta);
417 AddNew('te', SLang_te);
418 AddNew('tg', SLang_tg);
419 AddNew('th', SLang_th);
420 AddNew('ti', SLang_ti);
421 AddNew('tk', SLang_tk);
422 AddNew('tl', SLang_tl);
423 AddNew('tn', SLang_tn);
424 AddNew('to', SLang_to);
425 AddNew('tr', SLang_tr);
426 AddNew('ts', SLang_ts);
427 AddNew('tt', SLang_tt);
428 AddNew('tw', SLang_tw);
429 AddNew('ty', SLang_ty);
430 AddNew('ug', SLang_ug);
431 AddNew('uk', SLang_uk);
432 AddNew('ur', SLang_ur);
433 AddNew('uz', SLang_uz);
434 AddNew('ve', SLang_ve);
435 AddNew('vi', SLang_vi);
436 AddNew('vo', SLang_vo);
437 AddNew('wa', SLang_wa);
438 AddNew('wo', SLang_wo);
439 AddNew('xh', SLang_xh);
440 AddNew('yi', SLang_yi);
441 AddNew('yo', SLang_yo);
442 AddNew('za', SLang_za);
443 AddNew('zh', SLang_zh);
444 AddNew('zh-Hant', SLang_zh_Hant);
445 AddNew('zh-Hans', SLang_zh_Hans);
446 AddNew('zu', SLang_zu);
447end;
448
449end.
Note: See TracBrowser for help on using the repository browser.