浅写一个 WordPress 的翻译插件

/ 0评 / 0

你说的白是什么白?

我需要一个翻译插件:一方面是因为我希望尽可能减少在中文语境里参杂英语;另一方面是因为一些英语词汇好像确实没有一个共识性的翻译,而在文章里面到处标诸如「一译」、「又译作」的说明又会让本来就不怎么流畅的行文更为磕绊;再者有些时候是因为自己的学识不够、见识不广,把已经有既有翻译的单词又生造了一个更别扭的说法出来,后面再要修改费的功夫太多;以及在很多专业文献里面,很多时候我们只能选择去使用英文原文,使用中文翻译可能会引起一些歧义。

我需要这样一个翻译插件:可以让读者自行选择是在中文里面夹英文还是用某个风味的翻译。我在写作的时候可以把这些英语短语用特殊的标记括起来,然后注上各种风味的翻译。读者则可以点击这些词汇,选择看英语还是看翻译。只需要选择一次,整篇文章出现这个短语的地方都会被替换成读者喜欢的词语。当然,如果读者认为自己有更好的翻译,也可以自行填写翻译表。

由于这种需求实在是难以向 WordPress 插件搜索框表述,所以还是得自己开发一个这样的东西。好在写这个东西似乎并不是特别困难,毕竟,上述这些问题可以全部使用前端的力量搞定。除了「翻译贡献」这个地方可能会需要用一点后端来管理。

用法和用量

要标记一个短语为翻译目标,使用 tr 简码包裹该短语。首次出现的短语需要为 tr 指定如下的参数:

之后出现的短语仍然需要用 tr 包裹,但不需要再次指定参数。

你说的白是什么白?

把这句话扔到最前面,一方面是因为想戏仿一下《你是我的眼》,把这句话歪曲成「翻译」的感觉;另一方面是确实添加了「颜色翻译」这种东西。你可以给某个词指定成颜色,这样每次提到这个词的时候,它的前面就会出现一个小色块提示这个颜色是什么颜色。实现出来类似于一些开发环境里会给色号前面加的一个小色块,比如高亮青色。如果确实有必要,还可以指定潘通颜色。

更多的小细节

不仅仅是名词,我还想涵盖专有名词,也就是人物名、作品名。

如果你和我一样喜欢对着一些「无谓的小细节」揪着不放的话,你可能会很反感在外文的作品名加书名号这种事情。我也不是很喜欢这种做法,所以在翻译作品名时,如果你选择使用中文模式,那么它会加上书名号;如果你选择使用西文模式,那么它会把书名号去掉,并将这一部分变为斜体/去斜体。对于不是作品名的专有名,比如人名和地名,在中文模式下,会用一道下划线标记这个短语;而在西文模式下则不这么做。

然后就是万年不变的老话题:字形一致性。如果你在浏览一些文章的时候,发现一些字的写法和自己熟悉的不一样(比如「关」字特别窄;比如「门」字的点变成了短竖插在顶部;比如草字头的横中间断开了),那么这基本上就是因为这个网站所使用的字形优先级是有问题的。(以及不排除一些人就是不在乎,他们直接就选一个看起来「好看」的字体直接就上了,丝毫不管这个字体适配的字形是什么。)这和 Unicode 解决字形差异的方法有关:同一个字会分配到同一个编码,具体的字形由字体绘制,Unicode 本身不指定字形。如果我们使用不同的字体的话,很可能需要面临字体之间字高度不一样的窘境。不过至少我们还有思源字体可以借用。

既然都提到字体,那么就不得不提到排版。中文排版和中英混排在网页上并不受我的控制,而是浏览器进行的呈现。为了兼容大多数浏览设备,我只能小心翼翼地提示浏览器要做什么。不过现代浏览器对于中文排版做得……勉强够用。

进阶表示形态

除了简单替换以外,我们还有一个选择是使用类似「生词提示」的展示方式。即在短语之上展示被替代的原文。这个做法在 W3C 的《中文排版需求》里是有提及[1]的。

参考资料

参考资料
1 董福興, 陳奕鈞, 刘庆等. 中文排版需求[F/OL]. W3C. (2023-11-06)[2023-11-20]. https://w3c.github.io/clreq/#h-indicating_meaning_or_other_information.

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Your comments will be submitted to a human moderator and will only be shown publicly after approval. The moderator reserves the full right to not approve any comment without reason. Please be civil.