NSLocale.preferredLanguages 更改 NSUserDefaults 时不会更改

NSLocale.preferredLanguages doesn't change when changing NSUserDefaults

我已经研究了好几天了。

我有一个 swift 就绪的应用程序,最近我们决定引入本地化,当我将系统语言设置为所需的语言时,它可以工作,但是当我尝试手动更改语言时,它没有工作。

我尝试过的:

    NSUserDefaults.standardUserDefaults().setObject(["ar"], forKey: "AppleLanguage")
    NSUserDefaults.standardUserDefaults().synchronize()

重启应用后

let lang = NSUserDefaults.standardUserDefaults().objectForKey("AppleLanguage") return ["ar"]

但是

NSLocale.preferredLanguages()[0]

仍然 returns ["en"]

并且应用程序出现在英文版本和语言环境中

密钥名为 AppleLanguages(注意末尾的 s)。

我相信您知道,但本地化应用不需要执行自定义语言选择。最好将其留给 iOS,让用户定义他们的全局国际设置。