Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

Android SDK: Creación de un libro de frases localizado

Difficulty:BeginnerLength:LongLanguages:

Spanish (Español) translation by CYC (you can also view the original English article)

En este tutorial, aprenderás a crear y usar archivos de recursos alternativos con una aplicación de Android llamada One Minute Phrasebook. Esta aplicación muestra ciertos textos y gráficos en función de la configuración de idioma/configuración regional del sistema Android.

Antes de que empieces

Los autores asumen que el lector tiene algunos conocimientos básicos de Android y tiene todas las herramientas necesarias, como Eclipse y Android SDK, instaladas y en funcionamiento. Los ejemplos proporcionados aquí están diseñados para mostrar cómo se pueden localizar los recursos del proyecto de Android. Específicamente, este tutorial te mostrará cómo incluir recursos para diferentes idiomas y configuraciones regionales.

Nota: El código para la aplicación OneMinutePhrasebook también está disponible en Google Code.

Paso 1: Crea la aplicación OneMinutePhrasebook

Comienza creando un nuevo proyecto de Android.

Para hacer esto dentro de Eclipse, elige Archivo > Nuevo proyecto de Android para iniciar el asistente de proyecto de Android.

Nombra el proyecto: como "Phrasebook"

Elige un objetivo de compilación apropiado, como Android 2.1.

Nombra la aplicación: ej. "One Minute Phrasebook"

Nombra el paquete: com.mamlambo.article.phrasebook

Crea una actividad de inicio: PhrasebookActivity

Creating the Android phrasebook project.

Paso 2: Configurar la aplicación para la depuración

Vas a depurar esta aplicación, por lo que debes establecer el atributo Debuggable en el verdadero archivo Manifest de Android.

Modifying the Android Manifest file.

Paso 3: Crea una configuración de depuración

Deberás poder iniciar fácilmente la aplicación en el emulador de Android y en el dispositivo de Eclipse, por lo que debes crear una configuración de depuración.

Para hacer esto dentro de Eclipse, elige Ejecutar > Configuraciones de depuración...

Haz doble clic en la opción Proyecto Android.

Nombra tu nueva configuración: “Phrasebook Test”

Selecciona el proyecto: Phrasebook

Selecting the android phrasebook project.

Paso 4: Crear recursos String predeterminados

El Libro de frases de un minuto muestra la configuración regional, así como varias cadenas ("Hola", "Adiós", "Por favor", "Gracias" y "¡Ayuda!")en la pantalla. Por lo tanto, debes agregar un conjunto de recursos de cadena al archivo /res/values/strings.xml. Específicamente, agrega una cadena para cada frase, así como una etiqueta para cada frase. Además, agrega cadenas para los enlaces Bandera (etiqueta), Mapa (etiqueta) y CIA World Factbook (más sobre esto en un momento).

Para cadenas predeterminadas, usamos uno de los idiomas más comunes que se entiende en todo el mundo: inglés. (Ciertamente, puedes elegir otro idioma para tu valor predeterminado, si lo deseas).

El archivo strings.xml resultante debería verse más o menos así:

Estos son los recursos de cadena predeterminados que utiliza esta aplicación. Muchas aplicaciones usan solo recursos predeterminados.

Paso 5: Crear otros recursos

La aplicación One Minute Phrasebook también requiere varios otros tipos de recursos. Específicamente:

  • Algunos recursos de color para los colores de texto de TextView (/res/values/colors.xml)
  • Algunos recursos de dimensión para el tamaño de texto de TextView (/res/values/dimens.xml)
  • Dos archivos gráficos: uno para el mapa y otro para el indicador (/res/drawable/flag.png y /res/drawable/map.png)

Puedes agregar estos recursos ahora o mientras construyes el diseño. Las imágenes de bandera y mapa utilizadas en este tutorial fueron adquiridas a partir de imágenes de dominio público disponibles en el sitio web CIA World Factbook.

Por la causa predeterminada, diremos que la configuración regional es "Mundial" y mostramos un gráfico con un montón de mapas mundiales y un mapa del planeta.

