| 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); |
| } |
|
|