
Translate XLIFF Files Without Corrupting XML
Source-target pairs aligned. Translator notes preserved. XML structure intact. Your XLIFF files translated correctly across both 1.2 and 2.0 formats.
XLIFF Translation Is an XML Minefield
XLIFF is the industry standard for translation interchange, but its XML structure makes it fragile. Generic tools break the XML, lose source-target pairing, strip translator notes, and choke on the differences between XLIFF 1.2 and 2.0. One malformed tag and your entire CAT tool import fails.
XML structure gets corrupted — unclosed tags, broken entities, and invalid characters that fail validation
Source and target segments become misaligned, making it impossible to review translations in CAT tools
Translator notes, context hints, and metadata elements are stripped or moved, losing critical context
XLIFF 1.2 and 2.0 use different schemas — tools that handle one version often break the other
<?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="de" datatype="plaintext"
original="messages">
<header>
<note>Application UI strings</note>
</header>
<body>
<trans-unit id="welcome.title" approved="yes">
<source>Welcome to our platform</source>
<target>Willkommen auf unserer Plattform</target>
<note from="developer">Shown on the landing page</note>
</trans-unit>
<trans-unit id="nav.dashboard">
<source>Dashboard</source>
<target state="needs-review">Dashboard</target>
</trans-unit>
<trans-unit id="user.greeting">
<source>Hello, %1$s!</source>
<target>Hallo, %1$s!</target>
<note from="developer">%1$s = user's first name</note>
</trans-unit>
<trans-unit id="items.count">
<source>You have %d items</source>
<target>Sie haben %d Artikel</target>
</trans-unit>
</body>
</file>
</xliff><?xml version="1.0" encoding="UTF-8"?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" target-language="de" datatype="plaintext"
original="messages">
<header>
<note>Application UI strings</note>
</header>
<body>
<trans-unit id="welcome.title" approved="yes">
<source>Welcome to our platform</source>
<target state="translated">Willkommen auf unserer Plattform</target>
<note from="developer">Shown on the landing page</note>
</trans-unit>
<trans-unit id="nav.dashboard">
<source>Dashboard</source>
<target state="translated">Dashboard</target>
</trans-unit>
<trans-unit id="user.greeting">
<source>Hello, %1$s!</source>
<target state="translated">Hallo, %1$s!</target>
<note from="developer">%1$s = user's first name</note>
</trans-unit>
<trans-unit id="items.count">
<source>You have %d items</source>
<target state="translated">Sie haben %d Artikel</target>
</trans-unit>
</body>
</file>
</xliff>What i18n Agent Preserves
XML Structure
Valid XML output with correct namespaces, entities, and encoding — passes XLIFF schema validation
Source-Target Pairing
Source and target segments stay paired correctly. Translation units maintain their IDs and ordering.
Notes & Metadata
Translator notes, context groups, and custom metadata elements are preserved in their original positions
Version Support
Both XLIFF 1.2 (trans-unit) and XLIFF 2.0 (unit/segment) schemas are detected and handled correctly
Works With Your Localization Stack
How It Works

No manual copy-paste. No string extraction. Just translated files.
Try i18n Agent Now
Drop your translation file here
JSON, YAML, PO, XML, CSV, Markdown, Properties
or click to browse
Target languages
Frequently Asked Questions
Enterprise team?
Still stuck on a TMS contract? Let's talk about migrating.