我有一个基于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更改。
1条答案
按热度按时间mrfwxfqh1#
Macos也有同样的问题,我删除了值为“英语”的提示“开发本地化”,QLocale::Language()返回正确的值。