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