2010-08-18 3 views
5

J'ai une application iPhone qui doit être localisée. Pas de problème avec les chaînes, mais j'ai des problèmes avec les ressources: j'ai besoin de charger les pages HTML qui sont localisées. Les fichiers sont comme: presentation.htm Les fichiers sont ajoutés dans le projet avec le dossier où ils sont (html /), et il ajoute le groupe appelé en tant que dossier.Impossible de charger automatiquement les ressources localisées avec pathForResource

je charge les pages html avec ce code:

NSString *pathPresentation = [[NSBundle mainBundle] pathForResource:@"presentation" ofType:@"htm"]; 

if(!pathPresentation) { 
    NSLog(@"Could not find presentation.htm"); 
} 
NSURL *url = [NSURL fileURLWithPath:pathPresentation]; 
NSLog(@"-> path presentation.htm : %@", pathPresentation); 
UIWebView *webViewPresentation = [[UIWebView alloc] init]; 
NSData *htmlData = [NSData dataWithContentsOfFile:pathPresentation]; 
if (htmlData) { 
    [webViewPresentation loadData:htmlData MIMEType:@"text/html" textEncodingName:@"Latin-1" baseURL:url]; 
} 

premier essai:

J'ai suivi les indications de ce site I Can Localize, car il y avait encore des ressources localisées dans l'application. Les dossiers sont nommés: en.lproj et fr.lproj.

-je l'essayer sur le simulateur, mais il n'a pas réussi:

  • le journal indique que le chemin est le suivant: (...)/myapp.app/presentation.htm
  • le fichier chargé dans le simulateur est en français, tandis que le simulateur est en anglais.

Deuxième essai:

Puis, je supprimer les ressources et les ajouter de dans leur dossier de groupe (ressources/html /). J'ai appuyé sur le bouton Info et j'ai choisi de "Rendre le fichier localisable". Le fichier a été ajouté dans un dossier English.lproj. Ensuite, je choisis "Ajouter une localisation" et "Français".

-je l'essayer sur le simulateur, mais il n'a pas réussi (je nettoyer la construction avant le test):

  • le journal indique que le chemin est le suivant: (...)/myapp.app /presentation.htm
  • le fichier chargé dans le simulateur est en français, alors que le simulateur est en anglais.

Troisième essai:

Après avoir lu this page sur les ressources localisées de chargement sur l'iPhone OS 4.0, je l'ai changé les ressources dans des dossiers localisés (supprimer des ressources et renommer des dossiers dans en_UK. lproj et fr_FR.lproj

-je l'essayer sur le simulateur, mais il n'a pas réussi (je nettoyer la construction avant le test) :

  • le journal indique que le chemin est le suivant: (...)/myapp.app/presentation.htm
  • le fichier chargé dans le simulateur est en français, alors que le simulateur est en anglais.

aide?

Une idée? Je sais qu'il ya la fonction: - (NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName

Mais je veux qu'il soit aussi automatique que possible, et fixer des choses comme Directory ou localizationName peuvent empêcher mon application soit automatique.

+0

Après avoir retiré le application du simulateur, cela n'a pas fonctionné, mais le chemin a changé. Maintenant c'est: (...)/myapp.app/fr_FR.lproj/presentation.htm – AlexandreD

Répondre

16

La solution est la suivante:

  1. demande de suppression de simulateur (ou dispositif)
  2. utiliser de simples dossiers localisés, comme: en.lproj
  3. de construction propre
+1

Faites ceci! Après avoir essayé toutes les solutions sans effet, la réinitialisation matérielle a bien sûr fonctionné. –

+0

J'aurais aimé avoir trouvé cet article avant d'avoir passé deux heures. Pour moi, le "supprimer l'application" était l'astuce. Je suppose que cela devient confus. – Walter

+1

Je réinitialise mon simulateur pour obtenir le bon résultat! – sunkehappy