source: trunk/Packages/CoolTranslator/ULanguages.pas

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