0

私はいくつかの調査を行いましたが、これを行う唯一の方法は、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 コントロールにあります。

4

1 に答える 1

2

classカルチャに対応したコードを含むベースを追加すると、80 以上のページがこのベース クラスから継承されます。

何かのようなもの:

public abstract class CultureAwarePage : Page
{
   protected override void InitializeCulture() { ... }
}

public partial class MyPage1 : CultureAwarePage
{
  ...
}
于 2013-02-08T20:55:24.187 に答える