UPD Mail Archive: Re: UPD> Re: UPDF open standard for locales

Re: UPD> Re: UPDF open standard for locales

From: Jim Lo (Jim.Lo@Sun.COM)
Date: Wed Apr 25 2001 - 19:31:14 EDT

  • Next message: Norbert Schade: "UPD> color brainstorming"

    Hi,

    Given a database about which popular ISO-639 languages are spoken in those ISO-3166 countries,
    attached (Locales.jimlo.txt) for your reference please find the following two tables
    automatically generated by the attached program (LocaleLang.java):

    Table 1 -- Languages spoken in any particular ISO-3166 country (official languages are listed first)

    Table 2 -- Countries where any particular ISO-639 language is spoken (old codes: iw,ji,in; new
    codes: he, yi,id)

    The format of the table 2 is intentionally conforming to that used in the
    http://www.li18nux.org/li18nux2k/ for the ease of comparison.

    There are 438 predefined locales (compared to 130 in li18nux2k) as a result of
    simply a real-life country/language combination.

    Hope it helps.

    rgds,

    Jim Lo
    Internet Appliance Group
    Sun Microsystems, Inc.

    .............................

    Table 1 -- Languages spoken in any particular ISO-3166 country (official languages are listed first)

      1: Andorra (AD: fr es)
            French
            Spanish

      2: United Arab Emirates (AE: ar en)
            Arabic
            English

      3: Afghanistan (AF: ps)
            Pashto (Pushto)

      4: AG (AG: en)
            English

      5: Anguilla (AI: rn)
            Kirundi

      6: Albania (AL: sq)
            Albanian

      7: Armenia (AM: hy ru)
            Armenian
            Russian

      8: Netherlands Antilles (AN: nl en)
            Dutch
            English

      9: Angola (AO: pt)
            Portuguese

     10: AQ (AQ:)

     11: Argentina (AR: es)
            Spanish

     12: AS (AS: en sm)
            English
            Samoan

     13: Austria (AT: de)
            German

     14: Australia (AU: en)
            English

     15: Aruba (AW: nl en)
            Dutch
            English

     16: Azerbaijan (AZ: az hy ru)
            Azerbaijani
            Armenian
            Russian

     17: Bosnia and Herzegovina (BA: sr sh hr sl mk sq)
            Serbian
            Serbo-Croatian
            Croatian
            Slovenian
            Macedonian
            Albanian

     18: Barbados (BB: en)
            English

     19: Bangladesh (BD: bn hi bh en)
            Bengali
            Hindi
            Bihari
            English

     20: Belgium (BE: fr nl de)
            French
            Dutch
            German

     21: Burkina Faso (BF: fr)
            French

     22: Bulgaria (BG: bg tr)
            Bulgarian
            Turkish

     23: Bahrain (BH: ar en)
            Arabic
            English

     24: Burundi (BI: rn fr sw)
            Kirundi
            French
            Swahili

     25: Benin (BJ: fr)
            French

     26: Bermuda (BM: en)
            English

     27: Brunei (BN: ms en zh)
            Malay
            English
            Chinese

     28: Bolivia (BO: es ay qu)
            Spanish
            Aymara
            Quechua

     29: Brazil (BR: pt)
            Portuguese

     30: Bahamas (BS: en)
            English

     31: Bhutan (BT: dz en ne)
            Bhutani
            English
            Nepali

     32: BV (BV: no)
            Norwegian

     33: Botswana (BW: en tn)
            English
            Setswana

     34: Belarus (BY: be ru)
            Byelorussian
            Russian

     35: Belize (BZ: en es)
            English
            Spanish

     36: Canada (CA: en fr)
            English
            French

     37: CC (CC: en)
            English

     38: Central African Republic (CF: fr sg)
            French
            Sangho

     39: Congo (CG: fr)
            French

     40: Switzerland (CH: fr de it rm)
            French
            German
            Italian
            Rhaeto-Romance

     41: C?te d'Ivoire (CI: fr)
            French

     42: CK (CK: mi en)
            Maori
            English

     43: Chile (CL: es)
            Spanish

     44: Cameroon (CM: en fr)
            English
            French

     45: China (CN: zh bo)
            Chinese
            Tibetan

     46: Colombia (CO: es)
            Spanish

     47: Costa Rica (CR: es)
            Spanish

     48: Cuba (CU: es)
            Spanish

     49: Cape Verde (CV: pt)
            Portuguese

     50: CX (CX: en)
            English

     51: Cyprus (CY: el tr en)
            Greek
            Turkish
            English

     52: Czech Republic (CZ: cs sk)
            Czech
            Slovak

     53: Germany (DE: de)
            German

     54: Djibouti (DJ: ar fr so)
            Arabic
            French
            Somali

     55: Denmark (DK: da)
            Danish

     56: Dominica (DM: en fr)
            English
            French

     57: Dominican Republic (DO: es)
            Spanish

     58: Algeria (DZ: ar fr)
            Arabic
            French

     59: Ecuador (EC: es qu)
            Spanish
            Quechua

     60: Estonia (EE: et ru)
            Estonian
            Russian

     61: Egypt (EG: ar en fr)
            Arabic
            English
            French

     62: Western Sahara (EH: ar fr it)
            Arabic
            French
            Italian

     63: Eritrea (ER: am ti ar en it)
            Amharic
            Tigrinya
            Arabic
            English
            Italian

     64: Spain (ES: es eu ca gl)
            Spanish
            Basque
            Catalan
            Galician

     65: Ethiopia (ET: am ar en)
            Amharic
            Arabic
            English

     66: Finland (FI: fi sv)
            Finnish
            Swedish

     67: Fiji (FJ: en fj hi)
            English
            Fiji
            Hindi

     68: FK (FK: en)
            English

     69: Micronesia (FM: en)
            English

     70: FO (FO: fo da)
            Faroese
            Danish

     71: France (FR: fr eu br co)
            French
            Basque
            Breton
            Corsican

     72: FX (FX: fr)
            French

     73: Gabon (GA: fr)
            French

     74: United Kingdom (GB: en gd cy)
            English
            Scots Gaelic
            Welsh

     75: GD (GD: en fr)
            English
            French

     76: Georgia (GE: ka hy ru)
            Georgian
            Armenian
            Russian

     77: French Guiana (GF: fr)
            French

     78: Ghana (GH: en)
            English

     79: GI (GI: en es)
            English
            Spanish

     80: GL (GL: da ik kl)
            Danish
            Inupiak
            Greenlandic

     81: Gambia (GM: en wo)
            English
            Wolof

     82: Guinea (GN: fr)
            French

     83: Guadeloupe (GP: fr en)
            French
            English

     84: Equatorial Guinea (GQ: es)
            Spanish

     85: Greece (GR: el)
            Greek

     86: GS (GS:)

     87: Guatemala (GT: es)
            Spanish

     88: GU (GU: en)
            English

     89: Guinea-Bissau (GW: pt)
            Portuguese

     90: Guyana (GY: en hi ur)
            English
            Hindi
            Urdu

     91: Hong Kong (HK: zh en)
            Chinese
            English

     92: HM (HM:)

     93: Honduras (HN: es)
            Spanish

     94: Croatia (HR: hr)
            Croatian

     95: Haiti (HT: fr)
            French

     96: Hungary (HU: hu)
            Hungarian

     97: Indonesia (ID: in en nl)
            Indonesian
            English
            Dutch

     98: Ireland (IE: en ga)
            English
            Irish

     99: Israel (IL: iw ar ji)
            Hebrew
            Arabic
            Yiddish

    100: India (IN: hi en gu kn ks ml mr ne or pa sa ta te)
            Hindi
            English
            Gujarati
            Kannada
            Kashmiri
            Malayalam
            Marathi
            Nepali
            Oriya
            Punjabi
            Sanskrit
            Tamil
            Telugu

    101: IO (IO: en)
            English

    102: Iraq (IQ: ar ku tk)
            Arabic
            Kurdish
            Turkmen

    103: Iran (IR: fa ar ku)
            Persian
            Arabic
            Kurdish

    104: Iceland (IS: is)
            Icelandic

    105: Italy (IT: it fr de)
            Italian
            French
            German

    106: Jamaica (JM: en)
            English

    107: Jordan (JO: ar)
            Arabic

    108: Japan (JP: ja)
            Japanese

    109: Kenya (KE: en sw)
            English
            Swahili

    110: Kyrgyzstan (KG: ky)
            Kirghiz

    111: Cambodia (KH: km)
            Cambodian

    112: Kiribati (KI: en)
            English

    113: Comoros (KM: fr ar)
            French
            Arabic

    114: KN (KN: en)
            English

    115: North Korea (KP: ko)
            Korean

    116: South Korea (KR: ko)
            Korean

    117: Kuwait (KW: ar en)
            Arabic
            English

    118: KY (KY: en)
            English

    119: Kazakhstan (KZ: kk ru)
            Kazakh
            Russian

    120: Laos (LA: lo fr)
            Laothian
            French

    121: Lebanon (LB: ar en fr)
            Arabic
            English
            French

    122: LC (LC: en fr)
            English
            French

    123: Liechtenstein (LI: de)
            German

    124: Sri Lanka (LK: ta si en)
            Tamil
            Sinhalese
            English

    125: Liberia (LR: en)
            English

    126: Lesotho (LS: st en)
            Sesotho
            English

    127: Lithuania (LT: lt ru pl)
            Lithuanian
            Russian
            Polish

    128: Luxembourg (LU: fr de)
            French
            German

    129: Latvia (LV: lv lt ru)
            Latvian (Lettish)
            Lithuanian
            Russian

    130: Libya (LY: ar en it)
            Arabic
            English
            Italian

    131: Morocco (MA: ar fr es)
            Arabic
            French
            Spanish

    132: Monaco (MC: fr en it)
            French
            English
            Italian

    133: Moldova (MD: mo ro bg)
            Moldavian
            Romanian
            Bulgarian

    134: Madagascar (MG: mg en fr)
            Malagasy
            English
            French

    135: MH (MH:)

    136: Macedonia (MK: mk sh tr)
            Macedonian
            Serbo-Croatian
            Turkish

    137: Mali (ML: fr)
            French

    138: Myanmar (MM: my)
            Burmese

    139: Mongolia (MN: mn ru)
            Mongolian
            Russian

    140: MO (MO: zh pt)
            Chinese
            Portuguese

    141: MP (MP:)

    142: Martinique (MQ: fr)
            French

    143: Mauritania (MR: ar fr)
            Arabic
            French

    144: Montserrat (MS: en)
            English

    145: Malta (MT: mt en it)
            Maltese
            English
            Italian

    146: Mauritius (MU: en fr hi)
            English
            French
            Hindi

    147: MV (MV:)

    148: MW (MW: en)
            English

    149: Mexico (MX: es)
            Spanish

    150: Malaysia (MY: ms en)
            Malay
            English

    151: Mozambique (MZ: pt)
            Portuguese

    152: Namibia (NA: en af de)
            English
            Afrikaans
            German

    153: New Caledonia (NC:)

    154: Niger (NE: fr ha)
            French
            Hausa

    155: NF (NF: en)
            English

    156: Nigeria (NG: en ha yo)
            English
            Hausa
            Yoruba

    157: Nicaragua (NI: es)
            Spanish

    158: Netherlands (NL: nl fy)
            Dutch
            Frisian

    159: Norway (NO: no)
            Norwegian

    160: Nepal (NP: ne)
            Nepali

    161: NR (NR: na en)
            Nauru
            English

    162: Niue (NU: en)
            English

    163: New Zealand (NZ: en mi)
            English
            Maori

    164: Oman (OM: ar en)
            Arabic
            English

    165: Panama (PA: es en)
            Spanish
            English

    166: Peru (PE: es qu ay)
            Spanish
            Quechua
            Aymara

    167: French Polynesia (PF: fr)
            French

    168: Papua New Guinea (PG: en)
            English

    169: Philippines (PH: en tl es)
            English
            Tagalog
            Spanish

    170: Pakistan (PK: ur en ps pa sd)
            Urdu
            English
            Pashto (Pushto)
            Punjabi
            Sindhi

    171: Poland (PL: pl)
            Polish

    172: PM (PM: fr en)
            French
            English

    173: PN (PN: en)
            English

    174: Puerto Rico (PR: es en)
            Spanish
            English

    175: Portugal (PT: pt)
            Portuguese

    176: PW (PW: en)
            English

    177: Paraguay (PY: es gn)
            Spanish
            Guarani

    178: Qatar (QA: ar en)
            Arabic
            English

    179: RE (RE: fr ta)
            French
            Tamil

    180: Romania (RO: ro hu)
            Romanian
            Hungarian

    181: Russia (RU: ru)
            Russian

    182: Rwanda (RW: en fr rw)
            English
            French
            Kinyarwanda

    183: Saudi Arabia (SA: ar)
            Arabic

    184: SB (SB: en)
            English

    185: Seychelles (SC: en fr)
            English
            French

    186: Sudan (SD: ar su)
            Arabic
            Sundanese

    187: Sweden (SE: sv)
            Swedish

    188: Singapore (SG: zh en ms ta)
            Chinese
            English
            Malay
            Tamil

    189: SH (SH: en)
            English

    190: Slovenia (SI: sl)
            Slovenian

    191: SJ (SJ: no)
            Norwegian

    192: Slovakia (SK: sk hu pl sh)
            Slovak
            Hungarian
            Polish
            Serbo-Croatian

    193: Sierra Leone (SL: en)
            English

    194: SM (SM: it)
            Italian

    195: Senegal (SN: fr)
            French

    196: Somalia (SO: ar en it so)
            Arabic
            English
            Italian
            Somali

    197: Suriname (SR: nl en es hi)
            Dutch
            English
            Spanish
            Hindi

    198: ST (ST: pt)
            Portuguese

    199: El Salvador (SV: es)
            Spanish

    200: Syria (SY: ar)
            Arabic

    201: Swaziland (SZ: en ss)
            English
            Siswati

    202: TC (TC: en)
            English

    203: Chad (TD: fr ar)
            French
            Arabic

    204: French Southern Territories (TF: fr)
            French

    205: Togo (TG: fr)
            French

    206: Thailand (TH: th)
            Thai

    207: Tajikistan (TJ: tg ru uz)
            Tajik
            Russian
            Uzbek

    208: Tokelau (TK: en mi)
            English
            Maori

    209: Turkmenistan (TM: tk ru)
            Turkmen
            Russian

    210: Tunisia (TN: ar)
            Arabic

    211: Tonga (TO: en to)
            English
            Tonga

    212: East Timor (TP:)

    213: Turkey (TR: tr ku)
            Turkish
            Kurdish

    214: Trinidad and Tobago (TT: en)
            English

    215: TV (TV: en)
            English

    216: Taiwan (TW: zh)
            Chinese

    217: Tanzania (TZ: en sw)
            English
            Swahili

    218: Ukraine (UA: uk ru)
            Ukrainian
            Russian

    219: Uganda (UG: en sw)
            English
            Swahili

    220: UM (UM: en)
            English

    221: United States (US: en es)
            English
            Spanish

    222: Uruguay (UY: es)
            Spanish

    223: Uzbekistan (UZ: uz ru)
            Uzbek
            Russian

    224: Vatican (VA: la it)
            Latin
            Italian

    225: VC (VC: en)
            English

    226: Venezuela (VE: es)
            Spanish

    227: British Virgin Islands (VG: en)
            English

    228: U.S. Virgin Islands (VI: en)
            English

    229: Vietnam (VN: vi zh fr)
            Vietnamese
            Chinese
            French

    230: Vanuatu (VU: en fr bi)
            English
            French
            Bislama

    231: WF (WF: fr)
            French

    232: WS (WS: en sm)
            English
            Samoan

    233: Yemen (YE: ar)
            Arabic

    234: Mayotte (YT: fr mg sw)
            French
            Malagasy
            Swahili

    235: Yugoslavia (YU: sr sh mk hu)
            Serbian
            Serbo-Croatian
            Macedonian
            Hungarian

    236: South Africa (ZA: af en)
            Afrikaans
            English

    237: Zambia (ZM: en)
            English

    238: Zaire (ZR: fr sw)
            French
            Swahili

    239: Zimbabwe (ZW: en sn)
            English
            Shona

         aa Afar

         ab Abkhazian

    Table 2 -- Countries where any particular ISO-639 language is spoken (old codes: iw,ji,in; new
    codes: he, yi,id)

      1: af_NA Afrikaans Namibia
      2: af_ZA South Africa

      3: am_ER Amharic Eritrea
      4: am_ET Ethiopia

      5: ar_AE Arabic United Arab Emirates
      6: ar_BH Bahrain
      7: ar_DJ Djibouti
      8: ar_DZ Algeria
      9: ar_EG Egypt
     10: ar_EH Western Sahara
     11: ar_ER Eritrea
     12: ar_ET Ethiopia
     13: ar_IL Israel
     14: ar_IQ Iraq
     15: ar_IR Iran
     16: ar_JO Jordan
     17: ar_KM Comoros
     18: ar_KW Kuwait
     19: ar_LB Lebanon
     20: ar_LY Libya
     21: ar_MA Morocco
     22: ar_MR Mauritania
     23: ar_OM Oman
     24: ar_QA Qatar
     25: ar_SA Saudi Arabia
     26: ar_SD Sudan
     27: ar_SO Somalia
     28: ar_SY Syria
     29: ar_TD Chad
     30: ar_TN Tunisia
     31: ar_YE Yemen

         as Assamese

     32: ay_BO Aymara Bolivia
     33: ay_PE Peru

     34: az_AZ Azerbaijani Azerbaijan

         ba Bashkir

     35: be_BY Byelorussian Belarus

     36: bg_BG Bulgarian Bulgaria
     37: bg_MD Moldova

     38: bh_BD Bihari Bangladesh

     39: bi_VU Bislama Vanuatu

     40: bn_BD Bengali Bangladesh

     41: bo_CN Tibetan China

     42: br_FR Breton France

     43: ca_ES Catalan Spain

     44: co_FR Corsican France

     45: cs_CZ Czech Czech Republic

     46: cy_GB Welsh United Kingdom

     47: da_DK Danish Denmark
     48: da_FO FO
     49: da_GL GL

     50: de_AT German Austria
     51: de_BE Belgium
     52: de_CH Switzerland
     53: de_DE Germany
     54: de_IT Italy
     55: de_LI Liechtenstein
     56: de_LU Luxembourg
     57: de_NA Namibia

     58: dz_BT Bhutani Bhutan

     59: el_CY Greek Cyprus
     60: el_GR Greece

     61: en_AE English United Arab Emirates
     62: en_AG AG
     63: en_AN Netherlands Antilles
     64: en_AS AS
     65: en_AU Australia
     66: en_AW Aruba
     67: en_BB Barbados
     68: en_BD Bangladesh
     69: en_BH Bahrain
     70: en_BM Bermuda
     71: en_BN Brunei
     72: en_BS Bahamas
     73: en_BT Bhutan
     74: en_BW Botswana
     75: en_BZ Belize
     76: en_CA Canada
     77: en_CC CC
     78: en_CK CK
     79: en_CM Cameroon
     80: en_CX CX
     81: en_CY Cyprus
     82: en_DM Dominica
     83: en_EG Egypt
     84: en_ER Eritrea
     85: en_ET Ethiopia
     86: en_FJ Fiji
     87: en_FK FK
     88: en_FM Micronesia
     89: en_GB United Kingdom
     90: en_GD GD
     91: en_GH Ghana
     92: en_GI GI
     93: en_GM Gambia
     94: en_GP Guadeloupe
     95: en_GU GU
     96: en_GY Guyana
     97: en_HK Hong Kong
     98: en_ID Indonesia
     99: en_IE Ireland
    100: en_IN India
    101: en_IO IO
    102: en_JM Jamaica
    103: en_KE Kenya
    104: en_KI Kiribati
    105: en_KN KN
    106: en_KW Kuwait
    107: en_KY KY
    108: en_LB Lebanon
    109: en_LC LC
    110: en_LK Sri Lanka
    111: en_LR Liberia
    112: en_LS Lesotho
    113: en_LY Libya
    114: en_MC Monaco
    115: en_MG Madagascar
    116: en_MS Montserrat
    117: en_MT Malta
    118: en_MU Mauritius
    119: en_MW MW
    120: en_MY Malaysia
    121: en_NA Namibia
    122: en_NF NF
    123: en_NG Nigeria
    124: en_NR NR
    125: en_NU Niue
    126: en_NZ New Zealand
    127: en_OM Oman
    128: en_PA Panama
    129: en_PG Papua New Guinea
    130: en_PH Philippines
    131: en_PK Pakistan
    132: en_PM PM
    133: en_PN PN
    134: en_PR Puerto Rico
    135: en_PW PW
    136: en_QA Qatar
    137: en_RW Rwanda
    138: en_SB SB
    139: en_SC Seychelles
    140: en_SG Singapore
    141: en_SH SH
    142: en_SL Sierra Leone
    143: en_SO Somalia
    144: en_SR Suriname
    145: en_SZ Swaziland
    146: en_TC TC
    147: en_TK Tokelau
    148: en_TO Tonga
    149: en_TT Trinidad and Tobago
    150: en_TV TV
    151: en_TZ Tanzania
    152: en_UG Uganda
    153: en_UM UM
    154: en_US United States
    155: en_VC VC
    156: en_VG British Virgin Islands
    157: en_VI U.S. Virgin Islands
    158: en_VU Vanuatu
    159: en_WS WS
    160: en_ZA South Africa
    161: en_ZM Zambia
    162: en_ZW Zimbabwe

         eo Esperanto

    163: es_AD Spanish Andorra
    164: es_AR Argentina
    165: es_BO Bolivia
    166: es_BZ Belize
    167: es_CL Chile
    168: es_CO Colombia
    169: es_CR Costa Rica
    170: es_CU Cuba
    171: es_DO Dominican Republic
    172: es_EC Ecuador
    173: es_ES Spain
    174: es_GI GI
    175: es_GQ Equatorial Guinea
    176: es_GT Guatemala
    177: es_HN Honduras
    178: es_MA Morocco
    179: es_MX Mexico
    180: es_NI Nicaragua
    181: es_PA Panama
    182: es_PE Peru
    183: es_PH Philippines
    184: es_PR Puerto Rico
    185: es_PY Paraguay
    186: es_SR Suriname
    187: es_SV El Salvador
    188: es_US United States
    189: es_UY Uruguay
    190: es_VE Venezuela

    191: et_EE Estonian Estonia

    192: eu_ES Basque Spain
    193: eu_FR France

    194: fa_IR Persian Iran

    195: fi_FI Finnish Finland

    196: fj_FJ Fiji Fiji

    197: fo_FO Faroese FO

    198: fr_AD French Andorra
    199: fr_BE Belgium
    200: fr_BF Burkina Faso
    201: fr_BI Burundi
    202: fr_BJ Benin
    203: fr_CA Canada
    204: fr_CF Central African Republic
    205: fr_CG Congo
    206: fr_CH Switzerland
    207: fr_CI C?te d'Ivoire
    208: fr_CM Cameroon
    209: fr_DJ Djibouti
    210: fr_DM Dominica
    211: fr_DZ Algeria
    212: fr_EG Egypt
    213: fr_EH Western Sahara
    214: fr_FR France
    215: fr_FX FX
    216: fr_GA Gabon
    217: fr_GD GD
    218: fr_GF French Guiana
    219: fr_GN Guinea
    220: fr_GP Guadeloupe
    221: fr_HT Haiti
    222: fr_IT Italy
    223: fr_KM Comoros
    224: fr_LA Laos
    225: fr_LB Lebanon
    226: fr_LC LC
    227: fr_LU Luxembourg
    228: fr_MA Morocco
    229: fr_MC Monaco
    230: fr_MG Madagascar
    231: fr_ML Mali
    232: fr_MQ Martinique
    233: fr_MR Mauritania
    234: fr_MU Mauritius
    235: fr_NE Niger
    236: fr_PF French Polynesia
    237: fr_PM PM
    238: fr_RE RE
    239: fr_RW Rwanda
    240: fr_SC Seychelles
    241: fr_SN Senegal
    242: fr_TD Chad
    243: fr_TF French Southern Territories
    244: fr_TG Togo
    245: fr_VN Vietnam
    246: fr_VU Vanuatu
    247: fr_WF WF
    248: fr_YT Mayotte
    249: fr_ZR Zaire

    250: fy_NL Frisian Netherlands

    251: ga_IE Irish Ireland

    252: gd_GB Scots Gaelic United Kingdom

    253: gl_ES Galician Spain

    254: gn_PY Guarani Paraguay

    255: gu_IN Gujarati India

    256: ha_NE Hausa Niger
    257: ha_NG Nigeria

         he Hebrew

    258: hi_BD Hindi Bangladesh
    259: hi_FJ Fiji
    260: hi_GY Guyana
    261: hi_IN India
    262: hi_MU Mauritius
    263: hi_SR Suriname

    264: hr_BA Croatian Bosnia and Herzegovina
    265: hr_HR Croatia

    266: hu_HU Hungarian Hungary
    267: hu_RO Romania
    268: hu_SK Slovakia
    269: hu_YU Yugoslavia

    270: hy_AM Armenian Armenia
    271: hy_AZ Azerbaijan
    272: hy_GE Georgia

         ia Interlingua

         id Indonesian

         ie Interlingue

    273: ik_GL Inupiak GL

    274: in_ID Indonesian Indonesia

    275: is_IS Icelandic Iceland

    276: it_CH Italian Switzerland
    277: it_EH Western Sahara
    278: it_ER Eritrea
    279: it_IT Italy
    280: it_LY Libya
    281: it_MC Monaco
    282: it_MT Malta
    283: it_SM SM
    284: it_SO Somalia
    285: it_VA Vatican

         iu Inuktitut

    286: iw_IL Hebrew Israel

    287: ja_JP Japanese Japan

    288: ji_IL Yiddish Israel

         jw Javanese

    289: ka_GE Georgian Georgia

    290: kk_KZ Kazakh Kazakhstan

    291: kl_GL Greenlandic GL

    292: km_KH Cambodian Cambodia

    293: kn_IN Kannada India

    294: ko_KP Korean North Korea
    295: ko_KR South Korea

    296: ks_IN Kashmiri India

    297: ku_IQ Kurdish Iraq
    298: ku_IR Iran
    299: ku_TR Turkey

    300: ky_KG Kirghiz Kyrgyzstan

    301: la_VA Latin Vatican

         ln Lingala

    302: lo_LA Laothian Laos

    303: lt_LT Lithuanian Lithuania
    304: lt_LV Latvia

    305: lv_LV Latvian (Lettish) Latvia

    306: mg_MG Malagasy Madagascar
    307: mg_YT Mayotte

    308: mi_CK Maori CK
    309: mi_NZ New Zealand
    310: mi_TK Tokelau

    311: mk_BA Macedonian Bosnia and Herzegovina
    312: mk_MK Macedonia
    313: mk_YU Yugoslavia

    314: ml_IN Malayalam India

    315: mn_MN Mongolian Mongolia

    316: mo_MD Moldavian Moldova

    317: mr_IN Marathi India

    318: ms_BN Malay Brunei
    319: ms_MY Malaysia
    320: ms_SG Singapore

    321: mt_MT Maltese Malta

    322: my_MM Burmese Myanmar

    323: na_NR Nauru NR

    324: ne_BT Nepali Bhutan
    325: ne_IN India
    326: ne_NP Nepal

    327: nl_AN Dutch Netherlands Antilles
    328: nl_AW Aruba
    329: nl_BE Belgium
    330: nl_ID Indonesia
    331: nl_NL Netherlands
    332: nl_SR Suriname

    333: no_BV Norwegian BV
    334: no_NO Norway
    335: no_SJ SJ

         oc Occitan

         om Oromo (Afan)

    336: or_IN Oriya India

    337: pa_IN Punjabi India
    338: pa_PK Pakistan

    339: pl_LT Polish Lithuania
    340: pl_PL Poland
    341: pl_SK Slovakia

    342: ps_AF Pashto (Pushto) Afghanistan
    343: ps_PK Pakistan

    344: pt_AO Portuguese Angola
    345: pt_BR Brazil
    346: pt_CV Cape Verde
    347: pt_GW Guinea-Bissau
    348: pt_MO MO
    349: pt_MZ Mozambique
    350: pt_PT Portugal
    351: pt_ST ST

    352: qu_BO Quechua Bolivia
    353: qu_EC Ecuador
    354: qu_PE Peru

    355: rm_CH Rhaeto-Romance Switzerland

    356: rn_AI Kirundi Anguilla
    357: rn_BI Burundi

    358: ro_MD Romanian Moldova
    359: ro_RO Romania

    360: ru_AM Russian Armenia
    361: ru_AZ Azerbaijan
    362: ru_BY Belarus
    363: ru_EE Estonia
    364: ru_GE Georgia
    365: ru_KZ Kazakhstan
    366: ru_LT Lithuania
    367: ru_LV Latvia
    368: ru_MN Mongolia
    369: ru_RU Russia
    370: ru_TJ Tajikistan
    371: ru_TM Turkmenistan
    372: ru_UA Ukraine
    373: ru_UZ Uzbekistan

    374: rw_RW Kinyarwanda Rwanda

    375: sa_IN Sanskrit India

    376: sd_PK Sindhi Pakistan

    377: sg_CF Sangho Central African Republic

    378: sh_BA Serbo-Croatian Bosnia and Herzegovina
    379: sh_MK Macedonia
    380: sh_SK Slovakia
    381: sh_YU Yugoslavia

    382: si_LK Sinhalese Sri Lanka

    383: sk_CZ Slovak Czech Republic
    384: sk_SK Slovakia

    385: sl_BA Slovenian Bosnia and Herzegovina
    386: sl_SI Slovenia

    387: sm_AS Samoan AS
    388: sm_WS WS

    389: sn_ZW Shona Zimbabwe

    390: so_DJ Somali Djibouti
    391: so_SO Somalia

    392: sq_AL Albanian Albania
    393: sq_BA Bosnia and Herzegovina

    394: sr_BA Serbian Bosnia and Herzegovina
    395: sr_YU Yugoslavia

    396: ss_SZ Siswati Swaziland

    397: st_LS Sesotho Lesotho

    398: su_SD Sundanese Sudan

    399: sv_FI Swedish Finland
    400: sv_SE Sweden

    401: sw_BI Swahili Burundi
    402: sw_KE Kenya
    403: sw_TZ Tanzania
    404: sw_UG Uganda
    405: sw_YT Mayotte
    406: sw_ZR Zaire

    407: ta_IN Tamil India
    408: ta_LK Sri Lanka
    409: ta_RE RE
    410: ta_SG Singapore

    411: te_IN Telugu India

    412: tg_TJ Tajik Tajikistan

    413: th_TH Thai Thailand

    414: ti_ER Tigrinya Eritrea

    415: tk_IQ Turkmen Iraq
    416: tk_TM Turkmenistan

    417: tl_PH Tagalog Philippines

    418: tn_BW Setswana Botswana

    419: to_TO Tonga Tonga

    420: tr_BG Turkish Bulgaria
    421: tr_CY Cyprus
    422: tr_MK Macedonia
    423: tr_TR Turkey

         ts Tsonga

         tt Tatar

         tw Twi

         ug Uighur

    424: uk_UA Ukrainian Ukraine

    425: ur_GY Urdu Guyana
    426: ur_PK Pakistan

    427: uz_TJ Uzbek Tajikistan
    428: uz_UZ Uzbekistan

    429: vi_VN Vietnamese Vietnam

         vo Volapuk

    430: wo_GM Wolof Gambia

         xh Xhosa

         yi Yiddish

    431: yo_NG Yoruba Nigeria

         za Zhuang

    432: zh_BN Chinese Brunei
    433: zh_CN China
    434: zh_HK Hong Kong
    435: zh_MO MO
    436: zh_SG Singapore
    437: zh_TW Taiwan
    438: zh_VN Vietnam

         zu Zulu
         
    ---------------------------------------------------------

    >Importance: Normal
    >Subject: Re: UPD> Re: UPDF open standard for locales
    >To: "Akio Kido" <KIDO@jp.ibm.com>
    >Cc: norbertschade@oaktech.com, <upd@pwg.org>, Jim Sommer <sommer@granitesystems.com>
    >From: "Mark VanderWiele" <markv@us.ibm.com>
    >Date: Thu, 19 Apr 2001 13:57:36 -0500
    >X-MIMETrack: Serialize by Router on D04NM303/04/M/IBM(Release 5.0.6 |December 14, 2000) at
    04/19/2001 02:56:03 PM
    >MIME-Version: 1.0
    >
    >
    >Akio: What should we do about kw its not in the ISO languages? Also, was
    >SU really SD. see info below.
    >
    >Jim: Thank You.
    >
    >Regards,
    >Mark VanderWiele
    >IBM, Linux Technology Center
    >512-838-4779, t/l 678
    >MARKV@IBMUS
    >email: markv@us.ibm.com
    >
    >
    >Jim Sommer <sommer@granitesystems.com> on 04/19/2001 08:05:53 AM
    >
    >To: Mark VanderWiele/Austin/IBM@IBMUS, norbertschade@oaktech.com,
    > <upd@pwg.org>
    >cc:
    >Subject: Re: UPD> Re: UPDF open standard for locales
    >
    >
    >
    >Here's the translation of the locales that Mark listed:
    >
    >arIN-Arabic-India
    >arSD-Arabic-Sudan
    >deBE-German-Belgium
    >enBE-English-Belgium
    >enBW-English-Botswana
    >enHK-English-Hong_Kong
    >enIN-English-India
    >enSG-English-Singapore
    >enZW-English-Zimbabwe
    >esGT-Spanish-Guatemala (this was in the original list)
    >esHN-Spanish-Honduras (this was incorrectly listed as esHM in the original
    >list)
    >faIN-Farsi-India
    >glES-Galician-Spain (from the Linux web site, not Mark's list)
    >gvGB-Manx_Gaelic-United_Kingdon
    >knIN-Kannada-India (this was in the original list)
    >kwGB-Cornish-United_Kingdom (kw is not in the ISO language list)
    >psIN-Pashto-India
    >ruUA-Russian-Ukraine
    >sdIN-Sindhi-India
    >shYU-Serbo-Croatian-Yugoslavia
    >srYU-Serbian-Yugoslavia
    >
    >I couldn't find the country SU but looking at the Linux web site, I figured
    >it was a typo and supposed to be SD.
    >
    >enZA was in the original list but from the Linux web site I found that enZW
    >was missing.
    >
    >I couldn't find the language fs but found that faIN was missing.
    >
    >I don't think we should include kwGB since Cornish isn't in the ISO
    >language list.
    >
    >Jim
    >
    >At 4/18/01 08:07 PM, Mark VanderWiele wrote:
    >>Norbert: I will try to get the following information into the desired
    >>format. However, I wanted to let you know that the Linux globaization
    >work
    >>is tackling the same problem and has another locals list. They have
    >>identified arIN, arSU, deBE, enBE, enBW, enHK, enIN, enSG, enZA, esGT,
    >>esHN, fsIN, gvGB, knIN,kwGB, psIN, ruUA, sdIN, shYU, srYU as missing in
    >>your list of locals.
    >>
    >>Regards,
    >>Mark VanderWiele
    >>IBM, Linux Technology Center
    >>512-838-4779, t/l 678
    >>MARKV@IBMUS
    >>email: markv@us.ibm.com
    >>---------------------- Forwarded by Mark VanderWiele/Austin/IBM on
    >>04/18/2001 06:33 PM ---------------------------
    >>
    >>Akio Kido@IBMJP
    >>04/16/2001 09:13 PM
    >>
    >>To: Mark VanderWiele/Austin/IBM@IBMUS
    >>cc: George Kraft/Austin/IBM@IBMUS
    >>From: Akio Kido/Japan/IBM@IBMJP
    >>Subject: Re: UPDF open standard for locales (Document link: Mark
    >> VanderWiele)
    >>
    >>Hi, Mark. Sorry for my delaied response. ( I was on business trip on last
    >>week and restricted access to IBM network ).
    >>
    >>Annex B of LI18NUX2000 Globalization specification specified the list of
    >>locales that should be supported by
    >>LI18NUX2000 confomant distribution. Please refer to
    >>http://www.li18nux.org/li18nux2k/
    >>
    >>As far as I checked the LI18NUX2000, the following locales are in the
    >>LI18NUX2000 but not in the list
    >>attached.
    >>
    >>arIN, arSU, deBE, enBE, enBW, enHK, enIN, enSG, enZA, esGT, esHN, fsIN,
    >>gvGB, knIN,
    >>kwGB, psIN, ruUA, sdIN, shYU, srYU.
    >>
    >>Best regards,
    >>Akio Kido (Globalization CoC, Yamato, IBM & Co-chair person of Li18nux)
    >>1623-14, Shimotsuruma, Yamato-shi, Kanagawa-ken 242, Japan (LAB-SA4)
    >>E-mail: kido@jp.ibm.com Tel: +81-46-215-5436 FAX: +81-46-272-3352
    >>
    >>
    >>From: Mark VanderWiele@IBMUS on 2001/04/13 09:10
    >>
    >>To: Akio Kido/Japan/IBM@IBMJP
    >>cc: George Kraft/Austin/IBM@IBMUS
    >>From: Mark VanderWiele/Austin/IBM@IBMUS
    >>Subject: Re: UPDF open standard for locales
    >>
    >>
    >>
    >>Kido-san: The following list all the way at the bottom of this note is a
    >>proposed list to identify translations in the Universal Printer Driver
    >>Format standard being worked on by the Printer Working Group
    >(www.pwg.org).
    >>Please verify its completeness, Forward to other IBM interested parties, &
    >>and or propose a better source. I am told you may be working on an I18N
    >>standard for locals. Is this true? Is there another list I should be
    >>looking at?
    >>
    >>Thank you,
    >>
    >>Regards,
    >>Mark VanderWiele
    >>IBM, Linux Technology Center
    >>512-838-4779, t/l 678
    >>MARKV@IBMUS
    >>email: markv@us.ibm.com
    >
    >
    >

    Table 1 -- Languages spoken in any particular ISO-3166 country (official languages are listed first)

      1: Andorra (AD: fr es)
            French
            Spanish

      2: United Arab Emirates (AE: ar en)
            Arabic
            English

      3: Afghanistan (AF: ps)
            Pashto (Pushto)

      4: AG (AG: en)
            English

      5: Anguilla (AI: rn)
            Kirundi

      6: Albania (AL: sq)
            Albanian

      7: Armenia (AM: hy ru)
            Armenian
            Russian

      8: Netherlands Antilles (AN: nl en)
            Dutch
            English

      9: Angola (AO: pt)
            Portuguese

     10: AQ (AQ:)

     11: Argentina (AR: es)
            Spanish

     12: AS (AS: en sm)
            English
            Samoan

     13: Austria (AT: de)
            German

     14: Australia (AU: en)
            English

     15: Aruba (AW: nl en)
            Dutch
            English

     16: Azerbaijan (AZ: az hy ru)
            Azerbaijani
            Armenian
            Russian

     17: Bosnia and Herzegovina (BA: sr sh hr sl mk sq)
            Serbian
            Serbo-Croatian
            Croatian
            Slovenian
            Macedonian
            Albanian

     18: Barbados (BB: en)
            English

     19: Bangladesh (BD: bn hi bh en)
            Bengali
            Hindi
            Bihari
            English

     20: Belgium (BE: fr nl de)
            French
            Dutch
            German

     21: Burkina Faso (BF: fr)
            French

     22: Bulgaria (BG: bg tr)
            Bulgarian
            Turkish

     23: Bahrain (BH: ar en)
            Arabic
            English

     24: Burundi (BI: rn fr sw)
            Kirundi
            French
            Swahili

     25: Benin (BJ: fr)
            French

     26: Bermuda (BM: en)
            English

     27: Brunei (BN: ms en zh)
            Malay
            English
            Chinese

     28: Bolivia (BO: es ay qu)
            Spanish
            Aymara
            Quechua

     29: Brazil (BR: pt)
            Portuguese

     30: Bahamas (BS: en)
            English

     31: Bhutan (BT: dz en ne)
            Bhutani
            English
            Nepali

     32: BV (BV: no)
            Norwegian

     33: Botswana (BW: en tn)
            English
            Setswana

     34: Belarus (BY: be ru)
            Byelorussian
            Russian

     35: Belize (BZ: en es)
            English
            Spanish

     36: Canada (CA: en fr)
            English
            French

     37: CC (CC: en)
            English

     38: Central African Republic (CF: fr sg)
            French
            Sangho

     39: Congo (CG: fr)
            French

     40: Switzerland (CH: fr de it rm)
            French
            German
            Italian
            Rhaeto-Romance

     41: C?te d'Ivoire (CI: fr)
            French

     42: CK (CK: mi en)
            Maori
            English

     43: Chile (CL: es)
            Spanish

     44: Cameroon (CM: en fr)
            English
            French

     45: China (CN: zh bo)
            Chinese
            Tibetan

     46: Colombia (CO: es)
            Spanish

     47: Costa Rica (CR: es)
            Spanish

     48: Cuba (CU: es)
            Spanish

     49: Cape Verde (CV: pt)
            Portuguese

     50: CX (CX: en)
            English

     51: Cyprus (CY: el tr en)
            Greek
            Turkish
            English

     52: Czech Republic (CZ: cs sk)
            Czech
            Slovak

     53: Germany (DE: de)
            German

     54: Djibouti (DJ: ar fr so)
            Arabic
            French
            Somali

     55: Denmark (DK: da)
            Danish

     56: Dominica (DM: en fr)
            English
            French

     57: Dominican Republic (DO: es)
            Spanish

     58: Algeria (DZ: ar fr)
            Arabic
            French

     59: Ecuador (EC: es qu)
            Spanish
            Quechua

     60: Estonia (EE: et ru)
            Estonian
            Russian

     61: Egypt (EG: ar en fr)
            Arabic
            English
            French

     62: Western Sahara (EH: ar fr it)
            Arabic
            French
            Italian

     63: Eritrea (ER: am ti ar en it)
            Amharic
            Tigrinya
            Arabic
            English
            Italian

     64: Spain (ES: es eu ca gl)
            Spanish
            Basque
            Catalan
            Galician

     65: Ethiopia (ET: am ar en)
            Amharic
            Arabic
            English

     66: Finland (FI: fi sv)
            Finnish
            Swedish

     67: Fiji (FJ: en fj hi)
            English
            Fiji
            Hindi

     68: FK (FK: en)
            English

     69: Micronesia (FM: en)
            English

     70: FO (FO: fo da)
            Faroese
            Danish

     71: France (FR: fr eu br co)
            French
            Basque
            Breton
            Corsican

     72: FX (FX: fr)
            French

     73: Gabon (GA: fr)
            French

     74: United Kingdom (GB: en gd cy)
            English
            Scots Gaelic
            Welsh

     75: GD (GD: en fr)
            English
            French

     76: Georgia (GE: ka hy ru)
            Georgian
            Armenian
            Russian

     77: French Guiana (GF: fr)
            French

     78: Ghana (GH: en)
            English

     79: GI (GI: en es)
            English
            Spanish

     80: GL (GL: da ik kl)
            Danish
            Inupiak
            Greenlandic

     81: Gambia (GM: en wo)
            English
            Wolof

     82: Guinea (GN: fr)
            French

     83: Guadeloupe (GP: fr en)
            French
            English

     84: Equatorial Guinea (GQ: es)
            Spanish

     85: Greece (GR: el)
            Greek

     86: GS (GS:)

     87: Guatemala (GT: es)
            Spanish

     88: GU (GU: en)
            English

     89: Guinea-Bissau (GW: pt)
            Portuguese

     90: Guyana (GY: en hi ur)
            English
            Hindi
            Urdu

     91: Hong Kong (HK: zh en)
            Chinese
            English

     92: HM (HM:)

     93: Honduras (HN: es)
            Spanish

     94: Croatia (HR: hr)
            Croatian

     95: Haiti (HT: fr)
            French

     96: Hungary (HU: hu)
            Hungarian

     97: Indonesia (ID: in en nl)
            Indonesian
            English
            Dutch

     98: Ireland (IE: en ga)
            English
            Irish

     99: Israel (IL: iw ar ji)
            Hebrew
            Arabic
            Yiddish

    100: India (IN: hi en gu kn ks ml mr ne or pa sa ta te)
            Hindi
            English
            Gujarati
            Kannada
            Kashmiri
            Malayalam
            Marathi
            Nepali
            Oriya
            Punjabi
            Sanskrit
            Tamil
            Telugu

    101: IO (IO: en)
            English

    102: Iraq (IQ: ar ku tk)
            Arabic
            Kurdish
            Turkmen

    103: Iran (IR: fa ar ku)
            Persian
            Arabic
            Kurdish

    104: Iceland (IS: is)
            Icelandic

    105: Italy (IT: it fr de)
            Italian
            French
            German

    106: Jamaica (JM: en)
            English

    107: Jordan (JO: ar)
            Arabic

    108: Japan (JP: ja)
            Japanese

    109: Kenya (KE: en sw)
            English
            Swahili

    110: Kyrgyzstan (KG: ky)
            Kirghiz

    111: Cambodia (KH: km)
            Cambodian

    112: Kiribati (KI: en)
            English

    113: Comoros (KM: fr ar)
            French
            Arabic

    114: KN (KN: en)
            English

    115: North Korea (KP: ko)
            Korean

    116: South Korea (KR: ko)
            Korean

    117: Kuwait (KW: ar en)
            Arabic
            English

    118: KY (KY: en)
            English

    119: Kazakhstan (KZ: kk ru)
            Kazakh
            Russian

    120: Laos (LA: lo fr)
            Laothian
            French

    121: Lebanon (LB: ar en fr)
            Arabic
            English
            French

    122: LC (LC: en fr)
            English
            French

    123: Liechtenstein (LI: de)
            German

    124: Sri Lanka (LK: ta si en)
            Tamil
            Sinhalese
            English

    125: Liberia (LR: en)
            English

    126: Lesotho (LS: st en)
            Sesotho
            English

    127: Lithuania (LT: lt ru pl)
            Lithuanian
            Russian
            Polish

    128: Luxembourg (LU: fr de)
            French
            German

    129: Latvia (LV: lv lt ru)
            Latvian (Lettish)
            Lithuanian
            Russian

    130: Libya (LY: ar en it)
            Arabic
            English
            Italian

    131: Morocco (MA: ar fr es)
            Arabic
            French
            Spanish

    132: Monaco (MC: fr en it)
            French
            English
            Italian

    133: Moldova (MD: mo ro bg)
            Moldavian
            Romanian
            Bulgarian

    134: Madagascar (MG: mg en fr)
            Malagasy
            English
            French

    135: MH (MH:)

    136: Macedonia (MK: mk sh tr)
            Macedonian
            Serbo-Croatian
            Turkish

    137: Mali (ML: fr)
            French

    138: Myanmar (MM: my)
            Burmese

    139: Mongolia (MN: mn ru)
            Mongolian
            Russian

    140: MO (MO: zh pt)
            Chinese
            Portuguese

    141: MP (MP:)

    142: Martinique (MQ: fr)
            French

    143: Mauritania (MR: ar fr)
            Arabic
            French

    144: Montserrat (MS: en)
            English

    145: Malta (MT: mt en it)
            Maltese
            English
            Italian

    146: Mauritius (MU: en fr hi)
            English
            French
            Hindi

    147: MV (MV:)

    148: MW (MW: en)
            English

    149: Mexico (MX: es)
            Spanish

    150: Malaysia (MY: ms en)
            Malay
            English

    151: Mozambique (MZ: pt)
            Portuguese

    152: Namibia (NA: en af de)
            English
            Afrikaans
            German

    153: New Caledonia (NC:)

    154: Niger (NE: fr ha)
            French
            Hausa

    155: NF (NF: en)
            English

    156: Nigeria (NG: en ha yo)
            English
            Hausa
            Yoruba

    157: Nicaragua (NI: es)
            Spanish

    158: Netherlands (NL: nl fy)
            Dutch
            Frisian

    159: Norway (NO: no)
            Norwegian

    160: Nepal (NP: ne)
            Nepali

    161: NR (NR: na en)
            Nauru
            English

    162: Niue (NU: en)
            English

    163: New Zealand (NZ: en mi)
            English
            Maori

    164: Oman (OM: ar en)
            Arabic
            English

    165: Panama (PA: es en)
            Spanish
            English

    166: Peru (PE: es qu ay)
            Spanish
            Quechua
            Aymara

    167: French Polynesia (PF: fr)
            French

    168: Papua New Guinea (PG: en)
            English

    169: Philippines (PH: en tl es)
            English
            Tagalog
            Spanish

    170: Pakistan (PK: ur en ps pa sd)
            Urdu
            English
            Pashto (Pushto)
            Punjabi
            Sindhi

    171: Poland (PL: pl)
            Polish

    172: PM (PM: fr en)
            French
            English

    173: PN (PN: en)
            English

    174: Puerto Rico (PR: es en)
            Spanish
            English

    175: Portugal (PT: pt)
            Portuguese

    176: PW (PW: en)
            English

    177: Paraguay (PY: es gn)
            Spanish
            Guarani

    178: Qatar (QA: ar en)
            Arabic
            English

    179: RE (RE: fr ta)
            French
            Tamil

    180: Romania (RO: ro hu)
            Romanian
            Hungarian

    181: Russia (RU: ru)
            Russian

    182: Rwanda (RW: en fr rw)
            English
            French
            Kinyarwanda

    183: Saudi Arabia (SA: ar)
            Arabic

    184: SB (SB: en)
            English

    185: Seychelles (SC: en fr)
            English
            French

    186: Sudan (SD: ar su)
            Arabic
            Sundanese

    187: Sweden (SE: sv)
            Swedish

    188: Singapore (SG: zh en ms ta)
            Chinese
            English
            Malay
            Tamil

    189: SH (SH: en)
            English

    190: Slovenia (SI: sl)
            Slovenian

    191: SJ (SJ: no)
            Norwegian

    192: Slovakia (SK: sk hu pl sh)
            Slovak
            Hungarian
            Polish
            Serbo-Croatian

    193: Sierra Leone (SL: en)
            English

    194: SM (SM: it)
            Italian

    195: Senegal (SN: fr)
            French

    196: Somalia (SO: ar en it so)
            Arabic
            English
            Italian
            Somali

    197: Suriname (SR: nl en es hi)
            Dutch
            English
            Spanish
            Hindi

    198: ST (ST: pt)
            Portuguese

    199: El Salvador (SV: es)
            Spanish

    200: Syria (SY: ar)
            Arabic

    201: Swaziland (SZ: en ss)
            English
            Siswati

    202: TC (TC: en)
            English

    203: Chad (TD: fr ar)
            French
            Arabic

    204: French Southern Territories (TF: fr)
            French

    205: Togo (TG: fr)
            French

    206: Thailand (TH: th)
            Thai

    207: Tajikistan (TJ: tg ru uz)
            Tajik
            Russian
            Uzbek

    208: Tokelau (TK: en mi)
            English
            Maori

    209: Turkmenistan (TM: tk ru)
            Turkmen
            Russian

    210: Tunisia (TN: ar)
            Arabic

    211: Tonga (TO: en to)
            English
            Tonga

    212: East Timor (TP:)

    213: Turkey (TR: tr ku)
            Turkish
            Kurdish

    214: Trinidad and Tobago (TT: en)
            English

    215: TV (TV: en)
            English

    216: Taiwan (TW: zh)
            Chinese

    217: Tanzania (TZ: en sw)
            English
            Swahili

    218: Ukraine (UA: uk ru)
            Ukrainian
            Russian

    219: Uganda (UG: en sw)
            English
            Swahili

    220: UM (UM: en)
            English

    221: United States (US: en es)
            English
            Spanish

    222: Uruguay (UY: es)
            Spanish

    223: Uzbekistan (UZ: uz ru)
            Uzbek
            Russian

    224: Vatican (VA: la it)
            Latin
            Italian

    225: VC (VC: en)
            English

    226: Venezuela (VE: es)
            Spanish

    227: British Virgin Islands (VG: en)
            English

    228: U.S. Virgin Islands (VI: en)
            English

    229: Vietnam (VN: vi zh fr)
            Vietnamese
            Chinese
            French

    230: Vanuatu (VU: en fr bi)
            English
            French
            Bislama

    231: WF (WF: fr)
            French

    232: WS (WS: en sm)
            English
            Samoan

    233: Yemen (YE: ar)
            Arabic

    234: Mayotte (YT: fr mg sw)
            French
            Malagasy
            Swahili

    235: Yugoslavia (YU: sr sh mk hu)
            Serbian
            Serbo-Croatian
            Macedonian
            Hungarian

    236: South Africa (ZA: af en)
            Afrikaans
            English

    237: Zambia (ZM: en)
            English

    238: Zaire (ZR: fr sw)
            French
            Swahili

    239: Zimbabwe (ZW: en sn)
            English
            Shona

         aa Afar

         ab Abkhazian

    Table 2 -- Countries where any particular ISO-639 language is spoken (old codes: iw,ji,in; new codes: he, yi,id)

      1: af_NA Afrikaans Namibia
      2: af_ZA South Africa

      3: am_ER Amharic Eritrea
      4: am_ET Ethiopia

      5: ar_AE Arabic United Arab Emirates
      6: ar_BH Bahrain
      7: ar_DJ Djibouti
      8: ar_DZ Algeria
      9: ar_EG Egypt
     10: ar_EH Western Sahara
     11: ar_ER Eritrea
     12: ar_ET Ethiopia
     13: ar_IL Israel
     14: ar_IQ Iraq
     15: ar_IR Iran
     16: ar_JO Jordan
     17: ar_KM Comoros
     18: ar_KW Kuwait
     19: ar_LB Lebanon
     20: ar_LY Libya
     21: ar_MA Morocco
     22: ar_MR Mauritania
     23: ar_OM Oman
     24: ar_QA Qatar
     25: ar_SA Saudi Arabia
     26: ar_SD Sudan
     27: ar_SO Somalia
     28: ar_SY Syria
     29: ar_TD Chad
     30: ar_TN Tunisia
     31: ar_YE Yemen

         as Assamese

     32: ay_BO Aymara Bolivia
     33: ay_PE Peru

     34: az_AZ Azerbaijani Azerbaijan

         ba Bashkir

     35: be_BY Byelorussian Belarus

     36: bg_BG Bulgarian Bulgaria
     37: bg_MD Moldova

     38: bh_BD Bihari Bangladesh

     39: bi_VU Bislama Vanuatu

     40: bn_BD Bengali Bangladesh

     41: bo_CN Tibetan China

     42: br_FR Breton France

     43: ca_ES Catalan Spain

     44: co_FR Corsican France

     45: cs_CZ Czech Czech Republic

     46: cy_GB Welsh United Kingdom

     47: da_DK Danish Denmark
     48: da_FO FO
     49: da_GL GL

     50: de_AT German Austria
     51: de_BE Belgium
     52: de_CH Switzerland
     53: de_DE Germany
     54: de_IT Italy
     55: de_LI Liechtenstein
     56: de_LU Luxembourg
     57: de_NA Namibia

     58: dz_BT Bhutani Bhutan

     59: el_CY Greek Cyprus
     60: el_GR Greece

     61: en_AE English United Arab Emirates
     62: en_AG AG
     63: en_AN Netherlands Antilles
     64: en_AS AS
     65: en_AU Australia
     66: en_AW Aruba
     67: en_BB Barbados
     68: en_BD Bangladesh
     69: en_BH Bahrain
     70: en_BM Bermuda
     71: en_BN Brunei
     72: en_BS Bahamas
     73: en_BT Bhutan
     74: en_BW Botswana
     75: en_BZ Belize
     76: en_CA Canada
     77: en_CC CC
     78: en_CK CK
     79: en_CM Cameroon
     80: en_CX CX
     81: en_CY Cyprus
     82: en_DM Dominica
     83: en_EG Egypt
     84: en_ER Eritrea
     85: en_ET Ethiopia
     86: en_FJ Fiji
     87: en_FK FK
     88: en_FM Micronesia
     89: en_GB United Kingdom
     90: en_GD GD
     91: en_GH Ghana
     92: en_GI GI
     93: en_GM Gambia
     94: en_GP Guadeloupe
     95: en_GU GU
     96: en_GY Guyana
     97: en_HK Hong Kong
     98: en_ID Indonesia
     99: en_IE Ireland
    100: en_IN India
    101: en_IO IO
    102: en_JM Jamaica
    103: en_KE Kenya
    104: en_KI Kiribati
    105: en_KN KN
    106: en_KW Kuwait
    107: en_KY KY
    108: en_LB Lebanon
    109: en_LC LC
    110: en_LK Sri Lanka
    111: en_LR Liberia
    112: en_LS Lesotho
    113: en_LY Libya
    114: en_MC Monaco
    115: en_MG Madagascar
    116: en_MS Montserrat
    117: en_MT Malta
    118: en_MU Mauritius
    119: en_MW MW
    120: en_MY Malaysia
    121: en_NA Namibia
    122: en_NF NF
    123: en_NG Nigeria
    124: en_NR NR
    125: en_NU Niue
    126: en_NZ New Zealand
    127: en_OM Oman
    128: en_PA Panama
    129: en_PG Papua New Guinea
    130: en_PH Philippines
    131: en_PK Pakistan
    132: en_PM PM
    133: en_PN PN
    134: en_PR Puerto Rico
    135: en_PW PW
    136: en_QA Qatar
    137: en_RW Rwanda
    138: en_SB SB
    139: en_SC Seychelles
    140: en_SG Singapore
    141: en_SH SH
    142: en_SL Sierra Leone
    143: en_SO Somalia
    144: en_SR Suriname
    145: en_SZ Swaziland
    146: en_TC TC
    147: en_TK Tokelau
    148: en_TO Tonga
    149: en_TT Trinidad and Tobago
    150: en_TV TV
    151: en_TZ Tanzania
    152: en_UG Uganda
    153: en_UM UM
    154: en_US United States
    155: en_VC VC
    156: en_VG British Virgin Islands
    157: en_VI U.S. Virgin Islands
    158: en_VU Vanuatu
    159: en_WS WS
    160: en_ZA South Africa
    161: en_ZM Zambia
    162: en_ZW Zimbabwe

         eo Esperanto

    163: es_AD Spanish Andorra
    164: es_AR Argentina
    165: es_BO Bolivia
    166: es_BZ Belize
    167: es_CL Chile
    168: es_CO Colombia
    169: es_CR Costa Rica
    170: es_CU Cuba
    171: es_DO Dominican Republic
    172: es_EC Ecuador
    173: es_ES Spain
    174: es_GI GI
    175: es_GQ Equatorial Guinea
    176: es_GT Guatemala
    177: es_HN Honduras
    178: es_MA Morocco
    179: es_MX Mexico
    180: es_NI Nicaragua
    181: es_PA Panama
    182: es_PE Peru
    183: es_PH Philippines
    184: es_PR Puerto Rico
    185: es_PY Paraguay
    186: es_SR Suriname
    187: es_SV El Salvador
    188: es_US United States
    189: es_UY Uruguay
    190: es_VE Venezuela

    191: et_EE Estonian Estonia

    192: eu_ES Basque Spain
    193: eu_FR France

    194: fa_IR Persian Iran

    195: fi_FI Finnish Finland

    196: fj_FJ Fiji Fiji

    197: fo_FO Faroese FO

    198: fr_AD French Andorra
    199: fr_BE Belgium
    200: fr_BF Burkina Faso
    201: fr_BI Burundi
    202: fr_BJ Benin
    203: fr_CA Canada
    204: fr_CF Central African Republic
    205: fr_CG Congo
    206: fr_CH Switzerland
    207: fr_CI C?te d'Ivoire
    208: fr_CM Cameroon
    209: fr_DJ Djibouti
    210: fr_DM Dominica
    211: fr_DZ Algeria
    212: fr_EG Egypt
    213: fr_EH Western Sahara
    214: fr_FR France
    215: fr_FX FX
    216: fr_GA Gabon
    217: fr_GD GD
    218: fr_GF French Guiana
    219: fr_GN Guinea
    220: fr_GP Guadeloupe
    221: fr_HT Haiti
    222: fr_IT Italy
    223: fr_KM Comoros
    224: fr_LA Laos
    225: fr_LB Lebanon
    226: fr_LC LC
    227: fr_LU Luxembourg
    228: fr_MA Morocco
    229: fr_MC Monaco
    230: fr_MG Madagascar
    231: fr_ML Mali
    232: fr_MQ Martinique
    233: fr_MR Mauritania
    234: fr_MU Mauritius
    235: fr_NE Niger
    236: fr_PF French Polynesia
    237: fr_PM PM
    238: fr_RE RE
    239: fr_RW Rwanda
    240: fr_SC Seychelles
    241: fr_SN Senegal
    242: fr_TD Chad
    243: fr_TF French Southern Territories
    244: fr_TG Togo
    245: fr_VN Vietnam
    246: fr_VU Vanuatu
    247: fr_WF WF
    248: fr_YT Mayotte
    249: fr_ZR Zaire

    250: fy_NL Frisian Netherlands

    251: ga_IE Irish Ireland

    252: gd_GB Scots Gaelic United Kingdom

    253: gl_ES Galician Spain

    254: gn_PY Guarani Paraguay

    255: gu_IN Gujarati India

    256: ha_NE Hausa Niger
    257: ha_NG Nigeria

         he Hebrew

    258: hi_BD Hindi Bangladesh
    259: hi_FJ Fiji
    260: hi_GY Guyana
    261: hi_IN India
    262: hi_MU Mauritius
    263: hi_SR Suriname

    264: hr_BA Croatian Bosnia and Herzegovina
    265: hr_HR Croatia

    266: hu_HU Hungarian Hungary
    267: hu_RO Romania
    268: hu_SK Slovakia
    269: hu_YU Yugoslavia

    270: hy_AM Armenian Armenia
    271: hy_AZ Azerbaijan
    272: hy_GE Georgia

         ia Interlingua

         id Indonesian

         ie Interlingue

    273: ik_GL Inupiak GL

    274: in_ID Indonesian Indonesia

    275: is_IS Icelandic Iceland

    276: it_CH Italian Switzerland
    277: it_EH Western Sahara
    278: it_ER Eritrea
    279: it_IT Italy
    280: it_LY Libya
    281: it_MC Monaco
    282: it_MT Malta
    283: it_SM SM
    284: it_SO Somalia
    285: it_VA Vatican

         iu Inuktitut

    286: iw_IL Hebrew Israel

    287: ja_JP Japanese Japan

    288: ji_IL Yiddish Israel

         jw Javanese

    289: ka_GE Georgian Georgia

    290: kk_KZ Kazakh Kazakhstan

    291: kl_GL Greenlandic GL

    292: km_KH Cambodian Cambodia

    293: kn_IN Kannada India

    294: ko_KP Korean North Korea
    295: ko_KR South Korea

    296: ks_IN Kashmiri India

    297: ku_IQ Kurdish Iraq
    298: ku_IR Iran
    299: ku_TR Turkey

    300: ky_KG Kirghiz Kyrgyzstan

    301: la_VA Latin Vatican

         ln Lingala

    302: lo_LA Laothian Laos

    303: lt_LT Lithuanian Lithuania
    304: lt_LV Latvia

    305: lv_LV Latvian (Lettish) Latvia

    306: mg_MG Malagasy Madagascar
    307: mg_YT Mayotte

    308: mi_CK Maori CK
    309: mi_NZ New Zealand
    310: mi_TK Tokelau

    311: mk_BA Macedonian Bosnia and Herzegovina
    312: mk_MK Macedonia
    313: mk_YU Yugoslavia

    314: ml_IN Malayalam India

    315: mn_MN Mongolian Mongolia

    316: mo_MD Moldavian Moldova

    317: mr_IN Marathi India

    318: ms_BN Malay Brunei
    319: ms_MY Malaysia
    320: ms_SG Singapore

    321: mt_MT Maltese Malta

    322: my_MM Burmese Myanmar

    323: na_NR Nauru NR

    324: ne_BT Nepali Bhutan
    325: ne_IN India
    326: ne_NP Nepal

    327: nl_AN Dutch Netherlands Antilles
    328: nl_AW Aruba
    329: nl_BE Belgium
    330: nl_ID Indonesia
    331: nl_NL Netherlands
    332: nl_SR Suriname

    333: no_BV Norwegian BV
    334: no_NO Norway
    335: no_SJ SJ

         oc Occitan

         om Oromo (Afan)

    336: or_IN Oriya India

    337: pa_IN Punjabi India
    338: pa_PK Pakistan

    339: pl_LT Polish Lithuania
    340: pl_PL Poland
    341: pl_SK Slovakia

    342: ps_AF Pashto (Pushto) Afghanistan
    343: ps_PK Pakistan

    344: pt_AO Portuguese Angola
    345: pt_BR Brazil
    346: pt_CV Cape Verde
    347: pt_GW Guinea-Bissau
    348: pt_MO MO
    349: pt_MZ Mozambique
    350: pt_PT Portugal
    351: pt_ST ST

    352: qu_BO Quechua Bolivia
    353: qu_EC Ecuador
    354: qu_PE Peru

    355: rm_CH Rhaeto-Romance Switzerland

    356: rn_AI Kirundi Anguilla
    357: rn_BI Burundi

    358: ro_MD Romanian Moldova
    359: ro_RO Romania

    360: ru_AM Russian Armenia
    361: ru_AZ Azerbaijan
    362: ru_BY Belarus
    363: ru_EE Estonia
    364: ru_GE Georgia
    365: ru_KZ Kazakhstan
    366: ru_LT Lithuania
    367: ru_LV Latvia
    368: ru_MN Mongolia
    369: ru_RU Russia
    370: ru_TJ Tajikistan
    371: ru_TM Turkmenistan
    372: ru_UA Ukraine
    373: ru_UZ Uzbekistan

    374: rw_RW Kinyarwanda Rwanda

    375: sa_IN Sanskrit India

    376: sd_PK Sindhi Pakistan

    377: sg_CF Sangho Central African Republic

    378: sh_BA Serbo-Croatian Bosnia and Herzegovina
    379: sh_MK Macedonia
    380: sh_SK Slovakia
    381: sh_YU Yugoslavia

    382: si_LK Sinhalese Sri Lanka

    383: sk_CZ Slovak Czech Republic
    384: sk_SK Slovakia

    385: sl_BA Slovenian Bosnia and Herzegovina
    386: sl_SI Slovenia

    387: sm_AS Samoan AS
    388: sm_WS WS

    389: sn_ZW Shona Zimbabwe

    390: so_DJ Somali Djibouti
    391: so_SO Somalia

    392: sq_AL Albanian Albania
    393: sq_BA Bosnia and Herzegovina

    394: sr_BA Serbian Bosnia and Herzegovina
    395: sr_YU Yugoslavia

    396: ss_SZ Siswati Swaziland

    397: st_LS Sesotho Lesotho

    398: su_SD Sundanese Sudan

    399: sv_FI Swedish Finland
    400: sv_SE Sweden

    401: sw_BI Swahili Burundi
    402: sw_KE Kenya
    403: sw_TZ Tanzania
    404: sw_UG Uganda
    405: sw_YT Mayotte
    406: sw_ZR Zaire

    407: ta_IN Tamil India
    408: ta_LK Sri Lanka
    409: ta_RE RE
    410: ta_SG Singapore

    411: te_IN Telugu India

    412: tg_TJ Tajik Tajikistan

    413: th_TH Thai Thailand

    414: ti_ER Tigrinya Eritrea

    415: tk_IQ Turkmen Iraq
    416: tk_TM Turkmenistan

    417: tl_PH Tagalog Philippines

    418: tn_BW Setswana Botswana

    419: to_TO Tonga Tonga

    420: tr_BG Turkish Bulgaria
    421: tr_CY Cyprus
    422: tr_MK Macedonia
    423: tr_TR Turkey

         ts Tsonga

         tt Tatar

         tw Twi

         ug Uighur

    424: uk_UA Ukrainian Ukraine

    425: ur_GY Urdu Guyana
    426: ur_PK Pakistan

    427: uz_TJ Uzbek Tajikistan
    428: uz_UZ Uzbekistan

    429: vi_VN Vietnamese Vietnam

         vo Volapuk

    430: wo_GM Wolof Gambia

         xh Xhosa

         yi Yiddish

    431: yo_NG Yoruba Nigeria

         za Zhuang

    432: zh_BN Chinese Brunei
    433: zh_CN China
    434: zh_HK Hong Kong
    435: zh_MO MO
    436: zh_SG Singapore
    437: zh_TW Taiwan
    438: zh_VN Vietnam

         zu Zulu

    import java.util.*;

    public class LocaleLang {
       public static void main(String[] args) {
          String[] isoCountries = Locale.getISOCountries();
          String[] isoLanguages = Locale.getISOLanguages();
          Hashtable lang2ctryMapping = new Hashtable(isoLanguages.length);

          StringBuffer[] ctry2LangLists = new StringBuffer[isoCountries.length]; //(country: {language}+) in ISO
          for (int i = 0; i < isoCountries.length; ++i) {
             ctry2LangLists[i] = new StringBuffer();
             String country = isoCountries[i];
             ctry2LangLists[i].append(country + ":" );
             String[] languages = Locale_getLanguagesForCountry(country);
             for (int j = 0; j < languages.length; ++j) {
                String language = languages[j];
                ctry2LangLists[i].append(" " + language);
             }
          }

          //DisplayCountry (country: {language}+)
          // {DisplayLanguage}+
          for (int i = 0; i < isoCountries.length; ++i) {
             String country = isoCountries[i];
             System.out.print(rightJustified(""+(i+1), 3) + ": ");
             System.out.print(new Locale("", country).getDisplayCountry());
             System.out.println(" (" + ctry2LangLists[i] + ")");
             String[] languages = Locale_getLanguagesForCountry(country);
             for (int j = 0; j < languages.length; ++j) {
                String language = languages[j];
                System.out.println(" " + new Locale(language, country).getDisplayLanguage());
                Vector lang2CtryVec = (Vector) lang2ctryMapping.get(language);
                if (lang2CtryVec == null) {
                   lang2CtryVec = new Vector();
                }
                lang2CtryVec.addElement(country);
                lang2ctryMapping.put(language, lang2CtryVec);
             }
             System.out.println();
          }

          //language1_country1 DisplayLanguage1 DisplayCountry1
          //language1_country2 DisplayCountry2
          //...
          int cnt = 0;
          for (int i = 0; i < isoLanguages.length; ++i) {
             String lang = isoLanguages[i];
             Vector lang2CtryVec = (Vector) lang2ctryMapping.get(lang);
             if (lang2CtryVec == null) {
                System.out.print(" " + lang + " ");
                String dispLang = new Locale(lang, "").getDisplayLanguage();
                System.out.println(dispLang);
                System.out.println();
             } else {
                for (int j = 0; j < lang2CtryVec.size(); ++j) {
                   System.out.print(rightJustified(""+(++cnt), 3) + ": ");
                   String ctry = (String) lang2CtryVec.elementAt(j);
                   System.out.print(lang + "_" + ctry + " ");
                   String dispLang = "";
                   if (j == 0) {
                      dispLang = new Locale(lang, ctry).getDisplayLanguage();
                   }
                   System.out.print(leftJustified(dispLang, 15) + " ");
                   System.out.println(new Locale(lang, ctry).getDisplayCountry());
                }
                System.out.println();
             }
          }
       } //main

       private static String leftJustified(String str, final int len) {
          return justified(str, len, true);
       }

       private static String rightJustified(String str, final int len) {
          return justified(str, len, false);
       }

       private static String justified(String str, final int len, boolean left) {
          StringBuffer sb = new StringBuffer(str);
          final int size = str.length();
          for (int i = 0; i < (len - size); ++i) {
             if (left) {
                sb.append(" ");
             } else {
                sb.insert(0, " ");
             }
          }
          return sb.toString();
       }

        private static Hashtable ctry2LangMapping = null;
        private static final String compressedCtry2LangMapping =
            "ADfresAEarenAFpsAGenAIrnALsqAMhyruANnlenAOptAResASensmATdeAUenAWnlenAZazhyru"
            + "BAsrshhrslmksqBBenBDbnhibhenBEfrnldeBFfrBGbgtrBHarenBIrnfrswBJfrBMenBNmsenzh"
            + "BOesayquBRptBSenBTdzenneBVnoBWentnBYberuBZenesCAenfrCCenCFfrsgCGfrCHfrdeitrm"
            + "CIfrCKmienCLesCMenfrCNzhboCOesCResCUesCVptCXenCYeltrenCZcsskDEdeDJarfrsoDKda"
            + "DMenfrDOesDZarfrECesquEEetruEGarenfrEHarfritERamtiarenitESeseucaglETamaren"
            + "FIfisvFJenfjhiFKenFMenFOfodaFRfreubrcoFXfrGAfrGBengdcyGDenfrGEkahyruGFfrGHen"
            + "GIenesGLdaikklGMenwoGNfrGPfrenGQesGRelGTesGUenGWptGYenhiurHKzhenHNesHRhrHTfr"
            + "HUhuIDinennlIEengaILiwarjiINhienguknksmlmrneorpasatateIOenIQarkutkIRfaarku"
            + "ISisITitfrdeJMenJOarJPjaKEenswKGkyKHkmKIenKMfrarKNenKPkoKRkoKWarenKYenKZkkru"
            + "LAlofrLBarenfrLCenfrLIdeLKtasienLRenLSstenLTltruplLUfrdeLVlvltruLYarenit"
            + "MAarfresMCfrenitMDmorobgMGmgenfrMKmkshtrMLfrMMmyMNmnruMOzhptMQfrMRarfrMSen"
            + "MTmtenitMUenfrhiMWenMXesMYmsenMZptNAenafdeNEfrhaNFenNGenhayoNIesNLnlfyNOno"
            + "NPneNRnaenNUenNZenmiOMarenPAesenPEesquayPFfrPGenPHentlesPKurenpspasdPLplPMfren"
            + "PNenPResenPTptPWenPYesgnQAarenREfrtaROrohuRUruRWenfrrwSAarSBenSCenfrSDarsu"
            + "SEsvSGzhenmstaSHenSIslSJnoSKskhuplshSLenSMitSNfrSOarenitsoSRnleneshiSTptSVes"
            + "SYarSZenssTCenTDfrarTFfrTGfrTHthTJtgruuzTKenmiTMtkruTNarTOentoTRtrkuTTenTVen"
            + "TWzhTZenswUAukruUGenswUMenUSenesUYesUZuzruVAlaitVCenVEesVGenVIenVNvizhfr"
            + "VUenfrbiWFfrWSensmYEarYTfrmgswYUsrshmkhuZAafenZMenZRfrswZWensn";

        private static String[] Locale_getLanguagesForCountry(String country) {
            // To save on the size of a static array in the .class file, we keep the
            // data around encoded into a String. The first time this function is called,
            // the String s parsed to produce a Hashtable, which is then used for all
            // lookups.
            if (ctry2LangMapping == null) {
                ctry2LangMapping = new Hashtable();

                int i = 0;
                int j;
                while (i < compressedCtry2LangMapping.length()) {
                    String key = compressedCtry2LangMapping.substring(i, i + 2);
                    i += 2;
                    for (j = i; j < compressedCtry2LangMapping.length(); j += 2)
                        if (Character.isUpperCase(compressedCtry2LangMapping.charAt(j)))
                            break;
                    String compressedValues = compressedCtry2LangMapping.substring(i, j);
                    String[] values = new String[compressedValues.length() / 2];
                    for (int k = 0; k < values.length; k++)
                        values[k] = compressedValues.substring(k * 2, (k * 2) + 2);
                    ctry2LangMapping.put(key, values);
                    i = j;
                }
            }
            String[] result = (String[])ctry2LangMapping.get(country);
            if (result == null)
                result = new String[0];
            return result;
        }
    }



    This archive was generated by hypermail 2b29 : Wed Apr 25 2001 - 19:31:38 EDT