web-dev-qa-db-fra.com

XCode 5 / iOS 7 - la localisation ne fonctionne pas dans le simulateur

Je suivais l'un des tutoriels de Ray Wenderlich sur la localisation mais je n'arrive pas à le faire fonctionner.

J'ai mis mon projet en place pour la localisation en anglais et en français et j'ai un fichier locaziable.strings pour chacun:

enter image description here

Le fichier français a les versions françaises correctes (ainsi que Google translate) de ma chaîne:

enter image description here

Je mets les chaînes en appelant la bonne clé à partir du fichier localizable.strings:

 NSString* strTitle = [NSString stringWithFormat:NSLocalizedString(@"Title", Nil)];

Et j'ai le simulateur réglé sur le français (BTW: chaque fois que je change de langue, le simulateur plante).

Mais il ne tire pas du fichier localizable.strings correct. Son affichage toujours en anglais:

enter image description here

Est-ce que je fais quelque chose de mal?

28
PruitIgoe

Vous avez peut-être exécuté l'application à un moment où le fichier Localizable.strings existait déjà mais n'a pas encore été localisé. Si tel est le cas, ce fichier non localisé réside toujours dans le dossier des ressources du bundle d'applications dans le simulateur (lorsque vous créez et exécutez une nouvelle version de votre application dans le simulateur ou dans l'appareil, les fichiers inutilisés ne seront pas supprimés). Cela peut entraîner des problèmes.

Essayez de supprimer complètement l'application du simulateur et recommencez une analyse.

24
Theo

Si vous utilisez xcode 6.1.1 et iOS sdk 8.1, essayez cette solution de contournement.

Il semble que la localisation ne fonctionne pas avec le simulateur xCode 6.1 et 8.1. Solution: allez dans "modifier les schémas" >> "Exécuter" (barre latérale) >> onglet "Options" >> "Langue de l'application" Sélectionnez la langue dans laquelle vous souhaitez exécuter l'application sur le simulateur. J'ai obtenu cette solution de contournement de Solution de contournement par natanavra Merci à lui.

Cependant, j'ai lu sur le développeur forum , qu'il fonctionne dans la version 6.2 beta de Xcode. J'espère que oui.

46
Rajal

J'ai rencontré des problèmes similaires (localisation IB dans mon cas) sur l'appareil. Donc, la réponse générale serait

Device - Désinstaller l'application et nettoyer le projet par Shift + CMD + K

Simulator - Aller au simulateur iOS> Réinitialiser le contenu et les paramètres et nettoyer le projet par Shift + CMD + K

Ces problèmes sont vraiment ennuyeux. Avec la faible capacité à mettre à jour les chaînes localisées, la localisation est l'un des plus gros inconvénients du développement iOS.

12
Viktor Kucera

Un autre problème qui pourrait empêcher la localisation de fonctionner est l'encodage du fichier de chaînes. Le codage de Localizable.strings doit être UTF-16. L'encodage par défaut du fichier texte dans xcode est UTF-8, ce qui me fait passer une journée entière à vérifier pourquoi la localisation ne fonctionne pas.

11
Leon Qiu

Dans Xcode 6.0 et versions ultérieures, la localisation ne fonctionne pas en changeant la langue dans Simulator ne fonctionne pas.

Vous devez modifier le schéma avant d'exécuter votre application.

Allez dans Modifier le schéma -> Exécuter -> Options, changez la langue ici.

Maintenant, exécutez votre application. Ça va marcher.

Pour plus de détails, vérifiez cette réponse: Changer la langue sur le simulateur iOS 8.1 ne fonctionne pas

4
Mehul Thakkar

Mon problème pour cela était un caractère incorrectement encodé dans le fichier de localisation.

1
Dakusan