1 | unit ULanguages;
|
---|
2 |
|
---|
3 | interface
|
---|
4 |
|
---|
5 | uses
|
---|
6 | Classes, SysUtils, Generics.Collections;
|
---|
7 |
|
---|
8 | type
|
---|
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 |
|
---|
24 | resourcestring
|
---|
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 |
|
---|
220 | implementation
|
---|
221 |
|
---|
222 |
|
---|
223 | { TLanguages }
|
---|
224 |
|
---|
225 | function TLanguages.SearchByCode(ACode: string): TLanguage;
|
---|
226 | var
|
---|
227 | I: Integer;
|
---|
228 | begin
|
---|
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;
|
---|
233 | end;
|
---|
234 |
|
---|
235 | procedure TLanguages.AddNew(Code: string; Name: string);
|
---|
236 | var
|
---|
237 | NewItem: TLanguage;
|
---|
238 | begin
|
---|
239 | NewItem := TLanguage.Create;
|
---|
240 | NewItem.Name := Name;
|
---|
241 | NewItem.Code := Code;
|
---|
242 | Add(NewItem);
|
---|
243 | end;
|
---|
244 |
|
---|
245 | constructor TLanguages.Create(FreeObjects: Boolean);
|
---|
246 | begin
|
---|
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);
|
---|
442 | end;
|
---|
443 |
|
---|
444 | end.
|
---|
445 |
|
---|