Cuando creas una aplicación para Windows Phone, obviamente lo haces esperando que tenga tantas descargas como sea posible, eso si te has puesto a analizarlo, implica que tu aplicación debe poder “hablar” varios idiomas, no a todos nos gusta descargar una aplicación y que esté en inglés completamente.
Para poder lograr ese objetivo, debes hacer que tu aplicación tenga la posibilidad de localizarla, es decir, que pueda adaptarse al idioma que tu dispositivo tenga configurado como predeterminado, así simplemente al arrancar se adaptará a dicho lenguaje.
Para comenzar, crea un nuevo proyecto e incluye el siguiente código XAML en tu MainPage.
<button></button> |
El resultado de este código es una interfaz idéntica a esta imagen.
Después de la interfaz, crea una nueva carpeta que llamaremos Recursos, en esa carpeta, agrega un nuevo elemento de tipo Resources File, lo puedes nombrar como gustes, yo lo llamé AppResources mas por costumbre que por cualquier otra razón.
Crea tantos archivos .resx como desees, el primero es para el idioma preestablecido, los demás deberán tener un nombre diferente, checa la imagen para que veas mi ejemplo.
Como puedes ver el nombre del archivo debe ser el mismo, en eso debes ser cuidadoso, la gran diferencia es que después escribes un punto y el idioma que quieres utilizar. Para que sepas que tipo de idioma puedes considerar y mas importante, como escribir su contracción, puedes ver una tabla muy útil en este enlace.
Ya que tienes los archivos, ahí debes colocar todas las cadenas de texto que necesites, checa la siguiente imagen como referencia.
Hay tres datos que necesitas considerar aquí.
Name: Es el nombre distintivo que cada cadena tendrá en tu aplicación, no puede repetirse en el mismo archivo y además debes utilizar el mismo nombre para cada archivo de recursos.
Valor: No hay gran ciencia, es el valor que se desplegará en el control y propiedad asignados.
Comentario: Es una descripción que usarás para ubicar el elemento, este valor es opcional, si quieres omitirlo no afectará en nada.
Después, crea una nueva clase (también, por costumbre la incluyo en la misma carpeta de recursos, pero esto no es obligatorio). En el caso de este ejemplo la llamé ProveedorCadenas y solo la usaremos para crear una propiedad.
using Globalizacion_Phone.Recursos; namespace Globalizacion_Phone { public class ProveedorCadenas { private readonly AppResources recursos = new AppResources(); public AppResources Recursos { get { return recursos; } } } } |
Ahora, ve a tu App.xaml y modifica tu archivo para dejarlo de la siguiente forma.
Como puedes ver, solo debiste agregar una línea entre el tag de recursos, así como posiblemente un nuevo espacio de nombres para esa clase. Ahora vamos con el enlazado de datos. Por cierto, no debes memorizar e incluso ni siquiera escribir ninguno de estos enlaces de datos, puedes hacerlo por medio de las herramientas de asistencia que tanto Visual Studio como Blend tienen para esta funcionalidad. Para el texto del título, puedes hacerlo de la siguiente forma en Visual Studio.
Primero ubica la propiedad Text de tu control y presiona el cuadro que se encuentra a la derecha, selecciona Apply Data Binding.
Después en la pestaña Source, navega hasta llegar a la clase que colocaste como recurso en tu APP.xaml
Por último en la pestaña de Path, selecciona el texto que deseas asociar a tu propiedad.
De esta forma, podrás ya ver que la sentencia de enlazado de datos en tu línea ha sido creada. Repite el proceso en todos tus controles y el resultado de tu XAML será así.
<button></button> |
Ahora, solo debes cerrar temporalmente tu proyecto y abrir tus archivos por medio del explorador de Windows, para localizar al archivo .csproj y abrirlo (Sigo recomendándote como mejor opción para este tipo de tareas a Notepad++). Busca el tag de SupportedCultures y escribe ahí todos los idiomas que hayas incluido en tu aplicación.
Ahora, solo configura el lenguaje principal de tu aplicación, esto lo haces en las propiedades de tu proyecto.
Listo!!! Ahora ejecuta y prueba tu aplicación.
Si quieres cambiar el idioma, puedes hacerlo desde la configuración de tu teléfono (De hecho no necesitas volver a compilar tu aplicación, esta se adaptará automáticamente).
Si cambias de idioma, puedes ya ver las diferencias.
Puedes descargar el código fuente de esta aplicación aquí.