需要编写用于基于给定主文件创建键值对本地化文件的脚本

时间:2012-11-05 09:05:28

标签: java php yaml

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

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

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

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

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

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

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