本文件用于总结翻译英文技术文档时,如何尽可能实现信达雅。
整体目标是做到 ELI5,让读者可以一目十行地快速浏览,同时精读段落时可以保持视线连续移动而不会出现卡顿,即:
ELI5: Explain Like I'm 5 (years old)
5W1H: Who Where When What Why How
在状语和定语同时出现时,英文的语句和中文的语序经常是相反的。此时需要调整语句,以避免出现翻译腔。
原文:
The right solution for a given application depends on the purpose of the new thread and the thread's lifetime.
翻译腔:
- 正确的解决方案,对于给定的程序,依赖于新线程的用途和线程的生命周期。
- 对于给定程序的正确的解决方案,依赖于新线程的用途和线程的生命周期。
正确翻译:
对一个给定的程序,需要根据新线程的用途与线程的生命周期来决定正确的方案。
调整语句顺序时,若句式过于复杂,也容易写出虽然语序正确,但阅读时格外吃力的句子,即句式杂糅。
此时,应该使用逗号将长句进行拆分为多个子句。
原文:
- This global thread pool automatically maintains an optimal number of threads based on the number of cores in the CPU.
- The Qt Concurrent module provides high-level functions that deal with some common parallel computation patterns: map, filter, and reduce.
句式杂糅:
- 此公共线程池会自动维持基于 CPU 核心数计算的最佳值的线程数。
- Qt Concurrent 模块提供了数个用于处理一些常见的并行计算模式的高级函数:map、filter 和 reduce。
正确翻译:
- 此公共线程池会自动维持一定数量的线程,线程数为基于 CPU 核心数计算的最佳值。
- Qt Concurrent 模块提供了数个高级函数,用于处理一些常见的并行计算模式:map、filter 和 reduce。
代码
可考虑前后添加空格增加区分度,但与中文分隔符相连时,同理省略空格;的定 地状 得后补
省略主语,同时删除无法配对使用的的连词:
如果您频繁地创建或销毁线程,那么资源开销将会非常大。
如果
您频繁地创建或销毁线程,那么资源开销将会非常大。
避免平铺直叙的直译英文惯用词组,否则会产生很别扭的自造词/句,和 Chinglish 非常类似。
原文:
Each Qt application has a global thread pool, which is accessible through QThreadPool::globalInstance().
错误翻译:
每一个 Qt 程序都会自带一个公共线程池,可以通过调用 QThreadPool::globalInstance() 来获得它。
正确翻译:
每一个 Qt 程序都会自带一个公共线程池,可以通过调用 QThreadPool::globalInstance() 来获取。
介词用于连接语句的不同部分,是形成语句结构的核心部件。介词对组织起语句的 从属关系、上下文变化、内容转折 等起着至关重要的作用。
使用介词时,英文和中文的介词都需要仔细斟酌,否则极易出现错误理解,或者表意不明导致歧义。
原文:
When the script finishes running
错误翻译:
当脚本运行结束后
当……时
正确翻译:
在脚本运行结束后
在……后
定语、状语、补语都是用于修饰语句中的其它内容。当语句中出现多个被修饰对象,尤其是在同一个语句位置时,需要仔细区分修饰语的限定范围,避免意外扩大、缩小修饰范围,或导致二义性。
原文:
- QThread can either be instantiated directly or subclassed. (后两者为 be instantiated 的副词)
- When the script finishes running, it can send a reply back to the GUI thread which will invoke the WorkerScript.onMessage() signal handler.(which 用于修饰 GUI thread)
错误翻译:
- 您可以直接 实例化或子类化 QThread。(作用域改变,directly 和 be instantiated 被调换了)
- 在脚本运行结束后,WorkerScript 将会向 GUI 线程发送回复,会调用 WorkerScript.onMessage() 信号处理函数。(从句的作用对象不明,无法确定是 WorkerScript 还是 GUI 线程)
正确翻译:
- 您可以直接 实例化 QThread,或建立 子类。(保持正确的作用域,be instantiated 拆分到两个字句后,用两个词语分别描述)
- 在脚本运行结束后,WorkerScript 将会向 GUI 线程发送回复,后者会调用 WorkerScript.onMessage() 信号处理函数。(通过 后者 指明从句的作用对象)
定语、状语、补语都是用于修饰其它语句对象,并且放置的前后位置也非常灵活。
不同词性的内容翻译至中文时,通常会通过附加文字来表示词性,很容易出现词性变化,导致理解错误。
原文:
To run code in one of a QThreadPool's threads, reimplement QRunnable::run() and instantiate the subclassed QRunnable.
形容词,与 QRunnable 共同形成宾语
错误翻译:
为了将代码放入 QThreadPool 的线程中运行,可以重写 QRunnable::run() 函数并实例化继承了 QRunnable 的子类。
继承了 QRunnable 第一眼看起来是动宾结构的句式,但往后看到 的子类 时,又转换为修饰 子类 的定语。因此虽然最终含义与原文一致,但在阅读过程中发生了词性变化,同时导致出现理解错误回滚再重新解读,会严重破坏阅读的流畅性。
正确翻译:
为了将代码放入 QThreadPool 的线程中运行,可以重写 QRunnable::run() 函数并实例化继承自 QRunnable 的子类。
词性转换为副词,修饰形容词 QRunnable 的,但避免了阅读过程中的错误理解
时态在英文中,通过单词结构的直接变换来表达,偶尔会辅以介词(如 be processed
)。
但在中文中,时态和词性一样,是通过附加文字来描述的,此时很容易粗心大意导致时态发生变化,影响理解内容。
原文:
The Qt Concurrent module provides high-level functions that deal with some common parallel computation patterns: map, filter, and reduce.
一般现在时
时态错误:
公共线程池会自动维持着一定数量的线程,线程数为基于 CPU 核心数计算的最佳值。
着通常用于表示进行时,并且通常还需伴随另一个子句来共同描述一个完整的动作:
- 小明打着电话,说道……(需要配合子句)
- 小明正在打电话(现在进行时,可独立成句)
正确翻译:
此公共线程池会自动维持一定数量的线程,线程数为基于 CPU 核心数计算的最佳值。
一般现在时
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。