Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-4303460

RFE: need LCID -> Locale mappings for new Windows 2000 locales

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Fixed
    • Icon: P4 P4
    • 1.4.0
    • 1.3.0
    • core-libs
    • beta
    • x86
    • windows_nt



      Name: mc57594 Date: 01/08/2000


      This bug is related to Sun bug#4193744

      Through the fix for bug#4193744 we are able to support 13 of the new
      23 locales for Windows 2000. An examination of the JDK 1.3R source
      code shows that 12 Windows 2000 locales still require VM support.
      As a side note the 13 LCID just happened to have been defined (but not
      enabled) in the Windows NT 4.0 product.

      As part of this bug, I'm including a fix to the
      \src\win32\native\common\locale_str.h file to provide proper support
      for the Windows 2000 locales. See the fix at the bottom of this bug
      report.
      The remaining 12 locales that require support are:

      Armenian
      Azeri (Cyrillic)
      Azeri (Latin)
      Georgian
      Kazakh
      Konkani
      Marathi
      Sanskrit
      Tamil
      Tatar
      Uzbek (Cyrillic)
      Uzbek (Latin)

      An up-to-date list of the Microsoft locales can be found at:
      http://www.microsoft.com/globaldev/FAQs/Locales.asp
      This list has been confirmed to match the locales available using the
      production release of Windows 2000 (just received from Microsoft).
      Beware that some searches on 'locale' or 'LCID' on the Microsoft web
      site may reveal outdated or incorrect lists of locales/LCIDs.

      Note that the fix below does not include Azeri or Uzbek. Microsoft
      NLSAPI code indicates that the Cyrillic forms of these locales have
      the same country return as the Latin forms. Most likely a variant will
      be required to differentiate these. I leave the implementation of
      support for these four locales to Sun.

      Also, I'm inlcuding a fix for the Urdu locale which is still missing
      a country. The Microsoft NLSAPI code indicates that the country for
      the 0x0420 Urdu LCID is Pakistan (ISO-3166 abbreviation PK).
      Confusingly enough, the Microsoft SDK documents sublanguages for
      Urdu-India as well as Urdu-Pakistan. As I was unable to find the
      correct LCID for Urdu-India, it is not included in this fix.

      The following code should be replaced in the file \src\win32\native\common\locale_str.h:
      /* mappings for real Windows LCID values */
      0x0401, "ar_SA",
      0x0402, "bg_BG",
      0x0403, "ca_ES",
      0x0404, "zh_TW",
      0x0405, "cs_CZ",
      0x0406, "da_DK",
      0x0407, "de_DE",
      0x0408, "el_GR",
      0x0409, "en_US",
      0x040a, "es_ES", /* (traditional sort) */
      0x040b, "fi_FI",
      0x040c, "fr_FR",
      0x040d, "iw_IL",
      0x040e, "hu_HU",
      0x040f, "is_IS",
      0x0410, "it_IT",
      0x0411, "ja_JP",
      0x0412, "ko_KR",
      0x0413, "nl_NL",
      0x0414, "no_NO",
      0x0415, "pl_PL",
      0x0416, "pt_BR",
      0x0417, "rm_CH",
      0x0418, "ro_RO",
      0x0419, "ru_RU",
      0x041a, "hr_HR",
      0x041b, "sk_SK",
      0x041c, "sq_AL",
      0x041d, "sv_SE",
      0x041e, "th_TH",
      0x041f, "tr_TR",
      0x0420, "ur_PK", /* The country for this Urdu LCID is Pakistan */
      0x0421, "in_ID",
      0x0422, "uk_UA",
      0x0423, "be_BY",
      0x0424, "sl_SI",
      0x0425, "et_EE",
      0x0426, "lv_LV",
      0x0427, "lt_LT",
      0x0429, "fa_IR",
      0x042a, "vi_VN",
      0x042b, "hy_AM", /* added for Windows 2000 Armenian locale */
      /* 0x042c, "az_AZ", may need a variant for Windows 2000 Azeri (Cyrillic) locale */
      0x042d, "eu_ES",
      /* 0x042e, "??", no ISO-639 abbreviation for Sorbian */
      0x042f, "mk_MK",
      /* 0x0430, "??", no ISO-639 abbreviation for Sutu */
      0x0431, "ts", /* (country?) */
      0x0432, "tn_BW",
      /* 0x0433, "??", no ISO-639 abbreviation for Venda */
      0x0434, "xh", /* (country?) */
      0x0435, "zu", /* (country?) */
      0x0436, "af_ZA",
      0x0437, "ka_GE", /* added for Windows 2000 Georgian locale */
      0x0438, "fo_FO",
      0x0439, "hi_IN",
      0x043a, "mt_MT",
      /* 0x043b, "??", no ISO-639 abbreviation for Sami */
      0x043c, "gd_GB",
      0x043d, "yi", /* (country?) */
      0x043e, "ms_MY",
      0x043f, "kk_KZ", /* added for Windows 2000 Kazakh locale */
      0x0441, "sw_KE",
      /* 0x0443, "uz_UZ", may need a variant for Windows 2000 Uzbek (Cyrillic) locale */
      0x0444, "tt", /* no ISO 3166 abbreviation exists for Windows 2000 Tatar (Tatarstan) locale */
      0x0449, "ta_IN", /* added for Windows 2000 Tamil locale */
      0x044e, "mr_IN", /* added for Windows 2000 Marathi locale */
      0x044f, "sa_IN", /* added for Windows 2000 Sanskrit locale */
      /* 0x0457, "??_IN", no ISO-639 abbreviation for Windows 2000 Konkani locale */
      0x0801, "ar_IQ",
      0x0804, "zh_CN",
      0x0807, "de_CH",
      0x0809, "en_GB",
      0x080a, "es_MX",
      0x080c, "fr_BE",
      0x0810, "it_CH",
      0x0812, "ko_KR",
      0x0813, "nl_BE",
      0x0814, "no_NO_NY",
      0x0816, "pt_PT",
      0x0818, "ro_MD",
      0x0819, "ru_MD",
      0x081a, "sh_YU",
      0x081d, "sv_FI",
      /* 0x082c, "az_AZ", may need a variant for Windows 2000 Azeri (Latin) locale */
      0x083c, "ga_IE",
      0x083e, "ms_BN",
      /* 0x0843, "uz_UZ", may need a variant for Windows 2000 Uzbek (Latin) locale */
      0x0c01, "ar_EG",
      0x0c04, "zh_HK",
      0x0c07, "de_AT",
      0x0c09, "en_AU",
      0x0c0a, "es_ES", /* (modern sort) */
      0x0c0c, "fr_CA",
      0x0c1a, "sr_YU",
      0x1001, "ar_LY",
      0x1004, "zh_SG",
      0x1007, "de_LU",
      0x1009, "en_CA",
      0x100a, "es_GT",
      0x100c, "fr_CH",
      0x1401, "ar_DZ",
      0x1404, "zh_MO",
      0x1407, "de_LI",
      0x1409, "en_NZ",
      0x140a, "es_CR",
      0x140c, "fr_LU",
      0x1801, "ar_MA",
      0x1809, "en_IE",
      0x180a, "es_PA",
      0x180c, "fr_MC",
      0x1c01, "ar_TN",
      0x1c09, "en_ZA",
      0x1c0a, "es_DO",
      0x2001, "ar_OM",
      0x2009, "en_JM",
      0x200a, "es_VE",
      0x2401, "ar_YE",
      0x2409, "en", /* ("Caribbean", which could be any of many countries) */
      0x240a, "es_CO",
      0x2801, "ar_SY",
      0x2809, "en_BZ",
      0x280a, "es_PE",
      0x2c01, "ar_JO",
      0x2c09, "en_TT",
      0x2c0a, "es_AR",
      0x3001, "ar_LB",
      0x3009, "en_ZW",
      0x300a, "es_EC",
      0x3401, "ar_KW",
      0x3409, "en_PH",
      0x340a, "es_CL",
      0x3801, "ar_AE",
      0x380a, "es_UY",
      0x3c01, "ar_BH",
      0x3c0a, "es_PY",
      0x4001, "ar_QA",
      0x400a, "es_BO",
      0x440a, "es_SV",
      0x480a, "es_HN",
      0x4c0a, "es_NI",
      0x500a, "es_PR"
      };
      (Review ID: 99681)
      ======================================================================

            sherman Xueming Shen
            mchamnessunw Mark Chamness (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: