blob: 711fb1ae48b40faeb07a5488eefd3477afe3f60b [file] [log] [blame]
simon26e79f72022-10-05 22:16:08 -04001/*
2 * Copyright (C) 2022 Savoir-faire Linux Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Affero General Public License as
6 * published by the Free Software Foundation; either version 3 of the
7 * License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Affero General Public License for more details.
13 *
14 * You should have received a copy of the GNU Affero General Public
15 * License along with this program. If not, see
16 * <https://www.gnu.org/licenses/>.
17 */
idillon3470d072022-11-22 15:22:34 -050018import i18n, { Resource, ResourceLanguage } from 'i18next';
simond47ef9e2022-09-28 22:24:28 -040019import { initReactI18next } from 'react-i18next';
simon07b4eb02022-09-29 17:50:26 -040020
simond8ca2f22022-10-11 23:30:55 -040021import translationEn from './locale/en/translation.json';
22import translationFr from './locale/fr/translation.json';
idillon5815c732022-09-16 13:54:45 -040023
idillon3470d072022-11-22 15:22:34 -050024interface LanguageInfo {
25 tag: string;
26 fullName: string;
27 translation: ResourceLanguage;
28}
29
30export const availableLanguages: LanguageInfo[] = [
31 {
32 tag: 'fr',
33 fullName: 'Français',
34 translation: translationFr,
35 },
36 {
37 tag: 'en',
38 fullName: 'English',
39 translation: translationEn,
40 },
41];
42
43const resources = availableLanguages.reduce((resources: Resource, { tag, translation }) => {
44 resources[tag] = { translation };
45 return resources;
46}, {});
47
simond47ef9e2022-09-28 22:24:28 -040048i18n.use(initReactI18next).init({
simond8ca2f22022-10-11 23:30:55 -040049 debug: import.meta.env.DEV,
simond47ef9e2022-09-28 22:24:28 -040050 lng: 'en',
idillon5815c732022-09-16 13:54:45 -040051 interpolation: {
52 escapeValue: false,
53 },
idillon3470d072022-11-22 15:22:34 -050054 resources,
simond47ef9e2022-09-28 22:24:28 -040055});
idillon5815c732022-09-16 13:54:45 -040056
simond47ef9e2022-09-28 22:24:28 -040057export default i18n;