kawkab-frontend
Version:
Kawkab frontend is a frontend library for the Kawkab framework
23 lines (22 loc) • 1.1 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { useEffect, useState } from 'react';
import { I18nextProvider } from 'react-i18next';
import { useNavigate, useLocation } from 'react-router-dom';
import { initI18n, hydrateLanguage, updateDocumentLanguage } from '../utils/i18n';
export function TranslationProvider({ children, resources, defaultLang = 'en', currentLang, cookieHeader, }) {
const navigate = useNavigate();
const location = useLocation();
const [isInitialized, setIsInitialized] = useState(false);
const i18nInstance = initI18n(resources, defaultLang, currentLang, cookieHeader);
useEffect(() => {
if (!isInitialized) {
hydrateLanguage(() => {
updateDocumentLanguage();
setIsInitialized(true);
// reload the page to apply the new language (only on first initialization)
navigate(location.pathname, { replace: true });
});
}
}, [navigate, location, isInitialized]);
return (_jsx(I18nextProvider, { i18n: i18nInstance, children: children }));
}