From f95e11fa3bf6b3f4fd69b58d72a92e4a9d2eb361 Mon Sep 17 00:00:00 2001 From: tanjing Date: Wed, 23 Aug 2023 16:21:01 +0800 Subject: [PATCH] =?UTF-8?q?commit=209c3fa37c=20FixBug=20#180395,=20?= =?UTF-8?q?=E5=93=8D=E5=BA=94=E5=BA=94=E7=94=A8=E8=AF=AD=E8=A8=80=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../widget/filedialog/kyfiledialog.cpp | 49 ++++++++++++------- .../widget/filedialog/kyfiledialog.h | 10 +++- 2 files changed, 40 insertions(+), 19 deletions(-) diff --git a/qt5-ukui-platformtheme/widget/filedialog/kyfiledialog.cpp b/qt5-ukui-platformtheme/widget/filedialog/kyfiledialog.cpp index 76afb8b..3d9817c 100644 --- a/qt5-ukui-platformtheme/widget/filedialog/kyfiledialog.cpp +++ b/qt5-ukui-platformtheme/widget/filedialog/kyfiledialog.cpp @@ -72,25 +72,16 @@ KyNativeFileDialog::KyNativeFileDialog(QWidget *parent) : QDialog(parent), d_ptr(new KyNativeFileDialogPrivate) { - const QString locale = QLocale::system().name(); - QTranslator *translator = new QTranslator(this); - pDebug << "local: " << locale; - if (translator->load("/usr/share/qt5-ukui-platformtheme/qt5-ukui-platformtheme_" + QLocale::system().name())) { - pDebug << "Load translations file success!"; - QApplication::installTranslator(translator); - } else { - pDebug << "Load translations file failed!"; - } + QString locale = QLocale::system().name(); - QTranslator *t = new QTranslator(this); - pDebug << "QTranslator t load" << t->load("/usr/share/libpeony-qt/libpeony-qt_"+QLocale::system().name()); - QApplication::installTranslator(t); - QTranslator *t2 = new QTranslator(this); - pDebug << "QTranslator t2 load" << t2->load("/usr/share/peony-qt-desktop/peony-qt-desktop_"+QLocale::system().name()); - QApplication::installTranslator(t2); - QTranslator *t3 = new QTranslator(this); - pDebug << "QTranslator t3 load" << t3->load("/usr/share/qt5/translations/qt_"+QLocale::system().name()); - QApplication::installTranslator(t3); + if(qApp->property("Language").isValid()) + { + QString language = qApp->property("Language").toString(); + QFile file("/usr/share/qt5-ukui-platformtheme/qt5-ukui-platformtheme_" + language + ".qm"); + if(file.exists()) + locale = language; + } + installTranslate(locale); mKyFileDialogUi = new Ui_KyFileDialog(this); @@ -2521,6 +2512,28 @@ void KyNativeFileDialog::updateSearchProgressBar() // } } +void KyNativeFileDialog::installTranslate(QString locale) +{ + m_translator0 = new QTranslator(this); + pDebug << "local: " << locale; + if (m_translator0->load("/usr/share/qt5-ukui-platformtheme/qt5-ukui-platformtheme_" + locale)) { + pDebug << "Load translations file success!"; + QApplication::installTranslator(m_translator0); + } else { + pDebug << "Load translations file failed!"; + } + + m_translator1 = new QTranslator(this); + pDebug << "QTranslator t load" << m_translator1->load("/usr/share/libpeony-qt/libpeony-qt_" + locale); + QApplication::installTranslator(m_translator1); + m_translator2 = new QTranslator(this); + pDebug << "QTranslator t2 load" << m_translator2->load("/usr/share/peony-qt-desktop/peony-qt-desktop_" + locale); + QApplication::installTranslator(m_translator2); + m_translator3 = new QTranslator(this); + pDebug << "QTranslator t3 load" << m_translator3->load("/usr/share/qt5/translations/qt_" + locale); + QApplication::installTranslator(m_translator3); +} + KyFileDialogHelper::KyFileDialogHelper() : QPlatformFileDialogHelper(), mKyFileDialog(new KyNativeFileDialog) { mKyFileDialog->setHelper(this); diff --git a/qt5-ukui-platformtheme/widget/filedialog/kyfiledialog.h b/qt5-ukui-platformtheme/widget/filedialog/kyfiledialog.h index 3710fb1..687daaa 100644 --- a/qt5-ukui-platformtheme/widget/filedialog/kyfiledialog.h +++ b/qt5-ukui-platformtheme/widget/filedialog/kyfiledialog.h @@ -30,6 +30,7 @@ #include #include #include +#include #include "qpa/qplatformdialoghelper.h" #include @@ -180,6 +181,8 @@ public: QString copyEditText(); + void installTranslate(QString local); + Q_SIGNALS: void switchViewRequest(const QString &viewId); @@ -216,7 +219,6 @@ protected: private: Ui_KyFileDialog *mKyFileDialogUi = nullptr; - KyNativeFileDialog *mKyFileDialog = nullptr; QScopedPointer d_ptr; Q_DECLARE_PRIVATE_D(qGetPtrHelper(d_ptr), KyNativeFileDialog) void onAcceptButtonClicked(); @@ -244,6 +246,12 @@ private: QMap m_nameFilterMap; QStringList m_uris_to_edit; bool m_needSearch = false; + + QTranslator *m_translator0 = nullptr; + QTranslator *m_translator1 = nullptr; + QTranslator *m_translator2 = nullptr; + QTranslator *m_translator3 = nullptr; + }; class KyFileDialogHelper : public QPlatformFileDialogHelper