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