postiz-app/libraries/react-shared-libraries/src/translation/i18next.ts
2026-03-25 14:24:26 +07:00

31 lines
932 B
TypeScript

import i18next from 'i18next';
import LanguageDetector from 'i18next-browser-languagedetector';
import resourcesToBackend from 'i18next-resources-to-backend';
import { initReactI18next } from 'react-i18next/initReactI18next';
import { fallbackLng, languages, defaultNS } from './i18n.config';
const runsOnServerSide = typeof window === 'undefined';
i18next
.use(initReactI18next)
.use(LanguageDetector)
.use(
resourcesToBackend((language: any, namespace: any) => {
return import(`./locales/${language}/${namespace}.json`);
})
)
.init({
// debug: true,
supportedLngs: languages,
fallbackLng,
lng: undefined,
// let detect the language on client side
fallbackNS: defaultNS,
defaultNS,
detection: {
order: runsOnServerSide ? ['cookie', 'header'] : ['cookie'],
caches: ['cookie'],
},
preload: runsOnServerSide ? languages : [],
});
export default i18next;