diff --git a/src/app/settingsview/components/ChatviewSettings.qml b/src/app/settingsview/components/ChatviewSettings.qml
index 0b635c2ed11dc92be178e98b20412c05165e9625..4d385666aa9768d827dcf125daa18e9c5531e871 100644
--- a/src/app/settingsview/components/ChatviewSettings.qml
+++ b/src/app/settingsview/components/ChatviewSettings.qml
@@ -90,6 +90,7 @@ ColumnLayout {
         tipText: JamiStrings.layout
         fontPointSize: JamiTheme.settingsFontSize
         comboModel: ListModel {
+            id: layoutModel
             Component.onCompleted: {
                 append({ textDisplay: JamiStrings.horizontalViewOpt })
                 append({ textDisplay: JamiStrings.verticalViewOpt })
@@ -106,5 +107,17 @@ ColumnLayout {
                 comboModel.get(modelIndex).textDisplay === JamiStrings.verticalViewOpt
             )
         }
+
+        Connections {
+            target: UtilsAdapter
+
+            function onChangeLanguage() {
+                var idx = outputComboBoxSetting.modelIndex
+                layoutModel.clear()
+                layoutModel.append({ textDisplay: JamiStrings.horizontalViewOpt })
+                layoutModel.append({ textDisplay: JamiStrings.verticalViewOpt })
+                outputComboBoxSetting.modelIndex = idx
+            }
+        }
     }
 }
diff --git a/src/app/settingsview/components/SystemSettings.qml b/src/app/settingsview/components/SystemSettings.qml
index 9871f730f2c9be64eb1c8e6f619b6bdb4affcecd..a1d75222a20111e965405d14dcda6b54a18af5fb 100644
--- a/src/app/settingsview/components/SystemSettings.qml
+++ b/src/app/settingsview/components/SystemSettings.qml
@@ -76,6 +76,7 @@ ColumnLayout {
         fontPointSize: JamiTheme.settingsFontSize
 
         comboModel: ListModel {
+            id: themeModel
             Component.onCompleted: {
                 append({ textDisplay: JamiStrings.dark })
                 append({ textDisplay: JamiStrings.light })
@@ -223,13 +224,22 @@ ColumnLayout {
         }
     }
 
-
     Connections {
         target: UtilsAdapter
 
         function onChangeFontSize() {
             zoomSpinBox.valueField = Math.round(UtilsAdapter.getAppValue(Settings.BaseZoom) * 100.0)
         }
+
+        function onChangeLanguage() {
+            var idx = themeComboBoxSettings.modelIndex
+            themeModel.clear()
+            themeModel.append({ textDisplay: JamiStrings.dark })
+            themeModel.append({ textDisplay: JamiStrings.light })
+            if (UtilsAdapter.hasNativeDarkTheme())
+                themeModel.append({ textDisplay: JamiStrings.system })
+            themeComboBoxSettings.modelIndex = idx
+        }
     }
 
     SettingSpinBox {
diff --git a/src/app/utilsadapter.cpp b/src/app/utilsadapter.cpp
index bb9d4937cbe4403373cbaf8a2732376e169bf7aa..f3cc9fa1432df1b09799fb936ad24a008b9ec769 100644
--- a/src/app/utilsadapter.cpp
+++ b/src/app/utilsadapter.cpp
@@ -367,9 +367,10 @@ UtilsAdapter::setAppValue(const Settings::Key key, const QVariant& value)
     }
     settingsManager_->setValue(key, value);
     // If we change the lang preference, reload the translations
-    if (key == Settings::Key::LANG)
+    if (key == Settings::Key::LANG) {
         settingsManager_->loadTranslations();
-    else if (key == Settings::Key::BaseZoom)
+        Q_EMIT changeLanguage();
+    } else if (key == Settings::Key::BaseZoom)
         Q_EMIT changeFontSize();
     else if (key == Settings::Key::EnableExperimentalSwarm)
         Q_EMIT showExperimentalCallSwarm();
diff --git a/src/app/utilsadapter.h b/src/app/utilsadapter.h
index dd2b2ac9281dd0f66a21eacc1a9a57ba01fee6d9..cd8aae2ecd4693dddf53547c5c2966bd675a969c 100644
--- a/src/app/utilsadapter.h
+++ b/src/app/utilsadapter.h
@@ -127,6 +127,7 @@ Q_SIGNALS:
     void chatviewPositionChanged();
     void appThemeChanged();
     void showExperimentalCallSwarm();
+    void changeLanguage();
 
 private:
     QClipboard* clipboard_;