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.

Upload JSON file
Free 14-day trial, No credit card required, Easy setup
web translation editor

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.0/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.

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

Integrated with your favourite tools

Have you already integrated an i18n library? We got good news! You can connect SimpleLocalize without doing any changes in the application code! We don't bound you with our own 'yet another i18n library'.

Browse integrations

Resources

The Complete Guide to Software Localization

The Complete Guide to Software Localization

Kinga WojciechowskabyKingaApril 30, 2022

Learn what is software localization and how to localize your website or app efficiently with SimpleLocalize translation management help.

Continue reading
How to translate NextJS app with next-translate?

How to translate NextJS app with next-translate?

Kinga WojciechowskabyKingaApril 07, 2022

Next-translate is a great choice for managing your translations in your NextJS application. Check how to install it and integrate with SimpleLocalize software.

Continue reading
Translation Editor Explained

Translation Editor Explained

Kinga WojciechowskabyKingaMarch 25, 2022

Explore features and functionalities of SimpleLocalize translation editor, learn how to use them and get started with translation management for your project.

Continue reading
Product Update: Better Language Management

Product Update: Better Language Management

Jakub PomykałabyJakubFebruary 03, 2022

See what's new in SimpleLocalize and learn how to use new features. This update focuses around language management, and export menu.

Continue reading
GitHub Actions is available!

GitHub Actions is available!

Jakub PomykałabyJakubNovember 28, 2021

GitHub Actions integration for Continuous Localization is available on GitHub Market! Connect your GitHub repository to SimpleLocalize i18n editor for free!

Continue reading

Ready to say

 ?

Greet your customers in their mother language

Try for FreeNo credit card required!
waves