2009-05-08 7 views
1

hereと記載されているように、Application_BeginRequestイベントで指定されたカルチャでCultureInfoオブジェクトを設定できますが、アプリケーションの起動時に各要求に対して実行する必要はありません。アプリケーション全体のローカライゼーションを設定するには?

私が想像できることは、Application_Startイベントを使用することができますが、グローバルカルチャの設定方法はわかりません。

答えて

1

Thread.CurrentThread.CurrentUICulture

覚えておいて、これはのWinFormアプリがコンピュータから得ているだろう設定をオーバーライドしています。たとえば、ユーザーにカスタム日付形式が定義されている場合は、これが置き換えられます。

1

ガタカの答えが正しいですが、あなたが本当に動的に利用者の好みやブラウザのに基づいてのCultureInfoを変更したい場合最適な場所は、ページクラスのInitializeCultureメソッドをオーバーライドすることです。したがって、これに基本クラスを書くことができます。

保護されたオーバーライド無効InitializeCulture(){

LanguageHelper.RestoreUserLangugagePreferrenceIfAvailabe(); 

}

もちろん、あなたが変更に基本クラスを必要とするので、これは、オーバー殺すようです。あなたのコードを注入するためにモジュールを使うのと同じように置くべき場所がありますが、私はこれらすべての解決策、page_loadイベントを試していますが、それらはすべて.net localization architectureで100%動作しません。 localresourceファイル、グローバルリソースファイルを試してみると、私の言いたいことが分かります。

関連する問題