diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 34408f1..4719a07 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -134,7 +134,7 @@ find_package(${PACKAGE_NAMESPACE_PREFIX}c++utilities${CONFIGURATION_PACKAGE_SUFF use_cpp_utilities(VISIBILITY PUBLIC) # find qtutilities -find_package(${PACKAGE_NAMESPACE_PREFIX}qtutilities${CONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES} 6.11.0 REQUIRED) +find_package(${PACKAGE_NAMESPACE_PREFIX}qtutilities${CONFIGURATION_PACKAGE_SUFFIX_QTUTILITIES} 6.13.0 REQUIRED) use_qt_utilities() # configure prefix and data dir diff --git a/src/QtWindow.cpp b/src/QtWindow.cpp index b2e372e..b115c79 100644 --- a/src/QtWindow.cpp +++ b/src/QtWindow.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -810,14 +811,8 @@ void QtWindow::loadTutorHtml(const QString & name) } -void QtWindow::refreshTranslate(){ +void QtWindow::refreshTranslate() { #ifndef NO_LANGS - QString locale = m_settings->selectedLangauge(); - - qApp->removeTranslator(&translator); - qApp->removeTranslator(&translatorMusic); - qApp->removeTranslator(&qtTranslator); - // save original if (listWidgetsRetranslateUi.size()==0){ QList l2 = this->findChildren(); @@ -841,34 +836,14 @@ void QtWindow::refreshTranslate(){ } } - const auto translationsDir = Util::dataDir(QStringLiteral("translations")); - ppLogInfo("Translations loaded from '%s'", qPrintable(translationsDir)); - - // set translator for app - auto ok = true; - if (!translator.load(QSTR_APPNAME + QString("_") + locale , translationsDir)) - ok = ok & translator.load(QSTR_APPNAME + QString("_") + locale, QApplication::applicationDirPath()); - qApp->installTranslator(&translator); - - // set translator for music - if (!translatorMusic.load(QString("music_") + locale , translationsDir)) - if (!translatorMusic.load(QString("music_") + locale, QApplication::applicationDirPath() + "/translations/")) - ok = ok & translatorMusic.load(QString("music_") + locale, QApplication::applicationDirPath()); - qApp->installTranslator(&translatorMusic); - - // set translator for default widget's text (for example: QMessageBox's buttons) -#ifdef __WIN32 - ok = ok & qtTranslator.load("qt_"+locale, translationsDir); -#elif QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) - ok = ok & qtTranslator.load("qt_"+locale, QLibraryInfo::path(QLibraryInfo::TranslationsPath)); -#else - ok = ok & qtTranslator.load("qt_"+locale, QLibraryInfo::location(QLibraryInfo::TranslationsPath)); -#endif - qApp->installTranslator(&qtTranslator); - - if (!ok) { - qDebug() << "Unable to load all translations"; - } + static const auto &translationsDir = [] { + return QtUtilities::TranslationFiles::additionalTranslationFilePath() = Util::dataDir(QStringLiteral("translations")); + }(); + const auto locale = m_settings->selectedLangauge(); + QtUtilities::TranslationFiles::clearTranslationFiles(); + QtUtilities::TranslationFiles::loadApplicationTranslationFile(QString(), QSTR_APPNAME, locale); + QtUtilities::TranslationFiles::loadApplicationTranslationFile(QString(), QStringLiteral("music"), locale); + QtUtilities::TranslationFiles::loadQtTranslationFile({QStringLiteral("qtbase")}, locale); // retranslate UI QList l2 = this->findChildren(); diff --git a/src/QtWindow.h b/src/QtWindow.h index 84da27a..0435a07 100644 --- a/src/QtWindow.h +++ b/src/QtWindow.h @@ -207,10 +207,6 @@ private: GuiTopBar *m_topBar; QTextBrowser *m_tutorWindow; - QTranslator translator; - QTranslator translatorMusic; - QTranslator qtTranslator; - QMap> listWidgetsRetranslateUi; QMap> listActionsRetranslateUi;