Para que nuestra aplicación pueda llegar al mayor público posible, es necesario traducirla al mayor número de idiomas posible. Generar un archivo .apk, junto con una entrada en la Play Store, por cada idioma al que queramos traducir nuestra app es algo inaceptable tanto a nivel de desarrollo como a nivel de la propia tienda de Google.

Como ya hemos explicado en los temas anteriores de este curso de desarrollo android, cuando creamos una aplicación, los textos nunca deben ir en el propio código de la aplicación, sino que estos deben estar referenciados dentro de un fichero llamado strings.xml. De esta manera, este fichero almacenará todos los textos de nuestra aplicación, pudiendo acceder a ellos para realizar cambios fácilmente sin tener que buscar una palabra concreta dentro de una aplicación con miles de líneas de código.

Al mismo tiempo, este fichero nos va a permitir gestionar fácilmente las traducciones de nuestras aplicaciones utilizando varios ficheros strings.xml, uno por cada idioma que vayamos a utilizar.

Desarrollo Android: Creando una aplicación en varios idiomas con Android Studio

Lo primero que debemos hacer es crear un proyecto nuevo para este nuevo tema de desarrollo android. No vamos a profundizar en esto ya que a estas alturas del curso debemos saber cómo crearlo. Este proyecto no tendrá nada de especial, ya que solo lo vamos a usar para ver las funciones de traducción.

Una vez tengamos nuestro proyecto creado (nosotros lo vamos a llamar “MovilZona_Multi-idioma”) abriremos el fichero “Activity_main.xml” y veremos el típico programa inicial “Hola Mundo!”.

Desarrollo Android Studio - Nueva App Multi-idioma

En esta actividad vamos a mantener nuestro texto de “Hello World!” por defecto y vamos a añadir algún View más, por ejemplo, un botón en el centro.

Views en una App Multi-Idioma con Android Studio

Rellenando el fichero strings.xml y asignando cada View a una entrada de este fichero

Lo primero que vamos a hacer es abrir el fichero strings.xml que, por defecto, estará vacío, solo veremos el nombre de la aplicación. A continuación agregaremos una línea por cada texto que tengamos en cada View de nuestra aplicación, de la siguiente forma:

<string name=”ID_DEL_TEXTO”>TEXTO_DEL_VIEW</string>

Por ejemplo:

<string name=”button”>Button</string>

<string name=”TextView”>TextView</string>

Android Studio - Textos desde Strings

Ahora, volvemos al archivo “Activity_main.xml” y, en el apartado de texto de cada View, haremos referencia al “String Name” que hayamos añadido en el fichero strings.xml de la siguiente forma:

Text: @string/ID_DEL_TEXTO

Por ejemplo:

button -> Text: @string/button

Android Studio - Referencia Texto String

Repetimos lo mismo con el TextView y ya tendremos los dos Views haciendo referencia al contenido del archivo strings.xml. De esta manera, cambiando solo el texto desde el fichero strings.xml se cambiará también el texto de nuestra aplicación.

Android Studio - Views de app Multi-idioma

Esto nos va a permitir también distribuir una única aplicación en varios idiomas, de manera que según el idioma de Android se utilice una u otra traducción.

Cómo traducir nuestra aplicación utilizando varios ficheros string.xml

En este momento, todos los textos de nuestra aplicación se almacenan en un fichero strings.xml de manera que todo el código fuente está libre de texto, haciendo siempre referencia a dicho archivo cuando haya que cargar un texto.

Android Studio nos facilita la posibilidad de crear más archivos strings.xml enfocados principalmente a un idioma. De esta manera, cuando Android esté configurado en un idioma cargará su strings correspondiente o, de no haberlo, cargará el strings global. Podemos crear solo las traducciones que necesitemos (incluso crear solo una) ya que, por defecto, si no hay traducción específica cargará el archivo original.

Para crear una traducción debemos hacer clic con el botón derecho en el menú App > Res > Values y elegir “New Values Resource“.

Android Studio - Crear nuevo recursos de idioma

Se nos abrirá una nueva ventana para crear el recurso. En esta ventana elegiremos el nombre (strings) y el tipo (locale) del menú de la izquierda y pulsaremos sobre la flecha para agregarlo al menú de la derecha.

Android Studio - Crear nueva localizacion

Automáticamente veremos cómo se nos habilitan dos columnas nuevas: Language y Region. Aquí debemos elegir el idioma y la región que correspondan con el idioma al que vamos a traducir, por ejemplo, “es: Spanish” y “Any Region” de manera que esa traducción será “al español” para todas las regiones de habla hispana.

Android Studio - Strings en español

Pulsamos sobre “Ok” y listo, se creará un nuevo strings con el icono de la bandera de España, indicando que dicho fichero almacena la traducción al español.

Abrimos este fichero y lo rellenamos igual que el strings.xml que hemos visto al principio de este tema, aunque cambiando el texto original por el texto traducido.

Android Studio - App traducida a Español

Si queremos traducir la aplicación al inglés, por ejemplo, el proceso es el mismo tal como vemos en las siguientes imágenes:

Android Studio - Strings en Inglés

Android Studio - App traducida a Inglés

Una vez cambiados los textos, nuestra aplicación ya estará traducida y será multi-idioma, cargando por defecto la traducción acorde al sistema de nuestro Android. Por ejemplo, si nuestro smartphone está en español cargará así:

Android Studio - Multi-idioma - App en Español

De lo contrario, si está en inglés, nos cargará nuestra segunda traducción.

Cambiar idioma Android

Android Studio - Multi-idioma - App en Inglés

Por último, si nuestro móvil está en otro idioma, por ejemplo, en italiano, al no haber traducción el fichero que cargará por defecto será el “strings.xml” original.

Android Studio - Multi-idioma - App en OtrosTraduciendo nuestra aplicación a varios idiomas, nuestra aplicación tendrá un aspecto más profesional, será más sencilla de utilizar y comprender por todos y llegaremos a un mayor público, lo que a su vez nos permitir obtener un mayor beneficio económico de ella.