c5b21ab44516ef810b43725c4d939ef31e33b175
[mono.git] / mcs / class / corlib / System.Globalization / RegionInfo.cs
1 using System.Globalization;
2
3 namespace System.Globalization {
4
5         [Serializable]
6         public class RegionInfo {
7                 int NLS_id;
8
9                 public RegionInfo (int culture) {
10
11                         if (CultureInfo.IsIDNeutralCulture (culture))
12                                 throw new ArgumentException ("Culture ID " + culture
13                                                          + " (0x" + culture.ToString ("X4")
14                                                          + ") is a neutral culture. A region can not be created from it.");
15
16                         switch (culture) {
17                         case 0x0401: // ar-SA Arabic (Saudi Arabia)
18                                 NLS_id = 682;
19                                 break;
20                         case 0x0801: // ar-IQ Arabic (Iraq)
21                                 NLS_id = 368;
22                                 break;
23                         case 0x0C01: // ar-EG Arabic (Egypt)
24                                 NLS_id = 818;
25                                 break;
26                         case 0x1001: // ar-LY Arabic (Libya)
27                                 NLS_id = 434;
28                                 break;
29                         case 0x1401: // ar-DZ Arabic (Algeria)
30                                 NLS_id = 12;
31                                 break;
32                         case 0x1801: // ar-MA Arabic (Morocco)
33                                 NLS_id = 504;
34                                 break;
35                         case 0x1C01: // ar-TN Arabic (Tunisia)
36                                 NLS_id = 788;
37                                 break;
38                         case 0x2001: // ar-OM Arabic (Oman)
39                                 NLS_id = 512;
40                                 break;
41                         case 0x2401: // ar-YE Arabic (Yemen)
42                                 NLS_id = 887;
43                                 break;
44                         case 0x2801: // ar-SY Arabic (Syria)
45                                 NLS_id = 760;
46                                 break;
47                         case 0x2C01: // ar-JO Arabic (Jordan)
48                                 NLS_id = 400;
49                                 break;
50                         case 0x3001: // ar-LB Arabic (Lebanon)
51                                 NLS_id = 422;
52                                 break;
53                         case 0x3401: // ar-KW Arabic (Kuwait)
54                                 NLS_id = 414;
55                                 break;
56                         case 0x3801: // ar-AE Arabic (U.A.E.)
57                                 NLS_id = 784;
58                                 break;
59                         case 0x3C01: // ar-BH Arabic (Bahrain)
60                                 NLS_id = 48;
61                                 break;
62                         case 0x4001: // ar-QA Arabic (Qatar)
63                                 NLS_id = 634;
64                                 break;
65                         case 0x0402: // bg-BG Bulgarian (Bulgaria)
66                                 NLS_id = 100;
67                                 break;
68                         case 0x0403: // ca-ES Catalan (Spain)
69                                 NLS_id = 724;
70                                 break;
71                         case 0x0404: // zh-TW Chinese (Taiwan)
72                                 NLS_id = 158;
73                                 break;
74                         case 0x0804: // zh-CN Chinese (People's Republic of China)
75                                 NLS_id = 156;
76                                 break;
77                         case 0x0C04: // zh-HK Chinese (Hong Kong S.A.R.)
78                                 NLS_id = 344;
79                                 break;
80                         case 0x1004: // zh-SG Chinese (Singapore)
81                                 NLS_id = 702;
82                                 break;
83                         case 0x1404: // zh-MO Chinese (Macau S.A.R.)
84                                 NLS_id = 446;
85                                 break;
86                         case 0x0405: // cs-CZ Czech (Czech Republic)
87                                 NLS_id = 203;
88                                 break;
89                         case 0x0406: // da-DK Danish (Denmark)
90                                 NLS_id = 208;
91                                 break;
92                         case 0x0407: // de-DE German (Germany)
93                                 NLS_id = 276;
94                                 break;
95                         case 0x0807: // de-CH German (Switzerland)
96                                 NLS_id = 756;
97                                 break;
98                         case 0x0C07: // de-AT German (Austria)
99                                 NLS_id = 40;
100                                 break;
101                         case 0x1007: // de-LU German (Luxembourg)
102                                 NLS_id = 442;
103                                 break;
104                         case 0x1407: // de-LI German (Liechtenstein)
105                                 NLS_id = 438;
106                                 break;
107                         case 0x0408: // el-GR Greek (Greece)
108                                 NLS_id = 300;
109                                 break;
110                         case 0x0409: // en-US English (United States)
111                                 NLS_id = 840;
112                                 break;
113                         case 0x0809: // en-GB English (United Kingdom)
114                                 NLS_id = 826;
115                                 break;
116                         case 0x0C09: // en-AU English (Australia)
117                                 NLS_id = 36;
118                                 break;
119                         case 0x1009: // en-CA English (Canada)
120                                 NLS_id = 124;
121                                 break;
122                         case 0x1409: // en-NZ English (New Zealand)
123                                 NLS_id = 554;
124                                 break;
125                         case 0x1809: // en-IE English (Ireland)
126                                 NLS_id = 372;
127                                 break;
128                         case 0x1C09: // en-ZA English (South Africa)
129                                 NLS_id = 710;
130                                 break;
131                         case 0x2009: // en-JM English (Jamaica)
132                                 NLS_id = 388;
133                                 break;
134                         case 0x2809: // en-BZ English (Belize)
135                                 NLS_id = 84;
136                                 break;
137                         case 0x2C09: // en-TT English (Trinidad and Tobago)
138                                 NLS_id = 780;
139                                 break;
140                         case 0x3009: // en-ZW English (Zimbabwe)
141                                 NLS_id = 716;
142                                 break;
143                         case 0x3409: // en-PH English (Republic of the Philippines)
144                                 NLS_id = 608;
145                                 break;
146                         case 0x080A: // es-MX Spanish (Mexico)
147                                 NLS_id = 484;
148                                 break;
149                         case 0x0C0A: // es-ES Spanish (Spain)
150                                 NLS_id = 724;
151                                 break;
152                         case 0x100A: // es-GT Spanish (Guatemala)
153                                 NLS_id = 320;
154                                 break;
155                         case 0x140A: // es-CR Spanish (Costa Rica)
156                                 NLS_id = 188;
157                                 break;
158                         case 0x180A: // es-PA Spanish (Panama)
159                                 NLS_id = 591;
160                                 break;
161                         case 0x1C0A: // es-DO Spanish (Dominican Republic)
162                                 NLS_id = 214;
163                                 break;
164                         case 0x200A: // es-VE Spanish (Venezuela)
165                                 NLS_id = 862;
166                                 break;
167                         case 0x240A: // es-CO Spanish (Colombia)
168                                 NLS_id = 170;
169                                 break;
170                         case 0x280A: // es-PE Spanish (Peru)
171                                 NLS_id = 604;
172                                 break;
173                         case 0x2C0A: // es-AR Spanish (Argentina)
174                                 NLS_id = 32;
175                                 break;
176                         case 0x300A: // es-EC Spanish (Ecuador)
177                                 NLS_id = 218;
178                                 break;
179                         case 0x340A: // es-CL Spanish (Chile)
180                                 NLS_id = 152;
181                                 break;
182                         case 0x380A: // es-UY Spanish (Uruguay)
183                                 NLS_id = 858;
184                                 break;
185                         case 0x3C0A: // es-PY Spanish (Paraguay)
186                                 NLS_id = 600;
187                                 break;
188                         case 0x400A: // es-BO Spanish (Bolivia)
189                                 NLS_id = 68;
190                                 break;
191                         case 0x440A: // es-SV Spanish (El Salvador)
192                                 NLS_id = 222;
193                                 break;
194                         case 0x480A: // es-HN Spanish (Honduras)
195                                 NLS_id = 340;
196                                 break;
197                         case 0x4C0A: // es-NI Spanish (Nicaragua)
198                                 NLS_id = 558;
199                                 break;
200                         case 0x500A: // es-PR Spanish (Puerto Rico)
201                                 NLS_id = 630;
202                                 break;
203                         case 0x040B: // fi-FI Finnish (Finland)
204                                 NLS_id = 246;
205                                 break;
206                         case 0x040C: // fr-FR French (France)
207                                 NLS_id = 250;
208                                 break;
209                         case 0x080C: // fr-BE French (Belgium)
210                                 NLS_id = 56;
211                                 break;
212                         case 0x0C0C: // fr-CA French (Canada)
213                                 NLS_id = 124;
214                                 break;
215                         case 0x100C: // fr-CH French (Switzerland)
216                                 NLS_id = 756;
217                                 break;
218                         case 0x140C: // fr-LU French (Luxembourg)
219                                 NLS_id = 442;
220                                 break;
221                         case 0x180C: // fr-MC French (Principality of Monaco)
222                                 NLS_id = 492;
223                                 break;
224                         case 0x040D: // he-IL Hebrew (Israel)
225                                 NLS_id = 376;
226                                 break;
227                         case 0x040E: // hu-HU Hungarian (Hungary)
228                                 NLS_id = 348;
229                                 break;
230                         case 0x040F: // is-IS Icelandic (Iceland)
231                                 NLS_id = 352;
232                                 break;
233                         case 0x0410: // it-IT Italian (Italy)
234                                 NLS_id = 380;
235                                 break;
236                         case 0x0810: // it-CH Italian (Switzerland)
237                                 NLS_id = 756;
238                                 break;
239                         case 0x0411: // ja-JP Japanese (Japan)
240                                 NLS_id = 392;
241                                 break;
242                         case 0x0412: // ko-KR Korean (Korea)
243                                 NLS_id = 410;
244                                 break;
245                         case 0x0413: // nl-NL Dutch (Netherlands)
246                                 NLS_id = 528;
247                                 break;
248                         case 0x0813: // nl-BE Dutch (Belgium)
249                                 NLS_id = 56;
250                                 break;
251                         case 0x0414: // nb-NO Norwegian (Bokm\86l) (Norway)
252                                 NLS_id = 578;
253                                 break;
254                         case 0x0814: // nn-NO Norwegian (Nynorsk) (Norway)
255                                 NLS_id = 578;
256                                 break;
257                         case 0x0415: // pl-PL Polish (Poland)
258                                 NLS_id = 616;
259                                 break;
260                         case 0x0416: // pt-BR Portuguese (Brazil)
261                                 NLS_id = 76;
262                                 break;
263                         case 0x0816: // pt-PT Portuguese (Portugal)
264                                 NLS_id = 620;
265                                 break;
266                         case 0x0418: // ro-RO Romanian (Romania)
267                                 NLS_id = 642;
268                                 break;
269                         case 0x0419: // ru-RU Russian (Russia)
270                                 NLS_id = 643;
271                                 break;
272                         case 0x041A: // hr-HR Croatian (Croatia)
273                                 NLS_id = 191;
274                                 break;
275                         case 0x041B: // sk-SK Slovak (Slovakia)
276                                 NLS_id = 703;
277                                 break;
278                         case 0x041C: // sq-AL Albanian (Albania)
279                                 NLS_id = 8;
280                                 break;
281                         case 0x041D: // sv-SE Swedish (Sweden)
282                                 NLS_id = 752;
283                                 break;
284                         case 0x081D: // sv-FI Swedish (Finland)
285                                 NLS_id = 246;
286                                 break;
287                         case 0x041E: // th-TH Thai (Thailand)
288                                 NLS_id = 764;
289                                 break;
290                         case 0x041F: // tr-TR Turkish (Turkey)
291                                 NLS_id = 792;
292                                 break;
293                         case 0x0420: // ur-PK Urdu (Islamic Republic of Pakistan)
294                                 NLS_id = 586;
295                                 break;
296                         case 0x0421: // id-ID Indonesian (Indonesia)
297                                 NLS_id = 360;
298                                 break;
299                         case 0x0422: // uk-UA Ukrainian (Ukraine)
300                                 NLS_id = 804;
301                                 break;
302                         case 0x0423: // be-BY Belarusian (Belarus)
303                                 NLS_id = 112;
304                                 break;
305                         case 0x0424: // sl-SI Slovenian (Slovenia)
306                                 NLS_id = 705;
307                                 break;
308                         case 0x0425: // et-EE Estonian (Estonia)
309                                 NLS_id = 233;
310                                 break;
311                         case 0x0426: // lv-LV Latvian (Latvia)
312                                 NLS_id = 428;
313                                 break;
314                         case 0x0427: // lt-LT Lithuanian (Lithuania)
315                                 NLS_id = 440;
316                                 break;
317                         case 0x0429: // fa-IR Farsi (Iran)
318                                 NLS_id = 364;
319                                 break;
320                         case 0x042A: // vi-VN Vietnamese (Viet Nam)
321                                 NLS_id = 704;
322                                 break;
323                         case 0x042B: // hy-AM Armenian (Armenia)
324                                 NLS_id = 51;
325                                 break;
326                         case 0x042C: // Lt-az-AZ Azeri (Latin) (Azerbaijan)
327                                 NLS_id = 31;
328                                 break;
329                         case 0x082C: // Cy-az-AZ Azeri (Cyrillic) (Azerbaijan)
330                                 NLS_id = 31;
331                                 break;
332                         case 0x042D: // eu-ES Basque (Spain)
333                                 NLS_id = 724;
334                                 break;
335                         case 0x042F: // mk-MK FYRO Macedonian (Former Yugoslav Republic of Macedonia)
336                                 NLS_id = 807;
337                                 break;
338                         case 0x0436: // af-ZA Afrikaans (South Africa)
339                                 NLS_id = 710;
340                                 break;
341                         case 0x0437: // ka-GE Georgian (Georgia)
342                                 NLS_id = 268;
343                                 break;
344                         case 0x0438: // fo-FO Faeroese (Faeroe Islands)
345                                 NLS_id = 234;
346                                 break;
347                         case 0x0439: // hi-IN Hindi (India)
348                                 NLS_id = 356;
349                                 break;
350                         case 0x043E: // ms-MY Malay (Malaysia)
351                                 NLS_id = 458;
352                                 break;
353                         case 0x083E: // ms-BN Malay (Brunei Darussalam)
354                                 NLS_id = 96;
355                                 break;
356                         case 0x043F: // kk-KZ Kazakh (Kazakhstan)
357                                 NLS_id = 398;
358                                 break;
359                         case 0x0440: // ky-KZ Kyrgyz (Kyrgyzstan)
360                                 NLS_id = 398;
361                                 break;
362                         case 0x0441: // sw-KE Swahili (Kenya)
363                                 NLS_id = 404;
364                                 break;
365                         case 0x0443: // Lt-uz-UZ Uzbek (Latin) (Uzbekistan)
366                                 NLS_id = 860;
367                                 break;
368                         case 0x0843: // Cy-uz-UZ Uzbek (Cyrillic) (Uzbekistan)
369                                 NLS_id = 860;
370                                 break;
371                         case 0x0446: // pa-IN Punjabi (India)
372                                 NLS_id = 356;
373                                 break;
374                         case 0x0447: // gu-IN Gujarati (India)
375                                 NLS_id = 356;
376                                 break;
377                         case 0x0449: // ta-IN Tamil (India)
378                                 NLS_id = 356;
379                                 break;
380                         case 0x044A: // te-IN Telugu (India)
381                                 NLS_id = 356;
382                                 break;
383                         case 0x044B: // kn-IN Kannada (India)
384                                 NLS_id = 356;
385                                 break;
386                         case 0x044E: // mr-IN Marathi (India)
387                                 NLS_id = 356;
388                                 break;
389                         case 0x044F: // sa-IN Sanskrit (India)
390                                 NLS_id = 356;
391                                 break;
392                         case 0x0450: // mn-MN Mongolian (Mongolia)
393                                 NLS_id = 496;
394                                 break;
395                         case 0x0456: // gl-ES Galician (Spain)
396                                 NLS_id = 724;
397                                 break;
398                         case 0x0457: // kok-IN Konkani (India)
399                                 NLS_id = 356;
400                                 break;
401                         case 0x045A: // syr-SY Syriac (Syria)
402                                 NLS_id = 760;
403                                 break;
404                         case 0x0465: // div-MV Divehi (Maldives)
405                                 NLS_id = 462;
406                                 break;
407                         case 0x007F: //  Invariant Language (Invariant Country)
408                                 throw new ArgumentException ("There is no region associated with the Invariant Culture (Culture ID: 0x7F).");
409                         default:
410                                 throw new ArgumentException ("Culture ID " + culture + " (0x" + culture.ToString ("X4")
411                                                          + ") is not a supported culture.");
412                         }
413                 }
414
415                 public RegionInfo (string name) {
416                         switch (name.ToUpper ()) {
417                         case "AF": // Afghanistan
418                                 NLS_id = 004;
419                                 break;
420                         case "AL": // Albania
421                                 NLS_id = 008;
422                                 break;
423                         case "DZ": // Algeria
424                                 NLS_id = 012;
425                                 break;
426                         case "AS": // American Samoa
427                                 NLS_id = 016;
428                                 break;
429                         case "AD": // Andorra
430                                 NLS_id = 020;
431                                 break;
432                         case "AO": // Angola
433                                 NLS_id = 024;
434                                 break;
435                         case "AI": // Anguilla
436                                 NLS_id = 660;
437                                 break;
438                         case "AQ": // Antarctica
439                                 NLS_id = 010;
440                                 break;
441                         case "AG": // Antigua and Barbuda
442                                 NLS_id = 028;
443                                 break;
444                         case "AR": // Argentina
445                                 NLS_id = 032;
446                                 break;
447                         case "AM": // Armenia
448                                 NLS_id = 051;
449                                 break;
450                         case "AW": // Aruba
451                                 NLS_id = 533;
452                                 break;
453                         case "AU": // Australia
454                                 NLS_id = 036;
455                                 break;
456                         case "AT": // Austria
457                                 NLS_id = 040;
458                                 break;
459                         case "AZ": // Azerbaijan
460                                 NLS_id = 031;
461                                 break;
462                         case "BS": // Bahamas
463                                 NLS_id = 044;
464                                 break;
465                         case "BH": // Bahrain
466                                 NLS_id = 048;
467                                 break;
468                         case "BD": // Bangladesh
469                                 NLS_id = 050;
470                                 break;
471                         case "BB": // Barbados
472                                 NLS_id = 052;
473                                 break;
474                         case "BY": // Belarus
475                                 NLS_id = 112;
476                                 break;
477                         case "BE": // Belgium
478                                 NLS_id = 056;
479                                 break;
480                         case "BZ": // Belize
481                                 NLS_id = 084;
482                                 break;
483                         case "BJ": // Benin
484                                 NLS_id = 204;
485                                 break;
486                         case "BM": // Bermuda
487                                 NLS_id = 060;
488                                 break;
489                         case "BT": // Bhutan
490                                 NLS_id = 064;
491                                 break;
492                         case "BO": // Bolivia
493                                 NLS_id = 068;
494                                 break;
495                         case "BA": // Bosnia and Herzegowina
496                                 NLS_id = 070;
497                                 break;
498                         case "BW": // Botswana
499                                 NLS_id = 072;
500                                 break;
501                         case "BV": // Bouvet Island
502                                 NLS_id = 074;
503                                 break;
504                         case "BR": // Brazil
505                                 NLS_id = 076;
506                                 break;
507                         case "IO": // British Indian Ocean Territory
508                                 NLS_id = 086;
509                                 break;
510                         case "BN": // Brunei Darussalam
511                                 NLS_id = 096;
512                                 break;
513                         case "BG": // Bulgaria
514                                 NLS_id = 100;
515                                 break;
516                         case "BF": // Burkina Faso
517                                 NLS_id = 854;
518                                 break;
519                         case "BI": // Burundi
520                                 NLS_id = 108;
521                                 break;
522                         case "KH": // Cambodia
523                                 NLS_id = 116;
524                                 break;
525                         case "CM": // Cameroon
526                                 NLS_id = 120;
527                                 break;
528                         case "CA": // Canada
529                                 NLS_id = 124;
530                                 break;
531                         case "CV": // Cape Verde
532                                 NLS_id = 132;
533                                 break;
534                         case "KY": // Cayman Islands
535                                 NLS_id = 136;
536                                 break;
537                         case "CF": // Central African Republic
538                                 NLS_id = 140;
539                                 break;
540                         case "TD": // Chad
541                                 NLS_id = 148;
542                                 break;
543                         case "CL": // Chile
544                                 NLS_id = 152;
545                                 break;
546                         case "CN": // China
547                                 NLS_id = 156;
548                                 break;
549                         case "CX": // Christmas Island
550                                 NLS_id = 162;
551                                 break;
552                         case "CC": // Cocos (Keeling) Islands
553                                 NLS_id = 166;
554                                 break;
555                         case "CO": // Colombia
556                                 NLS_id = 170;
557                                 break;
558                         case "KM": // Comoros
559                                 NLS_id = 174;
560                                 break;
561                         case "CG": // Congo
562                                 NLS_id = 178;
563                                 break;
564                         case "CK": // Cook Islands
565                                 NLS_id = 184;
566                                 break;
567                         case "CR": // Costa Rica
568                                 NLS_id = 188;
569                                 break;
570                         case "CI": // Cote D'Ivoire
571                                 NLS_id = 384;
572                                 break;
573                         case "HR": // Croatia (Local Name: Hrvatska)
574                                 NLS_id = 191;
575                                 break;
576                         case "CU": // Cuba
577                                 NLS_id = 192;
578                                 break;
579                         case "CY": // Cyprus
580                                 NLS_id = 196;
581                                 break;
582                         case "CZ": // Czech Republic
583                                 NLS_id = 203;
584                                 break;
585                         case "DK": // Denmark
586                                 NLS_id = 208;
587                                 break;
588                         case "DJ": // Djibouti
589                                 NLS_id = 262;
590                                 break;
591                         case "DM": // Dominica
592                                 NLS_id = 212;
593                                 break;
594                         case "DO": // Dominican Republic
595                                 NLS_id = 214;
596                                 break;
597                         case "TP": // East Timor
598                                 NLS_id = 626;
599                                 break;
600                         case "EC": // Ecuador
601                                 NLS_id = 218;
602                                 break;
603                         case "EG": // Egypt
604                                 NLS_id = 818;
605                                 break;
606                         case "SV": // El Salvador
607                                 NLS_id = 222;
608                                 break;
609                         case "GQ": // Equatorial Guinea
610                                 NLS_id = 226;
611                                 break;
612                         case "ER": // Eritrea
613                                 NLS_id = 232;
614                                 break;
615                         case "EE": // Estonia
616                                 NLS_id = 233;
617                                 break;
618                         case "ET": // Ethiopia
619                                 NLS_id = 231;
620                                 break;
621                         case "FK": // Falkland Islands (Malvinas)
622                                 NLS_id = 238;
623                                 break;
624                         case "FO": // Faroe Islands
625                                 NLS_id = 234;
626                                 break;
627                         case "FJ": // Fiji
628                                 NLS_id = 242;
629                                 break;
630                         case "FI": // Finland
631                                 NLS_id = 246;
632                                 break;
633                         case "FR": // France
634                                 NLS_id = 250;
635                                 break;
636                         case "FX": // France, Metropolitan
637                                 NLS_id = 249;
638                                 break;
639                         case "GF": // French Guiana
640                                 NLS_id = 254;
641                                 break;
642                         case "PF": // French Polynesia
643                                 NLS_id = 258;
644                                 break;
645                         case "TF": // French Southern Territories
646                                 NLS_id = 260;
647                                 break;
648                         case "GA": // Gabon
649                                 NLS_id = 266;
650                                 break;
651                         case "GM": // Gambia
652                                 NLS_id = 270;
653                                 break;
654                         case "GE": // Georgia
655                                 NLS_id = 268;
656                                 break;
657                         case "DE": // Germany
658                                 NLS_id = 276;
659                                 break;
660                         case "GH": // Ghana
661                                 NLS_id = 288;
662                                 break;
663                         case "GI": // Gibraltar
664                                 NLS_id = 292;
665                                 break;
666                         case "GR": // Greece
667                                 NLS_id = 300;
668                                 break;
669                         case "GL": // Greenland
670                                 NLS_id = 304;
671                                 break;
672                         case "GD": // Grenada
673                                 NLS_id = 308;
674                                 break;
675                         case "GP": // Guadeloupe
676                                 NLS_id = 312;
677                                 break;
678                         case "GU": // Guam
679                                 NLS_id = 316;
680                                 break;
681                         case "GT": // Guatemala
682                                 NLS_id = 320;
683                                 break;
684                         case "GN": // Guinea
685                                 NLS_id = 324;
686                                 break;
687                         case "GW": // Guinea-Bissau
688                                 NLS_id = 624;
689                                 break;
690                         case "GY": // Guyana
691                                 NLS_id = 328;
692                                 break;
693                         case "HT": // Haiti
694                                 NLS_id = 332;
695                                 break;
696                         case "HM": // Heard and Mc Donald Islands
697                                 NLS_id = 334;
698                                 break;
699                         case "VA": // Holy See (Vatican City State)
700                                 NLS_id = 336;
701                                 break;
702                         case "HN": // Honduras
703                                 NLS_id = 340;
704                                 break;
705                         case "HK": // Hong Kong
706                                 NLS_id = 344;
707                                 break;
708                         case "HU": // Hungary
709                                 NLS_id = 348;
710                                 break;
711                         case "IS": // Iceland
712                                 NLS_id = 352;
713                                 break;
714                         case "IN": // India
715                                 NLS_id = 356;
716                                 break;
717                         case "ID": // Indonesia
718                                 NLS_id = 360;
719                                 break;
720                         case "IR": // Iran (Islamic Republic of)
721                                 NLS_id = 364;
722                                 break;
723                         case "IQ": // Iraq
724                                 NLS_id = 368;
725                                 break;
726                         case "IE": // Ireland
727                                 NLS_id = 372;
728                                 break;
729                         case "IL": // Israel
730                                 NLS_id = 376;
731                                 break;
732                         case "IT": // Italy
733                                 NLS_id = 380;
734                                 break;
735                         case "JM": // Jamaica
736                                 NLS_id = 388;
737                                 break;
738                         case "JP": // Japan
739                                 NLS_id = 392;
740                                 break;
741                         case "JO": // Jordan
742                                 NLS_id = 400;
743                                 break;
744                         case "KZ": // Kazakhstan
745                                 NLS_id = 398;
746                                 break;
747                         case "KE": // Kenya
748                                 NLS_id = 404;
749                                 break;
750                         case "KI": // Kiribati
751                                 NLS_id = 296;
752                                 break;
753                         case "KP": // Korea, Democratic People's Republic of
754                                 NLS_id = 408;
755                                 break;
756                         case "KR": // Korea, Republic of
757                                 NLS_id = 410;
758                                 break;
759                         case "KW": // Kuwait
760                                 NLS_id = 414;
761                                 break;
762                         case "KG": // Kyrgyzstan
763                                 NLS_id = 417;
764                                 break;
765                         case "LA": // Lao People's Democratic Republic
766                                 NLS_id = 418;
767                                 break;
768                         case "LV": // Latvia
769                                 NLS_id = 428;
770                                 break;
771                         case "LB": // Lebanon
772                                 NLS_id = 422;
773                                 break;
774                         case "LS": // Lesotho
775                                 NLS_id = 426;
776                                 break;
777                         case "LR": // Liberia
778                                 NLS_id = 430;
779                                 break;
780                         case "LY": // Libyan Arab Jamahiriya
781                                 NLS_id = 434;
782                                 break;
783                         case "LI": // Liechtenstein
784                                 NLS_id = 438;
785                                 break;
786                         case "LT": // Lithuania
787                                 NLS_id = 440;
788                                 break;
789                         case "LU": // Luxembourg
790                                 NLS_id = 442;
791                                 break;
792                         case "MO": // Macau
793                                 NLS_id = 446;
794                                 break;
795                         case "MK": // Macedonia, The Former Yugoslav Republic of
796                                 NLS_id = 807;
797                                 break;
798                         case "MG": // Madagascar
799                                 NLS_id = 450;
800                                 break;
801                         case "MW": // Malawi
802                                 NLS_id = 454;
803                                 break;
804                         case "MY": // Malaysia
805                                 NLS_id = 458;
806                                 break;
807                         case "MV": // Maldives
808                                 NLS_id = 462;
809                                 break;
810                         case "ML": // Mali
811                                 NLS_id = 466;
812                                 break;
813                         case "MT": // Malta
814                                 NLS_id = 470;
815                                 break;
816                         case "MH": // Marshall Islands
817                                 NLS_id = 584;
818                                 break;
819                         case "MQ": // Martinique
820                                 NLS_id = 474;
821                                 break;
822                         case "MR": // Mauritania
823                                 NLS_id = 478;
824                                 break;
825                         case "MU": // Mauritius
826                                 NLS_id = 480;
827                                 break;
828                         case "YT": // Mayotte
829                                 NLS_id = 175;
830                                 break;
831                         case "MX": // Mexico
832                                 NLS_id = 484;
833                                 break;
834                         case "FM": // Micronesia, Federated States of
835                                 NLS_id = 583;
836                                 break;
837                         case "MD": // Moldova, Republic of
838                                 NLS_id = 498;
839                                 break;
840                         case "MC": // Monaco
841                                 NLS_id = 492;
842                                 break;
843                         case "MN": // Mongolia
844                                 NLS_id = 496;
845                                 break;
846                         case "MS": // Montserrat
847                                 NLS_id = 500;
848                                 break;
849                         case "MA": // Morocco
850                                 NLS_id = 504;
851                                 break;
852                         case "MZ": // Mozambique
853                                 NLS_id = 508;
854                                 break;
855                         case "MM": // Myanmar
856                                 NLS_id = 104;
857                                 break;
858                         case "NA": // Namibia
859                                 NLS_id = 516;
860                                 break;
861                         case "NR": // Nauru
862                                 NLS_id = 520;
863                                 break;
864                         case "NP": // Nepal
865                                 NLS_id = 524;
866                                 break;
867                         case "NL": // Netherlands
868                                 NLS_id = 528;
869                                 break;
870                         case "AN": // Netherlands Antilles
871                                 NLS_id = 530;
872                                 break;
873                         case "NC": // New Caledonia
874                                 NLS_id = 540;
875                                 break;
876                         case "NZ": // New Zealand
877                                 NLS_id = 554;
878                                 break;
879                         case "NI": // Nicaragua
880                                 NLS_id = 558;
881                                 break;
882                         case "NE": // Niger
883                                 NLS_id = 562;
884                                 break;
885                         case "NG": // Nigeria
886                                 NLS_id = 566;
887                                 break;
888                         case "NU": // Niue
889                                 NLS_id = 570;
890                                 break;
891                         case "NF": // Norfolk Island
892                                 NLS_id = 574;
893                                 break;
894                         case "MP": // Northern Mariana Islands
895                                 NLS_id = 580;
896                                 break;
897                         case "NO": // Norway
898                                 NLS_id = 578;
899                                 break;
900                         case "OM": // Oman
901                                 NLS_id = 512;
902                                 break;
903                         case "PK": // Pakistan
904                                 NLS_id = 586;
905                                 break;
906                         case "PW": // Palau
907                                 NLS_id = 585;
908                                 break;
909                         case "PA": // Panama
910                                 NLS_id = 591;
911                                 break;
912                         case "PG": // Papua New Guinea
913                                 NLS_id = 598;
914                                 break;
915                         case "PY": // Paraguay
916                                 NLS_id = 600;
917                                 break;
918                         case "PE": // Peru
919                                 NLS_id = 604;
920                                 break;
921                         case "PH": // Philippines
922                                 NLS_id = 608;
923                                 break;
924                         case "PN": // Pitcairn
925                                 NLS_id = 612;
926                                 break;
927                         case "PL": // Poland
928                                 NLS_id = 616;
929                                 break;
930                         case "PT": // Portugal
931                                 NLS_id = 620;
932                                 break;
933                         case "PR": // Puerto Rico
934                                 NLS_id = 630;
935                                 break;
936                         case "QA": // Qatar
937                                 NLS_id = 634;
938                                 break;
939                         case "RE": // Reunion
940                                 NLS_id = 638;
941                                 break;
942                         case "RO": // Romania
943                                 NLS_id = 642;
944                                 break;
945                         case "RU": // Russian Federation
946                                 NLS_id = 643;
947                                 break;
948                         case "RW": // Rwanda
949                                 NLS_id = 646;
950                                 break;
951                         case "KN": // Saint Kitts and Nevis
952                                 NLS_id = 659;
953                                 break;
954                         case "LC": // Saint Lucia
955                                 NLS_id = 662;
956                                 break;
957                         case "VC": // Saint Vincent and The Grenadines
958                                 NLS_id = 670;
959                                 break;
960                         case "WS": // Samoa
961                                 NLS_id = 882;
962                                 break;
963                         case "SM": // San Marino
964                                 NLS_id = 674;
965                                 break;
966                         case "ST": // Sao Tome and Principe
967                                 NLS_id = 678;
968                                 break;
969                         case "SA": // Saudi Arabia
970                                 NLS_id = 682;
971                                 break;
972                         case "SN": // Senegal
973                                 NLS_id = 686;
974                                 break;
975                         case "SC": // Seychelles
976                                 NLS_id = 690;
977                                 break;
978                         case "SL": // Sierra Leone
979                                 NLS_id = 694;
980                                 break;
981                         case "SG": // Singapore
982                                 NLS_id = 702;
983                                 break;
984                         case "SK": // Slovakia (Slovak Republic)
985                                 NLS_id = 703;
986                                 break;
987                         case "SI": // Slovenia
988                                 NLS_id = 705;
989                                 break;
990                         case "SB": // Solomon Islands
991                                 NLS_id = 090;
992                                 break;
993                         case "SO": // Somalia
994                                 NLS_id = 706;
995                                 break;
996                         case "ZA": // South Africa
997                                 NLS_id = 710;
998                                 break;
999                         case "GS": // South Georgia and The South Sandwich Islands
1000                                 NLS_id = 239;
1001                                 break;
1002                         case "ES": // Spain
1003                                 NLS_id = 724;
1004                                 break;
1005                         case "LK": // Sri Lanka
1006                                 NLS_id = 144;
1007                                 break;
1008                         case "SH": // St. Helena
1009                                 NLS_id = 654;
1010                                 break;
1011                         case "PM": // St. Pierre and Miquelon
1012                                 NLS_id = 666;
1013                                 break;
1014                         case "SD": // Sudan
1015                                 NLS_id = 736;
1016                                 break;
1017                         case "SR": // Suriname
1018                                 NLS_id = 740;
1019                                 break;
1020                         case "SJ": // Svalbard and Jan Mayen Islands
1021                                 NLS_id = 744;
1022                                 break;
1023                         case "SZ": // Swaziland
1024                                 NLS_id = 748;
1025                                 break;
1026                         case "SE": // Sweden
1027                                 NLS_id = 752;
1028                                 break;
1029                         case "CH": // Switzerland
1030                                 NLS_id = 756;
1031                                 break;
1032                         case "SY": // Syrian Arab Republic
1033                                 NLS_id = 760;
1034                                 break;
1035                         case "TW": // Taiwan, Province of China
1036                                 NLS_id = 158;
1037                                 break;
1038                         case "TJ": // Tajikistan
1039                                 NLS_id = 762;
1040                                 break;
1041                         case "TZ": // Tanzania, United Republic of
1042                                 NLS_id = 834;
1043                                 break;
1044                         case "TH": // Thailand
1045                                 NLS_id = 764;
1046                                 break;
1047                         case "TG": // Togo
1048                                 NLS_id = 768;
1049                                 break;
1050                         case "TK": // Tokelau
1051                                 NLS_id = 772;
1052                                 break;
1053                         case "TO": // Tonga
1054                                 NLS_id = 776;
1055                                 break;
1056                         case "TT": // Trinidad and Tobago
1057                                 NLS_id = 780;
1058                                 break;
1059                         case "TN": // Tunisia
1060                                 NLS_id = 788;
1061                                 break;
1062                         case "TR": // Turkey
1063                                 NLS_id = 792;
1064                                 break;
1065                         case "TM": // Turkmenistan
1066                                 NLS_id = 795;
1067                                 break;
1068                         case "TC": // Turks and Caicos Islands
1069                                 NLS_id = 796;
1070                                 break;
1071                         case "TV": // Tuvalu
1072                                 NLS_id = 798;
1073                                 break;
1074                         case "UG": // Uganda
1075                                 NLS_id = 800;
1076                                 break;
1077                         case "UA": // Ukraine
1078                                 NLS_id = 804;
1079                                 break;
1080                         case "AE": // United Arab Emirates
1081                                 NLS_id = 784;
1082                                 break;
1083                         case "GB": // United Kingdom
1084                                 NLS_id = 826;
1085                                 break;
1086                         case "US": // United States
1087                                 NLS_id = 840;
1088                                 break;
1089                         case "UM": // United States Minor Outlying Islands
1090                                 NLS_id = 581;
1091                                 break;
1092                         case "UY": // Uruguay
1093                                 NLS_id = 858;
1094                                 break;
1095                         case "UZ": // Uzbekistan
1096                                 NLS_id = 860;
1097                                 break;
1098                         case "VU": // Vanuatu
1099                                 NLS_id = 548;
1100                                 break;
1101                         case "VE": // Venezuela
1102                                 NLS_id = 862;
1103                                 break;
1104                         case "VN": // Viet Nam
1105                                 NLS_id = 704;
1106                                 break;
1107                         case "VG": // Virgin Islands (British)
1108                                 NLS_id = 092;
1109                                 break;
1110                         case "VI": // Virgin Islands (U.S.)
1111                                 NLS_id = 850;
1112                                 break;
1113                         case "WF": // Wallis and Futuna Islands
1114                                 NLS_id = 876;
1115                                 break;
1116                         case "EH": // Western Sahara
1117                                 NLS_id = 732;
1118                                 break;
1119                         case "YE": // Yemen
1120                                 NLS_id = 887;
1121                                 break;
1122                         case "YU": // Yugoslavia
1123                                 NLS_id = 891;
1124                                 break;
1125                         case "ZR": // Zaire
1126                                 NLS_id = 180;
1127                                 break;
1128                         case "ZM": // Zambia
1129                                 NLS_id = 894;
1130                                 break;
1131                         case "ZW": // Zimbabwe
1132                                 NLS_id = 716;
1133                                 break;
1134                         default:
1135                                 throw new ArgumentException ("Region name " + name + " is not supported.");
1136                         }
1137                 }
1138
1139                 public virtual string CurrencySymbol {
1140                         get {
1141                                 switch (NLS_id) {
1142                                 default:
1143                                         throw new Exception ("Dunno what is currency symbol for " + NLS_id + " Region. FIXME.");
1144                                 }
1145                         }
1146                 }
1147
1148                 [MonoTODO]
1149                 public static RegionInfo CurrentRegion {
1150                         get {
1151                                 return null;
1152                         }
1153                 }
1154
1155                 public virtual string DisplayName {
1156                         get {
1157                                 switch (NLS_id) {
1158                                 case 203: // Czech republic
1159                                         return "Èeská republika";
1160                                 case 840: // United States
1161                                         return "United States";
1162                                 default:
1163                                         throw new Exception ("FIXME. Please add your region name in language used in this region.");
1164                                 }
1165                         }
1166                 }
1167
1168                 public virtual string EnglishName {
1169                         get {
1170                                 switch (NLS_id) {
1171                                 case 004:
1172                                         return "Afghanistan";
1173                                 case 008:
1174                                         return "Albania";
1175                                 case 012:
1176                                         return "Algeria";
1177                                 case 016:
1178                                         return "American Samoa";
1179                                 case 020:
1180                                         return "Andorra";
1181                                 case 024:
1182                                         return "Angola";
1183                                 case 660:
1184                                         return "Anguilla";
1185                                 case 010:
1186                                         return "Antarctica";
1187                                 case 028:
1188                                         return "Antigua and Barbuda";
1189                                 case 032:
1190                                         return "Argentina";
1191                                 case 051:
1192                                         return "Armenia";
1193                                 case 533:
1194                                         return "Aruba";
1195                                 case 036:
1196                                         return "Australia";
1197                                 case 040:
1198                                         return "Austria";
1199                                 case 031:
1200                                         return "Azerbaijan";
1201                                 case 044:
1202                                         return "Bahamas";
1203                                 case 048:
1204                                         return "Bahrain";
1205                                 case 050:
1206                                         return "Bangladesh";
1207                                 case 052:
1208                                         return "Barbados";
1209                                 case 112:
1210                                         return "Belarus";
1211                                 case 056:
1212                                         return "Belgium";
1213                                 case 084:
1214                                         return "Belize";
1215                                 case 204:
1216                                         return "Benin";
1217                                 case 060:
1218                                         return "Bermuda";
1219                                 case 064:
1220                                         return "Bhutan";
1221                                 case 068:
1222                                         return "Bolivia";
1223                                 case 070:
1224                                         return "Bosnia and Herzegowina";
1225                                 case 072:
1226                                         return "Botswana";
1227                                 case 074:
1228                                         return "Bouvet Island";
1229                                 case 076:
1230                                         return "Brazil";
1231                                 case 086:
1232                                         return "British Indian Ocean Territory";
1233                                 case 096:
1234                                         return "Brunei Darussalam";
1235                                 case 100:
1236                                         return "Bulgaria";
1237                                 case 854:
1238                                         return "Burkina Faso";
1239                                 case 108:
1240                                         return "Burundi";
1241                                 case 116:
1242                                         return "Cambodia";
1243                                 case 120:
1244                                         return "Cameroon";
1245                                 case 124:
1246                                         return "Canada";
1247                                 case 132:
1248                                         return "Cape Verde";
1249                                 case 136:
1250                                         return "Cayman Islands";
1251                                 case 140:
1252                                         return "Central African Republic";
1253                                 case 148:
1254                                         return "Chad";
1255                                 case 152:
1256                                         return "Chile";
1257                                 case 156:
1258                                         return "China";
1259                                 case 162:
1260                                         return "Christmas Island";
1261                                 case 166:
1262                                         return "Cocos (Keeling) Islands";
1263                                 case 170:
1264                                         return "Colombia";
1265                                 case 174:
1266                                         return "Comoros";
1267                                 case 178:
1268                                         return "Congo";
1269                                 case 184:
1270                                         return "Cook Islands";
1271                                 case 188:
1272                                         return "Costa Rica";
1273                                 case 384:
1274                                         return "Cote D'Ivoire";
1275                                 case 191:
1276                                         return "Croatia (Local Name: Hrvatska)";
1277                                 case 192:
1278                                         return "Cuba";
1279                                 case 196:
1280                                         return "Cyprus";
1281                                 case 203:
1282                                         return "Czech Republic";
1283                                 case 208:
1284                                         return "Denmark";
1285                                 case 262:
1286                                         return "Djibouti";
1287                                 case 212:
1288                                         return "Dominica";
1289                                 case 214:
1290                                         return "Dominican Republic";
1291                                 case 626:
1292                                         return "East Timor";
1293                                 case 218:
1294                                         return "Ecuador";
1295                                 case 818:
1296                                         return "Egypt";
1297                                 case 222:
1298                                         return "El Salvador";
1299                                 case 226:
1300                                         return "Equatorial Guinea";
1301                                 case 232:
1302                                         return "Eritrea";
1303                                 case 233:
1304                                         return "Estonia";
1305                                 case 231:
1306                                         return "Ethiopia";
1307                                 case 238:
1308                                         return "Falkland Islands (Malvinas)";
1309                                 case 234:
1310                                         return "Faroe Islands";
1311                                 case 242:
1312                                         return "Fiji";
1313                                 case 246:
1314                                         return "Finland";
1315                                 case 250:
1316                                         return "France";
1317                                 case 249:
1318                                         return "France, Metropolitan";
1319                                 case 254:
1320                                         return "French Guiana";
1321                                 case 258:
1322                                         return "French Polynesia";
1323                                 case 260:
1324                                         return "French Southern Territories";
1325                                 case 266:
1326                                         return "Gabon";
1327                                 case 270:
1328                                         return "Gambia";
1329                                 case 268:
1330                                         return "Georgia";
1331                                 case 276:
1332                                         return "Germany";
1333                                 case 288:
1334                                         return "Ghana";
1335                                 case 292:
1336                                         return "Gibraltar";
1337                                 case 300:
1338                                         return "Greece";
1339                                 case 304:
1340                                         return "Greenland";
1341                                 case 308:
1342                                         return "Grenada";
1343                                 case 312:
1344                                         return "Guadeloupe";
1345                                 case 316:
1346                                         return "Guam";
1347                                 case 320:
1348                                         return "Guatemala";
1349                                 case 324:
1350                                         return "Guinea";
1351                                 case 624:
1352                                         return "Guinea-Bissau";
1353                                 case 328:
1354                                         return "Guyana";
1355                                 case 332:
1356                                         return "Haiti";
1357                                 case 334:
1358                                         return "Heard and Mc Donald Islands";
1359                                 case 336:
1360                                         return "Holy See (Vatican City State)";
1361                                 case 340:
1362                                         return "Honduras";
1363                                 case 344:
1364                                         return "Hong Kong";
1365                                 case 348:
1366                                         return "Hungary";
1367                                 case 352:
1368                                         return "Iceland";
1369                                 case 356:
1370                                         return "India";
1371                                 case 360:
1372                                         return "Indonesia";
1373                                 case 364:
1374                                         return "Iran (Islamic Republic of)";
1375                                 case 368:
1376                                         return "Iraq";
1377                                 case 372:
1378                                         return "Ireland";
1379                                 case 376:
1380                                         return "Israel";
1381                                 case 380:
1382                                         return "Italy";
1383                                 case 388:
1384                                         return "Jamaica";
1385                                 case 392:
1386                                         return "Japan";
1387                                 case 400:
1388                                         return "Jordan";
1389                                 case 398:
1390                                         return "Kazakhstan";
1391                                 case 404:
1392                                         return "Kenya";
1393                                 case 296:
1394                                         return "Kiribati";
1395                                 case 408:
1396                                         return "Korea, Democratic People's Republic of";
1397                                 case 410:
1398                                         return "Korea, Republic of";
1399                                 case 414:
1400                                         return "Kuwait";
1401                                 case 417:
1402                                         return "Kyrgyzstan";
1403                                 case 418:
1404                                         return "Lao People's Democratic Republic";
1405                                 case 428:
1406                                         return "Latvia";
1407                                 case 422:
1408                                         return "Lebanon";
1409                                 case 426:
1410                                         return "Lesotho";
1411                                 case 430:
1412                                         return "Liberia";
1413                                 case 434:
1414                                         return "Libyan Arab Jamahiriya";
1415                                 case 438:
1416                                         return "Liechtenstein";
1417                                 case 440:
1418                                         return "Lithuania";
1419                                 case 442:
1420                                         return "Luxembourg";
1421                                 case 446:
1422                                         return "Macau";
1423                                 case 807:
1424                                         return "Macedonia, The Former Yugoslav Republic of";
1425                                 case 450:
1426                                         return "Madagascar";
1427                                 case 454:
1428                                         return "Malawi";
1429                                 case 458:
1430                                         return "Malaysia";
1431                                 case 462:
1432                                         return "Maldives";
1433                                 case 466:
1434                                         return "Mali";
1435                                 case 470:
1436                                         return "Malta";
1437                                 case 584:
1438                                         return "Marshall Islands";
1439                                 case 474:
1440                                         return "Martinique";
1441                                 case 478:
1442                                         return "Mauritania";
1443                                 case 480:
1444                                         return "Mauritius";
1445                                 case 175:
1446                                         return "Mayotte";
1447                                 case 484:
1448                                         return "Mexico";
1449                                 case 583:
1450                                         return "Micronesia, Federated States of";
1451                                 case 498:
1452                                         return "Moldova, Republic of";
1453                                 case 492:
1454                                         return "Monaco";
1455                                 case 496:
1456                                         return "Mongolia";
1457                                 case 500:
1458                                         return "Montserrat";
1459                                 case 504:
1460                                         return "Morocco";
1461                                 case 508:
1462                                         return "Mozambique";
1463                                 case 104:
1464                                         return "Myanmar";
1465                                 case 516:
1466                                         return "Namibia";
1467                                 case 520:
1468                                         return "Nauru";
1469                                 case 524:
1470                                         return "Nepal";
1471                                 case 528:
1472                                         return "Netherlands";
1473                                 case 530:
1474                                         return "Netherlands Antilles";
1475                                 case 540:
1476                                         return "New Caledonia";
1477                                 case 554:
1478                                         return "New Zealand";
1479                                 case 558:
1480                                         return "Nicaragua";
1481                                 case 562:
1482                                         return "Niger";
1483                                 case 566:
1484                                         return "Nigeria";
1485                                 case 570:
1486                                         return "Niue";
1487                                 case 574:
1488                                         return "Norfolk Island";
1489                                 case 580:
1490                                         return "Northern Mariana Islands";
1491                                 case 578:
1492                                         return "Norway";
1493                                 case 512:
1494                                         return "Oman";
1495                                 case 586:
1496                                         return "Pakistan";
1497                                 case 585:
1498                                         return "Palau";
1499                                 case 591:
1500                                         return "Panama";
1501                                 case 598:
1502                                         return "Papua New Guinea";
1503                                 case 600:
1504                                         return "Paraguay";
1505                                 case 604:
1506                                         return "Peru";
1507                                 case 608:
1508                                         return "Philippines";
1509                                 case 612:
1510                                         return "Pitcairn";
1511                                 case 616:
1512                                         return "Poland";
1513                                 case 620:
1514                                         return "Portugal";
1515                                 case 630:
1516                                         return "Puerto Rico";
1517                                 case 634:
1518                                         return "Qatar";
1519                                 case 638:
1520                                         return "Reunion";
1521                                 case 642:
1522                                         return "Romania";
1523                                 case 643:
1524                                         return "Russian Federation";
1525                                 case 646:
1526                                         return "Rwanda";
1527                                 case 659:
1528                                         return "Saint Kitts and Nevis";
1529                                 case 662:
1530                                         return "Saint Lucia";
1531                                 case 670:
1532                                         return "Saint Vincent and The Grenadines";
1533                                 case 882:
1534                                         return "Samoa";
1535                                 case 674:
1536                                         return "San Marino";
1537                                 case 678:
1538                                         return "Sao Tome and Principe";
1539                                 case 682:
1540                                         return "Saudi Arabia";
1541                                 case 686:
1542                                         return "Senegal";
1543                                 case 690:
1544                                         return "Seychelles";
1545                                 case 694:
1546                                         return "Sierra Leone";
1547                                 case 702:
1548                                         return "Singapore";
1549                                 case 703:
1550                                         return "Slovakia (Slovak Republic)";
1551                                 case 705:
1552                                         return "Slovenia";
1553                                 case 090:
1554                                         return "Solomon Islands";
1555                                 case 706:
1556                                         return "Somalia";
1557                                 case 710:
1558                                         return "South Africa";
1559                                 case 239:
1560                                         return "South Georgia and The South Sandwich Islands";
1561                                 case 724:
1562                                         return "Spain";
1563                                 case 144:
1564                                         return "Sri Lanka";
1565                                 case 654:
1566                                         return "St. Helena";
1567                                 case 666:
1568                                         return "St. Pierre and Miquelon";
1569                                 case 736:
1570                                         return "Sudan";
1571                                 case 740:
1572                                         return "Suriname";
1573                                 case 744:
1574                                         return "Svalbard and Jan Mayen Islands";
1575                                 case 748:
1576                                         return "Swaziland";
1577                                 case 752:
1578                                         return "Sweden";
1579                                 case 756:
1580                                         return "Switzerland";
1581                                 case 760:
1582                                         return "Syrian Arab Republic";
1583                                 case 158:
1584                                         return "Taiwan, Province of China";
1585                                 case 762:
1586                                         return "Tajikistan";
1587                                 case 834:
1588                                         return "Tanzania, United Republic of";
1589                                 case 764:
1590                                         return "Thailand";
1591                                 case 768:
1592                                         return "Togo";
1593                                 case 772:
1594                                         return "Tokelau";
1595                                 case 776:
1596                                         return "Tonga";
1597                                 case 780:
1598                                         return "Trinidad and Tobago";
1599                                 case 788:
1600                                         return "Tunisia";
1601                                 case 792:
1602                                         return "Turkey";
1603                                 case 795:
1604                                         return "Turkmenistan";
1605                                 case 796:
1606                                         return "Turks and Caicos Islands";
1607                                 case 798:
1608                                         return "Tuvalu";
1609                                 case 800:
1610                                         return "Uganda";
1611                                 case 804:
1612                                         return "Ukraine";
1613                                 case 784:
1614                                         return "United Arab Emirates";
1615                                 case 826:
1616                                         return "United Kingdom";
1617                                 case 840:
1618                                         return "United States";
1619                                 case 581:
1620                                         return "United States Minor Outlying Islands";
1621                                 case 858:
1622                                         return "Uruguay";
1623                                 case 860:
1624                                         return "Uzbekistan";
1625                                 case 548:
1626                                         return "Vanuatu";
1627                                 case 862:
1628                                         return "Venezuela";
1629                                 case 704:
1630                                         return "Viet Nam";
1631                                 case 092:
1632                                         return "Virgin Islands (British)";
1633                                 case 850:
1634                                         return "Virgin Islands (U.S.)";
1635                                 case 876:
1636                                         return "Wallis and Futuna Islands";
1637                                 case 732:
1638                                         return "Western Sahara";
1639                                 case 887:
1640                                         return "Yemen";
1641                                 case 891:
1642                                         return "Yugoslavia";
1643                                 case 180:
1644                                         return "Zaire";
1645                                 case 894:
1646                                         return "Zambia";
1647                                 case 716:
1648                                         return "Zimbabwe";
1649                                 default:
1650                                         throw new Exception ("This code should not be reached.");
1651                                 }
1652                         }
1653                 }
1654
1655                 public virtual bool IsMetric {
1656                         get {
1657                                 switch (NLS_id) {
1658                                 case 203: // Czech Republic
1659                                         return true;
1660                                 case 840: // United States
1661                                         return false;
1662                                 default:
1663                                         throw new Exception ("FIXME. Please define.");
1664                                 }
1665                         }
1666                 }
1667
1668                 public virtual string ISOCurrencySymbol {
1669                         get {
1670                                 switch (NLS_id) {
1671                                 default:
1672                                         throw new Exception ("This code should not be reached.");
1673                                 }
1674                         }
1675                 }
1676
1677                 //
1678                 // methods
1679
1680                 public override bool Equals(object value) {
1681                         return value == this;
1682                 }
1683
1684                 public override int GetHashCode () {
1685                         return NLS_id.GetHashCode ();
1686                 }
1687         }
1688
1689 }