Short description
Dashboard UI internationalization (i18n) support
What problem does this solve?
The Dashboard UI is hardcoded in English. Verified in packages/dashboard: there is no i18n framework or translation dependency in package.json, and UI strings are literal English text (e.g. "Loading projects…" in ProjectsGrid.tsx:57, empty states, panel titles, status labels).
The existing language config (user-tier) only affects Magic Context–generated prose — historian summaries, dreamer content, sidekick output, and the guidance block. It does not translate the Dashboard interface.
This creates a mixed-language experience for non-English users: they manage memories, compartments, and notes written in their own language (e.g. Chinese) through an English-only interface. The community already maintains Chinese translations of the docs (docs-zh), which shows real demand for Chinese support.
Proposed solution
- Add an i18n layer to
packages/dashboard — either react-i18next or a lightweight custom dictionary (the app is small; a simple locale-file approach may suffice).
- Locale resolution: default
en; follow system locale, with an optional override in Dashboard settings.
- Scope: UI chrome only — buttons, labels, panel titles, empty states, status text, tooltips. Never translate schema, XML tags, memory category names, code identifiers, file paths, commands, logs, or quoted content (consistent with the existing
language config semantics).
- Keep UI locale and content language independent: the existing
language config controls generated prose; the UI locale controls the interface. They can be set separately.
- Community-contributable locale files:
en.json, zh.json, ja.json, … so translations can be added via PR without touching component code.
Alternatives considered
- Rely on browser/OS translation — poor quality, breaks layout, and cannot translate Tauri native menus or dialogs.
- Only use
language: "zh" for content — does not help the UI chrome; the interface stays English while content becomes Chinese, which is the current mixed experience.
- Machine-translate at build time — no; locale files should be human-curated for quality and consistency.
Area
Dashboard
Additional context
Short description
Dashboard UI internationalization (i18n) support
What problem does this solve?
The Dashboard UI is hardcoded in English. Verified in
packages/dashboard: there is no i18n framework or translation dependency inpackage.json, and UI strings are literal English text (e.g."Loading projects…"inProjectsGrid.tsx:57, empty states, panel titles, status labels).The existing
languageconfig (user-tier) only affects Magic Context–generated prose — historian summaries, dreamer content, sidekick output, and the guidance block. It does not translate the Dashboard interface.This creates a mixed-language experience for non-English users: they manage memories, compartments, and notes written in their own language (e.g. Chinese) through an English-only interface. The community already maintains Chinese translations of the docs (
docs-zh), which shows real demand for Chinese support.Proposed solution
packages/dashboard— eitherreact-i18nextor a lightweight custom dictionary (the app is small; a simple locale-file approach may suffice).en; follow system locale, with an optional override in Dashboard settings.languageconfig semantics).languageconfig controls generated prose; the UI locale controls the interface. They can be set separately.en.json,zh.json,ja.json, … so translations can be added via PR without touching component code.Alternatives considered
language: "zh"for content — does not help the UI chrome; the interface stays English while content becomes Chinese, which is the current mixed experience.Area
Dashboard
Additional context