Migrate off Crowdin without losing a single language
Export your project as XLIFF 1.2, drop it into KAERIS, and get every target language back — same trans-unit ids, same inline tags. No Crowdin seat, no per-string tier.
Export XLIFF from Crowdin
Translations tab → Export → format XLIFF 1.2. Grab your source file, or each language file if you already have translations to keep.
Drop it into kaeris.dev
Upload the .xliff, pick target locales — 46 available, use presets or hand-pick exactly what you ship.
Get every language back
Download translated XLIFF per locale — trans-unit ids and inline tags intact — or convert to JSON/YAML/etc. with the free format converter.
Before → after
<trans-unit id="welcome" resname="welcome"> <source>Welcome back, <x id="1"/>!</source> <target state="translated">Welcome back, <x id="1"/>!</target> </trans-unit> <trans-unit id="save"> <source>Save changes</source> </trans-unit>
<trans-unit id="welcome" resname="welcome"> <source>Welcome back, <x id="1"/>!</source> <target state="translated">Willkommen zurück, <x id="1"/>!</target> </trans-unit> <trans-unit id="save"> <source>Save changes</source> <target state="translated">Änderungen speichern</target> </trans-unit>
The <x id="1"/> inline tag and the resname attribute survive untouched — KAERIS writes into <target> without reshaping the document.
KAERIS vs Crowdin
Both translate well and both speak XLIFF 1.2. The difference is what's built around the translation — and what we deliberately left out.
If your team specifically needs an in-context editor, crowdsourced translation, or native VCS integrations, Crowdin is a legitimate choice for that job. If you just need accurate translations shipped fast without seats or string-tier pricing, that's what KAERIS is built for.
<g>/<x/>/<ph> and {{var}}/%s never dropped or mistranslated.Beyond XLIFF, KAERIS speaks all 10 formats — JSON, YAML, .strings, .po, ARB, Android XML, CSV (incl. Godot/Unity), XLIFF, .properties and .resx — same placeholder-safe engine across your whole stack.
FAQ
How do I migrate from Crowdin to KAERIS?
Open your project's Translations tab → Export → choose format XLIFF 1.2 (per file or per language). Upload that .xliff file to kaeris.dev, pick the languages you still need, and download the translated XLIFF back — same trans-unit ids, same inline tags. No Crowdin account needed on the KAERIS side, and no new account needed to try it.
Does KAERIS support XLIFF 1.2?
Yes — full read/write of XLIFF 1.2 trans-unit/source/target. Inline tags (<g>, <x/>, <ph>) and the resname attribute are preserved verbatim. XLIFF 2.0 isn't supported yet — export 1.2 (the default in Crowdin, Lokalise, Xcode and most Android/Angular toolchains).
What about my Crowdin translation memory and glossary?
Honestly: KAERIS doesn't import Crowdin's TM or glossary today — each run translates straight from your source strings. If specific terms need to stay fixed (brand names, product terms), list them before translating; for full TM continuity, keep your last Crowdin export as a reference.
Is it really free?
Yes — free up to 10,000 characters per file, no account, no credit card. A free API key raises that to 50,000 characters. Paid plans (Pro $12/mo, Scale $25/mo, Lifetime $79 once) raise it further or remove the cap entirely with your own AI key (BYOK).
I need in-context proofreading and crowdsourced translation — should I still switch?
Probably not, and we'll say so plainly: KAERIS doesn't do an in-context editor, community/crowdsourced translation voting, or PM integrations — it's a translate-and-ship tool, not a full TMS platform. If your team specifically needs that, Crowdin is a legitimate choice for that job. If you just need accurate translations shipped fast without seats or string-tier pricing, that's what KAERIS is built for.
Ship your Crowdin project without Crowdin
46 languages, XLIFF-native, placeholder-safe. Free to start, no account required.
$ pip install kaeris $ kaeris translate export.xliff --langs de,fr,es,ja