symfony - 我应该在 Symfony 2 中使用什么作为 XLIFF 原始文件?

标签 symfony localization internationalization xliff

在 Symfony 2 的 documentation regarding translations所有 XLIFF 示例似乎都使用了 file.ext作为 original文件属性。来自 XLIFF 1.2 的文档:

Original file - The original attribute specifies the name of the original file from which the contents of a element has been extracted.



在 Symfony 2 的案例中,我不相信我们实际上是在提取任何内容进行翻译,但 original属性是必需的。 file.ext的用法Symfony 2 的文档中从未解释过,无论它只是一个占位符并被忽略,还是它是否需要指向一个实际的文件。我最好的猜测是 Symfony 2 忽略了它,但我没有机会进行任何测试或深入研究代码。

第二个问题:指定一组默认翻译是否合适,例如messages.default.yml并将其用作衍生 XLIFF 翻译的原始文件?

在与 Web 应用程序一起使用的翻译方面,XLIFF 似乎有点矫枉过正......

最佳答案

虽然 original <file> 的属性在 Xliff 1.2 规范和架构中是必需的,您可以忽略它并使用一个虚拟字符串作为其值,以便您的文件通过架构验证。

此属性的常见用途之一是提取来自多个文档(.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>&amp;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>

我同意使用 Xliff 本地化小型 Web 应用程序通常有点矫枉过正,但这种格式可以说是目前唯一用于本地化数据交换的行业标准文件格式。这使得它在大规模本地化实现中非常受欢迎,无论是简单的源/目标结构文件还是高度定制和定制的文件,例如在 SDL Idiom Worldserver 等翻译管理系统中使用的文件。

此外,Xliff 与 OAXAL family 的其他标准文件格式之间存在兼容性。 .

关于symfony - 我应该在 Symfony 2 中使用什么作为 XLIFF 原始文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15071272/

相关文章:

Symfony 反规范化 : Recursive Denormalization not working

symfony - 使用 phpStorm 在 Symfony 3.2.4 中进行功能测试

swift - 自定义本地日期格式

ios - 在运行的应用程序中为 Storyboard中的 View 元素切换语言

Django i18n url 不适用于 en-us 子语言

mysql - 为什么 ruby​​ 检测不到无效编码而 mysql 检测到?

validation - 如何将参数传递给翻译的验证错误消息

php - 带有连接的 Doctrine DQL 条件查询

mysql - 在 symfony2 中使用控制台时如何选择与数据库的连接

eclipse - Lint : How to ignore "<key> is not translated in <language>" errors?