Preferred json format for json files

I’d like to know what is the preferred json file format.
Here is an example of my json file format :-

        "Text1": {
            "0": "English Translation",
            "1": "Spanish Translation",
            "2": "Russian Translation"
        "text2": {
             "0": "English Translation",
            "1": "Spanish Translation",
            "2": "Russian Translation"

“0”, “1”, “2” are the language ids (there are many more language ids in the json file).

Hi @ryuk10 ,

Crowdin supports all major localization file formats. As far as I know, except for Apple’s new .xcstrings, there are no i18n libraries that use multilingual JSON.
For any file formats not supported by Crowdin, we offer the ability to develop a custom file format and often develop custom file formats for customers. Custom File Format Module | Crowdin Developer Portal

The engineering team would like to know what i18n library or system produced your multilingual JSON? If there is a standard for that file format and we have a chance to reuse that file format in the future, we’ll be happy to develop support for your JSON.

If we can’t, I can recommend that you consider splitting languages into multiple JSON files. One JSON for each target language. Then either load them based on a user’s locale, or compile and merge multiple JSON’s after translation so you don’t have to change your code. You could also consider developing a file format for Crowdin to not bother compiling translated JSON’s into one JSON, but that might be harder to implement.

Hi @TaniaM ,
This is how a json object will look like in my json file :-

"Code Name": {
    "13": "",
    "0": "",
    "5": "",
    "14": "",
    "12": "",
    "1": "",
    "2": "",
    "3": "",
    "4": "",
    "6": "",
    "7": "",
    "8": "",
    "9": "",
    "10": "",
    "11": "",
    "15": ""

and here are the ids and Languages that they correspond to:-

 0   English,
 1   Latam,
 2   Brazilian,
 3   Portuguese,
 4   Korean,
 5   Russian,
 6   Dutch,
 7   Filipino,
 8   French,
 9   German,
10   Italian,
11   Japanese,
12   Spanish,
13   SChinese,
14   TChinese,
15   Irish

I converted by csv file into this json using a self made script in python. (The change was needed to better support translations for the project)

Thanks for the details! Passing everything to our developers :slight_smile:


Coming back with the updates to you :slight_smile:

Our team suggests three options for you:

  1. The best solution here would be making small refactoring in your file so that each language has one JSON file with keys and translations into this language.

  2. If refactoring does not work for you, then you can convert your file into plain JSON for translation and then back to multilingual one for production.

  3. The last option (and the least preferred) would be making a custom file format:
    Custom File Format Module | Crowdin Developer Portal

Also, if you convert CSV into JSON, then perhaps you could first upload CSV into your Crowdin project → translate it → and then convert the translated CSV into this multilingual JSON?

Hope one of the options helps you!