Mostrando entradas con la etiqueta localización. Mostrar todas las entradas
Mostrando entradas con la etiqueta localización. Mostrar todas las entradas

domingo, 24 de marzo de 2013

Localización de imagenes en iOS

En esta ocasión os voy a contar como podemos hacer la localización para diferentes idiomas de imagenes que incluyen texto sin utilizar ni una sola línea de código.

Basta con añadir la imagen a nuestro proyecto Xcode y, seleccionándola ..


... accedemos al menú Utilities, sección Localization y pulsamos Localize.


Aparecerá una ventana en la que debemos indicar el idioma de la imagen:


De esta forma, indicaremos el idioma de la imagen seleccionada y, automáticamente, en la sección Localization aparecerán todos los idiomas de nuestra App.


Deberemos seleccionar las localizaciones deseadas y copiar el archivo correspondiente en su directorio lproj. Por ejemplo, si vamos a añadir la imagen en español, marcaremos el check Spanish y copiaremos el archivo con la imagen en el directorio es.lproj.

Y eso es todo.

@Fin

martes, 21 de agosto de 2012

Ejecución de un proyecto con una localización específica en iOS

Cuando tengáis un proyecto con varias localizaciones, al ejecutarlo en el simulador, se verá la localización definida por defecto.
Necesitaréis comprobar como se comporta la App en los distintos idiomas. La mejor solución es utilizar un argumento que se pasan al ejecutable. Se trata del -AppleLanguages. Se le pueden pasar una lista de idiomas, separados por comas, en el orden preferido. En nuestro caso como lo que necesitamos es probar las diferentes localizaciones de nuestro proyecto, le indicaremos el idioma que queramos verificar en cada momento. Para ello, desde Xcode se accede al menú Product > Edit Scheme...  



A continuación, en la configuración del Run, acceder a la pestaña Arguments, pulsar '+' y añadir el argumento -AppleLanguages "(<localización>)". En el ejemplo de la siguiente imagen, la localización a probar es la española.


Otra forma de probar las diferentes localizaciones es desde un dispositivo iOS. Se cambia el idioma del dispositivo desde las preferencias y se ejecuta el proyecto. Aunque esta otra solución yo la veo más para las últimas fases de los tests.

@Fin



domingo, 4 de marzo de 2012

Localización de nib files en iOS


Seguramente, para buscar un mayor éxito de vuestra aplicación, llegaré el momento en que necesitéis traducirla a otros idiomas. Este proceso es lo que se denomina localización.

Para realizar la localización de los ficheros nib, en  los que se incluyen los storyboards, si utilizas Xcode 4.2 o posterior, Apple nos proporciona el comando de línea ibtool. 

Supongamos que queremos crear un fichero strings de localización para nuestro storyboard. Por defecto estará en la carpeta en.lproj, supuestamente en inglés. Desde el terminal nos situaremos en el directorio de en.lproj de la aplicación y ejecutaremos el comando:

ibtool --generate-strings-file storyboard.strings MainStoryboard.storyboard

De esta forma nos va a generar un archivo strings con nombre storyboard a partir de nuestro storyboard llamado MainStoryBoard con el siguiente aspecto:

/* Class = "IBUITableViewController"; title = "Master"; ObjectID = "12"; */
"12.title" = "Hello";
/* Class = "IBUINavigationItem"; title = "Vehicles"; ObjectID = "36"; */
"36.title" = "Car";
/* Class = "IBUILabel"; text = "Distance"; ObjectID = "0mA-rX-5ud"; */
"0mA-rX-5ud.text" = "Distance";

La parte izquierda del igual es la clave identificativa del texto y la derecha es el texto que aparece en el interfaz. 
Este fichero será el que habrá que traducir al resto de idiomas que tengamos en nuestra app y se dejará en su directorio correspondiente. Por ejemplo en español sería algo así:

/* Class = "IBUITableViewController"; title = "Master"; ObjectID = "12"; */
"12.title" = "Hola";
/* Class = "IBUINavigationItem"; title = "Vehicles"; ObjectID = "36"; */
"36.title" = "Coche";
/* Class = "IBUILabel"; text = "Distance"; ObjectID = "0mA-rX-5ud"; */
"0mA-rX-5ud.text" = "Distancia";

Y se dejará en el directorio es.lproj.

A partir del fichero generado para crear el storyboard en español se utiliza el siguiente comando:

ibtool --strings-file es.lproj/storyboard.strings --write es.lproj/MainStoryboard.storyboard en.lproj/MainStoryboard.storyboard

De esta forma, basándose en los strings traducidos que teníamos en es.lproj/storyboard.strings se ha generado un es.lproj/MainStoryboard.storyboard en español, a partir del que teníamos en ingles en en.lproj/MainStoryboard.storyboard.

Por último debéis añadir el nuevo storyboard a vuestro proyecto.

Hay que tener en cuenta que la labor de localización no acaba aquí. La longitud de los strings habrá variado, con lo que puede que haya que hacer ajustes en las vistas, botones, etc.

Además, los formatos de fechas, números, etc. no son los mismos en los diferentes idiomas. Para realizar la localización de ese tipo de cosas, tenemos la clase NSLocale, pero eso lo veremos en otra ocasión.