39 lines
1.2 KiB
TypeScript
Executable File
39 lines
1.2 KiB
TypeScript
Executable File
import { isLoggedIn } from "./_DesignSystem/Toolkit/DesignSystem";
|
|
import i18n from "i18next";
|
|
import Backend from "i18next-xhr-backend";
|
|
import LanguageDetector from "i18next-browser-languagedetector";
|
|
import { initReactI18next } from "react-i18next";
|
|
|
|
const defaultNs = ["common", "fileview"];
|
|
|
|
i18n
|
|
// load translation using xhr -> see /public/locales
|
|
// learn more: https://github.com/i18next/i18next-xhr-backend
|
|
.use(Backend)
|
|
// detect user language
|
|
// learn more: https://github.com/i18next/i18next-browser-languageDetector
|
|
.use(LanguageDetector)
|
|
// pass the i18n instance to react-i18next.
|
|
.use(initReactI18next)
|
|
// init i18next
|
|
// for all options read: https://www.i18next.com/overview/configuration-options
|
|
.init({
|
|
fallbackLng: "en",
|
|
debug: true,
|
|
ns: [...defaultNs, ...(isLoggedIn ? ["dashboard"] : [])],
|
|
defaultNS: "common",
|
|
backend: {
|
|
loadPath: "./static/locales/{{lng}}/{{ns}}.json",
|
|
},
|
|
detection: {
|
|
lookupQuerystring: "lang",
|
|
lookupCookie: "i18n-shadis",
|
|
caches: ["cookie"],
|
|
},
|
|
interpolation: {
|
|
escapeValue: false, // not needed for react as it escapes by default
|
|
},
|
|
});
|
|
|
|
export default i18n;
|