AI Glot websiteOpen AI Glot
File formatsJSON, ARB, JSON Lines
File formats

Translate JSON, ARB and JSON Lines files

Translate .json, .arb, .resjson, .jsonl and .ndjson files up to 8 MB into one or several languages. Keys, nesting and placeholders stay intact. Example instructions included.

JSON files (.json), Flutter ARB (.arb), Windows app resources (.resjson) and JSON Lines (.jsonl, .ndjson) are accepted up to 8 MB. Keys are structure, not words: they are never sent as translatable text, so they cannot come back translated. Only string values change.

What is translated, and what is left alone

TranslatedLeft as it was
JSON, resjsonString values at any depthKeys, nesting, array order, numbers, booleans, nulls
ARBMessage stringsKeys, @ metadata entries when you say so, {placeholders} and ICU plural syntax
JSON LinesThe text fields you name, record by recordKeys and their order, ids, numbers, one record per line

Placeholders such as {count}, {{name}}, %s and $1, and ICU syntax such as {count, plural, one{...} other{...}}, are kept in the translated string and placed where the target language needs them. Name any unusual convention in your instruction.

What you can ask

Several languages at once

One job instead of one upload per language.

Translate the values into French, German and Spanish. Keep placeholders such as {{name}} and {count} unchanged.

Fill the gaps

Adds only what is missing, for the next release.

Translate only the keys that are missing from the French file, and keep the existing French translations.

Only the changed keys

Returns just the keys that were written.

Translate into Italian and return only the keys you changed.

ARB with metadata

For Flutter: keeps the descriptions that gen-l10n expects.

Translate the messages into Portuguese. Leave the @@locale value and all @ metadata entries as they are, and keep ICU plural syntax intact.

Text fields of a JSON Lines dataset

For a dataset or an export: ids and labels are not words.

Translate the title and description fields into French. Leave id, price and category unchanged.

Good to know

  • Several languages in one job for JSON, ARB, resjson and JSON Lines. The plan shows where each language will be written: by default a sibling key with a language suffix next to the original, such as title_fr. If your project expects one file per language (en.json, fr.json), translate once per language instead and you get one clean file each time.
  • Output filter. Available for JSON (“only the keys you changed”). The other formats on this page return the whole file.
  • Formatting. JSON is written back with two-space indentation, so a source formatted differently can show whitespace changes in a diff. Keys keep their order. JSON Lines is written back compact, one record per line.
  • @@locale. An ARB file keeps its @@locale value unless you ask for it to change. Set it to the target locale before you ship.
  • Plurals. Languages with extra plural forms, such as Russian or Arabic, can need ICU branches the English source does not have. Check them in review.
  • A broken JSON Lines record is named by line number and the file is refused until it is fixed.
  • Ceiling. 8 MB, a locale folder at once is possible in a ZIP.

Use these docs with your AI tools

An AI agent can read this documentation directly. You do not need an account or an API key. Everything here is public and read-only.

Query these docs via MCP

Recommended

Add this server to Claude, Claude Code, Cursor, Mistral, or any tool that supports MCP. Your agent can then search AI Glot Docs documentation and read it in full, instead of answering from memory.

https://ai-glot.com/docs/mcp
  • searchFind the passages that answer a question.
  • fetchRead one page in full, as Markdown.
  • list_pagesSee every page in this documentation.

Query these docs over HTTP

The same tools also work as plain web requests. Use this for scripts, or for any tool that does not support MCP. There is one endpoint per tool. Arguments go in the query string, and the answer comes back as JSON.

https://ai-glot.com/docs/api/docs/search?query=custom+domain

Read the OpenAPI description. It is built from the same definitions as the tools, so it always matches what the endpoints do.

Read these docs as Markdown

Add .md to any page URL to get its Markdown source. You can also send the headerAccept: text/markdown to the page URL itself.

To read the whole documentation in one file, open llms-full.txt. For a short index of every page, open llms.txt.