从Android 7.0(API级别24)开始,用户可以在其设备上设置首选语言(源:LocaleList API).我的问题是我的应用程序不尊重此设置 - 它不考虑第二语言.
在Settings -> languages我选择我的语言偏好:
1. Polish (preferred)
2. French
Run Code Online (Sandbox Code Playgroud)
在Android应用程序中,我支持两种语言(en默认情况下,和fr):
values/strings.xml (English as default)
values-fr/strings.xml (French)
Run Code Online (Sandbox Code Playgroud)
使用此配置,应用程序以英语(默认)启动,而在我的语言首选项列表中有法语(我的应用程序支持,应该使用).
为什么Android在这种情况下会选择法语?如何解决?
注意:当我在设置中选择FR语言时,会正确设置法语
EN strings.xml文件示例:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE resources [<!ENTITY applicationName "app\'s name">]>
<resources>
<string name="application_name">&applicationName;</string>
<string name="dialog_ok">OK</string>
...
</resources>
Run Code Online (Sandbox Code Playgroud)
FR strings.xml文件示例:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE resources [<!ENTITY applicationName "french name">]>
<resources>
<string name="application_name">&applicationName;</string>
<string name="dialog_ok">Oui</string>
...
</resources>
Run Code Online (Sandbox Code Playgroud)