NLS の用語

このトピックでは、NLS 機能を使用する際に重要な用語を定義します。

ロケールと言語の用語

次の表は、ロケールと言語の用語をまとめたものです。 「 ロケールと言語」も参照してください。

言語グループ Unicode 対応でないプログラムの言語 (Language for non-Unicode programs) 標準と書式
目的 言語グループのオペレーティング システムで必要なすべてのキーボード レイアウト、入力メソッド エディター (IME)、TrueType フォント、フォント リンク、ライセンス パッケージ ファイル (LPK)、ビットマップ フォント、およびコード ページ変換テーブルを提供します。 したがって、この一覧の他のすべての設定に影響します。 オペレーティング システムの既定のビットマップ フォント、OEM、ANSI、Macintosh コード ページを決定します。 この言語は、完全に Unicode ではないアプリケーションにのみ影響します。 Windows XP より前のバージョンでは、この言語は "システム ロケール" と呼ばれていました。 日付、時刻、通貨、数値を各ユーザーの既定値として書式設定するために使用する設定を決定します。 また、テキストの並べ替え順序も決定します。 Windows XP より前のバージョンでは、標準と形式は "ユーザー ロケール" と呼ばれていました。
最初のセット インストール インストール インストール
ユーザーが変更する方法 地域オプション (コントロール パネル項目)
Windows XP: 地域と言語のオプション
(管理者のみ)
地域オプション (コントロール パネル項目)
Windows XP: 地域と言語のオプション
(管理者のみ)
地域オプション (コントロール パネル項目)
Windows XP: 地域と言語のオプション
[Default] ローカライズされたバージョンの言語を表示するには、西ヨーロッパと米国と言語グループが必要です。 ローカライズされたバージョンの言語。 ローカライズされたオペレーティング システムの言語。
Function EnumSystemLanguageGroups GetSystemDefaultLangID GetUserDefaultLCIDGetUserDefaultLocaleName

 

スレッド ロケール 入力言語 システムの既定の UI 言語
目的 スレッドの日付、時刻、通貨、および大きな数値の書式設定に使用される設定を決定します。 また、テキストの並べ替え順序も決定します。 言語と入力メソッドで構成されます。 メニューとダイアログ、メッセージ、セットアップ情報 (INF) ファイル、およびヘルプ ファイルの既定の言語を決定します。
Windows Vista 以降: インストール言語と呼ばれます。 より限定的な役割を果たし、主にシステム優先 UI 言語に置き換えられます。
詳細については、「ユーザー インターフェイス言語管理」を参照してください。
最初のセット 既定値は標準と書式 インストール インストール
ユーザーが変更する方法 SetThreadLocale 地域オプション (コントロール パネル項目)
Windows XP: 地域と言語のオプション
いいえ
[Default] 標準と書式 既定の入力メソッドを使用したローカライズされたバージョンの言語。 ローカライズされたバージョンの言語。
Function GetThreadLocale GetKeyboardLayout GetSystemDefaultUILanguage

 

システム UI 言語、システム優先 UI 言語 ユーザー UI 言語、ユーザーが優先する UI 言語 スレッド優先 UI 言語
目的 オペレーティング システムのメニューとダイアログ、メッセージ、INF ファイル、およびヘルプ ファイルの言語を決定します。 詳細については、「 ユーザー インターフェイス言語管理」を参照してください。 ユーザーのメニューとダイアログ、メッセージ、ヘルプ ファイルの言語を決定します。 詳細については、「 ユーザー インターフェイス言語管理」を参照してください。 Windows Vista 以降: アプリケーション スレッドの優先言語を指定します。 詳細については、「 ユーザー インターフェイス言語管理」を参照してください。
最初のセット 既定値は NULL 既定値は NULL 既定値は NULL
ユーザーが変更する方法 地域と言語のオプション
(管理者のみ)
地域オプション (コントロール パネル項目)
Windows XP: 地域と言語のオプション
SetThreadPreferredUILanguages
[Default] Windows Vista 以降: ローカライズされたバージョンの言語。その後にフォールバックが続きます。 Windows Vista より前: ローカライズされたバージョンの言語。
Windows Vista 以降: ローカライズされたバージョンの言語。その後にフォールバックが続きます。
Null リスト
Function GetSystemPreferredUILanguages GetUserDefaultUILanguageGetUserPreferredUILanguages GetThreadPreferredUILanguages

 

優先 UI 言語を処理する
目的 Windows 7 以降: アプリケーション プロセスに適した言語を決定します。 詳細については、「 ユーザー インターフェイス言語管理」を参照してください。
最初のセット 既定値は NULL
ユーザーが変更する方法 地域と言語のオプション (管理者のみ)
[Default] Windows 7 以降: ローカライズされたバージョンの言語。その後にフォールバックが続きます。
Function GetProcessPreferredUILanguagesSetProcessPreferredUILanguages

 

コード ページ

256 コード ポイントのコード ページが 1 つのテキスト内のスクリプトの混在をサポートできないことは、Unicode の台頭のメイン理由の 1 つでした。 コード ページは、コンソール コードを記述したり、レガシ アプリケーションを維持したり、古いバージョンの Windows で実行したり、Unicode 対応ではない Microsoft 以外のソフトウェアとインターフェイスしたりするために重要です。

入力言語

入力言語は、言語 (ギリシャ語など) と入力メソッド (キーボードなど) を記述するプロセスごとのデータ変数によって表されます。 複数の入力言語をインストールでき、ユーザーはそれらを切り替えることができます。

入力言語の値を設定して取得するために、アプリケーションは LoadKeyboardLayoutGetKeyboardLayout をそれぞれ呼び出します。 ユーザーは、コントロール パネルの地域と言語のオプションの部分の [言語] タブを使用して、入力言語を追加および削除できます。

既定の入力言語はオペレーティング システムのローカライズされた言語であり、新しいアプリケーションが開始されたとき (または一部のアプリケーションで新しいウィンドウが開かれた場合) にアクティブになる設定です。 別の入力言語への切り替えは、アプリケーションごとに行われます。 つまり、2 つの異なる入力言語を 2 つの異なるアプリケーションで使用できます。 たとえば、ユーザーは、国際米国キーボード レイアウトを使用してドイツ語を入力し、音声入力を使用した英語 (Microsoft 以外のソフトウェアを使用)、スペイン語は 3 つの異なるアプリケーションで IME を使用して入力できます。

Unicode 以外のプログラムの言語

Unicode 以外のプログラムの言語 (以前は "システム ロケール" と呼ばれます) によって、既定でオペレーティング システムで使用されるコード ページが決まります。 Unicode 以外のプログラム設定の言語は、Unicode 以外のアプリケーション 、つまり ANSI アプリケーションにのみ影響します。 言語を設定すると、この言語にローカライズされた Unicode ベース以外のオペレーティング システムをエミュレートするように Windows に指示されます。 Unicode 以外のプログラムの言語を変更すると、指定した言語で Unicode 以外のアプリケーションをサポートするために必要なビットマップ フォント ファイルがインストールされます。 ユーザーが Unicode 以外のプログラムの言語を選択できるようにするには、適切な言語グループをインストールする必要があります。 アプリケーションでは、Unicode 以外のプログラムの言語を選択するためのスクリプト サポートが必要です。 Unicode 以外のプログラムの言語はシステムごとの設定であり、再起動を実装する必要があります。

Unicode 以外のプログラムでは、2 つの言語間に顕著な違いがない場合があります。 たとえば、ドイツ語 (ニュートラル) ロケールとドイツ語 (オーストリア) ロケールの場合です。 一般に、1 つの言語グループの設定は非常に似ていますが、OEM または MAC のコード ページでのみ異なります。

ANSI アプリケーションでは、インストール時に Unicode 以外のプログラム設定の言語をチェックする必要があります。 GetACP または GetOEMCP を使用して値を取得します。 Unicode 以外のプログラムの言語を設定するための関数はサポートされていません。 ただし、ユーザーは、コントロール パネルの地域と言語のオプションの部分にある [詳細設定] タブを使用して変更できます。 Unicode 以外のプログラム設定の言語の例を次に示します。

  1. 日本語 Windows 95 用に設計された日本語アプリケーションを実行するドイツ人ユーザーは、Unicode 以外のプログラムの言語として日本語を選択する必要があります。 この選択後、Unicode 以外のドイツ語アプリケーションに問題が発生します。 たとえば、ドイツ語のウムラウト ( ̈) が正しく表示されません。
  2. Unicode 以外のドイツ語アプリケーションで日本語テキストを入力するドイツ語ユーザーは、Unicode 以外のプログラムの言語として日本語を選択する必要があります。 最初の例と同様に、Unicode 以外のアプリケーションでドイツ語のテキストを入力する際に問題が発生します。
  3. Unicode 以外のアラビア語アプリケーションでアラビア語、フランス語、英語を入力するアラビア語ユーザーは、Unicode 以外のプログラムの言語としてアラビア語を選択する必要があります。これは、アラビア語 ANSI コード ページにはほとんどのフランス文字とすべての英語文字が含まれているためです。

言語グループ

言語グループは、Unicode 以外のプログラム、標準と形式、入力言語、および選択できるユーザー インターフェイス言語の言語を制御します。 ローカライズされたバージョンごとに、指定された言語グループが既定であり、削除できません。 たとえば、Windows では既定で西ヨーロッパと米国言語グループがインストールされます。 したがって、英語以外の国/地域に英語バージョンの Windows がインストールされている場合、ユーザーは通常、別の言語グループをインストールします。

言語グループを追加すると、Windows は必要なキーボード ファイル、入力メソッド エディター (IME)、TrueType フォント ファイル、ビットマップ フォント ファイル、および各国語サポート (.nls) ファイルをコピーします (ただし、アクティブ化されません)。 言語グループを追加すると、フォント リンクのレジストリ値も追加され、複雑なスクリプト言語 (アラビア語、ヘブライ語、インド語、タイ語) のスクリプト エンジンがインストールされます。

西ヨーロッパと米国言語グループに加えて、16 の言語グループがあります。

