Filtern von Sprachen in einer MUI-Konsolenanwendung

Eine MUI-Konsolenanwendung kann entweder Systemeinstellungen oder anwendungsspezifische Einstellungen für ihre Benutzeroberflächensprachen unterstützen. In diesem Thema wird das Filtern von Sprachen für diesen Anwendungstyp erläutert.

Beschränken der anzuzeigenden Sprachen

Im Gegensatz zu einem grafischen Fenster kann die Windows-Konsole keine komplexen Skripts wie Arabisch, Hebräisch, Persisch, Hindi, Urdu, Thai und viele andere anzeigen. Daher können viele Benutzeroberflächensprachen unter keinen Umständen von der Konsole angezeigt werden.

Die Konsole kann nur Zeichen der einzelnen OEM-Codepage anzeigen, die der aktuellen Sprache für Nicht-Unicode-Anwendungen zugeordnet ist. Für jede OEM-Codepage verwendet die Konsole eine bestimmte Schriftart, und dies bietet möglicherweise keine vollständige Abdeckung für diese Codepage.

Diese konsolenbezogenen Einschränkungen verringern die Anzahl der Benutzeroberflächensprachen, die die Konsole auf einem bestimmten Computer anzeigen kann. Wenn die aktuelle Sprache für Nicht-Unicode-Anwendungen beispielsweise Japanisch ist und der Benutzer versucht, deutschen Text in der Konsole anzuzeigen, werden Zeichen mit Umlauten nicht ordnungsgemäß angezeigt. Wenn die aktuelle Sprache für Nicht-Unicode-Anwendungen Deutsch ist und der Benutzer japanischen Text in der Konsole anzeigen möchte, sind die Ergebnisse viel schlechter, sodass der Text fast unverständlich ist.

Hinweis

Wenn Sie Konsolenunterstützung für Ihre MUI-Anwendungen bereitstellen, denken Sie daran, dass die Konsole nur eingeschränkte Unterstützung für Eingabemethoden-Editoren bietet.

 

Festlegen der Sprache für die Konsolenausgabe

Unter Windows Vista und höher legt eine Konsolenanwendung die Sprache zur Unterstützung der Konsolenanzeige fest, indem SetThreadPreferredUILanguages aufgerufen wird. In diesem Aufruf übergibt die Anwendung MUI_CONSOLE_FILTER im dwFlags-Parameter und NULL für pwszLanguagesBuffer. Eine Alternative besteht darin, SetThreadUILanguage mit dem Sprachbezeichner 0 aufzurufen. Diese Einstellung bewirkt, dass die Funktion die Sprache auswählt, die die Konsolenanzeige am besten unterstützt.

Unter Windows XP kann die Anwendung die Sprache für die Konsolenausgabe nur durch Aufrufen von SetThreadUILanguage mit dem Sprachbezeichner 0 festlegen.

Festlegen von Anwendungsspracheneinstellungen