aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils/helpers/i18n.ts
blob: 38616a2ec6a1c1d2b0ed5ba30f2f00e9db7a26b5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import type { I18n } from '@lingui/core';
import { en, fr } from 'make-plural/plurals';

export interface LocaleData {
  messages: object;
  default: object;
}

export const locales = {
  en: 'English',
  fr: 'Français',
};

export const defaultLocale = 'fr';

export function initTranslation(i18n: I18n): void {
  i18n.loadLocaleData({
    en: { plurals: en },
    fr: { plurals: fr },
  });
}

export async function loadTranslation(
  locale: string,
  isProduction: boolean = true
) {
  let data: LocaleData;
  if (isProduction) {
    data = await import(`src/i18n/${locale}/messages`);
  } else {
    data = await import(`@lingui/loader!src/i18n/${locale}/messages.po`);
  }

  return data.messages;
}