Multi-language JSON file

Multi-language JSON is a file format which contains translation strings for multiple languages. Save time on managing content by yourself.

No credit card required 14-day free trial Tracking-free service
online translation editor interface
  • Auto-translation
  • Screenshots
  • Acceptance statuses
  • Quick search
  • Translation history
  • File export & import
  • Customizable view
  • Key descriptions
  • Namespaces support
  • Side-by-Side view
  • Spreadsheet view
  • Text summary

What is multi-language JSON?

Multi-language JSON is one of the most common JSON formats for web applications and software localization programs. It contains translations for many languages, where the first level JSON is a language key or locale. For example, for English, Polish, and German it would contain keys: en_US, pl_PL, de_DE. Each of the language keys contains an object with key-values, where the key is usually a translation key and the values are translations for the corresponding language. A sample file is shown below:

{
  "de_DE": {
    "SALE": "Verkauf",
    "ADDRESS": "Adresse"
  },
  "en_US": {
    "SALE": "Sale",
    "ADDRESS": "Address"
  },
  "pl_PL": {
    "SALE": "Sprzedaż",
    "ADDRESS": "Adres"
  }
}

In some cases, multi-language JSON files can contain additional levels of translation keys, but the rule of thumb is that the first level always contains locales or languages.

{
  "de_DE": {
    "navbar": {
      "title": "Titel",
      "home": "Startseite"
    }
  },
  "en_US": {
    "navbar": {
      "title": "Title",
      "home": "Homepage"
    }
  },
  "pl_PL": {
    "navbar": {
      "title": "Tytuł",
      "home": "Strona główna"
    }
  }
}

When to use multi-language JSON?

Multi-language JSON format is a very elegant way of keeping translations because it's only one file with all translations for all languages. It's commonly used in applications where the translations are loaded once and kept in application memory, or in an application that works on server-side. Thanks to that, client (end-user) never downloads the whole file. The server application returns only a subset of content to the user.

Client-side applications built with ReactJS or VueJS without any additional frameworks like NextJS or NuxtJS usually uses more sophisticated approaches to download translations to the client. One of the ways is to split translations into a multiple files by language.

No matter which type of application you need to translate, you have two options to access translations. One is to host translations on CDN, which offers fast access to translations for your end-users and option to change translations without re-deploying your application.The second option is to include translations with your project bundle, by downloading translations files locally and add them to the application package.

What is translation hosting?

translation hosting process

SimpleLocalize offers a translation hosting service that splits localization files automatically and upload them to the fast server, from which every end-user can freely download translations just for his language. A more sophisticated solution is to split translations even more and use only required translations for certain website. In such case, translations are additionally split by translation namespaces and loaded automatically by i18n plugin.

How to manage translation files locally?

SimpleLocalize also offers an option to upload and download translations thanks to open-source CLI which can be installed on any machine with any operating system including CI/CD sever machines.

Install SimpleLocalize CLI or download it manually.

$ curl -s https://get.simplelocalize.io/2.5/install | bash

Upload your translation files using upload command

$ simplelocalize upload \
        --apiKey YOUR_PROJECT_API_KEY \
        --uploadFormat multi-language-json \
        --uploadPath ./locales/translations.json

After adding new languages or changing translation strings, you can download translation files again to your project files by invoking download command with parameters like below

$ simplelocalize download \
        --apiKey YOUR_PROJECT_API_KEY \
        --uploadFormat multi-language-json \
        --uploadPath ./locales/translations.json

