X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Futil.cpp;h=e978a7fba524e0607b8995728d9de611dfecd076;hb=b1c606a9d153c5b501476551af3386b993f5635a;hp=f52154cb987947eed7a81719c17cb54fd1cab769;hpb=2cdaafcdf69fbeb3efd5372b86e14977e4a7fb94;p=quassel.git diff --git a/src/common/util.cpp b/src/common/util.cpp index f52154cb..e978a7fb 100644 --- a/src/common/util.cpp +++ b/src/common/util.cpp @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -182,22 +183,25 @@ QDir quasselDir() { void loadTranslation(const QLocale &locale) { QTranslator *qtTranslator = QCoreApplication::instance()->findChild("QtTr"); QTranslator *quasselTranslator = QCoreApplication::instance()->findChild("QuasselTr"); - Q_ASSERT(qtTranslator); - Q_ASSERT(quasselTranslator); - QLocale::setDefault(locale); + if(!qtTranslator) { + qtTranslator = new QTranslator(qApp); + qtTranslator->setObjectName("QtTr"); + qApp->installTranslator(qtTranslator); + } + if(!quasselTranslator) { + quasselTranslator = new QTranslator(qApp); + quasselTranslator->setObjectName("QuasselTr"); + qApp->installTranslator(quasselTranslator); + } - QCoreApplication::removeTranslator(qtTranslator); - QCoreApplication::removeTranslator(quasselTranslator); + QLocale::setDefault(locale); if(locale.language() == QLocale::C) return; - qtTranslator->load(QString(":i18n/qt_%1").arg(locale.name())); + qtTranslator->load(QString("%2/qt_%1").arg(locale.name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath))); quasselTranslator->load(QString(":i18n/quassel_%1").arg(locale.name())); - - QCoreApplication::installTranslator(qtTranslator); - QCoreApplication::installTranslator(quasselTranslator); } QString secondsToString(int timeInSeconds) {