UPD> Re: UPDF open standard for locales

UPD> Re: UPDF open standard for locales

Jim Lo Jim.Lo at Sun.COM
Wed Apr 25 19:31:14 EDT 2001


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 at jp.ibm.com>
>Cc: norbertschade at oaktech.com, <upd at pwg.org>, Jim Sommer <sommer at granitesystems.com>
>From: "Mark VanderWiele" <markv at 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 at IBMUS
>email: markv at us.ibm.com
>
>
>Jim Sommer <sommer at granitesystems.com> on 04/19/2001 08:05:53 AM
>
>To:   Mark VanderWiele/Austin/IBM at IBMUS, norbertschade at oaktech.com,
>      <upd at 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 at IBMUS
>>email: markv at us.ibm.com
>>---------------------- Forwarded by Mark VanderWiele/Austin/IBM on
>>04/18/2001 06:33 PM ---------------------------
>>
>>Akio Kido at IBMJP
>>04/16/2001 09:13 PM
>>
>>To:   Mark VanderWiele/Austin/IBM at IBMUS
>>cc:   George Kraft/Austin/IBM at IBMUS
>>From: Akio Kido/Japan/IBM at 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 at jp.ibm.com  Tel: +81-46-215-5436 FAX: +81-46-272-3352
>>
>>
>>From: Mark VanderWiele at IBMUS on 2001/04/13 09:10
>>
>>To:   Akio Kido/Japan/IBM at IBMJP
>>cc:   George Kraft/Austin/IBM at IBMUS
>>From: Mark VanderWiele/Austin/IBM at 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 at IBMUS
>>email: markv at us.ibm.com
>
>
>
-------------- next part --------------
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

-------------- next part --------------

-------------- next part --------------
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;
    }
} 


More information about the Upd mailing list