XLIFF是一种xml应用,因此文件的以xml声明开头。之后是xliff文件的内容,封闭在<xliff>元素之中。一个xliff文件可以包含一个或多个节点(section),每个节点封闭在<file>元素中。<file>元素由两个子元素<header>和<body>组成。<header>元素包含<file>的元数据信息(metadata)。<body>元素包含经过提取的、可翻译的数据。翻译数据包含在<trans-unit>元素中,由成对元素<source>和<target>组成。<trans-unit>可以递归嵌套在<group>元素中,形成组数据。
另外,XLIFF可以通过<phase>元素,承载和维护文件的处理信息。特定的<source>元素通过MT(机器翻译)和CAT(计算机辅助翻译),可能存在多个翻译结果。这些翻译结果存储在<source>附近的<alt-trans>元素中。<source>翻译需要的上下文信息记录在<context>元素。二进制数据记录在<bin-unit>元素中用于翻译,并包含一个关联的<trans-unit>。
强烈建议<file>的内容使用统一的双语。换句话说,每个<trans-unit>中的<source>和<target>使用的语种,与<file>元素的@source-language和@target-language属性分别一致。@xml:lang不应在这些元素中使用。不过也有例外的情况,当<source>和<target>是<alt-trans>的子元素时,可以使用@xml:lang来指示不同于@source-language和@target-language的语种。
下面是简单的xliff文件结构:
<xliff version='1.2' xmlns='urn:oasis:names:tc:xliff:document:1.2'> <file original='hello.txt' source-language='en' target-language='fr' datatype='plaintext'> <body> <trans-unit id='hi'> <source>Hello world</source> <target>Bonjour le monde</target> <alt-trans> <target xml:lang='es'>Hola mundo</target> </alt-trans> </trans-unit> </body> </file> </xliff>
说明:
在xml的相关描述中,<xxx>表示xxx元素,@yyy表示yyy属性。后续文档中将以此格式为准,不会再显式地强调是元素还是属性。