Si estás planificando en hacer una aplicación en Android o ya la estás desarrollando y quieres tenerla en varios idiomas, pues a continuación te voy a explicar los pasos que deberás de seguir para hacerlo de manera estructurada y organizadacon el fin de facilitar el trabajo de mantenimiento o incluso de quién la tenga que traducir.

1. Definir los ficheros de recursos para cada idioma, para ello tendremos pulsar con el botón derecho encima de values, después ir a New y luego Values Resource File

Hecho esto,  se nos abrirá una ventana donde tendremos que rellenar el campo File name con “string“.

Después en Available qualifiers deberemos de buscar el qualifier llamado “Locale” y luego deberemos escoger el idioma que querramos que se identifique este recurso, en este caso, el francés. 

 Una vez dado al “OK” se te habrá creado un nuevo recurso XML. Tendrás que repetir este paso para cada idioma que necesitas y luego tendrás que copiar.

2. Definir muy bien los names de los Strings.

Cada string ha de tener un name que represente muy bien ese texto, si pertenece exclusivamente a una activity o frame, pues incluir el nombre de esa activity o frame para contextualizar el string.  También es recomendable agrupar los strings para su mantenimiento. 

<resources>
<!-- Main Menu -->
<string name="menu_promotions">Promociones</string> <string name="menu_loyaltyCards">Tarjetas de Fidelización</string> <string name="menu_shops">Comercios</string> <string name="menu_requests">Peticiones</string> <string name="menu_notifications">Notificaciones</string> <!-- Account Screen --> <string name="account_username">Nombre de usuario:</string> <string name="account_email">Correo electrónico:</string> <string name="account_activitySumary">Resumen de Actividad</string> <string name="account_companiesFollowing">Comercios que sigues</string> <string name="account_totalCouponsTraded">Cupones canjeados</string> <string name="account_totalLoyaltyCardsCompleted">Tarjetas canjeadas</string>
</resources>

 Si quieres escribir un texto que esté acompañado de un parámetro dinámico deberás usar una cadena de caracteres que viene definida según el tipo de variable del parámetro:  %i$x, donde la i indica el número de parámetro que hace referencia y la x hace referencia al tipo de parámetro. Aquí te dejo algunos ejemplos de parámetros:

 

  • %2$s      Hace referencia al segundo parámetro y es un String.
  • %3$d     Hace referencia al tercer parámetro y es un Integer.
  • %1$.2f   Hace referencia al primer parámetro y es un Float con dos caracteres decimales.
<string name="minutos">%1$d minutos</string>

 3. Usar los recursos Strings en el código.

En java, si estamos en una activity o en fragment podrás hacerlo de la siguiente manera:  

String example = getResources().getString(R.string.example); 
String exampleWithParameters = getResources().getString(R.string.example, param1, param2...);

Espero que este artículo te sirva para hacer multiidioma tu proyecto Android. Cualquier duda o aporte que quieras hacer, puedes dejarlo en los comentarios.

 

¡Hasta la próxima!

 

David

 

0 Comments

Submit a Comment

Your email address will not be published. Required fields are marked *