Ho queste righe di codice:Esiste un modo per conoscere la lingua per impostazione predefinita in base al paese nelle impostazioni internazionali?
Locale[] cosas = Locale.getAvailableLocales();
for (int i = 0; i < cosas.length; i++) {
log.info(cosas[i]);
}
ottengo questa lista:
ms_MY
ar_QA
is_IS
fi_FI
pl
en_MT
it_CH
nl_BE
ar_SA
ar_IQ
es_PR
es_CL
fi
de_AT
da
en_GB
es_PA
sr
ar_YE
mk_MK
mk
en_CA
vi_VN
nl_NL
es_US
zh_CN
es_HN
en_US
fr
th
ar
ar_MA
lv
de
in_ID
hr
en_ZA
ko_KR
ar_TN
in
ja
sr_RS
be_BY
zh_TW
ar_SD
pt
is
ja_JP_JP_#u-ca-japanese
es_BO
ar_DZ
ms
es_AR
ar_AE
fr_CA
sl
es
lt_LT
sr_ME_#Latn
ar_SY
ru_RU
fr_BE
es_ES
bg
iw_IL
sv
en
iw
da_DK
es_CR
zh_HK
zh
ca_ES
th_TH
uk_UA
es_DO
es_VE
pl_PL
ar_LY
ar_JO
it
uk
hu_HU
ga
es_GT
es_PY
bg_BG
hr_HR
sr_BA_#Latn
ro_RO
fr_LU
no
lt
en_SG
es_EC
sr_BA
es_NI
sk
ru
mt
es_SV
nl
hi_IN
et
el_GR
sl_SI
it_IT
ja_JP
de_LU
fr_CH
mt_MT
ar_BH
sq
vi
sr_ME
pt_BR
no_NO
el
de_CH
zh_SG
ar_KW
ar_EG
ga_IE
es_PE
cs_CZ
tr_TR
cs
es_UY
en_IE
en_IN
ar_OM
sr_CS
ca
be
sr__#Latn
ko
sq_AL
pt_PT
lv_LV
sr_RS_#Latn
sk_SK
es_MX
en_AU
no_NO_NY
en_NZ
sv_SE
ro
ar_LB
de_DE
th_TH_TH_#u-nu-thai
tr
es_CO
en_PH
et_EE
el_CY
hu
fr_FR
Ad esempio, per la Spagna come un paese, l'elenco contiene due locali: es_ES e ca_ES, che non è lo stesso per la lingua spagnola, ovviamente.
Quindi, la mia domanda è: come faccio a sapere qual è la lingua predefinita per un paese? E 'possibile costruire il locale solo con la lingua, ma ho bisogno di passare dal parametro per il metodo solo il paese e ora ho questo codice per assegnare una lingua di default:
if (language.equals("")) {
switch (country) {
case "CN":
language = "zh";
break;
case "ES":
language = "es";
break;
case "US":
language = "en";
break;
case "JP":
language = "ja";
break;
default:
country = "";
break;
}
}
if (language.equals("") && country.equals("")) {
newLocale = new Locale("es", "ES");
} else {
newLocale = new Locale(language, country);
}
RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME, newLocale);
ma ho bisogno di estendere questo interruttore per molte altre lingue. Quindi, preferisco avere un modo chiaro per assegnare la lingua di default per un paese.
Ho trovato una soluzione su questo link, ma l'ho provata e non è corretta (ad esempio, per la Spagna, restituisce come predefinito CA-ES e non lo è). Qualcuno pensa che sia davvero possibile ottenere il paese per codice? Qualche idea? Grazie mille.
Cosa intendi per "lingua predefinita"? Se vengono parlate più lingue in un paese, raramente una lingua è definita come predefinita o superiore. Se si intende la lingua più utilizzata, non ci sono dati per questo nel supporto di localizzazione in Java. – jarnbjo
Bene, questo non è per Paese, ma per ** utente ** guarda su ['Locale.getDefault()'] (http://docs.oracle.com/javase/7/docs/api/java/util/ Locale.html # getDefault% 28% 29). –