MacOS Mojave上的Qt应用程序不尊重系统语言

时间:2018-12-12 20:31:43

标签: c++ macos qt localization macos-mojave

我有一个基于Qt的Windows / Mac桌面应用程序,该应用程序已本地化为英语和德语。使用Qt QLocale API编写应用程序时,是使用系统语言来确定其启动语言:

QLocale sysLocale = QLocale::system();
QString translatorFileName = sysLocale.name(); // en_US, de_DE, etc

此功能自MacOS High Sierra(10.13.2)起已按预期运行。在Mojave(10.14.1)上,此调用现在始终返回语言组件的英语,而与系统语言无关,即,如果我将系统语言和地区更改为德语/德国,我希望de_DE将返回为语言环境名称,但是Qt返回en_DE。我发现修改应用程序CFBundleDevelopmentRegion文件中Info.plist键的值在某些情况下会覆盖系统区域设置,但是High Sierra和Mojave之间的行为也有所不同

我也已经在Qt错误报告论坛上opened an issue进行了更详细的介绍,试图确定此问题是源于Qt还是Mojave中的API更改。

0 个答案:

没有答案