2017-05-03 62 views
1

我在我的Symfony框架项目中使用了“消息代码”,例如“person.name”。我使用相应的xliff消息代码文件。由于这是用作索引的消息代码,因此设置“源语言”属性的正确或正常方法是什么。如这里:使用<source>属性的消息代码时的XLIFF源语言设置

<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> 
    <file source-language="en" target-language="de" datatype="plaintext" original="file.ext"> 
     <body> 
      <trans-unit id="person.name"> 
       <source>person.name</source> 
       <target>Name</target> 
      </trans-unit> 
     </body> 
    </file> 
</xliff> 

回答

0

每BCP47,你应该能够使用und(未确定),但我强烈建议不要使用您正在使用(该方法来填充source用绳子ID或你所提到的“什么消息代码“)。其原因是Xliff旨在成为一种双语言并行资源,可以根据字符串ID或源语言或目标语言轻松解析每种语言的翻译。翻译人员使用的工具以这种方式消耗Xliff,并向翻译人员提供source标记上的内容作为源语言,并且他们应该根据该源字符串填充target的内容。

如果使用字符串ID填充source,则会导致失败。使用XLIFF你的榜样的常用方法是:

<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> 
    <file source-language="en" target-language="de" datatype="plaintext" original="file.ext"> 
     <body> 
      <trans-unit id="person.name"> 
       <source>Name</source> 
       <target>Vorname</target> 
      </trans-unit> 
      <trans-unit id="person.surname"> 
       <source>Surname</source> 
       <target>Nachname</target> 
      </trans-unit> 
     </body> 
    </file> 
</xliff> 
+1

使用的ID是一个已知问题的Symfony,看到https://github.com/symfony/symfony/issues/20076#issuecomment-294126923 –

+0

对。不知道。看起来像维护人员对Xliff这样的双语文件格式如何工作以及它如何与其他工具互换的误解。显然,我应该能够:(a)通过查找源字符串来查找目标字符串,(b)通过查找目标字符串来查找源字符串,以及(c)使用resname查找源和目标对。 – Shervin

+0

是的,同意了。 (我提出了这个问题,有一天我可能会抽出时间打开公关。) –