From 907c36217d6242a27d54e27798cb6869788134da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sivert=20Kr=C3=B8vel?= Date: Thu, 6 Oct 2022 13:08:00 +0200 Subject: [PATCH] McuSupport: Make plugin UI translatable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit After refactoring, the package labels are sourced at run-time from json kit files. Added a QMap containing all the known labels used to map labels to their translation, McuPackage::packageLabelTranslations. Task-number: QTCREATORBUG-27177 Change-Id: Ibd530a0f9c5dbbdf8c7d5eafa53785fb713c9d0a Reviewed-by: Reviewed-by: Dawid Śliwa Reviewed-by: hjk --- src/plugins/mcusupport/mcupackage.cpp | 40 ++++++++++++++++++- src/plugins/mcusupport/mcupackage.h | 2 + .../mcusupport/mcusupportoptionspage.cpp | 8 ++-- src/plugins/mcusupport/mcusupportsdk.cpp | 7 +++- 4 files changed, 51 insertions(+), 6 deletions(-) diff --git a/src/plugins/mcusupport/mcupackage.cpp b/src/plugins/mcusupport/mcupackage.cpp index 081eade8abc..4deda660503 100644 --- a/src/plugins/mcusupport/mcupackage.cpp +++ b/src/plugins/mcusupport/mcupackage.cpp @@ -4,6 +4,7 @@ #include "mcupackage.h" #include "mcusupportversiondetection.h" #include "settingshandler.h" +#include "mcusupporttr.h" #include #include @@ -175,7 +176,7 @@ void McuPackage::updateStatusUi() QString McuPackage::statusText() const { const QString displayPackagePath = m_path.toUserOutput(); - const QString displayVersions = m_versions.join(" or "); + const QString displayVersions = m_versions.join(tr(" or ")); const QString outDetectionPath = m_detectionPath.toUserOutput(); const QString displayRequiredPath = m_versions.empty() ? outDetectionPath : QString("%1 %2").arg(outDetectionPath, @@ -266,6 +267,43 @@ QWidget *McuPackage::widget() return widget; } +const QMap McuPackage::packageLabelTranslations { + //Board SDKs + {"Board SDK for MIMXRT1050-EVK", Tr::tr("Board SDK for MIMXRT1050-EVK")}, + {"Board SDK MIMXRT1060-EVK", Tr::tr("Board SDK MIMXRT1060-EVK")}, + {"Board SDK for MIMXRT1060-EVK", Tr::tr("Board SDK for MIMXRT1060-EVK")}, + {"Board SDK for MIMXRT1064-EVK", Tr::tr("Board SDK for MIMXRT1064-EVK")}, + {"Board SDK for MIMXRT1170-EVK", Tr::tr("Board SDK for MIMXRT1170-EVK")}, + {"Board SDK for STM32F469I-Discovery", Tr::tr("Board SDK for STM32F469I-Discovery")}, + {"Board SDK for STM32F769I-Discovery", Tr::tr("Board SDK for STM32F769I-Discovery")}, + {"Board SDK for STM32H750B-Discovery", Tr::tr("Board SDK for STM32H750B-Discovery")}, + {"Board SDK", Tr::tr("Board SDK")}, + {"Flexible Software Package for Renesas RA MCU Family", Tr::tr("Flexible Software Package for Renesas RA MCU Family")}, + {"Graphics Driver for Traveo II Cluster Series", Tr::tr("Graphics Driver for Traveo II Cluster Series")}, + {"Renesas Graphics Library", Tr::tr("Renesas Graphics Library")}, + //Flashing tools + {"Cypress Auto Flash Utility", Tr::tr("Cypress Auto Flash Utility")}, + {"MCUXpresso IDE", Tr::tr("MCUXpresso IDE")}, + {"Path to SEGGER J-Link", Tr::tr("Path to SEGGER J-Link")}, + {"Path to Renesas Flash Programmer", Tr::tr("Path to Renesas Flash Programmer")}, + {"STM32CubeProgrammer", Tr::tr("STM32CubeProgrammer")}, + //Compilers/Toolchains + {"Green Hills Compiler for ARM", Tr::tr("Green Hills Compiler for ARM")}, + {"IAR ARM Compiler", Tr::tr("IAR ARM Compiler")}, + {"Green Hills Compiler", Tr::tr("Green Hills Compiler")}, + {"GNU Arm Embedded Toolchain", Tr::tr("GNU Arm Embedded Toolchain")}, + {"GNU Toolchain", Tr::tr("GNU Toolchain")}, + {"MSVC Toolchain", Tr::tr("MSVC Toolchain")}, + //FreeRTOS + {"FreeRTOS SDK for MIMXRT1050-EVK", Tr::tr("FreeRTOS SDK for MIMXRT1050-EVK")}, + {"FreeRTOS SDK for MIMXRT1064-EVK", Tr::tr("FreeRTOS SDK for MIMXRT1064-EVK")}, + {"FreeRTOS SDK for MIMXRT1170-EVK", Tr::tr("FreeRTOS SDK for MIMXRT1170-EVK")}, + {"FreeRTOS SDK for EK-RA6M3G", Tr::tr("FreeRTOS SDK for EK-RA6M3G")}, + {"FreeRTOS SDK for STM32F769I-Discovery", Tr::tr("FreeRTOS SDK for STM32F769I-Discovery")}, + //Other + {"Path to project for Renesas e2 Studio", Tr::tr("Path to project for Renesas e2 Studio")} +}; + McuToolChainPackage::McuToolChainPackage(const SettingsHandler::Ptr &settingsHandler, const QString &label, const FilePath &defaultPath, diff --git a/src/plugins/mcusupport/mcupackage.h b/src/plugins/mcusupport/mcupackage.h index 8d045f8dc02..5d336b782fb 100644 --- a/src/plugins/mcusupport/mcupackage.h +++ b/src/plugins/mcusupport/mcupackage.h @@ -45,6 +45,8 @@ public: ~McuPackage() override = default; + static const QMap packageLabelTranslations; + QString label() const override; QString cmakeVariableName() const override; QString environmentVariableName() const override; diff --git a/src/plugins/mcusupport/mcusupportoptionspage.cpp b/src/plugins/mcusupport/mcusupportoptionspage.cpp index f4a794e4133..52e3a6ee434 100644 --- a/src/plugins/mcusupport/mcusupportoptionspage.cpp +++ b/src/plugins/mcusupport/mcusupportoptionspage.cpp @@ -225,8 +225,8 @@ void McuSupportOptionsWidget::updateStatus() : tr("A kit for the selected target can be created.")); } else { m_kitCreationInfoLabel->setType(Utils::InfoLabel::NotOk); - m_kitCreationInfoLabel->setText("Provide the package paths in order to create a kit " - "for your target."); + m_kitCreationInfoLabel->setText(tr("Provide the package paths in order to create a kit " + "for your target.")); } } @@ -238,8 +238,8 @@ void McuSupportOptionsWidget::updateStatus() m_statusInfoLabel->setVisible(!cMakeAvailable); if (m_statusInfoLabel->isVisible()) { m_statusInfoLabel->setType(Utils::InfoLabel::NotOk); - m_statusInfoLabel->setText("No CMake tool was detected. Add a CMake tool in the " - "CMake options and press Apply."); + m_statusInfoLabel->setText(tr("No CMake tool was detected. Add a CMake tool in the " + "CMake options and press Apply.")); } } } diff --git a/src/plugins/mcusupport/mcusupportsdk.cpp b/src/plugins/mcusupport/mcusupportsdk.cpp index f9213d00f7c..27d633771af 100644 --- a/src/plugins/mcusupport/mcusupportsdk.cpp +++ b/src/plugins/mcusupport/mcusupportsdk.cpp @@ -640,7 +640,12 @@ static PackageDescription parsePackage(const QJsonObject &cmakeEntry) else defaultPathString = cmakeEntry["defaultValue"].toString(); - return {cmakeEntry["label"].toString(), + QString label = cmakeEntry["label"].toString(); + + //Apply translations + label = McuPackage::packageLabelTranslations.value(label, label); + + return {label, cmakeEntry["envVar"].toString(), cmakeEntry["cmakeVar"].toString(), cmakeEntry["description"].toString(),