如何用Okapi Framework/Rainbow将含已有翻译的Java I18N Properties转XLIFF
我经常用Okapi Framework/Rainbow处理这类本地化整合任务,刚好能给你梳理出清晰的分步流程,一步步来就能搞定:
前期准备
- 确保你已经安装了Okapi Framework/Rainbow(建议用最新稳定版,避免兼容性问题)
- 将你的两个属性文件放在同一个干净的文件夹中(比如命名为
i18n_resources),路径尽量不要包含特殊字符或空格,防止出现解析异常
构建Rainbow处理管线
1. 新建空白管线
打开Rainbow后,点击顶部菜单栏的 File → New Pipeline,创建一个空的处理流程。
2. 添加「Properties Filter」解析步骤
这一步是用来读取源属性文件并关联已有翻译的核心环节:
- 在左侧的Steps Library中找到
Properties Filter,拖到右侧的Pipeline Steps区域 - 双击这个步骤打开配置窗口:
- 设置Source Language为
en(对应你的源文件语言) - 勾选Copy Target from Existing Resource选项,这是关键——它会让Rainbow自动读取已有翻译
- 在Existing Resource下拉框中选择你的
main_de.properties文件 - 确认Encoding设置为
UTF-8(如果你的文件用了其他编码,要对应调整,避免乱码) - 其他保持默认配置即可
- 设置Source Language为
3. 添加「XLIFF Writer」输出步骤
这一步负责生成最终的XLIFF文件:
- 在左侧Steps Library中找到
XLIFF Writer,拖到Pipeline Steps的末尾(放在Properties Filter之后) - 双击配置:
- 设置Target Language为
de(目标翻译语言) - 在Output File中指定生成的XLIFF文件路径和名称,比如
main_en_de.xlf - 勾选Include Approved Translations,让已有翻译被标记为已确认状态
- XLIFF版本可以选1.2或2.0,根据你后续使用的翻译工具兼容性选择即可
- 设置Target Language为
4. 指定输入文件
在Pipeline窗口的Input Files区域,点击Add按钮,选择你的源文件main_en.properties。
5. 运行管线
点击窗口顶部的Run按钮,等待处理完成——Rainbow会自动完成源文件解析、已有翻译匹配、XLIFF生成的全流程。
验证输出结果
处理完成后,打开生成的XLIFF文件检查:
- 所有
main_en.properties中的键都会被完整包含 - 对应
main_de.properties里已有的翻译,会填充到<target>标签中,并且通常标记为state="approved" - 未翻译的键,
<target>标签会保持为空(或未翻译状态)
如果遇到编码乱码、翻译未匹配的问题,优先检查Properties Filter的编码设置,以及两个属性文件的键名是否完全一致(大小写、空格都要严格匹配)。
内容的提问来源于stack exchange,提问作者froethen
相关产品推荐
相关产品推荐

