2010-08-18 22 views
5

Tengo una aplicación de iPhone que necesita ser localizada. No hay problema con las cadenas, pero tengo problemas con los recursos: necesito cargar páginas HTML que están localizadas. Los archivos son como: presentation.htm Los archivos se agregan en el proyecto con la carpeta donde están (html /) y agrega el grupo llamado como la carpeta.No se pueden cargar recursos localizados automáticamente con pathForResource

me carga las páginas HTML con el código:

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

primer intento:

He seguido las indicaciones de esta web I Can Localize, ya que todavía se localizó recursos en la aplicación. Las carpetas se nombran: en.lproj y fr.lproj.

que probarlo en el simulador, pero no tuvo éxito:

  • el registro indica que la ruta es: (...)/myapp.app/presentation.htm
  • el archivo cargado en el simulador está en francés, mientras que el simulador está en inglés.

segundo intento:

Luego, elimine los recursos y volver a poner en su carpeta de grupo (Recursos/html /). Presioné el botón Información y elegí "Hacer que el archivo sea localizable". El archivo se agregó en una carpeta English.lproj. Luego elijo "Agregar localización" y "Francés".

que probarlo en el simulador, pero no tuvo éxito (no tengo limpia la acumulación antes de la prueba):

  • el registro indica que la ruta es: (...)/myapp.app /presentation.htm
  • el archivo cargado en el simulador está en francés, mientras que el simulador está en inglés.

tercer intento:

Después de leer acerca de los recursos this page carga localizada en el iPhone OS 4.0, he cambiado los recursos localizados en carpetas (eliminar recursos, y cambiar el nombre de carpetas en es_ES. lproj y fr_FR.lproj

que probarlo en el simulador, pero no tuvo éxito (no tengo limpia la acumulación antes de la prueba) :

  • el registro indica que la ruta es: (...)/myapp.app/presentation.htm
  • el archivo cargado en el simulador está en francés, mientras que el simulador está en Inglés.

Ayuda?

¿Alguna idea? Sé que es la función: - (NSString *)pathForResource:(NSString *)name ofType:(NSString *)extension inDirectory:(NSString *)subpath forLocalization:(NSString *)localizationName

Pero yo quiero que sea lo más automático posible, y la fijación de cosas como Directory o localizationName pueden impedir que mi aplicación sea automático.

+0

Después de retirar el aplicación del simulador, no funcionó, pero la ruta ha cambiado. Ahora es: (...)/myapp.app/fr_FR.lproj/presentation.htm – AlexandreD

Respuesta

16

La solución es: aplicación

  1. remove de simulador (o dispositivo)
  2. simple uso carpetas localizadas, como: en.lproj
  3. generación limpia
+1

¡Haz esto! Después de probar cada solución sin ningún efecto, por supuesto, el restablecimiento duro funcionó. –

+0

Desearía haber encontrado esta publicación antes de haber pasado dos horas. Para mí, la "aplicación de eliminación" fue el truco. Supongo que se confunde. – Walter

+1

Restablecí mi simulador y luego obtuve el resultado correcto. – sunkehappy

Cuestiones relacionadas