【发布时间】:2018-03-08 09:48:27
【问题描述】:
先生。
我正在尝试创建一个支持多语言的应用程序。我使用 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 "";
}
【问题讨论】:
-
应用程序的语言在设备上会发生变化,而不是在应用程序本身内部。如果您想查看本地化字符串,请在设备设置中更改语言。
-
那么我应该如何在运行时更改应用程序语言?
标签: ios swift swift3 bundle nslocalizedstring