kdecore: fix regression since 0b9281b360

also adjust KLocalizedString test case, "Job" is no longer translated
string in the source code thus not in the french translation

on a side note there are KLocale tests all around - KLocalizedString, KIO
tests, etc. so perhaphs only quircks should be tested by the KLocale
specifiec tests

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2023-07-28 06:02:28 +03:00
parent eedfed825a
commit 1e3041061a
2 changed files with 15 additions and 15 deletions

View file

@ -143,18 +143,7 @@ void KGlobal::insertCatalog(const QString& catalog)
#ifndef QT_NO_TRANSLATION
KDETranslator* s_kdetranslator = nullptr;
static int installKDETranslator()
{
QCoreApplication* coreApp = QCoreApplication::instance();
if (coreApp && !s_kdetranslator) { // testcase: kwrite --help: no qcore app
s_kdetranslator = new KDETranslator();
QCoreApplication::installTranslator(s_kdetranslator);
}
return 0;
}
Q_CONSTRUCTOR_FUNCTION(installKDETranslator);
static int removeKDETranslator()
static void removeKDETranslator()
{
QCoreApplication* coreApp = QCoreApplication::instance();
if (coreApp && s_kdetranslator) {
@ -162,9 +151,17 @@ static int removeKDETranslator()
delete s_kdetranslator;
s_kdetranslator = nullptr;
}
return 0;
}
Q_DESTRUCTOR_FUNCTION(removeKDETranslator);
static void installKDETranslator()
{
QCoreApplication* coreApp = QCoreApplication::instance();
if (coreApp && !s_kdetranslator) { // testcase: kwrite --help: no qcore app
s_kdetranslator = new KDETranslator();
QCoreApplication::installTranslator(s_kdetranslator);
qAddPostRoutine(removeKDETranslator);
}
}
#endif // QT_NO_TRANSLATION
KLocale *KGlobal::locale()
@ -190,6 +187,9 @@ KLocale *KGlobal::locale()
d->locale = new KLocale(mainComponent().catalogName());
d->localeIsFromFakeComponent = !d->mainComponent.isValid();
mainComponent().aboutData()->translateInternalProgramName();
#ifndef QT_NO_TRANSLATION
installKDETranslator();
#endif
foreach(const QString &catalog, d->catalogsToInsert) {
d->locale->insertCatalog(catalog);
}

View file

@ -241,7 +241,7 @@ void KLocalizedStringTest::translateToFrench()
QSKIP("l10n/fr not installed", SkipAll);
}
QCOMPARE(i18n("Loadable modules"), QString::fromUtf8("Modules chargeables"));
QCOMPARE(i18n("Job"), QString::fromUtf8("Tâche"));
QCOMPARE(i18n("Print Immediately"), QString::fromUtf8("Imprimer immédiatement"));
}
void KLocalizedStringTest::translateQt()