加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 有没有办法在Locale上按国家/地区默认语言?

发布时间:2020-12-15 03:11:55 所属栏目:Java 来源:网络整理
导读:我有这些代码行: Locale[] cosas = Locale.getAvailableLocales();for (int i = 0; i cosas.length; i++) { log.info(cosas[i]);} 我得到这个清单: ms_MYar_QAis_ISfi_FIplen_MTit_CHnl_BEar_SAar_IQes_PRes_CLfide_ATdaen_GBes_PAsrar_YEmk_MKmken_CAvi_V
我有这些代码行:
Locale[] cosas = Locale.getAvailableLocales();

for (int i = 0; i < cosas.length; i++) {
    log.info(cosas[i]);
}

我得到这个清单:

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

例如,对于西班牙语作为国家/地区,该列表包含两个区域设置:es_ES和ca_ES,当然,这与西班牙语不同.

那么,我的问题是,我怎么知道一个国家默认哪种语言?可以仅通过语言构造语言环境,但我需要通过该方法的参数传递国家,现在我有这个代码默认情况下分配语言:

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);

但我需要为更多语言扩展此开关.因此,我更倾向于为一个国家/地区默认分配语言.

我在link上找到了一个解决方案,但我尝试了它并且它是不对的(例如,对于西班牙,它返回默认的ca-ES,但它不是).有人认为通过代码获取国家真的有可能吗?任何的想法?非常感谢.

解决方法

它必须是java吗?我在c中创建了一个你可能会觉得有用的小exe: KyaaLocale,你可以根据需要自定义它,添加更多if / then / elses或任何你需要的东西.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读