【发布时间】:2019-10-11 11:19:45
【问题描述】:
我正在开发一个目前支持英语和韩语两种语言的 ios 应用程序。我想在应用程序委托中添加一个条件,即如果应用程序支持电话语言,则应用程序将以该语言打开,否则将以英语打开。我在应用程序委托中尝试了以下代码,但它不起作用。任何人都可以在这方面帮助我。
if UserDefaults.standard.object(forKey: "lang") == nil {
let langCodeString = Locale.current.languageCode
let preferredLanguage = String(Locale.preferredLanguages[0].prefix(2))
if let languageCode = langCodeString {
if languageCode == "ko" && preferredLanguage == "ko" {
UserDefaults.standard.set(["ko"], forKey: "AppleLanguages")
UserDefaults.standard.set("korean", forKey: "lang")
UserDefaults.standard.synchronize()
} else {
UserDefaults.standard.set(["en"], forKey: "AppleLanguages")
UserDefaults.standard.set("english", forKey: "lang")
UserDefaults.standard.synchronize()
}
}
}
谢谢。
【问题讨论】:
-
只需将英语设置为您的应用程序的基本本地化。然后,如果您的应用不支持电话区域设置,则将使用英语。
-
是的,该应用程序的基本语言环境是英语。但是让我们假设我已经将我的 iPhone 语言更改为韩语,安装了该应用程序并且它以韩语运行,这是正确的。但后来我从手机中删除了该应用程序并将手机语言更改为印地语。然后该应用程序应该以英语运行,但它第一次以韩语运行,当我退出该应用程序并再次运行它时,它以英语运行。但我希望它在我第一次安装时以英语运行。这是我面临的问题。
-
在我将应用程序切换到印地语并安装应用程序后,我从区域设置中获取了韩语代码。这就是我面临这个问题的原因。但我不知道为什么它返回的是韩语代码而不是印地语。当我已经选择印地语作为手机语言时。
标签: ios swift localization