Skip to content
All tools Pricing Blog

Chats & voice messages

Documents

Audio & video

Log in

Language

JSON, XML and YAML translator

Translate a large JSON, XML or YAML file: values translated, keys untouched

Upload a JSON, XML, .resx or YAML file, from a CMS export to a product feed or a Rails en.yml, and get the same structure back with the text values translated. Keys, element and attribute names never change, identifier fields such as id, url, slug, sku and status are left alone, and every placeholder is checked. Up to 50,000 values are $5 as one payment; the first values are free with no sign-up.

Translate a structured file

Tone
Glossary and names to keep (optional)

Brand and product names, separated by commas. Each one is checked in every translation.

One term per line: term = translation.

Added to the built-in list (id, url, slug, sku, type, status, code, email…). Use * as a wildcard.

No sign-up. Up to 300 strings free in full. Longer: the first strings free, every file in the job $5, one payment.

By continuing you agree to our Terms of Service and Privacy Policy.

  • JSON, XML, .resx, YAML and XLIFF, up to 20 files per job
  • Whole job $5, one payment: up to 50,000 values and 3,000,000 characters
  • Keys, element names, order, indentation and comments stay the same
  • IDs, URLs, slugs, codes and status values are never translated
  • Placeholders like {name}, %{count} and {{price}} checked in every value
  • Add your own keys to skip, with * as a wildcard
Open the demo

See a sample PDF Sample output

What you get back

The same files, valid and in the same format, named for the new language where the format has a convention: en.json becomes de.json, en.yml becomes de.yml, Strings.resx becomes Strings.de.resx. The first values are shown on screen next to the source before you pay.

  • JSON: the same keys, nesting, key order and indentation. Numbers, booleans and null stay as they are; only string values with readable text are translated.
  • XML and .resx: text inside elements and readable attributes such as title, alt, label and placeholder. Element names, other attributes, comments and CDATA sections stay; script, style, code and pre are skipped, and so is anything marked translate="no".
  • YAML: values only, with comments, quoting style, block text and anchors kept. A Rails file with en: at the root comes back with de: at the root.
  • A warnings list of any value where a placeholder or tag did not survive two tries; those values keep the original text, so the file never breaks.

Translating a structured file with a chatbot, and with this tool

A chatbot handles a short JSON snippet well. A big file has to come back complete and valid, with thousands of keys in the right place, and that is where long replies break down.

Your situation A chatbot This tool
A 30-line JSON snippet Usually translates it correctly Translates it too
A 3 MB JSON export Cannot return it in one reply; output is cut and no longer parses Translates every value in blocks and rebuilds the file from your original
"status": "active", "type": "product" Translates them, which breaks the program that reads the file Leaves identifier keys and values alone
Keys and element names Sometimes translates them too Never sends them for translation
Placeholders like {count} Usually keeps them, but nothing checks Checks every value; a broken one is asked again, then kept in the source
Comments and formatting in YAML Lost when the file is rewritten Kept; only the values change

How to translate a JSON, XML or YAML file

  1. 1

    Upload the files

    Drop up to 20 .json, .xml, .resx, .yml, .yaml or .xliff files and choose the language. List extra keys to skip if your data has its own codes.

  2. 2

    Check the first values free

    The first values appear translated next to the source, with their key paths. Edit any value. No account is needed.

  3. 3

    Unlock and download

    Unlock the whole job for $5 and download the translated files, a ZIP when there are several.

Why big structured files trip up general AI assistants

Translating JSON or XML in a chat means asking the model to write the file again, every brace, key and quote included. A large file is longer than one reply, so the output stops partway and no longer parses. And because the model sees keys and values alike, it tends to translate a little too much: an enum value, a slug or a key.

This tool reads the file itself and sends only the readable text values, in blocks, with their key paths as context. Keys, element and attribute names are never sent. Values under identifier keys (id, url, slug, sku, type, status, code, email and similar) and values that look like identifiers, such as order_shipped or user.profile.title, are left alone. Every translation is checked for its placeholders and tags, and the file is rebuilt from your original, so everything else stays byte for byte the same.

What people translate

  • CMS and help-center exports in JSON or XML
  • Rails, Symfony and Hugo YAML files
  • .NET .resx resource files
  • Product feeds and catalogs in XML or JSON
  • Game and app content files that are not standard i18n formats
  • Data files where only some fields are text, such as titles and descriptions

