【发布时间】:2022-12-10 02:26:37
【问题描述】:
为确保您的应用程序的语言可在运行 Android 13 或更高版本的设备的系统设置中进行配置,我们需要创建一个 locales_config XML 文件,并使用 android:localeConfig 属性 (see here) 将其添加到我们的应用程序清单中。
例如,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"/>
<locale android:name="en-GB"/>
<locale android:name="fr"/>
<locale android:name="ja"/>
<locale android:name="zh-Hans-MO"/>
<locale android:name="zh-Hant-MO"/>
</locale-config>
如果我们还想在我们的应用程序设置中提供自定义语言环境选择器,我们如何从locales_config.xml 检索支持的语言环境列表以填充我们的选择器(无需在语言环境选择器代码中复制该列表)?
【问题讨论】:
-
给定一个
Context,调用getResources().getXml(R.xml.locales_config)以获得关于您的 XML 资源内容的XmlResourceParser。 -
@CommonsWare 似乎很低级别......这很好(而且它会起作用)但我希望新的 Android 13 语言环境系统能够提供一种专用方法来查询此信息,以便我们可以实现我们自己的应用内语言环境选择器来镜像 Android 13 设备(但不是更早的设备)上可用的内容?
-
“我希望新的 Android 13 语言环境系统能够提供一种查询这些信息的专用方法”——我不能排除这种可能性。我不记得有这个选项,但我没有花很多时间研究 Android 13 的这个特定方面。