首页 > 解决方案 > Android 语言环境解析错误地回退而不是使用第二首选语言

问题描述

这真让我抓狂。我 99.99% 确信这在以前有效。

我从头开始创建了一个 Android 项目。它有以下strings.xml文件:

values/strings.xml,定义app_name = "App in DEFAULT LANGUAGE"
values-en/strings.xml,定义app_name = "App in ENGLISH"

该应用程序仅记录app_name. 字面上地:Log.d(TAG, getString(R.string.app_name);

我在具有 API 级别 29 的 Android 设备上运行该项目。设备的首选语言是(按顺序):

  1. 法语(法国)
  2. 美国英语)。

我的期望:我希望记录“英语应用程序”。这是我的理解:

首先,Android 尝试获取 French-FR 中的字符串资源。因为没有,所以它转到下一个首选语言,即英语-美国。因为有英文版strings.xml,所以使用它。因此,它应该记录:“App in English”

真正发生的事情:它正在记录“默认语言中的应用程序”。这显然违背了这里的解释:https ://developer.android.com/guide/topics/resources/multilingual-support#resource-resolution-examples

有人可以解释这里发生了什么吗?

标签: android

解决方案


推荐阅读