@re-flex/i18n
Version:
Re-flex UI Lozalization Package
19 lines (18 loc) • 692 B
JavaScript
import React, { createContext, useContext, useLayoutEffect, useState, } from "react";
import { I18n } from "./Core";
const I18nextContext = createContext(null);
const { Provider } = I18nextContext;
export const I18nProvider = ({ children }) => {
const [updater, setUpdater] = useState(0);
useLayoutEffect(() => {
I18n.updater = () => setUpdater((f) => f + 1);
}, []);
return (React.createElement(Provider, { value: { version: updater, i18n: I18n } }, children));
};
export const useTranslate = () => {
const { i18n: localizer } = useContext(I18nextContext);
return {
t: (path, obj) => localizer.translate(path, obj),
i18n: localizer,
};
};