Which tool to use

For app string files, where every value is meant to be translated (i18next JSON, ARB, PO, Android strings.xml, iOS .strings and .xcstrings), use Translate Localization Files: it also handles plural forms. Use this tool for data and content files, where text sits next to IDs, links and codes. Android strings.xml and XLIFF files uploaded here are handled the same way as there.

One job takes up to 20 files of up to 50 MB each. One payment covers up to 50,000 values and 3,000,000 characters; Unlimited covers up to 200,000 values. Values beyond the limit stay in the source language, and the screen tells you how many before you pay. YAML flow style ([a, b]), aliases and values that run over several lines without a block marker are left as they are.

By language and situation

What it costs

Small files, first values

Free

A job of up to 300 values is free in full, downloads included. Bigger jobs: the first values on screen, no account.

Whole job

$5

One payment: up to 50,000 values and 3,000,000 characters across up to 20 files. No subscription.

Unlimited

$19 / week

Every tool on the site, with jobs of up to 200,000 values.

Questions and answers

Can ChatGPT translate a large JSON file?

A small one, yes. A large file has to come back in one reply, so the output tends to be cut off and invalid, and keys or codes can get translated. This tool translates only the text values, checks each one and rebuilds the file from your original.

Are keys ever translated?

No. Keys, element names and attribute names are never sent for translation. Only readable text values are, and values under identifier keys such as id, url, slug, sku, type and status are skipped.

Can I skip my own fields?

Yes. Type the keys to skip, separated by commas, such as sku, internal_note or *_code. They are added to the built-in list.

Does it keep placeholders?

Yes. Placeholders such as {name}, {{count}}, %{count} and ${price} and HTML tags inside values are checked in every translation; a value that loses one is translated again and otherwise keeps the source text.

How many values fit in one payment?

Up to 50,000 values and 3,000,000 characters across up to 20 files, for $5. Unlimited covers up to 200,000 values.

Which languages can it translate into?

81 languages, including Spanish, French, German, Portuguese, Italian, Dutch, Polish, Japanese, Korean, Chinese, Arabic and Hebrew.

Is it free?

A job of up to 300 values is free in full. For bigger jobs the first values are translated free on screen, with no account. The whole job is $5 paid once.

Are my files private?

Only you can open your job. The text values are sent to an AI model provider for the sole purpose of translating them, through routes that do not use your data for training. Jobs uploaded without an account are deleted after 7 days, and you can delete any job yourself at any time.

Updated October 25, 2026 · APPFACT STUDIO LTD

More jobs we can do

WhatsApp chat to PDF, voice messages included Telegram chat to PDF, voice messages included Messenger chat to PDF, voice messages included Instagram DMs to PDF, voice messages included Email export (MBOX, EML) to one PDF Court bundle: merge, index and number evidence Handwriting & cursive to text Image & scanned PDF to text PDF & scanned tables to Excel Bank statement to Excel or CSV Translate a whole PDF Translate a whole subtitle file Translate ASS subtitles, styles kept Convert subtitles between formats Fix subtitles that are out of sync Fix broken Persian and Arabic subtitles Dual language subtitles, two languages at once Translate a CSV or Excel file, every row Translate app localization files Translate a whole Word document Translate a PowerPoint, slide by slide Translate a whole EPUB book Translate a Markdown docs folder Finglish, Roman Urdu, Hinglish, Arabizi: change the script Scanned PDF to editable Word, any script Summarize a whole book, chapter by chapter Run one AI instruction on every row Analyze thousands of customer reviews Code open-ended survey answers Translate a whole product catalog Translate a game or visual novel Remove duplicates and clean a CSV Long audio & video to text Video file to translated subtitles Many recordings at once Lecture recording to study notes Meeting recording to minutes Podcast transcript and show notes Sermon to text, with translation Interview transcription with speakers Extract burned-in subtitles to SRT Sync your transcript to the audio Lyrics to synced LRC Text to audiobook MP3 All your voice memos in one document YouTube video to text, any length YouTube subtitles in any language Outlook PST, MSG or OLM to one PDF Medical records to a dated chronology Text messages to PDF, for court or a lawyer iMessage to PDF, the whole thread Slack export to a readable PDF Discord chat to PDF, as evidence Chat logs for a spouse visa, month by month

We use analytics cookies to see which pages help people. Is that OK?