{
  "brand": {
    "title": "S H A D O W  B R O K E R",
    "subtitle": "INTERCEPTION MONDIALE DES MENACES",
    "systemMetrics": "OPTIC VIS:113 SRC:180 DENS:1.42 0.8ms"
  },
  "nav": {
    "layers": "COUCHES",
    "intel": "RENSEIGNEMENTS",
    "markets": "MARCHÉS",
    "dataLayers": "COUCHES DE DONNÉES",
    "prioritizingMapFeeds": "PRIORISATION DES FLUX CARTE",
    "restoreUi": "RESTAURER L'INTERFACE"
  },
  "controls": {
    "updates": "MISES À JOUR",
    "checking": "VÉRIFICATION...",
    "upToDate": "À JOUR",
    "checkFailed": "VÉRIFICATION ÉCHOUÉE",
    "node": "NŒUD",
    "terminal": "TERMINAL",
    "coordinates": "COORDONNÉES",
    "location": "LOCALISATION",
    "style": "STYLE",
    "solar": "SOLAIRE",
    "hoverMap": "Survolez la carte...",
    "na": "N/A"
  },
  "update": {
    "downloadInstaller": "TÉLÉCHARGER L'INSTALLATEUR",
    "installUpdate": "INSTALLER LA MISE À JOUR",
    "autoUpdate": "MISE À JOUR AUTO",
    "viewRelease": "VOIR LA VERSION",
    "manualDownload": "TÉLÉCHARGEMENT MANUEL",
    "cancel": "ANNULER",
    "tryAgain": "RÉESSAYER",
    "downloadingUpdate": "TÉLÉCHARGEMENT DE LA MISE À JOUR...",
    "restarting": "REDÉMARRAGE...",
    "updateFailed": "MISE À JOUR ÉCHOUÉE",
    "dockerUpdate": "MISE À JOUR DOCKER",
    "dockerUpdateDetail": "Les conteneurs Docker doivent être mis à jour en tirant de nouvelles images.\n            Exécutez ceci sur votre machine hôte :"
  },
  "node": {
    "activateNode": "ACTIVER LE NŒUD",
    "activatingNode": "ACTIVATION DU NŒUD",
    "nodeActivated": "NŒUD ACTIVÉ",
    "stipulations": "CONDITIONS",
    "yes": "OUI",
    "no": "NON",
    "agree": "ACCEPTER",
    "disagree": "REFUSER",
    "turnOff": "DÉSACTIVER",
    "keepOn": "GARDER ACTIVÉ",
    "turningOff": "DÉSACTIVATION...",
    "activating": "ACTIVATION...",
    "nodeOnline": "NŒUD EN LIGNE",
    "generatingIdentity": "Génération de l'identité...",
    "identityReady": "Identité prête",
    "preparingTransport": "Préparation du transport onion...",
    "findingPeers": "Recherche de pairs d'amorçage...",
    "peersReady": "Pairs d'amorçage prêts",
    "syncingChain": "Synchronisation de la chaîne...",
    "soloNodeReady": "Nœud solo prêt",
    "synced": "Synchronisé",
    "events": "événements",
    "peers": "pairs",
    "close": "FERMER",
    "activatePrompt": "Voulez-vous activer un nœud sur cette installation ?",
    "activateDetail": "Cela active votre nœud participant local et synchronise l'Infonet uniquement via les pairs onion/RNS Wormhole disponibles. L'amorçage par clearnet est désactivé par défaut.",
    "keepSyncing": "Votre nœud continue de se synchroniser tant que le backend est en cours d'exécution — vous pouvez fermer cet onglet de navigateur. Pour exécuter un nœud headless sans le tableau de bord, utilisez",
    "termsTitle": "EN CONTINUANT VOUS ACCEPTEZ :",
    "term1": "Cette installation peut conserver une copie locale de la chaîne Infonet publique.",
    "term2": "Les nouvelles installations n'utilisent pas de seed Infonet clearnet.",
    "term3": "La synchronisation du nœud participant nécessite un pair onion/RNS via Wormhole.",
    "term4": "Votre backend peut se synchroniser avec des pairs d'amorçage privés configurés en arrière-plan.",
    "term5": "Wormhole maintient l'Infonet, les gates, le Dead Drop et le trafic DM sur la voie obfusquée.",
    "syncTakingLong": "La synchronisation prend plus de temps que prévu. Votre nœud est actif et continuera à se synchroniser en arrière-plan."
  },
  "terminal": {
    "infonetTerminal": "TERMINAL INFONET",
    "privateLaneReady": "VOIE PRIVÉE PRÊTE",
    "privateLaneStarting": "VOIE PRIVÉE DÉMARRAGE",
    "privateLaneOffline": "VOIE PRIVÉE HORS LIGNE",
    "enterTerminal": "Entrer dans le terminal Wormhole et se synchroniser avec les communs obfusqués de l'Infonet ?",
    "terminalDetail": "Le terminal fonctionne via Wormhole pour les gates obfusqués, la boîte de réception et les communications expérimentales.",
    "identityReady": "Votre identité obfusquée est déjà provisionnée. Entrer maintenant maintient la voie obfusquée séparée du chemin de synchronisation du nœud public.",
    "identityNotReady": "Cela active Wormhole et ouvre la voie obfusquée. Si vous avez déjà une identité Wormhole, elle sera réutilisée. Si vous n'en avez pas, une sera amorcée une fois puis conservée.",
    "beforeYouEnter": "AVANT D'ENTRER :",
    "termTerminal1": "Le terminal est destiné aux gates Wormhole (voie privée transitoire) et au Dead Drop / DM (voie privée renforcée).",
    "termTerminal2": "Votre nœud participant peut rester actif séparément sans modifier cette voie d'identité obfusquée.",
    "termTerminal3": "Mesh reste le périmètre public. Wormhole est le commun obfusqué.",
    "wormholeCleanup": "NETTOYAGE WORMHOLE :",
    "cleanupDetail": "Fermer le terminal Infonet arrêtera Wormhole automatiquement. Si vous forcez la fermeture du navigateur ou si l'arrêt échoue, Wormhole peut continuer à tourner en arrière-plan. Exécutez",
    "cleanupFromRoot": "depuis la racine du projet pour vous assurer qu'il est complètement arrêté.",
    "enterWormhole": "ENTRER DANS WORMHOLE",
    "activateWormhole": "ACTIVER WORMHOLE",
    "entering": "ENTRÉE...",
    "goToMesh": "ALLER AU MESH"
  },
  "status": {
    "off": "ARRÊTÉ",
    "solo": "SOLO",
    "connected": "CONNECTÉ",
    "syncing": "SYNCHRONISATION",
    "forkStop": "ARRÊT FOURCHE",
    "syncIssue": "PROBLÈME DE SYNC",
    "active": "ACTIF",
    "participant": "participant",
    "nodeOff": "nœud • arrêté",
    "bootstrapWarning": "nœud • avertissement de démarrage"
  },
  "backend": {
    "offline": "BACKEND HORS LIGNE — Impossible de joindre le serveur backend. Vérifiez que le conteneur backend est en cours d'exécution et que BACKEND_URL est correct."
  },
  "settings": {
    "title": "Paramètres",
    "close": "Fermer",
    "general": "Général",
    "feeds": "Flux",
    "shodan": "Shodan",
    "sar": "SAR",
    "infonet": "Infonet",
    "about": "À propos"
  },
  "legend": {
    "title": "Légende",
    "close": "Fermer"
  },
  "onboarding": {
    "welcome": "Bienvenue dans ShadowBroker",
    "getStarted": "Commencer"
  },
  "news": {
    "title": "Renseignement Actualités",
    "noResults": "Aucun résultat",
    "searchPlaceholder": "Rechercher des actualités..."
  },
  "filters": {
    "title": "Filtres de données",
    "clear": "Effacer",
    "all": "Tout"
  },
  "map": {
    "findLocate": "Rechercher / Localiser",
    "searchPlaceholder": "Rechercher coordonnées, lieu ou indicatif...",
    "measure": "Mesurer",
    "clearMeasure": "Effacer la mesure"
  },
  "layers": {
    "aircraft": "Aéronefs",
    "commercialFlights": "Vols commerciaux",
    "privateAircraft": "Aéronefs privés",
    "privateJets": "Jets privés",
    "militaryFlights": "Vols militaires",
    "trackedAircraft": "Aéronefs suivis",
    "gpsJamming": "Brouillage GPS",
    "maritime": "Maritime",
    "militaryVessels": "Navires militaires",
    "cargoShips": "Navires de charge",
    "civilianShips": "Navires civils",
    "passengerShips": "Navires à passagers",
    "trackedYachts": "Yachts suivis",
    "fishingActivity": "Activité de pêche",
    "space": "Espace",
    "satellites": "Satellites",
    "gibsImagery": "Imagerie GIBS",
    "highresSatellite": "Satellite haute résolution",
    "sentinelHub": "Sentinel Hub",
    "viirsNightlights": "Éclairage nocturne VIIRS",
    "hazards": "Dangers",
    "earthquakes": "Séismes",
    "fires": "Incendies",
    "ukraineAlerts": "Alertes Ukraine",
    "weatherAlerts": "Alertes météo",
    "volcanoes": "Volcans",
    "airQuality": "Qualité de l'air",
    "infrastructure": "Infrastructure",
    "cctv": "CCTV",
    "datacenters": "Centres de données",
    "internetOutages": "Pannes Internet",
    "powerPlants": "Centrales électriques",
    "militaryBases": "Bases militaires",
    "trains": "Trains",
    "sigint": "SIGINT",
    "kiwisdr": "KiwiSDR",
    "pskReporter": "PSK Reporter",
    "satnogs": "SatNOGS",
    "tinygs": "TinyGS",
    "scanners": "Scanners",
    "meshtastic": "Meshtastic",
    "aprs": "APRS",
    "overlays": "Couches superposées",
    "ukraineFrontline": "Ligne de front Ukraine",
    "globalIncidents": "Incidents mondiaux",
    "dayNight": "Jour/Nuit",
    "correlations": "Corrélations",
    "contradictions": "Contradictions",
    "uapSightings": "Observations de PAN",
    "biosurveillance": "Biosurveillance",
    "wastewater": "Eaux usées",
    "crowdThreat": "CrowdThreat",
    "shodanOverlay": "Couche Shodan",
    "aiIntel": "Infos IA",
    "sar": "SAR",
    "roadCorridorTrends": "Tendances fret routier",
    "roadCorridorSource": "Copernicus S-2 · tendances (pas en direct)",
    "submarineCables": "Câbles sous-marins",
    "malwareC2": "Malware C2",
    "scmSuppliers": "Fournisseurs SCM",
    "cyberThreats": "Cybermenaces",
    "telegramOsint": "OSINT Telegram",
    "strategicRisk": "Carte de risque stratégique",
    "derivedOsint": "OSINT dérivé (risque stratégique)",
    "derivedOsintSource": "Expérimental · désactivé par défaut"
  },
  "gtLean": {
    "title": "Activer l'OSINT dérivé sur un nœud limité ?",
    "message": "Shadowbroker a détecté une limite de 1 vCPU. La couche carte peut s'afficher, mais activer le moteur backend peut ralentir les flux OSINT.",
    "confirm": "Activer la couche",
    "cancel": "Annuler"
  },
  "gtHud": {
    "title": "ANALYTIQUE GT",
    "dragHint": "glisser pour déplacer",
    "collapse": "Réduire le panneau",
    "expand": "Développer le panneau"
  },
  "gtAlerts": {
    "title": "ALERTES TOP",
    "counts": "{plotted} sur carte · {tracked} suivies (max {max})",
    "empty": "Aucune région plottable — intel géolocalisée requise.",
    "ignition": "IGNITE",
    "line": "risque {risk} · conflit {conflict}",
    "hint": "500 = régions max suivies, pas des événements. Cliquer pour voler."
  },
  "gtRisk": {
    "popupTitle": "RISQUE STRATÉGIQUE",
    "region": "RÉGION",
    "composite": "RISQUE POSTÉRIEUR",
    "financial": "FIN",
    "unrest": "TROUBLES",
    "conflict": "CONFLIT",
    "contagion": "CONTAGION",
    "costlySignals": "SIGNAUX COÛTEUX",
    "loadingSignals": "Chargement des correspondances…",
    "noSignals": "Aucun signal coûteux récent pour cette région dans Telegram/GDELT/news.",
    "unknownSource": "source inconnue"
  },
  "gtBacktest": {
    "title": "Backtest GT",
    "layerOff": "Désactivé — activez la carte de risque stratégique dans Couches.",
    "disabled": "Analytique GT désactivée (GT_ANALYTICS_ENABLED=true).",
    "loading": "Validation historique en cours…",
    "refresh": "Actualiser le backtest",
    "accuracy": "PRÉCISION",
    "confidence": "BORNE INF. WILSON 95%",
    "cases": "{count} cas étiquetés",
    "threshold": "alerte ≥ {value}",
    "target": "cible {value}",
    "pass": "OK",
    "fail": "ÉCHEC",
    "collecting": "COLLECTE",
    "meetsTarget": "Objectif de confiance atteint",
    "belowTarget": "Sous l'objectif de confiance",
    "misclassified": "{count} mal classés",
    "tabBenchmark": "Référence",
    "tabOperational": "Opérationnel",
    "benchmarkNote": "Corpus historique étiqueté — test de régression, pas prévision live.",
    "operationalLoading": "Chargement de la tendance opérationnelle…",
    "operationalEmpty": "Aucun instantané hebdomadaire — gel chaque lundi 00:05 UTC ou via OpenClaw.",
    "operationalWeeks": "{stored} semaines · {scorable} exploitables",
    "operationalLabeled": "{labeled} étiquetés · {pending} en attente",
    "operationalTrend": "Précision semaine après semaine",
    "operationalImproving": "En hausse vs semaine précédente",
    "operationalFlat": "Stable ou en baisse vs semaine précédente",
    "operationalMinLabels": "≥{count} étiquettes/semaine requis",
    "microTitle": "Micro 3 jours",
    "microWindow": "Moy. glissante {days} j · ignition Δ ≥ {delta}",
    "microIgnitions": "{count} ignition(s)",
    "microAlerted3d": "{count} au-dessus du seuil (moy. 3j)",
    "microEmpty": "Lecture quotidienne en cours — mis à jour à chaque ingest GT.",
    "microRegionLine": "{region}: spot {spot} · 3j {avg} · Δ {delta}",
    "microIgnitionBadge": "IGNITION"
  },
  "roadCorridor": {
    "analyzeHere": "ANALYSER ICI",
    "analyzing": "Analyse…",
    "hintTrends": "Tendances camions par satellite sur autoroutes (~5 j de revisite)",
    "missingDeps": "Installer les extras backend road-corridor",
    "missingCreds": "Ajouter les identifiants Sentinel dans Réglages → Imagerie",
    "panMapFirst": "Déplacez la carte pour choisir une zone",
    "analyzeFailed": "Échec de l'analyse"
  },
  "recon": {
    "title": "Boîte à outils recon",
    "proxyNote": "Proxy côté serveur · opérateur local uniquement"
  },
  "scm": {
    "title": "Chaîne d'approvisionnement",
    "allClear": "Aucun risque élevé sur les nœuds Tier 1/2 surveillés.",
    "layerOff": "Désactivé — activez la couche dans Données pour surveiller les fabs."
  },
  "shodan": {
    "title": "Connecteur Shodan",
    "searchPlaceholder": "Rechercher des appareils...",
    "apiKeyRequired": "Clé API requise",
    "results": "résultats"
  },
  "ai": {
    "title": "Panneau d'infos IA",
    "connected": "Connecté",
    "disconnected": "Déconnecté"
  },
  "meshChat": {
    "title": "Chat Meshtastic",
    "infonet": "Infonet",
    "meshtastic": "Meshtastic",
    "deadDrop": "Dead Drop",
    "sendMessage": "Envoyer un message",
    "placeholder": "Tapez un message..."
  },
  "watchlist": {
    "title": "Liste de surveillance",
    "empty": "Aucun élément surveillé",
    "clear": "Effacer"
  },
  "timeline": {
    "title": "Chronologie des événements",
    "noEvents": "Aucun événement"
  },
  "sar": {
    "title": "Détection de changements au sol SAR",
    "modeA": "Mode Catalogue",
    "modeB": "Mode Anomalie",
    "aoiEditor": "Éditeur AOI",
    "addAoi": "Ajouter AOI",
    "groundDeformation": "Déformation du sol",
    "waterChange": "Changement hydrique",
    "vegetation": "Perturbation végétale",
    "damage": "Évaluation des dégâts",
    "coherence": "Changement de cohérence"
  },
  "telegram": {
    "disclaimer": "AVERTISSEMENT : le contenu ci-dessous provient de canaux Telegram publics. Shadowbroker ne l'héberge pas, ne le vérifie pas et ne le cautionne pas. Vous le consultez à vos risques et cela n'a aucun lien avec Shadowbroker.",
    "loadMedia": "AFFICHER LE MÉDIA (TELEGRAM)",
    "openOriginal": "OUVRIR SUR TELEGRAM →",
    "embedTitle": "Intégration Telegram",
    "postsAtLocation": "{count} posts à cet endroit — faites défiler",
    "translatedFrom": "Traduit depuis {lang}",
    "showOriginal": "AFFICHER L'ORIGINAL ({lang})",
    "showTranslation": "AFFICHER LA TRADUCTION"
  }
}
