Translate the front with a language provider (English + French) #242
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
spec
wayfinder:grilling
wayfinder:map
wayfinder:prototype
wayfinder:research
wayfinder:task
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Blocks
#245 Room status block with a fixed height and seat-relative wording
amaurycoudr/chess-project
#246 Blocking modal when the Room has closed
amaurycoudr/chess-project
#253 Test that each view rendered in French shows no English catalogue value
amaurycoudr/chess-project
Reference
amaurycoudr/chess-project#242
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?
Problem Statement
Every word the app shows is hard-coded English, spread over constants in each vertical (status lines, refusals, confirmations, presence, offers, home). A French-speaking player cannot use the app in French, and changing any wording means hunting through components.
Solution
The front reads all its copy from one message catalogue, in English and French. The language follows the browser on first visit and can be switched from the site header; the choice is remembered on that device. The library is Paraglide JS (inlang): messages compile to typed functions, unused ones are tree-shaken, and it ships a Vite plugin.
User Stories
langto match the language shown, so that it is read with the right voice.Seams
Implementation Decisions
en(source, fallback) andfr.localStorage, then the browser language, thenen.localStoragereads are guarded like the Seat token's.Testing Decisions
room.test.tsx,room-presence.test.tsx) and the home view tests.localStoragestill renders (browser language wins).apps/e2ekeeps asserting English strings; Playwright's default locale is English, so it stays green without changes.Out of Scope
/fr/...).Further Notes
The room rail spec rewrites much of the room copy; it should land after this one so its new strings go straight into the catalogue.
mentioned in issue #243
mentioned in issue #245
mentioned in issue #246
mentioned in issue #253
marked this issue as related to #253
marked this issue as related to #246
marked this issue as related to #245
mentioned in commit
27277633edmentioned in commit
693508ae82mentioned in commit
a9c152f468mentioned in commit
730f97c5fbmentioned in commit
d78c35c518mentioned in commit
ebaeaa1026mentioned in commit
ee94f74de8mentioned in commit
5fbaf841f9mentioned in commit
4dabf1ec28mentioned in commit
54b4189334mentioned in commit
4363e6dac1mentioned in commit
3a75fd0fcementioned in commit
8d07b35dffmentioned in commit
1f00ec7d74mentioned in commit
e79aa9701fmentioned in commit
92073ff33bmentioned in commit
39fe1a5dbfmentioned in commit
31bd8aee7bmentioned in commit
1fc320e772mentioned in commit
0ae546a572mentioned in commit
bb03e4a00bmentioned in merge request !557