{
  "documentTitle": {
    "default": "Paramètres - Frigate",
    "authentication": "Paramètres d'authentification - Frigate",
    "camera": "Paramètres des caméras - Frigate",
    "classification": "Paramètres de classification - Frigate",
    "motionTuner": "Réglage de la détection de mouvement - Frigate",
    "general": "Paramètres de l'interface utilisateur - Frigate",
    "masksAndZones": "Éditeur de masques et de zones - Frigate",
    "object": "Débogage - Frigate",
    "frigatePlus": "Paramètres Frigate+ - Frigate",
    "notifications": "Paramètres de notification - Frigate",
    "enrichments": "Paramètres d'enrichissements - Frigate",
    "cameraManagement": "Gestion des caméras - Frigate",
    "cameraReview": "Paramètres des activités caméra - Frigate"
  },
  "menu": {
    "ui": "Interface utilisateur",
    "classification": "Classification",
    "masksAndZones": "Masques / Zones",
    "motionTuner": "Réglage de la détection de mouvement",
    "debug": "Débogage",
    "cameras": "Paramètres des caméras",
    "users": "Utilisateurs",
    "notifications": "Notifications",
    "frigateplus": "Frigate+",
    "enrichments": "Enrichissements",
    "triggers": "Déclencheurs",
    "roles": "Rôles",
    "cameraManagement": "Gestion",
    "cameraReview": "Activités"
  },
  "dialog": {
    "unsavedChanges": {
      "title": "Vous avez des modifications non enregistrées.",
      "desc": "Voulez-vous enregistrer vos modifications avant de continuer ?"
    }
  },
  "cameraSetting": {
    "camera": "Caméra",
    "noCamera": "Aucune caméra"
  },
  "general": {
    "title": "Paramètres de l'interface utilisateur",
    "liveDashboard": {
      "title": "Tableau de bord en direct",
      "automaticLiveView": {
        "label": "Vue en direct automatique",
        "desc": "Basculez automatiquement vers la vue en direct d'une caméra lorsqu'une activité est détectée. La désactivation de cette option limite la mise à jour des images statiques de la caméra sur le tableau de bord en direct à une fois par minute seulement."
      },
      "playAlertVideos": {
        "label": "Lire les vidéos d'alerte",
        "desc": "Par défaut, les alertes récentes du tableau de bord en direct sont diffusées sous forme de petites vidéos en boucle. Désactivez cette option pour afficher uniquement une image statique des alertes récentes sur cet appareil/navigateur."
      },
      "displayCameraNames": {
        "label": "Toujours afficher les noms des caméras",
        "desc": "Toujours afficher les noms des caméras dans une puce sur le tableau de bord de la vue en direct multi-caméras"
      },
      "liveFallbackTimeout": {
        "label": "Délai d'attente avant repli (Lecteur en direct)",
        "desc": "Lorsque le flux en direct haute qualité d'une caméra est indisponible, le lecteur bascule en mode faible bande passante après ce nombre de secondes. Par défaut : 3."
      }
    },
    "storedLayouts": {
      "title": "Mises en page stockées",
      "desc": "La disposition des caméras d'un groupe peut être déplacée/redimensionnée. Les positions sont enregistrées dans le stockage local de votre navigateur.",
      "clearAll": "Effacer toutes les mises en page"
    },
    "cameraGroupStreaming": {
      "title": "Paramètres de diffusion du groupe de caméras",
      "desc": "Les paramètres de diffusion en continu pour chaque groupe de caméras sont stockés dans le stockage local de votre navigateur.",
      "clearAll": "Effacer tous les paramètres de diffusion"
    },
    "recordingsViewer": {
      "title": "Visionneuse d'enregistrements",
      "defaultPlaybackRate": {
        "label": "Vitesse de lecture par défaut",
        "desc": "Vitesse de lecture par défaut pour la lecture des enregistrements"
      }
    },
    "calendar": {
      "firstWeekday": {
        "label": "Premier jour de la semaine",
        "desc": "Jour du début de la semaine du calendrier des activités",
        "sunday": "Dimanche",
        "monday": "Lundi"
      },
      "title": "Calendrier"
    },
    "toast": {
      "error": {
        "clearStoredLayoutFailed": "Échec de l'effacement de la mise en page enregistrée : {{errorMessage}}",
        "clearStreamingSettingsFailed": "Échec de l'effacement des paramètres de diffusion : {{errorMessage}}"
      },
      "success": {
        "clearStreamingSettings": "Paramètres de diffusion effacés pour tous les groupes de caméras.",
        "clearStoredLayout": "Mise en page enregistrée effacée pour {{cameraName}}"
      }
    }
  },
  "notification": {
    "suspendTime": {
      "untilRestart": "Suspendre jusqu'au redémarrage",
      "24hours": "Suspendre pendant 24 heures",
      "10minutes": "Suspendre pendant 10 minutes",
      "12hours": "Suspendre pendant 12 heures",
      "5minutes": "Suspendre pendant 5 minutes",
      "1hour": "Suspendre pendant 1 heure",
      "30minutes": "Suspendre pendant 30 minutes",
      "suspend": "Suspendre"
    },
    "toast": {
      "success": {
        "registered": "Inscription réussie aux notifications. Le redémarrage de Frigate est nécessaire avant l'envoi de toute notification (y compris une notification de test).",
        "settingSaved": "Les paramètres de notification ont été enregistrés."
      },
      "error": {
        "registerFailed": "Impossible de sauvegarder l'enregistrement de la notification."
      }
    },
    "cancelSuspension": "Annuler la suspension",
    "notificationSettings": {
      "title": "Paramètres de notification",
      "documentation": "Lire la documentation",
      "desc": "Frigate peut envoyer nativement des notifications push à votre appareil lorsqu'il est exécuté dans le navigateur ou installé en tant que PWA."
    },
    "notificationUnavailable": {
      "title": "Notifications indisponibles",
      "documentation": "Lire la documentation",
      "desc": "Les notifications push Web nécessitent un contexte sécurisé (<code>https://…</code>). Il s'agit d'une limitation du navigateur. Accédez à Frigate en toute sécurité pour utiliser les notifications."
    },
    "globalSettings": {
      "title": "Paramètres globaux",
      "desc": "Suspendre temporairement les notifications pour des caméras spécifiques sur tous les appareils enregistrés."
    },
    "email": {
      "title": "Email",
      "desc": "Une adresse e-mail valide est requise et sera utilisée pour vous avertir en cas de problème avec le service push.",
      "placeholder": "par ex. exemple@email.com"
    },
    "cameras": {
      "title": "Caméras",
      "noCameras": "Aucune caméra n'est disponible",
      "desc": "Sélectionnez les caméras pour lesquelles activer les notifications."
    },
    "deviceSpecific": "Paramètres spécifiques de l'appareil",
    "suspended": "Notifications suspendues {{time}}",
    "title": "Notifications",
    "active": "Notifications actives",
    "registerDevice": "Enregistrer cet appareil",
    "unregisterDevice": "Désenregistrer cet appareil",
    "sendTestNotification": "Envoyer une notification de test",
    "unsavedChanges": "Modifications des notifications non enregistrées",
    "unsavedRegistrations": "Enregistrements des notifications non enregistrés"
  },
  "frigatePlus": {
    "apiKey": {
      "notValidated": "La clé API Frigate+ n'est pas détectée ou n'est pas validée.",
      "title": "Clé API Frigate+",
      "validated": "La clé API Frigate+ est détectée et validée",
      "desc": "La clé API Frigate+ permet l'intégration avec le service Frigate+.",
      "plusLink": "En savoir plus sur Frigate+"
    },
    "title": "Paramètres Frigate+",
    "snapshotConfig": {
      "documentation": "Lire la documentation",
      "desc": "La soumission à Frigate+ nécessite à la fois que les instantanés et les instantanés <code>clean_copy</code> soient activés dans votre configuration.",
      "title": "Configuration des instantanés",
      "table": {
        "snapshots": "Instantanés",
        "camera": "Caméra",
        "cleanCopySnapshots": "Instantanés <code>clean_copy</code>"
      },
      "cleanCopyWarning": "Certaines caméras ont des instantanés activés, mais la copie propre est désactivée. Vous devez activer <code>clean_copy</code> dans votre configuration d'instantanés pour pouvoir envoyer les images de ces caméras à Frigate+."
    },
    "modelInfo": {
      "baseModel": "Modèle de base",
      "modelType": "Type de modèle",
      "cameras": "Caméras",
      "supportedDetectors": "Détecteurs pris en charge",
      "loading": "Chargement des informations du modèle…",
      "title": "Informations sur le modèle",
      "trainDate": "Date d'entraînement",
      "error": "Échec du chargement des informations du modèle",
      "availableModels": "Modèles disponibles",
      "dimensions": "Dimensions",
      "loadingAvailableModels": "Chargement des modèles disponibles…",
      "modelSelect": "Vous pouvez sélectionner ici vos modèles disponibles dans Frigate+. Notez que seuls les modèles compatibles avec votre configuration de détecteur actuelle peuvent être sélectionnés.",
      "plusModelType": {
        "baseModel": "Modèle de base",
        "userModel": "Optimisé"
      }
    },
    "toast": {
      "success": "Les paramètres de Frigate+ ont été enregistrés. Redémarrez Frigate pour appliquer les modifications.",
      "error": "Échec de l'enregistrement des modifications de configuration : {{errorMessage}}"
    },
    "restart_required": "Redémarrage requis (modèle Frigate+ changé)",
    "unsavedChanges": "Modifications de paramètres de Frigate+ non enregistrées"
  },
  "classification": {
    "title": "Paramètres de classification",
    "semanticSearch": {
      "title": "Recherche sémantique",
      "reindexNow": {
        "label": "Réindexer maintenant",
        "confirmTitle": "Confirmer la réindexation",
        "error": "Échec du démarrage de la réindexation : {{errorMessage}}",
        "desc": "La réindexation génère à nouveau les plongements vectoriels pour tous les objets suivis. Ce processus s'exécute en arrière-plan et peut saturer votre processeur et prendre un certain temps, selon le nombre d'objets suivis.",
        "confirmDesc": "Êtes-vous sûr de vouloir réindexer tous les plongements vectoriels d'objets suivis ? Ce processus s'exécutera en arrière-plan, mais il risque de saturer votre processeur et de prendre un certain temps. Vous pouvez suivre la progression sur la page Explorer.",
        "success": "La réindexation a démarré avec succès.",
        "alreadyInProgress": "La réindexation est déjà en cours.",
        "confirmButton": "Réindexer"
      },
      "desc": "La recherche sémantique dans Frigate vous permet de trouver des objets suivis dans vos éléments de revue en utilisant soit l'image elle-même, soit une description textuelle définie par l'utilisateur, soit une description générée automatiquement.",
      "modelSize": {
        "small": {
          "desc": "L'utilisation de <em>petit</em> utilise une version quantifiée du modèle qui utilise moins de mémoire et s'exécute plus rapidement sur le processeur avec une différence très négligeable dans la qualité d'intégration.",
          "title": "petit"
        },
        "large": {
          "desc": "L'utilisation de <em>grand</em> utilise le modèle Jina complet et s'exécutera automatiquement sur la carte graphique si applicable.",
          "title": "grand"
        },
        "desc": "Taille du modèle utilisé pour les plongements vectoriels de recherche sémantique.",
        "label": "Taille du modèle"
      },
      "readTheDocumentation": "Lire la documentation"
    },
    "faceRecognition": {
      "readTheDocumentation": "Lire la documentation",
      "modelSize": {
        "large": {
          "title": "grand",
          "desc": "L'utilisation de <em>grand</em> utilise un modèle d'intégration de visage ArcFace et s'exécutera automatiquement sur la carte graphique le cas échéant."
        },
        "small": {
          "desc": "L'utilisation de <em>petit</em> utilise un modèle d'intégration de visage FaceNet qui fonctionne efficacement sur la plupart des processeurs.",
          "title": "petit"
        },
        "label": "Taille du modèle",
        "desc": "La taille du modèle utilisé pour la reconnaissance faciale."
      },
      "desc": "La reconnaissance faciale permet d'attribuer un nom aux personnes. Une fois leur visage reconnu, Frigate attribuera le nom de la personne comme sous-étiquette. Ces informations sont incluses dans l'interface utilisateur, les filtres et les notifications.",
      "title": "Reconnaissance faciale"
    },
    "licensePlateRecognition": {
      "desc": "Frigate peut reconnaître les plaques d'immatriculation des véhicules et ajouter automatiquement les caractères détectés au champ recognized_license_plate, ou un nom connu comme sous-étiquette aux objets de type voiture. Un cas d'utilisation courant est la lecture des plaques d'immatriculation des voitures entrant dans une allée ou circulant dans la rue.",
      "readTheDocumentation": "Lire la documentation",
      "title": "Reconnaissance de plaque d'immatriculation"
    },
    "toast": {
      "success": "Les paramètres de classification ont été enregistrés. Redémarrez Frigate pour appliquer vos modifications.",
      "error": "Échec de l'enregistrement des modifications de configuration : {{errorMessage}}"
    },
    "birdClassification": {
      "title": "Classification des oiseaux",
      "desc": "La classification des oiseaux identifie les oiseaux connus à l'aide d'un modèle Tensorflow quantifié. Lorsqu'un oiseau connu est reconnu, son nom commun sera ajouté en tant que sous-étiquette. Cette information est incluse dans l'interface utilisateur, les filtres, ainsi que dans les notifications."
    },
    "restart_required": "Redémarrage requis (paramètres de classification changés)",
    "unsavedChanges": "Modifications des paramètres de classification non enregistrées"
  },
  "camera": {
    "title": "Paramètres de la caméra",
    "review": {
      "title": "Revue d'événements",
      "detections": "Détections ",
      "alerts": "Alertes ",
      "desc": "Activer/désactiver temporairement les alertes et les détections pour cette caméra jusqu'au redémarrage de Frigate. Si cette option est désactivée, aucun nouvel élément ne sera généré dans la revue d'événements. "
    },
    "reviewClassification": {
      "title": "Catégorisation de la revue d'évènements",
      "objectDetectionsTips": "Tous les objets {{detectionsLabels}} non classés sur {{cameraName}} seront affichés comme des détections, quelle que soit la zone dans laquelle ils se trouvent.",
      "zoneObjectDetectionsTips": {
        "text": "Tous les objets {{detectionsLabels}} non classés dans {{zone}} sur {{cameraName}} seront affichés comme des détections.",
        "regardlessOfZoneObjectDetectionsTips": "Tous les objets {{detectionsLabels}} non classés sur {{cameraName}} seront affichés comme des détections, quelle que soit la zone dans laquelle ils se trouvent.",
        "notSelectDetections": "Tous les objets {{detectionsLabels}} détectés dans {{zone}} sur {{cameraName}} non classés comme des alertes seront affichés comme des détections, quelle que soit la zone dans laquelle ils se trouvent."
      },
      "selectDetectionsZones": "Sélectionner les zones pour les détections",
      "toast": {
        "success": "La configuration de la classification de la revue d'événements a été enregistrée. Redémarrez Frigate pour appliquer les modifications."
      },
      "readTheDocumentation": "Lire la documentation",
      "objectAlertsTips": "Tous les objets {{alertsLabels}} sur {{cameraName}} seront affichés sous forme d'alertes.",
      "limitDetections": "Limiter les détections à des zones spécifiques",
      "zoneObjectAlertsTips": "Tous les objets {{alertsLabels}} détectés dans {{zone}} sur {{cameraName}} seront affichés sous forme d'alertes.",
      "noDefinedZones": "Aucune zone n'est définie pour cette caméra.",
      "selectAlertsZones": "Sélectionner les zones pour les alertes",
      "desc": "Frigate classe les éléments de la revue d'événements en alertes et détections. Par défaut, toutes les détections de <em>personnes</em> et de <em>voitures</em> sont qualifiées d'alertes. Vous avez la possibilité d'affiner cette catégorisation en configurant des zones spécifiques pour ces éléments.",
      "unsavedChanges": "Paramètres de classification de la revue d'événements pour {{camera}} non enregistrés"
    },
    "streams": {
      "title": "Flux",
      "desc": "Désactive temporairement une caméra jusqu'au redémarrage de Frigate. La désactivation complète d'une caméra interrompt le traitement des flux de cette caméra par Frigate. La détection, l'enregistrement et le débogage seront indisponibles.<br /> <em>Remarque : cela ne désactive pas les rediffusions go2rtc.</em>"
    },
    "object_descriptions": {
      "title": "Description d'objets par IA générative",
      "desc": "Activer / désactiver temporairement les descriptions d'objets par IA générative pour cette caméra. Lorsqu'elles sont désactivées, les descriptions générées par IA ne seront pas demandées pour les objets suivis par cette caméra."
    },
    "review_descriptions": {
      "title": "Revue de descriptions par IA générative",
      "desc": "Activer / désactiver temporairement la revue de descriptions d'objets par IA générative pour cette caméra. Lorsqu'elles sont désactivées, les descriptions générées par IA ne seront plus demandées pour la revue d'éléments de cette caméra."
    },
    "addCamera": "Ajouter une nouvelle caméra",
    "editCamera": "Éditer la caméra :",
    "selectCamera": "Sélectionner une caméra",
    "backToSettings": "Retour aux paramètres de la caméra",
    "cameraConfig": {
      "add": "Ajouter une caméra",
      "edit": "Éditer la caméra",
      "description": "Configurer les paramètres de la caméra y compris les flux et les rôles.",
      "name": "Nom de la caméra",
      "nameRequired": "Un nom de caméra est nécessaire",
      "nameInvalid": "Les noms de caméra peuvent contenir uniquement des lettres, des chiffres, des tirets bas, ou des tirets",
      "namePlaceholder": "par exemple, porte_entree",
      "enabled": "Activé",
      "ffmpeg": {
        "inputs": "Flux entrants",
        "path": "Chemin d'accès du flux",
        "pathRequired": "Un chemin d'accès de flux est nécessaire",
        "pathPlaceholder": "rtsp://...",
        "roles": "Rôles",
        "rolesRequired": "Au moins un rôle est nécessaire",
        "rolesUnique": "Chaque rôle (audio, détection, enregistrement) ne peut être assigné qu'à un seul flux",
        "addInput": "Ajouter un flux entrant",
        "removeInput": "Supprimer le flux entrant",
        "inputsRequired": "Au moins un flux entrant est nécessaire"
      },
      "toast": {
        "success": "Caméra {{cameraName}} enregistrée avec succès"
      },
      "nameLength": "Le nom de la caméra doit comporter au plus 24 caractères."
    }
  },
  "masksAndZones": {
    "form": {
      "zoneName": {
        "error": {
          "mustBeAtLeastTwoCharacters": "Le nom de la zone doit comporter au moins 2 caractères.",
          "mustNotBeSameWithCamera": "Le nom de la zone ne doit pas être le même que le nom de la caméra.",
          "mustNotContainPeriod": "Le nom de la zone ne doit pas contenir de points.",
          "hasIllegalCharacter": "Le nom de la zone contient des caractères interdits.",
          "alreadyExists": "Une zone portant ce nom existe déjà pour cette caméra.",
          "mustHaveAtLeastOneLetter": "Le nom de la zone doit comporter au moins une lettre."
        }
      },
      "distance": {
        "error": {
          "text": "La distance doit être supérieure ou égale à 0,1.",
          "mustBeFilled": "Tous les champs de distance doivent être remplis pour utiliser l'estimation de la vitesse."
        }
      },
      "polygonDrawing": {
        "removeLastPoint": "Supprimer le dernier point",
        "delete": {
          "title": "Confirmer la suppression",
          "desc": "Êtes-vous sûr de vouloir supprimer le {{type}} <em>{{name}}</em> ?",
          "success": "{{name}} a été supprimé."
        },
        "error": {
          "mustBeFinished": "Le dessin du polygone doit être terminé avant d'enregistrer."
        },
        "reset": {
          "label": "Effacer tous les points"
        },
        "snapPoints": {
          "true": "Points d'accrochage",
          "false": "Ne pas réunir les points"
        }
      },
      "loiteringTime": {
        "error": {
          "mustBeGreaterOrEqualZero": "Le temps de latence doit être supérieur ou égal à 0."
        }
      },
      "inertia": {
        "error": {
          "mustBeAboveZero": "L'inertie doit être supérieure à 0."
        }
      },
      "speed": {
        "error": {
          "mustBeGreaterOrEqualTo": "Le seuil de vitesse doit être supérieur ou égal à 0.1."
        }
      }
    },
    "zones": {
      "documentTitle": "Modifier la zone - Frigate",
      "desc": {
        "title": "Les zones vous permettent de définir une zone spécifique de l'image afin de déterminer si un objet s'y trouve.",
        "documentation": "Documentation"
      },
      "add": "Ajouter une zone",
      "edit": "Modifier une zone",
      "name": {
        "title": "Nom",
        "inputPlaceHolder": "Saisissez un nom.",
        "tips": "Le nom doit comporter au moins 2 caractères, dont une lettre, et ne doit pas être le nom d'une caméra ou d'une autre zone sur cette caméra."
      },
      "loiteringTime": {
        "desc": "Définit une durée minimale en secondes pendant laquelle l'objet doit rester dans la zone pour qu'elle s'active. <em>Par défaut : 0</em>",
        "title": "Temps de maraudage"
      },
      "speedEstimation": {
        "title": "Estimation de la vitesse",
        "desc": "Activer l'estimation de la vitesse des objets dans cette zone. La zone doit comporter exactement 4 points.",
        "docs": "Lire la documentation",
        "lineBDistance": "Distance ligne B ({{unit}})",
        "lineCDistance": "Distance ligne C ({{unit}})",
        "lineADistance": "Distance ligne A ({{unit}})",
        "lineDDistance": "Distance ligne D ({{unit}})"
      },
      "speedThreshold": {
        "title": "Seuil de vitesse ({{unit}})",
        "desc": "Spécifie une vitesse minimale pour que les objets soient pris en compte dans cette zone.",
        "toast": {
          "error": {
            "loiteringTimeError": "Les zones avec des temps de latence supérieurs à 0 ne doivent pas être utilisées avec l'estimation de la vitesse.",
            "pointLengthError": "L'estimation de vitesse a été désactivée pour cette zone. Les zones avec estimation de vitesse doivent comporter exactement 4 points."
          }
        }
      },
      "point_one": "{{count}} point",
      "point_many": "{{count}} points",
      "point_other": "{{count}} points",
      "label": "Zones",
      "inertia": {
        "desc": "Spécifie le nombre d'images pendant lesquelles un objet doit être dans une zone avant d'être considéré comme y étant. <em>Par défaut : 3</em>",
        "title": "Inertie"
      },
      "toast": {
        "success": "La zone ({{zoneName}}) a été enregistrée."
      },
      "objects": {
        "title": "Objets",
        "desc": "Liste des objets qui s'appliquent à cette zone."
      },
      "clickDrawPolygon": "Cliquer pour dessiner un polygone sur l'image.",
      "allObjects": "Tous les objets"
    },
    "motionMasks": {
      "label": "Masque de mouvement",
      "documentTitle": "Modifier le masque de mouvement - Frigate",
      "context": {
        "documentation": "Lire la documentation",
        "title": "Les masques de mouvement servent à empêcher les mouvements indésirables de déclencher la détection (par exemple : branches d'arbres, horodatage des caméras). Ils doivent être utilisés <em>avec parcimonie</em>, car un surmasquage complique le suivi des objets."
      },
      "polygonAreaTooLarge": {
        "title": "Le masque de mouvement couvre {{polygonArea}} % du cadre de la caméra. Les grands masques de mouvement ne sont pas recommandés.",
        "tips": "Les masques de mouvement n'empêchent pas la détection des objets. Il est préférable d'utiliser une zone obligatoire.",
        "documentation": "Lire la documentation"
      },
      "edit": "Modifier le masque de mouvement",
      "point_one": "{{count}} point",
      "point_many": "{{count}} points",
      "point_other": "{{count}} points",
      "clickDrawPolygon": "Cliquer pour dessiner un polygone sur l'image.",
      "toast": {
        "success": {
          "title": "{{polygonName}} a été enregistré.",
          "noName": "Le masque de mouvement a été enregistré."
        }
      },
      "desc": {
        "title": "Les masques de mouvement servent à empêcher la détection de mouvements indésirables. Un masquage excessif complique le suivi des objets.",
        "documentation": "Documentation"
      },
      "add": "Nouveau masque de mouvement"
    },
    "objectMasks": {
      "label": "Masques d'objet",
      "desc": {
        "documentation": "Documentation",
        "title": "Les masques de filtrage d'objets sont utilisés pour filtrer les faux positifs pour un type d'objet donné en fonction de l'emplacement."
      },
      "edit": "Modifier un masque d'objet",
      "clickDrawPolygon": "Cliquez pour dessiner un polygone sur l'image.",
      "objects": {
        "title": "Objets",
        "desc": "Le type d'objet qui s'applique à ce masque d'objet.",
        "allObjectTypes": "Tous les types d'objet"
      },
      "toast": {
        "success": {
          "noName": "Le masque d'objet a été enregistré.",
          "title": "{{polygonName}} a été enregistré."
        }
      },
      "point_one": "{{count}} point",
      "point_many": "{{count}} points",
      "point_other": "{{count}} points",
      "add": "Ajouter un masque d'objet",
      "documentTitle": "Modifier le masque d'objet - Frigate",
      "context": "Les masques de filtrage d'objets sont utilisés pour filtrer les faux positifs pour un type d'objet donné en fonction de l'emplacement."
    },
    "filter": {
      "all": "Tous les masques et zones"
    },
    "toast": {
      "success": {
        "copyCoordinates": "Coordonnées copiées pour {{polyName}} dans le presse-papiers."
      },
      "error": {
        "copyCoordinatesFailed": "Impossible de copier les coordonnées dans le presse-papiers."
      }
    },
    "restart_required": "Redémarrage requis (masques/zones changés)",
    "objectMaskLabel": "Masque d'objet {{number}} ({{label}})",
    "motionMaskLabel": "Masque de mouvement {{number}}"
  },
  "motionDetectionTuner": {
    "title": "Réglage de la détection de mouvement",
    "desc": {
      "documentation": "Lisez le guide de réglage de mouvement",
      "title": "Frigate utilise la détection de mouvement comme première ligne de contrôle pour voir s'il se passe quelque chose dans l'image qui mérite d'être vérifié avec la détection d'objets."
    },
    "Threshold": {
      "title": "Seuil",
      "desc": "La valeur seuil détermine dans quelle mesure un changement dans la luminance d'un pixel est nécessaire pour être considéré comme un mouvement. <em>Valeur par défaut : 30</em>"
    },
    "contourArea": {
      "title": "Zone de contour",
      "desc": "La valeur de la zone de contour est utilisée pour déterminer quels groupes de pixels modifiés sont qualifiés de mouvement. <em>Par défaut : 10</em>"
    },
    "improveContrast": {
      "title": "Améliorer le contraste",
      "desc": "Améliorer le contraste pour les scènes plus sombres. <em>Par défaut : ACTIVÉ</em>"
    },
    "toast": {
      "success": "Les paramètres de mouvement ont été enregistrés."
    },
    "unsavedChanges": "Modifications des réglages de mouvement non enregistrés ({{camera}})"
  },
  "debug": {
    "debugging": "Débogage",
    "objectList": "Liste d'objets",
    "boundingBoxes": {
      "title": "Cadres de détection",
      "colors": {
        "label": "Couleurs des cadres de détection d'objet",
        "info": "<li>Au démarrage, différentes couleurs seront attribuées à chaque étiquette d'objet</li><li>Une fine ligne bleu foncé indique que cet objet n'est pas détecté à ce moment précis</li><li>Une fine ligne grise indique que cet objet est détecté comme étant immobile</li><li>Une ligne épaisse indique que cet objet fait l'objet d'un suivi automatique (lorsqu'il est activé)</li>"
      },
      "desc": "Afficher les cadres de détection autour des objets suivis"
    },
    "timestamp": {
      "title": "Horodatage",
      "desc": "Superposer un horodatage sur l'image"
    },
    "zones": {
      "title": "Zones",
      "desc": "Afficher un aperçu de toutes les zones définies"
    },
    "mask": {
      "title": "Masques de mouvement",
      "desc": "Afficher les polygones du masque de mouvement"
    },
    "motion": {
      "desc": "Afficher des cadres autour des zones où un mouvement est détecté",
      "title": "Cadres de mouvement",
      "tips": "<p><strong>Cadres de mouvement</strong></p><br><p>Des cadres rouges seront superposés sur les zones de l'image où un mouvement est actuellement détecté</p>"
    },
    "regions": {
      "title": "Régions",
      "desc": "Afficher un cadre de la région d'intérêt envoyée au détecteur d'objet",
      "tips": "<p><strong>Cadres de région</strong></p><br><p>Des cadres verts lumineux seront superposés sur les zones d'intérêt de l'image qui sont envoyées au détecteur d'objets.</p>"
    },
    "objectShapeFilterDrawing": {
      "title": "Dessin de filtre de forme d'objet",
      "area": "Zone",
      "desc": "Dessinez un rectangle sur l'image pour afficher les détails de la zone et du rapport",
      "score": "Score",
      "tips": "Activez cette option pour dessiner un rectangle sur l'image de la caméra afin d'afficher sa surface et son ratio. Ces valeurs peuvent ensuite être utilisées pour définir les paramètres de filtre de forme d'objet dans votre configuration.",
      "document": "Lire la documentation ",
      "ratio": "Ratio"
    },
    "noObjects": "Aucun objet",
    "title": "Débogage",
    "detectorDesc": "Frigate utilise vos détecteurs ({{detectors}}) pour détecter les objets dans le flux vidéo de votre caméra.",
    "desc": "La vue de débogage affiche en temps réel les objets suivis et leurs statistiques. La liste des objets affiche un résumé différé des objets détectés.",
    "paths": {
      "title": "Trajets",
      "desc": "Afficher les points notables du trajet de l'objet suivi",
      "tips": "<p><strong>Trajets</strong></p><br><p>Les lignes et les cercles indiqueront les points notables où l'objet suivi s'est déplacé pendant son cycle de vie.</p>"
    },
    "audio": {
      "title": "Audio",
      "noAudioDetections": "Aucune détection audio",
      "score": "score",
      "currentRMS": "RMS actuel",
      "currentdbFS": "dbFS actuel"
    },
    "openCameraWebUI": "Ouvrir l'interface Web de {{camera}}"
  },
  "users": {
    "title": "Utilisateurs",
    "management": {
      "title": "Gestion des utilisateurs",
      "desc": "Gérez les comptes utilisateurs de cette instance Frigate."
    },
    "addUser": "Ajouter un utilisateur",
    "updatePassword": "Mettre à jour le mot de passe",
    "toast": {
      "success": {
        "roleUpdated": "Rôle mis à jour pour {{user}}",
        "deleteUser": "L'utilisateur {{user}} a été supprimé avec succès",
        "createUser": "L'utilisateur {{user}} a été créé avec succès",
        "updatePassword": "Mot de passe mis à jour avec succès."
      },
      "error": {
        "setPasswordFailed": "Échec de l'enregistrement du mot de passe : {{errorMessage}}",
        "createUserFailed": "Échec de la création de l'utilisateur : {{errorMessage}}",
        "deleteUserFailed": "Échec de la suppression de l'utilisateur : {{errorMessage}}",
        "roleUpdateFailed": "Échec de la mise à jour du rôle : {{errorMessage}}"
      }
    },
    "table": {
      "username": "Nom d'utilisateur",
      "actions": "Actions",
      "noUsers": "Aucun utilisateur trouvé.",
      "changeRole": "Changer le rôle d'utilisateur",
      "password": "Mot de passe",
      "deleteUser": "Supprimer un utilisateur",
      "role": "Rôle"
    },
    "dialog": {
      "form": {
        "user": {
          "title": "Nom d'utilisateur",
          "placeholder": "Saisir le nom d'utilisateur",
          "desc": "Seules les lettres, les chiffres, les points et les traits de soulignement sont autorisés."
        },
        "password": {
          "strength": {
            "weak": "Faible",
            "title": "Niveau de sécurité du mot de passe : ",
            "medium": "Moyen",
            "strong": "Fort",
            "veryStrong": "Très fort"
          },
          "match": "Les mots de passe correspondent",
          "notMatch": "Les mots de passe ne correspondent pas.",
          "placeholder": "Saisir le mot de passe",
          "title": "Mot de passe",
          "confirm": {
            "title": "Confirmer le mot de passe",
            "placeholder": "Confirmer le mot de passe"
          },
          "show": "Afficher le mot de passe",
          "hide": "Masquer le mot de passe",
          "requirements": {
            "title": "Critères du mot de passe :",
            "length": "Au moins 8 caractères",
            "uppercase": "Au moins une lettre majuscule",
            "digit": "Au moins un chiffre",
            "special": "Au moins un caractère spécial (!@#$%^&*(),.?\":{}|<>)"
          }
        },
        "newPassword": {
          "title": "Nouveau mot de passe",
          "placeholder": "Saisissez le nouveau mot de passe.",
          "confirm": {
            "placeholder": "Confirmez le nouveau mot de passe."
          }
        },
        "usernameIsRequired": "Nom d'utilisateur requis",
        "passwordIsRequired": "Mot de passe requis",
        "currentPassword": {
          "title": "Mot de passe actuel",
          "placeholder": "Saisissez votre mot de passe actuel"
        }
      },
      "deleteUser": {
        "title": "Supprimer un utilisateur",
        "desc": "Cette action est irréversible. Elle supprimera définitivement le compte utilisateur et toutes les données associées.",
        "warn": "Êtes-vous sûr de vouloir supprimer <strong>{{username}}</strong> ?"
      },
      "passwordSetting": {
        "updatePassword": "Mettre à jour le mot de passe pour {{username}}",
        "setPassword": "Configurer un mot de passe",
        "desc": "Créez un mot de passe fort pour sécuriser ce compte.",
        "doNotMatch": "Les mots de passe ne correspondent pas",
        "cannotBeEmpty": "Le mot de passe ne peut être vide",
        "currentPasswordRequired": "Le mot de passe actuel est requis.",
        "incorrectCurrentPassword": "Le mot de passe actuel est incorrect",
        "passwordVerificationFailed": "Échec de la vérification du mot de passe",
        "multiDeviceWarning": "Tout autre appareil connecté devra se reconnecter dans un délai de {{refresh_time}}.",
        "multiDeviceAdmin": "Vous pouvez également forcer la ré-authentification immédiate de tous les utilisateurs en renouvelant votre clé de sécurité JWT."
      },
      "changeRole": {
        "title": "Changer le rôle de l'utilisateur",
        "desc": "Mettre à jour les autorisations pour <strong>{{username}}</strong>",
        "roleInfo": {
          "intro": "Sélectionnez le rôle approprié pour cet utilisateur :",
          "admin": "Administrateur",
          "adminDesc": "Accès complet à l'ensemble des fonctionnalités.",
          "viewer": "Observateur",
          "viewerDesc": "Limité aux tableaux de bord Direct, Activités, Explorer et Exports.",
          "customDesc": "Rôle personnalisé avec accès spécifique à la caméra"
        },
        "select": "Sélectionnez un rôle"
      },
      "createUser": {
        "title": "Créer un nouvel utilisateur",
        "desc": "Ajoutez un nouveau compte utilisateur et spécifiez un rôle pour accéder aux zones de l'interface utilisateur Frigate.",
        "usernameOnlyInclude": "Le nom d'utilisateur ne peut inclure que des lettres, des chiffres, des points (.) ou des traits de soulignement (_).",
        "confirmPassword": "Veuillez confirmer votre mot de passe"
      }
    }
  },
  "enrichments": {
    "title": "Paramètres d'enrichissements",
    "birdClassification": {
      "title": "Identification des oiseaux",
      "desc": "L'identification des oiseaux est réalisée à l'aide d'un modèle TensorFlow quantifié. Lorsqu'un oiseau est reconnu, son nom commun est automatiquement ajouté comme sous-étiquette. Cette information est intégrée à l'interface utilisateur, aux filtres de recherche et aux notifications."
    },
    "semanticSearch": {
      "title": "Recherche sémantique",
      "readTheDocumentation": "Lire la documentation",
      "reindexNow": {
        "label": "Réindexer maintenant",
        "desc": "La réindexation va régénérer les embeddings pour tous les objets suivis. Ce processus s'exécute en arrière-plan et peut saturer votre processeur et prendre un temps considérable en fonction du nombre d'objets suivis.",
        "confirmTitle": "Confirmer la réindexation",
        "confirmButton": "Réindexer",
        "success": "La réindexation a démarré avec succès.",
        "alreadyInProgress": "La réindexation est déjà en cours.",
        "error": "Échec du démarrage de la réindexation : {{errorMessage}}",
        "confirmDesc": "Êtes-vous sûr de vouloir réindexer tous les embeddings des objets suivis ? Ce processus s'exécutera en arrière-plan, mais il pourrait saturer votre processeur et prendre un temps considérable. Vous pouvez suivre la progression sur la page Explorer."
      },
      "modelSize": {
        "desc": "La taille du modèle utilisé pour les embeddings de recherche sémantique",
        "small": {
          "title": "petit",
          "desc": "Utiliser <em>petit</em> emploie une version quantifiée du modèle qui utilise moins de mémoire et s'exécute plus rapidement sur le processeur avec une différence négligeable dans la qualité des embeddings."
        },
        "large": {
          "title": "grand",
          "desc": "Utiliser <em>grand</em> emploie le modèle Jina complet et s'exécutera automatiquement sur le GPU si disponible."
        },
        "label": "Taille du modèle"
      },
      "desc": "La recherche sémantique de Frigate permet de retrouver des objets suivis au sein de vos activités en utilisant l'image elle-même, une description personnalisée ou une description générée automatiquement."
    },
    "unsavedChanges": "Modifications non enregistrées des paramètres d'enrichissements",
    "faceRecognition": {
      "title": "Reconnaissance faciale",
      "readTheDocumentation": "Lire la documentation",
      "modelSize": {
        "label": "Taille du modèle",
        "desc": "La taille du modèle utilisé pour la reconnaissance faciale",
        "small": {
          "title": "petit",
          "desc": "Utiliser <em>petit</em> emploie un modèle d'embedding facial FaceNet qui s'exécute efficacement sur la plupart des processeurs."
        },
        "large": {
          "title": "grand",
          "desc": "Utiliser <em>grand</em> emploie un modèle d'embedding facial ArcFace et s'exécutera automatiquement sur le GPU si disponible."
        }
      },
      "desc": "La reconnaissance faciale permet à Frigate d'identifier les individus par leur nom. Dès qu'un visage est reconnu, Frigate associe ce nom comme sous-étiquette à l'événement. Ces informations sont ensuite intégrées dans l'interface utilisateur, les options de filtrage et les notifications."
    },
    "licensePlateRecognition": {
      "title": "Reconnaissance des plaques d'immatriculation",
      "readTheDocumentation": "Lire la documentation",
      "desc": "Frigate identifie les plaques d'immatriculation des véhicules et peut automatiquement insérer les caractères détectés dans le champ recognized_license_plate. Il est également capable d'assigner un nom familier comme sous-étiquette aux objets de type \"voiture\". Par exemple, cette fonction est souvent utilisée pour lire les plaques des véhicules empruntant une allée ou une rue."
    },
    "toast": {
      "error": "Échec de l'enregistrement des modifications de configuration : {{errorMessage}}",
      "success": "Les paramètres d'enrichissements ont été enregistrés. Redémarrez Frigate pour appliquer vos modifications."
    },
    "restart_required": "Redémarrage nécessaire (paramètres d'enrichissements modifiés)"
  },
  "triggers": {
    "documentTitle": "Déclencheurs",
    "management": {
      "title": "Déclencheurs",
      "desc": "Gérer les déclencheurs pour {{camera}}. Utilisez le type vignette pour déclencher à partir de vignettes similaires à l'objet suivi sélectionné. Utilisez le type description pour déclencher à partir de textes de description similaires que vous avez spécifiés."
    },
    "addTrigger": "Ajouter un déclencheur",
    "table": {
      "name": "Nom",
      "type": "Type",
      "content": "Contenu",
      "threshold": "Seuil",
      "actions": "Actions",
      "noTriggers": "Aucun déclencheur configuré pour cette caméra.",
      "edit": "Modifier",
      "deleteTrigger": "Supprimer le déclencheur",
      "lastTriggered": "Dernier déclencheur"
    },
    "type": {
      "thumbnail": "Vignette",
      "description": "Description"
    },
    "actions": {
      "alert": "Marquer comme alerte",
      "notification": "Envoyer une notification",
      "sub_label": "Ajouter une sous-étiquette",
      "attribute": "Ajouter un attribut"
    },
    "dialog": {
      "createTrigger": {
        "title": "Créer un déclencheur",
        "desc": "Créer un déclencheur pour la caméra {{camera}}"
      },
      "editTrigger": {
        "title": "Modifier le déclencheur",
        "desc": "Modifier les paramètres du déclencheur de la caméra {{camera}}"
      },
      "deleteTrigger": {
        "title": "Supprimer le déclencheur",
        "desc": "Êtes-vous sûr de vouloir supprimer le déclencheur <strong>{{triggerName}}</strong> ? Cette action est irréversible."
      },
      "form": {
        "name": {
          "title": "Nom",
          "placeholder": "Nommez ce déclencheur",
          "error": {
            "minLength": "Le champ doit comporter au moins deux caractères.",
            "invalidCharacters": "Le champ peut contenir uniquement des lettres, des nombres, des tirets bas, et des tirets.",
            "alreadyExists": "Un déclencheur avec le même nom existe déjà pour cette caméra."
          },
          "description": "Saisissez un nom ou une description unique pour identifier ce déclencheur."
        },
        "enabled": {
          "description": "Activer ou désactiver ce déclencheur"
        },
        "type": {
          "title": "Type",
          "placeholder": "Sélectionner un type de déclencheur",
          "description": "Déclencher lorsqu'une description d'objet suivi similaire est détectée",
          "thumbnail": "Déclencher lorsqu'une vignette d'objet suivi similaire est détectée"
        },
        "content": {
          "title": "Contenu",
          "imagePlaceholder": "Sélectionner une vignette",
          "textPlaceholder": "Saisir le contenu du texte",
          "imageDesc": "Seules les 100 vignettes les plus récentes sont affichées. Si vous ne trouvez pas la vignette souhaitée, veuillez consulter les objets précédents dans Explorer et configurer un déclencheur à partir de ce menu.",
          "textDesc": "Entrez un texte pour déclencher cette action lorsqu'une description similaire d'objet suivi est détectée.",
          "error": {
            "required": "Le contenu est requis."
          }
        },
        "threshold": {
          "title": "Seuil",
          "error": {
            "min": "Le seuil doit être au moins 0",
            "max": "Le seuil peut être au plus 1"
          },
          "desc": "Définissez le seuil de similarité pour ce déclencheur. Un seuil plus élevé signifie qu'une correspondance plus exacte est requise pour activer le déclencheur."
        },
        "actions": {
          "title": "Actions",
          "desc": "Par défaut, Frigate envoie un message MQTT pour tous les déclencheurs. Les sous-étiquettes ajoutent le nom du déclencheur à l'étiquette de l'objet. Les attributs sont des métadonnées recherchables stockées séparément dans les métadonnées de l'objet suivi.",
          "error": {
            "min": "Au moins une action doit être sélectionnée."
          }
        },
        "friendly_name": {
          "title": "Nom convivial",
          "placeholder": "Nommez ou décrivez ce déclencheur",
          "description": "Nom convivial ou texte descriptif facultatif pour ce déclencheur."
        }
      }
    },
    "toast": {
      "success": {
        "createTrigger": "Le déclencheur {{name}} a été créé avec succès.",
        "updateTrigger": "Le déclencheur {{name}} a été mis à jour avec succès.",
        "deleteTrigger": "Le déclencheur {{name}} a été supprimé avec succès."
      },
      "error": {
        "createTriggerFailed": "Échec de la création du déclencheur : {{errorMessage}}",
        "updateTriggerFailed": "Échec de la mise à jour du déclencheur : {{errorMessage}}",
        "deleteTriggerFailed": "Échec de la suppression du déclencheur : {{errorMessage}}"
      }
    },
    "semanticSearch": {
      "title": "La recherche sémantique est désactivée",
      "desc": "La recherche sémantique doit être activée pour utiliser les déclencheurs."
    },
    "wizard": {
      "title": "Créer un déclencheur",
      "step1": {
        "description": "Configurez les paramètres de base pour votre déclencheur."
      },
      "step2": {
        "description": "Configurez le contenu qui déclenchera cette action."
      },
      "step3": {
        "description": "Configurez le seuil et les actions pour ce déclencheur."
      },
      "steps": {
        "nameAndType": "Nom et type",
        "configureData": "Configuration des données",
        "thresholdAndActions": "Seuil et actions"
      }
    }
  },
  "roles": {
    "management": {
      "title": "Gestion des rôles Observateur",
      "desc": "Gérer les rôles Observateur personnalisés et leurs permissions d'accès aux caméras pour cette instance de Frigate."
    },
    "addRole": "Ajouter un rôle",
    "table": {
      "role": "Rôle",
      "cameras": "Caméras",
      "actions": "Actions",
      "noRoles": "Aucun rôle personnalisé trouvé.",
      "editCameras": "Modifier les caméras",
      "deleteRole": "Supprimer le rôle"
    },
    "toast": {
      "success": {
        "createRole": "Rôle {{role}} créé avec succès",
        "updateCameras": "Caméras mis à jour pour le rôle {{role}}",
        "deleteRole": "Rôle {{role}} supprimé avec succès",
        "userRolesUpdated_one": "{{count}} utilisateur affecté à ce rôle a été mis à jour avec des droits \"Observateur\", et a accès à toutes les caméras.",
        "userRolesUpdated_many": "{{count}} utilisateurs affectés à ce rôle ont été mis à jour avec des droits \"Observateur\", et ont accès à toutes les caméras.",
        "userRolesUpdated_other": "{{count}} utilisateurs affectés à ce rôle ont été mis à jour avec des droits \"Observateur\", et ont accès à toutes les caméras."
      },
      "error": {
        "createRoleFailed": "Échec dans la création du rôle : {{errorMessage}}",
        "updateCamerasFailed": "Échec de la mise à jour des caméras : {{errorMessage}}",
        "deleteRoleFailed": "Échec lors de la suppression du rôle : {{errorMessage}}",
        "userUpdateFailed": "Echec lors de la mise à jour des rôles de l'utilisateur : {{errorMessage}}"
      }
    },
    "dialog": {
      "createRole": {
        "title": "Créer un nouveau rôle",
        "desc": "Ajouter un nouveau rôle et définir les permissions d'accès à la caméra."
      },
      "editCameras": {
        "title": "Modifier les caméras du rôle",
        "desc": "Mettre à jour les accès aux caméras pour le rôle <strong>{{role}}</strong>."
      },
      "deleteRole": {
        "title": "Suppression du rôle",
        "desc": "Cette action est irréversible. Elle supprimera définitivement le rôle et tous les utilisateurs associés seront affectés au rôle \"Observateur\", avec un accès à toutes les caméras.",
        "warn": "Êtes-vous sûr de vouloir supprimer <strong>{{role}}</strong> ?",
        "deleting": "En cours de suppression..."
      },
      "form": {
        "role": {
          "title": "Nom du rôle",
          "placeholder": "Saisissez un nom de rôle.",
          "desc": "Seuls les lettres, les chiffres, les points et les traits de soulignement sont autorisés.",
          "roleIsRequired": "Un nom de rôle est requis",
          "roleOnlyInclude": "Le nom de rôle ne peut inclure que des lettres, des chiffres, des points (.) ou des traits de soulignement (_).",
          "roleExists": "Un rôle avec ce nom existe déjà."
        },
        "cameras": {
          "title": "Caméras",
          "desc": "Sélectionnez les caméras auxquelles ce rôle aura accès. Au moins une caméra est requise.",
          "required": "Au moins une caméra doit être sélectionnée."
        }
      }
    }
  },
  "cameraWizard": {
    "title": "Ajouter une caméra",
    "description": "Suivez les étapes ci-dessous pour ajouter une nouvelle caméra à votre installation Frigate.",
    "steps": {
      "nameAndConnection": "Nom et connexion",
      "streamConfiguration": "Configuration du flux",
      "validationAndTesting": "Validation et tests",
      "probeOrSnapshot": "Sondage ou Instantané"
    },
    "save": {
      "success": "Nouvelle caméra {{cameraName}} enregistrée avec succès",
      "failure": "Échec lors de l'enregistrement de {{cameraName}}"
    },
    "testResultLabels": {
      "resolution": "Résolution",
      "video": "Vidéo",
      "audio": "Audio",
      "fps": "FPS"
    },
    "commonErrors": {
      "noUrl": "Veuillez saisir une URL de flux valide.",
      "testFailed": "Échec du test de flux : {{error}}"
    },
    "step1": {
      "description": "Saisissez les détails de votre caméra et choisissez d'interroger la caméra ou de sélectionner manuellement la marque.",
      "cameraName": "Nom de la caméra",
      "cameraNamePlaceholder": "par ex., porte_entree ou apercu_cour_arriere",
      "host": "Hôte / Adresse IP",
      "port": "Port",
      "username": "Nom d'utilisateur",
      "usernamePlaceholder": "Facultatif",
      "password": "Mot de passe",
      "passwordPlaceholder": "Facultatif",
      "selectTransport": "Sélectionnez le protocole de transport.",
      "cameraBrand": "Marque de la caméra",
      "selectBrand": "Sélectionnez la marque de la caméra pour déterminer la forme de l'URL.",
      "customUrl": "URL de flux personnalisé",
      "brandInformation": "Information sur la marque",
      "brandUrlFormat": "Pour les caméras avec un format d'URL RTSP comme : {{exampleUrl}}",
      "customUrlPlaceholder": "rtsp://nomutilisateur:motdepasse@hote:port/chemin",
      "testConnection": "Tester la connexion",
      "testSuccess": "Test de connexion réussi !",
      "testFailed": "Échec du test de connexion. Veuillez vérifier votre saisie et réessayez.",
      "streamDetails": "Détails du flux",
      "warnings": {
        "noSnapshot": "Impossible de récupérer un instantané à partir du flux configuré"
      },
      "errors": {
        "brandOrCustomUrlRequired": "Sélectionnez une marque de caméra avec hôte/IP ou choisissez « Autre » avec une URL personnalisée.",
        "nameRequired": "Le nom de la caméra est requis.",
        "nameLength": "Le nom de la caméra ne doit pas dépasser 64 caractères.",
        "invalidCharacters": "Le nom de la caméra contient des caractères invalides.",
        "nameExists": "Ce nom de caméra est déjà utilisé.",
        "brands": {
          "reolink-rtsp": "Le protocole RTSP de Reolink est déconseillé. Activez le protocole HTTP dans les paramètres du firmware de la caméra, puis relancez l'assistant."
        },
        "customUrlRtspRequired": "Les URL personnalisées doivent commencer par \"rtsp://\". Une configuration manuelle est requise pour les flux de caméra non-RTSP."
      },
      "docs": {
        "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
      },
      "testing": {
        "probingMetadata": "Vérification des métadonnées de la caméra en cours...",
        "fetchingSnapshot": "Récupération de l'instantané de la caméra en cours..."
      },
      "connectionSettings": "Paramètres de connexion",
      "detectionMethod": "Méthode de détection du flux",
      "onvifPort": "Port ONVIF",
      "probeMode": "Interroger la caméra",
      "manualMode": "Sélection manuelle",
      "detectionMethodDescription": "Interrogez la caméra avec ONVIF (si pris en charge) pour trouver les URL de flux de la caméra, ou sélectionnez manuellement la marque de la caméra pour utiliser des URL prédéfinies. Pour saisir une URL RTSP personnalisée, choisissez la méthode manuelle et sélectionnez \"Autre\".",
      "onvifPortDescription": "Pour les caméras prenant en charge ONVIF, il s'agit généralement de 80 ou 8080.",
      "useDigestAuth": "Utiliser l'authentification Digest",
      "useDigestAuthDescription": "Utilisez l'authentification Digest HTTP pour ONVIF. Certaines caméras peuvent nécessiter un nom d'utilisateur/mot de passe ONVIF dédié au lieu de l'utilisateur administrateur standard."
    },
    "step2": {
      "description": "Interrogez la caméra pour les flux disponibles ou configurez des paramètres manuels en fonction de la méthode de détection sélectionnée.",
      "streamsTitle": "Flux de caméra",
      "addStream": "Ajouter un flux",
      "addAnotherStream": "Ajouter un autre flux",
      "streamTitle": "Flux {{number}}",
      "streamUrl": "URL du flux",
      "streamUrlPlaceholder": "rtsp://nomutilisateur:motdepasse@hote:port/chemin",
      "url": "URL",
      "resolution": "Résolution",
      "selectResolution": "Sélectionnez la résolution.",
      "quality": "Qualité",
      "selectQuality": "Sélectionnez la qualité.",
      "roles": "Rôles",
      "roleLabels": {
        "record": "Enregistrement",
        "audio": "Audio",
        "detect": "Détection d'objets"
      },
      "testStream": "Tester la connexion",
      "testSuccess": "Test de connexion réussi !",
      "testFailed": "Échec du test de connexion. Veuillez vérifier votre saisie et réessayer.",
      "testFailedTitle": "Échec du test",
      "connected": "Connecté",
      "notConnected": "Non connecté",
      "featuresTitle": "Caractéristiques",
      "go2rtc": "Réduire le nombre de connexions à la caméra",
      "detectRoleWarning": "Pour continuer, au moins un flux doit avoir le rôle \"détection\".",
      "rolesPopover": {
        "title": "Rôles du flux",
        "detect": "Flux principal pour la détection d'objets",
        "record": "Enregistre des extraits du flux vidéo en fonction des paramètres de configuration.",
        "audio": "Flux pour la détection audio"
      },
      "featuresPopover": {
        "title": "Fonctionnalités du flux",
        "description": "Utilisez la rediffusion du flux go2rtc pour réduire le nombre de connexions à votre caméra."
      },
      "streamDetails": "Détails du flux",
      "probing": "Interrogation de la caméra en cours...",
      "retry": "Réessayer",
      "testing": {
        "probingMetadata": "Interrogation des métadonnées de la caméra en cours...",
        "fetchingSnapshot": "Récupération de l'instantané de la caméra en cours..."
      },
      "probeFailed": "Impossible d'interroger la caméra : {{error}}",
      "probingDevice": "Interrogation de l'appareil en cours...",
      "probeSuccessful": "Interrogation réussie",
      "probeError": "Erreur d'interrogation",
      "probeNoSuccess": "Échec de l'interrogation",
      "deviceInfo": "Informations sur l'appareil",
      "manufacturer": "Fabricant",
      "model": "Modèle",
      "firmware": "Micrologiciel",
      "profiles": "Profils",
      "ptzSupport": "Prise en charge PTZ",
      "autotrackingSupport": "Prise en charge du suivi automatique",
      "presets": "Préréglages",
      "rtspCandidates": "Candidats RTSP",
      "rtspCandidatesDescription": "Les URL RTSP suivantes ont été trouvées lors de l'interrogation de la caméra. Testez la connexion pour afficher les métadonnées du flux.",
      "noRtspCandidates": "Aucune URL RTSP n'a été trouvée sur la caméra. Vos identifiants sont peut-être incorrects, ou la caméra ne prend peut-être pas en charge ONVIF ou la méthode utilisée pour récupérer les URL RTSP. Revenez en arrière et saisissez l'URL RTSP manuellement.",
      "candidateStreamTitle": "Candidat {{number}}",
      "useCandidate": "Utiliser",
      "uriCopy": "Copier",
      "uriCopied": "URI copiée dans le presse-papiers",
      "testConnection": "Tester la connexion",
      "toggleUriView": "Cliquer pour basculer l'affichage de l'URI complet",
      "errors": {
        "hostRequired": "L'hôte/adresse IP est requis."
      }
    },
    "step3": {
      "description": "Configurez les rôles des flux et ajoutez des flux supplémentaires pour votre caméra.",
      "validationTitle": "Validation du flux",
      "connectAllStreams": "Connecter tous les flux",
      "reconnectionSuccess": "Reconnexion réussie.",
      "reconnectionPartial": "La reconnexion de certains flux a échoué.",
      "streamUnavailable": "Aperçu du flux indisponible",
      "reload": "Recharger",
      "connecting": "Connexion en cours...",
      "streamTitle": "Flux {{number}}",
      "failed": "Échec",
      "notTested": "Non testé",
      "connectStream": "Connecter",
      "connectingStream": "Connexion en cours",
      "disconnectStream": "Déconnecter",
      "estimatedBandwidth": "Débit estimé",
      "roles": "Rôles",
      "none": "Aucun",
      "error": "Erreur",
      "streamValidated": "Flux {{number}} validé avec succès",
      "streamValidationFailed": "La validation du flux {{number}} a échoué",
      "saveAndApply": "Enregistrer une nouvelle caméra",
      "saveError": "Configuration invalide. Veuillez vérifier vos paramètres.",
      "issues": {
        "title": "Validation du flux",
        "videoCodecGood": "Le codec vidéo est {{codec}}.",
        "audioCodecGood": "Le codec audio est {{codec}}.",
        "noAudioWarning": "Aucun son n'est détecté sur ce flux, les enregistrements seront muets.",
        "audioCodecRecordError": "Le codec audio AAC est requis pour la prise en charge du son dans les enregistrements.",
        "audioCodecRequired": "Un flux audio est requis pour prendre en charge la détection audio.",
        "restreamingWarning": "La réduction des connexions à la caméra pour le flux d'enregistrement peut augmenter légèrement l'utilisation du processeur.",
        "dahua": {
          "substreamWarning": "Le flux secondaire 1 est limité en basse résolution. De nombreuses caméras (Dahua, Amcrest, EmpireTech...) proposent des flux supplémentaires qu'il suffit d'activer dans leurs propres paramètres. Il est recommandé de vérifier leur disponibilité et de les utiliser."
        },
        "hikvision": {
          "substreamWarning": "Le flux secondaire 1 est limité en basse résolution. De nombreuses caméras Hikvision proposent des flux supplémentaires qu'il suffit d'activer dans leurs propres paramètres. Il est recommandé de vérifier leur disponibilité et de les utiliser."
        },
        "resolutionHigh": "La résolution {{resolution}} risque d'augmenter l'utilisation des ressources.",
        "resolutionLow": "La résolution {{resolution}} risque d'être trop faible pour détecter les petits objets de manière fiable."
      },
      "valid": "Valide",
      "ffmpegModule": "Utiliser le mode de compatibilité du flux",
      "ffmpegModuleDescription": "Si le flux ne se charge pas après plusieurs tentatives, essayez d'activer cette option. Lorsqu'elle est activée, Frigate utilisera le module ffmpeg avec go2rtc. Cela peut offrir une meilleure compatibilité avec certains flux de caméra.",
      "streamsTitle": "Flux de la caméra",
      "addStream": "Ajouter un flux",
      "addAnotherStream": "Ajouter un autre flux",
      "streamUrl": "URL du flux",
      "streamUrlPlaceholder": "rtsp://nomdutilisateur:motdepasse@hote:port/chemin",
      "selectStream": "Sélectionner un flux",
      "searchCandidates": "Rechercher des candidats",
      "noStreamFound": "Aucun flux trouvé",
      "url": "URL",
      "resolution": "Résolution",
      "selectResolution": "Sélectionner la résolution",
      "quality": "Qualité",
      "selectQuality": "Sélectionner la qualité",
      "roleLabels": {
        "detect": "Détection d'objet",
        "record": "Enregistrement",
        "audio": "Audio"
      },
      "testStream": "Tester la connexion",
      "testSuccess": "Test du flux réussi !",
      "testFailed": "Échec du test du flux",
      "testFailedTitle": "Échec du test",
      "connected": "Connecté",
      "notConnected": "Non connecté",
      "featuresTitle": "Fonctionnalités",
      "go2rtc": "Réduire les connexions à la caméra",
      "detectRoleWarning": "Au moins un flux doit avoir le rôle 'détection' pour continuer.",
      "rolesPopover": {
        "title": "Rôles du flux",
        "detect": "Flux principal pour la détection d'objet",
        "record": "Enregistre des segments du flux vidéo en fonction des paramètres de configuration",
        "audio": "Flux pour la détection basée sur l'audio"
      },
      "featuresPopover": {
        "title": "Fonctionnalités du flux",
        "description": "Utiliser la rediffusion go2rtc pour réduire les connexions à votre caméra"
      }
    },
    "step4": {
      "description": "Validation et analyse finales avant d'enregistrer votre nouvelle caméra. Connectez chaque flux avant d'enregistrer.",
      "validationTitle": "Validation du flux",
      "connectAllStreams": "Connecter tous les flux",
      "reconnectionSuccess": "Reconnexion réussie",
      "reconnectionPartial": "Certains flux n'ont pas réussi à se reconnecter.",
      "streamUnavailable": "Aperçu du flux non disponible",
      "reload": "Recharger",
      "connecting": "En cours de connexion...",
      "streamTitle": "Flux {{number}}",
      "valid": "Valide",
      "failed": "Échec",
      "notTested": "Non testé",
      "connectStream": "Connecter",
      "connectingStream": "En cours de connexion",
      "disconnectStream": "Déconnecter",
      "estimatedBandwidth": "Bande passante estimée",
      "roles": "Rôles",
      "ffmpegModule": "Utiliser le mode de compatibilité du flux",
      "ffmpegModuleDescription": "Si le flux ne se charge pas après plusieurs tentatives, essayez d'activer cette option. Lorsqu'elle est activée, Frigate utilisera le module ffmpeg avec go2rtc. Cela peut offrir une meilleure compatibilité avec certains flux de caméra.",
      "none": "Aucun",
      "error": "Erreur",
      "streamValidated": "Flux {{number}} validé avec succès",
      "streamValidationFailed": "Échec de la validation du flux {{number}}",
      "saveAndApply": "Enregistrer la nouvelle caméra",
      "saveError": "Configuration invalide. Veuillez vérifier vos paramètres.",
      "issues": {
        "title": "Validation du flux",
        "videoCodecGood": "Le codec vidéo est {{codec}}.",
        "audioCodecGood": "Le codec audio est {{codec}}.",
        "resolutionHigh": "Une résolution de {{resolution}} peut entraîner une utilisation accrue des ressources.",
        "resolutionLow": "Une résolution de {{resolution}} peut être trop faible pour une détection fiable des petits objets.",
        "noAudioWarning": "Aucun audio détecté pour ce flux, les enregistrements n'auront pas de son.",
        "audioCodecRecordError": "Le codec audio AAC est requis pour prendre en charge l'audio dans les enregistrements.",
        "audioCodecRequired": "Un flux audio est requis pour prendre en charge la détection audio.",
        "restreamingWarning": "Réduire les connexions à la caméra pour le flux d'enregistrement peut légèrement augmenter l'utilisation du processeur.",
        "brands": {
          "reolink-rtsp": "Le RTSP Reolink n'est pas recommandé. Activez HTTP dans les paramètres du micrologiciel de la caméra et redémarrez l'assistant.",
          "reolink-http": "Les flux HTTP de Reolink devraient utiliser FFmpeg pour une meilleure compatibilité. Activez 'Utiliser le mode de compatibilité du flux' pour ce flux."
        },
        "dahua": {
          "substreamWarning": "Le sous-flux 1 est limité à une basse résolution. De nombreuses caméras Dahua / Amcrest / EmpireTech prennent en charge des sous-flux supplémentaires qui doivent être activés dans les paramètres de la caméra. Il est recommandé de vérifier et d'utiliser ces flux s'ils sont disponibles."
        },
        "hikvision": {
          "substreamWarning": "Le sous-flux 1 est limité à une basse résolution. De nombreuses caméras Hikvision prennent en charge des sous-flux supplémentaires qui doivent être activés dans les paramètres de la caméra. Il est recommandé de vérifier et d'utiliser ces flux s'ils sont disponibles."
        }
      }
    }
  },
  "cameraManagement": {
    "title": "Gérer les caméras",
    "addCamera": "Ajouter une nouvelle caméra",
    "editCamera": "Modifier la caméra :",
    "selectCamera": "Sélectionnez une caméra",
    "backToSettings": "Retour aux paramètres de la caméra",
    "streams": {
      "title": "Activer / désactiver les caméras",
      "desc": "Désactive temporairement une caméra jusqu'au redémarrage de Frigate. La désactivation d'une caméra interrompt complètement le traitement des flux de la caméra par Frigate. La détection, l'enregistrement et le débogage deviennent alors indisponibles.<br /><em>Remarque : cela n'affecte pas les rediffusions des flux go2rtc.</em>"
    },
    "cameraConfig": {
      "add": "Ajouter une caméra",
      "edit": "Modifier la caméra",
      "description": "Configurez les paramètres de la caméra, notamment les flux entrants et les rôles.",
      "name": "Nom de la caméra",
      "nameRequired": "Le nom de la caméra est requis",
      "nameLength": "Le nom de la caméra doit comporter moins de 64 caractères.",
      "namePlaceholder": "par exemple, porte d'entrée ou aperçu de la cour arrière",
      "enabled": "Activé",
      "ffmpeg": {
        "inputs": "Flux d'entrée",
        "path": "Chemin du flux",
        "pathRequired": "Chemin du flux requis",
        "pathPlaceholder": "rtsp://...",
        "roles": "Rôles",
        "rolesRequired": "Au moins un rôle est requis",
        "rolesUnique": "Chaque rôle (audio, détection, enregistrement) ne peut être attribué qu'à un seul flux",
        "addInput": "Ajouter un flux d'entrée",
        "removeInput": "Supprimer le flux d'entrée",
        "inputsRequired": "Au moins un flux d'entrée est requis"
      },
      "go2rtcStreams": "Flux go2rtc",
      "streamUrls": "URL des flux",
      "addUrl": "Ajouter une URL",
      "addGo2rtcStream": "Ajouter un flux go2rtc",
      "toast": {
        "success": "La caméra {{cameraName}} a été enregistrée avec succès"
      }
    }
  },
  "cameraReview": {
    "title": "Paramètres des activités caméra",
    "object_descriptions": {
      "title": "Descriptions d'objets par l'IA générative",
      "desc": "Active ou désactive temporairement les descriptions d'objets générées par l'IA générative pour cette caméra. Lorsque cette option est désactivée, aucune description par l'IA n'est générée pour les objets suivis sur cette caméra."
    },
    "review_descriptions": {
      "title": "Descriptions des activités par l'IA générative",
      "desc": "Active ou désactive temporairement les descriptions par l'IA générative pour cette caméra. Lorsque cette option est désactivée, aucune description nouvelle n'est générée pour les activités sur cette caméra."
    },
    "review": {
      "title": "Activités",
      "desc": "Active ou désactive temporairement les alertes et les détections pour cette caméra jusqu'au redémarrage de Frigate. Lorsque cette option est désactivée, aucune activité nouvelle n'est générée. ",
      "alerts": "Alertes ",
      "detections": "Détections "
    },
    "reviewClassification": {
      "title": "Classification des activités",
      "desc": "Frigate classe les activités en deux catégories : \"Alertes\" et \"Détections\". Par défaut, les objets de type <em>personne</em> et <em>voiture</em> sont considérés comme des \"Alertes\". Vous pouvez affiner cette classification en définissant des zones spécifiques pour chaque objet.",
      "noDefinedZones": "Aucune zone n'est définie pour cette caméra.",
      "objectAlertsTips": "Sur la caméra {{cameraName}}, tous les objets {{alertsLabels}} apparaîtront en tant qu'\"Alertes\".",
      "zoneObjectAlertsTips": "Sur la caméra {{cameraName}}, tous les objets {{alertsLabels}} détectés dans la zone {{zone}} apparaîtront en tant qu'\"Alertes\".",
      "objectDetectionsTips": "Sur la caméra {{cameraName}}, tous les objets {{detectionsLabels}} non catégorisés apparaîtront en tant que \"Détections\", peu importe leur zone.",
      "zoneObjectDetectionsTips": {
        "text": "Sur la caméra {{cameraName}}, tous les objets {{detectionsLabels}} non catégorisés dans la zone {{zone}} apparaîtront en tant que \"Détections\".",
        "notSelectDetections": "Sur la caméra {{cameraName}}, tous les objets {{detectionsLabels}} détectés dans la zone {{zone}} qui ne sont pas catégorisés comme \"Alertes\" apparaîtront en tant que \"Détections\", et ce, quelle que soit leur zone.",
        "regardlessOfZoneObjectDetectionsTips": "Sur la caméra {{cameraName}}, tous les objets {{detectionsLabels}} non catégorisés apparaîtront en tant que \"Détections\", peu importe leur zone."
      },
      "unsavedChanges": "Paramètres de classification des activités non enregistrés pour {{camera}}",
      "selectAlertsZones": "Sélectionnez les zones pour les alertes",
      "selectDetectionsZones": "Sélectionner les zones pour les détections",
      "limitDetections": "Limiter les détections à des zones spécifiques",
      "toast": {
        "success": "La configuration de la classification des activités a été enregistrée. Redémarrez Frigate pour appliquer les modifications."
      }
    }
  }
}
