En este tutorial te enseñamos cómo crear aplicaciones multilingües para Android.
Para crear aplicaciones multilingües Android necesitarás recopilar los textos en archivos de recursos y traducirlos.
Una vez lista la traducción, el sistema operativo Android elegirá los recursos que coincidan con la configuración regional del usuario. Si tu aplicación está disponible en varios idiomas, Android seleccionará el idioma que utiliza el dispositivo.
En este tutorial cubriremos:
- Proceso de localización de aplicaciones
- Traducción de cadenas
- Localización de imágenes
- Ejecución y testeo de la aplicación localizada
- Lista de verificación
- Ejemplo de aplicación multilingüe Android para descargar
1. Proceso de localización de aplicaciones
Android carga recursos de texto y medios desde el directorio ‘res’ del proyecto. Además, Android puede seleccionar y cargar recursos de diferentes directorios, basado en la configuración general y regional actual del dispositivo.
Por ejemplo, si el código carga una cadena denominada ‘R.string.title’ , Android elegirá el valor correcto para esa cadena en tiempo de ejecución cargando el archivo strings.xml correspondiente desde un directorio ‘res/values’ que coincida.
Para poder lograr una aplicación Android multilingüe, necesitas proporcionar los archivos de recursos localizados a Android.
Si la configuración regional es ‘en-US’, Android buscará un valor de «R.string.title» verificando los archivos en el siguiente orden:
- ‘res/values-en-rUS/strings.xml’
- ‘res/values-en/strings.xml’
- ‘res/values/strings.xml’
Cuando encuentra la cadena en el archivo de recursos, Android utiliza ese valor y deja de buscar. Esto significa que el idioma predeterminado actúa como una opción de respaldo y cuando existe la traducción, se utiliza en su lugar. Esto también implica que debes localizar todo o nada, ya que ver aplicaciones traducidas a la mitad es generalmente peor que las aplicaciones que no están traducidas en absoluto.
Veamos una aplicación de ejemplo para comprender mejor el proceso de localización. Esta es una aplicación muy simple de un solo idioma, que muestra la imagen de un país y un texto en el mismo idioma establecido en el dispositivo. La estructura del proyecto será como se muestra en la figura 1.
La aplicación no comprueba la configuración regional del usuario y siempre ejecuta la misma, para cualquier configuración regional. En la figura 2 se muestra una captura de pantalla de la aplicación de ejemplo. Ten presente que la imagen de fondo hace referencia a una imagen de los Estados Unidos y el texto está en inglés (configuración regional predeterminada).
Nuestro primer paso para localizar esta aplicación es planear la forma en que se mostrará en diferentes configuraciones regionales. Añadiremos información específica de la configuración regional para Italia, Francia, Canadá y Rusia. La tabla 1 detalla las diferentes opciones de visualización para diferentes configuraciones regionales.
En la tabla 2 se muestran las rutas a los distintos archivos de recursos y cuáles se utilizan para la configuración regional.
Como se muestra en la tabla 1, tendremos seis imágenes de fondo (5 con configuración regional y una predeterminada). También tendremos tres conjuntos de traducciones de cadenas (italiano, ruso y francés).
Las traducciones van en carpetas denominadas values<languages>.
La parte del idioma en el nombre de la carpeta contiene el código ISO del idioma y un código de región opcional, precedido por una rminúscula.
Por ejemplo:
- Sin código de región: fr
- Con código de región: fr-rFR o fr-rCA
La aplicación selecciona los archivos de recursos para cargar en tiempo de ejecución, de acuerdo a la configuración regional del teléfono. Si no hay recursos específicos de la configuración regional disponibles, se usan los valores predeterminados. Por ejemplo, si estamos en Suiza, y el idioma del teléfono está configurado enfrancés, Android primero busca una carpeta llamada fr-rCH. Si no puede encontrarla, busca fr y si eso tampoco lo encuentra, carga los archivos de recursos del idioma predeterminado.
Android hace lo mismo con cada tipo de recurso, por lo que podemos tener cadenas en francés con los gráficos predeterminados, o cualquier otra combinación de recursos traducidos.
2.Traducción de cadenas
La aplicación requiere cuatro archivos strings.xml, uno para inglés, italiano, francés y ruso.
El procedimiento para crear archivos strings.xml es el siguiente:
- Traduce el archivo strings.xml a cada idioma.
- Crea tres carpetas nuevas en res – values-it, values-fr y values-ru (la carpetavalues original ya existe).
- Ubica los archivos strings.xml traducidos en sus respectivas carpetas.
Para una traducción rápida, eficiente y económica, te invitamos a probar nuestro servicio de localización profesional para Android. Nuestro sistema analiza los archivos de recursos, extrae todo el texto y luego crea los archivos de recursos traducidos, listos para ser utilizados en Android.
3. Localización de imágenes
Nuestra aplicación también necesita seis carpetas más de elementos de diseño, cada una contiene una variante de la imagen de fondo.
Ubica la imagen de fondo que tiene que aparecer para un idioma específico en las carpetas correspondientes en el espacio de trabajo del proyecto de la aplicación de ejemplo, tal como se muestra en la tabla 3.
Si tus imágenes contienen texto, te recomendamos crear copias del texto en tu archivo strings.xml . De esta manera, los traductores pueden traducir sólo el texto, y tú puedes reconstruir las imágenes localizadas.
Imagen de fondo | Carpeta de destino en el espacio de trabajo del proyecto |
---|---|
Italiano | drawable-it-rIT/background.png |
Francés | drawable-fr-rFR/background.png |
Francés (Canadá) | drawable-fr-rCA/background.png |
Inglés (Canadá) | drawable-en-rCA/background.png |
Ruso | drawable-ru-rRU/background.png |
Inglés US | drawable-en-rUS/background.png |
Predeterminado (imagen de La Tierra) | drawable/background.png |
Tabla 3: imagen de fondo y las respectivas carpetas de destino.
Después de guardar el archivo strings.xml y los archivos de imágenes de fondo en sus carpetas de destino, el espacio de trabajo del proyecto se ve así:
4. Ejecución y testeo de la aplicación localizada
Una vez que se agregan al proyecto los recursos de cadenas y de imagenes ya localizados, la aplicación está lista para ser testeada. Para hacer las pruebas, puedes establecer diferentes configuraciones regionales enInicio > Menú > Ajustes> Configuración regional & texto > Seleccionar configuración regional.
Dependiendo de la configuración del dispositivo, algunos dispositivos pueden ofrecer sólo algunas configuraciones regionales o no pueden ofrecer cualquier configuración regional alternativa a través de los ajustes de la aplicación. Sin embargo, el emulador de Android ofrecerá una selección de todas las configuraciones regionales disponibles en el sistema operativo Android. Para establecer el emulador en una configuración regional que no está disponible en la imagen del sistema, puede usar la configuración regional personalizada, disponible la pestaña de la aplicación.
La figura 4 muestra algunos de los resultados esperados que debemos ver después de establecer la región y el idioma en el teléfono.
Figura 4: Resultados esperados después de la localización.
5. Lista de verificación
Ahora que entendemos cómo utilizar el marco de desarrollo de Android para aplicaciones multilingües, vamos repasar una breve lista de verificación para recordar los pasos que debemos seguir.
- Nunca hagas hard-code en las cadenas o en las constantes de cadena; en su lugar, usa los archivos R. string y strings.xml.
- Del mismo modo, no codifiques imágenes o diseños; Utiliza R.drawable y R.layout
- Traduce los archivos strings.xml y localiza tus imágenes.
- Ubica tus recursos localizados en los directorios correspondientes bajo ‘ res/’.
Ejemplo de aplicación Android multilingüe
En este tutorial hemos utilizado una aplicación de ejemplo, escrita especialmente para explicar cómo crear aplicaciones multilingüe para Android.
Descárgalo e inténtalo tú mismo:
ICL-EjemploLocalización.zip (4MB)
¿Necesitas ayuda para traducir tu aplicación Android?
Ofrecemos traducciones eficientes, precisas y rápidas para aplicaciones Android.
Traductores expertos y nativostraducirán tu aplicación, lo que te ayudará a aumentar tus ventas alrededor del mundo.
«ICanLocalize es la mejor solución para traducciones rápidas y de alta calidad para tu app. Utilizamos sus servicios en todas nuestras aplicaciones con buenos resultados y retroalimentación positiva de nuestros usuarios. Recomiendo utilizarlo para traducir todas tus aplicaciones.»
«Probamos ICanLocalize y nos pareció muy útil. El progreso de la traducción es visible, dando un estimado de cuándo estarán listas las traducciones. Otra característica que nos gusta es que ICanLocalize tiene un proceso de revisión integrado (opcional). Como también traducimos a idiomas que no conocemos, la función de revisión es muy útil para nosotros. «
«Mi amigo me recomendó ICanLocalize y estoy muy satisfecho. Lo uso para todos mis juegos.»
“Hemos estado usando ICanLocalize desde el 2012 y realmente ha simplificado nuestro flujo de trabajo en relación a nuestro contenido traducido para diferentes mercados. Ya no necesitamos perseguir traductores para diferentes idiomas, ni enseñarles cómo utilizar las herramientas de traducción o liquidar facturas individualmente, etc. porque ICanLocalize maneja todo eso por nosotros. Utilizamos los servicios de ICanLocalize para traducir nuestros sitios web, aplicaciones, boletines informativos y otros materiales de marketing, y siempre podemos contar con resultados rápidos. Reconozco que esta opinión suena como un anuncio pagado o algo así, ¡pero realmente no he escrito nada que no sea verdad o mi opinión genuina! ¡Recomendaría ICanLocalize en cualquier momento! «
Si estás pensando en traducir y volver a publicar este tutorial, por favor contáctanos primero. Dinos dónde quieres publicarlo y unas cuantas palabras sobre ti.