英文页面的段落末尾还留着中文的句号,单词之间夹着全角空格,整段右边缘看着参差不齐,和原版样式差了一截。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

cp languages/en_US.po languages/en_US.po.bak
sed -i 's/,/,/g; s/。/./g' languages/en_US.po
msgfmt languages/en_US.po -o languages/en_US.mo

译者直接在翻译文件里沿用了中文标点,全角符号在英文字体里占一个全角宽度,字距和换行计算都按错误宽度走,排版自然就歪了。这一点先确认清楚,后面就不用反复试。

「翻译标点混用」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。

动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

具体做法是,在翻译文件里把全角标点替换成对应的半角符号;检查译文里面是否还残留全角空格和全角括号;重新编译语言文件以后 再逐段对比换行和行宽。

改完照着核一遍,英文段落的右边缘变整齐 标点和正文的字体风格保持一致。

作者 9823189