编辑 : 我完全重新写了这个问题,因为在我的前两个版本中似乎我不够清楚。 感谢您到目前为止的建议。
我想国际化源代码 对于教程项目(请注意,不是运行时应用程序)。这是一个示例(在 Java 中):
/** A comment */
public String doSomething() {
System.out.println("Something was done successfully");
}
在 English ,然后有法语版本是这样的:
/** 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 建议的):
我只是很惊讶现在还没有一个工具可以做到这一点。
最佳答案
我会使用唯一的字符串作为方法名(或者任何你想被本地化版本替换的东西。
public String m37hod_1() {
System.out.println(m355a6e_1);
}
然后我会为每种语言定义一个属性文件,如下所示:
m37hod_1=doSomething
m355a6e_1="Something was done successfully"
然后我会编写一个小程序来解析源文件并替换字符串。所以一切都在 eclipse 之外。
或者我会使用 Ant 任务 Replace和属性文件,而不是独立的翻译程序。
类似的东西:
<replace
file="${src}/*.*"
value="defaultvalue"
propertyFile="${language}.properties">
<replacefilter
token="m37hod_1"
property="m37hod_1"/>
<replacefilter
token="m355a6e_1"
property="m355a6e_1"/>
</replace>
使用其中一种方法,您无需在教程中解释任何有关本地化的内容(除非您愿意),但可以专注于您的实际主题。
关于eclipse - 如何国际化java源代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11103976/