Java 如何设置回退区域设置?

Java 如何设置回退区域设置?,java,android,multilingual,Java,Android,Multilingual,我在一个项目中有多个版本的应用程序。 对于一个版本,如果找不到设备的区域设置(例如,法语中的设备没有fr值),我希望使用德语。 对于另一个版本,如果找不到设备的区域设置,我希望使用英语 除了覆盖每个版本中的值/strings.xml(用作回退资源)之外,还有其他方法可以实现这一点吗?我不相信您可以为找不到的特定区域设置选择回退区域设置 而是在values/string.xml中创建一个始终用于回退的默认区域设置 如果设备设置为应用程序没有的区域设置(例如值fr),那么它将只使用默认值string

我在一个项目中有多个版本的应用程序。 对于一个版本,如果找不到设备的区域设置(例如,法语中的设备没有fr值),我希望使用德语。 对于另一个版本,如果找不到设备的区域设置,我希望使用英语


除了覆盖每个版本中的值/strings.xml(用作回退资源)之外,还有其他方法可以实现这一点吗?

我不相信您可以为找不到的特定区域设置选择回退区域设置

而是在values/string.xml中创建一个始终用于回退的默认区域设置


如果设备设置为应用程序没有的区域设置(例如值fr),那么它将只使用默认值string.xml

如果存在未翻译的资源,它们将返回默认文件(未设置特定区域设置的文件)。你不能改变这种行为


但是,您可以为它编写一个库,但由于它是一个库,所有对
上下文#getString
的引用都会调用本机系统,该系统调用默认文件,而不是回退资源的特定区域设置。

好,这很遗憾。也许使用当前的国家官方语言会是一个更好的解决方案(如果你读到这篇^^^的话,谷歌)。我们将不得不接受它,或者可能会覆盖gradle构建脚本中的默认strings.xml。如果您认为这是正确的,请不要忘记接受答案:)只需在首选项中保存一个值。根据该值,在下一次开始时更改语言。