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

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

限制要显示的语言

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

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

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

备注

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

设置控制台输出的语言

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

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

设置应用程序语言首选项