English language is internal and doesn't require separate *.qm file.

This commit is contained in:
Roman Telezhynskyi 2024-02-27 18:12:16 +02:00
parent f32da16dd8
commit eb22f19fea
9 changed files with 12 additions and 27664 deletions

View File

@ -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",

View File

@ -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}" &

View File

@ -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}" &

View File

@ -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

View File

@ -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) \

View File

@ -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.
{ // Since Qt 5.12 country names have spaces
// English language is internal and doens't have own *.qm file. QIcon const ico(u"://flags/%1.png"_s.arg(TerritoryToString(QLocale::UnitedStates)));
// Since Qt 5.12 country names have spaces const QString en_US = QStringLiteral("en_US");
QIcon const ico(u"://flags/%1.png"_s.arg(TerritoryToString(QLocale::UnitedStates)) QString const lang = QLocale(en_US).nativeLanguageName();
combobox->addItem(ico, lang, en_US);
);
QString const lang = QLocale(en_US).nativeLanguageName();
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"};
} }
//--------------------------------------------------------------------------------------------------------------------- //---------------------------------------------------------------------------------------------------------------------

View File

@ -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()
{ {

View File

@ -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();