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