【发布时间】:2019-08-21 10:14:24
【问题描述】:
我使用 Qt Linguist 添加了一个翻译文件。然后我在加载我的应用程序时继续使用QTranslator:
QTranslator translator;
bool loaded = translator.load(":/notizie_en_UK.qm");
bool installed = app.installTranslator(&translator);
qDebug() << "Adding translation" << loaded << installed;
这很好用。 现在我只想在系统语言还不是默认语言时才使用翻译,所以我做了以下操作:
QLocale::Language phoneLang = QLocale::system().language();
qDebug() << "LANGUAGE" << phoneLang << (phoneLang != QLocale::Italian);
if(phoneLang != QLocale::Italian){
QTranslator translator;
bool loaded = translator.load(":/notizie_en_UK.qm");
bool installed = app.installTranslator(&translator);
qDebug() << "Adding translation" << loaded << installed;
}
else{
qDebug() << "Using italian";
}
但是这不起作用。例如,如果一个英语系统,翻译器不工作,并使用应用程序的默认语言(在本例中为意大利语)。
qDebug() 的输出是:
语言 QLocale::English true
添加翻译真真
【问题讨论】:
标签: c++ qt qt5 qtranslator