Summary
The web UI currently has all user-facing strings hardcoded in English. There is no internationalization (i18n) framework in place. This issue proposes adding multi-language support so the UI can be used in other languages.
Current state
- All strings are inline in React components (buttons, labels, headings, tooltips, error messages, onboarding steps, etc.)
- No i18n library installed (
next-intl, react-i18next, etc.)
- No locale files or translation keys exist
localeCompare is used in a few places for sorting, but there is no locale-aware UI rendering
Proposal
1 — Integrate an i18n framework
Add next-intl (idiomatic for Next.js) or react-i18next and set up:
- A
messages/ directory with per-locale JSON files (e.g. en.json, de.json)
- A locale provider at the app root
- A
useTranslations() hook (or equivalent) for accessing translated strings
2 — Extract all hardcoded strings
Replace inline English strings across all components with translation keys:
// before
<Button>Create new project</Button>
// after
<Button>{t('projects.createNew')}</Button>
Key areas to cover:
- Sidebar, navigation, tab strip
- Projects view & onboarding
- Dashboard & metrics
- Chat mode & terminal UI
- Settings & configuration
- Error messages & toasts
- Tooltips & placeholders
3 — Initial language support
Start with:
- English (en) — default, already exists as inline strings
- German (de) — second language
Additional languages can be contributed via PR once the framework is in place.
4 — Language switcher
Add a language selector in the settings or sidebar:
- Persisted in localStorage
- Falls back to browser locale (
navigator.language)
- Default: English
Suggested implementation order
- Install i18n framework + configure locale provider
- Create
en.json with all extracted strings
- Replace hardcoded strings with
t() calls (can be done incrementally per component area)
- Add
de.json translation
- Add language switcher UI
Scope / non-goals
- Not translating CLI output or terminal content — only the web UI chrome
- Not translating user-generated content (project names, chat messages, etc.)
- Not RTL layout support (can be a follow-up if needed)
Summary
The web UI currently has all user-facing strings hardcoded in English. There is no internationalization (i18n) framework in place. This issue proposes adding multi-language support so the UI can be used in other languages.
Current state
next-intl,react-i18next, etc.)localeCompareis used in a few places for sorting, but there is no locale-aware UI renderingProposal
1 — Integrate an i18n framework
Add
next-intl(idiomatic for Next.js) orreact-i18nextand set up:messages/directory with per-locale JSON files (e.g.en.json,de.json)useTranslations()hook (or equivalent) for accessing translated strings2 — Extract all hardcoded strings
Replace inline English strings across all components with translation keys:
Key areas to cover:
3 — Initial language support
Start with:
Additional languages can be contributed via PR once the framework is in place.
4 — Language switcher
Add a language selector in the settings or sidebar:
navigator.language)Suggested implementation order
en.jsonwith all extracted stringst()calls (can be done incrementally per component area)de.jsontranslationScope / non-goals