单击 Next.js 中的 link 时如何在 URL 中强制使用默认语言环境
How to force default locale in the URL when clicking a link in Next.js
出于 SEO 目的,我需要将英语设置为默认语言 -> mynextapp.com/ 当用户进入网站时,he/she 可以选择英语或法语,如果选择英语,url 将更改为 mynextapp。com/en,如果选择法语 -> mynextapp。 com/fr
目前我正在使用 Next - i18n 中的内置选项:
i18n: {
locales: ['en', 'fr'],
defaultLocale: 'en',
},
但这让我只能将英语作为默认路径 = mynextapp.com/
语言切换器:
<Link
href="/"
locale={router.locale === 'en' ? 'fr' : 'en'}
>
<a>Switch</a>
</Link>
有没有办法在不同的 url 下处理相同的语言?这样当您在语言切换器中单击“en”时,url 路径应该是 myapp.com/en.
要强制默认语言将语言环境添加到 URL,您可以将其直接传递给 href
,并通过设置 [=14= 选择退出自动处理语言环境前缀] 到 false
.
<Link href={`/${router.locale === 'en' ? 'fr' : 'en'}`} locale={false}>
<a>Switch</a>
</Link>
如果您希望所有 Link
都以这种方式运行,并在 URL 上强制使用默认区域设置,则需要应用相同的逻辑。
假设您有一个 link 到 /about
页面,它将如下所示。
<Link href={`/${router.locale}/about`} locale={false}>
<a>About Page</a>
</Link>
如果使用next/router
做路由,同样的逻辑也可以。
router.push(`/${router.locale}/about`, undefined, { locale: false });
出于 SEO 目的,我需要将英语设置为默认语言 -> mynextapp.com/ 当用户进入网站时,he/she 可以选择英语或法语,如果选择英语,url 将更改为 mynextapp。com/en,如果选择法语 -> mynextapp。 com/fr
目前我正在使用 Next - i18n 中的内置选项:
i18n: {
locales: ['en', 'fr'],
defaultLocale: 'en',
},
但这让我只能将英语作为默认路径 = mynextapp.com/
语言切换器:
<Link
href="/"
locale={router.locale === 'en' ? 'fr' : 'en'}
>
<a>Switch</a>
</Link>
有没有办法在不同的 url 下处理相同的语言?这样当您在语言切换器中单击“en”时,url 路径应该是 myapp.com/en.
要强制默认语言将语言环境添加到 URL,您可以将其直接传递给 href
,并通过设置 [=14= 选择退出自动处理语言环境前缀] 到 false
.
<Link href={`/${router.locale === 'en' ? 'fr' : 'en'}`} locale={false}>
<a>Switch</a>
</Link>
如果您希望所有 Link
都以这种方式运行,并在 URL 上强制使用默认区域设置,则需要应用相同的逻辑。
假设您有一个 link 到 /about
页面,它将如下所示。
<Link href={`/${router.locale}/about`} locale={false}>
<a>About Page</a>
</Link>
如果使用next/router
做路由,同样的逻辑也可以。
router.push(`/${router.locale}/about`, undefined, { locale: false });