Repository navigation
feat(i18n): add Persian (fa) locale with full key coverage - #459
Merged
Merged
Conversation
Add a Persian (fa) frontend locale that mirrors the English catalog key for key, and register it as a right-to-left locale so it appears in the language picker and is negotiated from fa-* browsers. The i18n gate now requires full key coverage for fa alongside ru, de, fr, and zh-CN, so the locale can never silently fall back to English. Refs #457 (Persian UI portion).
|
Size Change: 0 B 🆕 Total Size: 0 B |
…y (WI-2033) Fix literal machine-translation artifacts across the Persian locale: domain terms (token, runner, board, swimlane, theme, slug, field, value, backlog, mapping, grant, assignment), untranslated fragments, garbled sentences, grammar/word-order errors, register inconsistencies, and terminology drift. Also fills several help strings that were empty in fa.
…033) Introduce DatePicker and CalendarGrid on top of Melt UI's headless createCalendar and @internationalized/date. The grid renders the calendar implied by the UI locale (Persian for fa) with the locale's week start and numerals, while the bound value stays a Gregorian YYYY-MM-DD string so storage and APIs are unchanged. Promote @internationalized/date to a direct dependency and add the picker strings to the fully covered locales.
Main introduced the backend email catalog and numeric date-format table. Persian is a fully covered locale, so add fa/email.js, register it in the locale index, translate the new email-template and portal-language keys, and declare the fa numeric layout. Regenerate the Go catalog.
Route every date input through DatePicker. Gregorian locales keep the native input (best keyboard and OS-picker behaviour); Persian loads the Jalali calendar lazily, so the calendar code and @internationalized/date never reach locales that keep the native picker. - Input delegates type=date to DatePicker, covering Input and TextField call sites; raw inputs and the create-modal date chips are converted. - Mirror the active locale into appLocale so DatePicker can read it without importing the frequently mocked i18n store. - Forward inputRef and key/blur/focus handlers so inline editors keep their keyboard save/cancel contract.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a Persian (
fa) frontend locale and registers it as a right-to-left locale, covering the Persian UI request in #457.frontend/src/lib/locales/fa/, mirroring the English catalog key for key (8,079 leaf keys).faregistered inSUPPORTED_LOCALESwithdirection: 'rtl', so it appears in the language picker and is negotiated fromfa-*browsers.check-i18n.jsnow requires full key coverage forfa(alongsideru,de,fr,zh-CN), so the locale can never silently fall back to English.Testing
cd frontend && bun run check— passes, including the i18n gate:faat 100% coverage, placeholder parity, and no untranslated carryovers.core-tests-internal, branchwi-2033-persian-locale):frontend/src/lib/stores/i18n.svelte.test.jscovers locale registration and RTL direction../run-overlay-script.sh ../core scripts/run-frontend-tests.sh src/lib/stores/i18n.svelte.test.js— 2 passed.Notes