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

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

限制要显示的语言

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

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

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

注意

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

 

设置控制台输出的语言

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

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

设置应用程序语言首选项