Empezando con Windows Phone 7.1 (y V) – Soportando varios idiomas

Uno de los primeros pasos que he realizado ha sido dotar a la aplicación de infraestructura necesaria para dar soporte a múltiples idiomas. Esto no significa que la aplicación salga inicialmente soportando varios idiomas, significa que, cuando haya que hacerlo, los cambios que tendré que llevar a cabo serán mínimos.

Imaginad que comenzáis creando una aplicación sin tener esto en cuenta. Cada uno de los literales que introduzcas en tu código (y no me limito únicamente a los que aparecen en la capa de presentación) estarán mejor o peor organizados, pero probablemente dispersos por todo tu código.

Cuando llegue el momento de dar soporte a varios idiomas, tendrás que empezar a buscar estos literales por toooodo tu código, sacarlos a ficheros de recursos y, una vez ahí, comenzar con el proceso de prueba /error hasta que estés seguro de que lo has contemplado todo. A partir de este punto, podrás comenzar a añadir más ficheros de rescursos que den soporte a diferentes idiomas.

Mi aproximación es diferente. He creado la infraestructura necesaria para dar este soporte desde el comienzo. Ahora lo que hay que contar es con la disciplina suficiente como, cada vez que necesites crear un nuevo literal, hacerlo en el fichero de recursos en vez de directamente en tu código.

Ficheros de Recursos en el Proyecto

Varios ficheros de recursos añadidos al Proyecto

A continuación he configurado el idioma neutral del proyecto para que sea el español (de España).

Idioma Neutral por defecto

Configuración del Idioma Neutral para que sea español (España)

Una cosa que me ha llamado la atención es la siguiente: Para indicar qué idiomas soporta la aplicación, es necesario editar el fichero .csproj para indicar dentro del tag <SupportedCultures/> qué idiomas soporta la aplicación. Este fichero tiene un formato XML, sin embargo, abrir el XML en vez del proyecto no es tarea fácil dentro de Visual Studio. Así que he abierto mi fichero con Notepad++ y he introducido dentro de dicho tag (de momento) sólo el español. He guardado, recargado el proyecto en Visual Studio y… Ya está, mi aplicación dice que soporta el español. Para el inglés queda un poquito (tendré que acordarme de separar los idiomas con puntos y comas).

SupportedCultures en el proyecto

Elemento <SupportedCultures/> en el proyecto

En relación a la inclusión de ficheros de recursos, la idea es buena, pero las prisas, el cansancio o la inexperiencia pueden hacer que olvides incluir literales en tus ficheros y sigas metiéndolos en código. ¿Qué hacer en este caso? Pues habrá que mirar Code Analysis. Eso haré y os tendré al tanto.