1

我想测试各种语言的 Qt 应用程序。因此,我将系统语言 b 更改为分别将 MUI 语言注册表标记 ( HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/MUI/UILanguages) 修改为 fr-Fr 或 de-DE 以分别表示法语和德语。然后我需要为 AUT(被测应用程序)重新启动系统以开始显示新语言。有没有其他方法可以做到这一点而无需重新启动系统?我已经尝试杀死explorer.exe并再次启动它,但除非我重新启动,否则语言更改不会反映在我的应用程序上。我想避免重新启动。我需要停止/重新启动服务吗?

另外,我是否有任何其他可能的方法可以更改系统语言并反映在我的应用程序中(不更改注册表)?

4

1 回答 1

0

不,我认为没有重新启动或注销系统是不可能的,因为系统在启动时检查语言,之后它不会检查许多注册表项。

试试这个可能对你有帮助

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
Thread.CurrentThread.CurrentUICulture=Thread.CurrentThread.CurrentCulture;

如果您只想更改输入语言而不是系统,请尝试

private void ChangeKeboardLayout(System.Globalization.CultureInfo CultureInfo)
{
    InputLanguage c = InputLanguage.FromCulture(CultureInfo);
    InputLanguage.CurrentInputLanguage = c;
}
于 2014-04-24T08:38:50.360 回答