XLIFF有trans-unit
' id
和resname
。对于POT / PO文件,msgid
是要翻译的文本本身,如果我理解正确的话,意味着POT / PO文件可以区分不同上下文中词汇相同的源文本(“blah” “在”foo“的背景下,在”bar“的背景下将被视为与”blah“相同。 XLIFF可以区分两者,每个都有自己的trans-unit
' id
。
我知道没有运行时库可以访问XLIFF文件来获取翻译文本,看来那里的所有API只知道*.mo
文件,从*.po
文件生成的二进制格式,所以我猜即使一个人使用XLIFF进行翻译(无论是自制翻译还是翻译给付费人员的翻译),他/她必须将生成的翻译转换为*.po
或*.mo
文件。
第二段中的假设是否正确?如果不是,那么避免这种转换的方法是什么?如果它是正确的,那么在第一段中的评论之后,这种转换在技术上是如何工作的,最重要的是,它可以 - 或者如何 - 它保持相似的看起来文本之间的区别,然而由于上下文,它们在语义上是不同的? / p>
关于这篇文章的注意事项:我知道这篇文章中有两个问题,但由于两者都是相互关联的,我没有看到一个明确的方式将其发布为两个问题(其中会显得无关。)
对于上下文,自msgctx
0.15以来就存在gettext
,这是自2006年7月以来。但我无法在gettext
中看到任何上下文参数Python3。如果不支持(或不广泛支持),这并不比没有支持更好。我对此感到谨慎。
答案 0 :(得分:1)
对于XLIFF的翻译,您可以尝试http://virtaal.translatehouse.org/。 它是免费的,它支持gettext和xliff。
修改强>
我碰巧在po和xliff之间找到了这种比较:http://docs.oasis-open.org/xliff/v1.2/xliff-profile-po/xliff-profile-po-1.2-cd02.html#s.general_considerations