我的项目的 Next.js 动态国际化路径

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

好吧,我正在 Next.js 中制作这个项目,它利用 App Routing 和 Crystallize(GraphQL 驱动的 CMS),文件夹是英文的,但我需要将国际化集成到我的项目中,它现在的工作方式是您可以根据语言进行 api 调用,但当语言发生变化时,内部结晶也会改变获取路径。

现在我们已经构建了一种方法来获取具有 1 个通用路径的所有链接,但是当我想获取应用程序内的页面时,它变得很困难,因为也许我想获取“关于我们”页面,用英语来说,这是它会是什么样子。

在我们的代码库中,我们有

about-us > page.tsx

const { components } = await fetchAboutUsPage("/genericRootPath/about-us", "en", apiClient);

但是假设我将 lng 更改为挪威语并想要获取挪威语内容。 它看起来像这样。

const { components } = await fetchAboutUsPage("/genericRootPath/om-oss", "no", apiClient);

因此根路径保持不变,因为我在 CMS 中如此定义它,而端点则根据提供的语言进行更改。

挪威语的问题是我们的文件夹仍然被称为

about-us > page.tsx
,所以问题是,我是否可以利用任何资源来本地化文件夹名称或重定向用户。

我找到的唯一解决方案是在不同语言的 i18n 语言环境 json 文件中声明它们。

对国际化有点陌生,所以我尝试了标准的 i18n 路线,但是使用动态路径很难。

next.js internationalization url-routing i18next next.js14
1个回答
0
投票

我无法在这里发表评论。您在寻找这样的东西吗?

假设你有一条这样的路线,

http://localhost:3000/dashboard

所以你

page.tsx
将会是
http://localhost:3000/dashboard/page.tsx

我知道如何使用语言的 url 参数更改语言,

举个例子:

http://localhost:3000/en/dashboard/page.tsx
--> 将使用英语

http://localhost:3000/de/dashboard/page.tsx
--> 将使用德语

这就是您所说的“动态国际化路径”吗?

如果是这样,请告诉我,我将通过编辑此内容提供答案。

© www.soinside.com 2019 - 2024. All rights reserved.