Problem
Buzz currently ships with UI strings hardcoded in English across all three frontend clients (desktop/ — Tauri + React, web/, and mobile/ — Flutter). There is no i18n/localization infrastructure in any of them:
- No
i18next, react-intl, formatjs, lingui, or next-intl in package.json (root or desktop/)
- No Flutter
intl package wired up in mobile/
- No
locales/ or i18n/ directories in any client
- Text appears to be embedded directly in JSX/TSX components (desktop/web) and widget code (mobile)
This makes the app inaccessible to non-English-speaking users/teams, even though Buzz is meant to be a shared workspace for humans and agents across teams. A community member requested help changing the interface to Spanish, which surfaced that there's currently no path to do this at all — not even a partial one.
Proposal
Before writing any translation strings, agree on an approach for adding i18n infrastructure, scoped to one client first:
- Pick a starting client — desktop (Tauri + React) is the primary UI most users interact with day-to-day, so it seems like the natural first target. Web and mobile would follow the same pattern once the approach is validated.
- Pick a library — for the React/Tauri desktop client,
react-i18next (or formatjs/react-intl) are the common choices. Happy to write up a short comparison if useful.
- Extract strings incrementally — sweep
desktop/src/features/ and desktop/src/shared/ to move hardcoded strings into a translation-key system, defaulting to en with no behavior change.
- Add a language selector in settings, defaulting to system locale with an override.
- Add a first non-English locale (e.g.
es) as the initial proof that the pipeline works end-to-end.
This is a fairly invasive change (touches most UI files) so I wanted to check in before starting any implementation, per CONTRIBUTING.md's guidance to open an issue first for substantial work.
Questions for maintainers
- Is i18n already on the roadmap / being tracked elsewhere?
- Any preference on library or scope (e.g. desktop-only first vs. all three clients in parallel)?
- Would maintainers want string extraction done as one large PR or incrementally per-feature?
Happy to pick this up (starting with a proposal/RFC-style PR for the desktop client) once there's agreement on direction.
Problem
Buzz currently ships with UI strings hardcoded in English across all three frontend clients (
desktop/— Tauri + React,web/, andmobile/— Flutter). There is no i18n/localization infrastructure in any of them:i18next,react-intl,formatjs,lingui, ornext-intlinpackage.json(root ordesktop/)intlpackage wired up inmobile/locales/ori18n/directories in any clientThis makes the app inaccessible to non-English-speaking users/teams, even though Buzz is meant to be a shared workspace for humans and agents across teams. A community member requested help changing the interface to Spanish, which surfaced that there's currently no path to do this at all — not even a partial one.
Proposal
Before writing any translation strings, agree on an approach for adding i18n infrastructure, scoped to one client first:
react-i18next(orformatjs/react-intl) are the common choices. Happy to write up a short comparison if useful.desktop/src/features/anddesktop/src/shared/to move hardcoded strings into a translation-key system, defaulting toenwith no behavior change.es) as the initial proof that the pipeline works end-to-end.This is a fairly invasive change (touches most UI files) so I wanted to check in before starting any implementation, per CONTRIBUTING.md's guidance to open an issue first for substantial work.
Questions for maintainers
Happy to pick this up (starting with a proposal/RFC-style PR for the desktop client) once there's agreement on direction.