mirror of
https://github.com/SomboChea/ui
synced 2024-11-05 22:24:27 +07:00
675ee980ee
* feat(lng): added change language on the fly * fixed dropdown * applied feedbacks * added translation * updated bundlesize * fixed error * updated snaps * added french language * added language in storage * updated styles * fixed tests
54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
import i18n from 'i18next';
|
|
import { initReactI18next } from 'react-i18next';
|
|
|
|
import translationEN from './translations/en-US.json';
|
|
import translationPT from './translations/pt-BR.json';
|
|
import translationES from './translations/es-ES.json';
|
|
import translationDE from './translations/de-DE.json';
|
|
import translationFR from './translations/fr-FR.json';
|
|
import translationCN from './translations/zh-CN.json';
|
|
|
|
const languages = {
|
|
'en-US': {
|
|
translation: translationEN,
|
|
},
|
|
'pt-BR': {
|
|
translation: translationPT,
|
|
},
|
|
'es-ES': {
|
|
translation: translationES,
|
|
},
|
|
'de-DE': {
|
|
translation: translationDE,
|
|
},
|
|
'fr-FR': {
|
|
translation: translationFR,
|
|
},
|
|
'zh-CN': {
|
|
translation: translationCN,
|
|
},
|
|
};
|
|
|
|
type Language = keyof typeof languages;
|
|
|
|
i18n
|
|
// pass the i18n instance to react-i18next.
|
|
.use(initReactI18next)
|
|
// init i18next
|
|
// for all options read: https://www.i18next.com/overview/configuration-options
|
|
.init({
|
|
// in case window.VEDACCIO_LANGUAGE is undefined,it will fall back to 'en-US'
|
|
lng: window?.__VERDACCIO_BASENAME_UI_OPTIONS?.language,
|
|
fallbackLng: 'en-US',
|
|
whitelist: ['en-US', 'pt-BR', 'es-ES', 'de-DE', 'fr-FR', 'zh-CN'],
|
|
load: 'currentOnly',
|
|
resources: languages,
|
|
debug: false,
|
|
interpolation: {
|
|
escapeValue: false, // react already safes from xss
|
|
},
|
|
});
|
|
|
|
export default i18n;
|
|
export { Language };
|