Need help? See our documentation page.

  • Android
  • Bitbucket
  • Cordova
  • Webhooks
  • Expo
  • iOS
  • NodeJS
  • GitLab
  • Unity
  • Ionic
  • FormatJS CLI
  • Jekyll
  • Module exports
  • Discord
  • Java language
  • Android strings
  • Resource XML
  • Excel file
  • Spring Boot
  • Kotlin language
  • PO/POT file
  • Localizable strings
  • TypeScript
  • i18next
  • Yaml file
  • Vue
  • Laravel
  • [object Object]
  • FormatJS
  • CSV file
  • SimpleLocalize JSON
  • Swift language
  • Excel
  • Google Translate
  • Multi Language JSON
  • JavaScript
  • React Native
  • React
  • Angular
  • Microsoft Teams
  • Java Properties
  • next-i18next
  • GitHub
  • FormatJS CLI
  • PHP Array
  • Zapier
  • next-translate
  • Single Language JSON
  • GitHub
  • Figma
  • Slack
  • macOS
  • GatsbyJS
  • PHP Array
  • Yaml file
  • Cordova
  • GitHub
  • FormatJS CLI
  • FormatJS
  • Zapier
  • FormatJS CLI
  • Spring Boot
  • Laravel
  • SimpleLocalize JSON
  • Bitbucket
  • Figma
  • macOS
  • NodeJS
  • Ionic
  • Unity
  • TypeScript
  • Swift language
  • CSV file
  • Vue
  • next-translate
  • next-i18next
  • Module exports
  • GatsbyJS
  • Excel file
  • Localizable strings
  • GitHub
  • Jekyll
  • Excel
  • React Native
  • Android strings
  • JavaScript
  • Google Translate
  • Single Language JSON
  • Java Properties
  • iOS
  • Kotlin language
  • [object Object]
  • Angular
  • Resource XML
  • GitLab
  • React
  • i18next
  • PO/POT file
  • Expo
  • Slack
  • Multi Language JSON
  • Webhooks
  • Android
  • Java language
  • Discord
  • Microsoft Teams
  • FormatJS CLI
  • Java language
  • Laravel
  • Swift language
  • Multi Language JSON
  • GitHub
  • SimpleLocalize JSON
  • Expo
  • Google Translate
  • Webhooks
  • Yaml file
  • PHP Array
  • JavaScript
  • Microsoft Teams
  • React
  • i18next
  • Resource XML
  • FormatJS CLI
  • FormatJS
  • Vue
  • Android
  • Excel
  • CSV file
  • Discord
  • Slack
  • GatsbyJS
  • Cordova
  • macOS
  • GitLab
  • Ionic
  • NodeJS
  • Zapier
  • Android strings
  • Unity
  • TypeScript
  • next-i18next
  • Angular
  • Kotlin language
  • Spring Boot
  • Localizable strings
  • Figma
  • Excel file
  • Jekyll
  • Java Properties
  • React Native
  • PO/POT file
  • next-translate
  • iOS
  • [object Object]
  • GitHub
  • Bitbucket
  • Single Language JSON
  • Module exports

Integrated with your favourite tools

Have you already integrated i18n library? You can now connect SimpleLocalize without doing much changes in the application code. We don't bound you with our own 'yet another i18n library'.

Browse integrations
Ready to say
|

Greet your customers
in their mother language

Start 14-day trial
No credit card required
country flags

Resources

Check out our latest blog posts and stay up to date with SimpleLocalize

How to auto-translate JSON files

How to auto-translate JSON files

Kinga WojciechowskabyKinga Wojciechowska5 min read

Simplify your localization process by learning how to auto-translate JSON files with SimpleLocalize's translation editor and auto-translation feature.

Continue reading
List of country flag icon projects

List of country flag icon projects

Jakub PomykałabyJakub Pomykała3 min read

This is a practical compilation of resources for country flags, which can benefit both designers and developers.

Continue reading
How to create a language selector with Tailwind CSS

How to create a language selector with Tailwind CSS

Jakub PomykałabyJakub Pomykała11 min read

Learn how to create a language selector for your website easily using Tailwind CSS. Follow our step-by-step guide for seamless localization.

Continue reading
SimpleLocalize: Tips & Tricks

SimpleLocalize: Tips & Tricks

Kinga WojciechowskabyKinga Wojciechowska5 min read

Learn our tips for using SimpleLocalize. Take advantage of the i18n editor's capabilities, automate the translation process and localize your software.

Continue reading
What is ICU? Our guide for ICU message formatting and syntax.

What is ICU? Our guide for ICU message formatting and syntax.

Kinga WojciechowskabyKinga Wojciechowska17 min read

ICU message format is the most widely used format for Unicode strings. Learn more about ICU message formatting and syntax for plurals, numbers, dates and time and more.

Continue reading
Java 19: Internationalization

Java 19: Internationalization

Jakub PomykałabyJakub Pomykała6 min read

Learn how to implement internationalization in your Java application. This tutorial will show you how to use Spring Boot to create a simple application with messages.properties.

Continue reading
Spring Boot 3.0: Internationalization

Spring Boot 3.0: Internationalization

Jakub PomykałabyJakub Pomykała5 min read

Learn how to implement internationalization in your Spring Boot application. This tutorial will show you how to use Spring Boot to create a simple application with messages.properties.

Continue reading
What is CORS?

What is CORS?

Jakub PomykałabyJakub Pomykała9 min read

Article explains what is CORS, popular among web developers CORS, what are the common problems and how to fix them.

Continue reading