CultureAndRegionInfoBuilder クラス


新しいカスタム カルチャまたは別のカルチャおよび国/地域に基づいたカスタム カルチャを定義します。Defines a custom culture that is new or based on another culture and country/region. カスタム カルチャは、コンピューターにインストールすることで、そのコンピューター上で実行される任意のアプリケーションで使用できます。The custom culture can be installed on a computer and subsequently used by any application that is running on that computer. このクラスは継承できません。This class cannot be inherited.

public ref class CultureAndRegionInfoBuilder sealed
public sealed class CultureAndRegionInfoBuilder
type CultureAndRegionInfoBuilder = class
Public NotInheritable Class CultureAndRegionInfoBuilder

次の例では、米国でロシア語の言語を表すカスタム ru (米国) カルチャを定義します。The following example defines a custom ru-US culture that represents the Russian language in the United States. この例では、ロシア語 (ロシア) オブジェクトと米国オブジェクトから設定を読み込んで、カスタムカルチャを定義し、 CultureInfo RegionInfo いくつかのプロパティを設定し CultureAndRegionInfoBuilder ます。The example defines the custom culture by loading settings from the Russian (Russia) CultureInfo object and the U.S. RegionInfo object, and then sets a number of CultureAndRegionInfoBuilder properties. この例では、カスタムカルチャを登録し、インスタンス化して、現在のスレッドカルチャにします。The example registers the custom culture, and then instantiates it and makes it the current thread culture.

using System;
using System.Globalization;
using System.Threading;

