跳到主要内容
版本:1.5.4

3.2 换行、行宽和对齐

Gettext PO 文件本身对换行不敏感,以下这几种形式都是一样的:

msgid ""
"wut?"
msgstr ""
"蛤?"

msgid "wut?"
msgstr "蛤?"

# 因为会拼接,其实连这样都行:
msgid "wu"
"t?"

不过 Unix 终端机世界中存在一行 80 列宽的传统。再去掉 diff 占用的一行,就得到了 79 列的常见标准。

既然 CLI 下进行文档编辑时需要换行,那么 CLI 下的程序翻译也需要相应换行。将 79 除以每汉字二列宽的数值,就可以知道大致每行 39 个汉字就应用 \n 换行。在翻译 GUI 程序时,如果看到了 \n 且发现行尾长度相近,也可能是提示需要手动考虑行宽度进行换行。如果使用普通文本编辑器,在使用 \n 换行时建议在 PO 代码相应位置换行以保证可读性。旧版本的本文件还提示在 HTML 中做类似处理,然而实际上应该和 GUI 情况类似——一般不大推荐 <br/> 强行换行。

CLI 下还需要注意对齐情况。一般而言,TAB 是最稳妥的对齐方式。有些程序(例如 minicom)可能会被 TAB 搞出计算错误,此时就必须手工使用空格对齐。手工对齐时,要保证自己的编辑器字体等宽且满足每汉字二列的习惯数值(插入广告:可以试试 Inziu Iosevka SC)。

永远不要在 GUI 程序中尝试增加原文没有的对齐,尤其是不要在中文词当中加空格(如 啊 啊)。如果真的想要对齐的话,那就尝试调整用词达成一致()。如果要用空格的话,那么只有宽度严格已知的空格有意义,如全角空格 (U+3000)。