ロケールと言語

"language" という用語は、音声および書き込み通信で使用されるプロパティのコレクションを示します。 各言語には、オペレーティング システム上の言語の地理的な場所を表すために使用される特定のコード ページ (ANSI、DOS、Macintosh) を示す言語名と言語識別子があります。 ニュートラル言語は、英語の場合は "en" などの名前で示されます。 より地理的に特定の言語は、ロケールと国/地域の両方の情報を含む名前で示すことができます。 たとえば、ロケールの英語 (米国) の言語名は "en-US" です。

"ロケール" は、値のリストとして表される言語関連のユーザー設定情報のコレクションです。 Windows XP は 150 を超えるロケールをサポートし、Windows Vista は約 200 をサポートしています。 各ロケールは、言語と並べ替え順序によって定義され、ロケール名とロケール識別子の両方を持っています。 ドイツ語 (ドイツ) のロケール名の例として、"de-DE_phonebook" があります。

各オペレーティング システムには少なくとも 1 つのロケールがインストールされており、多くの場合、ユーザーが選択できるロケールが多数あります。 各ロケールには、名前と識別子以外のさまざまな情報が関連付けられています。 ロケール情報の種類については、「 ロケール情報定数」を参照してください。

オペレーティング システムは各スレッドにロケールを割り当て、最初は LOCALE_SYSTEM_DEFAULT によって定義された "システムの既定のロケール" を割り当てます。 このロケールは、オペレーティング システムがインストールされている場合、またはユーザーがコントロール パネルの地域と言語のオプション部分を使用して選択したときに設定されます。 ユーザーに属するプロセスでスレッドを実行すると、オペレーティング システムによって "ユーザーの既定のロケール" がスレッドに割り当てられます。 このロケールは、 LOCALE_USER_DEFAULTによって定義されます。 アプリケーションは 、SetThreadLocale 関数を使用してスレッドのロケールを明示的に設定することで、いずれかの既定をオーバーライドできます。

言語の実装には、対応するロケールが必要です。 オペレーティング システムは、言語の特定のバージョン (通常は最も広く普及しているロケール) に関連付けられているロケールのデータを選択することで、ニュートラル言語を実装します。

Windows Vista 以降では、特定の言語が、カスタム ロケールの一種である補足ロケールに対応する可能性があります。 補足ロケールはすべて 1 つのロケール識別子を共有するため、アプリケーションは識別子ではなく、これらのロケールと対応する言語を名前で処理する必要があります。

言語の概念はロケールの概念と密接に関連していますが、2 つの用語は互換性がありません。 一般に、 多言語ユーザー インターフェイス に関連する関数は言語を扱い、NLS 関数はロケールに基づいて動作します。

このセクションでは、次のトピックについて説明します。

各国語サポートについて

コード ページ

ロケール情報定数

多言語ユーザー インターフェイス

地理的な場所の表

ユーザー インターフェイス言語管理

SetThreadLocale