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"(需要編輯)狀態(若存在目標內容,下列狀態會將字串標記為需要編輯:new、needs-translation、needs-adaptation、needs-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 規範的 maxwidth 和 font 屬性:
<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 <https://demo.weblate.org/>!
</source>
</trans-unit>
<trans-unit>
<source>Thank you for using Weblate.</source>
</trans-unit>
</body>
</file>
</xliff>
Weblate 設定¶
用於雙語言 XLIFF 的典型 Weblate 元件設定 |
|
|---|---|
檔案遮罩 |
|
單語言基底語言檔案 |
空白 |
新翻譯的範本 |
|
檔案格式 |
XLIFF 翻譯檔案 |
用於單語言 XLIFF 的典型 Weblate 元件設定 |
|
|---|---|
檔案遮罩 |
|
單語言基底語言檔案 |
|
新翻譯的範本 |
|
檔案格式 |
XLIFF 翻譯檔案 |