diff options
author | enahum <nahumhbl@gmail.com> | 2016-05-27 09:25:37 -0300 |
---|---|---|
committer | Joram Wilander <jwawilander@gmail.com> | 2016-05-27 08:25:37 -0400 |
commit | a2c183f401bdf8e9abddd35d4561d42034325046 (patch) | |
tree | 66565a9e21ad6b47b4dca18113ad9be48bd98492 /webapp/actions/global_actions.jsx | |
parent | 15e427e806716b372f7fbef12d922f847ccc71b5 (diff) | |
download | chat-a2c183f401bdf8e9abddd35d4561d42034325046.tar.gz chat-a2c183f401bdf8e9abddd35d4561d42034325046.tar.bz2 chat-a2c183f401bdf8e9abddd35d4561d42034325046.zip |
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
Diffstat (limited to 'webapp/actions/global_actions.jsx')
-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); |