私はいくつかの調査を行いましたが、これを行う唯一の方法は、Web アプリケーションのすべてのページで InitializeCulture メソッドをオーバーライドするようです。私のアプリケーションには 80 ページあるので、もっと簡単にこれを行う別の方法があるかどうか疑問に思っていました。
protected override void InitializeCulture()
{
if (Session["CultureLang"] != null)
{
string selectedLanguage = Session["CultureLang"].ToString();
if (selectedLanguage == "True")
selectedLanguage = "en-US";
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(selectedLanguage);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(selectedLanguage);
}
base.InitializeCulture();
}
これはweb.configファイルにあります:
<globalization culture="auto" uiCulture="auto" requestEncoding="UTF-8" responseEncoding="UTF-8" fileEncoding="UTF-8"/>
注: 言語を変更するためのボタンは、カスタム Web コントロールにあります。