redhat-developer / redhat-developer/rhdh-plugins
boost: Add AI Catalog translations for supported RHDH locales
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 48
- Forks
- 120
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 337
Description
Context
Add translations for the Boost AI Catalog frontend.
- Jira: RHIDP-15479
- Prerequisite: PR #4613 must merge before Fullsend is triggered.
Implementation contract
Use the repository and Boost workspace agent instructions.
The authoritative implementation contract is:
workspaces/boost/openspec/changes/ai-catalog-frontend-translations/
Use this single OpenSpec change for the implementation requirements, design decisions, and task checklist. Do not reconstruct scope from unrelated Boost documents or Jira.
Scope
- Add German, Spanish, French, Italian, and Japanese translation files under
workspaces/boost/plugins/boost/src/translations/. - Register all five locales as lazy imports.
- Ensure every locale has the same flattened keys as
boostMessages. - Preserve interpolation placeholders.
- Add or update focused tests for locale key parity and English fallback.
- Add focused Playwright locale coverage:
- Keep the existing functional suite English-only.
- Switch the RHDH language through Settings for each supported locale.
- Assert representative AI Catalog strings render in the selected language.
- Remove or update the stale English-only comment in
playwright.config.ts.
- Add a changeset for
@red-hat-developer-hub/backstage-plugin-boost.
Use established translation implementations in other workspaces as structural examples.
Boundaries
- No backend, OGX, or unrelated UI behavior changes.
- No broad E2E refactor or duplication of the complete functional suite across six locales.
- Do not localize the sample lifecycle filter.
- Do not change the public translation API unless a verified missing string requires it.
- Do not rewrite the archived E2E change; new locale coverage belongs to this translation change.
Verification
From workspaces/boost, follow the required dependency setup in AGENTS.md, then run the relevant checks:
- focused Boost plugin tests and linting
yarn prettier:checkyarn tsc:fullyarn test:e2eyarn openspec:validate
If public exports or signatures change, also run yarn build:api-reports:only after type-checking and commit the required API report.
OpenSpec closure in the same PR
The implementation PR must close the OpenSpec bookkeeping after the code and tests are complete:
-
Check only tasks that were actually implemented and verified.
-
Archive the completed change without
--skip-specs:yarn openspec archive ai-catalog-frontend-translations --yes -
Ensure the canonical specification is updated by the archive operation.
-
Update
workspaces/boost/specifications/CURRENT.mdso translations are no longer listed as active work. -
Confirm
openspec listno longer lists the translation change. -
Confirm
yarn openspec:validatepasses.
Completion means the code, tests, changeset, canonical specification, task state, archive, and CURRENT.md all agree in the same PR.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with workspaces/boost/openspec/changes/ai-catalog-frontend-translations/ and workspaces/boost/AGENTS.md, then inspect the existing files under workspaces/boost/plugins/boost/src/translations/ and the locale registration. Run the focused Boost tests and Playwright setup before adding five locale files, parity and fallback coverage, selected-language AI Catalog checks, and the changeset. Done means the listed checks pass and the OpenSpec change is archived with CURRENT.md updated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- playwright, typescript
- Domain
- frontend, internationalization, testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100