次の方法で共有


この記事では、この API のリファレンス ドキュメントに補足的な解説を提供します。

CultureAndRegionInfoBuilder クラスは、Windows オペレーティング システムでのみ役立ちます。 生成された .nlp ファイルは、Windows 以外のオペレーティング システムではサポートされていません。 また、Windows でも、生成された .nlp ファイルは .NET Framework ( NLS グローバリゼーション モードを使用する場合は .NET Core) でのみサポートされます。

CultureInfo クラスは、関連する言語、サブ言語、国/地域、カレンダー、カルチャ規則などのカルチャ固有の情報を保持します。 このクラスには、 DateTimeFormatInfoNumberFormatInfoCompareInfoTextInfo クラスのカルチャ固有のインスタンスも用意されています。これは、大文字と小文字の区別、日付と数値の書式設定と解析、文字列の比較などのカルチャ固有の操作に必要です。

既定では、.NET では、定義済みの一連のカルチャを表す CultureInfo オブジェクトがサポートされます。 Windows システムで使用できるこれらのカルチャの一覧については、Windows でサポートされている言語/地域名の一覧の言語タグ列を参照してください。 カルチャ名は 、BCP 47 で定義されている標準に従います。 CultureAndRegionInfoBuilder クラスを使用すると、まったく新しい、または定義済みのカルチャをオーバーライドするカスタム カルチャを作成できます。 カスタム カルチャを特定のコンピューターにインストールして登録すると、定義済みの CultureInfo オブジェクトと区別できなくなります。また、それらのオブジェクトと同様にインスタンス化して使用できます。

Von Bedeutung

CultureAndRegionInfoBuilder クラスは、sysglobl.dllという名前のアセンブリにあります。 この型を使用するコードを正常にコンパイルするには、 sysglobl.dllへの参照を追加する必要があります。

カスタム カルチャは、そのコンピューターの管理者権限を持つユーザーのみがコンピューターに登録できます。 そのため、通常、アプリはカスタム カルチャを作成してインストールしません。 代わりに、 CultureAndRegionInfoBuilder クラスを使用して、管理者がカスタム カルチャの作成、インストール、登録に使用できる特殊なツールを作成できます。 カスタム カルチャがコンピューターに登録されたら、アプリで CultureInfo クラスを使用して、定義済みのカルチャの場合と同様に、カスタム カルチャのインスタンスを作成できます。

カスタム カルチャ用に生成された日付と時刻の文字列を解析する場合は、解析操作が成功する確率を向上させるために、DateTime.ParseExactまたはDateTime.TryParseExactメソッドの代わりにDateTime.ParseまたはDateTime.TryParseメソッドを使用する必要があります。 カスタム カルチャの日付と時刻の文字列は複雑であるため、解析が困難な場合があります。 ParseメソッドとTryParseメソッドは、いくつかの暗黙的な解析パターンを持つ文字列を解析しようとしますが、これらはすべて失敗する可能性があります。 これに対し、 TryParseExact メソッドでは、成功する可能性が高い 1 つ以上の正確な解析パターンをアプリケーションで明示的に指定する必要があります。

カスタム カルチャを定義して作成する

CultureAndRegionInfoBuilder クラスを使用して、カスタム カルチャを定義し、名前を付けます。 カスタム カルチャには、まったく新しいカルチャ、既存のカルチャ (つまり補足カルチャ) に基づく新しいカルチャ、または既存の .NET カルチャを置き換えるカルチャを指定できます。 いずれの場合も、基本的な手順は同じです。

  1. CultureAndRegionInfoBuilder コンストラクターを呼び出して、CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) オブジェクトをインスタンス化します。 既存のカルチャを置き換えるには、そのカルチャの名前と CultureAndRegionModifiers.Replacement 列挙値をコンストラクターに渡します。 新しいカルチャまたは補足カルチャを作成するには、一意のカルチャ名と、 CultureAndRegionModifiers.Neutral または CultureAndRegionModifiers.None 列挙値を渡します。

    CultureAndRegionModifiers.Replacement列挙値を使用してCultureAndRegionInfoBuilder オブジェクトをインスタンス化すると、CultureAndRegionInfoBuilder オブジェクトのプロパティに、置き換えられるCultureInfo オブジェクトの値が自動的に設定されます。

  2. 新しい文化または追加の文化を作成する場合:

  3. 必要に応じて、 CultureAndRegionInfoBuilder オブジェクトのプロパティを変更します。

  4. カスタム カルチャを別のルーチンに登録する場合は、 Save メソッドを呼び出します。 これにより、別のカスタム カルチャ インストール ルーチンに読み込んで登録できる XML ファイルが生成されます。

カスタム カルチャを登録する

カルチャを作成するアプリケーションとは別のカスタム カルチャの登録アプリケーションを開発する場合は、 CreateFromLdml メソッドを呼び出して、カスタム カルチャの定義を含む XML ファイルを読み込み、 CultureAndRegionInfoBuilder オブジェクトをインスタンス化します。 登録を処理するには、 Register メソッドを呼び出します。 登録を成功させるには、カスタム カルチャを登録するアプリケーションがターゲット システムの管理特権で実行されている必要があります。それ以外の場合、 Register の呼び出しは UnauthorizedAccessException 例外をスローします。

Warnung

カルチャ データは、システムによって異なる場合があります。 CultureAndRegionInfoBuilder クラスを使用して、複数のシステム間で統一されたカスタム カルチャを作成し、既存のCultureInfoおよびRegionInfoオブジェクトからデータを読み込んでカスタム カルチャを作成する場合は、2 つの異なるユーティリティを開発する必要があります。 1 つ目はカスタム カルチャを作成し、XML ファイルに保存します。 2 つ目は、 CreateFromLdml メソッドを使用して XML ファイルからカスタム カルチャを読み込み、ターゲット コンピューターに登録します。

登録プロセスでは、次のタスクが実行されます。

  • オブジェクトで定義されている情報を含む CultureAndRegionInfoBuilder ファイルを作成します。
  • ターゲット コンピューターの %windir%\Globalization システム ディレクトリに .nlp ファイルを格納します。 これにより、カスタム カルチャの設定をセッション間で保持できます。 (.CultureAndRegionInfoBuilder ファイルはシステム ディレクトリに格納されているため、メソッドには管理特権が必要です)。
  • 次に新しいカスタム カルチャを作成する要求があるときに、内部キャッシュではなく、%windir%\Globalization システム ディレクトリを検索するように .NET を準備します。

カスタム カルチャが正常に登録されると、.NET によって定義済みのカルチャと区別できません。 カスタム カルチャは、 CultureAndRegionInfoBuilder メソッドの呼び出しによってローカル コンピューターから .nlp ファイルが削除されるまで使用できます。

カスタム カルチャをインスタンス化する

カスタム カルチャのインスタンスは、次のいずれかの方法で作成できます。

さらに、CultureInfo メソッドによって返されるCultureInfo.GetCulturesオブジェクトの配列には、カスタム カルチャが含まれています。