home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / inprise / JRUNTIME.Z / locale_str.h < prev    next >
Text File  |  1998-05-08  |  15KB  |  387 lines

  1. /*
  2.  * @(#)locale_str.h    1.14 98/02/17
  3.  * 
  4.  * Copyright (c) 1995, 1996 Sun Microsystems, Inc. All Rights Reserved.
  5.  * 
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  * 
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  * 
  19.  * CopyrightVersion 1.1_beta
  20.  * 
  21.  */
  22. /*
  23.  * Windows language string to ISO639 string mapping table
  24.  */
  25.  
  26.  
  27. static char *language_names[] = {
  28.     "arabic",         "ar",        /* Arabic */
  29.     "belarusian",     "be",        /* Belorussian */
  30.     "bulgarian",     "bg",        /* Bulgarian */
  31.     "catalan",        "ca",        /* Catalan */
  32.     "csy",        "cs",        /* Czech */
  33.     "czech",        "cs",
  34.     "dan",        "da",        /* Danish */
  35.     "danish",        "da",
  36.     "dea",        "de",        /* German */
  37.     "des",        "de",
  38.     "deu",        "de",
  39.     "german",        "de",
  40.     "german-austrian",    "de",
  41.     "german-swiss",    "de",
  42.     "swiss",        "de",
  43.     "ell",        "el",        /* Greek */
  44.     "greek",        "el",
  45.     "american",        "en",        /* English */
  46.     "american english",    "en",
  47.     "american-english",    "en",
  48.     "australian",    "en",
  49.     "canadian",        "en",
  50.     "ena",        "en",
  51.     "enc",        "en",
  52.     "eng",        "en",
  53.     "english",        "en",
  54.     "english-american",    "en",
  55.     "english-aus",    "en",
  56.     "english-can",    "en",
  57.     "english-nz",    "en",
  58.     "english-uk",    "en",
  59.     "english-us",    "en",
  60.     "english-usa",    "en",
  61.     "enu",        "en",
  62.     "enz",        "en",
  63.     "uk",        "en",
  64.     "us",        "en",
  65.     "usa",        "en",
  66.     "esm",        "es",        /* Spanish */
  67.     "esn",        "es",
  68.     "esp",        "es",
  69.     "spanish",        "es",
  70.     "spanish-mexican",    "es",
  71.     "spanish - traditional sort",    "es",
  72.     "spanish - modern sort",    "es",
  73.     "estonian",        "et",        /* Estonian */
  74.     "fin",        "fi",        /* Finnish */
  75.     "finnish",        "fi",
  76.     "fra",        "fr",
  77.     "frb",        "fr",        /* French */
  78.     "frc",        "fr",
  79.     "french",        "fr",
  80.     "french-belgian",    "fr",
  81.     "french-canadian",    "fr",
  82.     "french-swiss",    "fr",
  83.     "hebrew",        "iw",        /* Hebrew */
  84.     "croatian",        "hr",        /* Croatian */
  85.     "hun",        "hu",        /* Hungarian */
  86.     "hungarian",    "hu",
  87.     "icelandic",    "is",        /* Icelandic */
  88.     "isl",        "is",
  89.     "ita",        "it",        /* Italian */
  90.     "italian",        "it",
  91.     "italian-swiss",    "it",
  92.     "its",        "it",
  93.     "japanese",        "ja",        /* Japanese */
  94.     "jpn",        "ja",
  95.     "kor",        "ko",        /* Korean */
  96.     "korean",        "ko",
  97.     "lithuanian",    "lt",        /* Lithuanian */
  98.     "latvian",        "lv",        /* Latvian */
  99.     "macedonian",    "mk",        /* Macedonian */
  100.     "belgian",        "nl",        /* Dutch */
  101.     "dutch",        "nl",
  102.     "dutch-belgian",    "nl",
  103.     "nlb",        "nl",        /* English */
  104.     "nld",        "nl",
  105.     "non",        "no",        /* Norwegian */
  106.     "nor",        "no",
  107.     "norwegian",    "no",
  108.     "norwegian (bokm\xe5l)",    "no",
  109.     "norwegian (nynorsk)","no",
  110.     "plk",        "pl",        /* Polish */
  111.     "polish",        "pl",
  112.     "portuguese",    "pt",        /* Portuguese */
  113.     "portuguese-brazilian","pt",
  114.     "ptb",        "pt",
  115.     "ptg",        "pt",
  116.     "romanian",        "ro",        /* Romanian */
  117.     "rus",        "ru",        /* Russian */
  118.     "russian",        "ru",
  119.     "sky",        "sk",        /* Slovak */
  120.     "slovak",        "sk",
  121.     "slovene",        "sl",        /* Slovene */
  122.     "albanian",        "sq",        /* Albanian */
  123.     "serbian",        "sr",        /* Serbian */
  124.     "sve",        "sv",        /* Swedish */
  125.     "swedish",        "sv",
  126.     "thai",        "th",        /* Thai */
  127.     "trk",        "tr",
  128.     "turkish",        "tr",        /* Turkish */
  129.     "ukrainian",        "uk",
  130.     "chinese",        "zh",        /* Chinese */
  131.     "chinese(prc)",    "zh",
  132.     "chinese(taiwan)",    "zh",
  133.     "chinese-simplified","zh",
  134.     "chinese-traditional","zh",
  135.     "chs",        "zh",
  136.     "cht",        "zh",
  137.     "",
  138. };
  139.  
  140. /*
  141.  * Windows country string to ISO3166 two characters string mapping table
  142.  */
  143. static char *region_names[] = {
  144.     "austria", "AT",        /* Austria */
  145.     "aus", "AU",        /* Australia */
  146.     "australia", "AU",
  147.     "belarus", "BY",            /* Belarus */
  148.     "bel", "BE",        /* Belgium */
  149.     "belgium", "BE",
  150.     "bra", "BR",        /* Brazil */
  151.     "brazil", "BR",        
  152.     "can", "CA",        /* Canada */
  153.     "canada", "CA",
  154.     "cze", "CZ",        /* Czech Republic */
  155.     "czech", "CZ",
  156.     "denmark", "DK",        /* Denmark */
  157.     "dnk", "DK",
  158.     "fin", "FI",        /* Finland */
  159.     "finland", "FI",
  160.     "fra", "FR",        /* France */
  161.     "france", "FR",
  162.     "deu", "DE",        /* Germany */
  163.     "germany", "DE",
  164.     "grc", "GR",        /* Greece */
  165.     "greece", "GR",
  166.     "hkg", "HK",        /* Hong Kong */
  167.     "hong kong", "HK",
  168.     "hong-kong", "HK",
  169.     "hun", "HU",        /* Hungary */
  170.     "hungary", "HU",
  171.     "iceland", "IS",        /* Iceland */
  172.     "isl", "IS",
  173.     "ireland", "IE",        /* Ireland */
  174.     "irl", "IE",
  175.     "israel", "IL",        /* Israel */
  176.     "ita", "IT",        /* Italy */
  177.     "italy", "IT",
  178.     "japan", "JP",        /* Japan */
  179.     "jpn", "JP",
  180.     "mex", "MX",        /* Mexico */
  181.     "mexico", "MX",
  182.     "nld", "NL",        /* Netherlands */
  183.     "holland", "NL",
  184.     "netherlands", "NL",
  185.     "new zealand", "NZ",    /* New Zealand */
  186.     "new-zealand", "NZ",
  187.     "nz", "NZ",
  188.     "nzl", "NZ",
  189.     "nor", "NO",        /* Norway */
  190.     "norway", "NO",
  191.     "china", "CN",        /* People's Republic of China */
  192.     "chn", "CN",
  193.     "pr china", "CN",
  194.     "pr-china", "CN",
  195.     "people's republic of china", "CN",
  196.     "pol", "PL",        /* Poland */
  197.     "poland", "PL",
  198.     "prt", "PT",
  199.     "portugal", "PT",
  200.     "rus", "RU",        /* Russia */
  201.     "russia", "RU",
  202.     "sgp", "SG",        /* Singapore */
  203.     "singapore", "SG",
  204.     "svk", "SK",        /* Slovak Republic */
  205.     "slovak", "SK",
  206.     "kor", "KO",        /* South Korea */
  207.     "korea", "KO",
  208.     "south korea", "KO",
  209.     "south-korea", "KO",
  210.     "esp", "ES",        /* Spain */
  211.     "spain", "ES",
  212.     "swe", "SE",        /* Sweden */
  213.     "sweden", "SE",
  214.     "che", "CH",        /* Switzerland */
  215.     "switzerland", "CH",
  216.     "taiwan", "TW",        /* Taiwan */
  217.     "twn", "TW",
  218.     "thailand", "TH",        /* Thailand */
  219.     "tur", "TR",        /* Turkey */
  220.     "turkey", "TR",
  221.     "britain", "GB",        /* United Kingdom */
  222.     "england", "GB",
  223.     "gbr", "GB",
  224.     "great britain", "GB",
  225.     "uk", "GB",
  226.     "united kingdom", "GB",
  227.     "united-kingdom", "GB",
  228.     "america", "US",        /* United States of America */
  229.     "united states", "US",
  230.     "united-states", "US",
  231.     "us", "US",
  232.     "usa", "US",
  233.     "ukraine", "UA",
  234.     "",
  235. };
  236.  
  237. /*
  238.  * Windows locale string to Encoding converter 
  239.  * default file.encoding is "8859_1".
  240.  */
  241. static char *encoding_names[] = {
  242.     "ar", "Cp1256",
  243.     "be", "Cp1251",
  244.     "bg", "Cp1251",
  245.     "cs", "Cp1250",
  246.     "el", "Cp1253",
  247.     "et", "Cp1257",
  248.     "iw", "Cp1255",
  249.     "hu", "Cp1250",
  250.     "ja", "SJIS",
  251.     "ko", "EUC_KR",
  252.     "lt", "Cp1257",
  253.     "lv", "Cp1257",
  254.     "mk", "Cp1251",
  255.     "pl", "Cp1250",
  256.     "ro", "Cp1250",
  257.     "ru", "Cp1251",
  258.     "sh", "Cp1250",
  259.     "sk", "Cp1250",
  260.     "sl", "Cp1250",
  261.     "sq", "Cp1250",
  262.     "sr", "Cp1251",
  263.     "th", "MS874",
  264.     "tr", "Cp1254",
  265.     "uk", "Cp1251",
  266.     "zh", "GBK",
  267.     "zh_TW", "MS950",
  268.     "",
  269. };
  270.  
  271. /*
  272.  * Windows long TimeZone string to
  273.  * user.timezone representation table.
  274.  * This is a temporary fix for JDK 1.1.6; for 1.2 we will go to the full names, shown
  275.  * below in comments. [LIU]
  276.  */
  277. static char *timezone_names[] = {
  278.     /* Win32 zone name                 Java zone name                     Win32 offset */
  279.     /* ---------------                 --------------                     ------------ */
  280.     "Dateline Standard Time",          "Pacific/Auckland",                /* GMT-12:00 */
  281.     "Samoa Standard Time",             "MIT" /*"Pacific/Apia"*/,          /* GMT-11:00 */
  282.     "Hawaiian Standard Time",          "HST" /*"Pacific/Honolulu"*/,      /* GMT-10:00 */
  283.     "Alaskan Standard Time",           "AST" /*"America/Anchorage"*/,     /* GMT-09:00 */
  284.     "Pacific Standard Time",           "PST" /*"America/Los_Angeles"*/,   /* GMT-08:00 */
  285.     "Mountain Standard Time",          "America/Denver",                  /* GMT-07:00 */
  286.     "US Mountain Standard Time",       "MST" /*"America/Phoenix"*/,       /* GMT-07:00 */
  287.     "Canada Central Standard Time",    "America/Costa_Rica",              /* GMT-06:00 */
  288.     "Mexico Standard Time",            "America/Costa_Rica",              /* GMT-06:00 */
  289.     "Central Standard Time",           "CST" /*"America/Chicago"*/,       /* GMT-06:00 */
  290.     "Eastern Standard Time",           "EST" /*"America/New_York"*/,      /* GMT-05:00 */
  291.     "SA Pacific Standard Time",        "America/Indianapolis",            /* GMT-05:00 */
  292.     "US Eastern Standard Time",        "America/Indianapolis",            /* GMT-05:00 */
  293.     "SA Western Standard Time",        "America/Caracas",                 /* GMT-04:00 */
  294.     "Atlantic Standard Time",          "PRT" /*"America/Halifax"*/,       /* GMT-04:00 */
  295.     "Newfoundland Standard Time",      "CNT" /*"America/St_Johns"*/,      /* GMT-03:30 */
  296.     "E. South America Standard Time",  "BET" /*"America/Sao_Paulo"*/,     /* GMT-03:00 */
  297.     "SA Eastern Standard Time",        "AGT" /*"America/Buenos_Aires"*/,  /* GMT-03:00 */
  298.     "Mid-Atlantic Standard Time",      "Atlantic/South_Georgia",          /* GMT-02:00 */
  299.     "Azores Standard Time",            "CAT" /*"Atlantic/Azores"*/,       /* GMT-01:00 */
  300.     "GMT",                             "Europe/London",                   /* GMT       */
  301.     "GMT Standard Time",               "GMT" /*"Africa/Casablanca"*/,     /* GMT       */
  302.     "Central Europe Standard Time",    "Europe/Paris",                    /* GMT+01:00 */
  303.     "Romance Standard Time",           "ECT" /*"Europe/Paris"*/,          /* GMT+01:00 */
  304.     "W. Europe Standard Time",         "Europe/Paris",                    /* GMT+01:00 */
  305.     "Israel Standard Time",            "Asia/Jerusalem",                  /* GMT+02:00 */
  306.     "South Africa Standard Time",      "Africa/Johannesburg",             /* GMT+02:00 */
  307.     "GFT Standard Time",               "Europe/Istanbul",                 /* GMT+02:00 */
  308.     "Egypt Standard Time",             "EET" /*"Africa/Cairo"*/,          /* GMT+02:00 */
  309.     "E. Europe Standard Time",         "Asia/Beirut",                     /* GMT+02:00 */
  310.     "Saudi Arabia Standard Time",      "EAT" /*"Asia/Riyadh"*/,           /* GMT+03:00 */
  311.     "Russian Standard Time",           "Europe/Moscow",                   /* GMT+03:00 */
  312.     "Iran Standard Time",              "MET" /*"Asia/Tehran"*/,           /* GMT+03:30 */
  313.     "Arabian Standard Time",           "NET" /*"Asia/Yerevan"*/,          /* GMT+04:00 */
  314.     "Afghanistan Standard Time",       "Asia/Kabul",                      /* GMT+04:30 */
  315.     "West Asia Standard Time",         "PLT" /*"Asia/Karachi"*/,          /* GMT+05:00 */
  316.     "India Standard Time",             "IST" /*"Asia/Calcutta"*/,         /* GMT+05:30 */
  317.     "Central Asia Standard Time",      "BST" /*"Asia/Dacca"*/,            /* GMT+06:00 */
  318.     "Bangkok Standard Time",           "VST" /*"Asia/Bangkok"*/,          /* GMT+07:00 */
  319.     "Taipei Standard Time",            "Asia/Shanghai",                   /* GMT+08:00 */
  320.     "China Standard Time",             "CTT" /*"Asia/Shanghai"*/,         /* GMT+08:00 */
  321.     "Tokyo Standard Time",             "JST" /*"Asia/Tokyo"*/,            /* GMT+09:00 */
  322.     "AUS Central Standard Time",       "Australia/Darwin",                /* GMT+09:30 */
  323.     "Cen. Australia Standard Time",    "ACT" /*"Australia/Adelaide"*/,    /* GMT+09:30 */
  324.     "Tasmania Standard Time",          "Australia/Hobart",                /* GMT+10:00 */
  325.     "Sydney Standard Time",            "AET" /*"Australia/Brisbane"*/,    /* GMT+10:00 */
  326.     "West Pacific Standard Time",      "Asia/Vladivostok",                /* GMT+10:00 */
  327.     "Central Pacific Standard Time",   "SST" /*"Pacific/Guadalcanal"*/,   /* GMT+11:00 */
  328.     "Fiji Standard Time",              "Pacific/Fiji",                    /* GMT+12:00 */
  329.     "New Zealand Standard Time",       "NST" /*"Pacific/Auckland"*/,      /* GMT+12:00 */
  330.     "",
  331. };
  332.  
  333. typedef struct localeTZnode {
  334.     WORD langID;
  335.     char * tzName;
  336. } LocaleTZnode;
  337.  
  338.  
  339. static LocaleTZnode defaultTZ [] = {
  340.     { MAKELANGID(LANG_BULGARIAN, SUBLANG_DEFAULT),             "EET" },
  341.     { MAKELANGID(LANG_CHINESE,   SUBLANG_CHINESE_TRADITIONAL), "CTT" },
  342.     { MAKELANGID(LANG_CHINESE,   SUBLANG_CHINESE_SIMPLIFIED),  "CTT" },
  343.     { MAKELANGID(LANG_CHINESE,   SUBLANG_CHINESE_HONGKONG),    "CTT" },
  344.     { MAKELANGID(LANG_CHINESE,   SUBLANG_CHINESE_SINGAPORE),   "CTT" },
  345.     { MAKELANGID(LANG_CROATIAN,  SUBLANG_DEFAULT),             "ECT" },
  346.     { MAKELANGID(LANG_CZECH,     SUBLANG_DEFAULT),             "ECT" },
  347.     { MAKELANGID(LANG_DANISH,    SUBLANG_DEFAULT),             "ECT" },
  348.     { MAKELANGID(LANG_DUTCH,     SUBLANG_DUTCH),               "ECT" },
  349.     { MAKELANGID(LANG_DUTCH,     SUBLANG_DUTCH_BELGIAN),       "ECT" },
  350.     { MAKELANGID(LANG_ENGLISH,   SUBLANG_DEFAULT),             "PST" },
  351.     { MAKELANGID(LANG_ENGLISH,   SUBLANG_ENGLISH_UK),          "GMT" },
  352.     { MAKELANGID(LANG_ENGLISH,   SUBLANG_ENGLISH_AUS),         "AET" },
  353.     { MAKELANGID(LANG_ENGLISH,   SUBLANG_ENGLISH_CAN),         "PST" },
  354.     { MAKELANGID(LANG_ENGLISH,   SUBLANG_ENGLISH_NZ),          "NST" },
  355.     { MAKELANGID(LANG_ENGLISH,   SUBLANG_ENGLISH_EIRE),        "GMT" },
  356.     { MAKELANGID(LANG_FINNISH,   SUBLANG_DEFAULT),             "EET" },
  357.     { MAKELANGID(LANG_FRENCH,    SUBLANG_FRENCH),              "ECT" },
  358.     { MAKELANGID(LANG_FRENCH,    SUBLANG_FRENCH_BELGIAN),      "ECT" },
  359.     { MAKELANGID(LANG_FRENCH,    SUBLANG_FRENCH_CANADIAN),     "EST" },
  360.     { MAKELANGID(LANG_FRENCH,    SUBLANG_FRENCH_SWISS),        "ECT" },
  361.     { MAKELANGID(LANG_GERMAN,    SUBLANG_GERMAN),              "ECT" },
  362.     { MAKELANGID(LANG_GERMAN,    SUBLANG_GERMAN_SWISS),        "ECT" },
  363.     { MAKELANGID(LANG_GERMAN,    SUBLANG_GERMAN_AUSTRIAN),     "ECT" },
  364.     { MAKELANGID(LANG_GREEK,     SUBLANG_DEFAULT),             "EET" },
  365.     { MAKELANGID(LANG_HUNGARIAN, SUBLANG_DEFAULT),             "ECT" },
  366.     { MAKELANGID(LANG_ICELANDIC, SUBLANG_DEFAULT),             "GMT" },
  367.     { MAKELANGID(LANG_ITALIAN,   SUBLANG_ITALIAN),             "ECT" },
  368.     { MAKELANGID(LANG_ITALIAN,   SUBLANG_ITALIAN_SWISS),       "ECT" },
  369.     { MAKELANGID(LANG_JAPANESE,  SUBLANG_DEFAULT),             "JST" },
  370.     { MAKELANGID(LANG_KOREAN,    SUBLANG_DEFAULT),             "JST" },
  371.     { MAKELANGID(LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL),    "ECT" },
  372.     { MAKELANGID(LANG_NORWEGIAN, SUBLANG_NORWEGIAN_NYNORSK),   "ECT" },
  373.     { MAKELANGID(LANG_POLISH,    SUBLANG_DEFAULT),             "ECT" },
  374.     { MAKELANGID(LANG_PORTUGUESE,SUBLANG_PORTUGUESE),          "ECT" },
  375.     { MAKELANGID(LANG_PORTUGUESE,SUBLANG_PORTUGUESE_BRAZILIAN),"IET" },
  376.     { MAKELANGID(LANG_ROMANIAN,  SUBLANG_DEFAULT),             "ECT" },
  377.     { MAKELANGID(LANG_RUSSIAN,   SUBLANG_DEFAULT),             "EET" },
  378.     { MAKELANGID(LANG_SLOVAK,    SUBLANG_DEFAULT),             "ECT" },
  379.     { MAKELANGID(LANG_SLOVENIAN, SUBLANG_DEFAULT),             "ECT" },
  380.     { MAKELANGID(LANG_SPANISH,   SUBLANG_SPANISH),             "ECT" },
  381.     { MAKELANGID(LANG_SPANISH,   SUBLANG_SPANISH_MEXICAN),     "PST" },
  382.     { MAKELANGID(LANG_SPANISH,   SUBLANG_SPANISH_MODERN),      "ECT" },
  383.     { MAKELANGID(LANG_SWEDISH,   SUBLANG_DEFAULT),             "ECT" },
  384.     { MAKELANGID(LANG_TURKISH,   SUBLANG_DEFAULT),             "EET" },
  385.     { 0 , "" }
  386. };
  387.