本文目录导读:

翻译开源项目的错误信息时,需要兼顾技术准确性、简洁性和用户可理解性,以下是一些常见的翻译原则、技巧以及具体的术语翻译建议:
核心翻译原则
- 保持技术准确性:不要随意意译。
NullPointerException必须翻译为“空指针异常”,而不是“空值错误”。 - 保留变量占位符:代码中的
%s、{0}、$variable等占位符必须原样保留,不能翻译。 - 保持格式和标点:英文的冒号、引号、方括号通常保留;句号根据中文习惯可以保留或省略(中文错误信息传统上不加句号)。
- 专业术语统一:在同一个项目或生态内,术语必须一致(
Node不能一会儿叫“节点”,一会儿叫“结点”)。
常见错误信息术语翻译对照表
| 英文术语 | 建议中文翻译 | 说明 |
|---|---|---|
| Error | 错误 | 一般情况 |
| Exception | 异常 | 程序运行时抛出的异常 |
| Warning | 警告 | 不影响运行但需要关注 |
| Fatal | 致命错误 | 导致程序终止 |
| Invalid | 无效 / 非法 | Invalid argument -> 无效参数 |
| Not Found | 未找到 | File not found -> 文件未找到 |
| Permission denied | 权限不足 / 拒绝访问 | 不建议直译为“权限被拒绝” |
| Timeout | 超时 | Connection timeout -> 连接超时 |
| Failed to ... | 无法 ... / ... 失败 | Failed to connect -> 连接失败 |
| Null / None | 空 / 无 | Null value -> 空值 |
| Syntax | 语法 | Syntax error -> 语法错误 |
| Cluster | 集群 | 分布式系统中的术语 |
| Runtime | 运行时 | Runtime exception -> 运行时异常 |
| Cache | 缓存 | 注意不要误译为“隐藏”或“贮藏” |
不同句子结构的翻译技巧
主谓宾结构(常见于描述状态)
- 英文:
The file does not exist. - 中文:
文件不存在。- 技巧:省略定冠词“The”,使用主动或判断句式。
祈使句(常见于用户操作提示)
- 英文:
Please specify a valid directory. - 中文:
请指定一个有效的目录。- 技巧:保留“请”字,直接翻译动作。
被动语态(英文常用,中文要改主动)
- 英文:
An unexpected error was encountered. - 中文:
遇到了意外错误。或发生意外错误。- 技巧:将“was encountered”翻译为“遇到”或“发生”,去掉“被”。
参数化信息(包含变量)
- 英文:
Error: Cannot connect to server %s at port %d. - 中文:
错误:无法连接到服务器 %s,端口 %d。- 技巧:保留
%s和%d,语序调整至符合中文习惯。
- 技巧:保留
技术栈名词(特定框架术语)
- 英文:
JSON Parse Error: Unexpected token < in JSON at position 0 - 中文:
JSON 解析错误:在位置 0 处发现非预期的标记 <- 技巧:
Parse翻译为“解析”,Unexpected token翻译为“非预期的标记”。
- 技巧:
几个常见开源项目错误信息翻译示例
| 英文原文(模拟) | 直译 | 专业润色翻译 |
|---|---|---|
FATAL: cannot open file of type 'log' |
致命:不能打开类型为'日志'的文件 | 致命错误:无法打开“log”类型的文件 |
WARNING: The disk is almost full. |
警告:磁盘几乎满了。 | 警告:磁盘空间即将用尽。 |
Error 500: Internal Server Error |
错误 500:内部服务器错误 | 错误 500:服务器内部错误 |
Operation timed out after 30000 milliseconds |
操作在 30000 毫秒后超时 | 操作超时(30000 毫秒后) |
Cannot find module 'react' |
不能发现模块 'react' | 找不到模块 “react” |
翻译流程建议(适用于团队或 PR)
- 提取源字符串:从
.properties、.json、.po或代码中的gettext()提取。 - 逐条翻译:遵循上述原则,保留变量和标签。
- 上下文审查:错误的翻译往往发生在缺乏上下文时(
bus在“USB bus”中译为“总线”,在“bus error”中可能是“总线错误”,而在“bus stop”中才指“公交车”)。 - 技术校对:最好由了解该功能的开发者或高级用户校对,确保不会造成误解(例如将“数据库连接池”误解为“数据库池”)。
- 保持一致性:使用术语表工具(如 Crowdin, Transifex)或规范文档。
总结一句诀窍:
“术语准确,语序通顺,保留占位,标点适中。”
如果需要翻译某个具体的开源项目(如 Node.js, Python, Docker, Git 或某个特定库)的错误信息,可以直接提供原文,我会更精准地帮你翻译。