NextJS i18n - 语言环境变得未定义

我正在尝试将我的网站迁移到 NextJS,但在进行一些国际化时遇到了麻烦。

我正在学习 Documentation 本身的教程,但我在检查器中的语言环境将显示为 undefined

我做错了什么?我正在使用最新版本的 nextJS。

我试图从 console.log 获取一些信息。

console.log("Locale: " + locale);
console.log(router);

它打印: enter image description here

next.config.js

module.exports = {
    i18n: {
        locales: ['en-US', 'pt-BR'],
        defaultLocale: 'pt-BR',
    },
}

/pages/index.js

import Head from 'next/head'
import { useRouter } from 'next/router'

import pt from '../locale/index/pt'
import en from '../locale/index/en'

export default function Home() {

    const router = useRouter();
    const { locale } = router;
    const t = locale === 'pt' ? pt : en;

    return (
        <div className="container">
            <Head>
                <title>{t.title}</title>
            </Head>
        </div>
    )
}

/locale/pt.js

export default {
    title: "Teste Portugues."
}

/locale/en.js

export default {
    title: "Test English"
}

一些随机信息:NextJS 版本:12.0.4 Chrome 版本:96.0.4664.55 节点版本:17.0.1

stack overflow NextJS i18n - Locale getting undefined
原文答案
author avatar

接受的答案

更新:我重新启动了我的计算机,在此之后,3 天后,当我使用 console.log({locale}) 时,它会正常获取我的 pt-BR 语言环境。

(我什么也没做)

所以,我会关闭线程。不管怎么说,还是要谢谢你!


答案:

作者头像

这似乎是旧版本 Next.js 中的错误。昨天,我遇到了类似的问题,在将 Next、React 和 React-dom 升级到最新版本后,它就像魅力一样!

作者头像

只需重新启动服务器。如果 next.config.js 文件被修改,您必须重新启动服务器才能使更改生效