提交 722e0664 编写于 作者: N naoto

6989111: Incorrect default locale for New Zealand

6990452: Provide system properties for the user specified script
6992312: Currency becomes XXX if do not specify user.country.format
Reviewed-by: okutsu
上级 0326aef9
......@@ -758,7 +758,7 @@ public final class Locale implements Cloneable, Serializable {
}
private static void initDefault() {
String language, region, country, variant;
String language, region, script, country, variant;
language = AccessController.doPrivileged(
new GetPropertyAction("user.language", "en"));
// for compatibility, check for old user.region property
......@@ -774,43 +774,41 @@ public final class Locale implements Cloneable, Serializable {
country = region;
variant = "";
}
script = "";
} else {
script = AccessController.doPrivileged(
new GetPropertyAction("user.script", ""));
country = AccessController.doPrivileged(
new GetPropertyAction("user.country", ""));
variant = AccessController.doPrivileged(
new GetPropertyAction("user.variant", ""));
}
defaultLocale = getInstance(language, country, variant);
defaultLocale = getInstance(language, script, country, variant, null);
}
private static void initDefault(Locale.Category category) {
String language, region, country, variant;
// make sure defaultLocale is initialized
if (defaultLocale == null) {
initDefault();
}
Locale defaultCategoryLocale = getInstance(
AccessController.doPrivileged(
new GetPropertyAction(category.languageKey, defaultLocale.getLanguage())),
AccessController.doPrivileged(
new GetPropertyAction(category.scriptKey, defaultLocale.getScript())),
AccessController.doPrivileged(
new GetPropertyAction(category.countryKey, defaultLocale.getCountry())),
AccessController.doPrivileged(
new GetPropertyAction(category.variantKey, defaultLocale.getVariant())),
null);
switch (category) {
case DISPLAY:
language = AccessController.doPrivileged(
new GetPropertyAction("user.language.display", ""));
if ("".equals(language)) {
defaultDisplayLocale = getDefault();
} else {
country = AccessController.doPrivileged(
new GetPropertyAction("user.country.display", ""));
variant = AccessController.doPrivileged(
new GetPropertyAction("user.variant.display", ""));
defaultDisplayLocale = getInstance(language, country, variant);
}
defaultDisplayLocale = defaultCategoryLocale;
break;
case FORMAT:
language = AccessController.doPrivileged(
new GetPropertyAction("user.language.format", ""));
if ("".equals(language)) {
defaultFormatLocale = getDefault();
} else {
country = AccessController.doPrivileged(
new GetPropertyAction("user.country.format", ""));
variant = AccessController.doPrivileged(
new GetPropertyAction("user.variant.format", ""));
defaultFormatLocale = getInstance(language, country, variant);
}
defaultFormatLocale = defaultCategoryLocale;
break;
}
}
......@@ -2124,13 +2122,31 @@ public final class Locale implements Cloneable, Serializable {
* Category used to represent the default locale for
* displaying user interfaces.
*/
DISPLAY,
DISPLAY("user.language.display",
"user.script.display",
"user.country.display",
"user.variant.display"),
/**
* Category used to represent the default locale for
* formatting dates, numbers, and/or currencies.
*/
FORMAT,
FORMAT("user.language.format",
"user.script.format",
"user.country.format",
"user.variant.format");
Category(String languageKey, String scriptKey, String countryKey, String variantKey) {
this.languageKey = languageKey;
this.scriptKey = scriptKey;
this.countryKey = countryKey;
this.variantKey = variantKey;
}
final String languageKey;
final String scriptKey;
final String countryKey;
final String variantKey;
}
/**
......
#
#
# Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
......@@ -21,7 +21,7 @@
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
#
# (C) Copyright Taligent, Inc. 1996, 1997 - All Rights Reserved
# (C) Copyright IBM Corp. 1996 - 1999 - All Rights Reserved
......@@ -228,6 +228,492 @@ za=Zhuang
zh=Chinese
zu=Zulu
# key is ISO 639.2 language code
aar=Afar
abk=Abkhazian
ace=Achinese
ach=Acoli
ada=Adangme
ady=Adyghe
afa=Afro-Asiatic
afh=Afrihili
afr=Afrikaans
ain=Ainu
aka=Akan
akk=Akkadian
alb=Albanian
ale=Aleut
alg=Algonquian
alt=Southern Altai
amh=Amharic
ang=English, Old (ca.450-1100)
anp=Angika
apa=Apache
ara=Arabic
arc=Official Aramaic (700-300 BCE)
arg=Aragonese
arm=Armenian
arn=Mapudungun
arp=Arapaho
art=Artificial
arw=Arawak
asm=Assamese
ast=Asturian
ath=Athapascan
aus=Australian
ava=Avaric
ave=Avestan
awa=Awadhi
aym=Aymara
aze=Azerbaijani
bad=Banda
bai=Bamileke
bak=Bashkir
bal=Baluchi
bam=Bambara
ban=Balinese
baq=Basque
bas=Basa
bat=Baltic
bej=Beja
bel=Belarusian
bem=Bemba
ben=Bengali
ber=Berber
bho=Bhojpuri
bih=Bihari
bik=Bikol
bin=Bini
bis=Bislama
bla=Siksika
bnt=Bantu
bos=Bosnian
bra=Braj
bre=Breton
btk=Batak
bua=Buriat
bug=Buginese
bul=Bulgarian
bur=Burmese
byn=Blin
cad=Caddo
cai=Central American Indian
car=Galibi Carib
cat=Catalan
cau=Caucasian
ceb=Cebuano
cel=Celtic
cha=Chamorro
chb=Chibcha
che=Chechen
chg=Chagatai
chi=Chinese
chk=Chuukese
chm=Mari
chn=Chinook jargon
cho=Choctaw
chp=Chipewyan
chr=Cherokee
chu=Church Slavic
chv=Chuvash
chy=Cheyenne
cmc=Chamic
cop=Coptic
cor=Cornish
cos=Corsican
cpe=Creoles and pidgins, English based
cpf=Creoles and pidgins, French-based
cpp=Creoles and pidgins, Portuguese-based
cre=Cree
crh=Crimean Tatar
crp=Creoles and pidgins
csb=Kashubian
cus=Cushitic
cze=Czech
dak=Dakota
dan=Danish
dar=Dargwa
day=Land Dayak
del=Delaware
den=Slave (Athapascan)
dgr=Dogrib
din=Dinka
div=Divehi
doi=Dogri
dra=Dravidian
dsb=Lower Sorbian
dua=Duala
dum=Dutch, Middle (ca.1050-1350)
dut=Dutch
dyu=Dyula
dzo=Dzongkha
efi=Efik
egy=Egyptian (Ancient)
eka=Ekajuk
elx=Elamite
eng=English
enm=English, Middle (1100-1500)
epo=Esperanto
est=Estonian
ewe=Ewe
ewo=Ewondo
fan=Fang
fao=Faroese
fat=Fanti
fij=Fijian
fil=Filipino
fin=Finnish
fiu=Finno-Ugrian
fon=Fon
fre=French
frm=French, Middle (ca.1400-1600)
fro=French, Old (842-ca.1400)
frr=Northern Frisian
frs=Eastern Frisian
fry=Western Frisian
ful=Fulah
fur=Friulian
gaa=Ga
gay=Gayo
gba=Gbaya
gem=Germanic
geo=Georgian
ger=German
gez=Geez
gil=Gilbertese
gla=Gaelic
gle=Irish
glg=Galician
glv=Manx
gmh=German, Middle High (ca.1050-1500)
goh=German, Old High (ca.750-1050)
gon=Gondi
gor=Gorontalo
got=Gothic
grb=Grebo
grc=Greek, Ancient (to 1453)
gre=Greek, Modern (1453-)
grn=Guarani
gsw=Swiss German
guj=Gujarati
gwi=Gwich'in
hai=Haida
hat=Haitian
hau=Hausa
haw=Hawaiian
heb=Hebrew
her=Herero
hil=Hiligaynon
him=Himachali
hin=Hindi
hit=Hittite
hmn=Hmong
hmo=Hiri Motu
hrv=Croatian
hsb=Upper Sorbian
hun=Hungarian
hup=Hupa
iba=Iban
ibo=Igbo
ice=Icelandic
ido=Ido
iii=Sichuan Yi
ijo=Ijo
iku=Inuktitut
ile=Interlingue
ilo=Iloko
ina=Interlingua (International Auxiliary Language Association)
inc=Indic
ind=Indonesian
ine=Indo-European
inh=Ingush
ipk=Inupiaq
ira=Iranian
iro=Iroquoian
ita=Italian
jav=Javanese
jbo=Lojban
jpn=Japanese
jpr=Judeo-Persian
jrb=Judeo-Arabic
kaa=Kara-Kalpak
kab=Kabyle
kac=Kachin
kal=Kalaallisut
kam=Kamba
kan=Kannada
kar=Karen
kas=Kashmiri
kau=Kanuri
kaw=Kawi
kaz=Kazakh
kbd=Kabardian
kha=Khasi
khi=Khoisan
khm=Central Khmer
kho=Khotanese
kik=Kikuyu
kin=Kinyarwanda
kir=Kirghiz
kmb=Kimbundu
kok=Konkani
kom=Komi
kon=Kongo
kor=Korean
kos=Kosraean
kpe=Kpelle
krc=Karachay-Balkar
krl=Karelian
kro=Kru
kru=Kurukh
kua=Kuanyama
kum=Kumyk
kur=Kurdish
kut=Kutenai
lad=Ladino
lah=Lahnda
lam=Lamba
lao=Lao
lat=Latin
lav=Latvian
lez=Lezghian
lim=Limburgan
lin=Lingala
lit=Lithuanian
lol=Mongo
loz=Lozi
ltz=Luxembourgish
lua=Luba-Lulua
lub=Luba-Katanga
lug=Ganda
lui=Luiseno
lun=Lunda
luo=Luo (Kenya and Tanzania)
lus=Lushai
mac=Macedonian
mad=Madurese
mag=Magahi
mah=Marshallese
mai=Maithili
mak=Makasar
mal=Malayalam
man=Mandingo
mao=Maori
map=Austronesian
mar=Marathi
mas=Masai
may=Malay
mdf=Moksha
mdr=Mandar
men=Mende
mga=Irish, Middle (900-1200)
mic=Mi'kmaq
min=Minangkabau
mis=Uncoded
mkh=Mon-Khmer
mlg=Malagasy
mlt=Maltese
mnc=Manchu
mni=Manipuri
mno=Manobo
moh=Mohawk
mon=Mongolian
mos=Mossi
mul=Multiple
mun=Munda
mus=Creek
mwl=Mirandese
mwr=Marwari
myn=Mayan
myv=Erzya
nah=Nahuatl
nai=North American Indian
nap=Neapolitan
nau=Nauru
nav=Navajo
nbl=Ndebele, South
nde=Ndebele, North
ndo=Ndonga
nds=Low German
nep=Nepali
new=Nepal Bhasa
nia=Nias
nic=Niger-Kordofanian
niu=Niuean
nno=Norwegian Nynorsk
nob=Bokm\u00e5l, Norwegian
nog=Nogai
non=Norse, Old
nor=Norwegian
nqo=N'Ko
nso=Pedi
nub=Nubian
nwc=Classical Newari
nya=Chichewa
nym=Nyamwezi
nyn=Nyankole
nyo=Nyoro
nzi=Nzima
oci=Occitan (post 1500)
oji=Ojibwa
ori=Oriya
orm=Oromo
osa=Osage
oss=Ossetian
ota=Turkish, Ottoman (1500-1928)
oto=Otomian
paa=Papuan
pag=Pangasinan
pal=Pahlavi
pam=Pampanga
pan=Panjabi
pap=Papiamento
pau=Palauan
peo=Persian, Old (ca.600-400 B.C.)
per=Persian
phi=Philippine
phn=Phoenician
pli=Pali
pol=Polish
pon=Pohnpeian
por=Portuguese
pra=Prakrit
pro=Proven\u00e7al, Old (to 1500)
pus=Pushto; Pashto
que=Quechua
raj=Rajasthani
rap=Rapanui
rar=Rarotongan
roa=Romance
roh=Romansh
rom=Romany
rum=Romanian
run=Rundi
rup=Aromanian
rus=Russian
sad=Sandawe
sag=Sango
sah=Yakut
sai=South American Indian
sal=Salishan
sam=Samaritan Aramaic
san=Sanskrit
sas=Sasak
sat=Santali
scn=Sicilian
sco=Scots
sel=Selkup
sem=Semitic
sga=Irish, Old (to 900)
sgn=Sign
shn=Shan
sid=Sidamo
sin=Sinhala
sio=Siouan
sit=Sino-Tibetan
sla=Slavic
slo=Slovak
slv=Slovenian
sma=Southern Sami
sme=Northern Sami
smi=Sami
smj=Lule Sami
smn=Inari Sami
smo=Samoan
sms=Skolt Sami
sna=Shona
snd=Sindhi
snk=Soninke
sog=Sogdian
som=Somali
son=Songhai
sot=Sotho, Southern
spa=Spanish
srd=Sardinian
srn=Sranan Tongo
srp=Serbian
srr=Serer
ssa=Nilo-Saharan
ssw=Swati
suk=Sukuma
sun=Sundanese
sus=Susu
sux=Sumerian
swa=Swahili
swe=Swedish
syc=Classical Syriac
syr=Syriac
tah=Tahitian
tai=Tai
tam=Tamil
tat=Tatar
tel=Telugu
tem=Timne
ter=Tereno
tet=Tetum
tgk=Tajik
tgl=Tagalog
tha=Thai
tib=Tibetan
tig=Tigre
tir=Tigrinya
tiv=Tiv
tkl=Tokelau
tlh=Klingon
tli=Tlingit
tmh=Tamashek
tog=Tonga (Nyasa)
ton=Tonga (Tonga Islands)
tpi=Tok Pisin
tsi=Tsimshian
tsn=Tswana
tso=Tsonga
tuk=Turkmen
tum=Tumbuka
tup=Tupi
tur=Turkish
tut=Altaic
tvl=Tuvalu
twi=Twi
tyv=Tuvinian
udm=Udmurt
uga=Ugaritic
uig=Uighur
ukr=Ukrainian
umb=Umbundu
und=Undetermined
urd=Urdu
uzb=Uzbek
vai=Vai
ven=Venda
vie=Vietnamese
vol=Volap\u00fck
vot=Votic
wak=Wakashan
wal=Wolaitta
war=Waray
was=Washo
wel=Welsh
wen=Sorbian
wln=Walloon
wol=Wolof
xal=Kalmyk
xho=Xhosa
yao=Yao
yap=Yapese
yid=Yiddish
yor=Yoruba
ypk=Yupik
zap=Zapotec
zbl=Blissymbols
zen=Zenaga
zha=Zhuang
znd=Zande
zul=Zulu
zun=Zuni
zxx=No linguistic content
zza=Zaza
# script names
# key is ISO 15924 script code
......
......@@ -219,11 +219,14 @@ Java_java_lang_System_initProperties(JNIEnv *env, jclass cla, jobject props)
/*
* user.language
* user.country, user.variant (if user's environment specifies them)
* user.script, user.country, user.variant (if user's environment specifies them)
* file.encoding
* file.encoding.pkg
*/
PUTPROP(props, "user.language", sprops->language);
if (sprops->script) {
PUTPROP(props, "user.script", sprops->script);
}
if (sprops->country) {
PUTPROP(props, "user.country", sprops->country);
}
......@@ -305,11 +308,12 @@ Java_java_lang_System_initProperties(JNIEnv *env, jclass cla, jobject props)
}
/*
* unset "user.language", "user.country", and "user.variant"
* unset "user.language", "user.script", "user.country", and "user.variant"
* in order to tell whether the command line option "-DXXXX=YYYY" is
* specified or not. They will be reset in fillI18nProps() below.
*/
REMOVEPROP(props, "user.language");
REMOVEPROP(props, "user.script");
REMOVEPROP(props, "user.country");
REMOVEPROP(props, "user.variant");
REMOVEPROP(props, "file.encoding");
......@@ -328,6 +332,8 @@ Java_java_lang_System_initProperties(JNIEnv *env, jclass cla, jobject props)
/* reconstruct i18n related properties */
fillI18nProps(env, props, "user.language", sprops->display_language,
sprops->format_language, putID, getPropID);
fillI18nProps(env, props, "user.script",
sprops->display_script, sprops->format_script, putID, getPropID);
fillI18nProps(env, props, "user.country",
sprops->display_country, sprops->format_country, putID, getPropID);
fillI18nProps(env, props, "user.variant",
......
......@@ -55,6 +55,9 @@ typedef struct {
char *language;
char *format_language;
char *display_language;
char *script;
char *format_script;
char *display_script;
char *country;
char *format_country;
char *display_country;
......
......@@ -115,7 +115,8 @@ setPathEnvironment(char *envstring)
#define P_tmpdir "/var/tmp"
#endif
static int ParseLocale(int cat, char ** std_language, char ** std_country, char ** std_variant, char ** std_encoding) {
static int ParseLocale(int cat, char ** std_language, char ** std_script,
char ** std_country, char ** std_variant, char ** std_encoding) {
char temp[64];
char *language = NULL, *country = NULL, *variant = NULL,
*encoding = NULL;
......@@ -179,14 +180,22 @@ static int ParseLocale(int cat, char ** std_language, char ** std_country, char
strcpy(encoding_variant, p); /* Copy the leading '.' */
*p = '\0';
} else if ((p = strchr(temp, '@')) != NULL) {
strcpy(encoding_variant, p); /* Copy the leading '@' */
*p = '\0';
strcpy(encoding_variant, p); /* Copy the leading '@' */
*p = '\0';
} else {
*encoding_variant = '\0';
}
if (mapLookup(locale_aliases, temp, &p)) {
strcpy(temp, p);
// check the "encoding_variant" again, if any.
if ((p = strchr(temp, '.')) != NULL) {
strcpy(encoding_variant, p); /* Copy the leading '.' */
*p = '\0';
} else if ((p = strchr(temp, '@')) != NULL) {
strcpy(encoding_variant, p); /* Copy the leading '@' */
*p = '\0';
}
}
language = temp;
......@@ -217,10 +226,17 @@ static int ParseLocale(int cat, char ** std_language, char ** std_country, char
mapLookup(country_names, country, std_country);
}
/* Normalize the variant name. Note that we only use
* variants listed in the mapping array; others are ignored. */
if (std_variant != NULL && variant != NULL) {
mapLookup(variant_names, variant, std_variant);
/* Normalize the script and variant name. Note that we only use
* variants listed in the mapping array; others are ignored.
*/
if (variant != NULL) {
if (std_script != NULL) {
mapLookup(script_names, variant, std_script);
}
if (std_variant != NULL) {
mapLookup(variant_names, variant, std_variant);
}
}
/* Normalize the encoding name. Note that we IGNORE the string
......@@ -356,11 +372,13 @@ GetJavaProperties(JNIEnv *env)
setlocale(LC_ALL, "");
if (ParseLocale(LC_CTYPE,
&(sprops.format_language),
&(sprops.format_script),
&(sprops.format_country),
&(sprops.format_variant),
&(sprops.encoding))) {
ParseLocale(LC_MESSAGES,
&(sprops.language),
&(sprops.script),
&(sprops.country),
&(sprops.variant),
NULL);
......@@ -369,6 +387,7 @@ GetJavaProperties(JNIEnv *env)
sprops.encoding = "ISO8859-1";
}
sprops.display_language = sprops.language;
sprops.display_script = sprops.script;
sprops.display_country = sprops.country;
sprops.display_variant = sprops.variant;
sprops.sun_jnu_encoding = sprops.encoding;
......
......@@ -86,6 +86,8 @@
"wa", "wa_BE",
"zh", "zh_CN",
#ifdef __linux__
"bokmal", "nb_NO",
"bokm\u00e5l", "nb_NO",
"catalan", "ca_ES",
"croatian", "hr_HR",
"czech", "cs_CZ",
......@@ -93,9 +95,13 @@
"dansk", "da_DK",
"deutsch", "de_DE",
"dutch", "nl_NL",
"eesti", "et_EE",
"estonian", "et_EE",
"finnish", "fi_FI",
"fran\xE7\x61is", "fr_FR",
"french", "fr_FR",
"galego", "gl_ES",
"galician", "gl_ES",
"german", "de_DE",
"greek", "el_GR",
"hebrew", "iw_IL",
......@@ -104,7 +110,10 @@
"icelandic", "is_IS",
"italian", "it_IT",
"japanese", "ja_JP",
"korean", "ko_KR",
"lithuanian", "lt_LT",
"norwegian", "no_NO",
"nynorsk", "nn_NO",
"polish", "pl_PL",
"portuguese", "pt_PT",
"romanian", "ro_RO",
......@@ -114,11 +123,16 @@
"slovenian", "sl_SI",
"spanish", "es_ES",
"swedish", "sv_SE",
"thai", "th_TH",
"turkish", "tr_TR",
#else
"big5", "zh_TW.Big5",
"chinese", "zh_CN",
"iso_8859_1", "en_US.ISO8859-1",
"iso_8859_15", "en_US.ISO8859-15",
"japanese", "ja_JP",
"no_NY", "no_NO@nynorsk",
"sr_SP", "sr_YU",
"tchinese", "zh_TW",
#endif
""
......@@ -361,6 +375,506 @@ static char *language_names[] = {
"japanese", "ja",
"korean", "ko",
#endif
/* ISO 639.2 codes */
"aar", "aar",
"abk", "abk",
"ace", "ace",
"ach", "ach",
"ada", "ada",
"ady", "ady",
"afa", "afa",
"afh", "afh",
"afr", "afr",
"ain", "ain",
"aka", "aka",
"akk", "akk",
"alb", "alb",
"ale", "ale",
"alg", "alg",
"alt", "alt",
"amh", "amh",
"ang", "ang",
"anp", "anp",
"apa", "apa",
"ara", "ara",
"arc", "arc",
"arg", "arg",
"arm", "arm",
"arn", "arn",
"arp", "arp",
"art", "art",
"arw", "arw",
"asm", "asm",
"ast", "ast",
"ath", "ath",
"aus", "aus",
"ava", "ava",
"ave", "ave",
"awa", "awa",
"aym", "aym",
"aze", "aze",
"bad", "bad",
"bai", "bai",
"bak", "bak",
"bal", "bal",
"bam", "bam",
"ban", "ban",
"baq", "baq",
"bas", "bas",
"bat", "bat",
"bej", "bej",
"bel", "bel",
"bem", "bem",
"ben", "ben",
"ber", "ber",
"bho", "bho",
"bih", "bih",
"bik", "bik",
"bin", "bin",
"bis", "bis",
"bla", "bla",
"bnt", "bnt",
"bos", "bos",
"bra", "bra",
"bre", "bre",
"btk", "btk",
"bua", "bua",
"bug", "bug",
"bul", "bul",
"bur", "bur",
"byn", "byn",
"cad", "cad",
"cai", "cai",
"car", "car",
"cat", "cat",
"cau", "cau",
"ceb", "ceb",
"cel", "cel",
"cha", "cha",
"chb", "chb",
"che", "che",
"chg", "chg",
"chi", "chi",
"chk", "chk",
"chm", "chm",
"chn", "chn",
"cho", "cho",
"chp", "chp",
"chr", "chr",
"chu", "chu",
"chv", "chv",
"chy", "chy",
"cmc", "cmc",
"cop", "cop",
"cor", "cor",
"cos", "cos",
"cpe", "cpe",
"cpf", "cpf",
"cpp", "cpp",
"cre", "cre",
"crh", "crh",
"crp", "crp",
"csb", "csb",
"cus", "cus",
"cze", "cze",
"dak", "dak",
"dan", "dan",
"dar", "dar",
"day", "day",
"del", "del",
"den", "den",
"dgr", "dgr",
"din", "din",
"div", "div",
"doi", "doi",
"dra", "dra",
"dsb", "dsb",
"dua", "dua",
"dum", "dum",
"dut", "dut",
"dyu", "dyu",
"dzo", "dzo",
"efi", "efi",
"egy", "egy",
"eka", "eka",
"elx", "elx",
"eng", "eng",
"enm", "enm",
"epo", "epo",
"est", "est",
"ewe", "ewe",
"ewo", "ewo",
"fan", "fan",
"fao", "fao",
"fat", "fat",
"fij", "fij",
"fil", "fil",
"fin", "fin",
"fiu", "fiu",
"fon", "fon",
"fre", "fre",
"frm", "frm",
"fro", "fro",
"frr", "frr",
"frs", "frs",
"fry", "fry",
"ful", "ful",
"fur", "fur",
"gaa", "gaa",
"gay", "gay",
"gba", "gba",
"gem", "gem",
"geo", "geo",
"ger", "ger",
"gez", "gez",
"gil", "gil",
"gla", "gla",
"gle", "gle",
"glg", "glg",
"glv", "glv",
"gmh", "gmh",
"goh", "goh",
"gon", "gon",
"gor", "gor",
"got", "got",
"grb", "grb",
"grc", "grc",
"gre", "gre",
"grn", "grn",
"gsw", "gsw",
"guj", "guj",
"gwi", "gwi",
"hai", "hai",
"hat", "hat",
"hau", "hau",
"haw", "haw",
"heb", "heb",
"her", "her",
"hil", "hil",
"him", "him",
"hin", "hin",
"hit", "hit",
"hmn", "hmn",
"hmo", "hmo",
"hrv", "hrv",
"hsb", "hsb",
"hun", "hun",
"hup", "hup",
"iba", "iba",
"ibo", "ibo",
"ice", "ice",
"ido", "ido",
"iii", "iii",
"ijo", "ijo",
"iku", "iku",
"ile", "ile",
"ilo", "ilo",
"ina", "ina",
"inc", "inc",
"ind", "ind",
"ine", "ine",
"inh", "inh",
"ipk", "ipk",
"ira", "ira",
"iro", "iro",
"ita", "ita",
"jav", "jav",
"jbo", "jbo",
"jpn", "jpn",
"jpr", "jpr",
"jrb", "jrb",
"kaa", "kaa",
"kab", "kab",
"kac", "kac",
"kal", "kal",
"kam", "kam",
"kan", "kan",
"kar", "kar",
"kas", "kas",
"kau", "kau",
"kaw", "kaw",
"kaz", "kaz",
"kbd", "kbd",
"kha", "kha",
"khi", "khi",
"khm", "khm",
"kho", "kho",
"kik", "kik",
"kin", "kin",
"kir", "kir",
"kmb", "kmb",
"kok", "kok",
"kom", "kom",
"kon", "kon",
"kor", "kor",
"kos", "kos",
"kpe", "kpe",
"krc", "krc",
"krl", "krl",
"kro", "kro",
"kru", "kru",
"kua", "kua",
"kum", "kum",
"kur", "kur",
"kut", "kut",
"lad", "lad",
"lah", "lah",
"lam", "lam",
"lao", "lao",
"lat", "lat",
"lav", "lav",
"lez", "lez",
"lim", "lim",
"lin", "lin",
"lit", "lit",
"lol", "lol",
"loz", "loz",
"ltz", "ltz",
"lua", "lua",
"lub", "lub",
"lug", "lug",
"lui", "lui",
"lun", "lun",
"luo", "luo",
"lus", "lus",
"mac", "mac",
"mad", "mad",
"mag", "mag",
"mah", "mah",
"mai", "mai",
"mak", "mak",
"mal", "mal",
"man", "man",
"mao", "mao",
"map", "map",
"mar", "mar",
"mas", "mas",
"may", "may",
"mdf", "mdf",
"mdr", "mdr",
"men", "men",
"mga", "mga",
"mic", "mic",
"min", "min",
"mis", "mis",
"mkh", "mkh",
"mlg", "mlg",
"mlt", "mlt",
"mnc", "mnc",
"mni", "mni",
"mno", "mno",
"moh", "moh",
"mon", "mon",
"mos", "mos",
"mul", "mul",
"mun", "mun",
"mus", "mus",
"mwl", "mwl",
"mwr", "mwr",
"myn", "myn",
"myv", "myv",
"nah", "nah",
"nai", "nai",
"nap", "nap",
"nau", "nau",
"nav", "nav",
"nbl", "nbl",
"nde", "nde",
"ndo", "ndo",
"nds", "nds",
"nep", "nep",
"new", "new",
"nia", "nia",
"nic", "nic",
"niu", "niu",
"nno", "nno",
"nob", "nob",
"nog", "nog",
"non", "non",
"nor", "nor",
"nqo", "nqo",
"nso", "nso",
"nub", "nub",
"nwc", "nwc",
"nya", "nya",
"nym", "nym",
"nyn", "nyn",
"nyo", "nyo",
"nzi", "nzi",
"oci", "oci",
"oji", "oji",
"ori", "ori",
"orm", "orm",
"osa", "osa",
"oss", "oss",
"ota", "ota",
"oto", "oto",
"paa", "paa",
"pag", "pag",
"pal", "pal",
"pam", "pam",
"pan", "pan",
"pap", "pap",
"pau", "pau",
"peo", "peo",
"per", "per",
"phi", "phi",
"phn", "phn",
"pli", "pli",
"pol", "pol",
"pon", "pon",
"por", "por",
"pra", "pra",
"pro", "pro",
"pus", "pus",
"que", "que",
"raj", "raj",
"rap", "rap",
"rar", "rar",
"roa", "roa",
"roh", "roh",
"rom", "rom",
"rum", "rum",
"run", "run",
"rup", "rup",
"rus", "rus",
"sad", "sad",
"sag", "sag",
"sah", "sah",
"sai", "sai",
"sal", "sal",
"sam", "sam",
"san", "san",
"sas", "sas",
"sat", "sat",
"scn", "scn",
"sco", "sco",
"sel", "sel",
"sem", "sem",
"sga", "sga",
"sgn", "sgn",
"shn", "shn",
"sid", "sid",
"sin", "sin",
"sio", "sio",
"sit", "sit",
"sla", "sla",
"slo", "slo",
"slv", "slv",
"sma", "sma",
"sme", "sme",
"smi", "smi",
"smj", "smj",
"smn", "smn",
"smo", "smo",
"sms", "sms",
"sna", "sna",
"snd", "snd",
"snk", "snk",
"sog", "sog",
"som", "som",
"son", "son",
"sot", "sot",
"spa", "spa",
"srd", "srd",
"srn", "srn",
"srp", "srp",
"srr", "srr",
"ssa", "ssa",
"ssw", "ssw",
"suk", "suk",
"sun", "sun",
"sus", "sus",
"sux", "sux",
"swa", "swa",
"swe", "swe",
"syc", "syc",
"syr", "syr",
"tah", "tah",
"tai", "tai",
"tam", "tam",
"tat", "tat",
"tel", "tel",
"tem", "tem",
"ter", "ter",
"tet", "tet",
"tgk", "tgk",
"tgl", "tgl",
"tha", "tha",
"tib", "tib",
"tig", "tig",
"tir", "tir",
"tiv", "tiv",
"tkl", "tkl",
"tlh", "tlh",
"tli", "tli",
"tmh", "tmh",
"tog", "tog",
"ton", "ton",
"tpi", "tpi",
"tsi", "tsi",
"tsn", "tsn",
"tso", "tso",
"tuk", "tuk",
"tum", "tum",
"tup", "tup",
"tur", "tur",
"tut", "tut",
"tvl", "tvl",
"twi", "twi",
"tyv", "tyv",
"udm", "udm",
"uga", "uga",
"uig", "uig",
"ukr", "ukr",
"umb", "umb",
"und", "und",
"urd", "urd",
"uzb", "uzb",
"vai", "vai",
"ven", "ven",
"vie", "vie",
"vol", "vol",
"vot", "vot",
"wak", "wak",
"wal", "wal",
"war", "war",
"was", "was",
"wel", "wel",
"wen", "wen",
"wln", "wln",
"wol", "wol",
"xal", "xal",
"xho", "xho",
"yao", "yao",
"yap", "yap",
"yid", "yid",
"yor", "yor",
"ypk", "ypk",
"zap", "zap",
"zbl", "zbl",
"zen", "zen",
"zha", "zha",
"znd", "znd",
"zul", "zul",
"zun", "zun",
"zxx", "zxx",
"zza", "zza",
"",
};
/*
* Linux/Solaris script string to Java script name mapping table.
*/
static char *script_names[] = {
#ifdef __linux__
"cyrillic", "Cyrl",
"devanagari", "Deva",
"iqtelif", "Latn",
"latin", "Latn",
#endif
"",
};
......@@ -503,6 +1017,7 @@ static char *country_names[] = {
"MA", "MA",
"MC", "MC",
"MD", "MD",
"ME", "ME",
"MG", "MG",
"MH", "MH",
"MK", "MK",
......@@ -554,6 +1069,7 @@ static char *country_names[] = {
"RN", "US", // used on Linux, not clear what it stands for
#endif
"RO", "RO",
"RS", "RS",
"RU", "RU",
"RW", "RW",
"SA", "SA",
......
......@@ -169,7 +169,7 @@ public class WInputMethod extends InputMethodAdapter
locale.equals(Locale.JAPAN) && lang.equals(Locale.JAPANESE) ||
locale.equals(Locale.KOREA) && lang.equals(Locale.KOREAN)) {
if (isActive) {
setNativeLocale(locale.toString(), onActivate);
setNativeLocale(locale.toLanguageTag(), onActivate);
}
currentLocale = locale;
return true;
......
......@@ -43,11 +43,14 @@
#endif
typedef void (WINAPI *PGNSI)(LPSYSTEM_INFO);
static void SetupI18nProps(LCID lcid, char** language, char** country,
static void SetupI18nProps(LCID lcid, char** language, char** script, char** country,
char** variant, char** encoding);
#define SHELL_KEY "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders"
#define PROPSIZE 9 // eight-letter + null terminator
#define SNAMESIZE 86 // max number of chars for LOCALE_SNAME is 85
static char *
getEncodingInternal(LCID lcid)
{
......@@ -127,30 +130,31 @@ getEncodingFromLangID(LANGID langID)
return getEncodingInternal(MAKELCID(langID, SORT_DEFAULT));
}
// Returns BCP47 Language Tag
DllExport const char *
getJavaIDFromLangID(LANGID langID)
{
char * lang;
char * ctry;
char * vrnt;
char * enc;
char * ret = malloc(16);
char * elems[5]; // lang, script, ctry, variant, encoding
char * ret = malloc(SNAMESIZE);
int index;
SetupI18nProps(MAKELCID(langID, SORT_DEFAULT), &lang, &ctry, &vrnt, &enc);
if (ctry[0] != '\0') {
if (vrnt[0] != '\0') {
sprintf(ret, "%s_%s_%s", lang, ctry, vrnt);
} else {
sprintf(ret, "%s_%s", lang, ctry);
SetupI18nProps(MAKELCID(langID, SORT_DEFAULT),
&(elems[0]), &(elems[1]), &(elems[2]), &(elems[3]), &(elems[4]));
// there always is the "language" tag
strcpy(ret, elems[0]);
// append other elements, if any
for (index = 1; index < 4; index++) {
if ((elems[index])[0] != '\0') {
strcat(ret, "-");
strcat(ret, elems[index]);
}
} else {
strcpy(ret, lang);
}
free(lang);
free(ctry);
free(vrnt);
free(enc);
for (index = 0; index < 5; index++) {
free(elems[index]);
}
return ret;
}
......@@ -289,39 +293,38 @@ cpu_isalist(void)
return NULL;
}
#define PROPSIZE 3 // two-letter + null terminator
static void
SetupI18nProps(LCID lcid, char** language, char** country,
SetupI18nProps(LCID lcid, char** language, char** script, char** country,
char** variant, char** encoding) {
/* script */
char tmp[SNAMESIZE];
*script = malloc(PROPSIZE);
if (GetLocaleInfo(lcid,
LOCALE_SNAME, tmp, SNAMESIZE) == 0 ||
sscanf(tmp, "%*[a-z\\-]%1[A-Z]%[a-z]", *script, &((*script)[1])) == 0 ||
strlen(*script) != 4) {
(*script)[0] = '\0';
}
/* country */
*country = malloc(PROPSIZE);
if (GetLocaleInfo(lcid,
LOCALE_SISO3166CTRYNAME, *country, PROPSIZE) == 0) {
LOCALE_SISO3166CTRYNAME, *country, PROPSIZE) == 0 &&
GetLocaleInfo(lcid,
LOCALE_SISO3166CTRYNAME2, *country, PROPSIZE) == 0) {
(*country)[0] = '\0';
}
/* language */
*language = malloc(PROPSIZE);
if (lcid == 0x46c) {
/* Windows returns non-existent language code "ns" for Northern Sotho.
* Defaults to en_US
*/
strcpy(*language, "en");
strcpy(*country, "US");
} else if (GetLocaleInfo(lcid,
LOCALE_SISO639LANGNAME, *language, PROPSIZE) == 0) {
if (lcid == 0x465) {
/* for some reason, Windows returns "div" for this Divehi LCID, even though
* there is a two letter language code "dv". Tweak it here.
*/
strcpy(*language, "dv");
strcpy(*country, "MV");
} else {
if (GetLocaleInfo(lcid,
LOCALE_SISO639LANGNAME, *language, PROPSIZE) == 0 &&
GetLocaleInfo(lcid,
LOCALE_SISO639LANGNAME2, *language, PROPSIZE) == 0) {
/* defaults to en_US */
strcpy(*language, "en");
strcpy(*country, "US");
}
}
/* variant */
*variant = malloc(PROPSIZE);
......@@ -564,7 +567,7 @@ GetJavaProperties(JNIEnv* env)
/*
* user.language
* user.country, user.variant (if user's environment specifies them)
* user.script, user.country, user.variant (if user's environment specifies them)
* file.encoding
* file.encoding.pkg
*/
......@@ -582,16 +585,19 @@ GetJavaProperties(JNIEnv* env)
SetupI18nProps(userDefaultUILang,
&sprops.language,
&sprops.script,
&sprops.country,
&sprops.variant,
&display_encoding);
SetupI18nProps(userDefaultLCID,
&sprops.format_language,
&sprops.format_script,
&sprops.format_country,
&sprops.format_variant,
&sprops.encoding);
SetupI18nProps(userDefaultUILang,
&sprops.display_language,
&sprops.display_script,
&sprops.display_country,
&sprops.display_variant,
&display_encoding);
......
......@@ -540,34 +540,15 @@ jobject CreateLocaleObject(JNIEnv *env, const char * name)
{
TRY;
// get language, country, variant information
char * language = (char *)safe_Malloc(strlen(name) + 1);
char * country;
char * variant;
DASSERT(!safe_ExceptionOccurred(env));
strcpy(language, name);
for (country = language; *country != '_' && *country != '\0'; country++);
if (*country == '_') {
*country++ = '\0';
for (variant = country; *variant != '_' && *variant != '\0'; variant++);
if (*variant == '_') {
*variant++ = '\0';
}
} else {
variant = country;
}
// create Locale object
jobject langObj = env->NewStringUTF(language);
jobject ctryObj = env->NewStringUTF(country);
jobject vrntObj = env->NewStringUTF(variant);
jobject localeObj = JNU_NewObjectByName(env, "java/util/Locale",
"(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V",
langObj, ctryObj, vrntObj);
free(language);
env->DeleteLocalRef(langObj);
env->DeleteLocalRef(ctryObj);
env->DeleteLocalRef(vrntObj);
jobject langtagObj = env->NewStringUTF(name);
jobject localeObj = JNU_CallStaticMethodByName(env,
NULL,
"java/util/Locale",
"forLanguageTag",
"(Ljava/lang/String;)Ljava/util/Locale;",
langtagObj).l;
env->DeleteLocalRef(langtagObj);
return localeObj;
......
......@@ -465,15 +465,15 @@ format locale: ID: be_BY, Name: Belarusian (Belarus)
default charset: UTF-8
OS Locale: be_BY.utf8@latin
default locale: ID: be_BY, Name: Belarusian (Belarus)
display locale: ID: be_BY, Name: Belarusian (Belarus)
format locale: ID: be_BY, Name: Belarusian (Belarus)
default locale: ID: be_BY_#Latn, Name: Belarusian (Latin,Belarus)
display locale: ID: be_BY_#Latn, Name: Belarusian (Latin,Belarus)
format locale: ID: be_BY_#Latn, Name: Belarusian (Latin,Belarus)
default charset: UTF-8
OS Locale: be_BY@latin
default locale: ID: be_BY, Name: Belarusian (Belarus)
display locale: ID: be_BY, Name: Belarusian (Belarus)
format locale: ID: be_BY, Name: Belarusian (Belarus)
default locale: ID: be_BY_#Latn, Name: Belarusian (Latin,Belarus)
display locale: ID: be_BY_#Latn, Name: Belarusian (Latin,Belarus)
format locale: ID: be_BY_#Latn, Name: Belarusian (Latin,Belarus)
default charset: UTF-8
OS Locale: bg_BG
......@@ -518,13 +518,13 @@ display locale: ID: bn_IN, Name: Bengali (India)
format locale: ID: bn_IN, Name: Bengali (India)
default charset: UTF-8
OS Locale: bokml
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
OS Locale: bokmal
default locale: ID: nb_NO, Name: Norwegian Bokml (Norway)
display locale: ID: nb_NO, Name: Norwegian Bokml (Norway)
format locale: ID: nb_NO, Name: Norwegian Bokml (Norway)
default charset: ISO-8859-1
OS Locale: bokmal
OS Locale: bokml
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
......@@ -579,15 +579,15 @@ format locale: ID: bs_BA, Name: Bosnian (Bosnia and Herzegovina)
default charset: UTF-8
OS Locale: byn_ER
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: byn_ER, Name: Blin (Eritrea)
display locale: ID: byn_ER, Name: Blin (Eritrea)
format locale: ID: byn_ER, Name: Blin (Eritrea)
default charset: UTF-8
OS Locale: byn_ER.utf8
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: byn_ER, Name: Blin (Eritrea)
display locale: ID: byn_ER, Name: Blin (Eritrea)
format locale: ID: byn_ER, Name: Blin (Eritrea)
default charset: UTF-8
OS Locale: ca_AD
......@@ -705,15 +705,15 @@ format locale: ID: cs_CZ, Name: Czech (Czech Republic)
default charset: UTF-8
OS Locale: csb_PL
default locale: ID: en_PL, Name: English (Poland)
display locale: ID: en_PL, Name: English (Poland)
format locale: ID: en_PL, Name: English (Poland)
default locale: ID: csb_PL, Name: Kashubian (Poland)
display locale: ID: csb_PL, Name: Kashubian (Poland)
format locale: ID: csb_PL, Name: Kashubian (Poland)
default charset: UTF-8
OS Locale: csb_PL.utf8
default locale: ID: en_PL, Name: English (Poland)
display locale: ID: en_PL, Name: English (Poland)
format locale: ID: en_PL, Name: English (Poland)
default locale: ID: csb_PL, Name: Kashubian (Poland)
display locale: ID: csb_PL, Name: Kashubian (Poland)
format locale: ID: csb_PL, Name: Kashubian (Poland)
default charset: UTF-8
OS Locale: cy_GB
......@@ -939,9 +939,9 @@ format locale: ID: dz_BT, Name: Dzongkha (Bhutan)
default charset: UTF-8
OS Locale: eesti
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: et_EE, Name: Estonian (Estonia)
display locale: ID: et_EE, Name: Estonian (Estonia)
format locale: ID: et_EE, Name: Estonian (Estonia)
default charset: ISO-8859-1
OS Locale: el_CY
......@@ -1623,9 +1623,9 @@ format locale: ID: es_VE, Name: Spanish (Venezuela)
default charset: UTF-8
OS Locale: estonian
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: et_EE, Name: Estonian (Estonia)
display locale: ID: et_EE, Name: Estonian (Estonia)
format locale: ID: et_EE, Name: Estonian (Estonia)
default charset: ISO-8859-1
OS Locale: et_EE
......@@ -1929,15 +1929,15 @@ format locale: ID: ga_IE, Name: Irish (Ireland)
default charset: ISO-8859-15
OS Locale: galego
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: gl_ES, Name: Gallegan (Spain)
display locale: ID: gl_ES, Name: Gallegan (Spain)
format locale: ID: gl_ES, Name: Gallegan (Spain)
default charset: ISO-8859-1
OS Locale: galician
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: gl_ES, Name: Gallegan (Spain)
display locale: ID: gl_ES, Name: Gallegan (Spain)
format locale: ID: gl_ES, Name: Gallegan (Spain)
default charset: ISO-8859-1
OS Locale: gd_GB
......@@ -1965,51 +1965,51 @@ format locale: ID: de_DE, Name: German (Germany)
default charset: ISO-8859-1
OS Locale: gez_ER
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: gez_ER, Name: Geez (Eritrea)
display locale: ID: gez_ER, Name: Geez (Eritrea)
format locale: ID: gez_ER, Name: Geez (Eritrea)
default charset: UTF-8
OS Locale: gez_ER.utf8
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: gez_ER, Name: Geez (Eritrea)
display locale: ID: gez_ER, Name: Geez (Eritrea)
format locale: ID: gez_ER, Name: Geez (Eritrea)
default charset: UTF-8
OS Locale: gez_ER.utf8@abegede
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: gez_ER, Name: Geez (Eritrea)
display locale: ID: gez_ER, Name: Geez (Eritrea)
format locale: ID: gez_ER, Name: Geez (Eritrea)
default charset: UTF-8
OS Locale: gez_ER@abegede
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: gez_ER, Name: Geez (Eritrea)
display locale: ID: gez_ER, Name: Geez (Eritrea)
format locale: ID: gez_ER, Name: Geez (Eritrea)
default charset: UTF-8
OS Locale: gez_ET
default locale: ID: en_ET, Name: English (Ethiopia)
display locale: ID: en_ET, Name: English (Ethiopia)
format locale: ID: en_ET, Name: English (Ethiopia)
default locale: ID: gez_ET, Name: Geez (Ethiopia)
display locale: ID: gez_ET, Name: Geez (Ethiopia)
format locale: ID: gez_ET, Name: Geez (Ethiopia)
default charset: UTF-8
OS Locale: gez_ET.utf8
default locale: ID: en_ET, Name: English (Ethiopia)
display locale: ID: en_ET, Name: English (Ethiopia)
format locale: ID: en_ET, Name: English (Ethiopia)
default locale: ID: gez_ET, Name: Geez (Ethiopia)
display locale: ID: gez_ET, Name: Geez (Ethiopia)
format locale: ID: gez_ET, Name: Geez (Ethiopia)
default charset: UTF-8
OS Locale: gez_ET.utf8@abegede
default locale: ID: en_ET, Name: English (Ethiopia)
display locale: ID: en_ET, Name: English (Ethiopia)
format locale: ID: en_ET, Name: English (Ethiopia)
default locale: ID: gez_ET, Name: Geez (Ethiopia)
display locale: ID: gez_ET, Name: Geez (Ethiopia)
format locale: ID: gez_ET, Name: Geez (Ethiopia)
default charset: UTF-8
OS Locale: gez_ET@abegede
default locale: ID: en_ET, Name: English (Ethiopia)
display locale: ID: en_ET, Name: English (Ethiopia)
format locale: ID: en_ET, Name: English (Ethiopia)
default locale: ID: gez_ET, Name: Geez (Ethiopia)
display locale: ID: gez_ET, Name: Geez (Ethiopia)
format locale: ID: gez_ET, Name: Geez (Ethiopia)
default charset: UTF-8
OS Locale: gl_ES
......@@ -2139,21 +2139,21 @@ format locale: ID: hr_HR, Name: Croatian (Croatia)
default charset: ISO-8859-2
OS Locale: hsb_DE
default locale: ID: en_DE, Name: English (Germany)
display locale: ID: en_DE, Name: English (Germany)
format locale: ID: en_DE, Name: English (Germany)
default locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
display locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
format locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
default charset: ISO-8859-2
OS Locale: hsb_DE.iso88592
default locale: ID: en_DE, Name: English (Germany)
display locale: ID: en_DE, Name: English (Germany)
format locale: ID: en_DE, Name: English (Germany)
default locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
display locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
format locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
default charset: ISO-8859-2
OS Locale: hsb_DE.utf8
default locale: ID: en_DE, Name: English (Germany)
display locale: ID: en_DE, Name: English (Germany)
format locale: ID: en_DE, Name: English (Germany)
default locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
display locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
format locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
default charset: UTF-8
OS Locale: hu_HU
......@@ -2445,15 +2445,15 @@ format locale: ID: ko_KR, Name: Korean (South Korea)
default charset: UTF-8
OS Locale: korean
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: ko_KR, Name: Korean (South Korea)
display locale: ID: ko_KR, Name: Korean (South Korea)
format locale: ID: ko_KR, Name: Korean (South Korea)
default charset: EUC-KR
OS Locale: korean.euc
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: ko_KR, Name: Korean (South Korea)
display locale: ID: ko_KR, Name: Korean (South Korea)
format locale: ID: ko_KR, Name: Korean (South Korea)
default charset: EUC-KR
OS Locale: ku_TR
......@@ -2523,9 +2523,9 @@ format locale: ID: lg_UG, Name: Ganda (Uganda)
default charset: UTF-8
OS Locale: lithuanian
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: lt_LT, Name: Lithuanian (Lithuania)
display locale: ID: lt_LT, Name: Lithuanian (Lithuania)
format locale: ID: lt_LT, Name: Lithuanian (Lithuania)
default charset: ISO-8859-13
OS Locale: lo_LA
......@@ -2577,15 +2577,15 @@ format locale: ID: lv_LV, Name: Latvian (Latvia)
default charset: UTF-8
OS Locale: mai_IN
default locale: ID: en_IN, Name: English (India)
display locale: ID: en_IN, Name: English (India)
format locale: ID: en_IN, Name: English (India)
default locale: ID: mai_IN, Name: Maithili (India)
display locale: ID: mai_IN, Name: Maithili (India)
format locale: ID: mai_IN, Name: Maithili (India)
default charset: UTF-8
OS Locale: mai_IN.utf8
default locale: ID: en_IN, Name: English (India)
display locale: ID: en_IN, Name: English (India)
format locale: ID: en_IN, Name: English (India)
default locale: ID: mai_IN, Name: Maithili (India)
display locale: ID: mai_IN, Name: Maithili (India)
format locale: ID: mai_IN, Name: Maithili (India)
default charset: UTF-8
OS Locale: mg_MG
......@@ -2859,21 +2859,21 @@ format locale: ID: nr_ZA, Name: South Ndebele (South Africa)
default charset: UTF-8
OS Locale: nso_ZA
default locale: ID: en_ZA, Name: English (South Africa)
display locale: ID: en_ZA, Name: English (South Africa)
format locale: ID: en_ZA, Name: English (South Africa)
default locale: ID: nso_ZA, Name: Pedi (South Africa)
display locale: ID: nso_ZA, Name: Pedi (South Africa)
format locale: ID: nso_ZA, Name: Pedi (South Africa)
default charset: UTF-8
OS Locale: nso_ZA.utf8
default locale: ID: en_ZA, Name: English (South Africa)
display locale: ID: en_ZA, Name: English (South Africa)
format locale: ID: en_ZA, Name: English (South Africa)
default locale: ID: nso_ZA, Name: Pedi (South Africa)
display locale: ID: nso_ZA, Name: Pedi (South Africa)
format locale: ID: nso_ZA, Name: Pedi (South Africa)
default charset: UTF-8
OS Locale: nynorsk
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: nn_NO, Name: Norwegian Nynorsk (Norway)
display locale: ID: nn_NO, Name: Norwegian Nynorsk (Norway)
format locale: ID: nn_NO, Name: Norwegian Nynorsk (Norway)
default charset: ISO-8859-1
OS Locale: oc_FR
......@@ -3147,15 +3147,15 @@ format locale: ID: si_LK, Name: Sinhalese (Sri Lanka)
default charset: UTF-8
OS Locale: sid_ET
default locale: ID: en_ET, Name: English (Ethiopia)
display locale: ID: en_ET, Name: English (Ethiopia)
format locale: ID: en_ET, Name: English (Ethiopia)
default locale: ID: sid_ET, Name: Sidamo (Ethiopia)
display locale: ID: sid_ET, Name: Sidamo (Ethiopia)
format locale: ID: sid_ET, Name: Sidamo (Ethiopia)
default charset: UTF-8
OS Locale: sid_ET.utf8
default locale: ID: en_ET, Name: English (Ethiopia)
display locale: ID: en_ET, Name: English (Ethiopia)
format locale: ID: en_ET, Name: English (Ethiopia)
default locale: ID: sid_ET, Name: Sidamo (Ethiopia)
display locale: ID: sid_ET, Name: Sidamo (Ethiopia)
format locale: ID: sid_ET, Name: Sidamo (Ethiopia)
default charset: UTF-8
OS Locale: sk_SK
......@@ -3321,39 +3321,39 @@ format locale: ID: sr_CS, Name: Serbian (Serbia and Montenegro)
default charset: UTF-8
OS Locale: sr_ME
default locale: ID: sr, Name: Serbian
display locale: ID: sr, Name: Serbian
format locale: ID: sr, Name: Serbian
default locale: ID: sr_ME, Name: Serbian (Montenegro)
display locale: ID: sr_ME, Name: Serbian (Montenegro)
format locale: ID: sr_ME, Name: Serbian (Montenegro)
default charset: UTF-8
OS Locale: sr_ME.utf8
default locale: ID: sr, Name: Serbian
display locale: ID: sr, Name: Serbian
format locale: ID: sr, Name: Serbian
default locale: ID: sr_ME, Name: Serbian (Montenegro)
display locale: ID: sr_ME, Name: Serbian (Montenegro)
format locale: ID: sr_ME, Name: Serbian (Montenegro)
default charset: UTF-8
OS Locale: sr_RS
default locale: ID: sr, Name: Serbian
display locale: ID: sr, Name: Serbian
format locale: ID: sr, Name: Serbian
default locale: ID: sr_RS, Name: Serbian (Serbia)
display locale: ID: sr_RS, Name: Serbian (Serbia)
format locale: ID: sr_RS, Name: Serbian (Serbia)
default charset: UTF-8
OS Locale: sr_RS.utf8
default locale: ID: sr, Name: Serbian
display locale: ID: sr, Name: Serbian
format locale: ID: sr, Name: Serbian
default locale: ID: sr_RS, Name: Serbian (Serbia)
display locale: ID: sr_RS, Name: Serbian (Serbia)
format locale: ID: sr_RS, Name: Serbian (Serbia)
default charset: UTF-8
OS Locale: sr_RS.utf8@latin
default locale: ID: sr, Name: Serbian
display locale: ID: sr, Name: Serbian
format locale: ID: sr, Name: Serbian
default locale: ID: sr_RS_#Latn, Name: Serbian (Latin,Serbia)
display locale: ID: sr_RS_#Latn, Name: Serbian (Latin,Serbia)
format locale: ID: sr_RS_#Latn, Name: Serbian (Latin,Serbia)
default charset: UTF-8
OS Locale: sr_RS@latin
default locale: ID: sr, Name: Serbian
display locale: ID: sr, Name: Serbian
format locale: ID: sr, Name: Serbian
default locale: ID: sr_RS_#Latn, Name: Serbian (Latin,Serbia)
display locale: ID: sr_RS_#Latn, Name: Serbian (Latin,Serbia)
format locale: ID: sr_RS_#Latn, Name: Serbian (Latin,Serbia)
default charset: UTF-8
OS Locale: ss_ZA
......@@ -3507,9 +3507,9 @@ format locale: ID: th_TH, Name: Thai (Thailand)
default charset: UTF-8
OS Locale: thai
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: th_TH, Name: Thai (Thailand)
display locale: ID: th_TH, Name: Thai (Thailand)
format locale: ID: th_TH, Name: Thai (Thailand)
default charset: TIS-620
OS Locale: ti_ER
......@@ -3537,15 +3537,15 @@ format locale: ID: ti_ET, Name: Tigrinya (Ethiopia)
default charset: UTF-8
OS Locale: tig_ER
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: tig_ER, Name: Tigre (Eritrea)
display locale: ID: tig_ER, Name: Tigre (Eritrea)
format locale: ID: tig_ER, Name: Tigre (Eritrea)
default charset: UTF-8
OS Locale: tig_ER.utf8
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: tig_ER, Name: Tigre (Eritrea)
display locale: ID: tig_ER, Name: Tigre (Eritrea)
format locale: ID: tig_ER, Name: Tigre (Eritrea)
default charset: UTF-8
OS Locale: tl_PH
......@@ -3681,15 +3681,15 @@ format locale: ID: uz_UZ, Name: Uzbek (Uzbekistan)
default charset: ISO-8859-1
OS Locale: uz_UZ.utf8@cyrillic
default locale: ID: uz_UZ, Name: Uzbek (Uzbekistan)
display locale: ID: uz_UZ, Name: Uzbek (Uzbekistan)
format locale: ID: uz_UZ, Name: Uzbek (Uzbekistan)
default locale: ID: uz_UZ_#Cyrl, Name: Uzbek (Cyrillic,Uzbekistan)
display locale: ID: uz_UZ_#Cyrl, Name: Uzbek (Cyrillic,Uzbekistan)
format locale: ID: uz_UZ_#Cyrl, Name: Uzbek (Cyrillic,Uzbekistan)
default charset: UTF-8
OS Locale: uz_UZ@cyrillic
default locale: ID: uz_UZ, Name: Uzbek (Uzbekistan)
display locale: ID: uz_UZ, Name: Uzbek (Uzbekistan)
format locale: ID: uz_UZ, Name: Uzbek (Uzbekistan)
default locale: ID: uz_UZ_#Cyrl, Name: Uzbek (Cyrillic,Uzbekistan)
display locale: ID: uz_UZ_#Cyrl, Name: Uzbek (Cyrillic,Uzbekistan)
format locale: ID: uz_UZ_#Cyrl, Name: Uzbek (Cyrillic,Uzbekistan)
default charset: UTF-8
OS Locale: ve_ZA
......
......@@ -465,15 +465,15 @@ format locale: ID: be_BY, Name: Belarusian (Belarus)
default charset: UTF-8
OS Locale: be_BY.utf8@latin
default locale: ID: be_BY, Name: Belarusian (Belarus)
display locale: ID: be_BY, Name: Belarusian (Belarus)
format locale: ID: be_BY, Name: Belarusian (Belarus)
default locale: ID: be_BY_#Latn, Name: Belarusian (Latin,Belarus)
display locale: ID: be_BY_#Latn, Name: Belarusian (Latin,Belarus)
format locale: ID: be_BY_#Latn, Name: Belarusian (Latin,Belarus)
default charset: UTF-8
OS Locale: be_BY@latin
default locale: ID: be_BY, Name: Belarusian (Belarus)
display locale: ID: be_BY, Name: Belarusian (Belarus)
format locale: ID: be_BY, Name: Belarusian (Belarus)
default locale: ID: be_BY_#Latn, Name: Belarusian (Latin,Belarus)
display locale: ID: be_BY_#Latn, Name: Belarusian (Latin,Belarus)
format locale: ID: be_BY_#Latn, Name: Belarusian (Latin,Belarus)
default charset: UTF-8
OS Locale: bg_BG
......@@ -518,13 +518,13 @@ display locale: ID: bn_IN, Name: Bengali (India)
format locale: ID: bn_IN, Name: Bengali (India)
default charset: UTF-8
OS Locale: bokml
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
OS Locale: bokmal
default locale: ID: nb_NO, Name: Norwegian Bokml (Norway)
display locale: ID: nb_NO, Name: Norwegian Bokml (Norway)
format locale: ID: nb_NO, Name: Norwegian Bokml (Norway)
default charset: ISO-8859-1
OS Locale: bokmal
OS Locale: bokml
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
......@@ -579,15 +579,15 @@ format locale: ID: bs_BA, Name: Bosnian (Bosnia and Herzegovina)
default charset: UTF-8
OS Locale: byn_ER
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: byn_ER, Name: Blin (Eritrea)
display locale: ID: byn_ER, Name: Blin (Eritrea)
format locale: ID: byn_ER, Name: Blin (Eritrea)
default charset: UTF-8
OS Locale: byn_ER.utf8
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: byn_ER, Name: Blin (Eritrea)
display locale: ID: byn_ER, Name: Blin (Eritrea)
format locale: ID: byn_ER, Name: Blin (Eritrea)
default charset: UTF-8
OS Locale: ca_AD
......@@ -705,15 +705,15 @@ format locale: ID: cs_CZ, Name: Czech (Czech Republic)
default charset: UTF-8
OS Locale: csb_PL
default locale: ID: en_PL, Name: English (Poland)
display locale: ID: en_PL, Name: English (Poland)
format locale: ID: en_PL, Name: English (Poland)
default locale: ID: csb_PL, Name: Kashubian (Poland)
display locale: ID: csb_PL, Name: Kashubian (Poland)
format locale: ID: csb_PL, Name: Kashubian (Poland)
default charset: UTF-8
OS Locale: csb_PL.utf8
default locale: ID: en_PL, Name: English (Poland)
display locale: ID: en_PL, Name: English (Poland)
format locale: ID: en_PL, Name: English (Poland)
default locale: ID: csb_PL, Name: Kashubian (Poland)
display locale: ID: csb_PL, Name: Kashubian (Poland)
format locale: ID: csb_PL, Name: Kashubian (Poland)
default charset: UTF-8
OS Locale: cy_GB
......@@ -939,9 +939,9 @@ format locale: ID: dz_BT, Name: Dzongkha (Bhutan)
default charset: UTF-8
OS Locale: eesti
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: et_EE, Name: Estonian (Estonia)
display locale: ID: et_EE, Name: Estonian (Estonia)
format locale: ID: et_EE, Name: Estonian (Estonia)
default charset: ISO-8859-1
OS Locale: el_CY
......@@ -1623,9 +1623,9 @@ format locale: ID: es_VE, Name: Spanish (Venezuela)
default charset: UTF-8
OS Locale: estonian
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: et_EE, Name: Estonian (Estonia)
display locale: ID: et_EE, Name: Estonian (Estonia)
format locale: ID: et_EE, Name: Estonian (Estonia)
default charset: ISO-8859-1
OS Locale: et_EE
......@@ -1929,15 +1929,15 @@ format locale: ID: ga_IE, Name: Irish (Ireland)
default charset: ISO-8859-15
OS Locale: galego
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: gl_ES, Name: Gallegan (Spain)
display locale: ID: gl_ES, Name: Gallegan (Spain)
format locale: ID: gl_ES, Name: Gallegan (Spain)
default charset: ISO-8859-1
OS Locale: galician
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: gl_ES, Name: Gallegan (Spain)
display locale: ID: gl_ES, Name: Gallegan (Spain)
format locale: ID: gl_ES, Name: Gallegan (Spain)
default charset: ISO-8859-1
OS Locale: gd_GB
......@@ -1965,51 +1965,51 @@ format locale: ID: de_DE, Name: German (Germany)
default charset: ISO-8859-1
OS Locale: gez_ER
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: gez_ER, Name: Geez (Eritrea)
display locale: ID: gez_ER, Name: Geez (Eritrea)
format locale: ID: gez_ER, Name: Geez (Eritrea)
default charset: UTF-8
OS Locale: gez_ER.utf8
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: gez_ER, Name: Geez (Eritrea)
display locale: ID: gez_ER, Name: Geez (Eritrea)
format locale: ID: gez_ER, Name: Geez (Eritrea)
default charset: UTF-8
OS Locale: gez_ER.utf8@abegede
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: gez_ER, Name: Geez (Eritrea)
display locale: ID: gez_ER, Name: Geez (Eritrea)
format locale: ID: gez_ER, Name: Geez (Eritrea)
default charset: UTF-8
OS Locale: gez_ER@abegede
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: gez_ER, Name: Geez (Eritrea)
display locale: ID: gez_ER, Name: Geez (Eritrea)
format locale: ID: gez_ER, Name: Geez (Eritrea)
default charset: UTF-8
OS Locale: gez_ET
default locale: ID: en_ET, Name: English (Ethiopia)
display locale: ID: en_ET, Name: English (Ethiopia)
format locale: ID: en_ET, Name: English (Ethiopia)
default locale: ID: gez_ET, Name: Geez (Ethiopia)
display locale: ID: gez_ET, Name: Geez (Ethiopia)
format locale: ID: gez_ET, Name: Geez (Ethiopia)
default charset: UTF-8
OS Locale: gez_ET.utf8
default locale: ID: en_ET, Name: English (Ethiopia)
display locale: ID: en_ET, Name: English (Ethiopia)
format locale: ID: en_ET, Name: English (Ethiopia)
default locale: ID: gez_ET, Name: Geez (Ethiopia)
display locale: ID: gez_ET, Name: Geez (Ethiopia)
format locale: ID: gez_ET, Name: Geez (Ethiopia)
default charset: UTF-8
OS Locale: gez_ET.utf8@abegede
default locale: ID: en_ET, Name: English (Ethiopia)
display locale: ID: en_ET, Name: English (Ethiopia)
format locale: ID: en_ET, Name: English (Ethiopia)
default locale: ID: gez_ET, Name: Geez (Ethiopia)
display locale: ID: gez_ET, Name: Geez (Ethiopia)
format locale: ID: gez_ET, Name: Geez (Ethiopia)
default charset: UTF-8
OS Locale: gez_ET@abegede
default locale: ID: en_ET, Name: English (Ethiopia)
display locale: ID: en_ET, Name: English (Ethiopia)
format locale: ID: en_ET, Name: English (Ethiopia)
default locale: ID: gez_ET, Name: Geez (Ethiopia)
display locale: ID: gez_ET, Name: Geez (Ethiopia)
format locale: ID: gez_ET, Name: Geez (Ethiopia)
default charset: UTF-8
OS Locale: gl_ES
......@@ -2139,21 +2139,21 @@ format locale: ID: hr_HR, Name: Croatian (Croatia)
default charset: ISO-8859-2
OS Locale: hsb_DE
default locale: ID: en_DE, Name: English (Germany)
display locale: ID: en_DE, Name: English (Germany)
format locale: ID: en_DE, Name: English (Germany)
default locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
display locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
format locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
default charset: ISO-8859-2
OS Locale: hsb_DE.iso88592
default locale: ID: en_DE, Name: English (Germany)
display locale: ID: en_DE, Name: English (Germany)
format locale: ID: en_DE, Name: English (Germany)
default locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
display locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
format locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
default charset: ISO-8859-2
OS Locale: hsb_DE.utf8
default locale: ID: en_DE, Name: English (Germany)
display locale: ID: en_DE, Name: English (Germany)
format locale: ID: en_DE, Name: English (Germany)
default locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
display locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
format locale: ID: hsb_DE, Name: Upper Sorbian (Germany)
default charset: UTF-8
OS Locale: hu_HU
......@@ -2445,15 +2445,15 @@ format locale: ID: ko_KR, Name: Korean (South Korea)
default charset: UTF-8
OS Locale: korean
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: ko_KR, Name: Korean (South Korea)
display locale: ID: ko_KR, Name: Korean (South Korea)
format locale: ID: ko_KR, Name: Korean (South Korea)
default charset: EUC-KR
OS Locale: korean.euc
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: ko_KR, Name: Korean (South Korea)
display locale: ID: ko_KR, Name: Korean (South Korea)
format locale: ID: ko_KR, Name: Korean (South Korea)
default charset: EUC-KR
OS Locale: ku_TR
......@@ -2523,9 +2523,9 @@ format locale: ID: lg_UG, Name: Ganda (Uganda)
default charset: UTF-8
OS Locale: lithuanian
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: lt_LT, Name: Lithuanian (Lithuania)
display locale: ID: lt_LT, Name: Lithuanian (Lithuania)
format locale: ID: lt_LT, Name: Lithuanian (Lithuania)
default charset: ISO-8859-13
OS Locale: lo_LA
......@@ -2577,15 +2577,15 @@ format locale: ID: lv_LV, Name: Latvian (Latvia)
default charset: UTF-8
OS Locale: mai_IN
default locale: ID: en_IN, Name: English (India)
display locale: ID: en_IN, Name: English (India)
format locale: ID: en_IN, Name: English (India)
default locale: ID: mai_IN, Name: Maithili (India)
display locale: ID: mai_IN, Name: Maithili (India)
format locale: ID: mai_IN, Name: Maithili (India)
default charset: UTF-8
OS Locale: mai_IN.utf8
default locale: ID: en_IN, Name: English (India)
display locale: ID: en_IN, Name: English (India)
format locale: ID: en_IN, Name: English (India)
default locale: ID: mai_IN, Name: Maithili (India)
display locale: ID: mai_IN, Name: Maithili (India)
format locale: ID: mai_IN, Name: Maithili (India)
default charset: UTF-8
OS Locale: mg_MG
......@@ -2859,21 +2859,21 @@ format locale: ID: nr_ZA, Name: South Ndebele (South Africa)
default charset: UTF-8
OS Locale: nso_ZA
default locale: ID: en_ZA, Name: English (South Africa)
display locale: ID: en_ZA, Name: English (South Africa)
format locale: ID: en_ZA, Name: English (South Africa)
default locale: ID: nso_ZA, Name: Pedi (South Africa)
display locale: ID: nso_ZA, Name: Pedi (South Africa)
format locale: ID: nso_ZA, Name: Pedi (South Africa)
default charset: UTF-8
OS Locale: nso_ZA.utf8
default locale: ID: en_ZA, Name: English (South Africa)
display locale: ID: en_ZA, Name: English (South Africa)
format locale: ID: en_ZA, Name: English (South Africa)
default locale: ID: nso_ZA, Name: Pedi (South Africa)
display locale: ID: nso_ZA, Name: Pedi (South Africa)
format locale: ID: nso_ZA, Name: Pedi (South Africa)
default charset: UTF-8
OS Locale: nynorsk
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: nn_NO, Name: Norwegian Nynorsk (Norway)
display locale: ID: nn_NO, Name: Norwegian Nynorsk (Norway)
format locale: ID: nn_NO, Name: Norwegian Nynorsk (Norway)
default charset: ISO-8859-1
OS Locale: oc_FR
......@@ -3147,15 +3147,15 @@ format locale: ID: si_LK, Name: Sinhalese (Sri Lanka)
default charset: UTF-8
OS Locale: sid_ET
default locale: ID: en_ET, Name: English (Ethiopia)
display locale: ID: en_ET, Name: English (Ethiopia)
format locale: ID: en_ET, Name: English (Ethiopia)
default locale: ID: sid_ET, Name: Sidamo (Ethiopia)
display locale: ID: sid_ET, Name: Sidamo (Ethiopia)
format locale: ID: sid_ET, Name: Sidamo (Ethiopia)
default charset: UTF-8
OS Locale: sid_ET.utf8
default locale: ID: en_ET, Name: English (Ethiopia)
display locale: ID: en_ET, Name: English (Ethiopia)
format locale: ID: en_ET, Name: English (Ethiopia)
default locale: ID: sid_ET, Name: Sidamo (Ethiopia)
display locale: ID: sid_ET, Name: Sidamo (Ethiopia)
format locale: ID: sid_ET, Name: Sidamo (Ethiopia)
default charset: UTF-8
OS Locale: sk_SK
......@@ -3321,39 +3321,39 @@ format locale: ID: sr_CS, Name: Serbian (Serbia and Montenegro)
default charset: UTF-8
OS Locale: sr_ME
default locale: ID: sr, Name: Serbian
display locale: ID: sr, Name: Serbian
format locale: ID: sr, Name: Serbian
default locale: ID: sr_ME, Name: Serbian (Montenegro)
display locale: ID: sr_ME, Name: Serbian (Montenegro)
format locale: ID: sr_ME, Name: Serbian (Montenegro)
default charset: UTF-8
OS Locale: sr_ME.utf8
default locale: ID: sr, Name: Serbian
display locale: ID: sr, Name: Serbian
format locale: ID: sr, Name: Serbian
default locale: ID: sr_ME, Name: Serbian (Montenegro)
display locale: ID: sr_ME, Name: Serbian (Montenegro)
format locale: ID: sr_ME, Name: Serbian (Montenegro)
default charset: UTF-8
OS Locale: sr_RS
default locale: ID: sr, Name: Serbian
display locale: ID: sr, Name: Serbian
format locale: ID: sr, Name: Serbian
default locale: ID: sr_RS, Name: Serbian (Serbia)
display locale: ID: sr_RS, Name: Serbian (Serbia)
format locale: ID: sr_RS, Name: Serbian (Serbia)
default charset: UTF-8
OS Locale: sr_RS.utf8
default locale: ID: sr, Name: Serbian
display locale: ID: sr, Name: Serbian
format locale: ID: sr, Name: Serbian
default locale: ID: sr_RS, Name: Serbian (Serbia)
display locale: ID: sr_RS, Name: Serbian (Serbia)
format locale: ID: sr_RS, Name: Serbian (Serbia)
default charset: UTF-8
OS Locale: sr_RS.utf8@latin
default locale: ID: sr, Name: Serbian
display locale: ID: sr, Name: Serbian
format locale: ID: sr, Name: Serbian
default locale: ID: sr_RS_#Latn, Name: Serbian (Latin,Serbia)
display locale: ID: sr_RS_#Latn, Name: Serbian (Latin,Serbia)
format locale: ID: sr_RS_#Latn, Name: Serbian (Latin,Serbia)
default charset: UTF-8
OS Locale: sr_RS@latin
default locale: ID: sr, Name: Serbian
display locale: ID: sr, Name: Serbian
format locale: ID: sr, Name: Serbian
default locale: ID: sr_RS_#Latn, Name: Serbian (Latin,Serbia)
display locale: ID: sr_RS_#Latn, Name: Serbian (Latin,Serbia)
format locale: ID: sr_RS_#Latn, Name: Serbian (Latin,Serbia)
default charset: UTF-8
OS Locale: ss_ZA
......@@ -3507,9 +3507,9 @@ format locale: ID: th_TH, Name: Thai (Thailand)
default charset: UTF-8
OS Locale: thai
default locale: ID: en, Name: English
display locale: ID: en, Name: English
format locale: ID: en, Name: English
default locale: ID: th_TH, Name: Thai (Thailand)
display locale: ID: th_TH, Name: Thai (Thailand)
format locale: ID: th_TH, Name: Thai (Thailand)
default charset: TIS-620
OS Locale: ti_ER
......@@ -3537,15 +3537,15 @@ format locale: ID: ti_ET, Name: Tigrinya (Ethiopia)
default charset: UTF-8
OS Locale: tig_ER
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: tig_ER, Name: Tigre (Eritrea)
display locale: ID: tig_ER, Name: Tigre (Eritrea)
format locale: ID: tig_ER, Name: Tigre (Eritrea)
default charset: UTF-8
OS Locale: tig_ER.utf8
default locale: ID: en_ER, Name: English (Eritrea)
display locale: ID: en_ER, Name: English (Eritrea)
format locale: ID: en_ER, Name: English (Eritrea)
default locale: ID: tig_ER, Name: Tigre (Eritrea)
display locale: ID: tig_ER, Name: Tigre (Eritrea)
format locale: ID: tig_ER, Name: Tigre (Eritrea)
default charset: UTF-8
OS Locale: tl_PH
......@@ -3681,15 +3681,15 @@ format locale: ID: uz_UZ, Name: Uzbek (Uzbekistan)
default charset: ISO-8859-1
OS Locale: uz_UZ.utf8@cyrillic
default locale: ID: uz_UZ, Name: Uzbek (Uzbekistan)
display locale: ID: uz_UZ, Name: Uzbek (Uzbekistan)
format locale: ID: uz_UZ, Name: Uzbek (Uzbekistan)
default locale: ID: uz_UZ_#Cyrl, Name: Uzbek (Cyrillic,Uzbekistan)
display locale: ID: uz_UZ_#Cyrl, Name: Uzbek (Cyrillic,Uzbekistan)
format locale: ID: uz_UZ_#Cyrl, Name: Uzbek (Cyrillic,Uzbekistan)
default charset: UTF-8
OS Locale: uz_UZ@cyrillic
default locale: ID: uz_UZ, Name: Uzbek (Uzbekistan)
display locale: ID: uz_UZ, Name: Uzbek (Uzbekistan)
format locale: ID: uz_UZ, Name: Uzbek (Uzbekistan)
default locale: ID: uz_UZ_#Cyrl, Name: Uzbek (Cyrillic,Uzbekistan)
display locale: ID: uz_UZ_#Cyrl, Name: Uzbek (Cyrillic,Uzbekistan)
format locale: ID: uz_UZ_#Cyrl, Name: Uzbek (Cyrillic,Uzbekistan)
default charset: UTF-8
OS Locale: ve_ZA
......
......@@ -1128,9 +1128,9 @@ format locale: ID: no_NO_NY, Name: Norwegian (Norway,Nynorsk)
default charset: ISO-8859-1
OS Locale: no_NY
default locale: ID: no_, Name: Norwegian ()
display locale: ID: no_, Name: Norwegian ()
format locale: ID: no_, Name: Norwegian ()
default locale: ID: no_NO_NY, Name: Norwegian (Norway,Nynorsk)
display locale: ID: no_NO_NY, Name: Norwegian (Norway,Nynorsk)
format locale: ID: no_NO_NY, Name: Norwegian (Norway,Nynorsk)
default charset: ISO-8859-1
OS Locale: nr
......@@ -1332,9 +1332,9 @@ format locale: ID: sq_AL, Name: Albanian (Albania)
default charset: ISO-8859-2
OS Locale: sr_SP
default locale: ID: sr, Name: Serbian
display locale: ID: sr, Name: Serbian
format locale: ID: sr, Name: Serbian
default locale: ID: sr_CS, Name: Serbian (Serbia and Montenegro)
display locale: ID: sr_CS, Name: Serbian (Serbia and Montenegro)
format locale: ID: sr_CS, Name: Serbian (Serbia and Montenegro)
default charset: ISO-8859-5
OS Locale: sr_YU
......@@ -1721,5 +1721,5 @@ default charset: UTF-8
OS Locale (LC_CTYPE: C, LC_MESSAGES: zh_CN.UTF-8)
default locale: ID: zh_CN, Name: Chinese (China)
display locale: ID: zh_CN, Name: Chinese (China)
format locale: ID: en, Name: English
format locale: ID: en_CN, Name: English (China)
default charset: US-ASCII
......@@ -1128,9 +1128,9 @@ format locale: ID: no_NO_NY, Name: Norwegian (Norway,Nynorsk)
default charset: ISO-8859-1
OS Locale: no_NY
default locale: ID: no_, Name: Norwegian ()
display locale: ID: no_, Name: Norwegian ()
format locale: ID: no_, Name: Norwegian ()
default locale: ID: no_NO_NY, Name: Norwegian (Norway,Nynorsk)
display locale: ID: no_NO_NY, Name: Norwegian (Norway,Nynorsk)
format locale: ID: no_NO_NY, Name: Norwegian (Norway,Nynorsk)
default charset: ISO-8859-1
OS Locale: nr
......@@ -1332,9 +1332,9 @@ format locale: ID: sq_AL, Name: Albanian (Albania)
default charset: ISO-8859-2
OS Locale: sr_SP
default locale: ID: sr, Name: Serbian
display locale: ID: sr, Name: Serbian
format locale: ID: sr, Name: Serbian
default locale: ID: sr_CS, Name: Serbian (Serbia and Montenegro)
display locale: ID: sr_CS, Name: Serbian (Serbia and Montenegro)
format locale: ID: sr_CS, Name: Serbian (Serbia and Montenegro)
default charset: ISO-8859-5
OS Locale: sr_YU
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册