通过 swift,我如何强制我的应用程序从特定的 Localized.strings 读取数据。
我在实例化 ViewController 之前将其放入 didFinishLaunchingWithOptions 中,但它仍然以英语显示应用程序。
NSUserDefaults.standardUserDefaults().removeObjectForKey("AppleLanguages")
NSUserDefaults.standardUserDefaults().setObject("fr", forKey: "AppleLanguages"
NSUserDefaults.standardUserDefaults().synchronize()
我尝试像这样为“AppleLanguages”键传递一个数组,但它仍然不起作用:
NSUserDefaults.standardUserDefaults().setObject(["fr"], forKey: "AppleLanguages"
完成此操作后,我可以在应用程序内部调用它并考虑更改而无需重新启动应用程序吗?
不可能通过更改值来立即更改应用程序的语言AppleLanguages
。更改生效之前需要重新启动应用程序。
看来您的问题是访问不同语言的本地化字符串而不是更改应用程序的语言,对吧?如果您希望您的应用程序支持多种语言,您只需提供翻译并依赖settings.app 进行实际更改即可。
如果您想访问当前使用的本地化以外的本地化字符串,则需要访问正确的翻译包。然后只需查询该包的翻译即可。下面的代码应该可以解决问题。
let language = "en"
let path = Bundle.main.path(forResource: language, ofType: "lproj")
let bundle = Bundle(path: path!)
let string = bundle?.localizedStringForKey("key", value: nil, table: nil)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)