/************************************************************************ ** ** @file vtranslatevars.cpp ** @author Roman Telezhynskyi ** @date 10 6, 2015 ** ** @brief ** @copyright ** This source code is part of the Valentine project, a pattern making ** program, whose allow create and modeling patterns of clothing. ** Copyright (C) 2015 Valentina project ** All Rights Reserved. ** ** Valentina is free software: you can redistribute it and/or modify ** it under the terms of the GNU General Public License as published by ** the Free Software Foundation, either version 3 of the License, or ** (at your option) any later version. ** ** Valentina is distributed in the hope that it will be useful, ** but WITHOUT ANY WARRANTY; without even the implied warranty of ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** GNU General Public License for more details. ** ** You should have received a copy of the GNU General Public License ** along with Valentina. If not, see . ** *************************************************************************/ #include "vtranslatevars.h" #include "calculator.h" #include "../vmisc/def.h" #include "../vgeometry/vgeometrydef.h" using namespace qmu; //--------------------------------------------------------------------------------------------------------------------- VTranslateVars::VTranslateVars(bool osSeparator) :measurements(QMap()), guiTexts(QMap()), descriptions(QMap()), variables(QMap()), functions(QMap()), postfixOperators(QMap()), stDescriptions(QMap()), numbers(QMap()), formulas(QMap()), osSeparator(osSeparator) { InitMeasurements(); InitVariables(); InitFunctions(); InitPostfixOperators(); InitSTDescriptions(); } //--------------------------------------------------------------------------------------------------------------------- VTranslateVars::~VTranslateVars() {} //--------------------------------------------------------------------------------------------------------------------- void VTranslateVars::InitMeasurements() { InitGroupA(); // Direct Height InitGroupB(); // Direct Width InitGroupC(); // Indentation InitGroupD(); // Circumference and Arc InitGroupE(); // Vertical InitGroupF(); // Horizontal InitGroupG(); // Bust InitGroupH(); // Balance InitGroupI(); // Arm InitGroupJ(); // Leg InitGroupK(); // Crotch and Rise InitGroupL(); // Hand InitGroupM(); // Foot InitGroupN(); // Head InitGroupO(); // Men & Tailoring InitGroupP(); // Historical & Specialty InitGroupQ(); // Patternmaking measurements } //--------------------------------------------------------------------------------------------------------------------- void VTranslateVars::InitVariables() { variables.insert(line_, QmuTranslation::translate("Variables", "Line_", "Left symbol _ in name")); variables.insert(angleLine_, QmuTranslation::translate("Variables", "AngleLine_", "Left symbol _ in name")); variables.insert(arc_, QmuTranslation::translate("Variables", "Arc_", "Left symbol _ in name")); variables.insert(spl_, QmuTranslation::translate("Variables", "Spl_", "Left symbol _ in name")); variables.insert(splPath, QmuTranslation::translate("Variables", "SplPath", "Do not add symbol _ to the end of name")); variables.insert(radiusArc_, QmuTranslation::translate("Variables", "RadiusArc_", "Left symbol _ in name")); variables.insert(angle1Arc_, QmuTranslation::translate("Variables", "Angle1Arc_", "Left symbol _ in name")); variables.insert(angle2Arc_, QmuTranslation::translate("Variables", "Angle2Arc_", "Left symbol _ in name")); variables.insert(angle1Spl_, QmuTranslation::translate("Variables", "Angle1Spl_", "Left symbol _ in name")); variables.insert(angle2Spl_, QmuTranslation::translate("Variables", "Angle2Spl_", "Left symbol _ in name")); variables.insert(angle1SplPath, QmuTranslation::translate("Variables", "Angle1SplPath", "Do not add symbol _ to the end of name")); variables.insert(angle2SplPath, QmuTranslation::translate("Variables", "Angle2SplPath", "Do not add symbol _ to the end of name")); } //--------------------------------------------------------------------------------------------------------------------- void VTranslateVars::InitFunctions() { functions.insert(sin_F, QmuTranslation::translate("Functions", "sin", "sine function")); functions.insert(cos_F, QmuTranslation::translate("Functions", "cos", "cosine function")); functions.insert(tan_F, QmuTranslation::translate("Functions", "tan", "tangens function")); functions.insert(asin_F, QmuTranslation::translate("Functions", "asin", "arcus sine function")); functions.insert(acos_F, QmuTranslation::translate("Functions", "acos", "arcus cosine function")); functions.insert(atan_F, QmuTranslation::translate("Functions", "atan", "arcus tangens function")); functions.insert(sinh_F, QmuTranslation::translate("Functions", "sinh", "hyperbolic sine function")); functions.insert(cosh_F, QmuTranslation::translate("Functions", "cosh", "hyperbolic cosine")); functions.insert(tanh_F, QmuTranslation::translate("Functions", "tanh", "hyperbolic tangens function")); functions.insert(asinh_F, QmuTranslation::translate("Functions", "asinh", "hyperbolic arcus sine function")); functions.insert(acosh_F, QmuTranslation::translate("Functions", "acosh", "hyperbolic arcus tangens function")); functions.insert(atanh_F, QmuTranslation::translate("Functions", "atanh", "hyperbolic arcur tangens function")); functions.insert(log2_F, QmuTranslation::translate("Functions", "log2", "logarithm to the base 2")); functions.insert(log10_F, QmuTranslation::translate("Functions", "log10", "logarithm to the base 10")); functions.insert(log_F, QmuTranslation::translate("Functions", "log", "logarithm to the base 10")); functions.insert(ln_F, QmuTranslation::translate("Functions", "ln", "logarithm to base e (2.71828...)")); functions.insert(exp_F, QmuTranslation::translate("Functions", "exp", "e raised to the power of x")); functions.insert(sqrt_F, QmuTranslation::translate("Functions", "sqrt", "square root of a value")); functions.insert(sign_F, QmuTranslation::translate("Functions", "sign", "sign function -1 if x<0; 1 if x>0")); functions.insert(rint_F, QmuTranslation::translate("Functions", "rint", "round to nearest integer")); functions.insert(abs_F, QmuTranslation::translate("Functions", "abs", "absolute value")); functions.insert(min_F, QmuTranslation::translate("Functions", "min", "min of all arguments")); functions.insert(max_F, QmuTranslation::translate("Functions", "max", "max of all arguments")); functions.insert(sum_F, QmuTranslation::translate("Functions", "sum", "sum of all arguments")); functions.insert(avg_F, QmuTranslation::translate("Functions", "avg", "mean value of all arguments")); functions.insert(fmod_F, QmuTranslation::translate("Functions", "fmod", "Returns the floating-point remainder of numer/denom (rounded towards zero)")); } //--------------------------------------------------------------------------------------------------------------------- void VTranslateVars::InitPostfixOperators() { postfixOperators.insert(cm_Oprt, QmuTranslation::translate("PostfixOperators", "cm", "centimeter")); postfixOperators.insert(mm_Oprt, QmuTranslation::translate("PostfixOperators", "mm", "millimeter")); postfixOperators.insert(in_Oprt, QmuTranslation::translate("PostfixOperators", "in", "inch")); } //--------------------------------------------------------------------------------------------------------------------- void VTranslateVars::InitSTDescriptions() { stDescriptions.insert("0", QmuTranslation::translate("STDescriptions", "Standard figures of men 1st group, chest 100 cm", "Standard table description")); } //--------------------------------------------------------------------------------------------------------------------- void VTranslateVars::InitMeasurement(const QString &name, const QmuTranslation &m, const QmuTranslation &g, const QmuTranslation &d, const QString &number, const QString &formula) { measurements.insert(name, m); guiTexts.insert(name, g); descriptions.insert(name, d); numbers.insert(name, number); formulas.insert(name, formula); } //--------------------------------------------------------------------------------------------------------------------- /** * @brief CorrectionsPositions correct position tokens in expression after token translation. * * Because translated string can have different length compare to original need make correction after each translation. * If bias = 0 correction will not happens. * * @param position position currecnt token in expression * @param bias difference between original token length and translated * @param tokens all tokens * @param numbers all numbers */ void VTranslateVars::CorrectionsPositions(int position, int bias, QMap &tokens, QMap &numbers) const { if (bias == 0) { return;// Nothing to correct; } BiasTokens(position, bias, tokens); BiasTokens(position, bias, numbers); } //--------------------------------------------------------------------------------------------------------------------- /** * @brief BiasTokens change position for each token that have position more then "position". * @param position token position * @param bias difference between original token length and translated * @param tokens all tokens */ void VTranslateVars::BiasTokens(int position, int bias, QMap &tokens) { QMap newTokens; QMap::const_iterator i = tokens.constBegin(); while (i != tokens.constEnd()) { if (i.key()<= position) { // Tokens before position "position" did not change his positions. newTokens.insert(i.key(), i.value()); } else { newTokens.insert(i.key()-bias, i.value()); } ++i; } tokens = newTokens; } //--------------------------------------------------------------------------------------------------------------------- /** * @brief MeasurementsFromUser translate measurement to internal look. * @param newFormula [in|out] expression to translate * @param position token position * @param token token to translate * @param bias hold change of length between translated and origin token string * @return true if was found measurement with same name. */ bool VTranslateVars::MeasurementsFromUser(QString &newFormula, int position, const QString &token, int &bias) const { QMap::const_iterator i = measurements.constBegin(); while (i != measurements.constEnd()) { if (token == i.value().translate()) { newFormula.replace(position, token.length(), i.key()); bias = token.length() - i.key().length(); return true; } ++i; } return false; } //--------------------------------------------------------------------------------------------------------------------- /** * @brief VariablesFromUser translate variable to internal look. * @param newFormula [in|out] expression to translate * @param position token position * @param token token to translate * @param bias hold change of length between translated and origin token string * @return true if was found variable with same name. */ bool VTranslateVars::VariablesFromUser(QString &newFormula, int position, const QString &token, int &bias) const { QMap::const_iterator i = variables.constBegin(); while (i != variables.constEnd()) { if (token.indexOf( i.value().translate() ) == 0) { newFormula.replace(position, i.value().translate().length(), i.key()); QString newToken = token; newToken.replace(0, i.value().translate().length(), i.key()); bias = token.length() - newToken.length(); return true; } ++i; } return false; } //--------------------------------------------------------------------------------------------------------------------- /** * @brief PostfixOperatorsFromUser translate postfix operator to internal look. * @param newFormula [in|out] expression to translate * @param position token position * @param token token to translate * @param bias hold change of length between translated and origin token string * @return true if was found postfix operator with same name. */ bool VTranslateVars::PostfixOperatorsFromUser(QString &newFormula, int position, const QString &token, int &bias) const { QMap::const_iterator i = postfixOperators.constBegin(); while (i != postfixOperators.constEnd()) { if (token == i.value().translate()) { newFormula.replace(position, token.length(), i.key()); bias = token.length() - i.key().length(); return true; } ++i; } return false; } //--------------------------------------------------------------------------------------------------------------------- /** * @brief FunctionsFromUser translate function name to internal look. * @param newFormula [in|out] expression to translate * @param position token position * @param token token to translate * @param bias hold change of length between translated and origin token string * @return true if was found function with same name. */ bool VTranslateVars::FunctionsFromUser(QString &newFormula, int position, const QString &token, int &bias) const { QMap::const_iterator i = functions.constBegin(); while (i != functions.constEnd()) { if (token == i.value().translate()) { newFormula.replace(position, token.length(), i.key()); bias = token.length() - i.key().length(); return true; } ++i; } return false; } //--------------------------------------------------------------------------------------------------------------------- /** * @brief VariablesToUser translate variable name to user. * @param newFormula [in|out] expression to translate * @param position token position * @param token token to translate * @param bias hold change of length between translated and origin token string * @return true if was found variable with same name. */ bool VTranslateVars::VariablesToUser(QString &newFormula, int position, const QString &token, int &bias) const { QMap::const_iterator i = variables.constBegin(); while (i != variables.constEnd()) { if (token.indexOf( i.key() ) == 0) { newFormula.replace(position, i.key().length(), i.value().translate()); QString newToken = token; newToken.replace(0, i.key().length(), i.value().translate()); bias = token.length() - newToken.length(); return true; } ++i; } return false; } //--------------------------------------------------------------------------------------------------------------------- QString VTranslateVars::VarToUser(const QString &var) const { if (measurements.contains(var)) { return measurements.value(var).translate(); } if (functions.contains(var)) { return functions.value(var).translate(); } if (postfixOperators.contains(var)) { return postfixOperators.value(var).translate(); } QString newVar = var; int bias = 0; if (VariablesToUser(newVar, 0, var, bias)) { return newVar; } return newVar; } //--------------------------------------------------------------------------------------------------------------------- QString VTranslateVars::VarFromUser(const QString &var) const { QString newVar = var; int bias = 0; if (MeasurementsFromUser(newVar, 0, var, bias)) { return newVar; } if (VariablesFromUser(newVar, 0, var, bias)) { return newVar; } if (PostfixOperatorsFromUser(newVar, 0, var, bias)) { return newVar; } if (FunctionsFromUser(newVar, 0, var, bias)) { return newVar; } return newVar; } //--------------------------------------------------------------------------------------------------------------------- QString VTranslateVars::MToUser(const QString &measurement) const { return measurements.value(measurement).translate(); } //--------------------------------------------------------------------------------------------------------------------- QString VTranslateVars::MFromUser(const QString &measurement) const { QMap::const_iterator i = measurements.constBegin(); while (i != measurements.constEnd()) { if (measurement == i.value().translate()) { return i.key(); } ++i; } return measurement; } //--------------------------------------------------------------------------------------------------------------------- QString VTranslateVars::MNumber(const QString &measurement) const { return numbers.value(measurement); } //--------------------------------------------------------------------------------------------------------------------- QString VTranslateVars::MFormula(const QString &measurement) const { return formulas.value(measurement); } //--------------------------------------------------------------------------------------------------------------------- QString VTranslateVars::GuiText(const QString &measurement) const { return guiTexts.value(measurement).translate(); } //--------------------------------------------------------------------------------------------------------------------- QString VTranslateVars::Description(const QString &measurement) const { return descriptions.value(measurement).translate(); } //--------------------------------------------------------------------------------------------------------------------- // cppcheck-suppress unusedFunction QString VTranslateVars::PostfixOperator(const QString &name) const { return postfixOperators.value(name).translate(); } //--------------------------------------------------------------------------------------------------------------------- QString VTranslateVars::STDescription(const QString &id) const { if (stDescriptions.contains(id)) { return stDescriptions.value(id).translate(); } else { qDebug()<<"Unknown id number. Got"< tokens = cal->GetTokens();// Tokens (variables, measurements) QMap numbers = cal->GetNumbers();// All numbers in expression for changing decimal separator delete cal; QList tKeys = tokens.keys();// Take all tokens positions QList tValues = tokens.values(); for (int i = 0; i < tKeys.size(); ++i) { int bias = 0; if (MeasurementsFromUser(newFormula, tKeys.at(i), tValues.at(i), bias)) { if (bias != 0) {// Translated token has different length than original. Position next tokens need to be corrected. CorrectionsPositions(tKeys.at(i), bias, tokens, numbers); tKeys = tokens.keys(); tValues = tokens.values(); } continue; } if (VariablesFromUser(newFormula, tKeys.at(i), tValues.at(i), bias)) { if (bias != 0) {// Translated token has different length than original. Position next tokens need to be corrected. CorrectionsPositions(tKeys.at(i), bias, tokens, numbers); tKeys = tokens.keys(); tValues = tokens.values(); } continue; } if (PostfixOperatorsFromUser(newFormula, tKeys.at(i), tValues.at(i), bias)) { if (bias != 0) {// Translated token has different length than original. Position next tokens need to be corrected. CorrectionsPositions(tKeys.at(i), bias, tokens, numbers); tKeys = tokens.keys(); tValues = tokens.values(); } continue; } if (FunctionsFromUser(newFormula, tKeys.at(i), tValues.at(i), bias)) { if (bias != 0) {// Translated token has different length than original. Position next tokens need to be corrected. CorrectionsPositions(tKeys.at(i), bias, tokens, numbers); tKeys = tokens.keys(); tValues = tokens.values(); } continue; } } QLocale loc = QLocale::system(); // User locale if (loc != QLocale(QLocale::C) && osSeparator) {// User want use Os separator QList nKeys = numbers.keys();// Positions for all numbers in expression QList nValues = numbers.values(); for (int i = 0; i < nKeys.size(); ++i) { loc = QLocale::system();// From system locale bool ok = false; const qreal d = loc.toDouble(nValues.at(i), &ok); if (ok == false) { qDebug()<<"Can't convert to double token"< tokens; QMap numbers; try { Calculator *cal = new Calculator(formula, false);// Eval formula tokens = cal->GetTokens();// Tokens (variables, measurements) numbers = cal->GetNumbers();// All numbers in expression for changing decimal separator delete cal; } catch (qmu::QmuParserError &e) { qDebug() << "\nMath parser error:\n" << "--------------------------------------\n" << "Message: " << e.GetMsg() << "\n" << "Expression: " << e.GetExpr() << "\n" << "--------------------------------------"; return newFormula; } QList tKeys = tokens.keys(); QList tValues = tokens.values(); for (int i = 0; i < tKeys.size(); ++i) { if (measurements.contains(tValues.at(i))) { newFormula.replace(tKeys.at(i), tValues.at(i).length(), measurements.value(tValues.at(i)).translate()); int bias = tValues.at(i).length() - measurements.value(tValues.at(i)).translate().length(); if (bias != 0) {// Translated token has different length than original. Position next tokens need to be corrected. CorrectionsPositions(tKeys.at(i), bias, tokens, numbers); tKeys = tokens.keys(); tValues = tokens.values(); } continue; } if (functions.contains(tValues.at(i))) { newFormula.replace(tKeys.at(i), tValues.at(i).length(), functions.value(tValues.at(i)).translate()); int bias = tValues.at(i).length() - functions.value(tValues.at(i)).translate().length(); if (bias != 0) {// Translated token has different length than original. Position next tokens need to be corrected. CorrectionsPositions(tKeys.at(i), bias, tokens, numbers); tKeys = tokens.keys(); tValues = tokens.values(); } continue; } if (postfixOperators.contains(tValues.at(i))) { newFormula.replace(tKeys.at(i), tValues.at(i).length(), postfixOperators.value(tValues.at(i)).translate()); int bias = tValues.at(i).length() - postfixOperators.value(tValues.at(i)).translate().length(); if (bias != 0) {// Translated token has different length than original. Position next tokens need to be corrected. CorrectionsPositions(tKeys.at(i), bias, tokens, numbers); tKeys = tokens.keys(); tValues = tokens.values(); } continue; } int bias = 0; if (VariablesToUser(newFormula, tKeys.at(i), tValues.at(i), bias)) { if (bias != 0) {// Translated token has different length than original. Position next tokens need to be corrected. CorrectionsPositions(tKeys.at(i), bias, tokens, numbers); tKeys = tokens.keys(); tValues = tokens.values(); } continue; } } QLocale loc = QLocale::system();// User locale if (loc != QLocale::C && osSeparator) {// User want use Os separator QList nKeys = numbers.keys();// Positions for all numbers in expression QList nValues = numbers.values(); for (int i = 0; i < nKeys.size(); ++i) { loc = QLocale(QLocale::C);// From pattern locale bool ok = false; const qreal d = loc.toDouble(nValues.at(i), &ok); if (ok == false) { qDebug()<<"Can't convert to double token"< Shoulder Tip to Wrist (bent)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Shoulder Tip to Wrist (bent)", "Full measurement description."); InitMeasurement(armShoulderTipToWristBent_M, m, g, d, "I01"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_shoulder_tip_to_elbow_bent", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Shoulder Tip to Elbow (bent)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Shoulder Tip to Elbow (bent)", "Full measurement description."); InitMeasurement(armShoulderTipToElbowBent_M, m, g, d, "I02"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_elbow_to_wrist_bent", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Elbow to Wrist (bent)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Elbow to Wrist (bent)", "Full measurement description."); InitMeasurement(armElbowToWristBent_M, m, g, d, "I03"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_elbow_circ_bent", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Elbow circumference (bent)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Elbow circumference (bent)", "Full measurement description."); InitMeasurement(armElbowCircBent_M, m, g, d, "I04"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_shoulder_tip_to_wrist", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Shoulder Tip to Wrist", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Shoulder Tip to Wrist", "Full measurement description."); InitMeasurement(armShoulderTipToWrist_M, m, g, d, "I05"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_shoulder_tip_to_elbow", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Shoulder Tip to Elbow", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Shoulder Tip to Elbow", "Full measurement description."); InitMeasurement(armShoulderTipToElbow_M, m, g, d, "I06"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_elbow_to_wrist", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Elbow to Wrist", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Elbow to Wrist", "Full measurement description."); InitMeasurement(armElbowToWrist_M, m, g, d, "I07"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_armpit_to_wrist", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Armpit to Wrist", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Armpit to Wrist", "Full measurement description."); InitMeasurement(armArmpitToWrist_M, m, g, d, "I08"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_armpit_to_elbow", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Armpit to Elbow", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Armpit to Elbow", "Full measurement description."); InitMeasurement(armArmpitToElbow_M, m, g, d, "I09"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_elbow_to_wrist_inside", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Elbow to Wrist (inside)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Elbow to Wrist (inside)", "Full measurement description."); InitMeasurement(armElbowToWristInside_M, m, g, d, "I10"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_upper_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Upper Arm circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Upper Arm circumference", "Full measurement description."); InitMeasurement(armUpperCirc_M, m, g, d, "I11"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_above_elbow_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Above Elbow circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Above Elbow circumference", "Full measurement description."); InitMeasurement(armAboveElbowCirc_M, m, g, d, "I12"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_elbow_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Elbow circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Elbow circumference", "Full measurement description."); InitMeasurement(armElbowCirc_M, m, g, d, "I13"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_lower_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Lower Arm circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Lower Arm circumference", "Full measurement description."); InitMeasurement(armLowerCirc_M, m, g, d, "I14"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_wrist_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Wrist circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Wrist circumference", "Full measurement description."); InitMeasurement(armWristCirc_M, m, g, d, "I15"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_shoulder_tip_to_armfold_line", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Shoulder Tip to Armfold line", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Shoulder Tip to Armfold line", "Full measurement description."); InitMeasurement(armShoulderTipToArmfoldLine_M, m, g, d, "I16"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "armscye_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Armscye circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Armscye circumference", "Full measurement description."); InitMeasurement(armscyeCirc_M, m, g, d, "I17"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "armscye_length", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Armscye length, Shoulder Tip to Armpit vertical distance", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Armscye length, Shoulder Tip to Armpit vertical distance", "Full measurement description."); InitMeasurement(armscyeLength_M, m, g, d, "I18"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "armscye_width", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Armscye width", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Armscye width", "Full measurement description."); InitMeasurement(armscyeWidth_M, m, g, d, "I19"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_neck_side_to_finger_tip", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Neck Side to Finger Tip", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Neck Side to Finger Tip", "Full measurement description."); InitMeasurement(armNeckSideToFingerTip_M, m, g, d, "I20", "(shoulder_length + arm_shoulder_tip_to_wrist + hand_length)"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_neck_side_to_wrist", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm - Neck Side to Wrist", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm - Neck Side to Wrist", "Full measurement description."); InitMeasurement(armNeckSideToWrist_M, m, g, d, "I21"); //================================================================================================================= } //--------------------------------------------------------------------------------------------------------------------- void VTranslateVars::InitGroupJ() { //Note. We can't use here function and variables because lupdate tool doesn't see string in variables and doesn't //mark such string to translation. QmuTranslation m; QmuTranslation g; QmuTranslation d; //================================================================================================================= m = QmuTranslation::translate("Measurements", "leg_crotch_to_floor", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Leg > Crotch to floor (Inseam)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Leg > Crotch to floor (Inseam)", "Full measurement description."); InitMeasurement(legCrotchToFloor_M, m, g, d, "J01"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "leg_waist_side_to_floor", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Leg > Waist Side to floor (Outseam)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Leg > Waist Side to floor (Outseam)", "Full measurement description."); InitMeasurement(legWaistSideToFloor_M, m, g, d, "J02"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "leg_waist_side_to_knee", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Leg > Waist Side to Knee", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Leg > Waist Side to Knee", "Full measurement description."); InitMeasurement(legWaistSideToKnee_M, m, g, d, "J03"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "leg_thigh_upper_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Leg > Thigh Upper circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Leg > Thigh Upper circumference", "Full measurement description."); InitMeasurement(legThighUpperCirc_M, m, g, d, "J04"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "leg_thigh_mid_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Leg > Thigh Middle circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Leg > Thigh Middle circumference", "Full measurement description."); InitMeasurement(legThighMidCirc_M, m, g, d, "J05"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "leg_knee_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Leg > Knee circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Leg > Knee circumference", "Full measurement description."); InitMeasurement(legKneeCirc_M, m, g, d, "J06"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "leg_knee_small_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Leg > Knee Small circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Leg > Knee Small circumference", "Full measurement description."); InitMeasurement(legKneeSmallCirc_M, m, g, d, "J07"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "leg_calf_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Leg > Calf circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Leg > Calf circumference", "Full measurement description."); InitMeasurement(legCalfCirc_M, m, g, d, "J08"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "leg_ankle_high_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Leg > Ankle High circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Leg > Ankle High circumference", "Full measurement description."); InitMeasurement(legAnkleHighCirc_M, m, g, d, "J09"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "leg_ankle_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Leg > Ankle circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Leg > Ankle circumference", "Full measurement description."); InitMeasurement(legAnkleCirc_M, m, g, d, "J10"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "leg_knee_circ_bent", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Leg > Knee circumference (bent)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Leg > Knee circumference (bent)", "Full measurement description."); InitMeasurement(legKneeCircBent_M, m, g, d, "J11"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "leg_ankle_diag_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Leg > Ankle diagonal circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Leg > Ankle diagonal circumference", "Full measurement description."); InitMeasurement(legAnkleDiagCirc_M, m, g, d, "J12"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "leg_crotch_to_ankle", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Leg > Crotch to ankle", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Leg > Crotch to ankle", "Full measurement description."); InitMeasurement(legCrotchToAnkle_M, m, g, d, "J13", "(leg_crotch_to_floor - height_ankle)"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "leg_waist_side_to_ankle", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Leg > Waist Side to Ankle", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Leg > Waist Side to Ankle", "Full measurement description."); InitMeasurement(legWaistSideToAnkle_M, m, g, d, "J14", "(leg_waist_side_to_floor - height_ankle)"); //================================================================================================================= } //--------------------------------------------------------------------------------------------------------------------- void VTranslateVars::InitGroupK() { //Note. We can't use here function and variables because lupdate tool doesn't see string in variables and doesn't //mark such string to translation. QmuTranslation m; QmuTranslation g; QmuTranslation d; //================================================================================================================= m = QmuTranslation::translate("Measurements", "crotch_length", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Crotch length", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Crotch length", "Full measurement description."); InitMeasurement(crotchLength_M, m, g, d, "K01"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "crotch_length_b", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Crotch length (back)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Crotch length (back)", "Full measurement description."); InitMeasurement(crotchLengthB_M, m, g, d, "K02"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "crotch_length_f", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Crotch length (front)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Crotch length (front)", "Full measurement description."); InitMeasurement(crotchLengthF_M, m, g, d, "K03", "(crotch_length - crotch_length_b)"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "rise_length_side", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Rise length (side)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Rise length (side)", "Full measurement description."); InitMeasurement(riseLengthSide_M, m, g, d, "K04"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "rise_length_diag", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Rise length (diagonal)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Rise length (diagonal)", "Full measurement description."); InitMeasurement(riseLengthDiag_M, m, g, d, "K05"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "rise_length_b", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Rise length (back)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Rise length (back)", "Full measurement description."); InitMeasurement(riseLengthB_M, m, g, d, "K06"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "rise_length_f", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Rise length (front)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Rise length (front)", "Full measurement description."); InitMeasurement(riseLengthF_M, m, g, d, "K07"); //================================================================================================================= } //--------------------------------------------------------------------------------------------------------------------- void VTranslateVars::InitGroupL() { //Note. We can't use here function and variables because lupdate tool doesn't see string in variables and doesn't //mark such string to translation. QmuTranslation m; QmuTranslation g; QmuTranslation d; //================================================================================================================= m = QmuTranslation::translate("Measurements", "hand_palm_length", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Hand > Palm length", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Hand > Palm length", "Full measurement description."); InitMeasurement(handPalmLength_M, m, g, d, "L01"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "hand_length", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Hand length", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Hand length", "Full measurement description."); InitMeasurement(handLength_M, m, g, d, "L02"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "hand_palm_width", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Hand > Palm width", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Hand > Palm width", "Full measurement description."); InitMeasurement(handPalmWidth_M, m, g, d, "L03"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "hand_palm_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Hand > Palm circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Hand > Palm circumference", "Full measurement description."); InitMeasurement(handPalmCirc_M, m, g, d, "L04"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "hand_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Hand circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Hand circumference", "Full measurement description."); InitMeasurement(handCirc_M, m, g, d, "L05"); //================================================================================================================= } //--------------------------------------------------------------------------------------------------------------------- void VTranslateVars::InitGroupM() { //Note. We can't use here function and variables because lupdate tool doesn't see string in variables and doesn't //mark such string to translation. QmuTranslation m; QmuTranslation g; QmuTranslation d; //================================================================================================================= m = QmuTranslation::translate("Measurements", "foot_width", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Foot width", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Foot width", "Full measurement description."); InitMeasurement(footWidth_M, m, g, d, "M01"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "foot_length", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Foot length", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Foot length", "Full measurement description."); InitMeasurement(footLength_M, m, g, d, "M02"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "foot_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Foot circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Foot circumference", "Full measurement description."); InitMeasurement(footCirc_M, m, g, d, "M03"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "foot_instep_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Foot Instep circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Foot Instep circumference", "Full measurement description."); InitMeasurement(footInstepCirc_M, m, g, d, "M04"); //================================================================================================================= } //--------------------------------------------------------------------------------------------------------------------- void VTranslateVars::InitGroupN() { //Note. We can't use here function and variables because lupdate tool doesn't see string in variables and doesn't //mark such string to translation. QmuTranslation m; QmuTranslation g; QmuTranslation d; //================================================================================================================= m = QmuTranslation::translate("Measurements", "head_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Head circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Head circumference", "Full measurement description."); InitMeasurement(headCirc_M, m, g, d, "N01"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "head_length", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Head length", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Head length", "Full measurement description."); InitMeasurement(headLength_M, m, g, d, "N02"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "head_depth", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Head depth", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Head depth", "Full measurement description."); InitMeasurement(headDepth_M, m, g, d, "N03"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "head_width", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Head width", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Head width", "Full measurement description."); InitMeasurement(headWidth_M, m, g, d, "N04"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "head_crown_to_neck_back", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Head Crown to Neck Back, vertical distance", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Head Crown to Neck Back, vertical distance", "Full measurement description."); InitMeasurement(headCrownToNeckBack_M, m, g, d, "N05", "(height - height_neck_back)"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "head_chin_to_neck_back", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Head > Chin to Neck Back, vertical distance", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Head > Chin to Neck Back, vertical distance", "Full measurement description."); InitMeasurement(headChinToNeckBack_M, m, g, d, "N06", "(height - height_neck_back - head_length)"); //================================================================================================================= } //--------------------------------------------------------------------------------------------------------------------- void VTranslateVars::InitGroupO() { //Note. We can't use here function and variables because lupdate tool doesn't see string in variables and doesn't //mark such string to translation. QmuTranslation m; QmuTranslation g; QmuTranslation d; //================================================================================================================= m = QmuTranslation::translate("Measurements", "neck_back_to_waist_front", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Neck Back to Waist Front", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Neck Back to Waist Front", "Full measurement description."); InitMeasurement(neckBackToWaistFront_M, m, g, d, "O01"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "waist_to_waist_halter", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Waist to Waist Halter, around Neck Back", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Waist to Waist Halter, around Neck Back", "Full measurement description."); InitMeasurement(waistToWaistHalter_M, m, g, d, "O02"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "waist_natural_circ", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Natural Waist circumference", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Natural Waist circumference", "Full measurement description."); InitMeasurement(waistNaturalCirc_M, m, g, d, "O03"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "waist_natural_arc_f", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Natural Waist arc (front)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Natural Waist arc (front)", "Full measurement description."); InitMeasurement(waistNaturalArcF_M, m, g, d, "O04"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "waist_natural_arc_b", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Natural Waist arc (back)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Natural Waist arc (back)", "Full measurement description."); InitMeasurement(waistNaturalArcB_M, m, g, d, "O05"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "waist_to_natural_waist_f", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Waist to Natural Waist (front)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Waist to Natural Waist (front)", "Full measurement description."); InitMeasurement(waistToNaturalWaistF_M, m, g, d, "O06"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "waist_to_natural_waist_b", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Waist to Natural Waist (back)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Waist to Natural Waist (back)", "Full measurement description."); InitMeasurement(waistToNaturalWaistB_M, m, g, d, "O07"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_neck_back_to_elbow_bent", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Neck Back to Elbow (bent)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Neck Back to Elbow (bent)", "Full measurement description."); InitMeasurement(armNeckBackToElbowBent_M, m, g, d, "O08"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_neck_back_to_wrist_bent", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Neck Back to Wrist (bent)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Neck Back to Wrist (bent)", "Full measurement description."); InitMeasurement(armNeckBackToWristBent_M, m, g, d, "O09"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_neck_side_to_elbow_bent", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Neck Side to Elbow (bent)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Neck Side to Elbow (bent)", "Full measurement description."); InitMeasurement(armNeckSideToElbowBent_M, m, g, d, "O10"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_neck_side_to_wrist_bent", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Neck Side to Wrist (bent)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Neck Side to Wrist (bent)", "Full measurement description."); InitMeasurement(armNeckSideToWristBent_M, m, g, d, "O11"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_across_back_center_to_elbow_bent", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Across Back Center to Elbow (bent)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Across Back Center to Elbow (bent)", "Full measurement description."); InitMeasurement(armAcrossBackCenterToElbowBent_M, m, g, d, "O12"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_across_back_center_to_wrist_bent", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Across Back Center to Wrist (bent)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Across Back Center to Wrist (bent)", "Full measurement description."); InitMeasurement(armAcrossBackCenterToWristBent_M, m, g, d, "O13"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "arm_armscye_back_center_to_wrist_bent", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Arm > Armscye Back Center to Wrist (bent)", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Arm > Armscye Back Center to Wrist (bent)", "Full measurement description."); InitMeasurement(armArmscyeBackCenterToWristBent_M, m, g, d, "O14"); //================================================================================================================= } //--------------------------------------------------------------------------------------------------------------------- void VTranslateVars::InitGroupP() { //Note. We can't use here function and variables because lupdate tool doesn't see string in variables and doesn't //mark such string to translation. QmuTranslation m; QmuTranslation g; QmuTranslation d; //================================================================================================================= m = QmuTranslation::translate("Measurements", "armfold_to_armfold_bust", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Armfold to Armfold curved through Bust Front", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Armfold to Armfold curved through Bust Front", "Full measurement description."); InitMeasurement(armfoldToArmfoldBust_M, m, g, d, "P01"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "armfold_to_bust_front", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Armfold to Bust Front", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Armfold to Bust Front", "Full measurement description."); InitMeasurement(armfoldToBustFront_M, m, g, d, "P02"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "neck_back_to_bust_front", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Neck Back to Bust Front", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Neck Back to Bust Front", "Full measurement description."); InitMeasurement(neckBackToBustFront_M, m, g, d, "P03"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "neck_back_to_armfold_front", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Neck Back to Armfold Front", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Neck Back to Armfold Front", "Full measurement description."); InitMeasurement(neckBackToArmfoldFront_M, m, g, d, "P04"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "neck_back_to_armfold_front_to_waist_side", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Neck Back to Armfold Front to Waist Side", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Neck Back to Armfold Front to Waist Side", "Full measurement description."); InitMeasurement(neckBackToArmfoldFrontToWaistSide_M, m, g, d, "P05"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "highbust_back_over_shoulder_to_armfold_front", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Highbust Back over Shoulder to Armfold Front", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Highbust Back over Shoulder to Armfold Front", "Full measurement description."); InitMeasurement(highbustBackOverShoulderToArmfoldFront_M, m, g, d, "P06"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "highbust_back_over_shoulder_to_waist_front", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Highbust Back over Shoulder to Waist Front", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Highbust Back over Shoulder to Waist Front", "Full measurement description."); InitMeasurement(highbustBackOverShoulderToWaistFront_M, m, g, d, "P07"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "neck_back_to_armfold_front_to_neck_back", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Neck Back to Armfold Front to Neck Back", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Neck Back to Armfold Front to Neck Back", "Full measurement description."); InitMeasurement(neckBackToArmfoldFrontToNeckBack_M, m, g, d, "P08"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "across_back_center_to_armfold_front_to_across_back_center", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Across Back Center to Armfold Front to Across Back Center", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Across Back Center to Armfold Front to Across Back Center", "Full measurement description."); InitMeasurement(acrossBackCenterToArmfoldFrontToAcrossBackCenter_M, m, g, d, "P09"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "neck_back_to_armfold_front_to_highbust_back", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Neck Back to Armfold Front to Highbust Back", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Neck Back to Armfold Front to Highbust Back", "Full measurement description."); InitMeasurement(neckBackToArmfoldFrontToHighbustBack_M, m, g, d, "P10"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "highbust_b_over_shoulder_to_highbust_f", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Highbust Back over Shoulder to Highbust Front", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Highbust Back over Shoulder to Highbust Front", "Full measurement description."); InitMeasurement(highbustBOverShoulderToHighbustF_M, m, g, d, "P11", "(mid_shoulder_to_highbust_f + mid_shoulder_to_highbust_b)"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "armscye_arc", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Armscye Arc through Shoulder Tip", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Armscye Arc through Shoulder Tip", "Full measurement description."); InitMeasurement(armscyeArc_M, m, g, d, "P12"); //================================================================================================================= } //--------------------------------------------------------------------------------------------------------------------- void VTranslateVars::InitGroupQ() { //Note. We can't use here function and variables because lupdate tool doesn't see string in variables and doesn't //mark such string to translation. QmuTranslation m; QmuTranslation g; QmuTranslation d; //================================================================================================================= m = QmuTranslation::translate("Measurements", "dart_width_shoulder", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Dart Width > Shoulder", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Dart Width > Shoulder", "Full measurement description."); InitMeasurement(dartWidthShoulder_M, m, g, d, "Q01"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "dart_width_bust", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Dart Width > Bust", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Dart Width > Bust", "Full measurement description."); InitMeasurement(dartWidthBust_M, m, g, d, "Q02"); //================================================================================================================= m = QmuTranslation::translate("Measurements", "dart_width_waist", "Name in a formula. Don't use math symbols and space in name!!!!"); g = QmuTranslation::translate("Measurements", "Dart Width > Waist", "Full measurement name."); d = QmuTranslation::translate("Measurements", "Dart Width > Waist", "Full measurement description."); InitMeasurement(dartWidthWaist_M, m, g, d, "Q03"); //================================================================================================================= }