import { useEffect } from 'react'; import { TOptions } from 'i18next'; import { useRecoilValue } from 'recoil'; import { useTranslation } from 'react-i18next'; import { resources } from '~/locales/i18n'; import store from '~/store'; export type TranslationKeys = keyof typeof resources.en.translation; export default function useLocalize() { const lang = useRecoilValue(store.lang); const { t, i18n } = useTranslation(); useEffect(() => { if (i18n.language !== lang) { i18n.changeLanguage(lang); } }, [lang, i18n]); return (phraseKey: TranslationKeys, options?: TOptions) => t(phraseKey, options); }