Skip to content

feat(desktop): i18n infrastructure + Russian locale #5038

Description

@setar

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
welcome-ru welcome-en

Enter private key (onboarding)

Russian English
key-ru key-en

Reconnect to community (onboarding)

Russian English
reconnect-ru reconnect-en

Settings

Russian English
settings-ru settings-en

Main app — sidebar + Agents

Russian English
agents-ru agents-en

Prior Art / Duplicates

Searched open issues and PRs — none found covering i18n for the desktop app.

Questions for Maintainers

  1. Is react-i18next acceptable, or do you prefer a different library?
  2. Preferred location for locale files — shared/i18n/ or elsewhere?
  3. Should the language switcher live in onboarding only, Settings only, or both?
  4. 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions