0
我有一些代码,当我通过更改CurrentCulture
和CurrentUICulture
,但没有从.resx文件中获取相关字符串时,它只采用默认文化中的一个。任何人可以帮助,这是我的代码:MVC和全球化
<map id="langs" name="langselect">
<area shape="rect" coords="0,0,18,11" alt="en-GB" onmouseover="tooltip.show('en-GB', 60);" onmouseout="tooltip.hide();" onclick="setCulture('en-GB');" />
<area shape="rect" coords="25,1,41,11" alt="fi-FI" onmouseover="tooltip.show('fi-FI', 48);" onmouseout="tooltip.hide();" onclick="setCulture('fi-FI');" />
</map>
function setCulture(culture) {
$.post('/Gameplan/MainGP/SetCulture', { culture: culture }, function (result) {
});
}
public void SetCulture(string culture)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo(culture);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(culture);
}
编辑:我已经添加了下面的代码,但我仍然有同样的问题:
public void SetCulture(string culture)
{
Session["Culture"] = culture;
Thread.CurrentThread.CurrentCulture = new CultureInfo(Session["Culture"].ToString());
Thread.CurrentThread.CurrentUICulture = new CultureInfo(Session["Culture"].ToString());
}
protected void Application_AcquireRequestState(object sender, EventArgs e)
{
Thread.CurrentThread.CurrentCulture = new CultureInfo(Session["Culture"].ToString());
Thread.CurrentThread.CurrentUICulture = new CultureInfo(Session["Culture"].ToString());
}
这几乎是我的工作方式 - 你的资源文件是正确的(我知道这似乎是一个愚蠢的问题,但简单的错误往往是最难发现的) – 2012-01-07 22:33:12
我也在'web.config'系统中有这个。 web部分''但这是因为我从浏览器中选择了首选语言 - 不应该对您造成影响,我不认为。 –
2012-01-07 22:39:44
我现在可以使用上面的代码来实现这个功能,但只能在刷新页面之后才能使用。我真的需要通过点击上面代码中的标志图像来更改语言,而不必单击浏览器中的刷新。 – user517406 2012-01-07 22:48:05