Hola a todos,
Necesito crear un sitio web en ASP.NET 2.0 que soporte varios idiomas y lo estoy intentando mendiante la utilizacion de recursos locales.
Tengo la siguiente estructura:
MyApp
- App_LocalResources
- Default.aspx.en.resx</li>
- Default.aspx.es-ES.resx</li>
- Default.aspx.resx</li>
</li> - Default.aspx</li>
Y por defecto mi aplicación está en inglés:
<%@ Page Language="VB" ... Culture="en" meta:resourcekey="PageResource1" UICulture="en" %>Supongamos que mi aplicación solo tiene un label que muestra un mensaje de bienvenida y un linkButton que cuando se haga click en él
cambie el idioma de la aplicacion al Español:
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" meta:resourcekey="Label1">
</asp:Label>
<br />
<br />
<asp:LinkButton ID="lnk" runat="server" meta:resourcekey="lnk"></asp:LinkButton>
</div>
</form> Protected Sub lnk_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lnk.Click
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("es-ES")
Thread.CurrentThread.CurrentUICulture = New CultureInfo("es-ES")
MyBase.InitializeCulture()
End SubCuando se carga la página, no hay ningún problema, se muestra en Ingles, pero cuando se pulsa el link, la página no se carga en Español, solo si añado lo siguiente en el evento lnk_Click:
Label1.Text = GetLocalResourceObject("Label1.Text").ToString()
lnk.Text = GetLocalResourceObject("lnk.Text").ToString()¿Es realmente necesario recuperar los valores de los recursos mediante programación?
¿No es suficiente añadiendo el atributo
meta:resourcekey="Label1"?
Bueno, espero que alguien me pueda echar una mano, porque llevo más de 2 días navegando por los foros y distintos artículos y no he conseguido resolver esta duda
Muchas gracias de antemano