Internationalization 在执行i18n时处理代码中的注释

Internationalization 在执行i18n时处理代码中的注释,internationalization,babeljs,Internationalization,Babeljs,我正在将一个开源项目从中文翻译成英文,我使用了i18n(在本例中是babel)将代码与中英文翻译分开 一切都完成了,除了代码中有大量的内联注释 显然,babel不能内联翻译注释(无论如何,如果它这样做了,那将是相当令人讨厌的。因为代码在不同语言之间不是唯一的,因此不容易验证) 在我看来,有很多选择: 在中留下评论 赞成:帮助原创作者等 缺点:这会分散正在进行的翻译和不会说这种语言的人的注意力 删除所有评论- 赞成:代码与本机语言无关,所以它是有意义的。谁还需要评论?使用来源,卢克 缺点:违反SE

我正在将一个开源项目从中文翻译成英文,我使用了i18n(在本例中是babel)将代码与中英文翻译分开

一切都完成了,除了代码中有大量的内联注释

显然,babel不能内联翻译注释(无论如何,如果它这样做了,那将是相当令人讨厌的。因为代码在不同语言之间不是唯一的,因此不容易验证)

在我看来,有很多选择:

  • 中留下评论

    赞成:帮助原创作者等

    缺点:这会分散正在进行的翻译和不会说这种语言的人的注意力

  • 删除所有评论-

    赞成:代码与本机语言无关,所以它是有意义的。谁还需要评论?使用来源,卢克

    缺点:违反SE原则。在理解代码如何工作时可能会丢失一些重要的东西-可能是为了避免安全风险而做了一些事情,等等

  • 将英文评论放在中文评论旁边

    (例如,可能移到上面的行并以“EN”和“ZH”作为前缀)

    赞成:两全其美,注释与代码保持一致

    缺点:不利于字典式翻译。使用更多的语言可能会变得笨重

  • 创建注释词典/注释

    优点:将注释保存在单独的文件中,以便于翻译

    缺点:很难与代码保持同步。在更改coe时,记住更新与代码相关的注释并不直观

  • 在每个开发周期之前/之后为i18n使用不同的预处理器。

    赞成:评论等都是用你的语言。可以将此链接到git pull/push,这样您就只能看到您语言中的代码

    缺点:笨重,不明显的过程。可能导致代码验证甚至编译错误

  • 这些似乎都不是很好的解决方案


    如果您做了很多这样的事情,并且代码是在不使用母语的开发人员之间公开共享的,那么有没有推荐的方法来处理代码本身中的注释翻译(或不翻译)?我不确定我是否理解。。。你说你把代码和语言部分分开了。所以现在您应该有代码(带注释)+英语资源+中文资源(我使用了用于存储可本地化内容的编程语言的资源)


    翻译人员只看到资源,而不看到代码,也不看到注释。对于开发者来说,这些评论没有翻译。

    我不确定我是否理解。。。你说你把代码和语言部分分开了。所以现在您应该有代码(带注释)+英语资源+中文资源(我使用了用于存储可本地化内容的编程语言的资源)


    翻译人员只看到资源,而不看到代码,也不看到注释。对于开发者来说,这些评论没有翻译。

    简短回答

    这似乎是以下因素的混合:

  • 去掉所有的评论,然后
  • 将英文注释放在中文注释附近
  • 内联评论几乎总是琐碎的-去掉它们

    功能性的评论没有侵入性-翻译它们(可能带有i18n前缀,例如“[cn]:”或“[en]:”)

    解释

    我的少量研究倾向于建议大型项目大力减少注释,让代码自行解释,而不是关注代码质量,从而减少注释需求

    e、 g.从以下方面:

    千万不要试图在注释中解释你的代码是如何工作的:它非常有用 最好编写代码,使工作的显而易见,并且 解释写得不好的代码是浪费时间

    …并从以下方面:

    当您执行其他人可能认为是错误的操作时,请对代码进行注释 不平凡

    这两个标准(以及其他标准)都建议使用最小的函数描述,因此这对理解代码来说并不那么麻烦,而且,由于函数描述通常是多行的,并且在代码本身之上,因此可以根据需要包括多种语言


    也许有人在某处建立了一个界面,可以将评论隔离到读者语言中,但我(还)找不到任何这样做的界面。

    简短回答

    这似乎是以下因素的混合:

  • 去掉所有的评论,然后
  • 将英文注释放在中文注释附近
  • 内联评论几乎总是琐碎的-去掉它们

    功能性的评论没有侵入性-翻译它们(可能带有i18n前缀,例如“[cn]:”或“[en]:”)

    解释

    我的少量研究倾向于建议大型项目大力减少注释,让代码自行解释,而不是关注代码质量,从而减少注释需求

    e、 g.从以下方面:

    千万不要试图在注释中解释你的代码是如何工作的:它非常有用 最好编写代码,使工作的显而易见,并且 解释写得不好的代码是浪费时间

    …并从以下方面:

    当您执行其他人可能认为是错误的操作时,请对代码进行注释 不平凡

    这两个标准(以及其他标准)都建议使用最小的函数描述,因此这对理解代码来说并不那么麻烦,而且,由于函数描述通常是多行的,并且在代码本身之上,因此可以根据需要包括多种语言

    也许有人,某个地方已经建立了一个界面,可以将评论隔离到读者语言中,但我(还)不能