Skip to content

📓 Translate string values in a JSON document using the Google Cloud Translation API

License

Notifications You must be signed in to change notification settings

yxor/translate-json

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Stars Forks Issues MIT License

Translate JSON

About The Project

This is a command line tool to translate all string values in a JSON file to multiple languages using the Google Cloud Translate API.

Getting Started

Prerequisites

To run this program you need to have python 3.9 installed on your machine.

Installation

  1. To use this you need to have a google translate API key
  2. Install the package
    pip install translate-json

Usage

You can use this program as a command line tool.

usage: translate-json [-h] -f FILE -s SOURCE_LANGUAGE [-o OUT] -l LANGS [LANGS ...] -k KEY

Translate all string values in a JSON file to multiple languages using the google translate API.

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  The input file path
  -s SOURCE_LANGUAGE, --source-language SOURCE_LANGUAGE
                        The source language code
  -o OUT, --out OUT     The output directory path, will contain the created translation files
  -l LANGS [LANGS ...], --langs LANGS [LANGS ...]
                        List of target languages you want to translate the file to
  -k KEY, --key KEY     Google translate API key, don't set this if you already have a key set as the environement
                        variable "GOOGLE_TRANSLATE_TOKEN"

CLI Example

A file called source.json contains the following values

{
   "title": "Hello World",
   "tags": {
      "lara": ["Video games", "swimming", "Interrupt routines"],
      "david": [
         {
            "value": "Baseball",
            "count": 5
         },
         "Climbing trees"
      ]
   },
   "example": {
      "title": "This will be translated",
      "ok": true
   }
}

To translate this file to dutch and french, you can run this command

translate-json -f source.json -s en -o ./translations/ -l nl fr -k YOUR_API_KEY

After running the command, the translations folder will contain two files: source.nl.json and source.fr.json.

{
   "title": "Bonjour le monde",
   "tags": {
      "lara": [
         "Jeux vidéo",
         "la natation",
         "Routines d'interruption"
      ],
      "david": [
         {
               "value": "Base-ball",
               "count": 5
         },
         "Grimper aux arbres"
      ]
   },
   "example": {
      "title": "Cela sera traduit",
      "ok": true
   }
}
{
    "title": "Hallo Wereld",
    "tags": {
        "lara": [
            "Computerspellen",
            "zwemmen",
            "Routines onderbreken"
        ],
        "david": [
            {
                "value": "Basketbal",
                "count": 5
            },
            "Bomen klimmen"
        ]
    },
    "example": {
        "title": "Dit wordt vertaald",
        "ok": true
    }
}

Example

You can also import this library and use it in your code

from translate_json.translate import translate_all


if __name__=="__main__":
   # you must set the google cloud translate API key as an environment variable before running this program
   translate_all('source.json', 'en', ['nl', 'de', 'fr'], './dist/')

Contributing

Any contributions you make are greatly appreciated

License

Distributed under the MIT License. See LICENSE for more information.

About

📓 Translate string values in a JSON document using the Google Cloud Translation API

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published