首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android简体中文和繁体中文不工作

Android简体中文和繁体中文不工作
EN

Stack Overflow用户
提问于 2017-06-23 14:24:07
回答 1查看 2K关注 0票数 1

我把简体中文放在values- zh -rCN,zh把繁体中文放在values-zh-rTW。但在更改语言环境时,它总是从zH加载字符串。这是我如何改变语言环境的。

代码语言:javascript
复制
public  void setLanguage(String languageCode, String countryCode){
    Locale locale = new Locale(languageCode, countryCode);
    Locale.setDefault(locale);
    Configuration config = getResources().getConfiguration();

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        setSystemLocale(config, locale);
    } else {
        setSystemLocaleLegacy(config, locale);
    }
    BaseSharedPreference.getInstance().setLanguage(locale.getLanguage());
    recreate();
}
EN

回答 1

Stack Overflow用户

发布于 2018-01-05 14:57:08

在Android 7中,默认情况下支持许多新的语言环境。在某些情况下,正确支持旧语言环境和新语言环境可能很棘手;在这里,我将讨论一个我碰巧知道的语言:中文。

基本背景:

中文是用两种不同的脚本编写的:简体和繁体每个说中文的地区通常只使用一个脚本,而理想情况下每个地区都有一个本地化的脚本,我们在这里假设每个脚本只有一个资源集。

在Android 7之前,可以使用以下中文语言环境:

zh-CN (简体) zh-TW (繁体)在某些情况下: zh-SG (简体) zh-HK (繁体) zh-MO (繁体)支持上述区域设置,同时最大限度地减少资源重复的通用资源布局方案为:

values-zh:繁体值-zh-rCN:简化值-zh-rSG:简化换言之,传统资源放在根上,zh-TW、zh-HK和zh-MO包含在回退中。

在Android 7中,旧的语言区域区域设置消失了,取而代之的是:

zh-Hans-CN zh-Hans-MO zh-Hans-HK zh-Hans-SG zh-Hant-TW zh-Hant-Hant-HK zh-Hant-MO注:

脚本和区域是单独指定的,现在有默认的区域设置,在传统的传统区域中指定简化的脚本: zh-Hans-MO和zh-Hans-HK。在Android 7中使用旧方案时出现问题:

zh-Hans-*在zh的任何子代之前回落到zh,因此看起来是传统的而不是简化的zh-Hans看起来根本不被识别这表明倾向于zh是简化的,而不是传统的。然而,SDK本身并不清楚这一点,它只有zh-CN、zh-HK和zh-TW资源。zh-Hant-*回退到zh-Hant,然后是默认值,因此看起来就像en Just zh和zh-Hant足以覆盖Android 7区域设置,但我们需要保持对Android 6和更早版本的支持。因此,现在最小的正确资源布局是:

values-zh:简化值-zh-rTW:繁体值-zh-rHK:繁体值-zh-rMO:繁体值-b+zh+Hans+HK:简化值-b+zh+Hans+MO:简化后,我们得到所需的行为:

在Android 6及更早版本上:

zh-CN和zh-SG回退到zh (简化) zh-TW、zh-HK和zh-MO在Android 7上具有特定资源(传统):

zh-Hans-CN和zh-Hans-SG回退到zh (简化) zh-Hant-TW、zh-Hant-HK和zh-Hant-MO回退到其语言区域区域设置(繁体) zh-Hans-HK和zh-Hans-MO具有特定资源(简化)

你可以从这篇文章中看到详细信息Link

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44714408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档