Skip to main content

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

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

translate_json-0.0.2.tar.gz (7.1 kB view hashes)

Uploaded Source

Built Distribution

translate_json-0.0.2-py3-none-any.whl (7.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page