[Tips and Tricks] Windows Phone: Localizando el título de la App

Problema

Hace poco vimos como realizar la localización de aplicaciones en Windows Phone 8 y aunque cubríamos practicamente toda la aplicación, se nos escapaba un pequeño gran detalle… el título. El título de la aplicación aparece en el listado de aplicaciones e incluso en live tile de la misma. Os podéis imaginar que aunque es un leve detalle, a un usuario americano le puede provocar rechazo el abrir una aplicación con título español por ejemplo. Y dado que nos hemos esforzado en localizar la aplicación completa no vamos a perder posibles usuarios por esto, ¿verdad?.

Solución

La solución es sencilla. Debemos crear una librería en Visual C++. Eh!, tranquilos, seguid leyendo he dicho que era sencilla.

NOTA: Para el ejemplo descrito a continuación hemos tomado como base el ejemplo de localización de aplicaciones en Windows Phone 8 utilizado en el siguiente artículo.

Vamos a añadir un nuevo proyecto Win32 de Visual C++ a nuestra solución. Hacemos clic derecho sobre la solución y hacemos clic sobre la opción Nuevo proyecto. Se nos abrirá un popup donde elegir el tipo de proyecto. Seleccionamos la opción Visual C++, Win32 y dentro la plantilla Win32 Project:

AppResLib

AppResLib

Creamos el proyecto llamándolo AppRestLib. Nos aparecerá el asistente de creación de aplicaciones Win32:

Win32 Application Wizard

Win32 Application Wizard

Pulsamos Next y en el segundo paso seleccionamos el tipo de aplicación, DLL y marcamos la opción  Empty Project de las opciones extras. Pulsamos Finish para terminar y ya tenemos nuestra casi librería preparada.

Hacemos clic derecho sobre el proyecto para editar sus propiedades. Seleccionaremos la opción Linker del menu lateral izquierdo, y dentro de el la opción Advanced. Modificamos el valor de la opción No Entry point al valor YES (/NOENTRY):

No Entry Point

No Entry Point

Con estos cambios dejamos nuestro proyecto preparado para ser un proyecto de recursos. Si, de recursos, no hace falta añadir líneas de código, ¿no os dije que era fácil?.

Si nuestro proyecto es un proyecto de recursos, vamos a añadir un nuevo recurso. Clic derecho sobre el proyecto y elegimos la opción Añadir nuevo recurso:

String Table

String Table

Elegimos el tipo String Table y pulsamos el botón New.

Archivo de recursos

Archivo de recursos

Todo listo!. Compilamos nuestro proyecto Visual C++ y nos dirigimos a la carpeta bin donde tendremos nuestra librería compilada. La copiaremos y pegaremos en el directorio del proyecto Windows Phone 8. Esta librería se usará para asignar el título de la aplicación por defecto.

Debemos repetir el proceso para crear la librería en el conjunto de idiomas soportados por nuestra aplicación (en nuestro ejemplo, Español e Inglés). Procedemos a crear la librería en español. Sólo debemos modificar el Caption del recurso y volver a generar. Al generar debemos asignar un nombre “especial” según la cultura. En español sería AppResLib.dll.0c0a.mui (si extensión incluida).

NOTA: En el enlace que encontraréis al final del artículo podéis consultar una lista detallada de nombres según cultura.

Ya tenemos las librerías preparadas que contienen los recursos utilizados para traducir el título de la aplicación. Las copiamos al proyecto de Windows Phone y modificamos la propiedad Build Action de cada fichero a Content.

A continuación, modificaremos el archivo de manifiesto indicandole que el título de la aplicación debe tomarlo del archivo de recursos de la librería.

Abrimos el archivo de manifiesto, WMAppManifiest.xml, con el editor XML. Dentro del XML modificamos el título:

<App xmlns="" ProductID="{f72fb9df-19b3-47a7-b96c-3fb7d7fad71d}" Title="@AppResLib.dll,-100" RuntimeType="Silverlight" Version="1.0.0.0" Genre="apps.normal" Author="Ejemplo_Localizacion author" Description="Sample description" Publisher="Ejemplo_Localizacion" PublisherID="{cd6a4280-3a3a-4f7b-b4fd-dfdb9f62389f}">
WMAppManifiest.xml

WMAppManifiest.xml

El valor del título lo pillara del recurso con Value 100. Si ejecutamos nuestra aplicación con el sistema en inglés, en nuestro ejemplo, mostrará de título “My Application” mientras que si lo hacemos en español mostrará “Mi Aplicación”.

El proceso como véis aunque parezca laborioso no es complicado. Además tened en cuenta que puede aumentar considerablemente el número de posibles usuarios de vuestra aplicación. Los que tengáis vuestra aplicación en varios idiomas podéis tener pereza ante la repetición de elaborar las librerías. Eso mismo penso Patrick Getzmann desarrollando una herramienta para simplificar el proceso:

WP7Localizer

WP7Localizer

Podéis descargar la herramienta desde el siguiente enlace.

También podéis descargar el ejemplo realizado a continuación:

Recordar que si os surgen dudas o sugerencias podéis dejarlas en los comentarios de la entrada.

Keep Pushing!

Más información

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