Files
GUI/src/utilities/LanguageSwitcher.cpp
2024-04-25 14:37:38 +08:00

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);
}
}