XLIFF Validator

Validate XLIFF 1.2 and 2.0 files: structure, languages, duplicate unit IDs, missing targets and placeholder mismatches.

Paste XLIFF 1.2 or 2.0 content, or drop a .xlf / .xliff file


Runs in your browser. Files are not uploaded unless the tool says otherwise.

XLIFF 1.2 versus XLIFF 2.0

XLIFF 1.2 (2008) is still the most widely exchanged flavour: a <file> with source-language, target-language, original and datatypeattributes, a <body>, and one <trans-unit id> per string with <source> and <target>. XLIFF 2.0 (2014) moves the languages to srcLang and trgLang on the root, requires an id on every <file> and <unit>, and wraps text in <segment> elements. Apple Xcode exports 1.2, Angular's extract-i18n and .NET tooling can produce either, and SimpleLocalize imports and exports both XLIFF 1.2 and XLIFF 2.0.

What the validator reports

  • Well-formedness: XML parse errors, a root element that is not <xliff>, a missing or unexpected version, and a namespace that does not match the version.
  • Required attributes: source and target languages, original, datatype, id on files and units, and a <body> in 1.2 files.
  • Unit integrity: duplicate unit IDs (scoped per file in 2.0), empty sources, missing or empty targets, and target states such as needs-translation reported as info.
  • Inline content: inline elements (<x/>, <g>, <ph>, <bpt>/<ept> in 1.2; <ph>, <pc> in 2.0) are compared by name and id between source and target, and unbalanced pairs are flagged.
  • Text placeholders: {name}, %s, %1$d and similar tokens must appear the same number of times in source and target.

Common causes of invalid XLIFF

Most broken files come from hand edits or from tools that concatenate files: unescaped & and < in text, a BOM in the middle of the document, translators deleting an <x/>tag that carried a line break, or two exports merged with the same unit IDs. The line number in the report points at the opening tag of the affected unit so you can jump straight to it.

Limits of a structural check

This validator checks structure and consistency, not schema conformance for every optional element, and it does not evaluate translation quality. It runs entirely in your browser, so files never leave your machine. For continuous checks on placeholders, length, glossary terms and HTML across every language, upload the file to SimpleLocalize and let the built-in QA checks run on each change.

More translation tools

Manage translations with SimpleLocalize

  • Import the same file formats you just converted or checked
  • Auto-translate with DeepL, Google, OpenAI, Claude or Gemini using your own API keys
  • Free plan for small projects, no credit card required
Start for free
No credit card required5-minute setup