feat(#4655): add AI Catalog translations for supported RHDH locales - #4841
fullsend-ai-coder[bot] wants to merge 1 commit into
Conversation
Add German, Spanish, French, Italian, and Japanese translation files for the Boost AI Catalog frontend plugin. Each locale file uses createTranslationMessages with flattened dot-notation keys matching the boostTranslationRef, and all five are registered as lazy imports in the translation resource. Changes: - Create de.ts, es.ts, fr.ts, it.ts, ja.ts locale files under plugins/boost/src/translations/ - Register lazy locale imports in src/translations/index.ts - Add ref.test.ts with key parity and placeholder preservation tests for all five locales - Add Playwright locale coverage test for representative strings - Update existing e2e tests to skip on non-English locales - Update playwright.config.ts to include all six locales - Add changeset for minor version bump - Archive the ai-catalog-frontend-translations OpenSpec change - Update specifications/CURRENT.md to reflect completed work Tasks 10 (dev app locale switching) and 11 (English fallback) are runtime verification steps that cannot be executed in the sandbox environment; all other tasks are complete. Closes #4655
|
Important This PR includes changes that affect public-facing API. Please ensure you are adding/updating documentation for new features or behavior. Changed Packages
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4841 +/- ##
=======================================
Coverage 60.14% 60.14%
=======================================
Files 2673 2673
Lines 106162 106162
Branches 29807 29817 +10
=======================================
Hits 63856 63856
Misses 41789 41789
Partials 517 517
*This pull request uses carry forward flags. Click here to find out more. Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
|
🤖 Finished Review · ✅ Success · Started 5:18 AM UTC · Completed 5:31 AM UTC Commit: Runtime: claude · Model: opus → claude-opus-4-6 · Cost: $6.13 |
|
Review — commentPR: #4841 — feat(#4655): add AI Catalog translations for supported RHDH locales SummaryThis PR adds German, Spanish, French, Italian, and Japanese translation files for the Boost AI Catalog frontend plugin, registers them as lazy imports, adds unit tests for key parity and placeholder preservation, adds Playwright locale coverage tests, and archives the OpenSpec change. The implementation is well-executed and follows established repository patterns. Correctness: All 5 locale files contain exactly 61 keys matching the flattened Security: No issues. Translation strings contain no HTML, JavaScript, or injection vectors. No secrets or credentials. No hidden Unicode control characters. PR body contains no instruction-injection patterns. Intent & coherence: All 21 changed files align with issue #4655 scope. No out-of-scope behavioral changes. Existing e2e test modifications are narrowly scoped skip guards only. The Style & conventions: File naming, JSDoc tags, default exports, license headers, ESLint disable patterns, and Playwright configuration all follow established repo patterns (verified against orchestrator, dcm, x2a, quickstart, bulk-import, and other workspaces). FindingsMedium1. Stale documentation — CURRENT.md trailing summary contradicts updated section
2. Stale documentation — boost-frontend-architecture.md directory tree comment
Low3. Stale "planned" wording in architecture doc technology table
4. TBD placeholder in archived spec Purpose section
5. No accessibility testing for non-English locales
6. Weaker type in e2e
7. Archived tasks 10-11 unchecked but CURRENT.md says "completed"
Labels: PR adds i18n locale files within the boost workspace |
There was a problem hiding this comment.
Note: The following review comments could not be posted on the diff (GitHub returned 422) and are included here instead:
workspaces/boost/specifications/CURRENT.md(file-level): Line 124 · [medium] documentation-currency
Line 124 still reads "Remaining current-release OpenSpec work: frontend translations" which contradicts the updated section above (lines 72-79) that declares translations completed. Issue #4655 explicitly requires updating CURRENT.md so translations are no longer listed as active work.
Suggested fix: Update line 124 to reflect completion, e.g. "All current-release OpenSpec work is complete." or remove the line.
|
|
||
| ## Purpose | ||
|
|
||
| TBD - created by archiving change ai-catalog-frontend-translations. Update Purpose after archive. |
There was a problem hiding this comment.
[low] documentation-currency
Canonical spec Purpose section has a TBD placeholder: "TBD - created by archiving change ai-catalog-frontend-translations. Update Purpose after archive."
Suggested fix: Replace TBD with actual purpose description.
| let current = messages; | ||
| for (let i = 0; i < path.length - 1; i++) { | ||
| current[path[i]] = current[path[i]] || {}; | ||
| current = current[path[i]] as Record<string, any>; |
There was a problem hiding this comment.
[low] style
transformFlatMessagesIntoTree parameter is typed Record<string, string> instead of typeof boostTranslationDe.messages, diverging from the stricter typing used in quickstart, bulk-import, and adoption-insights workspaces.
Suggested fix: Use typeof boostTranslationDe.messages for compile-time key safety.



Add German, Spanish, French, Italian, and Japanese translation files for the Boost AI Catalog frontend plugin. Each locale file uses createTranslationMessages with flattened dot-notation keys matching the boostTranslationRef, and all five are registered as lazy imports in the translation resource.
Changes:
plugins/boost/src/translations/
tests for all five locales
Tasks 10 (dev app locale switching) and 11 (English fallback) are runtime verification steps that cannot be executed in the sandbox environment; all other tasks are complete.
Closes #4655
Post-script verification
agent/4655-ai-catalog-translations)ce6f5f564c3de015df98325f90e9e763c00b0abe..HEAD)