Remove identity api dependency
[apps/hvac.git] / app / translator.cpp
1 #include "translator.h"
2
3 #include <QtCore/QCoreApplication>
4 #include <QtCore/QLocale>
5 #include <QtCore/QTranslator>
6 #include <QtCore/QDir>
7 #include <QtCore/QDebug>
8
9 Translator::Translator(QObject *parent)
10     : QObject(parent)
11     , m_language(QStringLiteral("C"))
12     , m_translator(nullptr)
13 {
14 }
15
16 QString Translator::translate(const QString &string, const QString &language) const
17 {
18     Q_UNUSED(language)
19     return string;
20 }
21
22 QString Translator::language() const
23 {
24     return m_language;
25 }
26
27 void Translator::setLanguage(const QString &language)
28 {
29     if (m_language == language) return;
30     m_language = language;
31     setTranslator(language);
32     emit languageChanged(language);
33 }
34
35 void Translator::setTranslator(const QString &language)
36 {
37     if (m_translator) {
38         QCoreApplication::removeTranslator(m_translator);
39     } else {
40         m_translator = new QTranslator(this);
41     }
42     QLocale locale(language);
43     QString fileName = QCoreApplication::instance()->applicationName().toLower();
44     qDebug() << "####" << QDir::currentPath() << QCoreApplication::applicationDirPath();
45     if (m_translator->load(locale, fileName, QStringLiteral("_"), QStringLiteral("%1/../translations").arg(QCoreApplication::applicationDirPath()))) {
46         QCoreApplication::installTranslator(m_translator);
47     } else {
48         delete m_translator;
49         m_translator = nullptr;
50     }
51 }
52