[qrvthtool] TranslationManager: Some more fiddling.

- Get the translation file info directly from d->prgTranslator, before
  installing it into the QCoreApplication.

- If tsLocale is empty, or is "1337", set it to "C".
This commit is contained in:
David Korth 2025-05-30 19:41:32 -04:00
parent 11cfd9cd62
commit 84d2fae156

View File

@ -180,22 +180,19 @@ void TranslationManager::setTranslation(const QString &locale)
} }
} }
// Add the new QTranslators. /** Translation file information **/
qApp->installTranslator(d->qtTranslator[0]);
qApp->installTranslator(d->qtTranslator[1]);
qApp->installTranslator(d->prgTranslator);
/** Translation file information. **/
//: Translation file author. Put your name here. //: Translation file author. Put your name here.
QString tsAuthor = tr("David Korth", "ts-author"); QString tsAuthor = d->prgTranslator->translate("TranslationManager", "David Korth", "ts-author");
Q_UNUSED(tsAuthor) Q_UNUSED(tsAuthor)
//: Language this translation provides, e.g. "English (US)". //: Language this translation provides, e.g. "English (US)".
QString tsLanguage = tr("Default", "ts-language"); QString tsLanguage = d->prgTranslator->translate("TranslationManager", "Default", "ts-language");
Q_UNUSED(tsLanguage) Q_UNUSED(tsLanguage)
//: Locale name, e.g. "en_US". //: Locale name, e.g. "en_US".
QString tsLocale = tr("C", "ts-locale"); QString tsLocale = d->prgTranslator->translate("TranslationManager", "C", "ts-locale");
Q_UNUSED(tsLocale) if (tsLocale.isEmpty() || tsLocale == QLatin1String("1337")) {
tsLocale = QLatin1String("C");
}
#ifdef __linux__ #ifdef __linux__
// Setting LANG and LC_ALL may help with Qt's base translations... // Setting LANG and LC_ALL may help with Qt's base translations...
@ -203,10 +200,12 @@ void TranslationManager::setTranslation(const QString &locale)
QByteArray tsLocale_utf8 = tsLocale.toUtf8(); QByteArray tsLocale_utf8 = tsLocale.toUtf8();
setenv("LANG", tsLocale_utf8.constData(), 1); setenv("LANG", tsLocale_utf8.constData(), 1);
setenv("LC_ALL", tsLocale_utf8.constData(), 1); setenv("LC_ALL", tsLocale_utf8.constData(), 1);
// Reinstall a translator to force Qt to update based on LANG and LC_ALL.
qApp->installTranslator(d->prgTranslator);
#endif /* __linux__ */ #endif /* __linux__ */
// Add the new QTranslators.
qApp->installTranslator(d->qtTranslator[0]);
qApp->installTranslator(d->qtTranslator[1]);
qApp->installTranslator(d->prgTranslator);
} }
/** /**