Nx plugin to extract, push, pull and translate your FormatJS projects.
- 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
npm install -D @nx-extend/translations
nx g @nx-extend/translations:addCreate 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 translation strings from your source code:
nx extract-translations <project-name>Push extracted translations to your translation provider:
nx push-translations <project-name>Pull translations from your translation provider:
nx pull-translations <project-name>Automatically translate missing translations:
nx translate <project-name>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-translationspush-translationspull-translationstranslate
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 |
| 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 |