summaryrefslogtreecommitdiff
path: root/frontend/src/start.tsx
blob: 0803f46ebb6e1993ab30a070fe83001d1b42a49e (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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import i18n from 'i18next';
import Backend from 'i18next-http-backend';
import { initReactI18next } from 'react-i18next';

import PluginLoader from './plugin-loader';

declare global {
  export var DeckyPluginLoader: PluginLoader;
  export var importDeckyPlugin: Function;
  export var deckyHasLoaded: boolean;
  export var deckyHasConnectedRDT: boolean | undefined;
  export var deckyAuthToken: string;
  export var DFL: any | undefined;
}

(async () => {
  i18n
    .use(Backend)
    .use(initReactI18next)
    .init({
      load: 'currentOnly',
      detection: {
        order: ['querystring', 'navigator'],
        lookupQuerystring: 'lng',
      },
      //debug: true,
      lng: navigator.language,
      fallbackLng: 'en-US',
      interpolation: {
        escapeValue: true,
      },
      returnEmptyString: false,
      backend: {
        loadPath: 'http://127.0.0.1:1337/locales/{{lng}}.json',
        customHeaders: {
          Authentication: deckyAuthToken,
        },
        requestOptions: {
          credentials: 'include',
        },
      },
    });

  window?.DeckyPluginLoader?.dismountAll();
  window?.DeckyPluginLoader?.deinit();
  window.DeckyPluginLoader = new PluginLoader();
  DeckyPluginLoader.init();
  window.importDeckyPlugin = function (name: string, version: string) {
    DeckyPluginLoader?.importPlugin(name, version);
  };
})();

export default i18n;