Skip to content

Updated French translations#151

Open
bst1n wants to merge 1 commit into
TryGhost:mainfrom
bst1n:i18n/fr-updates
Open

Updated French translations#151
bst1n wants to merge 1 commit into
TryGhost:mainfrom
bst1n:i18n/fr-updates

Conversation

@bst1n

@bst1n bst1n commented Jun 1, 2026

Copy link
Copy Markdown

Summary

Updates locales/fr.json to complete missing translations and refine awkward ones.

Filled empty strings (12)

All 12 previously empty strings come from ghost-private/private.hbs — the password-protected page (access code prompt, email validation, confirmation messages, etc.). They were unusable in French until now.

Reworked issue → "numéro"

In French, "édition" suggests the edition of a book; for a newsletter, the standard term is "numéro". Phrases like "Une collection de 15 éditions" read oddly — "Une collection de 15 numéros" is the natural phrasing.

Reworked Upgrade* strings

The previous translations mixed metaphors ("Surclasser votre compte", "Mise à niveau", "abonnement payant") and used nouns where the UI needs verbs. Aligned everything around "Passer à l'offre supérieure", which is the standard French phrasing on subscription sites (Netflix, Spotify, etc.) and works for both free→paid and tier upgrades.

Other refinements

  • Toggle menu: "Basculer le menu" → "Afficher le menu" (aria-label, more natural)
  • Stay tuned (newsletter context, not audio): "Restez à l'écoute" → "À suivre"
  • Site owner login: "Connexion propriétaire du site" → "Connexion administrateur"
  • Show more: "Voir plus" → "En voir plus"
  • Something went wrong, please try again.: "Une erreur s'est produite..." → "Un problème est survenu..."
  • Thanks! Now check your email to confirm.: "Consultez votre e-mail..." → "Vérifiez votre boîte de réception..."
  • Enter your email: "Saisissez votre e-mail" → "Saisissez votre adresse e-mail" (consistent with Your email address)
  • "This page/post is for subscribers on the {tiers} only": "des formules {tiers}" → "de la formule {tiers}" (singular — {tiers} is a single tier name)

@coderabbitai

coderabbitai Bot commented Jun 1, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

This PR updates French locale translations in locales/fr.json, correcting and completing translation strings across two main sections: issue/page UI labels and authentication/subscription messaging. Changes include terminology corrections (e.g., "édition(s)" to "numéro(s)"), filling previously empty translation values, and refining specific labels and prompts to align with UI updates.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Updated French translations' clearly and concisely summarizes the main changeset, which is a comprehensive update to French locale strings in locales/fr.json.
Description check ✅ Passed The description is directly related to the changeset, providing detailed context about filled empty strings, terminology changes (édition→numéro), reworked Upgrade strings, and other refinements with specific before/after examples.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@locales/fr.json`:
- Line 7: The French translation for the zero-count uses singular; update the
value for the "0 issues" string key to use the plural form "numéros" (change "0
numéro" → "0 numéros") and apply the same pluralization fix to the other
occurrence mentioned (the string at the other occurrence on line 11) so all
zero-count translations use "numéros".
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 58204b15-c795-429b-a72f-160474da69e3

📥 Commits

Reviewing files that changed from the base of the PR and between 59d536c and c5f432b.

📒 Files selected for processing (1)
  • locales/fr.json

Comment thread locales/fr.json
"% min read": "% min de lecture",
"0 issues": "0 édition",
"1 issue": "1 édition",
"0 issues": "0 numéro",

@coderabbitai coderabbitai Bot Jun 1, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Correct plural agreement with zero.

In French grammar, "0" (zéro) takes the plural form. Lines 7 and 11 should use "numéros" (plural) instead of "numéro" (singular).

📝 Proposed fix
-    "0 issues": "0 numéro",
+    "0 issues": "0 numéros",
-    "A collection of 0 issues": "Une collection de 0 numéro",
+    "A collection of 0 issues": "Une collection de 0 numéros",

Also applies to: 11-11

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@locales/fr.json` at line 7, The French translation for the zero-count uses
singular; update the value for the "0 issues" string key to use the plural form
"numéros" (change "0 numéro" → "0 numéros") and apply the same pluralization fix
to the other occurrence mentioned (the string at the other occurrence on line
11) so all zero-count translations use "numéros".

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the suggestion. We're keeping the singular form here: traditional French grammar uses the singular after 0 ("0 numéro", "0 enfant"), per the Académie française. The plural form is increasingly common in modern usage but the singular is grammatically correct, which is what we want for consistency with the rest of the locale.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bst1n, understood — thank you for the clarification! The Académie française rule (singular after "zéro") is a perfectly valid choice, and keeping it consistent throughout the locale makes sense.

🐇 📚


✏️ Learnings added
Learnt from: bst1n
Repo: TryGhost/Source PR: 151
File: locales/fr.json:7-7
Timestamp: 2026-06-01T14:37:31.367Z
Learning: In the TryGhost/Source repository's French locale file (`locales/fr.json`), zero-count strings intentionally use the singular form (e.g., "0 numéro", "0 publication") following traditional Académie française grammar, where "zéro" takes the singular. Do not flag these as incorrect plural agreement — this is a deliberate, grammatically justified choice for consistency throughout the locale.

Note: Learnings are effective only in the context of similar code segments. To apply general coding guidelines, please configure review instructions. You can manage existing learnings in the app.


🧠 Learnings used
Learnt from: cathysarisky
Repo: TryGhost/Source PR: 104
File: locales/en.json:1-42
Timestamp: 2026-02-08T15:14:42.344Z
Learning: When reviewing locale files (e.g. locales/en.json), be aware that some translation keys may originate from upstream/shared repos and are not present in the Source repo. Do not flag such keys as unused. Treat them as intentional cross-repo references; only flag a key as unused if it is truly absent or unused within Source itself. Document provenance if needed and avoid removing cross-repo keys based solely on their absence in this repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant