Translate XLIFF, with the inline tags kept in place
XLIFF is the format every TMS exports. Drop in your .xliff and KAERIS translates each <trans-unit> into 46 languages, keeps inline <g>/<x/> tags in place, and reads every unit back so meaning drift is caught before you re-import.
Inline tags that survive
<g id="1">bold</g> and self-closing <x/> placeholders stay exactly where they belong — drop one and read-back flags it, so your re-import doesn't fail validation.
Structure you re-import cleanly
Unit ids, order and the surrounding XML are preserved, so the file drops straight back into Crowdin, Phrase, memoQ or whatever exported it.
Meaning you can trust
Beyond structure, each translated <target> is read back into your language and checked for drift — the one thing a raw machine-translate step skips.
Before → after
<trans-unit id="greeting"> <source>Welcome, <g id="1">{name}</g>!</source> </trans-unit>
<trans-unit id="greeting"> <target>Bienvenue, <g id="1">{name}</g> !</target> </trans-unit>
Drop your .xliff file
Upload it as-is, or run pip install kaeris and translate from your terminal or CI.
Pick languages & verify
Choose from 46 languages. Leave read-back on to catch meaning drift, lost placeholders and overflow.
Ship the .xliff back
Download one .xliff per language, structure intact — or let the GitHub Action open a PR when new keys land.
Free, no account. Read every line back in your own language.
Drop your .xliff file →See the read-back benchmark · CLI & GitHub Action