diff --git a/src/app/appsettingsmanager.cpp b/src/app/appsettingsmanager.cpp index 6e1f37d2641b493bc70dfadd04a154710c42591b..5ee0d1dfbcb08a15cd2cde69954037dd479ab3d5 100644 --- a/src/app/appsettingsmanager.cpp +++ b/src/app/appsettingsmanager.cpp @@ -57,6 +57,13 @@ AppSettingsManager::setValue(const Settings::Key key, const QVariant& value) settings_->setValue(Settings::toString(key), value); } +QString +AppSettingsManager::getLanguage() +{ + auto pref = getValue(Settings::Key::LANG).toString(); + return pref == "SYSTEM" ? QLocale::system().name() : pref; +} + void AppSettingsManager::loadTranslations() { @@ -75,9 +82,7 @@ AppSettingsManager::loadTranslations() qApp->removeTranslator(tr); installedTr_.clear(); - auto pref = getValue(Settings::Key::LANG).toString(); - - QString locale_name = pref == "SYSTEM" ? QLocale::system().name() : pref; + QString locale_name = getLanguage(); qDebug() << QString("Using locale: %1").arg(locale_name); QString locale_lang = locale_name.split('_')[0]; diff --git a/src/app/appsettingsmanager.h b/src/app/appsettingsmanager.h index 7b3b20305eb0a034e71750922249aaa3e20a3283..1425440f46501daf03f404c881833d73d8976d40 100644 --- a/src/app/appsettingsmanager.h +++ b/src/app/appsettingsmanager.h @@ -111,6 +111,7 @@ public: Q_INVOKABLE QVariant getValue(const Settings::Key key); Q_INVOKABLE void setValue(const Settings::Key key, const QVariant& value); + QString getLanguage(); void loadTranslations(); diff --git a/src/app/mainapplication.cpp b/src/app/mainapplication.cpp index 64ad3b27f52f481368cadc2ed36b1ef56284281a..b310cfbb8205bc2a6aad76bcb7fbd4839534dbb8 100644 --- a/src/app/mainapplication.cpp +++ b/src/app/mainapplication.cpp @@ -132,7 +132,7 @@ MainApplication::init() setWindowIcon(QIcon(":/images/jami.ico")); Utils::removeOldVersions(); - qputenv("JAMI_LANG", settingsManager_->getValue(Settings::Key::LANG).toByteArray()); + qputenv("JAMI_LANG", settingsManager_->getLanguage().toUtf8()); settingsManager_->loadTranslations(); setApplicationFont(); diff --git a/src/app/messagesadapter.cpp b/src/app/messagesadapter.cpp index e10bf358368b5b54b1962a3641be1b1cecc788e4..cb1e5648fae254633aa3a359277e7d0cd33bb75e 100644 --- a/src/app/messagesadapter.cpp +++ b/src/app/messagesadapter.cpp @@ -688,14 +688,11 @@ MessagesAdapter::getFormattedTime(const quint64 timestamp) auto interval = qFloor(seconds / 60); if (interval > 1) { - auto curLang = settingsManager_->getValue(Settings::Key::LANG); - auto curLocal(QLocale(curLang.toString())); + auto curLang = settingsManager_->getLanguage(); + auto curLocal = QLocale(curLang); auto curTime = QDateTime::fromSecsSinceEpoch(timestamp).time(); QString timeLocale; - if (curLang == "SYSTEM") - timeLocale = QLocale::system().toString(curTime, QLocale::system().ShortFormat); - else - timeLocale = curLocal.toString(curTime, curLocal.ShortFormat); + timeLocale = curLocal.toString(curTime, curLocal.ShortFormat); return timeLocale; } @@ -722,14 +719,11 @@ MessagesAdapter::getFormattedDay(const quint64 timestamp) if (timestampDate.daysTo(currentDate) == 1) return QObject::tr("Yesterday"); - auto curLang = settingsManager_->getValue(Settings::Key::LANG); - auto curLocal(QLocale(curLang.toString())); + auto curLang = settingsManager_->getLanguage(); + auto curLocal = QLocale(curLang); auto curDate = QDateTime::fromSecsSinceEpoch(timestamp).date(); QString dateLocale; - if (curLang == "SYSTEM") - dateLocale = QLocale::system().toString(curDate, QLocale::system().ShortFormat); - else - dateLocale = curLocal.toString(curDate, curLocal.ShortFormat); + dateLocale = curLocal.toString(curDate, curLocal.ShortFormat); return dateLocale; }