微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/iOS/333515.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