react-i18next:: 你需要使用 initReactI18next 传入一个 i18next 实例

m2v*_*m2v 6 i18next reactjs next.js

react-i18next:: 你需要使用 initReactI18next 传入一个 i18next 实例

我最近添加了该包并出现此错误。据我所知,我已按照所有步骤进行操作。

我将 Next.js 与next-i18next通常自动初始化的包一起使用。

https://github.com/m2vi/downloader

jul*_*ves 29

来自next-i18next文档

然后我们在页面级组件中添加或(取决于您的情况serverSideTranslationgetStaticPropsgetServerSideProps

这意味着您需要添加serverSideTranslation到需要翻译的页面。


例如在您的pages/d/[tab]/index文件中:

import Head from 'next/head';
import { Input } from '../../../components/Input';
import YouTube from '../../../components/youtube/Main';
import { serverSideTranslations } from 'next-i18next/serverSideTranslations';

const index = () => {
    return (
        <>
            <Head>
                <title>YouTube</title>
            </Head>
            <YouTube />
        </>
    );
};

export const getServerSideProps = async ({ locale }) => ({
    props: {
        ...(await serverSideTranslations(locale, ['common']))
    }
});

export default index;
Run Code Online (Sandbox Code Playgroud)

然后,在您的Main组件中,您可以documentation使用以下命令访问翻译:

t('pages.documentation')
Run Code Online (Sandbox Code Playgroud)

  • 直到我将 `react: { useSuspense: false }` 添加到我的 `next-i18next-config.js` 文件中,这对我才起作用。 (6认同)

pa4*_*080 22

就我而言,问题是由 VSC 导入建议造成的一个愚蠢的拼写错误,并且首先是我的粗心。

所以而不是:

import { useTranslation } from "next-i18next";
Run Code Online (Sandbox Code Playgroud)

...进口声明是:

import { useTranslation } from "react-i18next";
Run Code Online (Sandbox Code Playgroud)


Aay*_*rya 8

更新 next-i18next.config.js

module.exports = {
    i18n: {
        defaultLocale: 'en',
        locales: ['en', 'de', 'fr'],
    },
    react: { useSuspense: false },//this line
};
Run Code Online (Sandbox Code Playgroud)