summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/kernel/qtranslator/tst_qtranslator.cpp
diff options
context:
space:
mode:
authorJan-Arve Saether <jan-arve.saether@nokia.com>2012-07-02 15:11:38 +0200
committerQt by Nokia <qt-info@nokia.com>2012-07-12 18:30:35 +0200
commitf235ca4079043e6d5e37a204e52e9e482dc4db2c (patch)
tree6f53a46a3329e0bc5c5fdc9046f434f09127fb3c /tests/auto/corelib/kernel/qtranslator/tst_qtranslator.cpp
parentf94d0ea1dca36d5a93c83564cb873537edf6e2c7 (diff)
Enable modularization of translation files.
This is accomplished by introducing dependencies to catalogs. This requires one API change: QTranslator::load(const uchar *, int); changes to QTranslator::load(const uchar*, int len, const QString &directory = QString()); Since now, even the load from memory might need a directory if the memory block contains a qm file with dependencies. Change-Id: I781f333d07f53bb431d0a7b5fa1abe282dc4d338 Task-number: QTBUG-26138 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Diffstat (limited to 'tests/auto/corelib/kernel/qtranslator/tst_qtranslator.cpp')
-rw-r--r--tests/auto/corelib/kernel/qtranslator/tst_qtranslator.cpp33
1 files changed, 33 insertions, 0 deletions
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"