aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2024-03-03 13:12:05 +0000
committersaturneric <[email protected]>2024-03-03 13:12:05 +0000
commitd472840a68f788680a47eba8b03ba051075336e7 (patch)
tree8eb615a6a82aa533757ded3d1302ac5798a926ca
parentMerge branch 'dev/2.1.2/main' into develop (diff)
parentfix: translation doesn't refresh after switching (diff)
downloadGpgFrontend-d472840a68f788680a47eba8b03ba051075336e7.tar.gz
GpgFrontend-d472840a68f788680a47eba8b03ba051075336e7.zip
Merge branch 'dev/2.1.2/main' into develop
Diffstat (limited to '')
-rw-r--r--.github/workflows/release.yml2
-rw-r--r--resource/lfs/locale/ts/GpgFrontend.en_US.ts2
-rw-r--r--src/ui/GpgFrontendUIInit.cpp41
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);
}
}