Skip to content

feat(gui): add full Chinese (zh) localization via react-i18next - #425

Open
uckkk wants to merge 1 commit into
andrewyng:mainfrom
uckkk:i18n-chinese
Open

feat(gui): add full Chinese (zh) localization via react-i18next#425
uckkk wants to merge 1 commit into
andrewyng:mainfrom
uckkk:i18n-chinese

Conversation

@uckkk

@uckkk uckkk commented Aug 3, 2026

Copy link
Copy Markdown

Summary

Adds full Chinese (Simplified) localization to the GUI using react-i18next.

What's included

  • i18n infrastructure: \src/i18n.ts\ + \locales/en.json\ + \locales/zh.json\ (1500+ keys), \I18nextProvider\ in \main.tsx, vitest setup for English-bundle test assertions
  • Default language zh, fallback en — the app now renders in Chinese out of the box, English as fallback
  • All UI surfaces converted to \ ()\ calls: sidebar, composer, settings (appearance/models/voice/personas), onboarding, inbox, connectors (Slack/GitHub/Gmail/HubSpot/Calendar), automations, skills, personas, audit, approvals, transcripts, right rail, gallery, quickstart templates
  • Pluralization + interpolation via i18next native _one/_other\ forms
  • Locale override persistence: Tauri commands
    ead_locale_override/\write_locale_override\ store translations in the app data dir so they survive app updates without rebuilding the binary

Verification

  • \ sc --noEmit: clean
  • \�itest run: 108/108 pass

  • pm run build: success

Notes

  • Brand names (Slack, GitHub, Gmail, etc.) intentionally left untranslated
  • Connector how-it-works mockups are fully localized

Introduce react-i18next-based internationalization across the GUI:
- Add i18n infrastructure (i18n.ts, locales/en.json + zh.json, test setup)
- Wrap the app in I18nextProvider; default language zh, fallback en
- Convert all hardcoded UI strings in components/views to t() calls:
  sidebar, composer, settings, onboarding, inbox, connectors, automations,
  skills, personas, audit, approvals, transcripts, right rail, gallery
- Add en/zh locale bundles with 1500+ keys, including plural forms
- Register locale-override Tauri commands so translations can persist
  across app updates without touching the official binary
- Add vitest setup so tests assert against the English bundle

Tests: 108 unit tests pass; tsc clean.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant