1

J'ai créé cette mini traduction de mots de l'anglais à l'espagnol. Les mots lus à partir d'un Localizable.strings et récupère les mots "cat" = "gato" en utilisant NSLocalizedString. Pour l'instant, il ne lit qu'un mot de la chaîne, je voudrais savoir s'il existe un moyen de récupérer plusieurs mots de Localizable.string, par exemple, "the" + "cat" = "el gato"Swift: lire plusieurs mots de la chaîne Localizable

var myEnglishArray = [String]() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 

    self.translateTextField.delegate = self 
    picker.delegate = self 
    picker.dataSource = self 


    //var myEnglishArray = [String]() 
    if let URL = NSBundle.mainBundle().URLForResource("englishArray", withExtension: "plist") { 
     if let englishFromPlist = NSArray(contentsOfURL: URL) as? [String] { 
      for myEnglish in englishFromPlist { 
       myEnglishArray.append(myEnglish) 
      } 
     } 
    } 

} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


@IBAction func translateButtonTapped(sender: UIButton) { 

    let emptyString = self.translateTextField.text 

    if (emptyString!.isEmpty) { 

     print("please enter a word") 

    } 

    for transIndex in myEnglishArray.indices { 
     if myEnglishArray[transIndex] == emptyString!.lowercaseString { 

      //englishArray 

      //translateLabel.text = "\(spanishArray[transIndex])" 
      translateLabel.text = NSLocalizedString(emptyString!.lowercaseString, comment:"") 


      print(emptyString) 
      return 

     } 
    } 
} 

Répondre

1

Je pense que vous devriez utiliser la localisation pour iOS - pas de fichiers ou de tableaux ou quelque chose comme ça.

Vous devrez créer plusieurs fichiers .local et utiliser celui-ci comme une clé, par exemple NSLocalizedString("yourKeyForWordYouWantToTranslate", comment: ""). Donc, si vous voulez que ce code fonctionne, encore une fois, vous devez créer des chaînes localisables et configurer votre projet pour que plusieurs langues soient supportées. Voici un tutoriel sur ce cas (applique rapide aussi bien):

https://www.raywenderlich.com/64401/internationalization-tutorial-for-ios-2014

+0

ce travail serait si l'utilisateur tape "the" et "cat" dans le champ de texte et affiche la valeur de clé "el gato" en utilisant Localization.strings. ne cherchez pas l'application à être en espagnol mais juste ce qui est à l'intérieur du champ de texte lire plusieurs chaînes @NickCatib – Miguel

+0

bien oui, vous pouvez définir des valeurs comme "le chat" = "el gato" ;, lorsque vous appelez pour la clé "le chat "vous obtiendrez correspondant en espagnol. La question est - voulez-vous avoir une certaine quantité de noms traduisibles? Si vous voulez avoir un nombre de noms presque illimité, vous pouvez utiliser https://cloud.google.com/translate/docs/ainsi (la question est vous obtiendrez la traduction correcte à chaque fois :)) – Miknash

+0

J'ai défini des valeurs comme "le chien" = "el perro" mais je suppose qu'il n'y a aucun moyen qu'il peut ramasser des mots différents de la liste un par un par exemple, c'est ma liste, "le" = "el", "chat" = "gato", "chien" = "perro". quand les utilisateurs entrent dans la clé "le chien" il cherchera les mots dans la liste et sortira tous les mots ensemble "le chien", "le chat" @NickCatib – Miguel

0

Je fais un exemple. How to make Localizable in SWIFT APP

  1. Ouvrir Xcode et cliquez sur File-> New-> Projet

  2. Créer un nouveau projet et choisissez Application Vue simple.

  3. entrée « localisable » comme nom de l'application

  4. Le nom de l'application « localisable », faites un clic droit et choisissez Nouveau fichier.

  5. cliquez sur "ressources", "fichier de chaînes"

  6. entrée

    "Localizable.strings" comme nom de fichier

  7. cliquez sur "Localize"

  8. s'il vous plaît choisissez "Base" et cliquez sur " localisent »

  9. Pour trouver "info" de "Localizations", puis cliquez sur ajouter "+"

  10. choisir votre langue à votre application

  11. choisir « Localizable.strings » et cliquez sur « Terminer »

  12. Vous avez deux fichiers appelés « Localizable.strings »