そのクラスまたはアプリケーション全体にデフォルトのカルチャ情報を設定したい。
たとえば、トルコでは3,2 =英語で3.2
アプリケーションはローカルを使用しますが、デフォルトとして使用したいです
System.Globalization.CultureInfo.InvariantCulture
特定のクラスまたはアプリケーション全体のデフォルトとしてそれをどのように設定できますか
アプリケーション全体または特定のクラスではありません。
CurrentUICultureとCurrentCultureは、ここで説明されているようにスレッドごとに設定可能です アプリケーション全体にカルチャを設定する方法はありますか?すべての現在のスレッドと新しいスレッド? 。 InvariantCulture
をまったく変更することはできません。
現在のスレッドのカルチャを変更するサンプルコード:
CultureInfo ci = new CultureInfo(theCultureString);
Thread.CurrentThread.CurrentCulture = ci;
Thread.CurrentThread.CurrentUICulture = ci;
クラスの場合、重要なメソッド内でカルチャを設定/復元できますが、引数の1つとしてカルチャを使用するほとんどのフォーマット関連メソッドに適切なオーバーライドを使用することは非常に安全です。
(3.3).ToString(new CultureInfo("fr-FR"))
4.0では、Alexeiが説明するように、各スレッドのカルチャを設定することにより、これを自分で管理する必要があります。しかし4.5では、appdomainのカルチャを定義できます。これは、これを処理するための好ましい方法です。関連するAPIは CultureInfo.DefaultThreadCurrentCulture および CultureInfo.DefaultThreadCurrentUICulture です。
言語リソースファイルを使用してアプリケーションのラベルを設定する場合、その値を設定する必要があります。
CultureInfo customCulture = new CultureInfo("en-US");
Languages.Culture = customCulture;