android - 多语言android应用程序?

标签 android locale

我必须用 3 种语言制作我的 Android 应用程序,即德语、英语和荷兰语。我在 res 目录中的 android 应用程序名称 values-devalues-nl 中创建了三个文件夹。 现在,当用户选择特定语言时,我将执行以下代码:

Resources res = getResources();
Configuration newConfig = new Configuration(res.getConfiguration());
newConfig.locale = Locale.ENGLISH;
res.updateConfiguration(newConfig, null);

不同值文件夹中的所有字符串都具有相同的名称,即值文件夹中名称为 add_site 的字符串在 values-de 文件夹中具有相同的名称,但具有不同的值。 当我将区域设置设置为德语时,我的应用程序未加载德语值?可能是什么问题?

谢谢你的帮助。

最佳答案

尝试在 super.onCreate 调用之后将其放入 onCreate() 中:

Locale locale = new Locale("de");
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config,
      getBaseContext().getResources().getDisplayMetrics());

编辑: Here's another approach .看起来很灵活,但是对于是否适用于所有Android版本,评论中似乎存在一些分歧。

关于android - 多语言android应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5348618/

相关文章:

java - Locale.getISOCountries() 出现奇怪的错误

django LANGUAGE_CODE 不起作用

android - 在android中手动设置微调器下拉列表的宽度

java - 检查 Firebase Cloud Messaging 上的新通知。 (流式细胞术)

android - 使用 Pixel 在 ADM 中录制我的屏幕

python - 是否依赖于 str(Bool) 语言环境

python - 将 'decimal-mark' 千位分隔符添加到数字

android - 以毫秒为单位的时间警报

android - 防止扩展 EditText

android - 在 Android 应用程序中使用自定义语言环境