feat(web): Add complete French UI translation catalogs - #685
Conversation
Register fr alongside en with a full matching message inventory, keeping institutional crypto terms like Token short and stable for layout. Co-authored-by: Cursor <cursoragent@cursor.com>
|
@tomiet is attempting to deploy a commit to the Solana Foundation Team on Vercel. A member of the Team first needs to authorize it. |
Greptile SummaryThis PR adds a complete French (
Confidence Score: 4/5Safe to merge after fixing the one mistranslated button label in the recurring payments section. One concrete translation mistake in apps/sdp-web/messages/fr/dashboard-payments.json — the Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[HTTP Request] --> B{sdp-locale cookie?}
B -- valid locale --> C[Use cookie locale]
B -- missing/invalid --> D{Accept-Language header?}
D -- matches supported locale --> E[Use Accept-Language locale]
D -- no match --> F[Fall back to en]
C --> G[getMessages locale]
E --> G
F --> G
G --> H{locale}
H -- en --> I[enMessages]
H -- fr --> J[frMessages]
I --> K[translate key values]
J --> K
K --> L[Rendered UI]
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
A[HTTP Request] --> B{sdp-locale cookie?}
B -- valid locale --> C[Use cookie locale]
B -- missing/invalid --> D{Accept-Language header?}
D -- matches supported locale --> E[Use Accept-Language locale]
D -- no match --> F[Fall back to en]
C --> G[getMessages locale]
E --> G
F --> G
G --> H{locale}
H -- en --> I[enMessages]
H -- fr --> J[frMessages]
I --> K[translate key values]
J --> K
K --> L[Rendered UI]
Reviews (9): Last reviewed commit: "fix(web): type-check French message cata..." | Re-trigger Greptile |
Bring the approved PR branch up to date without rebasing.
Keep the fr shared catalog inventory-matched after upstream language picker landed on main. Co-authored-by: Cursor <cursoragent@cursor.com>
Align home and payments activity labels with custody so Transfer is not left in English mid-French UI. Co-authored-by: Cursor <cursoragent@cursor.com>
Bring the approved PR branch up to date without rebasing.
Bring the approved PR branch up to date without rebasing.
Keep the fr catalog inventory-matched after English playground path placeholders were deleted on main. Co-authored-by: Cursor <cursoragent@cursor.com>
Bring the approved PR branch up to date without rebasing.
Keep the fr payments catalog inventory-matched after upstream added playground hint placeholders. Co-authored-by: Cursor <cursoragent@cursor.com>
|
@greptileai review |
|
@greptileai review |
|
QA-ready: the French catalogs are synchronized with latest |
What
Add a complete French (fr) UI message catalog matching the English inventory, and register
frin SDP web i18n config so Accept-Language / sdp-locale can resolve French.Why
The new UI i18n foundation shipped English-only. French needs a full same-shaped catalog, so locale switching doesn't miss keys, while keeping institutional crypto terms like Token short and layout-stable.
Related PRs
#996