Ho un'applicazione per iPhone che deve essere localizzata. Nessun problema con le stringhe, ma ho problemi con le risorse: ho bisogno di caricare pagine HTML localizzate. I file sono come: presentation.htm I file vengono aggiunti nel progetto con la cartella in cui si trovano (html /) e aggiungono il gruppo chiamato come cartella.Impossibile caricare automaticamente risorse localizzate con pathForResource
a caricare le pagine html con questo codice:
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];
}
prima prova:
ho seguito le indicazioni di questo sito I Can Localize, poiché non vi era ancora risorse localizzato in app. Le cartelle sono denominate: it.lproj e fr.lproj.
ho provato sul simulatore, ma non è riuscito:
- il registro indica che il percorso è il seguente: (...)/myapp.app/presentation.htm
- il file caricato nel simulatore è in francese, mentre il simulatore è in inglese.
Seconda Prova:
Poi, ho cancellare le risorse e aggiungere nuovamente nella loro cartella del gruppo (Resource/html /). Ho premuto il pulsante Info e ho scelto di rendere il file localizzabile. Il file è stato aggiunto in una cartella English.lproj. Quindi scelgo "Aggiungi localizzazione" e "Francese".
ho provarlo sul simulatore, ma non ci sono riuscito (ho pulito la build prima del test):
- il registro indica che il percorso è il seguente: (...)/myapp.app /presentation.htm
- il file caricato nel simulatore è in francese, mentre il simulatore è in inglese.
terzo tentativo:
Dopo aver letto this page sulle risorse di carico localizzate su iPhone OS 4.0, ho cambiato le risorse localizzate in cartelle (cancellare le risorse e rinominare le cartelle in en_UK. lproj e fr_FR.lproj
ho provarlo sul simulatore, ma non ha successo (ho pulito la build prima del test) :
- il registro indica che il percorso è il seguente: (...)/myapp.app/presentation.htm
- il file caricato nel simulatore è in francese, mentre il simulatore è in inglese.
Aiuto?
Qualche idea? So che c'è la funzione: - (NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName
Ma io voglio che sia più automatico possibile, e fissare le cose come Directory o localizationName possono impedire la mia app per essere automatico.
Dopo aver rimosso il app dal simulatore, non ha funzionato, ma il percorso è cambiato. Ora è: (...)/myapp.app/fr_FR.lproj/presentation.htm – AlexandreD