web-dev-qa-db-ja.com

C#アプリケーション全体のデフォルトのカルチャ情報を設定する方法

そのクラスまたはアプリケーション全体にデフォルトのカルチャ情報を設定したい。

たとえば、トルコでは3,2 =英語で3.2

アプリケーションはローカルを使用しますが、デフォルトとして使用したいです

System.Globalization.CultureInfo.InvariantCulture

特定のクラスまたはアプリケーション全体のデフォルトとしてそれをどのように設定できますか

48
MonsterMMORPG

アプリケーション全体または特定のクラスではありません。

CurrentUICultureとCurrentCultureは、ここで説明されているようにスレッドごとに設定可能です アプリケーション全体にカルチャを設定する方法はありますか?すべての現在のスレッドと新しいスレッド?InvariantCultureをまったく変更することはできません。

現在のスレッドのカルチャを変更するサンプルコード:

CultureInfo ci = new CultureInfo(theCultureString);
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;

クラスの場合、重要なメソッド内でカルチャを設定/復元できますが、引数の1つとしてカルチャを使用するほとんどのフォーマット関連メソッドに適切なオーバーライドを使用することは非常に安全です。

(3.3).ToString(new CultureInfo("fr-FR"))
46
Alexei Levenkov

4.0では、Alexeiが説明するように、各スレッドのカルチャを設定することにより、これを自分で管理する必要があります。しかし4.5では、appdomainのカルチャを定義できます。これは、これを処理するための好ましい方法です。関連するAPIは CultureInfo.DefaultThreadCurrentCulture および CultureInfo.DefaultThreadCurrentUICulture です。

49
Eric MSFT

言語リソースファイルを使用してアプリケーションのラベルを設定する場合、その値を設定する必要があります。

CultureInfo customCulture = new CultureInfo("en-US");
Languages.Culture = customCulture;
0
Renzo Ciot