c++ MacOS莫哈韦上的Qt应用程序不遵守系统语言

h6my8fg2  于 2023-03-20  发布在  Mac
关注(0)|答案(1)|浏览(127)

我有一个基于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)关于莫哈韦(10.14.1),现在无论系统语言如何,此调用始终为语言组件返回英语,即,如果我将系统语言和区域更改为德语/德国,我希望返回de_DE作为区域设置名称,我发现在应用程序的Info.plist文件中修改CFBundleDevelopmentRegion键的值在某些情况下会覆盖系统区域设置,但它在HighSierra和莫哈韦之间的行为也不同
我在Qt错误报告论坛上也有opened an issue,它有更多的细节,试图确定这个问题是源于Qt还是源于莫哈韦中的API更改。

mrfwxfqh

mrfwxfqh1#

Macos也有同样的问题,我删除了值为“英语”的提示“开发本地化”,QLocale::Language()返回正确的值。

相关问题