Filtern von Sprachen in einer CONSOLE-Konsolenanwendung

Eine CONSOLE-Konsolenanwendung kann entweder Systemeinstellungen oder anwendungsspezifische Einstellungen für ihre Benutzeroberflächensprachen unterstützen. In diesem Thema wird die Filterung von Sprachen für diese Art von Anwendung erläutert.

Einschränken der anzuzeigende Sprachen

Im Gegensatz zu einem grafischen Fenster kann die Windows-Konsole keine komplexen Skriptsanzeigen, z. B. Arabisch, Hebräisch, Griechisch, Hindi, Urdu, Thai, usw. Daher können viele Sprachen der Benutzeroberfläche unter keinen Umständen von der Konsole angezeigt werden.

Die Konsole kann nur Zeichen von 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, wodurch der Text fast unverständlich wird.

Hinweis

Beachten Sie beim Bereitstellen von Konsolenunterstützung für Ihre CAB-Anwendungen, dass die Konsole nur eingeschränkte Unterstützung für Eingabemethoden-Editorenbietet.

Festlegen der Sprache für die Konsolenausgabe

Auf Windows Vista und höher legt eine Konsolenanwendung die Sprache zur Unterstützung der Konsolenanzeige fest, indem SetThreadPreferredUILanguagesaufgerufen wird. In diesem Aufruf übergibt die Anwendung DEN 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.

Auf Windows XP kann die Anwendung die Sprache für die Konsolenausgabe nur festlegen, indem SetThreadUILanguage mit dem Sprachbezeichner 0 aufgerufen wird.

Festlegen von Einstellungen für die Anwendungssprache