使用英文还是中文(半角/全角)的标点符号,更直接的原因是看这个标点符号是用在哪个语境下。这是所有中西文混排的原则。你所列举的例子是一些表现而非原因,倒推用法会出错。
比如括号,在中文里,它的作用是对主句的补充说明,这个括号放到中文句子里就要用全角的,而不是看括号里面的内容。一些命令中也会包含括号,这时的括号要跟随命令使用英文的半角形式。 同理适用于冒号,你要看这个冒号是哪个语境下的使用,比如这句“-bash: foo: 未找到命令”,第一个冒号处于命令(英文)这个子语境中中,使用半角;而第二个冒号服务于整句,整句面向中文用户的,应该使用全角形式。 关于引号,一些终端模拟器有个兼容性选项,用以设定不明宽度字符的显示宽度,设置为宽字符可以解决部分问题。 在2021年12月24日星期五 UTC+8 23:09:34<Wenbin Lv> 写道: > 本建议来源于本人近期的翻译工作,并参考了身边一些人的意见。希望大家讨论。如果没有什么问题的话,今后我如果有时间大规模翻修现有 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/6b37f962-ab6d-4b57-af1b-935417fc8541n%40googlegroups.com。
