From: Dessalines <tyhou13@gmx.com>
Date: Thu, 30 Jul 2020 02:29:41 +0000 (-0400)
Subject: Fixing language setting issue. Fixes #1041
X-Git-Url: http://these/git/%24%7Bsubmission.url%7D?a=commitdiff_plain;h=d14bc121c0aa19bcec2c85c5d0b581f00dcae84a;p=lemmy.git

Fixing language setting issue. Fixes #1041
---

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();