2016-05-31 6 views
2

두 개의 버튼을 사용하여 응용 프로그램 언어를 변경하려고합니다. 먼저이 코드에서이 코드를 사용했습니다 : 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 파일을 가지고 있기 때문에 현지화가 잘 작동하지만 시스템에서 언어를 변경하면 제대로 작동하지만 버튼을 누르면 작동하지 않습니다.

+0

당신은 현지화를 변경하고 있을지 모르지만 마술처럼 _interface_이 변경되는 것은 아닙니다. – matt

+1

문서에는 언어 변경 이벤트에 응답하는 'LCLLanguageChangeNotification'알림이 나와 있습니다. – paulvs

답변

0

관찰, 내가 먼저 라이브러리의 GitHub의 정보 페이지가

는 언어 변화가 일어날 수 곳의 ViewController의 UI를 업데이트하려면 말씀을 인용하자 LCLLanguageChangeNotification :

추가해야 관찰자가 어떻게 변화하는지, 관찰자가 어떻게 작동하는지 알기 위해 자신의 친숙 함을 얻으 십시요. NSNotificationCenter

그런데, 제 3의 파를 사용하지 않는 것이 좋습니다. 이 경우 ty 라이브러리는 간단한 작업을위한 표준을 따르고 기본 언어 인 NSLocalizedString을 사용해보십시오.

+0

감사합니다 @DeyaEldeen –

+0

당신은 우리의 여동생을 환영합니다 :), 어떤 문제가 우리에게 알려 주시면, 우리는 항상 도와 드리겠습니다. – DeyaEldeen

관련 문제