Skip to content

VictorCazanave/google-sheets-i18n-generator

Repository files navigation

google-sheets-i18n-generator

npm version Build Status codecov Dependency Status GitHub

Generate i18n JSON/JS files from a Google Sheets spreadsheet

Installation

npm

npm install --save-dev google-sheets-i18n-generator

yarn

yarn add --dev google-sheets-i18n-generator

Usage

  1. Create a Google Sheets spreadsheet to store the i18n strings Example of spreadsheet

  2. If needed, configure Google Sheets (only the first time):

    More details

    2.1. Enable the Google Sheets API for your project following this documentation

    Menu to Google Sheets API Button to enable Google Sheets API

    2.2. Create OAuth ID credentials for your application

    Menu to create credentials

    2.3. Download the client_secret_xxx.json file of your application, then eventually move it to the right folder and rename it

    Button to download client secret file
  1. Copy the ID of the spreadsheet (can be found in the URL https://docs.google.com/spreadsheets/d/<spreadsheetId>/edit#gid=0)

  2. Run the command: gs-i18n <spreadsheetId>

  3. If needed, follow the instructions to allow gs-i18n to access your Google Sheets and download the credentials.json files (only the first time)

    More details
    Authorize this app by visiting this url: https://accounts.google.com/o/oauth2/v2/auth?access_type=offline&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fspreadsheets.readonly&response_type=code&client_id=...&redirect_uri=...
    Enter the code from that page here:
    
    Button to allow gs-i18n to access Google Sheets API
  4. The JSON files are generated in the ./locales folder

To customize the options, see the API section.

API

Usage: gs-i18n <spreadsheetId> [options]

Options:
  -v, --version            output the version number
  -b, --beautify <number>  number of spaces to insert white space in JSON/JS files (min: 0, max: 10) (default: 0)
  -c, --client <path>      path of client secret file (default: "./client_secret.json")
  -f, --format <format>    format of generated files (available values: "cjs", "esm", "json") (default: "json")
  -k, --key <index>        index of key column (default: 0)
  -l, --lang <index>       index of first language column (default: 1)
  -o, --output <path>      path of output directory (default: "./locales")
  -r, --range <range>      range of data to parse (default: "Sheet1")
  -t, --token <path>       path of credentials file (default: "./credentials.json")
  -h, --help               output usage information