@lifi/wallet-management
Version:
LI.FI Wallet Management solution.
38 lines • 1.37 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { createInstance } from 'i18next';
import { useEffect, useMemo } from 'react';
import { I18nextProvider } from 'react-i18next';
import * as supportedLanguages from '../../i18n/index.js';
export const I18nProvider = ({ children, locale, }) => {
const i18n = useMemo(() => {
const resources = Object.keys(supportedLanguages).reduce((resources, lng) => {
resources[lng] = {
translation: supportedLanguages[lng],
};
return resources;
}, {});
const i18n = createInstance({
lng: locale || 'en',
fallbackLng: resources.en ? 'en' : Object.keys(resources)?.[0],
lowerCaseLng: true,
interpolation: {
escapeValue: false,
},
resources,
detection: {
caches: [],
},
returnEmptyString: false,
});
i18n.init();
return i18n;
}, [locale]);
// biome-ignore lint/correctness/useExhaustiveDependencies: run only when locale changes
useEffect(() => {
if (locale && locale !== i18n.language) {
i18n.changeLanguage(locale);
}
}, [locale]);
return _jsx(I18nextProvider, { i18n: i18n, children: children });
};
//# sourceMappingURL=I18nProvider.js.map