我正在尝试使用两个按钮更改应用程序语言,首先我在此链接中使用了此代码:https://github.com/marmelroy/Localize-Swift/blob/master/Sources/Localize.swift Localize.swift并将其放在我的项目中, 这是表视图控制器的代码,它有两个按钮和两个标签:
import UIKit
class MyTableViewVontroller: UITableViewController {
@IBOutlet weak var firstLabel: UILabel!
@IBOutlet weak var secondLabel: UILabel!
@IBOutlet weak var arabicChanger: UIBarButtonItem!
@IBOutlet weak var englishChanger: UIBarButtonItem!
override func viewDidLoad() {
super.viewDidLoad()
populateValues()
}
@IBAction func englishChanger(sender: AnyObject) {
Localize.setCurrentLanguage("en")
}
@IBAction func arabicChanger(sender: AnyObject) {
Localize.setCurrentLanguage("ar")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func populateValues(){
firstLabel.text = NSLocalizedString("PETRA",comment: "")
secondLabel.text = NSLocalizedString("AMMAN",comment: "")
}
}
但是当我运行它并按下任何按钮时,没有任何变化。即使本地化工作正常,因为我有两种语言的字符串文件,当从系统更改语言时,它可以正常工作,但按下按钮时却没有。
答案 0 :(得分:0)
首先让我引用一下图书馆的github信息页面所说的内容
更新视图控制器中可以进行语言更改的UI 发生,观察LCLLanguageChangeNotification:
你必须添加一个观察者才能改变,知道观察者是如何工作的,让你自己熟悉NSNotificationCenter
顺便说一句,在这种情况下,我不建议使用第三方库,只需按照简单任务的标准,尝试使用默认的NSLocalizedString
本地化,这太棒了!