使用するOSに関係なく、.NET3.5でサポートされているカルチャのリストが必要です。理由はわかりませんが、これを取得するのはかなり苦労しているようです。
編集:ああ、私はそれがOSに依存していることに気づいていませんでした、それはドキュメントの欠如を説明するでしょう。Mac / Linux OSでも何がサポートされているかについてのアイデアはありますか?
ありがとう :)
使用するOSに関係なく、.NET3.5でサポートされているカルチャのリストが必要です。理由はわかりませんが、これを取得するのはかなり苦労しているようです。
編集:ああ、私はそれがOSに依存していることに気づいていませんでした、それはドキュメントの欠如を説明するでしょう。Mac / Linux OSでも何がサポートされているかについてのアイデアはありますか?
ありがとう :)
残念ながら、OSに依存します。OSごとのデフォルトの言語サポートについては、こちらを確認してください。
CultureInfoのドキュメントは次のように警告していることに注意してください。
Windowsのバージョンまたはサービスパックは、利用可能なカルチャを変更する可能性があります。
ASP.NETでは、OSに対して重要なのはブラウザーです。Accept-Language(セクション14.4)リクエストヘッダーを介して、ユーザーがどの言語を好むかを教えてくれます。アプリのグローバリゼーション構成をenableClientBasedCulture="true"に設定すると、ASP.NETはUICultureとCultureをブラウザーによって提供される値に自動的に設定しようとします。または、 Request.UserLanguagesプロパティを調べて、カルチャを手動で設定することもできます。
残念ながら、OSまたはブラウザから可能な言語の完全なリストを生成する方法はありません。最も近いのはIANA言語サブタグレジストリです。これは、 RFC4646で説明されている言語レジストリです。これは.NETのCultureInfoタグを定義するドキュメントです。
Request.UserLanguagesの言語タグが有効であるとは限らないことに注意してください。あなたはそれらをチェックしたいと思うでしょう。HTTP 1.1は言語タグに古い推奨事項を使用しており、誰かが言語ヘッダーでジブリッシュを送信するのを妨げるものは何もありません。
National Language Support(NLS)APIリファレンスには、ロケール情報がリストされており、OSを選択できます。
Microsoft Locale Builderは、WindowsVista以降のカスタムロケールを作成するためのツールです。
OSでサポートされているカルチャ(カスタムカルチャを含む)のリストを取得します。
C#の例、
System.Globalization.CultureInfo[] cultures = System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.AllCultures);
カスタムカルチャを作成することは可能ですが、デフォルトのクラスは、実行しているオペレーティングシステムによって提供されるカルチャをサポートします。MSDNにはデフォルトでサポートされているカルチャのリファレンスがあります
Culture Explorer 2.0で確認したところ、Windowsのみのカルチャとインストールされたカルチャ、および.NET Frameworkカルチャ(少なくとも私のシステムでは、言語のみのカルチャのみが含まれています)には違いがあります。これらはすべて、CultureInfoクラス(およびRegionInfo、NumberFormatInfoなど)によってサポートされています。
また、Mono(Linux上)でも実行しました。これはほぼ同じで、.NET FrameworkカルチャとWindows-Onlyカルチャが欠落していますが、特定のカルチャとニュートラルカルチャがあります。RegionInfo.CurrencyNativeName
ただし、私のMonoバージョンでは実装されていないようです。そのため、カルチャを選択するとクラッシュします。
残念ながら、Culture Explorer 2.0は現在どこからも利用できません(gotdotnet.comにありました)。しばらく前にダウンロードしました。それはそのようなことのための便利なツールです。いくつかのアーカイブで1つを見つけることができるかもしれません。