source: trunk/Packages/Common/ULanguages.pas

Last change on this file was 10, checked in by chronos, 2 years ago
  • Modified: General UTest unit moved into Common package.
File size: 11.0 KB
Line 
1unit ULanguages;
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_zu = 'Zulu';
219
220implementation
221
222
223{ TLanguages }
224
225function TLanguages.SearchByCode(ACode: string): TLanguage;
226var
227 I: Integer;
228begin
229 I := 0;
230 while (I < Count) and (TLanguage(Items[I]).Code < ACode) do Inc(I);
231 if I < Count then Result := TLanguage(Items[I])
232 else Result := nil;
233end;
234
235procedure TLanguages.AddNew(Code: string; Name: string);
236var
237 NewItem: TLanguage;
238begin
239 NewItem := TLanguage.Create;
240 NewItem.Name := Name;
241 NewItem.Code := Code;
242 Add(NewItem);
243end;
244
245constructor TLanguages.Create(FreeObjects: Boolean);
246begin
247 inherited;
248 AddNew('', SLangAuto);
249 AddNew('aa', SLang_aa);
250 AddNew('ab', SLang_ab);
251 AddNew('ae', SLang_ae);
252 AddNew('af', SLang_af);
253 AddNew('ak', SLang_ak);
254 AddNew('am', SLang_am);
255 AddNew('an', SLang_an);
256 AddNew('ar', SLang_ar);
257 AddNew('as', SLang_as);
258 AddNew('av', SLang_av);
259 AddNew('ay', SLang_ay);
260 AddNew('az', SLang_az);
261 AddNew('ba', SLang_ba);
262 AddNew('be', SLang_be);
263 AddNew('bg', SLang_bg);
264 AddNew('bh', SLang_bh);
265 AddNew('bi', SLang_bi);
266 AddNew('bm', SLang_bm);
267 AddNew('bn', SLang_bn);
268 AddNew('bo', SLang_bo);
269 AddNew('br', SLang_br);
270 AddNew('bs', SLang_bs);
271 AddNew('ca', SLang_ca);
272 AddNew('ce', SLang_ce);
273 AddNew('ch', SLang_ch);
274 AddNew('co', SLang_co);
275 AddNew('cr', SLang_cr);
276 AddNew('cs', SLang_cs);
277 AddNew('cv', SLang_cv);
278 AddNew('cy', SLang_cy);
279 AddNew('da', SLang_da);
280 AddNew('de', SLang_de);
281 AddNew('de_AT', SLang_de_AT);
282 AddNew('de_CH', SLang_de_CH);
283 AddNew('dv', SLang_dv);
284 AddNew('dz', SLang_dz);
285 AddNew('ee', SLang_ee);
286 AddNew('el', SLang_el);
287 AddNew('en', SLang_en);
288 AddNew('en_AU', SLang_en_AU);
289 AddNew('en_CA', SLang_en_CA);
290 AddNew('en_GB', SLang_en_GB);
291 AddNew('en_US', SLang_en_US);
292 AddNew('eo', SLang_eo);
293 AddNew('es', SLang_es);
294 AddNew('et', SLang_et);
295 AddNew('eu', SLang_eu);
296 AddNew('fa', SLang_fa);
297 AddNew('ff', SLang_ff);
298 AddNew('fi', SLang_fi);
299 AddNew('fj', SLang_fj);
300 AddNew('fo', SLang_fo);
301 AddNew('fr', SLang_fr);
302 AddNew('fr_BE', SLang_fr_BE);
303 AddNew('fy', SLang_fy);
304 AddNew('ga', SLang_ga);
305 AddNew('gd', SLang_gd);
306 AddNew('gl', SLang_gl);
307 AddNew('gn', SLang_gn);
308 AddNew('gu', SLang_gu);
309 AddNew('gv', SLang_gv);
310 AddNew('ha', SLang_ha);
311 AddNew('he', SLang_he);
312 AddNew('hi', SLang_hi);
313 AddNew('ho', SLang_ho);
314 AddNew('hr', SLang_hr);
315 AddNew('ht', SLang_ht);
316 AddNew('hu', SLang_hu);
317 AddNew('hy', SLang_hy);
318 AddNew('hz', SLang_hz);
319 AddNew('ia', SLang_ia);
320 AddNew('id', SLang_id);
321 AddNew('ie', SLang_ie);
322 AddNew('ig', SLang_ig);
323 AddNew('ii', SLang_ii);
324 AddNew('ik', SLang_ik);
325 AddNew('io', SLang_io);
326 AddNew('is', SLang_is);
327 AddNew('it', SLang_it);
328 AddNew('iu', SLang_iu);
329 AddNew('ja', SLang_ja);
330 AddNew('jv', SLang_jv);
331 AddNew('ka', SLang_ka);
332 AddNew('kg', SLang_kg);
333 AddNew('ki', SLang_ki);
334 AddNew('kj', SLang_kj);
335 AddNew('kk', SLang_kk);
336 AddNew('kl', SLang_kl);
337 AddNew('km', SLang_km);
338 AddNew('kn', SLang_kn);
339 AddNew('ko', SLang_ko);
340 AddNew('kr', SLang_kr);
341 AddNew('ks', SLang_ks);
342 AddNew('ku', SLang_ku);
343 AddNew('kw', SLang_kw);
344 AddNew('kv', SLang_kv);
345 AddNew('ky', SLang_ky);
346 AddNew('la', SLang_la);
347 AddNew('lb', SLang_lb);
348 AddNew('lg', SLang_lg);
349 AddNew('li', SLang_li);
350 AddNew('ln', SLang_ln);
351 AddNew('lo', SLang_lo);
352 AddNew('lt', SLang_lt);
353 AddNew('lu', SLang_lu);
354 AddNew('lv', SLang_lv);
355 AddNew('mg', SLang_mg);
356 AddNew('mh', SLang_mh);
357 AddNew('mi', SLang_mi);
358 AddNew('mk', SLang_mk);
359 AddNew('ml', SLang_ml);
360 AddNew('mn', SLang_mn);
361 AddNew('mo', SLang_mo);
362 AddNew('mr', SLang_mr);
363 AddNew('ms', SLang_ms);
364 AddNew('mt', SLang_mt);
365 AddNew('my', SLang_my);
366 AddNew('na', SLang_na);
367 AddNew('nb', SLang_nb);
368 AddNew('nd', SLang_nd);
369 AddNew('ne', SLang_ne);
370 AddNew('ng', SLang_ng);
371 AddNew('nl', SLang_nl);
372 AddNew('nl_BE', SLang_nl_BE);
373 AddNew('nn', SLang_nn);
374 AddNew('no', SLang_no);
375 AddNew('nr', SLang_nr);
376 AddNew('nv', SLang_nv);
377 AddNew('ny', SLang_ny);
378 AddNew('oc', SLang_oc);
379 AddNew('oj', SLang_oj);
380 AddNew('om', SLang_om);
381 AddNew('or', SLang_or);
382 AddNew('os', SLang_os);
383 AddNew('pa', SLang_pa);
384 AddNew('pi', SLang_pi);
385 AddNew('pl', SLang_pl);
386 AddNew('ps', SLang_ps);
387 AddNew('pt', SLang_pt);
388 AddNew('pt_BR', SLang_pt_BR);
389 AddNew('qu', SLang_qu);
390 AddNew('rm', SLang_rm);
391 AddNew('rn', SLang_rn);
392 AddNew('ro', SLang_ro);
393 AddNew('ru', SLang_ru);
394 AddNew('rw', SLang_rw);
395 AddNew('sa', SLang_sa);
396 AddNew('sc', SLang_sc);
397 AddNew('sd', SLang_sd);
398 AddNew('se', SLang_se);
399 AddNew('sg', SLang_sg);
400 AddNew('si', SLang_si);
401 AddNew('sk', SLang_sk);
402 AddNew('sl', SLang_sl);
403 AddNew('sm', SLang_sm);
404 AddNew('sn', SLang_sn);
405 AddNew('so', SLang_so);
406 AddNew('sq', SLang_sq);
407 AddNew('sr', SLang_sr);
408 AddNew('ss', SLang_ss);
409 AddNew('st', SLang_st);
410 AddNew('su', SLang_su);
411 AddNew('sv', SLang_sv);
412 AddNew('sw', SLang_sw);
413 AddNew('ta', SLang_ta);
414 AddNew('te', SLang_te);
415 AddNew('tg', SLang_tg);
416 AddNew('th', SLang_th);
417 AddNew('ti', SLang_ti);
418 AddNew('tk', SLang_tk);
419 AddNew('tl', SLang_tl);
420 AddNew('tn', SLang_tn);
421 AddNew('to', SLang_to);
422 AddNew('tr', SLang_tr);
423 AddNew('ts', SLang_ts);
424 AddNew('tt', SLang_tt);
425 AddNew('tw', SLang_tw);
426 AddNew('ty', SLang_ty);
427 AddNew('ug', SLang_ug);
428 AddNew('uk', SLang_uk);
429 AddNew('ur', SLang_ur);
430 AddNew('uz', SLang_uz);
431 AddNew('ve', SLang_ve);
432 AddNew('vi', SLang_vi);
433 AddNew('vo', SLang_vo);
434 AddNew('wa', SLang_wa);
435 AddNew('wo', SLang_wo);
436 AddNew('xh', SLang_xh);
437 AddNew('yi', SLang_yi);
438 AddNew('yo', SLang_yo);
439 AddNew('za', SLang_za);
440 AddNew('zh', SLang_zh);
441 AddNew('zu', SLang_zu);
442end;
443
444end.
445
Note: See TracBrowser for help on using the repository browser.