Remove translation for label placeholders.
This commit is contained in:
parent
d10f20f399
commit
34e1391ecb
|
@ -82,8 +82,7 @@ void DialogPatternMaterials::SetPatternMaterials(const QMap<int, QString> &list)
|
||||||
|
|
||||||
for (int i = 0; i < userMaterialPlaceholdersQuantity; ++i)
|
for (int i = 0; i < userMaterialPlaceholdersQuantity; ++i)
|
||||||
{
|
{
|
||||||
const QString translated = qApp->TrVars()->PlaceholderToUser(pl_userMaterial + QString::number(i + 1));
|
QTableWidgetItem *item = new QTableWidgetItem(per + pl_userMaterial + QString::number(i + 1) + per);
|
||||||
QTableWidgetItem *item = new QTableWidgetItem(per + translated + per);
|
|
||||||
item->setFlags(item->flags() ^ Qt::ItemIsEditable);
|
item->setFlags(item->flags() ^ Qt::ItemIsEditable);
|
||||||
item->setTextAlignment(Qt::AlignLeft);
|
item->setTextAlignment(Qt::AlignLeft);
|
||||||
|
|
||||||
|
|
|
@ -183,44 +183,6 @@ const QString pl_wCut = QStringLiteral("wCut");
|
||||||
const QString pl_wOnFold = QStringLiteral("wOnFold");
|
const QString pl_wOnFold = QStringLiteral("wOnFold");
|
||||||
const QString pl_measurement = QStringLiteral("measurement_");
|
const QString pl_measurement = QStringLiteral("measurement_");
|
||||||
|
|
||||||
const QStringList labelTemplatePlaceholders = {
|
|
||||||
pl_size,
|
|
||||||
pl_height,
|
|
||||||
pl_hip,
|
|
||||||
pl_waist,
|
|
||||||
pl_date,
|
|
||||||
pl_time,
|
|
||||||
pl_birthDate,
|
|
||||||
pl_patternName,
|
|
||||||
pl_patternNumber,
|
|
||||||
pl_author,
|
|
||||||
pl_customer,
|
|
||||||
pl_email,
|
|
||||||
pl_userMaterial,
|
|
||||||
pl_pExt,
|
|
||||||
pl_pUnits,
|
|
||||||
pl_pFileName,
|
|
||||||
pl_mFileName,
|
|
||||||
pl_mExt,
|
|
||||||
pl_mUnits,
|
|
||||||
pl_mSizeUnits,
|
|
||||||
pl_pLetter,
|
|
||||||
pl_pAnnotation,
|
|
||||||
pl_pOrientation,
|
|
||||||
pl_pRotation,
|
|
||||||
pl_pTilt,
|
|
||||||
pl_pFoldPosition,
|
|
||||||
pl_pName,
|
|
||||||
pl_pQuantity,
|
|
||||||
pl_mFabric,
|
|
||||||
pl_mLining,
|
|
||||||
pl_mInterfacing,
|
|
||||||
pl_mInterlining,
|
|
||||||
pl_wCut,
|
|
||||||
pl_wOnFold,
|
|
||||||
pl_measurement
|
|
||||||
};
|
|
||||||
|
|
||||||
const QString cursorArrowOpenHand = QStringLiteral("://cursor/cursor-arrow-openhand.png");
|
const QString cursorArrowOpenHand = QStringLiteral("://cursor/cursor-arrow-openhand.png");
|
||||||
const QString cursorArrowCloseHand = QStringLiteral("://cursor/cursor-arrow-closehand.png");
|
const QString cursorArrowCloseHand = QStringLiteral("://cursor/cursor-arrow-closehand.png");
|
||||||
|
|
||||||
|
|
|
@ -440,8 +440,6 @@ extern const QString pl_measurement;
|
||||||
// Don't forget to syncronize with XSD schema.
|
// Don't forget to syncronize with XSD schema.
|
||||||
const int userMaterialPlaceholdersQuantity = 20;
|
const int userMaterialPlaceholdersQuantity = 20;
|
||||||
|
|
||||||
extern const QStringList labelTemplatePlaceholders;
|
|
||||||
|
|
||||||
extern const QString cursorArrowOpenHand;
|
extern const QString cursorArrowOpenHand;
|
||||||
extern const QString cursorArrowCloseHand;
|
extern const QString cursorArrowCloseHand;
|
||||||
|
|
||||||
|
|
|
@ -52,7 +52,6 @@ VTranslateVars::VTranslateVars()
|
||||||
InitPatternMakingSystems();
|
InitPatternMakingSystems();
|
||||||
InitVariables();
|
InitVariables();
|
||||||
InitFunctions();
|
InitFunctions();
|
||||||
InitPlaceholder();
|
|
||||||
|
|
||||||
PrepareFunctionTranslations();
|
PrepareFunctionTranslations();
|
||||||
}
|
}
|
||||||
|
@ -536,46 +535,6 @@ void VTranslateVars::InitFunctions()
|
||||||
"function fmod"));
|
"function fmod"));
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void VTranslateVars::InitPlaceholder()
|
|
||||||
{
|
|
||||||
placeholders.insert(pl_size, translate("VTranslateVars", "size", "placeholder"));
|
|
||||||
placeholders.insert(pl_height, translate("VTranslateVars", "height", "placeholder"));
|
|
||||||
placeholders.insert(pl_hip, translate("VTranslateVars", "hip", "placeholder"));
|
|
||||||
placeholders.insert(pl_waist, translate("VTranslateVars", "waist", "placeholder"));
|
|
||||||
placeholders.insert(pl_date, translate("VTranslateVars", "date", "placeholder"));
|
|
||||||
placeholders.insert(pl_time, translate("VTranslateVars", "time", "placeholder"));
|
|
||||||
placeholders.insert(pl_birthDate, translate("VTranslateVars", "birthDate", "placeholder"));
|
|
||||||
placeholders.insert(pl_patternName, translate("VTranslateVars", "patternName", "placeholder"));
|
|
||||||
placeholders.insert(pl_patternNumber, translate("VTranslateVars", "patternNumber", "placeholder"));
|
|
||||||
placeholders.insert(pl_author, translate("VTranslateVars", "author", "placeholder"));
|
|
||||||
placeholders.insert(pl_customer, translate("VTranslateVars", "customer", "placeholder"));
|
|
||||||
placeholders.insert(pl_email, translate("VTranslateVars", "email", "placeholder"));
|
|
||||||
placeholders.insert(pl_userMaterial, translate("VTranslateVars", "userMaterial", "placeholder"));
|
|
||||||
placeholders.insert(pl_pExt, translate("VTranslateVars", "pExt", "placeholder"));
|
|
||||||
placeholders.insert(pl_pUnits, translate("VTranslateVars", "pUnits", "placeholder"));
|
|
||||||
placeholders.insert(pl_pFileName, translate("VTranslateVars", "pFileName", "placeholder"));
|
|
||||||
placeholders.insert(pl_mFileName, translate("VTranslateVars", "mFileName", "placeholder"));
|
|
||||||
placeholders.insert(pl_mExt, translate("VTranslateVars", "mExt", "placeholder"));
|
|
||||||
placeholders.insert(pl_mUnits, translate("VTranslateVars", "mUnits", "placeholder"));
|
|
||||||
placeholders.insert(pl_mSizeUnits, translate("VTranslateVars", "mSizeUnits", "placeholder"));
|
|
||||||
placeholders.insert(pl_pLetter, translate("VTranslateVars", "pLetter", "placeholder"));
|
|
||||||
placeholders.insert(pl_pAnnotation, translate("VTranslateVars", "pAnnotation", "placeholder"));
|
|
||||||
placeholders.insert(pl_pOrientation, translate("VTranslateVars", "pOrientation", "placeholder"));
|
|
||||||
placeholders.insert(pl_pRotation, translate("VTranslateVars", "pRotation", "placeholder"));
|
|
||||||
placeholders.insert(pl_pTilt, translate("VTranslateVars", "pTilt", "placeholder"));
|
|
||||||
placeholders.insert(pl_pFoldPosition, translate("VTranslateVars", "pFoldPosition", "placeholder"));
|
|
||||||
placeholders.insert(pl_pName, translate("VTranslateVars", "pName", "placeholder"));
|
|
||||||
placeholders.insert(pl_pQuantity, translate("VTranslateVars", "pQuantity", "placeholder"));
|
|
||||||
placeholders.insert(pl_mFabric, translate("VTranslateVars", "mFabric", "placeholder"));
|
|
||||||
placeholders.insert(pl_mLining, translate("VTranslateVars", "mLining", "placeholder"));
|
|
||||||
placeholders.insert(pl_mInterfacing, translate("VTranslateVars", "mInterfacing", "placeholder"));
|
|
||||||
placeholders.insert(pl_mInterlining, translate("VTranslateVars", "mInterlining", "placeholder"));
|
|
||||||
placeholders.insert(pl_wCut, translate("VTranslateVars", "wCut", "placeholder"));
|
|
||||||
placeholders.insert(pl_wOnFold, translate("VTranslateVars", "wOnFold", "placeholder"));
|
|
||||||
placeholders.insert(pl_measurement, translate("VTranslateVars", "measurement", "placeholder"));
|
|
||||||
}
|
|
||||||
|
|
||||||
#undef translate
|
#undef translate
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
@ -769,101 +728,6 @@ QString VTranslateVars::InternalVarToUser(const QString &var) const
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
QString VTranslateVars::PlaceholderToUser(QString var) const
|
|
||||||
{
|
|
||||||
QString number;
|
|
||||||
if (var.startsWith(pl_userMaterial) && var.length() > pl_userMaterial.length())
|
|
||||||
{
|
|
||||||
number = var.right(var.length() - pl_userMaterial.length());
|
|
||||||
var = pl_userMaterial;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (placeholders.contains(var))
|
|
||||||
{
|
|
||||||
return placeholders.value(var).translate(qApp->Settings()->GetLocale()) + number;
|
|
||||||
}
|
|
||||||
|
|
||||||
return var;
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
QString VTranslateVars::PlaceholderToUserText(QString text) const
|
|
||||||
{
|
|
||||||
QChar per('%');
|
|
||||||
auto i = placeholders.constBegin();
|
|
||||||
while (i != placeholders.constEnd())
|
|
||||||
{
|
|
||||||
if (i.key() != pl_userMaterial)
|
|
||||||
{
|
|
||||||
const QString translated = per + i.value().translate(qApp->Settings()->GetLocale()) + per;
|
|
||||||
const QString original = per + i.key() + per;
|
|
||||||
|
|
||||||
if (translated != original)
|
|
||||||
{
|
|
||||||
text.replace(original, translated);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const QString material_translated = i.value().translate(qApp->Settings()->GetLocale());
|
|
||||||
if (text.indexOf(i.key()) != -1)
|
|
||||||
{
|
|
||||||
for (int n = 0; n < userMaterialPlaceholdersQuantity; ++n)
|
|
||||||
{
|
|
||||||
const QString number = QString::number(n + 1);
|
|
||||||
const QString original = per + i.key() + number + per;
|
|
||||||
const QString translated = per + material_translated + number + per;
|
|
||||||
if (translated != original)
|
|
||||||
{
|
|
||||||
text.replace(original, translated);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
++i;
|
|
||||||
}
|
|
||||||
return text;
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
QString VTranslateVars::PlaceholderFromUserText(QString text) const
|
|
||||||
{
|
|
||||||
QChar per('%');
|
|
||||||
auto i = placeholders.constBegin();
|
|
||||||
while (i != placeholders.constEnd())
|
|
||||||
{
|
|
||||||
if (i.key() != pl_userMaterial)
|
|
||||||
{
|
|
||||||
const QString original = per + i.key() + per;
|
|
||||||
const QString translated = per + i.value().translate(qApp->Settings()->GetLocale()) + per;
|
|
||||||
if (translated != original)
|
|
||||||
{
|
|
||||||
text.replace(translated, original);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const QString material_translated = i.value().translate(qApp->Settings()->GetLocale());
|
|
||||||
if (text.indexOf(material_translated) != -1)
|
|
||||||
{
|
|
||||||
for (int n = 0; n < userMaterialPlaceholdersQuantity; ++n)
|
|
||||||
{
|
|
||||||
const QString number = QString::number(n + 1);
|
|
||||||
const QString original = per + i.key() + number + per;
|
|
||||||
const QString translated = per + material_translated + number + per;
|
|
||||||
if (translated != original)
|
|
||||||
{
|
|
||||||
text.replace(translated, original);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
++i;
|
|
||||||
}
|
|
||||||
return text;
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QString VTranslateVars::VarToUser(const QString &var) const
|
QString VTranslateVars::VarToUser(const QString &var) const
|
||||||
{
|
{
|
||||||
|
@ -1195,7 +1059,6 @@ void VTranslateVars::Retranslate()
|
||||||
InitPatternMakingSystems();
|
InitPatternMakingSystems();
|
||||||
InitVariables();
|
InitVariables();
|
||||||
InitFunctions();
|
InitFunctions();
|
||||||
InitPlaceholder();
|
|
||||||
|
|
||||||
PrepareFunctionTranslations();
|
PrepareFunctionTranslations();
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,10 +45,6 @@ public:
|
||||||
bool VariablesToUser(QString &newFormula, int position, const QString &token, int &bias) const;
|
bool VariablesToUser(QString &newFormula, int position, const QString &token, int &bias) const;
|
||||||
|
|
||||||
QString InternalVarToUser(const QString &var) const;
|
QString InternalVarToUser(const QString &var) const;
|
||||||
QString PlaceholderToUser(QString var) const;
|
|
||||||
|
|
||||||
QString PlaceholderToUserText(QString text) const;
|
|
||||||
QString PlaceholderFromUserText(QString text) const;
|
|
||||||
|
|
||||||
QString VarToUser(const QString &var) const;
|
QString VarToUser(const QString &var) const;
|
||||||
QString VarFromUser(const QString &var) const;
|
QString VarFromUser(const QString &var) const;
|
||||||
|
@ -79,14 +75,12 @@ private:
|
||||||
QMap<QString, qmu::QmuTranslation> variables{};
|
QMap<QString, qmu::QmuTranslation> variables{};
|
||||||
QMap<QString, qmu::QmuTranslation> functions{};
|
QMap<QString, qmu::QmuTranslation> functions{};
|
||||||
QMap<QString, qmu::QmuTranslation> functionsDescriptions{};
|
QMap<QString, qmu::QmuTranslation> functionsDescriptions{};
|
||||||
QMap<QString, qmu::QmuTranslation> placeholders{};
|
|
||||||
QMap<QString, qmu::QmuTranslation> stDescriptions{};
|
QMap<QString, qmu::QmuTranslation> stDescriptions{};
|
||||||
QMap<QString, QString> translatedFunctions{};
|
QMap<QString, QString> translatedFunctions{};
|
||||||
|
|
||||||
void InitPatternMakingSystems();
|
void InitPatternMakingSystems();
|
||||||
void InitVariables();
|
void InitVariables();
|
||||||
void InitFunctions();
|
void InitFunctions();
|
||||||
void InitPlaceholder();
|
|
||||||
|
|
||||||
void PrepareFunctionTranslations();
|
void PrepareFunctionTranslations();
|
||||||
|
|
||||||
|
|
|
@ -479,7 +479,7 @@ void DialogEditLabel::InitPlaceholdersMenu()
|
||||||
{
|
{
|
||||||
auto value = i.value();
|
auto value = i.value();
|
||||||
QAction *action = m_placeholdersMenu->addAction(value.first);
|
QAction *action = m_placeholdersMenu->addAction(value.first);
|
||||||
action->setData(per + qApp->TrVars()->PlaceholderToUser(i.key()) + per);
|
action->setData(per + i.key() + per);
|
||||||
connect(action, &QAction::triggered, this, &DialogEditLabel::InsertPlaceholder);
|
connect(action, &QAction::triggered, this, &DialogEditLabel::InsertPlaceholder);
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
@ -606,7 +606,7 @@ QVector<VLabelTemplateLine> DialogEditLabel::GetTemplate() const
|
||||||
if (lineItem)
|
if (lineItem)
|
||||||
{
|
{
|
||||||
VLabelTemplateLine line;
|
VLabelTemplateLine line;
|
||||||
line.line = qApp->TrVars()->PlaceholderFromUserText(lineItem->text());
|
line.line = lineItem->text();
|
||||||
line.alignment = lineItem->textAlignment();
|
line.alignment = lineItem->textAlignment();
|
||||||
line.fontSizeIncrement = lineItem->data(Qt::UserRole).toInt();
|
line.fontSizeIncrement = lineItem->data(Qt::UserRole).toInt();
|
||||||
|
|
||||||
|
@ -631,7 +631,7 @@ void DialogEditLabel::SetTemplate(const QVector<VLabelTemplateLine> &lines)
|
||||||
|
|
||||||
for (auto &line : lines)
|
for (auto &line : lines)
|
||||||
{
|
{
|
||||||
QListWidgetItem *item = new QListWidgetItem(qApp->TrVars()->PlaceholderToUserText(line.line));
|
QListWidgetItem *item = new QListWidgetItem(line.line);
|
||||||
item->setTextAlignment(line.alignment);
|
item->setTextAlignment(line.alignment);
|
||||||
item->setData(Qt::UserRole, line.fontSizeIncrement);
|
item->setData(Qt::UserRole, line.fontSizeIncrement);
|
||||||
|
|
||||||
|
|
|
@ -225,43 +225,6 @@ void TST_BuitInRegExp::TestCheckInternalVaribleRegExp()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void TST_BuitInRegExp::TestTemplatePlaceholders()
|
|
||||||
{
|
|
||||||
QSet<QString> originals;
|
|
||||||
QSet<QString> translations;
|
|
||||||
QStringList issue;
|
|
||||||
|
|
||||||
for (auto &placeholder : labelTemplatePlaceholders)
|
|
||||||
{
|
|
||||||
originals.insert(placeholder);
|
|
||||||
const QString translated = m_trMs->PlaceholderToUser(placeholder);
|
|
||||||
|
|
||||||
const QRegularExpression re(QLatin1String("^[^\\s]+$"));
|
|
||||||
if (re.match(translated).hasMatch())
|
|
||||||
{
|
|
||||||
if (not translations.contains(translated))
|
|
||||||
{
|
|
||||||
translations.insert(translated);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
issue << QString("Duplicate translation '%1' for placeholder '%2' in locale '%3'.\n")
|
|
||||||
.arg(translated, placeholder, m_locale);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
issue << QString("Invalid translation '%1' for placeholder '%2' in locale '%3'.\n")
|
|
||||||
.arg(translated, placeholder, m_locale);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
QVERIFY2(issue.isEmpty(), qUtf8Printable(issue.join("")));
|
|
||||||
QCOMPARE(originals.size(), labelTemplatePlaceholders.size()); // All tags are unique
|
|
||||||
QCOMPARE(translations.size(), labelTemplatePlaceholders.size()); // All translated tags are unique
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void TST_BuitInRegExp::TestForValidChars_data()
|
void TST_BuitInRegExp::TestForValidChars_data()
|
||||||
{
|
{
|
||||||
|
|
|
@ -61,7 +61,6 @@ private slots:
|
||||||
void TestCheckUnderlineExists();
|
void TestCheckUnderlineExists();
|
||||||
void TestCheckInternalVaribleRegExp_data();
|
void TestCheckInternalVaribleRegExp_data();
|
||||||
void TestCheckInternalVaribleRegExp();
|
void TestCheckInternalVaribleRegExp();
|
||||||
void TestTemplatePlaceholders();
|
|
||||||
void TestForValidChars_data();
|
void TestForValidChars_data();
|
||||||
void TestForValidChars();
|
void TestForValidChars();
|
||||||
void cleanupTestCase();
|
void cleanupTestCase();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user