Pregunta

Estoy trabajando en xcode4 y creé un Settings.bundle para mi proyecto. Puedo editar el Root.plist archivo en xcode4 pero no es posible editar el Root.strings expediente. Ni siquiera se muestra en el editor.

enter image description here

No puedo expandir el en.lproj carpeta como ves en la imagen.

Pero cuando lo hago Haga clic con el botón derecho, abra en editor externo me da:

enter image description here

Haga doble clic en Root.strings me da:

enter image description here

Lo intenté varias veces, creando un nuevo proyecto de aplicación basado en ventanas y creando un nuevo settings.bundle. Siempre no puedo localizarlo. ¿Algunas ideas?

¿Fue útil?

Solución

Editar: Apple solucionó, una vez más, el error incorrecto. Su cambio hizo que mi solución inútil. Simplemente ya no funciona, no puede agregar archivos a settings.bundle.

Consulte la respuesta de Javi para un método que parece funcionar.


Espero que te gusten las soluciones feas.

  1. Haga clic derecho en el paquete de configuración en la barra lateral.
  2. Seleccione New File
  3. Elige el archivo de recursos / cadenas
  4. Nombrarlo root.strings, asegúrese de que se coloque dentro de la configuración.
  5. En la barra lateral, el archivo será visible dos veces. En la sección "raíz" y en el settings.bundle. Pero ambos apuntan a los mismos archivos.
  6. Seleccione el archivo root.strings en la sección raíz. (Afir tienes que convertirlo en UTF16)
  7. Agregue la localización, Xcode le preguntará si desea reemplazar el archivo. Sí, quieres esto.
  8. Agregue tantas localizaciones como desee. Debería poder editar el archivo en la sección raíz de la barra lateral.

Espero que esto funcione para ti, para mí lo hace.

Y si no lo ha hecho, informe el error en bugreport.apple.com


Instalaré la nueva versión ahora, veamos si esto es arreglado. Editar: no arreglado.


EDITAR: No sé si entendí su segunda pregunta correctamente. Pero cuando agrega una localización al archivo que aparece fuera del paquete, agrega una carpeta de localización a la configuración.

enter image description here

Después de agregar la localización en español a Root.strings:

enter image description here

El archivo real está en la carpeta foo.lproj, simplemente no los muestra en la barra lateral Xcode. Si verifica la ubicación en el sistema de archivos, verá que están dentro del paquete de configuración.enter image description here

Ayer revisé con un archivo en inglés y alemán y funcionó correctamente en el simulador. Supongo que es solo un diseño de barra lateral incorrecta. Las ubicaciones subyacentes y el manejo de los archivos parecen correctos.

Otros consejos

En Xcode 4.2 debe seguir estos pasos (solo una modificación de Xcode 3.2.2 y localización de configuraciones.)

  1. Revela su configuración. BUNDLE en Finder.
  2. Haga clic con el botón derecho (o CTRL-Click) y seleccione Mostrar contenido del paquete.
  3. Cree una nueva carpeta llamada Lenguaje deseado (por ejemplo, P.Lproj).
  4. Copie el archivo root.strings en la carpeta EN.LProj y pegue en la carpeta FR.LPROJ.

Para mí funcionó para cambiar el tipo de archivo (en el inspector de archivos) de la carpeta "en.lproj" desde "predeterminado / directorio" a "directorio". Magia.

Xcode 4 está creando "Root.strings" como una lista de propiedades binarias. Entonces, lo que tenía que hacer era establecer el tipo de archivo en "Lista de propiedades (binaria)" para que apareciera correctamente.

Acabo de dejar de tratar de hacer algo con Root.Strings. En cambio, acabo de copiar la Plist en cada *.lproj, ¡y funcionó!

En cuanto a esto, se trata de traducción al inglés y mi idioma nativo, no hay problema.

Así que tengo:

Settings.bundle
|- en.lproj
|  |- Root.plist
|  `- Root.strings -- nothing useful there
|
`- zz.proj
   `- Root.plist

La buena noticia es que Root.plist es UTF8.

Si ya tiene un archivo root.strings que es una "lista de propiedades (binaria)" y desea convertirlo en un archivo de cadenas basado en texto adecuado, puede usar plutil En la aplicación terminal para convertirla, por ejemplo, en formato JSON:

> plutil -convert json /path/to/Settings.bundle/en.lproj/Root.strings

Nb puedes ejecutar plutil -h por ayuda de uso.

Sin embargo, deberá convertir el formato JSON:

{"key1":"value1","key2":"value2"}

A el de un archivo de cadenas:

"key1" = "value1";
"key2" = "value2";

Esto se hace fácilmente con algunas operaciones de búsqueda/reemplazo en un editor de texto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top