Shadis/src/i18n.ts

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;