Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
76 changes: 38 additions & 38 deletions locales/fr.json
Original file line number Diff line number Diff line change
@@ -1,75 +1,75 @@
{
" (Page %)": " (Page %)",
" and ": " et ",
"% issues": "% éditions",
"% issues": "% numéros",
"% min": "% min",
"% 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.

"1 issue": "1 numéro",
"1 min": "1 min",
"1 min read": "1 min de lecture",
"A collection of 0 issues": "Une collection de 0 édition",
"A collection of 0 issues": "Une collection de 0 numéro",
"A collection of 0 posts": "Une collection de 0 publication",
"A collection of 1 issue": "Une collection de 1 édition",
"A collection of 1 issue": "Une collection de 1 numéro",
"A collection of 1 post": "Une collection de 1 publication",
"A collection of {numberOfIssues} issues": "Une collection de {numberOfIssues} éditions",
"A collection of {numberOfIssues} issues": "Une collection de {numberOfIssues} numéros",
"A collection of {numberOfPosts} posts": "Une collection de {numberOfPosts} publications",
"About": "À propos",
"Access code": "",
"Access code": "Code d'accès",
"Account": "Mon compte",
"Additional issues will be published soon.": "De nouvelles éditions seront publiées prochainement.",
"Additional issues will be published soon.": "De nouveaux numéros seront prochainement publiés.",
"All episodes": "Tous les épisodes",
"All episodes →": "Tous les épisodes →",
"Already have an account?": "Vous avez déjà un compte ?",
"Archive": "Archives",
"Browse all issues": "Parcourir toutes les éditions",
"Browse all issues": "Parcourir tous les numéros",
"Browse archive": "Parcourir les archives",
"By {authors}": "Par {authors}",
"By {primaryAuthor}": "Par {primaryAuthor}",
"Close": "",
"Close": "Fermer",
"Close (Esc)": "Fermer (Esc)",
"Comments": "Commentaires",
"Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.": "Ne manquez aucune édition. Inscrivez-vous pour accéder à l'ensemble des éditions réservées aux abonnés.",
"Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.": "Ne manquez aucun numéro. Inscrivez-vous pour accéder à l'ensemble des numéros réservés aux abonnés.",
"Email sent": "E-mail envoyé",
"Enter": "",
"Enter access code": "",
"Enter your email": "Saisissez votre e-mail",
"Enter": "Valider",
"Enter access code": "Saisir le code d'accès",
"Enter your email": "Saisissez votre adresse e-mail",
"Featured": "À la une",
"Go to the front page →": "Aller à la page d'accueil →",
"Latest": "Nouveautés",
"Latest episodes": "Derniers épisodes",
"Latest issue": "Dernière édition",
"Latest issue": "Dernier numéro",
"Learn more": "En savoir plus",
"Listen on": "Écouter sur",
"Load more issues": "Charger plus d'éditions",
"Load more issues": "Charger plus de numéros",
"Login": "Connexion",
"Member discussion:": "Discussion des abonnés :",
"Members": "Abonnés",
"Members only": "Réservé aux abonnés",
"Menu": "Menu",
"More": "Plus",
"More issues": "Plus d'éditions",
"More issues": "Plus de numéros",
"More links": "Plus de liens",
"Newer Posts": "Publications plus récentes",
"Next": "Suivant",
"Next (arrow right)": "Suivant (flèche droite)",
"Next issue": "Édition suivante",
"Next issue": "Numéro suivant",
"Next post": "Publication suivante",
"Next →": "Suivant →",
"Older Posts": "Publications plus anciennes",
"Page {page} of {totalPages}": "Page {page} sur {totalPages}",
"Paid": "Payant",
"Paid-members only": "Réservé aux abonnés payants",
"Please enter a valid email address": "",
"Please enter a valid email address": "Veuillez saisir une adresse e-mail valide",
"Powered by Ghost": "Propulsé par Ghost",
"Powered by {ghostlink}": "Propulsé par {ghostlink}",
"Previous": "Précédent",
"Previous (arrow left)": "Précédent (flèche gauche)",
"Previous issue": "Édition précédente",
"Previous issue": "Numéro précédent",
"Previous post": "Publication précédente",
"Published by:": "Publié par :",
"RSS": "RSS",
"Read latest issue": "Lire la dernière édition",
"Read latest issue": "Lire le dernier numéro",
"Read more": "Lire la suite",
"Read next": "À lire ensuite",
"Recent posts": "Publications récentes",
Expand All @@ -78,40 +78,40 @@
"Search this site": "Rechercher sur ce site",
"See all": "Tout voir",
"Share": "Partager",
"Show more": "Voir plus",
"Show more": "En voir plus",
"Sign in": "Se connecter",
"Sign in.": "Se connecter.",
"Sign up now to get access to the library of members-only issues.": "Inscrivez-vous pour accéder à l'ensemble des éditions réservées aux abonnés.",
"Signups from this email domain are currently restricted.": "",
"Site owner login": "",
"Something went wrong, please try again.": "",
"Stay tuned": "Restez à l'écoute",
"Sign up now to get access to the library of members-only issues.": "Inscrivez-vous pour accéder à l'ensemble des numéros réservés aux abonnés.",
"Signups from this email domain are currently restricted.": "Les inscriptions depuis ce domaine de messagerie sont actuellement restreintes.",
"Site owner login": "Connexion administrateur",
"Something went wrong, please try again.": "Un problème est survenu, veuillez réessayer.",
"Stay tuned": "À suivre",
"Subscribe": "S'abonner",
"Subscribe now": "S'abonner maintenant",
"Subscribe to {sitetitle}": "S'abonner à {sitetitle}",
"Subscription confirmed!": "",
"Thanks! Now check your email to confirm.": "",
"Subscription confirmed!": "Abonnement confirmé !",
"Thanks! Now check your email to confirm.": "Merci ! Vérifiez votre boîte de réception pour confirmer.",
"Theme errors": "Erreurs de thème",
"This page is for paying subscribers only": "Cette page est réservée aux abonnés payants",
"This page is for subscribers on the {tiers} only": "Cette page est réservée aux abonnés des formules {tiers}",
"This page is for subscribers on the {tiers} only": "Cette page est réservée aux abonnés de la formule {tiers}",
"This page is for subscribers only": "Cette page est réservée aux abonnés",
"This post is for paying subscribers only": "Cette publication est réservée aux abonnés payants",
"This post is for subscribers on the {tiers} only": "Cette publication est réservée aux abonnés des formules {tiers}",
"This post is for subscribers on the {tiers} only": "Cette publication est réservée aux abonnés de la formule {tiers}",
"This post is for subscribers only": "Cette publication est réservée aux abonnés",
"Toggle fullscreen": "Basculer en plein écran",
"Toggle menu": "Basculer le menu",
"Too many sign-up attempts, try again later": "",
"Toggle menu": "Afficher le menu",
"Too many sign-up attempts, try again later": "Trop de tentatives d'inscription, réessayez plus tard",
"Topic": "Sujet",
"Topics": "Sujets",
"Upgrade": "Mise à niveau",
"Upgrade now": "Mettre à niveau maintenant",
"Upgrade to a paid account to get full access.": "Passez à un abonnement payant pour un accès complet.",
"Upgrade your account": "Surclasser votre compte",
"Upgrade": "Passer à l'offre supérieure",
"Upgrade now": "Passer à l'offre supérieure",
"Upgrade to a paid account to get full access.": "Passez à une offre payante pour un accès complet.",
"Upgrade your account": "Passer à une offre supérieure",
"View all →": "Tout voir →",
"View project": "Voir le projet",
"Website": "Site web",
"You might also like...": "Vous aimerez peut-être aussi…",
"Your email address": "",
"Your email address": "Votre adresse e-mail",
"Zoom in/out": "Zoom avant/arrière",
"comment": "commentaire",
"comments": "commentaires",
Expand Down