首页
学习
活动
专区
圈层
工具
发布

翻译LOC
EN

Stack Overflow用户
提问于 2009-11-05 19:17:51
回答 3查看 217关注 0票数 0

有没有人遇到过这样的情况:用Java编写(比方说)和由(比方说)法语程序员编写的现有代码库必须转换为说英语的程序员可以理解的代码?这里的问题是,变量/方法/类名、注释等都会使用特定的语言。

是否已经有任何自动化解决方案可用?

(我在标题中使用了单词Translate,但显然我不是指将代码移植到任何其他编程语言,也不是指i18n。)

致以敬意,

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-05 19:33:36

当然,这不是一项微不足道的任务。

我的第一个想法是

  • 获得一些工具(解析器),它将你的源代码解析成一个XML文件(或一个AST)
  • 在中间格式上做翻译,例如,你可以使用XML文件中的XPATH来查找注释,变量名等。
  • 那么这个工具当然必须支持将XML文件重新转换成javasource代码

问题:

  • Bad translations (翻译程序没有领域知识,翻译程序几乎肯定不能正确翻译计算机/编程术语、首字母缩写、输入错误的单词、camelcase方法名称等)
  • 您不能盲目翻译理想情况下您需要重构。否则,您可能会得到不再有效的源代码,因为(a:翻译将多个单词匹配到单个翻译,这可能会导致类/变量/方法具有相同的内容,等等。
  • 如何确定不翻译什么(例如,java标准库类名等)
票数 2
EN

Stack Overflow用户

发布于 2009-11-05 19:32:24

请记住,类路径名在Java (和其他一些语言)中非常敏感,执行全局“查找和替换”,听起来就像这样,很可能会破坏软件的重要方面。

例如,我使用一个产品多年,它的堆栈跟踪仍然包含公司名称以前迭代的Java类路径名称(该公司已经被收购和/或拆分至少4倍)-所以看到一个包含"iConclude“的错误,表明代码的一部分来自其第一个名称迭代(尽管它不能保证代码将是”旧的“)。同样,如果看到包含"Opsware“的错误,则表明代码的一部分来自第一次获取之后(或者,至少是在以前的命名方案下添加的代码)。

票数 1
EN

Stack Overflow用户

发布于 2009-11-05 19:27:17

我不认为您可以简单地通过某种“翻译”软件来执行基于字典的变量名称和注释的替换。我担心您要么需要一个能够解析Java的翻译软件,当它能够分离出注释、变量名、类名和潜在的消息,然后才能应用基于字典的翻译。即使在这种情况下,我也怀疑结果是否会很有吸引力,因为所说的软件很可能缺乏您需要的领域知识,以便以惯用的方式翻译术语。

我担心要产生有用的东西的唯一解决方案是聘请一位精通两种自然语言并熟悉问题领域的程序员来重写软件。其他的一切都可能造成巨大的混乱。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1679883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档