MUI コンソール アプリケーションは、ユーザー インターフェイス言語のシステム設定またはアプリケーション固有の設定をサポートできます。 このトピックでは、この種類のアプリケーションの言語のフィルター処理について説明します。
表示する言語を制限する
グラフィカル ウィンドウとは異なり、Windows コンソールでは、アラビア語、ヘブライ語、ペルシャ語、ヒンディー語、ウルドゥー語、タイ語など、複雑なスクリプトを表示できません。 そのため、多くのユーザー インターフェイス言語は、どのような状況でもコンソールで表示できません。
コンソールには、Unicode 以外のアプリケーションの現在の言語に関連付けられている 1 つの OEM コード ページ の文字のみを表示できます。 各 OEM コード ページについて、コンソールは特定のフォントを使用します。これにより、そのコード ページの完全な範囲が提供されない場合があります。
これらのコンソール関連の制限により、本体が特定のコンピューターに表示できるユーザー インターフェイス言語の数が減ります。 たとえば、Unicode 以外のアプリケーションの現在の言語が日本語で、ユーザーがコンソールにドイツ語のテキストを表示しようとすると、ウムラウトを含む文字が正しく表示されません。 Unicode 以外のアプリケーションの現在の言語がドイツ語で、ユーザーがコンソールに日本語のテキストを表示する場合、結果は大幅に悪化し、テキストはほとんど理解できません。
コンソール出力の言語を設定する
Windows Vista 以降では、コンソール アプリケーションは、SetThreadPreferredUILanguagesを呼び出すことによって、コンソールの表示をサポートするように言語を設定します。 この呼び出しでは、アプリケーションは dwFlags パラメーターにMUI_CONSOLE_FILTERを渡し、NULL を pwszLanguagesBufferに渡します。 別の方法として、言語識別子として0を使用してSetThreadUILanguageを呼び出します。 この設定により、関数はコンソールの表示を最もよくサポートする言語を選択します。
Windows XP では、言語識別子が 0 の SetThreadUILanguage呼び出すことによってのみ、コンソール出力の言語を設定できます。
関連トピック