diff --git a/lang/fr.json b/lang/fr.json
index bbaa38a0e8549cd62c49ad1735d3bc60c09ee7f1..f5ca6a09396f218b242aadce8919c874ad97a0ff 100755
--- a/lang/fr.json
+++ b/lang/fr.json
@@ -68,7 +68,7 @@
 		"login"                              : "Identifiant",
 		"logInOncePasswordChanged"           : "Vous serez amené à vous connecter une fois la modification du mot de passe effectuée.",
 		"maxFileSizeReached"                 : "Taille maximale du fichier atteinte (1 MB)",
-		"minLengthChar"                      : "{{charLength}} caractère(s) au minimum requis",
+		"minLengthChar"                      : "{{charLength}} caractères au minimum requis",
 		"modificationSaved"                 	: "Modification enregistrée",
 		"myProfil"                           : "Mon profil",
 		"newPassword"                        : "Nouveau mot de passe",
@@ -91,7 +91,7 @@
 		"notificationNewAccountBody"		 : "Bienvenue,<br/><br/>Vous disposez maintenant d'un compte dans l'application Maarch Parapheur.<br/><br/>Pour vous connecter et définir votre mot de passe, merci de bien vouloir cliquer sur le lien ci-dessous :<br/><br/>",
 		"notificationNewAccountId"		 	 : "<br/><br/><b>Votre identifiant :</b>",
 		"notificationNewAccountFooter"		 : "<br/><br/>Ce message est envoyé automatiquement à la suite d'une action de l'administrateur.<br/>Merci de ne pas y répondre.<br/><br/>Pour toutes questions, merci de contacter l'administrateur technique de la solution.",
-		"notifications"                      : "Notification(s)",
+		"notifications"                      : "Notifications",
 		"numberRequired"                     : "1 chiffre requis",
 		"onRange"                            : "le",
 		"open"                               : "ouvrir",
@@ -172,7 +172,7 @@
 		"visaLabel": "à viser",
 		"signLabel": "à signer",
 		"noteLabel": "à annoter",
-		"documents": "document(s)",
+		"documents": "documents",
 		"visaWorkflow": "Circuit de visa",
 		"noteUser": "Annotateur",
 		"mainDocument": "document principal",
@@ -195,7 +195,7 @@
 		"substituteMsg": "Vous agissez en tant que",
 		"substitutionWarn": "Vous avez choisi une délégation, vous ne pourrez plus faire d'action.",
 		"manage_users": "Utilisateurs",
-		"manage_usersAlt": "Utilisateur(s)",
+		"manage_usersAlt": "Utilisateurs",
 		"manage_usersDesc": "Ajouter / Modifier / Supprimer les utilisateurs de l'application.",
 		"manage_email_configuration": "Serveur de messagerie",
 		"manage_email_configurationDesc": "Paramétrer le serveur de messagerie pour les envois de notifications aux utilisateurs.",
@@ -208,7 +208,7 @@
 		"x509Enabled": "Certificat x509 activé",
 		"userCreation": "Ajouter un utilisateur",
 		"manage_ldap_configurations": "Annuaires ldap",
-		"manage_ldap_configurationsAlt": "Annuaire(s) ldap",
+		"manage_ldap_configurationsAlt": "Annuaires ldap",
 		"manage_ldap_configurationsDesc": "Ajouter / modifier / supprimer les annuaires ldap servant à l'authentification utilisateur.",
 		"ldapCreation": "Ajouter une entrée ldap",
 		"label": "Libellé",
@@ -266,7 +266,7 @@
 		"emailSendFailed" : "Échec d'envoi",
 		"emailSendInProgress" : "En cours d'envoi",
 		"emailSendSuccess" : "Envoi réussi",
-		"manage_groupsAlt" : "Groupe(s)",
+		"manage_groupsAlt" : "Groupes",
 		"groupCreation" : "Ajouter un groupe",
 		"manage_usersAdmin" : "Administrer les utilisateurs",
 		"manage_groupsAdmin" : "Administrer les groupes",
@@ -275,7 +275,7 @@
 		"manage_documentsAdmin" : "Accéder à tous les documents et gérer les circuits",
 		"indexationAdmin" : "Initier un nouveau circuit de visa/signature",
 		"users" : "Utilisateurs",
