Swift 2 包含函数:
NSBundle.setLanguage("...")
但新类“Bundle”在 Swift 3 中不包含方法 setLanguage。 在 Swift 3 中设置语言的最佳方式是什么?
最佳答案
setLanguage()
似乎已在 Swift 3 Bundle
中弃用,或者您正在使用 NSBundle
扩展。相反,您可以执行以下操作:
let path = Bundle.main.path(forResource: lang, ofType: "lproj")
let bundle = Bundle(path: path!)
然后您可以使用该 bundle
获取本地化字符串。这是我为此编写的扩展:
extension String {
func localized(lang:String) -> String? {
if let path = Bundle.main.path(forResource: lang, ofType: "lproj") {
if let bundle = Bundle(path: path) {
return NSLocalizedString(self, tableName: nil, bundle: bundle, value: "", comment: "")
}
}
return nil;
}
}
用法
"any string from the strings file".localized("en") // or "sv" for Swedish or "fi" for Finnish
关于ios - 在 Swift 3 中设置语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42806058/