asp.net MVC: localización

Tengo mi idioma de destino en la sesión ["lang"], que es "en" o "it". He añadido esto al Site.master:

<script runat="server">
  void Page_Load(object sender, EventArgs e) {
    string lang = Session["lang"].ToString();
    System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.CreateSpecificCulture(lang);
    System.Threading.Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.CreateSpecificCulture(lang);
  }
</script>

Entonces me gustaría invocar una cadena de recursos como esta:

<asp:Label ID="Label1" runat="server" Text="<%$ Resources:Global, test %>"></asp:Label>

Tengo dos archivos en App_GlobalResources, llamados Global.resx y Global.en.resx.

El problema es que no importa lo que esté en la variable lang, siempre obtengo los resultados del Global.resx principal, y nunca obtengo la versión en inglés de Global.en.resx

Estoy haciendo esto mal por completo?

Intenté poner la parte System.Threading ... en el método Application_PreRequestHandlerExecute en Global.asax.cs pero el resultado fue el mismo.

Gracias

PD: estoy preguntando sobre una manera de hacer que esto funcione de una manera simple. Si tuviera que usar la manera complicada, seguiría con esto:http://helios.ca/2009/05/27/aspnet-mvc-and-localization/

Respuestas a la pregunta(2)

Su respuesta a la pregunta