No es un bug, es una característica no documentada

18/10/15

Programación multimedia. Recursos alternativos. Internacionalización

Android utiliza una serie de sufijos para expresar recursos alternativos. Estos sufijos pueden hacer referencia a la orientación del dispositivo como ya hemos visto, al lenguaje, la región, la densidad de píxeles, la resolución, el método de entrada…

Por ejemplo, si queremos traducir nuestra aplicación al español, inglés y francés. Siendo el español el usado por defecto (se define en los ajustes del dispositivo), crearíamos tres versiones del fichero strings.xml y lo guardaríamos en los directorios

  • res/values/strings.xml
  • res/values-en/strings.xml
  • res/values-fr/strings.xml


Pudiendo también indicar varios sufijos concatenados, para la región por ejemplo

  • res/values-en-rUS/strings.xml
  • res/values-en-rUK/strings.xml


Sabiendo esto, y con lo aprendido sobre los directorios del anterior tema, vamos a generar una aplicación multilenguaje.


Creamos la estructura de carpetas necesaria para traducir al inglés y francés según lo descrito anteriormente, de modo que queden tal que así


Abrimos el strings.xml de los tres directorios y escribimos el texto de cada etiqueta en el idioma que le corresponda, dándole un atributo name a cada etiqueta para poder referenciarla más tarde desde el menú de propiedades de cada elemento. De esta manera simplemente indicando un cambio de idioma podremos realizar la traducción en nuestra aplicación.

Español


Inglés


Francés


Ahora, volviendo al diseño gráfico, en la propiedad text de los elementos que queramos traducir, pulsamos sobre los tres puntos para indicar un texto ya definido.



Y elegimos el nombre que le habíamos indicado a nuestra etiqueta anteriormente.


Por último, para probarla, vamos al botón de internacionalización y seleccionamos el idioma que queramos para comprobar si funciona la traducción correctamente.


Y si lo ejecutamos podemos ver que se traduce al idioma elegido.

0 comments:

Publicar un comentario