5

複数のプロジェクトとスレッドを持つソリューションで複数の言語をサポートしようとしています。

2 つのリソース ファイルがあり、1 つは英語の文字列、もう 1 つはフランス語の文字列です。

現在の文化を次のように設定しています。

Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo(isEnglish ? "en-US" : "fr-CA");

ソリューション全体に対して現在のカルチャをグローバルに設定する方法はありますか、または文字列にアクセスする必要があるスレッドごとにこれを行う必要がありますか?

4

3 に答える 3

10

.NET Framework 4.5では、CultureInfo.DefaultThreadCurrentCultureプロパティは、現在のアプリケーションドメインのスレッドのデフォルトカルチャを取得または設定します。

.NET Framework 4以前のバージョンでは、デフォルトでは、すべてのスレッドのカルチャがWindowsシステムカルチャに設定されています。現在のカルチャがデフォルトのシステムカルチャと異なるアプリケーションの場合、この動作は望ましくないことがよくあります。.NET Framework 4.5では、DefaultThreadCurrentCultureプロパティにより、アプリケーションはアプリケーションドメイン内のすべてのスレッドのデフォルトカルチャを定義できます。

于 2012-12-18T15:54:23.343 に答える
5

web.configのsystem.Web内にグローバリゼーションセクションを追加できます

<globalization culture="en-US" uiCulture="en-US" />
于 2012-12-18T15:54:51.297 に答える
0

一度設定するCurrentThreadと、アプリケーションの期間中に設定されます。を初期化する前に、必ず実行してくださいUI。詳細については、このMSDNブログを参照してください。

于 2012-12-18T15:54:25.317 に答える