aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/qmmpuiplugincache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmmpui/qmmpuiplugincache.cpp')
-rw-r--r--src/qmmpui/qmmpuiplugincache.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/qmmpui/qmmpuiplugincache.cpp b/src/qmmpui/qmmpuiplugincache.cpp
index 0969b1a29..9495f6fa1 100644
--- a/src/qmmpui/qmmpuiplugincache.cpp
+++ b/src/qmmpui/qmmpuiplugincache.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2013 by Ilya Kotov *
+ * Copyright (C) 2013-2018 by Ilya Kotov *
* forkotov02@ya.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -24,6 +24,7 @@
#include <QPluginLoader>
#include <QApplication>
#include <QTranslator>
+#include <qmmp/qmmp.h>
#include "generalfactory.h"
#include "uifactory.h"
#include "filedialogfactory.h"
@@ -159,7 +160,7 @@ GeneralFactory *QmmpUiPluginCache::generalFactory()
{
m_generalFactory = qobject_cast<GeneralFactory *> (instance());
if(m_generalFactory)
- qApp->installTranslator(m_generalFactory->createTranslator(qApp));
+ loadTranslation(m_generalFactory->properties().translation);
}
return m_generalFactory;
}
@@ -170,7 +171,7 @@ UiFactory *QmmpUiPluginCache::uiFactory()
{
m_uiFactory = qobject_cast<UiFactory *> (instance());
if(m_uiFactory)
- qApp->installTranslator(m_uiFactory->createTranslator(qApp));
+ loadTranslation(m_uiFactory->properties().translation);
}
return m_uiFactory;
}
@@ -181,7 +182,7 @@ FileDialogFactory *QmmpUiPluginCache::fileDialogFactory()
{
m_fileDialogFactory = qobject_cast<FileDialogFactory *> (instance());
if(m_fileDialogFactory)
- qApp->installTranslator(m_fileDialogFactory->createTranslator(qApp));
+ loadTranslation(m_fileDialogFactory->properties().translation);
}
return m_fileDialogFactory;
}
@@ -204,6 +205,16 @@ QObject *QmmpUiPluginCache::instance()
return m_instance;
}
+void QmmpUiPluginCache::loadTranslation(const QString &translation)
+{
+ if(!translation.isEmpty())
+ {
+ QTranslator *translator = new QTranslator(qApp);
+ translator->load(translation + Qmmp::systemLanguageID());
+ qApp->installTranslator(translator);
+ }
+}
+
void QmmpUiPluginCache::cleanup(QSettings *settings)
{
settings->beginGroup("PluginCache");