如何使用 next-i18next 中的changeLanguage方法来更改语言环境?

Moh*_*zai 3 i18next next.js react-i18next next-i18next

我试图通过单击按钮来更改项目中的默认区域设置。我不想通过推送子路径(例如fooo.com/fa.

这是我的next-i18next配置:

module.exports = {
  i18n: {
    defaultLocale: 'en',
    locales: ['en', 'fa'],
  },
};
Run Code Online (Sandbox Code Playgroud)

这是我更改区域设置并使用它的简单代码:

const { t, i18n } = useTranslation('common');
   ///
<button onClick={() => i18n.changeLanguage('fa')}>
    Click to Change Language
</button>
<p>{t('title')}</p>
Run Code Online (Sandbox Code Playgroud)

但它不起作用并卡在默认区域设置 EN 中。

Abd*_*rsy 6

这对我有用:

const changeLocale = (locale) => {
        router.push({
            route: router.pathname,
            query: router.query
        }, router.asPath, { locale });
    }
Run Code Online (Sandbox Code Playgroud)

  • 谢谢。这听起来很疯狂,但是是的:官方文档不包含如何更改语言。难以置信。 (2认同)