android - 如何使一种语言适用于 android I18N 中的所有区域?

标签 android internationalization

我想让values-zh作用于zh的所有区域,比如zh-rCN, zh-rTW , zh-rSG,因为对于大多数会说中文的人来说,任何一种中文都比英文更易读。但是 values-zh.xml 在我的 MI-5X 机器上和 values-zh-rCN 一样工作。那么实现这一目标的最佳解决方案是什么?

最佳答案

方法一:

如果您在开发机器上使用 Linux,则可以使用以下方法创建从 values-rCNvalues-zh 的符号链接(symbolic link):

ln -s values-zh values-rCN


方法 2:

如果检测到使用了 rCN,则可以在运行时更改语言。请记住,此解决方案有点老套,可能并非在所有情况下都有效。

Resources res = getApplicationContext().getResources();
Configuration config = res.getConfiguration();

Locale sysLocale;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
    sysLocale = config.getLocales().get(0);
} else {
    sysLocale = config.locale;
}

if (sysLocale.getLanguage().equals("zh-rCN")) {
    android.content.res.Configuration conf = res.getConfiguration();
    conf.setLocale(new Locale("zh"));
    res.updateConfiguration(conf, res.getDisplayMetrics());
}

关于android - 如何使一种语言适用于 android I18N 中的所有区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46792696/

相关文章:

php - PHP 中的符号链接(symbolic link)不起作用

django - 将包含变量的惰性翻译字符串传递给 Django 中的函数

Android折叠工具栏平滑滚动没有发生

android - 适用于 Raspberry Pi 3 的 Android Things 上的 UART 外设

android - 第二次使用选项卡返回 fragment 显示空白 fragment

objective-c - .lproj 和 Localizable.strings : project with localized text?

java - GWT 阿拉伯语渲染

java - StartActivityForResult 不暂停主 Activity

android - 如何修复 TabLayout 的上边距

Spring Boot i18n 解析