diff options
Diffstat (limited to 'tests/auto/qml/qqmlapplicationengine')
-rw-r--r-- | tests/auto/qml/qqmlapplicationengine/data/i18n/qml_de_CH.qm | bin | 0 -> 101 bytes | |||
-rw-r--r-- | tests/auto/qml/qqmlapplicationengine/data/i18n/qml_de_CH.ts | 11 | ||||
-rw-r--r-- | tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp | 23 |
3 files changed, 34 insertions, 0 deletions
diff --git a/tests/auto/qml/qqmlapplicationengine/data/i18n/qml_de_CH.qm b/tests/auto/qml/qqmlapplicationengine/data/i18n/qml_de_CH.qm Binary files differnew file mode 100644 index 0000000000..926d74f905 --- /dev/null +++ b/tests/auto/qml/qqmlapplicationengine/data/i18n/qml_de_CH.qm diff --git a/tests/auto/qml/qqmlapplicationengine/data/i18n/qml_de_CH.ts b/tests/auto/qml/qqmlapplicationengine/data/i18n/qml_de_CH.ts new file mode 100644 index 0000000000..2105cfb2cf --- /dev/null +++ b/tests/auto/qml/qqmlapplicationengine/data/i18n/qml_de_CH.ts @@ -0,0 +1,11 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.1" language="de_CH" sourcelanguage="en"> +<context> + <name>loadTranslation</name> + <message> + <source>translate it</source> + <translation>Grüezi</translation> + </message> +</context> +</TS> diff --git a/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp b/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp index 5e855efe1a..b019ff4535 100644 --- a/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp +++ b/tests/auto/qml/qqmlapplicationengine/tst_qqmlapplicationengine.cpp @@ -53,6 +53,7 @@ private slots: void removeObjectsWhenDestroyed(); void loadTranslation_data(); void loadTranslation(); + void translationChange(); void setInitialProperties(); void failureToLoadTriggersWarningSignal(); @@ -278,6 +279,28 @@ void tst_qqmlapplicationengine::loadTranslation() QCOMPARE(rootObject->property("translation").toString(), translation); } +void tst_qqmlapplicationengine::translationChange() +{ + if (QLocale().language() == QLocale::SwissGerman) { + QSKIP("Skipping this when running under the Swiss locale as we would always load translation."); + } + + QQmlApplicationEngine engine(testFileUrl("loadTranslation.qml")); + + QCOMPARE(engine.uiLanguage(), QLocale().bcp47Name()); + + QObject *rootObject = engine.rootObjects().first(); + QVERIFY(rootObject); + + QCOMPARE(rootObject->property("translation").toString(), "translated"); + + engine.setUiLanguage("de_CH"); + QCOMPARE(rootObject->property("translation").toString(), QString::fromUtf8("Gr\u00FCezi")); + + engine.setUiLanguage(QString()); + QCOMPARE(rootObject->property("translation").toString(), "translate it"); +} + void tst_qqmlapplicationengine::setInitialProperties() { QQmlApplicationEngine test {}; |