From d477c7270c90b190ed82b13f48f39a05d83503d2 Mon Sep 17 00:00:00 2001 From: crupest Date: Thu, 21 Sep 2023 23:49:12 +0800 Subject: Fix #1394. --- FrontEnd/src/i18n/setup.ts | 50 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 FrontEnd/src/i18n/setup.ts (limited to 'FrontEnd/src/i18n/setup.ts') diff --git a/FrontEnd/src/i18n/setup.ts b/FrontEnd/src/i18n/setup.ts new file mode 100644 index 00000000..63dd40ed --- /dev/null +++ b/FrontEnd/src/i18n/setup.ts @@ -0,0 +1,50 @@ +import i18n from "i18next"; +import LanguageDetector from "i18next-browser-languagedetector"; +import { initReactI18next } from "react-i18next"; + +import backend from "./backend"; + +void i18n + .use(LanguageDetector) + .use(backend) + .use(initReactI18next) // bind react-i18next to the instance + .init({ + fallbackLng: false, + lowerCaseLng: true, + + debug: process.env.NODE_ENV === "development", + + interpolation: { + escapeValue: false, // not needed for react!! + }, + + // react i18next special options (optional) + // override if needed - omit if ok with defaults + /* + react: { + bindI18n: 'languageChanged', + bindI18nStore: '', + transEmptyNodeValue: '', + transSupportBasicHtmlNodes: true, + transKeepBasicHtmlNodesFor: ['br', 'strong', 'i'], + useSuspense: true, + } + */ + }); + +if (module.hot) { + module.hot.accept( + [ + "./translations/en/index.json", + "./translations/zh/index.json", + "./translations/en/admin.json", + "./translations/zh/admin.json", + ], + () => { + void i18n.reloadResources(); + }, + ); +} + +export default i18n; + -- cgit v1.2.3