[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[vidalia-svn] r2998: Try to load a translation for the current language from Qt's (vidalia/trunk/src/vidalia)
Author: edmanm
Date: 2008-08-20 01:27:11 -0400 (Wed, 20 Aug 2008)
New Revision: 2998
Modified:
vidalia/trunk/src/vidalia/languagesupport.cpp
Log:
Try to load a translation for the current language from Qt's translations
directory, so we can get Qt's internal widgets (e.g. QDialogButtonBox)
translated.
Modified: vidalia/trunk/src/vidalia/languagesupport.cpp
===================================================================
--- vidalia/trunk/src/vidalia/languagesupport.cpp 2008-08-19 04:42:55 UTC (rev 2997)
+++ vidalia/trunk/src/vidalia/languagesupport.cpp 2008-08-20 05:27:11 UTC (rev 2998)
@@ -16,6 +16,7 @@
#include <QTranslator>
#include <QLocale>
+#include <QLibraryInfo>
#include <vidalia.h>
#include "languagesupport.h"
@@ -138,14 +139,25 @@
if (languageCode == "en")
return true;
- QTranslator *translator = new QTranslator(vApp);
- if (translator->load(QString(":/lang/vidalia_%1.qm").arg(languageCode))) {
- QApplication::installTranslator(translator);
- if (isRightToLeft(languageCode))
- vApp->setLayoutDirection(Qt::RightToLeft);
+ /* Attempt to load the translations for Qt's internal widgets from their
+ * installed Qt directory. */
+ QTranslator *systemQtTranslator = new QTranslator(vApp);
+ Q_CHECK_PTR(systemQtTranslator);
+
+ QString qtDir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
+ if (systemQtTranslator->load(qtDir + "/qt_" + languageCode + ".qm"))
+ QApplication::installTranslator(systemQtTranslator);
+ else
+ delete systemQtTranslator;
+
+ /* Install a translator for Vidalia's UI widgets */
+ QTranslator *vidaliaTranslator = new QTranslator(vApp);
+ Q_CHECK_PTR(vidaliaTranslator);
+
+ if (vidaliaTranslator->load(":/lang/vidalia_" + languageCode + ".qm")) {
+ QApplication::installTranslator(vidaliaTranslator);
return true;
}
- delete translator;
+ delete vidaliaTranslator;
return false;
}
-