MuseMVP 文档

国际化

设置默认语言、替换产品文案,并发布成对的中英文内容。

MuseMVP 提供英文和中文。先选默认语言,再用你的产品文案覆盖模板默认内容,不需要改动默认文件。

开始前准备

准备已运行的应用。UI 文案共享在 packages/i18n;文档、博客、法律页和更新日志正文在各应用的 content/。

1. 选择默认语言

在所选应用 .env.local 设置:

NEXT_PUBLIC_DEFAULT_LOCALE="zh"

英文使用 en。修改后重启开发服务,部署应用重新构建。默认语言的公开 URL 没有前缀:默认英文时 / 为英文、/zh 为中文;默认中文时 / 为中文、/en 为英文。

packages/config/src/i18n.ts 包含各语言产品元数据、文档标题和货币。按 品牌设置 改为自己的信息。

2. 替换一条 UI 文案

打开 packages/i18n/src/translations/en/mvp.json 和 zh/mvp.json。将下面片段合并进中文文件:

{
  "home": {
    "hero": {
      "mainTitle1": "Acme",
      "mainTitle2": "你的下一个产品,从这里开始"
    }
  }
}

英文文件用相同键填写英文。现有 Hero.tsx 读取这些键,刷新首页即可看到替换文案。修改其他组件前,先看其 useTranslations() 或 getTranslations() 读取的键。

保留 default.json。mvp.json 覆盖相同字段,未填写字段沿用默认内容。数组整体替换,不追加。已有 mvp.json 内容要合并,不要整份覆盖。

3. 发布双语正文

在应用 content/docs、posts、legal 或 changelog 创建成对的 *.en.mdx / *.zh.mdx,分类信息也保持 meta.en.json / meta.zh.json 成对。编辑源文件,dev/build 会生成 .source/。

同时维护两应用时,用 pnpm apps:parity 检查页面/内容差异。--write 从 Node 向 Workers 复制符合条件的文件,使用前检查改动。共享翻译 JSON 不需要在两应用间复制。

确认结果

  • 打开默认公开 URL,切换到另一语言。
  • 检查首页、导航、元数据和修改的正文语言正确。
  • 登录后检查账号页面的语言。
  • 修改消息结构或正文后,运行 pnpm type-check 和当前应用的构建命令。

常见问题

问题处理方式
覆盖没生效对照组件的准确 namespace/key,检查 JSON 嵌套
只改了一种语言在两语言 mvp.json 添加相同键路径
列表覆盖后丢失默认项数组整体替换,填写完整目标数组
缺失文案显示为另一语言默认语言回退会补缺项;补齐两语言,不依赖回退作为翻译

增加其他语言

需同步扩展语言枚举与元数据、共享消息和类型、路由、内容 source 和导航 metadata。这是开发改动,不是只加一个 JSON。加载器在 packages/i18n/src/lib/messages.ts:深合并本语言默认和覆盖,用默认语言补非默认语言的缺项。新增消息树保持 packages/i18n/src/types.ts 兼容。

本页目录