35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import i18n from "i18next";
|
|
import { initReactI18next } from "react-i18next";
|
|
import Cookies from "js-cookie";
|
|
|
|
import enLang from "./locales/en/en.json";
|
|
import deLang from "./locales/de/de.json";
|
|
|
|
// the translations
|
|
// (tip move them in a JSON file and import them,
|
|
// or even better, manage them separated from your code: https://react.i18next.com/guides/multiple-translation-files)
|
|
const resources = {
|
|
en: {
|
|
translation: enLang,
|
|
},
|
|
de: {
|
|
translation: deLang,
|
|
},
|
|
};
|
|
|
|
i18n
|
|
.use(initReactI18next) // passes i18n down to react-i18next
|
|
.init({
|
|
resources,
|
|
fallbackLng: "en", // use en if detected lng is not available
|
|
lng: Cookies.get("language") || "en", // language to use, more information here: https://www.i18next.com/overview/configuration-options#languages-namespaces-resources
|
|
// you can use the i18n.changeLanguage function to change the language manually: https://www.i18next.com/overview/api#changelanguage
|
|
// if you're using a language detector, do not define the lng option
|
|
|
|
interpolation: {
|
|
escapeValue: false, // react already safes from xss
|
|
},
|
|
});
|
|
|
|
export default i18n;
|