Web i18n: add French (fr) pilot locale #930
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#930
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Add
fras the second supported locale for the dashboard (apps/web), completing the pilot scope from US-B2 (specs/i18n-paraglide-user-stories.md) — real translations for login, onboarding, and settings (appearance + language), with no missing keys vsen.jsonunderjust paraglide-check.Parent / related: i18n platform #908, operator UX #909; contributor notes in
docs/i18n.md.Scope
apps/web/messages/fr.json— copy all keys fromen.jsonand translate values (ICU / placeholders preserved).apps/web/project.inlang/settings.json— add"fr"tolanguageTags(keepenassourceLanguageTag).apps/web/src/lib/locale.ts— extendSUPPORTED_LOCALESwith"fr"(typed union updates callers).just codegenso Paraglide emitsfrmodules; ensurejust qapasses (paraglide-check+ web typecheck/tests)./$locale/login, onboarding, settings appearance & language under/fr/…and confirm copy +document.documentElement.lang === "fr".fr(localized string orlang), in addition to existingencoverage in$locale.test.tsx.Non-goals
Acceptance criteria
frin Inlang +SUPPORTED_LOCALES; pilot routes render French when URL prefix isfr.messages/fr.jsonkey set matchesen.json; CIparaglide-checkgreen.fr) locale.🧹 janitor: this ticket has been idle-assigned since 2026-05-07T21:12:23.000Z. Re-dispatching.