- client: set i18n language only from available languages
This commit is contained in:
parent
67a3d44b8c
commit
bd1ee48a4f
|
@ -30,10 +30,6 @@ export const REPOSITORY = {
|
||||||
export const PRIVACY_POLICY_LINK = 'https://adguard.com/privacy/home.html';
|
export const PRIVACY_POLICY_LINK = 'https://adguard.com/privacy/home.html';
|
||||||
|
|
||||||
export const LANGUAGES = [
|
export const LANGUAGES = [
|
||||||
{
|
|
||||||
key: 'en',
|
|
||||||
name: 'English',
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
key: 'da',
|
key: 'da',
|
||||||
name: 'Dansk',
|
name: 'Dansk',
|
||||||
|
@ -46,6 +42,10 @@ export const LANGUAGES = [
|
||||||
key: 'nl',
|
key: 'nl',
|
||||||
name: 'Dutch',
|
name: 'Dutch',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
key: 'en',
|
||||||
|
name: 'English',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
key: 'es',
|
key: 'es',
|
||||||
name: 'Español',
|
name: 'Español',
|
||||||
|
|
|
@ -3,6 +3,8 @@ import { reactI18nextModule } from 'react-i18next';
|
||||||
import { initReactI18n } from 'react-i18next/hooks';
|
import { initReactI18n } from 'react-i18next/hooks';
|
||||||
import langDetect from 'i18next-browser-languagedetector';
|
import langDetect from 'i18next-browser-languagedetector';
|
||||||
|
|
||||||
|
import { DEFAULT_LANGUAGE } from './helpers/constants';
|
||||||
|
|
||||||
import vi from './__locales/vi.json';
|
import vi from './__locales/vi.json';
|
||||||
import en from './__locales/en.json';
|
import en from './__locales/en.json';
|
||||||
import ru from './__locales/ru.json';
|
import ru from './__locales/ru.json';
|
||||||
|
@ -99,22 +101,28 @@ const resources = {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const availableLanguages = Object.keys(resources);
|
||||||
|
|
||||||
i18n
|
i18n
|
||||||
.use(langDetect)
|
.use(langDetect)
|
||||||
.use(initReactI18n)
|
.use(initReactI18n)
|
||||||
.use(reactI18nextModule) // passes i18n down to react-i18next
|
.use(reactI18nextModule)
|
||||||
.init({
|
.init({
|
||||||
resources,
|
resources,
|
||||||
fallbackLng: 'en',
|
fallbackLng: DEFAULT_LANGUAGE,
|
||||||
keySeparator: false, // we use content as keys
|
keySeparator: false,
|
||||||
nsSeparator: false, // Fix character in content
|
nsSeparator: false,
|
||||||
returnEmptyString: false, // count empty value as invalid
|
returnEmptyString: false,
|
||||||
interpolation: {
|
interpolation: {
|
||||||
escapeValue: false, // not needed for react!!
|
escapeValue: false,
|
||||||
},
|
},
|
||||||
react: {
|
react: {
|
||||||
wait: true,
|
wait: true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!i18n.language.includes(availableLanguages)) {
|
||||||
|
i18n.changeLanguage(DEFAULT_LANGUAGE);
|
||||||
|
}
|
||||||
|
|
||||||
export default i18n;
|
export default i18n;
|
||||||
|
|
Loading…
Reference in New Issue