I'm quite new to react and I'm searching the best way to detect when user change language. I'm using next translate to translate resources but for some ressource I'm getting from API, I need to change them manually. Here is the way I'm using default ressources:
On page:
const { t } = useTranslation("member");
That calls:
import { I18n } from '.';
export default function useTranslation(defaultNS?: string): I18n;
And here is the way language is changed into the picker component:
router.replace(router.asPath, undefined, { locale: locale/*, shallow: true*/ });
Here are things I've tried so far: I'm not into a component (it's a jsx page) so I think I cannot use
componentDidUpdate(prevProps, prevState) { if (this.props.t !== prevProps.t) { console.log(this.props.i18n.language); } }
It gives me a TypeError: Cannot read property 'props' of undefined
I've tried that too but it
import I18n from 'i18n';
i18next.on('languageChanged', function(lng) {})
Gives me TypeError: _next_translate_root_i18n__WEBPACK_IMPORTED_MODULE_0___default(...).on is not a function