55 lines
1.1 KiB
C++
55 lines
1.1 KiB
C++
#include "LanguageSwitcher.h"
|
|
|
|
#include "event/EventCenter.h"
|
|
|
|
namespace
|
|
{
|
|
QString changeLanguageToFileName(const QString& aLanguage)
|
|
{
|
|
if(aLanguage == "Chinese")
|
|
{
|
|
return "zh_CN";
|
|
}
|
|
else if(aLanguage == "English")
|
|
{
|
|
return "en_US";
|
|
}
|
|
return "";
|
|
}
|
|
}
|
|
|
|
LanguageSwitcher* LanguageSwitcher::getInstance()
|
|
{
|
|
static LanguageSwitcher instance;
|
|
return &instance;
|
|
}
|
|
LanguageSwitcher::LanguageSwitcher()
|
|
: QObject()
|
|
, mTranslator(new QTranslator(this))
|
|
{
|
|
}
|
|
|
|
LanguageSwitcher::~LanguageSwitcher()
|
|
{
|
|
}
|
|
|
|
void LanguageSwitcher::setTranslator(TranslatorPointer aTranslator)
|
|
{
|
|
mTranslator = aTranslator;
|
|
}
|
|
|
|
QTranslator* LanguageSwitcher::getTranslator()
|
|
{
|
|
return mTranslator.get();
|
|
}
|
|
|
|
void LanguageSwitcher::setDefaultLanguage(const QString aLanguage)
|
|
{
|
|
QString language = QString(":/translations/" + changeLanguageToFileName(aLanguage) + ".qm");
|
|
if (mTranslator->load(language))
|
|
{
|
|
EventCenter::Default()->triggerEvent(ReloadLanguage, nullptr, nullptr);
|
|
}
|
|
}
|
|
|