42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
|
import './style.css';
|
||
|
|
||
|
import * as ReactDOM from 'react-dom/client';
|
||
|
|
||
|
import App from './App';
|
||
|
import { ChakraProvider } from '@chakra-ui/react';
|
||
|
import LanguageDetector from 'i18next-browser-languagedetector';
|
||
|
import React from 'react';
|
||
|
import i18n from 'i18next';
|
||
|
import i18nResource from './i18n.json';
|
||
|
import { initReactI18next } from 'react-i18next';
|
||
|
import merge from 'lodash/merge';
|
||
|
import theme from './theme';
|
||
|
import RootContext, {initRootContext} from './store';
|
||
|
|
||
|
const resources =
|
||
|
import.meta.env.VITE_TAURI === '1'
|
||
|
? merge(i18nResource, (await import('./i18n-tauri.json')).default)
|
||
|
: i18nResource;
|
||
|
|
||
|
i18n
|
||
|
.use(LanguageDetector)
|
||
|
.use(initReactI18next)
|
||
|
.init({
|
||
|
resources,
|
||
|
fallbackLng: 'en',
|
||
|
lng: 'it', // default language
|
||
|
// debug: true,
|
||
|
interpolation: { escapeValue: false }
|
||
|
});
|
||
|
|
||
|
const rootElement = document.getElementById('app')!;
|
||
|
ReactDOM.createRoot(rootElement).render(
|
||
|
<React.StrictMode>
|
||
|
<ChakraProvider theme={theme}>
|
||
|
<RootContext.Provider value={initRootContext}>
|
||
|
<App />
|
||
|
</RootContext.Provider>
|
||
|
</ChakraProvider>
|
||
|
</React.StrictMode>
|
||
|
);
|