2016年12月6日 星期二

swift 多國語系(國際化)

這做法步驟比較多一點,將以圖文解釋。。。
建議先做英文版,畢竟是國際通用語言
再來就是在專案完成後最後在做國際語言,雖然在某些地方會麻煩點。但是storyboard才不用一個一個自己建立ID,主要順續就看個人習慣摟~

選到專案Info下方有個Locallizations,點選下方+選擇你要加入的語言


選擇後會是這樣的(勾起表示要建立多國語系)


建立完成會顯示你所做的語系

再來建立Strings File


命名方式看你個人喜歡摟~


建立完成後會是這樣,這時左邊欄有個Localize...點下去


因為一開始做的語系是預設語系(英文)所以這邊不動他直接建立


建立後將右邊欄位所要增加的語系勾起後如右下圖所示會多出兩個檔案


勾起來後檔案多出外記得去檢查前面所新增的語系跟原本的語系有沒有多一個監控
原本為2 Files Localized要變成3 Files Localized
這樣才能確保code裡面所做的多國語系有用途喔!



下圖是storyboard得多國語系(預設語系為原先就製作好的storyboard)
以下為增加語系要做的動作



接下來要介紹的是如果code內使用多國語系



當然不是做好上方就好拉!!!除了APP名稱其餘都是透過code來詮釋如下:

 override func viewDidLoad() {
        super.viewDidLoad()
       
       //呼叫多國語系
        let labelLanguage = NSLocalizedString("Language", tableName: "InfoPlist", bundle: Bundle.main, value: "" , comment: "");
        //"Language"自訂一個key"InfoPlist"所建立的Strings Flie名稱
        
        //建立label
        let label:UILabel = UILabel(frame: CGRect(x: self.view.frame.size.width/2, y: 200, width: 100, height: 30));
        label.text = labelLanguage//帶入多國語系的值
        self.view.addSubview(label);
    }
呈現出來結果如下:
小提醒:自己建立的key:vaule要注意一定要加入;要不然會有error喔

雖然很簡單,但我就遇過專案怎麼搞都沒有成功過T.T
最後還是建立全新的專案重做才正常。。。
寫的不是很好但希望有幫助參考這篇的你


1 則留言: