2017-09-27 75 views
-1

先生。Swift 3中的設置語言失敗

我想創建一個多語言支持的應用程序。我使用像zh-Hant,en,jp這樣的縮寫來保存爲用戶默認值。並更改應用程序的語言。以文本字段的持有者爲例,如果單擊集合查看項目,則文本字段佔位符的文本將發生更改。但是,我不能這樣做。仿真語言是英語作爲默認

這是我的工作正在進行中:

本地化文件:日本(JP)

"User Email"; = "ユーザーメール"; 

設置文本方法

let lcode : String = self.langList[indexPath.item].code 
    print("You selected cell #\(indexPath.item) and code : \(lcode)") 
    UserDefaults.standard.setValue(lcode, forKey: "lang") 
    txtUsername.placeholder = "User Email".localized(lang: lcode) 

字符串exntension

extension String { 

    func localized(lang:String) ->String { 

     if let path = Bundle.main.path(forResource: lang, ofType: "lproj") { 
      if let bundle = Bundle(path: path) { 
       return NSLocalizedString(self, tableName: nil, bundle: bundle, value: "", comment: "") 
      } 
     } 

     return ""; 
    } 
+0

該應用的語言是在設備上改變的,而不是在應用本身內。如果您想查看本地化的字符串,請在設備的設置中更改語言。 – matt

+0

那麼我應該如何在運行時更改應用程序語言? –

回答

0

該應用的語言取決於設備的語言。要測試本地化的字符串,請更改您的設備語言。否則,雖然不推薦,但您可以在運行時通過將UserDefaults.standard.set("zh", forKey: "AppleLanguages")添加到您的ViewController來更改您的應用程序語言。但是您必須重新啓動應用才能看到語言更改。