From 16f25ec4a2d0c56a161ffb4be5d0d9b2bd1068bc Mon Sep 17 00:00:00 2001 From: wandererfan Date: Mon, 15 Jul 2024 20:01:05 -0400 Subject: [PATCH] [TD]translate line names at time of use --- src/Mod/TechDraw/App/LineNameEnum.cpp | 25 +++++++++++++++++++++++++ src/Mod/TechDraw/App/LineNameEnum.h | 10 ++++++++++ src/Mod/TechDraw/Gui/DrawGuiUtil.cpp | 3 ++- 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/src/Mod/TechDraw/App/LineNameEnum.cpp b/src/Mod/TechDraw/App/LineNameEnum.cpp index 5211292e9b..ee0b9f9ffc 100644 --- a/src/Mod/TechDraw/App/LineNameEnum.cpp +++ b/src/Mod/TechDraw/App/LineNameEnum.cpp @@ -22,11 +22,36 @@ #include "PreCompiled.h" +#include "Preferences.h" + #include "LineNameEnum.h" namespace TechDraw { +// these strings have to be kept in order according to Preferences::lineStandard() +std::vector LineName::ContextStrings{ + "ANSILineTypeEnum", + "ASMELineTypeEnum", + "ISOLineTypeEnum" }; + +std::string LineName::translationContext(size_t iStandard) +{ + if (iStandard < ContextStrings.size() && + iStandard > 0) { + return ContextStrings[iStandard]; + } + return {}; +} + + +std::string LineName::currentTranslationContext() +{ + return translationContext(Preferences::lineStandard()); +} + + + //! line numbers begin at 1, not 0 const int ISOLineName::ISOLineNameCount = 15; diff --git a/src/Mod/TechDraw/App/LineNameEnum.h b/src/Mod/TechDraw/App/LineNameEnum.h index b62c19f80e..d3df6c1d1b 100644 --- a/src/Mod/TechDraw/App/LineNameEnum.h +++ b/src/Mod/TechDraw/App/LineNameEnum.h @@ -33,8 +33,18 @@ namespace TechDraw { + + //! common definitions for line numbers, names and lineicon names +class TechDrawExport LineName { +public: + static std::string translationContext(size_t iStandard); + static std::string currentTranslationContext(); + + static std::vector ContextStrings; +}; + class TechDrawExport ISOLineName { Q_DECLARE_TR_FUNCTIONS(TechDraw::ISOLineName) diff --git a/src/Mod/TechDraw/Gui/DrawGuiUtil.cpp b/src/Mod/TechDraw/Gui/DrawGuiUtil.cpp index 75a57d9f73..eae81efdfe 100644 --- a/src/Mod/TechDraw/Gui/DrawGuiUtil.cpp +++ b/src/Mod/TechDraw/Gui/DrawGuiUtil.cpp @@ -180,9 +180,10 @@ void DrawGuiUtil::loadLineStyleChoices(QComboBox* combo, LineGenerator* generato choices = LineGenerator::getLineDescriptions(); } + auto translationContext = LineName::currentTranslationContext(); int itemNumber {0}; for (auto& entry : choices) { - QString qentry = Base::Tools::fromStdString(entry); + QString qentry = QCoreApplication::translate(translationContext.c_str(), entry.c_str()); combo->addItem(qentry); if (generator) { combo->setItemIcon(itemNumber, iconForLine(itemNumber + 1, generator));