From a2c183f401bdf8e9abddd35d4561d42034325046 Mon Sep 17 00:00:00 2001 From: enahum Date: Fri, 27 May 2016 09:25:37 -0300 Subject: PLT-1800 Load server side locale from the config.json (#3092) * PLT-1800 Load server side locale from the config.json * Add support for locales with country specifics * Fix localization on served locale file as plain/text --- webapp/actions/global_actions.jsx | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'webapp/actions') 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); -- cgit v1.2.3-1-g7c22