Android: Aplicacion Multi-idioma

Como convertir tu app es multi-idioma de una manera muy sencilla

Aplicación Multi-idioma

Android, como era de esperarse, nos permite tener una aplicación en varios idiomas. Para poder lograr esto necesitamos haber utilizado para nuestros textos el string.xml como se explicó antes, ya que a partir de ese archivo vamos a lograr el multi-idioma.

Cómo funciona

El funcionamiento de este sistema es de lo más sencillo, nosotros tenemos nuestra carpeta values dentro de res.

Lo único que nos pide Android es crear una carpeta values por cada idioma que vayamos a tener, cómo se logra esto? creando una carpeta con las iniciales para su nombre, por ejemplo: Español values-es, Francés values-fr, etc…

Para crear la carpeta, simplemente hacemos click derecho sobre res y seleccionamos new → directory y creamos una carpeta nueva, en nuestro caso vamos a crear una en español: values-es. Les puede pasar que luego de crear la carpeta no les aparezca, esto es un problema del Android Studio que no te actualiza el directorio. Lo que pueden hacer es cambiar la vista de Android a Project 

Y desde la vista de project buscamos donde está nuestro directorio

Una vez creadas las carpetas para los idiomas que necesitemos, en nuestro caso solo vamos a crear para español, tenemos que copiar dentro el archivo string.xml que teníamos ubicado dentro de la carpeta values. Tan simple como hacer CONTROL + C, CONTROL + V

Si hicimos las cosas bien nos figurara el archivo con la bandera del idioma.

Ahora si, nos toca modificar el archivo strings.xml, solamente modificar el mensaje, no el name:

<string name=“name”>Ingresar Nombre</string>

Por ejemplo, podemos modificar “Ingresar Nombre” al idioma que queramos, pero el name=”name” tiene que llamarse de la misma forma en todos los idiomas, ya que ese va a ser el nombre que utilizaremos para llamarlo en las Activities, sea del idioma que sea.

Utilidad carpeta Values

Se pueden llegar a estar preguntando para que sirve esta carpeta entonces? Bueno, la función principal de esta carpeta es ser la default, por ejemplo, si el usuario tiene su celular en italiano y nosotros no tenemos una carpeta values-it entonces el sistema utilizará la de default, por eso mismo solo pasamos el archivo string.xml y no los tres que figuran, porque no tendría sentido pasar los nombres de los colores o los style para cada idioma ya que eso no se modifica en nada. Lo ideal por defecto, si tu aplicación va a tener dos idiomas y al menos uno de ellos es Ingles, es que el string.xml default sea en ingles.