有効なカルチャ名を含む C# システム/グローバリゼーション名前空間に一連の定数または列挙がありますか?
「en-GB」などを入力しなくてもいいように何かを探しています。
有効なカルチャ名を含む C# システム/グローバリゼーション名前空間に一連の定数または列挙がありますか?
「en-GB」などを入力しなくてもいいように何かを探しています。
はい、あります、GetCultures :
System.Globalization.CultureInfo.GetCultures(System.Globalization.CultureTypes.SpecificCultures)
これはオブジェクトの配列を返すCultureInfo
ため、文字列名が必要な場合は、次のようなものを使用できます。
IEnumerable<CultureInfo> cultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures);
string[] names = cultures.Select(c => c.Name).ToArray();
"Culture Types" 列挙型 (MSDN リンクから) に注意してください。最も便利なのはNeutralCulturesとSpecificCulturesだと思います。
- NeutralCultures 言語に関連付けられているが、国/地域に固有ではない文化。.NET Framework カルチャの名前は、ISO 639-1 から派生した小文字の 2 文字のコードで構成されます。例: "en" (英語) はニュートラル カルチャです。カスタム カルチャには、2 文字のコードだけでなく、任意のユーザー指定の名前を付けることができます。インバリアント カルチャは、この値を指定する CultureInfo.GetCultures メソッドによって返されるカルチャの配列に含まれます。
- SpecificCultures国/地域に固有のカルチャ。これらのカルチャの名前は、RFC 4646 (Windows Vista 以降) に従います。形式は "-" です。特定の文化。カスタム カルチャには、標準に準拠した名前だけでなく、任意のユーザー指定の名前を付けることができます。
- InstalledWin32Cultures Windows オペレーティング システムにインストールされているすべてのカルチャ。.NET Framework でサポートされているすべてのカルチャがオペレーティング システムにインストールされているわけではないことに注意してください。
- AllCultures ニュートラル カルチャ と特定のカルチャ、Windows オペレーティング システムにインストールされたカルチャ、およびユーザーによって作成されたカスタム カルチャを含む、.NET Framework に付属するすべてのカルチャ。
- UserCustomCultureユーザーによって作成されたカスタム カルチャ。
- ReplacementCultures .NET Framework に付属のカルチャを置き換える、ユーザーによって作成されたカスタム カルチャ。
いいえ、ありません。利用可能なカルチャのリストはシステム固有です。 CultureAndRegionInfoBuilderを使用して、新しいカスタム カルチャを登録することもできます。
したがって、これが必要な場合は、関心のある一般的なカルチャのサブセットに対して独自の列挙型または定数を作成する必要があります。たとえば、次のようになります。
public static class KnownCulture
{
public readonly String EnglishUS = "en-US";
public readonly String EnglishGB = "en-GB";
... etc ...
}
また
public enum KnownLCID
{
EnglishUS = 0x409,
EnglishGB = 0x809,
...
}
これはKnownColor
列挙に似ています。考えられるすべての色の列挙を作成することはできませんが、頻繁に使用される色の列挙を作成することは理にかなっています。
Microsoft がすぐに同等KnownCulture
の列挙を提供するとは思わないでしょう。