Add Hebrew translations and localization #3288
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: lidorshimoni <26524213+lidorshimoni@users.noreply.github.com>
Agent-Logs-Url: https://github.com/lidorshimoni/vibe-kanban/sessions/c6fdaa9d-eae5-4eaa-9ef9-cd8be31fe1ea Co-authored-by: lidorshimoni <26524213+lidorshimoni@users.noreply.github.com>
Agent-Logs-Url: https://github.com/lidorshimoni/vibe-kanban/sessions/83c09f2a-db15-4b66-92be-16e64cda6f02 Co-authored-by: lidorshimoni <26524213+lidorshimoni@users.noreply.github.com>
Agent-Logs-Url: https://github.com/lidorshimoni/vibe-kanban/sessions/83c09f2a-db15-4b66-92be-16e64cda6f02 Co-authored-by: lidorshimoni <26524213+lidorshimoni@users.noreply.github.com>
Agent-Logs-Url: https://github.com/lidorshimoni/vibe-kanban/sessions/12831464-37a6-4150-90f7-902097418c78 Co-authored-by: lidorshimoni <26524213+lidorshimoni@users.noreply.github.com>
Agent-Logs-Url: https://github.com/lidorshimoni/vibe-kanban/sessions/12831464-37a6-4150-90f7-902097418c78 Co-authored-by: lidorshimoni <26524213+lidorshimoni@users.noreply.github.com>
…trings Agent-Logs-Url: https://github.com/lidorshimoni/vibe-kanban/sessions/1aad7974-a0da-4641-94f7-a567116fbffc Co-authored-by: lidorshimoni <26524213+lidorshimoni@users.noreply.github.com>
Localize remaining English onboarding copy in Hebrew mode
There was a problem hiding this comment.
Pull request overview
Adds Hebrew (HE) language support and completes localization of the onboarding landing UI by moving previously hardcoded strings into i18n resources, including right-to-left (RTL) document direction handling.
Changes:
- Add Hebrew as a supported UI language across shared TS types, Rust config, and i18n language mappings.
- Introduce Hebrew locale bundles (common/settings/projects/tasks/organization) and wire them into the i18n resource configuration.
- Localize onboarding landing page UI strings via
react-i18nextkeys (loading state, safety notice, sound labels, footer legal text, and action buttons).
Reviewed changes
Copilot reviewed 11 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| shared/types.ts | Adds HE to the UiLanguage union type. |
| packages/web-core/src/i18n/locales/he/common.json | Adds Hebrew common strings including onboarding landing keys. |
| packages/web-core/src/i18n/locales/he/settings.json | Adds Hebrew settings translations. |
| packages/web-core/src/i18n/locales/he/projects.json | Adds Hebrew projects translations. |
| packages/web-core/src/i18n/locales/he/tasks.json | Adds Hebrew tasks translations. |
| packages/web-core/src/i18n/locales/he/organization.json | Adds Hebrew organization translations. |
| packages/web-core/src/i18n/locales/en/common.json | Adds onboardingLanding keys in English (default fallback). |
| packages/web-core/src/i18n/languages.ts | Adds HE mapping and introduces RTL helpers (isRtlLanguage, updateDocumentDirection). |
| packages/web-core/src/i18n/config.ts | Registers Hebrew resources and updates language switching to also update document direction. |
| packages/web-core/src/features/onboarding/ui/LandingPage.tsx | Replaces hardcoded onboarding strings with i18n keys and translates sound option labels. |
| crates/services/src/services/config/versions/v6.rs | Adds Hebrew variant to the Rust UiLanguage enum for config serialization. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Agent-Logs-Url: https://github.com/lidorshimoni/vibe-kanban/sessions/79022551-345c-4665-b5eb-a9d0f6222e87 Co-authored-by: lidorshimoni <26524213+lidorshimoni@users.noreply.github.com>
…estions Align i18n document direction with resolved language and fix Hebrew footer clitic spacing
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Agent-Logs-Url: https://github.com/lidorshimoni/vibe-kanban/sessions/d4b6f6e5-4003-4fc7-9851-0d3807500e71 Co-authored-by: lidorshimoni <26524213+lidorshimoni@users.noreply.github.com>
…er-whitespace Fix onboarding footer text spacing between translated inline links
Aggressive review summary — PR #32882024-line PR adding Hebrew language pack plus first-class RTL (right-to-left) document-direction infrastructure. 11 files: 5 Hebrew JSON translations + RTL handling in What sets this apart from #3096 (Portuguese), #3212 (Russian), etc.The other queued language packs are pure JSON-translation additions. This PR also adds: const RTL_LANGUAGE_CODES = ['he'];
export function isRtlLanguage(langCode: string): boolean { ... }
export function updateDocumentDirection(langCode: string): void {
document.documentElement.dir = isRtlLanguage(langCode) ? 'rtl' : 'ltr';
document.documentElement.lang = langCode;
}Wired into the language-resolution path so the document Findings
VerdictApprove the RTL infrastructure portion. Defer the Hebrew translations to the same batched ruling as #3096 / #3212 / #3288 / #2785 / #2434. — Reviewed by automated single-pass review (i18n + RTL infra; full 4-tool battery skipped — translation quality requires native review and the infrastructure is mechanically reviewable). |

Summary
This PR fixes remaining onboarding UI strings that were still fully English in Hebrew mode.
Localized remaining hardcoded onboarding copy in:
packages/web-core/src/features/onboarding/ui/LandingPage.tsxpackages/web-core/src/i18n/locales/en/common.jsonpackages/web-core/src/i18n/locales/he/common.jsonWhat was localized
Technical flags/product tokens that should remain in English (e.g.
--yolo,--dangerously-skip-permissions) are preserved.Validation
pnpm run web-core:checkpnpm --filter @vibe/local-web run lint:i18nScreenshot
Note
Medium Risk
Adds a new supported UI language (Hebrew) and switches the app to dynamically set RTL/LTR direction when changing languages, which can affect layout/styling across the web UI.
Overview
Adds Hebrew as a supported
UiLanguageacross the Rust config model and shared TS types, and wires Hebrew resources into the web i18n initialization.Completes onboarding landing page localization by replacing remaining hardcoded English strings with
react-i18nextkeys (including sound option labels, safety notice, footer legal text, and action/loading states), and updates i18n language switching to also setdocument.dir/langbased on the resolved language (RTL forhe).Written by Cursor Bugbot for commit ad15044. This will update automatically on new commits. Configure here.