Configuring Android Resources

Paso 6: Diseña la interfaz de usuario de la libreta de frases de un minuto

A continuación, dirige tu atención al diseño de la interfaz de usuario de la aplicación. One Minute Phrasebook es una aplicación muy simple con solo una pantalla. La pantalla muestra algunas frases útiles, una bandera y un mapa para el país, y un enlace al sitio web de la CIA World Factbook para el país apropiado.

Android Phrasebook Interface View.

Nota: Para esta aplicación, utilizamos un perfil de dispositivo virtual Android (AVD) para que coincida con el de Nexus One, con su pantalla de 800x480. Siéntete libre de crear un AVD para que coincida con el dispositivo Android que tengas a mano para probar.

Paso 7: Implementando la interfaz de usuario

Esta aplicación tiene solo una pantalla, definida dentro del archivo /res/layout/main.xml. Este es el archivo que necesitas editar.

En este caso, queremos buenas columnas formateadas, así que considera usar el control TableLayout para formatear los controles TextView e ImageView que contienen la frase, la bandera, el mapa y el enlace al World Factbook de la CIA.

El archivo de diseño main.xml resultante debería tener un aspecto similar a este:

Paso 8: Ejecutar la aplicación

Es hora de ejecutar la aplicación por primera vez. Para hacerlo desde Eclipse, elija Ejecutar > Configuraciones de depuración. Selecciona la configuración Phrasebook Test y haz clic en el botón Depurar.

Android Debugging Screen.

Paso 9: Cambiar el dispositivo o la configuración regional del emulador

Ahora es el momento de explorar la configuración de idioma de tu emulador o dispositivo. Para ver y cambiar la configuración de idioma/region desde la pantalla de inicio, haz clic en el botón Menú y selecciona Configuración > Idioma y teclado y Seleccionar configuración regional.

Intenta cambiar la configuración regional a un idioma extranjero con el que estés familiarizado.

Advertencia: Ten en cuenta que si cambias el idioma y abandonas la Configuración, deberás poder volver a la pantalla de configuración en ese idioma. Memorizar o anotar las teclas para hacer esto puede simplificarlo.

Observa cómo todos los menús cambian a ese idioma. Ejecuta la aplicación One Minute Phrasebook en esta configuración regional. Ten en cuenta que la aplicación no parece diferente a la que tenías antes de cambiar la configuración regional; todavía aparece en inglés.

Ahora, vuelve a tu configuración favorita. El mío es inglés (Estados Unidos).

Android Phrasebook Locale Listing.

Nota: El emulador tiene todas las opciones de configuración regional disponibles en una versión determinada del SDK de Android. Sin embargo, los dispositivos específicos pueden tener un conjunto limitado de configuraciones regionales para elegir.

Paso 10: Comprender cómo Android administra los recursos

Cada vez que se dibuja una pantalla dentro de una aplicación de Android, el sistema operativo Android intenta hacer coincidir el mejor recurso posible del proyecto para el trabajo. En muchos casos, las aplicaciones proporcionan solo un conjunto de recursos: los recursos predeterminados.

Cuando se incluyen recursos alternativos con una aplicación como parte de su paquete, el sistema operativo Android siempre intenta cargar los recursos más específicos disponibles.

Se pueden crear recursos alternativos para muchos criterios diferentes, que incluyen, entre otros, idiomas y regiones, características de la pantalla y métodos de entrada del dispositivo. Algunos recursos alternativos comunes son los de idiomas, configuraciones regionales y orientación de pantalla (diseños, especialmente). Los criterios se organizan jerárquicamente y cada tipo de criterio se puede usar como un sufijo en el nombre del directorio de recursos del proyecto apropiado.

Los recursos alternativos deben usar los mismos nombres que los recursos predeterminados. La resolución de recursos de Android se muestra mejor con el ejemplo. En este tutorial, nos centramos solo en la creación de recursos alternativos para idiomas y regiones específicos.

Paso 11: Crear recursos de cadenas alternativas para los países francófonos

