ios – 强制NSLocalizedString使用Swift使用特定语言

前端之家收集整理的这篇文章主要介绍了ios – 强制NSLocalizedString使用Swift使用特定语言前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用 swift,我如何强制我的应用程序从特定的Localizable.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 = NSBundle.mainBundle().pathForResource(language,ofType: "lproj")
let bundle = NSBundle(path: path!)
let string = bundle?.localizedStringForKey("key",value: nil,table: nil)
原文链接:https://www.f2er.com/iOS/333515.html

猜你在找的iOS相关文章