From 1eb9f71fdc325041ff18dda17d6d9a254e35879b Mon Sep 17 00:00:00 2001 From: slowbackspace Date: Mon, 18 Feb 2019 12:49:27 +0100 Subject: [PATCH] auto detect browser locale if lang not stored in localstorage --- src/actions/LocalStorageActions.js | 5 ++++- src/utils/l10n.js | 11 +++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 src/utils/l10n.js diff --git a/src/actions/LocalStorageActions.js b/src/actions/LocalStorageActions.js index b73e3a63..c718d0dc 100644 --- a/src/actions/LocalStorageActions.js +++ b/src/actions/LocalStorageActions.js @@ -12,6 +12,7 @@ import { httpRequest } from 'utils/networkUtils'; import * as buildUtils from 'utils/build'; import * as storageUtils from 'utils/storage'; import * as WalletActions from 'actions/WalletActions'; +import * as l10nUtils from 'utils/l10n'; import { getAccountTokens } from 'reducers/utils'; import type { Account } from 'reducers/AccountsReducer'; @@ -240,7 +241,9 @@ const loadStorageData = (): ThunkAction => (dispatch: Dispatch): void => { const language: ?string = storageUtils.get(TYPE, KEY_LANGUAGE); if (language) { - dispatch(WalletActions.fetchLocale(language)); + dispatch(WalletActions.fetchLocale(JSON.parse(language))); + } else { + dispatch(WalletActions.fetchLocale(l10nUtils.getInitialLocale())); } }; diff --git a/src/utils/l10n.js b/src/utils/l10n.js new file mode 100644 index 00000000..6e60550c --- /dev/null +++ b/src/utils/l10n.js @@ -0,0 +1,11 @@ +import { LANGUAGE } from 'config/variables'; + +export const getInitialLocale = (defaultLocale = 'en') => { + const browserLocale = navigator.language.split('-')[0]; + if (LANGUAGE.some(e => e.code === browserLocale)) { + // Array of supported languages contains the locale we're looking for + return browserLocale; + } + // if browser lang is not supported return en as default locale + return defaultLocale; +}; \ No newline at end of file