The dashboard uses message catalogs through I18nContext. English is the
fallback language and Spanish demonstrates a second complete catalog for core
navigation, page titles, scan controls, status messages and theme controls.
The selected locale is stored locally, applied to the document lang
attribute, and used with Intl.DateTimeFormat and Intl.NumberFormat. An
unsupported locale falls back to English. Security identifiers, Azure resource
names, findings and compliance control IDs are data and are never translated.
- Add a catalog to
frontend/src/i18n/messages.jsusing exactly the English keys. - Translate meaning rather than word order; retain
{name}placeholders. - Add the language's self-name to each catalog.
- Run
npm run test:i18n; missing keys fail the catalog test. - Review navigation at narrow and wide widths and verify date/number output.
The website remains English-first. Additional website locales should reuse the same terminology but must not duplicate security data or rule definitions.