Ma SOLUTION se trouve en bas de page :
J'ai rencontré le même problème : des séries alternant des traductions correctes, puis des traductions incorrectes (uniquement pour l'anglais cependant).
L'ajout de "-NSShowNonLocalizedStrings YES" en tant qu'argument de l'application a donné un résultat :
Localizable string "MyKey" not found in strings table "Localizable" of bundle CFBundle
J'ai donc essayé de charger le fichier clé directement depuis le bundle sous la forme d'une chaîne de caractères et de l'extraire. Les fois où cela n'a pas fonctionné correctement, il a affiché un tas de messages intégrés à iOS. Je suis donc allé dans le fichier APP qui a été construit, j'ai ouvert le contenu du paquet et j'ai regardé le fichier en.lproj/Localizable.strings... et voilà ! Le fichier avait été rempli avec des paires clé/valeur Apple iOS. Lors de la compilation suivante, le fichier a été rempli comme prévu.
Bien sûr, cela n'a rien à voir avec l'encodage des fichiers (qui devrait être UTF-16). Je n'ai pas été en mesure de trouver quoi que ce soit qui mentionne ce problème spécifique.
MA SOLUTION :
J'ai copié le contenu du fichier anglais légitime Localizable.strings À PARTIR DU PAQUET D'APPLICATIONS (qui ne provient pas de ma source) dans un fichier XML (lors de la compilation, le fichier .strings est converti en XML) et je l'ai ajouté à mon projet. J'ai ensuite chargé ce fichier dans un dictionnaire au démarrage, et si l'appel à NSLocalizedString renvoyait la clé au lieu de la valeur, je faisais une recherche dans le dictionnaire que j'avais chargé. En théorie, vous pourriez faire cela pour toutes les langues, mais je n'avais ce problème qu'avec l'anglais.
Oui, ce n'est pas la solution au problème, mais c'est une solution de contournement.