¿Cómo localizar la configuración. BUNDLE en XCODE4?
-
28-10-2019 - |
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.
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:
Haga doble clic en Root.strings
me da:
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?
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.
- Haga clic derecho en el paquete de configuración en la barra lateral.
- Seleccione
New File
- Elige el archivo de recursos / cadenas
- Nombrarlo root.strings, asegúrese de que se coloque dentro de la configuración.
- 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.
- Seleccione el archivo root.strings en la sección raíz. (Afir tienes que convertirlo en UTF16)
- Agregue la localización, Xcode le preguntará si desea reemplazar el archivo. Sí, quieres esto.
- 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.
Después de agregar la localización en español a Root.strings
:
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.
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.)
- Revela su configuración. BUNDLE en Finder.
- Haga clic con el botón derecho (o CTRL-Click) y seleccione Mostrar contenido del paquete.
- Cree una nueva carpeta llamada Lenguaje deseado (por ejemplo, P.Lproj).
- 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.