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);
}
EDIT:誰が助けることができ、これは私のコードである私は、次のコードを追加しているが、私はまだ同じ問題があります。
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());
}
これはほぼ正確に私の作品です - あなたのリソースファイルは正しいものです(私は愚かな質問のようですが、簡単な間違いはしばしば見つけるのが最も難しいことを知っています) –
私は 'web.config'システムでこれも持っています。 web'セクション ' 'を使用していますが、これはブラウザから優先言語を取得するためです。 –
これは上記のコードを使って動作させることができますが、ページを更新した後でしか動作しません。ブラウザでリフレッシュをクリックするのではなく、上記のコードでフラグ画像をクリックすると言語を変更する必要があります。 – user517406