Upload your JSON translation files to SimpleLocalize, use auto-translation and download ready-to-go translation files in seconds.
{
"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"
}
}
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.
{
"auth": {
"login": {
"title": "Sign in to your account",
"submit": "Log in"
}
},
"dashboard": {
"welcome": "Welcome back, {name}!",
"notifications": "You have {count} unread notifications"
}
}No downsides
A file format that works anywhere, across every language and platform.
Known and widely used among developers, with parsers built into every language.
Readable even by non-technical people, without special tooling.
A plain key-value structure with no hidden complexity.
Pick your layout
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
Create a free account, upload a source file, and download every language back once translations are ready.
simplelocalize upload \
--apiKey PROJECT_API_KEY \
--uploadFormat single-language-json \
--uploadLanguageKey en \
--uploadPath ./locales/messages_en.jsonSource language: en
Target languages:
- es (Spanish)
- de (German)
- fr (French){
"auth": {
"login": {
"title": "Inicia sesión en tu cuenta",
"submit": "Iniciar sesión"
}
}
}simplelocalize download \
--apiKey PROJECT_API_KEY \
--downloadFormat single-language-json \
--downloadLanguageKey es,de,fr \
--downloadPath ./locales/messages_{lang}.jsonFor developers
A JSON file is where translations start. SimpleLocalize is where your team reviews, automates and ships them.
Single-language, multi-language or nested keys are all recognized on import, with no manual mapping needed.
Translate new and changed keys with DeepL, Google Translate, OpenAI, Claude or Gemini.
Keep JSON files in sync with a couple of commands, so translations can be pulled into any pipeline alongside your code.
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.

More conversions
Free online converter, no account required. Upload a JSON file and download it in the format you need.
We found some articles that might be interesting for you

YAML or JSON for translation files? The answer depends on your stack and who edits the files. Here's the practical decision guide for developers with framework mappings, real examples, and a hybrid approach most teams end up using.

How to auto-translate JSON translation files using AI and machine translation. Covers manual approaches, CLI workflows, CI/CD automation, and common pitfalls that cause JSON localization to break.
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.
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.
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.
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.