我想知道trans-unit
标签上的 ID 在 XLF 文件中与 Symfony/PHP 一起使用时是否很重要?它们在文件中应该是唯一的吗?跨文件?使用什么字符串/整数有关系吗?我找不到关于它们的用途(如果有的话)的文档,包括在Wikipedia上。
这可能是一个更通用的问题,但我目前正在使用 Symfony (PHP)。
对于 Symfony,它们无关紧要。Symfony 实际上并不真正支持 Xliff,它只知道如何从文件中提取 2 个元素并将其转换为 key -> value 数组,就像所有其他格式一样。
但是,如果您要使用翻译工具(您可能会使用,否则您选择了更简单的格式),那么您需要遵循Xliff 规范:
所需的 id 属性用于唯一标识
<trans-unit>
inside all<trans-unit>
和<bin-unit>
相同的元素<file>
。...(来自 id 规格):
[...] id 元素的值由创建 XLIFF 文档的工具确定。[...]
值说明:文本。请注意,虽然允许,但标识符中通常不使用空格。
如果我有所需的声誉,我会在 Wouter J 的回答下发表评论,但由于情况并非如此,这里有另一个答案。
您选择的格式应该适用于您和您的翻译人员。如果您查看https://en.wikipedia.org/wiki/Computer-assisted_translation#Some_notable_CAT_tools,您会看到许多翻译工具都内置了对 XLIFF 的支持,而没有一个支持 YAML。另一方面,其中一些工具允许对输入文件进行基于正则表达式的解析,因此您可能应该与您的翻译人员讨论他更喜欢使用哪种格式:将一组正则表达式规则放在一起处理 YAML 可能比他更适合他不得不处理糟糕的 XLIFF(以及 Wouter J 链接中的 XLIFF 示例有一些改进的余地)。