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

最佳答案

方法1:

如果在开发计算机上使用Linux,则可以使用以下命令创建从values-rCNvalues-zh的符号链接:

ln -s values-zh values-rCN



方法二:

如果检测到使用了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/

10-08 23:40