CultureAndRegionInfoBuilder クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
新しい、または別のカルチャと国/地域に基づくカスタム カルチャを定義します。 カスタム カルチャは、コンピューターにインストールしてから、そのコンピューターで実行されている任意のアプリケーションで使用できます。 このクラスは継承できません。
public ref class CultureAndRegionInfoBuilder sealed
[System.Runtime.InteropServices.ComVisible(false)]
public sealed class CultureAndRegionInfoBuilder
[<System.Runtime.InteropServices.ComVisible(false)>]
type CultureAndRegionInfoBuilder = class
Public NotInheritable Class CultureAndRegionInfoBuilder
- 継承
-
CultureAndRegionInfoBuilder
- 属性
注釈
CultureInfo クラスは、関連する言語、サブ言語、国/地域、カレンダー、カルチャ規則などのカルチャ固有の情報を保持します。 このクラスには、 DateTimeFormatInfo、 NumberFormatInfo、 CompareInfo、 TextInfo クラスのカルチャ固有のインスタンスも用意されています。これは、大文字と小文字の区別、日付と数値の書式設定と解析、文字列の比較などのカルチャ固有の操作に必要です。
既定では、.NET Framework では、定義済みの一連のカルチャを表すCultureInfo オブジェクトがサポートされます。 Windows システムで使用できるこれらのカルチャの一覧については、Windows でサポートされている言語/地域名の一覧の言語タグ列を参照してください。 カルチャ名は、BCP 47 によって定義されている標準に準拠します。 CultureAndRegionInfoBuilder クラスを使用すると、まったく新しい、または定義済みのカルチャをオーバーライドするカスタム カルチャを作成できます。 カスタム カルチャを特定のコンピューターにインストールして登録すると、定義済みの CultureInfo オブジェクトと区別できなくなります。また、それらのオブジェクトと同様にインスタンス化して使用できます。
Important
CultureAndRegionInfoBuilder クラスは、sysglobl.dllという名前のアセンブリにあります。 この型を使用するコードを正常にコンパイルするには、sysglobl.dllへの参照を追加する必要があります。
カスタム カルチャは、そのコンピューターの管理者権限を持つユーザーのみがコンピューターに登録できます。 そのため、通常、アプリはカスタム カルチャを作成してインストールしません。 代わりに、 CultureAndRegionInfoBuilder クラスを使用して、管理者がカスタム カルチャの作成、インストール、登録に使用できる特殊なツールを作成できます。 カスタム カルチャがコンピューターに登録されたら、アプリで CultureInfo クラスを使用して、定義済みのカルチャの場合と同様に、カスタム カルチャのインスタンスを作成できます。
カスタム カルチャ用に生成された日付と時刻の文字列を解析する場合は、解析操作が成功する確率を向上させるために、DateTime.ParseExactまたはDateTime.TryParseExactメソッドの代わりにDateTime.ParseまたはDateTime.TryParseメソッドを使用する必要があります。 カスタム カルチャの日付と時刻の文字列は複雑であるため、解析が困難な場合があります。 ParseメソッドとTryParseメソッドは、いくつかの暗黙的な解析パターンを持つ文字列を解析しようとしますが、これらはすべて失敗する可能性があります。 これに対し、 TryParseExact メソッドでは、成功する可能性が高い 1 つ以上の正確な解析パターンをアプリケーションで明示的に指定する必要があります。
カスタム カルチャの定義と作成
CultureAndRegionInfoBuilder クラスを使用して、カスタム カルチャを定義し、名前を付けます。 カスタム カルチャには、まったく新しいカルチャ、既存のカルチャ (つまり、補足カルチャ) に基づく新しいカルチャ、または既存の .NET Framework カルチャに代わるカルチャを指定できます。 いずれの場合も、基本的な手順は同じです。
CultureAndRegionInfoBuilder コンストラクターを呼び出して、CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) オブジェクトをインスタンス化します。 既存のカルチャを置き換えるには、そのカルチャの名前と CultureAndRegionModifiers.Replacement 列挙値をコンストラクターに渡します。 新しいカルチャまたは補足カルチャを作成するには、一意のカルチャ名と、 CultureAndRegionModifiers.Neutral または CultureAndRegionModifiers.None 列挙値を渡します。
Note
CultureAndRegionModifiers.Replacement列挙値を使用してCultureAndRegionInfoBuilder オブジェクトをインスタンス化すると、CultureAndRegionInfoBuilder オブジェクトのプロパティに、置き換えられるCultureInfo オブジェクトの値が自動的に設定されます。
新しい文化または追加の文化を作成する場合:
CultureAndRegionInfoBuilder オブジェクトのプロパティを設定するには、LoadDataFromCultureInfo メソッドを呼び出し、プロパティ値が新しいオブジェクトに似たCultureInfo オブジェクトを渡します。
CultureAndRegionInfoBuilder メソッドを呼び出し、カスタム カルチャの領域を表すLoadDataFromRegionInfo オブジェクトを渡すことによって、RegionInfo オブジェクトの地域プロパティを設定します。
必要に応じて、 CultureAndRegionInfoBuilder オブジェクトのプロパティを変更します。
カスタム カルチャを別のルーチンに登録する場合は、 Save メソッドを呼び出します。 これにより、別のカスタム カルチャ インストール ルーチンに読み込んで登録できる XML ファイルが生成されます。
カスタム カルチャの登録
カルチャを作成するアプリケーションとは別のカスタム カルチャの登録アプリケーションを開発する場合は、 CreateFromLdml メソッドを呼び出して、カスタム カルチャの定義を含む XML ファイルを読み込み、 CultureAndRegionInfoBuilder オブジェクトをインスタンス化します。 登録を処理するには、 Register メソッドを呼び出します。 登録を成功させるには、カスタム カルチャを登録するアプリケーションがターゲット システムの管理特権で実行されている必要があります。それ以外の場合、 Register の呼び出しは UnauthorizedAccessException 例外をスローします。
Warning
カルチャ データは、システムによって異なる場合があります。 CultureAndRegionInfoBuilder クラスを使用して、複数のシステム間で統一されたカスタム カルチャを作成し、既存のCultureInfoとRegionInfoオブジェクトからデータを読み込んでカスタム カルチャを作成し、それをカスタマイズする場合は、2 つの異なるユーティリティを開発する必要があります。 1 つ目はカスタム カルチャを作成し、XML ファイルに保存します。 2 つ目は、 CreateFromLdml メソッドを使用して XML ファイルからカスタム カルチャを読み込み、ターゲット コンピューターに登録します。
登録プロセスでは、次のタスクが実行されます。
CultureAndRegionInfoBuilder オブジェクトで定義されている情報を含む .nlp ファイルを作成します。
ターゲット コンピューターの %windir%\Globalization システム ディレクトリに .nlp ファイルを格納します。 これにより、カスタム カルチャの設定をセッション間で保持できます。 (.nlp ファイルはシステム ディレクトリに格納されているため、 CultureAndRegionInfoBuilder メソッドには管理特権が必要です)。
次に新しいカスタム カルチャを作成する要求が発生した場合に、内部キャッシュではなく、%windir%\Globalization システム ディレクトリを検索するように、.NET Framework を準備します。
カスタム カルチャが正常に登録されると、.NET Framework によって定義済みのカルチャと区別できません。 カスタム カルチャは、 CultureAndRegionInfoBuilder メソッドの呼び出しによってローカル コンピューターから .nlp ファイルが削除されるまで使用できます。
カスタム カルチャのインスタンス化
カスタム カルチャのインスタンスは、次のいずれかの方法で作成できます。
- カルチャ名を指定してCultureInfo.CultureInfoコンストラクターを呼び出します。
- カルチャ名を使用して CultureInfo.CreateSpecificCulture メソッドを呼び出します。
- カルチャ名を使用して CultureInfo.GetCultureInfo メソッドを呼び出します。
さらに、CultureInfo メソッドによって返されるCultureInfo.GetCulturesオブジェクトの配列には、カスタム カルチャが含まれています。
Example
次の例では、米国のロシア語を表すカスタム ru-US カルチャを定義します。 この例では、ロシア語 (ロシア) CultureInfo オブジェクトと米国 RegionInfo オブジェクトから設定を読み込んでカスタム カルチャを定義し、 CultureAndRegionInfoBuilder プロパティの数を設定します。 この例では、カスタム カルチャを登録し、それをインスタンス化して現在のカルチャにします。
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",
CultureAndRegionModifiers.None);
car1.LoadDataFromCultureInfo(CultureInfo.CreateSpecificCulture("ru-RU"));
car1.LoadDataFromRegionInfo(new RegionInfo("en-US"));
car1.CultureEnglishName = "Russian (United States)";
car1.CultureNativeName = "русский (США)";
car1.CurrencyNativeName = "Доллар (США)";
car1.RegionNativeName = "США";
// Register the culture.
try {
car1.Register();
}
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}",
Thread.CurrentThread.CurrentCulture.Name);
Console.WriteLine("Writing System: {0}",
Thread.CurrentThread.CurrentCulture.TextInfo);
}
}
// 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.LoadDataFromCultureInfo(CultureInfo.CreateSpecificCulture("ru-RU"))
car1.LoadDataFromRegionInfo(New RegionInfo("en-US"))
car1.CultureEnglishName = "Russian (United States)"
car1.CultureNativeName = "русский (США)"
car1.CurrencyNativeName = "Доллар (США)"
car1.RegionNativeName = "США"
' Register the culture.
Try
car1.Register()
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}",
Thread.CurrentThread.CurrentCulture.Name)
Console.WriteLine("Writing System: {0}",
Thread.CurrentThread.CurrentCulture.TextInfo)
End Sub
End Module
' The example displays the following output:
' Current Culture: ru-US
' Writing System: TextInfo - ru-US
コンストラクター
| 名前 | 説明 |
|---|---|
| CultureAndRegionInfoBuilder(String, CultureAndRegionModifiers) |
CultureAndRegionInfoBuilder クラスの新しいインスタンスを初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| AvailableCalendars |
この CultureAndRegionInfoBuilder オブジェクトでサポートされているカレンダーの配列を取得または設定します。 |
| CompareInfo |
カルチャの文字列を比較する方法を定義する CompareInfo オブジェクトを取得または設定します。 |
| ConsoleFallbackUICulture |
既定のグラフィック ユーザー インターフェイス カルチャが不適切な場合に、コンソール アプリケーションに適した代替ユーザー インターフェイス カルチャを取得または設定します。 |
| CultureEnglishName |
カルチャ名を英語で取得または設定します。 |
| CultureName |
作成するカルチャの名前を取得します。 |
| CultureNativeName |
カルチャが表示するように設定されている形式と言語のカルチャ名を取得または設定します。 |
| CultureTypes |
現在のCultureTypes オブジェクトによって表されるカルチャを表すCultureAndRegionInfoBuilder値を取得します。 |
| CurrencyEnglishName |
現在の CultureAndRegionInfoBuilder オブジェクトで表される国/地域で使用される通貨の名前を英語で取得または設定します。 |
| CurrencyNativeName |
現在の CultureAndRegionInfoBuilder オブジェクトで表される国/地域で使用される通貨のネイティブ名を取得または設定します。 |
| GeoId |
地理的な地域、国、市区町村、または場所の一意の識別番号を取得または設定します。 |
| GregorianDateTimeFormat |
グレゴリオ暦に従って日付と時刻の形式を定義する DateTimeFormatInfo オブジェクトを取得または設定します。 |
| IetfLanguageTag |
RFC 4646 標準の "言語の識別用タグ" に従って書式設定されたカルチャ名を取得または設定します。 |
| IsMetric |
国/地域が測定にメトリック システムを使用するかどうかを示す値を取得または設定します。 |
| ISOCurrencySymbol |
国/地域に関連付けられている 3 文字の ISO 4217 通貨記号を取得または設定します。 |
| IsRightToLeft |
現在の CultureAndRegionInfoBuilder オブジェクトに関連付けられた書き込みシステム内のテキスト行の主な方向を取得または設定します。 |
| KeyboardLayoutId |
アクティブな入力ロケール識別子を取得または設定します。 |
| LCID |
現在の CultureAndRegionInfoBuilder オブジェクトのカルチャ識別子を取得します。 |
| NumberFormat |
数値、通貨、およびパーセンテージを表示するカルチャに適した形式を定義する NumberFormatInfo オブジェクトを取得または設定します。 |
| Parent |
現在のカスタム カルチャの親カルチャを表す CultureInfo オブジェクトを取得または設定します。 |
| RegionEnglishName |
国/地域の完全な名前を英語で取得または設定します。 |
| RegionName |
現在の CultureAndRegionInfoBuilder オブジェクトの国/地域の名前を取得します。 |
| RegionNativeName |
このカスタム カルチャのユーザーによって認識される国/地域の完全な名前を取得または設定します。 |
| TextInfo |
このカスタム カルチャに関連付けられている書き込みシステムを定義する TextInfo オブジェクトを取得または設定します。 |
| ThreeLetterISOLanguageName |
このカスタム カルチャの言語の ISO 639-2 3 文字コードを取得または設定します。 |
| ThreeLetterISORegionName |
国/地域の ISO 3166 で定義されている 3 文字のコードを取得または設定します。 |
| ThreeLetterWindowsLanguageName |
Windows API で定義されている言語の 3 文字のコードを取得または設定します。 |
| ThreeLetterWindowsRegionName |
現在のカスタム カルチャによって表される国/地域に Windows によって割り当てられた 3 文字のコードを取得または設定します。 |
| TwoLetterISOLanguageName |
現在の CultureInfo オブジェクトの言語の ISO 639-1 2 文字コードを取得または設定します。 |
| TwoLetterISORegionName |
国/地域の ISO 3166 で定義されている 2 文字のコードを取得または設定します。 |
メソッド
| 名前 | 説明 |
|---|---|
| CreateFromLdml(String) |
オブジェクトの表現を含む指定した XML ファイルから、 CultureAndRegionInfoBuilder オブジェクトを再構成します。 |
| Equals(Object) |
指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
| GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| LoadDataFromCultureInfo(CultureInfo) |
指定したCultureAndRegionInfoBuilder オブジェクトの対応するプロパティを使用して、現在のCultureInfo オブジェクトのプロパティを設定します。 |
| LoadDataFromRegionInfo(RegionInfo) |
指定したCultureAndRegionInfoBuilder オブジェクトの対応するプロパティを使用して、現在のRegionInfo オブジェクトのプロパティを設定します。 |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| Register() |
現在の CultureAndRegionInfoBuilder オブジェクトをローカル コンピューター上のカスタム カルチャとして保持し、そのカルチャをアプリケーションで使用できるようにします。 管理特権が必要です。 |
| Save(String) |
現在の CultureAndRegionInfoBuilder オブジェクトの XML 表現を指定したファイルに書き込みます。 |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
| Unregister(String) |
ローカル コンピューターからカスタム カルチャを削除します。 |