Skip to content

agent: add Fluent localization foundation - #1372

Draft
w3irdrobot wants to merge 2 commits into
masterfrom
feat/agent-i18n
Draft

w3irdrobot wants to merge 2 commits into
masterfrom
feat/agent-i18n

Conversation

@w3irdrobot

@w3irdrobot w3irdrobot commented Oct 29, 2026 •

Copy link
Copy Markdown
Contributor

Adds the first localization milestone: embedded Fluent catalogs, cached tr/typed tr_args helpers, OS locale resolution, and a host-persisted language selector. The update confirmation dialog is converted end to end, including its accessibility label. English is the only shipped catalog; this does not yet localize the whole app.

Incorporates the feature-design review: language changes apply after quitting and reopening Maple, plain labels are cached, parameterized labels are formatted on state changes, and tests default to English. Catalog checks use the existing test lane. A current-behavior contract and agent guidance document what to extract and what to leave alone.

Rebased onto master (56abe5e0) at da4c255e. The update dialog retains master's version-specific title through cached Fluent interpolation. Full local just ci validation of the rebased head is running.

Pre-rebase validation (Linux, 2026-10-30):

  • nix develop --no-update-lock-file -c just ci in apps/maple-agent passed: formatting, metadata/packaging regressions, all four warning-denied Clippy configurations, dependency/SQLCipher checks, workspace tests, warning-denied all-target builds, and headless tests.
  • Native app suite: 1,164 passed, 3 ignored; runtime/core: 772 passed, 5 ignored; headless app: 353 passed, 2 ignored. Other workspace suites also passed. The previously reported application-Vim test passed in the full suite; no disk-space failure occurred in this run.
  • Root nix flake check --no-update-lock-file --print-build-logs passed on x86_64-linux.
  • Reviewed source and tests against the internal feature design and second-opinion review: no blocking mismatch for the first infrastructure milestone. Restart-only locale changes, cached plain labels, typed args, embedded resources, host persistence, English test defaults, and the converted update dialog match that scope.
  • Tests ran on implementation 7d6ecec0 with the documentation-only reference cleanup later committed as ca02ff94; implementation bytes were unchanged.
  • Coverage includes locale fallback, partial/broken catalogs, Fluent plural rules and bidi isolation, label caching/restart behavior, UI lookup keys, catalog completeness/syntax, converted-module literal drift, keyboard/pointer selection, and host persistence.

No live service was used. Tests use disposable stores and GPUI's test harness. A real desktop smoke, non-English font/bidi rendering, and native macOS/Windows behavior have not been verified here. Native/tray menus, OAuth HTML, host errors, persisted timeline labels, date/money formatting, spell checking, and RTL support remain explicit follow-ups. Model prompts and user/generated content are outside UI translation.


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

@w3irdrobot w3irdrobot added the ci:package Build unsigned packages on this PR label Oct 29, 2026

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci:package Build unsigned packages on this PR

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant