diff options
Diffstat (limited to 'webapp/actions')
-rw-r--r-- | webapp/actions/global_actions.jsx | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/webapp/actions/global_actions.jsx b/webapp/actions/global_actions.jsx index 2e2b1b247..93ed7517b 100644 --- a/webapp/actions/global_actions.jsx +++ b/webapp/actions/global_actions.jsx @@ -392,9 +392,14 @@ export function newLocalizationSelected(locale) { translations: en }); } else { + const localeInfo = I18n.getLanguageInfo(locale) || I18n.getLanguageInfo(global.window.mm_config.DefaultClientLocale); + Client.getTranslations( - I18n.getLanguageInfo(locale).url, - (data) => { + localeInfo.url, + (data, res) => { + if (!data && res.text) { + data = JSON.parse(res.text); //eslint-disable-line no-param-reassign + } AppDispatcher.handleServerAction({ type: ActionTypes.RECEIVED_LOCALE, locale, @@ -408,10 +413,11 @@ export function newLocalizationSelected(locale) { } } -export function loadBrowserLocale() { - let locale = (navigator.languages && navigator.languages.length > 0 ? navigator.languages[0] : - (navigator.language || navigator.userLanguage)).split('-')[0]; - if (!I18n.getLanguages()[locale]) { +export function loadDefaultLocale() { + const defaultLocale = global.window.mm_config.DefaultClientLocale; + let locale = global.window.mm_user ? global.window.mm_user.locale || defaultLocale : defaultLocale; + + if (!I18n.getLanguageInfo(locale)) { locale = 'en'; } return newLocalizationSelected(locale); |