diff options
author | saturneric <[email protected]> | 2024-03-03 13:12:05 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2024-03-03 13:12:05 +0000 |
commit | d472840a68f788680a47eba8b03ba051075336e7 (patch) | |
tree | 8eb615a6a82aa533757ded3d1302ac5798a926ca | |
parent | Merge branch 'dev/2.1.2/main' into develop (diff) | |
parent | fix: translation doesn't refresh after switching (diff) | |
download | GpgFrontend-d472840a68f788680a47eba8b03ba051075336e7.tar.gz GpgFrontend-d472840a68f788680a47eba8b03ba051075336e7.zip |
Merge branch 'dev/2.1.2/main' into develop
Diffstat (limited to '')
-rw-r--r-- | .github/workflows/release.yml | 2 | ||||
-rw-r--r-- | resource/lfs/locale/ts/GpgFrontend.en_US.ts | 2 | ||||
-rw-r--r-- | src/ui/GpgFrontendUIInit.cpp | 41 |
3 files changed, 27 insertions, 18 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index c7047bee..08b978bc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -225,7 +225,7 @@ jobs: cd ${{github.workspace}}/build/final-artifact wget -c -nv https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage chmod u+x linuxdeployqt-continuous-x86_64.AppImage - ./linuxdeployqt-continuous-x86_64.AppImage ${{github.workspace}}/build/artifacts/gpgfrontend/usr/share/applications/*.desktop -no-translations -extra-plugins=iconengines,platformthemes/libqgtk3.so -appimage + ./linuxdeployqt-continuous-x86_64.AppImage ${{github.workspace}}/build/artifacts/AppDir/usr/share/applications/*.desktop -no-translations -extra-plugins=iconengines,platformthemes/libqgtk3.so -appimage if: matrix.os == 'ubuntu-20.04' - name: Configure CMake & Build Binary(Windows) diff --git a/resource/lfs/locale/ts/GpgFrontend.en_US.ts b/resource/lfs/locale/ts/GpgFrontend.en_US.ts index f04c2ff7..869b8b6c 100644 --- a/resource/lfs/locale/ts/GpgFrontend.en_US.ts +++ b/resource/lfs/locale/ts/GpgFrontend.en_US.ts @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE TS> -<TS version="2.1"> +<TS version="2.1" language="en_US"> <context> <name>GpgFrontend::GpgDecryptResultAnalyse</name> <message> diff --git a/src/ui/GpgFrontendUIInit.cpp b/src/ui/GpgFrontendUIInit.cpp index 08cf012d..32cbc968 100644 --- a/src/ui/GpgFrontendUIInit.cpp +++ b/src/ui/GpgFrontendUIInit.cpp @@ -41,6 +41,8 @@ namespace GpgFrontend::UI { +QList<QTranslator*> registered_translators; + extern void InitUITranslations(); void WaitEnvCheckingProcess() { @@ -213,31 +215,38 @@ void GPGFRONTEND_UI_EXPORT DestroyGpgFrontendUI() {} * */ void InitUITranslations() { + for (const auto& translator : registered_translators) { + QCoreApplication::removeTranslator(translator); + } + registered_translators.clear(); + auto* translator = new QTranslator(QCoreApplication::instance()); - if (translator->load(QLocale(), QLatin1String(PROJECT_NAME), - QLatin1String("."), QLatin1String(":/i18n"), - QLatin1String(".qm"))) { - GF_UI_LOG_DEBUG("load target translation file done, locale: {}", + if (translator->load(QLocale(), QLatin1String("qt"), QLatin1String("_"), + QLatin1String(":/i18n_qt"), QLatin1String(".qm"))) { + GF_UI_LOG_DEBUG("load qt translation file done, locale: {}", QLocale().name()); + QCoreApplication::installTranslator(translator); + registered_translators.append(translator); } - auto* base_translation = new QTranslator(QCoreApplication::instance()); - if (base_translation->load(QLocale(), QLatin1String("qt"), QLatin1String("_"), - QLatin1String(":/i18n_qt"), - QLatin1String(".qm"))) { - GF_UI_LOG_DEBUG("load qt translation file done, locale: {}", + translator = new QTranslator(QCoreApplication::instance()); + if (translator->load(QLocale(), QLatin1String("qtbase"), QLatin1String("_"), + QLatin1String(":/i18n_qt"), QLatin1String(".qm"))) { + GF_UI_LOG_DEBUG("load qtbase translation file done, locale: {}", QLocale().name()); - QCoreApplication::installTranslator(base_translation); + QCoreApplication::installTranslator(translator); + registered_translators.append(translator); } - base_translation = new QTranslator(QCoreApplication::instance()); - if (base_translation->load(QLocale(), QLatin1String("qtbase"), - QLatin1String("_"), QLatin1String(":/i18n_qt"), - QLatin1String(".qm"))) { - GF_UI_LOG_DEBUG("load qtbase translation file done, locale: {}", + translator = new QTranslator(QCoreApplication::instance()); + if (translator->load(QLocale(), QLatin1String(PROJECT_NAME), + QLatin1String("."), QLatin1String(":/i18n"), + QLatin1String(".qm"))) { + GF_UI_LOG_DEBUG("load target translation file done, locale: {}", QLocale().name()); - QCoreApplication::installTranslator(base_translation); + QCoreApplication::installTranslator(translator); + registered_translators.append(translator); } } |