应用程序无法从本地化文件夹中读取字符串
Application fails to read strings from localized folders
我遇到了一个奇怪的案例。我的应用支持 4 种语言:英语、土耳其语、俄语和乌克兰语。我得到以下资源文件夹:
我得到了关于值的土耳其语翻译,所以如果找不到任何字符串的翻译,默认将是土耳其语。
您可以在下面看到没有需要翻译的键:
好的,据我所知,当我更改phone语言时,它应该使用相应的字符串。
当我将 phone 语言设为土耳其语时:
太棒了。现在,英语:
也可以。现在俄语:
呃
所以土耳其语和英语可以,但是 phone 俄语或乌克兰语则不行。
应用程序中的任何地方都没有手动设置语言环境。当我打电话时
getResources().getConfiguration().locale
或
getResources().getConfiguration().getLocales()
我得到正确的语言环境,"ru_RU"。
我在这里遗漏了什么吗?什么可能导致此问题?
我发现了问题,是 build.gradle 中的 resConfigs。我的配置是
resConfigs "en", "tr"
所以它没有编译 ru 和 uk 资源。添加 "ru" & "uk" 解决了问题。最后一行看起来像这样:
resConfigs "en", "tr", "ru", "uk"
我遇到了一个奇怪的案例。我的应用支持 4 种语言:英语、土耳其语、俄语和乌克兰语。我得到以下资源文件夹:
我得到了关于值的土耳其语翻译,所以如果找不到任何字符串的翻译,默认将是土耳其语。
您可以在下面看到没有需要翻译的键:
好的,据我所知,当我更改phone语言时,它应该使用相应的字符串。
当我将 phone 语言设为土耳其语时:
太棒了。现在,英语:
也可以。现在俄语:
呃
所以土耳其语和英语可以,但是 phone 俄语或乌克兰语则不行。
应用程序中的任何地方都没有手动设置语言环境。当我打电话时
getResources().getConfiguration().locale
或
getResources().getConfiguration().getLocales()
我得到正确的语言环境,"ru_RU"。
我在这里遗漏了什么吗?什么可能导致此问题?
我发现了问题,是 build.gradle 中的 resConfigs。我的配置是
resConfigs "en", "tr"
所以它没有编译 ru 和 uk 资源。添加 "ru" & "uk" 解决了问题。最后一行看起来像这样:
resConfigs "en", "tr", "ru", "uk"