This page is written in Chinese for Chinese translation, we can convert it into other languages if needed.
你可以在
中挑选感兴趣的页面/issue进行翻译。请在开始翻译前,我们建议你认真阅读并尽量遵守本文的规范,这会提高你的翻译质量并使你的文章与其他人的风格保持一致。这不仅能减轻校对者校对的工作量,也能使读者阅读起来更加顺畅。如果想要了解翻译的贡献流程,请阅读 贡献文档。
本文为了规范 Flink 文档上的术语、用语及规范,在此建立一个供译者、校对者参考的翻译规范和术语表。
寻求帮助
如果你在翻译过程中遇到问题,或者提交的翻译 Pull Request 长时间无人review,可以在社区中寻求以下同学的帮助。
Name | GitHub ID | JIRA ID | |
---|---|---|---|
Jark Wu | wuchong | jark | |
Xingcan Cui | xccui | xccui | |
Congxian Qiu | klion26 | klion26 | |
Roc | RocMarshal | RocMarshal |
翻译规范
本规范主要列出了一些常见的翻译问题,并提供了一些指导意见和建议。请译者和校对者尽量遵循本规范,这能使得 Flink 中文文档在行为上更统一,在质量上更高。
1. 使用纯文本工具进行翻译,不要使用富文本工具
使用纯文本工具可以进行翻译,可以有效避免增加新行、删除行、破坏链接、破坏引号、破坏星号等行为。
2. 汉字与英文、数字之间需空格
我们建议汉字与英文或数字之间以空格隔开,以增强中英文混排的美观性和可读性。
注意:中文标点符号前后不需要跟空格,即使前后挨着的是英文单词。
3. 文档链接
英文版文档中可能会包含引用文档中其他文章的绝对链接,此时要注意将链接修改为中文版的 URL。
修改的方法很简单,一般将 xx.md 改为 xx.zh.md 即可。比如下面是 DataStream API 的链接。
[DataStream API]({% link dev/datastream_api.md %})
需要修改成中文链接
[DataStream API]({% link dev/datastream_api.zh.md %})
注意:如果是相对链接,则不需要修改,如 [YARN](../ops/deployment/yarn_setup.html)。
注意2: 如果之前的链接方式类似 [CLI]({% site.baseurl %}/ops/cli.html) 请修改为 [CLI]({% link ops/cli.md %}), 更多内容可以参考讨论邮件
4. 标题锚点链接
文档中可能会包含标题锚点链接,当将标题从英文改成中文后,其锚点链接地址也会发生改变,导致原有锚点链接失效。
如下链接,引用了一个标题锚点(convert-a-table-into-a-datastream),但是其对应的标题被翻译成中文后,该链接会失效。
[通用概念]({%link dev/table/common.zh.md %}#convert-a-table-into-a-datastream)
为了使链接仍然有效,我们需要在翻译后的标题上增加一个 <a name="original_titile_anchor"></a> 标签。
如原标题:
## Convert a Table into a DataStream
翻译后需要在标题前增加一个 <a> 标签,注意 <a> 和标题之间有一个空行。
<a name="table-to-stream-conversion"></a>
## 将表转换成 DataStream
5. 中文标点符号
中文里面请使用中文标点符号。注意英文中没有顿号,应该使用顿号的地方在英文中一般使用的是逗号,在翻译时应注意将其翻译为顿号。比如“Kubernetes, Mesos, Docker” 应该翻译成 “Kubernetes、Mesos、Docker”。
6. 一般用“你”,而不是“您”
为了风格统一,我们建议在一般情况下使用“你”即可,这样与读者距离近一些。当然必要的时候可以使用“您”来称呼,比如 warning 提示的时候。
7. 示例代码及注释
示例代码中的注释最好能够翻译,当然也可以选择不翻译(当注释很简单时)。
8. 意译优于直译
有些同学翻译的文章很容易有翻译腔,就是经常把原文一字不漏地、逐句地翻译了出来。但这样并不代表翻译更准确,反而有时候读着会很别扭。所以建议在翻译完以后,自己多读几遍,看看是否符合原意、是否绕口、是否简洁。在充分理解原文的基础上,可以适当采用意译的方式来翻译。有时候为了简化句子,有些数量词、助词、主语都可以省略。
"...的...的...的..."
比如英文中经常会用 's 来表达从属关系,一字不落地都将其翻译成 "的" 就会很翻译腔。在中文里面有些 "的" 完全可以去掉,不会影响表达的意思,还能简洁很多,看下面的例子:
Flink's documentation is located in the docs folder in Flink's source code repository
当然,你可以将"的"字都翻译出来,但是读起来很不顺畅:
❌ Flink 的文档位于 Flink 的源码仓库的 docs 文件夹中。
去掉不必要的"的"字,就会简洁很多:
✅ Flink 文档位于 Flink 源码仓库的 docs 文件夹中。
"一个……"
英文一般比较严谨,当代表多个时,会使用复数名字,在翻译成中文时,一般不需要刻意把这种复数翻译出来。
在英文里,当单数可数名词时,前面一般会有“a”或“an”,但在中文里我们大多数时候是不用把“一个...”给翻译出来的。
比如下面这个例子:
State is a first-class citizen in Flink.
我们可以将“a”翻译成“一个”:
❌ 状态是 Flink 中的一个一等公民。
虽然看起来没什么问题,但是这里的“一个”完全是多余的,去掉之后不但不会影响翻译效果,而且还会显得更加简洁:
✅ 状态是 Flink 中的一等公民。
专业术语
术语翻译表请遵循下方的表格,该表格中列出了社区推荐的翻译,和不推荐翻译的术语。请尽量遵守,但请注意该表格并不是完善的,仍在演进中,如果发现有不恰当的翻译或不确定的翻译,请在邮件列表中讨论,或在这篇 Google Doc 中评论。
重要:文章中第一次出现专业术语翻译的地方需要给出英文原文。例如:“如果看到反压(back pressure)警告,则...”
专有词要注意大小写,如 Flink,Java,Scala,API,SQL,不要用小写的 flink, java, scala, api, sql。
当单词是指代码中的属性名、方法名、对象名、类名、标签名等时,可以不译。例如 "parallelism parameter" 不需要翻译成“并发参数”,而是应为“parallelism 属性”。
术语表 (Glossary)
我们一直认为一个单词一定要结合上下文才能确定准确的含义,所以该表格仅作为翻译的参考。如果遇到不确定的翻译,请随时在社区中发起讨论。
???:待讨论
N/A: 该术语不建议翻译
该表格按字母顺序排序
Apache Flink | ||
Term | Chinese Simplified | Description |
At-Least-Once | 至少一次 | |
At-Most-Once | 至多一次 | |
Back Pressure | 反压 | |
Chain (noun) | 链 | e.g. operator chain -> 算子链 |
Chain (verb) | 链接 | e.g. Flink chains operator subtasks together into tasks. -> Flink 将算子的 subtask 链接成 task。 |
Checkpoint | N/A | 不翻译。虽然有地方翻译成“检查点”,但我们仍不建议翻译。 |
Connector | 连接器 | |
Exactly-Once | 精确一次 | |
Fault Tolerance | 容错 | |
Failover | 故障恢复 | |
Fit | 拟合 | 仅适用于数学和机器学习中,其他场景请结合上下文翻译。 |
High Availability | 高可用 | |
Join | N/A | Join 在中文中也很常用,翻译成“连接”反而不习惯。 |
Key / Keys | 键 | |
Keyed | N/A | 一般不建议翻译。例如: keyed state, keyed stream,在 Flink 中都是有特殊含义的。non-keyed 也类似。 |
K-Fold Splits | K折划分 | |
Lazy Evaluation | 延迟计算 | |
Metric | 指标 | |
MinMaxScaler | 最大最小值归一化 | |
Operator | 算子 | |
Operator Chain | 算子链 | |
Polymorphism | 多态 | |
Savepoint | N/A | |
Schema | N/A | 指对结构的描述,例如:data schema,table schema,state schema |
Setup | 设置 | 如 cluster setup 可以翻译成 "集群设置"。 |
State | 状态 | |
State Backend | N/A | |
Side output | 旁路输出 | |
Sink | N/A | 不翻译 |
Transformation | 转换/转换操作 | |
Task / Subtask | N/A | 当特指 Flink 中的运行单元时,不翻译。 |
Tuple | N/A | 当特指 Flink Tuple 对象时,不翻译。 |
Watermark | N/A | |
Window
| 窗口
|
Stateful Functions | ||
---|---|---|
Term | Chinese Simplified | Description |
Dynamic and Cyclic Messaging | 支持有环的动态消息传递 | |
Event Egress | 事件出口 | 事件从 Event Egress 流出到其他系统 |
Event Ingress | 事件入口 | 事件从 Event Egress 流入 Stateful Function 的地方 |
Function:
| 函数:
| |
Logical Address | 逻辑地址 | |
Module
| 模块
| |
Router | 路由 | 转发消息的无状态算子 |
Persistent State | 持久化状态 | Function 的本地状态 |
Stateful Functions | N/A | |
Function Dispatcher | 函数调度器 |