English language is internal and doesn't require separate *.qm file.
This commit is contained in:
parent
f32da16dd8
commit
eb22f19fea
|
@ -10,7 +10,6 @@ Module {
|
||||||
"id_ID",
|
"id_ID",
|
||||||
"es_ES",
|
"es_ES",
|
||||||
"fi_FI",
|
"fi_FI",
|
||||||
"en_US",
|
|
||||||
"ro_RO",
|
"ro_RO",
|
||||||
"zh_CN",
|
"zh_CN",
|
||||||
"pt_BR",
|
"pt_BR",
|
||||||
|
|
|
@ -10,7 +10,7 @@ start=$(date +%s)
|
||||||
# Empty means unstable branch
|
# Empty means unstable branch
|
||||||
VALENTINA_BRANCH='' # for example 05x
|
VALENTINA_BRANCH='' # for example 05x
|
||||||
|
|
||||||
LANGUAGES="uk,de_DE,cs,he_IL,fr_FR,it_IT,nl,id,es,fi,en_US,ro_RO,zh_CN,pt_BR,el_GR,pl_PL"
|
LANGUAGES="uk,de_DE,cs,he_IL,fr_FR,it_IT,nl,id,es,fi,ro_RO,zh_CN,pt_BR,el_GR,pl_PL"
|
||||||
|
|
||||||
# Certant languages like he_IL and zh_CN are not supported by math parser
|
# Certant languages like he_IL and zh_CN are not supported by math parser
|
||||||
tx pull -r valentina-project.valentina_${VALENTINA_BRANCH}ts --mode=default -f --skip -l "${LANGUAGES}" &
|
tx pull -r valentina-project.valentina_${VALENTINA_BRANCH}ts --mode=default -f --skip -l "${LANGUAGES}" &
|
||||||
|
|
|
@ -9,7 +9,7 @@ start=$(date +%s)
|
||||||
# Empty means unstable branch
|
# Empty means unstable branch
|
||||||
VALENTINA_BRANCH='' # for example 05x
|
VALENTINA_BRANCH='' # for example 05x
|
||||||
|
|
||||||
LANGUAGES="uk,de_DE,cs,he_IL,fr_FR,it_IT,nl,id,es,fi,en_US,ro_RO,zh_CN,pt_BR,el_GR,pl_PL"
|
LANGUAGES="uk,de_DE,cs,he_IL,fr_FR,it_IT,nl,id,es,fi,ro_RO,zh_CN,pt_BR,el_GR,pl_PL"
|
||||||
|
|
||||||
# Certant languages like he_IL and zh_CN are not supported by math parser
|
# Certant languages like he_IL and zh_CN are not supported by math parser
|
||||||
tx pull -r valentina-project.valentina_${VALENTINA_BRANCH}ts --mode=default -f --skip -l "${LANGUAGES}" &
|
tx pull -r valentina-project.valentina_${VALENTINA_BRANCH}ts --mode=default -f --skip -l "${LANGUAGES}" &
|
||||||
|
|
|
@ -60,7 +60,6 @@ LANGUAGES += \
|
||||||
id_ID \
|
id_ID \
|
||||||
es_ES \
|
es_ES \
|
||||||
fi_FI \
|
fi_FI \
|
||||||
en_US \
|
|
||||||
ro_RO \
|
ro_RO \
|
||||||
zh_CN \
|
zh_CN \
|
||||||
pt_BR \
|
pt_BR \
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -17,7 +17,6 @@ isEmpty(LOCALES){
|
||||||
id_ID \
|
id_ID \
|
||||||
es_ES \
|
es_ES \
|
||||||
fi_FI \
|
fi_FI \
|
||||||
en_US \
|
|
||||||
ro_RO \
|
ro_RO \
|
||||||
zh_CN \
|
zh_CN \
|
||||||
pt_BR \
|
pt_BR \
|
||||||
|
@ -168,17 +167,6 @@ macx{
|
||||||
QMAKE_BUNDLE_DATA += TRANSLATION_fi_FI
|
QMAKE_BUNDLE_DATA += TRANSLATION_fi_FI
|
||||||
}
|
}
|
||||||
|
|
||||||
exists($${TRANSLATIONS_PATH}/valentina_en_US.qm){
|
|
||||||
TRANSLATION_en_US.files += \
|
|
||||||
$$files($${TRANSLATIONS_PATH}/*_en_US.qm) \
|
|
||||||
$$[QT_INSTALL_TRANSLATIONS]/qtbase_en.qm \
|
|
||||||
$$[QT_INSTALL_TRANSLATIONS]/qt_en.qm \
|
|
||||||
$$[QT_INSTALL_TRANSLATIONS]/qtxmlpatterns_en.qm \
|
|
||||||
$${TRANSLATIONS_PATH}/Localizable.strings
|
|
||||||
TRANSLATION_en_US.path = "$$RESOURCES_DIR/translations/en_US.lproj"
|
|
||||||
QMAKE_BUNDLE_DATA += TRANSLATION_en_US
|
|
||||||
}
|
|
||||||
|
|
||||||
exists($${TRANSLATIONS_PATH}/valentina_ro_RO.qm){
|
exists($${TRANSLATIONS_PATH}/valentina_ro_RO.qm){
|
||||||
TRANSLATION_ro_RO.files += \
|
TRANSLATION_ro_RO.files += \
|
||||||
$$files($${TRANSLATIONS_PATH}/*_ro_RO.qm) \
|
$$files($${TRANSLATIONS_PATH}/*_ro_RO.qm) \
|
||||||
|
|
|
@ -91,8 +91,7 @@ void InitLanguageList(QComboBox *combobox)
|
||||||
combobox->clear();
|
combobox->clear();
|
||||||
|
|
||||||
const QStringList fileNames = LocalList();
|
const QStringList fileNames = LocalList();
|
||||||
bool englishUS = false;
|
const QStringList supportedLocales = SupportedLocales();
|
||||||
const QString en_US = QStringLiteral("en_US");
|
|
||||||
|
|
||||||
for (auto locale : fileNames)
|
for (auto locale : fileNames)
|
||||||
{
|
{
|
||||||
|
@ -100,16 +99,11 @@ void InitLanguageList(QComboBox *combobox)
|
||||||
locale.truncate(locale.lastIndexOf('.'_L1)); // "valentina_de_De"
|
locale.truncate(locale.lastIndexOf('.'_L1)); // "valentina_de_De"
|
||||||
locale.remove(0, locale.indexOf('_'_L1) + 1); // "de_De"
|
locale.remove(0, locale.indexOf('_'_L1) + 1); // "de_De"
|
||||||
|
|
||||||
if (locale.startsWith("ru"_L1))
|
if (locale.startsWith("ru"_L1) || !supportedLocales.contains(locale))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (not englishUS)
|
|
||||||
{
|
|
||||||
englishUS = (en_US == locale);
|
|
||||||
}
|
|
||||||
|
|
||||||
QLocale const loc = QLocale(locale);
|
QLocale const loc = QLocale(locale);
|
||||||
QString const lang = loc.nativeLanguageName();
|
QString const lang = loc.nativeLanguageName();
|
||||||
QString country = TerritoryToString(loc);
|
QString country = TerritoryToString(loc);
|
||||||
|
@ -122,16 +116,12 @@ void InitLanguageList(QComboBox *combobox)
|
||||||
combobox->addItem(ico, lang, locale);
|
combobox->addItem(ico, lang, locale);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (combobox->count() == 0 || not englishUS)
|
// English language is internal and doesn't have own *.qm file.
|
||||||
{
|
|
||||||
// English language is internal and doens't have own *.qm file.
|
|
||||||
// Since Qt 5.12 country names have spaces
|
// Since Qt 5.12 country names have spaces
|
||||||
QIcon const ico(u"://flags/%1.png"_s.arg(TerritoryToString(QLocale::UnitedStates))
|
QIcon const ico(u"://flags/%1.png"_s.arg(TerritoryToString(QLocale::UnitedStates)));
|
||||||
|
const QString en_US = QStringLiteral("en_US");
|
||||||
);
|
|
||||||
QString const lang = QLocale(en_US).nativeLanguageName();
|
QString const lang = QLocale(en_US).nativeLanguageName();
|
||||||
combobox->addItem(ico, lang, en_US);
|
combobox->addItem(ico, lang, en_US);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
|
@ -166,7 +156,7 @@ void SetItemOverrideCursor(QGraphicsItem *item, const QString &pixmapPath, int h
|
||||||
auto SupportedLocales() -> QStringList
|
auto SupportedLocales() -> QStringList
|
||||||
{
|
{
|
||||||
return QStringList{"uk_UA", "de_DE", "cs_CZ", "he_IL", "fr_FR", "it_IT", "nl_NL", "id_ID",
|
return QStringList{"uk_UA", "de_DE", "cs_CZ", "he_IL", "fr_FR", "it_IT", "nl_NL", "id_ID",
|
||||||
"es_ES", "fi_FI", "en_US", "ro_RO", "zh_CN", "pt_BR", "el_GR", "pl_PL"};
|
"es_ES", "fi_FI", "ro_RO", "zh_CN", "pt_BR", "el_GR", "pl_PL"};
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -45,86 +45,6 @@ TST_TSTranslation::TST_TSTranslation(QObject *parent)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void TST_TSTranslation::CheckEnglishLocalization_data()
|
|
||||||
{
|
|
||||||
QTest::addColumn<QString>("source");
|
|
||||||
QTest::addColumn<QString>("translation");
|
|
||||||
|
|
||||||
const QString fileName = QStringLiteral("valentina_en_US.ts");
|
|
||||||
const QDomNodeList messages = LoadTSFile(fileName);
|
|
||||||
if (messages.isEmpty())
|
|
||||||
{
|
|
||||||
QFAIL("Can't begin test.");
|
|
||||||
}
|
|
||||||
|
|
||||||
for (qint32 i = 0, num = messages.size(); i < num; ++i)
|
|
||||||
{
|
|
||||||
const QDomElement message = messages.at(i).toElement();
|
|
||||||
if (not message.isNull())
|
|
||||||
{
|
|
||||||
const QString source = message.firstChildElement(TagSource).text();
|
|
||||||
if (source.isEmpty())
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
const QDomElement translationTag = message.firstChildElement(TagTranslation);
|
|
||||||
if (translationTag.hasAttribute(AttrType))
|
|
||||||
{
|
|
||||||
const QString attrVal = translationTag.attribute(AttrType);
|
|
||||||
if (attrVal == AttrValVanished || attrVal == AttrValUnfinished || attrVal == AttrValObsolete)
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
auto PluralForm = [translationTag]()
|
|
||||||
{
|
|
||||||
QDomNodeList const children = translationTag.childNodes();
|
|
||||||
for (int i = 0; i < children.size(); ++i)
|
|
||||||
{
|
|
||||||
QDomNode const child = children.item(i);
|
|
||||||
if (child.isElement())
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
};
|
|
||||||
|
|
||||||
if (PluralForm())
|
|
||||||
{
|
|
||||||
continue; // do not check plural forms
|
|
||||||
}
|
|
||||||
|
|
||||||
const QString translation = translationTag.text();
|
|
||||||
if (translation.isEmpty())
|
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
const QString caseName =
|
|
||||||
QStringLiteral("File '%1'. Check modification source message '%2'.").arg(fileName, source);
|
|
||||||
QTest::newRow(qUtf8Printable(caseName)) << source << translation;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const QString caseName = QStringLiteral("Message %1 is null.").arg(i);
|
|
||||||
QFAIL(qUtf8Printable(caseName));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
|
||||||
void TST_TSTranslation::CheckEnglishLocalization()
|
|
||||||
{
|
|
||||||
QFETCH(QString, source);
|
|
||||||
QFETCH(QString, translation);
|
|
||||||
|
|
||||||
QCOMPARE(source, translation);
|
|
||||||
}
|
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void TST_TSTranslation::CheckEmptyToolButton_data()
|
void TST_TSTranslation::CheckEmptyToolButton_data()
|
||||||
{
|
{
|
||||||
|
|
|
@ -34,12 +34,11 @@
|
||||||
class TST_TSTranslation : public TST_AbstractTranslation
|
class TST_TSTranslation : public TST_AbstractTranslation
|
||||||
{
|
{
|
||||||
Q_OBJECT // NOLINT
|
Q_OBJECT // NOLINT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit TST_TSTranslation(QObject *parent = nullptr);
|
explicit TST_TSTranslation(QObject *parent = nullptr);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void CheckEnglishLocalization_data();
|
|
||||||
void CheckEnglishLocalization();
|
|
||||||
void CheckEmptyToolButton_data();
|
void CheckEmptyToolButton_data();
|
||||||
void CheckEmptyToolButton();
|
void CheckEmptyToolButton();
|
||||||
void CheckEllipsis_data();
|
void CheckEllipsis_data();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user