先生。
我正在尝试创建一个支持多语言的应用。我使用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)
应用程序的语言取决于设备语言。要测试本地化字符串,请更改设备语言。否则,虽然不推荐,但您可以通过向ViewController添加UserDefaults.standard.set("zh", forKey: "AppleLanguages")
来更改运行时的应用语言。但您必须重新启动应用才能看到语言更改。