Cómo localizar una aplicación de Android

La localización es más que traducir las cadenas de su aplicación a otros idiomas. También implica mostrar datos, como fechas y horas, en el formato correcto para sus usuarios. Incluso si solo desea una versión en inglés de su aplicación, es bueno saber lo que implica la localización. De esa manera, estará preparado si decide agregar soporte para configuraciones regionales adicionales, y no tendrá que buscar cadenas y valores en todo el código base de su aplicación.

Con el SDK de Android, el idioma de las cadenas localizadas y el formato utilizado para mostrar los valores dependen de la configuración regional del dispositivo. Los entornos regionales son una combinación de idioma y país. El idioma está definido por el ISO 639-1 estándar mientras que el país está definido por el ISO 3166-1 la norma. Esto significa que la configuración regional de Android es compatible con la cultura o configuración regional utilizada por la mayoría de los otros lenguajes de programación y marcos.

La única configuración regional garantizada para estar presente en todos los dispositivos Android es inglés como se habla en el Estados Unidos. Está representado por el en_US código, con fr siendo el código de idioma para inglés y nosotros siendo el código de país de los Estados Unidos. También puede utilizar el fr solo código de idioma como un lugar para representar a todos los países y regiones de habla inglesa.

Para localizar una aplicación para un idioma o para un país e idioma específicos, debe incluir los recursos para ese idioma en el / res carpeta de su aplicación. Esto generalmente incluye recursos de cadena en el / res / valores carpeta, pero también puede incluir otros tipos de recursos, como imágenes y diseños. El SDK de Android identifica los diversos recursos alternativos con calificadores de configuración, que luego se utilizan para nombrar la carpeta que contiene esos recursos. El calificador de configuración para la configuración regional es el código de idioma, seguido opcionalmente por el código de país. Por lo tanto, los recursos de cadena localizados para su aplicación deben estar en el /res / valores- o /res / valores- -r dosier.

Debe tener en cuenta que los recursos identificados con un calificador de configuración para una ubicación específica tienen prioridad sobre la mayoría de los demás recursos. Otros calificadores de configuración comunes para recursos de menor prioridad incluyen el tamaño de la pantalla y la densidad de píxeles de la pantalla para describir diferentes diseños según el tamaño de la pantalla. Solo los recursos identificados con un calificador de configuración de código de país móvil (MCC) tienen una prioridad más alta que los recursos de cadena identificados con un calificador de configuración local. El código de país móvil se utiliza para definir los recursos de un país, que opcionalmente puede ir seguido del código de red móvil (MNC) de una tarjeta SIM para apuntar a un operador móvil específico en ese país. Se utiliza para proporcionar contenido específico de un país, como un contrato o una política de privacidad.

1. Localización de canales

Cada aplicación de Android debe tener todos los recursos de su canal en el /res/values/strings.xml bajar ó dejar algo. Esto permite la reutilización de cadenas en su aplicación incluso si no se requiere localización. Además, si no hay ningún archivo disponible para la configuración regional actual del dispositivo, se utiliza el archivo. Si no tiene uno y su aplicación intenta acceder a un recurso de cadena que solo está disponible en un strings.xml específico de la configuración regional, su aplicación se bloqueará sin previo aviso, ya que los recursos se cargan en tiempo de ejecución y no durante la compilación.

En relación :  Proteja sus secretos más oscuros con una caja de almacenamiento biométrica inteligente

A strings.xml el archivo específico de la configuración regional no necesita tener todos los recursos de cadena en el /res/values/strings.xml bajar ó dejar algo. Esto significa que si no es necesario ubicar un recurso, como el nombre de su aplicación, no es necesario que lo incluya en cada archivo de cadena.

En el momento de la ejecución, el /res / valores- -r /strings.xml se comprueba el archivo de la configuración regional del dispositivo seguido de / res / values- /strings.xml archivo solo para idioma. Si la cadena especificada no está disponible en estos archivos, la aplicación vuelve a la / res / values ​​/ strings.xml.

Por ejemplo, si desea localizar su aplicación para todas las regiones y países de habla francesa sin apuntar a uno en particular, coloque las cadenas de la aplicación en el / res / valores-en /strings.xml bajar ó dejar algo. Sin embargo, si desea localizar algunas cadenas con una ortografía específica del francés como se escribe en Francia, debe ponerlas en el /res/values-fr-rFr/strings.xml bajar ó dejar algo. Asegúrate de agregar el r antes del código de país en el nombre de la carpeta o no se encontrará en el tiempo de ejecución cuando se ubique la aplicación.

He aquí un ejemplo de / res / valores /strings.xml archivo con algunos recursos de cadenas en inglés:

Y aqui hay un / res / valores-fr /strings.xml archivo con los mismos recursos en francés:

Localizar cadenas en presentaciones

