我有一个大型 Qt 应用程序,支持 6 种不同的语言。不幸的是,许多文本短语尚未翻译。源文本中的基本语言是德语。因此,如果缺少翻译,则会使用基本语言。有没有办法为各种语言指定除基本语言之外的替代语言,并且仅在缺少该语言的情况下才切换到实际的基本语言。
例如,使用语言cz:
缺少翻译,但有英文翻译。那么应该使用这个,
如果也没有英文翻译,则应该使用基本语言(德语)。
好的,现在可以按预期工作了。这是我的代码如何安装两个翻译器。
const QString languageFilePrefix = ":/lang/resources/lang/MyApp_";
const QList<QString> supportedLanguages({ "en","cs","pl","fr","pt"});
QTranslator en_translator;
QTranslator translator;
int langIndx = gSettings.getLanguageIndex();
if ((langIndx > 0) && (langIndx <= supportedLanguages.size())) {
if (langIndx > 1) {
// for all languages except standard (German) and English
// load English language first
QString enlang = languageFilePrefix + supportedLanguages[0];
if (en_translator.load(enlang)) {
installTranslator(&en_translator);
}
}
QString lang = languageFilePrefix + supportedLanguages[langIndx - 1];
if (translator.load(lang)) {
installTranslator(&translator);
}
}