2011-12-21 22 views
19


Mi proyecto Cocoa está localizado en italiano (mi idioma) y en inglés.
Si lo ejecuto, veo todo en italiano (¡por supuesto, mi sistema operativo es italiano!).
¿Cómo puedo ejecutarlo para probar la localización en inglés sin cambiar el idioma del sistema operativo?Xcode: ejecutar proyecto con la localización especificada

Respuesta

35

En los viejos tiempos, Leopard y antes, la ventana de obtener información en Finder permitía que eligiera los idiomas disponibles. Por lo tanto, era cuestión de anular la selección del idioma que no desea usar y que sería "predeterminado" para el otro.

En estos días puede usar una utilidad como this one. Sin embargo, me encantaría saber qué hace detrás de escena.


Finalmente encontré una buena solución en el cocoa-dev mailing list archives. Aparentemente, puede cambiar el dominio predeterminado dentro de los argumentos pasados ​​a su ejecutable, y esto hace que se sobrescriba la preferencia global. Se se puede lograr con la bandera -AppleLanguages, pasar una lista de los idiomas en el orden de preferencia:

 
~/apath/AppName.app/Contents/MacOS/AppName -AppleLanguages "(Italian, English)" 

Ejecutar esto desde su terminal y debe dar una prioridad diferente para el idioma . Observe que también puede especificar una lista de elementos individuales "(Italian)" -tiene más sentido para fines de prueba.

Para hacerlo dentro de Xcode y evitar el terminal, vaya al menú Producto> Editar Esquema .... Luego, en la configuración de ejecución, cambie a la pestaña Argumentos y cree una nueva que se pasará en el inicio. Agregue -AppleLanguages "(Japanese)" mensaje de texto. Algo similar a esto:

Xcode Screen Shot

+0

¿Alguna solución dentro de xcode? – Oneiros

+0

@Oneiros acaba de encontrar una forma y editó la respuesta. – sidyll

+0

@sidyll esta es una buena solución. Voy a probarlo en iOS cuando tenga la oportunidad: ahorrará la misma molestia de cambiar el idioma del dispositivo todo el tiempo. – Jessedc

0

Suponiendo que tiene un archivo que contiene todas las cadenas, intercambie los nombres de los archivos. O bien, si tienes un grupo it.lproj y en.lproj en tu proyecto, simplemente mueve tus InfoPlist.strings (o lo que sea que hayas nombrado) al otro grupo y viceversa.

+0

gracias, truco útil. no lo había pensado: D alguna otra sugerencia? – Oneiros

+0

Sí, acaba de editar mi respuesta con un poco más de información. En mi caso, utilizo un nombre de archivo especial, pero puede que esté utilizando grupos localizados con el mismo nombre de archivo, en cuyo caso simplemente coloca el archivo de cadena en.lproj en el grupo it.lproj, por ejemplo. Por supuesto, querrás moverlos de vuelta antes de implementar: D – Jeremy

+0

intenté intercambiar it.lproj y en.lproj pero de alguna manera no funciona ... – Oneiros

Cuestiones relacionadas