{
  "fromProjectOk": "Site CDN créé depuis le projet — appliquer edges / DNS",
  "fromProjectUpdated": "Site CDN lié au projet mis à jour",
  "fromProjectFailed": "from-project a échoué",
  "nodeUpdated": "Nœud mis à jour",
  "nodeCreated": "Nœud créé",
  "saveFailed": "Échec de l'enregistrement",
  "geoMapInvalid": "JSON geoMap invalide, ex. {\"hkg\":[\"node-id\"]}",
  "siteUpdated": "Site mis à jour",
  "siteCreated": "Site créé",
  "probeOnline": "Sonde OK (en ligne)",
  "probeOffline": "Sonde échouée (hors ligne)",
  "probeFailed": "Échec du sondage",
  "batchProbeOk": "Tous les nœuds sondés",
  "batchProbePartial": "Certains/tous les nœuds en mauvaise santé",
  "batchProbeFailed": "Sonde par lot échouée",
  "drainingSet": "Mis en drainage",
  "drainCleared": "Drainage levé",
  "confirmDeleteNode": "Supprimer ce nœud CDN ?",
  "nodeDeleted": "Nœud supprimé",
  "deleteFailed": "Échec de la suppression",
  "confirmDeleteSite": "Supprimer ce site CDN ?",
  "siteDeleted": "Site supprimé",
  "blocked": "Bloqué (permission system-change requise)",
  "previewRender": "Aperçu du rendu ({{status}}) hash={{hash}}",
  "fanoutDone": "Fan-out terminé ({{status}})",
  "purgeDone": "Purge terminée ({{status}})",
  "dnsSyncDone": "Sync DNS terminée ({{status}})",
  "sslDone": "SSL terminé ({{status}})",
  "confWritten": "Conf écrite ({{status}})",
  "partialFail": "Pas entièrement réussi ({{status}}) — voir les notes",
  "statNodes": "Nœuds",
  "hitNoStats": "Pas encore de stats de bord",
  "loopbackOriginBlocked": "N’appliquera pas l’origin de bouclage {{url}} à un bord distant. Définissez un origin joignable.",
  "applyFailedHint": "Échec d’application — voir les notes ci-dessous",
  "applyFailedNoNote": "Aucune raison stockée. Réappliquez pour capturer l’erreur.",
  "applyStatus": {
    "draft": "Brouillon",
    "planned": "Planifié",
    "applying": "Application…",
    "applied": "Appliqué",
    "failed": "Échoué",
    "partial": "Partiel"
  },
  "statSites": "Sites",
  "statSitesCount": "{{n}} sites",
  "cacheMethod": {
    "none": "Aucune estimation",
    "access_log": "Journal d'accès",
    "cache_dir": "Répertoire cache",
    "log_format": "Besoin d'un format de journal"
  },
  "geoMapLabel": "Carte géographique (JSON)",
  "statApplyFailed": "L'application a échoué",
  "pillNodesSites": "{{n}} nœuds · {{s}} sites",
  "statOnline": "En ligne",
  "statHit": "Taux de réussite",
  "hitUnknown": "Inconnu",
  "lastHealthHint": "Dernière sonde {{at}} · {{ok}}",
  "lastHealthNever": "Pas encore sondé – exécutez Probe",
  "lastHealthFail": "la sonde a échoué",
  "healthLoopNeedSites": "Ajoutez d'abord un site",
  "nodeStatus": {
    "online": "en ligne",
    "offline": "hors ligne",
    "draining": "évacuation",
    "unknown": "inconnu"
  },
  "recentNotes": "Notes récentes",
  "previewOnlyNote": "Aperçu uniquement : rien n'a été écrit sur les bords.",
  "statByRegion": "Région:",
  "statByApply": "Appliquer le statut :",
  "col": {
    "origin": "Origine",
    "edges": "Bords",
    "apply": "Appliquer",
    "dns": "DNS",
    "edgesOnline": "Bords en ligne / appliqués",
    "dnsRr": "Enregistrements DNS CDN"
  },
  "mode": {
    "origin_pull": "Tirage d'origine",
    "reverse_proxy": "Proxy inverse",
    "static_edge": "Bord statique"
  },
  "dnsStrategy": {
    "multi_a": "Plusieurs enregistrements A",
    "cname": "CNAME",
    "geo": "Géo"
  },
  "edgesOnlineApplied": "{{online}}/{{total}} en ligne · {{applied}} appliqué",
  "hitMiss": "Clics {{hits}} / ratés {{misses}}",
  "cacheBytes": "Cache ≈ {{n}} B",
  "hitRateUnknown": "Aucun journal d'accès avec l'état du cache et aucun répertoire de cache, le taux de réussite ne peut donc pas être estimé.",
  "edgeConfPreview": "Aperçu de la conf edge Nginx",
  "tabs": {
    "nodes": "Nœuds",
    "sites": "Sites",
    "dashboard": "Tableau de bord",
    "about": "À propos"
  },
  "nodesTitle": "Nœuds CDN ({{count}})",
  "nodesDesc": "Enregistrer control / origin / edge / dns. La sonde met à jour le statut.",
  "offlineHint": "Hors ligne : la sonde a échoué. Supprimez le nœud s’il reste.",
  "colName": "Nom",
  "colRole": "Rôle",
  "colStatus": "Statut",
  "clearDrain": "Lever le drainage",
  "drain": "Vidange",
  "drainTitle": "Arrêtez d'envoyer du nouveau trafic CDN vers ce périphérique",
  "drainDesc": "Vider « {{name}} » ? Les connexions existantes restent jusqu'à leur fin.",
  "drainLastTitle": "C'est le dernier bord : le drainage laissera chaque site sans bord",
  "drainLastDesc": "«{{name}}» est le seul avantage. Égouttez-le et tous les sites n'ont aucun bord.",
  "clearDrainTitle": "Acceptez à nouveau le nouveau trafic sur ce bord",
  "clearDrainDesc": "Vider la vidange sur « {{name}} » ?",
  "deleteNodeTitle": "Supprimer ce bord CDN",
  "deleteLastNodeTitle": "Supprimez le dernier bord : tous les sites n'auront aucun bord",
  "purge": "Purge",
  "previewTitle": "Aperçu de la configuration nginx (pas d'écriture)",
  "writeConfTitle": "Écrire les fichiers de configuration Edge Nginx",
  "applyEdgesTitle": "Appliquer ce site aux bords (écrit nginx)",
  "purgeTitle": "Purger le cache sur les bords",
  "dnsSyncTitle": "Écrire des enregistrements DNS CDN",
  "probeDnsTitle": "Bords de sonde et DNS (lecture seule)",
  "distSslTitle": "Copier les matériaux TLS sur les bords",
  "leIssueTitle": "Émettez un certificat Let’s Encrypt et distribuez-le",
  "deleteSiteTitle": "Supprimer ce site CDN",
  "siteOpConfirmGeneric": "Exécuter cette action sur « {{name}} » ?",
  "siteOpConfirmDesc": "Site « {{name}} » · {{action}}. Cela peut modifier nginx, DNS ou les certificats.",
  "siteOpConfirm": {
    "apply": "Appliquer ce site aux bords ?",
    "render": "Écrire la configuration nginx pour ce site ?",
    "purge": "Vider le cache de ce site ?",
    "dns-sync": "Synchroniser le DNS pour ce site ?",
    "dist": "Distribuer TLS sur les bords ?",
    "issue": "Problème Chiffrons et distribuons ?"
  },
  "emptyNodesTitle": "Aucun nœud CDN pour l’instant",
  "emptyNodesDesc": "Utilisez « + Add node » pour enregistrer un edge, puis créez des sites.",
  "sitesTitle": "Sites CDN ({{count}})",
  "sitesDesc": "Domaine + origin + edges + cache + DNS multi-A. Appliquer edges / sync DNS / purge.",
  "healthLoopOk": "Boucle de santé terminée pour tous les sites",
  "healthLoopPartial": "Boucle de santé partiellement échouée",
  "healthLoopFailed": "health-loop échoué",
  "colDomain": "Domaine",
  "colMode": "Mode",
  "emptySitesTitle": "Aucun site CDN pour l’instant",
  "emptySitesDesc": "Utilisez « + Add site » dans la barre d’outils du tableau.",
  "emptySitesNoEdge": "Aucun edge pour l’instant : enregistrez d’abord des nœuds dans l’onglet Nœuds, puis créez un site.",
  "dashboardTitle": "Tableau de bord CDN",
  "updatedAt": "Mis à jour {{at}}",
  "dashboardEmpty": "Tableau de bord non chargé",
  "siteStatus": "Statut du site",
  "cacheHitEstimate": "Taux de succès du cache (estimation)",
  "dashboardNotes": "Notes du tableau de bord",
  "editNode": "Modifier le nœud CDN",
  "addNode": "Ajouter un nœud CDN",
  "nodeAddrHint": "Renseignez au moins un champ parmi IPv4 / IPv6 / healthUrl / baseUrl",
  "sshHostHint": "Vide = utiliser IPv4 ; 127.0.0.1 = application locale",
  "sshHostPlaceholder": "Laisser vide pour l'IPv4 public",
  "sshUser": "Utilisateur SSH",
  "fleetHint": "Flotte uniquement (sans SSH) : files fan-out pour l'agent ;",
  "fleetPlaceholder": "UUID de session de la page Agents",
  "editSite": "Modifier le site CDN",
  "addSite": "Ajouter un site CDN",
  "originHint": "Origine en URL pour l'instant ; liaison projet plus tard",
  "commaSeparated": "Séparés par des virgules",
  "originUrl": "URL d'origine edge",
  "edgeNodes": "Nœuds edge",
  "cache": "Cache",
  "dnsPolicy": "Politique DNS",
  "dnsPolicyHint": "multi_a = multi-IP ; failover = uniquement le plus sain",
  "zoneOptional": "Vide = correspondance auto de zone par domaine",
  "sslMode": "Mode SSL",
  "sslModeHint": "upload = certificat sur la page SSL ; le_http01 = ACME edge",
  "leEmailOptional": "E-mail LE (optionnel)",
  "leEmailHint": "Préremplir pour l'émission",
  "shieldHint": "Origine des edges non-shield via ce nœud",
  "geoMapHint": "Pour strategy=geo, ex. {\"hkg\":[\"id1\"],\"nrt\":[\"id2\"]}",
  "geoSubdomain": "Sous-domaine géo",
  "addNodeBtn": "+ Ajouter un nœud",
  "addSiteBtn": "+ Ajouter un site",
  "probeAll": "Sonder tout",
  "healthLoop": "Boucle de santé",
  "setDraining": "Mettre en drain",
  "fromProjectUpdatedAlt": "Site CDN lié au projet mis à jour",
  "refresh": "Actualiser",
  "closePreview": "Fermer l'aperçu",
  "probe": "Sonder",
  "preview": "Aperçu",
  "writeConf": "Écrire la conf",
  "applyEdges": "Appliquer les edges",
  "dnsSync": "Sync DNS",
  "probeDns": "Sonde+DNS",
  "distSsl": "Distribuer SSL",
  "leIssue": "Émettre LE",
  "reaggregate": "Actualiser l'agrégat",
  "createEdgeFirst": "Créez d'abord un nœud edge",
  "enableProxyCache": "Activer proxy_cache",
  "autoMatch": "(correspondance auto)",
  "none": "(aucun)",
  "writeRegionDns": "Écrire le sous-domaine de région A/AAAA (ex. hkg)",
  "workflowHint": "Flux : écrire conf → appliquer edges → sonde+DNS → SSL",
  "healthLoopAll": "Boucle de santé tous les sites",
  "deleteNodeDesc": "Supprime le nœud CDN « {{name}} ».",
  "deleteSiteDesc": "Supprime le site CDN « {{name}} ».",
  "deleteSiteC1": "Politique du site et associations edge",
  "deleteSiteC2": "Les configs nginx appliquées peuvent nécessiter un nettoyage ou une réapplication séparés",
  "statOnlineOf": "En ligne {{n}}/{{total}}",
  "colRegion": "Région",
  "statDraining": "Vidange {{n}}",
  "statOffline": "Hors ligne {{n}}",
  "localTest": "local / test",
  "statHitRate": "Taux de réussite {{v}}"
}
