【发布时间】:2016-08-20 02:28:35
【问题描述】:
我正在将一个开源项目从中文翻译成英文,我使用 i18n(在本例中为 babel)将代码与英文和中文翻译分开。
一切都完成了,除了代码中有相当多的内联 cmets。
显然,babel 不能内联翻译 cmets(无论如何,如果这样做会相当令人讨厌。因为代码在不同语言之间不会是唯一的,因此不太容易验证。)
在我看来,有很多选择:
-
将 cmets 留在 -
专业版:帮助原作者等
骗局:让正在进行的翻译和不会说该语言的人分心
-
去掉所有的 cmets -
Pro:代码与本机语言无关,因此很有意义。谁还需要cmets?使用源,卢克!
Con:违背 SE 原则。在理解代码的工作原理方面可能会丢失一些重要的东西——也许已经做了一些事情来避免安全风险,等等。
-
在中文 cmets 附近放置英文 cmets
(例如,可能移至上面的行并以“EN”和“ZH”为前缀)。
专业版:两全其美,cmets 与代码保持密切联系
缺点:不利于字典式的翻译。使用更多语言可能会变得笨重。
-
创建评论字典/注释
专业版:将 cmets 保存在单独的文件中以便于翻译。
Con:难以与代码保持同步。更改 coe 时不直观记得更新与代码相关的 cmets。
-
在每个开发周期之前/之后为 i18n 使用不同的预处理器。
Pro:Comments et al 会使用您的语言。可以将此链接到 git pull/push,这样您就只能看到您的语言的代码。
Con:庞大、不明显的过程。可能导致代码验证甚至编译错误。
这些似乎都不是很好的解决方案。
如果您经常这样做,并且代码在不使用母语的开发人员之间公开共享,是否有推荐的方法来处理代码本身中的翻译(或不翻译)cmets ?
【问题讨论】:
标签: internationalization babeljs