Ahora digamos que deseas agregar soporte para las regiones de habla francesa. Puedes hacerlo fácilmente agregando cadenas de recursos alternativas al proyecto. Por ejemplo, puedes dejar las etiquetas de frase en inglés, pero traduce las frases reales al idioma francés.

Puedes agregar recursos de idioma a cualquier proyecto creando directorios de proyecto especialmente nombrados. Simplemente toma el nombre del directorio de proyecto existente (como /res/values) y vira en un guión seguido del código de dos letras, como se define en ISO 639-2. Entonces, por ejemplo, inglés es en, francés es fr, español es es, alemán es de, etc.

Puedes agregar un único conjunto de cadenas traducidas en francés en el archivo /res/values-fr/strings.xml. Estas cadenas se cargarán siempre que se habilite una configuración regional de habla francesa. Cualquier otra configuración de configuración regional continuará utilizando las cadenas predeterminadas.

Cada una de las cadenas de recursos alternativas debe tener el mismo nombre que el recurso predeterminado utilizado (almacenado en /res/values/strings.xml). El sistema operativo Android elegirá el recurso más específico disponible en tiempo de ejecución. No es necesario que proporciones traducciones para todas las cadenas, solo las que quieres modificar cuando se elige una configuración regional de habla francesa.

El archivo resultante /res/values-fr/strings.xml debería verse más o menos así:

Ten en cuenta que puede que necesites citar cadenas de recursos si contienen comillas simples (como "S'il vous plaît").

Paso 12: Crear recursos de cadenas alternativas para países específicos

Ahora que has determinado los recursos de cadenas en francés (las frases) que se pueden compartir en todas las regiones y lugares de habla francesa, deseas crear recursos de cadenas alternativas para países específicos: Bélgica, Canadá, Francia y Suiza.

Cada país necesitará:

  • Una cadena de región local
  • Una cadena URL de CIA World Factbook

La plataforma Android admite recursos alternativos específicos del idioma (como los creados en el paso anterior). Sin embargo, no puedes crear recursos específicos de región sin el idioma. En su lugar, debes incluir el idioma y el código de país en el nombre del directorio de recursos.

Para crear recursos específicos para una región, debes usar tu idioma (en este caso "fr"), seguido de un guion, seguido de su código de región en la forma "rXX", donde XX es el código de región para el país definido por Código ISO 3166-1-alfa-2.

Por ejemplo, los códigos de idioma y región para los países de habla francesa admitidos en Android serían:

Bélgica: fr-rBE
Canadá: fr-rCA
Francia: fr-rFR
Suiza: fr-rCH

Entonces, por ejemplo, puedes crear un archivo strings.xml en el directorio de proyectos /res/values-fr-rBE para los valores de cadena específicamente para la configuración regional de Francés (Bélgica).

/res/values-for-thE/strings.xml podría verse así:

Paso 13: Crear recursos alternativos Drawable para países específicos

Se pueden crear recursos alternativos para otros tipos de datos además de cadenas. Puedes crear recursos alternativos para cualquier tipo de recurso, incluidas cadenas, dimensiones, colores, recursos dibujables y otros tipos. Simplemente usas las mismas reglas de jerarquía del directorio de recursos del proyecto.

Por lo tanto, para agregar bandera y asignar recursos dibujables para cada país (Bélgica, Canadá, Francia y Suiza), debes crear cuatro directorios nuevos en el proyecto:

  • Guarda los gráficos belga flag.png y map.png en el directorio //res/drawable-fr-rBE/.
  • Guarda los gráficos flag.png y map.png de Canadá en el directorio /res/drawable-fr-rCA/.
  • Almacena los gráficos Suizos flag.png y map.png en el directorio /res/drawable-fr-rCH/.
  • Guarda los gráficos flag.png y map.png de Francia en el directorio /res/drawable-fr-rFR/.

Ten en cuenta que los nombres de archivo dibujables deben coincidir exactamente con los nombres de archivo dibujables predeterminados (los almacenados en /res/drawable).

Tu proyecto debería estar organizado de esta manera:

Android Project organization listing.

Paso 14: Volver a correr con una configuración regional de habla francesa

En tu emulador o en tu dispositivo, cambia la Configuración regional a una de las opciones francesas (Français (Francia), Français (Canadá), Français (Bélgica), Français (Suiza).)

Nota: Para aquellos no versados en francés, puedes volver al menú de configuración regional desde la pantalla de inicio seleccionando: Menú-> Parámetros-> Langue et clavier-> Langue et région....

Vuelve a ejecutar la aplicación One Minute Phrasebook y mira los resultados. Observa cómo se cargan las cadenas francesas apropiadas para todos los idiomas franceses. También ten en cuenta cómo la región específica dicta qué información del país se muestra dentro de la aplicación.

La figura muestra lo que ocurre cuando eliges Français (Francia).

Android French screen content.

Paso 15: A dónde ir desde aquí

Las fuerzas de internacionalización diseñan elecciones en el equipo de desarrollo. Por ejemplo, ¿crearás un gran proyecto para todos los idiomas o dividirás las aplicaciones por región? Para algunos proyectos con internacionalización ligera, es posible que puedas salirte con un proyecto con todos los recursos internacionalizados. Para una internacionalización profunda, es posible que debas reorganizar los proyectos para que ninguna aplicación sea demasiado grande o engorrosa para el usuario.

Puedes haber notado que en todo este trabajo de internacionalización, nunca tocamos los archivos fuente java del proyecto. Esto es importante tener en cuenta, porque significa que el trabajo de internacionalización de una aplicación puede no pertenecer a un desarrollador que sabe cómo usar bien las herramientas de Eclipse y Android, sino a otra persona que necesitará capacitación sobre cómo funciona la internacionalización de Android, cómo los recursos se pueden superponer en capas, y los inconvenientes de la sobre-internacionalización (lo que resulta en archivos de paquetes muy grandes con muchos gráficos, etc.). En el lado positivo, esto deja a los desarrolladores libres de hacer lo que mejor saben hacer: desarrollar código.

Por último, es probable que hayas notado que la estructura de internacionalización de Android no es perfecta, especialmente para los países con múltiples idiomas oficiales (y no oficiales). Tiene poco sentido tener que incluir los mismos gráficos (bandera y mapa) en los directorios en-rCA y fr-rCA para los canadienses que hablan inglés y francés. Sin embargo, puedes evitar estas limitaciones al determinar programáticamente la configuración regional y cargar los archivos gráficos apropiados tú mismo. Eso, sin embargo, es para otro tutorial.

Puedes encontrar una explicación más completa de la resolución de recursos de Android en la documentación de Android SDK aquí.

Conclusión

En este tutorial, aprendiste a crear y usar archivos de recursos alternativos con una aplicación de Android llamada One Minute Phrasebook. Esta aplicación muestra ciertas cadenas y gráficos en función de la configuración de idioma/configuración regional del sistema Android. Aprendiste cómo el sistema operativo Android resuelve recursos y elige el recurso más apropiado disponible en tiempo de ejecución. También aprendiste a organizar los recursos de manera eficiente con el fin de proporcionar a tus usuarios de todo el mundo la mejor experiencia de aplicación posible.

¡Esperamos que hayas disfrutado este tutorial y esperamos tus comentarios!

Sobre los autores

Los desarrolladores móviles Lauren Darcey y Shane Conder han sido coautores de varios libros sobre desarrollo de Android: un libro de programación en profundidad titulado Android Wireless Application Development y Sams TeachYourself Desarrollo de aplicaciones de Android en 24 horas. Cuando no escriben, pasan su tiempo desarrollando software móvil en su compañía y brindando servicios de consultoría. Se puede llegar a ellos por correo electrónico a androidwirelessdev+mt@gmail.com, a través de su blog en androidbook.blogspot.com, y en Twitter @androidwireless.

¿Necesita más ayuda para escribir aplicaciones de Android? ¡Mira nuestros últimos libros y recursos!

Buy Android Wireless Application Development, 2nd Edition Buy Sam's Teach Yourself Android Application Development in 24 Hours Mamlambo code at Code Canyon

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.