diff --git a/src/App.web.tsx b/src/App.web.tsx index 3b67af0dcd..b420f974cc 100644 --- a/src/App.web.tsx +++ b/src/App.web.tsx @@ -14,6 +14,9 @@ import {Shell} from 'view/shell/index' import {ToastContainer} from 'view/com/util/Toast.web' import {ThemeProvider} from 'lib/ThemeContext' import {queryClient} from 'lib/react-query' +import {i18n} from '@lingui/core' +import {I18nProvider} from '@lingui/react' +import {defaultLocale, dynamicActivate} from './locale/i18n' const App = observer(function AppImpl() { const [rootStore, setRootStore] = useState( @@ -26,6 +29,7 @@ const App = observer(function AppImpl() { setRootStore(store) analytics.init(store) }) + dynamicActivate(defaultLocale) // async import of locale data }, []) // show nothing prior to init @@ -39,9 +43,11 @@ const App = observer(function AppImpl() { - - - + + + + + diff --git a/src/locale/i18n.ts b/src/locale/i18n.ts new file mode 100644 index 0000000000..a7883640c5 --- /dev/null +++ b/src/locale/i18n.ts @@ -0,0 +1,18 @@ +import {i18n} from '@lingui/core' + +export const locales = { + en: 'English', + cs: 'Česky', + fr: 'Français', +} +export const defaultLocale = 'en' + +/** + * We do a dynamic import of just the catalog that we need + * @param locale any locale string + */ +export async function dynamicActivate(locale: string) { + const {messages} = await import(`./locales/${locale}/messages`) + i18n.load(locale, messages) + i18n.activate(locale) +} diff --git a/src/locale/locales/cs/messages.js b/src/locale/locales/cs/messages.js new file mode 100644 index 0000000000..3975ff70fd --- /dev/null +++ b/src/locale/locales/cs/messages.js @@ -0,0 +1 @@ +/*eslint-disable*/module.exports={messages:JSON.parse("{}")}; \ No newline at end of file diff --git a/src/locale/locales/en/messages.js b/src/locale/locales/en/messages.js new file mode 100644 index 0000000000..3975ff70fd --- /dev/null +++ b/src/locale/locales/en/messages.js @@ -0,0 +1 @@ +/*eslint-disable*/module.exports={messages:JSON.parse("{}")}; \ No newline at end of file diff --git a/src/locale/locales/fr/messages.js b/src/locale/locales/fr/messages.js new file mode 100644 index 0000000000..3975ff70fd --- /dev/null +++ b/src/locale/locales/fr/messages.js @@ -0,0 +1 @@ +/*eslint-disable*/module.exports={messages:JSON.parse("{}")}; \ No newline at end of file