From 87cceb2d72b36ba9a47fb39224fce93a522d67f3 Mon Sep 17 00:00:00 2001 From: Diego Sampaio Date: Fri, 10 Aug 2018 11:44:59 -0300 Subject: [PATCH] [FIX] Default server language not being applied (#11719) * Fix default server language not being applied * Always set user's language on localStorage --- client/startup/i18n.js | 28 ++++++++----------- .../rocketchat-ui-login/client/login/form.js | 7 +---- 2 files changed, 13 insertions(+), 22 deletions(-) diff --git a/client/startup/i18n.js b/client/startup/i18n.js index ee61abe42f4..dd98fb57460 100644 --- a/client/startup/i18n.js +++ b/client/startup/i18n.js @@ -56,29 +56,25 @@ Meteor.startup(() => { loadMomentLocale(language).then(locale => moment.locale(locale), error => console.error(error)); }; - const setLanguage = language => { - currentLanguage.set(filterLanguage(language)); - localStorage.setItem('userLanguage', currentLanguage.get()); + const setLanguage = (language) => { + const lang = filterLanguage(language); + currentLanguage.set(lang); + localStorage.setItem('userLanguage', lang); }; - window.setLanguage = setLanguage; - window.defaultUserLanguage = () => RocketChat.settings.get('Language') || getBrowserLanguage() || 'en'; + const defaultUserLanguage = () => RocketChat.settings.get('Language') || getBrowserLanguage() || 'en'; + window.defaultUserLanguage = defaultUserLanguage; Tracker.autorun(() => { - const user = RocketChat.models.Users.findOne(Meteor.userId(), { fields: { username: 1 }}); - const userLanguage = user && user.language; - - const defaultLanguage = userLanguage || RocketChat.settings.get('Language') || 'en'; + const user = RocketChat.models.Users.findOne(Meteor.userId(), { fields: { language: 1 }}); - if (!currentLanguage.get()) { - setLanguage(defaultLanguage); - } + setLanguage((user && user.language) || defaultUserLanguage()); + }); - if (userLanguage && userLanguage !== currentLanguage.get()) { - setLanguage(userLanguage); + Tracker.autorun(() => { + if (currentLanguage.get()) { + applyLanguage(currentLanguage.get()); } - - applyLanguage(currentLanguage.get()); }); }); diff --git a/packages/rocketchat-ui-login/client/login/form.js b/packages/rocketchat-ui-login/client/login/form.js index dd1999af1c4..e3ec9baee0e 100644 --- a/packages/rocketchat-ui-login/client/login/form.js +++ b/packages/rocketchat-ui-login/client/login/form.js @@ -1,4 +1,4 @@ -/*globals OnePassword, device, setLanguage */ +/*globals OnePassword, device */ import _ from 'underscore'; import s from 'underscore.string'; import toastr from 'toastr'; @@ -133,7 +133,6 @@ Template.loginForm.events({ loginMethod = 'loginWithCrowd'; } return Meteor[loginMethod](s.trim(formData.emailOrUsername), formData.pass, function(error) { - const user = Meteor.user(); instance.loading.set(false); if (error != null) { if (error.error === 'no-valid-email') { @@ -144,10 +143,6 @@ Template.loginForm.events({ return; } Session.set('forceLogin', false); - if (user && user.language) { - localStorage.setItem('userLanguage', user.language); - return setLanguage(Meteor.user().language); - } }); } }