Tool description

This tool translates JSON files into another language with AI. It is made for localization files such as en.json for i18next, next-intl, react-intl, vue-i18n or Angular, but it works with any JSON. Open a JSON file, pick the language, and you get a file with the same keys, the same structure and translated text.

Your file is read in your browser. Only the text values are sent for translation, together with their key path (for example checkout.button.pay) so the AI knows where each text is used. Keys, numbers, booleans and null never leave the file unchanged, and the translated values are put back in the same places.

Features

  • Translates every string value, at any depth, in objects and arrays.
  • Keeps keys, order, numbers, booleans and null exactly as they are.
  • Keeps placeholders such as {name}, {{count}}, %s, %1$d and ICU plurals like {count, plural, one {# item} other {# items}}.
  • Skips values that are not text, such as URLs, email addresses, colors, version numbers and identifiers like primary_button.
  • Keeps the indentation of the original file, and minified JSON stays minified.
  • Names the result after the target language: en.json becomes de.json, and messages.en.json becomes messages.de.json.
  • Lets you choose a formal or informal tone for languages that have one.

Examples

This input translated into German:

{
  "cart": {
    "title": "Your cart",
    "items": "{count, plural, one {# item} other {# items}}",
    "checkout": "Continue to checkout"
  },
  "maxItems": 20
}

becomes:

{
  "cart": {
    "title": "Ihr Warenkorb",
    "items": "{count, plural, one {# Artikel} other {# Artikel}}",
    "checkout": "Weiter zur Kasse"
  },
  "maxItems": 20
}

Tips

The bar under the language settings shows how much text will be sent. Up to 10,000 characters of text can be translated at once; keys and other values do not count. Split bigger files by their top-level sections and translate them one by one.

Descriptive keys give better translations. A key like button.save tells the AI that "Save" is a button label, not a noun.

FAQ

Is my file uploaded? No. The file is parsed in your browser, and only the text values and their key paths are sent to the AI.

What happens to texts that could not be translated? They keep the original text, and a message tells you how many there were, so the file is always complete and valid.