【问题标题】:Translating code comments written in another spoken language翻译用另一种口语编写的代码注释
【发布时间】:2011-03-07 09:46:32
【问题描述】:

我刚刚从一位德国程序员那里继承了一些 C 代码,而且所有的 cmets 自然都是德语的。由于我忘记了大部分高中德语,这是一个小问题。

有没有人知道任何可以识别代码的翻译工具?意味着它只会翻译 cmets 内的语言?该项目有很多文件,能够一次对所有文件进行操作也很棒。

我目前正在复制粘贴到 Google 翻译中,虽然这不太理想,但至少可以为我找到一些答案。

【问题讨论】:

  • arg,遇到了类似的问题。你找到解决方案了吗?
  • 不幸的是,没有。正如下面 Pekka 和 Sean 所建议的那样,我曾短暂地考虑过编写一个工具来做这件事,但我最终只是用谷歌翻译艰难地完成了它。事实上,最大的问题最终不是 cmets,而是变量名!我们都被告知单字母变量名是可怕的选择,但是当变量名是另一种语言时,它们可能是“foo”、“bar”或“x”!
  • 哈,野蛮……
  • 一直想知道不懂英文的人是怎么做到的
  • 我想,和说英语的人写代码的方式是一样的。在我们的案例中,该软件是由德国人在德国为其他德国人编写的。另外,作者的英语比我的德语好得多,所以我放他一马。我不能因为 cmets 和变量名而责怪作者,但是错误是另一回事!

标签: translate comments spoken-language


【解决方案1】:

从广义上讲,这应该可以使用谷歌翻译的Ajax API 和一个可以处理回调的正则表达式函数来完成——我认为 JS 的内置正则表达式函数不能胜任这项任务,但我确定在那里那里有图书馆。您必须构建一个正则表达式来隔离 cmets,将每个块发送到 API,并在回调函数中返回翻译结果。

【讨论】:

    【解决方案2】:

    我只知道如何在 java 中执行此操作,但我确信在 C 中也有一种方法可以执行此操作,因为存在工具:

    1. 找一个能理解 C 源文件的解析器(this one 听起来不错,但我对 C 了解不多)
    2. 构建语法树。遍历树的所有节点,用翻译后的文本替换所有评论节点的文本。
    3. 将树写回新的源文件(可能在不同的目录中)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-04
      • 2011-01-04
      • 2014-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多