JSON i18n
JSON · i18next / Vue / FormatJS · 46 languages · Free

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.

Translate your file → $ pip install kaeris
Nested keys preserved {{var}} / {var} kept ICU & plurals safe Real JSON, not flattened No account needed
What breaks in JSON — and how KAERIS handles it

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.

Real JSON, round-tripped

Before → after

en.json
{
  "nav": {
    "greeting": "Welcome back, {{name}}!"
  }
}
de.json
{
  "nav": {
    "greeting": "Willkommen zurück, {{name}}!"
  }
}
From file to shipped in 3 steps
1

Drop your .json file

Upload it as-is, or run pip install kaeris and translate from your terminal or CI.

2

Pick languages & verify

Choose from 46 languages. Leave read-back on to catch meaning drift, lost placeholders and overflow.

3

Ship the .json back

Download one .json per language, structure intact — or let the GitHub Action open a PR when new keys land.

Translate your .json now

Free, no account. Read every line back in your own language.

Drop your .json file →

See the read-back benchmark · CLI & GitHub Action