android - 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 设备上运行该项目。设备的首选语言是(按顺序):
- 法语(法国)
- 美国英语)。
我的期望:我希望记录“英语应用程序”。这是我的理解:
首先,Android 尝试获取 French-FR 中的字符串资源。因为没有,所以它转到下一个首选语言,即英语-美国。因为有英文版strings.xml
,所以使用它。因此,它应该记录:“App in English”
真正发生的事情:它正在记录“默认语言中的应用程序”。这显然违背了这里的解释:https ://developer.android.com/guide/topics/resources/multilingual-support#resource-resolution-examples
有人可以解释这里发生了什么吗?
解决方案
推荐阅读
- windows - 带有 OFFSET 标签的汇编 PUSH 指令
- fortran - 在 Mac Big Sur 上写入标准输出时出现 gfortran 运行时错误
- list - 在 SwiftUI 中实现多个标题
- android - 即使添加了屏幕方向锁定,Android 屏幕方向
- javascript - 如何在 Typescript 中使用类型化变量作为具有相同名称的类型?
- google-apps-script - 如何使用 Google Apps 脚本中的字符串访问枚举值?
- javascript - 如何检查具有特定键值的对象是否存在
- r - R:缺乏互动性
- android - 将Android项目上传到github时如何忽略资产文件夹?
- php - Laravel 8 渲染belongsToMany 关系