From d14bc121c0aa19bcec2c85c5d0b581f00dcae84a Mon Sep 17 00:00:00 2001
From: Dessalines <tyhou13@gmx.com>
Date: Wed, 29 Jul 2020 22:29:41 -0400
Subject: [PATCH] Fixing language setting issue. Fixes #1041

---
 ui/src/components/navbar.tsx | 3 ++-
 ui/src/components/user.tsx   | 3 ++-
 ui/src/utils.ts              | 4 ++--
 3 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/ui/src/components/navbar.tsx b/ui/src/components/navbar.tsx
index 2986ce7e..6418bb22 100644
--- a/ui/src/components/navbar.tsx
+++ b/ui/src/components/navbar.tsx
@@ -30,6 +30,7 @@ import {
   messageToastify,
   md,
   setTheme,
+  getLanguage,
 } from '../utils';
 import { i18n } from '../i18next';
 
@@ -435,7 +436,7 @@ export class Navbar extends Component<any, NavbarState> {
           this.requestNotificationPermission();
           this.fetchUnreads();
           setTheme(data.my_user.theme, true);
-          i18n.changeLanguage(data.my_user.lang);
+          i18n.changeLanguage(getLanguage());
         }
         this.state.isLoggedIn = true;
       }
diff --git a/ui/src/components/user.tsx b/ui/src/components/user.tsx
index e4d4439b..d0dcdf55 100644
--- a/ui/src/components/user.tsx
+++ b/ui/src/components/user.tsx
@@ -30,6 +30,7 @@ import {
   showAvatars,
   toast,
   setupTippy,
+  getLanguage,
 } from '../utils';
 import { UserListing } from './user-listing';
 import { SortSelect } from './sort-select';
@@ -877,7 +878,7 @@ export class User extends Component<any, UserState> {
 
   handleUserSettingsLangChange(i: User, event: any) {
     i.state.userSettingsForm.lang = event.target.value;
-    i18n.changeLanguage(i.state.userSettingsForm.lang);
+    i18n.changeLanguage(getLanguage(i.state.userSettingsForm.lang));
     i.setState(i.state);
   }
 
diff --git a/ui/src/utils.ts b/ui/src/utils.ts
index 892516bf..fa7f1297 100644
--- a/ui/src/utils.ts
+++ b/ui/src/utils.ts
@@ -350,9 +350,9 @@ export function debounce(
   };
 }
 
-export function getLanguage(): string {
+export function getLanguage(override: string): string {
   let user = UserService.Instance.user;
-  let lang = user && user.lang ? user.lang : 'browser';
+  let lang = override || (user && user.lang ? user.lang : 'browser');
 
   if (lang == 'browser') {
     return getBrowserLanguage();
-- 
2.44.1