.NETではCultureInfo、System.Globalization名前空間にクラスがあります。これには、CultureInfoタイプの値を返す2つの類似したプロパティがCurrentCultureありCurrentUICultureます。
それらの違いは何ですか?
いつ、どのような理由で使用すべきですか?
CurrentCulture「en-GB」ですがCurrentUICulture、「en-US」です。
.NETではCultureInfo、System.Globalization名前空間にクラスがあります。これには、CultureInfoタイプの値を返す2つの類似したプロパティがCurrentCultureありCurrentUICultureます。
それらの違いは何ですか?
いつ、どのような理由で使用すべきですか?
CurrentCulture「en-GB」ですがCurrentUICulture、「en-US」です。
回答:
CurrentCultureシステムのデフォルトのユーザーロケールの.NET表現です。これは、デフォルトの数値や日付のフォーマットなどを制御します。
CurrentUICulture Windows 2000で導入されたデフォルトのユーザーインターフェイス言語を指します。これは主に、アプリのUIローカリゼーション/翻訳部分に関するものです。
システムが持つように構成されている地域オプションは、.NETアプリの「現在の」値になります。
多くの場合、それらは両方とも同じです。しかし、私のシステムでは、それらは異なります。私は数字と日付をドイツ語形式でCurrentCulture好むので、ドイツ語になりますが、すべてのアプリケーションも英語で好むので、CurrentUICulture英語になります。
トピックに関する素晴らしい記事があります:すべてを並べ替える:CurrentCultureとCurrentUICultureの両方がある理由
Den-USru-RU
これは、どちらを使用するかを覚えておくための簡単なトリックです。
(date, currency, double).tostring = CurrentCulture
resource.fr-CA.resx file = currentUICulture
仲間のユーザーが行う素晴らしい説明に加えて、違いを生む良い方法であり、Webアプリケーション開発における重要な側面は次のとおりです。
CurrentCultureWebサーバーのセットアップを表します。たとえば、ASP.NET Webアプリケーションがドイツでホストされている場合、の値はCutlureInfo.CurrentCultureおそらくになりますde-DE。したがって、タイプのデフォルトの.ToString()フォーマットはIFormattable、デフォルトのドイツ語のフォーマット、またはサーバーOSでデフォルトとして設定されているものを使用します。
CurrentUICultureユーザーエージェントから取得でき、Webサイトに接続するクライアントのユーザーインターフェイスカルチャを表す場合があります。あなたがロシアからそのウェブサイトをロードした場合、ローカルの設定がロシア語を使用するように設定されており、ユーザーエージェントはサーバー(オペラとIEがないことを確認ChromeとFirefoxの場合、これを自動的に行う)にロケール設定を送信し、CurrenUICulture希望を表すru-RU。これにより、ResourceManagerを介して取得されるローカライズされた文字列やASP.NET aspx / ascxファイルのローカリゼーション式などのリソースがロシア語になります(翻訳が利用可能な場合)。
違い:
CurrentCultureCurrentUICulture言語/翻訳に伴う日付と通貨のフォーマット用 です。ResourceManager文化別にリソースを検索するために使用されます。CurrentCultureのクラスはでありSystem.Globalizationながら、 CurrentUICultureから来ていますSystem.Threading。CurrentCultureCurrentUICultureすべてのリクエストで設定する必要がある間、セッション内の異なるリクエスト間で永続化されます。類似度:
どちらもSystem.Globalization.CultureInfoインスタンスです。
CurrentUICulture関係なく、英語のマシンでは常にen-USにCurrentCultureなります。