Skip to content

Dashboard UI internationalization (i18n) support #343

Description

@ICEY1W32

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

  1. 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).
  2. Locale resolution: default en; follow system locale, with an optional override in Dashboard settings.
  3. 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).
  4. 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.
  5. Community-contributable locale files: en.json, zh.json, ja.json, … so translations can be added via PR without touching component code.

Alternatives considered

  1. Rely on browser/OS translation — poor quality, breaks layout, and cannot translate Tauri native menus or dialogs.
  2. 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.
  3. Machine-translate at build time — no; locale files should be human-curated for quality and consistency.

Area

Dashboard

Additional context

Metadata

Metadata

Assignees

No one assigned

    Labels

    feature requestNew feature or capability request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions