在运行时使用按钮更改应用程序语言

时间:2016-05-31 17:11:25

标签: ios swift

我正在尝试使用两个按钮更改应用程序语言,首先我在此链接中使用了此代码: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: "")

}
}

但是当我运行它并按下任何按钮时,没有任何变化。即使本地化工作正常,因为我有两种语言的字符串文件,当从系统更改语言时,它可以正常工作,但按下按钮时却没有。

1 个答案:

答案 0 :(得分:0)

首先让我引用一下图书馆的github信息页面所说的内容

  

更新视图控制器中可以进行语言更改的UI   发生,观察LCLLanguageChangeNotification:

你必须添加一个观察者才能改变,知道观察者是如何工作的,让你自己熟悉NSNotificationCenter

顺便说一句,在这种情况下,我不建议使用第三方库,只需按照简单任务的标准,尝试使用默认的NSLocalizedString本地化,这太棒了!