-
-
Notifications
You must be signed in to change notification settings - Fork 11.3k
🌐 Added French translations for OTP and updated some wordings #25510
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
🌐 Added French translations for OTP and updated some wordings #25510
Conversation
|
Note Other AI code review bot(s) detectedCodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review. WalkthroughThis pull request updates French translations in two localization files: Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Areas to pay attention to:
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (2)
ghost/i18n/locales/fr/ghost.json(2 hunks)ghost/i18n/locales/fr/portal.json(10 hunks)
🧰 Additional context used
🧠 Learnings (10)
📓 Common learnings
Learnt from: kevinansfield
Repo: TryGhost/Ghost PR: 25118
File: apps/portal/src/App.js:719-719
Timestamp: 2025-10-09T14:16:58.334Z
Learning: In Ghost Portal (apps/portal), avoid suggesting changes to translation strings (wrapped in `t()`) unless directly related to the PR's primary objective, as changing them invalidates existing translations and creates unnecessary churn. If a typo or improvement is found in a translation string, it should be fixed across all instances in a dedicated PR.
Learnt from: cathysarisky
Repo: TryGhost/Ghost PR: 0
File: :0-0
Timestamp: 2025-05-20T21:08:21.026Z
Learning: In the Ghost project, translation files (ghost/i18n/locales/*/*.json) commonly have blank values for translations, and this is normal behavior that should not be flagged in reviews. These empty translations will be filled in separate PRs.
Learnt from: cathysarisky
Repo: TryGhost/Ghost PR: 23070
File: ghost/i18n/locales/hu/comments.json:45-45
Timestamp: 2025-04-30T16:27:03.542Z
Learning: In the Ghost project, new translation string keys are intentionally added with empty values initially and will be translated in a separate PR. Do not report missing translations for entirely new string additions.
Learnt from: cathysarisky
Repo: TryGhost/Ghost PR: 22175
File: ghost/i18n/locales/pt-BR/portal.json:18-18
Timestamp: 2025-02-12T20:09:12.731Z
Learning: In the Ghost project, new translation keys are first added with empty string values, and the actual translations are added later in separate PRs to maintain better organization of translation work.
Learnt from: cathysarisky
Repo: TryGhost/Ghost PR: 0
File: :0-0
Timestamp: 2025-01-29T15:27:29.391Z
Learning: When reviewing translation files in ghost/i18n/locales, translators should only modify the translated values and must not change the keys or placeholder styles (e.g., %%{status}%%, {site}, etc.) as they serve specific purposes like Mailgun string replacement.
Learnt from: cathysarisky
Repo: TryGhost/Ghost PR: 21982
File: ghost/i18n/locales/hu v2/portal.json:70-70
Timestamp: 2025-01-29T15:23:58.658Z
Learning: Typos and spelling errors within localization files (ghost/i18n/locales/*.json) must be treated as important problems, not nitpicks, as they directly affect the user experience for speakers of that language. These issues should be flagged with high priority during code review.
Learnt from: cathysarisky
Repo: TryGhost/Ghost PR: 22075
File: ghost/i18n/locales/pt-BR/portal.json:0-0
Timestamp: 2025-01-30T15:11:25.199Z
Learning: When reviewing translation files in i18n/locales/*, focus on identifying spelling errors in the translation values (right side) of the JSON key-value pairs, not the keys (left side).
Learnt from: cathysarisky
Repo: TryGhost/Ghost PR: 22175
File: ghost/i18n/locales/lt/portal.json:16-16
Timestamp: 2025-02-12T20:23:47.777Z
Learning: When reviewing localization changes, verify the actual history of translations before flagging potential deletions. Empty translation strings may be intentional placeholders rather than deleted content.
Learnt from: cathysarisky
Repo: TryGhost/Ghost PR: 0
File: :0-0
Timestamp: 2025-02-07T18:07:34.152Z
Learning: Always review translation changes in language files unless the right side (value) of the key-value pair is blank. This includes reviewing both the correctness and appropriateness of the translations.
Learnt from: cathysarisky
Repo: TryGhost/Ghost PR: 21651
File: ghost/i18n/locales/ar/comments.json:1-1
Timestamp: 2025-01-29T15:35:26.447Z
Learning: All JSON files containing translation strings in ghost/i18n/locales must include both opening and closing braces to maintain valid JSON structure.
📚 Learning: 2025-01-29T15:27:29.391Z
Learnt from: cathysarisky
Repo: TryGhost/Ghost PR: 0
File: :0-0
Timestamp: 2025-01-29T15:27:29.391Z
Learning: When reviewing translation files in ghost/i18n/locales, translators should only modify the translated values and must not change the keys or placeholder styles (e.g., %%{status}%%, {site}, etc.) as they serve specific purposes like Mailgun string replacement.
Applied to files:
ghost/i18n/locales/fr/ghost.jsonghost/i18n/locales/fr/portal.json
📚 Learning: 2025-05-20T21:08:21.026Z
Learnt from: cathysarisky
Repo: TryGhost/Ghost PR: 0
File: :0-0
Timestamp: 2025-05-20T21:08:21.026Z
Learning: In the Ghost project, translation files (ghost/i18n/locales/*/*.json) commonly have blank values for translations, and this is normal behavior that should not be flagged in reviews. These empty translations will be filled in separate PRs.
Applied to files:
ghost/i18n/locales/fr/ghost.jsonghost/i18n/locales/fr/portal.json
📚 Learning: 2025-04-30T16:27:03.542Z
Learnt from: cathysarisky
Repo: TryGhost/Ghost PR: 23070
File: ghost/i18n/locales/hu/comments.json:45-45
Timestamp: 2025-04-30T16:27:03.542Z
Learning: In the Ghost project, new translation string keys are intentionally added with empty values initially and will be translated in a separate PR. Do not report missing translations for entirely new string additions.
Applied to files:
ghost/i18n/locales/fr/ghost.jsonghost/i18n/locales/fr/portal.json
📚 Learning: 2025-10-09T14:16:58.334Z
Learnt from: kevinansfield
Repo: TryGhost/Ghost PR: 25118
File: apps/portal/src/App.js:719-719
Timestamp: 2025-10-09T14:16:58.334Z
Learning: In Ghost Portal (apps/portal), avoid suggesting changes to translation strings (wrapped in `t()`) unless directly related to the PR's primary objective, as changing them invalidates existing translations and creates unnecessary churn. If a typo or improvement is found in a translation string, it should be fixed across all instances in a dedicated PR.
Applied to files:
ghost/i18n/locales/fr/ghost.jsonghost/i18n/locales/fr/portal.json
📚 Learning: 2025-07-29T05:18:41.313Z
Learnt from: kasnol
Repo: TryGhost/Ghost PR: 24523
File: ghost/i18n/locales/zh-Hant/ghost.json:25-26
Timestamp: 2025-07-29T05:18:41.313Z
Learning: In Ghost's Traditional Chinese localization, when source English text is modified (such as removing words like "safely"), the corresponding Chinese translations should be updated to match. For example, if "safely" is removed from English security-related messages, the corresponding "放心" should also be removed from the Chinese translation to maintain translation accuracy.
Applied to files:
ghost/i18n/locales/fr/ghost.json
📚 Learning: 2025-02-12T20:09:12.731Z
Learnt from: cathysarisky
Repo: TryGhost/Ghost PR: 22175
File: ghost/i18n/locales/pt-BR/portal.json:18-18
Timestamp: 2025-02-12T20:09:12.731Z
Learning: In the Ghost project, new translation keys are first added with empty string values, and the actual translations are added later in separate PRs to maintain better organization of translation work.
Applied to files:
ghost/i18n/locales/fr/ghost.json
📚 Learning: 2025-07-29T05:24:43.780Z
Learnt from: kasnol
Repo: TryGhost/Ghost PR: 24523
File: ghost/i18n/locales/zh-Hant/portal.json:107-108
Timestamp: 2025-07-29T05:24:43.780Z
Learning: In Ghost's Traditional Chinese localization for portal.json, when translating membership restriction messages, "目前不接受此 email 網域的會員申請" is preferred over "此 email 網域的註冊目前不接受會員登記" as it provides better sentence flow and uses more natural phrasing while maintaining the same meaning.
Applied to files:
ghost/i18n/locales/fr/portal.json
📚 Learning: 2025-01-29T15:23:58.658Z
Learnt from: cathysarisky
Repo: TryGhost/Ghost PR: 21982
File: ghost/i18n/locales/hu v2/portal.json:70-70
Timestamp: 2025-01-29T15:23:58.658Z
Learning: Typos and spelling errors within localization files (ghost/i18n/locales/*.json) must be treated as important problems, not nitpicks, as they directly affect the user experience for speakers of that language. These issues should be flagged with high priority during code review.
Applied to files:
ghost/i18n/locales/fr/portal.json
📚 Learning: 2025-01-28T13:58:08.393Z
Learnt from: cathysarisky
Repo: TryGhost/Ghost PR: 22007
File: ghost/i18n/locales/sl/newsletter.json:18-18
Timestamp: 2025-01-28T13:58:08.393Z
Learning: When reviewing translations of newsletter.json, check that the translations of status words (free/complimentary/paid/trialing) will form grammatically correct sentences when substituted into the message template. The status words should agree grammatically with the word "subscriber" in the target language.
Applied to files:
ghost/i18n/locales/fr/portal.json
🔇 Additional comments (2)
ghost/i18n/locales/fr/portal.json (1)
21-224: Comprehensive French translations—all placeholder preservation and grammar checks pass.I've reviewed all 19 translation changes across the file. The translations consistently maintain placeholder integrity ({memberEmail}, {submittedEmailOrInbox}, {senderEmail}, {supportAddress}), preserve HTML tags (, ), and apply correct French grammar, punctuation conventions, and idiomatic phrasing. Complex multi-sentence messages (e.g., lines 109, 124, 206) are well-structured and convey their original meaning accurately. No spelling errors, grammar issues, or technical violations detected.
ghost/i18n/locales/fr/ghost.json (1)
37-37: Remaining translations are grammatically sound and placeholder-preserving.Lines 37, 42, 44, and 64 all maintain correct French grammar, proper punctuation (colon after line 37, exclamation marks, periods), and preserve placeholders ({siteTitle}, {otc}) accurately. The sign-in verification messages use appropriate formal tone with "Veuillez" and "Quel plaisir."
Also applies to: 42-42, 44-44, 64-64
cathysarisky
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📋 My AI helper 🤖 left you a few comments. I always believe the human over the AI, so feel free to disregard them after you take a careful look!
Leave me a comment when you're satisfied with everything, please. :)
🤖 AI: Overall, the translations are clear and consistent with a friendly tone. I noticed only a few minor whitespace issues and a couple of UI phrasing questions around the spam-marking terminology. Merci !
Drafted with my new i18n tooling - feedback welcome
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR is being reviewed by Cursor Bugbot
Details
Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.
To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.
…efer to the email content rather than the inbox
…re l’abonnement' to reflect resuming rather than extending the subscription
|
Hi @cathysarisky do you need anything else from me regarding the translation? Everything looks correct on my end. |
|
Thanks for your patience, and sorry for the delay. (I'm a volunteer, and the paying work has kept me away for a few days.) I'm merging now. Expect changes live in 1-2 weeks, depending on when exactly the next version of portal is released. |
ref: #23361
Added the missing French translations for the one-time code (OTP) sign-in feature.
Also corrected a few typos, missing words, and minor inconsistencies in the French locale files.
Note
Adds missing French OTP/verification strings and improves wording/punctuation across fr ghost.json and portal.json.
ghost/i18n/locales/fr/ghost.jsonOr use this link to securely sign in,Or, skip the code and sign in directly,Sign in now,Sign in to {siteTitle} with code {otc},Welcome back to {siteTitle}! Your verification code is {otc}.,Welcome back! Here's your code to sign in to {siteTitle}.ghost/i18n/locales/fr/portal.jsonAn email has been sent to {submittedEmailOrInbox}...,Code,Enter code above,Invalid verification code,Failed to verify code, please try again,Verifying...,your inbox.Written by Cursor Bugbot for commit 5cf3c22. This will update automatically on new commits. Configure here.