This builder helps merge the messages.json
file, after running extract-i18n
, into target files using specified locales taking care to delete removed keys and add new ones.
In the Angular workspace root folder, run this command to install the builder:
npm install ngx-merge-json-translations --save-dev
{
"projects": {
"[PROJECT_NAME]": {
"merge-json-translations": {
"builder": "ngx-merge-json-translations:merge-json-translations",
"options": {
"locales": [
"en-GB"
],
"source": "src/i18n",
"destination": "src/i18n",
"sourceFile": "messages.json",
"indent": '\t'
}
}
}
}
}
To generare the json files run:
ng run [PROJECT_NAME]:merge-json-translations
In your angular.json
, you can configure your options
with the following:
Name | Default | Description |
---|---|---|
locales |
[] |
An array of locales that will be used to generate or update target files, i.e. ["en-GB", "fr"] |
source |
src/i18n |
The directory from which to find your source file, normally src/i18n |
destination |
src/i18n |
The directory to which the target files will be added or updated |
sourceFile |
messages.json |
The filename of the source file that the builder will look for in the source directory |
indent |
'\t' |
The indentation to use for the resulting JSON. Options are any string or number. Default is tabbed. |
Please note, if your sourceFile
is named messages.json
, then your translation files will use the same file stem i.e. messages.en-GB.json
.
Can be used directly after calling ng-extract-i18n
. For example, add a property in your scripts
section in package.json
named extract-merge
and set the value to ng extract-i18n && ng run [PROJECT_NAME]:merge-json-translations
. Then in your terminal, use npm run extract-merge
to sequentially generate your messages.json
file and then merge it into your translation files.