在Swift 3中设置语言失败

11 浏览
0 Comments

在Swift 3中设置语言失败

先生,

我正在尝试创建一个多语言支持的应用程序。我使用缩写诸如zh-Hant,en,jp作为用户默认保存的语言代码,并更改应用程序的语言。以文本字段的占位符为例,如果我点击集合视图中的项目,文本字段的占位符文本将会改变。然而,我无法做到这一点。模拟器的默认语言是英语。

以下是我正在进行中的工作:

本地化文件:日本(jp)

"User Email"; = "ユーザーメール";

设置文本方法

let lcode : String = self.langList[indexPath.item].code

print("You selected cell #\(indexPath.item) and code : \(lcode)")

UserDefaults.standard.setValue(lcode, forKey: "lang")

txtUsername.placeholder = "User Email".localized(lang: lcode)

字符串扩展

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 "";

}

0
0 Comments

问题:Set Language in Swift 3 failed

原因:应用语言取决于设备语言。要测试本地化字符串,需要更改设备语言。否则,虽然这并不被推荐,您可以通过在ViewController中添加UserDefaults.standard.set("zh", forKey: "AppleLanguages")来在运行时更改应用语言。但是,您需要重新启动应用程序才能看到语言更改。

解决方法:改变设备语言或重启应用程序。

0