[Windows Phone 8] Localización de Aplicaciones

LocalizacionIntroducción

Cuando desarrollamos nuestras aplicaciones, un factor importante a tener en cuenta es el público objetivo de la misma. Analizando este punto debemos determinar si distribuimos nuestra aplicación a nivel nacional, en multiples países o a nivel mundial. Si decidimos la última opción debemos de tener en cuenta que aunque las probabilidades de llegar a una mayor cantidad de público aumentan considerablemente, no todo el mundo habla español por lo que seguimos restringidos.

¿Qué podemos hacer?

En Windows Phone 7 podíamos localizar las aplicaciones a múltiples idiomas. En Windows Phone además de aumentar el número de idiomas disponibles tenemos la posibilidad de localizar las aplicaciones con mayor facilidad aún si cabe.

En esta entrada vamos a realizar los pasos necesarios para localizar una aplicación Windows Phone 8, ¿te apuntas?

Comenzamos!

Comenzaremos como siempre, crearemos un ejemplo práctico:

Windows Phone Application

La plantilla seleccionada será “Windows Phone Application” para simplificar al máximo el ejemplo.

Si nos fijamos en el explorador de soluciones veremos que el proyecto creado cuenta con una carpeta Resources que contiene un fichero llamado AppResources.resx.

Localizando aplicaciones

Hacemos doble clic sobre el fichero:

Editor de recursos

Editor de recursos

Se nos abre el editor de recursos mostrándonos ya una serie de valores ya registrados en formato clave/valor. Desde nuestra aplicación accederemos el valor registrado (Value) mediante la clave (Name). El archivo abierto contiene los recursos necesarios para el idioma neutro de la aplicación, inglés de Estados Unidos. Para los sucesivos idiomas que soporte la aplicación crearemos diferentes archivos de recursos con las mismas claves y los valores traducidos al idioma correspondiente.

Antes de crear esos archivos debemos tener definidos los idiomas a los que se traducirá nuestra aplicación. Definimos esta configuración en el manifiesto. Abrimos la carpeta Properties del proyecto y hacemos doble clic sobre el archivo WMAppManifiest.xml. Se nos abrirá el editor del archivo de manifiesto organizado en múltiples pestañas. Elegimos la última de ellas, Packaging:

Idiomas soportados

Idiomas soportados

En nuestro ejemplo hemos seleccionado las opciones English y Spanish. A la hora de seleccionar el idioma hay que tener en cuenta que si elegimos idiomas específicos, por ejemplo, Spanish (Argentina) si se ejecuta en España, Spanish (Spain) no accedería al recurso y no se traduciría la aplicación. Para casos en los cuales la tradución sea igual, es recomendable elegir idiomas genéricos.

Debemos marcar en el proyecto también la lista de idiomas que soportará la aplicación. Hacemos clic derecho sobre el proyecto y seleccionamos la opción Properties:

Propiedades del proyecto

Propiedades del proyecto

Ya hemos marcado los idiomas que soportará nuestra aplicación (en nuestro ejemplo Español e Inglés). Como ya mencionamos tendremos un fichero de recursos por cada idioma soportado. El fichero se llamará AppResources.{Cultura}.resx donde {Cultura} es la cultura del idioma. Cada archivo de recursos debe tener el nombre correcto según la cultura e idioma como se describe en la documentación: Culture and language support for Windows Phone.

Por ejemplo:

  • Para el idioma español el archivo se llamará AppResources.es-ES.resx.
  • Para el idioma alemán el archivo se llamará AppResources.de-DE.resx.

Creamos por lo tantos un fichero adicional en nuestor proyecto llamado AppResources.es-ES.resx donde traduciremos los valores del archivo de recursos al español.

Acceso a los recursos

Ya tenemos todo lo necesario para que nuestra aplicación soporte múltiples idiomas:

  • Hemos establecido en las propiedades del proyecto y en el archivo de manifiesto los idiomas soportados asi como cual será el idioma por defecto.
  • Contamos con un archivo de recursos por idioma.

A continuación, desde el XAML de la aplicación vamos a acceder a los textos que hemos registrado en los archivos de recursos pero… ¿Cómo?

Tranquilos, de nuevo, lo tenemos fácil. Si os fijáis de nuevo en el explorador de soluciones en el contenido del proyecto veréis una clase llamada LocalizedStrings. Esta clase ya está preparada para exponer una propiedad llamada LocalizedResources que devuelve la instancia del archivo de recursos correspondiente según la cultura establecida.

De hecho, si abrimos el archivo App.xaml veremos que la clase está incluida como recurso de la aplicación:

<Application.Resources>
     <local:LocalizedStrings xmlns:local="clr-namespace:Ejemplo_Localizacion" x:Key="LocalizedStrings"/>
</Application.Resources>

Por lo que acceder a un texto del archivo de recursos para asignarlo como contenido de un botón sería tan fácil como:

<Button Content="{Binding Path=LocalizedResources.BtnContent, Source={StaticResource LocalizedStrings}}"/>

Hemos hecho binding al valor del registro indicado por la clave Btn usando la propiedad LocalizedResources. Como Source hemos indicado al recurso LocalizedStrings.

Si ejecutamos la aplicación veremos algo como lo siguiente:

Ejemplo Localizacion 01

El emulador por defecto está en inglés. Si salimos de la aplicación y en la configuración del emulador cambiamos el idioma a español, tras reiniciar y arrancar la aplicación debemos ver algo como lo siguiente:

Ejemplo Localizacion 02

Puedes descargar el ejemplo realizado a continuación:

Como hemos podido analizar la localización de aplicaciones en Windows Phone 8 es sumamente sencillo ya que las plantillas failitadas por defecto vienen preparadas para tal efecto. El esfuerzo radica en la traducción en si de los textos de los distintos archivos de recursos por idioma sin perder tiempo en la infraestructura para realizar la acción. Recordar que si os surgen dudas o sugerencias podéis dejarlas en los comentarios de la entrada.

Keep Pushing!

Más información

4 pensamientos en “[Windows Phone 8] Localización de Aplicaciones

  1. Pingback: [Tips and Tricks] Windows Phone: Localizando el título de la App | Javier Suárez Ruiz | Blog

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s