Hola mcEmmanuel,
Muchas gracias por el link. Me llevó a éste otro que acabé de entender mejor:
http://msdn2.microsoft.com/en-US/library/bz9tc508.aspx
Bien. Pues el problema radica en el evento que ejecuto el cambio de cultura. como lo hacia en el Page_Load, resulta que en ese punto ya se ha ejecutado el método "InitializeCulture()", que forma parte de la clase Page, y se ejecuta antes que el Page_Load, ya que es donde se define la cultura para poder trabajar ya con los valores correctos para la cultura especificada.
Así pues, sólo hay que sobreescribir el método con nuestro código, y entonces si, lee los textos del Fichero de Recursos que corresponda.
Les dejo mi código. Lo manejo a través de una variable de sesion:
Código:
Protected Overrides Sub InitializeCulture()
Dim IdiomaActual As String
Select Case Session("Idioma")
Case "ENG"
IdiomaActual = "en-GB"
Case "FRA"
IdiomaActual = "fr-FR"
Case Else
Session("Idioma") = "ESP"
IdiomaActual = "es-ES"
End Select
UICulture = IdiomaActual
Culture = IdiomaActual
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(IdiomaActual)
Thread.CurrentThread.CurrentUICulture = New CultureInfo(IdiomaActual)
MyBase.InitializeCulture()
End Sub
Espero que les sirva!
Y gracias una vez más mcEmmanuel!