-		"linkedUsers" : "Utilisateur(s) associé(s)",
+		"linkedUsers" : "Utilisateurs associés",
 		"addUser" : "Ajouter un utilisateur",
 		"privileges" : "Privilèges",
 		"groupWarnMsg" : "Vous risquez de ne plus pouvoir accéder à cette page !",
@@ -287,20 +287,20 @@
 		"selectSignature" : "Apposer la signature sur le document",
 		"removeSignature" : "Supprimer la signature",
 		"chooseValue" : "Choisissez une valeur",
-		"availableValues" : "Valeur(s) disponible(s)",
+		"availableValues" : "Valeurs disponibles",
 		"noAvailableValue" : "Aucun élément disponible",
 		"autocompleteInfo" : "La recherche doit contenir au minimum&nbsp;<b>3 caractères</b>",
-		"availableUsers" : "Utilisateur(s) disponible(s)",
+		"availableUsers" : "Utilisateurs disponibles",
 		"signatureInDocAdded" : "Signature apposée en bas du document",
-		"associatedDocuments" : "Document(s) associé(s)",
-		"attachedElements" : "Document(s) attaché(s)",
+		"associatedDocuments" : "Documents associés",
+		"attachedElements" : "Documents attachés",
 		"note" : "Note",
 		"collapseNote" : "Réduire la note",
 		"expandNote" : "Ouvrir la note",
 		"convertingDocument" : "Document en cours de conversion",
-		"manage_password_rulesAdmin" : "Administrer les règles de mots de passes",
+		"manage_password_rulesAdmin" : "Administrer les règles de mots de passe",
 		"manage_password_rules" : "Sécurités",
-		"manage_password_rulesDesc" : "Administrer les règles de mots de passes",
+		"manage_password_rulesDesc" : "Administrer les règles de mots de passe",
 		"passwordRulesUpdated" : "Règle de mot de passe mise à jour",
 		"password_complexityNumber": "1 chiffre au minimum",
         "password_complexityNumberRequired": "Chiffre requis",
@@ -313,13 +313,13 @@
         "password_historyLastUseRequired": "Nombre de mots de passe sauvegardés",
         "password_lockAttemptsRequired": "Nombre de tentatives de connexions",
         "password_lockTimeRequired": "Temps de blocage",
-        "password_minLength": "caractère(s) au minimum",
+        "password_minLength": "caractères au minimum",
         "password_minLengthRequired": "Longueur minimale",
         "password_renewal": "Veuillez noter que ce nouveau mot de passe ne sera valide que",
         "password_renewalRequired": "Expiration du mot de passe",
-        "chars": "caractère(s)",
-        "days": "jour(s)",
-        "minutes": "minute(s)",
+        "chars": "caractère",
+        "days": "jours",
+        "minutes": "minutes",
         "password2_renewal": "Passé ce délai, vous devrez en choisir un nouveau",
         "hello": "Bonjour",
         "typeCurrentPassword": "Entrez votre mot de passe actuel",
@@ -332,10 +332,10 @@
 		"wrongCurrentPassword": "Le mot de passe actuel n'est pas correct",
 		"alreadyUsedPassword": "Le mot de passe a déjà été utilisé",
 		"homePage": "Page d'accueil",
-		"newDocumentToVisa": "Importer de nouveau(x) document(s)",
+		"newDocumentToVisa": "Importer de nouveaux documents",
 		"searchUser": "Rechercher un utilisateur",
 		"signatureModes": "Modes de signature",
-		"documentsToUpload": "Document(s) à téléverser",
+		"documentsToUpload": "Documents à téléverser",
 		"chooseDocuments": "Choisir des fichiers (pdf uniquement)",
 		"dndDocuments": "ou glisser-déposer des fichiers",
 		"stamp": "Griffe",
@@ -354,7 +354,7 @@
 		"securedUrlNeeded": "Pour pouvoir signer électroniquement, vous devez accéder à l'application de manière sécurisée (https)",
 		"noAssociatedGroup": "L'utilisateur n'appartient à aucun groupe",
 		"docToSign": "Document à signer",
-		"attachDocToSign": "Annexe attaché au(x) document(s) à signer",
+		"attachDocToSign": "Annexe attaché aux documents à signer",
 		"titleSearch": "Sujet du document à signer",
 		"referenceSearch": "Référence du document à signer",
 		"workflowStatesSearch": "État du circuit",
@@ -374,7 +374,7 @@
 		"mandatory": "Obligatoire",
 		"addReason": "Saisir un motif",
 		"refused": "Refusé",
-		"results": "résultat(s)",
+		"results": "résultats",
 		"thumbnailNotFound": "Imagette non trouvée ou non accessible.<br>Vérifier les docservers ou la configuration de ImageMagick",
 		"noUserInWorkflow": "Aucun utilisateur dans le circuit",
 		"newTemplate": "Nouveau modèle",
@@ -388,19 +388,19 @@
 		"documentInterrupted": "Circuit interrompu",
 		"download": "Télécharger",
 		"setAPdfSignerError": "Contactez l'éditeur Maarch pour obtenir la version Pro et signer électroniquement vos documents",
-		"signaturesInDocAdded": "Signature(s) apposée(s) au(x) page(s) {{0}}",
+		"signaturesInDocAdded": "Signatures apposées aux pages {{0}}",
 		"signatureInDocAddedAlt" : "Signature apposée",
 		"setSignaturesPosition" : "Pré-positionner les signatures",
 		"adminSignaturesPositions" : "Gérer les positions de signatures",
 		"accessToPage": "Accéder à la page",
 		"createSignaturePosition": "Positionner la signature",
-		"prePositionings": "pré-positionnement(s)",
+		"prePositionings": "pré-positionnements",
 		"back": "Retour",
-		"documentsImported": "Document(s) importé(s)",
+		"documentsImported": "Documents importés",
 		"onlyPdfAuthorized": "Seul des fichiers pdf sont autorisés",
 		"mustSetWorkflowBeforeSignPositions": "Veuillez paramétrer votre circuit avant de pouvoir positionner les signatures.",
-		"missingLang": "Langue(s) manquante(s)",
-		"langChecking": "Vérification de(s) langue(s)",
+		"missingLang": "Langues manquantes",
+		"langChecking": "Vérification des langues",
 		"generateLangVar": "Générer les variables de langues",
 		"generateLangVarIgnoreTranslate": "Générer les variables de langues (IGNORE __TO_TRANSLATE)",
 		"close": "Fermer",
@@ -424,9 +424,9 @@
 		"certifiedDocumentMsg2": "Document certifié ! Les annotations sur le document ne seront pas prise en compte !",
 		"history": "Historique",
 		"manage_history": "Historique",
-		"entries": "entrée(s)",
-		"filters": "Filtre(s)",
-		"currentFilters": "filtre(s) actif(s)",
+		"entries": "entrées",
+		"filters": "Filtres",
+		"currentFilters": "filtres actifs",
 		"since": "Depuis",
 		"until": "Jusqu'à",
 		"resource": "Ressource",
@@ -489,7 +489,7 @@
 		"manage_otp_connectors": "Connecteurs OTP",
 		"manage_otp_connectorsDesc": "Administrer les différents connecteurs de parapheurs externes pour des utilisateurs OTP.",
 		"newConnector": "Nouveau connecteur",
-		"connectors": "connecteur(s)",
+		"connectors": "connecteurs",
 		"type": "Type",
 		"otpConnectorCreation": "Création d'un connecteur OTP",
 		"apiKey": "Clé API",
@@ -499,7 +499,7 @@
 		"connectorDeleted": "Connecteur supprimé",
 		"smsContent": "Contenu du SMS envoyé",
 		"emailContent": "Contenu de la notification à envoyer par courriel",
-		"connectorIsUsed": "Ce connecteur est actuellement utilisé dans {{number}} circuit(s) de visa.<br><br>Si vous continuez, ces circuits de visa seront interrompus.",
+		"connectorIsUsed": "Ce connecteur est actuellement utilisé dans {{number}} circuits de visa.<br><br>Si vous continuez, ces circuits de visa seront interrompus.",
 		"connectorNotUsed": "Ce connecteur n'est pas utilisé",
 		"newTemplateDescWithOtp": "Le circuit en cours sera sauvegardé sans prendre en compte les utilisateurs externes.",
 		"accessLink": "Lien d'accès",
