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