2013-02-25 39 views
4

在Symfony 2的documentation regarding translations中,所有XLIFF示例似乎都使用file.ext作爲original文件屬性。從XLIFF 1.2的文檔:我應該在Symfony 2中使用什麼作爲XLIFF原始文件?

原始文件 - 原始屬性指定從中元素的內容已被提取 原始文件的名稱。

在Symfony 2的情況下,我不相信我們實際上是提取任何翻譯內容,但original屬性是必需的。 Symfony 2的文檔從未解釋過使用file.ext,無論它是簡單的佔位符還是忽略,還是需要指向實際的文件。我最好的猜測是Symfony 2忽略了它,但我沒有機會做任何測試或在代碼中挖掘。

第二個問題:指定一組默認的翻譯是否合適? messages.default.yml並將其用作派生XLIFF翻譯的原始文件?

XLIFF似乎有點小題大做一點,當談到翻譯與Web應用程序使用...

+0

對於第二個問題,我想可以創建'messages.default.yml',但我沒有看到這一點。您可以在'parameters.ini'中指定默認的語言環境,並且該語言環境應該是從中派生出翻譯的文件。 – cheesemacfly 2013-02-25 16:51:21

+0

很公平,是的,我可以(和_should_)在應用程序的配置中指定默認的語言環境。 – 2013-02-25 16:58:57

回答

4

雖然XLIFF 1.2規範和架構是必需的<file>original屬性,你可以忽略它,有一個假字符串作爲其值,以便您的文件通過架構驗證。

一個該屬性的常見的用途是,當被提取和重新格式化爲XLIFF從多個文檔中的字符串(.properties文件,gettext文件等)反式單元,使得從每個單獨的文件中的字符串被置於下各自的個人<file>標籤。 original屬性可以用來保持在XLIFF文件中的原始文件名與多個<file>標籤:

<?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之間存在兼容性。

+1

感謝您的信息反饋!我在開發過程中避免了本地化的話題,部分原因是因爲我想使用Xfliff,但是它也很嚇人。很高興知道'original'文件屬性或多或少是任意的。 – 2013-04-12 13:32:44

+1

隨時。你說得對。除了基礎知識以外,不要太注意規範。它只是充滿了很少使用的功能。總而言之,簡化的Xliff可以簡化可擴展的本地化工作。常用的功能討論[這裏](http://www.opentag.com/xliff.htm)。 – Shervin 2013-04-12 16:09:52

相關問題