64 lines
1.7 KiB
C++
64 lines
1.7 KiB
C++
|
#include "languagemanager.h"
|
|||
|
#include <QSettings>
|
|||
|
#include <QDir>
|
|||
|
#include <QApplication>
|
|||
|
|
|||
|
LanguageManager *LanguageManager::m_languageManager = NULL;
|
|||
|
LanguageManager::LanguageManager(QObject *parent)
|
|||
|
: QObject{parent}
|
|||
|
{
|
|||
|
m_translator = new QTranslator(this);
|
|||
|
getConfigLanguage();
|
|||
|
}
|
|||
|
|
|||
|
LanguageManager *LanguageManager::getInstance()
|
|||
|
{
|
|||
|
if(!m_languageManager)
|
|||
|
m_languageManager = new LanguageManager();
|
|||
|
return m_languageManager;
|
|||
|
}
|
|||
|
|
|||
|
void LanguageManager::setCurrentLanguage(E_LANGUAGE language)
|
|||
|
{
|
|||
|
switch(language)
|
|||
|
{
|
|||
|
case English_E:
|
|||
|
if(m_translator->load("./UpLowLimp_EN.qm"))
|
|||
|
qApp->installTranslator(m_translator);
|
|||
|
break;
|
|||
|
case Chinese_E:
|
|||
|
if(m_translator->load("./UpLowLimp_CN.qm"))
|
|||
|
qApp->installTranslator(m_translator);
|
|||
|
break;
|
|||
|
}
|
|||
|
m_language = language;
|
|||
|
// emit signalLanguageChanged(m_language);
|
|||
|
QString dirPath = QApplication::applicationDirPath() + "/conf/";
|
|||
|
QDir confdir(dirPath);
|
|||
|
|
|||
|
if(!confdir.exists())
|
|||
|
confdir.mkdir(dirPath);
|
|||
|
QString confFile(dirPath + "IDconf.ini");
|
|||
|
QSettings iniSetting(confFile, QSettings::IniFormat);
|
|||
|
iniSetting.setValue("language",language);
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
E_LANGUAGE LanguageManager::getCurrentLanguage()
|
|||
|
{
|
|||
|
return m_language;
|
|||
|
}
|
|||
|
|
|||
|
E_LANGUAGE LanguageManager::getConfigLanguage()
|
|||
|
{
|
|||
|
QString dirPath = QApplication::applicationDirPath() + "/conf/";
|
|||
|
QDir confdir(dirPath);
|
|||
|
if(!confdir.exists())
|
|||
|
confdir.mkdir(dirPath);
|
|||
|
QString confFile(dirPath + "IDconf.ini");
|
|||
|
QSettings iniSetting(confFile, QSettings::IniFormat);
|
|||
|
int value = iniSetting.value("language").toUInt();
|
|||
|
m_language = E_LANGUAGE(value);
|
|||
|
return m_language;
|
|||
|
}
|