Skip to content

feat(web): i18n follow-ups — intake-forms extraction + cross-island E2E - #2346

Merged
ToddHebebrand merged 1 commit into
mainfrom
feat/web-i18n-followups
Jul 12, 2026
Merged

feat(web): i18n follow-ups — intake-forms extraction + cross-island E2E#2346
ToddHebebrand merged 1 commit into
mainfrom
feat/web-i18n-followups

Conversation

@ToddHebebrand

Copy link
Copy Markdown
Collaborator

Follow-ups from the #2340 (pt-BR console i18n) review, now that it's merged.

What's here

1. Intake-forms surface internationalized. #2339 landed after the extraction waves, so its UI was hardcoded English. Converted TicketFormsCard (73 new keys: scope fieldset, field editor, preview, validation messages, toasts, plural counts via _one/_other), the form picker in CreateTicketPage, and TicketFormFields' select placeholder — en + pt-BR at exact parity. Admin-authored field labels/help text are tenant data and stay untranslated. en values are byte-identical to the previous hardcoded strings, so #2339's existing tests pass unchanged (62/62).

2. Cross-island language-switch E2E. New e2e-tests/tests/i18n-language-switch.spec.ts + Page Object: switches to pt-BR from Appearance settings and asserts two independent islands (settings content + header org-switcher) render Portuguese without a reload, that the locale survives a full reload (polling past the hydration-deferred restore), and that switching back to en works. All locators are data-testid (minimal testids added to the ThemingSettings language options); text assertions use exact catalog strings. Verified green 3 consecutive runs against a live wt-stack.

3. Dev API image build fix (drive-by, found while verifying). docker/Dockerfile.api.dev has been broken on main since #2324 added the @breeze/extension-api workspace dep — the Dockerfile never copied packages/extension-api, so pnpm install fails with ERR_PNPM_WORKSPACE_PKG_NOT_FOUND and no dev stack can build from a fresh worktree. Two COPY lines fix it.

Verification

  • i18n enforcement battery (keyUsage incl. dynamic-prefix + <Trans> checks, localeParity, extractionQuality) + all touched component suites: 19 files / 242 tests green
  • tsc --noEmit clean
  • E2E spec: 3× green against a real stack (1 passed each run)

Not included (needs a human): native pt-BR review of the machine-drafted strings — mazarine offered on Discord.

🤖 Generated with Claude Code

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 11, 2026

Copy link
Copy Markdown

Deploying breeze with  Cloudflare Pages  Cloudflare Pages

Latest commit: f4c1bf9
Status: ✅  Deploy successful!
Preview URL: https://02c2e8a4.breeze-9te.pages.dev
Branch Preview URL: https://feat-web-i18n-followups.breeze-9te.pages.dev

View logs

Post-#2340 follow-ups:

- internationalize the ticket intake-forms surface that landed in
  English via #2339: TicketFormsCard (73 keys), CreateTicketPage form
  picker, TicketFormFields select placeholder — en + pt-BR, count
  forms for plurals, admin-authored field content left untranslated
- add e2e-tests/tests/i18n-language-switch.spec.ts: pt-BR selection
  propagates across independent islands without reload, survives
  reload (hydration-deferred restore), reverts to en; verified green
  3x against a live wt-stack; minimal data-testids added to
  ThemingSettings language options
- fix docker/Dockerfile.api.dev: copy packages/extension-api so the
  dev API image builds again (broken since #2324 added the
  @breeze/extension-api workspace dep)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@ToddHebebrand
ToddHebebrand force-pushed the feat/web-i18n-followups branch from 9de44e9 to f4c1bf9 Compare July 12, 2026 20:52
@ToddHebebrand
ToddHebebrand merged commit 5a487a2 into main Jul 12, 2026
41 checks passed
@ToddHebebrand
ToddHebebrand deleted the feat/web-i18n-followups branch July 12, 2026 21:41
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.

2 participants