12

私は、多文化をサポートする多言語である必要がある .net 4.5 アプリケーションに取り組んでいます。

以下は、国/言語のサンプル リストです。

  • ロシア / ロシア語
  • ベルギー / フランス
  • ベルギー / オランダ語

上記のすべてについて、上記のカルチャ名に基づいて作成できる CultureInfo オブジェクトがあります。

  • ルル
  • fr-BE
  • nl-BE

ユーザーがサイトに入ると、Thread.CurrentThread.CurrentCulture と Thread.CurrentThread.CurrentUICulture を上記の名前で作成されたカルチャに設定します。

Thread.CurrentThread.CurrentCulture = new CultureInfo("nl-BE", false)
Thread.CurrentThread.CurrentUICulture = new CultureInfo("nl-BE", false)

上記の名前はすべて有効なカルチャ名です。

いいえ、別の文化名、ロシアの英語の言語を追加する必要があります。しかし問題は、コード en-RU が有効ではないため、作成時に en-RU が無効であるためnew CultureInfo("en-RU", false)、CultureNotFoundException が発生することです。

この文化では、数字や日付などの周りのロシア語の書式設定などが必要ですが、サイトの言語は英語にしたいと考えています。国 (ロシア) の動作で無効なカルチャ名のカスタム CultureInfo オブジェクトを作成することは可能ですか?

4

3 に答える 3

8

無効なカルチャ名のカスタム CultureInfo オブジェクトを作成することは可能ですか?

はい。

CultureAndRegionInfoBuilderカスタムの作成に役立ててくださいCultureInfo。(注: カルチャを作成するためのコードを作成したら、これを行うための設定を XML に保存してから、たとえばリソースから読み込むことができます。これにより、実行時に必要なコードが少なくて済みます。)

その方法とダウンロード可能なコードのサンプル プロジェクトは CodeProject にあります。この記事の重要な注意点は、このクラスがSystem.Globalization名前空間にあるにもかかわらず、デフォルトでは使用できないことです。

まず、アセンブリを参照し、名前空間sysglobl.dllのステートメントを追加します。usingSystem.Globalization

于 2012-10-16T14:33:38.977 に答える
6

英語のテキストには英語のカルチャ オブジェクトを使用しますが、数値の書式設定には ru-Ru (ロシア語) のカルチャ オブジェクトを使用する必要があります。

または、2 つを組み合わせてカスタム カルチャーを作成することをお勧めします。

ASP.NET でカスタム カルチャを作成する

于 2012-10-16T14:30:40.037 に答える
0

CultureInfo.InvariantCultureプロパティを使用する必要があります

インバリアント カルチャはカルチャに依存しません。英語に関連付けられていますが、国/地域には関連付けられていません。CultureInfo インスタンス化メソッドの呼び出しで空の文字列 ("") を使用して、インバリアント カルチャを名前で指定します。CultureInfo.InvariantCulture は、インバリアント カルチャのインスタンスも取得します。カルチャを必要とする System.Globalization 名前空間のほぼすべてのメソッドで使用できます。CompareInfo、DateTimeFormat、NumberFormat などのプロパティによって返されるオブジェクトも、インバリアント カルチャの文字列比較および書式設定規則を反映しています。

CultureInfo.InvariantCulture プロパティ

これは他のオプションカスタム グローバル アプリケーション カルチャー

于 2012-10-16T14:32:33.260 に答える