UNPKG

@re-flex/i18n

Version:

Re-flex UI Lozalization Package

19 lines (18 loc) 692 B
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, }; };