Problem
The Buzz desktop UI is entirely hardcoded in English. There's no internationalization infrastructure, making the app inaccessible to non-English speakers and impossible to localize without forking.
As Buzz is positioned as a self-hosted platform for teams, this becomes a real barrier for adoption in non-English-speaking organizations.
Proposed Solution
Add i18n support to the desktop app using react-i18next with JSON locale files, and ship Russian as the first non-English locale.
Architecture
- Library:
react-i18next + i18next — industry standard, tree-shakeable, zero runtime overhead for the default locale
- Locale files:
desktop/src/shared/i18n/locales/{en,ru}.json — flat namespace structure (e.g. "sidebar.channels", "messages.send_message")
- Language switcher: available both during onboarding (top-right corner) and in Settings → Profile, persisted to
localStorage
- Fallback: always English — missing keys in any locale degrade gracefully
Scope
- ~560 translation keys covering all major surfaces: onboarding, sidebar, messages, settings, agents, channels, search, notifications, community management
- 2 locales:
en.json (source of truth) and ru.json (complete Russian translation)
- No behavioral changes for English users — the default locale is
en, so anyone who hasn't switched language sees identical output to today
What is NOT in scope (intentional)
- Pluralization beyond English/Russian (the framework supports it; other locales can be added incrementally as separate PRs)
- RTL layout support
- Server-side / relay string localization
- Mobile app (separate codebase)
Screenshots
Language switching at runtime — same build, toggled between English and Russian.
Welcome / splash screen
| Russian |
English |
 |
 |
Enter private key (onboarding)
| Russian |
English |
 |
 |
Reconnect to community (onboarding)
| Russian |
English |
 |
 |
Settings
| Russian |
English |
 |
 |
Main app — sidebar + Agents
| Russian |
English |
 |
 |
Prior Art / Duplicates
Searched open issues and PRs — none found covering i18n for the desktop app.
Questions for Maintainers
- Is
react-i18next acceptable, or do you prefer a different library?
- Preferred location for locale files —
shared/i18n/ or elsewhere?
- Should the language switcher live in onboarding only, Settings only, or both?
- Should
en.json be the canonical source, or would you prefer an extraction step (e.g. i18next-parser)?
A working branch is ready — happy to open a PR immediately after direction is confirmed.
Problem
The Buzz desktop UI is entirely hardcoded in English. There's no internationalization infrastructure, making the app inaccessible to non-English speakers and impossible to localize without forking.
As Buzz is positioned as a self-hosted platform for teams, this becomes a real barrier for adoption in non-English-speaking organizations.
Proposed Solution
Add i18n support to the desktop app using react-i18next with JSON locale files, and ship Russian as the first non-English locale.
Architecture
react-i18next+i18next— industry standard, tree-shakeable, zero runtime overhead for the default localedesktop/src/shared/i18n/locales/{en,ru}.json— flat namespace structure (e.g."sidebar.channels","messages.send_message")localStorageScope
en.json(source of truth) andru.json(complete Russian translation)en, so anyone who hasn't switched language sees identical output to todayWhat is NOT in scope (intentional)
Screenshots
Language switching at runtime — same build, toggled between English and Russian.
Welcome / splash screen
Enter private key (onboarding)
Reconnect to community (onboarding)
Settings
Main app — sidebar + Agents
Prior Art / Duplicates
Searched open issues and PRs — none found covering i18n for the desktop app.
Questions for Maintainers
react-i18nextacceptable, or do you prefer a different library?shared/i18n/or elsewhere?en.jsonbe the canonical source, or would you prefer an extraction step (e.g.i18next-parser)?A working branch is ready — happy to open a PR immediately after direction is confirmed.