アラビア語
アルメニア語
バルト語
中央ヨーロッパ
キリル文字
ジョージア語
ギリシャ語
ヘブライ語
インド
日本語
韓国語
簡体中国語
Traditional Chinese
タイ語
Turkic
ベトナム語

 

言語グループの任意の数と組み合わせは、任意のオペレーティング システムにインストールできます。 たとえば、スペイン語のユーザーはキリル言語グループをインストールして、ロシア語のテキストを操作できます。 この場合、ワープロ アプリケーションはキリル言語グループもサポートする必要があります。

Note

適切な言語グループを追加しても、アプリケーションでテキストを受け入れることは自動的には有効になりません。 テストすることが推奨されます。 たとえば、Unicode 以外のアプリケーションでは、Unicode 以外のプログラムの言語を変更する必要がある場合があります。

 

Location

Windows XP: 場所は地理的識別子です。 これは、ユーザーが住んでいる国/地域を定義するユーザーごとのデータ変数で表されます。

値を設定するために、アプリケーションは SetUserGeoID を呼び出します。 値を取得するために、アプリケーションは GetUserGeoID を呼び出します。

標準と書式

標準と書式 (旧称 "ユーザー ロケール") は、既定の並べ替え順序と、日付、時刻、通貨、数値の書式設定の既定の設定を決定するユーザーごとの変数です。 変数は言語として表示されますが (場合によっては国/地域と組み合わせて)、言語自体ではありません。 たとえば、[標準と書式] 変数をヘブライ語に設定すると、ユーザーはヘブライ語の書式設定規則を使用する必要があり、必ずしもヘブライ語とは限りません。 さらに、標準と書式変数は、日と月の名前に使用される文字列を決定します。 たとえば、ユーザーが "1998 年 11 月 25 日" と表示された場合、"November" 文字列は [標準と書式] 変数に基づいて変更できます。 変数を変更すると、言語の既定の設定で入力ロケールが自動的に追加されます。

[標準と書式] 変数の設定を取得するために、アプリケーションは GetUserDefaultLCID または GetUserDefaultLocaleName を呼び出します。 変数を設定するために使用できる NLS 関数はありません。 ただし、ユーザーは、コントロール パネルの地域と言語のオプションの部分にある [地域のオプション] タブを使用して変更できます。

アプリケーションでは、通常、標準と書式の変数設定を使用してデータを表示する必要があります。 ただし、固定ロケールを使用してデータを表示するアプリケーションでは、LOCALE_USER_DEFAULTを使用するのではなく、特定のロケール識別子を渡す必要があります。

スレッド ロケール

スレッド ロケールは、スレッドの日付、時刻、通貨、および大きな数値の書式設定を決定するスレッドごとのロケール データ変数によって表されます。 既定では、[標準] と [形式] で現在選択されているロケールの値が設定されます。 スレッド ロケールを設定するために、アプリケーションは SetThreadLocale を呼び出します。 スレッド ロケールを取得するために、アプリケーションは GetThreadLocale を呼び出します。

ほとんどの場合、スレッド ロケールを上書きしないでください。 通常は、サーバー アプリケーションのスレッド ロケールをクライアント コンピューターの Standards および Formats 変数と同期するためにのみ使用する必要があります。 たとえば、世界中の銀行で使用されているニューヨーク証券取引所の金融株式取引アプリケーションでは、時刻、日付、株価を米国形式で表示する必要があります。 このアプリケーションでは、SetThreadLocale を使用してスレッド ロケールを英語 (米国) に設定し、NLS 関数を使用して日付、時刻、株価を書式設定します。

スレッド ロケールを変更しても、すべての API 関数に影響を与えるわけではありません。 したがって、必ずしも Standards 変数と Formats 変数をオーバーライドする信頼性の高い方法であるとは限りません。 代わりに、標準と形式を制御するアプリケーションでは、固定ロケールを使用してデータを表示し、LOCALE_USER_DEFAULTを使用する代わりに特定のロケール識別子を渡す必要があります。

NLS の例

次の例は、標準と書式、Unicode 以外のプログラムの言語、場所、およびユーザー UI 言語の相互作用を示しています。

チリ出身で、米国に住んでいるユーザーには、Windows XP 英語を実行しているコンピューターがあります。 ユーザーは、インターネット サービス プロバイダー (ISP) を使用して米国の天気を取得する場所を米国に設定します。 ただし、[標準と書式] 変数はスペイン語 (チリ) に設定されているため、情報はチリの標準に従って書式設定されます。 さらに、ユーザーは ANSI アプリケーションである韓国語ワード プロセッサを使用するため、Unicode 以外のプログラムの言語は韓国語 (韓国) に設定されます。 アプリケーションを使用するために、ユーザーは英語のキーボードを持っており、2 番目の入力言語をサポートするために韓国語 IME もインストールします。 コンピューターを共有しているが英語に慣れているユーザーの同僚は、コンピューターの使用時にユーザー UI 言語をスペイン語 (スペイン) に設定できます。

各国語サポートについて

ロケールと言語

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