我正在尝试更改运行时使用NSLocalizedString获得的lang。
我知道这个问题一直在问,但我没有找到Swift 3的答案。
我试过了:
UserDefaults.standard.removeObject(forKey: "AppleLanguages")
UserDefaults.standard.set("en", forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
和:
let language = "en"
let path = Bundle.main.path(forResource: language, ofType: "lproj")
let bundle = Bundle(path: path!)
let string = bundle?.localizedString(forKey: "AppleLanguages", value: language, table: nil)
但没有任何作用......
感谢您的帮助!
答案 0 :(得分:1)
所以最后,我使用了Github上提供的自定义localisator类,它允许您从应用程序的任何位置切换语言,甚至可以保存,以便进一步启动应用程序。
它是用swift 2.2编写的,但是Xcode会自动将代码更新为Swift 3.只需要更改到Demo中的地方:
notification.name == kNotificationLanguageChanged
到:
notification.name.rawValue == kNotificationLanguageChanged