MUI コンソール アプリケーションでの言語のフィルター処理

MUI コンソール アプリケーションは、ユーザー インターフェイス言語のシステム設定またはアプリケーション固有の設定をサポートできます。 このトピックでは、この種類のアプリケーションの言語のフィルター処理について説明します。

表示する言語を制限する

グラフィカル ウィンドウとは異なり、Windows コンソールでは、アラビア語、ヘブライ語、ペルシャ語、ヒンディー語、ウルドゥー語、タイ語などの 複雑なスクリプトを表示できません。 そのため、多くのユーザー インターフェイス言語は、どのような状況でもコンソールで表示できません。

コンソールでは、Unicode 以外のアプリケーションの現在の言語に関連付けられている 1 つの OEM コード ページ の文字のみを表示できます。 OEM コード ページごとに、コンソールは特定のフォントを使用します。これにより、そのコード ページの完全な範囲が提供されない場合があります。

これらのコンソール関連の制限により、コンソールが特定のコンピューターに表示できるユーザー インターフェイス言語の数が減ります。 たとえば、Unicode 以外のアプリケーションの現在の言語が日本語で、ユーザーがコンソールにドイツ語のテキストを表示しようとすると、umlauts を含む文字が正しく表示されません。 Unicode 以外のアプリケーションの現在の言語がドイツ語で、ユーザーがコンソールに日本語のテキストを表示する場合、結果ははるかに悪く、テキストはほとんど理解できません。

Note

MUI アプリケーションのコンソール サポートを提供する場合、コンソールでは 入力メソッド エディターのサポートが制限されることに注意してください。

 

コンソール出力の言語を設定する

Windows Vista 以降では、コンソール アプリケーションは SetThreadPreferredUILanguages を呼び出して、コンソール表示をサポートするように言語を設定します。 この呼び出しでは、アプリケーションは dwFlags パラメーターでMUI_CONSOLE_FILTERを渡し、pwszLanguagesBuffer場合は NULL を渡します。 別の方法として、言語識別子 0 を使用して SetThreadUILanguage を呼び出します。 この設定により、関数はコンソール表示を最もよくサポートする言語を選択します。

Windows XP では、アプリケーションは、言語識別子が 0 の SetThreadUILanguage を呼び出すことによってのみ、コンソール出力の言語を設定できます。

アプリケーション言語の基本設定の設定