Rules for adding or changing translations.
src/assets/i18n/*.json and no duplicate keys.npm run validate and translation-report.json.src/assets/i18n/*.json. Exception: packages/legacy-workbench keeps
them in src/i18n/locale-<lang>.json.src/assets/i18n files are merged into one bundle per language at build time; the legacy files are loaded
separately.visual.*, page.info.documentation_link,
components.dialog.unsaved_changes.confirmation.message. Add a new key to its feature’s existing section.missing_graph_configuration), not after its English text.aria-label describe the same thing: use the same key for both.$scope that then need a language-change subscription to stay current.After adding or changing translations, run:
npm run validate
If validation fails, inspect the generated translation-report.json.
The Angular workbench renders translations via Transloco — see frontend-angular.md.