在我的 Next.js 项目中,我使用 Fluent (https://project Fluent.org) 进行国际化。 Fluent 使用
.ftl
文件作为语言环境。
我的项目的抽象结构:
my-app/
├─ src/
│ ├─ app/
│ ├─ locales/
│ │ ├─ uk.ftl
│ │ ├─ fr.ftl
│ ├─ file.ts
如何从服务器端
locales
文件获取 file.ts
目录的路径?
需要注意的是,该项目部署在Vercel平台上。
我尝试使用
process.cwd() + '/src/locales'
,但收到错误 [Error]: ENOENT: no such file or directory, scandir '/var/task/src/locales'
。 — 这对我不起作用..
请不要建议将
locales
放在 public
目录中。
事实证明,由于跟踪步骤和
locales
包,本地化文件(以及因此的 @vercel/nft
目录)丢失了。
解决了问题:
import path from 'path';
path.join(process.cwd(), '/src/locales')
此外,next.config.js 中的
output
参数对于查看构建中包含哪些文件也很有用。更多信息:https://nextjs.org/docs/app/api-reference/next-config-js/output。
希望有人发现这很有用并节省时间。