frontend/lib/i18n.ts (view raw)
1import i18n from 'i18next';
2import {initReactI18next} from 'react-i18next';
3import 'moment/locale/fr';
4import moment from 'moment';
5import {Enum_Userspermissionsuser_Lang as SupportedLocales} from '../generated/graphql';
6import translationFr from '../locales/fr.json';
7import translationEn from '../locales/en.json';
8
9const resources = {
10 fr: {
11 translation: translationFr,
12 },
13 en: {
14 translation: translationEn,
15 },
16};
17
18export const initI18Next = (locale: SupportedLocales) => {
19 i18n
20 .use(initReactI18next) // passes i18n down to react-i18next
21 .init({
22 resources,
23 lng: locale,
24 supportedLngs: ['fr', 'en'],
25 interpolation: {
26 escapeValue: false, // react already safes from xss
27 },
28 });
29 moment.locale(i18n.language);
30};
31
32export default i18n;