首页 > 解决方案 > 有没有办法将英语设置为默认语言

问题描述

我将我的应用程序本地化为 2 种语言(EN、FR)。当 iPhone 语言设置为英语时,应用程序以英语显示。当 iPhone 语言设置为法语时,应用程序以法语显示。但是当 iphone 语言设置为另一种语言时,可以说西班牙语应用程序以法语而不是英语显示。

我在 Info.plist 文件中将“本地化本地开发区域”设置为“en”或“United States”,但没有帮助。

Main.storyboard (Base) 也是英文的。

标签: iosswiftxcode

解决方案


解决方案:

en.lproj一种方法是在首选语言不匹配时获取英文字符串enfr.

这是您获得首选语言的方式:

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 原生设置应用 -> 通用 -> 语言和地区,有一个首选语言顺序列表。

应用程序和网站将使用此列表中它们支持的第一种语言。

例如:

  1. 将“法语”设置为您的 iPhone 语言。
  2. 打开应用程序,所有内容都以法语本地化,因为您的应用程序确实支持法语。
  3. 将“西班牙语”设置为您的 iPhone 语言。
  4. 打开应用程序,所有内容都以法语本地化,因为您的应用程序不支持西班牙语,在这种情况下,它将使用您的下一个首选语言,即法语。

推荐阅读