XLIFF 1.1 與 1.2

備註

XLIFF 2.0 是個不同的格式並且不向下相容於 XLIFF 1.2。

建立基於 XML 的格式來標準化翻譯檔案,但最終它是該領域中 許多標準 之一。

XML Localization Interchange File Format (XLIFF) 通常用作雙語言格式,但 Weblate 也支援其作為單語言格式。

Weblate 支援數種變體的 XLIFF:

XLIFF 1.2 翻譯檔案

簡單的 XLIFF 檔案,其中元素的內容儲存為純文字(所有 XML 元素都被逸出)。

支援 placeables 的 XLIFF 1.2

支援可置入項目及其他 XML 元素的標準 XLIFF。

帶 gettext 擴充套件的 XLIFF 1.2

XLIFF 1.2 Representation Guide for Gettext PO 擴充的 XLIFF,可支援複數形式。

含 Apple 擴充套件的 XLIFF 1.2

由 Apple 擴充以支援複數形式的 XLIFF。

翻譯狀態

檔案中的 state 屬性會經過部分處理,並對應至 Weblate 的 "Needs edit"(需要編輯)狀態(若存在目標內容,下列狀態會將字串標記為需要編輯:newneeds-translationneeds-adaptationneeds-l10n)。如果應省略 state 屬性,只要存在 <target> 元素,就會將字串視為需要翻譯。

如果翻譯字串具有 approved="yes" ,那麼它還將被匯入Weblate 作為"Approved"(同意的),任何其它內容被匯入作為"Waiting for review" (等待複核,這與XLIFF 規範相符)。

當儲存時,Weblate 如無必要不會新增其它屬性:

  • state 屬性只在字串標記為需要編輯的情況下新增。

  • approved 屬性只在字串已經被複查的情況下新增。

  • 在其它情況下不新增屬性,但在它們出現的情況下更新。

這表示當使用 XLIFF 格式時,強烈建議打開 Weblate 審查過程,從而能看到並變更字串的檢閱狀態。

相似地在匯入這樣的檔案時(在上傳表格中),應該選擇 Processing of strings needing edit 之下的 Import as translated

也參考

專門的檢閱者

XLIFF 中的空白字元和新行符

XML 格式通常不區分空白的類型或數量。若要保留空白,必須在字串中加入 xml:space="preserve" 旗標。

例如:

    <trans-unit id="10" approved="yes">
        <source xml:space="preserve">hello</source>
        <target xml:space="preserve">Hello, world!
</target>
    </trans-unit>

指定翻譯旗標

還可以通過使用 weblate-flags 屬性指定附加的翻譯標記(請參閱 使用旗標自訂行為)。 Weblate 還理解來自 XLIFF 規範的 maxwidthfont 屬性:

<trans-unit id="10" maxwidth="100" size-unit="pixel" font="ubuntu;22;bold">
   <source>Hello %s</source>
</trans-unit>
<trans-unit id="20" maxwidth="100" size-unit="char" weblate-flags="c-format">
   <source>Hello %s</source>
</trans-unit>

解析 font 屬性用於字型集、尺寸和粗細,上面的範例顯示了全部,儘管只需要字元集。字元集中的任何空白字元被轉換為下劃線,所以 Source Sans Pro 變成 Source_Sans_Pro,當命名字元集時請記住這些請參閱 管理字型)。

字串金鑰

Weblate 通過 resname 屬性在它出線的情況下辨識 XLIFF 檔案中的單元,並退回到 id (如果出現的話與 file 標籤一起)。

resname 屬性被認為是人類友好的單元辨識碼,對 Weblate 比 id 更適於顯示。在整個 XLIFF 檔案中 resname 具有一致性。這是 Weblate 需要的,並且不被 XLIFF 標準覆寫——它不在這個屬性上放入任何獨特性限制。

範例檔案

典型 XLIFF 檔案:

<?xml version='1.0' encoding='UTF-8'?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.1">
    <file>
        <body>
            <trans-unit weblate-flags="c-format, max-length:100">
                <source xml:space="preserve">Hello, world!
</source>
            </trans-unit>
            <trans-unit>
                <source xml:space="preserve">Orangutan has %d banana.
</source>
            </trans-unit>
            <trans-unit>
                <source xml:space="preserve">Try Weblate at &lt;https://demo.weblate.org/&gt;!
</source>
            </trans-unit>
            <trans-unit>
                <source>Thank you for using Weblate.</source>
            </trans-unit>
        </body>
    </file>
</xliff>
支援的功能

副檔名

.mxliff, .poxliff, .sdlxliff, .xlf, .xliff

語言能力

單語言和雙語言

支援複數

Yes

支援描述

Yes

支援解釋

No

支援情境

Yes

支援位置

Yes

支援旗標

Yes

額外狀態

已核准, 需要編輯

API 辨識碼

apple-xliff, plainxliff, poxliff, xliff

支援唯讀字串

Yes

支援移除已不再使用的字串

No

Weblate 設定

用於雙語言 XLIFF 的典型 Weblate 元件設定

檔案遮罩

localizations/*.xliff

單語言基底語言檔案

空白

新翻譯的範本

localizations/en-US.xliff

檔案格式

XLIFF 翻譯檔案

用於單語言 XLIFF 的典型 Weblate 元件設定

檔案遮罩

localizations/*.xliff

單語言基底語言檔案

localizations/en-US.xliff

新翻譯的範本

localizations/en-US.xliff

檔案格式

XLIFF 翻譯檔案