diff --git a/web/public/locales/fr/common.json b/web/public/locales/fr/common.json
index ab8f4177b..2ba13dd18 100644
--- a/web/public/locales/fr/common.json
+++ b/web/public/locales/fr/common.json
@@ -102,7 +102,7 @@
"close": "Fermer",
"copy": "Copier",
"back": "Retour",
- "history": "Chronologie",
+ "history": "Historique",
"pictureInPicture": "Image dans l'image",
"twoWayTalk": "Conversation bidirectionnelle",
"off": "OFF",
@@ -243,7 +243,8 @@
"uiPlayground": "Bac à sable de l'interface",
"faceLibrary": "Bibliothèque de visages",
"languages": "Langues",
- "classification": "Classification"
+ "classification": "Classification",
+ "profiles": "Profils"
},
"toast": {
"save": {
diff --git a/web/public/locales/fr/components/icons.json b/web/public/locales/fr/components/icons.json
index fd5f1f8f6..f713f2f52 100644
--- a/web/public/locales/fr/components/icons.json
+++ b/web/public/locales/fr/components/icons.json
@@ -1,8 +1,8 @@
{
"iconPicker": {
"search": {
- "placeholder": "Rechercher une icône"
+ "placeholder": "Rechercher une icône…"
},
- "selectIcon": "Sélectionnez une icône."
+ "selectIcon": "Sélectionnez une icône"
}
}
diff --git a/web/public/locales/fr/config/global.json b/web/public/locales/fr/config/global.json
index 58cd06664..b3dd9d23f 100644
--- a/web/public/locales/fr/config/global.json
+++ b/web/public/locales/fr/config/global.json
@@ -16,11 +16,11 @@
"description": "Contrôle la verbosité par défaut des journaux et les exceptions de niveau par composant.",
"default": {
"label": "Niveau de journalisation",
- "description": "Verbosité de l'ensemble des journaux par défaut (débogage, information, avertissement, erreur)"
+ "description": "Verbosité de l'ensemble des journaux par défaut (débogage, information, avertissement, erreur)."
},
"logs": {
"label": "Niveau de journalisation par processus",
- "description": "Outrepasser le niveau de journalisation par composant pour augmenter ou diminuer la verbosité pour des modules spécifiques"
+ "description": "Personnaliser le niveau de journalisation par composant pour augmenter ou diminuer la verbosité pour des modules spécifiques."
}
},
"auth": {
@@ -29,7 +29,7 @@
"label": "Activer l'authentification",
"description": "Active l'authentification native de l'interface de Frigate."
},
- "description": "Authentification et réglages en rapport avec la session incluant les options concernant les cookies et limite de taux.",
+ "description": "Paramètres d'authentification et de session, y compris les options relatives aux cookies et à la limitation du débit.",
"reset_admin_password": {
"label": "réinitialiser le mot de passe administrateur",
"description": "Si vrai, réinitialise le mot de passe utilisateur administrateur au démarrage et écrit le nouveau mot de passe dans les journaux."
@@ -48,10 +48,34 @@
},
"refresh_time": {
"label": "Fenêtre de rafraichissement de session",
- "description": "Lorsqu'une session est à moins de ce nombre de secondes de son expiration, actualisez là pour lui redonner sa durée complète."
+ "description": "Lorsqu'une session est à moins de ce nombre de secondes d'expirer, rétablissez-la à sa durée entière."
},
"failed_login_rate_limit": {
- "label": "Limite de connexions échouées"
+ "label": "Limite de connexions échouées",
+ "description": "Règles limitant la fréquence des tentatives ratées d'authentification afin de réduire les attaques de type \"brute-force\"."
+ },
+ "trusted_proxies": {
+ "label": "Mandataire de confiance",
+ "description": "Liste des IP de mandataire de confiance quand il faut déterminer l'IP pour limiter le taux."
+ },
+ "hash_iterations": {
+ "label": "Itérations de hachage",
+ "description": "Nombre d'itérations PBKDF2-SHA256 à utiliser quand les mots de passe utilisateur sont hachés."
+ },
+ "roles": {
+ "label": "Correspondance des rôles",
+ "description": "Correspondance de rôles vers la liste des caméras. Une liste vide donne l'accès totale à toutes les caméras pour ce rôle."
+ },
+ "admin_first_time_login": {
+ "label": "Drapeau admin première fois",
+ "description": "Si activé, l'interface peut afficher un lien d'aide sur la page d'identification des utilisateurs indiquant comment se connecter après une réinitialisation du mot de passe administrateur. "
+ }
+ },
+ "database": {
+ "label": "Base de donnée",
+ "description": "Réglages concernant la base de donnée SQLite utilisé par Frigate pour stocker les objets suivis et enregistrer les métadonnées.",
+ "path": {
+ "label": "Chemin vers la base de donnée"
}
}
}
diff --git a/web/public/locales/fr/config/groups.json b/web/public/locales/fr/config/groups.json
index 2178bea8a..2d1e6c039 100644
--- a/web/public/locales/fr/config/groups.json
+++ b/web/public/locales/fr/config/groups.json
@@ -1,7 +1,7 @@
{
"audio": {
"global": {
- "detection": "Détection globale",
+ "detection": "Détection générale",
"sensitivity": "Sensibilité globale"
},
"cameras": {
@@ -23,7 +23,51 @@
"algorithm": "Algorithme global"
},
"cameras": {
- "sensitivity": "Sensibilité"
+ "sensitivity": "Sensibilité",
+ "algorithm": "Algorithme"
+ }
+ },
+ "snapshots": {
+ "global": {
+ "display": "Affichage Global"
+ },
+ "cameras": {
+ "display": "Affichage"
+ }
+ },
+ "detect": {
+ "global": {
+ "resolution": "Résolution globale",
+ "tracking": "Suivi global"
+ },
+ "cameras": {
+ "resolution": "Résolution",
+ "tracking": "Suivi"
+ }
+ },
+ "objects": {
+ "global": {
+ "tracking": "Suivi Global",
+ "filtering": "Filtrage Global"
+ },
+ "cameras": {
+ "tracking": "Suivi",
+ "filtering": "Filtrage"
+ }
+ },
+ "record": {
+ "global": {
+ "retention": "Rétention Globale",
+ "events": "Événements globaux"
+ },
+ "cameras": {
+ "retention": "Rétention",
+ "events": "Événements"
+ }
+ },
+ "ffmpeg": {
+ "cameras": {
+ "cameraFfmpeg": "Arguments FFmpeg spécifiques aux caméras"
}
}
}
diff --git a/web/public/locales/fr/config/validation.json b/web/public/locales/fr/config/validation.json
index 64891267a..aa4acd887 100644
--- a/web/public/locales/fr/config/validation.json
+++ b/web/public/locales/fr/config/validation.json
@@ -1,5 +1,5 @@
{
- "minimum": "Doit être au minimum {{limit}}",
+ "minimum": "Doit être au moins de {{limit}}",
"maximum": "Ne doit pas dépasser {{limit}}",
"exclusiveMinimum": "Doit être supérieur à {{limit}}",
"exclusiveMaximum": "Doit être inférieur à {{limit}}",
@@ -7,5 +7,26 @@
"maxLength": "Doit contenir au maximum {{limit}} caractère(s)",
"minItems": "Doit contenir au moins {{limit}} élément(s)",
"maxItems": "Doit contenir au maximum {{limit}} élément(s)",
- "pattern": "Format incorrect"
+ "pattern": "Format incorrect",
+ "required": "Ce champ est requis",
+ "type": "Type de valeur incorrect",
+ "enum": "Doit être une des valeurs autorisées",
+ "const": "La valeur ne correspond pas à la constante attendu",
+ "uniqueItems": "Tous les éléments doivent être uniques",
+ "format": "Format invalide",
+ "additionalProperties": "Une propriété inconnue est interdite",
+ "oneOf": "Doit correspondre exactement à un des schémas autorisés",
+ "anyOf": "Doit correspondre à au moins un des schémas autorisés",
+ "proxy": {
+ "header_map": {
+ "roleHeaderRequired": "L'entête de rôle est nécessaire quand la cartographie des rôles est configurée."
+ }
+ },
+ "ffmpeg": {
+ "inputs": {
+ "rolesUnique": "Chaque rôle ne peut être assigné qu'à un flux d'entrée.",
+ "detectRequired": "Au moins un flux d'entrée doit être assigné au rôle 'detect' (détection).",
+ "hwaccelDetectOnly": "Seulement le flux d'entrée avec le rôle de détection peut définir des arguments pour l'accélération matérielle."
+ }
+ }
}
diff --git a/web/public/locales/fr/views/classificationModel.json b/web/public/locales/fr/views/classificationModel.json
index 0926f4cd6..df090b3cc 100644
--- a/web/public/locales/fr/views/classificationModel.json
+++ b/web/public/locales/fr/views/classificationModel.json
@@ -12,8 +12,12 @@
},
"toast": {
"success": {
- "deletedCategory": "Classe supprimée",
- "deletedImage": "Images supprimées",
+ "deletedCategory_one": "{{count}} classe supprimée",
+ "deletedCategory_many": "{{count}} classes supprimées",
+ "deletedCategory_other": "{{count}} classes supprimées",
+ "deletedImage_one": "{{count}} image supprimée",
+ "deletedImage_many": "{{count}} images supprimées",
+ "deletedImage_other": "{{count}} images supprimées",
"categorizedImage": "Image classifiée avec succès",
"trainedModel": "Modèle entraîné avec succès.",
"trainingModel": "L'entraînement du modèle a démarré avec succès.",
@@ -21,7 +25,8 @@
"deletedModel_many": "{{count}} modèles supprimés avec succès",
"deletedModel_other": "{{count}} modèles supprimés avec succès",
"updatedModel": "Configuration du modèle mise à jour avec succès",
- "renamedCategory": "Classe renommée en {{name}} avec succès"
+ "renamedCategory": "Classe renommée en {{name}} avec succès",
+ "reclassifiedImage": "Image reclassifiée avec succès"
},
"error": {
"deleteImageFailed": "Échec de la suppression : {{errorMessage}}",
@@ -31,7 +36,8 @@
"deleteModelFailed": "Impossible de supprimer le modèle : {{errorMessage}}",
"updateModelFailed": "Impossible de mettre à jour le modèle : {{errorMessage}}",
"renameCategoryFailed": "Impossible de renommer la classe : {{errorMessage}}",
- "trainingFailedToStart": "Impossible de démarrer l'entraînement du modèle : {{errorMessage}}"
+ "trainingFailedToStart": "Impossible de démarrer l'entraînement du modèle : {{errorMessage}}",
+ "reclassifyFailed": "Échec de reclassification de l'image : {{errorMessage}}"
}
},
"deleteCategory": {
diff --git a/web/public/locales/fr/views/events.json b/web/public/locales/fr/views/events.json
index 6baaf9b93..e5fb25113 100644
--- a/web/public/locales/fr/views/events.json
+++ b/web/public/locales/fr/views/events.json
@@ -15,7 +15,9 @@
"description": "Les activités ne peuvent être générées pour une caméra que si l'enregistrement est activé pour celle-ci."
}
},
- "timeline": "Chronologie",
+ "timeline": {
+ "label": "Chronologie"
+ },
"events": {
"label": "Événements",
"aria": "Sélectionner les événements",
diff --git a/web/public/locales/fr/views/exports.json b/web/public/locales/fr/views/exports.json
index fae8186f3..9e26a27e5 100644
--- a/web/public/locales/fr/views/exports.json
+++ b/web/public/locales/fr/views/exports.json
@@ -2,7 +2,9 @@
"documentTitle": "Exports - Frigate",
"search": "Rechercher",
"noExports": "Aucune exportation trouvée",
- "deleteExport": "Supprimer l'exportation",
+ "deleteExport": {
+ "label": "Supprimer l'exportation"
+ },
"deleteExport.desc": "Êtes-vous sûr de vouloir supprimer {{exportName}} ?",
"editExport": {
"title": "Renommer l'exportation",
diff --git a/web/public/locales/fr/views/faceLibrary.json b/web/public/locales/fr/views/faceLibrary.json
index 4389786cd..83138d7ec 100644
--- a/web/public/locales/fr/views/faceLibrary.json
+++ b/web/public/locales/fr/views/faceLibrary.json
@@ -1,7 +1,7 @@
{
"description": {
"addFace": "Ajoutez une nouvelle collection à la bibliothèque de visages en téléversant votre première image.",
- "placeholder": "Saisissez un nom pour cette collection.",
+ "placeholder": "Saisissez un nom pour cette collection",
"invalidName": "Nom invalide. Les noms ne peuvent contenir que des lettres, des chiffres, des espaces, des apostrophes, des traits de soulignement et des tirets.",
"nameCannotContainHash": "Le nom ne peut pas contenir le caractère #."
},
diff --git a/web/public/locales/fr/views/live.json b/web/public/locales/fr/views/live.json
index 935a96bc6..fc9d6f3a4 100644
--- a/web/public/locales/fr/views/live.json
+++ b/web/public/locales/fr/views/live.json
@@ -1,5 +1,7 @@
{
- "documentTitle": "Direct - Frigate",
+ "documentTitle": {
+ "default": "Direct - Frigate"
+ },
"lowBandwidthMode": "Mode bande passante faible",
"documentTitle.withCamera": "{{camera}} - Direct - Frigate",
"twoWayTalk": {
@@ -15,7 +17,8 @@
"clickMove": {
"label": "Cliquez dans le cadre pour centrer la caméra",
"enable": "Activer le clic pour déplacer",
- "disable": "Désactiver le clic pour déplacer"
+ "disable": "Désactiver le clic pour déplacer",
+ "enableWithZoom": "Activer le clic pour déplacer / faire glisser vers le zoom"
},
"left": {
"label": "Déplacer la caméra PTZ vers la gauche"
diff --git a/web/public/locales/fr/views/settings.json b/web/public/locales/fr/views/settings.json
index 635e46fcc..c9b3ccb87 100644
--- a/web/public/locales/fr/views/settings.json
+++ b/web/public/locales/fr/views/settings.json
@@ -5,7 +5,7 @@
"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 du profil - Frigate",
+ "general": "Paramètres de l'interface - Frigate",
"masksAndZones": "Éditeur de masques et de zones - Frigate",
"object": "Débogage - Frigate",
"frigatePlus": "Paramètres Frigate+ - Frigate",
@@ -15,7 +15,8 @@
"cameraReview": "Paramètres des activités caméra - Frigate",
"globalConfig": "Configuration globale - Frigate",
"cameraConfig": "Configuration de la caméra - Frigate",
- "maintenance": "Maintenance - Frigate"
+ "maintenance": "Maintenance - Frigate",
+ "profiles": "Profils - Frigate"
},
"menu": {
"ui": "Interface utilisateur",
@@ -86,7 +87,9 @@
"cameraUi": "Interface de la caméra",
"cameraTimestampStyle": "Style d'horodatage",
"cameraMqtt": "MQTT de la caméra",
- "maintenance": "Maintenance"
+ "maintenance": "Maintenance",
+ "uiSettings": "Paramètres IU",
+ "profiles": "Profils"
},
"dialog": {
"unsavedChanges": {
@@ -99,7 +102,7 @@
"noCamera": "Aucune caméra"
},
"general": {
- "title": "Paramètres du profil",
+ "title": "Paramètres d'interface",
"liveDashboard": {
"title": "Tableau de bord en direct",
"automaticLiveView": {
@@ -222,14 +225,14 @@
"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 clean_copy soient activés dans votre configuration.",
+ "desc": "La soumission à Frigate+ nécessite que les instantanés soient activés dans votre configuration.",
"title": "Configuration des instantanés",
"table": {
"snapshots": "Instantanés",
"camera": "Caméra",
"cleanCopySnapshots": "Instantanés clean_copy"
},
- "cleanCopyWarning": "Certaines caméras ont des instantanés activés, mais la copie propre est désactivée. Vous devez activer clean_copy dans votre configuration d'instantanés pour pouvoir envoyer les images de ces caméras à Frigate+."
+ "cleanCopyWarning": "Certaines caméras ont les instantanés désactivés"
},
"modelInfo": {
"baseModel": "Modèle de base",
@@ -568,7 +571,7 @@
}
},
"restart_required": "Redémarrage requis (masques/zones changés)",
- "objectMaskLabel": "Masque d'objet {{number}} ({{label}})",
+ "objectMaskLabel": "Masque d'objet {{number}}",
"motionMaskLabel": "Masque de mouvement {{number}}"
},
"motionDetectionTuner": {
@@ -1390,5 +1393,17 @@
"label": "Nouvelle valeur",
"reset": "Réinitialiser"
}
+ },
+ "button": {
+ "overriddenBaseConfigTooltip": "Le profil {{profile}} remplace les paramètres de configuration dans cette section",
+ "overriddenGlobalTooltip": "Cette caméra remplace les paramètres de la configuration globale dans cette section",
+ "overriddenGlobal": "Remplacé (Global)",
+ "overriddenBaseConfig": "Remplacée (Configuration de base)"
+ },
+ "maintenance": {
+ "title": "Maintenance",
+ "sync": {
+ "title": "Synchronisation du Média"
+ }
}
}
diff --git a/web/public/locales/fr/views/system.json b/web/public/locales/fr/views/system.json
index 0963b0f7b..f29b87170 100644
--- a/web/public/locales/fr/views/system.json
+++ b/web/public/locales/fr/views/system.json
@@ -34,6 +34,33 @@
"fetchingLogsFailed": "Erreur lors de la récupération des logs : {{errorMessage}}",
"whileStreamingLogs": "Erreur lors de la diffusion des logs : {{errorMessage}}"
}
+ },
+ "websocket": {
+ "label": "Messages",
+ "pause": "Pause",
+ "resume": "Reprendre",
+ "clear": "Effacer",
+ "filter": {
+ "all": "Tous les sujets",
+ "topics": "Sujets",
+ "events": "Évènements",
+ "reviews": "Revues",
+ "classification": "Classification",
+ "face_recognition": "Reconnaissance Faciale",
+ "lpr": "LAPI",
+ "camera_activity": "Activités de la caméra",
+ "system": "Système",
+ "camera": "Caméra",
+ "all_cameras": "Toutes les caméras",
+ "cameras_count_one": "{{count}} Caméra",
+ "cameras_count_other": "{{count}} Caméras"
+ },
+ "empty": "Aucun message capturé jusque là",
+ "count_one": "{{count}} message",
+ "count_other": "{{count}} messages",
+ "expanded": {
+ "payload": "Charge utile"
+ }
}
},
"general": {