.NETのCultureInfoのCurrentCultureプロパティとCurrentUICultureプロパティの違いは何ですか?

StackOverflow https://stackoverflow.com/questions/329033

  •  11-07-2019
  •  | 
  •  

質問

.NETには、 System.Globalization 名前空間に CultureInfo クラスがあります。 CultureInfo 型の値を返す2つの類似したプロパティがあります: CurrentCulture および CurrentUICulture

それらの違いは何ですか?

いつどのような理由で使用すべきですか?

役に立ちましたか?

解決

CurrentCulture は、システムのデフォルトのユーザーロケールの.NET表現です。これは、デフォルトの数値と日付のフォーマットなどを制御します。

CurrentUICulture は、Windows 2000で導入されたデフォルトのユーザーインターフェイス言語を指します。これは主に、アプリのUIローカリゼーション/翻訳部分に関するものです。

システムが持つように構成されている地域のオプションはすべて、「現在」です。 .NETアプリの値。

多くの場合、両者は同じです。しかし、私のシステムではそれらは異なります:私はドイツ語形式の数字と日付を好むので、 CurrentCulture はドイツ語になりますが、英語のすべてのアプリケーションも好むので、 CurrentUICulture は英語です。

トピックに関する素晴らしい記事があります:すべてを整理する:なぜ私たちはCurrentCultureとCurrentUICultureの両方がある

他のヒント

これは、どちらを使用するかを覚えるために使用する簡単なトリックです。

(date, currency, double).tostring = CurrentCulture

resource.fr-CA.resx file = currentUICulture

違い:

  1. CurrentCulture CurrentUICulture は言語/翻訳に対応しています。 ResourceManager 文化ごとにリソースを検索します。
  2. CurrentCulture クラスは System.Globalization にあり、 CurrentUICulture は、 System.Threading に由来します。
  3. CurrentCulture CurrentUICulture はすべてのリクエストで設定する必要があります。

好感度:

両方とも System.Globalization.CultureInfo インスタンス。

仲間のユーザーによる素晴らしい説明に加えて違いを生む良い方法であり、Webアプリケーション開発の重要な側面は次のとおりです。

  • CurrentCulture は、Webサーバーのセットアップを表します。たとえば、ASP.NET Webアプリケーションがドイツでホストされている場合、 CutlureInfo.CurrentCulture の値はおそらく de-DE になります。したがって、 IFormattable タイプのデフォルトの .ToString()フォーマットは、デフォルトのドイツ語フォーマット、またはサーバーOSでデフォルトとして設定されているフォーマットを使用します。

  • CurrentUICulture は、ユーザーエージェントからキャプチャでき、Webサイトに接続するクライアントのユーザーインターフェイスカルチャを表します。たとえば、ロシアからそのWebサイトをロードすると、ローカル設定はロシア語を使用するように設定され、ユーザーエージェントはロケール設定をサーバーに送信します(OperaとIEはこれを自動的に行います。ChromeとFireFoxについては不明です)。 code> CurrenUICulture は ru-RU を表します。これにより、ResourceManager経由で取得したローカライズされた文字列やASP.NET aspx / ascxファイルのローカライズ式などのリソースがロシア語になります(翻訳が利用可能な場合)。

CurrentUICulture は 'en'(ニュートラルカルチャ)などの国以外のロケールをサポートしますが、 CurrentCulture は 'enなどの国固有のロケールのみをサポートすることに注意してください-GB '。 CurrentCulture をニュートラルカルチャに設定すると、 ArgumentException がスローされます。

これは、日付や通貨などの形式が国自体により強くリンクされているためと思われますが、表示される言語は国間で互換性があることがよくあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top