2017-09-27 6 views
-1

Sir. J'essaie de créer une application de support multi-langue. J'utilise les abréviations comme zh-Hant, en, jp pour enregistrer comme utilisateur par défaut. Et changez la langue de l'application. Si vous cliquez sur l'élément de la vue de collection, le texte de l'espace réservé au champ de texte change. Cependant, je ne peux pas faire ça. Le langage du simulateur est l'anglais par défautEchec de la définition de la langue dans Swift 3

Voici mon travail en cours:

Localisation Fichier: Japon (jp)

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

Set méthode de texte

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) 

Chaîne 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

La langue de l'application est quelque chose qui change sur l'appareil, pas dans l'application elle-même. Si vous souhaitez afficher les chaînes localisées, modifiez la langue dans les paramètres du périphérique. – matt

+0

Comment dois-je changer la langue de l'application au moment de l'exécution? –

Répondre

0

La langue de l'application dépend de la langue de l'appareil. Pour tester la chaîne localisée, modifiez la langue de votre appareil. Sinon, bien que ceci ne soit pas recommandé, vous pouvez changer la langue de votre application à l'exécution en ajoutant UserDefaults.standard.set("zh", forKey: "AppleLanguages") à votre ViewController. Mais vous devrez redémarrer l'application pour voir les changements de langue.