我目前正在尝试为我的应用程序支持每个应用程序的语言。我按照指示:
- 我创建了
locales_config.xml
:
<?xml version="1.0" encoding="utf-8"?>
<locale_config xmlns:android="http://schemas.android.com/apk/res/android">
<locale android:name="en-US"/>
<locale android:name="fr"/>
</locale_config>
我在AndroidManifest.xml
:中添加的
android:localeConfig="@xml/locales_config"
- 在
app/build.gradle
中,我添加了:
android {
...
defaultConfig {
...
resConfigs "en_US", "fr"
}
}
我的问题是我的应用程序没有出现在"每应用程序语言设置"中
我在模拟器和运行稳定Android 13的手机上测试了它。
附加信息:
com.android.tools.build:gradle:7.2.2
compileSdkVersion 33
如果有人能做到这一点,我想知道我是否还缺少其他步骤。
编辑:
当用en
替换en-US
和en_US
时,它也不起作用。
locales_config.xml
中的根元素必须是<locale-config>
,但在您的xml中我看到了<locale_config>
(下划线应该是hypen(。
将您的locales_config.xml
更新为以下文本,它将起作用:
<?xml version="1.0" encoding="utf-8"?>
<locale-config xmlns:android="http://schemas.android.com/apk/res/android">
<locale android:name="en-US"/>
<locale android:name="fr"/>
</locale-config>
默认区域设置始终为:<locale android:name="en"/>
,而不是en-US
或en-GB
。
我也在处理同样的问题,结果发现我的问题是我没有把android:localeConfig="@xml/locale_config"
放在清单中的正确位置。
它应该与application
标签关联:
<application android:localeConfig="@xml/locale_config" android:icon="@mipmap/ic_launcher" ...
(此外,请检查您在那里指定的名称是否与您的XML文件名匹配。@xml/locale_config
表示保存在xml
资源文件夹中的"locale_config.XML"文件。(