SetThreadPreferredUILanguages-Funktion (winnls.h)
Legt die bevorzugten Benutzeroberflächensprachen des Threads für den aktuellen Thread fest. Weitere Informationen finden Sie unter Benutzeroberflächensprachverwaltung.
Syntax
BOOL SetThreadPreferredUILanguages(
[in] DWORD dwFlags,
[in, optional] PCZZWSTR pwszLanguagesBuffer,
[out, optional] PULONG pulNumLanguages
);
Parameter
[in] dwFlags
Flags, die das Format und die Filterung für die festzulegenden Sprachen identifizieren.
Die folgenden Formatflags geben das Sprachformat an, das für die bevorzugten Benutzeroberflächensprachen des Threads verwendet werden soll. Die Flags schließen sich gegenseitig aus, und der Standardwert ist MUI_LANGUAGE_NAME.
Es wird empfohlen, MUI_LANGUAGE_NAME anstelle von MUI_LANGUAGE_ID zu verwenden.
Wert | Bedeutung |
---|---|
|
Die Sprachzeichenfolgen des Eingabeparameters haben ein Sprachbezeichnerformat . |
|
Die Sprachzeichenfolgen des Eingabeparameters haben das Format des Sprachnamens . |
Die folgenden Filterflags geben die Filterung für die Sprachliste an. Die Flags schließen sich gegenseitig aus. Standardmäßig ist weder MUI_COMPLEX_SCRIPT_FILTER noch MUI_CONSOLE_FILTER festgelegt. Weitere Informationen zu den Filterflags finden Sie im Abschnitt Hinweise.
Wert | Bedeutung |
---|---|
|
GetThreadPreferredUILanguages sollte alle Sprachen mit komplexen Skripts durch das entsprechende Fallback ersetzen. Wenn dieses Flag angegeben wird, muss NULL für alle anderen Parameter übergeben werden. |
|
GetThreadPreferredUILanguages sollte alle Sprachen, die nicht ordnungsgemäß in einem Konsolenfenster mit den aktuellen Betriebssystemeinstellungen angezeigt werden können, durch das entsprechende Fallback ersetzen. Wenn dieses Flag angegeben wird, muss NULL für alle anderen Parameter übergeben werden. |
|
Setzen Sie die Filterung für die Sprachliste zurück, indem Sie alle anderen Filtereinstellungen entfernen. Wenn dieses Flag angegeben wird, muss NULL für alle anderen Parameter übergeben werden. Nach dem Festlegen dieses Flags kann die Anwendung GetThreadPreferredUILanguages aufrufen, um die vollständige ungefilterte Liste abzurufen. |
[in, optional] pwszLanguagesBuffer
Zeiger auf einen doppelt mit NULL endendten Puffer mit mehreren Zeichenfolgen, der eine geordnete, durch NULL getrennte Liste im von dwFlags angegebenen Format enthält.
Um die Liste der bevorzugten Benutzeroberflächensprachen des Threads zu löschen, legt eine Anwendung diesen Parameter auf eine NULL-Zeichenfolge oder eine leere doppelte Zeichenfolge mit NULL-Beendigung fest. Wenn eine Anwendung eine Sprachliste löscht, sollte sie entweder ein Formatflag oder 0 für den dwFlags-Parameter angeben.
Wenn die Anwendung eines der Filterflags angibt, muss sie diesen Parameter auf NULL festlegen. In diesem Fall ist die Funktion erfolgreich, setzt jedoch die bevorzugten Threadsprachen nicht zurück.
[out, optional] pulNumLanguages
Zeiger auf die Anzahl der Sprachen, die die Funktion in der Liste der bevorzugten Benutzeroberflächensprachen des Threads festgelegt hat. Wenn die Anwendung eines der Filterflags angibt, muss die Funktion diesen Parameter auf NULL festlegen.
Rückgabewert
Gibt TRUE zurück, wenn die Funktion erfolgreich ist, oder andernfalls FALSE .
Hinweise
Wenn die Anwendung nach einem Aufruf dieser Funktion Ressourcen lädt, haben die threadspezifischen Einstellungen Vorrang vor den vom Benutzer bevorzugten Sprachen.
Diese Funktion kann bis zu fünf bevorzugte Sprachen für den Thread in der Reihenfolge ihrer Präferenzen einrichten. Wenn der Sprachpuffer mehr als fünf gültige Sprachen enthält, legt die Funktion die ersten fünf gültigen Sprachen fest und ignoriert den Rest.
Wenn die Anwendung diese Funktion mit festgelegtem MUI_LANGUAGE_ID-Flag aufruft, müssen die Zeichenfolgen in der Sprachliste hexadezimale Sprache verwenden.
Bezeichner, die das führende 0x nicht enthalten und 4 Zeichen lang sind. en-US sollte z. B.
passed as "0409" and en as "0009".
Wenn MUI_LANGUAGE_ID angegeben wird, müssen die Hexadezimalwerte in der Sprachliste jeweils einen tatsächlichen Sprachbezeichner darstellen. Insbesondere können die folgenden Gebietsschemabezeichnerwerte nicht verwendet werden, um dem Sprachbezeichner zu entsprechen:
- LOCALE_SYSTEM_DEFAULT
- LOCALE_USER_DEFAULT
- LOCALE_CUSTOM_DEFAULT
- LOCALE_CUSTOM_UI_DEFAULT
- LOCALE_CUSTOM_UNSPECIFIED
Nachdem diese Funktion zurückgegeben wurde, kann die Anwendung GetThreadPreferredUILanguages aufrufen, um die resultierende Sprachliste zu überprüfen und zu untersuchen. Wenn MUI_CONSOLE_FILTER oder MUI_COMPLEX_FILTER von SetThreadPreferredUILanguages festgelegt wurde, ersetzt die GetThreadPreferredUILanguages-Funktion durch das Fallback die Sprachen, die die Konsole mit der aktuellen Spracheinstellung des Betriebssystems nicht anzeigen kann. Der Fallback für eine Sprache wird basierend auf dem Wert von LOCALE_SCONSOLEFALLBACKNAME für die Sprache bestimmt.
Durch das Festlegen des MUI_COMPLEX_SCRIPT_FILTER-Flags im Aufruf von SetThreadPreferredUILanguages entfernt GetThreadPreferredUILanguages Sprachen, die die Konsole nicht mit Sprachen anzeigen kann, die nur mit Uniscribe gerendert werden können, und fügt die Fallbacksprache als ultimatives Fallback ein. Beispiele für solche Sprachen sind Arabisch oder die verschiedenen indischen Sprachen.
Das Festlegen des MUI_CONSOLE_FILTER-Flags im Aufruf von SetThreadPreferredUILanguages bewirkt , dass GetThreadPreferredUILanguages Sprachen entfernt, die die Konsole nicht mit der aktuellen Systemeinstellung anzeigen kann, und fügt die Fallbacksprache als ultimatives Fallback ein, da die Konsole auf die Anzeige von Zeichen einer einzelnen Codepage beschränkt ist. Wenn die Benutzersprache beispielsweise Japanisch (Japan) ist, die aktuelle Konsolencodepage jedoch die Codepage für Russisch (Russland) ist, zeigt die Konsole den japanischen Text hauptsächlich als eine Reihe von Zeichen an, die nicht gefunden wurden. GetThreadPreferredUILanguages wählt eine Sprache aus der Fallbackliste aus, die in der Konsole lesbar ist.
C#-Signatur
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean SetThreadPreferredUILanguages(
System.UInt32 dwFlags,
System.String pwszLanguagesBuffer,
ref System.UInt32 pulNumLanguages
);
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winnls.h (windows.h einschließen) |
Bibliothek | Kernel32.lib |
DLL | Kernel32.dll |