Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Para indicarle a ASP.NET dnde se quiere que vayan las cadenas de los
ficheros de recursos se utiliza la forma <%
$Resources:nombre_del_recurso%>. De esta forma, en tiempo de
ejecucin, esas variables sern sustituidas por el valor
correspondiente del fichero de recursos del idioma en el que se
encuentre. El siguiente paso ser indicarle al motor el idioma que
debe utilizar para las cadenas de texto.
****SUBLADILLO: El evento Initialize_Culture
El evento Initialize_Culture() es el encargado de indicarle al motor
de ASP.NET el idioma y la cultura en la que se deben renderizar las
cadenas de texto. En nuestro ejemplo, en el evento Initialize_Culture
realizamos las siguientes tareas (ver Listado 2):
Comprobamos si se ha recibido el parmetro lan por la lnea
del explorador.
En caso afirmativo, establecemos la cultura del thread actual y
la de presentacin al cdigo que se pasa. Guardamos el cdigo en
una variable de sesin para que se utilice en otras pginas.
En caso negativo, comprobamos si tenemos el idioma en sesin, si
no, utilizamos el espaol e inicializamos las referencias
culturales.
****LISTADO: Inicializar el idioma y la cultura
protected override void InitializeCulture()
{
try
{
string idioma = Request.Params["lan"].ToString();
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture(idioma);
Thread.CurrentThread.CurrentUICulture =
new CultureInfo(idioma);
Session.Add("idioma", idioma);
}
catch
{
if (Session["idioma"] == null)
Session.Add("idioma", "es");
string idioma = Session["idioma"].ToString();
Thread.CurrentThread.CurrentCulture =
CultureInfo.CreateSpecificCulture(idioma);
Thread.CurrentThread.CurrentUICulture =
new CultureInfo(idioma);
}
base.InitializeCulture();
}
Este evento se debe incluir en todas las pginas que vayan a utilizar
referencias culturas. Normalmente, este evento se suele codificar en
una pgina padre de la que heredan las hijas, de forma que no se tenga
que repetir en todas.
****SUBLADILLO: Cambio manual del idioma
En la pgina maestra se encuentran los controles para realizar el
cambio manual de idioma (ver Figura 3). Se han incluido tres
hyperlinks con la imagen de las banderas de cada idioma. En el evento
Page_Load() de la pgina maestra se inicializa la propiedad
Navigate_Url() de los enlaces para que apunten a la pgina actual y le
aadan el parmetro lan con la referencia cultural:
****CODIGO:
this.lnkEs.NavigateUrl = this.Page.AppRelativeVirtualPath + "?lan=es";
this.lnkEn.NavigateUrl = this.Page.AppRelativeVirtualPath + "?lan=en";
this.lnkPt.NavigateUrl = this.Page.AppRelativeVirtualPath + "?lan=pt";
this.lblMensaje.Text =
this.GetLocalResourceObject("lblMasLetras").ToString();