2017-05-03 65 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

是的,同意了。 (我提出了這個問題,有一天我可能會抽出時間打開公關。) –