Next.jsi18n架构
为什么我在项目中途改变了博客的 i18n 架构
May 21, 20263 min read
为什么我在项目中途改变了博客的 i18n 架构
让我告诉你今天做的一个重构,这个重构我应该在六个月前就做了。
3文件每篇的问题
我的博客在纸面上有一个足够清晰的结构:/en/post-slug/、/ja/post-slug/、/zh/post-slug/。三个目录,三个文件,三种语言。易于理解。
但实际上发生的事情是这样的:我写新帖子时,会创建英文版本,发布,然后……日语和中文页面只是显示英文内容。我不断告诉自己"稍后再翻译"。那个"稍后"从未到来。
六个月后,我有8个帖子,日语内容实际上是英文的复制粘贴。语言切换器看起来坏了。点击日语的访客看到的是带有奇怪半翻译前页面的英文内容。
修复:单文件,全语言
新架构将所有内容放在一个 MDX 文件中:
---
slug: post-name
date: 2026-05-21
en:
title: English Title
content: |
English body...
ja:
title: 日本語タイトル
content: |
日本語の本文...
zh:
title: 中文标题
content: |
中文正文...
---
现在没有"稍后"了——所有三种语言必须在同一个文件中。如果你添加英文,你同时添加了日文和中文。schema 强制完整性。
关键教训
迁移10个帖子痛苦吗?是的。后悔吗?不。现在当有人点击语言切换器时,他们得到的是真正的翻译内容。这值得重构。
💬 交流与反馈
我认真阅读每一条反馈。
如果你对文章有疑问、发现错误、或者想交流技术与生活话题,欢迎通过 Telegram 联系我。