martes, 22 de enero de 2013

Como Internacionalizar el nombre de una aplicación en Windows Phone

 

Aquí un truco que aprendí y no es intuitivo a la hora de desarrollar una aplicación para Windows Phone.

Se trata de localizar el título de una aplicación en la pantalla de inicio o en la lista de aplicaciones, según el idioma del dispositivo.

 

  1. Como primer paso, crearemos una nueva aplicación de Windows Phone en Visual Studio 2010. Pondremos como nombre para la misma “Mi Aplicación”.
    1
  2. Al hacerlo, veremos una imagen como la siguiente.
    2
  3. A continuación debemos crear en la solución (o en una instancia nueva de VS2010) un proyecto nuevo.
    3
  4. En Other Languages, seleccionamos C++ > Win32 > Win32 Project, con el nombre EXACTO de AppResLib4
  5. En las opciones del Wizard, seleccionamos lo siguiente:
    5
  6. Creado el proyecto, procedemos a añadir un Recurso:6
  7. Al hacerlo, debemos abrir el recurso en el Solution Explorer, y en el Visor de Recursos añadir un nuevo elemento:
    7
  8. El tipo de elemento es String Table:
    8
  9. Luego, añadimos  2 registros con los siguientes datos, lo único modificable es la columna Caption, en donde incluiremos el titulo (en este caso en Inglés) de nuestra Aplicación.:9
  10. A continuación, abriremos las Opciones del proyecto de C++, y en Configuration Properties > Linker > Advanced cambiamos la opción de No Entry Point a YES:
    10
  11. Compilamos el proyecto de C++
    11
  12. Ahora, copiamos el archivo compilado desde la carpeta Debug del proyecto:
    12
  13. Lo pegamos en nuestra carpeta de proyecto Windows Phone.
    13
  14. Ahora será necesario agregar el archivo al proyecto, desde VS2010. Mostramos Todos los Archivos:
    15
  15. Incluímos el archivo AppResLib.dll
    16
  16. A continuación, reemplazamos en nuestro WMAppManifest (manifiesto de aplicación XML) de Windows Phone el nombre de la aplicación por una referencia a dicha DLL de esta forma (ver Title)
    17
  17. Si ejecutamos la aplicación en el Emulador, podremos ver el nombre en Inglés, en lugar del español.
    18
  18. Para añadir un segundo idioma, debemos volver a nuestro proyecto de C++, modificar la tabla de recursos (en este caso con los valores en Español)19
  19. Recompilamos el proyecto de C++.
    20
  20. Ahora, debemos renombrar la DLL generada según el código de lenguaje. En el caso del Español el archivo deberá llamarse EXACTAMENTE: AppResLib.dll.0c0a.mui
  21. Copiamos el archivo renombrado a nuestro proyecti de Windows Phone:
    21
  22. Lo incluímos en el proyecto (al igual que hicimos con la AppResLib original)
    22
  23. ESTA VEZ, DEBEMOS CAMBIAR el BUILD ACTION en las propiedades del archivo a CONTENT (Muy Importante!)
    24
  24. Ahora podemos recompilar y correr la aplicación en el Emulador. Desde Settings >Region+Language ponemos el mismo en Español y Reseteamos el emulador.
    23
  25. Al reiniciar, el título de nuestra app en la lista será en español y no en inglés. Esto funciona para todos los lenguajes soportados por Windows Phone.
    25

La lista completa de códigos de lenguaje y el artículo original se encuentran en: http://msdn.microsoft.com/en-us/library/ff967550(v=VS.92).aspx

No hay comentarios:

Publicar un comentario