在 MUI 控制台应用程序中筛选语言

MUI 控制台应用程序可以支持其用户界面语言的系统设置或应用程序特定的设置。 本主题讨论此类应用程序的语言筛选。

限制要显示的语言

与图形窗口不同,Windows 控制台无法显示 复杂的脚本,例如阿拉伯语、希伯来语、波斯语、印地语、乌尔都语、泰语等。 因此,控制台在任何情况下都无法显示许多用户界面语言。

控制台只能显示与非 Unicode 应用程序的当前语言关联的单个 OEM 代码页 中的字符。 对于每个 OEM 代码页,主机使用特定字体,这可能无法为该代码页提供完全覆盖。

这些与控制台相关的限制减少了控制台可以在特定计算机上显示的用户界面语言的数量。 例如,如果非 Unicode 应用程序的当前语言是日语,并且用户尝试在控制台中显示德语文本,则带 umlaut 的字符无法正确显示。 如果非 Unicode 应用程序的当前语言是德语,并且用户希望在控制台中显示日语文本,则结果会更糟,导致文本几乎无法理解。

注意

为 MUI 应用程序提供控制台支持时,请记住,控制台仅提供 对输入法编辑器的有限支持。

 

设置控制台输出的语言

在 Windows Vista 及更高版本上,控制台应用程序通过调用 SetThreadPreferredUILanguages 来设置支持控制台显示的语言。 在此调用中,应用程序为 pwszLanguagesBuffer 传递 dwFlags 参数中的MUI_CONSOLE_FILTER和 NULL。 另一种方法是调用语言标识符为 0 的 SetThreadUILanguage 。 此设置会导致函数选择最支持控制台显示的语言。

在 Windows XP 上,应用程序只能通过调用语言标识符为 0 的 SetThreadUILanguage 来设置控制台输出的语言。

设置应用程序语言首选项