jueves, 4 de noviembre de 2010

Culturización de Sitio Web

Si tienes algún web que utiliza los archivos de recursos locales para mostrar la interfaz en varios idiomas, esta entrada te puede ser de utilidad.

Normalmente este tipo de sitios lo que hacen es tomar la configuración de idioma predeterminados en el navegador, pero puede ser que el usuario desee mostrar otro idioma de los que se tienen disponibles. Para hacer esto basta con hacer que nuestro sitio agregué en el QueryString (mediante algún link u otro control semejante) el CultureName que deseamos utilizar y sobrescribir el método InitializeCulture como se muestra a continuación:
De esa manera, el sistema cargara el idioma Inglés como predeterminado, a menos que en el parámetro lang se indique otra cosa.
protected override void InitializeCulture()
{
   string Lang = "en-US";

   try
   {
      Lang = Request.QueryString["lang"].ToString();
      Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(Lang);
      Thread.CurrentThread.CurrentUICulture = new CultureInfo(Lang);
   }
   catch { }

   base.InitializeCulture();
}