Repository navigation
Conversation
🦋 Changeset detectedLatest commit: c8493ff The changes in this PR will be included in the next version bump. This PR includes changesets to release 3 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
|
@chanido is attempting to deploy a commit to the Clerk Production Team on Vercel. A member of the Team first needs to authorize it. |
|
Important Review skippedReview was skipped as selected files did not have any reviewable changes. ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (1)
🔗 Linked repositories identifiedCodeRabbit considers these linked repositories for cross-repo context during reviews:
Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 2 remain after this review. 📝 WalkthroughWalkthroughThe French legal-consent Terms of Service fallback label now uses a typographic apostrophe. The privacy-policy fallback is unchanged. A patch changeset records the update. Priority: ⬇️ Low Estimated code review effort: 1 (Trivial) | ~3 minutes Merge Risk: ⚪ Minimal · up to The French Terms-of-Service label now retains its apostrophe in the link text, without changing the privacy-policy label. No actionable merge-blocking risk remains. Architecture SummaryArchitecture risk: 🔵 Low · up to The change affects 1 system. Changed systems: Architecture concerns Review detailsSystems and components
Before / after behavior
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches 💡 1🛠️ Fix failing CI checks 💡
Comment |
There was a problem hiding this comment.
Copilot review overview
🟡 Changes recommended
The changeset includes implementation details contrary to the repository’s changelog convention.
Review effort: Balanced
Findings: 1
What changed in this PR
Corrects the missing apostrophe in the French legal-consent link.
Changes:
- Uses a typographic apostrophe preserved by the localization parser.
- Adds a patch changeset.
| File | Description |
|---|---|
packages/localizations/src/fr-FR.ts |
Corrects the French link label. |
.changeset/fr-fr-legal-consent-apostrophe.md |
Documents the patch release. |
💡 Configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
The label inside link("…") in
signUp.legalConsent.checkbox.label__termsOfServiceAndPrivacyPolicy used a
straight apostrophe. The modifier parser in @clerk/ui strips it together
with the quotes around the label, so the checkbox rendered
"Conditions dutilisation". Use the typographic apostrophe (’), which the
parser leaves intact.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2a82276 to
d6d0863
Compare
|
Thanks so much for reporting this and putting up a fix, @chanido! Your PR helped us track down the root cause: the localization parser in |

Description
In
fr-FR, the legal consent checkbox renders its Terms of Service link as "Conditions dutilisation", without the apostrophe.signUp.legalConsent.checkbox.label__termsOfServiceAndPrivacyPolicywrites the link label aslink("Conditions d'utilisation").getModifierWithParamsinpackages/ui/src/localization/applyTokensToString.tssplits the modifier arguments and runsp.replace(/['"]+/g, '')on each of them, which removes every'and"in the label rather than just the delimiting pair, so the apostrophe is gone beforelink()builds the markdown.This changes that one character to the typographic apostrophe
’, which the parser leaves intact. It is the onlylink("…")label in the package with a straight quote inside.To reproduce:

<SignUp />withfrFRfrom@clerk/localizations, legal consent enabled, Terms of Service and Privacy Policy URLs set. The checkbox reads "J'accepte les Conditions dutilisation et la Politique de confidentialité." Same in the published 4.21.2. In theclerk-jssandbox (pnpm dev:sandbox,/sign-up, localizationfrFR) the link reads "Conditions dutilisation" onmainand "Conditions d’utilisation" with this change.Note: the parser will still strip a quote inside any future label, and a comma inside a label splits it in two. If you want it, I can follow up with a
fix(ui)that strips only the surrounding quote pair, with a case in__tests__/applyTokensToString.test.ts.Checklist
pnpm testruns as expected.pnpm buildruns as expected.Type of change
🤖 Generated with Claude Code