Skip to content

(CODUX-226) Internationalize the application shell - #3095

Merged
numnx merged 6 commits into
feature/CODUX-226-dashboard-internationalization-foundationfrom
task/feature-codux-22-t02-codex-69161365-mrjwgvkz
Jul 14, 2026
Merged

(CODUX-226) Internationalize the application shell#3095
numnx merged 6 commits into
feature/CODUX-226-dashboard-internationalization-foundationfrom
task/feature-codux-22-t02-codex-69161365-mrjwgvkz

Conversation

@numnx

@numnx numnx commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

🧩 Task: Internationalize the application shell

Automated task PR opened by Code UX for T02.

📋 Summary

Sprint: Sprint 226 · Dashboard internationalization foundation · Task: T02

Establish a dashboard-only English/German internationalization system with persisted locale selection, complete German coverage across every dashboard route and overlay except English documentation bodies, locale-aware formatting, and automated coverage checks while preserving backend contracts and runtime/API-authored messages verbatim.

🤖 Model & Provider

Provider Codex CLI
Model gpt-5.6-sol

⏱️ Timing

Started 2026-07-14 00:51:02 UTC
Finished 2026-07-14 01:19:25 UTC
Duration 28m 22s

📊 Token Usage

Metric Value
Input tokens 733,244
Cached input tokens 16,936,960
Output tokens 77,113
Total tokens 17,747,317
Invocations 2
Tool calls 163
Active time 48m 46s

Included usage estimate (subscription/local login): $14.45

✅ QA Review

⏳ QA review runs after this PR is opened. Check the task card in the dashboard for the outcome once it lands.

📝 Full Task Prompt
## Objective
Apply the T01 i18n runtime to every global shell surface and reusable control while leaving English documentation bodies and server-authored notification content unchanged.

## Scope
- Create `dashboard/src/v2/i18n/messages/shell.ts`
- Edit `dashboard/src/v2/components/TopNav.tsx`, `KineticDock.tsx`, `DockerStatusMenu.tsx`, `NotificationPanel.tsx`, `NotificationDetailsModal.tsx`, `TitleBar.tsx`, `IconButton.tsx`, and `VirtualizedItem.tsx`
- Edit presentation components under `dashboard/src/v2/components/layout/`, `top-nav/`, `search/`, `feedback/`, and `forms/`
- Edit shared controls including `ActionFeedbackRegion.tsx`, `AvantgardeSelect.tsx`, `Button.tsx`, `CellActions.tsx`, `CiStatusBadge.tsx`, `ConfirmDialog.tsx`, `Dialog.tsx`, `Drawer.tsx`, `DropdownMenu.tsx`, `EmptyState.tsx`, `FilterStrip.tsx`, `InfoIconPopover.tsx`, `ListWindowSelector.tsx`, `Menu.tsx`, `Modal.tsx`, `ModelCombobox.tsx`, `MultiSelect.tsx`, `Popover.tsx`, `ProviderCombobox.tsx`, `Select.tsx`, `Table.tsx`, `Toggle.tsx`, `Tooltip.tsx`, and `UnsavedChangesModal.tsx`
- Edit `dashboard/src/v2/lib/navigation-items.ts`, `notification-view-models.ts`, `status-labels.ts`, `ci-status-presentation.ts`, and `sprint-status-presentation.ts`
- Edit `dashboard/src/v2/docs-web/DocsWebPage.tsx`, `DocsWebSidebar.tsx`, `dashboard/src/v2/ErrorPage.tsx`, and `CanvasBackground.tsx`
- Update focused shell, navigation, notification, docs-viewer, and shared-control tests

## Implementation Requirements
1. Move static labels, accessible names, placeholders, helper text, empty/loading/error fallbacks, status labels, and pluralized counts into the shell message bundle and consume it through T01.
2. Make navigation metadata locale-aware by stable item ID so Sidebar, KineticDock, TopNav, global search, tooltips, and experience-mode filtering present consistent translated labels without changing paths or feature flags.
3. Translate notification chrome and dashboard-generated fallback copy while rendering notification titles, bodies, context, recommended actions, and server error text verbatim.
4. Translate Docs route headers, search controls, pagination, menus, landmarks, and result counts, but keep fetched document titles, descriptions, sections, source paths, and rendered Markdown content in English.
5. Preserve listbox keyboard behavior, focus restoration, live-region semantics, reduced-motion behavior, and responsive layouts with longer German labels.

## Constraints
- Do not edit `dashboard/src/main.tsx`, domain-specific modals, or route-owned components assigned to later tasks.
- Do not translate brand names, route paths, feature IDs, provider IDs, persisted enum values, or server-provided text.
- Keep reusable component APIs backward compatible; translated defaults must not override explicit caller-provided copy.
- Preserve the English-only documentation-content exception.

## Verification
- Run focused tests for `TopNav`, navigation experience modes, notifications, TitleBar, shared controls, and the Docs viewer.
- Run `pnpm run lint`.
- Run `pnpm run test:dashboard`.
- Run `pnpm run build`.
- Success means shell controls switch languages without remounting application state, keyboard and ARIA behavior is unchanged, and English docs content remains unmodified.
🌿 Branch Info

Base: feature/CODUX-226-dashboard-internationalization-foundation
Head: task/feature-codux-22-t02-codex-69161365-mrjwgvkz


🤖 Generated by Code UX

@numnx
numnx merged commit 9a07267 into feature/CODUX-226-dashboard-internationalization-foundation Jul 14, 2026
20 checks passed
@numnx
numnx deleted the task/feature-codux-22-t02-codex-69161365-mrjwgvkz branch July 14, 2026 08:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant