我正在尝试制作多语言 ASP.NET Web 应用程序。在应用程序开始时,我正在设置 cookie,然后我调用 InitializeCulture() 来启动文化。页面的数据存储在全局资源中,并写入 aspx 文件,如下所示:<%$ Resources:Main,lang %>
它实际上可以工作,但仍然存在一个问题:单击语言更改按钮后,coockie 和文化会发生变化,但页面内容不会发生变化。我总是要重新加载整个页面才能获得正确的内容global.resx
。
在 PageLoad 我调用这个:
setLanguageCookie(); //<- TO SET A COOKIE IF NULL
InitializeCulture();
InitializeCulture() 看起来像这样:
string sprache = "en-US";
if (Request.Cookies["sprache"] != null)
{
sprache = Request.Cookies["sprache"].Value;
}
Thread.CurrentThread.CurrentCulture =
CultureInfo.GetCultureInfo(sprache);
Thread.CurrentThread.CurrentUICulture =
CultureInfo.GetCultureInfo(sprache);
有 3 个语言按钮。他们背后的代码如下所示:
protected void lang_en_Click(object sender, EventArgs e)
{
Request.Cookies["sprache"] = "en-US";
Session["Language"] = "en";
}
有人可以提示我在哪里弄错了吗?O有没有更好的方法来做到这一点?