本建议来源于本人近期的翻译工作,并参考了身边一些人的意见。希望大家讨论。如果没有什么问题的话,今后我如果有时间大规模翻修现有 CLI 
程序的翻译的话,就按此统一格式了。

【冒号】
冒号左边的分句如果完全由英文和数字组成,则使用英文冒号,冒号后如有空格应该保留。如果冒号左边的分句含有中文字符,则使用中文冒号。

举例和理由:
“-bash: foo: 未找到命令”
冒号离左边的字符比较近,并且中文冒号一般比英文冒号高。如果用中文冒号的话不太美观,感觉和右边的中文是一个整体,和左边的英文脱离。一般冒号都是和左边的字符串一起打印的("%s:"),跟随左边字符串的语言也比较合理。更别说目前的情况是一个英文一个中文(-bash:
 
foo:未找到命令)。

“无法打开设备文件 /dev/sda:权限不够”
因为左边是一个中文句子,虽然冒号前面是英文字符,但还是使用中文冒号。

“test.c:1:10: 致命错误:foo.h: 没有那个文件或目录”
如果在 10 
的后面用中文冒号的话就不太和谐了,因为前面两个冒号是分隔符,后面也没有空格,是不宜替换为中文冒号的,于是就会出现“test.c:1:10:”这种情况。

【引号】
最外层的引号不论原文如何,均使用 ASCII 双引号“"”。内层按照中文规则交替使用 ASCII 
单引号和双引号。引号外侧如有空格应该保留(和中文标点之间没有空格)。

理由:
英文等宽字体基本上都自带引号。由于英文圆引号和中文引号是同一编码,字体选择英文等宽字体时,就算让翻译者改变打字习惯,在引号外侧加空格,也难以模拟中文引号的效果(比如内部是中文时引号高度太矮,或者引号形状像两撇而看起来明显是英文引号)。字体选择中文等宽字体时(特指
 
Noto Sans Mono CJK,文泉驿除外),则会因为字体内引号占两格而终端认为占一格而引起显示问题。所以最简单的方法就是使用 ASCII 引号。
根据 GNU 
style[1],没有说明单引号和双引号在使用条件上有什么区别,所以原文使用单引号应当是英语也可在最外层使用单引号所引起,所以除非原文中双引号和单引号的引用明显有不同的含义,可以保留原文,否则都应替换成双引号。使用“`'”这种方式已经不再被
 
GNU 推荐,所以同理。例外:原文如果在引用双引号,比如 missing `"',显然译文用 """ 有可读性问题,可以保留原文或者用 '"'。

【括号】
括号内只有英文或数字时,使用英文括号,括号外侧如有空格应当保留(和中文标点之间没有空格)。括号内含有中文时,使用中文括号。

理由:
除非使用英文宽度严格是中文一半的等宽字体(如 Noto Sans Mono Extracondensed、Inconsolata、Ubuntu 
Mono、Iosevka),否则都是中文宽度小于英文两倍,终端中每个中文字符的右侧会有一些空白。如果在英文外侧用中文括号,效果就会类似于( 
foo),在中文外侧用英文括号,效果类似于 (你 好 ),也就是括号内字符到两侧括号的距离不相同。

[1] https://www.gnu.org/prep/standards/html_node/Quote-Characters.html

Regards,
Wenbin Lv

-- 
您收到此邮件是因为您订阅了 Google 网上论坛的“i18n-zh”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到[email protected]。
要在网络上查看此讨论,请访问 
https://groups.google.com/d/msgid/i18n-zh/f283d324-1f3d-4007-b278-a9fb8588e23an%40googlegroups.com。

回复