ATENCIÓN: este contenido tiene más de 2 años de antigüedad y, debido a su temática, podría contener información desactualizada o inexacta en la actualidad.
Una necesidad muy habitual en la de crear aplicaciones web multi-idioma. Es decir, aplicaciones web que se adapten a las preferencias de idioma de cada usuario que la visita. Dicha adaptación puede ser automática, sin que el usuario tenga que hacer nada, o voluntaria, cuando el usuario puede elegir su idioma de preferencia desde la propia interfaz de la aplicación.
Curiosamente, en ASP.NET la parte fácil es la automática, ya que solo hay que crear los recursos para cada idioma disponible en la aplicación (carpetas App_LocalResources y App_GlobalResources y los archivos .resx para cada idioma). Luego, gracias a las características de localización automática de .NET, con un simple ajuste en web.config podemos hacer que la aplicación se adapte automáticamente al idioma del navegador de cada usuario (con el nodo <globalization> de web.config).
Sin embargo, ¿qué pasa si queremos que los usuarios puedan elegir el idioma con el que deseen usar la aplicación? Por ejemplo, eligiéndolo desde una lista desplegable o pulsando en una banderita. En ese caso no se trata de una tarea tan fácil como pudiera parecer a simple vista.
Dado que conseguirlo requiere una explicación bastante amplia y existen detalles importantes que conviene ver con calma, a continuación encontrarás un vídeo práctico en el que explico muy detalladamente cómo conseguirlo de dos formas diferentes:
- Para una página concreta, sobrescribiendo el método InitializeCulture de la misma. En ese caso se da la complicación añadida de que no es posible leer los valores de los controles, puesto que todavía no se han inicializado en esa fase del ciclo de vida de la página. Así que no queda más remedio que “hackear” un poco el sistema de eventos de lado servidor de ASP.NET para averiguar la información que necesitamos. Está todo explicado.
- Para la aplicación completa: en este caso el enfoque es totalmente distinto y utilizaremos cookies para establecer las preferencias de idioma posteriormente desde el evento Application_BeginRequest.
Este vídeo está extraído de mi curso de desarrollo web con ASP.NET Web Forms, el cual incluye también el ejemplo completo para descarga.
Fecha de publicación: