lunedì 23 giugno 2014

Android Localizer: cómo conseguir traducir tu aplicación Android

Suportar diferentes idiomas



La mejor forma para tratar el texto en nuestras aplicaciones es de destacar el mismo texto y el código JAVA, utilizando la carpeta 'resource' de nuestro proyecto Android.

Entrando mas en los detalles, tendremos una carpeta res/ an la root de nuestro proyecto, y adentro de esta carpeta tenemos varias subcarpetas, cada una para un particular set de recursos que nuestra aplicación utiliza.
Por ejemplo, tendremos nuestro fichero res/values/strings.xml que contiene todo el texto de nuestra aplicación.
Utilizar esta forma modular de tratar el texto nos permite disfrutar de algunos mecanismos de Android para traducir nuestras aplicaciones en varios idiomas.


Creación de carpetas locales y de ficheros de Cadena de Caracteres


La idea a la base de la traducción de nuestras aplicaciones es de crear otras carpetas values adicionales adentro de la carpeta res/ que incluyen en el nombre el código ISO del idioma que queremos implementar. Por ejemplo, values-es/ es el nombre de la carpeta que tendremos que crear para traducir nuestra aplicación en español (código ISO de idioma "es" ).
Android cargará los recursos apropiados basandose sobre los ajustes del dispositivo en el cual nuestra aplicación vendrá ejecutada, es decir, en un dispositivo con idioma Español Android buscará una carpeta con el código ISO "es" y, si la encuentra, utilizará lo que esta adentro de esta carpeta como fichero de recurso.

Una vez que hemos decidido que idioma queremos soportar, creamos las carpetas donde pondremos las cadenas de caracteres












Una vez creadas las carpetas, tendremos que modificar cada fichero strings.xml de forma apropiada, traduciendo cada cadena de caracteres en el idioma elegido.
Por ejemplo, aqui tenemos

English, default values /values/strings.xml







Español,  /values/strings.xml








Una vez que la aplicación viene instalada y ejecutada en un dispositivo,  android basandose sobre los ajustes globales utilizará el fichero de cadenas de caracteres apropiadas, eligiendo entre los disponibles.
Si un idioma no esta implementado en la aplicación, Android elegirá los valores de default (típicamente esto es el ingles).



Utilizar las cadenas de caracteres 


Podemos referenciar nuestras cadenas de caracteres en nuestro código a traves de dos formas, utilizando el código JAVA o el código XML.

En el código JAVA
Podemos referenciar una cadena de carácter con la orden R.string.<nombre_cadena>.
Hay algunos métodos que aceptan una cadena de caracteres en esta forma:










En el codigo XML
Podemos referenciar una stringa en el código XML a través de la orden @string/<nombre_cadena>.








1 commento:

  1. Yo recomiendo https://poeditor.com/ para traducir los archivos XML. Creo que es una muy rápida y intuitiva herramienta de localización y taducción.

    RispondiElimina