diff --git a/src/app/valentina/dialogs/dialogpatternproperties.cpp b/src/app/valentina/dialogs/dialogpatternproperties.cpp index ce257ac43..9e3fe361b 100644 --- a/src/app/valentina/dialogs/dialogpatternproperties.cpp +++ b/src/app/valentina/dialogs/dialogpatternproperties.cpp @@ -173,6 +173,11 @@ DialogPatternProperties::DialogPatternProperties(const QString &filePath, VPatte ui->lineEditCustomerName->setText(doc->GetCustomerName()); ui->labelCreationDate->setText(QDate::currentDate().toString(Qt::SystemLocaleLongDate)); ui->lineEditSize->setText(doc->GetPatternSize()); + + const QString plSize = QLatin1String("%") + qApp->TrVars()->PlaceholderToUser(pl_size) + QLatin1String("%"); + const QString plHeight = QLatin1String("%") + qApp->TrVars()->PlaceholderToUser(pl_height) + QLatin1String("%"); + ui->lineEditSize->setToolTip(tr("Use %1 and %2 to insert pattern size and height").arg(plSize, plHeight)); + ui->checkBoxShowDate->setChecked(doc->IsDateVisible()); if (doc->MPath().isEmpty() == true) { @@ -184,7 +189,6 @@ DialogPatternProperties::DialogPatternProperties(const QString &filePath, VPatte ui->checkBoxShowMeasurements->setChecked(doc->IsMeasurementsVisible()); } - connect(ui->lineEditPatternName, &QLineEdit::editingFinished, this, &DialogPatternProperties::GeneralInfoChanged); connect(ui->lineEditPatternNumber, &QLineEdit::editingFinished, this, &DialogPatternProperties::GeneralInfoChanged); connect(ui->lineEditCompanyName, &QLineEdit::editingFinished, this, &DialogPatternProperties::GeneralInfoChanged); diff --git a/src/app/valentina/dialogs/dialogpatternproperties.ui b/src/app/valentina/dialogs/dialogpatternproperties.ui index 5e04e4baf..2ef6a2803 100644 --- a/src/app/valentina/dialogs/dialogpatternproperties.ui +++ b/src/app/valentina/dialogs/dialogpatternproperties.ui @@ -1053,7 +1053,7 @@ 10 10 401 - 241 + 252 @@ -1139,9 +1139,6 @@ - - Use %size% and %height% to insert pattern size and height - 40 @@ -1189,8 +1186,8 @@ accept() - 248 - 254 + 257 + 682 157 @@ -1205,8 +1202,8 @@ reject() - 316 - 260 + 325 + 682 286 diff --git a/src/libs/vlayout/vtextmanager.cpp b/src/libs/vlayout/vtextmanager.cpp index bd571b356..dfd19ca1b 100644 --- a/src/libs/vlayout/vtextmanager.cpp +++ b/src/libs/vlayout/vtextmanager.cpp @@ -35,6 +35,7 @@ #include "../ifc/xml/vabstractpattern.h" #include "../vpatterndb/vpatternpiecedata.h" +#include "../vmisc/vabstractapplication.h" #include "vtextmanager.h" //--------------------------------------------------------------------------------------------------------------------- @@ -324,8 +325,14 @@ void VTextManager::Update(const VAbstractPattern *pDoc, qreal dSize, qreal dHeig tl.m_qsText = pDoc->GetPatternSize(); if (tl.m_qsText.isEmpty() == false) { - tl.m_qsText.replace(QApplication::translate("Detail", "%size%", 0), QString::number(dSize)); - tl.m_qsText.replace(QApplication::translate("Detail", "%height%", 0), QString::number(dHeight)); + // Such describing placeholders will help avoid mistake of localization. + // Translators very often remove '%'. + QString placeholder = QLatin1String("%") + qApp->TrVars()->PlaceholderToUser(pl_size) + QLatin1String("%"); + tl.m_qsText.replace(placeholder, QString::number(dSize)); + + placeholder = QLatin1String("%") + qApp->TrVars()->PlaceholderToUser(pl_height) + QLatin1String("%"); + tl.m_qsText.replace(placeholder, QString::number(dHeight)); + tl.m_eFontWeight = QFont::Normal; tl.m_eStyle = QFont::StyleNormal; tl.m_iFontSize = 0; diff --git a/src/libs/vmisc/def.cpp b/src/libs/vmisc/def.cpp index 3af5215fd..9aeb2904a 100644 --- a/src/libs/vmisc/def.cpp +++ b/src/libs/vmisc/def.cpp @@ -423,6 +423,9 @@ const QStringList builInPostfixOperators = QStringList() << cm_Oprt << mm_Oprt << in_Oprt; +const QString pl_size = QStringLiteral("size"); +const QString pl_height = QStringLiteral("height"); + const QString cursorArrowOpenHand = QStringLiteral("://cursor/cursor-arrow-openhand.png"); const QString cursorArrowCloseHand = QStringLiteral("://cursor/cursor-arrow-closehand.png"); diff --git a/src/libs/vmisc/def.h b/src/libs/vmisc/def.h index 9a9d385b1..ad437abd6 100644 --- a/src/libs/vmisc/def.h +++ b/src/libs/vmisc/def.h @@ -592,6 +592,10 @@ extern const QString in_Oprt; extern const QStringList builInPostfixOperators; +// Placeholders +extern const QString pl_size; +extern const QString pl_height; + extern const QString cursorArrowOpenHand; extern const QString cursorArrowCloseHand; diff --git a/src/libs/vpatterndb/vtranslatevars.cpp b/src/libs/vpatterndb/vtranslatevars.cpp index d3c0a04e4..ed994d762 100644 --- a/src/libs/vpatterndb/vtranslatevars.cpp +++ b/src/libs/vpatterndb/vtranslatevars.cpp @@ -55,12 +55,14 @@ VTranslateVars::VTranslateVars() variables(QMap()), functions(QMap()), postfixOperators(QMap()), + placeholders(QMap()), stDescriptions(QMap()) { InitPatternMakingSystems(); InitVariables(); InitFunctions(); InitPostfixOperators(); + InitPlaceholder(); } //--------------------------------------------------------------------------------------------------------------------- @@ -430,6 +432,13 @@ void VTranslateVars::InitPostfixOperators() postfixOperators.insert(in_Oprt, translate("VTranslateVars", "in", "inch")); } +//--------------------------------------------------------------------------------------------------------------------- +void VTranslateVars::InitPlaceholder() +{ + placeholders.insert(pl_size, translate("VTranslateVars", "size", "placeholder")); + placeholders.insert(pl_height, translate("VTranslateVars", "height", "placeholder")); +} + #undef translate //--------------------------------------------------------------------------------------------------------------------- @@ -614,6 +623,17 @@ QString VTranslateVars::InternalVarToUser(const QString &var) const } } +//--------------------------------------------------------------------------------------------------------------------- +QString VTranslateVars::PlaceholderToUser(const QString &var) const +{ + if (placeholders.contains(var)) + { + return placeholders.value(var).translate(); + } + + return var; +} + //--------------------------------------------------------------------------------------------------------------------- QString VTranslateVars::VarToUser(const QString &var) const { @@ -945,6 +965,7 @@ void VTranslateVars::Retranslate() InitVariables(); InitFunctions(); InitPostfixOperators(); + InitPlaceholder(); } //--------------------------------------------------------------------------------------------------------------------- diff --git a/src/libs/vpatterndb/vtranslatevars.h b/src/libs/vpatterndb/vtranslatevars.h index badace6f0..b95eeef97 100644 --- a/src/libs/vpatterndb/vtranslatevars.h +++ b/src/libs/vpatterndb/vtranslatevars.h @@ -46,6 +46,7 @@ public: bool VariablesToUser(QString &newFormula, int position, const QString &token, int &bias) const; QString InternalVarToUser(const QString &var) const; + QString PlaceholderToUser(const QString &var) const; QString VarToUser(const QString &var) const; QString VarFromUser(const QString &var) const; @@ -61,6 +62,7 @@ public: QString FormulaToUser(const QString &formula, bool osSeparator) const; virtual void Retranslate() Q_DECL_OVERRIDE; + QMap GetFunctions() const; private: @@ -71,12 +73,14 @@ private: QMap variables; QMap functions; QMap postfixOperators; + QMap placeholders; QMap stDescriptions; void InitPatternMakingSystems(); void InitVariables(); void InitFunctions(); void InitPostfixOperators(); + void InitPlaceholder(); void InitSystem(const QString &code, const qmu::QmuTranslation &name, const qmu::QmuTranslation &author, const qmu::QmuTranslation &book);