方法 : Windows フォームのグローバリゼーション用のカルチャおよび UI カルチャを設定する
更新 : 2007 年 11 月
Visual Basic アプリケーションまたは Visual C# アプリケーションでは、2 つのカルチャの値により、アプリケーションに読み込まれるリソースと、通貨、数値、日付などの情報の書式設定の方法が決定されます。読み込まれるリソースは UI カルチャによって決定され、表示形式オプションはカルチャによって決定されます。アプリケーションが最初にカルチャの値を検索する場所は、CurrentCulture プロパティおよび CurrentUICulture プロパティです。これらのプロパティの値は、コード内に次の手順で設定できます。
コントロール パネルの [地域のオプション] で設定される、オペレーティング システムのユーザー ロケールが CurrentCulture プロパティの既定の値になります。オペレーティング システムで使用されるユーザー インターフェイス (UI) の言語を示す、オペレーティング システムの UI 言語が、CurrentUICulture プロパティの既定の値になります。Windows 2000 および Windows XP MultiLanguage Edition では、現在のユーザーの UI 言語設定が CurrentUICulture の既定の値になります。
場合によっては、アプリケーションはオペレーティング システムに応じて変更されるようにし、数値や日付は変更されないようにすることが必要な場合があります。英語への関連付けは維持したまま、特定の地域に限定しない固定的なカルチャで情報を表示するカルチャのクラスを指定できます。これらのクラスの詳細については、「カルチャ別の書式設定」と「System.Globalization」を参照してください。インバリアント カルチャの詳細については、「InvariantCulture」を参照してください。カルチャ設定のオプションの詳細については、「CultureInfo」を参照してください。
特定の地域に適した表示形式オプションを設定するには
ユーザーまたはオペレーティング システムの設定をオーバーライドする場合は、CurrentCulture プロパティと CurrentUICulture プロパティを設定します。
通常、アプリケーションの UI のすべての部分がその地域にとって適切であるようにカルチャを指定します。したがって、カルチャの設定は InitializeComponent メソッドを呼び出す前に行います。
' Put the Imports statements at the beginning of the code module Imports System.Threading Imports System.Globalization ' Put the following code before InitializeComponent() ' Sets the culture to French (France) Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR") ' Sets the UI culture to French (France) Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR")
// Put the using statements at the beginning of the code module using System.Threading; using System.Globalization; // Put the following code before InitializeComponent() // Sets the culture to French (France) Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR"); // Sets the UI culture to French (France) Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR");
メモ : カルチャの値には必ず特定の地域 ("fr-FR" など) が指定されている必要があります。ニュートラル カルチャ ("fr" など) は指定しないでください。"fr" などのニュートラル カルチャを設定すると問題が生じることがあります。これは、フランス、ベルギー、およびケベック州では使用される通貨が異なるにもかかわらず、この設定がフランス語圏のすべての地域に適用されることがあるためです。
CurrentCulture プロパティの値に関係なく同じ表示形式を使用する文字列ごとに、固定的なカルチャを使って表示形式メソッドを呼び出します。
Dim MyInt As Integer = 100 Dim MyString As String = MyInt.ToString("C", CultureInfo.InvariantCulture) MessageBox.Show(MyString)
int MyInt = 100; string MyString = MyInt.ToString("C", CultureInfo.InvariantCulture); MessageBox.Show(MyString);