AAD-Core: Localize your app

Cómo localizar tu app


Introducción
El problema que busca resolver Android es poder proporcionar los recursos necesarios frente a las distintas regiones donde se puede ejecutar. Para lograrlo, tu aplicativo debe manejar apropiadamente recursos como textos, archivos, audios, monedas y demás recursos según la configuración regional que se usa.


¿Qué es un recurso en Android?
Hace referencia a cualquier dato estático que necesite android; como por ejemplo, textos, imágenes, sonidos, gráficos, fuentes, archivos, etc.

Los recursos de Android se alojan en un directorio especial res/ y en función a la configuración regional el mismo sistema hace uso de dichos recursos de manera automática.


Strings
Los recursos de textos se alojan en la siguiente dirección res/values/strings.xml. Este es un archivo predeterminado y el sistema de android lo utiliza cuando no encuentra un texto en base a la configuración regional que se está usando en ese momento. De no tener el recurso por defecto (res/values/strings.xml) y no tener una recurso específico se generará un error. El App no se cargará.   


Algunos recursos predeterminados
  • res/drawable -> debe tener al menos el ícono con el que se ejecuta tu aplicativo.
  • res/layout -> es obligatorio y contienen los diseños (layouts) de tu aplicación.

Prioridades de recursos
Por lo general los recursos con mayor prioridad son los regionales. Por ejemplo podemos tener una configuración de recursos gráficos optimizados para japon y otro para dispositivos que estén en orientación landscape. 
  • res/drawable-ja/
  • res/drawable-land/
Android priorizará los gráficos en Japón aunque el dispositivo esté en modo horizontal.

Excepción:
 Los únicos calificadores que tienen prioridad sobre la configuración regional en el proceso de selección son MCC y MNC (código de país de dispositivo móvil y código de red móvil).

Cómo administrar strings para la localización
Si generas imágenes con texto, coloca también esas strings en strings.xml y vuelve a generarlas después de la traducción.

Proporciona contexto suficiente para las strings declaradas
Considera agregar información del contexto, Ejemplo: 
<!-- The action for submitting a form. This text is on a button that can fit 30 chars -->
   
<string name="login_submit_button">Sign in</string>

  1. ¿Para qué sirve esta string?
  2. ¿Cuándo y donde se presenta al usuario?

Marcar las partes del mensaje que no deben traducirse

Para marcar el texto que no se debe traducir, usa una etiqueta de marcador de posición <xliff:g>. Esta es una etiqueta de ejemplo que garantiza que el texto “%1$s” no se modifique durante la traducción (de lo contrario, se podría romper el mensaje):

<string name="countdown">
     
<xliff:g id="time" example="5 days">%1$s</xliff:g> until holiday
</string>  
Cuando declares una etiqueta de marcador de posición, agrega siempre un atributo de ID que explique para qué sirve el marcador de posición. Si las apps reemplazan el valor del marcador de posición, asegúrate de proporcionar un atributo de ejemplo para aclarar el uso esperado.


Fuente:






Comentarios