iphone ios xcode localization settings.bundle

Localización del iPhone Settings.bundle



ios xcode (6)

Por alguna razón no puedo conseguir que Settings.bundle reconozca mis idiomas adicionales. Debo estar perdiendo algo obvio, pero simplemente no puedo entenderlo. Esto es lo que tengo:

Estructura del proyecto en XCode:

Archivo Root.plist:

Archivo raíz.plist http://img227.imageshack.us/img227/571/screenshot20100624at334.png

Archivo Root.strings francés

archivo Root.strings francés http://img121.imageshack.us/img121/571/screenshot20100624at334.png

De todo lo que he leído, creo que la estructura del proyecto es correcta. La StringsTable en Root.plist coincide con el nombre de los archivos .strings individuales, y la clave para cada elemento en Root.plist también tiene una coincidencia en los archivos .strings.

¿Por qué no veo el texto en francés en mi configuración cuando cambio el idioma predeterminado del iPhone?

¡Gracias por adelantado!


Después de algunos intentos repetidos de activar la localización, los siguientes pasos funcionaron para mí:

  1. Cerrar xcode
  2. Arrastre y duplique el paquete de configuraciones en el escritorio (o donde sea)
  3. Contenidos abiertos del paquete
  4. Arrastre Root.strings a la carpeta en.lproj
  5. Duplique la carpeta en.lproj y cámbiele el nombre al idioma que desee (utilizando el código de 2 letras, es decir fr.lproj)

  6. Reemplace el paquete de configuraciones originales con el nuevo ( sin abrir xcode ).

  7. Ahora abre Xcode y los nuevos archivos y carpetas deberían estar allí.

Ahora elimine la aplicación anterior y ejecute xcode. Funciona bien en el simulador y en el dispositivo.

NOTA : El cierre de xcode, la actualización del paquete de configuración duplicado fuera de xcode y la sustitución de la actualización solo le ayudarán.


En Xcode 5 todavía no hay una manera obvia de localizar los Settings.bundle.

El problema

Xcode no le permite localizar un archivo que solo se muestra porque es un archivo dentro de una carpeta que se muestra directamente en Xcode (de ahí los iconos de carpetas azules en el árbol).

La solución:

  1. haga clic derecho en el archivo Root.strings y seleccione "Mostrar en Finder"
  2. Elemento de lista
  3. mueva el archivo Root.strings una carpeta hacia arriba, de modo que la carpeta en.lproj esté vacía y el archivo Cmd-Arrastre el archivo Root.strings esté al lado de Ropl.plist.
  4. borra el ahora vacío en.lproj
  5. vuelva a Xcode, observe que el árbol reflejará los cambios que hizo ahora
  6. cmd-arrastre el archivo en el árbol de afuera a fuera del paquete de configuraciones, para que aparezca junto a su código fuente.
    • No copie el archivo
  7. aparecerá un cuadro de diálogo que le preguntará qué hacer con el archivo.
    • NO seleccione la casilla de verificación para copiar el archivo (necesita que esto sea una referencia)
    • NO seleccione un objetivo para incluir el archivo de cadenas (el archivo settings.bundle ya está asignado al objetivo correcto)
  8. en el inspector de archivos ahora puede elegir localizar el archivo y agregar idiomas a las localizaciones. Los archivos se colocarán correctamente dentro de settings.bundle y el árbol reflejará automáticamente estos cambios, también.

En mi caso, parecía como si "Strings Filename" se estableciera en "Root" en la Vista de lista de propiedades de Root.plist , pero cuando se veía el archivo en la Vista de código fuente , en realidad era "StringsTable" apuntaba a "Root" . La solución es agregar otra entrada donde "Strings Filename" apunte a "Root" . (También intenté eliminar la entrada anterior, pero luego deja de funcionar, por lo que necesita ambos).


Para mí, el problema fue dejar un punto y coma!

En localizable.strings, obtienes un error de tiempo de ejecución si omites ";", pero en Root.strings, no recibes ninguna advertencia, puedes ejecutarlo bien, ¡pero no funcionará!

Así que vuelva a verificar para asegurarse de puntuar cada clave: ¡el par de valores con un punto y coma!


Seguiré adelante y responderé mi propia pregunta, ya que resolví el problema yo mismo a través de pruebas y fallos. Esperemos que esto ayude a alguien más en el futuro.

Primero, creo que mi archivo Root.plist puede haber sido dañado. No estoy exactamente seguro de por qué, pero eliminé completamente el Settings.bundle y lo volví a crear para estar seguro.

En segundo lugar, y quizás lo más importante, el problema principal era que la "clave" en el archivo root.strings no coincidía con el campo " key " en Root.plist , en realidad coincide con el campo " Title ".

Una vez que hice esos cambios en el archivo Root.strings , todo comenzó a funcionar.


Todo lo que tienes que hacer es mantener (o Agregar, si no está allí) "Strings Filename" en la Lista de raíz, después de la configuración.

Luego, agregue Valor "Raíz" (o el nombre de su archivo y las traducciones) para hacer que las traducciones creadas de lang .lproj sean funcionales.