2010-08-18 21 views
5

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.

+0

Dopo aver rimosso il app dal simulatore, non ha funzionato, ma il percorso è cambiato. Ora è: (...)/myapp.app/fr_FR.lproj/presentation.htm – AlexandreD

risposta

16

La soluzione è: applicazione

  1. togliere dal simulatore (o dispositivo)
  2. uso semplici cartelle localizzati, come: en.lproj
  3. pulita accumulo
+1

Fai questo! Dopo aver provato ogni soluzione senza alcun effetto, ovviamente il reset hardware ha funzionato. –

+0

Vorrei aver trovato questo post prima di aver trascorso due ore. Per me la "rimozione dell'applicazione" era il trucco. Immagino che si confonda. – Walter

+1

Ripristino il mio simulatore quindi ottengo il risultato corretto! – sunkehappy

Problemi correlati