2016-05-31 114 views
2

我試圖使用兩個按鈕更改應用程序語言,首先我在此鏈接中使用此代碼: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

您可能正在改變本地化,但也許這不會奇蹟般地導致您的_interface_改變。 – matt

+1

該文檔提到了用於響應語言更改事件的「LCLLanguageChangeNotification」通知。 – paulvs

回答

0

讓我先引用了圖書館的GitHub的信息頁說什麼

要更新UI的ViewController中,其中一種語言的變化可以 發生,觀察LCLLanguageChangeNotification:

你必須添加一個觀察員爲了這個改變,要知道觀察者是如何工作的,讓自己熟悉NSNotificationCenter

順便說一下,我不建議使用第三個參數在這種情況下ty庫,只要按照簡單任務的標準,嘗試使用默認的NSLocalizedString本地化,這太棒了!

+0

謝謝@DeyaEldeen –

+0

歡迎你我們的姐姐:),如果遇到任何問題請告訴我們,我們將永遠樂於提供幫助。 – DeyaEldeen