多言語 ASP.NET Web アプリケーションを作成しようとしています。アプリケーションの開始時に Cookie を設定し、その後 InitializeCulture() を呼び出してカルチャを開始します。ページのデータはグローバル リソースに格納され、次のように aspx ファイルに書き込まれます。<%$ Resources:Main,lang %>
実際には機能していますが、まだ問題があります。言語変更ボタンをクリックすると、Cookie とカルチャは変更されますが、ページのコンテンツは変更されません。適切なコンテンツを取得するには、常にページ全体をリロードする必要があります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それを行うためのさらに良い方法はありますか??