Skip to content

feat(web): complete app localization and add Serbian - #7109

Draft
markokraemer wants to merge 33 commits into
mainfrom
i18n-complete-serbian
Draft

feat(web): complete app localization and add Serbian#7109
markokraemer wants to merge 33 commits into
mainfrom
i18n-complete-serbian

Conversation

@markokraemer

@markokraemer markokraemer commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Problem

The web app exposed eight languages, but locale coverage was incomplete. Serbian was absent. Many rendered strings bypassed the catalogs. Dynamic JSX templates and technical attributes also escaped the previous audit.

Changes

  • Add Serbian Cyrillic as locale sr.
  • Complete all nine catalogs with 17,163 leaf keys per locale.
  • Route rendered web UI copy through the i18n layer.
  • Add framework-safe client and server translation adapters.
  • Add dynamic JSX and technical-attribute checks to the i18n audit.
  • Reject missing keys, extra keys, blank values, Unicode replacement characters, HTML entities, untranslated prose, translated technical literals, altered placeholders, and translation sentinels.
  • Preserve code, CSS classes, component names, URLs, commands, and technical values.
  • Repair or translate 2,344 catalog values in the final catalog-quality pass.
  • Fix root provider order so translated client components render inside I18nProvider.
  • Add browser coverage for all nine locale selections, Supabase persistence, <html lang>, settings tabs, settings content, keyboard shortcuts, and five onboarding steps.
  • Document the browser journey in tests/spec/end-to-end.md.

Local verification

  • pnpm i18n:audit from apps/web: nine catalogs; 17,163 keys each; 0 missing; 0 extra; 0 invalid; 0 hardcoded findings.
  • bun test scripts/audit-i18n.test.mjs from apps/web: 1 passed; 0 failed.
  • bun test src/i18n from apps/web: 10 passed; 0 failed; 160,084 assertions.
  • E2E_GREP="each supported locale persists and renders" pnpm test -- --browser-only: 1 passed in 2.9 minutes.
  • Full browser lane from pnpm test -- --full: all 19 journeys passed in 317.2 seconds.
  • Repository API and CLI flows: 388 of 388 passed.
  • Standalone web unit suite: 9,383 passed; 0 failed.
  • Workspace and audit focused unit suites: 20 passed; 0 failed.
  • Workspace-switch browser journey: 1 passed in 10.2 seconds.
  • Sandbox-panel browser journey: 1 passed in 5.4 seconds.
  • TypeScript reports only the 15 documented @types/bun test declaration errors.
  • ESLint reports 0 errors and 433 existing React Compiler warnings.
  • git diff --check: passed.

The full package-quality lane exposed existing concurrency flakes. Each affected CLI and kortixd suite passed when rerun alone.

Preview verification

Preview: https://8080-01m1nktqrg4m6wd0edq76aqe0h.eu-west.sbx.platinum.dev

Workflow: https://github.com/kortix-ai/suna/actions/runs/33851221249

Commit: 0443ba231ebc7131318e49e0a884ac1450fc6019

  • Preview /health returns HTTP 200.
  • The response reports commit 0443ba231ebc7131318e49e0a884ac1450fc6019.
  • pnpm test -- --target-full passed on the isolated preview.
  • The deployed gate passed all configured REST, CLI, and 19 browser journeys.
  • Selecting Српски sends PUT /auth/v1/user and receives HTTP 200.
  • A fresh manual preview account persisted locale sr.
  • Reload preserved <html lang="sr">.
  • The page title rendered Kortix – AI командни центар за вашу компанију.
  • The page body rendered Serbian status copy.
  • CodeQL passed for Go, JavaScript/TypeScript, and Python.

Review note

Catalog structure, runtime rendering, locale persistence, and deployed browser behavior are verified. Native-language copy has not received human linguistic review across all 154,467 catalog values.

Delivery state

Draft. The branch is ready for review. Do not merge without explicit user approval.

@vercel

vercel Bot commented Sep 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
suna Ignored Ignored Preview Sep 4, 2026 7:59am UTC

Request Review

@markokraemer markokraemer added the preview Spin up an ephemeral per-PR preview backend label Sep 3, 2026
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Preview environment - live and tested

pnpm test -- --target-full passed.

The preview owns PostgreSQL, Supabase, API, gateway, frontend, and Mailpit. OAuth initiation is the only explicit preview exclusion.

Comment thread apps/web/src/features/session/composer/menus/slash-menu.tsx Fixed
@github-actions
github-actions Bot temporarily deployed to preview/pr-7109 September 4, 2026 07:00 Inactive
@markokraemer markokraemer added preview Spin up an ephemeral per-PR preview backend and removed preview Spin up an ephemeral per-PR preview backend labels Sep 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

preview Spin up an ephemeral per-PR preview backend

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant