29 lines
811 B
TypeScript
29 lines
811 B
TypeScript
import { useEffect } from "react";
|
|
import { useTranslation as useI18NextTranslation } from "react-i18next";
|
|
import enResources from "../common/locales/en.json";
|
|
import esResources from "../common/locales/es.json";
|
|
import { MODULE_NAME } from "./manifest";
|
|
|
|
const addMissingBundles = (i18n: any) => {
|
|
const needsEn = !i18n.hasResourceBundle("en", MODULE_NAME);
|
|
const needsEs = !i18n.hasResourceBundle("es", MODULE_NAME);
|
|
|
|
if (needsEn) {
|
|
i18n.addResourceBundle("en", MODULE_NAME, enResources, true, true);
|
|
}
|
|
|
|
if (needsEs) {
|
|
i18n.addResourceBundle("es", MODULE_NAME, esResources, true, true);
|
|
}
|
|
};
|
|
|
|
export const useTranslation = () => {
|
|
const { i18n } = useI18NextTranslation();
|
|
|
|
useEffect(() => {
|
|
addMissingBundles(i18n);
|
|
}, [i18n]);
|
|
|
|
return useI18NextTranslation(MODULE_NAME);
|
|
};
|