InitializeCulture更改域的语言

时间:2010-09-21 13:08:02

标签: c# asp.net localization globalization

我有一个带有语言组合的MasterPage,我想在用户启动应用程序时分配默认语言,之后用户可以在语言之间进行更改。我的理解是我必须在所有页面上覆盖InitializeCulture方法,问题是,我可以在哪里保存所选语言?当我使用Cache [“Culture”]时,启动应用程序的所有用户共享同一个Cache并覆盖所有登录用户的值。

我该怎么做?或者如何在单个用户的线程未登录时保存数据?

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

将Session对象用于特定于会话的数据,如果您需要将选择保留在会话之外,则需要将其与您拥有的任何用户数据一起存储

Session["Culture"] = yourculturevar;

答案 1 :(得分:2)

如果要将信息本地保存到用户的计算机(而不是在服务器上为登录用户保存数据库中的内容),则可以使用cookie。

设置Cookie

private void SetLanguageCookie(string language)
{
    HttpCookie cookie = new HttpCookie("UserSelectedLanguage", language);
    // Optionally set expiration for cookie
    cookie.Expires = DateTime.Now.AddDays(30);
}

检索Cookie

private string GetLanguageCookie()
{
    HttpCookie cookie = Request.Cookies["UserSelectedLanguage"];
    return cookie.Value;
}