如何使用默认语言的 Nextjs 国际化?

问题描述 投票:0回答:1

这两天我在读Nextjs 国际化文档

我想使用两种语言:

en
fa
。我也可以在它们之间切换,URL 如下所示:

https://example.com/en
https://example.com/fa

我想做的就是将

en
定义为默认值,因此 预期结果 是:

https://example.com/
https://example.com/fa

知道我该怎么做吗?我在文档中找不到与此相关的任何内容。


这是我的代码:

/src/app/[lang]/page.js

// 'use client'
import { getDictionary } from './dictionaries'
import {useRouter} from "next/navigation";

// const router = useRouter();
export default async function Page({ params: { lang } }) {
    const dict = await getDictionary(lang) // en
    return (
        <>
            <button>{dict.products.cart}</button>
       </>
    ) // Add to Cart
}`

/src/app/[lang]/dictionaries.js

import 'server-only'

const dictionaries = {
    en: () => import('../dictionaries/en.json').then((module) => module.default),
    fa: () => import('../dictionaries/fa.json').then((module) => module.default),
}

export const getDictionary = async (locale) => dictionaries[locale]()
javascript reactjs next.js lang
1个回答
0
投票

根据关于国际化路由的NextJS文档,您似乎可以在

next.config.js
中定义默认区域设置来设置默认语言:

module.exports = {
  i18n: {
    locales: ['en', 'fa'],
    defaultLocale: 'en',
  },
}

这个问题还有很多可能对您有用的信息。

项目结构示例:

project-root/
|-- src/
    |-- app/
    |-- ...
|-- ...
|-- middleware.js
|-- next.config.js
|- ...
© www.soinside.com 2019 - 2024. All rights reserved.