Skip to content

Would you accept a Chinese i18n PR? (UI-only, no broker-domain touch) #227

@jxdwinter

Description

@jxdwinter

Hi — I read CLAUDE.md's "External PRs — REFUSE" section and understand the policy. Before spending your time on a PR that might be auto-closed, I wanted to ask first.

What I built

A minimal Chinese i18n layer for the UI:

  • Small in-house i18n module at ui/src/i18n/ (LanguageProvider + useT/useI18n, ~80 lines, no third-party dep). English is the dictionary source-of-truth; missing keys fall through to English at runtime.
  • Default locale stays English. A language picker in Settings lets users switch to 中文; choice is persisted to localStorage (alice.lang) and restored on next launch. Switch is immediate, no reload.
  • ~50 UI files migrated (pages / sidebars / dialogs / Toast / ChatInput / ChatMessage / workspace Sidebar). Brand terms (OpenAlice, Alice, Trading as Git, MCP) kept English.
  • Dev-only deep surfaces (DevPage internals, LogsPage, SimulatorPage, AutomationFlowSection / WebhookSection) left English — only their page headers translated.

Boundary touch — zero

  • No backend / src/ / services/uta/ / packages/ changes. UI-only.
  • Logger output, tool descriptions (src/tool/*), and Zod schemas stay English by design — translating tool descriptions would degrade AI tool-call accuracy.
  • No migrations, no broker/UTA/trading-domain code touched.

Verification

  • cd ui && npx tsc -b clean
  • npx tsc --noEmit (Alice src) clean
  • pnpm test --project ui --run matches master baseline (29 failed / 29 passed — same pre-existing localStorage.clear failures; no new failures)

My questions

  1. Given the policy is rooted in broker-credential safety, would a strictly-UI i18n PR (no src/, no services/, no packages/ changes) be acceptable as an exception?
  2. If not, is there interest in turning this into a satellite repo / extension (per the README's ecosystem model)?
  3. If neither — totally fine, I'll keep it on my fork for personal use.

Branch on my fork (for reference, no action expected from you on it):
https://github.com/jxdwinter/OpenAlice/tree/feat/i18n-foundation

Thanks for considering, and either way thanks for OpenAlice — the project is great.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions