Filtern von Sprachen in einer MUI-Konsolenanwendung

Eine MUI-Konsolenanwendung kann entweder Systemeinstellungen oder anwendungsspezifische Einstellungen für seine Benutzeroberflächensprachen unterstützen. In diesem Thema wird die Filterung 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 anzeigen, z. B. Arabisch, Hebräisch, Persisch, Hindi, Urdu, Thai und viele andere. Daher können viele Benutzeroberflächensprachen unter umständen nicht von der Konsole angezeigt werden.

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

Diese konsolenbezogenen Einschränkungen verringern die Anzahl der Benutzeroberflächensprachen, die die Konsole auf einem bestimmten Computer anzeigen kann. Wenn z. B. die aktuelle Sprache für Nicht-Unicode-Anwendungen 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 schlimmer, das Rendern des Texts ist fast unverständlich.

Hinweis

Beachten Sie beim Bereitstellen der Konsolenunterstützung für Ihre MUI-Anwendungen, dass die Konsole nur eingeschränkte Unterstützung für Eingabemethoden-Editoren bereitstellt.

 

Festlegen der Sprache für die Konsolenausgabe

Auf Windows Vista und höher legt eine Konsolenanwendung die Sprache fest, die die Konsolenanzeige unterstützt, indem Sie SetThreadPreferredUILanguages aufrufen. In diesem Aufruf übergibt die Anwendung MUI_CONSOLE_FILTER im dwFlags-Parameter und NULL für pwszLanguagesBuffer. Eine Alternative besteht darin, SetThreadUILanguage mit einem Sprachbezeichner von 0 aufzurufen. Diese Einstellung bewirkt, dass die Funktion die Sprache auswählen kann, die die Konsolenanzeige am besten unterstützt.

Auf Windows XP kann die Anwendung nur die Sprache für die Konsolenausgabe festlegen, indem Sie SetThreadUILanguage mit einem Sprachbezeichner von 0 aufrufen.

Festlegen von Anwendungsspracheeinstellungen