跳转到主要内容
国际化(i18n)是将软件或内容设计为适配不同语言和地区设置的过程。本指南将说明如何规划文件结构、配置导航,以及高效维护翻译内容,从而帮助用户以其首选语言访问你的文档,并提升全球触达能力。

文件结构

将翻译内容组织在对应的语言目录中,以保持文档的可维护性,并按语言构建导航结构。 使用 ISO 639-1 语言代码 为每种语言分别创建一个单独的目录。将已翻译文件放入这些目录中,并保持与默认语言相同的结构。
Example file structure
在所有语言中保持相同的文件名和目录结构,这样更便于维护翻译并识别缺失的内容。

配置语言切换器

要在文档中添加语言切换器,请在 docs.jsonnavigation 配置中设置 languages 数组。
docs.json
languages 数组中的每个语言条目都需要:
  • language:ISO 639-1 语言代码
  • 完整的导航结构
  • 指向已翻译文件的路径
不同语言的导航结构可以有所不同,以满足各语言特定的内容需求。
请勿在多个语言环境中使用相同的页面路径。跨语言环境复制路径会导致未定义的行为。每个页面路径应仅出现在一种语言的导航中。

设置默认语言

languages 数组中的第一个语言会自动作为默认语言。若要使用其他语言作为默认语言,可以重新调整数组顺序,或添加 default 属性:
docs.json
或者使用 default 属性来指定顺序:
docs.json

单语言文档

如果你只想提供一种语言并且不需要语言切换器,请从 navigation 配置中移除 languages 字段,而是直接定义导航结构:
docs.json
这会以单一语言显示你的文档,并且不提供语言切换器界面。
将导航标签(例如分组或标签页名称)翻译为与内容语言一致的文本,可以为用户提供完全本地化的体验。
要添加在所有语言版本中都显示的全局导航元素,请在 docs.jsonnavigation 配置中设置 global 对象。
docs.json
为每种语言自定义页脚和导航栏,以显示翻译后的内容和特定区域的链接。 footernavbar 属性添加到每种语言的配置中:
docs.json
语言专属的 footernavbar 会覆盖该语言的全局设置。如果某种语言未定义这些属性,则会继承全局配置。 你也可以按相同方式配置语言专属的 banner

维护翻译

确保译文准确无误,并与源内容保持同步。

翻译工作流程

  1. 在主语言中更新源内容。
  2. 确定已更改的内容。
  3. 翻译已更改的内容。
  4. 审核译文的准确性。
  5. 更新翻译文件。
  6. 验证导航和链接是否正常工作。

自动化翻译

如需自动化翻译解决方案,设置自动化,让代理按计划运行或在仓库推送时触发。

外部翻译服务商

如果你与自己的翻译服务商或区域译员合作,可以使用 GitHub Actions 或类似的 CI/CD 工具,将他们的工作流程集成到 Mintlify 文档中。
  1. 导出源内容:提取需要翻译的 MDX 文件。
  2. 发送给译员:将文件提供给翻译服务商。
  3. 接收译文:取回翻译后的 MDX 文件。
  4. 导入并部署:将翻译文件添加到语言目录中,并更新导航。
当 PR 合并到 main 时,此 GitHub Actions 工作流程会自动导出已更改的英文内容以供翻译。
.github/workflows/export-for-translation.yml
该 GitHub Actions 工作流程会在通过 PR 添加翻译内容时进行验证并导入。
.github/workflows/import-translations.yml
外部翻译工作流程最佳实践
  • 保留 frontmatter:确保译员保持 YAML frontmatter 完整,仅翻译 titledescription 的值。
  • 保护代码块:将代码块标记为“请勿翻译”,并告知翻译供应商。
  • 使用翻译记忆库:提供术语表,列出应保留英文或需采用特定译法的技术术语。
  • 自动化验证:在合并翻译内容前,使用 CI 检查验证 MDX 语法和 frontmatter。
  • 版本控制:跟踪每份译文对应的源版本,以识别过时内容。

图片与媒体

将各语言版本的图片存放在对应的语言目录中。
在译文中使用相对路径引用图像。
es/index.mdx

多语言网站的 SEO(搜索引擎优化)

针对每种语言版本进行搜索引擎优化。

页面元数据

在每个文件的 frontmatter 中包含已翻译的页面元数据:
fr/index.mdx

最佳实践

日期和数字格式

注意针对不同地区使用合适的日期和数字格式。
  • 日期格式:MM/DD/YYYY(月/日/年)vs DD/MM/YYYY(日/月/年)
  • 数字格式:1,000.00 vs 1.000,00
  • 货币符号:$100.00 vs 100,00€
为每种语言使用相应格式的示例,或采用通用且易于理解的格式。

保持一致性

  • 在所有语言中保持内容对齐,确保每位用户获取同等质量的信息。
  • 为技术术语创建翻译术语表。
  • 在不同语言中保持相同的内容结构。
  • 匹配源内容的语气和风格。
  • 使用 Git branch 将翻译工作与主内容更新分开管理。

布局差异

有些语言相比英语需要更多或更少的空间。请在不同屏幕尺寸上测试你的翻译内容,以确保:
  • 导航显示正常且不会被截断。
  • 代码块不会溢出。
  • 表格和其他格式化文本保持良好的可读性。
  • 图片能够适当缩放。

字符编码

请确保你的开发环境和部署流水线支持 UTF-8 编码,以便正确显示使用不同字母表并包含特殊字符的各种语言中的所有字符。

常见问题

不需要。你可以在部分翻译的情况下上线某种语言,并随着时间逐步扩展。常见的做法是先翻译访问量最高的页面——通常是入门内容、认证相关内容和热门操作指南——将访问量较低的参考内容保留为默认语言,直到翻译完成。用户通常更喜欢有一些翻译内容,而不是完全没有。
如果用户访问一个不存在的翻译 URL,他们会看到 404 页面。为避免这种情况,你可以只在对应语言的导航中包含已翻译的页面,或者保持默认语言和翻译内容之间的一致性。在各语言之间使用相同的文件结构可以方便地识别哪些翻译缺失。
是的。导航标签——分组名称、标签页标题、锚点文本——应当与内容语言一致。在西班牙语文档中出现英文的”Getting started”标签会造成不协调的体验。Mintlify 支持特定语言的导航结构,因此每种语言都可以拥有完全翻译的标签。
代码本身不应翻译——变量名、函数调用和语法是语言无关的。代码块中的注释如果用于解释用户需要理解的概念,可以进行翻译。代码块周围的说明文字应完全翻译。
是的。阿拉伯语(ar)和希伯来语(he)都在支持的语言代码列表中。当配置了这些语言代码时,Mintlify 会自动处理 RTL 布局。请测试你的文档在 RTL 模式下的显示效果,以验证导航、表格和代码块是否正确显示。