一尘不染

设置“ AppleLanguages”不会更改应用语言

swift

我正在尝试实现可以​​更改应用程序语言的功能。
我试图这样设置:

let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("de", forKey: "AppleLanguages")

在应用重启后,语言仍然是“系统默认值”。
现在,我通过设置来测试不同的语言Scheme > Application Language > language
但是,用户是否可以单击按钮,然后在重新启动后查看选择的语言?

另外,执行此操作以避免在重新启动时更改语言的正确方法是什么?


阅读 461

收藏
2020-07-07

共1个答案

一尘不染

是的,您可以立即更改应用语言,例如,

var language = "de"
let path = NSBundle.mainBundle().pathForResource(language, ofType: "lproj")
let bundle = NSBundle(path: path!)
let string = bundle?.localizedStringForKey("key", value: nil, table: nil)

使用您的NSUserDefaults值来设置语言。

2020-07-07