{
    "account": {
        "ask-have": "Vous n'avez pas encore de compte sur notre sympathique plateforme ?",
        "delete": {
            "delete": "Zone dangereuse",
            "deleted": "Compte supprimé",
            "description": "Supprimez définitivement votre compte",
            "confirm": "Si vous souhaitez supprimer votre compte et toutes les données qui y sont associées, appuyez sur le bouton ci-dessous :",
            "confirm-twice": "En confirmant la suppression, vous supprimerez définitivement et irrévocablement votre compte de notre base de données et perdrez votre accès à notre interface de gestion facile de vos domaines.",
            "confirm-password": "Pour vous assurer qu'il s'agit bien de vous, veuillez entrer votre mot de passe :",
            "consequence": "Vos domaines détenus sur d'autres plateformes ne seront pas affectés par la suppression, ils continueront à répondre avec l'ensemble des données actuelles.",
            "remain-data": "Pour des raisons techniques, votre compte sera supprimé juste après votre validation, mais certaines données de votre compte persisteront jusqu'au prochain nettoyage de la base de données.",
            "success": "Votre compte a été supprimé avec succès. Nous espérons vous revoir bientôt."
        },
        "join": "Inscrivez-vous maintenant !",
        "oidc-login": "Se connecter par {{provider}}",
        "no-password-change": "Vous vous êtes identifié par un service externe, si vous devez changer de mot de passe, rendez-vous sur l'interface dédiée de {{provider}}.",
        "ready-login": "Prêt à entrer !",
        "signup": {
            "already": "Déjà inscrit ?",
            "join-call": "Rejoignez notre sympathique service en moins de deux minutes !",
            "address-why": "Nous utiliserons votre adresse pour vous {{identify}} et pour vous contacter en cas d'{{security-operations}}.",
            "identify": "identifier",
            "security-operations": "événements liés à la sécurité",
            "receive-update": "Tenez-moi informé des futures améliorations",
            "signup": "Je m'inscris !",
            "success": "Votre compte a été créé avec succès !"
        },
        "see-again": "Ravi de vous revoir !"
    },
    "common": {
        "add": "Ajouter",
        "add-new-thing": "Ajouter {{thing}}",
        "add-object": "Add un objet {{thing}} à ce service",
        "by": "par",
        "cancel": "Annuler",
        "cancel-edit": "Abandonner",
        "copy-clipboard": "Copier dans le presse-papier",
        "continue": "Continuer",
        "create-thing": "Créer {{thing}}",
        "delete": "Supprimer",
        "domain": "Domaine ou sous-domaine",
        "edit": "Modifier",
        "field": "Champ",
        "go": "C'est parti !",
        "name": "Nom",
        "next": "Suivant",
        "other": "Autre",
        "password": "Mot de passe",
        "previous": "Précédent",
        "rename": "Renommer",
        "resolver": "Résolveur",
        "run": "Lancer l'opération !",
        "spinning": "Chargement",
        "update": "Mettre à jour",
        "help": "Besoin d'aide ?",
        "records": "{{n:eq; 0:aucun enregistrement {{type}}; 1:enregistrement {{type}}; default:enregistrements {{type}}}}",
        "survey": "Une remarque ? un commentaire à partager ? N'hésitez pas à nous écrire !",
        "delete-thing": "Supprimer {{thing}}",
        "no-content": "Aucun contenu",
        "no-thing": "Aucun {{thing}}",
        "new-row": "Nouvelle ligne",
        "welcome": {
            "start": "Bienvenue sur ",
            "end": " !"
        }
    },
    "domains": {
        "kind": "un domaine",
        "actions": {
            "audit": "Voir le journal d'actions du domaine",
            "do-migration": "Migrer maintenant",
            "history": "Voir l'historique des changements",
            "propagate": "Diffuser mes changements",
            "reimport": "Récupérer la zone actuelle",
            "rollback": "Revenir à cette version",
            "share": "Partager la zone…",
            "upload": "Importer un fichier de zone",
            "view": "Voir ma zone",
            "whois": "Voir les infos d'enregistrement"
        },
        "alert": {
            "remove": "Cette action retirera définitivement le domaine {{domain}} de votre liste. L'historique et les zones abstraites seront supprimés. Cela ne supprimera ni n'affectera votre domaine auprès de votre fournisseur, ni ne modifiera ce qui est actuellement diffusé. Cela ne concerne seulement que ce que vous voyez dans happyDomain. Êtes-vous certain de vouloir continuer ?",
            "unable-retrieve": {
                "description": "Malheureusement, nous ne parvenons pas à obtenir les informations du domaine {{domain}} :",
                "title": "Impossible de récupérer les informations du domaine"
            }
        },
        "add-a-subdomain": "Ajouter un sous-domaine",
        "add-a-service": "Ajouter un service",
        "add-alias": "Ajout d'alias",
        "add-an-alias": "Ajouter un alias vers {{domain}}",
        "add-title": "Nouveau domaine",
        "add-subtitle": "Sélectionnez le fournisseur DNS qui héberge votre zone",
        "add-now": "Ajouter maintenant !",
        "added-success": "Bravo ! {{domain}} a été ajouté. Vous pouvez désormais le gérer.",
        "apply": {
            "additions": "{{count:eq; 0:pas d'ajout; 1:{{count}} ajout; default:{{count}} ajouts}}",
            "button": "Appliquer les modifications",
            "deletions": "{{count:eq; 0:pas de suppression; 1:{{count}} suppression; default:{{count}} suppressions}}",
            "done": {
                "title": "Zone propagée avec succès !",
                "description": "!"
            },
            "nochange": "Il n'y a pas de changement à faire ! Cette zone est synchronisée avec le serveur.",
            "modifications": "{{count:eq; 0:pas de modifications; 1:{{count}} modification; default:{{count}} modifications}}",
            "others": "{{count:eq; 0:pas d'autres changements; 1:{{count}} autre changement; default:{{count}} autres changements}}",
            "prepare-info": "Le fournisseur exécutera {{nbDiffs}} correction(s) pour vos {{nbSelected}} modification(s) sélectionnée(s) :",
            "prepare-warning": "Le nombre de corrections diffère de votre sélection. Veuillez vérifier avant de confirmer.",
            "confirm": "Confirmer et appliquer",
            "back": "Retour"
        },
        "attached-new": "Nouveau domaine lié à happyDomain!",
        "commit-msg": "Qu'est-ce qui a changé ?",
        "create-new-key": "Créer une nouvelle clé {{id}}",
        "discard": "Supprimer",
        "drop-alias": "Supprimer l'alias",
        "drop-pointer": "Supprimer le pointeur",
        "edit-target": "Éditer la destination",
        "give-explicit-name": "Donnez un nom explicite afin de trouver facilement ce service.",
        "history": "Historique",
        "list": "Liste des domaines importables",
        "n-aliases": "{{count:lt; 2:{{count}} alias; default:{{count}} alias}}",
        "n-services": "{{count:lt; 2:{{count}} service; default:{{count}} services}}",
        "please-fill-fields": "Veuillez remplir les champs suivants :",
        "removal": "Confirmer la suppression du domaine",
        "save-modifications": "Enregistrer ces modifications",
        "stop": "Arrêter de gérer ce domaine",
        "view": {
            "abstract": "Zone abstraite",
            "cancel-title": "Conserver mon domaine dans happyDomain",
            "description": "Valider les modifications qui seront appliquées à {{domain}}",
            "live": "Enregistrements actifs",
            "monitoring": "Suivi",
            "summary": "Résumé",
            "title": "Voir la zone",
            "subtitle": "Votre zone au format BIND standard",
            "provider": "Zone hébergée par"
        },
        "see-records": "Voir les enregistrements correspondants",
        "alias-creation": "Ajouter un alias pointant sur {{domain}} :",
        "alias-creation-sample": "Cela va créer cet alias :",
        "placeholder-new": "mon.nouveau.domaine.",
        "form-new-subdomain": "Ajout d'un sous-domaine sous {{domain}} :",
        "placeholder-new-sub": "new.subdomain",
        "search-placeholder": "Rechercher des domaines…"
    },
    "email": {
        "address": "Adresse électronique",
        "instruction": {
            "check-inbox": "Veuillez vérifier votre boîte de réception afin de valider votre adresse électronique.",
            "new-confirmation": "Si vous avez besoin d'un nouveau courriel de confirmation, il vous suffit d'entrer votre adresse dans le formulaire ci-dessous.",
            "validate-address": "Afin de valider votre adresse électronique, veuillez vérifier votre boîte de réception et suivre le lien contenu dans le message.",
            "validated": "Votre nouvelle adresse e-mail est maintenant validée !",
            "bad-link": "Le lien que vous avez suivi est invalide. Vérifiez que vous avez récopié le lien en entier et réessayez."
        },
        "send-again": "Renvoyer le courriel de confirmation",
        "send-recover": "Envoyez-moi un e-mail pour récupérer mon compte",
        "sent": "Courriel de confirmation envoyé !",
        "sent-recovery": "Envoi d'un courriel de récupération de mot de passe !",
        "recover": "Afin de récupérer votre compte, nous vous enverrons un courriel contenant un lien qui vous permettra de redéfinir votre mot de passe"
    },
    "captcha": {
        "human-check": "Êtes-vous un humain ? Veuillez cocher la case ci-dessous pour continuer :"
    },
    "domaininfo": {
        "page-title": "Données d'enregistrement d'un domaine",
        "page-description": "Recherchez les informations d'enregistrement pour n'importe quel nom de domaine",
        "domain-description": "Entrez le nom de domaine que vous souhaitez rechercher, par ex. {{domain}}.",
        "lookup": "Rechercher",
        "registrar": "Bureau d'enregistrement",
        "registrar-url": "Site du registrar",
        "nameservers": "Serveurs de noms",
        "creation-date": "Enregistré le",
        "expiration-date": "Expire le",
        "status": "Statut du domaine",
        "no-expiration": "Aucune date d'expiration disponible",
        "no-creation": "Aucune date d'enregistrement disponible",
        "no-registrar": "Registrar inconnu",
        "expires-in": "Expire dans {{days}} jours",
        "expired": "Expiré il y a {{days}} jours",
        "expires-today": "Expire aujourd'hui",
        "domain-not-found": "Ce nom de domaine ne semble pas être enregistré.",
        "error": "Impossible de récupérer les informations du domaine.",
        "status-descriptions": {
            "ok": "Le domaine est actif sans restrictions.",
            "active": "Le domaine est actif.",
            "clientTransferProhibited": "Le transfert vers un autre registrar est verrouillé.",
            "serverTransferProhibited": "Le transfert est interdit par le registre.",
            "clientUpdateProhibited": "Les modifications du domaine sont verrouillées.",
            "serverUpdateProhibited": "Les modifications du domaine sont interdites par le registre.",
            "clientDeleteProhibited": "La suppression du domaine est verrouillée.",
            "serverDeleteProhibited": "La suppression du domaine est interdite par le registre.",
            "clientHold": "Le domaine est suspendu (ne résout pas).",
            "serverHold": "Le domaine est suspendu par le registre.",
            "pendingTransfer": "Un transfert vers un autre registrar est en cours.",
            "pendingDelete": "Le domaine est en attente de suppression."
        }
    },
    "errors": {
        "404": {
            "title": "Page introuvable",
            "content": "La page que vous recherchez n'a pas été trouvée."
        },
        "account-delete": "Une erreur s'est produite lors de la suppression de votre compte",
        "address": "L'adresse électronique est obligatoire",
        "address-valid": "Une adresse électronique valide est obligatoire",
        "domain-access": "Une erreur s'est produite en essayant d'accéder à la liste des domaines.",
        "domain-attach": "Une erreur s'est produite lors de l'attachement du domaine à happyDomain",
        "domain-have": "Il semble que vous n'ayez pas de nom de domaine enregistré chez ce fournisseur.",
        "domain-import": "Une erreur s'est produite lors de la synchronisation de ce domaine :",
        "domain-list": "Ce fournisseur ne permet pas de répertorier les domaines existants. Utilisez le formulaire ci-dessus pour en ajouter un.",
        "error": "Erreur",
        "login": "Erreur de connexion",
        "rate-limited": "Too many failed login attempts. Please wait a moment before trying again.",
        "logout": "Erreur de déconnexion",
        "occurs": "Une erreur se produit lorsque {{when}} !",
        "password": "Le mot de passe est obligatoire",
        "password-change": "Impossible de modifier votre mot de passe",
        "password-match": "Le mot de passe et sa confirmation ne correspondent pas.",
        "password-weak": "Le mot de passe doit être plus robuste : au moins 8 caractères incluant des chiffres, des minuscules et majuscules.",
        "recovery": "Problème de récupération du mot de passe",
        "resolve": "Une erreur s'est produite en essayant de résoudre le domaine.",
        "registration": "Problème d'inscription",
        "rr-add": "Une erreur se produit en ajoutant RR à la zone :",
        "rr-delete": "Une erreur se produit en supprimant RR dans la zone :",
        "session": {
            "title": "Délai d'authentification",
            "content": "Session invalide, vous avez été déconnecté : {{err}}. Veuillez vous connecter à nouveau."
        },
        "settings-change": "Impossible de changer vos paramètres",
        "account-no-auth": "Vous utilisez happyDomain sans authentification. Vous ne pouvez pas changer d'autre paramètre de votre compte.",
        "domain-all-imported": "Ce compte sur {{provider}} ne contient plus aucun domaine à importer.",
        "provider-delete": "Une erreur s'est produite lors de la suppression de la référence au fournisseur d'hébergement",
        "too-high": "Nombre trop grand, max: {{max}}",
        "too-low": "Nombre trop petit, min: {{min}}",
        "base64": "Chaîne base64 invalide.",
        "base64-illegal-char": "Charactère incorrect utilisé.",
        "base64-unfinished": "La chaîne est incomplète.",
        "suggestion": "Voulez-vous dire: {{suggestion}}"
    },
    "history": {
        "committed-on": "Enregistrée le",
        "created-on": "Créé le",
        "diff": "Voir les changements",
        "expires-on": "Expire le",
        "modified-on": "Dernière modification le",
        "published-on": "Publiée le",
        "see": "Voir la zone à ce moment",
        "title": "Historique des changements la zone ",
        "subtitle": "Retrouvez toutes les versions passées de votre zone",
        "used-on": "Dernière utilisation le"
    },
    "logs": {
        "date": "Date",
        "description": "Action/description",
        "level": "Niveau",
        "no-entry": "Aucune entrée dans le journal du domaine.",
        "title": "Journal du domaine ",
        "subtitle": "Trace complète de toutes les activités sur ce domaine",
        "user": "Utilisateur"
    },
    "menu": {
        "my-domains": "Mes domaines",
        "dns-resolver": "Résolveur DNS",
        "whois": "Infos d'enregistrement d'un domaine",
        "my-account": "Mon compte",
        "logout": "Se déconnecter",
        "provider-features": "Fournisseurs supportés",
        "signup": "S'inscrire",
        "signin": "S'identifier",
        "quick-menu": "Accès rapide",
        "my-providers": "Les hébergeurs de mes domaines"
    },
    "onboarding": {
        "steps": {
            "welcome": "Bienvenue",
            "connect": "Connexion à l'hébergeur",
            "import": "Import de domaines",
            "explore": "Exploration fonctionnalités"
        },
        "intro": "Configurons votre compte pour commencer à gérer vos domaines. Suivez ces quelques étapes pour commencer rapidement.",
        "welcome": {
            "beta": {
                "intro": "C'est une version βéta! 🏗️",
                "part1": "happyDomain est fonctionnel mais comporte encore de nombreux bugs. Si quelque chose ne fonctionne pas comme vous l'attendez, s'il vous plaît",
                "report": "dites-le nous",
                "part2": ". Nous sommes super réactifs et chaque bug signalé permet d'améliorer l'outil pour tous. Un grand merci par avance 🙏"
            },
            "purpose": "{{happyDomain}} rend la gestion des domaines simple et intuitive. Que vous ayez un seul domaine ou des centaines, notre plateforme vous offre un moyen centralisé de les gérer tous.",
            "use": "Utilisez {{happyDomain}} comme interface de remplacement de votre fournisseur de noms de domaine habituel. Il continuera à s'appuyer sur l'infrastructure de votre fournisseur, vous n'aurez qu'à profiter de notre interface simple.",
            "unified": {
                "title": "Une gestion unifiée",
                "description": "Gérez tous vos domaines en un seul endroit, quel que soit leur lieu d'enregistrement."
            },
            "comprehensive": {
                "title": "Des fonctionnalités complètes",
                "description": "Découvrez le futur de la gestion des DNS avec un historique, des différences, des tests, ..."
            },
            "intuitive": {
                "title": "Une interface intuitive",
                "description": "Découvrez notre interface simple qui conviendra aux débutants et aux experts du DNS."
            },
            "templates": {
                "title": "Des modèles en un clic",
                "description": "Configurez en quelques secondes les services courants avec des modèles prédéfinis."
            }
        },
        "connect": {
            "title": "Connectez votre premier hébergeur de domaine",
            "intro": "Connectez votre bureau d'enregistrement ou votre hébergeur DNS pour importer vos domaines automatiquement. Nous prenons en charge la plupart des principaux prestataires.",
            "noprovider": "Vous ne trouvez pas votre prestataire dans cette liste ?",
            "noproviderTellUs": "Demandez-nous de l'ajouter",
            "nodomain": "Je ne possède pas encore de domaine"
        },
        "import": {
            "title": "Importer vos domaines",
            "intro": "Sélectionnez les domaines que vous voulez gérer dans happyDomain.",
            "imported": "Importé"
        },
        "explore": {
            "understood": "Compris !",
            "done": "Tout est prêt !",
            "bravo": "{{count:eq; 1:Votre domaine est bien configuré et prêt à être utilisé; default:Vos domaines sont bien configurés et prêts à être utilisés}}.",
            "title": "Explorons les fonctionnalités d'happyDomain",
            "intro": "Maintenant que votre domaine est configuré, découvrez les puissantes fonctionnalités qu'offre happyDomain :",
            "history": {
                "title": "Historique des enregistrements",
                "description": "Suivez toutes les modifications apportées à vos enregistrements grâce à l'historique des versions. Revenez en arrière en un clic.",
                "link": "Voir l'historique"
            },
            "api": {
                "title": "Accès API",
                "description": "Automatisez la gestion des domaines avec notre API complète pour les développeurs et les équipes.",
                "link": "Voir la documentation"
            },
            "monitoring": {
                "title": "Monitoring",
                "description": "Surveillance en temps réel de vos domaines avec des alertes en cas de problème ou d'expiration."
            },
            "security": {
                "title": "Vérifications de sécurité",
                "description": "Audits de sécurité automatisés pour s'assurer que les configurations de votre domaine respectent les bonnes pratiques."
            },
            "soon": "bientôt"
        },
        "no-sale": {
            "title": "Vous devez déjà posséder un nom de domaine pour utiliser happyDomain.",
            "description": "{{happyDomain}} ne fournit pas encore de domaine. Pour commencer à utiliser notre interface, vous devez vous procurer un domaine auprès de l'un des fournisseurs répertoriés",
            "buy-advice": "Nous vous donnerons prochainement des conseils sur la manière de se procurer facilement un nom de domaine. Restez donc à l'écoute et contactez-nous si vous souhaitez nous aider à élaborer un guide complet."
        }
    },
    "password": {
        "change": "Changer mon mot de passe",
        "changed": "Changement de mot de passe réussi",
        "confirm-new": "Confirmez votre nouveau mot de passe",
        "confirm-title": "Confirmer le nouveau mot de passe",
        "confirm-description": "Saisissez à nouveau votre nouveau mot de passe pour le confirmer",
        "confirmation": "Confirmation du mot de passe",
        "current-title": "Mot de passe actuel",
        "current-description": "Entrez votre mot de passe actuel pour vérifier votre identité",
        "enter": "Entrez votre mot de passe actuel",
        "enter-new": "Entrez votre nouveau mot de passe",
        "new-title": "Nouveau mot de passe",
        "new-description": "Choisissez un mot de passe fort d'au moins 8 caractères, comprenant des chiffres, des lettres minuscules et majuscules",
        "fill": "Afin de récupérer votre compte, veuillez remplir le formulaire suivant, avec un nouveau mot de passe.",
        "forgotten": "Mot de passe oublié ?",
        "new": "Nouveau mot de passe",
        "redefine": "Redéfinir mon mot de passe",
        "redefined": "Mot de passe redéfini avec succès !",
        "success": "Vous pouvez maintenant vous connecter avec votre nouveau mot de passe.",
        "success-change": "Le mot de passe de votre compte a été modifié avec succès."
    },
    "resources": {
        "CAA": {
            "all-issuers-title": "Tous les émetteurs sont autorisés.",
            "all-issuers-body": "Avec ces paramètres, tous les émetteurs peuvent créer des certificats pour ce domaine et ce sous-domaine.",
            "all-wild-issuers-body": "Avec ces paramètres, tous les émetteurs peuvent créer des certificats de type \"wildcard\" pour ce domaine et ce sous-domaine.",
            "auth-issuers": "Émetteurs autorisés",
            "incident-response": "Réponse aux incidents",
            "incident-response-text": "Comment souhaitez-vous être contacté en cas de violation de la politique de sécurité actuelle ?",
            "mail-issuers": "Délivrance de certificats S/MIME",
            "mail-all-allowed-title": "Toutes les autorités de certification peuvent émettre des certiticats S/MIME sans restriction.",
            "mail-all-allowed-body": "Toutes les autorités de certification peuvent émettre des certiticats S/MIME pour votre domaine. Vous devriez interdire ou restreindre à certaines autorités. Les certificats S/MIME sont utilisés par exemple pour signer et chiffrer les courriers électroniques. Si vous n'utilisez pas ce genre de certiticats, vous devriez interdire leur émission.",
            "no-issuers-hint": "Interdire toute délivrance de certificat",
            "no-issuers-title": "Aucun émetteur autorisé.",
            "no-issuers-body": "Avec ces paramètres, aucun émetteur n'est autorisé à créer un certificat pour ce sous-domaine.",
            "no-mail-hint": "Interdire l'émission de certiticat S/MIME",
            "no-mail-title": "Aucune émetteur de certiticat S/MIME n'est autorisé.",
            "no-mail-body": "Avec ces paramètres, aucun émetteur n'est autorisé à créer un certificat S/MIME pour ce sous-domaine.",
            "no-wild-hint": "Interdire l'émission de certificats \"wildcard\"",
            "no-wild-title": "Aucun émetteur de certificats \"wildcard\" n'est autorisé.",
            "no-wild-body": "Avec ces paramètres, aucun émetteur n'est autorisé à créer un certificat \"wildcard\" pour ce domaine et ce sous-domaine. Mais cela peut être remplacé par les paramètres suivants :",
            "title": "Émission de certificats",
            "wild-issuers": "Délivrance de certificats \"wildcard\"",
            "wild-same-title": "Identique à la délivrance d'un certificat ordinaire.",
            "wild-same-body": "Avec ces paramètres, tous les émetteurs autorisés à délivrer des certificats peuvent également créer des certificats \"wildcard\" pour ce domaine et ce sous-domaine."
        }
    },
    "service": {
        "add": "Ajout d'un service",
        "all": "Tout",
        "delete": "Supprimer ce service",
        "edit": "Modifier ce service",
        "update": "Mettre à jour ce service",
        "form-new": "Ajout d'un service sur {{domain}}",
        "new": "Nouveau service",
        "new-description": "Cliquez ici pour ajouter un nouveau service à ce sous-domaine.",
        "default-ttl": "TTL par défaut",
        "ttl": "TTL",
        "ttl-long": "Time-To-Live",
        "ttl-tip": "0 correspond au TTL par défaut, les autres valeurs sont exprimées en secondes",
        "propagating": "Propagation {{countdown}}",
        "propagation-in-progress": "Propagation DNS en cours",
        "propagation-remaining": "Propagation complète dans {{countdown}}"
    },
    "services": {
        "email-autoconfig": {
            "title": "Auto-configuration des clients de messagerie",
            "intro": "Publie les paramètres IMAP/POP/SMTP via les enregistrements SRV (RFC 6186), Mozilla Autoconfig et Microsoft Autodiscover, afin que les clients mail puissent se configurer automatiquement.",
            "incoming": "Serveur entrant",
            "outgoing": "Serveur sortant",
            "discovery": "Découverte",
            "branding": "Identité visuelle",
            "protocol": "Protocole",
            "hostname": "Nom d'hôte",
            "port": "Port",
            "auth": "Authentification",
            "incoming-hostname-desc": "Nom de domaine pleinement qualifié de votre serveur IMAP/POP3.",
            "outgoing-hostname-desc": "Nom de domaine pleinement qualifié de votre serveur SMTP de soumission.",
            "publish-http": "Publier la découverte HTTP (CNAME autoconfig./autodiscover.)",
            "publish-http-desc": "Une fois activé, happyDomain crée des enregistrements CNAME pour autoconfig.<votre-domaine> et autodiscover.<votre-domaine> pointant vers cette instance d'happyDomain, qui sert le XML correspondant en HTTPS afin que Thunderbird et Outlook se configurent automatiquement.",
            "exchange": "Serveur Exchange (optionnel)",
            "exchange-desc": "Nom d'hôte d'un serveur Microsoft Exchange sur site. Active MAPI/EWS dans la réponse Autodiscover.",
            "display-name": "Nom d'affichage du fournisseur",
            "display-short-name": "Nom court",
            "username-format": "Format du nom d'utilisateur"
        }
    },
    "upgrade": {
        "title": "Une mise à jour est disponible !",
        "content": "Une nouvelle version d'happyDomain est disponible. Pour l'activer, vous pouvez cliquer ici pour rafraîchir la page."
    },
    "wait": {
        "asking-domains": "Demande en cours chez l'hébergeur des domaines existants ...",
        "exporting": "Veuillez patienter pendant l'export de votre domaine …",
        "formating": "Veuillez patienter pendant le formattage de votre zone …",
        "importing": "Veuillez patienter pendant l'import de votre domaine …",
        "loading": "Chargement des services du domaine.",
        "loading-account": "Chargement de votre compte.",
        "loading-record": "Chargement des enregistrements.",
        "retrieving-setting": "Récupération du formulaire de paramètrage de l'hôte ...",
        "updating": "Mise à jour de l'hôte de votre domaine",
        "validating": "Validation du domaine …",
        "wait": "Veuillez patienter",
        "retrieving-domains": "Récupération de vos domaines...",
        "retrieving-provider": "Récupération des informations sur l'hébergeur...",
        "retrieving-providers": "Récupération de vos hébergeurs de domaines ...",
        "preparation": "Préparation des modifications\u202f\u2026",
        "propagation": "Publication de vos modifications\u202f\u2026"
    },
    "settings": {
        "description": "Personnalisez vos préférences",
        "subtitle": "Adaptez votre expérience happyDomain à vos besoins",
        "fieldhint": {
            "title": "Indices des champs",
            "description": "Choisissez comment afficher le texte d'aide pour les champs de formulaire",
            "hide": "Cacher",
            "tooltip": "Infobulle près du champ",
            "focused": "Sous le champ, lorsqu'il a la main",
            "always": "Sous le champ, tout le temps"
        },
        "language": "Langue",
        "language-description": "Choisissez votre langue préférée pour l'interface",
        "save": "Enregistrer les paramètres",
        "showrrtypes-title": "Afficher les types d'enregistrements DNS",
        "security": {
            "title": "Sécurité & Accès",
            "description": "Gérez vos paramètres d'authentification et de sécurité",
            "sessions": {
                "title": "Sessions actives",
                "description": "Gérez vos sessions de connexion actives et clés d'API"
            },
            "password": {
                "description": "Définissez un nouveau mot de passe pour votre compte"
            }
        },
        "sessions": "Sessions",
        "showrrtypes": "Afficher les types d'enregistrement associés aux services (pour les utilisateurs familiers de la terminologie DNS)",
        "success": "Vous pouvez continuer d'apprécier happyDomain.",
        "success-change": "Vos paramètres ont été sauvegardés.",
        "title": "Paramètres",
        "applyconfirm": {
            "title": "Confirmation avant application",
            "description": "Choisissez quand afficher une étape de confirmation avant d'appliquer les modifications à votre fournisseur DNS",
            "unexpected": "Demander en cas de différences inattendues",
            "always": "Toujours demander",
            "never": "Ne jamais demander, écraser lors de la publication"
        },
        "zoneview": {
            "grid": "Vue en grille (la plus lisible)",
            "list": "Vue en liste (la plus rapide)",
            "records": "Liste avec les enregistrements (avancés)",
            "title": "Disposition de la vue des zones",
            "description": "Choisissez comment vous voulez afficher vos zones de domaine"
        }
    },
    "record": {
        "A": "Adresse IPv4",
        "AAAA": "Adresse IPv6",
        "common-records": "Types courants",
        "Expire": "Expiration",
        "Mbox": "E-mail de l'administrateur",
        "Minttl": "Cache TTL négatif",
        "Mx": "Serveur de courriels",
        "Ns": "Serveur de noms",
        "Preference": "Préférences",
        "Priority": "Priorité",
        "Refresh": "Rafraîchissement",
        "Retry": "Prochaine tentative",
        "Serial": "N° série",
        "Target": "Cible",
        "Txt": "Données",
        "Weight": "Poids"
    },
    "resolver": {
        "advanced": "Besoin de paramètres personnalisés ?",
        "custom": "Résolveur spécifique",
        "custom-description": "Indiquez l'adresse (un nom de domaine ou une IP) du résolveur que vous souhaitez utiliser.",
        "domain-description": "Indiquez le domaine dont vous souhaitez consulter les enregistrements. Par exemple, vous pouvez essayer {{domain}}.",
        "field-description": "Quel type d'enregistrement DNS vous souhaitez voir. Par exemple : A est utilisé pour les IPv4, AAAA pour les IPv6, ...",
        "field-description-more-info": "Plus d'information ici",
        "resolver-description": "Il s'agit du serveur à qui nous allons demander les informations.",
        "ttl": "Temps de cache restant",
        "showDNSSEC": "Afficher les enregistrements DNSSEC dans la réponse (s'il y en a)"
    },
    "provider": {
        "all": "Tous les fournisseurs",
        "another": "Choisir un autre fournisseur",
        "delete": "Supprimer cet hébergeur de domaines",
        "find": "Vous ne trouvez pas votre hébergeur de domaines ici ?",
        "name-your": "Nommer cet hébergeur de domaines",
        "provider": "Domaines existant sur {{provider}}",
        "kind": "un hébergeur de domaines",
        "select-provider": "Sélectionnez d'abord l'hébergeur de votre domaine :",
        "provider-name": "Nom de l'hébergeur",
        "provider-type": "Type d'hébergement",
        "title": "Les hébergeurs de vos domaines",
        "available-types": "Types de ressources disponibles",
        "import-domains": "Importer tous les domaines",
        "new-form": "Nouvel hébergeur de domaines",
        "update": "Mettre à jour l'hébergeur de domaines",
        "associations": "{{count:eq; 0:aucun domaine associé; 1:{{count}} domaine associé; default:{{count}} domaines associés}}",
        "check-config": "Vérifiez les paramètres de votre hébergeur de domaines",
        "empty": "Vous n'avez enregistré aucun hébergeur de domaines. Essayez {{action}} !\n",
        "empty-action": "d'en ajouter un",
        "linked-domains": "Domaines liés",
        "no-name": "Sans nom"
    },
    "domaingroups": {
        "all": "Tous les groupes",
        "manage": "Vos groupes de domaines",
        "new": "Nouveau groupe",
        "drop-here": "Déposez un domaine ici",
        "no-group": "Divers",
        "title": "Vos groupes"
    },
    "zones": {
        "viewer": "Visualiseur de zone",
        "viewer-subtitle": "Vos services en un coup d'œil",
        "retrieve": "Récupération de la zone",
        "retrieve-subtitle": "Récupération des enregistrements DNS depuis votre fournisseur",
        "upload": "Importer une zone",
        "import-text": "Depuis du texte",
        "import-file": "Depuis un fichier de zone",
        "return-to": "Retour à la zone"
    },
    "compliance": {
        "title": "Conformité des enregistrements",
        "checking": "Vérification…",
        "learn-more": "En savoir plus",
        "dkim": {
            "missing-selector": {
                "title": "Sélecteur manquant",
                "detail": "Les enregistrements DKIM doivent être publiés sous la forme <sélecteur>._domainkey.<domaine>."
            },
            "invalid-selector": {
                "title": "Sélecteur invalide « {{selector}} »",
                "detail": "Les sélecteurs ne doivent contenir que des lettres, chiffres, tirets ou soulignés."
            },
            "parse-error": {
                "title": "Impossible d'analyser l'enregistrement DKIM",
                "detail": "La valeur TXT ne ressemble pas à un enregistrement DKIM clé=valeur."
            },
            "invalid-version": {
                "title": "Version DKIM non supportée « {{version}} »",
                "detail": "Seule la version « DKIM1 » est définie par la RFC 6376."
            },
            "missing-key": {
                "title": "Clé publique manquante (p=)",
                "detail": "Tout enregistrement DKIM doit publier une clé. Un p= vide ne sert qu'à révoquer la clé."
            },
            "revoked-key": {
                "title": "Clé vide, cet enregistrement DKIM est révoqué",
                "detail": "Un tag p= vide indique aux vérificateurs d'ignorer ce sélecteur."
            },
            "invalid-base64": {
                "title": "La clé publique n'est pas du base64 valide",
                "detail": "p= doit contenir un SubjectPublicKeyInfo encodé en base64."
            },
            "weak-rsa-key": {
                "title": "Clé RSA trop courte",
                "detail": "La RFC 8301 interdit les clés RSA de moins de 1024 bits."
            },
            "short-rsa-key": {
                "title": "Clé RSA plus courte que recommandé",
                "detail": "Utilisez des clés RSA d'au moins 2048 bits (RFC 8301 §3.2)."
            },
            "unknown-key-type": {
                "title": "Type de clé inconnu « {{type}} »",
                "detail": "La RFC 6376 définit « rsa » ; la RFC 8463 ajoute « ed25519 »."
            },
            "deprecated-hash": {
                "title": "Algorithme de hachage déprécié « {{hash}} »",
                "detail": "La RFC 8301 interdit SHA-1 pour les signatures DKIM."
            },
            "unknown-hash": {
                "title": "Algorithme de hachage inconnu « {{hash}} »",
                "detail": "Les valeurs usuelles sont « sha256 » (et historiquement « sha1 »)."
            },
            "unknown-service-type": {
                "title": "Type de service non reconnu « {{type}} »",
                "detail": "Les valeurs usuelles sont « email » ou « * »."
            },
            "unknown-flag": {
                "title": "Drapeau inconnu « {{flag}} »",
                "detail": "La RFC 6376 ne définit que « y » (test) et « s » (alignement i= strict)."
            },
            "testing-mode": {
                "title": "Mode test activé (t=y)",
                "detail": "Les vérificateurs peuvent ignorer les signatures de ce sélecteur. Retirez le drapeau y une fois en production."
            },
            "deprecated-granularity": {
                "title": "Le tag g= est déprécié",
                "detail": "Le tag granularité a été supprimé par la RFC 6376 ; les vérificateurs modernes l'ignorent."
            }
        },
        "bimi": {
            "wrong-owner-name": {
                "title": "L'enregistrement BIMI n'est pas au bon owner name « {{name}} »",
                "detail": "Les enregistrements BIMI doivent être publiés sous <sélecteur>._bimi.<domaine>."
            },
            "missing-selector": {
                "title": "Sélecteur manquant",
                "detail": "Les enregistrements BIMI doivent être publiés sous la forme <sélecteur>._bimi.<domaine>. Utilisez « default » sauf si vous publiez plusieurs logos."
            },
            "invalid-selector": {
                "title": "Sélecteur invalide « {{selector}} »",
                "detail": "Les sélecteurs ne doivent contenir que des lettres, chiffres, tirets ou soulignés."
            },
            "invalid-version": {
                "title": "Version BIMI non supportée « {{version}} »",
                "detail": "Seule « BIMI1 » est définie par le draft actuel."
            },
            "missing-location": {
                "title": "URL du logo manquante (l=)",
                "detail": "BIMI nécessite une URL de logo pointant vers un fichier SVG Tiny PS."
            },
            "location-not-https": {
                "title": "L'URL du logo n'est pas en HTTPS",
                "detail": "Les clients mail ne récupèrent les logos BIMI qu'en HTTPS."
            },
            "location-not-svg": {
                "title": "L'URL du logo ne se termine pas par .svg",
                "detail": "BIMI requiert un logo au format SVG Tiny Portable/Secure. L'URL doit pointer vers un fichier .svg."
            },
            "authority-not-https": {
                "title": "L'URL du VMC n'est pas en HTTPS",
                "detail": "L'URL du Verified Mark Certificate doit utiliser HTTPS."
            },
            "authority-not-pem": {
                "title": "L'URL du VMC ne se termine pas par .pem",
                "detail": "Le Verified Mark Certificate est habituellement publié au format PEM."
            },
            "evidence-not-https": {
                "title": "L'URL d'evidence n'est pas en HTTPS",
                "detail": "L'URL du document d'evidence devrait utiliser HTTPS."
            },
            "missing-vmc": {
                "title": "Pas de Verified Mark Certificate (a=)",
                "detail": "Gmail et Yahoo nécessitent un VMC pour afficher le logo BIMI."
            },
            "declination": {
                "title": "Déclaration de non-participation à BIMI",
                "detail": "Cet enregistrement indique explicitement aux destinataires que le domaine a choisi de ne pas participer à BIMI."
            },
            "no-dmarc": {
                "title": "Aucun enregistrement DMARC publié",
                "detail": "BIMI nécessite un enregistrement DMARC avec une politique stricte (quarantine ou reject)."
            },
            "weak-dmarc-policy": {
                "title": "La politique DMARC est trop faible pour BIMI",
                "detail": "Les clients mail n'honorent BIMI que lorsque DMARC est en quarantine ou reject."
            }
        },
        "dmarc": {
            "wrong-owner-name": {
                "title": "L'enregistrement DMARC n'est pas sous _dmarc.{{name}}",
                "detail": "Les enregistrements DMARC doivent être publiés sous _dmarc.<domaine>."
            },
            "parse-error": {
                "title": "Impossible d'analyser l'enregistrement DMARC",
                "detail": "La valeur TXT ne ressemble pas à un enregistrement DMARC clé=valeur."
            },
            "missing-version": {
                "title": "Tag v=DMARC1 manquant",
                "detail": "Un enregistrement DMARC doit commencer par la balise v=DMARC1."
            },
            "invalid-version": {
                "title": "Version DMARC non supportée « {{version}} »",
                "detail": "Seule « DMARC1 » est définie par la RFC 7489."
            },
            "missing-policy": {
                "title": "Politique manquante (p=)",
                "detail": "DMARC requiert une politique : none, quarantine ou reject."
            },
            "invalid-policy": {
                "title": "Politique inconnue « {{policy}} »",
                "detail": "p= doit être l'une des valeurs : none, quarantine, reject."
            },
            "invalid-sp": {
                "title": "Politique de sous-domaine inconnue « {{policy}} »",
                "detail": "sp= doit être l'une des valeurs : none, quarantine, reject."
            },
            "monitoring-only": {
                "title": "Politique p=none (mode observation)",
                "detail": "Les destinataires collecteront les rapports mais n'agiront pas sur les messages en échec. Passez à quarantine ou reject quand vous aurez confiance dans les rapports."
            },
            "invalid-alignment": {
                "title": "{{tag}}=« {{value}} » invalide",
                "detail": "Les tags d'alignement doivent valoir « r » (relâché) ou « s » (strict)."
            },
            "invalid-pct": {
                "title": "pct=« {{pct}} » hors plage",
                "detail": "pct doit être un entier entre 0 et 100."
            },
            "partial-deployment": {
                "title": "DMARC appliqué à {{pct}}% du courrier",
                "detail": "Seule une fraction des messages en échec sera soumise à la politique DMARC. Utile en phase de déploiement, retirez pct= une fois la politique éprouvée."
            },
            "invalid-ri": {
                "title": "ri=« {{ri}} » invalide",
                "detail": "ri doit être un entier positif en secondes (défaut : 86400)."
            },
            "invalid-fo": {
                "title": "Option de rapport d'échec inconnue « {{value}} »",
                "detail": "fo= accepte 0, 1, d ou s (ou une combinaison séparée par deux-points)."
            },
            "unknown-rf": {
                "title": "Format de rapport inconnu « {{value}} »",
                "detail": "Seul afrf est défini par la RFC 7489."
            },
            "empty-uri": {
                "title": "Entrée {{tag}} vide",
                "detail": "Supprimez la valeur vide ou remplacez-la par une URI de destination."
            },
            "invalid-uri-scheme": {
                "title": "URI {{tag}} « {{uri}} » non mailto/http",
                "detail": "Les URIs de rapport DMARC doivent utiliser mailto: (recommandé) ou http(s):."
            },
            "invalid-mailto": {
                "title": "URI mailto malformée dans {{tag}} : « {{uri}} »",
                "detail": "Format attendu : mailto:utilisateur@exemple.fr (un suffixe !taille est autorisé)."
            },
            "no-alignment-source": {
                "title": "Aucun enregistrement DKIM ni SPF dans cette zone",
                "detail": "DMARC requiert au moins un mécanisme aligné. Sans DKIM ni SPF, aucun message ne peut passer DMARC."
            },
            "no-alignment-source-enforcing": {
                "title": "p={{policy}} mais aucun DKIM ni SPF dans cette zone",
                "detail": "Tous les messages légitimes échoueront DMARC et seront mis en quarantaine ou rejetés. Publiez DKIM et/ou SPF avant d'appliquer la politique."
            },
            "external-reporting": {
                "title": "Les rapports sont envoyés au domaine externe {{domain}}",
                "detail": "La RFC 7489 sec. 7.1 impose que {{domain}} publie un enregistrement TXT autorisant la réception des rapports pour ce domaine."
            },
            "report-auth-missing": {
                "title": "{{domain}} n'autorise pas les rapports pour ce domaine",
                "detail": "Aucun enregistrement TXT trouvé à {{queriedName}}. Sans cet enregistrement, {{address}} ignorera silencieusement vos rapports DMARC."
            },
            "report-auth-no-dmarc": {
                "title": "L'enregistrement d'autorisation à {{domain}} est malformé",
                "detail": "{{queriedName}} renvoie des TXT, mais aucun ne commence par v=DMARC1 ; les rapports risquent d'être rejetés."
            },
            "report-auth-resolver-error": {
                "title": "Impossible de vérifier l'autorisation à {{domain}}",
                "detail": "La résolution de {{queriedName}} a échoué : {{error}}"
            },
            "strict-dkim-no-record": {
                "title": "adkim=s mais aucun enregistrement DKIM dans cette zone",
                "detail": "L'alignement DKIM strict requiert que le domaine signataire d= corresponde exactement. Sans DKIM publié, seul l'alignement SPF peut aboutir."
            }
        },
        "mta_sts": {
            "wrong-owner-name": {
                "title": "L'enregistrement MTA-STS n'est pas sous _mta-sts.{{name}}",
                "detail": "Les enregistrements MTA-STS doivent être publiés sous _mta-sts.<domaine>."
            },
            "parse-error": {
                "title": "Impossible d'analyser l'enregistrement MTA-STS",
                "detail": "La valeur TXT ne ressemble pas à un enregistrement MTA-STS clé=valeur."
            },
            "missing-version": {
                "title": "Tag v=STSv1 manquant",
                "detail": "Un enregistrement TXT MTA-STS doit commencer par v=STSv1."
            },
            "invalid-version": {
                "title": "Version MTA-STS non supportée « {{version}} »",
                "detail": "Seule « STSv1 » est définie par la RFC 8461."
            },
            "missing-id": {
                "title": "Identifiant de politique manquant (id=)",
                "detail": "MTA-STS requiert un identifiant de politique ; incrémentez-le à chaque changement du fichier de politique."
            },
            "invalid-id": {
                "title": "Identifiant de politique invalide « {{id}} »",
                "detail": "id doit contenir 1 à 32 caractères alphanumériques (RFC 8461 sec. 3.1)."
            },
            "policy-dns-error": {
                "title": "Impossible de résoudre l'hôte mta-sts",
                "detail": "La résolution DNS de mta-sts.<domaine> a échoué. Publiez un enregistrement A/AAAA pour que la politique à {{url}} soit joignable."
            },
            "policy-tls-error": {
                "title": "Échec du handshake TLS pour l'hôte de politique",
                "detail": "{{error}}"
            },
            "policy-not-found": {
                "title": "Aucun fichier de politique à {{url}}",
                "detail": "RFC 8461 sec. 3.3 : la politique DOIT être servie à cette URL. Publiez le fichier ou retirez l'enregistrement TXT."
            },
            "policy-http-error": {
                "title": "Le téléchargement de la politique a renvoyé HTTP {{code}}",
                "detail": "Le serveur de politique a répondu avec un statut non-2xx ; les destinataires considéreront la politique comme manquante."
            },
            "policy-redirect": {
                "title": "L'hôte de politique a tenté une redirection (HTTP {{code}})",
                "detail": "RFC 8461 sec. 3.3 interdit les redirections sur l'URL de politique. Servez le fichier directement à {{url}}."
            },
            "policy-fetch-error": {
                "title": "Impossible de télécharger la politique",
                "detail": "{{error}}"
            },
            "policy-too-large": {
                "title": "Le fichier de politique est trop volumineux",
                "detail": "Le fichier à {{url}} dépasse la limite de taille (64 Kio). Les politiques MTA-STS sont très courtes ; allégez le fichier."
            },
            "policy-missing-version": {
                "title": "Le fichier de politique n'a pas de clé version",
                "detail": "Ajoutez une ligne « version: STSv1 » en tête de {{url}}."
            },
            "policy-invalid-version": {
                "title": "Version de politique « {{version}} » inconnue",
                "detail": "Seule « STSv1 » est définie par la RFC 8461."
            },
            "policy-missing-mode": {
                "title": "Le fichier de politique n'a pas de clé mode",
                "detail": "Ajoutez une ligne « mode: enforce » (ou testing / none) dans {{url}}."
            },
            "policy-invalid-mode": {
                "title": "Mode de politique « {{mode}} » inconnu",
                "detail": "Le mode doit être : enforce, testing ou none."
            },
            "policy-mode-none": {
                "title": "Le mode de politique est « none » (MTA-STS effectivement désactivé)",
                "detail": "Les destinataires se comporteront comme si aucune politique n'était publiée. Passez à enforce quand vous aurez confiance."
            },
            "policy-mode-testing": {
                "title": "Mode de politique « testing »",
                "detail": "Les destinataires rapporteront les échecs mais livreront tout de même. Passez à enforce une fois les rapports propres."
            },
            "policy-missing-mx": {
                "title": "La politique n'a pas d'entrées mx",
                "detail": "Une politique {{mode}} doit lister au moins un motif mx ; sinon aucun courrier ne peut être livré."
            },
            "policy-missing-max-age": {
                "title": "Le fichier de politique n'a pas de max_age",
                "detail": "Ajoutez une ligne « max_age: <secondes> ». Valeurs usuelles : 86400 (1 jour) à 604800 (1 semaine) en déploiement, puis plus."
            },
            "policy-invalid-max-age": {
                "title": "max_age « {{maxAge}} » hors plage",
                "detail": "max_age doit être compris entre 0 et 31557600 secondes (1 an)."
            },
            "policy-short-max-age": {
                "title": "max_age court ({{maxAge}}s)",
                "detail": "La RFC 8461 recommande au moins une semaine. Des valeurs trop courtes empêchent le cache et forcent les re-téléchargements."
            },
            "zone-no-mx": {
                "title": "La politique liste des motifs mx mais la zone n'a aucun enregistrement MX",
                "detail": "Les expéditeurs refuseront de livrer le courrier vers ce domaine car aucun MX de l'apex ne correspond à la politique de {{url}}."
            },
            "zone-mx-not-covered": {
                "title": "Le MX « {{host}} » n'est couvert par aucun motif mx de la politique",
                "detail": "Les expéditeurs appliquant la politique {{mode}} de {{url}} refuseront de livrer vers cet hôte. Ajoutez une entrée mx correspondante."
            },
            "policy-mx-unused": {
                "title": "Le motif mx « {{pattern}} » de la politique ne correspond à aucun MX de la zone",
                "detail": "Le motif listé dans {{url}} ne correspond à aucun enregistrement MX. Retirez l'entrée ou ajoutez le MX manquant."
            }
        },
        "mx": {
            "null-mx-with-others": {
                "title": "Un null MX ne peut coexister avec d'autres enregistrements MX",
                "detail": "La RFC 7505 impose qu'un null MX (cible « . ») soit le seul enregistrement MX du domaine."
            },
            "null-mx-non-zero-preference": {
                "title": "La préférence d'un null MX doit être 0 (reçu {{preference}})",
                "detail": "La RFC 7505 spécifie une préférence à 0 pour l'enregistrement null MX."
            },
            "invalid-target": {
                "title": "Cible MX invalide « {{target}} »",
                "detail": "Les cibles MX doivent être des noms d'hôtes valides au sens de la RFC 1035."
            },
            "invalid-preference": {
                "title": "Préférence MX « {{preference}} » hors plage",
                "detail": "La préférence MX doit être un entier non signé sur 16 bits (0..65535)."
            },
            "duplicate-target": {
                "title": "Cible MX dupliquée « {{target}} »",
                "detail": "La même cible apparaît plusieurs fois. Ne conservez qu'un seul enregistrement."
            },
            "target-is-cname": {
                "title": "La cible MX « {{target}} » est un CNAME",
                "detail": "La RFC 5321 sec. 5.1 interdit qu'un MX pointe vers un CNAME."
            },
            "target-no-address": {
                "title": "La cible MX « {{target}} » n'a pas d'A/AAAA dans cette zone",
                "detail": "Ajoutez une entrée Serveur pour ce nom, ou vérifiez que le FQDN cible est correct."
            }
        },
        "tlsrpt": {
            "wrong-owner-name": {
                "title": "L'enregistrement TLS-RPT n'est pas sous _smtp._tls.{{name}}",
                "detail": "Les enregistrements TLS-RPT doivent être publiés sous _smtp._tls.<domaine>."
            },
            "parse-error": {
                "title": "Impossible d'analyser l'enregistrement TLS-RPT",
                "detail": "La valeur TXT ne ressemble pas à un enregistrement TLS-RPT clé=valeur."
            },
            "missing-version": {
                "title": "Tag v=TLSRPTv1 manquant",
                "detail": "Un enregistrement TXT TLS-RPT doit commencer par v=TLSRPTv1."
            },
            "invalid-version": {
                "title": "Version TLS-RPT non supportée « {{version}} »",
                "detail": "Seule « TLSRPTv1 » est définie par la RFC 8460."
            },
            "missing-rua": {
                "title": "Destination rua= manquante",
                "detail": "TLS-RPT requiert au moins une URI rua pour recevoir les rapports agrégés."
            },
            "empty-rua": {
                "title": "Entrée rua vide",
                "detail": "Supprimez la valeur vide ou remplacez-la par une URI de destination."
            },
            "invalid-rua-scheme": {
                "title": "URI rua « {{uri}} » non mailto/http",
                "detail": "Les URIs de rapport TLS-RPT doivent utiliser mailto: ou http(s):."
            },
            "invalid-mailto": {
                "title": "URI mailto malformée dans rua : « {{uri}} »",
                "detail": "Format attendu : mailto:utilisateur@exemple.fr."
            }
        },
        "spf": {
            "missing-version": {
                "title": "Préfixe v=spf1 manquant",
                "detail": "Un enregistrement SPF doit commencer par la balise de version v=spf1."
            },
            "wrong-version": {
                "title": "Version SPF non supportée : {{version}}",
                "detail": "Seule v=spf1 est définie. Les autres versions ne sont pas supportées et seront ignorées par les destinataires."
            },
            "no-all-mechanism": {
                "title": "Aucun mécanisme « all » ni redirect",
                "detail": "Sans mécanisme « all » terminal (ou modificateur redirect), les destinataires retombent sur un résultat neutre pour les expéditeurs inconnus. Ajoutez par ex. -all ou ~all en fin d'enregistrement."
            },
            "multiple-all": {
                "title": "Plusieurs mécanismes « all » ({{count}})",
                "detail": "Un seul mécanisme « all » est autorisé ; les suivants sont ignorés."
            },
            "all-not-last": {
                "title": "Le mécanisme « all » n'est pas en dernier",
                "detail": "Les mécanismes placés après « all » sont inaccessibles. Déplacez « all » à la fin de l'enregistrement."
            },
            "redirect-with-all": {
                "title": "Modificateur redirect= combiné avec un mécanisme « all »",
                "detail": "Lorsque « all » est présent, le modificateur redirect est ignoré. Retirez l'un des deux."
            },
            "multiple-redirect": {
                "title": "Plusieurs modificateurs redirect=",
                "detail": "Un seul modificateur redirect est autorisé par enregistrement SPF."
            },
            "ptr-deprecated": {
                "title": "Le mécanisme ptr est déprécié",
                "detail": "Le mécanisme « ptr » est lent et déprécié par la RFC 7208. Préférez ip4/ip6 ou include."
            },
            "too-many-lookups": {
                "title": "Plus de {{max}} requêtes DNS ({{count}})",
                "detail": "RFC 7208 sec. 4.6.4 : un enregistrement SPF ne doit pas requérir plus de 10 requêtes DNS. En comptant localement include, a, mx, exists, ptr et redirect, cet enregistrement dépasse déjà ce budget."
            },
            "many-lookups": {
                "title": "Limite SPF approchée ({{count}}/{{max}})",
                "detail": "Comptage local de include, a, mx, exists, ptr et redirect ; la récursion peut faire dépasser la limite stricte de 10 requêtes."
            },
            "mechanism-missing-value": {
                "title": "Le mécanisme « {{mechanism}} » requiert une valeur",
                "detail": "include, exists et redirect doivent être suivis d'un nom de domaine (ex. include:_spf.example.com)."
            },
            "duplicate-mechanism": {
                "title": "Terme dupliqué : {{mechanism}}",
                "detail": "Répéter le même mécanisme n'a aucun effet et alourdit l'enregistrement."
            },
            "empty-term": {
                "title": "Terme SPF vide",
                "detail": "Supprimez les entrées vides ; un espace orphelin produit une directive vide."
            },
            "unknown-mechanism": {
                "title": "Mécanisme SPF inconnu « {{mechanism}} »",
                "detail": "La RFC 7208 sec. 5 définit all, include, a, mx, ptr, ip4, ip6 et exists. Tout autre nom est traité comme une erreur permanente par les vérificateurs."
            },
            "unknown-modifier": {
                "title": "Modificateur SPF inconnu « {{modifier}}= »",
                "detail": "Seuls redirect= et exp= sont définis par les RFC SPF. Les modificateurs inconnus sont ignorés, mais il s'agit le plus souvent d'une faute de frappe."
            },
            "length-exceeds-txt-string": {
                "title": "Longueur de l'enregistrement : {{length}} caractères",
                "detail": "Une chaîne TXT est limitée à 255 caractères ; les enregistrements plus longs doivent être découpés en plusieurs chaînes au sein du même RR."
            },
            "recursive-too-many-lookups": {
                "title": "Le parcours SPF récursif dépasse la limite de {{max}} requêtes ({{count}})",
                "detail": "Une fois tous les include et redirect résolus, cet enregistrement nécessite plus de 10 requêtes DNS. Les destinataires renverront PermError au lieu de l'évaluer."
            },
            "recursive-many-lookups": {
                "title": "Le parcours SPF récursif consomme {{count}}/{{max}} requêtes",
                "detail": "Vous êtes dans le budget mais proche de la limite. Ajouter un include supplémentaire ou en étendre un existant fera probablement basculer au-delà."
            },
            "too-many-void-lookups": {
                "title": "Plus de {{max}} requêtes DNS « vides » ({{count}})",
                "detail": "La RFC 7208 §4.6.4 interdit plus de deux réponses NXDOMAIN/NoData lors de l'évaluation SPF ; les destinataires renverront PermError."
            },
            "include-loop": {
                "title": "Boucle d'include SPF sur {{domain}}",
                "detail": "Un include ou redirect pointe vers un domaine déjà présent dans la chaîne d'évaluation. Cassez le cycle."
            },
            "include-no-spf": {
                "title": "Aucun enregistrement SPF sur {{domain}}",
                "detail": "Le mécanisme {{mechanism}} pointe vers un domaine qui ne publie pas v=spf1. La requête compte tout de même dans le budget."
            },
            "include-resolver-error": {
                "title": "Impossible de vérifier {{domain}}",
                "detail": "Le résolveur a rencontré une erreur transitoire ou un dépassement de délai lors de l'évaluation de {{mechanism}}. Réessayez plus tard."
            },
            "include-error": {
                "title": "Problème lors de la résolution de {{domain}}",
                "detail": "Le mécanisme {{mechanism}} n'a pas pu être totalement évalué."
            }
        }
    }
}
