Skip to content

Latest commit

 

History

History
139 lines (106 loc) · 3.88 KB

File metadata and controls

139 lines (106 loc) · 3.88 KB

@nx-extend/translations

@nx-extend/translations NPM package

Nx plugin to extract, push, pull and translate your FormatJS projects.

Features

  • Extract translations from FormatJS/React Intl projects
  • Push translations to translation providers (SimpleLocalize)
  • Pull translations from providers
  • Automatic translation using DeepL or Google Translate
  • Configurable through .translationsrc.json
  • Nx plugin for automatic target generation

Setup

Install

npm install -D @nx-extend/translations
nx g @nx-extend/translations:add

Usage

Configuration File

Create a .translationsrc.json file in your project root:

{
  "extends": "../.translationsrc.json",
  "projectName": "Project name in the provider",
  "projectId": "id in the provider",
  "provider": "simplelocalize",
  "outputDirectory": "<projectRoot>/src/translations",
  "outputLanguages": "<projectRoot>/src/translations/locales.json",
  "defaultLanguage": "en",
  "translator": "deepl",
  "translatorOptions": {
    "formality": "less",
    "fallbackToGooleTranslate": true
  },
  "publishAfterPush": true,
  "autoTranslate": true,
  "languages": [
    "en",
    "de",
    "nl",
    "pl",
    "fr",
    "ro",
    "da",
    "he",
    "sv"
  ]
}

Extract Translations

Extract translation strings from your source code:

nx extract-translations <project-name>

Push Translations

Push extracted translations to your translation provider:

nx push-translations <project-name>

Pull Translations

Pull translations from your translation provider:

nx pull-translations <project-name>

Translate

Automatically translate missing translations:

nx translate <project-name>

Nx Plugin

Add the plugin to your nx.json to automatically generate targets for projects with .translationsrc.json:

{
  "plugins": [
    {
      "plugin": "@nx-extend/translations/plugin"
    }
  ]
}

This will add the following targets to all projects with a .translationsrc.json file:

  • extract-translations
  • push-translations
  • pull-translations
  • translate

Configuration Options

Root Configuration

Options that are the same across projects can be placed in the root .translationsrc.json:

Option Type Description
provider string Translation provider to use (e.g., simplelocalize)
outputDirectory string Directory to output translations to
outputLanguages string Path to output available languages JSON
defaultLanguage string Default language code
translator string Translation service to use (e.g., deepl)
translatorOptions object Options for the translator service
publishAfterPush boolean Whether to publish after pushing to provider
autoTranslate boolean Whether to automatically translate missing strings
languages string[] List of language codes to support

Project Configuration

Option Type Description
projectName string Project name in the translation provider
projectId string Project ID in the translation provider
extends string Path to extend configuration from