2009-08-13 7 views
0

J'ai un problème de localisation d'iPhone qui me laisse perplexe. Je localisais mon application et l'anglais ainsi que le chinois simplifié et traditionnel fonctionnaient bien. J'ai deux fichiers, Localizable.strings et sounds.plist qui ont été localisés. Les chaînes des deux fichiers s'affichent correctement sur l'appareil et l'émulateur.Pourquoi un fichier apparaît-il localisé dans le simulateur de l'iPhone, mais pas sur l'appareil?

Hier, j'ajoute de l'espagnol, de l'italien et de l'allemand. Quand je teste dans l'émulateur, tout s'affiche correctement. Mais quand je déploie sur l'appareil, les chaînes contenues dans Localizable.strings s'affichent correctement, mais les chaînes contenues dans sounds.plist s'affichent toujours en anglais. Même les cordes chinoises ont cessé d'apparaître correctement.

J'ai essayé de nettoyer les builds, en copiant le texte traduit dans les fichiers sounds.plist, et même en nuhant les fichiers, en supprimant les dossiers lproj, en supprimant les localisations et en recommençant.

J'ai mis un point d'arrêt dans XCode et il semble que pour ce fichier, il ne détecte pas le dossier loc. Le code qui charge les chaînes de sounds.plist est:

+ (NSDictionary*) getSounds 
{ 
NSString *path = [[NSBundle mainBundle] pathForResource:@"sounds" ofType:@"plist"]; 
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path]; 
return dict; 
} 

J'ai vérifié que le nom de fichier est sounds.plist, tout en minuscules. À ce stade, je suis à perte. Quelqu'un at-il vécu quelque chose comme ça? Est-ce que quelqu'un a des suggestions sur la façon de résoudre?

Merci!

MISE À JOUR: J'ai comparé les résultats de la ligne suivante sur le simulateur, ainsi que le dispositif:

NSString *path = [[NSBundle mainBundle] pathForResource:@"sounds" ofType:@"plist"]; 

Sur le simulateur, le chemin est correctement signalé comme /Utilisateurs/Steve /. ../de.lproj/sounds.plist. Sur l'appareil, le chemin est indiqué sous la forme/var/mobile /.../ sounds.plist. Notez que de.lproj n'est pas dans le chemin. Il charge donc sounds.plist depuis la racine, ce qui explique pourquoi le texte n'apparaît pas localisé. Maintenant ma question est pourquoi le code n'obtient-il pas le chemin au dossier dans le dossier localisé?

Répondre

0

Le problème était que quelque chose était en désordre sur l'appareil. J'ai désinstallé l'application de l'appareil en utilisant l'organiseur, puis réinstallé via XCode. Tout fonctionne bien maintenant.

0

Y at-il une vérification à côté du fichier sounds.plist dans Xcode? Êtes-vous en mode debug ou release?

+0

Sur la sim, j'utilise Simulator - Debug. Pour l'appareil, j'utilise Device - Development. Je ne vois pas de coche à côté du fichier. Jamais vu une vérification à côté d'un fichier avant. Il n'y en a pas à côté de sounds.plist. –

Questions connexes