⚰️(i18n) utils module is not used anymore
The use of this module has been removed during the UI refacto.
This commit is contained in:
@@ -1,55 +0,0 @@
|
|||||||
import { LANGUAGE_LOCAL_STORAGE } from '../conf';
|
|
||||||
import { getLanguage, splitLocaleCode } from '../utils';
|
|
||||||
|
|
||||||
describe('i18n utils', () => {
|
|
||||||
afterEach(() => {
|
|
||||||
localStorage.removeItem(LANGUAGE_LOCAL_STORAGE);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('checks language code is correctly splitted', () => {
|
|
||||||
expect(splitLocaleCode('fr_FR')).toEqual({ language: 'fr', region: 'FR' });
|
|
||||||
expect(splitLocaleCode('en_US')).toEqual({ language: 'en', region: 'US' });
|
|
||||||
expect(splitLocaleCode('en')).toEqual({
|
|
||||||
language: 'en',
|
|
||||||
region: undefined,
|
|
||||||
});
|
|
||||||
expect(splitLocaleCode('fr-FR')).toEqual({ language: 'fr', region: 'FR' });
|
|
||||||
expect(splitLocaleCode('en-US')).toEqual({ language: 'en', region: 'US' });
|
|
||||||
});
|
|
||||||
|
|
||||||
it('checks that we get expected language from local storage', () => {
|
|
||||||
localStorage.setItem(LANGUAGE_LOCAL_STORAGE, 'fr_FR');
|
|
||||||
expect(getLanguage()).toEqual('fr');
|
|
||||||
localStorage.removeItem(LANGUAGE_LOCAL_STORAGE);
|
|
||||||
|
|
||||||
localStorage.setItem(LANGUAGE_LOCAL_STORAGE, 'en_FR');
|
|
||||||
expect(getLanguage()).toEqual('en');
|
|
||||||
|
|
||||||
localStorage.setItem(LANGUAGE_LOCAL_STORAGE, 'xx_XX');
|
|
||||||
expect(getLanguage()).toEqual('en');
|
|
||||||
});
|
|
||||||
|
|
||||||
it('checks that we get expected language from browser', () => {
|
|
||||||
Object.defineProperty(navigator, 'language', {
|
|
||||||
value: 'fr',
|
|
||||||
writable: false,
|
|
||||||
configurable: true,
|
|
||||||
});
|
|
||||||
|
|
||||||
expect(getLanguage()).toEqual('fr');
|
|
||||||
|
|
||||||
Object.defineProperty(navigator, 'language', {
|
|
||||||
value: 'en',
|
|
||||||
writable: false,
|
|
||||||
configurable: true,
|
|
||||||
});
|
|
||||||
expect(getLanguage()).toEqual('en');
|
|
||||||
|
|
||||||
Object.defineProperty(navigator, 'language', {
|
|
||||||
value: 'xx',
|
|
||||||
writable: false,
|
|
||||||
configurable: true,
|
|
||||||
});
|
|
||||||
expect(getLanguage()).toEqual('en');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
import {
|
|
||||||
BASE_LANGUAGE,
|
|
||||||
LANGUAGES_ALLOWED,
|
|
||||||
LANGUAGE_LOCAL_STORAGE,
|
|
||||||
} from './conf';
|
|
||||||
|
|
||||||
export const splitLocaleCode = (language: string) => {
|
|
||||||
const locale = language.split(/[-_]/);
|
|
||||||
return {
|
|
||||||
language: locale[0],
|
|
||||||
region: locale.length === 2 ? locale[1] : undefined,
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
export const getLanguage = () => {
|
|
||||||
if (typeof window === 'undefined') {
|
|
||||||
return BASE_LANGUAGE;
|
|
||||||
}
|
|
||||||
|
|
||||||
const languageStore =
|
|
||||||
localStorage.getItem(LANGUAGE_LOCAL_STORAGE) || navigator?.language;
|
|
||||||
|
|
||||||
const language = splitLocaleCode(languageStore).language;
|
|
||||||
|
|
||||||
return Object.keys(LANGUAGES_ALLOWED).includes(language)
|
|
||||||
? language
|
|
||||||
: BASE_LANGUAGE;
|
|
||||||
};
|
|
||||||
Reference in New Issue
Block a user