2009-07-08 15 views
1

私はasp.net Webアプリケーションを開発しています。要件の1つは、ユーザーが必要な言語を選択できることです。私はResxファイルを使って地元の人を保管しています。私の質問は、ページがロードされるたびにスレッドのCurrentCultureを変更する必要があるか、ログインしたユーザーが1ページから移動したときに自動的に処理する方法ですASP.NETローカリゼーションとユーザー定義言語

答えて

1

はい、私はあなたがそれをさらに設定する必要があると信じています。InitializeCultureページクラスのメソッドをオーバーライドすることによってそれを行う必要があります。私はSitePageを作成しました。このプロジェクトは、これを行うには代わりにページの継承

public class SitePage : Page 
{ 
    protected override void InitializeCulture() 
    { 
     base.InitializeCulture(); 

     // Set both the CurrentCulture (for currency, date, etc) conversion, and the CurrentUICulture for resource file lookup. 
     Thread.CurrentThread.CurrentCulture = whatever; 
     Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture; 
    } 

}

さらに読書:http://msdn.microsoft.com/en-us/library/bz9tc508.aspx

+0

Global.asaxのApplication_BeginRequestでそれを行うのはどうでしょう。他のものが呼び出される前に呼び出されるからです。 – Superdumbell

+0

リフレクターにPageクラスを開いたばかりで、InitializeCultureは単なる仮想メソッドですあなたにCulture_ByinRequestでそれを行うように設定する場所を与えます。それ以外の場合は私は投稿しません – Superdumbell

+0

私は* I *はApplication_BeginRequestを使うことができないいくつかの理由があったことを知っていますが、それがグローバルな制限であったかどうかはわかりません。 – Greg

関連する問題