public class Example
   public static void Main()
      // Create a custom culture for ru-US.
      CultureAndRegionInfoBuilder car1 = new CultureAndRegionInfoBuilder("ru-US",
      car1.LoadDataFromRegionInfo(new RegionInfo("en-US"));

      car1.CultureEnglishName = "Russian (United States)";
      car1.CultureNativeName = "русский (США)";
      car1.CurrencyNativeName = "Доллар (США)";
      car1.RegionNativeName = "США";

      // Register the culture.
      try {
      catch (InvalidOperationException) {
         // Swallow the exception: the culture already is registered.

      // Use the custom culture.
      CultureInfo ci = CultureInfo.CreateSpecificCulture("ru-US");
      Thread.CurrentThread.CurrentCulture = ci;
      Console.WriteLine("Current Culture: {0}",
      Console.WriteLine("Writing System: {0}",
// The example displays the following output:
//     Current Culture: ru-US
//     Writing System: TextInfo - ru-US
Imports System.Globalization
Imports System.Threading

Module Example
   Public Sub Main()
      ' Create a custom culture for ru-US.
      Dim car1 As New CultureAndRegionInfoBuilder("ru-US", CultureAndRegionModifiers.None)
      car1.LoadDataFromRegionInfo(New RegionInfo("en-US"))
      car1.CultureEnglishName = "Russian (United States)"
      car1.CultureNativeName = "русский (США)"
      car1.CurrencyNativeName = "Доллар (США)"
      car1.RegionNativeName = "США"

      ' Register the culture.
      Catch e As InvalidOperationException
         ' Swallow the exception: the culture already is registered.
      End Try
      ' Use the custom culture.
      Dim ci As CultureInfo = CultureInfo.CreateSpecificCulture("ru-US")
      Thread.CurrentThread.CurrentCulture = ci
      Console.WriteLine("Current Culture: {0}", 
      Console.WriteLine("Writing System: {0}", 
   End Sub
End Module
' The example displays the following output:
'     Current Culture: ru-US
'     Writing System: TextInfo - ru-US


クラスは、 CultureInfo 関連付けられた言語、サブ言語、国/地域、暦、および文化の規則など、カルチャ固有の情報を保持します。The CultureInfo class holds culture-specific information, such as the associated language, sublanguage, country/region, calendar, and cultural conventions. このクラスは、、、、およびの各クラスのカルチャ固有のインスタンスも提供します DateTimeFormatInfo NumberFormatInfo CompareInfo TextInfo 。これは、大文字と小文字の区別、日付と数値の書式設定と解析、文字列の比較など、カルチャ固有の操作に必要です。This class also provides culture-specific instances of the DateTimeFormatInfo, NumberFormatInfo, CompareInfo, and TextInfo classes, which are required for culture-specific operations such as casing, formatting and parsing dates and numbers, and comparing strings.

既定では、.NET Framework は、 CultureInfo 定義済みのカルチャのセットを表すオブジェクトをサポートします。By default, the .NET Framework supports CultureInfo objects that represent a predefined set of cultures. Windows システムで使用できるこれらのカルチャの一覧については、 windows でサポートされている言語/地域名の一覧の [言語タグ] 列を参照してください。For a list of these cultures available on Windows systems, see the Language tag column in the list of language/region names supported by Windows. カルチャ名は、BCP 47 によって定義されている標準に準拠します。Culture names follow the standard defined by BCP 47. CultureAndRegionInfoBuilderクラスを使用すると、完全に新しい、または定義済みのカルチャをオーバーライドするカスタムカルチャを作成できます。The CultureAndRegionInfoBuilder class enables you to create a custom culture that is completely new or that overrides a predefined culture. カスタムカルチャが特定のコンピューターにインストールされて登録されると、定義済みのオブジェクトと区別できなくなり、 CultureInfo これらのオブジェクトと同じようにインスタンス化して使用することができます。When a custom culture is installed and registered on a particular computer, it becomes indistinguishable from predefined CultureInfo objects, and can be instantiated and used just like those objects.


CultureAndRegionInfoBuilderクラスは sysglobl.dll という名前のアセンブリに存在することに注意してください。Note that the CultureAndRegionInfoBuilder class is found in an assembly named sysglobl.dll. この型を使用するコードを正常にコンパイルするには、sysglobl.dll への参照を追加する必要があります。Successfully compiling code that uses this type requires that you add a reference to sysglobl.dll.

カスタムカルチャをコンピューターに登録できるのは、そのコンピューターの管理者権限を持つユーザーだけです。A custom culture can be registered on a computer only by a user who has administrative rights on that computer. そのため、通常、アプリはカスタムカルチャを作成およびインストールしません。Consequently, apps typically do not create and install custom cultures. 代わりに、クラスを使用して、 CultureAndRegionInfoBuilder 管理者がカスタムカルチャを作成、インストール、および登録するために使用できる特殊な目的のツールを作成できます。Instead, you can use the CultureAndRegionInfoBuilder class to create a special-purpose tool that an administrator can use to create, install, and register a custom culture. カスタムカルチャをコンピューターに登録した後は、 CultureInfo 定義済みのカルチャの場合と同じように、アプリでクラスを使用してカスタムカルチャのインスタンスを作成できます。After the custom culture is registered on a computer, you can use the CultureInfo class in your app to create instances of the custom culture just as you would for a predefined culture.

カスタムカルチャに対して生成された日付と時刻の文字列を解析する場合は、メソッドまたはメソッド DateTime.ParseExact の代わりにメソッドまたはメソッドを使用して、 DateTime.TryParseExact DateTime.Parse DateTime.TryParse 解析操作が成功する確率を向上させる必要があります。If you parse date and time strings generated for a custom culture, you should use the DateTime.ParseExact or DateTime.TryParseExact method instead of the DateTime.Parse or DateTime.TryParse method to improve the probability that the parse operation will succeed. カスタムカルチャの日付と時刻の文字列は複雑になる可能性があるため、解析が難しくなります。A date and time string for a custom culture can be complicated and therefore difficult to parse. Parseメソッドと TryParse メソッドは、いくつかの暗黙的な解析パターンを使用して文字列を解析しようとしますが、これらはすべて失敗する可能性があります。The Parse and TryParse methods try to parse a string with several implicit parse patterns, all of which might fail. これに対して、メソッドは、 TryParseExact 成功する可能性のある1つ以上の正確な解析パターンを、アプリケーションが明示的に指定する必要があります。The TryParseExact method, in contrast, requires the application to explicitly designate one or more exact parse patterns that are likely to succeed.

カスタムカルチャの定義と作成Defining and Creating a Custom Culture

クラスを使用し CultureAndRegionInfoBuilder て、カスタムカルチャを定義し、名前を指定します。You use the CultureAndRegionInfoBuilder class to define and name a custom culture. カスタムカルチャは、完全に新しいカルチャ、既存のカルチャ (つまり補足カルチャ) に基づく新しいカルチャ、または既存の .NET Framework カルチャを置き換えるカルチャにすることができます。The custom culture can be an entirely new culture, a new culture that is based on an existing culture (that is, a supplemental culture), or a culture that replaces an existing .NET Framework culture. どちらの場合も、基本的な手順は同じです。In each case, the basic steps are the same:

  1. コンストラクターを CultureAndRegionInfoBuilder 呼び出して、オブジェクトをインスタンス化 CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) します。Instantiate a CultureAndRegionInfoBuilder object by calling its CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) constructor. 既存のカルチャを置き換えるには、そのカルチャの名前と CultureAndRegionModifiers.Replacement 列挙値をコンストラクターに渡します。To replace an existing culture, pass that culture's name and the CultureAndRegionModifiers.Replacement enumeration value to the constructor. 新しいカルチャまたは補足カルチャを作成するには、一意のカルチャ名と、 CultureAndRegionModifiers.Neutral または列挙値のいずれかを渡し CultureAndRegionModifiers.None ます。To create a new culture or a supplemental culture, pass a unique culture name and either the CultureAndRegionModifiers.Neutral or CultureAndRegionModifiers.None enumeration value.


    列挙値を使用して CultureAndRegionModifiers.Replacement オブジェクトをインスタンス化する場合、オブジェクトのプロパティには、 CultureAndRegionInfoBuilder CultureAndRegionInfoBuilder 置き換えられるオブジェクトの値が自動的に設定され CultureInfo ます。If you use the CultureAndRegionModifiers.Replacement enumeration value to instantiate a CultureAndRegionInfoBuilder object, the CultureAndRegionInfoBuilder object's properties are automatically populated with values from the CultureInfo object to be replaced.

  2. 新しいまたは補足カルチャを作成する場合は、次の手順を実行します。If you are creating a new or supplemental culture:

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

  4. カスタムカルチャを別のルーチンに登録する場合は、メソッドを呼び出し Save ます。If you are planning to register the custom culture in a separate routine, call the Save method. これにより、別のカスタムカルチャインストールルーチンで読み込んで登録できる XML ファイルが生成されます。This generates an XML file that you can load and register in a separate custom culture installation routine.

カスタムカルチャの登録Registering a Custom Culture

カルチャを作成するアプリケーションとは別のカスタムカルチャの登録アプリケーションを開発する場合は、メソッドを呼び出して、 CreateFromLdml カスタムカルチャの定義を含む XML ファイルを読み込み、オブジェクトをインスタンス化し CultureAndRegionInfoBuilder ます。If you are developing a registration application for a custom culture that is separate from the application that creates the culture, you call the CreateFromLdml method to load the XML file that contains the custom culture's definition and instantiate the CultureAndRegionInfoBuilder object. 登録を処理するには、 Register メソッドを呼び出します。To handle the registration, call the Register method. 登録を成功させるには、カスタムカルチャを登録するアプリケーションが、ターゲットシステムで管理者特権を使用して実行されている必要があります。それ以外の場合、を呼び出すと Register 例外がスローさ UnauthorizedAccessException れます。For the registration to succeed, the application that registers the custom culture must be running with administrative privileges on the target system; otherwise, the call to Register throws an UnauthorizedAccessException exception.


カルチャデータは、システムによって異なる場合があります。Culture data can differ between systems. クラスを使用して、複数のシステムに共通 CultureAndRegionInfoBuilder するカスタムカルチャを作成し、既存のオブジェクトとオブジェクトからデータを読み込んでカスタマイズする場合は CultureInfo RegionInfo 、2つの異なるユーティリティを作成する必要があります。If you are using the CultureAndRegionInfoBuilder class to create a custom culture that is uniform across multiple systems and you are creating your custom culture by loading data from existing CultureInfo and RegionInfo objects and customizing it, you should develop two different utilities. 最初のはカスタムカルチャを作成し、XML ファイルに保存します。The first creates the custom culture and saves it to an XML file. 2つ目は、メソッドを使用して、 CreateFromLdml XML ファイルからカスタムカルチャを読み込み、ターゲットコンピューターに登録します。The second uses the CreateFromLdml method to load the custom culture from an XML file and register it on the target computer.

登録プロセスでは、次のタスクが実行されます。The registration process performs the following tasks:

  • オブジェクトで定義されている情報を格納する nlp ファイルを作成します。 CultureAndRegionInfoBuilderCreates an .nlp file that contains the information that is defined in the CultureAndRegionInfoBuilder object.

  • は、nlp ファイルをターゲットコンピューターの%windir%\Globalization システムディレクトリに格納します。Stores the .nlp file in the %windir%\Globalization system directory on the target computer. これにより、カスタムカルチャの設定をセッション間で永続化できます。This enables the custom culture's settings to persist between sessions. ( CultureAndRegionInfoBuilder Nlp ファイルはシステムディレクトリに格納されているため、メソッドには管理者特権が必要です)。(The CultureAndRegionInfoBuilder method requires administrative privileges because the .nlp file is stored in a system directory.)

  • 新しいカスタムカルチャを作成する要求が次に発生したときに、内部キャッシュではなく%windir%\Globalization システムディレクトリを検索するための .NET Framework を準備します。Prepares the .NET Framework to search the %windir%\Globalization system directory instead of an internal cache the next time there is a request to create your new custom culture.

カスタムカルチャが正常に登録されると、.NET Framework によって事前に定義されているカルチャと区別できません。When a custom culture is successfully registered, it is indistinguishable from the cultures that are predefined by the .NET Framework. カスタムカルチャは、メソッドの呼び出しによって CultureAndRegionInfoBuilder ローカルコンピューターから nlp ファイルが削除されるまで使用できます。The custom culture is available until a call to the CultureAndRegionInfoBuilder method removes the .nlp file from the local computer.

カスタムカルチャのインスタンス化Instantiating a Custom Culture

カスタムカルチャのインスタンスは、次のいずれかの方法で作成できます。You can create an instance of the custom culture in one of the following ways:

また、 CultureInfo メソッドによって返されるオブジェクトの配列には、 CultureInfo.GetCultures カスタムカルチャも含まれます。In addition, the array of CultureInfo objects that is returned by the CultureInfo.GetCultures method includes the custom culture.


CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers)

CultureAndRegionInfoBuilder クラスの新しいインスタンスを初期化します。Initializes a new instance of the CultureAndRegionInfoBuilder class.



この CultureAndRegionInfoBuilder オブジェクトによってサポートされるカレンダーの配列を取得または設定します。Gets or sets an array of calendars that are supported by this CultureAndRegionInfoBuilder object.


カルチャの文字列を比較する方法を定義する CompareInfo オブジェクトを取得または設定します。Gets or sets the CompareInfo object that defines how to compare strings for the culture.


グラフィック ユーザー インターフェイスの既定のカルチャが不適切な場合に、コンソール アプリケーションに適した代替のユーザー インターフェイス カルチャを取得または設定します。Gets or sets an alternate user interface culture suitable for console applications when the default graphic user interface culture is inappropriate.


英語のカルチャ名を取得または設定します。Gets or sets the culture name in English.


作成するカルチャの名前を取得します。Gets the name of the culture being created.


カルチャの表示用に設定されている形式および言語でカルチャ名を取得または設定します。Gets or sets the culture name in the format and language that the culture is set to display.


現在の CultureAndRegionInfoBuilder オブジェクトで表されるカルチャを記述する CultureTypes 値を取得します。Gets the CultureTypes value that describes the culture represented by the current CultureAndRegionInfoBuilder object.


現在の CultureAndRegionInfoBuilder オブジェクトで表される国/地域で使用される通貨の、英語での名前を取得または設定します。Gets or sets the name, in English, of the currency used in the country/region represented by the current CultureAndRegionInfoBuilder object.


現在の CultureAndRegionInfoBuilder オブジェクトで表される国/地域で使用される通貨の、ネイティブ言語での名前を取得または設定します。Gets or sets the native name of the currency used in the country/region represented by the current CultureAndRegionInfoBuilder object.


地理的な領域、国、都市、または場所の一意の識別番号を取得または設定します。Gets or sets a unique identification number for a geographical region, country, city, or location.


グレゴリオ暦に従って日付と時刻の書式を定義する DateTimeFormatInfo オブジェクトを取得または設定します。Gets or sets a DateTimeFormatInfo object that defines the format of dates and times according to the Gregorian calendar.


RFC 4646 標準『Tags for the Identification of Languages』に従って書式設定されたカルチャ名を取得または設定します。Gets or sets a culture name formatted according to the RFC 4646 standard, "Tags for the Identification of Languages."


国/地域で、計測のためにメートル法を使用するかどうかを示す値を取得または設定します。Gets or sets a value indicating whether the country/region uses the metric system for measurements.


国/地域に関連付けられた 3 文字の ISO 4217 通貨記号を取得または設定します。Gets or sets the three-character ISO 4217 currency symbol associated with the country/region.


現在の CultureAndRegionInfoBuilder オブジェクトに関連付けられている書記体系のテキストの記述方向を取得または設定します。Gets or sets the predominant direction of lines of text in the writing system associated with the current CultureAndRegionInfoBuilder object.


アクティブな入力ロケール識別子を取得または設定します。Gets or sets the active input locale identifier.


現在の CultureAndRegionInfoBuilder オブジェクトのカルチャ識別子を取得します。Gets the culture identifier for the current CultureAndRegionInfoBuilder object.


数値、通貨、および割合を表示する、カルチャに適切な書式を定義する NumberFormatInfo オブジェクトを取得または設定します。Gets or sets a NumberFormatInfo object that defines the culturally appropriate format of displaying numbers, currency, and percentage.


現在のカスタム カルチャの親カルチャを表す CultureInfo オブジェクトを取得または設定します。Gets or sets the CultureInfo object that represents the parent culture of the current custom culture.


英語で表した国/地域の完全名を取得または設定します。Gets or sets the full name of the country/region in English.


現在の CultureAndRegionInfoBuilder オブジェクトの国/地域の名前を取得します。Gets the name of the country/region for the current CultureAndRegionInfoBuilder object.


このカスタム カルチャが適用される人々の間で使用される国/地域の完全名を取得または設定します。Gets or sets the full name of the country/region as known by the people of this custom culture.


このカスタム カルチャに関連付けられている書記体系を定義する TextInfo オブジェクトを取得または設定します。Gets or sets the TextInfo object that defines the writing system associated with this custom culture.


このカスタム カルチャの言語に対する ISO 639-2 の 3 文字のコードを取得または設定します。Gets or sets the ISO 639-2 three-letter code for the language of this custom culture.


ISO 3166 で定義された国/地域の 3 文字コードを取得または設定します。Gets or sets the three-letter code defined in ISO 3166 for the country/region.


Windows API の定義に従って、言語に対する 3 文字のコードを取得または設定します。Gets or sets the three-letter code for the language as defined in the Windows API.


現在のカスタム カルチャが表す国/地域に対して Windows が割り当てる 3 文字コードを取得または設定します。Gets or sets the three-letter code assigned by Windows to the country/region represented by the current custom culture.


現在の CultureInfo オブジェクトの言語に対する ISO 639-1 の 2 文字のコードを取得または設定します。Gets or sets the ISO 639-1 two-letter code for the language of the current CultureInfo object.


ISO 3166 で定義された国/地域の 2 文字のコードを取得または設定します。Gets or sets the two-letter code defined in ISO 3166 for the country/region.



指定したオブジェクトの表現を格納した XML ファイルから CultureAndRegionInfoBuilder オブジェクトを再構成します。Reconstitutes a CultureAndRegionInfoBuilder object from a specified XML file that contains a representation of the object.


指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)

現在の CultureAndRegionInfoBuilder オブジェクトのプロパティを、指定した CultureInfo オブジェクトの対応するプロパティを使用して設定します。Sets the properties of the current CultureAndRegionInfoBuilder object with the corresponding properties of the specified CultureInfo object.


現在の CultureAndRegionInfoBuilder オブジェクトのプロパティを、指定した RegionInfo オブジェクトの対応するプロパティを使用して設定します。Sets the properties of the current CultureAndRegionInfoBuilder object with the corresponding properties of the specified RegionInfo object.


現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)

現在の CultureAndRegionInfoBuilder オブジェクトをローカル コンピューター上でカスタム カルチャとして保持して、アプリケーションでカルチャを使用できるようにします。Persists the current CultureAndRegionInfoBuilder object as a custom culture on the local computer and makes that culture available to applications. 管理特権が必要となります。Requires administrative privileges.


現在の CultureAndRegionInfoBuilder オブジェクトの XML 表現を、指定したファイルに書き込みます。Writes an XML representation of the current CultureAndRegionInfoBuilder object to the specified file.


現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)

ローカル コンピューターからカスタム カルチャを削除します。Deletes a custom culture from the local computer.