Add I18N support to qmltestrunner
authorCharles Yin <charles.yin@nokia.com>
Thu, 27 Oct 2011 06:55:43 +0000 (16:55 +1000)
committerQt by Nokia <qt-info@nokia.com>
Fri, 28 Oct 2011 20:31:56 +0000 (22:31 +0200)
Add a new command line option "-translation file" to handle translation
files to qmltestrunner.

Task-number:QTBUG-22390
Change-Id: I351ed41734c79a51e00aeef551af642482bf36f2
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Reviewed-by: Yunqiao Yin <charles.yin@nokia.com>
src/qmltest/quicktest.cpp

index 601f5dc..fb21bd4 100644 (file)
@@ -65,6 +65,7 @@
 #include <QtGui/qtextdocument.h>
 #include <stdio.h>
 #include <QtGui/QGuiApplication>
+#include <QtCore/QTranslator>
 QT_BEGIN_NAMESPACE
 
 
@@ -115,8 +116,10 @@ int quick_test_main(int argc, char **argv, const char *name, quick_test_viewport
     //      -import dir         Specify an import directory.
     //      -input dir          Specify the input directory for test cases.
     //      -qtquick1           Run with QtQuick 1 rather than QtQuick 2.
+    //      -translation file   Specify the translation file.
     QStringList imports;
     QString testPath;
+    QString translationFile;
     bool qtQuick2 = true;
     int outargc = 1;
     int index = 1;
@@ -132,6 +135,9 @@ int quick_test_main(int argc, char **argv, const char *name, quick_test_viewport
         } else if (strcmp(argv[index], "-qtquick1") == 0) {
             qtQuick2 = false;
             ++index;
+        } else if (strcmp(argv[index], "-translation") == 0 && (index + 1) < argc) {
+            translationFile = stripQuotes(QString::fromLocal8Bit(argv[index + 1]));
+            index += 2;
         } else if (outargc != index) {
             argv[outargc++] = argv[index++];
         } else {
@@ -146,6 +152,15 @@ int quick_test_main(int argc, char **argv, const char *name, quick_test_viewport
     QuickTestResult::parseArgs(argc, argv);
     QuickTestResult::setProgramName(name);
 
+    QTranslator translator;
+    if (!translationFile.isEmpty()) {
+        if (translator.load(translationFile)) {
+            app->installTranslator(&translator);
+        } else {
+            qWarning() << "Could not load the translation file" << translationFile;
+        }
+    }
+
     // Determine where to look for the test data.
     if (testPath.isEmpty() && sourceDir)
         testPath = QString::fromLocal8Bit(sourceDir);