diff options
Diffstat (limited to 'tests/auto/corelib/kernel')
-rw-r--r-- | tests/auto/corelib/kernel/qtranslator/dependencies_la.qm | bin | 0 -> 166 bytes | |||
-rw-r--r-- | tests/auto/corelib/kernel/qtranslator/dependencies_la.ts | 14 | ||||
-rw-r--r-- | tests/auto/corelib/kernel/qtranslator/tst_qtranslator.cpp | 33 |
3 files changed, 47 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qtranslator/dependencies_la.qm b/tests/auto/corelib/kernel/qtranslator/dependencies_la.qm Binary files differnew file mode 100644 index 0000000000..c7161f348d --- /dev/null +++ b/tests/auto/corelib/kernel/qtranslator/dependencies_la.qm diff --git a/tests/auto/corelib/kernel/qtranslator/dependencies_la.ts b/tests/auto/corelib/kernel/qtranslator/dependencies_la.ts new file mode 100644 index 0000000000..7c298a3f1d --- /dev/null +++ b/tests/auto/corelib/kernel/qtranslator/dependencies_la.ts @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8"?> +<!DOCTYPE TS> +<TS version="2.0" language="de"> + <dependencies> + <dependency catalog="hellotr_la"/> + </dependencies> + <context> + <name>QPushButton</name> + <message> + <source>It's a small world</source> + <translation>Es ist eine kleine Welt</translation> + </message> + </context> +</TS> diff --git a/tests/auto/corelib/kernel/qtranslator/tst_qtranslator.cpp b/tests/auto/corelib/kernel/qtranslator/tst_qtranslator.cpp index 4689fc432a..7ddfe7064c 100644 --- a/tests/auto/corelib/kernel/qtranslator/tst_qtranslator.cpp +++ b/tests/auto/corelib/kernel/qtranslator/tst_qtranslator.cpp @@ -62,6 +62,7 @@ private slots: void translate_qm_file_generated_with_msgfmt(); void loadFromResource(); void loadDirectory(); + void dependencies(); private: int languageChangeEventCounter; @@ -241,5 +242,37 @@ void tst_QTranslator::loadDirectory() QVERIFY(tor.isEmpty()); } +void tst_QTranslator::dependencies() +{ + { + // load + QTranslator tor; + tor.load("dependencies_la"); + QVERIFY(!tor.isEmpty()); + QCOMPARE(tor.translate("QPushButton", "Hello world!"), QString::fromLatin1("Hallo Welt!")); + + // plural + QCoreApplication::installTranslator(&tor); + QCoreApplication::Encoding e = QCoreApplication::UnicodeUTF8; + QCOMPARE(QCoreApplication::translate("QPushButton", "Hello %n world(s)!", 0, e, 0), QString::fromLatin1("Hallo 0 Welten!")); + QCOMPARE(QCoreApplication::translate("QPushButton", "Hello %n world(s)!", 0, e, 1), QString::fromLatin1("Hallo 1 Welt!")); + QCOMPARE(QCoreApplication::translate("QPushButton", "Hello %n world(s)!", 0, e, 2), QString::fromLatin1("Hallo 2 Welten!")); + + // pick up translation from the file with dependencies + QCOMPARE(tor.translate("QPushButton", "It's a small world"), QString::fromLatin1("Es ist eine kleine Welt")); + } + + { + QTranslator tor( 0 ); + QFile file("dependencies_la.qm"); + file.open(QFile::ReadOnly); + QByteArray data = file.readAll(); + tor.load((const uchar *)data.constData(), data.length()); + QVERIFY(!tor.isEmpty()); + QCOMPARE(tor.translate("QPushButton", "Hello world!"), QString::fromLatin1("Hallo Welt!")); + } +} + + QTEST_MAIN(tst_QTranslator) #include "tst_qtranslator.moc" |