두 개의 버튼을 사용하여 응용 프로그램 언어를 변경하려고합니다. 먼저이 코드에서이 코드를 사용했습니다 : https://github.com/marmelroy/Localize-Swift/blob/master/Sources/Localize.swift Localize.swift 내 프로젝트에 배치했습니다. 그리고 여기 코드가 있습니다. 두 개의 버튼과 두 개의 lables가 테이블 뷰 컨트롤러의 :런타임에 버튼을 사용하여 응용 프로그램 언어 변경
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: "")
}
}
을하지만 그것을 실행하고 아무것도 변경되지 어떤 버튼을 눌러도. 두 언어 모두에 대해 Strings 파일을 가지고 있기 때문에 현지화가 잘 작동하지만 시스템에서 언어를 변경하면 제대로 작동하지만 버튼을 누르면 작동하지 않습니다.
당신은 현지화를 변경하고 있을지 모르지만 마술처럼 _interface_이 변경되는 것은 아닙니다. – matt
문서에는 언어 변경 이벤트에 응답하는 'LCLLanguageChangeNotification'알림이 나와 있습니다. – paulvs