2010-08-18 8 views
5

Ich habe eine iPhone-App, die lokalisiert werden muss. Kein Problem mit Strings, aber ich habe Probleme mit Ressourcen: Ich muss HTML-Seiten laden, die lokalisiert sind. Die Dateien sind wie: presentation.htm Die Dateien werden im Projekt mit dem Ordner hinzugefügt, wo sie sind (html /), und fügen Sie die Gruppe als Ordner genannt.Kann lokalisierte Ressourcen nicht automatisch mit pathForResource laden

ich die HTML-Seiten mit diesem Code laden:

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]; 
} 

ersten Versuch:

ich die Hinweise auf dieser Website befolgt habe I Can Localize, da es noch Ressourcen in der App lokalisiert wurde. Die Ordner heißen: en.lproj und fr.lproj.

Ich versuche es auf dem Simulator, aber es gelang nicht:

  • das Protokoll zeigt an, dass der Pfad: (...)/myapp.app/presentation.htm
  • die Datei geladen im Simulator ist in Französisch, während der Simulator in Englisch ist.

zweiten Versuch:

Dann habe ich die Ressourcen löschen und neu hinzufügen, sie in ihren Gruppenordner (Resource/html /). Ich drückte die Info-Taste und wähle "Datei lokalisierbar machen". Die Datei wurde in einen Ordner English.lproj hinzugefügt. Dann wähle ich "Add Localization" und "Französisch".

Ich versuche es auf dem Simulator, aber es gelang nicht (ich vor der Prüfung sauber die Build):

  • das Protokoll zeigt an, dass der Pfad: (...)/myapp.app /presentation.htm
  • Die im Simulator geladene Datei ist auf Französisch, während der Simulator in Englisch ist.

dritter Versuch:

Nach this page über das Laden von lokalisierten Ressourcen auf iPhone OS 4.0 zu lesen, habe ich die Ressourcen in lokalisierten Ordnern geändert (löschen Ressourcen und Ordner umbenennen in en_UK. lproj und fr_FR.lproj

ich versuche es auf dem Simulator, aber es gelang nicht (ich sauber die Build vor dem Test haben) :

  • zeigt das Protokoll, das der Pfad: (...)/myapp.app/presentation.htm
  • die im Simulator geladene Datei in Französisch ist, während der Simulator in Englisch ist.

Hilfe?

Irgendeine Idee? Ich weiß, es ist die Funktion: - (NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName

Aber ich will es möglichst automatisch sein, und Dinge wie Directory oder localizationName Fixierung kann meine Anwendung automatisch sein verhindern.

+0

nach dem Entfernungs App aus dem Simulator, es hat nicht funktioniert, aber der Pfad hat sich geändert. Jetzt ist es: (...)/myapp.app/fr_FR.lproj/presentation.htm – AlexandreD

Antwort

16

Die Lösung ist:

  1. Entfernen Anwendung von Simulator (oder Gerät)
  2. Verwendung einfacher lokalisierte Ordner als: en.lproj
  3. sauber build
+1

Tun Sie dies! Nach dem Versuch, jede Lösung ohne Wirkung zu bekommen, funktionierte natürlich der Hard Reset. –

+0

Ich wünschte, ich hätte diesen Beitrag gefunden, bevor ich zwei Stunden verbracht hätte. Für mich war die "Anwendung entfernen" der Trick. Ich denke, es wird verwirrt. – Walter

+1

Ich setze meinen Simulator zurück und bekomme dann das richtige Ergebnis! – sunkehappy

Verwandte Themen