0

我有 9 种语言的键值格式(.java 文件)的本地化资源文件。我需要根据英文文件(en.yml)中存在的键创建 9 个其他本地化文件。后一个就像前一个的子集,可能包含一些额外的键。基于 en.yml 文件中给出的键,我需要从 java 文件中选择字符串(对于所有 9 个文件)并创建相应的本地化(yml)文件对于每种语言。

我需要编写一个脚本,我可以随时运行它来创建基于英文 yml 文件的 yml 文件,从上面提到的基本 java 文件中挑选字符串。

任何机构都可以帮助我编写脚本。哪种语言会更好?

4

2 回答 2

0

如果我正确理解您的问题;您有 9 个带有翻译值的 .java 文件(.properties 格式?),以及一个带有英文字符串的 .yml 文件。您正在寻找一个与 .java 文件中的值匹配的脚本,并根据英文 .yml 文件中的键将它们写入新的 .yml 文件。

你说你需要一个可以随时运行的脚本。我认为这是因为可能的未来更新,以及管理所有翻译等?

如果您必须处理多个翻译,我认为最好保留一个单独的翻译电子表格或数据库,并使用它来生成您需要的文件。这更容易,因为您可以在一个中心位置添加或更新值,并且您可以编写脚本或宏来生成您需要的翻译文件(.strings 或 .xml 或其他)。

于 2012-11-05T12:41:50.137 回答
0

加载英文属性文件:

Properties properties = new Properties();
try {
   properties.load(new FileInputStream("path/filename"));
 } catch (IOException e) {
   ...
 }

对于您需要支持的每种语言:创建名为 %filename%_%LANG%.properties 的 .properties 文件。加载相关语言特定属性。遍历您的英语键枚举并将相应的(特定于语言的)值放入本地化文件中:

// create localized .properties file and load values for look-up
for(String key : properties.stringPropertyNames()) {
   String value = properties.getProperty(key);
   // put the value in the localized file;
}
于 2012-11-05T09:16:06.337 回答