XLIFF (XML Localisation Interchange File Format) es un lenguaje derivado del XML que se desarrolló para resolver una serie de problemas existentes en la gestión de la traducción multilingüe.
La primera versión fue lanzada al mercado en mayo de 2001 por un grupo de empresas dedicadas al campo de la tecnología, como IBM, Novell, Oracle y Sun Microsystems.
En diciembre de 2001, XLIFF entró a formar parte de OASIS (Organization for the Advancement of Structured Information Standards) y, en octubre de 2003, se publicaron las especificaciones técnicas para la versión 1.1
El concepto que subyace bajo este formato es muy sencillo:

Del documento original se extraen, por una parte, los contenidos que se van a traducir (translation units) y, por otra, todos los elementos que no son traducibles (skeleton).
Una vez realizada la traducción se vuelven a unir estos elementos para formar el documento final.
La principal ventaja de utilizar el formato XLIFF radica en la separación total de los contenidos y la forma, lo que simplifica enormemente el proceso de traducción de un documento.
A continuación, se muestra el proceso sin emplear XLIFF:

En este primer caso, la empresa de traducción es quien se encarga de convertir los diversos formatos recibidos en un formato compatible con el sistema de traducción asistida empleado.
Los principales inconvenientes de tal enfoque son:
A continuación se describe el mismo proceso empleando XLIFF:

En el segundo caso, el propio cliente utiliza instrumentos que admiten el formato XLIFF de forma nativa, o bien instrumentos que puedan producir un documento en formato XLIFF y que luego se pasen al proveedor de las traducciones.
Presenta numerosas ventajas:
A continuación, se muestra un ejemplo de archivo XLIFF:
<xliff version='1.1' xmlns="urn:oasis:names:tc:xliff:document:1.1">
<file original="file1.prop" source-language="en-US" datatype="javapropertyresourcebundle">
<header>
<skl><external-file href="file1.prop"/></skl>
</header>
<body>
<trans-unit id="1" resname="id1">
<source xml:lang="en-US">Texto para traducir 1</source>
</trans-unit>
<trans-unit id="2" resname="id2">
<source xml:lang="en-US">Texto para traducir 2 </source>
</trans-unit>
</body>
</file>
En este ejemplo podemos observar que la estructura de base de un archivo XLIFF está compuesta por: