菜单

翻译流程

相关源文件

目的与范围

本文详细介绍了系统设计入门(System Design Primer)存储库的翻译流程。它涵盖了如何维护翻译、如何贡献现有翻译以及如何添加新翻译。目标是通过提供高质量的多语言翻译,使系统设计入门对全球受众开放。

翻译概述

系统设计入门(System Design Primer)支持多种语言,以使内容对全球受众开放。目前,已有日语、简体中文和繁体中文的完整翻译,其他几种语言的翻译正在进行中。

翻译现状

语言状态文件维护者
英语原文README.md@donnemartin
日语已完成README-ja.md-
简体中文已完成README-zh-Hans.md-
繁体中文已完成README-zh-TW.md-
阿拉伯语、孟加拉语、葡萄牙语、德语、希腊语、希伯来语、意大利语、韩语、波斯语、波兰语、俄语、西班牙语、泰语、土耳其语、越南语、法语进行中通过 Issues 引用各贡献者

翻译工作流程图

来源:README.md1-3 CONTRIBUTING.md43-59

翻译原则

翻译流程遵循以下核心原则:

  1. 英语作为真相来源:原始英文版本是所有翻译遵循的权威内容。
  2. 维护者监督:每个翻译都有指定的维护者,负责质量和更新。
  3. 一致性:翻译旨在与原始内容保持一致,同时在目标语言中听起来自然。
  4. 社区驱动:翻译流程依赖社区贡献和审查。

来源:CONTRIBUTING.md45-49

翻译指南

处理现有翻译

处理现有翻译时,请遵循以下准则:

  1. 内容更改从英语开始:任何内容更改都应首先在英文版本中进行,然后传播到翻译版本。
  2. 翻译改进:对现有翻译的改进(语法、风格等)可以直接在翻译文件中进行。
  3. 每个 PR 对应一种语言:拉取请求(Pull Request)一次只能修改一种语言。
  4. 前缀约定:以语言代码为翻译相关的 PR 和 issues 添加前缀(例如,“ja: Fix typo in networking section”)。
  5. 母语审查:更改需要由母语使用者审查,最好是该语言的维护者。

来源:CONTRIBUTING.md53-60

新增翻译

为尚未支持的语言添加新翻译:

  1. 检查现有工作:审查 issues 和 PRs 以避免重复工作。
  2. 承诺维护:在开始之前,确认您可以长期维护该翻译。
  3. 提交 issue:为您的语言创建一个 issue 以协调工作。
  4. 从单个文件开始:首先创建 README-xx.md,其中 xx 是 IETF 语言标签
  5. 协作翻译:欢迎与他人协作进行翻译。
  6. 添加语言链接:更新所有 README 文件顶部的语言链接。
  7. 完成审查:确保翻译已完成并经过审查,然后提交合并。

来源:CONTRIBUTING.md62-74

EPUB 生成

该存储库包含一个脚本,用于生成不同语言的内容的 EPUB 版本,这对于离线阅读很有用。

EPUB 生成流程

该脚本处理 Markdown 文件并使用 pandoc 将它们转换为 EPUB 格式

  1. 英文版本还包括来自 solutions/system_design 目录的解决方案内容。
  2. 每种语言都使用适当的语言标签生成。
  3. EPUB 的元数据在 epub-metadata.yaml 中定义。

要生成 EPUB,请运行:

来源:generate-epub.sh1-54 epub-metadata.yaml1-3

翻译人员实用技巧

  1. 术语一致性:保持技术术语翻译的一致性。
  2. 保留原意:确保翻译捕捉到原文的含义和意图。
  3. 尊重格式:保留 Markdown 格式、代码块和链接。
  4. 测试您的工作:预览翻译以确保正确渲染。
  5. 保持更新:跟踪英文版本的更改以保持翻译同步。

如何成为翻译维护者

要成为某种语言的维护者:

  1. 证明您精通英语和目标语言。
  2. 贡献高质量的翻译。
  3. 承诺随着英文内容的演进而维护翻译。
  4. 在相应的语言 issue 中表达您成为维护者的意愿。

来源:CONTRIBUTING.md62-69

当前代码中的翻译工作流程

翻译文件遵循 README-xx.md 的命名约定,其中 xx 是语言代码。主要的英文 README.md 作为真相来源。

Repository Root
├── README.md (English - original)
├── README-ja.md (Japanese)
├── README-zh-Hans.md (Simplified Chinese)
├── README-zh-TW.md (Traditional Chinese)
├── generate-epub.sh (Script for generating EPUBs)
└── epub-metadata.yaml (Metadata for EPUBs)

来源:README.md1 generate-epub.sh51-54

贡献翻译

如果您有兴趣为翻译做贡献,请查阅 CONTRIBUTING.md 文件中的指南,并遵循上述流程。您的贡献有助于让更广泛的受众接触到系统设计入门(System Design Primer)。

来源:CONTRIBUTING.md43-78