1

使用 ICU 进行本地化建议将可本地化的数据保存为 XLIFF 格式。

所以我使用 GNUxgettext提取字符串来gettext格式化文件,然后将它们转换为带有po2xliff.

最后我尝试使用XLIFF To ICU ResourceBundle Format Converter将它们转换为 ICU 资源格式,在我发现它不起作用之前。它抱怨错误:

The XLIFF document is invalid, please check it first: 
Line 2, Column 68
Error: cvc-elt.1: Cannot find the declaration of element 'xliff'.

几年前报告了几乎相同的错误,但尚未修复。

糟糕的 XLIFF 文件的第 2 行是:

 <xliff xmlns="urn:oasis:names:tc:xliff:document:1.1" version="1.1">

好吧,我根据 Localizing example.xlfwith ICU 页面(示例文件中有很多拼写错误)编辑了该行,重试,结果如下:

ERROR: java.lang.NullPointerException

那么使用 ICU4C 和 XLIFF 进行本地化的最佳实践是什么?

4

2 回答 2

2

考虑到 XLIFF 到 ICU ResourceBundle 格式转换器还不支持 XLIFF 1.2(已经存在多年),我建议远离 XLIFF 并使用 po 文件进行本地化。有几种支持 po 文件的本地化工具:在这个问题这个问题的答案中,您会发现相当多的处理 po 文件的本地化工具,而且新的工具仍在开发中(比如这个)。

当然,并不是每个翻译人员都能够或愿意处理 po 文件,但是通过 po 使您的软件本地化的机会比尝试采用 XLIFF 方式要好得多。

于 2015-08-11T08:07:27.813 回答
1

我无法回答您关于使用 ICU4C 和 XLIFF 进行本地化的最佳实践的问题,但是当我在构建 ICU 资源时使用了错误版本的 Java JDK 时,我看到了“ The XLIFF document is invalid ”错误。

在我的系统上,当我使用jdk1.7.0_67. 如果我使用一切正常jdk1.6.0_45。这是 ICU 52.1。您可能需要验证您使用的 JDK 是否适用于您正在使用的 ICU 版本。

于 2015-07-28T17:03:23.570 回答