【发布时间】:2012-06-21 16:04:45
【问题描述】:
编辑:我完全重写了这个问题,因为我的前两个版本似乎不够清楚。 感谢迄今为止的建议。
我想国际化一个教程项目的源代码(请注意,不是运行时应用程序)。这是一个例子(Java):
/** A comment */
public String doSomething() {
System.out.println("Something was done successfully");
}
用英语,然后有法语版本是这样的:
/** Un commentaire */
public String faitQuelqueChose() {
System.out.println("Quelque chose a été fait avec succès.");
}
等等。然后在某处有一个属性文件之类的东西来使用常用工具编辑这些翻译,例如:
com.foo.class.comment1=A comment
com.foo.class.method1=doSomething
com.foo.class.string1=Something was done successfully
对于其他语言:
com.foo.class.comment1=Un commentaire
com.foo.class.method1=faitQuelqueChose
com.foo.class.string1=Quelque chose a été fait avec succès.
我正在尝试找到最简单、最有效和不显眼的方法,用最少的人工繁重的工作(除了明显地翻译实际文本)来做到这一点。最好在 Eclipse 下工作。例如,原始代码将用英语编写,然后外部化(到属性,最好保持原始源不变),翻译(人工)然后重新生成(作为单独的源文件/项目)。
我发现的一些小径(AlexS 建议的除外):
- AntLR,一个语言解析器/生成器。好像有支持Eclipse plugin
- 使用Eclipse's AST(抽象语法树),我猜想构建某种插件。
我只是很惊讶没有一个工具可以做到这一点。
【问题讨论】:
-
开发者必须懂英语。整个标准 Java API 都是英文的,他们将使用的 99.9% 的外部库也是如此。如果他们不懂英语,他们最好尽快学习。在面向开发人员的教程中,我不会费心翻译 Java 代码。
-
不要学习他们的坏习惯。每个程序员都必须能看懂英文代码
-
@AlexS:作为波兰人,我已经阅读了许多波兰语讲座、教程和教科书,我必须承认我非常讨厌翻译变量、类和方法名称。英文关键字看起来很奇怪。此外,没有办法坚持有效的语法规则,这更让人痛苦。我真的很感谢人们保持代码不变(你总是可以详细描述它,无论如何你应该做什么)。
-
请不要把这变成一场徒劳的哲学辩论。如果我想将源代码翻译成不同的语言,这是我的权利,这就是我要问的如何有效地做到这一点。谢谢。
标签: eclipse internationalization antlr abstract-syntax-tree