Translate JSON
Translation Files

Upload your JSON translation files to SimpleLocalize, use auto-translation and download ready-to-go translation files in seconds.

No credit card required14-day free trialTracking-free service
cdn.simplelocalize.io
{ "en": { "CREATE_ACCOUNT": "Create account", "SIGN_IN": "Sign in", "WELCOME_TO_THE_JUNGLE" : "Welcome to the jungle" }, "es": { "CREATE_ACCOUNT": "Crear cuenta", "SIGN_IN": "Iniciar", "WELCOME_TO_THE_JUNGLE": "Bienvenido a la jungla" } }
{
  "en": {
    "CREATE_ACCOUNT": "Create account",
    "SIGN_IN": "Sign in",
    "WELCOME_TO_THE_JUNGLE" : "Welcome to the jungle"
  },
  "es": {
    "CREATE_ACCOUNT": "Crear cuenta",
    "SIGN_IN": "Iniciar",
    "WELCOME_TO_THE_JUNGLE": "Bienvenido a la jungla"
  }
}

Why teams use JSON for translations

JSON is the most popular format for storing translations across web, mobile and game projects. Every language has a parser for it, so a translation key lookup works the same way no matter what the rest of your stack looks like.

A flat or nested key-value structure keeps translations easy to read even for someone outside engineering, and simple enough that a JSON file can go straight from your codebase into a translation tool without any transformation step.

translations_en.json
{ "auth": { "login": { "title": "Sign in to your account", "submit": "Log in" } }, "dashboard": { "welcome": "Welcome back, {name}!", "notifications": "You have {count} unread notifications" } }
{
  "auth": {
    "login": {
      "title": "Sign in to your account",
      "submit": "Log in"
    }
  },
  "dashboard": {
    "welcome": "Welcome back, {name}!",
    "notifications": "You have {count} unread notifications"
  }
}

No downsides

What makes JSON a good fit for translations

Universal format

A file format that works anywhere, across every language and platform.

Widely known

Known and widely used among developers, with parsers built into every language.

Easy to read

Readable even by non-technical people, without special tooling.

Simple structure

A plain key-value structure with no hidden complexity.

Pick your layout

Choose the JSON structure that fits your project

There is more than one way to lay out translations in JSON. SimpleLocalize supports the common ones on both import and export.

End-to-end workflow

Translate a JSON file end to end

Create a free account, upload a source file, and download every language back once translations are ready.

Terminal
simplelocalize upload \ --apiKey PROJECT_API_KEY \ --uploadFormat single-language-json \ --uploadLanguageKey en \ --uploadPath ./locales/messages_en.json
simplelocalize upload \
  --apiKey PROJECT_API_KEY \
  --uploadFormat single-language-json \
  --uploadLanguageKey en \
  --uploadPath ./locales/messages_en.json

Create an account and upload your file

1
Create a free account in SimpleLocalize and add a new project, then upload your source JSON file from the web editor or with the CLI.
Project languages
Source language: en Target languages: - es (Spanish) - de (German) - fr (French)
Source language: en
Target languages:
  - es (Spanish)
  - de (German)
  - fr (French)

Add target languages

2
Add every language your project needs to the translation editor. Every imported key is now ready for translation, with the source text shown for reference.
messages_es.json (auto-translated)
{ "auth": { "login": { "title": "Inicia sesión en tu cuenta", "submit": "Iniciar sesión" } } }
{
  "auth": {
    "login": {
      "title": "Inicia sesión en tu cuenta",
      "submit": "Iniciar sesión"
    }
  }
}

Auto-translate every language at once

3
Run the auto-translation feature with DeepL, Google Translate, OpenAI, Claude or Gemini to fill in every language in one pass, then review in the editor.
Terminal
simplelocalize download \ --apiKey PROJECT_API_KEY \ --downloadFormat single-language-json \ --downloadLanguageKey es,de,fr \ --downloadPath ./locales/messages_{lang}.json
simplelocalize download \
  --apiKey PROJECT_API_KEY \
  --downloadFormat single-language-json \
  --downloadLanguageKey es,de,fr \
  --downloadPath ./locales/messages_{lang}.json

Download your translated files

4
Export back to JSON, or choose a different format like CSV or XLSX from the same project, no re-upload needed.

For developers

A localization platform,
not just a JSON file

A JSON file is where translations start. SimpleLocalize is where your team reviews, automates and ships them.

Any JSON shape

Single-language, multi-language or nested keys are all recognized on import, with no manual mapping needed.

AI auto-translation

Translate new and changed keys with DeepL, Google Translate, OpenAI, Claude or Gemini.

CLI and CI/CD sync

Keep JSON files in sync with a couple of commands, so translations can be pulled into any pipeline alongside your code.

REST API for automation

The same import and export logic is available over the REST API, so a script or a backend job can sync files without the CLI.

SimpleLocalize connects your code to professional translations

More conversions

Convert JSON to other formats

Free online converter, no account required. Upload a JSON file and download it in the format you need.

Start translating JSON files

  • Single-language, multi-language or custom JSON, all recognized on import
  • Free community plan, no credit card required
  • Auto-translation with DeepL, Google, OpenAI, Claude and Gemini
Start for free
No credit card required5-minute setup
"The product
and support
are fantastic."
Laars Buur|CTO
"The support is
blazing fast,
thank you Jakub!"
Stefan|Developer
"Interface that
makes any dev
feel at home!"
Dario De Cianni|CTO
"Excellent app,
saves my time
and money"
Dmitry Melnik|Developer

Frequently asked questions about JSON translations

What's the difference between single-language and multi-language JSON?

Single-language JSON stores one file per language, with the same keys repeated in each file. Multi-language JSON keeps every language in one file, with the language code as an extra level of the object.

Does SimpleLocalize support nested JSON keys?

Yes. A nested key like home.interface.signup is recognized on import and can be exported either nested or flattened, depending on what your project expects.

What is the custom SimpleLocalize JSON format for?

It stores translations together with extra metadata, such as a description for translators, in a single file. Use it when you want that context to travel with the export.

Is auto-translation free to try?

Yes. The Community plan includes auto-translation for small projects with no credit card required, and you can also use your own DeepL, Google Translate, OpenAI, Claude or Gemini API key.