我的本地资源文件中的内容似乎是缓存的

时间:2013-05-16 18:32:23

标签: asp.net localization webforms asp.net-4.5

我有一个网页,我使用App_LocalResources文件,我翻译了2种语言。

这非常有效。但是,当我打开两页时,我遇到了一个非常奇怪的问题。如果我打开英文版,我的丹麦语网址也是英文版。如果我首先打开丹麦语网址,那么英语网址是丹麦语。如果我按CTRL + F5,它会改变语言。

您可以在此处查看结果:

这真的很烦人,因为它应该立即加载适当的语言。

我在butbtc.aspx页面上的代码是(我也尝试过Page_Load):

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    SetupLanguage();

}

我的SetupLanguage方法是:

private void SetupLanguage()
    {
        if (!string.IsNullOrEmpty(CurrentLanguage))
        {
            if (CurrentLanguage == "da")
            {
                CultureInfo dkinfo = CultureInfo.CreateSpecificCulture("da-dk");
                CultureInfo.DefaultThreadCurrentCulture = dkinfo;
                CultureInfo.DefaultThreadCurrentUICulture = dkinfo;
                Thread.CurrentThread.CurrentCulture = dkinfo;
                Thread.CurrentThread.CurrentUICulture = dkinfo;

                Page.Title = GetLocalResourceObject("PageTitleString").ToString();
                return;
            }
        }
        CultureInfo info = CultureInfo.CreateSpecificCulture("en-us");
        CultureInfo.DefaultThreadCurrentCulture = info;
        CultureInfo.DefaultThreadCurrentUICulture = info;
        Thread.CurrentThread.CurrentCulture = info;
        Thread.CurrentThread.CurrentUICulture = info;

    }

我的CurrentLanguage属性定义如下:

 public string CurrentLanguage
    {
        get
        {
            var toolValue = Page.RouteData.Values["language"];
            if (toolValue != null && !string.IsNullOrEmpty(toolValue.ToString()))
            {
                return toolValue.ToString();
            }
            return string.Empty;
        }
    }

如果我的路线有任何意义,那就是:

  routes.MapPageRoute("Buy Bitcoins",
                        "buybtc/{language}",
                        "~/buybtc.aspx");

1 个答案:

答案 0 :(得分:2)

您需要覆盖InitializeCulture,例如:

protected override void InitializeCulture()
{
    SetupLanguage();
    base.InitializeCulture();
}

这是在页面生命周期的早期调用的。也可以看看: http://msdn.microsoft.com/en-us/library/bz9tc508.aspx