@@ -551,17 +551,17 @@
 		"endFrequencyDate": "Fin de la répétition",
 		"daily": "Hebdomadaire",
 		"monthly": "Mensuelle",
-		"daysOfWeek": "Jour(s) de la semaine",
-		"hours": "Heure(s)",
+		"daysOfWeek": "Jours de la semaine",
+		"hours": "Heures",
 		"notificationsScheduleItemAdded": "Planification de notification ajoutée",
 		"notificationsScheduleItemUpdated": "Planification de notification modifiée",
 		"notificationsScheduleItemDeleted": "Planification de notification supprimée",
 		"notificationScheduler": "Planifier une notification",
-		"notification_next_user": "Document(s) à traiter",
+		"notification_next_user": "Documents à traiter",
 		"diffusion_next_user": "La <b>prochaine personne du circuit</b> en cours sera notifié",
 		"notification_typist_END": "Circuit terminé",
 		"diffusion_typist_END": "La personne ayant <b>initié</b> le circuit sera notifié",
-		"notification_typist_INT": "Circuit interrompu(s)",
+		"notification_typist_INT": "Circuits interrompus",
 		"diffusion_typist_INT": "La personne ayant <b>initié</b> le circuit sera notifié",
 		"notification_typist_DEL": "Après suppression d'un utilisateur dans le circuit",
 		"diffusion_typist_DEL": "La personne ayant <b>initié</b> le circuit sera notifié",
@@ -580,7 +580,7 @@
 		"notificationDocumentsAddedSubject": "[Maarch Parapheur] Nouveaux documents à traiter",
 		"applicationUrl": "URL de l'application",
 		"scheduleCreation": "Créer une planification",
-		"schedules": "Planification(s)",
+		"schedules": "Planifications",
 		"manage_notificationsAdmin": "Planifier les notifications",
 		"frquencyMonthly": "Chaque mois de <small class=\"primary\">{{months}}</small> le(s) <small class=\"primary\">{{daysOfMonth}}</small>",
 		"frequencyDaily": "Tous les {{0}}",
@@ -593,7 +593,7 @@
 		"notificationRefusedWorkflowsBody": "Bonjour,<br/><br/>Des circuits de visa que vous avez initié ont été interrompu car un utilisateur a fait une action de refus.<br/><br/>Cliquez sur les liens ci-dessous pour les consulter :<br/>",
 		"scheduledNotifications": "Notifications",
 		"realTimeNotification": "Recevoir les notifications en temps réel",
-		"periodicNotification": "Notification(s) périodique(s)",
+		"periodicNotification": "Notifications périodiques",
 		"batchMasterNotInitialized": "Le planificateur des notifications n'a pas été <b>initialisé</b> ! Les notifications ne pourront pas être envoyé.",
 		"initializeBatchMaster": "Initialiser le planificateur",
 		"noScheduledNotif": "Aucune notification périodique n'est disponible.",
@@ -607,10 +607,10 @@
 		"configAppUrl": "Vous devez configurer <b>l'URL</b> de votre application depuis <b>Administration -> Personnalisation</b> pour reçevoir <b>les récapitulatifs des notifications</b>.",
 		"noApplicationUrlDefined": "le paramètre applicationUrl n'est pas défini",
 		"noRestUserFound": "aucun utilisateur de webservice n'a été trouvé",
-		"summariesSent": "récapitulatif(s) envoyé(s) pour le type de notification",
+		"summariesSent": "récapitulatifs envoyés pour le type de notification",
 		"sendingSummaryError": "erreur lors de l'envoi d'un récapitulatif",
 		"watermark": "Filigrane des documents",
-		"positionY": "Ajustement de la position vertical (en pixel)",
+		"positionY": "Ajustement de la position verticale (en pixel)",
 		"content": "Contenu",
 		"enableWatermark": "Activer le filigrane",
 		"disableWatermark": "Désactiver le filigrane",