diff --git a/forms/common-themes/src/main/resources/theme/base/account/messages/messages_fr.properties b/forms/common-themes/src/main/resources/theme/base/account/messages/messages_fr.properties
index 92d8625..6831687 100644
--- a/forms/common-themes/src/main/resources/theme/base/account/messages/messages_fr.properties
+++ b/forms/common-themes/src/main/resources/theme/base/account/messages/messages_fr.properties
@@ -102,15 +102,15 @@ totpStep1=Installez <a href="https://fedorahosted.org/freeotp/" target="_blank">
totpStep2=Ouvrez l''application et scanner le code bar ou entrez la clef.
totpStep3=Entrez le code \u00e0 usage unique fourni par l''application et cliquez sur Sauvegarder pour terminer.
-missingUsernameMessage=Veuillez entrez votre nom d''utilisateur.
-missingFirstNameMessage=Veuillez entrez votre pr\u00e9nom.
+missingUsernameMessage=Veuillez entrer votre nom d''utilisateur.
+missingFirstNameMessage=Veuillez entrer votre pr\u00e9nom.
invalidEmailMessage=Courriel invalide.
-missingLastNameMessage=Veuillez entrez votre nom.
-missingEmailMessage=Veuillez entrez votre courriel.
-missingPasswordMessage=Veuillez entrez votre mot de passe.
+missingLastNameMessage=Veuillez entrer votre nom.
+missingEmailMessage=Veuillez entrer votre courriel.
+missingPasswordMessage=Veuillez entrer votre mot de passe.
notMatchPasswordMessage=Les mots de passe ne sont pas identiques
-missingTotpMessage=Veuillez entrez le code authentification.
+missingTotpMessage=Veuillez entrer le code authentification.
invalidPasswordExistingMessage=Mot de passe existant invalide.
invalidPasswordConfirmMessage=Le mot de passe de confirmation ne correspond pas.
invalidTotpMessage=Le code d''authentification est invalide.
diff --git a/forms/common-themes/src/main/resources/theme/base/login/messages/messages_fr.properties b/forms/common-themes/src/main/resources/theme/base/login/messages/messages_fr.properties
new file mode 100644
index 0000000..1e14dc7
--- /dev/null
+++ b/forms/common-themes/src/main/resources/theme/base/login/messages/messages_fr.properties
@@ -0,0 +1,205 @@
+doLogIn=Connexion
+doRegister=Enregistrement
+doCancel=Annuler
+doSubmit=Soumettre
+doYes=Oui
+doNo=Non
+doContinue=Continuer
+doAccept=Accepter
+doDecline=Decliner
+doForgotPassword=Mot de passe oublié ?
+doClickHere=Cliquez ici
+doImpersonate=Impersonate
+kerberosNotConfigured=Kerberos non configuré
+kerberosNotConfiguredTitle=Kerberos non configuré
+bypassKerberosDetail=Si vous n'êtes pas connecté via Kerberos ou bie que votre navigateur n'est opas configurer pour la connexion via Kerberos. Veuillez cliquer pour vous connecter via un autre moyen.
+kerberosNotSetUp=Kerberos n'est pas configuré. Connexion impossible.
+registerWithTitle=Enregistrement avec {0}
+registerWithTitleHtml=Enregistrement avec<strong>{0}</strong>
+loginTitle=Connecté {0}
+loginTitleHtml=Connecté <strong>{0}</strong>
+impersonateTitle={0} utilisateur impersonate
+impersonateTitleHtml=<strong>{0}</strong> utilisateur impersonate</strong>
+realmChoice=Domaine
+unknownUser=Utilisateur inconnu
+loginTotpTitle=Configuration de l'authentification par mobile
+loginProfileTitle=Mise à jour du compte
+loginTimeout=Le temps imparti pour la connexion est écoulé. Le processus de connexion redémarre depuis le debut.
+oauthGrantTitle=OAuth Grant
+oauthGrantTitleHtml=Accès temporaire pour <strong>{0}</strong> demandé par
+errorTitle=Nous sommes désolé ...
+errorTitleHtml=Nous sommes <strong>désolé</strong> ...
+emailVerifyTitle=Vérification du courriel
+emailForgotTitle=Mot de passe oublié ?
+updatePasswordTitle=Mise à jour du mot de passe
+codeSuccessTitle=Code succès
+codeErrorTitle=Code Erreur\: {0}
+
+termsTitle=Termes et Conditions
+termsTitleHtml=Termes et Conditions
+termsText=<p>Termes et conditions à définir</p>
+
+recaptchaFailed=Re-captcha invalide
+recaptchaNotConfigured=Re-captcha est requis, mais il n'est pas configuré
+consentDenied=Consentement refusé.
+
+noAccount=Nouvel utilisateur?
+username=Nom d'utilisateur
+usernameOrEmail=Nom d'utilisateur ou courriel
+firstName=Prénom
+givenName=Prénom
+fullName=Nom complet
+lastName=Nom
+familyName=Nom de famille
+email=Courriel
+password=Mot de passe
+passwordConfirm=Confirmation du mot de passe
+passwordNew=Nouveau mot de passe
+passwordNewConfirm=Confirmation du nouveau not de passe
+rememberMe=Se souvenir de moi
+authenticatorCode=Code à usage unique
+address=Adresse
+street=Rue
+locality=Ville ou Localité
+region=État, Province, ou Région
+postal_code=Code postal
+country=Pays
+emailVerified=Courriel vérifié
+gssDelegationCredential=GSS Delegation Credential
+
+loginTotpStep1=Installez <a href="https://fedorahosted.org/freeotp/" target="_blank">FreeOTP</a> ou bien Google Authenticator sur votre mobile. Ces deux applications sont disponibles sur <a href="https://play.google.com">Google Play</a> et Apple App Store.
+loginTotpStep2=Ouvrez l'application et scanner le code bar ou entrez la clef.
+loginTotpStep3=Entrez le code \u00e0 usage unique fourni par l'application et cliquez sur Sauvegarder pour terminer.
+loginTotpOneTime=Code à usage unique
+
+oauthGrantRequest=Voulez-vous accorder ces privileges d'accès ?
+inResource=dans
+
+emailVerifyInstruction1=Un courriel avec des instructions à suivre vous a été envoyé.
+emailVerifyInstruction2=Vous n'avez pas reçu de code dans le courriel ?
+emailVerifyInstruction3=Pour renvoyer le courriel.
+
+backToLogin=« Retour à la connexion
+
+emailInstruction=Entrez votre nom d'utilisateur ou votre courriel, un email va vous \u00eatre envoyer vous permettant de créer un nouveau mot de passe.
+
+copyCodeInstruction=Copiez le code et recopiez le dans votre application :
+
+personalInfo=Information personnelle:
+role_admin=Adminitrateur
+role_realm-admin=Administrateur du domaine
+role_create-realm=Cr\u00e9er un domaine
+role_view-realm=Voir un domaine
+role_view-users=Voir les utilisateurs
+role_view-applications=Voir les applications
+role_view-clients=Voir les clients
+role_view-events=Voir les \u00e9v\u00e9nements
+role_view-identity-providers=Voir les fournisseurs d'identit\u00e9s
+role_manage-realm=G\u00e9rer le domaine
+role_manage-users=G\u00e9rer les utilisateurs
+role_manage-applications=G\u00e9rer les applications
+role_manage-identity-providers=G\u00e9rer les fournisseurs d'identit\u00e9s
+role_manage-clients=G\u00e9rer les clients
+role_manage-events=G\u00e9rer les \u00e9v\u00e9nements
+role_view-profile=Voir le profile
+role_manage-account=G\u00e9rer le compte
+role_read-token=Lire le jeton d'authentification
+role_offline-access=Acc\u00e9s hors-ligne
+client_account=Compte
+client_security-admin-console=Console d'administration de la s\u00e9curit\u00e9
+client_realm-management=Gestion du domaine
+client_broker=Broker
+
+invalidUserMessage=Nom d'utilisateur ou mot de passe invalide.
+invalidEmailMessage=Adresse courriel invalide.
+accountDisabledMessage=Compte désactivé, contactez votre administrateur.
+accountTemporarilyDisabledMessage=Ce compte est temporairement désactivé, contactez votre administrateur ou bien réassayer plus tard.
+expiredCodeMessage=Fin de connexion. Veuillez vous reconnecter.
+
+missingFirstNameMessage=Veuillez entrer votre pr\u00e9nom.
+missingLastNameMessage=Veuillez entrer votre nom.
+missingEmailMessage=Veuillez entrer votre courriel.
+missingUsernameMessage=Veuillez entrer votre nom d'utilisateur.
+missingPasswordMessage=Veuillez entrer votre mot de passe.
+missingTotpMessage=Veuillez entrer votre code d'authentification.
+notMatchPasswordMessage=Les mots de passe ne sont pas identiques.
+
+invalidPasswordExistingMessage=Mot de passe existant invalide.
+invalidPasswordConfirmMessage=Le mot de passe de confirmation ne correspond pas.
+invalidTotpMessage=Le code d'authentification est invalide.
+
+usernameExistsMessage=Le nom d'utilisateur existe d\u00e9j\u00e0.
+emailExistsMessage=Le courriel existe d\u00e9j\u00e0.
+
+federatedIdentityEmailExistsMessage=Cet utilisateur avec ce courriel existe déjà. Veuillez vous connecté au gestionnaire de compte pour lier le compte.
+federatedIdentityUsernameExistsMessage=Cet utilisateur avec ce nom d'utilisateur existe déjà. Veuillez vous connecté au gestionnaire de compte pour lier le compte.
+
+configureTotpMessage=Vous devez configurer l'authentification par mobile pour activer votre compte.
+updateProfileMessage=Vous devez mettre à jour votre profile pour activer votre compte.
+updatePasswordMessage=Vous devez changer votre mot de passe pour activer votre compte.
+verifyEmailMessage=Vous devez vérifier votre courriel pour activer votre compte.
+
+emailSentMessage=Vous devriez recevoir rapidement un courriel avec de plus ample instructions.
+emailSendErrorMessage=Erreur lors de l'envoie du courriel, veuillez essayer plus tard.
+
+accountUpdatedMessage=Votre compte a été mis à jour.
+accountPasswordUpdatedMessage=Votre mot de passe a été mis à jour.
+
+noAccessMessage=Aucun accès
+
+invalidPasswordMinLengthMessage=Mot de passe invalide : longueur minimale {0}.
+invalidPasswordMinDigitsMessage=Mot de passe invalide : doit contenir au moins {0} chiffre(s).
+invalidPasswordMinLowerCaseCharsMessage=Mot de passe invalide : doit contenir au moins {0} lettre(s) en minuscule.
+invalidPasswordMinUpperCaseCharsMessage=Mot de passe invalide : doit contenir au moins {0} lettre(s) en majuscule.
+invalidPasswordMinSpecialCharsMessage=Mot de passe invalide : doit contenir au moins {0} caract\u00e8re(s) sp\u00e9ciaux.
+invalidPasswordNotUsernameMessage=Mot de passe invalide : ne doit pas etre identique au nom d'utilisateur.
+invalidPasswordRegexPatternMessage=Mot de passe invalide : ne valide pas l'expression rationnelle.
+invalidPasswordHistoryMessage=Mot de passe invalide : ne doit pas \u00eatre \u00e9gal aux {0} derniers mot de passe.
+
+
+failedToProcessResponseMessage=Erreur lors du traitement de la réponse
+httpsRequiredMessage=Le protocole HTTPS est requis
+realmNotEnabledMessage=Le domaine n'est pas activé
+invalidRequestMessage=Requete invalide
+failedLogout=La déconnexion a échouée
+unknownLoginRequesterMessage=Compte inconnu du demandeur
+loginRequesterNotEnabledMessage=La connexion du demandeur n'est pas active
+bearerOnlyMessage=Les applications Bearer-only ne sont pas autorisées à initier la connexion par navigateur.
+directGrantsOnlyMessage=Les clients Direct-grants-only ne sont pas autorisés à initier la connexion par navigateur.
+invalidRedirectUriMessage=L'uri de redirection est invalide
+unsupportedNameIdFormatMessage=NameIDFormat non supporté
+invlidRequesterMessage=Demandeur invalide
+registrationNotAllowedMessage=L'enregistrement n'est pas autorisé
+resetCredentialNotAllowedMessage=La remise \u00e0 z\u00e9ro n'est pas autorisé
+
+permissionNotApprovedMessage=La permission n'est pas approuvée.
+noRelayStateInResponseMessage=Aucun état de relais dans la réponse du fournisseur d'identité.
+identityProviderAlreadyLinkedMessage=L'identité retournée par le fournisseur d'identité est déjà liée avec un autre utilisateur.
+insufficientPermissionMessage=Permissions insuffisantes pour lier les identités.
+couldNotProceedWithAuthenticationRequestMessage=Impossible de continuer avec la requête d'authentification vers le fournisseur d'identité.
+couldNotObtainTokenMessage=Impossible de récuperer le jeton du fournisseur d'identité.
+unexpectedErrorRetrievingTokenMessage=Erreur inattendue lors de la récupération du jeton provenant du fournisseur d'identité.
+unexpectedErrorHandlingResponseMessage=Erreur inattendue lors du traitement de la réponse provenant du fournisseur d'identité.
+identityProviderAuthenticationFailedMessage=L'authentification a échouée. Impossible de s'authentifier avec le fournisseur d'identité.
+couldNotSendAuthenticationRequestMessage=Impossible d'envoyer la requête d'authentification vers le fournisseur d'identité.
+unexpectedErrorHandlingRequestMessage=Erreur inattendue lors du traitement de la requête vers le fournisseur d'identité.
+invalidAccessCodeMessage=Code d'accès invalide.
+sessionNotActiveMessage=La session n'est pas active.
+invalidCodeMessage=Une erreur est survenue, veuillez vous reconnecter à votre application.
+identityProviderUnexpectedErrorMessage=Erreur inattendue lors de l'authentification avec fournisseur d'identité.
+identityProviderNotFoundMessage=Impossible de trouver le fournisseur d'identité avec ce identifiant.
+realmSupportsNoCredentialsMessage=Ce domaine ne supporte aucun type d'accréditation.
+identityProviderNotUniqueMessage=Ce domaine autorise plusieurs fournisseurs d'identité. Impossible de déterminer fournisseurs d'identité avec lequel s'authentifier.
+emailVerifiedMessage=Votre adresse courriel a été vérifiée.
+
+locale_de=German
+locale_en=English
+locale_it=Italian
+locale_pt-BR=Portugu\u00EAs (Brasil)
+locale_fr=Français
+
+
+backToApplication=« Revenir à l'application
+missingParameterMessage=Paramètres manquants \: {0}
+clientNotFoundMessage=Client inconnu.
+invalidParameterMessage=Paramètres invalide \: {0}
diff --git a/forms/common-themes/src/main/resources/theme/keycloak/email/messages/messages_fr.properties b/forms/common-themes/src/main/resources/theme/keycloak/email/messages/messages_fr.properties
new file mode 100755
index 0000000..2334195
--- /dev/null
+++ b/forms/common-themes/src/main/resources/theme/keycloak/email/messages/messages_fr.properties
@@ -0,0 +1,21 @@
+emailVerificationSubject=Vérification du courriel
+emailVerificationBody=Quelqu''un vient de créer un compte "{2}" avec votre courriel. Si c'est bien vous, veuillez cliquer sur le lien ci-dessous afin de vérifier votre adresse de courriel\n\n{0}\n\nCe lien expire dans {1} minute(s).\n\nSinon ignorer ce message.
+emailVerificationBodyHtml=<p>Quelqu''un a créer un compte "{2}" avec votre courriel. Si c'est bien vous, veuillez cliquer sur le lien ci-dessous afin de vérifier votre adresse de courriel</p><p><a href="{0}">{0}</a></p><p>Ce lien expire dans {1} minute(s).</p><p>Sinon veuillez ignorer ce message.</p>
+passwordResetSubject=Réinitialiser le mot de passe
+passwordResetBody=Quelqu''un vient de demander une reinitialisation de mot de passe de votre compte {2}. Si c'est bien vous, veuillez cliquer sur le lien ci-dessous pour le mettre à jour .\n\n{0}\n\nCe lien expire dans {1} minute(s).\n\nSinon ignorer ce message, aucun changement ne sera effectuer sur votre compte.
+passwordResetBodyHtml=<p>Quelqu''un vient de demander une reinitialisation de mot de passe de votre compte {2}. Si c'est bien vous, veuillez cliquer sur le lien ci-dessous pour le mettre à jour.</p><p><a href="{0}">{0}</a></p><p>Ce lien expire dans {1} minute(s).</p><p>Sinon ignorer ce message, aucun changement ne sera effectuer sur votre compte.</p>
+executeActionsSubject=Mettre à jour votre compte
+executeActionsBody=Votre adminitrateurvient de demander une mise à jour de votre compte {2}. veuillez cliquer sur le lien ci-dessous afin commencer le processus.\n\n{0}\n\nCe lien expire dans {1} minute(s).\n\nSi vous n'etes pas au courant de cette requete, ignorer ce message, aucun changement ne sera effectuer sur votre compte.
+executeActionsBodyHtml=<p>Votre adminitrateurvient de demander une mise à jour de votre compte {2}. veuillez cliquer sur le lien ci-dessous afin commencer le processus.</p><p><a href="{0}">{0}</a></p><p>Ce lien expire dans {1} minute(s).</p><p>Si vous n'etes pas au courant de cette requete, ignorer ce message, aucun changement ne sera effectuer sur votre compte.</p>
+eventLoginErrorSubject=Erreur de connexion
+eventLoginErrorBody=Une tentative de connexion a été détectée pour votre compte sur {0} depuis {1}. Si ce n'est pas vous, veuillez contacter votre administrateur.
+eventLoginErrorBodyHtml=<p>Une tentative de connexion a été détectée pour votre compte sur {0} depuis {1}. Si ce n'est pas vous, veuillez contacter votre administrateur.</p>
+eventRemoveTotpSubject=Suppression du TOTP
+eventRemoveTotpBody=Le TOTP a été supprimé de votre compte sur {0} depuis {1}. Si ce n'est pas vous, veuillez contacter votre administrateur.
+eventRemoveTotpBodyHtml=<p>Le TOTP a été supprimé de votre compte sur {0} depuis {1}. Si ce n'est pas vous, veuillez contacter votre administrateur.</p>
+eventUpdatePasswordSubject=Mise à jour du mot de passe
+eventUpdatePasswordBody=Votre mot de passe à changé sur {0} depuis {1}. Si ce n'est pas vous, veuillez contacter votre administrateur.
+eventUpdatePasswordBodyHtml=<p>Votre mot de passe à changé sur {0} depuis {1}. Si ce n'est pas vous, veuillez contacter votre administrateur.</p>
+eventUpdateTotpSubject=Mise à jour du TOTP
+eventUpdateTotpBody=Le TOTP a été mis à jour pour votre compte sur {0} depuis {1}. Si ce n'est pas vous, veuillez contacter votre administrateur.
+eventUpdateTotpBodyHtml=<p>Le TOTP a été mis à jour pour votre compte sur {0} depuis {1}. Si ce n'est pas vous, veuillez contacter votre administrateur.</p>