{
  "page.title": "Tableau de bord Fail2ban UI",
  "nav.dashboard": "Tableau de bord",
  "nav.filter_debug": "Débogage des filtres",
  "nav.settings": "Paramètres",
  "restart_banner.message": "Configuration Fail2ban modifiée. Pour appliquer les changements, veuillez ",
  "restart_banner.button": "Redémarrer le service",
  "restart_banner.restart_success": "Le service Fail2ban a été redémarré et le contrôle d'état a réussi",
  "restart_banner.reload_success": "La configuration Fail2ban a été rechargée avec succès (pas de redémarrage du service Systemd)",
  "dashboard.title": "Tableau de bord",
  "dashboard.overview": "Vue d'ensemble des jails et blocages actifs",
  "dashboard.overview_hint": "Utilisez la recherche pour filtrer les IP bloquées et cliquez sur un jail pour modifier sa configuration.",
  "dashboard.search_label": "Rechercher des IP bloquées",
  "dashboard.search_placeholder": "Entrez l'adresse IP à rechercher",
  "dashboard.external_ip": "Votre IP ext. :",
  "dashboard.manage_servers": "Gérer les serveurs",
  "dashboard.no_servers_title": "Aucun serveur Fail2ban configuré",
  "dashboard.no_servers_body": "Ajoutez un serveur pour commencer à superviser et contrôler les instances Fail2ban.",
  "dashboard.loading_summary": "Chargement du résumé…",
  "dashboard.no_enabled_servers_title": "Aucun connecteur actif",
  "dashboard.no_enabled_servers_body": "Activez le connecteur local ou enregistrez un serveur Fail2ban distant pour voir les données en direct.",
  "dashboard.jail_local_warning_title": "Le jail.local sur ce serveur n'est pas géré par Fail2ban-UI",
  "dashboard.jail_local_warning_body": "Le fichier /etc/fail2ban/jail.local sur le serveur sélectionné existe mais n'est pas géré par Fail2ban-UI. L'action de rappel (ui-custom-action) est manquante, ce qui signifie que les événements ban/unban ne seront pas enregistrés et aucune alerte e-mail ne sera envoyée. Pour corriger cela, déplacez chaque section jail de jail.local dans son propre fichier sous /etc/fail2ban/jail.d/ (utilisez jailname.conf pour garder une configuration par défaut ou jailname.local pour remplacer un .conf existant). Supprimez ensuite jail.local pour que Fail2ban-UI puisse créer sa propre version gérée (cliquez une fois sur la page de configuration pour écrire le fichier). Assurez-vous que Fail2ban-UI dispose des droits d'écriture sur /etc/fail2ban/ -> consultez la documentation.",
  "dashboard.errors.summary_failed": "Impossible de charger le résumé depuis le serveur.",
  "dashboard.cards.active_jails": "Jails actifs",
  "dashboard.cards.total_banned": "Total d'IPs bloquées",
  "dashboard.cards.new_last_hour": "Nouvelles dans la dernière heure",
  "dashboard.cards.total_logged": "Événements de blocage enregistrés",
  "dashboard.cards.recurring_week": "IPs récurrentes (7 jours)",
  "dashboard.cards.recurring_hint": "Surveillez les récidivistes observés durant les 7 derniers jours.",
  "dashboard.table.jail_name": "Nom du Jail",
  "dashboard.table.total_banned": "Total bloqués",
  "dashboard.table.new_last_hour": "Nouveaux dans la dernière heure",
  "dashboard.table.banned_ips": "IPs bloquées (Débloquer)",
  "dashboard.no_jails": "Aucun jail trouvé.",
  "dashboard.overview_detail": "Réduisez ou développez les longues listes pour vous concentrer sur les services impactés.",
  "dashboard.table.time": "Heure",
  "dashboard.table.jail": "Jail",
  "dashboard.table.ip": "IP",
  "dashboard.table.log_line": "Ligne de log",
  "dashboard.no_banned_ips": "Aucune IP bloquée",
  "dashboard.unban": "Débloquer",
  "dashboard.manual_block.title": "Blocage manuel d'IP",
  "dashboard.manual_block.subtitle": "Bloquer manuellement une adresse IP dans une prison spécifique.",
  "dashboard.manual_block.expand_hint": "Cliquez pour développer et bloquer une adresse IP",
  "dashboard.manual_block.jail_label": "Sélectionner une prison",
  "dashboard.manual_block.jail_placeholder": "Choisir une prison...",
  "dashboard.manual_block.ip_label": "Adresse IP",
  "dashboard.manual_block.ip_placeholder": "ex. 88.76.21.123",
  "dashboard.manual_block.button": "Bloquer l'IP",
  "dashboard.manual_block.confirm": "Bloquer l'IP {ip} dans la prison {jail}?",
  "dashboard.manual_block.success": "IP bloquée avec succès",
  "dashboard.manual_block.error": "Erreur lors du blocage de l'IP",
  "dashboard.manual_block.jail_required": "Veuillez sélectionner une prison",
  "dashboard.manual_block.ip_required": "Veuillez entrer une adresse IP",
  "dashboard.manual_block.invalid_ip": "Veuillez entrer une adresse IP valide",
  "dashboard.banned.show_more": "Afficher plus",
  "dashboard.banned.show_less": "Afficher moins",
  "logs.overview.title": "Vue d'ensemble interne des journaux",
  "logs.overview.subtitle": "Événements enregistrés par Fail2ban-UI sur l'ensemble des connecteurs.",
  "logs.overview.refresh": "Actualiser les données",
  "logs.overview.total_events": "Total d'événements enregistrés",
  "logs.overview.per_server": "Événements par serveur",
  "logs.overview.recent_events_title": "Événements enregistrés récents",
  "logs.overview.recent_empty": "Aucun événement stocké trouvé.",
  "logs.overview.empty": "Aucun événement de blocage n'a encore été enregistré.",
  "logs.overview.open_insights": "Ouvrir les insights",
  "logs.overview.total_today": "Aujourd'hui",
  "logs.overview.total_week": "7 derniers jours",
  "logs.overview.per_server_empty": "Aucune donnée par serveur pour le moment.",
  "logs.overview.recent_filtered_empty": "Aucun événement ne correspond aux filtres.",
  "logs.overview.recent_count_label": "Événements affichés",
  "logs.overview.load_more": "Charger plus",
  "logs.overview.country_unknown": "Inconnu",
  "logs.overview.last_seen": "Dernière apparition",
  "logs.table.server": "Serveur",
  "logs.table.count": "Nombre",
  "logs.table.jail": "Jail",
  "logs.table.ip": "IP",
  "logs.table.time": "Heure",
  "logs.table.country": "Pays",
  "logs.table.actions": "Actions",
  "logs.actions.whois": "Whois",
  "logs.actions.logs": "Journaux",
  "logs.search.label": "Rechercher des événements",
  "logs.search.placeholder": "Rechercher IP, jail ou serveur",
  "logs.search.country_label": "Pays",
  "logs.search.country_all": "Tous les pays",
  "logs.search.country_unknown": "Inconnu",
  "logs.badge.recurring": "Récurrent",
  "logs.modal.whois_title": "Informations Whois",
  "logs.modal.logs_title": "Journaux",
  "logs.modal.jail": "Jail",
  "logs.modal.insights_title": "Aperçu des blocages",
  "logs.modal.insights_description": "Répartition par pays et IP récurrentes.",
  "logs.modal.insights_countries": "Blocages par pays",
  "logs.modal.insights_countries_empty": "Aucun blocage enregistré pour cette période.",
  "logs.modal.insights_countries_hint": "Principales origines pour la période sélectionnée.",
  "logs.modal.insights_recurring_hint": "Adresses IP déclenchant Fail2ban à répétition.",
  "logs.modal.total_overall_note": "Blocages enregistrés depuis l'origine",
  "logs.modal.total_today_note": "Dernières 24 heures",
  "logs.modal.total_week_note": "Activité hebdomadaire",
  "logs.modal.insights_recurring": "IPs récurrentes",
  "logs.modal.insights_recurring_empty": "Aucune IP récurrente détectée.",
  "filter_debug.title": "Débogage des filtres",
  "filter_debug.select_filter": "Sélectionnez un filtre",
  "filter_debug.filter_content": "Contenu du filtre",
  "filter_debug.filter_content_hint": "Modifiez le regex du filtre ci-dessous pour les tests. Les modifications sont temporaires et ne sont pas enregistrées.",
  "filter_debug.filter_content_hint_readonly": "Le contenu du filtre est affiché en lecture seule. Cliquez sur 'Modifier' pour modifier pour les tests. Les modifications sont temporaires et ne sont pas enregistrées.",
  "filter_debug.edit_filter": "Modifier",
  "filter_debug.cancel_edit": "Annuler",
  "filter_debug.log_lines": "Lignes de log",
  "filter_debug.log_lines_placeholder": "Entrez les lignes de log ici...",
  "filter_debug.test_filter": "Tester le filtre",
  "filter_debug.test_results_title": "Résultats du test",
  "filter_debug.no_matches": "Aucune correspondance trouvée.",
  "settings.title": "Paramètres",
  "settings.general": "Paramètres généraux",
  "settings.language": "Langue",
  "settings.server_port": "Port du serveur",
  "settings.server_port_placeholder": "p. ex. 8080",
  "settings.port_env_set": "Le port est défini via la variable d'environnement PORT :",
  "settings.port_env_hint": "Pour modifier le port via l'interface Web, supprimez la variable d'environnement PORT et redémarrez le conteneur.",
  "settings.port_restart_hint": "⚠️ Les modifications du port nécessitent un redémarrage du conteneur pour prendre effet.",
  "settings.enable_debug": "Activer le mode débogage",
  "settings.enable_console": "Activer la sortie console",
  "settings.console.title": "Sortie console",
  "settings.console.clear": "Effacer",
  "settings.console.save_hint": "Veuillez d'abord enregistrer vos paramètres avant que les journaux ne s'affichent ici.",
  "settings.alert": "Paramètres d'alerte",
  "settings.callback_url": "URL de rappel Fail2ban",
  "settings.callback_url_placeholder": "http://127.0.0.1:8080",
  "settings.callback_url_hint": "Cette URL est utilisée par toutes les instances Fail2Ban pour envoyer les alertes de bannissement à Fail2Ban UI. Pour les déploiements locaux, utilisez le même port que Fail2Ban UI (p. ex. http://127.0.0.1:8080). Pour les configurations de reverse proxy, utilisez votre point de terminaison chiffré TLS (p. ex. https://fail2ban.example.com).",
  "settings.callback_url_env_set": "L'URL de callback est définie via la variable d'environnement CALLBACK_URL :",
  "settings.callback_url_env_hint": "Pour modifier l'URL de callback via l'interface Web, supprimez la variable d'environnement CALLBACK_URL et redémarrez le conteneur.",
  "settings.callback_secret": "Secret d'URL de Callback Fail2ban",
  "settings.callback_secret_placeholder": "Secret de 42 caractères généré automatiquement",
  "settings.callback_secret.description": "Ce secret est généré automatiquement et utilisé pour authentifier les demandes de notification de bannissement. Il est inclus dans la configuration d'action de fail2ban.",
  "settings.destination_email": "Email de destination (récepteur des alertes)",
  "settings.destination_email_placeholder": "alerts@swissmakers.ch",
  "settings.alert_countries": "Pays d'alerte",
  "settings.alert_countries_description": "Choisissez les pays pour lesquels vous souhaitez recevoir des alertes par email lors d'un blocage.",
  "settings.email_alerts": "Préférences d'alertes email",
  "settings.email_alerts_for_bans": "Activer les alertes email pour les bannissements",
  "settings.email_alerts_for_unbans": "Activer les alertes email pour les débannissements",
  "settings.smtp": "Configuration SMTP",
  "settings.smtp_host": "Hôte SMTP",
  "settings.smtp_host_placeholder": "par exemple, smtp.gmail.com",
  "settings.smtp_port": "Port SMTP",
  "settings.smtp_port_placeholder": "587",
  "settings.smtp_port_hint": "Ports communs: 25 (non chiffré), 587 (STARTTLS), 465 (SMTPS), 2525 (STARTTLS alternatif)",
  "settings.smtp_auth_method": "Méthode d'Authentification",
  "settings.smtp_auth_method_auto": "Auto (LOGIN préféré)",
  "settings.smtp_auth_method_login": "LOGIN",
  "settings.smtp_auth_method_plain": "PLAIN",
  "settings.smtp_auth_method_cram_md5": "CRAM-MD5",
  "settings.smtp_auth_method_hint": "LOGIN est recommandé pour Office365/Gmail. PLAIN est l'authentification SMTP standard. CRAM-MD5 est basé sur challenge-response.",
  "settings.smtp_insecure_skip_verify": "Ignorer la Vérification du Certificat TLS",
  "settings.smtp_insecure_skip_verify_warning": "⚠️ Non recommandé pour la production",
  "settings.smtp_username": "Nom d'utilisateur SMTP",
  "settings.smtp_username_placeholder": "par exemple, utilisateur@example.com",
  "settings.smtp_password": "Mot de passe SMTP",
  "settings.smtp_password_placeholder": "Entrez le mot de passe SMTP",
  "settings.smtp_sender": "Email de l'expéditeur",
  "settings.smtp_sender_placeholder": "noreply@swissmakers.ch",
  "settings.smtp_tls": "Utiliser TLS (recommandé)",
  "settings.send_test_email": "Envoyer un email de test",
  "settings.send_test_email_hint": "⚠️ Veuillez d'abord enregistrer vos paramètres SMTP avant d'envoyer un email de test.",
  "settings.fail2ban": "Configurations Globales par Défaut de Fail2Ban",
  "settings.fail2ban.description": "Ces paramètres seront appliqués à tous les serveurs Fail2Ban activés et stockés dans leur section [DEFAULT] de jail.local.",
  "settings.enable_bantime_increment": "Activer l'incrémentation du Bantime",
  "settings.enable_bantime_increment.description": "Si défini sur true, le bantime sera calculé à l'aide de la formule : bantime = findtime * (nombre d'échecs / maxretry) * (1 + bantime.rndtime).",
  "settings.default_jail_enable": "Jails par défaut activés",
  "settings.default_jail_enable.description": "Si activé, tous les jails seront activés par défaut. Lorsqu'il est désactivé, les jails doivent être explicitement activés.",
  "settings.default_bantime": "Bantime par défaut",
  "settings.default_bantime.description": "Le nombre de secondes pendant lesquelles un hôte est banni. Format de temps : 1m = 1 minutes, 1h = 1 heures, 1d = 1 jours, 1w = 1 semaines, 1mo = 1 mois, 1y = 1 années.",
  "settings.default_bantime_placeholder": "par exemple, 48h",
  "settings.bantime_rndtime": "Bantime Rndtime",
  "settings.bantime_rndtime.description": "Optionnel. Nombre maximal de secondes aléatoires dans la formule d'incrément de bantime (ex. 2048). Laisser vide pour utiliser la valeur par défaut de Fail2ban.",
  "settings.bantime_rndtime_placeholder": "par ex., 2048",
  "settings.default_chain": "Chain par défaut",
  "settings.default_chain.description": "Chain iptables/nftables pour les bannissements (ex. INPUT pour l'hôte, DOCKER-USER pour les conteneurs Docker).",
  "settings.chain_help_title": "Chain par défaut",
  "settings.chain_docker_user": "DOCKER-USER",
  "settings.chain_help_docker_user": "Pour les applications dans Docker. Les bans s'appliquent à tous les conteneurs de l'hôte.",
  "settings.chain_input": "INPUT",
  "settings.chain_help_input": "Pour les applications sur l'hôte. Les bans ne concernent que le réseau de l'hôte, pas les réseaux Docker.",
  "settings.chain_forward": "FORWARD",
  "settings.chain_help_forward": "Uniquement pour les anciennes installations Docker sans DOCKER-USER.",
  "settings.banaction": "Banaction",
  "settings.banaction.description": "Action de bannissement par défaut (par ex. nftables-multiport, nftables-allports, firewallcmd-rich-rules, etc). Elle est utilisée pour définir les variables action_*.",
  "settings.banaction_allports": "Banaction Allports",
  "settings.banaction_allports.description": "Action de bannissement pour tous les ports (par ex. nftables-allports, firewallcmd-allports, etc). Utilisée lorsqu'un jail doit bannir tous les ports au lieu de ports spécifiques.",
  "settings.default_findtime": "Findtime par défaut",
  "settings.default_findtime.description": "Un hôte est banni s'il a généré 'maxretry' échecs pendant les dernières 'findtime' secondes. Format de temps : 1m = 1 minutes, 1h = 1 heures, 1d = 1 jours, 1w = 1 semaines, 1mo = 1 mois, 1y = 1 années.",
  "settings.default_findtime_placeholder": "par exemple, 30m",
  "settings.default_max_retry": "Nombre maximal de réessais par défaut",
  "settings.default_max_retry.description": "Nombre d'échecs avant qu'un hôte ne soit banni.",
  "settings.default_max_retry_placeholder": "Entrez le nombre maximal de réessais",
  "settings.geoip_provider": "Fournisseur GeoIP",
  "settings.geoip_provider.description": "Choisissez le fournisseur de recherche GeoIP. MaxMind nécessite un fichier de base de données local, tandis que Built-in utilise une API en ligne gratuite.",
  "settings.geoip_provider.maxmind": "MaxMind (Base de Données Locale)",
  "settings.geoip_provider.builtin": "Built-in (ip-api.com)",
  "settings.geoip_database_path": "Chemin de la Base de Données GeoIP",
  "settings.geoip_database_path.description": "Chemin vers le fichier de base de données MaxMind GeoLite2-Country.",
  "settings.max_log_lines": "Lignes de Log Maximales",
  "settings.max_log_lines.description": "Nombre maximal de lignes de log à inclure dans les notifications de bannissement. Les lignes les plus pertinentes sont sélectionnées automatiquement.",
  "settings.ignore_ips": "Ignorer les IPs",
  "settings.ignore_ips.description": "Liste séparée par des espaces d'adresses IP, de masques CIDR ou d'hôtes DNS. Fail2ban ne bannira pas un hôte qui correspond à une adresse de cette liste.",
  "settings.ignore_ips_placeholder": "IPs à ignorer, séparées par des espaces",
  "settings.advanced.title": "Actions avancées pour récidivistes",
  "settings.advanced.description": "Ajoutez automatiquement les récidivistes à un pare-feu ou une liste de blocage externe.",
  "settings.advanced.refresh_log": "Actualiser le journal",
  "settings.advanced.test_button": "Bloquer manuellement / Test",
  "settings.advanced.enable": "Activer le blocage permanent automatique",
  "settings.advanced.threshold": "Seuil avant blocage permanent",
  "settings.advanced.threshold_hint": "Une IP atteignant ce nombre de bans sera envoyée à l’intégration.",
  "settings.advanced.integration": "Intégration",
  "settings.advanced.integration_none": "Choisir une intégration",
  "settings.advanced.integration_hint": "Choisissez le pare-feu ou l’équipement où créer les blocages permanents.",
  "settings.advanced.mikrotik.note": "Fournissez les accès SSH au routeur Mikrotik et la liste d’adresses ciblée.",
  "settings.advanced.mikrotik.host": "Hôte",
  "settings.advanced.mikrotik.port": "Port",
  "settings.advanced.mikrotik.username": "Utilisateur SSH",
  "settings.advanced.mikrotik.password": "Mot de passe SSH",
  "settings.advanced.mikrotik.key": "Chemin de clé SSH (optionnel)",
  "settings.advanced.mikrotik.list": "Nom de la liste",
  "settings.advanced.pfsense.note": "Nécessite le paquet REST API pfSense. Entrez la clé API et l'alias à gérer.",
  "settings.advanced.pfsense.install_link": "Installer le paquet REST API",
  "settings.advanced.pfsense.api_key_setup": "Configurer la clé API",
  "settings.advanced.pfsense.base_url": "URL de base",
  "settings.advanced.pfsense.token": "Clé API",
  "settings.advanced.pfsense.token_hint": "Générer dans Système > REST API > Keys dans le webConfigurator pfSense",
  "settings.advanced.pfsense.alias": "Nom d'alias",
  "settings.advanced.pfsense.skip_tls": "Ignorer la vérification TLS (auto-signé)",
  "settings.advanced.opnsense.note": "Entrez les identifiants API OPNsense et l'alias à gérer.",
  "settings.advanced.opnsense.api_docs": "Documentation API",
  "settings.advanced.opnsense.api_key_setup": "Configurer la clé API",
  "settings.advanced.opnsense.base_url": "URL de base",
  "settings.advanced.opnsense.key": "Clé API",
  "settings.advanced.opnsense.key_hint": "Générer dans Système > Accès > Utilisateurs > Clés API",
  "settings.advanced.opnsense.secret": "Secret API",
  "settings.advanced.opnsense.secret_hint": "Générer avec la clé API",
  "settings.advanced.opnsense.alias": "Nom d'alias",
  "settings.advanced.opnsense.skip_tls": "Ignorer la vérification TLS (auto-signé)",
  "settings.advanced.log_title": "Journal des blocages permanents",
  "settings.advanced.log_empty": "Aucun blocage permanent pour le moment.",
  "settings.advanced.log_ip": "IP",
  "settings.advanced.log_integration": "Intégration",
  "settings.advanced.log_status": "Statut",
  "settings.advanced.log_message": "Message",
  "settings.advanced.log_server": "Serveur",
  "settings.advanced.log_updated": "Mis à jour",
  "settings.advanced.log_actions": "Actions",
  "settings.advanced.unblock_btn": "Retirer",
  "settings.advanced.test_title": "Bloquer manuellement / Test",
  "settings.advanced.test_ip": "Adresse IP",
  "settings.advanced.test_server": "Serveur optionnel",
  "settings.advanced.test_server_none": "Utiliser l’intégration globale",
  "settings.advanced.test_block": "Bloquer l’IP",
  "settings.advanced.test_unblock": "Retirer l’IP",
  "settings.save": "Enregistrer",
  "modal.filter_config": "Configuration du filtre / Jail:",
  "modal.filter_config_edit": "Modifier le filtre / Jail",
  "modal.filter_config_label": "Configuration du filtre",
  "modal.filter_config_hint": "Si laissé vide, un fichier de filtre vide sera créé.",
  "modal.filter_name": "Nom du filtre",
  "modal.filter_name_hint": "Seuls les caractères alphanumériques, les tirets et les underscores sont autorisés.",
  "modal.jail_config": "Configuration du jail",
  "modal.jail_config_hint": "La configuration du jail sera automatiquement remplie lorsque vous sélectionnez un filtre.",
  "modal.jail_config_label": "Configuration du jail",
  "modal.jail_filter": "Filtre (optionnel)",
  "modal.jail_filter_hint": "La sélection d'un filtre remplira automatiquement la configuration du jail.",
  "modal.jail_name": "Nom du jail",
  "modal.jail_name_hint": "Seuls les caractères alphanumériques, les tirets et les underscores sont autorisés.",
  "modal.test_logpath": "Tester le chemin de journal",
  "modal.local_server_logpath_note": "ℹ️ Note:",
  "modal.local_server_logpath_text_prefix": "Pour les serveurs locaux Fail2ban (p. ex. installé sur le système hôte ou dans un conteneur sur le même hôte), les fichiers de journal doivent également être montés dans le conteneur fail2ban-ui (par ex.,",
  "modal.local_server_logpath_text_suffix": ") ceci est nécessaire pour que fail2ban-ui puisse vérifier les variables ou chemins de logpath lors de la mise à jour des jails.",
  "modal.create": "Créer",
  "modal.create_filter": "Créer un nouveau filtre",
  "modal.create_filter_title": "Créer un nouveau filtre",
  "modal.create_jail": "Créer un nouveau jail",
  "modal.create_jail_title": "Créer un nouveau jail",
  "modal.cancel": "Annuler",
  "modal.save": "Enregistrer",
  "modal.close": "Fermer",
  "loading": "Chargement...",
  "dashboard.manage_jails": "Gérer les jails",
  "modal.manage_jails_title": "Gérer les jails",
  "servers.selector.label": "Serveur actif",
  "servers.selector.empty": "Aucun serveur configuré",
  "servers.selector.none": "Aucun serveur configuré. Veuillez ajouter un serveur Fail2ban.",
  "servers.modal.title": "Gérer les serveurs Fail2ban",
  "servers.modal.description": "Enregistrez des instances Fail2ban distantes et choisissez comment l'interface s'y connecte.",
  "servers.modal.list_title": "Serveurs enregistrés",
  "servers.modal.list_empty": "Aucun serveur configuré. Ajoutez votre premier serveur Fail2ban via le formulaire.",
  "servers.modal.form_title": "Ajouter ou mettre à jour un serveur",
  "servers.form.name": "Nom à afficher",
  "servers.form.name_placeholder": "Mon serveur Fail2ban",
  "servers.form.type": "Type de connexion",
  "servers.type.local": "Local (même hôte)",
  "servers.type.ssh": "SSH",
  "servers.type.agent": "Agent API",
  "servers.form.host": "Nom d'hôte / IP",
  "servers.form.host_placeholder": "fail2ban.exemple.com",
  "servers.form.port": "Port",
  "servers.form.port_placeholder": "22",
  "servers.form.socket_path": "Chemin du socket Fail2ban",
  "servers.form.socket_path_placeholder": "/var/run/fail2ban/fail2ban.sock",
  "servers.form.log_path": "Chemin du log Fail2ban",
  "servers.form.log_path_placeholder": "/var/log/fail2ban.log",
  "servers.form.hostname": "Nom d'hôte du serveur",
  "servers.form.hostname_placeholder": "optionnel",
  "servers.form.ssh_user": "Utilisateur SSH",
  "servers.form.ssh_user_placeholder": "sa_fail2ban",
  "servers.form.ssh_key": "Chemin de la clé SSH",
  "servers.form.ssh_key_placeholder": "/config/.ssh/id_rsa",
  "servers.form.ssh_key_help": "Placez votre clé privée SSH dans le répertoire /config/.ssh/ (volume de configuration monté). Le fichier de clé doit avoir les permissions 600 (chmod 600). Exemple : /config/.ssh/id_rsa",
  "servers.form.agent_url": "URL de l'agent",
  "servers.form.agent_url_placeholder": "https://host:9443",
  "servers.form.agent_secret": "Secret de l'agent",
  "servers.form.agent_secret_placeholder": "jeton partagé",
  "servers.form.tags": "Étiquettes",
  "servers.form.tags_placeholder": "étiquettes séparées par des virgules",
  "servers.form.set_default": "Définir comme serveur par défaut",
  "servers.form.enabled": "Activer le connecteur",
  "servers.form.submit": "Enregistrer le serveur",
  "servers.form.reset": "Réinitialiser",
  "servers.form.new_server": "Nouveau serveur",
  "servers.form.success": "Serveur enregistré avec succès.",
  "servers.badge.default": "Par défaut",
  "servers.badge.enabled": "Activé",
  "servers.badge.disabled": "Désactivé",
  "servers.badge.restart_needed": "Redémarrage requis",
  "servers.actions.edit": "Modifier",
  "servers.actions.set_default": "Définir par défaut",
  "servers.actions.enable": "Activer",
  "servers.actions.disable": "Désactiver",
  "servers.actions.test": "Tester la connexion",
  "servers.actions.test_success": "Connexion réussie",
  "servers.actions.test_failure": "Échec de la connexion",
  "servers.jail_local_warning": "Attention : jail.local n'est pas géré par Fail2ban-UI. Déplacez chaque jail dans son propre fichier sous jail.d/ et supprimez jail.local pour que Fail2ban-UI puisse le recréer (cliquez une fois sur la page de configuration pour écrire le fichier). Consultez la documentation pour les permissions.",
  "servers.actions.restart": "Redémarrer Fail2ban",
  "servers.actions.reload": "Recharger Fail2ban",
  "servers.actions.reload_tooltip": "Pour les connecteurs locaux, seul un rechargement de la configuration est possible via la connexion socket. Le conteneur ne peut pas redémarrer le service Fail2ban en utilisant systemctl. Pour effectuer un redémarrage complet, exécutez 'systemctl restart fail2ban' directement sur le système hôte.",
  "servers.actions.delete": "Supprimer",
  "servers.actions.delete_confirm": "Supprimer ce serveur ?",
  "servers.form.select_key": "Sélectionner la clé privée",
  "servers.form.select_key_placeholder": "Saisie manuelle",
  "servers.form.no_keys": "Aucune clé SSH trouvée ; saisissez le chemin manuellement",
  "filter_debug.not_available": "Le débogage des filtres n'est disponible que lorsqu'au moins un serveur Fail2ban enregistré est activé.",
  "filter_debug.local_missing": "Le répertoire de filtres Fail2ban local est introuvable sur cet hôte.",
  "email.ban.title": "Alerte de sécurité : Fail2Ban a bloqué une nouvelle adresse IP",
  "email.ban.intro": "Fail2Ban-UI a détecté une requête suspecte ou des échecs d'authentification répétés et a automatiquement bloqué l'IP source. Consultez les métadonnées et extraits de journaux ci-dessous.",
  "email.ban.subject.banned": "Bloqué",
  "email.ban.subject.from": "depuis",
  "email.ban.details.banned_ip": "IP bloquée",
  "email.ban.details.jail": "Jail",
  "email.ban.details.hostname": "Nom d'hôte",
  "email.ban.details.failed_attempts": "Tentatives échouées",
  "email.ban.details.country": "Pays",
  "email.ban.details.timestamp": "Horodatage",
  "email.ban.whois_title": "Empreinte WHOIS",
  "email.ban.logs_title": "Extraits de journaux pertinents",
  "email.test.title": "Test de livraison d'email",
  "email.test.intro": "Ce message confirme que votre configuration SMTP fonctionne correctement et peut livrer des emails formatés en HTML.",
  "email.test.subject": "Email de test de Fail2Ban UI",
  "email.test.details.recipient": "Destinataire",
  "email.test.details.smtp_host": "Hôte SMTP",
  "email.test.details.triggered_at": "Déclenché à",
  "email.test.whois_no_data": "Aucune recherche WHOIS n'est exécutée pour les emails de test.",
  "email.test.sample_logs": "2025-01-01T12:00:00Z Entrée de journal d'exemple de Fail2ban-UI.",
  "email.whois.no_data": "Les données WHOIS n'ont pas été capturées pour cet événement.",
  "email.logs.no_data": "Aucune entrée de journal n'a été capturée pour ce blocage.",
  "email.footer.text": "Ce message a été généré automatiquement par Fail2Ban-UI",
  "email.unban.title": "Adresse IP débannie",
  "email.unban.intro": "Une adresse IP a été débannie d'une prison Fail2Ban.",
  "email.unban.subject.unbanned": "Débanni",
  "email.unban.subject.from": "de",
  "email.unban.details.unbanned_ip": "IP débannie",
  "email.unban.details.jail": "Prison",
  "email.unban.details.hostname": "Nom d'hôte",
  "email.unban.details.country": "Pays",
  "email.unban.details.timestamp": "Horodatage",
  "lotr.email.title": "Un serviteur des ténèbres a été banni",
  "lotr.email.intro": "Les gardiens de la Terre du Milieu ont détecté une menace et l'ont bannie du royaume.",
  "lotr.email.you_shall_not_pass": "TU NE PASSERAS PAS",
  "lotr.email.footer": "Que les serveurs soient protégés. Un bannissement pour les gouverner tous.",
  "lotr.email.details.dark_servant_location": "L'emplacement du serviteur des ténèbres",
  "lotr.email.details.realm_protection": "Le royaume de la protection",
  "lotr.email.details.origins": "Origines des",
  "lotr.email.details.banished_at": "Banni à",
  "lotr.email.unban.title": "Le détenu a été libéré",
  "lotr.email.unban.intro": "Les gardiens de la Terre du Milieu ont restauré l'accès au royaume.",
  "lotr.email.unban.details.restored_ip": "IP restaurée",
  "lotr.banished": "Banni du royaume",
  "lotr.realms_protected": "Royaumes protégés",
  "lotr.threats_banished": "Menaces bannies",
  "toast.ban.title": "Nouveau blocage survenu",
  "toast.ban.action": "banni dans",
  "toast.unban.title": "IP débloquée",
  "toast.unban.action": "débloquée de",
  "auth.login_title": "Se connecter à Fail2ban UI",
  "auth.login_description": "Veuillez vous authentifier pour accéder à l'interface de gestion",
  "auth.login_button": "Se connecter avec OIDC",
  "auth.logging_in": "Redirection vers la connexion...",
  "auth.logout": "Déconnexion",
  "auth.user_info": "Informations utilisateur",
  "auth.session_expired": "Votre session a expiré. Veuillez vous reconnecter.",
  "auth.login_required": "Authentification requise",
  "footer.version": "Fail2ban-UI v{version}",
  "footer.latest": "À jour",
  "footer.update_available": "Mise à jour disponible : v{version}"
}
