ios - 有没有办法将英语设置为默认语言
问题描述
我将我的应用程序本地化为 2 种语言(EN、FR)。当 iPhone 语言设置为英语时,应用程序以英语显示。当 iPhone 语言设置为法语时,应用程序以法语显示。但是当 iphone 语言设置为另一种语言时,可以说西班牙语应用程序以法语而不是英语显示。
我在 Info.plist 文件中将“本地化本地开发区域”设置为“en”或“United States”,但没有帮助。
Main.storyboard (Base) 也是英文的。
解决方案
解决方案:
en.lproj
一种方法是在首选语言不匹配时获取英文字符串en
或fr
.
这是您获得首选语言的方式:
let preferredLanguage = Locale.preferredLanguages[0]
这是使用本地化键获取英文字符串的方式:
if let enPath = Bundle.main.path(forResource: "en", ofType: "lproj") {
let enBundle = Bundle(path: enPath)
enBundle?.localizedString(forKey: "your_key_here", value: nil, table: nil)
}
你的问题的解释:
在 iOS 原生设置应用 -> 通用 -> 语言和地区,有一个首选语言顺序列表。
应用程序和网站将使用此列表中它们支持的第一种语言。
例如:
- 将“法语”设置为您的 iPhone 语言。
- 打开应用程序,所有内容都以法语本地化,因为您的应用程序确实支持法语。
- 将“西班牙语”设置为您的 iPhone 语言。
- 打开应用程序,所有内容都以法语本地化,因为您的应用程序不支持西班牙语,在这种情况下,它将使用您的下一个首选语言,即法语。
推荐阅读
- .net-core-3.0 - EF Core 3.0 中的存储过程
- jquery - 向下滚动到页面时如何滚动到特定元素?
- java - gradle 'clean build' 阶段缺少 jacocoagent.jar
- android - 在 PendingIntent 中执行功能
- laravel-6 - 语法错误,意外的 'form' (T_STRING),期待 ')'
- powershell - 为什么在后台运行时工作脚本会失败?
- android - 如何在共享首选项中保存带有模型类的数组列表?
- c - 如何在 C 中的特定字符之后的字符串的其余部分
- jquery - 如何使用 Keyup 功能限制字母?
- oracle - Oracle-在函数中使用可选参数?