次の方法で共有


NLS の用語

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

ロケールと言語の用語

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

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

 

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

 

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

 

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

 

コード ページ

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

入力言語

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

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

既定の入力言語はオペレーティング システムのローカライズされた言語であり、新しいアプリケーションが起動されたとき (または一部のアプリケーションで新しいウィンドウが開かれたときに) アクティブな設定です。 別の入力言語への切り替えは、アプリケーションごとに行われます。 つまり、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 の言語グループがあります。

アラビア語
アルメニア語
バルト
中央ヨーロッパ
キリル
グルジア語
ギリシャ語
ヘブライ語
インド
日本語
韓国語
簡体字中国語
繁体字中国語
タイ語
チュルク
ベトナム語

 

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

手記

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

 

場所

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

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

標準と形式

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

Standards および Formats 変数の設定を取得するには、アプリケーションは 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 言語をスペイン語 (スペイン) に設定できます。

言語サポート について

ロケールと言語

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