clean_copy estiguin habilitades a la configuració.",
- "cleanCopyWarning": "Algunes càmeres tenen les captures d'imatge activades però la còpia neta desactivada. Cal habilitar clean_copy a la configuració de captures per poder enviar imatges d’aquestes càmeres a Frigate+."
+ "desc": "Per a enviar a Frigate+ fa falta que la instantània estigui habilitada a la configuració.",
+ "cleanCopyWarning": "Algunes càmeres tenen la captura desactivada"
},
"modelInfo": {
"baseModel": "Model base",
@@ -1317,6 +1339,14 @@
"confirmButton": "Suprimeix permanentment",
"success": "La càmera {{cameraName}} s'ha suprimit correctament",
"error": "No s'ha pogut suprimir la càmera {{cameraName}}"
+ },
+ "profiles": {
+ "title": "Sobreescriu la càmera de perfil",
+ "selectLabel": "Seleccioneu el perfil",
+ "description": "Configura quines càmeres estan habilitades o desactivades quan s'activa un perfil. Les càmeres establertes a «Inherit» mantenen el seu estat base habilitat.",
+ "inherit": "Hereta",
+ "enabled": "Habilitat",
+ "disabled": "Desactivat"
}
},
"cameraReview": {
@@ -1371,6 +1401,9 @@
"value": {
"label": "Valor nou",
"reset": "Restableix"
+ },
+ "profile": {
+ "label": "Perfil"
}
},
"detectionModel": {
@@ -1427,7 +1460,9 @@
"review_thumbnails": "Revisa les miniatures",
"previews": "Previsualitzacions",
"exports": "Exporta",
- "recordings": "Enregistraments"
+ "recordings": "Enregistraments",
+ "verbose": "Verbose",
+ "verboseDesc": "Escriu una llista completa de fitxers orfes al disc per revisar-los."
},
"regionGrid": {
"title": "Quadrícula de la regió",
@@ -1447,7 +1482,8 @@
},
"camera": {
"title": "Configuració de la càmera",
- "description": "Aquests paràmetres només s'apliquen a aquesta càmera i substitueixen els paràmetres globals."
+ "description": "Aquests paràmetres només s'apliquen a aquesta càmera i substitueixen els paràmetres globals.",
+ "noCameras": "No hi ha càmeres disponibles"
},
"advancedSettingsCount": "Configuració avançada ({{count}})",
"advancedCount": "Avançat ({{count}})",
@@ -1478,7 +1514,35 @@
"manual": "Arguments manuals",
"inherit": "Hereta de la configuració de la càmera",
"selectPreset": "Selecció de valors predefinits",
- "manualPlaceholder": "ntroduïu els arguments FFmpeg"
+ "manualPlaceholder": "ntroduïu els arguments FFmpeg",
+ "none": "Cap",
+ "useGlobalSetting": "Hereta de l'entorn global",
+ "presetLabels": {
+ "preset-rpi-64-h264": "Raspberry Pi (H.264)",
+ "preset-rpi-64-h265": "Raspberry Pi (H.265)",
+ "preset-vaapi": "VAAPI (Intel/AMD GPU)",
+ "preset-intel-qsv-h264": "Intel QuickSync (H.264)",
+ "preset-intel-qsv-h265": "Intel QuickSync (H.265)",
+ "preset-nvidia": "NVIDIA GPU",
+ "preset-jetson-h264": "NVIDIA Jetson (H.264)",
+ "preset-jetson-h265": "NVIDIA Jetson (H.265)",
+ "preset-rkmpp": "Rockchip RKMPP",
+ "preset-http-jpeg-generic": "JPEG HTTP (Genèric)",
+ "preset-http-mjpeg-generic": "HTTP MJPEG (Generic)",
+ "preset-http-reolink": "HTTP - Reolink càmeres",
+ "preset-rtmp-generic": "RTMP (Generic)",
+ "preset-rtsp-generic": "RTSP (Generic)",
+ "preset-rtsp-restream": "RTSP - Restream de go2rtc",
+ "preset-rtsp-restream-low-latency": "RTSP - Restream de go2rtc (Latència baixa)",
+ "preset-rtsp-udp": "RTSP - UDP",
+ "preset-rtsp-blue-iris": "RTSP - Blue Iris",
+ "preset-record-generic": "Enregistra (Genèric, sense àudio)",
+ "preset-record-generic-audio-copy": "Enregistra (Genèric + Copia l'àudio)",
+ "preset-record-generic-audio-aac": "Enregistra (Genèric + Àudio a AAC)",
+ "preset-record-mjpeg": "Registre - Càmeres MJPEG",
+ "preset-record-jpeg": "Registre - Càmeres JPEG",
+ "preset-record-ubiquiti": "Registre - Càmeres Ubiquiti"
+ }
},
"cameraInputs": {
"itemTitle": "Flux {{index}}"
@@ -1510,7 +1574,8 @@
"genai": "GenAI",
"face_recognition": "Reconeixement de cares",
"lpr": "Reconeixement de matrícules",
- "birdseye": "Birdseye"
+ "birdseye": "Birdseye",
+ "masksAndZones": "Màscares / Zones"
},
"detect": {
"title": "Configuració de detecció"
@@ -1522,7 +1587,8 @@
"keyDuplicate": "El nom del detector ja existeix.",
"noSchema": "No hi ha esquemes de detector disponibles.",
"none": "No s'ha configurat cap instància de detector.",
- "add": "Afegeix un detector"
+ "add": "Afegeix un detector",
+ "addCustomKey": "Afegeix una clau personalitzada"
},
"record": {
"title": "Configuració de l'enregistrament"
@@ -1575,7 +1641,25 @@
"timestamp_style": {
"title": "Configuració de la marca horària"
},
- "searchPlaceholder": "Cerca..."
+ "searchPlaceholder": "Cerca...",
+ "genaiRoles": {
+ "options": {
+ "embeddings": "Incrustació",
+ "vision": "Visió",
+ "tools": "Eines"
+ }
+ },
+ "semanticSearchModel": {
+ "placeholder": "Selecciona el model…",
+ "builtIn": "Models integrats",
+ "genaiProviders": "Proveïdors de GenAI"
+ },
+ "reviewLabels": {
+ "summary": "{{count}} etiquetes seleccionades",
+ "empty": "No hi ha etiquetes disponibles",
+ "allNonAlertDetections": "Totes les activitats no alertes s'inclouran com a deteccions."
+ },
+ "addCustomLabel": "Afegeix una etiqueta personalitzada..."
},
"globalConfig": {
"title": "Configuració global",
@@ -1615,5 +1699,143 @@
"unsavedChanges": "Teniu canvis sense desar",
"confirmReset": "Confirma el restabliment",
"resetToDefaultDescription": "Això restablirà tots els paràmetres d'aquesta secció als seus valors predeterminats. Aquesta acció no es pot desfer.",
- "resetToGlobalDescription": "Això restablirà la configuració d'aquesta secció als valors predeterminats globals. Aquesta acció no es pot desfer."
+ "resetToGlobalDescription": "Això restablirà la configuració d'aquesta secció als valors predeterminats globals. Aquesta acció no es pot desfer.",
+ "button": {
+ "overriddenGlobal": "Sobreescrit (Global)",
+ "overriddenGlobalTooltip": "Aquesta càmera anul·la la configuració global d'aquesta secció",
+ "overriddenBaseConfig": "Sobreescrit (Configuració base)",
+ "overriddenBaseConfigTooltip": "El perfil {{profile}} substitueix la configuració d'aquesta secció"
+ },
+ "profiles": {
+ "title": "Perfils",
+ "activeProfile": "Perfil actiu",
+ "noActiveProfile": "No hi ha un perfil actiu",
+ "active": "Actiu",
+ "activated": "S'ha activat el perfil '{{profile}}'",
+ "activateFailed": "No s'ha pogut establir el perfil",
+ "deactivated": "Perfil desactivat",
+ "noProfiles": "No s'ha definit cap perfil.",
+ "noOverrides": "No hi ha excepcions",
+ "cameraCount_one": "{{count}} càmera",
+ "cameraCount_many": "{{count}} càmeres",
+ "cameraCount_other": "{{count}} càmeres",
+ "baseConfig": "Configuració base",
+ "addProfile": "Afegeix un perfil",
+ "newProfile": "Perfil nou",
+ "profileNamePlaceholder": "p. ex., Armat, lluny, mode nocturn",
+ "friendlyNameLabel": "Nom del perfil",
+ "profileIdLabel": "ID del perfil",
+ "profileIdDescription": "Identificador intern utilitzat en la configuració i les automatitzacions",
+ "nameInvalid": "Només es permeten lletres en minúscula, números i guions baixos",
+ "nameDuplicate": "Ja existeix un perfil amb aquest nom",
+ "error": {
+ "mustBeAtLeastTwoCharacters": "Ha de tenir com a mínim 2 caràcters",
+ "mustNotContainPeriod": "No ha de contenir períodes",
+ "alreadyExists": "Ja existeix un perfil amb aquest ID"
+ },
+ "renameProfile": "Canvia el nom del perfil",
+ "renameSuccess": "Perfil reanomenat a '{{profile}}'",
+ "deleteProfile": "Suprimeix el perfil",
+ "deleteProfileConfirm": "Voleu suprimir el perfil \"{{profile}}\" de totes les càmeres? Això no es pot desfer.",
+ "deleteSuccess": "S'ha suprimit el perfil '{{profile}}'",
+ "createSuccess": "S'ha creat el perfil '{{profile}}'",
+ "removeOverride": "Elimina la sobreescriptura del perfil",
+ "deleteSection": "Suprimeix les excepcions de secció",
+ "deleteSectionConfirm": "Voleu eliminar les sobreescriptures de {{section}} del perfil {{profile}} a {{camera}}?",
+ "deleteSectionSuccess": "S'han suprimit {{section}} sobreescrits per {{profile}}",
+ "enableSwitch": "Habilita els perfils",
+ "enabledDescription": "Els perfils estan habilitats. Creeu un perfil nou a continuació, navegueu a una secció de configuració de la càmera per fer els vostres canvis i deseu perquè els canvis tinguin efecte.",
+ "disabledDescription": "Els perfils permeten definir conjunts de configuracions de càmera amb nom (p. ex., armats, fora, nit) que es poden activar sota demanda.",
+ "columnCamera": "Càmara",
+ "columnOverrides": "Sobreescriu el perfil"
+ },
+ "go2rtcStreams": {
+ "title": "go2rtc Corrents",
+ "description": "Gestiona les configuracions de flux go2rtc per al restreaming de la càmera. Cada flux té un nom i un o més URL d'origen.",
+ "addStream": "Afegeix un flux",
+ "addStreamDesc": "Introduïu un nom per al flux nou. Aquest nom s'utilitzarà per a fer referència al flux en la configuració de la càmera.",
+ "addUrl": "Afegeix un URL",
+ "streamName": "Nom del flux",
+ "streamNamePlaceholder": "p. ex., porta d'entrada",
+ "streamUrlPlaceholder": "e.g., rtsp://usuari:contrasenya@192.168.1.100/flux",
+ "deleteStream": "Suprimeix el flux",
+ "deleteStreamConfirm": "Segur que voleu suprimir el flux \"{{streamName}}\"? Les càmeres que fan referència a aquest flux poden deixar de funcionar.",
+ "noStreams": "No s'ha configurat cap flux go2rtc. Afegeix un flux per començar.",
+ "validation": {
+ "nameRequired": "Es requereix el nom del flux",
+ "nameDuplicate": "Ja existeix un flux amb aquest nom",
+ "nameInvalid": "El nom del flux només pot contenir lletres, números, guions baixos i guions",
+ "urlRequired": "Es requereix com a mínim un URL"
+ },
+ "renameStream": "Canvia el nom del flux",
+ "renameStreamDesc": "Introduïu un nom nou per a aquest flux. El canvi de nom d'un flux pot trencar les càmeres o altres fluxos que el fan referència pel seu nom.",
+ "newStreamName": "Nom de flux nou",
+ "ffmpeg": {
+ "useFfmpegModule": "Usa el mode de compatibilitat (ffmpeg)",
+ "video": "Vídeo",
+ "audio": "Àudio",
+ "hardware": "Acceleració del maquinari",
+ "videoCopy": "Copia",
+ "videoH264": "Transcodifica a H.264",
+ "videoH265": "Transcodifica a H.265",
+ "videoExclude": "Exclou",
+ "audioCopy": "Copia",
+ "audioAac": "Transcodifica a l'AAC",
+ "audioOpus": "Transcodifica a Opus",
+ "audioPcmu": "Transcodifica a PCM μ-law",
+ "audioPcma": "Transcodifica a PCM A-law",
+ "audioPcm": "Transcodifica a PCM",
+ "audioMp3": "Transcodifica a MP3",
+ "audioExclude": "Exclou",
+ "hardwareNone": "Sense acceleració de hardware",
+ "hardwareAuto": "Acceleració de hardware automàtica"
+ }
+ },
+ "timestampPosition": {
+ "tl": "A dalt a l'esquerra",
+ "tr": "A dalt a la dreta",
+ "bl": "Baix a l'esquerra",
+ "br": "A baix a la dreta"
+ },
+ "onvif": {
+ "profileAuto": "Automàtic",
+ "profileLoading": "S'estan carregant perfils..."
+ },
+ "configMessages": {
+ "review": {
+ "recordDisabled": "L'enregistrament està desactivat, els elements de revisió no es generaran.",
+ "detectDisabled": "La detecció d'objectes està desactivada. Els elements de revisió requereixen objectes detectats per categoritzar alertes i deteccions.",
+ "allNonAlertDetections": "Totes les activitats no alertes s'inclouran com a deteccions."
+ },
+ "audio": {
+ "noAudioRole": "Cap flux té definit el rol d'àudio. Heu d'habilitar el rol d'àudio per a la detecció d'àudio perquè funcioni."
+ },
+ "audioTranscription": {
+ "audioDetectionDisabled": "La detecció d'àudio no està activada per a aquesta càmera. La transcripció d'àudio requereix que la detecció d'àudio estigui activa."
+ },
+ "detect": {
+ "fpsGreaterThanFive": "No es recomana establir el detect FPS superior a 5."
+ },
+ "faceRecognition": {
+ "globalDisabled": "El reconeixement de cares no està habilitat a nivell global. Habilita-ho en la configuració global per al reconeixement facial a nivell de càmera per funcionar.",
+ "personNotTracked": "El reconeixement de cares requereix que l'objecte 'persona' sigui rastrejat. Assegureu-vos que «persona» estigui a la llista de seguiment d'objectes."
+ },
+ "lpr": {
+ "globalDisabled": "El reconeixement de la matrícula no està habilitat a nivell global. Habilita-ho en la configuració global per al funcionament de LPR a nivell de càmera.",
+ "vehicleNotTracked": "El reconeixement de la matrícula requereix que es faci un seguiment del 'cotxe' o de la 'motocicleta'."
+ },
+ "record": {
+ "noRecordRole": "Cap flux té el rol de registre definit. L'enregistrament no funcionarà."
+ },
+ "birdseye": {
+ "objectsModeDetectDisabled": "Birdseye està configurat en mode 'objectes', però la detecció d'objectes està desactivada per a aquesta càmera. La càmera no apareixerà a Birdseye."
+ },
+ "snapshots": {
+ "detectDisabled": "La detecció d'objectes està desactivada. Les instantànies es generen a partir d'objectes rastrejats i no es crearan."
+ },
+ "detectors": {
+ "mixedTypes": "Tots els detectors han d'utilitzar el mateix tipus. Elimina els detectors existents per utilitzar un tipus diferent.",
+ "mixedTypesSuggestion": "Tots els detectors han d'utilitzar el mateix tipus. Suprimiu detectors existents o seleccioneu {{type}}."
+ }
+ }
}
diff --git a/web/public/locales/ca/views/system.json b/web/public/locales/ca/views/system.json
index 933eff0b3..22ecd1fa8 100644
--- a/web/public/locales/ca/views/system.json
+++ b/web/public/locales/ca/views/system.json
@@ -59,7 +59,9 @@
"count": "{{count}} missatges",
"expanded": {
"payload": "Payload"
- }
+ },
+ "count_one": "{{count}} missatge",
+ "count_other": "{{count}} missatges"
}
},
"general": {
@@ -110,7 +112,8 @@
"description": "Aquest és un error conegut en les eines d'informació de les estadístiques de GPU d'Intel (intel.gpu.top) on es trencarà i retornarà repetidament un ús de GPU del 0% fins i tot en els casos en què l'acceleració del maquinari i la detecció d'objectes s'executen correctament a la (i)GPU. Això no és un error de Frigate. Podeu reiniciar l'amfitrió per a corregir temporalment el problema i confirmar que la GPU funciona correctament. Això no afecta el rendiment."
},
"gpuTemperature": "Temperatura de la GPU",
- "npuTemperature": "Temperatura NPU"
+ "npuTemperature": "Temperatura NPU",
+ "gpuCompute": "Càlcul / Codificació per GPU"
},
"otherProcesses": {
"title": "Altres processos",
@@ -170,7 +173,8 @@
"cameraFramesPerSecond": "{{camName}} fotogrames per segon",
"cameraDetectionsPerSecond": "{{camName}} deteccions per segon",
"overallSkippedDetectionsPerSecond": "Nombre total de deteccions descartades per segon",
- "cameraSkippedDetectionsPerSecond": "Nombre de deteccions descartades per segon a {{camName}}"
+ "cameraSkippedDetectionsPerSecond": "Nombre de deteccions descartades per segon a {{camName}}",
+ "cameraGpu": "{{camName}} GPU"
},
"info": {
"codec": "Còdec:",
diff --git a/web/public/locales/cs/views/classificationModel.json b/web/public/locales/cs/views/classificationModel.json
index 910f0cdaf..e770a1bb3 100644
--- a/web/public/locales/cs/views/classificationModel.json
+++ b/web/public/locales/cs/views/classificationModel.json
@@ -23,11 +23,15 @@
},
"toast": {
"success": {
- "deletedImage": "Smazat obrázky",
+ "deletedImage_one": "Smazat obrázky",
+ "deletedImage_few": "",
+ "deletedImage_other": "",
"deletedModel_one": "Úspěšně odstraněný {{count}} model",
"deletedModel_few": "Úspěšně odstraněné {{count}} modely",
"deletedModel_other": "Úspěšně odstraněných {{count}} modelů",
- "deletedCategory": "Smazat třídu",
+ "deletedCategory_one": "Smazat třídu",
+ "deletedCategory_few": "",
+ "deletedCategory_other": "",
"categorizedImage": "Obrázek úspěšně klasifikován",
"trainedModel": "Úspěšně vytrénovaný model.",
"trainingModel": "Trénování modelu bylo úspěšně zahájeno.",
diff --git a/web/public/locales/da/views/classificationModel.json b/web/public/locales/da/views/classificationModel.json
index 3193dbb59..25d1704fc 100644
--- a/web/public/locales/da/views/classificationModel.json
+++ b/web/public/locales/da/views/classificationModel.json
@@ -26,8 +26,10 @@
},
"toast": {
"success": {
- "deletedCategory": "Slettet kategori",
- "deletedImage": "Slettede billeder",
+ "deletedCategory_one": "Slettet kategori",
+ "deletedCategory_other": "",
+ "deletedImage_one": "Slettede billeder",
+ "deletedImage_other": "",
"deletedModel_one": "{{count}} model er nu slettet",
"deletedModel_other": "{{count}} modeller er nu slettet",
"categorizedImage": "Billedet er nu kategoriseret",
diff --git a/web/public/locales/de/common.json b/web/public/locales/de/common.json
index be5132067..8924da381 100644
--- a/web/public/locales/de/common.json
+++ b/web/public/locales/de/common.json
@@ -134,7 +134,8 @@
"resetToDefault": "Auf Werkseinstellungen zurücksetzten",
"saveAll": "Alle speichern",
"savingAll": "Alle werden gespeichert…",
- "undoAll": "Alle rückgängig"
+ "undoAll": "Alle rückgängig",
+ "retry": "Wiederholen"
},
"label": {
"back": "Zurück",
@@ -248,7 +249,8 @@
"export": "Exportieren",
"classification": "Klassifizierung",
"actions": "Aktion",
- "chat": "Chat"
+ "chat": "Chat",
+ "profiles": "Profile"
},
"unit": {
"speed": {
@@ -275,7 +277,8 @@
"title": "Speichern der Konfigurationsänderungen gescheitert: {{errorMessage}}",
"noMessage": "Speichern der Konfigurationsänderungen gescheitert"
},
- "title": "Speichern"
+ "title": "Speichern",
+ "success": "Die Konfigurationsänderungen wurden erfolgreich gespeichert."
}
},
"role": {
@@ -319,5 +322,7 @@
"two": "{{0}} und {{1}}",
"many": "{{items}}, und {{last}}",
"separatorWithSpace": ", "
- }
+ },
+ "no_items": "Keine Artikel",
+ "validation_errors": "Validierungsfehler"
}
diff --git a/web/public/locales/de/components/camera.json b/web/public/locales/de/components/camera.json
index 32874bab6..e9f39cb8e 100644
--- a/web/public/locales/de/components/camera.json
+++ b/web/public/locales/de/components/camera.json
@@ -82,6 +82,7 @@
"mask": "Maske",
"motion": "Bewegung",
"regions": "Regionen",
- "boundingBox": "Begrenzungsrechteck"
+ "boundingBox": "Begrenzungsrechteck",
+ "paths": "Pfad"
}
}
diff --git a/web/public/locales/de/config/cameras.json b/web/public/locales/de/config/cameras.json
index cbd5bca5c..9a0ab8b17 100644
--- a/web/public/locales/de/config/cameras.json
+++ b/web/public/locales/de/config/cameras.json
@@ -79,8 +79,8 @@
"label": "Objekterkennung",
"description": "Einstellungen für die Erkennungs-/Detektionsrolle, die zum Ausführen der Objekterkennung und zum Initialisieren von Trackern verwendet wird.",
"enabled": {
- "label": "Erkennung aktiviert",
- "description": "Aktivieren oder deaktivieren Sie die Objekterkennung für diese Kamera. Die Erkennung muss aktiviert sein, damit die Objektverfolgung ausgeführt werden kann."
+ "label": "Objekterkennung aktiviert",
+ "description": "Aktivieren oder deaktivieren Sie die Objekterkennung für diese Kamera."
},
"height": {
"label": "Höhe erkennen",
@@ -140,6 +140,31 @@
"enabled": {
"label": "Bild senden",
"description": "Aktivieren Sie für diese Kamera die Veröffentlichung von Bild-Snapshots für Objekte in MQTT-Themen."
+ },
+ "description": "Einstellungen für die Veröffentlichung von Bildern über MQTT.",
+ "timestamp": {
+ "label": "Zeitstempel hinzufügen",
+ "description": "Füge einen Zeitstempel auf Bilder ein, die über MQTT veröffentlicht werden."
+ },
+ "bounding_box": {
+ "label": "Begrenzungsrahmen hinzufügen",
+ "description": "Zeichne Begrenzungsrahmen auf Bilder, die über MQTT veröffentlicht werden."
+ },
+ "crop": {
+ "label": "Bild zuschneiden",
+ "description": "Bilder, die über MQTT veröffentlicht werden, werden auf die Begrenzungsrahmen der erkannten Objekte zugeschnitten."
+ },
+ "height": {
+ "label": "Bildhöhe",
+ "description": "Höhe (in Pixeln) zur Größenanpassung von über MQTT veröffentlichten Bildern."
+ },
+ "required_zones": {
+ "label": "Erforderliche Zonen",
+ "description": "Zonen, die ein Objekt betreten muss, damit ein MQTT-Bild veröffentlicht wird."
+ },
+ "quality": {
+ "label": "JPEG-Qualität",
+ "description": "JPEG-Qualität für über MQTT veröffentlichte Bilder (0–100)."
}
},
"face_recognition": {
@@ -157,7 +182,8 @@
"notifications": {
"label": "Benachrichtigung",
"enabled": {
- "label": "Benachrichtigungen aktivieren"
+ "label": "Benachrichtigungen aktivieren",
+ "description": "Benachrichtigungen für diese Kamera aktivieren oder deaktivieren."
},
"email": {
"label": "Benachrichtigungs-E-Mail",
@@ -170,7 +196,8 @@
"enabled_in_config": {
"label": "Ursprüngliche Meldungen geben an",
"description": "Gibt an, ob Benachrichtigungen in der ursprünglichen statischen Konfiguration aktiviert waren."
- }
+ },
+ "description": "Einstellungen zum Aktivieren und Verwalten von Benachrichtigungen für diese Kamera."
},
"ffmpeg": {
"label": "FFmpeg",
@@ -293,7 +320,7 @@
},
"skip_motion_threshold": {
"label": "Schwellenwert für Bewegungsüberspringen",
- "description": "Wenn sich mehr als dieser Anteil des Bildes in einem einzelnen Frame ändert, gibt der Detektor keine Bewegungsfelder zurück und kalibriert sich sofort neu. Dies kann CPU-Leistung sparen und Fehlalarme bei Blitzschlag, Gewittern usw. reduzieren, aber auch echte Ereignisse übersehen, wie z. B. eine PTZ-Kamera, die ein Objekt automatisch verfolgt. Der Kompromiss besteht darin, entweder einige Megabyte an Aufzeichnungen zu verlieren oder ein paar kurze Clips zu überprüfen. Bereich 0,0 bis 1,0."
+ "description": "Wenn sich mehr als dieser Anteil des Bildes in einem einzelnen Frame ändert, gibt der Detektor keine Bewegungsfelder zurück und kalibriert sich sofort neu. Dies kann CPU-Leistung sparen und Fehlalarme bei Blitzschlag, Gewittern usw. reduzieren, aber auch echte Ereignisse übersehen, wie z. B. eine PTZ-Kamera, die ein Objekt automatisch verfolgt. Der Kompromiss besteht darin, entweder einige Megabyte an Aufzeichnungen zu verlieren oder ein paar kurze Clips zu überprüfen. Leer lassen um diese Funktion zu deaktivieren."
},
"improve_contrast": {
"label": "Kontrast verbessern",
@@ -554,7 +581,7 @@
},
"detections": {
"label": "Konfiguration der Erkennungen",
- "description": "Einstellungen zum Erstellen von Erkennungsereignissen (ohne Alarm) und zur Festlegung ihrer Aufbewahrungsdauer.",
+ "description": "Einstellungen, die festlegen, bei welchen verfolgten Objekten Erkennungen (ohne Alarm) generiert werden und wie lange diese Erkennungen gespeichert bleiben.",
"enabled": {
"label": "Erkennung aktivieren",
"description": "Erkennungsereignisse für diese Kamera aktivieren oder deaktivieren."
@@ -620,11 +647,77 @@
"onvif": {
"autotracking": {
"required_zones": {
- "label": "Erforderliche Zonen"
+ "label": "Erforderliche Zonen",
+ "description": "Objekte müssen in eine dieser Zonen eintreten, bevor die automatische Verfolgung beginnt."
},
"movement_weights": {
- "description": "Diese Kalibrierungswerte werden automatisch durch die Kamerakalibrierung generiert. Bitte nicht manuell ändern."
+ "description": "Diese Kalibrierungswerte werden automatisch durch die Kamerakalibrierung generiert. Bitte nicht manuell ändern.",
+ "label": "Bewegungsgewichte"
+ },
+ "label": "Automatische Verfolgung",
+ "description": "Bewegliche Objekte automatisch verfolgen und sie mithilfe von PTZ-Kamerabewegungen im Bildausschnitt zentriert halten.",
+ "enabled": {
+ "label": "Automatische Verfolgung aktivieren",
+ "description": "Aktivieren oder deaktivieren Sie die automatische PTZ-Kamera-Verfolgung erkannter Objekte."
+ },
+ "calibrate_on_startup": {
+ "label": "Beim Start kalibrieren",
+ "description": "Messen Sie die Drehzahlen der PTZ-Motoren beim Start, um die Nachführgenauigkeit zu verbessern. Frigate aktualisiert die Konfiguration nach der Kalibrierung mit den Bewegungsgewichten."
+ },
+ "zooming": {
+ "label": "Zoom-Modus",
+ "description": "Zoomverhalten steuern: deaktiviert (nur Schwenken/Neigen), absolut (am besten kompatibel) oder relativ (gleichzeitiges Schwenken/Neigen/Zoomen)."
+ },
+ "zoom_factor": {
+ "label": "Zoomfaktor",
+ "description": "Steuert den Zoomfaktor bei verfolgten Objekten. Bei niedrigeren Werten bleibt mehr von der Szene im Bild; bei höheren Werten wird näher herangezoomt, wobei jedoch die Verfolgung verloren gehen kann. Werte zwischen 0,1 und 0,75."
+ },
+ "track": {
+ "label": "Verfolgte Objekte",
+ "description": "Liste der Objekttypen, die das automatische Tracking auslösen sollen."
+ },
+ "return_preset": {
+ "label": "Voreinstellung setzen",
+ "description": "Der in der Kamera-Firmware konfigurierte ONVIF-Voreinstellungsname, zu dem nach Beendigung der Verfolgung zurückgekehrt werden soll."
+ },
+ "timeout": {
+ "label": "Zeitüberschreitung bei der Rückgabe",
+ "description": "Warte nach dem Verlust der Verfolgung so viele Sekunden, bevor die Kamera in die voreingestellte Position zurückkehrt."
+ },
+ "enabled_in_config": {
+ "label": "Ursprünglicher Autotrack-Status",
+ "description": "Internes Feld zur Erfassung, ob die automatische Nachführung in der Konfiguration aktiviert wurde."
}
+ },
+ "label": "ONVIF",
+ "description": "ONVIF-Verbindung und Einstellungen für die automatische PTZ-Verfolgung dieser Kamera.",
+ "host": {
+ "label": "ONVIF Host",
+ "description": "Host (und optional Schema) für den ONVIF-Dienst dieser Kamera."
+ },
+ "port": {
+ "label": "ONVIF Port",
+ "description": "Portnummer für den ONVIF-Dienst."
+ },
+ "user": {
+ "label": "ONVIF-Benutzername",
+ "description": "Benutzername für die ONVIF-Authentifizierung; bei einigen Geräten ist für ONVIF ein Admin-Benutzer erforderlich."
+ },
+ "password": {
+ "label": "ONVIF-Passwort",
+ "description": "Passwort für die ONVIF-Authentifizierung."
+ },
+ "tls_insecure": {
+ "label": "TLS-Überprüfung deaktivieren",
+ "description": "TLS-Überprüfung überspringen und Digest-Authentifizierung für ONVIF deaktivieren (unsicher; nur in sicheren Netzwerken verwenden)."
+ },
+ "ignore_time_mismatch": {
+ "label": "Zeitabweichung ignorieren",
+ "description": "Ignoriere Zeitunterschiede zwischen Kamera und Frigate-Server bei der ONVIF-Kommunikation."
+ },
+ "profile": {
+ "label": "ONVIF Profile",
+ "description": "Spezifisches ONVIF-Medienprofil für die PTZ-Steuerung, das anhand eines Tokens oder Namens ausgewählt wird. Ist kein Profil festgelegt, wird automatisch das erste Profil mit gültiger PTZ-Konfiguration ausgewählt."
}
},
"semantic_search": {
@@ -660,13 +753,22 @@
}
},
"ui": {
- "label": "Kamera UI"
+ "label": "Kamera UI",
+ "description": "Legen Sie die Reihenfolge und Sichtbarkeit dieser Kamera in der Benutzeroberfläche fest. Die Reihenfolge wirkt sich auf das Standard-Dashboard aus. Für eine detailliertere Steuerung verwenden Sie Kameragruppen.",
+ "order": {
+ "label": "UI Reihenfolge",
+ "description": "Numerische Reihenfolge, nach der die Kamera in der Benutzeroberfläche sortiert wird (Standard-Dashboard und Listen); höhere Zahlen erscheinen später."
+ },
+ "dashboard": {
+ "label": "In der Benutzeroberfläche anzeigen",
+ "description": "Schalte ein, ob diese Kamera überall in der Benutzeroberfläche von „Frigate“ sichtbar ist. Wenn du diese Option deaktivierst, musst du die Konfiguration manuell bearbeiten, um diese Kamera wieder in der Benutzeroberfläche anzuzeigen."
+ }
},
"snapshots": {
"label": "Schnappschüsse",
- "description": "Einstellungen für gespeicherte JPEG-Schnappschüsse von verfolgten Objekten für diese Kamera.",
+ "description": "Einstellungen für API-generierte Momentaufnahmen der erfassten Objekte für diese Kamera.",
"enabled": {
- "label": "Schnappschüsse aktiviert",
+ "label": "Schnappschüsse aktivieren",
"description": "Das Speichern von Momentaufnahmen für diese Kamera aktivieren oder deaktivieren."
},
"clean_copy": {
@@ -675,11 +777,173 @@
},
"timestamp": {
"label": "Zeitstempel-Einblendung",
- "description": "Füge den gespeicherten Momentaufnahmen einen Zeitstempel hinzu."
+ "description": "Füge einen Zeitstempel auf die von der API abgerufenen Momentaufnahmen ein."
},
"bounding_box": {
"label": "Einblendung der Begrenzungsrahmen",
- "description": "Zeichne Begrenzungsrahmen für verfolgte Objekte auf gespeicherten Momentaufnahmen."
+ "description": "Zeichne Begrenzungsrahmen für verfolgte Objekte auf Momentaufnahmen aus der API."
+ },
+ "crop": {
+ "label": "Ertragsübersicht",
+ "description": "Schnappschüsse aus der API auf die Begrenzungsrahmen der erkannten Objekte zuschneiden."
+ },
+ "required_zones": {
+ "label": "Erforderliche Zonen",
+ "description": "Bereiche, die ein Objekt betreten muss, damit ein Schnappschuss gespeichert wird."
+ },
+ "height": {
+ "label": "Höhe der Momentaufnahme",
+ "description": "Höhe (Pixel), auf die Schnappschüsse über die API skaliert werden sollen; leer lassen, um die Originalgröße beizubehalten."
+ },
+ "retain": {
+ "label": "Aufbewahrungsdauer von Snapshots",
+ "description": "Aufbewahrungseinstellungen für Snapshots, einschließlich Standarddauer in Tagen und objektspezifischer Überschreibungen.",
+ "default": {
+ "label": "Standard-Aufbewahrungsfrist",
+ "description": "Standardmäßige Anzahl von Tagen, für die Snapshots aufbewahrt werden."
+ },
+ "mode": {
+ "label": "Speichermodus",
+ "description": "Speichermodus: „all“ (alle Segmente speichern), „motion“ (Segmente mit Bewegung speichern) oder „active_objects“ (Segmente mit aktiven Objekten speichern)."
+ },
+ "objects": {
+ "label": "Objektaufbewahrung",
+ "description": "Objektbezogene Überschreibungen für die Aufbewahrungsdauer von Snapshots."
+ }
+ },
+ "quality": {
+ "label": "Qualität der Momentaufnahme",
+ "description": "Codierungsqualität für gespeicherte Momentaufnahmen (0–100)."
}
+ },
+ "timestamp_style": {
+ "label": "Format für Zeitstempel",
+ "description": "Gestaltungsmöglichkeiten für Zeitstempel im Feed, die auf Aufzeichnungen und Momentaufnahmen angewendet werden.",
+ "position": {
+ "label": "Position des Zeitstempels",
+ "description": "Position des Zeitstempels auf dem Bild (tl/tr/bl/br)."
+ },
+ "format": {
+ "label": "Zeitstempelformat",
+ "description": "Datums- und Uhrzeitformatzeichenfolge für Zeitstempel (Python-Datums- und Uhrzeitformatcodes)."
+ },
+ "color": {
+ "label": "Farbe des Zeitstempels",
+ "description": "RGB-Farbwerte für den Zeitstempeltext (alle Werte zwischen 0 und 255).",
+ "red": {
+ "label": "Rot",
+ "description": "Rotwert (0–255) für die Farbe des Zeitstempels."
+ },
+ "green": {
+ "label": "Grün",
+ "description": "Grünanteil (0–255) für die Farbe des Zeitstempels."
+ },
+ "blue": {
+ "label": "Blau",
+ "description": "Blauer Farbanteil (0–255) für die Farbe des Zeitstempels."
+ }
+ },
+ "thickness": {
+ "label": "Stärke der Zeitmarke",
+ "description": "Linienstärke des Zeitstempeltextes."
+ },
+ "effect": {
+ "label": "Zeitstempeleffekt",
+ "description": "Visuelle Darstellung des Zeitstempeltextes (keine, durchgehend, Schatten)."
+ }
+ },
+ "best_image_timeout": {
+ "label": "Optimale Zeitüberschreitung für Bilder",
+ "description": "Wie lange soll man auf das Bild mit dem höchsten Konfidenzwert warten?"
+ },
+ "type": {
+ "label": "Kameratyp",
+ "description": "Kameratyp"
+ },
+ "webui_url": {
+ "label": "URL der Kamera",
+ "description": "URL, um die Kamera direkt von der Systemseite aus aufzurufen"
+ },
+ "profiles": {
+ "label": "Profile",
+ "description": "Benannte Konfigurationsprofile mit teilweisen Überschreibungen, die zur Laufzeit aktiviert werden können."
+ },
+ "zones": {
+ "label": "Zonen",
+ "description": "Mit Zonen können Sie einen bestimmten Bereich des Bildausschnitts festlegen, um zu bestimmen, ob sich ein Objekt innerhalb dieses Bereichs befindet oder nicht.",
+ "friendly_name": {
+ "label": "Zonen Name",
+ "description": "Ein benutzerfreundlicher Name für die Zone, der in der Benutzeroberfläche von Frigate angezeigt wird. Wenn kein Name festgelegt ist, wird eine formatierte Version des Zonennamens verwendet."
+ },
+ "enabled": {
+ "label": "Aktiviert",
+ "description": "Diese Zone aktivieren oder deaktivieren. Deaktivierte Zonen werden zur Laufzeit ignoriert."
+ },
+ "enabled_in_config": {
+ "label": "Behalten Sie den ursprünglichen Zustand der Zone im Blick."
+ },
+ "filters": {
+ "label": "Zonenfilter",
+ "description": "Filter, die auf Objekte innerhalb dieser Zone angewendet werden sollen. Dienen dazu, Fehlalarme zu reduzieren oder einzuschränken, welche Objekte als in der Zone vorhanden gelten.",
+ "min_area": {
+ "label": "Mindestfläche des Objekts",
+ "description": "Mindestfläche der Begrenzungsbox (in Pixeln oder Prozent), die für diesen Objekttyp erforderlich ist. Kann als Pixelwert (Ganzzahl) oder als Prozentwert (Gleitkomma zwischen 0,000001 und 0,99) angegeben werden."
+ },
+ "max_area": {
+ "label": "Maximale Objektfläche",
+ "description": "Maximal zulässige Fläche der Begrenzungsbox (in Pixeln oder Prozent) für diesen Objekttyp. Kann als Pixelwert (Ganzzahl) oder als Prozentwert (Gleitkomma zwischen 0,000001 und 0,99) angegeben werden."
+ },
+ "min_ratio": {
+ "label": "Mindestseitenverhältnis",
+ "description": "Erforderliches Mindestverhältnis von Breite zu Höhe, damit die Begrenzungsbox die Voraussetzungen erfüllt."
+ },
+ "max_ratio": {
+ "label": "Maximales Seitenverhältnis",
+ "description": "Maximales Seitenverhältnis: Das maximal zulässige Verhältnis von Breite zu Höhe, damit die Begrenzungsbox die Anforderungen erfüllt.Maximales Seitenverhältnis: Das maximal zulässige Verhältnis von Breite zu Höhe, damit die Begrenzungsbox die Anforderungen erfüllt."
+ },
+ "threshold": {
+ "label": "Konfidenzschwelle",
+ "description": "Durchschnittlicher Schwellenwert für die Erkennungssicherheit, der erforderlich ist, damit das Objekt als echtes Positiv gewertet wird."
+ },
+ "min_score": {
+ "label": "Mindestvertrauen",
+ "description": "Erforderliche Mindestzuverlässigkeit der Einzelbilderkennung, damit das Objekt gezählt wird."
+ },
+ "mask": {
+ "label": "Filtermaske",
+ "description": "Polygonkoordinaten, die festlegen, wo dieser Filter innerhalb des Bildausschnitts angewendet wird."
+ },
+ "raw_mask": {
+ "label": "Rohmaske"
+ }
+ },
+ "coordinates": {
+ "label": "Koordinaten",
+ "description": "Polygonkoordinaten, die den Bereich der Zone definieren. Dies kann eine durch Kommas getrennte Zeichenfolge oder eine Liste von Koordinatenzeichenfolgen sein. Die Koordinaten sollten relativ (0–1) oder absolut (veraltet) sein."
+ },
+ "distances": {
+ "label": "Entfernungen in der realen Welt",
+ "description": "Optionale reale Entfernungen für jede Seite des Zonenvierecks, die für Geschwindigkeits- oder Entfernungsberechnungen verwendet werden. Bei Angabe müssen genau 4 Werte angegeben werden."
+ },
+ "inertia": {
+ "label": "Inertialkoordinatensysteme",
+ "description": "Anzahl der aufeinanderfolgenden Bilder, in denen ein Objekt in der Zone erkannt werden muss, bevor es als vorhanden gilt. Dies hilft dabei, vorübergehende Erkennungen herauszufiltern."
+ },
+ "loitering_time": {
+ "label": "Verzögerungszeit in Sekunden",
+ "description": "Anzahl der Sekunden, die sich ein Objekt in der Zone aufhalten muss, damit es als „Herumlungern“ gewertet wird. Setzen Sie den Wert auf 0, um die Erkennung von Herumlungern zu deaktivieren."
+ },
+ "speed_threshold": {
+ "label": "Mindestgeschwindigkeit",
+ "description": "Mindestgeschwindigkeit (in realen Einheiten, sofern Entfernungen festgelegt sind), die erforderlich ist, damit ein Objekt als in der Zone vorhanden gilt. Wird für geschwindigkeitsbasierte Zonenauslöser verwendet."
+ },
+ "objects": {
+ "label": "Auslöseobjekte",
+ "description": "Liste der Objekttypen (aus labelmap), die diese Zone auslösen können. Kann eine Zeichenkette oder eine Liste von Zeichenketten sein. Ist das Feld leer, werden alle Objekte berücksichtigt."
+ }
+ },
+ "enabled_in_config": {
+ "label": "Ursprünglicher Zustand der Kamera",
+ "description": "Behalten Sie den ursprünglichen Zustand der Kamera."
}
}
diff --git a/web/public/locales/de/config/global.json b/web/public/locales/de/config/global.json
index 8f9a9660e..b7758bfea 100644
--- a/web/public/locales/de/config/global.json
+++ b/web/public/locales/de/config/global.json
@@ -10,7 +10,8 @@
"audio": {
"label": "Audioereignisse",
"enabled": {
- "label": "Aktivieren der Audioerkennung"
+ "label": "Aktivieren der Audioerkennung",
+ "description": "Aktivieren oder deaktivieren Sie die Erkennung von Audioereignissen für alle Kameras; diese Einstellung kann für jede Kamera individuell überschrieben werden."
},
"min_volume": {
"label": "Mindestlautstärke",
@@ -35,7 +36,8 @@
"num_threads": {
"label": "Erkennungsthreads",
"description": "Anzahl der Threads, die für die Audioerkennungsverarbeitung verwendet werden sollen."
- }
+ },
+ "description": "Einstellungen für die audiobasierte Ereigniserkennung für alle Kameras; können für jede Kamera individuell überschrieben werden."
},
"environment_vars": {
"label": "Umgebungsvariablen",
@@ -109,7 +111,20 @@
"description": "Aktivieren Sie die Live-Transkription für Audio, sobald es empfangen wird."
},
"enabled": {
- "label": "Audio-Transkription aktivieren"
+ "label": "Audio-Transkription aktivieren",
+ "description": "Automatische Audio-Transkription für alle Kameras aktivieren oder deaktivieren; kann für jede Kamera einzeln überschrieben werden."
+ },
+ "language": {
+ "label": "Transkriptsprache",
+ "description": "Für die Transkription/Übersetzung verwendeter Sprachcode (z. B. „en“ für Englisch). Eine Liste der unterstützten Sprachcodes finden Sie unter https://whisper-api.com/docs/languages/."
+ },
+ "device": {
+ "label": "Transkriptionsgerät",
+ "description": "Geräteschlüssel (CPU/GPU), auf dem das Transkriptionsmodell ausgeführt werden soll. Derzeit werden für die Transkription nur NVIDIA-CUDA-GPUs unterstützt."
+ },
+ "model_size": {
+ "label": "Modellgröße",
+ "description": "Modellgröße für die Transkription von Audioereignissen im Offline-Modus."
}
},
"birdseye": {
@@ -126,6 +141,42 @@
"order": {
"label": "Position",
"description": "Numerische Position, die Reihenfolge der Kamera im Birdseye-Layout steuert."
+ },
+ "restream": {
+ "label": "Restream RTSP",
+ "description": "Leiten Sie den Birdseye-Ausgang als RTSP-Feed weiter; wenn Sie diese Option aktivieren, läuft Birdseye ununterbrochen weiter."
+ },
+ "width": {
+ "label": "Breite",
+ "description": "Ausgabebreite (Pixel) des zusammengesetzten Birdseye-Bildes."
+ },
+ "height": {
+ "label": "Höhe",
+ "description": "Ausgabehöhe (in Pixeln) des zusammengesetzten Birdseye-Bildes."
+ },
+ "quality": {
+ "label": "Codierungsqualität",
+ "description": "Codierungsqualität für den Birdseye-MPEG-1-Feed (1 = höchste Qualität, 31 = niedrigste Qualität)."
+ },
+ "inactivity_threshold": {
+ "label": "Schwellenwert für Inaktivität",
+ "description": "Sekunden der Inaktivität, nach denen eine Kamera nicht mehr in Birdseye angezeigt wird."
+ },
+ "layout": {
+ "label": "Layout",
+ "description": "Layoutoptionen für die Birdseye-Komposition.",
+ "scaling_factor": {
+ "label": "Skalierungsfaktor",
+ "description": "Vom Layout-Rechner verwendeter Skalierungsfaktor (Bereich 1,0 bis 5,0)."
+ },
+ "max_cameras": {
+ "label": "Max. Anzahl Kameras",
+ "description": "Maximale Anzahl der Kameras, die gleichzeitig in Birdseye angezeigt werden können; es werden die neuesten Kameras angezeigt."
+ }
+ },
+ "idle_heartbeat_fps": {
+ "label": "FPS im Leerlauf",
+ "description": "Bilder pro Sekunde, um das zuletzt erstellte Birdseye-Bild im Leerlauf erneut zu senden; auf 0 setzen, um die Funktion zu deaktivieren."
}
},
"database": {
@@ -140,7 +191,8 @@
"label": "Objekterkennung",
"description": "Einstellungen für die Erkennungs-/Detektionsrolle, die zum Ausführen der Objekterkennung und zum Initialisieren von Trackern verwendet wird.",
"enabled": {
- "label": "Erkennung aktiviert"
+ "label": "Objekterkennung aktiviert",
+ "description": "Objekterkennung für alle Kameras aktivieren oder deaktivieren; kann für jede Kamera einzeln überschrieben werden."
},
"height": {
"label": "Höhe erkennen",
@@ -258,11 +310,45 @@
"face_recognition": {
"label": "Gesichtserkennung",
"enabled": {
- "label": "Gesichtserkennung aktivieren"
+ "label": "Gesichtserkennung aktivieren",
+ "description": "Gesichtserkennung für alle Kameras aktivieren oder deaktivieren; kann für jede Kamera einzeln überschrieben werden."
},
"min_area": {
"label": "Mindestfläche der Stirnseite",
"description": "Mindestfläche (Pixel) eines erkannten Gesichtsrahmens, die für einen Erkennungsversuch erforderlich ist."
+ },
+ "description": "Einstellungen für die Gesichtserkennung und -identifizierung für alle Kameras; können für jede Kamera individuell angepasst werden.",
+ "model_size": {
+ "label": "Modellgröße",
+ "description": "Zu verwendende Modellgröße für Gesichts-Embeddings (klein/groß); bei größeren Modellen ist möglicherweise eine GPU erforderlich."
+ },
+ "unknown_score": {
+ "label": "Unbekannter Schwellenwert",
+ "description": "Abstandsschwelle, unterhalb derer ein Gesicht als potenzielle Übereinstimmung angesehen wird (höher = strenger)."
+ },
+ "detection_threshold": {
+ "label": "Erkennungsschwelle",
+ "description": "Mindestvertrauensgrad, der erforderlich ist, damit eine Gesichtserkennung als gültig angesehen wird."
+ },
+ "recognition_threshold": {
+ "label": "Erkennungsschwelle",
+ "description": "Schwellenwert für den Abstand bei der Gesichts-Einbettung, ab dem zwei Gesichter als übereinstimmend gelten."
+ },
+ "min_faces": {
+ "label": "Mindestens Gesichter",
+ "description": "Mindestanzahl an Gesichtserkennungen, die erforderlich sind, bevor einer Person ein erkanntes Unterlabel zugewiesen wird."
+ },
+ "save_attempts": {
+ "label": "Speicherungen",
+ "description": "Anzahl der Gesichtserkennungsversuche, die für die Benutzeroberfläche zur aktuellen Erkennung gespeichert werden sollen."
+ },
+ "blur_confidence_filter": {
+ "label": "Weichzeichnungsfilter",
+ "description": "Passen Sie die Konfidenzwerte anhand der Bildunschärfe an, um Fehlalarme bei Gesichtern von schlechter Qualität zu reduzieren."
+ },
+ "device": {
+ "label": "Gerät",
+ "description": "Dies ist eine Übersteuerung, um ein bestimmtes Gerät anzusprechen. Weitere Informationen finden Sie unter https://onnxruntime.ai/docs/execution-providers/"
}
},
"notifications": {
@@ -426,7 +512,8 @@
"quality": {
"label": "Live Qualität",
"description": "Kodierungsqualität für den jsmpeg-Stream (1 = höchst, 31 = niedrigst)."
- }
+ },
+ "description": "Einstellungen zur Steuerung der Auflösung und Qualität des jsmpeg-Livestreams. Dies hat keine Auswirkungen auf weitergeleitete Kameras, die go2rtc für die Live-Ansicht verwenden."
},
"telemetry": {
"label": "Telemetrie",
@@ -464,7 +551,8 @@
"label": "Kennzeichenerkennung",
"description": "Einstellungen für die Kennzeichenerkennung, einschließlich Erkennungsschwellen, Formatierung und bekannte Kennzeichen.",
"enabled": {
- "label": "LPR aktivieren"
+ "label": "LPR aktivieren",
+ "description": "Die Kennzeichenerkennung für alle Kameras aktivieren oder deaktivieren; die Einstellung kann für jede Kamera individuell überschrieben werden."
},
"expire_time": {
"label": "Sekunden bis zum Ablauf",
@@ -477,12 +565,59 @@
"enhancement": {
"label": "Verbesserungsgrad",
"description": "Verstärkungsstufe (0-10) zur Anwendung auf Plattenaufnahmen vor der OCR; höhere Werte führen nicht immer zu besseren Ergebnissen, Stufen über 5 funktionieren möglicherweise nur bei Nachtaufnahmen und sollten mit Vorsicht verwendet werden."
+ },
+ "model_size": {
+ "label": "Modellgröße",
+ "description": "Für die Texterkennung verwendete Modellgröße. Die meisten Benutzer sollten „klein“ wählen."
+ },
+ "detection_threshold": {
+ "label": "Erkennungsschwelle",
+ "description": "Schwellenwert für die Erkennungssicherheit, ab dem die OCR-Erkennung für ein verdächtiges Kennzeichen gestartet wird."
+ },
+ "recognition_threshold": {
+ "label": "Erkennungsschwelle",
+ "description": "Schwellwert für die Erkennungssicherheit, der erforderlich ist, damit der erkannte Text des Kennzeichens als Unterbezeichnung hinzugefügt wird."
+ },
+ "min_plate_length": {
+ "label": "Mindestplattenlänge",
+ "description": "Mindestanzahl an Zeichen, die ein erkanntes Kennzeichen enthalten muss, um als gültig zu gelten."
+ },
+ "format": {
+ "label": "Regulärer Ausdruck für das Plattenformat",
+ "description": "Optionaler regulärer Ausdruck zur Überprüfung der erkannten Kennzeichenfolgen auf Übereinstimmung mit einem erwarteten Format."
+ },
+ "match_distance": {
+ "label": "Entfernung",
+ "description": "Anzahl der zulässigen Zeichenabweichungen beim Vergleich erkannter Kennzeichen mit bekannten Kennzeichen."
+ },
+ "known_plates": {
+ "label": "Bekannte Schilder",
+ "description": "Liste der Kennzeichen oder regulären Ausdrücke, die besonders überwacht oder gemeldet werden sollen."
+ },
+ "debug_save_plates": {
+ "label": "Debug-Platten speichern",
+ "description": "Speichern Sie Ausschnitte aus den Plattenbildern zur Fehlerbehebung bei der LPR-Leistung."
+ },
+ "device": {
+ "label": "Gerät",
+ "description": "Dies ist eine Übersteuerung, um ein bestimmtes Gerät anzusprechen. Weitere Informationen finden Sie unter https://onnxruntime.ai/docs/execution-providers/"
+ },
+ "replace_rules": {
+ "label": "Ersatzregeln",
+ "description": "Reguläre Ausdrücke, die zur Normalisierung der erkannten Kennzeichen vor dem Abgleich verwendet werden.",
+ "pattern": {
+ "label": "Regex-Muster"
+ },
+ "replacement": {
+ "label": "Ersetzungs String"
+ }
}
},
"motion": {
"label": "Bewegungserkennung",
"enabled": {
- "label": "Bewegungserkennung aktivieren"
+ "label": "Bewegungserkennung aktivieren",
+ "description": "Bewegungserkennung für alle Kameras aktivieren oder deaktivieren; kann für jede Kamera einzeln überschrieben werden."
},
"threshold": {
"label": "Bewegungsschwelle",
@@ -494,7 +629,7 @@
},
"skip_motion_threshold": {
"label": "Schwellenwert für Bewegungsüberspringen",
- "description": "Wenn sich mehr als dieser Anteil des Bildes in einem einzelnen Frame ändert, gibt der Detektor keine Bewegungsfelder zurück und kalibriert sich sofort neu. Dies kann CPU-Leistung sparen und Fehlalarme bei Blitzschlag, Gewittern usw. reduzieren, aber auch echte Ereignisse übersehen, wie z. B. eine PTZ-Kamera, die ein Objekt automatisch verfolgt. Der Kompromiss besteht darin, entweder einige Megabyte an Aufzeichnungen zu verlieren oder ein paar kurze Clips zu überprüfen. Bereich 0,0 bis 1,0."
+ "description": "Wenn sich mehr als dieser Anteil des Bildes in einem einzelnen Frame ändert, gibt der Detektor keine Bewegungsfelder zurück und kalibriert sich sofort neu. Dies kann CPU-Leistung sparen und Fehlalarme bei Blitzschlag, Gewittern usw. reduzieren, aber auch echte Ereignisse übersehen, wie z. B. eine PTZ-Kamera, die ein Objekt automatisch verfolgt. Der Kompromiss besteht darin, entweder einige Megabyte an Aufzeichnungen zu verlieren oder ein paar kurze Clips zu überprüfen. Leer lassen um diese Funktion zu deaktivieren."
},
"improve_contrast": {
"label": "Kontrast verbessern",
@@ -530,7 +665,8 @@
},
"raw_mask": {
"label": "Maskierung"
- }
+ },
+ "description": "Die Standard-Einstellungen für die Bewegungserkennung gelten für alle Kameras, sofern sie nicht für einzelne Kameras überschrieben werden."
},
"tls": {
"label": "TLS",
@@ -568,7 +704,7 @@
"label": "Detektor-Hardware",
"description": "Konfiguration für Objektdetektoren (CPU, GPU, ONNX-Backends) und alle detektorspezifischen Modelleinstellungen.",
"type": {
- "label": "Detektortyp",
+ "label": "Type",
"description": "Art des für die Objekterkennung zu verwendenden Detektors (z. B. „cpu“, „edgetpu“, „openvino“)."
},
"cpu": {
@@ -690,7 +826,7 @@
},
"api_timeout": {
"label": "DeepStack-API-Zeitlimit (in Sekunden)",
- "description": "Maximum time allowed for a DeepStack API request."
+ "description": "Maximal zulässige Zeit für eine DeepStack-API-Anfrage."
},
"api_key": {
"label": "DeepStack-API-Schlüssel (falls erforderlich)",
@@ -887,6 +1023,12 @@
"input_dtype": {
"label": "Modell-Eingangs-D-Typ"
}
+ },
+ "label": "RKNN",
+ "description": "RKNN-Detektor für Rockchip-NPUs; führt kompilierte RKNN-Modelle auf Rockchip-Hardware aus.",
+ "num_cores": {
+ "label": "Anzahl der zu verwendenden NPU-Kerne.",
+ "description": "Die Anzahl der zu verwendenden NPU-Kerne (0 für automatische Einstellung)."
}
},
"memryx": {
@@ -930,6 +1072,110 @@
"label": "Standard-Pixel-Farbformat",
"description": "Vom Modell erwarteter Pixel-Farbraum: „rgb“, „bgr“ oder „yuv“."
}
+ },
+ "device": {
+ "label": "Geräte Pfad",
+ "description": "Das für die MemryX-Inferenz zu verwendende Gerät (z. B. „PCIe“)."
+ }
+ },
+ "model": {
+ "label": "Detektorspezifische Modellkonfiguration",
+ "description": "Detektorspezifische Optionen zur Modellkonfiguration (Pfad, Eingabegröße usw.). Detektorspezifische Modellkonfiguration.",
+ "path": {
+ "label": "Pfad zum benutzerdefinierten Objekterkennungsmodell",
+ "description": "Pfad zu einer benutzerdefinierten Erkennungsmodelldatei (oder plus://clean_copy-Snapshots aktiviert sein.",
- "cleanCopyWarning": "Einige Kameras haben Snapshots aktiviert aber clean copy deaktiviert. Aktiviere clean_copy in der Snapshot Konfiguration um Bilder an Frigate+ zu senden.",
+ "desc": "Für die Übermittlung an Frigate+ müssen Snapshots in Ihrer Konfiguration aktiviert sein.",
+ "cleanCopyWarning": "Bei einigen Kameras ist die Schnappschussfunktion deaktiviert",
"documentation": "die Dokumentation lesen",
"table": {
"camera": "Kamera",
@@ -765,14 +805,21 @@
"success": "Frigate+ Einstellungen wurden gespeichert. Starte Frigate neu um Änderungen anzuwenden."
},
"restart_required": "Neustart erforderlich (Frigate+ Model geändert)",
- "unsavedChanges": "Nicht gespeicherte Änderungen an den Frigate+-Einstellungen"
+ "unsavedChanges": "Nicht gespeicherte Änderungen an den Frigate+-Einstellungen",
+ "description": "Frigate+ ist ein Abonnementdienst, der Ihnen Zugriff auf zusätzliche Funktionen und Möglichkeiten für Ihre Frigate-Instanz bietet, darunter die Möglichkeit, benutzerdefinierte Objekterkennungsmodelle zu verwenden, die auf Ihren eigenen Daten trainiert wurden. Hier können Sie Ihre Frigate+-Modelleinstellungen verwalten.",
+ "cardTitles": {
+ "api": "API",
+ "currentModel": "Aktuelles Modell",
+ "otherModels": "Anderes Modell",
+ "configuration": "Konfiguration"
+ }
},
"enrichments": {
"birdClassification": {
"title": "Vogelerkennung",
"desc": "Die Vogelerkennung identifiziert Vögelarten mithilfe eines quantisierten Tensorflowmodells. Wenn eine Vogelart erkannt wird, wird ihr Name als sub_label hinzugefügt. Diese Informationen sind in der Benutzeroberfläche, in Filtern und in Benachrichtigungen enthalten."
},
- "title": "Anreicherungseinstellungen",
+ "title": "Verfeinerungseinstellungen",
"unsavedChanges": "Ungesicherte geänderte Verbesserungseinstellungen",
"semanticSearch": {
"reindexNow": {
@@ -1293,7 +1340,12 @@
"backToSettings": "Zurück zu Kameraeinstellungen",
"streams": {
"title": "Kameras aktivieren / deaktivieren",
- "desc": "Deaktiviere eine Kamera vorübergehend, bis Frigate neu gestartet wird. Deaktivierung einer Kamera stoppt die Verarbeitung der Streams dieser Kamera durch Frigate vollständig. Erkennung, Aufzeichnung und Debugging sind dann nicht mehr verfügbar. 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": {
diff --git a/web/public/locales/he/views/classificationModel.json b/web/public/locales/he/views/classificationModel.json
index 0e965eb74..ea08b0e74 100644
--- a/web/public/locales/he/views/classificationModel.json
+++ b/web/public/locales/he/views/classificationModel.json
@@ -23,8 +23,12 @@
},
"toast": {
"success": {
- "deletedCategory": "הקטגוריה נמחקה",
- "deletedImage": "התמונות נמחקו",
+ "deletedCategory_one": "הקטגוריה נמחקה",
+ "deletedCategory_two": "",
+ "deletedCategory_other": "",
+ "deletedImage_one": "התמונות נמחקו",
+ "deletedImage_two": "",
+ "deletedImage_other": "",
"deletedModel_one": "נמחק בהצלחה {{count}} מודל",
"deletedModel_two": "נמחקו בהצלחה {{count}} מודלים",
"deletedModel_other": "",
diff --git a/web/public/locales/hr/views/classificationModel.json b/web/public/locales/hr/views/classificationModel.json
index 97bfff234..b61defad9 100644
--- a/web/public/locales/hr/views/classificationModel.json
+++ b/web/public/locales/hr/views/classificationModel.json
@@ -23,8 +23,12 @@
},
"toast": {
"success": {
- "deletedImage": "Obrisane slike",
- "deletedCategory": "Izbrisana Klasa",
+ "deletedImage_one": "Obrisane slike",
+ "deletedImage_few": "",
+ "deletedImage_other": "",
+ "deletedCategory_one": "Izbrisana Klasa",
+ "deletedCategory_few": "",
+ "deletedCategory_other": "",
"deletedModel_one": "Uspješno izbrisan {{count}} model",
"deletedModel_few": "Uspješno izbrisana {{count}} modela",
"deletedModel_other": "Uspješno izbrisano {{count}} modela",
diff --git a/web/public/locales/hu/views/classificationModel.json b/web/public/locales/hu/views/classificationModel.json
index 494ff7c06..1c26b80cc 100644
--- a/web/public/locales/hu/views/classificationModel.json
+++ b/web/public/locales/hu/views/classificationModel.json
@@ -12,11 +12,13 @@
},
"toast": {
"success": {
- "deletedImage": "Törölt képek",
+ "deletedImage_one": "Törölt képek",
+ "deletedImage_other": "",
"deletedModel_one": "Sikeresen törölve {{count}} modell",
"deletedModel_other": "Sikeresen törölve {{count}} modell",
"categorizedImage": "A kép sikeresen osztályozva",
- "deletedCategory": "Osztály törlése",
+ "deletedCategory_one": "Osztály törlése",
+ "deletedCategory_other": "",
"trainedModel": "Sikeresen betanított modell.",
"trainingModel": "A modell tanítás sikeresen megkezdődött.",
"updatedModel": "Modellkonfiguráció sikeresen frissítve",
diff --git a/web/public/locales/id/views/classificationModel.json b/web/public/locales/id/views/classificationModel.json
index 6724a3b26..55ca9051d 100644
--- a/web/public/locales/id/views/classificationModel.json
+++ b/web/public/locales/id/views/classificationModel.json
@@ -23,8 +23,8 @@
},
"toast": {
"success": {
- "deletedCategory": "Class Dihapus",
- "deletedImage": "Image dihapus",
+ "deletedCategory_other": "Class Dihapus",
+ "deletedImage_other": "Image dihapus",
"deletedModel_other": "Berhasil menghapus {{count}} model",
"categorizedImage": "Berhasil Mengklasifikasikan Gambar",
"trainedModel": "Berhasil melatih model.",
diff --git a/web/public/locales/is/components/auth.json b/web/public/locales/is/components/auth.json
index 0967ef424..077e14853 100644
--- a/web/public/locales/is/components/auth.json
+++ b/web/public/locales/is/components/auth.json
@@ -1 +1,5 @@
-{}
+{
+ "form": {
+ "user": "Notandanafn"
+ }
+}
diff --git a/web/public/locales/is/components/dialog.json b/web/public/locales/is/components/dialog.json
index 0967ef424..d6a23f570 100644
--- a/web/public/locales/is/components/dialog.json
+++ b/web/public/locales/is/components/dialog.json
@@ -1 +1,5 @@
-{}
+{
+ "restart": {
+ "title": "Ert þú viss um að þú viljir endurræsa Frigate?"
+ }
+}
diff --git a/web/public/locales/is/components/filter.json b/web/public/locales/is/components/filter.json
index 0967ef424..3066802c6 100644
--- a/web/public/locales/is/components/filter.json
+++ b/web/public/locales/is/components/filter.json
@@ -1 +1,3 @@
-{}
+{
+ "filter": "Sía"
+}
diff --git a/web/public/locales/is/components/icons.json b/web/public/locales/is/components/icons.json
index 0967ef424..1ff5ba9f8 100644
--- a/web/public/locales/is/components/icons.json
+++ b/web/public/locales/is/components/icons.json
@@ -1 +1,5 @@
-{}
+{
+ "iconPicker": {
+ "selectIcon": "Veldu tákn"
+ }
+}
diff --git a/web/public/locales/is/components/input.json b/web/public/locales/is/components/input.json
index 0967ef424..392bb4342 100644
--- a/web/public/locales/is/components/input.json
+++ b/web/public/locales/is/components/input.json
@@ -1 +1,7 @@
-{}
+{
+ "button": {
+ "downloadVideo": {
+ "label": "Hala niður myndbandi"
+ }
+ }
+}
diff --git a/web/public/locales/is/views/configEditor.json b/web/public/locales/is/views/configEditor.json
index 0967ef424..14f2f84d5 100644
--- a/web/public/locales/is/views/configEditor.json
+++ b/web/public/locales/is/views/configEditor.json
@@ -1 +1,3 @@
-{}
+{
+ "documentTitle": "Stillingastjórn - Frigate"
+}
diff --git a/web/public/locales/is/views/events.json b/web/public/locales/is/views/events.json
index 0967ef424..6d1ed90af 100644
--- a/web/public/locales/is/views/events.json
+++ b/web/public/locales/is/views/events.json
@@ -1 +1,3 @@
-{}
+{
+ "alerts": "Atvik"
+}
diff --git a/web/public/locales/is/views/recording.json b/web/public/locales/is/views/recording.json
index 0967ef424..3066802c6 100644
--- a/web/public/locales/is/views/recording.json
+++ b/web/public/locales/is/views/recording.json
@@ -1 +1,3 @@
-{}
+{
+ "filter": "Sía"
+}
diff --git a/web/public/locales/it/common.json b/web/public/locales/it/common.json
index 7a7edb48c..4067fe4fc 100644
--- a/web/public/locales/it/common.json
+++ b/web/public/locales/it/common.json
@@ -139,7 +139,9 @@
"resetToDefault": "Ripristina impostazioni predefinite",
"saveAll": "Salva tutto",
"savingAll": "Salvataggio di tutto…",
- "undoAll": "Annulla tutto"
+ "undoAll": "Annulla tutto",
+ "applying": "Applica…",
+ "retry": "Riprova"
},
"unit": {
"speed": {
@@ -271,7 +273,9 @@
"withSystem": "Sistema",
"faceLibrary": "Raccolta volti",
"classification": "Classificazione",
- "chat": "Chat"
+ "chat": "Chat",
+ "profiles": "Profili",
+ "actions": "Azioni"
},
"pagination": {
"next": {
@@ -308,7 +312,8 @@
"title": "Impossibile salvare le modifiche alla configurazione: {{errorMessage}}",
"noMessage": "Impossibile salvare le modifiche alla configurazione"
},
- "title": "Salva"
+ "title": "Salva",
+ "success": "Modifiche alla configurazione salvate correttamente."
}
},
"selectItem": "Seleziona {{item}}",
@@ -324,5 +329,7 @@
"field": {
"optional": "Opzionale",
"internalID": "L'ID interno che Frigate utilizza nella configurazione e nel database"
- }
+ },
+ "no_items": "Nessun elemento",
+ "validation_errors": "Errori di convalida"
}
diff --git a/web/public/locales/it/components/camera.json b/web/public/locales/it/components/camera.json
index a681de1a5..29ee897f3 100644
--- a/web/public/locales/it/components/camera.json
+++ b/web/public/locales/it/components/camera.json
@@ -82,6 +82,7 @@
"zones": "Zone",
"mask": "Maschera",
"motion": "Movimento",
- "regions": "Regioni"
+ "regions": "Regioni",
+ "paths": "Percorsi"
}
}
diff --git a/web/public/locales/it/config/cameras.json b/web/public/locales/it/config/cameras.json
index 0967ef424..491b69052 100644
--- a/web/public/locales/it/config/cameras.json
+++ b/web/public/locales/it/config/cameras.json
@@ -1 +1,31 @@
-{}
+{
+ "label": "Configurazione telecamera",
+ "name": {
+ "label": "Nome telecamera",
+ "description": "Il nome della telecamera è necessario"
+ },
+ "friendly_name": {
+ "description": "Nome amichevole della telecamera utilizzato nell'interfaccia utente di Frigate",
+ "label": "Nome amichevole"
+ },
+ "enabled": {
+ "label": "Abilitato",
+ "description": "Abilitato"
+ },
+ "audio": {
+ "label": "Eventi audio",
+ "description": "Impostazioni per il rilevamento di eventi audio per questa telecamera.",
+ "enabled": {
+ "label": "Abilita il rilevamento audio",
+ "description": "Abilita o disabilita il rilevamento degli eventi audio per questa telecamera."
+ },
+ "min_volume": {
+ "label": "Volume minimo"
+ }
+ },
+ "ffmpeg": {
+ "path": {
+ "label": "Percorso FFmpeg"
+ }
+ }
+}
diff --git a/web/public/locales/it/config/global.json b/web/public/locales/it/config/global.json
index 0967ef424..dbd4f3ec6 100644
--- a/web/public/locales/it/config/global.json
+++ b/web/public/locales/it/config/global.json
@@ -1 +1,51 @@
-{}
+{
+ "safe_mode": {
+ "label": "Modalità sicura",
+ "description": "Quando abilitata, avvia Frigate in modalità sicura con funzionalità ridotte per la risoluzione dei problemi."
+ },
+ "environment_vars": {
+ "label": "Variabili d'ambiente",
+ "description": "Coppie chiave/valore di variabili d'ambiente da impostare per il processo Frigate in Home Assistant OS. Gli utenti non HAOS devono utilizzare la configurazione delle variabili d'ambiente di Docker."
+ },
+ "version": {
+ "label": "Versione configurazione attuale",
+ "description": "Versione numerica o stringa della configurazione attiva per facilitare il rilevamento di migrazioni o modifiche di formato."
+ },
+ "audio": {
+ "label": "Eventi audio",
+ "enabled": {
+ "label": "Abilita il rilevamento audio"
+ },
+ "min_volume": {
+ "label": "Volume minimo"
+ }
+ },
+ "logger": {
+ "description": "Consente di controllare il livello di dettaglio predefinito dei registri e le opzioni di sovrascrittura per ciascun componente.",
+ "default": {
+ "label": "Livello di registrazione",
+ "description": "Livello di dettaglio predefinito del registro globale (debug, info, warning, error)."
+ },
+ "logs": {
+ "label": "Livello di registro per processo",
+ "description": "Opzioni di sovrsacrittura del livello di registro per ciascun componente, per aumentare o diminuire il livello di dettaglio dei singoli moduli."
+ }
+ },
+ "auth": {
+ "label": "Autenticazione",
+ "description": "Impostazioni di autenticazione e relative alla sessione, incluse le opzioni relative ai cookie e al limite di frequenza.",
+ "enabled": {
+ "label": "Abilita autenticazione",
+ "description": "Abilita l'autenticazione nativa per l'interfaccia utente di Frigate."
+ },
+ "reset_admin_password": {
+ "label": "Reimposta la password di amministratore",
+ "description": "Se la condizione è vera, reimposta la password dell'utente amministratore all'avvio e stampa la nuova password nei registri."
+ }
+ },
+ "ffmpeg": {
+ "path": {
+ "label": "Percorso FFmpeg"
+ }
+ }
+}
diff --git a/web/public/locales/it/config/groups.json b/web/public/locales/it/config/groups.json
index 0967ef424..72164c31d 100644
--- a/web/public/locales/it/config/groups.json
+++ b/web/public/locales/it/config/groups.json
@@ -1 +1,73 @@
-{}
+{
+ "audio": {
+ "global": {
+ "detection": "Rilevamento globale",
+ "sensitivity": "Sensibilità globale"
+ },
+ "cameras": {
+ "detection": "Rilevamento",
+ "sensitivity": "Sensibilità"
+ }
+ },
+ "timestamp_style": {
+ "global": {
+ "appearance": "Aspetto globale"
+ },
+ "cameras": {
+ "appearance": "Aspetto"
+ }
+ },
+ "motion": {
+ "global": {
+ "algorithm": "Algoritmo globale",
+ "sensitivity": "Sensibilità globale"
+ },
+ "cameras": {
+ "sensitivity": "Sensibilità",
+ "algorithm": "Algoritmo"
+ }
+ },
+ "snapshots": {
+ "global": {
+ "display": "Visualizzazione globale"
+ },
+ "cameras": {
+ "display": "Visualizzazione"
+ }
+ },
+ "detect": {
+ "global": {
+ "tracking": "Tracciamento globale",
+ "resolution": "Risoluzione globale"
+ },
+ "cameras": {
+ "resolution": "Risoluzione",
+ "tracking": "Tracciamento"
+ }
+ },
+ "objects": {
+ "global": {
+ "tracking": "Tracciamento globale",
+ "filtering": "Filtro globale"
+ },
+ "cameras": {
+ "filtering": "Filtro",
+ "tracking": "Tracciamento"
+ }
+ },
+ "record": {
+ "global": {
+ "events": "Eventi globali",
+ "retention": "Conservazione globale"
+ },
+ "cameras": {
+ "events": "Eventi",
+ "retention": "Conservazione"
+ }
+ },
+ "ffmpeg": {
+ "cameras": {
+ "cameraFfmpeg": "Parametri FFmpeg specifici per la telecamera"
+ }
+ }
+}
diff --git a/web/public/locales/it/config/validation.json b/web/public/locales/it/config/validation.json
index 0967ef424..a37fcd3c7 100644
--- a/web/public/locales/it/config/validation.json
+++ b/web/public/locales/it/config/validation.json
@@ -1 +1,8 @@
-{}
+{
+ "minimum": "Deve essere almeno {{limit}}",
+ "maximum": "Deve essere al massimo {{limit}}",
+ "exclusiveMinimum": "Deve essere maggiore di {{limit}}",
+ "exclusiveMaximum": "Deve essere minore di {{limit}}",
+ "minLength": "Deve essere almeno {{limit}} carattere(i)",
+ "maxLength": "Deve essere al massimo {{limit}} carattere(i)"
+}
diff --git a/web/public/locales/it/objects.json b/web/public/locales/it/objects.json
index a512b0021..069acd07b 100644
--- a/web/public/locales/it/objects.json
+++ b/web/public/locales/it/objects.json
@@ -116,5 +116,10 @@
"an_post": "An Post",
"purolator": "Purolator",
"gls": "GLS",
- "dpd": "DPD"
+ "dpd": "DPD",
+ "canada_post": "Canada Post",
+ "royal_mail": "Royal Mail",
+ "school_bus": "Autobus scolastico",
+ "skunk": "Puzzola",
+ "kangaroo": "Canguro"
}
diff --git a/web/public/locales/it/views/classificationModel.json b/web/public/locales/it/views/classificationModel.json
index a35a39172..c5f0f7539 100644
--- a/web/public/locales/it/views/classificationModel.json
+++ b/web/public/locales/it/views/classificationModel.json
@@ -12,8 +12,12 @@
},
"toast": {
"success": {
- "deletedCategory": "Classe eliminata",
- "deletedImage": "Immagini eliminate",
+ "deletedCategory_one": "{{count}} classe eliminata",
+ "deletedCategory_many": "{{count}} classi eliminate",
+ "deletedCategory_other": "{{count}} classi eliminate",
+ "deletedImage_one": "{{count}} immagine eliminata",
+ "deletedImage_many": "{{count}} immagini eliminate",
+ "deletedImage_other": "{{count}} immagini eliminate",
"categorizedImage": "Immagine classificata con successo",
"trainedModel": "Modello addestrato con successo.",
"trainingModel": "Avviato con successo l'addestramento del modello.",
@@ -21,7 +25,8 @@
"deletedModel_many": "Eliminati con successo {{count}} modelli",
"deletedModel_other": "Eliminati con successo {{count}} modelli",
"updatedModel": "Configurazione del modello aggiornata correttamente",
- "renamedCategory": "Classe rinominata correttamente in {{name}}"
+ "renamedCategory": "Classe rinominata correttamente in {{name}}",
+ "reclassifiedImage": "Immagine riclassificata con successo"
},
"error": {
"deleteImageFailed": "Impossibile eliminare: {{errorMessage}}",
@@ -31,7 +36,8 @@
"deleteModelFailed": "Impossibile eliminare il modello: {{errorMessage}}",
"updateModelFailed": "Impossibile aggiornare il modello: {{errorMessage}}",
"trainingFailedToStart": "Impossibile avviare l'addestramento del modello: {{errorMessage}}",
- "renameCategoryFailed": "Impossibile rinominare la classe: {{errorMessage}}"
+ "renameCategoryFailed": "Impossibile rinominare la classe: {{errorMessage}}",
+ "reclassifyFailed": "Impossibile riclassificare l'immagine: {{errorMessage}}"
}
},
"deleteCategory": {
@@ -156,8 +162,13 @@
"allImagesRequired_other": "Classifica tutte le immagini. Rimangono {{count}} immagini.",
"modelCreated": "Modello creato correttamente. Utilizza la vista Classificazioni recenti per aggiungere immagini per gli stati mancanti, quindi addestrare il modello.",
"missingStatesWarning": {
- "title": "Esempi di stati mancanti",
- "description": "Per ottenere risultati ottimali, si consiglia di selezionare esempi per tutti gli stati. È possibile continuare senza selezionare tutti gli stati, ma il modello non verrà addestrato finché tutti gli stati non avranno immagini. Dopo aver continuato, utilizza la vista Classificazioni recenti per classificare le immagini per gli stati mancanti, quindi addestra il modello."
+ "title": "Esempi di classi mancanti",
+ "description": "Non tutte le classi hanno esempi. Prova a generare nuovi esempi per trovare la classe mancante oppure continua e usa la vista Classificazioni recenti per aggiungere immagini in seguito."
+ },
+ "refreshExamples": "Genera nuovi esempi",
+ "refreshConfirm": {
+ "title": "Generare nuovi esempi?",
+ "description": "Questo genererà una nuova serie di immagini e cancellerà tutte le selezioni, comprese le classi precedenti. Dovrai riselezionare gli esempi per tutte le classi."
}
}
},
@@ -189,5 +200,7 @@
"noNewImages": "Nessuna nuova immagine da addestrare. Classifica prima più immagini nel database.",
"noChanges": "Nessuna modifica al database dall'ultimo addestramento."
},
- "none": "Nessuno"
+ "none": "Nessuno",
+ "reclassifyImageAs": "Riclassifica immagine come:",
+ "reclassifyImage": "Riclassifica immagine"
}
diff --git a/web/public/locales/it/views/explore.json b/web/public/locales/it/views/explore.json
index 498e09465..7cb9b4b80 100644
--- a/web/public/locales/it/views/explore.json
+++ b/web/public/locales/it/views/explore.json
@@ -113,7 +113,8 @@
"attributes": "Attributi di classificazione",
"title": {
"label": "Titolo"
- }
+ },
+ "scoreInfo": "Informazioni sul punteggio"
},
"objectLifecycle": {
"annotationSettings": {
@@ -221,12 +222,22 @@
"downloadCleanSnapshot": {
"label": "Scarica istantanea pulita",
"aria": "Scarica istantanea pulita"
+ },
+ "debugReplay": {
+ "label": "Riproduzione di correzione",
+ "aria": "Visualizza questo oggetto tracciato nella vista di riproduzione di correzione"
+ },
+ "more": {
+ "aria": "Altri"
}
},
"dialog": {
"confirmDelete": {
"desc": "L'eliminazione di questo oggetto tracciato rimuove l'istantanea, eventuali incorporamenti salvati e tutte le voci associate ai dettagli di tracciamento. Il filmato registrato di questo oggetto tracciato nella vista Storico NON verrà eliminato.clean_copy nella configurazione delle istantanee per poter inviare le immagini da queste telecamere a Frigate+.",
+ "cleanCopyWarning": "Alcune telecamere hanno la funzione di istantanea disabilitata",
"table": {
"snapshots": "Istantanee",
"camera": "Telecamera",
@@ -297,7 +297,7 @@
},
"restart_required": "Riavvio richiesto (maschere/zone modificate)",
"motionMaskLabel": "Maschera di movimento {{number}}",
- "objectMaskLabel": "Maschera di oggetto {{number}} ({{label}})"
+ "objectMaskLabel": "Maschera di oggetto {{number}}"
},
"cameraSetting": {
"camera": "Telecamera",
@@ -389,7 +389,8 @@
"triggers": "Inneschi",
"roles": "Ruoli",
"cameraManagement": "Gestione",
- "cameraReview": "Rivedi"
+ "cameraReview": "Rivedi",
+ "profiles": "Profili"
},
"users": {
"dialog": {
diff --git a/web/public/locales/ja/config/cameras.json b/web/public/locales/ja/config/cameras.json
index 0967ef424..8c5cb3254 100644
--- a/web/public/locales/ja/config/cameras.json
+++ b/web/public/locales/ja/config/cameras.json
@@ -1 +1,22 @@
-{}
+{
+ "label": "カメラ設定",
+ "name": {
+ "label": "カメラ名"
+ },
+ "enabled": {
+ "label": "有効",
+ "description": "有効"
+ },
+ "audio": {
+ "label": "音声イベント",
+ "enabled": {
+ "label": "音声検知を有効化"
+ },
+ "min_volume": {
+ "label": "最小ボリューム"
+ },
+ "filters": {
+ "label": "音声フィルタ"
+ }
+ }
+}
diff --git a/web/public/locales/ja/config/global.json b/web/public/locales/ja/config/global.json
index 0967ef424..2073a59d8 100644
--- a/web/public/locales/ja/config/global.json
+++ b/web/public/locales/ja/config/global.json
@@ -1 +1,41 @@
-{}
+{
+ "safe_mode": {
+ "label": "セーフモード",
+ "description": "有効にすると、トラブルシューティングのため機能を制限したセーフモードでFrigateを起動します。"
+ },
+ "environment_vars": {
+ "label": "環境変数"
+ },
+ "audio": {
+ "label": "音声イベント",
+ "enabled": {
+ "label": "音声検知を有効化"
+ },
+ "min_volume": {
+ "label": "最小ボリューム"
+ },
+ "filters": {
+ "label": "音声フィルタ"
+ }
+ },
+ "logger": {
+ "default": {
+ "label": "ログレベル"
+ },
+ "logs": {
+ "label": "プロセス毎のログレベル"
+ }
+ },
+ "auth": {
+ "label": "認証",
+ "enabled": {
+ "label": "認証を有効化"
+ },
+ "reset_admin_password": {
+ "label": "adminパスワードをリセット"
+ }
+ },
+ "version": {
+ "label": "現在の設定バージョン"
+ }
+}
diff --git a/web/public/locales/ja/config/groups.json b/web/public/locales/ja/config/groups.json
index 0967ef424..7d0053948 100644
--- a/web/public/locales/ja/config/groups.json
+++ b/web/public/locales/ja/config/groups.json
@@ -1 +1,48 @@
-{}
+{
+ "audio": {
+ "global": {
+ "sensitivity": "グローバル感度",
+ "detection": "グローバル検出"
+ },
+ "cameras": {
+ "detection": "検知",
+ "sensitivity": "感度"
+ }
+ },
+ "timestamp_style": {
+ "cameras": {
+ "appearance": "外観"
+ }
+ },
+ "motion": {
+ "cameras": {
+ "sensitivity": "感度",
+ "algorithm": "アルゴリズム"
+ }
+ },
+ "detect": {
+ "global": {
+ "resolution": "グローバル解像度",
+ "tracking": "グローバルトラッキング"
+ },
+ "cameras": {
+ "resolution": "解像度",
+ "tracking": "トラッキング"
+ }
+ },
+ "objects": {
+ "global": {
+ "tracking": "グローバルトラッキング",
+ "filtering": "グローバルフィルタ"
+ },
+ "cameras": {
+ "tracking": "トラッキング",
+ "filtering": "フィルタ"
+ }
+ },
+ "record": {
+ "global": {
+ "events": "グローバルイベント"
+ }
+ }
+}
diff --git a/web/public/locales/ja/config/validation.json b/web/public/locales/ja/config/validation.json
index 0967ef424..5b67869a7 100644
--- a/web/public/locales/ja/config/validation.json
+++ b/web/public/locales/ja/config/validation.json
@@ -1 +1,6 @@
-{}
+{
+ "pattern": "無効なフォーマット",
+ "required": "この項目は必須です",
+ "type": "無効な値タイプ",
+ "format": "無効なフォーマット"
+}
diff --git a/web/public/locales/ja/views/classificationModel.json b/web/public/locales/ja/views/classificationModel.json
index e16f1fce5..180135390 100644
--- a/web/public/locales/ja/views/classificationModel.json
+++ b/web/public/locales/ja/views/classificationModel.json
@@ -12,11 +12,11 @@
},
"toast": {
"success": {
- "deletedImage": "削除された画像",
+ "deletedImage_other": "削除された画像",
"categorizedImage": "画像の分類に成功しました",
"trainedModel": "モデルを正常に学習させました。",
"trainingModel": "モデルのトレーニングを正常に開始しました。",
- "deletedCategory": "クラスを削除しました",
+ "deletedCategory_other": "クラスを削除しました",
"deletedModel_other": "{{count}} 件のモデルを削除しました",
"updatedModel": "モデル設定を更新しました",
"renamedCategory": "クラス名を {{name}} に変更しました"
diff --git a/web/public/locales/ja/views/exports.json b/web/public/locales/ja/views/exports.json
index 3e8ce14d4..b32c8c62f 100644
--- a/web/public/locales/ja/views/exports.json
+++ b/web/public/locales/ja/views/exports.json
@@ -1,5 +1,5 @@
{
- "documentTitle": "書き出し - Frigate",
+ "documentTitle": "エクスポート - Frigate",
"noExports": "書き出しは見つかりません",
"search": "検索",
"deleteExport": "書き出しを削除",
diff --git a/web/public/locales/ja/views/recording.json b/web/public/locales/ja/views/recording.json
index 7d76d191f..e505c1302 100644
--- a/web/public/locales/ja/views/recording.json
+++ b/web/public/locales/ja/views/recording.json
@@ -1,7 +1,7 @@
{
"filter": "フィルター",
"calendar": "カレンダー",
- "export": "書き出し",
+ "export": "エクスポート",
"filters": "フィルター",
"toast": {
"error": {
diff --git a/web/public/locales/ja/views/settings.json b/web/public/locales/ja/views/settings.json
index 1e9f5cc52..324fec964 100644
--- a/web/public/locales/ja/views/settings.json
+++ b/web/public/locales/ja/views/settings.json
@@ -11,7 +11,9 @@
"frigatePlus": "Frigate+ 設定 - Frigate",
"notifications": "通知設定 - Frigate",
"cameraManagement": "カメラ設定 - Frigate",
- "cameraReview": "カメラレビュー設定 - Frigate"
+ "cameraReview": "カメラレビュー設定 - Frigate",
+ "maintenance": "メンテナンス - Frigate",
+ "profiles": "プロファイル - Frigate"
},
"menu": {
"ui": "UI",
@@ -26,7 +28,10 @@
"frigateplus": "Frigate+",
"cameraManagement": "管理",
"cameraReview": "レビュー",
- "roles": "区分"
+ "roles": "区分",
+ "general": "一般",
+ "globalConfig": "グローバル設定",
+ "system": "システム"
},
"dialog": {
"unsavedChanges": {
diff --git a/web/public/locales/ja/views/system.json b/web/public/locales/ja/views/system.json
index b0694039d..d3f8f88a7 100644
--- a/web/public/locales/ja/views/system.json
+++ b/web/public/locales/ja/views/system.json
@@ -1,6 +1,6 @@
{
"documentTitle": {
- "cameras": "カメラ統計 - Frigate",
+ "cameras": "カメラ統計情報 - Frigate",
"general": "一般統計 - Frigate",
"storage": "ストレージ統計 - Frigate",
"enrichments": "高度解析統計 - Frigate",
@@ -33,6 +33,17 @@
"fetchingLogsFailed": "ログの取得エラー: {{errorMessage}}",
"whileStreamingLogs": "ログのストリーミング中にエラー: {{errorMessage}}"
}
+ },
+ "websocket": {
+ "label": "メッセージ",
+ "pause": "一時停止",
+ "resume": "再開",
+ "clear": "クリア",
+ "filter": {
+ "events": "イベント",
+ "classification": "分類",
+ "face_recognition": "顔認識"
+ }
}
},
"general": {
diff --git a/web/public/locales/ko/audio.json b/web/public/locales/ko/audio.json
index 812746c7c..dac93a5c7 100644
--- a/web/public/locales/ko/audio.json
+++ b/web/public/locales/ko/audio.json
@@ -3,13 +3,13 @@
"snoring": "코골이",
"singing": "노래",
"yell": "비명",
- "speech": "말소리",
+ "speech": "음성",
"babbling": "옹알이",
"bicycle": "자전거",
"a_capella": "아카펠라",
"accelerating": "가속",
"accordion": "아코디언",
- "acoustic_guitar": "어쿠스틱 기타",
+ "acoustic_guitar": "통기타",
"car": "차량",
"motorcycle": "원동기",
"bus": "버스",
@@ -17,7 +17,7 @@
"boat": "보트",
"bird": "새",
"cat": "고양이",
- "dog": "강아지",
+ "dog": "개",
"horse": "말",
"sheep": "양",
"skateboard": "스케이트보드",
@@ -32,7 +32,7 @@
"toothbrush": "칫솔",
"vehicle": "탈 것",
"animal": "동물",
- "bark": "개",
+ "bark": "짖는 소리",
"goat": "염소",
"bellow": "포효",
"whoop": "환성",
@@ -68,5 +68,105 @@
"gargling": "가글",
"stomach_rumble": "배 꼬르륵",
"burping": "트림",
- "camera": "카메라"
+ "camera": "카메라",
+ "hiccup": "딸꾹질",
+ "fart": "방귀",
+ "hands": "손",
+ "finger_snapping": "손가락 튕기기",
+ "clapping": "박수",
+ "heartbeat": "심장 박동",
+ "heart_murmur": "심장 잡음",
+ "cheering": "환호",
+ "applause": "환호",
+ "chatter": "수다",
+ "crowd": "군중",
+ "children_playing": "놀고 있는 아이들",
+ "pets": "반려동물",
+ "yip": "깽깽거림",
+ "howl": "하울링",
+ "bow_wow": "짖는 소리",
+ "growling": "으르렁거림",
+ "whimper_dog": "낑낑거림",
+ "purr": "가르릉거림",
+ "meow": "야옹",
+ "hiss": "하악질",
+ "caterwaul": "발정기 울음",
+ "livestock": "가축",
+ "clip_clop": "딸깍딸깍",
+ "neigh": "말 울음소리",
+ "cattle": "소",
+ "moo": "음메",
+ "cowbell": "워낭 소리",
+ "pig": "돼지",
+ "oink": "꿀꿀거림",
+ "bleat": "메에",
+ "fowl": "새",
+ "chicken": "닭",
+ "cluck": "닭 울음소리",
+ "cock_a_doodle_doo": "꼬꼬댁",
+ "turkey": "칠면조",
+ "gobble": "칠면조 울음소리",
+ "duck": "오리",
+ "quack": "오리 울음소리",
+ "goose": "거위",
+ "honk": "거위 울음소리",
+ "wild_animals": "야생 동물",
+ "roaring_cats": "맹수 포효",
+ "roar": "포효",
+ "chirp": "새 울음소리",
+ "squawk": "지저귐",
+ "pigeon": "비둘기",
+ "coo": "비둘기 울음소리",
+ "crow": "까마귀",
+ "caw": "까마귀 울음소리",
+ "owl": "부엉이",
+ "hoot": "부엉이 울음소리",
+ "flapping_wings": "날갯짓",
+ "bicycle_bell": "자전거 벨",
+ "tuning_fork": "소리굽쇠",
+ "chime": "차임벨",
+ "wind_chime": "풍경",
+ "harmonica": "하모니카",
+ "steel_guitar": "스틸 기타",
+ "tapping": "두드림",
+ "strum": "기타 스트로크",
+ "banjo": "밴조",
+ "sitar": "시타르",
+ "mandolin": "만돌린",
+ "zither": "지더",
+ "ukulele": "우쿨렐레",
+ "lawn_mower": "잔디깎이",
+ "chainsaw": "전기톱",
+ "medium_engine": "중형 엔진",
+ "heavy_engine": "대형 엔진",
+ "engine_knocking": "엔진 노킹",
+ "engine_starting": "엔진 시동",
+ "idling": "공회전",
+ "alarm": "알람",
+ "telephone": "전화",
+ "telephone_bell_ringing": "전화 소리",
+ "ringtone": "벨소리",
+ "telephone_dialing": "전화 다이얼",
+ "dial_tone": "발신음",
+ "cash_register": "금전등록기",
+ "printer": "프린터",
+ "single-lens_reflex_camera": "카메라 셔터",
+ "tools": "도구들",
+ "hammer": "망치",
+ "jackhammer": "착암기",
+ "sawing": "톱질",
+ "filing": "연마",
+ "sanding": "사포질",
+ "power_tool": "전동 도구",
+ "drill": "드릴",
+ "explosion": "폭발",
+ "gunshot": "총소리",
+ "machine_gun": "기관총",
+ "fusillade": "연속 총성",
+ "artillery_fire": "포격",
+ "cap_gun": "화약 총",
+ "fireworks": "불꽃놀이",
+ "firecracker": "폭죽",
+ "car_alarm": "차량 경보",
+ "power_windows": "전동 창문"
}
diff --git a/web/public/locales/ko/common.json b/web/public/locales/ko/common.json
index 103e54c1f..80293f4f0 100644
--- a/web/public/locales/ko/common.json
+++ b/web/public/locales/ko/common.json
@@ -184,7 +184,8 @@
"faceLibrary": "얼굴 라이브러리",
"classification": "분류",
"chat": "채팅",
- "actions": "작업"
+ "actions": "작업",
+ "profiles": "프로필"
},
"unit": {
"speed": {
@@ -260,7 +261,8 @@
"saveAll": "모두 저장",
"savingAll": "모두 저장 중. …",
"undoAll": "모두 실행 취소",
- "applying": "적용 중…"
+ "applying": "적용 중…",
+ "retry": "재시도"
},
"toast": {
"copyUrlToClipboard": "클립보드에 URL이 복사되었습니다.",
@@ -269,7 +271,8 @@
"error": {
"title": "설정 저장 실패: {{errorMessage}}",
"noMessage": "설정 저장이 실패했습니다"
- }
+ },
+ "success": "설정 변경이 성공적으로 저장되었습니다."
}
},
"role": {
@@ -302,5 +305,7 @@
"field": {
"optional": "선택",
"internalID": "Frigate 내부 ID는 구성 및 데이터베이스에서 사용됩니다"
- }
+ },
+ "no_items": "내역 없음",
+ "validation_errors": "검증 오류"
}
diff --git a/web/public/locales/ko/objects.json b/web/public/locales/ko/objects.json
index e3506b15d..da5ca783b 100644
--- a/web/public/locales/ko/objects.json
+++ b/web/public/locales/ko/objects.json
@@ -15,7 +15,7 @@
"bench": "벤치",
"bird": "새",
"cat": "고양이",
- "dog": "강아지",
+ "dog": "개",
"horse": "말",
"sheep": "양",
"cow": "소",
@@ -93,7 +93,7 @@
"squirrel": "다람쥐",
"deer": "사슴",
"animal": "동물",
- "bark": "개",
+ "bark": "짖는 소리",
"fox": "여우",
"goat": "염소",
"rabbit": "토끼",
diff --git a/web/public/locales/ko/views/settings.json b/web/public/locales/ko/views/settings.json
index 969d92d08..c17eaa7fd 100644
--- a/web/public/locales/ko/views/settings.json
+++ b/web/public/locales/ko/views/settings.json
@@ -112,7 +112,8 @@
"cameraTimestampStyle": "타임스탬프 스타일",
"cameraMqtt": "카메라 MQTT",
"mediaSync": "미디어 동기화",
- "regionGrid": "영역 격자"
+ "regionGrid": "영역 격자",
+ "profiles": "프로필"
},
"dialog": {
"unsavedChanges": {
diff --git a/web/public/locales/ko/views/system.json b/web/public/locales/ko/views/system.json
index dc6609496..063137064 100644
--- a/web/public/locales/ko/views/system.json
+++ b/web/public/locales/ko/views/system.json
@@ -7,7 +7,8 @@
"logs": {
"frigate": "Frigate 로그 -Frigate",
"go2rtc": "Go2RTC 로그 - Frigate",
- "nginx": "Nginx 로그 - Frigate"
+ "nginx": "Nginx 로그 - Frigate",
+ "websocket": "메세지 로그 - Frigate"
}
},
"title": "시스템",
@@ -33,6 +34,29 @@
"fetchingLogsFailed": "로그 가져오기 오류: {{errorMessage}}",
"whileStreamingLogs": "스크리밍 로그 중 오류: {{errorMessage}}"
}
+ },
+ "websocket": {
+ "label": "메세지",
+ "pause": "일시중지",
+ "resume": "재개",
+ "clear": "비우기",
+ "filter": {
+ "all": "전체 항목",
+ "topics": "항목",
+ "events": "이벤트",
+ "reviews": "리뷰",
+ "classification": "분류",
+ "face_recognition": "얼굴 인식",
+ "lpr": "번호판 인식",
+ "system": "시스템",
+ "camera": "카메라",
+ "all_cameras": "모든 카메라",
+ "cameras_count_one": "{{count}} 카메라",
+ "cameras_count_other": "{{count}} 카메라"
+ },
+ "empty": "수신된 메시지 없음",
+ "count_one": "{{count}} 메세지",
+ "count_other": "{{count}} 메세지"
}
},
"general": {
diff --git a/web/public/locales/lt/views/classificationModel.json b/web/public/locales/lt/views/classificationModel.json
index fdebdf21a..878ae22b8 100644
--- a/web/public/locales/lt/views/classificationModel.json
+++ b/web/public/locales/lt/views/classificationModel.json
@@ -12,8 +12,12 @@
},
"toast": {
"success": {
- "deletedCategory": "Ištrinta Klasę",
- "deletedImage": "Ištrinti Nuotraukas",
+ "deletedCategory_one": "Ištrinta Klasę",
+ "deletedCategory_few": "",
+ "deletedCategory_other": "",
+ "deletedImage_one": "Ištrinti Nuotraukas",
+ "deletedImage_few": "",
+ "deletedImage_other": "",
"categorizedImage": "Sekmingai Klasifikuotas Nuotrauka",
"trainedModel": "Modelis sėkmingai apmokytas.",
"trainingModel": "Sėkmingai pradėtas modelio apmokymas.",
diff --git a/web/public/locales/nb-NO/common.json b/web/public/locales/nb-NO/common.json
index a614cced1..921ddc77b 100644
--- a/web/public/locales/nb-NO/common.json
+++ b/web/public/locales/nb-NO/common.json
@@ -123,7 +123,19 @@
"export": "Eksporter",
"deleteNow": "Slett nå",
"next": "Neste",
- "continue": "Fortsett"
+ "continue": "Fortsett",
+ "add": "Legg til",
+ "undo": "Angre",
+ "copiedToClipboard": "Kopiert til utklippstavlen",
+ "modified": "Modifisert",
+ "saveAll": "Lagre alt",
+ "savingAll": "Lagrer alt…",
+ "undoAll": "Angre alt",
+ "applying": "Bruker…",
+ "overridden": "Overstyrt",
+ "resetToGlobal": "Tilbakestill til global",
+ "resetToDefault": "Tilbakestill til standard",
+ "retry": "Prøv igjen"
},
"menu": {
"help": "Hjelp",
@@ -226,7 +238,10 @@
"default": "Standard",
"highcontrast": "Høy kontrast"
},
- "classification": "Klassifisering"
+ "classification": "Klassifisering",
+ "profiles": "Profiler",
+ "chat": "Chat",
+ "actions": "Handlinger"
},
"pagination": {
"next": {
@@ -274,7 +289,8 @@
"error": {
"title": "Kunne ikke lagre endringer i konfigurasjonen: {{errorMessage}}",
"noMessage": "Kunne ikke lagre endringer i konfigurasjonen"
- }
+ },
+ "success": "Konfigurasjonsendringer lagret."
}
},
"role": {
@@ -306,5 +322,7 @@
"two": "{{0}} og {{1}}",
"many": "{{items}}, og {{last}}",
"separatorWithSpace": ", "
- }
+ },
+ "validation_errors": "Valideringsfeil",
+ "no_items": "Ingen elementer"
}
diff --git a/web/public/locales/nb-NO/components/camera.json b/web/public/locales/nb-NO/components/camera.json
index 750e09e63..601da4bc1 100644
--- a/web/public/locales/nb-NO/components/camera.json
+++ b/web/public/locales/nb-NO/components/camera.json
@@ -77,11 +77,12 @@
"showOptions": "Vis alternativer",
"hideOptions": "Skjul alternativer"
},
- "boundingBox": "Avgrensningsboks",
+ "boundingBox": "Markeringsramme",
"timestamp": "Tidsstempel",
"zones": "Soner",
"mask": "Maske",
"motion": "Bevegelse",
- "regions": "Regioner"
+ "regions": "Regioner",
+ "paths": "Stier"
}
}
diff --git a/web/public/locales/nb-NO/components/dialog.json b/web/public/locales/nb-NO/components/dialog.json
index fb9bb312d..6f38ca424 100644
--- a/web/public/locales/nb-NO/components/dialog.json
+++ b/web/public/locales/nb-NO/components/dialog.json
@@ -6,7 +6,8 @@
"title": "Frigate starter på nytt",
"button": "Tving omlasting nå",
"content": "Denne siden vil lastes inn på nytt om {{countdown}} sekunder."
- }
+ },
+ "description": "Dette vil stoppe Frigate et øyeblikk mens det starter på nytt."
},
"explore": {
"plus": {
@@ -73,7 +74,11 @@
},
"select": "Velg",
"export": "Eksporter",
- "selectOrExport": "Velg eller eksporter"
+ "selectOrExport": "Velg eller eksporter",
+ "case": {
+ "label": "Sak",
+ "placeholder": "Velg en sak"
+ }
},
"streaming": {
"label": "Strøm",
diff --git a/web/public/locales/nb-NO/config/cameras.json b/web/public/locales/nb-NO/config/cameras.json
index 0967ef424..ef94b6f35 100644
--- a/web/public/locales/nb-NO/config/cameras.json
+++ b/web/public/locales/nb-NO/config/cameras.json
@@ -1 +1,945 @@
-{}
+{
+ "mqtt": {
+ "label": "MQTT",
+ "bounding_box": {
+ "description": "Tegn markeringsrammer på bilder som publiseres over MQTT.",
+ "label": "Legg til markeringsramme"
+ },
+ "crop": {
+ "description": "Beskjær bilder publisert til MQTT til det detekterte objektets markeringsramme.",
+ "label": "Beskjær bilde"
+ },
+ "description": "Innstillinger for bilde-publisering via MQTT.",
+ "enabled": {
+ "description": "Aktiver publisering av stillbilder for objekter til MQTT-emner for dette kameraet.",
+ "label": "Send bilde"
+ },
+ "height": {
+ "description": "Høyde (piksler) for bilder som publiseres over MQTT.",
+ "label": "Bildehøyde"
+ },
+ "quality": {
+ "description": "JPEG-kvalitet for bilder publisert til MQTT (0-100).",
+ "label": "JPEG-kvalitet"
+ },
+ "required_zones": {
+ "description": "Soner et objekt må tre inn i for at et MQTT-bilde skal publiseres.",
+ "label": "Påkrevde soner"
+ },
+ "timestamp": {
+ "description": "Legg et tidsstempel over bilder som publiseres til MQTT.",
+ "label": "Legg til tidsstempel"
+ }
+ },
+ "notifications": {
+ "label": "Varslinger",
+ "enabled": {
+ "label": "Aktiver varslinger",
+ "description": "Aktiver eller deaktiver varslinger for dette kameraet."
+ },
+ "email": {
+ "label": "E-postadresse for varsling",
+ "description": "E-postadresse som brukes for push-varslinger eller som kreves av visse varslingstjenester."
+ },
+ "cooldown": {
+ "label": "Nedkjølingsperiode",
+ "description": "Nedkjøling (sekunder) mellom varslinger for å unngå å spamme mottakere."
+ },
+ "enabled_in_config": {
+ "label": "Opprinnelig varslingsstatus",
+ "description": "Indikerer om varslinger var aktivert i den opprinnelige statiske konfigurasjonen."
+ },
+ "description": "Innstillinger for å aktivere og kontrollere varslinger for dette kameraet."
+ },
+ "audio": {
+ "label": "Lydhendelser",
+ "enabled": {
+ "label": "Aktiver lyddeteksjon",
+ "description": "Aktiver eller deaktiver deteksjon av lydhendelser for dette kameraet."
+ },
+ "max_not_heard": {
+ "label": "Tidsavbrudd for avslutning",
+ "description": "Antall sekunder uten den konfigurerte lydtypen før lydhendelsen avsluttes."
+ },
+ "min_volume": {
+ "label": "Minimumsvolum",
+ "description": "Minimum terskel for RMS-volum som kreves for å kjøre lyddeteksjon; lavere verdier øker følsomheten (f.eks. 200 høy, 500 middels, 1000 lav)."
+ },
+ "listen": {
+ "label": "Lyttetyper",
+ "description": "Liste over typer lydhendelser som skal detekteres (f.eks. bjeff, brannalarm, skrik, tale, rop)."
+ },
+ "filters": {
+ "label": "Lydfiltre",
+ "description": "Filterinnstillinger per lydtype, som konfidensterskler for å redusere falske positive."
+ },
+ "enabled_in_config": {
+ "label": "Opprinnelig lydstatus",
+ "description": "Indikerer om lyddeteksjon opprinnelig var aktivert i den statiske konfigurasjonsfilen."
+ },
+ "num_threads": {
+ "label": "Deteksjonstråder",
+ "description": "Antall tråder som skal brukes til prosessering av lyddeteksjon."
+ },
+ "description": "Innstillinger for lydbasert hendelsesdeteksjon for dette kameraet."
+ },
+ "birdseye": {
+ "label": "Fugleperspektiv",
+ "description": "Innstillinger for Fugleperspektiv (Birdseye) som setter sammen flere kamerastrømmer til ett felles oppsett.",
+ "enabled": {
+ "label": "Aktiver Fugleperspektiv",
+ "description": "Aktiver eller deaktiver funksjonen for Fugleperspektiv."
+ },
+ "mode": {
+ "label": "Sporingsmodus",
+ "description": "Modus for å inkludere kameraer i Fugleperspektiv: 'objects', 'motion' eller 'continuous'."
+ },
+ "order": {
+ "label": "Posisjon",
+ "description": "Numerisk posisjon som kontrollerer kameraenes rekkefølge i Fugleperspektiv-oppsettet."
+ }
+ },
+ "detect": {
+ "label": "Objektdeteksjon",
+ "description": "Innstillinger for deteksjonsrollen brukt til å kjøre objektdeteksjon og starte sporing (trackere).",
+ "enabled": {
+ "label": "Aktiver objektdeteksjon",
+ "description": "Aktiver eller deaktiver objektdeteksjon for dette kameraet."
+ },
+ "height": {
+ "label": "Deteksjonshøyde",
+ "description": "Høyde (piksler) på bilder brukt for deteksjonsstrømmen; la stå tom for å bruke strømmens opprinnelige oppløsning."
+ },
+ "width": {
+ "label": "Deteksjonsbredde",
+ "description": "Bredde (piksler) på bilder brukt for deteksjonsstrømmen; la stå tom for å bruke strømmens opprinnelige oppløsning."
+ },
+ "fps": {
+ "label": "Deteksjons-FPS",
+ "description": "Ønsket antall bilder per sekund (FPS) for deteksjon; lavere verdier reduserer CPU-bruk (anbefalt verdi er 5, sett kun høyere – maks 10 – ved sporing av objekter i svært høy fart)."
+ },
+ "min_initialized": {
+ "label": "Minimum initialiseringsbilder",
+ "description": "Antall påfølgende deteksjonstreff som kreves før et sporet objekt opprettes. Øk for å redusere falske initialiseringer. Standardverdi er FPS delt på 2."
+ },
+ "max_disappeared": {
+ "label": "Maks bilder borte",
+ "description": "Antall bilder uten deteksjon før et sporet objekt anses som borte."
+ },
+ "stationary": {
+ "label": "Konfigurasjon for stasjonære objekter",
+ "description": "Innstillinger for å detektere og håndtere objekter som forblir i ro over en viss tid.",
+ "interval": {
+ "label": "Intervall for stasjonære objekter",
+ "description": "Hvor ofte (i antall bilder) det skal kjøres en deteksjonssjekk for å bekrefte et stasjonært objekt."
+ },
+ "threshold": {
+ "label": "Terskel for stasjonære objekter",
+ "description": "Antall bilder uten posisjonsendring som kreves for å markere et objekt som stasjonært."
+ },
+ "max_frames": {
+ "label": "Maks antall bilder",
+ "description": "Begrenser hvor lenge stasjonære objekter spores før de forkastes.",
+ "default": {
+ "label": "Standard maks bilder",
+ "description": "Standard maksimalt antall bilder et stasjonært objekt spores før det stoppes."
+ },
+ "objects": {
+ "label": "Maks bilder per objekt",
+ "description": "Overstyringer per objekttype for maksimalt antall bilder stasjonære objekter skal spores."
+ }
+ },
+ "classifier": {
+ "label": "Aktiver visuell klassifiserer",
+ "description": "Bruk en visuell klassifiserer for å detektere reelt stasjonære objekter selv når markeringsrammene \"skjelver\" (jitter)."
+ }
+ },
+ "annotation_offset": {
+ "label": "Forskyvning av annotering",
+ "description": "Millisekunder for å forskyve deteksjonsannoteringer for bedre samsvar mellom markeringsrammer på tidslinjen og opptakene; kan være positiv eller negativ."
+ }
+ },
+ "ffmpeg": {
+ "label": "FFmpeg",
+ "description": "FFmpeg-innstillinger, inkludert sti til binærfil, argumenter, alternativer for maskinvareakselerasjon og utdata-argumenter per rolle.",
+ "path": {
+ "label": "FFmpeg-sti",
+ "description": "Sti til FFmpeg-binærfilen som skal brukes, eller et versjonsalias (\"5.0\" eller \"7.0\")."
+ },
+ "global_args": {
+ "label": "Globale FFmpeg-argumenter",
+ "description": "Globale argumenter som sendes til FFmpeg-prosesser."
+ },
+ "hwaccel_args": {
+ "label": "Argumenter for maskinvareakselerasjon",
+ "description": "Argumenter for maskinvareakselerasjon i FFmpeg. Leverandørspesifikke forhåndsinnstillinger anbefales."
+ },
+ "input_args": {
+ "label": "Inndata-argumenter",
+ "description": "Inndata-argumenter som brukes på FFmpeg-innstrømmer."
+ },
+ "output_args": {
+ "label": "Utdata-argumenter",
+ "description": "Standard utdata-argumenter brukt for ulike FFmpeg-roller som deteksjon og opptak.",
+ "detect": {
+ "label": "Utdata-argumenter for deteksjon",
+ "description": "Standard utdata-argumenter for strømmer med deteksjonsrolle."
+ },
+ "record": {
+ "label": "Utdata-argumenter for opptak",
+ "description": "Standard utdata-argumenter for strømmer med opptaksrolle."
+ }
+ },
+ "retry_interval": {
+ "label": "FFmpeg-forsøksintervall",
+ "description": "Sekunder å vente før man prøver å koble til en kamerastrøm på nytt etter feil. Standard er 10."
+ },
+ "apple_compatibility": {
+ "label": "Apple-kompatibilitet",
+ "description": "Aktiver HEVC-tagging for bedre kompatibilitet med Apple-avspillere ved opptak i H.265."
+ },
+ "gpu": {
+ "label": "GPU-indeks",
+ "description": "Standard GPU-indeks som brukes til maskinvareakselerasjon hvis tilgjengelig."
+ },
+ "inputs": {
+ "label": "Kamerainndata",
+ "description": "Liste over definisjoner for inndatastrømmer (stier og roller) for dette kameraet.",
+ "path": {
+ "label": "Inndatasti",
+ "description": "URL eller sti for kameraets inndatastrøm."
+ },
+ "roles": {
+ "label": "Inndataroller",
+ "description": "Roller for denne inndatastrømmen."
+ },
+ "global_args": {
+ "label": "Globale FFmpeg-argumenter",
+ "description": "Globale FFmpeg-argumenter for denne inndatastrømmen."
+ },
+ "hwaccel_args": {
+ "label": "Argumenter for maskinvareakselerasjon",
+ "description": "Argumenter for maskinvareakselerasjon for denne inndatastrømmen."
+ },
+ "input_args": {
+ "label": "Inndata-argumenter",
+ "description": "Inndata-argumenter spesifisert for denne strømmen."
+ }
+ }
+ },
+ "live": {
+ "label": "Direkteavspilling",
+ "streams": {
+ "label": "Navn på direktestrømmer",
+ "description": "Kobling mellom konfigurerte strøm-navn og restream/go2rtc-navn brukt for direkteavspilling."
+ },
+ "height": {
+ "label": "Direktevisningshøyde",
+ "description": "Høyde (piksler) for jsmpeg-direktestrømmen i web-grensesnittet; må være <= høyden på deteksjonsstrømmen."
+ },
+ "quality": {
+ "label": "Direktevisningskvalitet",
+ "description": "Kodingskvalitet for jsmpeg-strømmen (1 høyest, 31 lavest)."
+ },
+ "description": "Innstillinger brukt av web-grensesnittet for valg av direktestrøm, oppløsning og kvalitet."
+ },
+ "motion": {
+ "label": "Bevegelsesdeteksjon",
+ "enabled": {
+ "label": "Aktiver bevegelsesdeteksjon",
+ "description": "Aktiver eller deaktiver bevegelsesdeteksjon for dette kameraet."
+ },
+ "threshold": {
+ "label": "Terskel for bevegelse",
+ "description": "Terskel for pikselendring brukt av bevegelsesdetektoren; høyere verdier reduserer følsomheten (intervall 1–255)."
+ },
+ "lightning_threshold": {
+ "label": "Terskel for lyn/lysglimt",
+ "description": "Terskel for å oppdage og ignorere korte lysglimt (lavere er mer følsom, verdier mellom 0,3 og 1,0). Dette stopper ikke bevegelsesdeteksjon helt; det fører bare til at detektoren slutter å analysere flere bilder når terskelen er nådd. Bevegelsesbaserte opptak blir fortsatt laget under slike hendelser."
+ },
+ "skip_motion_threshold": {
+ "label": "Terskel for å hoppe over bevegelse",
+ "description": "Hvis satt til en verdi mellom 0,0 og 1,0, og mer enn denne andelen av bildet endres i ett enkelt bilde, vil detektoren ikke returnere noen bevegelsesbokser og kalibrere på nytt umiddelbart. Dette kan spare CPU og redusere falske positive under lyn, storm, osv., men kan gå glipp av ekte hendelser som at et PTZ-kamera autosporer et objekt. Avveiningen står mellom å miste noen megabyte med opptak mot å måtte se gjennom et par korte klipp. La stå tom (None) for å deaktivere denne funksjonen."
+ },
+ "improve_contrast": {
+ "label": "Forbedre kontrast",
+ "description": "Bruk kontrastforbedring på bilder før bevegelsesanalyse for å hjelpe deteksjonen."
+ },
+ "contour_area": {
+ "label": "Konturområde",
+ "description": "Minimum konturområde i piksler som kreves for at en bevegelseskontur skal telles med."
+ },
+ "delta_alpha": {
+ "label": "Delta alfa",
+ "description": "Alfa-blandingsfaktor brukt i bildedifferensiering for bevegelsesberegning."
+ },
+ "frame_alpha": {
+ "label": "Bilde-alfa",
+ "description": "Alfa-verdi brukt ved sammenfletting av bilder for forhåndsbehandling av bevegelse."
+ },
+ "frame_height": {
+ "label": "Bildehøyde",
+ "description": "Høyde i piksler som bildene skal skaleres til ved beregning av bevegelse."
+ },
+ "mask": {
+ "label": "Maskekoordinater",
+ "description": "Sorterte x,y-koordinater som definerer polygonet for bevegelsesmasken brukt til å inkludere/ekskludere områder."
+ },
+ "mqtt_off_delay": {
+ "label": "MQTT-av-forsinkelse",
+ "description": "Sekunder å vente etter siste bevegelse før en MQTT 'av'-status publiseres."
+ },
+ "enabled_in_config": {
+ "label": "Opprinnelig bevegelsesstatus",
+ "description": "Indikerer om bevegelsesdeteksjon var aktivert i den opprinnelige statiske konfigurasjonen."
+ },
+ "raw_mask": {
+ "label": "Råmaske"
+ },
+ "description": "Standardinnstillinger for bevegelsesdeteksjon for dette kameraet."
+ },
+ "objects": {
+ "label": "Objekter",
+ "description": "Standardinnstillinger for objektsporing, inkludert hvilke etiketter som skal spores og filtre per objekt.",
+ "track": {
+ "label": "Objekter som skal spores",
+ "description": "Liste over objektetiketter som skal spores for dette kameraet."
+ },
+ "filters": {
+ "label": "Objektfiltre",
+ "description": "Filtre som brukes på detekterte objekter for å redusere falske positive (område, forhold, konfidens).",
+ "min_area": {
+ "label": "Minimum objektområde",
+ "description": "Minimum areal for markeringsramme (piksler eller prosent) som kreves for denne objekttypen. Kan oppgis i piksler (heltall) eller prosent (desimaltall mellom 0,000001 og 0,99)."
+ },
+ "max_area": {
+ "label": "Maksimum objektområde",
+ "description": "Maksimalt areal for markeringsramme (piksler eller prosent) tillatt for denne objekttypen."
+ },
+ "min_ratio": {
+ "label": "Minimum størrelsesforhold",
+ "description": "Minimum forhold mellom bredde og høyde som kreves for at markeringsrammen skal kvalifisere."
+ },
+ "max_ratio": {
+ "label": "Maksimum størrelsesforhold",
+ "description": "Maksimalt forhold mellom bredde og høyde tillatt for at markeringsrammen skal kvalifisere."
+ },
+ "threshold": {
+ "label": "Konfidensterskel",
+ "description": "Gjennomsnittlig terskel for deteksjonskonfidens som kreves for at objektet skal anses som en ekte positiv."
+ },
+ "min_score": {
+ "label": "Minimum konfidens",
+ "description": "Minimum deteksjonskonfidens for et enkeltbilde som kreves for at objektet skal telles med."
+ },
+ "mask": {
+ "label": "Filtermaske",
+ "description": "Polygonkoordinater som definerer hvor dette filteret gjelder innenfor bildet."
+ },
+ "raw_mask": {
+ "label": "Råmaske"
+ }
+ },
+ "mask": {
+ "label": "Objektmaske",
+ "description": "Maskepolygon brukt for å forhindre objektdeteksjon i spesifiserte områder."
+ },
+ "raw_mask": {
+ "label": "Råmaske"
+ },
+ "genai": {
+ "label": "GenAI-objektkonfigurasjon",
+ "description": "GenAI-alternativer for å beskrive sporede objekter og sende bilder til generering.",
+ "enabled": {
+ "label": "Aktiver GenAI",
+ "description": "Aktiver GenAI-generering av beskrivelser for sporede objekter som standard."
+ },
+ "use_snapshot": {
+ "label": "Bruk stillbilder",
+ "description": "Bruk stillbilder av objekter i stedet for miniatyrbilder for GenAI-beskrivelsesgenerering."
+ },
+ "prompt": {
+ "label": "Ledetekst for bildetekst",
+ "description": "Standardmal for ledetekst brukt ved generering av beskrivelser med GenAI."
+ },
+ "object_prompts": {
+ "label": "Objektspesifikke ledetekster",
+ "description": "Ledetekster per objekt for å tilpasse GenAI-resultater for spesifikke etiketter."
+ },
+ "objects": {
+ "label": "GenAI-objekter",
+ "description": "Liste over objektetiketter som skal sendes til GenAI som standard."
+ },
+ "required_zones": {
+ "label": "Påkrevde soner",
+ "description": "Soner som må entres for at objekter skal kvalifisere for GenAI-beskrivelsesgenerering."
+ },
+ "debug_save_thumbnails": {
+ "label": "Lagre miniatyrbilder",
+ "description": "Lagre miniatyrbilder sendt til GenAI for feilsøking og inspeksjon."
+ },
+ "send_triggers": {
+ "label": "GenAI-utløsere",
+ "description": "Definerer når bilder skal sendes til GenAI (ved slutt, etter oppdateringer, osv.).",
+ "tracked_object_end": {
+ "label": "Send ved avslutning",
+ "description": "Send en forespørsel til GenAI når det sporede objektet avsluttes."
+ },
+ "after_significant_updates": {
+ "label": "Tidlig GenAI-utløser",
+ "description": "Send en forespørsel til GenAI etter et spesifisert antall signifikante oppdateringer for det sporede objektet."
+ }
+ },
+ "enabled_in_config": {
+ "label": "Opprinnelig GenAI-status",
+ "description": "Indikerer om GenAI var aktivert i den opprinnelige statiske konfigurasjonen."
+ }
+ }
+ },
+ "record": {
+ "label": "Opptak",
+ "enabled": {
+ "label": "Aktiver opptak",
+ "description": "Aktiver eller deaktiver opptak for dette kameraet."
+ },
+ "expire_interval": {
+ "label": "Intervall for opprydding av opptak",
+ "description": "Minutter mellom hver opprydding som fjerner foreldede opptakssegmenter."
+ },
+ "continuous": {
+ "label": "Kontinuerlig bevaring",
+ "description": "Antall dager opptak skal bevares uavhengig av sporede objekter eller bevegelse.",
+ "days": {
+ "label": "Bevaringsdager",
+ "description": "Dager opptak skal bevares."
+ }
+ },
+ "motion": {
+ "label": "Bevaring ved bevegelse",
+ "description": "Antall dager opptak utløst av bevegelse skal bevares uavhengig av sporede objekter.",
+ "days": {
+ "label": "Bevaringsdager",
+ "description": "Dager opptak skal bevares."
+ }
+ },
+ "detections": {
+ "label": "Bevaring ved deteksjon",
+ "description": "Innstillinger for bevaring av opptak for deteksjonshendelser, inkludert varighet for forhånds-/etteropptak.",
+ "pre_capture": {
+ "label": "Sekunder forhåndsopptak",
+ "description": "Antall sekunder før deteksjonshendelsen som skal inkluderes i opptaket."
+ },
+ "post_capture": {
+ "label": "Sekunder etteropptak",
+ "description": "Antall sekunder etter deteksjonshendelsen som skal inkluderes i opptaket."
+ },
+ "retain": {
+ "label": "Hendelsesbevaring",
+ "description": "Bevaringsinnstillinger for opptak av deteksjonshendelser.",
+ "days": {
+ "label": "Bevaringsdager",
+ "description": "Antall dager opptak av deteksjonshendelser skal bevares."
+ },
+ "mode": {
+ "label": "Bevaringsmodus",
+ "description": "Modus for bevaring: all (alle), motion (bevegelse) eller active_objects (aktive objekter)."
+ }
+ }
+ },
+ "alerts": {
+ "label": "Bevaring av varsler",
+ "description": "Innstillinger for bevaring av opptak for varslingshendelser, inkludert varighet for forhånds-/etteropptak.",
+ "pre_capture": {
+ "label": "Sekunder forhåndsopptak",
+ "description": "Antall sekunder før deteksjonshendelsen som skal inkluderes i opptaket."
+ },
+ "post_capture": {
+ "label": "Sekunder etteropptak",
+ "description": "Antall sekunder etter deteksjonshendelsen som skal inkluderes i opptaket."
+ },
+ "retain": {
+ "label": "Hendelsesbevaring",
+ "description": "Bevaringsinnstillinger for opptak av deteksjonshendelser.",
+ "days": {
+ "label": "Bevaringsdager",
+ "description": "Antall dager opptak av deteksjonshendelser skal bevares."
+ },
+ "mode": {
+ "label": "Bevaringsmodus",
+ "description": "Modus for bevaring: all (lagre alle segmenter), motion (lagre segmenter med bevegelse) eller active_objects (lagre segmenter med aktive objekter)."
+ }
+ }
+ },
+ "export": {
+ "label": "Konfigurasjon for eksport",
+ "description": "Innstillinger som brukes ved eksport av opptak, som for eksempel tidsforløp (timelapse) og maskinvareakselerasjon.",
+ "hwaccel_args": {
+ "label": "Argumenter for maskinvareakselerasjon ved eksport",
+ "description": "Argumenter for maskinvareakselerasjon som skal brukes ved eksport og transkoding."
+ }
+ },
+ "preview": {
+ "label": "Konfigurasjon for forhåndsvisning",
+ "description": "Innstillinger som kontrollerer kvaliteten på forhåndsvisninger av opptak i grensesnittet.",
+ "quality": {
+ "label": "Kvalitet på forhåndsvisning",
+ "description": "Kvalitetsnivå for forhåndsvisning (very_low, low, medium, high, very_high)."
+ }
+ },
+ "enabled_in_config": {
+ "label": "Opprinnelig opptaksstatus",
+ "description": "Indikerer om opptak var aktivert i den opprinnelige statiske konfigurasjonen."
+ },
+ "description": "Innstillinger for opptak og bevaring for dette kameraet."
+ },
+ "review": {
+ "label": "Inspeksjon",
+ "alerts": {
+ "label": "Konfigurasjon for varsler",
+ "description": "Innstillinger for hvilke sporede objekter som genererer varsler og hvordan disse bevares.",
+ "enabled": {
+ "label": "Aktiver varsler",
+ "description": "Aktiver eller deaktiver generering av varsler for dette kameraet."
+ },
+ "labels": {
+ "label": "Varslingsetiketter",
+ "description": "Liste over objektetiketter som kvalifiserer som varsler (for eksempel: bil, person)."
+ },
+ "required_zones": {
+ "label": "Påkrevde soner",
+ "description": "Soner et objekt må tre inn i for å anses som et varsel; la stå tom for å tillate alle soner."
+ },
+ "enabled_in_config": {
+ "label": "Opprinnelig varslingsstatus",
+ "description": "Registrerer om varsler opprinnelig var aktivert i den statiske konfigurasjonen."
+ },
+ "cutoff_time": {
+ "label": "Avskjæringstid for varsler",
+ "description": "Sekunder å vente etter at varslingsutløsende aktivitet har opphørt før et varsel avsluttes."
+ }
+ },
+ "detections": {
+ "label": "Konfigurasjon for deteksjoner",
+ "description": "Innstillinger for hvilke sporede objekter som genererer deteksjoner (ikke-varsler) og hvordan disse bevares.",
+ "enabled": {
+ "label": "Aktiver deteksjoner",
+ "description": "Aktiver eller deaktiver deteksjonshendelser for dette kameraet."
+ },
+ "labels": {
+ "label": "Deteksjonsetiketter",
+ "description": "Liste over objektetiketter som kvalifiserer som deteksjonshendelser."
+ },
+ "required_zones": {
+ "label": "Påkrevde soner",
+ "description": "Soner et objekt må tre inn i for å anses som en deteksjon; la stå tom for å tillate alle soner."
+ },
+ "cutoff_time": {
+ "label": "Avskjæringstid for deteksjoner",
+ "description": "Sekunder å vente etter at deteksjonsutløsende aktivitet har opphørt før en deteksjon avsluttes."
+ },
+ "enabled_in_config": {
+ "label": "Opprinnelig deteksjonsstatus",
+ "description": "Registrerer om deteksjoner opprinnelig var aktivert i den statiske konfigurasjonen."
+ }
+ },
+ "genai": {
+ "label": "GenAI-konfigurasjon",
+ "description": "Kontrollerer bruk av generativ AI for å produsere beskrivelser og sammendrag av inspeksjonselementer.",
+ "enabled": {
+ "label": "Aktiver GenAI-beskrivelser",
+ "description": "Aktiver eller deaktiver GenAI-genererte beskrivelser og sammendrag for inspeksjonselementer."
+ },
+ "alerts": {
+ "label": "Aktiver GenAI for varsler",
+ "description": "Bruk GenAI til å generere beskrivelser for varslingselementer."
+ },
+ "detections": {
+ "label": "Aktiver GenAI for deteksjoner",
+ "description": "Bruk GenAI til å generere beskrivelser for deteksjonselementer."
+ },
+ "image_source": {
+ "label": "Bildekilde for inspeksjon",
+ "description": "Kilde for bilder sendt til GenAI ('preview' eller 'recordings'); 'recordings' bruker bilder med høyere kvalitet, men flere tokens."
+ },
+ "additional_concerns": {
+ "label": "Tilleggshensyn",
+ "description": "En liste over tilleggshensyn eller notater GenAI bør vurdere ved evaluering av aktivitet på dette kameraet."
+ },
+ "debug_save_thumbnails": {
+ "label": "Lagre miniatyrbilder",
+ "description": "Lagre miniatyrbilder som sendes til GenAI-leverandøren for feilsøking og inspeksjon."
+ },
+ "enabled_in_config": {
+ "label": "Opprinnelig GenAI-status",
+ "description": "Registrerer om GenAI-inspeksjon opprinnelig var aktivert i den statiske konfigurasjonen."
+ },
+ "preferred_language": {
+ "label": "Foretrukket språk",
+ "description": "Foretrukket språk som skal etterspørres fra GenAI-leverandøren for genererte svar."
+ },
+ "activity_context_prompt": {
+ "label": "Ledetekst for aktivitetskontekst",
+ "description": "Egendefinert ledetekst som beskriver hva som er og ikke er mistenkelig aktivitet for å gi kontekst til GenAI-sammendrag."
+ }
+ },
+ "description": "Innstillinger for varsler, deteksjoner og GenAI-sammendrag for dette kameraet."
+ },
+ "snapshots": {
+ "label": "Stillbilder",
+ "enabled": {
+ "label": "Aktiver stillbilder",
+ "description": "Aktiver eller deaktiver lagring av stillbilder for dette kameraet."
+ },
+ "timestamp": {
+ "label": "Tidsstempel-overlegg",
+ "description": "Legg et tidsstempel over stillbilder fra API-et."
+ },
+ "bounding_box": {
+ "label": "Overlegg for markeringsramme",
+ "description": "Tegn markeringsrammer for sporede objekter på stillbilder fra API-et."
+ },
+ "crop": {
+ "label": "Beskjær stillbilde",
+ "description": "Beskjær stillbilder fra API-et til det detekterte objektets markeringsramme."
+ },
+ "required_zones": {
+ "label": "Påkrevde soner",
+ "description": "Soner et objekt må tre inn i for at et stillbilde skal lagres."
+ },
+ "height": {
+ "label": "Høyde på stillbilde",
+ "description": "Høyde (piksler) som stillbilder fra API-et skal skaleres til; la stå tom for å beholde opprinnelig størrelse."
+ },
+ "retain": {
+ "label": "Bevaring av stillbilder",
+ "description": "Bevaringsinnstillinger for stillbilder, inkludert standard antall dager og overstyringer per objekt.",
+ "default": {
+ "label": "Standard bevaring",
+ "description": "Standard antall dager stillbilder skal bevares."
+ },
+ "mode": {
+ "label": "Bevaringsmodus",
+ "description": "Modus for bevaring: all (lagre alle segmenter), motion (lagre segmenter med bevegelse) eller active_objects (lagre segmenter med aktive objekter)."
+ },
+ "objects": {
+ "label": "Objektbevaring",
+ "description": "Overstyringer per objekt for antall dager stillbilder skal bevares."
+ }
+ },
+ "quality": {
+ "label": "Kvalitet på stillbilde",
+ "description": "Kodingskvalitet for lagrede stillbilder (0-100)."
+ },
+ "description": "Innstillinger for API-genererte stillbilder av sporede objekter for dette kameraet."
+ },
+ "timestamp_style": {
+ "label": "Stil for tidsstempel",
+ "position": {
+ "label": "Posisjon for tidsstempel",
+ "description": "Posisjonen til tidsstempelet på bildet (tl/tr/bl/br)."
+ },
+ "format": {
+ "label": "Format for tidsstempel",
+ "description": "Formatstreng for dato og tid brukt for tidsstempler (Python datetime-formatkoder)."
+ },
+ "color": {
+ "label": "Farge på tidsstempel",
+ "description": "RGB-fargeverdier for tidsstempelteksten (alle verdier 0-255).",
+ "red": {
+ "label": "Rød",
+ "description": "Rød komponent (0-255) for tidsstempelfarge."
+ },
+ "green": {
+ "label": "Grønn",
+ "description": "Grønn komponent (0-255) for tidsstempelfarge."
+ },
+ "blue": {
+ "label": "Blå",
+ "description": "Blå komponent (0-255) for tidsstempelfarge."
+ }
+ },
+ "thickness": {
+ "label": "Tykkelse på tidsstempel",
+ "description": "Linjetykkelsen på tidsstempelteksten."
+ },
+ "effect": {
+ "label": "Effekt for tidsstempel",
+ "description": "Visuell effekt for tidsstempelteksten (none, solid, shadow)."
+ },
+ "description": "Stilalternativer for tidsstempler i strømmen, brukt på opptak og stillbilder."
+ },
+ "audio_transcription": {
+ "label": "Lydtranskripsjon",
+ "description": "Innstillinger for tale- og lydtranskripsjon i sanntid, brukt for hendelser og teksting.",
+ "live_enabled": {
+ "label": "Sanntidstranskripsjon",
+ "description": "Aktiver løpende transkripsjon av lyd etter hvert som den mottas."
+ },
+ "enabled": {
+ "description": "Aktiver eller deaktiver manuelt utløst transkripsjon av lydhendelser.",
+ "label": "Aktiver transkripsjon"
+ },
+ "enabled_in_config": {
+ "label": "Opprinnelig transkripsjonsstatus"
+ }
+ },
+ "semantic_search": {
+ "label": "Semantisk søk",
+ "triggers": {
+ "label": "Utløsere",
+ "description": "Handlinger og kriterier for kameraspesifikke utløsere for semantisk søk.",
+ "friendly_name": {
+ "label": "Visningsnavn",
+ "description": "Valgfritt visningsnavn for denne utløseren i grensesnittet."
+ },
+ "enabled": {
+ "label": "Aktiver denne utløseren",
+ "description": "Aktiver eller deaktiver denne utløseren for semantisk søk."
+ },
+ "type": {
+ "label": "Utløsertype",
+ "description": "Type utløser: 'miniatyrbilde' (match mot bilde) eller 'beskrivelse' (match mot tekst)."
+ },
+ "data": {
+ "label": "Utløserinnhold",
+ "description": "Tekstfrase eller miniatyrbilde-ID som skal matches mot sporede objekter."
+ },
+ "threshold": {
+ "label": "Utløser-terskel",
+ "description": "Minimum likhetsscore (0-1) som kreves for å aktivere denne utløseren."
+ },
+ "actions": {
+ "label": "Utløserhandlinger",
+ "description": "Liste over handlinger som skal utføres når utløseren matches (varsling, underetikett, egenskap)."
+ }
+ },
+ "description": "Innstillinger for semantisk søk som bygger og søker i objekt-embeddings for å finne lignende elementer."
+ },
+ "face_recognition": {
+ "label": "Ansiktsgjenkjenning",
+ "enabled": {
+ "label": "Aktiver ansiktsgjenkjenning",
+ "description": "Aktiver eller deaktiver ansiktsgjenkjenning."
+ },
+ "min_area": {
+ "label": "Minimum ansiktsareal",
+ "description": "Minimum areal (piksler) for en ansiktsboks før gjenkjenning forsøkes."
+ },
+ "description": "Innstillinger for ansiktsdeteksjon og gjenkjenning for dette kameraet."
+ },
+ "lpr": {
+ "label": "Gjenkjenning av kjennemerker",
+ "description": "Innstillinger for gjenkjenning av kjennemerker, inkludert deteksjonsterskler og kjente kjennemerkeer.",
+ "enabled": {
+ "label": "Aktiver skiltgjenkjenning",
+ "description": "Aktiver eller deaktiver kjennemerkegjenkjenning på dette kameraet."
+ },
+ "min_area": {
+ "label": "Minimum areal for kjennemerke",
+ "description": "Minimum areal (piksler) for et kjennemerke før gjenkjenning forsøkes."
+ },
+ "enhancement": {
+ "label": "Forbedringsnivå",
+ "description": "Forbedringsnivå (0-10) som brukes på kjennemerkebeskjæringer før OCR; høyere verdier forbedrer ikke alltid resultatet, nivåer over 5 fungerer ofte kun på nattbilder og bør brukes med forsiktighet."
+ },
+ "expire_time": {
+ "label": "Utløpstid (sekunder)",
+ "description": "Tid i sekunder før et ukjent kjennemerke foreldes fra sporingen (kun for dedikerte LPR-kameraer)."
+ }
+ },
+ "profiles": {
+ "label": "Profiler",
+ "description": "Navngitte konfigurasjonsprofiler med delvise overstyringer som kan aktiveres i kjøretid."
+ },
+ "onvif": {
+ "label": "ONVIF",
+ "description": "ONVIF-tilkobling og innstillinger for PTZ-autosporing for dette kameraet.",
+ "host": {
+ "label": "ONVIF-vert",
+ "description": "Vert (og valgfritt skjema) for ONVIF-tjenesten for dette kameraet."
+ },
+ "port": {
+ "label": "ONVIF-port",
+ "description": "Portnummer for ONVIF-tjenesten."
+ },
+ "user": {
+ "label": "ONVIF-brukernavn",
+ "description": "Brukernavn for ONVIF-autentisering; enkelte enheter krever admin-bruker for ONVIF."
+ },
+ "password": {
+ "label": "ONVIF-passord",
+ "description": "Passord for ONVIF-autentisering."
+ },
+ "tls_insecure": {
+ "label": "Deaktiver TLS-verifisering",
+ "description": "Hopp over TLS-verifisering og deaktiver digest-autentisering for ONVIF (usikre; bruk kun i trygge nettverk)."
+ },
+ "profile": {
+ "label": "ONVIF-profil",
+ "description": "Spesifikk ONVIF-medieprofil for PTZ-kontroll. Hvis ikke satt, velges den første profilen med gyldig PTZ-konfigurasjon automatisk."
+ },
+ "autotracking": {
+ "label": "Autosporing",
+ "description": "Spor bevegelige objekter automatisk og hold dem sentrert ved bruk av PTZ-bevegelser.",
+ "enabled": {
+ "label": "Aktiver autosporing",
+ "description": "Aktiver eller deaktiver automatisk PTZ-sporing av detekterte objekter."
+ },
+ "calibrate_on_startup": {
+ "label": "Kalibrer ved start",
+ "description": "Mål PTZ-motorhastigheter ved oppstart for å forbedre sporingsnøyaktighet. Frigate vil oppdatere konfigurasjonen etter kalibrering."
+ },
+ "zooming": {
+ "label": "Zoom-modus",
+ "description": "Kontroller zoom-oppførsel: deaktivert, absolutt (mest kompatibel) eller relativ."
+ },
+ "zoom_factor": {
+ "label": "Zoom-faktor",
+ "description": "Kontrollere zoom-nivå på sporede objekter. Lavere verdier gir mer oversikt; høyere verdier zoomer tettere inn. Verdier mellom 0.1 og 0.75."
+ },
+ "track": {
+ "label": "Sporede objekter",
+ "description": "Liste over objekttyper som skal utløse autosporing."
+ },
+ "required_zones": {
+ "label": "Påkrevde soner",
+ "description": "Objekter må tre inn i en av disse sonene før autosporing starter."
+ },
+ "return_preset": {
+ "label": "Forhåndsinnstilling for retur",
+ "description": "Navn på ONVIF-forhåndsinnstilling kameraet skal returnere til når sporingen avsluttes."
+ },
+ "timeout": {
+ "label": "Tidsavbrudd for retur",
+ "description": "Antall sekunder å vente etter mistet sporing før kameraet returnerer til forhåndsinnstilt posisjon."
+ },
+ "movement_weights": {
+ "label": "Bevegelsesvekting",
+ "description": "Kalibreringsverdier som genereres automatisk. Ikke endre manuelt."
+ },
+ "enabled_in_config": {
+ "label": "Opprinnelig autosporingsstatus",
+ "description": "Internt felt for å spore om autosporing var aktivert i konfigurasjonen."
+ }
+ },
+ "ignore_time_mismatch": {
+ "label": "Ignorer tidsavvik",
+ "description": "Ignorer forskjeller i tidssynkronisering mellom kamera og server ved ONVIF-kommunikasjon."
+ }
+ },
+ "best_image_timeout": {
+ "description": "Hvor lenge man skal vente på bildet med høyest konfidensscore.",
+ "label": "Tidsavbrudd for beste bilde"
+ },
+ "enabled": {
+ "description": "Aktivert",
+ "label": "Aktivert"
+ },
+ "enabled_in_config": {
+ "description": "Bevar opprinnelig status for kameraet.",
+ "label": "Opprinnelig kamerastatus"
+ },
+ "friendly_name": {
+ "description": "Kamerats visningsnavn i Frigate-grensesnittet",
+ "label": "Visningsnavn"
+ },
+ "label": "Kamerakonfigurasjon",
+ "name": {
+ "description": "Kameranavn er påkrevd",
+ "label": "Kameranavn"
+ },
+ "type": {
+ "description": "Kameratype",
+ "label": "Kameratype"
+ },
+ "ui": {
+ "dashboard": {
+ "description": "Velg om dette kameraet skal være synlig i Frigate-grensesnittet. Deaktivering krever manuell redigering av konfigurasjonen for å vise kameraet igjen.",
+ "label": "Vis i grensesnitt"
+ },
+ "description": "Sortering og synlighet for kameraet i grensesnittet. Påvirker standard dashbord. For mer detaljert kontroll, bruk kameragrupper.",
+ "label": "Brukergrensesnitt for kamera",
+ "order": {
+ "description": "Numerisk rekkefølge for sortering av kameraet i grensesnittet; høyere tall vises senere.",
+ "label": "Rekkefølge i UI"
+ }
+ },
+ "webui_url": {
+ "description": "URL for å besøke kameraet direkte fra systemsiden",
+ "label": "Kamera-URL"
+ },
+ "zones": {
+ "coordinates": {
+ "label": "Koordinater",
+ "description": "Polygonkoordinater som definerer soneområdet. Kan være en kommaseparert streng eller en liste med koordinatstrenger. Koordinater bør være relative (0–1) eller absolutte (legacy)."
+ },
+ "description": "Soner lar deg definere spesifikke områder i bildet for å avgjøre om et objekt befinner seg i et bestemt område.",
+ "distances": {
+ "label": "Faktiske avstander",
+ "description": "Valgfrie faktiske avstander for hver side av sonens firkant, brukt til beregning av hastighet eller avstand. Må ha nøyaktig 4 verdier hvis spesifisert."
+ },
+ "enabled": {
+ "description": "Aktiver eller deaktiver denne sonen. Deaktiverte soner ignoreres i kjøretid.",
+ "label": "Aktivert"
+ },
+ "enabled_in_config": {
+ "label": "Bevar opprinnelig status for sonen."
+ },
+ "filters": {
+ "description": "Filtre for objekter i denne sonen. Brukes for å redusere falske positive eller begrense hvilke objekter som regnes som tilstede.",
+ "label": "Sonefiltre",
+ "mask": {
+ "description": "Polygonkoordinater som definerer hvor dette filteret gjelder innenfor bildet.",
+ "label": "Filtermaske"
+ },
+ "max_area": {
+ "label": "Maksimum objektområde",
+ "description": "Maksimalt areal for markeringsramme (piksler eller prosent) tillatt for denne objekttypen. Kan oppgis i piksler (heltall) eller prosent (desimaltall mellom 0,000001 og 0,99)."
+ },
+ "max_ratio": {
+ "description": "Maksimalt forhold mellom bredde og høyde tillatt for at markeringsrammen skal kvalifere.",
+ "label": "Maksimum størrelsesforhold"
+ },
+ "min_area": {
+ "label": "Minimum objektområde",
+ "description": "Minimum areal for markeringsramme (piksler eller prosent) som kreves for denne objekttypen."
+ },
+ "min_ratio": {
+ "description": "Minimum forhold mellom bredde og høyde som kreves for at markeringsrammen skal kvalifisere.",
+ "label": "Minimum størrelsesforhold"
+ },
+ "min_score": {
+ "description": "Minimum deteksjonskonfidens for et enkeltbilde som kreves for at objektet skal telles med.",
+ "label": "Minimum konfidens"
+ },
+ "raw_mask": {
+ "label": "Råmaske"
+ },
+ "threshold": {
+ "description": "Gjennomsnittlig terskel for deteksjonskonfidens som kreves for at objektet skal anses som en ekte positiv.",
+ "label": "Konfidensterskel"
+ }
+ },
+ "friendly_name": {
+ "description": "Et brukervennlig navn på sonen som vises i grensesnittet. Hvis ikke satt, brukes en formatert versjon av sonenavnet.",
+ "label": "Sonenavn"
+ },
+ "inertia": {
+ "description": "Antall påfølgende bilder et objekt må detekteres i sonen før det regnes som tilstede. Hjelper med å filtrere ut kortvarige feildeteksjoner.",
+ "label": "Treghetsbilder"
+ },
+ "label": "Soner",
+ "loitering_time": {
+ "description": "Antall sekunder et objekt må oppholde seg i sonen for å bli regnet som uønsket opphold (\"loitering\"). Sett til 0 for å deaktivere.",
+ "label": "Oppholdssekunder"
+ },
+ "objects": {
+ "label": "Utløsende objekter",
+ "description": "Liste over objekttyper (fra etikettkartet) som kan utløse denne sonen. Kan være en enkeltstreng eller en liste med strenger. Hvis feltet er tomt, blir alle objekter vurdert."
+ },
+ "speed_threshold": {
+ "label": "Minimum hastighet",
+ "description": "Minimumshastighet (i faktiske enheter hvis avstander er satt) som kreves for at et objekt skal regnes som tilstede i sonen. Brukes for hastighets-baserte soneutløsere."
+ }
+ }
+}
diff --git a/web/public/locales/nb-NO/config/global.json b/web/public/locales/nb-NO/config/global.json
index 0967ef424..d12306320 100644
--- a/web/public/locales/nb-NO/config/global.json
+++ b/web/public/locales/nb-NO/config/global.json
@@ -1 +1,1592 @@
-{}
+{
+ "version": {
+ "label": "Nåværende konfigurasjonsversjon",
+ "description": "Numerisk eller tekstbasert versjon av den aktive konfigurasjonen for å hjelpe med å oppdage migreringer eller formatendringer."
+ },
+ "safe_mode": {
+ "label": "Trygg modus",
+ "description": "Når aktivert, start Frigate i trygg modus med reduserte funksjoner for feilsøking."
+ },
+ "environment_vars": {
+ "label": "Miljøvariabler",
+ "description": "Nøkkel-/verdipar for miljøvariabler som skal settes for Frigate-prosessen i Home Assistant OS. Brukere uten HAOS må bruke miljøvariabelkonfigurasjon i Docker i stedet."
+ },
+ "logger": {
+ "label": "Logging",
+ "description": "Kontrollerer standard loggdetaljnivå og overstyringer av loggnivå per komponent.",
+ "default": {
+ "label": "Loggnivå",
+ "description": "Standard globale loggedetaljer (debug, info, warning, error)."
+ },
+ "logs": {
+ "label": "Loggnivå per prosess",
+ "description": "Overstyringer av loggnivå per komponent for å øke eller redusere detaljrikdommen for spesifikke moduler."
+ }
+ },
+ "auth": {
+ "label": "Autentisering",
+ "description": "Innstillinger for autentisering og økter, inkludert alternativer for informasjonskapsler (cookies) og hastighetsbegrensning.",
+ "enabled": {
+ "label": "Aktiver autentisering",
+ "description": "Aktiver innebygd autentisering for Frigate-grensesnittet."
+ },
+ "reset_admin_password": {
+ "label": "Nullstill admin-passord",
+ "description": "Hvis sann, nullstill admin-brukerens passord ved oppstart og skriv ut det nye passordet i loggen."
+ },
+ "cookie_name": {
+ "label": "Navn på JWT-informasjonskapsel",
+ "description": "Navnet på informasjonskapselen som brukes til å lagre JWT-tokenet for innebygd autentisering."
+ },
+ "cookie_secure": {
+ "label": "Flagg for sikker informasjonskapsel",
+ "description": "Sett \"secure\"-flagget på autentiseringskapselen; bør være sann ved bruk av TLS."
+ },
+ "session_length": {
+ "label": "Øktvarighet",
+ "description": "Varighet på økten i sekunder for JWT-baserte økter."
+ },
+ "refresh_time": {
+ "label": "Vindu for øktfornyelse",
+ "description": "Når en økt har så mange sekunder igjen før den utløper, fornyes den til full lengde."
+ },
+ "failed_login_rate_limit": {
+ "label": "Begrensninger for mislykkede pålogginger",
+ "description": "Regler for hastighetsbegrensning for mislykkede påloggingsforsøk for å redusere brute-force-angrep."
+ },
+ "trusted_proxies": {
+ "label": "Betrodde proxyer",
+ "description": "Liste over betrodde proxy-IP-er som brukes ved fastsettelse av klient-IP for hastighetsbegrensning."
+ },
+ "hash_iterations": {
+ "label": "Hash-iterasjoner",
+ "description": "Antall PBKDF2-SHA256-iterasjoner som skal brukes ved hashing av brukerpassord."
+ },
+ "roles": {
+ "label": "Rolletilordninger",
+ "description": "Tilordne roller til kameralister. En tom liste gir tilgang til alle kameraer for rollen."
+ },
+ "admin_first_time_login": {
+ "label": "Flagg for førstegangs admin-innlogging",
+ "description": "Når sann, kan grensesnittet vise en hjelpelenke på påloggingssiden som informerer brukere om hvordan de logger inn etter en nullstilling av admin-passordet. "
+ }
+ },
+ "database": {
+ "label": "Database",
+ "description": "Innstillinger for SQLite-databasen som brukes av Frigate til å lagre sporede objekter og metadata for opptak.",
+ "path": {
+ "label": "Sti til database",
+ "description": "Sti i filsystemet der Frigates SQLite-databasefil vil bli lagret."
+ }
+ },
+ "go2rtc": {
+ "label": "go2rtc",
+ "description": "Innstillinger for den integrerte go2rtc-tjenesten for videreformidling og oversettelse av direktestrømmer."
+ },
+ "mqtt": {
+ "label": "MQTT",
+ "description": "Innstillinger for tilkobling og publisering av telemetri, stillbilder og hendelsesdetaljer til en MQTT-megler.",
+ "enabled": {
+ "label": "Aktiver MQTT",
+ "description": "Aktiver eller deaktiver MQTT-integrasjon for status, hendelser og stillbilder."
+ },
+ "host": {
+ "label": "MQTT-vert",
+ "description": "Vertsnavn eller IP-adresse til MQTT-megleren."
+ },
+ "port": {
+ "label": "MQTT-port",
+ "description": "Port til MQTT-megleren (vanligvis 1883 for vanlig MQTT)."
+ },
+ "topic_prefix": {
+ "label": "Emne-prefiks",
+ "description": "MQTT-emneprefiks for alle Frigate-emner; må være unikt hvis man kjører flere instanser."
+ },
+ "client_id": {
+ "label": "Klient-ID",
+ "description": "Klientidentifikator som brukes ved tilkobling til MQTT-megleren; bør være unik per instans."
+ },
+ "stats_interval": {
+ "label": "Statistikkintervall",
+ "description": "Intervall i sekunder for publisering av system- og kamerastatistikk til MQTT."
+ },
+ "user": {
+ "label": "MQTT-brukernavn",
+ "description": "Valgfritt MQTT-brukernavn; kan oppgis via miljøvariabler eller hemmeligheter (secrets)."
+ },
+ "password": {
+ "label": "MQTT-passord",
+ "description": "Valgfritt MQTT-passord; kan oppgis via miljøvariabler eller hemmeligheter (secrets)."
+ },
+ "tls_ca_certs": {
+ "label": "TLS CA-sertifikater",
+ "description": "Sti til CA-sertifikat for TLS-tilkoblinger til megleren (for selvsignerte sertifikater)."
+ },
+ "tls_client_cert": {
+ "label": "Klientsertifikat",
+ "description": "Sti til klientsertifikat for gjensidig TLS-autentisering; ikke sett brukernavn/passord når klientsertifikater brukes."
+ },
+ "tls_client_key": {
+ "label": "Klientnøkkel",
+ "description": "Sti til privat nøkkel for klientsertifikatet."
+ },
+ "tls_insecure": {
+ "label": "Usikker TLS",
+ "description": "Tillat usikre TLS-tilkoblinger ved å hoppe over verifisering av vertsnavn (ikke anbefalt)."
+ },
+ "qos": {
+ "label": "MQTT QoS",
+ "description": "Quality of Service-nivå for MQTT-publiseringer/abonnementer (0, 1 eller 2)."
+ }
+ },
+ "notifications": {
+ "label": "Varslinger",
+ "description": "Innstillinger for å aktivere og kontrollere varslinger for alle kameraer; kan overstyres per kamera.",
+ "enabled": {
+ "label": "Aktiver varslinger",
+ "description": "Aktiver eller deaktiver varslinger for alle kameraer; kan overstyres per kamera."
+ },
+ "email": {
+ "label": "E-postadresse for varsling",
+ "description": "E-postadresse som brukes for push-varslinger eller som kreves av visse varslingstjenester."
+ },
+ "cooldown": {
+ "label": "Nedkjølingsperiode",
+ "description": "Nedkjøling (sekunder) mellom varslinger for å unngå å spamme mottakere."
+ },
+ "enabled_in_config": {
+ "label": "Opprinnelig varslingsstatus",
+ "description": "Indikerer om varslinger var aktivert i den opprinnelige statiske konfigurasjonen."
+ }
+ },
+ "networking": {
+ "label": "Nettverk",
+ "description": "Nettverksrelaterte innstillinger, som aktivering av IPv6 for Frigate-endepunkter.",
+ "ipv6": {
+ "label": "IPv6-konfigurasjon",
+ "description": "IPv6-spesifikke innstillinger for Frigates nettverkstjenester.",
+ "enabled": {
+ "label": "Aktiver IPv6",
+ "description": "Aktiver IPv6-støtte for Frigate-tjenester (API og brukergrensesnitt) der det er aktuelt."
+ }
+ },
+ "listen": {
+ "label": "Konfigurasjon for lytteporter",
+ "description": "Konfigurasjon for interne og eksterne lytteporter. Dette er for avanserte brukere. For de fleste brukstilfeller anbefales det å endre port-seksjonen i din Docker compose-fil i stedet.",
+ "internal": {
+ "label": "Intern port",
+ "description": "Intern lytteport for Frigate (standard 5000)."
+ },
+ "external": {
+ "label": "Ekstern port",
+ "description": "Ekstern lytteport for Frigate (standard 8971)."
+ }
+ }
+ },
+ "proxy": {
+ "label": "Proxy",
+ "description": "Innstillinger for å integrere Frigate bak en reverse proxy som sender videre hoder for autentiserte brukere.",
+ "header_map": {
+ "label": "Tilordning av hoder (Header mapping)",
+ "description": "Tilordne innkommende proxy-hoder til Frigates bruker- og rollefelt for proxy-basert autentisering.",
+ "user": {
+ "label": "Bruker-hode (User header)",
+ "description": "Hode (header) som inneholder det autentiserte brukernavnet fra oppstrøms proxy."
+ },
+ "role": {
+ "label": "Rolle-hode (Role header)",
+ "description": "Hode (header) som inneholder den autentiserte brukerens rolle eller grupper fra oppstrøms proxy."
+ },
+ "role_map": {
+ "label": "Rolletilordning",
+ "description": "Tilordne gruppeverdier fra oppstrøms proxy til Frigate-roller (for eksempel tilordne admin-grupper til admin-rollen)."
+ }
+ },
+ "logout_url": {
+ "label": "Utloggings-URL",
+ "description": "URL som brukere skal videresendes til ved utlogging via proxyen."
+ },
+ "auth_secret": {
+ "label": "Proxy-hemmelighet",
+ "description": "Valgfri hemmelighet som sjekkes mot X-Proxy-Secret-hodet for å verifisere betrodde proxyer."
+ },
+ "default_role": {
+ "label": "Standardrolle",
+ "description": "Standardrolle tildelt proxy-autentiserte brukere når ingen rolletilordning gjelder (admin eller viewer)."
+ },
+ "separator": {
+ "label": "Skilletegn",
+ "description": "Tegn som brukes til å dele opp flere verdier i proxy-hoder."
+ }
+ },
+ "telemetry": {
+ "label": "Telemetri",
+ "description": "Alternativer for systemtelemetri og statistikk, inkludert overvåking av GPU og nettverksbåndbredde.",
+ "network_interfaces": {
+ "label": "Nettverksgrensesnitt",
+ "description": "Liste over prefikser for navn på nettverksgrensesnitt som skal overvåkes for båndbreddestatistikk."
+ },
+ "stats": {
+ "label": "Systemstatistikk",
+ "description": "Alternativer for å aktivere/deaktivere innsamling av ulike system- og GPU-statistikker.",
+ "amd_gpu_stats": {
+ "label": "AMD GPU-statistikk",
+ "description": "Aktiver innsamling av AMD GPU-statistikk hvis en AMD GPU er til stede."
+ },
+ "intel_gpu_stats": {
+ "label": "Intel GPU-statistikk",
+ "description": "Aktiver innsamling av Intel GPU-statistikk hvis en Intel GPU er til stede."
+ },
+ "network_bandwidth": {
+ "label": "Nettverksbåndbredde",
+ "description": "Aktiver overvåking av nettverksbåndbredde per prosess for kamera-ffmpeg-prosesser og detektorer."
+ },
+ "intel_gpu_device": {
+ "label": "SR-IOV-enhet",
+ "description": "Enhetsidentifikator som brukes når Intel-GPU-er behandles som SR-IOV for å korrigere GPU-statistikk."
+ }
+ },
+ "version_check": {
+ "label": "Versjonskontroll",
+ "description": "Aktiver en utgående sjekk for å oppdage om en nyere versjon av Frigate er tilgjengelig."
+ }
+ },
+ "tls": {
+ "label": "TLS",
+ "description": "TLS-innstillinger for Frigates web-endepunkter (port 8971).",
+ "enabled": {
+ "label": "Aktiver TLS",
+ "description": "Aktiver TLS for Frigates web-grensesnitt og API på den konfigurerte TLS-porten."
+ }
+ },
+ "ui": {
+ "label": "Brukergrensesnitt",
+ "description": "Innstillinger for brukergrensesnitt, som tidssone, formatering av tid/dato og enheter.",
+ "timezone": {
+ "label": "Tidssone",
+ "description": "Valgfri tidssone som skal vises i grensesnittet (standard er nettleserens lokale tid)."
+ },
+ "time_format": {
+ "label": "Tidsformat",
+ "description": "Tidsformat som skal brukes i grensesnittet (nettleser, 12-timers eller 24-timers)."
+ },
+ "date_style": {
+ "label": "Datostil",
+ "description": "Datostil som skal brukes i grensesnittet (full, lang, middels, kort)."
+ },
+ "time_style": {
+ "label": "Tidsstil",
+ "description": "Tidsstil som skal brukes i grensesnittet (full, lang, middels, kort)."
+ },
+ "unit_system": {
+ "label": "Enhetssystem",
+ "description": "Enhetssystem for visning (metrisk eller imperisk) brukt i grensesnittet og MQTT."
+ }
+ },
+ "detectors": {
+ "label": "Maskinvare for detektor",
+ "description": "Konfigurasjon for objektdetektorer (CPU, GPU, ONNX-bakender) og eventuelle detektorspesifikke modellinnstillinger.",
+ "type": {
+ "label": "Type"
+ },
+ "model": {
+ "label": "Detektorspesifikk modellkonfigurasjon",
+ "description": "Detektorspesifikke konfigurasjonsalternativer for modell (sti, inndatastørrelse, osv.).",
+ "path": {
+ "label": "Sti til egendefinert objektdetektormodell",
+ "description": "Sti til en egendefinert deteksjonsmodellfil (eller plus://clean_copy-stillbilder"
},
- "cleanCopyWarning": "Noen kameraer har stillbilder aktivert, men ren kopi er deaktivert. Du må aktivere clean_copy i stillbilde-konfigurasjonen for å kunne sende bilder fra disse kameraene til Frigate+."
+ "cleanCopyWarning": "Noen kameraer har stillbilder deaktivert"
},
"toast": {
"success": "Frigate+ innstillingene er lagret. Start Frigate på nytt for å aktivere endringene.",
"error": "Kunne ikke lagre konfigurasjonsendringer: {{errorMessage}}"
},
"restart_required": "Omstart påkrevd (Frigate+ modell endret)",
- "unsavedChanges": "Ulagrede endringer for Frigate+ innstillinger"
+ "unsavedChanges": "Ulagrede endringer for Frigate+ innstillinger",
+ "cardTitles": {
+ "otherModels": "Andre modeller",
+ "api": "API",
+ "currentModel": "Gjeldende modell",
+ "configuration": "Konfigurasjon"
+ },
+ "description": "Frigate+ er en abonnementstjeneste som gir tilgang til tilleggsfunksjoner og kapasiteter for Frigate-instansen din, inkludert muligheten til å bruke egendefinerte objektdeteksjonsmodeller trent på dine egne data. Du kan administrere innstillingene for Frigate+-modellen din her."
},
"enrichments": {
"title": "Innstillinger for utvidelser",
@@ -1074,7 +1184,7 @@
},
"streamDetails": "Strømdetaljer",
"probing": "Test kamera...",
- "retry": "Prøv på nytt",
+ "retry": "Prøv igjen",
"testing": {
"probingMetadata": "Sjekker metadata for kamera...",
"fetchingSnapshot": "Henter stillbilde fra kamera..."
@@ -1243,7 +1353,12 @@
"backToSettings": "Tilbake til kamerainnstillinger",
"streams": {
"title": "Aktiver / Deaktiver kameraer",
- "desc": "Midlertidig deaktiver et kamera til Frigate startes på nytt. Deaktivering av et kamera stopper Frigates behandling av dette kameraets strømmer fullstendig. Deteksjon, opptak og feilsøking vil være utilgjengelig.clean_copy-snapshots ingeschakeld zijn in je configuratie.",
+ "desc": "Om te verzenden naar Frigate+ moeten snapshots ingeschakeld zijn in je configuratie.",
"documentation": "Lees de documentatie",
"table": {
"camera": "Camera",
"snapshots": "Snapshots",
"cleanCopySnapshots": "clean_copy Snapshots"
},
- "cleanCopyWarning": "Bij sommige camera's zijn snapshots ingeschakeld, maar ontbreekt de 'clean_copy'. Om afbeeldingen van deze camera's naar Frigate+ te kunnen verzenden, moet clean_copy zijn ingeschakeld in de snapshotconfiguratie."
+ "cleanCopyWarning": "Sommige camera's hebben snapshots uitgeschakeld"
},
"modelInfo": {
"title": "Modelinformatie",
@@ -1332,5 +1371,11 @@
"success": "Configuratie voor beoordelingsclassificatie is opgeslagen. Herstart Frigate om de wijzigingen toe te passen."
}
}
+ },
+ "button": {
+ "overriddenGlobal": "Overschreven (globaal)",
+ "overriddenGlobalTooltip": "Deze camera heeft voorrang op de algemene configuratie-instellingen in dit gedeelte",
+ "overriddenBaseConfig": "Overschreven (basis configuratie)",
+ "overriddenBaseConfigTooltip": "Het profiel {{profile}} heeft voorrang op de configuratie-instellingen in dit gedeelte"
}
}
diff --git a/web/public/locales/nl/views/system.json b/web/public/locales/nl/views/system.json
index fcf821187..d31cd6e8c 100644
--- a/web/public/locales/nl/views/system.json
+++ b/web/public/locales/nl/views/system.json
@@ -4,7 +4,8 @@
"logs": {
"nginx": "Nginx Logboeken - Frigate",
"go2rtc": "Go2RTC Logboeken - Frigate",
- "frigate": "Frigate Logboek - Frigate"
+ "frigate": "Frigate Logboek - Frigate",
+ "websocket": "Berichten Logboeken - Frigate"
},
"storage": "Opslag Statistieken - Frigate",
"cameras": "Camera Statistieken - Frigate",
@@ -33,7 +34,30 @@
"fetchingLogsFailed": "Fout bij ophalen van logs: {{errorMessage}}"
}
},
- "tips": "Logs worden gestreamd vanaf de server"
+ "tips": "Logs worden gestreamd vanaf de server",
+ "websocket": {
+ "label": "Berichten",
+ "pause": "Pauze",
+ "resume": "Hervatten",
+ "clear": "Leegmaken",
+ "filter": {
+ "all": "Alle onderwerpen",
+ "topics": "Onderwerpen",
+ "events": "Gebeurtenissen",
+ "reviews": "Beoordelingen",
+ "classification": "Classificatie",
+ "face_recognition": "Gezichtsherkenning",
+ "lpr": "Kentekenplaatherkenning",
+ "camera_activity": "Camera activiteit",
+ "system": "Systeem",
+ "camera": "Camera",
+ "all_cameras": "Alle camera's",
+ "cameras_count_one": "{{count}} Camera",
+ "cameras_count_other": "{{count}} Cameras"
+ },
+ "empty": "Nog geen berichten ontvangen",
+ "count_one": "{{count}} berichten"
+ }
},
"general": {
"detector": {
diff --git a/web/public/locales/pl/components/camera.json b/web/public/locales/pl/components/camera.json
index f67326172..ada44e296 100644
--- a/web/public/locales/pl/components/camera.json
+++ b/web/public/locales/pl/components/camera.json
@@ -82,6 +82,7 @@
"mask": "Maski",
"regions": "Regiony",
"motion": "Ruch",
- "boundingBox": "Ramka Ograniczająca"
+ "boundingBox": "Ramka Ograniczająca",
+ "paths": "Ścieżki"
}
}
diff --git a/web/public/locales/pl/config/cameras.json b/web/public/locales/pl/config/cameras.json
index bdadbc182..9943f1332 100644
--- a/web/public/locales/pl/config/cameras.json
+++ b/web/public/locales/pl/config/cameras.json
@@ -161,5 +161,65 @@
"description": "Strefy, do których obiekt musi wejść, aby zostać wykryty; pozostaw puste, aby zezwolić na dowolną strefę."
}
}
+ },
+ "label": "Konfiguracja kamery",
+ "name": {
+ "label": "Nazwa kamery",
+ "description": "Nazwa kamery jest wymagana"
+ },
+ "friendly_name": {
+ "label": "Przyjazna nazwa",
+ "description": "Przyjazna nazwa kamery używana w interfejsie Frigate"
+ },
+ "enabled": {
+ "label": "Włączone",
+ "description": "Włączone"
+ },
+ "audio": {
+ "label": "Zdarzenia audio",
+ "description": "Ustawienia detekcji zdarzeń audio dla tej kamery.",
+ "enabled": {
+ "label": "Włącz detekcję audio",
+ "description": "Włącz lub wyłącz detekcję zdarzeń audio dla tej kamery."
+ },
+ "max_not_heard": {
+ "label": "Limit czasu zakończenia",
+ "description": "Czas w sekundach bez wykrycia skonfigurowanego typu audio, po którym zdarzenie audio zostaje zakończone."
+ },
+ "min_volume": {
+ "label": "Minimalna głośność",
+ "description": "Minimalny próg głośności RMS wymagany do uruchomienia detekcji audio; niższe wartości zwiększają czułość (np. 200 wysoka, 500 średnia, 1000 niska)."
+ },
+ "listen": {
+ "label": "Typy nasłuchu",
+ "description": "Lista typów zdarzeń audio do wykrywania (na przykład: szczekanie, alarm pożarowy, krzyk, mowa, wrzask)."
+ },
+ "filters": {
+ "label": "Filtry audio",
+ "description": "Ustawienia filtrów dla poszczególnych typów audio, takie jak progi pewności, używane do redukcji fałszywych alarmów."
+ },
+ "enabled_in_config": {
+ "label": "Pierwotny stan audio",
+ "description": "Wskazuje, czy detekcja audio była pierwotnie włączona w statycznym pliku konfiguracyjnym."
+ },
+ "num_threads": {
+ "label": "Wątki detekcji",
+ "description": "Liczba wątków używanych do przetwarzania detekcji audio."
+ }
+ },
+ "audio_transcription": {
+ "label": "Transkrypcja audio",
+ "description": "Ustawienia transkrypcji audio na żywo i mowy, używane do zdarzeń i napisów na żywo.",
+ "enabled": {
+ "label": "Włącz transkrypcję",
+ "description": "Włącz lub wyłącz ręcznie wyzwalaną transkrypcję zdarzeń audio."
+ },
+ "enabled_in_config": {
+ "label": "Pierwotny stan transkrypcji"
+ },
+ "live_enabled": {
+ "label": "Transkrypcja na żywo",
+ "description": "Włącz transkrypcję strumieniową audio na żywo w momencie jego odbierania."
+ }
}
}
diff --git a/web/public/locales/pl/config/global.json b/web/public/locales/pl/config/global.json
index 0967ef424..ed12af3c7 100644
--- a/web/public/locales/pl/config/global.json
+++ b/web/public/locales/pl/config/global.json
@@ -1 +1,43 @@
-{}
+{
+ "audio": {
+ "label": "Zdarzenia audio",
+ "enabled": {
+ "label": "Włącz detekcję audio"
+ },
+ "max_not_heard": {
+ "label": "Limit czasu zakończenia",
+ "description": "Czas w sekundach bez wykrycia skonfigurowanego typu audio, po którym zdarzenie audio zostaje zakończone."
+ },
+ "min_volume": {
+ "label": "Minimalna głośność",
+ "description": "Minimalny próg głośności RMS wymagany do uruchomienia detekcji audio; niższe wartości zwiększają czułość (np. 200 wysoka, 500 średnia, 1000 niska)."
+ },
+ "listen": {
+ "label": "Typy nasłuchu",
+ "description": "Lista typów zdarzeń audio do wykrywania (na przykład: szczekanie, alarm pożarowy, krzyk, mowa, wrzask)."
+ },
+ "filters": {
+ "label": "Filtry audio",
+ "description": "Ustawienia filtrów dla poszczególnych typów audio, takie jak progi pewności, używane do redukcji fałszywych alarmów."
+ },
+ "enabled_in_config": {
+ "label": "Pierwotny stan audio",
+ "description": "Wskazuje, czy detekcja audio była pierwotnie włączona w statycznym pliku konfiguracyjnym."
+ },
+ "num_threads": {
+ "label": "Wątki detekcji",
+ "description": "Liczba wątków używanych do przetwarzania detekcji audio."
+ }
+ },
+ "audio_transcription": {
+ "label": "Transkrypcja audio",
+ "description": "Ustawienia transkrypcji audio na żywo i mowy, używane do zdarzeń i napisów na żywo.",
+ "live_enabled": {
+ "label": "Transkrypcja na żywo",
+ "description": "Włącz transkrypcję strumieniową audio na żywo w momencie jego odbierania."
+ }
+ },
+ "version": {
+ "label": "Aktualna wersja"
+ }
+}
diff --git a/web/public/locales/pl/views/classificationModel.json b/web/public/locales/pl/views/classificationModel.json
index c68baf133..bb29f4598 100644
--- a/web/public/locales/pl/views/classificationModel.json
+++ b/web/public/locales/pl/views/classificationModel.json
@@ -17,8 +17,12 @@
},
"toast": {
"success": {
- "deletedCategory": "Usunięte klasy",
- "deletedImage": "Usunięte obrazy",
+ "deletedCategory_one": "Usunięte klasy",
+ "deletedCategory_few": "",
+ "deletedCategory_many": "",
+ "deletedImage_one": "Usunięte obrazy",
+ "deletedImage_few": "",
+ "deletedImage_many": "",
"deletedModel_one": "Pomyślenie usunięto {{count}} model",
"deletedModel_few": "Pomyślenie usunięto {{count}} modele",
"deletedModel_many": "Pomyślenie usunięto {{count}} modeli",
diff --git a/web/public/locales/pt-BR/components/dialog.json b/web/public/locales/pt-BR/components/dialog.json
index 22f891023..5ce4c631b 100644
--- a/web/public/locales/pt-BR/components/dialog.json
+++ b/web/public/locales/pt-BR/components/dialog.json
@@ -65,6 +65,10 @@
"fromTimeline": {
"saveExport": "Salvar Exportação",
"previewExport": "Pré-Visualizar Exportação"
+ },
+ "case": {
+ "label": "Caso",
+ "placeholder": "Selecione um caso"
}
},
"streaming": {
diff --git a/web/public/locales/pt-BR/config/cameras.json b/web/public/locales/pt-BR/config/cameras.json
index cb9f2b5e0..b065dbb25 100644
--- a/web/public/locales/pt-BR/config/cameras.json
+++ b/web/public/locales/pt-BR/config/cameras.json
@@ -19,11 +19,32 @@
"description": "Habilitar ou desabilitar o evento de detecção de áudio para esta câmera."
},
"max_not_heard": {
- "label": "Tempo limite final"
+ "label": "Tempo limite final",
+ "description": "Quantidade de segundos sem o tipo de áudio configurado antes do término do evento de áudio."
},
"min_volume": {
- "label": "Volume mínimo"
+ "label": "Volume mínimo",
+ "description": "Limiar mínimo de volume RMS necessário para executar a detecção de áudio; valores mais baixos aumentam a sensibilidade (por exemplo, 200 para volume alto, 500 para volume médio, 1000 para volume baixo)."
+ },
+ "listen": {
+ "label": "Tipos de escuta",
+ "description": "Lista de tipos de eventos de áudio a serem detectados (por exemplo: latido, alarme de incêndio, grito, fala, berro)."
+ },
+ "filters": {
+ "label": "Filtros de áudio",
+ "description": "Configurações de filtro por tipo de áudio, como limites de confiança, usadas para reduzir falsos positivos."
+ },
+ "enabled_in_config": {
+ "label": "Estado de áudio original",
+ "description": "Indica se a detecção de áudio foi originalmente ativada no arquivo de configuração estática."
+ },
+ "num_threads": {
+ "label": "Threads de detecção",
+ "description": "Número de threads a serem usadas para o processamento de detecção de áudio."
}
},
- "label": "Configuração da Câmera"
+ "label": "Configuração da Câmera",
+ "audio_transcription": {
+ "label": "Transcrição de áudio"
+ }
}
diff --git a/web/public/locales/pt-BR/config/global.json b/web/public/locales/pt-BR/config/global.json
index 9c9266cb1..a9cbd3f9c 100644
--- a/web/public/locales/pt-BR/config/global.json
+++ b/web/public/locales/pt-BR/config/global.json
@@ -19,18 +19,61 @@
"description": "Padrão global de verbosidade de registro (debug, info, aviso, erro)."
},
"logs": {
- "label": "Nível de registro por processo"
+ "label": "Nível de registro por processo",
+ "description": "Configurações de nível de registro por componente para aumentar ou diminuir a verbosidade de módulos específicos."
}
},
"audio": {
"max_not_heard": {
- "label": "Tempo limite final"
+ "label": "Tempo limite final",
+ "description": "Quantidade de segundos sem o tipo de áudio configurado antes do término do evento de áudio."
},
"min_volume": {
- "label": "Volume mínimo"
+ "label": "Volume mínimo",
+ "description": "Limiar mínimo de volume RMS necessário para executar a detecção de áudio; valores mais baixos aumentam a sensibilidade (por exemplo, 200 para volume alto, 500 para volume médio, 1000 para volume baixo)."
+ },
+ "listen": {
+ "label": "Tipos de escuta",
+ "description": "Lista de tipos de eventos de áudio a serem detectados (por exemplo: latido, alarme de incêndio, grito, fala, berro)."
+ },
+ "filters": {
+ "label": "Filtros de áudio",
+ "description": "Configurações de filtro por tipo de áudio, como limites de confiança, usadas para reduzir falsos positivos."
+ },
+ "enabled_in_config": {
+ "label": "Estado de áudio original",
+ "description": "Indica se a detecção de áudio foi originalmente ativada no arquivo de configuração estática."
+ },
+ "num_threads": {
+ "label": "Threads de detecção",
+ "description": "Número de threads a serem usadas para o processamento de detecção de áudio."
}
},
"auth": {
- "label": "Autenticação"
+ "label": "Autenticação",
+ "description": "Configurações de autenticação e relacionadas à sessão, incluindo opções de cookies e limite de taxa.",
+ "enabled": {
+ "label": "Habilitar autenticação",
+ "description": "Ative a autenticação nativa para a interface do usuário do Frigate."
+ },
+ "reset_admin_password": {
+ "label": "Redefinir senha de administrador",
+ "description": "Se verdadeiro, redefina a senha do usuário administrador na inicialização e imprima a nova senha nos registros."
+ },
+ "cookie_name": {
+ "label": "nome do cookie JWT",
+ "description": "Nome do cookie usado para armazenar o token JWT para autenticação nativa."
+ },
+ "cookie_secure": {
+ "label": "Sinalizador de cookie seguro",
+ "description": "Defina o atributo \"secure\" no cookie de autenticação; ele deve ser verdadeiro ao usar TLS."
+ },
+ "session_length": {
+ "label": "Duração da sessão",
+ "description": "Duração da sessão em segundos para sessões baseadas em JWT."
+ }
+ },
+ "audio_transcription": {
+ "label": "Transcrição de áudio"
}
}
diff --git a/web/public/locales/pt-BR/config/groups.json b/web/public/locales/pt-BR/config/groups.json
index fd806e880..a392ecc76 100644
--- a/web/public/locales/pt-BR/config/groups.json
+++ b/web/public/locales/pt-BR/config/groups.json
@@ -39,6 +39,30 @@
"global": {
"resolution": "Resolução Global",
"tracking": "Rastreamento Global"
+ },
+ "cameras": {
+ "resolution": "Resolução",
+ "tracking": "Monitorando"
+ }
+ },
+ "objects": {
+ "global": {
+ "tracking": "Rastreamento Global",
+ "filtering": "Filtragem global"
+ },
+ "cameras": {
+ "tracking": "Monitorando",
+ "filtering": "Filtragem"
+ }
+ },
+ "record": {
+ "global": {
+ "retention": "Retenção Global",
+ "events": "Eventos Globais"
+ },
+ "cameras": {
+ "retention": "Retenção",
+ "events": "Eventos"
}
}
}
diff --git a/web/public/locales/pt-BR/config/validation.json b/web/public/locales/pt-BR/config/validation.json
index 324a358cc..3fc808668 100644
--- a/web/public/locales/pt-BR/config/validation.json
+++ b/web/public/locales/pt-BR/config/validation.json
@@ -12,5 +12,21 @@
"type": "Tipo de valor inválido",
"enum": "Deve ser um dos valores permitidos",
"const": "Valor não condiz com a constante esperada",
- "uniqueItems": "Todos os itens devem ser únicos"
+ "uniqueItems": "Todos os itens devem ser únicos",
+ "format": "Formato inválido",
+ "additionalProperties": "Propriedade desconhecida não é permitida",
+ "oneOf": "Deve corresponder exatamente a um dos esquemas permitidos",
+ "anyOf": "Deve corresponder a pelo menos um dos esquemas permitidos",
+ "proxy": {
+ "header_map": {
+ "roleHeaderRequired": "O cabeçalho de função é obrigatório quando os mapeamentos de função são configurados."
+ }
+ },
+ "ffmpeg": {
+ "inputs": {
+ "rolesUnique": "Cada função só pode ser atribuída a um fluxo de entrada.",
+ "detectRequired": "Pelo menos um fluxo de entrada deve ter a função 'detectar' atribuída.",
+ "hwaccelDetectOnly": "Somente o fluxo de entrada com a função de detecção pode definir argumentos de aceleração de hardware."
+ }
+ }
}
diff --git a/web/public/locales/pt-BR/views/classificationModel.json b/web/public/locales/pt-BR/views/classificationModel.json
index 5defd3fcc..afa3fafbb 100644
--- a/web/public/locales/pt-BR/views/classificationModel.json
+++ b/web/public/locales/pt-BR/views/classificationModel.json
@@ -12,8 +12,12 @@
},
"toast": {
"success": {
- "deletedCategory": "Classe Apagada",
- "deletedImage": "Imagens Apagadas",
+ "deletedCategory_one": "Classe Apagada",
+ "deletedCategory_many": "",
+ "deletedCategory_other": "",
+ "deletedImage_one": "Imagens Apagadas",
+ "deletedImage_many": "",
+ "deletedImage_other": "",
"categorizedImage": "Imagem Classificada com Sucesso",
"trainedModel": "Modelo treinado com sucesso.",
"trainingModel": "Treinamento do modelo iniciado com sucesso.",
@@ -21,7 +25,8 @@
"deletedModel_many": "{{count}} modelos excluídos com sucesso",
"deletedModel_other": "{{count}} modelos excluídos com sucesso",
"updatedModel": "Configuração do modelo atualizada com sucesso",
- "renamedCategory": "Classe renomeada para {{name}} com sucesso"
+ "renamedCategory": "Classe renomeada para {{name}} com sucesso",
+ "reclassifiedImage": "Imagem reclassificada com sucesso"
},
"error": {
"deleteImageFailed": "Falha ao deletar:{{errorMessage}}",
diff --git a/web/public/locales/pt-BR/views/events.json b/web/public/locales/pt-BR/views/events.json
index 3402c1002..15282d447 100644
--- a/web/public/locales/pt-BR/views/events.json
+++ b/web/public/locales/pt-BR/views/events.json
@@ -15,7 +15,9 @@
"description": "A revisão de itens só pode ser criada para uma câmera quando a gravação está habilitada."
}
},
- "timeline": "Linha do tempo",
+ "timeline": {
+ "label": "Linha do tempo"
+ },
"timeline.aria": "Selecione a linha do tempo",
"events": {
"label": "Eventos",
diff --git a/web/public/locales/pt-BR/views/explore.json b/web/public/locales/pt-BR/views/explore.json
index 93505f0bd..1db62f00d 100644
--- a/web/public/locales/pt-BR/views/explore.json
+++ b/web/public/locales/pt-BR/views/explore.json
@@ -31,7 +31,7 @@
}
},
"details": {
- "timestamp": "Carimbo de data e hora",
+ "timestamp": "Estampa de Tempo",
"item": {
"title": "Rever Detalhe dos itens",
"desc": "Revisar os detalhes do item",
diff --git a/web/public/locales/pt-BR/views/exports.json b/web/public/locales/pt-BR/views/exports.json
index 29edc2cb5..db100ff0c 100644
--- a/web/public/locales/pt-BR/views/exports.json
+++ b/web/public/locales/pt-BR/views/exports.json
@@ -2,7 +2,9 @@
"documentTitle": "Exportar - Frigate",
"search": "Buscar",
"noExports": "Nenhuma exportação encontrada",
- "deleteExport": "Deletar Exportação",
+ "deleteExport": {
+ "label": "Excluir Exportação"
+ },
"deleteExport.desc": "Você tem certeza que quer apagar {{exportName}}?",
"editExport": {
"title": "Renomear Exportação",
diff --git a/web/public/locales/pt-BR/views/faceLibrary.json b/web/public/locales/pt-BR/views/faceLibrary.json
index dded9cf19..7e8c8f56c 100644
--- a/web/public/locales/pt-BR/views/faceLibrary.json
+++ b/web/public/locales/pt-BR/views/faceLibrary.json
@@ -6,7 +6,7 @@
"subLabelScore": "Pontuação do Sub-Rótulo",
"scoreInfo": "A pontuação do sub-rótulo é a pontuação ponderada de todas as confidências faciais reconhecidas, então a pontuação pode ser diferente da mostrada na foto instantânea.",
"faceDesc": "Detalhes do objeto rastreado que gerou este rosto",
- "timestamp": "Carimbo de data e hora"
+ "timestamp": "Estampa de Tempo"
},
"selectItem": "Selecione {{item}}",
"imageEntry": {
@@ -60,7 +60,7 @@
"placeholder": "Informe um nome para esta coleção",
"addFace": "Adicione uma nova coleção à Biblioteca Facial subindo a sua primeira imagem.",
"invalidName": "Nome inválido. Nomes podem conter letras, números, espacos, apóstrofos, sublinhado e hífens.",
- "nameCannotContainHash": "Nome não pode conter #."
+ "nameCannotContainHash": "O nome não pode conter #."
},
"documentTitle": "Biblioteca de rostos - Frigate",
"uploadFaceImage": {
diff --git a/web/public/locales/pt-BR/views/live.json b/web/public/locales/pt-BR/views/live.json
index 0c58e2137..c2459b640 100644
--- a/web/public/locales/pt-BR/views/live.json
+++ b/web/public/locales/pt-BR/views/live.json
@@ -1,5 +1,7 @@
{
- "documentTitle": "Ao Vivo - Frigate",
+ "documentTitle": {
+ "default": "Ao vivo - Frigate"
+ },
"documentTitle.withCamera": "{{camera}} - Ao vivo - Frigate",
"lowBandwidthMode": "Modo de baixa largura de banda",
"twoWayTalk": {
diff --git a/web/public/locales/pt-BR/views/settings.json b/web/public/locales/pt-BR/views/settings.json
index e4f8c4c1a..799822774 100644
--- a/web/public/locales/pt-BR/views/settings.json
+++ b/web/public/locales/pt-BR/views/settings.json
@@ -7,14 +7,15 @@
"masksAndZones": "Editor de Máscara e Zona - Frigate",
"motionTuner": "Ajuste de Movimento - Frigate",
"object": "Debug - Frigate",
- "general": "Configurações de perfil - Frigate",
+ "general": "Configurações da interface - Frigate",
"frigatePlus": "Frigate+ Configurações- Frigate",
"notifications": "Configurações de notificação - Frigate",
"cameraManagement": "Gerenciar Câmeras - Frigate",
"cameraReview": "Configurações de Revisão de Câmera - Frigate",
"globalConfig": "Configuração Global - Frigate",
"cameraConfig": "Configuração da Câmera - Frigate",
- "maintenance": "Manutenção - Frigate"
+ "maintenance": "Manutenção - Frigate",
+ "profiles": "Perfis - Frigate"
},
"menu": {
"ui": "UI",
@@ -30,7 +31,10 @@
"roles": "Papéis",
"cameraManagement": "Gerenciamento",
"cameraReview": "Revisar",
- "general": "Geral"
+ "general": "Geral",
+ "globalConfig": "Configuração global",
+ "system": "Sistema",
+ "integrations": "Integrações"
},
"dialog": {
"unsavedChanges": {
@@ -913,5 +917,11 @@
"fetchingSnapshot": "Buscando a captura de imagem da câmera..."
}
}
+ },
+ "button": {
+ "overriddenGlobal": "Substituir (Global)",
+ "overriddenGlobalTooltip": "Esta câmera substitui as configurações globais desta seção",
+ "overriddenBaseConfig": "Substituído (Configuração base)",
+ "overriddenBaseConfigTooltip": "O perfil {{profile}} substitui as configurações desta seção"
}
}
diff --git a/web/public/locales/pt-BR/views/system.json b/web/public/locales/pt-BR/views/system.json
index 7f73b3c46..922629719 100644
--- a/web/public/locales/pt-BR/views/system.json
+++ b/web/public/locales/pt-BR/views/system.json
@@ -39,7 +39,19 @@
"label": "Mensagens",
"pause": "Pausar",
"resume": "Resumir",
- "clear": "Limpar"
+ "clear": "Limpar",
+ "filter": {
+ "all": "Todos os tópicos",
+ "topics": "Tópicos",
+ "events": "Eventos",
+ "reviews": "Avaliações",
+ "classification": "Classificação",
+ "face_recognition": "Reconhecimento facial",
+ "lpr": "LPR",
+ "camera_activity": "Atividade da câmera",
+ "system": "Sistema",
+ "camera": "Camera"
+ }
}
},
"general": {
diff --git a/web/public/locales/pt/views/classificationModel.json b/web/public/locales/pt/views/classificationModel.json
index 5aba72a91..06403c1b0 100644
--- a/web/public/locales/pt/views/classificationModel.json
+++ b/web/public/locales/pt/views/classificationModel.json
@@ -22,8 +22,12 @@
},
"toast": {
"success": {
- "deletedCategory": "Classe excluída",
- "deletedImage": "Imagens excluídas",
+ "deletedCategory_one": "Classe excluída",
+ "deletedCategory_many": "",
+ "deletedCategory_other": "",
+ "deletedImage_one": "Imagens excluídas",
+ "deletedImage_many": "",
+ "deletedImage_other": "",
"categorizedImage": "Imagem classificada com sucesso",
"trainedModel": "Modelo treinado com sucesso.",
"trainingModel": "Treinamento do modelo iniciado com sucesso.",
diff --git a/web/public/locales/ro/common.json b/web/public/locales/ro/common.json
index 65129e6d6..1938c3d11 100644
--- a/web/public/locales/ro/common.json
+++ b/web/public/locales/ro/common.json
@@ -187,7 +187,8 @@
"review": "Revizuire",
"classification": "Clasificare",
"chat": "Chat",
- "actions": "Acțiuni"
+ "actions": "Acțiuni",
+ "profiles": "Profile"
},
"button": {
"cameraAudio": "Sunet cameră",
@@ -236,7 +237,8 @@
"saveAll": "Salvează toate",
"savingAll": "Se salvează toate…",
"undoAll": "Anulează toate",
- "applying": "Se aplică…"
+ "applying": "Se aplică…",
+ "retry": "Reîncearcă"
},
"unit": {
"speed": {
@@ -291,7 +293,8 @@
"error": {
"noMessage": "Nu s-au putut salva modificările de configurație",
"title": "Salvarea modificărilor de configurație a eșuat: {{errorMessage}}"
- }
+ },
+ "success": "Modificările de configurare au fost salvate cu succes."
}
},
"accessDenied": {
@@ -316,5 +319,7 @@
"field": {
"optional": "Opțional",
"internalID": "ID-ul Intern pe care Frigate îl folosește în configurație și în baza de date"
- }
+ },
+ "no_items": "Niciun element",
+ "validation_errors": "Erori de validare"
}
diff --git a/web/public/locales/ro/components/camera.json b/web/public/locales/ro/components/camera.json
index 093ff4532..35f57ff01 100644
--- a/web/public/locales/ro/components/camera.json
+++ b/web/public/locales/ro/components/camera.json
@@ -82,6 +82,7 @@
"zones": "Zone",
"mask": "Mască",
"motion": "Mișcare",
- "regions": "Regiuni"
+ "regions": "Regiuni",
+ "paths": "Căi"
}
}
diff --git a/web/public/locales/ro/config/cameras.json b/web/public/locales/ro/config/cameras.json
index e7fb961d0..01c256adf 100644
--- a/web/public/locales/ro/config/cameras.json
+++ b/web/public/locales/ro/config/cameras.json
@@ -79,8 +79,8 @@
"label": "Detecție obiecte",
"description": "Setări pentru rolul de detecție folosit pentru a rula recunoașterea obiectelor și trackerele.",
"enabled": {
- "label": "Detecție activată",
- "description": "Activează sau dezactivează detecția obiectelor pentru această cameră. Detecția trebuie să fie activă pentru ca urmărirea obiectelor să funcționeze."
+ "label": "Activează detecția de obiecte",
+ "description": "Activează sau dezactivează detecția obiectelor pentru această cameră."
},
"height": {
"label": "Înălțime detect",
@@ -303,7 +303,7 @@
},
"skip_motion_threshold": {
"label": "Ignoră pragul de mișcare",
- "description": "Dacă se schimbă mai mult de această fracțiune din imagine într-un singur cadru, detectorul nu va returna nicio casetă de mișcare și se va recalibra imediat. Acest lucru poate economisi CPU și reduce alertele false în timpul fulgerelor, furtunilor etc., dar poate rata evenimente reale, cum ar fi o cameră PTZ care urmărește automat un obiect. Compromisul este între a pierde câțiva megaocteți de înregistrări versus a revizui câteva clipuri scurte. Interval 0.0 - 1.0."
+ "description": "Dacă este setat la o valoare între 0.0 și 1.0, și mai mult decât această fracție din imagine se modifică într-un singur cadru, detectorul nu va returna casete de mișcare și se va recalibra imediat. Acest lucru poate economisi CPU și reduce rezultatele fals pozitive în timpul fulgerelor, furtunilor etc., dar poate rata evenimente reale, cum ar fi o cameră PTZ care urmărește automat un obiect. Compromisul este între a pierde câțiva megabytes de înregistrări versus a revizui câteva clipuri scurte. Lasă nesetat (None) pentru a dezactiva această funcție."
}
},
"objects": {
@@ -529,7 +529,7 @@
},
"detections": {
"label": "Configurație detecții",
- "description": "Setări pentru evenimentele de detecție (non-alertă).",
+ "description": "Setări pentru care obiecte urmărite generează detecții (fără alertă) și cum sunt păstrate detecțiile.",
"enabled": {
"label": "Activare detecții",
"description": "Activează sau dezactivează evenimentele de detecție pentru această cameră."
@@ -626,9 +626,9 @@
},
"snapshots": {
"label": "Snapshot-uri",
- "description": "Setări pentru snapshot-urile JPEG salvate ale obiectelor monitorizate de această cameră.",
+ "description": "Setări pentru snapshot-uri generate prin API ale obiectelor urmărite pentru această cameră.",
"enabled": {
- "label": "Snapshot-uri activate",
+ "label": "Activează snapshot-urile",
"description": "Activează sau dezactivează salvarea de snapshots pentru această cameră."
},
"clean_copy": {
@@ -637,15 +637,15 @@
},
"timestamp": {
"label": "Overlay timestamp",
- "description": "Pune data și ora pe snapshot-urile salvate."
+ "description": "Suprapune data și ora pe snapshot-urile din API."
},
"bounding_box": {
"label": "Overlay chenar",
- "description": "Desenează chenarele obiectelor pe snapshot-uri."
+ "description": "Desenează chenarele obiectelor urmărite pe snapshot-urile din API."
},
"crop": {
"label": "Decupează snapshot-ul",
- "description": "Decupează snapshot-ul pe mărimea obiectului detectat."
+ "description": "Decupează snapshot-urile din API pe chenarul obiectului detectat."
},
"required_zones": {
"label": "Zone obligatorii",
@@ -653,11 +653,11 @@
},
"height": {
"label": "Înălțime snapshot",
- "description": "Înălțimea la care se redimensionează snapshot-ul; lasă gol pentru dimensiunea originală."
+ "description": "Înălțimea (în pixeli) la care să se redimensioneze snapshot-urile din API; lasă gol pentru a păstra dimensiunea originală."
},
"retain": {
"label": "Retenție snapshot-uri",
- "description": "Setări pentru păstrarea snapshot-urilor.",
+ "description": "Setări de reținere pentru snapshot-uri, incluzând zilele implicite și suprascrierile per obiect.",
"default": {
"label": "Retenție implicită",
"description": "Numărul implicit de zile pentru păstrare."
@@ -672,8 +672,8 @@
}
},
"quality": {
- "label": "Calitate JPEG",
- "description": "Calitatea encodării JPEG pentru snapshot-uri (0-100)."
+ "label": "Calitatea snapshot-ului",
+ "description": "Calitatea encodării pentru snapshot-urile salvate (0-100)."
}
},
"timestamp_style": {
@@ -838,6 +838,10 @@
"ignore_time_mismatch": {
"label": "Ignoră decalaj timp",
"description": "Ignoră diferențele de sincronizare a timpului între cameră și serverul Frigate pentru comunicarea ONVIF."
+ },
+ "profile": {
+ "label": "Profil ONVIF",
+ "description": "Profil media ONVIF specific de utilizat pentru control PTZ, potrivit după token sau nume. Dacă nu este setat, se selectează automat primul profil cu configurație PTZ validă."
}
},
"type": {
@@ -937,5 +941,9 @@
"enabled_in_config": {
"label": "Stare inițială cameră",
"description": "Păstrează starea originală a camerei."
+ },
+ "profiles": {
+ "label": "Profiluri",
+ "description": "Profile de configurare denumite cu suprascrieri parțiale care pot fi activate la rulare."
}
}
diff --git a/web/public/locales/ro/config/global.json b/web/public/locales/ro/config/global.json
index 13455527c..d07e3bab4 100644
--- a/web/public/locales/ro/config/global.json
+++ b/web/public/locales/ro/config/global.json
@@ -111,8 +111,8 @@
"label": "Detecție obiecte",
"description": "Setări pentru rolul de detecție folosit pentru a rula recunoașterea obiectelor și trackerele.",
"enabled": {
- "label": "Detecție activată",
- "description": "Activează detecția pentru toate camerele. Trebuie să fie activă pentru ca urmărirea obiectelor să funcționeze."
+ "label": "Activează detecția de obiecte",
+ "description": "Activează sau dezactivează detecția de obiecte pentru toate camerele; poate fi suprascrisă pentru fiecare cameră în parte."
},
"height": {
"label": "Înălțime detect",
@@ -293,7 +293,7 @@
"label": "Calitate live",
"description": "Calitatea encodării pentru stream-ul jsmpeg (1 maxim, 31 minim)."
},
- "description": "Setări folosite de interfața web pentru a controla rezoluția și calitatea stream-ului live."
+ "description": "Setări pentru a controla rezoluția și calitatea stream live jsmpeg. Acest lucru nu afectează camerele retransmise care folosesc go2rtc pentru vizualizare live."
},
"lpr": {
"label": "Recunoaștere numere înmatriculare",
@@ -413,7 +413,7 @@
"description": "Setări implicite pentru detecția mișcării, aplicate dacă nu sunt suprascrise per cameră.",
"skip_motion_threshold": {
"label": "Ignoră pragul de mișcare",
- "description": "Dacă se schimbă mai mult de această fracțiune din imagine într-un singur cadru, detectorul nu va returna nicio casetă de mișcare și se va recalibra imediat. Acest lucru poate economisi CPU și reduce alertele false în timpul fulgerelor, furtunilor etc., dar poate rata evenimente reale, cum ar fi o cameră PTZ care urmărește automat un obiect. Compromisul este între a pierde câțiva megaocteți de înregistrări versus a revizui câteva clipuri scurte. Interval 0.0 - 1.0."
+ "description": "Dacă este setat la o valoare între 0.0 și 1.0, și mai mult decât această fracție din imagine se modifică într-un singur cadru, detectorul nu va returna casete de mișcare și se va recalibra imediat. Acest lucru poate economisi CPU și reduce rezultatele fals pozitive în timpul fulgerelor, furtunilor etc., dar poate rata evenimente reale, cum ar fi o cameră PTZ care urmărește automat un obiect. Compromisul este între a pierde câțiva megabytes de înregistrări versus a revizui câteva clipuri scurte. Lasă nesetat (None) pentru a dezactiva această funcție."
}
},
"objects": {
@@ -638,7 +638,7 @@
},
"detections": {
"label": "Configurație detecții",
- "description": "Setări pentru evenimentele de detecție (non-alertă).",
+ "description": "Setări pentru care obiecte urmărite generează detecții (fără alertă) și cum sunt păstrate detecțiile.",
"enabled": {
"label": "Activare detecții",
"description": "Activează sau dezactivează evenimentele de detecție."
@@ -742,8 +742,8 @@
"description": "Declanșează o reindexare completă a obiectelor istorice în baza de date de înglobări."
},
"model": {
- "label": "Model căutare semantică",
- "description": "Modelul de înglobări folosit (ex: 'jinav1')."
+ "label": "Model de căutare semantică sau nume furnizor GenAI",
+ "description": "Modelul de înglobări de folosit pentru căutarea semantică (de exemplu 'jinav1'), sau numele unui furnizor GenAI cu rolul de înglobări."
},
"model_size": {
"label": "Mărime model",
@@ -757,7 +757,7 @@
"snapshots": {
"label": "Snapshot-uri",
"enabled": {
- "label": "Snapshot-uri activate",
+ "label": "Activează snapshot-urile",
"description": "Activează sau dezactivează salvarea de snapshot-uri."
},
"clean_copy": {
@@ -766,15 +766,15 @@
},
"timestamp": {
"label": "Overlay timestamp",
- "description": "Pune data și ora pe snapshot-urile salvate."
+ "description": "Suprapune data și ora pe snapshot-urile din API."
},
"bounding_box": {
"label": "Overlay chenar",
- "description": "Desenează chenarele obiectelor pe snapshot-uri."
+ "description": "Desenează chenarele obiectelor urmărite pe snapshot-urile din API."
},
"crop": {
"label": "Decupează snapshot-ul",
- "description": "Decupează snapshot-ul pe mărimea obiectului detectat."
+ "description": "Decupează snapshot-urile din API pe chenarul obiectului detectat."
},
"required_zones": {
"label": "Zone obligatorii",
@@ -782,11 +782,11 @@
},
"height": {
"label": "Înălțime snapshot",
- "description": "Înălțimea la care se redimensionează snapshot-ul; lasă gol pentru dimensiunea originală."
+ "description": "Înălțimea (în pixeli) la care să se redimensioneze snapshot-urile din API; lasă gol pentru a păstra dimensiunea originală."
},
"retain": {
"label": "Retenție snapshot-uri",
- "description": "Setări pentru păstrarea snapshot-urilor.",
+ "description": "Setări de reținere pentru snapshot-uri, incluzând zilele implicite și suprascrierile per obiect.",
"default": {
"label": "Retenție implicită",
"description": "Numărul implicit de zile pentru păstrare."
@@ -801,10 +801,10 @@
}
},
"quality": {
- "label": "Calitate JPEG",
- "description": "Calitatea encodării JPEG pentru snapshot-uri (0-100)."
+ "label": "Calitatea snapshot-ului",
+ "description": "Calitatea encodării pentru snapshot-urile salvate (0-100)."
},
- "description": "Setări pentru snapshot-urile JPEG ale obiectelor urmărite."
+ "description": "Setări pentru snapshot-urile obiectelor urmărite, generate prin API, pentru toate camerele; pot fi suprascrise pentru fiecare cameră în parte."
},
"timestamp_style": {
"label": "Stil timestamp",
@@ -988,6 +988,10 @@
"ignore_time_mismatch": {
"label": "Ignoră decalaj timp",
"description": "Ignoră diferențele de sincronizare a timpului între cameră și serverul Frigate pentru comunicarea ONVIF."
+ },
+ "profile": {
+ "label": "Profil ONVIF",
+ "description": "Profil media ONVIF specific de utilizat pentru control PTZ, potrivit după token sau nume. Dacă nu este setat, se selectează automat primul profil cu configurație PTZ validă."
}
},
"version": {
@@ -1202,7 +1206,7 @@
"label": "Hardware detector",
"description": "Configurare pentru detectoarele de obiecte (CPU, GPU, backend-uri ONNX) și orice setări de model specifice detectorului.",
"type": {
- "label": "Tip detector",
+ "label": "Tip",
"description": "Tipul de detector de folosit pentru detecția obiectelor (de exemplu, 'cpu', 'edgetpu', 'openvino')."
},
"cpu": {
@@ -1987,13 +1991,116 @@
"label": "Linger socket ZMQ (ms)",
"description": "Perioada de tip 'linger' a socket-ului în milisecunde."
}
+ },
+ "axengine": {
+ "label": "NPU AXEngine",
+ "description": "Detector NPU AXERA AX650N/AX8850N care rulează fișiere .axmodel compilate prin intermediul runtime-ului AXEngine.",
+ "type": {
+ "label": "Tip"
+ },
+ "model": {
+ "label": "Configurație model specifică detectorului",
+ "description": "Opțiuni de configurare a modelului specifice detectorului (cale, dimensiune intrare etc.).",
+ "path": {
+ "label": "Calea către modelul personalizat de detecție a obiectelor",
+ "description": "Calea către un fișier de model de detecție personalizat (sau plus://clean_copy în configurația snapshot-urilor pentru a putea trimite imagini de la aceste camere către Frigate+.",
- "desc": "Trimiterea către Frigate+ necesită ca ambele opțiuni, snapshot-uri și clean_copy, să fie activate în configurație."
+ "cleanCopyWarning": "Unele camere au snapshot-urile dezactivate",
+ "desc": "Trimiterea către Frigate+ necesită ca snapshot-urile să fie activate în configurația ta."
},
"modelInfo": {
"title": "Informații Model",
@@ -1319,6 +1341,14 @@
"confirmButton": "Șterge definitiv",
"success": "Camera {{cameraName}} a fost ștearsă cu succes",
"error": "Eroare la ștergerea camerei {{cameraName}}"
+ },
+ "profiles": {
+ "title": "Suprascrieri profil cameră",
+ "selectLabel": "Selectează profilul",
+ "description": "Configurează care camere sunt activate sau dezactivate când un profil este activat. Camerele setate pe \"Moștenire\" își păstrează starea de bază de activare.",
+ "inherit": "Moștenire",
+ "enabled": "Activat",
+ "disabled": "Dezactivat"
}
},
"cameraReview": {
@@ -1373,6 +1403,9 @@
"value": {
"label": "Valoare nouă",
"reset": "Resetare"
+ },
+ "profile": {
+ "label": "Profil"
}
},
"detectionModel": {
@@ -1429,7 +1462,9 @@
"review_thumbnails": "Miniaturi Review",
"previews": "Previzualizări",
"exports": "Exporturi",
- "recordings": "Înregistrări"
+ "recordings": "Înregistrări",
+ "verbose": "Detaliat",
+ "verboseDesc": "Scrie pe disc o listă completă a fișierelor orfane pentru verificare."
},
"regionGrid": {
"title": "Grilă regiune",
@@ -1449,7 +1484,8 @@
},
"camera": {
"title": "Setări Cameră",
- "description": "Aceste setări se aplică doar pentru această cameră și suprascriu setările globale."
+ "description": "Aceste setări se aplică doar pentru această cameră și suprascriu setările globale.",
+ "noCameras": "Nicio cameră disponibilă"
},
"advancedSettingsCount": "Setări Avansate ({{count}})",
"advancedCount": "Avansat ({{count}})",
@@ -1480,7 +1516,35 @@
"manual": "Argumente manuale",
"inherit": "Moștenește de la setările camerei",
"selectPreset": "Selectează presetarea",
- "manualPlaceholder": "Introdu argumentele FFmpeg"
+ "manualPlaceholder": "Introdu argumentele FFmpeg",
+ "none": "Niciunul",
+ "useGlobalSetting": "Moștenește din setarea globală",
+ "presetLabels": {
+ "preset-rpi-64-h264": "Raspberry Pi (H.264)",
+ "preset-rpi-64-h265": "Raspberry Pi (H.265)",
+ "preset-vaapi": "VAAPI (GPU Intel/AMD)",
+ "preset-intel-qsv-h264": "Intel QuickSync (H.264)",
+ "preset-intel-qsv-h265": "Intel QuickSync (H.265)",
+ "preset-nvidia": "GPU NVIDIA",
+ "preset-jetson-h264": "NVIDIA Jetson (H.264)",
+ "preset-jetson-h265": "NVIDIA Jetson (H.265)",
+ "preset-rkmpp": "Rockchip RKMPP",
+ "preset-http-jpeg-generic": "HTTP JPEG (Generic)",
+ "preset-http-mjpeg-generic": "HTTP MJPEG (Generic)",
+ "preset-http-reolink": "HTTP - Camere Reolink",
+ "preset-rtmp-generic": "RTMP (Generic)",
+ "preset-rtsp-generic": "RTSP (Generic)",
+ "preset-rtsp-restream": "RTSP - Restream de la go2rtc",
+ "preset-rtsp-restream-low-latency": "RTSP - Restream de la go2rtc (Latență scăzută)",
+ "preset-rtsp-udp": "RTSP - UDP",
+ "preset-rtsp-blue-iris": "RTSP - Blue Iris",
+ "preset-record-generic": "Înregistrare (Generic, fără audio)",
+ "preset-record-generic-audio-copy": "Înregistrare (Generic + Copiere audio)",
+ "preset-record-generic-audio-aac": "Înregistrare (Generic + Audio în AAC)",
+ "preset-record-mjpeg": "Înregistrare - Camere MJPEG",
+ "preset-record-jpeg": "Înregistrare - Camere JPEG",
+ "preset-record-ubiquiti": "Înregistrare - Camere Ubiquiti"
+ }
},
"cameraInputs": {
"itemTitle": "Stream-ul {{index}}"
@@ -1512,7 +1576,8 @@
"genai": "GenAI",
"face_recognition": "Recunoaștere Facială",
"lpr": "Recunoaștere Numere Înmatriculare",
- "birdseye": "Birdseye"
+ "birdseye": "Birdseye",
+ "masksAndZones": "Măști / zone"
},
"detect": {
"title": "Setări Detecție"
@@ -1524,7 +1589,8 @@
"keyDuplicate": "Numele detectorului există deja.",
"noSchema": "Nu sunt disponibile scheme de detectoare.",
"none": "Nicio instanță de detector configurată.",
- "add": "Adaugă detector"
+ "add": "Adaugă detector",
+ "addCustomKey": "Adaugă cheie personalizată"
},
"record": {
"title": "Setări Înregistrare"
@@ -1577,7 +1643,25 @@
"timestamp_style": {
"title": "Setări Timestamp"
},
- "searchPlaceholder": "Caută..."
+ "searchPlaceholder": "Caută...",
+ "genaiRoles": {
+ "options": {
+ "embeddings": "Înglobare",
+ "vision": "Viziune",
+ "tools": "Instrumente"
+ }
+ },
+ "semanticSearchModel": {
+ "placeholder": "Selectează modelul…",
+ "builtIn": "Modele integrate",
+ "genaiProviders": "Furnizori GenAI"
+ },
+ "reviewLabels": {
+ "summary": "{{count}} etichete selectate",
+ "empty": "Nicio etichetă disponibilă",
+ "allNonAlertDetections": "Toată activitatea fără alertă va fi inclusă ca detecții."
+ },
+ "addCustomLabel": "Adaugă etichetă personalizată..."
},
"globalConfig": {
"title": "Configurare Globală",
@@ -1617,5 +1701,143 @@
"unsavedChanges": "Ai modificări nesalvate",
"confirmReset": "Confirmă Resetarea",
"resetToDefaultDescription": "Această acțiune va reseta toate setările din această secțiune la valorile implicite. Acțiunea este ireversibilă.",
- "resetToGlobalDescription": "Această acțiune va reseta setările din această secțiune la valorile globale implicite. Acțiunea este ireversibilă."
+ "resetToGlobalDescription": "Această acțiune va reseta setările din această secțiune la valorile globale implicite. Acțiunea este ireversibilă.",
+ "button": {
+ "overriddenGlobal": "Suprascris (global)",
+ "overriddenGlobalTooltip": "Această cameră suprascrie setările globale de configurare din această secțiune",
+ "overriddenBaseConfig": "Suprascris (configurația de bază)",
+ "overriddenBaseConfigTooltip": "Profilul {{profile}} suprascrie setările de configurare din această secțiune"
+ },
+ "profiles": {
+ "title": "Profile",
+ "activeProfile": "Profil activ",
+ "noActiveProfile": "Niciun profil activ",
+ "active": "Activ",
+ "activated": "Profilul '{{profile}}' a fost activat",
+ "activateFailed": "Setarea profilului a eșuat",
+ "deactivated": "Profil dezactivat",
+ "noProfiles": "Niciun profil definit.",
+ "noOverrides": "Fără suprascrieri",
+ "cameraCount_one": "{{count}} cameră",
+ "cameraCount_few": "{{count}} camere",
+ "cameraCount_other": "{{count}} de camere",
+ "baseConfig": "Configurație de bază",
+ "addProfile": "Adaugă profil",
+ "newProfile": "Profil nou",
+ "profileNamePlaceholder": "de ex., Armat, Plecat, Mod noapte",
+ "friendlyNameLabel": "Nume profil",
+ "profileIdLabel": "ID profil",
+ "profileIdDescription": "Identificator intern folosit în configurație și automatizări",
+ "nameInvalid": "Sunt permise doar litere mici, numere și underscore-uri",
+ "nameDuplicate": "Un profil cu acest nume există deja",
+ "error": {
+ "mustBeAtLeastTwoCharacters": "Trebuie să aibă cel puțin 2 caractere",
+ "mustNotContainPeriod": "Nu trebuie să conțină puncte",
+ "alreadyExists": "Un profil cu acest ID există deja"
+ },
+ "renameProfile": "Redenumește profilul",
+ "renameSuccess": "Profilul a fost redenumit în '{{profile}}'",
+ "deleteProfile": "Șterge profilul",
+ "deleteProfileConfirm": "Ștergi profilul \"{{profile}}\" de pe toate camerele? Această acțiune nu poate fi anulată.",
+ "deleteSuccess": "Profilul '{{profile}}' a fost șters",
+ "createSuccess": "Profilul '{{profile}}' a fost creat",
+ "removeOverride": "Elimină suprascrierea profilului",
+ "deleteSection": "Șterge suprascrierile secțiunii",
+ "deleteSectionConfirm": "Elimini suprascrierile {{section}} pentru profilul {{profile}} de pe {{camera}}?",
+ "deleteSectionSuccess": "Au fost eliminate suprascrierile {{section}} pentru {{profile}}",
+ "enableSwitch": "Activează profilele",
+ "enabledDescription": "Profilele sunt activate. Creează un profil nou mai jos, navighează la o secțiune de configurare a camerei pentru a face modificările, și salvează pentru ca acestea să aibă efect.",
+ "disabledDescription": "Profilele îți permit să definești seturi denumite de suprascrieri pentru configurația camerei (de ex., armat, plecat, noapte) care pot fi activate la cerere.",
+ "columnCamera": "Camera",
+ "columnOverrides": "Suprascrieri profil"
+ },
+ "go2rtcStreams": {
+ "title": "Stream-uri go2rtc",
+ "description": "Gestionează configurațiile de stream-uri go2rtc pentru retransmisia camerelor. Fiecare stream are un nume și unul sau mai multe URL-uri sursă.",
+ "addStream": "Adaugă stream",
+ "addStreamDesc": "Introdu un nume pentru noul stream. Acest nume va fi folosit pentru a referenția stream-ul în configurația camerei tale.",
+ "addUrl": "Adaugă URL",
+ "streamName": "Nume stream",
+ "streamNamePlaceholder": "de ex., usa_intrare",
+ "streamUrlPlaceholder": "de ex., rtsp://user:parola@192.168.1.100/stream",
+ "deleteStream": "Șterge stream",
+ "deleteStreamConfirm": "Sigur vrei să ștergi stream-ul \"{{streamName}}\"? Camerele care referențiază acest stream s-ar putea să nu mai funcționeze.",
+ "noStreams": "Niciun stream go2rtc configurat. Adaugă un stream pentru a începe.",
+ "validation": {
+ "nameRequired": "Numele stream-ului este obligatoriu",
+ "nameDuplicate": "Un stream cu acest nume există deja",
+ "nameInvalid": "Numele stream-ului poate conține doar litere, numere, underscore-uri și cratime",
+ "urlRequired": "Cel puțin un URL este obligatoriu"
+ },
+ "renameStream": "Redenumește stream-ul",
+ "renameStreamDesc": "Introdu un nume nou pentru acest stream. Redenumirea unui stream poate strica camerele sau alte stream-uri care îl referențiază după nume.",
+ "newStreamName": "Nume nou de stream",
+ "ffmpeg": {
+ "useFfmpegModule": "Folosește modul de compatibilitate (ffmpeg)",
+ "video": "Video",
+ "audio": "Audio",
+ "hardware": "Accelerare hardware",
+ "videoCopy": "Copiază",
+ "videoH264": "Transcodează în H.264",
+ "videoH265": "Transcodează în H.265",
+ "videoExclude": "Exclude",
+ "audioCopy": "Copiază",
+ "audioAac": "Transcodează în AAC",
+ "audioOpus": "Transcodează în Opus",
+ "audioPcmu": "Transcodează în PCM μ-law",
+ "audioPcma": "Transcodează în PCM A-law",
+ "audioPcm": "Transcodează în PCM",
+ "audioMp3": "Transcodează în MP3",
+ "audioExclude": "Exclude",
+ "hardwareNone": "Fără accelerare hardware",
+ "hardwareAuto": "Accelerare hardware automată"
+ }
+ },
+ "timestampPosition": {
+ "tl": "Sus stânga",
+ "tr": "Sus dreapta",
+ "bl": "Jos stânga",
+ "br": "Jos dreapta"
+ },
+ "onvif": {
+ "profileAuto": "Auto",
+ "profileLoading": "Se încarcă profilurile..."
+ },
+ "configMessages": {
+ "review": {
+ "recordDisabled": "Înregistrarea este dezactivată, elementele de revizuire nu vor fi generate.",
+ "detectDisabled": "Detecția obiectelor este dezactivată. Elementele de revizuire necesită obiecte detectate pentru a categorisi alertele și detecțiile.",
+ "allNonAlertDetections": "Toată activitatea fără alertă va fi inclusă ca detecții."
+ },
+ "audio": {
+ "noAudioRole": "Niciun flux nu are rolul audio definit. Trebuie să activați rolul audio pentru ca detecția audio să funcționeze."
+ },
+ "audioTranscription": {
+ "audioDetectionDisabled": "Detecția audio nu este activată pentru această cameră. Transcrierea audio necesită ca detecția audio să fie activă."
+ },
+ "detect": {
+ "fpsGreaterThanFive": "Setarea cadrelor pe secundă pentru detecție la o valoare mai mare de 5 nu este recomandată."
+ },
+ "faceRecognition": {
+ "globalDisabled": "Recunoașterea facială nu este activată la nivel global. Activați-o în setările globale pentru ca recunoașterea facială la nivel de cameră să funcționeze.",
+ "personNotTracked": "Recunoașterea facială necesită urmărirea obiectului „person”. Asigurați-vă că „person” este în lista de urmărire a obiectelor."
+ },
+ "lpr": {
+ "globalDisabled": "Recunoașterea plăcuțelor de înmatriculare nu este activată la nivel global. Activați-o în setările globale pentru ca recunoașterea la nivel de cameră să funcționeze.",
+ "vehicleNotTracked": "Recunoașterea plăcuțelor de înmatriculare necesită ca „car” sau „motorcycle” să fie urmărite."
+ },
+ "record": {
+ "noRecordRole": "Niciun flux nu are rolul de înregistrare definit. Înregistrarea nu va funcționa."
+ },
+ "birdseye": {
+ "objectsModeDetectDisabled": "Birdseye este setat pe modul 'objects', dar detecția obiectelor este dezactivată pentru această cameră. Camera nu va apărea în Birdseye."
+ },
+ "snapshots": {
+ "detectDisabled": "Detecția obiectelor este dezactivată. Snapshot-urile sunt generate din obiectele urmărite și nu vor fi create."
+ },
+ "detectors": {
+ "mixedTypes": "Toți detectorii trebuie să folosească același tip. Șterge detectorii existenți pentru a folosi un alt tip.",
+ "mixedTypesSuggestion": "Toți detectorii trebuie să folosească același tip. Șterge detectorii existenți sau selectează {{type}}."
+ }
+ }
}
diff --git a/web/public/locales/ro/views/system.json b/web/public/locales/ro/views/system.json
index 420884e9b..e829edd60 100644
--- a/web/public/locales/ro/views/system.json
+++ b/web/public/locales/ro/views/system.json
@@ -50,7 +50,8 @@
"description": "Acesta este un bug cunoscut în instrumentele de raportare GPU Intel (intel_gpu_top), unde acestea se blochează și returnează repetat o utilizare GPU de 0% chiar și atunci când accelerarea hardware și detecția obiectelor rulează corect pe (i)GPU. Aceasta nu este o problemă Frigate. Poți reporni host-ul pentru a remedia temporar problema și a confirma că GPU-ul funcționează corect. Performanța nu este afectată."
},
"gpuTemperature": "Temperatură GPU",
- "npuTemperature": "Temperatură NPU"
+ "npuTemperature": "Temperatură NPU",
+ "gpuCompute": "Calcul / Codare GPU"
},
"detector": {
"temperature": "Temperatură detector",
@@ -151,7 +152,9 @@
"count": "{{count}} mesaje",
"expanded": {
"payload": "Conținut"
- }
+ },
+ "count_one": "{{count}} mesaj",
+ "count_other": "{{count}} mesaje"
}
},
"metrics": "Metrici sistem",
@@ -214,7 +217,8 @@
"detect": "detectează",
"cameraFfmpeg": "FFmpeg {{camName}}",
"camera": "cameră",
- "ffmpeg": "FFmpeg"
+ "ffmpeg": "FFmpeg",
+ "cameraGpu": "{{camName}} GPU"
},
"title": "Camere",
"overview": "Prezentare generală",
diff --git a/web/public/locales/ru/config/cameras.json b/web/public/locales/ru/config/cameras.json
index 0967ef424..d50ac0316 100644
--- a/web/public/locales/ru/config/cameras.json
+++ b/web/public/locales/ru/config/cameras.json
@@ -1 +1,110 @@
-{}
+{
+ "name": {
+ "label": "Наименование камеры",
+ "description": "Наименование камеры это обязательное поле"
+ },
+ "enabled": {
+ "label": "Включено",
+ "description": "Включено"
+ },
+ "friendly_name": {
+ "label": "Отображаемое имя",
+ "description": "Отображаемое имя уже используется"
+ },
+ "label": "Конфигурация",
+ "audio": {
+ "label": "Аудиособытия",
+ "description": "Настройки обнаружения аудиособытий для этой камеры.",
+ "enabled": {
+ "label": "Включить обнаружение звука",
+ "description": "Включить или отключить аудиособытия для этой камеры."
+ },
+ "max_not_heard": {
+ "label": "Завершение таймаута",
+ "description": "Количество секунд без указания типа звука до завершения звукового события."
+ },
+ "min_volume": {
+ "label": "Минимальная громкость",
+ "description": "Для запуска функции обнаружения звука требуется минимальный пороговый уровень громкости RMS; более низкие значения повышают чувствительность (например, 200 — высокий, 500 — средний, 1000 — низкий)."
+ },
+ "listen": {
+ "description": "Список типов аудиособытий для обнаружения (например: лай, пожарная тревога, крик, речь, вопль).",
+ "label": "Типы аудиособытий"
+ },
+ "filters": {
+ "label": "Аудиофильтры",
+ "description": "Настройки фильтров для каждого типа аудиофайлов, такие как пороговые значения, используются для уменьшения количества ложных срабатываний."
+ },
+ "enabled_in_config": {
+ "label": "Исходное состояние звука",
+ "description": "Указывает, было ли изначально включено обнаружение звука в статическом конфигурационном файле."
+ },
+ "num_threads": {
+ "label": "Обнаружение потоков",
+ "description": "Количество потоков, используемых для обработки обнаружения звука."
+ }
+ },
+ "audio_transcription": {
+ "label": "Расшифровка аудиозаписи",
+ "description": "Настройки для транскрипции аудио в реальном времени и речи, используемые для событий и субтитров в реальном времени.",
+ "enabled": {
+ "label": "Включить транскрипцию",
+ "description": "Включить или отключить транскрипцию аудиособытий, запускаемую вручную."
+ },
+ "enabled_in_config": {
+ "label": "Исходное состояние транскрипции"
+ },
+ "live_enabled": {
+ "label": "Транскрипция в реальном времени",
+ "description": "Включить потоковую транскрипцию аудио в режиме реального времени по мере его поступления."
+ }
+ },
+ "birdseye": {
+ "description": "Настройки для составного режима просмотра Birdseye, который объединяет видеопоток с нескольких камер в единый макет.",
+ "label": "Режим Birdseye",
+ "enabled": {
+ "label": "Включить Birdseye",
+ "description": "Включить или отключить функцию Birdseye."
+ },
+ "mode": {
+ "label": "Режим слежения",
+ "description": "Режимы добавления камер в Birdseye: «объекты», «движение» или «непрерывный»."
+ },
+ "order": {
+ "label": "Позиция",
+ "description": "Числовое значение, управляющее порядком расположения камер в схеме Birdseye."
+ }
+ },
+ "detect": {
+ "label": "Обнаружение объектов",
+ "description": "Настройки роли обнаружения, используемые для запуска обнаружения объектов и инициализации трекеров.",
+ "enabled": {
+ "label": "Включить обнаружение объектов",
+ "description": "Включить или отключить обнаружение объектов для этой камеры."
+ },
+ "height": {
+ "label": "Высота обнаружения",
+ "description": "Высота (в пикселях) кадров, используемых для обнаружения потока; оставьте поле пустым, чтобы использовать собственное разрешение потока."
+ },
+ "width": {
+ "label": "Ширина обнаружения",
+ "description": "Ширина (в пикселях) кадров, используемых для обнаружения потока; оставьте поле пустым, чтобы использовать собственное разрешение потока."
+ },
+ "fps": {
+ "label": "Частота кадров обнаружения",
+ "description": "Желаемое количество кадров в секунду для выполнения обнаружения; более низкие значения снижают нагрузку на ЦП (рекомендуемое значение — 5, более высокое значение — максимум 10 — следует устанавливать только при отслеживании чрезвычайно быстро движущихся объектов)."
+ },
+ "min_initialized": {
+ "label": "Минимальное количество кадров инициализации",
+ "description": "Количество последовательных срабатываний обнаружения, необходимых для создания отслеживаемого объекта. Увеличьте это значение, чтобы уменьшить количество ложных инициализаций. Значение по умолчанию — частота кадров, деленная на 2."
+ },
+ "max_disappeared": {
+ "label": "Максимальное количество исчезнувших кадров",
+ "description": "Количество кадров без обнаружения до того, как отслеживаемый объект будет считаться исчезнувшим."
+ },
+ "stationary": {
+ "label": "Конфигурация стационарных объектов",
+ "description": "Настройки для обнаружения и управления объектами, которые остаются неподвижными в течение определенного периода времени."
+ }
+ }
+}
diff --git a/web/public/locales/ru/config/global.json b/web/public/locales/ru/config/global.json
index 0967ef424..5e7de1ab3 100644
--- a/web/public/locales/ru/config/global.json
+++ b/web/public/locales/ru/config/global.json
@@ -1 +1,87 @@
-{}
+{
+ "audio": {
+ "label": "Аудиособытия",
+ "enabled": {
+ "label": "Включить обнаружение звука"
+ },
+ "max_not_heard": {
+ "label": "Завершение таймаута",
+ "description": "Количество секунд без указания типа звука до завершения звукового события."
+ },
+ "min_volume": {
+ "label": "Минимальная громкость",
+ "description": "Для запуска функции обнаружения звука требуется минимальный пороговый уровень громкости RMS; более низкие значения повышают чувствительность (например, 200 — высокий, 500 — средний, 1000 — низкий)."
+ },
+ "listen": {
+ "description": "Список типов аудиособытий для обнаружения (например: лай, пожарная тревога, крик, речь, вопль).",
+ "label": "Типы аудиособытий"
+ },
+ "filters": {
+ "label": "Аудиофильтры",
+ "description": "Настройки фильтров для каждого типа аудиофайлов, такие как пороговые значения, используются для уменьшения количества ложных срабатываний."
+ },
+ "enabled_in_config": {
+ "label": "Исходное состояние звука",
+ "description": "Указывает, было ли изначально включено обнаружение звука в статическом конфигурационном файле."
+ },
+ "num_threads": {
+ "label": "Обнаружение потоков",
+ "description": "Количество потоков, используемых для обработки обнаружения звука."
+ }
+ },
+ "audio_transcription": {
+ "label": "Расшифровка аудиозаписи",
+ "description": "Настройки для транскрипции аудио в реальном времени и речи, используемые для событий и субтитров в реальном времени.",
+ "live_enabled": {
+ "label": "Транскрипция в реальном времени",
+ "description": "Включить потоковую транскрипцию аудио в режиме реального времени по мере его поступления."
+ }
+ },
+ "birdseye": {
+ "description": "Настройки для составного режима просмотра Birdseye, который объединяет видеопоток с нескольких камер в единый макет.",
+ "label": "Режим Birdseye",
+ "enabled": {
+ "label": "Включить Birdseye",
+ "description": "Включить или отключить функцию Birdseye."
+ },
+ "mode": {
+ "label": "Режим слежения",
+ "description": "Режимы добавления камер в Birdseye: «объекты», «движение» или «непрерывный»."
+ },
+ "order": {
+ "label": "Позиция",
+ "description": "Числовое значение, управляющее порядком расположения камер в схеме Birdseye."
+ }
+ },
+ "detect": {
+ "label": "Обнаружение объектов",
+ "description": "Настройки роли обнаружения, используемые для запуска обнаружения объектов и инициализации трекеров.",
+ "enabled": {
+ "label": "Включить обнаружение объектов"
+ },
+ "height": {
+ "label": "Высота обнаружения",
+ "description": "Высота (в пикселях) кадров, используемых для обнаружения потока; оставьте поле пустым, чтобы использовать собственное разрешение потока."
+ },
+ "width": {
+ "label": "Ширина обнаружения",
+ "description": "Ширина (в пикселях) кадров, используемых для обнаружения потока; оставьте поле пустым, чтобы использовать собственное разрешение потока."
+ },
+ "fps": {
+ "label": "Частота кадров обнаружения",
+ "description": "Желаемое количество кадров в секунду для выполнения обнаружения; более низкие значения снижают нагрузку на ЦП (рекомендуемое значение — 5, более высокое значение — максимум 10 — следует устанавливать только при отслеживании чрезвычайно быстро движущихся объектов)."
+ },
+ "min_initialized": {
+ "label": "Минимальное количество кадров инициализации",
+ "description": "Количество последовательных срабатываний обнаружения, необходимых для создания отслеживаемого объекта. Увеличьте это значение, чтобы уменьшить количество ложных инициализаций. Значение по умолчанию — частота кадров, деленная на 2."
+ },
+ "max_disappeared": {
+ "label": "Максимальное количество исчезнувших кадров",
+ "description": "Количество кадров без обнаружения до того, как отслеживаемый объект будет считаться исчезнувшим."
+ },
+ "stationary": {
+ "label": "Конфигурация стационарных объектов",
+ "description": "Настройки для обнаружения и управления объектами, которые остаются неподвижными в течение определенного периода времени."
+ }
+ }
+}
diff --git a/web/public/locales/ru/views/classificationModel.json b/web/public/locales/ru/views/classificationModel.json
index b5b7e2222..6dbe7a4b1 100644
--- a/web/public/locales/ru/views/classificationModel.json
+++ b/web/public/locales/ru/views/classificationModel.json
@@ -17,8 +17,12 @@
},
"toast": {
"success": {
- "deletedCategory": "Класс удалён",
- "deletedImage": "Изображения удалены",
+ "deletedCategory_one": "Класс удалён",
+ "deletedCategory_few": "",
+ "deletedCategory_many": "",
+ "deletedImage_one": "Изображения удалены",
+ "deletedImage_few": "",
+ "deletedImage_many": "",
"deletedModel_one": "Успешно удалена {{count}} модель",
"deletedModel_few": "Успешно удалены {{count}} модели",
"deletedModel_many": "Успешно удалены {{count}} моделей",
diff --git a/web/public/locales/sk/views/classificationModel.json b/web/public/locales/sk/views/classificationModel.json
index 58a802fd2..7b5c0e59c 100644
--- a/web/public/locales/sk/views/classificationModel.json
+++ b/web/public/locales/sk/views/classificationModel.json
@@ -12,8 +12,12 @@
},
"toast": {
"success": {
- "deletedCategory": "Vymazaná Trieda",
- "deletedImage": "Vymazané Obrázky",
+ "deletedCategory_one": "Vymazaná Trieda",
+ "deletedCategory_few": "",
+ "deletedCategory_other": "",
+ "deletedImage_one": "Vymazané Obrázky",
+ "deletedImage_few": "",
+ "deletedImage_other": "",
"categorizedImage": "Obrázok bol úspešne klasifikovaný",
"trainedModel": "Úspešne vyškolený model.",
"trainingModel": "Úspešne spustené trénovanie modelu.",
diff --git a/web/public/locales/sl/views/classificationModel.json b/web/public/locales/sl/views/classificationModel.json
index 317a5f6da..514c3afe3 100644
--- a/web/public/locales/sl/views/classificationModel.json
+++ b/web/public/locales/sl/views/classificationModel.json
@@ -18,8 +18,14 @@
},
"toast": {
"success": {
- "deletedCategory": "Razred izbrisan",
- "deletedImage": "Slike izbrisane",
+ "deletedCategory_one": "Razred izbrisan",
+ "deletedCategory_two": "",
+ "deletedCategory_few": "",
+ "deletedCategory_other": "",
+ "deletedImage_one": "Slike izbrisane",
+ "deletedImage_two": "",
+ "deletedImage_few": "",
+ "deletedImage_other": "",
"trainedModel": "Model uspešno naučen.",
"trainingModel": "Učenje modela se je uspešno začelo.",
"deletedModel_one": "Model uspešno izbrisan",
diff --git a/web/public/locales/sr/views/classificationModel.json b/web/public/locales/sr/views/classificationModel.json
index 68abd5cbf..81650c587 100644
--- a/web/public/locales/sr/views/classificationModel.json
+++ b/web/public/locales/sr/views/classificationModel.json
@@ -23,8 +23,12 @@
},
"toast": {
"success": {
- "deletedCategory": "Обрисана класа",
- "deletedImage": "Обрисане слике",
+ "deletedCategory_one": "Обрисана класа",
+ "deletedCategory_few": "",
+ "deletedCategory_other": "",
+ "deletedImage_one": "Обрисане слике",
+ "deletedImage_few": "",
+ "deletedImage_other": "",
"deletedModel_one": "Успешно је обрисан {{count}} модел",
"deletedModel_few": "Успешно су обрисана {{count}} модела",
"deletedModel_other": "Успешно је обрисано {{count}} модела",
diff --git a/web/public/locales/sv/views/classificationModel.json b/web/public/locales/sv/views/classificationModel.json
index 5b5c5b77f..f4ac4b2ef 100644
--- a/web/public/locales/sv/views/classificationModel.json
+++ b/web/public/locales/sv/views/classificationModel.json
@@ -12,8 +12,10 @@
},
"toast": {
"success": {
- "deletedCategory": "Borttagen klass",
- "deletedImage": "Raderade bilder",
+ "deletedCategory_one": "Borttagen klass",
+ "deletedCategory_other": "",
+ "deletedImage_one": "Raderade bilder",
+ "deletedImage_other": "",
"categorizedImage": "Lyckades klassificera bilden",
"trainedModel": "Modellen har tränats.",
"trainingModel": "Modellträning har startat.",
diff --git a/web/public/locales/tr/config/cameras.json b/web/public/locales/tr/config/cameras.json
index 0967ef424..7bc693e87 100644
--- a/web/public/locales/tr/config/cameras.json
+++ b/web/public/locales/tr/config/cameras.json
@@ -1 +1,5 @@
-{}
+{
+ "name": {
+ "label": "Kamera ismi"
+ }
+}
diff --git a/web/public/locales/tr/config/global.json b/web/public/locales/tr/config/global.json
index 0967ef424..4b4308cb3 100644
--- a/web/public/locales/tr/config/global.json
+++ b/web/public/locales/tr/config/global.json
@@ -1 +1,8 @@
-{}
+{
+ "safe_mode": {
+ "label": "Güvenli mod"
+ },
+ "environment_vars": {
+ "label": "Ortam değişkenleri"
+ }
+}
diff --git a/web/public/locales/tr/config/validation.json b/web/public/locales/tr/config/validation.json
index 0967ef424..73b68c515 100644
--- a/web/public/locales/tr/config/validation.json
+++ b/web/public/locales/tr/config/validation.json
@@ -1 +1,6 @@
-{}
+{
+ "minimum": "En az {{limit}} olmalı",
+ "maximum": "En fazla {{limit}} olmalı",
+ "exclusiveMinimum": "{{limit}}’den büyük olmalı",
+ "exclusiveMaximum": "{{limit}}’den küçük olmalı"
+}
diff --git a/web/public/locales/tr/views/classificationModel.json b/web/public/locales/tr/views/classificationModel.json
index 2081188aa..3a14e1f91 100644
--- a/web/public/locales/tr/views/classificationModel.json
+++ b/web/public/locales/tr/views/classificationModel.json
@@ -17,8 +17,10 @@
},
"toast": {
"success": {
- "deletedCategory": "Silinmiş Sınıf",
- "deletedImage": "Silinmiş Fotoğraflar",
+ "deletedCategory_one": "Silinmiş Sınıf",
+ "deletedCategory_other": "",
+ "deletedImage_one": "Silinmiş Fotoğraflar",
+ "deletedImage_other": "",
"deletedModel_one": "{{count}} model başarıyla silindi",
"deletedModel_other": "{{count}} model başarıyla silindi",
"categorizedImage": "Fotoğraf Başarıyla Sınıflandırıldı",
diff --git a/web/public/locales/tr/views/faceLibrary.json b/web/public/locales/tr/views/faceLibrary.json
index 6df04530b..46663ac48 100644
--- a/web/public/locales/tr/views/faceLibrary.json
+++ b/web/public/locales/tr/views/faceLibrary.json
@@ -3,7 +3,8 @@
"description": {
"placeholder": "Bu koleksiyona bir isim verin",
"addFace": "İlk görselinizi yükleyerek Yüz Kütüphanesi’ne yeni bir koleksiyon ekleyin.",
- "invalidName": "Geçersiz isim. İsimler; yalnızca harf, rakam, boşluk, kesme işareti (’), alt çizgi(_) ve tire (-) içerebilir."
+ "invalidName": "Geçersiz isim. İsimler; yalnızca harf, rakam, boşluk, kesme işareti (’), alt çizgi(_) ve tire (-) içerebilir.",
+ "nameCannotContainHash": "İsim, # içeremez."
},
"details": {
"person": "İnsan",
diff --git a/web/public/locales/tr/views/live.json b/web/public/locales/tr/views/live.json
index 60a8576ff..1c9af5328 100644
--- a/web/public/locales/tr/views/live.json
+++ b/web/public/locales/tr/views/live.json
@@ -1,5 +1,7 @@
{
- "documentTitle": "Canlı - Frigate",
+ "documentTitle": {
+ "default": "Canlı - Frigate"
+ },
"documentTitle.withCamera": "{{camera}} - Canlı - Frigate",
"muteCameras": {
"disable": "Tüm Kameraların Sesini Aç",
diff --git a/web/public/locales/uk/views/classificationModel.json b/web/public/locales/uk/views/classificationModel.json
index a96997bc7..faceecd91 100644
--- a/web/public/locales/uk/views/classificationModel.json
+++ b/web/public/locales/uk/views/classificationModel.json
@@ -12,8 +12,12 @@
},
"toast": {
"success": {
- "deletedCategory": "Видалений клас",
- "deletedImage": "Видалені зображення",
+ "deletedCategory_one": "Видалений клас",
+ "deletedCategory_few": "",
+ "deletedCategory_many": "",
+ "deletedImage_one": "Видалені зображення",
+ "deletedImage_few": "",
+ "deletedImage_many": "",
"categorizedImage": "Зображення успішно класифіковано",
"trainedModel": "Успішно навчена модель.",
"trainingModel": "Успішно розпочато навчання моделі.",
diff --git a/web/public/locales/vi/views/classificationModel.json b/web/public/locales/vi/views/classificationModel.json
index f0a012425..666a72fa1 100644
--- a/web/public/locales/vi/views/classificationModel.json
+++ b/web/public/locales/vi/views/classificationModel.json
@@ -12,8 +12,8 @@
},
"toast": {
"success": {
- "deletedCategory": "Lớp Đã Bị Xoá",
- "deletedImage": "Hình ảnh đã bị xóa",
+ "deletedCategory_other": "Lớp Đã Bị Xoá",
+ "deletedImage_other": "Hình ảnh đã bị xóa",
"deletedModel_other": "Đã xóa thành công {{count}} mô hình",
"categorizedImage": "Phân Loại Hình Ảnh Thành Công",
"trainedModel": "Đã huấn luyện mô hình thành công.",
diff --git a/web/public/locales/yue-Hant/views/classificationModel.json b/web/public/locales/yue-Hant/views/classificationModel.json
index c46b060d7..7bfda4a68 100644
--- a/web/public/locales/yue-Hant/views/classificationModel.json
+++ b/web/public/locales/yue-Hant/views/classificationModel.json
@@ -28,8 +28,8 @@
},
"toast": {
"success": {
- "deletedCategory": "已刪除類別",
- "deletedImage": "已刪除影像",
+ "deletedCategory_other": "已刪除類別",
+ "deletedImage_other": "已刪除影像",
"deletedModel_other": "已成功刪除 {{count}} 個模型",
"categorizedImage": "影像分類成功",
"trainedModel": "模型訓練成功。",
diff --git a/web/public/locales/zh-CN/common.json b/web/public/locales/zh-CN/common.json
index 44d326acf..e9337cfc7 100644
--- a/web/public/locales/zh-CN/common.json
+++ b/web/public/locales/zh-CN/common.json
@@ -167,7 +167,8 @@
"resetToDefault": "重置为默认",
"saveAll": "保存全部",
"savingAll": "保存全部中…",
- "undoAll": "撤销全部"
+ "undoAll": "撤销全部",
+ "retry": "重试"
},
"menu": {
"system": "系统",
@@ -271,7 +272,8 @@
"restart": "重启 Frigate",
"classification": "目标分类",
"actions": "操作",
- "chat": "聊天"
+ "chat": "聊天",
+ "profiles": "配置模板"
},
"toast": {
"copyUrlToClipboard": "已复制链接到剪贴板。",
@@ -280,7 +282,8 @@
"error": {
"title": "保存配置信息失败: {{errorMessage}}",
"noMessage": "保存配置信息失败"
- }
+ },
+ "success": "成功保存配置文件。"
}
},
"role": {
@@ -312,5 +315,7 @@
"field": {
"optional": "可选",
"internalID": "Frigate 在配置与数据库中使用的内部 ID"
- }
+ },
+ "no_items": "没有项目",
+ "validation_errors": "验证错误"
}
diff --git a/web/public/locales/zh-CN/components/camera.json b/web/public/locales/zh-CN/components/camera.json
index e01d5e9aa..9bd70155e 100644
--- a/web/public/locales/zh-CN/components/camera.json
+++ b/web/public/locales/zh-CN/components/camera.json
@@ -82,6 +82,7 @@
"zones": "区域",
"mask": "遮罩",
"motion": "画面变动",
- "regions": "区域"
+ "regions": "区域",
+ "paths": "行动轨迹"
}
}
diff --git a/web/public/locales/zh-CN/config/cameras.json b/web/public/locales/zh-CN/config/cameras.json
index 9bb156748..aa627f549 100644
--- a/web/public/locales/zh-CN/config/cameras.json
+++ b/web/public/locales/zh-CN/config/cameras.json
@@ -41,7 +41,7 @@
},
"enabled_in_config": {
"label": "原始音频状态",
- "description": "指示原始静态配置文件中是否启用了音频检测。"
+ "description": "指示原始静态配置文件中是否开启了音频检测。"
}
},
"audio_transcription": {
@@ -79,8 +79,8 @@
"label": "目标检测",
"description": "用于运行目标检测、初始化追踪器的检测模块设置。",
"enabled": {
- "label": "开启检测",
- "description": "开启或关闭该摄像头的目标检测。如需运行目标追踪,必须先开启检测。"
+ "label": "开启目标检测",
+ "description": "开启或关闭该摄像头的目标检测。"
},
"height": {
"label": "检测画面高度",
@@ -299,7 +299,7 @@
},
"skip_motion_threshold": {
"label": "跳过画面变动阈值",
- "description": "如果单帧中图像变化超过此比例,检测器将返回无画面变动框并立即重新校准。这可以节省 CPU 并减少闪电、风暴等情况下的误报,但可能会错过真实事件,如 PTZ 摄像头自动追踪目标。权衡的是丢弃几兆字节的录像与查看几个短片之间的取舍。范围 0.0 到 1.0。"
+ "description": "如果单帧中画面变化超过此比例,检测器将判定为无画面变动并立即重新校准。这可以节省 CPU 并减少闪电、风暴等情况下的误报,但也可能会错过真正的事件,如 PTZ 摄像头自动追踪目标。你需要权衡取舍:是否牺牲少量录制片段,换取更少无效视频与更低的误检。保持为空即可关闭该功能。"
},
"improve_contrast": {
"label": "改善对比度",
@@ -560,7 +560,7 @@
},
"detections": {
"label": "检测配置",
- "description": "创建检测事件(非警报)以及保留多长时间的设置。",
+ "description": "用于设置哪些追踪目标会生成检测记录(非警报类),以及检测记录的保留方式。",
"enabled": {
"label": "开启检测",
"description": "开启或关闭此摄像头的检测事件。"
@@ -636,15 +636,15 @@
},
"timestamp": {
"label": "时间戳叠加",
- "description": "在保存的快照上叠加时间戳。"
+ "description": "在 API 生成的快照上叠加时间戳。"
},
"bounding_box": {
"label": "边界框叠加",
- "description": "在保存的快照上绘制追踪目标的边界框。"
+ "description": "在 API 生成的快照上绘制追踪目标的边界框。"
},
"crop": {
"label": "裁剪快照",
- "description": "将保存的快照裁剪到检测到的目标边界框。"
+ "description": "在 API 生成的快照裁剪到检测到的目标边界框。"
},
"required_zones": {
"label": "必需区域",
@@ -652,11 +652,11 @@
},
"height": {
"label": "快照高度",
- "description": "将保存的快照调整到的目标高度(像素);留空则保持原始大小。"
+ "description": "将 API 生成的快照调整到的目标高度(像素);留空则保持原始大小。"
},
"retain": {
"label": "快照保留",
- "description": "保存快照的保留设置,包括默认天数和按目标覆盖。",
+ "description": "快照的保留设置,包括默认天数和按目标覆盖。",
"default": {
"label": "默认保留",
"description": "保留快照的默认天数。"
@@ -671,10 +671,10 @@
}
},
"quality": {
- "label": "JPEG 质量",
- "description": "保存快照的 JPEG 编码质量(0-100)。"
+ "label": "快照质量",
+ "description": "保存快照的编码质量(0-100)。"
},
- "description": "此摄像头保存的追踪目标 JPEG 快照设置。"
+ "description": "此摄像头的追踪目标 API 快照设置。"
},
"timestamp_style": {
"label": "时间戳样式",
@@ -748,8 +748,8 @@
"label": "车牌识别",
"description": "车牌识别设置,包括检测阈值、格式化和已知车牌。",
"enabled": {
- "label": "开启 LPR",
- "description": "在此摄像头上启用或禁用 LPR。"
+ "label": "开启车牌识别",
+ "description": "在此摄像头上启用或禁用车牌识别。"
},
"min_area": {
"label": "最小车牌区域",
@@ -834,6 +834,10 @@
"ignore_time_mismatch": {
"label": "忽略时间不匹配",
"description": "忽略 ONVIF 通信中摄像头和 Frigate 服务器之间的时间同步差异。"
+ },
+ "profile": {
+ "label": "ONVIF 配置文件",
+ "description": "用于 PTZ 控制的指定 ONVIF 媒体配置,将通过 Token 或名称匹配。如果未手动指定,将自动选择第一个包含有效 PTZ 配置的媒体配置。"
}
},
"ui": {
@@ -937,5 +941,9 @@
"enabled_in_config": {
"label": "原始摄像头状态",
"description": "保持摄像头的原始状态跟踪。"
+ },
+ "profiles": {
+ "label": "配置模板",
+ "description": "可在运行时切换指定命名的配置模板,支持局部覆盖参数。"
}
}
diff --git a/web/public/locales/zh-CN/config/global.json b/web/public/locales/zh-CN/config/global.json
index 3ccb7423b..b14f4acbf 100644
--- a/web/public/locales/zh-CN/config/global.json
+++ b/web/public/locales/zh-CN/config/global.json
@@ -5,7 +5,7 @@
},
"safe_mode": {
"label": "安全模式",
- "description": "启用后,Frigate 将以安全模式启动,将会关闭部分功能,以便排查问题。"
+ "description": "开启后,Frigate 将以安全模式启动,将会关闭部分功能,以便排查问题。"
},
"environment_vars": {
"label": "环境变量",
@@ -52,7 +52,7 @@
},
"enabled_in_config": {
"label": "原始音频状态",
- "description": "指示原始静态配置文件中是否启用了音频检测。"
+ "description": "指示原始静态配置文件中是否开启了音频检测。"
}
},
"auth": {
@@ -68,7 +68,7 @@
},
"reset_admin_password": {
"label": "重置管理员密码",
- "description": "启用后,启动时将重置管理员用户密码,并在日志中打印新密码。"
+ "description": "开启后,启动时将重置管理员用户密码,并在日志中打印新密码。"
},
"cookie_name": {
"label": "JWT Cookie 名称",
@@ -183,8 +183,8 @@
"label": "目标检测",
"description": "用于运行目标检测、初始化追踪器的检测模块设置。",
"enabled": {
- "label": "开启检测",
- "description": "为所有摄像头启用或禁用目标检测;可按摄像头覆盖。必须启用检测才能运行目标追踪。"
+ "label": "开启目标检测",
+ "description": "为所有摄像头启用或禁用目标检测,可按摄像头覆盖。"
},
"height": {
"label": "检测画面高度",
@@ -536,7 +536,7 @@
"description": "Frigate Web 端点(端口 8971)的 TLS 设置。",
"enabled": {
"label": "开启 TLS",
- "description": "在配置的 TLS 端口上为 Frigate 的 Web UI 和 API 启用 TLS。"
+ "description": "为 Frigate 的 Web 页面和 API 的端口开启 TLS 加密。"
}
},
"ui": {
@@ -567,7 +567,7 @@
"label": "检测器硬件",
"description": "目标检测器(CPU、GPU、ONNX 后端)的配置以及任何检测器特定的模型设置。",
"type": {
- "label": "检测器类型",
+ "label": "类型",
"description": "用于目标检测的检测器类型(例如 'cpu'、'edgetpu'、'openvino')。"
},
"cpu": {
@@ -1352,6 +1352,61 @@
"label": "ZMQ 套接字逗留时间(毫秒)",
"description": "套接字逗留时间(毫秒)。"
}
+ },
+ "axengine": {
+ "label": "爱芯元智 NPU",
+ "description": "AXERA AX650N/AX8850N NPU 检测器,通过 AXEngine 运行库加载并执行编译后的 .axmodel 模型文件。",
+ "type": {
+ "label": "类型"
+ }
+ },
+ "model": {
+ "label": "检测器特定的模型配置",
+ "description": "检测器特定的模型配置选项(路径、输入尺寸等)。",
+ "path": {
+ "label": "自定义目标检测模型路径",
+ "description": "自定义检测模型文件的路径(或使用 plus://clean_copy 快照。",
+ "desc": "提交到 Frigate+ 需要同时在配置中开启快照功能。",
"documentation": "阅读文档",
- "cleanCopyWarning": "部分摄像头已启用快照但未启用 clean_copy。您需要在快照配置中启用 clean_copy,才能将这些摄像头的图像提交到 Frigate+。",
+ "cleanCopyWarning": "部分摄像头未开启快照功能",
"table": {
"camera": "摄像头",
"snapshots": "快照",
@@ -1374,6 +1396,14 @@
"confirmButton": "永久删除",
"success": "摄像头 {{cameraName}} 删除完成",
"error": "删除摄像头 {{cameraName}} 失败"
+ },
+ "profiles": {
+ "title": "配置模板的摄像头覆盖项",
+ "selectLabel": "选择配置模板",
+ "description": "配置在启用某个配置模板时,哪些摄像头应被开启或关闭。设置为“继承”的摄像头会沿用它原本的启用/禁用状态。",
+ "inherit": "继承",
+ "enabled": "开启",
+ "disabled": "关闭"
}
},
"cameraReview": {
@@ -1428,6 +1458,9 @@
"value": {
"label": "新值",
"reset": "重置"
+ },
+ "profile": {
+ "label": "配置"
}
},
"detectionModel": {
@@ -1465,7 +1498,8 @@
"genai": "生成式 AI",
"face_recognition": "人脸识别",
"lpr": "车牌识别",
- "birdseye": "鸟瞰图"
+ "birdseye": "鸟瞰图",
+ "masksAndZones": "遮罩 / 区域"
},
"global": {
"title": "全局设置",
@@ -1473,7 +1507,8 @@
},
"camera": {
"title": "摄像头设置",
- "description": "这些设置仅适用于此摄像头,并会覆盖全局设置。"
+ "description": "这些设置仅适用于此摄像头,并会覆盖全局设置。",
+ "noCameras": "没有可用的摄像头"
},
"advancedSettingsCount": "高级设置 ({{count}})",
"advancedCount": "高级选项 ({{count}})",
@@ -1495,7 +1530,35 @@
"manual": "手动参数",
"inherit": "继承摄像头设置",
"selectPreset": "选择预设",
- "manualPlaceholder": "输入 FFmpeg 参数"
+ "manualPlaceholder": "输入 FFmpeg 参数",
+ "none": "无",
+ "useGlobalSetting": "继承全局设置",
+ "presetLabels": {
+ "preset-rpi-64-h264": "树莓派(H.264)",
+ "preset-rpi-64-h265": "树莓派(H.265)",
+ "preset-vaapi": "VAAPI (Intel/AMD GPU)",
+ "preset-intel-qsv-h264": "Intel QuickSync (H.264)",
+ "preset-intel-qsv-h265": "Intel QuickSync (H.265)",
+ "preset-nvidia": "NVIDIA GPU",
+ "preset-jetson-h264": "NVIDIA Jetson (H.264)",
+ "preset-jetson-h265": "NVIDIA Jetson (H.265)",
+ "preset-rkmpp": "瑞芯微 RKMPP",
+ "preset-http-jpeg-generic": "HTTP JPEG(通用)",
+ "preset-http-mjpeg-generic": "HTTP MJPEG(通用)",
+ "preset-http-reolink": "HTTP - Reolink 摄像头",
+ "preset-rtmp-generic": "RTMP(通用)",
+ "preset-rtsp-generic": "RTSP(通用)",
+ "preset-rtsp-restream": "RTSP - 从 go2rtc 转流",
+ "preset-rtsp-restream-low-latency": "RTSP - 从 go2rtc 转流(低延迟)",
+ "preset-rtsp-udp": "RTSP - UDP协议",
+ "preset-rtsp-blue-iris": "RTSP - Blue Iris",
+ "preset-record-generic": "录制(通用,无音频)",
+ "preset-record-generic-audio-copy": "录制(通用,不转码音频)",
+ "preset-record-generic-audio-aac": "录制(通用并将音频转码为 AAC)",
+ "preset-record-mjpeg": "录制 - MJPEG 流摄像头",
+ "preset-record-jpeg": "录制 - JPEG 流摄像头",
+ "preset-record-ubiquiti": "录制 - 优必飞摄像头"
+ }
},
"cameraInputs": {
"itemTitle": "视频流 {{index}}"
@@ -1512,7 +1575,8 @@
"keyDuplicate": "检测器名称已存在。",
"noSchema": "没有可用的检测器架构。",
"none": "未配置检测器实例。",
- "add": "添加检测器"
+ "add": "添加检测器",
+ "addCustomKey": "添加自定义键(Key)"
},
"record": {
"title": "录制设置"
@@ -1574,7 +1638,24 @@
"timestamp_style": {
"title": "时间戳设置"
},
- "searchPlaceholder": "搜索…"
+ "searchPlaceholder": "搜索…",
+ "genaiRoles": {
+ "options": {
+ "embeddings": "嵌入(Embedding)",
+ "vision": "视觉(Vision)",
+ "tools": "工具(Tools)"
+ }
+ },
+ "semanticSearchModel": {
+ "placeholder": "选择模型…",
+ "builtIn": "内置模型",
+ "genaiProviders": "生成式 AI 服务"
+ },
+ "reviewLabels": {
+ "summary": "已选择 {{count}} 个标签",
+ "empty": "暂无可用标签"
+ },
+ "addCustomLabel": "添加自定义标签…"
},
"cameraConfig": {
"title": "摄像头配置",
@@ -1631,7 +1712,9 @@
"review_thumbnails": "核查缩略图",
"previews": "预览",
"exports": "导出",
- "recordings": "录像"
+ "recordings": "录像",
+ "verbose": "详细模式",
+ "verboseDesc": "将所有孤立文件的完整清单写入硬盘以供核查。"
},
"regionGrid": {
"title": "区域网格",
@@ -1668,5 +1751,140 @@
"unsavedChanges": "您有未保存的更改",
"confirmReset": "确认重置",
"resetToDefaultDescription": "这将把此部分的所有设置重置为默认值。此操作无法撤销。",
- "resetToGlobalDescription": "这将把此部分的设置重置为全局默认值。此操作无法撤销。"
+ "resetToGlobalDescription": "这将把此部分的设置重置为全局默认值。此操作无法撤销。",
+ "button": {
+ "overriddenGlobal": "已覆盖全局通用配置",
+ "overriddenGlobalTooltip": "当前摄像头配置,将优先覆盖全局通用设置",
+ "overriddenBaseConfigTooltip": "当前 {{profile}} 配置模板会覆盖本节所有设置",
+ "overriddenBaseConfig": "已覆盖默认配置"
+ },
+ "profiles": {
+ "title": "配置模板",
+ "activeProfile": "激活配置模板",
+ "noActiveProfile": "无激活的配置模板",
+ "active": "激活",
+ "activated": "配置模板 {{profile}} 已激活",
+ "activateFailed": "配置模板设置失败",
+ "deactivated": "配置模板已停用",
+ "noProfiles": "未定义任何配置模板。",
+ "noOverrides": "无覆盖项",
+ "cameraCount_other": "{{count}} 个摄像头",
+ "baseConfig": "基础配置",
+ "addProfile": "添加配置模板",
+ "newProfile": "新配置模板",
+ "profileNamePlaceholder": "例如:布防、外出、夜间模式",
+ "friendlyNameLabel": "配置模板名称",
+ "profileIdLabel": "配置模板 ID",
+ "profileIdDescription": "用于配置和自动化的内部标识符",
+ "nameInvalid": "仅允许使用小写字母、数字和下划线",
+ "nameDuplicate": "已存在同名配置模板",
+ "columnCamera": "摄像头",
+ "columnOverrides": "配置文件覆盖",
+ "error": {
+ "mustBeAtLeastTwoCharacters": "至少需要 2 个字符",
+ "mustNotContainPeriod": "不得包含英文句号(\".\")",
+ "alreadyExists": "已存在使用此 ID 的配置文件"
+ },
+ "renameProfile": "重命名配置文件",
+ "renameSuccess": "已将配置文件重命名为 “{{profile}}”",
+ "deleteProfile": "删除配置文件",
+ "deleteProfileConfirm": "确定要为所有摄像头删除配置文件“{{profile}}”吗?该步骤无法撤销。",
+ "deleteSuccess": "配置文件“{{profile}}”已删除",
+ "createSuccess": "配置文件“{{profile}}”已创建",
+ "removeOverride": "移除配置文件覆盖",
+ "deleteSection": "删除节点覆盖",
+ "deleteSectionConfirm": "是否要移除摄像机 {{camera}} 上针对配置文件 {{profile}} 的 {{section}} 覆盖设置?",
+ "deleteSectionSuccess": "已移除 {{profile}} 的 {{section}} 覆盖设置",
+ "enableSwitch": "开启配置文件",
+ "enabledDescription": "配置文件功能已启用。请在下方创建新的配置文件,进入摄像头配置页面进行修改并保存,修改即可生效。",
+ "disabledDescription": "配置文件功能可以让你创建一组带名称的摄像头自定义参数(比如布防、离家、夜间模式),并随时切换启用。"
+ },
+ "timestampPosition": {
+ "tl": "左上角",
+ "tr": "右上角",
+ "bl": "左下角",
+ "br": "右下角"
+ },
+ "go2rtcStreams": {
+ "title": "go2rtc 视频流",
+ "description": "管理用于摄像头转流的 go2rtc 流配置。每个视频流包含一个名称以及一个或多个源地址 URL。",
+ "addStream": "添加视频流",
+ "addStreamDesc": "为新的视频流输入一个名称,该名称将用于在摄像头配置中引用该视频流。",
+ "addUrl": "添加 URL 地址",
+ "streamName": "视频流名称",
+ "streamNamePlaceholder": "例如:front_door,此处只能使用英文",
+ "streamUrlPlaceholder": "例如:rtsp://user:pass@192.168.1.100/stream",
+ "deleteStream": "删除视频流",
+ "deleteStreamConfirm": "确定要删除视频流 “{{streamName}}” 吗?引用该视频流的摄像头可能会停止工作。",
+ "noStreams": "未配置任何 go2rtc 流。请添加一个视频流以开始使用。",
+ "validation": {
+ "nameRequired": "视频流名称为必填",
+ "nameDuplicate": "已存在同名的视频流",
+ "nameInvalid": "视频流名称只能使用字母、数字、下划线和连字符",
+ "urlRequired": "至少需要填写一个 URL 地址"
+ },
+ "renameStream": "重命名视频流",
+ "renameStreamDesc": "为此视频流输入新名称。重命名视频流可能会导致通过名称引用它的摄像头或其他流无法正常工作。",
+ "newStreamName": "新视频流名称",
+ "ffmpeg": {
+ "useFfmpegModule": "使用兼容模式(ffmpeg)",
+ "video": "视频",
+ "audio": "音频",
+ "hardware": "硬件加速",
+ "videoCopy": "直接复制",
+ "videoH264": "转码为 H.264",
+ "videoH265": "转码为 H.265",
+ "videoExclude": "排除",
+ "audioCopy": "直接复制",
+ "audioAac": "转码为 AAC",
+ "audioOpus": "转码为 Opus",
+ "audioPcmu": "转码为 PCM μ-law",
+ "audioPcma": "转码为 PCM A-law",
+ "audioPcm": "转码为 PCM",
+ "audioMp3": "转码为 MP3",
+ "audioExclude": "排除",
+ "hardwareNone": "无硬件加速",
+ "hardwareAuto": "自动选择硬件加速"
+ }
+ },
+ "onvif": {
+ "profileAuto": "自动",
+ "profileLoading": "正在加载配置文件…"
+ },
+ "configMessages": {
+ "review": {
+ "recordDisabled": "录制已禁用,不会生成核查记录项。",
+ "detectDisabled": "目标检测已禁用。核查记录需要依靠检测到的目标来对警报和检测事件进行分类。",
+ "allNonAlertDetections": "所有非警报类活动都将被记录为检测事件。"
+ },
+ "lpr": {
+ "vehicleNotTracked": "车牌识别需要先开启对 “汽车” 或 “摩托车” 的目标追踪。",
+ "globalDisabled": "车牌识别未在全局开启。请在全局设置中开启该功能,才能在摄像头下单独配置车牌识别是否开启。"
+ },
+ "audio": {
+ "noAudioRole": "暂无任何流已开启音频(audio)功能(role)。必须在视频流上启用音频功能,音频检测才能正常工作。"
+ },
+ "audioTranscription": {
+ "audioDetectionDisabled": "该摄像头未开启音频检测功能。音频转录需要先开启音频检测。"
+ },
+ "detect": {
+ "fpsGreaterThanFive": "不建议设置检测帧率高于 5。"
+ },
+ "faceRecognition": {
+ "globalDisabled": "人脸识别未在全局开启。请在全局设置中开启该功能,才能在摄像头下单独配置人脸识别是否开启。",
+ "personNotTracked": "人脸识别需要检测到 “人”(person) 后才能工作。请确保 “person” 已添加到目标追踪列表中。"
+ },
+ "record": {
+ "noRecordRole": "暂无任何视频流已配置录制功能,录制功能将无法正常工作。"
+ },
+ "birdseye": {
+ "objectsModeDetectDisabled": "鸟瞰图已设置为 “目标” 模式,但此摄像头未开启目标检测。该摄像头将不会显示在鸟瞰画面中。"
+ },
+ "snapshots": {
+ "detectDisabled": "目标检测已禁用。快照是根据追踪到的目标生成的,因此将不会创建快照。"
+ },
+ "detectors": {
+ "mixedTypes": "所有检测器必须为同一类型。若要更换为其他类型,请先移除现有的检测器。"
+ }
+ }
}
diff --git a/web/public/locales/zh-CN/views/system.json b/web/public/locales/zh-CN/views/system.json
index 805560be1..6e406674a 100644
--- a/web/public/locales/zh-CN/views/system.json
+++ b/web/public/locales/zh-CN/views/system.json
@@ -59,7 +59,9 @@
"count": "{{count}} 条消息",
"expanded": {
"payload": "Payload"
- }
+ },
+ "count_one": "{{count}} 条消息",
+ "count_other": "{{count}} 条消息"
}
},
"general": {
@@ -110,7 +112,8 @@
"description": "这是 Intel 的 GPU 状态报告工具(intel_gpu_top)的已知问题:该工具会失效并反复返回 GPU 使用率为 0%,即使在硬件加速和目标检测已在 (i)GPU 上正常运行的情况下也是如此,这并不是 Frigate 的 bug。你可以通过重启主机来临时修复该问题,并确认 GPU 正常工作。该问题并不会影响性能。"
},
"gpuTemperature": "GPU 温度",
- "npuTemperature": "NPU 温度"
+ "npuTemperature": "NPU 温度",
+ "gpuCompute": "GPU 计算 / 编码"
},
"otherProcesses": {
"title": "其他进程",
@@ -189,7 +192,8 @@
"cameraDetectionsPerSecond": "{{camName}} 每秒检测数",
"cameraSkippedDetectionsPerSecond": "{{camName}} 每秒跳过检测数",
"cameraFfmpeg": "{{camName}} FFmpeg",
- "cameraFramesPerSecond": "{{camName}} 每秒帧数"
+ "cameraFramesPerSecond": "{{camName}} 每秒帧数",
+ "cameraGpu": "{{camName}} GPU"
},
"toast": {
"success": {
diff --git a/web/public/locales/zh-Hant/config/cameras.json b/web/public/locales/zh-Hant/config/cameras.json
index 0967ef424..8602044aa 100644
--- a/web/public/locales/zh-Hant/config/cameras.json
+++ b/web/public/locales/zh-Hant/config/cameras.json
@@ -1 +1,35 @@
-{}
+{
+ "name": {
+ "description": "必須填寫攝影機名稱",
+ "label": "攝影機名稱"
+ },
+ "label": "攝影機設定",
+ "friendly_name": {
+ "label": "顯示名稱",
+ "description": "攝影機在 Frigate 介面顯示的名稱"
+ },
+ "enabled": {
+ "label": "已啟用",
+ "description": "已啟用"
+ },
+ "audio": {
+ "label": "音訊事件",
+ "description": "此攝影機的音訊事件偵測設定。",
+ "enabled": {
+ "label": "啟用音訊偵測",
+ "description": "啟用或停用此攝影機的音訊事件偵測。"
+ },
+ "max_not_heard": {
+ "label": "結束逾時",
+ "description": "在未偵測到已設定音訊類型的情況下,經過多少秒後視為音訊事件結束。"
+ },
+ "min_volume": {
+ "label": "最小音量",
+ "description": "執行音訊偵測所需的最小 RMS 音量門檻;數值越低,敏感度越高(例如:200 高、500 中、1000 低)。"
+ },
+ "listen": {
+ "label": "監聽的音訊類型",
+ "description": "要偵測的音訊事件類型清單(例如:狗吠、火警、尖叫、說話、大叫)。"
+ }
+ }
+}
diff --git a/web/public/locales/zh-Hant/config/global.json b/web/public/locales/zh-Hant/config/global.json
index 0967ef424..0f254ab83 100644
--- a/web/public/locales/zh-Hant/config/global.json
+++ b/web/public/locales/zh-Hant/config/global.json
@@ -1 +1,20 @@
-{}
+{
+ "audio": {
+ "label": "音訊事件",
+ "enabled": {
+ "label": "啟用音訊偵測"
+ },
+ "max_not_heard": {
+ "label": "結束逾時",
+ "description": "在未偵測到已設定音訊類型的情況下,經過多少秒後視為音訊事件結束。"
+ },
+ "min_volume": {
+ "label": "最小音量",
+ "description": "執行音訊偵測所需的最小 RMS 音量門檻;數值越低,敏感度越高(例如:200 高、500 中、1000 低)。"
+ },
+ "listen": {
+ "label": "監聽的音訊類型",
+ "description": "要偵測的音訊事件類型清單(例如:狗吠、火警、尖叫、說話、大叫)。"
+ }
+ }
+}
diff --git a/web/public/locales/zh-Hant/views/classificationModel.json b/web/public/locales/zh-Hant/views/classificationModel.json
index 06aabdf5c..796495f69 100644
--- a/web/public/locales/zh-Hant/views/classificationModel.json
+++ b/web/public/locales/zh-Hant/views/classificationModel.json
@@ -1,9 +1,9 @@
{
"toast": {
"success": {
- "deletedImage": "已刪除的圖片",
+ "deletedImage_other": "已刪除的圖片",
"deletedModel_other": "已成功刪除 {{count}} 個模型",
- "deletedCategory": "已刪除分類",
+ "deletedCategory_other": "已刪除分類",
"categorizedImage": "成功分類圖片",
"trainedModel": "訓練模型成功。",
"trainingModel": "已開始模型訓練。",
diff --git a/web/src/components/Statusbar.tsx b/web/src/components/Statusbar.tsx
index d1035dd60..18a0d9ee1 100644
--- a/web/src/components/Statusbar.tsx
+++ b/web/src/components/Statusbar.tsx
@@ -116,8 +116,7 @@ export default function Statusbar() {
case "amd-vaapi":
gpuTitle = "AMD GPU";
break;
- case "intel-vaapi":
- case "intel-qsv":
+ case "intel-gpu":
gpuTitle = "Intel GPU";
break;
case "rockchip":
diff --git a/web/src/components/audio/AudioLevelGraph.tsx b/web/src/components/audio/AudioLevelGraph.tsx
index 4f0e75722..74c3ce0e6 100644
--- a/web/src/components/audio/AudioLevelGraph.tsx
+++ b/web/src/components/audio/AudioLevelGraph.tsx
@@ -8,6 +8,7 @@ import { formatUnixTimestampToDateTime } from "@/utils/dateUtil";
import useSWR from "swr";
import { FrigateConfig } from "@/types/frigateConfig";
import { useTranslation } from "react-i18next";
+import { useTimeFormat } from "@/hooks/use-date-utils";
const GRAPH_COLORS = ["#3b82f6", "#ef4444"]; // RMS, dBFS
@@ -72,7 +73,7 @@ export function AudioLevelGraph({ cameraName }: AudioLevelGraphProps) {
return [last.rms, last.dBFS];
}, [audioData]);
- const timeFormat = config?.ui.time_format === "24hour" ? "24hour" : "12hour";
+ const timeFormat = useTimeFormat(config);
const formatString = useMemo(
() =>
t(`time.formattedTimestampHourMinuteSecond.${timeFormat}`, {
diff --git a/web/src/components/button/DownloadVideoButton.tsx b/web/src/components/button/DownloadVideoButton.tsx
index 607458af4..93a8e1d8a 100644
--- a/web/src/components/button/DownloadVideoButton.tsx
+++ b/web/src/components/button/DownloadVideoButton.tsx
@@ -7,6 +7,7 @@ import { useTranslation } from "react-i18next";
import useSWR from "swr";
import { FrigateConfig } from "@/types/frigateConfig";
import { useDateLocale } from "@/hooks/use-date-locale";
+import { useTimeFormat } from "@/hooks/use-date-utils";
import { useMemo } from "react";
type DownloadVideoButtonProps = {
@@ -26,7 +27,7 @@ export function DownloadVideoButton({
const { data: config } = useSWR
+ {JSON.stringify(tc.arguments, null, 2)}
+
+
+ {tc.response}
+
+ {error}
} + {schema.description && ( +{schema.description}
+ )} +