summaryrefslogtreecommitdiffstats
path: root/webapp/actions
diff options
context:
space:
mode:
Diffstat (limited to 'webapp/actions')
-rw-r--r--webapp/actions/global_actions.jsx18
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);