android - 应用程序无法从本地化文件夹读取字符串

标签 android android-studio localization resources translation

我遇到了一个奇怪的案件。我的应用程序支持 4 种语言:英语、土耳其语、俄语和乌克兰语。我得到了以下资源文件夹:

Resources Screenshot

我对值进行了土耳其语翻译,因此如果找不到任何字符串的翻译,默认值为土耳其语。

在下面您可以看到没有需要翻译的键:

Translation Screenshot

好吧,据我所知,当我更改手机语言时,它应该使用相应的字符串。

当我将手机语言设置为土耳其语时:

Turkish Screenshot

太棒了。现在,英语:

English Screenshot

也有效。现在俄语:

Turkish Screenshot

呃。

因此,土耳其语和英语可以使用,但手机语言为俄语或乌克兰语则不行。

应用程序中的任何位置都没有区域设置的手动设置。当我打电话时

getResources().getConfiguration().locale

getResources().getConfiguration().getLocales()

我得到了正确的区域设置“ru_RU”。

我在这里缺少什么吗?什么可能导致此问题?

最佳答案

我发现了问题,是build.gradle中的resConfigs。我的配置是

resConfigs "en", "tr"

所以它没有编译 ru 和 uk 资源。添加“ru”和“uk”解决了问题。最后一行如下所示:

resConfigs "en", "tr", "ru", "uk"

关于android - 应用程序无法从本地化文件夹读取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42361243/

相关文章:

java - 用日语对字符串进行排序

ios - APNS 推送通知,loc-args 中的字符串键

java - AlertDialog.setButton 无法更改按钮文本?

java - SAX XML 解析器在处理特殊字符时遇到麻烦

firebase - Flutter Firebase 错误(任务 ':app:mergeExtDexDebug' 执行失败)

android - 无法运行 android/sdk/build-tools/23.0.2/aapt

android - 如何隐藏 Android Marshmallow 上的应用程序图标?

java - 如何阻止通知面板隐藏?

Android Studio 无法解析 org.junit

c# - 有没有办法在不询问 C# 的情况下判断用户是喜欢公制还是英制?