diff --git a/translations/fr.json b/translations/fr.json
new file mode 100644
index 000000000..d720a62a6
--- /dev/null
+++ b/translations/fr.json
@@ -0,0 +1,121 @@
+{
+ "action": {
+ "cancel": "Annuler",
+ "continue": "Continuer",
+ "create_account": "Créer un compte",
+ "sign_in": "Se connecter",
+ "sign_out": "Se déconnecter",
+ "submit": "Soumettre"
+ },
+ "app": {
+ "human_name": "Matrix Authentication Service",
+ "name": "matrix-authentication-service",
+ "technical_description": "Document de découverte OpenID Connect : %(discovery_url)s"
+ },
+ "common": {
+ "email_address": "Adresse e-mail",
+ "password": "Mot de passe",
+ "password_confirm": "Confirmer le mot de passe",
+ "username": "Nom d’utilisateur"
+ },
+ "error": {
+ "unexpected": "Erreur inattendue"
+ },
+ "mas": {
+ "add_email": {
+ "heading": "Ajouter une adresse e-mail"
+ },
+ "back_to_homepage": "Retourner sur la page d'accueil",
+ "change_password": {
+ "change": "Changer de mot de passe",
+ "confirm": "Confirmer le mot de passe",
+ "current": "Mot de passe actuel",
+ "heading": "Modifier mon mot de passe",
+ "new": "Nouveau mot de passe"
+ },
+ "emails": {
+ "greeting": "Bonjour %(username)s,",
+ "verify": {
+ "body_html": "Votre code de vérification pour confirmer cette adresse e-mail est : %(code)s",
+ "body_text": "Votre code de vérification pour confirmer cette adresse e-mail est : %(code)s",
+ "subject": "Votre code de vérification est : %(code)s"
+ }
+ },
+ "errors": {
+ "denied_policy": "Refusé par la politique du serveur : %(policy)s",
+ "field_required": "Ce champ est requis",
+ "invalid_credentials": "Identifiants invalides",
+ "password_mismatch": "Les champs du mot de passe ne correspondent pas.",
+ "username_taken": "Ce nom d'utilisateur est déjà utilisé"
+ },
+ "login": {
+ "call_to_register": "Vous n’avez pas encore de compte ?",
+ "continue_with_provider": "Poursuivre avec %(provider)s",
+ "description": "Veuillez vous connecter pour continuer :",
+ "headline": "Se connecter",
+ "link": {
+ "description": "Associer votre compte %(provider)s",
+ "headline": "Se connecter pour associer"
+ },
+ "no_login_methods": "Aucune méthode de connexion n'est disponible.",
+ "separator": "Ou"
+ },
+ "navbar": {
+ "my_account": "Mon compte",
+ "register": "Créer un compte",
+ "signed_in_as": "Connecté en tant que %(username)s"
+ },
+ "not_found": {
+ "description": "La page que vous recherchez n’existe pas ou a été déplacée",
+ "heading": "Page introuvable"
+ },
+ "not_you": "Vous n'êtes pas %(username)s ?",
+ "or_separator": "Ou",
+ "policy_violation": {
+ "description": "Cela peut être dû à l'application auteur de la demande, à l'utilisateur actuellement connecté ou à la demande elle-même.",
+ "heading": "La demande d'autorisation a été refusée, conformément à la politique appliquée par ce service.",
+ "logged_as": "Connecté en tant que %(username)s"
+ },
+ "register": {
+ "call_to_login": "Vous avez déjà un compte ?",
+ "create_account": {
+ "description": "Créer un compte pour commencer :",
+ "heading": "Créer un compte"
+ },
+ "sign_in_instead": "Se connecter"
+ },
+ "scope": {
+ "edit_profile": "Modifiez votre profil et vos coordonnées",
+ "manage_sessions": "Gérez vos appareils et vos sessions",
+ "mas_admin": "Administrez n'importe quel utilisateur dans matrix-authentication-service",
+ "send_messages": "Envoyez de nouveaux messages en votre nom",
+ "synapse_admin": "Administrer le serveur d’accueil Synapse",
+ "view_messages": "Afficher vos messages et données existants",
+ "view_profile": "Voir les informations de votre profil et vos coordonnées"
+ },
+ "upstream_oauth2": {
+ "link_mismatch": {
+ "heading": "Ce compte est déjà associé à un autre compte."
+ },
+ "register": {
+ "choose_username": "Choisissez votre nom d'utilisateur",
+ "create_account": "Créer un nouveau compte",
+ "forced_display_name": "Utilisera le pseudonyme suivant",
+ "forced_email": "Utilisera l'adresse e-mail suivante",
+ "forced_localpart": "Utilisera le nom d'utilisateur suivant",
+ "link_existing": "Associer un compte existant",
+ "suggested_display_name": "Importer le pseudonyme",
+ "suggested_email": "Importer l'adresse email"
+ },
+ "suggest_link": {
+ "action": "Associer",
+ "heading": "Associer votre compte existant"
+ }
+ },
+ "verify_email": {
+ "code": "Code",
+ "description": "Veuillez saisir le code à 6 chiffres envoyé à : %(email)s ",
+ "headline": "Vérification d'adresse email"
+ }
+ }
+}
\ No newline at end of file