Las cadenas de sus diseños deben ser recursos de cadena. De hecho, se muestra una advertencia de pelusa si un canal está codificado. Puede usar recursos en cualquier lugar donde defina cadenas en diseños. Los recursos de cadena se identifican mediante @string/ seguido del nombre del recurso strings.xml bajar ó dejar algo. La siguiente tabla muestra la hello_world cadena del ejemplo anterior en un TextView dependiendo de la configuración regional del dispositivo:

Muestra “¡Hola mundo!” en un dispositivo Android configurado con la configuración regional, incluido el idioma francés. Para todas las demás configuraciones regionales, el mensaje “¡Hola, mundo!” se muestra el canal.

Ubicando cadenas en el código

También necesitará localizar las cadenas en su código si está creando o modificando controles fuera de sus diseños. Para localizar estas cadenas, primero debe obtener el
android.content.res.Resources objeto que contiene todos los recursos del paquete de la aplicación para el contexto actual. Entonces llama al getString en este objeto, pasando el identificador de la cadena a mostrar. Por ejemplo, el siguiente bloque de código le muestra cómo definir el texto de un TextView objeto:

Cadenas más complejas, con uno o más componentes variables, debe utilizar cadenas de formato. Las cadenas de formato le permiten especificar los valores de los parámetros que se mostrarán. Los parámetros de cadena de formato se identifican mediante especificadores de formato. El especificador de formato más utilizado es %s, que representa una cadena. De hecho, todas las cadenas de formato en el java.util.Formatter clase están disponibles. Además, si se requiere más de un parámetro, debe numerar sus especificadores de formato. Para los especificadores de formato de cadena, el primero debe ser %1$s, la segunda %2$setc.

Una vez que se especifican las cadenas de formato, utiliza el String.format método para pasar los parámetros para mostrar a su cadena. A continuación, se explica cómo definir el texto que se mostrará en un TextView con el hello_world_name cadena de formato strings.xml bajar ó dejar algo. Esta cadena de formato incluye un especificador de formato para el nombre del usuario:

Esto muestra el mensaje “¡Hola Bob!” cadena para un dispositivo Android cuya configuración regional incluye el idioma francés. Para todas las demás configuraciones regionales, el mensaje “¡Hola, Bob!” se muestra el canal.

2. Ubicación de fechas y horas

Si las cadenas de su aplicación ya están localizadas, su aplicación ya está en bastante buena forma. Sin embargo, es posible que deba mostrar las fechas y horas al usuario en muchos casos. Estas fechas y horas también deben adaptarse a la configuración regional actual del dispositivo. Afortunadamente, el SDK de Android incluye clases que dan formato a fechas y horas según la configuración regional.

En el SDK de Android, las fechas y horas las administra el Date clase de la java.util espacio de nombres. La fecha y hora actuales del dispositivo son devueltas por el java.util.Calendar.

Ubicación de fechas

Las fechas se pueden formatear utilizando una instancia de DateFormat entrenador de java.text espacio de nombres. Debes usar el DateFormat Clase de SDK de Android en el android.text.format espacio de nombres para obtener el formateador correcto para la configuración regional del dispositivo. El siguiente fragmento de código muestra cómo obtener una cadena con la fecha actual formateada para la configuración regional del dispositivo:

Si el idioma actual del dispositivo es el inglés que se habla en los Estados Unidos, la cadena contendrá la fecha actual en un formato de fecha corto, 30/11/2014. los DateFormat la clase incluye algunos otros formatos de fecha. Por ejemplo, el getLongDateFormat el método devuelve un formato de fecha larga, Domingo, 30 de noviembre de 2014.

Ubicación del tiempo

Dado que los tiempos están representados por Date objetos por el SDK de Android, también deben mostrarse utilizando un formateador devuelto por el DateFormat clase de la android.text.format espacio de nombres. los getTimeFormat devuelve un formato que solo muestra la hora de un Date objeto. El siguiente fragmento de código muestra cómo obtener una cadena con la hora actual formateada para la configuración regional del dispositivo:

Si la configuración regional actual del dispositivo es el inglés que se habla en los Estados Unidos, la cadena contendrá la hora actual en el siguiente formato: 20 h 15.

Conclusión

Es importante ubicar solo las cadenas utilizadas en la interfaz de usuario de la aplicación. Por ejemplo, no es necesario ubicar mensajes de depuración que solo se utilizan durante el desarrollo o con fines de diagnóstico. También tenga en cuenta que no debe escribir fechas y horas localizadas en el disco o en una base de datos. No solo puede cambiar la configuración regional de un dispositivo, el uso de fechas y horas localizadas hace que el desarrollo sea innecesariamente difícil y complejo.

Moyens Staff
El personal de Moyens I/O lo ha motivado, brindándole consejos sobre tecnología, desarrollo personal, estilo de vida y estrategias que lo ayudarán.