Translate your JSON locale files, without flattening the structure
Drop in your en.json. KAERIS translates all 46 languages, keeps your nested structure and interpolation ({{var}}, {var}) intact, and reads each line back so meaning drift is caught before release. Works with i18next, Vue I18n and FormatJS.
Structure kept, not flattened
Your nested objects stay nested — KAERIS returns real i18next/Vue JSON, so it drops straight back into your app instead of a flat key=value dump you have to reshape.
Interpolation that survives
{{name}} (i18next), {name} (Vue/FormatJS) and ICU plurals stay verbatim — and a dropped one is flagged as a fact by read-back.
Meaning verified
Every value is translated back into your language and checked for drift, so a subtle mistranslation in a language you can't read doesn't slip through.
Before → after
{ "nav": { "greeting": "Welcome back, {{name}}!" } }
{ "nav": { "greeting": "Willkommen zurück, {{name}}!" } }
Drop your .json 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 .json back
Download one .json 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 .json file →See the read-back benchmark · CLI & GitHub Action