首页 > 如何应对软件国际化与本地化当中的“一词多义”问题?

如何应对软件国际化与本地化当中的“一词多义”问题?

这个问题是我在使用Arduino IDE时注意到的。

在这个图中,菜单中“程序员”(Programmer)明显就是一个错译。“Programmer”在这里明显指的是为电子芯片烧录编程(program)的设备“编程器”。

当然这个很好修正,因为IDE里也没有其他的programmer出现,fork-PR就行了……

但我在想一个事情:如果相同原语言(通常是英语)的词汇,在程序中的不同地方,翻译到其他语言时需要给出不同的翻译,那么应该怎么做?

向各位开发人讨教方法。

本问题仅仅是思想方法讨论,不针对任何特定需求。欢迎用任何语言的实现举例。


如果翻译者看到

Programmers
Programmers

这样的字符串而不知哪个词出自哪里,自然很难进行翻译工作。

很多成熟的翻译框架,比如 GNU/gettext 和 Qt 的本地化机制,都允许为可翻译字符串的构造函数,添加一个“上下文”的可选参数(context)。而且,翻译工具默认也会有文件与行号的信息,甚至可以预览翻译后的界面。

Programmers | about.cpp:12 | (Job)
Programmers | flash_bios.cpp:21

这样,翻译者在看到词语的同时,也会看到开发者自己写的备注与文件名和行号信息。就可以找到上下文,从而避免误译了。

【热门文章】
【热门文章】