diff --git a/web/public/locales/fr/common.json b/web/public/locales/fr/common.json
index d49150bd9..ebec9c47f 100644
--- a/web/public/locales/fr/common.json
+++ b/web/public/locales/fr/common.json
@@ -189,7 +189,8 @@
"id": "Bahasa Indonesia (Indonésien)",
"ur": "اردو (Ourdou)",
"hr": "Hrvatski (Croate)",
- "bs": "Bosanski (Bosnien)"
+ "bs": "Bosanski (Bosnien)",
+ "zhHant": "繁體中文 (chinois traditionnel)"
},
"appearance": "Apparence",
"darkMode": {
diff --git a/web/public/locales/fr/components/dialog.json b/web/public/locales/fr/components/dialog.json
index 7e0dda6aa..4e0fa8843 100644
--- a/web/public/locales/fr/components/dialog.json
+++ b/web/public/locales/fr/components/dialog.json
@@ -36,6 +36,9 @@
"ask_an": "Cet objet est-il un(e) {{label}} ?",
"ask_a": "Cet objet est-il un(e) {{label}} ?",
"ask_full": "Cet objet est-il un(e) {{translatedLabel}} ?"
+ },
+ "toast": {
+ "error": "Impossible d'envoyer à Frigate+. Merci de vérifier votre réseau puis de réessayer."
}
}
},
@@ -68,7 +71,15 @@
},
"success": "Exportation démarrée avec succès. Consultez le fichier sur la page des exportations.",
"view": "Vue",
- "queued": "Exportation en attente. Consultez la progression sur la page des exportations."
+ "queued": "Exportation en attente. Consultez la progression sur la page des exportations.",
+ "batchSuccess_one": "Un export démarré. Ouverture du dossier en cours.",
+ "batchSuccess_many": "{{count}} exports démarrés. Ouverture du dossier en cours.",
+ "batchSuccess_other": "{{count}} exports démarrés. Ouverture du dossier en cours.",
+ "batchPartial": "{{successful}} exports ont démarré sur un total de : {{total}}. Échecs : {{failedCameras}}",
+ "batchFailed": "Échec du démarrage de {{total}} exports. Échecs : {{failedCameras}}",
+ "batchQueuedSuccess_one": "Un export rajouté au traitement. Ouverture du dossier en cours.",
+ "batchQueuedSuccess_many": "{{count}} exports rajoutés au traitement. Ouverture du dossier en cours.",
+ "batchQueuedSuccess_other": "{{count}} exports rajoutés au traitement. Ouverture du dossier en cours."
},
"select": "Sélectionner",
"name": {
@@ -107,7 +118,14 @@
"queueingButton": "Mise en file d'attente des exports...",
"exportButton_one": "Exporter {{count}} caméra",
"exportButton_many": "Exporter {{count}} caméras",
- "exportButton_other": "Exporter {{count}} caméras"
+ "exportButton_other": "Exporter {{count}} caméras",
+ "searchOrSelectGroup": "Chercher ou sélectionner un groupe de caméras...",
+ "selectAll": "Sélectionner toutes les cameras",
+ "clearSelection": "Effacer la sélection",
+ "selectWithActivity": "Caméras avec des objets suivis",
+ "selectGroup": "Sélectionner un groupe",
+ "noMatchingCameras": "Aucune caméra ne correspond à votre recherche",
+ "selectedCount": "{{selected}} / {{total}} sélectionnées"
},
"multi": {
"title_one": "Export {{count}} revue",
diff --git a/web/public/locales/fr/views/motionSearch.json b/web/public/locales/fr/views/motionSearch.json
index 5f47e9942..0c99cad0c 100644
--- a/web/public/locales/fr/views/motionSearch.json
+++ b/web/public/locales/fr/views/motionSearch.json
@@ -26,7 +26,9 @@
"points_many": "{{count}} points",
"points_other": "{{count}} points",
"undo": "Annuler le dernier point",
- "reset": "Réinitialiser le polygone"
+ "reset": "Réinitialiser le polygone",
+ "drawMode": "Dessiner",
+ "moveMode": "Déplacer"
},
"motionHeatmapLabel": "Carte thermique des mouvements",
"dialog": {
@@ -36,6 +38,14 @@
},
"timeRange": {
"title": "Plage de recherche",
- "start": "Plage de recherche"
+ "start": "Début de la plage de recherche",
+ "end": "Fin de la plage de recherche"
+ },
+ "settings": {
+ "title": "Paramètres de recherche",
+ "parallelMode": "Mode parallèle",
+ "parallelModeDesc": "Scanner plusieurs plages d'enregistrement simultanément (plus rapide ; nécessite plus de ressources de décodage)",
+ "threshold": "Seuil de sensitivité",
+ "thresholdDesc": "Des valeurs basses détectent de plus petits changements (1-255)"
}
}
diff --git a/web/public/locales/fr/views/system.json b/web/public/locales/fr/views/system.json
index 74394a324..3c4577c21 100644
--- a/web/public/locales/fr/views/system.json
+++ b/web/public/locales/fr/views/system.json
@@ -112,7 +112,7 @@
},
"gpuTemperature": "Température du GPU",
"npuTemperature": "Température du NPU",
- "gpuCompute": "Calcul / Encodage GPU"
+ "gpuCompute": "Calcul GPU / Encodage"
},
"otherProcesses": {
"title": "Autres processus",
@@ -122,7 +122,7 @@
"go2rtc": "go2rtc",
"recording": "enregistrement",
"review_segment": "Segment d'activité",
- "embeddings": "embeddings",
+ "embeddings": "intégrations",
"audio_detector": "détecteur audio"
}
}
@@ -173,7 +173,22 @@
"error": "Erreur : {{error}}",
"codec": "Codec :",
"video": "Vidéo :",
- "aspectRatio": "rapport d'aspect"
+ "aspectRatio": "rapport d'aspect",
+ "keyframes": {
+ "title": "Analyse par image clef",
+ "analyzing": "Analyse des images clefs... {{seconds}} secondes restantes",
+ "stillAnalyzing": "Analyse des images clefs toujours en cours ...",
+ "recordStream": "Flux d'enregistrement :",
+ "keyframeCount": "Images clefs observées :",
+ "observedDuration": "Durée observée :",
+ "gap": "Écart en images clefs (min / moy / max) :",
+ "segmentLength": "Durée du segment d'enregistrement :",
+ "ok": "Images clefs chaque ~{{seconds}}s, convient à l'enregistrement et au visionnement.",
+ "warning": "Images clefs fragmentées ou variables (plus grand écart d'environ {{seconds}}s), vraisemblablement un codec intelligent (H.264+/H.265+), non-recommendé.",
+ "error": "L'écart en images clefs (~{{seconds}}) dépasse la longueur du segment d'enregistrement ({{segmentTime}}). Certains segments n'ont peut-être pas de clef, ce qui corrompt la lecture. Désactiver le codec intelligent/+ sur la caméra ou raccourcir son intervalle en images clefs.",
+ "unknown": "Impossible de déterminer l'espacement en images clefs.",
+ "recordDisabled": "L'enregistrement est désactivé pour cette caméra."
+ }
},
"framesAndDetections": "Images / Détections",
"label": {
@@ -196,7 +211,7 @@
"overview": "Vue d'ensemble",
"toast": {
"success": {
- "copyToClipboard": "Données de la sonde copiées dans le presse-papiers"
+ "copyToClipboard": "Données de la sonde copiées dans le presse-papiers."
},
"error": {
"unableToProbeCamera": "Impossible d'interroger la caméra : {{errorMessage}}"
@@ -212,6 +227,9 @@
"expectedFps": "IPS attendues",
"reconnectsLastHour": "Reconnexions (dernière heure)",
"stallsLastHour": "Baisses de qualité (dernière heure)"
+ },
+ "noCameras": {
+ "title": "Aucune caméra trouvée"
}
},
"lastRefreshed": "Dernier rafraichissement : ",