Skip to content

(CODUX-226) Add language selection and translate Settings chrome - #3092

Merged
numnx merged 6 commits into
feature/CODUX-226-dashboard-internationalization-foundationfrom
task/feature-codux-22-t04-codex-315a33ca-mrjwgzpy
Jul 14, 2026
Merged

(CODUX-226) Add language selection and translate Settings chrome#3092
numnx merged 6 commits into
feature/CODUX-226-dashboard-internationalization-foundationfrom
task/feature-codux-22-t04-codex-315a33ca-mrjwgzpy

Conversation

@numnx

@numnx numnx commented Jul 14, 2026

Copy link
Copy Markdown
Collaborator

🧩 Task: Add language selection and translate Settings chrome

Automated task PR opened by Code UX for T04.

📋 Summary

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

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:17 UTC
Finished 2026-07-14 01:08:21 UTC
Duration 17m 4s

📊 Token Usage

Metric Value
Input tokens 481,964
Cached input tokens 14,717,696
Output tokens 49,851
Total tokens 15,249,511
Invocations 2
Tool calls 125
Active time 39m 50s

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

✅ 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
Expose an accessible English/German Language selector under Settings → Appearance and internationalize the complete Settings shell without adding it to backend settings drafts.

## Scope
- Create `dashboard/src/v2/i18n/messages/settings-shell.ts`
- Edit `dashboard/src/v2/SettingsPage.tsx`
- Edit `dashboard/src/v2/components/settings/SettingsCategoryRail.tsx`, `SettingsCategoryPicker.tsx`, `SettingsContentPanels.tsx`, `SettingsActivePanelStatus.tsx`, `SettingsScopeControls.tsx`, `SettingsSurface.tsx`, and `SettingsFormFields.tsx`
- Edit `dashboard/src/v2/components/settings/panels/SettingsAppearancePanel.tsx` and `SharedPanelComponents.tsx`
- Edit `dashboard/src/v2/hooks/use-settings-page-state.ts`
- Edit `dashboard/src/v2/lib/settings-search-index.ts`, `settings-subcategory-docs.ts`, and `settings-navigation-state.ts`
- Update `tests/dashboard/settings-page.test.tsx`, `tests/dashboard/v2/settings-appearance-panel.test.tsx`, `tests/dashboard/v2/settings-page-state.test.tsx`, `tests/dashboard/lib/settings-search-index.test.ts`, and `dashboard/src/v2/components/settings/__tests__/SettingsControls.test.tsx`

## Implementation Requirements
1. Add a Language row to Display Settings with English and Deutsch options backed directly by T01 locale state; changing it must apply and persist immediately, update HTML `lang`, and never mark the system/project Settings draft dirty or require Save Changes.
2. Keep Language dashboard-owned in both System and Project views, omit inheritance/override badges, and provide visible helper text explaining that it affects dashboard UI only and not runtime/API messages or English documentation.
3. Translate Settings headers, category labels and descriptions, Smart Find, mobile drawer, scope controls, dirty/save/reset feedback, field badges, section help, Appearance controls, accessible labels, and validation fallbacks.
4. Make Smart Find index localized category metadata and German operational synonyms while retaining stable category IDs, provider names, technical acronyms, and existing experience-mode filtering.
5. Test immediate switching, reload persistence, project-scope behavior, no dirty-state mutation, keyboard/listbox behavior, live announcements, invalid stored locale fallback, and longer German copy on mobile.

## Constraints
- Do not add `language` or `locale` to `DashboardSettings`, `SystemSettings`, project overrides, settings API payloads, defaults, sanitizers, or repositories.
- Preserve draft mounting, save/reset behavior, navigation blocking, focus restoration, motion contracts, and docs-link destinations.
- Do not edit category panels assigned to T05–T08.
- Keep API error strings and persisted instruction/configuration values unchanged.

## Verification
- Run the focused Settings test files named in Scope.
- Run `pnpm run lint`.
- Run `pnpm run test:dashboard`.
- Run `pnpm run build`.
- Success means Language changes are immediate and durable but never participate in Settings dirty tracking or backend requests, and Settings navigation/search is fully usable in German.
🌿 Branch Info

Base: feature/CODUX-226-dashboard-internationalization-foundation
Head: task/feature-codux-22-t04-codex-315a33ca-mrjwgzpy


🤖 Generated by Code UX

@numnx
numnx merged commit 5cd5c2f into feature/CODUX-226-dashboard-internationalization-foundation Jul 14, 2026
20 checks passed
@numnx
numnx deleted the task/feature-codux-22-t04-codex-315a33ca-mrjwgzpy branch July 14, 2026 08:42
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