Sea*_*inn 4 localization internationalization symfony xliff
在 Symfony 2有关翻译的文档中,所有 XLIFF 示例似乎都用作文件file.ext属性original。来自 XLIFF 1.2 的文档:
原始文件- 原始属性指定从中提取元素内容的原始文件的名称。
在 Symfony 2 的例子中,我不相信我们实际上正在提取任何内容进行翻译,但该original属性是必需的。Symfony 2 的文档中从未解释过的用法file.ext,无论它只是一个占位符并被忽略,还是它是否需要指向一个实际文件。我最好的猜测是它被 Symfony 2 忽略,但我还没有机会做任何测试或深入研究代码。
第二个问题:messages.default.yml指定一组默认翻译(例如,将其用作导出 XLIFF 翻译的原始文件)是否合适?
当谈到用于 Web 应用程序的翻译时,XLIFF 似乎有点矫枉过正......
尽管Xliff 1.2 规范和架构中需要original属性<file>,但您可以忽略它并使用虚拟字符串作为其值,以便您的文件通过架构验证。
此属性的常见用途之一是提取多个文档(.properties文件、gettext文件等)中的字符串并将其重新格式化为 Xliff 跨单元,以便将每个单独文件中的字符串放置在各自的单独<file>标签下。original属性可用于将原始文件名保留在具有多个<file>标签的 Xliff 文件中:
<?xml version="1.0" encoding="utf-8" ?>
<xliff version="1.1" xml:lang='en'>
<file source-language='en' target-language='de' datatype="plaintext" original="Sample.po">
...
<body>
<trans-unit id="1" restype="button" resname="IDC_TITLE">
<source>Title</source>
</trans-unit>
<trans-unit id="2" restype="label" resname="IDC_STATIC">
<source>&Path:</source>
</trans-unit>
...
</file>
<file source-language='en' target-language='de' datatype="plaintext" original="Sample.properties">
<trans-unit id="1" restype="label" resname="IDC_LABEL">
...
</body>
</file>
</xliff>
Run Code Online (Sandbox Code Playgroud)
我同意使用 Xliff 本地化小型 Web 应用程序通常有点大材小用,但这种格式可以说是目前用于本地化数据交换的唯一行业标准文件格式。这使得它在大规模本地化实施中非常受欢迎,无论是简单的源/目标结构文件还是高度定制和定制的文件,例如 SDL Idiom Worldserver 等翻译管理系统中使用的文件。
此外,Xliff 与OAXAL 系列的其他标准文件格式之间具有兼容性。