diff --git a/src/core/server/locales/fr-FR/common.ftl b/src/core/server/locales/fr-FR/common.ftl
new file mode 100755
index 000000000..bb10b59be
--- /dev/null
+++ b/src/core/server/locales/fr-FR/common.ftl
@@ -0,0 +1,15 @@
+closeCommentingDefaultMessage = Les commentaires sont fermés sur cet article
+disableCommentingDefaultMessage = Les commentaires sont fermés sur cet article
+
+reaction-labelRespect = Aimer
+reaction-labelActiveRespected = Aimé
+reaction-sortLabelMostRespected = Le plus aimé
+
+comment-count =
+ { $number }
+ { $number ->
+ [one] Commentaire
+ *[other] Commentaires
+ }
+
+staff-label = Staff
diff --git a/src/core/server/locales/fr-FR/email.ftl b/src/core/server/locales/fr-FR/email.ftl
new file mode 100755
index 000000000..95a2fc97e
--- /dev/null
+++ b/src/core/server/locales/fr-FR/email.ftl
@@ -0,0 +1,123 @@
+# Notifications du compte
+
+email-footer-accountNotification =
+ Envoyé par { $organizationName }
+
+email-subject-accountNotificationForgotPassword = Demande de réinitialisation du mot de passe
+email-template-accountNotificationForgotPassword =
+ Bonjour { $username },
+ Nous avons reçu une demande de réinitialisation de votre mot de passe sur { $organizationName }.
+ Veuillez suivre ce lien afin de réinitialiser votre mot de passe : Cliquez ici pour réinitialiser votre mot de passe
+ Si vous n'avez pas demandé cela, vous pouvez ignorer ce mail.
+
+email-subject-accountNotificationBan = Votre compte a été banni
+email-template-accountNotificationBan =
+ { $customMessage }
+ Si vous pensez que cela a été fait par erreur, veuillez contacter les modérateurs
+ à { $organizationContactEmail }.
+
+email-subject-accountNotificationPasswordChange = Votre mot de passe a été modifié
+email-template-accountNotificationPasswordChange =
+ Bonjour { $username },
+ Le mot de passe de votre compte a été modifié.
+ Si vous n'avez pas demandé cette modification,
+ veuillez contacter nos modérateurs à { $organizationContactEmail }.
+
+email-subject-accountNotificationUpdateUsername = Votre nom d'utilisateur a été changé
+email-template-accountNotificationUpdateUsername =
+ Bonjour { $username },
+ Merci d'avoir mis à jour les informations de votre compte sur { $organizationName } . Les changements sont effectifs immédiatement.
+ Si vous n'avez pas éffectué de changement veuillez contacter nos modérateurs à { $organizationContactEmail }.
+
+email-subject-accountNotificationSuspend = Votre compte a été suspendu
+email-template-accountNotificationSuspend =
+ { $customMessage }
+ Si vous pensez que cela a été fait par erreur, veuillez contacter les modérateurs
+ à { $organizationContactEmail }.
+
+email-subject-accountNotificationConfirmEmail = Confirmer l'e-mail
+email-template-accountNotificationConfirmEmail =
+ Bonjour { $username },
+ Pour confirmer votre adresse e-mail à utiliser sur { $organizationName },
+ veuillez suivre ce lien: Cliquez ici afin de confirmer votre e-mail
+ Si vous n'avez pas récemment créé un compte de commentaire sur
+ { $organizationName }, vous pouvez ignorer cet email sans risque.
+
+email-subject-accountNotificationInvite = Invitation Team Coral
+email-template-accountNotificationInvite =
+ Vous avez été invité à rejoindre l'équipe de { $organizationName } sur Coral. Terminer
+ la configuration de votre compte ici.
+
+email-subject-accountNotificationDownloadComments = Vos commentaires sont prêts à être téléchargés
+email-template-accountNotificationDownloadComments =
+ Vos commentaires de { $organizationName } à partir de { $date } sont maintenant disponibles pour le téléchargement.
+ Télécharger l'archive de mes commentaires
+
+email-subject-accountNotificationDeleteRequestConfirmation =
+ Votre compte de commentateur est programmé pour être supprimé
+email-template-accountNotificationDeleteRequestConfirmation =
+ Une demande de suppression de votre compte de commentateur a été reçue.
+ La suppression de votre compte est prévue pour le { $requestDate }.
+ Après cette période, tous vos commentaires seront retirés du site,
+ tous vos commentaires seront retirés de notre base de données, et votre
+ nom d'utilisateur et l'adresse e-mail seront supprimés de notre système.
+ Si vous changez d'avis, vous pouvez vous connecter à votre compte et annuler la
+ demande avant l'heure prévue pour la suppression de votre compte.
+
+email-subject-accountNotificationDeleteRequestCancel =
+ Votre demande de suppression de compte a été annulée
+email-template-accountNotificationDeleteRequestCancel =
+ Vous avez annulé votre demande de suppression de compte pour { $organizationName }.
+ Votre compte est maintenant réactivé.
+
+email-subject-accountNotificationDeleteRequestCompleted =
+ Votre compte a été supprimé
+email-template-accountNotificationDeleteRequestCompleted =
+ Votre compte de commentateur sur { $organizationName } est maintenant supprimé. Nous sommes tristes de
+ vous voir partir!
+ Si vous souhaitez nous rejoindre à nouveau à l'avenir, vous pouvez vous créer
+ un nouveau compte.
+ Si vous souhaitez nous faire part de vos commentaires sur les raisons de votre départ et ce que nous pouvons faire pour
+ améliorer l'expérience des commentaire, veuillez nous envoyer un e-mail à
+ { $organizationContactEmail}.
+
+# Notification
+
+email-footer-notification =
+ Envoyé par { $organizationName } - Se désinscrire de ces notifications
+
+## En réponse
+
+email-subject-notificationOnReply = Quelqu'un a répondu à votre commentaire sur { $organizationName }
+email-template-notificationOnReply =
+ { $authorUsername } a répondu au commentaire que vous a posté sur { $storyTitle }
+
+## En vedette
+
+email-subject-notificationOnFeatured = L'un de vos commentaires a été mis en avant sur { $organizationName }
+email-template-notificationOnFeatured =
+ Un membre de notre équipe a mis en avant le commentaire que vous avez posté sur { $storyTitle }
+
+## Réponse du staff
+
+email-subject-notificationOnStaffReply = Quelqu'un à { $organizationName } a répondu à votre commentaire
+email-template-notificationOnStaffReply =
+ { $authorUsername } de { $organizationName } a répondu au commentaire que vous avez posté sur { $storyTitle }
+
+## On Comment Approved
+
+email-subject-notificationOnCommentApproved = Votre commentaire sur { $organizatioName } a été publié
+email-template-notificationOnCommentApproved =
+ { $organizationName }
+ TMerci d'avoir publié votre commentaire. Votre commentaire est publié: Voir le commentaire
+
+## On Comment Rejected
+
+email-subject-notificationOnCommentRejected = Votre commentaire sur { $organizationName } n'a pas été publié.
+email-template-notificationOnCommentRejected =
+ { $organizationName }
+ Le langage utilisé sur un de vos commentaire n'est pas conforme à la ligne de conduite de la communauté, et votre commentaire a été supprimé.
+
+# Notification Digest
+
+email-subject-notificationDigest = Votre dernier commentaire sur { $organizationName }
diff --git a/src/core/server/locales/fr-FR/errors.ftl b/src/core/server/locales/fr-FR/errors.ftl
new file mode 100755
index 000000000..483ef9dff
--- /dev/null
+++ b/src/core/server/locales/fr-FR/errors.ftl
@@ -0,0 +1,62 @@
+error-commentingDisabled = Les commentaires ont été désactivé pour tout le monde.
+error-storyClosed = Les commentaires sont désactivé sur cet article.
+error-commentBodyTooShort = Le commentaire doit avoir au moins {$min} caractères.
+error-commentBodyExceedsMaxLength =
+ Le commentaire ne doit pas dépasser {$max} caractères.
+error-storyURLNotPermitted =
+ L'URL de l'article n'existe pas dans les domaines autorisés.
+error-urlNotPermitted = L'url spécifiée : ({$url}) n'est pas autorisée.
+error-duplicateStoryURL = L'url spécifiée existe déjà.
+error-tenantNotFound = Le nom d'hôte ({$hostname}) n'a pas été trouvé.
+error-userNotFound = L'utilisateur ({$userID}) n'a pas été trouvé.
+error-notFound = URL de requête non reconnue ({$method} {$path}).
+error-tokenInvalid = Le Token de l'API fourni est invalide.
+
+error-tokenNotFound = Le token spécifié n'existe pas.
+error-emailAlreadySet = L'adresse e-mail a déjà été définie.
+error-emailNotSet = L'adresse e-mail n'a pas encore été définie.
+error-duplicateUser =
+ L'utilisateur spécifié existe déjà mais avec un autre système de connexion.
+error-duplicateEmail = L'adresse e-mail est déjà utilisée.
+error-localProfileAlreadySet =
+ Le compte spécifié a déjà un mot de passe défini.
+error-localProfileNotSet =
+ Le compte spécifié n'a pas encore de mot de passe défini.
+error-usernameAlreadySet = Le compte spécifié a déjà un nom d'utilisateur défini.
+error-usernameContainsInvalidCharacters =
+ Le nom d'utilisateur fourni contient des caractères invalides.
+error-usernameExceedsMaxLength =
+ Le nom d'utilisateur a dépassé le nombre de caractères maximum ({$max}).
+error-usernameTooShort =
+ Le nom d'utilisateur n'a pas assez de caractères ({$max}).
+error-passwordTooShort =
+ Le mot de passe doit avoir au moins {$min} caractères.
+error-emailInvalidFormat =
+ L'adresse e-mail fournie ne semble pas être un e-mail valide.
+error-emailExceedsMaxLength =
+ L'adresse e-mail a dépassé le nombre de caractères maximum ({$max}).
+error-internalError = Erreur interne
+error-tenantInstalledAlready = Le tenant a déjà été installé.
+error-userNotEntitled = Vous n'êtes pas autorisé à accéder à cette ressource.
+error-storyNotFound = L'article ({$storyID}) n'a pas été trouvé.
+error-commentNotFound = Le commentaire ({$commentID}) n'a pas été trouvé.
+error-invalidCredentials = L'e-mail et/ou le mot de passe est incorrect.
+error-toxicComment = Êtes-vous sûr ? Le langage utilisé dans ce commentaire pourrait violer les directives de notre communauté. Vous pouvez modifier le commentaire ou le soumettre à l'examen du modérateur.
+error-spamComment = Le langage utilisé dans ce commentaire ressemble à du spam. Vous pouvez éditer le commentaire ou le soumettre quand même à l'examen des modérateurs.
+error-userAlreadySuspended = L'utilisateur a déjà une suspension active jusqu'au {$until}.
+error-userAlreadyBanned = L'utilisateur est déjà banni.
+error-userBanned = Votre compte est actuellement banni.
+error-userSuspended = Votre compte est actuellement suspendu jusqu'au {$until}.
+error-integrationDisabled = L'intégration spécifiée est désactivée.
+error-passwordResetTokenExpired = Le lien de réinitialisation du mot de passe a expiré.
+error-emailConfirmTokenExpired = Le lien de confirmation par mail a expiré.
+error-rateLimitExceeded = Vous essayez de faire ça trop souvent. Veuillez attendre et réessayer plus tard.
+error-inviteTokenExpired = Le lien d'invitation a expiré.
+error-inviteRequiresEmailAddresses = Veuillez ajouter un e-mail pour l'envoi des invitations.
+error-passwordIncorrect = Mot de passe incorrect. Veuillez réessayer.
+error-usernameAlreadyUpdated = Vous ne pouvez changer votre nom d'utilisateur qu'une fois par { framework-timeago-time }.
+error-persistedQueryNotFound = La requête persistante avec l'ID { $id } n'a pas été trouvé.
+error-rawQueryNotAuthorized = Vous n'êtes pas autorisé à éxecuter cette requête.
+error-inviteIncludesExistingUser = Un utilisateur avec l'adresse e-mail { $email } existe déjà.
+error-repeatPost = Êtes-vous sûr ? Ce commentaire est très similaire à votre commentaire précédent.
+error-installationForbidden = { -product-name } est déjà installé. Pour installer un autre Tenant sur ce domaine ({ $domain }) vous devez générer un token d'installation.