diff --git a/CMakeLists.txt b/CMakeLists.txt index ec4f3bc..a44cb1e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -171,7 +171,8 @@ else () endif () # find c++utilities -find_package(c++utilities 5.0.0 REQUIRED) +set(CONFIGURATION_PACKAGE_SUFFIX "" CACHE STRING "sets the suffix for find_package() calls to packages configured via c++utilities") +find_package(c++utilities${CONFIGURATION_PACKAGE_SUFFIX} 5.0.0 REQUIRED) use_cpp_utilities() # include modules to apply configuration diff --git a/cmake/modules/QtConfig.cmake b/cmake/modules/QtConfig.cmake index 4cb2a34..7ac3d28 100644 --- a/cmake/modules/QtConfig.cmake +++ b/cmake/modules/QtConfig.cmake @@ -225,7 +225,7 @@ if (ENABLE_QT_TRANSLATIONS AND TS_FILES) # add install target for translations if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS) - install(FILES ${QM_FILES} DESTINATION share/${META_PROJECT_NAME}/translations COMPONENT localization) + install(FILES ${QM_FILES} DESTINATION "${META_DATA_DIR}/translations" COMPONENT localization) if (NOT TARGET install-localization) set(LOCALIZATION_TARGET "install-localization") add_custom_target(${LOCALIZATION_TARGET} @@ -419,7 +419,7 @@ foreach (RES_FILE ${RES_FILES}) endforeach () # export Qt resources required by static libraries the static library depends on -if (META_PROJECT_IS_LIBRARY AND NOT BUILD_SHARED_LIBS AND STATIC_LIBRARIES_QT_RESOURCES) +if (STATIC_LIBRARIES_QT_RESOURCES) list(REMOVE_DUPLICATES STATIC_LIBRARIES_QT_RESOURCES) list(APPEND QT_RESOURCES ${STATIC_LIBRARIES_QT_RESOURCES}) endif () diff --git a/resources/resources.cpp b/resources/resources.cpp index 5628d59..6a52d45 100644 --- a/resources/resources.cpp +++ b/resources/resources.cpp @@ -113,7 +113,7 @@ void loadQtTranslationFile(std::initializer_list repositoryNames) void loadQtTranslationFile(initializer_list repositoryNames, const QString &localeName) { for (const QString &repoName : repositoryNames) { - QTranslator *qtTranslator = new QTranslator; + QTranslator *const qtTranslator = new QTranslator; const QString fileName(repoName % QChar('_') % localeName); if (!additionalTranslationFilePath().isEmpty() && qtTranslator->load(fileName, additionalTranslationFilePath())) { QCoreApplication::installTranslator(qtTranslator); @@ -156,8 +156,9 @@ void loadApplicationTranslationFile(const QString &applicationName) // load English translation files as fallback loadApplicationTranslationFile(applicationName, QStringLiteral("en_US")); // load translation files for current locale - if (QLocale().name() != QLatin1String("en_US")) { - loadApplicationTranslationFile(applicationName, QLocale().name()); + const auto defaultLocale(QLocale().name()); + if (defaultLocale != QLatin1String("en_US")) { + loadApplicationTranslationFile(applicationName, defaultLocale); } } @@ -180,7 +181,7 @@ void loadApplicationTranslationFile(const QString &applicationName) */ void loadApplicationTranslationFile(const QString &applicationName, const QString &localeName) { - QTranslator *appTranslator = new QTranslator; + QTranslator *const appTranslator = new QTranslator; const QString fileName(applicationName % QChar('_') % localeName); if (!additionalTranslationFilePath().isEmpty() && appTranslator->load(fileName, additionalTranslationFilePath())) { QCoreApplication::installTranslator(appTranslator); @@ -188,9 +189,9 @@ void loadApplicationTranslationFile(const QString &applicationName, const QStrin QCoreApplication::installTranslator(appTranslator); } else if (appTranslator->load(fileName, QStringLiteral("./translations"))) { QCoreApplication::installTranslator(appTranslator); - } else if (appTranslator->load(fileName, QStringLiteral(APP_INSTALL_PREFIX "/share/") % applicationName % QStringLiteral("/translations"))) { + } else if (appTranslator->load(fileName, QStringLiteral(APP_INSTALL_PREFIX "/" APP_DATA_DIR) % applicationName % QStringLiteral("/translations"))) { QCoreApplication::installTranslator(appTranslator); - } else if (appTranslator->load(fileName, QStringLiteral("../share/") % applicationName % QStringLiteral("/translations"))) { + } else if (appTranslator->load(fileName, QStringLiteral("../" APP_DATA_DIR "/") % applicationName % QStringLiteral("/translations"))) { QCoreApplication::installTranslator(appTranslator); } else if (appTranslator->load(fileName, QStringLiteral(":/translations"))) { QCoreApplication::installTranslator(appTranslator);