feat(i18n): extend French translations beyond pilot scope #989
No reviewers
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!989
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "dev/949"
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?
Grows the Paraglide message catalog from 38 to 272 keys, covering all major dashboard surfaces in both English and French.
Test plan
just qaclean — typecheck, Biome lint/format, paraglide-check, i18n-string-check, all tests passparaglide-checkconfirmsen.jsonandfr.jsonare in 1:1 key parityCloses #949
behavior
apps/web/src/routes/$locale/settings.secrets.tsx~line 130: The secrets empty-state sentence is broken.settings_secrets_empty = "No secrets yet."but the JSX appendsreference it as ${SECRET:NAME}...directly after it, dropping the original connector "Add one to". Rendered:"No secrets yet. reference it as ${SECRET:NAME} from any artifact body."— lowercase continuation after a full stop, no connector. Either expand the message key to include the full sentence (and update fr.json to match), or keep the "Add one to" literal fragment in JSX as a separate translation key.behavior
apps/web/src/routes/$locale/settings.service.tsx~line 75:showToast(m.settings_service_title() + " saved", "success")produces"Config du service saved"in French — mixed-language string. Add a dedicatedsettings_service_savedkey (e.g."Service config saved"/"Configuration du service enregistrée") and use that instead of concatenation.- settings.secrets: split secrets empty-state into three translation keys (empty, empty_add, empty_after) so the ${SECRET:NAME} code element stays in JSX while the surrounding prose is fully translated in both locales. Previously rendered as "No secrets yet. reference it as …" (lowercase continuation after a full stop, missing "Add one to" connector). - settings.service: replace m.settings_service_title() + " saved" with a dedicated settings_service_saved key ("Service config saved" / "Configuration du service enregistrée") to prevent mixed-language toast output in French. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>Both points fixed in the latest push:
secrets empty-state — Split into three translation keys (
settings_secrets_empty,settings_secrets_empty_add,settings_secrets_empty_after) so the${SECRET:NAME}code element stays in JSX while all surrounding prose is fully translated. Renders correctly as: "No secrets yet. Add one to reference it as${SECRET:NAME}from any artifact body." (French: "Aucun secret pour l'instant. Ajoutez-en un pour le référencer comme${SECRET:NAME}depuis n'importe quel corps d'artefact.")service save toast — Added a dedicated
settings_service_savedkey ("Service config saved" / "Configuration du service enregistrée") and replaced the string concatenationm.settings_service_title() + " saved"with it. No more mixed-language output in French.