Estas segur que vols continuar?"
+ "desc": "Eliminant aquest objecte seguit borrarà l'snapshot, qualsevol embedding gravat, i qualsevol detall de seguiment. Les imatges gravades d'aquest objecte seguit en l'historial NO seràn eliminades.
Estas segur que vols continuar?"
}
},
"fetchingTrackedObjectsFailed": "Error al obtenir objectes rastrejats: {{errorMessage}}",
"trackedObjectsCount_one": "{{count}} objecte rastrejat ",
"trackedObjectsCount_many": "{{count}} objectes rastrejats ",
- "trackedObjectsCount_other": "{{count}} objectes rastrejats "
+ "trackedObjectsCount_other": "{{count}} objectes rastrejats ",
+ "aiAnalysis": {
+ "title": "Anàlisi d'IA"
+ },
+ "concerns": {
+ "label": "Preocupacions"
+ },
+ "trackingDetails": {
+ "title": "Detalls de seguiment",
+ "noImageFound": "No s'ha trobat cap imatge amb aquesta hora.",
+ "createObjectMask": "Crear màscara d'objecte",
+ "adjustAnnotationSettings": "Ajustar configuració d'anotacions",
+ "scrollViewTips": "Feu clic per veure els moments significatius del cicle de vida d'aquest objecte.",
+ "autoTrackingTips": "Limitar les posicións de la caixa serà inacurat per càmeras de seguiment automàtic.",
+ "count": "{{first}} de {{second}}",
+ "trackedPoint": "Punt Seguit",
+ "lifecycleItemDesc": {
+ "visible": "{{label}} detectat",
+ "entered_zone": "{{label}} ha entrat a {{zones}}",
+ "active": "{{label}} ha esdevingut actiu",
+ "stationary": "{{label}} ha esdevingut estacionari",
+ "attribute": {
+ "faceOrLicense_plate": "{{attribute}} detectat per {{label}}",
+ "other": "{{label}} reconegut com a {{attribute}}"
+ },
+ "gone": "{{label}} esquerra",
+ "heard": "{{label}} sentit",
+ "external": "{{label}} detectat",
+ "header": {
+ "zones": "Zones",
+ "ratio": "Ràtio",
+ "area": "Àrea",
+ "score": "Puntuació"
+ }
+ },
+ "annotationSettings": {
+ "title": "Configuració d'anotacions",
+ "showAllZones": {
+ "title": "Mostra totes les Zones",
+ "desc": "Mostra sempre les zones amb marcs on els objectes hagin entrat a la zona."
+ },
+ "offset": {
+ "label": "Òfset d'Anotació",
+ "desc": "Aquestes dades provenen del flux de detecció de la càmera, però se superposen a les imatges del flux de gravació. És poc probable que els dos fluxos estiguin perfectament sincronitzats. Com a resultat, el quadre delimitador i les imatges no s'alinearan perfectament. Tanmateix, es pot utilitzar el camp annotation_offset per ajustar-ho.",
+ "millisecondsToOffset": "Millisegons per l'òfset de detecció d'anotacions per. Per defecte: 0",
+ "tips": "Reduïu el valor si la reproducció del vídeo es troba per davant dels quadres i els punts de ruta, i augmenteu-lo si es troba per darrere. Aquest valor pot ser negatiu.",
+ "toast": {
+ "success": "El desplaçament de l'anotació per {{camera}} s'ha desat al fitxer de configuració."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Diapositiva anterior",
+ "next": "Dispositiva posterior"
+ }
+ }
}
diff --git a/web/public/locales/ca/views/exports.json b/web/public/locales/ca/views/exports.json
index dfe5de9636..dec2726ff0 100644
--- a/web/public/locales/ca/views/exports.json
+++ b/web/public/locales/ca/views/exports.json
@@ -13,5 +13,11 @@
"error": {
"renameExportFailed": "Error al canviar el nom de l’exportació: {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "shareExport": "Comparteix l'exportació",
+ "downloadVideo": "Baixa el vídeo",
+ "editName": "Edita el nom",
+ "deleteExport": "Suprimeix l'exportació"
}
}
diff --git a/web/public/locales/ca/views/faceLibrary.json b/web/public/locales/ca/views/faceLibrary.json
index 356691315e..d2a5fcf34d 100644
--- a/web/public/locales/ca/views/faceLibrary.json
+++ b/web/public/locales/ca/views/faceLibrary.json
@@ -12,13 +12,14 @@
"collections": "Col·leccions",
"train": {
"empty": "No hi ha intents recents de reconeixement de rostres",
- "title": "Entrenar",
- "aria": "Seleccionar entrenament"
+ "title": "Reconeixements recents",
+ "aria": "Selecciona els reconeixements recents",
+ "titleShort": "Recent"
},
"description": {
- "addFace": "Guia per a agregar una nova colecció a la biblioteca de rostres.",
+ "addFace": "Afegiu una col·lecció nova a la biblioteca de cares pujant la vostra primera imatge.",
"placeholder": "Introduïu un nom per a aquesta col·lecció",
- "invalidName": "Nom no vàlid. Els noms només poden incloure lletres, números, espais, apòstrofs, guions baixos i guionets."
+ "invalidName": "Nom no vàlid. Els noms només poden incloure lletres, números, espais, apòstrofs, guions baixos i guions."
},
"documentTitle": "Biblioteca de rostres - Frigate",
"uploadFaceImage": {
@@ -54,7 +55,7 @@
"selectImage": "Siusplau, selecciona un fixer d'imatge."
},
"maxSize": "Mida màxima: {{size}}MB",
- "dropInstructions": "Arrastra una imatge aquí, o fes clic per a selccionar-ne una"
+ "dropInstructions": "Arrossegueu i deixeu anar o enganxeu una imatge aquí, o feu clic per seleccionar"
},
"button": {
"uploadImage": "Pujar imatge",
@@ -67,7 +68,7 @@
"toast": {
"success": {
"trainedFace": "Rostre entrenat amb èxit.",
- "updatedFaceScore": "Puntació de rostre actualitzada amb èxit.",
+ "updatedFaceScore": "S'ha actualitzat correctament la puntuació de la cara a {{name}} ({{score}}).",
"uploadedImage": "Imatge pujada amb èxit.",
"addFaceLibrary": "{{name}} s'ha afegit amb èxit a la biblioteca de rostres!",
"deletedName_one": "{{count}} rostre s'ha suprimit amb èxit.",
diff --git a/web/public/locales/ca/views/live.json b/web/public/locales/ca/views/live.json
index dd091b7de9..d9245fe7ca 100644
--- a/web/public/locales/ca/views/live.json
+++ b/web/public/locales/ca/views/live.json
@@ -32,7 +32,15 @@
"label": "Fer clic a la imatge per centrar la càmera PTZ"
}
},
- "presets": "Predefinits de la càmera PTZ"
+ "presets": "Predefinits de la càmera PTZ",
+ "focus": {
+ "in": {
+ "label": "Enfoca la càmera PTZ aprop"
+ },
+ "out": {
+ "label": "Enfoca la càmera PTZ lluny"
+ }
+ }
},
"documentTitle": "Directe - Frigate",
"documentTitle.withCamera": "{{camera}} - Directe - Frigate",
@@ -78,8 +86,8 @@
"disable": "Amaga estadístiques de la transmissió"
},
"manualRecording": {
- "title": "Gravació sota demanda",
- "tips": "Iniciar un event manual basat en els paràmetres de retenció de gravació per aquesta càmera.",
+ "title": "Sota demanda",
+ "tips": "Baixeu una instantània o inicieu un esdeveniment manual basat en la configuració de retenció d'enregistrament d'aquesta càmera.",
"playInBackground": {
"label": "Reproduir en segon pla",
"desc": "Habilita aquesta opció per a continuar la transmissió quan el reproductor està amagat."
@@ -122,6 +130,9 @@
"playInBackground": {
"label": "Reproduir en segon pla",
"tips": "Habilita aquesta opció per a contiuar la transmissió tot i que el reproductor estigui ocult."
+ },
+ "debug": {
+ "picker": "Selecció de stream no disponible en mode debug. La vista debug sempre fa servir el stream assignat pel rol de detecció."
}
},
"streamingSettings": "Paràmetres de transmissió",
@@ -135,7 +146,8 @@
"snapshots": "Instantànies",
"autotracking": "Seguiment automàtic",
"objectDetection": "Detecció d'objectes",
- "audioDetection": "Detecció d'àudio"
+ "audioDetection": "Detecció d'àudio",
+ "transcription": "Transcripció d'audio"
},
"history": {
"label": "Mostrar gravacions històriques"
@@ -154,5 +166,24 @@
"label": "Editar grup de càmeres"
},
"exitEdit": "Sortir de l'edició"
+ },
+ "transcription": {
+ "enable": "Habilita la transcripció d'àudio en temps real",
+ "disable": "Deshabilita la transcripció d'àudio en temps real"
+ },
+ "snapshot": {
+ "takeSnapshot": "Descarregar una instantània",
+ "noVideoSource": "No hi ha cap font de video per fer una instantània.",
+ "captureFailed": "Error capturant una instantània.",
+ "downloadStarted": "Inici de baixada d'instantània."
+ },
+ "noCameras": {
+ "title": "No s'ha configurat cap càmera",
+ "description": "Comenceu connectant una càmera a Frigate.",
+ "buttonText": "Afegeix una càmera",
+ "restricted": {
+ "title": "No hi ha càmeres disponibles",
+ "description": "No teniu permís per veure cap càmera en aquest grup."
+ }
}
}
diff --git a/web/public/locales/ca/views/search.json b/web/public/locales/ca/views/search.json
index 3f5940348f..71f333180d 100644
--- a/web/public/locales/ca/views/search.json
+++ b/web/public/locales/ca/views/search.json
@@ -15,7 +15,8 @@
"max_speed": "Velocitat màxima",
"recognized_license_plate": "Matrícula reconeguda",
"has_clip": "Té Clip",
- "has_snapshot": "Té instantània"
+ "has_snapshot": "Té instantània",
+ "attributes": "Atributs"
},
"searchType": {
"thumbnail": "Miniatura",
@@ -55,12 +56,12 @@
"searchFor": "Buscar {{inputValue}}",
"button": {
"clear": "Netejar cerca",
- "save": "Desar la cerca",
- "delete": "Suprimeix la recerca desada",
- "filterInformation": "Informació de filtre",
+ "save": "Desa la cerca",
+ "delete": "Elimina la recerca desada",
+ "filterInformation": "Informació del filtre",
"filterActive": "Filtres actius"
},
- "trackedObjectId": "ID d'objecte rastrejat",
+ "trackedObjectId": "ID de l'objecte rastrejat",
"placeholder": {
"search": "Cercar…"
},
diff --git a/web/public/locales/ca/views/settings.json b/web/public/locales/ca/views/settings.json
index a94e86bd1f..88b75bca60 100644
--- a/web/public/locales/ca/views/settings.json
+++ b/web/public/locales/ca/views/settings.json
@@ -7,9 +7,11 @@
"authentication": "Configuració d'autenticació - Frigate",
"camera": "Paràmetres de càmera - Frigate",
"masksAndZones": "Editor de màscares i zones - Frigate",
- "general": "Paràmetres Generals - Frigate",
+ "general": "Configuració de la interfície d'usuari - Fragata",
"frigatePlus": "Paràmetres de Frigate+ - Frigate",
- "notifications": "Paràmetres de notificació - Frigate"
+ "notifications": "Paràmetres de notificació - Frigate",
+ "cameraManagement": "Gestionar càmeres - Frigate",
+ "cameraReview": "Configuració Revisió de Càmeres - Frigate"
},
"menu": {
"ui": "Interfície d'usuari",
@@ -20,7 +22,11 @@
"notifications": "Notificacions",
"debug": "Depuració",
"frigateplus": "Frigate+",
- "enrichments": "Enriquiments"
+ "enrichments": "Enriquiments",
+ "triggers": "Disparadors",
+ "cameraManagement": "Gestió",
+ "cameraReview": "Revisió",
+ "roles": "Rols"
},
"dialog": {
"unsavedChanges": {
@@ -33,7 +39,7 @@
"noCamera": "Cap càmera"
},
"general": {
- "title": "Paràmetres generals",
+ "title": "Paràmetres de la interfície d'usuari",
"liveDashboard": {
"title": "Panell en directe",
"automaticLiveView": {
@@ -43,6 +49,14 @@
"playAlertVideos": {
"label": "Reproduir vídeos d’alerta",
"desc": "Per defecte, les alertes recents al tauler en directe es reprodueixen com a vídeos petits en bucle. Desactiva aquesta opció per mostrar només una imatge estàtica de les alertes recents en aquest dispositiu/navegador."
+ },
+ "displayCameraNames": {
+ "label": "Mostra sempre els noms de la càmera",
+ "desc": "Mostra sempre els noms de les càmeres en un xip al tauler de visualització en directe multicàmera."
+ },
+ "liveFallbackTimeout": {
+ "label": "Temps d'espera per a la reserva del jugador en directe",
+ "desc": "Quan el flux en viu d'alta qualitat d'una càmera no està disponible, torneu al mode d'amplada de banda baixa després d'aquests molts segons. Per defecte: 3."
}
},
"storedLayouts": {
@@ -108,7 +122,8 @@
"mustBeAtLeastTwoCharacters": "El nom de la zona ha de contenir com a mínim 2 caràcters.",
"mustNotContainPeriod": "El nom de la zona no pot contenir punts.",
"alreadyExists": "Ja existeix una zona amb aquest nom per a aquesta càmera.",
- "mustNotBeSameWithCamera": "El nom de la zona no pot ser el mateix que el nom de la càmera."
+ "mustNotBeSameWithCamera": "El nom de la zona no pot ser el mateix que el nom de la càmera.",
+ "mustHaveAtLeastOneLetter": "El nom de la zona ha de tenir almenys una lletra."
}
},
"inertia": {
@@ -157,7 +172,7 @@
"name": {
"inputPlaceHolder": "Introduïu un nom…",
"title": "Nom",
- "tips": "El nom ha de tenir almenys 2 caràcters i no pot coincidir amb el nom d'una càmera ni amb el d'una altra zona."
+ "tips": "El nom ha de tenir almenys 2 caràcters, ha de tenir almenys una lletra, i no ha de ser el nom d'una càmera o una altra zona en aquesta càmera."
},
"label": "Zones",
"desc": {
@@ -184,7 +199,7 @@
},
"clickDrawPolygon": "Fes click per a dibuixar un polígon a la imatge.",
"toast": {
- "success": "La zona {{zoneName}} ha estat desada. Reinicia Frigate per a aplicar els canvis."
+ "success": "S'ha desat la zona ({{zoneName}})."
}
},
"filter": {
@@ -214,8 +229,8 @@
"clickDrawPolygon": "Fes click per a dibuixar un polígon a la imatge.",
"toast": {
"success": {
- "title": "{{polygonName}} s'ha desat. Reinicia Frigate per a aplicar els canvis.",
- "noName": "La màscara de moviment ha estat desada. Reinicia Frigate per aplicar els canvis."
+ "title": "{{polygonName}} s'ha desat.",
+ "noName": "La màscara de moviment ha estat desada."
}
}
},
@@ -239,8 +254,8 @@
"clickDrawPolygon": "Fes click per a dibuixar un polígon a la imatge.",
"toast": {
"success": {
- "title": "{{polygonName}} s'ha desat. Reinicia Frigate per a aplicar els canvis.",
- "noName": "La màscara d'objectes ha estat desada. Reincia Frigate per a aplicar els canvis."
+ "title": "{{polygonName}} s'ha desat.",
+ "noName": "La màscara d'objectes ha estat desada."
}
},
"context": "Les màscares de filtratge d’objectes s’utilitzen per descartar falsos positius d’un tipus d’objecte concret segons la seva ubicació."
@@ -344,6 +359,43 @@
"detections": "Deteccions ",
"title": "Revisar",
"desc": "Habilita o deshabilita temporalment les alertes i deteccions per a aquesta càmera fins que es reiniciï Frigate. Quan estigui desactivat, no es generaran nous elements de revisió. "
+ },
+ "object_descriptions": {
+ "title": "Descripció d'objectes per IA generativa",
+ "desc": "Activar/desactivar temporalment la IA generativa de descripcions per aquesta càmera. Quan està desactivat, les descripcions d'IA generativa no seran requerides per als objectes seguits per aquesta càmera."
+ },
+ "review_descriptions": {
+ "title": "Revisar las descripcions d'IA generativa",
+ "desc": "Activar/desactivals temporalment les descripcions d'IA generativa per aquesta càmera. Quan estan desactivades, les descripcions d'IA generativa no serán requerides per revisar els items en aquesta càmera."
+ },
+ "addCamera": "Afegir Nova Càmera",
+ "editCamera": "Editar Càmera:",
+ "selectCamera": "Seleccionar Càmera",
+ "backToSettings": "Tornar a la Configuració de Càmera",
+ "cameraConfig": {
+ "add": "Afegir Càmera",
+ "edit": "Editar Càmera",
+ "description": "Configurar la càmera incloent les entrades y rols.",
+ "name": "Nom de Càmera",
+ "nameRequired": "El nom de càmera es necesari",
+ "nameLength": "El nom de la càmera ha de ser com a mínim de 24 caràcters.",
+ "namePlaceholder": "e.x., porta_entrada",
+ "enabled": "Activat",
+ "ffmpeg": {
+ "inputs": "Entrades",
+ "path": "Direcció d'entrada",
+ "pathRequired": "Direcció d'entrada necesaria",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Rols",
+ "rolesRequired": "Com a mínin un rol es necesari",
+ "rolesUnique": "Cada rol (audio, detecció, gravació) pot ser assiganda a una entrada",
+ "addInput": "Afegir una entrada",
+ "removeInput": "Esborrar una entrada",
+ "inputsRequired": "Com a mínim una entrada es necesaria"
+ },
+ "toast": {
+ "success": "La càmera {{cameraName}} s'ha guardat correctament"
+ }
}
},
"motionDetectionTuner": {
@@ -414,12 +466,25 @@
"tips": "
Caixes de moviment
Es sobreposaran requadres vermells a les àrees del fotograma on actualment s’estigui detectant moviment.
"
},
"detectorDesc": "Frigate fa servir els teus detectors ({{detectors}}) per a detectar objectes a les imatges de la teva càmera.",
- "desc": "La vista de depuració mostra en temps real els objectes rastrejats i les seves estadístiques. La llista d’objectes mostra un resum amb retard temporal dels objectes detectats."
+ "desc": "La vista de depuració mostra en temps real els objectes rastrejats i les seves estadístiques. La llista d’objectes mostra un resum amb retard temporal dels objectes detectats.",
+ "openCameraWebUI": "Obrir la interficie d'usuari de {{camera}}",
+ "audio": {
+ "title": "Audio",
+ "noAudioDetections": "No hi ha deteccions d'audio",
+ "score": "puntuació",
+ "currentRMS": "RMS Actual",
+ "currentdbFS": "dbFS Actual"
+ },
+ "paths": {
+ "title": "Rutes",
+ "desc": "Mostrar els punts significatius de la ruta dels objectes seguits",
+ "tips": "
Rutes
Les línies i cercles indicarán els punts significatius dels objectes seguits durant el seu cicle de vida.
"
+ }
},
"users": {
"table": {
- "username": "Nom d'usuari",
- "password": "Contrasenya",
+ "username": "Usuari",
+ "password": "Restableix la contrasenya",
"deleteUser": "Suprimir usuari",
"noUsers": "No s'han trobat usuaris.",
"changeRole": "Canviar la funció d’usuari",
@@ -462,7 +527,16 @@
"notMatch": "Les contrasenyes no coincideixen",
"match": "Les contrasenyes coincideixen",
"placeholder": "Introdueix la contrasenya",
- "title": "Contrasenya"
+ "title": "Contrasenya",
+ "show": "Mostra contrasenya",
+ "hide": "Amaga contrasenya",
+ "requirements": {
+ "title": "Requisits contrasenya:",
+ "length": "Com a mínim 8 carácters",
+ "uppercase": "Com a mínim una majúscula",
+ "digit": "Com a mínim un digit",
+ "special": "Com a mínim un carácter especial (!@#$%^&*(),.?\":{}|<>)"
+ }
},
"newPassword": {
"title": "Nova contrasenya",
@@ -472,14 +546,23 @@
}
},
"usernameIsRequired": "El nom d'usuari és obligatori",
- "passwordIsRequired": "La contrasenya és obligatoria"
+ "passwordIsRequired": "La contrasenya és obligatoria",
+ "currentPassword": {
+ "title": "Constrasenya actual",
+ "placeholder": "Entra l'actual contrasenya"
+ }
},
"passwordSetting": {
"updatePassword": "Contrasenya actualitzada per {{username}}",
"setPassword": "Estableix Contrasenya",
"cannotBeEmpty": "La contrasenya no pot ser buida",
"doNotMatch": "Les contrasenyes no coincideixen",
- "desc": "Crea un nova contrasenya segura per protegir aquest compte."
+ "desc": "Crea un nova contrasenya segura per protegir aquest compte.",
+ "currentPasswordRequired": "L'actual contrasenya es requerida",
+ "incorrectCurrentPassword": "L'actual contrasenya es incorrecte",
+ "passwordVerificationFailed": "Falla en la verificació de la contrasenya",
+ "multiDeviceWarning": "Serà necesari loguejarte en qualsevol altre dispositiu en que estiguis loguejat en {{refresh_time}}.",
+ "multiDeviceAdmin": "També pots forçar a tots els usuaris a tornar a autenticar-se immediatament rotant el teu secret JWT."
},
"deleteUser": {
"title": "Suprimir usuari",
@@ -492,7 +575,8 @@
"admin": "Administrador",
"adminDesc": "Accés complet a totes les funcionalitats.",
"intro": "Selecciona el rol adequat per a aquest usuari:",
- "viewerDesc": "Limitat només a panells en directe, revisió, exporació i exportació."
+ "viewerDesc": "Limitat només a panells en directe, revisió, exporació i exportació.",
+ "customDesc": "Rol personalitzat per accés específic a una cámera."
},
"title": "Canviar la funció d’usuari",
"desc": "Actualitzar permisos per a {{username}}",
@@ -511,7 +595,7 @@
"title": "Gestió d'usuaris",
"desc": "Gestioneu els comptes d'usuari d'aquesta instància de Frigate."
},
- "updatePassword": "Actualitzar contrasenya"
+ "updatePassword": "Restableix la contrasenya"
},
"frigatePlus": {
"snapshotConfig": {
@@ -612,11 +696,553 @@
"title": "Classificació d'ocells",
"desc": "La classificació d’ocells identifica ocells coneguts mitjançant un model TensorFlow quantitzat. Quan es reconeix un ocell conegut, el seu nom comú s’afegeix com a subetiqueta. Aquesta informació es mostra a la interfície d’usuari, als filtres i també a les notificacions."
},
- "title": "Parmàmetres complementaris",
+ "title": "Configuració dels enriquiments",
"toast": {
"error": "No s'han pogut guardar els canvis de configuració: {{errorMessage}}",
"success": "Els paràmetres complementaris s'han desat. Reinicia Frigate per aplicar els canvis."
},
"restart_required": "És necessari reiniciar (Han cambiat paràmetres complementaris)"
+ },
+ "triggers": {
+ "table": {
+ "actions": "Accions",
+ "noTriggers": "No hi ha disparadors configurats en aquesta càmera.",
+ "edit": "Editar",
+ "deleteTrigger": "Esborrar Disparador",
+ "lastTriggered": "Últim Disparo",
+ "name": "Nom",
+ "type": "Tipus",
+ "content": "Contingut",
+ "threshold": "Llindar"
+ },
+ "type": {
+ "thumbnail": "Miniatura",
+ "description": "Descripció"
+ },
+ "actions": {
+ "alert": "Marcar com Alerta",
+ "notification": "Enviar Notificació",
+ "sub_label": "Afegeix una subetiqueta",
+ "attribute": "Afegeix un atribut"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Crear Disparador",
+ "desc": "Crear disparador per una càmera {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Editar Disparador",
+ "desc": "Editar la configuració per al disparador de càmera {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Esborrar Disparador",
+ "desc": "Estas segur que vols esborrar el disparador {{triggerName}}? Aquesta acció no es pot desfer."
+ },
+ "form": {
+ "name": {
+ "title": "Nom",
+ "placeholder": "Anomena aquest activador",
+ "error": {
+ "minLength": "El camp ha de tenir almenys 2 caràcters.",
+ "invalidCharacters": "El camp només pot contenir lletres, números, guions baixos i guions.",
+ "alreadyExists": "El disparador amb aquest nom ja existeix per aquesta càmera."
+ },
+ "description": "Introduïu un nom o una descripció únics per a identificar aquest activador"
+ },
+ "enabled": {
+ "description": "Activar o desactivar aquest disparador"
+ },
+ "type": {
+ "title": "Tipus",
+ "placeholder": "Selecciona un tipus de disparador",
+ "description": "Activa quan es detecta una descripció similar d'un objecte rastrejat",
+ "thumbnail": "Activa quan es detecti una miniatura d'objecte rastrejada similar"
+ },
+ "content": {
+ "title": "Contingut",
+ "imagePlaceholder": "Selecciona una miniatura",
+ "textPlaceholder": "Entra el contingut de text",
+ "imageDesc": "Només es mostren les 100 miniatures més recents. Si no podeu trobar la miniatura desitjada, reviseu els objectes anteriors a Explora i configureu un activador des del menú.",
+ "textDesc": "Entra el text per disparar aquesta acció quan es detecti una descripció d'objecte a rastrejar similar.",
+ "error": {
+ "required": "Contigunt requerit."
+ }
+ },
+ "threshold": {
+ "title": "Llindar",
+ "error": {
+ "min": "El llindar ha de ser mínim 0",
+ "max": "El llindar ha de ser máxim 1"
+ },
+ "desc": "Estableix el llindar de similitud per a aquest activador. Un llindar més alt significa que es requereix una coincidència més propera per disparar el disparador."
+ },
+ "actions": {
+ "title": "Accions",
+ "desc": "Per defecte, Frigate dispara un missatge MQTT per a tots els activadors. Subetiquetes afegeix el nom de l'activador a l'etiqueta de l'objecte. Els atributs són metadades cercables emmagatzemades per separat a les metadades de l'objecte rastrejat.",
+ "error": {
+ "min": "S'ha de seleccionar una acció com a mínim."
+ }
+ },
+ "friendly_name": {
+ "title": "Nom amistós",
+ "placeholder": "Nom o descripció d'aquest disparador",
+ "description": "Un nom opcional amistós o text descriptiu per a aquest activador."
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "El disparador {{name}} s'ha creat existosament.",
+ "updateTrigger": "El disparador {{name}} s'ha actualitzat correctament.",
+ "deleteTrigger": "El disparador {{name}} s'ha borrat correctament."
+ },
+ "error": {
+ "createTriggerFailed": "Error al crear el disparador: {{errorMessage}}",
+ "updateTriggerFailed": "Error a l'actualitzar el disparador: {{errorMessage}}",
+ "deleteTriggerFailed": "Error a l'esborrar el disparador: {{errorMessage}}"
+ }
+ },
+ "documentTitle": "Disparadors",
+ "management": {
+ "title": "Activadors",
+ "desc": "Gestionar els disparadors de {{camera}}. Usa els tipus de miniatures per disparar miniatures similars a l'objecte a seguir seleccionat, i el tipus de descripció per disparar en cas de descripcions similars a l'especificada."
+ },
+ "addTrigger": "Afegir disaprador",
+ "semanticSearch": {
+ "desc": "La cerca semàntica ha d'estar activada per a utilitzar els activadors.",
+ "title": "La cerca semàntica està desactivada"
+ },
+ "wizard": {
+ "title": "Crea un activador",
+ "step1": {
+ "description": "Configura la configuració bàsica per al vostre activador."
+ },
+ "step2": {
+ "description": "Configura el contingut que activarà aquesta acció."
+ },
+ "step3": {
+ "description": "Configura el llindar i les accions d'aquest activador."
+ },
+ "steps": {
+ "nameAndType": "Nom i tipus",
+ "configureData": "Configura les dades",
+ "thresholdAndActions": "Llindar i accions"
+ }
+ }
+ },
+ "roles": {
+ "dialog": {
+ "form": {
+ "cameras": {
+ "required": "Almenys has de seleccionar una càmera.",
+ "title": "Càmeres",
+ "desc": "Selecciona les càmeres que tingui accés aquest rol. Com a mínim s'ha de seleccionar una càmera."
+ },
+ "role": {
+ "title": "Nom del Rol",
+ "placeholder": "Entra el nom del rol",
+ "desc": "Només lletres, números, els punts i subrallats están permesos.",
+ "roleIsRequired": "Nom del Rol requerit",
+ "roleOnlyInclude": "El nom de Rol només pot incloure lletres, nombres, . o _",
+ "roleExists": "Ja existeis un rol amb aquest nom."
+ }
+ },
+ "createRole": {
+ "title": "Crear nou Rol",
+ "desc": "Afegir nou rol y especificar permisos d'accés."
+ },
+ "editCameras": {
+ "title": "Editar Càmeres Rol",
+ "desc": "Actualitza l'acces a les càmeres per al rol {{role}}."
+ },
+ "deleteRole": {
+ "title": "Eliminar Rol",
+ "desc": "Aquesta acció no pot ser restablerta. S'esborrarà permenentment el rol y els usuaris asignats amb aquest rol de 'visor', que els dona accés a totes les càmeres.",
+ "warn": "Estas segur que vols eliminar {{role}}?",
+ "deleting": "Eliminant..."
+ }
+ },
+ "management": {
+ "title": "Gestió del Rols de Visors",
+ "desc": "Gestiona els rols visors personalitzats y els seus permisos d'accés per aquesta instancia de Frigate."
+ },
+ "addRole": "Afegir Rol",
+ "table": {
+ "role": "Rol",
+ "cameras": "Càmeres",
+ "actions": "Accions",
+ "noRoles": "No s'han trobat rols personalitzats.",
+ "editCameras": "Editar Càmeres",
+ "deleteRole": "Eliminar Rol"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Rol {{role}} creat exitosament",
+ "updateCameras": "Càmeres actualitzades per al rol {{role}}",
+ "deleteRole": "Rol {{role}} eliminat exitosament",
+ "userRolesUpdated_one": "{{count}} l'usuari assignat a aquest rol s'ha actualitzat a 'visor', que té accés a totes les càmeres.",
+ "userRolesUpdated_many": "{{count}} usuaris assignats a aquest rol s'han actualitzat a 'visor', que té accés a totes les càmeres.",
+ "userRolesUpdated_other": "{{count}} usuaris assignats a aquest rol s'han actualitzat a 'visor', que té accés a totes les càmeres."
+ },
+ "error": {
+ "createRoleFailed": "Error al crear el rol: {{errorMessage}}",
+ "updateCamerasFailed": "Error a l'actualitzar les càmeres: {{errorMessage}}",
+ "deleteRoleFailed": "Error a l'eliminar el rol: {{errorMessage}}",
+ "userUpdateFailed": "Error a l'actualitzar els ros d'usuari: {{errorMessage}}"
+ }
+ }
+ },
+ "cameraWizard": {
+ "title": "Afegir Càmera",
+ "description": "Seguiu els passos de sota per afegir una nova càmera a la instal·lació.",
+ "steps": {
+ "nameAndConnection": "Nom i connexió",
+ "streamConfiguration": "Configuració de stream",
+ "validationAndTesting": "Validació i proves",
+ "probeOrSnapshot": "Prova o instantània"
+ },
+ "step1": {
+ "cameraBrand": "Marca de la càmera",
+ "description": "Introduïu els detalls de la càmera i trieu provar la càmera o seleccionar manualment la marca.",
+ "cameraName": "Nom de la càmera",
+ "cameraNamePlaceholder": "p. ex., vista general de la porta davantera o de la barra posterior",
+ "host": "Adreça de l'amfitrió/IP",
+ "port": "Port",
+ "username": "Nom d'usuari",
+ "usernamePlaceholder": "Opcional",
+ "password": "Contrasenya",
+ "passwordPlaceholder": "Opcional",
+ "selectTransport": "Selecciona el protocol de transport",
+ "brandInformation": "Informació de marca",
+ "brandUrlFormat": "Per a càmeres amb el format d'URL RTSP com: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://usuari:contrasenya@host:port/ruta",
+ "testConnection": "Prova la connexió",
+ "testSuccess": "Prova de connexió correcta!",
+ "testFailed": "Ha fallat la prova de connexió. Si us plau, comproveu la vostra entrada i torneu-ho a provar.",
+ "streamDetails": "Detalls del flux",
+ "warnings": {
+ "noSnapshot": "No s'ha pogut obtenir una instantània del flux configurat."
+ },
+ "errors": {
+ "brandOrCustomUrlRequired": "Seleccioneu una marca de càmera amb host/IP o trieu 'Altres' amb un URL personalitzat",
+ "nameRequired": "Es requereix el nom de la càmera",
+ "nameLength": "El nom de la càmera ha de tenir 64 caràcters o menys",
+ "invalidCharacters": "El nom de la càmera conté caràcters no vàlids",
+ "nameExists": "El nom de la càmera ja existeix",
+ "brands": {
+ "reolink-rtsp": "No es recomana Reolink RST. Es recomana habilitar HTTP a la configuració de la càmera i reiniciar l'assistent de la càmera."
+ },
+ "customUrlRtspRequired": "Els URL personalitzats han de començar amb \"rtsp://\". Es requereix configuració manual per a fluxos de càmera no RTSP."
+ },
+ "selectBrand": "Seleccioneu la marca de la càmera per a la plantilla d'URL",
+ "customUrl": "URL de flux personalitzat",
+ "docs": {
+ "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
+ },
+ "testing": {
+ "probingMetadata": "S'estan provant les metadades de la càmera...",
+ "fetchingSnapshot": "S'està recuperant la instantània de la càmera..."
+ },
+ "connectionSettings": "Configuració de la connexió",
+ "detectionMethod": "Mètode de detecció de flux",
+ "onvifPort": "ONVIF Port",
+ "probeMode": "Càmera de prova",
+ "manualMode": "Selecció manual",
+ "detectionMethodDescription": "Proveu la càmera amb ONVIF (si és compatible) per trobar URL de flux de càmera, o seleccioneu manualment la marca de càmera per utilitzar URL predefinits. Per a introduir un URL RTSP personalitzat, trieu el mètode manual i seleccioneu \"Altres\".",
+ "onvifPortDescription": "Per a les càmeres que suporten ONVIF, això sol ser 80 o 8080.",
+ "useDigestAuth": "Utilitza l'autenticació digest",
+ "useDigestAuthDescription": "Usa l'autenticació de resum HTTP per a ONVIF. Algunes càmeres poden requerir un nom d'usuari/contrasenya ONVIF dedicat en lloc de l'usuari administrador estàndard."
+ },
+ "save": {
+ "failure": "SS'ha produït un error en desar {{cameraName}}.",
+ "success": "S'ha desat correctament la càmera nova {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Resolució",
+ "video": "Vídeo",
+ "audio": "Àudio",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Proporcioneu un URL de flux vàlid",
+ "testFailed": "Ha fallat la prova de flux: {{error}}"
+ },
+ "step2": {
+ "description": "Proveu la càmera per als fluxos disponibles o configureu la configuració manual basada en el mètode de detecció seleccionat.",
+ "streamsTitle": "Fluxos de la càmera",
+ "addStream": "Afegeix un flux",
+ "addAnotherStream": "Afegeix un altre flux",
+ "streamTitle": "Flux {{number}}",
+ "streamUrl": "URL del flux",
+ "url": "URL",
+ "resolution": "Resolució",
+ "selectResolution": "Selecciona la resolució",
+ "quality": "Qualitat",
+ "selectQuality": "Selecciona la qualitat",
+ "roleLabels": {
+ "detect": "Detecció d'objectes",
+ "record": "Enregistrament",
+ "audio": "Àudio"
+ },
+ "testStream": "Prova la connexió",
+ "testSuccess": "Prova de connexió correcta!",
+ "testFailed": "Ha fallat la prova de connexió. Si us plau, comproveu la vostra entrada i torneu-ho a provar.",
+ "testFailedTitle": "Ha fallat la prova",
+ "connected": "Connectat",
+ "notConnected": "No connectat",
+ "featuresTitle": "Característiques",
+ "go2rtc": "Redueix les connexions a la càmera",
+ "detectRoleWarning": "Almenys un flux ha de tenir el rol de \"detecte\" per continuar.",
+ "rolesPopover": {
+ "title": "Rols de flux",
+ "detect": "Canal principal per a la detecció d'objectes.",
+ "record": "Desa els segments del canal de vídeo basats en la configuració.",
+ "audio": "Canal per a la detecció basada en àudio."
+ },
+ "featuresPopover": {
+ "title": "Característiques del flux",
+ "description": "Utilitzeu el restreaming go2rtc per reduir les connexions a la càmera."
+ },
+ "roles": "Rols",
+ "streamUrlPlaceholder": "rtsp://usuari:contrasenya@host:port/ruta",
+ "streamDetails": "Detalls del flux",
+ "probing": "Provant càmera...",
+ "retry": "Intentar de nou",
+ "testing": {
+ "probingMetadata": "S'estan provant les metadades de la càmera...",
+ "fetchingSnapshot": "S'està recuperant la instantània de la càmera..."
+ },
+ "probeFailed": "No s'ha pogut provar la càmera: {{error}}",
+ "probingDevice": "Provant dispositiu...",
+ "probeSuccessful": "Prova exitosa",
+ "probeError": "Error de prova",
+ "probeNoSuccess": "La prova no ha tingut èxit",
+ "deviceInfo": "Informació del dispositiu",
+ "manufacturer": "Fabricant",
+ "model": "Model",
+ "firmware": "Firmware",
+ "profiles": "Perfils",
+ "ptzSupport": "Suport PTZ",
+ "autotrackingSupport": "Implementació de seguiment automàtic",
+ "presets": "Predefinits",
+ "rtspCandidates": "Candidats RTSP",
+ "rtspCandidatesDescription": "S'han trobat els següents URL RTSP de la sonda de la càmera. Proveu la connexió per a veure les metadades del flux.",
+ "noRtspCandidates": "No s'ha trobat cap URL RTSP a la càmera. Les vostres credencials poden ser incorrectes, o la càmera pot no admetre ONVIF o el mètode utilitzat per recuperar els URL RTSP. Torneu enrere i introduïu l'URL RTSP manualment.",
+ "candidateStreamTitle": "Candidat {{number}}",
+ "useCandidate": "Utilitza",
+ "uriCopy": "Copia",
+ "uriCopied": "URI copiat al porta-retalls",
+ "testConnection": "Prova la connexió",
+ "toggleUriView": "Feu clic per a commutar la vista completa de l'URI",
+ "errors": {
+ "hostRequired": "Es requereix l'adreça de l'amfitrió/IP"
+ }
+ },
+ "step3": {
+ "none": "Cap",
+ "error": "Error",
+ "saveAndApply": "Desa una càmera nova",
+ "saveError": "Configuració no vàlida. Si us plau, comproveu la configuració.",
+ "issues": {
+ "title": "Validació del flux",
+ "videoCodecGood": "El còdec de vídeo és {{codec}}.",
+ "audioCodecGood": "El còdec d'àudio és {{codec}}.",
+ "noAudioWarning": "No s'ha detectat cap àudio per a aquest flux, els enregistraments no tindran àudio.",
+ "audioCodecRecordError": "El còdec d'àudio AAC és necessari per a suportar l'àudio en els enregistraments.",
+ "audioCodecRequired": "Es requereix un flux d'àudio per admetre la detecció d'àudio.",
+ "restreamingWarning": "Reduir les connexions a la càmera per al flux de registre pot augmentar lleugerament l'ús de la CPU.",
+ "dahua": {
+ "substreamWarning": "El substream 1 està bloquejat a una resolució baixa. Moltes càmeres Dahua / Amcrest / EmpireTech suporten subfluxos addicionals que han d'estar habilitats a la configuració de la càmera. Es recomana comprovar i utilitzar aquests corrents si estan disponibles."
+ },
+ "hikvision": {
+ "substreamWarning": "El substream 1 està bloquejat a una resolució baixa. Moltes càmeres Hikvision suporten subfluxos addicionals que han d'estar habilitats a la configuració de la càmera. Es recomana comprovar i utilitzar aquests corrents si estan disponibles."
+ },
+ "resolutionHigh": "Una resolució de {{resolution}} pot causar un ús més gran dels recursos.",
+ "resolutionLow": "Una resolució de {{resolution}} pot ser massa baixa per a la detecció fiable d'objectes petits."
+ },
+ "description": "Configura els rols de flux i afegeix fluxos addicionals per a la càmera.",
+ "validationTitle": "Validació del flux",
+ "connectAllStreams": "Connecta tots els fluxos",
+ "reconnectionSuccess": "S'ha reconnectat correctament.",
+ "reconnectionPartial": "Alguns fluxos no s'han pogut tornar a connectar.",
+ "streamUnavailable": "La vista prèvia del flux no està disponible",
+ "reload": "Torna a carregar",
+ "connecting": "Connectant...",
+ "streamTitle": "Flux {{number}}",
+ "valid": "Vàlid",
+ "failed": "Ha fallat",
+ "notTested": "No provat",
+ "connectStream": "Connecta",
+ "connectingStream": "Connectant",
+ "disconnectStream": "Desconnecta",
+ "estimatedBandwidth": "Amplada de banda estimad",
+ "roles": "Rols",
+ "streamValidated": "El flux {{number}} s'ha validat correctament",
+ "streamValidationFailed": "Ha fallat la validació del flux {{number}}",
+ "ffmpegModule": "Usa el mode de compatibilitat del flux",
+ "ffmpegModuleDescription": "Si el flux no es carrega després de diversos intents, proveu d'activar-ho. Quan està activat, Frigate utilitzarà el mòdul ffmpeg amb go2rtc. Això pot proporcionar una millor compatibilitat amb alguns fluxos de càmera.",
+ "streamsTitle": "Fluxos de la càmera",
+ "addStream": "Afegeix un flux",
+ "addAnotherStream": "Afegeix un altre flux",
+ "streamUrl": "URL del flux",
+ "streamUrlPlaceholder": "rtsp://usuari:contrasenya@host:port/ruta",
+ "selectStream": "Selecciona un flux",
+ "searchCandidates": "Cerca candidats...",
+ "noStreamFound": "No s'ha trobat cap flux",
+ "url": "URL",
+ "resolution": "Resolució",
+ "selectResolution": "Selecciona la resolució",
+ "quality": "Qualitat",
+ "selectQuality": "Selecciona la qualitat",
+ "roleLabels": {
+ "detect": "Detecció d'objectes",
+ "record": "Enregistrament",
+ "audio": "Àudio"
+ },
+ "testStream": "Prova la connexió",
+ "testSuccess": "Prova de flux amb èxit!",
+ "testFailed": "Ha fallat la prova del flux",
+ "testFailedTitle": "Ha fallat la prova",
+ "connected": "Connectat",
+ "notConnected": "No connectat",
+ "featuresTitle": "Característiques",
+ "go2rtc": "Redueix les connexions a la càmera",
+ "detectRoleWarning": "Almenys un flux ha de tenir el rol de \"detecte\" per continuar.",
+ "rolesPopover": {
+ "title": "Roles de flux",
+ "detect": "Canal principal per a la detecció d'objectes.",
+ "record": "Desa els segments del canal de vídeo basats en la configuració.",
+ "audio": "Canal per a la detecció basada en àudio."
+ },
+ "featuresPopover": {
+ "title": "Característiques del flux",
+ "description": "Utilitzeu el restreaming go2rtc per reduir les connexions a la càmera."
+ }
+ },
+ "step4": {
+ "description": "Validació i anàlisi final abans de desar la nova càmera. Connecta cada flux abans de desar-lo.",
+ "validationTitle": "Validació del flux",
+ "connectAllStreams": "Connecta tots els fluxos",
+ "reconnectionSuccess": "S'ha reconnectat correctament.",
+ "reconnectionPartial": "Alguns fluxos no s'han pogut tornar a connecta.",
+ "streamUnavailable": "La vista prèvia del flux no està disponible",
+ "reload": "Torna a carregar",
+ "connecting": "S'està connectant...",
+ "streamTitle": "Flux {{number}}",
+ "valid": "Vàlid",
+ "failed": "Ha fallat",
+ "notTested": "No provat",
+ "connectStream": "Connecta",
+ "connectingStream": "Connectant",
+ "disconnectStream": "Desconnecta",
+ "estimatedBandwidth": "Amplada de banda estimada",
+ "roles": "Roles",
+ "ffmpegModule": "Usa el mode de compatibilitat del flux",
+ "ffmpegModuleDescription": "Si el flux no es carrega després de diversos intents, proveu d'activar-ho. Quan està activat, Frigate utilitzarà el mòdul ffmpeg amb go2rtc. Això pot proporcionar una millor compatibilitat amb alguns fluxos de càmera.",
+ "none": "Cap",
+ "error": "Error",
+ "streamValidated": "El flux {{number}} s'ha validat correctament",
+ "streamValidationFailed": "Ha fallat la validació del flux {{number}}",
+ "saveAndApply": "Desa una càmera nova",
+ "saveError": "Configuració no vàlida. Si us plau, comproveu la configuració.",
+ "issues": {
+ "title": "Validació del flux",
+ "videoCodecGood": "El còdec de vídeo és {{codec}}.",
+ "audioCodecGood": "El còdec d'àudio és {{codec}}.",
+ "resolutionHigh": "Una resolució de {{resolution}} pot causar un ús més gran dels recursos.",
+ "resolutionLow": "Una resolució de {{resolution}} pot ser massa baixa per a la detecció fiable d'objectes petits.",
+ "noAudioWarning": "No s'ha detectat cap àudio per a aquest flux, els enregistraments no tindran àudio.",
+ "audioCodecRecordError": "El còdec d'àudio AAC és necessari per a suportar l'àudio en els enregistraments.",
+ "audioCodecRequired": "Es requereix un flux d'àudio per admetre la detecció d'àudio.",
+ "restreamingWarning": "Reduir les connexions a la càmera per al flux de registre pot augmentar lleugerament l'ús de la CPU.",
+ "brands": {
+ "reolink-rtsp": "No és racomana utilitzar Reolink RSTP. Activeu HTTP a la configuració del microprogramari de la càmera i reinicieu l'assistent.",
+ "reolink-http": "Els fluxos HTTP de reenllaç haurien d'utilitzar FFmpeg per a una millor compatibilitat. Habilita «Utilitza el mode de compatibilitat del flux» per a aquest flux."
+ },
+ "dahua": {
+ "substreamWarning": "El substream 1 està bloquejat a una resolució baixa. Moltes càmeres Dahua / Amcrest / EmpireTech suporten subfluxos addicionals que han d'estar habilitats a la configuració de la càmera. Es recomana comprovar i utilitzar aquests corrents si estan disponibles."
+ },
+ "hikvision": {
+ "substreamWarning": "El substream 1 està bloquejat a una resolució baixa. Moltes càmeres Hikvision suporten subfluxos addicionals que han d'estar habilitats a la configuració de la càmera. Es recomana comprovar i utilitzar aquests corrents si estan disponibles."
+ }
+ }
+ }
+ },
+ "cameraManagement": {
+ "title": "Gestiona les càmeres",
+ "addCamera": "Afegeix una càmera nova",
+ "editCamera": "Edita la càmera:",
+ "selectCamera": "Selecciona una càmera",
+ "backToSettings": "Torna a la configuració de la càmera",
+ "streams": {
+ "title": "Habilita / Inhabilita les càmeres",
+ "desc": "Inhabilita temporalment una càmera fins que es reiniciï la fragata. La inhabilitació d'una càmera atura completament el processament de Frigate dels fluxos d'aquesta càmera. La detecció, l'enregistrament i la depuració no estaran disponibles. Nota: això no desactiva les retransmissions de go2rtc."
+ },
+ "cameraConfig": {
+ "add": "Afegeix una càmera",
+ "edit": "Edita la càmera",
+ "description": "Configura la configuració de la càmera, incloses les entrades i els rols de flux.",
+ "name": "Nom de la càmera",
+ "nameRequired": "Es requereix el nom de la càmera",
+ "nameLength": "El nom de la càmera ha de tenir menys de 64 caràcters.",
+ "namePlaceholder": "p. ex., vista general de la porta davantera o de la barra posterior",
+ "enabled": "Habilitat",
+ "ffmpeg": {
+ "inputs": "Fluxos d'entrada",
+ "path": "Camí del flux",
+ "pathRequired": "Es requereix un camí de flux",
+ "pathPlaceholder": "rtsp://...",
+ "rolesRequired": "Es requereix almenys un rol",
+ "rolesUnique": "Cada rol (àudio, detecta, registra) només es pot assignar a un flux",
+ "addInput": "Afegeix un flux d'entrada",
+ "removeInput": "Elimina el flux d'entrada",
+ "inputsRequired": "Es requereix com a mínim un flux d'entrada",
+ "roles": "Rols"
+ },
+ "go2rtcStreams": "go2rtc Fluxos",
+ "streamUrls": "URL de flux",
+ "addUrl": "Afegeix un URL",
+ "addGo2rtcStream": "Afegeix go2rtc flux",
+ "toast": {
+ "success": "La càmera {{cameraName}} s'ha desat correctament"
+ }
+ }
+ },
+ "cameraReview": {
+ "object_descriptions": {
+ "title": "Descripcions d'objectes generadors d'IA",
+ "desc": "Activa/desactiva temporalment les descripcions d'objectes generatius d'IA per a aquesta càmera. Quan està desactivat, les descripcions generades per IA no se sol·licitaran per als objectes rastrejats en aquesta càmera."
+ },
+ "review_descriptions": {
+ "title": "Descripcions de la IA generativa",
+ "desc": "Activa/desactiva temporalment les descripcions de revisió de la IA generativa per a aquesta càmera. Quan està desactivat, les descripcions generades per IA no se sol·licitaran per als elements de revisió d'aquesta càmera."
+ },
+ "review": {
+ "title": "Revisió",
+ "desc": "Activa/desactiva temporalment les alertes i deteccions d'aquesta càmera fins que es reiniciï Frigate. Si està desactivat, no es generaran nous elements de revisió. ",
+ "alerts": "Alertes. ",
+ "detections": "Deteccions. "
+ },
+ "reviewClassification": {
+ "title": "Revisió de la classificació",
+ "desc": "Frigate categoritza els articles de revisió com Alertes i Deteccions. Per defecte, tots els objectes persona i cotxe es consideren Alertes. Podeu refinar la categorització dels elements de revisió configurant-los les zones requerides.",
+ "noDefinedZones": "No hi ha zones definides per a aquesta càmera.",
+ "selectAlertsZones": "Selecciona zones per a les alertes",
+ "selectDetectionsZones": "Selecció de zones per a les deteccions",
+ "limitDetections": "Limita les deteccions a zones específiques",
+ "toast": {
+ "success": "S'ha desat la configuració de la classificació de la revisió. Reinicia la fragata per aplicar canvis."
+ },
+ "unsavedChanges": "Paràmetres de classificació de revisions sense desar per {{camera}}",
+ "objectAlertsTips": "Totes els objectes {{alertsLabels}} de {{cameraName}} es mostraran com avisos.",
+ "zoneObjectAlertsTips": "Tots els objectes{{alertsLabels}} detectats en {{zone}} de {{cameraName}} es mostraran com a avisos.",
+ "objectDetectionsTips": "Tots els objectes {{detectionsLabels}} que no estiguin categoritzats de {{cameraName}} es mostraran com a Deteccions independentment de la zona on es trobin.",
+ "zoneObjectDetectionsTips": {
+ "text": "Tots els objectes {{detectionsLabels}} no categoritzats a {{zone}} de {{cameraName}} es mostraran com a Deteccions.",
+ "notSelectDetections": "Tots els objectes {{detectionsLabels}} detectats a {{zone}} de{{cameraName}} no categoritzats com a alertes es mostraran com a Deteccions independentment de la zona on es trobin.",
+ "regardlessOfZoneObjectDetectionsTips": "Tots els objectes {{detectionsLabels}} que no estiguin categoritzats de {{cameraName}} es mostraran com a Deteccions independentment de la zona on es trobin."
+ }
+ },
+ "title": "Paràmetres de Revisió de la Càmera"
}
}
diff --git a/web/public/locales/ca/views/system.json b/web/public/locales/ca/views/system.json
index d4d63a31df..662ca75529 100644
--- a/web/public/locales/ca/views/system.json
+++ b/web/public/locales/ca/views/system.json
@@ -41,7 +41,8 @@
"title": "Detectors",
"inferenceSpeed": "Velocitat d'inferència del detector",
"cpuUsage": "Ús de CPU del detector",
- "temperature": "Temperatura del detector"
+ "temperature": "Temperatura del detector",
+ "cpuUsageInformation": "CPU usada en la preparació d'entrades i sortides desde/cap als models de detecció. Aquest valor no mesura l'utilització d'inferència, encara que usis una GPU o accelerador."
},
"title": "General",
"hardwareInfo": {
@@ -75,7 +76,12 @@
}
},
"npuUsage": "Ús de NPU",
- "npuMemory": "Memòria de NPU"
+ "npuMemory": "Memòria de NPU",
+ "intelGpuWarning": {
+ "title": "Avís d'estadístiques de la GPU d'Intel",
+ "message": "Estadístiques de GPU no disponibles",
+ "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 fragata. Podeu reiniciar l'amfitrió per a corregir temporalment el problema i confirmar que la GPU funciona correctament. Això no afecta el rendiment."
+ }
},
"otherProcesses": {
"title": "Altres processos",
@@ -102,7 +108,11 @@
},
"percentageOfTotalUsed": "Percentatge del total"
},
- "overview": "Visió general"
+ "overview": "Visió general",
+ "shm": {
+ "title": "Ubicació de SHM (memória compartida)",
+ "warning": "El tamany de la SHM oh {{total}}MB es massa petita. Augmenta almenys fins a {{min_shm}}MB."
+ }
},
"cameras": {
"framesAndDetections": "Fotogrames / Deteccions",
@@ -158,7 +168,8 @@
"ffmpegHighCpuUsage": "{{camera}} te un ús elevat de CPU per FFmpeg ({{ffmpegAvg}}%)",
"detectHighCpuUsage": "{{camera}} te un ús elevat de CPU per la detecció ({{detectAvg}}%)",
"detectIsVerySlow": "{{detect}} és molt lent ({{speed}} ms)",
- "detectIsSlow": "{{detect}} és lent ({{speed}} ms)"
+ "detectIsSlow": "{{detect}} és lent ({{speed}} ms)",
+ "shmTooLow": "/dev/shm directori ({{total}} MB) hauria de ser incrementat com a mínim {{min}} MB."
},
"enrichments": {
"title": "Enriquiments",
@@ -173,8 +184,18 @@
"plate_recognition_speed": "Velocitat de reconeixement de matrícules",
"text_embedding_speed": "Velocitat d'incrustació de text",
"yolov9_plate_detection": "Detecció de matrícules YOLOv9",
- "yolov9_plate_detection_speed": "Velocitat de detecció de matrícules YOLOv9"
+ "yolov9_plate_detection_speed": "Velocitat de detecció de matrícules YOLOv9",
+ "review_description": "Descripció de la revisió",
+ "review_description_speed": "Velocitat de la descripció de la revisió",
+ "review_description_events_per_second": "Descripció de la revisió",
+ "object_description": "Descripció de l'objecte",
+ "object_description_speed": "Velocitat de la descripció de l'objecte",
+ "object_description_events_per_second": "Descripció de l'objecte",
+ "classification": "{{name}} Classificació",
+ "classification_speed": "Velocitat de classificació de {{name}}",
+ "classification_events_per_second": "{{name}} Esdeveniments de classificació per segon"
},
- "infPerSecond": "Inferències per segon"
+ "infPerSecond": "Inferències per segon",
+ "averageInf": "Temps mitjà d'inferència"
}
}
diff --git a/web/public/locales/cs/audio.json b/web/public/locales/cs/audio.json
index 4308f7487e..8876626acc 100644
--- a/web/public/locales/cs/audio.json
+++ b/web/public/locales/cs/audio.json
@@ -53,7 +53,7 @@
"moo": "Bučení",
"cowbell": "Kravský zvonec",
"pig": "Prase",
- "oink": "Chrochtání",
+ "oink": "Chrochtanie",
"fowl": "Drůbež",
"chicken": "Slepice",
"cluck": "Kvokání",
diff --git a/web/public/locales/cs/common.json b/web/public/locales/cs/common.json
index 08cff4992c..856c88a636 100644
--- a/web/public/locales/cs/common.json
+++ b/web/public/locales/cs/common.json
@@ -130,7 +130,7 @@
"meters": "metry"
}
},
- "selectItem": "Vyberte {{item}}",
+ "selectItem": "Vybrat {{item}}",
"menu": {
"documentation": {
"label": "Dokumentace Frigate",
@@ -185,7 +185,15 @@
"hu": "Magyar (Maďarština)",
"pl": "Polski (Polština)",
"th": "ไทย (Thaiština)",
- "ca": "Català (Katalánština)"
+ "ca": "Català (Katalánština)",
+ "sl": "Slovinština (Slovinsko)",
+ "ptBR": "Português brasileiro (Brazilian Portuguese)",
+ "sr": "Српски (Serbian)",
+ "lt": "Lietuvių (Lithuanian)",
+ "bg": "Български (Bulgarian)",
+ "gl": "Galego (Galician)",
+ "id": "Bahasa Indonesia (Indonesian)",
+ "ur": "اردو (Urdu)"
},
"theme": {
"highcontrast": "Vysoký kontrast",
@@ -261,5 +269,6 @@
"admin": "Správce",
"viewer": "Divák",
"desc": "Správci mají plný přístup ke všem funkcím v uživatelském rozhraní Frigate. Diváci jsou omezeni na sledování kamer, položek přehledu a historických záznamů v UI."
- }
+ },
+ "readTheDocumentation": "Přečtěte si dokumentaci"
}
diff --git a/web/public/locales/cs/components/auth.json b/web/public/locales/cs/components/auth.json
index a3dd01b32b..00b0160cbe 100644
--- a/web/public/locales/cs/components/auth.json
+++ b/web/public/locales/cs/components/auth.json
@@ -10,6 +10,7 @@
"unknownError": "Neznámá chyba. Zkontrolujte logy.",
"webUnknownError": "Neznámá chuba. Zkontrolujte logy konzoly.",
"rateLimit": "Limit požadavků překročen. Zkuste to znovu později."
- }
+ },
+ "firstTimeLogin": "Přihlašujete se poprvé? Přihlašovací údaje jsou vypsány v logu Frigate."
}
}
diff --git a/web/public/locales/cs/components/camera.json b/web/public/locales/cs/components/camera.json
index 2c3f0d6c72..ef56aa7295 100644
--- a/web/public/locales/cs/components/camera.json
+++ b/web/public/locales/cs/components/camera.json
@@ -41,7 +41,8 @@
"desc": "Změní možnosti živého vysílání pro dashboard této skupiny kamer. Tato nastavení jsou specifická pro zařízení/prohlížeč.",
"stream": "Proud",
"placeholder": "Vyberte proud"
- }
+ },
+ "birdseye": "Ptačí oko"
},
"delete": {
"confirm": {
diff --git a/web/public/locales/cs/components/dialog.json b/web/public/locales/cs/components/dialog.json
index 53318710a1..8b982edcde 100644
--- a/web/public/locales/cs/components/dialog.json
+++ b/web/public/locales/cs/components/dialog.json
@@ -110,5 +110,12 @@
"label": "Uložit vyhledávání",
"overwrite": "{{searchName}} už existuje. Uložení přepíše existující hodnotu."
}
+ },
+ "imagePicker": {
+ "selectImage": "Vyber náhled sledovaného objektu",
+ "search": {
+ "placeholder": "Hledej pomocí štítku nebo podštítku..."
+ },
+ "noImages": "Nebyly nalezeny žádné náhledy pro tuto kameru"
}
}
diff --git a/web/public/locales/cs/components/filter.json b/web/public/locales/cs/components/filter.json
index d057b6e7d2..55ff667c14 100644
--- a/web/public/locales/cs/components/filter.json
+++ b/web/public/locales/cs/components/filter.json
@@ -92,7 +92,9 @@
"loading": "Načítám rozeznané SPZ…",
"placeholder": "Zadejte text pro hledání SPZ…",
"selectPlatesFromList": "Vyberte jednu, nebo více SPZ ze seznamu.",
- "noLicensePlatesFound": "Žádné SPZ nebyly nalezeny."
+ "noLicensePlatesFound": "Žádné SPZ nebyly nalezeny.",
+ "selectAll": "Označit vše",
+ "clearAll": "Vymazat vše"
},
"zones": {
"all": {
@@ -122,5 +124,13 @@
},
"review": {
"showReviewed": "Zobrazit zkontrolované"
+ },
+ "classes": {
+ "label": "Třídy",
+ "all": {
+ "title": "Všechny třídy"
+ },
+ "count_one": "Třída {{count}}",
+ "count_other": "Třídy {{count}}"
}
}
diff --git a/web/public/locales/cs/objects.json b/web/public/locales/cs/objects.json
index f257102358..ca2092069c 100644
--- a/web/public/locales/cs/objects.json
+++ b/web/public/locales/cs/objects.json
@@ -111,7 +111,7 @@
"fedex": "FedEx",
"dhl": "DHL",
"an_post": "An Post",
- "purolator": "Purolator",
+ "purolator": "Čistič",
"postnl": "PostNL",
"nzpost": "NZPost",
"postnord": "PostNord",
diff --git a/web/public/locales/cs/views/classificationModel.json b/web/public/locales/cs/views/classificationModel.json
new file mode 100644
index 0000000000..f3713a2555
--- /dev/null
+++ b/web/public/locales/cs/views/classificationModel.json
@@ -0,0 +1,47 @@
+{
+ "documentTitle": "Klasifikační modely - Frigate",
+ "button": {
+ "deleteClassificationAttempts": "Odstrániť Klasifikačné obrazy",
+ "renameCategory": "Přejmenovat třídu",
+ "deleteCategory": "Smazat třídu",
+ "deleteImages": "Smazat obrázek",
+ "trainModel": "Trénovat model",
+ "addClassification": "Přidat klasifikaci",
+ "deleteModels": "Smazat modely",
+ "editModel": "Upravit model"
+ },
+ "details": {
+ "scoreInfo": "Skóre predstavuje priemernú istotu klasifikácie naprieč detekciami tohoto objektu.",
+ "none": "Nic",
+ "unknown": "Neznámý"
+ },
+ "tooltip": {
+ "trainingInProgress": "Model se právě trénuje",
+ "noNewImages": "Žádné obrázky pro trénování. Nejdříve klasifikujte obrázky pro dataset.",
+ "noChanges": "Od posledního trénování nedošlo k žádné změně.",
+ "modelNotReady": "Model není připravený na trénování."
+ },
+ "toast": {
+ "success": {
+ "deletedImage": "Smazat obrázky",
+ "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",
+ "categorizedImage": "Obrázek úspěšně klasifikován",
+ "trainedModel": "Úspěšně vytrénovaný model.",
+ "trainingModel": "Trénování modelu bylo úspěšně zahájeno.",
+ "updatedModel": "Konfigurace modelu úspěšně aktualizována.",
+ "renamedCategory": "Třída úspěšně přejmenována na {{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "Chyba při mazání: {{errorMessage}}",
+ "deleteCategoryFailed": "Chyba při mazání třídy: {{errorMessage}}",
+ "deleteModelFailed": "Chyba při mazání modelu: {{errorMessage}}",
+ "categorizeFailed": "Chyba při mazání obrázku: {{errorMessage}}"
+ }
+ },
+ "train": {
+ "titleShort": "Nedávný"
+ }
+}
diff --git a/web/public/locales/cs/views/configEditor.json b/web/public/locales/cs/views/configEditor.json
index 55fbafb2c8..19982f20c1 100644
--- a/web/public/locales/cs/views/configEditor.json
+++ b/web/public/locales/cs/views/configEditor.json
@@ -12,5 +12,7 @@
"savingError": "Chyba ukládání konfigurace"
}
},
- "confirm": "Opustit bez uložení?"
+ "confirm": "Opustit bez uložení?",
+ "safeConfigEditor": "Editor konfigurace (Nouzový režim)",
+ "safeModeDescription": "Frigate je v nouzovém režimu kvůli chybě při ověřování konfigurace."
}
diff --git a/web/public/locales/cs/views/events.json b/web/public/locales/cs/views/events.json
index 17cade7e0f..d05bd7cdc9 100644
--- a/web/public/locales/cs/views/events.json
+++ b/web/public/locales/cs/views/events.json
@@ -34,5 +34,16 @@
},
"detected": "Detekováno",
"selected_one": "{{count}} vybráno",
- "selected_other": "{{count}} vybráno"
+ "selected_other": "{{count}} vybráno",
+ "suspiciousActivity": "Podezřelá aktivita",
+ "threateningActivity": "Ohrožující činnost",
+ "zoomIn": "Přiblížit",
+ "zoomOut": "Oddálit",
+ "detail": {
+ "label": "Detail",
+ "noDataFound": "Žádná detailní data k prohlédnutí",
+ "aria": "Přepnout detailní zobrazení",
+ "trackedObject_other": "{{count}} objektů",
+ "trackedObject_one": "{{count}} objektů"
+ }
}
diff --git a/web/public/locales/cs/views/explore.json b/web/public/locales/cs/views/explore.json
index 1dba5c6058..8acdd23860 100644
--- a/web/public/locales/cs/views/explore.json
+++ b/web/public/locales/cs/views/explore.json
@@ -23,12 +23,14 @@
"success": {
"regenerate": "Od {{provider}} byl vyžádán nový popis. V závislosti na rychlosti vašeho poskytovatele může obnovení nového popisu nějakou dobu trvat.",
"updatedSublabel": "Úspěšně aktualizovaný podružný štítek.",
- "updatedLPR": "Úspěšně aktualizovaná SPZ."
+ "updatedLPR": "Úspěšně aktualizovaná SPZ.",
+ "audioTranscription": "Požádání o přepis zvuku bylo úspěšné."
},
"error": {
"regenerate": "Chyba volání {{provider}} pro nový popis: {{errorMessage}}",
"updatedSublabelFailed": "Chyba obnovení podružného štítku: {{errorMessage}}",
- "updatedLPRFailed": "Chyba obnovení SPZ: {{errorMessage}}"
+ "updatedLPRFailed": "Chyba obnovení SPZ: {{errorMessage}}",
+ "audioTranscription": "Požádání o přepis zvuku bylo neúspěšné: {{errorMessage}}"
}
}
},
@@ -70,7 +72,10 @@
"label": "Nejvyšší skóre"
},
"label": "Štítek",
- "recognizedLicensePlate": "Rozpoznaná SPZ"
+ "recognizedLicensePlate": "Rozpoznaná SPZ",
+ "score": {
+ "label": "Skóre"
+ }
},
"exploreIsUnavailable": {
"title": "Prozkoumat je nedostupné",
@@ -188,6 +193,14 @@
"viewObjectLifecycle": {
"label": "Zobrazit životní cyklus objektu",
"aria": "Ukázat životní cyklus objektu"
+ },
+ "addTrigger": {
+ "label": "Přidat spouštěč",
+ "aria": "Přidat spouštěč pro tento sledovaný objekt"
+ },
+ "audioTranscription": {
+ "label": "Přepsat",
+ "aria": "Požádat o přepis zvukového záznamu"
}
},
"dialog": {
@@ -205,5 +218,11 @@
},
"noTrackedObjects": "Žádné sledované objekty nebyly nalezeny",
"fetchingTrackedObjectsFailed": "Chyba při načítání sledovaných objektů: {{errorMessage}}",
- "exploreMore": "Prozkoumat více {{label}} objektů"
+ "exploreMore": "Prozkoumat více {{label}} objektů",
+ "aiAnalysis": {
+ "title": "Analýza AI"
+ },
+ "concerns": {
+ "label": "Obavy"
+ }
}
diff --git a/web/public/locales/cs/views/exports.json b/web/public/locales/cs/views/exports.json
index d27bf05e9f..5fb25d638c 100644
--- a/web/public/locales/cs/views/exports.json
+++ b/web/public/locales/cs/views/exports.json
@@ -13,5 +13,11 @@
"error": {
"renameExportFailed": "Nepodařilo se přejmenovat export: {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "shareExport": "Sdílet export",
+ "downloadVideo": "Stáhnout video",
+ "deleteExport": "Smazat export",
+ "editName": "Upravit jméno"
}
}
diff --git a/web/public/locales/cs/views/faceLibrary.json b/web/public/locales/cs/views/faceLibrary.json
index 8db564c379..cf4b1faeaa 100644
--- a/web/public/locales/cs/views/faceLibrary.json
+++ b/web/public/locales/cs/views/faceLibrary.json
@@ -36,12 +36,13 @@
"desc": "Skutečně chcete vymazat kolekci {{name}}? Toto trvale vymaže všechny přiřazené obličeje."
},
"train": {
- "title": "Trénovat",
+ "title": "Nedávná rozpoznání",
"empty": "Nejsou zde žádné předchozí pokusy o rozpoznání obličeje",
- "aria": "Vybrat trénink"
+ "aria": "Vybrat poslední rozpoznávání",
+ "titleShort": "Nedávný"
},
"description": {
- "addFace": "Prúvodce přidání nové kolekce do Knižnice obličejů.",
+ "addFace": "Přidejte novou kolekci do Knihovny obličejů nahráním prvního obrázku.",
"placeholder": "Zadejte název pro tuto kolekci",
"invalidName": "Neplatný název. Názvy mohou obsahovat pouze písmena, čísla, mezery, apostrofy, podtržítka a pomlčky."
},
@@ -76,7 +77,7 @@
"deletedName_one": "{{count}} obličej byl úspěšně odstraněn.",
"deletedName_few": "{{count}} tváře byly úspěšně odstraněny.",
"deletedName_other": "{{count}} tváře byly úspěšně odstraněny.",
- "updatedFaceScore": "Úspěšně aktualizováno skóre obličeje.",
+ "updatedFaceScore": "Úspěšně aktualizováno skóre obličeje na {{name}} ({{score}}).",
"addFaceLibrary": "{{name}} byl(a) úspěšně přidán(a) do Knihovny obličejů!"
},
"error": {
diff --git a/web/public/locales/cs/views/live.json b/web/public/locales/cs/views/live.json
index 1e6004a05e..f8e77f659d 100644
--- a/web/public/locales/cs/views/live.json
+++ b/web/public/locales/cs/views/live.json
@@ -43,7 +43,15 @@
"label": "Klikněte do snímku pro vycentrování PTZ kamery"
}
},
- "presets": "Předvolby PTZ kamery"
+ "presets": "Předvolby PTZ kamery",
+ "focus": {
+ "in": {
+ "label": "Zaostření PTZ kamery"
+ },
+ "out": {
+ "label": "Rozostření PTZ kamery"
+ }
+ }
},
"camera": {
"enable": "Povolit kameru",
@@ -103,7 +111,7 @@
"forTime": "Pozastavení na: "
},
"stream": {
- "title": "Stream",
+ "title": "Proud",
"audio": {
"tips": {
"title": "Zvuk musí být kamerou vysílán a nakonfigurován v go2rtc pro tento stream.",
@@ -134,7 +142,8 @@
"snapshots": "Snímky",
"audioDetection": "Detekce Zvuku",
"autotracking": "Automatické sledování",
- "recording": "Nahrávání"
+ "recording": "Nahrávání",
+ "transcription": "Zvukový přepis"
},
"history": {
"label": "Zobrazit historické záznamy"
@@ -154,5 +163,9 @@
"label": "Upravit Skupinu Kamer"
}
},
- "notifications": "Notifikace"
+ "notifications": "Notifikace",
+ "transcription": {
+ "enable": "Povolit živý přepis zvuku",
+ "disable": "Zakázat živý přepis zvuku"
+ }
}
diff --git a/web/public/locales/cs/views/search.json b/web/public/locales/cs/views/search.json
index e828a67164..2d699792cc 100644
--- a/web/public/locales/cs/views/search.json
+++ b/web/public/locales/cs/views/search.json
@@ -26,7 +26,8 @@
"min_score": "Minimální Skóre",
"recognized_license_plate": "Rozpoznaná SPZ",
"has_clip": "Má Klip",
- "has_snapshot": "Má Snímek"
+ "has_snapshot": "Má Snímek",
+ "attributes": "Atributy"
},
"tips": {
"desc": {
diff --git a/web/public/locales/cs/views/settings.json b/web/public/locales/cs/views/settings.json
index 0657707621..3875b82695 100644
--- a/web/public/locales/cs/views/settings.json
+++ b/web/public/locales/cs/views/settings.json
@@ -6,11 +6,13 @@
"classification": "Nastavení klasifikace - Frigate",
"notifications": "Nastavení notifikací - Frigate",
"masksAndZones": "Editor masky a zón - Frigate",
- "motionTuner": "Ladič detekce pohybu - Frigate",
+ "motionTuner": "Ladění detekce pohybu - Frigate",
"object": "Ladění - Frigate",
- "general": "Obecné nastavení - Frigate",
+ "general": "Nastavení rozhraní - Frigate",
"frigatePlus": "Frigate+ nastavení - Frigate",
- "enrichments": "Nastavení obohacení - Frigate"
+ "enrichments": "Nastavení obohacení - Frigate",
+ "cameraManagement": "Správa kamer - Frigate",
+ "cameraReview": "Nastavení kontroly kamery - Frigate"
},
"frigatePlus": {
"toast": {
@@ -298,12 +300,16 @@
"classification": "Klasifikace",
"cameras": "Nastavení kamery",
"masksAndZones": "Masky / Zóny",
- "motionTuner": "Ladič detekce pohybu",
+ "motionTuner": "Ladění detekce pohybu",
"debug": "Ladění",
"users": "Uživatelé",
"notifications": "Notifikace",
- "frigateplus": "Frigate +",
- "enrichments": "Obohacení"
+ "frigateplus": "Frigate+",
+ "enrichments": "Obohacení",
+ "triggers": "Spouštěče",
+ "cameraManagement": "Správa",
+ "cameraReview": "Kontrola",
+ "roles": "Role"
},
"dialog": {
"unsavedChanges": {
@@ -318,7 +324,7 @@
"general": {
"title": "Hlavní nastavení",
"liveDashboard": {
- "title": "Živý Dashboard",
+ "title": "Živý dashboard",
"automaticLiveView": {
"desc": "Při detekci aktivity se automaticky přepne na živý náhled kamery. Vypnutí této možnosti způsobí, že se statické snímky z kamery na ovládacím panelu Live aktualizují pouze jednou za minutu.",
"label": "Automatický živý náhled"
@@ -339,9 +345,9 @@
"clearAll": "Vymazat všechna nastavení streamování"
},
"recordingsViewer": {
- "title": "Prohlížeč Nahrávek",
+ "title": "Prohlížeč nahrávek",
"defaultPlaybackRate": {
- "label": "Výchozí Rychlost Přehrávání",
+ "label": "Výchozí rychlost přehrávání",
"desc": "Výchozí rychlost přehrávání pro nahrávky."
}
},
@@ -375,9 +381,9 @@
"desc": "Zobrazit rámeček oblasti zájmu odesílané detektoru objektů",
"tips": "
Boxy oblastí zájmu
Jasně zelené boxy budou překryty na oblastech zájmu ve snímku, které jsou odesílány detektoru objektů.
"
},
- "title": "Ladit",
+ "title": "Ladění",
"detectorDesc": "Frigate používá vaše detektory {{detectors}} k detekci objektů ve streamu vašich kamer.",
- "objectList": "Seznam Objektů",
+ "objectList": "Seznam objektů",
"boundingBoxes": {
"title": "Ohraničující rámečky",
"desc": "Zobrazit ohraničující rámečky okolo sledovaných objektů",
@@ -394,7 +400,7 @@
"title": "Masky detekce pohybu",
"desc": "Zobrazit polygony masek detekce pohybu"
},
- "debugging": "Ledění",
+ "debugging": "Ladění",
"desc": "Ladicí zobrazení ukazuje sledované objekty a jejich statistiky v reálném čase. Seznam objektů zobrazuje časově zpožděný přehled detekovaných objektů.",
"motion": {
"title": "Rámečky detekce pohybu",
@@ -403,13 +409,26 @@
},
"noObjects": "Žádné objekty",
"objectShapeFilterDrawing": {
- "title": "Kreslení Filtru Tvaru Objektu",
+ "title": "Vykreslení filtru tvaru objektu",
"desc": "Nakreslete na obrázek obdélník pro zobrazení informací o ploše a poměru stran",
"tips": "Povolte tuto možnost pro nakreslení obdélníku na obraz kamery, který zobrazí jeho plochu a poměr stran. Tyto hodnoty pak můžete použít pro nastavení parametrů tvarového filtru objektu ve vaší konfiguraci.",
"document": "Přečtěte si dokumentaci ",
"score": "Skóre",
"ratio": "Poměr",
"area": "Oblast"
+ },
+ "openCameraWebUI": "Otevřít webové rozhraní {{camera}}",
+ "audio": {
+ "title": "Zvuk",
+ "noAudioDetections": "Žádné detekce zvuku",
+ "score": "skóre",
+ "currentRMS": "Aktuální RMS",
+ "currentdbFS": "Aktuální dbFS"
+ },
+ "paths": {
+ "title": "Cesty",
+ "desc": "Zobrazit významné body trasy sledovaného objektu",
+ "tips": "
Cesty
Čáry a kruhy označují významné body, kterými se sledovaný objekt během svého životního cyklu pohyboval.
"
}
},
"camera": {
@@ -444,7 +463,44 @@
},
"limitDetections": "Omezit detekce pro specifické zóny"
},
- "title": "Nastavení Kamery"
+ "title": "Nastavení Kamery",
+ "object_descriptions": {
+ "title": "AI generované popisy objektů",
+ "desc": "Dočasně povolit/zakázat generativní popisy objektů AI pro tuto kameru. Pokud je tato funkce zakázána, nebudou pro sledované objekty na této kameře vyžadovány popisy generované AI."
+ },
+ "review_descriptions": {
+ "title": "Popisy generativní AI",
+ "desc": "Dočasně povolit/zakázat generativní AI recenze popisů pro tuto kameru. Pokud je tato funkce zakázána, nebudou pro položky recenzí na této kameře vyžadovány popisy generované AI."
+ },
+ "addCamera": "Přidat novou kameru",
+ "editCamera": "Upravit kameru:",
+ "selectCamera": "Vybrat kameru",
+ "backToSettings": "Zpět k nastavení kamery",
+ "cameraConfig": {
+ "add": "Přidat kameru",
+ "edit": "Upravit kameru",
+ "description": "Konfigurovat nastavení kamery, včetně vstupů streamu a rolí.",
+ "name": "Název kamery",
+ "nameRequired": "Název kamery je povinný",
+ "nameLength": "Název kamery musí mít méně než 24 znaků.",
+ "namePlaceholder": "např. přední dveře",
+ "enabled": "Povolit",
+ "ffmpeg": {
+ "inputs": "Vstupní streamy",
+ "path": "Cesta streamu",
+ "pathRequired": "Cesta ke streamu je povinná",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Role",
+ "rolesRequired": "Je vyžadována alespoň jedna role",
+ "rolesUnique": "Každá role (audio, detekce, záznam) může být přiřazena pouze k jednomu streamu",
+ "addInput": "Přidat vstupní stream",
+ "removeInput": "Odebrat vstupní stream",
+ "inputsRequired": "Je vyžadován alespoň jeden vstupní stream"
+ },
+ "toast": {
+ "success": "Kamera {{cameraName}} byla úspěšně uložena"
+ }
+ }
},
"notification": {
"notificationSettings": {
@@ -469,7 +525,7 @@
"desc": "Je vyžadována platná e-mailová adresa, která bude použita k upozornění v případě problémů se službou push notifikací."
},
"registerDevice": "Registrovat Toto Zařízení",
- "deviceSpecific": "Nastavení Specifická pro Zařízení",
+ "deviceSpecific": "Nastavení specifická pro zařízení",
"unregisterDevice": "Odregistrovat Toto Zařízení",
"sendTestNotification": "Poslat testovací notifikaci",
"unsavedRegistrations": "Neuložené přihlášky k Notifikacím",
@@ -553,7 +609,8 @@
"admin": "Správce",
"adminDesc": "Plný přístup ke všem funkcím.",
"viewer": "Divák",
- "viewerDesc": "Omezení pouze na Živé dashboardy, Revize, Průzkumníka a Exporty."
+ "viewerDesc": "Omezení pouze na Živé dashboardy, Revize, Průzkumníka a Exporty.",
+ "customDesc": "Vlastní role s konkrétním přístupem ke kameře."
},
"title": "Změnit Roli Uživatele",
"desc": "Aktualizovat oprávnění pro {{username}}",
@@ -593,13 +650,13 @@
},
"management": {
"desc": "Spravujte uživatelské účty této instance Frigate.",
- "title": "Správa Uživatelů"
+ "title": "Správa uživatelů"
},
"addUser": "Přidat uživatele",
"title": "Uživatelé"
},
"motionDetectionTuner": {
- "unsavedChanges": "Neuložené změny Ladiče Detekce Pohybu {{camera}}",
+ "unsavedChanges": "Neuložené změny ladění detekce pohybu {{camera}}",
"improveContrast": {
"title": "Zlepšit Kontrast",
"desc": "Zlepšit kontrast pro tmavé scény Výchozí: ON"
@@ -607,9 +664,9 @@
"toast": {
"success": "Nastavení detekce pohybu bylo uloženo."
},
- "title": "Ladič Detekce Pohybu",
+ "title": "Ladění detekce pohybu",
"desc": {
- "documentation": "Přečtěte si příručku Ladiče Detekce Pohybu",
+ "documentation": "Přečtěte si příručku Ladění detekce pohybu",
"title": "Frigate používá detekci pohybu jako první kontrolu k ověření, zda se ve snímku děje něco, co stojí za další analýzu pomocí detekce objektů."
},
"Threshold": {
@@ -624,7 +681,7 @@
"enrichments": {
"title": "Nastavení obohacení",
"faceRecognition": {
- "title": "Rozpoznání Obličeje",
+ "title": "Rozpoznání obličeje",
"desc": "Rozpoznávání obličeje umožňuje přiřadit lidem jména a po rozpoznání jejich obličeje. Frigate přiřadí jméno osoby jako podštítek. Tyto informace jsou zahrnuty v uživatelském rozhraní, filtrech a také v oznámeních.",
"readTheDocumentation": "Přečtěte si Dokumentaci",
"modelSize": {
@@ -651,11 +708,11 @@
"alreadyInProgress": "Přeindexování je již spuštěno.",
"error": "Chyba spuštění přeindexování: {{errorMessage}}"
},
- "title": "Sémantické Vyhledávání",
+ "title": "Sémantické vyhledávání",
"desc": "Sémantické vyhledávání ve Frigate umožňuje najít sledované objekty v rámci vašich zkontrolovaných položek pomocí samotného obrázku, uživatelem definovaného textového popisu nebo automaticky generovaného popisu.",
"readTheDocumentation": "Přečtěte si Dokumentaci",
"modelSize": {
- "label": "Velikost Modelu",
+ "label": "Velikost modelu",
"desc": "Velikost modelu použitého pro vkládání sémantického vyhledávání.",
"small": {
"title": "malý",
@@ -669,7 +726,7 @@
},
"birdClassification": {
"desc": "Klasifikace ptáků identifikuje známé ptáky pomocí kvantovaného modelu Tensorflow. Po rozpoznání známého ptáka se jeho běžný název přidá jako sub_label. Tato informace je zahrnuta v uživatelském rozhraní, filtrech a také v oznámeních.",
- "title": "Klasifikace Ptáků"
+ "title": "Klasifikace ptáků"
},
"unsavedChanges": "Neuložené změny nastavení Obohacení",
"licensePlateRecognition": {
@@ -682,5 +739,162 @@
"success": "Nastavení Obohacení uloženo. Restartujte Frigate aby se změny aplikovaly.",
"error": "Chyba ukládání změn konfigurace: {{errorMessage}}"
}
+ },
+ "triggers": {
+ "documentTitle": "Spouštěče",
+ "management": {
+ "title": "Správa spouštěčů",
+ "desc": "Spravovat spouštěče pro {{camera}}. Použít typ miniatury ke spuštění u miniatur podobných vybranému sledovanému objektu a typ popisu ke spuštění u popisů podobných zadanému textu."
+ },
+ "addTrigger": "Přidat spouštěč",
+ "table": {
+ "name": "Jméno",
+ "type": "Typ",
+ "content": "Obsah",
+ "threshold": "Prahová hodnota",
+ "actions": "Akce",
+ "noTriggers": "Pro tuto kameru nejsou nakonfigurovány žádné spouštěče.",
+ "edit": "Upravit",
+ "deleteTrigger": "Smazat spouštěč",
+ "lastTriggered": "Naposledy spuštěno"
+ },
+ "type": {
+ "thumbnail": "Miniatura",
+ "description": "Popis"
+ },
+ "actions": {
+ "alert": "Označit jako upozornění",
+ "notification": "Odeslat oznámení"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Vytvořit spouštěč",
+ "desc": "Vytvořit spouštěč pro kameru {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Upravit spouštěč",
+ "desc": "Upravit nastavení spouštěče na kameře {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Odstranit spouštěč",
+ "desc": "Opravdu chcete odstranit spouštěč {{triggerName}}? Tuto akci nelze vrátit zpět."
+ },
+ "form": {
+ "name": {
+ "title": "Název",
+ "placeholder": "Zadejte název spouštěče",
+ "error": {
+ "minLength": "Název musí mít alespoň 2 znaky.",
+ "invalidCharacters": "Jméno může obsahovat pouze písmena, číslice, podtržítka a pomlčky.",
+ "alreadyExists": "Spouštěč s tímto názvem již pro tuto kameru existuje."
+ }
+ },
+ "enabled": {
+ "description": "Povolit nebo zakázat tento spouštěč"
+ },
+ "type": {
+ "title": "Typ",
+ "placeholder": "Vybrat typ spouštěče"
+ },
+ "content": {
+ "title": "Obsah",
+ "imagePlaceholder": "Vybrat obrázek",
+ "textPlaceholder": "Zadat textový obsah",
+ "imageDesc": "Vybrat obrázek, který spustí tuto akci, když bude detekován podobný obrázek.",
+ "textDesc": "Zadejte text, který spustí tuto akci, když bude zjištěn podobný popis sledovaného objektu.",
+ "error": {
+ "required": "Obsah je povinný."
+ }
+ },
+ "actions": {
+ "title": "Akce",
+ "desc": "Ve výchozím nastavení Frigate odesílá MQTT zprávu pro všechny spouštěče. Zvolte dodatečnou akci, která se má provést, když se tento spouštěč aktivuje.",
+ "error": {
+ "min": "Musí být vybrána alespoň jedna akce."
+ }
+ },
+ "threshold": {
+ "title": "Práh",
+ "error": {
+ "min": "Práh musí být alespoň 0",
+ "max": "Práh musí být nanejvýš 1"
+ }
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Spouštěč {{name}} byl úspěšně vytvořen.",
+ "updateTrigger": "Spouštěč {{name}} byl úspěšně aktualizován.",
+ "deleteTrigger": "Spouštěč {{name}} byl úspěšně smazán."
+ },
+ "error": {
+ "createTriggerFailed": "Nepodařilo se vytvořit spouštěč: {{errorMessage}}",
+ "updateTriggerFailed": "Nepodařilo se aktualizovat spouštěč: {{errorMessage}}",
+ "deleteTriggerFailed": "Nepodařilo se smazat spouštěč: {{errorMessage}}"
+ }
+ }
+ },
+ "roles": {
+ "addRole": "Přidat roli",
+ "table": {
+ "role": "Role",
+ "cameras": "Kamery",
+ "actions": "Akce",
+ "noRoles": "Nebyly nalezeny žádné vlastní role.",
+ "editCameras": "Upravit kamery",
+ "deleteRole": "Smazat roli"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Role {{role}} byla úspěšně vytvořena",
+ "updateCameras": "Kamery byly aktualizovány pro roli {{role}}",
+ "deleteRole": "Role {{role}} byla úspěšně smazána",
+ "userRolesUpdated_one": "{{count}} uživatel(ů) přiřazených k této roli bylo aktualizováno na „Divák“, který má přístup ke všem kamerám.",
+ "userRolesUpdated_few": "",
+ "userRolesUpdated_other": ""
+ },
+ "error": {
+ "createRoleFailed": "Nepodařilo se vytvořit roli: {{errorMessage}}",
+ "updateCamerasFailed": "Nepodařilo se aktualizovat kamery: {{errorMessage}}",
+ "deleteRoleFailed": "Nepodařilo se smazat roli: {{errorMessage}}",
+ "userUpdateFailed": "Nepodařilo se aktualizovat role uživatele: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Vytvořit novou roli",
+ "desc": "Přidejte novou roli a určete oprávnění k přístupu ke kamerám."
+ },
+ "deleteRole": {
+ "title": "Smazat roli",
+ "warn": "Opravdu chcete smazat roli {{role}}?",
+ "deleting": "Mazání...",
+ "desc": "Tuto akci nelze vrátit zpět. Role bude trvale smazána a všichni uživatelé s touto rolí budou přeřazeni do role „Divák“, která poskytne přístup ke všem kamerám."
+ },
+ "form": {
+ "role": {
+ "title": "Název role",
+ "placeholder": "Zadejte název role",
+ "desc": "Povolena jsou pouze písmena, čísla, tečky a podtržítka.",
+ "roleIsRequired": "Název role je povinný",
+ "roleOnlyInclude": "Název role smí obsahovat pouze písmena, čísla, . nebo _",
+ "roleExists": "Role s tímto názvem již existuje."
+ },
+ "cameras": {
+ "title": "Kamery",
+ "desc": "Vyberte kamery, ke kterým má tato role přístup. Je vyžadována alespoň jedna kamera.",
+ "required": "Musí být vybrána alespoň jedna kamera."
+ }
+ },
+ "editCameras": {
+ "desc": "Aktualizujte přístup ke kamerám pro roli {{role}}.",
+ "title": "Upravit kamery role"
+ }
+ },
+ "management": {
+ "title": "Správa role diváka",
+ "desc": "Spravujte vlastní role diváků a jejich oprávnění k přístupu ke kamerám pro tuto instanci Frigate."
+ }
}
}
diff --git a/web/public/locales/cs/views/system.json b/web/public/locales/cs/views/system.json
index fca20986f4..f920a21595 100644
--- a/web/public/locales/cs/views/system.json
+++ b/web/public/locales/cs/views/system.json
@@ -52,7 +52,8 @@
"detectIsSlow": "{{detect}} je pomalé ({{speed}} ms)",
"detectIsVerySlow": "{{detect}} je velmi pomalé ({{speed}} ms)",
"detectHighCpuUsage": "{{camera}} má vysoké využití CPU detekcemi ({{detectAvg}} %)",
- "ffmpegHighCpuUsage": "{{camera}} má vyské využití CPU FFmpegem ({{ffmpegAvg}}%)"
+ "ffmpegHighCpuUsage": "{{camera}} má vyské využití CPU FFmpegem ({{ffmpegAvg}}%)",
+ "shmTooLow": "Alokace /dev/shm ({{total}} MB) by měla být zvýšena alespoň na {{min}} MB."
},
"enrichments": {
"embeddings": {
@@ -77,7 +78,8 @@
"title": "Detektory",
"inferenceSpeed": "Detekční rychlost",
"memoryUsage": "Detektor využití paměti",
- "cpuUsage": "Detektor využití CPU"
+ "cpuUsage": "Detektor využití CPU",
+ "cpuUsageInformation": "CPU používané při přípravě vstupních a výstupních dat do/z detekčních modelů. Tato hodnota neměří využití inferenčních operací, ani v případě použití GPU nebo akcelerátoru."
},
"hardwareInfo": {
"title": "Informace o hardware",
@@ -138,7 +140,11 @@
"tips": "Tato hodnota uvádí celkové využití disku záznamy uloženými v databázi Frigate. Frigate nesleduje využití disku ostatními soubory na vašem disku."
},
"title": "Úložiště",
- "overview": "Přehled"
+ "overview": "Přehled",
+ "shm": {
+ "title": "přiřazení SHM (sdílené paměti)",
+ "warning": "Nynější velikost SHM činící {{total}}MB je příliš malá. Zvyšte ji alespoň na {{min_shm}}MB."
+ }
},
"lastRefreshed": "Poslední aktualizace: ",
"documentTitle": {
diff --git a/web/public/locales/da/audio.json b/web/public/locales/da/audio.json
index 0967ef424b..81481336e8 100644
--- a/web/public/locales/da/audio.json
+++ b/web/public/locales/da/audio.json
@@ -1 +1,88 @@
-{}
+{
+ "clip_clop": "Klepanie kopyt",
+ "neigh": "Revanie",
+ "cattle": "Hovädzí dobytok",
+ "moo": "Bučanie",
+ "cowbell": "Kravský zvonec",
+ "pig": "Prasa",
+ "speech": "Tale",
+ "bicycle": "Cykel",
+ "car": "Bil",
+ "bellow": "Under",
+ "motorcycle": "Motorcykel",
+ "whispering": "Hvisker",
+ "bus": "Bus",
+ "laughter": "Latter",
+ "train": "Tog",
+ "boat": "Båd",
+ "crying": "Græder",
+ "tambourine": "Tambourin",
+ "marimba": "Marimba",
+ "trumpet": "Trumpet",
+ "trombone": "Trombone",
+ "violin": "Violin",
+ "flute": "Fløjte",
+ "saxophone": "Saxofon",
+ "clarinet": "Klarinet",
+ "harp": "Harpe",
+ "bell": "Klokke",
+ "harmonica": "Harmonika",
+ "bagpipes": "Sækkepibe",
+ "didgeridoo": "Didgeridoo",
+ "jazz": "Jazz",
+ "opera": "Opera",
+ "dubstep": "Dubstep",
+ "blues": "Blues",
+ "song": "Sang",
+ "lullaby": "Vuggevise",
+ "wind": "Vind",
+ "thunderstorm": "Tordenvejr",
+ "thunder": "Torden",
+ "water": "Vand",
+ "rain": "Regn",
+ "raindrop": "Regndråbe",
+ "waterfall": "Vandfald",
+ "waves": "Bølger",
+ "fire": "Ild",
+ "vehicle": "Køretøj",
+ "sailboat": "Sejlbåd",
+ "rowboat": "Robåd",
+ "motorboat": "Motorbåd",
+ "ship": "Skib",
+ "ambulance": "Ambulance",
+ "helicopter": "Helikopter",
+ "skateboard": "Skateboard",
+ "chainsaw": "Motorsav",
+ "door": "Dør",
+ "doorbell": "Dørklokke",
+ "slam": "Smæk",
+ "knock": "Bank",
+ "squeak": "Knirke",
+ "dishes": "Tallerkener",
+ "cutlery": "Bestik",
+ "sink": "Håndvask",
+ "bathtub": "Badekar",
+ "toothbrush": "Tandbørste",
+ "zipper": "Lynlås",
+ "coin": "Mønt",
+ "scissors": "Saks",
+ "typewriter": "Skrivemaskine",
+ "alarm": "Alarm",
+ "telephone": "Telefon",
+ "ringtone": "Ringetone",
+ "siren": "Sirene",
+ "foghorn": "Tågehorn",
+ "whistle": "Fløjte",
+ "clock": "Ur",
+ "printer": "Printer",
+ "camera": "Kamera",
+ "tools": "Værktøj",
+ "hammer": "Hammer",
+ "drill": "Bore",
+ "explosion": "Eksplosion",
+ "fireworks": "Nytårskrudt",
+ "babbling": "Pludren",
+ "yell": "Råb",
+ "whoop": "Jubel",
+ "snicker": "Smålatter"
+}
diff --git a/web/public/locales/da/common.json b/web/public/locales/da/common.json
index b0bbd3d5f8..dbf6ff2d3c 100644
--- a/web/public/locales/da/common.json
+++ b/web/public/locales/da/common.json
@@ -1,6 +1,6 @@
{
"time": {
- "untilForTime": "Indtil{{time}}",
+ "untilForTime": "Indtil {{time}}",
"untilForRestart": "Indtil Frigate genstarter.",
"untilRestart": "Indtil genstart",
"ago": "{{timeAgo}} siden",
@@ -254,5 +254,6 @@
"title": "404",
"desc": "Side ikke fundet"
},
- "selectItem": "Vælg {{item}}"
+ "selectItem": "Vælg {{item}}",
+ "readTheDocumentation": "Læs dokumentationen"
}
diff --git a/web/public/locales/da/components/auth.json b/web/public/locales/da/components/auth.json
index 0967ef424b..ee10182995 100644
--- a/web/public/locales/da/components/auth.json
+++ b/web/public/locales/da/components/auth.json
@@ -1 +1,15 @@
-{}
+{
+ "form": {
+ "user": "Brugernavn",
+ "password": "Kodeord",
+ "login": "Log ind",
+ "errors": {
+ "usernameRequired": "Brugernavn kræves",
+ "passwordRequired": "Kodeord kræves",
+ "loginFailed": "Login fejlede",
+ "unknownError": "Ukendt fejl. Tjek logs.",
+ "rateLimit": "Grænsen for forespørgsler er overskredet. Prøv igen senere."
+ },
+ "firstTimeLogin": "Forsøger du at logge ind for første gang? Loginoplysningerne står i Frigate-loggene."
+ }
+}
diff --git a/web/public/locales/da/components/camera.json b/web/public/locales/da/components/camera.json
index 0967ef424b..769c6cc2a4 100644
--- a/web/public/locales/da/components/camera.json
+++ b/web/public/locales/da/components/camera.json
@@ -1 +1,21 @@
-{}
+{
+ "group": {
+ "label": "Kamera Grupper",
+ "add": "Tilføj Kameragruppe",
+ "edit": "Rediger Kamera Gruppe",
+ "delete": {
+ "label": "Slet kamera gruppe",
+ "confirm": {
+ "title": "Bekræft sletning",
+ "desc": "Er du sikker på at du vil slette kamera gruppen {{name}}?"
+ }
+ },
+ "name": {
+ "label": "Navn",
+ "placeholder": "Indtast et navn…",
+ "errorMessage": {
+ "mustLeastCharacters": "Kameragruppens navn skal være mindst 2 tegn."
+ }
+ }
+ }
+}
diff --git a/web/public/locales/da/components/dialog.json b/web/public/locales/da/components/dialog.json
index 0967ef424b..4d4a85174d 100644
--- a/web/public/locales/da/components/dialog.json
+++ b/web/public/locales/da/components/dialog.json
@@ -1 +1,25 @@
-{}
+{
+ "restart": {
+ "title": "Er du sikker på at du vil genstarte Frigate?",
+ "button": "Genstart",
+ "restarting": {
+ "title": "Frigate genstarter",
+ "button": "Gennemtving genindlæsning nu",
+ "content": "Denne side genindlæses om {{countdown}} sekunder."
+ }
+ },
+ "explore": {
+ "plus": {
+ "submitToPlus": {
+ "label": "Indsend til Frigate+",
+ "desc": "Objekter på steder, du ønsker at undgå, er ikke falske positiver. Hvis du indsender dem som falske positiver, vil det forvirre modellen."
+ },
+ "review": {
+ "question": {
+ "label": "Bekræft denne etiket til Frigate Plus",
+ "ask_a": "Er dette objekt et {{label}}?"
+ }
+ }
+ }
+ }
+}
diff --git a/web/public/locales/da/components/filter.json b/web/public/locales/da/components/filter.json
index 0967ef424b..3d16c1eb1e 100644
--- a/web/public/locales/da/components/filter.json
+++ b/web/public/locales/da/components/filter.json
@@ -1 +1,50 @@
-{}
+{
+ "filter": "Filter",
+ "classes": {
+ "label": "Klasser",
+ "all": {
+ "title": "Alle klasser"
+ },
+ "count_one": "{{count}} Klasse",
+ "count_other": "{{count}} Klasser"
+ },
+ "labels": {
+ "all": {
+ "short": "Labels",
+ "title": "Alle etiketter"
+ },
+ "count_one": "{{count}} Label",
+ "label": "Etiketter"
+ },
+ "zones": {
+ "label": "Zoner",
+ "all": {
+ "title": "Alle zoner",
+ "short": "Zoner"
+ }
+ },
+ "more": "Flere filtre",
+ "sort": {
+ "label": "Sortér",
+ "dateAsc": "Dato (Stigende)",
+ "dateDesc": "Dato (Faldende)",
+ "speedAsc": "Anslået hastighed (Stigende)",
+ "speedDesc": "Anslået hastighed (Faldende)",
+ "relevance": "Relevans"
+ },
+ "dates": {
+ "selectPreset": "Vælg en forudindstilling…",
+ "all": {
+ "title": "Alle datoer",
+ "short": "Datoer"
+ }
+ },
+ "reset": {
+ "label": "Nulstille filtre til standardværdier"
+ },
+ "timeRange": "Tidsinterval",
+ "estimatedSpeed": "Anslået hastighed ({{unit}})",
+ "features": {
+ "hasVideoClip": "Har et videoklip"
+ }
+}
diff --git a/web/public/locales/da/components/icons.json b/web/public/locales/da/components/icons.json
index 0967ef424b..44d71dbe34 100644
--- a/web/public/locales/da/components/icons.json
+++ b/web/public/locales/da/components/icons.json
@@ -1 +1,8 @@
-{}
+{
+ "iconPicker": {
+ "selectIcon": "Vælg et ikon",
+ "search": {
+ "placeholder": "Søg efter ikoner…"
+ }
+ }
+}
diff --git a/web/public/locales/da/components/input.json b/web/public/locales/da/components/input.json
index 0967ef424b..0a8c897169 100644
--- a/web/public/locales/da/components/input.json
+++ b/web/public/locales/da/components/input.json
@@ -1 +1,10 @@
-{}
+{
+ "button": {
+ "downloadVideo": {
+ "label": "Download Video",
+ "toast": {
+ "success": "Din video til gennemgang er begyndt at blive downloadet."
+ }
+ }
+ }
+}
diff --git a/web/public/locales/da/components/player.json b/web/public/locales/da/components/player.json
index 0967ef424b..099369052c 100644
--- a/web/public/locales/da/components/player.json
+++ b/web/public/locales/da/components/player.json
@@ -1 +1,15 @@
-{}
+{
+ "noRecordingsFoundForThisTime": "Ingen optagelser fundet i det angivne tidsrum",
+ "noPreviewFound": "Ingen forhåndsvisning fundet",
+ "cameraDisabled": "Kamera er deaktiveret",
+ "noPreviewFoundFor": "Ingen forhåndsvisning fundet for {{cameraName}}",
+ "submitFrigatePlus": {
+ "title": "Indsend denne frame til Frigate+?",
+ "submit": "Indsend"
+ },
+ "livePlayerRequiredIOSVersion": "iOS 17.1 eller nyere kræves for denne type livestream.",
+ "streamOffline": {
+ "title": "Stream offline",
+ "desc": "Der er ikke modtaget nogen frames på {{cameraName}}-detect-streamen, tjek fejlloggene."
+ }
+}
diff --git a/web/public/locales/da/objects.json b/web/public/locales/da/objects.json
index 0967ef424b..e055dcf4a6 100644
--- a/web/public/locales/da/objects.json
+++ b/web/public/locales/da/objects.json
@@ -1 +1,18 @@
-{}
+{
+ "person": "Person",
+ "bicycle": "Cykel",
+ "car": "Bil",
+ "motorcycle": "Motorcykel",
+ "airplane": "Flyvemaskine",
+ "bus": "Bus",
+ "train": "Tog",
+ "boat": "Båd",
+ "traffic_light": "Trafiklys",
+ "vehicle": "Køretøj",
+ "skateboard": "Skateboard",
+ "door": "Dør",
+ "sink": "Håndvask",
+ "toothbrush": "Tandbørste",
+ "scissors": "Saks",
+ "clock": "Ur"
+}
diff --git a/web/public/locales/da/views/classificationModel.json b/web/public/locales/da/views/classificationModel.json
new file mode 100644
index 0000000000..a3aa81f28e
--- /dev/null
+++ b/web/public/locales/da/views/classificationModel.json
@@ -0,0 +1,18 @@
+{
+ "documentTitle": "Klassifikationsmodeller",
+ "details": {
+ "scoreInfo": "Scoren repræsenterer den gennemsnitlige klassifikationssikkerhed på tværs af alle registreringer af dette objekt.",
+ "unknown": "Ukendt"
+ },
+ "description": {
+ "invalidName": "Ugyldigt navn. Navne må kun indeholde bogstaver, tal, mellemrum, apostroffer, understregninger og bindestreger."
+ },
+ "button": {
+ "deleteClassificationAttempts": "Slet klassifikationsbilleder",
+ "renameCategory": "Omdøb klasse",
+ "deleteCategory": "Slet klasse",
+ "deleteImages": "Slet billeder",
+ "trainModel": "Træn model",
+ "addClassification": "Tilføj klassifikation"
+ }
+}
diff --git a/web/public/locales/da/views/configEditor.json b/web/public/locales/da/views/configEditor.json
index 0967ef424b..ba1d6a715e 100644
--- a/web/public/locales/da/views/configEditor.json
+++ b/web/public/locales/da/views/configEditor.json
@@ -1 +1,10 @@
-{}
+{
+ "documentTitle": "Konfigurationsstyring - Frigate",
+ "copyConfig": "Kopiér konfiguration",
+ "saveAndRestart": "Gem & Genstart",
+ "saveOnly": "Kun gem",
+ "configEditor": "Konfigurationseditor",
+ "safeConfigEditor": "Konfigurationseditor (Sikker tilstand)",
+ "safeModeDescription": "Frigate er i sikker tilstand på grund af en fejl ved validering af konfigurationen.",
+ "confirm": "Afslut uden at gemme?"
+}
diff --git a/web/public/locales/da/views/events.json b/web/public/locales/da/views/events.json
index 0967ef424b..f59b2f3564 100644
--- a/web/public/locales/da/views/events.json
+++ b/web/public/locales/da/views/events.json
@@ -1 +1,16 @@
-{}
+{
+ "alerts": "Alarmer",
+ "detections": "Detekteringer",
+ "motion": {
+ "label": "Bevægelse",
+ "only": "Kun bevægelse"
+ },
+ "allCameras": "Alle kameraer",
+ "timeline": "Tidslinje",
+ "camera": "Kamera",
+ "empty": {
+ "alert": "Der er ingen advarsler at gennemgå",
+ "detection": "Der er ingen registreringer at gennemgå",
+ "motion": "Ingen bevægelsesdata fundet"
+ }
+}
diff --git a/web/public/locales/da/views/explore.json b/web/public/locales/da/views/explore.json
index 0967ef424b..afe962aead 100644
--- a/web/public/locales/da/views/explore.json
+++ b/web/public/locales/da/views/explore.json
@@ -1 +1,29 @@
-{}
+{
+ "documentTitle": "Udforsk - Frigate",
+ "generativeAI": "Generativ AI",
+ "type": {
+ "details": "detaljer",
+ "video": "video"
+ },
+ "objectLifecycle": {
+ "lifecycleItemDesc": {
+ "active": "{{label}} blev aktiv"
+ }
+ },
+ "exploreIsUnavailable": {
+ "embeddingsReindexing": {
+ "startingUp": "Starter…",
+ "estimatedTime": "Estimeret tid tilbage:",
+ "context": "Udforsk kan bruges, når genindekseringen af de sporede objektindlejringer er fuldført.",
+ "finishingShortly": "Afsluttes om lidt",
+ "step": {
+ "thumbnailsEmbedded": "Miniaturer indlejret: "
+ }
+ },
+ "title": "Udforsk er ikke tilgængelig"
+ },
+ "exploreMore": "Udforsk flere {{label}}-objekter",
+ "details": {
+ "timestamp": "Tidsstempel"
+ }
+}
diff --git a/web/public/locales/da/views/exports.json b/web/public/locales/da/views/exports.json
index 0967ef424b..8c5f119c4f 100644
--- a/web/public/locales/da/views/exports.json
+++ b/web/public/locales/da/views/exports.json
@@ -1 +1,12 @@
-{}
+{
+ "documentTitle": "Eksporter - Frigate",
+ "search": "Søg",
+ "deleteExport.desc": "Er du sikker på at du vil slette {{exportName}}?",
+ "editExport": {
+ "title": "Omdøb Eksport",
+ "saveExport": "Gem Eksport",
+ "desc": "Indtast et nyt navn for denne eksport."
+ },
+ "noExports": "Ingen eksporter fundet",
+ "deleteExport": "Slet eksport"
+}
diff --git a/web/public/locales/da/views/faceLibrary.json b/web/public/locales/da/views/faceLibrary.json
index 87f3a3437b..f309e6fa05 100644
--- a/web/public/locales/da/views/faceLibrary.json
+++ b/web/public/locales/da/views/faceLibrary.json
@@ -1,3 +1,19 @@
{
- "selectItem": "Vælg {{item}}"
+ "selectItem": "Vælg {{item}}",
+ "description": {
+ "addFace": "Tilføj en ny samling til ansigtsbiblioteket ved at uploade dit første billede.",
+ "placeholder": "Angiv et navn for bibliotek",
+ "invalidName": "Ugyldigt navn. Navne må kun indeholde bogstaver, tal, mellemrum, apostroffer, understregninger og bindestreger."
+ },
+ "details": {
+ "person": "Person",
+ "timestamp": "Tidsstempel",
+ "unknown": "Ukendt",
+ "scoreInfo": "Scoren er et vægtet gennemsnit af alle ansigtsscorer, vægtet efter ansigtets størrelse på hvert billede."
+ },
+ "documentTitle": "Ansigtsbibliotek - Frigate",
+ "uploadFaceImage": {
+ "title": "Upload ansigtsbillede",
+ "desc": "Upload et billede for at scanne efter ansigter og inkludere det for {{pageToggle}}"
+ }
}
diff --git a/web/public/locales/da/views/live.json b/web/public/locales/da/views/live.json
index 0967ef424b..254539b38e 100644
--- a/web/public/locales/da/views/live.json
+++ b/web/public/locales/da/views/live.json
@@ -1 +1,21 @@
-{}
+{
+ "documentTitle": "Live - Frigate",
+ "documentTitle.withCamera": "{{camera}} - Live - Frigate",
+ "twoWayTalk": {
+ "enable": "Aktivér tovejskommunikation",
+ "disable": "Deaktiver tovejskommunikation"
+ },
+ "cameraAudio": {
+ "enable": "Aktivér kameralyd",
+ "disable": "Deaktivér kamera lyd"
+ },
+ "lowBandwidthMode": "Lavbåndbredde-tilstand",
+ "ptz": {
+ "move": {
+ "clickMove": {
+ "label": "Klik i billedrammen for at centrere kameraet",
+ "enable": "Aktivér klik for at flytte"
+ }
+ }
+ }
+}
diff --git a/web/public/locales/da/views/recording.json b/web/public/locales/da/views/recording.json
index 0967ef424b..4028727aca 100644
--- a/web/public/locales/da/views/recording.json
+++ b/web/public/locales/da/views/recording.json
@@ -1 +1,12 @@
-{}
+{
+ "filter": "Filter",
+ "export": "Eksporter",
+ "calendar": "Kalender",
+ "filters": "Filtere",
+ "toast": {
+ "error": {
+ "endTimeMustAfterStartTime": "Sluttidspunkt skal være efter starttidspunkt",
+ "noValidTimeSelected": "Intet gyldigt tidsinterval valgt"
+ }
+ }
+}
diff --git a/web/public/locales/da/views/search.json b/web/public/locales/da/views/search.json
index 0967ef424b..1cdc1460b0 100644
--- a/web/public/locales/da/views/search.json
+++ b/web/public/locales/da/views/search.json
@@ -1 +1,12 @@
-{}
+{
+ "search": "Søg",
+ "savedSearches": "Gemte Søgninger",
+ "searchFor": "Søg efter {{inputValue}}",
+ "button": {
+ "save": "Gem søgning",
+ "delete": "Slet gemt søgning",
+ "filterInformation": "Filter information",
+ "filterActive": "Filtre aktiv",
+ "clear": "Ryd søgning"
+ }
+}
diff --git a/web/public/locales/da/views/settings.json b/web/public/locales/da/views/settings.json
index 0967ef424b..61fce336f8 100644
--- a/web/public/locales/da/views/settings.json
+++ b/web/public/locales/da/views/settings.json
@@ -1 +1,14 @@
-{}
+{
+ "documentTitle": {
+ "default": "Indstillinger - Frigate",
+ "authentication": "Bruger Indstillinger - Frigate",
+ "camera": "Kamera indstillinger - Frigate",
+ "object": "Debug - Frigate",
+ "cameraManagement": "Administrér kameraer - Frigate",
+ "cameraReview": "Indstillinger for kameragennemgang - Frigate",
+ "enrichments": "Indstillinger for berigelser - Frigate",
+ "masksAndZones": "Maske- og zoneeditor - Frigate",
+ "motionTuner": "Bevægelsesjustering - Frigate",
+ "general": "Brugergrænsefladeindstillinger - Frigate"
+ }
+}
diff --git a/web/public/locales/da/views/system.json b/web/public/locales/da/views/system.json
index 0967ef424b..31d7ac946b 100644
--- a/web/public/locales/da/views/system.json
+++ b/web/public/locales/da/views/system.json
@@ -1 +1,103 @@
-{}
+{
+ "documentTitle": {
+ "cameras": "Kamera Statistik - Frigate",
+ "storage": "Lagrings Statistik - Frigate",
+ "logs": {
+ "frigate": "Frigate Logs - Frigate",
+ "go2rtc": "Go2RTC Logs - Frigate",
+ "nginx": "Nginx Logs - Frigate"
+ },
+ "general": "Generelle statistikker - Frigate",
+ "enrichments": "Beredningsstatistikker - Frigate"
+ },
+ "title": "System",
+ "logs": {
+ "copy": {
+ "label": "Kopier til udklipsholder",
+ "success": "Logs er kopieret til udklipsholder",
+ "error": "Kunne ikke kopiere logs til udklipsholder"
+ },
+ "type": {
+ "label": "Type",
+ "timestamp": "Tidsstempel",
+ "message": "Besked",
+ "tag": "Tag"
+ },
+ "tips": "Logs bliver streamet fra serveren",
+ "toast": {
+ "error": {
+ "fetchingLogsFailed": "Fejl ved indhentning af logs: {{errorMessage}}",
+ "whileStreamingLogs": "Fejl ved streaming af logs: {{errorMessage}}"
+ }
+ },
+ "download": {
+ "label": "Download logs"
+ }
+ },
+ "general": {
+ "title": "Generelt",
+ "hardwareInfo": {
+ "gpuUsage": "GPU forbrug",
+ "gpuMemory": "GPU hukommelse",
+ "gpuEncoder": "GPU indkoder",
+ "gpuDecoder": "GPU afkoder",
+ "title": "Hardware information",
+ "gpuInfo": {
+ "closeInfo": {
+ "label": "Luk GPU information"
+ },
+ "copyInfo": {
+ "label": "Kopier GPU information"
+ },
+ "toast": {
+ "success": "Kopierede GPU information til udklipsholder"
+ }
+ },
+ "npuUsage": "NPU forbrug",
+ "npuMemory": "NPU hukommelse"
+ },
+ "detector": {
+ "title": "Detektorer",
+ "inferenceSpeed": "Detektorinferenshastighed",
+ "temperature": "Detektor temperatur",
+ "cpuUsage": "Detektor CPU forbrug",
+ "cpuUsageInformation": "CPU brugt til at forberede input- og outputdata til/fra detektionsmodeller. Denne værdi måler ikke inferensforbrug, selvom der bruges en GPU eller accelerator.",
+ "memoryUsage": "Detektorhummelsesforbrug"
+ },
+ "otherProcesses": {
+ "title": "Andre processer",
+ "processCpuUsage": "Proces CPU forbrug",
+ "processMemoryUsage": "Proceshukommelsesforbrug"
+ }
+ },
+ "metrics": "System metrikker",
+ "storage": {
+ "title": "Lagring",
+ "overview": "Overblik",
+ "recordings": {
+ "title": "Optagelser",
+ "tips": "Denne værdi repræsenterer den samlede lagerplads, der bruges af optagelserne i Frigates database. Frigate sporer ikke lagerpladsforbruget for alle filer på din disk.",
+ "earliestRecording": "Tidligste optagelse til rådighed:"
+ },
+ "shm": {
+ "title": "SHM (delt hukommelse) tildeling",
+ "warning": "Den nuværende SHM størrelse af {{total}}MB er for lille. Øg den til minimum {{min_shm}}MB."
+ },
+ "cameraStorage": {
+ "title": "Kamera lagring",
+ "camera": "Kamera",
+ "unusedStorageInformation": "Ubrugt lagringsinformation",
+ "storageUsed": "Lagring",
+ "percentageOfTotalUsed": "Procentandel af total",
+ "bandwidth": "Båndbredde",
+ "unused": {
+ "title": "Ubrugt",
+ "tips": "Denne værdi repræsenterer muligvis ikke nøjagtigt den ledige plads, der er tilgængelig for Frigate, hvis du har andre filer gemt på dit drev ud over Frigates optagelser. Frigate sporer ikke lagerforbrug ud over sine optagelser."
+ }
+ }
+ },
+ "cameras": {
+ "title": "Kameraer",
+ "overview": "Overblik"
+ }
+}
diff --git a/web/public/locales/de/audio.json b/web/public/locales/de/audio.json
index 0e0e509355..4b18775014 100644
--- a/web/public/locales/de/audio.json
+++ b/web/public/locales/de/audio.json
@@ -296,7 +296,7 @@
"doorbell": "Türklingel",
"ding-dong": "BimBam",
"sliding_door": "Schiebetür",
- "slam": "Knall",
+ "slam": "zuknallen",
"knock": "Klopfen",
"tap": "Schlag",
"squeak": "Quietschen",
@@ -355,7 +355,7 @@
"shatter": "Zerspringen",
"silence": "Stille",
"environmental_noise": "Umgebungsgeräusch",
- "static": "Rauschen",
+ "static": "Statisch",
"pink_noise": "Rosa Rauschen",
"television": "Fernsehgerät",
"radio": "Radio",
@@ -425,5 +425,79 @@
"sanding": "Schleifen",
"machine_gun": "Maschinengewehr",
"boom": "Dröhnen",
- "field_recording": "Außenaufnahme"
+ "field_recording": "Außenaufnahme",
+ "liquid": "Flüssigkeit",
+ "splash": "Spritzer",
+ "slosh": "Schwenken",
+ "squish": "Quetschen",
+ "drip": "Tropfen",
+ "pour": "Gießen",
+ "trickle": "Tröpfeln",
+ "fill": "Füllen",
+ "spray": "Sprühen",
+ "pump": "Pumpen",
+ "stir": "Umrühren",
+ "boiling": "Köchelnd",
+ "arrow": "Pfeil",
+ "electronic_tuner": "Elektronischer Tuner",
+ "effects_unit": "Effekteinheit",
+ "chorus_effect": "Chorus-Effekt",
+ "sodeling": "Verfilzen",
+ "chird": "Akkord",
+ "change_ringing": "Wechsle RingRing",
+ "shofar": "Schofar",
+ "gush": "sprudeln",
+ "sonar": "Sonar",
+ "whoosh": "Rauschen",
+ "thump": "Ruck",
+ "basketball_bounce": "Basketball Abbraller",
+ "bang": "Knall",
+ "slap": "Ohrfeige",
+ "whack": "verhauen",
+ "smash": "zerschlagen",
+ "breaking": "zerbrechen",
+ "bouncing": "Abbraller",
+ "whip": "Peitsche",
+ "flap": "Lasche",
+ "scratch": "Kratzer",
+ "scrape": "Abfall",
+ "rub": "scheuern",
+ "roll": "rollen",
+ "crushing": "Stauchen",
+ "crumpling": "zerknüllen",
+ "tearing": "Reißen",
+ "beep": "Piep",
+ "ping": "Ping",
+ "ding": "klingeln",
+ "thunk": "dumpfes Geräusch",
+ "clang": "Geklirr",
+ "squeal": "Ausruf",
+ "creak": "Knarren",
+ "rustle": "Geknister",
+ "whir": "schwirren",
+ "clatter": "Geratter",
+ "sizzle": "brutzeln",
+ "clicking": "Klicken",
+ "clickety_clack": "Klappergeräuschen",
+ "rumble": "Grollen",
+ "plop": "plumpsen",
+ "hum": "Brummen",
+ "zing": "Schwung",
+ "boing": "ferderndes Geräusch",
+ "crunch": "knirschendes",
+ "sine_wave": "Sinus Kurve",
+ "harmonic": "harmonisch",
+ "chirp_tone": "Frequenzwobbelung",
+ "pulse": "Takt",
+ "inside": "drinnen",
+ "outside": "draußen",
+ "reverberation": "Widerhall",
+ "echo": "Echo",
+ "noise": "Lärm",
+ "mains_hum": "Netzbrummen",
+ "distortion": "Verzerrung",
+ "sidetone": "Nebengeräusch",
+ "cacophony": "Dissonanz",
+ "throbbing": "Pochen",
+ "vibration": "Vibration"
}
diff --git a/web/public/locales/de/common.json b/web/public/locales/de/common.json
index 8a3eff88c3..532463f550 100644
--- a/web/public/locales/de/common.json
+++ b/web/public/locales/de/common.json
@@ -12,13 +12,13 @@
"24hours": "24 Stunden",
"month_one": "{{time}} Monat",
"month_other": "{{time}} Monate",
- "d": "{{time}} Tag",
+ "d": "{{time}} Tg.",
"day_one": "{{time}} Tag",
"day_other": "{{time}} Tage",
- "m": "{{time}} Minute",
+ "m": "{{time}} Min",
"minute_one": "{{time}} Minute",
"minute_other": "{{time}} Minuten",
- "s": "{{time}} Sekunde",
+ "s": "{{time}}s",
"second_one": "{{time}} Sekunde",
"second_other": "{{time}} Sekunden",
"formattedTimestamp2": {
@@ -37,12 +37,12 @@
"30minutes": "30 Minuten",
"1hour": "1 Stunde",
"lastWeek": "Letzte Woche",
- "h": "{{time}} Stunde",
- "ago": "{{timeAgo}} her",
+ "h": "{{time}} Std.",
+ "ago": "vor {{timeAgo}}",
"untilRestart": "Bis zum Neustart",
"justNow": "Gerade",
"pm": "nachmittags",
- "mo": "{{time}}Monat",
+ "mo": "{{time}} Mon.",
"formattedTimestamp": {
"12hour": "d. MMM, hh:mm:ss aaa",
"24hour": "dd. MMM, hh:mm:ss aaa"
@@ -81,7 +81,10 @@
"formattedTimestampMonthDayYear": {
"12hour": "d. MMM yyyy",
"24hour": "d. MMM yyyy"
- }
+ },
+ "inProgress": "Im Gange",
+ "invalidStartTime": "Ungültige Startzeit",
+ "invalidEndTime": "Ungültige Endzeit"
},
"button": {
"save": "Speichern",
@@ -107,7 +110,7 @@
"off": "AUS",
"reset": "Zurücksetzen",
"copy": "Kopieren",
- "twoWayTalk": "bidirecktionales Gespräch",
+ "twoWayTalk": "Zwei-Wege-Kommunikation",
"exitFullscreen": "Vollbild verlassen",
"unselect": "Selektion aufheben",
"copyCoordinates": "Kopiere Koordinaten",
@@ -118,10 +121,16 @@
"pictureInPicture": "Bild in Bild",
"on": "AN",
"suspended": "Pausierte",
- "unsuspended": "fortsetzen"
+ "unsuspended": "fortsetzen",
+ "continue": "Weiter"
},
"label": {
- "back": "Zurück"
+ "back": "Zurück",
+ "hide": "Verstecke {{item}}",
+ "show": "Zeige {{item}}",
+ "ID": "ID",
+ "none": "Nichts",
+ "all": "Alle"
},
"menu": {
"configurationEditor": "Konfigurationseditor",
@@ -160,7 +169,15 @@
"sk": "Slowakisch",
"yue": "粵語 (Kantonesisch)",
"th": "ไทย (Thailändisch)",
- "ca": "Català (Katalanisch)"
+ "ca": "Català (Katalanisch)",
+ "ur": "اردو (Urdu)",
+ "ptBR": "Portugiesisch (Brasilianisch)",
+ "sr": "Српски (Serbisch)",
+ "sl": "Slovenščina (Slowenisch)",
+ "lt": "Lietuvių (Litauisch)",
+ "bg": "Български (bulgarisch)",
+ "gl": "Galego (Galicisch)",
+ "id": "Bahasa Indonesia (Indonesisch)"
},
"appearance": "Erscheinung",
"theme": {
@@ -168,7 +185,7 @@
"blue": "Blau",
"green": "Grün",
"default": "Standard",
- "nord": "Norden",
+ "nord": "Nord",
"red": "Rot",
"contrast": "Hoher Kontrast",
"highcontrast": "Hoher Kontrast"
@@ -214,7 +231,8 @@
"logout": "Abmelden"
},
"uiPlayground": "Testgebiet für Benutzeroberfläche",
- "export": "Exportieren"
+ "export": "Exportieren",
+ "classification": "Klassifizierung"
},
"unit": {
"speed": {
@@ -224,10 +242,18 @@
"length": {
"feet": "Fuß",
"meters": "Meter"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/Stunde",
+ "mbph": "MB/Stunde",
+ "gbph": "GB/Stunde"
}
},
"toast": {
- "copyUrlToClipboard": "URL in zwischenablage kopiert.",
+ "copyUrlToClipboard": "URL in Zwischenablage kopiert.",
"save": {
"error": {
"title": "Speichern der Konfigurationsänderungen gescheitert: {{errorMessage}}",
@@ -240,7 +266,7 @@
"title": "Rolle",
"admin": "Administrator",
"viewer": "Zuschauer",
- "desc": "Administratoren haben vollen Zugang zu allen funktionen der Frigate Benutzeroberfläche. Zuschauer können nur Kameras betrachten, erkannte Objekte überprüfen und historische Aufnahmen durchsehen."
+ "desc": "Administratoren haben vollen Zugang zu allen Funktionen der Frigate Benutzeroberfläche. Zuschauer können nur Kameras betrachten, erkannte Objekte überprüfen und historische Aufnahmen durchsehen."
},
"pagination": {
"previous": {
@@ -260,9 +286,22 @@
"documentTitle": "Nicht gefunden - Frigate"
},
"selectItem": "Wähle {{item}}",
+ "readTheDocumentation": "Dokumentation lesen",
"accessDenied": {
"desc": "Du hast keine Berechtigung diese Seite anzuzeigen.",
"documentTitle": "Zugang verweigert - Frigate",
"title": "Zugang verweigert"
+ },
+ "information": {
+ "pixels": "{{area}}px"
+ },
+ "field": {
+ "optional": "Optional",
+ "internalID": "Die interne ID, die Frigate in der Konfiguration und Datenbank verwendet"
+ },
+ "list": {
+ "two": "{{0}} und {{1}}",
+ "many": "{{items}}, und {{last}}",
+ "separatorWithSpace": ", "
}
}
diff --git a/web/public/locales/de/components/auth.json b/web/public/locales/de/components/auth.json
index 8cbd1ff8c5..2c4886641d 100644
--- a/web/public/locales/de/components/auth.json
+++ b/web/public/locales/de/components/auth.json
@@ -10,6 +10,7 @@
"unknownError": "Unbekannter Fehler. Prüfe Logs."
},
"user": "Benutzername",
- "password": "Kennwort"
+ "password": "Kennwort",
+ "firstTimeLogin": "Ist dies der erste Loginversuch? Die Zugangsdaten werden in den Frigate Logs angezeigt."
}
}
diff --git a/web/public/locales/de/components/camera.json b/web/public/locales/de/components/camera.json
index fb6f89e743..32874bab61 100644
--- a/web/public/locales/de/components/camera.json
+++ b/web/public/locales/de/components/camera.json
@@ -58,7 +58,8 @@
"desc": "Ändere die Live Stream Optionen für das Dashboard dieser Kameragruppe. Diese Einstellungen sind geräte-/browserspezifisch.",
"stream": "Stream",
"placeholder": "Wähle einen Stream"
- }
+ },
+ "birdseye": "Vogelperspektive"
},
"add": "Kameragruppe hinzufügen",
"cameras": {
diff --git a/web/public/locales/de/components/dialog.json b/web/public/locales/de/components/dialog.json
index cedd1c114b..464db5adff 100644
--- a/web/public/locales/de/components/dialog.json
+++ b/web/public/locales/de/components/dialog.json
@@ -66,7 +66,8 @@
"failed": "Fehler beim Starten des Exports: {{error}}",
"noVaildTimeSelected": "Kein gültiger Zeitraum ausgewählt"
},
- "success": "Export erfolgreich gestartet. Die Datei befindet sich im Ordner /exports."
+ "success": "Export erfolgreich gestartet. Die Datei befindet sich auf der Exportseite.",
+ "view": "Ansicht"
},
"fromTimeline": {
"saveExport": "Export speichern",
@@ -117,7 +118,16 @@
"button": {
"export": "Exportieren",
"markAsReviewed": "Als geprüft markieren",
- "deleteNow": "Jetzt löschen"
+ "deleteNow": "Jetzt löschen",
+ "markAsUnreviewed": "Als ungeprüft markieren"
}
+ },
+ "imagePicker": {
+ "selectImage": "Vorschaubild eines verfolgten Objekts selektieren",
+ "search": {
+ "placeholder": "Nach Label oder Unterlabel suchen..."
+ },
+ "noImages": "Kein Vorschaubild für diese Kamera gefunden",
+ "unknownLabel": "Gespeichertes Triggerbild"
}
}
diff --git a/web/public/locales/de/components/filter.json b/web/public/locales/de/components/filter.json
index a2c7db779a..d593080cd9 100644
--- a/web/public/locales/de/components/filter.json
+++ b/web/public/locales/de/components/filter.json
@@ -101,7 +101,7 @@
"title": "Lade",
"desc": "Wenn das Protokollfenster nach unten gescrollt wird, werden neue Protokolle automatisch geladen, sobald sie hinzugefügt werden."
},
- "disableLogStreaming": "Log des Streams deaktvieren",
+ "disableLogStreaming": "Log des Streams deaktivieren",
"allLogs": "Alle Logs"
},
"trackedObjectDelete": {
@@ -121,6 +121,20 @@
"loadFailed": "Bekannte Nummernschilder konnten nicht geladen werden.",
"loading": "Lade bekannte Nummernschilder…",
"placeholder": "Tippe, um Kennzeichen zu suchen…",
- "selectPlatesFromList": "Wählen eine oder mehrere Kennzeichen aus der Liste aus."
+ "selectPlatesFromList": "Wählen eine oder mehrere Kennzeichen aus der Liste aus.",
+ "selectAll": "Alle wählen",
+ "clearAll": "Alle löschen"
+ },
+ "classes": {
+ "label": "Klassen",
+ "all": {
+ "title": "Alle Klassen"
+ },
+ "count_one": "{{count}} Klasse",
+ "count_other": "{{count}} Klassen"
+ },
+ "attributes": {
+ "label": "Klassifizierungsattribute",
+ "all": "Alle Attribute"
}
}
diff --git a/web/public/locales/de/components/player.json b/web/public/locales/de/components/player.json
index a6b251f017..56a1950539 100644
--- a/web/public/locales/de/components/player.json
+++ b/web/public/locales/de/components/player.json
@@ -24,7 +24,7 @@
"title": "Latenz:",
"value": "{{seconds}} Sekunden",
"short": {
- "title": "Lazenz",
+ "title": "Latenz",
"value": "{{seconds}} s"
}
},
diff --git a/web/public/locales/de/objects.json b/web/public/locales/de/objects.json
index 57fb35617c..f3fdbd3704 100644
--- a/web/public/locales/de/objects.json
+++ b/web/public/locales/de/objects.json
@@ -27,7 +27,7 @@
"donut": "Donut",
"cake": "Kuchen",
"chair": "Stuhl",
- "couch": "Couch",
+ "couch": "Sofa",
"bed": "Bett",
"dining_table": "Esstisch",
"toilet": "Toilette",
diff --git a/web/public/locales/de/views/classificationModel.json b/web/public/locales/de/views/classificationModel.json
new file mode 100644
index 0000000000..217d9df53a
--- /dev/null
+++ b/web/public/locales/de/views/classificationModel.json
@@ -0,0 +1,188 @@
+{
+ "documentTitle": "Klassifizierungsmodelle - Fregatte",
+ "details": {
+ "scoreInfo": "Die Punktzahl gibt die durchschnittliche Konfidenz aller Erkennungen dieses Objekts wieder.",
+ "none": "Keiner",
+ "unknown": "Unbekannt"
+ },
+ "button": {
+ "deleteClassificationAttempts": "Lösche klassifizierte Bilder",
+ "renameCategory": "Klasse umbenennen",
+ "deleteCategory": "Klasse löschen",
+ "deleteImages": "Bilder löschen",
+ "trainModel": "Modell trainieren",
+ "addClassification": "Klassifizierung hinzufügen",
+ "deleteModels": "Modell löschen",
+ "editModel": "Modell bearbeiten"
+ },
+ "tooltip": {
+ "trainingInProgress": "Modell wird gerade trainiert",
+ "noNewImages": "Keine weiteren Bilder zum trainieren. Bitte klassifiziere weitere Bilder im Datensatz.",
+ "noChanges": "Keine Veränderungen des Datensatzes seit dem letzten Training.",
+ "modelNotReady": "Modell ist nicht bereit für das Training"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Klasse gelöscht",
+ "deletedImage": "Bilder gelöscht",
+ "deletedModel_one": "{{count}} Modell erfolgreich gelöscht",
+ "deletedModel_other": "{{count}} Modelle erfolgreich gelöscht",
+ "categorizedImage": "Erfolgreich klassifizierte Bilder",
+ "trainedModel": "Modell erfolgreich trainiert.",
+ "trainingModel": "Modelltraining erfolgreich gestartet.",
+ "updatedModel": "Modellkonfiguration erfolgreich aktualisiert",
+ "renamedCategory": "Klasse erfolgreich in {{name}} umbenannt"
+ },
+ "error": {
+ "deleteImageFailed": "Löschen fehlgeschlagen: {{errorMessage}}",
+ "deleteCategoryFailed": "Löschen der Klasse fehlgeschlagen: {{errorMessage}}",
+ "deleteModelFailed": "Model konnte nicht gelöscht werden: {{errorMessage}}",
+ "trainingFailedToStart": "Modelltraining konnte nicht gestartet werden: {{errorMessage}}",
+ "updateModelFailed": "Aktualisierung des Modells fehlgeschlagen: {{errorMessage}}",
+ "renameCategoryFailed": "Umbenennung der Klasse fehlgeschlagen: {{errorMessage}}",
+ "categorizeFailed": "Bildkategorisierung fehlgeschlagen: {{errorMessage}}",
+ "trainingFailed": "Modelltraining fehlgeschlagen. Details sind in den Frigate-Protokollen zu finden."
+ }
+ },
+ "deleteCategory": {
+ "title": "Klasse löschen",
+ "desc": "Möchten Sie die Klasse {{name}} wirklich löschen? Dadurch werden alle zugehörigen Bilder dauerhaft gelöscht und das Modell muss neu trainiert werden.",
+ "minClassesTitle": "Klasse kann nicht gelöscht werden",
+ "minClassesDesc": "Ein Klassifizierungsmodell benötigt mindestens zwei Klassen. Fügen Sie eine weitere Klasse hinzu, bevor Sie diese löschen."
+ },
+ "deleteModel": {
+ "title": "Klassifizierungsmodell löschen",
+ "single": "Möchten Sie {{name}} wirklich löschen? Dadurch werden alle zugehörigen Daten, einschließlich Bilder und Trainingsdaten, dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.",
+ "desc_one": "Möchtest du {{count}} Modell wirklich löschen? Dadurch werden alle zugehörigen Daten, einschließlich Bilder und Trainingsdaten, dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.",
+ "desc_other": "Möchtest du {{count}} Modelle wirklich löschen? Dadurch werden alle zugehörigen Daten, einschließlich Bilder und Trainingsdaten, dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden."
+ },
+ "edit": {
+ "title": "Klassifikationsmodell bearbeiten",
+ "descriptionState": "Bearbeite die Klassen für dieses Zustandsklassifikationsmodell. Änderungen erfordern erneutes Trainieren des Modells.",
+ "descriptionObject": "Bearbeite den Objekttyp und Klassifizierungstyp für dieses Objektklassifikationsmodell.",
+ "stateClassesInfo": "Hinweis: Die Änderung der Statusklassen erfordert ein erneutes Trainieren des Modells mit den aktualisierten Klassen."
+ },
+ "deleteDatasetImages": {
+ "title": "Datensatz Bilder löschen",
+ "desc_one": "Bist du sicher, dass {{count}} Bild von {{dataset}} gelöscht werden sollen? Diese Aktion kann nicht rückgängig gemacht werden und erfordert ein erneutes Trainieren des Modells.",
+ "desc_other": "Bist du sicher, dass {{count}} Bilder von {{dataset}} gelöscht werden sollen? Diese Aktion kann nicht rückgängig gemacht werden und erfordert ein erneutes Trainieren des Modells."
+ },
+ "deleteTrainImages": {
+ "title": "Trainingsbilder löschen",
+ "desc_one": "Bist du sicher, dass du {{count}} Bild löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden.",
+ "desc_other": "Bist du sicher, dass du {{count}} Bilder löschen möchten? Diese Aktion kann nicht rückgängig gemacht werden."
+ },
+ "renameCategory": {
+ "title": "Klasse umbenennen",
+ "desc": "Neuen Namen für {{name}} eingeben. Das Modell muss neu trainiert werden, damit die Änderungen wirksam werden."
+ },
+ "description": {
+ "invalidName": "Ungültiger Name. Namen dürfen nur Buchstaben, Zahlen, Leerzeichen, Apostrophe, Unterstriche und Bindestriche enthalten."
+ },
+ "train": {
+ "title": "Neue Klassifizierungen",
+ "titleShort": "frisch",
+ "aria": "Neue Klassifizierungen auswählen"
+ },
+ "categories": "Klassen",
+ "createCategory": {
+ "new": "Neue Klasse erstellen"
+ },
+ "categorizeImageAs": "Bild klassifizieren als:",
+ "categorizeImage": "Bild klassifizieren",
+ "menu": {
+ "objects": "Objekte",
+ "states": "Zustände"
+ },
+ "noModels": {
+ "object": {
+ "title": "Keine Objektklassifikationsmodelle",
+ "description": "Erstelle ein benutzerdefiniertes Modell, um erkannte Objekte zu klassifizieren.",
+ "buttonText": "Objektmodell erstellen"
+ },
+ "state": {
+ "title": "Keine Statusklassifizierungsmodelle",
+ "description": "Erstellen Sie ein benutzerdefiniertes Modell, um Zustandsänderungen in bestimmten Kamerabereichen zu überwachen und zu klassifizieren.",
+ "buttonText": "Zustandsmodell erstellen"
+ }
+ },
+ "wizard": {
+ "title": "Neue Klassifizierung erstellen",
+ "steps": {
+ "nameAndDefine": "Benennen und definieren",
+ "stateArea": "Gebiet",
+ "chooseExamples": "Beispiel auswählen"
+ },
+ "step1": {
+ "description": "Zustandsmodelle überwachen feste Kamerabereiche auf Veränderungen (z. B. Tür offen/geschlossen). Objektmodelle fügen den erkannten Objekten Klassifizierungen hinzu (z. B. bekannte Tiere, Lieferanten usw.).",
+ "name": "Name",
+ "namePlaceholder": "Eingeben Modell Name...",
+ "type": "Typ",
+ "typeState": "Zustand",
+ "typeObject": "Objekt",
+ "objectLabel": "Objekt Bezeichnung",
+ "objectLabelPlaceholder": "Auswahl Objekt Typ...",
+ "classificationType": "Klassifizierungstyp",
+ "classificationTypeTip": "Etwas über Klassifizierungstyp lernen",
+ "classificationTypeDesc": "Unterbezeichnungen fügen dem Objektnamen zusätzlichen Text hinzu (z. B. „Person: UPS“). Attribute sind durchsuchbare Metadaten, die separat in den Objektmetadaten gespeichert sind.",
+ "classificationSubLabel": "Unterlabel",
+ "classificationAttribute": "Merkmal",
+ "classes": "Klasse",
+ "states": "Gebiet",
+ "classesTip": "Über Klassen lernen",
+ "classesStateDesc": "Definieren Sie die verschiedenen Zustände, in denen sich Ihr Kamerabereich befinden kann. Beispiel: „offen” und „geschlossen” für ein Garagentor.",
+ "classesObjectDesc": "Definieren Sie die verschiedenen Kategorien, in die erkannte Objekte klassifiziert werden sollen. Beispiel: „Lieferant“, „Bewohner“, „Fremder“ für die Klassifizierung von Personen.",
+ "classPlaceholder": "Klassenbezeichnung eingeben...",
+ "errors": {
+ "nameRequired": "Modellname ist erforderlich",
+ "nameLength": "Der Modellname darf maximal 64 Zeichen lang sein",
+ "nameOnlyNumbers": "Der Modellname darf nicht nur aus Zahlen bestehen",
+ "classRequired": "Mindestens eine Klasse ist erforderlich",
+ "classesUnique": "Klassenname muss eindeutig sein",
+ "stateRequiresTwoClasses": "Gebietsmodelle erfordern mindestens zwei Klassen",
+ "objectLabelRequired": "Bitte wähle eine Objektbeschriftung",
+ "objectTypeRequired": "Bitte wählen Sie einen Klassifizierungstyp aus",
+ "noneNotAllowed": "Die Klasse „none“ ist nicht zulässig"
+ }
+ },
+ "step2": {
+ "description": "Wählen Sie Kameras aus und legen Sie für jede Kamera den zu überwachenden Bereich fest. Das Modell klassifiziert den Zustand dieser Bereiche.",
+ "cameras": "Kameras",
+ "selectCamera": "Kamera auswählen",
+ "noCameras": "Klick + zum hinzufügen der Kameras",
+ "selectCameraPrompt": "Wählen Sie eine Kamera aus der Liste aus, um ihren Überwachungsbereich festzulegen"
+ },
+ "step3": {
+ "selectImagesPrompt": "Wählen sie alle Bilder mit: {{className}}",
+ "selectImagesDescription": "Klicken Sie auf die Bilder, um sie auszuwählen. Klicken Sie auf „Weiter“, wenn Sie mit diesem Kurs fertig sind.",
+ "allImagesRequired_one": "Bitte klassifizieren Sie alle Bilder. {{count}} Bild verbleibend.",
+ "allImagesRequired_other": "Bitte klassifizieren Sie alle Bilder. {{count}} Bilder verbleiben.",
+ "generating": {
+ "title": "Beispielbilder generieren",
+ "description": "Frigate extrahiert repräsentative Bilder aus Ihren Aufnahmen. Dies kann einen Moment dauern..."
+ },
+ "training": {
+ "title": "Trainingsmodell",
+ "description": "Ihr Modell wird im Hintergrund trainiert. Schließen Sie diesen Dialog, und Ihr Modell wird ausgeführt, sobald das Training abgeschlossen ist."
+ },
+ "retryGenerate": "Generierung wiederholen",
+ "noImages": "Keine Bilder generiert",
+ "classifying": "Klassifizieren und Trainieren...",
+ "trainingStarted": "Training wurde erfolgreich gestartet",
+ "errors": {
+ "noCameras": "Keine Kameras konfiguriert",
+ "noObjectLabel": "Kein Objektlabel ausgewählt",
+ "generateFailed": "Beispiele konnten nicht generiert werden: {{error}}",
+ "generationFailed": "Generierung fehlgeschlagen. Bitte versuchen Sie es erneut.",
+ "classifyFailed": "Bilder konnten nicht klassifiziert werden: {{error}}"
+ },
+ "generateSuccess": "Erfolgreich generierte Beispielbilder",
+ "modelCreated": "Modell erfolgreich erstellt. Verwenden Sie die Ansicht „Aktuelle Klassifizierungen“, um Bilder für fehlende Zustände hinzuzufügen, und trainieren Sie dann das Modell.",
+ "missingStatesWarning": {
+ "title": "Beispiele für fehlende Zustände",
+ "description": "Es wird empfohlen für alle Zustände Beispiele auszuwählen. Das Modell wird erst trainiert, wenn für alle Zustände Bilder vorhanden sind. Fahren Sie fort und verwenden Sie die Ansicht „Aktuelle Klassifizierungen“, um Bilder für die fehlenden Zustände zu klassifizieren. Trainieren Sie anschließend das Modell."
+ }
+ }
+ },
+ "none": "Keiner"
+}
diff --git a/web/public/locales/de/views/configEditor.json b/web/public/locales/de/views/configEditor.json
index 7f975e31b8..86959e1265 100644
--- a/web/public/locales/de/views/configEditor.json
+++ b/web/public/locales/de/views/configEditor.json
@@ -12,5 +12,7 @@
}
},
"documentTitle": "Konfigurationseditor – Frigate",
- "confirm": "Verlassen ohne zu Speichern?"
+ "confirm": "Verlassen ohne zu Speichern?",
+ "safeConfigEditor": "Konfiguration Editor (abgesicherter Modus)",
+ "safeModeDescription": "Frigate ist aufgrund eines Konfigurationsvalidierungsfehlers im abgesicherten Modus."
}
diff --git a/web/public/locales/de/views/events.json b/web/public/locales/de/views/events.json
index 2a38ac0296..1b031af7b2 100644
--- a/web/public/locales/de/views/events.json
+++ b/web/public/locales/de/views/events.json
@@ -34,5 +34,30 @@
"markAsReviewed": "Als geprüft kennzeichnen",
"selected_one": "{{count}} ausgewählt",
"selected_other": "{{count}} ausgewählt",
- "detected": "erkannt"
+ "detected": "erkannt",
+ "suspiciousActivity": "Verdächtige Aktivität",
+ "threateningActivity": "Bedrohliche Aktivität",
+ "zoomIn": "Hereinzoomen",
+ "zoomOut": "Herauszoomen",
+ "detail": {
+ "label": "Detail",
+ "aria": "Detailansicht umschalten",
+ "trackedObject_one": "{{count}} Objekt",
+ "trackedObject_other": "{{count}} Objekte",
+ "noObjectDetailData": "Keine detaillierten Daten des Objekt verfügbar.",
+ "noDataFound": "Keine Detaildaten zur Überprüfung",
+ "settings": "Detailansicht Einstellungen",
+ "alwaysExpandActive": {
+ "desc": "Immer die Objektdetails vom aktivem Überprüfungselement erweitern, sofern verfügbar.",
+ "title": "Immer aktiv erweitern"
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Verfolgter Punkt",
+ "clickToSeek": "Klicke, um zu dieser Zeit zu springen"
+ },
+ "normalActivity": "normal",
+ "needsReview": "benötigt Überprüfung",
+ "securityConcern": "Sicherheitsbedenken",
+ "select_all": "alle"
}
diff --git a/web/public/locales/de/views/explore.json b/web/public/locales/de/views/explore.json
index ee518fc11a..87da740081 100644
--- a/web/public/locales/de/views/explore.json
+++ b/web/public/locales/de/views/explore.json
@@ -17,12 +17,16 @@
"success": {
"updatedSublabel": "Unterkategorie erfolgreich aktualisiert.",
"updatedLPR": "Nummernschild erfolgreich aktualisiert.",
- "regenerate": "Eine neue Beschreibung wurde von {{provider}} angefordert. Je nach Geschwindigkeit des Anbieters kann es einige Zeit dauern, bis die neue Beschreibung generiert ist."
+ "regenerate": "Eine neue Beschreibung wurde von {{provider}} angefordert. Je nach Geschwindigkeit des Anbieters kann es einige Zeit dauern, bis die neue Beschreibung generiert ist.",
+ "audioTranscription": "Die Audio-Transkription wurde erfolgreich angefordert. Je nach Geschwindigkeit Ihres Frigate-Servers kann die Transkription einige Zeit in Anspruch nehmen.",
+ "updatedAttributes": "Attribute erfolgreich aktualisiert."
},
"error": {
"regenerate": "Der Aufruf von {{provider}} für eine neue Beschreibung ist fehlgeschlagen: {{errorMessage}}",
"updatedSublabelFailed": "Untekategorie konnte nicht aktualisiert werden: {{errorMessage}}",
- "updatedLPRFailed": "Aktualisierung des Kennzeichens fehlgeschlagen: {{errorMessage}}"
+ "updatedLPRFailed": "Aktualisierung des Kennzeichens fehlgeschlagen: {{errorMessage}}",
+ "audioTranscription": "Die Anforderung der Audio Transkription ist fehlgeschlagen: {{errorMessage}}",
+ "updatedAttributesFailed": "Attribute konnten nicht aktualisiert werden: {{errorMessage}}"
}
}
},
@@ -55,7 +59,7 @@
},
"description": {
"label": "Beschreibung",
- "placeholder": "Beschreibund des verfolgten Objekts",
+ "placeholder": "Beschreibung des verfolgten Objekts",
"aiTips": "Frigate wird erst dann eine Beschreibung vom generativen KI-Anbieter anfordern, wenn der Lebenszyklus des verfolgten Objekts beendet ist."
},
"expandRegenerationMenu": "Erneuerungsmenü erweitern",
@@ -67,7 +71,15 @@
},
"snapshotScore": {
"label": "Schnappschuss Bewertung"
- }
+ },
+ "score": {
+ "label": "Ergebnis"
+ },
+ "editAttributes": {
+ "title": "Attribute bearbeiten",
+ "desc": "Wählen Sie Klassifizierungsattribute für dieses {{label}} aus"
+ },
+ "attributes": "Klassifizierungsattribute"
},
"documentTitle": "Erkunde - Frigate",
"generativeAI": "Generative KI",
@@ -153,7 +165,9 @@
"details": "Details",
"video": "Video",
"object_lifecycle": "Objekt-Lebenszyklus",
- "snapshot": "Snapshot"
+ "snapshot": "Snapshot",
+ "thumbnail": "Vorschaubild",
+ "tracking_details": "Nachverfolgungs-Details"
},
"itemMenu": {
"downloadSnapshot": {
@@ -182,12 +196,34 @@
},
"deleteTrackedObject": {
"label": "Dieses verfolgte Objekt löschen"
+ },
+ "audioTranscription": {
+ "aria": "Audio Transkription anfordern",
+ "label": "Transkribieren"
+ },
+ "addTrigger": {
+ "aria": "Einen Trigger für dieses verfolgte Objekt hinzufügen",
+ "label": "Trigger hinzufügen"
+ },
+ "viewTrackingDetails": {
+ "label": "Details zum Verfolgen anzeigen",
+ "aria": "Details zum Verfolgen anzeigen"
+ },
+ "showObjectDetails": {
+ "label": "Objektpfad anzeigen"
+ },
+ "hideObjectDetails": {
+ "label": "Objektpfad verbergen"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Bereinigte Momentaufnahme herunterladen",
+ "aria": "Bereinigte Momentaufnahme herunterladen"
}
},
"dialog": {
"confirmDelete": {
"title": "Löschen bestätigen",
- "desc": "Beim Löschen dieses verfolgten Objekts werden der Schnappschuss, alle gespeicherten Einbettungen und alle zugehörigen Objektlebenszykluseinträge entfernt. Aufgezeichnetes Filmmaterial dieses verfolgten Objekts in der Verlaufsansicht wird NICHT gelöscht.
Sind Sie sicher, dass Sie fortfahren möchten?"
+ "desc": "Beim Löschen dieses verfolgten Objekts werden der Schnappschuss, alle gespeicherten Einbettungen und alle zugehörigen Verfolgungsdetails entfernt. Aufgezeichnetes Filmmaterial dieses verfolgten Objekts in der Verlaufsansicht wird NICHT gelöscht.
Sind Sie sicher, dass Sie fortfahren möchten?"
}
},
"searchResult": {
@@ -197,11 +233,68 @@
"error": "Das verfolgte Objekt konnte nicht gelöscht werden: {{errorMessage}}"
}
},
- "tooltip": "Entspricht {{type}} bei {{confidence}}%"
+ "tooltip": "Entspricht {{type}} bei {{confidence}}%",
+ "previousTrackedObject": "Vorheriges verfolgtes Objekt",
+ "nextTrackedObject": "Nächstes verfolgtes Objekt"
},
"noTrackedObjects": "Keine verfolgten Objekte gefunden",
"fetchingTrackedObjectsFailed": "Fehler beim Abrufen von verfolgten Objekten: {{errorMessage}}",
"trackedObjectsCount_one": "{{count}} verfolgtes Objekt ",
"trackedObjectsCount_other": "{{count}} verfolgte Objekte ",
- "exploreMore": "Erkunde mehr {{label}} Objekte"
+ "exploreMore": "Erkunde mehr {{label}} Objekte",
+ "aiAnalysis": {
+ "title": "KI-Analyse"
+ },
+ "concerns": {
+ "label": "Bedenken"
+ },
+ "trackingDetails": {
+ "noImageFound": "Kein Bild mit diesem Zeitstempel gefunden.",
+ "createObjectMask": "Objekt-Maske erstellen",
+ "scrollViewTips": "Klicke, um die relevanten Momente aus dem Lebenszyklus dieses Objektes zu sehen.",
+ "lifecycleItemDesc": {
+ "visible": "{{label}} erkannt",
+ "entered_zone": "{{label}} betrat {{zones}}",
+ "active": "{{label}} wurde aktiv",
+ "stationary": "{{label}} wurde stationär",
+ "attribute": {
+ "faceOrLicense_plate": "{{attribute}} erkannt für {{label}}",
+ "other": "{{label}} erkannt als {{attribute}}"
+ },
+ "gone": "{{label}} hat sich entfernt",
+ "heard": "{{label}} wurde gehört",
+ "external": "{{label}} erkannt",
+ "header": {
+ "zones": "Zonen",
+ "ratio": "Verhältnis",
+ "area": "Bereich",
+ "score": "Bewertung"
+ }
+ },
+ "annotationSettings": {
+ "title": "Anmerkungseinstellungen",
+ "showAllZones": {
+ "title": "Zeige alle Zonen",
+ "desc": "Immer Zonen auf Rahmen anzeigen, in die Objekte eingetreten sind."
+ },
+ "offset": {
+ "label": "Anmerkungen Versatz",
+ "desc": "Diese Daten stammen aus dem Erkennungsfeed der Kamera, werden jedoch über Bilder aus dem Aufzeichnungsfeed gelegt. Es ist unwahrscheinlich, dass beide Streams perfekt synchron sind. Daher stimmen der Begrenzungsrahmen und das Filmmaterial nicht vollständig überein. Mit dieser Einstellung lassen sich die Anmerkungen zeitlich nach vorne oder hinten verschieben, um sie besser an das aufgezeichnete Filmmaterial anzupassen.",
+ "millisecondsToOffset": "Millisekunden, um Erkennungs-Anmerkungen zu verschieben. Standard: 0",
+ "tips": "Verringere den Wert, wenn die Videowiedergabe den Boxen und Wegpunkten voraus ist, und erhöhe den Wert, wenn die Videowiedergabe hinter ihnen zurückbleibt. Dieser Wert kann negativ sein.",
+ "toast": {
+ "success": "Der Anmerkungs-Offset für {{camera}} wurde in der Konfigurationsdatei gespeichert."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Vorherige Anzeige",
+ "next": "Nächste Anzeige"
+ },
+ "title": "Verfolgungsdetails",
+ "adjustAnnotationSettings": "Anmerkungseinstellungen anpassen",
+ "autoTrackingTips": "Die Positionen der Begrenzungsrahmen sind bei Kameras mit automatischer Verfolgung ungenau.",
+ "count": "{{first}} von {{second}}",
+ "trackedPoint": "Verfolgter Punkt"
+ }
}
diff --git a/web/public/locales/de/views/exports.json b/web/public/locales/de/views/exports.json
index 2fb729cc29..c3bae1239b 100644
--- a/web/public/locales/de/views/exports.json
+++ b/web/public/locales/de/views/exports.json
@@ -13,5 +13,11 @@
"error": {
"renameExportFailed": "Umbenennen des Exports fehlgeschlagen: {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "shareExport": "Export teilen",
+ "downloadVideo": "Video herunterladen",
+ "editName": "Name ändern",
+ "deleteExport": "Export löschen"
}
}
diff --git a/web/public/locales/de/views/faceLibrary.json b/web/public/locales/de/views/faceLibrary.json
index 960c555db1..e69114b50f 100644
--- a/web/public/locales/de/views/faceLibrary.json
+++ b/web/public/locales/de/views/faceLibrary.json
@@ -1,7 +1,7 @@
{
"description": {
"placeholder": "Gib einen Name für diese Kollektion ein",
- "addFace": "Anleitung für das Hinzufügen einer neuen Kollektion zur Gesichtsbibliothek.",
+ "addFace": "Füge der Gesichtsbibliothek eine neue Sammlung hinzu, indem ein Bild hinzufügst.",
"invalidName": "Ungültiger Name. Namen dürfen nur Buchstaben, Zahlen, Leerzeichen, Apostrophe, Unterstriche und Bindestriche enthalten."
},
"details": {
@@ -22,14 +22,14 @@
"title": "Kollektion erstellen",
"new": "Lege ein neues Gesicht an",
"desc": "Erstelle eine neue Kollektion",
- "nextSteps": "Um eine solide Grundlage zu bilden:
Benutze den Trainieren Tab, um Bilder für jede erkannte Person auszuwählen und zu trainieren.
Konzentriere dich für gute Ergebnisse auf Frontalfotos; vermeide Bilder zu Trainingszwecken, bei denen Gesichter aus einem Winkel erfasst wurden.
"
+ "nextSteps": "Um eine solide Grundlage zu bilden:
Benutze den \"Aktuelle Erkennungen\" Tab, um Bilder für jede erkannte Person auszuwählen und zu trainieren.
Konzentriere dich für gute Ergebnisse auf Frontalfotos; vermeide Bilder zu Trainingszwecken, bei denen Gesichter aus einem Winkel erfasst wurden.
"
},
"documentTitle": "Gesichtsbibliothek - Frigate",
"selectItem": "Wähle {{item}}",
"selectFace": "Wähle Gesicht",
"imageEntry": {
"dropActive": "Ziehe das Bild hierher…",
- "dropInstructions": "Ziehe ein Bild hier her oder klicke um eines auszuwählen",
+ "dropInstructions": "Ziehe ein Bild hier her, füge es ein oder klicke um eines auszuwählen",
"maxSize": "Maximale Größe: {{size}} MB",
"validation": {
"selectImage": "Bitte wähle ein Bild aus."
@@ -44,9 +44,10 @@
"deleteFace": "Lösche Gesicht"
},
"train": {
- "title": "Trainiere",
- "aria": "Wähle Training",
- "empty": "Es gibt keine aktuellen Versuche zurGesichtserkennung"
+ "title": "Neueste Erkennungen",
+ "aria": "Wähle aktuelle Erkennungen",
+ "empty": "Es gibt keine aktuellen Versuche zur Gesichtserkennung",
+ "titleShort": "frisch"
},
"deleteFaceLibrary": {
"title": "Lösche Name",
@@ -64,7 +65,7 @@
"deletedName_other": "{{count}} Gesichter wurden erfolgreich gelöscht.",
"addFaceLibrary": "{{name}} wurde erfolgreich in die Gesichtsbibliothek aufgenommen!",
"trainedFace": "Gesicht erfolgreich trainiert.",
- "updatedFaceScore": "Gesichtsbewertung erfolgreich aktualisiert.",
+ "updatedFaceScore": "Gesichtsbewertung erfolgreich auf {{name}} ({{score}}) aktualisiert.",
"renamedFace": "Gesicht erfolgreich in {{name}} umbenannt"
},
"error": {
diff --git a/web/public/locales/de/views/live.json b/web/public/locales/de/views/live.json
index 318c2b720c..e0bf9955e4 100644
--- a/web/public/locales/de/views/live.json
+++ b/web/public/locales/de/views/live.json
@@ -30,16 +30,24 @@
},
"zoom": {
"in": {
- "label": "PTZ-Kamera vergrößern"
+ "label": "PTZ-Kamera rein zoomen"
},
"out": {
- "label": "PTZ-Kamera herauszoomen"
+ "label": "PTZ-Kamera heraus zoomen"
}
},
- "presets": "PTZ-Kameravoreinstellungen",
+ "presets": "PTZ-Kamera Voreinstellungen",
"frame": {
"center": {
- "label": "Klicken Sie in den Rahmen, um die PTZ-Kamera zu zentrieren"
+ "label": "Klicke in den Rahmen, um die PTZ-Kamera zu zentrieren"
+ }
+ },
+ "focus": {
+ "in": {
+ "label": "PTZ Kamera hinein fokussieren"
+ },
+ "out": {
+ "label": "PTZ Kamera hinaus fokussieren"
}
}
},
@@ -54,8 +62,8 @@
"enable": "Aufzeichnung aktivieren"
},
"snapshots": {
- "enable": "Snapshots aktivieren",
- "disable": "Snapshots deaktivieren"
+ "enable": "Schnappschüsse aktivieren",
+ "disable": "Schnappschüsse deaktivieren"
},
"autotracking": {
"disable": "Autotracking deaktivieren",
@@ -66,7 +74,7 @@
"disable": "Stream-Statistiken ausblenden"
},
"manualRecording": {
- "title": "On-Demand Aufzeichnung",
+ "title": "On-Demand",
"showStats": {
"label": "Statistiken anzeigen",
"desc": "Aktivieren Sie diese Option, um Stream-Statistiken als Overlay über dem Kamera-Feed anzuzeigen."
@@ -80,7 +88,7 @@
"desc": "Aktivieren Sie diese Option, um das Streaming fortzusetzen, wenn der Player ausgeblendet ist.",
"label": "Im Hintergrund abspielen"
},
- "tips": "Starten Sie ein manuelles Ereignis basierend auf den Aufzeichnung Aufbewahrungseinstellungen dieser Kamera.",
+ "tips": "Lade einen Sofort-Schnappschuss herunter oder starte ein manuelles Ereignis basierend auf den Aufbewahrungseinstellungen für Aufzeichnungen dieser Kamera.",
"debugView": "Debug-Ansicht",
"start": "On-Demand Aufzeichnung starten",
"failedToEnd": "Die manuelle On-Demand Aufzeichnung konnte nicht beendet werden."
@@ -100,7 +108,7 @@
"tips": "Ihr Gerät muss die Funktion unterstützen und WebRTC muss für die bidirektionale Kommunikation konfiguriert sein.",
"tips.documentation": "Dokumentation lesen ",
"available": "Für diesen Stream ist eine Zwei-Wege-Sprechfunktion verfügbar",
- "unavailable": "Für diesen Stream ist keine Zwei-Wege-Kommunikation möglich."
+ "unavailable": "Zwei-Wege-Kommunikation für diesen Stream nicht verfügbar"
},
"lowBandwidth": {
"tips": "Die Live-Ansicht befindet sich aufgrund von Puffer- oder Stream-Fehlern im Modus mit geringer Bandbreite.",
@@ -110,6 +118,9 @@
"playInBackground": {
"tips": "Aktivieren Sie diese Option, um das Streaming fortzusetzen, wenn der Player ausgeblendet ist.",
"label": "Im Hintergrund abspielen"
+ },
+ "debug": {
+ "picker": "Stream Auswahl nicht verfügbar im Debug Modus. Die Debug Ansicht nutzt immer den Stream, welcher der Rolle zugewiesen ist."
}
},
"effectiveRetainMode": {
@@ -146,7 +157,8 @@
"cameraEnabled": "Kamera aktiviert",
"autotracking": "Autotracking",
"audioDetection": "Audioerkennung",
- "title": "{{camera}} Einstellungen"
+ "title": "{{camera}} Einstellungen",
+ "transcription": "Audio Transkription"
},
"history": {
"label": "Historisches Filmmaterial zeigen"
@@ -154,5 +166,24 @@
"audio": "Audio",
"suspend": {
"forTime": "Aussetzen für: "
+ },
+ "transcription": {
+ "enable": "Live Audio Transkription einschalten",
+ "disable": "Live Audio Transkription ausschalten"
+ },
+ "noCameras": {
+ "title": "Keine Kameras konfiguriert",
+ "description": "Beginne indem du eine Kamera anschließt.",
+ "buttonText": "Kamera hinzufügen",
+ "restricted": {
+ "title": "Keine Kamera verfügbar",
+ "description": "Sie haben keine Berechtigung, Kameras in dieser Gruppe anzuzeigen."
+ }
+ },
+ "snapshot": {
+ "takeSnapshot": "Sofort-Schnappschuss herunterladen",
+ "noVideoSource": "Keine Video-Quelle für Schnappschuss verfügbar.",
+ "captureFailed": "Die Aufnahme des Schnappschusses ist fehlgeschlagen.",
+ "downloadStarted": "Schnappschuss Download gestartet."
}
}
diff --git a/web/public/locales/de/views/search.json b/web/public/locales/de/views/search.json
index c3800ab28b..0b6424f420 100644
--- a/web/public/locales/de/views/search.json
+++ b/web/public/locales/de/views/search.json
@@ -25,7 +25,8 @@
"max_speed": "Maximalgeschwindigkeit",
"time_range": "Zeitraum",
"labels": "Labels",
- "sub_labels": "Unterlabels"
+ "sub_labels": "Unterlabels",
+ "attributes": "Attribute"
},
"toast": {
"error": {
@@ -58,7 +59,7 @@
"title": "Wie man Textfilter verwendet"
},
"searchType": {
- "thumbnail": "Miniaturansicht",
+ "thumbnail": "Vorschaubild",
"description": "Beschreibung"
}
},
diff --git a/web/public/locales/de/views/settings.json b/web/public/locales/de/views/settings.json
index 29c5d6ece4..f577ae774a 100644
--- a/web/public/locales/de/views/settings.json
+++ b/web/public/locales/de/views/settings.json
@@ -3,26 +3,32 @@
"default": "Einstellungen - Frigate",
"authentication": "Authentifizierungseinstellungen – Frigate",
"camera": "Kameraeinstellungen - Frigate",
- "masksAndZones": "Masken- und Zonen-Editor – Frigate",
+ "masksAndZones": "Masken- und Zoneneditor – Frigate",
"object": "Debug - Frigate",
- "general": "Allgemeine Einstellungen – Frigate",
+ "general": "UI-Einstellungen - Frigate",
"frigatePlus": "Frigate+ Einstellungen – Frigate",
"classification": "Klassifizierungseinstellungen – Frigate",
- "motionTuner": "Bewegungstuner – Frigate",
- "notifications": "Benachrichtigungs-Einstellungen",
- "enrichments": "Erweiterte Statistiken - Frigate"
+ "motionTuner": "Bewegungserkennungs-Optimierer – Frigate",
+ "notifications": "Benachrichtigungseinstellungen",
+ "enrichments": "Erweiterte Statistiken - Frigate",
+ "cameraManagement": "Kameras verwalten - Frigate",
+ "cameraReview": "Kameraeinstellungen prüfen - Frigate"
},
"menu": {
"ui": "Benutzeroberfläche",
"cameras": "Kameraeinstellungen",
"classification": "Klassifizierung",
"masksAndZones": "Maskierungen / Zonen",
- "motionTuner": "Bewegungstuner",
+ "motionTuner": "Bewegungserkennungs-Optimierer",
"debug": "Debug",
"frigateplus": "Frigate+",
"users": "Benutzer",
"notifications": "Benachrichtigungen",
- "enrichments": "Verbesserungen"
+ "enrichments": "Erkennungsfunktionen",
+ "triggers": "Auslöser",
+ "roles": "Rollen",
+ "cameraManagement": "Verwaltung",
+ "cameraReview": "Überprüfung"
},
"dialog": {
"unsavedChanges": {
@@ -35,7 +41,7 @@
"noCamera": "Keine Kamera"
},
"general": {
- "title": "Allgemeine Einstellungen",
+ "title": "Einstellungen der Benutzeroberfläche",
"liveDashboard": {
"title": "Live Übersicht",
"playAlertVideos": {
@@ -45,6 +51,14 @@
"automaticLiveView": {
"desc": "Wechsle automatisch zur Live Ansicht der Kamera, wenn einen Aktivität erkannt wurde. Wenn du diese Option deaktivierst, werden die statischen Kamerabilder auf der Liveübersicht nur einmal pro Minute aktualisiert.",
"label": "Automatische Live Ansicht"
+ },
+ "displayCameraNames": {
+ "label": "Immer Namen der Kamera anzeigen",
+ "desc": "Kamerabezeichnung immer im einem Chip im Live-View-Dashboard für mehrere Kameras anzeigen."
+ },
+ "liveFallbackTimeout": {
+ "label": "Live Player Ausfallzeitlimit",
+ "desc": "Wenn der hochwertige Live-Stream einer Kamera nicht verfügbar ist, wechsle nach dieser Anzahl von Sekunden in den Modus für geringe Bandbreite. Standard: 3."
}
},
"storedLayouts": {
@@ -68,7 +82,7 @@
"title": "Kalender",
"firstWeekday": {
"label": "Erster Wochentag",
- "desc": "Der Tag, an dem die Wochen des Review Kalenders beginnen.",
+ "desc": "Der Tag, an dem die Wochen des Überprüfungs-Kalenders beginnen.",
"sunday": "Sonntag",
"monday": "Montag"
}
@@ -178,7 +192,45 @@
"detections": "Erkennungen ",
"desc": "Aktiviere/deaktiviere Benachrichtigungen und Erkennungen für diese Kamera vorübergehend, bis Frigate neu gestartet wird. Wenn deaktiviert, werden keine neuen Überprüfungseinträge erstellt. "
},
- "title": "Kamera-Einstellungen"
+ "title": "Kameraeinstellungen",
+ "object_descriptions": {
+ "title": "Generative KI-Objektbeschreibungen",
+ "desc": "Generativen KI-Objektbeschreibungen für diese Kamera vorübergehend aktivieren/deaktivieren. Wenn diese Funktion deaktiviert ist, werden keine KI-generierten Beschreibungen für verfolgte Objekte auf dieser Kamera angefordert."
+ },
+ "cameraConfig": {
+ "ffmpeg": {
+ "roles": "Rollen",
+ "pathRequired": "Stream-Pfad ist erforderlich",
+ "path": "Stream-Pfad",
+ "inputs": "Eingabe Streams",
+ "pathPlaceholder": "rtsp://...",
+ "rolesRequired": "Mindestens eine Rolle ist erforderlich",
+ "rolesUnique": "Jede Rolle (Audio, Erkennung, Aufzeichnung) kann nur einem Stream zugewiesen werden",
+ "addInput": "Eingabe-Stream hinzufügen",
+ "removeInput": "Eingabe-Stream entfernen",
+ "inputsRequired": "Mindestens ein Eingabe-Stream ist erforderlich"
+ },
+ "enabled": "Aktiviert",
+ "namePlaceholder": "z. B., Vorder_Türe",
+ "nameInvalid": "Der Name der Kamera darf nur Buchstaben, Zahlen, Unterstriche oder Bindestriche enthalten",
+ "name": "Kamera Name",
+ "edit": "Kamera bearbeiten",
+ "add": "Kamera hinzufügen",
+ "description": "Kameraeinstellungen einschließlich Stream-Eingänge und Rollen konfigurieren.",
+ "nameRequired": "Kameraname ist erforderlich",
+ "toast": {
+ "success": "Kamera {{cameraName}} erfolgreich gespeichert"
+ },
+ "nameLength": "Der Name der Kamera darf maximal 24 Zeichen lang sein."
+ },
+ "backToSettings": "Zurück zu den Kamera Einstellungen",
+ "selectCamera": "Kamera wählen",
+ "editCamera": "Kamera bearbeiten:",
+ "addCamera": "Neue Kamera hinzufügen",
+ "review_descriptions": {
+ "desc": "Generativen KI-Objektbeschreibungen für diese Kamera vorübergehend aktivieren/deaktivieren. Wenn diese Funktion deaktiviert ist, werden keine KI-generierten Beschreibungen für Überprüfungselemente auf dieser Kamera angefordert.",
+ "title": "Beschreibungen zur generativen KI-Überprüfung"
+ }
},
"masksAndZones": {
"form": {
@@ -188,7 +240,8 @@
"alreadyExists": "Für diese Kamera existiert bereits eine Zone mit diesem Namen.",
"mustBeAtLeastTwoCharacters": "Der Zonenname muss aus mindestens 2 Zeichen bestehen.",
"mustNotBeSameWithCamera": "Der Zonenname darf nicht mit dem Kameranamen identisch sein.",
- "mustNotContainPeriod": "Der Zonenname darf keine Punkte enthalten."
+ "mustNotContainPeriod": "Der Zonenname darf keine Punkte enthalten.",
+ "mustHaveAtLeastOneLetter": "Der Name der Zone muss mindestens einen Buchstaben enthalten."
}
},
"loiteringTime": {
@@ -245,7 +298,7 @@
"zones": {
"edit": "Zone bearbeiten",
"toast": {
- "success": "Die Zone ({{zoneName}}) wurde gespeichert. Starten Sie Frigate neu, um die Änderungen zu übernehmen."
+ "success": "Die Zone ({{zoneName}}) wurde gespeichert."
},
"desc": {
"documentation": "Dokumentation",
@@ -267,7 +320,7 @@
"name": {
"title": "Name",
"inputPlaceHolder": "Geben Sie einen Namen ein…",
- "tips": "Der Name muss aus mindestens 2 Zeichen bestehen und sollte nicht den Namen einer Kamera oder anderen Zone entsprechen."
+ "tips": "Die Bezeichnung muss mindestens 2 Zeichen lang sein, mindestens einen Buchstaben enthalten und darf nicht die Bezeichnung einer Kamera oder einer anderen Zone sein."
},
"objects": {
"title": "Objekte",
@@ -308,8 +361,8 @@
"clickDrawPolygon": "Klicke, um ein Polygon auf dem Bild zu zeichnen.",
"toast": {
"success": {
- "noName": "Bewegungsmaske wurde gespeichert. Starte Frigate neu, um die Änderungen zu übernehmen.",
- "title": "{{polygonName}} wurde gespeichert. Starte Frigate neu, um die Änderungen zu übernehmen."
+ "noName": "Bewegungsmaske wurde gespeichert.",
+ "title": "{{polygonName}} wurde gespeichert."
}
},
"add": "Neue Bewegungsmaske",
@@ -329,8 +382,8 @@
"documentTitle": "Objektmaske bearbeiten – Frigate",
"toast": {
"success": {
- "noName": "Objektmaske wurde gespeichert. Starte Frigate neu, um die Änderungen zu übernehmen.",
- "title": "{{polygonName}} wurde gespeichert. Starte Frigate neu, um die Änderungen zu übernehmen."
+ "noName": "Objektmaske wurde gespeichert.",
+ "title": "{{polygonName}} wurde gespeichert."
}
},
"desc": {
@@ -397,7 +450,20 @@
"desc": "Einen Rahmen für den an den Objektdetektor übermittelten Interessensbereich anzeigen"
},
"title": "Debug",
- "desc": "Die Debug-Ansicht zeigt eine Echtzeitansicht der verfolgten Objekte und ihrer Statistiken. Die Objektliste zeigt eine zeitverzögerte Zusammenfassung der erkannten Objekte."
+ "desc": "Die Debug-Ansicht zeigt eine Echtzeitansicht der verfolgten Objekte und ihrer Statistiken. Die Objektliste zeigt eine zeitverzögerte Zusammenfassung der erkannten Objekte.",
+ "paths": {
+ "title": "Pfade",
+ "desc": "Wichtige Punkte des Pfads des verfolgten Objekts anzeigen",
+ "tips": "
Pfade
Linien und Kreise zeigen wichtige Punkte an, an denen sich das verfolgte Objekt während seines Lebenszyklus bewegt hat.
"
+ },
+ "openCameraWebUI": "Web-Benutzeroberfläche von {{camera}} öffnen",
+ "audio": {
+ "title": "Audio",
+ "noAudioDetections": "Keine Audioerkennungen",
+ "score": "Punktzahl",
+ "currentRMS": "Aktueller Effektivwert",
+ "currentdbFS": "Aktuelle dbFS"
+ }
},
"motionDetectionTuner": {
"Threshold": {
@@ -420,11 +486,11 @@
"desc": "Der Wert für die Konturfläche wird verwendet, um zu bestimmen, welche Gruppen von veränderten Pixeln als Bewegung gelten. Standard: 10"
},
"title": "Bewegungserkennungs-Optimierer",
- "unsavedChanges": "Nicht gespeicherte Änderungen am Bewegungstuner ({{camera}})"
+ "unsavedChanges": "Nicht gespeicherte Änderungen im Bewegungserkennungs-Optimierer ({{camera}})"
},
"users": {
"addUser": "Benutzer hinzufügen",
- "updatePassword": "Passwort aktualisieren",
+ "updatePassword": "Passwort zurücksetzen",
"toast": {
"success": {
"deleteUser": "Benutzer {{user}} wurde erfolgreich gelöscht",
@@ -448,7 +514,7 @@
"changeRole": "Benutzerrolle ändern",
"deleteUser": "Benutzer löschen",
"noUsers": "Keine Benutzer gefunden.",
- "password": "Passwort",
+ "password": "Passwort zurücksetzen",
"username": "Benutzername",
"actions": "Aktionen",
"role": "Rolle"
@@ -475,7 +541,16 @@
},
"match": "Passwörter stimmen überein",
"title": "Passwort",
- "placeholder": "Passwort eingeben"
+ "placeholder": "Passwort eingeben",
+ "requirements": {
+ "title": "Passwort Anforderungen:",
+ "length": "Mindestens 8 Zeichen",
+ "uppercase": "Mindestens ein Großbuchstabe",
+ "digit": "Mindestens eine Ziffer",
+ "special": "Mindestens ein Sonderzeichen (!@#$%^&*(),.?\":{}|<>)"
+ },
+ "show": "Passwort anzeigen",
+ "hide": "Verberge Passwort"
},
"newPassword": {
"title": "Neues Passwort",
@@ -485,7 +560,11 @@
}
},
"usernameIsRequired": "Benutzername ist erforderlich",
- "passwordIsRequired": "Passwort benötigt"
+ "passwordIsRequired": "Passwort benötigt",
+ "currentPassword": {
+ "title": "Aktuelles Passwort",
+ "placeholder": "Gib Dein aktuelles Passwort ein"
+ }
},
"changeRole": {
"desc": "Berechtigungen für {{username}} aktualisieren",
@@ -494,7 +573,8 @@
"admin": "Admin",
"adminDesc": "Voller Zugang zu allen Funktionen.",
"viewer": "Betrachter",
- "viewerDesc": "Nur auf Live-Dashboards, Überprüfung, Erkundung und Exporte beschränkt."
+ "viewerDesc": "Nur auf Live-Dashboards, Überprüfung, Erkundung und Exporte beschränkt.",
+ "customDesc": "Benutzerdefinierte Rolle mit spezifischem Kamerazugriff."
},
"title": "Benutzerrolle ändern",
"select": "Wähle eine Rolle"
@@ -515,7 +595,12 @@
"setPassword": "Passwort festlegen",
"desc": "Erstelle ein sicheres Passwort, um dieses Konto zu schützen.",
"cannotBeEmpty": "Das Passwort darf nicht leer sein",
- "doNotMatch": "Die Passwörter sind nicht identisch"
+ "doNotMatch": "Die Passwörter sind nicht identisch",
+ "currentPasswordRequired": "Aktuelles Passwort wird benötigt",
+ "incorrectCurrentPassword": "Aktuelles Passwort ist falsch",
+ "passwordVerificationFailed": "Passwort konnte nicht überprüft werden",
+ "multiDeviceWarning": "Alle anderen Geräte, auf denen Sie angemeldet sind, müssen sich innerhalb von {{refresh_time}} erneut anmelden.",
+ "multiDeviceAdmin": "Sie können auch alle Benutzer dazu zwingen, sich sofort erneut zu authentifizieren, indem Sie Ihr JWT-Geheimnis ändern."
}
}
},
@@ -620,21 +705,21 @@
},
"enrichments": {
"birdClassification": {
- "title": "Vogel Klassifizierung",
- "desc": "Die Vogelklassifizierung identifiziert bekannte Vögel mithilfe eines quantisierten Tensorflow-Modells. Wenn ein bekannter Vogel erkannt wird, wird sein allgemeiner Name als sub_label hinzugefügt. Diese Informationen sind in der Benutzeroberfläche, in Filtern und in Benachrichtigungen enthalten."
+ "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",
"unsavedChanges": "Ungesicherte geänderte Verbesserungseinstellungen",
"semanticSearch": {
"reindexNow": {
"confirmDesc": "Sind Sie sicher, dass Sie alle verfolgten Objekteinbettungen neu indizieren wollen? Dieser Prozess läuft im Hintergrund, kann aber Ihre CPU auslasten und eine gewisse Zeit in Anspruch nehmen. Sie können den Fortschritt auf der Seite Explore verfolgen.",
- "label": "Jetzt neu indizien",
+ "label": "Jetzt neu indizieren",
"desc": "Bei der Neuindizierung werden die Einbettungen für alle verfolgten Objekte neu generiert. Dieser Prozess läuft im Hintergrund und kann je nach Anzahl der verfolgten Objekte Ihre CPU auslasten und eine gewisse Zeit in Anspruch nehmen.",
- "confirmTitle": "Neuinszenierung bestätigen",
+ "confirmTitle": "Neuindizierung bestätigen",
"confirmButton": "Neuindizierung",
"success": "Die Neuindizierung wurde erfolgreich gestartet.",
"alreadyInProgress": "Die Neuindizierung ist bereits im Gange.",
- "error": "Neuindizierung konnte nicht gestartet werden: {{errorMessage}}"
+ "error": "Die Neuindizierung konnte nicht gestartet werden: {{errorMessage}}"
},
"modelSize": {
"small": {
@@ -645,7 +730,7 @@
"desc": "Die Größe des für die Einbettung der semantischen Suche verwendeten Modells.",
"large": {
"title": "groß",
- "desc": "Bei der Verwendung von groß wird das gesamte Jina-Modell verwendet und automatisch auf der GPU ausgeführt, falls zutreffend."
+ "desc": "Bei der Verwendung von groß wird das gesamte Jina-Modell verwendet und automatisch auf der GPU ausgeführt, falls möglich."
}
},
"title": "Semantische Suche",
@@ -654,10 +739,10 @@
},
"faceRecognition": {
"title": "Gesichtserkennung",
- "desc": "Die Gesichtserkennung ermöglicht es, Personen Namen zuzuweisen, und wenn ihr Gesicht erkannt wird, ordnet Frigate den Namen der Person als Untertitel zu. Diese Informationen sind in der Benutzeroberfläche, den Filtern und in den Benachrichtigungen enthalten.",
+ "desc": "Die Gesichtserkennung ermöglicht es, Personen Namen zuzuweisen. Wenn ein Gesicht erkannt wird, ordnet Frigate den Namen der Person als Untertitel zu. Diese Informationen sind in der Benutzeroberfläche, den Filtern und in den Benachrichtigungen enthalten.",
"readTheDocumentation": "Lies die Dokumentation",
"modelSize": {
- "label": "Modell Größe",
+ "label": "Modellgröße",
"desc": "Die Größe des für die Gesichtserkennung verwendeten Modells.",
"small": {
"title": "klein",
@@ -679,5 +764,538 @@
"success": "Die Einstellungen für die Verbesserungen wurden gespeichert. Starten Sie Frigate neu, um Ihre Änderungen zu übernehmen.",
"error": "Konfigurationsänderungen konnten nicht gespeichert werden: {{errorMessage}}"
}
+ },
+ "triggers": {
+ "documentTitle": "Auslöser",
+ "management": {
+ "title": "Auslöser",
+ "desc": "Auslöser für {{camera}} verwalten. Verwenden Sie den Vorschaubild Typ, um ähnliche Vorschaubilder wie das ausgewählte verfolgte Objekt auszulösen, und den Beschreibungstyp, um ähnliche Beschreibungen wie den von Ihnen angegebenen Text auszulösen."
+ },
+ "addTrigger": "Auslöser hinzufügen",
+ "table": {
+ "name": "Name",
+ "type": "Typ",
+ "content": "Inhalt",
+ "threshold": "Schwellenwert",
+ "actions": "Aktionen",
+ "noTriggers": "Für diese Kamera sind keine Auslöser konfiguriert.",
+ "edit": "Bearbeiten",
+ "deleteTrigger": "Auslöser löschen",
+ "lastTriggered": "Zuletzt ausgelöst"
+ },
+ "type": {
+ "thumbnail": "Vorschaubild",
+ "description": "Beschreibung"
+ },
+ "actions": {
+ "alert": "Als Alarm markieren",
+ "notification": "Benachrichtigung senden",
+ "sub_label": "Unterlabel hinzufügen",
+ "attribute": "Attribut hinzufügen"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Auslöser erstellen",
+ "desc": "Auslöser für Kamera {{camera}} erstellen"
+ },
+ "editTrigger": {
+ "title": "Auslöser bearbeiten",
+ "desc": "Einstellungen für Kamera {{camera}} bearbeiten"
+ },
+ "deleteTrigger": {
+ "title": "Auslöser löschen",
+ "desc": "Sind Sie sicher, dass Sie den Auslöser {{triggerName}} löschen wollen? Dies kann nicht Rückgängig gemacht werden."
+ },
+ "form": {
+ "name": {
+ "title": "Name",
+ "placeholder": "Benennen Sie diesen Auslöser",
+ "error": {
+ "minLength": "Der Name muss mindestens 2 Zeichen lang sein.",
+ "invalidCharacters": "Der Name darf nur Buchstaben, Zahlen, Unterstriche und Bindestriche enthalten.",
+ "alreadyExists": "Ein Auslöser mit diesem Namen existiert bereits für diese Kamera."
+ },
+ "description": "Geben Sie einen eindeutigen Namen oder eine Beschreibung ein, um diesen Auslöser zu identifizieren"
+ },
+ "enabled": {
+ "description": "Diesen Auslöser aktivieren oder deaktivieren"
+ },
+ "type": {
+ "title": "Typ",
+ "placeholder": "Auslöser Typ wählen",
+ "description": "Auslösen, wenn eine ähnliche Beschreibung eines verfolgten Objekts erkannt wird",
+ "thumbnail": "Auslösen, wenn eine ähnliche Miniaturansicht eines verfolgten Objekts erkannt wird"
+ },
+ "content": {
+ "title": "Inhalt",
+ "imagePlaceholder": "Miniaturansicht auswählen",
+ "textPlaceholder": "Inhaltstext eingeben",
+ "imageDesc": "Es werden nur die letzten 100 Miniaturansichten angezeigt. Wenn Sie die gewünschte Miniaturansicht nicht finden können, überprüfen Sie bitte frühere Objekte in „Explore“ und richten Sie dort über das Menü einen Trigger ein.",
+ "textDesc": "Einen Text eingeben, um diese Aktion auszulösen, wenn eine ähnliche Beschreibung eines verfolgten Objekts erkannt wird.",
+ "error": {
+ "required": "Inhalt ist erforderlich."
+ }
+ },
+ "threshold": {
+ "title": "Schwellenwert",
+ "error": {
+ "min": "Schwellenwert muss mindestens 0 sein",
+ "max": "Schwellenwert darf höchstens 1 sein"
+ },
+ "desc": "Legen Sie den Ähnlichkeitsschwellenwert für diesen Trigger fest. Ein höherer Schwellenwert bedeutet, dass eine größere Übereinstimmung erforderlich ist, um den Trigger auszulösen."
+ },
+ "actions": {
+ "title": "Aktionen",
+ "desc": "Standardmäßig sendet Frigate für alle Trigger eine MQTT-Nachricht. Unterbezeichnungen fügen den Triggernamen zur Objektbezeichnung hinzu. Attribute sind durchsuchbare Metadaten, die separat in den Metadaten des verfolgten Objekts gespeichert werden.",
+ "error": {
+ "min": "Mindesten eine Aktion muss ausgewählt sein."
+ }
+ },
+ "friendly_name": {
+ "title": "Nutzerfreundlicher Name",
+ "placeholder": "Benenne oder beschreibe diesen Auslöser",
+ "description": "Ein optionaler nutzerfreundlicher Name oder eine Beschreibung für diesen Auslöser."
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Auslöser {{name}} erfolgreich erstellt.",
+ "updateTrigger": "Auslöser {{name}} erfolgreich aktualisiert.",
+ "deleteTrigger": "Auslöser {{name}} erfolgreich gelöscht."
+ },
+ "error": {
+ "createTriggerFailed": "Auslöser konnte nicht erstellt werden: {{errorMessage}}",
+ "updateTriggerFailed": "Auslöser könnte nicht aktualisiert werden: {{errorMessage}}",
+ "deleteTriggerFailed": "Auslöser konnte nicht gelöscht werden: {{errorMessage}}"
+ }
+ },
+ "semanticSearch": {
+ "title": "Semantische Suche ist deaktiviert",
+ "desc": "Semantische Suche muss aktiviert sein um Auslöser nutzen zu können."
+ },
+ "wizard": {
+ "title": "Auslöser erstellen",
+ "step1": {
+ "description": "Konfigurieren Sie die Grundeinstellungen für Ihren Auslöser."
+ },
+ "step2": {
+ "description": "Legen Sie den Inhalt fest, der diese Aktion auslöst."
+ },
+ "step3": {
+ "description": "Konfigurieren Sie den Schwellenwert und die Aktionen für diesen Trigger."
+ },
+ "steps": {
+ "nameAndType": "Name und Typ",
+ "configureData": "Daten konfigurieren",
+ "thresholdAndActions": "Schwellenwert und Maßnahmen"
+ }
+ }
+ },
+ "roles": {
+ "dialog": {
+ "form": {
+ "cameras": {
+ "required": "Mindestens eine Kamera muss ausgewählt werden.",
+ "title": "Kameras",
+ "desc": "Wählen Sie die Kameras aus, auf die diese Rolle Zugriff hat. Mindestens eine Kamera ist erforderlich."
+ },
+ "role": {
+ "title": "Rolle Name",
+ "placeholder": "Rollen Name eingeben",
+ "desc": "Es sind nur Buchstaben, Zahlen, Punkte und Unterstriche zulässig.",
+ "roleIsRequired": "Rollen Name ist erforderlich",
+ "roleOnlyInclude": "Der Rollenname darf nur Buchstaben, Zahlen, . oder _ enthalten",
+ "roleExists": "Eine Rolle mit diesem Namen existiert bereits."
+ }
+ },
+ "createRole": {
+ "title": "Neue Rolle erstellen",
+ "desc": "Fügen Sie eine neue Rolle hinzu und legen Sie die Berechtigungen für den Kamerazugriff fest."
+ },
+ "editCameras": {
+ "title": "Rollenkameras bearbeiten",
+ "desc": "Aktualisieren Sie den Kamerazugriff für die Rolle {{role}}."
+ },
+ "deleteRole": {
+ "title": "Rolle löschen",
+ "desc": "Diese Aktion kann nicht rückgängig gemacht werden. Dadurch wird die Rolle dauerhaft gelöscht und allen Benutzern mit dieser Rolle die Rolle „Betrachter“ zugewiesen, die dann Zugriff auf alle Kameras erhält.",
+ "warn": "Möchten Sie {{role}} wirklich löschen?",
+ "deleting": "Lösche..."
+ }
+ },
+ "management": {
+ "title": "Zuschauer Rollenverwaltung",
+ "desc": "Verwalten Sie benutzerdefinierte Zuschauerrollen und ihre Kamerazugriffsberechtigungen für diese Frigate-Instanz."
+ },
+ "addRole": "Rolle hinzufügen",
+ "table": {
+ "role": "Rolle",
+ "cameras": "Kameras",
+ "actions": "Aktionen",
+ "noRoles": "Keine benutzerdefinierten Rollen gefunden.",
+ "editCameras": "Kameras bearbeiten",
+ "deleteRole": "Rolle löschen"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Rolle {{role}} erfolgreich erstellt",
+ "updateCameras": "Kameras für Rolle {{role}} aktualisiert",
+ "deleteRole": "Rolle {{role}} erfolgreich gelöscht",
+ "userRolesUpdated_one": "{{count}} Benutzer, denen diese Rolle zugewiesen wurde, wurden auf „Zuschauer“ aktualisiert, der Zugriff auf alle Kameras hat.",
+ "userRolesUpdated_other": "{{count}} Benutzer, denen diese Rollen zugewiesen wurde, wurden auf „Zuschauer“ aktualisiert, der Zugriff auf alle Kameras habem."
+ },
+ "error": {
+ "createRoleFailed": "Fehler beim Erstellen der Rolle: {{errorMessage}}",
+ "updateCamerasFailed": "Aktualisierung der Kameras fehlgeschlagen: {{errorMessage}}",
+ "deleteRoleFailed": "Rolle konnte nicht gelöscht werden: {{errorMessage}}",
+ "userUpdateFailed": "Aktualisierung der Benutzerrollen fehlgeschlagen: {{errorMessage}}"
+ }
+ }
+ },
+ "cameraWizard": {
+ "title": "Kamera hinzufügen",
+ "description": "Folge den Anweisungen unten, um eine neue Kamera zu deiner Frigate-Installation hinzuzufügen.",
+ "steps": {
+ "nameAndConnection": "Name & Verbindung",
+ "streamConfiguration": "Stream Konfiguration",
+ "validationAndTesting": "Überprüfung & Testen",
+ "probeOrSnapshot": "Test oder Momentaufnahme"
+ },
+ "save": {
+ "success": "Neue Kamera {{cameraName}} erfolgreich hinzugefügt.",
+ "failure": "Fehler beim Speichern von {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Auflösung",
+ "video": "Video",
+ "audio": "Audio",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Bitte korrekte Stream-URL eingeben",
+ "testFailed": "Stream Test fehlgeschlagen: {{error}}"
+ },
+ "step1": {
+ "description": "Geben Sie Ihre Kameradaten ein und wählen Sie, ob Sie die Kamera automatisch erkennen lassen oder die Marke manuell auswählen möchten.",
+ "cameraName": "Kameraname",
+ "cameraNamePlaceholder": "z.B. vordere_tür oder Hof Übersicht",
+ "host": "Host/IP Adresse",
+ "port": "Port",
+ "username": "Nutzername",
+ "usernamePlaceholder": "Optional",
+ "password": "Passwort",
+ "passwordPlaceholder": "Optional",
+ "selectTransport": "Transport-Protokoll auswählen",
+ "cameraBrand": "Kamerahersteller",
+ "selectBrand": "Wähle die Kamerahersteller für die URL-Vorlage aus",
+ "customUrl": "Benutzerdefinierte Stream-URL",
+ "brandInformation": "Hersteller Information",
+ "brandUrlFormat": "Für Kameras mit RTSP URL nutze folgendes Format: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://nutzername:passwort@host:port/pfad",
+ "testConnection": "Teste Verbindung",
+ "testSuccess": "Verbindungstest erfolgreich!",
+ "testFailed": "Verbindungstest fehlgeschlagen. Bitte prüfe deine Eingaben und versuche es erneut.",
+ "streamDetails": "Stream Details",
+ "warnings": {
+ "noSnapshot": "Es kann kein Snapshot aus dem konfigurierten Stream abgerufen werden."
+ },
+ "errors": {
+ "brandOrCustomUrlRequired": "Wählen Sie entweder einen Kamerahersteller mit Host/IP aus oder wählen Sie „Andere“ mit einer benutzerdefinierten URL",
+ "nameRequired": "Der Kameraname wird benötigt",
+ "nameLength": "Der Kameraname darf höchsten 64 Zeichen lang sein",
+ "invalidCharacters": "Der Kameraname enthält ungültige Zeichen",
+ "nameExists": "Der Kameraname existiert bereits",
+ "brands": {
+ "reolink-rtsp": "Reolink RTSP wird nicht empfohlen. Es wird empfohlen, http in den Kameraeinstellungen zu aktivieren und den Kamera-Assistenten neu zu starten."
+ },
+ "customUrlRtspRequired": "Benutzerdefinierte URLs müssen mit „rtsp://“ beginnen. Für Nicht-RTSP-Kamerastreams ist eine manuelle Konfiguration erforderlich."
+ },
+ "docs": {
+ "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
+ },
+ "connectionSettings": "Verbindungseinstellungen",
+ "detectionMethod": "Stream Erkennungsmethode",
+ "onvifPort": "ONVIF Port",
+ "probeMode": "Untersuche Kamera",
+ "detectionMethodDescription": "Suchen Sie die Kamera mit ONVIF (sofern unterstützt), um die URLs der Kamerastreams zu finden, oder wählen Sie manuell die Kameramarke aus, um vordefinierte URLs zu verwenden. Um eine benutzerdefinierte RTSP-URL einzugeben, wählen Sie die manuelle Methode und dann „Andere“.",
+ "onvifPortDescription": "Bei Kameras, die ONVIF unterstützen, ist dies in der Regel 80 oder 8080.",
+ "useDigestAuth": "Digest-Authentifizierung verwenden",
+ "useDigestAuthDescription": "Verwenden Sie die HTTP-Digest-Authentifizierung für ONVIF. Einige Kameras erfordern möglicherweise einen speziellen ONVIF-Benutzernamen/ein spezielles ONVIF-Passwort anstelle des Standard-Admin-Benutzers.",
+ "manualMode": "Manuelle Auswahl"
+ },
+ "step2": {
+ "description": "Suchen Sie in der Kamera nach verfügbaren Streams oder konfigurieren Sie manuelle Einstellungen basierend auf der von Ihnen ausgewählten Erkennungsmethode.",
+ "streamsTitle": "Kamera Streams",
+ "addStream": "Stream hinzufügen",
+ "addAnotherStream": "Weiteren Stream hinzufügen",
+ "streamTitle": "Stream {{nummer}}",
+ "streamUrl": "Stream URL",
+ "streamUrlPlaceholder": "rtsp://nutzername:passwort@host:port/pfad",
+ "url": "URL",
+ "resolution": "Auflösung",
+ "selectResolution": "Auflösung auswählen",
+ "quality": "Qualität",
+ "selectQuality": "Qualität auswählen",
+ "roles": "Rollen",
+ "roleLabels": {
+ "detect": "Objekt-Erkennung",
+ "record": "Aufzeichnung",
+ "audio": "Audio"
+ },
+ "testStream": "Verbindung testen",
+ "testSuccess": "Verbindung erfolgreich getestet!",
+ "testFailed": "Verbindungstest fehlgeschlagen. Bitte überprüfen Sie ihre Eingaben und versuchen Sie es erneut.",
+ "testFailedTitle": "Test fehlgeschlagen",
+ "connected": "Verbunden",
+ "notConnected": "Nicht verbunden",
+ "featuresTitle": "Funktionen",
+ "go2rtc": "Verbindungen zur Kamera reduzieren",
+ "detectRoleWarning": "Mindestens ein Stream muss die Rolle „detect“ haben, um fortfahren zu können.",
+ "rolesPopover": {
+ "title": "Stream Rollen",
+ "detect": "Haupt-Feed für Objekt-Erkennung.",
+ "record": "Speichert Segmente des Video-Feeds basierend auf den Konfigurationseinstellungen.",
+ "audio": "Feed für audiobasierte Erkennung."
+ },
+ "featuresPopover": {
+ "title": "Stream Funktionen",
+ "description": "Verwende go2rtc Restreaming, um die Verbindungen zu deiner Kamera zu reduzieren."
+ },
+ "streamDetails": "Verbindungsdetails",
+ "probing": "Kamera wird geprüft...",
+ "retry": "Wiederholen",
+ "testing": {
+ "probingMetadata": "Metadaten der Kamera werden überprüft...",
+ "fetchingSnapshot": "Kamera-Schnappschuss wird abgerufen..."
+ },
+ "probeFailed": "Fehler beim Untersuchen der Kamera: {{error}}",
+ "probingDevice": "Untersuche Gerät...",
+ "probeSuccessful": "Erkennung erfolgreich",
+ "probeError": "Erkennungsfehler",
+ "probeNoSuccess": "Erkennung fehlgeschlagen",
+ "deviceInfo": "Geräteinformationen",
+ "manufacturer": "Hersteller",
+ "model": "Modell",
+ "firmware": "Firmware",
+ "profiles": "Profile",
+ "ptzSupport": "PTZ Unterstützung",
+ "autotrackingSupport": "Unterstützung für Autoverfolgung",
+ "presets": "Voreinstellung",
+ "rtspCandidates": "RTSP Kandidaten",
+ "rtspCandidatesDescription": "Die folgenden RTSP-URLs wurden bei der Kameraerkennung gefunden. Testen Sie die Verbindung, um die Stream-Metadaten anzuzeigen.",
+ "noRtspCandidates": "Es wurden keine RTSP-URLs von der Kamera gefunden. Möglicherweise sind Ihre Anmeldedaten falsch oder die Kamera unterstützt ONVIF oder die Methode zum Abrufen von RTSP-URLs nicht. Gehen Sie zurück und geben Sie die RTSP-URL manuell ein.",
+ "candidateStreamTitle": "Kandidate {{number}}",
+ "useCandidate": "Verwenden",
+ "uriCopy": "Kopieren",
+ "uriCopied": "URI in die Zwischenablage kopiert",
+ "testConnection": "Test Verbindung",
+ "toggleUriView": "Klicken Sie hier, um die vollständige URI zu sehen",
+ "errors": {
+ "hostRequired": "Host/IP adresse wird benötigt"
+ }
+ },
+ "step3": {
+ "description": "Konfigurieren Sie Stream-Rollen und fügen Sie zusätzliche Streams für Ihre Kamera hinzu.",
+ "validationTitle": "Stream Validierung",
+ "connectAllStreams": "Verbinde alle Streams",
+ "reconnectionSuccess": "Wiederverbindung erfolgreich.",
+ "reconnectionPartial": "Einige Streams konnten nicht wieder verbunden werden.",
+ "streamUnavailable": "Stream-Vorschau nicht verfügbar",
+ "reload": "Neu laden",
+ "connecting": "Verbinde...",
+ "streamTitle": "Stream {{number}}",
+ "valid": "Gültig",
+ "failed": "Fehlgeschlagen",
+ "notTested": "Nicht getestet",
+ "connectStream": "Verbinden",
+ "connectingStream": "Verbinde",
+ "disconnectStream": "Trennen",
+ "estimatedBandwidth": "Geschätzte Bandbreite",
+ "roles": "Rollen",
+ "none": "Keine",
+ "error": "Fehler",
+ "streamValidated": "Stream {{number}} wurde erfolgreich validiert",
+ "streamValidationFailed": "Stream {{number}} Validierung fehlgeschlagen",
+ "saveAndApply": "Neue Kamera speichern",
+ "saveError": "Ungültige Konfiguration. Bitte prüfe die Einstellungen.",
+ "issues": {
+ "title": "Stream Validierung",
+ "videoCodecGood": "Video-Codec ist {{codec}}.",
+ "audioCodecGood": "Audio-Codec ist {{codec}}.",
+ "noAudioWarning": "Für diesen Stream wurde kein Ton erkannt, die Aufzeichnungen enthalten keinen Ton.",
+ "audioCodecRecordError": "Der AAC-Audio-Codec ist erforderlich, um Audio in Aufnahmen zu unterstützen.",
+ "audioCodecRequired": "Ein Audiostream ist erforderlich, um Audioerkennung zu unterstützen.",
+ "restreamingWarning": "Eine Reduzierung der Verbindungen zur Kamera für den Aufzeichnungsstream kann zu einer etwas höheren CPU-Auslastung führen.",
+ "dahua": {
+ "substreamWarning": "Substream 1 ist auf eine niedrige Auflösung festgelegt. Viele Kameras von Dahua / Amcrest / EmpireTech unterstützen zusätzliche Substreams, die in den Kameraeinstellungen aktiviert werden müssen. Es wird empfohlen, diese Streams zu nutzen, sofern sie verfügbar sind."
+ },
+ "hikvision": {
+ "substreamWarning": "Substream 1 ist auf eine niedrige Auflösung festgelegt. Viele Hikvision-Kameras unterstützen zusätzliche Substreams, die in den Kameraeinstellungen aktiviert werden müssen. Es wird empfohlen, diese Streams zu nutzen, sofern sie verfügbar sind."
+ }
+ },
+ "streamsTitle": "Kamera Stream",
+ "addStream": "Stream hinzufügen",
+ "addAnotherStream": "weiteren Stream hinzufügen",
+ "streamUrl": "Stream URL",
+ "streamUrlPlaceholder": "rtsp://benutzername:passwort@host:port/path",
+ "selectStream": "Auswahl Stream",
+ "searchCandidates": "Suche Kandidaten...",
+ "noStreamFound": "Kein Stream gefunden",
+ "url": "URL",
+ "resolution": "Auflösung",
+ "selectResolution": "Wähle Auflösung",
+ "quality": "Qualität",
+ "selectQuality": "Wähle Qualität",
+ "roleLabels": {
+ "detect": "Objekterkennung",
+ "record": "Aufnahme",
+ "audio": "Ton"
+ },
+ "testStream": "Verbindungstest",
+ "testSuccess": "Verbindungstest erfolgreich!",
+ "testFailed": "Verbindungstest fehlgeschlagen",
+ "testFailedTitle": "Test fehlgeschlagen",
+ "connected": "Verbunden",
+ "notConnected": "nicht verbunden",
+ "featuresTitle": "Funktionen",
+ "go2rtc": "Verbindungen zur Kamera reduzieren",
+ "detectRoleWarning": "Mindestens ein Stream muss die Rolle „detect“ haben, um fortfahren zu können.",
+ "rolesPopover": {
+ "title": "Stream Rollen",
+ "detect": "Hauptfeed für die Objekterkennung.",
+ "record": "Speichert Segmente des Video-Feeds basierend auf den Konfigurationseinstellungen.",
+ "audio": "Feed für audiobasierte Erkennung."
+ },
+ "featuresPopover": {
+ "title": "Stream Funktionen",
+ "description": "Verwenden Sie go2rtc-Restreaming, um die Verbindungen zu Ihrer Kamera zu reduzieren."
+ }
+ },
+ "step4": {
+ "description": "Endgültige Validierung und Analyse vor dem Speichern Ihrer neuen Kamera. Verbinden Sie jeden Stream vor dem Speichern.",
+ "validationTitle": "Stream-Validierung",
+ "connectAllStreams": "Alle Streams verbinden",
+ "reconnectionSuccess": "Wiederverbindung erfolgreich.",
+ "reconnectionPartial": "Einige Streams konnten nicht wieder verbunden werden.",
+ "streamUnavailable": "Stream Vorschau nicht verfügbar",
+ "reload": "neu Laden",
+ "connecting": "Verbinden...",
+ "streamTitle": "Stream {{number}}",
+ "valid": "gültig",
+ "failed": "fehlgeschlagen",
+ "notTested": "nicht getestet",
+ "connectStream": "Verbinden",
+ "connectingStream": "Verbinden",
+ "disconnectStream": "getrennt",
+ "estimatedBandwidth": "Voraussichtliche Bandbreite",
+ "roles": "Rollen",
+ "ffmpegModule": "Stream-Kompatibilitätsmodus verwenden",
+ "ffmpegModuleDescription": "Wenn der Stream nach mehreren Versuchen nicht geladen wird, versuchen Sie, diese Option zu aktivieren. Wenn diese Option aktiviert ist, verwendet Frigate das ffmpeg-Modul mit go2rtc. Dies kann zu einer besseren Kompatibilität mit einigen Kamerastreams führen.",
+ "none": "keiner",
+ "error": "Fehler",
+ "streamValidated": "Steam {{number}} erfolgreich validiert",
+ "streamValidationFailed": "Stream {{number}} Validierung fehlgeschlagen",
+ "saveAndApply": "Neue Kamera speichern",
+ "saveError": "Ungültige Konfiguration. Bitte überprüfen Sie Ihre Einstellungen.",
+ "issues": {
+ "title": "Stream-Validierung",
+ "videoCodecGood": "Video codec ist {{codec}}.",
+ "audioCodecGood": "Audio codec ist {{codec}}.",
+ "resolutionHigh": "Eine Auflösung von {{resolution}} kann zu einem erhöhten Ressourcenverbrauch führen.",
+ "resolutionLow": "Eine Auflösung von {{resolution}} ist möglicherweise zu gering, um kleine Objekte zuverlässig zu erkennen.",
+ "noAudioWarning": "Für diesen Stream wurde kein Ton erkannt, die Aufzeichnungen enthalten keinen Ton.",
+ "audioCodecRecordError": "Der AAC-Audio-Codec ist erforderlich, um Audio in Aufnahmen zu unterstützen.",
+ "audioCodecRequired": "Ein Audiostream ist erforderlich, um die Audioerkennung zu unterstützen.",
+ "restreamingWarning": "Die Reduzierung der Verbindungen zur Kamera für den Aufzeichnungsstream kann zu einer geringfügigen Erhöhung der CPU-Auslastung führen.",
+ "brands": {
+ "reolink-rtsp": "Reolink RTSP wird nicht empfohlen. Aktivieren Sie HTTP in den Firmware-Einstellungen der Kamera und starten Sie den Assistenten neu.",
+ "reolink-http": "Für Reolink-HTTP-Streams sollten sie FFmpeg verwenden, um eine bessere Kompatibilität zu gewährleisten. Aktivieren Sie für diesen Stream die Option „Stream-Kompatibilitätsmodus verwenden“."
+ },
+ "dahua": {
+ "substreamWarning": "Substream 1 ist auf eine niedrige Auflösung festgelegt. Viele Kameras von Dahua / Amcrest / EmpireTech unterstützen zusätzliche Substreams, die in den Kameraeinstellungen aktiviert werden müssen. Es wird empfohlen, diese Streams zu überprüfen und zu nutzen, sofern sie verfügbar sind."
+ },
+ "hikvision": {
+ "substreamWarning": "Substream 1 ist auf eine niedrige Auflösung festgelegt. Viele Hikvision-Kameras unterstützen zusätzliche Substreams, die in den Kameraeinstellungen aktiviert werden müssen. Es wird empfohlen, diese Streams zu überprüfen und zu nutzen, sofern sie verfügbar sind."
+ }
+ }
+ }
+ },
+ "cameraManagement": {
+ "title": "Kameras verwalten",
+ "addCamera": "Neue Kamera hinzufügen",
+ "editCamera": "Kamera bearbeiten:",
+ "selectCamera": "Wähle eine Kamera",
+ "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. Hinweis: Dies deaktiviert nicht die go2rtc restreams."
+ },
+ "cameraConfig": {
+ "add": "Kamera hinzufügen",
+ "edit": "Kamera bearbeiten",
+ "description": "Konfiguriere die Kameraeinstellungen, einschließlich Streams und Rollen.",
+ "name": "Kameraname",
+ "nameRequired": "Kameraname benötigt",
+ "nameLength": "Kameraname darf maximal 64 Zeichen lang sein.",
+ "namePlaceholder": "z.B. vordere_tür oder Hof Übersicht",
+ "enabled": "Aktiviert",
+ "ffmpeg": {
+ "inputs": "Eingang Streams",
+ "path": "Stream-Pfad",
+ "pathRequired": "Stream-Pfad benötigt",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Rollen",
+ "rolesRequired": "Mindestens eine Rolle wird benötigt",
+ "rolesUnique": "Jede Rolle (audio, detect, record) kann nur einem Stream zugewiesen werden",
+ "addInput": "Eingangs-Stream hinzufügen",
+ "removeInput": "Eingangs-Stream entfernen",
+ "inputsRequired": "Es wird mindestens ein Eingangs-Stream benötigt"
+ },
+ "go2rtcStreams": "go2rtc Streams",
+ "streamUrls": "Stream URLs",
+ "addUrl": "URL hinzufügen",
+ "addGo2rtcStream": "go2rtc Stream hinzufügen",
+ "toast": {
+ "success": "Kamera {{cameraName}} erfolgreich gespeichert"
+ }
+ }
+ },
+ "cameraReview": {
+ "title": "Kamera-Einstellungen überprüfen",
+ "object_descriptions": {
+ "title": "Generative KI Objektbeschreibungen",
+ "desc": "Aktiviere/deaktiviere vorübergehend die Objektbeschreibungen durch Generative KI für diese Kamera. Wenn diese Option deaktiviert ist, werden keine KI-generierten Beschreibungen für verfolgte Objekte dieser Kamera erstellt."
+ },
+ "review_descriptions": {
+ "title": "Generative KI Review Beschreibungen",
+ "desc": "Generative KI Review Beschreibungen für diese Kamera vorübergehend aktivieren/deaktivieren. Wenn diese Option deaktiviert ist, werden für die Review Elemente dieser Kamera keine KI-generierten Beschreibungen angefordert."
+ },
+ "review": {
+ "title": "Überprüfung",
+ "desc": "Aktivieren/deaktivieren Sie vorübergehend Warnmeldungen und Erkennungen für diese Kamera, bis Frigate neu gestartet wird. Wenn diese Funktion deaktiviert ist, werden keine neuen Überprüfungselemente generiert. ",
+ "alerts": "Warnungen ",
+ "detections": "Erkennungen "
+ },
+ "reviewClassification": {
+ "title": "Bewertungsklassifizierung",
+ "desc": "Frigate kategorisiert zu überprüfende Elemente als Warnmeldungen und Erkennungen. Standardmäßig werden alle Objekte vom Typ Person und Auto als Warnmeldungen betrachtet. Sie können die Kategorisierung der zu überprüfenden Elemente verfeinern, indem Sie die erforderlichen Zonen für sie konfigurieren.",
+ "noDefinedZones": "Für diese Kamera sind keine Zonen definiert.",
+ "objectAlertsTips": "Alle {{alertsLabels}}-Objekte auf {{cameraName}} werden als Warnmeldungen angezeigt.",
+ "zoneObjectAlertsTips": "Alle {{alertsLabels}}-Objekte, die in {{zone}} auf {{cameraName}} erkannt wurden, werden als Warnmeldungen angezeigt.",
+ "objectDetectionsTips": "Alle {{detectionsLabels}}-Objekte, die nicht unter {{cameraName}} kategorisiert sind, werden unabhängig davon, in welcher Zone sie sich befinden, als Erkennungen angezeigt.",
+ "zoneObjectDetectionsTips": {
+ "text": "Alle {{detectionsLabels}}-Objekte, die nicht in {{zone}} auf {{cameraName}} kategorisiert sind, werden als Erkennungen angezeigt.",
+ "notSelectDetections": "Alle {{detectionsLabels}}-Objekte, die in {{zone}} auf {{cameraName}} erkannt und nicht als Warnmeldungen kategorisiert wurden, werden unabhängig davon, in welcher Zone sie sich befinden, als Erkennungen angezeigt.",
+ "regardlessOfZoneObjectDetectionsTips": "Alle {{detectionsLabels}}-Objekte, die nicht unter {{cameraName}} kategorisiert sind, werden unabhängig davon, in welcher Zone sie sich befinden, als Erkennungen angezeigt."
+ },
+ "unsavedChanges": "Nicht gespeicherte Überprüfung der Klassifizierungseinstellungen für {{camera}}",
+ "selectAlertsZones": "Zonen für Warnmeldungen auswählen",
+ "selectDetectionsZones": "Zonen für Erkennungen auswählen",
+ "limitDetections": "Erkennungen auf bestimmte Zonen beschränken",
+ "toast": {
+ "success": "Die Konfiguration der Bewertungsklassifizierung wurde gespeichert. Starten Sie Frigate neu, um die Änderungen zu übernehmen."
+ }
+ }
}
}
diff --git a/web/public/locales/de/views/system.json b/web/public/locales/de/views/system.json
index f869f1ba20..a7bb342aed 100644
--- a/web/public/locales/de/views/system.json
+++ b/web/public/locales/de/views/system.json
@@ -16,7 +16,7 @@
"vbios": "VBios Info: {{vbios}}"
},
"closeInfo": {
- "label": "Schhließe GPU Info"
+ "label": "Schließe GPU Info"
},
"copyInfo": {
"label": "Kopiere GPU Info"
@@ -31,7 +31,12 @@
"gpuDecoder": "GPU Decoder",
"gpuEncoder": "GPU Encoder",
"npuUsage": "NPU Verwendung",
- "npuMemory": "NPU Speicher"
+ "npuMemory": "NPU Speicher",
+ "intelGpuWarning": {
+ "title": "Intel GPU Statistik Warnung",
+ "message": "GPU stats nicht verfügbar",
+ "description": "Dies ist ein bekannter Fehler in den GPU-Statistik-Tools von Intel (intel_gpu_top), bei dem das Tool ausfällt und wiederholt eine GPU-Auslastung von 0 % anzeigt, selbst wenn die Hardwarebeschleunigung und die Objekterkennung auf der (i)GPU korrekt funktionieren. Dies ist kein Fehler von Frigate. Du kannst den Host neu starten, um das Problem vorübergehend zu beheben und zu prüfen, ob die GPU korrekt funktioniert. Dies hat keine Auswirkungen auf die Leistung."
+ }
},
"title": "Allgemein",
"detector": {
@@ -39,7 +44,8 @@
"cpuUsage": "CPU-Auslastung des Detektors",
"memoryUsage": "Arbeitsspeichernutzung des Detektors",
"inferenceSpeed": "Detektoren Inferenzgeschwindigkeit",
- "temperature": "Temperatur des Detektors"
+ "temperature": "Temperatur des Detektors",
+ "cpuUsageInformation": "CPU, die zur Vorbereitung von Eingabe- und Ausgabedaten für/aus Erkennungsmodellen verwendet wird. Dieser Wert misst nicht die Inferenzauslastung, selbst wenn eine GPU oder ein Beschleuniger verwendet wird."
},
"otherProcesses": {
"title": "Andere Prozesse",
@@ -102,7 +108,11 @@
"bandwidth": "Bandbreite"
},
"title": "Speicher",
- "overview": "Übersicht"
+ "overview": "Übersicht",
+ "shm": {
+ "title": "SHM (Shared Memory) Zuweisung",
+ "warning": "Die aktuelle SHM-Größe von {{total}} MB ist zu klein. Erhöhe sie auf mindestens {{min_shm}} MB."
+ }
},
"cameras": {
"info": {
@@ -115,7 +125,7 @@
"unknown": "Unbekannt",
"audio": "Audio:",
"error": "Fehler: {{error}}",
- "cameraProbeInfo": "{{camera}} Kamera-Untersuchsungsinfo",
+ "cameraProbeInfo": "{{camera}} Kamera-Untersuchungsinfo",
"streamDataFromFFPROBE": "Stream-Daten werden mit ffprobe erhalten.",
"tips": {
"title": "Kamera-Untersuchsungsinfo"
@@ -162,10 +172,20 @@
"face_recognition": "Gesichts Erkennung",
"image_embedding": "Bild Embedding",
"yolov9_plate_detection_speed": "YOLOv9 Kennzeichenerkennungsgeschwindigkeit",
- "yolov9_plate_detection": "YOLOv9 Kennzeichenerkennung"
+ "yolov9_plate_detection": "YOLOv9 Kennzeichenerkennung",
+ "review_description": "Bewertung Beschreibung",
+ "review_description_speed": "Bewertungsbeschreibung Geschwindigkeit",
+ "review_description_events_per_second": "Bewertungsbeschreibung",
+ "object_description": "Objekt Beschreibung",
+ "object_description_speed": "Objektbeschreibung Geschwindigkeit",
+ "object_description_events_per_second": "Objektbeschreibung",
+ "classification": "{{name}} Klassifizierung",
+ "classification_speed": "{{name}} Klassifizierungsgeschwindigkeit",
+ "classification_events_per_second": "{{name}} Klassifizierungsereignisse pro Sekunde"
},
"title": "Optimierungen",
- "infPerSecond": "Rückschlüsse pro Sekunde"
+ "infPerSecond": "Rückschlüsse pro Sekunde",
+ "averageInf": "Durchschnittliche Inferenzzeit"
},
"stats": {
"healthy": "Das System läuft problemlos",
@@ -174,7 +194,8 @@
"reindexingEmbeddings": "Neuindizierung von Einbettungen ({{processed}}% erledigt)",
"detectIsSlow": "{{detect}} ist langsam ({{speed}} ms)",
"detectIsVerySlow": "{{detect}} ist sehr langsam ({{speed}} ms)",
- "cameraIsOffline": "{{camera}} ist offline"
+ "cameraIsOffline": "{{camera}} ist offline",
+ "shmTooLow": "Die Zuweisung für /dev/shm ({{total}} MB) sollte auf mindestens {{min}} MB erhöht werden."
},
"lastRefreshed": "Zuletzt aktualisiert: "
}
diff --git a/web/public/locales/el/audio.json b/web/public/locales/el/audio.json
index f8dfffbc8d..2bd01b8717 100644
--- a/web/public/locales/el/audio.json
+++ b/web/public/locales/el/audio.json
@@ -48,5 +48,18 @@
"acoustic_guitar": "Ακουστική Κιθάρα",
"classical_music": "Κλασική Μουσική",
"opera": "Όπερα",
- "electronic_music": "Ηλεκτρονική Μουσική"
+ "electronic_music": "Ηλεκτρονική Μουσική",
+ "bus": "Λεωφορείο",
+ "train": "Εκπαίδευση",
+ "boat": "Βάρκα",
+ "sigh": "Αναστεναγμός",
+ "singing": "Τραγούδι",
+ "choir": "Χορωδία",
+ "whistling": "Σφύριγμα",
+ "camera": "Κάμερα",
+ "wheeze": "Ξεφύσημα",
+ "yodeling": "Λαρυγγισμός",
+ "chant": "Ύμνος",
+ "mantra": "Μάντρα",
+ "synthetic_singing": "Συνθετικό Τραγούδι"
}
diff --git a/web/public/locales/el/common.json b/web/public/locales/el/common.json
index d521af9a06..3bcd3316f1 100644
--- a/web/public/locales/el/common.json
+++ b/web/public/locales/el/common.json
@@ -1,8 +1,181 @@
{
"time": {
- "untilForTime": "Ως{{time}}",
+ "untilForTime": "Ως {{time}}",
"untilForRestart": "Μέχρι να γίνει επανεκίννηση του Frigate.",
"untilRestart": "Μέχρι να γίνει επανεκκίνηση",
- "justNow": "Μόλις τώρα"
+ "justNow": "Μόλις τώρα",
+ "ago": "Πριν {{timeAgo}}",
+ "today": "Σήμερα",
+ "yesterday": "Εχθές",
+ "last7": "Τελευταίες 7 ημέρες",
+ "year_one": "{{time}} χρόνος",
+ "year_other": "{{time}} χρόνια",
+ "month_one": "{{time}} μήνας",
+ "month_other": "{{time}} μήνες",
+ "day_one": "{{time}} ημέρα",
+ "day_other": "{{time}} ημέρες",
+ "hour_one": "{{time}} ώρα",
+ "hour_other": "{{time}} ώρες",
+ "minute_one": "{{time}} λεπτό",
+ "minute_other": "{{time}} λεπτά",
+ "second_one": "{{time}} δευτερόλεπτο",
+ "second_other": "{{time}} δευτερόλεπτα",
+ "last14": "Τελευταίες 14 ημέρες",
+ "last30": "Τελευταίες 30 ημέρες",
+ "thisWeek": "Αυτή την εβδομάδα",
+ "lastWeek": "Προηγούμενη Εβδομάδα",
+ "am": "π.μ.",
+ "yr": "{{time}}χρ",
+ "mo": "{{time}}μη",
+ "thisMonth": "Αυτό τον Μήνα",
+ "lastMonth": "Τελευταίος Μήνας",
+ "5minutes": "5 λεπτά",
+ "10minutes": "10 λεπτά",
+ "30minutes": "30 λεπτά",
+ "1hour": "1 ώρα",
+ "12hours": "12 ώρες",
+ "24hours": "24 ώρες",
+ "pm": "μ.μ.",
+ "formattedTimestamp": {
+ "12hour": "d MMM, h:mm:ss aaa",
+ "24hour": "d MMM, HH:mm:ss"
+ },
+ "formattedTimestamp2": {
+ "12hour": "MM/dd h:mm:ssa",
+ "24hour": "d MMM HH:mm:ss"
+ },
+ "formattedTimestampHourMinute": {
+ "12hour": "h:mm aaa",
+ "24hour": "HH:mm"
+ },
+ "formattedTimestampHourMinuteSecond": {
+ "12hour": "h:mm:ss aaa",
+ "24hour": "HH:mm:ss"
+ },
+ "formattedTimestampMonthDayHourMinute": {
+ "12hour": "d MMM, h:mm aaa",
+ "24hour": "d MMM, HH:mm"
+ },
+ "formattedTimestampMonthDayYear": {
+ "12hour": "d MMM yyyy",
+ "24hour": "d MMM yyyy"
+ },
+ "formattedTimestampMonthDayYearHourMinute": {
+ "12hour": "d MMM yyyy, h:mm aaa",
+ "24hour": "d MMM yyyy, HH:mm"
+ },
+ "formattedTimestampMonthDay": "d MMM",
+ "formattedTimestampFilename": {
+ "12hour": "dd-MM-yy-h-mm-ss-a",
+ "24hour": "dd-MM-yy-HH-mm-ss"
+ },
+ "d": "{{time}}η",
+ "h": "{{time}}ω",
+ "m": "{{time}}λ",
+ "s": "{{time}}δ",
+ "inProgress": "Σε εξέλιξη",
+ "invalidStartTime": "Μη έγκυρη ώρα έναρξης",
+ "invalidEndTime": "Μη έγκυρη ώρα λήξης"
+ },
+ "menu": {
+ "live": {
+ "cameras": {
+ "count_one": "{{count}} Κάμερα",
+ "count_other": "{{count}} Κάμερες"
+ }
+ }
+ },
+ "button": {
+ "save": "Αποθήκευση",
+ "apply": "Εφαρμογή",
+ "reset": "Επαναφορά",
+ "done": "Τέλος",
+ "enabled": "Ενεργοποιημένο",
+ "enable": "Ενεργοποίηση",
+ "disabled": "Απενεργοποιημένο",
+ "disable": "Απενεργοποίηση",
+ "saving": "Αποθήκευση…",
+ "cancel": "Ακύρωση",
+ "close": "Κλείσιμο",
+ "copy": "Αντιγραφή",
+ "back": "Πίσω",
+ "pictureInPicture": "Εικόνα σε εικόνα",
+ "cameraAudio": "Ήχος κάμερας",
+ "edit": "Επεξεργασία",
+ "copyCoordinates": "Αντιγραφή συντεταγμένων",
+ "delete": "Διαγραφή",
+ "yes": "Ναι",
+ "no": "Όχι",
+ "download": "Κατέβασμα",
+ "info": "Πληροφορίες",
+ "history": "Ιστορία"
+ },
+ "unit": {
+ "speed": {
+ "mph": "mph",
+ "kph": "χλμ/ώρα"
+ },
+ "length": {
+ "meters": "μέτρα"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/ώρα",
+ "mbph": "MB/ώρα",
+ "gbph": "GB/ώρα"
+ }
+ },
+ "label": {
+ "back": "Επιστροφή",
+ "hide": "Απόκρυψη {{item}}",
+ "show": "Εμφάνιση {{item}}",
+ "ID": "ID",
+ "none": "Κανένα",
+ "all": "Όλα"
+ },
+ "toast": {
+ "save": {
+ "title": "Αποθήκευση",
+ "error": {
+ "title": "Αποτυχία αποθήκευσης αλλαγών διαμόρφωσης: {{errorMessage}}",
+ "noMessage": "Αποτυχία αποθήκευσης αλλαγών διαμόρφωσης"
+ }
+ }
+ },
+ "role": {
+ "admin": "Διαχειριστής",
+ "desc": "Οι διαχειριστές έχουν πλήρη πρόσβαση σε όλες τις λειτουργίες του περιβάλλοντος χρήστη Frigate. Οι θεατές έχουν περιορισμένη πρόσβαση στην προβολή καμερών, στην αναθεώρηση στοιχείων και σε ιστορικό υλικό στο περιβάλλον χρήστη.",
+ "viewer": "Θεατής"
+ },
+ "pagination": {
+ "previous": {
+ "title": "Προηγούμενο",
+ "label": "Μετάβαση στην προηγούμενη σελίδα"
+ },
+ "next": {
+ "title": "Επόμενο",
+ "label": "Μετάβαση στην επόμενη σελίδα"
+ },
+ "more": "Περισσότερες σελίδες"
+ },
+ "accessDenied": {
+ "documentTitle": "Πρόσβαση απορρίφθηκε - Frigate",
+ "title": "Πρόσβαση απορρίφθηκε",
+ "desc": "Δεν έχετε άδεια να δείτε αυτή τη σελίδα."
+ },
+ "notFound": {
+ "documentTitle": "Δεν βρέθηκε - Frigate",
+ "title": "404",
+ "desc": "Η σελίδα δεν βρέθηκε"
+ },
+ "list": {
+ "two": "{{0}} και {{1}}",
+ "many": "{{items}} και {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "internalID": "Το εσωτερικό ID που χρησιμοποίησε η Fregate στη διαμόρφωση και τη βάση δεδομένων"
}
}
diff --git a/web/public/locales/el/components/auth.json b/web/public/locales/el/components/auth.json
index 722e8efbf6..c978b36672 100644
--- a/web/public/locales/el/components/auth.json
+++ b/web/public/locales/el/components/auth.json
@@ -4,7 +4,13 @@
"password": "Κωδικός",
"login": "Σύνδεση",
"errors": {
- "usernameRequired": "Απαιτείται όνομα χρήστη"
- }
+ "usernameRequired": "Απαιτείται όνομα χρήστη",
+ "passwordRequired": "Απαιτείται κωδικός",
+ "rateLimit": "Το όριο μεταφοράς έχει ξεπεραστεί. Δοκιμάστε ξανά αργότερα.",
+ "loginFailed": "Αποτυχία σύνδεσης",
+ "unknownError": "Άγνωστο σφάλμα. Ελέγξτε το αρχείο καταγραφής.",
+ "webUnknownError": "Άγνωστο σφάλμα. Εξετάστε το αρχείο καταγραφής κονσόλας."
+ },
+ "firstTimeLogin": "Προσπαθείτε να συνδεθείτε για πρώτη φορά; Τα διαπιστευτήρια είναι τυπωμένα στα logs του Frigate."
}
}
diff --git a/web/public/locales/el/components/camera.json b/web/public/locales/el/components/camera.json
index 8d0571fbe3..3de7248eea 100644
--- a/web/public/locales/el/components/camera.json
+++ b/web/public/locales/el/components/camera.json
@@ -1,6 +1,42 @@
{
"group": {
"add": "Προσθήκη ομάδας καμερών",
- "label": "Ομάδες καμερών"
+ "label": "Ομάδες καμερών",
+ "edit": "Επεξεργασία ομάδας καμερών",
+ "delete": {
+ "label": "Διαγραφή ομάδας κάμερας",
+ "confirm": {
+ "title": "Επιβεβαίωση Διαγραφής",
+ "desc": "Είστε σίγουροι για την διαγραφή της ομάδας κάμερας {{name}};"
+ }
+ },
+ "name": {
+ "label": "Όνομα",
+ "placeholder": "Εισάγετε όνομα…",
+ "errorMessage": {
+ "mustLeastCharacters": "Το όνομα ομάδας κάμερας πρέπει να περιέχει τουλάχιστον 2 χαρακτήρες.",
+ "exists": "Το όνομα ομάδας κάμερας υπάρχει ήδη.",
+ "nameMustNotPeriod": "Το όνομα ομάδας κάμερας δεν μπορεί να περιλαμβάνει κενά.",
+ "invalid": "Άκυρο όνομα ομάδας κάμερας."
+ }
+ },
+ "camera": {
+ "setting": {
+ "audioIsUnavailable": "Ο ήχος δεν είναι διαθέσιμος για αυτή την μετάδοση",
+ "audio": {
+ "tips": {
+ "title": "Η κάμερα πρέπει να εκπέμπει ήχο και να είναι ρυθμισμένο το go2rtc για αυτή την μετάδοση."
+ }
+ },
+ "stream": "Μετάδοση",
+ "placeholder": "Επιλέξτε μια μετάδοση"
+ }
+ },
+ "cameras": {
+ "label": "Κάμερες",
+ "desc": "Διαλέξτε κάμερες για αυτή την ομάδα."
+ },
+ "icon": "Εικονίδιο",
+ "success": "Η ομάδα κάμερας {{name}} έχει αποθηκευθεί."
}
}
diff --git a/web/public/locales/el/components/dialog.json b/web/public/locales/el/components/dialog.json
index 5d83ef580a..40c3f05457 100644
--- a/web/public/locales/el/components/dialog.json
+++ b/web/public/locales/el/components/dialog.json
@@ -32,7 +32,24 @@
},
"export": {
"time": {
- "fromTimeline": "Επιλογή από Χρονολόγιο"
+ "fromTimeline": "Επιλογή από Χρονολόγιο",
+ "lastHour_one": "Τελευταία ώρα",
+ "lastHour_other": "Τελευταίες {{count}} Ώρες",
+ "custom": "Προσαρμοσμένο",
+ "start": {
+ "title": "Αρχή Χρόνου"
+ }
+ },
+ "select": "Επιλογή",
+ "export": "Εξαγωγή",
+ "selectOrExport": "Επιλογή ή Εξαγωγή",
+ "toast": {
+ "success": "Επιτυχής έναρξη εξαγωγής. Δείτε το αρχείο στον φάκελο /exports."
+ }
+ },
+ "search": {
+ "saveSearch": {
+ "label": "Αποθήκευση αναζήτησης"
}
}
}
diff --git a/web/public/locales/el/components/filter.json b/web/public/locales/el/components/filter.json
index ecfa4905e3..da69d7f0ef 100644
--- a/web/public/locales/el/components/filter.json
+++ b/web/public/locales/el/components/filter.json
@@ -1,6 +1,41 @@
{
"filter": "Φίλτρο",
"labels": {
- "label": "Ετικέτες"
- }
+ "label": "Ετικέτες",
+ "all": {
+ "title": "Όλες οι ετικέτες",
+ "short": "Ετικέτες"
+ },
+ "count_one": "{{count}} Ετικέτα",
+ "count_other": "{{count}} Ετικέτες"
+ },
+ "classes": {
+ "all": {
+ "title": "Όλες οι κλάσεις"
+ },
+ "count_one": "{{count}} Κλάση",
+ "count_other": "{{count}} Κλάσεις",
+ "label": "Κλάσεις"
+ },
+ "zones": {
+ "label": "Ζώνες",
+ "all": {
+ "title": "Όλες οι ζώνες",
+ "short": "Ζώνες"
+ }
+ },
+ "score": "Σκορ",
+ "estimatedSpeed": "Εκτιμώμενη Ταχύτητα {{unit}}",
+ "features": {
+ "label": "Χαρακτηριστικά",
+ "hasSnapshot": "Έχει ένα στιγμιότυπο"
+ },
+ "dates": {
+ "selectPreset": "Διαλέξτε μια Προεπιλογή…",
+ "all": {
+ "title": "Όλες οι Ημερομηνίες",
+ "short": "Ημερομηνίες"
+ }
+ },
+ "more": "Επιπλέον Φίλτρα"
}
diff --git a/web/public/locales/el/components/player.json b/web/public/locales/el/components/player.json
index 14f444437e..de23a97831 100644
--- a/web/public/locales/el/components/player.json
+++ b/web/public/locales/el/components/player.json
@@ -37,6 +37,15 @@
"value": "{{droppedFrames}} καρέ"
}
},
- "decodedFrames": "Αποκωδικοποιημένα Καρέ:"
+ "decodedFrames": "Αποκωδικοποιημένα Καρέ:",
+ "droppedFrameRate": "Ρυθμός Απορριφθέντων Καρέ:"
+ },
+ "toast": {
+ "success": {
+ "submittedFrigatePlus": "Επιτυχής αποστολή εικόνας στο Frigate+"
+ },
+ "error": {
+ "submitFrigatePlusFailed": "Αποτυχία αποστολής εικόνας στο Frigate+"
+ }
}
}
diff --git a/web/public/locales/el/objects.json b/web/public/locales/el/objects.json
index 22d5874cac..5cc7e4fe84 100644
--- a/web/public/locales/el/objects.json
+++ b/web/public/locales/el/objects.json
@@ -4,5 +4,21 @@
"car": "Αυτοκίνητο",
"motorcycle": "Μηχανή",
"airplane": "Αεροπλάνο",
- "bird": "Πουλί"
+ "bird": "Πουλί",
+ "bus": "Λεωφορείο",
+ "train": "Εκπαίδευση",
+ "boat": "Βάρκα",
+ "traffic_light": "Φανάρι Κυκλοφορίας",
+ "fire_hydrant": "Πυροσβεστικός Κρουνός",
+ "horse": "Άλογο",
+ "street_sign": "Πινακίδα Δρόμου",
+ "stop_sign": "Πινακίδα Στοπ",
+ "bear": "Αρκούδα",
+ "zebra": "Ζέμπρα",
+ "giraffe": "Καμηλοπάρδαλη",
+ "hat": "Καπέλο",
+ "parking_meter": "Παρκόμετρο",
+ "bench": "Παγκάκι",
+ "cat": "Γάτα",
+ "dog": "Σκύλος"
}
diff --git a/web/public/locales/el/views/classificationModel.json b/web/public/locales/el/views/classificationModel.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/el/views/classificationModel.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/el/views/configEditor.json b/web/public/locales/el/views/configEditor.json
index d468103fad..79917bf966 100644
--- a/web/public/locales/el/views/configEditor.json
+++ b/web/public/locales/el/views/configEditor.json
@@ -1,5 +1,18 @@
{
"documentTitle": "Επεξεργαστής ρυθμίσεων - Frigate",
"configEditor": "Επεξεργαστής Ρυθμίσεων",
- "saveAndRestart": "Αποθήκευση και επανεκκίνηση"
+ "saveAndRestart": "Αποθήκευση και επανεκκίνηση",
+ "safeConfigEditor": "Επεξεργαστής ρυθμίσεων (Ασφαλής Λειτουργία)",
+ "safeModeDescription": "Το Frigate είναι σε ασφαλή λειτουργία λόγω λάθους εγκυρότητας ρυθμίσεων.",
+ "copyConfig": "Αντιγραφή Ρυθμίσεων",
+ "saveOnly": "Μόνο Αποθήκευση",
+ "confirm": "Έξοδος χωρίς αποθήκευση;",
+ "toast": {
+ "success": {
+ "copyToClipboard": "Οι Ρυθμίσεις αντιγράφτηκαν στο πρόχειρο."
+ },
+ "error": {
+ "savingError": "Σφάλμα αποθήκευσης ρυθμίσεων"
+ }
+ }
}
diff --git a/web/public/locales/el/views/events.json b/web/public/locales/el/views/events.json
index 76dc0264a7..e2e21a05ca 100644
--- a/web/public/locales/el/views/events.json
+++ b/web/public/locales/el/views/events.json
@@ -4,5 +4,29 @@
"motion": {
"label": "Κίνηση",
"only": "Κίνηση μόνο"
- }
+ },
+ "allCameras": "Όλες οι κάμερες",
+ "empty": {
+ "alert": "Δεν υπάρχουν ειδοποιήσεις για εξέταση",
+ "detection": "Δεν υπάρχουν εντοπισμοί για εξέταση",
+ "motion": "Δεν βρέθηκαν στοιχεία κίνησης"
+ },
+ "timeline": "Χρονολόγιο",
+ "timeline.aria": "Επιλογή χρονοσειράς",
+ "events": {
+ "label": "Γεγονότα",
+ "aria": "Επιλογή γεγονότων",
+ "noFoundForTimePeriod": "Δεν βρέθηκαν γεγονότα για αυτή την περίοδο."
+ },
+ "selected_other": "{{count}} επελεγμένα",
+ "camera": "Κάμερα",
+ "detected": "ανιχνέυτηκε",
+ "documentTitle": "Προεσκόπιση - Frigate",
+ "recordings": {
+ "documentTitle": "Καταγραφές - Frigate"
+ },
+ "calendarFilter": {
+ "last24Hours": "Τελευταίες 24 Ώρες"
+ },
+ "markAsReviewed": "Επιβεβαίωση ως Ελεγμένα"
}
diff --git a/web/public/locales/el/views/explore.json b/web/public/locales/el/views/explore.json
index a48e770eaf..a33fb17bf2 100644
--- a/web/public/locales/el/views/explore.json
+++ b/web/public/locales/el/views/explore.json
@@ -1,3 +1,52 @@
{
- "documentTitle": "Εξερευνήστε - Frigate"
+ "documentTitle": "Εξερευνήστε - Frigate",
+ "generativeAI": "Παραγωγική τεχνητή νοημοσύνη",
+ "exploreMore": "Εξερευνήστε περισσότερα αντικείμενα {{label}}",
+ "exploreIsUnavailable": {
+ "title": "Η εξερεύνηση δεν είναι διαθέσιμη",
+ "embeddingsReindexing": {
+ "context": "Η εξερεύνηση μπορεί να πραγματοποιηθεί μετά το πέρας της καταλογράφησης εμπλουτισμών.",
+ "startingUp": "Εκκίνηση…",
+ "estimatedTime": "Εκτιμώμενο υπόλοιπο χρόνου:",
+ "finishingShortly": "Ολοκλήρωση συντόμως",
+ "step": {
+ "thumbnailsEmbedded": "Ενσωματωμένες εικόνες: ",
+ "descriptionsEmbedded": "Ενσωματωμένες περιγραφές: ",
+ "trackedObjectsProcessed": "Επεξεργασία παρακολουθούμενων αντικειμένων: "
+ }
+ },
+ "downloadingModels": {
+ "context": "Το Frigate κατεβάζει τα απαιτούμενα μοντέλα ενσωμάτωσης για να υποστηρίξει την σημασιολογική αναζήτηση. Αυτό μπορεί να διαρκέσει αρκετά λεπτά αναλόγως και της ταχύτητας σύνδεσης με το διαδύκτιο.",
+ "setup": {
+ "visionModel": "Οπτικό Μοντέλο",
+ "visionModelFeatureExtractor": "Εξαγωγή χαρακτηριστικών οπτικού μοντέλου",
+ "textModel": "Μοντέλο γραφής"
+ }
+ }
+ },
+ "details": {
+ "timestamp": "Χρονοσήμανση",
+ "item": {
+ "tips": {
+ "mismatch_one": "{{count}} μη διαθέσιμο αντικείμενο ανιχνεύτηκε και έχει συνιπολογιστεί στην προεσκόπιση. Αυτό το αντικείμενο είτε δεν πληροί τις προϋποθέσεις ως προειδοποίηση ή ανίχνευση ή έχει ήδη καθαριστεί/διαγραφεί.",
+ "mismatch_other": "{{count}} μη διαθέσιμα αντικείμενα ανιχνεύτηκαν και έχουν συνιπολογιστεί στην προεσκόπιση. Αυτά τα αντικείμενα είτε δεν πληρούν τις προϋποθέσεις ως προειδοποιήσεις ή ανιχνεύσεις ή έχουν ήδη καθαριστεί/διαγραφεί."
+ }
+ }
+ },
+ "type": {
+ "video": "βίντεο",
+ "object_lifecycle": "κύκλος ζωής αντικειμένου"
+ },
+ "objectLifecycle": {
+ "title": "Κύκλος Ζωής Αντικειμένου",
+ "noImageFound": "Δεν βρέθηκε εικόνα για αυτό το χρονικό σημείο."
+ },
+ "trackedObjectsCount_one": "{{count}} παρακολουθούμενο αντικείμενο ",
+ "trackedObjectsCount_other": "{{count}} παρακολουθούμενα αντικείμενα ",
+ "itemMenu": {
+ "downloadVideo": {
+ "label": "Λήψη βίντεο",
+ "aria": "Λήψη βίντεο"
+ }
+ }
}
diff --git a/web/public/locales/el/views/exports.json b/web/public/locales/el/views/exports.json
index e8517ae5cc..f6526eea01 100644
--- a/web/public/locales/el/views/exports.json
+++ b/web/public/locales/el/views/exports.json
@@ -1,5 +1,22 @@
{
"documentTitle": "Εξαγωγή - Frigate",
"search": "Αναζήτηση",
- "deleteExport": "Διαγραφή εξαγωγής"
+ "deleteExport": "Διαγραφή εξαγωγής",
+ "noExports": "Δεν βρέθηκαν εξαγωγές",
+ "deleteExport.desc": "Είστε σίγουροι οτι θέλετε να διαγράψετε {{exportName}};",
+ "editExport": {
+ "title": "Μετονομασία Εξαγωγής",
+ "desc": "Εισάγετε ένα νέο όνομα για την εξαγωγή.",
+ "saveExport": "Αποθήκευση Εξαγωγής"
+ },
+ "toast": {
+ "error": {
+ "renameExportFailed": "Αποτυχία μετονομασίας εξαγωγής:{{errorMessage}}"
+ }
+ },
+ "tooltip": {
+ "shareExport": "Κοινή χρήση εξαγωγής",
+ "downloadVideo": "Λήψη βίντεο",
+ "deleteExport": "Διαγραφή εξαγωγής"
+ }
}
diff --git a/web/public/locales/el/views/faceLibrary.json b/web/public/locales/el/views/faceLibrary.json
index 8ee6c96900..7bb548e073 100644
--- a/web/public/locales/el/views/faceLibrary.json
+++ b/web/public/locales/el/views/faceLibrary.json
@@ -1,10 +1,50 @@
{
"description": {
- "addFace": "Οδηγός για την προσθήκη μιας νέας συλλογής στη Βιβλιοθήκη Προσώπων.",
+ "addFace": "Προσθέστε μια νέα συλλογή στη Βιβλιοθήκη Προσώπων ανεβάζοντας την πρώτη σας εικόνα.",
"placeholder": "Εισαγάγετε ένα όνομα για αυτήν τη συλλογή",
"invalidName": "Μη έγκυρο όνομα. Τα ονόματα μπορούν να περιλαμβάνουν γράμματα, αριθμούς, κενό διάστημα, απόστροφο, παύλα, κάτω παύλα."
},
"details": {
- "person": "Άτομο"
+ "person": "Άτομο",
+ "subLabelScore": "Σκορ υποετικέτας",
+ "scoreInfo": "Το σκορ υποετικέτας είναι το σταθμισμένο σκορ όλων των αναγνωρισμένων προσώπων, αυτό μπορεί να διαφέρει από το σκορ που φαίνεται στο στιγμιότυπο.",
+ "face": "Λεπτομέρειες προσώπου",
+ "faceDesc": "Λεπτομέρειες του παρακολουθούμενου αντικειμένου που παρήγε αυτό το πρόσωπο",
+ "timestamp": "Χρονοσήμανση",
+ "unknown": "Άγνωστο"
+ },
+ "deleteFaceAttempts": {
+ "desc_one": "Είστε σίγουροι ότι θέλετε να διαγράψετε {{count}} πρόσωπο; Αυτή η πράξη δεν επαναφέρεται.",
+ "desc_other": "Είστε σίγουροι ότι θέλετε να διαγράψετε {{count}} πρόσωπα; Αυτή η πράξη δεν επαναφέρεται."
+ },
+ "toast": {
+ "success": {
+ "deletedFace_one": "Επιτυχής διαγραφή {{count}} προσώπου.",
+ "deletedFace_other": "Επιτυχής διαγραφή {{count}} προσώπων.",
+ "deletedName_one": "{{count}} πρόσωπο διεγράφη επιτυχημένα.",
+ "deletedName_other": "{{count}} πρόσωπα διεγράφη επιτυχημένα."
+ }
+ },
+ "documentTitle": "Βιβλιοθήκη προσώπων - Frigate",
+ "uploadFaceImage": {
+ "title": "Μεταφόρτωση Εικόνας Προσώπου",
+ "desc": "Ανεβάστε μια εικόνα για να σαρώσετε πρόσωπα και να τα συμπεριλάβετε στο {{pageToggle}}"
+ },
+ "steps": {
+ "nextSteps": "Επόμενα βήματα",
+ "description": {
+ "uploadFace": "Μεταφορτώστε μια εικόνα του/της {{name}} που δείχνει το πρόσωπο τους από μπροστινή λήψη. Η εικόνα δεν χρειάζεται να περιέχει μόνο το πρόσωπο τους."
+ }
+ },
+ "train": {
+ "title": "Εκπαίδευση",
+ "aria": "Επιλογή εκπαίδευσης",
+ "empty": "Δεν υπάρχουν πρόσφατες προσπάθειες αναγνώρισης προσώπου"
+ },
+ "collections": "Συλλογές",
+ "createFaceLibrary": {
+ "title": "Δημιουργία Συλλογής",
+ "desc": "Δημιουργία νέας συλλογής",
+ "new": "Δημιουργία Νέου Προσώπου"
}
}
diff --git a/web/public/locales/el/views/live.json b/web/public/locales/el/views/live.json
index daeb09636e..b2427114ed 100644
--- a/web/public/locales/el/views/live.json
+++ b/web/public/locales/el/views/live.json
@@ -1,6 +1,69 @@
{
"documentTitle": "Ζωντανά - Frigate",
"twoWayTalk": {
- "enable": "Ενεργοποίηση αμφίδρομης επικοινωνίας"
+ "enable": "Ενεργοποίηση αμφίδρομης επικοινωνίας",
+ "disable": "Απενεργοποίηση αμφίδρομης επικοινωνίας"
+ },
+ "documentTitle.withCamera": "{{camera}} - Ζωντανή μετάδοση - Frigate",
+ "lowBandwidthMode": "Λειτουργία χαμηλής ευρυζωνικότητας",
+ "cameraAudio": {
+ "enable": "Ενεργοποίηση ήχου Κάμερας",
+ "disable": "Απενεργοποίηση Ήχου Κάμερας"
+ },
+ "ptz": {
+ "move": {
+ "clickMove": {
+ "label": "Πατήστε στο πλαίσιο για να κεντράρετε την κάμερα",
+ "enable": "Ενεργοποίηση κλικ για μεταφορά",
+ "disable": "Απενεργοποίηση κλικ για μεταφορά"
+ },
+ "left": {
+ "label": "Κίνηση κάμερας προς τα αριστερά"
+ },
+ "up": {
+ "label": "Κίνηση κάμερας προς τα πάνω"
+ },
+ "down": {
+ "label": "Κίνηση κάμερας προς τα κάτω"
+ },
+ "right": {
+ "label": "Κίνηση κάμερας προς τα δεξιά"
+ }
+ },
+ "zoom": {
+ "in": {
+ "label": "Ζουμάρισμα κάμερας προς τα μέσα"
+ },
+ "out": {
+ "label": "Ζουμάρισμα κάμερας προς τα έξω"
+ }
+ }
+ },
+ "camera": {
+ "enable": "Ενεργοποίηση Κάμερας",
+ "disable": "Απενεργοποίηση Κάμερας"
+ },
+ "muteCameras": {
+ "enable": "Σίγαση Όλων των Καμερών",
+ "disable": "Απενεργοποίηση Σίγασης Όλων των Καμερών"
+ },
+ "detect": {
+ "enable": "Ενεργοποίηση Ανίχνευσης",
+ "disable": "Απενεργοποίηση Ανίχνευσης"
+ },
+ "recording": {
+ "enable": "Ενεργοποίηση Καταγραφής",
+ "disable": "Απενεργοποίηση Καταγραφής"
+ },
+ "snapshots": {
+ "enable": "Ενεργοποίηση Στιγμιοτίπων",
+ "disable": "Απενεργοποίηση Στιγμιοτίπων"
+ },
+ "audioDetect": {
+ "enable": "Ενεργοποίηση Ανίχνευσης Ήχου",
+ "disable": "Απενεργοποίηση Ανίχνευσης Ήχου"
+ },
+ "noCameras": {
+ "buttonText": "Προσθήκη Κάμερας"
}
}
diff --git a/web/public/locales/el/views/recording.json b/web/public/locales/el/views/recording.json
index 063abbd2ba..9681d0e2aa 100644
--- a/web/public/locales/el/views/recording.json
+++ b/web/public/locales/el/views/recording.json
@@ -2,5 +2,11 @@
"filter": "Φίλτρο",
"export": "Εξαγωγή",
"calendar": "Ημερολόγιο",
- "filters": "Φίλτρα"
+ "filters": "Φίλτρα",
+ "toast": {
+ "error": {
+ "noValidTimeSelected": "Μη επιλογή έγκυρης περιόδου",
+ "endTimeMustAfterStartTime": "Το επιλεγμένο τέλος περιόδου πρέπει να είναι μετά την επιλεγμένη αρχή περιόδου"
+ }
+ }
}
diff --git a/web/public/locales/el/views/search.json b/web/public/locales/el/views/search.json
index 96ca56e0d8..1281446cf0 100644
--- a/web/public/locales/el/views/search.json
+++ b/web/public/locales/el/views/search.json
@@ -2,6 +2,28 @@
"search": "Αναζήτηση",
"savedSearches": "Αποθηκευμένες Αναζητήσεις",
"button": {
- "clear": "Εκαθάρηση αναζήτησης"
+ "clear": "Εκαθάρηση αναζήτησης",
+ "save": "Αποθήκευση αναζήτησης",
+ "delete": "Διαγραφή αποθηκευμένης αναζήτησης",
+ "filterInformation": "Πληροφορίες φίλτρου",
+ "filterActive": "Φίλτρα ενεργά"
+ },
+ "searchFor": "Αναζήτηση {{inputValue}}",
+ "trackedObjectId": "Σήμανση παρακολουθούμενου αντικειμένου",
+ "filter": {
+ "label": {
+ "cameras": "Κάμερες",
+ "labels": "Ετικέτες",
+ "zones": "Ζώνες",
+ "max_speed": "Ανώτατη Ταχύτητα",
+ "recognized_license_plate": "Αναγνωρισμένη Πινακίδα Κυκλοφορίας",
+ "has_clip": "Έχει Κλιπ",
+ "has_snapshot": "Έχει Στιγμιότυπο",
+ "sub_labels": "Υποετικέτες",
+ "search_type": "Τύπος Αναζήτησης",
+ "time_range": "Χρονική Περίοδος",
+ "before": "Πριν",
+ "after": "Μετά"
+ }
}
}
diff --git a/web/public/locales/el/views/settings.json b/web/public/locales/el/views/settings.json
index 0d184f3d2c..75884e0d2f 100644
--- a/web/public/locales/el/views/settings.json
+++ b/web/public/locales/el/views/settings.json
@@ -2,6 +2,57 @@
"documentTitle": {
"default": "Ρυθμίσεις - Frigate",
"authentication": "Ρυθμίσεις ελέγχου ταυτοποίησης - Frigate",
- "camera": "Ρυθμίσεις Κάμερας - Frigate"
+ "camera": "Ρυθμίσεις Κάμερας - Frigate",
+ "enrichments": "Ρυθμίσεις εμπλουτισμού - Frigate",
+ "masksAndZones": "Ρυθμίσεις Μασκών και Ζωνών - Frigate",
+ "motionTuner": "Ρύθμιση Κίνησης - Frigate",
+ "object": "Επίλυση σφαλμάτων - Frigate",
+ "general": "Ρυθμίσεις UI - Frigate",
+ "frigatePlus": "Ρυθμίσεις Frigate+ - Frigate",
+ "notifications": "Ρυθμίσεις Ειδοποιήσεων",
+ "cameraManagement": "Διαχείριση καμερών - Frigate",
+ "cameraReview": "Ρυθμίσεις αξιολόγησης κάμερας - Frigate"
+ },
+ "masksAndZones": {
+ "zones": {
+ "point_one": "{{count}} σημέιο",
+ "point_other": "{{count}} σημεία"
+ },
+ "motionMasks": {
+ "point_one": "{{count}} σημείο",
+ "point_other": "{{count}} σημεία"
+ },
+ "objectMasks": {
+ "point_one": "{{count}} σημέιο",
+ "point_other": "{{count}} σημεία"
+ }
+ },
+ "menu": {
+ "ui": "Επιφάνεια Εργασίας",
+ "enrichments": "Εμπλουτισμοί",
+ "cameras": "Ρυθμίσεις Κάμερας",
+ "masksAndZones": "Μάσκες / Ζώνες",
+ "motionTuner": "Ρυθμιστής Κίνησης",
+ "debug": "Επίλυση Σφαλμάτων"
+ },
+ "dialog": {
+ "unsavedChanges": {
+ "title": "Έχετε μη αποθηκευμένες αλλαγές.",
+ "desc": "Θέλετε να αποθηκεύσετε τις αλλαγές σας πριν την συνέχεια;"
+ }
+ },
+ "cameraSetting": {
+ "camera": "Κάμερα",
+ "noCamera": "Δεν υπάρχει Κάμερα"
+ },
+ "triggers": {
+ "dialog": {
+ "form": {
+ "friendly_name": {
+ "placeholder": "Ονομάτισε ή περιέγραψε αυτό το εύνασμα",
+ "description": "Ένα προαιρετικό φιλικό όνομα, ή ένα περιγραφικό κείμενο για αυτό το εύνασμα."
+ }
+ }
+ }
}
}
diff --git a/web/public/locales/el/views/system.json b/web/public/locales/el/views/system.json
index 3076645d68..0ec8ff5879 100644
--- a/web/public/locales/el/views/system.json
+++ b/web/public/locales/el/views/system.json
@@ -1,5 +1,39 @@
{
"documentTitle": {
- "cameras": "Στατιστικά Καμερών - Frigate"
+ "cameras": "Στατιστικά Καμερών - Frigate",
+ "storage": "Στατιστικά αποθήκευσης - Frigate",
+ "general": "Γενικά στατιστικά - Frigate",
+ "enrichments": "Στατιστικά Εμπλουτισμού - Frigate",
+ "logs": {
+ "frigate": "Frigate αρχέιο καταγραφών - Frigate",
+ "go2rtc": "Αρχείο καταγραφής Go2RTC - Frigate",
+ "nginx": "Αρχείο καταγραφών Nginx - Frigate"
+ }
+ },
+ "title": "Σύστημα",
+ "metrics": "Μετρήσεις συστήματος",
+ "logs": {
+ "download": {
+ "label": "Λήψη Αρχείων Καταγραφής"
+ },
+ "copy": {
+ "label": "Αντιγραφή στο πρόχειρο",
+ "success": "Αρχεία καταγραφής αντιγράφτηκαν στο πρόχειρο",
+ "error": "Αποτυχία αντιγραφής των αρχείων καταγραφής στο πρόχειρο"
+ },
+ "type": {
+ "label": "Τύπος",
+ "timestamp": "Χρονοσήμανση",
+ "tag": "Λέξη Κλειδί",
+ "message": "Μήνυμα"
+ }
+ },
+ "general": {
+ "title": "Γενικά",
+ "detector": {
+ "title": "Ανιχνευτές",
+ "inferenceSpeed": "Ταχύτητα Συμπεράσματος Ανιχνευτή",
+ "temperature": "Θερμοκρασία Ανιχνευτή"
+ }
}
}
diff --git a/web/public/locales/en/audio.json b/web/public/locales/en/audio.json
index de5f5638c3..5c197e85b8 100644
--- a/web/public/locales/en/audio.json
+++ b/web/public/locales/en/audio.json
@@ -425,5 +425,79 @@
"television": "Television",
"radio": "Radio",
"field_recording": "Field Recording",
- "scream": "Scream"
+ "scream": "Scream",
+ "sodeling": "Sodeling",
+ "chird": "Chird",
+ "change_ringing": "Change Ringing",
+ "shofar": "Shofar",
+ "liquid": "Liquid",
+ "splash": "Splash",
+ "slosh": "Slosh",
+ "squish": "Squish",
+ "drip": "Drip",
+ "pour": "Pour",
+ "trickle": "Trickle",
+ "gush": "Gush",
+ "fill": "Fill",
+ "spray": "Spray",
+ "pump": "Pump",
+ "stir": "Stir",
+ "boiling": "Boiling",
+ "sonar": "Sonar",
+ "arrow": "Arrow",
+ "whoosh": "Whoosh",
+ "thump": "Thump",
+ "thunk": "Thunk",
+ "electronic_tuner": "Electronic Tuner",
+ "effects_unit": "Effects Unit",
+ "chorus_effect": "Chorus Effect",
+ "basketball_bounce": "Basketball Bounce",
+ "bang": "Bang",
+ "slap": "Slap",
+ "whack": "Whack",
+ "smash": "Smash",
+ "breaking": "Breaking",
+ "bouncing": "Bouncing",
+ "whip": "Whip",
+ "flap": "Flap",
+ "scratch": "Scratch",
+ "scrape": "Scrape",
+ "rub": "Rub",
+ "roll": "Roll",
+ "crushing": "Crushing",
+ "crumpling": "Crumpling",
+ "tearing": "Tearing",
+ "beep": "Beep",
+ "ping": "Ping",
+ "ding": "Ding",
+ "clang": "Clang",
+ "squeal": "Squeal",
+ "creak": "Creak",
+ "rustle": "Rustle",
+ "whir": "Whir",
+ "clatter": "Clatter",
+ "sizzle": "Sizzle",
+ "clicking": "Clicking",
+ "clickety_clack": "Clickety Clack",
+ "rumble": "Rumble",
+ "plop": "Plop",
+ "hum": "Hum",
+ "zing": "Zing",
+ "boing": "Boing",
+ "crunch": "Crunch",
+ "sine_wave": "Sine Wave",
+ "harmonic": "Harmonic",
+ "chirp_tone": "Chirp Tone",
+ "pulse": "Pulse",
+ "inside": "Inside",
+ "outside": "Outside",
+ "reverberation": "Reverberation",
+ "echo": "Echo",
+ "noise": "Noise",
+ "mains_hum": "Mains Hum",
+ "distortion": "Distortion",
+ "sidetone": "Sidetone",
+ "cacophony": "Cacophony",
+ "throbbing": "Throbbing",
+ "vibration": "Vibration"
}
diff --git a/web/public/locales/en/common.json b/web/public/locales/en/common.json
index 86304fff30..aa841c30b5 100644
--- a/web/public/locales/en/common.json
+++ b/web/public/locales/en/common.json
@@ -72,7 +72,10 @@
"formattedTimestampFilename": {
"12hour": "MM-dd-yy-h-mm-ss-a",
"24hour": "MM-dd-yy-HH-mm-ss"
- }
+ },
+ "inProgress": "In progress",
+ "invalidStartTime": "Invalid start time",
+ "invalidEndTime": "Invalid end time"
},
"unit": {
"speed": {
@@ -82,10 +85,32 @@
"length": {
"feet": "feet",
"meters": "meters"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/hour",
+ "mbph": "MB/hour",
+ "gbph": "GB/hour"
}
},
"label": {
- "back": "Go back"
+ "back": "Go back",
+ "hide": "Hide {{item}}",
+ "show": "Show {{item}}",
+ "ID": "ID",
+ "none": "None",
+ "all": "All"
+ },
+ "list": {
+ "two": "{{0}} and {{1}}",
+ "many": "{{items}}, and {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "Optional",
+ "internalID": "The Internal ID Frigate uses in the configuration and database"
},
"button": {
"apply": "Apply",
@@ -122,7 +147,8 @@
"unselect": "Unselect",
"export": "Export",
"deleteNow": "Delete Now",
- "next": "Next"
+ "next": "Next",
+ "continue": "Continue"
},
"menu": {
"system": "System",
@@ -215,6 +241,7 @@
"export": "Export",
"uiPlayground": "UI Playground",
"faceLibrary": "Face Library",
+ "classification": "Classification",
"user": {
"title": "User",
"account": "Account",
@@ -262,5 +289,9 @@
"title": "404",
"desc": "Page not found"
},
- "selectItem": "Select {{item}}"
+ "selectItem": "Select {{item}}",
+ "readTheDocumentation": "Read the documentation",
+ "information": {
+ "pixels": "{{area}}px"
+ }
}
diff --git a/web/public/locales/en/components/auth.json b/web/public/locales/en/components/auth.json
index 05c2a779f5..56b7500705 100644
--- a/web/public/locales/en/components/auth.json
+++ b/web/public/locales/en/components/auth.json
@@ -3,6 +3,7 @@
"user": "Username",
"password": "Password",
"login": "Login",
+ "firstTimeLogin": "Trying to log in for the first time? Credentials are printed in the Frigate logs.",
"errors": {
"usernameRequired": "Username is required",
"passwordRequired": "Password is required",
diff --git a/web/public/locales/en/components/camera.json b/web/public/locales/en/components/camera.json
index 10513a7291..864efa6c4b 100644
--- a/web/public/locales/en/components/camera.json
+++ b/web/public/locales/en/components/camera.json
@@ -27,6 +27,7 @@
"icon": "Icon",
"success": "Camera group ({{name}}) has been saved.",
"camera": {
+ "birdseye": "Birdseye",
"setting": {
"label": "Camera Streaming Settings",
"title": "{{cameraName}} Streaming Settings",
@@ -35,8 +36,7 @@
"audioIsUnavailable": "Audio is unavailable for this stream",
"audio": {
"tips": {
- "title": "Audio must be output from your camera and configured in go2rtc for this stream.",
- "document": "Read the documentation "
+ "title": "Audio must be output from your camera and configured in go2rtc for this stream."
}
},
"stream": "Stream",
diff --git a/web/public/locales/en/components/dialog.json b/web/public/locales/en/components/dialog.json
index 8b2dc0b880..a56c2b1dad 100644
--- a/web/public/locales/en/components/dialog.json
+++ b/web/public/locales/en/components/dialog.json
@@ -52,7 +52,8 @@
"export": "Export",
"selectOrExport": "Select or Export",
"toast": {
- "success": "Successfully started export. View the file in the /exports folder.",
+ "success": "Successfully started export. View the file in the exports page.",
+ "view": "View",
"error": {
"failed": "Failed to start export: {{error}}",
"endTimeMustAfterStartTime": "End time must be after start time",
@@ -69,8 +70,7 @@
"restreaming": {
"disabled": "Restreaming is not enabled for this camera.",
"desc": {
- "title": "Set up go2rtc for additional live view options and audio for this camera.",
- "readTheDocumentation": "Read the documentation"
+ "title": "Set up go2rtc for additional live view options and audio for this camera."
}
},
"showStats": {
@@ -107,7 +107,16 @@
"button": {
"export": "Export",
"markAsReviewed": "Mark as reviewed",
+ "markAsUnreviewed": "Mark as unreviewed",
"deleteNow": "Delete Now"
}
+ },
+ "imagePicker": {
+ "selectImage": "Select a tracked object's thumbnail",
+ "unknownLabel": "Saved Trigger Image",
+ "search": {
+ "placeholder": "Search by label or sub label..."
+ },
+ "noImages": "No thumbnails found for this camera"
}
}
diff --git a/web/public/locales/en/components/filter.json b/web/public/locales/en/components/filter.json
index 08a0ee2b2c..e9ae5c769b 100644
--- a/web/public/locales/en/components/filter.json
+++ b/web/public/locales/en/components/filter.json
@@ -1,5 +1,11 @@
{
"filter": "Filter",
+ "classes": {
+ "label": "Classes",
+ "all": { "title": "All Classes" },
+ "count_one": "{{count}} Class",
+ "count_other": "{{count}} Classes"
+ },
"labels": {
"label": "Labels",
"all": {
@@ -32,6 +38,10 @@
"label": "Sub Labels",
"all": "All Sub Labels"
},
+ "attributes": {
+ "label": "Classification Attributes",
+ "all": "All Attributes"
+ },
"score": "Score",
"estimatedSpeed": "Estimated Speed ({{unit}})",
"features": {
@@ -121,6 +131,8 @@
"loading": "Loading recognized license plates…",
"placeholder": "Type to search license plates…",
"noLicensePlatesFound": "No license plates found.",
- "selectPlatesFromList": "Select one or more plates from the list."
+ "selectPlatesFromList": "Select one or more plates from the list.",
+ "selectAll": "Select all",
+ "clearAll": "Clear all"
}
}
diff --git a/web/public/locales/en/config/audio.json b/web/public/locales/en/config/audio.json
new file mode 100644
index 0000000000..f9aaffa6b0
--- /dev/null
+++ b/web/public/locales/en/config/audio.json
@@ -0,0 +1,26 @@
+{
+ "label": "Global Audio events configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Enable audio events."
+ },
+ "max_not_heard": {
+ "label": "Seconds of not hearing the type of audio to end the event."
+ },
+ "min_volume": {
+ "label": "Min volume required to run audio detection."
+ },
+ "listen": {
+ "label": "Audio to listen for."
+ },
+ "filters": {
+ "label": "Audio filters."
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of audio detection."
+ },
+ "num_threads": {
+ "label": "Number of detection threads"
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/audio_transcription.json b/web/public/locales/en/config/audio_transcription.json
new file mode 100644
index 0000000000..6922b9d801
--- /dev/null
+++ b/web/public/locales/en/config/audio_transcription.json
@@ -0,0 +1,23 @@
+{
+ "label": "Audio transcription config.",
+ "properties": {
+ "enabled": {
+ "label": "Enable audio transcription."
+ },
+ "language": {
+ "label": "Language abbreviation to use for audio event transcription/translation."
+ },
+ "device": {
+ "label": "The device used for license plate recognition."
+ },
+ "model_size": {
+ "label": "The size of the embeddings model used."
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of camera."
+ },
+ "live_enabled": {
+ "label": "Enable live transcriptions."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/auth.json b/web/public/locales/en/config/auth.json
new file mode 100644
index 0000000000..a524d8d1b5
--- /dev/null
+++ b/web/public/locales/en/config/auth.json
@@ -0,0 +1,35 @@
+{
+ "label": "Auth configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Enable authentication"
+ },
+ "reset_admin_password": {
+ "label": "Reset the admin password on startup"
+ },
+ "cookie_name": {
+ "label": "Name for jwt token cookie"
+ },
+ "cookie_secure": {
+ "label": "Set secure flag on cookie"
+ },
+ "session_length": {
+ "label": "Session length for jwt session tokens"
+ },
+ "refresh_time": {
+ "label": "Refresh the session if it is going to expire in this many seconds"
+ },
+ "failed_login_rate_limit": {
+ "label": "Rate limits for failed login attempts."
+ },
+ "trusted_proxies": {
+ "label": "Trusted proxies for determining IP address to rate limit"
+ },
+ "hash_iterations": {
+ "label": "Password hash iterations"
+ },
+ "roles": {
+ "label": "Role to camera mappings. Empty list grants access to all cameras."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/birdseye.json b/web/public/locales/en/config/birdseye.json
new file mode 100644
index 0000000000..f122f314c3
--- /dev/null
+++ b/web/public/locales/en/config/birdseye.json
@@ -0,0 +1,37 @@
+{
+ "label": "Birdseye configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Enable birdseye view."
+ },
+ "mode": {
+ "label": "Tracking mode."
+ },
+ "restream": {
+ "label": "Restream birdseye via RTSP."
+ },
+ "width": {
+ "label": "Birdseye width."
+ },
+ "height": {
+ "label": "Birdseye height."
+ },
+ "quality": {
+ "label": "Encoding quality."
+ },
+ "inactivity_threshold": {
+ "label": "Birdseye Inactivity Threshold"
+ },
+ "layout": {
+ "label": "Birdseye Layout Config",
+ "properties": {
+ "scaling_factor": {
+ "label": "Birdseye Scaling Factor"
+ },
+ "max_cameras": {
+ "label": "Max cameras"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/camera_groups.json b/web/public/locales/en/config/camera_groups.json
new file mode 100644
index 0000000000..2900e9c679
--- /dev/null
+++ b/web/public/locales/en/config/camera_groups.json
@@ -0,0 +1,14 @@
+{
+ "label": "Camera group configuration",
+ "properties": {
+ "cameras": {
+ "label": "List of cameras in this group."
+ },
+ "icon": {
+ "label": "Icon that represents camera group."
+ },
+ "order": {
+ "label": "Sort order for group."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/cameras.json b/web/public/locales/en/config/cameras.json
new file mode 100644
index 0000000000..67015bde5b
--- /dev/null
+++ b/web/public/locales/en/config/cameras.json
@@ -0,0 +1,761 @@
+{
+ "label": "Camera configuration.",
+ "properties": {
+ "name": {
+ "label": "Camera name."
+ },
+ "friendly_name": {
+ "label": "Camera friendly name used in the Frigate UI."
+ },
+ "enabled": {
+ "label": "Enable camera."
+ },
+ "audio": {
+ "label": "Audio events configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Enable audio events."
+ },
+ "max_not_heard": {
+ "label": "Seconds of not hearing the type of audio to end the event."
+ },
+ "min_volume": {
+ "label": "Min volume required to run audio detection."
+ },
+ "listen": {
+ "label": "Audio to listen for."
+ },
+ "filters": {
+ "label": "Audio filters."
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of audio detection."
+ },
+ "num_threads": {
+ "label": "Number of detection threads"
+ }
+ }
+ },
+ "audio_transcription": {
+ "label": "Audio transcription config.",
+ "properties": {
+ "enabled": {
+ "label": "Enable audio transcription."
+ },
+ "language": {
+ "label": "Language abbreviation to use for audio event transcription/translation."
+ },
+ "device": {
+ "label": "The device used for license plate recognition."
+ },
+ "model_size": {
+ "label": "The size of the embeddings model used."
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of camera."
+ },
+ "live_enabled": {
+ "label": "Enable live transcriptions."
+ }
+ }
+ },
+ "birdseye": {
+ "label": "Birdseye camera configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Enable birdseye view for camera."
+ },
+ "mode": {
+ "label": "Tracking mode for camera."
+ },
+ "order": {
+ "label": "Position of the camera in the birdseye view."
+ }
+ }
+ },
+ "detect": {
+ "label": "Object detection configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Detection Enabled."
+ },
+ "height": {
+ "label": "Height of the stream for the detect role."
+ },
+ "width": {
+ "label": "Width of the stream for the detect role."
+ },
+ "fps": {
+ "label": "Number of frames per second to process through detection."
+ },
+ "min_initialized": {
+ "label": "Minimum number of consecutive hits for an object to be initialized by the tracker."
+ },
+ "max_disappeared": {
+ "label": "Maximum number of frames the object can disappear before detection ends."
+ },
+ "stationary": {
+ "label": "Stationary objects config.",
+ "properties": {
+ "interval": {
+ "label": "Frame interval for checking stationary objects."
+ },
+ "threshold": {
+ "label": "Number of frames without a position change for an object to be considered stationary"
+ },
+ "max_frames": {
+ "label": "Max frames for stationary objects.",
+ "properties": {
+ "default": {
+ "label": "Default max frames."
+ },
+ "objects": {
+ "label": "Object specific max frames."
+ }
+ }
+ },
+ "classifier": {
+ "label": "Enable visual classifier for determing if objects with jittery bounding boxes are stationary."
+ }
+ }
+ },
+ "annotation_offset": {
+ "label": "Milliseconds to offset detect annotations by."
+ }
+ }
+ },
+ "face_recognition": {
+ "label": "Face recognition config.",
+ "properties": {
+ "enabled": {
+ "label": "Enable face recognition."
+ },
+ "min_area": {
+ "label": "Min area of face box to consider running face recognition."
+ }
+ }
+ },
+ "ffmpeg": {
+ "label": "FFmpeg configuration for the camera.",
+ "properties": {
+ "path": {
+ "label": "FFmpeg path"
+ },
+ "global_args": {
+ "label": "Global FFmpeg arguments."
+ },
+ "hwaccel_args": {
+ "label": "FFmpeg hardware acceleration arguments."
+ },
+ "input_args": {
+ "label": "FFmpeg input arguments."
+ },
+ "output_args": {
+ "label": "FFmpeg output arguments per role.",
+ "properties": {
+ "detect": {
+ "label": "Detect role FFmpeg output arguments."
+ },
+ "record": {
+ "label": "Record role FFmpeg output arguments."
+ }
+ }
+ },
+ "retry_interval": {
+ "label": "Time in seconds to wait before FFmpeg retries connecting to the camera."
+ },
+ "apple_compatibility": {
+ "label": "Set tag on HEVC (H.265) recording stream to improve compatibility with Apple players."
+ },
+ "inputs": {
+ "label": "Camera inputs."
+ }
+ }
+ },
+ "live": {
+ "label": "Live playback settings.",
+ "properties": {
+ "streams": {
+ "label": "Friendly names and restream names to use for live view."
+ },
+ "height": {
+ "label": "Live camera view height"
+ },
+ "quality": {
+ "label": "Live camera view quality"
+ }
+ }
+ },
+ "lpr": {
+ "label": "LPR config.",
+ "properties": {
+ "enabled": {
+ "label": "Enable license plate recognition."
+ },
+ "expire_time": {
+ "label": "Expire plates not seen after number of seconds (for dedicated LPR cameras only)."
+ },
+ "min_area": {
+ "label": "Minimum area of license plate to begin running recognition."
+ },
+ "enhancement": {
+ "label": "Amount of contrast adjustment and denoising to apply to license plate images before recognition."
+ }
+ }
+ },
+ "motion": {
+ "label": "Motion detection configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Enable motion on all cameras."
+ },
+ "threshold": {
+ "label": "Motion detection threshold (1-255)."
+ },
+ "lightning_threshold": {
+ "label": "Lightning detection threshold (0.3-1.0)."
+ },
+ "improve_contrast": {
+ "label": "Improve Contrast"
+ },
+ "contour_area": {
+ "label": "Contour Area"
+ },
+ "delta_alpha": {
+ "label": "Delta Alpha"
+ },
+ "frame_alpha": {
+ "label": "Frame Alpha"
+ },
+ "frame_height": {
+ "label": "Frame Height"
+ },
+ "mask": {
+ "label": "Coordinates polygon for the motion mask."
+ },
+ "mqtt_off_delay": {
+ "label": "Delay for updating MQTT with no motion detected."
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of motion detection."
+ }
+ }
+ },
+ "objects": {
+ "label": "Object configuration.",
+ "properties": {
+ "track": {
+ "label": "Objects to track."
+ },
+ "filters": {
+ "label": "Object filters.",
+ "properties": {
+ "min_area": {
+ "label": "Minimum area of bounding box for object to be counted. Can be pixels (int) or percentage (float between 0.000001 and 0.99)."
+ },
+ "max_area": {
+ "label": "Maximum area of bounding box for object to be counted. Can be pixels (int) or percentage (float between 0.000001 and 0.99)."
+ },
+ "min_ratio": {
+ "label": "Minimum ratio of bounding box's width/height for object to be counted."
+ },
+ "max_ratio": {
+ "label": "Maximum ratio of bounding box's width/height for object to be counted."
+ },
+ "threshold": {
+ "label": "Average detection confidence threshold for object to be counted."
+ },
+ "min_score": {
+ "label": "Minimum detection confidence for object to be counted."
+ },
+ "mask": {
+ "label": "Detection area polygon mask for this filter configuration."
+ }
+ }
+ },
+ "mask": {
+ "label": "Object mask."
+ },
+ "genai": {
+ "label": "Config for using genai to analyze objects.",
+ "properties": {
+ "enabled": {
+ "label": "Enable GenAI for camera."
+ },
+ "use_snapshot": {
+ "label": "Use snapshots for generating descriptions."
+ },
+ "prompt": {
+ "label": "Default caption prompt."
+ },
+ "object_prompts": {
+ "label": "Object specific prompts."
+ },
+ "objects": {
+ "label": "List of objects to run generative AI for."
+ },
+ "required_zones": {
+ "label": "List of required zones to be entered in order to run generative AI."
+ },
+ "debug_save_thumbnails": {
+ "label": "Save thumbnails sent to generative AI for debugging purposes."
+ },
+ "send_triggers": {
+ "label": "What triggers to use to send frames to generative AI for a tracked object.",
+ "properties": {
+ "tracked_object_end": {
+ "label": "Send once the object is no longer tracked."
+ },
+ "after_significant_updates": {
+ "label": "Send an early request to generative AI when X frames accumulated."
+ }
+ }
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of generative AI."
+ }
+ }
+ }
+ }
+ },
+ "record": {
+ "label": "Record configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Enable record on all cameras."
+ },
+ "sync_recordings": {
+ "label": "Sync recordings with disk on startup and once a day."
+ },
+ "expire_interval": {
+ "label": "Number of minutes to wait between cleanup runs."
+ },
+ "continuous": {
+ "label": "Continuous recording retention settings.",
+ "properties": {
+ "days": {
+ "label": "Default retention period."
+ }
+ }
+ },
+ "motion": {
+ "label": "Motion recording retention settings.",
+ "properties": {
+ "days": {
+ "label": "Default retention period."
+ }
+ }
+ },
+ "detections": {
+ "label": "Detection specific retention settings.",
+ "properties": {
+ "pre_capture": {
+ "label": "Seconds to retain before event starts."
+ },
+ "post_capture": {
+ "label": "Seconds to retain after event ends."
+ },
+ "retain": {
+ "label": "Event retention settings.",
+ "properties": {
+ "days": {
+ "label": "Default retention period."
+ },
+ "mode": {
+ "label": "Retain mode."
+ }
+ }
+ }
+ }
+ },
+ "alerts": {
+ "label": "Alert specific retention settings.",
+ "properties": {
+ "pre_capture": {
+ "label": "Seconds to retain before event starts."
+ },
+ "post_capture": {
+ "label": "Seconds to retain after event ends."
+ },
+ "retain": {
+ "label": "Event retention settings.",
+ "properties": {
+ "days": {
+ "label": "Default retention period."
+ },
+ "mode": {
+ "label": "Retain mode."
+ }
+ }
+ }
+ }
+ },
+ "export": {
+ "label": "Recording Export Config",
+ "properties": {
+ "timelapse_args": {
+ "label": "Timelapse Args"
+ }
+ }
+ },
+ "preview": {
+ "label": "Recording Preview Config",
+ "properties": {
+ "quality": {
+ "label": "Quality of recording preview."
+ }
+ }
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of recording."
+ }
+ }
+ },
+ "review": {
+ "label": "Review configuration.",
+ "properties": {
+ "alerts": {
+ "label": "Review alerts config.",
+ "properties": {
+ "enabled": {
+ "label": "Enable alerts."
+ },
+ "labels": {
+ "label": "Labels to create alerts for."
+ },
+ "required_zones": {
+ "label": "List of required zones to be entered in order to save the event as an alert."
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of alerts."
+ },
+ "cutoff_time": {
+ "label": "Time to cutoff alerts after no alert-causing activity has occurred."
+ }
+ }
+ },
+ "detections": {
+ "label": "Review detections config.",
+ "properties": {
+ "enabled": {
+ "label": "Enable detections."
+ },
+ "labels": {
+ "label": "Labels to create detections for."
+ },
+ "required_zones": {
+ "label": "List of required zones to be entered in order to save the event as a detection."
+ },
+ "cutoff_time": {
+ "label": "Time to cutoff detection after no detection-causing activity has occurred."
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of detections."
+ }
+ }
+ },
+ "genai": {
+ "label": "Review description genai config.",
+ "properties": {
+ "enabled": {
+ "label": "Enable GenAI descriptions for review items."
+ },
+ "alerts": {
+ "label": "Enable GenAI for alerts."
+ },
+ "detections": {
+ "label": "Enable GenAI for detections."
+ },
+ "additional_concerns": {
+ "label": "Additional concerns that GenAI should make note of on this camera."
+ },
+ "debug_save_thumbnails": {
+ "label": "Save thumbnails sent to generative AI for debugging purposes."
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of generative AI."
+ },
+ "preferred_language": {
+ "label": "Preferred language for GenAI Response"
+ },
+ "activity_context_prompt": {
+ "label": "Custom activity context prompt defining normal activity patterns for this property."
+ }
+ }
+ }
+ }
+ },
+ "semantic_search": {
+ "label": "Semantic search configuration.",
+ "properties": {
+ "triggers": {
+ "label": "Trigger actions on tracked objects that match existing thumbnails or descriptions",
+ "properties": {
+ "enabled": {
+ "label": "Enable this trigger"
+ },
+ "type": {
+ "label": "Type of trigger"
+ },
+ "data": {
+ "label": "Trigger content (text phrase or image ID)"
+ },
+ "threshold": {
+ "label": "Confidence score required to run the trigger"
+ },
+ "actions": {
+ "label": "Actions to perform when trigger is matched"
+ }
+ }
+ }
+ }
+ },
+ "snapshots": {
+ "label": "Snapshot configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Snapshots enabled."
+ },
+ "clean_copy": {
+ "label": "Create a clean copy of the snapshot image."
+ },
+ "timestamp": {
+ "label": "Add a timestamp overlay on the snapshot."
+ },
+ "bounding_box": {
+ "label": "Add a bounding box overlay on the snapshot."
+ },
+ "crop": {
+ "label": "Crop the snapshot to the detected object."
+ },
+ "required_zones": {
+ "label": "List of required zones to be entered in order to save a snapshot."
+ },
+ "height": {
+ "label": "Snapshot image height."
+ },
+ "retain": {
+ "label": "Snapshot retention.",
+ "properties": {
+ "default": {
+ "label": "Default retention period."
+ },
+ "mode": {
+ "label": "Retain mode."
+ },
+ "objects": {
+ "label": "Object retention period."
+ }
+ }
+ },
+ "quality": {
+ "label": "Quality of the encoded jpeg (0-100)."
+ }
+ }
+ },
+ "timestamp_style": {
+ "label": "Timestamp style configuration.",
+ "properties": {
+ "position": {
+ "label": "Timestamp position."
+ },
+ "format": {
+ "label": "Timestamp format."
+ },
+ "color": {
+ "label": "Timestamp color.",
+ "properties": {
+ "red": {
+ "label": "Red"
+ },
+ "green": {
+ "label": "Green"
+ },
+ "blue": {
+ "label": "Blue"
+ }
+ }
+ },
+ "thickness": {
+ "label": "Timestamp thickness."
+ },
+ "effect": {
+ "label": "Timestamp effect."
+ }
+ }
+ },
+ "best_image_timeout": {
+ "label": "How long to wait for the image with the highest confidence score."
+ },
+ "mqtt": {
+ "label": "MQTT configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Send image over MQTT."
+ },
+ "timestamp": {
+ "label": "Add timestamp to MQTT image."
+ },
+ "bounding_box": {
+ "label": "Add bounding box to MQTT image."
+ },
+ "crop": {
+ "label": "Crop MQTT image to detected object."
+ },
+ "height": {
+ "label": "MQTT image height."
+ },
+ "required_zones": {
+ "label": "List of required zones to be entered in order to send the image."
+ },
+ "quality": {
+ "label": "Quality of the encoded jpeg (0-100)."
+ }
+ }
+ },
+ "notifications": {
+ "label": "Notifications configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Enable notifications"
+ },
+ "email": {
+ "label": "Email required for push."
+ },
+ "cooldown": {
+ "label": "Cooldown period for notifications (time in seconds)."
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of notifications."
+ }
+ }
+ },
+ "onvif": {
+ "label": "Camera Onvif Configuration.",
+ "properties": {
+ "host": {
+ "label": "Onvif Host"
+ },
+ "port": {
+ "label": "Onvif Port"
+ },
+ "user": {
+ "label": "Onvif Username"
+ },
+ "password": {
+ "label": "Onvif Password"
+ },
+ "tls_insecure": {
+ "label": "Onvif Disable TLS verification"
+ },
+ "autotracking": {
+ "label": "PTZ auto tracking config.",
+ "properties": {
+ "enabled": {
+ "label": "Enable PTZ object autotracking."
+ },
+ "calibrate_on_startup": {
+ "label": "Perform a camera calibration when Frigate starts."
+ },
+ "zooming": {
+ "label": "Autotracker zooming mode."
+ },
+ "zoom_factor": {
+ "label": "Zooming factor (0.1-0.75)."
+ },
+ "track": {
+ "label": "Objects to track."
+ },
+ "required_zones": {
+ "label": "List of required zones to be entered in order to begin autotracking."
+ },
+ "return_preset": {
+ "label": "Name of camera preset to return to when object tracking is over."
+ },
+ "timeout": {
+ "label": "Seconds to delay before returning to preset."
+ },
+ "movement_weights": {
+ "label": "Internal value used for PTZ movements based on the speed of your camera's motor."
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of autotracking."
+ }
+ }
+ },
+ "ignore_time_mismatch": {
+ "label": "Onvif Ignore Time Synchronization Mismatch Between Camera and Server"
+ }
+ }
+ },
+ "type": {
+ "label": "Camera Type"
+ },
+ "ui": {
+ "label": "Camera UI Modifications.",
+ "properties": {
+ "order": {
+ "label": "Order of camera in UI."
+ },
+ "dashboard": {
+ "label": "Show this camera in Frigate dashboard UI."
+ }
+ }
+ },
+ "webui_url": {
+ "label": "URL to visit the camera directly from system page"
+ },
+ "zones": {
+ "label": "Zone configuration.",
+ "properties": {
+ "filters": {
+ "label": "Zone filters.",
+ "properties": {
+ "min_area": {
+ "label": "Minimum area of bounding box for object to be counted. Can be pixels (int) or percentage (float between 0.000001 and 0.99)."
+ },
+ "max_area": {
+ "label": "Maximum area of bounding box for object to be counted. Can be pixels (int) or percentage (float between 0.000001 and 0.99)."
+ },
+ "min_ratio": {
+ "label": "Minimum ratio of bounding box's width/height for object to be counted."
+ },
+ "max_ratio": {
+ "label": "Maximum ratio of bounding box's width/height for object to be counted."
+ },
+ "threshold": {
+ "label": "Average detection confidence threshold for object to be counted."
+ },
+ "min_score": {
+ "label": "Minimum detection confidence for object to be counted."
+ },
+ "mask": {
+ "label": "Detection area polygon mask for this filter configuration."
+ }
+ }
+ },
+ "coordinates": {
+ "label": "Coordinates polygon for the defined zone."
+ },
+ "distances": {
+ "label": "Real-world distances for the sides of quadrilateral for the defined zone."
+ },
+ "inertia": {
+ "label": "Number of consecutive frames required for object to be considered present in the zone."
+ },
+ "loitering_time": {
+ "label": "Number of seconds that an object must loiter to be considered in the zone."
+ },
+ "speed_threshold": {
+ "label": "Minimum speed value for an object to be considered in the zone."
+ },
+ "objects": {
+ "label": "List of objects that can trigger the zone."
+ }
+ }
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of camera."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/classification.json b/web/public/locales/en/config/classification.json
new file mode 100644
index 0000000000..e8014b2fac
--- /dev/null
+++ b/web/public/locales/en/config/classification.json
@@ -0,0 +1,58 @@
+{
+ "label": "Object classification config.",
+ "properties": {
+ "bird": {
+ "label": "Bird classification config.",
+ "properties": {
+ "enabled": {
+ "label": "Enable bird classification."
+ },
+ "threshold": {
+ "label": "Minimum classification score required to be considered a match."
+ }
+ }
+ },
+ "custom": {
+ "label": "Custom Classification Model Configs.",
+ "properties": {
+ "enabled": {
+ "label": "Enable running the model."
+ },
+ "name": {
+ "label": "Name of classification model."
+ },
+ "threshold": {
+ "label": "Classification score threshold to change the state."
+ },
+ "object_config": {
+ "properties": {
+ "objects": {
+ "label": "Object types to classify."
+ },
+ "classification_type": {
+ "label": "Type of classification that is applied."
+ }
+ }
+ },
+ "state_config": {
+ "properties": {
+ "cameras": {
+ "label": "Cameras to run classification on.",
+ "properties": {
+ "crop": {
+ "label": "Crop of image frame on this camera to run classification on."
+ }
+ }
+ },
+ "motion": {
+ "label": "If classification should be run when motion is detected in the crop."
+ },
+ "interval": {
+ "label": "Interval to run classification on in seconds."
+ }
+ }
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/database.json b/web/public/locales/en/config/database.json
new file mode 100644
index 0000000000..ece7ccbaa8
--- /dev/null
+++ b/web/public/locales/en/config/database.json
@@ -0,0 +1,8 @@
+{
+ "label": "Database configuration.",
+ "properties": {
+ "path": {
+ "label": "Database path."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/detect.json b/web/public/locales/en/config/detect.json
new file mode 100644
index 0000000000..9e1b593139
--- /dev/null
+++ b/web/public/locales/en/config/detect.json
@@ -0,0 +1,51 @@
+{
+ "label": "Global object tracking configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Detection Enabled."
+ },
+ "height": {
+ "label": "Height of the stream for the detect role."
+ },
+ "width": {
+ "label": "Width of the stream for the detect role."
+ },
+ "fps": {
+ "label": "Number of frames per second to process through detection."
+ },
+ "min_initialized": {
+ "label": "Minimum number of consecutive hits for an object to be initialized by the tracker."
+ },
+ "max_disappeared": {
+ "label": "Maximum number of frames the object can disappear before detection ends."
+ },
+ "stationary": {
+ "label": "Stationary objects config.",
+ "properties": {
+ "interval": {
+ "label": "Frame interval for checking stationary objects."
+ },
+ "threshold": {
+ "label": "Number of frames without a position change for an object to be considered stationary"
+ },
+ "max_frames": {
+ "label": "Max frames for stationary objects.",
+ "properties": {
+ "default": {
+ "label": "Default max frames."
+ },
+ "objects": {
+ "label": "Object specific max frames."
+ }
+ }
+ },
+ "classifier": {
+ "label": "Enable visual classifier for determing if objects with jittery bounding boxes are stationary."
+ }
+ }
+ },
+ "annotation_offset": {
+ "label": "Milliseconds to offset detect annotations by."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/detectors.json b/web/public/locales/en/config/detectors.json
new file mode 100644
index 0000000000..1bd6fec70d
--- /dev/null
+++ b/web/public/locales/en/config/detectors.json
@@ -0,0 +1,14 @@
+{
+ "label": "Detector hardware configuration.",
+ "properties": {
+ "type": {
+ "label": "Detector Type"
+ },
+ "model": {
+ "label": "Detector specific model configuration."
+ },
+ "model_path": {
+ "label": "Detector specific model path."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/environment_vars.json b/web/public/locales/en/config/environment_vars.json
new file mode 100644
index 0000000000..ce97ce49ec
--- /dev/null
+++ b/web/public/locales/en/config/environment_vars.json
@@ -0,0 +1,3 @@
+{
+ "label": "Frigate environment variables."
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/face_recognition.json b/web/public/locales/en/config/face_recognition.json
new file mode 100644
index 0000000000..705d754680
--- /dev/null
+++ b/web/public/locales/en/config/face_recognition.json
@@ -0,0 +1,36 @@
+{
+ "label": "Face recognition config.",
+ "properties": {
+ "enabled": {
+ "label": "Enable face recognition."
+ },
+ "model_size": {
+ "label": "The size of the embeddings model used."
+ },
+ "unknown_score": {
+ "label": "Minimum face distance score required to be marked as a potential match."
+ },
+ "detection_threshold": {
+ "label": "Minimum face detection score required to be considered a face."
+ },
+ "recognition_threshold": {
+ "label": "Minimum face distance score required to be considered a match."
+ },
+ "min_area": {
+ "label": "Min area of face box to consider running face recognition."
+ },
+ "min_faces": {
+ "label": "Min face recognitions for the sub label to be applied to the person object."
+ },
+ "save_attempts": {
+ "label": "Number of face attempts to save in the recent recognitions tab."
+ },
+ "blur_confidence_filter": {
+ "label": "Apply blur quality filter to face confidence."
+ },
+ "device": {
+ "label": "The device key to use for face recognition.",
+ "description": "This is an override, to target a specific device. See https://onnxruntime.ai/docs/execution-providers/ for more information"
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/ffmpeg.json b/web/public/locales/en/config/ffmpeg.json
new file mode 100644
index 0000000000..570da5a359
--- /dev/null
+++ b/web/public/locales/en/config/ffmpeg.json
@@ -0,0 +1,34 @@
+{
+ "label": "Global FFmpeg configuration.",
+ "properties": {
+ "path": {
+ "label": "FFmpeg path"
+ },
+ "global_args": {
+ "label": "Global FFmpeg arguments."
+ },
+ "hwaccel_args": {
+ "label": "FFmpeg hardware acceleration arguments."
+ },
+ "input_args": {
+ "label": "FFmpeg input arguments."
+ },
+ "output_args": {
+ "label": "FFmpeg output arguments per role.",
+ "properties": {
+ "detect": {
+ "label": "Detect role FFmpeg output arguments."
+ },
+ "record": {
+ "label": "Record role FFmpeg output arguments."
+ }
+ }
+ },
+ "retry_interval": {
+ "label": "Time in seconds to wait before FFmpeg retries connecting to the camera."
+ },
+ "apple_compatibility": {
+ "label": "Set tag on HEVC (H.265) recording stream to improve compatibility with Apple players."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/genai.json b/web/public/locales/en/config/genai.json
new file mode 100644
index 0000000000..084b921c2a
--- /dev/null
+++ b/web/public/locales/en/config/genai.json
@@ -0,0 +1,20 @@
+{
+ "label": "Generative AI configuration.",
+ "properties": {
+ "api_key": {
+ "label": "Provider API key."
+ },
+ "base_url": {
+ "label": "Provider base url."
+ },
+ "model": {
+ "label": "GenAI model."
+ },
+ "provider": {
+ "label": "GenAI provider."
+ },
+ "provider_options": {
+ "label": "GenAI Provider extra options."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/go2rtc.json b/web/public/locales/en/config/go2rtc.json
new file mode 100644
index 0000000000..76ec330203
--- /dev/null
+++ b/web/public/locales/en/config/go2rtc.json
@@ -0,0 +1,3 @@
+{
+ "label": "Global restream configuration."
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/live.json b/web/public/locales/en/config/live.json
new file mode 100644
index 0000000000..3621701370
--- /dev/null
+++ b/web/public/locales/en/config/live.json
@@ -0,0 +1,14 @@
+{
+ "label": "Live playback settings.",
+ "properties": {
+ "streams": {
+ "label": "Friendly names and restream names to use for live view."
+ },
+ "height": {
+ "label": "Live camera view height"
+ },
+ "quality": {
+ "label": "Live camera view quality"
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/logger.json b/web/public/locales/en/config/logger.json
new file mode 100644
index 0000000000..3d51786a7f
--- /dev/null
+++ b/web/public/locales/en/config/logger.json
@@ -0,0 +1,11 @@
+{
+ "label": "Logging configuration.",
+ "properties": {
+ "default": {
+ "label": "Default logging level."
+ },
+ "logs": {
+ "label": "Log level for specified processes."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/lpr.json b/web/public/locales/en/config/lpr.json
new file mode 100644
index 0000000000..951d1f8f65
--- /dev/null
+++ b/web/public/locales/en/config/lpr.json
@@ -0,0 +1,45 @@
+{
+ "label": "License Plate recognition config.",
+ "properties": {
+ "enabled": {
+ "label": "Enable license plate recognition."
+ },
+ "model_size": {
+ "label": "The size of the embeddings model used."
+ },
+ "detection_threshold": {
+ "label": "License plate object confidence score required to begin running recognition."
+ },
+ "min_area": {
+ "label": "Minimum area of license plate to begin running recognition."
+ },
+ "recognition_threshold": {
+ "label": "Recognition confidence score required to add the plate to the object as a sub label."
+ },
+ "min_plate_length": {
+ "label": "Minimum number of characters a license plate must have to be added to the object as a sub label."
+ },
+ "format": {
+ "label": "Regular expression for the expected format of license plate."
+ },
+ "match_distance": {
+ "label": "Allow this number of missing/incorrect characters to still cause a detected plate to match a known plate."
+ },
+ "known_plates": {
+ "label": "Known plates to track (strings or regular expressions)."
+ },
+ "enhancement": {
+ "label": "Amount of contrast adjustment and denoising to apply to license plate images before recognition."
+ },
+ "debug_save_plates": {
+ "label": "Save plates captured for LPR for debugging purposes."
+ },
+ "device": {
+ "label": "The device key to use for LPR.",
+ "description": "This is an override, to target a specific device. See https://onnxruntime.ai/docs/execution-providers/ for more information"
+ },
+ "replace_rules": {
+ "label": "List of regex replacement rules for normalizing detected plates. Each rule has 'pattern' and 'replacement'."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/model.json b/web/public/locales/en/config/model.json
new file mode 100644
index 0000000000..0bc2c1ddfa
--- /dev/null
+++ b/web/public/locales/en/config/model.json
@@ -0,0 +1,35 @@
+{
+ "label": "Detection model configuration.",
+ "properties": {
+ "path": {
+ "label": "Custom Object detection model path."
+ },
+ "labelmap_path": {
+ "label": "Label map for custom object detector."
+ },
+ "width": {
+ "label": "Object detection model input width."
+ },
+ "height": {
+ "label": "Object detection model input height."
+ },
+ "labelmap": {
+ "label": "Labelmap customization."
+ },
+ "attributes_map": {
+ "label": "Map of object labels to their attribute labels."
+ },
+ "input_tensor": {
+ "label": "Model Input Tensor Shape"
+ },
+ "input_pixel_format": {
+ "label": "Model Input Pixel Color Format"
+ },
+ "input_dtype": {
+ "label": "Model Input D Type"
+ },
+ "model_type": {
+ "label": "Object Detection Model Type"
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/motion.json b/web/public/locales/en/config/motion.json
new file mode 100644
index 0000000000..183bfdf343
--- /dev/null
+++ b/web/public/locales/en/config/motion.json
@@ -0,0 +1,3 @@
+{
+ "label": "Global motion detection configuration."
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/mqtt.json b/web/public/locales/en/config/mqtt.json
new file mode 100644
index 0000000000..d2625ac837
--- /dev/null
+++ b/web/public/locales/en/config/mqtt.json
@@ -0,0 +1,44 @@
+{
+ "label": "MQTT configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Enable MQTT Communication."
+ },
+ "host": {
+ "label": "MQTT Host"
+ },
+ "port": {
+ "label": "MQTT Port"
+ },
+ "topic_prefix": {
+ "label": "MQTT Topic Prefix"
+ },
+ "client_id": {
+ "label": "MQTT Client ID"
+ },
+ "stats_interval": {
+ "label": "MQTT Camera Stats Interval"
+ },
+ "user": {
+ "label": "MQTT Username"
+ },
+ "password": {
+ "label": "MQTT Password"
+ },
+ "tls_ca_certs": {
+ "label": "MQTT TLS CA Certificates"
+ },
+ "tls_client_cert": {
+ "label": "MQTT TLS Client Certificate"
+ },
+ "tls_client_key": {
+ "label": "MQTT TLS Client Key"
+ },
+ "tls_insecure": {
+ "label": "MQTT TLS Insecure"
+ },
+ "qos": {
+ "label": "MQTT QoS"
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/networking.json b/web/public/locales/en/config/networking.json
new file mode 100644
index 0000000000..0f8d9cc546
--- /dev/null
+++ b/web/public/locales/en/config/networking.json
@@ -0,0 +1,13 @@
+{
+ "label": "Networking configuration",
+ "properties": {
+ "ipv6": {
+ "label": "Network configuration",
+ "properties": {
+ "enabled": {
+ "label": "Enable IPv6 for port 5000 and/or 8971"
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/notifications.json b/web/public/locales/en/config/notifications.json
new file mode 100644
index 0000000000..b529f10e0b
--- /dev/null
+++ b/web/public/locales/en/config/notifications.json
@@ -0,0 +1,17 @@
+{
+ "label": "Global notification configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Enable notifications"
+ },
+ "email": {
+ "label": "Email required for push."
+ },
+ "cooldown": {
+ "label": "Cooldown period for notifications (time in seconds)."
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of notifications."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/objects.json b/web/public/locales/en/config/objects.json
new file mode 100644
index 0000000000..f041672a0e
--- /dev/null
+++ b/web/public/locales/en/config/objects.json
@@ -0,0 +1,77 @@
+{
+ "label": "Global object configuration.",
+ "properties": {
+ "track": {
+ "label": "Objects to track."
+ },
+ "filters": {
+ "label": "Object filters.",
+ "properties": {
+ "min_area": {
+ "label": "Minimum area of bounding box for object to be counted. Can be pixels (int) or percentage (float between 0.000001 and 0.99)."
+ },
+ "max_area": {
+ "label": "Maximum area of bounding box for object to be counted. Can be pixels (int) or percentage (float between 0.000001 and 0.99)."
+ },
+ "min_ratio": {
+ "label": "Minimum ratio of bounding box's width/height for object to be counted."
+ },
+ "max_ratio": {
+ "label": "Maximum ratio of bounding box's width/height for object to be counted."
+ },
+ "threshold": {
+ "label": "Average detection confidence threshold for object to be counted."
+ },
+ "min_score": {
+ "label": "Minimum detection confidence for object to be counted."
+ },
+ "mask": {
+ "label": "Detection area polygon mask for this filter configuration."
+ }
+ }
+ },
+ "mask": {
+ "label": "Object mask."
+ },
+ "genai": {
+ "label": "Config for using genai to analyze objects.",
+ "properties": {
+ "enabled": {
+ "label": "Enable GenAI for camera."
+ },
+ "use_snapshot": {
+ "label": "Use snapshots for generating descriptions."
+ },
+ "prompt": {
+ "label": "Default caption prompt."
+ },
+ "object_prompts": {
+ "label": "Object specific prompts."
+ },
+ "objects": {
+ "label": "List of objects to run generative AI for."
+ },
+ "required_zones": {
+ "label": "List of required zones to be entered in order to run generative AI."
+ },
+ "debug_save_thumbnails": {
+ "label": "Save thumbnails sent to generative AI for debugging purposes."
+ },
+ "send_triggers": {
+ "label": "What triggers to use to send frames to generative AI for a tracked object.",
+ "properties": {
+ "tracked_object_end": {
+ "label": "Send once the object is no longer tracked."
+ },
+ "after_significant_updates": {
+ "label": "Send an early request to generative AI when X frames accumulated."
+ }
+ }
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of generative AI."
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/proxy.json b/web/public/locales/en/config/proxy.json
new file mode 100644
index 0000000000..732d6fafd8
--- /dev/null
+++ b/web/public/locales/en/config/proxy.json
@@ -0,0 +1,31 @@
+{
+ "label": "Proxy configuration.",
+ "properties": {
+ "header_map": {
+ "label": "Header mapping definitions for proxy user passing.",
+ "properties": {
+ "user": {
+ "label": "Header name from upstream proxy to identify user."
+ },
+ "role": {
+ "label": "Header name from upstream proxy to identify user role."
+ },
+ "role_map": {
+ "label": "Mapping of Frigate roles to upstream group values. "
+ }
+ }
+ },
+ "logout_url": {
+ "label": "Redirect url for logging out with proxy."
+ },
+ "auth_secret": {
+ "label": "Secret value for proxy authentication."
+ },
+ "default_role": {
+ "label": "Default role for proxy users."
+ },
+ "separator": {
+ "label": "The character used to separate values in a mapped header."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/record.json b/web/public/locales/en/config/record.json
new file mode 100644
index 0000000000..81139084eb
--- /dev/null
+++ b/web/public/locales/en/config/record.json
@@ -0,0 +1,93 @@
+{
+ "label": "Global record configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Enable record on all cameras."
+ },
+ "sync_recordings": {
+ "label": "Sync recordings with disk on startup and once a day."
+ },
+ "expire_interval": {
+ "label": "Number of minutes to wait between cleanup runs."
+ },
+ "continuous": {
+ "label": "Continuous recording retention settings.",
+ "properties": {
+ "days": {
+ "label": "Default retention period."
+ }
+ }
+ },
+ "motion": {
+ "label": "Motion recording retention settings.",
+ "properties": {
+ "days": {
+ "label": "Default retention period."
+ }
+ }
+ },
+ "detections": {
+ "label": "Detection specific retention settings.",
+ "properties": {
+ "pre_capture": {
+ "label": "Seconds to retain before event starts."
+ },
+ "post_capture": {
+ "label": "Seconds to retain after event ends."
+ },
+ "retain": {
+ "label": "Event retention settings.",
+ "properties": {
+ "days": {
+ "label": "Default retention period."
+ },
+ "mode": {
+ "label": "Retain mode."
+ }
+ }
+ }
+ }
+ },
+ "alerts": {
+ "label": "Alert specific retention settings.",
+ "properties": {
+ "pre_capture": {
+ "label": "Seconds to retain before event starts."
+ },
+ "post_capture": {
+ "label": "Seconds to retain after event ends."
+ },
+ "retain": {
+ "label": "Event retention settings.",
+ "properties": {
+ "days": {
+ "label": "Default retention period."
+ },
+ "mode": {
+ "label": "Retain mode."
+ }
+ }
+ }
+ }
+ },
+ "export": {
+ "label": "Recording Export Config",
+ "properties": {
+ "timelapse_args": {
+ "label": "Timelapse Args"
+ }
+ }
+ },
+ "preview": {
+ "label": "Recording Preview Config",
+ "properties": {
+ "quality": {
+ "label": "Quality of recording preview."
+ }
+ }
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of recording."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/review.json b/web/public/locales/en/config/review.json
new file mode 100644
index 0000000000..dba83ee1cd
--- /dev/null
+++ b/web/public/locales/en/config/review.json
@@ -0,0 +1,74 @@
+{
+ "label": "Review configuration.",
+ "properties": {
+ "alerts": {
+ "label": "Review alerts config.",
+ "properties": {
+ "enabled": {
+ "label": "Enable alerts."
+ },
+ "labels": {
+ "label": "Labels to create alerts for."
+ },
+ "required_zones": {
+ "label": "List of required zones to be entered in order to save the event as an alert."
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of alerts."
+ },
+ "cutoff_time": {
+ "label": "Time to cutoff alerts after no alert-causing activity has occurred."
+ }
+ }
+ },
+ "detections": {
+ "label": "Review detections config.",
+ "properties": {
+ "enabled": {
+ "label": "Enable detections."
+ },
+ "labels": {
+ "label": "Labels to create detections for."
+ },
+ "required_zones": {
+ "label": "List of required zones to be entered in order to save the event as a detection."
+ },
+ "cutoff_time": {
+ "label": "Time to cutoff detection after no detection-causing activity has occurred."
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of detections."
+ }
+ }
+ },
+ "genai": {
+ "label": "Review description genai config.",
+ "properties": {
+ "enabled": {
+ "label": "Enable GenAI descriptions for review items."
+ },
+ "alerts": {
+ "label": "Enable GenAI for alerts."
+ },
+ "detections": {
+ "label": "Enable GenAI for detections."
+ },
+ "additional_concerns": {
+ "label": "Additional concerns that GenAI should make note of on this camera."
+ },
+ "debug_save_thumbnails": {
+ "label": "Save thumbnails sent to generative AI for debugging purposes."
+ },
+ "enabled_in_config": {
+ "label": "Keep track of original state of generative AI."
+ },
+ "preferred_language": {
+ "label": "Preferred language for GenAI Response"
+ },
+ "activity_context_prompt": {
+ "label": "Custom activity context prompt defining normal activity patterns for this property."
+ }
+ }
+ }
+ }
+}
diff --git a/web/public/locales/en/config/safe_mode.json b/web/public/locales/en/config/safe_mode.json
new file mode 100644
index 0000000000..352f78b293
--- /dev/null
+++ b/web/public/locales/en/config/safe_mode.json
@@ -0,0 +1,3 @@
+{
+ "label": "If Frigate should be started in safe mode."
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/semantic_search.json b/web/public/locales/en/config/semantic_search.json
new file mode 100644
index 0000000000..2c46640bbb
--- /dev/null
+++ b/web/public/locales/en/config/semantic_search.json
@@ -0,0 +1,21 @@
+{
+ "label": "Semantic search configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Enable semantic search."
+ },
+ "reindex": {
+ "label": "Reindex all tracked objects on startup."
+ },
+ "model": {
+ "label": "The CLIP model to use for semantic search."
+ },
+ "model_size": {
+ "label": "The size of the embeddings model used."
+ },
+ "device": {
+ "label": "The device key to use for semantic search.",
+ "description": "This is an override, to target a specific device. See https://onnxruntime.ai/docs/execution-providers/ for more information"
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/snapshots.json b/web/public/locales/en/config/snapshots.json
new file mode 100644
index 0000000000..a6336140e7
--- /dev/null
+++ b/web/public/locales/en/config/snapshots.json
@@ -0,0 +1,43 @@
+{
+ "label": "Global snapshots configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Snapshots enabled."
+ },
+ "clean_copy": {
+ "label": "Create a clean copy of the snapshot image."
+ },
+ "timestamp": {
+ "label": "Add a timestamp overlay on the snapshot."
+ },
+ "bounding_box": {
+ "label": "Add a bounding box overlay on the snapshot."
+ },
+ "crop": {
+ "label": "Crop the snapshot to the detected object."
+ },
+ "required_zones": {
+ "label": "List of required zones to be entered in order to save a snapshot."
+ },
+ "height": {
+ "label": "Snapshot image height."
+ },
+ "retain": {
+ "label": "Snapshot retention.",
+ "properties": {
+ "default": {
+ "label": "Default retention period."
+ },
+ "mode": {
+ "label": "Retain mode."
+ },
+ "objects": {
+ "label": "Object retention period."
+ }
+ }
+ },
+ "quality": {
+ "label": "Quality of the encoded jpeg (0-100)."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/telemetry.json b/web/public/locales/en/config/telemetry.json
new file mode 100644
index 0000000000..802ced2a08
--- /dev/null
+++ b/web/public/locales/en/config/telemetry.json
@@ -0,0 +1,28 @@
+{
+ "label": "Telemetry configuration.",
+ "properties": {
+ "network_interfaces": {
+ "label": "Enabled network interfaces for bandwidth calculation."
+ },
+ "stats": {
+ "label": "System Stats Configuration",
+ "properties": {
+ "amd_gpu_stats": {
+ "label": "Enable AMD GPU stats."
+ },
+ "intel_gpu_stats": {
+ "label": "Enable Intel GPU stats."
+ },
+ "network_bandwidth": {
+ "label": "Enable network bandwidth for ffmpeg processes."
+ },
+ "intel_gpu_device": {
+ "label": "Define the device to use when gathering SR-IOV stats."
+ }
+ }
+ },
+ "version_check": {
+ "label": "Enable latest version check."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/timestamp_style.json b/web/public/locales/en/config/timestamp_style.json
new file mode 100644
index 0000000000..6a31194236
--- /dev/null
+++ b/web/public/locales/en/config/timestamp_style.json
@@ -0,0 +1,31 @@
+{
+ "label": "Global timestamp style configuration.",
+ "properties": {
+ "position": {
+ "label": "Timestamp position."
+ },
+ "format": {
+ "label": "Timestamp format."
+ },
+ "color": {
+ "label": "Timestamp color.",
+ "properties": {
+ "red": {
+ "label": "Red"
+ },
+ "green": {
+ "label": "Green"
+ },
+ "blue": {
+ "label": "Blue"
+ }
+ }
+ },
+ "thickness": {
+ "label": "Timestamp thickness."
+ },
+ "effect": {
+ "label": "Timestamp effect."
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/tls.json b/web/public/locales/en/config/tls.json
new file mode 100644
index 0000000000..58493ff402
--- /dev/null
+++ b/web/public/locales/en/config/tls.json
@@ -0,0 +1,8 @@
+{
+ "label": "TLS configuration.",
+ "properties": {
+ "enabled": {
+ "label": "Enable TLS for port 8971"
+ }
+ }
+}
\ No newline at end of file
diff --git a/web/public/locales/en/config/ui.json b/web/public/locales/en/config/ui.json
new file mode 100644
index 0000000000..cdd91cb535
--- /dev/null
+++ b/web/public/locales/en/config/ui.json
@@ -0,0 +1,20 @@
+{
+ "label": "UI configuration.",
+ "properties": {
+ "timezone": {
+ "label": "Override UI timezone."
+ },
+ "time_format": {
+ "label": "Override UI time format."
+ },
+ "date_style": {
+ "label": "Override UI dateStyle."
+ },
+ "time_style": {
+ "label": "Override UI timeStyle."
+ },
+ "unit_system": {
+ "label": "The unit system to use for measurements."
+ }
+ }
+}
diff --git a/web/public/locales/en/config/version.json b/web/public/locales/en/config/version.json
new file mode 100644
index 0000000000..e777d75732
--- /dev/null
+++ b/web/public/locales/en/config/version.json
@@ -0,0 +1,3 @@
+{
+ "label": "Current config version."
+}
\ No newline at end of file
diff --git a/web/public/locales/en/views/classificationModel.json b/web/public/locales/en/views/classificationModel.json
new file mode 100644
index 0000000000..a07114b5cb
--- /dev/null
+++ b/web/public/locales/en/views/classificationModel.json
@@ -0,0 +1,187 @@
+{
+ "documentTitle": "Classification Models - Frigate",
+ "details": {
+ "scoreInfo": "Score represents the average classification confidence across all detections of this object.",
+ "none": "None",
+ "unknown": "Unknown"
+ },
+ "button": {
+ "deleteClassificationAttempts": "Delete Classification Images",
+ "renameCategory": "Rename Class",
+ "deleteCategory": "Delete Class",
+ "deleteImages": "Delete Images",
+ "trainModel": "Train Model",
+ "addClassification": "Add Classification",
+ "deleteModels": "Delete Models",
+ "editModel": "Edit Model"
+ },
+ "tooltip": {
+ "trainingInProgress": "Model is currently training",
+ "noNewImages": "No new images to train. Classify more images in the dataset first.",
+ "noChanges": "No changes to the dataset since last training.",
+ "modelNotReady": "Model is not ready for training"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Deleted Class",
+ "deletedImage": "Deleted Images",
+ "deletedModel_one": "Successfully deleted {{count}} model",
+ "deletedModel_other": "Successfully deleted {{count}} models",
+ "categorizedImage": "Successfully Classified Image",
+ "trainedModel": "Successfully trained model.",
+ "trainingModel": "Successfully started model training.",
+ "updatedModel": "Successfully updated model configuration",
+ "renamedCategory": "Successfully renamed class to {{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "Failed to delete: {{errorMessage}}",
+ "deleteCategoryFailed": "Failed to delete class: {{errorMessage}}",
+ "deleteModelFailed": "Failed to delete model: {{errorMessage}}",
+ "categorizeFailed": "Failed to categorize image: {{errorMessage}}",
+ "trainingFailed": "Model training failed. Check Frigate logs for details.",
+ "trainingFailedToStart": "Failed to start model training: {{errorMessage}}",
+ "updateModelFailed": "Failed to update model: {{errorMessage}}",
+ "renameCategoryFailed": "Failed to rename class: {{errorMessage}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Delete Class",
+ "desc": "Are you sure you want to delete the class {{name}}? This will permanently delete all associated images and require re-training the model.",
+ "minClassesTitle": "Cannot Delete Class",
+ "minClassesDesc": "A classification model must have at least 2 classes. Add another class before deleting this one."
+ },
+ "deleteModel": {
+ "title": "Delete Classification Model",
+ "single": "Are you sure you want to delete {{name}}? This will permanently delete all associated data including images and training data. This action cannot be undone.",
+ "desc_one": "Are you sure you want to delete {{count}} model? This will permanently delete all associated data including images and training data. This action cannot be undone.",
+ "desc_other": "Are you sure you want to delete {{count}} models? This will permanently delete all associated data including images and training data. This action cannot be undone."
+ },
+ "edit": {
+ "title": "Edit Classification Model",
+ "descriptionState": "Edit the classes for this state classification model. Changes will require retraining the model.",
+ "descriptionObject": "Edit the object type and classification type for this object classification model.",
+ "stateClassesInfo": "Note: Changing state classes requires retraining the model with the updated classes."
+ },
+ "deleteDatasetImages": {
+ "title": "Delete Dataset Images",
+ "desc_one": "Are you sure you want to delete {{count}} image from {{dataset}}? This action cannot be undone and will require re-training the model.",
+ "desc_other": "Are you sure you want to delete {{count}} images from {{dataset}}? This action cannot be undone and will require re-training the model."
+ },
+ "deleteTrainImages": {
+ "title": "Delete Train Images",
+ "desc_one": "Are you sure you want to delete {{count}} image? This action cannot be undone.",
+ "desc_other": "Are you sure you want to delete {{count}} images? This action cannot be undone."
+ },
+ "renameCategory": {
+ "title": "Rename Class",
+ "desc": "Enter a new name for {{name}}. You will be required to retrain the model for the name change to take effect."
+ },
+ "description": {
+ "invalidName": "Invalid name. Names can only include letters, numbers, spaces, apostrophes, underscores, and hyphens."
+ },
+ "train": {
+ "title": "Recent Classifications",
+ "titleShort": "Recent",
+ "aria": "Select Recent Classifications"
+ },
+ "categories": "Classes",
+ "createCategory": {
+ "new": "Create New Class"
+ },
+ "categorizeImageAs": "Classify Image As:",
+ "categorizeImage": "Classify Image",
+ "menu": {
+ "objects": "Objects",
+ "states": "States"
+ },
+ "noModels": {
+ "object": {
+ "title": "No Object Classification Models",
+ "description": "Create a custom model to classify detected objects.",
+ "buttonText": "Create Object Model"
+ },
+ "state": {
+ "title": "No State Classification Models",
+ "description": "Create a custom model to monitor and classify state changes in specific camera areas.",
+ "buttonText": "Create State Model"
+ }
+ },
+ "wizard": {
+ "title": "Create New Classification",
+ "steps": {
+ "nameAndDefine": "Name & Define",
+ "stateArea": "State Area",
+ "chooseExamples": "Choose Examples"
+ },
+ "step1": {
+ "description": "State models monitor fixed camera areas for changes (e.g., door open/closed). Object models add classifications to detected objects (e.g., known animals, delivery persons, etc.).",
+ "name": "Name",
+ "namePlaceholder": "Enter model name...",
+ "type": "Type",
+ "typeState": "State",
+ "typeObject": "Object",
+ "objectLabel": "Object Label",
+ "objectLabelPlaceholder": "Select object type...",
+ "classificationType": "Classification Type",
+ "classificationTypeTip": "Learn about classification types",
+ "classificationTypeDesc": "Sub Labels add additional text to the object label (e.g., 'Person: UPS'). Attributes are searchable metadata stored separately in the object metadata.",
+ "classificationSubLabel": "Sub Label",
+ "classificationAttribute": "Attribute",
+ "classes": "Classes",
+ "states": "States",
+ "classesTip": "Learn about classes",
+ "classesStateDesc": "Define the different states your camera area can be in. For example: 'open' and 'closed' for a garage door.",
+ "classesObjectDesc": "Define the different categories to classify detected objects into. For example: 'delivery_person', 'resident', 'stranger' for person classification.",
+ "classPlaceholder": "Enter class name...",
+ "errors": {
+ "nameRequired": "Model name is required",
+ "nameLength": "Model name must be 64 characters or less",
+ "nameOnlyNumbers": "Model name cannot contain only numbers",
+ "classRequired": "At least 1 class is required",
+ "classesUnique": "Class names must be unique",
+ "noneNotAllowed": "The class 'none' is not allowed",
+ "stateRequiresTwoClasses": "State models require at least 2 classes",
+ "objectLabelRequired": "Please select an object label",
+ "objectTypeRequired": "Please select a classification type"
+ }
+ },
+ "step2": {
+ "description": "Select cameras and define the area to monitor for each camera. The model will classify the state of these areas.",
+ "cameras": "Cameras",
+ "selectCamera": "Select Camera",
+ "noCameras": "Click + to add cameras",
+ "selectCameraPrompt": "Select a camera from the list to define its monitoring area"
+ },
+ "step3": {
+ "selectImagesPrompt": "Select all images with: {{className}}",
+ "selectImagesDescription": "Click on images to select them. Click Continue when you're done with this class.",
+ "allImagesRequired_one": "Please classify all images. {{count}} image remaining.",
+ "allImagesRequired_other": "Please classify all images. {{count}} images remaining.",
+ "generating": {
+ "title": "Generating Sample Images",
+ "description": "Frigate is pulling representative images from your recordings. This may take a moment..."
+ },
+ "training": {
+ "title": "Training Model",
+ "description": "Your model is being trained in the background. Close this dialog, and your model will start running as soon as training is complete."
+ },
+ "retryGenerate": "Retry Generation",
+ "noImages": "No sample images generated",
+ "classifying": "Classifying & Training...",
+ "trainingStarted": "Training started successfully",
+ "modelCreated": "Model created successfully. Use the Recent Classifications view to add images for missing states, then train the model.",
+ "errors": {
+ "noCameras": "No cameras configured",
+ "noObjectLabel": "No object label selected",
+ "generateFailed": "Failed to generate examples: {{error}}",
+ "generationFailed": "Generation failed. Please try again.",
+ "classifyFailed": "Failed to classify images: {{error}}"
+ },
+ "generateSuccess": "Successfully generated sample images",
+ "missingStatesWarning": {
+ "title": "Missing State Examples",
+ "description": "It's recommended to select examples for all states for best results. You can continue without selecting all states, but the model will not be trained until all states have images. After continuing, use the Recent Classifications view to classify images for the missing states, then train the model."
+ }
+ }
+ }
+}
diff --git a/web/public/locales/en/views/configEditor.json b/web/public/locales/en/views/configEditor.json
index ef3035f385..614143c16d 100644
--- a/web/public/locales/en/views/configEditor.json
+++ b/web/public/locales/en/views/configEditor.json
@@ -1,6 +1,8 @@
{
"documentTitle": "Config Editor - Frigate",
"configEditor": "Config Editor",
+ "safeConfigEditor": "Config Editor (Safe Mode)",
+ "safeModeDescription": "Frigate is in safe mode due to a config validation error.",
"copyConfig": "Copy Config",
"saveAndRestart": "Save & Restart",
"saveOnly": "Save Only",
diff --git a/web/public/locales/en/views/events.json b/web/public/locales/en/views/events.json
index 98bc7c4228..ea3ee853d0 100644
--- a/web/public/locales/en/views/events.json
+++ b/web/public/locales/en/views/events.json
@@ -9,15 +9,38 @@
"empty": {
"alert": "There are no alerts to review",
"detection": "There are no detections to review",
- "motion": "No motion data found"
+ "motion": "No motion data found",
+ "recordingsDisabled": {
+ "title": "Recordings must be enabled",
+ "description": "Review items can only be created for a camera when recordings are enabled for that camera."
+ }
},
"timeline": "Timeline",
"timeline.aria": "Select timeline",
+ "zoomIn": "Zoom In",
+ "zoomOut": "Zoom Out",
"events": {
"label": "Events",
"aria": "Select events",
"noFoundForTimePeriod": "No events found for this time period."
},
+ "detail": {
+ "label": "Detail",
+ "noDataFound": "No detail data to review",
+ "aria": "Toggle detail view",
+ "trackedObject_one": "{{count}} object",
+ "trackedObject_other": "{{count}} objects",
+ "noObjectDetailData": "No object detail data available.",
+ "settings": "Detail View Settings",
+ "alwaysExpandActive": {
+ "title": "Always expand active",
+ "desc": "Always expand the active review item's object details when available."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Tracked point",
+ "clickToSeek": "Click to seek to this time"
+ },
"documentTitle": "Review - Frigate",
"recordings": {
"documentTitle": "Recordings - Frigate"
@@ -33,6 +56,10 @@
},
"selected_one": "{{count}} selected",
"selected_other": "{{count}} selected",
+ "select_all": "All",
"camera": "Camera",
- "detected": "detected"
+ "detected": "detected",
+ "normalActivity": "Normal",
+ "needsReview": "Needs review",
+ "securityConcern": "Security concern"
}
diff --git a/web/public/locales/en/views/explore.json b/web/public/locales/en/views/explore.json
index 7e23814450..53b04e6c41 100644
--- a/web/public/locales/en/views/explore.json
+++ b/web/public/locales/en/views/explore.json
@@ -24,8 +24,7 @@
"textTokenizer": "Text tokenizer"
},
"tips": {
- "context": "You may want to reindex the embeddings of your tracked objects once the models are downloaded.",
- "documentation": "Read the documentation"
+ "context": "You may want to reindex the embeddings of your tracked objects once the models are downloaded."
},
"error": "An error has occurred. Check Frigate logs."
}
@@ -34,15 +33,16 @@
"type": {
"details": "details",
"snapshot": "snapshot",
+ "thumbnail": "thumbnail",
"video": "video",
- "object_lifecycle": "object lifecycle"
+ "tracking_details": "tracking details"
},
- "objectLifecycle": {
- "title": "Object Lifecycle",
+ "trackingDetails": {
+ "title": "Tracking Details",
"noImageFound": "No image found for this timestamp.",
"createObjectMask": "Create Object Mask",
"adjustAnnotationSettings": "Adjust annotation settings",
- "scrollViewTips": "Scroll to view the significant moments of this object's lifecycle.",
+ "scrollViewTips": "Click to view the significant moments of this object's lifecycle.",
"autoTrackingTips": "Bounding box positions will be inaccurate for autotracking cameras.",
"count": "{{first}} of {{second}}",
"trackedPoint": "Tracked Point",
@@ -61,7 +61,8 @@
"header": {
"zones": "Zones",
"ratio": "Ratio",
- "area": "Area"
+ "area": "Area",
+ "score": "Score"
}
},
"annotationSettings": {
@@ -72,12 +73,11 @@
},
"offset": {
"label": "Annotation Offset",
- "desc": "This data comes from your camera's detect feed but is overlayed on images from the the record feed. It is unlikely that the two streams are perfectly in sync. As a result, the bounding box and the footage will not line up perfectly. However, the annotation_offset field can be used to adjust this.",
- "documentation": "Read the documentation ",
+ "desc": "This data comes from your camera's detect feed but is overlayed on images from the the record feed. It is unlikely that the two streams are perfectly in sync. As a result, the bounding box and the footage will not line up perfectly. You can use this setting to offset the annotations forward or backward in time to better align them with the recorded footage.",
"millisecondsToOffset": "Milliseconds to offset detect annotations by. Default: 0",
- "tips": "TIP: Imagine there is an event clip with a person walking from left to right. If the event timeline bounding box is consistently to the left of the person then the value should be decreased. Similarly, if a person is walking from left to right and the bounding box is consistently ahead of the person then the value should be increased.",
+ "tips": "Lower the value if the video playback is ahead of the boxes and path points, and increase the value if the video playback is behind them. This value can be negative.",
"toast": {
- "success": "Annotation offset for {{camera}} has been saved to the config file. Restart Frigate to apply your changes."
+ "success": "Annotation offset for {{camera}} has been saved to the config file."
}
}
},
@@ -103,12 +103,16 @@
"success": {
"regenerate": "A new description has been requested from {{provider}}. Depending on the speed of your provider, the new description may take some time to regenerate.",
"updatedSublabel": "Successfully updated sub label.",
- "updatedLPR": "Successfully updated license plate."
+ "updatedLPR": "Successfully updated license plate.",
+ "updatedAttributes": "Successfully updated attributes.",
+ "audioTranscription": "Successfully requested audio transcription. Depending on the speed of your Frigate server, the transcription may take some time to complete."
},
"error": {
"regenerate": "Failed to call {{provider}} for a new description: {{errorMessage}}",
"updatedSublabelFailed": "Failed to update sub label: {{errorMessage}}",
- "updatedLPRFailed": "Failed to update license plate: {{errorMessage}}"
+ "updatedLPRFailed": "Failed to update license plate: {{errorMessage}}",
+ "updatedAttributesFailed": "Failed to update attributes: {{errorMessage}}",
+ "audioTranscription": "Failed to request audio transcription: {{errorMessage}}"
}
}
},
@@ -123,6 +127,10 @@
"desc": "Enter a new license plate value for this {{label}}",
"descNoLabel": "Enter a new license plate value for this tracked object"
},
+ "editAttributes": {
+ "title": "Edit attributes",
+ "desc": "Select classification attributes for this {{label}}"
+ },
"snapshotScore": {
"label": "Snapshot Score"
},
@@ -130,7 +138,11 @@
"label": "Top Score",
"info": "The top score is the highest median score for the tracked object, so this may differ from the score shown on the search result thumbnail."
},
+ "score": {
+ "label": "Score"
+ },
"recognizedLicensePlate": "Recognized License Plate",
+ "attributes": "Classification Attributes",
"estimatedSpeed": "Estimated Speed",
"objects": "Objects",
"camera": "Camera",
@@ -154,6 +166,9 @@
"tips": {
"descriptionSaved": "Successfully saved description",
"saveDescriptionFailed": "Failed to update the description: {{errorMessage}}"
+ },
+ "title": {
+ "label": "Title"
}
},
"itemMenu": {
@@ -165,14 +180,26 @@
"label": "Download snapshot",
"aria": "Download snapshot"
},
- "viewObjectLifecycle": {
- "label": "View object lifecycle",
- "aria": "Show the object lifecycle"
+ "downloadCleanSnapshot": {
+ "label": "Download clean snapshot",
+ "aria": "Download clean snapshot"
+ },
+ "viewTrackingDetails": {
+ "label": "View tracking details",
+ "aria": "Show the tracking details"
},
"findSimilar": {
"label": "Find similar",
"aria": "Find similar tracked objects"
},
+ "addTrigger": {
+ "label": "Add trigger",
+ "aria": "Add a trigger for this tracked object"
+ },
+ "audioTranscription": {
+ "label": "Transcribe",
+ "aria": "Request audio transcription"
+ },
"submitToPlus": {
"label": "Submit to Frigate+",
"aria": "Submit to Frigate Plus"
@@ -183,12 +210,18 @@
},
"deleteTrackedObject": {
"label": "Delete this tracked object"
+ },
+ "showObjectDetails": {
+ "label": "Show object path"
+ },
+ "hideObjectDetails": {
+ "label": "Hide object path"
}
},
"dialog": {
"confirmDelete": {
"title": "Confirm Delete",
- "desc": "Deleting this tracked object removes the snapshot, any saved embeddings, and any associated object lifecycle entries. Recorded footage of this tracked object in History view will NOT be deleted.
Are you sure you want to proceed?"
+ "desc": "Deleting this tracked object removes the snapshot, any saved embeddings, and any associated tracking details entries. Recorded footage of this tracked object in History view will NOT be deleted.
Are you sure you want to proceed?"
}
},
"noTrackedObjects": "No Tracked Objects Found",
@@ -197,11 +230,19 @@
"trackedObjectsCount_other": "{{count}} tracked objects ",
"searchResult": {
"tooltip": "Matched {{type}} at {{confidence}}%",
+ "previousTrackedObject": "Previous tracked object",
+ "nextTrackedObject": "Next tracked object",
"deleteTrackedObject": {
"toast": {
"success": "Tracked object deleted successfully.",
"error": "Failed to delete tracked object: {{errorMessage}}"
}
}
+ },
+ "aiAnalysis": {
+ "title": "AI Analysis"
+ },
+ "concerns": {
+ "label": "Concerns"
}
}
diff --git a/web/public/locales/en/views/exports.json b/web/public/locales/en/views/exports.json
index 7298994436..4a79d20e11 100644
--- a/web/public/locales/en/views/exports.json
+++ b/web/public/locales/en/views/exports.json
@@ -9,6 +9,12 @@
"desc": "Enter a new name for this export.",
"saveExport": "Save Export"
},
+ "tooltip": {
+ "shareExport": "Share export",
+ "downloadVideo": "Download video",
+ "editName": "Edit name",
+ "deleteExport": "Delete export"
+ },
"toast": {
"error": {
"renameExportFailed": "Failed to rename export: {{errorMessage}}"
diff --git a/web/public/locales/en/views/faceLibrary.json b/web/public/locales/en/views/faceLibrary.json
index e734ca9740..2dbb1a4fd7 100644
--- a/web/public/locales/en/views/faceLibrary.json
+++ b/web/public/locales/en/views/faceLibrary.json
@@ -1,17 +1,13 @@
{
"description": {
- "addFace": "Walk through adding a new collection to the Face Library.",
+ "addFace": "Add a new collection to the Face Library by uploading your first image.",
"placeholder": "Enter a name for this collection",
"invalidName": "Invalid name. Names can only include letters, numbers, spaces, apostrophes, underscores, and hyphens."
},
"details": {
- "person": "Person",
- "subLabelScore": "Sub Label Score",
- "scoreInfo": "The sub label score is the weighted score for all of the recognized face confidences, so this may differ from the score shown on the snapshot.",
- "face": "Face Details",
- "faceDesc": "Details of the tracked object that generated this face",
"timestamp": "Timestamp",
- "unknown": "Unknown"
+ "unknown": "Unknown",
+ "scoreInfo": "Score is a weighted average of all face scores, weighted by the size of the face in each image."
},
"documentTitle": "Face Library - Frigate",
"uploadFaceImage": {
@@ -20,10 +16,8 @@
},
"collections": "Collections",
"createFaceLibrary": {
- "title": "Create Collection",
- "desc": "Create a new collection",
"new": "Create New Face",
- "nextSteps": "To build a strong foundation:
Use the Train tab to select and train on images for each detected person.
Focus on straight-on images for best results; avoid training images that capture faces at an angle.
"
+ "nextSteps": "To build a strong foundation:
Use the Recent Recognitions tab to select and train on images for each detected person.
Focus on straight-on images for best results; avoid training images that capture faces at an angle.
"
},
"steps": {
"faceName": "Enter Face Name",
@@ -34,12 +28,11 @@
}
},
"train": {
- "title": "Train",
- "aria": "Select train",
+ "title": "Recent Recognitions",
+ "titleShort": "Recent",
+ "aria": "Select recent recognitions",
"empty": "There are no recent face recognition attempts"
},
- "selectItem": "Select {{item}}",
- "selectFace": "Select Face",
"deleteFaceLibrary": {
"title": "Delete Name",
"desc": "Are you sure you want to delete the collection {{name}}? This will permanently delete all associated faces."
@@ -66,12 +59,10 @@
"selectImage": "Please select an image file."
},
"dropActive": "Drop the image here…",
- "dropInstructions": "Drag and drop an image here, or click to select",
+ "dropInstructions": "Drag and drop or paste an image here, or click to select",
"maxSize": "Max size: {{size}}MB"
},
"nofaces": "No faces available",
- "pixels": "{{area}}px",
- "readTheDocs": "Read the documentation",
"trainFaceAs": "Train Face as:",
"trainFace": "Train Face",
"toast": {
@@ -85,7 +76,7 @@
"deletedName_other": "{{count}} faces have been successfully deleted.",
"renamedFace": "Successfully renamed face to {{name}}",
"trainedFace": "Successfully trained face.",
- "updatedFaceScore": "Successfully updated face score."
+ "updatedFaceScore": "Successfully updated face score to {{name}} ({{score}})."
},
"error": {
"uploadingImageFailed": "Failed to upload image: {{errorMessage}}",
diff --git a/web/public/locales/en/views/live.json b/web/public/locales/en/views/live.json
index 1790467d2c..21f367ea98 100644
--- a/web/public/locales/en/views/live.json
+++ b/web/public/locales/en/views/live.json
@@ -38,6 +38,14 @@
"label": "Zoom PTZ camera out"
}
},
+ "focus": {
+ "in": {
+ "label": "Focus PTZ camera in"
+ },
+ "out": {
+ "label": "Focus PTZ camera out"
+ }
+ },
"frame": {
"center": {
"label": "Click in the frame to center the PTZ camera"
@@ -65,10 +73,20 @@
"enable": "Enable Snapshots",
"disable": "Disable Snapshots"
},
+ "snapshot": {
+ "takeSnapshot": "Download instant snapshot",
+ "noVideoSource": "No video source available for snapshot.",
+ "captureFailed": "Failed to capture snapshot.",
+ "downloadStarted": "Snapshot download started."
+ },
"audioDetect": {
"enable": "Enable Audio Detect",
"disable": "Disable Audio Detect"
},
+ "transcription": {
+ "enable": "Enable Live Audio Transcription",
+ "disable": "Disable Live Audio Transcription"
+ },
"autotracking": {
"enable": "Enable Autotracking",
"disable": "Disable Autotracking"
@@ -78,8 +96,8 @@
"disable": "Hide Stream Stats"
},
"manualRecording": {
- "title": "On-Demand Recording",
- "tips": "Start a manual event based on this camera's recording retention settings.",
+ "title": "On-Demand",
+ "tips": "Download an instant snapshot or start a manual event based on this camera's recording retention settings.",
"playInBackground": {
"label": "Play in background",
"desc": "Enable this option to continue streaming when the player is hidden."
@@ -107,15 +125,16 @@
"title": "Stream",
"audio": {
"tips": {
- "title": "Audio must be output from your camera and configured in go2rtc for this stream.",
- "documentation": "Read the documentation "
+ "title": "Audio must be output from your camera and configured in go2rtc for this stream."
},
"available": "Audio is available for this stream",
"unavailable": "Audio is not available for this stream"
},
+ "debug": {
+ "picker": "Stream selection unavailable in debug mode. Debug view always uses the stream assigned the detect role."
+ },
"twoWayTalk": {
"tips": "Your device must support the feature and WebRTC must be configured for two-way talk.",
- "tips.documentation": "Read the documentation ",
"available": "Two-way talk is available for this stream",
"unavailable": "Two-way talk is unavailable for this stream"
},
@@ -135,6 +154,7 @@
"recording": "Recording",
"snapshots": "Snapshots",
"audioDetection": "Audio Detection",
+ "transcription": "Audio Transcription",
"autotracking": "Autotracking"
},
"history": {
@@ -145,8 +165,7 @@
"all": "All",
"motion": "Motion",
"active_objects": "Active Objects"
- },
- "notAllTips": "Your {{source}} recording retention configuration is set to mode: {{effectiveRetainMode}}, so this on-demand recording will only keep segments with {{effectiveRetainModeName}}."
+ }
},
"editLayout": {
"label": "Edit Layout",
@@ -154,5 +173,14 @@
"label": "Edit Camera Group"
},
"exitEdit": "Exit Editing"
+ },
+ "noCameras": {
+ "title": "No Cameras Configured",
+ "description": "Get started by connecting a camera to Frigate.",
+ "buttonText": "Add Camera",
+ "restricted": {
+ "title": "No Cameras Available",
+ "description": "You don't have permission to view any cameras in this group."
+ }
}
}
diff --git a/web/public/locales/en/views/search.json b/web/public/locales/en/views/search.json
index 22da7721fe..dae622c70e 100644
--- a/web/public/locales/en/views/search.json
+++ b/web/public/locales/en/views/search.json
@@ -16,6 +16,7 @@
"labels": "Labels",
"zones": "Zones",
"sub_labels": "Sub Labels",
+ "attributes": "Attributes",
"search_type": "Search Type",
"time_range": "Time Range",
"before": "Before",
diff --git a/web/public/locales/en/views/settings.json b/web/public/locales/en/views/settings.json
index 2b92e81cd2..1946a1c62e 100644
--- a/web/public/locales/en/views/settings.json
+++ b/web/public/locales/en/views/settings.json
@@ -2,23 +2,27 @@
"documentTitle": {
"default": "Settings - Frigate",
"authentication": "Authentication Settings - Frigate",
- "camera": "Camera Settings - Frigate",
+ "cameraManagement": "Manage Cameras - Frigate",
+ "cameraReview": "Camera Review Settings - Frigate",
"enrichments": "Enrichments Settings - Frigate",
"masksAndZones": "Mask and Zone Editor - Frigate",
"motionTuner": "Motion Tuner - Frigate",
"object": "Debug - Frigate",
- "general": "General Settings - Frigate",
+ "general": "UI Settings - Frigate",
"frigatePlus": "Frigate+ Settings - Frigate",
"notifications": "Notification Settings - Frigate"
},
"menu": {
"ui": "UI",
"enrichments": "Enrichments",
- "cameras": "Camera Settings",
+ "cameraManagement": "Management",
+ "cameraReview": "Review",
"masksAndZones": "Masks / Zones",
"motionTuner": "Motion Tuner",
+ "triggers": "Triggers",
"debug": "Debug",
"users": "Users",
+ "roles": "Roles",
"notifications": "Notifications",
"frigateplus": "Frigate+"
},
@@ -33,7 +37,7 @@
"noCamera": "No Camera"
},
"general": {
- "title": "General Settings",
+ "title": "UI Settings",
"liveDashboard": {
"title": "Live Dashboard",
"automaticLiveView": {
@@ -43,6 +47,14 @@
"playAlertVideos": {
"label": "Play Alert Videos",
"desc": "By default, recent alerts on the Live dashboard play as small looping videos. Disable this option to only show a static image of recent alerts on this device/browser."
+ },
+ "displayCameraNames": {
+ "label": "Always Show Camera Names",
+ "desc": "Always show the camera names in a chip in the multi-camera live view dashboard."
+ },
+ "liveFallbackTimeout": {
+ "label": "Live Player Fallback Timeout",
+ "desc": "When a camera's high quality live stream is unavailable, fall back to low bandwidth mode after this many seconds. Default: 3."
}
},
"storedLayouts": {
@@ -92,7 +104,6 @@
"semanticSearch": {
"title": "Semantic Search",
"desc": "Semantic Search in Frigate allows you to find tracked objects within your review items using either the image itself, a user-defined text description, or an automatically generated one.",
- "readTheDocumentation": "Read the Documentation",
"reindexNow": {
"label": "Reindex Now",
"desc": "Reindexing will regenerate embeddings for all tracked object. This process runs in the background and may max out your CPU and take a fair amount of time depending on the number of tracked objects you have.",
@@ -119,7 +130,6 @@
"faceRecognition": {
"title": "Face Recognition",
"desc": "Face recognition allows people to be assigned names and when their face is recognized Frigate will assign the person's name as a sub label. This information is included in the UI, filters, as well as in notifications.",
- "readTheDocumentation": "Read the Documentation",
"modelSize": {
"label": "Model Size",
"desc": "The size of the model used for face recognition.",
@@ -135,8 +145,7 @@
},
"licensePlateRecognition": {
"title": "License Plate Recognition",
- "desc": "Frigate can recognize license plates on vehicles and automatically add the detected characters to the recognized_license_plate field or a known name as a sub_label to objects that are of type car. A common use case may be to read the license plates of cars pulling into a driveway or cars passing by on a street.",
- "readTheDocumentation": "Read the Documentation"
+ "desc": "Frigate can recognize license plates on vehicles and automatically add the detected characters to the recognized_license_plate field or a known name as a sub_label to objects that are of type car. A common use case may be to read the license plates of cars pulling into a driveway or cars passing by on a street."
},
"restart_required": "Restart required (Enrichments settings changed)",
"toast": {
@@ -144,12 +153,245 @@
"error": "Failed to save config changes: {{errorMessage}}"
}
},
- "camera": {
- "title": "Camera Settings",
+ "cameraWizard": {
+ "title": "Add Camera",
+ "description": "Follow the steps below to add a new camera to your Frigate installation.",
+ "steps": {
+ "nameAndConnection": "Name & Connection",
+ "probeOrSnapshot": "Probe or Snapshot",
+ "streamConfiguration": "Stream Configuration",
+ "validationAndTesting": "Validation & Testing"
+ },
+ "save": {
+ "success": "Successfully saved new camera {{cameraName}}.",
+ "failure": "Error saving {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Resolution",
+ "video": "Video",
+ "audio": "Audio",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Please provide a valid stream URL",
+ "testFailed": "Stream test failed: {{error}}"
+ },
+ "step1": {
+ "description": "Enter your camera details and choose to probe the camera or manually select the brand.",
+ "cameraName": "Camera Name",
+ "cameraNamePlaceholder": "e.g., front_door or Back Yard Overview",
+ "host": "Host/IP Address",
+ "port": "Port",
+ "username": "Username",
+ "usernamePlaceholder": "Optional",
+ "password": "Password",
+ "passwordPlaceholder": "Optional",
+ "selectTransport": "Select transport protocol",
+ "cameraBrand": "Camera Brand",
+ "selectBrand": "Select camera brand for URL template",
+ "customUrl": "Custom Stream URL",
+ "brandInformation": "Brand information",
+ "brandUrlFormat": "For cameras with the RTSP URL format as: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://username:password@host:port/path",
+ "connectionSettings": "Connection Settings",
+ "detectionMethod": "Stream Detection Method",
+ "onvifPort": "ONVIF Port",
+ "probeMode": "Probe camera",
+ "manualMode": "Manual selection",
+ "detectionMethodDescription": "Probe the camera with ONVIF (if supported) to find camera stream URLs, or manually select the camera brand to use pre-defined URLs. To enter a custom RTSP URL, choose the manual method and select \"Other\".",
+ "onvifPortDescription": "For cameras that support ONVIF, this is usually 80 or 8080.",
+ "useDigestAuth": "Use digest authentication",
+ "useDigestAuthDescription": "Use HTTP digest authentication for ONVIF. Some cameras may require a dedicated ONVIF username/password instead of the standard admin user.",
+ "errors": {
+ "brandOrCustomUrlRequired": "Either select a camera brand with host/IP or choose 'Other' with a custom URL",
+ "nameRequired": "Camera name is required",
+ "nameLength": "Camera name must be 64 characters or less",
+ "invalidCharacters": "Camera name contains invalid characters",
+ "nameExists": "Camera name already exists",
+ "customUrlRtspRequired": "Custom URLs must begin with \"rtsp://\". Manual configuration is required for non-RTSP camera streams."
+ }
+ },
+ "step2": {
+ "description": "Probe the camera for available streams or configure manual settings based on your selected detection method.",
+ "testSuccess": "Connection test successful!",
+ "testFailed": "Connection test failed. Please check your input and try again.",
+ "testFailedTitle": "Test Failed",
+ "streamDetails": "Stream Details",
+ "probing": "Probing camera...",
+ "retry": "Retry",
+ "testing": {
+ "probingMetadata": "Probing camera metadata...",
+ "fetchingSnapshot": "Fetching camera snapshot..."
+ },
+ "probeFailed": "Failed to probe camera: {{error}}",
+ "probingDevice": "Probing device...",
+ "probeSuccessful": "Probe successful",
+ "probeError": "Probe Error",
+ "probeNoSuccess": "Probe unsuccessful",
+ "deviceInfo": "Device Information",
+ "manufacturer": "Manufacturer",
+ "model": "Model",
+ "firmware": "Firmware",
+ "profiles": "Profiles",
+ "ptzSupport": "PTZ Support",
+ "autotrackingSupport": "Autotracking Support",
+ "presets": "Presets",
+ "rtspCandidates": "RTSP Candidates",
+ "rtspCandidatesDescription": "The following RTSP URLs were found from the camera probe. Test the connection to view stream metadata.",
+ "noRtspCandidates": "No RTSP URLs were found from the camera. Your credentials may be incorrect, or the camera may not support ONVIF or the method used to retrieve RTSP URLs. Go back and enter the RTSP URL manually.",
+ "candidateStreamTitle": "Candidate {{number}}",
+ "useCandidate": "Use",
+ "uriCopy": "Copy",
+ "uriCopied": "URI copied to clipboard",
+ "testConnection": "Test Connection",
+ "toggleUriView": "Click to toggle full URI view",
+ "connected": "Connected",
+ "notConnected": "Not Connected",
+ "errors": {
+ "hostRequired": "Host/IP address is required"
+ }
+ },
+ "step3": {
+ "description": "Configure stream roles and add additional streams for your camera.",
+ "streamsTitle": "Camera Streams",
+ "addStream": "Add Stream",
+ "addAnotherStream": "Add Another Stream",
+ "streamTitle": "Stream {{number}}",
+ "streamUrl": "Stream URL",
+ "streamUrlPlaceholder": "rtsp://username:password@host:port/path",
+ "selectStream": "Select a stream",
+ "searchCandidates": "Search candidates...",
+ "noStreamFound": "No stream found",
+ "url": "URL",
+ "resolution": "Resolution",
+ "selectResolution": "Select resolution",
+ "quality": "Quality",
+ "selectQuality": "Select quality",
+ "roles": "Roles",
+ "roleLabels": {
+ "detect": "Object Detection",
+ "record": "Recording",
+ "audio": "Audio"
+ },
+ "testStream": "Test Connection",
+ "testSuccess": "Stream test successful!",
+ "testFailed": "Stream test failed",
+ "testFailedTitle": "Test Failed",
+ "connected": "Connected",
+ "notConnected": "Not Connected",
+ "featuresTitle": "Features",
+ "go2rtc": "Reduce connections to camera",
+ "detectRoleWarning": "At least one stream must have the \"detect\" role to proceed.",
+ "rolesPopover": {
+ "title": "Stream Roles",
+ "detect": "Main feed for object detection.",
+ "record": "Saves segments of the video feed based on configuration settings.",
+ "audio": "Feed for audio based detection."
+ },
+ "featuresPopover": {
+ "title": "Stream Features",
+ "description": "Use go2rtc restreaming to reduce connections to your camera."
+ }
+ },
+ "step4": {
+ "description": "Final validation and analysis before saving your new camera. Connect each stream before saving.",
+ "validationTitle": "Stream Validation",
+ "connectAllStreams": "Connect All Streams",
+ "reconnectionSuccess": "Reconnection successful.",
+ "reconnectionPartial": "Some streams failed to reconnect.",
+ "streamUnavailable": "Stream preview unavailable",
+ "reload": "Reload",
+ "connecting": "Connecting...",
+ "streamTitle": "Stream {{number}}",
+ "valid": "Valid",
+ "failed": "Failed",
+ "notTested": "Not tested",
+ "connectStream": "Connect",
+ "connectingStream": "Connecting",
+ "disconnectStream": "Disconnect",
+ "estimatedBandwidth": "Estimated Bandwidth",
+ "roles": "Roles",
+ "ffmpegModule": "Use stream compatibility mode",
+ "ffmpegModuleDescription": "If the stream does not load after several attempts, try enabling this. When enabled, Frigate will use the ffmpeg module with go2rtc. This may provide better compatibility with some camera streams.",
+ "none": "None",
+ "error": "Error",
+ "streamValidated": "Stream {{number}} validated successfully",
+ "streamValidationFailed": "Stream {{number}} validation failed",
+ "saveAndApply": "Save New Camera",
+ "saveError": "Invalid configuration. Please check your settings.",
+ "issues": {
+ "title": "Stream Validation",
+ "videoCodecGood": "Video codec is {{codec}}.",
+ "audioCodecGood": "Audio codec is {{codec}}.",
+ "resolutionHigh": "A resolution of {{resolution}} may cause increased resource usage.",
+ "resolutionLow": "A resolution of {{resolution}} may be too low for reliable detection of small objects.",
+ "noAudioWarning": "No audio detected for this stream, recordings will not have audio.",
+ "audioCodecRecordError": "The AAC audio codec is required to support audio in recordings.",
+ "audioCodecRequired": "An audio stream is required to support audio detection.",
+ "restreamingWarning": "Reducing connections to the camera for the record stream may increase CPU usage slightly.",
+ "brands": {
+ "reolink-rtsp": "Reolink RTSP is not recommended. Enable HTTP in the camera's firmware settings and restart the wizard.",
+ "reolink-http": "Reolink HTTP streams should use FFmpeg for better compatibility. Enable 'Use stream compatibility mode' for this stream."
+ },
+ "dahua": {
+ "substreamWarning": "Substream 1 is locked to a low resolution. Many Dahua / Amcrest / EmpireTech cameras support additional substreams that need to be enabled in the camera's settings. It is recommended to check and utilize those streams if available."
+ },
+ "hikvision": {
+ "substreamWarning": "Substream 1 is locked to a low resolution. Many Hikvision cameras support additional substreams that need to be enabled in the camera's settings. It is recommended to check and utilize those streams if available."
+ }
+ }
+ }
+ },
+ "cameraManagement": {
+ "title": "Manage Cameras",
+ "addCamera": "Add New Camera",
+ "editCamera": "Edit Camera:",
+ "selectCamera": "Select a Camera",
+ "backToSettings": "Back to Camera Settings",
"streams": {
- "title": "Streams",
+ "title": "Enable / Disable Cameras",
"desc": "Temporarily disable a camera until Frigate restarts. Disabling a camera completely stops Frigate's processing of this camera's streams. Detection, recording, and debugging will be unavailable. Note: This does not disable go2rtc restreams."
},
+ "cameraConfig": {
+ "add": "Add Camera",
+ "edit": "Edit Camera",
+ "description": "Configure camera settings including stream inputs and roles.",
+ "name": "Camera Name",
+ "nameRequired": "Camera name is required",
+ "nameLength": "Camera name must be less than 64 characters.",
+ "namePlaceholder": "e.g., front_door or Back Yard Overview",
+ "enabled": "Enabled",
+ "ffmpeg": {
+ "inputs": "Input Streams",
+ "path": "Stream Path",
+ "pathRequired": "Stream path is required",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Roles",
+ "rolesRequired": "At least one role is required",
+ "rolesUnique": "Each role (audio, detect, record) can only be assigned to one stream",
+ "addInput": "Add Input Stream",
+ "removeInput": "Remove Input Stream",
+ "inputsRequired": "At least one input stream is required"
+ },
+ "go2rtcStreams": "go2rtc Streams",
+ "streamUrls": "Stream URLs",
+ "addUrl": "Add URL",
+ "addGo2rtcStream": "Add go2rtc Stream",
+ "toast": {
+ "success": "Camera {{cameraName}} saved successfully"
+ }
+ }
+ },
+ "cameraReview": {
+ "title": "Camera Review Settings",
+ "object_descriptions": {
+ "title": "Generative AI Object Descriptions",
+ "desc": "Temporarily enable/disable Generative AI object descriptions for this camera. When disabled, AI generated descriptions will not be requested for tracked objects on this camera."
+ },
+ "review_descriptions": {
+ "title": "Generative AI Review Descriptions",
+ "desc": "Temporarily enable/disable Generative AI review descriptions for this camera. When disabled, AI generated descriptions will not be requested for review items on this camera."
+ },
"review": {
"title": "Review",
"desc": "Temporarily enable/disable alerts and detections for this camera until Frigate restarts. When disabled, no new review items will be generated. ",
@@ -159,7 +401,7 @@
"reviewClassification": {
"title": "Review Classification",
"desc": "Frigate categorizes review items as Alerts and Detections. By default, all person and car objects are considered Alerts. You can refine categorization of your review items by configuring required zones for them.",
- "readTheDocumentation": "Read the Documentation",
+
"noDefinedZones": "No zones are defined for this camera.",
"objectAlertsTips": "All {{alertsLabels}} objects on {{cameraName}} will be shown as Alerts.",
"zoneObjectAlertsTips": "All {{alertsLabels}} objects detected in {{zone}} on {{cameraName}} will be shown as Alerts.",
@@ -200,7 +442,8 @@
"mustNotBeSameWithCamera": "Zone name must not be the same as camera name.",
"alreadyExists": "A zone with this name already exists for this camera.",
"mustNotContainPeriod": "Zone name must not contain periods.",
- "hasIllegalCharacter": "Zone name contains illegal characters."
+ "hasIllegalCharacter": "Zone name contains illegal characters.",
+ "mustHaveAtLeastOneLetter": "Zone name must have at least one letter."
}
},
"distance": {
@@ -258,7 +501,7 @@
"name": {
"title": "Name",
"inputPlaceHolder": "Enter a name…",
- "tips": "Name must be at least 2 characters and must not be the name of a camera or another zone."
+ "tips": "Name must be at least 2 characters, must have at least one letter, and must not be the name of a camera or another zone on this camera."
},
"inertia": {
"title": "Inertia",
@@ -276,7 +519,6 @@
"speedEstimation": {
"title": "Speed Estimation",
"desc": "Enable speed estimation for objects in this zone. The zone must have exactly 4 points.",
- "docs": "Read the documentation",
"lineADistance": "Line A distance ({{unit}})",
"lineBDistance": "Line B distance ({{unit}})",
"lineCDistance": "Line C distance ({{unit}})",
@@ -293,7 +535,7 @@
}
},
"toast": {
- "success": "Zone ({{zoneName}}) has been saved. Restart Frigate to apply changes."
+ "success": "Zone ({{zoneName}}) has been saved."
}
},
"motionMasks": {
@@ -306,21 +548,19 @@
"add": "New Motion Mask",
"edit": "Edit Motion Mask",
"context": {
- "title": "Motion masks are used to prevent unwanted types of motion from triggering detection (example: tree branches, camera timestamps). Motion masks should be used very sparingly, over-masking will make it more difficult for objects to be tracked.",
- "documentation": "Read the documentation"
+ "title": "Motion masks are used to prevent unwanted types of motion from triggering detection (example: tree branches, camera timestamps). Motion masks should be used very sparingly, over-masking will make it more difficult for objects to be tracked."
},
"point_one": "{{count}} point",
"point_other": "{{count}} points",
"clickDrawPolygon": "Click to draw a polygon on the image.",
"polygonAreaTooLarge": {
"title": "The motion mask is covering {{polygonArea}}% of the camera frame. Large motion masks are not recommended.",
- "tips": "Motion masks do not prevent objects from being detected. You should use a required zone instead.",
- "documentation": "Read the documentation"
+ "tips": "Motion masks do not prevent objects from being detected. You should use a required zone instead."
},
"toast": {
"success": {
- "title": "{{polygonName}} has been saved. Restart Frigate to apply changes.",
- "noName": "Motion Mask has been saved. Restart Frigate to apply changes."
+ "title": "{{polygonName}} has been saved.",
+ "noName": "Motion Mask has been saved."
}
}
},
@@ -344,8 +584,8 @@
},
"toast": {
"success": {
- "title": "{{polygonName}} has been saved. Restart Frigate to apply changes.",
- "noName": "Object Mask has been saved. Restart Frigate to apply changes."
+ "title": "{{polygonName}} has been saved.",
+ "noName": "Object Mask has been saved."
}
}
}
@@ -377,9 +617,17 @@
"title": "Debug",
"detectorDesc": "Frigate uses your detectors ({{detectors}}) to detect objects in your camera's video stream.",
"desc": "Debugging view shows a real-time view of tracked objects and their statistics. The object list shows a time-delayed summary of detected objects.",
+ "openCameraWebUI": "Open {{camera}}'s Web UI",
"debugging": "Debugging",
"objectList": "Object List",
"noObjects": "No objects",
+ "audio": {
+ "title": "Audio",
+ "noAudioDetections": "No audio detections",
+ "score": "score",
+ "currentRMS": "Current RMS",
+ "currentdbFS": "Current dbFS"
+ },
"boundingBoxes": {
"title": "Bounding boxes",
"desc": "Show bounding boxes around tracked objects",
@@ -410,11 +658,15 @@
"desc": "Show a box of the region of interest sent to the object detector",
"tips": "
Region Boxes
Bright green boxes will be overlaid on areas of interest in the frame that are being sent to the object detector.
Lines and circles will indicate significant points the tracked object has moved during its lifecycle.
"
+ },
"objectShapeFilterDrawing": {
"title": "Object Shape Filter Drawing",
"desc": "Draw a rectangle on the image to view area and ratio details",
"tips": "Enable this option to draw a rectangle on the camera image to show its area and ratio. These values can then be used to set object shape filter parameters in your config.",
- "document": "Read the documentation ",
"score": "Score",
"ratio": "Ratio",
"area": "Area"
@@ -427,7 +679,7 @@
"desc": "Manage this Frigate instance's user accounts."
},
"addUser": "Add User",
- "updatePassword": "Update Password",
+ "updatePassword": "Reset Password",
"toast": {
"success": {
"createUser": "User {{user}} created successfully",
@@ -448,7 +700,7 @@
"role": "Role",
"noUsers": "No users found.",
"changeRole": "Change user role",
- "password": "Password",
+ "password": "Reset Password",
"deleteUser": "Delete user"
},
"dialog": {
@@ -461,6 +713,8 @@
"password": {
"title": "Password",
"placeholder": "Enter password",
+ "show": "Show password",
+ "hide": "Hide password",
"confirm": {
"title": "Confirm Password",
"placeholder": "Confirm Password"
@@ -472,6 +726,13 @@
"strong": "Strong",
"veryStrong": "Very Strong"
},
+ "requirements": {
+ "title": "Password requirements:",
+ "length": "At least 8 characters",
+ "uppercase": "At least one uppercase letter",
+ "digit": "At least one digit",
+ "special": "At least one special character (!@#$%^&*(),.?\":{}|<>)"
+ },
"match": "Passwords match",
"notMatch": "Passwords don't match"
},
@@ -482,6 +743,10 @@
"placeholder": "Re-enter new password"
}
},
+ "currentPassword": {
+ "title": "Current Password",
+ "placeholder": "Enter your current password"
+ },
"usernameIsRequired": "Username is required",
"passwordIsRequired": "Password is required"
},
@@ -499,9 +764,14 @@
"passwordSetting": {
"cannotBeEmpty": "Password cannot be empty",
"doNotMatch": "Passwords do not match",
+ "currentPasswordRequired": "Current password is required",
+ "incorrectCurrentPassword": "Current password is incorrect",
+ "passwordVerificationFailed": "Failed to verify password",
"updatePassword": "Update Password for {{username}}",
"setPassword": "Set Password",
- "desc": "Create a strong password to secure this account."
+ "desc": "Create a strong password to secure this account.",
+ "multiDeviceWarning": "Any other devices where you are logged in will be required to re-login within {{refresh_time}}.",
+ "multiDeviceAdmin": "You can also force all users to re-authenticate immediately by rotating your JWT secret."
},
"changeRole": {
"title": "Change User Role",
@@ -512,7 +782,69 @@
"admin": "Admin",
"adminDesc": "Full access to all features.",
"viewer": "Viewer",
- "viewerDesc": "Limited to Live dashboards, Review, Explore, and Exports only."
+ "viewerDesc": "Limited to Live dashboards, Review, Explore, and Exports only.",
+ "customDesc": "Custom role with specific camera access."
+ }
+ }
+ }
+ },
+ "roles": {
+ "management": {
+ "title": "Viewer Role Management",
+ "desc": "Manage custom viewer roles and their camera access permissions for this Frigate instance."
+ },
+ "addRole": "Add Role",
+ "table": {
+ "role": "Role",
+ "cameras": "Cameras",
+ "actions": "Actions",
+ "noRoles": "No custom roles found.",
+ "editCameras": "Edit Cameras",
+ "deleteRole": "Delete Role"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Role {{role}} created successfully",
+ "updateCameras": "Cameras updated for role {{role}}",
+ "deleteRole": "Role {{role}} deleted successfully",
+ "userRolesUpdated_one": "{{count}} user assigned to this role has been updated to 'viewer', which has access to all cameras.",
+ "userRolesUpdated_other": "{{count}} users assigned to this role have been updated to 'viewer', which has access to all cameras."
+ },
+ "error": {
+ "createRoleFailed": "Failed to create role: {{errorMessage}}",
+ "updateCamerasFailed": "Failed to update cameras: {{errorMessage}}",
+ "deleteRoleFailed": "Failed to delete role: {{errorMessage}}",
+ "userUpdateFailed": "Failed to update user roles: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Create New Role",
+ "desc": "Add a new role and specify camera access permissions."
+ },
+ "editCameras": {
+ "title": "Edit Role Cameras",
+ "desc": "Update camera access for the role {{role}}."
+ },
+ "deleteRole": {
+ "title": "Delete Role",
+ "desc": "This action cannot be undone. This will permanently delete the role and assign any users with this role to the 'viewer' role, which will give viewer access to all cameras.",
+ "warn": "Are you sure you want to delete {{role}}?",
+ "deleting": "Deleting..."
+ },
+ "form": {
+ "role": {
+ "title": "Role Name",
+ "placeholder": "Enter role name",
+ "desc": "Only letters, numbers, periods and underscores allowed.",
+ "roleIsRequired": "Role name is required",
+ "roleOnlyInclude": "Role name may only include letters, numbers, . or _",
+ "roleExists": "A role with this name already exists."
+ },
+ "cameras": {
+ "title": "Cameras",
+ "desc": "Select cameras this role has access to. At least one camera is required.",
+ "required": "At least one camera must be selected."
}
}
}
@@ -521,13 +853,11 @@
"title": "Notifications",
"notificationSettings": {
"title": "Notification Settings",
- "desc": "Frigate can natively send push notifications to your device when it is running in the browser or installed as a PWA.",
- "documentation": "Read the Documentation"
+ "desc": "Frigate can natively send push notifications to your device when it is running in the browser or installed as a PWA."
},
"notificationUnavailable": {
"title": "Notifications Unavailable",
- "desc": "Web push notifications require a secure context (https://…). This is a browser limitation. Access Frigate securely to use notifications.",
- "documentation": "Read the Documentation"
+ "desc": "Web push notifications require a secure context (https://…). This is a browser limitation. Access Frigate securely to use notifications."
},
"globalSettings": {
"title": "Global Settings",
@@ -584,7 +914,6 @@
"snapshotConfig": {
"title": "Snapshot Configuration",
"desc": "Submitting to Frigate+ requires both snapshots and clean_copy snapshots to be enabled in your config.",
- "documentation": "Read the documentation",
"cleanCopyWarning": "Some cameras have snapshots enabled but have the clean copy disabled. You need to enable clean_copy in your snapshot config to be able to submit images from these cameras to Frigate+.",
"table": {
"camera": "Camera",
@@ -615,5 +944,126 @@
"success": "Frigate+ settings have been saved. Restart Frigate to apply changes.",
"error": "Failed to save config changes: {{errorMessage}}"
}
+ },
+ "triggers": {
+ "documentTitle": "Triggers",
+ "semanticSearch": {
+ "title": "Semantic Search is disabled",
+ "desc": "Semantic Search must be enabled to use Triggers."
+ },
+ "management": {
+ "title": "Triggers",
+ "desc": "Manage triggers for {{camera}}. Use the thumbnail type to trigger on similar thumbnails to your selected tracked object, and the description type to trigger on similar descriptions to text you specify."
+ },
+ "addTrigger": "Add Trigger",
+ "table": {
+ "name": "Name",
+ "type": "Type",
+ "content": "Content",
+ "threshold": "Threshold",
+ "actions": "Actions",
+ "noTriggers": "No triggers configured for this camera.",
+ "edit": "Edit",
+ "deleteTrigger": "Delete Trigger",
+ "lastTriggered": "Last triggered"
+ },
+ "type": {
+ "thumbnail": "Thumbnail",
+ "description": "Description"
+ },
+ "actions": {
+ "notification": "Send Notification",
+ "sub_label": "Add Sub Label",
+ "attribute": "Add Attribute"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Create Trigger",
+ "desc": "Create a trigger for camera {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Edit Trigger",
+ "desc": "Edit the settings for trigger on camera {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Delete Trigger",
+ "desc": "Are you sure you want to delete the trigger {{triggerName}}? This action cannot be undone."
+ },
+ "form": {
+ "name": {
+ "title": "Name",
+ "placeholder": "Name this trigger",
+ "description": "Enter a unique name or description to identify this trigger",
+ "error": {
+ "minLength": "Field must be at least 2 characters long.",
+ "invalidCharacters": "Field can only contain letters, numbers, underscores, and hyphens.",
+ "alreadyExists": "A trigger with this name already exists for this camera."
+ }
+ },
+ "enabled": {
+ "description": "Enable or disable this trigger"
+ },
+ "type": {
+ "title": "Type",
+ "placeholder": "Select trigger type",
+ "description": "Trigger when a similar tracked object description is detected",
+ "thumbnail": "Trigger when a similar tracked object thumbnail is detected"
+ },
+ "content": {
+ "title": "Content",
+ "imagePlaceholder": "Select a thumbnail",
+ "textPlaceholder": "Enter text content",
+ "imageDesc": "Only the most recent 100 thumbnails are displayed. If you can't find your desired thumbnail, please review earlier objects in Explore and set up a trigger from the menu there.",
+ "textDesc": "Enter text to trigger this action when a similar tracked object description is detected.",
+ "error": {
+ "required": "Content is required."
+ }
+ },
+ "threshold": {
+ "title": "Threshold",
+ "desc": "Set the similarity threshold for this trigger. A higher threshold means a closer match is required to fire the trigger.",
+ "error": {
+ "min": "Threshold must be at least 0",
+ "max": "Threshold must be at most 1"
+ }
+ },
+ "actions": {
+ "title": "Actions",
+ "desc": "By default, Frigate fires an MQTT message for all triggers. Sub labels add the trigger name to the object label. Attributes are searchable metadata stored separately in the tracked object metadata.",
+ "error": {
+ "min": "At least one action must be selected."
+ }
+ }
+ }
+ },
+ "wizard": {
+ "title": "Create Trigger",
+ "step1": {
+ "description": "Configure the basic settings for your trigger."
+ },
+ "step2": {
+ "description": "Set up the content that will trigger this action."
+ },
+ "step3": {
+ "description": "Configure the threshold and actions for this trigger."
+ },
+ "steps": {
+ "nameAndType": "Name and Type",
+ "configureData": "Configure Data",
+ "thresholdAndActions": "Threshold and Actions"
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Trigger {{name}} created successfully.",
+ "updateTrigger": "Trigger {{name}} updated successfully.",
+ "deleteTrigger": "Trigger {{name}} deleted successfully."
+ },
+ "error": {
+ "createTriggerFailed": "Failed to create trigger: {{errorMessage}}",
+ "updateTriggerFailed": "Failed to update trigger: {{errorMessage}}",
+ "deleteTriggerFailed": "Failed to delete trigger: {{errorMessage}}"
+ }
+ }
}
}
diff --git a/web/public/locales/en/views/system.json b/web/public/locales/en/views/system.json
index 059f05f9f9..ada23cdc26 100644
--- a/web/public/locales/en/views/system.json
+++ b/web/public/locales/en/views/system.json
@@ -42,6 +42,7 @@
"inferenceSpeed": "Detector Inference Speed",
"temperature": "Detector Temperature",
"cpuUsage": "Detector CPU Usage",
+ "cpuUsageInformation": "CPU used in preparing input and output data to/from detection models. This value does not measure inference usage, even if using a GPU or accelerator.",
"memoryUsage": "Detector Memory Usage"
},
"hardwareInfo": {
@@ -75,7 +76,12 @@
}
},
"npuUsage": "NPU Usage",
- "npuMemory": "NPU Memory"
+ "npuMemory": "NPU Memory",
+ "intelGpuWarning": {
+ "title": "Intel GPU Stats Warning",
+ "message": "GPU stats unavailable",
+ "description": "This is a known bug in Intel's GPU stats reporting tools (intel_gpu_top) where it will break and repeatedly return a GPU usage of 0% even in cases where hardware acceleration and object detection are correctly running on the (i)GPU. This is not a Frigate bug. You can restart the host to temporarily fix the issue and confirm that the GPU is working correctly. This does not affect performance."
+ }
},
"otherProcesses": {
"title": "Other Processes",
@@ -91,6 +97,10 @@
"tips": "This value represents the total storage used by the recordings in Frigate's database. Frigate does not track storage usage for all files on your disk.",
"earliestRecording": "Earliest recording available:"
},
+ "shm": {
+ "title": "SHM (shared memory) allocation",
+ "warning": "The current SHM size of {{total}}MB is too small. Increase it to at least {{min_shm}}MB."
+ },
"cameraStorage": {
"title": "Camera Storage",
"camera": "Camera",
@@ -158,11 +168,13 @@
"reindexingEmbeddings": "Reindexing embeddings ({{processed}}% complete)",
"cameraIsOffline": "{{camera}} is offline",
"detectIsSlow": "{{detect}} is slow ({{speed}} ms)",
- "detectIsVerySlow": "{{detect}} is very slow ({{speed}} ms)"
+ "detectIsVerySlow": "{{detect}} is very slow ({{speed}} ms)",
+ "shmTooLow": "/dev/shm allocation ({{total}} MB) should be increased to at least {{min}} MB."
},
"enrichments": {
"title": "Enrichments",
"infPerSecond": "Inferences Per Second",
+ "averageInf": "Average Inference Time",
"embeddings": {
"image_embedding": "Image Embedding",
"text_embedding": "Text Embedding",
@@ -174,7 +186,16 @@
"plate_recognition_speed": "Plate Recognition Speed",
"text_embedding_speed": "Text Embedding Speed",
"yolov9_plate_detection_speed": "YOLOv9 Plate Detection Speed",
- "yolov9_plate_detection": "YOLOv9 Plate Detection"
+ "yolov9_plate_detection": "YOLOv9 Plate Detection",
+ "review_description": "Review Description",
+ "review_description_speed": "Review Description Speed",
+ "review_description_events_per_second": "Review Description",
+ "object_description": "Object Description",
+ "object_description_speed": "Object Description Speed",
+ "object_description_events_per_second": "Object Description",
+ "classification": "{{name}} Classification",
+ "classification_speed": "{{name}} Classification Speed",
+ "classification_events_per_second": "{{name}} Classification Events Per Second"
}
}
}
diff --git a/web/public/locales/es/common.json b/web/public/locales/es/common.json
index bf6a735fa1..9f35ee9581 100644
--- a/web/public/locales/es/common.json
+++ b/web/public/locales/es/common.json
@@ -141,7 +141,15 @@
"fr": "Français (Frances)",
"yue": "粵語 (Cantonés)",
"th": "ไทย (Tailandés)",
- "ca": "Català (Catalan)"
+ "ca": "Català (Catalan)",
+ "ptBR": "Português brasileiro (Portugués brasileño)",
+ "sr": "Српски (Serbio)",
+ "sl": "Slovenščina (Esloveno)",
+ "lt": "Lietuvių (Lituano)",
+ "bg": "Български (Búlgaro)",
+ "gl": "Galego (Gallego)",
+ "id": "Bahasa Indonesia (Indonesio)",
+ "ur": "اردو (Urdu)"
},
"appearance": "Apariencia",
"darkMode": {
@@ -271,5 +279,9 @@
"title": "404",
"desc": "Página no encontrada"
},
- "selectItem": "Seleccionar {{item}}"
+ "selectItem": "Seleccionar {{item}}",
+ "readTheDocumentation": "Leer la documentación",
+ "information": {
+ "pixels": "{{area}}px"
+ }
}
diff --git a/web/public/locales/es/components/auth.json b/web/public/locales/es/components/auth.json
index fde9c5a9f8..62d6c84452 100644
--- a/web/public/locales/es/components/auth.json
+++ b/web/public/locales/es/components/auth.json
@@ -10,6 +10,7 @@
"loginFailed": "Error de inicio de sesión"
},
"password": "Contraseña",
- "login": "Iniciar sesión"
+ "login": "Iniciar sesión",
+ "firstTimeLogin": "¿Estás tratando de iniciar sesión por primera vez? Las credenciales están impresas en los registros de Frigate."
}
}
diff --git a/web/public/locales/es/components/camera.json b/web/public/locales/es/components/camera.json
index bf036e0ae5..69605875e8 100644
--- a/web/public/locales/es/components/camera.json
+++ b/web/public/locales/es/components/camera.json
@@ -66,7 +66,8 @@
"desc": "Cambia las opciones de transmisión en vivo para el panel de control de este grupo de cámaras. Estos ajustes son específicos del dispositivo/navegador.",
"placeholder": "Elige una transmisión",
"stream": "Transmitir"
- }
+ },
+ "birdseye": "Vista Aérea"
}
},
"debug": {
diff --git a/web/public/locales/es/components/dialog.json b/web/public/locales/es/components/dialog.json
index 376b385e60..e200c388d4 100644
--- a/web/public/locales/es/components/dialog.json
+++ b/web/public/locales/es/components/dialog.json
@@ -69,7 +69,7 @@
"noVaildTimeSelected": "No se seleccionó un rango de tiempo válido.",
"endTimeMustAfterStartTime": "La hora de finalización debe ser posterior a la hora de inicio."
},
- "success": "Exportación iniciada con éxito. Ver el archivo en la carpeta /exports."
+ "success": "Exportación iniciada con éxito. Ver el archivo en la página exportaciones."
},
"fromTimeline": {
"saveExport": "Guardar exportación",
@@ -120,7 +120,15 @@
"button": {
"export": "Exportar",
"markAsReviewed": "Marcar como revisado",
- "deleteNow": "Eliminar ahora"
+ "deleteNow": "Eliminar ahora",
+ "markAsUnreviewed": "Marcar como no revisado"
}
+ },
+ "imagePicker": {
+ "selectImage": "Seleccione la miniatura de un objeto rastreado",
+ "search": {
+ "placeholder": "Búsqueda por etiqueta o sub-etiqueta..."
+ },
+ "noImages": "No se encontraron miniaturas para esta cámara"
}
}
diff --git a/web/public/locales/es/components/filter.json b/web/public/locales/es/components/filter.json
index 7c627ad5fc..3625030f92 100644
--- a/web/public/locales/es/components/filter.json
+++ b/web/public/locales/es/components/filter.json
@@ -119,9 +119,19 @@
"loading": "Cargando matrículas reconocidas…",
"placeholder": "Escribe para buscar matrículas…",
"noLicensePlatesFound": "No se encontraron matrículas.",
- "selectPlatesFromList": "Selecciona una o más matrículas de la lista."
+ "selectPlatesFromList": "Selecciona una o más matrículas de la lista.",
+ "selectAll": "Seleccionar todas",
+ "clearAll": "Limpiar todas"
},
"zoneMask": {
"filterBy": "Filtrar por máscara de zona"
+ },
+ "classes": {
+ "label": "Clases",
+ "all": {
+ "title": "Todas las Clases"
+ },
+ "count_one": "{{count}} Clase",
+ "count_other": "{{count}} Clases"
}
}
diff --git a/web/public/locales/es/views/classificationModel.json b/web/public/locales/es/views/classificationModel.json
new file mode 100644
index 0000000000..4890ed058b
--- /dev/null
+++ b/web/public/locales/es/views/classificationModel.json
@@ -0,0 +1,59 @@
+{
+ "documentTitle": "Modelos de Clasificación",
+ "button": {
+ "deleteClassificationAttempts": "Borrar Imágenes de Clasificación.",
+ "renameCategory": "Renombrar Clase",
+ "deleteCategory": "Borrar Clase",
+ "deleteImages": "Borrar Imágenes",
+ "trainModel": "Entrenar Modelo",
+ "addClassification": "Añadir Clasificación",
+ "deleteModels": "Borrar Modelos",
+ "editModel": "Editar Modelo"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Clase Borrada",
+ "deletedImage": "Imágenes Borradas",
+ "deletedModel_one": "Borrado con éxito {{count}} modelo",
+ "deletedModel_many": "Borrados con éxito {{count}} modelos",
+ "deletedModel_other": "Borrados con éxito {{count}} modelos",
+ "categorizedImage": "Imagen Clasificada Correctamente",
+ "trainedModel": "Modelo entrenado correctamente.",
+ "trainingModel": "Entrenamiento del modelo iniciado correctamente.",
+ "updatedModel": "Configuración del modelo actualizada correctamente",
+ "renamedCategory": "Clase renombrada correctamente a {{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "Fallo al borrar: {{errorMessage}}",
+ "deleteCategoryFailed": "Fallo al borrar clase: {{errorMessage}}",
+ "deleteModelFailed": "Fallo al borrar modelo: {{errorMessage}}",
+ "categorizeFailed": "Fallo al categorizar imagen: {{errorMessage}}",
+ "trainingFailed": "El entrenamiento del modelo ha fallado. Revisa los registros de Frigate para más detalles.",
+ "updateModelFailed": "Fallo al actualizar modelo: {{errorMessage}}",
+ "trainingFailedToStart": "No se pudo iniciar el entrenamiento del modelo: {{errorMessage}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Borrar Clase",
+ "desc": "¿Esta seguro de que quiere borrar la clase {{name}}? Esto borrará permanentemente todas las imágenes asociadas y requerirá reentrenar el modelo."
+ },
+ "deleteModel": {
+ "title": "Borrar Modelo de Clasificación",
+ "single": "¿Está seguro de que quiere eliminar {{name}}? Esto borrar permanentemente todos los datos asociados incluidas las imágenes y los datos de entrenamiento. Esta acción no se puede deshacer.",
+ "desc_one": "¿Estas seguro de que quiere borrar {{count}} modelo? Esto borrara permanentemente todos los datos asociados, incluyendo imágenes y datos de entrenamiento. Esta acción no puede ser desehecha.",
+ "desc_many": "¿Estas seguro de que quiere borrar {{count}} modelos? Esto borrara permanentemente todos los datos asociados, incluyendo imágenes y datos de entrenamiento. Esta acción no puede ser desehecha.",
+ "desc_other": "¿Estas seguro de que quiere borrar {{count}} modelos? Esto borrara permanentemente todos los datos asociados, incluyendo imágenes y datos de entrenamiento. Esta acción no puede ser desehecha."
+ },
+ "edit": {
+ "title": "Editar modelo de clasificación"
+ },
+ "tooltip": {
+ "noChanges": "No se han realizado cambios en el conjunto de datos desde el último entrenamiento.",
+ "modelNotReady": "El modelo no está listo para el entrenamiento",
+ "trainingInProgress": "El modelo está entrenándose actualmente.",
+ "noNewImages": "No hay imágenes nuevas para entrenar. Clasifica antes más imágenes del conjunto de datos."
+ },
+ "details": {
+ "scoreInfo": "La puntuación representa la confianza media de clasificación en todas las detecciones de este objeto."
+ }
+}
diff --git a/web/public/locales/es/views/configEditor.json b/web/public/locales/es/views/configEditor.json
index 39514ec826..3b9f2779e8 100644
--- a/web/public/locales/es/views/configEditor.json
+++ b/web/public/locales/es/views/configEditor.json
@@ -12,5 +12,7 @@
}
},
"documentTitle": "Editor de Configuración - Frigate",
- "confirm": "¿Salir sin guardar?"
+ "confirm": "¿Salir sin guardar?",
+ "safeConfigEditor": "Editor de Configuración (Modo Seguro)",
+ "safeModeDescription": "Frigate esta en modo seguro debido a un error en la configuración."
}
diff --git a/web/public/locales/es/views/events.json b/web/public/locales/es/views/events.json
index b06cd92e93..b2b4001ba1 100644
--- a/web/public/locales/es/views/events.json
+++ b/web/public/locales/es/views/events.json
@@ -35,5 +35,26 @@
"selected": "{{count}} seleccionados",
"selected_one": "{{count}} seleccionados",
"selected_other": "{{count}} seleccionados",
- "detected": "detectado"
+ "detected": "detectado",
+ "suspiciousActivity": "Actividad Sospechosa",
+ "threateningActivity": "Actividad Amenzadora",
+ "zoomIn": "Agrandar",
+ "zoomOut": "Alejar",
+ "detail": {
+ "label": "Detalle",
+ "trackedObject_one": "{{count}} objeto",
+ "trackedObject_other": "{{count}} objetos",
+ "noObjectDetailData": "No hay datos detallados del objeto.",
+ "settings": "Configuración de la Vista Detalle",
+ "noDataFound": "No hay datos detallados para revisar",
+ "aria": "Alternar vista de detalles",
+ "alwaysExpandActive": {
+ "title": "Expandir siempre los activos",
+ "desc": "Expandir siempre los detalles del objeto activo cuando esten disponibles."
+ }
+ },
+ "objectTrack": {
+ "clickToSeek": "Clic para ir a este momento",
+ "trackedPoint": "Puntro trazado"
+ }
}
diff --git a/web/public/locales/es/views/explore.json b/web/public/locales/es/views/explore.json
index f5fb869e0e..7fcd50fb06 100644
--- a/web/public/locales/es/views/explore.json
+++ b/web/public/locales/es/views/explore.json
@@ -41,12 +41,14 @@
"success": {
"updatedSublabel": "Subetiqueta actualizada con éxito.",
"regenerate": "Se ha solicitado una nueva descripción a {{provider}}. Dependiendo de la velocidad de tu proveedor, la nueva descripción puede tardar algún tiempo en regenerarse.",
- "updatedLPR": "Matrícula actualizada con éxito."
+ "updatedLPR": "Matrícula actualizada con éxito.",
+ "audioTranscription": "Transcripción de audio solicitada con éxito."
},
"error": {
"regenerate": "No se pudo llamar a {{provider}} para una nueva descripción: {{errorMessage}}",
"updatedSublabelFailed": "No se pudo actualizar la subetiqueta: {{errorMessage}}",
- "updatedLPRFailed": "No se pudo actualizar la matrícula: {{errorMessage}}"
+ "updatedLPRFailed": "No se pudo actualizar la matrícula: {{errorMessage}}",
+ "audioTranscription": "Transcripción de audio solicitada falló: {{errorMessage}}"
}
},
"tips": {
@@ -97,6 +99,9 @@
"recognizedLicensePlate": "Matrícula Reconocida",
"snapshotScore": {
"label": "Puntuación de Instantánea"
+ },
+ "score": {
+ "label": "Puntuación"
}
},
"documentTitle": "Explorar - Frigate",
@@ -105,7 +110,9 @@
"snapshot": "captura instantánea",
"video": "vídeo",
"object_lifecycle": "ciclo de vida del objeto",
- "details": "detalles"
+ "details": "detalles",
+ "thumbnail": "miniatura",
+ "tracking_details": "detalles de seguimiento"
},
"objectLifecycle": {
"title": "Ciclo de vida del objeto",
@@ -183,6 +190,14 @@
},
"deleteTrackedObject": {
"label": "Eliminar este objeto rastreado"
+ },
+ "audioTranscription": {
+ "label": "Transcribir",
+ "aria": "Solicitar transcripción de audio"
+ },
+ "addTrigger": {
+ "label": "Añadir disparador",
+ "aria": "Añadir disparador para el objeto seguido"
}
},
"dialog": {
@@ -205,5 +220,22 @@
"trackedObjectsCount_one": "{{count}} objeto rastreado ",
"trackedObjectsCount_many": "{{count}} objetos rastreados ",
"trackedObjectsCount_other": "{{count}} objetos rastreados ",
- "exploreMore": "Explora más objetos {{label}}"
+ "exploreMore": "Explora más objetos {{label}}",
+ "aiAnalysis": {
+ "title": "Análisis AI"
+ },
+ "concerns": {
+ "label": "Preocupaciones"
+ },
+ "trackingDetails": {
+ "title": "Detalles del seguimiento",
+ "noImageFound": "No se ha encontrado imagen en este momento.",
+ "createObjectMask": "Crear máscara de objeto",
+ "adjustAnnotationSettings": "Ajustar configuración de anotaciones",
+ "scrollViewTips": "Haz clic para ver los momentos relevantes del ciclo de vida de este objeto.",
+ "count": "{{first}} de {{second}}",
+ "lifecycleItemDesc": {
+ "visible": "{{label}} detectado"
+ }
+ }
}
diff --git a/web/public/locales/es/views/exports.json b/web/public/locales/es/views/exports.json
index b3b686cae4..9de2fa3300 100644
--- a/web/public/locales/es/views/exports.json
+++ b/web/public/locales/es/views/exports.json
@@ -13,5 +13,11 @@
"renameExportFailed": "No se pudo renombrar la exportación: {{errorMessage}}"
}
},
- "deleteExport.desc": "¿Estás seguro de que quieres eliminar {{exportName}}?"
+ "deleteExport.desc": "¿Estás seguro de que quieres eliminar {{exportName}}?",
+ "tooltip": {
+ "shareExport": "Compartir exportación",
+ "downloadVideo": "Descargar video",
+ "editName": "Editar nombre",
+ "deleteExport": "Eliminar exportación"
+ }
}
diff --git a/web/public/locales/es/views/faceLibrary.json b/web/public/locales/es/views/faceLibrary.json
index 5fe5baec48..25fa983e75 100644
--- a/web/public/locales/es/views/faceLibrary.json
+++ b/web/public/locales/es/views/faceLibrary.json
@@ -1,6 +1,6 @@
{
"description": {
- "addFace": "Guía para agregar una nueva colección a la Biblioteca de Rostros.",
+ "addFace": "Agregar una nueva colección a la Biblioteca de Rostros subiendo tu primera imagen.",
"placeholder": "Introduce un nombre para esta colección",
"invalidName": "Nombre inválido. Los nombres solo pueden incluir letras, números, espacios, apóstrofes, guiones bajos y guiones."
},
@@ -23,11 +23,11 @@
"title": "Crear colección",
"desc": "Crear una nueva colección",
"new": "Crear nuevo rostro",
- "nextSteps": "Para construir una base sólida:
Usa la pestaña Entrenar para seleccionar y entrenar con imágenes de cada persona detectada.
Enfócate en imágenes frontales para obtener los mejores resultados; evita entrenar con imágenes que capturen rostros en ángulo.
"
+ "nextSteps": "Para construir una base sólida:
Usa la pestaña Reconocimientos Recientes para seleccionar y entrenar con imágenes de cada persona detectada.
Céntrate en imágenes frontales para obtener los mejores resultados; evita entrenar con imágenes que capturen rostros de perfil.
"
},
"train": {
- "title": "Entrenar",
- "aria": "Seleccionar entrenamiento",
+ "title": "Reconocimientos Recientes",
+ "aria": "Seleccionar reconocimientos recientes",
"empty": "No hay intentos recientes de reconocimiento facial"
},
"selectItem": "Seleccionar {{item}}",
@@ -49,7 +49,7 @@
"selectImage": "Por favor, selecciona un archivo de imagen."
},
"dropActive": "Suelta la imagen aquí…",
- "dropInstructions": "Arrastra y suelta una imagen aquí, o haz clic para seleccionar",
+ "dropInstructions": "Arrastra y suelta, o pega una imagen aquí, o haz clic para seleccionar",
"maxSize": "Tamaño máximo: {{size}}MB"
},
"toast": {
diff --git a/web/public/locales/es/views/live.json b/web/public/locales/es/views/live.json
index 8191aebb82..3d8c0b0bee 100644
--- a/web/public/locales/es/views/live.json
+++ b/web/public/locales/es/views/live.json
@@ -42,7 +42,15 @@
"label": "Haz clic en el marco para centrar la cámara PTZ"
}
},
- "presets": "Preajustes de cámara PTZ"
+ "presets": "Preajustes de cámara PTZ",
+ "focus": {
+ "in": {
+ "label": "Enfocar camara PTZ"
+ },
+ "out": {
+ "label": "Desenfocar camara PTZ"
+ }
+ }
},
"camera": {
"enable": "Habilitar cámara",
@@ -77,7 +85,7 @@
"disable": "Ocultar estadísticas de transmisión"
},
"manualRecording": {
- "title": "Grabación bajo demanda",
+ "title": "Bajo demanda",
"tips": "Iniciar un evento manual basado en la configuración de retención de grabaciones de esta cámara.",
"playInBackground": {
"label": "Reproducir en segundo plano",
@@ -116,7 +124,7 @@
"twoWayTalk": {
"tips.documentation": "Leer la documentación ",
"available": "La conversación bidireccional está disponible para esta transmisión",
- "unavailable": "La conversación bidireccional está disponible para esta transmisión",
+ "unavailable": "La conversación bidireccional no está disponible para esta transmisión",
"tips": "Tu dispositivo debe soportar la función y WebRTC debe estar configurado para la conversación bidireccional."
},
"lowBandwidth": {
@@ -126,6 +134,9 @@
"playInBackground": {
"label": "Reproducir en segundo plano",
"tips": "Habilita esta opción para continuar la transmisión cuando el reproductor esté oculto."
+ },
+ "debug": {
+ "picker": "Selección de transmisión no disponible en mode de debug. La vista de debug siempre usa la transmisión con el rol de deteccción asignado."
}
},
"cameraSettings": {
@@ -135,7 +146,8 @@
"recording": "Grabación",
"snapshots": "Capturas de pantalla",
"autotracking": "Seguimiento automático",
- "cameraEnabled": "Cámara habilitada"
+ "cameraEnabled": "Cámara habilitada",
+ "transcription": "Transcripción de Audio"
},
"history": {
"label": "Mostrar grabaciones históricas"
@@ -154,5 +166,14 @@
"label": "Editar grupo de cámaras"
},
"exitEdit": "Salir de la edición"
+ },
+ "transcription": {
+ "enable": "Habilitar transcripción de audio en tiempo real",
+ "disable": "Deshabilitar transcripción de audio en tiempo real"
+ },
+ "noCameras": {
+ "title": "No hay cámaras configuradas",
+ "description": "Comienza conectando una cámara.",
+ "buttonText": "Añade Cámara"
}
}
diff --git a/web/public/locales/es/views/settings.json b/web/public/locales/es/views/settings.json
index 6950c79990..7fe10b3ff8 100644
--- a/web/public/locales/es/views/settings.json
+++ b/web/public/locales/es/views/settings.json
@@ -7,10 +7,12 @@
"camera": "Configuración de cámara - Frigate",
"motionTuner": "Ajuste de movimiento - Frigate",
"classification": "Configuración de clasificación - Frigate",
- "general": "Configuración General - Frigate",
+ "general": "Configuración de Interfaz de Usuario - Frigate",
"frigatePlus": "Configuración de Frigate+ - Frigate",
"notifications": "Configuración de Notificaciones - Frigate",
- "enrichments": "Configuración de Análisis Avanzado - Frigate"
+ "enrichments": "Configuración de Análisis Avanzado - Frigate",
+ "cameraManagement": "Administrar Cámaras - Frigate",
+ "cameraReview": "Revisar Configuración de Cámaras - Frigate"
},
"menu": {
"cameras": "Configuración de Cámara",
@@ -22,7 +24,11 @@
"frigateplus": "Frigate+",
"users": "Usuarios",
"notifications": "Notificaciones",
- "enrichments": "Análisis avanzado"
+ "enrichments": "Análisis avanzado",
+ "triggers": "Disparadores",
+ "roles": "Rols",
+ "cameraManagement": "Administración",
+ "cameraReview": "Revisar"
},
"dialog": {
"unsavedChanges": {
@@ -72,7 +78,7 @@
"title": "Diseños guardados",
"clearAll": "Borrar todos los diseños"
},
- "title": "Configuración general",
+ "title": "Ajustes de Interfaz de Usuario",
"toast": {
"success": {
"clearStoredLayout": "Diseño almacenado eliminado para {{cameraName}}",
@@ -178,6 +184,44 @@
"streams": {
"title": "Transmisiones",
"desc": "Desactivar temporalmente una cámara hasta que Frigate se reinicie. Desactivar una cámara detiene por completo el procesamiento de las transmisiones de esta cámara por parte de Frigate. La detección, grabación y depuración no estarán disponibles. Nota: Esto no desactiva las retransmisiones de go2rtc."
+ },
+ "object_descriptions": {
+ "title": "Descripciones de objetos de IA generativa",
+ "desc": "Habilitar/deshabilitar temporalmente las descripciones de objetos de IA generativa para esta cámara. Cuando está deshabilitado, no se solicitarán descripciones generadas por IA para los objetos rastreados en esta cámara."
+ },
+ "review_descriptions": {
+ "title": "Descripciones de revisión de IA generativa",
+ "desc": "Habilitar/deshabilitar temporalmente las descripciones de revisión de IA generativa para esta cámara. Cuando está deshabilitado, no se solicitarán descripciones generadas por IA para los elementos de revisión en esta cámara."
+ },
+ "addCamera": "Añadir nueva cámara",
+ "editCamera": "Editar cámara:",
+ "selectCamera": "Seleccionar una cámara",
+ "backToSettings": "Volver a la configuración de la cámara",
+ "cameraConfig": {
+ "add": "Añadir cámara",
+ "edit": "Editar cámara",
+ "description": "Configurar los ajustes de la cámara, incluyendo las entradas de flujo y los roles.",
+ "name": "Nombre de la cámara",
+ "nameRequired": "El nombre de la cámara es obligatorio",
+ "nameInvalid": "El nombre de la cámara debe contener solo letras, números, guiones bajos o guiones",
+ "namePlaceholder": "p. ej., puerta_principal",
+ "enabled": "Habilitado",
+ "ffmpeg": {
+ "inputs": "Flujos de entrada",
+ "path": "Ruta del flujo",
+ "pathRequired": "La ruta del flujo es obligatoria",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Roles",
+ "rolesRequired": "Se requiere al menos un rol",
+ "rolesUnique": "Cada rol (audio, detección, grabación) solo puede asignarse a un flujo",
+ "addInput": "Añadir flujo de entrada",
+ "removeInput": "Eliminar flujo de entrada",
+ "inputsRequired": "Se requiere al menos un flujo de entrada"
+ },
+ "toast": {
+ "success": "Cámara {{cameraName}} guardada con éxito"
+ },
+ "nameLength": "Nombre de cámara debe ser de mínimo 24 caracteres."
}
},
"masksAndZones": {
@@ -423,6 +467,19 @@
"score": "Puntuación",
"ratio": "Proporción",
"area": "Área"
+ },
+ "paths": {
+ "title": "Rutas",
+ "desc": "Mostrar puntos significativos de la ruta del objeto rastreado",
+ "tips": "
Rutas
Líneas y círculos indicarán los puntos significativos por los que se ha movido el objeto rastreado durante su ciclo de vida.
"
+ },
+ "openCameraWebUI": "Abrir Web UI de {{camera}}",
+ "audio": {
+ "title": "Audio",
+ "noAudioDetections": "No hay detecciones de audio",
+ "score": "puntuación",
+ "currentRMS": "RMS actual",
+ "currentdbFS": "dbFS actual"
}
},
"users": {
@@ -510,7 +567,8 @@
"adminDesc": "Acceso completo a todas las funciones.",
"viewerDesc": "Limitado a paneles en vivo, revisión, exploración y exportaciones únicamente.",
"viewer": "Espectador",
- "admin": "Administrador"
+ "admin": "Administrador",
+ "customDesc": "Rol personalizado con acceso a cámaras."
},
"select": "Selecciona un rol"
},
@@ -683,5 +741,171 @@
"success": "Los ajustes de enriquecimientos se han guardado. Reinicia Frigate para aplicar los cambios.",
"error": "No se pudieron guardar los cambios en la configuración: {{errorMessage}}"
}
+ },
+ "triggers": {
+ "documentTitle": "Disparadores",
+ "management": {
+ "title": "Gestión de disparadores",
+ "desc": "Gestionar disparadores para {{camera}}. Usa el tipo de miniatura para activar en miniaturas similares al objeto rastreado seleccionado, y el tipo de descripción para activar en descripciones similares al texto que especifiques."
+ },
+ "addTrigger": "Añadir Disparador",
+ "table": {
+ "name": "Nombre",
+ "type": "Tipo",
+ "content": "Contenido",
+ "threshold": "Umbral",
+ "actions": "Acciones",
+ "noTriggers": "No hay disparadores configurados para esta cámara.",
+ "edit": "Editar",
+ "deleteTrigger": "Eliminar Disparador",
+ "lastTriggered": "Última activación"
+ },
+ "type": {
+ "description": "Descripción",
+ "thumbnail": "Miniatura"
+ },
+ "actions": {
+ "alert": "Marcar como Alerta",
+ "notification": "Enviar Notificación"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Crear Disparador",
+ "desc": "Crear un disparador par la cámara {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Editar Disparador",
+ "desc": "Editar configuractión del disparador para cámara {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Eliminar Disparador",
+ "desc": "Está seguro de que desea eliminar el disparador {{triggerName}}? Esta acción no se puede deshacer."
+ },
+ "form": {
+ "name": {
+ "title": "Nombre",
+ "placeholder": "Entre nombre de disparador",
+ "error": {
+ "minLength": "El nombre debe tener al menos 2 caracteres.",
+ "invalidCharacters": "El nombre sólo puede contener letras, números, guiones bajos, y guiones.",
+ "alreadyExists": "Un disparador con este nombre ya existe para esta cámara."
+ }
+ },
+ "enabled": {
+ "description": "Activa o desactiva este disparador"
+ },
+ "type": {
+ "title": "Tipo",
+ "placeholder": "Seleccione tipo de disparador"
+ },
+ "friendly_name": {
+ "title": "Nombre amigable",
+ "placeholder": "Nombre o describa este disparador",
+ "description": "Un nombre o texto descriptivo amigable (opcional) para este disparador."
+ },
+ "content": {
+ "title": "Contenido",
+ "imagePlaceholder": "Seleccione una imágen",
+ "textPlaceholder": "Entre contenido de texto",
+ "error": {
+ "required": "El contenido es requrido."
+ },
+ "imageDesc": "Seleccione una imágen para iniciar esta acción cuando una imágen similar es detectada.",
+ "textDesc": "Entre texto para iniciar esta acción cuando la descripción de un objecto seguido similar es detectado."
+ },
+ "threshold": {
+ "title": "Umbral",
+ "error": {
+ "min": "El umbral debe ser al menos 0",
+ "max": "El umbral debe ser al menos 1"
+ }
+ },
+ "actions": {
+ "title": "Acciones",
+ "error": {
+ "min": "Al menos una acción debe ser seleccionada."
+ },
+ "desc": "Por defecto, Frigate manda un mensaje MQTT por todos los disparadores. Seleccione una acción adicional que se realizará cuando este disparador se accione."
+ }
+ }
+ },
+ "semanticSearch": {
+ "title": "Búsqueda semántica desactivada",
+ "desc": "Búsqueda semántica debe estar activada para usar Disparadores."
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Disparador {{name}} creado exitosamente.",
+ "updateTrigger": "Disparador {{name}} actualizado exitosamente.",
+ "deleteTrigger": "Disparador {{name}} eliminado exitosamente."
+ },
+ "error": {
+ "createTriggerFailed": "Fallo al crear el disparador: {{errorMessage}}",
+ "updateTriggerFailed": "Fallo al actualizar el disparador: {{errorMessage}}",
+ "deleteTriggerFailed": "Fallo al eliminar el disparador: {{errorMessage}}"
+ }
+ }
+ },
+ "roles": {
+ "management": {
+ "title": "Administración del rol de visor",
+ "desc": "Administra roles de visor personalizados y sus permisos de acceso a cámaras para esta instancia de Frigate."
+ },
+ "addRole": "Añade un rol",
+ "table": {
+ "role": "Rol",
+ "cameras": "Cámaras",
+ "actions": "Acciones",
+ "noRoles": "No se encontraron roles personalizados.",
+ "editCameras": "Edita Cámaras",
+ "deleteRole": "Eliminar Rol"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Rol {{role}} creado exitosamente",
+ "updateCameras": "Cámara actualizada para el rol {{role}}",
+ "deleteRole": "Rol {{role}} eliminado exitosamente",
+ "userRolesUpdated_one": "{{count}} usuarios asignados a este rol han sido actualizados a 'visor', que tiene acceso a todas las cámaras.",
+ "userRolesUpdated_many": "",
+ "userRolesUpdated_other": ""
+ },
+ "error": {
+ "createRoleFailed": "Creación de rol fallida: {{errorMessage}}",
+ "updateCamerasFailed": "Actualización de cámaras fallida: {{errorMessage}}",
+ "deleteRoleFailed": "Eliminación de rol fallida: {{errorMessage}}",
+ "userUpdateFailed": "Actualización de roles de usuario fallida: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Crear Nuevo Rol",
+ "desc": "Añadir nuevo rol y especificar permisos de acceso a cámaras."
+ },
+ "deleteRole": {
+ "title": "Eliminar Rol",
+ "deleting": "Eliminando...",
+ "desc": "Esta acción no se puede deshacer. El rol va a ser eliminado permanentemente y usuarios associados serán asignados a rol de 'Visor', que les da acceso a ver todas las cámaras.",
+ "warn": "Estás seguro de que quieres eliminar {{role}}?"
+ },
+ "editCameras": {
+ "title": "Editar cámaras de rol",
+ "desc": "Actualizar acceso de cámara para el rol {{role}}."
+ },
+ "form": {
+ "role": {
+ "title": "Nombre de rol",
+ "placeholder": "Entre el nombre del rol",
+ "desc": "Solo se permiten letras, números, puntos y guión bajo.",
+ "roleIsRequired": "El nombre del rol es requerido",
+ "roleOnlyInclude": "El nombre del rol solo incluye letras, números, . o _",
+ "roleExists": "Un rol con este nombre ya existe."
+ },
+ "cameras": {
+ "title": "Cámaras",
+ "desc": "Seleccione las cámaras a las que este rol tiene accceso. Al menos una cámara es requerida.",
+ "required": "Al menos una cámara debe ser seleccionada."
+ }
+ }
+ }
}
}
diff --git a/web/public/locales/es/views/system.json b/web/public/locales/es/views/system.json
index 0aaade6263..e54a7802b6 100644
--- a/web/public/locales/es/views/system.json
+++ b/web/public/locales/es/views/system.json
@@ -42,7 +42,8 @@
"inferenceSpeed": "Velocidad de inferencia del detector",
"cpuUsage": "Uso de CPU del Detector",
"memoryUsage": "Uso de Memoria del Detector",
- "temperature": "Detector de Temperatura"
+ "temperature": "Detector de Temperatura",
+ "cpuUsageInformation": "CPU utilizado para preparar los datos de entrada y salida desde/hacia la detección del modelo. Este valor no mide el uso de inferencia, incluso si se está utilizando una GPU o un acelerador."
},
"hardwareInfo": {
"title": "Información de Hardware",
@@ -102,6 +103,10 @@
"title": "Almacenamiento de la Cámara",
"storageUsed": "Almacenamiento",
"unusedStorageInformation": "Información de Almacenamiento No Utilizado"
+ },
+ "shm": {
+ "title": "Asignación de SHM (memoria compartida)",
+ "warning": "El tamaño actual de SHM de {{total}}MB es muy pequeño. Aumente al menos a {{min_shm}}MB."
}
},
"cameras": {
@@ -175,6 +180,7 @@
"reindexingEmbeddings": "Reindexando incrustaciones ({{processed}}% completado)",
"detectIsSlow": "{{detect}} es lento ({{speed}} ms)",
"cameraIsOffline": "{{camera}} está desconectada",
- "detectIsVerySlow": "{{detect}} es muy lento ({{speed}} ms)"
+ "detectIsVerySlow": "{{detect}} es muy lento ({{speed}} ms)",
+ "shmTooLow": "Asignación de /dev/shm ({{total}} MB) debe aumentarse al menos a {{min}} MB."
}
}
diff --git a/web/public/locales/et/audio.json b/web/public/locales/et/audio.json
new file mode 100644
index 0000000000..8797c78672
--- /dev/null
+++ b/web/public/locales/et/audio.json
@@ -0,0 +1,59 @@
+{
+ "bicycle": "Jalgratas",
+ "car": "Auto",
+ "motorcycle": "Mootorratas",
+ "bus": "Buss",
+ "train": "Rong",
+ "boat": "Väike laev",
+ "bird": "Lind",
+ "cat": "Kass",
+ "dog": "Koer",
+ "horse": "Hobune",
+ "sheep": "Lammas",
+ "skateboard": "Rula",
+ "breathing": "Hingamine",
+ "wheeze": "Kähinal hingamine",
+ "snoring": "Norskamine",
+ "pets": "Lemmikloomad",
+ "animal": "Loom",
+ "children_playing": "Laste mängimine",
+ "crowd": "Rahvamass",
+ "applause": "Plaksutamine",
+ "heartbeat": "Südamelöök",
+ "heart_murmur": "Südamekahin",
+ "clapping": "Käteplagin",
+ "finger_snapping": "Sõrmede naksutamine",
+ "hands": "Käed",
+ "camera": "Kaamera",
+ "speech": "Kõne",
+ "babbling": "Lobisemine",
+ "yell": "Karjumine",
+ "bellow": "Röökimine",
+ "whoop": "Kisamine",
+ "whispering": "Sosistamine",
+ "laughter": "Naermine",
+ "snicker": "Itsitamine",
+ "sigh": "Ohkamine",
+ "crying": "Nutmine",
+ "singing": "Laulmine",
+ "choir": "Koorilaulmine",
+ "yodeling": "Joodeldamine",
+ "chant": "Skandeerimine",
+ "mantra": "Mantra lugemine",
+ "child_singing": "Lastelaul",
+ "whistling": "Vilistamine",
+ "gasp": "Hingeldamine",
+ "pant": "Ähkimine",
+ "door": "Uks",
+ "mouse": "Hiir",
+ "keyboard": "Klahvistik",
+ "sink": "Kraanikauss",
+ "blender": "Kannmikser",
+ "clock": "Kell",
+ "scissors": "Käärid",
+ "hair_dryer": "Föön",
+ "toothbrush": "Hambahari",
+ "vehicle": "Sõiduk",
+ "bark": "Puukoor",
+ "goat": "Kits"
+}
diff --git a/web/public/locales/et/common.json b/web/public/locales/et/common.json
new file mode 100644
index 0000000000..c092658e02
--- /dev/null
+++ b/web/public/locales/et/common.json
@@ -0,0 +1,297 @@
+{
+ "time": {
+ "untilForTime": "Kuni {{time}}",
+ "today": "Täna",
+ "untilForRestart": "Kuni Frigate käivitub uuesti.",
+ "untilRestart": "Kuni uuesti käivitamiseni",
+ "ago": "{{timeAgo}} tagasi",
+ "justNow": "Hetk tagasi",
+ "yesterday": "Eile",
+ "last7": "Viimase 7 päeva jooksul",
+ "last14": "Viimase 14 päeva jooksul",
+ "last30": "Viimase 30 päeva jooksul",
+ "thisWeek": "Sel nädalal",
+ "lastWeek": "Eelmisel nädalal",
+ "thisMonth": "Sel kuul",
+ "lastMonth": "Eelmisel kuul",
+ "5minutes": "5 minutit",
+ "10minutes": "10 minutit",
+ "30minutes": "30 minutit",
+ "1hour": "1 tund",
+ "12hours": "12 tundi",
+ "24hours": "24 tundi",
+ "pm": "pl",
+ "am": "el",
+ "yr": "{{time}} a",
+ "year_one": "{{time}} aasta",
+ "year_other": "{{time}} aastat",
+ "mo": "{{time}} k",
+ "month_one": "{{time}} kuu",
+ "month_other": "{{time}} kuud",
+ "d": "{{time}} pv",
+ "day_one": "{{time}} päev",
+ "day_other": "{{time}} päeva",
+ "h": "{{time}} t",
+ "hour_one": "{{time}} tund",
+ "hour_other": "{{time}} tundi",
+ "m": "{{time}} min",
+ "minute_one": "{{time}} minut",
+ "minute_other": "{{time}} minutit",
+ "s": "{{time}} sek",
+ "second_one": "{{time}} sekund",
+ "second_other": "{{time}} sekundit",
+ "formattedTimestampHourMinute": {
+ "24hour": "HH:mm",
+ "12hour": "hh:mm aaa"
+ },
+ "formattedTimestampHourMinuteSecond": {
+ "24hour": "HH:mm:ss",
+ "12hour": "hh:mm:ss aaa"
+ },
+ "formattedTimestampFilename": {
+ "12hour": "yy-MM-dd-hh-mm-ss-a",
+ "24hour": "yy-MM-dd-HH-mm-ss"
+ },
+ "formattedTimestamp": {
+ "12hour": "MMM d, hh:mm:ss aaa",
+ "24hour": "MMM d, HH:mm:ss"
+ },
+ "formattedTimestamp2": {
+ "12hour": "dd.MM hh:mm:ssa",
+ "24hour": "d MMM HH:mm:ss"
+ },
+ "formattedTimestampMonthDayHourMinute": {
+ "12hour": "MMM d, hh:mm aaa",
+ "24hour": "MMM d, HH:mm"
+ },
+ "formattedTimestampMonthDayYear": {
+ "12hour": "MMM d, yyyy",
+ "24hour": "MMM d, yyyy"
+ },
+ "inProgress": "Töös",
+ "invalidStartTime": "Vigane algusaeg",
+ "invalidEndTime": "Vigane lõpuaeg",
+ "formattedTimestampMonthDayYearHourMinute": {
+ "12hour": "dd. MMM yyyy, hh:mm aaa",
+ "24hour": "dd. MMM yyyy, HH:mm"
+ },
+ "formattedTimestampMonthDay": "dd. MMM"
+ },
+ "menu": {
+ "user": {
+ "setPassword": "Lisa salasõna",
+ "logout": "Logi välja",
+ "title": "Kasutaja",
+ "account": "Kasutajakonto",
+ "current": "Praegune kasutaja: {{user}}",
+ "anonymous": "anonüümne"
+ },
+ "live": {
+ "allCameras": "Kõik kaamerad",
+ "title": "Otseülekanne",
+ "cameras": {
+ "title": "Kaamerad",
+ "count_one": "{{count}} kaamera",
+ "count_other": "{{count}} kaamerat"
+ }
+ },
+ "settings": "Seadistused",
+ "language": {
+ "withSystem": {
+ "label": "Kasuta keele jaoks süsteemi seadistusi"
+ },
+ "en": "English (inglise keel)",
+ "es": "Español (hispaania keel)",
+ "zhCN": "简体中文 (hiina keel lihtsustatud hieroglüüfidega)",
+ "hi": "हिन्दी (hindi keel)",
+ "fr": "Français (prantsuse keel)",
+ "ar": "العربية (araabia keel)",
+ "pt": "Português (portugali keel)",
+ "ptBR": "Português brasileiro (Brasiilia portugali keel)",
+ "ru": "Русский (vene keel)",
+ "de": "Deutsch (saksa keel)",
+ "ja": "日本語 (jaapani keel)",
+ "tr": "Türkçe (türgi keel)",
+ "it": "Italiano (itaalia keel)",
+ "nl": "Nederlands (hollandi keel)",
+ "sv": "Svenska (rootsi keel)",
+ "cs": "Čeština (tšehhi keel)",
+ "nb": "Norsk Bokmål (norra bokmål)",
+ "ko": "한국어 (korea keel)",
+ "vi": "Tiếng Việt (vietnami keel)",
+ "fa": "فارسی (pärsia keel)",
+ "pl": "Polski (poola keel)",
+ "uk": "Українська (ukraina keel)",
+ "he": "עברית (heebrea keel)",
+ "el": "Ελληνικά (kreeka keel)",
+ "ro": "Română (rumeenia keel)",
+ "hu": "Magyar (ungari keel)",
+ "fi": "Suomi (soome keel)",
+ "da": "Dansk (taani keel)",
+ "sk": "Slovenčina (slovaki keel)",
+ "yue": "粵語 (kantoni keel)",
+ "th": "ไทย (tai keel)",
+ "ca": "Català (katalaani keel)",
+ "sr": "Српски (serbia keel)",
+ "sl": "Slovenščina (sloveeni keel)",
+ "lt": "Lietuvių (leedu keel)",
+ "bg": "Български (bulgaaria keel)",
+ "gl": "Galego (galeegi keel)",
+ "id": "Bahasa Indonesia (indoneesia keel)",
+ "ur": "اردو (urdu keel)"
+ },
+ "system": "Süsteem",
+ "systemMetrics": "Süsteemi meetrika",
+ "configuration": "Seadistused",
+ "systemLogs": "Süsteemi logid",
+ "configurationEditor": "Seadistuste haldur",
+ "languages": "Keeled",
+ "appearance": "Välimus",
+ "darkMode": {
+ "label": "Tume kujundus",
+ "light": "Hele kujundus",
+ "dark": "Tume kujundus",
+ "withSystem": {
+ "label": "Kasuta süsteemi seadistusi heleda või tumeda kujunduse jaoks"
+ }
+ },
+ "withSystem": "Süsteem",
+ "theme": {
+ "label": "Kujundus",
+ "blue": "Sinine",
+ "green": "Roheline",
+ "nord": "Põhjala",
+ "red": "Punane",
+ "highcontrast": "Väga kontrastne",
+ "default": "Vaikimisi kujundus"
+ },
+ "help": "Abiteave",
+ "documentation": {
+ "title": "Dokumentatsioon",
+ "label": "Frigate'i dokumentatsioon"
+ },
+ "restart": "Käivita Frigate uuesti",
+ "review": "Ülevaatamine",
+ "explore": "Uuri",
+ "export": "Ekspordi",
+ "uiPlayground": "Leht kasutajaliidese katsetamiseks",
+ "faceLibrary": "Näoteek",
+ "classification": "Klassifikatsioon"
+ },
+ "unit": {
+ "speed": {
+ "mph": "ml/t",
+ "kph": "km/t"
+ },
+ "data": {
+ "kbps": "kB/sek",
+ "mbps": "MB/sek",
+ "gbps": "GB/sek",
+ "kbph": "kB/t",
+ "mbph": "MB/t",
+ "gbph": "GB/t"
+ },
+ "length": {
+ "feet": "jalga",
+ "meters": "meetrit"
+ }
+ },
+ "button": {
+ "apply": "Rakenda",
+ "reset": "Lähtesta",
+ "done": "Valmis",
+ "enabled": "Kasutusel",
+ "enable": "Võta kasutusele",
+ "disabled": "Pole kasutusel",
+ "disable": "Eemalda kasutuselt",
+ "save": "Salvesta",
+ "saving": "Salvestan…",
+ "cancel": "Katkesta",
+ "close": "Sulge",
+ "copy": "Kopeeri",
+ "back": "Tagasi",
+ "history": "Ajalugu",
+ "fullscreen": "Täisekraanivaade",
+ "exitFullscreen": "Välju täisekraanivaatest",
+ "pictureInPicture": "Pilt pildis vaade",
+ "twoWayTalk": "Kahepoolne kõneside",
+ "cameraAudio": "Kaamera heli",
+ "on": "SEES",
+ "off": "VÄLJAS",
+ "edit": "Muuda",
+ "copyCoordinates": "Kopeeri koordinaadid",
+ "delete": "Kustuta",
+ "yes": "Jah",
+ "no": "Ei",
+ "download": "Laadi alla",
+ "info": "Teave",
+ "suspended": "Peata",
+ "unsuspended": "Lõpeta peatamine",
+ "play": "Esita",
+ "unselect": "Eemalda valik",
+ "export": "Ekspordi",
+ "deleteNow": "Kustuta kohe",
+ "next": "Järgmine",
+ "continue": "Jätka"
+ },
+ "label": {
+ "back": "Mine tagasi",
+ "hide": "Peida: {{item}}",
+ "show": "Näita: {{item}}",
+ "all": "Kõik",
+ "ID": "Tunnus",
+ "none": "Puudub"
+ },
+ "list": {
+ "two": "{{0}} ja {{1}}",
+ "many": "{{items}} ja {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "Valikuline",
+ "internalID": "Seadistustes ja andmebaasis kasutatav Frigate'i sisemine tunnus"
+ },
+ "toast": {
+ "copyUrlToClipboard": "Võrguaadress on kopeeritud lõikelauale.",
+ "save": {
+ "title": "Salvesta",
+ "error": {
+ "title": "Seadistuste muudatuste salvestamine ei õnnestunud: {{errorMessage}}",
+ "noMessage": "Seadistuste muudatuste salvestamine ei õnnestunud"
+ }
+ }
+ },
+ "role": {
+ "title": "Roll",
+ "admin": "Peakasutaja",
+ "viewer": "Vaataja",
+ "desc": "Peakasutajatel on Frigate'i kasutajaliideses kõik õigused. Vaatajad võivad vaid kaamerate pilti vaadata, objekte ülevaadata ning otsida arhiivist vanu videoid."
+ },
+ "pagination": {
+ "label": "lehenummerdus",
+ "previous": {
+ "title": "Eelmine",
+ "label": "Mine eelmisele lehele"
+ },
+ "next": {
+ "title": "Järgmine",
+ "label": "Mine järgmisele lehele"
+ },
+ "more": "Järgnevad lehed"
+ },
+ "accessDenied": {
+ "documentTitle": "Ligipääs on keelatud - Frigate",
+ "title": "Ligipääs on keelatud",
+ "desc": "Sul pole õigusi selle lehe vaatamiseks."
+ },
+ "notFound": {
+ "documentTitle": "Lehte ei leidu - Frigate",
+ "title": "404",
+ "desc": "Veebilehte ei leidu"
+ },
+ "selectItem": "Vali {{item}}",
+ "readTheDocumentation": "Loe dokumentatsiooni ja juhendit",
+ "information": {
+ "pixels": "{{area}} px"
+ }
+}
diff --git a/web/public/locales/et/components/auth.json b/web/public/locales/et/components/auth.json
new file mode 100644
index 0000000000..f5588cd253
--- /dev/null
+++ b/web/public/locales/et/components/auth.json
@@ -0,0 +1,16 @@
+{
+ "form": {
+ "password": "Salasõna",
+ "errors": {
+ "passwordRequired": "Salasõna on vajalik",
+ "usernameRequired": "Kasutajanimi on vajalik",
+ "rateLimit": "Lubatud päringute ülempiir on käes. Proovi hiljem uuesti.",
+ "loginFailed": "Sisselogimine ei õnnestunud",
+ "unknownError": "Tundmatu viga. Lisateavet leiad logidest.",
+ "webUnknownError": "Tundmatu viga. Lisateavet leiad konsooli logidest."
+ },
+ "user": "Kasutajanimi",
+ "login": "Logi sisse",
+ "firstTimeLogin": "Kas proovid esimest korda logida sisse? Kasutajanimi ja salasõna leiduvad Frigate'i logides."
+ }
+}
diff --git a/web/public/locales/et/components/camera.json b/web/public/locales/et/components/camera.json
new file mode 100644
index 0000000000..e5df620ec1
--- /dev/null
+++ b/web/public/locales/et/components/camera.json
@@ -0,0 +1,86 @@
+{
+ "group": {
+ "label": "Kaameragrupid",
+ "camera": {
+ "setting": {
+ "label": "Kaamerate voogedastuse seadistused",
+ "title": "Voogedastuse seadistused: {{cameraName}}",
+ "stream": "Voogedastus",
+ "placeholder": "Vali videovoog",
+ "streamMethod": {
+ "label": "Voogedastuse meetod",
+ "placeholder": "Vali voogedastuse meetod",
+ "method": {
+ "noStreaming": {
+ "label": "Voogedastust pole",
+ "desc": "Kaamerapildid uuenevad kord minutis ja voogedastust pole."
+ },
+ "smartStreaming": {
+ "label": "Nutikas voogedastus (soovituslik)",
+ "desc": "Nutika voogedastuse puhul ilma igasuguse tuvastatava tegevuseta kaamerapildid uuenevad kord minutis ja voogedastust pole. Sellega säästad ribalaiud ja kuid ressursse. Tegevuse tuvastamisel käivitub tavapärane voogedastus."
+ },
+ "continuousStreaming": {
+ "label": "Pidev voogedastus",
+ "desc": {
+ "title": "Kaamera voogedastus toimub töölauavaates pidevalt, seda ka siis, kui seal pole mingit tegevust tuvastatud.",
+ "warning": "Pidev voogedastus võib põhjustada suurt andmeedastuse mahutu ja tekitada jõudlusprobleeme. Kasuta seda võimalust ettevaatlikult."
+ }
+ }
+ }
+ },
+ "audioIsAvailable": "Selle voogedastuse puhul on saadaval ka heliriba",
+ "audioIsUnavailable": "Selle voogedastuse puhul pole heliriba saadaval",
+ "compatibilityMode": {
+ "label": "Ühilduvusrežiim",
+ "desc": "Kasuta seda võimalust vaid olukorras, kus kaamera voogedastuses paistab visuaalseid vigu ja pidi paremas ääres on diagonaalne joon."
+ },
+ "desc": "Muuda selle kaamergrupi voogedastuse valikuid töölauavaates.Need seadistused on seadme- ja veebibrauserikohased.",
+ "audio": {
+ "tips": {
+ "title": "See kaamera peab oskama heli jäädvustada ja edastada ja go2rtc kontekstis seadistatud selle voogedastuse jaoks."
+ }
+ }
+ },
+ "birdseye": "Vaade linnulennult"
+ },
+ "add": "Lisa kaameragrupp",
+ "edit": "Muuda kaameragruppi",
+ "delete": {
+ "label": "Kustuta kaameragrupp",
+ "confirm": {
+ "title": "Kinnita kustutamine",
+ "desc": "Kas oled kindel, et soovid kustutada kaameragrupi: {{name}}?"
+ }
+ },
+ "name": {
+ "label": "Nimi",
+ "placeholder": "Sisesta nimi…",
+ "errorMessage": {
+ "mustLeastCharacters": "Kaameragrupi nimi peab olema vähemalt 2 tähemärki pikk.",
+ "exists": "Sellise nimega kaameragrupp on juba olemas.",
+ "nameMustNotPeriod": "Kaameragrupi nimes ei tohi olla tühikuid.",
+ "invalid": "Vigane kaameragrupi nimi."
+ }
+ },
+ "cameras": {
+ "label": "Kaamerad",
+ "desc": "Vali kaamerad selle grupi jaoks."
+ },
+ "icon": "Ikoon",
+ "success": "Kaameragrupp ({{name}}) on salvestatud."
+ },
+ "debug": {
+ "options": {
+ "label": "Seadistused",
+ "title": "Valikud",
+ "showOptions": "Näita valikuid",
+ "hideOptions": "Peida valikud"
+ },
+ "boundingBox": "Piirdekast",
+ "timestamp": "Ajatempel",
+ "zones": "Tsoonid",
+ "mask": "Mask",
+ "motion": "Liikumine",
+ "regions": "Alad"
+ }
+}
diff --git a/web/public/locales/et/components/dialog.json b/web/public/locales/et/components/dialog.json
new file mode 100644
index 0000000000..946142d8a9
--- /dev/null
+++ b/web/public/locales/et/components/dialog.json
@@ -0,0 +1,122 @@
+{
+ "restart": {
+ "title": "Kas oled kindel, et soovid Frigate'i uuesti käivitada?",
+ "button": "Käivita uuesti",
+ "restarting": {
+ "title": "Frigate käivitub uuesti",
+ "content": "See leht laaditakse uuesti {{countdown}} sekundi pärast.",
+ "button": "Laadi uuesti kohe"
+ }
+ },
+ "search": {
+ "saveSearch": {
+ "label": "Salvesta otsing",
+ "desc": "Sisesta nimi salvestatud otsingu jaoks.",
+ "placeholder": "Sisesta nimi oma otsingu jaoks",
+ "overwrite": "„{{searchName}}“ on juba olemas. Salvestamisel kirjutad olemasoleva väärtuse üle.",
+ "success": "„{{searchName}}“ otsing on salvestatud.",
+ "button": {
+ "save": {
+ "label": "Salvesta see otsing"
+ }
+ }
+ }
+ },
+ "explore": {
+ "video": {
+ "viewInHistory": "Vaata ajaloos"
+ },
+ "plus": {
+ "review": {
+ "state": {
+ "submitted": "Saadetud"
+ },
+ "question": {
+ "ask_a": "Kas see objekt on {{label}}?",
+ "ask_an": "Kas see objekt on {{label}}?",
+ "ask_full": "Kas see objekt on {{untranslatedLabel}} ({{translatedLabel}})?",
+ "label": "Kinnita see silt Frigate+ teenuse jaoks"
+ }
+ },
+ "submitToPlus": {
+ "label": "Saada teenusesse Frigate+",
+ "desc": "Objektid asukohtades, mida sa tahad vältida, pole valepositiivsed. Kui sa neid sellistena saadad teenusele, siis see ainult ajab tehisaru mudeli sassi."
+ }
+ }
+ },
+ "export": {
+ "time": {
+ "fromTimeline": "Vali ajajoonelt",
+ "lastHour_one": "Viimase tunni jooksul",
+ "lastHour_other": "Viimase {{count}} tunni jooksul",
+ "custom": "Sinu valitud ajavahemik",
+ "start": {
+ "title": "Algusaeg",
+ "label": "Vali algusaeg"
+ },
+ "end": {
+ "title": "Lõpuaeg",
+ "label": "Vali lõpuaeg"
+ }
+ },
+ "name": {
+ "placeholder": "Sisesta ekspordifaili nimi"
+ },
+ "select": "Vali",
+ "export": "Ekspordi",
+ "selectOrExport": "Vali või ekspordi",
+ "toast": {
+ "success": "Eksportimise käivitamine õnnestus. Faili leiad eksportimise lehelt.",
+ "view": "Vaata",
+ "error": {
+ "failed": "Eksportimise käivitamine ei õnnestunud: {{error}}",
+ "endTimeMustAfterStartTime": "Ajavahemiku lõpp peab olema peale algust",
+ "noVaildTimeSelected": "Ühtegi kehtivat ajavahemikku pole valitud"
+ }
+ },
+ "fromTimeline": {
+ "saveExport": "Salvesta eksporditud sisu",
+ "previewExport": "Eksporditud sisu eelvaade"
+ }
+ },
+ "streaming": {
+ "label": "Voogedastus",
+ "restreaming": {
+ "disabled": "Voogedastuse kordus pole selle kaamera puhul kasutatav.",
+ "desc": {
+ "title": "Kui tahad selle kaameraga kasutada täiendavaid otseeetri ja helivõimalusi, siis seadista go2rtc."
+ }
+ },
+ "debugView": "Veaotsinguvaade",
+ "showStats": {
+ "label": "Näita voogedastuse statistikat",
+ "desc": "Lülita see eelistus sisse, kui soovid kaamerapildi ülekattena näha voogedastuse statistikat."
+ }
+ },
+ "recording": {
+ "button": {
+ "export": "Ekspordi",
+ "markAsReviewed": "Märgi ülevaadatuks",
+ "markAsUnreviewed": "Märgi mitteülevaadatuks",
+ "deleteNow": "Kustuta kohe"
+ },
+ "confirmDelete": {
+ "title": "Kinnita kustutamine",
+ "desc": {
+ "selected": "Kas sa oled kindel et soovid selle kõik ülevaadatava objektiga seotud kirjed kustutada?
Vajuta alla Shift klahv ja saad sellest vaatest tulevikus mööda minna."
+ },
+ "toast": {
+ "success": "Selle ülevaadatava objektiga seotud videosisu on kustutatud.",
+ "error": "Kustutamine ei õnnestunud: {{error}}"
+ }
+ }
+ },
+ "imagePicker": {
+ "selectImage": "Vali jälgitava objekti pisipilt",
+ "unknownLabel": "Päästikpilt on salvestatud",
+ "search": {
+ "placeholder": "Otsi sildi või alamsildi alusel..."
+ },
+ "noImages": "Selle kaamera kohta ei leidu pisipilte"
+ }
+}
diff --git a/web/public/locales/et/components/filter.json b/web/public/locales/et/components/filter.json
new file mode 100644
index 0000000000..0df74f6d03
--- /dev/null
+++ b/web/public/locales/et/components/filter.json
@@ -0,0 +1,88 @@
+{
+ "filter": "Filter",
+ "trackedObjectDelete": {
+ "toast": {
+ "error": "Jälgitavate objektide kustutamine ei õnnestunud: {{errorMessage}}",
+ "success": "Jälgitavate objektide kustutamine õnnestus."
+ }
+ },
+ "cameras": {
+ "all": {
+ "title": "Kõik kaamerad",
+ "short": "Kaamerad"
+ }
+ },
+ "labels": {
+ "all": {
+ "title": "Kõik sildid",
+ "short": "Sildid"
+ },
+ "label": "Sildid",
+ "count_one": "{{count}} silt",
+ "count_other": "{{count}} silti"
+ },
+ "subLabels": {
+ "all": "Kõik alamsildid",
+ "label": "Alamsildid"
+ },
+ "dates": {
+ "all": {
+ "title": "Kõik kuupäevad",
+ "short": "Kuupäevad"
+ },
+ "selectPreset": "Vali eelseadistus…"
+ },
+ "explore": {
+ "settings": {
+ "title": "Seadistused",
+ "defaultView": {
+ "title": "Vaikimisi vaade",
+ "summary": "Kokkuvõte",
+ "unfilteredGrid": "Filtreerimata ruudustik"
+ },
+ "gridColumns": {
+ "title": "Ruudustiku veerud",
+ "desc": "Vali ruudustikus kuvatavate veergude arv."
+ },
+ "searchSource": {
+ "options": {
+ "thumbnailImage": "Pisipilt",
+ "description": "Kirjeldus"
+ }
+ }
+ }
+ },
+ "logSettings": {
+ "loading": {
+ "title": "Laadin"
+ },
+ "disableLogStreaming": "Keela logi voogedastus",
+ "allLogs": "Kõik logid"
+ },
+ "classes": {
+ "label": "Klassid",
+ "all": {
+ "title": "Kõik klassid"
+ },
+ "count_one": "{{count}} klass",
+ "count_other": "{{count}} klassi"
+ },
+ "zones": {
+ "label": "Tsoonid",
+ "all": {
+ "title": "Kõik tsoonid",
+ "short": "Tsoonid"
+ }
+ },
+ "more": "Täiendavad filtrid",
+ "timeRange": "Ajavahemik",
+ "reset": {
+ "label": "Lähtesta filtrid vaikimisi väärtusteks"
+ },
+ "score": "Punktiskoor",
+ "estimatedSpeed": "Hinnanguline kiirus: ({{unit}})",
+ "features": {
+ "label": "Omadused",
+ "hasSnapshot": "Leidub hetkvõte"
+ }
+}
diff --git a/web/public/locales/et/components/icons.json b/web/public/locales/et/components/icons.json
new file mode 100644
index 0000000000..af0569f465
--- /dev/null
+++ b/web/public/locales/et/components/icons.json
@@ -0,0 +1,8 @@
+{
+ "iconPicker": {
+ "selectIcon": "Vali ikoon",
+ "search": {
+ "placeholder": "Otsi ikooni…"
+ }
+ }
+}
diff --git a/web/public/locales/et/components/input.json b/web/public/locales/et/components/input.json
new file mode 100644
index 0000000000..127c8c7f82
--- /dev/null
+++ b/web/public/locales/et/components/input.json
@@ -0,0 +1,10 @@
+{
+ "button": {
+ "downloadVideo": {
+ "label": "Laadi video alla",
+ "toast": {
+ "success": "Sinu ülevaatamisel video allalaadimine algas."
+ }
+ }
+ }
+}
diff --git a/web/public/locales/et/components/player.json b/web/public/locales/et/components/player.json
new file mode 100644
index 0000000000..2906ab6420
--- /dev/null
+++ b/web/public/locales/et/components/player.json
@@ -0,0 +1,8 @@
+{
+ "noRecordingsFoundForThisTime": "Hetkel ei leidu ühtego salvestust",
+ "noPreviewFound": "Eelvaadet ei leidu",
+ "noPreviewFoundFor": "{{cameraName}} kaamera eelvaadet ei leidu",
+ "submitFrigatePlus": {
+ "submit": "Saada"
+ }
+}
diff --git a/web/public/locales/et/objects.json b/web/public/locales/et/objects.json
new file mode 100644
index 0000000000..19830deafa
--- /dev/null
+++ b/web/public/locales/et/objects.json
@@ -0,0 +1,120 @@
+{
+ "person": "Inimene",
+ "bicycle": "Jalgratas",
+ "car": "Auto",
+ "motorcycle": "Mootorratas",
+ "airplane": "Lennuk",
+ "bus": "Buss",
+ "train": "Rong",
+ "boat": "Väike laev",
+ "traffic_light": "Valgusfoor",
+ "fire_hydrant": "Tuletõrjehüdrant",
+ "street_sign": "Liiklusmärk",
+ "stop_sign": "Stoppmärk",
+ "parking_meter": "Parkimispiletite automaat",
+ "bench": "Istepink",
+ "bird": "Lind",
+ "cat": "Kass",
+ "dog": "Koer",
+ "horse": "Hobune",
+ "sheep": "Lammas",
+ "cow": "Lehm",
+ "elephant": "Elevant",
+ "bear": "Karu",
+ "zebra": "Sebra",
+ "giraffe": "Kaelkirjak",
+ "hat": "Müts",
+ "backpack": "Seljakott",
+ "umbrella": "Vihmavari",
+ "shoe": "King",
+ "eye_glasses": "Prillid",
+ "handbag": "Käekott",
+ "tie": "Lips",
+ "suitcase": "Kohver",
+ "frisbee": "Lendav taldrik",
+ "skis": "Suusad",
+ "snowboard": "Lumelaud",
+ "sports_ball": "Pall",
+ "kite": "Tuulelohe",
+ "baseball_bat": "Pesapallikurikas",
+ "baseball_glove": "Pesapallikinnas",
+ "skateboard": "Rula",
+ "surfboard": "Surfilaud",
+ "tennis_racket": "Tennisereket",
+ "animal": "Loom",
+ "bottle": "Pudel",
+ "plate": "Taldrik",
+ "wine_glass": "Veiniklaas",
+ "cup": "Kruus",
+ "fork": "Kahvel",
+ "knife": "Nuga",
+ "spoon": "Lusikas",
+ "bowl": "Kauss",
+ "banana": "Banaan",
+ "apple": "Õun",
+ "sandwich": "Võileib",
+ "orange": "Apelsin",
+ "broccoli": "Spargelkapsas",
+ "carrot": "Porgand",
+ "hot_dog": "Viinerisai",
+ "pizza": "Pitsa",
+ "donut": "Sõõrik",
+ "cake": "Kook",
+ "chair": "Tool",
+ "couch": "Kušett",
+ "potted_plant": "Potilill",
+ "bed": "Voodi",
+ "mirror": "Peegel",
+ "dining_table": "Söögilaud",
+ "window": "Aken",
+ "desk": "Kirjutuslaud",
+ "toilet": "Tualett",
+ "door": "Uks",
+ "tv": "Teler",
+ "laptop": "Sülearvuti",
+ "mouse": "Hiir",
+ "remote": "Kaugjuhtimispult",
+ "keyboard": "Klahvistik",
+ "cell_phone": "Mobiiltelefon",
+ "microwave": "Mikrolaineahi",
+ "oven": "Ahi",
+ "toaster": "Röster",
+ "sink": "Kraanikauss",
+ "refrigerator": "Külmkapp",
+ "blender": "Kannmikser",
+ "book": "Raamat",
+ "clock": "Kell",
+ "vase": "Vaas",
+ "scissors": "Käärid",
+ "teddy_bear": "Mängukaru",
+ "hair_dryer": "Föön",
+ "toothbrush": "Hambahari",
+ "hair_brush": "Juuksehari",
+ "vehicle": "Sõiduk",
+ "squirrel": "Orav",
+ "deer": "Hirv",
+ "bark": "Puukoor",
+ "fox": "Rebane",
+ "goat": "Kits",
+ "rabbit": "Jänes",
+ "raccoon": "Pesukaru",
+ "robot_lawnmower": "Robotmuruniiduk",
+ "waste_bin": "Prügikast",
+ "on_demand": "Nõudmisel",
+ "face": "Nägu",
+ "license_plate": "Sõiduki numbrimärk",
+ "package": "Pakett",
+ "bbq_grill": "Väligrill",
+ "amazon": "Amazoni sõiduk",
+ "usps": "USPS-i sõiduk",
+ "ups": "UPS-i sõiduk",
+ "fedex": "FedExi sõiduk",
+ "dhl": "DHL-i sõiduk",
+ "an_post": "An Posti sõiduk",
+ "purolator": "Purolatori sõiduk",
+ "postnl": "PostNL-i sõiduk",
+ "nzpost": "NZPost-i sõiduk",
+ "postnord": "PostNordi sõiduk",
+ "gls": "GLS-i sõiduk",
+ "dpd": "DPD sõiduk"
+}
diff --git a/web/public/locales/et/views/classificationModel.json b/web/public/locales/et/views/classificationModel.json
new file mode 100644
index 0000000000..2b393998fe
--- /dev/null
+++ b/web/public/locales/et/views/classificationModel.json
@@ -0,0 +1,36 @@
+{
+ "toast": {
+ "success": {
+ "deletedModel_one": "{{count}} mudeli kustutamine õnnestus",
+ "deletedModel_other": "{{count}} mudeli kustutamine õnnestus"
+ }
+ },
+ "documentTitle": "Klassifitseerimise mudelid - Frigate",
+ "details": {
+ "scoreInfo": "Skoor näitab selle objekti kõigi tuvastuste keskmist klassifitseerimise usaldusväärsust."
+ },
+ "button": {
+ "deleteClassificationAttempts": "Kustuta klassifitseerimispildid"
+ },
+ "description": {
+ "invalidName": "Vigane nimi. Nimed võivad sisaldada ainult tähti, numbreid, tühikuid, ülakomasid, alakriipse ja sidekriipse."
+ },
+ "deleteModel": {
+ "desc_one": "Kas oled kindel, et soovid kustutada {{count}} mudeli? Järgnevaga kustuvad jäädavalt kõik seotud andmed, sealhulgas pildid ja koolitusandmed. Seda tegevust ei saa tagasi pöörata.",
+ "desc_other": "Kas oled kindel, et soovid kustutada {{count}} mudelit? Järgnevaga kustuvad jäädavalt kõik seotud andmed, sealhulgas pildid ja koolitusandmed. Seda tegevust ei saa tagasi pöörata."
+ },
+ "deleteDatasetImages": {
+ "desc_one": "Kas oled kindel, et soovid kustutada {{count}} pildi {{dataset}} andmekogust? Seda tegevust ei saa tagasi pöörata ja hiljem on vaja mudelit uuesti koolitada.",
+ "desc_other": "Kas oled kindel, et soovid kustutada {{count}} pilti {{dataset}} andmekogust? Seda tegevust ei saa tagasi pöörata ja hiljem on vaja mudelit uuesti koolitada."
+ },
+ "deleteTrainImages": {
+ "desc_one": "Kas oled kindel, et soovid kustutada {{count}} pildi? Seda tegevust ei saa tagasi pöörata.",
+ "desc_other": "Kas oled kindel, et soovid kustutada {{count}} pilti? Seda tegevust ei saa tagasi pöörata."
+ },
+ "wizard": {
+ "step3": {
+ "allImagesRequired_one": "Palun klassifitseeri kõik pildid. Jäänud on veel {{count}} pilt.",
+ "allImagesRequired_other": "Palun klassifitseeri kõik pildid. Jäänud on veel {{count}} pilti."
+ }
+ }
+}
diff --git a/web/public/locales/et/views/configEditor.json b/web/public/locales/et/views/configEditor.json
new file mode 100644
index 0000000000..56371cd04d
--- /dev/null
+++ b/web/public/locales/et/views/configEditor.json
@@ -0,0 +1,18 @@
+{
+ "toast": {
+ "error": {
+ "savingError": "Viga seadistuse salvestamisel"
+ },
+ "success": {
+ "copyToClipboard": "Seadistused on kopeeritud lõikelauale."
+ }
+ },
+ "documentTitle": "Seadistuste haldus - Frigate",
+ "safeConfigEditor": "Seadistuste haldus (ohutusrežiim)",
+ "configEditor": "Seadistuste haldus",
+ "safeModeDescription": "Seadistuste vea tõttu on Frigate hetkel ohutusrežiimis.",
+ "copyConfig": "Kopeeri seadistused",
+ "saveAndRestart": "Salvesta ja käivita uuesti",
+ "saveOnly": "Vaid salvesta",
+ "confirm": "Kas väljud ilma salvestamata?"
+}
diff --git a/web/public/locales/et/views/events.json b/web/public/locales/et/views/events.json
new file mode 100644
index 0000000000..ef02cf0807
--- /dev/null
+++ b/web/public/locales/et/views/events.json
@@ -0,0 +1,61 @@
+{
+ "alerts": "Häired",
+ "allCameras": "Kõik kaamerad",
+ "detail": {
+ "settings": "Üksikasjaliku vaate seadistused",
+ "label": "Üksikasjad",
+ "noDataFound": "Ülevaatamiseks pole üksikasjalikke andmeid",
+ "aria": "Lülita üksikasjalik vaade sisse/välja",
+ "trackedObject_one": "{{count}} objekt",
+ "trackedObject_other": "{{count}} objekti",
+ "noObjectDetailData": "Objekti üksikasjalikke andmeid pole saadaval.",
+ "alwaysExpandActive": {
+ "title": "Alati laienda aktiivse kirje andmeid",
+ "desc": "Kui vähegi saadaval, siis alati laienda aktiivse ülevaatamisel kirje andmeid."
+ }
+ },
+ "detections": "Tuvastamise tulemused",
+ "motion": {
+ "label": "Liikumine",
+ "only": "Vaid liikumine"
+ },
+ "empty": {
+ "alert": "Ülevaatamiseks ei leidu ühtegi häiret",
+ "detection": "Ülevaatamiseks ei leidu ühtegi tuvastamist",
+ "motion": "Liikumise andmeid ei leidu"
+ },
+ "select_all": "Kõik",
+ "camera": "Kaamera",
+ "detected": "tuvastatud",
+ "normalActivity": "Tavaline",
+ "needsReview": "Vajab ülevaatamist",
+ "securityConcern": "Võib olla turvaprobleem",
+ "timeline": "Ajajoon",
+ "timeline.aria": "Vali ajajoon",
+ "zoomIn": "Suumi sisse",
+ "zoomOut": "Suumi välja",
+ "events": {
+ "label": "Sündmused",
+ "aria": "Vali sündmused",
+ "noFoundForTimePeriod": "Selle ajavahemiku kohta ei leidu sündmusi."
+ },
+ "selected_one": "{{count}} valitud",
+ "selected_other": "{{count}} valitud",
+ "markAsReviewed": "Märgi ülevaadatuks",
+ "markTheseItemsAsReviewed": "Märgi need kirjed ülevaadatuks",
+ "newReviewItems": {
+ "label": "Vaata uusi ülevaatamiseks mõeldud kirjeid",
+ "button": "Uued ülevaatamiseks mõeldud kirjed"
+ },
+ "documentTitle": "Ülevaatamine - Frigate",
+ "recordings": {
+ "documentTitle": "Salvestised - Frigate"
+ },
+ "calendarFilter": {
+ "last24Hours": "Viimased 24 tundi"
+ },
+ "objectTrack": {
+ "clickToSeek": "Klõpsa siia ajapunkti kerimiseks",
+ "trackedPoint": "Jälgitav punkt"
+ }
+}
diff --git a/web/public/locales/et/views/explore.json b/web/public/locales/et/views/explore.json
new file mode 100644
index 0000000000..e383340568
--- /dev/null
+++ b/web/public/locales/et/views/explore.json
@@ -0,0 +1,56 @@
+{
+ "trackedObjectsCount_one": "{{count}} jälgitav objekt ",
+ "trackedObjectsCount_other": "{{count}} jälgitavat objekti ",
+ "fetchingTrackedObjectsFailed": "Viga jälgitavate objektide laadimisel: {{errorMessage}}",
+ "noTrackedObjects": "Ühtegi jälgitavat objekti ei leidunud",
+ "itemMenu": {
+ "findSimilar": {
+ "aria": "Otsi sarnaseid jälgitavaid objekte"
+ },
+ "downloadSnapshot": {
+ "label": "Laadi hetkvõte alla",
+ "aria": "Laadi hetkvõte alla"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Laadi puhas hetkvõte alla",
+ "aria": "Laadi puhas hetkvõte alla"
+ }
+ },
+ "trackingDetails": {
+ "annotationSettings": {
+ "showAllZones": {
+ "title": "Näita kõiki tsoone",
+ "desc": "Kui objekt on sisenenud tsooni, siis alati näida tsooni märgistust."
+ }
+ }
+ },
+ "documentTitle": "Avasta - Frigate",
+ "generativeAI": "Generatiivne tehisaru",
+ "exploreMore": "Avasta rohkem {{label}}-tüüpi objekte",
+ "exploreIsUnavailable": {
+ "embeddingsReindexing": {
+ "step": {
+ "thumbnailsEmbedded": "Pisipildid on lõimitud: ",
+ "descriptionsEmbedded": "Kirjeldused on lõimitud: ",
+ "trackedObjectsProcessed": "Jälgitud objektid on töödeldud: "
+ }
+ }
+ },
+ "type": {
+ "details": "üksikasjad",
+ "thumbnail": "pisipilt",
+ "snapshot": "hetkvõte"
+ },
+ "details": {
+ "item": {
+ "tips": {
+ "mismatch_one": "Tuvastasin {{count}} võõra objekti ja need on lisatud ülevaatamiseks. Need objektid kas ei ole piisavad häire või tuvastamise jaoks, aga ka võivad juba olla eemaldatud või kustutatud.",
+ "mismatch_other": "Tuvastasin {{count}} võõrast objekti ja need on lisatud ülevaatamiseks. Need objektid kas ei ole piisavad häire või tuvastamise jaoks, aga ka võivad juba olla eemaldatud või kustutatud."
+ }
+ },
+ "snapshotScore": {
+ "label": "Hetkvõttete punktiskoor"
+ },
+ "regenerateFromSnapshot": "Loo uuesti hetkvõttest"
+ }
+}
diff --git a/web/public/locales/et/views/exports.json b/web/public/locales/et/views/exports.json
new file mode 100644
index 0000000000..56814537e2
--- /dev/null
+++ b/web/public/locales/et/views/exports.json
@@ -0,0 +1,23 @@
+{
+ "documentTitle": "Eksport Frigate'ist",
+ "search": "Otsi",
+ "noExports": "Eksporditud sisu ei leidu",
+ "deleteExport": "Kustuta eksporditud sisu",
+ "deleteExport.desc": "Kas sa oled kindel et soovid „{{exportName}}“ kustutada?",
+ "editExport": {
+ "title": "Muuda eksporditud sisu nime",
+ "desc": "Sisesta eksporditud sisu jaoks uus nimi.",
+ "saveExport": "Salvesta eksporditud sisu"
+ },
+ "tooltip": {
+ "shareExport": "Jaga eksporditud sisu",
+ "downloadVideo": "Laadi video alla",
+ "editName": "Muuda nime",
+ "deleteExport": "Kustuta eksporditud sisu"
+ },
+ "toast": {
+ "error": {
+ "renameExportFailed": "Eksporditud sisu nime muutmine ei õnnestunud: {{errorMessage}}"
+ }
+ }
+}
diff --git a/web/public/locales/et/views/faceLibrary.json b/web/public/locales/et/views/faceLibrary.json
new file mode 100644
index 0000000000..adebe77888
--- /dev/null
+++ b/web/public/locales/et/views/faceLibrary.json
@@ -0,0 +1,34 @@
+{
+ "button": {
+ "uploadImage": "Laadi pilt üles"
+ },
+ "collections": "Kogumikud",
+ "description": {
+ "placeholder": "Sisesta nimi selle kogumiku jaoks",
+ "invalidName": "Vigane nimi. Nimed võivad sisaldada ainult tähti, numbreid, tühikuid, ülakomasid, alakriipse ja sidekriipse.",
+ "addFace": "Laadides üles oma esimese pildi saad lisada uue kogumiku Näoteeki."
+ },
+ "documentTitle": "Näoteek - Frigate",
+ "createFaceLibrary": {
+ "new": "Lisa uus nägu"
+ },
+ "deleteFaceLibrary": {
+ "title": "Kustuta nimi"
+ },
+ "toast": {
+ "error": {
+ "addFaceLibraryFailed": "Näo sidumine nimega ei õnnestunud: {{errorMessage}}"
+ },
+ "success": {
+ "addFaceLibrary": "Lisamine Näoteeki õnnestus: {{name}}!",
+ "deletedFace_one": "{{count}} näo kustutamine õnnestus.",
+ "deletedFace_other": "{{count}} näo kustutamine õnnestus.",
+ "deletedName_one": "{{count}} näo kustutamine õnnestus.",
+ "deletedName_other": "{{count}} näo kustutamine õnnestus."
+ }
+ },
+ "deleteFaceAttempts": {
+ "desc_one": "Kas oled kindel, et soovid kustutada {{count}} näo? Seda tegevust ei saa tagasi pöörata.",
+ "desc_other": "Kas oled kindel, et soovid kustutada {{count}} nägu? Seda tegevust ei saa tagasi pöörata."
+ }
+}
diff --git a/web/public/locales/et/views/live.json b/web/public/locales/et/views/live.json
new file mode 100644
index 0000000000..87a5696790
--- /dev/null
+++ b/web/public/locales/et/views/live.json
@@ -0,0 +1,123 @@
+{
+ "muteCameras": {
+ "enable": "Summuta kõik kaamerad",
+ "disable": "Lõpeta kõikide kaamerate summutamine"
+ },
+ "streamingSettings": "Voogedastuse seadistused",
+ "cameraSettings": {
+ "title": "Seadistused: {{camera}}",
+ "cameraEnabled": "Kaamera on kasutusel",
+ "objectDetection": "Objektide tuvastamine",
+ "audioDetection": "Heli tuvastus",
+ "transcription": "Heli üleskirjutus",
+ "snapshots": "Hetkvõtted"
+ },
+ "documentTitle": "Otseülekanne - Frigate",
+ "documentTitle.withCamera": "{{camera}} - Otseülekanne - Frigate",
+ "lowBandwidthMode": "Väikese ribalaiusega režiim",
+ "twoWayTalk": {
+ "enable": "Lülita kahepoolne kõneside sisse",
+ "disable": "Lülita kahepoolne kõneside välja"
+ },
+ "cameraAudio": {
+ "enable": "Lülita kaamera heli sisse",
+ "disable": "Lülita kaamera heli välja"
+ },
+ "ptz": {
+ "move": {
+ "clickMove": {
+ "label": "Kaamerapildi joondamiseks keskele klõpsa kaadris",
+ "enable": "Kasuta klõpsamisega teisaldamist",
+ "disable": "Ära kasuta klõpsamisega teisaldamist"
+ },
+ "left": {
+ "label": "Pööra liigutatavat kaamerat vasakule"
+ },
+ "up": {
+ "label": "Pööra liigutatavat kaamerat üles"
+ },
+ "down": {
+ "label": "Pööra liigutatavat kaamerat alla"
+ },
+ "right": {
+ "label": "Pööra liigutatavat kaamerat paremale"
+ }
+ },
+ "zoom": {
+ "in": {
+ "label": "Suumi liigutatavat kaamerat sisse"
+ },
+ "out": {
+ "label": "Suumi liigutatavat kaamerat välja"
+ }
+ },
+ "focus": {
+ "in": {
+ "label": "Fookusta liigutatavat kaamerat sisse"
+ },
+ "out": {
+ "label": "Fookusta liigutatavat kaamerat välja"
+ }
+ },
+ "presets": "Liigutatava kaamera eelseadistused",
+ "frame": {
+ "center": {
+ "label": "Klõpsa kaadrit liigutatava kaamera pildi sättimiseks keskele"
+ }
+ }
+ },
+ "camera": {
+ "enable": "Lülita kaamera sisse",
+ "disable": "Lülita kaamera välja"
+ },
+ "detect": {
+ "enable": "Lülita tuvastamine sisse",
+ "disable": "Lülita tuvastamine välja"
+ },
+ "recording": {
+ "enable": "Lülita salvestamine sisse",
+ "disable": "Lülita salvestamine välja"
+ },
+ "snapshots": {
+ "enable": "Lülita hetkvõtted sisse",
+ "disable": "Lülita hetkvõtted välja"
+ },
+ "streamStats": {
+ "enable": "Näita voogedastuse statistikat",
+ "disable": "Peida voogedastuse statistika"
+ },
+ "stream": {
+ "twoWayTalk": {
+ "available": "Kahepoolne kõneside on selle voogedastuse puhul saadaval",
+ "unavailable": "Kahepoolne kõneside pole selle voogedastuse puhul saadaval",
+ "tips": "Sinu seadme peab seda funktsionaalsust toetama ja WebRTC peab olema kahepoolse kõneside jaoks seadistatud."
+ }
+ },
+ "notifications": "Teavitused",
+ "audio": "Heli",
+ "snapshot": {
+ "takeSnapshot": "Laadi hetkvõte alla",
+ "noVideoSource": "Hetkvõtte tegemiseks pole saadaval ühtegi videoallikat.",
+ "captureFailed": "Hetkvõtte jäädvustamine ei õnnestunud.",
+ "downloadStarted": "Hetkvõtte allalaadimine algas."
+ },
+ "audioDetect": {
+ "enable": "Lülita helituvastus sisse",
+ "disable": "Lülita helituvastus välja"
+ },
+ "transcription": {
+ "enable": "Lülita reaalajas heli üleskirjutus sisse",
+ "disable": "Lülita reaalajas heli üleskirjutus välja"
+ },
+ "autotracking": {
+ "enable": "Lülita automaatne jälgimine sisse",
+ "disable": "Lülita automaatne jälgimine välja"
+ },
+ "manualRecording": {
+ "title": "Nõudmisel",
+ "playInBackground": {
+ "label": "Esita taustal",
+ "desc": "Kasuta seda valikut, kui tahad voogedastuse jätkumist ka siis, kui pildivaade on peidetud."
+ }
+ }
+}
diff --git a/web/public/locales/et/views/recording.json b/web/public/locales/et/views/recording.json
new file mode 100644
index 0000000000..57ed975095
--- /dev/null
+++ b/web/public/locales/et/views/recording.json
@@ -0,0 +1,12 @@
+{
+ "export": "Ekspordi",
+ "calendar": "Kalender",
+ "filter": "Filter",
+ "filters": "Filtrid",
+ "toast": {
+ "error": {
+ "noValidTimeSelected": "Ühtegi kehtivat ajavahemikku pole valitud",
+ "endTimeMustAfterStartTime": "Ajavahemiku lõpp peab olema peale algust"
+ }
+ }
+}
diff --git a/web/public/locales/et/views/search.json b/web/public/locales/et/views/search.json
new file mode 100644
index 0000000000..d691c563ee
--- /dev/null
+++ b/web/public/locales/et/views/search.json
@@ -0,0 +1,18 @@
+{
+ "placeholder": {
+ "search": "Otsi…"
+ },
+ "search": "Otsi",
+ "savedSearches": "Salvestatud otsingud",
+ "searchFor": "Otsi: {{inputValue}}",
+ "button": {
+ "clear": "Tühjenda otsing",
+ "save": "Salvesta otsing",
+ "delete": "Kustuta salvestatud otsing"
+ },
+ "filter": {
+ "label": {
+ "has_snapshot": "Leidub hetkvõte"
+ }
+ }
+}
diff --git a/web/public/locales/et/views/settings.json b/web/public/locales/et/views/settings.json
new file mode 100644
index 0000000000..c3398cf7bb
--- /dev/null
+++ b/web/public/locales/et/views/settings.json
@@ -0,0 +1,193 @@
+{
+ "cameraWizard": {
+ "step1": {
+ "password": "Salasõna",
+ "passwordPlaceholder": "Valikuline",
+ "customUrlPlaceholder": "rtsp://kasutajanimi:salasõna@host:port/asukoht",
+ "connectionSettings": "Ühenduse seadistused"
+ },
+ "step3": {
+ "streamUrlPlaceholder": "rtsp://kasutajanimi:salasõna@host:port/asukoht"
+ },
+ "steps": {
+ "probeOrSnapshot": "Võta proov või tee hetkvõte"
+ },
+ "step2": {
+ "testing": {
+ "fetchingSnapshot": "Laadin kaamera hetkvõtet alla..."
+ }
+ }
+ },
+ "users": {
+ "updatePassword": "Lähtesta salasõna",
+ "toast": {
+ "success": {
+ "updatePassword": "Salasõna muutmine õnnestus."
+ },
+ "error": {
+ "setPasswordFailed": "Salasõna salvestamine ei õnnestunud: {{errorMessage}}"
+ }
+ },
+ "table": {
+ "password": "Lähtesta salasõna"
+ },
+ "dialog": {
+ "form": {
+ "password": {
+ "title": "Salasõna",
+ "placeholder": "Sisesta salasõna",
+ "confirm": {
+ "title": "Korda salasõna",
+ "placeholder": "Korda salasõna"
+ },
+ "strength": {
+ "title": "Salasõna tugevus: ",
+ "weak": "Nõrk",
+ "medium": "Keskmime",
+ "strong": "Tugev",
+ "veryStrong": "Väga tugev"
+ },
+ "match": "Salasõnad klapivad omavahel",
+ "notMatch": "Salasõnad ei klapi omavahel",
+ "show": "Näita salasõna",
+ "hide": "Peida salasõna",
+ "requirements": {
+ "title": "Salasõna reeglid:",
+ "length": "Vähemalt 8 tähemärki",
+ "uppercase": "Vähemalt üks suurtäht",
+ "digit": "Vähemalt üks number",
+ "special": "Vähemalt üks erimärk (!@#$%^&*(),.?\":{}|<>)"
+ }
+ },
+ "newPassword": {
+ "title": "Uus salasõna",
+ "placeholder": "Sisesta uus salasõna",
+ "confirm": {
+ "placeholder": "Sisesta uus salasõna uuesti"
+ }
+ },
+ "passwordIsRequired": "Salasõna on vajalik",
+ "currentPassword": {
+ "title": "Senine salasõna",
+ "placeholder": "Sisesta oma senine salasõna"
+ }
+ },
+ "createUser": {
+ "confirmPassword": "Palun kinnita oma uus salasõna"
+ },
+ "passwordSetting": {
+ "cannotBeEmpty": "Salasõna ei või jääda tühjaks",
+ "doNotMatch": "Salasõnad ei klapi omavahel",
+ "updatePassword": "Muuda kasutaja {{username}} salasõna",
+ "setPassword": "Sisesta salasõna",
+ "desc": "Selle kasutajakonto turvalisuse tagamiseks lisa tugev salasõna.",
+ "currentPasswordRequired": "Senine salasõna on vajalik",
+ "incorrectCurrentPassword": "Senine salasõna pole õige",
+ "passwordVerificationFailed": "Salasõna kontrollimine ei õnnestunud"
+ }
+ }
+ },
+ "debug": {
+ "boundingBoxes": {
+ "desc": "Näita jälgitavate objektide ümber märgiskaste"
+ }
+ },
+ "documentTitle": {
+ "default": "Seadistused - Frigate",
+ "authentication": "Autentimise seadistused - Frigate",
+ "cameraReview": "Kaamerate kordusvaatuste seadistused - Frigate",
+ "general": "Kasutajaliidese seadistused - Frigate",
+ "frigatePlus": "Frigate+ seadistused - Frigate",
+ "notifications": "Teavituste seadistused - Frigate",
+ "cameraManagement": "Kaamerate haldus - Frigate",
+ "masksAndZones": "Maskide ja tsoonide haldus - Frigate",
+ "object": "Silumine ja veaotsing - Frigate"
+ },
+ "general": {
+ "title": "Kasutajaliidese seadistused",
+ "cameraGroupStreaming": {
+ "clearAll": "Kustuta kõik voogedastuse seadistused"
+ },
+ "liveDashboard": {
+ "title": "Töölaud reaalajas",
+ "automaticLiveView": {
+ "label": "Automaatne otseülekande vaade"
+ }
+ }
+ },
+ "cameraManagement": {
+ "backToSettings": "Tagasi kaameraseadistuste juurde"
+ },
+ "notification": {
+ "notificationSettings": {
+ "title": "Teavituste seadistused"
+ },
+ "globalSettings": {
+ "title": "Üldseadistused"
+ },
+ "deviceSpecific": "Seadmekohased seadistused",
+ "toast": {
+ "success": {
+ "settingSaved": "Teavituste seadistused on salvestatud."
+ }
+ }
+ },
+ "frigatePlus": {
+ "title": "Frigate+ seadistused",
+ "unsavedChanges": "Frigate+ seadistuste muudatused on salvestamata",
+ "toast": {
+ "success": "Frigate+ seadistuste muudatused on salvestatud. Muudatuste kasutuselevõtmiseks käivita Frigate uuesti."
+ },
+ "snapshotConfig": {
+ "title": "Hetkvõtte seadistused",
+ "table": {
+ "snapshots": "Hetkvõtted",
+ "cleanCopySnapshots": "clean_copy Hetkvõtted",
+ "camera": "Kaamera"
+ }
+ }
+ },
+ "masksAndZones": {
+ "zones": {
+ "point_one": "{{count}} punkt",
+ "point_other": "{{count}} punkti"
+ },
+ "motionMasks": {
+ "point_one": "{{count}} punkt",
+ "point_other": "{{count}} punkti"
+ },
+ "objectMasks": {
+ "point_one": "{{count}} punkt",
+ "point_other": "{{count}} punkti"
+ }
+ },
+ "roles": {
+ "toast": {
+ "success": {
+ "userRolesUpdated_one": "{{count}} selle rolliga kasutaja on nüüd määratud Vaatajaks, kellel on ligipääs kõikidele kaameratele.",
+ "userRolesUpdated_other": "{{count}} selle rolliga kasutajat on nüüd määratud Vaatajaks, kellel on ligipääs kõikidele kaameratele."
+ }
+ }
+ },
+ "menu": {
+ "ui": "Kasutajaliides",
+ "cameraManagement": "Haldus",
+ "masksAndZones": "Maskid ja tsoonid",
+ "triggers": "Päästikud",
+ "debug": "Silumine ja veaotsing",
+ "users": "Kasutajad",
+ "roles": "Rollid",
+ "notifications": "Teavitused",
+ "frigateplus": "Frigate+"
+ },
+ "dialog": {
+ "unsavedChanges": {
+ "title": "Sul on salvestamata muudatusi.",
+ "desc": "Kas soovid muudatused enne jätkamist salvestada?"
+ }
+ },
+ "cameraSetting": {
+ "camera": "Kaamera",
+ "noCamera": "Kaamerat pole"
+ }
+}
diff --git a/web/public/locales/et/views/system.json b/web/public/locales/et/views/system.json
new file mode 100644
index 0000000000..deb38f24b5
--- /dev/null
+++ b/web/public/locales/et/views/system.json
@@ -0,0 +1,12 @@
+{
+ "documentTitle": {
+ "general": "Üldine statistika - Frigate",
+ "cameras": "Kaamerate statistika - Frigate",
+ "storage": "Andmeruumi statistika - Frigate"
+ },
+ "logs": {
+ "download": {
+ "label": "Laadi logid alla"
+ }
+ }
+}
diff --git a/web/public/locales/fa/common.json b/web/public/locales/fa/common.json
index 0967ef424b..2bb9555cbf 100644
--- a/web/public/locales/fa/common.json
+++ b/web/public/locales/fa/common.json
@@ -1 +1,9 @@
-{}
+{
+ "time": {
+ "untilForTime": "تا {{time}}",
+ "untilForRestart": "تا زمانی که فریگیت دوباره شروع به کار کند.",
+ "untilRestart": "تا زمان ریاستارت",
+ "ago": "{{timeAgo}} قبل",
+ "justNow": "هم اکنون"
+ }
+}
diff --git a/web/public/locales/fa/components/auth.json b/web/public/locales/fa/components/auth.json
index 0967ef424b..6b87e72575 100644
--- a/web/public/locales/fa/components/auth.json
+++ b/web/public/locales/fa/components/auth.json
@@ -1 +1,8 @@
-{}
+{
+ "form": {
+ "user": "نام کاربری",
+ "password": "رمز عبور",
+ "login": "ورود",
+ "firstTimeLogin": "اولین باز است وارد می شود؟ اطلاعات هویتی در ثبت رخداد های فریگیت چاپ خواهد شد."
+ }
+}
diff --git a/web/public/locales/fa/components/camera.json b/web/public/locales/fa/components/camera.json
index 0967ef424b..ee4d1d1720 100644
--- a/web/public/locales/fa/components/camera.json
+++ b/web/public/locales/fa/components/camera.json
@@ -1 +1,10 @@
-{}
+{
+ "group": {
+ "label": "گروههای دوربین",
+ "add": "افزودن گروه دوربین",
+ "edit": "ویرایش گروه دوربین",
+ "delete": {
+ "label": "حذف گروه دوربین ها"
+ }
+ }
+}
diff --git a/web/public/locales/fa/components/dialog.json b/web/public/locales/fa/components/dialog.json
index 0967ef424b..121a732242 100644
--- a/web/public/locales/fa/components/dialog.json
+++ b/web/public/locales/fa/components/dialog.json
@@ -1 +1,11 @@
-{}
+{
+ "restart": {
+ "title": "آیا از ریاستارت فریگیت اطمینان دارید؟",
+ "button": "ریاستارت",
+ "restarting": {
+ "title": "فریگیت در حال ریاستارت شدن",
+ "content": "صفحه تا {{countdown}} ثانیه دیگر مجددا بارگزاری خواهد شد.",
+ "button": "بارگزاری مجدد هم اکنون اجرا شود"
+ }
+ }
+}
diff --git a/web/public/locales/fa/components/filter.json b/web/public/locales/fa/components/filter.json
index 0967ef424b..ad7827e253 100644
--- a/web/public/locales/fa/components/filter.json
+++ b/web/public/locales/fa/components/filter.json
@@ -1 +1,10 @@
-{}
+{
+ "filter": "فیلتر",
+ "classes": {
+ "label": "کلاسها",
+ "all": {
+ "title": "تمامی کلاس ها"
+ },
+ "count_one": "{{count}} کلاس"
+ }
+}
diff --git a/web/public/locales/fa/components/icons.json b/web/public/locales/fa/components/icons.json
index 0967ef424b..20111cbaa0 100644
--- a/web/public/locales/fa/components/icons.json
+++ b/web/public/locales/fa/components/icons.json
@@ -1 +1,8 @@
-{}
+{
+ "iconPicker": {
+ "selectIcon": "انتخاب آیکون",
+ "search": {
+ "placeholder": "جستجو برای آیکون"
+ }
+ }
+}
diff --git a/web/public/locales/fa/components/input.json b/web/public/locales/fa/components/input.json
index 0967ef424b..20de892807 100644
--- a/web/public/locales/fa/components/input.json
+++ b/web/public/locales/fa/components/input.json
@@ -1 +1,10 @@
-{}
+{
+ "button": {
+ "downloadVideo": {
+ "label": "دریافت ویدیو",
+ "toast": {
+ "success": "ویدیوی مورد بررسی شما درحال دریافت میباشد."
+ }
+ }
+ }
+}
diff --git a/web/public/locales/fa/components/player.json b/web/public/locales/fa/components/player.json
index 0967ef424b..d82c22d9bc 100644
--- a/web/public/locales/fa/components/player.json
+++ b/web/public/locales/fa/components/player.json
@@ -1 +1,8 @@
-{}
+{
+ "noRecordingsFoundForThisTime": "ویدیویی برای این زمان وجود ندارد",
+ "noPreviewFound": "پیشنمایش پیدا نشد",
+ "noPreviewFoundFor": "هیچ پیشنمایشی برای {{cameraName}} پیدا نشد",
+ "submitFrigatePlus": {
+ "title": "این فریم به فریگیت+ ارسال شود؟"
+ }
+}
diff --git a/web/public/locales/fa/views/classificationModel.json b/web/public/locales/fa/views/classificationModel.json
new file mode 100644
index 0000000000..7369674e5a
--- /dev/null
+++ b/web/public/locales/fa/views/classificationModel.json
@@ -0,0 +1,31 @@
+{
+ "button": {
+ "deleteClassificationAttempts": "حذف تصاویر طبقه بندی",
+ "renameCategory": "تغییر نام کلاس",
+ "deleteCategory": "حذف کردن کلاس",
+ "deleteImages": "حذف کردن عکس ها",
+ "trainModel": "مدل آموزش"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "کلاس حذف شده",
+ "deletedImage": "عکس های حذف شده",
+ "categorizedImage": "تصویر طبقه بندی شده",
+ "trainedModel": "مدل آموزش دیده شده.",
+ "trainingModel": "آموزش دادن مدل با موفقیت شروع شد."
+ },
+ "error": {
+ "deleteImageFailed": "حذف نشد:{{پیغام خطا}}",
+ "deleteCategoryFailed": "کلاس حذف نشد:{{پیغام خطا}}"
+ }
+ },
+ "documentTitle": "دسته بندی مدل ها - فریگیت",
+ "description": {
+ "invalidName": "نام نامعتبر، نام ها فقط می توانند شامل حروف، اعداد، فاصله، آپستروف، زیرخط و خط فاصله باشند."
+ },
+ "details": {
+ "none": "هیچکدام",
+ "scoreInfo": "امتیاز، نشان دهنده میانگین دقت در تشخیص و دسته بندی این شیء در بین تمام تشخیصهاست.",
+ "unknown": "ناشناخته"
+ }
+}
diff --git a/web/public/locales/fa/views/configEditor.json b/web/public/locales/fa/views/configEditor.json
index 0967ef424b..0c97e3f624 100644
--- a/web/public/locales/fa/views/configEditor.json
+++ b/web/public/locales/fa/views/configEditor.json
@@ -1 +1,7 @@
-{}
+{
+ "documentTitle": "ویرایشگر کانفیگ - فریگیت",
+ "configEditor": "ویرایشگر کانفیگ",
+ "safeConfigEditor": "ویرایشگر تنظیمات (حالت امن)",
+ "safeModeDescription": "فریگیت به دلیل خطا در صحت سنجی پیکربندی، در حالت امن می باشد.",
+ "copyConfig": "کپی پیکربندی"
+}
diff --git a/web/public/locales/fa/views/events.json b/web/public/locales/fa/views/events.json
index 0967ef424b..a566947124 100644
--- a/web/public/locales/fa/views/events.json
+++ b/web/public/locales/fa/views/events.json
@@ -1 +1,8 @@
-{}
+{
+ "alerts": "هشدارها",
+ "detections": "تشخیصها",
+ "motion": {
+ "label": "حرکت",
+ "only": "فقط حرکتی"
+ }
+}
diff --git a/web/public/locales/fa/views/explore.json b/web/public/locales/fa/views/explore.json
index 0967ef424b..7ee77df16e 100644
--- a/web/public/locales/fa/views/explore.json
+++ b/web/public/locales/fa/views/explore.json
@@ -1 +1,14 @@
-{}
+{
+ "generativeAI": "هوش مصنوعی تولید کننده",
+ "documentTitle": "کاوش کردن - فرایگیت",
+ "exploreMore": "نمایش اشیا {{label}} بیشتر",
+ "details": {
+ "timestamp": "زمان دقیق"
+ },
+ "exploreIsUnavailable": {
+ "title": "نمایش کلی موجود نمی باشد",
+ "embeddingsReindexing": {
+ "startingUp": "درحال شروع…"
+ }
+ }
+}
diff --git a/web/public/locales/fa/views/exports.json b/web/public/locales/fa/views/exports.json
index 0967ef424b..30532619c8 100644
--- a/web/public/locales/fa/views/exports.json
+++ b/web/public/locales/fa/views/exports.json
@@ -1 +1,6 @@
-{}
+{
+ "search": "جستجو",
+ "documentTitle": "گرفتن خروجی - فریگیت",
+ "noExports": "هیچ خروجی یافت نشد",
+ "deleteExport": "حذف خروجی"
+}
diff --git a/web/public/locales/fa/views/faceLibrary.json b/web/public/locales/fa/views/faceLibrary.json
index 0967ef424b..fa2595f8e4 100644
--- a/web/public/locales/fa/views/faceLibrary.json
+++ b/web/public/locales/fa/views/faceLibrary.json
@@ -1 +1,11 @@
-{}
+{
+ "description": {
+ "addFace": "با بارگزاری اولین عکستان، یک مجموعه جدید به کتابخانه چهره اضافه کنید.",
+ "placeholder": "نامی برای این مجموعه وارد کنید",
+ "invalidName": "نام نامعتبر، نام ها فقط می توانند شامل حروف، اعداد، فاصله، آپستروف، زیرخط و خط فاصله باشند."
+ },
+ "details": {
+ "timestamp": "زمان دقیق",
+ "unknown": "ناشناخته"
+ }
+}
diff --git a/web/public/locales/fa/views/live.json b/web/public/locales/fa/views/live.json
index 0967ef424b..97faeda8bd 100644
--- a/web/public/locales/fa/views/live.json
+++ b/web/public/locales/fa/views/live.json
@@ -1 +1,11 @@
-{}
+{
+ "documentTitle": "زنده - فریگیت",
+ "documentTitle.withCamera": "{{camera}} - زنده - فریگیت",
+ "lowBandwidthMode": "حالت کاهش مصرف پهنای باند",
+ "twoWayTalk": {
+ "enable": "فعال سازی مکالمه دوطرفه"
+ },
+ "cameraAudio": {
+ "enable": "فعالسازی صدای دوربین"
+ }
+}
diff --git a/web/public/locales/fa/views/recording.json b/web/public/locales/fa/views/recording.json
index 0967ef424b..664f93ef69 100644
--- a/web/public/locales/fa/views/recording.json
+++ b/web/public/locales/fa/views/recording.json
@@ -1 +1,6 @@
-{}
+{
+ "filter": "فیلتر",
+ "export": "گرفتن خروجی",
+ "calendar": "تفویم",
+ "filters": "فیلترها"
+}
diff --git a/web/public/locales/fa/views/search.json b/web/public/locales/fa/views/search.json
index 0967ef424b..092c45f82c 100644
--- a/web/public/locales/fa/views/search.json
+++ b/web/public/locales/fa/views/search.json
@@ -1 +1,9 @@
-{}
+{
+ "search": "جستجو",
+ "savedSearches": "جستجوهای ذخیره شده",
+ "searchFor": "جستجو برای {{inputValue}}",
+ "button": {
+ "clear": "پاک کردن جستجو",
+ "save": "ذخیره جستجو"
+ }
+}
diff --git a/web/public/locales/fa/views/settings.json b/web/public/locales/fa/views/settings.json
index 0967ef424b..4861489d3e 100644
--- a/web/public/locales/fa/views/settings.json
+++ b/web/public/locales/fa/views/settings.json
@@ -1 +1,10 @@
-{}
+{
+ "documentTitle": {
+ "default": "تنظیمات - فریگیت",
+ "authentication": "تنظیمات احراز هویت - فریگیت",
+ "camera": "تنظیمات دوربین - فریگیت",
+ "cameraManagement": "مدیریت دوربین ها - فریگیت",
+ "cameraReview": "بازبینی تنظیمات دوربین - فریگیت",
+ "masksAndZones": "ویرایشگر ماسک و منطقه - فریگیت"
+ }
+}
diff --git a/web/public/locales/fa/views/system.json b/web/public/locales/fa/views/system.json
index 0967ef424b..b33d6e5053 100644
--- a/web/public/locales/fa/views/system.json
+++ b/web/public/locales/fa/views/system.json
@@ -1 +1,11 @@
-{}
+{
+ "documentTitle": {
+ "cameras": "آمار دوربینها - فریگیت",
+ "storage": "آمار حافظه - فریگیت",
+ "general": "آمار عمومی - فریگیت",
+ "enrichments": "آمار بهینه سازی - فریگیت",
+ "logs": {
+ "frigate": "ثبت رخدادهای فریگیت - فریگیت"
+ }
+ }
+}
diff --git a/web/public/locales/fi/audio.json b/web/public/locales/fi/audio.json
index 1623e89bd7..f0665039fc 100644
--- a/web/public/locales/fi/audio.json
+++ b/web/public/locales/fi/audio.json
@@ -56,7 +56,110 @@
"cough": "Yskä",
"sneeze": "Niistää",
"throat_clearing": "Kurkun selvittäminen",
- "sniff": "Poimi",
- "run": "Käynnistä",
- "shuffle": "Sekoitus"
+ "sniff": "Nuuhkia",
+ "run": "Juokse",
+ "shuffle": "Sekoitus",
+ "hiccup": "Hikka",
+ "radio": "Radio",
+ "television": "Televisio",
+ "environmental_noise": "Ympäristön melu",
+ "sound_effect": "Äänitehoste",
+ "silence": "Hiljaisuus",
+ "glass": "Lasi",
+ "wood": "Puu",
+ "eruption": "Purkaus",
+ "firecracker": "Sähikäinen",
+ "fireworks": "Ilotulitus",
+ "artillery_fire": "Tykistötuli",
+ "machine_gun": "Konekivääri",
+ "explosion": "Räjähdys",
+ "drill": "Pora",
+ "sanding": "Hionta",
+ "sawing": "Sahaus",
+ "hammer": "Vasara",
+ "tools": "Työkalut",
+ "printer": "Tulostin",
+ "cash_register": "Kassakone",
+ "air_conditioning": "Ilmastointi",
+ "mechanical_fan": "Mekaaninen tuuletin",
+ "sewing_machine": "Ompelukone",
+ "gears": "Hammasrattaat",
+ "ratchet": "Räikkä",
+ "pigeon": "Kyyhkynen",
+ "crow": "Varis",
+ "owl": "Pöllö",
+ "flapping_wings": "Siipien räpyttely",
+ "dogs": "Koirat",
+ "rats": "Rotat",
+ "insect": "Hyönteinen",
+ "cricket": "Sirkka",
+ "mosquito": "Hyttynen",
+ "fly": "Kärpänen",
+ "footsteps": "Askelia",
+ "chewing": "Pureskelu",
+ "biting": "Pureminen",
+ "gargling": "Kurlaus",
+ "stomach_rumble": "Vatsan kurina",
+ "burping": "Röyhtäily",
+ "fart": "Pieru",
+ "hands": "Kädet",
+ "finger_snapping": "Sormien napsauttaminen",
+ "clapping": "Taputtaminen",
+ "heartbeat": "Sydämenlyönti",
+ "cheering": "Hurraus",
+ "applause": "Aplodit",
+ "crowd": "Väkijoukko",
+ "children_playing": "Lapset leikkivät",
+ "pets": "Lemmikit",
+ "whimper_dog": "Koiran vinkuminen",
+ "meow": "Miau",
+ "livestock": "Karja",
+ "cattle": "Nautakarja",
+ "cowbell": "Lehmänkello",
+ "pig": "Sika",
+ "chicken": "Kana",
+ "duck": "Ankka",
+ "frog": "Sammakko",
+ "snake": "Käärme",
+ "music": "Musiikki",
+ "musical_instrument": "Musiikki-instrumentti",
+ "guitar": "Kitara",
+ "electric_guitar": "Sähkökitara",
+ "bass_guitar": "Bassokitara",
+ "acoustic_guitar": "Akustinen kitara",
+ "tapping": "Napauttaminen",
+ "piano": "Piano",
+ "electric_piano": "Sähköpiano",
+ "organ": "Urku",
+ "synthesizer": "Syntetisaattori",
+ "drum_kit": "Rumpusetti",
+ "drum": "Rumpu",
+ "wood_block": "Puupalikka",
+ "steelpan": "Teräspannu",
+ "trumpet": "Trumpetti",
+ "violin": "Viulu",
+ "cello": "Sello",
+ "flute": "Huilu",
+ "saxophone": "Saksofoni",
+ "clarinet": "Klarinetti",
+ "harp": "Harppu",
+ "bell": "Kello",
+ "church_bell": "Kirkonkello",
+ "bicycle_bell": "Polkupyörän kello",
+ "tuning_fork": "Virityshaarukka",
+ "pop_music": "Popmusiikki",
+ "hip_hop_music": "Hiphop-musiikki",
+ "rock_music": "Rock-musiikki",
+ "heavy_metal": "Heavy metal",
+ "punk_rock": "Punkrock",
+ "rock_and_roll": "Rock and Roll",
+ "scream": "Huutaa",
+ "accelerating": "Kiihdyttäminen",
+ "air_brake": "Ilmajarru",
+ "aircraft": "Ilma-alus",
+ "aircraft_engine": "Lentokoneen moottori",
+ "alarm": "Hälytys",
+ "ambient_music": "Tunnelmamusiikki",
+ "ambulance": "Ambulanssi",
+ "angry_music": "Vihainen musiikki"
}
diff --git a/web/public/locales/fi/common.json b/web/public/locales/fi/common.json
index f76eb0e67f..5cebc89399 100644
--- a/web/public/locales/fi/common.json
+++ b/web/public/locales/fi/common.json
@@ -39,7 +39,10 @@
"minute_one": "{{time}}minuutti",
"minute_other": "{{time}}minuuttia",
"second_one": "{{time}}sekuntti",
- "second_other": "{{time}}sekunttia"
+ "second_other": "{{time}}sekunttia",
+ "formattedTimestampHourMinute": {
+ "24hour": "HH:mm"
+ }
},
"pagination": {
"next": {
@@ -168,5 +171,6 @@
"length": {
"feet": "jalka"
}
- }
+ },
+ "readTheDocumentation": "Lue dokumentaatio"
}
diff --git a/web/public/locales/fi/components/auth.json b/web/public/locales/fi/components/auth.json
index 5ce3ffa021..f81993d86b 100644
--- a/web/public/locales/fi/components/auth.json
+++ b/web/public/locales/fi/components/auth.json
@@ -1,7 +1,7 @@
{
"form": {
"password": "Salasana",
- "user": "Käyttäjä",
+ "user": "Käyttäjänimi",
"login": "Kirjaudu",
"errors": {
"usernameRequired": "Käyttäjänimi vaaditaan",
diff --git a/web/public/locales/fi/components/camera.json b/web/public/locales/fi/components/camera.json
index 9dae4c5ed3..a641ca65ec 100644
--- a/web/public/locales/fi/components/camera.json
+++ b/web/public/locales/fi/components/camera.json
@@ -66,7 +66,8 @@
},
"stream": "Kuvavirta",
"placeholder": "Valitse kuvavirta"
- }
+ },
+ "birdseye": "Linnun silmä"
}
},
"debug": {
diff --git a/web/public/locales/fi/components/dialog.json b/web/public/locales/fi/components/dialog.json
index 9a1ca575d4..819e4a55ea 100644
--- a/web/public/locales/fi/components/dialog.json
+++ b/web/public/locales/fi/components/dialog.json
@@ -73,5 +73,15 @@
"readTheDocumentation": "Lue dokumentaatio"
}
}
+ },
+ "search": {
+ "saveSearch": {
+ "label": "Tallenna haku"
+ }
+ },
+ "imagePicker": {
+ "search": {
+ "placeholder": "Hae nimikkeen tai alinimikkeen mukaan..."
+ }
}
}
diff --git a/web/public/locales/fi/components/filter.json b/web/public/locales/fi/components/filter.json
index 5a21e54240..c3058bd29f 100644
--- a/web/public/locales/fi/components/filter.json
+++ b/web/public/locales/fi/components/filter.json
@@ -56,7 +56,36 @@
"cameras": {
"label": "Kameran suodattimet",
"all": {
- "title": "Kaikki kamerat"
+ "title": "Kaikki kamerat",
+ "short": "Kamerat"
+ }
+ },
+ "classes": {
+ "label": "Luokat",
+ "all": {
+ "title": "Kaikki luokat"
+ },
+ "count_one": "{{count}} Luokka",
+ "count_other": "{{count}} Luokkaa"
+ },
+ "recognizedLicensePlates": {
+ "clearAll": "Tyhjennä kaikki",
+ "title": "Tunnistetut rekisterikilvet",
+ "loadFailed": "Tunnistettujen rekisterikilpien lataaminen epäonnistui.",
+ "loading": "Ladataan tunnistettuja rekisterikilpiä…",
+ "placeholder": "Kirjoita hakeaksesi rekisterikilpeä…",
+ "noLicensePlatesFound": "Rekisterikilpiä ei löytynyt.",
+ "selectPlatesFromList": "Valitse yksi tai useampi rekisterikilpi luettelosta.",
+ "selectAll": "Valitse kaikki"
+ },
+ "logSettings": {
+ "allLogs": "Kaikki lokit",
+ "filterBySeverity": "Suodata lokit vakavuuden mukaan"
+ },
+ "trackedObjectDelete": {
+ "title": "Vahvista poisto",
+ "toast": {
+ "error": "Seurattujen kohteiden poistaminen epäonnistui: {{errorMessage}}"
}
}
}
diff --git a/web/public/locales/fi/views/classificationModel.json b/web/public/locales/fi/views/classificationModel.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/fi/views/classificationModel.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/fi/views/configEditor.json b/web/public/locales/fi/views/configEditor.json
index 472c59e371..96990e1408 100644
--- a/web/public/locales/fi/views/configEditor.json
+++ b/web/public/locales/fi/views/configEditor.json
@@ -12,5 +12,7 @@
},
"configEditor": "Konfiguraatioeditori",
"copyConfig": "Kopioi konfiguraatio",
- "saveAndRestart": "Tallenna & uudelleenkäynnistä"
+ "saveAndRestart": "Tallenna & uudelleenkäynnistä",
+ "safeConfigEditor": "Konfiguraatioeditori (vikasietotila)",
+ "safeModeDescription": "Frigate on vikasietotilassa konfiguraation vahvistusvirheen vuoksi."
}
diff --git a/web/public/locales/fi/views/events.json b/web/public/locales/fi/views/events.json
index 638a05f7a1..57eb44a808 100644
--- a/web/public/locales/fi/views/events.json
+++ b/web/public/locales/fi/views/events.json
@@ -34,5 +34,7 @@
"label": "Näytä uudet katselmoitavat kohteet",
"button": "Uudet katselmoitavat kohteet"
},
- "camera": "Kamera"
+ "camera": "Kamera",
+ "suspiciousActivity": "Epäilyttävä toiminta",
+ "threateningActivity": "Uhkaava toiminta"
}
diff --git a/web/public/locales/fi/views/explore.json b/web/public/locales/fi/views/explore.json
index c6950c9417..25743e4706 100644
--- a/web/public/locales/fi/views/explore.json
+++ b/web/public/locales/fi/views/explore.json
@@ -7,7 +7,45 @@
"desc": "Tarkastele kohteen tietoja",
"button": {
"share": "Jaa tämä tarkasteltu kohde"
+ },
+ "toast": {
+ "error": {
+ "updatedSublabelFailed": "Alatunnisteen päivitys epäonnistui",
+ "updatedLPRFailed": "Rekisterikilven päivitys epäonnistui"
+ }
}
+ },
+ "recognizedLicensePlate": "Tunnistettu rekisterikilpi",
+ "estimatedSpeed": "Arvioitu nopeus",
+ "objects": "Objektit",
+ "camera": "Kamera",
+ "zones": "Alueet",
+ "label": "Tunniste",
+ "editSubLabel": {
+ "title": "Editoi alitunnistetta",
+ "desc": "Syötä uusi alitunniste tähän",
+ "descNoLabel": "Lisää uusi alatunniste tähän seurattuun kohteeseen"
+ },
+ "editLPR": {
+ "title": "Muokkaa rekisterikilpeä",
+ "desc": "Syötä uusi rekisterikilven arvo tähän",
+ "descNoLabel": "Syötä uusi rekisterikilven arvo tähän seurattuun objektiin"
+ },
+ "snapshotScore": {
+ "label": "Tilannekuvan arvosana"
+ },
+ "topScore": {
+ "label": "Huippuarvosana",
+ "info": "Ylin pistemäärä on seurattavan kohteen korkein mediaani, joten tämä voi erota hakutuloksen esikatselukuvassa näkyvästä pistemäärästä."
+ },
+ "button": {
+ "findSimilar": "Etsi samankaltaisia"
+ },
+ "description": {
+ "label": "Kuvaus"
+ },
+ "score": {
+ "label": "Pisteet"
}
},
"exploreIsUnavailable": {
@@ -28,7 +66,8 @@
"setup": {
"visionModel": "Vision-malli",
"textModel": "Tekstimalli",
- "textTokenizer": "Tekstin osioija"
+ "textTokenizer": "Tekstin osioija",
+ "visionModelFeatureExtractor": "Näkömallin piirreluokkain"
},
"tips": {
"documentation": "Lue dokumentaatio",
@@ -90,6 +129,27 @@
"downloadSnapshot": {
"label": "Lataa kuvankaappaus",
"aria": "Lataa kuvankaappaus"
+ },
+ "addTrigger": {
+ "label": "Lisää laukaisin",
+ "aria": "Lisää laukaisin tälle seurattavalle kohteelle"
+ },
+ "submitToPlus": {
+ "label": "Lähetä Frigate+:lle"
+ },
+ "downloadVideo": {
+ "label": "Lataa video",
+ "aria": "Lataa video"
+ },
+ "viewObjectLifecycle": {
+ "label": "Tarkastele objektin elinkaarta",
+ "aria": "Näytä objektin elinkaari"
+ },
+ "findSimilar": {
+ "label": "Etsi samankaltaisia"
}
+ },
+ "aiAnalysis": {
+ "title": "AI-analyysi"
}
}
diff --git a/web/public/locales/fi/views/faceLibrary.json b/web/public/locales/fi/views/faceLibrary.json
index 041c7324f7..dc69f36940 100644
--- a/web/public/locales/fi/views/faceLibrary.json
+++ b/web/public/locales/fi/views/faceLibrary.json
@@ -26,7 +26,8 @@
"toast": {
"success": {
"deletedFace_one": "{{count}} kasvo poistettu onnistuneesti.",
- "deletedFace_other": "{{count}} kasvoa poistettu onnistuneesti."
+ "deletedFace_other": "{{count}} kasvoa poistettu onnistuneesti.",
+ "uploadedImage": "Kuva ladattu onnistuneesti."
}
},
"selectItem": "Valitse {{item}}",
@@ -60,6 +61,22 @@
"desc": "Anna uusi nimi tälle {{name}}"
},
"button": {
- "deleteFaceAttempts": "Poista kasvot"
- }
+ "deleteFaceAttempts": "Poista kasvot",
+ "addFace": "Lisää kasvot",
+ "renameFace": "Uudelleennimeä kasvot",
+ "deleteFace": "Poista kasvot",
+ "uploadImage": "Lataa kuva",
+ "reprocessFace": "Uudelleenprosessointi Kasvot"
+ },
+ "imageEntry": {
+ "validation": {
+ "selectImage": "Valitse kuvatiedosto."
+ },
+ "dropActive": "Pudota kuva tähän…",
+ "dropInstructions": "Vedä ja pudota kuva tähän tai valitse se napsauttamalla",
+ "maxSize": "Maksimikoko: {{size}}MB"
+ },
+ "nofaces": "Kasvoja ei ole saatavilla",
+ "pixels": "{{area}}px",
+ "trainFace": "Kouluta kasvot"
}
diff --git a/web/public/locales/fi/views/live.json b/web/public/locales/fi/views/live.json
index 69c0d23bf7..d38703565a 100644
--- a/web/public/locales/fi/views/live.json
+++ b/web/public/locales/fi/views/live.json
@@ -43,7 +43,15 @@
"label": "Napsauta kehystä keskittääksesi PTZ-kamera"
}
},
- "presets": "PTZ-kameroiden esiasetukset"
+ "presets": "PTZ-kameroiden esiasetukset",
+ "focus": {
+ "in": {
+ "label": "Tarkenna PTZ-kamera sisään"
+ },
+ "out": {
+ "label": "Tarkenna PTZ-kamera ulos"
+ }
+ }
},
"camera": {
"enable": "Ota kamera käyttöön",
@@ -135,7 +143,8 @@
"recording": "Nauhoitus",
"snapshots": "Tilannekuvat",
"audioDetection": "Äänen tunnistus",
- "autotracking": "Automaattinen seuranta"
+ "autotracking": "Automaattinen seuranta",
+ "transcription": "Äänitranskriptio"
},
"history": {
"label": "Näytä historiallista materiaalia"
@@ -154,5 +163,9 @@
"label": "Muokkaa kameraryhmää"
},
"exitEdit": "Poistu muokkauksesta"
+ },
+ "transcription": {
+ "enable": "Ota käyttöön reaaliaikainen äänitranskriptio",
+ "disable": "Poista käytöstä reaaliaikainen äänitranskriptio"
}
}
diff --git a/web/public/locales/fi/views/search.json b/web/public/locales/fi/views/search.json
index fab6050889..887c9e09e5 100644
--- a/web/public/locales/fi/views/search.json
+++ b/web/public/locales/fi/views/search.json
@@ -44,7 +44,14 @@
},
"tips": {
"desc": {
- "exampleLabel": "Esimerkki:"
+ "exampleLabel": "Esimerkki:",
+ "step6": "Poista suodattimet napsauttamalla niiden vieressä olevaa 'x' merkkiä.",
+ "text": "Suodattimien avulla voit rajata hakutuloksia. Näin käytät niitä syöttökentässä:",
+ "step1": "Kirjoita suodattimen avaimen nimi ja sen perään kaksoispiste (esim. ”kamerat:”).",
+ "step2": "Valitse arvo ehdotuksista tai kirjoita oma arvo.",
+ "step3": "Käytä useita suodattimia lisäämällä ne peräkkäin välilyönnillä erotettuina.",
+ "step4": "Päivämääräsuodattimet (ennen: ja jälkeen:) käyttävät {{DateFormat}} muotoa.",
+ "step5": "Aikavälin suodatin käyttää {{exampleTime}} muotoa."
},
"title": "Tekstisuodattimien käyttö"
},
@@ -58,5 +65,8 @@
"title": "Samankaltaisten kohteiden haku",
"active": "Samankaltaisuushaku aktiivinen",
"clear": "Poista samankaltaisuushaku"
+ },
+ "placeholder": {
+ "search": "Hae…"
}
}
diff --git a/web/public/locales/fi/views/settings.json b/web/public/locales/fi/views/settings.json
index 23b910dda4..cda27193fa 100644
--- a/web/public/locales/fi/views/settings.json
+++ b/web/public/locales/fi/views/settings.json
@@ -22,7 +22,8 @@
"debug": "Debuggaus",
"motionTuner": "Liikesäädin",
"notifications": "Ilmoitukset",
- "enrichments": "Rikasteet"
+ "enrichments": "Rikasteet",
+ "triggers": "Laukaisimet"
},
"dialog": {
"unsavedChanges": {
@@ -176,7 +177,14 @@
"toast": {
"success": "Luokittelumäärityksen tarkistus on tallennettu. Käynnistä Frigate uudelleen muutosten käyttöönottamiseksi."
}
- }
+ },
+ "cameraConfig": {
+ "add": "Lisää kamera",
+ "ffmpeg": {
+ "addInput": "Lisää tulovirta"
+ }
+ },
+ "addCamera": "Lisää uusi kamera"
},
"masksAndZones": {
"filter": {
@@ -415,6 +423,11 @@
"placeholder": "Syötä käyttäjätunnus",
"title": "Käyttäjätunnus"
}
+ },
+ "changeRole": {
+ "roleInfo": {
+ "admin": "Ylläpitäjä"
+ }
}
}
},
@@ -427,5 +440,140 @@
"Threshold": {
"title": "Kynnys"
}
+ },
+ "triggers": {
+ "documentTitle": "Laukaisimet",
+ "management": {
+ "title": "Laukaisimen hallinta"
+ },
+ "addTrigger": "Lisää laukaisin",
+ "table": {
+ "name": "Nimi",
+ "type": "Tyyppi",
+ "content": "Sisältö",
+ "threshold": "Kynnys",
+ "actions": "Toiminnot",
+ "noTriggers": "Tälle kameralle ei ole määritetty laukaisimia.",
+ "edit": "Muokkaa",
+ "deleteTrigger": "Poista laukaisin",
+ "lastTriggered": "Viimeksi laukaistu"
+ },
+ "type": {
+ "thumbnail": "Kuvake",
+ "description": "Kuvaus"
+ },
+ "actions": {
+ "notification": "Lähetä ilmoitus",
+ "alert": "Merkitse hälytykseksi"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Luo laukaisin",
+ "desc": "Luo laukaisin kameralle {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Muokkaa laukaisinta",
+ "desc": "Muokkaa laukaisimen asetuksia kamerasta {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Poista laukaisin",
+ "desc": "Haluatko varmasti poistaa laukaisimen {{triggerName}}? Tätä toimintoa ei voi peruuttaa."
+ },
+ "form": {
+ "name": {
+ "title": "Nimi",
+ "placeholder": "Syötä laukaisimen nimi",
+ "error": {
+ "minLength": "Nimen on oltava vähintään 2 merkkiä pitkä.",
+ "invalidCharacters": "Nimi voi sisältää vain kirjaimia, numeroita, alaviivoja ja väliviivoja.",
+ "alreadyExists": "Tällä nimellä oleva laukaisin on jo olemassa tälle kameralle."
+ }
+ },
+ "enabled": {
+ "description": "Ota tämä laukaisin käyttöön tai pois käytöstä"
+ },
+ "type": {
+ "title": "Tyyppi",
+ "placeholder": "Valitse laukaisintyyppi"
+ },
+ "content": {
+ "title": "Sisältö",
+ "imagePlaceholder": "Valitse kuva",
+ "textPlaceholder": "Kirjoita tekstisisältö",
+ "imageDesc": "Valitse kuva, joka laukaisee tämän toiminnon, kun samankaltainen kuva havaitaan.",
+ "textDesc": "Syötä teksti, joka laukaisee tämän toiminnon, kun vastaava seurattavan kohteen kuvaus havaitaan.",
+ "error": {
+ "required": "Sisältö on pakollinen."
+ }
+ },
+ "threshold": {
+ "title": "Kynnys",
+ "error": {
+ "min": "Kynnys on oltava vähintään 0",
+ "max": "Kynnys on oltava enintään 1"
+ }
+ },
+ "actions": {
+ "title": "Toiminnot",
+ "desc": "Oletuksena Frigate lähettää MQTT-viestin kaikille laukaisimille. Valitse lisätoiminto, joka suoritetaan, kun tämä laukaisija laukeaa.",
+ "error": {
+ "min": "Vähintään yksi toiminto on valittava."
+ }
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Laukaisin {{name}} luotu onnistuneesti.",
+ "updateTrigger": "Laukaisin {{name}} päivitetty onnistuneesti.",
+ "deleteTrigger": "Laukaisin {{name}} poistettu onnistuneesti."
+ },
+ "error": {
+ "createTriggerFailed": "Laukaisimen luominen epäonnistui: {{errorMessage}}",
+ "updateTriggerFailed": "Laukaisimen päivitys epäonnistui: {{errorMessage}}",
+ "deleteTriggerFailed": "Laukaisimen poistaminen epäonnistui: {{errorMessage}}"
+ }
+ }
+ },
+ "enrichments": {
+ "semanticSearch": {
+ "modelSize": {
+ "small": {
+ "title": "pieni",
+ "desc": "pieni käyttää kvantisoitua versiota mallista, joka käyttää vähemmän RAM-muistia ja toimii nopeammin CPU:lla, mutta ero upotuksen laadussa on hyvin vähäinen."
+ },
+ "large": {
+ "title": "suuri",
+ "desc": "suuri käyttää koko Jina-mallia ja toimii automaattisesti GPU:lla, jos se on mahdollista."
+ },
+ "desc": "Semanttisen haun upotuksiin käytetyn mallin koko."
+ },
+ "title": "Semanttinen haku",
+ "desc": "Semanttisen haun avulla Frigatessa voit etsiä seurattavia kohteita tarkistettavista kohteista joko kuvan, käyttäjän määrittämän tekstikuvauksen tai automaattisesti luodun kuvauksen avulla.",
+ "reindexNow": {
+ "label": "Uudelleenindeksoi nyt",
+ "desc": "Uudelleindeksointi luo uudelleen upotukset kaikille seuratuille objekteille. Tämä prosessi suoritetaan taustalla ja voi kuormittaa prosessorin maksimiin ja viedä melko paljon aikaa riippuen seurattujen objektien määrästä.",
+ "confirmTitle": "Vahvista uudelleenindeksointi"
+ }
+ },
+ "faceRecognition": {
+ "title": "Kasvojentunnistus",
+ "desc": "Kasvojentunnistuksen avulla ihmisille voidaan antaa nimiä, ja kun heidän kasvonsa tunnistetaan, Frigate lisää henkilön nimen alaluokaksi. Nämä tiedot näkyvät käyttöliittymässä, suodattimissa ja ilmoituksissa.",
+ "modelSize": {
+ "label": "Mallin koko",
+ "desc": "Kasvojentunnistuksessa käytettävän mallin koko.",
+ "small": {
+ "title": "pieni",
+ "desc": "pieni käyttää FaceNet-kasvojen upotusmallia, joka toimii tehokkaasti useimmilla suorittimilla."
+ },
+ "large": {
+ "title": "suuri",
+ "desc": "suuri käyttää ArcFace-kasvojen upotusmallia ja toimii automaattisesti GPU:lla, jos se on mahdollista."
+ }
+ }
+ },
+ "licensePlateRecognition": {
+ "title": "Rekisterikilven tunnistaminen"
+ }
}
}
diff --git a/web/public/locales/fi/views/system.json b/web/public/locales/fi/views/system.json
index 5000e45c6e..04952692e2 100644
--- a/web/public/locales/fi/views/system.json
+++ b/web/public/locales/fi/views/system.json
@@ -55,6 +55,13 @@
},
"closeInfo": {
"label": "Sulje GPU:n tiedot"
+ },
+ "nvidiaSMIOutput": {
+ "driver": "Ajuri: {{driver}}",
+ "title": "Nvidia SMI tuloste",
+ "name": "Nimi: {{name}}",
+ "cudaComputerCapability": "CUDA laskentakapasiteetti: {{cuda_compute}}",
+ "vbios": "VBios-tiedot: {{vbios}}"
}
}
},
diff --git a/web/public/locales/fr/audio.json b/web/public/locales/fr/audio.json
index b773f026b8..b346158531 100644
--- a/web/public/locales/fr/audio.json
+++ b/web/public/locales/fr/audio.json
@@ -1,10 +1,10 @@
{
- "speech": "Conversation",
+ "speech": "Parole",
"babbling": "Babillage",
- "yell": "Crier",
+ "yell": "Cri",
"bicycle": "Vélo",
"car": "Voiture",
- "bellow": "Ci-dessous",
+ "bellow": "Beuglement",
"whispering": "Chuchotement",
"laughter": "Rires",
"snicker": "Ricanement",
@@ -13,7 +13,7 @@
"bus": "Bus",
"train": "Train",
"motorcycle": "Moto",
- "whoop": "Cri",
+ "whoop": "Cri strident",
"sigh": "Soupir",
"singing": "Chant",
"choir": "Chorale",
@@ -22,7 +22,7 @@
"mantra": "Mantra",
"child_singing": "Chant d'enfant",
"bird": "Oiseau",
- "cat": "chat",
+ "cat": "Chat",
"synthetic_singing": "Chant synthétique",
"rapping": "Rap",
"horse": "Cheval",
@@ -31,15 +31,15 @@
"whistling": "Sifflement",
"breathing": "Respiration",
"snoring": "Ronflement",
- "gasp": "Souffle",
+ "gasp": "Souffle coupé",
"pant": "halètement",
- "snort": "Reniflement",
+ "snort": "Ébrouement",
"camera": "Caméra",
- "cough": "Toussotement",
+ "cough": "Toux",
"groan": "Gémissement",
"grunt": "Grognement",
- "throat_clearing": "Éclaircissement de la gorge",
- "wheeze": "Respiration bruyante",
+ "throat_clearing": "Raclement de gorge",
+ "wheeze": "Respiration sifflante",
"sneeze": "Éternuement",
"sniff": "Reniflement",
"chewing": "Mastication",
@@ -72,7 +72,7 @@
"burping": "Rots",
"fart": "Pet",
"crowd": "Foule",
- "children_playing": "Enfants en train de jouer",
+ "children_playing": "Jeux d'enfants",
"animal": "Animal",
"bark": "Aboiement",
"pig": "Cochon",
@@ -80,7 +80,7 @@
"chicken": "Poulet",
"turkey": "Dinde",
"duck": "Canard",
- "goose": "Dindon",
+ "goose": "Oie",
"wild_animals": "Animaux Sauvages",
"crow": "Corbeau",
"dogs": "Chiens",
@@ -99,31 +99,31 @@
"vehicle": "Véhicule",
"skateboard": "Skateboard",
"door": "Porte",
- "blender": "Mixer",
- "hair_dryer": "Sèche cheveux",
+ "blender": "Mixeur",
+ "hair_dryer": "Sèche-cheveux",
"toothbrush": "Brosse à dents",
- "sink": "Lavabo",
- "scissors": "Paire de ciseaux",
+ "sink": "Évier",
+ "scissors": "Ciseaux",
"humming": "Bourdonnement",
- "shuffle": "Mélanger",
- "footsteps": "Pas",
+ "shuffle": "Pas traînants",
+ "footsteps": "Bruits de pas",
"hiccup": "Hoquet",
"finger_snapping": "Claquement de doigts",
"clapping": "Claquements",
"applause": "Applaudissements",
"heartbeat": "Battements de coeur",
- "cheering": "Applaudissement",
+ "cheering": "Acclamations",
"electric_shaver": "Rasoir électrique",
"truck": "Camion",
- "run": "Démarrer",
+ "run": "Course",
"biting": "Mordre",
"stomach_rumble": "Gargouillements d'estomac",
"hands": "Mains",
"heart_murmur": "Souffle au cœur",
- "chatter": "Bavarder",
+ "chatter": "Bavardage",
"pets": "Animaux de compagnie",
- "yip": "Ouais",
- "howl": "Hurler",
+ "yip": "Jappement",
+ "howl": "Hurlement",
"growling": "Grondement",
"whimper_dog": "Gémissements de chien",
"purr": "Ronronnements",
@@ -132,8 +132,8 @@
"livestock": "Bétail",
"neigh": "Hennissement",
"quack": "Coin-coin",
- "honk": "Klaxon",
- "roaring_cats": "Feulements",
+ "honk": "Cacardement",
+ "roaring_cats": "Rugissement de félins",
"roar": "Rugissements",
"chirp": "Gazouillis",
"squawk": "Braillement",
@@ -191,7 +191,7 @@
"steelpan": "Pan",
"orchestra": "Orchestre",
"brass_instrument": "Cuivres",
- "french_horn": "Cor français",
+ "french_horn": "Cor d'harmonie",
"trumpet": "Trompette",
"bowed_string_instrument": "Instrument à cordes frottées",
"string_section": "Section des cordes",
@@ -247,7 +247,7 @@
"sad_music": "Musique triste",
"tender_music": "Musique tendre",
"exciting_music": "Musique stimulante",
- "angry_music": "Musique énervée",
+ "angry_music": "Musique agressive",
"scary_music": "Musique effrayante",
"wind": "Vent",
"rustling_leaves": "Bruissements de feuilles",
@@ -277,7 +277,7 @@
"skidding": "Dérapage",
"tire_squeal": "Crissements de pneu",
"car_passing_by": "Passage de voiture",
- "race_car": "Course de voitures",
+ "race_car": "Voiture de course",
"air_brake": "Frein pneumatique",
"air_horn": "Klaxon à air",
"reversing_beeps": "Bips de marche arrière",
@@ -311,7 +311,7 @@
"squeak": "Grincement",
"cupboard_open_or_close": "Ouverture ou fermeture de placard",
"drawer_open_or_close": "Ouverture ou fermeture de tiroir",
- "dishes": "Plats",
+ "dishes": "Bruit de vaisselle",
"cutlery": "Couverts",
"chopping": "Hacher",
"frying": "Friture",
@@ -324,7 +324,7 @@
"zipper": "Fermeture éclair",
"keys_jangling": "Tintements de clés",
"coin": "Pièce de monnaie",
- "shuffling_cards": "Mélange de cartes",
+ "shuffling_cards": "Battement de cartes",
"typing": "Frappe au clavier",
"typewriter": "Machine à écrire",
"writing": "Écriture",
@@ -414,16 +414,90 @@
"idling": "Ralenti",
"radio": "Radio",
"telephone": "Téléphone",
- "bow_wow": "Ouaf ouaf",
+ "bow_wow": "Aboiement",
"hiss": "Sifflement",
"clip_clop": "Clic-clac",
"cattle": "Bétail",
"moo": "Meuglement",
"cowbell": "Clochette",
"oink": "Grouin-grouin",
- "bleat": "Bêler",
+ "bleat": "Bêlement",
"fowl": "Volaille",
"cluck": "Gloussement",
"cock_a_doodle_doo": "Cocorico",
- "gobble": "Glouglou"
+ "gobble": "Glouglou",
+ "chird": "Accord",
+ "change_ringing": "Carillon de cloches",
+ "sodeling": "Sodèle",
+ "shofar": "Choffar",
+ "liquid": "Liquide",
+ "splash": "Éclaboussure",
+ "slosh": "Clapotis",
+ "squish": "Bruit de pataugeage",
+ "drip": "Goutte à goutte",
+ "trickle": "Filet",
+ "gush": "Jet",
+ "fill": "Remplir",
+ "spray": "Pulvérisation",
+ "pump": "Pompe",
+ "stir": "Remuer",
+ "boiling": "Ébullition",
+ "arrow": "Flèche",
+ "pour": "Verser",
+ "sonar": "Sonar",
+ "whoosh": "Whoosh",
+ "thump": "Coup sourd",
+ "thunk": "Bruit sourd",
+ "electronic_tuner": "Accordeur électronique",
+ "effects_unit": "Unité d'effets",
+ "chorus_effect": "Effet de chœur",
+ "basketball_bounce": "Rebond de basket-ball",
+ "bang": "Détonation",
+ "slap": "Gifle",
+ "whack": "Coup sec",
+ "smash": "Fracasser",
+ "breaking": "Bruit de casse",
+ "bouncing": "Rebondissement",
+ "whip": "Fouet",
+ "flap": "Battement",
+ "scratch": "Grattement",
+ "scrape": "Raclement",
+ "rub": "Frottement",
+ "roll": "Roulement",
+ "crushing": "Écrasement",
+ "crumpling": "Froissement",
+ "tearing": "Déchirure",
+ "beep": "Bip",
+ "ping": "Ping",
+ "ding": "Ding",
+ "clang": "Bruit métallique",
+ "squeal": "Grincement",
+ "creak": "Craquer",
+ "rustle": "Bruissement",
+ "whir": "Vrombissement",
+ "clatter": "Bruit",
+ "sizzle": "Grésillement",
+ "clicking": "Cliquetis",
+ "clickety_clack": "Clic-clac",
+ "rumble": "Grondement",
+ "plop": "Ploc",
+ "hum": "Hum",
+ "harmonic": "Harmonique",
+ "outside": "Extérieur",
+ "reverberation": "Réverbération",
+ "echo": "Écho",
+ "distortion": "Distorsion",
+ "vibration": "Vibration",
+ "zing": "Sifflement",
+ "crunch": "Croque",
+ "sine_wave": "Onde sinusoïdale",
+ "chirp_tone": "Gazouillis",
+ "pulse": "Impulsion",
+ "inside": "Intérieur",
+ "noise": "Bruit",
+ "mains_hum": "Bourdonnement du secteur",
+ "sidetone": "Retour de voix",
+ "cacophony": "Cacophonie",
+ "throbbing": "Pulsation",
+ "boing": "Boing"
}
diff --git a/web/public/locales/fr/common.json b/web/public/locales/fr/common.json
index 5ed9f65a95..a1132a01eb 100644
--- a/web/public/locales/fr/common.json
+++ b/web/public/locales/fr/common.json
@@ -1,6 +1,6 @@
{
"time": {
- "untilForRestart": "Jusqu'au redémarrage de Frigate.",
+ "untilForRestart": "Jusqu'au redémarrage de Frigate",
"untilRestart": "Jusqu'au redémarrage",
"untilForTime": "Jusqu'à {{time}}",
"justNow": "À l'instant",
@@ -22,10 +22,10 @@
"pm": "PM",
"am": "AM",
"yr": "{{time}} a",
- "year_one": "{{time}} année",
- "year_many": "{{time}} années",
- "year_other": "{{time}} années",
- "mo": "{{time}} m",
+ "year_one": "{{time}} an",
+ "year_many": "{{time}} ans",
+ "year_other": "{{time}} ans",
+ "mo": "{{time}} mois",
"month_one": "{{time}} mois",
"month_many": "{{time}} mois",
"month_other": "{{time}} mois",
@@ -33,7 +33,7 @@
"second_one": "{{time}} seconde",
"second_many": "{{time}} secondes",
"second_other": "{{time}} secondes",
- "m": "{{time}} mn",
+ "m": "{{time}} min",
"hour_one": "{{time}} heure",
"hour_many": "{{time}} heures",
"hour_other": "{{time}} heures",
@@ -65,29 +65,32 @@
},
"formattedTimestampHourMinute": {
"24hour": "HH:mm",
- "12hour": "HH:mm aaa"
+ "12hour": "HH:mm"
},
"formattedTimestampMonthDay": "d MMM",
"formattedTimestampFilename": {
- "12hour": "dd-MM-yy-HH-mm-ss-a",
+ "12hour": "dd-MM-yy-HH-mm-ss",
"24hour": "dd-MM-yy-HH-mm-ss"
},
"formattedTimestampMonthDayHourMinute": {
- "12hour": "d MMM, HH:mm aaa",
+ "12hour": "d MMM, HH:mm",
"24hour": "d MMM, HH:mm"
},
"formattedTimestampHourMinuteSecond": {
"24hour": "HH:mm:ss",
- "12hour": "HH:mm:ss aaa"
+ "12hour": "HH:mm:ss"
},
"formattedTimestampMonthDayYearHourMinute": {
- "12hour": "d MMM yyyy, HH:mm aaa",
+ "12hour": "d MMM yyyy, HH:mm",
"24hour": "d MMM yyyy, HH:mm"
},
"formattedTimestampMonthDayYear": {
"12hour": "d MMM, yyyy",
"24hour": "d MMM,yyyy"
- }
+ },
+ "inProgress": "En cours",
+ "invalidStartTime": "Heure de début invalide",
+ "invalidEndTime": "Heure de fin invalide"
},
"button": {
"apply": "Appliquer",
@@ -98,16 +101,16 @@
"close": "Fermer",
"copy": "Copier",
"back": "Retour",
- "history": "Historique",
- "pictureInPicture": "Image en incrustation",
+ "history": "Chronologie",
+ "pictureInPicture": "Image dans l'image",
"twoWayTalk": "Conversation bidirectionnelle",
- "off": "Inactif",
- "edit": "Editer",
+ "off": "OFF",
+ "edit": "Modifier",
"copyCoordinates": "Copier les coordonnées",
"delete": "Supprimer",
"yes": "Oui",
"no": "Non",
- "unsuspended": "Reprendre",
+ "unsuspended": "Réactiver",
"play": "Lire",
"unselect": "Désélectionner",
"suspended": "Suspendu",
@@ -120,11 +123,12 @@
"next": "Suivant",
"exitFullscreen": "Sortir du mode plein écran",
"cameraAudio": "Son de la caméra",
- "on": "Actif",
+ "on": "ON",
"export": "Exporter",
"deleteNow": "Supprimer maintenant",
"download": "Télécharger",
- "done": "Terminé"
+ "done": "Terminé",
+ "continue": "Continuer"
},
"menu": {
"configuration": "Configuration",
@@ -142,14 +146,14 @@
"nl": "Nederlands (Néerlandais)",
"sv": "Svenska (Suédois)",
"cs": "Čeština (Tchèque)",
- "nb": "Norsk Bokmål (Bokmål Norvégien)",
+ "nb": "Norsk Bokmål (Norvégien Bokmål)",
"ko": "한국어 (Coréen)",
- "fa": "فارسی (Perse)",
+ "fa": "فارسی (Persan)",
"pl": "Polski (Polonais)",
"el": "Ελληνικά (Grec)",
"ro": "Română (Roumain)",
"hu": "Magyar (Hongrois)",
- "he": "עברית (Hebreu)",
+ "he": "עברית (Hébreu)",
"ru": "Русский (Russe)",
"de": "Deutsch (Allemand)",
"es": "Español (Espagnol)",
@@ -162,7 +166,15 @@
"vi": "Tiếng Việt (Vietnamien)",
"yue": "粵語 (Cantonais)",
"th": "ไทย (Thai)",
- "ca": "Català (Catalan)"
+ "ca": "Català (Catalan)",
+ "ptBR": "Português brasileiro (Portugais brésilien)",
+ "sr": "Српски (Serbe)",
+ "sl": "Slovenščina (Slovène)",
+ "lt": "Lietuvių (Lithuanien)",
+ "bg": "Български (Bulgare)",
+ "gl": "Galego (Galicien)",
+ "id": "Bahasa Indonesia (Indonésien)",
+ "ur": "اردو (Ourdou)"
},
"appearance": "Apparence",
"darkMode": {
@@ -173,7 +185,7 @@
},
"label": "Mode sombre"
},
- "review": "Revue d'événements",
+ "review": "Activités",
"explore": "Explorer",
"export": "Exporter",
"user": {
@@ -191,18 +203,18 @@
},
"system": "Système",
"help": "Aide",
- "configurationEditor": "Editeur de configuration",
+ "configurationEditor": "Éditeur de configuration",
"theme": {
"contrast": "Contraste élevé",
"blue": "Bleu",
"green": "Vert",
"nord": "Nord",
"red": "Rouge",
- "default": "Défaut",
+ "default": "Par défaut",
"label": "Thème",
"highcontrast": "Contraste élevé"
},
- "systemMetrics": "Indicateurs systèmes",
+ "systemMetrics": "Métriques du système",
"settings": "Paramètres",
"withSystem": "Système",
"restart": "Redémarrer Frigate",
@@ -216,25 +228,26 @@
"allCameras": "Toutes les caméras",
"title": "Direct"
},
- "uiPlayground": "Gestion de l'interface",
+ "uiPlayground": "Bac à sable de l'interface",
"faceLibrary": "Bibliothèque de visages",
- "languages": "Langues"
+ "languages": "Langues",
+ "classification": "Classification"
},
"toast": {
"save": {
"title": "Enregistrer",
"error": {
"noMessage": "Echec lors de l'enregistrement des changements de configuration",
- "title": "Echec lors de l'enregistrement des changements de configuration : {{errorMessage}}"
+ "title": "Échec de l'enregistrement des changements de configuration : {{errorMessage}}"
}
},
- "copyUrlToClipboard": "Lien copié dans le presse-papier."
+ "copyUrlToClipboard": "URL copiée dans le presse-papiers"
},
"role": {
"title": "Rôle",
"viewer": "Observateur",
"admin": "Administrateur",
- "desc": "Les administrateurs accèdent à l'ensemble des fonctionnalités de l'interface Frigate. Les observateurs sont limités à la consultation des caméras, de la revue d'événements, et à l'historique des enregistrements dans l'interface utilisateur."
+ "desc": "Les administrateurs ont un accès complet à toutes les fonctionnalités de l'interface Frigate. Les observateurs sont limités à la consultation des caméras, des activités, et à l'historique des enregistrements dans l'interface."
},
"pagination": {
"next": {
@@ -254,13 +267,19 @@
"desc": "Page non trouvée"
},
"selectItem": "Sélectionner {{item}}",
+ "readTheDocumentation": "Lire la documentation",
"accessDenied": {
"title": "Accès refusé",
"documentTitle": "Accès refusé - Frigate",
- "desc": "Vous n'avez pas l'autorisation de voir cette page."
+ "desc": "Vous n'avez pas l'autorisation de consulter cette page."
},
"label": {
- "back": "Retour"
+ "back": "Retour",
+ "hide": "Masquer {{item}}",
+ "show": "Afficher {{item}}",
+ "ID": "ID",
+ "none": "Aucun",
+ "all": "Tous"
},
"unit": {
"speed": {
@@ -270,6 +289,26 @@
"length": {
"feet": "pieds",
"meters": "mètres"
+ },
+ "data": {
+ "kbps": "ko/s",
+ "mbps": "Mo/s",
+ "gbps": "Go/s",
+ "kbph": "ko/heure",
+ "mbph": "Mo/heure",
+ "gbph": "Go/heure"
}
+ },
+ "information": {
+ "pixels": "{{area}}px"
+ },
+ "field": {
+ "optional": "Facultatif",
+ "internalID": "L'ID interne utilisée par Frigate dans la configuration et la base de donnêes"
+ },
+ "list": {
+ "two": "{{0}} et {{1}}",
+ "many": "{{items}}, et {{last}}",
+ "separatorWithSpace": ", "
}
}
diff --git a/web/public/locales/fr/components/auth.json b/web/public/locales/fr/components/auth.json
index 65e26691b0..3e600fb715 100644
--- a/web/public/locales/fr/components/auth.json
+++ b/web/public/locales/fr/components/auth.json
@@ -1,15 +1,16 @@
{
"form": {
"password": "Mot de passe",
- "login": "Identifiant",
+ "login": "Connexion",
"user": "Nom d'utilisateur",
"errors": {
"unknownError": "Erreur inconnue. Vérifiez les journaux.",
"webUnknownError": "Erreur inconnue. Vérifiez les journaux de la console.",
- "passwordRequired": "Un mot de passe est requis",
+ "passwordRequired": "Mot de passe est requis",
"loginFailed": "Échec de l'authentification",
- "usernameRequired": "Un nom d'utilisateur est requis",
- "rateLimit": "Nombre d'essais dépassé. Réessayez plus tard."
- }
+ "usernameRequired": "Nom d'utilisateur requis",
+ "rateLimit": "Trop de tentatives. Veuillez réessayer plus tard."
+ },
+ "firstTimeLogin": "Première connexion ? Vos identifiants se trouvent dans les journaux de Frigate."
}
}
diff --git a/web/public/locales/fr/components/camera.json b/web/public/locales/fr/components/camera.json
index 582b211b5a..0e95c70e32 100644
--- a/web/public/locales/fr/components/camera.json
+++ b/web/public/locales/fr/components/camera.json
@@ -1,38 +1,38 @@
{
"group": {
- "edit": "Éditer le groupe de caméras",
- "label": "Groupe de caméras",
+ "edit": "Modifier le groupe de caméras",
+ "label": "Groupes de caméras",
"add": "Ajouter un groupe de caméras",
"delete": {
"label": "Supprimer le groupe de caméras",
"confirm": {
- "title": "Confirmer la suppression",
+ "title": "Confirmez la suppression",
"desc": "Êtes-vous sûr de vouloir supprimer le groupe de caméras {{name}} ?"
}
},
"name": {
- "placeholder": "Saisissez un nom…",
+ "placeholder": "Saisissez un nom.",
"label": "Nom",
"errorMessage": {
"mustLeastCharacters": "Le nom du groupe de caméras doit comporter au moins 2 caractères.",
"exists": "Le nom du groupe de caméras existe déjà.",
- "nameMustNotPeriod": "Le nom de groupe de caméras ne doit pas contenir de période.",
- "invalid": "Nom de groupe de caméras invalide."
+ "nameMustNotPeriod": "Le nom de groupe de caméras ne doit pas contenir de point.",
+ "invalid": "Nom de groupe de caméras invalide"
}
},
"cameras": {
"label": "Caméras",
- "desc": "Sélectionner les caméras pour ce groupe."
+ "desc": "Sélectionnez les caméras pour ce groupe."
},
"success": "Le groupe de caméras ({{name}}) a été enregistré.",
"icon": "Icône",
"camera": {
"setting": {
- "label": "Paramètres de flux de caméra",
- "title": "Paramètres de flux de {{cameraName}}",
- "audioIsUnavailable": "L'audio n'est pas disponible pour ce flux",
- "audioIsAvailable": "L'audio est disponible pour ce flux",
- "desc": "Modifie les options du flux temps réel pour le tableau de bord de ce groupe de caméras. Ces paramètres sont spécifiques à un périphérique et/ou navigateur.",
+ "label": "Paramètres du flux de la caméra",
+ "title": "Paramètres du flux de {{cameraName}}",
+ "audioIsUnavailable": "L'audio n'est pas disponible pour ce flux.",
+ "audioIsAvailable": "L'audio est disponible pour ce flux.",
+ "desc": "Modifier les options du flux temps réel pour le tableau de bord de ce groupe de caméras. Ces paramètres sont spécifiques à l'appareil ou au navigateur.",
"audio": {
"tips": {
"document": "Lire la documentation ",
@@ -40,33 +40,34 @@
}
},
"streamMethod": {
- "label": "Méthode de streaming",
+ "label": "Méthode de diffusion",
"method": {
"noStreaming": {
- "label": "Pas de diffusion",
- "desc": "Les images provenant de la caméra ne seront mises à jour qu'une fois par minute et il n'y aura pas de diffusion en direct."
+ "label": "Aucune diffusion",
+ "desc": "Les images provenant de la caméra ne seront mises à jour qu'une fois par minute et il n'y aura aucune diffusion en direct."
},
"smartStreaming": {
- "label": "Diffusion intelligente (recommandé)",
- "desc": "La diffusion intelligente mettra à jour les images de la caméra une fois par minute lorsqu'aucune activité n'est détectée afin de conserver la bande-passante et les ressources. Quand une activité est détectée, le flux bascule automatiquement en diffusion temps réel."
+ "label": "Diffusion intelligente (recommandée)",
+ "desc": "La diffusion intelligente mettra à jour l'image de la caméra une fois par minute lorsqu'aucune activité n'est détectée, afin de préserver la bande passante et les ressources. Quand une activité est détectée, l'image bascule automatiquement en flux temps réel."
},
"continuousStreaming": {
"label": "Diffusion en continu",
"desc": {
"title": "L'image de la caméra sera toujours un flux temps réel lorsqu'elle est visible dans le tableau de bord, même si aucune activité n'est détectée.",
- "warning": "La diffusion en continu peut engendrer une bande-passante élevée et des problèmes de performance. A utiliser avec précaution."
+ "warning": "La diffusion en continu peut entraîner une consommation de bande passante élevée et des problèmes de performance. À utiliser avec prudence."
}
}
},
- "placeholder": "Choisissez une méthode de diffusion"
+ "placeholder": "Choisissez une méthode de diffusion."
},
"compatibilityMode": {
"label": "Mode de compatibilité",
- "desc": "Activer cette option uniquement si votre flux temps réel affiche des erreurs chromatiques et a une ligne diagonale sur le côté droit de l'image."
+ "desc": "Activez cette option uniquement si votre flux temps réel affiche des artefacts chromatiques et présente une ligne diagonale sur le côté droit de l'image."
},
"stream": "Flux",
- "placeholder": "Choisissez un flux"
- }
+ "placeholder": "Choisissez un flux."
+ },
+ "birdseye": "Birdseye"
}
},
"debug": {
@@ -79,7 +80,7 @@
"label": "Paramètres",
"hideOptions": "Masquer les options"
},
- "boundingBox": "Boîte de délimitation",
+ "boundingBox": "Cadre de détection",
"zones": "Zones",
"regions": "Régions"
}
diff --git a/web/public/locales/fr/components/dialog.json b/web/public/locales/fr/components/dialog.json
index d92e3ff724..f0b542b707 100644
--- a/web/public/locales/fr/components/dialog.json
+++ b/web/public/locales/fr/components/dialog.json
@@ -2,8 +2,8 @@
"restart": {
"title": "Êtes-vous sûr de vouloir redémarrer Frigate ?",
"restarting": {
- "title": "Frigate redémarre",
- "content": "Actualisation de la page dans {{countdown}} secondes.",
+ "title": "Redémarrage de Frigate en cours",
+ "content": "Cette page sera rechargée dans {{countdown}} secondes.",
"button": "Forcer l'actualisation maintenant"
},
"button": "Redémarrer"
@@ -31,10 +31,10 @@
"submitted": "Soumis"
},
"question": {
- "label": "Confirmez ce libellé pour Frigate+",
- "ask_an": "Est-ce que cet objet est un(e) {{label}} ?",
- "ask_a": "Est-ce que cet objet est un(e) {{label}} ?",
- "ask_full": "Est-ce-que cet objet est un(e) {{translatedLabel}} ?"
+ "label": "Confirmez cette étiquette pour Frigate+.",
+ "ask_an": "Cet objet est-il un(e) {{label}} ?",
+ "ask_a": "Cet objet est-il un(e) {{label}} ?",
+ "ask_full": "Cet objet est-il un(e) {{translatedLabel}} ?"
}
}
},
@@ -61,25 +61,26 @@
"selectOrExport": "Sélectionner ou exporter",
"toast": {
"error": {
- "failed": "Échec du démarrage de l'export : {{error}}",
- "endTimeMustAfterStartTime": "L'heure de fin doit être postérieure à l'heure de début",
- "noVaildTimeSelected": "La plage horaire sélectionnée n'est pas valide"
+ "failed": "Échec du démarrage de l'exportation : {{error}}",
+ "endTimeMustAfterStartTime": "L'heure de fin doit être postérieure à l'heure de début.",
+ "noVaildTimeSelected": "La plage horaire sélectionnée n'est pas valide."
},
- "success": "Exportation démarrée avec succès. Consultez le fichier dans le dossier /exports."
+ "success": "Exportation démarrée avec succès. Consultez le fichier sur la page des exportations.",
+ "view": "Vue"
},
"select": "Sélectionner",
"name": {
- "placeholder": "Nommer l'export"
+ "placeholder": "Nommer l'exportation"
},
"export": "Exporter",
"fromTimeline": {
- "saveExport": "Enregistrer l'export",
- "previewExport": "Prévisualiser l'export"
+ "saveExport": "Enregistrer l'exportation",
+ "previewExport": "Aperçu de l'exportation"
}
},
"search": {
"saveSearch": {
- "desc": "Donnez un nom à cette recherche enregistrée.",
+ "desc": "Saisissez un nom pour cette recherche enregistrée.",
"label": "Enregistrer la recherche",
"success": "La recherche ({{searchName}}) a été enregistrée.",
"button": {
@@ -88,7 +89,7 @@
}
},
"overwrite": "{{searchName}} existe déjà. L'enregistrement écrasera la recherche existante.",
- "placeholder": "Saisissez un nom pour votre recherche"
+ "placeholder": "Saisissez un nom pour votre recherche."
}
},
"streaming": {
@@ -102,25 +103,34 @@
},
"showStats": {
"label": "Afficher les statistiques du flux",
- "desc": "Activez cette option pour montrer les statistiques de diffusion en incrustation sur le flux vidéo de la caméra."
+ "desc": "Activez cette option pour afficher les statistiques de diffusion en incrustation sur le flux vidéo de la caméra."
},
"debugView": "Affichage de débogage"
},
"recording": {
"confirmDelete": {
"desc": {
- "selected": "Êtes-vous sûr(e) de vouloir supprimer toutes les vidéos enregistrées associées à cet élément de la revue d'événements ?
Maintenez la touche Maj enfoncée pour éviter cette boîte de dialogue à l'avenir."
+ "selected": "Êtes-vous sûr(e) de vouloir supprimer toutes les vidéos enregistrées associées à cette activité ?
Maintenez la touche Maj enfoncée pour éviter cette boîte de dialogue à l'avenir."
},
"title": "Confirmer la suppression",
"toast": {
- "success": "Les vidéos associées aux éléments de revue d'événements sélectionnés ont été supprimées.",
+ "success": "Les vidéos associées aux activités sélectionnées ont été supprimées.",
"error": "Échec de la suppression : {{error}}"
}
},
"button": {
"export": "Exporter",
- "markAsReviewed": "Marquer comme passé en revue",
- "deleteNow": "Supprimer maintenant"
+ "markAsReviewed": "Marquer comme traité",
+ "deleteNow": "Supprimer maintenant",
+ "markAsUnreviewed": "Marquer comme non traité"
}
+ },
+ "imagePicker": {
+ "selectImage": "Sélectionnez une vignette d'objet suivi.",
+ "search": {
+ "placeholder": "Rechercher par étiquette ou sous-étiquette"
+ },
+ "noImages": "Aucune vignette trouvée pour cette caméra",
+ "unknownLabel": "Image de déclencheur enregistrée"
}
}
diff --git a/web/public/locales/fr/components/filter.json b/web/public/locales/fr/components/filter.json
index 567cf81f53..0af924f8b2 100644
--- a/web/public/locales/fr/components/filter.json
+++ b/web/public/locales/fr/components/filter.json
@@ -1,13 +1,13 @@
{
"labels": {
- "label": "Libellés",
+ "label": "Étiquettes",
"all": {
- "title": "Tous les libellés",
- "short": "Libellés"
+ "title": "Toutes les étiquettes",
+ "short": "Étiquettes"
},
"count": "{{count}} Étiquettes",
- "count_one": "{{count}} libellé",
- "count_other": "{{count}} libellés"
+ "count_one": "{{count}} étiquette",
+ "count_other": "{{count}} étiquettes"
},
"filter": "Filtre",
"zones": {
@@ -22,16 +22,16 @@
"title": "Toutes les dates",
"short": "Dates"
},
- "selectPreset": "Sélectionnez un préréglage…"
+ "selectPreset": "Sélectionnez un préréglage."
},
"more": "Plus de filtres",
"reset": {
"label": "Réinitialiser les filtres aux valeurs par défaut"
},
- "timeRange": "Plage de temps",
+ "timeRange": "Plage horaire",
"subLabels": {
- "label": "Sous-libellés",
- "all": "Tous les sous-libellés"
+ "label": "Sous-étiquettes",
+ "all": "Toutes les sous-étiquettes"
},
"score": "Score",
"estimatedSpeed": "Vitesse estimée ({{unit}})",
@@ -50,9 +50,9 @@
"tips": "Vous devez d'abord filtrer les objets suivis qui ont un instantané.
Les objets suivis sans instantané ne peuvent pas être soumis à Frigate+.",
"label": "Soumis à Frigate+"
},
- "hasVideoClip": "A un clip vidéo",
- "hasSnapshot": "A un instantané",
- "label": "Fonctionnalités"
+ "hasVideoClip": "Avec une séquence vidéo",
+ "hasSnapshot": "Avec un instantané",
+ "label": "Caractéristiques"
},
"explore": {
"settings": {
@@ -61,7 +61,7 @@
"title": "Vue par défaut",
"summary": "Résumé",
"unfilteredGrid": "Grille non filtrée",
- "desc": "Lorsqu'aucun filtre n'est sélectionné, affiche un résumé des objets suivis les plus récents par libellé, ou affiche une grille non filtrée."
+ "desc": "Lorsqu'aucun filtre n'est sélectionné, afficher un résumé des objets suivis les plus récents par étiquette, ou afficher une grille non filtrée"
},
"gridColumns": {
"desc": "Sélectionner le nombre de colonnes dans la vue grille.",
@@ -70,7 +70,7 @@
"searchSource": {
"label": "Source de recherche",
"options": {
- "thumbnailImage": "Image de miniature",
+ "thumbnailImage": "Miniature",
"description": "Description"
},
"desc": "Choisissez si vous souhaitez rechercher les miniatures ou les descriptions de vos objets suivis."
@@ -83,7 +83,7 @@
}
},
"review": {
- "showReviewed": "Montrer les éléments passés en revue"
+ "showReviewed": "Afficher les activités traitées"
},
"cameras": {
"label": "Filtre des caméras",
@@ -101,27 +101,41 @@
"title": "Chargement",
"desc": "Lorsque le volet de journalisation est défilé jusqu'en bas, les nouveaux enregistrements s'affichent automatiquement au fur et à mesure qu'ils sont ajoutés."
},
- "label": "Niveau de journalisation du filtre",
- "disableLogStreaming": "Désactiver la diffusion des journaux",
+ "label": "Filtrer par niveau de journal",
+ "disableLogStreaming": "Désactiver le flux des journaux",
"allLogs": "Tous les journaux"
},
"recognizedLicensePlates": {
- "placeholder": "Tapez pour rechercher des plaques d'immatriculation…",
- "noLicensePlatesFound": "Aucune plaque d'immatriculation trouvée.",
+ "placeholder": "Tapez pour rechercher des plaques d'immatriculation.",
+ "noLicensePlatesFound": "Aucune plaque d'immatriculation trouvée",
"loading": "Chargement des plaques d'immatriculation reconnues…",
"title": "Plaques d'immatriculation reconnues",
"loadFailed": "Échec du chargement des plaques d'immatriculation reconnues.",
- "selectPlatesFromList": "Sélectionner une ou plusieurs plaques d'immatriculation dans la liste."
+ "selectPlatesFromList": "Sélectionnez une ou plusieurs plaques d'immatriculation dans la liste.",
+ "selectAll": "Tout sélectionner",
+ "clearAll": "Tout désélectionner"
},
"trackedObjectDelete": {
"title": "Confirmer la suppression",
"toast": {
- "success": "Les objets suivis ont été supprimés avec succès.",
+ "success": "Objets suivis supprimés avec succès.",
"error": "Échec de la suppression des objets suivis : {{errorMessage}}"
},
- "desc": "Supprimer ces objets suivis {{objectLength}} retirera l'instantané, les représentations numériques enregistrées et les entrées du cycle de vie de l'objet associées. Les séquences enregistrées de ces objets suivis dans la vue Historique NE seront PAS supprimées.
Voulez-vous vraiment continuer ?
Maintenez la touche Maj enfoncée pour ignorer cette boîte de dialogue à l'avenir."
+ "desc": "La suppression de ces {{objectLength}} objets suivis retirera l'instantané, les embeddings enregistrés et les entrées du cycle de vie de l'objet associées. Les séquences enregistrées de ces objets suivis dans la vue Chronologie NE seront PAS supprimées.
Voulez-vous vraiment continuer?
Maintenez la touche Maj enfoncée pour ignorer cette boîte de dialogue à l'avenir."
},
"zoneMask": {
"filterBy": "Filtrer par masque de zone"
+ },
+ "classes": {
+ "label": "Classes",
+ "all": {
+ "title": "Toutes les classes"
+ },
+ "count_one": "{{count}} classe",
+ "count_other": "{{count}} classes"
+ },
+ "attributes": {
+ "label": "Attributs de classification",
+ "all": "Tous les attributs"
}
}
diff --git a/web/public/locales/fr/components/icons.json b/web/public/locales/fr/components/icons.json
index f713f2f52a..fd5f1f8f68 100644
--- a/web/public/locales/fr/components/icons.json
+++ b/web/public/locales/fr/components/icons.json
@@ -1,8 +1,8 @@
{
"iconPicker": {
"search": {
- "placeholder": "Rechercher une icône…"
+ "placeholder": "Rechercher une icône"
},
- "selectIcon": "Sélectionnez une icône"
+ "selectIcon": "Sélectionnez une icône."
}
}
diff --git a/web/public/locales/fr/components/input.json b/web/public/locales/fr/components/input.json
index 36874788e2..0d8130cf50 100644
--- a/web/public/locales/fr/components/input.json
+++ b/web/public/locales/fr/components/input.json
@@ -3,7 +3,7 @@
"downloadVideo": {
"label": "Télécharger la vidéo",
"toast": {
- "success": "Le téléchargement de la vidéo de votre élément de la revue d'événements a commencé."
+ "success": "Le téléchargement de la vidéo a commencé."
}
}
}
diff --git a/web/public/locales/fr/components/player.json b/web/public/locales/fr/components/player.json
index 7dd7346e5a..6450c12617 100644
--- a/web/public/locales/fr/components/player.json
+++ b/web/public/locales/fr/components/player.json
@@ -10,8 +10,8 @@
"title": "Flux hors ligne",
"desc": "Aucune image n'a été reçue sur le flux de détection de la caméra {{cameraName}}. Vérifiez le journal d'erreurs."
},
- "livePlayerRequiredIOSVersion": "iOS 17.1 ou une version supérieure est requis pour ce type de flux en direct.",
- "cameraDisabled": "La caméra est désactivée",
+ "livePlayerRequiredIOSVersion": "iOS 17.1 ou une version supérieure est requise pour ce type de flux en direct.",
+ "cameraDisabled": "La caméra est désactivée.",
"stats": {
"streamType": {
"title": "Type de flux :",
@@ -37,7 +37,7 @@
"title": "Images perdues :"
},
"decodedFrames": "Images décodées :",
- "droppedFrameRate": "Proportion d'images perdues :",
+ "droppedFrameRate": "Taux d'images perdues :",
"totalFrames": "Total images :"
},
"toast": {
diff --git a/web/public/locales/fr/objects.json b/web/public/locales/fr/objects.json
index d959a8e425..9c9d5a6cf3 100644
--- a/web/public/locales/fr/objects.json
+++ b/web/public/locales/fr/objects.json
@@ -9,17 +9,17 @@
"boat": "Bateau",
"traffic_light": "Feu de circulation",
"fire_hydrant": "Bouche d'incendie",
- "street_sign": "Plaque de rue",
+ "street_sign": "Panneau de signalisation",
"parking_meter": "Parcmètre",
"bench": "Banc",
"bird": "Oiseau",
- "cat": "chat",
+ "cat": "Chat",
"stop_sign": "Panneau de stop",
"dog": "Chien",
"horse": "Cheval",
"sheep": "Mouton",
"cow": "Vache",
- "elephant": "Eléphant",
+ "elephant": "Éléphant",
"bear": "Ours",
"zebra": "Zèbre",
"hat": "Chapeau",
@@ -27,10 +27,10 @@
"suitcase": "Valise",
"frisbee": "Frisbee",
"skis": "Skis",
- "snowboard": "Surf des neiges",
- "sports_ball": "Ballon des sports",
+ "snowboard": "Snowboard",
+ "sports_ball": "Ballon de sport",
"kite": "Cerf-volant",
- "baseball_bat": "Batte de base-ball",
+ "baseball_bat": "Batte de baseball",
"umbrella": "Parapluie",
"giraffe": "Girafe",
"eye_glasses": "Lunettes",
@@ -42,7 +42,7 @@
"baseball_glove": "Gant de baseball",
"skateboard": "Skateboard",
"surfboard": "Planche de surf",
- "tennis_racket": "Raquette de Tennis",
+ "tennis_racket": "Raquette de tennis",
"plate": "Assiette",
"cup": "Tasse",
"banana": "Banane",
@@ -63,7 +63,7 @@
"toaster": "Grille-pain",
"book": "Livre",
"teddy_bear": "Ours en peluche",
- "blender": "Mixer",
+ "blender": "Mixeur",
"toothbrush": "Brosse à dents",
"hair_brush": "Brosse à cheveux",
"vehicle": "Véhicule",
@@ -92,7 +92,7 @@
"refrigerator": "Réfrigérateur",
"bark": "Aboiement",
"oven": "Four",
- "scissors": "Paire de ciseaux",
+ "scissors": "Ciseaux",
"toilet": "Toilettes",
"carrot": "Carotte",
"bed": "Lit",
@@ -100,11 +100,11 @@
"fork": "Fourchette",
"squirrel": "Écureuil",
"microwave": "Micro-ondes",
- "hair_dryer": "Sèche cheveux",
+ "hair_dryer": "Sèche-cheveux",
"bowl": "Bol",
"spoon": "Cuillère",
"sandwich": "Sandwich",
- "sink": "Lavabo",
+ "sink": "Évier",
"broccoli": "Brocoli",
"knife": "Couteau",
"nzpost": "NZPost",
diff --git a/web/public/locales/fr/views/classificationModel.json b/web/public/locales/fr/views/classificationModel.json
new file mode 100644
index 0000000000..0926f4cd68
--- /dev/null
+++ b/web/public/locales/fr/views/classificationModel.json
@@ -0,0 +1,193 @@
+{
+ "documentTitle": "Modèles de classification - Frigate",
+ "button": {
+ "deleteClassificationAttempts": "Supprimer les images de classification",
+ "renameCategory": "Renommer la classe",
+ "deleteCategory": "Supprimer la classe",
+ "deleteImages": "Supprimer les images",
+ "trainModel": "Entraîner le modèle",
+ "addClassification": "Ajouter une classification",
+ "deleteModels": "Supprimer les modèles",
+ "editModel": "Modifier le modèle"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Classe supprimée",
+ "deletedImage": "Images supprimées",
+ "categorizedImage": "Image classifiée avec succès",
+ "trainedModel": "Modèle entraîné avec succès.",
+ "trainingModel": "L'entraînement du modèle a démarré avec succès.",
+ "deletedModel_one": "{{count}} modèle supprimé avec succès",
+ "deletedModel_many": "{{count}} modèles supprimés avec succès",
+ "deletedModel_other": "{{count}} modèles supprimés avec succès",
+ "updatedModel": "Configuration du modèle mise à jour avec succès",
+ "renamedCategory": "Classe renommée en {{name}} avec succès"
+ },
+ "error": {
+ "deleteImageFailed": "Échec de la suppression : {{errorMessage}}",
+ "deleteCategoryFailed": "Échec de la suppression de la classe : {{errorMessage}}",
+ "categorizeFailed": "Échec de la catégorisation de l'image : {{errorMessage}}",
+ "trainingFailed": "L'entraînement du modèle a échoué. Consultez les journaux de Frigate pour plus de détails.",
+ "deleteModelFailed": "Impossible de supprimer le modèle : {{errorMessage}}",
+ "updateModelFailed": "Impossible de mettre à jour le modèle : {{errorMessage}}",
+ "renameCategoryFailed": "Impossible de renommer la classe : {{errorMessage}}",
+ "trainingFailedToStart": "Impossible de démarrer l'entraînement du modèle : {{errorMessage}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Supprimer la classe",
+ "desc": "Êtes-vous sûr de vouloir supprimer la classe {{name}} ? Cette action supprimera définitivement toutes les images associées et nécessitera un réentraînement du modèle.",
+ "minClassesTitle": "Impossible de supprimer la classe",
+ "minClassesDesc": "Un modèle de classification doit avoir au moins 2 classes. Ajoutez une autre classe avant de supprimer celle-ci."
+ },
+ "deleteDatasetImages": {
+ "title": "Supprimer les images du jeu de données",
+ "desc_one": "Êtes-vous sûr de vouloir supprimer {{count}} image du jeu de données {{dataset}} ? Cette action est irréversible et nécessitera un réentraînement du modèle.",
+ "desc_many": "Êtes-vous sûr de vouloir supprimer {{count}} images du jeu de données {{dataset}} ? Cette action est irréversible et nécessitera un réentraînement du modèle.",
+ "desc_other": "Êtes-vous sûr de vouloir supprimer {{count}} images du jeu de données {{dataset}} ? Cette action est irréversible et nécessitera un réentraînement du modèle."
+ },
+ "deleteTrainImages": {
+ "title": "Supprimer les images d'entraînement",
+ "desc_one": "Êtes-vous sûr de vouloir supprimer {{count}} image ? Cette action est irréversible.",
+ "desc_many": "Êtes-vous sûr de vouloir supprimer {{count}} images ? Cette action est irréversible.",
+ "desc_other": "Êtes-vous sûr de vouloir supprimer {{count}} images ? Cette action est irréversible."
+ },
+ "renameCategory": {
+ "title": "Renommer la classe",
+ "desc": "Saisissez un nouveau nom pour {{name}}. Vous devrez réentraîner le modèle pour que le changement de nom prenne effet."
+ },
+ "description": {
+ "invalidName": "Nom invalide. Les noms ne peuvent contenir que des lettres, des chiffres, des espaces, des apostrophes, des traits de soulignement et des tirets."
+ },
+ "train": {
+ "title": "Classifications récentes",
+ "aria": "Sélectionner des classifications récentes",
+ "titleShort": "Récent"
+ },
+ "categories": "Classes",
+ "createCategory": {
+ "new": "Créer une nouvelle classe"
+ },
+ "categorizeImageAs": "Classifier comme :",
+ "categorizeImage": "Classifier l'image",
+ "noModels": {
+ "object": {
+ "title": "Aucun modèle de classification d'objets",
+ "description": "Créer un modèle personnalisé pour classifier les objets détectés",
+ "buttonText": "Créer un modèle d'objets"
+ },
+ "state": {
+ "title": "Aucun modèle de classification d'états",
+ "description": "Créer un modèle personnalisé pour surveiller et classifier les changements d'état dans des zones de caméra spécifiques",
+ "buttonText": "Créer un modèle d'états"
+ }
+ },
+ "wizard": {
+ "title": "Créer une nouvelle classification",
+ "steps": {
+ "nameAndDefine": "Nom et définition",
+ "stateArea": "Zone d'état",
+ "chooseExamples": "Choisir des exemples"
+ },
+ "step1": {
+ "description": "Les modèles d'état surveillent des zones de caméra fixes pour détecter des changements (par ex., porte ouverte/fermée). Les modèles d'objets ajoutent des classifications aux objets détectés (par ex., animaux connus, livreurs, etc.).",
+ "name": "Nom",
+ "namePlaceholder": "Saisissez un nom de modèle.",
+ "type": "Type",
+ "typeState": "État",
+ "typeObject": "Objet",
+ "objectLabel": "Étiquette d'objet",
+ "objectLabelPlaceholder": "Sélectionnez un type d'objet.",
+ "classificationType": "Type de classification",
+ "classificationTypeTip": "En savoir plus sur les types de classification",
+ "classificationTypeDesc": "Les sous-étiquettes ajoutent du texte supplémentaire à l'étiquette d'objet (par ex., « Personne : UPS »). Les attributs sont des métadonnées recherchables stockées séparément dans les métadonnées de l'objet.",
+ "classificationSubLabel": "Sous-étiquette",
+ "classificationAttribute": "Attribut",
+ "classes": "Classes",
+ "classesTip": "En savoir plus sur les classes",
+ "classesStateDesc": "Définissez les différents états que votre zone de caméra peut avoir. Par exemple : « ouvert » et « fermé » pour une porte de garage.",
+ "classesObjectDesc": "Définissez les différentes catégories pour classifier les objets détectés. Par exemple : « livreur », « résident », « inconnu » pour la classification des personnes.",
+ "classPlaceholder": "Saisissez le nom de la classe.",
+ "errors": {
+ "nameRequired": "Le nom du modèle est requis.",
+ "nameLength": "Le nom du modèle ne doit pas dépasser 64 caractères.",
+ "nameOnlyNumbers": "Le nom du modèle ne peut pas contenir uniquement des chiffres.",
+ "classRequired": "Au moins une classe est requise.",
+ "classesUnique": "Les noms de classe doivent être uniques.",
+ "stateRequiresTwoClasses": "Les modèles d'état nécessitent au moins deux classes.",
+ "objectLabelRequired": "Veuillez sélectionner une étiquette d'objet.",
+ "objectTypeRequired": "Veuillez sélectionner un type de classification.",
+ "noneNotAllowed": "La classe 'aucun' n'est pas autorisée."
+ },
+ "states": "États"
+ },
+ "step2": {
+ "description": "Sélectionnez les caméras et définissez la zone à surveiller pour chaque caméra. Le modèle classifiera l'état de ces zones.",
+ "cameras": "Caméras",
+ "selectCamera": "Sélectionner une caméra",
+ "noCameras": "Cliquez sur + pour ajouter des caméras.",
+ "selectCameraPrompt": "Sélectionnez une caméra dans la liste pour définir sa zone de surveillance."
+ },
+ "step3": {
+ "selectImagesPrompt": "Sélectionner toutes les images contenant : {{className}}",
+ "selectImagesDescription": "Cliquez sur les images pour les sélectionner. Cliquez sur Continuer lorsque vous avez terminé avec cette classe.",
+ "generating": {
+ "title": "Génération d'images d'exemple en cours",
+ "description": "Frigate récupère des images représentatives à partir de vos enregistrements. Cela peut prendre un moment..."
+ },
+ "training": {
+ "title": "Entraînement du modèle",
+ "description": "Votre modèle est en cours d'entraînement en arrière-plan. Fermez cette boîte de dialogue. Votre modèle se lancera dès que l'entraînement sera terminé."
+ },
+ "retryGenerate": "Réessayer la génération",
+ "noImages": "Aucune image d'exemple générée",
+ "classifying": "Classification et entraînement en cours...",
+ "trainingStarted": "Entraînement démarré avec succès",
+ "errors": {
+ "noCameras": "Aucune caméra n'est configurée.",
+ "noObjectLabel": "Aucune étiquette d'objet sélectionnée",
+ "generateFailed": "Échec de la génération des exemples : {{error}}",
+ "generationFailed": "Échec de la génération. Veuillez réessayer.",
+ "classifyFailed": "Échec de la classification des images : {{error}}"
+ },
+ "generateSuccess": "Génération des images d'exemple réussie",
+ "allImagesRequired_one": "Veuillez classifier toutes les images. {{count}} image restante.",
+ "allImagesRequired_many": "Veuillez classifier toutes les images. {{count}} images restantes.",
+ "allImagesRequired_other": "Veuillez classifier toutes les images. {{count}} images restantes.",
+ "modelCreated": "Modèle créé avec succès. Utilisez la vue Classifications récentes pour ajouter des images pour les états manquants, puis entraînez le modèle.",
+ "missingStatesWarning": {
+ "title": "Exemples d'états manquants",
+ "description": "Pour des résultats optimaux, il est recommandé de sélectionner des exemples pour tous les états. Vous pouvez continuer sans cette étape, mais le modèle ne sera entraîné que lorsque chaque état disposera d'images. Continuez, puis utilisez la vue Classifications récentes pour classer les images manquantes et lancer l'entraînement."
+ }
+ }
+ },
+ "deleteModel": {
+ "title": "Supprimer le modèle de classification",
+ "single": "Voulez-vous vraiment supprimer {{name}} ? Cela supprimera définitivement toutes les données associées, y compris les images et les données d'entraînement. Cette action est irréversible.",
+ "desc_one": "Voulez-vous vraiment supprimer {{count}} modèle ? Cela supprimera définitivement toutes les données associées, y compris les images et les données d'entraînement. Cette action est irréversible.",
+ "desc_many": "Voulez-vous vraiment supprimer {{count}} modèles ? Cela supprimera définitivement toutes les données associées, y compris les images et les données d'entraînement. Cette action est irréversible.",
+ "desc_other": "Voulez-vous vraiment supprimer {{count}} modèles ? Cela supprimera définitivement toutes les données associées, y compris les images et les données d'entraînement. Cette action est irréversible."
+ },
+ "menu": {
+ "objects": "Objets",
+ "states": "États"
+ },
+ "details": {
+ "scoreInfo": "Le score représente la moyenne de la confiance de classification pour toutes les détections de cet objet.",
+ "none": "Aucun",
+ "unknown": "Inconnu"
+ },
+ "edit": {
+ "title": "Modifier le modèle de classification",
+ "descriptionState": "Modifier les classes pour ce modèle de classification d'état. Les modifications nécessiteront un réentraînement du modèle.",
+ "descriptionObject": "Modifier le type d'objet et le type de classification pour ce modèle de classification d'objet",
+ "stateClassesInfo": "Note : La modification des classes d'état nécessite un réentraînement du modèle avec les classes mises à jour."
+ },
+ "tooltip": {
+ "trainingInProgress": "Modèle en cours d'entraînement",
+ "noNewImages": "Aucune nouvelle image pour l'entraînement. Veuillez d'abord classifier plus d'images dans le jeu de données.",
+ "modelNotReady": "Le modèle n'est pas prêt pour l'entraînement.",
+ "noChanges": "Aucune modification du jeu de données depuis le dernier entraînement"
+ },
+ "none": "Aucun"
+}
diff --git a/web/public/locales/fr/views/configEditor.json b/web/public/locales/fr/views/configEditor.json
index 5f88fb94fa..0ab9b2c40d 100644
--- a/web/public/locales/fr/views/configEditor.json
+++ b/web/public/locales/fr/views/configEditor.json
@@ -2,7 +2,7 @@
"configEditor": "Éditeur de configuration",
"documentTitle": "Éditeur de configuration - Frigate",
"copyConfig": "Copier la configuration",
- "saveOnly": "Enregistrer seulement",
+ "saveOnly": "Enregistrer uniquement",
"saveAndRestart": "Enregistrer et redémarrer",
"toast": {
"success": {
@@ -12,5 +12,7 @@
"savingError": "Erreur lors de l'enregistrement de la configuration"
}
},
- "confirm": "Quitter sans enregistrer ?"
+ "confirm": "Quitter sans enregistrer ?",
+ "safeConfigEditor": "Éditeur de configuration (mode sans échec)",
+ "safeModeDescription": "Frigate est en mode sans échec en raison d'une erreur de validation de la configuration."
}
diff --git a/web/public/locales/fr/views/events.json b/web/public/locales/fr/views/events.json
index d8d58332ce..833dc4b2a4 100644
--- a/web/public/locales/fr/views/events.json
+++ b/web/public/locales/fr/views/events.json
@@ -2,22 +2,22 @@
"detections": "Détections",
"motion": {
"label": "Mouvement",
- "only": "Mouvement seulement"
+ "only": "Mouvement uniquement"
},
"alerts": "Alertes",
"allCameras": "Toutes les caméras",
"empty": {
- "alert": "Il n'y a aucune alerte à passer en revue",
- "detection": "Il n'y a aucune détection à passer en revue",
+ "alert": "Aucune alerte à traiter",
+ "detection": "Aucune détection à traiter",
"motion": "Aucune donnée de mouvement trouvée"
},
"timeline": "Chronologie",
"events": {
"label": "Événements",
"aria": "Sélectionner les événements",
- "noFoundForTimePeriod": "Aucun événement trouvé pour cette plage de temps."
+ "noFoundForTimePeriod": "Aucun événement n'a été trouvé pour cette plage de temps."
},
- "documentTitle": "Revue d'événements -Frigate",
+ "documentTitle": "Activités - Frigate",
"recordings": {
"documentTitle": "Enregistrements - Frigate"
},
@@ -25,15 +25,40 @@
"last24Hours": "Dernières 24 heures"
},
"timeline.aria": "Sélectionner une chronologie",
- "markAsReviewed": "Marqué comme passé en revue",
+ "markAsReviewed": "Marquer comme traitê",
"newReviewItems": {
- "button": "Nouveaux éléments à passer en revue",
- "label": "Afficher les nouveaux éléments de la revue d'événements"
+ "button": "Nouvelles activités à traiter",
+ "label": "Afficher les nouvelles activités"
},
"camera": "Caméra",
- "markTheseItemsAsReviewed": "Marquer ces éléments comme passés en revue",
+ "markTheseItemsAsReviewed": "Marquer ces activités comme traitées",
"selected": "{{count}} sélectionné(s)",
"selected_other": "{{count}} sélectionné(s)",
"selected_one": "{{count}} sélectionné(s)",
- "detected": "détecté"
+ "detected": "détecté",
+ "suspiciousActivity": "Activité suspecte",
+ "threateningActivity": "Activité menaçante",
+ "detail": {
+ "noDataFound": "Aucun détail à traiter",
+ "aria": "Activer/désactiver la vue détaillée",
+ "trackedObject_one": "{{count}} objet",
+ "trackedObject_other": "{{count}} objets",
+ "noObjectDetailData": "Aucun détail d'objet disponible",
+ "label": "Détail",
+ "settings": "Paramètres de la vue Détail",
+ "alwaysExpandActive": {
+ "title": "Toujours développer l'élément actif",
+ "desc": "Toujours développer les détails de l'objet pour l'activité en cours"
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Point suivi",
+ "clickToSeek": "Cliquez pour atteindre ce moment."
+ },
+ "zoomIn": "Zoom avant",
+ "zoomOut": "Zoom arrière",
+ "normalActivity": "Normal",
+ "needsReview": "À traiter",
+ "securityConcern": "Problème de sécurité",
+ "select_all": "Tous"
}
diff --git a/web/public/locales/fr/views/explore.json b/web/public/locales/fr/views/explore.json
index b42cb5f38a..652c8bf565 100644
--- a/web/public/locales/fr/views/explore.json
+++ b/web/public/locales/fr/views/explore.json
@@ -5,17 +5,17 @@
"title": "L'exploration est indisponible",
"embeddingsReindexing": {
"estimatedTime": "Temps restant estimé :",
- "finishingShortly": "Termine bientôt",
- "context": "L'exploration peut être utilisée une fois la réindexation des représentations numériques des objets suivis terminée.",
+ "finishingShortly": "Bientôt fini",
+ "context": "L'exploration peut être utilisée une fois la réindexation des embeddings des objets suivis terminée.",
"startingUp": "Démarrage…",
"step": {
- "thumbnailsEmbedded": "Miniatures intégrées : ",
- "descriptionsEmbedded": "Descriptions intégrées : ",
+ "thumbnailsEmbedded": "Embeddings des miniatures : ",
+ "descriptionsEmbedded": "Embeddings des descriptions : ",
"trackedObjectsProcessed": "Objets suivis traités : "
}
},
"downloadingModels": {
- "context": "Frigate télécharge les modèles de représentations numériques nécessaires pour prendre en charge la fonctionnalité de recherche sémantique. Cette opération peut prendre plusieurs minutes selon la vitesse de votre connexion réseau.",
+ "context": "Frigate télécharge les modèles d'embeddings nécessaires pour prendre en charge la fonctionnalité de recherche sémantique. Cette opération peut prendre plusieurs minutes selon la vitesse de votre connexion réseau.",
"setup": {
"visionModelFeatureExtractor": "Extracteur de caractéristiques de modèle de vision",
"textTokenizer": "Tokeniseur de texte",
@@ -24,48 +24,52 @@
},
"tips": {
"documentation": "Lire la documentation",
- "context": "Une fois les modèles téléchargés, il est conseillé de réindexer vos objets suivis."
+ "context": "Une fois les modèles téléchargés, il est conseillé de réindexer les embeddings de vos objets suivis."
},
- "error": "Une erreur est survenue. Vérifier les journaux Frigate."
+ "error": "Une erreur est survenue. Vérifiez les journaux Frigate."
}
},
"details": {
"timestamp": "Horodatage",
"item": {
- "title": "Détails de l'élément de la revue d'événements",
+ "title": "Détails de l'activité",
"button": {
- "share": "Partager cet élément de la revue d'événements",
+ "share": "Partager cette activité",
"viewInExplore": "Afficher dans Explorer"
},
"toast": {
"success": {
"regenerate": "Une nouvelle description a été demandée à {{provider}}. Selon la vitesse de votre fournisseur, la régénération de la nouvelle description peut prendre un certain temps.",
- "updatedSublabel": "Sous-libellé mis à jour avec succès.",
- "updatedLPR": "Plaque d'immatriculation mise à jour avec succès."
+ "updatedSublabel": "Sous-étiquette mise à jour avec succès",
+ "updatedLPR": "Plaque d'immatriculation mise à jour avec succès",
+ "audioTranscription": "Transcription audio demandée avec succès. Selon la vitesse de votre serveur Frigate, la transcription peut prendre un certain temps.",
+ "updatedAttributes": "Attributs mis à jour avec succès"
},
"error": {
"regenerate": "Échec de l'appel de {{provider}} pour une nouvelle description : {{errorMessage}}",
- "updatedSublabelFailed": "Échec de la mise à jour du sous-libellé : {{errorMessage}}",
- "updatedLPRFailed": "Échec de la mise à jour de la plaque d'immatriculation : {{errorMessage}}"
+ "updatedSublabelFailed": "Échec de la mise à jour de la sous-étiquette : {{errorMessage}}",
+ "updatedLPRFailed": "Échec de la mise à jour de la plaque d'immatriculation : {{errorMessage}}",
+ "audioTranscription": "Échec de la demande de transcription audio : {{errorMessage}}",
+ "updatedAttributesFailed": "Échec de la mise à jour des attributs : {{errorMessage}}"
}
},
"tips": {
- "mismatch_one": "{{count}} objet indisponible a été détecté et intégré dans cet élément de la revue d'événements. Cet objet n'a pas été qualifié comme une alerte ou une détection, ou a déjà été nettoyé / supprimé.",
- "mismatch_many": "{{count}} objets indisponibles ont été détectés et intégrés dans cet élément de la revue d'événements. Ces objets n'ont pas été qualifiés comme une alerte ou une détection, ou ont déjà été nettoyés / supprimés.",
- "mismatch_other": "{{count}} objets indisponibles ont été détectés et intégrés dans cet élément de la revue d'événements. Ces objets n'ont pas été qualifiés comme une alerte ou une détection, ou ont déjà été nettoyés / supprimés.",
- "hasMissingObjects": "Ajustez votre configuration si vous souhaitez que Frigate enregistre les objets suivis pour les libellés suivants : {{objects}}"
+ "mismatch_one": "{{count}} objet indisponible a été détecté et intégré dans cette activité. Cet objet n'a pas été qualifié comme une alerte ou une détection, ou a déjà été nettoyé / supprimé.",
+ "mismatch_many": "{{count}} objets indisponibles ont été détectés et intégrés dans cette activité. Ces objets n'ont pas été qualifiés comme une alerte ou une détection, ou ont déjà été nettoyés / supprimés.",
+ "mismatch_other": "{{count}} objets indisponibles ont été détectés et intégrés dans cette activité. Ces objets n'ont pas été qualifiés comme une alerte ou une détection, ou ont déjà été nettoyés / supprimés.",
+ "hasMissingObjects": "Ajustez votre configuration si vous souhaitez que Frigate enregistre les objets suivis pour les étiquettes suivantes : {{objects}}"
},
- "desc": "Détails de l'élément de la revue d'événements"
+ "desc": "Détails de l'activité"
},
- "label": "Libellé",
+ "label": "Étiquette",
"editSubLabel": {
- "title": "Modifier le sous-libellé",
- "desc": "Saisissez un nouveau sous-libellé pour {{label}}",
- "descNoLabel": "Entrer un nouveau sous-libellé pour cet objet suivi"
+ "title": "Modifier la sous-étiquette",
+ "desc": "Saisissez une nouvelle sous-étiquette pour {{label}}.",
+ "descNoLabel": "Saisissez une nouvelle sous-étiquette pour cet objet suivi."
},
"topScore": {
"label": "Meilleur score",
- "info": "Le score le plus élevé est le score médian le plus haut pour l'objet suivi ; il peut donc différer du score affiché sur la miniature du résultat de recherche."
+ "info": "Le meilleur score correspond au score médian le plus élevé de l'objet suivi, il peut donc différer du score affiché sur la miniature du résultat de recherche."
},
"objects": "Objets",
"button": {
@@ -84,8 +88,8 @@
"regenerateFromThumbnails": "Générer à nouveau à partir des miniatures",
"editLPR": {
"title": "Modifier la plaque d'immatriculation",
- "desc": "Saisissez une nouvelle valeur de plaque d'immatriculation pour {{label}}",
- "descNoLabel": "Saisir une nouvelle valeur de plaque d'immatriculation pour cet objet suivi"
+ "desc": "Saisissez une nouvelle valeur de plaque d'immatriculation pour {{label}}.",
+ "descNoLabel": "Saisissez une nouvelle valeur de plaque d'immatriculation pour cet objet suivi."
},
"recognizedLicensePlate": "Plaque d'immatriculation reconnue",
"estimatedSpeed": "Vitesse estimée",
@@ -98,13 +102,23 @@
},
"snapshotScore": {
"label": "Score de l'instantané"
- }
+ },
+ "score": {
+ "label": "Score"
+ },
+ "editAttributes": {
+ "title": "Modifier les attributs",
+ "desc": "Sélectionnez les attributs de classification pour : {{label}}"
+ },
+ "attributes": "Attributs de classification"
},
"type": {
"details": "détails",
"video": "vidéo",
"object_lifecycle": "cycle de vie de l'objet",
- "snapshot": "instantané"
+ "snapshot": "instantané",
+ "thumbnail": "Miniature",
+ "tracking_details": "Détails du suivi"
},
"objectLifecycle": {
"title": "Cycle de vie de l'objet",
@@ -115,8 +129,8 @@
"autoTrackingTips": "Les positions des cadres englobants seront imprécises pour les caméras à suivi automatique.",
"lifecycleItemDesc": {
"visible": "{{label}} détecté",
- "entered_zone": "{{label}} est entré dans {{zones}}",
- "stationary": "{{label}} est devenu stationnaire",
+ "entered_zone": "{{label}} est entré dans {{zones}}.",
+ "stationary": "{{label}} est devenu stationnaire.",
"attribute": {
"other": "{{label}} reconnu comme {{attribute}}",
"faceOrLicense_plate": "{{attribute}} détecté pour {{label}}"
@@ -124,7 +138,7 @@
"gone": "{{label}} parti",
"heard": "{{label}} entendu",
"external": "{{label}} détecté",
- "active": "{{label}} est devenu actif",
+ "active": "{{label}} est devenu actif.",
"header": {
"zones": "Zones",
"area": "Aire",
@@ -134,7 +148,7 @@
"annotationSettings": {
"title": "Paramètres d'annotation",
"showAllZones": {
- "title": "Montrer toutes les zones",
+ "title": "Afficher toutes les zones",
"desc": "Afficher systématiquement les zones sur les images quand des objets y sont entrés"
},
"offset": {
@@ -170,8 +184,8 @@
"label": "Visualiser le cycle de vie de l'objet"
},
"viewInHistory": {
- "label": "Afficher dans l'historique",
- "aria": "Afficher dans l'historique"
+ "label": "Afficher dans la chronologie",
+ "aria": "Afficher dans la chronologie"
},
"downloadVideo": {
"label": "Télécharger la vidéo",
@@ -183,12 +197,34 @@
},
"deleteTrackedObject": {
"label": "Supprimer cet objet suivi"
+ },
+ "addTrigger": {
+ "label": "Ajouter un déclencheur",
+ "aria": "Ajouter un déclencheur pour cet objet suivi"
+ },
+ "audioTranscription": {
+ "label": "Transcrire",
+ "aria": "Demander une transcription audio"
+ },
+ "showObjectDetails": {
+ "label": "Afficher le parcours de l'objet"
+ },
+ "hideObjectDetails": {
+ "label": "Masquer le parcours de l'objet"
+ },
+ "viewTrackingDetails": {
+ "label": "Voir les détails du suivi",
+ "aria": "Afficher les détails du suivi"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Télécharger l'instantané vierge",
+ "aria": "Télécharger l'instantané vierge"
}
},
"dialog": {
"confirmDelete": {
"title": "Confirmer la suppression",
- "desc": "La suppression de cet objet suivi supprime l'instantané, les représentations numériques enregistrées et les entrées du cycle de vie de l'objet associé. Les images enregistrées de cet objet suivi dans la vue Historique NE seront PAS supprimées.
Êtes-vous sûr de vouloir continuer ?"
+ "desc": "La suppression de cet objet suivi supprime l'instantané, les embeddings enregistrés et les entrées du cycle de vie de l'objet associé. Les images enregistrées de cet objet suivi dans la vue Chronologie NE seront PAS supprimées.
Êtes-vous sûr de vouloir continuer ?"
}
},
"noTrackedObjects": "Aucun objet suivi trouvé",
@@ -203,7 +239,64 @@
"error": "Échec de la suppression de l'objet suivi : {{errorMessage}}"
}
},
- "tooltip": "Correspondance : {{type}} à {{confidence}}%"
+ "tooltip": "Correspondance : {{type}} à {{confidence}}%",
+ "previousTrackedObject": "Objet suivi précédent",
+ "nextTrackedObject": "Objet suivi suivant"
},
- "exploreMore": "Explorer plus d'objets {{label}}"
+ "exploreMore": "Explorer plus d'objets {{label}}",
+ "aiAnalysis": {
+ "title": "Analyse IA"
+ },
+ "concerns": {
+ "label": "Points de vigilance"
+ },
+ "trackingDetails": {
+ "title": "Détails du suivi",
+ "noImageFound": "Aucune image trouvée pour cet horodatage",
+ "createObjectMask": "Créer un masque d'objet",
+ "adjustAnnotationSettings": "Ajuster les paramètres d'annotation",
+ "scrollViewTips": "Cliquez pour voir les moments significatifs du cycle de vie de cet objet.",
+ "autoTrackingTips": "Les positions des cadres de détection seront imprécises pour les caméras à suivi automatique.",
+ "count": "{{first}} sur {{second}}",
+ "trackedPoint": "Point suivi",
+ "lifecycleItemDesc": {
+ "visible": "{{label}} détecté",
+ "entered_zone": "{{label}} est entré(e) dans {{zones}}.",
+ "active": "{{label}} est devenu(e) actif(ve).",
+ "stationary": "{{label}} s'est immobilisé(e)",
+ "attribute": {
+ "faceOrLicense_plate": "Détection de {{attribute}} pour {{label}}",
+ "other": "{{label}} reconnu(e) comme {{attribute}}"
+ },
+ "gone": "Sortie de {{label}}",
+ "heard": "{{label}} entendu(e)",
+ "external": "{{label}} détecté(e)",
+ "header": {
+ "zones": "Zones",
+ "ratio": "Ratio",
+ "area": "Surface",
+ "score": "Score"
+ }
+ },
+ "annotationSettings": {
+ "offset": {
+ "desc": "Ces données proviennent du flux de détection de votre caméra, mais elles sont superposées aux images du flux d'enregistrement. Il est peu probable que les deux flux soient parfaitement synchronisés. Par conséquent, le cadre de délimitation et la vidéo ne s'aligneront pas parfaitement. Vous pouvez utiliser ce paramètre pour décaler les annotations vers l'avant ou vers l'arrière dans le temps afin de mieux les aligner avec la vidéo enregistrée.",
+ "millisecondsToOffset": "Millisecondes de décalage pour les annotations de détection. Par défaut : 0",
+ "tips": "Diminuez la valeur si la lecture vidéo est en avance sur les cadres de détection et les points de tracé, et augmentez-la si la lecture vidéo est en retard sur ceux-ci. Cette valeur peut être négative.",
+ "toast": {
+ "success": "Le décalage des annotations pour {{camera}} a été sauvegardé dans le fichier de configuration."
+ },
+ "label": "Décalage d'annotation"
+ },
+ "title": "Paramètres d'annotation",
+ "showAllZones": {
+ "title": "Afficher toutes les zones",
+ "desc": "Toujours afficher les zones sur les images lorsqu'un objet pénètre une zone"
+ }
+ },
+ "carousel": {
+ "previous": "Diapositive précédente",
+ "next": "Diapositive suivante"
+ }
+ }
}
diff --git a/web/public/locales/fr/views/exports.json b/web/public/locales/fr/views/exports.json
index ff8275a503..3b698d0036 100644
--- a/web/public/locales/fr/views/exports.json
+++ b/web/public/locales/fr/views/exports.json
@@ -1,17 +1,23 @@
{
- "documentTitle": "Exporter - Frigate",
+ "documentTitle": "Exports - Frigate",
"search": "Rechercher",
- "noExports": "Aucun export trouvé",
- "deleteExport": "Supprimer l'export",
- "deleteExport.desc": "Êtes-vous sûr de vouloir supprimer {{exportName}}?",
+ "noExports": "Aucune exportation trouvée",
+ "deleteExport": "Supprimer l'exportation",
+ "deleteExport.desc": "Êtes-vous sûr de vouloir supprimer {{exportName}} ?",
"editExport": {
- "title": "Renommer l'export",
- "desc": "Saisissez un nouveau nom pour cet export.",
- "saveExport": "Enregistrer l'export"
+ "title": "Renommer l'exportation",
+ "desc": "Saisissez un nouveau nom pour cette exportation.",
+ "saveExport": "Enregistrer l'exportation"
},
"toast": {
"error": {
- "renameExportFailed": "Échec du renommage de l'export : {{errorMessage}}"
+ "renameExportFailed": "Échec du renommage de l'exportation : {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "shareExport": "Partager l'exportation",
+ "downloadVideo": "Télécharger la vidéo",
+ "editName": "Modifier le nom",
+ "deleteExport": "Supprimer l'exportation"
}
}
diff --git a/web/public/locales/fr/views/faceLibrary.json b/web/public/locales/fr/views/faceLibrary.json
index fa5de03b21..7d65a5e91b 100644
--- a/web/public/locales/fr/views/faceLibrary.json
+++ b/web/public/locales/fr/views/faceLibrary.json
@@ -1,7 +1,7 @@
{
"description": {
- "addFace": "Guide pour ajouter une nouvelle collection à la bibliothèque de visages",
- "placeholder": "Saisissez un nom pour cette collection",
+ "addFace": "Ajoutez une nouvelle collection à la bibliothèque de visages en téléversant votre première image.",
+ "placeholder": "Saisissez un nom pour cette collection.",
"invalidName": "Nom invalide. Les noms ne peuvent contenir que des lettres, des chiffres, des espaces, des apostrophes, des traits de soulignement et des tirets."
},
"details": {
@@ -17,18 +17,19 @@
"documentTitle": "Bibliothèque de visages - Frigate",
"uploadFaceImage": {
"title": "Téléverser l'image du visage",
- "desc": "Téléversez une image pour rechercher des visages et l'inclure dans {{pageToggle}}"
+ "desc": "Téléversez une image pour rechercher des visages et l'inclure dans {{pageToggle}}."
},
"createFaceLibrary": {
"title": "Créer une collection",
"desc": "Créer une nouvelle collection",
"new": "Créer un nouveau visage",
- "nextSteps": "Pour construire une base solide :
Utilisez l'onglet Entraîner pour sélectionner et entraîner des images pour chaque personne détectée.
Privilégiez les images de face pour de meilleurs résultats ; évitez d'utiliser des images d'entraînement où les visages sont capturés de biais.
"
+ "nextSteps": "Pour construire une base solide :
Utilisez l'onglet Reconnaissances récentes pour sélectionner et entraîner des images pour chaque personne détectée.
Privilégiez les images de face pour de meilleurs résultats et évitez d'entraîner le modèle avec des images où les visages sont de biais.
"
},
"train": {
- "title": "Entraîner",
- "aria": "Sélectionner entraîner",
- "empty": "Il n'y a pas de tentatives récentes de reconnaissance faciale"
+ "title": "Reconnaissances récentes",
+ "aria": "Sélectionnez des reconnaissances récentes.",
+ "empty": "Il n'y a pas de tentatives récentes de reconnaissance faciale.",
+ "titleShort": "Récent"
},
"selectFace": "Sélectionner un visage",
"button": {
@@ -41,13 +42,13 @@
},
"selectItem": "Sélectionner {{item}}",
"deleteFaceLibrary": {
- "title": "Supprimer un nom",
- "desc": "Etes-vous certain de vouloir supprimer la collection {{name}} ? Cette action supprimera définitivement tous les visages associés."
+ "title": "Supprimer le nom",
+ "desc": "Êtes-vous certain de vouloir supprimer la collection {{name}} ? Cette action supprimera définitivement tous les visages associés."
},
"imageEntry": {
- "dropActive": "Déposez l'image ici…",
- "dropInstructions": "Glissez et déposez une image ici, ou cliquez pour sélectionner",
- "maxSize": "Taille max : {{size}}MB",
+ "dropActive": "Déposez l'image ici.",
+ "dropInstructions": "Glissez-déposez ou collez une image ici, ou cliquez pour la sélectionner.",
+ "maxSize": "Taille max : {{size}}Mo",
"validation": {
"selectImage": "Veuillez sélectionner un fichier image."
}
@@ -58,30 +59,30 @@
"deletedName_one": "{{count}} visage a été supprimé avec succès.",
"deletedName_many": "{{count}} visages ont été supprimés avec succès.",
"deletedName_other": "{{count}} visages ont été supprimés avec succès.",
- "uploadedImage": "Image téléversée avec succès.",
+ "uploadedImage": "Image téléversée avec succès",
"addFaceLibrary": "{{name}} a été ajouté avec succès à la bibliothèque de visages !",
- "updatedFaceScore": "Score du visage mis à jour avec succès.",
- "deletedFace_one": "{{count}} visage a été supprimé avec succès.",
- "deletedFace_many": "{{count}} visages ont été supprimés avec succès.",
- "deletedFace_other": "{{count}} visages ont été supprimés avec succès.",
- "trainedFace": "Visage entraîné avec succès.",
- "renamedFace": "Visage renommé avec succés en {{name}}"
+ "updatedFaceScore": "Score du visage ({{score}}) de {{name}} mis à jour avec succès",
+ "deletedFace_one": "{{count}} visage supprimé avec succès",
+ "deletedFace_many": "{{count}} visages supprimés avec succès",
+ "deletedFace_other": "{{count}} visages supprimés avec succès",
+ "trainedFace": "Visage entraîné avec succès",
+ "renamedFace": "Visage renommé avec succès en {{name}}"
},
"error": {
"uploadingImageFailed": "Échec du téléversement de l'image : {{errorMessage}}",
"deleteFaceFailed": "Échec de la suppression : {{errorMessage}}",
- "trainFailed": "Échec de l'entrainement : {{errorMessage}}",
+ "trainFailed": "Échec de l'entraînement : {{errorMessage}}",
"updateFaceScoreFailed": "Échec de la mise à jour du score du visage : {{errorMessage}}",
- "addFaceLibraryFailed": "Échec du nommage du visage : {{errorMessage}}",
+ "addFaceLibraryFailed": "Échec de l'attribution du nom au visage : {{errorMessage}}",
"deleteNameFailed": "Échec de la suppression du nom : {{errorMessage}}",
- "renameFaceFailed": "Échec du renommage du visage : {{errorMessage}}"
+ "renameFaceFailed": "Échec du changement de nom du visage : {{errorMessage}}"
}
},
"trainFaceAs": "Entraîner le visage comme :",
- "trainFace": "Entraîner un visage",
+ "trainFace": "Entraîner le visage",
"steps": {
"uploadFace": "Téléverser une image de visage",
- "faceName": "Entrer un nom pour le visage",
+ "faceName": "Saisissez le nom du visage.",
"nextSteps": "Prochaines étapes",
"description": {
"uploadFace": "Téléversez une image de {{name}} qui montre son visage de face. L'image n'a pas besoin d'être recadrée pour ne montrer que son visage."
@@ -89,7 +90,7 @@
},
"renameFace": {
"title": "Renommer le visage",
- "desc": "Saisissez un nouveau nom pour {{name}}"
+ "desc": "Saisissez un nouveau nom pour {{name}}."
},
"collections": "Collections",
"deleteFaceAttempts": {
@@ -98,6 +99,6 @@
"desc_many": "Êtes-vous sûr de vouloir supprimer {{count}} visages ? Cette action est irréversible.",
"desc_other": "Êtes-vous sûr de vouloir supprimer {{count}} visages ? Cette action est irréversible."
},
- "nofaces": "Pas de visage disponible",
+ "nofaces": "Aucun visage disponible",
"pixels": "{{area}} pixels"
}
diff --git a/web/public/locales/fr/views/live.json b/web/public/locales/fr/views/live.json
index 8c86039729..e3edc5a0fd 100644
--- a/web/public/locales/fr/views/live.json
+++ b/web/public/locales/fr/views/live.json
@@ -1,6 +1,6 @@
{
"documentTitle": "Direct - Frigate",
- "lowBandwidthMode": "Mode faible bande-passante",
+ "lowBandwidthMode": "Mode bande passante faible",
"documentTitle.withCamera": "{{camera}} - Direct - Frigate",
"twoWayTalk": {
"disable": "Désactiver la conversation bidirectionnelle",
@@ -14,17 +14,17 @@
"move": {
"clickMove": {
"label": "Cliquez dans le cadre pour centrer la caméra",
- "enable": "Activer le click pour déplacer",
- "disable": "Désactiver le click pour déplacer"
+ "enable": "Activer le clic pour déplacer",
+ "disable": "Désactiver le clic pour déplacer"
},
"left": {
- "label": "Déplacer la caméra PTZ sur la gauche"
+ "label": "Déplacer la caméra PTZ vers la gauche"
},
"up": {
"label": "Déplacer la caméra PTZ vers le haut"
},
"right": {
- "label": "Déplacer la caméra PTZ sur la droite"
+ "label": "Déplacer la caméra PTZ vers la droite"
},
"down": {
"label": "Déplacer la caméra PTZ vers le bas"
@@ -32,18 +32,26 @@
},
"zoom": {
"in": {
- "label": "Zoomer avant de la caméra PTZ"
+ "label": "Zoom avant sur la caméra PTZ"
},
"out": {
- "label": "Zoom arrière de la caméra PTZ"
+ "label": "Zoom arrière sur la caméra PTZ"
}
},
"frame": {
"center": {
- "label": "Cliquez dans le cadre pour centrer la caméra PTZ"
+ "label": "Cliquez dans le cadre pour centrer la caméra PTZ."
}
},
- "presets": "Paramètres prédéfinis pour les caméras PTZ"
+ "presets": "Préréglages de la caméra PTZ",
+ "focus": {
+ "in": {
+ "label": "Mise au point rapprochée de la caméra PTZ"
+ },
+ "out": {
+ "label": "Mise au point éloignée de la caméra PTZ"
+ }
+ }
},
"camera": {
"enable": "Activer la caméra",
@@ -71,53 +79,56 @@
},
"manualRecording": {
"playInBackground": {
- "label": "Jouer en arrière plan",
- "desc": "Activer cette option pour continuer à streamer lorsque le lecteur est masqué."
+ "label": "Jouer en arrière-plan",
+ "desc": "Activez cette option pour continuer à diffuser lorsque le lecteur est masqué."
},
"showStats": {
"label": "Afficher les statistiques",
- "desc": "Activer cette option pour afficher les statistiques de flux en surimpression sur le flux de la caméra."
+ "desc": "Activez cette option pour afficher les statistiques de flux en surimpression sur le flux de la caméra."
},
"debugView": "Vue de débogage",
"start": "Démarrer l'enregistrement à la demande",
- "failedToStart": "Echec du démarrage de l'enregistrement à la demande manuel.",
+ "failedToStart": "Échec du démarrage de l'enregistrement manuel à la demande",
"end": "Terminer l'enregistrement à la demande",
- "ended": "Enregistrement à la demande terminé.",
- "failedToEnd": "Impossible de terminer l'enregistrement manuel à la demande.",
- "started": "Enregistrement à la demande démarré.",
+ "ended": "Enregistrement manuel à la demande terminé",
+ "failedToEnd": "Impossible de terminer l'enregistrement manuel à la demande",
+ "started": "Enregistrement manuel à la demande démarré",
"recordDisabledTips": "Puisque l'enregistrement est désactivé ou restreint dans la configuration de cette caméra, seul un instantané sera enregistré.",
- "title": "Enregistrement à la demande",
- "tips": "Démarrez un événement manuel en fonction des paramètres de conservation d'enregistrement de cette caméra."
+ "title": "À la demande",
+ "tips": "Téléchargez un instantané ou démarrez un événement manuel en fonction des paramètres de conservation des enregistrements de cette caméra."
},
- "streamingSettings": "Paramètres de streaming",
+ "streamingSettings": "Paramètres de diffusion",
"notifications": "Notifications",
"suspend": {
"forTime": "Mettre en pause pour : "
},
"stream": {
"audio": {
- "available": "Audio disponible pour ce flux",
+ "available": "L'audio est disponible pour ce flux",
"tips": {
"documentation": "Lire la documentation ",
- "title": "L'audio doit être capté par votre caméra et configuré dans go2rtc pour ce flux."
+ "title": "L'audio doit provenir de votre caméra et être configuré dans go2rtc pour ce flux."
},
- "unavailable": "Audio non disponible pour ce flux"
+ "unavailable": "L'audio n'est pas disponible pour ce flux"
},
"twoWayTalk": {
- "tips": "Votre périphérique doit supporter la fonctionnalité et WebRTC doit être configuré pour supporter la conversation bidirectionnelle.",
+ "tips": "Votre appareil doit prendre en charge cette fonctionnalité et WebRTC doit être configuré pour la conversation bidirectionnelle.",
"tips.documentation": "Lire la documention ",
"available": "Conversation bidirectionnelle disponible pour ce flux",
"unavailable": "Conversation bidirectionnelle non disponible pour ce flux"
},
"lowBandwidth": {
- "tips": "La vue temps réel est en mode faible bande passante à cause d'erreurs de cache ou de flux.",
+ "tips": "La vue temps réel est en mode bande passante faible à cause de problèmes de mise en mémoire tampon ou d'erreurs de flux.",
"resetStream": "Réinitialiser le flux"
},
"playInBackground": {
- "tips": "Activer cette option pour continuer le streaming lorsque le lecteur est masqué.",
- "label": "Jouer en arrière plan"
+ "tips": "Activez cette option pour continuer la diffusion lorsque le lecteur est masqué.",
+ "label": "Jouer en arrière-plan"
},
- "title": "Flux"
+ "title": "Flux",
+ "debug": {
+ "picker": "La sélection de flux est indisponible en mode débogage. La vue de débogage utilise systématiquement le flux attribué au rôle de détection."
+ }
},
"cameraSettings": {
"objectDetection": "Détection d'objets",
@@ -126,10 +137,11 @@
"audioDetection": "Détection audio",
"autotracking": "Suivi automatique",
"cameraEnabled": "Caméra activée",
- "title": "Paramètres de {{camera}}"
+ "title": "Paramètres de {{camera}}",
+ "transcription": "Transcription audio"
},
"history": {
- "label": "Afficher l'historique de capture"
+ "label": "Afficher les vidéos archivées"
},
"effectiveRetainMode": {
"modes": {
@@ -153,6 +165,25 @@
"group": {
"label": "Modifier le groupe de caméras"
},
- "exitEdit": "Quitter l'édition"
+ "exitEdit": "Quitter le mode édition"
+ },
+ "transcription": {
+ "enable": "Activer la transcription audio en direct",
+ "disable": "Désactiver la transcription audio en direct"
+ },
+ "noCameras": {
+ "title": "Aucune caméra n'est configurée",
+ "description": "Pour commencer, connectez une caméra à Frigate.",
+ "buttonText": "Ajouter une caméra",
+ "restricted": {
+ "title": "Aucune caméra disponible",
+ "description": "Vous n'avez pas la permission de visionner les caméras de ce groupe."
+ }
+ },
+ "snapshot": {
+ "takeSnapshot": "Télécharger un instantané",
+ "noVideoSource": "Aucune source vidéo disponible pour l'instantané",
+ "captureFailed": "Échec de la capture de l'instantané",
+ "downloadStarted": "Téléchargement de l'instantané démarré"
}
}
diff --git a/web/public/locales/fr/views/recording.json b/web/public/locales/fr/views/recording.json
index f04812f4c0..e1960a754e 100644
--- a/web/public/locales/fr/views/recording.json
+++ b/web/public/locales/fr/views/recording.json
@@ -1,12 +1,12 @@
{
- "export": "Exporter",
+ "export": "Exports",
"calendar": "Calendrier",
"filter": "Filtre",
"filters": "Filtres",
"toast": {
"error": {
- "noValidTimeSelected": "Pas de période valide sélectionnée",
- "endTimeMustAfterStartTime": "L'heure de fin doit être après l'heure de début"
+ "noValidTimeSelected": "Aucune plage horaire valide sélectionnée",
+ "endTimeMustAfterStartTime": "L'heure de fin doit être postérieure à l'heure de début."
}
}
}
diff --git a/web/public/locales/fr/views/search.json b/web/public/locales/fr/views/search.json
index b656ab8890..a9938bff7d 100644
--- a/web/public/locales/fr/views/search.json
+++ b/web/public/locales/fr/views/search.json
@@ -1,7 +1,7 @@
{
"savedSearches": "Recherches enregistrées",
"search": "Rechercher",
- "searchFor": "Chercher {{inputValue}}",
+ "searchFor": "Rechercher {{inputValue}}",
"button": {
"clear": "Effacer la recherche",
"filterInformation": "Filtrer les informations",
@@ -13,20 +13,21 @@
"filter": {
"label": {
"zones": "Zones",
- "sub_labels": "Sous-libellés",
+ "sub_labels": "Sous-étiquettes",
"search_type": "Type de recherche",
- "time_range": "Plage de temps",
- "labels": "Libellés",
+ "time_range": "Plage horaire",
+ "labels": "Étiquettes",
"cameras": "Caméras",
"after": "Après",
"before": "Avant",
- "min_speed": "Vitesse minimum",
- "max_speed": "Vitesse maximum",
+ "min_speed": "Vitesse minimale",
+ "max_speed": "Vitesse maximale",
"min_score": "Score minimum",
- "recognized_license_plate": "Plaques d'immatriculation reconnues",
- "has_clip": "Contient un clip",
- "has_snapshot": "Contient un instantané",
- "max_score": "Score maximum"
+ "recognized_license_plate": "Plaque d'immatriculation reconnue",
+ "has_clip": "Avec une séquence vidéo",
+ "has_snapshot": "Avec un instantané",
+ "max_score": "Score maximum",
+ "attributes": "Attributs"
},
"searchType": {
"thumbnail": "Miniature",
@@ -34,11 +35,11 @@
},
"toast": {
"error": {
- "beforeDateBeLaterAfter": "La date de début « avant » doit être postérieure à la date « après ».",
+ "beforeDateBeLaterAfter": "La date « avant » doit être postérieure à la date « après ».",
"afterDatebeEarlierBefore": "La date « après » doit être antérieure à la date « avant ».",
"minScoreMustBeLessOrEqualMaxScore": "Le « min_score » doit être inférieur ou égal au « max_score ».",
"maxScoreMustBeGreaterOrEqualMinScore": "Le « max_score » doit être supérieur ou égal au « min_score ».",
- "minSpeedMustBeLessOrEqualMaxSpeed": "La « vitesse_min » doit être inférieure ou égale à la « vitesse_max ».",
+ "minSpeedMustBeLessOrEqualMaxSpeed": "La vitesse minimale doit être inférieure ou égale à la vitesse maximale.",
"maxSpeedMustBeGreaterOrEqualMinSpeed": "La « vitesse maximale » doit être supérieure ou égale à la « vitesse minimale »."
}
},
@@ -54,11 +55,11 @@
"example": "Exemple: cameras:front_door label:person before:01012024 time_range:3:00PM-4:00PM ",
"step": "
Saisissez un nom de filtre suivi de deux points (par exemple, «cameras:»).
Sélectionnez une valeur parmi les suggestions ou saisissez la vôtre.
Utilisez plusieurs filtres en les ajoutant les uns après les autres, en laissant un espace entre eux.
Les filtres de date (avant: et après:) utilisent le format {{DateFormat}}.
Le filtre de plage horaire utilise le format {{exampleTime}}.
Supprimez les filtres en cliquant sur le «x» à côté d'eux.
",
"step1": "Saisissez un nom de clé de filtre suivi de deux points (par exemple, \"cameras:\").",
- "step2": "Sélectionnez une valeur pour la suggestion ou saisissez la vôtre.",
+ "step2": "Sélectionnez une valeur parmi les suggestions ou saisissez la vôtre.",
"step3": "Utilisez plusieurs filtres en les ajoutant les uns après les autres avec un espace entre eux.",
"step5": "Le filtre de plage horaire utilise le format {{exampleTime}}.",
- "step6": "Supprimez les filtres en cliquant sur le ' x' à côté d'eux.",
- "step4": "Filtres de dates (avant : et après :) utilisez le format {{DateFormat}}.",
+ "step6": "Supprimez les filtres en cliquant sur le \"x\" à côté d'eux.",
+ "step4": "Les filtres de dates (avant : et après :) utilisent le format {{DateFormat}}.",
"exampleLabel": "Exemple :"
}
}
diff --git a/web/public/locales/fr/views/settings.json b/web/public/locales/fr/views/settings.json
index 67bd50933d..d44b0117ac 100644
--- a/web/public/locales/fr/views/settings.json
+++ b/web/public/locales/fr/views/settings.json
@@ -4,25 +4,31 @@
"authentication": "Paramètres d'authentification - Frigate",
"camera": "Paramètres des caméras - Frigate",
"classification": "Paramètres de classification - Frigate",
- "motionTuner": "Réglages du mouvement - Frigate",
- "general": "Paramètres généraux - Frigate",
+ "motionTuner": "Réglage de la détection de mouvement - Frigate",
+ "general": "Paramètres de l'interface utilisateur - Frigate",
"masksAndZones": "Éditeur de masques et de zones - Frigate",
"object": "Débogage - Frigate",
"frigatePlus": "Paramètres Frigate+ - Frigate",
"notifications": "Paramètres de notification - Frigate",
- "enrichments": "Paramètres de données augmentées - Frigate"
+ "enrichments": "Paramètres d'enrichissements - Frigate",
+ "cameraManagement": "Gestion des caméras - Frigate",
+ "cameraReview": "Paramètres des activités caméra - Frigate"
},
"menu": {
"ui": "Interface utilisateur",
"classification": "Classification",
"masksAndZones": "Masques / Zones",
- "motionTuner": "Réglages du mouvement",
+ "motionTuner": "Réglage de la détection de mouvement",
"debug": "Débogage",
"cameras": "Paramètres des caméras",
"users": "Utilisateurs",
"notifications": "Notifications",
"frigateplus": "Frigate+",
- "enrichments": "Données augmentées"
+ "enrichments": "Enrichissements",
+ "triggers": "Déclencheurs",
+ "roles": "Rôles",
+ "cameraManagement": "Gestion",
+ "cameraReview": "Activités"
},
"dialog": {
"unsavedChanges": {
@@ -35,7 +41,7 @@
"noCamera": "Aucune caméra"
},
"general": {
- "title": "Paramètres généraux",
+ "title": "Paramètres de l'interface utilisateur",
"liveDashboard": {
"title": "Tableau de bord en direct",
"automaticLiveView": {
@@ -43,8 +49,16 @@
"desc": "Basculez automatiquement vers la vue en direct d'une caméra lorsqu'une activité est détectée. La désactivation de cette option limite la mise à jour des images statiques de la caméra sur le tableau de bord en direct à une fois par minute seulement."
},
"playAlertVideos": {
- "label": "Lire les vidéos d'alertes",
+ "label": "Lire les vidéos d'alerte",
"desc": "Par défaut, les alertes récentes du tableau de bord en direct sont diffusées sous forme de petites vidéos en boucle. Désactivez cette option pour afficher uniquement une image statique des alertes récentes sur cet appareil/navigateur."
+ },
+ "displayCameraNames": {
+ "label": "Toujours afficher les noms des caméras",
+ "desc": "Toujours afficher les noms des caméras dans une puce sur le tableau de bord de la vue en direct multi-caméras"
+ },
+ "liveFallbackTimeout": {
+ "label": "Délai d'attente avant repli (Lecteur en direct)",
+ "desc": "Lorsque le flux en direct haute qualité d'une caméra est indisponible, le lecteur bascule en mode faible bande passante après ce nombre de secondes. Par défaut : 3."
}
},
"storedLayouts": {
@@ -61,13 +75,13 @@
"title": "Visionneuse d'enregistrements",
"defaultPlaybackRate": {
"label": "Vitesse de lecture par défaut",
- "desc": "Vitesse de lecture par défaut pour la lecture des enregistrements."
+ "desc": "Vitesse de lecture par défaut pour la lecture des enregistrements"
}
},
"calendar": {
"firstWeekday": {
"label": "Premier jour de la semaine",
- "desc": "Le jour du début de semaine du calendrier de la revue d'évènements.",
+ "desc": "Jour du début de la semaine du calendrier des activités",
"sunday": "Dimanche",
"monday": "Lundi"
},
@@ -126,7 +140,7 @@
},
"cameras": {
"title": "Caméras",
- "noCameras": "Aucune caméra disponible",
+ "noCameras": "Aucune caméra n'est disponible",
"desc": "Sélectionnez les caméras pour lesquelles activer les notifications."
},
"deviceSpecific": "Paramètres spécifiques de l'appareil",
@@ -136,12 +150,12 @@
"registerDevice": "Enregistrer cet appareil",
"unregisterDevice": "Désenregistrer cet appareil",
"sendTestNotification": "Envoyer une notification de test",
- "unsavedChanges": "Modifications des notifications non enregistrés",
+ "unsavedChanges": "Modifications des notifications non enregistrées",
"unsavedRegistrations": "Enregistrements des notifications non enregistrés"
},
"frigatePlus": {
"apiKey": {
- "notValidated": "La clé API Frigate+ n'est pas détectée ou non validée",
+ "notValidated": "La clé API Frigate+ n'est pas détectée ou n'est pas validée.",
"title": "Clé API Frigate+",
"validated": "La clé API Frigate+ est détectée et validée",
"desc": "La clé API Frigate+ permet l'intégration avec le service Frigate+.",
@@ -150,12 +164,12 @@
"title": "Paramètres Frigate+",
"snapshotConfig": {
"documentation": "Lire la documentation",
- "desc": "La soumission à Frigate+ nécessite que les instantanés et les instantanés clean_copy soient activés dans votre configuration.",
- "title": "Configuration de l'instantané",
+ "desc": "La soumission à Frigate+ nécessite à la fois que les instantanés et les instantanés clean_copy soient activés dans votre configuration.",
+ "title": "Configuration des instantanés",
"table": {
"snapshots": "Instantanés",
"camera": "Caméra",
- "cleanCopySnapshots": "clean_copy Instantanés"
+ "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+."
},
@@ -166,7 +180,7 @@
"supportedDetectors": "Détecteurs pris en charge",
"loading": "Chargement des informations du modèle…",
"title": "Informations sur le modèle",
- "trainDate": "Date d'entrainement",
+ "trainDate": "Date d'entraînement",
"error": "Échec du chargement des informations du modèle",
"availableModels": "Modèles disponibles",
"dimensions": "Dimensions",
@@ -182,7 +196,7 @@
"error": "Échec de l'enregistrement des modifications de configuration : {{errorMessage}}"
},
"restart_required": "Redémarrage requis (modèle Frigate+ changé)",
- "unsavedChanges": "Modifications de paramètres de Frigate+ non enregistrés"
+ "unsavedChanges": "Modifications de paramètres de Frigate+ non enregistrées"
},
"classification": {
"title": "Paramètres de classification",
@@ -278,6 +292,44 @@
"streams": {
"title": "Flux",
"desc": "Désactive temporairement une caméra jusqu'au redémarrage de Frigate. La désactivation complète d'une caméra interrompt le traitement des flux de cette caméra par Frigate. La détection, l'enregistrement et le débogage seront indisponibles. Remarque : cela ne désactive pas les rediffusions go2rtc."
+ },
+ "object_descriptions": {
+ "title": "Description d'objets par IA générative",
+ "desc": "Activer / désactiver temporairement les descriptions d'objets par IA générative pour cette caméra. Lorsqu'elles sont désactivées, les descriptions générées par IA ne seront pas demandées pour les objets suivis par cette caméra."
+ },
+ "review_descriptions": {
+ "title": "Revue de descriptions par IA générative",
+ "desc": "Activer / désactiver temporairement la revue de descriptions d'objets par IA générative pour cette caméra. Lorsqu'elles sont désactivées, les descriptions générées par IA ne seront plus demandées pour la revue d'éléments de cette caméra."
+ },
+ "addCamera": "Ajouter une nouvelle caméra",
+ "editCamera": "Éditer la caméra :",
+ "selectCamera": "Sélectionner une caméra",
+ "backToSettings": "Retour aux paramètres de la caméra",
+ "cameraConfig": {
+ "add": "Ajouter une caméra",
+ "edit": "Éditer la caméra",
+ "description": "Configurer les paramètres de la caméra y compris les flux et les rôles.",
+ "name": "Nom de la caméra",
+ "nameRequired": "Un nom de caméra est nécessaire",
+ "nameInvalid": "Les noms de caméra peuvent contenir uniquement des lettres, des chiffres, des tirets bas, ou des tirets",
+ "namePlaceholder": "par exemple, porte_entree",
+ "enabled": "Activé",
+ "ffmpeg": {
+ "inputs": "Flux entrants",
+ "path": "Chemin d'accès du flux",
+ "pathRequired": "Un chemin d'accès de flux est nécessaire",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Rôles",
+ "rolesRequired": "Au moins un rôle est nécessaire",
+ "rolesUnique": "Chaque rôle (audio, détection, enregistrement) ne peut être assigné qu'à un seul flux",
+ "addInput": "Ajouter un flux entrant",
+ "removeInput": "Supprimer le flux entrant",
+ "inputsRequired": "Au moins un flux entrant est nécessaire"
+ },
+ "toast": {
+ "success": "Caméra {{cameraName}} enregistrée avec succès"
+ },
+ "nameLength": "Le nom de la caméra doit comporter au plus 24 caractères."
}
},
"masksAndZones": {
@@ -288,7 +340,8 @@
"mustNotBeSameWithCamera": "Le nom de la zone ne doit pas être le même que le nom de la caméra.",
"mustNotContainPeriod": "Le nom de la zone ne doit pas contenir de points.",
"hasIllegalCharacter": "Le nom de la zone contient des caractères interdits.",
- "alreadyExists": "Une zone portant ce nom existe déjà pour cette caméra."
+ "alreadyExists": "Une zone portant ce nom existe déjà pour cette caméra.",
+ "mustHaveAtLeastOneLetter": "Le nom de la zone doit comporter au moins une lettre."
}
},
"distance": {
@@ -312,7 +365,7 @@
},
"snapPoints": {
"true": "Points d'accrochage",
- "false": "Ne cassez pas les points"
+ "false": "Ne pas réunir les points"
}
},
"loiteringTime": {
@@ -327,7 +380,7 @@
},
"speed": {
"error": {
- "mustBeGreaterOrEqualTo": "Le seuil de vitesse soit être égal ou supérieur à 0.1."
+ "mustBeGreaterOrEqualTo": "Le seuil de vitesse doit être supérieur ou égal à 0.1."
}
}
},
@@ -341,12 +394,12 @@
"edit": "Modifier une zone",
"name": {
"title": "Nom",
- "inputPlaceHolder": "Entrer un nom…",
- "tips": "Le nom doit comporter au moins 2 caractères et ne doit pas être le nom d'une caméra ou d'une autre zone."
+ "inputPlaceHolder": "Saisissez un nom.",
+ "tips": "Le nom doit comporter au moins 2 caractères, dont une lettre, et ne doit pas être le nom d'une caméra ou d'une autre zone sur cette caméra."
},
"loiteringTime": {
"desc": "Définit une durée minimale en secondes pendant laquelle l'objet doit rester dans la zone pour qu'elle s'active. Par défaut : 0",
- "title": "Temps de latence"
+ "title": "Temps de maraudage"
},
"speedEstimation": {
"title": "Estimation de la vitesse",
@@ -372,11 +425,11 @@
"point_other": "{{count}} points",
"label": "Zones",
"inertia": {
- "desc": "Spécifie le nombre d'images qu'un objet doit avoir dans une zone avant d'être considéré comme faisant partie de la zone. Par défaut : 3",
+ "desc": "Spécifie le nombre d'images pendant lesquelles un objet doit être dans une zone avant d'être considéré comme y étant. Par défaut : 3",
"title": "Inertie"
},
"toast": {
- "success": "La zone ({{zoneName}}) a été enregistrée. Redémarrez Frigate pour appliquer les modifications."
+ "success": "La zone ({{zoneName}}) a été enregistrée."
},
"objects": {
"title": "Objets",
@@ -387,7 +440,7 @@
},
"motionMasks": {
"label": "Masque de mouvement",
- "documentTitle": "Modifier masque de mouvement - Frigate",
+ "documentTitle": "Modifier le masque de mouvement - Frigate",
"context": {
"documentation": "Lire la documentation",
"title": "Les masques de mouvement servent à empêcher les mouvements indésirables de déclencher la détection (par exemple : branches d'arbres, horodatage des caméras). Ils doivent être utilisés avec parcimonie, car un surmasquage complique le suivi des objets."
@@ -404,8 +457,8 @@
"clickDrawPolygon": "Cliquer pour dessiner un polygone sur l'image.",
"toast": {
"success": {
- "title": "{{polygonName}} a été enregistré. Redémarrez Frigate pour appliquer les modifications.",
- "noName": "Le masque de mouvement a été enregistré. Redémarrez Frigate pour appliquer les modifications."
+ "title": "{{polygonName}} a été enregistré.",
+ "noName": "Le masque de mouvement a été enregistré."
}
},
"desc": {
@@ -415,7 +468,7 @@
"add": "Nouveau masque de mouvement"
},
"objectMasks": {
- "label": "Masques de l'objet",
+ "label": "Masques d'objet",
"desc": {
"documentation": "Documentation",
"title": "Les masques de filtrage d'objets sont utilisés pour filtrer les faux positifs pour un type d'objet donné en fonction de l'emplacement."
@@ -429,15 +482,15 @@
},
"toast": {
"success": {
- "noName": "Le masque d'objet a été enregistré. Redémarrez Frigate pour appliquer les modifications.",
- "title": "{{polygonName}} a été enregistré. Redémarrez Frigate pour appliquer les modifications."
+ "noName": "Le masque d'objet a été enregistré.",
+ "title": "{{polygonName}} a été enregistré."
}
},
"point_one": "{{count}} point",
"point_many": "{{count}} points",
"point_other": "{{count}} points",
"add": "Ajouter un masque d'objet",
- "documentTitle": "Modifier le masque de l'objet - Frigate",
+ "documentTitle": "Modifier le masque d'objet - Frigate",
"context": "Les masques de filtrage d'objets sont utilisés pour filtrer les faux positifs pour un type d'objet donné en fonction de l'emplacement."
},
"filter": {
@@ -459,7 +512,7 @@
"title": "Réglage de la détection de mouvement",
"desc": {
"documentation": "Lisez le guide de réglage de mouvement",
- "title": "Frigate utilise la détection de mouvement comme première ligne de contrôle pour voir s'il se passe quelque chose dans l'image qui mérite d'être vérifié avec la détection d'objet."
+ "title": "Frigate utilise la détection de mouvement comme première ligne de contrôle pour voir s'il se passe quelque chose dans l'image qui mérite d'être vérifié avec la détection d'objets."
},
"Threshold": {
"title": "Seuil",
@@ -482,12 +535,12 @@
"debugging": "Débogage",
"objectList": "Liste d'objets",
"boundingBoxes": {
- "title": "Cadres de délimitation",
+ "title": "Cadres de détection",
"colors": {
- "label": "Couleurs du cadre de délimitation d'un objet",
- "info": "
Au démarrage, différentes couleurs seront attribuées à chaque libellé d'objet
Une fine ligne bleu foncé indique que l'objet n'est pas détecté à ce moment précis
Une fine ligne grise indique que l'objet est détecté comme étant stationnaire
Une ligne épaisse indique que l'objet fait l'objet d'un suivi automatique (lorsqu'il est activé)
"
+ "label": "Couleurs des cadres de détection d'objet",
+ "info": "
Au démarrage, différentes couleurs seront attribuées à chaque étiquette d'objet
Une fine ligne bleu foncé indique que cet objet n'est pas détecté à ce moment précis
Une fine ligne grise indique que cet objet est détecté comme étant immobile
Une ligne épaisse indique que cet objet fait l'objet d'un suivi automatique (lorsqu'il est activé)
"
},
- "desc": "Afficher les cadres de délimitation autour des objets suivis"
+ "desc": "Afficher les cadres de détection autour des objets suivis"
},
"timestamp": {
"title": "Horodatage",
@@ -504,11 +557,11 @@
"motion": {
"desc": "Afficher des cadres autour des zones où un mouvement est détecté",
"title": "Cadres de mouvement",
- "tips": "
Cadres de mouvement
Des cadres rouges seront superposées sur les zones de l'image où un mouvement est actuellement détecté
"
+ "tips": "
Cadres de mouvement
Des cadres rouges seront superposés sur les zones de l'image où un mouvement est actuellement détecté
"
},
"regions": {
"title": "Régions",
- "desc": "Afficher une boîte de la région d'intérêt envoyée au détecteur d'objet",
+ "desc": "Afficher un cadre de la région d'intérêt envoyée au détecteur d'objet",
"tips": "
Cadres de région
Des cadres verts lumineux seront superposés sur les zones d'intérêt de l'image qui sont envoyées au détecteur d'objets.
"
},
"objectShapeFilterDrawing": {
@@ -523,7 +576,20 @@
"noObjects": "Aucun objet",
"title": "Débogage",
"detectorDesc": "Frigate utilise vos détecteurs ({{detectors}}) pour détecter les objets dans le flux vidéo de votre caméra.",
- "desc": "La vue de débogage affiche en temps réel les objets suivis et leurs statistiques. La liste des objets affiche un résumé différé des objets détectés."
+ "desc": "La vue de débogage affiche en temps réel les objets suivis et leurs statistiques. La liste des objets affiche un résumé différé des objets détectés.",
+ "paths": {
+ "title": "Trajets",
+ "desc": "Afficher les points notables du trajet de l'objet suivi",
+ "tips": "
Trajets
Les lignes et les cercles indiqueront les points notables où l'objet suivi s'est déplacé pendant son cycle de vie.
"
+ },
+ "audio": {
+ "title": "Audio",
+ "noAudioDetections": "Aucune détection audio",
+ "score": "score",
+ "currentRMS": "RMS actuel",
+ "currentdbFS": "dbFS actuel"
+ },
+ "openCameraWebUI": "Ouvrir l'interface Web de {{camera}}"
},
"users": {
"title": "Utilisateurs",
@@ -532,7 +598,7 @@
"desc": "Gérez les comptes utilisateurs de cette instance Frigate."
},
"addUser": "Ajouter un utilisateur",
- "updatePassword": "Mettre à jour le mot de passe",
+ "updatePassword": "Réinitialiser le mot de passe",
"toast": {
"success": {
"roleUpdated": "Rôle mis à jour pour {{user}}",
@@ -552,7 +618,7 @@
"actions": "Actions",
"noUsers": "Aucun utilisateur trouvé.",
"changeRole": "Changer le rôle d'utilisateur",
- "password": "Mot de passe",
+ "password": "Réinitialiser le mot de passe",
"deleteUser": "Supprimer un utilisateur",
"role": "Rôle"
},
@@ -560,35 +626,48 @@
"form": {
"user": {
"title": "Nom d'utilisateur",
- "placeholder": "Entrez le nom d'utilisateur",
+ "placeholder": "Saisir le nom d'utilisateur",
"desc": "Seules les lettres, les chiffres, les points et les traits de soulignement sont autorisés."
},
"password": {
"strength": {
"weak": "Faible",
- "title": "Sécurité du mot de passe : ",
+ "title": "Niveau de sécurité du mot de passe : ",
"medium": "Moyen",
"strong": "Fort",
"veryStrong": "Très fort"
},
"match": "Les mots de passe correspondent",
- "notMatch": "Les mots de passe ne correspondent pas",
- "placeholder": "Entrez le mot de passe",
+ "notMatch": "Les mots de passe ne correspondent pas.",
+ "placeholder": "Saisir le mot de passe",
"title": "Mot de passe",
"confirm": {
- "title": "Confirmez le mot de passe",
- "placeholder": "Confirmez le mot de passe"
+ "title": "Confirmer le mot de passe",
+ "placeholder": "Confirmer le mot de passe"
+ },
+ "show": "Afficher le mot de passe",
+ "hide": "Masquer le mot de passe",
+ "requirements": {
+ "title": "Critères du mot de passe :",
+ "length": "Au moins 8 caractères",
+ "uppercase": "Au moins une lettre majuscule",
+ "digit": "Au moins un chiffre",
+ "special": "Au moins un caractère spécial (!@#$%^&*(),.?\":{}|<>)"
}
},
"newPassword": {
"title": "Nouveau mot de passe",
- "placeholder": "Entrez le nouveau mot de passe",
+ "placeholder": "Saisissez le nouveau mot de passe.",
"confirm": {
- "placeholder": "Ré-entrez le nouveau mot de passe"
+ "placeholder": "Confirmez le nouveau mot de passe."
}
},
- "usernameIsRequired": "Le nom d'utilisateur est requis",
- "passwordIsRequired": "Mot de passe requis"
+ "usernameIsRequired": "Nom d'utilisateur requis",
+ "passwordIsRequired": "Mot de passe requis",
+ "currentPassword": {
+ "title": "Mot de passe actuel",
+ "placeholder": "Saisissez votre mot de passe actuel"
+ }
},
"deleteUser": {
"title": "Supprimer un utilisateur",
@@ -597,10 +676,15 @@
},
"passwordSetting": {
"updatePassword": "Mettre à jour le mot de passe pour {{username}}",
- "setPassword": "Définir le mot de passe",
+ "setPassword": "Configurer un mot de passe",
"desc": "Créez un mot de passe fort pour sécuriser ce compte.",
"doNotMatch": "Les mots de passe ne correspondent pas",
- "cannotBeEmpty": "Le mot de passe ne peut être vide"
+ "cannotBeEmpty": "Le mot de passe ne peut être vide",
+ "currentPasswordRequired": "Le mot de passe actuel est requis.",
+ "incorrectCurrentPassword": "Le mot de passe actuel est incorrect",
+ "passwordVerificationFailed": "Échec de la vérification du mot de passe",
+ "multiDeviceWarning": "Tout autre appareil connecté devra se reconnecter dans un délai de {{refresh_time}}.",
+ "multiDeviceAdmin": "Vous pouvez également forcer la ré-authentification immédiate de tous les utilisateurs en renouvelant votre clé de sécurité JWT."
},
"changeRole": {
"title": "Changer le rôle de l'utilisateur",
@@ -610,42 +694,43 @@
"admin": "Administrateur",
"adminDesc": "Accès complet à l'ensemble des fonctionnalités.",
"viewer": "Observateur",
- "viewerDesc": "Limité aux tableaux de bord Direct, Revue d'événements, Explorer et Exports."
+ "viewerDesc": "Limité aux tableaux de bord Direct, Activités, Explorer et Exports.",
+ "customDesc": "Rôle personnalisé avec accès spécifique à la caméra"
},
"select": "Sélectionnez un rôle"
},
"createUser": {
"title": "Créer un nouvel utilisateur",
"desc": "Ajoutez un nouveau compte utilisateur et spécifiez un rôle pour accéder aux zones de l'interface utilisateur Frigate.",
- "usernameOnlyInclude": "Le nom d'utilisateur ne peut inclure que des lettres, des chiffres, . ou _",
+ "usernameOnlyInclude": "Le nom d'utilisateur ne peut inclure que des lettres, des chiffres, des points (.) ou des traits de soulignement (_).",
"confirmPassword": "Veuillez confirmer votre mot de passe"
}
}
},
"enrichments": {
- "title": "Paramètres des données augmentées",
+ "title": "Paramètres d'enrichissements",
"birdClassification": {
"title": "Identification des oiseaux",
- "desc": "L'identification des oiseaux est réalisée à l'aide d'un modèle TensorFlow quantifié. Lorsqu'un oiseau est reconnu, son nom commun est automatiquement ajouté comme sous-libellé. Cette information est intégréesà l'interface utilisateur, aux filtres de recherche et aux notifications."
+ "desc": "L'identification des oiseaux est réalisée à l'aide d'un modèle TensorFlow quantifié. Lorsqu'un oiseau est reconnu, son nom commun est automatiquement ajouté comme sous-étiquette. Cette information est intégrée à l'interface utilisateur, aux filtres de recherche et aux notifications."
},
"semanticSearch": {
"title": "Recherche sémantique",
"readTheDocumentation": "Lire la documentation",
"reindexNow": {
"label": "Réindexer maintenant",
- "desc": "La réindexation va régénérer les représentations numériques pour tous les objets suivis. Ce processus s'exécute en arrière-plan et peut saturer votre processeur et prendre un temps considérable, en fonction du nombre d'objets suivis.",
- "confirmTitle": "Confirmez la réindexation",
+ "desc": "La réindexation va régénérer les embeddings pour tous les objets suivis. Ce processus s'exécute en arrière-plan et peut saturer votre processeur et prendre un temps considérable en fonction du nombre d'objets suivis.",
+ "confirmTitle": "Confirmer la réindexation",
"confirmButton": "Réindexer",
"success": "La réindexation a démarré avec succès.",
"alreadyInProgress": "La réindexation est déjà en cours.",
"error": "Échec du démarrage de la réindexation : {{errorMessage}}",
- "confirmDesc": "Êtes-vous sûr de vouloir réindexer tous les représentations numériques des objets suivis ? Ce processus s'exécutera en arrière-plan, mais il pourrait saturer votre processeur et prendre un temps considérable. Vous pouvez suivre la progression sur la page Explorer."
+ "confirmDesc": "Êtes-vous sûr de vouloir réindexer tous les embeddings des objets suivis ? Ce processus s'exécutera en arrière-plan, mais il pourrait saturer votre processeur et prendre un temps considérable. Vous pouvez suivre la progression sur la page Explorer."
},
"modelSize": {
- "desc": "La taille du modèle utilisé pour les représentations numériques de recherche sémantique.",
+ "desc": "La taille du modèle utilisé pour les embeddings de recherche sémantique",
"small": {
"title": "petit",
- "desc": "Utiliser petit emploie une version quantifiée du modèle qui utilise moins de mémoire et s'exécute plus rapidement sur le processeur avec une différence négligeable dans la qualité des représentations numériques."
+ "desc": "Utiliser petit emploie une version quantifiée du modèle qui utilise moins de mémoire et s'exécute plus rapidement sur le processeur avec une différence négligeable dans la qualité des embeddings."
},
"large": {
"title": "grand",
@@ -653,35 +738,577 @@
},
"label": "Taille du modèle"
},
- "desc": "La recherche sémantique de Frigate vous permet de retrouver les objets suivis dans votre revue d'évènements en utilisant soit l'image elle-même, soit une description textuelle définie par l'utilisateur, soit une description générée automatiquement."
+ "desc": "La recherche sémantique de Frigate permet de retrouver des objets suivis au sein de vos activités en utilisant l'image elle-même, une description personnalisée ou une description générée automatiquement."
},
- "unsavedChanges": "Modifications non enregistrées des paramètres des données augmentées",
+ "unsavedChanges": "Modifications non enregistrées des paramètres d'enrichissements",
"faceRecognition": {
"title": "Reconnaissance faciale",
"readTheDocumentation": "Lire la documentation",
"modelSize": {
"label": "Taille du modèle",
- "desc": "La taille du modèle utilisé pour la reconnaissance faciale.",
+ "desc": "La taille du modèle utilisé pour la reconnaissance faciale",
"small": {
"title": "petit",
- "desc": "Utiliser petit emploie un modèle de représentation numérique faciale FaceNet qui s'exécute efficacement sur la plupart des processeurs."
+ "desc": "Utiliser petit emploie un modèle d'embedding facial FaceNet qui s'exécute efficacement sur la plupart des processeurs."
},
"large": {
"title": "grand",
- "desc": "Utiliser grand emploie un modèle de représentation numérique faciale ArcFace et s'exécutera automatiquement sur le GPU si disponible."
+ "desc": "Utiliser grand emploie un modèle d'embedding facial ArcFace et s'exécutera automatiquement sur le GPU si disponible."
}
},
- "desc": "La reconnaissance faciale permet à Frigate d'identifier les individus par leur nom. Dès qu'un visage est reconnu, Frigate associe ce nom comme sous-libellé à l'événement. Ces informations sont ensuite intégrées dans l'interface utilisateur, les options de filtrage et les notifications."
+ "desc": "La reconnaissance faciale permet à Frigate d'identifier les individus par leur nom. Dès qu'un visage est reconnu, Frigate associe ce nom comme sous-étiquette à l'événement. Ces informations sont ensuite intégrées dans l'interface utilisateur, les options de filtrage et les notifications."
},
"licensePlateRecognition": {
"title": "Reconnaissance des plaques d'immatriculation",
"readTheDocumentation": "Lire la documentation",
- "desc": "Frigate identifie les plaques d'immatriculation des véhicules et peut automatiquement insérer les caractères détectés dans le champ recognized_license_plate. Il est également capable d'assigner un nom familier comme sous-libellé aux objets de type \"voiture\". Par exemple, cette fonction est souvent utilisée pour lire les plaques des véhicules empruntant une allée ou une rue."
+ "desc": "Frigate identifie les plaques d'immatriculation des véhicules et peut automatiquement insérer les caractères détectés dans le champ recognized_license_plate. Il est également capable d'assigner un nom familier comme sous-étiquette aux objets de type \"voiture\". Par exemple, cette fonction est souvent utilisée pour lire les plaques des véhicules empruntant une allée ou une rue."
},
"toast": {
"error": "Échec de l'enregistrement des modifications de configuration : {{errorMessage}}",
- "success": "Les paramètres de données augmentées ont été enregistrés. Redémarrez Frigate pour appliquer les modifications."
+ "success": "Les paramètres d'enrichissements ont été enregistrés. Redémarrez Frigate pour appliquer vos modifications."
},
- "restart_required": "Redémarrage nécessaire (paramètres des données augmentées modifiés)"
+ "restart_required": "Redémarrage nécessaire (paramètres d'enrichissements modifiés)"
+ },
+ "triggers": {
+ "documentTitle": "Déclencheurs",
+ "management": {
+ "title": "Déclencheurs",
+ "desc": "Gérer les déclencheurs pour {{camera}}. Utilisez le type vignette pour déclencher à partir de vignettes similaires à l'objet suivi sélectionné. Utilisez le type description pour déclencher à partir de textes de description similaires que vous avez spécifiés."
+ },
+ "addTrigger": "Ajouter un déclencheur",
+ "table": {
+ "name": "Nom",
+ "type": "Type",
+ "content": "Contenu",
+ "threshold": "Seuil",
+ "actions": "Actions",
+ "noTriggers": "Aucun déclencheur configuré pour cette caméra.",
+ "edit": "Modifier",
+ "deleteTrigger": "Supprimer le déclencheur",
+ "lastTriggered": "Dernier déclencheur"
+ },
+ "type": {
+ "thumbnail": "Vignette",
+ "description": "Description"
+ },
+ "actions": {
+ "alert": "Marquer comme alerte",
+ "notification": "Envoyer une notification",
+ "sub_label": "Ajouter une sous-étiquette",
+ "attribute": "Ajouter un attribut"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Créer un déclencheur",
+ "desc": "Créer un déclencheur pour la caméra {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Modifier le déclencheur",
+ "desc": "Modifier les paramètres du déclencheur de la caméra {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Supprimer le déclencheur",
+ "desc": "Êtes-vous sûr de vouloir supprimer le déclencheur {{triggerName}} ? Cette action est irréversible."
+ },
+ "form": {
+ "name": {
+ "title": "Nom",
+ "placeholder": "Nommez ce déclencheur",
+ "error": {
+ "minLength": "Le champ doit comporter au moins deux caractères.",
+ "invalidCharacters": "Le champ peut contenir uniquement des lettres, des nombres, des tirets bas, et des tirets.",
+ "alreadyExists": "Un déclencheur avec le même nom existe déjà pour cette caméra."
+ },
+ "description": "Saisissez un nom ou une description unique pour identifier ce déclencheur."
+ },
+ "enabled": {
+ "description": "Activer ou désactiver ce déclencheur"
+ },
+ "type": {
+ "title": "Type",
+ "placeholder": "Sélectionner un type de déclencheur",
+ "description": "Déclencher lorsqu'une description d'objet suivi similaire est détectée",
+ "thumbnail": "Déclencher lorsqu'une vignette d'objet suivi similaire est détectée"
+ },
+ "content": {
+ "title": "Contenu",
+ "imagePlaceholder": "Sélectionner une vignette",
+ "textPlaceholder": "Saisir le contenu du texte",
+ "imageDesc": "Seules les 100 vignettes les plus récentes sont affichées. Si vous ne trouvez pas la vignette souhaitée, veuillez consulter les objets précédents dans Explorer et configurer un déclencheur à partir de ce menu.",
+ "textDesc": "Entrez un texte pour déclencher cette action lorsqu'une description similaire d'objet suivi est détectée.",
+ "error": {
+ "required": "Le contenu est requis."
+ }
+ },
+ "threshold": {
+ "title": "Seuil",
+ "error": {
+ "min": "Le seuil doit être au moins 0",
+ "max": "Le seuil peut être au plus 1"
+ },
+ "desc": "Définissez le seuil de similarité pour ce déclencheur. Un seuil plus élevé signifie qu'une correspondance plus exacte est requise pour activer le déclencheur."
+ },
+ "actions": {
+ "title": "Actions",
+ "desc": "Par défaut, Frigate envoie un message MQTT pour tous les déclencheurs. Les sous-étiquettes ajoutent le nom du déclencheur à l'étiquette de l'objet. Les attributs sont des métadonnées recherchables stockées séparément dans les métadonnées de l'objet suivi.",
+ "error": {
+ "min": "Au moins une action doit être sélectionnée."
+ }
+ },
+ "friendly_name": {
+ "title": "Nom convivial",
+ "placeholder": "Nommez ou décrivez ce déclencheur",
+ "description": "Nom convivial ou texte descriptif facultatif pour ce déclencheur."
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Le déclencheur {{name}} a été créé avec succès.",
+ "updateTrigger": "Le déclencheur {{name}} a été mis à jour avec succès.",
+ "deleteTrigger": "Le déclencheur {{name}} a été supprimé avec succès."
+ },
+ "error": {
+ "createTriggerFailed": "Échec de la création du déclencheur : {{errorMessage}}",
+ "updateTriggerFailed": "Échec de la mise à jour du déclencheur : {{errorMessage}}",
+ "deleteTriggerFailed": "Échec de la suppression du déclencheur : {{errorMessage}}"
+ }
+ },
+ "semanticSearch": {
+ "title": "La recherche sémantique est désactivée",
+ "desc": "La recherche sémantique doit être activée pour utiliser les déclencheurs."
+ },
+ "wizard": {
+ "title": "Créer un déclencheur",
+ "step1": {
+ "description": "Configurez les paramètres de base pour votre déclencheur."
+ },
+ "step2": {
+ "description": "Configurez le contenu qui déclenchera cette action."
+ },
+ "step3": {
+ "description": "Configurez le seuil et les actions pour ce déclencheur."
+ },
+ "steps": {
+ "nameAndType": "Nom et type",
+ "configureData": "Configuration des données",
+ "thresholdAndActions": "Seuil et actions"
+ }
+ }
+ },
+ "roles": {
+ "management": {
+ "title": "Gestion des rôles Observateur",
+ "desc": "Gérer les rôles Observateur personnalisés et leurs permissions d'accès aux caméras pour cette instance de Frigate."
+ },
+ "addRole": "Ajouter un rôle",
+ "table": {
+ "role": "Rôle",
+ "cameras": "Caméras",
+ "actions": "Actions",
+ "noRoles": "Aucun rôle personnalisé trouvé.",
+ "editCameras": "Modifier les caméras",
+ "deleteRole": "Supprimer le rôle"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Rôle {{role}} créé avec succès",
+ "updateCameras": "Caméras mis à jour pour le rôle {{role}}",
+ "deleteRole": "Rôle {{role}} supprimé avec succès",
+ "userRolesUpdated_one": "{{count}} utilisateur affecté à ce rôle a été mis à jour avec des droits \"Observateur\", et a accès à toutes les caméras.",
+ "userRolesUpdated_many": "{{count}} utilisateurs affectés à ce rôle ont été mis à jour avec des droits \"Observateur\", et ont accès à toutes les caméras.",
+ "userRolesUpdated_other": "{{count}} utilisateurs affectés à ce rôle ont été mis à jour avec des droits \"Observateur\", et ont accès à toutes les caméras."
+ },
+ "error": {
+ "createRoleFailed": "Échec dans la création du rôle : {{errorMessage}}",
+ "updateCamerasFailed": "Échec de la mise à jour des caméras : {{errorMessage}}",
+ "deleteRoleFailed": "Échec lors de la suppression du rôle : {{errorMessage}}",
+ "userUpdateFailed": "Echec lors de la mise à jour des rôles de l'utilisateur : {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Créer un nouveau rôle",
+ "desc": "Ajouter un nouveau rôle et définir les permissions d'accès à la caméra."
+ },
+ "editCameras": {
+ "title": "Modifier les caméras du rôle",
+ "desc": "Mettre à jour les accès aux caméras pour le rôle {{role}}."
+ },
+ "deleteRole": {
+ "title": "Suppression du rôle",
+ "desc": "Cette action est irréversible. Elle supprimera définitivement le rôle et tous les utilisateurs associés seront affectés au rôle \"Observateur\", avec un accès à toutes les caméras.",
+ "warn": "Êtes-vous sûr de vouloir supprimer {{role}} ?",
+ "deleting": "En cours de suppression..."
+ },
+ "form": {
+ "role": {
+ "title": "Nom du rôle",
+ "placeholder": "Saisissez un nom de rôle.",
+ "desc": "Seuls les lettres, les chiffres, les points et les traits de soulignement sont autorisés.",
+ "roleIsRequired": "Un nom de rôle est requis",
+ "roleOnlyInclude": "Le nom de rôle ne peut inclure que des lettres, des chiffres, des points (.) ou des traits de soulignement (_).",
+ "roleExists": "Un rôle avec ce nom existe déjà."
+ },
+ "cameras": {
+ "title": "Caméras",
+ "desc": "Sélectionnez les caméras auxquelles ce rôle aura accès. Au moins une caméra est requise.",
+ "required": "Au moins une caméra doit être sélectionnée."
+ }
+ }
+ }
+ },
+ "cameraWizard": {
+ "title": "Ajouter une caméra",
+ "description": "Suivez les étapes ci-dessous pour ajouter une nouvelle caméra à votre installation Frigate.",
+ "steps": {
+ "nameAndConnection": "Nom et connexion",
+ "streamConfiguration": "Configuration du flux",
+ "validationAndTesting": "Validation et tests",
+ "probeOrSnapshot": "Sondage ou Instantané"
+ },
+ "save": {
+ "success": "Nouvelle caméra {{cameraName}} enregistrée avec succès",
+ "failure": "Échec lors de l'enregistrement de {{cameraName}}"
+ },
+ "testResultLabels": {
+ "resolution": "Résolution",
+ "video": "Vidéo",
+ "audio": "Audio",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Veuillez saisir une URL de flux valide.",
+ "testFailed": "Échec du test de flux : {{error}}"
+ },
+ "step1": {
+ "description": "Saisissez les détails de votre caméra et choisissez d'interroger la caméra ou de sélectionner manuellement la marque.",
+ "cameraName": "Nom de la caméra",
+ "cameraNamePlaceholder": "par ex., porte_entree ou apercu_cour_arriere",
+ "host": "Hôte / Adresse IP",
+ "port": "Port",
+ "username": "Nom d'utilisateur",
+ "usernamePlaceholder": "Facultatif",
+ "password": "Mot de passe",
+ "passwordPlaceholder": "Facultatif",
+ "selectTransport": "Sélectionnez le protocole de transport.",
+ "cameraBrand": "Marque de la caméra",
+ "selectBrand": "Sélectionnez la marque de la caméra pour déterminer la forme de l'URL.",
+ "customUrl": "URL de flux personnalisé",
+ "brandInformation": "Information sur la marque",
+ "brandUrlFormat": "Pour les caméras avec un format d'URL RTSP comme : {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://nomutilisateur:motdepasse@hote:port/chemin",
+ "testConnection": "Tester la connexion",
+ "testSuccess": "Test de connexion réussi !",
+ "testFailed": "Échec du test de connexion. Veuillez vérifier votre saisie et réessayez.",
+ "streamDetails": "Détails du flux",
+ "warnings": {
+ "noSnapshot": "Impossible de récupérer un instantané à partir du flux configuré"
+ },
+ "errors": {
+ "brandOrCustomUrlRequired": "Sélectionnez une marque de caméra avec hôte/IP ou choisissez « Autre » avec une URL personnalisée.",
+ "nameRequired": "Le nom de la caméra est requis.",
+ "nameLength": "Le nom de la caméra ne doit pas dépasser 64 caractères.",
+ "invalidCharacters": "Le nom de la caméra contient des caractères invalides.",
+ "nameExists": "Ce nom de caméra est déjà utilisé.",
+ "brands": {
+ "reolink-rtsp": "Le protocole RTSP de Reolink est déconseillé. Activez le protocole HTTP dans les paramètres du firmware de la caméra, puis relancez l'assistant."
+ },
+ "customUrlRtspRequired": "Les URL personnalisées doivent commencer par \"rtsp://\". Une configuration manuelle est requise pour les flux de caméra non-RTSP."
+ },
+ "docs": {
+ "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
+ },
+ "testing": {
+ "probingMetadata": "Vérification des métadonnées de la caméra en cours...",
+ "fetchingSnapshot": "Récupération de l'instantané de la caméra en cours..."
+ },
+ "connectionSettings": "Paramètres de connexion",
+ "detectionMethod": "Méthode de détection du flux",
+ "onvifPort": "Port ONVIF",
+ "probeMode": "Interroger la caméra",
+ "manualMode": "Sélection manuelle",
+ "detectionMethodDescription": "Interrogez la caméra avec ONVIF (si pris en charge) pour trouver les URL de flux de la caméra, ou sélectionnez manuellement la marque de la caméra pour utiliser des URL prédéfinies. Pour saisir une URL RTSP personnalisée, choisissez la méthode manuelle et sélectionnez \"Autre\".",
+ "onvifPortDescription": "Pour les caméras prenant en charge ONVIF, il s'agit généralement de 80 ou 8080.",
+ "useDigestAuth": "Utiliser l'authentification Digest",
+ "useDigestAuthDescription": "Utilisez l'authentification Digest HTTP pour ONVIF. Certaines caméras peuvent nécessiter un nom d'utilisateur/mot de passe ONVIF dédié au lieu de l'utilisateur administrateur standard."
+ },
+ "step2": {
+ "description": "Interrogez la caméra pour les flux disponibles ou configurez des paramètres manuels en fonction de la méthode de détection sélectionnée.",
+ "streamsTitle": "Flux de caméra",
+ "addStream": "Ajouter un flux",
+ "addAnotherStream": "Ajouter un autre flux",
+ "streamTitle": "Flux {{number}}",
+ "streamUrl": "URL du flux",
+ "streamUrlPlaceholder": "rtsp://nomutilisateur:motdepasse@hote:port/chemin",
+ "url": "URL",
+ "resolution": "Résolution",
+ "selectResolution": "Sélectionnez la résolution.",
+ "quality": "Qualité",
+ "selectQuality": "Sélectionnez la qualité.",
+ "roles": "Rôles",
+ "roleLabels": {
+ "record": "Enregistrement",
+ "audio": "Audio",
+ "detect": "Détection d'objets"
+ },
+ "testStream": "Tester la connexion",
+ "testSuccess": "Test de connexion réussi !",
+ "testFailed": "Échec du test de connexion. Veuillez vérifier votre saisie et réessayer.",
+ "testFailedTitle": "Échec du test",
+ "connected": "Connecté",
+ "notConnected": "Non connecté",
+ "featuresTitle": "Caractéristiques",
+ "go2rtc": "Réduire le nombre de connexions à la caméra",
+ "detectRoleWarning": "Pour continuer, au moins un flux doit avoir le rôle \"détection\".",
+ "rolesPopover": {
+ "title": "Rôles du flux",
+ "detect": "Flux principal pour la détection d'objets",
+ "record": "Enregistre des extraits du flux vidéo en fonction des paramètres de configuration.",
+ "audio": "Flux pour la détection audio"
+ },
+ "featuresPopover": {
+ "title": "Fonctionnalités du flux",
+ "description": "Utilisez la rediffusion du flux go2rtc pour réduire le nombre de connexions à votre caméra."
+ },
+ "streamDetails": "Détails du flux",
+ "probing": "Interrogation de la caméra en cours...",
+ "retry": "Réessayer",
+ "testing": {
+ "probingMetadata": "Interrogation des métadonnées de la caméra en cours...",
+ "fetchingSnapshot": "Récupération de l'instantané de la caméra en cours..."
+ },
+ "probeFailed": "Impossible d'interroger la caméra : {{error}}",
+ "probingDevice": "Interrogation de l'appareil en cours...",
+ "probeSuccessful": "Interrogation réussie",
+ "probeError": "Erreur d'interrogation",
+ "probeNoSuccess": "Échec de l'interrogation",
+ "deviceInfo": "Informations sur l'appareil",
+ "manufacturer": "Fabricant",
+ "model": "Modèle",
+ "firmware": "Micrologiciel",
+ "profiles": "Profils",
+ "ptzSupport": "Prise en charge PTZ",
+ "autotrackingSupport": "Prise en charge du suivi automatique",
+ "presets": "Préréglages",
+ "rtspCandidates": "Candidats RTSP",
+ "rtspCandidatesDescription": "Les URL RTSP suivantes ont été trouvées lors de l'interrogation de la caméra. Testez la connexion pour afficher les métadonnées du flux.",
+ "noRtspCandidates": "Aucune URL RTSP n'a été trouvée sur la caméra. Vos identifiants sont peut-être incorrects, ou la caméra ne prend peut-être pas en charge ONVIF ou la méthode utilisée pour récupérer les URL RTSP. Revenez en arrière et saisissez l'URL RTSP manuellement.",
+ "candidateStreamTitle": "Candidat {{number}}",
+ "useCandidate": "Utiliser",
+ "uriCopy": "Copier",
+ "uriCopied": "URI copiée dans le presse-papiers",
+ "testConnection": "Tester la connexion",
+ "toggleUriView": "Cliquer pour basculer l'affichage de l'URI complet",
+ "errors": {
+ "hostRequired": "L'hôte/adresse IP est requis."
+ }
+ },
+ "step3": {
+ "description": "Configurez les rôles des flux et ajoutez des flux supplémentaires pour votre caméra.",
+ "validationTitle": "Validation du flux",
+ "connectAllStreams": "Connecter tous les flux",
+ "reconnectionSuccess": "Reconnexion réussie.",
+ "reconnectionPartial": "La reconnexion de certains flux a échoué.",
+ "streamUnavailable": "Aperçu du flux indisponible",
+ "reload": "Recharger",
+ "connecting": "Connexion en cours...",
+ "streamTitle": "Flux {{number}}",
+ "failed": "Échec",
+ "notTested": "Non testé",
+ "connectStream": "Connecter",
+ "connectingStream": "Connexion en cours",
+ "disconnectStream": "Déconnecter",
+ "estimatedBandwidth": "Débit estimé",
+ "roles": "Rôles",
+ "none": "Aucun",
+ "error": "Erreur",
+ "streamValidated": "Flux {{number}} validé avec succès",
+ "streamValidationFailed": "La validation du flux {{number}} a échoué",
+ "saveAndApply": "Enregistrer une nouvelle caméra",
+ "saveError": "Configuration invalide. Veuillez vérifier vos paramètres.",
+ "issues": {
+ "title": "Validation du flux",
+ "videoCodecGood": "Le codec vidéo est {{codec}}.",
+ "audioCodecGood": "Le codec audio est {{codec}}.",
+ "noAudioWarning": "Aucun son n'est détecté sur ce flux, les enregistrements seront muets.",
+ "audioCodecRecordError": "Le codec audio AAC est requis pour la prise en charge du son dans les enregistrements.",
+ "audioCodecRequired": "Un flux audio est requis pour prendre en charge la détection audio.",
+ "restreamingWarning": "La réduction des connexions à la caméra pour le flux d'enregistrement peut augmenter légèrement l'utilisation du processeur.",
+ "dahua": {
+ "substreamWarning": "Le flux secondaire 1 est limité en basse résolution. De nombreuses caméras (Dahua, Amcrest, EmpireTech...) proposent des flux supplémentaires qu'il suffit d'activer dans leurs propres paramètres. Il est recommandé de vérifier leur disponibilité et de les utiliser."
+ },
+ "hikvision": {
+ "substreamWarning": "Le flux secondaire 1 est limité en basse résolution. De nombreuses caméras Hikvision proposent des flux supplémentaires qu'il suffit d'activer dans leurs propres paramètres. Il est recommandé de vérifier leur disponibilité et de les utiliser."
+ },
+ "resolutionHigh": "La résolution {{resolution}} risque d'augmenter l'utilisation des ressources.",
+ "resolutionLow": "La résolution {{resolution}} risque d'être trop faible pour détecter les petits objets de manière fiable."
+ },
+ "valid": "Valide",
+ "ffmpegModule": "Utiliser le mode de compatibilité du flux",
+ "ffmpegModuleDescription": "Si le flux ne se charge pas après plusieurs tentatives, essayez d'activer cette option. Lorsqu'elle est activée, Frigate utilisera le module ffmpeg avec go2rtc. Cela peut offrir une meilleure compatibilité avec certains flux de caméra.",
+ "streamsTitle": "Flux de la caméra",
+ "addStream": "Ajouter un flux",
+ "addAnotherStream": "Ajouter un autre flux",
+ "streamUrl": "URL du flux",
+ "streamUrlPlaceholder": "rtsp://nomdutilisateur:motdepasse@hote:port/chemin",
+ "selectStream": "Sélectionner un flux",
+ "searchCandidates": "Rechercher des candidats",
+ "noStreamFound": "Aucun flux trouvé",
+ "url": "URL",
+ "resolution": "Résolution",
+ "selectResolution": "Sélectionner la résolution",
+ "quality": "Qualité",
+ "selectQuality": "Sélectionner la qualité",
+ "roleLabels": {
+ "detect": "Détection d'objet",
+ "record": "Enregistrement",
+ "audio": "Audio"
+ },
+ "testStream": "Tester la connexion",
+ "testSuccess": "Test du flux réussi !",
+ "testFailed": "Échec du test du flux",
+ "testFailedTitle": "Échec du test",
+ "connected": "Connecté",
+ "notConnected": "Non connecté",
+ "featuresTitle": "Fonctionnalités",
+ "go2rtc": "Réduire les connexions à la caméra",
+ "detectRoleWarning": "Au moins un flux doit avoir le rôle 'détection' pour continuer.",
+ "rolesPopover": {
+ "title": "Rôles du flux",
+ "detect": "Flux principal pour la détection d'objet",
+ "record": "Enregistre des segments du flux vidéo en fonction des paramètres de configuration",
+ "audio": "Flux pour la détection basée sur l'audio"
+ },
+ "featuresPopover": {
+ "title": "Fonctionnalités du flux",
+ "description": "Utiliser la rediffusion go2rtc pour réduire les connexions à votre caméra"
+ }
+ },
+ "step4": {
+ "description": "Validation et analyse finales avant d'enregistrer votre nouvelle caméra. Connectez chaque flux avant d'enregistrer.",
+ "validationTitle": "Validation du flux",
+ "connectAllStreams": "Connecter tous les flux",
+ "reconnectionSuccess": "Reconnexion réussie",
+ "reconnectionPartial": "Certains flux n'ont pas réussi à se reconnecter.",
+ "streamUnavailable": "Aperçu du flux non disponible",
+ "reload": "Recharger",
+ "connecting": "En cours de connexion...",
+ "streamTitle": "Flux {{number}}",
+ "valid": "Valide",
+ "failed": "Échec",
+ "notTested": "Non testé",
+ "connectStream": "Connecter",
+ "connectingStream": "En cours de connexion",
+ "disconnectStream": "Déconnecter",
+ "estimatedBandwidth": "Bande passante estimée",
+ "roles": "Rôles",
+ "ffmpegModule": "Utiliser le mode de compatibilité du flux",
+ "ffmpegModuleDescription": "Si le flux ne se charge pas après plusieurs tentatives, essayez d'activer cette option. Lorsqu'elle est activée, Frigate utilisera le module ffmpeg avec go2rtc. Cela peut offrir une meilleure compatibilité avec certains flux de caméra.",
+ "none": "Aucun",
+ "error": "Erreur",
+ "streamValidated": "Flux {{number}} validé avec succès",
+ "streamValidationFailed": "Échec de la validation du flux {{number}}",
+ "saveAndApply": "Enregistrer la nouvelle caméra",
+ "saveError": "Configuration invalide. Veuillez vérifier vos paramètres.",
+ "issues": {
+ "title": "Validation du flux",
+ "videoCodecGood": "Le codec vidéo est {{codec}}.",
+ "audioCodecGood": "Le codec audio est {{codec}}.",
+ "resolutionHigh": "Une résolution de {{resolution}} peut entraîner une utilisation accrue des ressources.",
+ "resolutionLow": "Une résolution de {{resolution}} peut être trop faible pour une détection fiable des petits objets.",
+ "noAudioWarning": "Aucun audio détecté pour ce flux, les enregistrements n'auront pas de son.",
+ "audioCodecRecordError": "Le codec audio AAC est requis pour prendre en charge l'audio dans les enregistrements.",
+ "audioCodecRequired": "Un flux audio est requis pour prendre en charge la détection audio.",
+ "restreamingWarning": "Réduire les connexions à la caméra pour le flux d'enregistrement peut légèrement augmenter l'utilisation du processeur.",
+ "brands": {
+ "reolink-rtsp": "Le RTSP Reolink n'est pas recommandé. Activez HTTP dans les paramètres du micrologiciel de la caméra et redémarrez l'assistant.",
+ "reolink-http": "Les flux HTTP de Reolink devraient utiliser FFmpeg pour une meilleure compatibilité. Activez 'Utiliser le mode de compatibilité du flux' pour ce flux."
+ },
+ "dahua": {
+ "substreamWarning": "Le sous-flux 1 est limité à une basse résolution. De nombreuses caméras Dahua / Amcrest / EmpireTech prennent en charge des sous-flux supplémentaires qui doivent être activés dans les paramètres de la caméra. Il est recommandé de vérifier et d'utiliser ces flux s'ils sont disponibles."
+ },
+ "hikvision": {
+ "substreamWarning": "Le sous-flux 1 est limité à une basse résolution. De nombreuses caméras Hikvision prennent en charge des sous-flux supplémentaires qui doivent être activés dans les paramètres de la caméra. Il est recommandé de vérifier et d'utiliser ces flux s'ils sont disponibles."
+ }
+ }
+ }
+ },
+ "cameraManagement": {
+ "title": "Gérer les caméras",
+ "addCamera": "Ajouter une nouvelle caméra",
+ "editCamera": "Modifier la caméra :",
+ "selectCamera": "Sélectionnez une caméra",
+ "backToSettings": "Retour aux paramètres de la caméra",
+ "streams": {
+ "title": "Activer / désactiver les caméras",
+ "desc": "Désactive temporairement une caméra jusqu'au redémarrage de Frigate. La désactivation d'une caméra interrompt complètement le traitement des flux de la caméra par Frigate. La détection, l'enregistrement et le débogage deviennent alors indisponibles. Remarque : cela n'affecte pas les rediffusions des flux go2rtc."
+ },
+ "cameraConfig": {
+ "add": "Ajouter une caméra",
+ "edit": "Modifier la caméra",
+ "description": "Configurez les paramètres de la caméra, notamment les flux entrants et les rôles.",
+ "name": "Nom de la caméra",
+ "nameRequired": "Le nom de la caméra est requis",
+ "nameLength": "Le nom de la caméra doit comporter moins de 64 caractères.",
+ "namePlaceholder": "par exemple, porte d'entrée ou aperçu de la cour arrière",
+ "enabled": "Activé",
+ "ffmpeg": {
+ "inputs": "Flux d'entrée",
+ "path": "Chemin du flux",
+ "pathRequired": "Chemin du flux requis",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Rôles",
+ "rolesRequired": "Au moins un rôle est requis",
+ "rolesUnique": "Chaque rôle (audio, détection, enregistrement) ne peut être attribué qu'à un seul flux",
+ "addInput": "Ajouter un flux d'entrée",
+ "removeInput": "Supprimer le flux d'entrée",
+ "inputsRequired": "Au moins un flux d'entrée est requis"
+ },
+ "go2rtcStreams": "Flux go2rtc",
+ "streamUrls": "URL des flux",
+ "addUrl": "Ajouter une URL",
+ "addGo2rtcStream": "Ajouter un flux go2rtc",
+ "toast": {
+ "success": "La caméra {{cameraName}} a été enregistrée avec succès"
+ }
+ }
+ },
+ "cameraReview": {
+ "title": "Paramètres des activités caméra",
+ "object_descriptions": {
+ "title": "Descriptions d'objets par l'IA générative",
+ "desc": "Active ou désactive temporairement les descriptions d'objets générées par l'IA générative pour cette caméra. Lorsque cette option est désactivée, aucune description par l'IA n'est générée pour les objets suivis sur cette caméra."
+ },
+ "review_descriptions": {
+ "title": "Descriptions des activités par l'IA générative",
+ "desc": "Active ou désactive temporairement les descriptions par l'IA générative pour cette caméra. Lorsque cette option est désactivée, aucune description nouvelle n'est générée pour les activités sur cette caméra."
+ },
+ "review": {
+ "title": "Activités",
+ "desc": "Active ou désactive temporairement les alertes et les détections pour cette caméra jusqu'au redémarrage de Frigate. Lorsque cette option est désactivée, aucune activité nouvelle n'est générée. ",
+ "alerts": "Alertes ",
+ "detections": "Détections "
+ },
+ "reviewClassification": {
+ "title": "Classification des activités",
+ "desc": "Frigate classe les activités en deux catégories : \"Alertes\" et \"Détections\". Par défaut, les objets de type personne et voiture sont considérés comme des \"Alertes\". Vous pouvez affiner cette classification en définissant des zones spécifiques pour chaque objet.",
+ "noDefinedZones": "Aucune zone n'est définie pour cette caméra.",
+ "objectAlertsTips": "Sur la caméra {{cameraName}}, tous les objets {{alertsLabels}} apparaîtront en tant qu'\"Alertes\".",
+ "zoneObjectAlertsTips": "Sur la caméra {{cameraName}}, tous les objets {{alertsLabels}} détectés dans la zone {{zone}} apparaîtront en tant qu'\"Alertes\".",
+ "objectDetectionsTips": "Sur la caméra {{cameraName}}, tous les objets {{detectionsLabels}} non catégorisés apparaîtront en tant que \"Détections\", peu importe leur zone.",
+ "zoneObjectDetectionsTips": {
+ "text": "Sur la caméra {{cameraName}}, tous les objets {{detectionsLabels}} non catégorisés dans la zone {{zone}} apparaîtront en tant que \"Détections\".",
+ "notSelectDetections": "Sur la caméra {{cameraName}}, tous les objets {{detectionsLabels}} détectés dans la zone {{zone}} qui ne sont pas catégorisés comme \"Alertes\" apparaîtront en tant que \"Détections\", et ce, quelle que soit leur zone.",
+ "regardlessOfZoneObjectDetectionsTips": "Sur la caméra {{cameraName}}, tous les objets {{detectionsLabels}} non catégorisés apparaîtront en tant que \"Détections\", peu importe leur zone."
+ },
+ "unsavedChanges": "Paramètres de classification des activités non enregistrés pour {{camera}}",
+ "selectAlertsZones": "Sélectionnez les zones pour les alertes",
+ "selectDetectionsZones": "Sélectionner les zones pour les détections",
+ "limitDetections": "Limiter les détections à des zones spécifiques",
+ "toast": {
+ "success": "La configuration de la classification des activités a été enregistrée. Redémarrez Frigate pour appliquer les modifications."
+ }
+ }
}
}
diff --git a/web/public/locales/fr/views/system.json b/web/public/locales/fr/views/system.json
index 9b3d8a5dc7..f261fa9966 100644
--- a/web/public/locales/fr/views/system.json
+++ b/web/public/locales/fr/views/system.json
@@ -3,7 +3,7 @@
"storage": "Statistiques de stockage - Frigate",
"cameras": "Statistiques des caméras - Frigate",
"general": "Statistiques générales - Frigate",
- "enrichments": "Statistiques de données augmentées - Frigate",
+ "enrichments": "Statistiques d'enrichissements - Frigate",
"logs": {
"frigate": "Journaux de Frigate - Frigate",
"nginx": "Journaux Nginx - Frigate",
@@ -18,8 +18,8 @@
},
"copy": {
"label": "Copier dans le presse-papiers",
- "success": "Journaux copiés vers le presse-papiers",
- "error": "Échec du copiage des journaux dans le presse-papiers"
+ "success": "Journaux copiés dans le presse-papiers",
+ "error": "Échec de la copie des journaux dans le presse-papiers"
},
"type": {
"label": "Type",
@@ -27,7 +27,7 @@
"tag": "Balise",
"message": "Message"
},
- "tips": "Les logs sont diffusés en continu depuis le serveur",
+ "tips": "Les journaux sont diffusés en continu depuis le serveur",
"toast": {
"error": {
"fetchingLogsFailed": "Erreur lors de la récupération des logs : {{errorMessage}}",
@@ -40,22 +40,23 @@
"detector": {
"title": "Détecteurs",
"inferenceSpeed": "Vitesse d'inférence du détecteur",
- "cpuUsage": "Utilisation processeur du détecteur",
+ "cpuUsage": "Utilisation CPU du détecteur",
"memoryUsage": "Utilisation mémoire du détecteur",
- "temperature": "Température du détecteur"
+ "temperature": "Température du détecteur",
+ "cpuUsageInformation": "Utilisation CPU pour préparer les données en entrée et en sortie des modèles de détection. Cette valeur ne mesure pas l'utilisation de l'inférence, même si un GPU ou un accélérateur est utilisé."
},
"hardwareInfo": {
- "title": "Info matériel",
- "gpuUsage": "Utilisation carte graphique",
- "gpuMemory": "Mémoire carte graphique",
- "gpuEncoder": "Encodeur carte graphique",
- "gpuDecoder": "Décodeur carte graphique",
+ "title": "Informations sur le matériel",
+ "gpuUsage": "Utilisation du GPU",
+ "gpuMemory": "Mémoire du GPU",
+ "gpuEncoder": "Encodeur GPU",
+ "gpuDecoder": "Décodeur GPU",
"gpuInfo": {
"vainfoOutput": {
"title": "Sortie Vainfo",
"returnCode": "Code de retour : {{code}}",
- "processOutput": "Tâche de sortie :",
- "processError": "Erreur de tâche :"
+ "processOutput": "Sortie du processus :",
+ "processError": "Erreur du processus :"
},
"nvidiaSMIOutput": {
"title": "Sortie Nvidia SMI",
@@ -65,22 +66,27 @@
"driver": "Pilote : {{driver}}"
},
"copyInfo": {
- "label": "Information de copie du GPU"
+ "label": "Copier les informations du GPU"
},
"toast": {
- "success": "Informations GPU copiées dans le presse-papier"
+ "success": "Informations GPU copiées dans le presse-papiers"
},
"closeInfo": {
- "label": "Information de fermeture du GPU"
+ "label": "Fermer les informations du GPU"
}
},
"npuUsage": "Utilisation NPU",
- "npuMemory": "Mémoire NPU"
+ "npuMemory": "Mémoire NPU",
+ "intelGpuWarning": {
+ "title": "Avertissement relatif aux statistiques du GPU Intel",
+ "message": "Statistiques du GPU non disponibles",
+ "description": "Il s'agit d'un bug connu de l'outil de statistiques GPU d'Intel (intel_gpu_top) : il peut afficher à tort une utilisation de 0 %, même lorsque l'accélération matérielle et la détection d'objets fonctionnent correctement sur l'iGPU. Ce problème ne vient pas de Frigate. Vous pouvez redémarrer l'hôte pour rétablir temporairement l'affichage et confirmer le fonctionnement du GPU. Les performances ne sont pas affectées."
+ }
},
"otherProcesses": {
- "title": "Autres tâches",
- "processCpuUsage": "Utilisation processeur des tâches",
- "processMemoryUsage": "Utilisation mémoire des tâches"
+ "title": "Autres processus",
+ "processCpuUsage": "Utilisation CPU du processus",
+ "processMemoryUsage": "Utilisation mémoire du processus"
}
},
"storage": {
@@ -88,93 +94,108 @@
"recordings": {
"title": "Enregistrements",
"earliestRecording": "Enregistrement le plus ancien :",
- "tips": "Cette valeur correspond au stockage total utilisé par les enregistrements dans la base de données Frigate. Frigate ne suit pas l'utilisation du stockage pour tous les fichiers sur votre disque."
+ "tips": "Cette valeur correspond au stockage total utilisé par les enregistrements dans la base de données Frigate. Frigate ne suit pas l'utilisation du stockage pour tous les fichiers de votre disque."
},
"cameraStorage": {
"title": "Stockage de la caméra",
"bandwidth": "Bande passante",
"unused": {
"title": "Inutilisé",
- "tips": "Cette valeur ne représente peut-être pas précisément l'espace libre et utilisable par Frigate si vous avez d'autres fichiers stockés sur ce disque en plus des enregistrements Frigate. Frigate ne suit pas l'utilisation du stockage en dehors de ses propres enregistrements."
+ "tips": "Cette valeur peut ne pas représenter précisément l'espace libre disponible pour Frigate si d'autres fichiers sont stockés sur votre disque en plus des enregistrements Frigate. Frigate ne suit pas l'utilisation du stockage en dehors de ses enregistrements."
},
"percentageOfTotalUsed": "Pourcentage du total",
"storageUsed": "Stockage",
"camera": "Caméra",
- "unusedStorageInformation": "Information sur le stockage non utilisé"
+ "unusedStorageInformation": "Informations sur le stockage non utilisé"
},
- "overview": "Vue d'ensemble"
+ "overview": "Vue d'ensemble",
+ "shm": {
+ "title": "Allocation de mémoire partagée SHM",
+ "warning": "La taille actuelle de la SHM de {{total}} Mo est trop petite. Augmentez-la au moins à {{min_shm}} Mo."
+ }
},
"cameras": {
"title": "Caméras",
"info": {
- "cameraProbeInfo": "{{camera}} Information récupérée depuis la caméra",
- "fetching": "En cours de récupération des données de la caméra",
+ "cameraProbeInfo": "Informations de la sonde pour {{camera}}",
+ "fetching": "Récupération des données de la caméra en cours",
"stream": "Flux {{idx}}",
- "fps": "Images par seconde :",
+ "fps": "IPS :",
"unknown": "Inconnu",
"audio": "Audio :",
"tips": {
- "title": "Information récupérée depuis la caméra"
+ "title": "Informations de la sonde caméra"
},
- "streamDataFromFFPROBE": "Le flux de données est obtenu par ffprobe.",
+ "streamDataFromFFPROBE": "Les données du flux sont obtenues avec ffprobe.",
"resolution": "Résolution :",
"error": "Erreur : {{error}}",
"codec": "Codec :",
"video": "Vidéo :",
- "aspectRatio": "ratio d'aspect"
+ "aspectRatio": "rapport d'aspect"
},
"framesAndDetections": "Images / Détections",
"label": {
"camera": "caméra",
- "detect": "Détecter",
- "skipped": "ignoré",
+ "detect": "détection",
+ "skipped": "ignorées",
"ffmpeg": "FFmpeg",
"capture": "capture",
"cameraFfmpeg": "{{camName}} FFmpeg",
- "cameraSkippedDetectionsPerSecond": "{{camName}} détections manquées par seconde",
+ "cameraSkippedDetectionsPerSecond": "{{camName}} détections ignorées par seconde",
"overallDetectionsPerSecond": "Moyenne de détections par seconde",
- "overallFramesPerSecond": "Moyenne d'images par seconde",
- "overallSkippedDetectionsPerSecond": "Moyenne de détections manquées par seconde",
+ "overallFramesPerSecond": "Moyenne d'images par seconde (IPS)",
+ "overallSkippedDetectionsPerSecond": "Moyenne de détections ignorées par seconde",
"cameraCapture": "{{camName}} capture",
"cameraDetect": "{{camName}} détection",
- "cameraFramesPerSecond": "{{camName}} images par seconde",
+ "cameraFramesPerSecond": "{{camName}} images par seconde (IPS)",
"cameraDetectionsPerSecond": "{{camName}} détections par seconde"
},
"overview": "Vue d'ensemble",
"toast": {
"success": {
- "copyToClipboard": "Données récupérées copiées dans le presse-papier."
+ "copyToClipboard": "Données de la sonde copiées dans le presse-papiers"
},
"error": {
- "unableToProbeCamera": "Impossible de récupérer des infos depuis la caméra : {{errorMessage}}"
+ "unableToProbeCamera": "Impossible d'interroger la caméra : {{errorMessage}}"
}
}
},
"lastRefreshed": "Dernier rafraichissement : ",
"stats": {
"ffmpegHighCpuUsage": "{{camera}} a un taux élevé d'utilisation processeur par FFmpeg ({{ffmpegAvg}}%)",
- "detectHighCpuUsage": "{{camera}} a un taux élevé d'utilisation processeur ({{detectAvg}}%)",
+ "detectHighCpuUsage": "{{camera}} : charge CPU détection élevée ({{detectAvg}}%)",
"healthy": "Le système est sain",
- "reindexingEmbeddings": "Réindexation des représentations numériques ({{processed}}% complété)",
+ "reindexingEmbeddings": "Réindexation des embeddings ({{processed}} % terminée)",
"cameraIsOffline": "{{camera}} est hors ligne",
"detectIsSlow": "{{detect}} est lent ({{speed}} ms)",
- "detectIsVerySlow": "{{detect}} est très lent ({{speed}} ms)"
+ "detectIsVerySlow": "{{detect}} est très lent ({{speed}} ms)",
+ "shmTooLow": "L'allocation /dev/shm ({{total}} Mo) devrait être augmentée à au moins {{min}} Mo."
},
"enrichments": {
- "title": "Données augmentées",
+ "title": "Enrichissements",
"infPerSecond": "Inférences par seconde",
"embeddings": {
- "face_embedding_speed": "Vitesse de capture des données complémentaires de visage",
- "text_embedding_speed": "Vitesse de capture des données complémentaire de texte",
- "image_embedding_speed": "Vitesse de capture des données complémentaires à l'image",
+ "face_embedding_speed": "Vitesse de vectorisation des visages",
+ "text_embedding_speed": "Vitesse d'embedding de texte",
+ "image_embedding_speed": "Vitesse d'embedding d'image",
"plate_recognition_speed": "Vitesse de reconnaissance des plaques d'immatriculation",
"face_recognition_speed": "Vitesse de reconnaissance faciale",
"plate_recognition": "Reconnaissance de plaques d'immatriculation",
- "image_embedding": "Représentations numériques d'image",
+ "image_embedding": "Embedding d'image",
"yolov9_plate_detection": "Détection de plaques d'immatriculation YOLOv9",
"face_recognition": "Reconnaissance faciale",
- "text_embedding": "Représentation numérique de texte",
- "yolov9_plate_detection_speed": "Vitesse de détection de plaques d'immatriculation YOLOv9"
- }
+ "text_embedding": "Vitesse d'embedding de visage",
+ "yolov9_plate_detection_speed": "Vitesse de détection de plaques d'immatriculation YOLOv9",
+ "review_description": "Description de l'activité",
+ "review_description_speed": "Vitesse de description des activités",
+ "review_description_events_per_second": "Description de l'activité",
+ "object_description": "Description de l'objet",
+ "object_description_speed": "Vitesse de la description d'objet",
+ "object_description_events_per_second": "Description de l'objet",
+ "classification": "Classification {{name}}",
+ "classification_speed": "Vitesse de classification {{name}}",
+ "classification_events_per_second": "Événements de classification par seconde {{name}}"
+ },
+ "averageInf": "Temps d'inférence moyen"
}
}
diff --git a/web/public/locales/gl/common.json b/web/public/locales/gl/common.json
index 1443cce355..61b9ce58fd 100644
--- a/web/public/locales/gl/common.json
+++ b/web/public/locales/gl/common.json
@@ -9,5 +9,6 @@
"today": "Hoxe",
"untilRestart": "Ata o reinicio",
"ago": "Fai {{timeAgo}}"
- }
+ },
+ "readTheDocumentation": "Ler a documentación"
}
diff --git a/web/public/locales/gl/components/auth.json b/web/public/locales/gl/components/auth.json
index 2a0bee0d5a..8b0857dac1 100644
--- a/web/public/locales/gl/components/auth.json
+++ b/web/public/locales/gl/components/auth.json
@@ -5,7 +5,8 @@
"errors": {
"passwordRequired": "Contrasinal obrigatorio",
"unknownError": "Erro descoñecido. Revisa os logs.",
- "usernameRequired": "Usuario/a obrigatorio"
+ "usernameRequired": "Usuario/a obrigatorio",
+ "rateLimit": "Excedido o límite. Téntao de novo despois."
},
"login": "Iniciar sesión"
}
diff --git a/web/public/locales/gl/components/dialog.json b/web/public/locales/gl/components/dialog.json
index c6519972a1..d2aff40d19 100644
--- a/web/public/locales/gl/components/dialog.json
+++ b/web/public/locales/gl/components/dialog.json
@@ -15,6 +15,9 @@
"label": "Confirma esta etiqueta para Frigate Plus",
"ask_an": "E isto un obxecto {{label}}?"
}
+ },
+ "submitToPlus": {
+ "label": "Enviar a Frigate+"
}
}
}
diff --git a/web/public/locales/gl/components/filter.json b/web/public/locales/gl/components/filter.json
index 6927e2e510..8ef5f8fd11 100644
--- a/web/public/locales/gl/components/filter.json
+++ b/web/public/locales/gl/components/filter.json
@@ -6,7 +6,8 @@
"all": {
"short": "Etiquetas",
"title": "Todas as Etiquetas"
- }
+ },
+ "count_other": "{{count}} Etiquetas"
},
"zones": {
"all": {
diff --git a/web/public/locales/gl/views/classificationModel.json b/web/public/locales/gl/views/classificationModel.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/gl/views/classificationModel.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/gl/views/events.json b/web/public/locales/gl/views/events.json
index c5c9cb67b8..56da9d9e53 100644
--- a/web/public/locales/gl/views/events.json
+++ b/web/public/locales/gl/views/events.json
@@ -6,5 +6,8 @@
"motion": {
"only": "Só movemento",
"label": "Movemento"
+ },
+ "empty": {
+ "alert": "Non hai alertas que revisar"
}
}
diff --git a/web/public/locales/he/audio.json b/web/public/locales/he/audio.json
index f7369853c8..711a8d3384 100644
--- a/web/public/locales/he/audio.json
+++ b/web/public/locales/he/audio.json
@@ -18,7 +18,7 @@
"humming": "זמזום",
"groan": "אנקה",
"grunt": "לנחור",
- "whistling": "שריקה",
+ "whistling": "לשרוק",
"breathing": "נשימה",
"wheeze": "גניחה",
"snoring": "נחירה",
@@ -69,7 +69,7 @@
"fly": "זבוב",
"buzz": "זמזם.",
"frog": "צפרדע",
- "croak": "קרקור.",
+ "croak": "קִרקוּר",
"snake": "נחש",
"rattle": "טרטור",
"whale_vocalization": "קולות לוויתן",
@@ -81,7 +81,7 @@
"bass_guitar": "גיטרה בס",
"acoustic_guitar": "גיטרה אקוסטית",
"steel_guitar": "גיטרה פלדה",
- "tapping": "הקשה.",
+ "tapping": "להקיש",
"strum": "פריטה",
"banjo": "בנג'ו",
"sitar": "סיטאר",
@@ -94,7 +94,7 @@
"electronic_organ": "אורגן חשמלי",
"hammond_organ": "עוגב המונד",
"synthesizer": "סינתיסייזר",
- "sampler": "דגם",
+ "sampler": "דוגם",
"harpsichord": "צֶ'מבָּלוֹ",
"percussion": "הַקָשָׁה",
"boat": "סירה",
@@ -102,7 +102,7 @@
"motorcycle": "אופנוע",
"bus": "אוטובוס",
"bicycle": "אופניים",
- "train": "למד פנים",
+ "train": "אימון",
"skateboard": "סקייטבורד",
"camera": "מצלמה",
"howl": "יללה",
@@ -189,7 +189,7 @@
"church_bell": "פעמון כנסיה",
"jingle_bell": "ג'ינגל בל",
"bicycle_bell": "פעמון אופניים",
- "chime": "צלצול",
+ "chime": "צִלצוּל",
"wind_chime": "פעמון רוח",
"harmonica": "הרמוניקה",
"accordion": "אקורדיון",
@@ -341,7 +341,7 @@
"microwave_oven": "מיקרוגל",
"water_tap": "ברז מים",
"bathtub": "אמבטיה",
- "dishes": "כלים.",
+ "dishes": "מנות",
"scissors": "מספריים",
"toothbrush": "מברשת שיניים",
"toilet_flush": "הורדת מים לאסלה",
@@ -355,7 +355,7 @@
"computer_keyboard": "מקלדת מחשב",
"writing": "כתיבה",
"telephone_bell_ringing": "צלצול טלפון",
- "ringtone": "צליל חיוג.",
+ "ringtone": "צלצול",
"clock": "שעון",
"telephone_dialing": "טלפון מחייג",
"dial_tone": "צליל חיוג",
@@ -425,5 +425,79 @@
"slam": "טריקה",
"telephone": "טלפון",
"tuning_fork": "מזלג כוונון",
- "raindrop": "טיפות גשם"
+ "raindrop": "טיפות גשם",
+ "smash": "רסק",
+ "boiling": "רותח",
+ "sonar": "סונר",
+ "arrow": "חץ",
+ "whack": "מַהֲלוּמָה",
+ "sine_wave": "גל סינוס",
+ "harmonic": "הרמוניה",
+ "chirp_tone": "צליל ציוץ",
+ "pulse": "דוֹפֶק",
+ "inside": "בְּתוֹך",
+ "outside": "בחוץ",
+ "reverberation": "הִדהוּד",
+ "echo": "הד",
+ "noise": "רעש",
+ "mains_hum": "זמזום ראשי",
+ "distortion": "סַלְפָנוּת",
+ "sidetone": "צליל צדדי",
+ "cacophony": "קָקוֹפוֹניָה",
+ "throbbing": "פְּעִימָה",
+ "vibration": "רֶטֶט",
+ "sodeling": "מיזוג",
+ "change_ringing": "שינוי צלצול",
+ "shofar": "שופר",
+ "liquid": "נוזל",
+ "splash": "התזה",
+ "slosh": "שכשוך",
+ "squish": "מעיכה",
+ "drip": "טפטוף",
+ "pour": "לִשְׁפּוֹך",
+ "trickle": "לְטַפטֵף",
+ "gush": "פֶּרֶץ",
+ "fill": "מילוי",
+ "spray": "ריסוס",
+ "pump": "משאבה",
+ "stir": "בחישה",
+ "whoosh": "מהיר",
+ "thump": "חֲבָטָה",
+ "thunk": "תרועה",
+ "electronic_tuner": "מכוון אלקטרוני",
+ "effects_unit": "יחידת אפקטים",
+ "chorus_effect": "אפקט מקהלה",
+ "basketball_bounce": "קפיצת כדורסל",
+ "bang": "לִדפּוֹק",
+ "slap": "סְטִירָה",
+ "breaking": "שְׁבִירָה",
+ "bouncing": "הַקפָּצָה",
+ "whip": "שׁוֹט",
+ "flap": "מַדָף",
+ "scratch": "לְגַרֵד",
+ "scrape": "סריקה",
+ "rub": "שפשוף",
+ "roll": "גלגול",
+ "crushing": "מעיכה",
+ "crumpling": "קימוט",
+ "tearing": "קריעה",
+ "beep": "ביפ",
+ "ping": "פינג",
+ "ding": "דינג",
+ "clang": "צלצול מתכתי",
+ "squeal": "חריקה",
+ "creak": "חריקה",
+ "rustle": "רשרוש",
+ "whir": "זמזום",
+ "clatter": "רעש נקישות",
+ "chird": "Chird",
+ "sizzle": "צליל חריכה",
+ "clicking": "נקישות",
+ "clickety_clack": "נקישות רצופות",
+ "rumble": "רעם נמוך",
+ "plop": "פלופ",
+ "hum": "המהום",
+ "zing": "זמזום חד",
+ "boing": "בּוֹאִינְג (צליל קפיצי / אלסטי)",
+ "crunch": "חריקה / פיצוח"
}
diff --git a/web/public/locales/he/common.json b/web/public/locales/he/common.json
index e6c1d632fa..0496941bb0 100644
--- a/web/public/locales/he/common.json
+++ b/web/public/locales/he/common.json
@@ -78,7 +78,10 @@
"12hour": "MMM d, yyyy"
},
"30minutes": "30 דקות",
- "thisMonth": "החודש"
+ "thisMonth": "החודש",
+ "inProgress": "בתהליך",
+ "invalidStartTime": "זמן התחלה לא תקין",
+ "invalidEndTime": "זמן סיום לא תקין"
},
"unit": {
"speed": {
@@ -88,10 +91,23 @@
"length": {
"feet": "רגל",
"meters": "מטרים"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/hour",
+ "mbph": "MB/hour",
+ "gbph": "GB/hour"
}
},
"label": {
- "back": "אחורה"
+ "back": "אחורה",
+ "hide": "הסתר {{item}}",
+ "show": "הצג {{item}}",
+ "ID": "ID",
+ "none": "ללא",
+ "all": "הכל"
},
"button": {
"apply": "החל",
@@ -128,7 +144,8 @@
"on": "פעיל",
"download": "הורדה",
"info": "מידע",
- "next": "הבא"
+ "next": "הבא",
+ "continue": "המשך"
},
"menu": {
"system": "מערכת",
@@ -172,9 +189,17 @@
"ja": "יפנית",
"de": "גרמנית",
"yue": "קנטונזית",
- "ca": "קטלה (קטלאנית)"
+ "ca": "קטלה (קטלאנית)",
+ "ptBR": "פורטוגזית - ברזיל",
+ "sr": "סרבית",
+ "sl": "סלובנית",
+ "lt": "ליטאית",
+ "bg": "בולגרית",
+ "gl": "Galego",
+ "id": "אינדונזית",
+ "ur": "اردو"
},
- "appearance": "מראה.",
+ "appearance": "מראה",
"darkMode": {
"label": "מצב כהה",
"light": "בהיר",
@@ -221,7 +246,8 @@
"current": "משתמש מחובר: {{user}}",
"setPassword": "קביעת סיסמה",
"title": "משתמש"
- }
+ },
+ "classification": "סיווג"
},
"toast": {
"copyUrlToClipboard": "כתובת האתר המועתקת.",
@@ -261,5 +287,18 @@
"title": "404",
"desc": "דף לא נמצא"
},
- "selectItem": "בחירה:{{item}}"
+ "selectItem": "בחירה:{{item}}",
+ "readTheDocumentation": "קרא את התיעוד",
+ "list": {
+ "two": "{{0}} ו־{{1}}",
+ "many": "{{items}}, ו־{{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "אופציונלי",
+ "internalID": "המזהה הפנימי ש־Frigate משתמש בו בהגדרות ובמסד הנתונים"
+ },
+ "information": {
+ "pixels": "{{area}}px"
+ }
}
diff --git a/web/public/locales/he/components/auth.json b/web/public/locales/he/components/auth.json
index 17b28cba1f..0f6caf3cf4 100644
--- a/web/public/locales/he/components/auth.json
+++ b/web/public/locales/he/components/auth.json
@@ -10,6 +10,7 @@
"webUnknownError": "שגיאה לא ידועה, בדוק את הלוגים.",
"rateLimit": "חרגת מהמגבלת בקשות. נסה שוב מאוחר יותר.",
"loginFailed": "ההתחברות נכשלה"
- }
+ },
+ "firstTimeLogin": "מתחבר בפעם הראשונה? פרטי ההתחברות מודפסים בלוגים של פריגייט."
}
}
diff --git a/web/public/locales/he/components/camera.json b/web/public/locales/he/components/camera.json
index f9de9a6c14..184b192bd6 100644
--- a/web/public/locales/he/components/camera.json
+++ b/web/public/locales/he/components/camera.json
@@ -41,7 +41,8 @@
"label": "מצב תאימות",
"desc": "הפעל אפשרות זו רק אם השידור החי של המצלמה שלך מציג עיוותים בצבע ויש לו קו אלכסוני בצד ימין של התמונה."
}
- }
+ },
+ "birdseye": "מבט על"
},
"edit": "ערכית קבוצת מצלמות",
"delete": {
diff --git a/web/public/locales/he/components/dialog.json b/web/public/locales/he/components/dialog.json
index 472d3d541e..85353b9938 100644
--- a/web/public/locales/he/components/dialog.json
+++ b/web/public/locales/he/components/dialog.json
@@ -15,7 +15,8 @@
"failed": "נכשל בהתחלת הייצוא: {{error}}",
"noVaildTimeSelected": "לא נבחר טווח זמן תקף"
},
- "success": "הייצוא הוחל בהצלחה. הצג את הקובץ בתיקייה /ייצוא."
+ "success": "הייצוא התחיל בהצלחה. ניתן לצפות בקובץ בעמוד הייצוא.",
+ "view": "תצוגה"
},
"time": {
"end": {
@@ -108,7 +109,16 @@
"button": {
"export": "ייצוא",
"markAsReviewed": "סמן כסוקר",
- "deleteNow": "מחיקה כעת"
+ "deleteNow": "מחיקה כעת",
+ "markAsUnreviewed": "סימון כלא נבדק"
}
+ },
+ "imagePicker": {
+ "selectImage": "בחר תמונה ממוזערת של אובייקט במעקב",
+ "unknownLabel": "תמונת הטריגר נשמרה",
+ "search": {
+ "placeholder": "חיפוש לפי תווית או תווית משנה…"
+ },
+ "noImages": "לא נמצאו תמונות ממוזערות עבור מצלמה זו"
}
}
diff --git a/web/public/locales/he/components/filter.json b/web/public/locales/he/components/filter.json
index 2316722ca2..b11aba954d 100644
--- a/web/public/locales/he/components/filter.json
+++ b/web/public/locales/he/components/filter.json
@@ -1,11 +1,11 @@
{
- "filter": "לסנן",
+ "filter": "מסנן",
"features": {
"submittedToFrigatePlus": {
"tips": "עליך תחילה לסנן לפי אובייקטים במעקב שיש להם תמונת מצב.
לא ניתן לשלוח ל-Frigate+ אובייקטים במעקב ללא תמונת מצב.",
"label": "העלאה ל- +Frigate"
},
- "label": "מאפיינים",
+ "label": "תכונות",
"hasVideoClip": "קיים סרטון",
"hasSnapshot": "קיימת לכידת תמונה"
},
@@ -26,7 +26,7 @@
}
},
"dates": {
- "selectPreset": "בחר פריסט…",
+ "selectPreset": "בחר הגדרה…",
"all": {
"title": "כל התאריכים",
"short": "תאריכים"
@@ -71,16 +71,16 @@
"title": "הגדרות",
"defaultView": {
"summary": "סיכום",
- "unfilteredGrid": "תצוגה מלאה",
+ "unfilteredGrid": "טבלה לא מסוננת",
"title": "תצוגת ברירת מחדל",
"desc": "כאשר לא נבחרו מסננים, הצג סיכום של האובייקטים האחרונים שעברו מעקב לפי תווית, או הצג רשת לא מסוננת."
},
"gridColumns": {
- "title": "עמודות גריד",
- "desc": "בחר את מספר העמודות בגריד."
+ "title": "עמודות טבלה",
+ "desc": "בחר את מספר העמודות בטבלה."
},
"searchSource": {
- "label": "מקור חיפוש",
+ "label": "חיפוש במקור",
"desc": "בחר אם לחפש בתמונות הממוזערות או בתיאורים של האובייקטים שבמעקב.",
"options": {
"thumbnailImage": "תמונה ממוזערת",
@@ -100,7 +100,7 @@
"error": "מחיקת אובייקטים במעקב נכשלה: {{errorMessage}}"
},
"title": "אישור מחיקה",
- "desc": "מחיקת אובייקטים אלה שעברו מעקב ({{objectLength}}) מסירה את לכידת התמונה, כל ההטמעות שנשמרו וכל ערכי שלבי האובייקט המשויכים. קטעי וידאו מוקלטים של אובייקטים אלה שעברו מעקב בתצוגת היסטוריה לא יימחקו.
האם אתה בטוח שברצונך להמשיך?
החזק את מקש Shift כדי לעקוף תיבת דו-שיח זו בעתיד."
+ "desc": "מחיקת אובייקטים אלה ({{objectLength}}) שעברו מעקב מסירה את לכידת התמונה, כל ההטמעות שנשמרו וכל ערכי שלבי האובייקט המשויכים. קטעי וידאו מוקלטים של אובייקטים אלה שעברו מעקב בתצוגת היסטוריה לא יימחקו.
האם אתה בטוח שברצונך להמשיך?
החזק את מקש Shift כדי לעקוף תיבת דו-שיח זו בעתיד."
},
"zoneMask": {
"filterBy": "סינון לפי מיסוך אזור"
@@ -111,16 +111,30 @@
"loading": "טוען לוחיות רישוי מזוהות…",
"placeholder": "הקלד כדי לחפש לוחיות רישוי…",
"noLicensePlatesFound": "לא נמצאו לוחיות רישוי.",
- "selectPlatesFromList": "בחירת לוחית אחת או יותר מהרשימה."
+ "selectPlatesFromList": "בחירת לוחית אחת או יותר מהרשימה.",
+ "selectAll": "בחר הכל",
+ "clearAll": "נקה הכל"
},
"logSettings": {
"label": "סינון רמת לוג",
- "filterBySeverity": "סנן לוגים לפי חומרה",
+ "filterBySeverity": "סנן לוגים לפי חוּמרָה",
"loading": {
"title": "טוען",
- "desc": "כאשר חלונית הלוגים גוללת לתחתית, לוגים חדשים מוזרמים אוטומטית עם הוספתם."
+ "desc": "כאשר חלונית הלוגים מגוללת לתחתית, לוגים חדשים מוזרמים אוטומטית עם הוספתם."
},
"disableLogStreaming": "השבתת זרימה של לוגים",
"allLogs": "כל הלוגים"
+ },
+ "classes": {
+ "label": "מחלקות",
+ "all": {
+ "title": "כל המחלקות"
+ },
+ "count_one": "{{count}} מחלקה",
+ "count_other": "{{count}} מחלקות"
+ },
+ "attributes": {
+ "label": "מאפייני סיווג",
+ "all": "כל המאפיינים"
}
}
diff --git a/web/public/locales/he/objects.json b/web/public/locales/he/objects.json
index 68f648da0b..65f00b1b76 100644
--- a/web/public/locales/he/objects.json
+++ b/web/public/locales/he/objects.json
@@ -5,7 +5,7 @@
"motorcycle": "אופנוע",
"airplane": "מטוס",
"bus": "אוטובוס",
- "train": "למד פנים",
+ "train": "אימון",
"boat": "סירה",
"traffic_light": "רמזור",
"fire_hydrant": "ברז כיבוי אש",
diff --git a/web/public/locales/he/views/classificationModel.json b/web/public/locales/he/views/classificationModel.json
new file mode 100644
index 0000000000..0e965eb741
--- /dev/null
+++ b/web/public/locales/he/views/classificationModel.json
@@ -0,0 +1,192 @@
+{
+ "documentTitle": "מודלי סיווג - Frigate",
+ "details": {
+ "scoreInfo": "הציון מייצג את ממוצע רמת הביטחון של הסיווג, על פני כל הזיהויים של האובייקט הזה.",
+ "none": "ללא ערך",
+ "unknown": "לא ידוע"
+ },
+ "button": {
+ "deleteClassificationAttempts": "מחיקת אוסף התמונות",
+ "renameCategory": "שינוי שם קטגוריה",
+ "deleteCategory": "מחיקת קטגוריה",
+ "deleteImages": "מחיקת תמונות",
+ "trainModel": "אימון מודל",
+ "addClassification": "הוספת סיווג",
+ "deleteModels": "מחיקת מודלים",
+ "editModel": "עריכת מודל"
+ },
+ "tooltip": {
+ "trainingInProgress": "המודל נמצא כרגע בתהליך אימון",
+ "noNewImages": "אין תמונות חדשות לאימון. קודם סווג עוד תמונות במערך הנתונים (Dataset).",
+ "noChanges": "לא בוצעו שינויים במערך הנתונים מאז האימון האחרון.",
+ "modelNotReady": "המודל עדיין לא מוכן לאימון"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "הקטגוריה נמחקה",
+ "deletedImage": "התמונות נמחקו",
+ "deletedModel_one": "נמחק בהצלחה {{count}} מודל",
+ "deletedModel_two": "נמחקו בהצלחה {{count}} מודלים",
+ "deletedModel_other": "",
+ "categorizedImage": "התמונה סווגה בהצלחה",
+ "trainedModel": "המודל אומן בהצלחה.",
+ "trainingModel": "אימון המודל התחיל בהצלחה.",
+ "updatedModel": "תצורת המודל עודכנה בהצלחה.",
+ "renamedCategory": "שם הקטגוריה שונה בהצלחה ל־{{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "המחיקה נכשלה: {{errorMessage}}",
+ "deleteCategoryFailed": "מחיקת הקטגוריה נכשלה: {{errorMessage}}",
+ "deleteModelFailed": "מחיקת המודל נכשלה: {{errorMessage}}",
+ "categorizeFailed": "סיווג התמונה נכשל: {{errorMessage}}",
+ "trainingFailed": "אימון המודל נכשל. בדוק בלוגים של Frigate לפרטים.",
+ "trainingFailedToStart": "הפעלת אימון המודל נכשלה: {{errorMessage}}",
+ "updateModelFailed": "עדכון המודל נכשל: {{errorMessage}}",
+ "renameCategoryFailed": "שינוי שם הקטגוריה נכשל: {{errorMessage}}"
+ }
+ },
+ "train": {
+ "titleShort": "לאחרונה",
+ "title": "סיווגים אחרונים",
+ "aria": "בחר סיווגים אחרונים"
+ },
+ "deleteCategory": {
+ "title": "מחיקת קטגוריה",
+ "desc": "האם אתה בטוח שברצונך למחוק את הקטגוריה {{name}}? פעולה זו תמחק לצמיתות את כל התמונות המשויכות, ותדרוש אימון מחדש של המודל.",
+ "minClassesTitle": "לא ניתן למחוק את הקטגוריה",
+ "minClassesDesc": "מודל סיווג חייב לכלול לפחות 2 קטגוריות. הוסף קטגוריה נוספת לפני שתמחק את הקטגוריה הזו."
+ },
+ "deleteModel": {
+ "title": "מחיקת מודל סיווג",
+ "single": "האם אתה בטוח שברצונך למחוק את {{name}}? פעולה זו תמחק לצמיתות את כל הנתונים המשויכים, כולל תמונות ונתוני אימון. לא ניתן לבטל פעולה זו.",
+ "desc_one": "האם אתה בטוח שברצונך למחוק מודל אחד ({{count}})? פעולה זו תמחק לצמיתות את כל הנתונים המשויכים, כולל תמונות ונתוני אימון. לא ניתן לבטל פעולה זו.",
+ "desc_two": "האם אתה בטוח שברצונך למחוק {{count}} מודלים? פעולה זו תמחק לצמיתות את כל הנתונים המשויכים, כולל תמונות ונתוני אימון. לא ניתן לבטל פעולה זו.",
+ "desc_other": ""
+ },
+ "edit": {
+ "title": "עריכת מודל סיווג",
+ "descriptionState": "ערוך את הקטגוריות של מודל הסיווג הזה. כל שינוי ידרוש אימון מחדש של המודל.",
+ "descriptionObject": "ערוך את סוג האובייקט ואת סוג הסיווג עבור מודל סיווג האובייקטים הזה.",
+ "stateClassesInfo": "הערה: שינוי קטגוריות המצבים מחייב אימון מחדש של המודל עם הקטגוריות המעודכנות."
+ },
+ "deleteDatasetImages": {
+ "title": "מחיקת תמונות מערך הנתונים",
+ "desc_one": "האם אתה בטוח שברצונך למחוק {{count}} תמונה מתוך {{dataset}}? לא ניתן לבטל פעולה זו, והיא תדרוש אימון מחדש של המודל.",
+ "desc_two": "האם אתה בטוח שברצונך למחוק {{count}} תמונות מתוך {{dataset}}? לא ניתן לבטל פעולה זו, והיא תדרוש אימון מחדש של המודל.",
+ "desc_other": ""
+ },
+ "deleteTrainImages": {
+ "title": "מחיקת תמונות אימון",
+ "desc_one": "האם אתה בטוח שברצונך למחוק {{count}} תמונה? לא ניתן לבטל פעולה זו.",
+ "desc_two": "האם אתה בטוח שברצונך למחוק {{count}} תמונות? לא ניתן לבטל פעולה זו.",
+ "desc_other": ""
+ },
+ "renameCategory": {
+ "title": "שינוי שם קטגוריה",
+ "desc": "הזן שם חדש עבור {{name}}. יהיה עליך לאמן מחדש את המודל כדי שהשינוי בשם ייכנס לתוקף."
+ },
+ "description": {
+ "invalidName": "שם לא תקין. שמות יכולים לכלול רק אותיות, מספרים, רווחים, גרש (’), קו תחתון (_) ומקף (-)."
+ },
+ "categories": "קטגוריות",
+ "createCategory": {
+ "new": "יצירת קטגוריה חדשה"
+ },
+ "wizard": {
+ "step3": {
+ "errors": {
+ "noObjectLabel": "לא נבחרה תווית אובייקט",
+ "generateFailed": "יצירת דוגמאות נכשלה: {{error}}",
+ "generationFailed": "היצירה נכשלה. נסה שוב.",
+ "classifyFailed": "סיווג התמונות נכשל: {{error}}",
+ "noCameras": "לא הוגדרו מצלמות"
+ },
+ "generateSuccess": "תמונות לדוגמה נוצרו בהצלחה",
+ "missingStatesWarning": {
+ "title": "חסרות דוגמאות מצב",
+ "description": "מומלץ לבחור דוגמאות לכל המצבים כדי לקבל את התוצאות הטובות ביותר. אפשר להמשיך גם בלי לבחור את כל המצבים, אבל המודל לא יאומן עד שלכל המצבים יהיו תמונות.\nאחרי שתמשיך, השתמש בתצוגת סיווגים אחרונים כדי לסווג תמונות למצבים החסרים, ואז בצע אימון מודל."
+ },
+ "training": {
+ "title": "אימון מודל",
+ "description": "המודל שלך נמצא כעת בתהליך אימון ברקע. אפשר לסגור את החלון הזה, והמודל יתחיל לפעול מיד לאחר סיום האימון."
+ },
+ "classifying": "מסווג ומאמן...",
+ "trainingStarted": "האימון התחיל בהצלחה",
+ "modelCreated": "המודל נוצר בהצלחה. השתמש בתצוגת סיווגים אחרונים כדי להוסיף תמונות למצבים חסרים, ולאחר מכן אמן את המודל.",
+ "selectImagesPrompt": "בחר את כל התמונות עם: {{className}}",
+ "selectImagesDescription": "לחץ על תמונות כדי לבחור אותן. לחץ על המשך כשתסיים עם מחלקה זו.",
+ "allImagesRequired_one": "אנא סווג את כל התמונות. נותרה {{count}} תמונה.",
+ "allImagesRequired_two": "אנא סווג את כל התמונות. נותרו {{count}} תמונות.",
+ "allImagesRequired_other": "",
+ "generating": {
+ "title": "יוצר תמונות לדוגמה",
+ "description": "Frigate שואב תמונות מייצגות מההקלטות שלך. פעולה זו עשויה להימשך מספר רגעים..."
+ },
+ "retryGenerate": "נסה ליצור מחדש",
+ "noImages": "לא נוצרו תמונות לדוגמה"
+ },
+ "title": "צור סיווג חדש",
+ "steps": {
+ "nameAndDefine": "תן שם והגדר",
+ "stateArea": "אזור מצב",
+ "chooseExamples": "בחר דוגמאות"
+ },
+ "step1": {
+ "description": "מודלי מצבים מנטרים אזורים קבועים במצלמה ומזהים בהם שינויי מצב (למשל: דלת פתוחה/סגורה). מודלי אובייקטים מוסיפים סיווגים לאובייקטים שזוהו (למשל: בעלי חיים מוכרים, שליחים, וכד׳).",
+ "name": "שם",
+ "namePlaceholder": "הזן שם למודל...",
+ "type": "סוג",
+ "typeState": "מצב",
+ "typeObject": "אובייקט",
+ "objectLabel": "תווית אובייקט",
+ "objectLabelPlaceholder": "בחר סוג אובייקט...",
+ "classificationType": "סוג סיווג",
+ "classificationTypeTip": "למד על סוגי הסיווגים",
+ "classificationTypeDesc": "תוויות משנה (Sub Labels) מוסיפות טקסט נוסף לתווית האובייקט (למשל: 'Person: UPS'). מאפיינים (Attributes) הם מטא־נתונים שניתנים לחיפוש, הנשמרים בנפרד בתוך מטא־הנתונים של האובייקט.",
+ "classificationSubLabel": "תווית משנה",
+ "classificationAttribute": "מאפיינים",
+ "classes": "מחלקות",
+ "states": "מצבים",
+ "classesTip": "למד על מחלקות",
+ "classesStateDesc": "הגדר את המצבים השונים שבהם אזור המצלמה יכול להיות. לדוגמה: 'open' ו־'closed' עבור דלת מוסך.",
+ "classesObjectDesc": "הגדר את הקטגוריות השונות לסיווג אובייקטים שזוהו. לדוגמה:\n'delivery_person', 'resident', 'stranger' עבור סיווג אנשים.",
+ "classPlaceholder": "הזן שם מחלקה...",
+ "errors": {
+ "nameRequired": "שם מודל הוא שדה חובה",
+ "nameLength": "שם המודל חייב להיות באורך של עד 64 תווים",
+ "nameOnlyNumbers": "שם המודל אינו יכול להכיל מספרים בלבד",
+ "classRequired": "נדרשת לפחות מחלקה אחת",
+ "classesUnique": "שמות המחלקות חייבים להיות ייחודיים",
+ "noneNotAllowed": "המחלקה 'none' אינה מותרת",
+ "stateRequiresTwoClasses": "מודלי מצבים דורשים לפחות שתי מחלקות",
+ "objectLabelRequired": "אנא בחר תווית אובייקט",
+ "objectTypeRequired": "אנא בחר סוג סיווג"
+ }
+ },
+ "step2": {
+ "description": "בחר מצלמות והגדר את האזור לניטור עבור כל מצלמה. המודל יסווג את מצב האזורים הללו.",
+ "cameras": "מצלמות",
+ "selectCamera": "בחר מצלמה",
+ "noCameras": "לחץ על + כדי להוסיף מצלמות",
+ "selectCameraPrompt": "בחר מצלמה מהרשימה כדי להגדיר את אזור הניטור שלה"
+ }
+ },
+ "categorizeImageAs": "סווג תמונה כ־:",
+ "categorizeImage": "סווג תמונה",
+ "menu": {
+ "objects": "אובייקטים",
+ "states": "מצבים"
+ },
+ "noModels": {
+ "object": {
+ "title": "אין מודלים לסיווג אובייקטים",
+ "description": "צור מודל מותאם אישית לסיווג אובייקטים שזוהו.",
+ "buttonText": "צור מודל אובייקט"
+ },
+ "state": {
+ "title": "אין מודלים לסיווג מצבים",
+ "description": "צור מודל מותאם אישית לניטור ולסיווג שינויים במצב באזורים מסוימים במצלמה.",
+ "buttonText": "צור מודל מצב"
+ }
+ }
+}
diff --git a/web/public/locales/he/views/configEditor.json b/web/public/locales/he/views/configEditor.json
index 7f9120a316..535619a343 100644
--- a/web/public/locales/he/views/configEditor.json
+++ b/web/public/locales/he/views/configEditor.json
@@ -1,5 +1,5 @@
{
- "documentTitle": "עורך הגדרות - פריגטה",
+ "documentTitle": "עורך הגדרות - Frigate",
"configEditor": "עורך תצורה",
"copyConfig": "העתקת הגדרות",
"saveAndRestart": "שמירה והפעלה מחדש",
@@ -12,5 +12,7 @@
"error": {
"savingError": "שגיאה בשמירת ההגדרות"
}
- }
+ },
+ "safeConfigEditor": "עורך תצורה (מצב בטוח)",
+ "safeModeDescription": "Frigate במצב בטוח עקב שגיאת אימות הגדרות."
}
diff --git a/web/public/locales/he/views/events.json b/web/public/locales/he/views/events.json
index 21b551e2a5..6abcccd11b 100644
--- a/web/public/locales/he/views/events.json
+++ b/web/public/locales/he/views/events.json
@@ -34,5 +34,28 @@
"selected_one": "נבחרו {{count}}",
"selected_other": "{{count}} נבחרו",
"camera": "מצלמה",
- "detected": "זוהה"
+ "detected": "זוהה",
+ "detail": {
+ "noDataFound": "אין נתונים מפורטים לבדיקה",
+ "aria": "הפעלה/כיבוי תצוגת פרטים",
+ "trackedObject_one": "אובייקט {{count}}",
+ "trackedObject_other": "{{count}} אובייקטים",
+ "noObjectDetailData": "אין נתוני אובייקט זמינים.",
+ "label": "פרטים",
+ "settings": "הגדרות תצוגת פרטים",
+ "alwaysExpandActive": {
+ "title": "תמיד להרחיב את הפעיל",
+ "desc": "כאשר אפשר, תמיד להציג בהרחבה את פרטי האובייקט של פריט הבדיקה הפעיל."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "נקודה במעקב",
+ "clickToSeek": "לחץ כדי לחפש את הזמן הזה"
+ },
+ "zoomIn": "הגדל (זום פנימה)",
+ "zoomOut": "הקטן (זום החוצה)",
+ "select_all": "הכל",
+ "normalActivity": "רגיל",
+ "needsReview": "טעון בדיקה",
+ "securityConcern": "חשש אבטחה"
}
diff --git a/web/public/locales/he/views/explore.json b/web/public/locales/he/views/explore.json
index 0646e50892..07be1ceecb 100644
--- a/web/public/locales/he/views/explore.json
+++ b/web/public/locales/he/views/explore.json
@@ -27,6 +27,28 @@
},
"deleteTrackedObject": {
"label": "מחק את אובייקט המעקב הזה"
+ },
+ "audioTranscription": {
+ "aria": "בקשת תמלול אודיו",
+ "label": "תמלל"
+ },
+ "showObjectDetails": {
+ "label": "הצגת מסלול האובייקט"
+ },
+ "hideObjectDetails": {
+ "label": "הסתרת מסלול האובייקט"
+ },
+ "downloadCleanSnapshot": {
+ "label": "הורד תמונה נקיה",
+ "aria": "הורד תמונה נקיה"
+ },
+ "viewTrackingDetails": {
+ "label": "הצג פרטי מעקב",
+ "aria": "הצג את פרטי המעקב"
+ },
+ "addTrigger": {
+ "label": "הוסף טריגר",
+ "aria": "הוסף טריגר לאובייקט במעקב זה"
}
},
"generativeAI": "Generative - AI",
@@ -64,7 +86,9 @@
"details": "פרטים",
"snapshot": "לכידת תמונה",
"video": "וידיאו",
- "object_lifecycle": "שלבי זיהוי של האובייקט"
+ "object_lifecycle": "שלבי זיהוי של האובייקט",
+ "thumbnail": "תמונה ממוזערת",
+ "tracking_details": "פרטי מעקב"
},
"objectLifecycle": {
"title": "שלבי זיהוי של האובייקט",
@@ -132,12 +156,16 @@
"success": {
"updatedSublabel": "תווית המשנה עודכנה בהצלחה.",
"updatedLPR": "לוחית הרישוי עודכנה בהצלחה.",
- "regenerate": "תיאור חדש התבקש מ-{{provider}}. בהתאם למהירות הספק שלך, ייתכן שייקח זמן מה ליצירת התיאור החדש."
+ "regenerate": "תיאור חדש התבקש מ-{{provider}}. בהתאם למהירות הספק שלך, ייתכן שייקח זמן מה ליצירת התיאור החדש.",
+ "updatedAttributes": "המאפיינים עודכנו בהצלחה.",
+ "audioTranscription": "בקשת תמלול האודיו נשלחה בהצלחה. בהתאם למהירות שרת ה־Frigate שלך, התמלול עשוי להימשך זמן מה עד להשלמתו."
},
"error": {
"regenerate": "ההתקשרות ל-{{provider}} לקבלת תיאור חדש נכשלה: {{errorMessage}}",
"updatedSublabelFailed": "עדכון תווית המשנה נכשל: {{errorMessage}}",
- "updatedLPRFailed": "עדכון לוחית הרישוי נכשל: {{errorMessage}}"
+ "updatedLPRFailed": "עדכון לוחית הרישוי נכשל: {{errorMessage}}",
+ "updatedAttributesFailed": "נכשל בעדכון המאפיינים: {{errorMessage}}",
+ "audioTranscription": "נכשל בשליחת בקשה לתמלול אודיו: {{errorMessage}}"
}
},
"title": "סקירת הפריט",
@@ -184,12 +212,20 @@
"descriptionSaved": "התיאור נשמר בהצלחה",
"saveDescriptionFailed": "עדכון התיאור נכשל: {{errorMessage}}"
},
- "zones": "אזורים"
+ "zones": "אזורים",
+ "editAttributes": {
+ "title": "ערוך מאפיינים",
+ "desc": "בחר מאפייני סיווג עבור {{label}} זה"
+ },
+ "score": {
+ "label": "ציון"
+ },
+ "attributes": "מאפייני סיווג"
},
"dialog": {
"confirmDelete": {
"title": "אישור מחיקה",
- "desc": "מחיקת אובייקט זה במעקב מסירה את תמונת המצב, כל ההטמעות שנשמרו וכל ערכי שלבי האובייקט המשויכים. קטעי וידאו מוקלטים של אובייקט זה במעקב בתצוגת היסטוריה לא יימחקו.
האם אתה בטוח שברצונך להמשיך?"
+ "desc": "מחיקת אובייקט זה במעקב תסיר את הצילום, כל ה־embeddings השמורים וכל רשומות פרטי המעקב המשויכות. קטעי וידאו מוקלטים של אובייקט זה בתצוגת היסטוריה לא יימחקו.
האם אתה בטוח שברצונך להמשיך?"
}
},
"searchResult": {
@@ -199,11 +235,68 @@
"error": "מחיקת האובייקט במעקב נכשלה: {{errorMessage}}",
"success": "האובייקט המעקב נמחק בהצלחה."
}
- }
+ },
+ "previousTrackedObject": "האובייקט הקודם במעקב",
+ "nextTrackedObject": "האובייקט הבא במעקב"
},
"noTrackedObjects": "לא נמצאו אובייקטים במעקב",
"fetchingTrackedObjectsFailed": "שגיאה באחזור אובייקטים במעקב: {{errorMessage}}",
"trackedObjectsCount_one": "אובייקט במעקב ({{count}}) ",
"trackedObjectsCount_two": "אובייקטים במעקב ({{count}}) ",
- "trackedObjectsCount_other": "אובייקטים במעקב ({{count}}) "
+ "trackedObjectsCount_other": "אובייקטים במעקב ({{count}}) ",
+ "trackingDetails": {
+ "title": "פרטי מעקב",
+ "noImageFound": "לא נמצאה תמונה עבור חותמת הזמן הזו.",
+ "createObjectMask": "יצירת מסכת אובייקט",
+ "adjustAnnotationSettings": "התאמת הגדרות הסימון",
+ "scrollViewTips": "לחץ כדי לראות את הרגעים החשובים לאורך כל זמן המעקב אחרי האובייקט הזה.",
+ "autoTrackingTips": "מיקומי תיבות התחימה (Bounding Boxes) לא יהיו מדויקים עבור מצלמות עם מעקב אוטומטי (Autotracking).",
+ "count": "{{first}} מתוך {{second}}",
+ "trackedPoint": "נקודת מעקב",
+ "lifecycleItemDesc": {
+ "visible": "זוהה {{label}}",
+ "entered_zone": "{{label}} נכנס ל־{{zones}}",
+ "active": "{{label}} הפך לפעיל",
+ "stationary": "{{label}} הפך לנייח",
+ "attribute": {
+ "faceOrLicense_plate": "זוהה {{attribute}} עבור {{label}}",
+ "other": "{{label}} זוהה כ־{{attribute}}"
+ },
+ "gone": "{{label}} יצא",
+ "heard": "{{label}} נשמע",
+ "external": "זוהה {{label}}",
+ "header": {
+ "zones": "אזורים",
+ "ratio": "יחס",
+ "area": "אזור",
+ "score": "ציון"
+ }
+ },
+ "annotationSettings": {
+ "title": "הגדרות סימון",
+ "showAllZones": {
+ "title": "הצגת כל האזורים",
+ "desc": "תמיד להציג אזורים בפריימים שבהם אובייקטים נכנסו לאזור."
+ },
+ "offset": {
+ "label": "היסט סימון",
+ "desc": "הנתונים האלה מגיעים מזרם ה־Detect של המצלמה, אבל מוצגים כשכבה מעל תמונות מזרם ה־Record. סביר ששני הזרמים לא מסונכרנים בצורה מושלמת. לכן, מסגרת הזיהוי (Bounding Box) והווידאו לא תמיד יסתדרו בדיוק אחד על השני.\nאפשר להשתמש בהגדרה הזו כדי להזיז את הסימונים קדימה או אחורה בזמן (היסט), וכך ליישר אותם טוב יותר עם ההקלטה.",
+ "millisecondsToOffset": "מספר המילישניות להיסט סימוני ה־Detect. ברירת מחדל: 0",
+ "tips": "הקטן את הערך אם הווידאו מקדים את המסגרות ונקודות המסלול, והגדל את הערך אם הווידאו מאחוריהם. הערך יכול להיות גם שלילי.",
+ "toast": {
+ "success": "היסט הסימון עבור {{camera}} נשמר בקובץ התצורה."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "שקופית קודמת",
+ "next": "שקופית הבאה"
+ }
+ },
+ "aiAnalysis": {
+ "title": "ניתוח AI"
+ },
+ "concerns": {
+ "label": "סיכונים"
+ }
}
diff --git a/web/public/locales/he/views/exports.json b/web/public/locales/he/views/exports.json
index 93e26a7b89..2bd8c7e003 100644
--- a/web/public/locales/he/views/exports.json
+++ b/web/public/locales/he/views/exports.json
@@ -13,5 +13,11 @@
"title": "שנה שם ייצוא",
"desc": "הכנס שם חדש עבור הייצוא הזה.",
"saveExport": "שמירת ייצוא"
+ },
+ "tooltip": {
+ "shareExport": "שתף ייצוא",
+ "downloadVideo": "הורדת סרטון",
+ "editName": "עריכת שם",
+ "deleteExport": "מחיקת ייצוא"
}
}
diff --git a/web/public/locales/he/views/faceLibrary.json b/web/public/locales/he/views/faceLibrary.json
index 96b2481003..0918c847d5 100644
--- a/web/public/locales/he/views/faceLibrary.json
+++ b/web/public/locales/he/views/faceLibrary.json
@@ -1,11 +1,11 @@
{
"description": {
- "addFace": "עיין בהוספת אוסף חדש לספריית הפנים.",
+ "addFace": "הוסף אוסף חדש לספריית הפנים באמצעות העלאת התמונה הראשונה שלך.",
"placeholder": "הזנת שם לאוסף זה",
- "invalidName": "שם לא חוקי. שמות יכולים לכלול רק אותיות, מספרים, רווחים, גרשים, קווים תחתונים ומקפים."
+ "invalidName": "שם לא תקין. שמות יכולים לכלול רק אותיות, מספרים, רווחים, גרש (’), קו תחתון (_) ומקף (-)."
},
"createFaceLibrary": {
- "nextSteps": "כדי לבנות בסיס חזק:
השתמשו בכרטיסייה 'אימון' כדי לבחור ולאמן תמונות עבור כל אדם שזוהה.
התמקדו בתמונות ישירות לקבלת התוצאות הטובות ביותר; הימנעו מאימון תמונות שלוכדות פנים בזווית.
",
+ "nextSteps": "כדי לבנות בסיס חזק:
השתמש בלשונית זיהויים אחרונים כדי לבחור ולאמן על תמונות עבור כל אדם שזוהה.
כדי לקבל תוצאות מיטביות, התמקד בתמונות פנים מלפנים; הימנע מתמונות אימון שבהן הפנים מצולמות בזווית.
",
"title": "יצירת אוסף",
"desc": "יצירת אוסף חדש",
"new": "יצירת פנים חדשות"
@@ -22,7 +22,7 @@
"addFaceLibrary": "{{name}} נוסף בהצלחה לספריית הפנים!",
"renamedFace": "שם הפנים שונה בהצלחה ל-{{name}}",
"trainedFace": "פנים אומנו בהצלחה.",
- "updatedFaceScore": "ציון הפנים עודכן בהצלחה."
+ "updatedFaceScore": "ציון הפנים עבור {{name}} עודכן בהצלחה ({{score}})."
},
"error": {
"deleteFaceFailed": "המחיקה נכשלה: {{errorMessage}}",
@@ -58,9 +58,10 @@
}
},
"train": {
- "title": "רכבת",
- "aria": "בחירת אימון",
- "empty": "אין ניסיונות זיהוי פנים אחרונים"
+ "title": "זיהויים אחרונים",
+ "aria": "בחירת זיהויים אחרונים",
+ "empty": "אין ניסיונות זיהוי פנים אחרונים",
+ "titleShort": "לאחרונה"
},
"selectItem": "בחירה:{{item}}",
"selectFace": "בחירת פנים",
@@ -91,7 +92,7 @@
"selectImage": "בחירת קובץ תמונה."
},
"dropActive": "שחרר/י את התמונה כאן…",
- "dropInstructions": "גרור ושחרר תמונה כאן, או לחץ כדי לבחור",
+ "dropInstructions": "גרור ושחרר או הדבק תמונה כאן, או לחץ כדי לבחור",
"maxSize": "גודל מקסימאלי: {{size}}MB"
},
"nofaces": "אין פנים זמינים",
diff --git a/web/public/locales/he/views/live.json b/web/public/locales/he/views/live.json
index 9fccbd158e..5426392b9a 100644
--- a/web/public/locales/he/views/live.json
+++ b/web/public/locales/he/views/live.json
@@ -1,7 +1,7 @@
{
"manualRecording": {
- "title": "הקלטה לפי דרישה",
- "tips": "התחלת אירוע הקלטה ידני המבוסס על הגדרות שמירת ההקלטה של מצלמה זו.",
+ "title": "לפי דרישה",
+ "tips": "הורד צילום מיידי או התחל אירוע ידני בהתאם להגדרות שמירת ההקלטות של מצלמה זו.",
"playInBackground": {
"label": "ניגון ברקע",
"desc": "הפעל אפשרות זו כדי להמשיך להזרים גם כאשר הנגן מוסתר."
@@ -63,7 +63,15 @@
"label": "לחץ בתוך המסגרת כדי למרכז את המצלמה הממונעת"
}
},
- "presets": "מצלמה ממונעת - פריסטים"
+ "presets": "מצלמה ממונעת - פריסטים",
+ "focus": {
+ "in": {
+ "label": "כניסת פוקוס מצלמת PTZ"
+ },
+ "out": {
+ "label": "יציאת פוקוס מצלמת PTZ"
+ }
+ }
},
"camera": {
"enable": "אפשור מצלמה",
@@ -120,6 +128,9 @@
},
"available": "קול זמין עבור שידור זה",
"unavailable": "קול אינו זמין עבור שידור זה"
+ },
+ "debug": {
+ "picker": "בחירת זרם אינה זמינה במצב Debug. תצוגת Debug תמיד משתמשת בזרם שמוגדר עם הייעוד detect."
}
},
"cameraSettings": {
@@ -129,7 +140,8 @@
"recording": "הקלטה",
"snapshots": "לכידת תמונה",
"audioDetection": "זיהוי קול",
- "autotracking": "מעקב אוטומטי"
+ "autotracking": "מעקב אוטומטי",
+ "transcription": "תמלול אודיו"
},
"streamingSettings": "הגדרות שידור",
"notifications": "התראות",
@@ -154,5 +166,24 @@
"label": "עריכת קבוצת מצלמות"
},
"exitEdit": "יציאה מעריכה"
+ },
+ "snapshot": {
+ "takeSnapshot": "הורדת תמונת מצב מיידית",
+ "noVideoSource": "אין מקור וידאו זמין לצילום תמונת מצב.",
+ "captureFailed": "צילום תמונת מצב נכשל.",
+ "downloadStarted": "התחילה הורדת תמונת המצב."
+ },
+ "transcription": {
+ "enable": "הפעלת תמלול אודיו חי",
+ "disable": "השבתת תמלול אודיו חי"
+ },
+ "noCameras": {
+ "title": "לא הוגדרו מצלמות",
+ "description": "התחל על-ידי חיבור מצלמה ל-Frigate.",
+ "buttonText": "הוסף מצלמה",
+ "restricted": {
+ "title": "אין מצלמות זמינות",
+ "description": "אין לך הרשאה לצפות במצלמות כלשהן בקבוצה זו."
+ }
}
}
diff --git a/web/public/locales/he/views/recording.json b/web/public/locales/he/views/recording.json
index 91817595bb..1e45f6b6b2 100644
--- a/web/public/locales/he/views/recording.json
+++ b/web/public/locales/he/views/recording.json
@@ -1,5 +1,5 @@
{
- "filter": "לסנן",
+ "filter": "מסנן",
"export": "ייצוא",
"calendar": "לוח שנה",
"filters": "מסננים",
diff --git a/web/public/locales/he/views/search.json b/web/public/locales/he/views/search.json
index 0865e46542..1991713752 100644
--- a/web/public/locales/he/views/search.json
+++ b/web/public/locales/he/views/search.json
@@ -4,7 +4,7 @@
"searchFor": "חפש את{{inputValue}}",
"button": {
"clear": "ניקוי חיפוש",
- "save": "שמירת החיפוש",
+ "save": "שמור חיפוש",
"delete": "מחיקת חיפוש שמור",
"filterInformation": "סינון מידע",
"filterActive": "מסננים פעילים"
@@ -26,7 +26,8 @@
"min_speed": "מהירות מינמאלית",
"recognized_license_plate": "לוחית רישוי מוכרת",
"has_clip": "קיים סרטון קליפ",
- "has_snapshot": "לכידת תמונה קיימת"
+ "has_snapshot": "לכידת תמונה קיימת",
+ "attributes": "מאפיינים"
},
"searchType": {
"thumbnail": "תמונה ממוזערת",
diff --git a/web/public/locales/he/views/settings.json b/web/public/locales/he/views/settings.json
index a628048fc2..cb24111c08 100644
--- a/web/public/locales/he/views/settings.json
+++ b/web/public/locales/he/views/settings.json
@@ -46,7 +46,8 @@
"mustBeAtLeastTwoCharacters": "שם האזור חייב להיות באורך של לפחות 2 תווים.",
"mustNotBeSameWithCamera": "שם האזור לא חייב להיות זהה לשם המצלמה.",
"mustNotContainPeriod": "שם האזור אינו יכול להכיל נקודות.",
- "hasIllegalCharacter": "שם האזור מכיל תווים לא חוקיים."
+ "hasIllegalCharacter": "שם האזור מכיל תווים לא חוקיים.",
+ "mustHaveAtLeastOneLetter": "שם האזור חייב לכלול לפחות אות אחת."
}
},
"distance": {
@@ -111,7 +112,7 @@
"name": {
"title": "שם",
"inputPlaceHolder": "הזן שם…",
- "tips": "השם חייב להיות באורך של לפחות 2 תווים ואינו יכול להיות שם של מצלמה או אזור אחר."
+ "tips": "השם חייב להכיל לפחות 2 תווים, לכלול לפחות אות אחת, ואסור שיהיה זהה לשם של מצלמה או של אזור אחר במצלמה זו."
},
"point_one": "נקודה {{count}}",
"point_two": "נקודות {{count}}",
@@ -125,7 +126,7 @@
"desc": "קובע את משך הזמן המינימלי בשניות שהאובייקט חייב להיות באזור כדי שיופעל. ברירת מחדל: 0"
},
"objects": {
- "title": "אובייקט",
+ "title": "אובייקטים",
"desc": "רשימת אובייקטים החלים על אזור זה."
},
"speedEstimation": {
@@ -148,7 +149,7 @@
}
},
"toast": {
- "success": "האזור ({{zoneName}}) נשמר. הפעל מחדש את Frigate כדי להחיל את השינויים."
+ "success": "האזור ({{zoneName}}) נשמר בהצלחה."
},
"allObjects": "כל האובייקטים"
},
@@ -176,8 +177,8 @@
},
"toast": {
"success": {
- "title": "{{polygonName}} נשמר. הפעל מחדש את Frigate כדי להחיל את השינויים.",
- "noName": "מיסוך התנועה נשמר. הפעל מחדש את Frigate כדי להחיל את השינויים."
+ "title": "{{polygonName}} נשמר בהצלחה.",
+ "noName": "מסכת תנועה נשמרה בהצלחה."
}
}
},
@@ -202,8 +203,8 @@
},
"toast": {
"success": {
- "title": "{{polygonName}} נשמר. הפעל מחדש את Frigate כדי להחיל את השינויים.",
- "noName": "מיסוך האובייקט נשמר. הפעל מחדש את Frigate כדי להחיל את השינויים."
+ "title": "{{polygonName}} נשמר בהצלחה.",
+ "noName": "מיסוך האובייקט נשמר."
}
}
}
@@ -225,6 +226,14 @@
"playAlertVideos": {
"label": "ניגון סרטוני התראות",
"desc": "כברירת מחדל, התראות אחרונות בדשבורד שידור חי מופעלות כסרטונים קצרים בלולאה. השבת אפשרות זו כדי להציג רק תמונה סטטית של התראות אחרונות במכשיר/דפדפן זה."
+ },
+ "displayCameraNames": {
+ "label": "תמיד להציג שם מצלמה",
+ "desc": "תמיד להציג את שמות המצלמות בצ’יפ בתצוגת הלייב מרובת המצלמות בדשבורד."
+ },
+ "liveFallbackTimeout": {
+ "label": "זמן המתנה למעבר לנגן חלופי בשידור חי",
+ "desc": "כאשר זרם השידור חי באיכות גבוהה של מצלמה אינו זמין, המערכת תעבור למצב רוחב־פס נמוך לאחר מספר השניות הזה. ברירת מחדל: 3."
}
},
"cameraGroupStreaming": {
@@ -232,7 +241,7 @@
"title": "הגדרות הזרמת קבוצת מצלמות",
"clearAll": "נקה את כל הגדרות השידור"
},
- "title": "הגדרות כלליות",
+ "title": "הגדרות UI",
"storedLayouts": {
"title": "פריסות תצוגה שמורות",
"desc": "ניתן לגרור/לשנות את גודל הפריסה של המצלמות בקבוצת מצלמות. המיקומים נשמרים באחסון המקומי של הדפדפן שלך.",
@@ -268,7 +277,9 @@
"notifications": "הגדרת התראות - Frigate",
"authentication": "הגדרות אימות - Frigate",
"default": "הגדרות - Frigate",
- "general": "הגדרות כלליות - Frigate"
+ "general": "הגדרות ממשק (UI) - Frigate",
+ "cameraManagement": "ניהול מצלמות - Frigate",
+ "cameraReview": "הגדרות סקירת מצלמה - Frigate"
},
"menu": {
"ui": "UI - ממשק משתמש",
@@ -279,7 +290,11 @@
"users": "משתמשים",
"notifications": "התראות",
"frigateplus": "+Frigate",
- "enrichments": "תוספות"
+ "enrichments": "תוספות",
+ "triggers": "הפעלות",
+ "cameraManagement": "ניהול",
+ "cameraReview": "סְקִירָה",
+ "roles": "תפקידים"
},
"dialog": {
"unsavedChanges": {
@@ -421,7 +436,20 @@
"area": "אזור",
"tips": "הפעל אפשרות זו כדי לצייר מלבן על תמונת המצלמה כדי להציג את השטח והיחס שלה. ניתן להשתמש בערכים אלה כדי להגדיר פרמטרים של מסנן צורת אובייקט בתצורה שלך."
},
- "desc": "תצוגת ניפוי שגיאות מציגה תצוגה בזמן אמת של אובייקטים במעקב והסטטיסטיקות שלהם. רשימת האובייקטים מציגה סיכום בהשהיית זמן של האובייקטים שזוהו."
+ "desc": "תצוגת ניפוי שגיאות מציגה תצוגה בזמן אמת של אובייקטים במעקב והסטטיסטיקות שלהם. רשימת האובייקטים מציגה סיכום בהשהיית זמן של האובייקטים שזוהו.",
+ "openCameraWebUI": "פתח את ממשק ה־Web של {{camera}}",
+ "audio": {
+ "title": "אודיו",
+ "noAudioDetections": "אין זיהויי אודיו",
+ "score": "ציון",
+ "currentRMS": "RMS נוכחי",
+ "currentdbFS": "dbFS נוכחי"
+ },
+ "paths": {
+ "title": "נתיבים",
+ "desc": "הצג נקודות משמעותיות במסלול התנועה של האובייקט במעקב",
+ "tips": "
נתיבים
קווים ועיגולים יציינו נקודות משמעותיות שבהן האובייקט במעקב נע במהלך מחזור חייו.
"
+ }
},
"users": {
"title": "משתמשים",
@@ -430,7 +458,7 @@
"desc": "נהל את חשבונות המשתמשים של מופע Frigate זה."
},
"addUser": "הוספת משתמש",
- "updatePassword": "עדכון סיסמה",
+ "updatePassword": "איפוס סיסמה",
"toast": {
"success": {
"createUser": "המשתמש {{user}} נוצר בהצלחה",
@@ -450,7 +478,7 @@
"role": "הרשאות",
"noUsers": "לא נמצאו משתמשים.",
"changeRole": "שינוי הרשאות משתמש",
- "password": "סיסמה",
+ "password": "איפוס סיסמה",
"deleteUser": "מחיקת משתמש",
"username": "שם משתמש"
},
@@ -476,7 +504,16 @@
"veryStrong": "מאוד חזק"
},
"match": "סיסמאות תואמות",
- "notMatch": "הסיסמאות אינן תואמות."
+ "notMatch": "הסיסמאות אינן תואמות.",
+ "show": "הצג סיסמה",
+ "hide": "הסתר סיסמה",
+ "requirements": {
+ "title": "דרישות סיסמה:",
+ "length": "לפחות 8 תווים",
+ "uppercase": "לפחות אות גדולה אחת",
+ "digit": "לפחות ספרה אחת",
+ "special": "לפחות תו מיוחד אחד (!@#$%^&*(),.?\":{}|<>)"
+ }
},
"newPassword": {
"title": "סיסמה חדשה",
@@ -486,7 +523,11 @@
}
},
"usernameIsRequired": "נדרש שם משתמש",
- "passwordIsRequired": "נדרשת סיסמה"
+ "passwordIsRequired": "נדרשת סיסמה",
+ "currentPassword": {
+ "title": "סיסמה נוכחית",
+ "placeholder": "הזן את הסיסמה הנוכחית שלך"
+ }
},
"createUser": {
"title": "יצירת משתמש חדש",
@@ -504,7 +545,12 @@
"doNotMatch": "הסיסמאות אינן תואמות",
"updatePassword": "עדכון סיסמה עבור {{username}}",
"setPassword": "קבע סיסמה",
- "desc": "צור סיסמה חזקה כדי לאבטח חשבון זה."
+ "desc": "צור סיסמה חזקה כדי לאבטח חשבון זה.",
+ "currentPasswordRequired": "נדרשת הסיסמה הנוכחית",
+ "incorrectCurrentPassword": "הסיסמה הנוכחית שגויה",
+ "passwordVerificationFailed": "נכשל באימות הסיסמה",
+ "multiDeviceWarning": "כל מכשיר אחר שבו אתה מחובר יידרש להתחבר מחדש בתוך {{refresh_time}}.",
+ "multiDeviceAdmin": "ניתן גם לאלץ את כל המשתמשים להתחבר מחדש באופן מיידי על־ידי החלפת מפתח ה־JWT שלך."
},
"changeRole": {
"title": "שינוי הרשאות משתמש",
@@ -515,7 +561,8 @@
"admin": "מנהל",
"adminDesc": "גישה מלאה לכל התכונות.",
"viewer": "צופה",
- "viewerDesc": "מוגבל לדשבורד שידור חי, סקירה, גילוי וייצוא בלבד."
+ "viewerDesc": "מוגבל לדשבורד שידור חי, סקירה, גילוי וייצוא בלבד.",
+ "customDesc": "תפקיד מותאם אישית עם גישה למצלמות מסוימות."
}
}
}
@@ -618,5 +665,454 @@
"success": "הגדרות Frigate+ נשמרו. הפעל מחדש את Frigate כדי להחיל את השינויים.",
"error": "שמירת שינויי התצורה נכשלה: {{errorMessage}}"
}
+ },
+ "cameraWizard": {
+ "step1": {
+ "brandInformation": "פרטי יצרן",
+ "brandUrlFormat": "למצלמות עם פורמט כתובת RTSP כמו: {{exampleUrl}}",
+ "connectionSettings": "הגדרות חיבור",
+ "detectionMethod": "שיטת זיהוי זרם",
+ "onvifPort": "פורט ONVIF",
+ "probeMode": "בדיקת מצלמה",
+ "manualMode": "בחירה ידנית",
+ "detectionMethodDescription": "בדוק את המצלמה באמצעות ONVIF (אם נתמך) כדי למצוא את כתובות הזרמים שלה, או בחר ידנית את יצרן המצלמה כדי להשתמש בכתובות מוגדרות מראש.\nכדי להזין כתובת RTSP מותאמת אישית, בחר בשיטה ידנית ואז בחר \"אחר\".",
+ "onvifPortDescription": "במצלמות שתומכות ב-ONVIF, זה בדרך כלל 80 או 8080.",
+ "useDigestAuth": "שימוש באימות Digest",
+ "useDigestAuthDescription": "השתמש באימות HTTP Digest עבור ONVIF. בחלק מהמצלמות נדרש שם משתמש/סיסמה ייעודיים ל-ONVIF, ולא משתמש ה-Admin הרגיל.",
+ "errors": {
+ "brandOrCustomUrlRequired": "בחר יצרן מצלמה והזן Host/IP, או בחר “אחר” והזן כתובת מותאמת אישית",
+ "nameRequired": "שם המצלמה הוא שדה חובה",
+ "nameLength": "שם המצלמה חייב להיות באורך של עד 64 תווים",
+ "invalidCharacters": "שם המצלמה מכיל תווים לא חוקיים",
+ "nameExists": "שם המצלמה כבר קיים",
+ "customUrlRtspRequired": "כתובות מותאמות אישית חייבות להתחיל ב־\"rtsp://\". עבור זרמי מצלמה שאינם RTSP נדרשת הגדרה ידנית."
+ },
+ "description": "הזן את פרטי המצלמה ובחר אם לבצע בדיקה למצלמה או לבחור ידנית את היצרן.",
+ "cameraName": "שם מצלמה",
+ "cameraNamePlaceholder": "לדוגמה: front_door או סקירת החצר האחורית",
+ "host": "HOST / כתובת IP",
+ "port": "פורט",
+ "username": "שם משתמש",
+ "usernamePlaceholder": "אופציונלי",
+ "password": "סיסמה",
+ "passwordPlaceholder": "אופציונלי",
+ "selectTransport": "בחר פרוטוקול תעבורה",
+ "cameraBrand": "יצרן מצלמה",
+ "selectBrand": "בחר יצרן מצלמה עבור תבנית כתובת ה-URL",
+ "customUrl": "כתובת (URL) זרם מותאמת אישית",
+ "customUrlPlaceholder": "rtsp://username:password@host:port/path"
+ },
+ "step2": {
+ "description": "בדוק את המצלמה כדי לאתר זרמים זמינים, או הגדר ידנית את ההגדרות לפי שיטת הזיהוי שבחרת.",
+ "testSuccess": "בדיקת החיבור הצליחה!",
+ "testFailed": "בדיקת החיבור נכשלה. בדוק את הנתונים שהזנת ונסה שוב.",
+ "testFailedTitle": "הבדיקה נכשלה",
+ "streamDetails": "פרטי זרם",
+ "probing": "בודק מצלמה...",
+ "retry": "נסה שוב",
+ "testing": {
+ "probingMetadata": "בודק את נתוני המטא של המצלמה…",
+ "fetchingSnapshot": "שולף תמונת מצב מהמצלמה…"
+ },
+ "probeFailed": "בדיקת המצלמה נכשלה: {{error}}",
+ "probingDevice": "בודק את ההתקן…",
+ "probeSuccessful": "הבדיקה הצליחה",
+ "probeError": "בדיקה נכשלה",
+ "probeNoSuccess": "הבדיקה לא הצליחה",
+ "deviceInfo": "מידע על ההתקן",
+ "manufacturer": "יצרן",
+ "model": "דגם",
+ "firmware": "קושחה",
+ "profiles": "פרופילים",
+ "ptzSupport": "תמיכה ב-PTZ",
+ "autotrackingSupport": "תמיכה ב-Autotracking",
+ "presets": "פריסטים",
+ "rtspCandidates": "כתובות RTSP מוצעות",
+ "rtspCandidatesDescription": "כתובות ה־RTSP הבאות נמצאו בבדיקת המצלמה. בצע בדיקת חיבור כדי לצפות בנתוני הזרם (Metadata).",
+ "noRtspCandidates": "לא נמצאו כתובות RTSP מהמצלמה. ייתכן שפרטי ההתחברות שגויים, או שהמצלמה לא תומכת ב-ONVIF, או שהשיטה שבה השתמשנו לשליפת כתובות RTSP אינה נתמכת. חזור אחורה והזן את כתובת ה-RTSP ידנית.",
+ "candidateStreamTitle": "אפשרות {{number}}",
+ "useCandidate": "השתמש",
+ "uriCopy": "העתק",
+ "uriCopied": "הכתובת (URI) הועתקה ללוח",
+ "testConnection": "בדיקת חיבור",
+ "toggleUriView": "לחץ כדי להציג/להסתיר את הכתובת המלאה",
+ "connected": "מחובר",
+ "notConnected": "לא מחובר",
+ "errors": {
+ "hostRequired": "כתובת Host/IP היא שדה חובה"
+ }
+ },
+ "step3": {
+ "description": "הגדר תפקידי זרם (Roles) והוסף זרמים נוספים למצלמה שלך.",
+ "streamsTitle": "זרמי מצלמה",
+ "addStream": "הוסף זרם",
+ "addAnotherStream": "הוסף זרם נוסף",
+ "streamTitle": "זרם {{number}}",
+ "streamUrl": "כתובת הזרם (URL)",
+ "selectStream": "בחר זרם",
+ "searchCandidates": "חיפוש אפשרויות…",
+ "noStreamFound": "לא נמצא זרם",
+ "url": "URL",
+ "resolution": "רזולוציה",
+ "selectResolution": "בחר רזולוציה",
+ "quality": "איכות",
+ "selectQuality": "בחר איכות",
+ "roles": "תפקידים",
+ "roleLabels": {
+ "detect": "זיהוי אובייקטים",
+ "record": "הקלטה",
+ "audio": "קול (Audio)"
+ },
+ "testStream": "בדיקת חיבור",
+ "testSuccess": "בדיקת הזרם הצליחה!",
+ "testFailed": "בדיקת הזרם נכשלה",
+ "testFailedTitle": "הבדיקה נכשלה",
+ "connected": "מחובר",
+ "notConnected": "לא מחובר",
+ "featuresTitle": "תכונות",
+ "go2rtc": "הפחתת חיבורים למצלמה",
+ "detectRoleWarning": "כדי להמשיך, לפחות זרם אחד חייב להיות עם ייעוד \"detect\".",
+ "rolesPopover": {
+ "title": "ייעודי הזרם",
+ "detect": "הזרם הראשי לזיהוי אובייקטים.",
+ "record": "שומר קטעים מזרם הווידאו לפי הגדרות התצורה.",
+ "audio": "זרם לזיהוי מבוסס אודיו."
+ },
+ "featuresPopover": {
+ "title": "תכונות הזרם",
+ "description": "השתמש ב־go2rtc לריסטרים (Restream) כדי להפחית את מספר החיבורים למצלמה שלך."
+ },
+ "streamUrlPlaceholder": "rtsp://username:password@host:port/path"
+ },
+ "step4": {
+ "description": "אימות וניתוח סופיים לפני שמירת המצלמה החדשה. התחבר לכל זרם לפני השמירה.",
+ "validationTitle": "אימות הזרם",
+ "connectAllStreams": "התחברות לכל הזרמים",
+ "reconnectionSuccess": "חיבור מחדש הצליח.",
+ "reconnectionPartial": "חלק מהזרמים לא הצליחו להתחבר מחדש.",
+ "streamUnavailable": "תצוגה מקדימה של הזרם אינה זמינה",
+ "reload": "טעינה מחדש",
+ "connecting": "מתחבר...",
+ "streamTitle": "זרם {{number}}",
+ "valid": "תקין",
+ "failed": "נכשל",
+ "notTested": "לא נבדק",
+ "connectStream": "התחבר",
+ "connectingStream": "מתחבר",
+ "disconnectStream": "נתק",
+ "estimatedBandwidth": "רוחב־פס משוער",
+ "roles": "ייעודים",
+ "ffmpegModule": "שימוש במצב תאימות לזרם",
+ "ffmpegModuleDescription": "אם הזרם לא נטען אחרי כמה ניסיונות, נסה להפעיל את זה. כשהאפשרות פעילה, Frigate ישתמש במודול ffmpeg יחד עם go2rtc. זה עשוי לשפר תאימות עם זרמים של חלק מהמצלמות.",
+ "none": "ללא",
+ "error": "שגיאה",
+ "streamValidated": "הזרם {{number}} אומת בהצלחה",
+ "streamValidationFailed": "אימות הזרם {{number}} נכשל",
+ "saveAndApply": "שמירת מצלמה חדשה",
+ "saveError": "תצורה לא תקינה. בדוק את ההגדרות שלך.",
+ "issues": {
+ "title": "אימות הזרם",
+ "videoCodecGood": "קידוד הווידאו הוא {{codec}}.",
+ "audioCodecGood": "קידוד האודיו הוא {{codec}}.",
+ "resolutionHigh": "רזולוציה של {{resolution}} עשויה לגרום לשימוש מוגבר במשאבים.",
+ "resolutionLow": "רזולוציה של {{resolution}} עשויה להיות נמוכה מדי לזיהוי אמין של אובייקטים קטנים.",
+ "noAudioWarning": "לא זוהה אודיו בזרם הזה, ולכן ההקלטות יהיו ללא שמע.",
+ "audioCodecRecordError": "כדי לכלול אודיו בהקלטות נדרש קידוד שמע AAC.",
+ "audioCodecRequired": "כדי לאפשר זיהוי אודיו נדרש זרם שמע.",
+ "restreamingWarning": "הפחתת מספר החיבורים למצלמה עבור זרם ההקלטה (record) עשויה להעלות מעט את השימוש ב־CPU.",
+ "brands": {
+ "reolink-rtsp": "RTSP של Reolink לא מומלץ. הפעל HTTP בהגדרות הקושחה של המצלמה, ואז הפעל מחדש את אשף ההגדרה.",
+ "reolink-http": "בזרמי HTTP של Reolink מומלץ להשתמש ב־FFmpeg לתאימות טובה יותר. הפעל עבור הזרם הזה את האפשרות “שימוש במצב תאימות לזרם”."
+ },
+ "dahua": {
+ "substreamWarning": "זרם משנה 1 נעול לרזולוציה נמוכה. מצלמות רבות של Dahua / Amcrest / EmpireTech תומכות בזרמי משנה נוספים שצריך להפעיל בהגדרות המצלמה מומלץ לבדוק אם קיימים זרמי משנה כאלה ולהשתמש בהם במידה וזמינים."
+ },
+ "hikvision": {
+ "substreamWarning": "זרם משנה 1 נעול לרזולוציה נמוכה. מצלמות רבות של Hikvision תומכות בזרמי משנה נוספים שצריך להפעיל בהגדרות המצלמה. מומלץ לבדוק אם קיימים זרמי משנה כאלה ולהשתמש בהם, אם הם זמינים."
+ }
+ }
+ },
+ "title": "הוסף מצלמה",
+ "description": "בצע את השלבים הבאים כדי להוסיף מצלמה חדשה להתקנת ה־Frigate שלך.",
+ "steps": {
+ "nameAndConnection": "שם וחיבור",
+ "probeOrSnapshot": "בדיקה (Probe) או צילום תמונה (Snapshot)",
+ "streamConfiguration": "הגדרות זרם",
+ "validationAndTesting": "אימות ובדיקה"
+ },
+ "save": {
+ "success": "המצלמה החדשה {{cameraName}} נשמרה בהצלחה.",
+ "failure": "שגיאה בשמירת {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "רזולוציה",
+ "video": "וידיאו",
+ "audio": "אודיו",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "אנא ספק כתובת URL תקינה לזרם",
+ "testFailed": "בדיקת הזרם נכשלה: {{error}}"
+ }
+ },
+ "cameraManagement": {
+ "title": "ניהול מצלמות",
+ "addCamera": "הוספת מצלמה חדשה",
+ "editCamera": "עריכת מצלמה:",
+ "selectCamera": "בחירת מצלמה",
+ "backToSettings": "חזרה להגדרות מצלמה",
+ "streams": {
+ "title": "הפעלה / השבתה של מצלמות",
+ "desc": "השבת מצלמה זמנית עד ש־Frigate יופעל מחדש. השבתת מצלמה עוצרת לחלוטין את העיבוד של Frigate עבור זרמי המצלמה הזו. זיהוי, הקלטה וניפוי שגיאות לא יהיו זמינים. \nהערה: פעולה זו לא משביתה את ה־restreams של go2rtc."
+ },
+ "cameraConfig": {
+ "add": "הוספת מצלמה",
+ "edit": "עריכת מצלמה",
+ "description": "נהל את הגדרות המצלמה, כולל קלטי הזרמים והייעודים שלהם.",
+ "name": "שם מצלמה",
+ "nameRequired": "שם המצלמה הוא שדה חובה",
+ "nameLength": "שם המצלמה חייב להיות קצר מ־64 תווים.",
+ "namePlaceholder": "לדוגמה: front_door או תצוגת סקירה של החצר האחורית",
+ "enabled": "מופעל",
+ "ffmpeg": {
+ "inputs": "זרמי קלט",
+ "path": "נתיב זרם",
+ "pathRequired": "נתיב זרם הוא שדה חובה",
+ "roles": "ייעודים",
+ "rolesRequired": "נדרש לפחות ייעוד אחד",
+ "rolesUnique": "כל ייעוד (audio, detect, record) ניתן להקצות לזרם אחד בלבד",
+ "addInput": "הוסף זרם קלט",
+ "removeInput": "הסר זרם קלט",
+ "inputsRequired": "נדרש לפחות זרם קלט אחד",
+ "pathPlaceholder": "rtsp://..."
+ },
+ "go2rtcStreams": "זרמי go2rtc",
+ "streamUrls": "כתובות URL של הזרמים",
+ "addUrl": "הוסף URL",
+ "addGo2rtcStream": "הוסף זרם go2rtc",
+ "toast": {
+ "success": "המצלמה {{cameraName}} נשמרה בהצלחה"
+ }
+ }
+ },
+ "cameraReview": {
+ "title": "הגדרות סקירת מצלמה",
+ "object_descriptions": {
+ "title": "Generative AI תיאורי אובייקטים",
+ "desc": "הפעל/השבת זמנית תיאורי אובייקטים של Generative AI עבור מצלמה זו. כאשר האפשרות מושבתת, לא יתבקשו תיאורים שנוצרו ע״י AI עבור אובייקטים במעקב במצלמה זו."
+ },
+ "review_descriptions": {
+ "title": "תיאורי סקירה של Generative AI",
+ "desc": "הפעל/השבת זמנית תיאורי סקירה של Generative AI עבור מצלמה זו. כאשר האפשרות מושבתת, לא יתבקשו תיאורים שנוצרו ע״י AI עבור פריטי סקירה במצלמה זו."
+ },
+ "review": {
+ "title": "סקירה",
+ "desc": "הפעל/השבת זמנית התראות וזיהויים עבור מצלמה זו עד ש-Frigate יופעל מחדש. כאשר האפשרות מושבתת, לא ייווצרו פריטי סקירה חדשים. ",
+ "alerts": "התראות. ",
+ "detections": "זיהויים. "
+ },
+ "reviewClassification": {
+ "title": "סיווג סקירה",
+ "desc": "Frigate מסווג פריטי סקירה ל־התראות ול־זיהויים. כברירת מחדל, כל אובייקט מסוג person ו־car נחשב ל־התראה. ניתן לדייק את הסיווג של פריטי הסקירה שלך באמצעות הגדרת אזורים נדרשים עבורם.",
+ "noDefinedZones": "לא הוגדרו אזורים למצלמה זו.",
+ "objectAlertsTips": "כל האובייקטים מסוג {{alertsLabels}} ב־{{cameraName}} יוצגו כהתראות.",
+ "zoneObjectAlertsTips": "כל האובייקטים מסוג {{alertsLabels}} שזוהו בתוך {{zone}} ב־{{cameraName}} יוצגו כהתראות.",
+ "objectDetectionsTips": "כל האובייקטים מסוג {{detectionsLabels}} שלא סווגו ב־{{cameraName}} יוצגו כזיהויים, ללא קשר לאיזה אזור הם נמצאים בו.",
+ "zoneObjectDetectionsTips": {
+ "text": "כל האובייקטים מסוג {{detectionsLabels}} שלא סווגו בתוך {{zone}} ב־{{cameraName}} יוצגו כזיהויים.",
+ "notSelectDetections": "כל האובייקטים מסוג {{detectionsLabels}} שזוהו בתוך {{zone}} ב־{{cameraName}} ושאינם מסווגים כהתראות יוצגו כזיהויים, ללא קשר לאיזה אזור הם נמצאים בו.",
+ "regardlessOfZoneObjectDetectionsTips": "כל האובייקטים מסוג {{detectionsLabels}} שלא סווגו ב־{{cameraName}} יוצגו כזיהויים, ללא קשר לאיזה אזור הם נמצאים בו."
+ },
+ "unsavedChanges": "הגדרות סיווג סקירה שלא נשמרו עבור {{camera}}",
+ "selectAlertsZones": "בחר אזורים עבור התראות",
+ "selectDetectionsZones": "בחר אזורים עבור זיהויים",
+ "limitDetections": "הגבל זיהויים לאזורים מסוימים",
+ "toast": {
+ "success": "הגדרות סיווג הסקירה נשמרו. הפעל מחדש את Frigate כדי להחיל את השינויים."
+ }
+ }
+ },
+ "roles": {
+ "management": {
+ "title": "ניהול תפקיד צופה",
+ "desc": "נהל תפקידי צופה מותאמים אישית ואת הרשאות הגישה שלהם למצלמות עבור מופע Frigate זה."
+ },
+ "addRole": "הוסף תפקיד",
+ "table": {
+ "role": "תפקיד",
+ "cameras": "מצלמות",
+ "actions": "פעולות",
+ "noRoles": "לא נמצאו תפקידים מותאמים אישית.",
+ "editCameras": "ערוך מצלמות",
+ "deleteRole": "מחק תפקיד"
+ },
+ "toast": {
+ "success": {
+ "createRole": "התפקיד {{role}} נוצר בהצלחה",
+ "updateCameras": "המצלמות עודכנו עבור התפקיד {{role}}",
+ "deleteRole": "התפקיד {{role}} נמחק בהצלחה",
+ "userRolesUpdated_one": "המשתמש {{count}} שהוקצה לתפקיד זה עודכן ל־צופה (viewer), שלו יש גישה לכל המצלמות.",
+ "userRolesUpdated_two": "{{count}} משתמשים שהוקצו לתפקיד זה עודכנו ל־צופה (viewer), שלו יש גישה לכל המצלמות.",
+ "userRolesUpdated_other": ""
+ },
+ "error": {
+ "createRoleFailed": "נכשל ביצירת התפקיד: {{errorMessage}}",
+ "updateCamerasFailed": "נכשל בעדכון המצלמות: {{errorMessage}}",
+ "deleteRoleFailed": "נכשל במחיקת התפקיד: {{errorMessage}}",
+ "userUpdateFailed": "נכשל בעדכון תפקידי המשתמשים: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "צור תפקיד חדש",
+ "desc": "הוסף תפקיד חדש והגדר הרשאות גישה למצלמות."
+ },
+ "editCameras": {
+ "title": "ערוך מצלמות לתפקיד",
+ "desc": "עדכן את גישת המצלמות עבור התפקיד {{role}}."
+ },
+ "deleteRole": {
+ "title": "מחק תפקיד",
+ "desc": "לא ניתן לבטל פעולה זו. הפעולה תמחק לצמיתות את התפקיד ותעביר כל משתמש שהוקצה לתפקיד זה לתפקיד צופה (viewer), המעניק גישה לכל המצלמות.",
+ "warn": "האם אתה בטוח שברצונך למחוק את {{role}}?",
+ "deleting": "מוחק..."
+ },
+ "form": {
+ "role": {
+ "title": "שם תפקיד",
+ "placeholder": "הזן שם תפקיד",
+ "desc": "מותר להשתמש רק באותיות, מספרים, נקודות וקווים תחתונים.",
+ "roleIsRequired": "שם תפקיד הוא שדה חובה",
+ "roleOnlyInclude": "שם התפקיד יכול לכלול רק אותיות, מספרים, נקודות או קווים תחתונים",
+ "roleExists": "כבר קיים תפקיד בשם זה."
+ },
+ "cameras": {
+ "title": "מצלמות",
+ "desc": "בחר את המצלמות שלתפקיד זה יש גישה אליהן. נדרשת לפחות מצלמה אחת.",
+ "required": "חובה לבחור לפחות מצלמה אחת."
+ }
+ }
+ }
+ },
+ "triggers": {
+ "documentTitle": "טריגרים",
+ "semanticSearch": {
+ "title": "חיפוש סמנטי מושבת",
+ "desc": "כדי להשתמש בטריגרים, יש להפעיל חיפוש סמנטי."
+ },
+ "management": {
+ "title": "טריגרים",
+ "desc": "נהל טריגרים עבור {{camera}}. השתמש בסוג תמונה ממוזערת (Thumbnail) כדי להפעיל טריגרים על תמונות ממוזערות דומות לאובייקט שבחרת למעקב, ובסוג תיאור (Description) כדי להפעיל טריגרים על תיאורים דומים לטקסט שתגדיר."
+ },
+ "addTrigger": "הוסף טריגר",
+ "table": {
+ "name": "שם",
+ "type": "סוג",
+ "content": "תוכן",
+ "threshold": "סף",
+ "actions": "פעולות",
+ "noTriggers": "לא הוגדרו טריגרים למצלמה זו.",
+ "edit": "עריכה",
+ "deleteTrigger": "מחק טריגר",
+ "lastTriggered": "הפעלה אחרונה"
+ },
+ "type": {
+ "thumbnail": "תמונה ממוזערת",
+ "description": "תיאור"
+ },
+ "actions": {
+ "notification": "שלח התראה",
+ "sub_label": "הוסף תווית משנה",
+ "attribute": "הוסף מאפיינים"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "צור טריגר",
+ "desc": "צור טריגר עבור המצלמה {{camera}}"
+ },
+ "editTrigger": {
+ "title": "ערוך טריגר",
+ "desc": "ערוך את ההגדרות עבור הטריגר במצלמה {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "מחק טריגר",
+ "desc": "האם אתה בטוח שברצונך למחוק את הטריגר {{triggerName}}? פעולה זו אינה ניתנת לביטול."
+ },
+ "form": {
+ "name": {
+ "title": "שם",
+ "placeholder": "תן שם לטריגר",
+ "description": "הזן שם או תיאור ייחודיים לזיהוי הטריגר הזה",
+ "error": {
+ "minLength": "השדה חייב להכיל לפחות 2 תווים.",
+ "invalidCharacters": "השדה יכול להכיל רק אותיות, מספרים, קווים תחתונים (_) ומקפים (-).",
+ "alreadyExists": "כבר קיים טריגר בשם זה עבור מצלמה זו."
+ }
+ },
+ "enabled": {
+ "description": "הפעל או השבת טריגר זה"
+ },
+ "type": {
+ "title": "סוג",
+ "placeholder": "בחר סוג טריגר",
+ "description": "הפעל טריגר כאשר מזוהה תיאור דומה של אובייקט במעקב",
+ "thumbnail": "הפעל טריגר כאשר מזוהה תמונה ממוזערת דומה של אובייקט במעקב"
+ },
+ "content": {
+ "title": "תוכן",
+ "imagePlaceholder": "בחר תמונה ממוזערת",
+ "textPlaceholder": "הזן תוכן טקסט",
+ "imageDesc": "מוצגות רק 100 התמונות הממוזערות האחרונות. אם אינך מוצא את התמונה הממוזערת הרצויה, אנא סקור אובייקטים מוקדמים יותר ב־Explore והגדר משם טריגר דרך התפריט.",
+ "textDesc": "הזן טקסט להפעלת פעולה זו כאשר מזוהה תיאור דומה של אובייקט במעקב.",
+ "error": {
+ "required": "נדרש תוכן."
+ }
+ },
+ "threshold": {
+ "title": "סף",
+ "desc": "הגדר את סף הדמיון עבור טריגר זה. סף גבוה יותר מחייב התאמה קרובה יותר כדי להפעיל את הטריגר.",
+ "error": {
+ "min": "הסף חייב להיות לפחות 0",
+ "max": "הסף חייב להיות לכל היותר 1"
+ }
+ },
+ "actions": {
+ "title": "פעולות",
+ "desc": "כברירת מחדל, Frigate שולח הודעת MQTT עבור כל הטריגרים. תוויות משנה (Sub Labels) מוסיפות את שם הטריגר לתווית האובייקט. מאפיינים (Attributes) הם מטא־נתונים הניתנים לחיפוש, הנשמרים בנפרד במטא־הנתונים של האובייקט במעקב.",
+ "error": {
+ "min": "חובה לבחור לפחות פעולה אחת."
+ }
+ }
+ }
+ },
+ "wizard": {
+ "title": "צור טריגר",
+ "step1": {
+ "description": "הגדר את ההגדרות הבסיסיות של הטריגר שלך."
+ },
+ "step2": {
+ "description": "הגדר את התוכן שיפעיל פעולה זו."
+ },
+ "step3": {
+ "description": "הגדר את הסף והפעולות עבור טריגר זה."
+ },
+ "steps": {
+ "nameAndType": "שם וסוג",
+ "configureData": "הגדר נתונים",
+ "thresholdAndActions": "סף ופעולות"
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "הטריגר {{name}} נוצר בהצלחה.",
+ "updateTrigger": "הטריגר {{name}} עודכן בהצלחה.",
+ "deleteTrigger": "הטריגר {{name}} נמחק בהצלחה."
+ },
+ "error": {
+ "createTriggerFailed": "נכשל ביצירת הטריגר: {{errorMessage}}",
+ "updateTriggerFailed": "נכשל בעדכון הטריגר: {{errorMessage}}",
+ "deleteTriggerFailed": "נכשל במחיקת הטריגר: {{errorMessage}}"
+ }
+ }
}
}
diff --git a/web/public/locales/he/views/system.json b/web/public/locales/he/views/system.json
index 4e21f1a0a5..90480a554a 100644
--- a/web/public/locales/he/views/system.json
+++ b/web/public/locales/he/views/system.json
@@ -7,7 +7,8 @@
"reindexingEmbeddings": "אינדקס מחדש של ההטמעות ({{processed}}% הושלם)",
"cameraIsOffline": "{{camera}} לא זמינה",
"detectIsSlow": "{{detect}} איטי ({{speed}} אלפיות שנייה)",
- "detectIsVerySlow": "{{detect}} איטי מאוד ({{speed}} אלפיות שנייה)"
+ "detectIsVerySlow": "{{detect}} איטי מאוד ({{speed}} אלפיות שנייה)",
+ "shmTooLow": "יש להגדיל את הקצאת /dev/shm ({{total}} MB) לפחות ל־{{min}} MB."
},
"documentTitle": {
"cameras": "מצב מצלמות - Frigate",
@@ -52,7 +53,8 @@
"inferenceSpeed": "מהירות זיהוי",
"temperature": "טמפרטורת הגלאי",
"cpuUsage": "ניצול מעבד על ידי הגלאי",
- "memoryUsage": "שימוש בזיכרון על ידי הגלאי"
+ "memoryUsage": "שימוש בזיכרון על ידי הגלאי",
+ "cpuUsageInformation": "המעבד המשמש להכנת נתוני קלט ופלט אל/ממודלי זיהוי. ערך זה אינו מודד את השימוש בהסקה, גם אם נעשה שימוש במעבד גרפי או מאיץ."
},
"hardwareInfo": {
"gpuMemory": "זיכרון GPU",
@@ -85,7 +87,12 @@
}
},
"npuUsage": "שימוש ב-NPU",
- "npuMemory": "NPU זיכרון"
+ "npuMemory": "NPU זיכרון",
+ "intelGpuWarning": {
+ "title": "אזהרת סטטיסטיקות GPU של Intel",
+ "message": "נתוני ה־GPU אינם זמינים",
+ "description": "זהו באג ידוע בכלי הדיווח של Intel לסטטיסטיקות GPU (intel_gpu_top): לפעמים הוא “נשבר” ומתחיל להחזיר שוב ושוב שימוש GPU של 0%, גם במקרים שבהם ההאצה החומרתית וזיהוי האובייקטים כן עובדים תקין על ה־(i)GPU.\nזה לא באג של Frigate. אפשר לאתחל את ה־Host כדי לתקן את זה זמנית, וככה גם לוודא שה־GPU באמת עובד כמו שצריך.\nהתקלה הזו לא משפיעה על הביצועים."
+ }
},
"otherProcesses": {
"title": "תהליכים אחרים",
@@ -107,8 +114,18 @@
"plate_recognition_speed": "מהירות זיהוי לוחית",
"text_embedding_speed": "מהירות הטמעת טקסט",
"yolov9_plate_detection_speed": "מהירות זיהוי לוחיות YOLOv9",
- "yolov9_plate_detection": "זיהוי לוחיות YOLOv9"
- }
+ "yolov9_plate_detection": "זיהוי לוחיות YOLOv9",
+ "review_description": "תיאור סקירה",
+ "review_description_speed": "מהירות תיאור הסקירה",
+ "review_description_events_per_second": "תיאור סקירה",
+ "object_description": "תיאור אובייקט",
+ "object_description_speed": "מהירות תיאור האובייקט",
+ "object_description_events_per_second": "תיאור אובייקט",
+ "classification": "סיווג {{name}}",
+ "classification_speed": "מהירות סיווג {{name}}",
+ "classification_events_per_second": "אירועי סיווג לשנייה עבור {{name}}"
+ },
+ "averageInf": "זמן הסקה ממוצע"
},
"storage": {
"cameraStorage": {
@@ -129,6 +146,10 @@
"title": "הקלטות",
"earliestRecording": "ההקלטה המוקדמת ביותר הזמינה:",
"tips": "ערך זה מייצג את סך האחסון בו משתמשים ההקלטות במסד הנתונים של Frigate. Frigate אינו עוקב אחר ניצול האחסון עבור כל הקבצים בדיסק שלך."
+ },
+ "shm": {
+ "title": "הקצאת SHM (זיכרון משותף)",
+ "warning": "גודל ה־SHM הנוכחי של {{total}}MB קטן מדי. הגדל אותו לפחות ל־{{min_shm}}MB."
}
},
"cameras": {
diff --git a/web/public/locales/hi/audio.json b/web/public/locales/hi/audio.json
index afffaf44a4..0705110cff 100644
--- a/web/public/locales/hi/audio.json
+++ b/web/public/locales/hi/audio.json
@@ -139,5 +139,7 @@
"raindrop": "बारिश की बूंद",
"rowboat": "चप्पू वाली नाव",
"aircraft": "विमान",
- "bicycle": "साइकिल"
+ "bicycle": "साइकिल",
+ "bellow": "गर्जना करना",
+ "motorcycle": "मोटरसाइकिल"
}
diff --git a/web/public/locales/hi/common.json b/web/public/locales/hi/common.json
index 392c9a8441..d4c4335192 100644
--- a/web/public/locales/hi/common.json
+++ b/web/public/locales/hi/common.json
@@ -2,6 +2,7 @@
"time": {
"untilForTime": "{{time}} तक",
"untilForRestart": "जब तक फ्रिगेट पुनः रीस्टार्ट नहीं हो जाता।",
- "untilRestart": "रीस्टार्ट होने में"
+ "untilRestart": "रीस्टार्ट होने में",
+ "ago": "{{timeAgo}} पहले"
}
}
diff --git a/web/public/locales/hi/components/camera.json b/web/public/locales/hi/components/camera.json
index 37c5b27ed2..74c05d4693 100644
--- a/web/public/locales/hi/components/camera.json
+++ b/web/public/locales/hi/components/camera.json
@@ -2,6 +2,9 @@
"group": {
"label": "कैमरा समूह",
"add": "कैमरा समूह जोड़ें",
- "edit": "कैमरा समूह संपादित करें"
+ "edit": "कैमरा समूह संपादित करें",
+ "delete": {
+ "label": "कैमरा समूह हटाएँ"
+ }
}
}
diff --git a/web/public/locales/hi/components/dialog.json b/web/public/locales/hi/components/dialog.json
index dce6983b58..bcf4cd070f 100644
--- a/web/public/locales/hi/components/dialog.json
+++ b/web/public/locales/hi/components/dialog.json
@@ -3,7 +3,8 @@
"title": "क्या आप निश्चित हैं कि आप फ्रिगेट को रीस्टार्ट करना चाहते हैं?",
"button": "रीस्टार्ट",
"restarting": {
- "title": "फ्रिगेट रीस्टार्ट हो रहा है"
+ "title": "फ्रिगेट रीस्टार्ट हो रहा है",
+ "content": "यह पृष्ठ {{countdown}} सेकंड में पुनः लोड होगा।"
}
}
}
diff --git a/web/public/locales/hi/components/filter.json b/web/public/locales/hi/components/filter.json
index 214179375f..a89133b706 100644
--- a/web/public/locales/hi/components/filter.json
+++ b/web/public/locales/hi/components/filter.json
@@ -3,7 +3,8 @@
"labels": {
"label": "लेबल",
"all": {
- "title": "सभी लेबल"
+ "title": "सभी लेबल",
+ "short": "लेबल"
}
}
}
diff --git a/web/public/locales/hi/components/player.json b/web/public/locales/hi/components/player.json
index 9b4ed4389e..e5e63a82da 100644
--- a/web/public/locales/hi/components/player.json
+++ b/web/public/locales/hi/components/player.json
@@ -1,5 +1,8 @@
{
"noRecordingsFoundForThisTime": "इस समय का कोई रिकॉर्डिंग नहीं मिला",
"noPreviewFound": "कोई प्रीव्यू नहीं मिला",
- "noPreviewFoundFor": "{{cameraName}} के लिए कोई पूर्वावलोकन नहीं मिला"
+ "noPreviewFoundFor": "{{cameraName}} के लिए कोई पूर्वावलोकन नहीं मिला",
+ "submitFrigatePlus": {
+ "title": "इस फ्रेम को फ्रिगेट+ पर सबमिट करें?"
+ }
}
diff --git a/web/public/locales/hi/objects.json b/web/public/locales/hi/objects.json
index 436a576688..a4e93c3ab0 100644
--- a/web/public/locales/hi/objects.json
+++ b/web/public/locales/hi/objects.json
@@ -13,5 +13,6 @@
"vehicle": "वाहन",
"car": "गाड़ी",
"person": "व्यक्ति",
- "bicycle": "साइकिल"
+ "bicycle": "साइकिल",
+ "motorcycle": "मोटरसाइकिल"
}
diff --git a/web/public/locales/hi/views/classificationModel.json b/web/public/locales/hi/views/classificationModel.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/hi/views/classificationModel.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/hi/views/events.json b/web/public/locales/hi/views/events.json
index b6fba2aa1c..ae2091467e 100644
--- a/web/public/locales/hi/views/events.json
+++ b/web/public/locales/hi/views/events.json
@@ -1,4 +1,8 @@
{
"alerts": "अलर्टस",
- "detections": "खोजें"
+ "detections": "खोजें",
+ "motion": {
+ "label": "गति",
+ "only": "केवल गति"
+ }
}
diff --git a/web/public/locales/hi/views/explore.json b/web/public/locales/hi/views/explore.json
index bb214ba127..daafb9c2d3 100644
--- a/web/public/locales/hi/views/explore.json
+++ b/web/public/locales/hi/views/explore.json
@@ -1,4 +1,8 @@
{
"documentTitle": "अन्वेषण करें - फ्रिगेट",
- "generativeAI": "जनरेटिव ए आई"
+ "generativeAI": "जनरेटिव ए आई",
+ "exploreMore": "और अधिक {{label}} वस्तुओं का अन्वेषण करें",
+ "exploreIsUnavailable": {
+ "title": "अन्वेषण अनुपलब्ध है"
+ }
}
diff --git a/web/public/locales/hi/views/exports.json b/web/public/locales/hi/views/exports.json
index 97a0f0e537..b9e86dac15 100644
--- a/web/public/locales/hi/views/exports.json
+++ b/web/public/locales/hi/views/exports.json
@@ -1,4 +1,6 @@
{
"documentTitle": "निर्यात - फ्रिगेट",
- "search": "खोजें"
+ "search": "खोजें",
+ "noExports": "कोई निर्यात नहीं मिला",
+ "deleteExport": "निर्यात हटाएँ"
}
diff --git a/web/public/locales/hi/views/faceLibrary.json b/web/public/locales/hi/views/faceLibrary.json
index 5c8de952e6..b30528265c 100644
--- a/web/public/locales/hi/views/faceLibrary.json
+++ b/web/public/locales/hi/views/faceLibrary.json
@@ -1,6 +1,7 @@
{
"description": {
"addFace": "फेस लाइब्रेरी में नया संग्रह जोड़ने की प्रक्रिया को आगे बढ़ाएं।",
- "placeholder": "इस संग्रह का नाम बताएं"
+ "placeholder": "इस संग्रह का नाम बताएं",
+ "invalidName": "अमान्य नाम. नाम में केवल अक्षर, संख्याएँ, रिक्त स्थान, एपॉस्ट्रॉफ़ी, अंडरस्कोर और हाइफ़न ही शामिल हो सकते हैं।"
}
}
diff --git a/web/public/locales/hi/views/live.json b/web/public/locales/hi/views/live.json
index 86d2a9235c..9c7edbeab9 100644
--- a/web/public/locales/hi/views/live.json
+++ b/web/public/locales/hi/views/live.json
@@ -1,4 +1,5 @@
{
"documentTitle": "लाइव - फ्रिगेट",
- "documentTitle.withCamera": "{{camera}} - लाइव - फ्रिगेट"
+ "documentTitle.withCamera": "{{camera}} - लाइव - फ्रिगेट",
+ "lowBandwidthMode": "कम बैंडविड्थ मोड"
}
diff --git a/web/public/locales/hi/views/search.json b/web/public/locales/hi/views/search.json
index b38dd11af0..2ea0c8cfeb 100644
--- a/web/public/locales/hi/views/search.json
+++ b/web/public/locales/hi/views/search.json
@@ -1,4 +1,5 @@
{
"search": "खोजें",
- "savedSearches": "सहेजी गई खोजें"
+ "savedSearches": "सहेजी गई खोजें",
+ "searchFor": "{{inputValue}} खोजें"
}
diff --git a/web/public/locales/hi/views/settings.json b/web/public/locales/hi/views/settings.json
index 5fe3a32331..d9bf27ffcd 100644
--- a/web/public/locales/hi/views/settings.json
+++ b/web/public/locales/hi/views/settings.json
@@ -1,6 +1,7 @@
{
"documentTitle": {
"default": "सेटिंग्स - फ्रिगेट",
- "authentication": "प्रमाणीकरण सेटिंग्स - फ्रिगेट"
+ "authentication": "प्रमाणीकरण सेटिंग्स - फ्रिगेट",
+ "camera": "कैमरा सेटिंग्स - फ्रिगेट"
}
}
diff --git a/web/public/locales/hi/views/system.json b/web/public/locales/hi/views/system.json
index b29ff9abbc..23bafa3fcf 100644
--- a/web/public/locales/hi/views/system.json
+++ b/web/public/locales/hi/views/system.json
@@ -1,6 +1,7 @@
{
"documentTitle": {
"cameras": "कैमरा आँकड़े - फ्रिगेट",
- "storage": "भंडारण आँकड़े - फ्रिगेट"
+ "storage": "भंडारण आँकड़े - फ्रिगेट",
+ "general": "सामान्य आँकड़े - फ्रिगेट"
}
}
diff --git a/web/public/locales/hr/audio.json b/web/public/locales/hr/audio.json
new file mode 100644
index 0000000000..d0b8ecaaaf
--- /dev/null
+++ b/web/public/locales/hr/audio.json
@@ -0,0 +1,26 @@
+{
+ "speech": "Govor",
+ "babbling": "Brbljanje",
+ "bicycle": "Bicikl",
+ "yell": "Vikanje",
+ "car": "Automobil",
+ "bellow": "Ispod",
+ "motorcycle": "Motocikl",
+ "whispering": "Šaptanje",
+ "bus": "Autobus",
+ "laughter": "Smijeh",
+ "train": "Vlak",
+ "snicker": "Tenisica",
+ "boat": "Čamac",
+ "crying": "Plakanje",
+ "singing": "Pjevanje",
+ "choir": "Zbor",
+ "yodeling": "Jodlanje",
+ "mantra": "Mantra",
+ "bird": "Ptica",
+ "child_singing": "Dijete pjeva",
+ "cat": "Mačka",
+ "dog": "Pas",
+ "horse": "Konj",
+ "sheep": "Ovca"
+}
diff --git a/web/public/locales/hr/common.json b/web/public/locales/hr/common.json
new file mode 100644
index 0000000000..1e60764bda
--- /dev/null
+++ b/web/public/locales/hr/common.json
@@ -0,0 +1,25 @@
+{
+ "time": {
+ "untilForTime": "Do {{time}}",
+ "untilForRestart": "Dok se Frigate ponovno pokrene.",
+ "untilRestart": "Do ponovnog pokretanja",
+ "justNow": "Upravo",
+ "today": "Danas",
+ "yesterday": "Jučer",
+ "last7": "Zadnjih 7 dana",
+ "last14": "Zadnjih 14 dana",
+ "last30": "Zadnjih 30 dana",
+ "thisWeek": "Ovaj tjedan",
+ "lastWeek": "Prošli tjedan",
+ "thisMonth": "Ovaj mjesec",
+ "lastMonth": "Prošli mjesec",
+ "5minutes": "5 minuta",
+ "10minutes": "10 minuta",
+ "30minutes": "30 minuta",
+ "1hour": "1 sat",
+ "12hours": "12 sati",
+ "24hours": "24 sata",
+ "pm": "pm",
+ "am": "am"
+ }
+}
diff --git a/web/public/locales/hr/components/auth.json b/web/public/locales/hr/components/auth.json
new file mode 100644
index 0000000000..110ad2c644
--- /dev/null
+++ b/web/public/locales/hr/components/auth.json
@@ -0,0 +1,14 @@
+{
+ "form": {
+ "user": "Korisničko ime",
+ "password": "Lozinka",
+ "login": "Prijava",
+ "errors": {
+ "usernameRequired": "Korisničko ime je obavezno",
+ "passwordRequired": "Lozinka je obavezna",
+ "loginFailed": "Prijava nije uspjela",
+ "unknownError": "Nepoznata greška. Provjeri dnevnik.",
+ "webUnknownError": "Nepoznata greška. Provjerite logove u konzoli."
+ }
+ }
+}
diff --git a/web/public/locales/hr/components/camera.json b/web/public/locales/hr/components/camera.json
new file mode 100644
index 0000000000..271949a85c
--- /dev/null
+++ b/web/public/locales/hr/components/camera.json
@@ -0,0 +1,40 @@
+{
+ "group": {
+ "label": "Grupe kamera",
+ "add": "Dodaj grupu kamera",
+ "edit": "Uredi grupu kamera",
+ "delete": {
+ "label": "Izbriši grupu kamera",
+ "confirm": {
+ "title": "Potvrda brisanja",
+ "desc": "Da li ste sigurni da želite obrisati grupu kamera {{name}}?"
+ }
+ },
+ "name": {
+ "label": "Ime",
+ "placeholder": "Unesite ime…",
+ "errorMessage": {
+ "mustLeastCharacters": "Ime grupe kamera mora sadržavati barem 2 karaktera.",
+ "exists": "Grupa kamera sa ovim imenom već postoji.",
+ "nameMustNotPeriod": "Naziv grupe kamera ne smije sadržavati točku.",
+ "invalid": "Nevažeći naziv grupe kamera."
+ }
+ },
+ "cameras": {
+ "label": "Kamere",
+ "desc": "Izaberite kamere za ovu grupu."
+ },
+ "icon": "Ikona",
+ "success": "Grupa kamera ({{name}}) je pohranjena.",
+ "camera": {
+ "birdseye": "Ptičja perspektiva",
+ "setting": {
+ "label": "Postavke streamanja kamere",
+ "title": "{{cameraName}} Streaming Postavke",
+ "desc": "Promijenite opcije streamanja uživo za nadzornu ploču ove grupe kamera. Ove postavke su specifične za uređaj/preglednik.",
+ "audioIsAvailable": "Za ovaj prijenos dostupan je zvuk",
+ "audioIsUnavailable": "Za ovaj prijenos zvuk nije dostupan"
+ }
+ }
+ }
+}
diff --git a/web/public/locales/hr/components/dialog.json b/web/public/locales/hr/components/dialog.json
new file mode 100644
index 0000000000..2f360e1d6a
--- /dev/null
+++ b/web/public/locales/hr/components/dialog.json
@@ -0,0 +1,47 @@
+{
+ "restart": {
+ "title": "Jeste li sigurni da želite ponovno pokrenuti Frigate?",
+ "button": "Ponovno pokreni",
+ "restarting": {
+ "title": "Frigate se ponovno pokreće",
+ "content": "Ova stranica će se osvježiti za {{countdown}} sekundi.",
+ "button": "Forsiraj ponovno pokretanje odmah"
+ }
+ },
+ "explore": {
+ "plus": {
+ "submitToPlus": {
+ "label": "Pošalji u Frigate+"
+ },
+ "review": {
+ "question": {
+ "label": "Potvrdi oznaku za Frigate Plus",
+ "ask_a": "Da li je ovaj objekt {{label}}?",
+ "ask_an": "Da li je ovaj objekt {{label}}?",
+ "ask_full": "Da li je ovaj objekt {{untranslatedLabel}} ({{translatedLabel}})?"
+ },
+ "state": {
+ "submitted": "Poslano"
+ }
+ }
+ },
+ "video": {
+ "viewInHistory": "Pogledaj u povijesti"
+ }
+ },
+ "export": {
+ "time": {
+ "lastHour_one": "Zadnji sat",
+ "lastHour_few": "Zadnja {{count}} sata",
+ "lastHour_other": "Zadnjih {{count}} sati",
+ "start": {
+ "title": "Vrijeme početka",
+ "label": "Odaberi vrijeme početka"
+ },
+ "end": {
+ "title": "Vrijeme kraja",
+ "label": "Odaberi vrijeme kraja"
+ }
+ }
+ }
+}
diff --git a/web/public/locales/hr/components/filter.json b/web/public/locales/hr/components/filter.json
new file mode 100644
index 0000000000..d501197435
--- /dev/null
+++ b/web/public/locales/hr/components/filter.json
@@ -0,0 +1,30 @@
+{
+ "filter": "Filter",
+ "classes": {
+ "label": "Klase"
+ },
+ "labels": {
+ "label": "Oznake",
+ "all": {
+ "title": "Sve oznake",
+ "short": "Oznake"
+ },
+ "count_one": "{{count}} oznake",
+ "count_other": "{{count}} oznake"
+ },
+ "zones": {
+ "label": "Zone",
+ "all": {
+ "title": "Sve zone",
+ "short": "Zone"
+ }
+ },
+ "dates": {
+ "selectPreset": "Odaberi predložak…",
+ "all": {
+ "title": "Svi datumi",
+ "short": "Datumi"
+ }
+ },
+ "more": "Više filtera"
+}
diff --git a/web/public/locales/hr/components/icons.json b/web/public/locales/hr/components/icons.json
new file mode 100644
index 0000000000..f6c0fa5d54
--- /dev/null
+++ b/web/public/locales/hr/components/icons.json
@@ -0,0 +1,8 @@
+{
+ "iconPicker": {
+ "selectIcon": "Odaberite ikonu",
+ "search": {
+ "placeholder": "Traži ikonu…"
+ }
+ }
+}
diff --git a/web/public/locales/hr/components/input.json b/web/public/locales/hr/components/input.json
new file mode 100644
index 0000000000..0df384beab
--- /dev/null
+++ b/web/public/locales/hr/components/input.json
@@ -0,0 +1,10 @@
+{
+ "button": {
+ "downloadVideo": {
+ "label": "Preuzmi video",
+ "toast": {
+ "success": "Preuzimanje vašeg videa za recenziju je počelo."
+ }
+ }
+ }
+}
diff --git a/web/public/locales/hr/components/player.json b/web/public/locales/hr/components/player.json
new file mode 100644
index 0000000000..f322719041
--- /dev/null
+++ b/web/public/locales/hr/components/player.json
@@ -0,0 +1,19 @@
+{
+ "noRecordingsFoundForThisTime": "Nisu pronađene snimke za ovo vrijeme",
+ "submitFrigatePlus": {
+ "title": "Pošalji ovaj kadar u Frigate+?",
+ "submit": "Pošalji"
+ },
+ "cameraDisabled": "Kamera je onemogućena",
+ "stats": {
+ "streamType": {
+ "short": "Vrsta"
+ },
+ "latency": {
+ "value": "{{seconds}} sekundi",
+ "short": {
+ "value": "{{seconds}} sekundi"
+ }
+ }
+ }
+}
diff --git a/web/public/locales/hr/objects.json b/web/public/locales/hr/objects.json
new file mode 100644
index 0000000000..1a9a743921
--- /dev/null
+++ b/web/public/locales/hr/objects.json
@@ -0,0 +1,21 @@
+{
+ "person": "Osoba",
+ "bicycle": "Bicikl",
+ "car": "Automobil",
+ "motorcycle": "Motocikl",
+ "airplane": "Zrakoplov",
+ "bus": "Autobus",
+ "train": "Vlak",
+ "boat": "Čamac",
+ "traffic_light": "Semafor",
+ "fire_hydrant": "Hidrant",
+ "street_sign": "Prometni znak",
+ "stop_sign": "Znak stop",
+ "bench": "Klupa",
+ "bird": "Ptica",
+ "cat": "Mačka",
+ "dog": "Pas",
+ "horse": "Konj",
+ "sheep": "Ovca",
+ "cow": "Krava"
+}
diff --git a/web/public/locales/hr/views/classificationModel.json b/web/public/locales/hr/views/classificationModel.json
new file mode 100644
index 0000000000..e3070af27b
--- /dev/null
+++ b/web/public/locales/hr/views/classificationModel.json
@@ -0,0 +1,22 @@
+{
+ "documentTitle": "Klasifikacijski modeli - Frigate",
+ "button": {
+ "deleteImages": "Obriši slike",
+ "trainModel": "Treniraj model",
+ "addClassification": "Dodaj klasifikaciju",
+ "deleteModels": "Obriši modele",
+ "editModel": "Uredi model"
+ },
+ "tooltip": {
+ "trainingInProgress": "Model se trenutno trenira",
+ "modelNotReady": "Model nije spreman za treniranje"
+ },
+ "details": {
+ "unknown": "Nepoznato"
+ },
+ "toast": {
+ "success": {
+ "deletedImage": "Obrisane slike"
+ }
+ }
+}
diff --git a/web/public/locales/hr/views/configEditor.json b/web/public/locales/hr/views/configEditor.json
new file mode 100644
index 0000000000..fe4011ecc1
--- /dev/null
+++ b/web/public/locales/hr/views/configEditor.json
@@ -0,0 +1,12 @@
+{
+ "documentTitle": "Uređivač konfiguracije - Frigate",
+ "copyConfig": "Kopiraj konfiguraciju",
+ "saveAndRestart": "Spremi i pokreni ponovno",
+ "saveOnly": "Samo spremi",
+ "confirm": "Izađi bez spremanja?",
+ "toast": {
+ "error": {
+ "savingError": "Greška pri spremanju konfiguracije"
+ }
+ }
+}
diff --git a/web/public/locales/hr/views/events.json b/web/public/locales/hr/views/events.json
new file mode 100644
index 0000000000..47c1530f25
--- /dev/null
+++ b/web/public/locales/hr/views/events.json
@@ -0,0 +1,26 @@
+{
+ "alerts": "Upozorenja",
+ "detections": "Detekcije",
+ "motion": {
+ "label": "Pokret",
+ "only": "Samo pokret"
+ },
+ "allCameras": "Sve kamere",
+ "empty": {
+ "alert": "Nema uzbuna za pregledati",
+ "detection": "Nema detekcija za pregled",
+ "motion": "Nema podataka o pokretu"
+ },
+ "timeline": "Vremenska linija",
+ "timeline.aria": "Odaberi vremensku liniju",
+ "zoomOut": "Udalji",
+ "events": {
+ "label": "Događaji",
+ "aria": "Odaberi događaje",
+ "noFoundForTimePeriod": "Nema pronađenih događaja za ovaj vremenski period."
+ },
+ "zoomIn": "Približi",
+ "detail": {
+ "label": "Detalji"
+ }
+}
diff --git a/web/public/locales/hr/views/explore.json b/web/public/locales/hr/views/explore.json
new file mode 100644
index 0000000000..114e4f8935
--- /dev/null
+++ b/web/public/locales/hr/views/explore.json
@@ -0,0 +1,24 @@
+{
+ "documentTitle": "Istražite - Frigate",
+ "generativeAI": "Generativni AI",
+ "exploreIsUnavailable": {
+ "title": "Istraživanje je nedostupno",
+ "embeddingsReindexing": {
+ "startingUp": "Pokretanje…",
+ "finishingShortly": "Završava uskoro",
+ "estimatedTime": "Procjenjeno preostalo vrijeme:"
+ },
+ "downloadingModels": {
+ "setup": {
+ "textModel": "Tekstualni model"
+ }
+ }
+ },
+ "details": {
+ "timestamp": "Vremenska oznaka"
+ },
+ "trackedObjectDetails": "Detalji praćenog objekta",
+ "type": {
+ "details": "detalji"
+ }
+}
diff --git a/web/public/locales/hr/views/exports.json b/web/public/locales/hr/views/exports.json
new file mode 100644
index 0000000000..6a4956e699
--- /dev/null
+++ b/web/public/locales/hr/views/exports.json
@@ -0,0 +1,18 @@
+{
+ "documentTitle": "Izvoz - Frigate",
+ "search": "Pretraga",
+ "deleteExport.desc": "Da li si siguran da želiš obrisati {{exportName}}?",
+ "editExport": {
+ "saveExport": "Spremi izvoz",
+ "title": "Preimenuj izvoz",
+ "desc": "Unesite novo ime ovog izvoza."
+ },
+ "tooltip": {
+ "shareExport": "Podijeli izvoz",
+ "downloadVideo": "Preuzmi video",
+ "editName": "Uredi ime",
+ "deleteExport": "Obriši izvoz"
+ },
+ "noExports": "Izvozi nisu pronađeni",
+ "deleteExport": "Obriši izvoz"
+}
diff --git a/web/public/locales/hr/views/faceLibrary.json b/web/public/locales/hr/views/faceLibrary.json
new file mode 100644
index 0000000000..b500f4b90c
--- /dev/null
+++ b/web/public/locales/hr/views/faceLibrary.json
@@ -0,0 +1,41 @@
+{
+ "description": {
+ "addFace": "Dodaj novu kolekcije u Biblioteku lica učitavanjem prve slike.",
+ "placeholder": "Unesi ime za ovu kolekciju"
+ },
+ "steps": {
+ "faceName": "Unesi Ime Lica",
+ "uploadFace": "Prenesi Sliku Lica",
+ "nextSteps": "Sljedeći Koraci",
+ "description": {
+ "uploadFace": "Prenesite sliku {{name}} koja prikazuje njezino lice iz prednjeg kuta. Slika ne mora biti obrezana samo na njezino lice."
+ }
+ },
+ "train": {
+ "title": "Nedavna Prepoznavanja",
+ "aria": "Odaberite nedavna prepoznavanja",
+ "empty": "Nema nedavnih pokušaja prepoznavanja lica"
+ },
+ "deleteFaceLibrary": {
+ "title": "Izbriši Ime",
+ "desc": "Jeste li sigurni da želite izbrisati kolekciju {{name}}? Ovim će se trajno izbrisati sva povezana lica."
+ },
+ "deleteFaceAttempts": {
+ "title": "Izbriši Lica",
+ "desc_one": "Jeste li sigurni da želite izbrisati {{count}} lice? Ova se radnja ne može poništiti.",
+ "desc_few": "Jeste li sigurni da želite izbrisati {{count}} lica? Ova se radnja ne može poništiti.",
+ "desc_other": "Jeste li sigurni da želite izbrisati {{count}} lica? Ova se radnja ne može poništiti."
+ },
+ "details": {
+ "timestamp": "Vremenska oznaka",
+ "unknown": "Nepoznato"
+ },
+ "documentTitle": "Biblioteka lica - Frigate",
+ "uploadFaceImage": {
+ "title": "Učitaj sliku lica"
+ },
+ "collections": "Kolekcije",
+ "createFaceLibrary": {
+ "new": "Stvori novo lice"
+ }
+}
diff --git a/web/public/locales/hr/views/live.json b/web/public/locales/hr/views/live.json
new file mode 100644
index 0000000000..edf847efc6
--- /dev/null
+++ b/web/public/locales/hr/views/live.json
@@ -0,0 +1,46 @@
+{
+ "documentTitle": "Uživo - Frigate",
+ "documentTitle.withCamera": "{{camera}} - Uživo - Frigate",
+ "twoWayTalk": {
+ "enable": "Omogući dvosmjerni razgovor",
+ "disable": "Onemogući dvosmjerni razgovor"
+ },
+ "cameraAudio": {
+ "enable": "Omogući zvuk kamere",
+ "disable": "Onemogući zvuk kamere"
+ },
+ "ptz": {
+ "move": {
+ "clickMove": {
+ "label": "Klikni unutar kadra da centriraš kameru",
+ "enable": "Omogući pomicanje klikom",
+ "disable": "Onemogući pomicanje klikom"
+ },
+ "left": {
+ "label": "Pomakni PTZ kameru u lijevo"
+ },
+ "up": {
+ "label": "Pomakni PTZ kameru gore"
+ },
+ "down": {
+ "label": "Pomakni PTZ kameru dolje"
+ },
+ "right": {
+ "label": "Pomakni PTZ kameru u desno"
+ }
+ },
+ "zoom": {
+ "in": {
+ "label": "Približi PTZ kameru"
+ },
+ "out": {
+ "label": "Udalji PTZ kameru"
+ }
+ },
+ "focus": {
+ "in": {
+ "label": "Izoštri fokus PTZ kamere"
+ }
+ }
+ }
+}
diff --git a/web/public/locales/hr/views/recording.json b/web/public/locales/hr/views/recording.json
new file mode 100644
index 0000000000..8470b3e3d4
--- /dev/null
+++ b/web/public/locales/hr/views/recording.json
@@ -0,0 +1,12 @@
+{
+ "filter": "Filter",
+ "export": "Izvoz",
+ "calendar": "Kalendar",
+ "filters": "Filteri",
+ "toast": {
+ "error": {
+ "endTimeMustAfterStartTime": "Vrijeme završetka mora biti nakon vremena početka",
+ "noValidTimeSelected": "Nije izabran ispravan vremenski raspon"
+ }
+ }
+}
diff --git a/web/public/locales/hr/views/search.json b/web/public/locales/hr/views/search.json
new file mode 100644
index 0000000000..c31ff77c89
--- /dev/null
+++ b/web/public/locales/hr/views/search.json
@@ -0,0 +1,25 @@
+{
+ "search": "Pretraga",
+ "savedSearches": "Spremljene pretrage",
+ "searchFor": "Pretraži {{inputValue}}",
+ "button": {
+ "clear": "Izbriši pretragu",
+ "save": "Spremi pretragu",
+ "delete": "Obriši spremljene pretrage",
+ "filterInformation": "Filtriraj informacije",
+ "filterActive": "Filteri aktivni"
+ },
+ "filter": {
+ "label": {
+ "cameras": "Kamere",
+ "labels": "Oznake",
+ "zones": "Zone",
+ "search_type": "Pretraži vrstu",
+ "time_range": "Vremenski raspon",
+ "attributes": "Atributi",
+ "before": "Prije",
+ "after": "Poslije",
+ "min_score": "Min ocjena"
+ }
+ }
+}
diff --git a/web/public/locales/hr/views/settings.json b/web/public/locales/hr/views/settings.json
new file mode 100644
index 0000000000..500361bf33
--- /dev/null
+++ b/web/public/locales/hr/views/settings.json
@@ -0,0 +1,20 @@
+{
+ "documentTitle": {
+ "default": "Postavke - Frigate",
+ "authentication": "Postavke autentikacije - Frigate",
+ "cameraManagement": "Upravljaj kamerama - Frigate",
+ "masksAndZones": "Uređivač maski i zona - Frigate",
+ "general": "Postavke sučelja - Frigate",
+ "frigatePlus": "Frigate+ postavke - Frigate",
+ "notifications": "Postavke notifikacija - Frigate",
+ "enrichments": "Postavke obogaćivanja - Frigate"
+ },
+ "menu": {
+ "ui": "Sučelje",
+ "cameraReview": "Pregled",
+ "enrichments": "Obogaćenja",
+ "masksAndZones": "Maske / Zone",
+ "triggers": "Okidači",
+ "users": "Korisnici"
+ }
+}
diff --git a/web/public/locales/hr/views/system.json b/web/public/locales/hr/views/system.json
new file mode 100644
index 0000000000..417209030a
--- /dev/null
+++ b/web/public/locales/hr/views/system.json
@@ -0,0 +1,25 @@
+{
+ "documentTitle": {
+ "cameras": "Statistika kamera - Frigate",
+ "general": "Generalne statistike - Frigate",
+ "logs": {
+ "go2rtc": "Go2RTC dnevnik - Frigate",
+ "nginx": "Nginx dnevnik - Frigate",
+ "frigate": "Frigate logovi - Frigate"
+ },
+ "storage": "Statistika pohrane - Frigate",
+ "enrichments": "Statistika obogaćivanja - Frigate"
+ },
+ "title": "Sustav",
+ "logs": {
+ "download": {
+ "label": "Preuzmi dnevnik"
+ },
+ "type": {
+ "label": "Vrsta",
+ "timestamp": "Vremenska oznaka",
+ "tag": "Oznaka",
+ "message": "Poruka"
+ }
+ }
+}
diff --git a/web/public/locales/hu/audio.json b/web/public/locales/hu/audio.json
index 7d5d49bf9d..cc73f3ccce 100644
--- a/web/public/locales/hu/audio.json
+++ b/web/public/locales/hu/audio.json
@@ -149,7 +149,7 @@
"car": "Autó",
"bus": "Busz",
"motorcycle": "Motor",
- "train": "Vonat",
+ "train": "Betanít",
"bicycle": "Bicikli",
"scream": "Sikoly",
"throat_clearing": "Torokköszörülés",
diff --git a/web/public/locales/hu/common.json b/web/public/locales/hu/common.json
index c45157b38a..99e0450c23 100644
--- a/web/public/locales/hu/common.json
+++ b/web/public/locales/hu/common.json
@@ -142,7 +142,15 @@
"ro": "Román",
"hu": "Magyar",
"fi": "Finn",
- "th": "Thai"
+ "th": "Thai",
+ "ptBR": "Português brasileiro (Brazil portugál)",
+ "sr": "Српски (Szerb)",
+ "sl": "Slovenščina (Szlovén)",
+ "lt": "Lietuvių (Litván)",
+ "bg": "Български (Bolgár)",
+ "gl": "Galego (Galíciai)",
+ "id": "Bahasa Indonesia (Indonéz)",
+ "ur": "اردو (Urdu)"
},
"uiPlayground": "UI játszótér",
"faceLibrary": "Arc Könyvtár",
@@ -168,7 +176,7 @@
},
"role": {
"viewer": "Néző",
- "title": "Szerep",
+ "title": "Szerepkör",
"admin": "Adminisztrátor",
"desc": "Az adminisztrátoroknak teljes hozzáférése van az összes feature-höz. A nézők csak a kamerákat láthatják, áttekinthetik az elemeket és az előzményeket a UI-on."
},
@@ -213,6 +221,14 @@
"length": {
"feet": "láb",
"meters": "méter"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/óra",
+ "mbph": "MB/óra",
+ "gbph": "GB/óra"
}
},
"button": {
@@ -254,5 +270,9 @@
},
"label": {
"back": "Vissza"
+ },
+ "readTheDocumentation": "Olvassa el a dokumentációt",
+ "information": {
+ "pixels": "{{area}}px"
}
}
diff --git a/web/public/locales/hu/components/auth.json b/web/public/locales/hu/components/auth.json
index 37dc3a2e46..43b8e9e172 100644
--- a/web/public/locales/hu/components/auth.json
+++ b/web/public/locales/hu/components/auth.json
@@ -10,6 +10,7 @@
"unknownError": "Ismeretlen hiba. Ellenőrizze a naplókat.",
"webUnknownError": "Ismeretlen hiba. Ellenőrizze a konzol naplókat.",
"rateLimit": "Túl sokszor próbálkozott. Próbálja meg később."
- }
+ },
+ "firstTimeLogin": "Először próbálsz bejelentkezni? A hitelesítési adatok a Frigate naplóiban vannak feltüntetve."
}
}
diff --git a/web/public/locales/hu/components/camera.json b/web/public/locales/hu/components/camera.json
index e53fb9c18d..c5294818d4 100644
--- a/web/public/locales/hu/components/camera.json
+++ b/web/public/locales/hu/components/camera.json
@@ -1,6 +1,6 @@
{
"group": {
- "label": "Kamera Csoport",
+ "label": "Kamera Csoportok",
"delete": {
"confirm": {
"desc": "Biztosan törölni akarja a következő kamera csoportot {{name}}?",
@@ -66,7 +66,8 @@
"desc": "Csak akkor engedélyezze ezt az opciót, ha a kamera élő közvetítése képhibás, és a kép jobb oldalán átlós vonal látható."
},
"desc": "Változtassa meg az élő adás beállításait ezen kamera csoport kijelzőjén. Ezek a beállítások eszköz/böngésző-specifikusak."
- }
+ },
+ "birdseye": "Madártávlat"
}
},
"debug": {
diff --git a/web/public/locales/hu/components/dialog.json b/web/public/locales/hu/components/dialog.json
index bff6ade191..c45eac1fc6 100644
--- a/web/public/locales/hu/components/dialog.json
+++ b/web/public/locales/hu/components/dialog.json
@@ -1,10 +1,10 @@
{
"restart": {
- "title": "Biztosan újra szeretnéd indítani a Frigate-ot?",
+ "title": "Biztosan újra szeretnéd indítani a Frigate-et?",
"button": "Újraindítás",
"restarting": {
"title": "A Frigate újraindul",
- "content": "Az oldal újrtölt {{countdown}} másodperc múlva.",
+ "content": "Az oldal újratölt {{countdown}} másodperc múlva.",
"button": "Erőltetett újraindítás azonnal"
}
},
@@ -22,7 +22,7 @@
"ask_a": "Ez a tárgy egy {{label}}?",
"label": "Erősítse meg ezt a cimkét a Frigate plus felé",
"ask_an": "Ez a tárgy egy {{label}}?",
- "ask_full": "Ez a tárgy egy {{untranslatedLabel}} ({{translatedLabel}})?"
+ "ask_full": "Ez a tárgy egy {{translatedLabel}} ({{untranslatedLabel}})?"
}
}
},
@@ -107,7 +107,15 @@
"button": {
"markAsReviewed": "Megjelölés áttekintettként",
"deleteNow": "Törlés Most",
- "export": "Exportálás"
+ "export": "Exportálás",
+ "markAsUnreviewed": "Megjelölés nem ellenőrzöttként"
}
+ },
+ "imagePicker": {
+ "selectImage": "Válassza ki egy követett tárgy képét",
+ "search": {
+ "placeholder": "Keresés cimke vagy alcimke alapján..."
+ },
+ "noImages": "Nem találhatók bélyegképek ehhez a kamerához"
}
}
diff --git a/web/public/locales/hu/components/filter.json b/web/public/locales/hu/components/filter.json
index f4b9b9f39c..8af6361f49 100644
--- a/web/public/locales/hu/components/filter.json
+++ b/web/public/locales/hu/components/filter.json
@@ -97,7 +97,7 @@
"label": "Keresés Forrás",
"options": {
"description": "Leírás",
- "thumbnailImage": "Bélyegkép"
+ "thumbnailImage": "Indexkép"
},
"desc": "Válassza ki, hogy a követett objektumok bélyegképeiben vagy leírásaiban szeretne keresni."
},
@@ -121,6 +121,16 @@
"noLicensePlatesFound": "Rendszámtábla nem található.",
"selectPlatesFromList": "Válasszon ki egy vagy több rendszámtáblát a listából.",
"loading": "Felismert rendszámtáblák betöltése…",
- "placeholder": "Kezdjen gépelni a rendszámok közötti kereséshez…"
+ "placeholder": "Kezdjen gépelni a rendszámok közötti kereséshez…",
+ "selectAll": "Mindet kijelöl",
+ "clearAll": "Mindet törli"
+ },
+ "classes": {
+ "label": "Osztályok",
+ "all": {
+ "title": "Minden Osztály"
+ },
+ "count_one": "{{count}} Osztály",
+ "count_other": "{{count}} Osztályok"
}
}
diff --git a/web/public/locales/hu/objects.json b/web/public/locales/hu/objects.json
index 5bac94fc33..4b53d161b3 100644
--- a/web/public/locales/hu/objects.json
+++ b/web/public/locales/hu/objects.json
@@ -5,7 +5,7 @@
"motorcycle": "Motor",
"airplane": "Repülőgép",
"bus": "Busz",
- "train": "Vonat",
+ "train": "Betanít",
"boat": "Hajó",
"dog": "Kutya",
"cat": "Macska",
diff --git a/web/public/locales/hu/views/classificationModel.json b/web/public/locales/hu/views/classificationModel.json
new file mode 100644
index 0000000000..5e9d6f58c1
--- /dev/null
+++ b/web/public/locales/hu/views/classificationModel.json
@@ -0,0 +1,18 @@
+{
+ "documentTitle": "Osztályozási modellek",
+ "button": {
+ "deleteClassificationAttempts": "Osztályozási képek törlése",
+ "deleteImages": "Képek törlése",
+ "trainModel": "Modell betanítása",
+ "deleteModels": "Modellek törlése",
+ "editModel": "Modell szerkesztése"
+ },
+ "toast": {
+ "success": {
+ "deletedImage": "Törölt képek",
+ "deletedModel_one": "Sikeresen törölt {{count}} modellt",
+ "deletedModel_other": "",
+ "categorizedImage": "A kép sikeresen osztályozva"
+ }
+ }
+}
diff --git a/web/public/locales/hu/views/configEditor.json b/web/public/locales/hu/views/configEditor.json
index b921c987d0..69fa822e96 100644
--- a/web/public/locales/hu/views/configEditor.json
+++ b/web/public/locales/hu/views/configEditor.json
@@ -12,5 +12,7 @@
"savingError": "Hiba a konfiguráció mentésekor"
}
},
- "confirm": "Kilép mentés nélkül?"
+ "confirm": "Kilép mentés nélkül?",
+ "safeConfigEditor": "Konfiguráció szerkesztő (Biztosnági Mód)",
+ "safeModeDescription": "Frigate biztonsági módban van konfigurációs hiba miatt."
}
diff --git a/web/public/locales/hu/views/events.json b/web/public/locales/hu/views/events.json
index 586953de1b..abea6b4644 100644
--- a/web/public/locales/hu/views/events.json
+++ b/web/public/locales/hu/views/events.json
@@ -34,5 +34,8 @@
"markTheseItemsAsReviewed": "Ezen elemek megjelölése áttekintettként",
"markAsReviewed": "Megjelölés Áttekintettként",
"selected_one": "{{count}} kiválasztva",
- "selected_other": "{{count}} kiválasztva"
+ "selected_other": "{{count}} kiválasztva",
+ "suspiciousActivity": "Gyanús Tevékenység",
+ "threateningActivity": "Fenyegető Tevékenység",
+ "zoomIn": "Nagyítás"
}
diff --git a/web/public/locales/hu/views/explore.json b/web/public/locales/hu/views/explore.json
index 9f5cd48146..cf811cdef8 100644
--- a/web/public/locales/hu/views/explore.json
+++ b/web/public/locales/hu/views/explore.json
@@ -27,6 +27,14 @@
"downloadSnapshot": {
"aria": "Pillanatfelvétel letöltése",
"label": "Pillanatfelvétel letöltése"
+ },
+ "addTrigger": {
+ "label": "Indító hozzáadása",
+ "aria": "Indító hozzáadása ehhez a követett tárgyhoz"
+ },
+ "audioTranscription": {
+ "label": "Átírás",
+ "aria": "Hangátirat kérése"
}
},
"details": {
@@ -65,12 +73,14 @@
"error": {
"updatedLPRFailed": "Rendszám frissítése sikertelen: {{errorMessage}}",
"updatedSublabelFailed": "Alcimke frissítése sikertelen: {{errorMessage}}",
- "regenerate": "Nem sikerült meghívni a(z) {{provider}} szolgáltatót az új leírásért: {{errorMessage}}"
+ "regenerate": "Nem sikerült meghívni a(z) {{provider}} szolgáltatót az új leírásért: {{errorMessage}}",
+ "audioTranscription": "Nem sikerült hangátiratot kérni: {{errorMessage}}"
},
"success": {
"updatedSublabel": "Az alcimke sikeresen frissítve.",
"updatedLPR": "Rendszám sikeresen frissítve.",
- "regenerate": "Új leírást kértünk a(z) {{provider}} szolgáltatótól. A szolgáltató sebességétől függően az új leírás előállítása eltarthat egy ideig."
+ "regenerate": "Új leírást kértünk a(z) {{provider}} szolgáltatótól. A szolgáltató sebességétől függően az új leírás előállítása eltarthat egy ideig.",
+ "audioTranscription": "Sikeresen kérte a hangátírást."
}
},
"button": {
@@ -97,7 +107,10 @@
},
"findSimilar": "Keress Hasonlót"
},
- "expandRegenerationMenu": "Újragenerálási menü kiterjesztése"
+ "expandRegenerationMenu": "Újragenerálási menü kiterjesztése",
+ "score": {
+ "label": "Pontszám"
+ }
},
"searchResult": {
"deleteTrackedObject": {
@@ -203,5 +216,11 @@
"snapshot": "pillanatfelvétel"
},
"trackedObjectDetails": "Követett Tárgy Részletei",
- "exploreMore": "Fedezzen fel több {{label}} tárgyat"
+ "exploreMore": "Fedezzen fel több {{label}} tárgyat",
+ "aiAnalysis": {
+ "title": "MI-elemzés"
+ },
+ "concerns": {
+ "label": "Aggodalmak"
+ }
}
diff --git a/web/public/locales/hu/views/exports.json b/web/public/locales/hu/views/exports.json
index f54c70923b..ab07aba94c 100644
--- a/web/public/locales/hu/views/exports.json
+++ b/web/public/locales/hu/views/exports.json
@@ -13,5 +13,11 @@
"error": {
"renameExportFailed": "Sikertelen export átnevezés: {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "downloadVideo": "Videó letöltése",
+ "editName": "Név szerkesztése",
+ "deleteExport": "Export törlése",
+ "shareExport": "Export megosztása"
}
}
diff --git a/web/public/locales/hu/views/faceLibrary.json b/web/public/locales/hu/views/faceLibrary.json
index 4aaef392d9..4f9331f87e 100644
--- a/web/public/locales/hu/views/faceLibrary.json
+++ b/web/public/locales/hu/views/faceLibrary.json
@@ -1,7 +1,7 @@
{
"renameFace": {
"title": "Arc átnevezése",
- "desc": "Adjon meg egy új nevet {{name}}-nak/-nek"
+ "desc": "Adjon meg egy új nevet neki: {{name}}"
},
"details": {
"subLabelScore": "Alcimke érték",
@@ -42,12 +42,12 @@
"title": "Gyűjtemény létrehozása",
"desc": "Új gyűjtemény létrehozása",
"new": "Új arc létrhozása",
- "nextSteps": "A jó alap készítéséhez:
Használja a Tanítás fület az egyes észlelt személyekhez tartozó képek kiválasztására és betanítására.
A legjobb eredmény érdekében válassza az egyenesen előre néző arcokat ábrázoló képeket és kerülje a ferde szögből készült arcképeket a tanításhoz."
+ "nextSteps": "A jó alap készítéséhez:
Használja a Legutóbbi felismerések fület az egyes észlelt személyekhez tartozó képek kiválasztásához és betanításához.
A legjobb eredmény érdekében válassza az egyenesen előre néző arcokat ábrázoló képeket és kerülje a ferde szögből készült arcképeket a tanításhoz."
},
"description": {
"placeholder": "Adj nevet ennek a gyűjteménynek",
"invalidName": "Nem megfelelő név. A nevek csak betűket, számokat, szóközöket, aposztrófokat, alulhúzásokat és kötőjeleket tartalmazhatnak.",
- "addFace": "Segédlet új gyűjtemény hozzáadásához az arckép könyvtárban."
+ "addFace": "Adj hozzá egy új gyűjteményt az Arcképtárhoz az első képed feltöltésével."
},
"selectFace": "Arc kiválasztása",
"deleteFaceLibrary": {
@@ -90,7 +90,7 @@
"nofaces": "Nincs elérhető arc",
"documentTitle": "Arc könyvtár - Frigate",
"train": {
- "title": "Vonat",
+ "title": "Tanít",
"empty": "Nincs friss arcfelismerés",
"aria": "Válassza ki a tanítást"
},
diff --git a/web/public/locales/hu/views/live.json b/web/public/locales/hu/views/live.json
index 73a8f81f90..b7a5ff9672 100644
--- a/web/public/locales/hu/views/live.json
+++ b/web/public/locales/hu/views/live.json
@@ -43,7 +43,15 @@
"label": "Kattinston a képre a PTZ kamera középre igazításához"
}
},
- "presets": "PTZ kamera előzetes beállításai"
+ "presets": "PTZ kamera előzetes beállításai",
+ "focus": {
+ "in": {
+ "label": "PTZ kamera fókuszálás BE"
+ },
+ "out": {
+ "label": "PTZ kamera fókuszálás KI"
+ }
+ }
},
"camera": {
"enable": "Kamera Engedélyezése",
@@ -126,6 +134,9 @@
"playInBackground": {
"label": "Lejátszás a háttérben",
"tips": "Engedélyezze ezt az opciót a folyamatos közvetítéshez akkor is, ha a lejátszó rejtve van."
+ },
+ "debug": {
+ "picker": "A stream kiválasztása nem érhető el hibakeresési módban. A hibakeresési nézet mindig az észlelési szerepkörhöz rendelt streamet használja."
}
},
"cameraSettings": {
@@ -135,7 +146,8 @@
"recording": "Felvétel",
"audioDetection": "Hang Észlelés",
"snapshots": "Pillanatképek",
- "autotracking": "Automatikus követés"
+ "autotracking": "Automatikus követés",
+ "transcription": "Hang Feliratozás"
},
"history": {
"label": "Előzmény felvételek megjelenítése"
@@ -154,5 +166,20 @@
"label": "Kameracsoport szerkesztése"
},
"exitEdit": "Szerkesztés bezárása"
+ },
+ "transcription": {
+ "enable": "Élő Audio Feliratozás Engedélyezése",
+ "disable": "Élő Audio Feliratozás Kikapcsolása"
+ },
+ "noCameras": {
+ "title": "Nincsenek kamerák beállítva",
+ "description": "Kezdje egy kamera csatlakoztatásával.",
+ "buttonText": "Kamera hozzáadása"
+ },
+ "snapshot": {
+ "takeSnapshot": "Azonnali pillanatkép letöltése",
+ "noVideoSource": "Ehhez a pillanatképhez videó forrás nem elérhető.",
+ "captureFailed": "Pillanatkép készítése sikertelen.",
+ "downloadStarted": "Pillanatkép letöltése elindítva."
}
}
diff --git a/web/public/locales/hu/views/settings.json b/web/public/locales/hu/views/settings.json
index 5fc972304e..c36e9a53ff 100644
--- a/web/public/locales/hu/views/settings.json
+++ b/web/public/locales/hu/views/settings.json
@@ -10,7 +10,9 @@
"frigatePlus": "Frigate+ beállítások - Frigate",
"notifications": "Értesítések beállítása - Frigate",
"motionTuner": "Mozgás Hangoló - Frigate",
- "enrichments": "Kiegészítés Beállítások - Frigate"
+ "enrichments": "Kiegészítés Beállítások - Frigate",
+ "cameraManagement": "Kamerák kezelése - Frigate",
+ "cameraReview": "Kamera beállítások áttekintése – Frigate"
},
"menu": {
"ui": "UI",
@@ -22,7 +24,11 @@
"users": "Felhasználók",
"notifications": "Értesítések",
"frigateplus": "Frigate+",
- "enrichments": "Gazdagítások"
+ "enrichments": "Extra funkciók",
+ "triggers": "Triggerek",
+ "roles": "Szerepkörök",
+ "cameraManagement": "Menedzsment",
+ "cameraReview": "Vizsgálat"
},
"dialog": {
"unsavedChanges": {
@@ -253,7 +259,8 @@
"admin": "Adminisztrátor",
"intro": "Válassza ki a megfelelő szerepkört ehhez a felhasználóhoz:",
"adminDesc": "Teljes hozzáférés az összes funkcióhoz.",
- "viewerDesc": "Csak az Élő irányítópultokhoz, Ellenőrzéshez, Felfedezéshez és Exportokhoz korlátozva."
+ "viewerDesc": "Csak az Élő irányítópultokhoz, Ellenőrzéshez, Felfedezéshez és Exportokhoz korlátozva.",
+ "customDesc": "Egyéni szerepkör meghatározott kamerahozzáféréssel."
},
"title": "Felhasználói szerepkör módosítása",
"select": "Válasszon szerepkört",
@@ -316,7 +323,7 @@
"username": "Felhasználói név",
"password": "Jelszó",
"deleteUser": "Felhasználó törlése",
- "actions": "Műveletek",
+ "actions": "Akciók",
"role": "Szerepkör",
"changeRole": "felhasználói szerepkör módosítása"
},
@@ -559,6 +566,19 @@
"title": "Régiók",
"desc": "Mutassa a célterület keretét, amelyet az objektumérzékelőhöz küldenek",
"tips": "
Célterület keretek
Világoszöld keretek jelennek meg a képkocka azon területein, amelyek az objektumérzékelőnek elküldésre kerülnek.
"
+ },
+ "paths": {
+ "title": "Útvonalak",
+ "desc": "A követett objektum útvonalához tartozó jelentősebb pontok megjelenítése",
+ "tips": "
Útvonalak
A vonalak és körök jelzik a követett objektum életciklusa során érintett jelentősebb pontokat.
"
+ },
+ "openCameraWebUI": "Nyissa meg a {{camera}} webes felületét",
+ "audio": {
+ "title": "Hang",
+ "noAudioDetections": "Nincs hangérzékelés",
+ "score": "pontszám",
+ "currentRMS": "Aktuális effektív érték",
+ "currentdbFS": "Aktuális dbFS"
}
},
"motionDetectionTuner": {
@@ -616,6 +636,218 @@
"success": "Az Ellenőrzési Kategorizálás beállításai elmentésre kerültek. A módosítások alkalmazásához indítsa újra a Frigate-et."
}
},
- "title": "Kamera Beállítások"
+ "title": "Kamera Beállítások",
+ "object_descriptions": {
+ "title": "Generatív AI Tárgy Leírások",
+ "desc": "Ideiglenesen engedélyezze/tiltsa le a generatív AI objektumleírásokat ehhez a kamerához. Letiltás esetén a rendszer nem kéri le a mesterséges intelligencia által generált leírásokat a kamerán követett objektumokhoz."
+ },
+ "addCamera": "Új Kamera Hozzáadása",
+ "editCamera": "Kamera Szerkesztése:",
+ "selectCamera": "Válasszon ki egy Kamerát",
+ "backToSettings": "Vissza a Kamera Beállításokhoz",
+ "cameraConfig": {
+ "add": "Kamera Hozzáadása",
+ "edit": "Kamera Szerkesztése",
+ "name": "Kamera Neve",
+ "nameRequired": "Kamera nevének megadása szükséges",
+ "description": "Konfigurálja a kamera beállításait, beleértve a stream bemeneteket és szerepeket.",
+ "nameInvalid": "A kamera neve csak betűket, számokat, aláhúzásjeleket vagy kötőjeleket tartalmazhat",
+ "namePlaceholder": "pl: bejarati_ajto",
+ "enabled": "Engedélyezve",
+ "ffmpeg": {
+ "inputs": "Bemeneti Adatfolyamok",
+ "path": "Adatfolyam útvonal",
+ "pathRequired": "Adatfolyam útvonal szükséges",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Szerepkörök",
+ "rolesRequired": "Legalább egy szerepkör megadása kötelező",
+ "rolesUnique": "Minden szerepkör (hang, érzékelés, rögzítés) csak egy adatfolyamhoz rendelhető hozzá",
+ "addInput": "Bejövő Adatfolyam Hozzáadása",
+ "removeInput": "Bejövő Adatfolyam Eltávolítása",
+ "inputsRequired": "Legalább egy bemeneti adatfolyam szükséges"
+ },
+ "toast": {
+ "success": "A következő kamera sikeresen mentve: {{cameraName}}"
+ },
+ "nameLength": "A kamera nevének kevesebbnek kell lennie 24 karakternél."
+ },
+ "review_descriptions": {
+ "title": "Generatív MI Áttekintési Leírások",
+ "desc": "Ideiglenesen engedélyezze/tiltsa le a generatív mesterséges intelligencia által generált leírásokat ehhez a kamerához. Letiltás esetén a mesterséges intelligencia által generált leírások nem lesznek lekérve a kamerán található elemhez."
+ }
+ },
+ "triggers": {
+ "documentTitle": "Trigger-ek",
+ "management": {
+ "title": "Triggerek kezelése",
+ "desc": "A(z) {{camera}} nevű kamera triggereinek kezelése. A bélyegkép típussal a kiválasztott követett objektumhoz hasonló bélyegképekre, a leírás típussal pedig a megadott szöveghez hasonló leírásokra aktiválhatja a funkciót."
+ },
+ "addTrigger": "Trigger hozzáadása",
+ "table": {
+ "name": "Név",
+ "type": "Típus",
+ "content": "Tartalom",
+ "threshold": "Határérték",
+ "actions": "Akciók",
+ "noTriggers": "Nincsenek konfigurált triggerek ehhez a kamerához.",
+ "edit": "Szerkesztés",
+ "deleteTrigger": "Trigger törlése",
+ "lastTriggered": "Utoljára triggerelve"
+ },
+ "type": {
+ "thumbnail": "Bélyegkép",
+ "description": "Leírás"
+ },
+ "actions": {
+ "alert": "Megjelölés Riasztásként",
+ "notification": "Értesítés küldése"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Trigger létrehozása",
+ "desc": "Hozz létre egy triggert a(z) {{camera}} kamerához"
+ },
+ "editTrigger": {
+ "title": "Trigger Szerkesztése",
+ "desc": "Trigger beállítások szerkesztése a következő kamerán: {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Trigger Törlése",
+ "desc": "Biztosan törölni szeretné a(z){{triggerName}} triggert? Ez a művelet nem vonható vissza."
+ },
+ "form": {
+ "name": {
+ "title": "Név",
+ "placeholder": "Add meg a trigger nevét",
+ "error": {
+ "minLength": "A névnek minimum 2 karakter hosszúnak kell lennie.",
+ "invalidCharacters": "A név csak betűket, számokat, aláhúzásjeleket és kötőjeleket tartalmazhat.",
+ "alreadyExists": "Már létezik egy ilyen nevű trigger ehhez a kamerához."
+ }
+ },
+ "enabled": {
+ "description": "Engedélyezze vagy tiltsa le ezt a triggert"
+ },
+ "type": {
+ "title": "Típus",
+ "placeholder": "Válaszd ki a trigger típusát"
+ },
+ "content": {
+ "title": "Tartalom",
+ "imagePlaceholder": "Válassz egy képet",
+ "textPlaceholder": "Írja be a szöveges tartalmat",
+ "imageDesc": "Válasszon ki egy képet, amely aktiválja ezt a műveletet, amikor a rendszer hasonló képet észlel.",
+ "textDesc": "Írjon be egy szöveget, amely aktiválja ezt a műveletet, amikor a rendszer hasonló követett objektumleírást észlel.",
+ "error": {
+ "required": "Tartalom megadása kötelező."
+ }
+ },
+ "threshold": {
+ "title": "Határérték",
+ "error": {
+ "min": "A határértéknek 0-nál nagyobbnak kell lennie",
+ "max": "A határérték legfeljebb 1 lehet"
+ }
+ },
+ "actions": {
+ "title": "Akciók",
+ "desc": "Alapértelmezés szerint a Frigate minden trigger esetén MQTT üzenetet küld. Válasszon ki egy további műveletet, amelyet a trigger aktiválásakor végre kell hajtani.",
+ "error": {
+ "min": "Legalább egy műveletet ki kell választani."
+ }
+ },
+ "friendly_name": {
+ "title": "Barátságos név",
+ "placeholder": "Nevezd meg vagy írd le ezt a triggert",
+ "description": "Egy opcionális felhasználóbarát név vagy leíró szöveg ehhez az eseményindítóhoz."
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "A trigger sikeresen létrehozva: {{name}}.",
+ "updateTrigger": "A trigger sikeresen módosítva: {{name}}.",
+ "deleteTrigger": "A trigger sikeresen törölve: {{name}}."
+ },
+ "error": {
+ "createTriggerFailed": "A trigger létrehozása sikertelen: {{errorMessage}}",
+ "updateTriggerFailed": "A trigger módosítása sikertelen: {{errorMessage}}",
+ "deleteTriggerFailed": "A trigger törlése sikertelen: {{errorMessage}}"
+ }
+ },
+ "semanticSearch": {
+ "title": "Szemantikus keresés le van tiltva",
+ "desc": "A Triggerek használatához engedélyezni kell a szemantikus keresést."
+ }
+ },
+ "roles": {
+ "management": {
+ "title": "Megtekintői szerepkör-kezelés",
+ "desc": "Kezelje az egyéni nézői szerepköröket és a kamera-hozzáférési engedélyeiket ehhez a Frigate-példányhoz."
+ },
+ "addRole": "Szerepkör hozzáadása",
+ "table": {
+ "role": "Szerepkör",
+ "cameras": "Kamerák",
+ "actions": "Akciók",
+ "noRoles": "Nem találhatók egyéni szerepkörök.",
+ "editCameras": "Kamerák módosítása",
+ "deleteRole": "Szerepkör törlése"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Szerepkör létrehozva: {{role}}",
+ "updateCameras": "Kamerák frissítve a szerepkörhöz: {{role}}",
+ "deleteRole": "Szerepkör sikeresen törölve: {{role}}",
+ "userRolesUpdated_one": "{{count}} felhasználó, akit ehhez a szerepkörhöz rendeltünk, frissült „néző”-re, amely hozzáféréssel rendelkezik az összes kamerához.",
+ "userRolesUpdated_other": ""
+ },
+ "error": {
+ "createRoleFailed": "Nem sikerült létrehozni a szerepkört: {{errorMessage}}",
+ "updateCamerasFailed": "Nem sikerült frissíteni a kamerákat: {{errorMessage}}",
+ "deleteRoleFailed": "Nem sikerült törölni a szerepkört: {{errorMessage}}",
+ "userUpdateFailed": "Nem sikerült frissíteni a felhasználói szerepköröket: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Új szerepkör létrehozása",
+ "desc": "Adjon hozzá egy új szerepkört, és adja meg a kamera hozzáférési engedélyeit."
+ },
+ "editCameras": {
+ "title": "Szerepkör kamerák szerkesztése",
+ "desc": "Frissítse a kamerahozzáférést a(z) {{role}} szerepkörhöz."
+ },
+ "deleteRole": {
+ "title": "Szerepkör törlése",
+ "desc": "Ez a művelet nem vonható vissza. Ez véglegesen törli a szerepkört, és az ezzel a szerepkörrel rendelkező összes felhasználót a „megtekintő” szerepkörhöz rendeli, amivel a megtekintő hozzáférhet az összes kamerához.",
+ "warn": "Biztosan törölni szeretnéd a(z) {{role}} szerepkört?",
+ "deleting": "Törlés..."
+ },
+ "form": {
+ "role": {
+ "title": "Szerepkör neve",
+ "placeholder": "Adja meg a szerepkör nevét",
+ "desc": "Csak betűk, számok, pontok és aláhúzásjelek engedélyezettek.",
+ "roleIsRequired": "A szerepkör nevének megadása kötelező",
+ "roleOnlyInclude": "A szerepkör neve csak betűket, számokat , . vagy _ karaktereket tartalmazhat",
+ "roleExists": "Már létezik egy ilyen nevű szerepkör."
+ },
+ "cameras": {
+ "title": "Kamerák",
+ "desc": "Válassza ki azokat a kamerákat, amelyekhez ennek a szerepkörnek hozzáférése van. Legalább egy kamera megadása szükséges.",
+ "required": "Legalább egy kamerát ki kell választani."
+ }
+ }
+ }
+ },
+ "cameraWizard": {
+ "title": "Kamera hozzáadása",
+ "description": "Kövesse az alábbi lépéseket, hogy új kamerát adjon hozzá a Frigate telepítéséhez.",
+ "steps": {
+ "nameAndConnection": "Név & adatkapcsolat",
+ "streamConfiguration": "Stream beállítások",
+ "validationAndTesting": "Validálás és tesztelés"
+ }
}
}
diff --git a/web/public/locales/hu/views/system.json b/web/public/locales/hu/views/system.json
index 847ac7c831..fffa798a3b 100644
--- a/web/public/locales/hu/views/system.json
+++ b/web/public/locales/hu/views/system.json
@@ -87,7 +87,8 @@
"inferenceSpeed": "Érzékelők Inferencia Sebessége",
"cpuUsage": "Érzékelő CPU Kihasználtság",
"memoryUsage": "Érzékelő Memória Kihasználtság",
- "temperature": "Érzékelő Hőmérséklete"
+ "temperature": "Érzékelő Hőmérséklete",
+ "cpuUsageInformation": "A detektálási modellekbe érkező és onnan távozó bemeneti és kimeneti adatok előkészítéséhez használt CPU. Ez az érték nem méri a következtetési kihasználtságot, még GPU vagy gyorsító használata esetén sem."
},
"hardwareInfo": {
"title": "Hardver Infó",
@@ -147,6 +148,10 @@
"title": "Felhasználatlan",
"tips": "Ez az érték nem feltétlenül tükrözi pontosan a Frigate számára elérhető szabad helyet, ha a meghajtón egyéb fájlok is tárolva vannak a Frigate felvételein kívül. A Frigate nem követi a tárhelyhasználatot a saját felvételein kívül."
}
+ },
+ "shm": {
+ "title": "SHM (megosztott memória) kiosztás",
+ "warning": "A jelenlegi SHM mérete ({{total}}MB) túl kicsi. Növeld meg minimum ennyivel: {{min_shm}}MB."
}
},
"enrichments": {
@@ -174,7 +179,8 @@
"detectIsSlow": "{{detect}} lassú ({{speed}} ms)",
"reindexingEmbeddings": "Beágyazások újra indexelése ({{processed}}% kész)",
"ffmpegHighCpuUsage": "{{camera}}-nak/-nek magas FFmpeg CPU felhasználása ({{ffmpegAvg}}%)",
- "detectHighCpuUsage": "A(z) {{camera}} kameránál magas az észlelési CPU-használat ({{detectAvg}}%)"
+ "detectHighCpuUsage": "A(z) {{camera}} kameránál magas az észlelési CPU-használat ({{detectAvg}}%)",
+ "shmTooLow": "A /dev/shm részére foglalt területet ({{total}} MB) legalább {{min}} MB-ra kell növelni."
},
"lastRefreshed": "Utoljára frissítve: "
}
diff --git a/web/public/locales/id/audio.json b/web/public/locales/id/audio.json
index 0d46db1e10..0f759c1930 100644
--- a/web/public/locales/id/audio.json
+++ b/web/public/locales/id/audio.json
@@ -27,5 +27,63 @@
"bicycle": "Sepeda",
"bus": "Bis",
"train": "Kereta",
- "boat": "Kapal"
+ "boat": "Kapal",
+ "sneeze": "Bersin",
+ "run": "Lari",
+ "footsteps": "Langkah kaki",
+ "chewing": "Mengunyah",
+ "biting": "Menggigit",
+ "stomach_rumble": "Perut Keroncongan",
+ "burping": "Sendawa",
+ "hiccup": "Cegukan",
+ "fart": "Kentut",
+ "hands": "Tangan",
+ "heartbeat": "Detak Jantung",
+ "applause": "Tepuk Tangan",
+ "chatter": "Obrolan",
+ "children_playing": "Anak-Anak Bermain",
+ "animal": "Binatang",
+ "pets": "Peliharaan",
+ "dog": "Anjing",
+ "bark": "Gonggongan",
+ "howl": "Melolong",
+ "cat": "Kucing",
+ "meow": "Meong",
+ "livestock": "Hewan Ternak",
+ "horse": "Kuda",
+ "cattle": "Sapi",
+ "pig": "Babi",
+ "goat": "Kambing",
+ "sheep": "Domba",
+ "chicken": "Ayam",
+ "cluck": "Berkokok",
+ "cock_a_doodle_doo": "Kukuruyuk",
+ "turkey": "Kalkun",
+ "duck": "Bebek",
+ "quack": "Kwek",
+ "goose": "Angsa",
+ "wild_animals": "Hewan Liar",
+ "bird": "Burung",
+ "pigeon": "Merpati",
+ "crow": "Gagak",
+ "owl": "Burung Hantu",
+ "flapping_wings": "Kepakan Sayap",
+ "dogs": "Anjing",
+ "insect": "Serangga",
+ "cricket": "Jangkrik",
+ "mosquito": "Nyamuk",
+ "fly": "Lalat",
+ "frog": "Katak",
+ "snake": "Ular",
+ "music": "Musik",
+ "musical_instrument": "Alat Musik",
+ "guitar": "Gitar",
+ "electric_guitar": "Gitar Elektrik",
+ "acoustic_guitar": "Gitar Akustik",
+ "strum": "Genjreng",
+ "banjo": "Banjo",
+ "snoring": "Ngorok",
+ "cough": "Batuk",
+ "clapping": "Tepukan",
+ "camera": "Kamera"
}
diff --git a/web/public/locales/id/common.json b/web/public/locales/id/common.json
index afe3a285c8..34ededad10 100644
--- a/web/public/locales/id/common.json
+++ b/web/public/locales/id/common.json
@@ -9,6 +9,8 @@
"untilForTime": "Hingga {{time}}",
"last7": "7 hari terakhir",
"last14": "14 hari terakhir",
- "last30": "30 hari terakhir"
- }
+ "last30": "30 hari terakhir",
+ "thisWeek": "Minggu Ini"
+ },
+ "readTheDocumentation": "Baca dokumentasi"
}
diff --git a/web/public/locales/id/components/auth.json b/web/public/locales/id/components/auth.json
index 0bc931d99b..742e3111ae 100644
--- a/web/public/locales/id/components/auth.json
+++ b/web/public/locales/id/components/auth.json
@@ -4,12 +4,13 @@
"password": "Kata sandi",
"login": "Masuk",
"errors": {
- "usernameRequired": "Wajib Menggunakan Username",
- "passwordRequired": "Wajib memakai Password",
+ "usernameRequired": "Username diperlukan",
+ "passwordRequired": "Password diperlukan",
"rateLimit": "Melewati batas permintaan. Coba lagi nanti.",
"loginFailed": "Gagal Masuk",
"unknownError": "Eror tidak diketahui. Mohon lihat log.",
"webUnknownError": "Eror tidak diketahui. Mohon lihat log konsol."
- }
+ },
+ "firstTimeLogin": "Mencoba masuk untuk pertama kali? Kredensial sudah dicetak di dalam riwayat Frigate."
}
}
diff --git a/web/public/locales/id/components/camera.json b/web/public/locales/id/components/camera.json
index da128850fb..9da7f9f2dd 100644
--- a/web/public/locales/id/components/camera.json
+++ b/web/public/locales/id/components/camera.json
@@ -15,7 +15,8 @@
"placeholder": "Masukkan nama…",
"errorMessage": {
"mustLeastCharacters": "Nama grup kamera minimal harus 2 karakter.",
- "exists": "Nama grup kamera sudah ada."
+ "exists": "Nama grup kamera sudah ada.",
+ "nameMustNotPeriod": "Nama grup kamera tidak boleh ada titik."
}
}
}
diff --git a/web/public/locales/id/components/dialog.json b/web/public/locales/id/components/dialog.json
index 5d5f20fb81..1a2c284fb7 100644
--- a/web/public/locales/id/components/dialog.json
+++ b/web/public/locales/id/components/dialog.json
@@ -17,7 +17,9 @@
"review": {
"question": {
"label": "Konfirmasi label ini untuk Frigate Plus",
- "ask_a": "Apakah objek ini adalah sebuah{{label}}?"
+ "ask_a": "Apakah objek ini adalah sebuah{{label}}?",
+ "ask_an": "Apakah objek ini {{label}}?",
+ "ask_full": "Apakah ini object {{untranslatedLabel}} ({{translatedLabel}})?"
}
}
}
diff --git a/web/public/locales/id/components/filter.json b/web/public/locales/id/components/filter.json
index 0ea01e61b6..070963badb 100644
--- a/web/public/locales/id/components/filter.json
+++ b/web/public/locales/id/components/filter.json
@@ -15,5 +15,13 @@
"title": "Semua Zona",
"short": "Zona"
}
+ },
+ "classes": {
+ "label": "Kelas",
+ "all": {
+ "title": "Semua Kelas"
+ },
+ "count_one": "{{count}} Kelas",
+ "count_other": "{{count}} Kelas"
}
}
diff --git a/web/public/locales/id/components/player.json b/web/public/locales/id/components/player.json
index 097e50a686..151fd41ceb 100644
--- a/web/public/locales/id/components/player.json
+++ b/web/public/locales/id/components/player.json
@@ -14,7 +14,8 @@
"cameraDisabled": "Kamera dinonaktifkan",
"stats": {
"streamType": {
- "title": "Tipe stream:"
+ "title": "Tipe stream:",
+ "short": "Jenis"
}
}
}
diff --git a/web/public/locales/id/objects.json b/web/public/locales/id/objects.json
index ce7f18a78f..43d98cddeb 100644
--- a/web/public/locales/id/objects.json
+++ b/web/public/locales/id/objects.json
@@ -8,5 +8,14 @@
"train": "Kereta",
"boat": "Kapal",
"traffic_light": "Lampu Lalu Lintas",
- "fire_hydrant": "Hidran Kebakaran"
+ "fire_hydrant": "Hidran Kebakaran",
+ "animal": "Binatang",
+ "dog": "Anjing",
+ "bark": "Gonggongan",
+ "cat": "Kucing",
+ "horse": "Kuda",
+ "goat": "Kambing",
+ "sheep": "Domba",
+ "bird": "Burung",
+ "street_sign": "Rambu Jalan"
}
diff --git a/web/public/locales/id/views/classificationModel.json b/web/public/locales/id/views/classificationModel.json
new file mode 100644
index 0000000000..6ea3a79158
--- /dev/null
+++ b/web/public/locales/id/views/classificationModel.json
@@ -0,0 +1,16 @@
+{
+ "documentTitle": "Klasifikasi Model - Frigate",
+ "details": {
+ "scoreInfo": "Skor tersebut mewakili rata-rata kepercayaan klasifikasi di seluruh deteksi objek ini."
+ },
+ "button": {
+ "deleteClassificationAttempts": "Hapus Gambar Klasifikasi",
+ "renameCategory": "Ubah Nama Kelas",
+ "deleteCategory": "Hapus Kelas",
+ "deleteImages": "Hapus Gambar",
+ "trainModel": "Latih Model",
+ "addClassification": "Tambah Klasifikasi",
+ "deleteModels": "Hapus Model",
+ "editModel": "Ubah Model"
+ }
+}
diff --git a/web/public/locales/id/views/configEditor.json b/web/public/locales/id/views/configEditor.json
index 871c351803..a4d7baeaa1 100644
--- a/web/public/locales/id/views/configEditor.json
+++ b/web/public/locales/id/views/configEditor.json
@@ -12,5 +12,7 @@
"savingError": "Gagal menyimpan konfigurasi"
}
},
- "confirm": "Keluar tanpa menyimpan?"
+ "confirm": "Keluar tanpa menyimpan?",
+ "safeModeDescription": "Frigate sedang dalam mode aman karena kesalahan validasi konfigurasi.",
+ "safeConfigEditor": "Editor Konfigurasi(Mode Aman)"
}
diff --git a/web/public/locales/id/views/events.json b/web/public/locales/id/views/events.json
index f320bae8f8..94ee3d47d6 100644
--- a/web/public/locales/id/views/events.json
+++ b/web/public/locales/id/views/events.json
@@ -12,5 +12,48 @@
"motion": "Data gerakan tidak ditemukan"
},
"timeline.aria": "Pilih timeline",
- "timeline": "Linimasa"
+ "timeline": "Linimasa",
+ "zoomIn": "Perbesar",
+ "zoomOut": "Perkecil",
+ "events": {
+ "label": "Peristiwa-Peristiwa",
+ "aria": "Pilih peristiwa",
+ "noFoundForTimePeriod": "Tidak ada peristiwa dalam periode waktu berikut."
+ },
+ "detail": {
+ "label": "Detil",
+ "noDataFound": "Tidak ada detil data untuk di review",
+ "aria": "Beralih tampilan detil",
+ "trackedObject_one": "objek",
+ "trackedObject_other": "objek-objek",
+ "noObjectDetailData": "Tidak ada data objek detil tersedia.",
+ "settings": "Pengaturan Tampilan Detil",
+ "alwaysExpandActive": {
+ "title": "Selalu lebarkan yang aktif",
+ "desc": "Selalu perluas detil objek item tinjauan aktif jika tersedia."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Titik terlacak",
+ "clickToSeek": "Klik untuk mencari waktu ini"
+ },
+ "documentTitle": "Tinjauan - Frigate",
+ "recordings": {
+ "documentTitle": "Rekaman - Frigate"
+ },
+ "calendarFilter": {
+ "last24Hours": "24 Jam Terakhir"
+ },
+ "markAsReviewed": "Tandai sebagai sudah ditinjau",
+ "markTheseItemsAsReviewed": "Tandai item-item berikut sebagai sudah ditinjau",
+ "newReviewItems": {
+ "button": "Item Batu Untuk Ditinjau",
+ "label": "Lihat item ulasan baru"
+ },
+ "selected_one": "{{count}} terpilih",
+ "selected_other": "{{count}} terpilih",
+ "camera": "Kamera",
+ "detected": "terdeteksi",
+ "suspiciousActivity": "Aktivitas Mencurigakan",
+ "threateningActivity": "Aktivitas yang Mengancam"
}
diff --git a/web/public/locales/id/views/explore.json b/web/public/locales/id/views/explore.json
index de062e132b..979ceaf7b5 100644
--- a/web/public/locales/id/views/explore.json
+++ b/web/public/locales/id/views/explore.json
@@ -9,7 +9,8 @@
"estimatedTime": "Perkiraan waktu tersisa:",
"finishingShortly": "Selesai sesaat lagi",
"step": {
- "thumbnailsEmbedded": "Keluku dilampirkan "
+ "thumbnailsEmbedded": "Keluku dilampirkan ",
+ "descriptionsEmbedded": "Deskripsi terlampir: "
}
}
},
diff --git a/web/public/locales/id/views/exports.json b/web/public/locales/id/views/exports.json
index ebb88a9f7a..043c313de1 100644
--- a/web/public/locales/id/views/exports.json
+++ b/web/public/locales/id/views/exports.json
@@ -1,17 +1,23 @@
{
"documentTitle": "Expor - Frigate",
"search": "Cari",
- "noExports": "Tidak bisa mengekspor",
+ "noExports": "Ekspor tidak ditemukan",
"deleteExport": "Hapus Ekspor",
"deleteExport.desc": "Apakah Anda yakin ingin menghapus {{exportName}}?",
"editExport": {
- "title": "Ganti Nama saat Ekspor",
- "desc": "Masukkan nama baru untuk mengekspor.",
+ "title": "Ganti Nama Ekspor",
+ "desc": "Masukkan nama baru untuk ekspor ini.",
"saveExport": "Simpan Ekspor"
},
"toast": {
"error": {
- "renameExportFailed": "Gagal mengganti nama export: {{errorMessage}}"
+ "renameExportFailed": "Gagal mengganti nama ekspor: {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "shareExport": "Bagikan Ekspor",
+ "downloadVideo": "Unduh Video",
+ "editName": "Ubah nama",
+ "deleteExport": "Hapus ekspor"
}
}
diff --git a/web/public/locales/id/views/faceLibrary.json b/web/public/locales/id/views/faceLibrary.json
index ff1fd4b61a..bde637fa02 100644
--- a/web/public/locales/id/views/faceLibrary.json
+++ b/web/public/locales/id/views/faceLibrary.json
@@ -1,6 +1,6 @@
{
"description": {
- "addFace": "Tambah ke koleksi Pustaka Wajah.",
+ "addFace": "Tambah ke koleksi Pustaka Wajah dengan men-upload gambar pertama anda.",
"placeholder": "Masukkan Nama untuk koleksi ini",
"invalidName": "Nama tidak valid. Nama hanya dapat berisi huruf, angka, spasi, apostrof, garis bawah, dan tanda hubung."
},
@@ -18,13 +18,75 @@
"createFaceLibrary": {
"desc": "Buat koleksi baru",
"title": "Buat Koleksi",
- "nextSteps": "Untuk membangun fondasi yang kuat:
Gunakan tab Latih untuk memilih dan melatih gambar untuk setiap orang yang terdeteksi.
Fokus pada gambar lurus untuk hasil terbaik; hindari melatih gambar yang menangkap wajah pada sudut tertentu.
"
+ "nextSteps": "Untuk membangun fondasi yang kuat:
Gunakan tab Pengenalan Terbaru untuk memilih dan melatih gambar untuk setiap orang yang terdeteksi.
Fokus pada gambar langsung untuk hasil terbaik; hindari melatih gambar yang menangkap wajah pada sudut tertentu.
",
+ "new": "Buat Wajah Baru"
},
"uploadFaceImage": {
"desc": "Unggah gambar untuk dipindai wajah dan sertakan untuk {{pageToggle}}",
"title": "Unggah Gambar Wajah"
},
"steps": {
- "faceName": "Masukkan Nama Wajah"
+ "faceName": "Masukkan Nama Wajah",
+ "uploadFace": "Unggah Gambar Wajah",
+ "nextSteps": "Langkah Berikutnya",
+ "description": {
+ "uploadFace": "Upload sebuah gambar dari {{name}} yang menunjukkan wajah mereka dari sisi depan. Gambar tidak perlu dipotong ke wajah mereka."
+ }
+ },
+ "train": {
+ "title": "Pengenalan Terkini",
+ "aria": "Pilih pengenalan terkini",
+ "empty": "Tidak ada percobaan pengenalan wajah baru-baru ini"
+ },
+ "deleteFaceLibrary": {
+ "title": "Hapus Nama",
+ "desc": "Apakah anda yakin ingin menghapus koleksi {{name}}? Ini akan menghapus semua wajah terkait secara permanen."
+ },
+ "deleteFaceAttempts": {
+ "title": "Hapus Wajah-Wajah",
+ "desc_other": "Apakah anda yakin ingin menghapis {{count}} wajah? Aksi ini tidak dapat diurungkan."
+ },
+ "renameFace": {
+ "title": "Ganti Nama Wajah",
+ "desc": "Masukkan nama baru untuk {{name}}"
+ },
+ "button": {
+ "deleteFaceAttempts": "Hapus Wajah",
+ "addFace": "Tambah Wajah",
+ "renameFace": "Ganti Nama Wajah",
+ "deleteFace": "Hapus Wajah",
+ "uploadImage": "Unggah Gambar",
+ "reprocessFace": "Proses Ulang Wajah"
+ },
+ "imageEntry": {
+ "validation": {
+ "selectImage": "Silahkan pilih sebuah file gambar."
+ },
+ "dropActive": "Letakkan gambar di sini…",
+ "dropInstructions": "Seret dan lepaskan atau tempel gambar di sini, atau klik untuk memilih",
+ "maxSize": "Ukuran maksimum: {{size}}MB"
+ },
+ "nofaces": "Tidak ada wajah tersedia",
+ "trainFaceAs": "Latih Gambar sebagai:",
+ "trainFace": "Latih Wajah",
+ "toast": {
+ "success": {
+ "uploadedImage": "Berhasil men unggah gambar.",
+ "addFaceLibrary": "{{name}} telah berhasil ditambahkan ke Pustaka Wajah!",
+ "deletedFace_other": "Berhasil menghapus {{count}} wajah.",
+ "deletedName_other": "{{count}} wajah telah berhasil dihapus.",
+ "renamedFace": "Berhasil mengganti nama wajah ke {{name}}",
+ "trainedFace": "Berhasil melatih wajah.",
+ "updatedFaceScore": "Berhasil memperbaharui nilai wajah."
+ },
+ "error": {
+ "uploadingImageFailed": "Gagal menunggah gambar: {{errorMessage}}",
+ "addFaceLibraryFailed": "Gagal mengatur nama wajah: {{errorMessage}}",
+ "deleteFaceFailed": "Gagal untuk menghapus: {{errorMessage}}",
+ "deleteNameFailed": "Gagal menghapus nama: {{errorMessage}}",
+ "renameFaceFailed": "Gagal mengganti nama wajah: {{errorMessage}}",
+ "trainFailed": "Gagal untuk melatih: {{errorMessage}}",
+ "updateFaceScoreFailed": "Gagal untuk memperbaharui nilai wajah: {{errorMessage}}"
+ }
}
}
diff --git a/web/public/locales/id/views/live.json b/web/public/locales/id/views/live.json
index 97a733541f..51817a84b0 100644
--- a/web/public/locales/id/views/live.json
+++ b/web/public/locales/id/views/live.json
@@ -14,7 +14,8 @@
"move": {
"clickMove": {
"label": "Klik kotak ini untuk menengahkan kamera",
- "enable": "Aktifkan klik untuk bergerak"
+ "enable": "Aktifkan klik untuk bergerak",
+ "disable": "Non-aktifkan klik untuk bergerak"
}
}
}
diff --git a/web/public/locales/id/views/search.json b/web/public/locales/id/views/search.json
index c4c5989904..fbca84c8d4 100644
--- a/web/public/locales/id/views/search.json
+++ b/web/public/locales/id/views/search.json
@@ -9,5 +9,10 @@
"filterInformation": "Saring Informasi",
"filterActive": "Filter aktif"
},
- "trackedObjectId": "Tracked Object ID"
+ "trackedObjectId": "Tracked Object ID",
+ "filter": {
+ "label": {
+ "cameras": "Kamera"
+ }
+ }
}
diff --git a/web/public/locales/id/views/settings.json b/web/public/locales/id/views/settings.json
index 43c59244e8..45e49fd1ef 100644
--- a/web/public/locales/id/views/settings.json
+++ b/web/public/locales/id/views/settings.json
@@ -8,6 +8,41 @@
"motionTuner": "Penyetel Gerakan - Frigate",
"general": "Frigate - Pengaturan Umum",
"object": "Debug - Frigate",
- "enrichments": "Frigate - Pengaturan Pengayaan"
+ "enrichments": "Frigate - Pengaturan Pengayaan",
+ "cameraManagement": "Pengaturan Kamera - Frigate",
+ "cameraReview": "Pengaturan Ulasan Kamera - Frigate",
+ "frigatePlus": "Pengaturan Frigate+ - Frigate"
+ },
+ "menu": {
+ "cameraManagement": "Manajemen",
+ "notifications": "Notifikasi",
+ "ui": "Antarmuka Pengguna",
+ "enrichments": "Peningkatan",
+ "cameraReview": "Ulasan",
+ "motionTuner": "Pengatur Gerak",
+ "triggers": "Pemicu",
+ "users": "Pengguna",
+ "roles": "Peran",
+ "frigateplus": "Frigate+"
+ },
+ "dialog": {
+ "unsavedChanges": {
+ "title": "Anda memiliki perubahan yang belum disimpan.",
+ "desc": "Apakah Anda ingin menyimpan perubahan Anda sebelum melanjutkan?"
+ }
+ },
+ "cameraSetting": {
+ "camera": "Kamera",
+ "noCamera": "Tidak Ada Kamera"
+ },
+ "general": {
+ "title": "Pengaturan Antarmuka Pengguna",
+ "liveDashboard": {
+ "title": "Dashboard Langsung",
+ "automaticLiveView": {
+ "label": "Tampilan Langsung Otomatis",
+ "desc": "Secara otomatis beralih ke tampilan langsung kamera saat aktivitas terdeteksi. Menonaktifkan opsi ini menyebabkan gambar statis kamera di dasbor langsung hanya diperbarui sekali per menit."
+ }
+ }
}
}
diff --git a/web/public/locales/id/views/system.json b/web/public/locales/id/views/system.json
index 183e7ca34b..9a70ff6ca2 100644
--- a/web/public/locales/id/views/system.json
+++ b/web/public/locales/id/views/system.json
@@ -11,5 +11,10 @@
}
},
"title": "Sistem",
- "metrics": "Metrik sistem"
+ "metrics": "Metrik sistem",
+ "logs": {
+ "download": {
+ "label": "Unduh Log"
+ }
+ }
}
diff --git a/web/public/locales/it/audio.json b/web/public/locales/it/audio.json
index eb9b98a5b8..17ca12ce1e 100644
--- a/web/public/locales/it/audio.json
+++ b/web/public/locales/it/audio.json
@@ -49,7 +49,7 @@
"cat": "Gatto",
"chicken": "Pollo",
"acoustic_guitar": "Chitarra acustica",
- "speech": "Discorso",
+ "speech": "Parlato",
"babbling": "Balbettio",
"motorcycle": "Motociclo",
"yell": "Urlo",
@@ -399,7 +399,7 @@
"mechanical_fan": "Ventilatore meccanico",
"air_conditioning": "Aria condizionata",
"cash_register": "Registratore di cassa",
- "single-lens_reflex_camera": "Fotocamera reflex a obiettivo singolo",
+ "single-lens_reflex_camera": "Telecamera reflex a obiettivo singolo",
"tools": "Utensili",
"jackhammer": "Martello pneumatico",
"sawing": "Segare",
@@ -425,5 +425,79 @@
"white_noise": "Rumore bianco",
"pink_noise": "Rumore rosa",
"field_recording": "Registrazione sul campo",
- "scream": "Grido"
+ "scream": "Grido",
+ "vibration": "Vibrazione",
+ "sodeling": "Zollatura",
+ "chird": "Accordo",
+ "change_ringing": "Cambia suoneria",
+ "shofar": "Shofar",
+ "liquid": "Liquido",
+ "splash": "Schizzo",
+ "slosh": "Sciabordio",
+ "squish": "Schiacciare",
+ "drip": "Gocciolare",
+ "pour": "Versare",
+ "trickle": "Gocciolare",
+ "gush": "Sgorgare",
+ "fill": "Riempire",
+ "spray": "Spruzzare",
+ "pump": "Pompare",
+ "stir": "Mescolare",
+ "boiling": "Ebollizione",
+ "sonar": "Sonar",
+ "arrow": "Freccia",
+ "whoosh": "Sibilo",
+ "thump": "Tonfo",
+ "thunk": "Tonfo",
+ "electronic_tuner": "Accordatore elettronico",
+ "effects_unit": "Unità degli effetti",
+ "chorus_effect": "Effetto coro",
+ "basketball_bounce": "Rimbalzo di basket",
+ "bang": "Botto",
+ "slap": "Schiaffo",
+ "whack": "Colpo",
+ "smash": "Distruggere",
+ "breaking": "Rottura",
+ "bouncing": "Rimbalzo",
+ "whip": "Frusta",
+ "flap": "Patta",
+ "scratch": "Graffio",
+ "scrape": "Graffio",
+ "rub": "Strofinio",
+ "roll": "Rotolio",
+ "crushing": "Schiacciamento",
+ "crumpling": "Accartocciamento",
+ "tearing": "Strappo",
+ "beep": "Segnale acustico",
+ "ping": "Segnale",
+ "ding": "Bip",
+ "clang": "Fragore",
+ "squeal": "Strillo",
+ "creak": "Scricchiolio",
+ "rustle": "Fruscio",
+ "whir": "Ronzio",
+ "clatter": "Rumore",
+ "sizzle": "Sfrigolio",
+ "clicking": "Cliccando",
+ "clickety_clack": "Clic-clac",
+ "rumble": "Rombo",
+ "plop": "Tonfo",
+ "hum": "Ronzio",
+ "zing": "Brio",
+ "boing": "Balzo",
+ "crunch": "Scricchiolio",
+ "sine_wave": "Onda sinusoidale",
+ "harmonic": "Armonica",
+ "chirp_tone": "Tono di cinguettio",
+ "pulse": "Impulso",
+ "inside": "Dentro",
+ "outside": "Fuori",
+ "reverberation": "Riverbero",
+ "echo": "Eco",
+ "noise": "Rumore",
+ "mains_hum": "Ronzio di rete",
+ "distortion": "Distorsione",
+ "sidetone": "Effetto laterale",
+ "cacophony": "Cacofonia",
+ "throbbing": "Palpitante"
}
diff --git a/web/public/locales/it/common.json b/web/public/locales/it/common.json
index 9e0cb2e77b..7fc7fc2bfa 100644
--- a/web/public/locales/it/common.json
+++ b/web/public/locales/it/common.json
@@ -87,7 +87,10 @@
"formattedTimestampMonthDayYear": {
"12hour": "d MMM, yyyy",
"24hour": "d MMM, yyyy"
- }
+ },
+ "inProgress": "In corso",
+ "invalidStartTime": "Ora di inizio non valida",
+ "invalidEndTime": "Ora di fine non valida"
},
"button": {
"cancel": "Annulla",
@@ -124,7 +127,8 @@
"back": "Indietro",
"pictureInPicture": "Immagine nell'immagine",
"twoWayTalk": "Comunicazione bidirezionale",
- "cameraAudio": "Audio della telecamera"
+ "cameraAudio": "Audio della telecamera",
+ "continue": "Continua"
},
"unit": {
"speed": {
@@ -134,10 +138,23 @@
"length": {
"feet": "piedi",
"meters": "metri"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/ora",
+ "mbph": "MB/ora",
+ "gbph": "GB/ora"
}
},
"label": {
- "back": "Vai indietro"
+ "back": "Vai indietro",
+ "hide": "Nascondi {{item}}",
+ "show": "Mostra {{item}}",
+ "ID": "ID",
+ "none": "Nessuna",
+ "all": "Tutte"
},
"menu": {
"configuration": "Configurazione",
@@ -181,7 +198,15 @@
"it": "Italiano (Italiano)",
"yue": "粵語 (Cantonese)",
"th": "ไทย (Tailandese)",
- "ca": "Català (Catalano)"
+ "ca": "Català (Catalano)",
+ "ptBR": "Português brasileiro (Portoghese brasiliano)",
+ "sr": "Српски (Serbo)",
+ "sl": "Slovenščina (Sloveno)",
+ "lt": "Lietuvių (Lituano)",
+ "bg": "Български (Bulgaro)",
+ "gl": "Galego (Galiziano)",
+ "id": "Bahasa Indonesia (Indonesiano)",
+ "ur": "اردو (Urdu)"
},
"darkMode": {
"label": "Modalità scura",
@@ -231,7 +256,8 @@
"setPassword": "Imposta password"
},
"withSystem": "Sistema",
- "faceLibrary": "Raccolta volti"
+ "faceLibrary": "Raccolta volti",
+ "classification": "Classificazione"
},
"pagination": {
"next": {
@@ -249,7 +275,7 @@
"title": "Ruolo",
"admin": "Amministratore",
"viewer": "Spettatore",
- "desc": "Gli Amministratori hanno accesso completo a tutte le funzionalità dell'interfaccia di Frigate. Gli Spettatori sono limitati alla sola visualizzazione delle telecamere, rivedono gli oggetti e le registrazioni storiche nell'interfaccia utente."
+ "desc": "Gli amministratori hanno accesso completo a tutte le funzionalità dell'interfaccia utente di Frigate. Gli spettatori possono visualizzare solo le telecamere, gli elementi di revisione e i filmati storici nell'interfaccia utente."
},
"accessDenied": {
"desc": "Non hai i permessi per visualizzare questa pagina.",
@@ -271,5 +297,18 @@
"title": "Salva"
}
},
- "selectItem": "Seleziona {{item}}"
+ "selectItem": "Seleziona {{item}}",
+ "readTheDocumentation": "Leggi la documentazione",
+ "information": {
+ "pixels": "{{area}}px"
+ },
+ "list": {
+ "two": "{{0}} e {{1}}",
+ "many": "{{items}}, e {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "Opzionale",
+ "internalID": "L'ID interno che Frigate utilizza nella configurazione e nel database"
+ }
}
diff --git a/web/public/locales/it/components/auth.json b/web/public/locales/it/components/auth.json
index bb6e2200d0..f743877662 100644
--- a/web/public/locales/it/components/auth.json
+++ b/web/public/locales/it/components/auth.json
@@ -10,6 +10,7 @@
"unknownError": "Errore sconosciuto. Controlla i registri.",
"webUnknownError": "Errore sconosciuto. Controlla i registri della console.",
"loginFailed": "Accesso non riuscito"
- }
+ },
+ "firstTimeLogin": "Stai cercando di accedere per la prima volta? Le credenziali sono scritte nei registri di Frigate."
}
}
diff --git a/web/public/locales/it/components/camera.json b/web/public/locales/it/components/camera.json
index 830cfd0e8d..a681de1a5b 100644
--- a/web/public/locales/it/components/camera.json
+++ b/web/public/locales/it/components/camera.json
@@ -29,7 +29,7 @@
"label": "Metodo di trasmissione",
"method": {
"smartStreaming": {
- "label": "Trasmissione intelligente (consigliato)",
+ "label": "Trasmissione intelligente (consigliata)",
"desc": "La trasmissione intelligente aggiorna l'immagine della telecamera una volta al minuto quando non si verifica alcuna attività rilevabile, per risparmiare larghezza di banda e risorse. Quando viene rilevata un'attività, l'immagine passa automaticamente alla trasmissione dal vivo."
},
"continuousStreaming": {
@@ -60,7 +60,8 @@
"desc": "Modifica le opzioni di trasmissione dal vivo per la schermata di questo gruppo di telecamere. Queste impostazioni sono specifiche del dispositivo/browser.",
"stream": "Flusso",
"placeholder": "Scegli un flusso"
- }
+ },
+ "birdseye": "Birdseye"
},
"cameras": {
"desc": "Seleziona le telecamere per questo gruppo.",
diff --git a/web/public/locales/it/components/dialog.json b/web/public/locales/it/components/dialog.json
index 683d4ce2f8..5e88d1f7d8 100644
--- a/web/public/locales/it/components/dialog.json
+++ b/web/public/locales/it/components/dialog.json
@@ -61,12 +61,13 @@
"export": "Esporta",
"selectOrExport": "Seleziona o esporta",
"toast": {
- "success": "Esportazione avviata correttamente. Visualizza il file nella cartella /exports.",
+ "success": "Esportazione avviata correttamente. Visualizza il file nella pagina delle esportazioni.",
"error": {
"failed": "Impossibile avviare l'esportazione: {{error}}",
"endTimeMustAfterStartTime": "L'ora di fine deve essere successiva all'ora di inizio",
"noVaildTimeSelected": "Nessun intervallo di tempo valido selezionato"
- }
+ },
+ "view": "Visualizzazione"
},
"fromTimeline": {
"saveExport": "Salva esportazione",
@@ -110,7 +111,8 @@
"button": {
"export": "Esporta",
"markAsReviewed": "Segna come visto",
- "deleteNow": "Elimina ora"
+ "deleteNow": "Elimina ora",
+ "markAsUnreviewed": "Segna come non visto"
},
"confirmDelete": {
"desc": {
@@ -122,5 +124,13 @@
"error": "Impossibile eliminare: {{error}}"
}
}
+ },
+ "imagePicker": {
+ "selectImage": "Seleziona la miniatura di un oggetto tracciato",
+ "search": {
+ "placeholder": "Cerca per etichetta o sottoetichetta..."
+ },
+ "noImages": "Nessuna miniatura trovata per questa telecamera",
+ "unknownLabel": "Immagine di attivazione salvata"
}
}
diff --git a/web/public/locales/it/components/filter.json b/web/public/locales/it/components/filter.json
index dd6ebc1b71..ac5eaebada 100644
--- a/web/public/locales/it/components/filter.json
+++ b/web/public/locales/it/components/filter.json
@@ -63,7 +63,7 @@
"label": "Cerca la fonte",
"desc": "Scegli se cercare nelle miniature o nelle descrizioni degli oggetti tracciati.",
"options": {
- "thumbnailImage": "Immagine anteprima",
+ "thumbnailImage": "Immagine in miniatura",
"description": "Descrizione"
}
}
@@ -98,7 +98,9 @@
"loadFailed": "Impossibile caricare le targhe riconosciute.",
"loading": "Caricamento targhe riconosciute…",
"placeholder": "Digita per cercare le targhe…",
- "noLicensePlatesFound": "Nessuna targa trovata."
+ "noLicensePlatesFound": "Nessuna targa trovata.",
+ "selectAll": "Seleziona tutto",
+ "clearAll": "Cancella tutto"
},
"timeRange": "Intervallo di tempo",
"subLabels": {
@@ -122,5 +124,17 @@
},
"zoneMask": {
"filterBy": "Filtra per maschera di zona"
+ },
+ "classes": {
+ "label": "Classi",
+ "all": {
+ "title": "Tutte le classi"
+ },
+ "count_one": "{{count}} Classe",
+ "count_other": "{{count}} Classi"
+ },
+ "attributes": {
+ "label": "Attributi di classificazione",
+ "all": "Tutti gli attributi"
}
}
diff --git a/web/public/locales/it/views/classificationModel.json b/web/public/locales/it/views/classificationModel.json
new file mode 100644
index 0000000000..a35a391723
--- /dev/null
+++ b/web/public/locales/it/views/classificationModel.json
@@ -0,0 +1,193 @@
+{
+ "documentTitle": "Modelli di classificazione",
+ "button": {
+ "deleteClassificationAttempts": "Elimina immagini di classificazione",
+ "renameCategory": "Rinomina classe",
+ "deleteCategory": "Elimina classe",
+ "deleteImages": "Elimina immagini",
+ "trainModel": "Modello di addestramento",
+ "addClassification": "Aggiungi classificazione",
+ "deleteModels": "Elimina modelli",
+ "editModel": "Modifica modello"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Classe eliminata",
+ "deletedImage": "Immagini eliminate",
+ "categorizedImage": "Immagine classificata con successo",
+ "trainedModel": "Modello addestrato con successo.",
+ "trainingModel": "Avviato con successo l'addestramento del modello.",
+ "deletedModel_one": "Eliminato con successo {{count}} modello",
+ "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}}"
+ },
+ "error": {
+ "deleteImageFailed": "Impossibile eliminare: {{errorMessage}}",
+ "deleteCategoryFailed": "Impossibile eliminare la classe: {{errorMessage}}",
+ "categorizeFailed": "Impossibile categorizzare l'immagine: {{errorMessage}}",
+ "trainingFailed": "Addestramento del modello fallito. Controlla i registri di Frigate per i dettagli.",
+ "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}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Elimina classe",
+ "desc": "Vuoi davvero eliminare la classe {{name}}? Questa operazione eliminerà definitivamente tutte le immagini associate e richiederà un nuovo addestramento del modello.",
+ "minClassesTitle": "Impossibile eliminare la classe",
+ "minClassesDesc": "Un modello di classificazione deve avere almeno 2 classi. Aggiungi un'altra classe prima di eliminare questa."
+ },
+ "deleteDatasetImages": {
+ "title": "Elimina immagini della base dati",
+ "desc_one": "Vuoi davvero eliminare {{count}} immagine da {{dataset}}? Questa azione non può essere annullata e richiederà un nuovo addestramento del modello.",
+ "desc_many": "Vuoi davvero eliminare {{count}} immagini da {{dataset}}? Questa azione non può essere annullata e richiederà un nuovo addestramento del modello.",
+ "desc_other": "Vuoi davvero eliminare {{count}} immagini da {{dataset}}? Questa azione non può essere annullata e richiederà un nuovo addestramento del modello."
+ },
+ "deleteTrainImages": {
+ "title": "Elimina le immagini di addestramento",
+ "desc_one": "Vuoi davvero eliminare {{count}} immagine? Questa azione non può essere annullata.",
+ "desc_many": "Vuoi davvero eliminare {{count}} immagini? Questa azione non può essere annullata.",
+ "desc_other": "Vuoi davvero eliminare {{count}} immagini? Questa azione non può essere annullata."
+ },
+ "renameCategory": {
+ "title": "Rinomina classe",
+ "desc": "Inserisci un nuovo nome per {{name}}. Sarà necessario riaddestrare il modello affinché la modifica del nome abbia effetto."
+ },
+ "description": {
+ "invalidName": "Nome non valido. I nomi possono contenere solo lettere, numeri, spazi, apostrofi, caratteri di sottolineatura e trattini."
+ },
+ "train": {
+ "title": "Classificazioni recenti",
+ "titleShort": "Recente",
+ "aria": "Seleziona classificazioni recenti"
+ },
+ "categories": "Classi",
+ "createCategory": {
+ "new": "Crea nuova classe"
+ },
+ "categorizeImageAs": "Classifica immagine come:",
+ "categorizeImage": "Classifica immagine",
+ "noModels": {
+ "object": {
+ "title": "Nessun modello di classificazione degli oggetti",
+ "description": "Crea un modello personalizzato per classificare gli oggetti rilevati.",
+ "buttonText": "Crea modello oggetto"
+ },
+ "state": {
+ "title": "Nessun modello di classificazione dello stato",
+ "description": "Crea un modello personalizzato per monitorare e classificare i cambiamenti di stato in aree specifiche della telecamera.",
+ "buttonText": "Crea modello di stato"
+ }
+ },
+ "wizard": {
+ "title": "Crea nuova classificazione",
+ "steps": {
+ "nameAndDefine": "Nome e definizione",
+ "stateArea": "Area di stato",
+ "chooseExamples": "Scegli esempi"
+ },
+ "step1": {
+ "description": "I modelli di stato monitorano le aree fisse delle telecamere per rilevare eventuali cambiamenti (ad esempio, porta aperta/chiusa). I modelli di oggetti aggiungono classificazioni agli oggetti rilevati (ad esempio, animali noti, addetti alle consegne, ecc.).",
+ "name": "Nome",
+ "namePlaceholder": "Inserisci il nome del modello...",
+ "type": "Tipo",
+ "typeState": "Stato",
+ "typeObject": "Oggetto",
+ "objectLabel": "Etichetta oggetto",
+ "objectLabelPlaceholder": "Seleziona il tipo di oggetto...",
+ "classificationType": "Tipo di classificazione",
+ "classificationTypeTip": "Scopri i tipi di classificazione",
+ "classificationTypeDesc": "Le sottoetichette aggiungono testo aggiuntivo all'etichetta dell'oggetto (ad esempio, \"Persona: UPS\"). Gli attributi sono metadati ricercabili, archiviati separatamente nei metadati dell'oggetto.",
+ "classificationSubLabel": "Etichetta secondaria",
+ "classificationAttribute": "Attributo",
+ "classes": "Classi",
+ "classesTip": "Scopri di più sulle classi",
+ "classesStateDesc": "Definisci i diversi stati in cui può trovarsi l'area della tua telecamera. Ad esempio: \"aperto\" e \"chiuso\" per una porta del garage.",
+ "classesObjectDesc": "Definisci le diverse categorie in cui classificare gli oggetti rilevati. Ad esempio: \"corriere\", \"residente\", \"straniero\" per la classificazione delle persone.",
+ "classPlaceholder": "Inserisci il nome della classe...",
+ "errors": {
+ "nameRequired": "Il nome del modello è obbligatorio",
+ "nameLength": "Il nome del modello deve contenere al massimo 64 caratteri",
+ "nameOnlyNumbers": "Il nome del modello non può contenere solo numeri",
+ "classRequired": "È richiesta almeno 1 classe",
+ "classesUnique": "I nomi delle classi devono essere univoci",
+ "stateRequiresTwoClasses": "I modelli di stato richiedono almeno 2 classi",
+ "objectLabelRequired": "Seleziona un'etichetta per l'oggetto",
+ "objectTypeRequired": "Seleziona un tipo di classificazione",
+ "noneNotAllowed": "La classe 'nessuno' non è consentita"
+ },
+ "states": "Stati"
+ },
+ "step2": {
+ "description": "Seleziona le telecamere e definisci l'area da monitorare per ciascuna telecamera. Il modello classificherà lo stato di queste aree.",
+ "cameras": "Telecamere",
+ "selectCamera": "Seleziona telecamera",
+ "noCameras": "Fai clic su + per aggiungere telecamere",
+ "selectCameraPrompt": "Selezionare una telecamera dall'elenco per definire la sua area di monitoraggio"
+ },
+ "step3": {
+ "selectImagesPrompt": "Seleziona tutte le immagini con: {{className}}",
+ "selectImagesDescription": "Clicca sulle immagini per selezionarle. Clicca su Continua quando hai finito con questa classe.",
+ "generating": {
+ "title": "Generazione di immagini campione",
+ "description": "Frigate sta estraendo immagini rappresentative dalle registrazioni. L'operazione potrebbe richiedere qualche istante..."
+ },
+ "training": {
+ "title": "Modello di addestramento",
+ "description": "Il tuo modello è in fase di addestramento in sottofondo. Chiudi questa finestra di dialogo e il tuo modello inizierà a funzionare non appena l'addestramento sarà completato."
+ },
+ "retryGenerate": "Riprova generazione",
+ "noImages": "Nessuna immagine campione generata",
+ "classifying": "Classificazione e addestramento...",
+ "trainingStarted": "Addestramento iniziato con successo",
+ "errors": {
+ "noCameras": "Nessuna telecamera configurata",
+ "noObjectLabel": "Nessuna etichetta oggetto selezionata",
+ "generateFailed": "Impossibile generare esempi: {{error}}",
+ "generationFailed": "Generazione fallita. Per favore riprova.",
+ "classifyFailed": "Impossibile classificare le immagini: {{error}}"
+ },
+ "generateSuccess": "Immagini campione generate correttamente",
+ "allImagesRequired_one": "Classifica tutte le immagini. Rimane {{count}} immagine.",
+ "allImagesRequired_many": "Classifica tutte le immagini. Rimangono {{count}} immagini.",
+ "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."
+ }
+ }
+ },
+ "deleteModel": {
+ "title": "Elimina modello di classificazione",
+ "single": "Vuoi davvero eliminare {{name}}? Questa operazione eliminerà definitivamente tutti i dati associati, comprese le immagini e i dati di allenamento. Questa azione non può essere annullata.",
+ "desc_one": "Vuoi davvero eliminare {{count}} modello? Questa operazione eliminerà definitivamente tutti i dati associati, comprese le immagini e i dati di addestramento. Questa azione non può essere annullata.",
+ "desc_many": "Vuoi davvero eliminare {{count}} modelli? Questa operazione eliminerà definitivamente tutti i dati associati, comprese le immagini e i dati di addestramento. Questa azione non può essere annullata.",
+ "desc_other": "Vuoi davvero eliminare {{count}} modelli? Questa operazione eliminerà definitivamente tutti i dati associati, comprese le immagini e i dati di addestramento. Questa azione non può essere annullata."
+ },
+ "menu": {
+ "objects": "Oggetti",
+ "states": "Stati"
+ },
+ "details": {
+ "scoreInfo": "Il punteggio rappresenta la confidenza media della classificazione in tutti i rilevamenti di questo oggetto.",
+ "none": "Nessuno",
+ "unknown": "Sconosciuto"
+ },
+ "edit": {
+ "title": "Modifica modello di classificazione",
+ "descriptionState": "Modifica le classi per questo modello di classificazione dello stato. Le modifiche richiederanno un nuovo addestramento del modello.",
+ "descriptionObject": "Modifica il tipo di oggetto e il tipo di classificazione per questo modello di classificazione degli oggetti.",
+ "stateClassesInfo": "Nota: la modifica delle classi di stato richiede il riaddestramento del modello con le classi aggiornate."
+ },
+ "tooltip": {
+ "trainingInProgress": "Il modello è attualmente in addestramento",
+ "modelNotReady": "Il modello non è pronto per l'addestramento",
+ "noNewImages": "Nessuna nuova immagine da addestrare. Classifica prima più immagini nel database.",
+ "noChanges": "Nessuna modifica al database dall'ultimo addestramento."
+ },
+ "none": "Nessuno"
+}
diff --git a/web/public/locales/it/views/configEditor.json b/web/public/locales/it/views/configEditor.json
index 4ce1a7378b..f53aaed582 100644
--- a/web/public/locales/it/views/configEditor.json
+++ b/web/public/locales/it/views/configEditor.json
@@ -12,5 +12,7 @@
"savingError": "Errore durante il salvataggio della configurazione"
}
},
- "confirm": "Vuoi uscire senza salvare?"
+ "confirm": "Vuoi uscire senza salvare?",
+ "safeConfigEditor": "Editor di configurazione (modalità provvisoria)",
+ "safeModeDescription": "Frigate è in modalità provvisoria a causa di un errore di convalida della configurazione."
}
diff --git a/web/public/locales/it/views/events.json b/web/public/locales/it/views/events.json
index e07c7bc6af..623fb1deec 100644
--- a/web/public/locales/it/views/events.json
+++ b/web/public/locales/it/views/events.json
@@ -1,9 +1,9 @@
{
"alerts": "Avvisi",
- "detections": "Rilevamento",
+ "detections": "Rilevamenti",
"motion": {
- "label": "Movimento",
- "only": "Solo movimento"
+ "label": "Movimenti",
+ "only": "Solo movimenti"
},
"empty": {
"alert": "Non ci sono avvisi da rivedere",
@@ -35,5 +35,30 @@
"selected": "{{count}} selezionati",
"selected_one": "{{count}} selezionati",
"selected_other": "{{count}} selezionati",
- "detected": "rilevato"
+ "detected": "rilevato",
+ "suspiciousActivity": "Attività sospetta",
+ "threateningActivity": "Attività minacciosa",
+ "detail": {
+ "noDataFound": "Nessun dato dettagliato da rivedere",
+ "aria": "Attiva/disattiva la visualizzazione dettagliata",
+ "trackedObject_one": "{{count}} oggetto",
+ "trackedObject_other": "{{count}} oggetti",
+ "noObjectDetailData": "Non sono disponibili dati dettagliati sull'oggetto.",
+ "label": "Dettaglio",
+ "settings": "Impostazioni di visualizzazione dettagliata",
+ "alwaysExpandActive": {
+ "title": "Espandi sempre attivo",
+ "desc": "Espandere sempre i dettagli dell'oggetto dell'elemento di revisione attivo quando disponibili."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Punto tracciato",
+ "clickToSeek": "Premi per cercare in questo momento"
+ },
+ "zoomIn": "Ingrandisci",
+ "zoomOut": "Rimpicciolisci",
+ "normalActivity": "Normale",
+ "needsReview": "Necessita revisione",
+ "securityConcern": "Rischio per la sicurezza",
+ "select_all": "Tutti"
}
diff --git a/web/public/locales/it/views/explore.json b/web/public/locales/it/views/explore.json
index 547c6ad0ab..2ec1f4614e 100644
--- a/web/public/locales/it/views/explore.json
+++ b/web/public/locales/it/views/explore.json
@@ -52,12 +52,16 @@
"success": {
"regenerate": "È stata richiesta una nuova descrizione a {{provider}}. A seconda della velocità del tuo provider, la rigenerazione della nuova descrizione potrebbe richiedere del tempo.",
"updatedSublabel": "Sottoetichetta aggiornata correttamente.",
- "updatedLPR": "Targa aggiornata con successo."
+ "updatedLPR": "Targa aggiornata con successo.",
+ "audioTranscription": "Trascrizione audio richiesta con successo. A seconda della velocità del server Frigate, la trascrizione potrebbe richiedere del tempo.",
+ "updatedAttributes": "Attributi aggiornati correttamente."
},
"error": {
"regenerate": "Impossibile chiamare {{provider}} per una nuova descrizione: {{errorMessage}}",
"updatedSublabelFailed": "Impossibile aggiornare la sottoetichetta: {{errorMessage}}",
- "updatedLPRFailed": "Impossibile aggiornare la targa: {{errorMessage}}"
+ "updatedLPRFailed": "Impossibile aggiornare la targa: {{errorMessage}}",
+ "audioTranscription": "Impossibile richiedere la trascrizione audio: {{errorMessage}}",
+ "updatedAttributesFailed": "Impossibile aggiornare gli attributi: {{errorMessage}}"
}
}
},
@@ -98,7 +102,15 @@
"tips": {
"descriptionSaved": "Descrizione salvata correttamente",
"saveDescriptionFailed": "Impossibile aggiornare la descrizione: {{errorMessage}}"
- }
+ },
+ "score": {
+ "label": "Punteggio"
+ },
+ "editAttributes": {
+ "title": "Modifica attributi",
+ "desc": "Seleziona gli attributi di classificazione per questa {{label}}"
+ },
+ "attributes": "Attributi di classificazione"
},
"objectLifecycle": {
"annotationSettings": {
@@ -153,7 +165,9 @@
"snapshot": "istantanea",
"object_lifecycle": "ciclo di vita dell'oggetto",
"details": "dettagli",
- "video": "video"
+ "video": "video",
+ "thumbnail": "miniatura",
+ "tracking_details": "dettagli di tracciamento"
},
"itemMenu": {
"downloadSnapshot": {
@@ -182,11 +196,33 @@
"submitToPlus": {
"label": "Invia a Frigate+",
"aria": "Invia a Frigate Plus"
+ },
+ "addTrigger": {
+ "label": "Aggiungi innesco",
+ "aria": "Aggiungi un innesco per questo oggetto tracciato"
+ },
+ "audioTranscription": {
+ "label": "Trascrivere",
+ "aria": "Richiedi la trascrizione audio"
+ },
+ "showObjectDetails": {
+ "label": "Mostra il percorso dell'oggetto"
+ },
+ "hideObjectDetails": {
+ "label": "Nascondi il percorso dell'oggetto"
+ },
+ "viewTrackingDetails": {
+ "label": "Visualizza i dettagli di tracciamento",
+ "aria": "Mostra i dettagli di tracciamento"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Scarica istantanea pulita",
+ "aria": "Scarica istantanea pulita"
}
},
"dialog": {
"confirmDelete": {
- "desc": "L'eliminazione di questo oggetto tracciato rimuove l'istantanea, eventuali incorporamenti salvati e tutte le voci associate al ciclo di vita dell'oggetto. Il filmato registrato di questo oggetto tracciato nella vista Storico NON verrà eliminato.
Vuoi davvero procedere?",
+ "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.
Vuoi davvero procedere?",
"title": "Conferma eliminazione"
}
},
@@ -198,12 +234,69 @@
"success": "Oggetto tracciato eliminato correttamente."
}
},
- "tooltip": "Corrispondenza {{type}} al {{confidence}}%"
+ "tooltip": "Corrispondenza {{type}} al {{confidence}}%",
+ "previousTrackedObject": "Oggetto tracciato in precedenza",
+ "nextTrackedObject": "Prossimo oggetto tracciato"
},
"trackedObjectsCount_one": "{{count}} oggetto tracciato ",
"trackedObjectsCount_many": "{{count}} oggetti tracciati ",
"trackedObjectsCount_other": "{{count}} oggetti tracciati ",
"fetchingTrackedObjectsFailed": "Errore durante il recupero degli oggetti tracciati: {{errorMessage}}",
"noTrackedObjects": "Nessun oggetto tracciato trovato",
- "exploreMore": "Esplora altri oggetti {{label}}"
+ "exploreMore": "Esplora altri oggetti {{label}}",
+ "aiAnalysis": {
+ "title": "Analisi IA"
+ },
+ "concerns": {
+ "label": "Preoccupazioni"
+ },
+ "trackingDetails": {
+ "title": "Dettagli di tracciamento",
+ "noImageFound": "Nessuna immagine trovata per questo orario.",
+ "createObjectMask": "Crea maschera oggetto",
+ "adjustAnnotationSettings": "Regola le impostazioni di annotazione",
+ "scrollViewTips": "Clicca per visualizzare i momenti più significativi del ciclo di vita di questo oggetto.",
+ "autoTrackingTips": "Le posizioni dei riquadri di delimitazione saranno imprecise per le telecamere con tracciamento automatico.",
+ "count": "{{first}} di {{second}}",
+ "trackedPoint": "Punto tracciato",
+ "lifecycleItemDesc": {
+ "visible": "{{label}} rilevato",
+ "entered_zone": "{{label}} è entrato in {{zones}}",
+ "active": "{{label}} è diventato attivo",
+ "stationary": "{{label}} è diventato stazionario",
+ "attribute": {
+ "faceOrLicense_plate": "{{attribute}} rilevato per {{label}}",
+ "other": "{{label}} riconosciuto come {{attribute}}"
+ },
+ "gone": "{{label}} lasciato",
+ "heard": "{{label}} sentito",
+ "external": "{{label}} rilevato",
+ "header": {
+ "zones": "Zone",
+ "ratio": "Rapporto",
+ "area": "Area",
+ "score": "Punteggio"
+ }
+ },
+ "annotationSettings": {
+ "title": "Impostazioni di annotazione",
+ "showAllZones": {
+ "title": "Mostra tutte le zone",
+ "desc": "Mostra sempre le zone nei fotogrammi in cui gli oggetti sono entrati in una zona."
+ },
+ "offset": {
+ "label": "Differenza annotazione",
+ "desc": "Questi dati provengono dal flusso di rilevamento della telecamera, ma vengono sovrapposti alle immagini del flusso di registrazione. È improbabile che i due flussi siano perfettamente sincronizzati. Di conseguenza, il riquadro di delimitazione e il filmato non saranno perfettamente allineati. È possibile utilizzare questa impostazione per spostare le annotazioni in avanti o indietro nel tempo per allinearle meglio al filmato registrato.",
+ "millisecondsToOffset": "Millisecondi per compensare il rilevamento delle annotazioni. Predefinito: 0",
+ "tips": "Ridurre il valore se la riproduzione video è in anticipo rispetto ai riquadri e ai punti del percorso, e aumentarlo se la riproduzione video è in ritardo rispetto ad essi. Questo valore può essere negativo.",
+ "toast": {
+ "success": "La differenza dell'annotazione per {{camera}} è stato salvato nel file di configurazione."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Diapositiva precedente",
+ "next": "Diapositiva successiva"
+ }
+ }
}
diff --git a/web/public/locales/it/views/exports.json b/web/public/locales/it/views/exports.json
index 0c42816ef2..186647521a 100644
--- a/web/public/locales/it/views/exports.json
+++ b/web/public/locales/it/views/exports.json
@@ -13,5 +13,11 @@
"error": {
"renameExportFailed": "Impossibile rinominare l'esportazione: {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "shareExport": "Condividi esportazione",
+ "downloadVideo": "Scarica video",
+ "editName": "Modifica nome",
+ "deleteExport": "Elimina esportazione"
}
}
diff --git a/web/public/locales/it/views/faceLibrary.json b/web/public/locales/it/views/faceLibrary.json
index 54fe6adb0a..b40e7fbcf0 100644
--- a/web/public/locales/it/views/faceLibrary.json
+++ b/web/public/locales/it/views/faceLibrary.json
@@ -1,7 +1,7 @@
{
"selectItem": "Seleziona {{item}}",
"description": {
- "addFace": "Procedura per aggiungere una nuova raccolta alla Libreria dei Volti.",
+ "addFace": "Aggiungi una nuova raccolta alla Libreria dei Volti caricando la tua prima immagine.",
"placeholder": "Inserisci un nome per questa raccolta",
"invalidName": "Nome non valido. I nomi possono contenere solo lettere, numeri, spazi, apostrofi, caratteri di sottolineatura e trattini."
},
@@ -16,9 +16,10 @@
"unknown": "Sconosciuto"
},
"train": {
- "title": "Addestra",
- "aria": "Seleziona addestramento",
- "empty": "Non ci sono recenti tentativi di riconoscimento facciale"
+ "title": "Riconoscimenti recenti",
+ "aria": "Seleziona i riconoscimenti recenti",
+ "empty": "Non ci sono recenti tentativi di riconoscimento facciale",
+ "titleShort": "Recente"
},
"button": {
"addFace": "Aggiungi volto",
@@ -38,7 +39,7 @@
"deletedFace_one": "Eliminato con successo {{count}} volto.",
"deletedFace_many": "Eliminati con successo {{count}} volti.",
"deletedFace_other": "Eliminati con successo {{count}} volti.",
- "updatedFaceScore": "Punteggio del volto aggiornato con successo.",
+ "updatedFaceScore": "Punteggio del volto aggiornato con successo a {{name}} ({{score}}).",
"uploadedImage": "Immagine caricata correttamente.",
"addFaceLibrary": "{{name}} è stato aggiunto con successo alla Libreria dei Volti!",
"renamedFace": "Rinominato correttamente il volto in {{name}}"
@@ -55,7 +56,7 @@
},
"imageEntry": {
"dropActive": "Rilascia l'immagine qui…",
- "dropInstructions": "Trascina e rilascia un'immagine qui oppure fai clic per selezionarla",
+ "dropInstructions": "Trascina e rilascia o incolla un'immagine qui oppure fai clic per selezionarla",
"maxSize": "Dimensione massima: {{size}} MB",
"validation": {
"selectImage": "Seleziona un file immagine."
@@ -63,7 +64,7 @@
},
"createFaceLibrary": {
"title": "Crea raccolta",
- "nextSteps": "Per costruire una base solida:
Usa la scheda Addestra per selezionare e addestrare le immagini per ogni persona rilevata.
Concentrati sulle immagini dritte per ottenere risultati migliori; evita di addestrare immagini che catturano i volti da un'angolazione.
",
+ "nextSteps": "Per costruire una base solida:
Usa la scheda \"Riconoscimenti recenti\" per selezionare e addestrare le immagini per ogni persona rilevata.
Concentrati sulle immagini dritte per ottenere risultati migliori; evita di addestrare immagini che catturano i volti da un'angolazione.
",
"desc": "Crea una nuova raccolta",
"new": "Crea nuovo volto"
},
diff --git a/web/public/locales/it/views/live.json b/web/public/locales/it/views/live.json
index b8a44ae27f..c32113e66a 100644
--- a/web/public/locales/it/views/live.json
+++ b/web/public/locales/it/views/live.json
@@ -12,8 +12,8 @@
},
"manualRecording": {
"recordDisabledTips": "Poiché la registrazione è disabilitata o limitata nella configurazione di questa telecamera, verrà salvata solo un'istantanea.",
- "title": "Registrazione su richiesta",
- "tips": "Avvia un evento manuale in base alle impostazioni di conservazione della registrazione di questa telecamera.",
+ "title": "Su richiesta",
+ "tips": "Scarica un'istantanea attuale o avvia un evento manuale in base alle impostazioni di conservazione della registrazione di questa telecamera.",
"playInBackground": {
"label": "Riproduci in sottofondo",
"desc": "Abilita questa opzione per continuare la trasmissione quando il lettore è nascosto."
@@ -37,7 +37,8 @@
"cameraEnabled": "Telecamera abilitata",
"objectDetection": "Rilevamento di oggetti",
"recording": "Registrazione",
- "audioDetection": "Rilevamento audio"
+ "audioDetection": "Rilevamento audio",
+ "transcription": "Trascrizione audio"
},
"history": {
"label": "Mostra filmati storici"
@@ -82,7 +83,15 @@
"label": "Fai clic nella cornice per centrare la telecamera PTZ"
}
},
- "presets": "Preimpostazioni della telecamera PTZ"
+ "presets": "Preimpostazioni della telecamera PTZ",
+ "focus": {
+ "in": {
+ "label": "Aumenta fuoco della telecamera PTZ"
+ },
+ "out": {
+ "label": "Diminuisci fuoco della telecamera PTZ"
+ }
+ }
},
"camera": {
"enable": "Abilita telecamera",
@@ -138,6 +147,9 @@
"lowBandwidth": {
"tips": "La visualizzazione dal vivo è in modalità a bassa larghezza di banda a causa di errori di caricamento o di trasmissione.",
"resetStream": "Reimposta flusso"
+ },
+ "debug": {
+ "picker": "Selezione del flusso non disponibile in modalità correzioni. La visualizzazione correzioni utilizza sempre il flusso a cui è assegnato il ruolo di rilevamento."
}
},
"effectiveRetainMode": {
@@ -154,5 +166,24 @@
"label": "Modifica gruppo telecamere"
},
"exitEdit": "Esci dalla modifica"
+ },
+ "transcription": {
+ "enable": "Abilita la trascrizione audio in tempo reale",
+ "disable": "Disabilita la trascrizione audio in tempo reale"
+ },
+ "noCameras": {
+ "buttonText": "Aggiungi telecamera",
+ "title": "Nessuna telecamera configurata",
+ "description": "Per iniziare, collega una telecamera a Frigate.",
+ "restricted": {
+ "title": "Nessuna telecamera disponibile",
+ "description": "Non hai l'autorizzazione per visualizzare alcuna telecamera in questo gruppo."
+ }
+ },
+ "snapshot": {
+ "takeSnapshot": "Scarica l'istantanea attuale",
+ "noVideoSource": "Nessuna sorgente video disponibile per l'istantanea.",
+ "captureFailed": "Impossibile catturare l'istantanea.",
+ "downloadStarted": "Scaricamento istantanea avviato."
}
}
diff --git a/web/public/locales/it/views/search.json b/web/public/locales/it/views/search.json
index 873ef007c1..97f8000c1c 100644
--- a/web/public/locales/it/views/search.json
+++ b/web/public/locales/it/views/search.json
@@ -25,7 +25,8 @@
"after": "Dopo",
"max_speed": "Velocità massima",
"recognized_license_plate": "Targa riconosciuta",
- "sub_labels": "Sottoetichette"
+ "sub_labels": "Sottoetichette",
+ "attributes": "Attributi"
},
"tips": {
"desc": {
diff --git a/web/public/locales/it/views/settings.json b/web/public/locales/it/views/settings.json
index 78b74c3b47..9cdcea5fb3 100644
--- a/web/public/locales/it/views/settings.json
+++ b/web/public/locales/it/views/settings.json
@@ -7,10 +7,12 @@
"masksAndZones": "Editor di maschere e zone - Frigate",
"motionTuner": "Regolatore di movimento - Frigate",
"object": "Correzioni - Frigate",
- "general": "Impostazioni generali - Frigate",
+ "general": "Impostazioni interfaccia - Frigate",
"frigatePlus": "Impostazioni Frigate+ - Frigate",
"notifications": "Impostazioni di notifiche - Frigate",
- "enrichments": "Impostazioni di miglioramento - Frigate"
+ "enrichments": "Impostazioni di miglioramento - Frigate",
+ "cameraManagement": "Gestisci telecamere - Frigate",
+ "cameraReview": "Impostazioni revisione telecamera - Frigate"
},
"frigatePlus": {
"snapshotConfig": {
@@ -18,7 +20,7 @@
"table": {
"snapshots": "Istantanee",
"camera": "Telecamera",
- "cleanCopySnapshots": "clean_copy Istantanee"
+ "cleanCopySnapshots": "Istantanee clean_copy"
},
"desc": "Per inviare a Frigate+ è necessario che nella configurazione siano abilitate sia le istantanee che le istantanee clean_copy.",
"documentation": "Leggi la documentazione",
@@ -101,7 +103,20 @@
"zones": {
"title": "Zone",
"desc": "Mostra un contorno di tutte le zone definite"
- }
+ },
+ "paths": {
+ "title": "Percorsi",
+ "desc": "Mostra i punti significativi del percorso dell'oggetto tracciato",
+ "tips": "
Percorsi
Linee e cerchi indicheranno i punti significativi in cui l'oggetto tracciato si è spostato durante il suo ciclo di vita.
"
+ },
+ "audio": {
+ "title": "Audio",
+ "currentdbFS": "dbFS correnti",
+ "noAudioDetections": "Nessun rilevamento audio",
+ "score": "punteggio",
+ "currentRMS": "RMS attuale"
+ },
+ "openCameraWebUI": "Apri l'interfaccia utente Web di {{camera}}"
},
"masksAndZones": {
"motionMasks": {
@@ -128,8 +143,8 @@
"add": "Nuova maschera di movimento",
"toast": {
"success": {
- "title": "{{polygonName}} è stato salvato. Riavvia Frigate per applicare le modifiche.",
- "noName": "La maschera di movimento è stata salvata. Riavvia Frigate per applicare le modifiche."
+ "title": "{{polygonName}} è stato salvato.",
+ "noName": "La maschera di movimento è stata salvata."
}
}
},
@@ -140,7 +155,8 @@
"mustNotBeSameWithCamera": "Il nome della zona non deve essere uguale al nome della telecamera.",
"mustBeAtLeastTwoCharacters": "Il nome della zona deve essere composto da almeno 2 caratteri.",
"alreadyExists": "Per questa telecamera esiste già una zona con questo nome.",
- "mustNotContainPeriod": "Il nome della zona non deve contenere punti."
+ "mustNotContainPeriod": "Il nome della zona non deve contenere punti.",
+ "mustHaveAtLeastOneLetter": "Il nome della zona deve contenere almeno una lettera."
}
},
"distance": {
@@ -223,7 +239,7 @@
"name": {
"inputPlaceHolder": "Inserisci un nome…",
"title": "Nome",
- "tips": "Il nome deve essere composto da almeno 2 caratteri e non deve essere il nome di una telecamera o di un'altra zona."
+ "tips": "Il nome deve essere composto da almeno 2 caratteri, contenere almeno una lettera e non deve essere il nome di una telecamera o di un'altra zona di questa telecamera."
},
"clickDrawPolygon": "Fai clic per disegnare un poligono sull'immagine.",
"point_one": "{{count}} punto",
@@ -245,7 +261,7 @@
},
"allObjects": "Tutti gli oggetti",
"toast": {
- "success": "La zona ({{zoneName}}) è stata salvata. Riavvia Frigate per applicare le modifiche."
+ "success": "La zona ({{zoneName}}) è stata salvata."
}
},
"objectMasks": {
@@ -267,8 +283,8 @@
},
"toast": {
"success": {
- "noName": "La maschera oggetto è stata salvata. Riavvia Frigate per applicare le modifiche.",
- "title": "{{polygonName}} è stato salvato. Riavvia Frigate per applicare le modifiche."
+ "noName": "La maschera oggetto è stata salvata.",
+ "title": "{{polygonName}} è stato salvato."
}
},
"label": "Maschere di oggetti",
@@ -292,7 +308,7 @@
"regardlessOfZoneObjectDetectionsTips": "Tutti gli oggetti {{detectionsLabels}} non categorizzati su {{cameraName}} verranno mostrati come Rilevamenti, indipendentemente dalla zona in cui si trovano."
},
"title": "Classificazione della revisione",
- "desc": "Frigate categorizza gli elementi di revisione come Avvisi e Rilevamenti. Per impostazione predefinita, tutti gli oggetti persona e auto sono considerati Avvisi. Puoi perfezionare la categorizzazione degli elementi di revisione configurando le zone desiderate.",
+ "desc": "Frigate categorizza gli elementi di revisione come Avvisi e Rilevamenti. Per impostazione predefinita, tutti gli oggetti persona e automobile sono considerati Avvisi. Puoi perfezionare la categorizzazione degli elementi di revisione configurando le zone desiderate.",
"objectAlertsTips": "Tutti gli oggetti {{alertsLabels}} su {{cameraName}} verranno mostrati come Avvisi.",
"toast": {
"success": "La configurazione della classificazione di revisione è stata salvata. Riavvia Frigate per applicare le modifiche."
@@ -305,7 +321,7 @@
"unsavedChanges": "Impostazioni di classificazione delle revisioni non salvate per {{camera}}"
},
"streams": {
- "desc": "Disattiva temporaneamente una telecamera fino al riavvio di Frigate. La disattivazione completa di una telecamera interrompe l'elaborazione dei flussi da parte di Frigate. Rilevamento, registrazione e correzioni non saranno disponibili. Nota: questa operazione non disabilita le ritrasmissioni di go2rtc.",
+ "desc": "Disattiva temporaneamente una telecamera fino al riavvio di Frigate. La disattivazione completa di una telecamera interrompe l'elaborazione dei flussi da parte di Frigate. Rilevamenti, registrazioni e correzioni non saranno disponibili. Nota: questa operazione non disabilita le ritrasmissioni di go2rtc.",
"title": "Flussi"
},
"title": "Impostazioni telecamera",
@@ -314,6 +330,44 @@
"desc": "Abilita/disabilita temporaneamente avvisi e rilevamenti per questa telecamera fino al riavvio di Frigate. Se disabilitati, non verranno generati nuovi elementi di revisione. ",
"alerts": "Avvisi ",
"detections": "Rilevamenti "
+ },
+ "object_descriptions": {
+ "title": "Descrizioni di oggetti di IA generativa",
+ "desc": "Abilita/disabilita temporaneamente le descrizioni degli oggetti generate dall'IA per questa telecamera. Se disabilitate, le descrizioni generate dall'IA non verranno richieste per gli oggetti tracciati su questa telecamera."
+ },
+ "review_descriptions": {
+ "title": "Descrizioni delle revisioni dell'IA generativa",
+ "desc": "Abilita/disabilita temporaneamente le descrizioni delle revisioni dell'IA generativa per questa telecamera. Se disabilitate, le descrizioni generate dall'IA non verranno richieste per gli elementi da recensire su questa telecamera."
+ },
+ "addCamera": "Aggiungi nuova telecamera",
+ "editCamera": "Modifica telecamera:",
+ "selectCamera": "Seleziona una telecamera",
+ "backToSettings": "Torna alle impostazioni della telecamera",
+ "cameraConfig": {
+ "add": "Aggiungi telecamera",
+ "edit": "Modifica telecamera",
+ "description": "Configura le impostazioni della telecamera, inclusi gli ingressi ed i ruoli della trasmissione.",
+ "name": "Nome della telecamera",
+ "nameRequired": "Il nome della telecamera è obbligatorio",
+ "nameInvalid": "Il nome della telecamera deve contenere solo lettere, numeri, caratteri di sottolineatura o trattini",
+ "namePlaceholder": "ad esempio: porta_principale",
+ "enabled": "Abilitata",
+ "ffmpeg": {
+ "inputs": "Flussi di ingresso",
+ "path": "Percorso del flusso",
+ "pathRequired": "Il percorso del flusso è obbligatorio",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Ruoli",
+ "rolesRequired": "È richiesto almeno un ruolo",
+ "rolesUnique": "Ogni ruolo (audio, rilevamento, registrazione) può essere assegnato solo ad un flusso",
+ "addInput": "Aggiungi flusso di ingresso",
+ "removeInput": "Rimuovi flusso di ingresso",
+ "inputsRequired": "È richiesto almeno un flusso di ingresso"
+ },
+ "toast": {
+ "success": "La telecamera {{cameraName}} è stata salvata correttamente"
+ },
+ "nameLength": "Il nome della telecamera deve contenere meno di 24 caratteri."
}
},
"menu": {
@@ -326,7 +380,11 @@
"debug": "Correzioni",
"users": "Utenti",
"frigateplus": "Frigate+",
- "enrichments": "Miglioramenti"
+ "enrichments": "Miglioramenti",
+ "triggers": "Inneschi",
+ "roles": "Ruoli",
+ "cameraManagement": "Gestione",
+ "cameraReview": "Rivedi"
},
"users": {
"dialog": {
@@ -336,7 +394,8 @@
"intro": "Seleziona il ruolo appropriato per questo utente:",
"admin": "Amministratore",
"adminDesc": "Accesso completo a tutte le funzionalità.",
- "viewer": "Spettatore"
+ "viewer": "Spettatore",
+ "customDesc": "Ruolo personalizzato con accesso specifico alla telecamera."
},
"title": "Cambia ruolo utente",
"desc": "Aggiorna i permessi per {{username}}",
@@ -368,7 +427,16 @@
"title": "Password",
"placeholder": "Inserisci la password",
"match": "Le password corrispondono",
- "notMatch": "Le password non corrispondono"
+ "notMatch": "Le password non corrispondono",
+ "show": "Mostra password",
+ "hide": "Nascondi password",
+ "requirements": {
+ "title": "Requisiti password:",
+ "length": "Almeno 8 caratteri",
+ "uppercase": "Almeno una lettera maiuscola",
+ "digit": "Almeno una cifra",
+ "special": "Almeno un carattere speciale (!@#$%^&*(),.?\":{}|<>)"
+ }
},
"newPassword": {
"title": "Nuova password",
@@ -378,7 +446,11 @@
}
},
"usernameIsRequired": "Il nome utente è obbligatorio",
- "passwordIsRequired": "La password è obbligatoria"
+ "passwordIsRequired": "La password è obbligatoria",
+ "currentPassword": {
+ "title": "Password attuale",
+ "placeholder": "Inserisci la password attuale"
+ }
},
"createUser": {
"desc": "Aggiungi un nuovo account utente e specifica un ruolo per l'accesso alle aree dell'interfaccia utente di Frigate.",
@@ -391,11 +463,16 @@
"setPassword": "Imposta password",
"desc": "Crea una password complessa per proteggere questo account.",
"cannotBeEmpty": "La password non può essere vuota",
- "doNotMatch": "Le password non corrispondono"
+ "doNotMatch": "Le password non corrispondono",
+ "currentPasswordRequired": "È richiesta la password attuale",
+ "incorrectCurrentPassword": "La password attuale è errata",
+ "passwordVerificationFailed": "Impossibile verificare la password",
+ "multiDeviceWarning": "Sarà necessario effettuare nuovamente l'accesso su qualsiasi altro dispositivo entro {{refresh_time}}.",
+ "multiDeviceAdmin": "Puoi anche forzare tutti gli utenti a riautenticarsi immediatamente ruotando il tuo segreto JWT."
}
},
"table": {
- "password": "Password",
+ "password": "Reimposta password",
"username": "Nome utente",
"actions": "Azioni",
"role": "Ruolo",
@@ -423,21 +500,29 @@
"desc": "Gestisci gli account utente di questa istanza Frigate."
},
"addUser": "Aggiungi utente",
- "updatePassword": "Aggiorna password"
+ "updatePassword": "Reimposta password"
},
"general": {
"liveDashboard": {
"automaticLiveView": {
- "desc": "Passa automaticamente alla visualizzazione dal vivodi una telecamera quando viene rilevata attività. Disattivando questa opzione, le immagini statiche della telecamera nella schermata dal vivo verranno aggiornate solo una volta al minuto.",
+ "desc": "Passa automaticamente alla visualizzazione dal vivo di una telecamera quando viene rilevata attività. Disattivando questa opzione, le immagini statiche della telecamera nella schermata dal vivo verranno aggiornate solo una volta al minuto.",
"label": "Visualizzazione automatica dal vivo"
},
"playAlertVideos": {
"label": "Riproduci video di avvisi",
"desc": "Per impostazione predefinita, gli avvisi recenti nella schermata dal vivo vengono riprodotti come brevi video in ciclo. Disattiva questa opzione per visualizzare solo un'immagine statica degli avvisi recenti su questo dispositivo/browser."
},
- "title": "Schermata dal vivo"
+ "title": "Schermata dal vivo",
+ "displayCameraNames": {
+ "label": "Mostra sempre i nomi delle telecamere",
+ "desc": "Mostra sempre i nomi delle telecamere in una scheda nel cruscotto della visualizzazione dal vivo multi telecamera."
+ },
+ "liveFallbackTimeout": {
+ "label": "Scadenza attesa lettore dal vivo",
+ "desc": "Quando la trasmissione dal vivo ad alta qualità di una telecamera non è disponibile, dopo questo numero di secondi torna alla modalità a bassa larghezza di banda. Valore predefinito: 3."
+ }
},
- "title": "Impostazioni generali",
+ "title": "Impostazioni interfaccia",
"storedLayouts": {
"title": "Formati memorizzati",
"desc": "La disposizione delle telecamere in un gruppo può essere trascinata/ridimensionata. Le posizioni vengono salvate nella memoria locale del browser.",
@@ -676,11 +761,553 @@
"title": "Classificazione degli uccelli"
},
"licensePlateRecognition": {
- "desc": "Frigate può riconoscere le targhe dei veicoli e aggiungere automaticamente i caratteri rilevati al campo recognized_license_plate o un nome noto come sub_label agli oggetti di tipo \"car\". Un caso d'uso comune potrebbe essere la lettura delle targhe delle auto che entrano in un vialetto o che transitano lungo una strada.",
+ "desc": "Frigate può riconoscere le targhe dei veicoli e aggiungere automaticamente i caratteri rilevati al campo recognized_license_plate o un nome noto come sub_label agli oggetti di tipo automobile (car). Un caso d'uso comune potrebbe essere la lettura delle targhe delle auto che entrano in un vialetto o che transitano lungo una strada.",
"title": "Riconoscimento della targa",
"readTheDocumentation": "Leggi la documentazione"
},
"unsavedChanges": "Modifiche alle impostazioni di miglioramento non salvate",
"restart_required": "Riavvio richiesto (impostazioni di miglioramento modificate)"
+ },
+ "triggers": {
+ "documentTitle": "Inneschi",
+ "management": {
+ "title": "Inneschi",
+ "desc": "Gestisci gli inneschi per {{camera}}. Utilizza il tipo miniatura per attivare miniature simili all'oggetto tracciato selezionato e il tipo descrizione per attivare descrizioni simili al testo specificato."
+ },
+ "addTrigger": "Aggiungi innesco",
+ "table": {
+ "name": "Nome",
+ "type": "Tipo",
+ "content": "Contenuto",
+ "threshold": "Soglia",
+ "actions": "Azioni",
+ "noTriggers": "Nessun innesco configurato per questa telecamera.",
+ "edit": "Modifica",
+ "deleteTrigger": "Elimina innesco",
+ "lastTriggered": "Ultimo innesco"
+ },
+ "type": {
+ "thumbnail": "Miniatura",
+ "description": "Descrizione"
+ },
+ "actions": {
+ "alert": "Contrassegna come avviso",
+ "notification": "Invia notifica",
+ "sub_label": "Aggiungi sottoetichetta",
+ "attribute": "Aggiungi attributo"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Crea innesco",
+ "desc": "Crea un innesco per la telecamera {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Modifica innesco",
+ "desc": "Modifica le impostazioni per l'innesco della telecamera {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Elimina innesco",
+ "desc": "Vuoi davvero eliminare l'innesco {{triggerName}}? Questa azione non può essere annullata."
+ },
+ "form": {
+ "name": {
+ "title": "Nome",
+ "placeholder": "Assegna un nome a questo innesco",
+ "error": {
+ "minLength": "Il campo deve contenere almeno 2 caratteri.",
+ "invalidCharacters": "Il campo può contenere solo lettere, numeri, caratteri di sottolineatura e trattini.",
+ "alreadyExists": "Per questa telecamera esiste già un innesco con questo nome."
+ },
+ "description": "Inserisci un nome o una descrizione univoca per identificare questo innesco"
+ },
+ "enabled": {
+ "description": "Abilita o disabilita questo innesco"
+ },
+ "type": {
+ "title": "Tipo",
+ "placeholder": "Seleziona il tipo di innesco",
+ "description": "Si attiva quando viene rilevata una descrizione di un oggetto simile tracciato",
+ "thumbnail": "Attiva quando viene rilevata una miniatura di un oggetto simile tracciato"
+ },
+ "content": {
+ "title": "Contenuto",
+ "imagePlaceholder": "Seleziona una miniatura",
+ "textPlaceholder": "Inserisci il contenuto del testo",
+ "imageDesc": "Vengono visualizzate solo le 100 miniature più recenti. Se non riesci a trovare la miniatura desiderata, controlla gli oggetti precedenti in Esplora e imposta un innesco dal menu.",
+ "textDesc": "Inserisci il testo per attivare questa azione quando viene rilevata una descrizione simile dell'oggetto tracciato.",
+ "error": {
+ "required": "Il contenuto è obbligatorio."
+ }
+ },
+ "threshold": {
+ "title": "Soglia",
+ "error": {
+ "min": "La soglia deve essere almeno 0",
+ "max": "La soglia deve essere al massimo 1"
+ },
+ "desc": "Imposta la soglia di similarità per questo innesco. Una soglia più alta indica che è necessaria una corrispondenza più vicina per attivare l'innesco."
+ },
+ "actions": {
+ "title": "Azioni",
+ "desc": "Per impostazione predefinita, Frigate invia un messaggio MQTT per tutti gli inneschi. Le sottoetichette aggiungono il nome dell'innesco all'etichetta dell'oggetto. Gli attributi sono metadati ricercabili, memorizzati separatamente nei metadati dell'oggetto tracciato.",
+ "error": {
+ "min": "È necessario selezionare almeno un'azione."
+ }
+ },
+ "friendly_name": {
+ "title": "Nome semplice",
+ "placeholder": "Assegna un nome o descrivi questo innesco",
+ "description": "Un nome semplice o un testo descrittivo facoltativo per questo innesco."
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "L'innesco {{name}} è stato creato correttamente.",
+ "updateTrigger": "L'innesco {{name}} è stato aggiornato correttamente.",
+ "deleteTrigger": "L'innesco {{name}} è stato eliminato correttamente."
+ },
+ "error": {
+ "createTriggerFailed": "Impossibile creare l'innesco: {{errorMessage}}",
+ "updateTriggerFailed": "Impossibile aggiornare l'innesco: {{errorMessage}}",
+ "deleteTriggerFailed": "Impossibile eliminare l'innesco: {{errorMessage}}"
+ }
+ },
+ "semanticSearch": {
+ "title": "La ricerca semantica è disabilitata",
+ "desc": "Per utilizzare gli inneschi, è necessario abilitare la ricerca semantica."
+ },
+ "wizard": {
+ "title": "Crea innesco",
+ "step1": {
+ "description": "Configura le impostazioni di base per il tuo innesco."
+ },
+ "step2": {
+ "description": "Imposta il contenuto che attiverà questa azione."
+ },
+ "step3": {
+ "description": "Configura la soglia e le azioni per questo innesco."
+ },
+ "steps": {
+ "nameAndType": "Nome e tipo",
+ "configureData": "Configurare i dati",
+ "thresholdAndActions": "Soglia e azioni"
+ }
+ }
+ },
+ "roles": {
+ "management": {
+ "title": "Gestione del ruolo di spettatore",
+ "desc": "Gestisci i ruoli di spettatori personalizzati e le relative autorizzazioni di accesso alla telecamera per questa istanza Frigate."
+ },
+ "addRole": "Aggiungi ruolo",
+ "table": {
+ "role": "Ruolo",
+ "cameras": "Telecamere",
+ "actions": "Azioni",
+ "noRoles": "Nessun ruolo personalizzato trovato.",
+ "editCameras": "Modifica telecamere",
+ "deleteRole": "Elimina ruolo"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Ruolo {{role}} creato con successo",
+ "updateCameras": "Telecamere aggiornate per il ruolo {{role}}",
+ "deleteRole": "Ruolo {{role}} eliminato con successo",
+ "userRolesUpdated_one": "{{count}} utente assegnato a questo ruolo è stato aggiornato a \"spettatore\", che ha accesso a tutte le telecamere.",
+ "userRolesUpdated_many": "{{count}} utenti assegnati a questo ruolo sono stati aggiornati a \"spettatore\", che ha accesso a tutte le telecamere.",
+ "userRolesUpdated_other": "{{count}} utenti assegnati a questo ruolo sono stati aggiornati a \"spettatore\", che ha accesso a tutte le telecamere."
+ },
+ "error": {
+ "createRoleFailed": "Impossibile creare il ruolo: {{errorMessage}}",
+ "updateCamerasFailed": "Impossibile aggiornare le telecamere: {{errorMessage}}",
+ "deleteRoleFailed": "Impossibile eliminare il ruolo: {{errorMessage}}",
+ "userUpdateFailed": "Impossibile aggiornare i ruoli utente: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Crea nuovo ruolo",
+ "desc": "Aggiungi un nuovo ruolo e specifica le autorizzazioni di accesso alla telecamera."
+ },
+ "editCameras": {
+ "title": "Modifica telecamere di ruolo",
+ "desc": "Aggiorna l'accesso alla telecamera per il ruolo {{role}}."
+ },
+ "deleteRole": {
+ "title": "Elimina ruolo",
+ "desc": "Questa azione non può essere annullata. Ciò eliminerà definitivamente il ruolo e assegnerà a tutti gli utenti il ruolo di 'spettatore', che darà loro accesso a tutte le telecamere.",
+ "warn": "Sei sicuro di voler eliminare {{role}}?",
+ "deleting": "Eliminazione in corso..."
+ },
+ "form": {
+ "role": {
+ "title": "Nome del ruolo",
+ "placeholder": "Inserisci il nome del ruolo",
+ "desc": "Sono consentiti solo lettere, numeri, punti e caratteri di sottolineatura.",
+ "roleIsRequired": "Il nome del ruolo è obbligatorio",
+ "roleOnlyInclude": "Il nome del ruolo può includere solo lettere, numeri, . o _",
+ "roleExists": "Esiste già un ruolo con questo nome."
+ },
+ "cameras": {
+ "title": "Telecamere",
+ "desc": "Seleziona le telecamere a cui questo ruolo ha accesso. È richiesta almeno una telecamera.",
+ "required": "È necessario selezionare almeno una telecamera."
+ }
+ }
+ }
+ },
+ "cameraReview": {
+ "title": "Impostazioni revisione telecamera",
+ "object_descriptions": {
+ "title": "Descrizioni oggetti IA generativa",
+ "desc": "Abilita/disabilita temporaneamente le descrizioni degli oggetti generate dall'IA per questa telecamera. Se disabilitate, le descrizioni generate dall'IA non verranno richieste per gli oggetti tracciati su questa telecamera."
+ },
+ "review_descriptions": {
+ "title": "Descrizioni revisioni IA generativa",
+ "desc": "Abilita/disabilita temporaneamente le descrizioni delle revisioni generate dall'IA per questa telecamera. Se disabilitate, le descrizioni generate dall'IA non verranno richieste per gli elementi da rivedere su questa telecamera."
+ },
+ "review": {
+ "title": "Rivedi",
+ "desc": "Abilita/disabilita temporaneamente avvisi e rilevamenti per questa telecamera fino al riavvio di Frigate. Se disabilitato, non verranno generati nuovi elementi di revisione. ",
+ "alerts": "Avvisi ",
+ "detections": "Rilevamenti "
+ },
+ "reviewClassification": {
+ "title": "Classificazione revisione",
+ "desc": "Frigate categorizza gli elementi di revisione come Avvisi e Rilevamenti. Per impostazione predefinita, tutti gli oggetti persona e auto sono considerati Avvisi. È possibile perfezionare la categorizzazione degli elementi di revisione configurando le zone richieste per ciascuno di essi.",
+ "noDefinedZones": "Per questa telecamera non sono definite zone.",
+ "objectAlertsTips": "Tutti gli oggetti {{alertsLabels}} su {{cameraName}} verranno mostrati come Avvisi.",
+ "zoneObjectAlertsTips": "Tutti gli oggetti {{alertsLabels}} rilevati in {{zone}} su {{cameraName}} verranno mostrati come Avvisi.",
+ "objectDetectionsTips": "Tutti gli oggetti {{detectionsLabels}} non categorizzati su {{cameraName}} verranno mostrati come Rilevamenti, indipendentemente dalla zona in cui si trovano.",
+ "zoneObjectDetectionsTips": {
+ "text": "Tutti gli oggetti {{detectionsLabels}} non categorizzati in {{zone}} su {{cameraName}} verranno mostrati come Rilevamenti.",
+ "notSelectDetections": "Tutti gli oggetti {{detectionsLabels}} rilevati in {{zone}} su {{cameraName}} non classificati come Avvisi verranno mostrati come Rilevamenti, indipendentemente dalla zona in cui si trovano.",
+ "regardlessOfZoneObjectDetectionsTips": "Tutti gli oggetti {{detectionsLabels}} non categorizzati su {{cameraName}} verranno mostrati come Rilevamenti, indipendentemente dalla zona in cui si trovano."
+ },
+ "unsavedChanges": "Impostazioni di classificazione delle revisioni non salvate per {{camera}}",
+ "selectAlertsZones": "Seleziona le zone per gli Avvisi",
+ "selectDetectionsZones": "Seleziona le zone per i Rilevamenti",
+ "limitDetections": "Limita i rilevamenti a zone specifiche",
+ "toast": {
+ "success": "La configurazione della classificazione di revisione è stata salvata. Riavvia Frigate per applicare le modifiche."
+ }
+ }
+ },
+ "cameraWizard": {
+ "step3": {
+ "streamUnavailable": "Anteprima trasmissione non disponibile",
+ "description": "Configura i ruoli del flusso e aggiungi altri flussi alla tua telecamera.",
+ "validationTitle": "Convalida del flusso",
+ "connectAllStreams": "Connetti tutti i flussi",
+ "reconnectionSuccess": "Riconnessione riuscita.",
+ "reconnectionPartial": "Alcuni flussi non sono riusciti a riconnettersi.",
+ "reload": "Ricarica",
+ "connecting": "Connessione...",
+ "streamTitle": "Flusso {{number}}",
+ "valid": "Convalida",
+ "failed": "Fallito",
+ "notTested": "Non verificata",
+ "connectStream": "Connetti",
+ "connectingStream": "Connessione",
+ "disconnectStream": "Disconnetti",
+ "estimatedBandwidth": "Larghezza di banda stimata",
+ "roles": "Ruoli",
+ "none": "Nessuno",
+ "error": "Errore",
+ "streamValidated": "Flusso {{number}} convalidato con successo",
+ "streamValidationFailed": "Convalida del flusso {{number}} non riuscita",
+ "saveAndApply": "Salva nuova telecamera",
+ "saveError": "Configurazione non valida. Controlla le impostazioni.",
+ "issues": {
+ "title": "Convalida del flusso",
+ "videoCodecGood": "Il codec video è {{codec}}.",
+ "audioCodecGood": "Il codec audio è {{codec}}.",
+ "noAudioWarning": "Nessun audio rilevato per questo flusso, le registrazioni non avranno audio.",
+ "audioCodecRecordError": "Per supportare l'audio nelle registrazioni è necessario il codec audio AAC.",
+ "audioCodecRequired": "Per supportare il rilevamento audio è necessario un flusso audio.",
+ "restreamingWarning": "Riducendo le connessioni alla telecamera per il flusso di registrazione l'utilizzo della CPU potrebbe aumentare leggermente.",
+ "dahua": {
+ "substreamWarning": "Il flusso 1 è bloccato a bassa risoluzione. Molte telecamere Dahua/Amcrest/EmpireTech supportano flussi aggiuntivi che devono essere abilitati nelle impostazioni della telecamera. Si consiglia di controllare e utilizzare tali flussi, se disponibili."
+ },
+ "hikvision": {
+ "substreamWarning": "Il flusso 1 è bloccato a bassa risoluzione. Molte telecamere Hikvision supportano flussi aggiuntivi che devono essere abilitati nelle impostazioni della telecamera. Si consiglia di controllare e utilizzare tali flussi, se disponibili."
+ },
+ "resolutionHigh": "Una risoluzione di {{resolution}} potrebbe causare un aumento dell'utilizzo delle risorse.",
+ "resolutionLow": "Una risoluzione di {{resolution}} potrebbe essere troppo bassa per un rilevamento affidabile di oggetti di piccole dimensioni."
+ },
+ "ffmpegModule": "Utilizza la modalità di compatibilità della trasmissione",
+ "ffmpegModuleDescription": "Se il flusso non si carica dopo diversi tentativi, prova ad abilitare questa opzione. Se abilitata, Frigate utilizzerà il modulo ffmpeg con go2rtc. Questo potrebbe garantire una migliore compatibilità con alcuni flussi di telecamere.",
+ "streamsTitle": "Flussi della telecamera",
+ "addStream": "Aggiungi flusso",
+ "addAnotherStream": "Aggiungi un altro flusso",
+ "streamUrl": "URL del flusso",
+ "streamUrlPlaceholder": "rtsp://nomeutente:password@sistema:porta/percorso",
+ "selectStream": "Seleziona un flusso",
+ "searchCandidates": "Ricerca candidati in corso...",
+ "noStreamFound": "Nessun flusso trovato",
+ "url": "URL",
+ "resolution": "Risoluzione",
+ "selectResolution": "Seleziona la risoluzione",
+ "quality": "Qualità",
+ "selectQuality": "Seleziona la qualità",
+ "roleLabels": {
+ "detect": "Rilevamento di oggetti",
+ "record": "Registrazione",
+ "audio": "Audio"
+ },
+ "testStream": "Prova di connessione",
+ "testSuccess": "Prova del flusso riuscita!",
+ "testFailed": "Prova del flusso fallita",
+ "testFailedTitle": "Prova fallita",
+ "connected": "Connesso",
+ "notConnected": "Non connesso",
+ "featuresTitle": "Caratteristiche",
+ "go2rtc": "Riduci le connessioni alla telecamera",
+ "detectRoleWarning": "Per procedere, almeno un flusso deve avere il ruolo \"rilevamento\".",
+ "rolesPopover": {
+ "title": "Ruoli del flusso",
+ "detect": "Flusso principale per il rilevamento degli oggetti.",
+ "record": "Salva segmenti del flusso video in base alle impostazioni di configurazione.",
+ "audio": "Flusso per il rilevamento basato sull'audio."
+ },
+ "featuresPopover": {
+ "title": "Caratteristiche del flusso",
+ "description": "Utilizza la ritrasmissione go2rtc per ridurre le connessioni alla tua telecamera."
+ }
+ },
+ "title": "Aggiungi telecamera",
+ "description": "Per aggiungere una nuova telecamera alla tua installazione Frigate, segui i passaggi indicati di seguito.",
+ "steps": {
+ "nameAndConnection": "Nome e connessione",
+ "streamConfiguration": "Configurazione flusso",
+ "validationAndTesting": "Validazione e prova",
+ "probeOrSnapshot": "Analisi o istantanea"
+ },
+ "save": {
+ "success": "Nuova telecamera {{cameraName}} salvata correttamente.",
+ "failure": "Errore durante il salvataggio di {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Risoluzione",
+ "video": "Video",
+ "audio": "Audio",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Fornisci un URL di flusso valido",
+ "testFailed": "Prova del flusso fallita: {{error}}"
+ },
+ "step1": {
+ "description": "Inserisci i dettagli della tua telecamera e scegli se analizzarla o selezionarne manualmente la marca.",
+ "cameraName": "Nome telecamera",
+ "cameraNamePlaceholder": "ad esempio, porta_anteriore o Panoramica cortile",
+ "host": "Indirizzo sistema/IP",
+ "port": "Porta",
+ "username": "Nome utente",
+ "usernamePlaceholder": "Opzionale",
+ "password": "Password",
+ "passwordPlaceholder": "Opzionale",
+ "selectTransport": "Seleziona il protocollo di trasmissione",
+ "cameraBrand": "Marca telecamera",
+ "selectBrand": "Seleziona la marca della telecamera per il modello URL",
+ "customUrl": "URL del flusso personalizzato",
+ "brandInformation": "Informazioni sul marchio",
+ "brandUrlFormat": "Per le telecamere con formato URL RTSP come: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://nomeutente:password@sistema:porta/percorso",
+ "testConnection": "Prova connessione",
+ "testSuccess": "Prova di connessione riuscita!",
+ "testFailed": "Prova di connessione fallita. Controlla i dati immessi e riprova.",
+ "streamDetails": "Dettagli del flusso",
+ "warnings": {
+ "noSnapshot": "Impossibile recuperare un'immagine dal flusso configurato."
+ },
+ "errors": {
+ "brandOrCustomUrlRequired": "Seleziona una marca di telecamera con sistema/IP oppure scegli \"Altro\" con un URL personalizzato",
+ "nameRequired": "Il nome della telecamera è obbligatorio",
+ "nameLength": "Il nome della telecamera deve contenere al massimo 64 caratteri",
+ "invalidCharacters": "Il nome della telecamera contiene caratteri non validi",
+ "nameExists": "Il nome della telecamera esiste già",
+ "brands": {
+ "reolink-rtsp": "Reolink RTSP non è consigliato. Abilita HTTP nelle impostazioni del firmware della telecamera e riavvia la procedura guidata."
+ },
+ "customUrlRtspRequired": "Gli URL personalizzati devono iniziare con \"rtsp://\". Per i flussi di telecamere non RTSP è richiesta la configurazione manuale."
+ },
+ "docs": {
+ "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
+ },
+ "testing": {
+ "probingMetadata": "Analisi dei metadati della telecamera in corso...",
+ "fetchingSnapshot": "Recupero istantanea della telecamera in corso..."
+ },
+ "probeMode": "Analisi telecamera",
+ "detectionMethodDescription": "Analizza la telecamera con ONVIF (se supportato) per trovare gli URL dei flussi video della telecamera oppure seleziona manualmente la marca della telecamera per utilizzare URL predefiniti. Per inserire un URL RTSP personalizzato, scegli il metodo manuale e seleziona \"Altro\".",
+ "connectionSettings": "Impostazioni di connessione",
+ "detectionMethod": "Metodo di rilevamento del flusso",
+ "onvifPort": "Porta ONVIF",
+ "manualMode": "Selezione manuale",
+ "onvifPortDescription": "Per le telecamere che supportano ONVIF, in genere è 80 o 8080.",
+ "useDigestAuth": "Utilizza l'autenticazione digest",
+ "useDigestAuthDescription": "Utilizza l'autenticazione HTTP digest per ONVIF. Alcune telecamere potrebbero richiedere un nome utente e una password ONVIF dedicati, anziché l'utente amministratore classico."
+ },
+ "step2": {
+ "description": "Analizza la telecamera per individuare i flussi disponibili oppure configura le impostazioni manuali in base al metodo di rilevamento selezionato.",
+ "streamsTitle": "Flussi della telecamera",
+ "addStream": "Aggiungi flusso",
+ "addAnotherStream": "Aggiungi un altro flusso",
+ "streamTitle": "Flusso {{number}}",
+ "streamUrl": "URL del flusso",
+ "streamUrlPlaceholder": "rtsp://nomeutente:password@sistema:porta/percorso",
+ "url": "URL",
+ "resolution": "Risoluzione",
+ "selectResolution": "Seleziona la risoluzione",
+ "quality": "Qualità",
+ "selectQuality": "Seleziona la qualità",
+ "roles": "Ruoli",
+ "roleLabels": {
+ "detect": "Rilevamento oggetti",
+ "record": "Registrazione",
+ "audio": "Audio"
+ },
+ "testStream": "Prova connessione",
+ "testSuccess": "Prova di connessione riuscita!",
+ "testFailed": "Prova di connessione fallita. Controlla i dati inseriti e riprova.",
+ "testFailedTitle": "Prova fallita",
+ "connected": "Connessa",
+ "notConnected": "Non connessa",
+ "featuresTitle": "Caratteristiche",
+ "go2rtc": "Riduci le connessioni alla telecamera",
+ "detectRoleWarning": "Per procedere, almeno un flusso deve avere il ruolo \"rileva\".",
+ "rolesPopover": {
+ "title": "Ruoli del flusso",
+ "detect": "Flusso principale per il rilevamento degli oggetti.",
+ "record": "Salva segmenti del flusso video in base alle impostazioni di configurazione.",
+ "audio": "Flusso per il rilevamento basato sull'audio."
+ },
+ "featuresPopover": {
+ "title": "Caratteristiche del flusso",
+ "description": "Utilizza la ritrasmissione go2rtc per ridurre le connessioni alla tua telecamera."
+ },
+ "probeFailed": "Impossibile analizzare la telecamera: {{error}}",
+ "probeSuccessful": "Analisi riuscita",
+ "probeError": "Errore analisi",
+ "probeNoSuccess": "Analisi non riuscita",
+ "rtspCandidatesDescription": "I seguenti URL RTSP sono stati trovati dall'analisi della telecamera. Prova la connessione per visualizzare i metadati della trasmissione.",
+ "streamDetails": "Dettagli del flusso",
+ "probing": "Analisi telecamera in corso...",
+ "retry": "Riprova",
+ "testing": {
+ "probingMetadata": "Analisi dei metadati della telecamera in corso...",
+ "fetchingSnapshot": "Recupero dell'istantanea della telecamera in corso..."
+ },
+ "probingDevice": "Analisi del dispositivo in corso...",
+ "deviceInfo": "Informazioni sul dispositivo",
+ "manufacturer": "Produttore",
+ "model": "Modello",
+ "firmware": "Firmware",
+ "profiles": "Profili",
+ "ptzSupport": "Supporto PTZ",
+ "autotrackingSupport": "Supporto per il tracciamento automatico",
+ "presets": "Preimpostazioni",
+ "rtspCandidates": "Candidati RTSP",
+ "noRtspCandidates": "Nessun URL RTSP trovato dalla telecamera. Le credenziali potrebbero essere errate oppure la telecamera potrebbe non supportare ONVIF o il metodo utilizzato per recuperare gli URL RTSP. Torna indietro e inserisci manualmente l'URL RTSP.",
+ "candidateStreamTitle": "Candidato {{number}}}}",
+ "useCandidate": "Utilizza",
+ "uriCopy": "Copia",
+ "uriCopied": "URI copiato negli appunti",
+ "testConnection": "Prova di connessione",
+ "toggleUriView": "Fai clic per attivare/disattivare la visualizzazione completa dell'URI",
+ "errors": {
+ "hostRequired": "È richiesto il nome sistema/indirizzo IP"
+ }
+ },
+ "step4": {
+ "description": "Convalida e analisi finale prima di salvare la nuova telecamera. Collega ogni flusso prima di salvare.",
+ "validationTitle": "Validazione del flusso",
+ "connectAllStreams": "Connetti tutti i flussi",
+ "reconnectionSuccess": "Riconnessione riuscita.",
+ "reconnectionPartial": "Alcuni flussi non sono riusciti a riconnettersi.",
+ "streamUnavailable": "Anteprima del flusso non disponibile",
+ "reload": "Ricarica",
+ "connecting": "Connessione in corso...",
+ "streamTitle": "Flusso {{number}}",
+ "valid": "Valida",
+ "failed": "Fallito",
+ "notTested": "Non verificato",
+ "connectStream": "Connetti",
+ "connectingStream": "Connessione in corso",
+ "disconnectStream": "Disconnetti",
+ "estimatedBandwidth": "Larghezza di banda stimata",
+ "roles": "Ruoli",
+ "ffmpegModule": "Utilizza la modalità di compatibilità del flusso",
+ "ffmpegModuleDescription": "Se il flusso non si carica dopo diversi tentativi, prova ad abilitare questa opzione. Se abilitata, Frigate utilizzerà il modulo ffmpeg con go2rtc. Questo potrebbe garantire una migliore compatibilità con alcuni flussi di telecamere.",
+ "none": "Nessuno",
+ "error": "Errore",
+ "streamValidated": "Flusso {{number}} convalidato con successo",
+ "streamValidationFailed": "Convalida del flusso {{number}} non riuscita",
+ "saveAndApply": "Salva nuova telecamera",
+ "saveError": "Configurazione non valida. Controlla le impostazioni.",
+ "issues": {
+ "title": "Validazione del flusso",
+ "videoCodecGood": "Il codec video è {{codec}}.",
+ "audioCodecGood": "Il codec audio è {{codec}}.",
+ "resolutionHigh": "Una risoluzione di {{resolution}} potrebbe causare un aumento dell'utilizzo delle risorse.",
+ "resolutionLow": "Una risoluzione di {{resolution}} potrebbe essere troppo bassa per un rilevamento affidabile di oggetti di piccole dimensioni.",
+ "noAudioWarning": "Nessun audio rilevato per questo flusso, le registrazioni non avranno audio.",
+ "audioCodecRecordError": "Per supportare l'audio nelle registrazioni è necessario il codec audio AAC.",
+ "audioCodecRequired": "Per supportare il rilevamento audio è necessario un flusso audio.",
+ "restreamingWarning": "Riducendo le connessioni alla telecamera per il flusso di registrazione l'utilizzo della CPU potrebbe aumentare leggermente.",
+ "brands": {
+ "reolink-rtsp": "Reolink RTSP non è consigliato. Abilita HTTP nelle impostazioni del firmware della telecamera e riavvia la procedura guidata.",
+ "reolink-http": "I flussi HTTP di Reolink dovrebbero utilizzare FFmpeg per una migliore compatibilità. Abilita \"Usa modalità compatibilità flusso\" per questo flusso."
+ },
+ "dahua": {
+ "substreamWarning": "Il sottoflusso 1 è bloccato a bassa risoluzione. Molte telecamere Dahua/Amcrest/EmpireTech supportano sottoflussi aggiuntivi che devono essere abilitati nelle impostazioni della telecamera. Si consiglia di controllare e utilizzare tali flussi, se disponibili."
+ },
+ "hikvision": {
+ "substreamWarning": "Il sottoflusso 1 è bloccato a bassa risoluzione. Molte telecamere Hikvision supportano sottoflussi aggiuntivi che devono essere abilitati nelle impostazioni della telecamera. Si consiglia di controllare e utilizzare tali flussi, se disponibili."
+ }
+ }
+ }
+ },
+ "cameraManagement": {
+ "title": "Gestisci telecamere",
+ "addCamera": "Aggiungi nuova telecamera",
+ "editCamera": "Modifica telecamera:",
+ "selectCamera": "Seleziona una telecamera",
+ "backToSettings": "Torna alle impostazioni della telecamera",
+ "streams": {
+ "title": "Abilita/Disabilita telecamere",
+ "desc": "Disattiva temporaneamente una telecamera fino al riavvio di Frigate. La disattivazione completa di una telecamera interrompe l'elaborazione dei flussi di questa telecamera da parte di Frigate. Rilevamento, registrazione e correzioni non saranno disponibili. Nota: questa operazione non disattiva le ritrasmissioni di go2rtc."
+ },
+ "cameraConfig": {
+ "add": "Aggiungi telecamera",
+ "edit": "Modifica telecamera",
+ "description": "Configura le impostazioni della telecamera, inclusi gli ingressi ed i ruoli dei flussi.",
+ "name": "Nome telecamera",
+ "nameRequired": "Il nome della telecamera è obbligatorio",
+ "nameLength": "Il nome della telecamera deve contenere al massimo 64 caratteri.",
+ "namePlaceholder": "ad esempio, porta_anteriore o Panoramica cortile",
+ "toast": {
+ "success": "La telecamera {{cameraName}} è stata salvata correttamente"
+ },
+ "enabled": "Abilitata",
+ "ffmpeg": {
+ "inputs": "Flussi di ingresso",
+ "path": "Percorso del flusso",
+ "pathRequired": "Il percorso del flusso è obbligatorio",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Ruoli",
+ "rolesRequired": "È richiesto almeno un ruolo",
+ "rolesUnique": "Ogni ruolo (audio, rilevamento, registrazione) può essere assegnato solo ad un flusso",
+ "addInput": "Aggiungi flusso di ingresso",
+ "removeInput": "Rimuovi flusso di ingresso",
+ "inputsRequired": "È richiesto almeno un flusso di ingresso"
+ },
+ "go2rtcStreams": "Flussi go2rtc",
+ "streamUrls": "URL dei flussi",
+ "addUrl": "Aggiungi URL",
+ "addGo2rtcStream": "Aggiungi flusso go2rtc"
+ }
}
}
diff --git a/web/public/locales/it/views/system.json b/web/public/locales/it/views/system.json
index ee838403ca..c4f4b96772 100644
--- a/web/public/locales/it/views/system.json
+++ b/web/public/locales/it/views/system.json
@@ -65,14 +65,20 @@
"gpuUsage": "Utilizzo GPU",
"gpuMemory": "Memoria GPU",
"npuUsage": "Utilizzo NPU",
- "npuMemory": "Memoria NPU"
+ "npuMemory": "Memoria NPU",
+ "intelGpuWarning": {
+ "title": "Avviso statistiche GPU Intel",
+ "message": "Statistiche GPU non disponibili",
+ "description": "Si tratta di un problema noto negli strumenti di reportistica delle statistiche GPU di Intel (intel_gpu_top), che si interrompe e restituisce ripetutamente un utilizzo della GPU pari a 0% anche nei casi in cui l'accelerazione hardware e il rilevamento degli oggetti funzionano correttamente sulla (i)GPU. Non si tratta di un problema di Frigate. È possibile riavviare il sistema per risolvere temporaneamente il problema e verificare che la GPU funzioni correttamente. Ciò non influisce sulle prestazioni."
+ }
},
"detector": {
"inferenceSpeed": "Velocità inferenza rilevatore",
"title": "Rilevatori",
"cpuUsage": "Utilizzo CPU rilevatore",
"memoryUsage": "Utilizzo memoria rilevatore",
- "temperature": "Temperatura del rilevatore"
+ "temperature": "Temperatura del rilevatore",
+ "cpuUsageInformation": "CPU utilizzata nella preparazione dei dati di ingresso e uscita da/verso i modelli di rilevamento. Questo valore non misura l'utilizzo dell'inferenza, anche se si utilizza una GPU o un acceleratore."
},
"title": "Generale",
"otherProcesses": {
@@ -83,20 +89,30 @@
},
"enrichments": {
"embeddings": {
- "face_embedding_speed": "Velocità incorporazione volti",
+ "face_embedding_speed": "Velocità incorporamento volti",
"plate_recognition_speed": "Velocità riconoscimento targhe",
- "image_embedding_speed": "Velocità incorporazione immagini",
- "text_embedding_speed": "Velocità incorporazione testo",
+ "image_embedding_speed": "Velocità incorporamento immagini",
+ "text_embedding_speed": "Velocità incorporamento testo",
"face_recognition_speed": "Velocità di riconoscimento facciale",
"face_recognition": "Riconoscimento facciale",
"plate_recognition": "Riconoscimento delle targhe",
"yolov9_plate_detection_speed": "Velocità di rilevamento della targa con YOLOv9",
"yolov9_plate_detection": "Rilevamento della targa con YOLOv9",
"image_embedding": "Incorporamento di immagini",
- "text_embedding": "Incorporamento di testo"
+ "text_embedding": "Incorporamento di testo",
+ "review_description": "Descrizione della revisione",
+ "review_description_speed": "Velocità della descrizione di revisione",
+ "review_description_events_per_second": "Descrizione della revisione",
+ "object_description": "Descrizione dell'oggetto",
+ "object_description_speed": "Velocità della descrizione dell'oggetto",
+ "object_description_events_per_second": "Descrizione dell'oggetto",
+ "classification": "Classificazione {{name}}",
+ "classification_speed": "Velocità di classificazione {{name}}",
+ "classification_events_per_second": "Eventi di classificazione {{name}} al secondo"
},
"title": "Miglioramenti",
- "infPerSecond": "Inferenze al secondo"
+ "infPerSecond": "Inferenze al secondo",
+ "averageInf": "Tempo medio di inferenza"
},
"cameras": {
"info": {
@@ -121,15 +137,15 @@
"framesAndDetections": "Fotogrammi / Rilevamenti",
"label": {
"camera": "telecamera",
- "detect": "rileva",
- "skipped": "saltato",
+ "detect": "rilevamento",
+ "skipped": "saltati",
"ffmpeg": "FFmpeg",
"capture": "cattura",
"overallFramesPerSecond": "fotogrammi totali al secondo",
"overallDetectionsPerSecond": "rilevamenti totali al secondo",
"overallSkippedDetectionsPerSecond": "rilevamenti totali saltati al secondo",
"cameraCapture": "{{camName}} cattura",
- "cameraDetect": "{{camName}} rileva",
+ "cameraDetect": "{{camName}} rilevamento",
"cameraFramesPerSecond": "{{camName}} fotogrammi al secondo",
"cameraDetectionsPerSecond": "{{camName}} rilevamenti al secondo",
"cameraSkippedDetectionsPerSecond": "{{camName}} rilevamenti saltati al secondo",
@@ -151,7 +167,8 @@
"reindexingEmbeddings": "Reindicizzazione degli incorporamenti (completata al {{processed}}%)",
"cameraIsOffline": "{{camera}} è disconnessa",
"detectIsSlow": "{{detect}} è lento ({{speed}} ms)",
- "detectIsVerySlow": "{{detect}} è molto lento ({{speed}} ms)"
+ "detectIsVerySlow": "{{detect}} è molto lento ({{speed}} ms)",
+ "shmTooLow": "L'allocazione /dev/shm ({{total}} MB) dovrebbe essere aumentata almeno a {{min}} MB."
},
"title": "Sistema",
"metrics": "Metriche di sistema",
@@ -174,6 +191,11 @@
"title": "Liberi",
"tips": "Questo valore potrebbe non rappresentare accuratamente lo spazio libero disponibile per Frigate se nel disco sono archiviati altri file oltre alle registrazioni di Frigate. Frigate non tiene traccia dell'utilizzo dello spazio di archiviazione al di fuori delle sue registrazioni."
}
+ },
+ "shm": {
+ "title": "Allocazione SHM (memoria condivisa)",
+ "warning": "La dimensione SHM attuale di {{total}} MB è troppo piccola. Aumentarla ad almeno {{min_shm}} MB.",
+ "readTheDocumentation": "Leggi la documentazione"
}
},
"lastRefreshed": "Ultimo aggiornamento: "
diff --git a/web/public/locales/ja/audio.json b/web/public/locales/ja/audio.json
index 533e387cc1..e049b882ef 100644
--- a/web/public/locales/ja/audio.json
+++ b/web/public/locales/ja/audio.json
@@ -1,5 +1,503 @@
{
- "speech": "スピーチ",
- "car": "自動車",
- "bicycle": "自転車"
+ "speech": "話し声",
+ "car": "車",
+ "bicycle": "自転車",
+ "yell": "叫び声",
+ "motorcycle": "オートバイ",
+ "babbling": "赤ちゃんの喃語",
+ "bellow": "怒鳴り声",
+ "whoop": "歓声",
+ "whispering": "ささやき声",
+ "laughter": "笑い声",
+ "snicker": "くすくす笑い",
+ "crying": "泣き声",
+ "sigh": "ため息",
+ "singing": "歌声",
+ "choir": "合唱",
+ "yodeling": "ヨーデル",
+ "chant": "詠唱",
+ "mantra": "マントラ",
+ "child_singing": "子供の歌声",
+ "synthetic_singing": "合成音声の歌",
+ "rapping": "ラップ",
+ "humming": "ハミング",
+ "groan": "うめき声",
+ "grunt": "うなり声",
+ "whistling": "口笛",
+ "breathing": "呼吸音",
+ "wheeze": "ぜいぜい声",
+ "snoring": "いびき",
+ "gasp": "はっと息をのむ音",
+ "pant": "荒い息",
+ "snort": "鼻を鳴らす音",
+ "cough": "咳",
+ "throat_clearing": "咳払い",
+ "sneeze": "くしゃみ",
+ "sniff": "鼻をすする音",
+ "run": "走る音",
+ "shuffle": "足を引きずる音",
+ "footsteps": "足音",
+ "chewing": "咀嚼音",
+ "biting": "かみつく音",
+ "gargling": "うがい",
+ "stomach_rumble": "お腹の音",
+ "burping": "げっぷ",
+ "hiccup": "しゃっくり",
+ "fart": "おなら",
+ "hands": "手の音",
+ "finger_snapping": "指を鳴らす音",
+ "clapping": "拍手",
+ "heartbeat": "心臓の鼓動",
+ "heart_murmur": "心雑音",
+ "cheering": "歓声",
+ "applause": "拍手喝采",
+ "chatter": "おしゃべり",
+ "crowd": "群衆",
+ "children_playing": "子供の遊ぶ声",
+ "animal": "動物",
+ "pets": "ペット",
+ "dog": "犬",
+ "bark": "樹皮",
+ "yip": "キャンキャン鳴く声",
+ "howl": "遠吠え",
+ "bow_wow": "ワンワン",
+ "growling": "うなり声",
+ "whimper_dog": "犬の鳴き声(クンクン)",
+ "cat": "猫",
+ "purr": "ゴロゴロ音",
+ "meow": "ニャー",
+ "hiss": "シャー",
+ "caterwaul": "猫のけんか声",
+ "livestock": "家畜",
+ "horse": "馬",
+ "clip_clop": "カツカツ音",
+ "neigh": "いななき",
+ "cattle": "牛",
+ "moo": "モー",
+ "cowbell": "カウベル",
+ "pig": "豚",
+ "oink": "ブーブー",
+ "goat": "ヤギ",
+ "bleat": "メェー",
+ "sheep": "羊",
+ "fowl": "家禽",
+ "chicken": "鶏",
+ "cluck": "コッコッ",
+ "cock_a_doodle_doo": "コケコッコー",
+ "turkey": "七面鳥",
+ "gobble": "グルル",
+ "duck": "アヒル",
+ "quack": "ガーガー",
+ "goose": "ガチョウ",
+ "honk": "ホンク",
+ "wild_animals": "野生動物",
+ "roaring_cats": "猛獣の鳴き声",
+ "roar": "咆哮",
+ "bird": "鳥",
+ "chirp": "さえずり",
+ "squawk": "ギャーギャー",
+ "pigeon": "ハト",
+ "coo": "クークー",
+ "crow": "カラス",
+ "caw": "カーカー",
+ "owl": "フクロウ",
+ "hoot": "ホーホー",
+ "flapping_wings": "羽ばたき",
+ "dogs": "犬たち",
+ "rats": "ネズミ",
+ "mouse": "マウス",
+ "patter": "パタパタ音",
+ "insect": "昆虫",
+ "cricket": "コオロギ",
+ "mosquito": "蚊",
+ "fly": "ハエ",
+ "buzz": "ブーン",
+ "frog": "カエル",
+ "croak": "ゲロゲロ",
+ "snake": "ヘビ",
+ "rattle": "ガラガラ音",
+ "whale_vocalization": "クジラの鳴き声",
+ "music": "音楽",
+ "musical_instrument": "楽器",
+ "plucked_string_instrument": "撥弦楽器",
+ "guitar": "ギター",
+ "electric_guitar": "エレキギター",
+ "bass_guitar": "ベースギター",
+ "acoustic_guitar": "アコースティックギター",
+ "steel_guitar": "スティールギター",
+ "tapping": "タッピング",
+ "strum": "ストローク",
+ "banjo": "バンジョー",
+ "sitar": "シタール",
+ "mandolin": "マンドリン",
+ "zither": "ツィター",
+ "ukulele": "ウクレレ",
+ "keyboard": "キーボード",
+ "piano": "ピアノ",
+ "electric_piano": "エレクトリックピアノ",
+ "organ": "オルガン",
+ "electronic_organ": "電子オルガン",
+ "hammond_organ": "ハモンドオルガン",
+ "synthesizer": "シンセサイザー",
+ "sampler": "サンプラー",
+ "harpsichord": "チェンバロ",
+ "percussion": "打楽器",
+ "drum_kit": "ドラムセット",
+ "drum_machine": "ドラムマシン",
+ "drum": "ドラム",
+ "snare_drum": "スネアドラム",
+ "rimshot": "リムショット",
+ "drum_roll": "ドラムロール",
+ "bass_drum": "バスドラム",
+ "timpani": "ティンパニ",
+ "tabla": "タブラ",
+ "cymbal": "シンバル",
+ "hi_hat": "ハイハット",
+ "wood_block": "ウッドブロック",
+ "tambourine": "タンバリン",
+ "maraca": "マラカス",
+ "gong": "ゴング",
+ "tubular_bells": "チューブラーベル",
+ "mallet_percussion": "マレット打楽器",
+ "marimba": "マリンバ",
+ "glockenspiel": "グロッケンシュピール",
+ "vibraphone": "ビブラフォン",
+ "steelpan": "スティールパン",
+ "orchestra": "オーケストラ",
+ "brass_instrument": "金管楽器",
+ "french_horn": "フレンチホルン",
+ "trumpet": "トランペット",
+ "trombone": "トロンボーン",
+ "bowed_string_instrument": "擦弦楽器",
+ "string_section": "弦楽セクション",
+ "violin": "バイオリン",
+ "pizzicato": "ピチカート",
+ "cello": "チェロ",
+ "double_bass": "コントラバス",
+ "wind_instrument": "木管楽器",
+ "flute": "フルート",
+ "saxophone": "サックス",
+ "clarinet": "クラリネット",
+ "harp": "ハープ",
+ "bell": "鐘",
+ "church_bell": "教会の鐘",
+ "jingle_bell": "ジングルベル",
+ "bicycle_bell": "自転車ベル",
+ "tuning_fork": "音叉",
+ "chime": "チャイム",
+ "wind_chime": "風鈴",
+ "harmonica": "ハーモニカ",
+ "accordion": "アコーディオン",
+ "bagpipes": "バグパイプ",
+ "didgeridoo": "ディジュリドゥ",
+ "theremin": "テルミン",
+ "singing_bowl": "シンギングボウル",
+ "scratching": "スクラッチ音",
+ "pop_music": "ポップ音楽",
+ "hip_hop_music": "ヒップホップ音楽",
+ "beatboxing": "ボイスパーカッション",
+ "rock_music": "ロック音楽",
+ "heavy_metal": "ヘビーメタル",
+ "punk_rock": "パンクロック",
+ "grunge": "グランジ",
+ "progressive_rock": "プログレッシブロック",
+ "rock_and_roll": "ロックンロール",
+ "psychedelic_rock": "サイケデリックロック",
+ "rhythm_and_blues": "リズム・アンド・ブルース",
+ "soul_music": "ソウル音楽",
+ "reggae": "レゲエ",
+ "country": "カントリー",
+ "swing_music": "スウィング音楽",
+ "bluegrass": "ブルーグラス",
+ "funk": "ファンク",
+ "folk_music": "フォーク音楽",
+ "middle_eastern_music": "中東音楽",
+ "jazz": "ジャズ",
+ "disco": "ディスコ",
+ "classical_music": "クラシック音楽",
+ "opera": "オペラ",
+ "electronic_music": "電子音楽",
+ "house_music": "ハウス",
+ "techno": "テクノ",
+ "dubstep": "ダブステップ",
+ "drum_and_bass": "ドラムンベース",
+ "electronica": "エレクトロニカ",
+ "electronic_dance_music": "EDM",
+ "ambient_music": "アンビエント",
+ "trance_music": "トランス",
+ "music_of_latin_america": "ラテン音楽",
+ "salsa_music": "サルサ",
+ "flamenco": "フラメンコ",
+ "blues": "ブルース",
+ "music_for_children": "子供向け音楽",
+ "new-age_music": "ニューエイジ音楽",
+ "vocal_music": "声楽",
+ "a_capella": "アカペラ",
+ "music_of_africa": "アフリカ音楽",
+ "afrobeat": "アフロビート",
+ "christian_music": "キリスト教音楽",
+ "gospel_music": "ゴスペル",
+ "music_of_asia": "アジア音楽",
+ "carnatic_music": "カルナータカ音楽",
+ "music_of_bollywood": "ボリウッド音楽",
+ "ska": "スカ",
+ "traditional_music": "伝統音楽",
+ "independent_music": "インディーズ音楽",
+ "song": "歌",
+ "background_music": "BGM",
+ "theme_music": "テーマ音楽",
+ "jingle": "ジングル",
+ "soundtrack_music": "サウンドトラック",
+ "lullaby": "子守唄",
+ "video_game_music": "ゲーム音楽",
+ "christmas_music": "クリスマス音楽",
+ "dance_music": "ダンス音楽",
+ "wedding_music": "結婚式音楽",
+ "happy_music": "明るい音楽",
+ "sad_music": "悲しい音楽",
+ "tender_music": "優しい音楽",
+ "exciting_music": "ワクワクする音楽",
+ "angry_music": "怒りの音楽",
+ "scary_music": "怖い音楽",
+ "wind": "風",
+ "rustling_leaves": "木の葉のざわめき",
+ "wind_noise": "風の音",
+ "thunderstorm": "雷雨",
+ "thunder": "雷鳴",
+ "water": "水",
+ "rain": "雨",
+ "raindrop": "雨粒",
+ "rain_on_surface": "雨が当たる音",
+ "stream": "小川",
+ "waterfall": "滝",
+ "ocean": "海",
+ "waves": "波",
+ "steam": "蒸気",
+ "gurgling": "ゴボゴボ音",
+ "fire": "火",
+ "crackle": "パチパチ音",
+ "vehicle": "車両",
+ "boat": "ボート",
+ "sailboat": "帆船",
+ "rowboat": "手漕ぎボート",
+ "motorboat": "モーターボート",
+ "ship": "船",
+ "motor_vehicle": "自動車",
+ "toot": "クラクション",
+ "car_alarm": "車のアラーム",
+ "power_windows": "パワーウィンドウ",
+ "skidding": "スリップ音",
+ "tire_squeal": "タイヤの悲鳴",
+ "car_passing_by": "車が通る音",
+ "race_car": "レーシングカー",
+ "truck": "トラック",
+ "air_brake": "エアブレーキ",
+ "air_horn": "エアホーン",
+ "reversing_beeps": "バック警告音",
+ "ice_cream_truck": "アイスクリームトラック",
+ "bus": "バス",
+ "emergency_vehicle": "緊急車両",
+ "police_car": "パトカー",
+ "ambulance": "救急車",
+ "fire_engine": "消防車",
+ "traffic_noise": "交通騒音",
+ "rail_transport": "鉄道輸送",
+ "train": "電車",
+ "train_whistle": "汽笛",
+ "train_horn": "列車のホーン",
+ "railroad_car": "鉄道車両",
+ "train_wheels_squealing": "車輪のきしむ音",
+ "subway": "地下鉄",
+ "aircraft": "航空機",
+ "aircraft_engine": "航空機エンジン",
+ "jet_engine": "ジェットエンジン",
+ "propeller": "プロペラ",
+ "helicopter": "ヘリコプター",
+ "fixed-wing_aircraft": "固定翼機",
+ "skateboard": "スケートボード",
+ "engine": "エンジン",
+ "light_engine": "小型エンジン",
+ "dental_drill's_drill": "歯科用ドリル",
+ "lawn_mower": "芝刈り機",
+ "chainsaw": "チェーンソー",
+ "medium_engine": "中型エンジン",
+ "heavy_engine": "大型エンジン",
+ "engine_knocking": "ノッキング音",
+ "engine_starting": "エンジン始動",
+ "idling": "アイドリング",
+ "accelerating": "加速音",
+ "door": "ドア",
+ "doorbell": "ドアベル",
+ "ding-dong": "ピンポン",
+ "sliding_door": "引き戸",
+ "slam": "ドアをバタンと閉める音",
+ "knock": "ノック",
+ "tap": "トントン音",
+ "squeak": "きしみ音",
+ "cupboard_open_or_close": "戸棚の開閉",
+ "drawer_open_or_close": "引き出しの開閉",
+ "dishes": "食器",
+ "cutlery": "カトラリー",
+ "chopping": "包丁で切る音",
+ "frying": "揚げ物の音",
+ "microwave_oven": "電子レンジ",
+ "blender": "ミキサー",
+ "water_tap": "水道の蛇口",
+ "sink": "流し台",
+ "bathtub": "浴槽",
+ "hair_dryer": "ヘアドライヤー",
+ "toilet_flush": "トイレの水流",
+ "toothbrush": "歯ブラシ",
+ "electric_toothbrush": "電動歯ブラシ",
+ "vacuum_cleaner": "掃除機",
+ "zipper": "ファスナー",
+ "keys_jangling": "鍵のジャラジャラ音",
+ "coin": "コイン",
+ "scissors": "はさみ",
+ "electric_shaver": "電気シェーバー",
+ "shuffling_cards": "カードを切る音",
+ "typing": "タイピング音",
+ "typewriter": "タイプライター",
+ "computer_keyboard": "コンピュータキーボード",
+ "writing": "書く音",
+ "alarm": "アラーム",
+ "telephone": "電話",
+ "telephone_bell_ringing": "電話のベル音",
+ "ringtone": "着信音",
+ "telephone_dialing": "ダイヤル音",
+ "dial_tone": "発信音",
+ "busy_signal": "話中音",
+ "alarm_clock": "目覚まし時計",
+ "siren": "サイレン",
+ "civil_defense_siren": "防災サイレン",
+ "buzzer": "ブザー",
+ "smoke_detector": "火災警報器",
+ "fire_alarm": "火災報知器",
+ "foghorn": "霧笛",
+ "whistle": "ホイッスル",
+ "steam_whistle": "蒸気笛",
+ "mechanisms": "機械仕掛け",
+ "ratchet": "ラチェット",
+ "clock": "時計",
+ "tick": "カチカチ音",
+ "tick-tock": "チクタク音",
+ "gears": "歯車",
+ "pulleys": "滑車",
+ "sewing_machine": "ミシン",
+ "mechanical_fan": "扇風機",
+ "air_conditioning": "エアコン",
+ "cash_register": "レジ",
+ "printer": "プリンター",
+ "camera": "カメラ",
+ "single-lens_reflex_camera": "一眼レフカメラ",
+ "tools": "工具",
+ "hammer": "ハンマー",
+ "jackhammer": "削岩機",
+ "sawing": "のこぎり",
+ "filing": "やすりがけ",
+ "sanding": "研磨",
+ "power_tool": "電動工具",
+ "drill": "ドリル",
+ "explosion": "爆発",
+ "gunshot": "銃声",
+ "machine_gun": "機関銃",
+ "fusillade": "一斉射撃",
+ "artillery_fire": "砲撃",
+ "cap_gun": "おもちゃのピストル",
+ "fireworks": "花火",
+ "firecracker": "爆竹",
+ "burst": "破裂音",
+ "eruption": "噴火",
+ "boom": "ドカン",
+ "wood": "木材",
+ "chop": "伐採音",
+ "splinter": "裂ける音",
+ "crack": "割れる音",
+ "glass": "ガラス",
+ "chink": "チリン音",
+ "shatter": "粉々に割れる音",
+ "silence": "静寂",
+ "sound_effect": "効果音",
+ "environmental_noise": "環境音",
+ "static": "ノイズ",
+ "white_noise": "ホワイトノイズ",
+ "pink_noise": "ピンクノイズ",
+ "television": "テレビ",
+ "radio": "ラジオ",
+ "field_recording": "フィールド録音",
+ "scream": "悲鳴",
+ "sodeling": "ソデリング",
+ "chird": "チャープ",
+ "change_ringing": "着信音の変更",
+ "shofar": "ショファー",
+ "liquid": "液体",
+ "splash": "水しぶき",
+ "slosh": "水が揺れる音",
+ "squish": "ぐちゃっという音",
+ "drip": "滴る音",
+ "pour": "注ぐ",
+ "trickle": "ちょろちょろ流れる音",
+ "gush": "勢いよく噴き出す",
+ "fill": "満たす",
+ "spray": "噴霧",
+ "pump": "ポンプ",
+ "stir": "かき混ぜる",
+ "boiling": "沸騰",
+ "sonar": "ソナー",
+ "arrow": "矢",
+ "whoosh": "ヒューという音",
+ "thump": "ドンという音",
+ "thunk": "鈍い衝撃音",
+ "electronic_tuner": "電子チューナー",
+ "effects_unit": "エフェクター",
+ "chorus_effect": "コーラス効果",
+ "basketball_bounce": "バスケットボールのバウンド",
+ "bang": "バンという音",
+ "slap": "平手打ち",
+ "whack": "強打",
+ "smash": "粉砕",
+ "breaking": "破壊",
+ "bouncing": "跳ねる音",
+ "whip": "ムチの音",
+ "flap": "はためく音",
+ "scratch": "引っかく音",
+ "scrape": "こする音",
+ "rub": "こする",
+ "roll": "転がる",
+ "crushing": "押しつぶす",
+ "crumpling": "くしゃくしゃにする音",
+ "tearing": "引き裂く音",
+ "beep": "ビープ音",
+ "ping": "ピン音",
+ "ding": "ディン音",
+ "clang": "金属音",
+ "squeal": "きしむ音",
+ "creak": "きしみ",
+ "rustle": "かさかさ音",
+ "whir": "ブーンという音",
+ "clatter": "ガタガタ音",
+ "sizzle": "ジュージュー音",
+ "clicking": "クリック音",
+ "clickety_clack": "カチカチ音",
+ "rumble": "ゴロゴロ音",
+ "plop": "ポチャン",
+ "hum": "ハム音",
+ "zing": "ジーン音",
+ "boing": "ボイン音",
+ "crunch": "バリバリ音",
+ "sine_wave": "正弦波",
+ "harmonic": "倍音",
+ "chirp_tone": "チャープ音",
+ "pulse": "パルス",
+ "inside": "内側",
+ "outside": "外側",
+ "reverberation": "残響",
+ "echo": "エコー",
+ "noise": "ノイズ",
+ "mains_hum": "電源ハム",
+ "distortion": "歪み",
+ "sidetone": "サイドトーン",
+ "cacophony": "不協和音",
+ "throbbing": "脈動",
+ "vibration": "振動"
}
diff --git a/web/public/locales/ja/common.json b/web/public/locales/ja/common.json
index 44b1d2b514..7cef62aa5c 100644
--- a/web/public/locales/ja/common.json
+++ b/web/public/locales/ja/common.json
@@ -1,7 +1,290 @@
{
"time": {
- "untilForRestart": "Frigateが再起動するまで.",
+ "untilForRestart": "Frigate が再起動するまで。",
"untilRestart": "再起動まで",
- "untilForTime": "{{time}} まで"
+ "untilForTime": "{{time}} まで",
+ "ago": "{{timeAgo}} 前",
+ "justNow": "今",
+ "today": "本日",
+ "yesterday": "昨日",
+ "last7": "7日間",
+ "last14": "14日間",
+ "last30": "30日間",
+ "thisWeek": "今週",
+ "lastWeek": "先週",
+ "thisMonth": "今月",
+ "lastMonth": "先月",
+ "5minutes": "5 分",
+ "10minutes": "10 分",
+ "30minutes": "30 分",
+ "1hour": "1 時間",
+ "12hours": "12 時間",
+ "24hours": "24 時間",
+ "pm": "午後",
+ "am": "午前",
+ "yr": "{{time}}年",
+ "year_other": "{{time}} 年",
+ "mo": "{{time}}ヶ月",
+ "month_other": "{{time}} ヶ月",
+ "d": "{{time}}日",
+ "day_other": "{{time}} 日",
+ "h": "{{time}}時間",
+ "hour_other": "{{time}} 時間",
+ "m": "{{time}}分",
+ "minute_other": "{{time}} 分",
+ "s": "{{time}}秒",
+ "second_other": "{{time}} 秒",
+ "formattedTimestamp": {
+ "12hour": "MMM d, h:mm:ss aaa",
+ "24hour": "MMM d, HH:mm:ss"
+ },
+ "formattedTimestamp2": {
+ "12hour": "MM/dd h:mm:ssa",
+ "24hour": "d MMM HH:mm:ss"
+ },
+ "formattedTimestampHourMinute": {
+ "12hour": "h:mm aaa",
+ "24hour": "HH:mm"
+ },
+ "formattedTimestampHourMinuteSecond": {
+ "12hour": "h:mm:ss aaa",
+ "24hour": "HH:mm:ss"
+ },
+ "formattedTimestampMonthDayHourMinute": {
+ "12hour": "MMM d, h:mm aaa",
+ "24hour": "MMM d, HH:mm"
+ },
+ "formattedTimestampMonthDayYear": {
+ "12hour": "MMM d, yyyy",
+ "24hour": "MMM d, yyyy"
+ },
+ "formattedTimestampMonthDayYearHourMinute": {
+ "12hour": "MMM d yyyy, h:mm aaa",
+ "24hour": "MMM d yyyy, HH:mm"
+ },
+ "formattedTimestampMonthDay": "MMM d",
+ "formattedTimestampFilename": {
+ "12hour": "MM-dd-yy-h-mm-ss-a",
+ "24hour": "MM-dd-yy-HH-mm-ss"
+ },
+ "inProgress": "処理中",
+ "invalidStartTime": "開始時刻が無効です",
+ "invalidEndTime": "終了時刻が無効です"
+ },
+ "readTheDocumentation": "ドキュメントを見る",
+ "unit": {
+ "speed": {
+ "mph": "mph",
+ "kph": "Km/h"
+ },
+ "length": {
+ "feet": "フィート",
+ "meters": "メートル"
+ },
+ "data": {
+ "gbph": "GB/hour",
+ "gbps": "GB/s",
+ "kbph": "kB/hour",
+ "kbps": "kB/s",
+ "mbph": "MB/hour",
+ "mbps": "MB/s"
+ }
+ },
+ "label": {
+ "back": "戻る",
+ "hide": "{{item}} を非表示",
+ "show": "{{item}} を表示",
+ "ID": "ID",
+ "none": "なし",
+ "all": "すべて"
+ },
+ "button": {
+ "apply": "適用",
+ "reset": "リセット",
+ "done": "完了",
+ "enabled": "有効",
+ "enable": "有効にする",
+ "disabled": "無効",
+ "disable": "無効にする",
+ "save": "保存",
+ "saving": "保存中…",
+ "cancel": "キャンセル",
+ "close": "閉じる",
+ "copy": "コピー",
+ "back": "戻る",
+ "history": "履歴",
+ "fullscreen": "全画面",
+ "exitFullscreen": "全画面解除",
+ "pictureInPicture": "ピクチャーインピクチャー",
+ "twoWayTalk": "双方向通話",
+ "cameraAudio": "カメラ音声",
+ "on": "オン",
+ "off": "オフ",
+ "edit": "編集",
+ "copyCoordinates": "座標をコピー",
+ "delete": "削除",
+ "yes": "はい",
+ "no": "いいえ",
+ "download": "ダウンロード",
+ "info": "情報",
+ "suspended": "一時停止",
+ "unsuspended": "再開",
+ "play": "再生",
+ "unselect": "選択解除",
+ "export": "書き出し",
+ "deleteNow": "今すぐ削除",
+ "next": "次へ",
+ "continue": "続行"
+ },
+ "menu": {
+ "system": "システム",
+ "systemMetrics": "システムモニター",
+ "configuration": "設定",
+ "systemLogs": "システムログ",
+ "settings": "設定",
+ "configurationEditor": "設定エディタ",
+ "languages": "言語",
+ "appearance": "外観",
+ "darkMode": {
+ "label": "ダークモード",
+ "light": "ライト",
+ "dark": "ダーク",
+ "withSystem": {
+ "label": "システム設定に従う"
+ }
+ },
+ "withSystem": "システム",
+ "theme": {
+ "label": "テーマ",
+ "blue": "青",
+ "green": "緑",
+ "nord": "ノルド",
+ "red": "赤",
+ "highcontrast": "ハイコントラスト",
+ "default": "デフォルト"
+ },
+ "help": "ヘルプ",
+ "documentation": {
+ "title": "ドキュメント",
+ "label": "Frigate ドキュメント"
+ },
+ "restart": "Frigate を再起動",
+ "live": {
+ "title": "ライブ",
+ "allCameras": "全カメラ",
+ "cameras": {
+ "title": "カメラ",
+ "count_other": "{{count}} 台のカメラ"
+ }
+ },
+ "review": "レビュー",
+ "explore": "ブラウズ",
+ "export": "書き出し",
+ "uiPlayground": "UI テスト環境",
+ "faceLibrary": "顔データベース",
+ "user": {
+ "title": "ユーザー",
+ "account": "アカウント",
+ "current": "現在のユーザー: {{user}}",
+ "anonymous": "未ログイン",
+ "logout": "ログアウト",
+ "setPassword": "パスワードを設定"
+ },
+ "language": {
+ "en": "English (英語)",
+ "es": "Español (スペイン語)",
+ "zhCN": "简体中文 (簡体字中国語)",
+ "hi": "हिन्दी (ヒンディー語)",
+ "fr": "Français (フランス語)",
+ "ar": "العربية (アラビア語)",
+ "pt": "Português (ポルトガル語)",
+ "ptBR": "Português brasileiro (ブラジルポルトガル語)",
+ "ru": "Русский (ロシア語)",
+ "de": "Deutsch (ドイツ語)",
+ "ja": "日本語 (日本語)",
+ "tr": "Türkçe (トルコ語)",
+ "it": "Italiano (イタリア語)",
+ "nl": "Nederlands (オランダ語)",
+ "sv": "Svenska (スウェーデン語)",
+ "cs": "Čeština (チェコ語)",
+ "nb": "Norsk Bokmål (ノルウェー語)",
+ "ko": "한국어 (韓国語)",
+ "vi": "Tiếng Việt (ベトナム語)",
+ "fa": "فارسی (ペルシア語)",
+ "pl": "Polski (ポーランド語)",
+ "uk": "Українська (ウクライナ語)",
+ "he": "עברית (ヘブライ語)",
+ "el": "Ελληνικά (ギリシャ語)",
+ "ro": "Română (ルーマニア語)",
+ "hu": "Magyar (ハンガリー語)",
+ "fi": "Suomi (フィンランド語)",
+ "da": "Dansk (デンマーク語)",
+ "sk": "Slovenčina (スロバキア語)",
+ "yue": "粵語 (広東語)",
+ "th": "ไทย (タイ語)",
+ "ca": "Català (カタルーニャ語)",
+ "sr": "Српски (セルビア語)",
+ "sl": "Slovenščina (スロベニア語)",
+ "lt": "Lietuvių (リトアニア語)",
+ "bg": "Български (ブルガリア語)",
+ "gl": "Galego (ガリシア語)",
+ "id": "Bahasa Indonesia (インドネシア語)",
+ "ur": "اردو (ウルドゥー語)",
+ "withSystem": {
+ "label": "システム設定に従う"
+ }
+ },
+ "classification": "分類"
+ },
+ "toast": {
+ "copyUrlToClipboard": "URLをクリップボードにコピーしました。",
+ "save": {
+ "title": "保存",
+ "error": {
+ "title": "設定変更の保存に失敗しました: {{errorMessage}}",
+ "noMessage": "設定変更の保存に失敗しました"
+ }
+ }
+ },
+ "role": {
+ "title": "役割",
+ "admin": "管理者",
+ "viewer": "閲覧者",
+ "desc": "管理者はFrigate UIのすべての機能に完全にアクセスできます。閲覧者はカメラ、レビュー項目、履歴映像の閲覧に制限されます。"
+ },
+ "pagination": {
+ "label": "ページ移動",
+ "previous": {
+ "title": "前へ",
+ "label": "前のページへ"
+ },
+ "next": {
+ "title": "次へ",
+ "label": "次のページへ"
+ },
+ "more": "さらにページ"
+ },
+ "accessDenied": {
+ "documentTitle": "アクセス拒否 - Frigate",
+ "title": "アクセス拒否",
+ "desc": "このページを表示する権限がありません。"
+ },
+ "notFound": {
+ "documentTitle": "ページが見つかりません - Frigate",
+ "title": "404",
+ "desc": "ページが見つかりません"
+ },
+ "selectItem": "{{item}} を選択",
+ "information": {
+ "pixels": "{{area}}ピクセル"
+ },
+ "list": {
+ "two": "{{0}} と {{1}}",
+ "many": "{{items}}と {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "任意",
+ "internalID": "Frigate が設定で使用する内部 ID です"
}
}
diff --git a/web/public/locales/ja/components/auth.json b/web/public/locales/ja/components/auth.json
index db2e691c09..d767e3282c 100644
--- a/web/public/locales/ja/components/auth.json
+++ b/web/public/locales/ja/components/auth.json
@@ -2,6 +2,15 @@
"form": {
"user": "ユーザー名",
"password": "パスワード",
- "login": "ログイン"
+ "login": "ログイン",
+ "errors": {
+ "usernameRequired": "ユーザー名が必要です",
+ "passwordRequired": "パスワードが必要です",
+ "rateLimit": "リクエスト制限を超えました。後でもう一度お試しください。",
+ "loginFailed": "ログインに失敗しました",
+ "unknownError": "不明なエラー。ログを確認してください。",
+ "webUnknownError": "不明なエラー。コンソールログを確認してください。"
+ },
+ "firstTimeLogin": "初めてログインしますか?認証情報は Frigate のログに表示されています。"
}
}
diff --git a/web/public/locales/ja/components/camera.json b/web/public/locales/ja/components/camera.json
index e2411e813e..4491d0a917 100644
--- a/web/public/locales/ja/components/camera.json
+++ b/web/public/locales/ja/components/camera.json
@@ -2,6 +2,85 @@
"group": {
"label": "カメラグループ",
"add": "カメラグループを追加",
- "edit": "カメラグループを編集"
+ "edit": "カメラグループを編集",
+ "delete": {
+ "label": "カメラグループを削除",
+ "confirm": {
+ "title": "削除の確認",
+ "desc": "カメラグループ {{name}} を削除してもよろしいですか?"
+ }
+ },
+ "name": {
+ "label": "名前",
+ "placeholder": "名前を入力…",
+ "errorMessage": {
+ "mustLeastCharacters": "カメラグループ名は2文字以上である必要があります。",
+ "exists": "このカメラグループ名は既に存在します。",
+ "nameMustNotPeriod": "カメラグループ名にピリオドは使用できません。",
+ "invalid": "無効なカメラグループ名です。"
+ }
+ },
+ "cameras": {
+ "label": "カメラ",
+ "desc": "このグループに含めるカメラを選択します。"
+ },
+ "icon": "アイコン",
+ "success": "カメラグループ({{name}})を保存しました。",
+ "camera": {
+ "birdseye": "バードアイ",
+ "setting": {
+ "label": "カメラのストリーミング設定",
+ "title": "{{cameraName}} のストリーミング設定",
+ "desc": "このカメラグループのダッシュボードでのライブストリーミングオプションを変更します。これらの設定はデバイス/ブラウザごとに異なります。",
+ "audioIsAvailable": "このストリームでは音声が利用可能です",
+ "audioIsUnavailable": "このストリームでは音声は利用できません",
+ "audio": {
+ "tips": {
+ "title": "このストリームで音声を使用するには、カメラから音声が出力され、go2rtc で設定されている必要があります。"
+ }
+ },
+ "stream": "ストリーム",
+ "placeholder": "ストリームを選択",
+ "streamMethod": {
+ "label": "ストリーミング方式",
+ "placeholder": "方式を選択",
+ "method": {
+ "noStreaming": {
+ "label": "ストリーミングなし",
+ "desc": "カメラ画像は1分に1回のみ更新され、ライブストリーミングは行われません。"
+ },
+ "smartStreaming": {
+ "label": "スマートストリーミング(推奨)",
+ "desc": "検知可能なアクティビティがない場合は、帯域とリソース節約のため画像を1分に1回更新します。アクティビティが検知されると、画像はシームレスにライブストリームへ切り替わります。"
+ },
+ "continuousStreaming": {
+ "label": "常時ストリーミング",
+ "desc": {
+ "title": "ダッシュボードで表示されている間は、アクティビティが検知されていなくても常にライブストリームになります。",
+ "warning": "常時ストリーミングは高い帯域幅使用やパフォーマンス問題の原因となる場合があります。注意して使用してください。"
+ }
+ }
+ }
+ },
+ "compatibilityMode": {
+ "label": "互換モード",
+ "desc": "このオプションは、ライブストリームに色のアーティファクトが表示され、画像右側に斜めの線が出る場合にのみ有効にしてください。"
+ }
+ }
+ }
+ },
+ "debug": {
+ "options": {
+ "label": "設定",
+ "title": "オプション",
+ "showOptions": "オプションを表示",
+ "hideOptions": "オプションを非表示"
+ },
+ "boundingBox": "バウンディングボックス",
+ "timestamp": "タイムスタンプ",
+ "zones": "ゾーン",
+ "mask": "マスク",
+ "motion": "モーション",
+ "regions": "領域"
}
}
diff --git a/web/public/locales/ja/components/dialog.json b/web/public/locales/ja/components/dialog.json
index 9b0a3b3bcc..6294745483 100644
--- a/web/public/locales/ja/components/dialog.json
+++ b/web/public/locales/ja/components/dialog.json
@@ -1,9 +1,121 @@
{
"restart": {
- "title": "Frigateを再起動しますか?",
+ "title": "Frigate を再起動してもよろしいですか?",
"restarting": {
- "title": "Frigateは再起動中です"
+ "title": "Frigate を再起動中",
+ "content": "このページは {{countdown}} 秒後に再読み込みされます。",
+ "button": "今すぐ強制再読み込み"
},
"button": "再起動"
+ },
+ "explore": {
+ "plus": {
+ "submitToPlus": {
+ "label": "Frigate+ に送信",
+ "desc": "回避したい場所でのオブジェクトは誤検出ではありません。誤検出として送信するとモデルが混乱します。"
+ },
+ "review": {
+ "question": {
+ "label": "Frigate Plus 用ラベルの確認",
+ "ask_a": "このオブジェクトは {{label}} ですか?",
+ "ask_an": "このオブジェクトは {{label}} ですか?",
+ "ask_full": "このオブジェクトは {{untranslatedLabel}}({{translatedLabel}})ですか?"
+ },
+ "state": {
+ "submitted": "送信済み"
+ }
+ }
+ },
+ "video": {
+ "viewInHistory": "履歴で表示"
+ }
+ },
+ "export": {
+ "time": {
+ "fromTimeline": "タイムラインから選択",
+ "lastHour_other": "直近{{count}}時間",
+ "custom": "カスタム",
+ "start": {
+ "title": "開始時刻",
+ "label": "開始時刻を選択"
+ },
+ "end": {
+ "title": "終了時刻",
+ "label": "終了時刻を選択"
+ }
+ },
+ "name": {
+ "placeholder": "書き出しに名前を付ける"
+ },
+ "select": "選択",
+ "export": "書き出し",
+ "selectOrExport": "選択または書き出し",
+ "toast": {
+ "success": "書き出しを開始しました。出力ページでファイルを確認できます。",
+ "error": {
+ "failed": "書き出しの開始に失敗しました: {{error}}",
+ "endTimeMustAfterStartTime": "終了時間は開始時間より後である必要があります",
+ "noVaildTimeSelected": "有効な時間範囲が選択されていません"
+ },
+ "view": "表示"
+ },
+ "fromTimeline": {
+ "saveExport": "書き出しを保存",
+ "previewExport": "書き出しをプレビュー"
+ }
+ },
+ "streaming": {
+ "label": "ストリーム",
+ "restreaming": {
+ "disabled": "このカメラではリストリーミングは有効になっていません。",
+ "desc": {
+ "title": "このカメラで追加のライブビューと音声を利用するには go2rtc をセットアップしてください。"
+ }
+ },
+ "showStats": {
+ "label": "ストリーム統計を表示",
+ "desc": "有効にすると、カメラ映像に統計情報をオーバーレイ表示します。"
+ },
+ "debugView": "デバッグビュー"
+ },
+ "search": {
+ "saveSearch": {
+ "label": "検索を保存",
+ "desc": "この保存済み検索の名前を入力してください。",
+ "placeholder": "検索名を入力",
+ "overwrite": "{{searchName}} は既に存在します。保存すると上書きされます。",
+ "success": "検索({{searchName}})を保存しました。",
+ "button": {
+ "save": {
+ "label": "この検索を保存"
+ }
+ }
+ }
+ },
+ "recording": {
+ "confirmDelete": {
+ "title": "削除の確認",
+ "desc": {
+ "selected": "このレビュー項目に関連付けられた録画動画をすべて削除してもよろしいですか?
Sporede objekter uten et øyeblikksbilde kan ikke sendes til Frigate+."
+ "tips": "Du må først filtrere på sporede objekter som har et stillbilde.
Sporede objekter uten et stillbilde kan ikke sendes til Frigate+."
},
"label": "Funksjoner",
- "hasSnapshot": "Har et øyeblikksbilde"
+ "hasSnapshot": "Har et stillbilde"
},
"sort": {
"label": "Sorter",
"dateAsc": "Dato (Stigende)",
"dateDesc": "Dato (Synkende)",
- "scoreAsc": "Objektpoengsum (Stigende)",
- "scoreDesc": "Objektpoengsum (Synkende)",
+ "scoreAsc": "Objektscore (Stigende)",
+ "scoreDesc": "Objektscore (Synkende)",
"speedAsc": "Estimert hastighet (Stigende)",
"speedDesc": "Estimert hastighet (Synkende)",
"relevance": "Relevans"
@@ -39,7 +39,7 @@
"title": "Innstillinger",
"defaultView": {
"title": "Standard visning",
- "desc": "Når ingen filtre er valgt, vis et sammendrag av de nyeste sporede objektene per merkelapp, eller vis et ufiltrert rutenett.",
+ "desc": "Når ingen filtre er valgt, vis et sammendrag av de nyeste sporede objektene per etikett, eller vis et ufiltrert rutenett.",
"summary": "Sammendrag",
"unfilteredGrid": "Ufiltrert rutenett"
},
@@ -69,7 +69,7 @@
},
"trackedObjectDelete": {
"title": "Bekreft sletting",
- "desc": "Sletting av disse {{objectLength}} sporede objektene fjerner øyeblikksbildet, eventuelle lagrede vektorrepresentasjoner og tilhørende objekt livssyklusoppføringer. Opptak av disse sporede objektene i Historikkvisning vil IKKE bli slettet.
Er du sikker på at du vil fortsette?
Hold Shift-tasten for å unngå denne dialogboksen i fremtiden.",
+ "desc": "Sletting av disse {{objectLength}} sporede objektene fjerner stillbildet, eventuelle lagrede vektorrepresentasjoner og tilhørende objekt livssyklusoppføringer. Opptak av disse sporede objektene i Historikkvisning vil IKKE bli slettet.
Er du sikker på at du vil fortsette?
Hold Shift-tasten for å unngå denne dialogboksen i fremtiden.",
"toast": {
"success": "Sporede objekter ble slettet.",
"error": "Kunne ikke slette sporede objekter: {{errorMessage}}"
@@ -84,7 +84,9 @@
"title": "Gjenkjente kjennemerker",
"loadFailed": "Kunne ikke laste inn gjenkjente kjennemerker.",
"loading": "Laster inn gjenkjente kjennemerker…",
- "placeholder": "Skriv for å søke etter kjennemerker…"
+ "placeholder": "Skriv for å søke etter kjennemerker…",
+ "selectAll": "Velg alle",
+ "clearAll": "Fjern alle"
},
"dates": {
"all": {
@@ -99,10 +101,10 @@
},
"timeRange": "Tidsrom",
"subLabels": {
- "label": "Under-Merkelapper",
- "all": "Alle under-Merkelapper"
+ "label": "Underetiketter",
+ "all": "Alle underetiketter"
},
- "score": "Poengsum",
+ "score": "Score",
"estimatedSpeed": "Estimert hastighet ({{unit}})",
"cameras": {
"all": {
@@ -123,5 +125,17 @@
"title": "Alle soner",
"short": "Soner"
}
+ },
+ "classes": {
+ "label": "Klasser",
+ "all": {
+ "title": "Alle klasser"
+ },
+ "count_one": "{{count}} Klasse",
+ "count_other": "{{count}} Klasser"
+ },
+ "attributes": {
+ "label": "Klassifiseringsattributter",
+ "all": "Alle attributter"
}
}
diff --git a/web/public/locales/nb-NO/components/player.json b/web/public/locales/nb-NO/components/player.json
index 5396af3676..b08459cfcf 100644
--- a/web/public/locales/nb-NO/components/player.json
+++ b/web/public/locales/nb-NO/components/player.json
@@ -37,7 +37,7 @@
"livePlayerRequiredIOSVersion": "iOS 17.1 eller høyere kreves for denne typen direkte-strømming.",
"streamOffline": {
"title": "Strømmen er frakoblet",
- "desc": "Ingen bilder er mottatt på {{cameraName}} detekt strømmen, sjekk feilloggene"
+ "desc": "Ingen bilder er mottatt på {{cameraName}} detekt-strømmen, sjekk feilloggene"
},
"cameraDisabled": "Kameraet er deaktivert",
"toast": {
diff --git a/web/public/locales/nb-NO/objects.json b/web/public/locales/nb-NO/objects.json
index d292b63b8c..5c7c5edd24 100644
--- a/web/public/locales/nb-NO/objects.json
+++ b/web/public/locales/nb-NO/objects.json
@@ -101,7 +101,7 @@
"raccoon": "Vaskebjørn",
"robot_lawnmower": "Robotgressklipper",
"waste_bin": "Avfallsbeholder",
- "on_demand": "På forespørsel",
+ "on_demand": "Manuelt opptak",
"face": "Ansikt",
"license_plate": "Kjennemerke",
"package": "Pakke",
diff --git a/web/public/locales/nb-NO/views/classificationModel.json b/web/public/locales/nb-NO/views/classificationModel.json
new file mode 100644
index 0000000000..e7ee73f088
--- /dev/null
+++ b/web/public/locales/nb-NO/views/classificationModel.json
@@ -0,0 +1,185 @@
+{
+ "documentTitle": "Klassifiseringsmodeller - Frigate",
+ "button": {
+ "deleteClassificationAttempts": "Slett klassifiseringsbilder",
+ "renameCategory": "Omdøp klasse",
+ "deleteCategory": "Slett klasse",
+ "deleteImages": "Slett bilder",
+ "trainModel": "Tren modell",
+ "addClassification": "Legg til klassifisering",
+ "deleteModels": "Slett modeller",
+ "editModel": "Rediger modell"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Klasse slettet",
+ "deletedImage": "Bilder slettet",
+ "categorizedImage": "Klassifiserte bildet",
+ "trainedModel": "Modellen ble trent.",
+ "trainingModel": "Modelltrening startet.",
+ "deletedModel_one": "{{count}} modell ble slettet",
+ "deletedModel_other": "{{count}} modeller ble slettet",
+ "updatedModel": "Modellkonfigurasjonen ble oppdatert",
+ "renamedCategory": "Klassen ble omdøpt til {{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "Kunne ikke slette: {{errorMessage}}",
+ "deleteCategoryFailed": "Kunne ikke slette klasse: {{errorMessage}}",
+ "categorizeFailed": "Kunne ikke klassifisere bilde: {{errorMessage}}",
+ "trainingFailed": "Modelltrening mislyktes. Sjekk Frigate-loggene for detaljer.",
+ "deleteModelFailed": "Kunne ikke slette modell: {{errorMessage}}",
+ "trainingFailedToStart": "Kunne ikke starte modelltrening: {{errorMessage}}",
+ "updateModelFailed": "Kunne ikke oppdatere modell: {{errorMessage}}",
+ "renameCategoryFailed": "Kunne ikke omdøpe klasse: {{errorMessage}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Slett klasse",
+ "desc": "Er du sikker på at du vil slette klassen {{name}}? Dette vil permanent slette alle tilknyttede bilder og kreve at modellen trenes på nytt.",
+ "minClassesTitle": "Kan ikke slette klasse",
+ "minClassesDesc": "En klassifiseringsmodell må ha minst 2 klasser. Legg til en ny klasse før du sletter denne."
+ },
+ "deleteDatasetImages": {
+ "title": "Slett datasettbilder",
+ "desc": "Er du sikker på at du vil slette {{count}} bilder fra {{dataset}}? Denne handlingen kan ikke angres og krever at modellen trenes på nytt."
+ },
+ "deleteTrainImages": {
+ "title": "Slett treningsbilder",
+ "desc": "Er du sikker på at du vil slette {{count}} bilder? Denne handlingen kan ikke angres."
+ },
+ "renameCategory": {
+ "title": "Omdøp klasse",
+ "desc": "Skriv inn et nytt navn for {{name}}. Du må trene modellen på nytt for at navneendringen skal tre i kraft."
+ },
+ "description": {
+ "invalidName": "Ugyldig navn. Navn kan kun inneholde bokstaver, tall, mellomrom, apostrof, understrek og bindestrek."
+ },
+ "train": {
+ "title": "Nylige klassifiseringer",
+ "aria": "Velg nylige klassifiseringer",
+ "titleShort": "Nylige"
+ },
+ "categories": "Klasser",
+ "createCategory": {
+ "new": "Opprett ny klasse"
+ },
+ "categorizeImageAs": "Klassifiser bilde som:",
+ "categorizeImage": "Klassifiser bilde",
+ "noModels": {
+ "object": {
+ "title": "Ingen objektklassifiseringsmodeller",
+ "description": "Opprett en tilpasset modell for å klassifisere oppdagede objekter.",
+ "buttonText": "Opprett objektmodell"
+ },
+ "state": {
+ "title": "Ingen tilstandsklassifiseringsmodeller",
+ "description": "Opprett en tilpasset modell for å overvåke og klassifisere tilstandsendringer i spesifikke kamerasoner.",
+ "buttonText": "Opprett tilstandsmodell"
+ }
+ },
+ "wizard": {
+ "title": "Opprett ny klassifisering",
+ "steps": {
+ "nameAndDefine": "Navn og definér",
+ "stateArea": "Tilstandsområde",
+ "chooseExamples": "Velg eksempler"
+ },
+ "step1": {
+ "description": "Tilstandsmodeller overvåker faste kamerasoner for endringer (f.eks. dør åpen/lukket). Objektmodeller legger til klassifiseringer for oppdagede objekter (f.eks. kjente dyr, bud, osv.).",
+ "name": "Navn",
+ "namePlaceholder": "Skriv inn modellnavn...",
+ "type": "Type",
+ "typeState": "Tilstand",
+ "typeObject": "Objekt",
+ "objectLabel": "Objektetikett",
+ "objectLabelPlaceholder": "Velg objekttype...",
+ "classificationType": "Klassifiseringstype",
+ "classificationTypeTip": "Lær om klassifiseringstyper",
+ "classificationTypeDesc": "Underetiketter legger til ekstra tekst på objektetiketten (f.eks. 'Person: Posten'). Attributter er søkbare metadata som lagres separat i objektets metadata.",
+ "classificationSubLabel": "Underetikett",
+ "classificationAttribute": "Attributt",
+ "classes": "Klasser",
+ "classesTip": "Lær om klasser",
+ "classesStateDesc": "Definer de ulike tilstandene kamerasonen kan være i. For eksempel: 'åpen' og 'lukket' for en garasjeport.",
+ "classesObjectDesc": "Definer klassene du vil klassifisere oppdagede objekter i. For eksempel: 'bud', 'beboer', 'fremmed' for personklassifisering.",
+ "classPlaceholder": "Skriv inn klassenavn...",
+ "errors": {
+ "nameRequired": "Modellnavn er påkrevd",
+ "nameLength": "Modellnavn må være på 64 tegn eller mindre",
+ "nameOnlyNumbers": "Modellnavn kan ikke bare inneholde tall",
+ "classRequired": "Minst én klasse er påkrevd",
+ "classesUnique": "Klassenavn må være unike",
+ "stateRequiresTwoClasses": "Tilstandsmodeller krever minst 2 klasser",
+ "objectLabelRequired": "Velg en objektetikett",
+ "objectTypeRequired": "Velg en klassifiseringstype",
+ "noneNotAllowed": "Klassen 'ingen' er ikke tillatt"
+ },
+ "states": "Tilstander"
+ },
+ "step2": {
+ "description": "Velg kameraer og definer området som skal overvåkes for hvert kamera. Modellen vil klassifisere tilstanden til disse områdene.",
+ "cameras": "Kameraer",
+ "selectCamera": "Velg kamera",
+ "noCameras": "Klikk + for å legge til kameraer",
+ "selectCameraPrompt": "Velg et kamera fra listen for å definere overvåkingsområdet"
+ },
+ "step3": {
+ "selectImagesPrompt": "Velg alle bilder med: {{className}}",
+ "selectImagesDescription": "Klikk på bilder for å velge dem. Klikk Fortsett når du er ferdig med denne klassen.",
+ "generating": {
+ "title": "Genererer eksempelbilder",
+ "description": "Frigate henter representative bilder fra opptakene dine. Dette kan ta litt tid..."
+ },
+ "training": {
+ "title": "Trener modell",
+ "description": "Modellen din trenes i bakgrunnen. Lukk dette vinduet, så starter modellen når treningen er ferdig."
+ },
+ "retryGenerate": "Prøv å generere på nytt",
+ "noImages": "Ingen eksempelbilder generert",
+ "classifying": "Klassifiserer og trener...",
+ "trainingStarted": "Trening startet",
+ "errors": {
+ "noCameras": "Ingen kameraer konfigurert",
+ "noObjectLabel": "Ingen objektetikett valgt",
+ "generateFailed": "Kunne ikke generere eksempler: {{error}}",
+ "generationFailed": "Generering mislyktes. Prøv igjen.",
+ "classifyFailed": "Kunne ikke klassifisere bilder: {{error}}"
+ },
+ "generateSuccess": "Eksempelbilder ble generert",
+ "allImagesRequired_one": "Vennligst klassifiser alle bildene. {{count}} bilde gjenstår.",
+ "allImagesRequired_other": "Vennligst klassifiser alle bildene. {{count}} bilder gjenstår.",
+ "modelCreated": "Modellen ble opprettet. Bruk visningen Nylige klassifiseringer for å legge til bilder for manglende tilstander, og tren deretter modellen.",
+ "missingStatesWarning": {
+ "title": "Manglende tilstandseksempler",
+ "description": "Det anbefales å velge eksempler for alle tilstander for å oppnå best mulig resultat. Du kan fortsette uten å velge alle tilstander, men modellen vil ikke bli trent før alle tilstander har bilder. Etter at du har gått videre, bruk visningen Nylige klassifiseringer for å klassifisere bilder for de manglende tilstandene, og tren deretter modellen."
+ }
+ }
+ },
+ "deleteModel": {
+ "title": "Slett klassifiseringsmodell",
+ "single": "Er du sikker på at du vil slette {{name}}? Dette vil permanent slette alle tilknyttede data, inkludert bilder og treningsdata. Denne handlingen kan ikke angres.",
+ "desc": "Er du sikker på at du vil slette {{count}} modell(er)? Dette vil permanent slette alle tilknyttede data, inkludert bilder og treningsdata. Denne handlingen kan ikke angres."
+ },
+ "menu": {
+ "objects": "Objekter",
+ "states": "Tilstander"
+ },
+ "details": {
+ "scoreInfo": "Score representerer gjennomsnittlig klassifiseringskonfidens på tvers av alle deteksjoner av dette objektet.",
+ "none": "Ingen",
+ "unknown": "Ukjent"
+ },
+ "tooltip": {
+ "trainingInProgress": "Modellen trenes nå",
+ "noNewImages": "Ingen nye bilder å trene på. Klassifiser flere bilder i datasettet først.",
+ "noChanges": "Ingen endringer i datasettet siden forrige trening.",
+ "modelNotReady": "Modellen er ikke klar til å trenes"
+ },
+ "edit": {
+ "title": "Rediger klassifiseringsmodell",
+ "descriptionState": "Rediger klassene for denne tilstandsklassifiseringsmodellen. Endringer vil kreve at modellen trenes på nytt.",
+ "descriptionObject": "Rediger objekttypen og klassifiseringstypen for denne objektklassifiseringsmodellen.",
+ "stateClassesInfo": "Merk: Endring av tilstandsklasser krever at modellen trenes på nytt med de oppdaterte klassene."
+ },
+ "none": "Ingen"
+}
diff --git a/web/public/locales/nb-NO/views/configEditor.json b/web/public/locales/nb-NO/views/configEditor.json
index 09f0b1c692..c0c9253faf 100644
--- a/web/public/locales/nb-NO/views/configEditor.json
+++ b/web/public/locales/nb-NO/views/configEditor.json
@@ -12,5 +12,7 @@
"copyConfig": "Kopier konfigurasjonen",
"saveAndRestart": "Lagre og omstart",
"saveOnly": "Kun lagre",
- "confirm": "Avslutt uten å lagre?"
+ "confirm": "Avslutt uten å lagre?",
+ "safeConfigEditor": "Konfigurasjonsredigering (Sikker modus)",
+ "safeModeDescription": "Frigate er i sikker modus grunnet en feil i validering av konfigurasjonen."
}
diff --git a/web/public/locales/nb-NO/views/events.json b/web/public/locales/nb-NO/views/events.json
index 70d24e20e0..8c54ca7a2a 100644
--- a/web/public/locales/nb-NO/views/events.json
+++ b/web/public/locales/nb-NO/views/events.json
@@ -23,7 +23,7 @@
},
"allCameras": "Alle kameraer",
"timeline.aria": "Velg tidslinje",
- "documentTitle": "Inspiser - Frigate",
+ "documentTitle": "Inspeksjon - Frigate",
"recordings": {
"documentTitle": "Opptak - Frigate"
},
@@ -34,5 +34,30 @@
"markTheseItemsAsReviewed": "Merk disse elementene som inspiserte",
"selected_one": "{{count}} valgt",
"selected_other": "{{count}} valgt",
- "detected": "detektert"
+ "detected": "detektert",
+ "suspiciousActivity": "Mistenkelig aktivitet",
+ "threateningActivity": "Truende aktivitet",
+ "detail": {
+ "noDataFound": "Ingen detaljer å inspisere",
+ "aria": "Vis/skjul detaljvisning",
+ "trackedObject_one": "{{count}} objekt",
+ "trackedObject_other": "{{count}} objekter",
+ "noObjectDetailData": "Ingen detaljdata for objektet tilgjengelig.",
+ "label": "Detalj",
+ "settings": "Detaljvisning – innstillinger",
+ "alwaysExpandActive": {
+ "desc": "Utvid alltid objektdetaljene for det aktive gjennomgangselementet når tilgjengelig.",
+ "title": "Utvid alltid for aktive"
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Sporingspunkt",
+ "clickToSeek": "Klikk for å gå til dette tidspunktet"
+ },
+ "zoomIn": "Zoom inn",
+ "zoomOut": "Zoom ut",
+ "normalActivity": "Normal",
+ "needsReview": "Trenger inspeksjon",
+ "securityConcern": "Sikkerhetsrisiko",
+ "select_all": "Alle"
}
diff --git a/web/public/locales/nb-NO/views/explore.json b/web/public/locales/nb-NO/views/explore.json
index e95dbfda2e..c0d3956036 100644
--- a/web/public/locales/nb-NO/views/explore.json
+++ b/web/public/locales/nb-NO/views/explore.json
@@ -19,7 +19,7 @@
"visionModel": "Visjonsmodell",
"visionModelFeatureExtractor": "Funksjonsekstraktor for visjonsmodell",
"textModel": "Tekstmodell",
- "textTokenizer": "Tekst symbolbygger"
+ "textTokenizer": "Tekst-tokeniserer"
},
"context": "Frigate laster ned de nødvendige vektorrepresentasjonsmodellene for å støtte funksjonen for semantisk søk. Dette kan ta flere minutter, avhengig av hastigheten på nettverksforbindelsen din.",
"tips": {
@@ -65,7 +65,7 @@
"millisecondsToOffset": "Millisekunder å forskyve annoteringsdata. Standard: 0",
"tips": "TIPS: Tenk deg et hendelsesklipp med en person som går fra venstre til høyre. Hvis den omsluttende boksen i hendelsestidslinjen konsekvent er til venstre for personen, bør verdien reduseres. Tilsvarende, hvis en person går fra venstre til høyre og den omsluttende boksen konsekvent er foran personen, bør verdien økes.",
"toast": {
- "success": "Annoteringsforskyvning for {{camera}} er lagret i konfigurasjonsfilen. Start Frigate på nytt for å bruke endringene dine."
+ "success": "Annoteringsforskyvning for {{camera}} er lagret i konfigurasjonsfilen. Start Frigate på nytt for å aktivere endringene dine."
}
}
},
@@ -87,26 +87,30 @@
},
"toast": {
"success": {
- "updatedSublabel": "Under-merkelapp oppdatert med suksess.",
+ "updatedSublabel": "Underetikett ble oppdatert.",
"updatedLPR": "Vellykket oppdatering av kjennemerke.",
- "regenerate": "En ny beskrivelse har blitt anmodet fra {{provider}}. Avhengig av hastigheten til leverandøren din, kan den nye beskrivelsen ta litt tid å regenerere."
+ "regenerate": "En ny beskrivelse har blitt anmodet fra {{provider}}. Avhengig av hastigheten til leverandøren din, kan den nye beskrivelsen ta litt tid å regenerere.",
+ "audioTranscription": "Lydtranskripsjon ble forespurt. Avhengig av ytelsen på din Frigate server kan transkripsjonen ta noe tid å fullføre.",
+ "updatedAttributes": "Attributter ble oppdatert."
},
"error": {
"regenerate": "Feil ved anrop til {{provider}} for en ny beskrivelse: {{errorMessage}}",
"updatedLPRFailed": "Oppdatering av kjennemerke feilet: {{errorMessage}}",
- "updatedSublabelFailed": "Feil ved oppdatering av under-merkelapp: {{errorMessage}}"
+ "updatedSublabelFailed": "Feil ved oppdatering av underetikett: {{errorMessage}}",
+ "audioTranscription": "Forespørsel om lydtranskripsjon feilet: {{errorMessage}}",
+ "updatedAttributesFailed": "Kunne ikke oppdatere attributter: {{errorMessage}}"
}
},
"desc": "Detaljer for inspeksjonselement",
"tips": {
"mismatch_one": "{{count}} utilgjengelig objekt ble oppdaget og inkludert i dette inspeksjonselementet. Disse objektene kvalifiserte ikke som et varsel eller deteksjon, eller har allerede blitt ryddet opp/slettet.",
"mismatch_other": "{{count}} utilgjengelige objekter ble oppdaget og inkludert i dette inspeksjonselementet. Disse objektene kvalifiserte ikke som et varsel eller deteksjon, eller har allerede blitt ryddet opp/slettet.",
- "hasMissingObjects": "Juster konfigurasjonen hvis du vil at Frigate skal lagre sporede objekter for følgende merkelapper: {{objects}}"
+ "hasMissingObjects": "Juster konfigurasjonen hvis du vil at Frigate skal lagre sporede objekter for følgende etiketter: {{objects}}"
}
},
"topScore": {
- "info": "Den høyeste poengsummen er den høyeste medianverdi for det sporede objektet, så denne kan avvike fra poengsummen som vises på miniatyrbildet for søkeresultatet.",
- "label": "Høyeste poengsum"
+ "info": "Toppscoren er den høyeste medianverdien for det sporede objektet, så denne kan avvike fra scoren som vises på miniatyrbildet i søkeresultatet.",
+ "label": "Toppscore"
},
"estimatedSpeed": "Estimert hastighet",
"objects": "Objekter",
@@ -124,10 +128,10 @@
},
"regenerateFromThumbnails": "Regenerer fra miniatyrbilder",
"tips": {
- "descriptionSaved": "Beskrivelse lagret med suksess",
+ "descriptionSaved": "Beskrivelsen ble lagret",
"saveDescriptionFailed": "Feil ved lagring av beskrivelse: {{errorMessage}}"
},
- "label": "Merkelapp",
+ "label": "Etikett",
"editLPR": {
"title": "Rediger kjennemerke",
"descNoLabel": "Skriv inn et nytt kjennemerke for dette sporede objekt",
@@ -138,15 +142,23 @@
"zones": "Soner",
"timestamp": "Tidsstempel",
"expandRegenerationMenu": "Utvid regenereringsmenyen",
- "regenerateFromSnapshot": "Regenerer fra øyeblikksbilde",
+ "regenerateFromSnapshot": "Regenerer fra stillbilde",
"editSubLabel": {
- "title": "Rediger under-merkelapp",
- "desc": "Angi en ny under-merkelapp for denne {{label}}",
- "descNoLabel": "Angi en ny under-merkelapp for dette sporede objektet"
+ "title": "Rediger underetikett",
+ "desc": "Angi en ny underetikett for \"{{label}}\"",
+ "descNoLabel": "Angi en ny underetikett for dette sporede objektet"
},
"snapshotScore": {
- "label": "Øyeblikksbilde poengsum"
- }
+ "label": "Stillbilde score"
+ },
+ "score": {
+ "label": "Score"
+ },
+ "editAttributes": {
+ "title": "Rediger attributter",
+ "desc": "Velg klassifiseringsattributter for denne {{label}}"
+ },
+ "attributes": "Klassifiseringsattributter"
},
"itemMenu": {
"viewInHistory": {
@@ -158,8 +170,8 @@
"label": "Last ned video"
},
"downloadSnapshot": {
- "label": "Last ned øyeblikksbilde",
- "aria": "Last ned øyeblikksbilde"
+ "label": "Last ned stillbilde",
+ "aria": "Last ned stillbilde"
},
"viewObjectLifecycle": {
"label": "Vis objektets livssyklus",
@@ -175,33 +187,114 @@
"submitToPlus": {
"label": "Send til Frigate+",
"aria": "Send til Frigate Plus"
+ },
+ "addTrigger": {
+ "label": "Legg til utløser",
+ "aria": "Legg til en utløser for dette sporede objektet"
+ },
+ "audioTranscription": {
+ "label": "Transkriber",
+ "aria": "Forespør lydtranskripsjon"
+ },
+ "showObjectDetails": {
+ "label": "Vis objektets sti"
+ },
+ "hideObjectDetails": {
+ "label": "Skjul objektets sti"
+ },
+ "viewTrackingDetails": {
+ "label": "Vis sporingsdetaljer",
+ "aria": "Vis sporingsdetaljene"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Last ned rent stillbilde",
+ "aria": "Last ned stillbilde uten markeringer"
}
},
"searchResult": {
"deleteTrackedObject": {
"toast": {
"error": "Feil ved sletting av sporet objekt: {{errorMessage}}",
- "success": "Sporet objekt ble slettet med suksess."
+ "success": "Sporet objekt ble slettet."
}
},
- "tooltip": "Samsvarer {{type}} til {{confidence}}%"
+ "tooltip": "Samsvarer {{type}} til {{confidence}}%",
+ "previousTrackedObject": "Forrige sporede objekt",
+ "nextTrackedObject": "Neste sporede objekt"
},
"trackedObjectDetails": "Detaljer om sporet objekt",
"type": {
"details": "detaljer",
- "snapshot": "øyeblikksbilde",
+ "snapshot": "stillbilde",
"video": "video",
- "object_lifecycle": "objektets livssyklus"
+ "object_lifecycle": "objektets livssyklus",
+ "thumbnail": "miniatyrbilde",
+ "tracking_details": "sporingsdetaljer"
},
"dialog": {
"confirmDelete": {
"title": "Bekreft sletting",
- "desc": "Sletting av dette sporede objektet fjerner øyeblikksbildet, eventuelle lagrede vektorrepresentasjoner og alle tilknyttede livssykloppføringer for objektet. Opptak av dette sporede objektet i Historikk-visningen vil IKKE bli slettet.
Er du sikker på at du vil fortsette?"
+ "desc": "Sletting av dette sporede objektet fjerner stillbildet, alle lagrede vektorrepresentasjoner og tilknyttede oppføringer for sporingsdetaljer. Opptak av dette objektet i Historikk-visningen vil IKKE bli slettet.
Er du sikker på at du vil fortsette?"
}
},
"noTrackedObjects": "Fant ingen sporede objekter",
"fetchingTrackedObjectsFailed": "Feil ved henting av sporede objekter: {{errorMessage}}",
"trackedObjectsCount_one": "{{count}} sporet objekt ",
"trackedObjectsCount_other": "{{count}} sporede objekter ",
- "exploreMore": "Utforsk flere {{label}} objekter"
+ "exploreMore": "Utforsk flere {{label}} objekter",
+ "aiAnalysis": {
+ "title": "AI-Analyse"
+ },
+ "concerns": {
+ "label": "Bekymringer"
+ },
+ "trackingDetails": {
+ "title": "Sporingsdetaljer",
+ "noImageFound": "Ingen bilder funnet for dette tidsstempelet.",
+ "createObjectMask": "Opprett objektmaske",
+ "adjustAnnotationSettings": "Juster annoteringsinnstillinger",
+ "scrollViewTips": "Klikk for å se de viktige øyeblikkene i dette objektets livssyklus.",
+ "autoTrackingTips": "Posisjonene til avgrensningsboksene vil være unøyaktige for kameraer med automatisk sporing.",
+ "count": "{{first}} av {{second}}",
+ "trackedPoint": "Sporet punkt",
+ "lifecycleItemDesc": {
+ "visible": "{{label}} oppdaget",
+ "entered_zone": "{{label}} gikk inn i {{zones}}",
+ "active": "{{label}} ble aktiv",
+ "stationary": "{{label}} ble stasjonær",
+ "attribute": {
+ "faceOrLicense_plate": "{{attribute}} oppdaget for {{label}}",
+ "other": "{{label}} gjenkjent som {{attribute}}"
+ },
+ "gone": "{{label}} forsvant",
+ "heard": "{{label}} hørt",
+ "external": "{{label}} oppdaget",
+ "header": {
+ "zones": "Soner",
+ "ratio": "Sideforhold",
+ "area": "Område",
+ "score": "Score"
+ }
+ },
+ "annotationSettings": {
+ "title": "Annoteringsinnstillinger",
+ "showAllZones": {
+ "title": "Vis alle soner",
+ "desc": "Alltid vis soner på bilderammer der objekter har gått inn i en sone."
+ },
+ "offset": {
+ "label": "Annoteringsforskyvning",
+ "desc": "Disse dataene kommer fra kameraets deteksjonsstrøm, men legges over bilder fra opptaksstrømmen. Det er lite sannsynlig at de to strømmene er perfekt synkronisert. Som et resultat vil avgrensningsboksen og opptaket ikke stemme perfekt overens. Du kan bruke denne innstillingen til å forskyve annoteringene fremover eller bakover i tid for å tilpasse dem bedre til det innspilte opptaket.",
+ "millisecondsToOffset": "Antall millisekunder deteksjonsannoteringene skal forskyves med. Standard: 0",
+ "tips": "TIPS: Se for deg et hendelsesklipp med en person som går fra venstre mot høyre. Hvis avgrensningsboksen på tidslinjen for hendelsen konsekvent er til venstre for personen, bør verdien reduseres. På samme måte, hvis en person går fra venstre mot høyre og avgrensningsboksen konsekvent er foran personen, bør verdien økes.",
+ "toast": {
+ "success": "Annoteringsforskyvning for {{camera}} er lagret i konfigurasjonsfilen."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Forrige lysbilde",
+ "next": "Neste lysbilde"
+ }
+ }
}
diff --git a/web/public/locales/nb-NO/views/exports.json b/web/public/locales/nb-NO/views/exports.json
index 2c1fe59a72..4ced2fcdcb 100644
--- a/web/public/locales/nb-NO/views/exports.json
+++ b/web/public/locales/nb-NO/views/exports.json
@@ -13,5 +13,11 @@
"error": {
"renameExportFailed": "Kunne ikke gi nytt navn til eksport: {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "shareExport": "Del eksport",
+ "downloadVideo": "Last ned video",
+ "editName": "Rediger navn",
+ "deleteExport": "Slett eksport"
}
}
diff --git a/web/public/locales/nb-NO/views/faceLibrary.json b/web/public/locales/nb-NO/views/faceLibrary.json
index 9b5ca0288c..d2e0f6bd43 100644
--- a/web/public/locales/nb-NO/views/faceLibrary.json
+++ b/web/public/locales/nb-NO/views/faceLibrary.json
@@ -1,9 +1,9 @@
{
"selectItem": "Velg {{item}}",
"description": {
- "addFace": "Gå gjennom prosessen med å legge til en ny samling i ansiktsbiblioteket.",
+ "addFace": "Legg til en ny samling i ansiktsbiblioteket ved å laste opp ditt første bilde.",
"placeholder": "Skriv inn et navn for denne samlingen",
- "invalidName": "Ugyldig navn. Navn kan kun inneholde bokstaver, tall, mellomrom, apostrofer, understreker og bindestreker."
+ "invalidName": "Ugyldig navn. Navn kan kun inneholde bokstaver, tall, mellomrom, apostrof, understrek og bindestrek."
},
"details": {
"person": "Person",
@@ -11,7 +11,7 @@
"face": "Ansiktsdetaljer",
"faceDesc": "Detaljer for sporet objekt som genererte dette ansiktet",
"timestamp": "Tidsstempel",
- "scoreInfo": "Under-merkelappens poengsum er basert på en vektet sum ut ifra hvor sikre gjenkjenningene av ansiktene er, så den kan avvike fra poengsummen som vises på øyeblikksbildet.",
+ "scoreInfo": "Score er et vektet gjennomsnitt av alle ansiktsscorer, vektet etter størrelsen på ansiktet i hvert bilde.",
"subLabelScore": "Poengsum for under-merkelapp",
"unknown": "Ukjent"
},
@@ -20,12 +20,13 @@
"new": "Opprett nytt ansikt",
"title": "Opprett samling",
"desc": "Opprett en ny samling",
- "nextSteps": "For å bygge et sterkt grunnlag:
Bruk Tren-fanen for å velge og trene på bilder for hver oppdaget person.
Fokuser på bilder rett forfra for best resultat; unngå å trene bilder som fanger ansikter i vinkel.
"
+ "nextSteps": "For å bygge et sterkt grunnlag:
Bruk Nylige gjenkjennelser-fanen for å velge og trene på bilder for hver oppdaget person.
Fokuser på bilder rett forfra for best resultat; unngå å trene bilder som fanger ansikter i vinkel.
"
},
"train": {
- "aria": "Velg tren",
- "title": "Tren",
- "empty": "Det er ingen nylige forsøk på ansiktsgjenkjenning"
+ "aria": "Velg nylige gjenkjennelser",
+ "title": "Nylige gjenkjennelser",
+ "empty": "Det er ingen nylige forsøk på ansiktsgjenkjenning",
+ "titleShort": "Nylige"
},
"selectFace": "Velg ansikt",
"deleteFaceLibrary": {
@@ -38,7 +39,7 @@
"deleteFaceFailed": "Kunne ikke slette: {{errorMessage}}",
"uploadingImageFailed": "Kunne ikke laste opp bilde: {{errorMessage}}",
"trainFailed": "Kunne ikke trene: {{errorMessage}}",
- "updateFaceScoreFailed": "Kunne ikke oppdatere ansiktsskåring: {{errorMessage}}",
+ "updateFaceScoreFailed": "Kunne ikke oppdatere ansiktsscore: {{errorMessage}}",
"addFaceLibraryFailed": "Kunne ikke angi ansiktsnavn: {{errorMessage}}",
"deleteNameFailed": "Kunne ikke slette navn: {{errorMessage}}",
"renameFaceFailed": "Kunne ikke gi nytt navn til ansikt: {{errorMessage}}"
@@ -49,7 +50,7 @@
"deletedName_one": "{{count}} ansikt ble slettet.",
"deletedName_other": "{{count}} ansikter ble slettet.",
"trainedFace": "Ansiktet ble trent.",
- "updatedFaceScore": "Ansiktsskåring ble oppdatert.",
+ "updatedFaceScore": "Oppdaterte ansiktsscore for {{name}} ({{score}}).",
"uploadedImage": "Bildet ble lastet opp.",
"addFaceLibrary": "{{name}} ble lagt til i ansiktsbiblioteket!",
"renamedFace": "Nytt navn ble gitt til ansikt {{name}}"
@@ -57,7 +58,7 @@
},
"imageEntry": {
"dropActive": "Slipp bildet her…",
- "dropInstructions": "Dra og slipp et bilde her, eller klikk for å velge",
+ "dropInstructions": "Dra og slipp, lim inn et bilde her eller klikk for å velge",
"maxSize": "Maks størrelse: {{size}}MB",
"validation": {
"selectImage": "Vennligst velg en bildefil."
diff --git a/web/public/locales/nb-NO/views/live.json b/web/public/locales/nb-NO/views/live.json
index 2183cebb98..e23fa9baae 100644
--- a/web/public/locales/nb-NO/views/live.json
+++ b/web/public/locales/nb-NO/views/live.json
@@ -35,6 +35,14 @@
"center": {
"label": "Klikk i rammen for å sentrere PTZ-kameraet"
}
+ },
+ "focus": {
+ "in": {
+ "label": "Fokuser inn på PTZ-kameraet"
+ },
+ "out": {
+ "label": "Fokuser ut på PTZ-kameraet"
+ }
}
},
"camera": {
@@ -42,8 +50,8 @@
"disable": "Deaktiver kamera"
},
"snapshots": {
- "enable": "Aktiver øyeblikksbilder",
- "disable": "Deaktiver øyeblikksbilder"
+ "enable": "Aktiver stillbilder",
+ "disable": "Deaktiver stillbilder"
},
"audioDetect": {
"enable": "Aktiver lydregistrering",
@@ -54,7 +62,7 @@
"disable": "Deaktiver automatisk sporing"
},
"manualRecording": {
- "tips": "Start en manuell hendelse basert på kameraets innstillinger for opptaksbevaring.",
+ "tips": "Last ned et stillbilde, eller start en manuell hendelse basert på dette kameraets innstillinger for opptaksbevaring.",
"playInBackground": {
"label": "Spill av i bakgrunnen",
"desc": "Aktiver dette alternativet for å fortsette strømming når spilleren er skjult."
@@ -63,15 +71,15 @@
"label": "Vis statistikk",
"desc": "Aktiver dette alternativet for å vise strømmestatistikk som et overlegg på kamerastrømmen."
},
- "started": "Startet manuelt opptak på forespørsel.",
- "end": "Avslutt opptak på forespørsel",
- "title": "Opptak på forespørsel",
+ "started": "Startet manuelt opptak.",
+ "end": "Avslutt manuelt opptak",
+ "title": "Manuelt opptak",
"debugView": "Feilsøkingsvisning",
- "start": "Start opptak på forespørsel",
- "failedToStart": "Kunne ikke starte manuelt opptak på forespørsel.",
- "recordDisabledTips": "Siden opptak er deaktivert eller begrenset i konfigurasjonen for dette kameraet, vil kun et øyeblikksbilde bli lagret.",
- "ended": "Avsluttet manuelt opptak på forespørsel.",
- "failedToEnd": "Kunne ikke avslutte manuelt opptak på forespørsel."
+ "start": "Start manuelt opptak",
+ "failedToStart": "Kunne ikke starte manuelt opptak.",
+ "recordDisabledTips": "Siden opptak er deaktivert eller begrenset i konfigurasjonen for dette kameraet, vil kun et stillbilde bli lagret.",
+ "ended": "Avsluttet manuelt opptak.",
+ "failedToEnd": "Kunne ikke avslutte manuelt opptak."
},
"audio": "Lyd",
"suspend": {
@@ -100,6 +108,9 @@
"playInBackground": {
"label": "Spill av i bakgrunnen",
"tips": "Aktiver dette alternativet for å fortsette strømming når spilleren er skjult."
+ },
+ "debug": {
+ "picker": "Strømmevalg er ikke tilgjengelig i feilsøkingsmodus. Feilsøkingsvisningen bruker alltid strømmen som er tildelt deteksjonsrollen."
}
},
"history": {
@@ -151,8 +162,28 @@
"cameraEnabled": "Kamera aktivert",
"objectDetection": "Objektdeteksjon",
"recording": "Opptak",
- "snapshots": "Øyeblikksbilder",
+ "snapshots": "Stillbilder",
"audioDetection": "Lydregistrering",
- "autotracking": "Automatisk sporing"
+ "autotracking": "Automatisk sporing",
+ "transcription": "Lydtranskripsjon"
+ },
+ "transcription": {
+ "enable": "Aktiver direkte lydtranskripsjon",
+ "disable": "Deaktiver direkte lydtranskripsjon"
+ },
+ "snapshot": {
+ "noVideoSource": "Ingen videokilde tilgjengelig for stillbilde.",
+ "captureFailed": "Kunne ikke ta stillbilde.",
+ "downloadStarted": "Nedlasting av stillbilde startet.",
+ "takeSnapshot": "Last ned stillbilde"
+ },
+ "noCameras": {
+ "title": "Ingen kameraer konfigurert",
+ "description": "Kom i gang ved å koble et kamera til Frigate.",
+ "buttonText": "Legg til kamera",
+ "restricted": {
+ "title": "Ingen kameraer tilgjengelig",
+ "description": "Du har ikke tilgang for å se noen kameraer i denne gruppen."
+ }
}
}
diff --git a/web/public/locales/nb-NO/views/search.json b/web/public/locales/nb-NO/views/search.json
index baf25a9005..f25bf709ed 100644
--- a/web/public/locales/nb-NO/views/search.json
+++ b/web/public/locales/nb-NO/views/search.json
@@ -12,20 +12,21 @@
"filter": {
"label": {
"cameras": "Kameraer",
- "labels": "Merkelapper",
+ "labels": "Etiketter",
"search_type": "Søketype",
"after": "Etter",
- "min_score": "Min. poengsum",
- "max_score": "Maks. poengsum",
+ "min_score": "Min. score",
+ "max_score": "Maks. score",
"min_speed": "Min. hastighet",
"zones": "Soner",
- "sub_labels": "Under-merkelapper",
+ "sub_labels": "Underetiketter",
"time_range": "Tidsintervall",
"before": "Før",
"max_speed": "Maks. hastighet",
"recognized_license_plate": "Gjenkjent kjennemerke",
"has_clip": "Har videoklipp",
- "has_snapshot": "Har øyeblikksbilde"
+ "has_snapshot": "Har stillbilde",
+ "attributes": "Attributter"
},
"searchType": {
"thumbnail": "Miniatyrbilde",
@@ -36,8 +37,8 @@
"minSpeedMustBeLessOrEqualMaxSpeed": "Minimum hastighet 'min_speed' må være mindre enn eller lik maksimum hastighet 'max_speed'.",
"beforeDateBeLaterAfter": "Før-datoen 'before' må være senere enn etter-datoen 'after'.",
"afterDatebeEarlierBefore": "Etter-datoen 'after' må være tidligere enn før-datoen 'before'.",
- "minScoreMustBeLessOrEqualMaxScore": "Minimum poengsum 'min_score' må være mindre enn eller lik maksimum poengsum 'max_score'.",
- "maxScoreMustBeGreaterOrEqualMinScore": "Maksimum poengsum 'max_score' må være større enn eller lik minimum poengsum 'min_score'.",
+ "minScoreMustBeLessOrEqualMaxScore": "Minimum score 'min_score' må være mindre enn eller lik maksimum score 'max_score'.",
+ "maxScoreMustBeGreaterOrEqualMinScore": "Maksimum score 'max_score' må være større enn eller lik minimum score 'min_score'.",
"maxSpeedMustBeGreaterOrEqualMinSpeed": "Maksimum hastighet 'max_speed' må være større enn eller lik minimum hastighet 'min_speed'."
}
},
diff --git a/web/public/locales/nb-NO/views/settings.json b/web/public/locales/nb-NO/views/settings.json
index f98f80b231..0ea43438d2 100644
--- a/web/public/locales/nb-NO/views/settings.json
+++ b/web/public/locales/nb-NO/views/settings.json
@@ -6,11 +6,13 @@
"masksAndZones": "Maske- og soneeditor - Frigate",
"motionTuner": "Bevegelsesjustering - Frigate",
"object": "Test og feilsøk - Frigate",
- "general": "Generelle innstillinger - Frigate",
+ "general": "Innstillinger for brukergrensesnitt - Frigate",
"classification": "Klassifiseringsinnstillinger - Frigate",
"frigatePlus": "Frigate+ innstillinger - Frigate",
- "notifications": "Meldingsvarsler Innstillinger - Frigate",
- "enrichments": "Utvidelser Innstillinger - Frigate"
+ "notifications": "Innstillinger for meldingsvarsler - Frigate",
+ "enrichments": "Innstillinger for utvidelser - Frigate",
+ "cameraManagement": "Administrer kameraer - Frigate",
+ "cameraReview": "Innstillinger for kamerainspeksjon - Frigate"
},
"menu": {
"classification": "Klassifisering",
@@ -22,7 +24,11 @@
"frigateplus": "Frigate+",
"ui": "Brukergrensesnitt",
"notifications": "Meldingsvarsler",
- "enrichments": "Utvidelser"
+ "enrichments": "Utvidelser",
+ "triggers": "Utløsere",
+ "cameraManagement": "Administrasjon",
+ "cameraReview": "Inspeksjon",
+ "roles": "Roller"
},
"dialog": {
"unsavedChanges": {
@@ -44,6 +50,14 @@
"automaticLiveView": {
"label": "Automatisk direktevisning",
"desc": "Bytt automatisk til et kameras direktevisning når aktivitet oppdages. Deaktivering av dette valget gjør at statiske kamerabilder i Direkte-dashbord kun oppdateres én gang i minuttet."
+ },
+ "displayCameraNames": {
+ "label": "Vis alltid kameranavn",
+ "desc": "Vis alltid kameranavnene i en merkelapp i dashbordet for direktevisning med flere kameraer."
+ },
+ "liveFallbackTimeout": {
+ "label": "Tidsavbrudd for reserveløsning for direkteavspiller",
+ "desc": "Når et kameras direktestrøm med høy kvalitet er utilgjengelig, bytt til lav båndbreddemodus etter dette antallet sekunder. Standard: 3."
}
},
"storedLayouts": {
@@ -77,7 +91,7 @@
"clearStreamingSettingsFailed": "Kunne ikke fjerne strømmingsinnstillinger: {{errorMessage}}"
}
},
- "title": "Generelle innstillinger",
+ "title": "Innstillinger for brukergrensesnitt",
"cameraGroupStreaming": {
"title": "Strømmingsinnstillinger for kameragrupper",
"desc": "Strømmingsinnstillingene lagres lokalt i nettleseren.",
@@ -178,7 +192,45 @@
"desc": "Aktiver/deaktiver varsler og deteksjoner midlertidig for dette kameraet til Frigate startes på nytt. Når deaktivert, vil det ikke genereres nye inspeksjonselementer. ",
"alerts": "Varsler ",
"detections": "Deteksjoner "
- }
+ },
+ "object_descriptions": {
+ "desc": "Midlertidig aktiver/deaktiver generative KI-objektbeskrivelser for dette kameraet. Når deaktivert, vil KI-genererte beskrivelser ikke bli forespurt for sporede objekter på dette kameraet.",
+ "title": "Generative KI-objektbeskrivelser"
+ },
+ "cameraConfig": {
+ "nameInvalid": "Kameranavnet kan bare inneholde bokstaver, tall, understreker eller bindestreker",
+ "add": "Legg til kamera",
+ "edit": "Rediger kamera",
+ "description": "Konfigurer kamerainnstillinger, inkludert strømmeinnganger og roller.",
+ "name": "Kamera navn",
+ "nameRequired": "Kamera navn er påkrevd",
+ "nameLength": "Kamera navn må være mindre enn 24 tegn.",
+ "namePlaceholder": "f.eks front_dør",
+ "enabled": "Aktivert",
+ "ffmpeg": {
+ "inputs": "Inngangsstrømmer",
+ "path": "Lenke til strøm",
+ "pathRequired": "Lenke til strøm er påkrevd",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Roller",
+ "rolesRequired": "Minst én rolle er påkrevd",
+ "rolesUnique": "Hver rolle (lyd, gjenkjenning, opptak) kan bare tildeles én strøm",
+ "addInput": "Legg til inngangsstrøm",
+ "removeInput": "Fjern inngangsstrøm",
+ "inputsRequired": "Minst én inngangsstrøm er påkrevd"
+ },
+ "toast": {
+ "success": "Kamera {{cameraName}} ble lagret"
+ }
+ },
+ "review_descriptions": {
+ "title": "Generative KI beskrivelser for inspeksjon",
+ "desc": "Midlertidig aktiver/deaktiver inspeksjonsbeskrivelser med generativ KI for dette kameraet. Når deaktivert, vil det ikke bli bedt om KI-genererte beskrivelser for inspeksjonselementer på dette kameraet."
+ },
+ "addCamera": "Legg til nytt kamera",
+ "editCamera": "Rediger kamera:",
+ "selectCamera": "Velg et kamera",
+ "backToSettings": "Tilbake til kamerainnstillinger"
},
"masksAndZones": {
"filter": {
@@ -199,7 +251,8 @@
"alreadyExists": "En sone med dette navnet finnes allerede for dette kameraet.",
"mustBeAtLeastTwoCharacters": "Sonenavnet må være minst 2 tegn langt.",
"mustNotContainPeriod": "Sonenavnet kan ikke inneholde punktum.",
- "hasIllegalCharacter": "Sonenavnet inneholder ugyldige tegn."
+ "hasIllegalCharacter": "Sonenavnet inneholder ugyldige tegn.",
+ "mustHaveAtLeastOneLetter": "Sonenavnet må inneholde minst én bokstav."
}
},
"distance": {
@@ -261,7 +314,7 @@
"name": {
"title": "Navn",
"inputPlaceHolder": "Skriv inn et navn…",
- "tips": "Navnet må være minst 2 tegn langt og må ikke være det samme som et kamera- eller sone-navn."
+ "tips": "Navnet må være minst 2 tegn langt, inneholde minst én bokstav, og må ikke være det samme som et kamera- eller sone-navn for dette kameraet."
},
"loiteringTime": {
"title": "Oppholdstid",
@@ -292,7 +345,7 @@
}
},
"toast": {
- "success": "Sone ({{zoneName}}) er lagret. Start Frigate på nytt for å bruke endringer."
+ "success": "Sone ({{zoneName}}) er lagret."
}
},
"motionMasks": {
@@ -318,8 +371,8 @@
},
"toast": {
"success": {
- "title": "{{polygonName}} er lagret. Start Frigate på nytt for å bruke endringene.",
- "noName": "Bevegelsesmasken er lagret. Start Frigate på nytt for å bruke endringene."
+ "title": "{{polygonName}} er lagret.",
+ "noName": "Bevegelsesmasken er lagret."
}
}
},
@@ -343,8 +396,8 @@
},
"toast": {
"success": {
- "title": "{{polygonName}} er lagret. Start Frigate på nytt for å bruke endringene.",
- "noName": "Objektmasken er lagret. Start Frigate på nytt for å bruke endringene."
+ "title": "{{polygonName}} er lagret.",
+ "noName": "Objektmasken er lagret."
}
}
},
@@ -380,7 +433,7 @@
"objectList": "Objektliste",
"noObjects": "Ingen objekter",
"boundingBoxes": {
- "title": "Omsluttende bokser",
+ "title": "Avgrensningsbokser",
"desc": "Vis omsluttende bokser rundt sporede objekter",
"colors": {
"label": "Farge på omsluttende bokser for objekt",
@@ -407,8 +460,8 @@
},
"objectShapeFilterDrawing": {
"document": "Se dokumentasjonen ",
- "score": "Poengsum",
- "ratio": "Forhold",
+ "score": "Score",
+ "ratio": "Sideforhold",
"area": "Areal",
"title": "Tegning av objektformfilter",
"desc": "Tegn et rektangel på bildet for å vise areal- og størrelsesforhold",
@@ -420,6 +473,19 @@
"mask": {
"title": "Bevegelsesmasker",
"desc": "Vis polygoner for bevegelsesmasker"
+ },
+ "openCameraWebUI": "Åpne {{camera}} sitt nettgrensesnitt",
+ "audio": {
+ "title": "Lyd",
+ "noAudioDetections": "Ingen lyddeteksjoner",
+ "score": "score",
+ "currentRMS": "Nåværende RMS",
+ "currentdbFS": "Nåværende dbFS"
+ },
+ "paths": {
+ "title": "Stier",
+ "desc": "Vis betydningsfulle punkter på det sporede objektets sti",
+ "tips": "
Stier
Linjer og sirkler vil indikere viktige punkter som det sporede objektet har beveget seg gjennom i løpet av sin livssyklus.
"
}
},
"users": {
@@ -429,7 +495,7 @@
"desc": "Administrer brukerprofiler for denne Frigate-instansen."
},
"addUser": "Legg til bruker",
- "updatePassword": "Oppdater passord",
+ "updatePassword": "Nullstill passord",
"toast": {
"success": {
"deleteUser": "Bruker {{user}} ble slettet",
@@ -466,7 +532,16 @@
"strong": "Sterkt"
},
"match": "Passordene samsvarer",
- "notMatch": "Passordene samsvarer ikke"
+ "notMatch": "Passordene samsvarer ikke",
+ "show": "Vis passord",
+ "hide": "Skjul passord",
+ "requirements": {
+ "title": "Passordkrav:",
+ "length": "Minst 8 tegn",
+ "uppercase": "Minst en stor bokstav",
+ "digit": "Minst ett tall",
+ "special": "Minst ett spesialtegn (!@#$%^&*(),.?\":{}|<>)"
+ }
},
"newPassword": {
"title": "Nytt passord",
@@ -476,7 +551,11 @@
}
},
"usernameIsRequired": "Brukernavn er påkrevd",
- "passwordIsRequired": "Passord er påkrevd"
+ "passwordIsRequired": "Passord er påkrevd",
+ "currentPassword": {
+ "title": "Nåværende passord",
+ "placeholder": "Skriv inn nåværende passord"
+ }
},
"changeRole": {
"desc": "Oppdater tillatelser for {{username}}",
@@ -486,7 +565,8 @@
"admin": "Administrator",
"adminDesc": "Full tilgang til alle funksjoner.",
"viewer": "Visningsbruker",
- "viewerDesc": "Begrenset til kun Direkte-dashbord, Inspiser, Utforsk og Eksporter."
+ "viewerDesc": "Begrenset til kun Direkte-dashbord, Inspiser, Utforsk og Eksporter.",
+ "customDesc": "Tilpasset rolle med spesifikk kameratilgang."
},
"select": "Velg en rolle"
},
@@ -506,7 +586,12 @@
"setPassword": "Angi passord",
"desc": "Opprett et sterkt passord for å sikre denne kontoen.",
"cannotBeEmpty": "Passordet kan ikke være tomt",
- "doNotMatch": "Passordene samsvarer ikke"
+ "doNotMatch": "Passordene samsvarer ikke",
+ "currentPasswordRequired": "Nåværende passord er påkrevd",
+ "incorrectCurrentPassword": "Nåværende passord er feil",
+ "passwordVerificationFailed": "Kunne ikke verifisere passord",
+ "multiDeviceWarning": "Andre enheter du er logget inn på vil kreve ny innlogging innen {{refresh_time}}.",
+ "multiDeviceAdmin": "Du kan også tvinge alle brukere til å logge inn på nytt umiddelbart ved å rotere JWT-hemmeligheten din."
}
},
"table": {
@@ -514,7 +599,7 @@
"actions": "Handlinger",
"role": "Rolle",
"changeRole": "Endre brukerrolle",
- "password": "Passord",
+ "password": "Nullstill passord",
"deleteUser": "Slett bruker",
"noUsers": "Ingen brukere funnet."
}
@@ -602,18 +687,18 @@
},
"title": "Frigate+ Innstillinger",
"snapshotConfig": {
- "title": "Konfigurasjon av øyeblikksbilde",
- "desc": "Innsending til Frigate+ krever at både øyeblikksbilder og clean_copy-øyeblikksbilder er aktivert i konfigurasjonen din.",
+ "title": "Konfigurasjon av stillbilde",
+ "desc": "Innsending til Frigate+ krever at både stillbilder og clean_copy-stillbilder er aktivert i konfigurasjonen din.",
"documentation": "Se dokumentasjonen",
"table": {
"camera": "Kamera",
- "snapshots": "Øyeblikksbilder",
- "cleanCopySnapshots": "clean_copy-øyeblikksbilder"
+ "snapshots": "Stillbilder",
+ "cleanCopySnapshots": "clean_copy-stillbilder"
},
- "cleanCopyWarning": "Noen kameraer har øyeblikksbilder aktivert, men ren kopi er deaktivert. Du må aktivere clean_copy i øyeblikksbilde-konfigurasjonen for å kunne sende bilder fra disse kameraene til Frigate+."
+ "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+."
},
"toast": {
- "success": "Frigate+ innstillingene er lagret. Start Frigate på nytt for å bruke endringene.",
+ "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)",
@@ -622,12 +707,12 @@
"enrichments": {
"title": "Innstillinger for utvidelser",
"licensePlateRecognition": {
- "desc": "Frigate kan gjenkjenne kjennemerker på kjøretøy og automatisk legge til de oppdagede tegnene i feltet \"recognized_license_plate\", eller et kjent navn som en under-merkelapp på objekter av typen bil. Et vanlig brukstilfelle kan være å lese kjennemerker på biler som kjører inn i en innkjørsel eller biler som passerer på en gate.",
+ "desc": "Frigate kan gjenkjenne kjennemerker på kjøretøy og automatisk legge til de oppdagede tegnene i feltet \"recognized_license_plate\", eller et kjent navn som en underetikett på objekter av typen bil. Et vanlig brukstilfelle kan være å lese kjennemerker på biler som kjører inn i en innkjørsel eller biler som passerer på en gate.",
"title": "Kjennemerke gjenkjenning",
"readTheDocumentation": "Se dokumentasjonen"
},
"birdClassification": {
- "desc": "Fugleklassifisering identifiserer kjente fugler ved hjelp av en kvantisert TensorFlow-modell. Når en fugl gjenkjennes, vil det vanlige navnet legges til som en under-merkelapp. Denne informasjonen vises i brukergrensesnittet, filtre, samt i meldingsvarsler.",
+ "desc": "Fugleklassifisering identifiserer kjente fugler ved hjelp av en kvantisert TensorFlow-modell. Når en fugl gjenkjennes, vil det vanlige navnet legges til som en underetikett. Denne informasjonen vises i brukergrensesnittet, filtre, samt i meldingsvarsler.",
"title": "Klassifisering av fugler"
},
"semanticSearch": {
@@ -671,14 +756,555 @@
}
},
"title": "Ansiktsgjenkjenning",
- "desc": "Ansiktsgjenkjenning gjør det mulig å tildele navn til personer, og når ansiktet deres gjenkjennes, vil Frigate tildele personens navn som en under-merkelapp. Denne informasjonen vises i brukergrensesnittet, filtre, samt i meldingsvarsler.",
+ "desc": "Ansiktsgjenkjenning gjør det mulig å tildele navn til personer, og når ansiktet deres gjenkjennes, vil Frigate tildele personens navn som en underetikett. Denne informasjonen vises i brukergrensesnittet, filtre, samt i meldingsvarsler.",
"readTheDocumentation": "Se dokumentasjonen"
},
"unsavedChanges": "Ulagrede endringer i innstillinger for utvidelser",
"restart_required": "Omstart påkrevd (Innstillinger for utvidelser er endret)",
"toast": {
- "success": "Innstillinger for utvidelser har blitt lagret. Start Frigate på nytt for å bruke endringene.",
+ "success": "Innstillinger for utvidelser har blitt lagret. Start Frigate på nytt for å aktivere endringene.",
"error": "Kunne ikke lagre konfigurasjonsendringer: {{errorMessage}}"
}
+ },
+ "triggers": {
+ "documentTitle": "Utløsere",
+ "management": {
+ "title": "Utløser",
+ "desc": "Administrer utløsere for {{camera}}. Bruk miniatyrbilde-type for å utløse på lignende miniatyrbilder som det sporede objektet du har valgt, og beskrivelsestype for å utløse på lignende beskrivelser basert på teksten du spesifiserer."
+ },
+ "addTrigger": "Legg til utløser",
+ "table": {
+ "name": "Navn",
+ "type": "Type",
+ "content": "Innhold",
+ "threshold": "Terskel",
+ "actions": "Handlinger",
+ "noTriggers": "Ingen utløsere er konfigurert for dette kameraet.",
+ "edit": "Rediger",
+ "deleteTrigger": "Slett utløser",
+ "lastTriggered": "Sist utløst"
+ },
+ "type": {
+ "thumbnail": "Miniatyrbilde",
+ "description": "Beskrivelse"
+ },
+ "actions": {
+ "alert": "Marker som varsel",
+ "notification": "Send meldingsvarsel",
+ "sub_label": "Legg til underetikett",
+ "attribute": "Legg til attributt"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Opprett utløser",
+ "desc": "Opprett en utløser for kamera {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Rediger utløser",
+ "desc": "Rediger innstillingene for utløser på kamera {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Slett utløser",
+ "desc": "Er du sikker på at du vil slette utløseren {{triggerName}}? Denne handlingen kan ikke angres."
+ },
+ "form": {
+ "name": {
+ "title": "Navn",
+ "placeholder": "Navngi denne utløseren",
+ "error": {
+ "minLength": "Feltet må være minst 2 tegn langt.",
+ "invalidCharacters": "Feltet kan bare inneholde bokstaver, tall, understreker og bindestreker.",
+ "alreadyExists": "En utløser med dette navnet finnes allerede for dette kameraet."
+ },
+ "description": "Skriv inn et unikt navn eller beskrivelse for å identifisere denne utløseren"
+ },
+ "enabled": {
+ "description": "Aktiver eller deaktiver denne utløseren"
+ },
+ "type": {
+ "title": "Type",
+ "placeholder": "Velg utløsertype",
+ "description": "Utløs når en lignende sporet objektbeskrivelse blir detektert",
+ "thumbnail": "Utløs når et lignende sporet miniatyrbilde blir detektert"
+ },
+ "content": {
+ "title": "Innhold",
+ "imagePlaceholder": "Velg et miniatyrbilde",
+ "textPlaceholder": "Skriv inn tekstinnhold",
+ "imageDesc": "Kun de siste 100 miniatyrbildene vises. Hvis du ikke finner ønsket miniatyrbilde, kan du se gjennom tidligere objekter i Utforsk og opprette en utløser fra menyen der.",
+ "textDesc": "Skriv inn tekst for å utløse denne handlingen når en lignende beskrivelse av et sporet objekt oppdages.",
+ "error": {
+ "required": "Innhold er påkrevd."
+ }
+ },
+ "threshold": {
+ "title": "Terskel",
+ "error": {
+ "min": "Terskelverdien må minst være 0",
+ "max": "Terskelverdien kan maksimum være 1"
+ },
+ "desc": "Angi likhetsgrensen for denne utløseren. En høyere grense betyr at et høyere samsvar kreves for å utløse hendelsen."
+ },
+ "actions": {
+ "title": "Handlinger",
+ "desc": "Som standard sender Frigate en MQTT-melding for alle utløsere. Underetiketter legger til navnet på utløseren i objektetiketten. Attributter er søkbare metadata som lagres separat i objektets sporingsmetadata.",
+ "error": {
+ "min": "Minst én handling må velges."
+ }
+ },
+ "friendly_name": {
+ "description": "Et valgfritt brukervennlig navn eller beskrivende tekst for denne utløseren.",
+ "title": "Brukervennlig navn",
+ "placeholder": "Navngi eller beskriv denne utløseren"
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Utløseren {{name}} ble opprettet.",
+ "updateTrigger": "Utløseren {{name}} ble oppdatert.",
+ "deleteTrigger": "Utløseren {{name}} ble slettet."
+ },
+ "error": {
+ "createTriggerFailed": "Kunne ikke opprette utløser: {{errorMessage}}",
+ "updateTriggerFailed": "Kunne ikke oppdatere utløser: {{errorMessage}}",
+ "deleteTriggerFailed": "Kunne ikke slette utløser: {{errorMessage}}"
+ }
+ },
+ "semanticSearch": {
+ "title": "Semantisk søk er deaktivert",
+ "desc": "Semantisk søk må aktiveres for å bruke utløsere."
+ },
+ "wizard": {
+ "title": "Opprett utløser",
+ "step1": {
+ "description": "Konfigurer grunnleggende innstillinger for utløseren."
+ },
+ "step2": {
+ "description": "Sett opp innholdet som skal utløse denne handlingen."
+ },
+ "step3": {
+ "description": "Konfigurer terskelen og handlingene for denne utløseren."
+ },
+ "steps": {
+ "nameAndType": "Navn og type",
+ "configureData": "Konfigurer data",
+ "thresholdAndActions": "Terskel og handlinger"
+ }
+ }
+ },
+ "roles": {
+ "management": {
+ "title": "Administrasjon av visningsrolle",
+ "desc": "Administrer tilpassede visningsroller og deres kameratilgangstillatelser for denne Frigate-instansen."
+ },
+ "addRole": "Legg til rolle",
+ "table": {
+ "role": "Rolle",
+ "cameras": "Kameraer",
+ "actions": "Handlinger",
+ "noRoles": "Ingen tilpassede roller funnet.",
+ "editCameras": "Rediger kameraer",
+ "deleteRole": "Slett rolle"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Rollen {{role}} ble opprettet",
+ "updateCameras": "Kameraer oppdatert for rollen {{role}}",
+ "deleteRole": "Rollen {{role}} ble slettet",
+ "userRolesUpdated_one": "{{count}} bruker tildelt denne rollen er oppdatert til \"visningsbruker\", som har tilgang til alle kameraer.",
+ "userRolesUpdated_other": "{{count}} brukere tildelt denne rollen er oppdatert til \"visningsbruker\", som har tilgang til alle kameraer."
+ },
+ "error": {
+ "createRoleFailed": "Kunne ikke opprette rolle: {{errorMessage}}",
+ "updateCamerasFailed": "Kunne ikke oppdatere kameraer: {{errorMessage}}",
+ "deleteRoleFailed": "Kunne ikke slette rolle: {{errorMessage}}",
+ "userUpdateFailed": "Kunne ikke oppdatere brukerroller: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Opprett ny rolle",
+ "desc": "Legg til en ny rolle og angi tillatelser for kameratilgang."
+ },
+ "editCameras": {
+ "desc": "Oppdater kameratilgang for rollen {{role}}.",
+ "title": "Rediger kameraer for rolle"
+ },
+ "deleteRole": {
+ "title": "Slett rolle",
+ "desc": "Denne handlingen kan ikke angres. Dette vil permanent slette rollen og tildele alle brukere med denne rollen til «visningsbruker»-rollen, som gir tilgang til alle kameraer.",
+ "warn": "Er du sikker på at du vil slette {{role}}?",
+ "deleting": "Sletter..."
+ },
+ "form": {
+ "role": {
+ "title": "Rollenavn",
+ "placeholder": "Skriv inn rollenavn",
+ "desc": "Kun bokstaver, tall, punktum og understreker er tillatt.",
+ "roleIsRequired": "Rollenavn er påkrevd",
+ "roleOnlyInclude": "Rollenavn kan kun inneholde bokstaver, tall, . eller _",
+ "roleExists": "En rolle med dette navnet finnes allerede."
+ },
+ "cameras": {
+ "title": "Kameraer",
+ "desc": "Velg hvilke kameraer denne rollen skal ha tilgang til. Minst ett kamera må velges.",
+ "required": "Minst ett kamera må velges."
+ }
+ }
+ }
+ },
+ "cameraWizard": {
+ "title": "Legg til kamera",
+ "description": "Følg trinnene nedenfor for å legge til et nytt kamera i din Frigate-installasjon.",
+ "steps": {
+ "nameAndConnection": "Navn og tilkobling",
+ "streamConfiguration": "Strømkonfigurasjon",
+ "validationAndTesting": "Validering og testing",
+ "probeOrSnapshot": "Sjekk eller stillbilde"
+ },
+ "save": {
+ "success": "Lagret nytt kamera {{cameraName}}.",
+ "failure": "Feil ved lagring av {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Oppløsning",
+ "video": "Video",
+ "audio": "Lyd",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Vennligst oppgi en gyldig strøm-URL",
+ "testFailed": "Strømmetest feilet: {{error}}"
+ },
+ "step1": {
+ "description": "Skriv inn kameradetaljene dine og velg å sjekke kameraet eller manuelt velg produsent.",
+ "cameraName": "Kameranavn",
+ "cameraNamePlaceholder": "f.eks. front_dor eller Hageoversikt",
+ "host": "Vert/IP-adresse",
+ "port": "Port",
+ "username": "Brukernavn",
+ "usernamePlaceholder": "Valgfritt",
+ "password": "Passord",
+ "passwordPlaceholder": "Valgfritt",
+ "selectTransport": "Velg transportprotokoll",
+ "cameraBrand": "Kameramerke",
+ "selectBrand": "Velg kameramerke for URL-mal",
+ "customUrl": "Egendefinert strømme-URL",
+ "brandInformation": "Merkevare-informasjon",
+ "brandUrlFormat": "For kameraer med RTSP URL-format som: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://brukernavn:passord@vert:port/sti",
+ "testConnection": "Test tilkobling",
+ "testSuccess": "Tilkoblingstesten var vellykket!",
+ "testFailed": "Tilkoblingstesten feilet. Vennligst sjekk inntastingen din og prøv igjen.",
+ "streamDetails": "Strømdetaljer",
+ "warnings": {
+ "noSnapshot": "Kunne ikke hente et øyeblikksbilde fra den konfigurerte strømmen."
+ },
+ "errors": {
+ "brandOrCustomUrlRequired": "Enten velg et kameramerke med vert/IP eller velg 'Annet' med en egendefinert URL",
+ "nameRequired": "Kameranavn er påkrevd",
+ "nameLength": "Kameranavnet må være 64 tegn eller mindre",
+ "invalidCharacters": "Kameranavnet inneholder ugyldige tegn",
+ "nameExists": "Kameranavnet finnes allerede",
+ "brands": {
+ "reolink-rtsp": "Reolink RTSP anbefales ikke. Aktiver HTTP i kameraets fastvare-innstillinger og start kameraveiviseren på nytt."
+ },
+ "customUrlRtspRequired": "Egendefinerte URL-er må begynne med \"rtsp://\". Manuell konfigurering kreves for kamerastrømmer som ikke bruker RTSP."
+ },
+ "docs": {
+ "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
+ },
+ "testing": {
+ "probingMetadata": "Henter kamerametadata…",
+ "fetchingSnapshot": "Henter øyeblikksbilde for kamera..."
+ },
+ "connectionSettings": "Tilkoblingsinnstillinger",
+ "detectionMethod": "Metode for strømdeteksjon",
+ "onvifPort": "ONVIF-port",
+ "probeMode": "Sjekk kamera",
+ "manualMode": "Manuelt valg",
+ "detectionMethodDescription": "Sjekk kameraet med ONVIF (hvis støttet) for å finne kameraets strømme-URL-er, eller velg kameramerke manuelt for å bruke forhåndsdefinerte URL-er. For å skrive inn en egendefinert RTSP URL, velg manuell metode og velg \"Annet\".",
+ "onvifPortDescription": "For kameraer som støtter ONVIF, er dette vanligvis 80 eller 8080.",
+ "useDigestAuth": "Bruk digest-autentisering",
+ "useDigestAuthDescription": "Bruk HTTP digest-autentisering for ONVIF. Noen kameraer kan kreve et dedikert ONVIF brukernavn/passord i stedet for standard administrator-bruker."
+ },
+ "step2": {
+ "description": "Sjekk kameraet for tilgjengelige strømmer eller konfigurer manuelle innstillinger basert på valgt deteksjonsmetode.",
+ "streamsTitle": "Kamerastrømmer",
+ "addStream": "Legg til strøm",
+ "addAnotherStream": "Legg til en annen strøm",
+ "streamTitle": "Strøm {{number}}",
+ "streamUrl": "Strøm-URL",
+ "streamUrlPlaceholder": "rtsp://brukernavn:passord@vert:port/sti",
+ "url": "URL",
+ "resolution": "Oppløsning",
+ "selectResolution": "Velg oppløsning",
+ "quality": "Kvalitet",
+ "selectQuality": "Velg kvalitet",
+ "roles": "Roller",
+ "roleLabels": {
+ "detect": "Objektdeteksjon",
+ "record": "Opptak",
+ "audio": "Lyd"
+ },
+ "testStream": "Test tilkobling",
+ "testSuccess": "Tilkoblingstest vellykket!",
+ "testFailed": "Tilkoblingstest feilet. Vennligst sjekk inndataene dine og prøv igjen.",
+ "testFailedTitle": "Test feilet",
+ "connected": "Tilkoblet",
+ "notConnected": "Ikke tilkoblet",
+ "featuresTitle": "Funksjoner",
+ "go2rtc": "Reduser tilkoblinger til kameraet",
+ "detectRoleWarning": "Minst én strøm må ha rollen «deteksjon» for å fortsette.",
+ "rolesPopover": {
+ "title": "Strømroller",
+ "detect": "Hovedstrøm for objektdeteksjon.",
+ "record": "Lagrer segmenter av videostrømmen basert på konfigurasjonsinnstillinger.",
+ "audio": "Strøm for lydbasert deteksjon."
+ },
+ "featuresPopover": {
+ "title": "Strømfunksjoner",
+ "description": "Bruk go2rtc-restrømming for å redusere antall tilkoblinger til kameraet ditt."
+ },
+ "streamDetails": "Strømdetaljer",
+ "probing": "Test kamera...",
+ "retry": "Prøv på nytt",
+ "testing": {
+ "probingMetadata": "Sjekker metadata for kamera...",
+ "fetchingSnapshot": "Henter stillbilde fra kamera..."
+ },
+ "probeFailed": "Kunne ikke å sjekke kamera: {{error}}",
+ "probingDevice": "Tester enhet...",
+ "probeSuccessful": "Sjekk vellykket",
+ "probeError": "Sjekk feilet",
+ "probeNoSuccess": "Sjekk mislyktes",
+ "deviceInfo": "Enhetsinformasjon",
+ "manufacturer": "Produsent",
+ "model": "Modell",
+ "firmware": "Fastvare",
+ "profiles": "Profiler",
+ "ptzSupport": "PTZ-støtte",
+ "autotrackingSupport": "Autosporing-støtte",
+ "presets": "Forhåndsinnstillinger",
+ "rtspCandidates": "RTSP-kandidater",
+ "rtspCandidatesDescription": "Følgende RTSP URL-er ble funnet ved sjekk av kameraet. Test tilkoblingen for å se strømmetadata.",
+ "noRtspCandidates": "Ingen RTSP URL-er ble funnet fra kameraet. Det kan hende at påloggingsinformasjonen din er feil, eller at kameraet ikke støtter ONVIF eller metoden som brukes for å hente RTSP URL-er. Gå tilbake og skriv inn RTSP URL-en manuelt.",
+ "candidateStreamTitle": "Kandidat {{number}}",
+ "useCandidate": "Bruk",
+ "uriCopy": "Kopier",
+ "uriCopied": "URI kopiert til utklippstavlen",
+ "testConnection": "Test tilkobling",
+ "toggleUriView": "Klikk for å vise/skjule full URI",
+ "errors": {
+ "hostRequired": "Vert/IP-adresse er påkrevd"
+ }
+ },
+ "step3": {
+ "description": "Konfigurer strømroller og legg til flere strømmer for kameraet ditt.",
+ "validationTitle": "Strømvalidering",
+ "connectAllStreams": "Koble til alle strømmer",
+ "reconnectionSuccess": "Gjenoppkobling vellykket.",
+ "reconnectionPartial": "Noen strømmer kunne ikke gjenoppkobles.",
+ "streamUnavailable": "Forhåndsvisning av strøm utilgjengelig",
+ "reload": "Last inn på nytt",
+ "connecting": "Kobler til...",
+ "streamTitle": "Strøm {{number}}",
+ "valid": "Gyldig",
+ "failed": "Feilet",
+ "notTested": "Ikke testet",
+ "connectStream": "Koble til",
+ "connectingStream": "Kobler til",
+ "disconnectStream": "Koble fra",
+ "estimatedBandwidth": "Estimert båndbredde",
+ "roles": "Roller",
+ "none": "Ingen",
+ "error": "Feil",
+ "streamValidated": "Strøm {{number}} ble validert",
+ "streamValidationFailed": "Validering av strøm {{number}} feilet",
+ "saveAndApply": "Lagre nytt kamera",
+ "saveError": "Ugyldig konfigurasjon. Vennligst sjekk innstillingene dine.",
+ "issues": {
+ "title": "Strømvalidering",
+ "videoCodecGood": "Video-kodek er {{codec}}.",
+ "audioCodecGood": "Lyd-kodek er {{codec}}.",
+ "noAudioWarning": "Ingen lyd oppdaget for denne strømmen, opptak vil ikke ha lyd.",
+ "audioCodecRecordError": "AAC lyd-kodek er påkrevd for å støtte lyd i opptak.",
+ "audioCodecRequired": "En lydstrøm er påkrevd for å støtte lyddeteksjon.",
+ "restreamingWarning": "Å redusere tilkoblinger til kameraet for opptaksstrømmen kan øke CPU-bruken noe.",
+ "dahua": {
+ "substreamWarning": "Substrøm 1 er låst til lav oppløsning. Mange Dahua / Amcrest / EmpireTech-kameraer støtter flere substrømmer som må aktiveres i kameraets innstillinger. Det anbefales å sjekke og benytte disse strømmene hvis de er tilgjengelige."
+ },
+ "hikvision": {
+ "substreamWarning": "Substrøm 1 er låst til lav oppløsning. Mange Hikvision-kameraer støtter flere substrømmer som må aktiveres i kameraets innstillinger. Det anbefales å sjekke og benytte disse strømmene hvis de er tilgjengelige."
+ },
+ "resolutionHigh": "En oppløsning på {{resolution}} kan føre til økt ressursbruk.",
+ "resolutionLow": "En oppløsning på {{resolution}} kan være for lav for pålitelig deteksjon av små objekter."
+ },
+ "ffmpegModuleDescription": "Hvis strømmen ikke lastes inn etter flere forsøk, kan du prøve å aktivere dette. Når det er aktivert, vil Frigate bruke ffmpeg-modulen sammen med go2rtc. Dette kan gi bedre kompatibilitet med enkelte kamerastrømmer.",
+ "ffmpegModule": "Bruk kompatibilitetsmodus for strøm",
+ "streamsTitle": "Kamerastrømmer",
+ "addStream": "Legg til strøm",
+ "addAnotherStream": "Legg til en annen strøm",
+ "streamUrl": "Strøm-URL",
+ "streamUrlPlaceholder": "rtsp://brukernavn:passord@vert:port/sti",
+ "selectStream": "Velg en strøm",
+ "searchCandidates": "Søk blant kandidater...",
+ "noStreamFound": "Ingen strøm funnet",
+ "url": "URL",
+ "resolution": "Oppløsning",
+ "selectResolution": "Velg oppløsning",
+ "quality": "Kvalitet",
+ "selectQuality": "Velg kvalitet",
+ "roleLabels": {
+ "detect": "Objektdeteksjon",
+ "record": "Opptak",
+ "audio": "Lyd"
+ },
+ "testStream": "Test tilkobling",
+ "testSuccess": "Strømmetest vellykket!",
+ "testFailed": "Strømmetest feilet",
+ "testFailedTitle": "Test feilet",
+ "connected": "Tilkoblet",
+ "notConnected": "Ikke tilkoblet",
+ "featuresTitle": "Funksjoner",
+ "go2rtc": "Reduser antall tilkoblinger til kamera",
+ "detectRoleWarning": "Minst én strøm må ha \"deteksjon\"-rollen for å fortsette.",
+ "rolesPopover": {
+ "title": "Strømroller",
+ "detect": "Hovedstrøm for objektdeteksjon.",
+ "record": "Lagrer segmenter av videostrømmen basert på konfigurasjonsinnstillinger.",
+ "audio": "Strøm for lydbasert deteksjon."
+ },
+ "featuresPopover": {
+ "title": "Strømfunksjoner",
+ "description": "Bruk go2rtc-restrømming for å redusere antall tilkoblinger til kameraet."
+ }
+ },
+ "step4": {
+ "description": "Endelig validering og analyse før du lagrer det nye kameraet. Koble til hver strøm før du lagrer.",
+ "validationTitle": "Strømvalidering",
+ "connectAllStreams": "Koble til alle strømmer",
+ "reconnectionSuccess": "Tilkobling vellykket.",
+ "reconnectionPartial": "Noen strømmer kunne ikke koble til på nytt.",
+ "streamUnavailable": "Forhåndsvisning av strøm utilgjengelig",
+ "reload": "Last på nytt",
+ "connecting": "Kobler til...",
+ "streamTitle": "Strøm {{number}}",
+ "valid": "Gyldig",
+ "failed": "Feilet",
+ "notTested": "Ikke testet",
+ "connectStream": "Koble til",
+ "connectingStream": "Kobler til",
+ "disconnectStream": "Koble fra",
+ "estimatedBandwidth": "Estimert båndbredde",
+ "roles": "Roller",
+ "ffmpegModule": "Bruk kompatibilitetsmodus for strøm",
+ "ffmpegModuleDescription": "Hvis strømmen ikke lastes etter flere forsøk, prøv å aktivere dette. Når aktivert, vil Frigate bruke ffmpeg-modulen med go2rtc. Dette kan gi bedre kompatibilitet med noen kamerastrømmer.",
+ "none": "Ingen",
+ "error": "Feil",
+ "streamValidated": "Strøm {{number}} validert",
+ "streamValidationFailed": "Validering av strøm {{number}} feilet",
+ "saveAndApply": "Lagre nytt kamera",
+ "saveError": "Ugyldig konfigurasjon. Vennligst sjekk innstillingene dine.",
+ "issues": {
+ "title": "Strømvalidering",
+ "videoCodecGood": "Videokodek er {{codec}}.",
+ "audioCodecGood": "Lydkodek er {{codec}}.",
+ "resolutionHigh": "En oppløsning på {{resolution}} kan føre til økt ressursbruk.",
+ "resolutionLow": "En oppløsning på {{resolution}} kan være for lav for pålitelig deteksjon av små objekter.",
+ "noAudioWarning": "Ingen lyd oppdaget for denne strømmen, opptak vil ikke ha lyd.",
+ "audioCodecRecordError": "AAC-lydkodeken kreves for å støtte lyd i opptak.",
+ "audioCodecRequired": "En lydstrøm kreves for å støtte lyddeteksjon.",
+ "restreamingWarning": "Å redusere tilkoblinger til kameraet for opptaksstrømmen kan øke CPU-bruken noe.",
+ "brands": {
+ "reolink-rtsp": "Reolink RTSP anbefales ikke. Aktiver HTTP i kameraets fastvareinnstillinger og start veiviseren på nytt.",
+ "reolink-http": "Reolink HTTP-strømmer bør bruke FFmpeg for bedre kompatibilitet. Aktiver 'Bruk kompatibilitetsmodus for strøm' for denne strømmen."
+ },
+ "dahua": {
+ "substreamWarning": "Substrøm 1 er låst til lav oppløsning. Mange Dahua / Amcrest / EmpireTech-kameraer støtter flere substrømmer som må aktiveres i kameraets innstillinger. Det anbefales å sjekke og benytte disse strømmene hvis de er tilgjengelige."
+ },
+ "hikvision": {
+ "substreamWarning": "Substrøm 1 er låst til lav oppløsning. Mange Hikvision-kameraer støtter flere substrømmer som må aktiveres i kameraets innstillinger. Det anbefales å sjekke og benytte disse strømmene hvis de er tilgjengelige."
+ }
+ }
+ }
+ },
+ "cameraManagement": {
+ "title": "Administrer kameraer",
+ "addCamera": "Legg til nytt kamera",
+ "editCamera": "Rediger kamera:",
+ "selectCamera": "Velg et kamera",
+ "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. Merk: Dette deaktiverer ikke go2rtc-restrømming."
+ },
+ "cameraConfig": {
+ "add": "Legg til kamera",
+ "edit": "Rediger kamera",
+ "description": "Konfigurer kamerainnstillinger, inkludert strømmeinnganger og roller.",
+ "name": "Kameranavn",
+ "nameRequired": "Kameranavn er påkrevd",
+ "nameLength": "Kameranavnet må være mindre enn 64 tegn.",
+ "namePlaceholder": "f.eks front_dor eller Hage Oversikt",
+ "enabled": "Aktivert",
+ "ffmpeg": {
+ "inputs": "Inngangsstrømmer",
+ "path": "Lenke til strøm",
+ "pathRequired": "Lenke til strøm er påkrevd",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Roller",
+ "rolesRequired": "Minst én rolle er påkrevd",
+ "rolesUnique": "Hver rolle (lyd, deteksjon, opptak) kan bare tildeles én strøm",
+ "addInput": "Legg til inngangsstrøm",
+ "removeInput": "Fjern inngangsstrøm",
+ "inputsRequired": "Minst én inngangsstrøm er påkrevd"
+ },
+ "go2rtcStreams": "go2rtc-strømmer",
+ "streamUrls": "Strøm-URL'er",
+ "addUrl": "Legg til URL",
+ "addGo2rtcStream": "Legg til go2rtc-strøm",
+ "toast": {
+ "success": "Kamera {{cameraName}} ble lagret"
+ }
+ }
+ },
+ "cameraReview": {
+ "title": "Innstillinger for kamerainspeksjon",
+ "object_descriptions": {
+ "title": "Generative KI-objektbeskrivelser",
+ "desc": "Midlertidig aktiver/deaktiver generative KI-objektbeskrivelser for dette kameraet. Når deaktivert, vil KI-genererte beskrivelser ikke bli forespurt for sporede objekter på dette kameraet."
+ },
+ "review_descriptions": {
+ "title": "Generative KI beskrivelser for inspeksjon",
+ "desc": "Midlertidig aktiver/deaktiver inspeksjonsbeskrivelser med generativ KI for dette kameraet. Når deaktivert, vil det ikke bli bedt om KI-genererte beskrivelser for inspeksjonselementer på dette kameraet."
+ },
+ "review": {
+ "title": "Inspiser",
+ "desc": "Aktiver/deaktiver varsler og deteksjoner midlertidig for dette kameraet til Frigate startes på nytt. Når deaktivert, vil det ikke genereres nye inspeksjonselementer. ",
+ "alerts": "Varsler ",
+ "detections": "Deteksjoner "
+ },
+ "reviewClassification": {
+ "title": "Inspeksjonsklassifisering",
+ "desc": "Frigate kategoriserer inspeksjonselementer som Varsler og Deteksjoner. Som standard regnes alle person- og bil-objekter som Varsler. Du kan finjustere klassifiseringen ved å konfigurere nødvendige soner.",
+ "noDefinedZones": "Ingen soner er definert for dette kameraet.",
+ "objectAlertsTips": "Alle {{alertsLabels}}-objekter på {{cameraName}} vil bli vist som varsler.",
+ "zoneObjectAlertsTips": "Alle {{alertsLabels}}-objekter oppdaget i {{zone}} på {{cameraName}} vil bli vist som varsler.",
+ "objectDetectionsTips": "Alle {{detectionsLabels}}-objekter som ikke er kategorisert på {{cameraName}}, vil bli vist som deteksjoner uavhengig av hvilken sone de er i.",
+ "zoneObjectDetectionsTips": {
+ "text": "Alle {{detectionsLabels}}-objekter som ikke er kategorisert i {{zone}} på {{cameraName}}, vil bli vist som deteksjoner.",
+ "notSelectDetections": "Alle {{detectionsLabels}}-objekter oppdaget i {{zone}} på {{cameraName}} som ikke er kategorisert som varsler, vil bli vist som deteksjoner uavhengig av hvilken sone de er i.",
+ "regardlessOfZoneObjectDetectionsTips": "Alle {{detectionsLabels}}-objekter som ikke er kategorisert på {{cameraName}}, vil bli vist som deteksjoner uavhengig av hvilken sone de er i."
+ },
+ "unsavedChanges": "Ulagrede innstillinger for inspeksjonsklassifisering for {{camera}}",
+ "selectAlertsZones": "Velg soner for varsler",
+ "selectDetectionsZones": "Velg soner for deteksjoner",
+ "limitDetections": "Avgrens deteksjoner til bestemte soner",
+ "toast": {
+ "success": "Konfigurasjonen for inspeksjonsklassifisering er lagret. Start Frigate på nytt for å aktivere endringer."
+ }
+ }
}
}
diff --git a/web/public/locales/nb-NO/views/system.json b/web/public/locales/nb-NO/views/system.json
index 884949bd97..8348b8baf1 100644
--- a/web/public/locales/nb-NO/views/system.json
+++ b/web/public/locales/nb-NO/views/system.json
@@ -40,7 +40,8 @@
"title": "Detektorer",
"cpuUsage": "Detektor CPU-belastning",
"memoryUsage": "Detektor minnebruk",
- "temperature": "Detektor temperatur"
+ "temperature": "Detektor temperatur",
+ "cpuUsageInformation": "CPU brukt til å forberede inn- og utdata til/fra deteksjonsmodeller. Denne verdien måler ikke bruk under inferens, selv om en GPU eller akselerator benyttes."
},
"hardwareInfo": {
"gpuMemory": "GPU-minne",
@@ -73,7 +74,12 @@
"title": "Maskinvareinformasjon",
"gpuUsage": "GPU-belastning",
"npuMemory": "NPU minne",
- "npuUsage": "NPU belastning"
+ "npuUsage": "NPU-belastning",
+ "intelGpuWarning": {
+ "title": "Til info om Intel GPU-statistikk",
+ "message": "GPU statistikk ikke tilgjengelig",
+ "description": "Dette er en kjent feil i Intels verktøy for rapportering av GPU-statistikk (intel_gpu_top), der verktøyet slutter å fungere og gjentatte ganger viser 0 % GPU-bruk, selv om maskinvareakselerasjon og objektdeteksjon kjører korrekt på (i)GPU-en. Dette er ikke en feil i Frigate. Du kan starte verten på nytt for å løse problemet midlertidig, og for å bekrefte at GPU-en fungerer som den skal. Dette påvirker ikke ytelsen."
+ }
},
"otherProcesses": {
"title": "Andre prosesser",
@@ -100,7 +106,11 @@
"tips": "Denne verdien representerer kanskje ikke nøyaktig den ledige plassen Frigate har tilgang til, dersom det finnes andre filer lagret på disken. Frigate sporer kun lagring brukt av egne opptak."
}
},
- "title": "Lagring"
+ "title": "Lagring",
+ "shm": {
+ "title": "SHM (delt minne) allokering",
+ "warning": "Den nåværende SHM-størrelsen på {{total}} MB er for liten. Øk den til minst {{min_shm}} MB."
+ }
},
"cameras": {
"info": {
@@ -113,7 +123,7 @@
"fetching": "Henter kameradata",
"stream": "Strøm {{idx}}",
"video": "Video:",
- "fps": "Bilder per sekund:",
+ "fps": "FPS:",
"unknown": "Ukjent",
"tips": {
"title": "Kamerainformasjon"
@@ -160,10 +170,20 @@
"text_embedding": "Tekst-vektorrepresentasjoner",
"plate_recognition": "Kjennemerke gjenkjenning",
"yolov9_plate_detection_speed": "Hastighet for YOLOv9 kjennemerkedeteksjon",
- "yolov9_plate_detection": "YOLOv9 kjennemerkedeteksjon"
+ "yolov9_plate_detection": "YOLOv9 kjennemerkedeteksjon",
+ "object_description": "Objektbeskrivelse",
+ "object_description_speed": "Objektbeskrivelse hastighet",
+ "object_description_events_per_second": "Objektbeskrivelse",
+ "review_description": "Inspeksjonsbeskrivelse",
+ "review_description_events_per_second": "Inspeksjonsbeskrivelse",
+ "review_description_speed": "Inspeksjonsbeskrivelse hastighet",
+ "classification": "{{name}} Klassifisering",
+ "classification_speed": "{{name}} klassifisering hastighet",
+ "classification_events_per_second": "{{name}} klassifiseringshendelser per sekund"
},
"title": "Utvidelser",
- "infPerSecond": "Inferenser per sekund"
+ "infPerSecond": "Inferenser per sekund",
+ "averageInf": "Gjennomsnittlig inferenstid"
},
"title": "System",
"metrics": "Systemmålinger",
@@ -175,6 +195,7 @@
"reindexingEmbeddings": "Reindeksering av vektorrepresentasjoner ({{processed}}% fullført)",
"cameraIsOffline": "{{camera}} er frakoblet",
"detectIsSlow": "{{detect}} er treg ({{speed}} ms)",
- "detectIsVerySlow": "{{detect}} er veldig treg ({{speed}} ms)"
+ "detectIsVerySlow": "{{detect}} er veldig treg ({{speed}} ms)",
+ "shmTooLow": "/dev/shm-allokeringen ({{total}} MB) bør økes til minst {{min}} MB."
}
}
diff --git a/web/public/locales/nl/audio.json b/web/public/locales/nl/audio.json
index e99acca9e1..59268c7ef4 100644
--- a/web/public/locales/nl/audio.json
+++ b/web/public/locales/nl/audio.json
@@ -16,7 +16,7 @@
"snoring": "Snurken",
"gasp": "Snakken naar adem",
"pant": "Hijgen",
- "snort": "Snorren",
+ "snort": "Snuiven",
"sneeze": "Niezen",
"shuffle": "Schudden",
"footsteps": "Voetstappen",
@@ -425,5 +425,79 @@
"environmental_noise": "Omgevingsgeluid",
"silence": "Stilte",
"sound_effect": "Geluidseffect",
- "scream": "Schreeuw"
+ "scream": "Schreeuw",
+ "sodeling": "Sodeling",
+ "chird": "Chird",
+ "change_ringing": "Beltoon wijzigen",
+ "shofar": "Sjofar",
+ "liquid": "Vloeistof",
+ "splash": "Plons",
+ "slosh": "Klotsen",
+ "squish": "Pletten",
+ "drip": "Druppelen",
+ "pour": "Gieten",
+ "trickle": "Gerinkel",
+ "gush": "Stroom",
+ "fill": "Vullen",
+ "spray": "Spuiten",
+ "pump": "Pomp",
+ "stir": "Roeren",
+ "boiling": "Koken",
+ "sonar": "Sonar",
+ "arrow": "Pijl",
+ "whoosh": "Woesj",
+ "thump": "Dreun",
+ "thunk": "doffe dreun",
+ "electronic_tuner": "Elektronische tuner",
+ "effects_unit": "Effecteneenheid",
+ "chorus_effect": "Kooreffect",
+ "basketball_bounce": "Basketbal stuiteren",
+ "bang": "Knal",
+ "slap": "Klap",
+ "whack": "Mep",
+ "smash": "Verpletteren",
+ "breaking": "Breken",
+ "bouncing": "Stuiteren",
+ "whip": "Zweep",
+ "flap": "Klep",
+ "scratch": "Kras",
+ "scrape": "Schrapen",
+ "rub": "Wrijven",
+ "roll": "Rollen",
+ "crushing": "Verpletteren",
+ "crumpling": "Verpletteren",
+ "tearing": "Scheuren",
+ "beep": "Piep",
+ "ping": "Ping",
+ "ding": "Ding",
+ "clang": "Klang",
+ "squeal": "Piepen",
+ "creak": "Kraken",
+ "rustle": "Geritsel",
+ "whir": "Snorren",
+ "clatter": "Gekletter",
+ "sizzle": "Sissen",
+ "clicking": "Klikken",
+ "clickety_clack": "Klik-klak",
+ "rumble": "Gerommel",
+ "plop": "Plop",
+ "hum": "Hum",
+ "zing": "Zing",
+ "boing": "Boing",
+ "crunch": "Kraak",
+ "sine_wave": "Sinusgolf",
+ "harmonic": "Harmonisch",
+ "chirp_tone": "Pieptoon",
+ "pulse": "Puls",
+ "inside": "Binnen",
+ "outside": "Buiten",
+ "reverberation": "Nagalm",
+ "echo": "Echo",
+ "noise": "Lawaai",
+ "mains_hum": "Netstroomgezoe",
+ "distortion": "Vervorming",
+ "sidetone": "Zijtoon",
+ "cacophony": "Kakofonie",
+ "throbbing": "Bonzend",
+ "vibration": "Trilling"
}
diff --git a/web/public/locales/nl/common.json b/web/public/locales/nl/common.json
index 0af38d8a5b..17d91279c6 100644
--- a/web/public/locales/nl/common.json
+++ b/web/public/locales/nl/common.json
@@ -81,7 +81,10 @@
"formattedTimestampMonthDayYear": {
"12hour": "d MMM yyyy",
"24hour": "d MMM yyyy"
- }
+ },
+ "inProgress": "Wordt uitgevoerd",
+ "invalidStartTime": "Ongeldige starttijd",
+ "invalidEndTime": "Ongeldige eindtijd"
},
"button": {
"enabled": "Ingeschakeld",
@@ -118,7 +121,8 @@
"download": "Download",
"unselect": "Deselecteren",
"next": "Volgende",
- "deleteNow": "Nu verwijderen"
+ "deleteNow": "Nu verwijderen",
+ "continue": "Doorgaan"
},
"unit": {
"speed": {
@@ -128,10 +132,23 @@
"length": {
"feet": "voet",
"meters": "meter"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/uur",
+ "mbph": "MB/uur",
+ "gbph": "GB/uur"
}
},
"label": {
- "back": "Ga terug"
+ "back": "Ga terug",
+ "hide": "Verberg {{item}}",
+ "show": "Toon {{item}}",
+ "ID": "ID",
+ "none": "Geen",
+ "all": "Alle"
},
"menu": {
"system": "Systeem",
@@ -175,7 +192,15 @@
"ja": "日本語 (Japans)",
"yue": "粵語 (Kantonees)",
"th": "ไทย (Thais)",
- "ca": "Català (Catalaans)"
+ "ca": "Català (Catalaans)",
+ "ptBR": "Português brasileiro (Braziliaans Portugees)",
+ "sr": "Српски (Servisch)",
+ "sl": "Slovenščina (Sloveens)",
+ "lt": "Lietuvių (Litouws)",
+ "bg": "Български (Bulgaars)",
+ "gl": "Galego (Galicisch)",
+ "id": "Bahasa Indonesia (Indonesisch)",
+ "ur": "اردو (Urdu)"
},
"darkMode": {
"label": "Donkere modus",
@@ -224,7 +249,8 @@
"setPassword": "Wachtwoord instellen",
"account": "Account",
"anonymous": "anoniem"
- }
+ },
+ "classification": "Classificatie"
},
"toast": {
"copyUrlToClipboard": "URL naar klembord gekopieerd.",
@@ -239,7 +265,7 @@
"role": {
"title": "Rol",
"admin": "Beheerder",
- "viewer": "Gebruiker",
+ "viewer": "Kijker",
"desc": "Beheerders hebben volledige toegang tot alle functies in de Frigate-interface. Kijkers kunnen alleen camera’s bekijken, items beoordelen en historische beelden terugkijken."
},
"pagination": {
@@ -264,5 +290,18 @@
"title": "404",
"documentTitle": "Niet gevonden - Frigate"
},
- "selectItem": "Selecteer {{item}}"
+ "selectItem": "Selecteer {{item}}",
+ "readTheDocumentation": "Lees de documentatie",
+ "information": {
+ "pixels": "{{area}}px"
+ },
+ "list": {
+ "two": "{{0}} en {{1}}",
+ "many": "{{items}}, en {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "Optioneel",
+ "internalID": "De interne ID die Frigate gebruikt in de configuratie en database"
+ }
}
diff --git a/web/public/locales/nl/components/auth.json b/web/public/locales/nl/components/auth.json
index 78ae8e55ef..14fb57adf2 100644
--- a/web/public/locales/nl/components/auth.json
+++ b/web/public/locales/nl/components/auth.json
@@ -10,6 +10,7 @@
"unknownError": "Onbekende fout. Bekijk de logs.",
"webUnknownError": "Onbekende fout. Controleer consolelogboeken."
},
- "user": "Gebruikersnaam"
+ "user": "Gebruikersnaam",
+ "firstTimeLogin": "Probeer je voor het eerst in te loggen? De inloggegevens staan vermeld in de Frigate-logs."
}
}
diff --git a/web/public/locales/nl/components/camera.json b/web/public/locales/nl/components/camera.json
index 251e57a254..1b840478d5 100644
--- a/web/public/locales/nl/components/camera.json
+++ b/web/public/locales/nl/components/camera.json
@@ -65,7 +65,8 @@
"title": "{{cameraName}} Streaming-instellingen",
"stream": "Stream",
"placeholder": "Kies een stream"
- }
+ },
+ "birdseye": "Birdseye"
},
"icon": "Icon"
},
diff --git a/web/public/locales/nl/components/dialog.json b/web/public/locales/nl/components/dialog.json
index 0c1e8aaf34..b666c2b0c2 100644
--- a/web/public/locales/nl/components/dialog.json
+++ b/web/public/locales/nl/components/dialog.json
@@ -12,7 +12,7 @@
"plus": {
"submitToPlus": {
"label": "Verzenden naar Frigate+",
- "desc": "Objecten op locaties die je wilt vermijden, zijn geen valspositieven. Als je ze als valspositieven indient, brengt dit het model in verwarring."
+ "desc": "Objecten op locaties die je wilt vermijden, zijn geen vals-positieven. Als je ze als vals-positieven indient, brengt dit het model in verwarring."
},
"review": {
"true": {
@@ -42,7 +42,7 @@
},
"export": {
"time": {
- "fromTimeline": "Selecteer uit tijdlijn",
+ "fromTimeline": "Selecteer uit Tijdlijn",
"end": {
"label": "Selecteer eindtijd",
"title": "Eindtijd"
@@ -65,7 +65,8 @@
"noVaildTimeSelected": "Geen geldig tijdsbereik geselecteerd",
"endTimeMustAfterStartTime": "Eindtijd moet na starttijd zijn"
},
- "success": "Export is succesvol gestart. Bekijk het bestand in de map /exports."
+ "success": "Export is succesvol gestart. Bekijk het bestand op de exportpagina.",
+ "view": "Weergeven"
},
"fromTimeline": {
"saveExport": "Export opslaan",
@@ -105,9 +106,10 @@
},
"recording": {
"button": {
- "deleteNow": "Nu verwijderen",
+ "deleteNow": "Verwijder nu",
"export": "Exporteren",
- "markAsReviewed": "Markeren als beoordeeld"
+ "markAsReviewed": "Markeren als beoordeeld",
+ "markAsUnreviewed": "Markeren als niet beoordeeld"
},
"confirmDelete": {
"desc": {
@@ -119,5 +121,13 @@
"success": "De videobeelden die aan de geselecteerde beoordelingsitems zijn gekoppeld, zijn succesvol verwijderd."
}
}
+ },
+ "imagePicker": {
+ "selectImage": "Kies miniatuur van gevolgd object",
+ "noImages": "Geen miniaturen gevonden voor deze camera",
+ "search": {
+ "placeholder": "Zoeken op label of sub label..."
+ },
+ "unknownLabel": "Opgeslagen triggerafbeelding"
}
}
diff --git a/web/public/locales/nl/components/filter.json b/web/public/locales/nl/components/filter.json
index fa2ecd9d0a..e910acd832 100644
--- a/web/public/locales/nl/components/filter.json
+++ b/web/public/locales/nl/components/filter.json
@@ -75,7 +75,9 @@
"title": "Herkende kentekenplaten",
"noLicensePlatesFound": "Geen kentekenplaten gevonden.",
"selectPlatesFromList": "Selecteer een of meer kentekens uit de lijst.",
- "loading": "Herkende kentekenplaten laden…"
+ "loading": "Herkende kentekenplaten laden…",
+ "selectAll": "Selecteer alles",
+ "clearAll": "Alles wissen"
},
"score": "Score",
"sort": {
@@ -123,5 +125,17 @@
"label": "Filters resetten naar standaardwaarden"
},
"more": "Meer filters",
- "estimatedSpeed": "Geschatte snelheid ({{unit}})"
+ "estimatedSpeed": "Geschatte snelheid ({{unit}})",
+ "classes": {
+ "label": "Klassen",
+ "all": {
+ "title": "Alle klassen"
+ },
+ "count_one": "{{count}} klasse",
+ "count_other": "{{count}} Klassen"
+ },
+ "attributes": {
+ "label": "Classificatie-kenmerken",
+ "all": "Alle attributen"
+ }
}
diff --git a/web/public/locales/nl/objects.json b/web/public/locales/nl/objects.json
index a0b21657ba..1fc914a770 100644
--- a/web/public/locales/nl/objects.json
+++ b/web/public/locales/nl/objects.json
@@ -14,7 +14,7 @@
"traffic_light": "Verkeerslicht",
"street_sign": "Verkeersbord",
"stop_sign": "Stopbord",
- "parking_meter": "Parkeer Meter",
+ "parking_meter": "Parkeermeter",
"bench": "Bankje",
"cow": "Koe",
"giraffe": "Giraffe",
diff --git a/web/public/locales/nl/views/classificationModel.json b/web/public/locales/nl/views/classificationModel.json
new file mode 100644
index 0000000000..a94c7956b7
--- /dev/null
+++ b/web/public/locales/nl/views/classificationModel.json
@@ -0,0 +1,188 @@
+{
+ "documentTitle": "Classificatiemodellen - Frigate",
+ "button": {
+ "deleteClassificationAttempts": "Classificatieafbeeldingen verwijderen",
+ "renameCategory": "Klasse hernoemen",
+ "deleteCategory": "Klasse verwijderen",
+ "deleteImages": "Afbeeldingen verwijderen",
+ "trainModel": "Model trainen",
+ "addClassification": "Classificatie toevoegen",
+ "deleteModels": "Modellen verwijderen",
+ "editModel": "Model bewerken"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Verwijderde klasse",
+ "deletedImage": "Verwijderde afbeeldingen",
+ "categorizedImage": "Succesvol geclassificeerde afbeelding",
+ "trainedModel": "Succesvol getraind model.",
+ "trainingModel": "Modeltraining succesvol gestart.",
+ "deletedModel_one": "{{count}} model succesvol verwijderd",
+ "deletedModel_other": "{{count}} modellen succesvol verwijderd",
+ "updatedModel": "Modelconfiguratie succesvol bijgewerkt",
+ "renamedCategory": "Klasse succesvol hernoemd naar {{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "Verwijderen mislukt: {{errorMessage}}",
+ "deleteCategoryFailed": "Het verwijderen van de klasse is mislukt: {{errorMessage}}",
+ "categorizeFailed": "Afbeelding categoriseren mislukt: {{errorMessage}}",
+ "trainingFailed": "Modeltraining mislukt. Raadpleeg de Frigate-logs voor details.",
+ "deleteModelFailed": "Model verwijderen mislukt: {{errorMessage}}",
+ "updateModelFailed": "Bijwerken van model mislukt: {{errorMessage}}",
+ "renameCategoryFailed": "Hernoemen van klasse mislukt: {{errorMessage}}",
+ "trainingFailedToStart": "Het is niet gelukt om het model te trainen: {{errorMessage}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Klasse verwijderen",
+ "desc": "Weet je zeker dat je de klasse {{name}} wilt verwijderen? Hiermee worden alle bijbehorende afbeeldingen permanent verwijderd en moet het model opnieuw worden getraind.",
+ "minClassesTitle": "Kan klasse niet verwijderen",
+ "minClassesDesc": "Een classificatiemodel moet minimaal twee klassen hebben. Voeg een andere klasse toe voordat u deze verwijdert."
+ },
+ "deleteDatasetImages": {
+ "title": "Datasetafbeeldingen verwijderen",
+ "desc_one": "Weet u zeker dat u {{count}} afbeelding uit {{dataset}} wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt en vereist een hertraining van het model.",
+ "desc_other": "Weet u zeker dat u {{count}} afbeeldingen uit {{dataset}} wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt en vereist een hertraining van het model."
+ },
+ "deleteTrainImages": {
+ "title": "Trainingsafbeeldingen verwijderen",
+ "desc_one": "Weet je zeker dat je {{count}} afbeelding wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt.",
+ "desc_other": "Weet je zeker dat je {{count}} afbeeldingen wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt."
+ },
+ "renameCategory": {
+ "title": "Klasse hernoemen",
+ "desc": "Voer een nieuwe naam in voor {{name}}. U moet het model opnieuw trainen om de naamswijziging door te voeren."
+ },
+ "description": {
+ "invalidName": "Ongeldige naam. Namen mogen alleen letters, cijfers, spaties, apostroffen, underscores en koppeltekens bevatten."
+ },
+ "train": {
+ "title": "Recente classificaties",
+ "aria": "Selecteer recente classificaties",
+ "titleShort": "Recent"
+ },
+ "categories": "Klassen",
+ "createCategory": {
+ "new": "Nieuwe klasse maken"
+ },
+ "categorizeImageAs": "Afbeelding classificeren als:",
+ "categorizeImage": "Afbeelding classificeren",
+ "noModels": {
+ "object": {
+ "title": "Geen objectclassificatiemodellen",
+ "description": "Maak een aangepast model om gedetecteerde objecten te classificeren.",
+ "buttonText": "Objectmodel maken"
+ },
+ "state": {
+ "title": "Geen status-classificatiemodellen",
+ "description": "Maak een aangepast model om statuswijzigingen in specifieke cameragebieden te monitoren en te classificeren.",
+ "buttonText": "Maak een statusmodel"
+ }
+ },
+ "wizard": {
+ "title": "Nieuwe classificatie maken",
+ "steps": {
+ "nameAndDefine": "Naam & definiëren",
+ "stateArea": "Staatsgebied",
+ "chooseExamples": "Voorbeelden kiezen"
+ },
+ "step1": {
+ "description": "Statusmodellen houden vaste cameragebieden in de gaten op veranderingen (bijv. deur open/dicht). Objectmodellen voegen classificaties toe aan gedetecteerde objecten (bijv. bekende dieren, bezorgers, enz.).",
+ "name": "Naam",
+ "namePlaceholder": "Voer modelnaam in...",
+ "type": "Type",
+ "typeState": "Staat",
+ "typeObject": "Object",
+ "objectLabel": "Objectlabel",
+ "objectLabelPlaceholder": "Selecteer objecttype...",
+ "classificationType": "Classificatietype",
+ "classificationTypeTip": "Leer meer over classificatietypen",
+ "classificationTypeDesc": "Sublabels voegen extra tekst toe aan het objectlabel (bijv. ‘Persoon: UPS’). Attributen zijn doorzoekbare metadata die apart in de objectmetadata worden opgeslagen.",
+ "classificationSubLabel": "Sublabel",
+ "classificationAttribute": "Attribuut",
+ "classes": "Klassen",
+ "classesTip": "Meer over klassen leren",
+ "classesStateDesc": "Definieer de verschillende staten waarin uw cameragebied zich kan bevinden. Bijvoorbeeld: ‘open’ en ‘gesloten’ voor een garagedeur.",
+ "classesObjectDesc": "Definieer de verschillende categorieën om gedetecteerde objecten in te classificeren. Bijvoorbeeld: ‘bezorger’, ‘bewoner’, ‘vreemdeling’ voor persoonsclassificatie.",
+ "classPlaceholder": "Voer klassenaam in...",
+ "errors": {
+ "nameRequired": "Modelnaam is vereist",
+ "nameLength": "De modelnaam mag maximaal 64 tekens lang zijn",
+ "nameOnlyNumbers": "Modelnaam mag niet alleen uit cijfers bestaan",
+ "classRequired": "Minimaal 1 klasse is vereist",
+ "classesUnique": "Klassennamen moeten uniek zijn",
+ "stateRequiresTwoClasses": "Statusmodellen vereisen minimaal 2 klassen",
+ "objectLabelRequired": "Selecteer een objectlabel",
+ "objectTypeRequired": "Selecteer een classificatietype",
+ "noneNotAllowed": "De klasse 'none' is niet toegestaan"
+ },
+ "states": "Staten"
+ },
+ "step2": {
+ "description": "Selecteer camera’s en definieer voor elke camera het te monitoren gebied. Het model zal de status van deze gebieden classificeren.",
+ "cameras": "Camera's",
+ "selectCamera": "Selecteer camera",
+ "noCameras": "Klik op + om camera’s toe te voegen",
+ "selectCameraPrompt": "Selecteer een camera uit de lijst om het te monitoren gebied te definiëren"
+ },
+ "step3": {
+ "selectImagesPrompt": "Selecteer alle afbeeldingen met: {{className}}",
+ "selectImagesDescription": "Klik op afbeeldingen om ze te selecteren. Klik op doorgaan wanneer je klaar bent met deze klasse.",
+ "generating": {
+ "title": "Voorbeeldafbeeldingen genereren",
+ "description": "Frigate haalt representatieve afbeeldingen uit je opnames. Dit kan even duren..."
+ },
+ "training": {
+ "title": "Model trainen",
+ "description": "Je model wordt op de achtergrond getraind. Sluit dit venster, en je model zal starten zodra de training is voltooid."
+ },
+ "retryGenerate": "Generatie opnieuw proberen",
+ "noImages": "Geen voorbeeldafbeeldingen gegenereerd",
+ "classifying": "Classificeren en trainen...",
+ "trainingStarted": "Training succesvol gestart",
+ "errors": {
+ "noCameras": "Geen camera’s geconfigureerd",
+ "noObjectLabel": "Geen objectlabel geselecteerd",
+ "generateFailed": "Genereren van voorbeelden mislukt: {{error}}",
+ "generationFailed": "Generatie mislukt. Probeer het opnieuw.",
+ "classifyFailed": "Afbeeldingen classificeren mislukt: {{error}}"
+ },
+ "generateSuccess": "Met succes gegenereerde voorbeeldafbeeldingen",
+ "allImagesRequired_one": "Classificeer alle afbeeldingen. {{count}} afbeelding resterend.",
+ "allImagesRequired_other": "Classificeer alle afbeeldingen. {{count}} afbeeldingen resterend.",
+ "modelCreated": "Model succesvol aangemaakt. Gebruik de weergave Recente classificaties om afbeeldingen voor ontbrekende statussen toe te voegen en train vervolgens het model.",
+ "missingStatesWarning": {
+ "title": "Voorbeelden van ontbrekende staten",
+ "description": "Het wordt aanbevolen om voor alle staten voorbeelden te selecteren voor het beste resultaat. Je kunt doorgaan zonder alle staten te selecteren, maar het model wordt pas getraind zodra alle staten afbeeldingen hebben. Na het doorgaan kun je in de weergave ‘Recente Classificaties’ de ontbrekende staten van afbeeldingen voorzien, en daarna het model trainen."
+ }
+ }
+ },
+ "deleteModel": {
+ "title": "Classificatiemodel verwijderen",
+ "single": "Weet u zeker dat u {{name}} wilt verwijderen? Hiermee worden alle bijbehorende gegevens, inclusief afbeeldingen en trainingsgegevens, definitief verwijderd. Deze actie kan niet ongedaan worden gemaakt.",
+ "desc_one": "Weet u zeker dat u {{count}} model wilt verwijderen? Hiermee worden alle bijbehorende gegevens, inclusief afbeeldingen en trainingsgegevens, permanent verwijderd. Deze actie kan niet ongedaan worden gemaakt.",
+ "desc_other": "Weet u zeker dat u {{count}} modellen wilt verwijderen? Hiermee worden alle bijbehorende gegevens, inclusief afbeeldingen en trainingsgegevens, permanent verwijderd. Deze actie kan niet ongedaan worden gemaakt."
+ },
+ "menu": {
+ "objects": "Objecten",
+ "states": "Staten"
+ },
+ "details": {
+ "scoreInfo": "Score geeft het gemiddelde classificatievertrouwen weer over alle detecties van dit object.",
+ "none": "Geen overeenkomst",
+ "unknown": "Onbekend"
+ },
+ "edit": {
+ "title": "Classificatiemodel bewerken",
+ "descriptionState": "Bewerk de klassen voor dit statusclassificatiemodel. Wijzigingen vereisen dat het model opnieuw wordt getraind.",
+ "descriptionObject": "Bewerk het objecttype en het classificatietype voor dit objectclassificatiemodel.",
+ "stateClassesInfo": "Let op: het wijzigen van statusklassen vereist dat het model opnieuw wordt getraind met de bijgewerkte klassen."
+ },
+ "tooltip": {
+ "trainingInProgress": "Model is momenteel aan het trainen",
+ "noNewImages": "Geen nieuwe afbeeldingen om te trainen. Classificeer eerst meer afbeeldingen in de dataset.",
+ "modelNotReady": "Model is niet klaar voor training",
+ "noChanges": "Geen wijzigingen in de dataset sinds de laatste training."
+ },
+ "none": "Geen overeenkomst"
+}
diff --git a/web/public/locales/nl/views/configEditor.json b/web/public/locales/nl/views/configEditor.json
index 5bd94a242b..50a146cb63 100644
--- a/web/public/locales/nl/views/configEditor.json
+++ b/web/public/locales/nl/views/configEditor.json
@@ -12,5 +12,7 @@
},
"configEditor": "Configuratie Bewerken",
"saveOnly": "Alleen opslaan",
- "confirm": "Afsluiten zonder op te slaan?"
+ "confirm": "Afsluiten zonder op te slaan?",
+ "safeConfigEditor": "Configuratie-editor (veilige modus)",
+ "safeModeDescription": "Frigate is in veilige modus vanwege een configuratievalidatiefout."
}
diff --git a/web/public/locales/nl/views/events.json b/web/public/locales/nl/views/events.json
index 269cadffc6..3086373783 100644
--- a/web/public/locales/nl/views/events.json
+++ b/web/public/locales/nl/views/events.json
@@ -34,5 +34,30 @@
"markTheseItemsAsReviewed": "Markeer deze items als beoordeeld",
"selected_other": "{{count}} geselecteerd",
"selected_one": "{{count}} geselecteerd",
- "detected": "gedetecteerd"
+ "detected": "gedetecteerd",
+ "suspiciousActivity": "Verdachte activiteit",
+ "threateningActivity": "Bedreigende activiteit",
+ "detail": {
+ "noDataFound": "Geen gedetailleerde gegevens om te beoordelen",
+ "aria": "Detailweergave in- of uitschakelen",
+ "trackedObject_one": "{{count}} object",
+ "trackedObject_other": "{{count}} objecten",
+ "noObjectDetailData": "Geen objectdetails beschikbaar.",
+ "label": "Detail",
+ "settings": "Instellingen voor detailweergave",
+ "alwaysExpandActive": {
+ "desc": "Altijd de objectdetails van het actieve beoordelingsitem uitklappen wanneer deze beschikbaar zijn.",
+ "title": "Het huidige item altijd uitvouwen"
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Gevolgd punt",
+ "clickToSeek": "Klik om naar deze tijd te zoeken"
+ },
+ "zoomIn": "Zoom in",
+ "zoomOut": "Zoom uit",
+ "normalActivity": "Normaal",
+ "needsReview": "Heeft een beoordeling nodig",
+ "securityConcern": "Beveiligingsprobleem",
+ "select_all": "Alle"
}
diff --git a/web/public/locales/nl/views/explore.json b/web/public/locales/nl/views/explore.json
index 78c2c7116d..7372925d77 100644
--- a/web/public/locales/nl/views/explore.json
+++ b/web/public/locales/nl/views/explore.json
@@ -33,7 +33,9 @@
"details": "Details",
"video": "video",
"snapshot": "snapshot",
- "object_lifecycle": "objectlevenscyclus"
+ "object_lifecycle": "objectlevenscyclus",
+ "thumbnail": "thumbnail",
+ "tracking_details": "trackinggegevens"
},
"objectLifecycle": {
"createObjectMask": "Objectmasker maken",
@@ -102,12 +104,16 @@
"success": {
"regenerate": "Er is een nieuwe beschrijving aangevraagd bij {{provider}}. Afhankelijk van de snelheid van je provider kan het regenereren van de nieuwe beschrijving enige tijd duren.",
"updatedSublabel": "Sublabel succesvol bijgewerkt.",
- "updatedLPR": "Kenteken succesvol bijgewerkt."
+ "updatedLPR": "Kenteken succesvol bijgewerkt.",
+ "audioTranscription": "Audio-transcriptie succesvol aangevraagd. Afhankelijk van de snelheid van uw Frigate-server kan het even duren voordat de transcriptie voltooid is.",
+ "updatedAttributes": "Attributen succesvol bijgewerkt."
},
"error": {
"updatedSublabelFailed": "Het is niet gelukt om het sublabel bij te werken: {{errorMessage}}",
"regenerate": "Het is niet gelukt om {{provider}} aan te roepen voor een nieuwe beschrijving: {{errorMessage}}",
- "updatedLPRFailed": "Kentekenplaat bijwerken mislukt: {{errorMessage}}"
+ "updatedLPRFailed": "Kentekenplaat bijwerken mislukt: {{errorMessage}}",
+ "audioTranscription": "Audiotranscriptie aanvragen mislukt: {{errorMessage}}",
+ "updatedAttributesFailed": "Attributen konden niet worden bijgewerkt: {{errorMessage}}"
}
}
},
@@ -152,8 +158,16 @@
},
"recognizedLicensePlate": "Erkende kentekenplaat",
"snapshotScore": {
- "label": "Snapshot scoren"
- }
+ "label": "Snapshot score"
+ },
+ "score": {
+ "label": "Score"
+ },
+ "editAttributes": {
+ "title": "Bewerk attributen",
+ "desc": "Selecteer classificatiekenmerken voor dit {{label}}"
+ },
+ "attributes": "Classificatie-kenmerken"
},
"itemMenu": {
"downloadVideo": {
@@ -182,6 +196,28 @@
"downloadSnapshot": {
"label": "Download snapshot",
"aria": "Download snapshot"
+ },
+ "addTrigger": {
+ "label": "Trigger toevoegen",
+ "aria": "Voeg een trigger toe voor dit gevolgde object"
+ },
+ "audioTranscription": {
+ "label": "Transcriberen",
+ "aria": "Audiotranscriptie aanvragen"
+ },
+ "showObjectDetails": {
+ "label": "Objectpad weergeven"
+ },
+ "hideObjectDetails": {
+ "label": "Verberg objectpad"
+ },
+ "viewTrackingDetails": {
+ "label": "Bekijk trackinggegevens",
+ "aria": "Toon de trackinggegevens"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Download schone snapshot",
+ "aria": "Download schone snapshot"
}
},
"noTrackedObjects": "Geen gevolgde objecten gevonden",
@@ -194,14 +230,71 @@
"error": "Verwijderen van gevolgd object mislukt: {{errorMessage}}"
}
},
- "tooltip": "{{type}} komt voor {{confidence}}% overeen met de zoekopdracht"
+ "tooltip": "{{type}} komt voor {{confidence}}% overeen met de zoekopdracht",
+ "previousTrackedObject": "Vorig gevolgd object",
+ "nextTrackedObject": "Volgende gevolgde object"
},
"dialog": {
"confirmDelete": {
"title": "Bevestig Verwijderen",
- "desc": "Het verwijderen van dit gevolgde object verwijdert de snapshot, alle opgeslagen embeddings en eventuele bijbehorende levenscyclusgegevens van het object. Opgenomen videobeelden van dit object in de Geschiedenisweergave worden NIET verwijderd.
Weet je zeker dat je wilt doorgaan?"
+ "desc": "Het verwijderen van dit gevolgde object verwijdert de snapshot, alle opgeslagen embeddings en eventuele bijbehorende trackinggegevens van het object. Opgenomen videobeelden van dit object in de Geschiedenisweergave worden NIET verwijderd.
Weet je zeker dat je wilt doorgaan?"
}
},
"fetchingTrackedObjectsFailed": "Fout bij het ophalen van gevolgde objecten: {{errorMessage}}",
- "exploreMore": "Verken meer {{label}} objecten"
+ "exploreMore": "Verken meer {{label}} objecten",
+ "aiAnalysis": {
+ "title": "AI-analyse"
+ },
+ "concerns": {
+ "label": "Zorgen"
+ },
+ "trackingDetails": {
+ "title": "Trackinggegevens",
+ "noImageFound": "Er is geen afbeelding beschikbaar voor dit tijdstip.",
+ "createObjectMask": "Objectmasker maken",
+ "adjustAnnotationSettings": "Annotatie-instellingen aanpassen",
+ "scrollViewTips": "Klik om de belangrijke momenten uit de levenscyclus van dit object te bekijken.",
+ "autoTrackingTips": "Als u een automatische objectvolgende camera gebruikt, zal het objectkader onnauwkeurig zijn.",
+ "count": "{{first}} van {{second}}",
+ "trackedPoint": "Volgpunt",
+ "lifecycleItemDesc": {
+ "visible": "{{label}} gedetecteerd",
+ "entered_zone": "{{label}} in zone {{zones}}",
+ "active": "{{label}} Werd actief",
+ "stationary": "{{label}} werd stationair",
+ "attribute": {
+ "faceOrLicense_plate": "{{attribute}} Gedetecteerd voor {{label}}",
+ "other": "{{label}} Herkend als {{attribute}}"
+ },
+ "gone": "{{label}} vertrok",
+ "heard": "{{label}} gehoord",
+ "external": "{{label}} gedetecteerd",
+ "header": {
+ "zones": "Zones",
+ "ratio": "Verhouding",
+ "area": "Gebied",
+ "score": "Score"
+ }
+ },
+ "annotationSettings": {
+ "title": "Annotatie-instellingen",
+ "showAllZones": {
+ "title": "Toon alle zones",
+ "desc": "Toon altijd zones op frames waar objecten een zone zijn binnengegaan."
+ },
+ "offset": {
+ "label": "Annotatie-afwijking",
+ "desc": "Deze gegevens zijn afkomstig van de detectiestream van je camera, maar worden weergegeven op beelden uit de opnamestream. Het is onwaarschijnlijk dat deze twee streams perfect gesynchroniseerd zijn. Hierdoor zullen het objectkader en het beeld niet exact op elkaar aansluiten. Met deze instelling kun je de annotaties vooruit of achteruit in de tijd verschuiven om ze beter uit te lijnen met het opgenomen beeldmateriaal.",
+ "millisecondsToOffset": "Aantal milliseconden om objectkader mee te verschuiven. Standaard: 0",
+ "tips": "Verlaag de waarde als de videoweergave sneller is dan de objectkaders en hun trajectpunten, en verhoog de waarde als de videoweergave achterloopt. Deze waarde kan negatief zijn.",
+ "toast": {
+ "success": "Annotatieverschuiving voor {{camera}} is opgeslagen in het configuratiebestand."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Vorige dia",
+ "next": "Volgende dia"
+ }
+ }
}
diff --git a/web/public/locales/nl/views/exports.json b/web/public/locales/nl/views/exports.json
index 2589f37c7a..b4223a6123 100644
--- a/web/public/locales/nl/views/exports.json
+++ b/web/public/locales/nl/views/exports.json
@@ -13,5 +13,11 @@
},
"noExports": "Geen export gevonden",
"deleteExport": "Verwijder Export",
- "deleteExport.desc": "Weet je zeker dat je dit wilt wissen: {{exportName}}?"
+ "deleteExport.desc": "Weet je zeker dat je dit wilt wissen: {{exportName}}?",
+ "tooltip": {
+ "shareExport": "Deel export",
+ "downloadVideo": "Download video",
+ "editName": "Naam bewerken",
+ "deleteExport": "Verwijder export"
+ }
}
diff --git a/web/public/locales/nl/views/faceLibrary.json b/web/public/locales/nl/views/faceLibrary.json
index ecc636fdae..88ce52e0fb 100644
--- a/web/public/locales/nl/views/faceLibrary.json
+++ b/web/public/locales/nl/views/faceLibrary.json
@@ -13,13 +13,14 @@
"documentTitle": "Gezichtsbibliotheek - Frigate",
"description": {
"placeholder": "Voer een naam in voor deze verzameling",
- "addFace": "Doorloop het toevoegen van een nieuwe collectie aan de gezichtenbibliotheek.",
+ "addFace": "Voeg een nieuwe collectie toe aan de gezichtenbibliotheek door je eerste afbeelding te uploaden.",
"invalidName": "Ongeldige naam. Namen mogen alleen letters, cijfers, spaties, apostroffen, underscores en koppeltekens bevatten."
},
"train": {
- "title": "Train",
- "aria": "Selecteer trainen",
- "empty": "Er zijn geen recente pogingen tot gezichtsherkenning"
+ "title": "Recente herkenningen",
+ "aria": "Selecteer recente herkenningen",
+ "empty": "Er zijn geen recente pogingen tot gezichtsherkenning",
+ "titleShort": "Recent"
},
"selectFace": "Selecteer gezicht",
"toast": {
@@ -36,7 +37,7 @@
"deletedFace_one": "{{count}} gezicht is succesvol verwijderd.",
"deletedFace_other": "{{count}} gezichten zijn succesvol verwijderd.",
"trainedFace": "Met succes getraind gezicht.",
- "updatedFaceScore": "De gezichtsscore is succesvol bijgewerkt.",
+ "updatedFaceScore": "De gezichtsscore is succesvol bijgewerkt naar {{name}} ({{score}}).",
"deletedName_one": "{{count}} gezicht is succesvol verwijderd.",
"deletedName_other": "{{count}} gezichten zijn succesvol verwijderd.",
"uploadedImage": "Afbeelding succesvol geüpload.",
@@ -46,7 +47,7 @@
},
"imageEntry": {
"dropActive": "Zet de afbeelding hier neer…",
- "dropInstructions": "Sleep een afbeelding hierheen of klik om te selecteren",
+ "dropInstructions": "Sleep een afbeelding hierheen, of klik om te selecteren",
"maxSize": "Maximale grootte: {{size}}MB",
"validation": {
"selectImage": "Selecteer een afbeeldingbestand."
@@ -56,7 +57,7 @@
"title": "Collectie maken",
"desc": "Een nieuwe collectie maken",
"new": "Creëer een nieuw gezicht",
- "nextSteps": "Om een sterke basis op te bouwen:
Gebruik het tabblad Trainen om per gedetecteerd persoon afbeeldingen te selecteren en te trainen.
Richt je op frontale afbeeldingen voor het beste resultaat; vermijd trainingsbeelden waarop gezichten vanuit een hoek te zien zijn.
"
+ "nextSteps": "Om een sterke basis op te bouwen:
Gebruik het tabblad ‘Recente herkenningen’ om afbeeldingen te selecteren en te trainen voor elke gedetecteerde persoon.
Richt je op afbeeldingen die recht van voren genomen zijn voor de beste resultaten, vermijd trainingsafbeeldingen waarop gezichten onder een hoek te zien zijn.
"
},
"button": {
"addFace": "Gezicht toevoegen",
diff --git a/web/public/locales/nl/views/live.json b/web/public/locales/nl/views/live.json
index d09f4c6994..e6dd73bea5 100644
--- a/web/public/locales/nl/views/live.json
+++ b/web/public/locales/nl/views/live.json
@@ -41,7 +41,15 @@
"label": "Klik in het frame om de PTZ-camera te centreren"
}
},
- "presets": "PTZ-camerapresets"
+ "presets": "PTZ-camerapresets",
+ "focus": {
+ "in": {
+ "label": "Focus PTZ-camera in"
+ },
+ "out": {
+ "label": "Focus PTZ-camera uit"
+ }
+ }
},
"camera": {
"enable": "Camera inschakelen",
@@ -83,8 +91,8 @@
"desc": "Schakel deze optie in om te blijven streamen wanneer de speler verborgen is."
},
"recordDisabledTips": "Aangezien opnemen is uitgeschakeld of beperkt in de configuratie van deze camera, zal alleen een momentopname worden opgeslagen.",
- "title": "Opname op aanvraag",
- "tips": "Start een handmatige gebeurtenis op basis van de opnamebehoudinstellingen van deze camera.",
+ "title": "Op aanvraag",
+ "tips": "Download direct een snapshot of start handmatig een gebeurtenis op basis van de opnamebewaarinstellingen van deze camera.",
"failedToStart": "Handmatige opname starten mislukt."
},
"notifications": "Meldingen",
@@ -120,12 +128,15 @@
"documentation": "Lees de documentatie ",
"title": "Audio moet via je camera komen en in go2rtc geconfigureerd zijn voor deze stream."
},
- "unavailable": "Audio is niet beschikbaar voor deze stroom",
+ "unavailable": "Audio is niet beschikbaar voor deze stream",
"available": "Audio is beschikbaar voor deze stream"
},
"playInBackground": {
"label": "Afspelen op de achtergrond",
"tips": "Schakel deze optie in om te blijven streamen wanneer de speler verborgen is."
+ },
+ "debug": {
+ "picker": "Streamselectie is niet beschikbaar in de debugmodus. De debugweergave gebruikt altijd de stream waaraan de detectierol is toegewezen."
}
},
"cameraSettings": {
@@ -135,7 +146,8 @@
"audioDetection": "Audiodetectie",
"autotracking": "Automatisch volgen",
"snapshots": "Momentopnames",
- "cameraEnabled": "Camera ingeschakeld"
+ "cameraEnabled": "Camera ingeschakeld",
+ "transcription": "Audiotranscriptie"
},
"history": {
"label": "Historische beelden weergeven"
@@ -154,5 +166,24 @@
"group": {
"label": "Cameragroep bewerken"
}
+ },
+ "transcription": {
+ "enable": "Live audiotranscriptie inschakelen",
+ "disable": "Live audiotranscriptie uitschakelen"
+ },
+ "snapshot": {
+ "takeSnapshot": "Direct een snapshot downloaden",
+ "noVideoSource": "Geen videobron beschikbaar voor snapshot.",
+ "captureFailed": "Het is niet gelukt om een snapshot te maken.",
+ "downloadStarted": "Snapshot downloaden gestart."
+ },
+ "noCameras": {
+ "title": "Geen camera’s ingesteld",
+ "description": "Begin door een camera te verbinden met Frigate.",
+ "buttonText": "Camera toevoegen",
+ "restricted": {
+ "title": "Geen camera's beschikbaar",
+ "description": "Je hebt geen toestemming om camera's in deze groep te bekijken."
+ }
}
}
diff --git a/web/public/locales/nl/views/search.json b/web/public/locales/nl/views/search.json
index 47487be38b..7552d14395 100644
--- a/web/public/locales/nl/views/search.json
+++ b/web/public/locales/nl/views/search.json
@@ -26,7 +26,8 @@
"search_type": "Zoektype",
"zones": "Zones",
"max_speed": "Max snelheid",
- "after": "Na"
+ "after": "Na",
+ "attributes": "Kenmerken"
},
"toast": {
"error": {
diff --git a/web/public/locales/nl/views/settings.json b/web/public/locales/nl/views/settings.json
index 5189f57bfd..dade19f15f 100644
--- a/web/public/locales/nl/views/settings.json
+++ b/web/public/locales/nl/views/settings.json
@@ -7,10 +7,12 @@
"classification": "Classificatie-instellingen - Frigate",
"masksAndZones": "Masker- en zone-editor - Frigate",
"object": "Foutopsporing Frigate",
- "general": "Algemene instellingen - Frigate",
+ "general": "Gebruikersinterface-instellingen - Frigate",
"frigatePlus": "Frigate+ Instellingen - Frigate",
"notifications": "Meldingsinstellingen - Frigate",
- "enrichments": "Verrijkingsinstellingen - Frigate"
+ "enrichments": "Verrijkingsinstellingen - Frigate",
+ "cameraManagement": "Camera's beheren - Frigate",
+ "cameraReview": "Camera Review Instellingen - Frigate"
},
"menu": {
"ui": "Gebruikersinterface",
@@ -22,7 +24,11 @@
"notifications": "Meldingen",
"cameras": "Camera-instellingen",
"frigateplus": "Frigate+",
- "enrichments": "Verrijkingen"
+ "enrichments": "Verrijkingen",
+ "triggers": "Triggers",
+ "roles": "Rollen",
+ "cameraManagement": "Beheer",
+ "cameraReview": "Beoordeel"
},
"dialog": {
"unsavedChanges": {
@@ -44,9 +50,17 @@
"playAlertVideos": {
"label": "Meldingen afspelen",
"desc": "Standaard worden recente meldingen op het Live dashboard afgespeeld als kleine lusvideo's. Schakel deze optie uit om alleen een statische afbeelding van recente meldingen weer te geven op dit apparaat/browser."
+ },
+ "displayCameraNames": {
+ "label": "Altijd cameranamen weergeven",
+ "desc": "Toon altijd de cameranamen in een label op het live-cameradashboard."
+ },
+ "liveFallbackTimeout": {
+ "label": "Live speler fallback time-out",
+ "desc": "Wanneer de hoogwaardige livestream van een camera niet beschikbaar is, schakel dan na dit aantal seconden terug naar de modus voor lage bandbreedte. Standaard: 3."
}
},
- "title": "Algemene instellingen",
+ "title": "Gebruikersinterface instellingen",
"storedLayouts": {
"title": "Opgeslagen indelingen",
"clearAll": "Alle indelingen wissen",
@@ -58,7 +72,7 @@
"clearAll": "Alle streaminginstellingen wissen"
},
"recordingsViewer": {
- "title": "Opnamebekijker",
+ "title": "Opnameweergave",
"defaultPlaybackRate": {
"label": "Standaard afspeelsnelheid",
"desc": "Standaard afspeelsnelheid voor het afspelen van opnames."
@@ -178,7 +192,45 @@
"desc": "Schakel een camera tijdelijk uit totdat Frigate opnieuw wordt gestart. Het uitschakelen van een camera stopt de verwerking van de streams van deze camera volledig door Frigate. Detectie, opname en foutopsporing zijn dan niet beschikbaar. Let op: dit schakelt go2rtc-restreams niet uit.",
"title": "Streams"
},
- "title": "Camera-instellingen"
+ "title": "Camera-instellingen",
+ "object_descriptions": {
+ "title": "AI-gegenereerde objectomschrijvingen",
+ "desc": "AI-gegenereerde objectomschrijvingen tijdelijk uitschakelen voor deze camera. Wanneer uitgeschakeld, zullen omschrijvingen van gevolgde objecten op deze camera niet aangevraagd worden."
+ },
+ "review_descriptions": {
+ "title": "Generatieve-AI Beoordelingsbeschrijvingen",
+ "desc": "Tijdelijk generatieve-AI-beoordelingsbeschrijvingen voor deze camera in- of uitschakelen. Wanneer dit is uitgeschakeld, worden er geen door AI gegenereerde beschrijvingen opgevraagd voor beoordelingsitems van deze camera."
+ },
+ "addCamera": "Nieuwe camera toevoegen",
+ "editCamera": "Camera bewerken:",
+ "selectCamera": "Selecteer een camera",
+ "backToSettings": "Terug naar camera-instellingen",
+ "cameraConfig": {
+ "add": "Camera toevoegen",
+ "edit": "Camera bewerken",
+ "description": "Configureer de camera-instellingen, inclusief streaming-inputs en functies.",
+ "name": "Cameranaam",
+ "nameRequired": "Cameranaam is vereist",
+ "nameInvalid": "De cameranaam mag alleen letters, cijfers, onderstrepingstekens of koppeltekens bevatten",
+ "namePlaceholder": "bijv. voor_deur",
+ "enabled": "Ingeschakeld",
+ "ffmpeg": {
+ "inputs": "Streams-Input",
+ "path": "Stroompad",
+ "pathRequired": "Streampad is vereist",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Functie",
+ "rolesRequired": "Er is ten minste één functie vereist",
+ "rolesUnique": "Elke functie (audio, detecteren, opnemen) kan slechts aan één stream worden toegewezen",
+ "addInput": "Inputstream toevoegen",
+ "removeInput": "Inputstream verwijderen",
+ "inputsRequired": "Er is ten minste één stream-input vereist"
+ },
+ "toast": {
+ "success": "Camera {{cameraName}} is succesvol opgeslagen"
+ },
+ "nameLength": "Cameranaam mag niet langer zijn dan 24 tekens."
+ }
},
"masksAndZones": {
"filter": {
@@ -199,7 +251,8 @@
"mustNotContainPeriod": "De zonenaam mag geen punten bevatten.",
"hasIllegalCharacter": "De zonenaam bevat ongeldige tekens.",
"mustNotBeSameWithCamera": "De zonenaam mag niet gelijk zijn aan de cameranaam.",
- "alreadyExists": "Er bestaat al een zone met deze naam voor deze camera."
+ "alreadyExists": "Er bestaat al een zone met deze naam voor deze camera.",
+ "mustHaveAtLeastOneLetter": "De zonenaam moet minimaal één letter bevatten."
}
},
"distance": {
@@ -253,7 +306,7 @@
"name": {
"title": "Naam",
"inputPlaceHolder": "Voer een naam in…",
- "tips": "De naam moet minimaal 2 tekens lang zijn en mag niet gelijk zijn aan de naam van een camera of een andere zone."
+ "tips": "De naam moet minimaal 2 tekens lang zijn, minimaal één letter bevatten en mag niet gelijk zijn aan de naam van een camera of andere zone op deze camera."
},
"inertia": {
"title": "Traagheid",
@@ -292,7 +345,7 @@
"add": "Zone toevoegen",
"allObjects": "Alle objecten",
"toast": {
- "success": "Zone ({{zoneName}}) is opgeslagen. Start Frigate opnieuw om de wijzigingen toe te passen."
+ "success": "Zone ({{zoneName}}) is opgeslagen."
}
},
"motionMasks": {
@@ -317,8 +370,8 @@
"point_other": "{{count}} punten",
"toast": {
"success": {
- "title": "{{polygonName}} is opgeslagen. Herstart Frigate om de wijzigingen toe te passen.",
- "noName": "Bewegingsmasker is opgeslagen. Herstart Frigate om de wijzigingen toe te passen."
+ "title": "{{polygonName}} is opgeslagen.",
+ "noName": "Bewegingsmasker is opgeslagen."
}
},
"add": "Nieuw bewegingsmasker"
@@ -338,8 +391,8 @@
},
"toast": {
"success": {
- "title": "{{polygonName}} is opgeslagen. Herstart Frigate om de wijzigingen toe te passen.",
- "noName": "Objectmasker is opgeslagen. Herstart Frigate om de wijzigingen toe te passen."
+ "title": "{{polygonName}} is opgeslagen.",
+ "noName": "Objectmasker is opgeslagen."
}
},
"point_one": "{{count}} punt",
@@ -420,7 +473,20 @@
"score": "Score",
"ratio": "Verhouding"
},
- "detectorDesc": "Frigate gebruikt je detectoren ({{detectors}}) om objecten in de videostream van je camera te detecteren."
+ "detectorDesc": "Frigate gebruikt je detectoren ({{detectors}}) om objecten in de videostream van je camera te detecteren.",
+ "paths": {
+ "title": "Paden",
+ "desc": "Toon belangrijke punten van het pad van het gevolgde object",
+ "tips": "
Paden
Lijnen en cirkels geven belangrijke punten aan waar het gevolgde object zich tijdens zijn levensduur heeft verplaatst.
"
+ },
+ "openCameraWebUI": "Open de webinterface van {{camera}}",
+ "audio": {
+ "title": "Audio",
+ "noAudioDetections": "Geen audiodetecties",
+ "score": "score",
+ "currentRMS": "Huidige RMS",
+ "currentdbFS": "Huidige dbFS"
+ }
},
"users": {
"title": "Gebruikers",
@@ -429,7 +495,7 @@
"title": "Gebruikersbeheer"
},
"addUser": "Gebruiker toevoegen",
- "updatePassword": "Wachtwoord bijwerken",
+ "updatePassword": "Wachtwoord opnieuw instellen",
"toast": {
"success": {
"createUser": "Gebruiker {{user}} succesvol aangemaakt",
@@ -449,7 +515,7 @@
"role": "Rol",
"noUsers": "Geen gebruikers gevonden.",
"changeRole": "Gebruikersrol wijzigen",
- "password": "Wachtwoord",
+ "password": "Wachtwoord opnieuw instellen",
"deleteUser": "Verwijder gebruiker",
"username": "Gebruikersnaam"
},
@@ -475,7 +541,16 @@
"placeholder": "Wachtwoord bevestigen"
},
"placeholder": "Wachtwoord invoeren",
- "notMatch": "Wachtwoorden komen niet overeen"
+ "notMatch": "Wachtwoorden komen niet overeen",
+ "show": "Wachtwoord weergeven",
+ "hide": "Wachtwoord verbergen",
+ "requirements": {
+ "title": "Wachtwoordvereisten:",
+ "length": "Minimaal 8 tekens",
+ "uppercase": "Minimaal één hoofdletter",
+ "digit": "Minimaal één cijfer",
+ "special": "Minimaal één speciaal teken (!@#$%^&*(),.?\":{}|<>)"
+ }
},
"newPassword": {
"title": "Nieuw wachtwoord",
@@ -485,7 +560,11 @@
}
},
"usernameIsRequired": "Gebruikersnaam is vereist",
- "passwordIsRequired": "Wachtwoord is vereist"
+ "passwordIsRequired": "Wachtwoord is vereist",
+ "currentPassword": {
+ "title": "Huidig wachtwoord",
+ "placeholder": "Voer uw huidige wachtwoord in"
+ }
},
"createUser": {
"title": "Nieuwe gebruiker aanmaken",
@@ -505,8 +584,9 @@
"intro": "Selecteer een gepaste rol voor deze gebruiker:",
"admin": "Beheerder",
"adminDesc": "Volledige toegang tot alle functies.",
- "viewer": "Gebruiker",
- "viewerDesc": "Alleen toegang tot Live-dashboards, Beoordelen, Verkennen en Exports."
+ "viewer": "Kijker",
+ "viewerDesc": "Alleen toegang tot Live-dashboards, Beoordelen, Verkennen en Exports.",
+ "customDesc": "Aangepaste rol met specifieke cameratoegang."
},
"select": "Selecteer een rol"
},
@@ -515,7 +595,12 @@
"updatePassword": "Wachtwoord bijwerken voor {{username}}",
"desc": "Maak een sterk wachtwoord aan om dit account te beveiligen.",
"cannotBeEmpty": "Het wachtwoord kan niet leeg zijn",
- "doNotMatch": "Wachtwoorden komen niet overeen"
+ "doNotMatch": "Wachtwoorden komen niet overeen",
+ "currentPasswordRequired": "Huidig wachtwoord is vereist",
+ "incorrectCurrentPassword": "Het huidige wachtwoord is onjuist",
+ "passwordVerificationFailed": "Wachtwoord kan niet worden geverifieerd",
+ "multiDeviceWarning": "Op alle andere apparaten waarop u bent ingelogd, moet u binnen {{refresh_time}} opnieuw inloggen.",
+ "multiDeviceAdmin": "Je kunt ook alle gebruikers forceren zich onmiddellijk opnieuw te authenticeren door je JWT-geheim te roteren."
}
}
},
@@ -680,5 +765,546 @@
"success": "Verrijkingsinstellingen zijn opgeslagen. Start Frigate opnieuw op om je wijzigingen toe te passen.",
"error": "Configuratiewijzigingen konden niet worden opgeslagen: {{errorMessage}}"
}
+ },
+ "triggers": {
+ "documentTitle": "Triggers",
+ "management": {
+ "title": "Triggers",
+ "desc": "Beheer triggers voor {{camera}}. Gebruik een thumbnail om te triggeren op vergelijkbare thumbnails van het door jou gevolgde object, of gebruik een objectbeschrijving om te triggeren op vergelijkbare beschrijvingen van de door jou opgegeven tekst."
+ },
+ "addTrigger": "Trigger toevoegen",
+ "table": {
+ "name": "Naam",
+ "type": "Type",
+ "content": "Inhoud",
+ "threshold": "Drempel",
+ "actions": "Acties",
+ "noTriggers": "Er zijn geen triggers geconfigureerd voor deze camera.",
+ "edit": "Bewerken",
+ "deleteTrigger": "Trigger verwijderen",
+ "lastTriggered": "Laatst geactiveerd"
+ },
+ "type": {
+ "thumbnail": "Thumbnail",
+ "description": "Beschrijving"
+ },
+ "actions": {
+ "alert": "Markeren als waarschuwing",
+ "notification": "Melding verzenden",
+ "sub_label": "Sublabel toevoegen",
+ "attribute": "Attribuut toevoegen"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Trigger aanmaken",
+ "desc": "Maak een trigger voor camera {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Trigger bewerken",
+ "desc": "Wijzig de instellingen voor de trigger op camera {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Trigger verwijderen",
+ "desc": "Weet u zeker dat u de trigger {{triggerName}} wilt verwijderen? Deze actie kan niet ongedaan worden gemaakt."
+ },
+ "form": {
+ "name": {
+ "title": "Naam",
+ "placeholder": "Geef deze trigger een naam",
+ "error": {
+ "minLength": "Het veld moet minimaal 2 tekens lang zijn.",
+ "invalidCharacters": "Dit veld mag alleen letters, cijfers, onderstrepingstekens en koppeltekens bevatten.",
+ "alreadyExists": "Er bestaat al een trigger met deze naam voor deze camera."
+ },
+ "description": "Voer een unieke naam of beschrijving in om deze trigger te identificeren"
+ },
+ "enabled": {
+ "description": "Deze trigger in- of uitschakelen"
+ },
+ "type": {
+ "title": "Type",
+ "placeholder": "Selecteer het type trigger",
+ "description": "Activeer wanneer een vergelijkbare beschrijving van een gevolgd object wordt gedetecteerd",
+ "thumbnail": "Activeer wanneer een vergelijkbare thumbnail van een gevolgd object wordt gedetecteerd"
+ },
+ "content": {
+ "title": "Inhoud",
+ "imagePlaceholder": "Selecteer een thumbnail",
+ "textPlaceholder": "Tekst invoeren",
+ "imageDesc": "Alleen de meest recente 100 thumbnails worden weergegeven. Als je de gewenste thumbnail niet kunt vinden, bekijk dan eerdere objecten in Verkennen en stel daar een trigger in via het menu.",
+ "textDesc": "Voer tekst in om deze actie te activeren wanneer een vergelijkbare beschrijving van een gevolgd object wordt gedetecteerd.",
+ "error": {
+ "required": "Inhoud is vereist."
+ }
+ },
+ "threshold": {
+ "title": "Drempel",
+ "error": {
+ "min": "De drempelwaarde moet minimaal 0 zijn",
+ "max": "De drempelwaarde mag maximaal 1 zijn"
+ },
+ "desc": "Stel de vergelijkingsdrempel in voor deze trigger. Een hogere drempel betekent dat er een nauwere overeenkomst vereist is om de trigger te activeren."
+ },
+ "actions": {
+ "title": "Acties",
+ "desc": "Standaard stuurt Frigate een MQTT-bericht voor alle triggers. Sublabels voegen de triggernaam toe aan het objectlabel. Attributen zijn doorzoekbare metadata die afzonderlijk worden opgeslagen in de metadata van het gevolgde object.",
+ "error": {
+ "min": "Er moet ten minste één actie worden geselecteerd."
+ }
+ },
+ "friendly_name": {
+ "title": "Gebruiksvriendelijke naam",
+ "placeholder": "Geef een naam of beschrijf deze trigger",
+ "description": "Een optionele gebruiksvriendelijke naam of beschrijvende tekst voor deze trigger."
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Trigger {{name}} is succesvol aangemaakt.",
+ "updateTrigger": "Trigger {{name}} is succesvol bijgewerkt.",
+ "deleteTrigger": "Trigger {{name}} succesvol verwijderd."
+ },
+ "error": {
+ "createTriggerFailed": "Trigger kan niet worden gemaakt: {{errorMessage}}",
+ "updateTriggerFailed": "Trigger kan niet worden bijgewerkt: {{errorMessage}}",
+ "deleteTriggerFailed": "Trigger kan niet worden verwijderd: {{errorMessage}}"
+ }
+ },
+ "semanticSearch": {
+ "title": "Semantisch zoeken is uitgeschakeld",
+ "desc": "Semantisch zoeken moet ingeschakeld zijn om triggers te kunnen gebruiken."
+ },
+ "wizard": {
+ "title": "Trigger maken",
+ "step1": {
+ "description": "Configureer de basisinstellingen voor uw trigger."
+ },
+ "step2": {
+ "description": "Stel de inhoud in die deze trigger activeert."
+ },
+ "step3": {
+ "description": "Configureer de drempelwaarde en acties voor deze trigger."
+ },
+ "steps": {
+ "nameAndType": "Naam en type",
+ "configureData": "Gegevens configureren",
+ "thresholdAndActions": "Drempel en acties"
+ }
+ }
+ },
+ "roles": {
+ "management": {
+ "title": "Beheer van kijkersrollen",
+ "desc": "Beheer aangepaste kijkersrollen en hun camera-toegangsrechten voor deze Frigate-instantie."
+ },
+ "addRole": "Rol toevoegen",
+ "table": {
+ "role": "Rol",
+ "cameras": "Camera's",
+ "actions": "Acties",
+ "noRoles": "Er zijn geen aangepaste rollen gevonden.",
+ "editCameras": "Camera's bewerken",
+ "deleteRole": "Rol verwijderen"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Rol {{role}} succesvol aangemaakt",
+ "updateCameras": "Camera's bijgewerkt voor rol {{role}}",
+ "deleteRole": "Rol {{role}} succesvol verwijderd",
+ "userRolesUpdated_one": "{{count}} gebruiker die aan deze rol was toegewezen, is bijgewerkt naar de rol ‘kijker’, die toegang heeft tot alle camera’s.",
+ "userRolesUpdated_other": "{{count}} gebruikers die aan deze rol waren toegewezen, zijn bijgewerkt naar de rol ‘kijker’, die toegang heeft tot alle camera’s."
+ },
+ "error": {
+ "createRoleFailed": "Kan rol niet aanmaken: {{errorMessage}}",
+ "updateCamerasFailed": "Het is niet gelukt om de camera's bij te werken: {{errorMessage}}",
+ "deleteRoleFailed": "Kan rol niet verwijderen: {{errorMessage}}",
+ "userUpdateFailed": "Het bijwerken van gebruikersrollen is mislukt: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Nieuwe rol maken",
+ "desc": "Voeg een nieuwe rol toe en specificeer de camera-toegangsrechten."
+ },
+ "editCameras": {
+ "title": "Camera’s voor rol bewerken",
+ "desc": "Werk de camera-toegang bij voor de rol {{role}}."
+ },
+ "deleteRole": {
+ "title": "Rol verwijderen",
+ "desc": "Deze actie kan niet ongedaan worden gemaakt. De rol wordt permanent verwijderd en alle gebruikers met deze rol worden toegewezen aan de rol ‘kijker’, die toegang geeft tot alle camera’s.",
+ "warn": "Weet u zeker dat u {{role}} wilt verwijderen?",
+ "deleting": "Verwijderen..."
+ },
+ "form": {
+ "role": {
+ "title": "Rolnaam",
+ "placeholder": "Voer rolnaam in",
+ "desc": "Alleen letters, cijfers, punten en underscores zijn toegestaan.",
+ "roleIsRequired": "Rolnaam is vereist",
+ "roleOnlyInclude": "De rolnaam mag alleen letters, cijfers, . of _ bevatten",
+ "roleExists": "Er bestaat al een rol met deze naam."
+ },
+ "cameras": {
+ "title": "Camera's",
+ "desc": "Selecteer de camera's waartoe deze rol toegang heeft. Er is minimaal één camera vereist.",
+ "required": "Er moet minimaal één camera worden geselecteerd."
+ }
+ }
+ }
+ },
+ "cameraWizard": {
+ "title": "Camera toevoegen",
+ "description": "Volg de onderstaande stappen om een nieuwe camera toe te voegen aan uw Frigate-installatie.",
+ "steps": {
+ "nameAndConnection": "Naam & Verbinding",
+ "streamConfiguration": "Streamconfiguratie",
+ "validationAndTesting": "Validatie & testen",
+ "probeOrSnapshot": "Test of Snapshot"
+ },
+ "save": {
+ "success": "Nieuwe camera {{cameraName}} succesvol opgeslagen.",
+ "failure": "Fout bij het opslaan van {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Resolutie",
+ "video": "Video",
+ "audio": "Audio",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Geef een geldige stream-URL op",
+ "testFailed": "Streamtest mislukt: {{error}}"
+ },
+ "step1": {
+ "description": "Voer de gegevens van uw camera in en kies ervoor om de camera te scannen of selecteer handmatig het merk.",
+ "cameraName": "Cameranaam",
+ "cameraNamePlaceholder": "bijv. voordeur of achtertuin camera",
+ "host": "Host/IP-adres",
+ "port": "Port",
+ "username": "Gebruikersnaam",
+ "usernamePlaceholder": "Optioneel",
+ "password": "Wachtwoord",
+ "passwordPlaceholder": "Optioneel",
+ "selectTransport": "Selecteer transportprotocol",
+ "cameraBrand": "Cameramerk",
+ "selectBrand": "Selecteer cameramerk voor URL-sjabloon",
+ "customUrl": "Aangepaste stream-URL",
+ "brandInformation": "Merkinformatie",
+ "brandUrlFormat": "Voor camera's met het RTSP URL-formaat als: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://gebruikersnaam:wachtwoord@host:poort/pad",
+ "testConnection": "Testverbinding",
+ "testSuccess": "Verbindingstest succesvol!",
+ "testFailed": "Verbindingstest mislukt. Controleer uw invoer en probeer het opnieuw.",
+ "streamDetails": "Streamdetails",
+ "warnings": {
+ "noSnapshot": "Er kan geen snapshot worden opgehaald uit de geconfigureerde stream."
+ },
+ "errors": {
+ "brandOrCustomUrlRequired": "Selecteer een cameramerk met host/IP of kies 'Overig' voor een aangepaste URL",
+ "nameRequired": "Cameranaam is vereist",
+ "nameLength": "De cameranaam mag maximaal 64 tekens lang zijn",
+ "invalidCharacters": "Cameranaam bevat ongeldige tekens",
+ "nameExists": "Cameranaam bestaat al",
+ "brands": {
+ "reolink-rtsp": "Reolink RTSP wordt niet aanbevolen. Schakel HTTP in via de firmware-instellingen van de camera en start de wizard opnieuw."
+ },
+ "customUrlRtspRequired": "Aangepaste URL’s moeten beginnen met “rtsp://”. Handmatige configuratie is vereist voor camerastreams die geen RTSP gebruiken."
+ },
+ "docs": {
+ "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
+ },
+ "testing": {
+ "probingMetadata": "Camerametadata wordt onderzocht...",
+ "fetchingSnapshot": "Camerasnapshot ophalen..."
+ },
+ "connectionSettings": "Verbindingsinstellingen",
+ "detectionMethod": "Stream-detectiemethode",
+ "onvifPort": "ONVIF-poort",
+ "probeMode": "Camera testen",
+ "manualMode": "Handmatige selectie",
+ "detectionMethodDescription": "Test de camera met ONVIF (indien ondersteund) om de stream-URL’s van de camera te vinden, of selecteer handmatig het cameramerk om vooraf gedefinieerde URL’s te gebruiken. Om een aangepaste RTSP-URL in te voeren, kies de handmatige methode en selecteer “Anders”.",
+ "onvifPortDescription": "Voor camera's die ONVIF ondersteunen, is dit meestal 80 of 8080.",
+ "useDigestAuth": "Gebruik digest-authenticatie",
+ "useDigestAuthDescription": "Gebruik HTTP-digestauthenticatie voor ONVIF. Sommige camera’s vereisen mogelijk een aparte ONVIF-gebruikersnaam en -wachtwoord in plaats van de standaard ‘admin’ gebruiker."
+ },
+ "step2": {
+ "description": "Controleer de camera op beschikbare streams of configureer handmatige instellingen op basis van de door u geselecteerde detectiemethode.",
+ "streamsTitle": "Camerastreams",
+ "addStream": "Stream toevoegen",
+ "addAnotherStream": "Voeg een extra stream toe",
+ "streamTitle": "Stream {{number}}",
+ "streamUrl": "Stream-URL",
+ "streamUrlPlaceholder": "rtsp://gebruikersnaam:wachtwoord@host:poort/pad",
+ "url": "URL",
+ "resolution": "Resolutie",
+ "selectResolution": "Selecteer resolutie",
+ "quality": "Kwaliteit",
+ "selectQuality": "Selecteer kwaliteit",
+ "roles": "Functie",
+ "roleLabels": {
+ "detect": "Objectdetectie",
+ "record": "Opname",
+ "audio": "Audio"
+ },
+ "testStream": "Testverbinding",
+ "testSuccess": "Verbindingstest succesvol!",
+ "testFailed": "Verbindingstest mislukt. Controleer uw invoer en probeer het opnieuw.",
+ "testFailedTitle": "Test mislukt",
+ "connected": "Aangesloten",
+ "notConnected": "Niet verbonden",
+ "featuresTitle": "Functies",
+ "go2rtc": "Verminder verbindingen met de camera",
+ "detectRoleWarning": "Er moet minimaal één stream de rol 'detecteren' hebben om door te kunnen gaan.",
+ "rolesPopover": {
+ "title": "Streamrollen",
+ "detect": "Hoofdfeed voor objectdetectie.",
+ "record": "Slaat segmenten van de videofeed op op basis van de configuratie-instellingen.",
+ "audio": "Feed voor op audio gebaseerde detectie."
+ },
+ "featuresPopover": {
+ "title": "Streamfuncties",
+ "description": "Gebruik go2rtc-herstreaming om het aantal verbindingen met je camera te verminderen."
+ },
+ "streamDetails": "Streamdetails",
+ "probing": "Camera wordt getest...",
+ "retry": "Opnieuw proberen",
+ "testing": {
+ "probingMetadata": "Camera-metadata onderzoeken...",
+ "fetchingSnapshot": "Camerasnapshot ophalen..."
+ },
+ "probeFailed": "Het testen van de camera is mislukt: {{error}}",
+ "probingDevice": "Onderzoekapparaat...",
+ "probeSuccessful": "Test succesvol",
+ "probeError": "Testfout",
+ "probeNoSuccess": "Test mislukt",
+ "deviceInfo": "Apparaatinformatie",
+ "manufacturer": "Fabrikant",
+ "model": "Model",
+ "firmware": "Firmware",
+ "profiles": "Profielen",
+ "ptzSupport": "PTZ-ondersteuning",
+ "autotrackingSupport": "Ondersteuning voor automatische tracking",
+ "presets": "Standaardinstellingen",
+ "rtspCandidates": "RTSP-kandidaten",
+ "rtspCandidatesDescription": "De volgende RTSP-URL's zijn gevonden door de camera te scannen. Test de verbinding om de metagegevens van de stream te bekijken.",
+ "noRtspCandidates": "Er zijn geen RTSP-URL’s gevonden van de camera. Je inloggegevens zijn mogelijk onjuist, of de camera ondersteunt ONVIF of de gebruikte methode voor het ophalen van RTSP-URL’s niet. Ga terug en voer de RTSP-URL handmatig in.",
+ "candidateStreamTitle": "Kandidaat {{number}}",
+ "useCandidate": "Gebruik",
+ "uriCopy": "Kopiëren",
+ "uriCopied": "URI gekopieerd naar klembord",
+ "testConnection": "Testverbinding",
+ "toggleUriView": "Klik om te schakelen tussen volledige URI-weergave",
+ "errors": {
+ "hostRequired": "Host/IP-adres is vereist"
+ }
+ },
+ "step3": {
+ "description": "Configureer streamrollen en voeg extra streams toe voor uw camera.",
+ "validationTitle": "Streamvalidatie",
+ "connectAllStreams": "Verbind alle streams",
+ "reconnectionSuccess": "Opnieuw verbinden gelukt.",
+ "reconnectionPartial": "Bij sommige streams kon de verbinding niet worden hersteld.",
+ "streamUnavailable": "Streamvoorbeeld niet beschikbaar",
+ "reload": "Herladen",
+ "connecting": "Verbinden...",
+ "streamTitle": "Stream {{number}}",
+ "valid": "Geldig",
+ "failed": "Mislukt",
+ "notTested": "Niet getest",
+ "connectStream": "Verbinden",
+ "connectingStream": "Verbinden",
+ "disconnectStream": "Verbreek verbinding",
+ "estimatedBandwidth": "Geschatte bandbreedte",
+ "roles": "Functie",
+ "none": "Niets",
+ "error": "Fout",
+ "streamValidated": "Stream {{number}} is succesvol gevalideerd",
+ "streamValidationFailed": "Stream {{number}} validatie mislukt",
+ "saveAndApply": "Nieuwe camera opslaan",
+ "saveError": "Ongeldige configuratie, Controleer uw instellingen.",
+ "issues": {
+ "title": "Streamvalidatie",
+ "videoCodecGood": "Videocodec is {{codec}}.",
+ "audioCodecGood": "Audiocodec is {{codec}}.",
+ "noAudioWarning": "Geen audio gedetecteerd voor deze stream, opnames bevatten geen audio.",
+ "audioCodecRecordError": "De AAC-audiocodec is vereist om audio in opnames te ondersteunen.",
+ "audioCodecRequired": "Ter ondersteuning van audiodetectie is een audiostream vereist.",
+ "restreamingWarning": "Als u het aantal verbindingen met de camera voor de opnamestream vermindert, kan het CPU-gebruik iets toenemen.",
+ "dahua": {
+ "substreamWarning": "Substream 1 is beperkt tot een lage resolutie. Veel Dahua / Amcrest / EmpireTech camera’s ondersteunen extra substreams die in de instellingen van de camera ingeschakeld moeten worden. Het wordt aanbevolen deze streams te controleren en te gebruiken indien beschikbaar."
+ },
+ "hikvision": {
+ "substreamWarning": "Substream 1 is beperkt tot een lage resolutie. Veel Hikvision-camera’s ondersteunen extra substreams die in de instellingen van de camera ingeschakeld moeten worden. Het wordt aanbevolen deze streams te controleren en te gebruiken indien beschikbaar."
+ },
+ "resolutionHigh": "Een resolutie van {{resolution}} kan leiden tot een verhoogd gebruik van systeembronnen.",
+ "resolutionLow": "Een resolutie van {{resolution}} kan te laag zijn voor betrouwbare detectie van kleine objecten."
+ },
+ "ffmpegModule": "Gebruik stream-compatibiliteitsmodus",
+ "ffmpegModuleDescription": "Als de stream na meerdere pogingen niet wordt geladen, probeer dit dan in te schakelen. Wanneer deze optie is ingeschakeld, gebruikt Frigate de ffmpeg-module samen met go2rtc. Dit kan zorgen voor een betere compatibiliteit met sommige camerastreams.",
+ "streamsTitle": "Camerastreams",
+ "addStream": "Stream toevoegen",
+ "addAnotherStream": "Voeg een extra stream toe",
+ "streamUrl": "Stream-URL",
+ "streamUrlPlaceholder": "rtsp://gebruikersnaam:wachtwoord@host:poort/pad",
+ "selectStream": "Selecteer een stream",
+ "searchCandidates": "Zoek kandidaten...",
+ "noStreamFound": "Geen stream gevonden",
+ "url": "URL",
+ "resolution": "Resolutie",
+ "selectResolution": "Selecteer resolutie",
+ "quality": "Kwaliteit",
+ "selectQuality": "Selecteer kwaliteit",
+ "roleLabels": {
+ "detect": "Objectdetectie",
+ "record": "Opname",
+ "audio": "Audio"
+ },
+ "testStream": "Testverbinding",
+ "testSuccess": "Streamtest succesvol!",
+ "testFailed": "Streamtest mislukt",
+ "testFailedTitle": "Test mislukt",
+ "connected": "Aangesloten",
+ "notConnected": "Niet verbonden",
+ "featuresTitle": "Functies",
+ "go2rtc": "Verminder verbindingen met de camera",
+ "detectRoleWarning": "Er moet minimaal één stream de rol 'detecteren' hebben om door te kunnen gaan.",
+ "rolesPopover": {
+ "title": "Streamrollen",
+ "detect": "Hoofdstream voor objectdetectie.",
+ "record": "Slaat segmenten van de videostream op op basis van de configuratie-instellingen.",
+ "audio": "Stream voor op audio gebaseerde detectie."
+ },
+ "featuresPopover": {
+ "title": "Streamfuncties",
+ "description": "Gebruik go2rtc-herstreaming om het aantal verbindingen met je camera te verminderen."
+ }
+ },
+ "step4": {
+ "description": "Laatste controle en analyse voordat je je nieuwe camera opslaat. Verbind elke stream voordat je opslaat.",
+ "validationTitle": "Streamvalidatie",
+ "connectAllStreams": "Verbind alle streams",
+ "reconnectionSuccess": "Opnieuw verbinden gelukt.",
+ "reconnectionPartial": "Bij sommige streams kon de verbinding niet worden hersteld.",
+ "streamUnavailable": "Streamvoorbeeld niet beschikbaar",
+ "reload": "Herladen",
+ "connecting": "Verbinden...",
+ "streamTitle": "Stream {{number}}",
+ "valid": "Geldig",
+ "failed": "Mislukt",
+ "notTested": "Niet getest",
+ "connectStream": "Verbinden",
+ "connectingStream": "Verbinden",
+ "disconnectStream": "Verbreek verbinding",
+ "estimatedBandwidth": "Geschatte bandbreedte",
+ "roles": "Rollen",
+ "ffmpegModule": "Gebruik stream-compatibiliteitsmodus",
+ "ffmpegModuleDescription": "Als de stream na meerdere pogingen niet wordt geladen, probeer dit dan in te schakelen. Wanneer deze optie is ingeschakeld, gebruikt Frigate de ffmpeg-module samen met go2rtc. Dit kan zorgen voor een betere compatibiliteit met sommige camerastreams.",
+ "none": "Geen",
+ "error": "Fout",
+ "streamValidated": "Stream {{number}} is succesvol gevalideerd",
+ "streamValidationFailed": "Stream {{number}} validatie mislukt",
+ "saveAndApply": "Nieuwe camera opslaan",
+ "saveError": "Ongeldige configuratie, Controleer uw instellingen.",
+ "issues": {
+ "title": "Streamvalidatie",
+ "videoCodecGood": "Videocodec is {{codec}}.",
+ "audioCodecGood": "Audiocodec is {{codec}}.",
+ "resolutionHigh": "Een resolutie van {{resolution}} kan leiden tot een verhoogd gebruik van systeembronnen.",
+ "resolutionLow": "Een resolutie van {{resolution}} kan te laag zijn voor betrouwbare detectie van kleine objecten.",
+ "noAudioWarning": "Geen audio gedetecteerd voor deze stream, opnames bevatten geen audio.",
+ "audioCodecRecordError": "De AAC-audiocodec is vereist om audio in opnames te ondersteunen.",
+ "audioCodecRequired": "Ter ondersteuning van audiodetectie is een audiostream vereist.",
+ "restreamingWarning": "Als u het aantal verbindingen met de camera voor de opnamestream vermindert, kan het CPU-gebruik iets toenemen.",
+ "brands": {
+ "reolink-rtsp": "Reolink RTSP wordt niet aanbevolen. Schakel HTTP in via de firmware-instellingen van de camera en start de wizard opnieuw.",
+ "reolink-http": "Reolink HTTP-streams moeten FFmpeg gebruiken voor een betere compatibiliteit. Schakel ‘stream-compatibiliteitsmodus’ in voor deze stream."
+ },
+ "dahua": {
+ "substreamWarning": "Substream 1 is beperkt tot een lage resolutie. Veel Dahua / Amcrest / EmpireTech camera’s ondersteunen extra substreams die in de instellingen van de camera ingeschakeld moeten worden. Het wordt aanbevolen deze streams te controleren en te gebruiken indien beschikbaar."
+ },
+ "hikvision": {
+ "substreamWarning": "Substream 1 is beperkt tot een lage resolutie. Veel Hikvision-camera’s ondersteunen extra substreams die in de instellingen van de camera ingeschakeld moeten worden. Het wordt aanbevolen deze streams te controleren en te gebruiken indien beschikbaar."
+ }
+ }
+ }
+ },
+ "cameraManagement": {
+ "title": "Camera’s beheren",
+ "addCamera": "Nieuwe camera toevoegen",
+ "editCamera": "Camera bewerken:",
+ "selectCamera": "Selecteer een camera",
+ "backToSettings": "Terug naar camera-instellingen",
+ "streams": {
+ "title": "Camera's in-/uitschakelen",
+ "desc": "Schakel een camera tijdelijk uit totdat Frigate opnieuw wordt gestart. Het uitschakelen van een camera stopt de verwerking van de streams van deze camera volledig door Frigate. Detectie, opname en foutopsporing zijn dan niet beschikbaar. Let op: dit schakelt go2rtc-restreams niet uit."
+ },
+ "cameraConfig": {
+ "add": "Camera toevoegen",
+ "edit": "Camera bewerken",
+ "description": "Configureer de camera-instellingen, inclusief streaming-inputs en functies.",
+ "name": "Cameranaam",
+ "nameRequired": "Cameranaam is vereist",
+ "nameLength": "Cameranaam mag niet langer zijn dan 64 tekens.",
+ "namePlaceholder": "bijv. voordeur of achtertuin camera",
+ "enabled": "Ingeschakeld",
+ "ffmpeg": {
+ "inputs": "Streams-Input",
+ "path": "Streampad",
+ "pathRequired": "Streampad is vereist",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Functie",
+ "rolesRequired": "Er is ten minste één functie vereist",
+ "rolesUnique": "Elke functie (audio, detecteren, opnemen) kan slechts aan één stream worden toegewezen",
+ "addInput": "Inputstream toevoegen",
+ "removeInput": "Inputstream verwijderen",
+ "inputsRequired": "Er is ten minste één stream-input vereist"
+ },
+ "go2rtcStreams": "go2C Streams",
+ "streamUrls": "Stream URLs",
+ "addUrl": "URL toevoegen",
+ "addGo2rtcStream": "Voeg go2rtc Stream toe",
+ "toast": {
+ "success": "Camera {{cameraName}} is succesvol opgeslagen"
+ }
+ }
+ },
+ "cameraReview": {
+ "title": "Camerabeoordelings-instellingen",
+ "object_descriptions": {
+ "title": "AI-gegenereerde objectomschrijvingen",
+ "desc": "AI-gegenereerde objectomschrijvingen tijdelijk uitschakelen voor deze camera. Wanneer uitgeschakeld, zullen omschrijvingen van gevolgde objecten op deze camera niet aangevraagd worden."
+ },
+ "review_descriptions": {
+ "title": "Generatieve-AI Beoordelingsbeschrijvingen",
+ "desc": "Tijdelijk generatieve-AI-beoordelingsbeschrijvingen voor deze camera in- of uitschakelen. Wanneer dit is uitgeschakeld, worden er geen door AI gegenereerde beschrijvingen opgevraagd voor beoordelingsitems van deze camera."
+ },
+ "review": {
+ "title": "Beoordeel",
+ "desc": "Schakel waarschuwingen en detecties voor deze camera tijdelijk in of uit totdat Frigate opnieuw wordt gestart. Wanneer uitgeschakeld, worden er geen nieuwe beoordelingsitems gegenereerd. ",
+ "alerts": "Meldingen ",
+ "detections": "Detecties "
+ },
+ "reviewClassification": {
+ "title": "Beoordelingsclassificatie",
+ "desc": "Frigate categoriseert beoordelingsitems als meldingen en detecties.Standaard worden alle person- en car-objecten als meldingen beschouwd. Je kunt de categorisatie verfijnen door zones te configureren waarin uitsluitend deze objecten gedetecteerd moeten worden.",
+ "noDefinedZones": "Voor deze camera zijn nog geen zones ingesteld.",
+ "objectAlertsTips": "Alle {{alertsLabels}}-objecten op {{cameraName}} worden weergegeven als meldingen.",
+ "zoneObjectAlertsTips": "Alle {{alertsLabels}}-objecten die zijn gedetecteerd in {{zone}} op {{cameraName}} worden weergegeven als meldingen.",
+ "objectDetectionsTips": "Alle {{detectionsLabels}}-objecten die op {{cameraName}} niet zijn gecategoriseerd, worden weergegeven als detecties ongeacht in welke zone ze zich bevinden.",
+ "zoneObjectDetectionsTips": {
+ "text": "Alle {{detectionsLabels}}-objecten die in {{zone}} op {{cameraName}} niet zijn gecategoriseerd, worden weergegeven als detecties.",
+ "notSelectDetections": "Alle {{detectionsLabels}}-objecten die in {{zone}} op {{cameraName}} worden gedetecteerd en niet als melding zijn gecategoriseerd, worden weergegeven als detecties – ongeacht in welke zone ze zich bevinden.",
+ "regardlessOfZoneObjectDetectionsTips": "Alle {{detectionsLabels}}-objecten die op {{cameraName}} niet zijn gecategoriseerd, worden weergegeven als detecties ongeacht in welke zone ze zich bevinden."
+ },
+ "unsavedChanges": "Niet-opgeslagen classificatie-instellingen voor {{camera}}",
+ "selectAlertsZones": "Zones selecteren voor meldingen",
+ "selectDetectionsZones": "Selecteer zones voor detecties",
+ "limitDetections": "Beperk detecties tot specifieke zones",
+ "toast": {
+ "success": "Configuratie voor beoordelingsclassificatie is opgeslagen. Herstart Frigate om de wijzigingen toe te passen."
+ }
+ }
}
}
diff --git a/web/public/locales/nl/views/system.json b/web/public/locales/nl/views/system.json
index 7d039d08ef..94797952cc 100644
--- a/web/public/locales/nl/views/system.json
+++ b/web/public/locales/nl/views/system.json
@@ -11,7 +11,7 @@
"enrichments": "Verrijkings Statistieken - Frigate"
},
"title": "Systeem",
- "metrics": "Systeem statistieken",
+ "metrics": "Systeemstatistieken",
"logs": {
"download": {
"label": "Logs Downloaden"
@@ -41,10 +41,11 @@
"cpuUsage": "Detector CPU-verbruik",
"memoryUsage": "Detector Geheugen Gebruik",
"inferenceSpeed": "Detector Interferentie Snelheid",
- "temperature": "Detectortemperatuur"
+ "temperature": "Detectortemperatuur",
+ "cpuUsageInformation": "CPU-gebruik bij het voorbereiden van in en uitvoer van gegevens voor detectiemodellen. Deze waarde geeft geen inferentie gebruik weer, ook niet wanneer een GPU of accelerator wordt gebruikt."
},
"hardwareInfo": {
- "title": "Systeem Gegevens",
+ "title": "Systeemgegevens",
"gpuUsage": "GPU-verbruik",
"gpuInfo": {
"vainfoOutput": {
@@ -74,7 +75,12 @@
"gpuEncoder": "GPU Encodeerder",
"gpuMemory": "GPU-geheugen",
"npuUsage": "NPU-gebruik",
- "npuMemory": "NPU-geheugen"
+ "npuMemory": "NPU-geheugen",
+ "intelGpuWarning": {
+ "title": "Waarschuwing Intel GPU-statistieken",
+ "message": "GPU-statistieken niet beschikbaar",
+ "description": "Dit is een bekend probleem in de GPU-statistiekentools van Intel (intel_gpu_top). Deze raken defect en geven herhaaldelijk een GPU-gebruik van 0% weer, zelfs wanneer hardware-acceleratie en objectdetectie correct draaien op de (i)GPU. Dit is geen bug in Frigate. Je kunt de host opnieuw opstarten om het tijdelijk op te lossen en te controleren dat de GPU goed werkt. Dit heeft geen invloed op de prestaties."
+ }
},
"otherProcesses": {
"processMemoryUsage": "Process Geheugen Gebruik",
@@ -102,7 +108,12 @@
"camera": "Camera",
"bandwidth": "Bandbreedte"
},
- "title": "Opslag"
+ "title": "Opslag",
+ "shm": {
+ "title": "SHM (gedeeld geheugen) toewijzing",
+ "warning": "De huidige SHM-grootte van {{total}} MB is te klein. Vergroot deze tot minimaal {{min_shm}} MB.",
+ "readTheDocumentation": "Lees de documentatie"
+ }
},
"cameras": {
"title": "Cameras",
@@ -154,11 +165,12 @@
"stats": {
"ffmpegHighCpuUsage": "{{camera}} zorgt voor hoge FFmpeg CPU belasting ({{ffmpegAvg}}%)",
"detectHighCpuUsage": "{{camera}} zorgt voor hoge detectie CPU belasting ({{detectAvg}}%)",
- "healthy": "Systeem is gezond",
+ "healthy": "Geen problemen",
"reindexingEmbeddings": "Herindexering van inbeddingen ({{processed}}% compleet)",
"detectIsSlow": "{{detect}} is traag ({{speed}} ms)",
"detectIsVerySlow": "{{detect}} is erg traag ({{speed}} ms)",
- "cameraIsOffline": "{{camera}} is offline"
+ "cameraIsOffline": "{{camera}} is offline",
+ "shmTooLow": "Vergroot de /dev/shm toewijzing van {{total}} MB naar minimaal {{min}} MB."
},
"enrichments": {
"title": "Verrijkingen",
@@ -174,7 +186,14 @@
"face_recognition": "Gezichtsherkenning",
"yolov9_plate_detection_speed": "YOLOv9 Kentekenplaat Detectiesnelheid",
"yolov9_plate_detection": "YOLOv9 Kentekenplaatdetectie",
- "plate_recognition": "Kentekenherkenning"
- }
+ "plate_recognition": "Kentekenherkenning",
+ "review_description": "Beoordelingsbeschrijving",
+ "review_description_speed": "Snelheid beoordelingsbeschrijving",
+ "review_description_events_per_second": "Beoordelingsbeschrijving",
+ "object_description": "Objectbeschrijving",
+ "object_description_speed": "Objectbeschrijvingssnelheid",
+ "object_description_events_per_second": "Objectbeschrijving"
+ },
+ "averageInf": "Gemiddelde inferentietijd"
}
}
diff --git a/web/public/locales/peo/audio.json b/web/public/locales/peo/audio.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/audio.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/common.json b/web/public/locales/peo/common.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/common.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/components/auth.json b/web/public/locales/peo/components/auth.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/components/auth.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/components/camera.json b/web/public/locales/peo/components/camera.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/components/camera.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/components/dialog.json b/web/public/locales/peo/components/dialog.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/components/dialog.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/components/filter.json b/web/public/locales/peo/components/filter.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/components/filter.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/components/icons.json b/web/public/locales/peo/components/icons.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/components/icons.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/components/input.json b/web/public/locales/peo/components/input.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/components/input.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/components/player.json b/web/public/locales/peo/components/player.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/components/player.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/objects.json b/web/public/locales/peo/objects.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/objects.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/views/classificationModel.json b/web/public/locales/peo/views/classificationModel.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/views/classificationModel.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/views/configEditor.json b/web/public/locales/peo/views/configEditor.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/views/configEditor.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/views/events.json b/web/public/locales/peo/views/events.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/views/events.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/views/explore.json b/web/public/locales/peo/views/explore.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/views/explore.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/views/exports.json b/web/public/locales/peo/views/exports.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/views/exports.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/views/faceLibrary.json b/web/public/locales/peo/views/faceLibrary.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/views/faceLibrary.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/views/live.json b/web/public/locales/peo/views/live.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/views/live.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/views/recording.json b/web/public/locales/peo/views/recording.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/views/recording.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/views/search.json b/web/public/locales/peo/views/search.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/views/search.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/views/settings.json b/web/public/locales/peo/views/settings.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/views/settings.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/peo/views/system.json b/web/public/locales/peo/views/system.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/peo/views/system.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/pl/common.json b/web/public/locales/pl/common.json
index 00f14d2462..0c68e1813b 100644
--- a/web/public/locales/pl/common.json
+++ b/web/public/locales/pl/common.json
@@ -87,7 +87,10 @@
"formattedTimestampMonthDayYear": {
"12hour": "d MMMM yyyy",
"24hour": "d MMMM yyyy"
- }
+ },
+ "inProgress": "W trakcie",
+ "invalidStartTime": "Nieprawidłowy czas rozpoczęcia",
+ "invalidEndTime": "Nieprawidłowy czas zakończenia"
},
"unit": {
"speed": {
@@ -97,10 +100,23 @@
"length": {
"feet": "stopy",
"meters": "metry"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/godz.",
+ "mbph": "MB/godz.",
+ "gbph": "GB/godz."
}
},
"label": {
- "back": "Wróć"
+ "back": "Wróć",
+ "hide": "Ukryj {{item}}",
+ "show": "Pokaż {{item}}",
+ "ID": "ID",
+ "none": "Brak",
+ "all": "Wszystko"
},
"button": {
"apply": "Zastosuj",
@@ -137,7 +153,8 @@
"cameraAudio": "Dźwięk kamery",
"off": "WYŁĄCZ",
"edit": "Edytuj",
- "copyCoordinates": "Kopiuj współrzędne"
+ "copyCoordinates": "Kopiuj współrzędne",
+ "continue": "Kontynuuj"
},
"menu": {
"system": "System",
@@ -179,7 +196,15 @@
"fi": "Suomi (Fiński)",
"yue": "粵語 (Kantoński)",
"th": "ไทย (Tajski)",
- "ca": "Català (Kataloński)"
+ "ca": "Català (Kataloński)",
+ "ptBR": "Português brasileiro (portugalski - Brazylia)",
+ "sr": "Српски (Serbski)",
+ "sl": "Slovenščina (Słowacki)",
+ "lt": "Lietuvių (Litewski)",
+ "bg": "Български (Bułgarski)",
+ "gl": "Galego (Galicyjski)",
+ "id": "Bahasa Indonesia (Indonezyjski)",
+ "ur": "اردو (Urdu)"
},
"appearance": "Wygląd",
"darkMode": {
@@ -231,7 +256,8 @@
"configurationEditor": "Edytor konfiguracji",
"help": "Pomoc",
"settings": "Ustawienia",
- "export": "Eksportuj"
+ "export": "Eksportuj",
+ "classification": "Klasyfikacja"
},
"role": {
"viewer": "Przeglądający",
@@ -271,5 +297,13 @@
},
"title": "Zapisz"
}
+ },
+ "readTheDocumentation": "Przeczytaj dokumentację",
+ "information": {
+ "pixels": "{{area}}px"
+ },
+ "list": {
+ "two": "{{0}} i {{1}}",
+ "many": "{{items}}, oraz {{last}}"
}
}
diff --git a/web/public/locales/pl/components/auth.json b/web/public/locales/pl/components/auth.json
index 094e0ca974..12aba0fb66 100644
--- a/web/public/locales/pl/components/auth.json
+++ b/web/public/locales/pl/components/auth.json
@@ -10,6 +10,7 @@
"unknownError": "Nieznany błąd. Sprawdź logi.",
"webUnknownError": "Nieznany błąd. Sprawdź konsolę.",
"rateLimit": "Przekroczono limit częstotliwości. Spróbuj ponownie później."
- }
+ },
+ "firstTimeLogin": "Próbujesz się zalogować po raz pierwszy? Dane logowania są dostępne w logach Frigate."
}
}
diff --git a/web/public/locales/pl/components/camera.json b/web/public/locales/pl/components/camera.json
index afeb414d26..f67326172a 100644
--- a/web/public/locales/pl/components/camera.json
+++ b/web/public/locales/pl/components/camera.json
@@ -66,7 +66,8 @@
},
"placeholder": "Wybierz strumień",
"stream": "Strumień"
- }
+ },
+ "birdseye": "Widok z lotu ptaka"
}
},
"debug": {
diff --git a/web/public/locales/pl/components/dialog.json b/web/public/locales/pl/components/dialog.json
index 49d1764c3e..b9a4d9a0f0 100644
--- a/web/public/locales/pl/components/dialog.json
+++ b/web/public/locales/pl/components/dialog.json
@@ -65,12 +65,13 @@
"export": "Eksportuj",
"selectOrExport": "Wybierz lub Eksportuj",
"toast": {
- "success": "Pomyślnie rozpoczęto eksport. Zobacz plik w folderze /exports.",
+ "success": "Pomyślnie rozpoczęto eksport. Zobacz plik na stronie eksportów.",
"error": {
"failed": "Nie udało się rozpocząć eksportu: {{error}}",
"endTimeMustAfterStartTime": "Czas zakończenia musi być późniejszy niż czas rozpoczęcia",
"noVaildTimeSelected": "Nie wybrano prawidłowego zakresu czasu"
- }
+ },
+ "view": "Widok"
},
"fromTimeline": {
"saveExport": "Zapisz Eksport",
@@ -81,7 +82,8 @@
"button": {
"markAsReviewed": "Oznacz jako sprawdzone",
"deleteNow": "Usuń teraz",
- "export": "Eksportuj"
+ "export": "Eksportuj",
+ "markAsUnreviewed": "Oznacz jako niesprawdzone"
},
"confirmDelete": {
"title": "Potwierdź Usunięcie",
@@ -122,5 +124,12 @@
}
}
}
+ },
+ "imagePicker": {
+ "selectImage": "Wybierz miniaturkę śledzonego obiektu",
+ "search": {
+ "placeholder": "Wyszukaj po etykiecie (label) lub etykiecie potomnej (sub label)..."
+ },
+ "noImages": "Brak miniatur dla tej kamery"
}
}
diff --git a/web/public/locales/pl/components/filter.json b/web/public/locales/pl/components/filter.json
index 30b19bee36..f718061a58 100644
--- a/web/public/locales/pl/components/filter.json
+++ b/web/public/locales/pl/components/filter.json
@@ -7,7 +7,7 @@
"short": "Etykiety"
},
"count_one": "{{count}} Etykieta",
- "count_other": "{{count}} Etykiet"
+ "count_other": "{{count}} Etykiet(y)"
},
"zones": {
"label": "Strefy",
@@ -85,7 +85,9 @@
"noLicensePlatesFound": "Nie znaleziono tablic rejestracyjnych.",
"title": "Rozpoznane Tablice Rejestracyjne",
"loadFailed": "Nie udało się załadować rozpoznanych tablic rejestracyjnych.",
- "selectPlatesFromList": "Wybierz jedną lub więcej tablic z listy."
+ "selectPlatesFromList": "Wybierz jedną lub więcej tablic z listy.",
+ "selectAll": "Wybierz wszystko",
+ "clearAll": "Wyczyść wszystko"
},
"dates": {
"all": {
@@ -122,5 +124,16 @@
},
"zoneMask": {
"filterBy": "Filtruj według maski strefy"
+ },
+ "classes": {
+ "label": "Klasy",
+ "all": {
+ "title": "Wszystkie Klasy"
+ },
+ "count_one": "{{count}} Klasa",
+ "count_other": "{{count}} Klas(y)"
+ },
+ "attributes": {
+ "all": "Wszystkie atrybuty"
}
}
diff --git a/web/public/locales/pl/views/classificationModel.json b/web/public/locales/pl/views/classificationModel.json
new file mode 100644
index 0000000000..d2fa9815a5
--- /dev/null
+++ b/web/public/locales/pl/views/classificationModel.json
@@ -0,0 +1,150 @@
+{
+ "documentTitle": "Modele klasyfikacji - Frigate",
+ "button": {
+ "deleteClassificationAttempts": "Usuń obrazy klasyfikacyjne",
+ "renameCategory": "Zmień nazwę klasy",
+ "deleteCategory": "Usuń klasyfikację",
+ "deleteImages": "Usuń obrazy",
+ "trainModel": "Przeszkol model",
+ "addClassification": "Dodaj klasyfikację",
+ "deleteModels": "Usuń modele",
+ "editModel": "Edytuj model"
+ },
+ "details": {
+ "scoreInfo": "Wynik przedstawia średnią pewność klasyfikacji wszystkich wykryć danego obiektu.",
+ "none": "Brak",
+ "unknown": "Nieznany"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Usunięte klasy",
+ "deletedImage": "Usunięte obrazy",
+ "deletedModel_one": "Pomyślenie usunięto {{count}} model",
+ "deletedModel_few": "Pomyślenie usunięto {{count}} modele",
+ "deletedModel_many": "Pomyślenie usunięto {{count}} modeli",
+ "categorizedImage": "Obraz pomyślnie sklasyfikowany",
+ "trainedModel": "Model pomyślnie wytrenowany",
+ "trainingModel": "Pomyślnie uruchomiono trenowanie modelu.",
+ "updatedModel": "Pomyślnie zaktualizowane ustawienia modelu",
+ "renamedCategory": "Pomyślnie zmieniono nazwę klasy na {{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "Nie udało się usunąć: {{errorMessage}}",
+ "deleteCategoryFailed": "Nie udało się usunąć klasy: {{errorMessage}}",
+ "deleteModelFailed": "Nie udało się usunąć modelu: {{errorMessage}}",
+ "categorizeFailed": "Nie udało się skategoryzować obrazka: {{errorMessage}}",
+ "trainingFailed": "Trening modelu zakończył się niepowodzeniem. Sprawdź logi Frigate aby uzyskać więcej informacji.",
+ "updateModelFailed": "Nie udało się zaktualizować modelu: {{errorMessage}}",
+ "trainingFailedToStart": "Nie udało się rozpocząć trenowania modelu: {{errorMessage}}",
+ "renameCategoryFailed": "Nie udało się zmienić nazwy klasy: {{errorMessage}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Usuń klasę",
+ "desc": "Czy na pewno chcesz usunąć klasę {{name}}? Spowoduje to trawałe usunięcie wszystkich powiązanych obrazków i konieczność ponownego trenowania modelu.",
+ "minClassesTitle": "Nie można usunąć kategorii",
+ "minClassesDesc": "Model klasyfikacyjny musi posiadać co najmniej dwie kategorie. Dodaj inną kategorię aby możliwe było usunięcie tej kategorii."
+ },
+ "deleteModel": {
+ "title": "Usuń model klasyfikacji",
+ "single": "Czy na pewno chcesz usunąć {{name}}? Spowoduje to trwałe usunięcie wszystkich powiązanych data włącznie z obrazkami i danymi treningowymi. Nie można cofnąć tej operacji.",
+ "desc_one": "Czy na pewno chcesz usunąć {{count}} model? Spowoduje to trwałe usunięcie wszystkich powiązanych danych, włącznie z obrazami i danymi treningowymi. Nie można cofnąć tej operacji.",
+ "desc_few": "Czy na pewno chcesz usunąć {{count}} modele? Spowoduje to trwałe usunięcie wszystkich powiązanych danych, włącznie z obrazami i danymi treningowymi. Nie można cofnąć tej operacji.",
+ "desc_many": "Czy na pewno chcesz usunąć {{count}} modeli? Spowoduje to trwałe usunięcie wszystkich powiązanych danych, włącznie z obrazami i danymi treningowymi. Nie można cofnąć tej operacji."
+ },
+ "edit": {
+ "title": "Edytuj model klasyfikacji",
+ "descriptionObject": "Zmień typ obiektu i kryteria dla tego modelu klasyfikacji.",
+ "stateClassesInfo": "Uwaga: Zmiana typu klasyfikacji wymaga treningu nowego modelu.",
+ "descriptionState": "Edycja klas dla tego modelu klasyfikacji stanu. Zmiany będą wymagały przekwalifikowania modelu."
+ },
+ "tooltip": {
+ "trainingInProgress": "Trwa trenowanie modelu",
+ "modelNotReady": "Mode nie jest gotowy do trenowania",
+ "noChanges": "Brak zmian w zbiorze danych od czasu ostatniego treningu.",
+ "noNewImages": "Nie ma więcej obrazów do trenowania. Zaklasyfikuj więcej obrazów do zbioru danych."
+ },
+ "deleteDatasetImages": {
+ "title": "Usuń obrazy z puli danych",
+ "desc_one": "Czy na pewno chcesz usunąć {{count}} obraz z {{dataset}}? Ta akcja nie może zostać cofnięta i będzie wymagała przetrenowania modelu.",
+ "desc_few": "Czy na pewno chcesz usunąć obrazy {{count}} z {{dataset}}? Ta akcja nie może zostać cofnięta i będzie wymagała przetrenowania modelu.",
+ "desc_many": "Czy na pewno chcesz usunąć obrazy {{count}} z {{dataset}}? Ta akcja nie może zostać cofnięta i będzie wymagała przetrenowania modelu."
+ },
+ "renameCategory": {
+ "title": "Zmień nazwę klasy",
+ "desc": "Wprowadź nową nazwę dla {{name}}. Zastosowanie tej zmiany wymagać będzie treningu nowego modelu."
+ },
+ "description": {
+ "invalidName": "Niepoprawna nazwa. Nazwy mogą zawierać tylko: litery, cyfry, spacje, cudzysłowy, podkreślniniki i myślniki."
+ },
+ "train": {
+ "title": "Ostatnie Klasyfikacje",
+ "titleShort": "Najnowsze",
+ "aria": "Wybierz Najnowsze Klasyfikacje"
+ },
+ "createCategory": {
+ "new": "Stwórz nową klasyfikację"
+ },
+ "deleteTrainImages": {
+ "title": "Usuń obrazy pociągów",
+ "desc_one": "Czy na pewno chcesz usunąć {{count}} obraz? Tego działania nie da się cofnąć.",
+ "desc_few": "Czy na pewno chcesz usunąć obrazy {{count}}? Tego działania nie da się cofnąć.",
+ "desc_many": "Czy na pewno chcesz usunąć obrazy {{count}}? Tego działania nie da się cofnąć."
+ },
+ "categories": "Zajęcia",
+ "none": "Nic",
+ "categorizeImageAs": "Klasyfikuj Obraz Jako:",
+ "categorizeImage": "Klasyfikuj obraz",
+ "menu": {
+ "objects": "Obiekty",
+ "states": "Stany"
+ },
+ "noModels": {
+ "object": {
+ "title": "Brak modeli klasyfikacji obiektów",
+ "description": "Utwórz model niestandardowy do klasyfikacji wykrytych obiektów.",
+ "buttonText": "Tworzenie modelu obiektu"
+ },
+ "state": {
+ "title": "Brak państwowych modeli klasyfikacji",
+ "description": "Utwórz niestandardowy model do monitorowania i klasyfikacji zmian stanu w określonych obszarach kamery.",
+ "buttonText": "Utwórz model stanu"
+ }
+ },
+ "wizard": {
+ "title": "Tworzenie nowej klasyfikacji",
+ "steps": {
+ "nameAndDefine": "Nazwij i zdefiniuj",
+ "stateArea": "Obszar stanu"
+ },
+ "step1": {
+ "name": "Nazwa",
+ "type": "Typ",
+ "classes": "Klasy",
+ "errors": {
+ "noneNotAllowed": "Klasa „żadne” jest niedozwolona.",
+ "stateRequiresTwoClasses": "Modele stanowe wymagają co najmniej dwie klasy.",
+ "objectLabelRequired": "Proszę wybrać etykietę obiektu",
+ "objectTypeRequired": "Proszę wybrać typ klasyfikacji"
+ }
+ },
+ "step2": {
+ "description": "Wybierz kamery i określ obszar monitorowania dla każdej z nich. Model sklasyfikuje stan tych obszarów.",
+ "cameras": "Kamery",
+ "selectCamera": "Wybierz kamerę",
+ "noCameras": "Kliknij +, aby dodać kamery",
+ "selectCameraPrompt": "Wybierz kamerę z listy, aby zdefiniować jej obszar monitorowania."
+ },
+ "step3": {
+ "selectImagesPrompt": "Zaznacz wszystkie obrazy z: {{className}}",
+ "selectImagesDescription": "Kliknij na zdjęcia, aby je wybrać. Po zakończeniu zajęć kliknij „Kontynuuj”.",
+ "allImagesRequired_one": "Proszę sklasyfikować wszystkie obrazy. Pozostał {{count}} obraz.",
+ "allImagesRequired_few": "Proszę sklasyfikować wszystkie obrazy. Pozostały {{count}} obrazy.",
+ "allImagesRequired_many": "Proszę sklasyfikować wszystkie obrazy. Pozostało {{count}} obrazów.",
+ "generating": {
+ "title": "Generowanie przykładowych obrazów"
+ },
+ "trainingStarted": "Szkolenie rozpoczęło się pomyślnie"
+ }
+ }
+}
diff --git a/web/public/locales/pl/views/configEditor.json b/web/public/locales/pl/views/configEditor.json
index 2ebc8c6132..a8c3740441 100644
--- a/web/public/locales/pl/views/configEditor.json
+++ b/web/public/locales/pl/views/configEditor.json
@@ -12,5 +12,7 @@
},
"saveOnly": "Tylko zapisz",
"saveAndRestart": "Zapisz i uruchom ponownie",
- "confirm": "Zamknąć bez zapisu?"
+ "confirm": "Zamknąć bez zapisywania?",
+ "safeConfigEditor": "Edytor Konfiguracji (tryb bezpieczny)",
+ "safeModeDescription": "Frigate jest w trybie bezpiecznym przez błąd walidacji konfiguracji."
}
diff --git a/web/public/locales/pl/views/events.json b/web/public/locales/pl/views/events.json
index cf53b56e05..cc7b258c61 100644
--- a/web/public/locales/pl/views/events.json
+++ b/web/public/locales/pl/views/events.json
@@ -34,5 +34,28 @@
},
"selected_one": "{{count}} wybrane",
"selected_other": "{{count}} wybrane",
- "detected": "wykryto"
+ "detected": "wykryto",
+ "suspiciousActivity": "Podejrzana aktywność",
+ "threateningActivity": "Niebezpieczne działania",
+ "zoomIn": "Przybliż",
+ "zoomOut": "Oddal",
+ "detail": {
+ "label": "Szczegóły",
+ "noDataFound": "Brak szczegółów do przejrzenia",
+ "aria": "Przełącz widok szczegółów",
+ "trackedObject_one": "{{count}} obiekt",
+ "trackedObject_other": "{{count}} obiekty",
+ "noObjectDetailData": "Brak danych szczegółowych dla obiektu.",
+ "settings": "Ustawienia widoku szczegółów",
+ "alwaysExpandActive": {
+ "title": "Zawsze rozwiń aktywne",
+ "desc": "Zawsze rozwijaj szczegóły aktywnego obiektu, jeżeli są dostępne."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Śledzony punkt",
+ "clickToSeek": "Kliknij aby przewinąć do tego miejsca"
+ },
+ "needsReview": "Wymaga manualnego sprawdzenia",
+ "normalActivity": "Normalne"
}
diff --git a/web/public/locales/pl/views/explore.json b/web/public/locales/pl/views/explore.json
index cd0c1048fc..cceb1a1622 100644
--- a/web/public/locales/pl/views/explore.json
+++ b/web/public/locales/pl/views/explore.json
@@ -20,12 +20,16 @@
"success": {
"regenerate": "Zażądano nowego opisu od {{provider}}. W zależności od szybkości twojego dostawcy, wygenerowanie nowego opisu może zająć trochę czasu.",
"updatedSublabel": "Pomyślnie zaktualizowano podetykietę.",
- "updatedLPR": "Pomyślnie zaktualizowano tablicę rejestracyjną."
+ "updatedLPR": "Pomyślnie zaktualizowano tablicę rejestracyjną.",
+ "audioTranscription": "Wysłano prośbę o audio transkrypcję. W zależności od szybkości serwera Frigate, transkrypcja może potrwać trochę czasu.",
+ "updatedAttributes": "Atrybuty zostały pomyślnie zaktualizowane."
},
"error": {
"regenerate": "Nie udało się wezwać {{provider}} dla nowego opisu: {{errorMessage}}",
"updatedSublabelFailed": "Nie udało się zaktualizować podetykiety: {{errorMessage}}",
- "updatedLPRFailed": "Nie udało się zaktualizować tablicy rejestracyjnej: {{errorMessage}}"
+ "updatedLPRFailed": "Nie udało się zaktualizować tablicy rejestracyjnej: {{errorMessage}}",
+ "audioTranscription": "Nie udało się włączyć audio transkrypcji: {{errorMessage}}",
+ "updatedAttributesFailed": "Nie udało się zaktualizować atrybutów: {{errorMessage}}"
}
}
},
@@ -70,6 +74,9 @@
"regenerateFromThumbnails": "Regeneruj z miniatur",
"snapshotScore": {
"label": "Wynik zrzutu"
+ },
+ "score": {
+ "label": "Wynik"
}
},
"objectLifecycle": {
@@ -154,7 +161,9 @@
"details": "szczegóły",
"snapshot": "zrzut ekranu",
"video": "wideo",
- "object_lifecycle": "cykl życia obiektu"
+ "object_lifecycle": "cykl życia obiektu",
+ "thumbnail": "miniaturka",
+ "tracking_details": "szczegóły śledzenia"
},
"itemMenu": {
"downloadSnapshot": {
@@ -183,6 +192,14 @@
},
"deleteTrackedObject": {
"label": "Usuń ten śledzony obiekt"
+ },
+ "addTrigger": {
+ "label": "Dodaj wyzwalacz",
+ "aria": "Dodaj wyzwalacz dla tego śledzonego obiektu"
+ },
+ "audioTranscription": {
+ "label": "Rozpisz",
+ "aria": "Poproś o audiotranskrypcję"
}
},
"trackedObjectsCount_one": "{{count}} śledzony obiekt ",
@@ -205,5 +222,45 @@
},
"tooltip": "Pasuje do {{type}} z pewnością {{confidence}}%"
},
- "exploreMore": "Odkryj więcej obiektów typu {{label}}"
+ "exploreMore": "Odkryj więcej obiektów typu {{label}}",
+ "aiAnalysis": {
+ "title": "Analiza SI"
+ },
+ "concerns": {
+ "label": "Obawy"
+ },
+ "trackingDetails": {
+ "title": "Szczegóły śledzenia",
+ "noImageFound": "Nie znaleziono obrazka dla podanego czasu.",
+ "createObjectMask": "Utwórz maskę obiektu",
+ "adjustAnnotationSettings": "Dostosuj ustawienia adnotacji",
+ "scrollViewTips": "Kliknij, aby zobaczyć najważniejsze momenty cyklu życia tego obiektu.",
+ "count": "{{first}} z {{second}}",
+ "autoTrackingTips": "Pozycja znacznika obiektu jest niedokładna dla kamer z automatycznym śledzeniem.",
+ "lifecycleItemDesc": {
+ "visible": "Wykryto {{label}}",
+ "entered_zone": "{{label}} pojawił się w {{zones}}",
+ "active": "{{label}} poruszył się",
+ "stationary": "{{label}} zatrzymał się",
+ "attribute": {
+ "faceOrLicense_plate": "Wykryto {{attribute}} dla obiektu {{label}}",
+ "other": "{{label}} został rozpoznany jako {{attribute}}"
+ },
+ "gone": "Utracono śledzenie dla {{label}}",
+ "external": "Wykryto {{label}}",
+ "header": {
+ "zones": "Strefy",
+ "area": "Powierzchnia",
+ "score": "Wynik"
+ }
+ },
+ "annotationSettings": {
+ "title": "Ustawienia adnotacji",
+ "showAllZones": {
+ "title": "Pokaż wszystkie strefy",
+ "desc": "Pokazuj linie stref w momencie wejścia obiektu w strefę."
+ }
+ },
+ "trackedPoint": "Śledzony Punkt"
+ }
}
diff --git a/web/public/locales/pl/views/exports.json b/web/public/locales/pl/views/exports.json
index 954849a1ab..b0d41bbc38 100644
--- a/web/public/locales/pl/views/exports.json
+++ b/web/public/locales/pl/views/exports.json
@@ -13,5 +13,11 @@
"error": {
"renameExportFailed": "Nie udało się zmienić nazwy eksportu: {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "shareExport": "Udostępnij eksport",
+ "downloadVideo": "Pobierz wideo",
+ "editName": "Edytuj nazwę",
+ "deleteExport": "Usuń eksport"
}
}
diff --git a/web/public/locales/pl/views/faceLibrary.json b/web/public/locales/pl/views/faceLibrary.json
index a10105faaf..5edfcba709 100644
--- a/web/public/locales/pl/views/faceLibrary.json
+++ b/web/public/locales/pl/views/faceLibrary.json
@@ -1,9 +1,9 @@
{
"selectItem": "Wybierz {{item}}",
"description": {
- "addFace": "Poznaj proces dodawania nowej kolekcji do biblioteki twarzy.",
+ "addFace": "Dodaj nową kolekcję do biblioteki twarzy, przesyłając swoje pierwsze zdjęcie.",
"placeholder": "Wprowadź nazwę tej kolekcji",
- "invalidName": "Nieprawidłowa nazwa. Nazwy mogą zawierać tylko litery, cyfry, spacje, apostrofy, podkreślenia oraz myślniki."
+ "invalidName": "Niepoprawna nazwa. Nazwy mogą zawierać tylko: litery, cyfry, spacje, cudzysłowy, podkreślniniki i myślniki."
},
"details": {
"person": "Osoba",
@@ -24,11 +24,11 @@
"title": "Utwórz kolekcję",
"desc": "Utwórz nową kolekcję",
"new": "Utwórz nową twarz",
- "nextSteps": "Aby zbudować solidną podstawę:
Użyj zakładki Trenuj, aby wybrać i trenować na obrazach dla każdej wykrytej osoby.
Skup się na zdjęciach twarzy na wprost dla najlepszych wyników; unikaj trenowania na zdjęciach, które pokazują twarze pod kątem.
"
+ "nextSteps": "Aby zbudować solidną podstawę:
Użyj zakładki Ostatnie rozpoznania, aby wybrać i trenować na obrazach dla każdej wykrytej osoby.
Skup się na zdjęciach twarzy na wprost dla najlepszych wyników; unikaj trenowania na zdjęciach, które pokazują twarze pod kątem.
"
},
"train": {
- "aria": "Wybierz trenowanie",
- "title": "Trenuj",
+ "aria": "Wybierz ostatnio rozpoznane",
+ "title": "Ostatnie rozpoznania",
"empty": "Nie podjęto ostatnio żadnych prób rozpoznawania twarzy"
},
"selectFace": "Wybierz twarz",
@@ -63,7 +63,7 @@
"uploadedImage": "Pomyślnie wgrano obraz.",
"addFaceLibrary": "{{name}} został pomyślnie dodany do Biblioteki Twarzy!",
"trainedFace": "Pomyślnie wytrenowano twarz.",
- "updatedFaceScore": "Pomyślnie zaktualizowano wynik twarzy.",
+ "updatedFaceScore": "Pomyślnie zaktualizowano wynik twarzy do {{name}} {{score}}.",
"renamedFace": "Pomyślnie zmieniono nazwę twarzy na {{name}}"
},
"error": {
diff --git a/web/public/locales/pl/views/live.json b/web/public/locales/pl/views/live.json
index 87b0af4ab0..417354f63e 100644
--- a/web/public/locales/pl/views/live.json
+++ b/web/public/locales/pl/views/live.json
@@ -43,7 +43,15 @@
"label": "Kliknij w ramce, aby wyśrodkować kamerę PTZ"
}
},
- "presets": "Presety kamery PTZ"
+ "presets": "Presety kamery PTZ",
+ "focus": {
+ "in": {
+ "label": "Zmniejsz ostrość kamery PTZ"
+ },
+ "out": {
+ "label": "Wyostrz kamerę PTZ"
+ }
+ }
},
"recording": {
"enable": "Włącz nagrywanie",
@@ -59,7 +67,7 @@
},
"manualRecording": {
"title": "Nagrywanie na żądanie",
- "tips": "Rozpocznij ręczne zdarzenie w oparciu o ustawienia przechowywania nagrań tej kamery.",
+ "tips": "Ręcznie rozpocznij zdarzenie w oparciu o ustawienia przechowywania nagrań tej kamery.",
"playInBackground": {
"label": "Odtwarzaj w tle",
"desc": "Włącz tę opcję, aby kontynuować transmisję, gdy odtwarzacz jest ukryty."
@@ -105,6 +113,9 @@
"playInBackground": {
"tips": "Włącz tę opcję, aby kontynuować transmisję, gdy odtwarzacz jest ukryty.",
"label": "Odtwarzaj w tle"
+ },
+ "debug": {
+ "picker": "Wybór strumienia jest niedostępny w trybie debug. Widok w trybie debug zawsze pokazuje strumień przypisany do detektora."
}
},
"cameraSettings": {
@@ -114,7 +125,8 @@
"recording": "Nagrywanie",
"snapshots": "Zrzuty ekranu",
"audioDetection": "Wykrywanie dźwięku",
- "autotracking": "Automatyczne śledzenie"
+ "autotracking": "Automatyczne śledzenie",
+ "transcription": "Stenogram"
},
"effectiveRetainMode": {
"modes": {
@@ -154,5 +166,24 @@
"streamingSettings": "Ustawienia transmisji",
"history": {
"label": "Pokaż nagrania archiwalne"
+ },
+ "transcription": {
+ "enable": "Włącz audio transkrypcję na żywo",
+ "disable": "Wyłącz audio transkrypcję na żywo"
+ },
+ "noCameras": {
+ "buttonText": "Dodaj kamerę",
+ "description": "Zacznij od podłączenia kamery do Frigate.",
+ "title": "Nie skonfigurowano żadnej kamery",
+ "restricted": {
+ "title": "Brak dostępnych kamer",
+ "description": "Nie masz uprawnień aby przeglądać kamery w tej grupie."
+ }
+ },
+ "snapshot": {
+ "takeSnapshot": "Pobierz miniaturę",
+ "captureFailed": "Nie udało się wykonać migawki.",
+ "downloadStarted": "Pobieranie migawki rozpoczęte.",
+ "noVideoSource": "Brak źródeł video dostępnych do wykonania migawki."
}
}
diff --git a/web/public/locales/pl/views/settings.json b/web/public/locales/pl/views/settings.json
index fd45430f35..956eb5f021 100644
--- a/web/public/locales/pl/views/settings.json
+++ b/web/public/locales/pl/views/settings.json
@@ -9,7 +9,11 @@
"masksAndZones": "Maski / Strefy",
"motionTuner": "Konfigurator Ruchu",
"debug": "Debugowanie",
- "enrichments": "Wzbogacenia"
+ "enrichments": "Wzbogacenia",
+ "triggers": "Wyzwalacze",
+ "roles": "Role",
+ "cameraManagement": "Zarządzanie",
+ "cameraReview": "Przegląd"
},
"dialog": {
"unsavedChanges": {
@@ -22,7 +26,7 @@
"noCamera": "Brak Kamery"
},
"general": {
- "title": "Ustawienia Ogólne",
+ "title": "Ustawienia interfejsu użytkownika",
"storedLayouts": {
"title": "Zapisane Układy",
"clearAll": "Wyczyść Wszystkie Układy",
@@ -46,6 +50,14 @@
"playAlertVideos": {
"label": "Odtwarzaj Filmy Alarmowe",
"desc": "Domyślnie, ostatnie alerty na panelu Na Żywo są odtwarzane jako małe zapętlone filmy. Wyłącz tę opcję, aby pokazywać tylko statyczny obraz ostatnich alertów na tym urządzeniu/przeglądarce."
+ },
+ "displayCameraNames": {
+ "label": "Zawsze pokazuj nazwy kamer",
+ "desc": "Zawsze pokazuj nazwę kamery w widoku wielu kamer."
+ },
+ "liveFallbackTimeout": {
+ "label": "Przekroczono czas oczekiwania dla strumienia",
+ "desc": "W wypadku utraty strumienia wysokiej jakości, użyj trybu niskiej przepustowości po X sekund od utracenia połączenia. Sugerowana wartość: 3."
}
},
"cameraGroupStreaming": {
@@ -77,12 +89,14 @@
"masksAndZones": "Edytor Masek i Stref - Frigate",
"frigatePlus": "Ustawienia Frigate+ - Frigate",
"classification": "Ustawienia Klasyfikacji - Frigate",
- "general": "Ustawienia Ogólne - Frigate",
+ "general": "Ustawienia Interfejsu - Frigate",
"authentication": "Ustawienia Uwierzytelniania - Frigate",
"motionTuner": "Konfigurator Ruchu - Frigate",
"object": "Debug - Frigate",
"notifications": "Ustawienia powiadomień - Frigate",
- "enrichments": "Ustawienia wzbogacania - Frigate"
+ "enrichments": "Ustawienia wzbogacania - Frigate",
+ "cameraManagement": "Zarządzanie kamerami – Frigate",
+ "cameraReview": "Ustawienia przeglądu kamer - Frigate"
},
"classification": {
"title": "Ustawienia Klasyfikacji",
@@ -173,11 +187,48 @@
"alerts": "Alerty ",
"title": "Przegląd",
"detections": "Wykrycia ",
- "desc": "Włącz/wyłącz alerty i wykrywania dla tej kamery. Po wyłączeniu nie będą generowane nowe elementy do przeglądu."
+ "desc": "Tymczasowo włącz/wyłącz alerty i wykrywania dla tej kamery do czasu restartu Frigate. Po wyłączeniu nie będą generowane nowe elementy do przeglądu. "
},
"streams": {
- "desc": "Wyłączenie kamery całkowicie zatrzymuje przetwarzanie strumieni tej kamery przez Frigate. Wykrywanie, nagrywanie i debugowanie będą niedostępne. Uwaga: Nie wyłącza to przekazywania strumieni go2rtc.",
+ "desc": "Tymczasowo wyłącz kamerę dopóki Frigate nie uruchomi się ponownie. Wyłączenie kamery całkowicie zatrzymuje przetwarzanie strumieni tej kamery przez Frigate. Wykrywanie, nagrywanie i debugowanie będą niedostępne. Uwaga: Nie wyłącza to przekazywania strumieni go2rtc.",
"title": "Strumienie"
+ },
+ "object_descriptions": {
+ "title": "Opisy obiektów wygenerowane przez Sztuczną Inteligencję",
+ "desc": "Tymczasowo włącz/wyłącz opisy obiektów generowane przez SI. Gdy zostanie to wyłączone, prośby o opis śledzonych obiektów dla tej kamery nie będzie przesyłany do SI."
+ },
+ "review_descriptions": {
+ "title": "Opis recenzji od SI",
+ "desc": "Tymczasowo włącz/wyłącz recenzje opisów SI dla tej kamery. Gdy wyłączone prośby o wykonanie opisów nie zostaną przekazane do SI dla tej kamery."
+ },
+ "addCamera": "Dodaj nową kamerę",
+ "editCamera": "Edytuj kamerę:",
+ "selectCamera": "Wybierz kamerę",
+ "backToSettings": "Powrót do ustawień kamery",
+ "cameraConfig": {
+ "add": "Dodaj kamerę",
+ "edit": "Edytuj kamerę",
+ "description": "Konfiguracja ustawień kamery wraz ze strumieniem wejściowym i rolami.",
+ "name": "Nazwa kamery",
+ "nameRequired": "Nazwa kamery jest wymagana",
+ "nameLength": "Nazwa kamery musi być krótsza niż 24 znaki.",
+ "namePlaceholder": "np. drzwi_wejsciowe",
+ "enabled": "Włączony",
+ "ffmpeg": {
+ "inputs": "Strumienie wejściowe",
+ "path": "Ścieżka do strumienia",
+ "pathRequired": "Ścieżka do strumienia jest wymagana",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Role",
+ "rolesRequired": "Przynajmniej jedna rola jest wymagana",
+ "rolesUnique": "Każda z ról (audio, detect, record) może być przypisana tylko do jednego strumienia",
+ "addInput": "Dodaj strumień wejściowy",
+ "removeInput": "Usuń strumień wejściowy",
+ "inputsRequired": "Przynajmniej jeden strumień wejściowy jest wymagany"
+ },
+ "toast": {
+ "success": "Konfiguracja kamery {{cameraName}} została zapisana"
+ }
}
},
"masksAndZones": {
@@ -400,6 +451,19 @@
"tips": "Włącz tę opcję, aby narysować prostokąt na obrazie kamery w celu pokazania jego obszaru i proporcji. Te wartości mogą być następnie użyte do ustawienia parametrów filtra kształtu obiektu w twojej konfiguracji.",
"desc": "Narysuj prostokąt na obrazie, aby zobaczyć szczegóły obszaru i proporcji",
"area": "Obszar"
+ },
+ "openCameraWebUI": "Otwórz interfejs kamery {{camera}}",
+ "audio": {
+ "title": "Audio",
+ "noAudioDetections": "Nie wykryto dźwięku",
+ "score": "wynik",
+ "currentRMS": "Bieżąca moc RMS",
+ "currentdbFS": "Bieżące dbFS"
+ },
+ "paths": {
+ "title": "Ścieżki",
+ "desc": "Pokaż punkty znaczące ścieżki dla śledzonego obiektu",
+ "tips": "
Ścieżki
Linie i koła wskażą punkty znaczące po których poruszał się obiekt podczas śledzenia.
"
}
},
"motionDetectionTuner": {
@@ -492,7 +556,8 @@
"admin": "Admin",
"adminDesc": "Pełny dostęp do wszystkich funkcjonalności.",
"viewerDesc": "Ograniczony wyłącznie do pulpitów na żywo, przeglądania, eksploracji i eksportu.",
- "viewer": "Przeglądający"
+ "viewer": "Przeglądający",
+ "customDesc": "Własna rola z dedykowanym dostępem do kamery."
},
"title": "Zmień rolę użytkownika",
"select": "Wybierz role"
@@ -640,7 +705,7 @@
}
}
},
- "title": "Ustawienia wzbogacania",
+ "title": "Ustawienia wzbogaceń",
"unsavedChanges": "Niezapisane zmiany ustawień wzbogacania",
"birdClassification": {
"title": "Klasyfikacja ptaków",
@@ -683,5 +748,388 @@
"success": "Ustawienia wzbogacania zostały zapisane. Uruchom ponownie Frigate, aby zastosować zmiany.",
"error": "Nie udało się zapisać zmian konfiguracji: {{errorMessage}}"
}
+ },
+ "roles": {
+ "management": {
+ "title": "Zarządzanie rolami podglądu",
+ "desc": "Zarządzaj własnymi rolami podglądu i ich dostępem do kamer dla tej instancji Frigate."
+ },
+ "addRole": "Dodaj rolę",
+ "table": {
+ "role": "Rola",
+ "cameras": "Kamery",
+ "actions": "Akcje",
+ "noRoles": "Brak własnych ról.",
+ "editCameras": "Edytuj kamery",
+ "deleteRole": "Usuń rolę"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Utworzono rolę {{role}}",
+ "updateCameras": "Zaktualizowano kamery dla roli {{role}}",
+ "deleteRole": "Rola {{role}} została usunięta",
+ "userRolesUpdated_one": "{{count}} użytkowników przypisanych do tej roli zostało zaktualizowanych do roli 'viewer', która ma dostęp do wszystkich kamer.",
+ "userRolesUpdated_few": "",
+ "userRolesUpdated_many": ""
+ },
+ "error": {
+ "createRoleFailed": "Nie udało się utworzyć roli: {{errorMessage}}",
+ "updateCamerasFailed": "Nie udało się zaktualizować kamery: {{errorMessage}}",
+ "deleteRoleFailed": "Nie udało się usunąć roli: {{errorMessage}}",
+ "userUpdateFailed": "Nie udało się zaktualizować ról użytkownika: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Dodaj nową rolę",
+ "desc": "Dodaj nową rolę i określ prawa dostępu do kamer."
+ },
+ "editCameras": {
+ "title": "Edytuj kamery roli",
+ "desc": "Aktualizuj dostęp do kamer dla roli {{role}}."
+ },
+ "deleteRole": {
+ "title": "Usuń rolę",
+ "desc": "Ta akcja nie może zostać wycofana. To usunie rolę na stałe i przypisze jej użytkowników do roli 'viewer' która ma dostęp do wszystkich kamer.",
+ "warn": "Czy na pewno chcesz usunąć rolę {{role}}?",
+ "deleting": "Usuwanie..."
+ },
+ "form": {
+ "role": {
+ "title": "Nazwa roli",
+ "placeholder": "Wprowadź nazwę roli",
+ "desc": "Tylko litery, liczby, kropki i podkreślenie są dozwolone.",
+ "roleIsRequired": "Nazwa roli jest wymagana",
+ "roleOnlyInclude": "Nazwa roli może zawierać litery, liczby, . albo _",
+ "roleExists": "Taka rola już istnieje."
+ },
+ "cameras": {
+ "title": "Kamery",
+ "desc": "Wybierz do jakich kamer ta rola ma dostęp. Wymagana jest przynajmniej jedna kamera.",
+ "required": "Przynajmniej jedna kamera musi zostać wybrana."
+ }
+ }
+ }
+ },
+ "triggers": {
+ "documentTitle": "Wyzwalacze",
+ "management": {
+ "title": "Zarządzanie wyzwalaczami",
+ "desc": "Zarządzaj wyzwalaczami dla kamery {{camera}}. Użyj typu miniatury, aby aktywować miniatury podobne do wybranego śledzonego obiektu, i typu opisu, aby aktywować opisy podobne do określonego tekstu."
+ },
+ "addTrigger": "Dodaj wyzwalacz",
+ "table": {
+ "name": "Nazwa",
+ "type": "Typ",
+ "content": "Zawartość",
+ "threshold": "Próg",
+ "actions": "Akcje",
+ "noTriggers": "Brak wyzwalaczy dla tej kamery.",
+ "edit": "Edytuj",
+ "deleteTrigger": "Usuń wyzwalacz",
+ "lastTriggered": "Ostatnio wyzwolony"
+ },
+ "type": {
+ "thumbnail": "Miniaturka",
+ "description": "Opis"
+ },
+ "actions": {
+ "alert": "Oznacz jako alarm",
+ "notification": "Wyślij powiadomienie"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Utwórz wyzwalacz",
+ "desc": "Utwórz wyzwalacz dla kamery {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Edytuj wyzwalacz",
+ "desc": "Edytuj ustawienia wyzwalacza na kamerze {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Usuń wyzwalacz",
+ "desc": "Czy na pewno chcesz usunąć wyzwalacz {{triggerName}}? To działanie jest nieodwracalne."
+ },
+ "form": {
+ "name": {
+ "title": "Nazwa",
+ "placeholder": "Wprowadź nazwę wyzwalacza",
+ "error": {
+ "minLength": "Nazwa musi mieć co najmniej 2 znaki.",
+ "invalidCharacters": "Nazwa może zawierać jedynie litery, liczby, podkreślenie i myślniki.",
+ "alreadyExists": "Wyzwalacz o tej nazwie istnieje już dla tej kamery."
+ }
+ },
+ "enabled": {
+ "description": "Włącz lub wyłącz ten wyzwalacz"
+ },
+ "type": {
+ "title": "Typ",
+ "placeholder": "Wybierz typ wyzwalacza"
+ },
+ "content": {
+ "title": "Zawartość",
+ "imagePlaceholder": "Wybierz obraz",
+ "textPlaceholder": "Wprowadź treść",
+ "imageDesc": "Wybierz obraz, aby uruchomić tę akcję po wykryciu podobnego obrazu.",
+ "textDesc": "Wprowadź tekst, który spowoduje uruchomienie tej akcji po wykryciu podobnego opisu śledzonego obiektu.",
+ "error": {
+ "required": "Zawartość jest wymagana."
+ }
+ },
+ "threshold": {
+ "title": "Próg",
+ "error": {
+ "min": "Próg musi wynosić co najmniej 0",
+ "max": "Próg nie może być większy niż 1"
+ }
+ },
+ "actions": {
+ "title": "Akcje",
+ "desc": "Domyślnie Frigate wysyła wiadomość MQTT dla wszystkich wyzwalaczy. Wybierz dodatkową akcję, która ma zostać wykonana po uruchomieniu tego wyzwalacza.",
+ "error": {
+ "min": "Musisz wybrać co najmniej jedną akcję."
+ }
+ },
+ "friendly_name": {
+ "title": "Przyjazna nazwa",
+ "placeholder": "Nazwij lub opisz ten trigger",
+ "description": "Opcjonalna przyjazna nazwa lub opis tego triggera."
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Utworzono wyzwalacz {{name}}.",
+ "updateTrigger": "Zaktualizowano wyzwalacz {{name}}.",
+ "deleteTrigger": "Usunięto wyzwalacz {{name}}."
+ },
+ "error": {
+ "createTriggerFailed": "Nie udało się utworzyć wyzwalacza: {{errorMessage}}",
+ "updateTriggerFailed": "Nie udało się zaktualizować wyzwalacza: {{errorMessage}}",
+ "deleteTriggerFailed": "Nie udało się usunąć wyzwalacza: {{errorMessage}}"
+ }
+ },
+ "semanticSearch": {
+ "title": "Wyszukiwanie semantyczne jest zablokowane",
+ "desc": "Wyszukiwanie semantyczne musi być włączone, aby korzystać z triggerów."
+ }
+ },
+ "cameraWizard": {
+ "title": "Dodaj kamerę",
+ "steps": {
+ "streamConfiguration": "Konfiguracja strumienia",
+ "nameAndConnection": "Nazwa i połączenie",
+ "probeOrSnapshot": "Sonda lub migawka",
+ "validationAndTesting": "Walidacja i testowanie"
+ },
+ "save": {
+ "success": "Zapisano ustawienia nowej kamery {{cameraName}}.",
+ "failure": "Błąd zapisu {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Rozdzielczość",
+ "fps": "kl./s",
+ "video": "Wideo",
+ "audio": "Audio"
+ },
+ "commonErrors": {
+ "noUrl": "Podaj poprawny adres URL",
+ "testFailed": "Negatywny wynik testu strumienia: {{error}}"
+ },
+ "step1": {
+ "cameraName": "Nazwa kamery",
+ "cameraNamePlaceholder": "np. drzwi_frontowe lub Ogród",
+ "host": "Host/Adres IP",
+ "port": "Port",
+ "username": "Nazwa użytkownika",
+ "usernamePlaceholder": "Opcjonalne",
+ "password": "Hasło",
+ "passwordPlaceholder": "Opcjonalne",
+ "selectTransport": "Wybierz protokół warstwy transportowej",
+ "cameraBrand": "Marka Kamery",
+ "selectBrand": "Wybierz markę kamery aby dostosować wzór adresu URL",
+ "customUrl": "Niestandardowy adres URL strumienia",
+ "brandInformation": "Informacje o marce",
+ "brandUrlFormat": "Dla kamer z formatem RTSP, formatuj URL jako: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://nazwa_użytkownika:hasło@host:port/scieżka",
+ "connectionSettings": "Ustawienia Połączenia",
+ "detectionMethod": "Metoda wykrywania strumienia",
+ "onvifPort": "Port ONVIF",
+ "manualMode": "Ręczny wybór",
+ "onvifPortDescription": "Dla kamer wspierających protokół ONVIF, port to zazwyczaj 80 lub 8080.",
+ "errors": {
+ "brandOrCustomUrlRequired": "Wybierz markę kamery oraz host/adres IP lub wybierz 'Inny' i podaj niestandardowy adres URL",
+ "nameRequired": "Wymagana nazwa kamery",
+ "nameLength": "Nazwa kamery musi mieć 64 lub mniej znaków",
+ "invalidCharacters": "Nazwa kamery zawiera niepoprawne znaki",
+ "nameExists": "Nazwa kamery jest już zajęta",
+ "customUrlRtspRequired": "Niestandardowe adresy URL muszą zaczynać się od \"rtsp://\". Ręczna konfiguracja wymagana jest dla strumieniów innych niż RTSP."
+ },
+ "description": "Wprowadź szczegóły kamery i wybierz autodetekcję lub ręcznie wybierz firmę.",
+ "probeMode": "Wykryj kamerę",
+ "detectionMethodDescription": "Wykryj kamerę za pomocą ONVIF (jeśli wspierane) by znaleźć adresy strumieni lub wybierz ręcznie markę kamery by wybrać predefiniowane adresy. By wpisać własny adres strumienia RTSP użyj ręcznej metody i wybierz \"Inne\".",
+ "useDigestAuth": "Użyj przesyłania skrótu autentykacji",
+ "useDigestAuthDescription": "Użyj przesyłania skrótu logowania HTTP dla ONVIF. Niektóre kamery mogą wymagać dedykowanego użytkownika i hasła ONVIF zamiast standardowego konta admin."
+ },
+ "step2": {
+ "testSuccess": "Test połączenia udany!",
+ "testFailed": "Test połączenia nieudany. Sprawdź adres źródła obrazu i spróbuj ponownie.",
+ "testFailedTitle": "Test Nieudany",
+ "streamDetails": "Szczegóły Strumienia",
+ "testing": {
+ "fetchingSnapshot": "Przygotowywanie migawki kamery...",
+ "probingMetadata": "Wykrywanie metadanych kamery..."
+ },
+ "deviceInfo": "Informacje o urządzeniu",
+ "manufacturer": "Producent",
+ "model": "Model",
+ "firmware": "Firmware",
+ "profiles": "Profile",
+ "ptzSupport": "Wsparcie PTZ",
+ "autotrackingSupport": "Wsparcie auto-śledzenia",
+ "uriCopy": "Kopiuj",
+ "uriCopied": "Adres URL skopiowano do schowka",
+ "testConnection": "Przetestuj połączenie",
+ "errors": {
+ "hostRequired": "Wymagany jest Host/Adres IP"
+ },
+ "description": "Wykryj dostępne strumienie kamery lub skonfiguruj ręcznie ustawienia na podstawie wybranej metody detekcji.",
+ "probing": "Wykrywanie kamery...",
+ "retry": "Ponów",
+ "probeFailed": "Błąd wykrywania kamery: {{error}}",
+ "probingDevice": "Wykrywanie urządzenia...",
+ "probeSuccessful": "Wykrywanie udane",
+ "probeError": "Błąd wykrywania",
+ "probeNoSuccess": "Niepowodzenie wykrywania",
+ "presets": "Ustawienia wstępne"
+ },
+ "step3": {
+ "streamTitle": "Strumień numer: {{number}}",
+ "streamUrl": "URL strumienia",
+ "streamUrlPlaceholder": "rtsp://nazwa_użytkownika:hasło@host:port/scieżka",
+ "selectStream": "Wybierz strumień",
+ "noStreamFound": "Nie znaleziono żadnego strumienia",
+ "url": "adres URL",
+ "resolution": "Rozdzielczość",
+ "selectResolution": "Wybierz rozdzielczość",
+ "quality": "Jakość",
+ "selectQuality": "wybierz jakość",
+ "roles": "Role",
+ "roleLabels": {
+ "detect": "Wykrywanie obiektów",
+ "record": "Nagrywanie",
+ "audio": "Dźwięk"
+ },
+ "testStream": "Przetestuj połączenie",
+ "testSuccess": "Test strumienia udany!",
+ "testFailed": "Test strumienia nieudany",
+ "testFailedTitle": "Test nieudany",
+ "connected": "Połączono",
+ "notConnected": "Nie połączono",
+ "featuresTitle": "Funkcje",
+ "go2rtc": "Ogranicz połączenia do kamery",
+ "detectRoleWarning": "Przynajmniej jeden strumień musi mieć rolę \"detect\".",
+ "rolesPopover": {
+ "title": "Role strumienia",
+ "detect": "Główny strumień służący do wykrywania obiektów."
+ },
+ "featuresPopover": {
+ "title": "Funkcje strumienia"
+ }
+ },
+ "step4": {
+ "description": "Końcowa walidacja i analiza przed zapisaniem ustawień nowej kamery. Połącz się z każdym strumieniem przed zapisaniem.",
+ "validationTitle": "Walidacja strumienia",
+ "reconnectionSuccess": "Ponowna próba połączenia udana.",
+ "streamUnavailable": "Podgląd strumienia niedostępny",
+ "connecting": "Łączenie...",
+ "streamTitle": "Strumień numer: {{number}}",
+ "valid": "Poprawny",
+ "connectingStream": "Łączenie",
+ "disconnectStream": "Rozłącz",
+ "estimatedBandwidth": "Przewidywana przepustowość",
+ "roles": "Role",
+ "ffmpegModuleDescription": "Jeżeli po kilku próbach strumień nadal nie ładuje się, uruchom ten tryb. Gdy włączony jest ten tryb Frigate będzie używać modułu ffmpeg z go2rtc. Może to zapewnić lepszą kompatybilność z niektórymi typami strumieniów.",
+ "none": "Brak",
+ "error": "Błąd",
+ "streamValidated": "Strumień numer: {{number}} przeszedł test pozytywnie.",
+ "streamValidationFailed": "Strumień numer: {{number}} test nieudany",
+ "saveAndApply": "Zapisz nową kamerę",
+ "saveError": "Nieprawidłowa konfiguracja. Sprawdź ustawienia.",
+ "issues": {
+ "title": "Walidacja strumienia",
+ "audioCodecGood": "Kodek dźwięku to {{codec}}.",
+ "resolutionHigh": "Rozdzielczość {{resolution}} może spowodować większe zużycie zasobów.",
+ "resolutionLow": "Rozdzielczość {{resolution}} może okazać się za mała aby poprawnie wykrywać małe obiekty.",
+ "noAudioWarning": "Nie wykryto dźwięku dla tego strumienia, nagrania również nie będą zawierać dźwięku.",
+ "audioCodecRecordError": "Kodek AAC jest wymagany aby uwzględnić dźwięk w nagraniach.",
+ "audioCodecRequired": "Strumień audio jest wymagany aby umożliwić wykrywanie dźwięku.",
+ "restreamingWarning": "Ograniczenie ilości połączeń do strumienia nagrań może delikatnie zwiększyć użycie procesora",
+ "brands": {
+ "reolink-rtsp": "Strumień RTSP dla kamer firmy Reolink nie jest rekomendowany. Uruchom strumień HTTP w oprogramowaniu kamery i uruchom kreator jeszcze raz."
+ }
+ }
+ },
+ "description": "Wykonaj poniższe kroki aby dodać nową kamerę do Frigate."
+ },
+ "cameraManagement": {
+ "title": "Zarządzaj kamerami",
+ "addCamera": "Dodaj nową kamerę",
+ "editCamera": "Edytuj kamerę:",
+ "selectCamera": "Wybierz kamerę",
+ "backToSettings": "Powrót do ustawień kamery",
+ "streams": {
+ "title": "Włącz / Wyłącz kamery"
+ },
+ "cameraConfig": {
+ "add": "Dodaj kamerę",
+ "edit": "Edytuj kamerę",
+ "description": "Skonfiguruj ustawienia kamery, wliczając strumienie wejściowe i ich role.",
+ "name": "Nazwa kamery",
+ "nameRequired": "Wymagana nazwa kamery",
+ "nameLength": "Nazwa kamery musi mieć 64 lub mniej znaków.",
+ "namePlaceholder": "np. drzwi_frontowe lub Ogród",
+ "enabled": "Włączone",
+ "ffmpeg": {
+ "inputs": "Strumienie wejściowe",
+ "path": "Ścieżka strumienia",
+ "pathRequired": "Ścieżka strumienia jest wymagana",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Role",
+ "rolesRequired": "Wymagana jest przynajmniej jedna rola",
+ "rolesUnique": "Każda rola ('audio', 'detect', 'record') może zostać przypisana tylko raz",
+ "addInput": "Dodaj strumień wejściowy",
+ "removeInput": "Usuń strumień wejściowy",
+ "inputsRequired": "Wymagany jest przynajmniej jeden strumień wejściowy"
+ },
+ "go2rtcStreams": "Strumienie go2rtc",
+ "streamUrls": "Adresy URL strumieni",
+ "addUrl": "Dodaj adres URL",
+ "addGo2rtcStream": "Dodaj strumień go2rtc",
+ "toast": {
+ "success": "Zapisano poprawnie kamerę {{cameraName}}"
+ }
+ }
+ },
+ "cameraReview": {
+ "review": {
+ "alerts": "Alerty ",
+ "detections": "Wykrycia "
+ },
+ "reviewClassification": {
+ "title": "Przegląd klasyfikacji",
+ "noDefinedZones": "Nie zdefiniowano żadnych stref dla tej kamery.",
+ "objectDetectionsTips": "Wszystkie obiekty w kategorii {{detectionsLabels}} wykryte przez kamerę {{cameraName}} będą wyświetlane jako Wykrycia niezależnie od strefy w której zostały wykryte.",
+ "zoneObjectDetectionsTips": {
+ "text": "Wszystkie obiekty w kategorii {{detectionsLabels}} nieskategoryzowane w strefie {{zone}} kamery {{cameraName}} będą wyświetlane jako Wykrycia.",
+ "notSelectDetections": "Wszystkie obiekty w kategorii {{detectionsLabels}} wykryte w strefie {{zone}} kamery {{cameraName}} nieskategoryzowane jako Alerty będą wyświetlane jako Wykrycia, niezależnie w której strefie zostaną wykryte.",
+ "regardlessOfZoneObjectDetectionsTips": "Wszystkie obiekty w kategorii {{detectionsLabels}} nieskategoryzowane dla kamery {{cameraName}} będą wyświetlane jako Wykrycia niezależnie w której strefie zostaną wykryte."
+ },
+ "unsavedChanges": "Niezapisane ustawienia klasyfikacji przeglądu dla kamery {{camera}}",
+ "selectAlertsZones": "Wybierz strefę dla Alertów",
+ "selectDetectionsZones": "Wybierz strefę dla Wykryć",
+ "limitDetections": "Ogranicz detekcje do konkretnych stref"
+ }
}
}
diff --git a/web/public/locales/pl/views/system.json b/web/public/locales/pl/views/system.json
index 1d3003faca..d6fe5ea89e 100644
--- a/web/public/locales/pl/views/system.json
+++ b/web/public/locales/pl/views/system.json
@@ -42,7 +42,11 @@
"gpuMemory": "Pamięć GPU",
"gpuUsage": "Użycie GPU",
"npuUsage": "Użycie NPU",
- "npuMemory": "Pamięć NPU"
+ "npuMemory": "Pamięć NPU",
+ "intelGpuWarning": {
+ "message": "Statystyki układu graficznego niedostępne",
+ "description": "W narzędziach telemetrii i statystyki układów graficznych firmy Intel (intel_gpu_top) znajduje się znany błąd powodujący raportowanie użycia układu graficznego wynoszące 0%, nawet gdy akceleracja sprzętowa i wykrywanie obiektów działa prawidłowo korzystając ze zintegrowanego układu graficznego. To nie jest błąd oprogramowania Frigate. Restart hosta może chwilowo rozwiązać problem i pozwolić na weryfikację działania układu graficznego. Ten bład nie wpływa na wydajność systemu,"
+ }
},
"title": "Ogólne",
"detector": {
@@ -50,7 +54,8 @@
"inferenceSpeed": "Szybkość wnioskowania detektora",
"cpuUsage": "Użycie CPU przez detektor",
"memoryUsage": "Użycie pamięci przez detektor",
- "temperature": "Temperatura detektora"
+ "temperature": "Temperatura detektora",
+ "cpuUsageInformation": "Procesor został użyty w przygotowaniu wejścia i obsłudze danych do i z modeli wykrywających. Ta wartość nie mierzy czasu wnioskowania, nawet jeśli został użyty akcelerator lub GPU."
},
"otherProcesses": {
"title": "Inne procesy",
@@ -123,6 +128,10 @@
"title": "Nagrania",
"tips": "Ta wartość reprezentuje całkowite miejsce zajmowane przez nagrania w bazie danych Frigate. Frigate nie śledzi wykorzystania magazynu dla wszystkich plików na twoim dysku.",
"earliestRecording": "Najwcześniejsze dostępne nagranie:"
+ },
+ "shm": {
+ "title": "Wykorzystanie pamięci współdzielonej SHM",
+ "warning": "Obecny rozmiar pamięci współdzielonej SHM {{total}}MB jest za mały. Zwiększ shm_size do co najmniej {{min_shm}}MB."
}
},
"logs": {
@@ -158,7 +167,8 @@
"reindexingEmbeddings": "Ponowne indeksowanie osadzeń ({{processed}}% ukończone)",
"detectIsSlow": "{{detect}} jest wolne ({{speed}} ms)",
"detectIsVerySlow": "{{detect}} jest bardzo wolne ({{speed}} ms)",
- "cameraIsOffline": "{{camera}} jest niedostępna"
+ "cameraIsOffline": "{{camera}} jest niedostępna",
+ "shmTooLow": "przydział {{total}} MB dla /dev/shm powinien zostać zwiększony do przynajmniej {{min}} MB."
},
"enrichments": {
"title": "Wzbogacenia",
@@ -174,7 +184,10 @@
"yolov9_plate_detection_speed": "Prędkość detekcji rejestracji samochodowych YOLOv9",
"yolov9_plate_detection": "Detekcja rejestracji samochodowych YOLOv9",
"text_embedding": "Osadzenie tekstu",
- "face_recognition": "Rozpoznawanie twarzy"
+ "face_recognition": "Rozpoznawanie twarzy",
+ "classification_events_per_second": "{{name}} Klasyfikacja zdarzeń na sekundę",
+ "classification_speed": "{{name}} Szybkość klasyfikacji",
+ "classification": "{{name}} Klasyfikacja"
}
}
}
diff --git a/web/public/locales/pt-BR/audio.json b/web/public/locales/pt-BR/audio.json
index 04ee37d6b5..b36f099021 100644
--- a/web/public/locales/pt-BR/audio.json
+++ b/web/public/locales/pt-BR/audio.json
@@ -1,7 +1,7 @@
{
"mantra": "Mantra",
"child_singing": "Criança cantando",
- "speech": "Discurso",
+ "speech": "Fala",
"yell": "Gritar",
"chant": "Canto",
"babbling": "Balbuciando",
@@ -425,5 +425,9 @@
"artillery_fire": "Fogo de Artilharia",
"cap_gun": "Espoleta",
"fireworks": "Fogos de Artifício",
- "firecracker": "Rojões"
+ "firecracker": "Rojões",
+ "noise": "Ruído",
+ "distortion": "Distorção",
+ "cacophony": "Cacofonia",
+ "vibration": "Vibração"
}
diff --git a/web/public/locales/pt-BR/common.json b/web/public/locales/pt-BR/common.json
index c5b789ccc2..e1ab1e5259 100644
--- a/web/public/locales/pt-BR/common.json
+++ b/web/public/locales/pt-BR/common.json
@@ -3,7 +3,7 @@
"untilForTime": "Até {{time}}",
"untilForRestart": "Até o Frigate reiniciar.",
"untilRestart": "Até reiniciar",
- "ago": "{{timeAgo}} antes",
+ "ago": "{{timeAgo}} atrás",
"justNow": "Agora mesmo",
"today": "Hoje",
"yesterday": "Ontem",
@@ -80,7 +80,7 @@
"24hour": "dd-MM-yy-HH-mm-ss"
}
},
- "selectItem": "Selecione {{item}}",
+ "selectItem": "Selecionar {{item}}",
"unit": {
"speed": {
"mph": "mi/h",
@@ -89,6 +89,14 @@
"length": {
"feet": "pés",
"meters": "metros"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/hora",
+ "mbph": "MB/hora",
+ "gbph": "GB/hora"
}
},
"label": {
@@ -169,7 +177,15 @@
"ca": "Català (Catalão)",
"withSystem": {
"label": "Usar as configurações de sistema para o idioma"
- }
+ },
+ "ptBR": "Português Brasileiro (Português Brasileiro)",
+ "sr": "Српски (Sérvio)",
+ "sl": "Slovenščina (Esloveno)",
+ "lt": "Lietuvių (Lituano)",
+ "bg": "Български (Búlgaro)",
+ "gl": "Galego (Galego)",
+ "id": "Bahasa Indonesia (Indonésio)",
+ "ur": "اردو (Urdu)"
},
"systemLogs": "Logs de sistema",
"settings": "Configurações",
@@ -210,7 +226,7 @@
"count_other": "{{count}} Câmeras"
}
},
- "review": "Revisão",
+ "review": "Revisar",
"explore": "Explorar",
"export": "Exportar",
"uiPlayground": "Playground da UI",
@@ -261,5 +277,9 @@
"documentTitle": "Não Encontrado - Frigate",
"title": "404",
"desc": "Página não encontrada"
+ },
+ "readTheDocumentation": "Leia a documentação",
+ "information": {
+ "pixels": "{{area}}px"
}
}
diff --git a/web/public/locales/pt-BR/components/auth.json b/web/public/locales/pt-BR/components/auth.json
index 7172acaae1..27775812f6 100644
--- a/web/public/locales/pt-BR/components/auth.json
+++ b/web/public/locales/pt-BR/components/auth.json
@@ -10,6 +10,7 @@
"loginFailed": "Falha no Login",
"unknownError": "Erro desconhecido. Checar registros.",
"webUnknownError": "Erro desconhecido. Verifique os logs do console."
- }
+ },
+ "firstTimeLogin": "Fazendo login pela primeira vez? As credenciais estão escritas nos logs do Frigate."
}
}
diff --git a/web/public/locales/pt-BR/components/camera.json b/web/public/locales/pt-BR/components/camera.json
index 322e63522d..03ee52b587 100644
--- a/web/public/locales/pt-BR/components/camera.json
+++ b/web/public/locales/pt-BR/components/camera.json
@@ -66,7 +66,8 @@
"label": "Modo de compatibilidade",
"desc": "Habilite essa opção somente se a transmissão ao vivo da sua câmera estiver exibindo artefatos de cor e possui uma linha diagonal no canto esquerdo da imagem."
}
- }
+ },
+ "birdseye": "Visão Panorâmica"
}
},
"debug": {
diff --git a/web/public/locales/pt-BR/components/dialog.json b/web/public/locales/pt-BR/components/dialog.json
index f180fe5130..6f15f98557 100644
--- a/web/public/locales/pt-BR/components/dialog.json
+++ b/web/public/locales/pt-BR/components/dialog.json
@@ -108,7 +108,15 @@
"button": {
"markAsReviewed": "Marcar como revisado",
"export": "Exportar",
- "deleteNow": "Deletar Agora"
+ "deleteNow": "Deletar Agora",
+ "markAsUnreviewed": "Marcar como não revisado"
}
+ },
+ "imagePicker": {
+ "selectImage": "Selecionar a miniatura de um objeto rastreado",
+ "search": {
+ "placeholder": "Pesquisar por rótulo ou sub-rótulo…"
+ },
+ "noImages": "Nenhuma miniatura encontrada para essa câmera"
}
}
diff --git a/web/public/locales/pt-BR/components/filter.json b/web/public/locales/pt-BR/components/filter.json
index d503d3f13b..ee84e75d69 100644
--- a/web/public/locales/pt-BR/components/filter.json
+++ b/web/public/locales/pt-BR/components/filter.json
@@ -23,7 +23,7 @@
"short": "Datas"
}
},
- "more": "Mais filtros",
+ "more": "Mais Filtros",
"reset": {
"label": "Resetar filtros para valores padrão"
},
@@ -71,7 +71,7 @@
"title": "Configurações",
"defaultView": {
"title": "Visualização Padrão",
- "desc": "Quando nenhum filtro é selecionado, exibir um sumário dos objetos mais recentes rastreados por categoria, ou exiba uma grade sem filtro.",
+ "desc": "Quando nenhum filtro é selecionado, exibe um sumário dos objetos mais recentes rastreados por rótulo, ou exibe uma grade sem filtro.",
"summary": "Sumário",
"unfilteredGrid": "Grade Sem Filtros"
},
@@ -106,7 +106,7 @@
},
"trackedObjectDelete": {
"title": "Confirmar Exclusão",
- "desc": "Deletar esses {{objectLength}} objetos rastreados remove as capturas de imagem, qualquer embeddings salvos, e quaisquer entradas do ciclo de vida associadas do objeto. Gravações desses objetos rastreados na visualização de Histórico NÃO irão ser deletadas.
Tem certeza que quer proceder?
Segure a tecla Shift para pular esse diálogo no futuro.",
+ "desc": "Deletar esses {{objectLength}} objetos rastreados remove as capturas de imagem, quaisquer embeddings salvos, e quaisquer entradas do ciclo de vida associadas do objeto. Gravações desses objetos rastreados na visualização de Histórico NÃO irão ser deletadas.
Tem certeza que quer proceder?
Segure a tecla Shift para pular esse diálogo no futuro.",
"toast": {
"success": "Objetos rastreados deletados com sucesso.",
"error": "Falha ao deletar objeto rastreado: {{errorMessage}}"
@@ -121,6 +121,16 @@
"loading": "Carregando placas de identificação reconhecidas…",
"placeholder": "Digite para pesquisar por placas de identificação…",
"noLicensePlatesFound": "Nenhuma placa de identificação encontrada.",
- "selectPlatesFromList": "Seleciona uma ou mais placas da lista."
+ "selectPlatesFromList": "Seleciona uma ou mais placas da lista.",
+ "selectAll": "Selecionar todos",
+ "clearAll": "Limpar todos"
+ },
+ "classes": {
+ "label": "Classes",
+ "all": {
+ "title": "Todas as Classes"
+ },
+ "count_one": "{{count}} Classe",
+ "count_other": "{{count}} Classes"
}
}
diff --git a/web/public/locales/pt-BR/views/classificationModel.json b/web/public/locales/pt-BR/views/classificationModel.json
new file mode 100644
index 0000000000..c90529873f
--- /dev/null
+++ b/web/public/locales/pt-BR/views/classificationModel.json
@@ -0,0 +1,55 @@
+{
+ "documentTitle": "Modelos de Classificação",
+ "button": {
+ "deleteClassificationAttempts": "Apagar Imagens de Classificação",
+ "renameCategory": "Renomear Classe",
+ "deleteCategory": "Apagar Classe",
+ "deleteImages": "Apagar Imagens",
+ "trainModel": "Treinar Modelo",
+ "addClassification": "Adicionar classificação",
+ "deleteModels": "Excluir modelos",
+ "editModel": "Editar Modelo"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Classe Apagada",
+ "deletedImage": "Imagens Apagadas",
+ "categorizedImage": "Imagem Classificada com Sucesso",
+ "trainedModel": "Modelo treinado com sucesso.",
+ "trainingModel": "Treinamento do modelo iniciado com sucesso.",
+ "deletedModel_one": "{{count}} modelo excluído com sucesso",
+ "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"
+ },
+ "error": {
+ "deleteImageFailed": "Falha ao deletar:{{errorMessage}}",
+ "deleteCategoryFailed": "Falha ao deletar classe:{{errorMessage}}",
+ "categorizeFailed": "Falha ao categorizar imagem:{{errorMessage}}",
+ "deleteModelFailed": "Falha ao excluir o modelo: {{errorMessage}}",
+ "trainingFailed": "Falha ao iniciar o treinamento do modelo: {{errorMessage}}",
+ "trainingFailedToStart": "Falha ao iniciar o treinamento do modelo: {{errorMessage}}",
+ "updateModelFailed": "Falha ao atualizar modelo: {{errorMessage}}",
+ "renameCategoryFailed": "Falha ao renomear classe: {{errorMessage}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Excluir Classe",
+ "desc": "Tem certeza de que deseja excluir a classe {{name}}? Isso excluirá permanentemente todas as imagens associadas e exigirá o treinamento do modelo novamente.",
+ "minClassesTitle": "Não é possível apagar a classe"
+ },
+ "deleteModel": {
+ "title": "Deletar modelo de classificação",
+ "single": "Tem certeza de que deseja excluir {{name}}? Isso excluirá permanentemente todos os dados associados, incluindo imagens e dados de treinamento. Esta ação não pode ser desfeita."
+ },
+ "details": {
+ "scoreInfo": "A pontuação representa a média de confiança da classificação de todas as detecções deste objeto."
+ },
+ "tooltip": {
+ "trainingInProgress": "O modelo está sendo treinado",
+ "noNewImages": "Nenhuma nova imagem para treinar. Classifique mais imagens para treinar mais.",
+ "noChanges": "Nenhuma alteração ao conjunto de dados desde o último treinamento.",
+ "modelNotReady": "O modelo não está pronto para treinamento"
+ }
+}
diff --git a/web/public/locales/pt-BR/views/configEditor.json b/web/public/locales/pt-BR/views/configEditor.json
index 1bd110a6f1..46c4808cbc 100644
--- a/web/public/locales/pt-BR/views/configEditor.json
+++ b/web/public/locales/pt-BR/views/configEditor.json
@@ -12,5 +12,7 @@
"error": {
"savingError": "Erro ao salvar configuração"
}
- }
+ },
+ "safeConfigEditor": "Editor de Configuração (Modo Seguro)",
+ "safeModeDescription": "O Frigate está no modo seguro devido a um erro de validação de configuração."
}
diff --git a/web/public/locales/pt-BR/views/events.json b/web/public/locales/pt-BR/views/events.json
index 1cd63daf01..37785ab137 100644
--- a/web/public/locales/pt-BR/views/events.json
+++ b/web/public/locales/pt-BR/views/events.json
@@ -26,13 +26,33 @@
},
"markTheseItemsAsReviewed": "Marque estes itens como revisados",
"newReviewItems": {
- "button": "Novos Itens para Revisão",
+ "button": "Novos Itens para Revisar",
"label": "Ver novos itens para revisão"
},
"selected_one": "{{count}} selecionado(s)",
- "documentTitle": "Revisão - Frigate",
+ "documentTitle": "Revisar - Frigate",
"markAsReviewed": "Marcar como Revisado",
"selected_other": "{{count}} selecionado(s)",
"camera": "Câmera",
- "detected": "detectado"
+ "detected": "detectado",
+ "suspiciousActivity": "Atividade Suspeita",
+ "threateningActivity": "Atividade de Ameaça",
+ "detail": {
+ "noDataFound": "Nenhum dado de detalhe para revisar",
+ "aria": "Alternar visualização de detalhe",
+ "trackedObject_one": "{{count}} objeto(s)",
+ "trackedObject_other": "{{count}} objetos",
+ "noObjectDetailData": "Nenhum dado de detalhe de objeto disponível.",
+ "label": "Detalhe",
+ "settings": "Configurações de visualização detalhada",
+ "alwaysExpandActive": {
+ "title": "Expandir sempre o modo ativo"
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Ponto rastreado",
+ "clickToSeek": "Clique para ir para esse horário"
+ },
+ "zoomIn": "Ampliar",
+ "zoomOut": "Diminuir o zoom"
}
diff --git a/web/public/locales/pt-BR/views/explore.json b/web/public/locales/pt-BR/views/explore.json
index a43ee2b176..bb3e6fdab4 100644
--- a/web/public/locales/pt-BR/views/explore.json
+++ b/web/public/locales/pt-BR/views/explore.json
@@ -3,15 +3,15 @@
"generativeAI": "IA Generativa",
"exploreMore": "Explorar mais objetos {{label}}",
"exploreIsUnavailable": {
- "title": "Explorar não está disponível",
+ "title": "A seção Explorar está indisponível",
"embeddingsReindexing": {
- "context": "Explorar pode ser usado depois da incorporação do objeto rastreado terminar a reindexação.",
- "startingUp": "Começando…",
- "estimatedTime": "Time estimado faltando:",
- "finishingShortly": "Terminando em breve",
+ "context": "O menu explorar pode ser usado após os embeddings de objetos rastreados terem terminado de reindexar.",
+ "startingUp": "Iniciando…",
+ "estimatedTime": "Tempo estimado restante:",
+ "finishingShortly": "Finalizando em breve",
"step": {
- "thumbnailsEmbedded": "Miniaturas incorporadas: ",
- "descriptionsEmbedded": "Descrições incorporadas: ",
+ "thumbnailsEmbedded": "Miniaturas embedded: ",
+ "descriptionsEmbedded": "Descrições embedded: ",
"trackedObjectsProcessed": "Objetos rastreados processados: "
}
},
@@ -24,7 +24,7 @@
"visionModelFeatureExtractor": "Extrator de características do modelo de visão"
},
"tips": {
- "context": "Você pode querer reindexar as incorporações de seus objetos rastreados uma vez que os modelos forem baixados.",
+ "context": "Você pode querer reindexar os embeddings de seus objetos rastreados uma vez que os modelos forem baixados.",
"documentation": "Leia a documentação"
},
"error": "Um erro ocorreu. Verifique os registos do Frigate."
@@ -43,26 +43,28 @@
"mismatch_one": "{{count}} objeto indisponível foi detectado e incluido nesse item de revisão. Esse objeto ou não se qualifica para um alerta ou detecção, ou já foi limpo/deletado.",
"mismatch_many": "{{count}} objetos indisponíveis foram detectados e incluídos nesse item de revisão. Esses objetos ou não se qualificam para um alerta ou detecção, ou já foram limpos/deletados.",
"mismatch_other": "{{count}} objetos indisponíveis foram detectados e incluídos nesse item de revisão. Esses objetos ou não se qualificam para um alerta ou detecção, ou já foram limpos/deletados.",
- "hasMissingObjects": "Ajustar a sua configuração se quiser que o Frigate salve objetos rastreados com as seguintes categorias: {{objects}}"
+ "hasMissingObjects": "Ajustar a sua configuração se quiser que o Frigate salve objetos rastreados com os seguintes rótulos: {{objects}}"
},
"toast": {
"success": {
"regenerate": "Uma nova descrição foi solicitada do {{provider}}. Dependendo da velocidade do seu fornecedor, a nova descrição pode levar algum tempo para regenerar.",
- "updatedSublabel": "Sub-categoria atualizada com sucesso.",
- "updatedLPR": "Placa de identificação atualizada com sucesso."
+ "updatedSublabel": "Sub-rótulo atualizado com sucesso.",
+ "updatedLPR": "Placa de identificação atualizada com sucesso.",
+ "audioTranscription": "Transcrição de áudio requisitada com sucesso."
},
"error": {
"regenerate": "Falha ao ligar para {{provider}} para uma descrição nova: {{errorMessage}}",
- "updatedSublabelFailed": "Falha ao atualizar sub-categoria: {{errorMessage}}",
- "updatedLPRFailed": "Falha ao atualizar placa de identificação: {{errorMessage}}"
+ "updatedSublabelFailed": "Falha ao atualizar sub-rótulo: {{errorMessage}}",
+ "updatedLPRFailed": "Falha ao atualizar placa de identificação: {{errorMessage}}",
+ "audioTranscription": "Falha ao requisitar transcrição de áudio: {{errorMessage}}"
}
}
},
- "label": "Categoria",
+ "label": "Rótulo",
"editSubLabel": {
- "title": "Editar sub-categoria",
- "desc": "Nomeie uma nova sub categoria para esse(a) {{label}}",
- "descNoLabel": "Nomeie uma nova sub-categoria para esse objeto rastreado"
+ "title": "Editar sub-rótulo",
+ "desc": "Nomeie um novo sub-rótulo para esse(a) {{label}}",
+ "descNoLabel": "Nomeie um sub-rótulo para esse objeto rastreado"
},
"editLPR": {
"title": "Editar placa de identificação",
@@ -99,6 +101,9 @@
"tips": {
"descriptionSaved": "Descrição salva com sucesso",
"saveDescriptionFailed": "Falha ao atualizar a descrição: {{errorMessage}}"
+ },
+ "score": {
+ "label": "Pontuação"
}
},
"trackedObjectDetails": "Detalhes do Objeto Rastreado",
@@ -106,7 +111,8 @@
"details": "detalhes",
"snapshot": "captura de imagem",
"video": "vídeo",
- "object_lifecycle": "ciclo de vida do obejto"
+ "object_lifecycle": "ciclo de vida do objeto",
+ "thumbnail": "thumbnail"
},
"objectLifecycle": {
"title": "Ciclo de Vida do Objeto",
@@ -184,12 +190,20 @@
},
"deleteTrackedObject": {
"label": "Deletar esse objeto rastreado"
+ },
+ "addTrigger": {
+ "label": "Adicionar gatilho",
+ "aria": "Adicionar um gatilho para esse objeto rastreado"
+ },
+ "audioTranscription": {
+ "label": "Transcrever",
+ "aria": "Solicitar transcrição de áudio"
}
},
"dialog": {
"confirmDelete": {
"title": "Confirmar Exclusão",
- "desc": "Deletar esse objeto rastreado remove a captura de imagem, qualquer embedding salvo, e quaisquer entradas de ciclo de vida de objeto associadas. Gravações desse objeto rastreado na visualização de Histórico NÃO serão deletadas.
Tem certeza que quer prosseguir?"
+ "desc": "Deletar esse objeto rastreado remove a captura de imagem, quaisquer embeddings salvos, e quaisquer entradas de ciclo de vida de objeto associadas. Gravações desse objeto rastreado na visualização de Histórico NÃO serão deletadas.
Tem certeza que quer prosseguir?"
}
},
"noTrackedObjects": "Nenhum Objeto Rastreado Encontrado",
@@ -205,5 +219,11 @@
"error": "Falha ao detectar objeto rastreado {{errorMessage}}"
}
}
+ },
+ "aiAnalysis": {
+ "title": "Análise de IA"
+ },
+ "concerns": {
+ "label": "Preocupações"
}
}
diff --git a/web/public/locales/pt-BR/views/exports.json b/web/public/locales/pt-BR/views/exports.json
index 892f719d26..12a6dce458 100644
--- a/web/public/locales/pt-BR/views/exports.json
+++ b/web/public/locales/pt-BR/views/exports.json
@@ -13,5 +13,11 @@
"error": {
"renameExportFailed": "Falha ao renomear exportação: {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "shareExport": "Compartilhar exportação",
+ "downloadVideo": "Baixar vídeo",
+ "editName": "Editar nome",
+ "deleteExport": "Apagar exportação"
}
}
diff --git a/web/public/locales/pt-BR/views/faceLibrary.json b/web/public/locales/pt-BR/views/faceLibrary.json
index d08b381102..ee3ccde38c 100644
--- a/web/public/locales/pt-BR/views/faceLibrary.json
+++ b/web/public/locales/pt-BR/views/faceLibrary.json
@@ -15,7 +15,7 @@
},
"maxSize": "Tamanho máximo: {{size}}MB",
"dropActive": "Solte a imagem aqui…",
- "dropInstructions": "Arraste e solte uma imagem aqui, ou clique para selecionar"
+ "dropInstructions": "Arraste e solte ou cole uma imagem aqui ou clique para selecionar"
},
"deleteFaceLibrary": {
"title": "Apagar Nome",
@@ -33,19 +33,19 @@
"new": "Criar Novo Rosto",
"title": "Criar Coleção",
"desc": "Criar uma nova coleção",
- "nextSteps": "Para construir uma base forte:
Use a aba Teinar para selecionar e treinar em imagens para cada pessoa detectada.
Foque em imagens retas para melhores resultados; evite treinar imagens que capturam rostos em um ângulo.
"
+ "nextSteps": "Para construir uma base forte:
Use a aba Reconhecimentos Recentes para selecionar e treinar em imagens para cada pessoa detectada.
Foque em imagens retas para melhores resultados; evite treinar imagens que capturam rostos em um ângulo.
"
},
"deleteFaceAttempts": {
"title": "Apagar Rostos",
"desc_one": "Você tem certeza que quer deletar {{count}} rosto? Essa ação não pode ser desfeita.",
- "desc_many": "Você tem certeza que quer deletar {{count}} rostos? Essa ação não pode ser desfeita.",
- "desc_other": ""
+ "desc_many": "Você tem certeza que quer deletar os {{count}} rostos? Essa ação não pode ser desfeita.",
+ "desc_other": "Você tem certeza que quer deletar os {{count}} rostos? Essa ação não pode ser desfeita."
},
"renameFace": {
"title": "Renomear Rosto",
"desc": "Entre com o novo nome para {{name}}"
},
- "nofaces": "Sem rostos disponíveis",
+ "nofaces": "Nenhum rosto disponível",
"pixels": "{{area}}px",
"readTheDocs": "Leia a documentação",
"steps": {
@@ -58,7 +58,7 @@
},
"description": {
"placeholder": "Informe um nome para esta coleção",
- "addFace": "Passo a Passo para adicionar uma nova coleção a Biblioteca Facial.",
+ "addFace": "Adicione uma nova coleção à Biblioteca Facial subindo a sua primeira imagem.",
"invalidName": "Nome inválido. Nomes podem incluir apenas letras, números, espaços, apóstrofos, sublinhados e hífenes."
},
"documentTitle": "Biblioteca de rostos - Frigate",
@@ -68,8 +68,8 @@
},
"collections": "Coleções",
"train": {
- "title": "Treinar",
- "aria": "Selecionar treinar",
+ "title": "Reconhecimentos Recentes",
+ "aria": "Selecionar reconhecimentos recentes",
"empty": "Não há tentativas recentes de reconhecimento facial"
},
"selectFace": "Selecionar Rosto",
diff --git a/web/public/locales/pt-BR/views/live.json b/web/public/locales/pt-BR/views/live.json
index 97ca4675ce..8fb79a81af 100644
--- a/web/public/locales/pt-BR/views/live.json
+++ b/web/public/locales/pt-BR/views/live.json
@@ -43,6 +43,14 @@
"out": {
"label": "Diminuir Zoom na câmera PTZ"
}
+ },
+ "focus": {
+ "in": {
+ "label": "Aumentar foco da câmera PTZ"
+ },
+ "out": {
+ "label": "Tirar foco da câmera PTZ"
+ }
}
},
"camera": {
@@ -63,7 +71,7 @@
},
"snapshots": {
"enable": "Permitir Capturas de Imagem",
- "disable": "Desativar Campturas de Imagem"
+ "disable": "Desativar Capturas de Imagem"
},
"audioDetect": {
"enable": "Ativar Detecção de Áudio",
@@ -78,8 +86,8 @@
"disable": "Ocultar Estatísticas de Transmissão"
},
"manualRecording": {
- "title": "Gravação Sob Demanda",
- "tips": "Inicie um evento manual baseado nas configurações de retenção de gravação dessa câmera.",
+ "title": "Sob Demanda",
+ "tips": "Baixe uma captura de tela instantânea ou Inicie um evento manual baseado nas configurações de retenção de gravação dessa câmera.",
"playInBackground": {
"label": "Reproduzir em segundo plano",
"desc": "Habilite essa opção para continuar transmitindo quando o reprodutor estiver oculto."
@@ -126,6 +134,9 @@
"playInBackground": {
"label": "Reproduzir em segundo plano",
"tips": "Habilitar essa opção para continuar a transmissão quando o reprodutor estiver oculto."
+ },
+ "debug": {
+ "picker": "A seleção da transmissão fica indisponível em modo de depuração. A visualização de depuração sempre usa o papel de detecção atribuído à transmissão."
}
},
"cameraSettings": {
@@ -135,7 +146,8 @@
"recording": "Gravação",
"snapshots": "Capturas de Imagem",
"audioDetection": "Detecção de Áudio",
- "autotracking": "Auto Rastreamento"
+ "autotracking": "Auto Rastreamento",
+ "transcription": "Transcrição de Áudio"
},
"history": {
"label": "Exibir gravação histórica"
@@ -154,5 +166,20 @@
"label": "Editar Grupo de Câmera"
},
"exitEdit": "Sair da Edição"
+ },
+ "transcription": {
+ "enable": "Habilitar Transcrição de Áudio em Tempo Real",
+ "disable": "Desabilitar Transcrição de Áudio em Tempo Real"
+ },
+ "noCameras": {
+ "title": "Nenhuma Câmera Configurada",
+ "description": "Inicie conectando uma câmera ao Frigate",
+ "buttonText": "Adicionar Câmera"
+ },
+ "snapshot": {
+ "takeSnapshot": "Baixar captura de imagem instantânea",
+ "noVideoSource": "Nenhuma fonte de vídeo disponível para captura de imagem.",
+ "captureFailed": "Falha ao capturar imagem.",
+ "downloadStarted": "Download de capturas de imagem iniciado."
}
}
diff --git a/web/public/locales/pt-BR/views/settings.json b/web/public/locales/pt-BR/views/settings.json
index c5e0af4385..541fd8bf4d 100644
--- a/web/public/locales/pt-BR/views/settings.json
+++ b/web/public/locales/pt-BR/views/settings.json
@@ -7,9 +7,11 @@
"masksAndZones": "Editor de Máscara e Zona - Frigate",
"motionTuner": "Ajuste de Movimento - Frigate",
"object": "Debug - Frigate",
- "general": "Configurações Gerais - Frigate",
+ "general": "Configurações de Interface de Usuário - Frigate",
"frigatePlus": "Frigate+ Configurações- Frigate",
- "notifications": "Configurações de notificação - Frigate"
+ "notifications": "Configurações de notificação - Frigate",
+ "cameraManagement": "Gerenciar Câmeras - Frigate",
+ "cameraReview": "Configurações de Revisão de Câmera - Frigate"
},
"menu": {
"ui": "UI",
@@ -20,7 +22,11 @@
"frigateplus": "Frigate+",
"motionTuner": "Ajuste de Movimento",
"debug": "Depurar",
- "enrichments": "Melhorias"
+ "enrichments": "Enriquecimentos",
+ "triggers": "Gatilhos",
+ "roles": "Papéis",
+ "cameraManagement": "Gerenciamento",
+ "cameraReview": "Revisar"
},
"dialog": {
"unsavedChanges": {
@@ -37,12 +43,12 @@
"liveDashboard": {
"title": "Painel em Tempo Real",
"automaticLiveView": {
- "label": "Visão em Tempo Real Automática",
- "desc": "Automaticamente alterar para a visão em tempo real da câmera quando alguma atividade for detectada. Desativar essa opção faz com que as imagens estáticas da câmera no Painel em Tempo Real atualizem apenas uma vez por minuto."
+ "label": "Visualização em Tempo Real Automática",
+ "desc": "Automaticamente alterar para a visualização em tempo real da câmera quando alguma atividade for detectada. Desativar essa opção faz com que as imagens estáticas da câmera no Painel em Tempo Real atualizem apenas uma vez por minuto."
},
"playAlertVideos": {
"label": "Reproduzir Alertas de Video",
- "desc": "Por padrão, alertas recentes no Painel em Tempo Real sejam reproduzidos como vídeos em loop. Desative essa opção para mostrar apenas a imagens estáticas de alertas recentes nesse dispositivo / navegador."
+ "desc": "Por padrão, alertas recentes no Painel em Tempo Real são reproduzidos como vídeos em loop. Desative essa opção para mostrar apenas a imagens estáticas de alertas recentes nesse dispositivo / navegador."
}
},
"storedLayouts": {
@@ -58,8 +64,8 @@
"recordingsViewer": {
"title": "Visualizador de Gravações",
"defaultPlaybackRate": {
- "label": "Taxa Padrão de Reprodução",
- "desc": "Taxa Padrão de Reprodução para Gravações."
+ "label": "Velocidade Padrão de Reprodução",
+ "desc": "Velocidade padrão de reprodução para gravações."
}
},
"calendar": {
@@ -87,7 +93,7 @@
"unsavedChanges": "Alterações de configurações de Enriquecimento não salvas",
"birdClassification": {
"title": "Classificação de Pássaros",
- "desc": "A classificação de pássaros identifica pássaros conhecidos usando o modelo Tensorflow quantizado. Quando um pássaro é reconhecido, o seu nome commum será adicionado como uma subcategoria. Essa informação é incluida na UI, filtros e notificações."
+ "desc": "A classificação de pássaros identifica pássaros conhecidos usando o modelo Tensorflow quantizado. Quando um pássaro é reconhecido, o seu nome comum será adicionado como um sub-rótulo. Essa informação é incluida na UI, filtros e notificações."
},
"semanticSearch": {
"title": "Busca Semântica",
@@ -95,7 +101,7 @@
"readTheDocumentation": "Leia a Documentação",
"reindexNow": {
"label": "Reindexar Agora",
- "desc": "A reindexação irá regenerar os embeddings para todos os objetos rastreados. Esse processo roda em segundo plano e pode 100% da CPU e levar um tempo considerável dependendo do número de objetos rastreados que você possui.",
+ "desc": "A reindexação irá regenerar os embeddings para todos os objetos rastreados. Esse processo roda em segundo plano e pode demandar 100% da CPU e levar um tempo considerável dependendo do número de objetos rastreados que você possui.",
"confirmTitle": "Confirmar Reindexação",
"confirmDesc": "Tem certeza que quer reindexar todos os embeddings de objetos rastreados? Esse processo rodará em segundo plano porém utilizará 100% da CPU e levará uma quantidade de tempo considerável. Você pode acompanhar o progresso na página Explorar.",
"confirmButton": "Reindexar",
@@ -108,7 +114,7 @@
"desc": "O tamanho do modelo usado para embeddings de pesquisa semântica.",
"small": {
"title": "pequeno",
- "desc": "Usandopequeno emprega a versão quantizada do modelo que utiliza menos RAM e roda mais rápido na CPU, com diferenças negligíveis na qualidade dos embeddings."
+ "desc": "Usando pequeno emprega a versão quantizada do modelo que utiliza menos RAM e roda mais rápido na CPU, com diferenças negligíveis na qualidade dos embeddings."
},
"large": {
"title": "grande",
@@ -118,24 +124,24 @@
},
"faceRecognition": {
"title": "Reconhecimento Facial",
- "desc": "O reconhecimento facial permite que pessoas sejam associadas a nomes e quando seus rostos forem reconhecidos, o Frigate associará o nome da pessoa como uma sub-categoria. Essa informação é inclusa na UI, filtros e notificações.",
+ "desc": "O reconhecimento facial permite que pessoas sejam associadas a nomes e quando seus rostos forem reconhecidos, o Frigate associará o nome da pessoa como um sub-rótulo. Essa informação é inclusa na UI, filtros e notificações.",
"readTheDocumentation": "Leia a Documentação",
"modelSize": {
"label": "Tamanho do Modelo",
"desc": "O tamanho do modelo usado para reconhecimento facial.",
"small": {
"title": "pequeno",
- "desc": "Usar pequeno emprega o modelo de embedding de rosto FaceNet, que roda de maneira eficiente na maioria das CPUs."
+ "desc": "Usar o pequeno emprega o modelo de embedding de rosto FaceNet, que roda de maneira eficiente na maioria das CPUs."
},
"large": {
"title": "grande",
- "desc": "Usando o grande emprega um modelo de embedding de rosto ArcFace e irá automáticamente roda pela GPU se aplicável."
+ "desc": "Usar o grande emprega um modelo de embedding de rosto ArcFace e irá automáticamente rodar pela GPU se aplicável."
}
}
},
"licensePlateRecognition": {
"title": "Reconhecimento de Placa de Identificação",
- "desc": "O Frigate pode reconhecer placas de identificação em veículos e automáticamente adicionar os caracteres detectados ao campo placas_de_identificação_reconhecidas ou um nome conhecido como uma sub-categoria a objetos que são do tipo carro. Um uso típico é ler a placa de carros entrando em uma garagem ou carros passando pela rua.",
+ "desc": "O Frigate pode reconhecer placas de identificação em veículos e automáticamente adicionar os caracteres detectados ao campo placas_de_identificação_reconhecidas ou um nome conhecido como um sub-rótulo a objetos que são do tipo carro. Um uso típico é ler a placa de carros entrando em uma garagem ou carros passando pela rua.",
"readTheDocumentation": "Leia a Documentação"
},
"restart_required": "Necessário reiniciar (configurações de enriquecimento foram alteradas)",
@@ -148,22 +154,22 @@
"title": "Configurações de Câmera",
"streams": {
"title": "Transmissões",
- "desc": "Temporáriamente desativar a câmera até o Frigate reiniciar. Desatiar a câmera completamente impede o processamento da transmissão dessa câmera pelo Frigate. Detecções, gravações e depuração estarão indisponíveis. Nota: Isso não desativa as retransmissões do go2rtc."
+ "desc": "Temporáriamente desativa a câmera até o Frigate reiniciar. Desativar a câmera completamente impede o processamento da transmissão dessa câmera pelo Frigate. Detecções, gravações e depuração estarão indisponíveis. Nota: Isso não desativa as retransmissões do go2rtc."
},
"review": {
"title": "Revisar",
- "desc": "Temporariamente habilitar/desabilitar alertas e detecções para essa câmera até o Frigate reiniciar. Quando desabilitado, nenhum novo item de revisão será gerado. ",
+ "desc": "Temporariamente habilita/desabilita alertas e detecções para essa câmera até o Frigate reiniciar. Quando desabilitado, nenhum novo item de revisão será gerado. ",
"alerts": "Alertas ",
"detections": "Detecções "
},
"reviewClassification": {
- "title": "Revisar Classificação",
- "desc": "O Frigate categoriza itens de revisão como Alertas e Detecções. Por padrão, todas as pessoa e carros são considerados alertas. Você pode refinar a categorização dos seus itens revisados configurando as zonas requeridas para eles.",
+ "title": "Classificação de Revisões",
+ "desc": "O Frigate categoriza itens de revisão como Alertas e Detecções. Por padrão, todas as pessoas e carros são considerados alertas. Você pode refinar a categorização dos seus itens revisados configurando as zonas requeridas para eles.",
"readTheDocumentation": "Leia a Documentação",
"noDefinedZones": "Nenhuma zona definida para essa câmera.",
"selectAlertsZones": "Selecionar as zonas para Alertas",
"selectDetectionsZones": "Selecionar as zonas para Detecções",
- "objectAlertsTips": "Todos os {{alertsLabels}} objetos em {{cameraName}} serão exibidos como Alertas.",
+ "objectAlertsTips": "Todos os objetos {{alertsLabels}} em {{cameraName}} serão exibidos como Alertas.",
"zoneObjectAlertsTips": "Todos os {{alertsLabels}} objetos detectados em {{zone}} em {{cameraName}} serão exibidos como Alertas.",
"objectDetectionsTips": "Todos os objetos {{detectionsLabels}} não categorizados em {{cameraName}} serão exibidos como Detecções independente de qual zona eles estiverem.",
"zoneObjectDetectionsTips": {
@@ -176,6 +182,44 @@
"toast": {
"success": "A configuração de Revisão de Classificação foi salva. Reinicie o Frigate para aplicar as mudanças."
}
+ },
+ "object_descriptions": {
+ "title": "Descrições de Objeto por IA Generativa",
+ "desc": "Habilitar descrições por IA Generativa temporariamente para essa câmera. Quando desativada, as descrições geradas por IA não serão requisitadas para objetos rastreados para essa câmera."
+ },
+ "review_descriptions": {
+ "title": "Revisar Descrições de IA Generativa",
+ "desc": "Habilitar/desabilitar temporariamente descrições de revisão de IA Generativa para essa câmera. Quando desativada, as descrições de IA Generativa não serão solicitadas para revisão para essa câmera."
+ },
+ "addCamera": "Adicionar Câmera Nova",
+ "editCamera": "Editar Câmera:",
+ "selectCamera": "Selecione uma Câmera",
+ "backToSettings": "Voltar para as Configurções de Câmera",
+ "cameraConfig": {
+ "add": "Adicionar Câmera",
+ "edit": "Editar Câmera",
+ "description": "Configure as opções da câmera incluindo as de transmissão e papéis.",
+ "name": "Nome da Câmera",
+ "nameRequired": "Nome para a câmera é requerido",
+ "nameInvalid": "O nome da câmera deve contar apenas letras, números, sublinhado ou hífens",
+ "namePlaceholder": "ex: porta_da_frente",
+ "enabled": "Habilitado",
+ "ffmpeg": {
+ "inputs": "Transmissões de Entrada",
+ "path": "Caminho da Transmissão",
+ "pathRequired": "Um caminho para a transmissão é requerido",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Regras",
+ "rolesRequired": "Ao menos um papel é requerido",
+ "rolesUnique": "Cada papel (áudio, detecção, gravação) pode ser atribuído a uma única transmissão",
+ "addInput": "Adicionar Transmissão de Entrada",
+ "removeInput": "Remover Transmissão de Entrada",
+ "inputsRequired": "Ao menos uma transmissão de entrada é requerida"
+ },
+ "toast": {
+ "success": "Câmera {{cameraName}} salva com sucesso"
+ },
+ "nameLength": "O nome da câmera deve ter ao menos 24 caracteres."
}
},
"masksAndZones": {
@@ -359,16 +403,16 @@
"documentation": "Leia o Guia de Ajuste de Movimento"
},
"Threshold": {
- "title": "Limite",
+ "title": "Limiar",
"desc": "O valor do limiar dita o quanto de mudança na luminância de um pixel é requerida para ser considerada movimento. Padrão: 30"
},
"contourArea": {
"title": "Área de contorno",
- "desc": "O valor do contorno da área é usado para decidir quais grupos de mudança de pixel se qualificam como movimento. Padrão: 10"
+ "desc": "O valor da área de contorno é usado para decidir quais grupos de mudança de pixel se qualificam como movimento. Padrão: 10"
},
"improveContrast": {
"title": "Melhorar o contraste",
- "desc": "Melhorar contraste para cenas escuras. Padrão: ON"
+ "desc": "Melhorar contraste para cenas escuras. Padrão: Ativado"
},
"toast": {
"success": "As configurações de movimento foram salvas."
@@ -420,14 +464,27 @@
"noObjects": "Nenhum Objeto",
"timestamp": {
"title": "Timestamp",
- "desc": "Sobreponha um timestamp na imagem"
- }
+ "desc": "Sobrepor um timestamp na imagem"
+ },
+ "paths": {
+ "title": "Caminho",
+ "desc": "Mostrar pontos significantes do caminho do objeto rastreado",
+ "tips": "
Caminhos
Linhas e círculos indicarão pontos significantes por onde o objeto rastreado se moveu durante o seu ciclo de vida.
"
+ },
+ "audio": {
+ "title": "Áudio",
+ "noAudioDetections": "Nenhuma detecção de áudio",
+ "score": "pontuanção",
+ "currentRMS": "RMS Atual",
+ "currentdbFS": "dbFS Atual"
+ },
+ "openCameraWebUI": "Abrir a Interface Web de {{camera}}"
},
"users": {
"title": "Usuários",
"management": {
"title": "Gerenciamento de Usuário",
- "desc": "Gerencias as contas de usuário dessa instância do Frigate."
+ "desc": "Gerenciar as contas de usuário dessa instância do Frigate."
},
"addUser": "Adicionar Usuário",
"updatePassword": "Atualizar Senha",
@@ -506,7 +563,8 @@
"admin": "Administrador",
"adminDesc": "Acesso total a todos os recursos.",
"viewer": "Espectador",
- "viewerDesc": "Limitado aos Painéis ao Vivo, Revisar, Explorar, e Exportar somente."
+ "viewerDesc": "Limitado aos Painéis ao Vivo, Revisar, Explorar, e Exportar somente.",
+ "customDesc": "Papel customizado com acesso a câmeras específicas."
}
}
},
@@ -580,7 +638,7 @@
"apiKey": {
"title": "Chave de API do Frigate+",
"validated": "A chave de API do Frigate+ detectada e validada",
- "notValidated": "A chave de API do Frigate+ não detectada ou não validada",
+ "notValidated": "Chave de API do Frigate+ não detectada ou não validada",
"desc": "A chave de API do Frigate+ habilita a integração com o serviço do Frigate+.",
"plusLink": "Leia mais sobre o Frigate+"
},
@@ -603,7 +661,7 @@
},
"snapshotConfig": {
"title": "Configuração de Captura de Imagem",
- "desc": "Enviar ao Frigate+ requer tanto a captura de imagem quanto a captura de imagem clean_copy estarem habilitadas na sua configuração.",
+ "desc": "Envios ao Frigate+ requerem tanto a captura de imagem normais quanto a captura de imagem clean_copy estarem habilitadas na sua configuração.",
"documentation": "Leia a documentação",
"cleanCopyWarning": "Algumas câmeras possuem captura de imagem habilitada porém têm a cópia limpa desabilitada. Você precisa habilitar a clean_copy nas suas configurações de captura de imagem para poder submeter imagems dessa câmera ao Frigate+.",
"table": {
@@ -618,5 +676,228 @@
"success": "As configurações do Frigate+ foram salvas. Reinicie o Frigate para aplicar as alterações.",
"error": "Falha ao salvar as alterações de configuração: {{errorMessage}}"
}
+ },
+ "triggers": {
+ "documentTitle": "Gatilhos",
+ "management": {
+ "title": "Gerenciamento de Gatilhos",
+ "desc": "Gerenciar gatilhos para {{camera}}. Use o tipo de miniatura para acionar miniaturas semelhantes para os seus objetos rastreados selecionados, e o tipo de descrição para acionar descrições semelhantes para textos que você especifica."
+ },
+ "addTrigger": "Adicionar Gatilho",
+ "table": {
+ "name": "Nome",
+ "type": "Tipo",
+ "content": "Conteúdo",
+ "threshold": "Limiar",
+ "actions": "Ações",
+ "noTriggers": "Nenhum gatilho configurado para essa câmera.",
+ "edit": "Editar",
+ "deleteTrigger": "Apagar Gatilho",
+ "lastTriggered": "Acionado pela última vez"
+ },
+ "type": {
+ "thumbnail": "Miniatura",
+ "description": "Descrição"
+ },
+ "actions": {
+ "alert": "Marcar como Alerta",
+ "notification": "Enviar Notificação"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Criar Gatilho",
+ "desc": "Criar gatilho para a câmera {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Editar Gatilho",
+ "desc": "Editar as configurações de gatilho na câmera {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Apagar Gatilho",
+ "desc": "Tem certeza que quer deletar o gatilho {{triggerName}}? Essa ação não pode ser desfeita."
+ },
+ "form": {
+ "name": {
+ "title": "Nome",
+ "placeholder": "Digite o nome do gatilho",
+ "error": {
+ "minLength": "O nome precisa ter no mínimo 2 caracteres.",
+ "invalidCharacters": "O nome pode contar apenas letras, números, sublinhados, e hífens.",
+ "alreadyExists": "Um gatilho com esse nome já existe para essa câmera."
+ }
+ },
+ "enabled": {
+ "description": "Habilitar ou desabilitar esse gatilho"
+ },
+ "type": {
+ "title": "Tipo",
+ "placeholder": "Selecionar o tipo de gatilho"
+ },
+ "content": {
+ "title": "Conteúdo",
+ "imagePlaceholder": "Selecionar uma imagem",
+ "textPlaceholder": "Digitar conteúdo do texto",
+ "imageDesc": "Selecionar uma imagem para acionar essa ação quando uma imagem semelhante for detectada.",
+ "textDesc": "Digite o texto para ativar essa ação quando uma descrição semelhante de objeto rastreado for detectada.",
+ "error": {
+ "required": "Um conteúdo é requerido."
+ }
+ },
+ "threshold": {
+ "title": "Limiar",
+ "error": {
+ "min": "O limitar deve ser no mínimo 0",
+ "max": "O limiar deve ser no mínimo 1"
+ }
+ },
+ "actions": {
+ "title": "Ações",
+ "desc": "Por padrão, o Frigate dispara uma mensagem MQTT para todos os gatilhos. Escolha uma ação adicional para realizar quando uma ação for disparada.",
+ "error": {
+ "min": "Ao menos uma ação deve ser selecionada."
+ }
+ },
+ "friendly_name": {
+ "title": "Nome Amigável",
+ "placeholder": "Nomeie ou descreva esse gatilho",
+ "description": "Um nome amigável ou descritivo opcional para esse gatilho."
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Gatilho {{name}} criado com sucesso.",
+ "updateTrigger": "Gatilho {{name}} atualizado com sucesso.",
+ "deleteTrigger": "Gatilho {{name}} apagado com sucesso."
+ },
+ "error": {
+ "createTriggerFailed": "Falha ao criar gatilho: {{errorMessage}}",
+ "updateTriggerFailed": "Falha ao atualizar gatilho: {{errorMessage}}",
+ "deleteTriggerFailed": "Falha ao apagar gatilho: {{errorMessage}}"
+ }
+ },
+ "semanticSearch": {
+ "title": "Busca Semântica desativada",
+ "desc": "Busca Semântica deve estar habilitada para usar os Gatilhos."
+ }
+ },
+ "roles": {
+ "management": {
+ "title": "Gerenciamento do Papel de Visualizador",
+ "desc": "Gerenciar papéis de visualizador customizados e suas permissões de acesso para essa instância do Frigate."
+ },
+ "addRole": "Adicionar Papel",
+ "table": {
+ "role": "Papel",
+ "cameras": "Câmeras",
+ "actions": "Ações",
+ "noRoles": "Nenhum papel customizado encontrado.",
+ "editCameras": "Editar Câmeras",
+ "deleteRole": "Apagar Papel"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Papel {{role}} criado com sucesso",
+ "updateCameras": "Câmeras atualizados para o papel {{role}}",
+ "deleteRole": "Papel {{role}} apagado com sucesso",
+ "userRolesUpdated_one": "{{count}} usuário(os) atribuídos a esse papel foram atualizados para 'visualizador', que possui acesso a todas as câmeras.",
+ "userRolesUpdated_many": "",
+ "userRolesUpdated_other": ""
+ },
+ "error": {
+ "createRoleFailed": "Falha ao criar papel: {{errorMessage}}",
+ "updateCamerasFailed": "Falha ao atualizar câmeras: {{errorMessage}}",
+ "deleteRoleFailed": "Falha ao apagar papel: {{errorMessage}}",
+ "userUpdateFailed": "Falha ao atualizar papel do usuário: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Criar Novo Papel",
+ "desc": "Adicionar um novo papel e especificar permissões de acesso."
+ },
+ "editCameras": {
+ "title": "Editar Câmeras de Papéis",
+ "desc": "Atualizar acesso da câmera para o papel {{role}}."
+ },
+ "deleteRole": {
+ "title": "Deletar Papel",
+ "desc": "Essa ação não pode ser desfeita. Isso irá apagar permanentemente o papel e atribuir a quaisquer usuários com esse papel como 'visualizador', o que dará acesso de visualização para todas as câmeras.",
+ "warn": "Tem certeza que quer apagar {{role}}?",
+ "deleting": "Apagando…"
+ },
+ "form": {
+ "role": {
+ "title": "Nome do Papel",
+ "placeholder": "Digitar nome do papel",
+ "desc": "Apenas letras, números, pontos e sublinhados são permitidos.",
+ "roleIsRequired": "Nome para o papel é requerido",
+ "roleOnlyInclude": "O nome do papel pode conter apenas letras, números, pontos ou sublinhados",
+ "roleExists": "Um papel com esse nome já existe."
+ },
+ "cameras": {
+ "title": "Câmeras",
+ "desc": "Selecione as câmeras que esse papel terá acesso. Ao menos uma câmera é requerida.",
+ "required": "Ao menos uma câmera deve ser selecionada."
+ }
+ }
+ }
+ },
+ "cameraWizard": {
+ "title": "Adicionar Câmera",
+ "description": "Siga os passos abaixo para adicionar uma câmera nova no seu Frigate.",
+ "steps": {
+ "nameAndConnection": "Nome e Conexão",
+ "streamConfiguration": "Configuração de Stream",
+ "validationAndTesting": "Validação e Teste"
+ },
+ "save": {
+ "success": "Nova câmera {{cameraName}} salva com sucesso.",
+ "failure": "Erro ao salvar {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Resolução",
+ "video": "Vídeo",
+ "audio": "Áudio",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Favor fornecer uma URL de stream válida",
+ "testFailed": "Teste de stream falhou: {{error}}"
+ },
+ "step1": {
+ "description": "Adicione os detalhes da sua câmera e teste a conexão.",
+ "cameraName": "Nome da Câmera",
+ "cameraNamePlaceholder": "ex., porta_entrada ou Visão Geral do Quintal",
+ "host": "Host/Endereço IP",
+ "port": "Porta",
+ "username": "Nome de Usuário",
+ "usernamePlaceholder": "Opcional",
+ "password": "Senha",
+ "passwordPlaceholder": "Opcional",
+ "selectTransport": "Selecionar protocolo de transporte",
+ "cameraBrand": "Marca da Câmera",
+ "selectBrand": "Selecione a marca da câmera para template de URL",
+ "customUrl": "URL Customizada de Stream",
+ "brandInformation": "Informação da marca",
+ "brandUrlFormat": "Para câmeras com o formato de URL RTSP como: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://nomedeusuario:senha@host:porta/caminho",
+ "testConnection": "Testar Conexão",
+ "testSuccess": "Teste de conexão bem sucedido!",
+ "testFailed": "Teste de conexão falhou. Favor verifique os dados e tente novamente.",
+ "streamDetails": "Detalhes do Stream",
+ "warnings": {
+ "noSnapshot": "Não foi possível adquirir uma captura de imagem do stream configurado."
+ },
+ "errors": {
+ "brandOrCustomUrlRequired": "Selecione a marca da câmera com o host/IP or selecione 'Outro' com uma URL customizada",
+ "nameRequired": "Nome para a câmera requerido",
+ "nameLength": "O nome da câmera deve ter 64 caracteres ou menos"
+ },
+ "testing": {
+ "probingMetadata": "Inferindo o metadata da câmera...",
+ "fetchingSnapshot": "Buscando a captura de imagem da câmera..."
+ }
+ }
}
}
diff --git a/web/public/locales/pt-BR/views/system.json b/web/public/locales/pt-BR/views/system.json
index 74a2c4564b..4875d80150 100644
--- a/web/public/locales/pt-BR/views/system.json
+++ b/web/public/locales/pt-BR/views/system.json
@@ -42,7 +42,8 @@
"inferenceSpeed": "Velocidade de Inferência do Detector",
"temperature": "Detector Temperatura",
"cpuUsage": "Utilização de CPU de Detecção",
- "memoryUsage": "Utilização de Memória do Detector"
+ "memoryUsage": "Utilização de Memória do Detector",
+ "cpuUsageInformation": "CPU utilizado para preparar os dados de entrada e saída de/para os modelos de detecção. Esse valor não mede a utilização da inferência, mesmo se estiver usando um GPU ou acelerador."
},
"hardwareInfo": {
"title": "Informações de Hardware",
@@ -102,6 +103,10 @@
"title": "Não Utilizado",
"tips": "Esse valor por não representar com precisão o espaço livre disponí®el para o Frigate se você possui outros arquivos armazenados no seu drive além das gravações do Frigate. O Frigate não rastreia a utilização do armazenamento além de suas próprias gravações."
}
+ },
+ "shm": {
+ "title": "Alocação de memória compartilhada (SHM)",
+ "warning": "O tamanho de {{total}}MB de memória compartilhada (SHM) é insuficiente. Aumente para ao menos {{min_shm}}MB."
}
},
"cameras": {
@@ -157,8 +162,9 @@
"detectHighCpuUsage": "{{camera}} possui alta utilização de CPU para detecção ({{detectAvg}}%)",
"healthy": "O sistema está saudável",
"cameraIsOffline": "{{camera}} está offline",
- "reindexingEmbeddings": "Reindexando os vetores de característica de imagens ({{processed}}% completado)",
- "detectIsSlow": "{{detect}} está lento ({{speed}} ms)"
+ "reindexingEmbeddings": "Reindexando os embeddings ({{processed}}% completado)",
+ "detectIsSlow": "{{detect}} está lento ({{speed}} ms)",
+ "shmTooLow": "A alocação ({{total}} MB) para a pasta /dev/shm deve ser aumentada para ao menos {{min}} MB."
},
"enrichments": {
"title": "Enriquecimentos",
@@ -167,13 +173,13 @@
"face_recognition": "Reconhecimento Facial",
"plate_recognition": "Reconhecimento de Placa",
"plate_recognition_speed": "Velocidade de Reconhecimento de Placas",
- "text_embedding_speed": "Velocidade de Geração de Vetores de Texto",
+ "text_embedding_speed": "Velocidade de Embeddings de Texto",
"yolov9_plate_detection_speed": "Velocidade de Reconhecimento de Placas do YOLOv9",
"yolov9_plate_detection": "Detecção de Placas do YOLOv9",
- "image_embedding": "Vetores de Características de Imagens",
- "text_embedding": "Vetor de Característica de Texto",
- "image_embedding_speed": "Velocidade de Geração de Vetores de Imagem",
- "face_embedding_speed": "Velocidade de Geração de Vetores de Rostos",
+ "image_embedding": "Embeddings de Imagens",
+ "text_embedding": "Embeddings de Texto",
+ "image_embedding_speed": "Velocidade de Embeddings de Imagens",
+ "face_embedding_speed": "Velocidade de Embedding de Rostos",
"face_recognition_speed": "Velocidade de Reconhecimento de Rostos"
}
}
diff --git a/web/public/locales/pt/audio.json b/web/public/locales/pt/audio.json
index 36b4147160..3bf1ba60b4 100644
--- a/web/public/locales/pt/audio.json
+++ b/web/public/locales/pt/audio.json
@@ -1,8 +1,8 @@
{
- "babbling": "Balbuciar",
+ "babbling": "Falador",
"speech": "Discurso",
"whoop": "Grito de Alegria",
- "bellow": "Abaixo",
+ "bellow": "Debaixo",
"yell": "Gritar",
"whispering": "Sussurrar",
"child_singing": "Criança a Cantar",
@@ -14,7 +14,7 @@
"meow": "Miau",
"run": "Correr",
"sheep": "Ovelha",
- "motorcycle": "Motociclo",
+ "motorcycle": "Mota",
"car": "Carro",
"cat": "Gato",
"horse": "Cavalo",
@@ -33,15 +33,15 @@
"whistling": "Assobiar",
"wheeze": "Chiadeira",
"gasp": "Ofegar",
- "cough": "Tosse",
- "sneeze": "Espirro",
+ "cough": "Tossir",
+ "sneeze": "Espirrar",
"footsteps": "Passos",
"chewing": "Mastigar",
"biting": "Morder",
"gargling": "Gargarejar",
"stomach_rumble": "Ronco de Estômago",
"burping": "Arroto",
- "hiccup": "Solavanco",
+ "hiccup": "Soluço",
"fart": "Pum",
"hands": "Mãos",
"finger_snapping": "Estalar os Dedos",
@@ -109,7 +109,7 @@
"helicopter": "Helicóptero",
"engine": "Motor",
"coin": "Moeda",
- "scissors": "Tesoura",
+ "scissors": "Tesouras",
"electric_shaver": "Barbeador Elétrico",
"computer_keyboard": "Teclado de Computador",
"alarm": "Alarme",
@@ -145,12 +145,12 @@
"owl": "Coruja",
"mouse": "Rato",
"vehicle": "Veículo",
- "hair_dryer": "Secador de cabelo",
- "toothbrush": "Escova de dentes",
- "sink": "Pia",
+ "hair_dryer": "Secador de Cabelo",
+ "toothbrush": "Escova de Dentes",
+ "sink": "Banca",
"blender": "Liquidificador",
"pant": "Ofegar",
- "snort": "Espirrar pelo Nariz",
+ "snort": "Resfolegar",
"throat_clearing": "Limpar a Garganta",
"sniff": "Cheirar",
"shuffle": "Embaralhar",
diff --git a/web/public/locales/pt/common.json b/web/public/locales/pt/common.json
index ad63195c1f..97d543802f 100644
--- a/web/public/locales/pt/common.json
+++ b/web/public/locales/pt/common.json
@@ -2,13 +2,13 @@
"time": {
"last30": "Últimos 30 dias",
"12hours": "12 horas",
- "justNow": "Agora",
+ "justNow": "Agora mesmo",
"yesterday": "Ontem",
"today": "Hoje",
"last7": "Últimos 7 dias",
"last14": "Últimos 14 dias",
- "thisWeek": "Essa semana",
- "lastWeek": "Semana passada",
+ "thisWeek": "Esta Semana",
+ "lastWeek": "Semana Passada",
"5minutes": "5 minutos",
"10minutes": "10 minutos",
"30minutes": "30 minutos",
@@ -24,8 +24,8 @@
"day_one": "{{time}} dia",
"day_many": "{{time}} dias",
"day_other": "{{time}} dias",
- "thisMonth": "Esse mês",
- "lastMonth": "Mês passado",
+ "thisMonth": "Este Mês",
+ "lastMonth": "Mês Passado",
"1hour": "1 hora",
"hour_one": "{{time}} hora",
"hour_many": "{{time}} horas",
@@ -39,7 +39,7 @@
"untilForTime": "Até {{time}}",
"untilForRestart": "Até que o Frigate reinicie.",
"untilRestart": "Até reiniciar",
- "ago": "{{timeAgo}} atrás",
+ "ago": "há {{timeAgo}}",
"d": "{{time}}d",
"h": "{{time}}h",
"m": "{{time}}m",
@@ -91,64 +91,64 @@
},
"unit": {
"speed": {
- "kph": "kph",
+ "kph": "km/h",
"mph": "mph"
},
"length": {
- "feet": "pé",
+ "feet": "pés",
"meters": "metros"
}
},
"button": {
- "enabled": "Habilitado",
- "enable": "Habilitar",
+ "enabled": "Ativado",
+ "enable": "Ativar",
"done": "Feito",
"reset": "Reiniciar",
- "disabled": "Desabilitado",
- "saving": "Salvando…",
+ "disabled": "Desativado",
+ "saving": "A guardar…",
"apply": "Aplicar",
- "disable": "Desabilitar",
- "save": "Salvar",
- "copy": "Cópia",
+ "disable": "Desativar",
+ "save": "Guardar",
+ "copy": "Copiar",
"cancel": "Cancelar",
"close": "Fechar",
"history": "Histórico",
"back": "Voltar",
"fullscreen": "Ecrã Completo",
"exitFullscreen": "Sair do Ecrã Completo",
- "twoWayTalk": "Conversa bidirecional",
- "cameraAudio": "Áudio da câmera",
+ "twoWayTalk": "Conversa Bidirecional",
+ "cameraAudio": "Áudio da Câmera",
"edit": "Editar",
"off": "DESLIGADO",
"copyCoordinates": "Copiar coordenadas",
"on": "LIGADO",
- "delete": "Excluir",
- "download": "Download",
- "info": "Informações",
+ "delete": "Eliminar",
+ "download": "Transferir",
+ "info": "Informação",
"no": "Não",
"suspended": "Suspenso",
"yes": "Sim",
- "unselect": "Desmarcar",
+ "unselect": "Desselecionar",
"unsuspended": "Dessuspender",
- "deleteNow": "Excluir agora",
+ "deleteNow": "Eliminar Agora",
"export": "Exportar",
- "next": "Próximo",
+ "next": "Seguinte",
"play": "Tocar",
- "pictureInPicture": "Sobrepor Imagem"
+ "pictureInPicture": "Imagem sobre Imagem"
},
"label": {
"back": "Voltar"
},
"menu": {
"user": {
- "logout": "Sair",
+ "logout": "Terminar sessão",
"account": "Conta",
"current": "Utilizador atual: {{user}}",
- "setPassword": "Definir senha",
+ "setPassword": "Definir Palavra-passe",
"title": "Utilizador",
- "anonymous": "anônimo"
+ "anonymous": "anónimo"
},
- "faceLibrary": "Biblioteca de rostos",
+ "faceLibrary": "Biblioteca de Rostos",
"withSystem": "Sistema",
"theme": {
"label": "Tema",
@@ -156,58 +156,66 @@
"green": "Verde",
"red": "Vermelho",
"contrast": "Alto contraste",
- "default": "Padrão",
+ "default": "Predefinição",
"highcontrast": "Alto Contraste",
"nord": "Nord"
},
"system": "Sistema",
"systemMetrics": "Métricas do sistema",
"configuration": "Configuração",
- "systemLogs": "Logs do sistema",
- "settings": "Configurações",
- "configurationEditor": "Editor de configuração",
+ "systemLogs": "Registos do sistema",
+ "settings": "Definições",
+ "configurationEditor": "Editor de Configuração",
"languages": "Idiomas",
"language": {
- "en": "Inglês (English)",
- "zhCN": "Chinês simplificado",
+ "en": "Inglês (EUA)",
+ "zhCN": "Chinês (Chinês Simplificado)",
"withSystem": {
- "label": "Use as configurações do sistema para idioma"
+ "label": "Utilizar as definições do sistema para o idioma"
},
- "fr": "Français (Francês)",
- "es": "Español (Espanhol)",
- "ru": "Русский (Russo)",
- "de": "Deutsch (Alemão)",
- "ja": "日本語 (Japonês)",
- "yue": "Cantonês (粵語)",
- "ar": "العربية (Arabic)",
- "uk": "Ucraniano (Українська)",
- "el": "Grego (Ελληνικά)",
- "hi": "हिन्दी (Hindi)",
- "pt": "Português (Portuguese)",
- "tr": "Türkçe (Turkish)",
- "it": "Italiano (Italian)",
- "nb": "Norueguês Bokmål (Norsk Bokmål)",
- "ko": "Coreano (한국어)",
- "vi": "Vietnamita (Tiếng Việt)",
- "nl": "Nederlands (Dutch)",
- "sv": "Svenska (Swedish)",
- "cs": "Tcheco (Čeština)",
- "fa": "Persa (فارسی)",
- "pl": "Polonês (Polski)",
- "he": "Hebraico (עברית)",
- "fi": "Finlandês (Suomi)",
- "da": "Dinamarquês (Dansk)",
- "ro": "Romeno (Română)",
- "hu": "Húngaro (Magyar)",
- "sk": "Eslovaco (Slovenčina)",
+ "fr": "Francês (França)",
+ "es": "Espanhol (Espanha)",
+ "ru": "Russo",
+ "de": "Alemão (Alemanha)",
+ "ja": "Japonês",
+ "yue": "Cantonês",
+ "ar": "Árabe",
+ "uk": "Ucraniano",
+ "el": "Grego",
+ "hi": "Híndi (Índia)",
+ "pt": "Português (Portugal)",
+ "tr": "Turco (Turquia)",
+ "it": "Italiano (Itália)",
+ "nb": "Norueguês Bokmål",
+ "ko": "Coreano",
+ "vi": "Vietnamita",
+ "nl": "Holandês (Holanda)",
+ "sv": "Sueco",
+ "cs": "Checo",
+ "fa": "Persa",
+ "pl": "Polaco",
+ "he": "Hebraico",
+ "fi": "Finlandês",
+ "da": "Dinamarquês",
+ "ro": "Romeno",
+ "hu": "Húngaro",
+ "sk": "Eslovaco",
"th": "Tailandês",
- "ca": "Català (Catalão)"
+ "ca": "Catalão",
+ "ptBR": "Português (Brazil)",
+ "sr": "Sérvio",
+ "sl": "Esloveno",
+ "lt": "Lituano",
+ "bg": "Búlgaro",
+ "gl": "Galego",
+ "id": "Indonésio Bahasa",
+ "ur": "Urdu"
},
"appearance": "Aparência",
"darkMode": {
- "label": "Modo escuro",
+ "label": "Modo Escuro",
"withSystem": {
- "label": "Use as configurações do sistema para o modo claro ou escuro"
+ "label": "Utilizar as definições do sistema para o modo claro ou escuro"
},
"light": "Claro",
"dark": "Escuro"
@@ -220,7 +228,7 @@
"restart": "Reiniciar Frigate",
"live": {
"title": "Ao vivo",
- "allCameras": "Todas as câmaras",
+ "allCameras": "Todas as Câmaras",
"cameras": {
"title": "Câmaras",
"count_one": "{{count}} Câmera",
@@ -230,8 +238,8 @@
},
"export": "Exportar",
"explore": "Explorar",
- "review": "Análise",
- "uiPlayground": "Área de Testes da Interface"
+ "review": "Rever",
+ "uiPlayground": "Área de Testes da IU"
},
"pagination": {
"previous": {
@@ -240,36 +248,37 @@
},
"label": "paginação",
"next": {
- "title": "Próximo",
- "label": "Ir para a próxima página"
+ "title": "Seguinte",
+ "label": "Ir para a página seguinte"
},
"more": "Mais páginas"
},
"role": {
"admin": "Administrador",
"viewer": "Visualizador",
- "title": "Regra",
- "desc": "Administradores têm acesso total a todos os recursos da interface do Frigate. Visualizadores estão limitados a visualizar câmeras, revisar itens e assistir o histórico de gravaçoes na interface."
+ "title": "Função",
+ "desc": "Os administradores têm acesso completo a todas as funcionalidades da IU do Frigate. Os visualizadores estão limitados a visualizar as câmeras, rever itens, e o histórico de gravaçoes na IU."
},
"toast": {
- "copyUrlToClipboard": "URL copiada para a área de transferência.",
+ "copyUrlToClipboard": "URL copiado para a área de transferência.",
"save": {
- "title": "Salvar",
+ "title": "Guardar",
"error": {
- "noMessage": "Falha ao salvar as alterações de configuração",
- "title": "Falha ao salvar as alterações de configuração: {{errorMessage}}"
+ "noMessage": "Não foi possível guardar as alterações da configuração",
+ "title": "Não foi possível guardar as alterações da configuração: {{errorMessage}}"
}
}
},
"accessDenied": {
- "documentTitle": "Acesso negado - Frigate",
- "title": "Acesso negado",
- "desc": "Você não tem permissão para visualizar esta página."
+ "documentTitle": "Frigate - Acesso Negado",
+ "title": "Acesso Negado",
+ "desc": "Não tem permissão para ver esta página."
},
"notFound": {
- "documentTitle": "Não encontrado - Frigate",
+ "documentTitle": "Frigate - Não Encontrado",
"desc": "Página não encontrada",
"title": "404"
},
- "selectItem": "Selecionar {{item}}"
+ "selectItem": "Selecionar {{item}}",
+ "readTheDocumentation": "Leia a documentação"
}
diff --git a/web/public/locales/pt/components/auth.json b/web/public/locales/pt/components/auth.json
index 5dcccd7d67..fc00399b14 100644
--- a/web/public/locales/pt/components/auth.json
+++ b/web/public/locales/pt/components/auth.json
@@ -1,15 +1,15 @@
{
"form": {
"user": "Nome do utilizador",
- "login": "Login",
+ "login": "Iniciar sessão",
"errors": {
"usernameRequired": "O nome do utilizador é obrigatório",
- "passwordRequired": "Senha é necessária",
+ "passwordRequired": "A palavra-passe é obrigatória",
"rateLimit": "Limite de taxa excedido. Tente novamente mais tarde.",
- "loginFailed": "Falha no login",
- "unknownError": "Erro desconhecido. Verifique os logs.",
- "webUnknownError": "Erro desconhecido. Verifique os logs da consola."
+ "loginFailed": "Autenticação falhou",
+ "unknownError": "Erro desconhecido. Verifique os registos.",
+ "webUnknownError": "Erro desconhecido. Verifique os registos da consola."
},
- "password": "Senha"
+ "password": "Palavra-passe"
}
}
diff --git a/web/public/locales/pt/components/camera.json b/web/public/locales/pt/components/camera.json
index fa4a5fdc15..3f7052c817 100644
--- a/web/public/locales/pt/components/camera.json
+++ b/web/public/locales/pt/components/camera.json
@@ -1,27 +1,27 @@
{
"group": {
- "label": "Grupos de câmaras",
- "add": "Adicionar grupo de câmaras",
- "edit": "Editar grupo de câmaras",
+ "label": "Grupos de Câmaras",
+ "add": "Adicionar Gupo de Câmaras",
+ "edit": "Editar Grupo de Câmaras",
"delete": {
- "label": "Excluir grupo de câmaras",
+ "label": "Eliminar Grupo de Câmaras",
"confirm": {
- "title": "Confirmar exclusão",
- "desc": "Tem certeza de que deseja excluir o grupo de câmaras {{name}}?"
+ "title": "Confirmar Eliminar",
+ "desc": "Tem a certeza que deseja eliminar o grupo de câmaras {{name}}?"
}
},
"name": {
"label": "Nome",
- "placeholder": "Digita um nome…",
+ "placeholder": "Inserir um nome…",
"errorMessage": {
"exists": "O nome do grupo de câmaras já existe.",
"nameMustNotPeriod": "O nome do grupo de câmaras não deve conter pontos.",
- "mustLeastCharacters": "O nome do grupo de câmaras deve ter pelo menos 2 caracteres.",
- "invalid": "Nome de grupo de câmaras inválido."
+ "mustLeastCharacters": "O nome do grupo de câmaras deve ter pelo menos 2 carateres.",
+ "invalid": "Nome do grupo de câmaras inválido."
}
},
"cameras": {
- "desc": "Selecione câmaras para este grupo.",
+ "desc": "Selecione as câmaras para este grupo.",
"label": "Câmaras"
},
"icon": "Ícone",
@@ -37,17 +37,17 @@
}
},
"streamMethod": {
- "label": "Método de transmissão",
+ "label": "Método de Transmissão",
"method": {
"smartStreaming": {
- "label": "Transmissão inteligente (recomendado)",
- "desc": "A transmissão inteligente atualizará a imagem da sua câmara uma vez por minuto quando nenhuma atividade detectável estiver ocorrendo para conservar largura de banda e recursos. Quando a atividade é detectada, a imagem muda perfeitamente para uma transmissão ao vivo."
+ "label": "Transmissão Inteligente (recomendado)",
+ "desc": "A transmissão inteligente atualizará a imagem da sua câmara uma vez por minuto quando não ocorrer nenhuma atividade detetável para conservar largura de banda e recursos. Quando a atividade é detetada, a imagem muda perfeitamente para uma transmissão ao vivo."
},
"continuousStreaming": {
- "label": "Transmissão contínua",
+ "label": "Transmissão Contínua",
"desc": {
- "warning": "A transmissão contínua pode causar alto uso de largura de banda e problemas de desempenho. Use com precaução.",
- "title": "A imagem da câmara sempre será uma transmissão ao vivo quando visível no painel, mesmo que nenhuma atividade esteja sendo detectada."
+ "warning": "A transmissão contínua pode causar a utilização alta da largura de banda e problemas de desempenho. Utilize com precaução.",
+ "title": "A imagem da câmara será sempre uma transmissão ao vivo quando visível no painel, mesmo que não esteja a ser detetada nenhuma atividade."
}
},
"noStreaming": {
@@ -59,24 +59,25 @@
},
"compatibilityMode": {
"label": "Modo de compatibilidade",
- "desc": "Habilite esta opção somente se a transmissão ao vivo da sua câmara estiver exibindo artefatos de cor e tiver uma linha diagonal no lado direito da imagem."
+ "desc": "Ative esta opção apenas se a transmissão ao vivo da sua câmara estiver a exibir artefatos de cor e tiver uma linha diagonal no lado direito da imagem."
},
- "label": "Configurações de transmissão da câmara",
- "desc": "Altere as opções de transmissão ao vivo para o painel deste grupo de câmaras. Essas configurações são específicas do dispositivo/navegador.",
- "title": "{{cameraName}} configurações de transmissão",
+ "label": "Definições de Transmissão da Câmara",
+ "desc": "Altere as opções de transmissão ao vivo para o painel deste grupo de câmaras. Estas definições são específicas do dispositivo/navegador.",
+ "title": "{{cameraName}} Definições de Transmissão",
"placeholder": "Escolha uma transmissão",
"stream": "Transmissão"
- }
+ },
+ "birdseye": "Vista Aérea"
}
},
"debug": {
"options": {
- "label": "Configurações",
+ "label": "Definições",
"title": "Opções",
- "hideOptions": "Ocultar opções",
- "showOptions": "Mostrar opções"
+ "hideOptions": "Ocultar Opções",
+ "showOptions": "Mostrar Opções"
},
- "boundingBox": "Caixa delimitadora",
+ "boundingBox": "Caixa Delimitadora",
"timestamp": "Carimbo de hora",
"zones": "Zonas",
"mask": "Máscara",
diff --git a/web/public/locales/pt/components/dialog.json b/web/public/locales/pt/components/dialog.json
index 766711539f..b1aeb06c16 100644
--- a/web/public/locales/pt/components/dialog.json
+++ b/web/public/locales/pt/components/dialog.json
@@ -2,17 +2,17 @@
"restart": {
"button": "Reiniciar",
"restarting": {
- "title": "Frigate está reiniciando",
+ "title": "Frigate está a reiniciar",
"content": "Esta página será recarregada em {{countdown}} segundos.",
- "button": "Forçar atualização agora"
+ "button": "Forçar Recarregar Agora"
},
- "title": "Tem certeza de que deseja reiniciar o Frigate?"
+ "title": "Tem a certeza que deseja reiniciar o Frigate?"
},
"explore": {
"plus": {
"submitToPlus": {
- "label": "Enviar para Frigate+",
- "desc": "Objetos em locais que você quer evitar não são falsos positivos. Enviá-los como falsos positivos confundirá o modelo."
+ "label": "Submeter para Frigate+",
+ "desc": "Os objetos nas localizações que quer evitar não são falsos positivos. Submete-los como falsos positivos confundirá o modelo."
},
"review": {
"true": {
@@ -22,7 +22,7 @@
"true_other": "Estão são {{label}}"
},
"state": {
- "submitted": "Enviado"
+ "submitted": "Submetido"
},
"false": {
"label": "Não confirmar esta etiqueta para Frigate Plus",
@@ -31,15 +31,15 @@
"false_other": "Estes não são {{label}}"
},
"question": {
- "label": "Confirme este rótulo para Frigate Plus",
+ "label": "Confirme esta etiqueta para Frigate Plus",
"ask_a": "Este objeto é um {{label}}?",
"ask_an": "Este objeto é um {{label}}?",
- "ask_full": "Este objeto é um(a) {{untranslatedLabel}} ({{translatedLabel}})?"
+ "ask_full": "Este objeto é um {{untranslatedLabel}} ({{translatedLabel}})?"
}
}
},
"video": {
- "viewInHistory": "Ver no histórico"
+ "viewInHistory": "Ver no Histórico"
}
},
"export": {
@@ -60,67 +60,74 @@
},
"export": "Exportar",
"toast": {
- "success": "Exportação iniciada com sucesso. Veja o arquivo na pasta /exports.",
+ "success": "Exportação iniciada com sucesso. Veja o ficheiro na pasta de exportações.",
"error": {
- "failed": "Falha ao iniciar a exportação: {{error}}",
+ "failed": "Não foi possível iniciar a exportação: {{error}}",
"endTimeMustAfterStartTime": "O horário de término deve ser posterior ao horário de início",
"noVaildTimeSelected": "Nenhum intervalo de tempo válido selecionado"
}
},
"selectOrExport": "Selecionar ou Exportar",
"fromTimeline": {
- "saveExport": "Salvar exportação",
- "previewExport": "Visualizar exportação"
+ "saveExport": "Guardar Exportação",
+ "previewExport": "Pré-visualizar Exportação"
},
- "select": "Selecione",
+ "select": "Selecionar",
"name": {
- "placeholder": "Nome da exportação"
+ "placeholder": "Nome da Exportação"
}
},
"streaming": {
"showStats": {
"label": "Mostrar estatísticas de transmissão",
- "desc": "Habilite esta opção para mostrar estatísticas de transmissão como uma sobreposição no feed da câmara."
+ "desc": "Ative esta opção para mostrar as estatísticas de transmissão como uma sobreposição na feed da câmara."
},
"restreaming": {
"desc": {
- "title": "Configure o go2rtc para obter opções adicionais de visualização ao vivo e áudio para esta câmara.",
+ "title": "Configure go2rtc para obter opções adicionais da visualização ao vivo e o áudio para esta câmara.",
"readTheDocumentation": "Leia a documentação"
},
- "disabled": "A retransmissão não está habilitada para esta câmara."
+ "disabled": "A retransmissão não está ativada para esta câmara."
},
"label": "Transmissão",
- "debugView": "Exibição de depuração"
+ "debugView": "Ver Depuração"
},
"search": {
"saveSearch": {
- "label": "Salvar pesquisa",
- "overwrite": "{{searchName}} já existe. Salvar substituirá o valor existente.",
- "success": "A pesquisa ({{searchName}}) foi salva.",
+ "label": "Guardar Procura",
+ "overwrite": "{{searchName}} já existe. Ao guardar irá substituir o valor existente.",
+ "success": "A procura ({{searchName}}) foi guardada.",
"button": {
"save": {
- "label": "Salvar esta pesquisa"
+ "label": "Guardar esta procura"
}
},
- "placeholder": "Digite um nome para sua pesquisa",
- "desc": "Forneça um nome para esta pesquisa salva."
+ "placeholder": "Insira um nome para a sua procura",
+ "desc": "Forneça um nome para esta procura guardada."
}
},
"recording": {
"confirmDelete": {
- "title": "Confirmar exclusão",
+ "title": "Confirmar Eliminar",
"desc": {
- "selected": "Tem certeza de que deseja excluir todos os vídeos gravados associados a este item de analise?
Segure a tecla Shift para ignorar esta caixa de diálogo no futuro."
+ "selected": "Tem a certeza que deseja eliminar todos os vídeos guardados associados com este item de análise?
Pressione a tecla Shift para ignorar esta janela no futuro."
},
"toast": {
- "success": "As imagens de vídeo associadas aos itens de analise selecionados foram excluídas com êxito.",
- "error": "Falhou a apagar: {{error}}"
+ "success": "As imagens de vídeo associadas com os itens de análise selecionados foram elimiandos com sucesso.",
+ "error": "Não foi possível eliminar: {{error}}"
}
},
"button": {
"export": "Exportar",
"markAsReviewed": "Marcar como analisado",
- "deleteNow": "Excluir agora"
+ "deleteNow": "Eliminar Agora"
}
+ },
+ "imagePicker": {
+ "selectImage": "Selecione a miniatura de um objeto rastreado",
+ "search": {
+ "placeholder": "Pesquisar por etiqueta ou sub-etiqueta..."
+ },
+ "noImages": "Nenhuma miniatura encontrada para esta câmera"
}
}
diff --git a/web/public/locales/pt/components/filter.json b/web/public/locales/pt/components/filter.json
index 53f56241f6..3f7fce7b8a 100644
--- a/web/public/locales/pt/components/filter.json
+++ b/web/public/locales/pt/components/filter.json
@@ -13,18 +13,18 @@
"zones": {
"label": "Zonas",
"all": {
- "title": "Todas as zonas",
+ "title": "Todas as Zonas",
"short": "Zonas"
}
},
"dates": {
"all": {
- "title": "Todas as datas",
+ "title": "Todas as Datas",
"short": "Datas"
},
- "selectPreset": "Escolhe uma predefinição…"
+ "selectPreset": "Selecionar um Pré-ajuste…"
},
- "more": "Mais filtros",
+ "more": "Mais Filtros",
"reset": {
"label": "Redefinir filtros para valores padrão"
},
@@ -35,28 +35,28 @@
"score": "Pontuação",
"features": {
"label": "Funcionalidades",
- "hasSnapshot": "Tem um snapshot",
+ "hasSnapshot": "Tem uma captura",
"hasVideoClip": "Tem um videoclipe",
"submittedToFrigatePlus": {
- "label": "Enviado para Frigate+",
- "tips": "Primeiro, você deve filtrar os objetos rastreados que têm um snapshot.
Objetos rastreados sem um snapshot não podem ser enviados ao Frigate+."
+ "label": "Submetido para Frigate+",
+ "tips": "Primeiro, deve filtrar os objetos rastreados que têm uma captura.
Os objetos rastreados sem uma captura não podem ser submetidos para Frigate+."
}
},
"sort": {
- "label": "Organizar",
+ "label": "Ordenar",
"dateAsc": "Data (Ascendente)",
- "scoreAsc": "Pontuação do objeto (Crescente)",
- "scoreDesc": "Pontuação do objeto (Decrescente)",
- "speedDesc": "Velocidade estimada (Decrescente)",
- "speedAsc": "Velocidade estimada (Crescente)",
+ "scoreAsc": "Pontuação do Objeto (Ascendente)",
+ "scoreDesc": "Pontuação do Objeto (Descendente)",
+ "speedDesc": "Velocidade Estimada (Descendente)",
+ "speedAsc": "Velocidade Estimada (Ascendente)",
"dateDesc": "Data (Decrescente)",
"relevance": "Relevância"
},
"cameras": {
- "label": "Filtro de câmaras",
+ "label": "Filtro de Câmaras",
"all": {
"short": "Câmaras",
- "title": "Todas as câmaras"
+ "title": "Todas as Câmaras"
}
},
"review": {
@@ -67,22 +67,22 @@
},
"explore": {
"settings": {
- "title": "Configurações",
+ "title": "Definições",
"defaultView": {
- "title": "Exibição padrão",
- "summary": "Sumário",
- "unfilteredGrid": "Grade não filtrada",
- "desc": "Quando nenhum filtro for selecionado, exiba um resumo dos objetos rastreados mais recentemente por etiqueta ou exiba uma grade não filtrada."
+ "title": "Visualização Predefinida",
+ "summary": "Resumo",
+ "unfilteredGrid": "Grelha não Filtrada",
+ "desc": "Quando não for selecionado nenhum filtro, exiba um resumo dos objetos rastreados mais recentes por etiqueta, ou exiba uma grelha não filtrada."
},
"gridColumns": {
- "title": "Colunas da grade",
- "desc": "Selecione o número de colunas na visualização em grade."
+ "title": "Colunas da Grelha",
+ "desc": "Selecione o número de colunas na visualização em grelha."
},
"searchSource": {
- "label": "Pesquisar fonte",
- "desc": "Escolha se deseja pesquisar nas miniaturas ou descrições dos seus objetos rastreados.",
+ "label": "Procurar Fonte",
+ "desc": "Escolha se deseja procurar nas miniaturas ou descrições dos seus objetos rastreados.",
"options": {
- "thumbnailImage": "Imagem em miniatura",
+ "thumbnailImage": "Imagem em Miniatura",
"description": "Descrição"
}
}
@@ -94,14 +94,14 @@
}
},
"logSettings": {
- "label": "Nível de log do filtro",
+ "label": "Nível de registo do filtro",
"loading": {
- "title": "Carregando",
- "desc": "Ao fazer scroll até ao fundo no painel de logs, novos registos são automaticamente apresentados à medida que são adicionados."
+ "title": "A carregar",
+ "desc": "Quando desliza até ao fundo no painel de registos, os novos registos são apresentados automaticamente à medida que são adicionados."
},
- "filterBySeverity": "Filtrar logs por gravidade",
- "disableLogStreaming": "Desativar transmissão de logs",
- "allLogs": "Todos os logs"
+ "filterBySeverity": "Filtrar registos por gravidade",
+ "disableLogStreaming": "Desativar transmissão de registos",
+ "allLogs": "Todos os registos"
},
"estimatedSpeed": "Velocidade estimada ({{unit}})",
"timeRange": "Intervalo de tempo",
@@ -109,19 +109,29 @@
"filterBy": "Filtrar por máscara de zona"
},
"trackedObjectDelete": {
- "title": "Confirmar exclusão",
+ "title": "Confirmar Eliminar",
"toast": {
- "success": "Objetos rastreados excluídos com sucesso.",
- "error": "Falha ao excluir os objetos rastreados: {{errorMessage}}"
+ "success": "Objetos rastreados eliminados com sucesso.",
+ "error": "Não foi possível eliminar os objetos rastreados: {{errorMessage}}"
},
- "desc": "Excluir estes {{objectLength}} objetos rastreados remove a captura de imagem, quaisquer embeddings salvos e todas as entradas associadas ao ciclo de vida do objeto. As gravações desses objetos rastreados na visualização do Histórico NÃO serão excluídas.
Tem certeza de que deseja continuar?
Mantenha pressionada a tecla Shift para ignorar este diálogo no futuro."
+ "desc": "Ao eliminar estes {{objectLength}} objetos rastreados remove a captura de imagem, quaisquer integrações guardadas, e todas as entradas associadas ao ciclo de vida do objeto. As gravações desses objetos rastreados na visualização do Histórico NÃO serão eliminadas.
Tem a certeza que deseja continuar?
Mantenha pressionada a tecla Shift para ignorar esta janela no futuro."
},
"recognizedLicensePlates": {
- "title": "Placas Reconhecidas",
- "noLicensePlatesFound": "Nenhuma matrícula encontrada.",
- "selectPlatesFromList": "Selecione uma ou mais placas da lista.",
- "loadFailed": "Falha ao carregar as placas reconhecidas.",
- "loading": "Carregando placas reconhecidas…",
- "placeholder": "Digite para procurar placas…"
+ "title": "Matrículas Reconhecidas",
+ "noLicensePlatesFound": "Não foram encontradas matrículas.",
+ "selectPlatesFromList": "Selecione uma ou mais matrículas da lista.",
+ "loadFailed": "Não foi possível carregar as matrículas reconhecidas.",
+ "loading": "A carregar as matrículas reconhecidas…",
+ "placeholder": "Digite para procurar matrículas…",
+ "selectAll": "Selecionar tudo",
+ "clearAll": "Limpar tudo"
+ },
+ "classes": {
+ "label": "Classes",
+ "all": {
+ "title": "Todas as Classes"
+ },
+ "count_one": "{{count}} Classe",
+ "count_other": "{{count}} Classes"
}
}
diff --git a/web/public/locales/pt/components/icons.json b/web/public/locales/pt/components/icons.json
index ddd38e84c5..71b767a1df 100644
--- a/web/public/locales/pt/components/icons.json
+++ b/web/public/locales/pt/components/icons.json
@@ -2,7 +2,7 @@
"iconPicker": {
"selectIcon": "Selecione um ícone",
"search": {
- "placeholder": "Pesquisar por um ícone…"
+ "placeholder": "Procurar por um ícone…"
}
}
}
diff --git a/web/public/locales/pt/components/input.json b/web/public/locales/pt/components/input.json
index 3332f08202..1324ed188a 100644
--- a/web/public/locales/pt/components/input.json
+++ b/web/public/locales/pt/components/input.json
@@ -1,9 +1,9 @@
{
"button": {
"downloadVideo": {
- "label": "Descarregar vídeo",
+ "label": "Transferir Vídeo",
"toast": {
- "success": "O vídeo do seu item de análise começou a ser descarregado."
+ "success": "O vídeo do seu item de análise começou a ser transferido."
}
}
}
diff --git a/web/public/locales/pt/components/player.json b/web/public/locales/pt/components/player.json
index 301e3f60de..741d37ef01 100644
--- a/web/public/locales/pt/components/player.json
+++ b/web/public/locales/pt/components/player.json
@@ -1,12 +1,12 @@
{
- "noPreviewFound": "Nenhuma visualização encontrada",
- "noPreviewFoundFor": "Nenhuma visualização encontrada para {{cameraName}}",
+ "noPreviewFound": "Nenhuma pré-visualização encontrada",
+ "noPreviewFoundFor": "Nenhuma pré-visualização encontrada para {{cameraName}}",
"submitFrigatePlus": {
- "title": "Enviar este quadro para o Frigate+?",
- "submit": "Enviar"
+ "title": "Submeter esta imagem para Frigate+?",
+ "submit": "Submeter"
},
"streamOffline": {
- "title": "Transmissão offline",
+ "title": "Transmissão Off-line",
"desc": "Nenhum quadro foi recebido na transmissão de detecção {{cameraName}}, verifique os logs de erro"
},
"cameraDisabled": "A câmara está desativada",
@@ -29,23 +29,23 @@
},
"totalFrames": "Total de quadros:",
"droppedFrames": {
- "title": "Quadros perdidos:",
+ "title": "Imagens perdidas:",
"short": {
- "title": "Perdido",
- "value": "{{droppedFrames}} quadros"
+ "title": "Perdida",
+ "value": "{{droppedFrames}} imagens"
}
},
"decodedFrames": "Quadros decodificados:",
- "droppedFrameRate": "Taxa de Quadros Perdidos:"
+ "droppedFrameRate": "Taxa de imagem perdida:"
},
"noRecordingsFoundForThisTime": "Nenhuma gravação encontrada para este momento",
- "livePlayerRequiredIOSVersion": "iOS 17.1 ou superior é necessário para este tipo de transmissão ao vivo.",
+ "livePlayerRequiredIOSVersion": "É necessário o iOS 17.1 ou superior para este tipo de transmissão ao vivo.",
"toast": {
"success": {
- "submittedFrigatePlus": "Quadro enviado com sucesso para o Frigate+"
+ "submittedFrigatePlus": "Imagem submetida com sucesso para Frigate+"
},
"error": {
- "submitFrigatePlusFailed": "Falha ao enviar o quadro para o Frigate+"
+ "submitFrigatePlusFailed": "Não foi possível submeter a imagem para Frigate+"
}
}
}
diff --git a/web/public/locales/pt/objects.json b/web/public/locales/pt/objects.json
index ada61d1849..88762a7f31 100644
--- a/web/public/locales/pt/objects.json
+++ b/web/public/locales/pt/objects.json
@@ -2,16 +2,16 @@
"giraffe": "Girafa",
"cup": "Chávena",
"person": "Pessoa",
- "stop_sign": "Sinal de Stop",
+ "stop_sign": "Sinal de Parar",
"sheep": "Ovelha",
- "sandwich": "Sandes",
+ "sandwich": "Sande",
"carrot": "Cenoura",
- "dining_table": "Mesa de jantar",
- "motorcycle": "Motociclo",
+ "dining_table": "Mesa de Jantar",
+ "motorcycle": "Mota",
"bicycle": "Bicicleta",
- "street_sign": "Sinal de rua",
+ "street_sign": "Sinal de Rua",
"pizza": "Pizza",
- "parking_meter": "Parquímetro",
+ "parking_meter": "Parcómetro",
"skateboard": "Skate",
"bottle": "Garrafa",
"car": "Carro",
@@ -23,19 +23,19 @@
"fire_hydrant": "Boca de Incêndio",
"bird": "Pássaro",
"cat": "Gato",
- "bench": "Banco de jardim/rua",
+ "bench": "Banco de Jardim",
"elephant": "Elefante",
"hat": "Chapéu",
"backpack": "Mochila",
"shoe": "Sapato",
- "handbag": "Bolsa de mão",
+ "handbag": "Carteira",
"tie": "Gravata",
- "suitcase": "Mala de viagem",
+ "suitcase": "Mala de Viagem",
"frisbee": "Disco de Frisbee",
"skis": "Esquis",
- "kite": "Kite",
- "baseball_bat": "Taco basebol",
- "tennis_racket": "Raquete de Tenis",
+ "kite": "Papagaio de Papel",
+ "baseball_bat": "Taco de Basebol",
+ "tennis_racket": "Raquete de Ténis",
"plate": "Prato",
"wine_glass": "Copo de Vinho",
"fork": "Garfo",
@@ -43,17 +43,17 @@
"bowl": "Tijela",
"banana": "Banana",
"apple": "Maça",
- "hot_dog": "Cachorro quente",
+ "hot_dog": "Cachorro Quente",
"donut": "Donut",
"cake": "Bolo",
"chair": "Cadeira",
- "potted_plant": "Planta em vaso",
+ "potted_plant": "Planta em Vaso",
"mirror": "Espelho",
- "desk": "Mesa",
+ "desk": "Escrivaninha",
"toilet": "Casa de Banho",
"door": "Porta",
- "baseball_glove": "Luva de beisebol",
- "surfboard": "Prancha de surf",
+ "baseball_glove": "Luva de Basebol",
+ "surfboard": "Prancha de Surf",
"broccoli": "Brócolos",
"snowboard": "Snowboard",
"dog": "Cão",
@@ -74,22 +74,22 @@
"bark": "Latido",
"goat": "Cabra",
"vehicle": "Veículo",
- "scissors": "Tesoura",
+ "scissors": "Tesouras",
"mouse": "Rato",
- "teddy_bear": "Urso de peluche",
- "hair_dryer": "Secador de cabelo",
- "toothbrush": "Escova de dentes",
+ "teddy_bear": "Urso de Peluche",
+ "hair_dryer": "Secador de Cabelo",
+ "toothbrush": "Escova de Dentes",
"hair_brush": "Escova de Cabelo",
"squirrel": "Esquilo",
"couch": "Sofá",
"tv": "TV",
"laptop": "Portátil",
- "remote": "Controlo Remoto",
+ "remote": "Comando",
"cell_phone": "Telemóvel",
"microwave": "Microondas",
"oven": "Forno",
"toaster": "Torradeira",
- "sink": "Pia",
+ "sink": "Banca",
"refrigerator": "Frigorífico",
"blender": "Liquidificador",
"book": "Livro",
@@ -98,7 +98,7 @@
"fox": "Raposa",
"rabbit": "Coelho",
"raccoon": "Guaxinim",
- "robot_lawnmower": "Robô corta relva",
+ "robot_lawnmower": "Robô de Cortar Relva",
"waste_bin": "Contentor do Lixo",
"on_demand": "On Demand",
"face": "Rosto",
diff --git a/web/public/locales/pt/views/classificationModel.json b/web/public/locales/pt/views/classificationModel.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/pt/views/classificationModel.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/pt/views/configEditor.json b/web/public/locales/pt/views/configEditor.json
index 6d6c981664..fb1d3377af 100644
--- a/web/public/locales/pt/views/configEditor.json
+++ b/web/public/locales/pt/views/configEditor.json
@@ -1,16 +1,18 @@
{
- "configEditor": "Editor de configuração",
- "copyConfig": "Copiar configuração",
- "saveAndRestart": "Salvar e reiniciar",
- "saveOnly": "Salvar Apenas",
+ "configEditor": "Editor de Configuração",
+ "copyConfig": "Copiar Configuração",
+ "saveAndRestart": "Guardar e Reiniciar",
+ "saveOnly": "Guardar Apenas",
"toast": {
"success": {
"copyToClipboard": "Configuração copiada para a área de transferência."
},
"error": {
- "savingError": "Erro ao salvar configuração"
+ "savingError": "Erro ao guardar a configuração"
}
},
- "documentTitle": "Editor de configuração - Frigate",
- "confirm": "Sair sem salvar?"
+ "documentTitle": "Frigate - Editor de Configuração",
+ "confirm": "Sair sem guardar?",
+ "safeConfigEditor": "Editor de Configuração (Modo de Segurança)",
+ "safeModeDescription": "O Frigate está no modo de segurança devido a um erro de validação da configuração."
}
diff --git a/web/public/locales/pt/views/events.json b/web/public/locales/pt/views/events.json
index 6478001c60..bb9b2e0ff8 100644
--- a/web/public/locales/pt/views/events.json
+++ b/web/public/locales/pt/views/events.json
@@ -1,10 +1,10 @@
{
- "detections": "Detecções",
+ "detections": "Deteções",
"motion": {
"label": "Movimento",
- "only": "Somente movimento"
+ "only": "Apenas movimento"
},
- "allCameras": "Todas as câmaras",
+ "allCameras": "Todas as Câmaras",
"empty": {
"motion": "Nenhum dado de movimento encontrado",
"alert": "Não há alertas para análise",
@@ -20,7 +20,7 @@
"alerts": "Alertas",
"documentTitle": "Análise - Frigate",
"recordings": {
- "documentTitle": "Gravações - Frigate"
+ "documentTitle": "Frigate - Gravações"
},
"calendarFilter": {
"last24Hours": "Últimas 24 horas"
@@ -32,7 +32,9 @@
"button": "Novos itens para analisar"
},
"camera": "Câmara",
- "detected": "detectado",
+ "detected": "detetado",
"selected_one": "{{count}} selecionado",
- "selected_other": "{{count}} selecionados"
+ "selected_other": "{{count}} selecionados",
+ "suspiciousActivity": "Atividade Suspeita",
+ "threateningActivity": "Atividade Ameaçadora"
}
diff --git a/web/public/locales/pt/views/explore.json b/web/public/locales/pt/views/explore.json
index a271d1df74..721508174e 100644
--- a/web/public/locales/pt/views/explore.json
+++ b/web/public/locales/pt/views/explore.json
@@ -2,7 +2,7 @@
"generativeAI": "IA Generativa",
"exploreIsUnavailable": {
"embeddingsReindexing": {
- "startingUp": "Iniciando…",
+ "startingUp": "A iniciar…",
"estimatedTime": "Tempo restante estimado:",
"finishingShortly": "Terminando em breve",
"step": {
@@ -17,14 +17,14 @@
"visionModel": "Modelo de visão",
"textModel": "Modelo de texto",
"textTokenizer": "Tokenizador de texto",
- "visionModelFeatureExtractor": "Extrator de características de modelo de visão"
+ "visionModelFeatureExtractor": "Extrator de funcionalidade de modelo de visão"
},
- "context": "O Frigate está descarregando os modelos de incorporação necessários para dar suporte a funcionalidade de pesquisa semântica. Isso pode levar vários minutos, dependendo da velocidade da sua conexão de rede.",
+ "context": "O Frigate está a transferir os modelos de incorporação necessários para suportar a funcionalidade de \"Procura Semântica\". Isto pode levar vários minutos, dependendo da velocidade da sua ligação de rede.",
"tips": {
- "context": "Talvez você queira reindexar as incorporações dos seus objetos rastreados depois que os modelos forem descarregados.",
+ "context": "Talvez queira reindexar as incorporações dos seus objetos rastreados depois de os modelos serem transferidos.",
"documentation": "Leia a documentação"
},
- "error": "Ocorreu um erro. Verifique os logs do Frigate."
+ "error": "Ocorreu um erro. Verifique os registos do Frigate."
},
"title": "Explorar não está disponível"
},
@@ -43,12 +43,14 @@
"success": {
"regenerate": "Uma nova descrição foi solicitada pelo {{provider}}. Dependendo da velocidade do seu fornecedor, a nova descrição pode levar algum tempo para ser regenerada.",
"updatedSublabel": "Sub-rotulo atualizado com sucesso.",
- "updatedLPR": "Matrícula atualizada com sucesso."
+ "updatedLPR": "Matrícula atualizada com sucesso.",
+ "audioTranscription": "Transcrição de áudio solicitada com sucesso."
},
"error": {
"regenerate": "Falha ao chamar {{provider}} para uma nova descrição: {{errorMessage}}",
"updatedSublabelFailed": "Falha ao atualizar o sub-rotulo: {{errorMessage}}",
- "updatedLPRFailed": "Falha ao atualizar a matrícula: {{errorMessage}}"
+ "updatedLPRFailed": "Falha ao atualizar a matrícula: {{errorMessage}}",
+ "audioTranscription": "Falha ao solicitar transcrição de áudio: {{errorMessage}}"
}
},
"button": {
@@ -97,27 +99,30 @@
"tips": {
"descriptionSaved": "Descrição salva com sucesso",
"saveDescriptionFailed": "Falha ao atualizar a descrição: {{errorMessage}}"
+ },
+ "score": {
+ "label": "Classificação"
}
},
- "documentTitle": "Explorar - Frigate",
+ "documentTitle": "Frigate - Explorar",
"trackedObjectDetails": "Detalhes do objeto rastreado",
"type": {
"details": "detalhes",
"video": "vídeo",
"object_lifecycle": "ciclo de vida do objeto",
- "snapshot": "snapshot"
+ "snapshot": "captura de ecrã"
},
"objectLifecycle": {
"title": "Ciclo de vida do objeto",
"lifecycleItemDesc": {
"attribute": {
"other": "{{label}} reconhecido como {{attribute}}",
- "faceOrLicense_plate": "{{attribute}} detectado por {{label}}"
+ "faceOrLicense_plate": "{{attribute}} detetado por {{label}}"
},
"gone": "{{label}} saiu",
"heard": "{{label}} ouvido",
"visible": "{{label}} detectado",
- "external": "{{label}} detectado",
+ "external": "{{label}} detetado",
"entered_zone": "{{label}} entrou em {{zones}}",
"active": "{{label}} se tornou ativo",
"stationary": "{{label}} se tornou estacionário",
@@ -128,7 +133,7 @@
}
},
"annotationSettings": {
- "title": "Configurações de anotação",
+ "title": "Definições de Anotação",
"offset": {
"documentation": "Leia a documentação ",
"desc": "Esses dados vêm do feed de detecção da sua câmara, mas são sobrepostos nas imagens do feed de gravação. É improvável que os dois streams estejam perfeitamente sincronizados. Como resultado, a caixa delimitadora e o vídeo não se alinharão perfeitamente. No entanto, o campo annotation_offset pode ser usado para ajustar isso.",
@@ -140,8 +145,8 @@
}
},
"showAllZones": {
- "title": "Mostrar todas as zonas",
- "desc": "Sempre mostrar zonas nos quadros onde os objetos entraram em uma zona."
+ "title": "Mostrar Todas as Zonas",
+ "desc": "Mostrar sempre as zonas nas imagens onde os objetos entraram numa zona."
}
},
"carousel": {
@@ -150,9 +155,9 @@
},
"noImageFound": "Nenhuma imagem encontrada para este carimbo de data/hora.",
"createObjectMask": "Criar Máscara de Objeto",
- "adjustAnnotationSettings": "Ajustar configurações de anotação",
- "autoTrackingTips": "As posições da caixa delimitadora serão imprecisas para câmeras com rastreamento automático.",
- "scrollViewTips": "Faça scroll para ver os momentos significativos do ciclo de vida deste objeto.",
+ "adjustAnnotationSettings": "Ajustar definições de anotação",
+ "autoTrackingTips": "As posições da caixa delimitadora serão imprecisas para as câmaras com rastreamento automático.",
+ "scrollViewTips": "Deslize para ver os momentos significativos do ciclo de vida deste objeto.",
"count": "{{first}} de {{second}}",
"trackedPoint": "Ponto Rastreado"
},
@@ -183,6 +188,14 @@
},
"deleteTrackedObject": {
"label": "Excluir este objeto rastreado"
+ },
+ "addTrigger": {
+ "label": "Adicionar gatilho",
+ "aria": "Adicione um gatilho para este objeto rastreado"
+ },
+ "audioTranscription": {
+ "label": "Transcrever",
+ "aria": "Solicitar transcrição de áudio"
}
},
"searchResult": {
@@ -205,5 +218,11 @@
"trackedObjectsCount_one": "{{count}} objeto rastreado ",
"trackedObjectsCount_many": "{{count}} objetos rastreados ",
"trackedObjectsCount_other": "",
- "exploreMore": "Explora mais objetos {{label}}"
+ "exploreMore": "Explora mais objetos {{label}}",
+ "aiAnalysis": {
+ "title": "Análise IA"
+ },
+ "concerns": {
+ "label": "Preocupações"
+ }
}
diff --git a/web/public/locales/pt/views/live.json b/web/public/locales/pt/views/live.json
index eb0330a973..770028a85b 100644
--- a/web/public/locales/pt/views/live.json
+++ b/web/public/locales/pt/views/live.json
@@ -42,6 +42,14 @@
"center": {
"label": "Clique no quadro para centralizar a câmara PTZ"
}
+ },
+ "focus": {
+ "in": {
+ "label": "Em foco da câmera PTZ"
+ },
+ "out": {
+ "label": "Fora foco da câmera PTZ em"
+ }
}
},
"lowBandwidthMode": "Modo de baixa largura de banda",
@@ -130,7 +138,8 @@
"recording": "Gravando",
"audioDetection": "Detecção de áudio",
"autotracking": "Rastreamento automático",
- "snapshots": "Snapshots"
+ "snapshots": "Snapshots",
+ "transcription": "Transcrição de áudio"
},
"effectiveRetainMode": {
"modes": {
@@ -154,5 +163,9 @@
},
"history": {
"label": "Mostrar filmagens históricas"
+ },
+ "transcription": {
+ "enable": "Habilitar transcrição de áudio ao vivo",
+ "disable": "Desabilitar transcrição de áudio ao vivo"
}
}
diff --git a/web/public/locales/pt/views/settings.json b/web/public/locales/pt/views/settings.json
index f453e6a5b4..1bab92d786 100644
--- a/web/public/locales/pt/views/settings.json
+++ b/web/public/locales/pt/views/settings.json
@@ -6,11 +6,13 @@
"motionTuner": "Ajuste de movimento - Frigate",
"object": "Depuração - Frigate",
"authentication": "Configurações de autenticação - Frigate",
- "general": "Configurações Gerais - Frigate",
+ "general": "Configurações gerais - Frigate",
"frigatePlus": "Configurações do Frigate+ - Frigate",
"default": "Configurações - Frigate",
"notifications": "Configuração de Notificações - Frigate",
- "enrichments": "Configurações Avançadas - Frigate"
+ "enrichments": "Configurações Avançadas - Frigate",
+ "cameraManagement": "Gerir Câmaras - Frigate",
+ "cameraReview": "Configurações de Revisão de Câmara - Frigate"
},
"menu": {
"ui": "UI",
@@ -22,7 +24,11 @@
"users": "Utilizadores",
"notifications": "Notificações",
"frigateplus": "Frigate+",
- "enrichments": "Avançado"
+ "enrichments": "Avançado",
+ "triggers": "Gatilhos",
+ "cameraManagement": "Gestão",
+ "cameraReview": "Rever",
+ "roles": "Papéis"
},
"dialog": {
"unsavedChanges": {
@@ -465,6 +471,19 @@
"mask": {
"title": "Máscaras de movimento",
"desc": "Mostrar polígonos de máscara de movimento"
+ },
+ "paths": {
+ "title": "Caminhos",
+ "desc": "Mostrar pontos significativos do caminho do objeto rastreado",
+ "tips": "
Paths
Linhas e círculos indicarão pontos significativos que o objeto rastreado moveu durante seu ciclo de vida.
"
+ },
+ "openCameraWebUI": "Abrir a Interface Web de {{camera}}",
+ "audio": {
+ "title": "Áudio",
+ "noAudioDetections": "Nenhuma detecção de áudio",
+ "score": "pontuanção",
+ "currentRMS": "RMS Atual",
+ "currentdbFS": "dbFS Atual"
}
},
"camera": {
@@ -499,6 +518,44 @@
"desc": "Ative ou desative alertas e detecções para esta câmara. Quando desativado, nenhum novo item de análise será gerado. ",
"alerts": "Alertas ",
"detections": "Detecções "
+ },
+ "object_descriptions": {
+ "title": "Descrições de objetos de IA generativa",
+ "desc": "Ative/desative temporariamente as descrições de objetos de IA generativa para esta câmera. Quando desativadas, as descrições geradas por IA não serão solicitadas para objetos rastreados nesta câmera."
+ },
+ "review_descriptions": {
+ "title": "Descrições de análises de IA generativa",
+ "desc": "Ative/desative temporariamente as descrições de avaliação geradas por IA para esta câmera. Quando desativadas, as descrições geradas por IA não serão solicitadas para itens de avaliação nesta câmera."
+ },
+ "addCamera": "Adicionar Nova Câmera",
+ "editCamera": "Editar Câmera:",
+ "selectCamera": "Selecione uma Câmera",
+ "backToSettings": "Voltar para as Configurações da Câmera",
+ "cameraConfig": {
+ "add": "Adicionar Câmera",
+ "edit": "Editar Câmera",
+ "description": "Configure as definições da câmera, incluindo entradas de transmissão e funções.",
+ "name": "Nome da Câmera",
+ "nameRequired": "O nome da câmera é obrigatório",
+ "nameInvalid": "O nome da câmera deve conter apenas letras, números, sublinhados ou hifens",
+ "namePlaceholder": "e.g., porta_da_frente",
+ "enabled": "Habilitado",
+ "ffmpeg": {
+ "inputs": "Entrada de Streams",
+ "path": "Caminho da Stream",
+ "pathRequired": "Caminho da Stream é obrigatória",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Funções",
+ "rolesRequired": "Pelo menos uma função é necessária",
+ "rolesUnique": "Cada função (áudio, detecção, gravação) só pode ser atribuída a uma stream",
+ "addInput": "Adicionar Entrada de Stream",
+ "removeInput": "Remover Entrada de Stream",
+ "inputsRequired": "É necessário pelo menos uma stream de entrada"
+ },
+ "toast": {
+ "success": "Câmera {{cameraName}} guardada com sucesso"
+ },
+ "nameLength": "O nome da câmara deve ter ao menos 24 caracteres."
}
},
"motionDetectionTuner": {
@@ -594,7 +651,8 @@
"adminDesc": "Acesso total a todos os recursos.",
"viewer": "Visualização",
"viewerDesc": "Limitado apenas a painéis ao vivo, análise, exploração e exportações.",
- "intro": "Selecione a função apropriada para este utilizador:"
+ "intro": "Selecione a função apropriada para este utilizador:",
+ "customDesc": "Papel customizado com acesso a câmaras específicas."
},
"title": "Alterar função do utilizador",
"desc": "Atualizar permissões para {{username}}",
@@ -682,5 +740,247 @@
"roleUpdateFailed": "Falha ao atualizar a função: {{errorMessage}}"
}
}
+ },
+ "triggers": {
+ "documentTitle": "Triggers (gatilhos)",
+ "management": {
+ "title": "Gestão de Triggers",
+ "desc": "Gira triggers para {{camera}}. Use o tipo de miniatura para acionar miniaturas semelhantes ao objeto rastreado selecionado e o tipo de descrição para acionar descrições semelhantes ao texto especificado."
+ },
+ "addTrigger": "Adicionar Trigger",
+ "table": {
+ "name": "Nome",
+ "type": "Tipo",
+ "content": "Conteúdo",
+ "threshold": "Limite",
+ "actions": "Ações",
+ "noTriggers": "Nenhum trigger configurado para esta câmera.",
+ "edit": "Editar",
+ "deleteTrigger": "Apagar Trigger",
+ "lastTriggered": "Último acionado"
+ },
+ "type": {
+ "thumbnail": "Miniatura",
+ "description": "Descrição"
+ },
+ "actions": {
+ "alert": "Marcar como Alerta",
+ "notification": "Enviar Notificação"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Criar Trigger",
+ "desc": "Crie um trigger para a câmera {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Editar Trigger",
+ "desc": "Editar as definições do trigger na câmera {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Apagar Trigger",
+ "desc": "Tem certeza de que deseja apagar o trigger {{triggerName}}? Esta ação não pode ser desfeita."
+ },
+ "form": {
+ "name": {
+ "title": "Nome",
+ "placeholder": "Insira o nome do trigger",
+ "error": {
+ "minLength": "O nome deve ter pelo menos 2 caracteres.",
+ "invalidCharacters": "O nome só pode conter letras, números, sublinhados e hifens.",
+ "alreadyExists": "Já existe um trigger com este nome para esta câmera."
+ }
+ },
+ "enabled": {
+ "description": "Habilitar ou desabilitar este trigger"
+ },
+ "type": {
+ "title": "Tipo",
+ "placeholder": "Selecione o tipo de trigger"
+ },
+ "content": {
+ "title": "Conteúdo",
+ "imagePlaceholder": "Selecione uma imagem",
+ "textPlaceholder": "Insira o conteúdo do texto",
+ "imageDesc": "Selecione uma imagem para acionar esta ação quando uma imagem semelhante for detectada.",
+ "textDesc": "Insira um texto para acionar esta ação quando uma descrição de objeto rastreado semelhante for detectada.",
+ "error": {
+ "required": "O Conteúdo é obrigatório."
+ }
+ },
+ "threshold": {
+ "title": "Limite",
+ "error": {
+ "min": "Limite deve ser pelo menos 0",
+ "max": "Limite deve ser no máximo 1"
+ }
+ },
+ "actions": {
+ "title": "Ações",
+ "desc": "Por padrão, o Frigate envia uma mensagem MQTT para todos os triggers. Escolha uma ação adicional a ser executada quando este trigger for disparado.",
+ "error": {
+ "min": "Pelo menos uma ação deve ser selecionada."
+ }
+ },
+ "friendly_name": {
+ "title": "Nome Amigável",
+ "placeholder": "Nomeie ou descreva este gatilho",
+ "description": "Um nome amigável ou descritivo opcional para este gatilho."
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Trigger {{name}} criado com sucesso.",
+ "updateTrigger": "Trigger {{name}} atualizado com sucesso.",
+ "deleteTrigger": "Trigger {{name}} apagado com sucesso."
+ },
+ "error": {
+ "createTriggerFailed": "Falha ao criar trigger: {{errorMessage}}",
+ "updateTriggerFailed": "Falha ao atualizar o trigger: {{errorMessage}}",
+ "deleteTriggerFailed": "Falha ao apagar o trigger: {{errorMessage}}"
+ }
+ },
+ "semanticSearch": {
+ "title": "Pesquisa Semântica desativada",
+ "desc": "Pesquisa Semântica deve estar ativada para usar os Gatilhos."
+ }
+ },
+ "roles": {
+ "management": {
+ "title": "Gestão do Papel de Visualizador",
+ "desc": "Gerir papéis de visualizador customizados e as suas permissões de acesso para esta instância do Frigate."
+ },
+ "addRole": "Adicionar Papel",
+ "table": {
+ "role": "Papel",
+ "cameras": "Câmaras",
+ "actions": "Ações",
+ "noRoles": "Nenhum papel customizado encontrado.",
+ "editCameras": "Editar Câmaras",
+ "deleteRole": "Apagar Papel"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Papel {{role}} criado com sucesso",
+ "updateCameras": "Câmaras atualizados para o papel {{role}}",
+ "deleteRole": "Papel {{role}} apagado com sucesso",
+ "userRolesUpdated_one": "{{count}} utilizador(os) atribuídos a este papel foram atualizados para 'visualizador', que possui acesso a todas as câmaras.",
+ "userRolesUpdated_many": "",
+ "userRolesUpdated_other": ""
+ },
+ "error": {
+ "createRoleFailed": "Falha ao criar papel: {{errorMessage}}",
+ "updateCamerasFailed": "Falha ao atualizar câmaras: {{errorMessage}}",
+ "deleteRoleFailed": "Falha ao apagar papel: {{errorMessage}}",
+ "userUpdateFailed": "Falha ao atualizar papel do utilizador: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Criar Novo Papel",
+ "desc": "Adicionar um novo papel e especificar permissões de acesso."
+ },
+ "editCameras": {
+ "title": "Editar Câmaras de Papéis",
+ "desc": "Atualizar acesso da câmara para o papel {{role}}."
+ },
+ "deleteRole": {
+ "title": "Apagar Papel",
+ "desc": "Esta ação não pode ser desfeita. Isto irá apagar permanentemente o papel e atribuir a quaisquer utilizadores com este papel como 'visualizador', o que dará acesso de visualização para todas as câmaras.",
+ "warn": "Tem certeza que quer apagar {{role}}?",
+ "deleting": "A apagar…"
+ },
+ "form": {
+ "role": {
+ "title": "Nome do Papel",
+ "placeholder": "Digitar nome do papel",
+ "desc": "Apenas letras, números, pontos e sublinhados são permitidos.",
+ "roleIsRequired": "Nome para o papel é requerido",
+ "roleOnlyInclude": "O nome do papel pode conter apenas letras, números, pontos ou sublinhados",
+ "roleExists": "Um papel com este nome já existe."
+ },
+ "cameras": {
+ "title": "Câmaras",
+ "desc": "Selecione as câmaras que este papel terá acesso. Ao menos uma câmara é requerida.",
+ "required": "Ao menos uma câmara deve ser selecionada."
+ }
+ }
+ }
+ },
+ "cameraWizard": {
+ "title": "Adicionar Câmara",
+ "description": "Siga os passos abaixo para adicionar uma câmara nova no seu Frigate.",
+ "steps": {
+ "nameAndConnection": "Nome e Conexão",
+ "streamConfiguration": "Configuração de Stream",
+ "validationAndTesting": "Validação e Teste"
+ },
+ "save": {
+ "success": "Nova câmara {{cameraName}} grava com sucesso.",
+ "failure": "Erro ao gravar {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Resolução",
+ "video": "Vídeo",
+ "audio": "Áudio",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Favor fornecer uma URL de stream válida",
+ "testFailed": "Teste de stream falhou: {{error}}"
+ },
+ "step1": {
+ "description": "Adicione os pormenores da sua câmara e teste a conexão.",
+ "cameraName": "Nome da Câmara",
+ "cameraNamePlaceholder": "ex., porta_entrada ou Visão Geral do Quintal",
+ "host": "Host/Endereço IP",
+ "port": "Porta",
+ "username": "Nome de Utilizador",
+ "usernamePlaceholder": "Opcional",
+ "password": "Palavra-passe",
+ "passwordPlaceholder": "Opcional",
+ "selectTransport": "Selecionar protocolo de transporte",
+ "cameraBrand": "Marca da Câmara",
+ "selectBrand": "Selecione a marca da câmara para template de URL",
+ "customUrl": "URL Customizada de Stream",
+ "brandInformation": "Informação da marca",
+ "brandUrlFormat": "Para câmaras com o formato de URL RTSP como: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://nomedeusuario:palavra-passe@host:porta/caminho",
+ "testConnection": "Testar Conexão",
+ "testSuccess": "Teste de conexão bem sucedido!",
+ "testFailed": "Teste de conexão falhou. Favor verifique os dados e tente novamente.",
+ "streamDetails": "Pormenores do Stream",
+ "warnings": {
+ "noSnapshot": "Não foi possível adquirir uma captura de imagem do stream configurado."
+ },
+ "errors": {
+ "brandOrCustomUrlRequired": "Selecione a marca da câmara com o host/IP or selecione 'Outro' com uma URL customizada",
+ "nameRequired": "Nome para a câmara requerido"
+ }
+ },
+ "step2": {
+ "url": "URL",
+ "roleLabels": {
+ "audio": "Áudio"
+ }
+ },
+ "step3": {
+ "reload": "Recarregar",
+ "valid": "Válido",
+ "failed": "Falhou",
+ "none": "Nenhum",
+ "error": "Erro"
+ }
+ },
+ "cameraManagement": {
+ "cameraConfig": {
+ "enabled": "Ativado",
+ "addUrl": "Adicionar URL"
+ }
+ },
+ "cameraReview": {
+ "review": {
+ "title": "Rever"
+ }
}
}
diff --git a/web/public/locales/pt/views/system.json b/web/public/locales/pt/views/system.json
index 2826a9dd92..9f90073c98 100644
--- a/web/public/locales/pt/views/system.json
+++ b/web/public/locales/pt/views/system.json
@@ -1,14 +1,14 @@
{
"documentTitle": {
- "storage": "Estatísticas de armazenamento - Frigate",
- "general": "Estatísticas gerais - Frigate",
- "enrichments": "Estatísticas de enriquecimento - Frigate",
+ "storage": "Frigate - Estatísticas de Armazenamento",
+ "general": "Frigate - Estatísticas Gerais",
+ "enrichments": "Frigate - Estatísticas de Enriquecimento",
"logs": {
- "frigate": "Logs do Frigate - Frigate",
- "go2rtc": "Logs do Go2RTC - Frigate",
- "nginx": "Logs do Nginx - Frigate"
+ "frigate": "Frigate - Registos de Eventos do Frigate",
+ "go2rtc": "Frigate - Registos de Eventos do Go2RTC",
+ "nginx": "Frigate - Registos de Eventos do Nginx"
},
- "cameras": "Estatísticas das câmaras - Frigate"
+ "cameras": "Frigate - Estatísticas das Câmaras"
},
"title": "Sistema",
"metrics": "Métricas do sistema",
@@ -16,22 +16,22 @@
"type": {
"label": "Tipo",
"timestamp": "Carimbo de hora",
- "tag": "Tag",
+ "tag": "Etiqueta",
"message": "Mensagem"
},
"copy": {
- "success": "Logs copiados para a área de transferência",
- "label": "Copiar para a área de transferência",
- "error": "Não foi possível copiar os logs para a área de transferência"
+ "success": "Registos copiados para a área de transferência",
+ "label": "Copiar para a Área de Transferência",
+ "error": "Não foi possível copiar os registos para a área de transferência"
},
"download": {
- "label": "Descarregar logs"
+ "label": "Transferir Registos"
},
- "tips": "Os logs estão a ser transmitidos do servidor",
+ "tips": "Os registos estão a ser transmitidos do servidor",
"toast": {
"error": {
- "fetchingLogsFailed": "Erro ao buscar logs: {{errorMessage}}",
- "whileStreamingLogs": "Erro ao transmitir logs: {{errorMessage}}"
+ "fetchingLogsFailed": "Erro ao obter os registos: {{errorMessage}}",
+ "whileStreamingLogs": "Erro enquanto transmitia os registos: {{errorMessage}}"
}
}
},
@@ -49,11 +49,15 @@
"title": "Armazenamento da câmara"
},
"title": "Armazenamento",
- "overview": "Visão geral",
+ "overview": "Sinopse",
"recordings": {
"title": "Gravações",
"earliestRecording": "Primeira gravação disponível:",
- "tips": "Esse valor representa o armazenamento total usado pelas gravações na base de dados do Frigate. O Frigate não acompanha o uso de armazenamento de todos os ficheiros no seu disco."
+ "tips": "Este valor representa o armazenamento total utilizado pelas gravações na base de dados do Frigate. O Frigate não acompanha a utilização do armazenamento de todos os ficheiros no seu disco."
+ },
+ "shm": {
+ "title": "Alocação SHM (memória partilhada)",
+ "warning": "A tamanho atual de SHM de {{total}} MB é muito pequeno. Aumente-o para pelo menos {{min_shm}} MB."
}
},
"cameras": {
@@ -83,19 +87,19 @@
"skipped": "ignorado",
"ffmpeg": "FFmpeg",
"cameraFfmpeg": "{{camName}} FFmpeg",
- "cameraFramesPerSecond": "quadros por segundo de {{camName}}",
+ "cameraFramesPerSecond": "imagens por segundo de {{camName}}",
"cameraCapture": "captura de {{camName}}",
- "cameraDetectionsPerSecond": "detecções por segundo de {{camName}}",
- "overallFramesPerSecond": "quadros por segundo totais (FPS)",
- "overallDetectionsPerSecond": "detecções por segundo totais",
- "overallSkippedDetectionsPerSecond": "detecções ignoradas por segundo totais",
- "cameraDetect": "detecção de {{camName}}",
- "cameraSkippedDetectionsPerSecond": "detecções ignoradas por segundo de {{camName}}"
+ "cameraDetectionsPerSecond": "deteções por segundo de {{camName}}",
+ "overallFramesPerSecond": "imagens por segundo totais (FPS)",
+ "overallDetectionsPerSecond": "deteções por segundo totais",
+ "overallSkippedDetectionsPerSecond": "deteções ignoradas por segundo totais",
+ "cameraDetect": "deteção de {{camName}}",
+ "cameraSkippedDetectionsPerSecond": "deteções ignoradas por segundo de {{camName}}"
},
"overview": "Visão geral",
"toast": {
"success": {
- "copyToClipboard": "Dados de Exploração copiados para a área de transferência."
+ "copyToClipboard": "Dados de exploração copiados para a área de transferência."
},
"error": {
"unableToProbeCamera": "Não foi possível explorar a câmara: {{errorMessage}}"
@@ -104,43 +108,45 @@
},
"lastRefreshed": "Última atualização: ",
"stats": {
- "ffmpegHighCpuUsage": "{{camera}} tem alto uso de CPU FFmpeg ({{ffmpegAvg}}%)",
- "detectHighCpuUsage": "{{camera}} tem alto uso de CPU de detecção ({{detectAvg}}%)",
+ "ffmpegHighCpuUsage": "{{camera}} tem alta utilização da CPU FFmpeg ({{ffmpegAvg}}%)",
+ "detectHighCpuUsage": "{{camera}} tem alta utilização da CPU de deteção ({{detectAvg}}%)",
"healthy": "O sistema está saudável",
"reindexingEmbeddings": "Reindexando incorporações ({{processed}}% completo)",
"detectIsVerySlow": "{{detect}} está muito lento ({{speed}} ms)",
- "cameraIsOffline": "{{camera}} está offline",
- "detectIsSlow": "{{detect}} está lento ({{speed}} ms)"
+ "cameraIsOffline": "{{camera}} está off-line",
+ "detectIsSlow": "{{detect}} está lento ({{speed}} ms)",
+ "shmTooLow": "/dev/shm alocação ({{total}} MB) deveria ser aumentada pelo menos {{min}} MB."
},
"general": {
"title": "Geral",
"detector": {
- "title": "Detectores",
- "cpuUsage": "Utilização do CPU do Detector",
- "memoryUsage": "Utilização da memória do Detector",
- "inferenceSpeed": "Velocidade de Inferência do Detector",
- "temperature": "Temperatura do Detector"
+ "title": "Detetores",
+ "cpuUsage": "Utilização do CPU do Detetor",
+ "memoryUsage": "Utilização da Memória do Detetor",
+ "inferenceSpeed": "Velocidade de Inferência do Detetor",
+ "temperature": "Temperatura do Detetor",
+ "cpuUsageInformation": "CPU utilizada na preparação de dados de entrada e saída de/para os modelos de deteção. Este valor não mede oa utilização da inferência, mesmo se estiver a utilizar uma GPU ou acelerador."
},
"hardwareInfo": {
- "title": "Informações de hardware",
- "gpuUsage": "Utilização GPU",
- "gpuMemory": "Memória GPU",
+ "title": "Informação de Hardware",
+ "gpuUsage": "Utilização da GPU",
+ "gpuMemory": "Memória da GPU",
"gpuInfo": {
"nvidiaSMIOutput": {
- "driver": "Driver: {{driver}}",
+ "driver": "Controlador: {{driver}}",
"vbios": "Informação VBios: {{vbios}}",
"name": "Nome: {{name}}",
"cudaComputerCapability": "Capacidade de computação CUDA: {{cuda_compute}}",
"title": "Saída Nvidia SMI"
},
"copyInfo": {
- "label": "Copiar informações do GPU"
+ "label": "Copiar informação da GPU"
},
"closeInfo": {
- "label": "Fechar informações do GPU"
+ "label": "Fechar informação da GPU"
},
"toast": {
- "success": "Informações do GPU copiadas para a área de transferência"
+ "success": "Informação da GPU copiada para a área de transferência"
},
"vainfoOutput": {
"title": "Saída do Vainfo",
@@ -149,32 +155,32 @@
"processError": "Erro no processo:"
}
},
- "gpuEncoder": "GPU Encoder",
- "gpuDecoder": "GPU Decoder",
+ "gpuEncoder": "Codificador da GPU",
+ "gpuDecoder": "Descodificador da GPU",
"npuUsage": "Utilização NPU",
"npuMemory": "Memória NPU"
},
"otherProcesses": {
- "title": "Outros processos",
- "processCpuUsage": "Uso de CPU do processo",
- "processMemoryUsage": "Uso de memória do processo"
+ "title": "Outros Processos",
+ "processCpuUsage": "Utilização da CPU do Processo",
+ "processMemoryUsage": "Utilização da Memória do Processo"
}
},
"enrichments": {
"title": "Enriquecimentos",
- "infPerSecond": "Inferências por segundo",
+ "infPerSecond": "Inferências por Segundo",
"embeddings": {
- "image_embedding_speed": "Velocidade de incorporação de imagem",
- "face_embedding_speed": "Velocidade de incorporação facial",
- "plate_recognition_speed": "Velocidade de reconhecimento de placas",
- "text_embedding_speed": "Velocidade de incorporação de texto",
+ "image_embedding_speed": "Velocidade de Incorporação de Imagem",
+ "face_embedding_speed": "Velocidade de Incorporação Facial",
+ "plate_recognition_speed": "Velocidade de Reconhecimento de Placas",
+ "text_embedding_speed": "Velocidade de Incorporação de Texto",
"face_recognition_speed": "Velocidade de Reconhecimento Facial",
"plate_recognition": "Reconhecimento de Placas",
"image_embedding": "Incorporação de Imagem",
"text_embedding": "Incorporação de Texto",
"face_recognition": "Reconhecimento Facial",
- "yolov9_plate_detection_speed": "Velocidade de Detecção de Placas YOLOv9",
- "yolov9_plate_detection": "Detecção de Placas YOLOv9"
+ "yolov9_plate_detection_speed": "Velocidade de Deteção de Placas YOLOv9",
+ "yolov9_plate_detection": "Deteção de Placas YOLOv9"
}
}
}
diff --git a/web/public/locales/ro/audio.json b/web/public/locales/ro/audio.json
index 8221339dba..56815c6188 100644
--- a/web/public/locales/ro/audio.json
+++ b/web/public/locales/ro/audio.json
@@ -425,5 +425,79 @@
"single-lens_reflex_camera": "Cameră reflex cu un singur obiectiv",
"fusillade": "descărcare de focuri",
"pink_noise": "Zgomot roz",
- "field_recording": "Înregistrare pe teren"
+ "field_recording": "Înregistrare pe teren",
+ "sodeling": "*Sodeling*",
+ "chird": "*Chird*",
+ "change_ringing": "Schimbă soneria",
+ "shofar": "Șofar",
+ "liquid": "Lichid",
+ "splash": "Stropire",
+ "slosh": "Sloș",
+ "squish": "Plescăit",
+ "drip": "Picur",
+ "pour": "Toarnă",
+ "trickle": "Picurare",
+ "gush": "Șuvoi",
+ "fill": "Umplere",
+ "spray": "Pulverizare",
+ "pump": "Pompă",
+ "stir": "Amestecare",
+ "boiling": "Fierbere",
+ "sonar": "Sonar",
+ "arrow": "Săgeată",
+ "whoosh": "Whoosh",
+ "thump": "Bufnitură",
+ "thunk": "Buft",
+ "electronic_tuner": "Tuner electronic",
+ "effects_unit": "Efect de unitate",
+ "chorus_effect": "Efect de cor",
+ "basketball_bounce": "Săritură minge basket",
+ "bang": "Bubuitură",
+ "slap": "Pălmuială",
+ "whack": "Lovitură",
+ "smash": "Zdrobitură",
+ "breaking": "Rupere",
+ "bouncing": "Saritură",
+ "whip": "Bici",
+ "flap": "fâlfâit",
+ "scratch": "Zgâriat",
+ "scrape": "Răzuire",
+ "rub": "Frecare",
+ "roll": "Rostogolire",
+ "crushing": "Spargere",
+ "crumpling": "Șifonare",
+ "tearing": "Sfâșiere",
+ "beep": "Bip",
+ "ping": "Ping",
+ "ding": "Ding",
+ "clang": "zăngănit",
+ "squeal": "Țipăt",
+ "creak": "Scârțâit",
+ "rustle": "Foșnet",
+ "whir": "Vuiet",
+ "clatter": "Zdrăngăneală",
+ "sizzle": "Sfârâit",
+ "clicking": "Clănțănit",
+ "clickety_clack": "Clănțăneală",
+ "rumble": "Bubuit",
+ "plop": "Plop",
+ "hum": "murmur",
+ "zing": "Zing",
+ "boing": "Boing",
+ "crunch": "ronţăire",
+ "sine_wave": "Unda Sinusoidală",
+ "harmonic": "Armonic",
+ "chirp_tone": "ton de ciripit",
+ "pulse": "Puls",
+ "inside": "În interior",
+ "outside": "Afară",
+ "reverberation": "Reverberație",
+ "echo": "Ecou",
+ "noise": "Gălăgie",
+ "mains_hum": "Zumzet principal",
+ "distortion": "Distorsionare",
+ "sidetone": "Ton lateral",
+ "cacophony": "Cacofonie",
+ "throbbing": "Trepidant",
+ "vibration": "Vibrație"
}
diff --git a/web/public/locales/ro/common.json b/web/public/locales/ro/common.json
index 145d511a4c..a70e1c06f5 100644
--- a/web/public/locales/ro/common.json
+++ b/web/public/locales/ro/common.json
@@ -1,8 +1,8 @@
{
"time": {
"untilForTime": "Până la {{time}}",
- "untilForRestart": "Pana la repornirea Frigate.",
- "untilRestart": "Pana la repornire",
+ "untilForRestart": "Până la repornirea Frigate.",
+ "untilRestart": "Până la repornire",
"ago": "{{timeAgo}} în urmă",
"justNow": "Acum",
"today": "Astăzi",
@@ -42,7 +42,7 @@
"24hour": "dd-MM-yy-HH-mm-ss"
},
"30minutes": "30 de minute",
- "1hour": "O oră",
+ "1hour": "1 oră",
"12hours": "12 ore",
"24hours": "24 de ore",
"pm": "PM",
@@ -78,7 +78,10 @@
"minute_other": "{{time}} de minute",
"second_one": "{{time}} secundă",
"second_few": "{{time}} secunde",
- "second_other": "{{time}} de secunde"
+ "second_other": "{{time}} de secunde",
+ "inProgress": "În desfășurare",
+ "invalidStartTime": "Oră de început invalidă",
+ "invalidEndTime": "Oră de sfârșit invalidă"
},
"menu": {
"documentation": {
@@ -123,7 +126,15 @@
"ro": "Română (Română)",
"hu": "Magyar (Maghiară)",
"fi": "Suomi (Finlandeză)",
- "th": "ไทย (Thailandeză)"
+ "th": "ไทย (Thailandeză)",
+ "ptBR": "Português brasileiro (Portugheză braziliană)",
+ "sr": "Српски (Sârbă)",
+ "sl": "Slovenščina (Slovenă)",
+ "lt": "Lietuvių (Lituaniană)",
+ "bg": "Български (Bulgară)",
+ "gl": "Galego (Galiciană)",
+ "id": "Bahasa Indonesia (Indoneziană)",
+ "ur": "اردو (Urdu)"
},
"theme": {
"default": "Implicit",
@@ -171,7 +182,8 @@
},
"withSystem": "Modul sistemului",
"restart": "Repornește Frigate",
- "review": "Revizuire"
+ "review": "Revizuire",
+ "classification": "Clasificare"
},
"button": {
"cameraAudio": "Sunet cameră",
@@ -208,7 +220,8 @@
"unselect": "Deselectează",
"export": "Exportă",
"deleteNow": "Șterge acum",
- "next": "Următorul"
+ "next": "Următorul",
+ "continue": "Continuă"
},
"unit": {
"speed": {
@@ -218,10 +231,23 @@
"length": {
"feet": "picioare",
"meters": "metri"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/oră",
+ "mbph": "MB/oră",
+ "gbph": "GB/oră"
}
},
"label": {
- "back": "Mergi înapoi"
+ "back": "Mergi înapoi",
+ "hide": "Ascunde {{item}}",
+ "show": "Afișează {{item}}",
+ "ID": "ID",
+ "none": "Niciuna",
+ "all": "Toate"
},
"selectItem": "Selectează {{item}}",
"pagination": {
@@ -261,5 +287,18 @@
"documentTitle": "Nu a fost găsit - Frigate",
"title": "404",
"desc": "Pagină negăsită"
+ },
+ "readTheDocumentation": "Citește documentația",
+ "information": {
+ "pixels": "{{area}}px"
+ },
+ "list": {
+ "two": "{{0}} și {{1}}",
+ "many": "{{items}}, și {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "Opțional",
+ "internalID": "ID-ul Intern pe care Frigate îl folosește în configurație și în baza de date"
}
}
diff --git a/web/public/locales/ro/components/auth.json b/web/public/locales/ro/components/auth.json
index 4fa303853d..cc3b5923bb 100644
--- a/web/public/locales/ro/components/auth.json
+++ b/web/public/locales/ro/components/auth.json
@@ -10,6 +10,7 @@
"webUnknownError": "Eroare necunoscuta. Verifica logurile din consola.",
"usernameRequired": "Utilizatorul este necesar",
"unknownError": "Eroare necunoscuta. Verifica logurile."
- }
+ },
+ "firstTimeLogin": "Încercați să vă conectați pentru prima dată? Datele de autentificare sunt tipărite în jurnalele Frigate."
}
}
diff --git a/web/public/locales/ro/components/camera.json b/web/public/locales/ro/components/camera.json
index d93a81dccd..55396367d2 100644
--- a/web/public/locales/ro/components/camera.json
+++ b/web/public/locales/ro/components/camera.json
@@ -66,7 +66,8 @@
"label": "Mod compatibilitate",
"desc": "Activează această opțiune doar dacă stream-ul live al camerei afișează artefacte de culoare și are o linie diagonală pe partea dreaptă a imaginii."
}
- }
+ },
+ "birdseye": "Vedere de ansamblu"
}
},
"debug": {
diff --git a/web/public/locales/ro/components/dialog.json b/web/public/locales/ro/components/dialog.json
index c07b2cee06..cbbbf71155 100644
--- a/web/public/locales/ro/components/dialog.json
+++ b/web/public/locales/ro/components/dialog.json
@@ -46,7 +46,8 @@
"button": {
"deleteNow": "Șterge acum",
"export": "Exportă",
- "markAsReviewed": "Marchează ca revizuit"
+ "markAsReviewed": "Marchează ca revizuit",
+ "markAsUnreviewed": "Marchează ca nerevizuit"
},
"confirmDelete": {
"toast": {
@@ -82,12 +83,13 @@
"export": "Exportă",
"selectOrExport": "Selectează sau exportă",
"toast": {
- "success": "Exportul a început cu succes. Vizualizați fișierul în dosarul /exports.",
+ "success": "Exportul a început cu succes. Vizualizați fișierul pe pagina de exporturi.",
"error": {
"failed": "Eroare la pornirea exportului: {{error}}",
"endTimeMustAfterStartTime": "Ora de sfârșit trebuie să fie după ora de început",
"noVaildTimeSelected": "Nu a fost selectat un interval de timp valid"
- }
+ },
+ "view": "Vizualizează"
},
"fromTimeline": {
"saveExport": "Salvează exportul",
@@ -105,7 +107,7 @@
},
"showStats": {
"label": "Afișează statistici streaming",
- "desc": "Activează această opțiune pentru a afișa statisticile de streaming ca un overlay peste fluxul camerei."
+ "desc": "Activează această opțiune pentru a afișa statisticile de streaming ca un overlay peste stream-ul camerei."
},
"debugView": "Vizualizator depanare"
},
@@ -122,5 +124,13 @@
}
}
}
+ },
+ "imagePicker": {
+ "selectImage": "Selectează miniatura unui obiect urmărit",
+ "search": {
+ "placeholder": "Caută după etichetă sau subetichetă..."
+ },
+ "noImages": "Nu s-au găsit miniaturi pentru această cameră",
+ "unknownLabel": "Imaginea declanșator salvată"
}
}
diff --git a/web/public/locales/ro/components/filter.json b/web/public/locales/ro/components/filter.json
index 40c0c593cf..74a65aa627 100644
--- a/web/public/locales/ro/components/filter.json
+++ b/web/public/locales/ro/components/filter.json
@@ -121,6 +121,20 @@
"selectPlatesFromList": "Selectează una sau mai multe plăcuțe din listă.",
"loading": "Se încarcă numerele de înmatriculare recunoscute…",
"placeholder": "Caută plăcuțe de înmatriculare…",
- "loadFailed": "Nu s-au putut încărca numerele de înmatriculare recunoscute."
+ "loadFailed": "Nu s-au putut încărca numerele de înmatriculare recunoscute.",
+ "selectAll": "Selectează tot",
+ "clearAll": "Elimină tot"
+ },
+ "classes": {
+ "label": "Clase",
+ "all": {
+ "title": "Toate clasele"
+ },
+ "count_one": "{{count}} Clasă",
+ "count_other": "{{count}} Clase"
+ },
+ "attributes": {
+ "label": "Atribute de clasificare",
+ "all": "Toate atributele"
}
}
diff --git a/web/public/locales/ro/views/classificationModel.json b/web/public/locales/ro/views/classificationModel.json
new file mode 100644
index 0000000000..1ecc6018e4
--- /dev/null
+++ b/web/public/locales/ro/views/classificationModel.json
@@ -0,0 +1,193 @@
+{
+ "documentTitle": "Modele de clasificare - Frigate",
+ "button": {
+ "deleteClassificationAttempts": "Șterge imaginile de clasificare",
+ "renameCategory": "Redenumește clasa",
+ "deleteCategory": "Șterge clasa",
+ "deleteImages": "Șterge imaginile",
+ "trainModel": "Antrenează modelul",
+ "addClassification": "Adaugă clasificare",
+ "deleteModels": "Șterge modelele",
+ "editModel": "Editează modelul"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Clasă ștearsă",
+ "deletedImage": "Imagini șterse",
+ "categorizedImage": "Imagine clasificată cu succes",
+ "trainedModel": "Model antrenat cu succes.",
+ "trainingModel": "Antrenamentul modelului a fost pornit cu succes.",
+ "deletedModel_one": "{{count}} model șters cu succes",
+ "deletedModel_few": "{{count}} modele șterse cu succes",
+ "deletedModel_other": "{{count}} modele șterse cu succes",
+ "updatedModel": "Configurația modelului a fost actualizată cu succes",
+ "renamedCategory": "Clasa a fost redenumită cu succes în {{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "Ștergerea a eșuat: {{errorMessage}}",
+ "deleteCategoryFailed": "Ștergerea clasei a eșuat: {{errorMessage}}",
+ "categorizeFailed": "Categorisirea imaginii a eșuat: {{errorMessage}}",
+ "trainingFailed": "Antrenarea modelului a eșuat. Verifică jurnalele Frigate pentru detalii.",
+ "deleteModelFailed": "Ștergerea modelului a eșuat: {{errorMessage}}",
+ "updateModelFailed": "Actualizarea modelului a eșuat: {{errorMessage}}",
+ "renameCategoryFailed": "Redenumirea clasei a eșuat: {{errorMessage}}",
+ "trainingFailedToStart": "Nu s-a putut porni antrenarea modelului: {{errorMessage}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Șterge clasa",
+ "desc": "Sigur doriți să ștergeți clasa {{name}}? Aceasta va șterge permanent toate imaginile asociate și va necesita reantrenarea modelului.",
+ "minClassesTitle": "Nu se poate șterge clasa",
+ "minClassesDesc": "Un model de clasificare trebuie să aibă cel puțin 2 clase. Adaugă o altă clasă înainte de a o șterge pe aceasta."
+ },
+ "deleteDatasetImages": {
+ "title": "Șterge imaginile setului de date",
+ "desc_one": "Sigur doriți să ștergeți {{count}} imagine din {{dataset}}? Această acțiune nu poate fi anulată și va necesita reantrenarea modelului.",
+ "desc_few": "Sigur doriți să ștergeți {{count}} imagini din {{dataset}}? Această acțiune nu poate fi anulată și va necesita reantrenarea modelului.",
+ "desc_other": "Sigur doriți să ștergeți {{count}} de imagini din {{dataset}}? Această acțiune nu poate fi anulată și va necesita reantrenarea modelului."
+ },
+ "deleteTrainImages": {
+ "title": "Șterge imaginile de antrenament",
+ "desc_one": "Sigur doriți să ștergeți {{count}} imagine? Această acțiune nu poate fi anulată.",
+ "desc_few": "Sigur doriți să ștergeți {{count}} imagini? Această acțiune nu poate fi anulată.",
+ "desc_other": "Sigur doriți să ștergeți {{count}} de imagini? Această acțiune nu poate fi anulată."
+ },
+ "renameCategory": {
+ "title": "Redenumește clasa",
+ "desc": "Introduceți un nume nou pentru {{name}}. Va trebui să reantrenați modelul pentru ca modificarea numelui să aibă efect."
+ },
+ "description": {
+ "invalidName": "Nume invalid. Numele pot include doar litere, cifre, spații, apostrofuri, underscore-uri și liniuțe."
+ },
+ "train": {
+ "title": "Clasificări recente",
+ "titleShort": "Recent",
+ "aria": "Selectează clasificările recente"
+ },
+ "categories": "Clase",
+ "createCategory": {
+ "new": "Creează clasă nouă"
+ },
+ "categorizeImageAs": "Clasifică imaginea ca:",
+ "categorizeImage": "Clasifică imaginea",
+ "noModels": {
+ "object": {
+ "title": "Nu există modele de clasificare a obiectelor",
+ "description": "Creează un model personalizat pentru a clasifica obiectele detectate.",
+ "buttonText": "Creează model de obiect"
+ },
+ "state": {
+ "title": "Nu există modele de clasificare a stării",
+ "description": "Creează un model personalizat pentru a monitoriza și clasifica schimbările de stare în anumite zone ale camerei.",
+ "buttonText": "Creează model de stare"
+ }
+ },
+ "wizard": {
+ "title": "Creează clasificare nouă",
+ "steps": {
+ "nameAndDefine": "Numire și definire",
+ "stateArea": "Zona de stare",
+ "chooseExamples": "Alege exemple"
+ },
+ "step1": {
+ "description": "Modelele de stare monitorizează zone fixe ale camerei pentru schimbări (de exemplu, ușă deschisă/închisă). Modelele de obiect adaugă clasificări obiectelor detectate (de exemplu, animale cunoscute, curieri etc.).",
+ "name": "Nume",
+ "namePlaceholder": "Introduceți numele modelului...",
+ "type": "Tip",
+ "typeState": "Stare",
+ "typeObject": "Obiect",
+ "objectLabel": "Etichetă obiect",
+ "objectLabelPlaceholder": "Selectează tipul obiectului...",
+ "classificationType": "Tip de clasificare",
+ "classificationTypeTip": "Află despre tipurile de clasificare",
+ "classificationTypeDesc": "Subetichetele adaugă text suplimentar la eticheta obiectului (de exemplu, 'Persoană: UPS'). Atributele sunt metadate căutabile, stocate separat în metadatele obiectului.",
+ "classificationSubLabel": "Subeticheta",
+ "classificationAttribute": "Atribut",
+ "classes": "Clase",
+ "classesTip": "Află despre clase",
+ "classesStateDesc": "Definește diferitele stări în care poate fi zona camerei tale. De exemplu: 'deschis' și 'închis' pentru o ușă de garaj.",
+ "classesObjectDesc": "Definește diferitele categorii în care să fie clasificate obiectele detectate. De exemplu: 'curier', 'rezident', 'necunoscut' pentru clasificarea persoanelor.",
+ "classPlaceholder": "Introduceți numele clasei...",
+ "errors": {
+ "nameRequired": "Numele modelului este obligatoriu",
+ "nameLength": "Numele modelului trebuie să aibă 64 de caractere sau mai puțin",
+ "nameOnlyNumbers": "Numele modelului nu poate conține doar cifre",
+ "classRequired": "Este necesară cel puțin 1 clasă",
+ "classesUnique": "Numele claselor trebuie să fie unice",
+ "stateRequiresTwoClasses": "Modelele de stare necesită cel puțin 2 clase",
+ "objectLabelRequired": "Vă rugăm să selectați o etichetă de obiect",
+ "objectTypeRequired": "Vă rugăm să selectați un tip de clasificare",
+ "noneNotAllowed": "Clasa 'niciuna' nu este permisă"
+ },
+ "states": "Stări"
+ },
+ "step2": {
+ "description": "Selectați camerele și definiți zona de monitorizat pentru fiecare cameră. Modelul va clasifica starea acestor zone.",
+ "cameras": "Camere",
+ "selectCamera": "Selectează camera",
+ "noCameras": "Apasă pe + pentru a adăuga camere",
+ "selectCameraPrompt": "Selectați o cameră din listă pentru a defini aria sa de monitorizare"
+ },
+ "step3": {
+ "selectImagesPrompt": "Selectați toate imaginile cu: {{className}}",
+ "selectImagesDescription": "Apăsați pe imagini pentru a le selecta. Apăsați pe Continuare când ați terminat cu această clasă.",
+ "generating": {
+ "title": "Generare imagini de exemplu",
+ "description": "Frigate preia imagini reprezentative din înregistrările tale. Aceasta poate dura câteva momente..."
+ },
+ "training": {
+ "title": "Antrenare model",
+ "description": "Modelul tău este antrenat în fundal. Închide această fereastră și modelul va începe să ruleze imediat ce antrenamentul este finalizat."
+ },
+ "retryGenerate": "Reîncearcă generarea",
+ "noImages": "Nu s-au generat imagini de exemplu",
+ "classifying": "Clasificare și antrenare...",
+ "trainingStarted": "Antrenamentul a început cu succes",
+ "errors": {
+ "noCameras": "Nu există camere configurate",
+ "noObjectLabel": "Nu a fost selectată nicio etichetă de obiect",
+ "generateFailed": "Generarea exemplelor a eșuat: {{error}}",
+ "generationFailed": "Generarea a eșuat. Vă rugăm să încercați din nou.",
+ "classifyFailed": "Clasificarea imaginilor a eșuat: {{error}}"
+ },
+ "generateSuccess": "Imaginile de exemplu au fost generate cu succes",
+ "allImagesRequired_one": "Te rog să clasifici toate imaginile. {{count}} imagine rămasă.",
+ "allImagesRequired_few": "Te rog să clasifici toate imaginile. {{count}} imagini rămase.",
+ "allImagesRequired_other": "Te rog să clasifici toate imaginile. {{count}} de imagini rămase.",
+ "modelCreated": "Modelul a fost creat cu succes. Folosește vizualizarea Clasificări recente pentru a adăuga imagini pentru stările lipsă, apoi antrenează modelul.",
+ "missingStatesWarning": {
+ "title": "Exemple de stări lipsă",
+ "description": "Este recomandat să alegi exemple pentru toate stările pentru rezultate optime. Poți continua fără a selecta toate stările, dar modelul nu va fi antrenat până când toate stările nu au imagini. După continuare, folosește vizualizarea Clasificări recente pentru a clasifica imagini pentru stările lipsă, apoi antrenează modelul."
+ }
+ }
+ },
+ "deleteModel": {
+ "title": "Șterge modelul de clasificare",
+ "single": "Sigur doriți să ștergeți {{name}}? Aceasta va șterge permanent toate datele asociate, inclusiv imaginile și datele de antrenament. Această acțiune nu poate fi anulată.",
+ "desc_one": "Sigur doriți să ștergeți {{count}} model? Aceasta va șterge permanent toate datele asociate, inclusiv imaginile și datele de antrenament. Această acțiune nu poate fi anulată.",
+ "desc_few": "Sigur doriți să ștergeți {{count}} modele? Aceasta va șterge permanent toate datele asociate, inclusiv imaginile și datele de antrenament. Această acțiune nu poate fi anulată.",
+ "desc_other": "Sigur doriți să ștergeți {{count}} de modele? Aceasta va șterge permanent toate datele asociate, inclusiv imaginile și datele de antrenament. Această acțiune nu poate fi anulată."
+ },
+ "menu": {
+ "objects": "Obiecte",
+ "states": "Stări"
+ },
+ "details": {
+ "scoreInfo": "Scorul reprezintă încrederea medie a clasificării pentru toate detecțiile acestui obiect.",
+ "none": "Niciuna",
+ "unknown": "Necunoscut"
+ },
+ "edit": {
+ "title": "Editează modelul de clasificare",
+ "descriptionState": "Editează clasele pentru acest model de clasificare a stării. Modificările vor necesita reantrenarea modelului.",
+ "descriptionObject": "Editează tipul de obiect și tipul de clasificare pentru acest model de clasificare a obiectelor.",
+ "stateClassesInfo": "Notă: Modificarea claselor de stare necesită reantrenarea modelului cu clasele actualizate."
+ },
+ "tooltip": {
+ "trainingInProgress": "Modelul este în curs de antrenare",
+ "noNewImages": "Nu există imagini noi pentru antrenare. Clasifică mai întâi mai multe imagini în setul de date.",
+ "modelNotReady": "Modelul nu este pregătit pentru antrenare",
+ "noChanges": "Nicio modificare a setului de date de la ultima antrenare."
+ },
+ "none": "Niciuna"
+}
diff --git a/web/public/locales/ro/views/configEditor.json b/web/public/locales/ro/views/configEditor.json
index cecfb7cc73..21f7d4769d 100644
--- a/web/public/locales/ro/views/configEditor.json
+++ b/web/public/locales/ro/views/configEditor.json
@@ -1,5 +1,5 @@
{
- "documentTitle": "Editor configurație - Frigate",
+ "documentTitle": "Editor de configurație - Frigate",
"configEditor": "Editor de configurație",
"copyConfig": "Copiază setările",
"saveAndRestart": "Salvează și repornește",
@@ -12,5 +12,7 @@
"savingError": "Eroare la salvarea setărilor"
}
},
- "confirm": "Ieși fără să salvezi?"
+ "confirm": "Ieși fără să salvezi?",
+ "safeConfigEditor": "Editor de configurație (mod de siguranță)",
+ "safeModeDescription": "Frigate este în modul de siguranță din cauza unei erori de validare a configurației."
}
diff --git a/web/public/locales/ro/views/events.json b/web/public/locales/ro/views/events.json
index 30ae1ecb1a..6a045d1f58 100644
--- a/web/public/locales/ro/views/events.json
+++ b/web/public/locales/ro/views/events.json
@@ -34,5 +34,30 @@
"detections": "Detecții",
"detected": "detectat",
"selected_one": "{{count}} selectate",
- "selected_other": "{{count}} selectate"
+ "selected_other": "{{count}} selectate",
+ "suspiciousActivity": "Activitate suspectă",
+ "threateningActivity": "Activitate amenințătoare",
+ "detail": {
+ "noDataFound": "Nicio dată detaliată de revizuit",
+ "aria": "Comută vizualizarea detaliată",
+ "trackedObject_one": "{{count}} obiect",
+ "trackedObject_other": "{{count}} obiecte",
+ "noObjectDetailData": "Nicio dată de detaliu obiect disponibilă.",
+ "label": "Detaliu",
+ "settings": "Setări vizualizare detaliată",
+ "alwaysExpandActive": {
+ "title": "Extinde întotdeauna activul",
+ "desc": "Extinde întotdeauna detaliile obiectului elementului activ de revizuire, atunci când sunt disponibile."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Punct urmărit",
+ "clickToSeek": "Apasă pentru a naviga la acest moment"
+ },
+ "zoomIn": "Mărește",
+ "zoomOut": "Micșorează",
+ "normalActivity": "Normal",
+ "needsReview": "Necesită revizuire",
+ "securityConcern": "Potențială problemă de securitate",
+ "select_all": "Toate"
}
diff --git a/web/public/locales/ro/views/explore.json b/web/public/locales/ro/views/explore.json
index f9b4b0867f..fa1b228ad8 100644
--- a/web/public/locales/ro/views/explore.json
+++ b/web/public/locales/ro/views/explore.json
@@ -33,7 +33,9 @@
"details": "detalii",
"snapshot": "snapshot",
"video": "video",
- "object_lifecycle": "ciclul de viață al obiectului"
+ "object_lifecycle": "ciclul de viață al obiectului",
+ "thumbnail": "miniatură",
+ "tracking_details": "detalii de urmărire"
},
"objectLifecycle": {
"lifecycleItemDesc": {
@@ -70,7 +72,7 @@
"offset": {
"label": "Compensare adnotare",
"documentation": "Citește documentația ",
- "desc": "Aceste date provin din fluxul de detecție al camerei tale, dar sunt suprapuse pe imaginile din fluxul de înregistrare. Este puțin probabil ca cele două fluxuri să fie perfect sincronizate. Ca urmare, caseta de delimitare și materialul video nu se vor potrivi perfect. Totuși, câmpul annotation_offset poate fi folosit pentru a ajusta acest lucru.",
+ "desc": "Aceste date provin din stream-ul de detecție al camerei tale, dar sunt suprapuse pe imaginile din stream-ul de înregistrare. Este puțin probabil ca cele două stream-uri să fie perfect sincronizate. Ca urmare, caseta de delimitare și materialul video nu se vor potrivi perfect. Totuși, câmpul annotation_offset poate fi folosit pentru a ajusta acest lucru.",
"millisecondsToOffset": "Millisecondele cu care să compensezi adnotările de detecție. Implicit: 0",
"tips": "SFAT: Imaginează-ți că există un clip de eveniment cu o persoană care merge de la stânga la dreapta. Dacă caseta de delimitare de pe linia temporală a evenimentului este constant în partea stângă a persoanei, atunci valoarea ar trebui să fie scăzută. În mod similar, dacă persoana merge de la stânga la dreapta și caseta de delimitare este constant înaintea persoanei, atunci valoarea ar trebui să fie crescută.",
"toast": {
@@ -103,12 +105,16 @@
"success": {
"regenerate": "O nouă descriere a fost solicitată de la {{provider}}. În funcție de viteza furnizorului tău, regenerarea noii descrieri poate dura ceva timp.",
"updatedSublabel": "Subeticheta a fost actualizată cu succes.",
- "updatedLPR": "Plăcuța de înmatriculare a fost actualizată cu succes."
+ "updatedLPR": "Plăcuța de înmatriculare a fost actualizată cu succes.",
+ "audioTranscription": "Transcrierea audio a fost solicitată cu succes. În funcție de viteza serverului dumneavoastră Frigate, transcrierea poate dura ceva timp până la finalizare.",
+ "updatedAttributes": "Atributele au fost actualizate cu succes."
},
"error": {
"updatedSublabelFailed": "Nu s-a putut actualiza sub-etichetarea: {{errorMessage}}",
"updatedLPRFailed": "Plăcuța de înmatriculare nu a putut fi actualizată: {{errorMessage}}",
- "regenerate": "Eroare la apelarea {{provider}} pentru o nouă descriere: {{errorMessage}}"
+ "regenerate": "Eroare la apelarea {{provider}} pentru o nouă descriere: {{errorMessage}}",
+ "audioTranscription": "Solicitarea transcrierii audio a eșuat: {{errorMessage}}",
+ "updatedAttributesFailed": "Actualizarea atributelor a eșuat: {{errorMessage}}"
}
}
},
@@ -153,7 +159,15 @@
},
"expandRegenerationMenu": "Extinde meniul de regenerare",
"regenerateFromSnapshot": "Regenerează din snapshot",
- "regenerateFromThumbnails": "Regenerează din miniaturi"
+ "regenerateFromThumbnails": "Regenerează din miniaturi",
+ "score": {
+ "label": "Scor"
+ },
+ "editAttributes": {
+ "title": "Editează atribute",
+ "desc": "Selectează atributele de clasificare pentru acest {{label}}"
+ },
+ "attributes": "Atribute de clasificare"
},
"exploreMore": "Explorează mai multe obiecte cu {{label}}",
"trackedObjectDetails": "Detalii despre obiectul urmărit",
@@ -187,12 +201,34 @@
"submitToPlus": {
"label": "Trimite către Frigate+",
"aria": "Trimite către Frigate Plus"
+ },
+ "addTrigger": {
+ "label": "Adaugă declanșator",
+ "aria": "Adaugă un declanșator pentru acest obiect urmărit"
+ },
+ "audioTranscription": {
+ "label": "Transcrie",
+ "aria": "Solicită transcrierea audio"
+ },
+ "viewTrackingDetails": {
+ "label": "Vizualizați detaliile de urmărire",
+ "aria": "Vizualizați detaliile de urmărire"
+ },
+ "showObjectDetails": {
+ "label": "Afișează traseul obiectului"
+ },
+ "hideObjectDetails": {
+ "label": "Ascunde traseul obiectului"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Descarcă un snapshot curat",
+ "aria": "Descarcă snapshot curat"
}
},
"dialog": {
"confirmDelete": {
"title": "Confirmă ștergerea",
- "desc": "Ștergerea acestui obiect urmărit elimină instantaneul, orice încorporări salvate și orice intrări asociate ciclului de viață al obiectului. Materialul video înregistrat al acestui obiect urmărit în vizualizarea Istoric NU va fi șters.
Ești sigur că vrei să continui?"
+ "desc": "Ștergerea acestui obiect urmărit elimină snapshot-ul, orice încorporări salvate și orice intrări asociate detaliilor de urmărire. Materialul video înregistrat al acestui obiect urmărit în vizualizarea Istoric NU va fi șters.
Ești sigur că vrei să continui?"
}
},
"noTrackedObjects": "Nu au fost găsite obiecte urmărite",
@@ -204,6 +240,63 @@
"error": "Ștergerea obiectului urmărit a eșuat: {{errorMessage}}"
}
},
- "tooltip": "Potrivire {{type}} cu {{confidence}}%"
+ "tooltip": "Potrivire {{type}} cu {{confidence}}%",
+ "previousTrackedObject": "Obiectul urmărit anterior",
+ "nextTrackedObject": "Următorul obiect urmărit"
+ },
+ "aiAnalysis": {
+ "title": "Analiză AI"
+ },
+ "concerns": {
+ "label": "Îngrijorări"
+ },
+ "trackingDetails": {
+ "title": "Detalii de Urmărire",
+ "noImageFound": "Nu s-a găsit nicio imagine pentru acest marcaj de timp.",
+ "createObjectMask": "Creează Masca Obiectului",
+ "adjustAnnotationSettings": "Ajustează Setările de anotare",
+ "scrollViewTips": "Apasă pentru a vizualiza momentele semnificative din ciclul de viață al acestui obiect.",
+ "autoTrackingTips": "Pozițiile casetelor de delimitare vor fi inexacte pentru camerele cu urmărire automată.",
+ "count": "{{first}} din {{second}}",
+ "trackedPoint": "Punct Urmărit",
+ "lifecycleItemDesc": {
+ "visible": "detectat {{label}}",
+ "entered_zone": "{{label}} a intrat în {{zones}}",
+ "active": "{{label}} a devenit activ",
+ "stationary": "{{label}} a devenit staționar",
+ "attribute": {
+ "faceOrLicense_plate": "{{attribute}} detectat pentru {{label}}",
+ "other": "{{label}} recunoscut ca {{attribute}}"
+ },
+ "gone": "{{label}} a plecat",
+ "heard": "{{label}} auzit",
+ "external": "{{label}} detectat",
+ "header": {
+ "zones": "Zone",
+ "ratio": "Raport",
+ "area": "Aria",
+ "score": "Scor"
+ }
+ },
+ "annotationSettings": {
+ "title": "Setări de adnotare",
+ "showAllZones": {
+ "title": "Afișează toate",
+ "desc": "Afișează întotdeauna zonele pe cadrele în care obiectele au intrat într-o zonă."
+ },
+ "offset": {
+ "label": "Compensare adnotare",
+ "desc": "Aceste date provin din stream-ul de detectare al camerei tale, dar sunt suprapuse pe imaginile din stream-ul de înregistrare. Este puțin probabil ca cele două stream-uri să fie perfect sincronizate. Drept urmare, caseta delimitatoare și materialul video nu se vor alinia perfect. Poți folosi această setare pentru a decală adnotările înainte sau înapoi în timp, pentru a le alinia mai bine cu materialul înregistrat.",
+ "millisecondsToOffset": "Millisecunde pentru a decalca adnotările de detectare. Implicit: 0",
+ "tips": "Reduceți valoarea dacă redarea video este înaintea casetelor și punctelor de traseu și creșteți valoarea dacă redarea video este în urma acestora. Această valoare poate fi negativă.",
+ "toast": {
+ "success": "Decalajul de adnotare pentru {{camera}} a fost salvat în fișierul de configurare."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Slide-ul anterior",
+ "next": "Slide-ul următor"
+ }
}
}
diff --git a/web/public/locales/ro/views/exports.json b/web/public/locales/ro/views/exports.json
index 786b07150e..fa90774599 100644
--- a/web/public/locales/ro/views/exports.json
+++ b/web/public/locales/ro/views/exports.json
@@ -13,5 +13,11 @@
"error": {
"renameExportFailed": "Eroare redenumire export: {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "shareExport": "Partajează exportul",
+ "downloadVideo": "Descarcă videoclipul",
+ "editName": "Editează numele",
+ "deleteExport": "Șterge exportul"
}
}
diff --git a/web/public/locales/ro/views/faceLibrary.json b/web/public/locales/ro/views/faceLibrary.json
index da9261d07b..360143d5d4 100644
--- a/web/public/locales/ro/views/faceLibrary.json
+++ b/web/public/locales/ro/views/faceLibrary.json
@@ -1,8 +1,8 @@
{
"description": {
- "addFace": "Parcurge adăugarea unei colecții noi la biblioteca de fețe.",
+ "addFace": "Adaugă o colecție nouă în Biblioteca de fețe încărcând prima ta imagine.",
"placeholder": "Introduceti un nume pentru aceasta colectie",
- "invalidName": "Nume invalid. Numele poate conține doar litere, cifre, spații, apostrofuri, liniuțe de subliniere și cratime."
+ "invalidName": "Nume invalid. Numele pot include doar litere, cifre, spații, apostrofuri, underscore-uri și liniuțe."
},
"details": {
"person": "Persoană",
@@ -20,15 +20,16 @@
"createFaceLibrary": {
"desc": "Creează o colecție nouă",
"title": "Creează colecție",
- "nextSteps": "Pentru a construi o bază solidă:
Folosește fila „antrenare” pentru a selecta și antrena pe imagini pentru fiecare persoană detectată.
Concentrează-te pe imagini frontale pentru cele mai bune rezultate; evită imaginile de antrenament care surprind fețe din unghiuri laterale.
",
+ "nextSteps": "Pentru a construi o bază solidă:
Folosește fila „Recunoașteri Recente” pentru a selecta și antrena pe imagini pentru fiecare persoană detectată.
Concentrează-te pe imagini frontale pentru cele mai bune rezultate; evită imaginile de antrenament care surprind fețe din unghiuri laterale.
",
"new": "Crează o față nouă"
},
"collections": "Colecții",
"documentTitle": "Bibliotecă fețe - Frigate",
"train": {
"empty": "Nu există încercări recente de recunoaștere facială",
- "title": "Antrenează",
- "aria": "Selectează antrenarea"
+ "title": "Recunoașteri Recente",
+ "aria": "Selectează Recunoașteri Recente",
+ "titleShort": "Recent"
},
"steps": {
"description": {
@@ -69,7 +70,7 @@
"deletedName_other": "{{count}} de fețe au fost șterse cu succes.",
"trainedFace": "Față antrenată cu succes.",
"renamedFace": "Fața a fost redenumită cu succes ca {{name}}",
- "updatedFaceScore": "Scorul feței a fost actualizat cu succes.",
+ "updatedFaceScore": "Scorul feței a fost actualizat cu succes la {{name}} ({{score}}).",
"deletedFace_one": "{{count}} față a fost ștersă cu succes.",
"deletedFace_few": "{{count}} fețe au fost șterse cu succes.",
"deletedFace_other": "{{count}} de fețe au fost șterse cu succes.",
@@ -88,7 +89,7 @@
},
"imageEntry": {
"dropActive": "Trage imaginea aici…",
- "dropInstructions": "Trage și plasează o imagine aici sau fă clic pentru a selecta",
+ "dropInstructions": "Trage și plasează sau lipește o imagine aici sau fă clic pentru a selecta",
"maxSize": "Dimensiunea maximă: {{size}}MB",
"validation": {
"selectImage": "Te rog să selectezi un fișier imagine."
diff --git a/web/public/locales/ro/views/live.json b/web/public/locales/ro/views/live.json
index 39ce37747b..7ddaa53d8c 100644
--- a/web/public/locales/ro/views/live.json
+++ b/web/public/locales/ro/views/live.json
@@ -17,9 +17,9 @@
},
"move": {
"clickMove": {
- "label": "Fă click în cadrul imaginii pentru a centra camera",
- "enable": "Activează clic pentru a muta",
- "disable": "Dezactivează clic pentru a muta"
+ "label": "Apasă în cadrul imaginii pentru a centra camera",
+ "enable": "Activează mutarea prin clic",
+ "disable": "Dezactivează mutarea prin clic"
},
"left": {
"label": "Mișcă camera PTZ spre stânga"
@@ -36,10 +36,18 @@
},
"frame": {
"center": {
- "label": "Fă clic în cadru pentru a centra camera PTZ"
+ "label": "Apasă în cadru pentru a centra camera PTZ"
}
},
- "presets": "Presetări cameră PTZ"
+ "presets": "Presetări cameră PTZ",
+ "focus": {
+ "in": {
+ "label": "Focalizează camera PTZ în interior"
+ },
+ "out": {
+ "label": "Focalizează camera PTZ în exterior"
+ }
+ }
},
"cameraAudio": {
"enable": "Activează sunetul camerei",
@@ -78,8 +86,8 @@
"disable": "Ascunde statisticile de streaming"
},
"manualRecording": {
- "title": "Înregistrare la cerere",
- "tips": "Pornește un eveniment manual bazat pe setările de păstrare a înregistrărilor pentru această cameră.",
+ "title": "La-cerere",
+ "tips": "Descarcă un snapshot instant sau pornește un eveniment manual pe baza setărilor de reținere a înregistrărilor acestei camere.",
"playInBackground": {
"label": "Redă în fundal",
"desc": "Activează această opțiune pentru a continua redarea streaming-ului chiar și atunci când playerul este ascuns."
@@ -92,7 +100,7 @@
"start": "Pornește înregistrarea la cerere",
"started": "Înregistrare la cerere pornită manual.",
"failedToStart": "Nu s-a putut porni înregistrarea manuală la cerere.",
- "recordDisabledTips": "Deoarece înregistrarea este dezactivată sau restricționată în configurația pentru această cameră, va fi salvată doar o captură de ecran.",
+ "recordDisabledTips": "Deoarece înregistrarea este dezactivată sau restricționată în configurația pentru această cameră, doar un snapshot va fi salvat.",
"end": "Oprește înregistrarea la cerere",
"ended": "Înregistrarea manuală la cerere s-a încheiat.",
"failedToEnd": "Nu s-a reușit încheierea înregistrării manuale la cerere."
@@ -126,6 +134,9 @@
"playInBackground": {
"label": "Redare în fundal",
"tips": "Activează această opțiune pentru a continua streaming-ul când player-ul este ascuns."
+ },
+ "debug": {
+ "picker": "Selectarea stream-ului nu este disponibilă în modul de depanare. Vizualizarea de depanare folosește întotdeauna stream-ul atribuit rolului de detectare."
}
},
"cameraSettings": {
@@ -135,7 +146,8 @@
"recording": "Înregistrare",
"snapshots": "Snapshot-uri",
"audioDetection": "Detectare sunet",
- "autotracking": "Urmărire automată"
+ "autotracking": "Urmărire automată",
+ "transcription": "Transcriere audio"
},
"history": {
"label": "Afișează înregistrările istorice"
@@ -154,5 +166,24 @@
"label": "Editează grupul de camere"
},
"exitEdit": "Ieși din modul de editare"
+ },
+ "transcription": {
+ "enable": "Activează transcrierea audio în timp real",
+ "disable": "Dezactivează transcrierea audio în timp real"
+ },
+ "snapshot": {
+ "takeSnapshot": "Descarcă snapshot instant",
+ "noVideoSource": "Nicio sursă video disponibilă pentru snapshot.",
+ "captureFailed": "Eșec la capturarea snapshot-ului.",
+ "downloadStarted": "Descărcarea snapshot-ului a început."
+ },
+ "noCameras": {
+ "title": "Nicio Cameră Configurată",
+ "description": "Începe prin a conecta o cameră la Frigate.",
+ "buttonText": "Adaugă cameră",
+ "restricted": {
+ "title": "Nicio Cameră Disponibilă",
+ "description": "Nu aveți permisiunea de a vizualiza camere în acest grup."
+ }
}
}
diff --git a/web/public/locales/ro/views/search.json b/web/public/locales/ro/views/search.json
index 9e80fdc3b8..5c5f391e85 100644
--- a/web/public/locales/ro/views/search.json
+++ b/web/public/locales/ro/views/search.json
@@ -26,14 +26,15 @@
"max_speed": "Viteza maximă",
"recognized_license_plate": "Număr de înmatriculare recunoscut",
"has_clip": "Are videoclip",
- "has_snapshot": "Are snapshot"
+ "has_snapshot": "Are snapshot",
+ "attributes": "Atribute"
},
"tips": {
"desc": {
"step1": "Tastează un nume de filtru urmat de două puncte (ex. „camere:” ).",
"step3": "Folosește mai multe filtre adăugându-le unul după altul, separate prin spațiu.",
"step4": "Filtrele de dată (înainte: și după:) folosesc formatul {{DateFormat}}.",
- "step6": "Elimină filtrele făcând clic pe „X”-ul de lângă ele.",
+ "step6": "Elimină filtrele apăsând pe „X”-ul de lângă ele.",
"exampleLabel": "Exemplu:",
"step5": "Filtrul pentru intervalul de timp folosește formatul {{exampleTime}}.",
"step2": "Selectează o valoare din sugestii sau tastează propria valoare.",
diff --git a/web/public/locales/ro/views/settings.json b/web/public/locales/ro/views/settings.json
index fad64bd918..a85f852cdd 100644
--- a/web/public/locales/ro/views/settings.json
+++ b/web/public/locales/ro/views/settings.json
@@ -8,9 +8,11 @@
"notifications": "Setări notificări - Frigate",
"motionTuner": "Ajustare mișcare - Frigate",
"object": "Depanare - Frigate",
- "general": "Setări generale - Frigate",
+ "general": "Setări interfață - Frigate",
"frigatePlus": "Setări Frigate+ - Frigate",
- "enrichments": "Setări de Îmbogățiri - Frigate"
+ "enrichments": "Setări de Îmbogățiri - Frigate",
+ "cameraManagement": "Gestionează Camerele - Frigate",
+ "cameraReview": "Setări Revizuire Cameră - Frigate"
},
"menu": {
"ui": "Interfață utilizator",
@@ -21,7 +23,11 @@
"debug": "Depanare",
"users": "Utilizatori",
"notifications": "Notificări",
- "frigateplus": "Frigate+"
+ "frigateplus": "Frigate+",
+ "triggers": "Declanșatoare",
+ "roles": "Roluri",
+ "cameraManagement": "Administrare",
+ "cameraReview": "Revizuire"
},
"dialog": {
"unsavedChanges": {
@@ -34,7 +40,7 @@
"noCamera": "Nicio cameră"
},
"general": {
- "title": "Setări generale",
+ "title": "Setări interfață",
"liveDashboard": {
"title": "Tabloul de bord live",
"automaticLiveView": {
@@ -44,6 +50,14 @@
"playAlertVideos": {
"label": "Redă videoclipurile de alertă",
"desc": "În mod implicit, alertele recente din panoul Live se redau ca videoclipuri mici, ce ruleaza repetat. Dezactivează această opțiune pentru a afișa doar o imagine statică a alertelor recente pe acest dispozitiv/browser."
+ },
+ "displayCameraNames": {
+ "label": "Afișează întotdeauna numele camerelor",
+ "desc": "Afișează întotdeauna numele camerelor într-un indicator în tabloul de bord cu vizualizare live pe mai multe camere."
+ },
+ "liveFallbackTimeout": {
+ "label": "Timp de expirare pentru redarea live",
+ "desc": "Când stream-ul live de înaltă calitate al unei camere nu este disponibil, revino la modul cu lățime de bandă scăzută după acest număr de secunde. Implicit: 3."
}
},
"storedLayouts": {
@@ -177,6 +191,44 @@
"selectAlertsZones": "Selectează zone pentru alerte",
"noDefinedZones": "Nu sunt definite zone pentru această cameră.",
"objectAlertsTips": "Toate obiectele {{alertsLabels}} de pe {{cameraName}} vor fi afișate ca alerte."
+ },
+ "object_descriptions": {
+ "title": "Descrieri de obiecte generate de AI",
+ "desc": "Activează/dezactivează temporar descrierile de obiecte generate de AI pentru această cameră. Când această funcție este dezactivată, descrierile generate de AI nu vor fi solicitate pentru obiectele urmărite pe această cameră."
+ },
+ "review_descriptions": {
+ "title": "Descrieri de revizuiri generate de AI",
+ "desc": "Activează/dezactivează temporar descrierile recenziilor generate de AI pentru această cameră. Când această funcție este dezactivată, descrierile generate de AI nu vor fi solicitate pentru elementele de recenzie de pe această cameră."
+ },
+ "addCamera": "Adaugă cameră nouă",
+ "editCamera": "Editează camera:",
+ "selectCamera": "Selectează camera",
+ "backToSettings": "Înapoi la setările camerei",
+ "cameraConfig": {
+ "add": "Adaugă cameră",
+ "edit": "Editează camera",
+ "description": "Configurează setările camerei, inclusiv intrările de flux și rolurile.",
+ "name": "Numele camerei",
+ "nameRequired": "Numele camerei este obligatoriu",
+ "nameInvalid": "Numele camerei trebuie să conțină doar litere, cifre, underscore-uri sau cratime",
+ "namePlaceholder": "de ex.: usa_principala",
+ "enabled": "Activat",
+ "ffmpeg": {
+ "inputs": "Stream-uri de intrare",
+ "path": "Cale stream",
+ "pathRequired": "Calea stream-ului este obligatorie",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Roluri",
+ "rolesRequired": "Este necesar cel puțin un rol",
+ "rolesUnique": "Fiecare rol (audio, detectare, înregistrare) poate fi atribuit doar unui singur stream",
+ "addInput": "Adaugă stream de intrare",
+ "removeInput": "Elimină stream-ul de intrare",
+ "inputsRequired": "Este necesar cel puțin un stream de intrare"
+ },
+ "toast": {
+ "success": "Camera {{cameraName}} a fost salvată cu succes"
+ },
+ "nameLength": "Numele camerei trebuie să aibă mai puțin de 24 de caractere."
}
},
"masksAndZones": {
@@ -206,7 +258,7 @@
"name": {
"inputPlaceHolder": "Introdu un nume…",
"title": "Nume",
- "tips": "Numele trebuie să aibă cel puțin 2 caractere și nu trebuie să fie identic cu numele unei camere sau al unei alte zone existente."
+ "tips": "Numele trebuie să aibă cel puțin 2 caractere, să conțină cel puțin o literă și să nu fie numele unei camere sau al unei alte zone din această cameră."
},
"inertia": {
"title": "Inerție",
@@ -223,9 +275,9 @@
"desc": "Specifică o viteză minimă pe care trebuie să o aibă obiectele pentru a fi considerate în această zonă."
},
"documentTitle": "Editează zone - Frigate",
- "clickDrawPolygon": "Click pentru a desena un poligon pe imagine.",
+ "clickDrawPolygon": "Apasă pentru a desena un poligon pe imagine.",
"toast": {
- "success": "Zona ({{zoneName}}) a fost salvată. Repornește Frigate pentru a aplica modificările."
+ "success": "Zona ({{zoneName}}) a fost salvată."
},
"label": "Zone",
"objects": {
@@ -238,7 +290,7 @@
"point_one": "{{count}} punct",
"point_few": "{{count}} puncte",
"point_other": "{{count}} de puncte",
- "clickDrawPolygon": "Fă click pentru a desena un poligon pe imagine.",
+ "clickDrawPolygon": "Fă clic pentru a desena un poligon pe imagine.",
"label": "Măști de mișcare",
"documentTitle": "Editează masca de mișcare - Frigate",
"desc": {
@@ -253,8 +305,8 @@
},
"toast": {
"success": {
- "title": "{{polygonName}} a fost salvat. Repornește Frigate pentru a aplica modificările.",
- "noName": "Masca de mișcare a fost salvată.Repornește Frigate pentru a aplica modificările."
+ "title": "{{polygonName}} a fost salvat.",
+ "noName": "Masca de mișcare a fost salvată."
}
},
"polygonAreaTooLarge": {
@@ -282,11 +334,11 @@
},
"toast": {
"success": {
- "noName": "Masca de obiecte a fost salvată. Repornește Frigate pentru a aplica modificările.",
- "title": "{{polygonName}} a fost salvat. Repornește Frigate pentru a aplica modificările."
+ "noName": "Masca de obiecte a fost salvată.",
+ "title": "{{polygonName}} a fost salvat."
}
},
- "clickDrawPolygon": "Fă click pentru a desena un poligon pe imagine.",
+ "clickDrawPolygon": "Fă clic pentru a desena un poligon pe imagine.",
"context": "Măștile de filtrare a obiectelor sunt folosite pentru a elimina falsele pozitive pentru un anumit tip de obiect, în funcție de locația acestuia."
},
"restart_required": "Repornire necesară (măști/zone modificate)",
@@ -310,7 +362,8 @@
"mustNotContainPeriod": "Numele zonei nu trebuie să conțină puncte.",
"hasIllegalCharacter": "Numele zonei conține caractere nepermise.",
"mustNotBeSameWithCamera": "Numele zonei nu trebuie să fie identic cu numele camerei.",
- "alreadyExists": "O zonă cu acest nume există deja pentru această cameră."
+ "alreadyExists": "O zonă cu acest nume există deja pentru această cameră.",
+ "mustHaveAtLeastOneLetter": "Numele zonei trebuie să aibă cel puțin o literă."
}
},
"polygonDrawing": {
@@ -399,7 +452,20 @@
"zones": {
"title": "Zone",
"desc": "Afișează conturul oricăror zone definite"
- }
+ },
+ "paths": {
+ "title": "Căi",
+ "desc": "Afișează punctele semnificative ale traseului obiectului urmărit",
+ "tips": "
Căi
Liniile și cercurile vor indica punctele semnificative prin care obiectul urmărit s-a deplasat pe parcursul ciclului său de viață.
"
+ },
+ "audio": {
+ "title": "Audio",
+ "noAudioDetections": "Nicio detecție audio",
+ "score": "scor",
+ "currentRMS": "RMS curent",
+ "currentdbFS": "dbFS curent"
+ },
+ "openCameraWebUI": "Deschide interfața web pentru {{camera}}"
},
"users": {
"dialog": {
@@ -415,7 +481,8 @@
"admin": "Administrator",
"adminDesc": "Acces complet la toate funcțiile.",
"viewer": "Vizualizator",
- "viewerDesc": "Limitat doar la tablourile de bord Live, Revizuire, Explorare și Exporturi."
+ "viewerDesc": "Limitat doar la tablourile de bord Live, Revizuire, Explorare și Exporturi.",
+ "customDesc": "Rol personalizat cu acces specific la cameră."
},
"select": "Selectează un rol",
"title": "Schimbă rolul utilizatorului"
@@ -436,7 +503,16 @@
},
"title": "Parolă",
"match": "Parolele se potrivesc",
- "notMatch": "Parolele nu se potrivesc"
+ "notMatch": "Parolele nu se potrivesc",
+ "show": "Afișează parola",
+ "hide": "Ascunde parola",
+ "requirements": {
+ "title": "Cerințe parolă:",
+ "length": "Cel puțin 8 caracter",
+ "uppercase": "Cel puțin o literă majusculă",
+ "digit": "Cel puțin o cifră",
+ "special": "Cel puțin un caracter special (!@#$%^&*(),.?\":{}|<>)"
+ }
},
"passwordIsRequired": "Este nevoie de parolă",
"user": {
@@ -451,7 +527,11 @@
"placeholder": "Re-introdu parola nouă"
}
},
- "usernameIsRequired": "Este nevoie de numele de utilizator"
+ "usernameIsRequired": "Este nevoie de numele de utilizator",
+ "currentPassword": {
+ "title": "Parola curentă",
+ "placeholder": "Introduceți parola curentă"
+ }
},
"createUser": {
"confirmPassword": "Te rog să confirmi parola",
@@ -464,7 +544,12 @@
"doNotMatch": "Parolele nu se potrivesc",
"updatePassword": "Actualizează parola pentru {{username}}",
"setPassword": "Schimbă parola",
- "desc": "Creează o parolă puternică pentru a securiza acest cont."
+ "desc": "Creează o parolă puternică pentru a securiza acest cont.",
+ "currentPasswordRequired": "Parola curentă este obligatorie",
+ "incorrectCurrentPassword": "Parola curentă incorectă",
+ "passwordVerificationFailed": "Nu s-a putut verifica parola",
+ "multiDeviceWarning": "Orice alte dispozitive pe care ești autentificat vor trebui să se autentifice din nou în termen de {{refresh_time}}.",
+ "multiDeviceAdmin": "De asemenea, poți forța toți utilizatorii să se reautentifice imediat prin rotirea secretului tău JWT."
}
},
"addUser": "Adaugă utilizator",
@@ -486,7 +571,7 @@
"deleteUserFailed": "Ștergerea utilizatorului a eșuat: {{errorMessage}}"
}
},
- "updatePassword": "Actualizează parola",
+ "updatePassword": "Resetează parola",
"title": "Utilizatori",
"table": {
"username": "Nume utilizator",
@@ -495,7 +580,7 @@
"noUsers": "Nu a fost găsit niciun utilizator.",
"changeRole": "Schimbă rolul utilizatorului",
"deleteUser": "Șterge utilizatorul",
- "password": "Parolă"
+ "password": "Resetează parola"
}
},
"notification": {
@@ -619,5 +704,547 @@
"success": "Setările de mișcare au fost salvate."
},
"title": "Reglaj detecție mișcare"
+ },
+ "triggers": {
+ "documentTitle": "Declanșatoare",
+ "management": {
+ "title": "Declanșatoare",
+ "desc": "Gestionează declanșatoarele pentru {{camera}}. Folosește tipul miniatură pentru a declanșa pe miniaturi similare cu obiectul urmărit selectat și tipul descriere pentru a declanșa pe descrieri similare textului pe care îl specifici."
+ },
+ "addTrigger": "Adaugă declanșator",
+ "table": {
+ "name": "Nume",
+ "type": "Tip",
+ "content": "Conținut",
+ "threshold": "Prag",
+ "actions": "Acțiuni",
+ "noTriggers": "Nu sunt configurate declanșatoare pentru această cameră.",
+ "edit": "Editează",
+ "deleteTrigger": "Elimină declanșatorul",
+ "lastTriggered": "Ultima declanșare"
+ },
+ "type": {
+ "thumbnail": "Miniatură",
+ "description": "Descriere"
+ },
+ "actions": {
+ "alert": "Marchează ca alertă",
+ "notification": "Trimite notificare",
+ "sub_label": "Adaugă subeticheta",
+ "attribute": "Adaugă atribut"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Crează declanșator",
+ "desc": "Creează un declanșator pentru camera {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Editează declanșatorul",
+ "desc": "Editează setările pentru declanșatorul de pe camera {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Elimină declanșatorul",
+ "desc": "Ești sigur că vrei să ștergi declanșatorul {{triggerName}}? Această acțiune nu poate fi anulată."
+ },
+ "form": {
+ "name": {
+ "title": "Nume",
+ "placeholder": "Denumește acest declanșator",
+ "error": {
+ "minLength": "Câmpul trebuie să aibă cel puțin 2 caractere.",
+ "invalidCharacters": "Câmpul poate conține doar litere, cifre, underscore-uri și cratime.",
+ "alreadyExists": "Un declanșator cu acest nume există deja pentru această cameră."
+ },
+ "description": "Introduceți un nume sau o descriere unică pentru a identifica acest declanșator"
+ },
+ "enabled": {
+ "description": "Activează sau dezactivează acest declanșator"
+ },
+ "type": {
+ "title": "Tip",
+ "placeholder": "Selectează tipul de declanșator",
+ "description": "Declanșează atunci când este detectată o descriere de obiect urmărit similară",
+ "thumbnail": "Declanșează atunci când este detectată o miniatură de obiect urmărit similară"
+ },
+ "content": {
+ "title": "Conținut",
+ "imagePlaceholder": "Selectează o miniatură",
+ "textPlaceholder": "Introdu conținutul textului",
+ "imageDesc": "Sunt afișate doar ultimele 100 de miniaturi. Dacă nu găsiți miniatura dorită, vă rugăm să verificați obiectele anterioare în Explorator și să configurați un declanșator din meniul de acolo.",
+ "textDesc": "Introduceți textul pentru a declanșa această acțiune atunci când este detectată o descriere de obiect urmărit similară.",
+ "error": {
+ "required": "Conținutul este obligatoriu."
+ }
+ },
+ "threshold": {
+ "title": "Prag",
+ "error": {
+ "min": "Pragul trebuie să fie cel puțin 0",
+ "max": "Pragul trebuie să fie cel mult 1"
+ },
+ "desc": "Setați pragul de similitudine pentru acest declanșator. Un prag mai mare înseamnă că este necesară o potrivire mai apropiată pentru declanșarea acestuia."
+ },
+ "actions": {
+ "title": "Acțiuni",
+ "desc": "În mod implicit, Frigate trimite un mesaj MQTT pentru toate declanșatoarele. Subetichetele adaugă numele declanșatorului la eticheta obiectului. Atributele sunt metadate căutabile, stocate separat în metadatele obiectului urmărit.",
+ "error": {
+ "min": "Trebuie selectată cel puțin o acțiune."
+ }
+ },
+ "friendly_name": {
+ "title": "Nume prietenos",
+ "placeholder": "Denumește sau descrie acest declanșator",
+ "description": "Un nume prietenos opțional sau un text descriptiv pentru acest declanșator."
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Declanșatorul {{name}} a fost creat cu succes.",
+ "updateTrigger": "Declanșatorul {{name}} a fost actualizat cu succes.",
+ "deleteTrigger": "Declanșatorul {{name}} a fost eliminat cu succes."
+ },
+ "error": {
+ "createTriggerFailed": "Crearea declanșatorului a eșuat: {{errorMessage}}",
+ "updateTriggerFailed": "Actualizarea declanșatorului a eșuat: {{errorMessage}}",
+ "deleteTriggerFailed": "Eliminarea declanșatorului a eșuat: {{errorMessage}}"
+ }
+ },
+ "semanticSearch": {
+ "title": "Căutarea semantică este dezactivată",
+ "desc": "Căutarea semantică trebuie să fie activată pentru a utiliza declanșatoarele."
+ },
+ "wizard": {
+ "title": "Creează declanșator",
+ "step1": {
+ "description": "Configurează setările de bază pentru declanșatorul tău."
+ },
+ "step2": {
+ "description": "Configurează conținutul care va declanșa această acțiune."
+ },
+ "step3": {
+ "description": "Configurează pragul și acțiunile pentru acest declanșator."
+ },
+ "steps": {
+ "nameAndType": "Nume și Tip",
+ "configureData": "Configurează datele",
+ "thresholdAndActions": "Prag și Acțiuni"
+ }
+ }
+ },
+ "roles": {
+ "management": {
+ "title": "Gestionare rol vizualizator",
+ "desc": "Gestionează rolurile personalizate de vizualizator și permisiunile lor de acces la cameră pentru această instanță Frigate."
+ },
+ "addRole": "Adaugă rol",
+ "table": {
+ "role": "Rol",
+ "cameras": "Camere",
+ "actions": "Acțiuni",
+ "noRoles": "Nu au fost găsite roluri personalizate.",
+ "editCameras": "Editează camerele",
+ "deleteRole": "Șterge rol"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Rolul {{role}} a fost creat cu succes",
+ "updateCameras": "Camerele au fost actualizate pentru rolul {{role}}",
+ "deleteRole": "Rolul {{role}} a fost șters cu succes",
+ "userRolesUpdated_one": "{{count}} utilizator atribuit acestui rol a fost actualizat la „vizualizator”, care are acces la toate camerele.",
+ "userRolesUpdated_few": "{{count}} utilizatori atribuiți acestui rol au fost actualizați la „vizualizatori”, care are acces la toate camerele.",
+ "userRolesUpdated_other": "{{count}} de utilizatori atribuiți acestui rol au fost actualizați la „vizualizatori”, care are acces la toate camerele."
+ },
+ "error": {
+ "createRoleFailed": "Crearea rolului a eșuat: {{errorMessage}}",
+ "updateCamerasFailed": "Actualizarea camerelor a eșuat: {{errorMessage}}",
+ "deleteRoleFailed": "Ștergerea rolului a eșuat: {{errorMessage}}",
+ "userUpdateFailed": "Actualizarea rolurilor utilizatorilor a eșuat: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Creează rol nou",
+ "desc": "Adaugă un rol nou și specifică permisiunile de acces la camere."
+ },
+ "editCameras": {
+ "title": "Editează camerele rolului",
+ "desc": "Actualizează accesul la camere pentru rolul {{role}}."
+ },
+ "deleteRole": {
+ "title": "Șterge rolul",
+ "desc": "Această acțiune nu poate fi anulată. Aceasta va șterge permanent rolul și va atribui orice utilizatori cu acest rol la rolul „vizualizator”, care va oferi acces vizualizator la toate camerele.",
+ "warn": "Ești sigur că vrei să ștergi {{role}}?",
+ "deleting": "Se șterge..."
+ },
+ "form": {
+ "role": {
+ "title": "Nume rol",
+ "placeholder": "Introduceți numele rolului",
+ "desc": "Sunt permise doar litere, cifre, puncte și linii de subliniere.",
+ "roleIsRequired": "Numele rolului este obligatoriu",
+ "roleOnlyInclude": "Numele rolului poate include doar litere, cifre, . sau _",
+ "roleExists": "Un rol cu acest nume există deja."
+ },
+ "cameras": {
+ "title": "Camere",
+ "desc": "Selectați camerele la care acest rol are acces. Este necesară cel puțin o cameră.",
+ "required": "Trebuie selectată cel puțin o cameră."
+ }
+ }
+ }
+ },
+ "cameraWizard": {
+ "title": "Adaugă cameră",
+ "description": "Urmează pașii de mai jos pentru a adăuga o cameră nouă la sistemul tău Frigate.",
+ "steps": {
+ "nameAndConnection": "Nume și Conexiune",
+ "streamConfiguration": "Configurare streaming",
+ "validationAndTesting": "Validare și Testare",
+ "probeOrSnapshot": "Sondează sau fă snapshot"
+ },
+ "save": {
+ "success": "Camera nouă {{cameraName}} a fost salvată cu succes.",
+ "failure": "Eroare la salvarea {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Rezoluție",
+ "video": "Video",
+ "audio": "Audio",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Te rog să furnizezi un URL de streaming valid",
+ "testFailed": "Testul de streaming a eșuat: {{error}}"
+ },
+ "step1": {
+ "description": "Introduceți detaliile camerei și alegeți să testați camera sau să selectați manual marca.",
+ "cameraName": "Nume cameră",
+ "cameraNamePlaceholder": "ex. usă_intrare sau Vedere Curte Spate",
+ "host": "Gazdă/Adresă IP",
+ "port": "Port",
+ "username": "Nume de utilizator",
+ "usernamePlaceholder": "Opțional",
+ "password": "Parolă",
+ "passwordPlaceholder": "Opțional",
+ "selectTransport": "Selectează protocolul de transport",
+ "cameraBrand": "Brand cameră",
+ "selectBrand": "Selectează marca camerei pentru șablonul de URL",
+ "customUrl": "URL Streaming Personalizat",
+ "brandInformation": "Informații despre brand",
+ "brandUrlFormat": "Pentru camere cu formatul URL RTSP ca: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://utilizator:parolă@gazdă:port/cale",
+ "testConnection": "Testează Conexiunea",
+ "testSuccess": "Testul de conexiune a reușit!",
+ "testFailed": "Testul de conexiune a eșuat. Te rog să verifici datele introduse și să încerci din nou.",
+ "streamDetails": "Detalii stream",
+ "warnings": {
+ "noSnapshot": "Nu se poate obține un snapshot de pe stream-ul configurat."
+ },
+ "errors": {
+ "brandOrCustomUrlRequired": "Ori selectează un brand de cameră cu adresă gazdă/IP, ori alege „Alta” cu un URL personalizat",
+ "nameRequired": "Numele camerei este obligatoriu",
+ "nameLength": "Numele camerei trebuie să aibă 64 de caractere sau mai puțin",
+ "invalidCharacters": "Numele camerei conține caractere nevalide",
+ "nameExists": "Numele camerei există deja",
+ "brands": {
+ "reolink-rtsp": "RTSP Reolink nu este recomandat. Activează HTTP în setările firmware ale camerei și repornește asistentul."
+ },
+ "customUrlRtspRequired": "URL-urile personalizate trebuie să înceapă cu \"rtsp://\". Este necesară configurare manuală pentru stream-urile de cameră non-RTSP."
+ },
+ "docs": {
+ "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
+ },
+ "testing": {
+ "probingMetadata": "Sondare metadate cameră...",
+ "fetchingSnapshot": "Preluare snapshot cameră..."
+ },
+ "connectionSettings": "Setări conexiune",
+ "detectionMethod": "Metoda de detecție stream",
+ "onvifPort": "Port ONVIF",
+ "probeMode": "Sondare cameră",
+ "manualMode": "Selecție manuală",
+ "detectionMethodDescription": "Sondează camera cu ONVIF (dacă este suportat) pentru a găsi URL-urile de stream ale camerei, sau selectează manual marca camerei pentru a utiliza URL-uri predefinite. Pentru a introduce un URL RTSP personalizat, alege metoda manuală și selectează \"Altele\".",
+ "onvifPortDescription": "Pentru camerele care suportă ONVIF, acesta este de obicei 80 sau 8080.",
+ "useDigestAuth": "Utilizați autentificarea digest",
+ "useDigestAuthDescription": "Utilizați autentificarea HTTP digest pentru ONVIF. Unele camere pot necesita un nume de utilizator/parolă ONVIF dedicat în locul utilizatorului standard de administrare."
+ },
+ "step2": {
+ "description": "Testează camera pentru fluxurile disponibile sau configurează setările manuale pe baza metodei de detectare selectate.",
+ "streamsTitle": "Stream-uri cameră",
+ "addStream": "Adaugă stream",
+ "addAnotherStream": "Adaugă un alt stream",
+ "streamTitle": "Stream {{number}}",
+ "streamUrl": "URL stream",
+ "streamUrlPlaceholder": "rtsp://utilizator:parolă@gazdă:port/cale",
+ "url": "URL",
+ "resolution": "Rezoluție",
+ "selectResolution": "Selectează rezoluția",
+ "quality": "Calitate",
+ "selectQuality": "Selectează calitatea",
+ "roles": "Roluri",
+ "roleLabels": {
+ "detect": "Detecție obiecte",
+ "record": "Înregistrare",
+ "audio": "Audio"
+ },
+ "testStream": "Testează conexiunea",
+ "testSuccess": "Testul de conexiune a fost realizat cu succes!",
+ "testFailed": "Testul de conexiune a eșuat. Verifică datele introduse și încearcă din nou.",
+ "testFailedTitle": "Test eșuat",
+ "connected": "Conectat",
+ "notConnected": "Neconectat",
+ "featuresTitle": "Funcționalități",
+ "go2rtc": "Redu conexiunile la cameră",
+ "detectRoleWarning": "Cel puțin un stream trebuie să aibă rolul „detectare” pentru a continua.",
+ "rolesPopover": {
+ "title": "Roluri de streaming",
+ "detect": "Stream principal pentru detecția obiectelor.",
+ "record": "Salvează segmente ale stream-ului video pe baza setărilor de configurare.",
+ "audio": "Stream pentru detecția bazată pe sunet."
+ },
+ "featuresPopover": {
+ "title": "Funcționalități streaming",
+ "description": "Folosește restreaming go2rtc pentru a reduce conexiunile la cameră."
+ },
+ "streamDetails": "Detalii stream",
+ "probing": "Se sondează camera...",
+ "retry": "Reîncercare",
+ "testing": {
+ "probingMetadata": "Se sondează metadatele camerei...",
+ "fetchingSnapshot": "Se aduce snapshot cameră..."
+ },
+ "probeFailed": "Sondarea camerei a eșuat: {{error}}",
+ "probingDevice": "Se sondează dispozitivul...",
+ "probeSuccessful": "Sondare reușită",
+ "probeError": "Eroare la sondare",
+ "probeNoSuccess": "Sondare nereușită",
+ "deviceInfo": "Informații dispozitiv",
+ "manufacturer": "Producător",
+ "model": "Model",
+ "firmware": "Firmware",
+ "profiles": "Profiluri",
+ "ptzSupport": "Suport PTZ",
+ "autotrackingSupport": "Suport autourmărire",
+ "presets": "Presetări",
+ "rtspCandidates": "Candidați RTSP",
+ "rtspCandidatesDescription": "Următoarele URL-uri RTSP au fost găsite în urma sondării camerei. Testați conexiunea pentru a vizualiza metadatele stream-ului.",
+ "noRtspCandidates": "Nu au fost găsite URL-uri RTSP de la cameră. Este posibil ca datele dumneavoastră de autentificare să fie incorecte, sau este posibil ca aparatul foto să nu suporte ONVIF sau metoda utilizată pentru a prelua URL-urile RTSP. Întoarceți-vă și introduceți URL-ul RTSP manual.",
+ "candidateStreamTitle": "Candidat {{number}}",
+ "useCandidate": "Folosește",
+ "uriCopy": "Copiază",
+ "uriCopied": "URI copiat în clipboard",
+ "testConnection": "Testează conexiunea",
+ "toggleUriView": "Click pentru a comuta vizualizarea URI completă",
+ "errors": {
+ "hostRequired": "Gazdă/adresaIP este necesară"
+ }
+ },
+ "step3": {
+ "description": "Configurează rolurile stream-ului și adaugă stream-uri suplimentare pentru camera ta.",
+ "validationTitle": "Validare stream",
+ "connectAllStreams": "Conectează toate stream-urile",
+ "reconnectionSuccess": "Reconectare reușită.",
+ "reconnectionPartial": "Unele stram-uri nu s-au reconectat.",
+ "streamUnavailable": "Previzualizare streaming indisponibilă",
+ "reload": "Reîncarcă",
+ "connecting": "Conectare...",
+ "streamTitle": "Stream {{number}}",
+ "valid": "Valid",
+ "failed": "Eșuat",
+ "notTested": "Netestat",
+ "connectStream": "Conectare",
+ "connectingStream": "Se conectează",
+ "disconnectStream": "Deconectare",
+ "estimatedBandwidth": "Lățime de bandă estimată",
+ "roles": "Roluri",
+ "none": "Niciunul",
+ "error": "Eroare",
+ "streamValidated": "Stream {{number}} validat cu succes",
+ "streamValidationFailed": "Validarea pentru stream {{number}} a eșuat",
+ "saveAndApply": "Salvează Camera Nouă",
+ "saveError": "Configurație invalidă. Verifică setările.",
+ "issues": {
+ "title": "Validare stream",
+ "videoCodecGood": "Codecul video este {{codec}}.",
+ "audioCodecGood": "Codecul audio este {{codec}}.",
+ "noAudioWarning": "Nu s-a detectat audio pentru acest strem, înregistrările nu vor avea sunet.",
+ "audioCodecRecordError": "Codec-ul audio AAC este necesar pentru a suporta audio în înregistrări.",
+ "audioCodecRequired": "Un stream audio este necesar pentru a suporta detecția audio.",
+ "restreamingWarning": "Reducerea conexiunilor la cameră pentru stream-ul de înregistrare poate crește ușor utilizarea procesorului.",
+ "dahua": {
+ "substreamWarning": "Substream-ul 1 este blocat la o rezoluție scăzută. Multe camere Dahua / Amcrest / EmpireTech suportă substream-uri suplimentare care trebuie să fie activate în setările camerei. Este recomandat să verifici și să utilizezi acele stream-uri, dacă sunt disponibile."
+ },
+ "hikvision": {
+ "substreamWarning": "Substream-ul 1 este blocat la o rezoluție scăzută. Multe camere Hikvision suportă substream-uri suplimentare care trebuie să fie activate în setările camerei. Este recomandat să verifici și să utilizezi acele strem-uri, dacă sunt disponibile."
+ },
+ "resolutionHigh": "O rezoluție de {{resolution}} poate cauza o utilizare crescută a resurselor.",
+ "resolutionLow": "O rezoluție de {{resolution}} poate fi prea mică pentru detectarea fiabilă a obiectelor mici."
+ },
+ "ffmpegModule": "Folosește modul de compatibilitate pentru stream-uri",
+ "ffmpegModuleDescription": "Dacă fluxul nu se încarcă după mai multe încercări, activați această opțiune. Când este activată, Frigate va folosi modulul ffmpeg împreună cu go2rtc. Aceasta poate oferi o compatibilitate mai bună cu unele fluxuri de camere.",
+ "streamsTitle": "Stream-uri cameră",
+ "addStream": "Adaugă stream",
+ "addAnotherStream": "Adaugă alt stream",
+ "streamUrl": "URL stream",
+ "streamUrlPlaceholder": "rtsp://utilizator:parolă@adresaIP:port/cale",
+ "selectStream": "Selectați un flux",
+ "searchCandidates": "Căutați candidați...",
+ "noStreamFound": "Niciun stream găsit",
+ "url": "URL",
+ "resolution": "Rezoluție",
+ "quality": "Calitate",
+ "selectResolution": "Selectează rezoluția",
+ "selectQuality": "Selectează calitatea",
+ "roleLabels": {
+ "detect": "Detecție Obiect",
+ "record": "Înregistrare",
+ "audio": "Audio"
+ },
+ "testStream": "Testează conexiunea",
+ "testSuccess": "Testul stream-ului a avut succes!",
+ "testFailed": "Testul stream-ului a eșuat",
+ "testFailedTitle": "Testul a eșuat",
+ "connected": "Conectat",
+ "notConnected": "Neconectat",
+ "featuresTitle": "Funcționalități",
+ "go2rtc": "Reduceți conexiunile la cameră",
+ "detectRoleWarning": "Cel puțin un stream trebuie să aibă rolul \"detect\" pentru a continua.",
+ "rolesPopover": {
+ "title": "Roluri stream",
+ "detect": "Stream principal pentru detecția obiectelor.",
+ "record": "Salvează segmente ale stream-ului video pe baza setărilor de configurare.",
+ "audio": "Stream pentru detecția bazată pe audio."
+ },
+ "featuresPopover": {
+ "title": "Funcționalități stream",
+ "description": "Utilizați go2rtc restreaming pentru a reduce conexiunile la cameră."
+ }
+ },
+ "step4": {
+ "description": "Validare finală și analiză înainte de a salva noua cameră. Conectați fiecare stream înainte de a salva.",
+ "validationTitle": "Validare stream",
+ "connectAllStreams": "Conectează toate stream-urile",
+ "reconnectionSuccess": "Reconectare reușită.",
+ "reconnectionPartial": "Unele stream-uri nu au reușit să se reconecteze.",
+ "streamUnavailable": "Previzualizare flux indisponibilă",
+ "reload": "Reîncarcă",
+ "connecting": "Conectare...",
+ "streamTitle": "Stream {{number}}",
+ "valid": "Valid",
+ "failed": "Eșuat",
+ "notTested": "Netestat",
+ "connectStream": "Conectare",
+ "connectingStream": "Se conectează",
+ "disconnectStream": "Deconectare",
+ "estimatedBandwidth": "Lățime de bandă estimată",
+ "roles": "Roluri",
+ "ffmpegModule": "Utilizează modul de compatibilitate stream",
+ "ffmpegModuleDescription": "Dacă stream-ul nu se încarcă după câteva încercări, activați această opțiune. Când este activată, Frigate va utiliza modulul ffmpeg cu go2rtc. Acest lucru poate oferi o compatibilitate mai bună cu unele stream-uri de cameră.",
+ "none": "Niciuna",
+ "error": "Eroare",
+ "streamValidated": "Stream-ul {{number}} validat cu succes",
+ "streamValidationFailed": "Validarea stream-ului {{number}} a eșuat",
+ "saveAndApply": "Salvează camera nouă",
+ "saveError": "Configurație nevalidă. Vă rugăm să vă verificați setările.",
+ "issues": {
+ "title": "Validare stream",
+ "videoCodecGood": "Codecul video: {{codec}}.",
+ "audioCodecGood": "Codecul audio: {{codec}}.",
+ "resolutionHigh": "O rezoluție de {{resolution}} poate cauza o utilizare crescută a resurselor.",
+ "resolutionLow": "O rezoluție de {{resolution}} ar putea fi prea mică pentru detectarea fiabilă a obiectelor mici.",
+ "noAudioWarning": "Nu a fost detectat audio pentru acest stream, înregistrările nu vor avea audio.",
+ "audioCodecRecordError": "Codec-ul audio AAC este necesar pentru a suporta audio în înregistrări.",
+ "audioCodecRequired": "Este necesar un stream audio pentru a suporta detecția audio.",
+ "restreamingWarning": "Reducerea conexiunilor la cameră pentru stream-ul de înregistrare poate crește ușor utilizarea procesorului (CPU).",
+ "brands": {
+ "reolink-rtsp": "RTSP Reolink nu este recomandat. Activați HTTP în setările de firmware ale camerei și reporniți asistentul.",
+ "reolink-http": "Stream-urile HTTP Reolink ar trebui să folosească FFmpeg pentru o compatibilitate mai bună. Activează 'Use stream compatibility mode' pentru acest stream."
+ },
+ "dahua": {
+ "substreamWarning": "Substream-ul 1 este blocat la o rezoluție scăzută. Multe camere Dahua / Amcrest / EmpireTech suportă stream-uri secundare suplimentare care trebuie activate în setările camerei. Se recomandă să verificați și să utilizați aceste stream-uri dacă sunt disponibile."
+ },
+ "hikvision": {
+ "substreamWarning": "Substream-ul 1 este blocat la o rezoluție scăzută. Multe camere Hikvision suportă stream-uri secundare suplimentare care trebuie activate în setările camerei. Se recomandă să verificați și să utilizați aceste stream-uri dacă sunt disponibile."
+ }
+ }
+ }
+ },
+ "cameraManagement": {
+ "title": "Administrează Camerele",
+ "addCamera": "Adaugă cameră nouă",
+ "editCamera": "Editează cameră:",
+ "selectCamera": "Selectează o cameră",
+ "backToSettings": "Înapoi la setările camerei",
+ "streams": {
+ "title": "Activează / dezactivează camere",
+ "desc": "Dezactivează temporar o cameră până la repornirea Frigate. Dezactivarea unei camere oprește complet procesarea streamingului acestei camere de către Frigate. Detecția, înregistrarea și depanarea vor fi indisponibile. Notă: Aceasta nu dezactivează restreamingul go2rtc."
+ },
+ "cameraConfig": {
+ "add": "Adaugă cameră",
+ "edit": "Editează cameră",
+ "description": "Configurează setările camerei, inclusiv intrările și rolurile de streaming.",
+ "name": "Nume cameră",
+ "nameRequired": "Numele camerei este obligatoriu",
+ "nameLength": "Numele camerei trebuie să fie mai scurt de 64 de caractere.",
+ "namePlaceholder": "ex. ușă_intrare sau Vedere Curte Spate",
+ "enabled": "Activat",
+ "ffmpeg": {
+ "inputs": "Stream-uri de intrare",
+ "path": "Cale streaming",
+ "pathRequired": "Calea streaming este obligatorie",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Roluri",
+ "rolesRequired": "Este necesar cel puțin un rol",
+ "rolesUnique": "Fiecare rol (audio, detectare, înregistrare) poate fi atribuit unui singur stream",
+ "addInput": "Adaugă stream de intrare",
+ "removeInput": "Elimină stream-ul de intrare",
+ "inputsRequired": "Este necesar cel puțin un stream de intrare"
+ },
+ "go2rtcStreams": "Streamuri go2rtc",
+ "streamUrls": "URL-uri streaming",
+ "addUrl": "Adaugă URL",
+ "addGo2rtcStream": "Adaugă stream go2rtc",
+ "toast": {
+ "success": "Camera {{cameraName}} salvată cu succes"
+ }
+ }
+ },
+ "cameraReview": {
+ "title": "Setări de Revizuire a Camerei",
+ "object_descriptions": {
+ "title": "Descrieri de Obiecte cu AI Generativ",
+ "desc": "Activează/dezactivează temporar descrierile de obiecte cu AI Generativ pentru această cameră. Când este dezactivată, descrierile generate de AI nu vor fi solicitate pentru obiectele urmărite pe această cameră."
+ },
+ "review_descriptions": {
+ "title": "Descrieri de revizuire cu AI Generativ",
+ "desc": "Activează/dezactivează temporar descrierile de revizuire cu AI Generativ pentru această cameră. Când este dezactivat, descrierile generate de AI nu vor fi solicitate pentru elementele de revizuire de pe această cameră."
+ },
+ "review": {
+ "title": "Revizuire",
+ "desc": "Activează/dezactivează temporar alertele și detecțiile pentru această cameră până la repornirea Frigate. Când este dezactivat, nu vor fi generate elemente de revizuire noi. ",
+ "alerts": "Alerte ",
+ "detections": "Detecții "
+ },
+ "reviewClassification": {
+ "title": "Clasificare revizuire",
+ "desc": "Frigate clasifică elementele de revizuire ca Alerte și Detecții. În mod implicit, toate obiectele de tip persoană și mașină sunt considerate Alerte. Poți rafina clasificarea elementelor tale de revizuire prin configurarea zonelor necesare pentru acestea.",
+ "noDefinedZones": "Nu sunt definite zone pentru această cameră.",
+ "objectAlertsTips": "Toate obiectele {{alertsLabels}} de pe {{cameraName}} vor fi afișate ca Alerte.",
+ "zoneObjectAlertsTips": "Toate obiectele {{alertsLabels}} detectate în {{zone}} pe {{cameraName}} vor fi afișate ca Alerte.",
+ "objectDetectionsTips": "Toate obiectele {{detectionsLabels}} necategorizate pe {{cameraName}} vor fi afișate ca Detecții indiferent de zona în care se află.",
+ "zoneObjectDetectionsTips": {
+ "text": "Toate obiectele {{detectionsLabels}} necategorizate în {{zone}} pe {{cameraName}} vor fi afișate ca Detecții.",
+ "notSelectDetections": "Toate obiectele {{detectionsLabels}} detectate în {{zone}} pe {{cameraName}} și necategorizate ca Alerte vor fi afișate ca Detecții indiferent de zona în care se află.",
+ "regardlessOfZoneObjectDetectionsTips": "Toate obiectele {{detectionsLabels}} necategorizate pe {{cameraName}} vor fi afișate ca Detecții indiferent de zona în care se află."
+ },
+ "unsavedChanges": "Setări de Clasificare Revizuire nesalvate pentru {{camera}}",
+ "selectAlertsZones": "Selectați zonele pentru Alerte",
+ "selectDetectionsZones": "Selectați zonele pentru Detecții",
+ "limitDetections": "Limitați detecțiile la zone specifice",
+ "toast": {
+ "success": "Configurația Clasificare Revizuire a fost salvată. Reporniți Frigate pentru a aplica modificările."
+ }
+ }
}
}
diff --git a/web/public/locales/ro/views/system.json b/web/public/locales/ro/views/system.json
index 5ba80df9cb..e64990bbad 100644
--- a/web/public/locales/ro/views/system.json
+++ b/web/public/locales/ro/views/system.json
@@ -42,6 +42,11 @@
"closeInfo": {
"label": "Închide informațiile GPU"
}
+ },
+ "intelGpuWarning": {
+ "title": "Avertisment statistici GPU Intel",
+ "message": "Statistici GPU indisponibile",
+ "description": "Aceasta este o eroare cunoscută în instrumentele Intel pentru raportarea statisticilor GPU (intel_gpu_top), unde acestea se blochează și returnează repetat o utilizare GPU de 0%, chiar și în cazurile în care accelerarea hardware și detectarea obiectelor rulează corect pe (i)GPU. Aceasta nu este o eroare Frigate. Poți reporni gazda pentru a remedia temporar problema și pentru a confirma că GPU-ul funcționează corect. Aceasta nu afectează performanța."
}
},
"detector": {
@@ -49,7 +54,8 @@
"title": "Detectori",
"cpuUsage": "Utilizarea procesorului",
"inferenceSpeed": "Viteza de inferență",
- "memoryUsage": "Utilizare memorie detector"
+ "memoryUsage": "Utilizare memorie detector",
+ "cpuUsageInformation": "Procesorul utilizat pentru pregătirea datelor de intrare și ieșire către/dinspre modelele de detecție. Această valoare nu măsoară utilizarea în timpul inferenței, chiar dacă este folosit un GPU sau un accelerator."
},
"otherProcesses": {
"title": "Alte Procese",
@@ -77,7 +83,12 @@
},
"bandwidth": "Lățime de bandă"
},
- "overview": "Prezentare generală"
+ "overview": "Prezentare generală",
+ "shm": {
+ "title": "Alocare SHM (memorie partajată)",
+ "warning": "Dimensiunea curentă a SHM de {{total}}MB este prea mică. Măriți-o la cel puțin {{min_shm}}MB.",
+ "readTheDocumentation": "Citește documentația"
+ }
},
"title": "Sistem",
"logs": {
@@ -115,17 +126,27 @@
"face_recognition_speed": "Viteză recunoaștere facială",
"plate_recognition_speed": "Viteză recunoaștere numere de înmatriculare",
"face_embedding_speed": "Viteză încorporare fețe",
- "yolov9_plate_detection_speed": "Viteza detectării numerelor de înmatriculare YOLOv9",
+ "yolov9_plate_detection_speed": "Viteza detecției numerelor de înmatriculare YOLOv9",
"text_embedding_speed": "Viteză încorporare text",
- "yolov9_plate_detection": "Detectare numere de înmatriculare YOLOv9"
+ "yolov9_plate_detection": "Detectare numere de înmatriculare YOLOv9",
+ "review_description": "Descriere Revizuire",
+ "review_description_speed": "Viteză Descriere Revizuire",
+ "review_description_events_per_second": "Descriere Revizuire",
+ "object_description": "Descriere Obiect",
+ "object_description_speed": "Viteză Descriere Obiect",
+ "object_description_events_per_second": "Descriere Obiect",
+ "classification": "{{name}} Clasificare",
+ "classification_speed": "{{name}} Viteză de clasificare",
+ "classification_events_per_second": "{{name}} Evenimente de clasificare pe secundă"
},
- "infPerSecond": "Inferențe pe secundă"
+ "infPerSecond": "Inferențe pe secundă",
+ "averageInf": "Timp Mediu de Inferență"
},
"cameras": {
"info": {
"codec": "Codec:",
"resolution": "Rezoluție:",
- "cameraProbeInfo": "Informații sondare cameră {{camera}}",
+ "cameraProbeInfo": "Informații testare cameră {{camera}}",
"streamDataFromFFPROBE": "Datele stream-ului sunt obținute cu ffprobe.",
"aspectRatio": "raport aspect",
"fetching": "Se preiau datele camerei",
@@ -134,7 +155,7 @@
"audio": "Sunet:",
"error": "Eroare:{{error}}",
"tips": {
- "title": "Informații sondă cameră"
+ "title": "Informații test cameră"
},
"fps": "Cadre/s:",
"unknown": "Necunoscut"
@@ -160,10 +181,10 @@
"framesAndDetections": "Cadre / Detecții",
"toast": {
"success": {
- "copyToClipboard": "Datele sondei au fost copiate."
+ "copyToClipboard": "Datele testului au fost copiate."
},
"error": {
- "unableToProbeCamera": "Sondarea camerei nu a fost posibilă: {{errorMessage}}"
+ "unableToProbeCamera": "Testarea camerei nu a fost posibilă: {{errorMessage}}"
}
}
},
@@ -174,7 +195,8 @@
"detectHighCpuUsage": "Camera {{camera}} are o utilizare ridicată a procesorului pentru detecție ({{detectAvg}}%)",
"ffmpegHighCpuUsage": "Camera {{camera}} are o utilizare ridicată a procesorului FFmpeg ({{ffmpegAvg}}%)",
"cameraIsOffline": "{{camera}} este offline",
- "healthy": "Sistemul funcționează normal"
+ "healthy": "Sistemul funcționează normal",
+ "shmTooLow": "Alocarea /dev/shm ({{total}} MB) ar trebui mărită la cel puțin {{min}} MB."
},
"lastRefreshed": "Ultima reîmprospătare: "
}
diff --git a/web/public/locales/ru/audio.json b/web/public/locales/ru/audio.json
index 9f5e58530a..e9e6bfc21b 100644
--- a/web/public/locales/ru/audio.json
+++ b/web/public/locales/ru/audio.json
@@ -315,7 +315,7 @@
"slam": "Хлопок",
"knock": "Стук",
"tap": "Небольшой стук",
- "squeak": "Скрип",
+ "squeak": "Писк",
"cupboard_open_or_close": "Открытие или закрытие шкафа",
"drawer_open_or_close": "Открытие или закрытие ящика",
"dishes": "Тарелки",
@@ -425,5 +425,79 @@
"pink_noise": "Розовый шум",
"hammer": "Молоток",
"firecracker": "Петарда",
- "television": "Телевидение"
+ "television": "Телевидение",
+ "echo": "Эхо",
+ "noise": "Шум",
+ "mains_hum": "Гул сети",
+ "cacophony": "Какофония",
+ "throbbing": "Пульсирующий",
+ "vibration": "Вибрация",
+ "sodeling": "Соделинг",
+ "chird": "Чирд",
+ "change_ringing": "Перезвон",
+ "shofar": "Шофар",
+ "liquid": "Жидкость",
+ "splash": "Брызги",
+ "slosh": "Плеск",
+ "squish": "Хлюпанье",
+ "drip": "Капля",
+ "pour": "Литьё",
+ "trickle": "Струйка",
+ "gush": "Бурный поток",
+ "fill": "Наполнение",
+ "spray": "Распыление",
+ "pump": "Насос",
+ "stir": "Перемешивание",
+ "boiling": "Кипение",
+ "sonar": "Сонар",
+ "arrow": "Стрела",
+ "whoosh": "Вжух",
+ "thump": "Глухой удар",
+ "thunk": "Тупой удар",
+ "electronic_tuner": "Электронный тюнер",
+ "effects_unit": "Блок эффектов",
+ "chorus_effect": "Эффект хоруса",
+ "basketball_bounce": "Отскок баскетбольного мяча",
+ "bang": "Бах",
+ "slap": "Шлепок",
+ "whack": "Удар",
+ "smash": "Разбивание",
+ "breaking": "Разрушение",
+ "bouncing": "Отскок",
+ "whip": "Хлыст",
+ "flap": "Хлопание",
+ "scratch": "Царапанье",
+ "scrape": "Скребок",
+ "rub": "Трение",
+ "roll": "Качение",
+ "crushing": "Дробление",
+ "crumpling": "Сминание",
+ "tearing": "Разрывание",
+ "beep": "Бип",
+ "ping": "Пинг",
+ "ding": "Динь",
+ "clang": "Лязг",
+ "squeal": "Визг",
+ "creak": "Скрипение",
+ "rustle": "Шуршание",
+ "whir": "Жужжание",
+ "clatter": "Грохот",
+ "sizzle": "Шипение",
+ "clicking": "Щелканье",
+ "clickety_clack": "Щелчок-Клак",
+ "rumble": "Грохотать",
+ "plop": "Плюх",
+ "hum": "Гул",
+ "zing": "Зинг",
+ "boing": "Боинг",
+ "crunch": "Хруст",
+ "sine_wave": "Синусоида",
+ "harmonic": "Гармоника",
+ "chirp_tone": "Тон чириканья",
+ "pulse": "Импульс",
+ "inside": "Внутри",
+ "outside": "Снаружи",
+ "reverberation": "Реверберация",
+ "distortion": "Искажение",
+ "sidetone": "Боковой тон"
}
diff --git a/web/public/locales/ru/common.json b/web/public/locales/ru/common.json
index 92ee6cf942..0de87d293e 100644
--- a/web/public/locales/ru/common.json
+++ b/web/public/locales/ru/common.json
@@ -87,9 +87,12 @@
"formattedTimestampMonthDayYear": {
"12hour": "d MMM, yyyy",
"24hour": "d MMM, yyyy"
- }
+ },
+ "inProgress": "В процессе",
+ "invalidStartTime": "Некорректное время начала",
+ "invalidEndTime": "Некорректное время окончания"
},
- "selectItem": "Выбор {{item}}",
+ "selectItem": "Выбрать {{item}}",
"button": {
"apply": "Применить",
"done": "Готово",
@@ -125,10 +128,16 @@
"unselect": "Снять выбор",
"export": "Экспортировать",
"deleteNow": "Удалить сейчас",
- "next": "Следующий"
+ "next": "Следующий",
+ "continue": "Продолжить"
},
"label": {
- "back": "Вернуться"
+ "back": "Вернуться",
+ "hide": "Скрыть {{item}}",
+ "show": "Показать {{item}}",
+ "ID": "ID",
+ "all": "Все",
+ "none": "Ничего"
},
"unit": {
"speed": {
@@ -138,6 +147,14 @@
"length": {
"meters": "метры",
"feet": "футы"
+ },
+ "data": {
+ "kbps": "кБ/с",
+ "mbps": "МБ/с",
+ "gbps": "ГБ/с",
+ "kbph": "кБ/час",
+ "mbph": "МБ/час",
+ "gbph": "ГБ/час"
}
},
"menu": {
@@ -182,7 +199,15 @@
},
"yue": "粵語 (Кантонский)",
"th": "ไทย (Тайский)",
- "ca": "Català (Каталонский)"
+ "ca": "Català (Каталонский)",
+ "ptBR": "Português brasileiro (Бразильский португальский)",
+ "sr": "Српски (Сербский)",
+ "sl": "Slovenščina (Словенский)",
+ "lt": "Lietuvių (Литовский)",
+ "bg": "Български (Болгарский)",
+ "gl": "Galego (Галисийский)",
+ "id": "Bahasa Indonesia (Индонезийский)",
+ "ur": "اردو (Урду)"
},
"darkMode": {
"withSystem": {
@@ -232,7 +257,8 @@
"logout": "Выход",
"setPassword": "Установить пароль"
},
- "appearance": "Внешний вид"
+ "appearance": "Внешний вид",
+ "classification": "Распознование"
},
"pagination": {
"label": "пагинация",
@@ -271,5 +297,18 @@
"admin": "Администратор",
"viewer": "Наблюдатель",
"desc": "Администраторы имеют полный доступ ко всем функциям в интерфейсе Frigate. Наблюдатели ограничены просмотром камер, элементов просмотра и архивных записей."
+ },
+ "readTheDocumentation": "Читать документацию",
+ "information": {
+ "pixels": "{{area}}px"
+ },
+ "list": {
+ "two": "{{0}} и {{1}}",
+ "many": "{{items}}, и {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "Необязательный",
+ "internalID": "Внутренний идентификатор Frigate, используемый в конфигурации и базе данных"
}
}
diff --git a/web/public/locales/ru/components/auth.json b/web/public/locales/ru/components/auth.json
index b227af835b..17b9839144 100644
--- a/web/public/locales/ru/components/auth.json
+++ b/web/public/locales/ru/components/auth.json
@@ -10,6 +10,7 @@
"loginFailed": "Ошибка входа",
"unknownError": "Неизвестная ошибка. Проверьте логи.",
"webUnknownError": "Неизвестная ошибка. Проверьте логи консоли."
- }
+ },
+ "firstTimeLogin": "Пытаетесь войти в систему впервые? Учетные данные указаны в логах Frigate."
}
}
diff --git a/web/public/locales/ru/components/camera.json b/web/public/locales/ru/components/camera.json
index 3059b83f08..8a8c1a4922 100644
--- a/web/public/locales/ru/components/camera.json
+++ b/web/public/locales/ru/components/camera.json
@@ -66,7 +66,8 @@
"title": "Настройки видеопотока {{cameraName}}",
"stream": "Поток",
"placeholder": "Выбрать поток"
- }
+ },
+ "birdseye": "Birdseye"
}
},
"debug": {
diff --git a/web/public/locales/ru/components/dialog.json b/web/public/locales/ru/components/dialog.json
index 078a37a976..b935670c2e 100644
--- a/web/public/locales/ru/components/dialog.json
+++ b/web/public/locales/ru/components/dialog.json
@@ -65,12 +65,13 @@
"export": "Экспорт",
"selectOrExport": "Выбрать или экспортировать",
"toast": {
- "success": "Экспорт успешно запущен. Файл доступен в папке /exports.",
+ "success": "Экспорт успешно запущен. Файл доступен на странице экспорта.",
"error": {
"failed": "Не удалось запустить экспорт: {{error}}",
"noVaildTimeSelected": "Не выбран допустимый временной диапазон",
"endTimeMustAfterStartTime": "Время окончания должно быть после времени начала"
- }
+ },
+ "view": "Просмотр"
},
"fromTimeline": {
"saveExport": "Сохранить экспорт",
@@ -120,7 +121,16 @@
"button": {
"export": "Экспорт",
"markAsReviewed": "Пометить как просмотренное",
- "deleteNow": "Удалить сейчас"
+ "deleteNow": "Удалить сейчас",
+ "markAsUnreviewed": "Отметить как непросмотренное"
}
+ },
+ "imagePicker": {
+ "search": {
+ "placeholder": "Искать по метке..."
+ },
+ "selectImage": "Выбор миниатюры отслеживаемого объекта",
+ "noImages": "Не обнаружено миниатюр для этой камеры",
+ "unknownLabel": "Сохраненное изображение триггера"
}
}
diff --git a/web/public/locales/ru/components/filter.json b/web/public/locales/ru/components/filter.json
index 024ebe02c8..095ea91ba4 100644
--- a/web/public/locales/ru/components/filter.json
+++ b/web/public/locales/ru/components/filter.json
@@ -116,12 +116,26 @@
"title": "Распознанные номерные знаки",
"loadFailed": "Не удалось загрузить распознанные номерные знаки.",
"loading": "Загрузка распознанных номерных знаков…",
- "selectPlatesFromList": "Выберите один или более знаков из списка."
+ "selectPlatesFromList": "Выберите один или более знаков из списка.",
+ "selectAll": "Выбрать все",
+ "clearAll": "Очистить все"
},
"review": {
"showReviewed": "Показать просмотренные"
},
"motion": {
"showMotionOnly": "Показывать только движение"
+ },
+ "classes": {
+ "label": "Классы",
+ "all": {
+ "title": "Все классы"
+ },
+ "count_one": "{{count}} класс",
+ "count_other": "{{count}} классы"
+ },
+ "attributes": {
+ "label": "Атрибуты классификации",
+ "all": "Все атрибуты"
}
}
diff --git a/web/public/locales/ru/views/classificationModel.json b/web/public/locales/ru/views/classificationModel.json
new file mode 100644
index 0000000000..b5b7e22228
--- /dev/null
+++ b/web/public/locales/ru/views/classificationModel.json
@@ -0,0 +1,193 @@
+{
+ "documentTitle": "Классификация моделей - Frigate",
+ "details": {
+ "scoreInfo": "Оценка представляет собой среднюю степень достоверности классификации по всем обнаружениям данного объекта.",
+ "none": "Нет",
+ "unknown": "Неизвестно"
+ },
+ "button": {
+ "deleteClassificationAttempts": "Удалить изображения классификации",
+ "renameCategory": "Переименовать класс",
+ "deleteCategory": "Удалить класс",
+ "deleteImages": "Удалить изображения",
+ "trainModel": "Тренировать модель",
+ "addClassification": "Добавить классификацию",
+ "deleteModels": "Удалить модели",
+ "editModel": "Редактировать модель"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Класс удалён",
+ "deletedImage": "Изображения удалены",
+ "deletedModel_one": "Успешно удалена {{count}} модель",
+ "deletedModel_few": "Успешно удалены {{count}} модели",
+ "deletedModel_many": "Успешно удалены {{count}} моделей",
+ "categorizedImage": "Изображение успешно классифицировано",
+ "trainedModel": "Модель успешно обучена.",
+ "trainingModel": "Обучение модели успешно запущено.",
+ "updatedModel": "Конфигурация модели успешно обновлена",
+ "renamedCategory": "Класс успешно переименован в {{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "Не удалось удалить: {{errorMessage}}",
+ "deleteCategoryFailed": "Не удалось удалить класс: {{errorMessage}}",
+ "deleteModelFailed": "Не удалось удалить модель: {{errorMessage}}",
+ "categorizeFailed": "Не удалось классифицировать изображение: {{errorMessage}}",
+ "trainingFailed": "Ошибка обучения модели. Проверьте логи Frigate для получения подробной информации.",
+ "updateModelFailed": "Не удалось обновить модель: {{errorMessage}}",
+ "renameCategoryFailed": "Не удалось переименовать класс: {{errorMessage}}",
+ "trainingFailedToStart": "Не удалось начать обучение модели: {{errorMessage}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Удалить класс",
+ "desc": "Вы уверены, что хотите удалить класс {{name}}? Это приведёт к безвозвратному удалению всех связанных с ним изображений и потребует повторного обучения модели.",
+ "minClassesTitle": "Не удалось удалить класс",
+ "minClassesDesc": "Модель классификации должна содержать как минимум 2 класса. Добавьте ещё один класс перед удалением этого."
+ },
+ "deleteModel": {
+ "title": "Удалить модель классификации",
+ "single": "Вы уверены, что хотите удалить {{name}}? Это приведёт к безвозвратному удалению всех связанных данных, включая изображения и данные обучения. Это действие нельзя отменить.",
+ "desc_one": "Вы уверены, что хотите удалить {{count}} модель? Это приведёт к безвозвратному удалению всех связанных данных, включая изображения и данные обучения. Это действие нельзя отменить.",
+ "desc_few": "Вы уверены, что хотите удалить {{count}} модели? Это приведёт к безвозвратному удалению всех связанных данных, включая изображения и данные обучения. Это действие нельзя отменить.",
+ "desc_many": "Вы уверены, что хотите удалить {{count}} моделей? Это приведёт к безвозвратному удалению всех связанных данных, включая изображения и данные обучения. Это действие нельзя отменить."
+ },
+ "edit": {
+ "title": "Редактировать модель классификации",
+ "descriptionState": "Редактировать классы для этой модели классификации состояний. Изменения потребуют повторного обучения модели.",
+ "descriptionObject": "Редактировать тип объекта и тип классификации для этой модели классификации объектов.",
+ "stateClassesInfo": "Примечание: изменение классов состояний требует повторного обучения модели с обновлёнными классами."
+ },
+ "deleteDatasetImages": {
+ "title": "Удалить изображения набора данных",
+ "desc_one": "Вы уверены, что хотите удалить {{count}} изображение из {{dataset}}? Это действие нельзя отменить и потребует повторного обучения модели.",
+ "desc_few": "Вы уверены, что хотите удалить {{count}} изображения из {{dataset}}? Это действие нельзя отменить и потребует повторного обучения модели.",
+ "desc_many": "Вы уверены, что хотите удалить {{count}} изображений из {{dataset}}? Это действие нельзя отменить и потребует повторного обучения модели."
+ },
+ "deleteTrainImages": {
+ "title": "Удалить обучающие изображения",
+ "desc_one": "Вы уверены, что хотите удалить {{count}} изображение? Это действие нельзя отменить.",
+ "desc_few": "Вы уверены, что хотите удалить {{count}} изображения? Это действие нельзя отменить.",
+ "desc_many": "Вы уверены, что хотите удалить {{count}} изображений? Это действие нельзя отменить."
+ },
+ "renameCategory": {
+ "title": "Переименовать класс",
+ "desc": "Введите новое имя для {{name}}. Вам потребуется повторно обучить модель, чтобы изменение имени вступило в силу."
+ },
+ "description": {
+ "invalidName": "Недопустимое имя. Имена могут содержать только буквы, цифры, пробелы, апострофы, подчёркивания и дефисы."
+ },
+ "train": {
+ "title": "Недавние классификации",
+ "titleShort": "Недавнее",
+ "aria": "Выбрать недавние классификации"
+ },
+ "categories": "Классы",
+ "createCategory": {
+ "new": "Создать новый класс"
+ },
+ "categorizeImageAs": "Классифицировать изображение как:",
+ "categorizeImage": "Классифицировать изображение",
+ "menu": {
+ "objects": "Объекты",
+ "states": "Состояния"
+ },
+ "noModels": {
+ "object": {
+ "title": "Нет моделей классификации объектов",
+ "description": "Создайте пользовательскую модель для классификации обнаруженных объектов.",
+ "buttonText": "Создать модель объекта"
+ },
+ "state": {
+ "title": "Нет моделей классификации состояний",
+ "description": "Создайте пользовательскую модель для мониторинга и классификации изменений состояний в определённых областях камеры.",
+ "buttonText": "Создать модель состояния"
+ }
+ },
+ "wizard": {
+ "title": "Создать новую классификацию",
+ "steps": {
+ "nameAndDefine": "Имя и определение",
+ "stateArea": "Область состояния",
+ "chooseExamples": "Выбрать примеры"
+ },
+ "step1": {
+ "description": "Модели состояний отслеживают фиксированные области камеры на предмет изменений (например, дверь открыта/закрыта). Модели объектов добавляют классификации к обнаруженным объектам (например, известные животные, курьеры и т.д.).",
+ "name": "Имя",
+ "namePlaceholder": "Введите имя модели…",
+ "type": "Тип",
+ "typeState": "Состояние",
+ "typeObject": "Объект",
+ "objectLabel": "Метка объекта",
+ "objectLabelPlaceholder": "Выберите тип объекта…",
+ "classificationType": "Тип классификации",
+ "classificationTypeTip": "Узнать о типах классификации",
+ "classificationTypeDesc": "Подметки добавляют дополнительный текст к метке объекта (например, 'Человек: UPS'). Атрибуты — это доступные для поиска метаданные, хранящиеся отдельно в метаданных объекта.",
+ "classificationSubLabel": "Подметка",
+ "classificationAttribute": "Атрибут",
+ "classes": "Классы",
+ "states": "Состояния",
+ "classesTip": "Узнать о классах",
+ "classesStateDesc": "Определите различные состояния, в которых может находиться область вашей камеры. Например: 'открыто' и 'закрыто' для гаражных ворот.",
+ "classesObjectDesc": "Определите различные категории для классификации обнаруженных объектов. Например: 'курьер', 'житель', 'незнакомец' для классификации людей.",
+ "classPlaceholder": "Введите имя класса…",
+ "errors": {
+ "nameRequired": "Имя модели обязательно",
+ "nameLength": "Имя модели должно содержать не более 64 символов",
+ "nameOnlyNumbers": "Имя модели не может состоять только из цифр",
+ "classRequired": "Требуется хотя бы 1 класс",
+ "classesUnique": "Имена классов должны быть уникальными",
+ "stateRequiresTwoClasses": "Модели состояний требуют не менее 2 классов",
+ "objectLabelRequired": "Пожалуйста, выберите метку объекта",
+ "objectTypeRequired": "Пожалуйста, выберите тип классификации",
+ "noneNotAllowed": "Класс 'нет' не допускается"
+ }
+ },
+ "step2": {
+ "description": "Выберите камеры и определите область для мониторинга для каждой камеры. Модель будет классифицировать состояние этих областей.",
+ "cameras": "Камеры",
+ "selectCamera": "Выбрать камеру",
+ "noCameras": "Нажмите +, чтобы добавить камеры",
+ "selectCameraPrompt": "Выберите камеру из списка, чтобы определить область её мониторинга"
+ },
+ "step3": {
+ "selectImagesPrompt": "Выберите все изображения с {{className}}",
+ "selectImagesDescription": "Нажмите на изображения, чтобы выбрать их. Нажмите Продолжить, когда закончите с этим классом.",
+ "generating": {
+ "title": "Генерация примеров изображений",
+ "description": "Frigate извлекает репрезентативные изображения из ваших записей. Это может занять некоторое время…"
+ },
+ "training": {
+ "title": "Обучение модели",
+ "description": "Ваша модель обучается в фоновом режиме. Закройте это диалоговое окно, и ваша модель начнёт работать, как только обучение будет завершено."
+ },
+ "retryGenerate": "Повторить генерацию",
+ "noImages": "Примеры изображений не сгенерированы",
+ "classifying": "Классификация и обучение…",
+ "trainingStarted": "Обучение успешно запущено",
+ "errors": {
+ "noCameras": "Камеры не настроены",
+ "noObjectLabel": "Метка объекта не выбрана",
+ "generateFailed": "Не удалось сгенерировать примеры: {{error}}",
+ "generationFailed": "Генерация не удалась. Пожалуйста, попробуйте снова.",
+ "classifyFailed": "Не удалось классифицировать изображения: {{error}}"
+ },
+ "generateSuccess": "Примеры изображений успешно сгенерированы",
+ "allImagesRequired_one": "Пожалуйста, классифицируйте все изображения. Осталось {{count}} изображение.",
+ "allImagesRequired_few": "Пожалуйста, классифицируйте все изображения. Осталось {{count}} изображения.",
+ "allImagesRequired_many": "Пожалуйста, классифицируйте все изображения. Осталось {{count}} изображений.",
+ "modelCreated": "Модель успешно создана. Используйте раздел \"Последние классификации\", чтобы добавить изображения для отсутствующих состояний, а затем обучите модель.",
+ "missingStatesWarning": {
+ "title": "Примеры отсутствующих состояний",
+ "description": "Рекомендуется выбрать примеры для всех состояний для достижения наилучших результатов. Вы можете продолжить, не выбрав все состояния, но модель не будет обучена, пока для всех состояний не появятся изображения. После продолжения используйте раздел «Последние классификации», чтобы классифицировать изображения для отсутствующих состояний, а затем обучите модель."
+ }
+ }
+ },
+ "tooltip": {
+ "trainingInProgress": "Модель в данный момент обучается",
+ "noNewImages": "Нет новых изображений для обучения. Сначала классифицируйте больше изображений в наборе данных.",
+ "noChanges": "В наборе данных не было изменений с момента последнего обучения.",
+ "modelNotReady": "Модель не готова к обучению"
+ },
+ "none": "Нет"
+}
diff --git a/web/public/locales/ru/views/configEditor.json b/web/public/locales/ru/views/configEditor.json
index 73b566a08a..0dd775b241 100644
--- a/web/public/locales/ru/views/configEditor.json
+++ b/web/public/locales/ru/views/configEditor.json
@@ -12,5 +12,7 @@
"savingError": "Ошибка сохранения конфигурации"
}
},
- "confirm": "Выйти без сохранения?"
+ "confirm": "Выйти без сохранения?",
+ "safeConfigEditor": "Редактор конфигурации (безопасный режим)",
+ "safeModeDescription": "Frigate находится в безопасном режиме из-за ошибки проверки конфигурации."
}
diff --git a/web/public/locales/ru/views/events.json b/web/public/locales/ru/views/events.json
index 6c8bebb6e8..16fe307ca8 100644
--- a/web/public/locales/ru/views/events.json
+++ b/web/public/locales/ru/views/events.json
@@ -35,5 +35,30 @@
"selected": "{{count}} выбрано",
"selected_one": "{{count}} выбрано",
"selected_other": "{{count}} выбрано",
- "detected": "обнаружен"
+ "detected": "обнаружен",
+ "suspiciousActivity": "Подозрительная активность",
+ "threateningActivity": "Угрожающая активность",
+ "detail": {
+ "noDataFound": "Нет данных для просмотра",
+ "aria": "Переключить подробный режим просмотра",
+ "trackedObject_one": "{{count}} объект",
+ "trackedObject_other": "{{count}} объекта",
+ "noObjectDetailData": "Данные о деталях объекта недоступны.",
+ "label": "Деталь",
+ "settings": "Настройки подробного просмотра",
+ "alwaysExpandActive": {
+ "title": "Всегда раскрывать активный",
+ "desc": "Всегда раскрывать сведения об объекте активного элемента обзора, если они доступны."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Отслеживаемая точка",
+ "clickToSeek": "Перейти к этому моменту"
+ },
+ "zoomIn": "Увеличить",
+ "zoomOut": "Отдалить",
+ "select_all": "Всё",
+ "normalActivity": "Нормальный",
+ "needsReview": "Требуется ревью",
+ "securityConcern": "Вопрос безопасности"
}
diff --git a/web/public/locales/ru/views/explore.json b/web/public/locales/ru/views/explore.json
index 63f6c28673..3247544f50 100644
--- a/web/public/locales/ru/views/explore.json
+++ b/web/public/locales/ru/views/explore.json
@@ -48,12 +48,16 @@
"success": {
"updatedSublabel": "Успешно обновлена дополнительная метка.",
"updatedLPR": "Номерной знак успешно обновлён.",
- "regenerate": "Новое описание запрошено у {{provider}}. В зависимости от скорости работы вашего провайдера, генерация нового описания может занять некоторое время."
+ "regenerate": "Новое описание запрошено у {{provider}}. В зависимости от скорости работы вашего провайдера, генерация нового описания может занять некоторое время.",
+ "audioTranscription": "Запрос на расшифровку аудио успешно отправлен. В зависимости от скорости вашего сервера Frigate, расшифровка может занять некоторое время.",
+ "updatedAttributes": "Атрибуты успешно обновлены."
},
"error": {
"updatedSublabelFailed": "Не удалось обновить дополнительную метку: {{errorMessage}}",
"updatedLPRFailed": "Не удалось обновить номерной знак: {{errorMessage}}",
- "regenerate": "Не удалось запросить новое описание у {{provider}}: {{errorMessage}}"
+ "regenerate": "Не удалось запросить новое описание у {{provider}}: {{errorMessage}}",
+ "audioTranscription": "Не удалось запросить транскрипцию аудио: {{errorMessage}}",
+ "updatedAttributesFailed": "Не удалось обновить атрибуты: {{errorMessage}}"
}
}
},
@@ -98,14 +102,24 @@
"regenerateFromThumbnails": "Перегенерировать из миниатюры",
"snapshotScore": {
"label": "Оценка снимка"
- }
+ },
+ "score": {
+ "label": "Оценка"
+ },
+ "editAttributes": {
+ "title": "Редактировать атрибуты",
+ "desc": "Выберите атрибуты классификации для этого {{label}}"
+ },
+ "attributes": "Атрибуты классификации"
},
"trackedObjectDetails": "Детали объекта",
"type": {
"details": "детали",
"snapshot": "снимок",
"video": "видео",
- "object_lifecycle": "жизненный цикл объекта"
+ "object_lifecycle": "жизненный цикл объекта",
+ "thumbnail": "миниатюра",
+ "tracking_details": "подробности отслеживания"
},
"objectLifecycle": {
"title": "Жизненный цикл объекта",
@@ -183,16 +197,38 @@
},
"deleteTrackedObject": {
"label": "Удалить этот отслеживаемый объект"
+ },
+ "addTrigger": {
+ "label": "Добавить триггер",
+ "aria": "Добавить триггер для этого отслеживаемого объекта"
+ },
+ "audioTranscription": {
+ "label": "Транскрибировать",
+ "aria": "Запросить аудиотранскрипцию"
+ },
+ "viewTrackingDetails": {
+ "label": "Просмотреть детали отслеживания",
+ "aria": "Показать детали отслеживания"
+ },
+ "showObjectDetails": {
+ "label": "Показать путь объекта"
+ },
+ "hideObjectDetails": {
+ "label": "Скрыть путь объекта"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Скачать чистый снимок",
+ "aria": "Скачать чистый снимок"
}
},
"dialog": {
"confirmDelete": {
"title": "Подтвердить удаление",
- "desc": "Удаление этого отслеживаемого объекта приведёт к удалению его снимка, всех сохранённых эмбеддингов и записей жизненного цикла. Сами записи в разделе История НЕ будут удалены.
Вы уверены, что хотите продолжить?"
+ "desc": "Удаление этого отслеживаемого объекта приведёт к удалению снимка, всех сохранённых эмбеддингов и всех связанных записей деталей отслеживания. Записанное видео этого отслеживаемого объекта в представлении Истории НЕ будет удалено.
Вы уверены, что хотите продолжить?"
}
},
- "noTrackedObjects": "Не найдено отслеживаемых объектов",
- "fetchingTrackedObjectsFailed": "При получении списка отслеживаемых объектов произошла ошибка: {{errorMessage}}",
+ "noTrackedObjects": "Отслеживаемые объекты не найдены",
+ "fetchingTrackedObjectsFailed": "Ошибка при получении отслеживаемых объектов: {{errorMessage}}",
"trackedObjectsCount_one": "{{count}} отслеживаемый объект ",
"trackedObjectsCount_few": "{{count}} отслеживаемых объекта ",
"trackedObjectsCount_many": "{{count}} отслеживаемых объектов ",
@@ -203,7 +239,64 @@
"error": "Не удалось удалить отслеживаемый объект: {{errorMessage}}"
}
},
- "tooltip": "Соответствие с {{type}} на {{confidence}}%"
+ "tooltip": "Соответствие с {{type}} на {{confidence}}%",
+ "previousTrackedObject": "Предыдущий отслеживаемый объект",
+ "nextTrackedObject": "Следующий отслеживаемый объект"
},
- "exploreMore": "Просмотреть больше объектов {{label}}"
+ "exploreMore": "Просмотреть больше объектов {{label}}",
+ "aiAnalysis": {
+ "title": "Анализ при помощи ИИ"
+ },
+ "concerns": {
+ "label": "Требуют внимания"
+ },
+ "trackingDetails": {
+ "count": "{{first}} из {{second}}",
+ "title": "Детали отслеживания",
+ "noImageFound": "Для этой метки времени изображение не найдено.",
+ "createObjectMask": "Создать маску объекта",
+ "adjustAnnotationSettings": "Изменить настройки аннотаций",
+ "scrollViewTips": "Нажмите, чтобы просмотреть ключевые моменты жизненного цикла этого объекта.",
+ "autoTrackingTips": "Позиции ограничивающих рамок будут неточными для камер с автотрекингом.",
+ "trackedPoint": "Отслеживаемая точка",
+ "lifecycleItemDesc": {
+ "visible": "Обнаружен(а) {{label}}",
+ "entered_zone": "{{label}} зафиксирован(а) в {{zones}}",
+ "active": "{{label}} активировался(ась)",
+ "stationary": "{{label}} перестал(а) двигаться",
+ "attribute": {
+ "faceOrLicense_plate": "{{attribute}} обнаружен для {{label}}",
+ "other": "{{label}} распознан(а) как {{attribute}}"
+ },
+ "gone": "{{label}} покинул(а) зону",
+ "heard": "Обнаружен звук {{label}}",
+ "external": "Обнаружен(а) {{label}}",
+ "header": {
+ "zones": "Зоны",
+ "ratio": "Соотношение",
+ "area": "Область",
+ "score": "Оценка"
+ }
+ },
+ "annotationSettings": {
+ "title": "Настройки аннотаций",
+ "showAllZones": {
+ "title": "Показать все зоны",
+ "desc": "Всегда показывать зоны на кадрах, где объекты вошли в зону."
+ },
+ "offset": {
+ "label": "Сдвиг аннотаций",
+ "desc": "Эти данные поступают из потока детекции вашей камеры, но накладываются на изображения из потока записи. Потоки вряд ли идеально синхронизированы, поэтому ограничивающая рамка и видео могут не совпадать. Вы можете использовать эту настройку для смещения аннотаций вперед или назад во времени, чтобы лучше выровнять их с записанным видео.",
+ "millisecondsToOffset": "Смещение аннотаций детекции в миллисекундах. По умолчанию: 0",
+ "tips": "Уменьшите значение, если воспроизведение видео опережает рамки и точки пути, и увеличьте значение, если воспроизведение видео отстаёт от них. Это значение может быть отрицательным.",
+ "toast": {
+ "success": "Смещение аннотаций для {{camera}} сохранено в конфигурационном файле."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Предыдущий слайд",
+ "next": "Следующий слайд"
+ }
+ }
}
diff --git a/web/public/locales/ru/views/exports.json b/web/public/locales/ru/views/exports.json
index f48fb3e715..c14a578cab 100644
--- a/web/public/locales/ru/views/exports.json
+++ b/web/public/locales/ru/views/exports.json
@@ -13,5 +13,11 @@
"error": {
"renameExportFailed": "Не удалось переименовать экспорт: {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "shareExport": "Поделиться экспортом",
+ "downloadVideo": "Скачать видео",
+ "editName": "Изменить название",
+ "deleteExport": "Удалить экспорт"
}
}
diff --git a/web/public/locales/ru/views/faceLibrary.json b/web/public/locales/ru/views/faceLibrary.json
index 802f0cebe5..90aa901d18 100644
--- a/web/public/locales/ru/views/faceLibrary.json
+++ b/web/public/locales/ru/views/faceLibrary.json
@@ -12,12 +12,12 @@
"documentTitle": "Библиотека лиц - Frigate",
"description": {
"placeholder": "Введите название коллекции",
- "addFace": "Пошаговое добавление новой коллекции в Библиотеку лиц.",
- "invalidName": "Недопустимое имя. Имена могут содержать только буквы, цифры, пробелы, апострофы, подчеркивания и дефисы."
+ "addFace": "Добавьте новую коллекцию в библиотеку лиц, загрузив свое первое изображение.",
+ "invalidName": "Недопустимое имя. Имена могут содержать только буквы, цифры, пробелы, апострофы, подчёркивания и дефисы."
},
"createFaceLibrary": {
"desc": "Создание новой коллекции",
- "nextSteps": "Для создания надежной базы:
Используйте вкладку Обучение, чтобы выбрать изображения и обучить систему для каждого обнаруженного человека.
Используйте фронтальные изображения для лучшего результата; избегайте изображений с лицами, снятыми под углом.
",
+ "nextSteps": "Для создания надежной базы:
Используйте вкладку \"Недавние распознавания\", чтобы выбрать изображения каждого обнаруженного человека и обучить систему
Используйте фронтальные изображения для лучшего результата; избегайте изображений с лицами, снятыми под углом.
",
"title": "Создать коллекцию",
"new": "Создать новое лицо"
},
@@ -28,9 +28,10 @@
},
"selectItem": "Выбор {{item}}",
"train": {
- "aria": "Выбор обучения",
- "title": "Обучение",
- "empty": "Нет недавних попыток распознавания лиц"
+ "aria": "Выберите последние распознавания",
+ "title": "Последние распознавания",
+ "empty": "Нет недавних попыток распознавания лиц",
+ "titleShort": "Недавнее"
},
"toast": {
"success": {
@@ -43,7 +44,7 @@
"uploadedImage": "Изображение успешно загружено.",
"trainedFace": "Лицо успешно запомнено.",
"addFaceLibrary": "{{name}} успешно добавлен(а) в Библиотеку лиц!",
- "updatedFaceScore": "Оценка лица успешно обновлена.",
+ "updatedFaceScore": "Оценка лица успешно обновлена для {{name}} {{score}}.",
"renamedFace": "Лицо успешно переименовано в {{name}}"
},
"error": {
@@ -62,7 +63,7 @@
},
"imageEntry": {
"dropActive": "Перетащите изображение сюда…",
- "dropInstructions": "Перетащите изображение сюда или нажмите для выбора",
+ "dropInstructions": "Перетащите или вставьте изображение сюда или щелкните, чтобы выбрать",
"maxSize": "Макс. размер: {{size}}Мб",
"validation": {
"selectImage": "Пожалуйста, выберите файл изображения."
diff --git a/web/public/locales/ru/views/live.json b/web/public/locales/ru/views/live.json
index e7960d58f8..9cda2d3c93 100644
--- a/web/public/locales/ru/views/live.json
+++ b/web/public/locales/ru/views/live.json
@@ -43,7 +43,15 @@
"label": "Кликните в кадре для центрирования PTZ-камеры"
}
},
- "presets": "Предустановки PTZ-камеры"
+ "presets": "Предустановки PTZ-камеры",
+ "focus": {
+ "in": {
+ "label": "Сфокусировать PTZ камеру на"
+ },
+ "out": {
+ "label": "Отдалить фокус PTZ камеры"
+ }
+ }
},
"camera": {
"enable": "Включить камеру",
@@ -78,8 +86,8 @@
"disable": "Скрыть статистику потока"
},
"manualRecording": {
- "title": "Запись по требованию",
- "tips": "Создать ручное событие на основе настроек хранения записей этой камеры.",
+ "title": "По требованию",
+ "tips": "Скачать моментальный снимок или создать ручное событие, исходя из настроек хранения записей для этой камеры.",
"playInBackground": {
"label": "Воспроизведение в фоне",
"desc": "Включите эту опцию, чтобы продолжать трансляцию при скрытом плеере."
@@ -124,6 +132,9 @@
"playInBackground": {
"label": "Воспроизвести в фоне",
"tips": "Включите эту опцию, чтобы продолжать трансляцию при скрытом плеере."
+ },
+ "debug": {
+ "picker": "Выбор потока недоступен в режиме отладки. В отладочном представлении всегда используется поток, назначенный на роль обнаружения."
}
},
"cameraSettings": {
@@ -133,7 +144,8 @@
"audioDetection": "Детекция аудио",
"snapshots": "Снимки",
"autotracking": "Автотрекинг",
- "cameraEnabled": "Камера активирована"
+ "cameraEnabled": "Камера активирована",
+ "transcription": "Транскрипция аудио"
},
"history": {
"label": "Отобразить архивные записи"
@@ -154,5 +166,24 @@
"exitEdit": "Выход из редактирования"
},
"audio": "Аудио",
- "notifications": "Уведомления"
+ "notifications": "Уведомления",
+ "transcription": {
+ "enable": "Включить транскрипцию звука в реальном времени",
+ "disable": "Выключить транскрипцию звука"
+ },
+ "snapshot": {
+ "noVideoSource": "Нет видеоисточника для снимка.",
+ "captureFailed": "Не удалось сделать снимок.",
+ "takeSnapshot": "Скачать моментальный снимок",
+ "downloadStarted": "Загрузка снимка началась."
+ },
+ "noCameras": {
+ "title": "Камеры не настроены",
+ "description": "Начните с подключения камеры к Frigate.",
+ "buttonText": "Добавить камеру",
+ "restricted": {
+ "title": "Нет доступных камер",
+ "description": "У вас нет разрешения на просмотр камер в этой группе."
+ }
+ }
}
diff --git a/web/public/locales/ru/views/search.json b/web/public/locales/ru/views/search.json
index 0c7f8477f8..cf90fb1527 100644
--- a/web/public/locales/ru/views/search.json
+++ b/web/public/locales/ru/views/search.json
@@ -26,7 +26,8 @@
"max_speed": "Макс. скорость",
"has_clip": "Есть клип",
"has_snapshot": "Есть снимок",
- "labels": "Метки"
+ "labels": "Метки",
+ "attributes": "Атрибуты"
},
"searchType": {
"thumbnail": "Миниатюра",
diff --git a/web/public/locales/ru/views/settings.json b/web/public/locales/ru/views/settings.json
index 130b566196..504c51178a 100644
--- a/web/public/locales/ru/views/settings.json
+++ b/web/public/locales/ru/views/settings.json
@@ -4,13 +4,15 @@
"camera": "Настройки камеры - Frigate",
"masksAndZones": "Маски и Зоны - Frigate",
"motionTuner": "Детекции движения - Frigate",
- "general": "Общие настройки - Frigate",
+ "general": "Настройки интерфейса - Frigate",
"frigatePlus": "Настройки Frigate+ - Frigate",
"authentication": "Настройки аутентификации - Frigate",
"classification": "Настройки распознавания - Frigate",
"object": "Отладка - Frigate",
"notifications": "Настройки уведомлений - Frigate",
- "enrichments": "Настройки обогащения - Frigate"
+ "enrichments": "Настройки обогащения - Frigate",
+ "cameraManagement": "Управление камерами - Frigate",
+ "cameraReview": "Настройки просмотра камеры - Frigate"
},
"menu": {
"cameras": "Настройки камеры",
@@ -22,7 +24,11 @@
"frigateplus": "Frigate+",
"ui": "Интерфейс",
"classification": "Распознавание",
- "enrichments": "Обогащения"
+ "enrichments": "Обогащения",
+ "triggers": "Триггеры",
+ "cameraManagement": "Управление",
+ "cameraReview": "Обзор",
+ "roles": "Роли"
},
"dialog": {
"unsavedChanges": {
@@ -35,7 +41,7 @@
"noCamera": "Нет камеры"
},
"general": {
- "title": "Общие настройки",
+ "title": "Настройки интерфейса",
"liveDashboard": {
"title": "Панель мониторинга",
"automaticLiveView": {
@@ -45,6 +51,14 @@
"playAlertVideos": {
"label": "Воспроизводить видео с тревогами",
"desc": "По умолчанию последние тревоги на панели мониторинга воспроизводятся как короткие зацикленные видео. Отключите эту опцию, чтобы показывать только статичное изображение последних оповещений на этом устройстве/браузере."
+ },
+ "displayCameraNames": {
+ "label": "Всегда показывать названия камер",
+ "desc": "Всегда показывать названия камер в виде метки на панели мониторинга с несколькими камерами."
+ },
+ "liveFallbackTimeout": {
+ "label": "Таймаут переключения на низкое качество",
+ "desc": "Когда высококачественный поток камеры недоступен, переключиться на режим низкой пропускной способности через указанное количество секунд. По умолчанию: 3."
}
},
"calendar": {
@@ -153,7 +167,12 @@
"setPassword": "Установить пароль",
"desc": "Создайте надежный пароль для защиты аккаунта.",
"cannotBeEmpty": "Пароль не может быть пустым",
- "doNotMatch": "Пароли не совпадают"
+ "doNotMatch": "Пароли не совпадают",
+ "currentPasswordRequired": "Текущий пароль обязателен",
+ "incorrectCurrentPassword": "Текущий пароль указан неверно",
+ "passwordVerificationFailed": "Не удалось проверить пароль",
+ "multiDeviceWarning": "Все остальные устройства, на которых вы вошли в систему, потребуют повторного входа в течение {{refresh_time}}.",
+ "multiDeviceAdmin": "Вы также можете принудительно заставить всех пользователей повторно пройти аутентификацию немедленно, обновив свой JWT-секрет."
},
"deleteUser": {
"warn": "Вы уверены, что хотите удалить пользователя {{username}}?",
@@ -168,7 +187,8 @@
"viewer": "Наблюдатель",
"viewerDesc": "Доступны только панель мониторинга, обзор событий, поиск и экспорт данных.",
"admin": "Администратор",
- "adminDesc": "Полный доступ ко всем функциям."
+ "adminDesc": "Полный доступ ко всем функциям.",
+ "customDesc": "Роль с настраиваемыми правами доступа к определённым камерам."
},
"select": "Выбрать роль"
},
@@ -193,7 +213,16 @@
"veryStrong": "Очень сложный"
},
"match": "Пароли совпадают",
- "notMatch": "Пароли не совпадают"
+ "notMatch": "Пароли не совпадают",
+ "show": "Показать пароль",
+ "hide": "Скрыть пароль",
+ "requirements": {
+ "title": "Требования к паролю:",
+ "length": "Не менее 8 символов",
+ "uppercase": "Как минимум одна заглавная буква",
+ "digit": "Как минимум одна цифра",
+ "special": "Хотя бы один специальный символ (!@#$%^&*(),.?\":{}|<>)"
+ }
},
"newPassword": {
"title": "Новый пароль",
@@ -203,7 +232,11 @@
"placeholder": "Введите новый пароль"
},
"usernameIsRequired": "Необходимо ввести имя пользователя",
- "passwordIsRequired": "Требуется пароль"
+ "passwordIsRequired": "Требуется пароль",
+ "currentPassword": {
+ "title": "Текущий пароль",
+ "placeholder": "Введите ваш текущий пароль"
+ }
},
"createUser": {
"title": "Создать нового пользователя",
@@ -230,7 +263,7 @@
"table": {
"username": "Имя пользователя",
"actions": "Действия",
- "password": "Пароль",
+ "password": "Сбросить пароль",
"noUsers": "Пользователей не найдено.",
"changeRole": "Изменить роль пользователя",
"role": "Роль",
@@ -240,7 +273,7 @@
"title": "Управление пользователями",
"desc": "Управление учетными записями пользователей Frigate."
},
- "updatePassword": "Обновить пароль",
+ "updatePassword": "Сбросить пароль",
"addUser": "Добавить пользователя"
},
"notification": {
@@ -330,6 +363,44 @@
"streams": {
"title": "Потоки",
"desc": "Временно отключить камеру до перезапуска Frigate. Отключение камеры полностью останавливает обработку потоков этой камеры в Frigate. Обнаружение, запись и отладка будут недоступны. Примечание: Это не отключает рестриминг go2rtc."
+ },
+ "object_descriptions": {
+ "title": "Сгенерировать описания объектов при помощи ИИ",
+ "desc": "Временно включить/отключить описание объектов при помощи генеративного ИИ для этой камеры. При отключении описания, описание объектов при помощи генеративного ИИ не будут запрашиваться для отслеживаемых объектов на этой камере."
+ },
+ "review_descriptions": {
+ "title": "Описания обзоров генеративного ИИ",
+ "desc": "Временно включить/отключить описания обзоров с помощью генеративного ИИ для этой камеры. Если отключено, описания, описания обзоров с помощью генеративного ИИ, не будут запрашиваться для элементов обзора для этой камеры."
+ },
+ "addCamera": "Добавить новую камеру",
+ "editCamera": "Редактировать камеру:",
+ "selectCamera": "Выбрать камеру",
+ "backToSettings": "Вернуться к настройкам камеры",
+ "cameraConfig": {
+ "add": "Добавить камеру",
+ "edit": "Редактировать камеру",
+ "description": "Настройте параметры камеры, включая входные трансляции и роли.",
+ "name": "Название камеры",
+ "nameRequired": "Требуется имя камеры",
+ "nameInvalid": "Имя камеры должно содержать только буквы, цифры, подчеркивания или дефисы",
+ "namePlaceholder": "например, front_door",
+ "enabled": "Включено",
+ "ffmpeg": {
+ "inputs": "Входные трансляции",
+ "path": "Путь трансляции",
+ "pathRequired": "Требуется путь трансляции",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Роли",
+ "rolesRequired": "Требуется хотя бы одна роль",
+ "rolesUnique": "Каждая роль (аудио, обнаружение, запись) может быть назначена только одной трансляции",
+ "addInput": "Добавить входной поток",
+ "removeInput": "Удалить входной поток",
+ "inputsRequired": "Требуется хотя бы 1 входной поток"
+ },
+ "toast": {
+ "success": "Камера {{cameraName}} успешно сохранена"
+ },
+ "nameLength": "Название камеры должно содержать не более 24 символов."
}
},
"masksAndZones": {
@@ -362,7 +433,7 @@
"name": {
"title": "Название",
"inputPlaceHolder": "Введите название…",
- "tips": "Название должно содержать не менее 2 символов и не совпадать с названием камеры или другой зоны."
+ "tips": "Имя должно содержать не менее 2 символов, включать хотя бы одну букву и не должно совпадать с названием камеры или другой зоны на этой камере."
},
"inertia": {
"title": "Инерция",
@@ -384,7 +455,7 @@
"desc": "Задаёт минимальную скорость объектов для учёта в этой зоне."
},
"toast": {
- "success": "Зона ({{zoneName}}) сохранена. Перезапустите Frigate для применения изменений."
+ "success": "Зона ({{zoneName}}) сохранена."
}
},
"motionMasks": {
@@ -411,8 +482,8 @@
"documentTitle": "Редактирование маски движения - Frigate",
"toast": {
"success": {
- "title": "{{polygonName}} сохранена. Перезапустите Frigate для применения изменений.",
- "noName": "Маска движения сохранена. Перезапустите Frigate для применения изменений."
+ "title": "{{polygonName}} сохранена.",
+ "noName": "Маска движения сохранена."
}
}
},
@@ -426,7 +497,8 @@
"mustNotBeSameWithCamera": "Имя зоны не должно совпадать с именем камеры.",
"hasIllegalCharacter": "Имя зоны содержит недопустимые символы.",
"alreadyExists": "Зона с таким именем уже существует для этой камеры.",
- "mustNotContainPeriod": "Имя зоны не должно содержать точки."
+ "mustNotContainPeriod": "Имя зоны не должно содержать точки.",
+ "mustHaveAtLeastOneLetter": "Название зоны должно содержать хотя бы одну букву."
}
},
"distance": {
@@ -498,8 +570,8 @@
},
"toast": {
"success": {
- "title": "{{polygonName}} сохранена. Перезапустите Frigate для применения изменений.",
- "noName": "Маска объектов сохранена. Перезапустите Frigate для применения изменений."
+ "title": "{{polygonName}} сохранена.",
+ "noName": "Маска объектов сохранена."
}
}
},
@@ -575,6 +647,19 @@
"title": "Регионы",
"desc": "Показать рамку области интереса, отправленной детектору объектов",
"tips": "
Рамки областей интереса
Ярко-зелёные рамки будут наложены на области интереса в кадре, которые отправляются детектору объектов.
"
+ },
+ "paths": {
+ "title": "Пути",
+ "desc": "Показывать значимые точки пути отслеживаемого объекта",
+ "tips": "
Пути
Линии и круги будут обозначать важные точки, которые отслеживаемый объект посетил в течение своего жизненного цикла.
"
+ },
+ "openCameraWebUI": "Открыть веб-интерфейс {{camera}}",
+ "audio": {
+ "title": "Аудио",
+ "noAudioDetections": "Аудиообнаружений нет",
+ "score": "оценка",
+ "currentRMS": "Текущий RMS",
+ "currentdbFS": "Текущий dbFS"
}
},
"frigatePlus": {
@@ -683,5 +768,495 @@
"success": "Настройки обогащений сохранены. Перезапустите Frigate, чтобы применить изменения.",
"error": "Не удалось сохранить изменения: {{errorMessage}}"
}
+ },
+ "triggers": {
+ "documentTitle": "Триггеры",
+ "management": {
+ "title": "Триггеры",
+ "desc": "Управление триггерами для камеры {{camera}}. Используйте тип миниатюры для срабатывания по миниатюрам, похожим на выбранный отслеживаемый объект, и тип описания для срабатывания по описаниям, похожим на указанный вами текст."
+ },
+ "addTrigger": "Добавить Триггер",
+ "table": {
+ "name": "Имя",
+ "type": "Тип",
+ "content": "Содержимое",
+ "threshold": "Порог",
+ "actions": "Действия",
+ "noTriggers": "Для этой камеры не настроены триггеры.",
+ "edit": "Редактировать",
+ "deleteTrigger": "Удалить триггер",
+ "lastTriggered": "Последний сработавший"
+ },
+ "type": {
+ "thumbnail": "Миниатюра",
+ "description": "Описание"
+ },
+ "actions": {
+ "alert": "Отметить как предупреждение",
+ "notification": "Отправить оповещение",
+ "sub_label": "Добавить подметку",
+ "attribute": "Добавить атрибут"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Создать триггер",
+ "desc": "Создать триггер для камеры {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Изменить триггер",
+ "desc": "Изменить настройки триггера для камеры {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Удалить триггер",
+ "desc": "Вы уверены, что хотите удалить триггер {{triggerName}}? Это действие не может быть отменено."
+ },
+ "form": {
+ "name": {
+ "title": "Имя",
+ "placeholder": "Назовите этот триггер",
+ "error": {
+ "minLength": "Поле должно содержать не менее 2 символов.",
+ "invalidCharacters": "Поле может содержать только буквы, цифры, символы подчеркивания и дефисы.",
+ "alreadyExists": "Триггер с таким именем уже существует для этой камеры."
+ },
+ "description": "Введите уникальное имя или описание для идентификации этого триггера"
+ },
+ "enabled": {
+ "description": "Включить или отключить этот триггер"
+ },
+ "type": {
+ "title": "Тип",
+ "placeholder": "Выберите тип триггера",
+ "description": "Срабатывать при обнаружении похожего описания отслеживаемого объекта",
+ "thumbnail": "Срабатывать при обнаружении похожей миниатюры отслеживаемого объекта"
+ },
+ "content": {
+ "title": "Содержимое",
+ "imagePlaceholder": "Выберите миниатюру",
+ "textPlaceholder": "Введите текстовое содержимое",
+ "imageDesc": "Отображаются только 100 последних миниатюр. Если вы не можете найти нужную миниатюру, просмотрите предыдущие объекты в разделе \"Обзор\" и настройте триггер оттуда через меню.",
+ "textDesc": "Введите текст, чтобы активировать это действие при обнаружении похожего описания отслеживаемого объекта.",
+ "error": {
+ "required": "Требуется содержимое."
+ }
+ },
+ "threshold": {
+ "title": "Порог",
+ "error": {
+ "min": "Порог должен быть не менее 0",
+ "max": "Порог должен быть не более 1"
+ },
+ "desc": "Установите порог схожести для этого триггера. Более высокое значение требует более точного совпадения для срабатывания триггера."
+ },
+ "actions": {
+ "title": "Действия",
+ "desc": "По умолчанию Frigate отправляет MQTT-сообщение для всех триггеров. Подметки добавляют имя триггера к метке объекта. Атрибуты — это доступные для поиска метаданные, хранящиеся отдельно в метаданных отслеживаемого объекта.",
+ "error": {
+ "min": "Необходимо выбрать хотя бы одно действие."
+ }
+ },
+ "friendly_name": {
+ "description": "Необязательное название или описание к этому триггеру",
+ "placeholder": "Название или описание триггера",
+ "title": "Понятное название"
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Триггер {{name}} успешно создан.",
+ "updateTrigger": "Триггер {{name}} успешно обновлен.",
+ "deleteTrigger": "Триггер {{name}} успешно удален."
+ },
+ "error": {
+ "createTriggerFailed": "Не удалось создать триггер: {{errorMessage}}",
+ "updateTriggerFailed": "Не удалось обновить триггер: {{errorMessage}}",
+ "deleteTriggerFailed": "Не удалось удалить триггер: {{errorMessage}}"
+ }
+ },
+ "semanticSearch": {
+ "title": "Семантический поиск выключен",
+ "desc": "Для использования триггеров необходимо включить семантический поиск."
+ },
+ "wizard": {
+ "title": "Создать триггер",
+ "step1": {
+ "description": "Настройте основные параметры вашего триггера."
+ },
+ "step2": {
+ "description": "Настройте содержимое, которое будет активировать это действие."
+ },
+ "step3": {
+ "description": "Настройте порог и действия для этого триггера."
+ },
+ "steps": {
+ "nameAndType": "Имя и тип",
+ "configureData": "Настроить данные",
+ "thresholdAndActions": "Порог и действия"
+ }
+ }
+ },
+ "cameraWizard": {
+ "title": "Добавить камеру",
+ "description": "Следуйте инструкциям ниже, чтобы добавить новую камеру в вашу установку Frigate.",
+ "steps": {
+ "nameAndConnection": "Имя и подключение",
+ "streamConfiguration": "Конфигурация потока",
+ "validationAndTesting": "Проверка и тестирование",
+ "probeOrSnapshot": "Проверка или снимок"
+ },
+ "save": {
+ "success": "Новая камера {{cameraName}} успешно сохранена.",
+ "failure": "Ошибка при сохранении {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Разрешение",
+ "video": "Видео",
+ "audio": "Аудио",
+ "fps": "Кадры в секунду (FPS)"
+ },
+ "commonErrors": {
+ "noUrl": "Пожалуйста, укажите корректный URL потока",
+ "testFailed": "Тест потока не удался: {{error}}"
+ },
+ "step1": {
+ "description": "Введите параметры вашей камеры и выберите: автоматическое определение или ручной выбор производителя.",
+ "cameraName": "Имя камеры",
+ "cameraNamePlaceholder": "Например, front_door или Обзор заднего двора",
+ "host": "Хост/IP-адрес",
+ "port": "Порт",
+ "username": "Имя пользователя",
+ "usernamePlaceholder": "Необязательно",
+ "password": "Пароль",
+ "passwordPlaceholder": "Необязательно",
+ "selectTransport": "Выберите транспортный протокол",
+ "cameraBrand": "Бренд камеры",
+ "selectBrand": "Выберите бренд камеры для шаблона URL",
+ "customUrl": "Пользовательский URL потока",
+ "brandInformation": "Информация о бренде",
+ "brandUrlFormat": "Для камер с форматом RTSP-URL вида: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://имя_пользователя:пароль@хост:порт/путь",
+ "testConnection": "Проверить соединение",
+ "testSuccess": "Соединение успешно установлено!",
+ "testFailed": "Проверка соединения не удалась. Проверьте введённые данные и попробуйте снова.",
+ "streamDetails": "Детали потока",
+ "warnings": {
+ "noSnapshot": "Не удалось получить снимок из настроенного потока."
+ },
+ "errors": {
+ "brandOrCustomUrlRequired": "Выберите бренд камеры с указанием хоста/IP или выберите \"Другое\" и укажите пользовательский URL",
+ "nameRequired": "Необходимо указать имя камеры",
+ "nameLength": "Имя камеры должно содержать не более 64 символов",
+ "invalidCharacters": "Имя камеры содержит недопустимые символы",
+ "nameExists": "Имя камеры уже используется",
+ "brands": {
+ "reolink-rtsp": "RTSP от Reolink не рекомендуется. Включите HTTP в настройках камеры и перезапустите мастер настройки камеры."
+ },
+ "customUrlRtspRequired": "Пользовательские URL должны начинаться с \"rtsp://\". Для потоков камер, не использующих RTSP, требуется ручная настройка."
+ },
+ "docs": {
+ "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
+ },
+ "testing": {
+ "probingMetadata": "Проверка метаданных камеры…",
+ "fetchingSnapshot": "Получение снимка с камеры…"
+ },
+ "connectionSettings": "Настройки подключения",
+ "detectionMethod": "Метод обнаружения потока",
+ "onvifPort": "Порт ONVIF",
+ "probeMode": "Проверить камеру",
+ "manualMode": "Ручной выбор",
+ "detectionMethodDescription": "Проверьте камеру с помощью ONVIF (если поддерживается) для поиска URL потоков камеры или вручную выберите бренд камеры для использования предопределённых URL. Чтобы ввести пользовательский RTSP URL, выберите ручной метод и выберите \"Другое\".",
+ "onvifPortDescription": "Для камер, поддерживающих ONVIF, это обычно 80 или 8080.",
+ "useDigestAuth": "Использовать digest-аутентификацию",
+ "useDigestAuthDescription": "Использовать HTTP digest-аутентификацию для ONVIF. Некоторые камеры могут требовать отдельное имя пользователя/пароль ONVIF вместо стандартного пользователя администратора."
+ },
+ "step2": {
+ "description": "Проверьте камеру на наличие доступных потоков или настройте параметры вручную в зависимости от выбранного метода обнаружения.",
+ "streamsTitle": "Потоки камеры",
+ "addStream": "Добавить поток",
+ "addAnotherStream": "Добавить ещё один поток",
+ "streamTitle": "Поток {{number}}",
+ "streamUrl": "URL потока",
+ "streamUrlPlaceholder": "rtsp://имя_пользователя:пароль@хост:порт/путь",
+ "url": "URL",
+ "resolution": "Разрешение",
+ "selectResolution": "Выберите разрешение",
+ "quality": "Качество",
+ "selectQuality": "Выберите качество",
+ "roles": "Роли",
+ "roleLabels": {
+ "detect": "Обнаружение объектов",
+ "record": "Запись",
+ "audio": "Аудио"
+ },
+ "testStream": "Проверить соединение",
+ "testSuccess": "Проверка соединения успешна!",
+ "testFailed": "Проверка соединения не удалась. Проверьте введённые данные и попробуйте снова.",
+ "testFailedTitle": "Проверка не удалась",
+ "streamDetails": "Детали потока",
+ "probing": "Проверка камеры…",
+ "retry": "Повторить",
+ "testing": {
+ "probingMetadata": "Проверка метаданных камеры…",
+ "fetchingSnapshot": "Получение снимка с камеры…"
+ },
+ "probeFailed": "Не удалось проверить камеру: {{error}}",
+ "probingDevice": "Проверка устройства…",
+ "probeSuccessful": "Проверка успешна",
+ "probeError": "Ошибка проверки",
+ "probeNoSuccess": "Проверка не удалась",
+ "deviceInfo": "Информация об устройстве",
+ "manufacturer": "Производитель",
+ "model": "Модель",
+ "firmware": "Прошивка",
+ "profiles": "Профили",
+ "ptzSupport": "Поддержка PTZ",
+ "autotrackingSupport": "Поддержка автотрекинга",
+ "presets": "Предустановки",
+ "rtspCandidates": "Кандидаты RTSP",
+ "rtspCandidatesDescription": "Следующие RTSP URL были найдены при проверке камеры. Проверьте соединение, чтобы просмотреть метаданные потока.",
+ "noRtspCandidates": "RTSP URL не найдены для камеры. Ваши учётные данные могут быть неверными, или камера может не поддерживать ONVIF или метод, используемый для получения RTSP URL. Вернитесь назад и введите RTSP URL вручную.",
+ "candidateStreamTitle": "Кандидат {{number}}",
+ "useCandidate": "Использовать",
+ "uriCopy": "Копировать",
+ "uriCopied": "URI скопирован в буфер обмена",
+ "testConnection": "Проверить соединение",
+ "toggleUriView": "Нажмите, чтобы переключить полный вид URI",
+ "connected": "Подключено",
+ "notConnected": "Не подключено",
+ "errors": {
+ "hostRequired": "Требуется хост/IP-адрес"
+ }
+ },
+ "step3": {
+ "description": "Настройте роли потоков и добавьте дополнительные потоки для вашей камеры.",
+ "streamsTitle": "Потоки камеры",
+ "addStream": "Добавить поток",
+ "addAnotherStream": "Добавить ещё поток",
+ "streamTitle": "Поток {{number}}",
+ "streamUrl": "URL потока",
+ "streamUrlPlaceholder": "rtsp://имя_пользователя:пароль@хост:порт/путь",
+ "selectStream": "Выбрать поток",
+ "searchCandidates": "Поиск кандидатов…",
+ "noStreamFound": "Поток не найден",
+ "url": "URL",
+ "resolution": "Разрешение",
+ "selectResolution": "Выберите разрешение",
+ "quality": "Качество",
+ "selectQuality": "Выберите качество",
+ "roles": "Роли",
+ "roleLabels": {
+ "detect": "Обнаружение объектов",
+ "record": "Запись",
+ "audio": "Аудио"
+ },
+ "testStream": "Проверить соединение",
+ "testSuccess": "Тест потока выполнен успешно!",
+ "testFailed": "Тест потока не пройден",
+ "testFailedTitle": "Тест не пройден",
+ "connected": "Подключено",
+ "notConnected": "Не подключено",
+ "featuresTitle": "Функции",
+ "go2rtc": "Уменьшить количество подключений к камере",
+ "detectRoleWarning": "Хотя бы один поток должен иметь роль \"detect\" для продолжения.",
+ "rolesPopover": {
+ "title": "Роли потоков",
+ "detect": "Основной поток для обнаружения объектов.",
+ "record": "Сохраняет сегменты видеопотока на основе настроек конфигурации.",
+ "audio": "Поток для обнаружения на основе аудио."
+ },
+ "featuresPopover": {
+ "title": "Функции потоков",
+ "description": "Использовать рестриминг go2rtc для уменьшения количества подключений к камере."
+ }
+ },
+ "step4": {
+ "description": "Финальная проверка и анализ перед сохранением новой камеры. Подключите каждый поток перед сохранением.",
+ "validationTitle": "Проверка потоков",
+ "connectAllStreams": "Подключить все потоки",
+ "reconnectionSuccess": "Переподключение успешно.",
+ "reconnectionPartial": "Некоторые потоки не удалось переподключить.",
+ "streamUnavailable": "Предпросмотр потока недоступен",
+ "reload": "Перезагрузить",
+ "connecting": "Подключение…",
+ "streamTitle": "Поток {{number}}",
+ "valid": "Действителен",
+ "failed": "Не удалось",
+ "notTested": "Не проверен",
+ "connectStream": "Подключить",
+ "connectingStream": "Подключение",
+ "disconnectStream": "Отключить",
+ "estimatedBandwidth": "Расчётная пропускная способность",
+ "roles": "Роли",
+ "ffmpegModule": "Использовать режим совместимости потоков",
+ "ffmpegModuleDescription": "Если поток не загружается после нескольких попыток, попробуйте включить это. При включении Frigate будет использовать модуль ffmpeg с go2rtc. Это может обеспечить лучшую совместимость с некоторыми потоками камер.",
+ "none": "Нет",
+ "error": "Ошибка",
+ "streamValidated": "Поток {{number}} успешно проверен",
+ "streamValidationFailed": "Проверка потока {{number}} не удалась",
+ "saveAndApply": "Сохранить новую камеру",
+ "saveError": "Неверная конфигурация. Пожалуйста, проверьте настройки.",
+ "issues": {
+ "title": "Проверка потоков",
+ "videoCodecGood": "Видеокодек: {{codec}}.",
+ "audioCodecGood": "Аудиокодек: {{codec}}.",
+ "resolutionHigh": "Разрешение {{resolution}} может привести к увеличению использования ресурсов.",
+ "resolutionLow": "Разрешение {{resolution}} может быть слишком низким для надёжного обнаружения мелких объектов.",
+ "noAudioWarning": "Аудио не обнаружено для этого потока, записи не будут содержать аудио.",
+ "audioCodecRecordError": "Для поддержки аудио в записях требуется аудиокодек AAC.",
+ "audioCodecRequired": "Для поддержки обнаружения аудио требуется аудиопоток.",
+ "restreamingWarning": "Уменьшение количества подключений к камере для потока записи может немного увеличить использование CPU.",
+ "brands": {
+ "reolink-rtsp": "RTSP от Reolink не рекомендуется. Включите HTTP в настройках прошивки камеры и перезапустите мастер.",
+ "reolink-http": "HTTP потоки Reolink должны использовать FFmpeg для лучшей совместимости. Включите 'Использовать режим совместимости потоков' для этого потока."
+ },
+ "dahua": {
+ "substreamWarning": "Подпоток 1 заблокирован на низком разрешении. Многие камеры Dahua / Amcrest / EmpireTech поддерживают дополнительные подпотоки, которые необходимо включить в настройках камеры. Рекомендуется проверить и использовать эти потоки, если они доступны."
+ },
+ "hikvision": {
+ "substreamWarning": "Подпоток 1 заблокирован на низком разрешении. Многие камеры Hikvision поддерживают дополнительные подпотоки, которые необходимо включить в настройках камеры. Рекомендуется проверить и использовать эти потоки, если они доступны."
+ }
+ }
+ }
+ },
+ "roles": {
+ "addRole": "Добавить роль",
+ "table": {
+ "role": "Роль",
+ "cameras": "Камеры",
+ "actions": "Действия",
+ "editCameras": "Редактировать камеры",
+ "deleteRole": "Удалить роль",
+ "noRoles": "Пользовательских ролей не найдено."
+ },
+ "toast": {
+ "success": {
+ "createRole": "Роль {{role}} успешно создана",
+ "updateCameras": "Камеры обновлены для роли {{role}}",
+ "deleteRole": "Роль {{role}} успешно удалена",
+ "userRolesUpdated_one": "{{count}} пользователь, назначенный на эту роль, был обновлён до роли 'наблюдатель', которая имеет доступ ко всем камерам.",
+ "userRolesUpdated_few": "{{count}} пользователя, назначенных на эту роль, были обновлены до роли 'наблюдатель', которая имеет доступ ко всем камерам.",
+ "userRolesUpdated_many": "{{count}} пользователей, назначенных на эту роль, были обновлены до роли 'наблюдатель', которая имеет доступ ко всем камерам."
+ },
+ "error": {
+ "createRoleFailed": "Не удалось создать роль: {{errorMessage}}",
+ "updateCamerasFailed": "Не удалось обновить камеры: {{errorMessage}}",
+ "deleteRoleFailed": "Не удалось удалить роль: {{errorMessage}}",
+ "userUpdateFailed": "Не удалось обновить роли пользователей: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Создать новую роль",
+ "desc": "Добавьте новую роль и укажите права доступа к камерам."
+ },
+ "editCameras": {
+ "title": "Редактировать камеры роли",
+ "desc": "Обновите доступ к камерам для роли {{role}}."
+ },
+ "deleteRole": {
+ "title": "Удалить роль",
+ "desc": "Это действие нельзя отменить. Это действие навсегда удалит роль и назначит всех пользователей с этой ролью на роль 'наблюдатель', что даст наблюдателю доступ ко всем камерам.",
+ "warn": "Вы уверены, что хотите удалить {{role}}?",
+ "deleting": "Удаление…"
+ },
+ "form": {
+ "role": {
+ "title": "Название роли",
+ "placeholder": "Введите название роли",
+ "desc": "Разрешены только буквы, цифры, точки и подчёркивания.",
+ "roleIsRequired": "Требуется название роли",
+ "roleOnlyInclude": "Название роли может содержать только буквы, цифры, . или _",
+ "roleExists": "Роль с таким названием уже существует."
+ },
+ "cameras": {
+ "title": "Камеры",
+ "desc": "Выберите камеры, к которым эта роль имеет доступ. Необходимо выбрать хотя бы одну камеру.",
+ "required": "Необходимо выбрать хотя бы одну камеру."
+ }
+ }
+ },
+ "management": {
+ "title": "Управление ролями наблюдателя",
+ "desc": "Управление пользовательскими ролями наблюдателя и их правами доступа к камерам для этого экземпляра Frigate."
+ }
+ },
+ "cameraManagement": {
+ "title": "Управление камерами",
+ "addCamera": "Добавить новую камеру",
+ "editCamera": "Редактировать камеру:",
+ "selectCamera": "Выбрать камеру",
+ "backToSettings": "Вернуться к настройкам камеры",
+ "streams": {
+ "title": "Включить / Отключить камеры",
+ "desc": "Временно отключить камеру до перезапуска Frigate. Отключение камеры полностью останавливает обработку потоков этой камеры в Frigate. Обнаружение, запись и отладка будут недоступны. Примечание: Это не отключает рестриминг go2rtc."
+ },
+ "cameraConfig": {
+ "add": "Добавить камеру",
+ "edit": "Редактировать камеру",
+ "description": "Настройте параметры камеры, включая входные трансляции и роли.",
+ "name": "Название камеры",
+ "nameRequired": "Требуется имя камеры",
+ "nameLength": "Название камеры должно содержать менее 64 символов.",
+ "namePlaceholder": "например, front_door или Обзор заднего двора",
+ "enabled": "Включено",
+ "ffmpeg": {
+ "inputs": "Входные потоки",
+ "path": "Путь потока",
+ "pathRequired": "Требуется путь потока",
+ "pathPlaceholder": "rtsp://…",
+ "roles": "Роли",
+ "rolesRequired": "Требуется хотя бы одна роль",
+ "rolesUnique": "Каждая роль (аудио, обнаружение, запись) может быть назначена только одной трансляции",
+ "addInput": "Добавить входной поток",
+ "removeInput": "Удалить входной поток",
+ "inputsRequired": "Требуется хотя бы один входной поток"
+ },
+ "go2rtcStreams": "Потоки go2rtc",
+ "streamUrls": "URL потоков",
+ "addUrl": "Добавить URL",
+ "addGo2rtcStream": "Добавить поток go2rtc",
+ "toast": {
+ "success": "Камера {{cameraName}} успешно сохранена"
+ }
+ }
+ },
+ "cameraReview": {
+ "title": "Настройки просмотра камеры",
+ "object_descriptions": {
+ "title": "Генеративные описания объектов ИИ",
+ "desc": "Временно включить/отключить генеративные описания объектов ИИ для этой камеры. При отключении описания объектов, сгенерированные ИИ, не будут запрашиваться для отслеживаемых объектов на этой камере."
+ },
+ "review_descriptions": {
+ "title": "Генеративные описания обзоров ИИ",
+ "desc": "Временно включить/отключить генеративные описания обзоров ИИ для этой камеры. При отключении описания обзоров, сгенерированные ИИ, не будут запрашиваться для элементов обзора на этой камере."
+ },
+ "review": {
+ "title": "Обзор",
+ "desc": "Временно включить/отключить тревоги и обнаружения для этой камеры до перезапуска Frigate. При отключении новые элементы обзора не будут создаваться. ",
+ "alerts": "Тревоги ",
+ "detections": "Обнаружения "
+ },
+ "reviewClassification": {
+ "title": "Классификация обзора",
+ "desc": "Frigate классифицирует элементы обзора как Тревоги и Обнаружения. По умолчанию все объекты person и car считаются Тревогами. Вы можете уточнить классификацию элементов обзора, настроив для них требуемые зоны.",
+ "noDefinedZones": "Для этой камеры не определено ни одной зоны.",
+ "objectAlertsTips": "Все объекты {{alertsLabels}} на камере {{cameraName}} будут отображаться как Тревоги.",
+ "zoneObjectAlertsTips": "Все объекты {{alertsLabels}}, обнаруженные в {{zone}} на камере {{cameraName}}, будут отображаться как Тревоги.",
+ "objectDetectionsTips": "Все объекты {{detectionsLabels}}, не отнесённые к категории на камере {{cameraName}}, будут отображаться как Обнаружения, независимо от того, в какой зоне они находятся.",
+ "zoneObjectDetectionsTips": {
+ "text": "Все объекты {{detectionsLabels}}, не отнесённые к категории в {{zone}} на камере {{cameraName}}, будут отображаться как Обнаружения.",
+ "notSelectDetections": "Все объекты {{detectionsLabels}}, обнаруженные в {{zone}} на камере {{cameraName}}, которые не отнесены к Тревогам, будут отображаться как Обнаружения, независимо от того, в какой зоне они находятся.",
+ "regardlessOfZoneObjectDetectionsTips": "Все объекты {{detectionsLabels}}, не отнесённые к категории на камере {{cameraName}}, будут отображаться как Обнаружения, независимо от того, в какой зоне они находятся."
+ },
+ "unsavedChanges": "Несохранённые настройки классификации обзора для {{camera}}",
+ "selectAlertsZones": "Выберите зоны для Тревог",
+ "selectDetectionsZones": "Выберите зоны для обнаружений",
+ "limitDetections": "Ограничить обнаружения определёнными зонами",
+ "toast": {
+ "success": "Конфигурация классификации обзора была сохранена. Перезапустите Frigate для применения изменений."
+ }
+ }
}
}
diff --git a/web/public/locales/ru/views/system.json b/web/public/locales/ru/views/system.json
index 3e0052a88f..f3f7a3d95c 100644
--- a/web/public/locales/ru/views/system.json
+++ b/web/public/locales/ru/views/system.json
@@ -42,7 +42,8 @@
"inferenceSpeed": "Скорость вывода детектора",
"cpuUsage": "Использование CPU детектором",
"memoryUsage": "Использование памяти детектором",
- "temperature": "Температура детектора"
+ "temperature": "Температура детектора",
+ "cpuUsageInformation": "CPU используется при подготовке входных и выходных данных к/от моделей обнаружения. Это значение не измеряет использование вывода, даже если использовать GPU или ускоритель."
},
"hardwareInfo": {
"title": "Информация об оборудовании",
@@ -75,7 +76,12 @@
}
},
"npuMemory": "Память NPU",
- "npuUsage": "Использование NPU"
+ "npuUsage": "Использование NPU",
+ "intelGpuWarning": {
+ "title": "Предупреждение: статистика Intel GPU",
+ "message": "Статистика GPU недоступна",
+ "description": "Это известная ошибка в инструментах отчетности статистики Intel GPU (intel_gpu_top), из-за которой они ломаются и постоянно возвращают уровень использования GPU 0%, даже в случаях, когда аппаратное ускорение и обнаружение объектов корректно работают на (i)GPU. Это не ошибка Frigate. Вы можете перезапустить хост-систему, чтобы временно устранить проблему и убедиться, что GPU работает правильно. На производительность это не влияет."
+ }
},
"otherProcesses": {
"title": "Другие процессы",
@@ -102,6 +108,10 @@
"title": "Не используется",
"tips": "Это значение может неточно отражать свободное место, доступное Frigate, если на вашем диске есть другие файлы помимо записей Frigate. Frigate не отслеживает использование хранилища за пределами своих записей."
}
+ },
+ "shm": {
+ "title": "Выделение разделяемой памяти",
+ "warning": "Текущеее значение разделяемой памяти в {{total}}MB слишком мало. Увеличьте его хотя бы до {{min_shm}}MB."
}
},
"cameras": {
@@ -158,7 +168,8 @@
"reindexingEmbeddings": "Переиндексация эмбеддингов (выполнено {{processed}} %)",
"cameraIsOffline": "{{camera}} отключена",
"detectIsVerySlow": "{{detect}} идёт очень медленно ({{speed}} мс)",
- "detectIsSlow": "{{detect}} идёт медленно ({{speed}} мс)"
+ "detectIsSlow": "{{detect}} идёт медленно ({{speed}} мс)",
+ "shmTooLow": "Объем выделенной памяти /dev/shm ({{total}} МБ) должен быть увеличен как минимум до {{min}} МБ."
},
"enrichments": {
"title": "Обогащение данных",
@@ -174,7 +185,17 @@
"yolov9_plate_detection": "Обнаружение номеров YOLOv9",
"face_recognition": "Распознавание лиц",
"plate_recognition": "Распознавание номеров",
- "image_embedding": "Векторизация изображений"
- }
+ "image_embedding": "Векторизация изображений",
+ "review_description": "Описание проверки",
+ "review_description_speed": "Скорость просмотра описания",
+ "review_description_events_per_second": "Описание проверки",
+ "object_description": "Описание объекта",
+ "object_description_speed": "Скорость описания объекта",
+ "object_description_events_per_second": "Описание объекта",
+ "classification": "{{name}} Классификация",
+ "classification_speed": "{{name}}Классификация скорости",
+ "classification_events_per_second": "{{name}} событий классификации в секунду"
+ },
+ "averageInf": "Среднее время обработки"
}
}
diff --git a/web/public/locales/sk/audio.json b/web/public/locales/sk/audio.json
index 8a10ee24a2..56129353f3 100644
--- a/web/public/locales/sk/audio.json
+++ b/web/public/locales/sk/audio.json
@@ -2,7 +2,7 @@
"speech": "Reč",
"babbling": "Bľabotanie",
"yell": "Krik",
- "bellow": "Rev",
+ "bellow": "Pod",
"whispering": "Šepkanie",
"whoop": "Výskanie",
"laughter": "Smiech",
@@ -47,5 +47,457 @@
"horse": "Kôň",
"sheep": "Ovce",
"camera": "Kamera",
- "pant": "Oddychávanie"
+ "pant": "Oddychávanie",
+ "gargling": "Grganie",
+ "stomach_rumble": "Škvŕkanie v žalúdku",
+ "burping": "Grganie",
+ "skateboard": "Skateboard",
+ "hiccup": "Škytavka",
+ "fart": "Prd",
+ "hands": "Ruky",
+ "finger_snapping": "Lusknutie prstom",
+ "clapping": "Tlieskanie",
+ "heartbeat": "Tlkot srdca",
+ "heart_murmur": "Srdcový šelest",
+ "cheering": "Fandenie",
+ "applause": "Potlesk",
+ "chatter": "Chatárčenie",
+ "crowd": "Dav",
+ "children_playing": "Deti hrajúce sa",
+ "animal": "Zviera",
+ "pets": "Domáce zvieratá",
+ "bark": "Kôra",
+ "yip": "Áno",
+ "howl": "Zavýjať",
+ "bow_wow": "Hlasitého protestu",
+ "growling": "Vrčanie",
+ "whimper_dog": "Psie kňučanie",
+ "purr": "Pradenie",
+ "meow": "Mňau",
+ "hiss": "Syčanie",
+ "caterwaul": "Kričať",
+ "livestock": "Hospodárske zvieratá",
+ "clip_clop": "Klepanie kopyt",
+ "neigh": "Eržanie",
+ "door": "Dvere",
+ "cattle": "Hovädzí dobytok",
+ "moo": "Búčanie",
+ "cowbell": "Kravský zvonec",
+ "mouse": "Myška",
+ "pig": "Prasa",
+ "oink": "Chrčanie",
+ "keyboard": "Klávesnica",
+ "goat": "Koza",
+ "bleat": "nariekať",
+ "fowl": "Sliepky",
+ "chicken": "Slepica",
+ "sink": "Umývadlo",
+ "cluck": "Kvákanie",
+ "cock_a_doodle_doo": "Kykyryký",
+ "blender": "Mixér",
+ "turkey": "Morka",
+ "gobble": "Hltať",
+ "clock": "Hodiny",
+ "duck": "Kačica",
+ "wild_animals": "Divoké zvieratá",
+ "toothbrush": "Zubná kefka",
+ "roaring_cats": "Revúce mačky",
+ "roar": "Revať",
+ "vehicle": "Vozidlo",
+ "quack": "Quack",
+ "scissors": "Nožnice",
+ "goose": "Hus",
+ "honk": "Truba",
+ "hair_dryer": "Sušič vlasov",
+ "chirp": "Cvrlikanie",
+ "squawk": "Škriekanie",
+ "pigeon": "Holub",
+ "coo": "Vrkanie",
+ "crow": "Vrana",
+ "caw": "Krákanie",
+ "owl": "Sova",
+ "hoot": "Húkanie",
+ "flapping_wings": "Mávanie krídel",
+ "dogs": "Psi",
+ "rats": "Potkany",
+ "patter": "Plácanie",
+ "insect": "Hmyz",
+ "cricket": "Cvrček",
+ "mosquito": "Komár",
+ "fly": "Mucha",
+ "buzz": "Bzučanie",
+ "frog": "Žaba",
+ "croak": "Kvákanie žaby",
+ "snake": "Had",
+ "rattle": "Hrkanie",
+ "whale_vocalization": "Veľrybí spev",
+ "music": "Hudba",
+ "musical_instrument": "Hudobný nástroj",
+ "plucked_string_instrument": "Drnkací strunový nástroj",
+ "guitar": "Gitara",
+ "electric_guitar": "Elektrická gitara",
+ "bass_guitar": "Basová gitara",
+ "acoustic_guitar": "Akustická gitara",
+ "steel_guitar": "Oceľová gitara",
+ "tapping": "Ťukanie",
+ "strum": "Brnkanie",
+ "banjo": "Banjo",
+ "sitar": "Sitár",
+ "mandolin": "Mandolína",
+ "zither": "Citera",
+ "ukulele": "Ukulele",
+ "piano": "Klavír",
+ "electric_piano": "Elektrický klavír",
+ "organ": "Organ",
+ "electronic_organ": "Elektronické organ",
+ "gong": "Gong",
+ "tubular_bells": "Trubicové zvony",
+ "mallet_percussion": "Palička perkusie",
+ "marimba": "Marimba",
+ "orchestra": "Orchester",
+ "brass_instrument": "Žesťový nástroj",
+ "french_horn": "Lesný roh",
+ "trumpet": "Rúrka",
+ "trombone": "Trombón",
+ "bowed_string_instrument": "Sláčikový nástroj",
+ "string_section": "Sláčiková sekcia",
+ "violin": "Husle",
+ "pizzicato": "Pizzicato",
+ "cello": "Cello",
+ "double_bass": "Kontrabas",
+ "wind_instrument": "Dychový nástroj",
+ "flute": "Flauta",
+ "saxophone": "Saxofón",
+ "clarinet": "Klarinet",
+ "harp": "Harfa",
+ "bell": "Zvon",
+ "church_bell": "Kostolný zvon",
+ "jingle_bell": "Rolnička",
+ "bicycle_bell": "Cyklistický zvonček",
+ "tuning_fork": "Ladička",
+ "chime": "Zvonenie",
+ "wind_chime": "Zvonkohra",
+ "harmonica": "Harmonika",
+ "accordion": "Akordeón",
+ "bagpipes": "Dudy",
+ "didgeridoo": "Didžeridu",
+ "theremin": "Theremin",
+ "singing_bowl": "Singing Bowl",
+ "scratching": "Škrabanie",
+ "pop_music": "Popová hudba",
+ "hip_hop_music": "Hip-hopová muzika",
+ "beatboxing": "Beatboxing",
+ "rock_music": "Rocková muzika",
+ "heavy_metal": "Heavy metal",
+ "punk_rock": "Punk Rock",
+ "grunge": "Grunge",
+ "progressive_rock": "Progressive Rock",
+ "rock_and_roll": "Rock and Roll",
+ "psychedelic_rock": "Psychadelický Rock",
+ "rhythm_and_blues": "Rythm & Blues",
+ "soul_music": "Soulová hudba",
+ "reggae": "Reggae",
+ "country": "Krajina",
+ "swing_music": "Swingová hudba",
+ "bluegrass": "Bluegrass",
+ "funk": "Funk",
+ "folk_music": "Folková hudba",
+ "middle_eastern_music": "Stredo-východná hudba",
+ "jazz": "Jazz",
+ "disco": "Disco",
+ "classical_music": "Klasická hudba",
+ "opera": "Opera",
+ "electronic_music": "Elektronická hudba",
+ "house_music": "House hudba",
+ "techno": "Techno",
+ "dubstep": "Dubstep",
+ "drum_and_bass": "Drum and Bass",
+ "electronica": "Elektronická hudba",
+ "electronic_dance_music": "Elektronická tanečná hudba",
+ "ambient_music": "Ambientná hudba",
+ "trance_music": "Trance hudba",
+ "music_of_latin_america": "Latinsko-americká hudba",
+ "salsa_music": "Salsa Music",
+ "flamenco": "Flamengo",
+ "blues": "Blues",
+ "music_for_children": "Hudba pre deti",
+ "new-age_music": "Novodobá hudba",
+ "vocal_music": "Vokálna hudba",
+ "a_capella": "A Capella",
+ "music_of_africa": "Africká hudba",
+ "afrobeat": "Afrobeat",
+ "christian_music": "Kresťanská hudba",
+ "gospel_music": "Gospelová hudba",
+ "music_of_asia": "Ázijská hudba",
+ "carnatic_music": "Karnatická hudba",
+ "music_of_bollywood": "Hudba z Bollywoodu",
+ "ska": "SKA",
+ "traditional_music": "Tradičná hudba",
+ "independent_music": "Nezávislá hudba",
+ "song": "Pieseň",
+ "background_music": "Hudba na pozadí",
+ "theme_music": "Tematická hudba",
+ "jingle": "Jingle",
+ "soundtrack_music": "Soundtracková hudba",
+ "lullaby": "Uspávanka",
+ "video_game_music": "Herná hudba",
+ "shuffling_cards": "Miešanie kariet",
+ "hammond_organ": "Hammondovy organ",
+ "synthesizer": "Syntezátor",
+ "sampler": "Sampler",
+ "harpsichord": "Cembalo",
+ "percussion": "Perkusia",
+ "drum_kit": "Bubny",
+ "drum_machine": "Bicí automat",
+ "drum": "Bubon",
+ "snare_drum": "Malý bubon",
+ "rimshot": "Rana na obruč",
+ "drum_roll": "Vírenie",
+ "bass_drum": "Basový bubon",
+ "timpani": "Tympány",
+ "tabla": "Tabla",
+ "cymbal": "Činel",
+ "hi_hat": "Hi-hat",
+ "wood_block": "Drevený blok",
+ "tambourine": "Tamburína",
+ "maraca": "Maraka",
+ "glockenspiel": "Zvonkohra",
+ "vibraphone": "Vibrafón",
+ "steelpan": "Ocelový bubon",
+ "christmas_music": "Vianočná hudba",
+ "dance_music": "Tanečná hudba",
+ "wedding_music": "Svadobná hudba",
+ "happy_music": "Šťastná hudba",
+ "sad_music": "Smutná hudba",
+ "tender_music": "Nežná hudba",
+ "exciting_music": "Vzrušujúca hudba",
+ "angry_music": "Naštvaná hudba",
+ "scary_music": "Strašidelná hudba",
+ "wind": "Vietor",
+ "rustling_leaves": "Šuštiace Listy",
+ "wind_noise": "Hluk Vetra",
+ "thunderstorm": "Búrka",
+ "thunder": "Hrom",
+ "water": "Voda",
+ "rain": "Dážď",
+ "raindrop": "Dažďové kvapky",
+ "rain_on_surface": "Dážď na povrchu",
+ "stream": "Prúd",
+ "waterfall": "Vodopád",
+ "ocean": "Oceán",
+ "waves": "Vlny",
+ "steam": "Para",
+ "gurgling": "Grganie",
+ "fire": "Oheň",
+ "crackle": "Praskať",
+ "sailboat": "Plachtenie",
+ "rowboat": "Veslica",
+ "motorboat": "Motorový čln",
+ "ship": "Loď",
+ "motor_vehicle": "Motorové vozidlo",
+ "toot": "Trúbenie",
+ "car_alarm": "Autoalarm",
+ "power_windows": "Elektrické okná",
+ "skidding": "Šmykom",
+ "tire_squeal": "Pískanie pneumatík",
+ "car_passing_by": "Prechádzajúce auto",
+ "race_car": "Závodné auto",
+ "truck": "Kamión",
+ "air_brake": "Vzduchová brzda",
+ "air_horn": "Vzduchový klaksón",
+ "reversing_beeps": "Pípanie pri cúvaní",
+ "ice_cream_truck": "Auto so zmrzlinou",
+ "emergency_vehicle": "Pohotovostné vozidlo",
+ "police_car": "Policajné auto",
+ "ambulance": "Ambulancia",
+ "fire_engine": "Hasiči",
+ "traffic_noise": "Hluk z dopravy",
+ "rail_transport": "Železničná preprava",
+ "train_whistle": "Húkanie vlaku",
+ "train_horn": "Rúrenie vlaku",
+ "railroad_car": "Železničný vagón",
+ "train_wheels_squealing": "Škrípanie kolies vlaku",
+ "subway": "Metro",
+ "aircraft": "Lietadlo",
+ "aircraft_engine": "Motor lietadla",
+ "jet_engine": "Tryskový motor",
+ "propeller": "Vrtuľa",
+ "helicopter": "Helikoptéra",
+ "fixed-wing_aircraft": "Lietadlo s pevnými krídlami",
+ "engine": "Motor",
+ "light_engine": "Ľahký motor",
+ "dental_drill's_drill": "Zubná vŕtačka",
+ "lawn_mower": "Kosačka",
+ "chainsaw": "Motorová píla",
+ "medium_engine": "Stredný motor",
+ "heavy_engine": "Ťažký motor",
+ "engine_knocking": "Klepanie motora",
+ "engine_starting": "Štartovanie motora",
+ "idling": "Bežiaci motor",
+ "accelerating": "Pridávanie plynu",
+ "doorbell": "Zvonček",
+ "ding-dong": "Cink",
+ "sliding_door": "Posuvné dvere",
+ "slam": "Búchnutie",
+ "knock": "Klepanie",
+ "tap": "Poklepanie",
+ "squeak": "Škrípanie",
+ "cupboard_open_or_close": "Otváranie alebo zatváranie skrine",
+ "drawer_open_or_close": "Otváranie alebo zatváranie šuplíka",
+ "dishes": "Riad",
+ "cutlery": "Príbory",
+ "chopping": "Krájanie",
+ "frying": "Vyprážanie",
+ "microwave_oven": "Mikrovnka",
+ "water_tap": "Vodovodný kohútik",
+ "bathtub": "Vaňa",
+ "toilet_flush": "Splachovanie toalety",
+ "electric_toothbrush": "Elektrická zubná kefka",
+ "vacuum_cleaner": "Vysávač",
+ "zipper": "Zips",
+ "keys_jangling": "Klepanie kľúčov",
+ "coin": "Mince",
+ "electric_shaver": "Elektrický holiaci strojček",
+ "typing": "Písanie",
+ "typewriter": "Písací stroj",
+ "computer_keyboard": "Počítačový kľúč",
+ "writing": "Písanie",
+ "alarm": "Alarm",
+ "telephone": "Telefón",
+ "telephone_bell_ringing": "Zvonenie telefónu",
+ "ringtone": "Vyzváňací tón",
+ "telephone_dialing": "Telefonické vytáčanie",
+ "dial_tone": "Vytáčací tón",
+ "busy_signal": "Zaneprázdnený signál",
+ "alarm_clock": "Budík",
+ "siren": "Siréna",
+ "civil_defense_siren": "Siréna civilnej obrany",
+ "buzzer": "Bzučiak",
+ "smoke_detector": "Detektor dymu",
+ "fire_alarm": "Požiarny Alarm",
+ "foghorn": "Hmlovka",
+ "whistle": "Zapískať",
+ "steam_whistle": "Parná píšťalka",
+ "mechanisms": "Mechanizmy",
+ "ratchet": "Račňa",
+ "tick": "Ťik",
+ "tick-tock": "Tik-tok",
+ "gears": "Ozubené kolesá",
+ "pulleys": "Kladky",
+ "sewing_machine": "Šijací stroj",
+ "mechanical_fan": "Mechanický ventilátor",
+ "air_conditioning": "Klimatizácia",
+ "cash_register": "Registračná pokladňa",
+ "printer": "Tlačiareň",
+ "single-lens_reflex_camera": "Jednooká zrkadlovka",
+ "tools": "Nástroje",
+ "hammer": "Kladivo",
+ "jackhammer": "Zbíjačka",
+ "sawing": "Pílenie",
+ "filing": "Podanie",
+ "sanding": "Brúsenie",
+ "power_tool": "Elektrické náradie",
+ "drill": "Vŕtačka",
+ "explosion": "Explózia",
+ "gunshot": "Výstrel",
+ "machine_gun": "Guľomet",
+ "fusillade": "Streľba",
+ "artillery_fire": "Delostrelecká paľba",
+ "cap_gun": "Kapslíková pištoľ",
+ "fireworks": "Ohňostroj",
+ "firecracker": "Petarda",
+ "burst": "Prasknutie",
+ "eruption": "Erupcia",
+ "boom": "Bum",
+ "wood": "Drevo",
+ "chop": "Nasekať",
+ "splinter": "Trieska",
+ "crack": "Prasknutie",
+ "glass": "Sklo",
+ "chink": "Cinknutie",
+ "shatter": "Rozbiť",
+ "silence": "Ticho",
+ "sound_effect": "Zvukový efekt",
+ "environmental_noise": "Okolitý hluk",
+ "static": "Statické",
+ "white_noise": "Biely šum",
+ "pink_noise": "Ružový šum",
+ "television": "Televízia",
+ "radio": "Rádio",
+ "field_recording": "Záznam v teréne",
+ "scream": "Kričať",
+ "sodeling": "Sodeling",
+ "chird": "Chord",
+ "change_ringing": "Zmeniť zvonenie",
+ "shofar": "Šofar",
+ "liquid": "Kvapalina",
+ "splash": "Šplechnutie",
+ "slosh": "Slosh",
+ "squish": "Vytlačiť",
+ "drip": "Kvapkať",
+ "pour": "Nalej",
+ "trickle": "Pokvapkať",
+ "gush": "Striekať",
+ "fill": "Vyplňte",
+ "spray": "Striekajte",
+ "pump": "Pumpa",
+ "stir": "Miešajte",
+ "boiling": "Varenie",
+ "sonar": "Sonar",
+ "arrow": "Šípka",
+ "whoosh": "Ktoosh",
+ "thump": "Palec",
+ "thunk": "Thunk",
+ "electronic_tuner": "Elektronický tuner",
+ "effects_unit": "Efektuje jednotky",
+ "chorus_effect": "Zborový efekt",
+ "basketball_bounce": "Odrážanie basketbalovej lopty",
+ "bang": "Bang",
+ "slap": "Buchnutie",
+ "whack": "Odpáliť",
+ "smash": "Rozbiť",
+ "breaking": "Prelomenie",
+ "bouncing": "Odskakovanie",
+ "whip": "Bič",
+ "flap": "Klapka",
+ "scratch": "Poškriabanie",
+ "scrape": "Škrabať",
+ "rub": "Potrieť",
+ "roll": "Rolovať",
+ "crushing": "Rozdrvovanie",
+ "crumpling": "Mačkanie",
+ "tearing": "Trhanie",
+ "beep": "Pípnutie",
+ "ping": "Ping",
+ "ding": "Ding",
+ "clang": "Zvonenie",
+ "squeal": "Kňučať",
+ "creak": "Vŕzganie",
+ "rustle": "Šuchot",
+ "whir": "Vrčanie",
+ "clatter": "Cvakať",
+ "sizzle": "Syčať",
+ "clicking": "Klikanie",
+ "clickety_clack": "Klikanie kľak",
+ "rumble": "Rachot",
+ "plop": "Prasknutie",
+ "hum": "Hmkanie",
+ "zing": "Zing",
+ "boing": "Boing",
+ "crunch": "Chrumnutie",
+ "sine_wave": "Sínusoida",
+ "harmonic": "Harmonický",
+ "chirp_tone": "Cvrlikací tón",
+ "pulse": "Pulz",
+ "inside": "Vnútri",
+ "outside": "Vonku",
+ "reverberation": "Dozvuk",
+ "echo": "Ozvena",
+ "noise": "Zvuk",
+ "mains_hum": "Hlavné Hum",
+ "distortion": "Skreslenie",
+ "sidetone": "Vedľajší tón",
+ "cacophony": "Kakofónia",
+ "throbbing": "Pulzujúci",
+ "vibration": "Vibrácia"
}
diff --git a/web/public/locales/sk/common.json b/web/public/locales/sk/common.json
index 28812e2470..199493fddc 100644
--- a/web/public/locales/sk/common.json
+++ b/web/public/locales/sk/common.json
@@ -39,7 +39,266 @@
"hour_few": "{{time}}hodiny",
"hour_other": "{{time}}hodin",
"m": "{{time}} min",
- "s": "{{time}}s"
+ "s": "{{time}}s",
+ "minute_one": "{{time}}minuta",
+ "minute_few": "{{time}}minuty",
+ "minute_other": "{{time}}minut",
+ "second_one": "{{time}}sekunda",
+ "second_few": "{{time}}sekundy",
+ "second_other": "{{time}}sekund",
+ "formattedTimestamp": {
+ "12hour": "Deň MMM, h:mm:ss aaa",
+ "24hour": "Deň MMM, HH:mm:ss"
+ },
+ "formattedTimestamp2": {
+ "12hour": "MM/dd h:mm:ssa",
+ "24hour": "d MMM HH:mm:ss"
+ },
+ "formattedTimestampHourMinute": {
+ "12hour": "h:mm aaa",
+ "24hour": "HH:mm"
+ },
+ "formattedTimestampHourMinuteSecond": {
+ "12hour": "h:mm:ss aaa",
+ "24hour": "HH:mm:ss"
+ },
+ "formattedTimestampMonthDayHourMinute": {
+ "12hour": "MMM d, h:mm aaa",
+ "24hour": "MMM d, HH:mm"
+ },
+ "formattedTimestampMonthDayYear": {
+ "12hour": "MMM d, yyyy",
+ "24hour": "MMM d, yyyy"
+ },
+ "formattedTimestampMonthDayYearHourMinute": {
+ "12hour": "MMM d yyyy, h:mm aaa",
+ "24hour": "MMM d yyyy, HH:mm"
+ },
+ "formattedTimestampMonthDay": "MMM d",
+ "formattedTimestampFilename": {
+ "12hour": "MM-dd-yy-h-mm-ss-a",
+ "24hour": "MM-dd-yy-HH-mm-ss"
+ },
+ "inProgress": "Spracováva sa",
+ "invalidStartTime": "Neplatný čas štartu",
+ "invalidEndTime": "Neplatný čas ukončenia"
},
- "selectItem": "Vyberte {{item}}"
+ "selectItem": "Vyberte {{item}}",
+ "unit": {
+ "speed": {
+ "mph": "mph",
+ "kph": "Km/h"
+ },
+ "length": {
+ "feet": "nohy",
+ "meters": "metrov"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kb/hour",
+ "mbph": "MB/hour",
+ "gbph": "GB/hour"
+ }
+ },
+ "readTheDocumentation": "Prečítajte si dokumentáciu",
+ "label": {
+ "back": "Choď späť",
+ "hide": "Skryť {{item}}",
+ "show": "Zobraziť {{item}}",
+ "ID": "ID",
+ "none": "None",
+ "all": "Všetko"
+ },
+ "button": {
+ "apply": "Použiť",
+ "reset": "Resetovať",
+ "done": "Hotovo",
+ "enabled": "Povolené",
+ "enable": "Povoliť",
+ "disabled": "Zakázané",
+ "disable": "Zakázať",
+ "save": "Uložiť",
+ "saving": "Ukladá sa…",
+ "cancel": "Zrušiť",
+ "close": "Zavrieť",
+ "copy": "Kopírovať",
+ "back": "Späť",
+ "history": "História",
+ "fullscreen": "Celá obrazovka",
+ "exitFullscreen": "Opustiť režim celú obrazovku",
+ "pictureInPicture": "Obraz v obraze",
+ "twoWayTalk": "Obojsmerná komunikácia",
+ "cameraAudio": "Zvuk kamery",
+ "on": "ON",
+ "off": "OFF",
+ "edit": "Upraviť",
+ "copyCoordinates": "Kopírovať súradnice",
+ "delete": "Odstrániť",
+ "yes": "Ano",
+ "no": "Nie",
+ "download": "Stiahnuť",
+ "info": "Informacie",
+ "suspended": "Pozastavené",
+ "export": "Exportovať",
+ "deleteNow": "Odstrániť teraz",
+ "next": "Ďalej",
+ "unsuspended": "Zrušte pozastavenie",
+ "play": "Hrať",
+ "unselect": "Zrušte výber",
+ "continue": "Pokračovať"
+ },
+ "menu": {
+ "system": "Systém",
+ "systemMetrics": "Systémové metriky",
+ "configuration": "Konfigurácia",
+ "systemLogs": "Systémový záznam",
+ "settings": "Nastavenia",
+ "configurationEditor": "Editor konfigurácie",
+ "languages": "Jazyky",
+ "language": {
+ "en": "English (Angličtina)",
+ "es": "Español (Španielčina)",
+ "zhCN": "简体中文 (Zjednodušená čínština)",
+ "hi": "हिन्दी (Hindčina)",
+ "fr": "Français (Francúzština)",
+ "ar": "العربية (Arabčina)",
+ "pt": "Portugalčina (Portugalčina)",
+ "ptBR": "Português brasileiro (Brazílska Portugalčina)",
+ "ru": "Русский (Ruština)",
+ "de": "nemčina (Nemčina)",
+ "ja": "日本語 (Japončina)",
+ "tr": "Türkçe (Turečtina)",
+ "it": "Italiano (Taliančina)",
+ "nl": "Nederlands (Holandčina)",
+ "sv": "Svenska (Švédčina)",
+ "cs": "Czech (Čeština)",
+ "nb": "Norsk Bokmål (Norský Bokmål)",
+ "ko": "한국어 (Korejština)",
+ "vi": "Tiếng Việt (Vietnamština)",
+ "fa": "فارسی (Perština)",
+ "pl": "Polski (Polština)",
+ "uk": "Українська (Ukrainština)",
+ "he": "עברית (Hebrejština)",
+ "el": "Ελληνικά (Gréčtina)",
+ "ro": "Română (Rumunčina)",
+ "hu": "Magyar (Maďarština)",
+ "fi": "Suomi (Fínčina)",
+ "da": "Dansk (Dánština)",
+ "sk": "Slovenčina (Slovenčina)",
+ "yue": "粵語 (Kantónčina)",
+ "th": "ไทย (Thajčina)",
+ "ca": "Català (Katalánčina)",
+ "sr": "Српски (Serbsky)",
+ "sl": "Slovinština (Slovinsko)",
+ "lt": "Lietuvių (Lithuanian)",
+ "bg": "Български (Bulgarian)",
+ "gl": "Galego (Galician)",
+ "id": "Bahasa Indonesia (Indonesian)",
+ "ur": "اردو (Urdu)",
+ "withSystem": {
+ "label": "Použiť systémové nastavenia pre jazyk"
+ }
+ },
+ "restart": "Reštartovať Frigate",
+ "live": {
+ "title": "Naživo",
+ "allCameras": "Všetky kamery",
+ "cameras": {
+ "title": "Kamery",
+ "count_one": "{{count}}kamera",
+ "count_few": "{{count}}kamery",
+ "count_other": "{{count}}kamier"
+ }
+ },
+ "export": "Exportovať",
+ "uiPlayground": "UI ihrisko",
+ "faceLibrary": "Knižnica Tvárov",
+ "user": {
+ "title": "Užívateľ",
+ "account": "Účet",
+ "current": "Aktuálny používateľ: {{user}}",
+ "anonymous": "anonymný",
+ "logout": "Odhlásiť",
+ "setPassword": "Nastaviť heslo"
+ },
+ "appearance": "Vzhľad",
+ "darkMode": {
+ "label": "Tmavý režim",
+ "light": "Svetlý",
+ "dark": "Tma",
+ "withSystem": {
+ "label": "Použiť systémové nastavenia pre svetlý a tmavý režim"
+ }
+ },
+ "withSystem": "Systém",
+ "theme": {
+ "label": "Téma",
+ "blue": "Modrá",
+ "green": "Zelená",
+ "nord": "Polárna",
+ "red": "Červená",
+ "highcontrast": "Vysoký kontrast",
+ "default": "Predvolené"
+ },
+ "help": "Pomocník",
+ "documentation": {
+ "title": "Dokumentácia",
+ "label": "Dokumentácia Frigate"
+ },
+ "review": "Recenzia",
+ "explore": "Preskúmať",
+ "classification": "Klasifikácia"
+ },
+ "toast": {
+ "copyUrlToClipboard": "Adresa URL bola skopírovaná do schránky.",
+ "save": {
+ "title": "Uložiť",
+ "error": {
+ "title": "Chyba pri ukladaní zmien konfigurácie: {{errorMessage}}",
+ "noMessage": "Chyba pri ukladaní zmien konfigurácie"
+ }
+ }
+ },
+ "role": {
+ "title": "Rola",
+ "admin": "Správca",
+ "viewer": "Divák",
+ "desc": "Správcovia majú plný prístup ku všetkým funkciám v užívateľskom rozhraní Frigate. Diváci sú obmedzení na sledovanie kamier, položiek prehľadu a historických záznamov v UI."
+ },
+ "pagination": {
+ "label": "stránkovanie",
+ "previous": {
+ "title": "Predchádzajúci",
+ "label": "Ísť na predchádzajúcu stranu"
+ },
+ "next": {
+ "title": "Ďalšia",
+ "label": "Ísť na ďalšiu stranu"
+ },
+ "more": "Viac strán"
+ },
+ "accessDenied": {
+ "documentTitle": "Prístup odmietnutý - Frigate",
+ "title": "Prístup odmietnutý",
+ "desc": "Nemáte oprávnenie zobraziť túto stránku."
+ },
+ "notFound": {
+ "documentTitle": "Nenájdené - Frigate",
+ "title": "404",
+ "desc": "Stránka nenájdená"
+ },
+ "information": {
+ "pixels": "{{area}}px"
+ },
+ "list": {
+ "two": "{{0}} a {{1}}",
+ "many": "{{items}}, a {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "Voliteľné",
+ "internalID": "Interné ID Frigate používa v konfigurácii a databáze"
+ }
}
diff --git a/web/public/locales/sk/components/auth.json b/web/public/locales/sk/components/auth.json
index a59f7d0a50..5d44c93c75 100644
--- a/web/public/locales/sk/components/auth.json
+++ b/web/public/locales/sk/components/auth.json
@@ -10,6 +10,7 @@
"loginFailed": "Prihlásenie zlyhalo",
"unknownError": "Neznáma chyba. Skontrolujte protokoly.",
"webUnknownError": "Neznáma chyba. Skontrolujte protokoly konzoly."
- }
+ },
+ "firstTimeLogin": "Snažíte sa prihlásiť prvýkrát? Prihlasovacie údaje sú vytlačené v protokoloch Frigate."
}
}
diff --git a/web/public/locales/sk/components/camera.json b/web/public/locales/sk/components/camera.json
index 151199d9a8..e2245bd071 100644
--- a/web/public/locales/sk/components/camera.json
+++ b/web/public/locales/sk/components/camera.json
@@ -56,12 +56,32 @@
"continuousStreaming": {
"label": "Nepretržité streamovanie",
"desc": {
- "title": "Obraz z kamery bude vždy vysielaný naživo, keď bude viditeľný na palubnej doske, aj keď nebude detekovaná žiadna aktivita."
+ "title": "Obraz z kamery bude vždy vysielaný naživo, keď bude viditeľný na palubnej doske, aj keď nebude detekovaná žiadna aktivita.",
+ "warning": "Nepretržité streamovanie môže spôsobiť vysoké využitie šírky pásma a problémy s výkonom. Používajte opatrne."
}
}
}
+ },
+ "compatibilityMode": {
+ "label": "Režim kompatibility",
+ "desc": "Túto možnosť povoľte iba v prípade, že živý prenos z vašej kamery zobrazuje farebné artefakty a na pravej strane obrazu sa nachádza diagonálna čiara."
}
- }
+ },
+ "birdseye": "Vtáčie oko"
}
+ },
+ "debug": {
+ "options": {
+ "label": "Nastavenia",
+ "title": "Možnosti",
+ "showOptions": "Zobraziť možnosti",
+ "hideOptions": "Skryť možnosti"
+ },
+ "boundingBox": "Hranica",
+ "timestamp": "Časová pečiatka",
+ "zones": "Zóny",
+ "mask": "Maska",
+ "motion": "Pohyb",
+ "regions": "Kraje"
}
}
diff --git a/web/public/locales/sk/components/dialog.json b/web/public/locales/sk/components/dialog.json
index a254150e22..6904bc0d24 100644
--- a/web/public/locales/sk/components/dialog.json
+++ b/web/public/locales/sk/components/dialog.json
@@ -41,7 +41,10 @@
"end": {
"title": "Čas ukončenia",
"label": "Vybrat čas ukončenia"
- }
+ },
+ "lastHour_one": "Minulu hodinu",
+ "lastHour_few": "Minule{{count}}hodiny",
+ "lastHour_other": "Minulych{{count}}hodin"
},
"name": {
"placeholder": "Pomenujte Export"
@@ -50,12 +53,13 @@
"export": "Exportovať",
"selectOrExport": "Vybrať pre Export",
"toast": {
- "success": "Export úspešne spustený. Súbor nájdete v adresári /exports.",
+ "success": "Export bol úspešne spustený. Súbor si pozrite na stránke exportov.",
"error": {
"failed": "Chyba spustenia exportu: {{error}}",
"endTimeMustAfterStartTime": "Čas konca musí byť po čase začiatku",
"noVaildTimeSelected": "Nie je vybrané žiadne platné časové obdobie"
- }
+ },
+ "view": "Zobraziť"
},
"fromTimeline": {
"saveExport": "Uložiť Export",
@@ -67,8 +71,54 @@
"restreaming": {
"disabled": "Opätovné streamovanie nie je pre túto kameru povolené.",
"desc": {
- "title": "Pre ďalšie možnosti živého náhľadu a zvuku pre túto kameru nastavte go2rtc."
+ "title": "Pre ďalšie možnosti živého náhľadu a zvuku pre túto kameru nastavte go2rtc.",
+ "readTheDocumentation": "Prečítajte si dokumentáciu"
+ }
+ },
+ "showStats": {
+ "label": "Zobraziť štatistiky streamu",
+ "desc": "Povoľte túto možnosť, ak chcete zobraziť štatistiky streamu ako prekrytie na obraze z kamery."
+ },
+ "debugView": "Zobrazenie ladenia"
+ },
+ "search": {
+ "saveSearch": {
+ "label": "Uložiť vyhľadávanie",
+ "desc": "Zadajte názov pre toto uložené vyhľadávanie.",
+ "placeholder": "Zadajte názov pre vyhľadávanie",
+ "overwrite": "{{searchName}} už existuje. Uložením sa prepíše existujúca hodnota.",
+ "success": "Hľadanie ({{searchName}}) bolo uložené.",
+ "button": {
+ "save": {
+ "label": "Uložte toto vyhľadávanie"
+ }
}
}
+ },
+ "recording": {
+ "confirmDelete": {
+ "title": "Potvrďte Odstrániť",
+ "desc": {
+ "selected": "Naozaj chcete odstrániť všetky nahrané videá spojené s touto položkou recenzie?
Podržte kláves Shift, aby ste v budúcnosti toto dialógové okno obišli."
+ },
+ "toast": {
+ "success": "Videozáznam spojený s vybranými položkami recenzie bol úspešne odstránený.",
+ "error": "Nepodarilo sa odstrániť: {{error}}"
+ }
+ },
+ "button": {
+ "export": "Exportovať",
+ "markAsReviewed": "Označiť ako skontrolované",
+ "deleteNow": "Odstrániť teraz",
+ "markAsUnreviewed": "Označiť ako neskontrolované"
+ }
+ },
+ "imagePicker": {
+ "selectImage": "Výber miniatúry sledovaného objektu",
+ "search": {
+ "placeholder": "Hľadať podľa štítku alebo podštítku..."
+ },
+ "noImages": "Pre tuto kameru sa nenašli žiadne miniatúry",
+ "unknownLabel": "Uložený obrázok spúšťača"
}
}
diff --git a/web/public/locales/sk/components/filter.json b/web/public/locales/sk/components/filter.json
index e1c1eb4727..83305f9219 100644
--- a/web/public/locales/sk/components/filter.json
+++ b/web/public/locales/sk/components/filter.json
@@ -54,6 +54,83 @@
"relevance": "Relevantnosť"
},
"cameras": {
- "label": "Filter kamier"
+ "label": "Filter kamier",
+ "all": {
+ "title": "Všetky kamery",
+ "short": "Kamery"
+ }
+ },
+ "classes": {
+ "label": "Triedy",
+ "all": {
+ "title": "Všetky triedy"
+ },
+ "count_one": "Trieda {{count}}",
+ "count_other": "Triedy {{count}}"
+ },
+ "review": {
+ "showReviewed": "Zobraziť skontrolované"
+ },
+ "motion": {
+ "showMotionOnly": "Zobraziť len pohyb"
+ },
+ "explore": {
+ "settings": {
+ "title": "Nastavenia",
+ "defaultView": {
+ "title": "Predvolené zobrazenie",
+ "desc": "Ak nie sú vybraté žiadne filtre, zobrazte súhrn naposledy sledovaných objektov pre každý štítok alebo zobrazte nefiltrovanú mriežku.",
+ "summary": "Zhrnutie",
+ "unfilteredGrid": "Nefiltrovaná mriežka"
+ },
+ "gridColumns": {
+ "title": "Stĺpce mriežky",
+ "desc": "Vyberte počet stĺpcov v mriežkovom zobrazení."
+ },
+ "searchSource": {
+ "label": "Vyhľadať zdroj",
+ "desc": "Vyberte, či chcete vyhľadávať v miniatúrach alebo v popisoch sledovaných objektov.",
+ "options": {
+ "thumbnailImage": "Obrázok miniatúry",
+ "description": "Popis"
+ }
+ }
+ },
+ "date": {
+ "selectDateBy": {
+ "label": "Vyberte dátum, podľa ktorého chcete filtrovať"
+ }
+ }
+ },
+ "logSettings": {
+ "label": "Úroveň denníka filtra",
+ "filterBySeverity": "Filtrujte protokoly podľa závažnosti",
+ "loading": {
+ "title": "Načítava sa",
+ "desc": "Keď sa panel protokolov posunie nadol, nové protokoly sa automaticky streamujú hneď po ich pridaní."
+ },
+ "disableLogStreaming": "Zakázať streamovanie denníka",
+ "allLogs": "Všetky denníky"
+ },
+ "trackedObjectDelete": {
+ "title": "Potvrďte Odstrániť",
+ "desc": "Odstránením týchto sledovaných objektov ({{objectLength}}) sa odstráni snímka, všetky uložené vnorenia a všetky súvisiace položky životného cyklu objektu. Zaznamenané zábery týchto sledovaných objektov v zobrazení História NEBUDÚ odstránené.
Naozaj chcete pokračovať?
Podržte kláves Shift, aby ste v budúcnosti toto dialógové okno obišli.",
+ "toast": {
+ "success": "Sledované objekty boli úspešne odstránené.",
+ "error": "Nepodarilo sa odstrániť sledované objekty: {{errorMessage}}"
+ }
+ },
+ "zoneMask": {
+ "filterBy": "Filtrujte podľa masky zóny"
+ },
+ "recognizedLicensePlates": {
+ "title": "Rozpoznané evidenčné čísla vozidiel",
+ "loadFailed": "Nepodarilo sa načítať rozpoznané evidenčné čísla vozidiel.",
+ "loading": "Načítavajú sa rozpoznané evidenčné čísla…",
+ "placeholder": "Zadajte text pre vyhľadávanie evidenčných čísel…",
+ "noLicensePlatesFound": "Neboli nájdené SPZ.",
+ "selectPlatesFromList": "Vyberte jeden alebo viacero tanierov zo zoznamu.",
+ "selectAll": "Vybrať všetko",
+ "clearAll": "Vymazať všetko"
}
}
diff --git a/web/public/locales/sk/objects.json b/web/public/locales/sk/objects.json
index 2b3199df78..42ec664e2f 100644
--- a/web/public/locales/sk/objects.json
+++ b/web/public/locales/sk/objects.json
@@ -31,5 +31,90 @@
"handbag": "Kabelka",
"tie": "Kravata",
"suitcase": "Kufor",
- "frisbee": "Frisbee"
+ "frisbee": "Frisbee",
+ "skis": "Lyže",
+ "snowboard": "Snowboard",
+ "sports_ball": "Športová lopta",
+ "kite": "Drak",
+ "baseball_bat": "Bejzbalová pálka",
+ "baseball_glove": "Baseballová rukavica",
+ "skateboard": "Skateboard",
+ "surfboard": "Surfová doska",
+ "tennis_racket": "Tenisová raketa",
+ "bottle": "Fľaša",
+ "plate": "Doska",
+ "wine_glass": "Pohár na víno",
+ "cup": "Pohár",
+ "fork": "Vidlička",
+ "knife": "Nôž",
+ "spoon": "Lyžica",
+ "bowl": "Misa",
+ "banana": "Banán",
+ "apple": "Jablko",
+ "animal": "Zviera",
+ "sandwich": "Sendvič",
+ "orange": "Pomaranč",
+ "broccoli": "Brokolica",
+ "bark": "Kôra",
+ "carrot": "Mrkva",
+ "hot_dog": "Hot Dog",
+ "pizza": "Pizza",
+ "donut": "Donut",
+ "cake": "Koláč",
+ "chair": "Stolička",
+ "couch": "Gauč",
+ "potted_plant": "Rastlina v kvetináči",
+ "bed": "Posteľ",
+ "mirror": "Zrkadlo",
+ "dining_table": "Jedálenský stôl",
+ "window": "okno",
+ "desk": "Stôl",
+ "toilet": "Toaleta",
+ "door": "Dvere",
+ "tv": "TV",
+ "laptop": "Laptop",
+ "mouse": "Myška",
+ "remote": "Diaľkové ovládanie",
+ "keyboard": "Klávesnica",
+ "goat": "Koza",
+ "cell_phone": "Mobilný telefón",
+ "microwave": "Mikrovlnná rúra",
+ "oven": "Rúra",
+ "toaster": "Hriankovač",
+ "sink": "Umývadlo",
+ "refrigerator": "Chladnička",
+ "blender": "Mixér",
+ "book": "Kniha",
+ "clock": "Hodiny",
+ "vase": "Váza",
+ "toothbrush": "Zubná kefka",
+ "hair_brush": "Kefa na vlasy",
+ "vehicle": "Vozidlo",
+ "squirrel": "Veverička",
+ "scissors": "Nožnice",
+ "teddy_bear": "Medvedík",
+ "hair_dryer": "Sušič vlasov",
+ "deer": "Jeleň",
+ "fox": "Líška",
+ "rabbit": "Zajac",
+ "raccoon": "Mýval",
+ "robot_lawnmower": "Robotická kosačka",
+ "waste_bin": "Odpadkový kôš",
+ "on_demand": "Na požiadanie",
+ "face": "Tvár",
+ "license_plate": "ŠPZ",
+ "package": "Balíček",
+ "bbq_grill": "Gril",
+ "amazon": "Amazon",
+ "usps": "USPS",
+ "ups": "UPS",
+ "fedex": "FedEx",
+ "dhl": "DHL",
+ "an_post": "An Post",
+ "purolator": "Čistič",
+ "postnl": "PostNL",
+ "nzpost": "NZPost",
+ "postnord": "PostNord",
+ "gls": "GLS",
+ "dpd": "DPD"
}
diff --git a/web/public/locales/sk/views/classificationModel.json b/web/public/locales/sk/views/classificationModel.json
new file mode 100644
index 0000000000..f8529ea209
--- /dev/null
+++ b/web/public/locales/sk/views/classificationModel.json
@@ -0,0 +1,182 @@
+{
+ "documentTitle": "Klasifikačné modely",
+ "button": {
+ "deleteClassificationAttempts": "Odstrániť obrázky klasifikácie",
+ "renameCategory": "Premenovať triedu",
+ "deleteCategory": "Odstrániť triedu",
+ "deleteImages": "Odstrániť obrázky",
+ "trainModel": "Model vlaku",
+ "addClassification": "Pridať klasifikáciu",
+ "deleteModels": "Odstrániť modely",
+ "editModel": "Editovať model"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Vymazaná trieda",
+ "deletedImage": "Vymazané obrázky",
+ "categorizedImage": "Obrázok bol úspešne klasifikovaný",
+ "trainedModel": "Úspešne vyškolený model.",
+ "trainingModel": "Úspešne spustený modelový tréning.",
+ "deletedModel_one": "Úspešne zmazané {{count}} model (y)",
+ "deletedModel_few": "",
+ "deletedModel_other": "",
+ "updatedModel": "Úspešne zmenená konfigurácia modelu",
+ "renamedCategory": "Úspešne premenovaná trieda na"
+ },
+ "error": {
+ "deleteImageFailed": "Nepodarilo sa odstrániť: {{errorMessage}}",
+ "deleteCategoryFailed": "Nepodarilo sa odstrániť triedu: {{errorMessage}}",
+ "categorizeFailed": "Nepodarilo sa kategorizovať obrázok: {{errorMessage}}",
+ "trainingFailed": "Nepodarilo sa spustiť trénovanie modelu: {{errorMessage}}",
+ "deleteModelFailed": "Nepodarilo sa odstrániť model: {{errorMessage}}",
+ "trainingFailedToStart": "Neuspešny štart trenovania modelu:",
+ "updateModelFailed": "Chyba pri úprave modelu:",
+ "renameCategoryFailed": "Chyba pri premenovani triedy:"
+ }
+ },
+ "deleteCategory": {
+ "title": "Odstrániť triedu",
+ "desc": "Naozaj chcete odstrániť triedu {{name}}? Týmto sa natrvalo odstránia všetky súvisiace obrázky a bude potrebné pretrénovať model.",
+ "minClassesTitle": "Nemožete zmazať triedu",
+ "minClassesDesc": "Klasifikačný model musí mať aspoň 2 triedy. Pred odstránením tejto triedy pridajte ďalšiu triedu."
+ },
+ "deleteDatasetImages": {
+ "title": "Odstrániť obrázky množiny údajov",
+ "desc": "Naozaj chcete odstrániť {{count}} obrázkov z {{dataset}}? Túto akciu nie je možné vrátiť späť a bude si vyžadovať pretrénovanie modelu."
+ },
+ "deleteTrainImages": {
+ "title": "Odstrániť obrázky vlakov",
+ "desc": "Naozaj chcete odstrániť {{count}} obrázkov? Túto akciu nie je možné vrátiť späť."
+ },
+ "renameCategory": {
+ "title": "Premenovať triedu",
+ "desc": "Zadajte nový názov pre {{name}}. Budete musieť model pretrénovať, aby sa zmena názvu prejavila."
+ },
+ "description": {
+ "invalidName": "Neplatné meno. Mená môžu obsahovať iba písmená, čísla, medzery, apostrofy, podčiarkovníky a spojovníky."
+ },
+ "train": {
+ "title": "Posledné klasifikácie",
+ "aria": "Vyberte Nedávne Klasifikácie",
+ "titleShort": "Nedávne"
+ },
+ "categories": "Triedy",
+ "createCategory": {
+ "new": "Vytvorenie novej triedy"
+ },
+ "categorizeImageAs": "Klasifikovať obrázok ako:",
+ "categorizeImage": "Klasifikovať obrázok",
+ "noModels": {
+ "object": {
+ "title": "Žiadne modely klasifikácie objektov",
+ "description": "Vytvorte si vlastný model na klasifikáciu detekovaných objektov.",
+ "buttonText": "Vytvorte objektový model"
+ },
+ "state": {
+ "title": "Žiadne modely klasifikácie štátov",
+ "description": "Vytvorte si vlastný model na monitorovanie a klasifikáciu zmien stavu v špecifických oblastiach kamery.",
+ "buttonText": "Vytvorte model stavu"
+ }
+ },
+ "wizard": {
+ "title": "Vytvorte novú klasifikáciu",
+ "steps": {
+ "nameAndDefine": "Názov a definícia",
+ "stateArea": "Štátna oblasť",
+ "chooseExamples": "Vyberte Príklady"
+ },
+ "step1": {
+ "description": "Stavové modely monitorujú oblasti pevných kamier a sledujú zmeny (napr. otvorenie/zatvorenie dverí). Objektové modely pridávajú klasifikácie k detekovaným objektom (napr. známe zvieratá, doručovatelia atď.).",
+ "name": "Meno",
+ "namePlaceholder": "Zadajte názov modelu...",
+ "type": "Typ",
+ "typeState": "štátu",
+ "typeObject": "Objekt",
+ "objectLabel": "Označenie objektu",
+ "objectLabelPlaceholder": "Vyberte typ objektu...",
+ "classificationType": "Typ klasifikácie",
+ "classificationTypeTip": "Získajte informácie o typoch klasifikácie",
+ "classificationTypeDesc": "Podznačky pridávajú k označeniu objektu ďalší text (napr. „Osoba: UPS“). Atribúty sú vyhľadávateľné metadáta uložené samostatne v metadátach objektu.",
+ "classificationSubLabel": "Podštítky",
+ "classificationAttribute": "Atribút",
+ "classes": "Triedy",
+ "classesTip": "Naučte sa o triedach",
+ "classesStateDesc": "Definujte rôzne stavy, v ktorých sa môže nachádzať oblasť kamery. Napríklad: „otvorené“ a „zatvorené“ pre garážovú bránu.",
+ "classesObjectDesc": "Definujte rôzne kategórie, do ktorých sa majú detekované objekty klasifikovať. Napríklad: „doručovateľ/doručovateľka“, „obyvateľ/obyvateľka“, „cudzinec/cudzinec“ pre klasifikáciu osôb.",
+ "classPlaceholder": "Zadajte názov triedy...",
+ "errors": {
+ "nameRequired": "Vyžaduje sa názov modelu",
+ "nameLength": "Názov modelu musí mať 64 znakov alebo menej",
+ "nameOnlyNumbers": "Názov modelu nemôže obsahovať iba čísla",
+ "classRequired": "Vyžaduje sa aspoň 1 kurz",
+ "classesUnique": "Názvy tried musia byť jedinečné",
+ "stateRequiresTwoClasses": "Modely štátov vyžadujú aspoň 2 triedy",
+ "objectLabelRequired": "Vyberte označenie objektu",
+ "objectTypeRequired": "Vyberte typ klasifikácie"
+ },
+ "states": "Štátov"
+ },
+ "step2": {
+ "description": "Vyberte kamery a definujte oblasť, ktorú chcete pre každú kameru monitorovať. Model klasifikuje stav týchto oblastí.",
+ "cameras": "Kamery",
+ "selectCamera": "Vyberte kameru",
+ "noCameras": "Kliknite + na pridanie kamier",
+ "selectCameraPrompt": "Vyberte kameru zo zoznamu a definujte jej oblasť monitorovania"
+ },
+ "step3": {
+ "selectImagesPrompt": "Vybrať všetky obrázky s: {{className}}",
+ "selectImagesDescription": "Kliknite na obrázky a vyberte ich. Po dokončení tejto hodiny kliknite na tlačidlo Pokračovať.",
+ "generating": {
+ "title": "Generovanie vzorových obrázkov",
+ "description": "Frigate načítava reprezentatívne obrázky z vašich nahrávok. Môže to chvíľu trvať..."
+ },
+ "training": {
+ "title": "Tréningový model",
+ "description": "Váš model sa trénuje na pozadí. Zatvorte toto dialógové okno a váš model sa spustí hneď po dokončení trénovania."
+ },
+ "retryGenerate": "Opakovať generovanie",
+ "noImages": "Nevygenerovali sa žiadne vzorové obrázky",
+ "classifying": "Klasifikácia a tréning...",
+ "trainingStarted": "Školenie začalo úspešne",
+ "errors": {
+ "noCameras": "Nie sú nakonfigurované žiadne kamery",
+ "noObjectLabel": "Nie je vybratý žiadny štítok objektu",
+ "generateFailed": "Nepodarilo sa vygenerovať príklady: {{error}}",
+ "generationFailed": "Generovanie zlyhalo. Skúste to znova.",
+ "classifyFailed": "Nepodarilo sa klasifikovať obrázky: {{error}}"
+ },
+ "generateSuccess": "Vzorové obrázky boli úspešne vygenerované",
+ "allImagesRequired_one": "Uveďte všetky obrázky. {{count}} obrázok zostáva.",
+ "allImagesRequired_few": "Uveďte všetky obrázky. {{count}} obrázky zostávajú.",
+ "allImagesRequired_other": "Uveďte všetky obrázky. {{count}} obrázkov zostávajú.",
+ "modelCreated": "Model vytvorený úspešne. Použite aktuálne klasifikácie na pridanie obrázkov pre chýbajúce stavy a nasledne dajte trénovať model.",
+ "missingStatesWarning": {
+ "title": "Chýbajúce príklady stavov"
+ }
+ }
+ },
+ "deleteModel": {
+ "title": "Odstrániť klasifikačný model",
+ "single": "Ste si istí, že chcete odstrániť {{name}}? To bude trvalo odstrániť všetky súvisiace údaje vrátane obrázkov a vzdelávacích údajov. Táto akcia nemôže byť neporušená.",
+ "desc": "Ste si istí, že chcete odstrániť {{count}} model (y)? To bude trvalo odstrániť všetky súvisiace údaje vrátane obrázkov a vzdelávacích údajov. Táto akcia nemôže byť neporušená."
+ },
+ "menu": {
+ "objects": "Objekty",
+ "states": "Štátov"
+ },
+ "details": {
+ "scoreInfo": "Skóre predstavuje priemernú istotu klasifikácie naprieč detekciami tohoto objektu."
+ },
+ "tooltip": {
+ "trainingInProgress": "Model sa aktuálne trénuje",
+ "noNewImages": "Žiadne nové obrázky na trénovanie. Najskor klasifikuj nové obrazky do datasetu.",
+ "noChanges": "Žiadne zmeny v datasete od posledného tréningu.",
+ "modelNotReady": "Model nie je pripravený na trénovanie."
+ },
+ "edit": {
+ "title": "Nastavenie modelu",
+ "descriptionState": "Upravte triedy pre tento model klasifikácie. Zmeny budú vyžadovať pretrénovanie modelu.",
+ "descriptionObject": "Upravte typ objektu a typ klasifikácie pre tento model klasifikácie.",
+ "stateClassesInfo": "Poznámka: Zmena tried stavov vyžaduje pretrénovanie modelu s aktualizovanými triedami."
+ }
+}
diff --git a/web/public/locales/sk/views/configEditor.json b/web/public/locales/sk/views/configEditor.json
index 7bfafd0095..c10f789a82 100644
--- a/web/public/locales/sk/views/configEditor.json
+++ b/web/public/locales/sk/views/configEditor.json
@@ -12,5 +12,7 @@
"error": {
"savingError": "Chyba ukladaní konfigurácie"
}
- }
+ },
+ "safeConfigEditor": "Editor konfigurácie (núdzový režim)",
+ "safeModeDescription": "Frigate je v núdzovom režime kvôli chybe overenia konfigurácie."
}
diff --git a/web/public/locales/sk/views/events.json b/web/public/locales/sk/views/events.json
index 32d23889d7..fe86d41d5f 100644
--- a/web/public/locales/sk/views/events.json
+++ b/web/public/locales/sk/views/events.json
@@ -34,5 +34,29 @@
"selected_one": "{{count}} vybraných",
"selected_other": "{{count}} vybraných",
"camera": "Kamera",
- "detected": "Detekované"
+ "detected": "Detekované",
+ "suspiciousActivity": "Podozrivá aktivita",
+ "threateningActivity": "Ohrozujúca činnosť",
+ "detail": {
+ "noDataFound": "Žiadne podrobné údaje na kontrolu",
+ "aria": "Prepnúť zobrazenie detailov",
+ "trackedObject_one": "objekt",
+ "trackedObject_other": "objekty",
+ "noObjectDetailData": "Nie sú k dispozícii žiadne podrobné údaje o objekte.",
+ "label": "Detail",
+ "settings": "Nastavenia podrobného zobrazenia",
+ "alwaysExpandActive": {
+ "title": "Rozbaľte vždy aktívne",
+ "desc": "Vždy rozbaľte podrobnosti objektu aktívnej položky recenzie, ak sú k dispozícii."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Sledovaný bod",
+ "clickToSeek": "Kliknutím prejdete na tento čas"
+ },
+ "zoomIn": "Priblížiť",
+ "zoomOut": "Oddialiť",
+ "normalActivity": "Narmalne",
+ "needsReview": "Potrebuje preakúmať",
+ "securityConcern": "Záujem o bezpečnosť"
}
diff --git a/web/public/locales/sk/views/explore.json b/web/public/locales/sk/views/explore.json
index 5de31b69fc..223eb80fdd 100644
--- a/web/public/locales/sk/views/explore.json
+++ b/web/public/locales/sk/views/explore.json
@@ -2,7 +2,80 @@
"documentTitle": "Preskúmať - Frigate",
"generativeAI": "Generatívna AI",
"details": {
- "timestamp": "Časová pečiatka"
+ "timestamp": "Časová pečiatka",
+ "item": {
+ "title": "Skontrolujte podrobnosti položky",
+ "desc": "Skontrolujte podrobnosti položky",
+ "button": {
+ "share": "Zdieľajte túto recenziu",
+ "viewInExplore": "Zobraziť v Preskúmať"
+ },
+ "tips": {
+ "mismatch_one": "Bol zistený a zahrnutý do tejto položky kontroly nedostupný objekt ({{count}}). Tieto objekty buď neboli kvalifikované ako upozornenie alebo detekcia, alebo už boli vyčistené/odstránené.",
+ "mismatch_few": "Bolo zistených a zahrnutých do tejto položky kontroly {{count}} nedostupných objektov. Tieto objekty buď neboli kvalifikované ako upozornenie alebo detekcia, alebo už boli vyčistené/odstránené.",
+ "mismatch_other": "Bolo zistených a zahrnutých do tejto položky kontroly {{count}} nedostupných objektov. Tieto objekty buď neboli kvalifikované ako upozornenie alebo detekcia, alebo už boli vyčistené/odstránené.",
+ "hasMissingObjects": "Upravte si konfiguráciu, ak chcete, aby Frigate ukladal sledované objekty pre nasledujúce označenia: {{objects}}"
+ },
+ "toast": {
+ "success": {
+ "regenerate": "Od poskytovateľa {{provider}} bol vyžiadaný nový popis. V závislosti od rýchlosti vášho poskytovateľa môže jeho obnovenie chvíľu trvať.",
+ "updatedSublabel": "Podštítok bol úspešne aktualizovaný.",
+ "updatedLPR": "ŠPZ bola úspešne aktualizovaná.",
+ "audioTranscription": "Úspešne požiadané o prepis zvuku. V závislosti od rýchlosti vášho servera Frigate môže dokončenie prepisu trvať určitý čas."
+ },
+ "error": {
+ "regenerate": "Nepodarilo sa zavolať od {{provider}} pre nový popis: {{errorMessage}}",
+ "updatedSublabelFailed": "Nepodarilo sa aktualizovať podštítok: {{errorMessage}}",
+ "updatedLPRFailed": "Nepodarilo sa aktualizovať evidenčné číslo vozidla: {{errorMessage}}",
+ "audioTranscription": "Nepodarilo sa vyžiadať prepis zvuku: {{errorMessage}}"
+ }
+ }
+ },
+ "label": "Označenie",
+ "editSubLabel": {
+ "title": "Upraviť vedľajší štítok",
+ "desc": "Zadajte nový podštítok pre tento {{label}}",
+ "descNoLabel": "Zadajte nový podštítok pre tento sledovaný objekt"
+ },
+ "editLPR": {
+ "title": "Upraviť ŠPZ",
+ "desc": "Zadajte novú hodnotu evidenčného čísla vozidla pre toto {{label}}",
+ "descNoLabel": "Zadajte novú hodnotu evidenčného čísla vozidla pre tento sledovaný objekt"
+ },
+ "snapshotScore": {
+ "label": "Snímka skóre"
+ },
+ "topScore": {
+ "label": "Najlepšie skóre",
+ "info": "Najvyššie skóre je najvyššie mediánové skóre sledovaného objektu, takže sa môže líšiť od skóre zobrazeného na miniatúre výsledkov vyhľadávania."
+ },
+ "score": {
+ "label": "Skóre"
+ },
+ "recognizedLicensePlate": "Uznaná SPZ",
+ "estimatedSpeed": "Odhadovaná rýchlosť",
+ "objects": "Objekty",
+ "camera": "Kamera",
+ "zones": "Zóny",
+ "button": {
+ "findSimilar": "Nájsť podobné",
+ "regenerate": {
+ "title": "Regenerovať",
+ "label": "Obnoviť popis sledovaného objektu"
+ }
+ },
+ "description": {
+ "placeholder": "Popis sledovaného objektu",
+ "aiTips": "Frigate si od vášho poskytovateľa generatívnej umelej inteligencie nevyžiada popis, kým sa neukončí životný cyklus sledovaného objektu.",
+ "label": "Popis"
+ },
+ "expandRegenerationMenu": "Rozbaľte ponuku regenerácie",
+ "regenerateFromSnapshot": "Obnoviť zo snímky",
+ "regenerateFromThumbnails": "Obnoviť z miniatúr",
+ "tips": {
+ "descriptionSaved": "Úspešne uložený popis",
+ "saveDescriptionFailed": "Nepodarilo sa aktualizovať popis: {{errorMessage}}"
+ }
},
"exploreMore": "Preskumať viac {{label}} objektov",
"exploreIsUnavailable": {
@@ -38,7 +111,9 @@
"details": "detaily",
"snapshot": "snímka",
"video": "video",
- "object_lifecycle": "životný cyklus objektu"
+ "object_lifecycle": "životný cyklus objektu",
+ "thumbnail": "Náhľad",
+ "tracking_details": "Pohybové detaili"
},
"objectLifecycle": {
"title": "Životný cyklus Objektu",
@@ -48,6 +123,173 @@
"scrollViewTips": "Posúvaním zobrazíte významné momenty životného cyklu tohto objektu.",
"autoTrackingTips": "Pozície ohraničujúcich rámčekov budú pre kamery s automatickým sledovaním nepresné.",
"count": "{{first}} z {{second}}",
- "trackedPoint": "Sledovaný bod"
+ "trackedPoint": "Sledovaný bod",
+ "lifecycleItemDesc": {
+ "visible": "Zistený {{label}}",
+ "entered_zone": "{{label}} vstúpil do {{zones}}",
+ "active": "{{label}} sa stal aktívnym",
+ "stationary": "{{label}} sa zastavil",
+ "attribute": {
+ "faceOrLicense_plate": "Pre {{label}} bol zistený {{attribute}}",
+ "other": "{{label}} rozpoznané ako {{attribute}}"
+ },
+ "gone": "{{label}} zostalo",
+ "heard": "{{label}} počul",
+ "external": "Zistený {{label}}",
+ "header": {
+ "zones": "Zóny",
+ "ratio": "Pomer",
+ "area": "Oblasť"
+ }
+ },
+ "annotationSettings": {
+ "title": "Nastavenia anotácií",
+ "showAllZones": {
+ "title": "Zobraziť všetky zóny",
+ "desc": "Vždy zobrazovať zóny na rámoch, do ktorých objekty vstúpili."
+ },
+ "offset": {
+ "label": "Odsadenie anotácie",
+ "desc": "Tieto údaje pochádzajú z detekčného kanála vašej kamery, ale prekrývajú sa s obrázkami zo záznamového kanála. Je nepravdepodobné, že tieto dva streamy sú dokonale synchronizované. V dôsledku toho sa ohraničujúci rámček a zábery nebudú dokonale zarovnané. Na úpravu tohto posunu je však možné použiť pole annotation_offset.",
+ "documentation": "Prečítajte si dokumentáciu ",
+ "millisecondsToOffset": "Milisekundy na posunutie detekcie anotácií. Predvolené: 0",
+ "tips": "TIP: Predstavte si klip udalosti, v ktorom osoba kráča zľava doprava. Ak je ohraničujúci rámček časovej osi udalosti stále naľavo od osoby, hodnota by sa mala znížiť. Podobne, ak osoba kráča zľava doprava a ohraničujúci rámček je stále pred ňou, hodnota by sa mala zvýšiť.",
+ "toast": {
+ "success": "Odsadenie anotácie pre {{camera}} bolo uložené do konfiguračného súboru. Reštartujte Frigate, aby sa zmeny prejavili."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Predchádzajúca snímka",
+ "next": "Ďalšia snímka"
+ }
+ },
+ "itemMenu": {
+ "downloadVideo": {
+ "label": "Stiahnut video",
+ "aria": "Stiahnite si video"
+ },
+ "downloadSnapshot": {
+ "label": "Stiahnite si snímok",
+ "aria": "Stiahnite si snímok"
+ },
+ "viewObjectLifecycle": {
+ "label": "Pozrieť životný cyklus objektu",
+ "aria": "Životný cyklus objektu"
+ },
+ "findSimilar": {
+ "label": "Nájsť podobné",
+ "aria": "Nájdite podobné sledované objekty"
+ },
+ "addTrigger": {
+ "label": "Pridať spúšťač",
+ "aria": "Pridať spúšťač pre tento sledovaný objekt"
+ },
+ "audioTranscription": {
+ "label": "Prepisovať",
+ "aria": "Požiadajte o prepis zvuku"
+ },
+ "submitToPlus": {
+ "label": "Odoslať na Frigate+",
+ "aria": "Odoslať na Frigate Plus"
+ },
+ "viewInHistory": {
+ "label": "Zobraziť v histórii",
+ "aria": "Zobraziť v histórii"
+ },
+ "deleteTrackedObject": {
+ "label": "Odstrániť tento sledovaný objekt"
+ },
+ "showObjectDetails": {
+ "label": "Zobraziť cestu objektu"
+ },
+ "hideObjectDetails": {
+ "label": "Skryť cestu objektu"
+ },
+ "viewTrackingDetails": {
+ "label": "Zobraziť podrobnosti sledovania",
+ "aria": "Zobraziť podrobnosti o sledovaní"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Stiahnuť čistý snapshot",
+ "aria": "Stiahnuť čistý snapshot"
+ }
+ },
+ "dialog": {
+ "confirmDelete": {
+ "title": "Potvrdiť zmazanie",
+ "desc": "Odstránením tohto sledovaného objektu sa odstráni snímka, všetky uložené vložené prvky a všetky súvisiace položky s podrobnosťami o sledovaní. Zaznamenané zábery tohto sledovaného objektu v zobrazení História NEBUDÚ odstránené.
Naozaj chcete pokračovať?"
+ }
+ },
+ "noTrackedObjects": "Žiadne sledované objekty neboli nájdené",
+ "fetchingTrackedObjectsFailed": "Chyba pri načítaní sledovaných objektov: {{errorMessage}}",
+ "trackedObjectsCount_one": "{{count}} sledovaný objekt ",
+ "trackedObjectsCount_few": "{{count}} sledované objekty ",
+ "trackedObjectsCount_other": "{{count}} sledovaných objektov ",
+ "searchResult": {
+ "tooltip": "Zhoda s {{type}} na {{confidence}} %",
+ "deleteTrackedObject": {
+ "toast": {
+ "success": "Sledovaný objekt úspešne zmazaný.",
+ "error": "Sledovaný objekt sa nepodarilo zmazať: {{errorMessage}}"
+ }
+ },
+ "previousTrackedObject": "Predchádzajúci trackovaný objekt",
+ "nextTrackedObject": "Ďalší trackovaný objekt"
+ },
+ "aiAnalysis": {
+ "title": "Analýza AI"
+ },
+ "concerns": {
+ "label": "Obavy"
+ },
+ "trackingDetails": {
+ "title": "Podrobnosti sledovania",
+ "noImageFound": "Pre túto časovú pečiatku sa nenašiel žiadny obrázok.",
+ "createObjectMask": "Vytvoriť masku objektu",
+ "adjustAnnotationSettings": "Upravte nastavenia anotácií",
+ "scrollViewTips": "Kliknite pre zobrazenie významných momentov životného cyklu tohto objektu.",
+ "autoTrackingTips": "Pozície ohraničujúcich rámčekov budú pre kamery s automatickým sledovaním nepresné.",
+ "count": "{{first}} z {{second}}",
+ "trackedPoint": "Sledovaný bod",
+ "lifecycleItemDesc": {
+ "visible": "Zistený {{label}}",
+ "entered_zone": "{{label}} vstúpil do {{zones}}",
+ "active": "{{label}} sa stal aktívnym",
+ "stationary": "{{label}} sa zastavil",
+ "attribute": {
+ "faceOrLicense_plate": "Pre {{label}} bol zistený {{attribute}}",
+ "other": "{{label}} rozpoznané ako {{attribute}}"
+ },
+ "gone": "{{label}} zostalo",
+ "heard": "{{label}} počul",
+ "external": "Zistený {{label}}",
+ "header": {
+ "zones": "Zóny",
+ "ratio": "Pomer",
+ "area": "Oblasť",
+ "score": "Skóre"
+ }
+ },
+ "annotationSettings": {
+ "title": "Nastavenia anotácií",
+ "showAllZones": {
+ "title": "Zobraziť všetky zóny",
+ "desc": "Vždy zobrazovať zóny na rámoch, do ktorých objekty vstúpili."
+ },
+ "offset": {
+ "label": "Odsadenie anotácie",
+ "desc": "Tieto údaje pochádzajú z detektoru kamery, ale sú prepustené na obrázky z rekordného krmiva. Je nepravdepodobné, že dva prúdy sú perfektne synchronizované. V dôsledku toho, skreslenie box a zábery nebudú dokonale zaradiť. Toto nastavenie môžete použiť na ofsetovanie annotácií dopredu alebo dozadu, aby ste ich lepšie zladili s zaznamenanými zábermi.",
+ "millisecondsToOffset": "Milisekundy na posunutie detekcie anotácií. Predvolené: 0",
+ "tips": "TIP: Predstavte si klip udalosti, v ktorom osoba kráča zľava doprava. Ak je ohraničujúci rámček časovej osi udalosti stále naľavo od osoby, hodnota by sa mala znížiť. Podobne, ak osoba kráča zľava doprava a ohraničujúci rámček je stále pred ňou, hodnota by sa mala zvýšiť.",
+ "toast": {
+ "success": "Odsadenie anotácie pre {{camera}} bolo uložené do konfiguračného súboru. Reštartujte Frigate, aby sa zmeny prejavili."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Predchádzajúca snímka",
+ "next": "Ďalšia snímka"
+ }
}
}
diff --git a/web/public/locales/sk/views/exports.json b/web/public/locales/sk/views/exports.json
index 53c83f0909..d9df685009 100644
--- a/web/public/locales/sk/views/exports.json
+++ b/web/public/locales/sk/views/exports.json
@@ -13,5 +13,11 @@
"error": {
"renameExportFailed": "Nepodarilo sa premenovať export: {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "shareExport": "Zdieľať export",
+ "downloadVideo": "Stiahnite si video",
+ "editName": "Upraviť meno",
+ "deleteExport": "Odstrániť export"
}
}
diff --git a/web/public/locales/sk/views/faceLibrary.json b/web/public/locales/sk/views/faceLibrary.json
index 81d546142e..ba46fda1ff 100644
--- a/web/public/locales/sk/views/faceLibrary.json
+++ b/web/public/locales/sk/views/faceLibrary.json
@@ -1,7 +1,7 @@
{
"description": {
- "addFace": "Sprievodca pridáním novej kolekcie do Knižnice tvárí.",
- "invalidName": "Neplatný názov. Názov može obsahovať iba písmená, čísla, medzery, apostrofy, podtržníky a pomlčky.",
+ "addFace": "Pridajte novú kolekciu do Face Library nahrať svoj prvý obrázok.",
+ "invalidName": "Neplatné meno. Mená môžu obsahovať iba písmená, čísla, medzery, apostrofy, podčiarkovníky a spojovníky.",
"placeholder": "Zadajte názov pre túto kolekciu"
},
"details": {
@@ -23,7 +23,7 @@
"title": "Vytvoriť Zbierku",
"desc": "Vytvoriť novú zbierku",
"new": "Vytvoriť novú tvár",
- "nextSteps": "Vybudovanie pevných základov:
Pomocou záložky Tréning vyberte a trénujte obrázky pre každú detekovanú osobu.
Pre dosiahnutie najlepších výsledkov sa zamerajte na snímky s priamym pohľadom; vyhnite sa snímkam, ktoré zachytávajú tváre pod uhlom.
"
+ "nextSteps": "Vybudovanie silného základu:
Použite kartu Nedávne rozpoznania na výber a trénovanie obrázkov pre každú rozpoznanú osobu.
Pre dosiahnutie najlepších výsledkov sa zamerajte na priame obrázky; vyhnite sa trénovaniu obrázkov, ktoré zachytávajú tváre pod uhlom.
"
},
"steps": {
"faceName": "Zadajte Meno tváre",
@@ -34,8 +34,8 @@
}
},
"train": {
- "title": "Trénovať",
- "aria": "Vybrať tréning",
+ "title": "Nedávne uznania",
+ "aria": "Vyberte posledné rozpoznania",
"empty": "Neexistujú žiadne predchádzajúce pokusy o rozpoznávanie tváre"
},
"selectItem": "Vyberte {{item}}",
@@ -67,7 +67,7 @@
"selectImage": "Vyberte súbor s obrázkom."
},
"dropActive": "Presunte obrázok sem…",
- "dropInstructions": "Potiahnite sem obrázok alebo ho vyberte kliknutím",
+ "dropInstructions": "Pretiahnite obrázok tu, alebo kliknite na výber",
"maxSize": "Max velkosť: {{size}} MB"
},
"nofaces": "Žiadne tváre",
diff --git a/web/public/locales/sk/views/live.json b/web/public/locales/sk/views/live.json
index ebb12d4cd3..546a6035e2 100644
--- a/web/public/locales/sk/views/live.json
+++ b/web/public/locales/sk/views/live.json
@@ -43,10 +43,18 @@
"label": "Kliknite do rámčeka pre vycentrovanie PTZ kamery"
}
},
- "presets": "Predvoľby PTZ kamery"
+ "presets": "Predvoľby PTZ kamery",
+ "focus": {
+ "in": {
+ "label": "Zaostrenie PTZ kamery v"
+ },
+ "out": {
+ "label": "Výstup zaostrenia PTZ kamery"
+ }
+ }
},
"camera": {
- "enable": "Povoliť fotoaparát",
+ "enable": "Povoliť kameru",
"disable": "Zakázať kameru"
},
"muteCameras": {
@@ -72,5 +80,108 @@
"autotracking": {
"enable": "Povoliť automatické sledovanie",
"disable": "Zakázať automatické sledovanie"
+ },
+ "transcription": {
+ "enable": "Povoliť živý prepis zvuku",
+ "disable": "Zakázať živý prepis zvuku"
+ },
+ "streamStats": {
+ "enable": "Zobraziť štatistiky streamu",
+ "disable": "Skryť štatistiky streamu"
+ },
+ "manualRecording": {
+ "title": "Na požiadanie",
+ "tips": "Stiahnite si okamžité snímky alebo začnite manuálnu akciu založenú na nastavení nahrávania tejto kamery.",
+ "playInBackground": {
+ "label": "Hrať na pozadí",
+ "desc": "Povoľte túto možnosť, ak chcete pokračovať v streamovaní, aj keď je prehrávač skrytý."
+ },
+ "showStats": {
+ "label": "Zobraziť štatistiky",
+ "desc": "Povoľte túto možnosť, ak chcete zobraziť štatistiky streamu ako prekrytie na obraze z kamery."
+ },
+ "debugView": "Zobrazenie ladenia",
+ "start": "Spustiť nahrávanie na požiadanie",
+ "started": "Spustené manuálne nahrávanie na požiadanie.",
+ "failedToStart": "Nepodarilo sa spustiť manuálne nahrávanie na požiadanie.",
+ "recordDisabledTips": "Keďže nahrávanie je v konfigurácii tejto kamery zakázané alebo obmedzené, uloží sa iba snímka.",
+ "end": "Ukončiť nahrávanie na požiadanie",
+ "ended": "Manuálne nahrávanie na požiadanie bolo ukončené.",
+ "failedToEnd": "Nepodarilo sa ukončiť manuálne nahrávanie na požiadanie."
+ },
+ "streamingSettings": "Nastavenia streamovania",
+ "notifications": "Notifikacie",
+ "audio": "Zvuk",
+ "suspend": {
+ "forTime": "Pozastaviť na: "
+ },
+ "stream": {
+ "title": "Stream",
+ "audio": {
+ "tips": {
+ "title": "Zvuk musí byť vyvedený z vašej kamery a nakonfigurovaný v go2rtc pre tento stream."
+ },
+ "available": "Pre tento stream je k dispozícii zvuk",
+ "unavailable": "Zvuk nie je pre tento stream k dispozícii"
+ },
+ "twoWayTalk": {
+ "tips": "Vaše zariadenie musí túto funkciu podporovať a WebRTC musí byť nakonfigurované na obojsmernú komunikáciu.",
+ "available": "Pre tento stream je k dispozícii obojsmerná komunikácia",
+ "unavailable": "Obojsmerná komunikácia nie je pre tento stream k dispozícii"
+ },
+ "lowBandwidth": {
+ "tips": "Živý náhľad je v režime nízkej šírky pásma z dôvodu chýb načítavania do vyrovnávacej pamäte alebo streamu.",
+ "resetStream": "Obnoviť stream"
+ },
+ "playInBackground": {
+ "label": "Hrať na pozadí",
+ "tips": "Povoľte túto možnosť, ak chcete pokračovať v streamovaní, aj keď je prehrávač skrytý."
+ },
+ "debug": {
+ "picker": "Výber streamu nie je k dispozícii v režime ladenia. Zobrazenie ladenia vždy používa stream, ktorému je priradená rola detekcie."
+ }
+ },
+ "cameraSettings": {
+ "title": "Nastavenia {{camera}}",
+ "cameraEnabled": "Kamera povolená",
+ "objectDetection": "Detekcia objektov",
+ "recording": "Nahrávanie",
+ "snapshots": "Snímky",
+ "audioDetection": "Detekcia zvuku",
+ "transcription": "Zvukový prepis",
+ "autotracking": "Automatické sledovanie"
+ },
+ "history": {
+ "label": "Zobraziť historické zábery"
+ },
+ "effectiveRetainMode": {
+ "modes": {
+ "all": "Všetko",
+ "motion": "Pohyb",
+ "active_objects": "Aktívne objekty"
+ },
+ "notAllTips": "Vaša konfigurácia uchovávania nahrávok {{source}} je nastavená na režim : {{effectiveRetainMode}}, takže táto nahrávka na požiadanie uchová iba segmenty s nastavením {{effectiveRetainModeName}}."
+ },
+ "editLayout": {
+ "label": "Upraviť rozloženie",
+ "group": {
+ "label": "Upraviť skupinu kamier"
+ },
+ "exitEdit": "Ukončiť úpravy"
+ },
+ "noCameras": {
+ "title": "Nie sú konfigurované žiadne kamery",
+ "description": "Začnite tým, že pripojíte kameru do Frigate.",
+ "buttonText": "Pridať kameru",
+ "restricted": {
+ "title": "Žiadne kamery k dispozícii",
+ "description": "Nemáte povolenie na zobrazenie akýchkoľvek kamier v tejto skupine."
+ }
+ },
+ "snapshot": {
+ "takeSnapshot": "Stiahnite si okamžité snímky",
+ "noVideoSource": "Žiadny zdroj videa k dispozícii pre snapshot.",
+ "captureFailed": "Nepodarilo sa zachytiť snímku.",
+ "downloadStarted": "Sťahovanie snímky sa začalo."
}
}
diff --git a/web/public/locales/sk/views/search.json b/web/public/locales/sk/views/search.json
index cc567af26c..a368ca1233 100644
--- a/web/public/locales/sk/views/search.json
+++ b/web/public/locales/sk/views/search.json
@@ -41,6 +41,32 @@
"minSpeedMustBeLessOrEqualMaxSpeed": "Hodnota „min_speed“ musí byť menšia alebo rovná hodnote „max_speed“.",
"maxSpeedMustBeGreaterOrEqualMinSpeed": "Hodnota „max_speed“ musí byť väčšia alebo rovná hodnote „min_speed“."
}
+ },
+ "tips": {
+ "title": "Ako používať textové filtre",
+ "desc": {
+ "text": "Filtre vám pomôžu zúžiť výsledky vyhľadávania. Tu je postup, ako ich použiť vo vstupnom poli:",
+ "step1": "Zadajte názov kľúča filtra, za ktorým nasleduje dvojbodka (napr. „kamery:“).",
+ "step2": "Vyberte hodnotu z návrhov alebo zadajte vlastnú.",
+ "step3": "Použite viacero filtrov tak, že ich pridáte jeden po druhom s medzerou medzi nimi.",
+ "step4": "Filtre dátumu (pred: a po:) používajú formát {{DateFormat}}.",
+ "step5": "Filter časového rozsahu používa formát {{exampleTime}}.",
+ "step6": "Filtre odstránite kliknutím na „x“ vedľa nich.",
+ "exampleLabel": "Príklad:"
+ }
+ },
+ "header": {
+ "currentFilterType": "Hodnoty filtra",
+ "noFilters": "Filtre",
+ "activeFilters": "Aktívne filtre"
}
+ },
+ "similaritySearch": {
+ "title": "Vyhľadávanie podobností",
+ "active": "Vyhľadávanie podobnosti je aktívne",
+ "clear": "Jasné vyhľadávanie podobnosti"
+ },
+ "placeholder": {
+ "search": "Hľadať…"
}
}
diff --git a/web/public/locales/sk/views/settings.json b/web/public/locales/sk/views/settings.json
index 27013c1974..9002366061 100644
--- a/web/public/locales/sk/views/settings.json
+++ b/web/public/locales/sk/views/settings.json
@@ -2,14 +2,16 @@
"documentTitle": {
"default": "Nastavenia - Frigate",
"authentication": "Nastavenie autentifikácie- Frigate",
- "camera": "Nastavenia fotoaparátu – Frigate",
+ "camera": "Nastavenia Kamier– Frigate",
"enrichments": "Nastavenia obohatenia – Frigate",
"masksAndZones": "Editor masky a zón - Frigate",
"motionTuner": "Ladič detekcie pohybu - Frigate",
"object": "Ladenie - Frigate",
- "general": "Všeobecné nastavenia – Frigate",
+ "general": "UI nastavenia – Frigate",
"frigatePlus": "Nastavenia Frigate+ – Frigate",
- "notifications": "Nastavenia upozornení – Frigate"
+ "notifications": "Nastavenia upozornení – Frigate",
+ "cameraManagement": "Manažment kamier - Frigate",
+ "cameraReview": "Nastavenie kamier - Frigate"
},
"menu": {
"ui": "Uživaťelské rozohranie",
@@ -20,7 +22,11 @@
"debug": "Ladenie",
"users": "Uživatelia",
"notifications": "Notifikacie",
- "frigateplus": "Frigate+"
+ "frigateplus": "Frigate+",
+ "triggers": "Spúšťače",
+ "roles": "Roly",
+ "cameraManagement": "Manažment",
+ "cameraReview": "Recenzia"
},
"dialog": {
"unsavedChanges": {
@@ -33,7 +39,7 @@
"noCamera": "Žiadna Kamera"
},
"general": {
- "title": "Hlavné nastavenia",
+ "title": "UI nastavenia",
"liveDashboard": {
"title": "Živý Dashboard",
"automaticLiveView": {
@@ -43,12 +49,1162 @@
"playAlertVideos": {
"label": "Prehrať videá s upozornením",
"desc": "Predvolene sa nedávne upozornenia na paneli Živé vysielanie prehrávajú ako krátke cyklické videá. Túto možnosť vypnite, ak chcete zobrazovať iba statický obrázok nedávnych upozornení na tomto zariadení/prehliadači."
+ },
+ "displayCameraNames": {
+ "label": "Vždy Zobraziť názvy kamier",
+ "desc": "Vždy zobrazujte názvy kamier v čipe na ovládacom paneli živého náhľadu z viacerých kamier."
+ },
+ "liveFallbackTimeout": {
+ "label": "Časový limit",
+ "desc": "Keď je kamerový vysoko kvalitný živý stream nedostupný, prejdite späť na režim nízkej kvality. Predvolené: 3."
}
},
"storedLayouts": {
"title": "Uložené rozloženia",
"desc": "Rozloženie kamier v skupine kamier je možné presúvať/zmeniť jeho veľkosť. Pozície sú uložené v lokálnom úložisku vášho prehliadača.",
"clearAll": "Vymazať všetky rozloženia"
+ },
+ "cameraGroupStreaming": {
+ "title": "Nastavenia streamovania skupiny kamier",
+ "desc": "Nastavenia streamovania pre každú skupinu kamier sú uložené v lokálnom úložisku vášho prehliadača.",
+ "clearAll": "Vymazať všetky nastavenia streamovania"
+ },
+ "recordingsViewer": {
+ "title": "Prehliadač nahrávok",
+ "defaultPlaybackRate": {
+ "label": "Predvolená rýchlosť prehrávania",
+ "desc": "Predvolená rýchlosť prehrávania nahrávok."
+ }
+ },
+ "calendar": {
+ "title": "Kalendár",
+ "firstWeekday": {
+ "label": "Prvý pracovný deň",
+ "desc": "Deň, kedy začínajú týždne v kalendári kontroly.",
+ "sunday": "Nedeľa",
+ "monday": "Pondelok"
+ }
+ },
+ "toast": {
+ "success": {
+ "clearStoredLayout": "Uložené rozloženie pre {{cameraName}} bolo vymazané",
+ "clearStreamingSettings": "Nastavenia streamovania pre všetky skupiny kamier boli vymazané."
+ },
+ "error": {
+ "clearStoredLayoutFailed": "Nepodarilo sa vymazať uložené rozloženie: {{errorMessage}}",
+ "clearStreamingSettingsFailed": "Nepodarilo sa vymazať nastavenia streamovania: {{errorMessage}}"
+ }
+ }
+ },
+ "enrichments": {
+ "title": "Nastavenia obohatení",
+ "unsavedChanges": "Zmeny nastavení neuložených obohatení",
+ "birdClassification": {
+ "title": "Klasifikácia vtákov",
+ "desc": "Klasifikácia vtákov identifikuje známe vtáky pomocou kvantizovaného modelu Tensorflow. Keď je známy vták rozpoznaný, jeho bežný názov sa pridá ako podoznačenie (sub_label). Tieto informácie sú zahrnuté v používateľskom rozhraní, filtroch, ako aj v oznámeniach."
+ },
+ "semanticSearch": {
+ "title": "Sémantické vyhľadávanie",
+ "desc": "Sémantické vyhľadávanie vo Frigate vám umožňuje nájsť sledované objekty v rámci vašich recenzovaných položiek pomocou samotného obrázka, textového popisu definovaného používateľom alebo automaticky vygenerovaného popisu.",
+ "reindexNow": {
+ "label": "Preindexovať teraz",
+ "desc": "Reindexovanie obnoví vložené súbory pre všetky sledované objekty. Tento proces beží na pozadí a môže maximálne zaťažiť váš procesor a trvať pomerne dlho v závislosti od počtu sledovaných objektov, ktoré máte.",
+ "confirmTitle": "Potvrďte opätovné indexovanie",
+ "confirmDesc": "Naozaj chcete preindexovať všetky sledované vložené objekty? Tento proces bude bežať na pozadí, ale môže maximálne zaťažiť váš procesor a trvať pomerne dlho. Priebeh si môžete pozrieť na stránke Preskúmať.",
+ "confirmButton": "Preindexovať",
+ "success": "Reindexovanie sa úspešne spustilo.",
+ "alreadyInProgress": "Reindexovanie už prebieha.",
+ "error": "Nepodarilo sa spustiť reindexáciu: {{errorMessage}}"
+ },
+ "modelSize": {
+ "label": "Veľkosť modelu",
+ "desc": "Veľkosť modelu použitého pre vkladanie sémantického vyhľadávania.",
+ "small": {
+ "title": "malý",
+ "desc": "Použitie funkcie small využíva kvantizovanú verziu modelu, ktorá spotrebuje menej pamäte RAM a beží rýchlejšie na CPU s veľmi zanedbateľným rozdielom v kvalite vkladania."
+ },
+ "large": {
+ "title": "veľký",
+ "desc": "Použitie parametra large využíva celý model Jina a v prípade potreby sa automaticky spustí na GPU."
+ }
+ }
+ },
+ "faceRecognition": {
+ "title": "Rozpoznávanie tváre",
+ "desc": "Rozpoznávanie tváre umožňuje priradiť ľuďom mená a po rozpoznaní ich tváre Frigate priradí meno osoby ako podštítok. Tieto informácie sú zahrnuté v používateľskom rozhraní, filtroch, ako aj v upozorneniach.",
+ "modelSize": {
+ "label": "Veľkosť modelu",
+ "desc": "Veľkosť modelu použitého na rozpoznávanie tváre.",
+ "small": {
+ "title": "malý",
+ "desc": "Použitie funkcie small využíva model vkladania tvárí FaceNet, ktorý efektívne beží na väčšine procesorov."
+ },
+ "large": {
+ "title": "veľký",
+ "desc": "Použitie funkcie large využíva model vkladania tvárí ArcFace a v prípade potreby sa automaticky spustí na grafickom procesore."
+ }
+ }
+ },
+ "licensePlateRecognition": {
+ "title": "Rozpoznávanie ŠPZ",
+ "desc": "Frigate dokáže rozpoznávať evidenčné čísla vozidiel a automaticky pridávať detekované znaky do poľa recognized_license_plate alebo známy názov ako podradený štítok k objektom typu car. Bežným prípadom použitia môže byť čítanie evidenčných čísel áut vchádzajúcich na príjazdovú cestu alebo áut prechádzajúcich po ulici."
+ },
+ "restart_required": "Vyžaduje sa reštart (zmenené nastavenia obohatenia)",
+ "toast": {
+ "success": "Nastavenia obohatenia boli uložené. Reštartujte Frigate, aby sa zmeny prejavili.",
+ "error": "Nepodarilo sa uložiť zmeny konfigurácie: {{errorMessage}}"
+ }
+ },
+ "camera": {
+ "title": "Nastavenie kamier",
+ "streams": {
+ "title": "Streamy",
+ "desc": "Dočasne deaktivujte kameru, kým sa Frigate nereštartuje. Deaktivácia kamery úplne zastaví spracovanie streamov z tejto kamery aplikáciou Frigate. Detekcia, nahrávanie a ladenie nebudú k dispozícii. Poznámka: Toto nezakáže restreamy go2rtc."
+ },
+ "review": {
+ "title": "Recenzia",
+ "desc": "Dočasne povoliť/zakázať upozornenia a detekcie pre túto kameru, kým sa Frigate nereštartuje. Po zakázaní sa nebudú generovať žiadne nové položky kontroly. ",
+ "alerts": "Upozornenia ",
+ "detections": "Detekcie "
+ },
+ "object_descriptions": {
+ "title": "Generatívne popisy objektov umelej inteligencie",
+ "desc": "Dočasne povoliť/zakázať generatívne popisy objektov AI pre túto kameru. Ak je táto funkcia zakázaná, pre sledované objekty na tejto kamere sa nebudú vyžadovať popisy generované AI."
+ },
+ "review_descriptions": {
+ "title": "Popisy generatívnej umelej inteligencie",
+ "desc": "Dočasne povoliť/zakázať generatívne popisy kontroly pomocou umelej inteligencie pre túto kameru. Ak je táto funkcia zakázaná, popisy generované umelou inteligenciou sa nebudú vyžadovať pre položky kontroly v tejto kamere."
+ },
+ "reviewClassification": {
+ "title": "Preskúmať klasifikáciu",
+ "desc": "Frigate kategorizuje položky recenzií ako Upozornenia a Detekcie. Predvolene sa všetky objekty typu osoba a auto považujú za Upozornenia. Kategorizáciu položiek recenzií môžete spresniť konfiguráciou požadovaných zón pre ne.",
+ "noDefinedZones": "Pre túto kameru nie sú definované žiadne zóny.",
+ "objectAlertsTips": "Všetky objekty {{alertsLabels}} na {{cameraName}} sa zobrazia ako Upozornenia.",
+ "zoneObjectAlertsTips": "Všetky objekty {{alertsLabels}} detekované v {{zone}} na {{cameraName}} budú zobrazené ako Upozornenia.",
+ "objectDetectionsTips": "Všetky objekty {{detectionsLabels}}, ktoré nie sú zaradené do kategórie {{cameraName}}, sa zobrazia ako detekcie bez ohľadu na to, v ktorej zóne sa nachádzajú.",
+ "zoneObjectDetectionsTips": {
+ "text": "Všetky objekty {{detectionsLabels}}, ktoré nie sú zaradené do kategórie {{zone}} na kamere {{cameraName}}, budú zobrazené ako detekcie.",
+ "notSelectDetections": "Všetky objekty typu {{detectionsLabels}} detekované v zóne {{zone}} na kamere {{cameraName}}, ktoré nie sú zaradené do kategórie Upozornenia, sa zobrazia ako Detekcie bez ohľadu na to, v ktorej zóne sa nachádzajú.",
+ "regardlessOfZoneObjectDetectionsTips": "Všetky objekty {{detectionsLabels}}, ktoré nie sú zaradené do kategórie {{cameraName}}, sa zobrazia ako detekcie bez ohľadu na to, v ktorej zóne sa nachádzajú."
+ },
+ "unsavedChanges": "Neuložené nastavenia klasifikácie recenzií pre {{camera}}",
+ "selectAlertsZones": "Vyberte podobné sledované objekty",
+ "selectDetectionsZones": "Vyberte zóny pre detekcie",
+ "limitDetections": "Obmedziť detekciu na konkrétne zóny",
+ "toast": {
+ "success": "Konfigurácia klasifikácie bola uložená. Reštartujte Frigate, aby sa zmeny prejavili."
+ }
+ },
+ "addCamera": "Pridať novu kameru",
+ "editCamera": "Upraviť kameru:",
+ "selectCamera": "Vyberte kameru",
+ "backToSettings": "Späť na nastavenia kamery",
+ "cameraConfig": {
+ "add": "Pridať kameru",
+ "edit": "Upraviť kameru",
+ "description": "Konfigurovať nastavenia kamery, vrátane vstupov streamu a rolí.",
+ "name": "Názov kamery",
+ "nameRequired": "Názov kamery je povinný",
+ "nameLength": "Názov kamery musí mať menej ako 24 znakov.",
+ "namePlaceholder": "napr. predné dvere",
+ "enabled": "Povoliť",
+ "ffmpeg": {
+ "inputs": "Vstupné streamy",
+ "path": "Cesta streamu",
+ "pathRequired": "Cesta k streamu je povinná",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Roly",
+ "rolesRequired": "Je vyžadovaná aspoň jedna rola",
+ "rolesUnique": "Každá rola (audio, detekcia, záznam) môže byť priradená iba k jednému streamu",
+ "addInput": "Pridať vstupný stream",
+ "removeInput": "Odobrať vstupný stream",
+ "inputsRequired": "Je vyžadovaný aspoň jeden vstupný stream"
+ },
+ "toast": {
+ "success": "Kamera {{cameraName}} bola úspešne uložená"
+ }
+ }
+ },
+ "masksAndZones": {
+ "filter": {
+ "all": "Všetky Masky a Zóny"
+ },
+ "restart_required": "Vyžadovaný reštart (masky/zóny boli zmenené)",
+ "toast": {
+ "success": {
+ "copyCoordinates": "Súradnice pre {{polyName}} skopírované do schránky."
+ },
+ "error": {
+ "copyCoordinatesFailed": "Nemohol kopírovať súradnice na klipboard."
+ }
+ },
+ "form": {
+ "polygonDrawing": {
+ "error": {
+ "mustBeFinished": "Kreslenie polygónu musí byť pred uložením dokončené."
+ },
+ "removeLastPoint": "Odobrať posledný bod",
+ "reset": {
+ "label": "Vymazať všetky body"
+ },
+ "snapPoints": {
+ "true": "Prichytávať body",
+ "false": "Neprichytávať body"
+ },
+ "delete": {
+ "title": "Potvrdiť Zmazanie",
+ "desc": "Naozaj chcete zmazať {{type}}{{name}}?",
+ "success": "{{name}} bolo zmazané."
+ }
+ },
+ "zoneName": {
+ "error": {
+ "mustBeAtLeastTwoCharacters": "Názov Zóny musia mať minimálne 2 znaky.",
+ "mustNotBeSameWithCamera": "Názov Zóny nesmie byť rovnaký ako názov kamery.",
+ "alreadyExists": "Zóna s rovnakým názvom pri tejto kamere už existuje.",
+ "mustNotContainPeriod": "Názov zóny nesmie obsahovať bodky.",
+ "hasIllegalCharacter": "Názov zóny obsahuje zakázané znaky.",
+ "mustHaveAtLeastOneLetter": "Názov zóny musí mať aspoň jedno písmeno."
+ }
+ },
+ "distance": {
+ "error": {
+ "text": "Vzdialenosť musí byť väčšia alebo rovná 0.1.",
+ "mustBeFilled": "Na použitie odhadu rýchlosti musia byť vyplnené všetky polia pre vzdialenosť."
+ }
+ },
+ "inertia": {
+ "error": {
+ "mustBeAboveZero": "Zotrvačnosť musí byť väčšia ako 0."
+ }
+ },
+ "loiteringTime": {
+ "error": {
+ "mustBeGreaterOrEqualZero": "Doba zotrvania musí byť väčšia alebo rovná nule."
+ }
+ },
+ "speed": {
+ "error": {
+ "mustBeGreaterOrEqualTo": "Prahová hodnota rýchlosti musí byť väčšia alebo rovná 0,1."
+ }
+ }
+ },
+ "zones": {
+ "label": "Zóny",
+ "documentTitle": "Upraviť Zónu - Frigate",
+ "desc": {
+ "title": "Zóny umožňujú definovať konkrétnu oblasť v zábere, vďaka čomu je možné určiť, či sa objekt nachádza v danej oblasti alebo nie.",
+ "documentation": "Dokumentácia"
+ },
+ "clickDrawPolygon": "Kliknite pre kreslenie polygónu na obrázku.",
+ "name": {
+ "title": "Meno",
+ "inputPlaceHolder": "Zadajte meno…",
+ "tips": "Názov musí mať aspoň 2 znaky, musí mať aspoň jedno písmeno a nesmie byť názvom kamery alebo inej zóny."
+ },
+ "inertia": {
+ "title": "Zotrvačnosť",
+ "desc": "Určuje, po koľkých snímkach strávených v zóne je objekt považovaný za prítomný v tejto zóne.Predvolená hodnota: 3"
+ },
+ "loiteringTime": {
+ "title": "Doba zotrvania",
+ "desc": "Nastavuje minimálnu dobu v sekundách, počas ktorej musí byť objekt v zóne, aby došlo k aktivácii.Predvolená hodnota: 0"
+ },
+ "objects": {
+ "title": "Objekty",
+ "desc": "Zoznam objektov, na ktoré sa táto zóna vzťahuje."
+ },
+ "allObjects": "Všetky Objekty",
+ "speedEstimation": {
+ "title": "Odhad rýchlosti",
+ "desc": "Povoliť odhad rýchlosti pre objekty v tejto zóne. Zóna musí mať presne 4 body.",
+ "lineADistance": "Vzdialenosť linky A ({{unit}})",
+ "lineBDistance": "Vzdialenosť linky B ({{unit}})",
+ "lineCDistance": "Vzdialenosť linky C ({{unit}})",
+ "lineDDistance": "Vzdialenosť linky D ({{unit}})"
+ },
+ "speedThreshold": {
+ "title": "Prah rýchlosti ({{unit}})",
+ "desc": "Určuje minimálnu rýchlosť, pri ktorej sú objekty v tejto zóne zohľadnené.",
+ "toast": {
+ "error": {
+ "pointLengthError": "Odhad rýchlosti bol pre túto zónu deaktivovaný. Zóny s odhadom rýchlosti musia mať presne 4 body.",
+ "loiteringTimeError": "Pokiaľ má zóna nastavenú dobu zotrvania väčšiu ako 0, neodporúča sa používať odhad rýchlosti."
+ }
+ }
+ },
+ "toast": {
+ "success": "Zóna {{zoneName}} bola uložená. Reštartujte Frigate pre aplikovanie zmien."
+ },
+ "add": "Pridať zónu",
+ "edit": "Upraviť zónu",
+ "point_one": "{{count}}bod",
+ "point_few": "{{count}}body",
+ "point_other": "{{count}}bodov"
+ },
+ "motionMasks": {
+ "label": "Maska Detekcia pohybu",
+ "documentTitle": "Editovať Masku Detekcia pohybu - Frigate",
+ "desc": {
+ "title": "Masky detekcie pohybu slúžia na zabránenie nežiaducim typom pohybu v spustení detekcie. Príliš rozsiahle maskovanie však môže sťažiť sledovanie objektov.",
+ "documentation": "Dokumentácia"
+ },
+ "add": "Nová Maska Detekcia pohybu",
+ "edit": "Upraviť Masku Detekcia pohybu",
+ "context": {
+ "title": "Masky detekcie pohybu slúžia na zabránenie tomu, aby nežiaduce typy pohybu spúšťali detekciu (napríklad vetvy stromov alebo časové značky kamery). Masky detekcie pohybu by sa mali používať veľmi striedmo – príliš rozsiahle maskovanie môže sťažiť sledovanie objektov."
+ },
+ "point_one": "{{count}} bod",
+ "point_few": "{{count}} body",
+ "point_other": "{{count}} bodov",
+ "clickDrawPolygon": "Kliknutím nakreslíte polygón do obrázku.",
+ "polygonAreaTooLarge": {
+ "title": "Maska detekcie pohybu pokrýva {{polygonArea}}% záberu kamery. Príliš veľké masky detekcie pohybu nie sú odporúčané.",
+ "tips": "Masky detekcie pohybu nebránia detekcii objektov. Namiesto toho by ste mali použiť požadovanú zónu."
+ },
+ "toast": {
+ "success": {
+ "title": "{{polygonName}} bol uložený. Reštartujte Frigate pre aplikovanie zmien.",
+ "noName": "Maska Detekcia pohybu bola uložená. Reštartujte Frigate pre aplikovanie zmien."
+ }
+ }
+ },
+ "objectMasks": {
+ "label": "Masky Objektu",
+ "documentTitle": "Upraviť Masku Objektu - Frigate",
+ "desc": {
+ "title": "Masky filtrovania objektov slúžia na odfiltrovanie falošných detekcií daného typu objektu na základe jeho umiestnenia.",
+ "documentation": "Dokumentácia"
+ },
+ "add": "Pridať Masku Objektu",
+ "edit": "Upraviť Masku Objektu",
+ "context": "Masky filtrovania objektov slúžia na odfiltrovanie falošných poplachov konkrétneho typu objektu na základe jeho umiestnenia.",
+ "point_one": "{{count}}bod",
+ "point_few": "{{count}}body",
+ "point_other": "{{count}} bodov",
+ "clickDrawPolygon": "Kliknutím nakreslite polygón do obrázku.",
+ "objects": {
+ "title": "Objekty",
+ "desc": "Typ objektu, na ktorý sa táto maska objektu vzťahuje.",
+ "allObjectTypes": "Všetky typy objektov"
+ },
+ "toast": {
+ "success": {
+ "title": "{{polygonName}} bol uložený. Reštartujte Frigate pre aplikovanie zmien.",
+ "noName": "Maska Objektu bola uložená. Reštartujte Frigate pre aplikovanie zmien."
+ }
+ }
+ },
+ "motionMaskLabel": "Maska Detekcia pohybu {{number}}",
+ "objectMaskLabel": "Maska Objektu {{number}} {{label}}"
+ },
+ "motionDetectionTuner": {
+ "title": "Ladenie detekcie pohybu",
+ "unsavedChanges": "Neuložené zmeny ladenia detekcie pohybu {{camera}}",
+ "desc": {
+ "title": "Frigate používa detekciu pohybu ako prvú kontrolu na overenie, či sa v snímke deje niečo, čo stojí za ďalšiu analýzu pomocou detekcie objektov.",
+ "documentation": "Prečítajte si príručku Ladenie detekcie pohybu"
+ },
+ "Threshold": {
+ "title": "Prah",
+ "desc": "Prahová hodnota určuje, aká veľká zmena jasu pixelu je nutná, aby bol považovaný za pohyb. Predvolené: 30"
+ },
+ "contourArea": {
+ "title": "Obrysová Oblasť",
+ "desc": "Hodnota plochy obrysu sa používa na rozhodnutie, ktoré skupiny zmenených pixelov sa kvalifikujú ako pohyb. Predvolené: 10"
+ },
+ "improveContrast": {
+ "title": "Zlepšiť Kontrast",
+ "desc": "Zlepšiť kontrast pre tmavé scény Predvolené: ON"
+ },
+ "toast": {
+ "success": "Nastavenie detekcie pohybu bolo uložené."
+ }
+ },
+ "debug": {
+ "title": "Ladenie",
+ "detectorDesc": "Frigate používa vaše detektory {{detectors}} na detekciu objektov v streame vašich kamier.",
+ "desc": "Ladiace zobrazenie ukazuje sledované objekty a ich štatistiky v reálnom čase. Zoznam objektov zobrazuje časovo oneskorený prehľad detekovaných objektov.",
+ "openCameraWebUI": "Otvoriť webové rozhranie {{camera}}",
+ "debugging": "Ladenie",
+ "objectList": "Zoznam objektov",
+ "noObjects": "Žiadne objekty",
+ "audio": {
+ "title": "Zvuk",
+ "noAudioDetections": "Žiadne detekcia zvuku",
+ "score": "skóre",
+ "currentRMS": "Aktuálne RMS",
+ "currentdbFS": "Aktuálne dbFS"
+ },
+ "boundingBoxes": {
+ "title": "Ohraničujúce rámčeky",
+ "desc": "Zobraziť ohraničujúce rámčeky okolo sledovaných objektov",
+ "colors": {
+ "label": "Farby Ohraničujúcich Rámčekov Objektov",
+ "info": "
Pri spustení bude každému objektovému štítku priradená iná farba.
Tenká tmavo modrá čiara označuje, že objekt nie je v danom okamihu detekovaný.
Tenká šedá čiara znamená, že objekt je detekovaný ako nehybný.
Jasnozelené políčka budú prekrývať oblasti záujmu v zábere, ktoré sa odosielajú do detektora objektov.
"
+ },
+ "paths": {
+ "title": "Cesty",
+ "desc": "Zobraziť významné body dráhy sledovaného objektu",
+ "tips": "
Cesty
Čiary a kruhy označujú významné body, ktorými sa sledovaný objekt počas svojho životného cyklu pohyboval.
"
+ },
+ "objectShapeFilterDrawing": {
+ "title": "Výkres filtra tvaru objektu",
+ "desc": "Nakreslite na obrázok obdĺžnik, aby ste zobrazili podrobnosti o ploche a pomere",
+ "tips": "Povolením tejto možnosti nakreslíte na obraze kamery obdĺžnik, ktorý zobrazuje jeho plochu a pomer strán. Tieto hodnoty sa potom dajú použiť na nastavenie parametrov filtra tvaru objektu vo vašej konfigurácii.",
+ "score": "Skóre",
+ "ratio": "Pomer",
+ "area": "Oblasť"
+ }
+ },
+ "cameraWizard": {
+ "title": "Pridať kameru",
+ "description": "Postupujte podľa pokynov nižšie a pridajte novú kameru na inštaláciu Frigate.",
+ "steps": {
+ "nameAndConnection": "Meno a pripojenie",
+ "streamConfiguration": "Konfigurácia prúdu",
+ "validationAndTesting": "Platnosť a testovanie",
+ "probeOrSnapshot": "Probe alebo Snapshot"
+ },
+ "save": {
+ "success": "Úspešne zachránil novú kameru {{cameraName}}.",
+ "failure": "Úspora chýb {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Rozlíšenie",
+ "video": "Video",
+ "audio": "Zvuk",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Uveďte platnú adresu streamu",
+ "testFailed": "Test Stream zlyhal: {{error}}"
+ },
+ "step1": {
+ "description": "Zadajte detaily kamery a vyskúšajte pripojenie.",
+ "cameraName": "Názov kamery",
+ "cameraNamePlaceholder": "e.g., front_door alebo Back Yard Prehľad",
+ "host": "Hostia / IP adresa",
+ "port": "Prístav",
+ "username": "Používateľské meno",
+ "usernamePlaceholder": "Voliteľné",
+ "password": "Heslo",
+ "passwordPlaceholder": "Voliteľné",
+ "selectTransport": "Vyberte dopravný protokol",
+ "cameraBrand": "Značka kamery",
+ "selectBrand": "Vyberte značku kamery pre URL šablónu",
+ "customUrl": "Vlastné Stream URL",
+ "brandInformation": "Informácie o značke",
+ "brandUrlFormat": "Pre kamery s formátom RTSP URL ako: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://username:password@host:port/path",
+ "testConnection": "Testovacie pripojenie",
+ "testSuccess": "Test pripojenia úspešný!",
+ "testFailed": "Test pripojenia zlyhal. Skontrolujte svoj vstup a skúste to znova.",
+ "streamDetails": "Detaily vysielania",
+ "warnings": {
+ "noSnapshot": "Nemožno načítať snímku z konfigurovaného vysielania."
+ },
+ "errors": {
+ "brandOrCustomUrlRequired": "Buď vyberte značku kamery s hostiteľom / IP alebo si vyberte \"Iný\" s vlastnou URL",
+ "nameRequired": "Názov kamery je povinný",
+ "nameLength": "Názov kamery musí byť 64 znakov alebo menej",
+ "invalidCharacters": "Názov kamery obsahuje neplatné znaky",
+ "nameExists": "Názov kamery už existuje",
+ "brands": {
+ "reolink-rtsp": "Reolink RTSP sa neodporúča. Odporúča sa povoliť HTTP v nastavení kamery a reštartovať sprievodca kamery."
+ },
+ "customUrlRtspRequired": "Vlastné URL musia začať s \"rtsp / \"\". Manuálna konfigurácia je potrebná pre non-RTSP kamerové prúdy."
+ },
+ "docs": {
+ "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
+ },
+ "testing": {
+ "probingMetadata": "Skúmanie metadát kamery...",
+ "fetchingSnapshot": "Načítava sa snímka z kamery..."
+ },
+ "connectionSettings": "Nastavenie pripojenia",
+ "detectionMethod": "Stream Detekcia Metóda",
+ "onvifPort": "ONVIF Port",
+ "probeMode": "Probe kamera",
+ "manualMode": "Ručný výber",
+ "detectionMethodDescription": "Vyskúša cez ONVIF (ak je podporovaný) nájsť kamery streamové adresy, alebo ručne vyberte značku kamery a jej preddefinované URL. Ak chcete zadať vlastnú URL RTSP, vyberte manuálne zadanie a označte \"Ostatné\".",
+ "onvifPortDescription": "Pre kamery, ktoré podporujú ONVIF, to je zvyčajne 80 alebo 8080.",
+ "useDigestAuth": "Použite overenie súhrnu",
+ "useDigestAuthDescription": "Použite HTTP stráviteľné overenie pre ONVIF. Niektoré kamery môžu vyžadovať vyhradený ONVIF užívateľské meno/password namiesto štandardného správcu."
+ },
+ "step2": {
+ "description": "Vyhľadajte dostupné streamy z kamery alebo nakonfigurujte manuálne nastavenia na základe zvolenej metódy detekcie.",
+ "streamsTitle": "Kamerové prúdy",
+ "addStream": "Pridať Stream",
+ "addAnotherStream": "Pridať ďalší Stream",
+ "streamTitle": "Stream {{number}}",
+ "streamUrl": "Stream URL",
+ "streamUrlPlaceholder": "rtsp://username:password@host:port/path",
+ "url": "URL",
+ "resolution": "Rozlíšenie",
+ "selectResolution": "Vyberte rozlíšenie",
+ "quality": "Kvalita",
+ "selectQuality": "Vyberte kvalitu",
+ "roles": "Roly",
+ "roleLabels": {
+ "detect": "Detekcia objektov",
+ "record": "Nahrávanie",
+ "audio": "Zvuk"
+ },
+ "testStream": "Testovacie pripojenie",
+ "testSuccess": "Test pripojenia bol úspešný!",
+ "testFailed": "Test pripojenia zlyhal. Skontrolujte zadané údaje a skúste to znova.",
+ "testFailedTitle": "Test Zlyhal",
+ "connected": "Pripojené",
+ "notConnected": "Nie je pripojený",
+ "featuresTitle": "Vlastnosti",
+ "go2rtc": "Znížte počet pripojení ku kamere",
+ "detectRoleWarning": "Aspoň jeden prúd musí mať \"detekt\" úlohu pokračovať.",
+ "rolesPopover": {
+ "title": "Roly streamu",
+ "detect": "Hlavné krmivo pre detekciu objektu.",
+ "record": "Ukladá segmenty video kanála na základe nastavení konfigurácie.",
+ "audio": "Kŕmenie pre detekciu zvuku."
+ },
+ "featuresPopover": {
+ "title": "Funkcie streamu",
+ "description": "Použite prekrytie go2rtc na zníženie pripojenia k fotoaparátu."
+ },
+ "streamDetails": "Detaily vysielania",
+ "probing": "Skúmajúca kamera...",
+ "retry": "Skúste to znova",
+ "testing": {
+ "probingMetadata": "Skúmanie metadát kamery...",
+ "fetchingSnapshot": "Načítava sa snímka z fotoaparátu..."
+ },
+ "probeFailed": "Nepodarilo sa otestovať kameru: {{error}}",
+ "probingDevice": "Snímacie zariadenie...",
+ "probeSuccessful": "Sonda úspešná",
+ "probeError": "Chyba sondy",
+ "probeNoSuccess": "Sonda neúspešná",
+ "deviceInfo": "Informácie o zariadení",
+ "manufacturer": "Výrobca",
+ "model": "Model",
+ "firmware": "Firmvér",
+ "profiles": "Profily",
+ "ptzSupport": "PTZ Podpora",
+ "autotrackingSupport": "Podpora automatického sledovania",
+ "presets": "Prestavby",
+ "rtspCandidates": "RTSP kandidátov",
+ "rtspCandidatesDescription": "Z kamery boli nájdené nasledujúce adresy URL RTSP. Otestujte pripojenie a zobrazte metadáta streamu.",
+ "noRtspCandidates": "Z kamery sa nenašli žiadne URL adresy RTSP. Vaše prihlasovacie údaje môžu byť nesprávne alebo kamera nepodporuje protokol ONVIF alebo metódu použitú na získanie URL adries RTSP. Vráťte sa späť a zadajte URL adresu RTSP manuálne.",
+ "candidateStreamTitle": "Kandidát {{number}}",
+ "useCandidate": "Použitie",
+ "uriCopy": "Kopírovať",
+ "uriCopied": "URI skopírované do schránky",
+ "testConnection": "Testovacie pripojenie",
+ "toggleUriView": "Kliknutím prepnete zobrazenie celého URI",
+ "errors": {
+ "hostRequired": "Vyžaduje sa hostiteľská/IP adresa"
+ }
+ },
+ "step3": {
+ "connectStream": "Pripojiť",
+ "connectingStream": "Pripája",
+ "disconnectStream": "Odpojiť",
+ "estimatedBandwidth": "Odhadovaná šírka pásma",
+ "roles": "Roly",
+ "none": "Žiadny",
+ "error": "Chyba",
+ "streamValidated": "Stream {{number}} úspešne overený",
+ "streamValidationFailed": "Stream {{number}} validácia zlyhala",
+ "saveAndApply": "Uložiť novú kameru",
+ "saveError": "Neplatná konfigurácia. Skontrolujte nastavenia.",
+ "issues": {
+ "title": "Stream Platnosť",
+ "videoCodecGood": "Kód videa {{codec}}.",
+ "audioCodecGood": "Audio kódc je {{codec}}.",
+ "noAudioWarning": "Žiadne audio zistené pre tento prúd, nahrávanie nebude mať audio.",
+ "audioCodecRecordError": "AAC audio kodek je potrebný na podporu audio v záznamoch.",
+ "audioCodecRequired": "Zvukový prúd je povinný podporovať detekciu zvuku.",
+ "restreamingWarning": "Zníženie pripojenia ku kamery pre rekordný prúd môže mierne zvýšiť využitie CPU.",
+ "dahua": {
+ "substreamWarning": "Substream 1 je uzamknutý na nízke rozlíšenie. Mnoho Dahua / Amcrest / EmpireTech kamery podporujú ďalšie podstreamy, ktoré musia byť povolené v nastavení kamery. Odporúča sa skontrolovať a využiť tie prúdy, ak je k dispozícii."
+ },
+ "hikvision": {
+ "substreamWarning": "Substream 1 je uzamknutý na nízke rozlíšenie. Mnoho Hikvision kamery podporujú ďalšie podstreamy, ktoré musia byť povolené v nastavení kamery. Odporúča sa skontrolovať a využiť tie prúdy, ak je k dispozícii."
+ },
+ "resolutionHigh": "Rozlíšenie {{resolution}} môže spôsobiť zvýšenú spotrebu zdrojov.",
+ "resolutionLow": "Rozlíšenie {{resolution}} môže byť príliš nízka pre spoľahlivú detekciu malých objektov."
+ },
+ "description": "Nakonfigurujte role streamov a pridajte ďalšie streamy pre vašu kameru.",
+ "validationTitle": "Stream Platnosť",
+ "connectAllStreams": "Pripojte všetky prúdy",
+ "reconnectionSuccess": "Opätovné pripojenie bolo úspešné.",
+ "reconnectionPartial": "Niektoré prúdy sa nepodarilo prepojiť.",
+ "streamUnavailable": "Ukážka streamu nie je k dispozícii",
+ "reload": "Znovu načítať",
+ "connecting": "Pripája...",
+ "streamTitle": "Stream {{number}}",
+ "valid": "Platné",
+ "failed": "Zlyhanie",
+ "notTested": "Netestované",
+ "streamsTitle": "Kamerové prúdy",
+ "addStream": "Pridať Stream",
+ "addAnotherStream": "Pridať ďalší Stream",
+ "streamUrl": "Stream URL",
+ "streamUrlPlaceholder": "rtsp://username:password@host:port/path",
+ "selectStream": "Vyberte stream",
+ "searchCandidates": "Hľadať kandidátov...",
+ "noStreamFound": "Nenašiel sa žiadny stream",
+ "url": "URL",
+ "resolution": "Rozlíšenie",
+ "selectResolution": "Vyberte rozlíšenie",
+ "quality": "Kvalita",
+ "selectQuality": "Vyberte kvalitu",
+ "roleLabels": {
+ "detect": "Detekcia objektov",
+ "record": "Nahrávanie",
+ "audio": "Zvuk"
+ },
+ "testStream": "Testovanie pripojenia",
+ "testSuccess": "Stream test úspešné!",
+ "testFailed": "Stream test zlyhal",
+ "testFailedTitle": "Test Zlyhal",
+ "connected": "Pripojené",
+ "notConnected": "Nie je pripojený",
+ "featuresTitle": "Vlastnosti",
+ "go2rtc": "Znížte počet pripojení ku kamere",
+ "detectRoleWarning": "Aspoň jeden prúd musí mať \"detekt\" úlohu pokračovať.",
+ "rolesPopover": {
+ "title": "Roly streamu",
+ "detect": "Hlavné krmivo pre detekciu objektu.",
+ "record": "Ukladá segmenty video kanála na základe nastavení konfigurácie.",
+ "audio": "Kŕmenie pre detekciu zvuku."
+ },
+ "featuresPopover": {
+ "title": "Funkcie streamu",
+ "description": "Použite prekrytie go2rtc na zníženie pripojenia k fotoaparátu."
+ }
+ },
+ "step4": {
+ "description": "Záverečné overenie a analýza pred uložením nového fotoaparátu. Pripojte každý prúd pred uložením.",
+ "validationTitle": "Stream Platnosť",
+ "connectAllStreams": "Pripojte všetky prúdy",
+ "reconnectionSuccess": "Opätovné pripojenie bolo úspešné.",
+ "reconnectionPartial": "Niektoré prúdy sa nepodarilo prepojiť.",
+ "streamUnavailable": "Ukážka streamu nie je k dispozícii",
+ "reload": "Znovu načítať",
+ "connecting": "Pripája...",
+ "streamTitle": "Stream {{number}}",
+ "valid": "Platné",
+ "failed": "Zlyhanie",
+ "notTested": "Netestované",
+ "connectStream": "Pripojiť",
+ "connectingStream": "Pripája",
+ "disconnectStream": "Odpojiť",
+ "estimatedBandwidth": "Odhadovaná šírka pásma",
+ "roles": "Roly",
+ "ffmpegModule": "Použite režim kompatibility prúdu",
+ "ffmpegModuleDescription": "Ak sa stream nenačíta ani po niekoľkých pokusoch, skúste túto funkciu povoliť. Keď je táto funkcia povolená, Frigate použije modul ffmpeg s go2rtc. To môže poskytnúť lepšiu kompatibilitu s niektorými streammi z kamier.",
+ "none": "Žiadne",
+ "error": "Chyba",
+ "streamValidated": "Stream {{number}} úspešne overený",
+ "streamValidationFailed": "Stream {{number}} validácia zlyhala",
+ "saveAndApply": "Uložiť novú kameru",
+ "saveError": "Neplatná konfigurácia. Skontrolujte nastavenia.",
+ "issues": {
+ "title": "Platnosť Streamu",
+ "videoCodecGood": "Kód videa je {{codec}}.",
+ "audioCodecGood": "Audio kódc je {{codec}}.",
+ "resolutionHigh": "Rozlíšenie {{resolution}} môže spôsobiť zvýšenú spotrebu zdrojov.",
+ "resolutionLow": "Rozlíšenie {{resolution}} môže byť príliš nízka pre spoľahlivú detekciu malých objektov.",
+ "noAudioWarning": "Žiadne audio nebolo detekovane pre tento prúd, nahrávanie nebude mať audio.",
+ "audioCodecRecordError": "AAC audio kodek je potrebný na podporu audio v záznamoch.",
+ "audioCodecRequired": "Zvukový prúd je povinný podporovať detekciu zvuku.",
+ "restreamingWarning": "Zníženie pripojenia ku kamery pre rekordný prúd môže mierne zvýšiť využitie CPU.",
+ "brands": {
+ "reolink-rtsp": "Reolink RTSP sa neodporúča. Odporúča sa povoliť HTTP v nastavení kamery a reštartovať sprievodca kamery."
+ },
+ "dahua": {
+ "substreamWarning": "Čiastkový stream 1 je uzamknutý na nízke rozlíšenie. Mnoho kamier Dahua / Amcrest / EmpireTech podporuje ďalšie čiastkové streamy, ktoré je potrebné povoliť v nastaveniach kamery. Odporúča sa skontrolovať a využiť tieto streamy, ak sú k dispozícii."
+ },
+ "hikvision": {
+ "substreamWarning": "Čiastkový stream 1 je uzamknutý na nízke rozlíšenie. Mnoho kamier Hikvision podporuje ďalšie čiastkové streamy, ktoré je potrebné povoliť v nastaveniach kamery. Odporúča sa skontrolovať a využiť tieto streamy, ak sú k dispozícii."
+ }
+ }
+ }
+ },
+ "cameraManagement": {
+ "title": "Správa kamier",
+ "addCamera": "Pridať novu kameru",
+ "editCamera": "Upraviť kameru:",
+ "selectCamera": "Vyberte kameru",
+ "backToSettings": "Späť na nastavenia kamery",
+ "streams": {
+ "title": "Enable / Disable kamery",
+ "desc": "Dočasne deaktivujte kameru, kým sa Frigate nereštartuje. Deaktivácia kamery úplne zastaví spracovanie streamov z tejto kamery aplikáciou Frigate. Detekcia, nahrávanie a ladenie nebudú k dispozícii. Poznámka: Toto nezakáže restreamy go2rtc."
+ },
+ "cameraConfig": {
+ "add": "Pridať kameru",
+ "edit": "Upraviť kameru",
+ "description": "Konfigurovať nastavenia kamery, vrátane vstupov streamu a rolí.",
+ "name": "Názov kamery",
+ "nameRequired": "Názov kamery je povinný",
+ "nameLength": "Názov kamery musí byť menšia ako 64 znakov.",
+ "namePlaceholder": "e.g., predne_dvere alebo Prehľad Záhrady",
+ "enabled": "Povoliť",
+ "ffmpeg": {
+ "inputs": "Vstupné streamy",
+ "path": "Cesta streamu",
+ "pathRequired": "Cesta k streamu je povinná",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Roly",
+ "rolesRequired": "Je vyžadovaná aspoň jedna rola",
+ "rolesUnique": "Každá rola (audio, detekcia, záznam) môže byť priradená iba k jednému streamu",
+ "addInput": "Pridať vstupný stream",
+ "removeInput": "Odobrať vstupný stream",
+ "inputsRequired": "Je vyžadovaný aspoň jeden vstupný stream"
+ },
+ "go2rtcStreams": "go2rtc Streamy",
+ "streamUrls": "Stream URLs",
+ "addUrl": "Pridať URL",
+ "addGo2rtcStream": "Pridať go2rtc Stream",
+ "toast": {
+ "success": "Kamera {{cameraName}} bola úspešne uložená"
+ }
+ }
+ },
+ "cameraReview": {
+ "title": "Nastavenie recenzie kamery",
+ "object_descriptions": {
+ "title": "Generatívne popisy objektov umelej inteligencie",
+ "desc": "Dočasne umožňujú/disable Generovať opisy objektu AI pre tento fotoaparát. Keď je zakázané, AI vygenerované popisy nebudú požiadané o sledovanie objektov na tomto fotoaparáte."
+ },
+ "review_descriptions": {
+ "title": "Popisy generatívnej umelej inteligencie",
+ "desc": "Dočasne povoliť/disable Genive AI opisy pre tento fotoaparát. Keď je zakázané, AI vygenerované popisy nebudú požiadané o preskúmanie položiek na tomto fotoaparáte."
+ },
+ "review": {
+ "title": "Recenzia",
+ "desc": "Dočasne umožňujú/disable upozornenia a detekcia pre tento fotoaparát až do reštartu Frigate. Pri vypnutých, nebudú vygenerované žiadne nové položky preskúmania. ",
+ "alerts": "Upozornenia ",
+ "detections": "Detekcie "
+ },
+ "reviewClassification": {
+ "title": "Preskúmať klasifikáciu",
+ "desc": "Frigate kategorizuje položky recenzií ako Upozornenia a Detekcie. Predvolene sa všetky objekty typu osoba a auto považujú za Upozornenia. Kategorizáciu položiek recenzií môžete spresniť konfiguráciou požadovaných zón pre ne.",
+ "noDefinedZones": "Pre túto kameru nie sú definované žiadne zóny.",
+ "objectAlertsTips": "Všetky objekty {{alertsLabels}} na {{cameraName}} sa zobrazia ako Upozornenia.",
+ "zoneObjectAlertsTips": "Všetky objekty {{alertsLabels}} detekované v {{zone}} na {{cameraName}} budú zobrazené ako Upozornenia.",
+ "objectDetectionsTips": "Všetky objekty {{detectionsLabels}}, ktoré nie sú zaradené do kategórie {{cameraName}}, sa zobrazia ako detekcie bez ohľadu na to, v ktorej zóne sa nachádzajú.",
+ "zoneObjectDetectionsTips": {
+ "text": "Všetky objekty {{detectionsLabels}}, ktoré nie sú zaradené do kategórie {{zone}} na kamere {{cameraName}}, budú zobrazené ako detekcie.",
+ "notSelectDetections": "Všetky objekty typu {{detectionsLabels}} detekované v zóne {{zone}} na kamere {{cameraName}}, ktoré nie sú zaradené do kategórie Upozornenia, sa zobrazia ako Detekcie bez ohľadu na to, v ktorej zóne sa nachádzajú.",
+ "regardlessOfZoneObjectDetectionsTips": "Všetky objekty {{detectionsLabels}}, ktoré nie sú zaradené do kategórie {{cameraName}}, sa zobrazia ako detekcie bez ohľadu na to, v ktorej zóne sa nachádzajú."
+ },
+ "unsavedChanges": "Nezaradené Nastavenie hodnotenia pre {{camera}}",
+ "selectAlertsZones": "Vyberte zóny pre upozornenia",
+ "selectDetectionsZones": "Vyberte zóny pre detekcie",
+ "limitDetections": "Obmedziť detekciu na konkrétne zóny",
+ "toast": {
+ "success": "Konfigurácia klasifikácie bola uložená. Reštartujte Frigate, aby sa zmeny prejavili."
+ }
+ }
+ },
+ "users": {
+ "title": "Používatelia",
+ "management": {
+ "title": "Správa používateľov",
+ "desc": "Spravovať používateľské účty tejto inštancie Frigate."
+ },
+ "addUser": "Pridať používateľa",
+ "updatePassword": "Aktualizovať heslo",
+ "toast": {
+ "success": {
+ "createUser": "Užívateľ {{user}} úspešne vytvorený",
+ "deleteUser": "Užívateľ {{user}} úspešne odobraný",
+ "updatePassword": "Heslo úspešne aktualizované.",
+ "roleUpdated": "Aktualizovaná rola pre používateľa {{user}}"
+ },
+ "error": {
+ "setPasswordFailed": "Nepodarilo sa uložiť heslo: {{errorMessage}}",
+ "createUserFailed": "Nepodarilo sa vytvoriť používateľa: {{errorMessage}}",
+ "deleteUserFailed": "Nepodarilo sa odstrániť používateľa: {{errorMessage}}",
+ "roleUpdateFailed": "Nepodarilo sa aktualizovať rolu: {{errorMessage}}"
+ }
+ },
+ "table": {
+ "username": "Používateľské meno",
+ "actions": "Akcie",
+ "role": "Rola",
+ "noUsers": "Nenašli sa žiadni používatelia.",
+ "changeRole": "Zmeniť rolu používateľa",
+ "password": "Heslo",
+ "deleteUser": "Odstrániť používateľa"
+ },
+ "dialog": {
+ "form": {
+ "user": {
+ "title": "Používateľské meno",
+ "desc": "Povolené sú iba písmená, čísla, bodky a podčiarkovníky.",
+ "placeholder": "Zadajte používateľské meno"
+ },
+ "password": {
+ "title": "Heslo",
+ "placeholder": "Zadajte heslo",
+ "confirm": {
+ "title": "Potvrdiť heslo",
+ "placeholder": "Potvrdiť heslo"
+ },
+ "strength": {
+ "title": "Sila hesla: ",
+ "weak": "Slabý",
+ "medium": "Stredná",
+ "strong": "Silný",
+ "veryStrong": "Veľmi silný"
+ },
+ "match": "Heslá sa zhodujú",
+ "notMatch": "Heslá sa nezhodujú"
+ },
+ "newPassword": {
+ "title": "Nové heslo",
+ "placeholder": "Zadajte nové heslo",
+ "confirm": {
+ "placeholder": "Znovu zadajte nové heslo"
+ }
+ },
+ "usernameIsRequired": "Vyžaduje sa používateľské meno",
+ "passwordIsRequired": "Heslo je povinné"
+ },
+ "createUser": {
+ "title": "Vytvorenie nového užívateľa",
+ "desc": "Pridajte nový používateľský účet a zadajte rolu pre prístup k oblastiam používateľského rozhrania Frigate.",
+ "usernameOnlyInclude": "Používateľské meno môže obsahovať iba písmená, číslice, . alebo _",
+ "confirmPassword": "Potvrďte svoje heslo"
+ },
+ "deleteUser": {
+ "title": "Odstrániť užívateľa",
+ "desc": "Túto akciu nie je možné vrátiť späť. Týmto sa natrvalo odstráni používateľský účet a odstránia sa všetky súvisiace údaje.",
+ "warn": "Naozaj chcete odstrániť používateľa {{username}}?"
+ },
+ "passwordSetting": {
+ "cannotBeEmpty": "Heslo nemôže byť prázdne",
+ "doNotMatch": "Heslá sa nezhodujú",
+ "updatePassword": "Aktualizácia hesla pre {{username}}",
+ "setPassword": "Nastaviť heslo",
+ "desc": "Vytvorte si silné heslo na zabezpečenie tohto účtu."
+ },
+ "changeRole": {
+ "title": "Zmeniť rolu používateľa",
+ "select": "Vyberte rolu",
+ "desc": "Aktualizovať povolenia pre používateľa {{username}}",
+ "roleInfo": {
+ "intro": "Vyberte príslušnú rolu pre tohto používateľa:",
+ "admin": "Správca",
+ "adminDesc": "Úplný prístup ku všetkým funkciám.",
+ "viewer": "Divák",
+ "viewerDesc": "Obmedzené iba na živé dashboardy, funkcie Review, Explore a Exports.",
+ "customDesc": "Vlastná rola so špecifickým prístupom k kamere."
+ }
+ }
+ }
+ },
+ "roles": {
+ "management": {
+ "title": "Správa roly diváka",
+ "desc": "Spravujte vlastné roly divákov a ich povolenia na prístup ku kamere pre túto inštanciu Frigate."
+ },
+ "addRole": "Pridať rolu",
+ "table": {
+ "role": "Rola",
+ "cameras": "Kamery",
+ "actions": "Akcie",
+ "noRoles": "Neboli nájdené žiadne vlastné role.",
+ "editCameras": "Editovať kamery",
+ "deleteRole": "Odstrániť rolu"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Rola {{role}} bola úspešne vytvorená",
+ "updateCameras": "Kamery aktualizované pre rolu {{role}}",
+ "deleteRole": "Rola {{role}} bola úspešne odstránená",
+ "userRolesUpdated_one": "",
+ "userRolesUpdated_few": "",
+ "userRolesUpdated_other": "{{count}} užívatelia priradené tejto úlohe boli aktualizované pre \"viewer\", ktorý má prístup ku všetkým kamerám."
+ },
+ "error": {
+ "createRoleFailed": "Nepodarilo sa vytvoriť rolu: {{errorMessage}}",
+ "updateCamerasFailed": "Nepodarilo sa aktualizovať kamery: {{errorMessage}}",
+ "deleteRoleFailed": "Nepodarilo sa odstrániť rolu: {{errorMessage}}",
+ "userUpdateFailed": "Nepodarilo sa aktualizovať používateľské role: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Vytvoriť novú rolu",
+ "desc": "Pridajte novú úlohu a zadajte prístup k kamerám."
+ },
+ "editCameras": {
+ "title": "Editovať Rolu Kamery",
+ "desc": "Aktualizujte prístup k kamere pre rolu {{role}}."
+ },
+ "deleteRole": {
+ "title": "Odstrániť rolu",
+ "desc": "Túto akciu nie je možné vrátiť späť. Týmto sa rola natrvalo odstráni a všetci používatelia s touto rolou budú priradení k role „pozerač“, ktorá umožní divákovi prístup ku všetkým kamerám.",
+ "warn": "Ste si istí, že chcete odstrániť {{role}}?",
+ "deleting": "Odstraňuje sa..."
+ },
+ "form": {
+ "role": {
+ "title": "Názov role",
+ "placeholder": "Zadajte názov roly",
+ "desc": "Povolené sú iba písmená, čísla, bodky a podčiarkovníky.",
+ "roleIsRequired": "Vyžaduje sa názov roly",
+ "roleOnlyInclude": "Názov role môže obsahovať iba písmená, čísla, . alebo _",
+ "roleExists": "Úloha s týmto menom už existuje."
+ },
+ "cameras": {
+ "title": "Kamery",
+ "desc": "Vyberte kamery, ku ktorým má táto rola prístup. Vyžaduje sa aspoň jedna kamera.",
+ "required": "Aspoň jedna kamera musí byť vybraná."
+ }
+ }
+ }
+ },
+ "notification": {
+ "title": "Notifikacie",
+ "notificationSettings": {
+ "title": "Nastavenia notifikácií",
+ "desc": "Frigate dokáže natívne odosielať push notifikácie do vášho zariadenia, keď je spustený v prehliadači alebo nainštalovaný ako PWA."
+ },
+ "notificationUnavailable": {
+ "title": "Notifikacie su nedostupné",
+ "desc": "Webové push notifikácie vyžadujú zabezpečený kontext (https://…). Ide o obmedzenie prehliadača. Ak chcete používať notifikácie, pristupujte k Frigate bezpečne."
+ },
+ "globalSettings": {
+ "title": "Globálne nastavenia",
+ "desc": "Dočasne pozastaviť upozornenia pre konkrétne kamery na všetkých registrovaných zariadeniach."
+ },
+ "email": {
+ "title": "E-mail",
+ "placeholder": "e.g. príklad@email.com",
+ "desc": "Vyžaduje sa platný e-mail, ktorý bude použitý na upozornenie v prípade akýchkoľvek problémov so službou push."
+ },
+ "cameras": {
+ "title": "Kamery",
+ "noCameras": "K dispozícii nie sú žiadne kamery",
+ "desc": "Vyberte, na ktoré kamery umožňujú notifikácie."
+ },
+ "deviceSpecific": "Špecifické nastavenia zariadenia",
+ "registerDevice": "Registrovať toto zariadenie",
+ "unregisterDevice": "Zrušte registráciu tohto zariadenia",
+ "sendTestNotification": "Odoslať testovacie oznámenie",
+ "unsavedRegistrations": "Neuložené registrácie oznámení",
+ "unsavedChanges": "Neuložené zmeny upozornení",
+ "active": "Upozornenia sú aktívne",
+ "suspended": "Oznámenie pozastavuju {{time}}",
+ "suspendTime": {
+ "suspend": "Pozastaviť",
+ "5minutes": "Pozastaviť na 5 minút",
+ "10minutes": "Pozastaviť na 10 minút",
+ "30minutes": "Pozastaviť na 30 minút",
+ "1hour": "Pozastaviť na 1 hodinu",
+ "12hours": "Pozastaviť na 12 hodín",
+ "24hours": "Pozastaviť na 24 hodín",
+ "untilRestart": "Pozastaviť do reštartovania"
+ },
+ "cancelSuspension": "Zrušiť pozastavenie",
+ "toast": {
+ "success": {
+ "registered": "Úspešne zaregistrované pre upozornenia. Pred odoslaním akýchkoľvek upozornení (vrátane testovacieho upozornenia) je potrebné reštartovať Frigate.",
+ "settingSaved": "Nastavenie oznámenia boli uložené."
+ },
+ "error": {
+ "registerFailed": "Uloženie registrácie upozornenia zlyhalo."
+ }
+ }
+ },
+ "frigatePlus": {
+ "title": "Nastavenie Frigate+",
+ "apiKey": {
+ "title": "Frigate + API kľúč",
+ "validated": "Frigate + API kľúč je detekovaný a overený",
+ "notValidated": "Frigate + API kľúč nie je detekovaný alebo nie je overený",
+ "desc": "Frigate+ API kľúč umožňuje integráciu s Frigate+ služby.",
+ "plusLink": "Prečítajte si viac o Frigate+"
+ },
+ "snapshotConfig": {
+ "title": "Konfigurácia snímky",
+ "desc": "Odosielanie do Frigate+ vyžaduje, aby boli v konfigurácii povolené snímky aj snímky clean_copy.",
+ "cleanCopyWarning": "Niektoré kamery majú povolené snímky, ale voľba clean_copy je zakázaná. Pre možnosť odosielania snímok z týchto kamier do služby Frigate+ je nutné túto voľbu povoliť v konfigurácii snímok.",
+ "table": {
+ "camera": "Kamera",
+ "snapshots": "Snímky",
+ "cleanCopySnapshots": "clean_copy Snímky"
+ }
+ },
+ "modelInfo": {
+ "title": "Informácie o Modele",
+ "modelType": "Typ Modelu",
+ "trainDate": "Dátum Tréningu",
+ "baseModel": "Základný Model",
+ "plusModelType": {
+ "baseModel": "Základný Model",
+ "userModel": "Doladené"
+ },
+ "supportedDetectors": "Podporované Detektory",
+ "cameras": "Kamery",
+ "loading": "Načítavam informácie o modeli…",
+ "error": "Chyba načítania informácií o modeli",
+ "availableModels": "Dostupné Moduly",
+ "loadingAvailableModels": "Načítavam dostupné modely…",
+ "modelSelect": "Tu môžete vybrať dostupné modely zo služby Frigate+. Upozorňujeme, že je možné zvoliť iba modely kompatibilné s aktuálnou konfiguráciou detektora."
+ },
+ "unsavedChanges": "Neuložené zmeny nastavenia Frigate+",
+ "restart_required": "Vyžadovaný reštart (model Frigate+ zmenený)",
+ "toast": {
+ "success": "Nastavenia Frigate+ boli uložené. Reštartujte Frigate+ pre aplikovanie zmien.",
+ "error": "Chyba pri ukladaní zmien konfigurácie: {{errorMessage}}"
+ }
+ },
+ "triggers": {
+ "documentTitle": "Spúšťače",
+ "semanticSearch": {
+ "title": "Sémantické vyhľadávanie je vypnuté",
+ "desc": "Na používanie spúšťačov musí byť povolené sémantické vyhľadávanie."
+ },
+ "management": {
+ "title": "Spúšťače",
+ "desc": "Správa spúšťa {{camera}}. Použite typ miniatúry, aby ste spustili na podobných miniatúr na vybraných tracked objekt, a typ popisu, aby ste spustili podobné popisy na text, ktorý určíte."
+ },
+ "addTrigger": "Pridať Spúšťač",
+ "table": {
+ "name": "Meno",
+ "type": "Typ",
+ "content": "Obsah",
+ "threshold": "Prah",
+ "actions": "Akcie",
+ "noTriggers": "Pre túto kameru nie sú nakonfigurované žiadne spúšťače.",
+ "edit": "Upraviť",
+ "deleteTrigger": "Odstrániť spúšťač",
+ "lastTriggered": "Naposledy spustené"
+ },
+ "type": {
+ "thumbnail": "Náhľad",
+ "description": "Popis"
+ },
+ "actions": {
+ "notification": "Poslať upozornenie",
+ "sub_label": "Pridať vedľajší štítok",
+ "attribute": "Pridať atribút"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Vytvoriť spúšťač",
+ "desc": "Vytvorte spúšť pre kameru {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Upraviť spúšťač",
+ "desc": "Upraviť nastavenia spúšťača na kamere {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Odstrániť spúšťač",
+ "desc": "Naozaj chcete odstrániť spúšťač {{triggerName}}? Túto akciu nie je možné vrátiť späť."
+ },
+ "form": {
+ "name": {
+ "title": "Meno",
+ "placeholder": "Zadajte meno pre spúšťača",
+ "description": "Zadajte jedinečné meno alebo popis na identifikáciu tohto spúšťania",
+ "error": {
+ "minLength": "Názov musí mať aspoň 2 znaky.",
+ "invalidCharacters": "Meno môže obsahovať iba písmená, číslice, podčiarkovníky a pomlčky.",
+ "alreadyExists": "Spúšťač s týmto názvom už pre túto kameru existuje."
+ }
+ },
+ "enabled": {
+ "description": "Povoliť alebo zakázať tento spúšťač"
+ },
+ "type": {
+ "title": "Typ",
+ "placeholder": "Vybrať typ spúšťača",
+ "description": "Spustiť, keď sa zistí podobný popis sledovaného objektu",
+ "thumbnail": "Spustiť, keď sa zistí podobná miniatúra sledovaného objektu"
+ },
+ "content": {
+ "title": "Obsah",
+ "imagePlaceholder": "Vyberte miniatúru",
+ "textPlaceholder": "Zadajte obsah textu",
+ "imageDesc": "Zobrazujú sa iba posledné 100 miniatúr. Ak nemôžete nájsť požadovanú miniatúru, prečítajte si skôr objekty v preskúmať a nastaviť spúšťací z ponuky tam.",
+ "textDesc": "Zadajte text, aby ste spustili túto akciu, keď je detekovaný podobný popis objektu.",
+ "error": {
+ "required": "Obsah je potrebný."
+ }
+ },
+ "threshold": {
+ "title": "Prah",
+ "desc": "Nastavte prah podobnosti pre tento spúšťač. Vyšší prah znamená, že na spustenie spúšťača je potrebná bližšia zhoda.",
+ "error": {
+ "min": "Threshold musí byť aspoň 0",
+ "max": "Threshold musí byť na väčšine 1"
+ }
+ },
+ "actions": {
+ "title": "Akcie",
+ "desc": "V predvolenom nastavení Frigate odosiela MQTT správu pre všetky spúšťače. Zvoľte dodatočnú akciu, ktorá sa má vykonať, keď sa tento spúšťač aktivuje.",
+ "error": {
+ "min": "Musí byť vybraná aspoň jedna akcia."
+ }
+ }
+ }
+ },
+ "wizard": {
+ "title": "Vytvoriť spúšťač",
+ "step1": {
+ "description": "Konfigurujte základné nastavenia pre vašu spúšť."
+ },
+ "step2": {
+ "description": "Nastavte obsah, ktorý spustí túto akciu."
+ },
+ "step3": {
+ "description": "Konfigurovať prah a akcie pre tento spúšťač."
+ },
+ "steps": {
+ "nameAndType": "Meno a typ",
+ "configureData": "Konfigurovať údaje",
+ "thresholdAndActions": "Prah a akcie"
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Spúšťač {{name}} bol úspešne vytvorený.",
+ "updateTrigger": "Spúšťač {{name}} bol úspešne aktualizovaný.",
+ "deleteTrigger": "Spúšťač {{name}} bol úspešne zmazaný."
+ },
+ "error": {
+ "createTriggerFailed": "Nepodarilo sa vytvoriť spúšťač: {{errorMessage}}",
+ "updateTriggerFailed": "Nepodarilo sa aktualizovať spúšťač: {{errorMessage}}",
+ "deleteTriggerFailed": "Nepodarilo sa zmazať spúšťač: {{errorMessage}}"
+ }
}
}
}
diff --git a/web/public/locales/sk/views/system.json b/web/public/locales/sk/views/system.json
index ea3a3927e9..94afc91111 100644
--- a/web/public/locales/sk/views/system.json
+++ b/web/public/locales/sk/views/system.json
@@ -42,7 +42,8 @@
"inferenceSpeed": "Detekčná rýchlosť",
"temperature": "Detekčná teplota",
"cpuUsage": "Detektor využitia CPU",
- "memoryUsage": "Detektor využitia pamäte"
+ "memoryUsage": "Detektor využitia pamäte",
+ "cpuUsageInformation": "CPU použitý na prípravu vstupných a výstupných údajov do/z detekčných modelov. Táto hodnota nemeria využitie inferencie, a to ani v prípade použitia GPU alebo akcelerátora."
},
"hardwareInfo": {
"title": "Informácie o hardvéri",
@@ -52,9 +53,146 @@
"gpuDecoder": "GPU dekodér",
"gpuInfo": {
"vainfoOutput": {
- "title": "Výstup Vainfo"
+ "title": "Výstup Vainfo",
+ "returnCode": "Návratový kód: {{code}}",
+ "processOutput": "Výstup procesu:",
+ "processError": "Chyba procesu:"
+ },
+ "nvidiaSMIOutput": {
+ "title": "Výstup Nvidia SMI",
+ "name": "Meno: {{name}}",
+ "driver": "Vodič: {{driver}}",
+ "cudaComputerCapability": "Výpočtové možnosti CUDA: {{cuda_compute}}",
+ "vbios": "Informácie o VBiose: {{vbios}}"
+ },
+ "closeInfo": {
+ "label": "Zatvorte informácie o GPU"
+ },
+ "copyInfo": {
+ "label": "Kopírovať informácie o GPU"
+ },
+ "toast": {
+ "success": "Informácie o grafickej karte boli skopírované do schránky"
}
+ },
+ "npuUsage": "Použitie NPU",
+ "npuMemory": "Pamäť NPU",
+ "intelGpuWarning": {
+ "title": "Intel GPU Stats Upozornenie",
+ "message": "Štatistiky GPU nedostupné",
+ "description": "Toto je známa chyba v Štatistike správ Intel (intel_gpu_top) kde sa rozpadne a opakovane vráti používanie GPU 0% aj v prípadoch, keď hardvér detekcie objektov správne beží na (i)GPU. Toto nie je Frigate chyba. Môžete reštartovať a tak dočasne opraviť problém a potvrdiť, že GPU funguje správne. Toto nemá vplyv na výkon."
+ }
+ },
+ "otherProcesses": {
+ "title": "Iné procesy",
+ "processCpuUsage": "Proces využitia CPU",
+ "processMemoryUsage": "Procesné využitie pamäte"
+ }
+ },
+ "storage": {
+ "title": "Skladovanie",
+ "overview": "Prehľad",
+ "recordings": {
+ "title": "Nahrávky",
+ "tips": "Táto hodnota predstavuje celkové úložisko, ktoré používajú nahrávky v databáze Frigate. Frigate nesleduje využitie úložiska pre všetky súbory na vašom disku.",
+ "earliestRecording": "Najstaršia dostupná nahrávka:"
+ },
+ "shm": {
+ "title": "Alokácia SHM (zdieľanej pamäte)",
+ "warning": "Aktuálna veľkosť SHM {{total}}MB je príliš malá. Zvýšte ju aspoň na {{min_shm}}MB."
+ },
+ "cameraStorage": {
+ "title": "Úložisko kamery",
+ "camera": "Kamera",
+ "unusedStorageInformation": "Nepoužité informácie o úložisku",
+ "storageUsed": "Skladovanie",
+ "percentageOfTotalUsed": "Percento z celkového počtu",
+ "bandwidth": "Šírka pásma",
+ "unused": {
+ "title": "Nepoužité",
+ "tips": "Táto hodnota nemusí presne zodpovedať voľnému miestu dostupnému pre Frigate, ak máte na disku uložené aj iné súbory okrem nahrávok Frigate. Frigate nesleduje využitie úložiska mimo svojich nahrávok."
}
}
+ },
+ "cameras": {
+ "title": "Kamery",
+ "overview": "Prehľad",
+ "info": {
+ "aspectRatio": "pomer strán",
+ "cameraProbeInfo": "{{camera}} Informácie o sonde kamery",
+ "streamDataFromFFPROBE": "Údaje zo streamu sa získavajú pomocou príkazu ffprobe.",
+ "fetching": "Načítavajú sa údaje z kamery",
+ "stream": "Stream {{idx}}",
+ "video": "Video:",
+ "codec": "Kodek:",
+ "resolution": "Rozlíšenie:",
+ "fps": "FPS:",
+ "unknown": "Neznámy",
+ "audio": "Zvuk:",
+ "error": "Chyba: {{error}}",
+ "tips": {
+ "title": "Informácie o kamerovej sonde"
+ }
+ },
+ "framesAndDetections": "Rámy / Detekcie",
+ "label": {
+ "camera": "kamera",
+ "detect": "odhaliť",
+ "skipped": "preskočené",
+ "ffmpeg": "FFmpeg",
+ "capture": "zachytiť",
+ "cameraFfmpeg": "{{camName}} FFmpeg",
+ "cameraCapture": "zachytiť{{camName}}",
+ "cameraDetect": "Detekcia {{camName}}",
+ "overallFramesPerSecond": "celkový počet snímok za sekundu",
+ "overallDetectionsPerSecond": "celkový počet detekcií za sekundu",
+ "overallSkippedDetectionsPerSecond": "celkový počet vynechaných detekcií za sekundu",
+ "cameraFramesPerSecond": "{{camName}}snimky za sekundu",
+ "cameraDetectionsPerSecond": "{{camName}}detekcie za sekundu",
+ "cameraSkippedDetectionsPerSecond": "{{camName}} vynechaných detekcií za sekundu"
+ },
+ "toast": {
+ "success": {
+ "copyToClipboard": "Dáta sondy boli skopírované do schránky."
+ },
+ "error": {
+ "unableToProbeCamera": "Nepodarilo sa overiť kameru: {{errorMessage}}"
+ }
+ }
+ },
+ "lastRefreshed": "Naposledy obnovené: ",
+ "stats": {
+ "ffmpegHighCpuUsage": "{{camera}} má vysoké využitie CPU vo formáte FFmpeg ({{ffmpegAvg}}%)",
+ "detectHighCpuUsage": "{{camera}} má vysoké využitie CPU pri detekcii ({{detectAvg}}%)",
+ "healthy": "Systém je zdravý",
+ "reindexingEmbeddings": "Preindexovanie vložených prvkov (dokončené na {{processed}} %)",
+ "cameraIsOffline": "{{camera}} je offline",
+ "detectIsSlow": "{{detect}} je pomalý ({{speed}} ms)",
+ "detectIsVerySlow": "{{detect}} je veľmi pomalý ({{speed}} ms)",
+ "shmTooLow": "Alokácia /dev/shm ({{total}} MB) by sa mala zvýšiť aspoň na {{min}} MB."
+ },
+ "enrichments": {
+ "title": "Obohatenia",
+ "infPerSecond": "Inferencie za sekundu",
+ "embeddings": {
+ "image_embedding": "Vkladanie obrázkov",
+ "text_embedding": "Vkladanie textu",
+ "face_recognition": "Rozpoznávanie tváre",
+ "plate_recognition": "Rozpoznávanie ŠPZ",
+ "image_embedding_speed": "Rýchlosť vkladania obrázkov",
+ "face_embedding_speed": "Rýchlosť vkladania tváre",
+ "face_recognition_speed": "Rýchlosť rozpoznávania tváre",
+ "plate_recognition_speed": "Rýchlosť rozpoznávania ŠPZ",
+ "text_embedding_speed": "Rýchlosť vkladania textu",
+ "yolov9_plate_detection_speed": "YOLOv9 rýchlosť detekcie ŠPZ",
+ "yolov9_plate_detection": "YOLOv9 Detekcia ŠPZ",
+ "review_description": "Popis recenzie",
+ "review_description_speed": "Popis recenzie Rýchlosťi",
+ "review_description_events_per_second": "Popis",
+ "object_description": "Popis objektu",
+ "object_description_speed": "Popis objektu Rýchlosť",
+ "object_description_events_per_second": "Popis objektu"
+ },
+ "averageInf": "Priemerný čas inferencie"
}
}
diff --git a/web/public/locales/sl/audio.json b/web/public/locales/sl/audio.json
index 31562e8c99..bf5482cabf 100644
--- a/web/public/locales/sl/audio.json
+++ b/web/public/locales/sl/audio.json
@@ -106,5 +106,39 @@
"piano": "Klavir",
"electric_piano": "Digitalni klavir",
"organ": "Orgle",
- "electronic_organ": "Digitalne orgle"
+ "electronic_organ": "Digitalne orgle",
+ "chant": "Spev",
+ "mantra": "Mantra",
+ "child_singing": "Otroško petje",
+ "synthetic_singing": "Sintetično petje",
+ "humming": "Brenčanje",
+ "groan": "Stok",
+ "grunt": "Godrnjanje",
+ "wheeze": "Zadihan izdih",
+ "gasp": "Glasen Vzdih",
+ "pant": "Sopihanje",
+ "snort": "Smrkanje",
+ "throat_clearing": "Odkašljevanje",
+ "sneeze": "Kihanje",
+ "sniff": "Vohljaj",
+ "chewing": "Žvečenje",
+ "biting": "Grizenje",
+ "gargling": "Grgranje",
+ "stomach_rumble": "Grmotanje v Želodcu",
+ "heart_murmur": "Šum na Srcu",
+ "chatter": "Klepetanje",
+ "yip": "Jip",
+ "growling": "Rjovenje",
+ "whimper_dog": "Pasje Cviljenje",
+ "oink": "Oink",
+ "gobble": "Zvok Purana",
+ "wild_animals": "Divje Živali",
+ "roaring_cats": "Rjoveče Mačke",
+ "roar": "Rjovenje Živali",
+ "squawk": "Krik",
+ "patter": "Klepetanje",
+ "croak": "Kvakanje",
+ "rattle": "Ropotanje",
+ "whale_vocalization": "Kitova Vokalizacija",
+ "plucked_string_instrument": "Trgani Godalni Instrument"
}
diff --git a/web/public/locales/sl/common.json b/web/public/locales/sl/common.json
index ff21c10cec..25bc0644e9 100644
--- a/web/public/locales/sl/common.json
+++ b/web/public/locales/sl/common.json
@@ -51,7 +51,43 @@
"h": "{{time}}h",
"m": "{{time}}m",
"s": "{{time}}s",
- "yr": "le"
+ "yr": "{{time}}l.",
+ "formattedTimestamp": {
+ "12hour": "d MMM, h:mm:ss aaa",
+ "24hour": "d MMM, HH:mm:ss"
+ },
+ "formattedTimestamp2": {
+ "12hour": "dd/MM h:mm:ssa",
+ "24hour": "d MMM HH:mm:ss"
+ },
+ "formattedTimestampHourMinute": {
+ "12hour": "h:mm aaa",
+ "24hour": "HH:mm"
+ },
+ "formattedTimestampHourMinuteSecond": {
+ "12hour": "h:mm:ss aaa",
+ "24hour": "HH:mm:ss"
+ },
+ "formattedTimestampMonthDayHourMinute": {
+ "12hour": "d MMM, h:mm aaa",
+ "24hour": "d MMM, HH:mm"
+ },
+ "formattedTimestampMonthDayYear": {
+ "12hour": "d MMM, yyyy",
+ "24hour": "d MMM, yyyy"
+ },
+ "formattedTimestampMonthDayYearHourMinute": {
+ "12hour": "d MMM yyyy, h:mm aaa",
+ "24hour": "d MMM yyyy, HH:mm"
+ },
+ "formattedTimestampMonthDay": "d MMM",
+ "formattedTimestampFilename": {
+ "12hour": "dd-MM-yy-h-mm-ss-a",
+ "24hour": "dd-MM-yy-HH-mm-ss"
+ },
+ "invalidStartTime": "Napačen čas začetka",
+ "invalidEndTime": "Napačen čas konca",
+ "inProgress": "V teku"
},
"menu": {
"live": {
@@ -67,9 +103,94 @@
},
"explore": "Brskanje",
"theme": {
- "nord": "Nord"
+ "nord": "Nord",
+ "label": "Teme",
+ "blue": "Modra",
+ "green": "Zelena",
+ "red": "Rdeča",
+ "highcontrast": "Visok Kontrast",
+ "default": "Privzeto"
},
- "review": "Pregled"
+ "review": "Pregled",
+ "system": "Sistem",
+ "systemMetrics": "Sistemske metrike",
+ "configuration": "Konfiguracija",
+ "systemLogs": "Sistemski dnevniki",
+ "settings": "Nastavitve",
+ "configurationEditor": "Urejevalnik Konfiguracije",
+ "languages": "Jeziki",
+ "language": {
+ "en": "English (angleščina)",
+ "es": "Español (španščina)",
+ "zhCN": "简体中文 (poenostavljena kitajščina)",
+ "hi": "हिन्दी (hindijščina)",
+ "fr": "Français (francoščina)",
+ "ar": "العربية (arabščina)",
+ "pt": "Português (portugalščina)",
+ "ru": "Русский (ruščina)",
+ "de": "Deutsch (nemščina)",
+ "ja": "日本語 (japonščina)",
+ "tr": "Türkçe (turščina)",
+ "it": "Italiano (italijanščina)",
+ "nl": "Nederlands (nizozemščina)",
+ "sv": "Svenska (švedščina)",
+ "cs": "Čeština (češčina)",
+ "nb": "Norsk Bokmål (norveščina, bokmal)",
+ "ko": "한국어 (korejščina)",
+ "vi": "Tiếng Việt (vietnamščina)",
+ "fa": "فارسی (perzijščina)",
+ "pl": "Polski (poljščina)",
+ "uk": "Українська (ukrajinščina)",
+ "he": "עברית (hebrejščina)",
+ "el": "Ελληνικά (grščina)",
+ "ro": "Română (romunščina)",
+ "hu": "Magyar (madžarščina)",
+ "fi": "Suomi (finščina)",
+ "da": "Dansk (danščina)",
+ "sk": "Slovenčina (slovaščina)",
+ "yue": "粵語 (kantonščina)",
+ "th": "ไทย (tajščina)",
+ "sr": "Српски (srbščina)",
+ "sl": "Slovenščina (Slovenščina )",
+ "bg": "Български (bulgarščina)",
+ "withSystem": {
+ "label": "Uporabi sistemske nastavitve za jezik"
+ },
+ "ptBR": "Português brasileiro (Brazilska portugalščina)",
+ "ca": "Català (Katalonščina)",
+ "lt": "Lietuvių (Litovščina)",
+ "gl": "Galego (Galicijščina)",
+ "id": "Bahasa Indonesia (Indonezijščina)",
+ "ur": "اردو (Urdujščina)"
+ },
+ "appearance": "Izgled",
+ "darkMode": {
+ "label": "Temni Način",
+ "light": "Svetlo",
+ "dark": "Temno",
+ "withSystem": {
+ "label": "Uporabi sistemske nastavitve za svetel ali temen način"
+ }
+ },
+ "withSystem": "Sistem",
+ "help": "Pomoč",
+ "documentation": {
+ "title": "Dokumentacija",
+ "label": "Frigate dokumentacija"
+ },
+ "restart": "Znova Zaženi Frigate",
+ "export": "Izvoz",
+ "faceLibrary": "Zbirka Obrazov",
+ "user": {
+ "title": "Uporabnik",
+ "account": "Račun",
+ "current": "Trenutni Uporabnik: {{user}}",
+ "anonymous": "anonimen",
+ "logout": "Odjava",
+ "setPassword": "Nastavi Geslo"
+ },
+ "uiPlayground": "UI Peskovnik",
+ "classification": "Klasifikacija"
},
"button": {
"apply": "Uporabi",
@@ -80,7 +201,7 @@
"back": "Nazaj",
"pictureInPicture": "Slika v Sliki",
"history": "Zgodovina",
- "disabled": "Izklopljeno",
+ "disabled": "Onemogočeno",
"copy": "Kopiraj",
"exitFullscreen": "Izhod iz Celozaslonskega načina",
"enabled": "Omogočen",
@@ -88,7 +209,26 @@
"save": "Shrani",
"saving": "Shranjevanje …",
"cancel": "Prekliči",
- "fullscreen": "Celozaslonski način"
+ "fullscreen": "Celozaslonski način",
+ "twoWayTalk": "Dvosmerni Pogovor",
+ "cameraAudio": "Zvok Kamere",
+ "on": "Vključen",
+ "off": "Izključen",
+ "edit": "Uredi",
+ "copyCoordinates": "Kopiraj koordinate",
+ "delete": "Izbriši",
+ "yes": "Da",
+ "no": "Ne",
+ "download": "Prenesi",
+ "info": "Info",
+ "suspended": "Začasno ustavljeno",
+ "unsuspended": "Obnovi",
+ "play": "Predvajaj",
+ "unselect": "Odznači",
+ "export": "Izvoz",
+ "deleteNow": "Izbriši Zdaj",
+ "next": "Naprej",
+ "continue": "Nadaljuj"
},
"unit": {
"speed": {
@@ -98,14 +238,74 @@
"length": {
"feet": "čevelj",
"meters": "metri"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/uro",
+ "mbph": "MB/uro",
+ "gbph": "GB/uro"
}
},
"label": {
- "back": "Pojdi nazaj"
+ "back": "Pojdi nazaj",
+ "hide": "Skrij {{item}}",
+ "show": "Prikaži {{item}}",
+ "ID": "ID",
+ "none": "Brez",
+ "all": "Vse"
},
"pagination": {
"next": {
- "label": "Pojdi na naslednjo stran"
+ "label": "Pojdi na naslednjo stran",
+ "title": "Naprej"
+ },
+ "label": "paginacija",
+ "previous": {
+ "title": "Prejšnji",
+ "label": "Pojdi na prejšnjo stran"
+ },
+ "more": "Več strani"
+ },
+ "selectItem": "Izberi {{item}}",
+ "toast": {
+ "copyUrlToClipboard": "Povezava kopirana v odložišče.",
+ "save": {
+ "title": "Shrani",
+ "error": {
+ "title": "Napaka pri shranjevanju sprememb: {{errorMessage}}",
+ "noMessage": "Napaka pri shranjevanju sprememb konfiguracije"
+ }
}
+ },
+ "role": {
+ "title": "Vloga",
+ "admin": "Administrator",
+ "viewer": "Gledalec",
+ "desc": "Administratorji imajo poln dostop do vseh funkcij Frigate uporabniškega vmesnika. Gledalci so omejeni na gledanje kamer, zgodovine posnetkov in pregledovanje dogodkov."
+ },
+ "accessDenied": {
+ "documentTitle": "Dostop zavrnjen - Frigate",
+ "title": "Dostop Zavrnjen",
+ "desc": "Nimate pravic za ogled te strani."
+ },
+ "notFound": {
+ "documentTitle": "Ni Najdeno - Frigate",
+ "title": "404",
+ "desc": "Stran ni najdena"
+ },
+ "readTheDocumentation": "Preberite dokumentacijo",
+ "list": {
+ "two": "{{0}} in {{1}}",
+ "many": "{{items}}, in {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "Izbirno",
+ "internalID": "Interni ID, ki ga Frigate uporablja v konfiguraciji in podatkovni bazi"
+ },
+ "information": {
+ "pixels": "{{area}}px"
}
}
diff --git a/web/public/locales/sl/components/camera.json b/web/public/locales/sl/components/camera.json
index 9ee8f4046e..10414fed1d 100644
--- a/web/public/locales/sl/components/camera.json
+++ b/web/public/locales/sl/components/camera.json
@@ -50,7 +50,8 @@
},
"placeholder": "Izberite tok",
"stream": "Tok"
- }
+ },
+ "birdseye": "Ptičji pogled"
},
"name": {
"label": "Ime",
diff --git a/web/public/locales/sl/components/dialog.json b/web/public/locales/sl/components/dialog.json
index e63f7c34b7..f0284ee0fe 100644
--- a/web/public/locales/sl/components/dialog.json
+++ b/web/public/locales/sl/components/dialog.json
@@ -12,11 +12,18 @@
"plus": {
"review": {
"question": {
- "ask_full": "Ali je ta objekt {{untranslatedLabel}} ({{translatedLabel}})?"
+ "ask_full": "Ali je ta objekt {{untranslatedLabel}} ({{translatedLabel}})?",
+ "label": "Potrdi to oznako za Frigate Plus",
+ "ask_a": "Ali je ta objekt {{label}}?",
+ "ask_an": "Ali je ta objekt {{label}}?"
},
"state": {
"submitted": "Oddano"
}
+ },
+ "submitToPlus": {
+ "label": "Pošlji v Frigate+",
+ "desc": "Predmeti na lokacijah, ki se jim želite izogniti, niso lažni alarmi. Če jih označite kot lažne alarme, boste zmedli model."
}
},
"video": {
@@ -25,10 +32,92 @@
},
"export": {
"time": {
- "lastHour_one": "Zadnja ura",
+ "lastHour_one": "Zadnja {{count}} ura",
"lastHour_two": "Zadnji {{count}} uri",
"lastHour_few": "Zadnje {{count}} ure",
- "lastHour_other": "Zadnjih {{count}} ur"
+ "lastHour_other": "Zadnjih {{count}} ur",
+ "fromTimeline": "Izberi s Časovnice",
+ "custom": "Po meri",
+ "start": {
+ "title": "Začetni čas",
+ "label": "Izberi Začetni Čas"
+ },
+ "end": {
+ "title": "Končni Čas",
+ "label": "Izberi Končni Čas"
+ }
+ },
+ "name": {
+ "placeholder": "Poimenujte Izvoz"
+ },
+ "select": "Izberi",
+ "export": "Izvoz",
+ "selectOrExport": "Izberi ali Izvozi",
+ "toast": {
+ "success": "Izvoz se je uspešno začel. Datoteko si oglejte v izvozih.",
+ "error": {
+ "failed": "Npaka pri začetku izvoza: {{error}}",
+ "endTimeMustAfterStartTime": "Končni čas mora biti po začetnem čase",
+ "noVaildTimeSelected": "Ni izbranega veljavnega časovnega obdobja"
+ }
+ },
+ "fromTimeline": {
+ "saveExport": "Shrani Izvoz",
+ "previewExport": "Predogled Izvoza"
}
+ },
+ "streaming": {
+ "label": "Pretakanje",
+ "restreaming": {
+ "disabled": "Ponovno pretakanje za to kamero ni omogočeno.",
+ "desc": {
+ "title": "Za dodatne možnosti ogleda v živo in zvoka za to kamero nastavite go2rtc.",
+ "readTheDocumentation": "Preberi dokumentacijo"
+ }
+ },
+ "showStats": {
+ "label": "Prikaži statistiko pretoka",
+ "desc": "Omogočite to možnost, če želite prikazati statistiko pretoka videa kamere."
+ },
+ "debugView": "Pogled za Odpravljanje Napak"
+ },
+ "search": {
+ "saveSearch": {
+ "label": "Varno Iskanje",
+ "desc": "Vnesite ime za to shranjeno iskanje.",
+ "placeholder": "Vnesite ime za iskanje",
+ "overwrite": "{{searchName}} že obstaja. Shranjevanje bo prepisalo obstoječo vrednost.",
+ "success": "Iskanje ({{searchName}}) je bilo shranjeno.",
+ "button": {
+ "save": {
+ "label": "Shrani to iskanje"
+ }
+ }
+ }
+ },
+ "recording": {
+ "confirmDelete": {
+ "title": "Potrdi Brisanje",
+ "desc": {
+ "selected": "Ali ste prepričani, da želite izbrisati vse posnete videoposnetke, povezane s tem elementom pregleda?
Držite tipko Shift, da se v prihodnje izognete temu pogovornemu oknu."
+ },
+ "toast": {
+ "success": "Videoposnetek, povezan z izbranimi elementi pregleda, je bil uspešno izbrisan.",
+ "error": "Brisanje ni uspelo: {{error}}"
+ }
+ },
+ "button": {
+ "export": "Izvoz",
+ "markAsReviewed": "Označi kot pregledano",
+ "deleteNow": "Izbriši Zdaj",
+ "markAsUnreviewed": "Označi kot nepregledano"
+ }
+ },
+ "imagePicker": {
+ "selectImage": "Izberite sličico sledenega predmeta",
+ "search": {
+ "placeholder": "Iskanje po oznaki ali podoznaki..."
+ },
+ "noImages": "Za to kamero ni bilo najdenih sličic"
}
}
diff --git a/web/public/locales/sl/components/filter.json b/web/public/locales/sl/components/filter.json
index b202e1554e..5a33b97095 100644
--- a/web/public/locales/sl/components/filter.json
+++ b/web/public/locales/sl/components/filter.json
@@ -20,7 +20,28 @@
"explore": {
"settings": {
"defaultView": {
- "summary": "Povzetek"
+ "summary": "Povzetek",
+ "title": "Privzeti Pogled",
+ "desc": "Če filtri niso izbrani, prikaži povzetek najnovejših sledenih objektov na oznako ali prikaži nefiltrirano mrežo.",
+ "unfilteredGrid": "Nefiltrirana Mreža"
+ },
+ "title": "Nastavitve",
+ "gridColumns": {
+ "title": "Mrežni Stolpci",
+ "desc": "Izberite število stolpcev v pogledu mreže."
+ },
+ "searchSource": {
+ "label": "Iskanje Vira",
+ "desc": "Izberite, ali želite iskati po sličicah ali opisih sledenih objektov.",
+ "options": {
+ "thumbnailImage": "Sličica",
+ "description": "Opis"
+ }
+ }
+ },
+ "date": {
+ "selectDateBy": {
+ "label": "Izberite datum za filtriranje"
}
}
},
@@ -30,7 +51,13 @@
},
"sort": {
"relevance": "Ustreznost",
- "dateAsc": "Datum (naraščajoče)"
+ "dateAsc": "Datum (naraščajoče)",
+ "label": "Sortiraj",
+ "dateDesc": "Datum (Padajoče)",
+ "scoreAsc": "Ocena Predmeta (Naraščajoče)",
+ "scoreDesc": "Ocena predmeta (Padajoče)",
+ "speedAsc": "Ocenjena Hitrost (Naraščajoče)",
+ "speedDesc": "Ocenjena Hitrost (Padajoče)"
},
"zones": {
"label": "Cone",
@@ -45,7 +72,13 @@
},
"logSettings": {
"disableLogStreaming": "Izklopite zapisovanje dnevnika",
- "allLogs": "Vsi dnevniki"
+ "allLogs": "Vsi dnevniki",
+ "label": "Level Filtra Dnevnika",
+ "filterBySeverity": "Filtriraj dnevnike po resnosti",
+ "loading": {
+ "title": "Nalaganje",
+ "desc": "Ko se podokno dnevnika pomakne čisto na dno, se novi dnevniki samodejno prikažejo, ko so dodani."
+ }
},
"trackedObjectDelete": {
"title": "Potrdite brisanje",
@@ -57,5 +90,47 @@
},
"zoneMask": {
"filterBy": "Filtrirajte po maski območja"
+ },
+ "classes": {
+ "label": "Razredi",
+ "all": {
+ "title": "Vsi Razredi"
+ },
+ "count_one": "{{count}} Razred",
+ "count_other": "{{count}} Razredov"
+ },
+ "score": "Ocena",
+ "estimatedSpeed": "Ocenjena Hitrost ({{unit}})",
+ "features": {
+ "label": "Lastnosti",
+ "hasSnapshot": "Ima sliko",
+ "hasVideoClip": "Ima posnetek",
+ "submittedToFrigatePlus": {
+ "label": "Poslano na Frigate+",
+ "tips": "Najprej morate filtrirati po sledenih objektih, ki imajo sliko.
Slednih objektov brez slike ni mogoče poslati v Frigate+."
+ }
+ },
+ "cameras": {
+ "label": "Filtri Kamere",
+ "all": {
+ "title": "Vse Kamere",
+ "short": "Kamere"
+ }
+ },
+ "review": {
+ "showReviewed": "Prikaži Pregledano"
+ },
+ "motion": {
+ "showMotionOnly": "Prikaži Samo Gibanje"
+ },
+ "recognizedLicensePlates": {
+ "title": "Prepoznane Registrske Tablice",
+ "loadFailed": "Prepoznanih registrskih tablic ni bilo mogoče naložiti.",
+ "loading": "Nalaganje prepoznanih registrskih tablic…",
+ "placeholder": "Iskanje registrskih tablic…",
+ "noLicensePlatesFound": "Nobena registrska tablica ni bila najdena.",
+ "selectPlatesFromList": "Na seznamu izberite eno ali več registrskih tablic.",
+ "selectAll": "Izberi vse",
+ "clearAll": "Počisti vse"
}
}
diff --git a/web/public/locales/sl/views/classificationModel.json b/web/public/locales/sl/views/classificationModel.json
new file mode 100644
index 0000000000..3ba3e676da
--- /dev/null
+++ b/web/public/locales/sl/views/classificationModel.json
@@ -0,0 +1,55 @@
+{
+ "description": {
+ "invalidName": "Neveljavno ime. Ime lahko vsebuje črke, števila, presledke, narekovaje, podčrtaje in pomišljaje."
+ },
+ "categories": "Razredi",
+ "createCategory": {
+ "new": "Naredi nov razred"
+ },
+ "button": {
+ "renameCategory": "Preimenuj razred",
+ "deleteCategory": "Zbriši razred",
+ "deleteImages": "Zbriši slike",
+ "trainModel": "Treniraj model",
+ "deleteClassificationAttempts": "Izbriši klasifikacijske slike"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Izbrisan razred",
+ "deletedImage": "Zbrisane slike",
+ "trainedModel": "Uspešno treniranje modela.",
+ "trainingModel": "Uspešen začetek treniranje modela."
+ },
+ "error": {
+ "deleteImageFailed": "Neuspešno brisanje: {{errorMessage}}",
+ "deleteCategoryFailed": "Neuspešno brisanje razreda: {{errorMessage}}",
+ "trainingFailed": "Neuspešen začetek treniranje modela: {{errorMessage}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Zbriši razred"
+ },
+ "deleteTrainImages": {
+ "title": "Zbriši slike za treniranje",
+ "desc": "Ali ste prepričani, da želite izbrisati {{count}} slik? Tega dejanja ni mogoče razveljaviti."
+ },
+ "renameCategory": {
+ "title": "Preimenuj razred",
+ "desc": "Vnesite novo ime za {{name}}. Model bo treba znova naučiti, da bo sprememba imena začela veljati."
+ },
+ "train": {
+ "title": "Nedavne razvrstitve",
+ "aria": "Izberi nedavne razvrstitve"
+ },
+ "categorizeImageAs": "Razvrsti sliko kot:",
+ "categorizeImage": "Razvrsti sliko",
+ "noModels": {
+ "object": {
+ "title": "Ni modelov za razvrščanje objektov"
+ }
+ },
+ "documentTitle": "Klasifikacijski modeli - fregate",
+ "details": {
+ "scoreInfo": "Razultat predstavlja povprečno stopnjo sigurnosti čez vsa zaznavynja objekta."
+ }
+}
diff --git a/web/public/locales/sl/views/configEditor.json b/web/public/locales/sl/views/configEditor.json
index b8f76525dd..5c69cc1b41 100644
--- a/web/public/locales/sl/views/configEditor.json
+++ b/web/public/locales/sl/views/configEditor.json
@@ -12,5 +12,7 @@
"savingError": "Napaka pri shranjevanju konfiguracije"
}
},
- "confirm": "Izhod brez shranjevanja?"
+ "confirm": "Izhod brez shranjevanja?",
+ "safeConfigEditor": "Urejevalnik konfiguracij (Varni Način)",
+ "safeModeDescription": "Frigate je v varnem načinu zaradi napake pri preverjanju konfiguracije."
}
diff --git a/web/public/locales/sl/views/explore.json b/web/public/locales/sl/views/explore.json
index 97e7ca664f..70fee301ed 100644
--- a/web/public/locales/sl/views/explore.json
+++ b/web/public/locales/sl/views/explore.json
@@ -3,15 +3,28 @@
"title": "Funkcija razišči ni na voljo",
"downloadingModels": {
"setup": {
- "visionModel": "Model vida"
+ "visionModel": "Model vida",
+ "visionModelFeatureExtractor": "Pridobivanje lastnosti modela vida",
+ "textModel": "Besedilni model",
+ "textTokenizer": "Tokenizator besedila"
},
- "context": "Frigate prenaša potrebne modele vdelave za podporo funkcije semantičnega iskanja. To lahko traja nekaj minut, odvisno od hitrosti vaše omrežne povezave."
+ "context": "Frigate prenaša potrebne modele vdelave za podporo funkcije semantičnega iskanja. To lahko traja nekaj minut, odvisno od hitrosti vaše omrežne povezave.",
+ "tips": {
+ "context": "Morda boste želeli ponovno indeksirati vdelave (embeddings) svojih sledenih objektov, ko bodo modeli preneseni.",
+ "documentation": "Preberi dokumentacijo"
+ },
+ "error": "Prišlo je do napake. Preverite dnevnike Frigate."
},
"embeddingsReindexing": {
"step": {
"descriptionsEmbedded": "Vdelani opisi: ",
- "trackedObjectsProcessed": "Obdelani sledeni predmeti: "
- }
+ "trackedObjectsProcessed": "Obdelani sledeni predmeti: ",
+ "thumbnailsEmbedded": "Vdelane sličice: "
+ },
+ "context": "Funkcija Explore se lahko uporablja, ko je ponovno indeksiranje vgraditev(embeddings) sledenih objektov končano.",
+ "startingUp": "Zagon…",
+ "estimatedTime": "Ocenjeni preostali čas:",
+ "finishingShortly": "Kmalu končano"
}
},
"documentTitle": "Razišči - Frigate",
@@ -29,12 +42,61 @@
"estimatedSpeed": "Ocenjena hitrost",
"description": {
"placeholder": "Opis sledenega predmeta",
- "label": "Opis"
+ "label": "Opis",
+ "aiTips": "Frigate od vašega ponudnika generativne UI ne bo zahteval opisa, dokler se življenjski cikel sledenega objekta ne konča."
},
"recognizedLicensePlate": "Prepoznana registrska tablica",
"objects": "Predmeti",
"zones": "Območja",
- "timestamp": "Časovni žig"
+ "timestamp": "Časovni žig",
+ "item": {
+ "button": {
+ "share": "Deli ta element mnenja",
+ "viewInExplore": "Poglej v Razišči Pogledu"
+ },
+ "tips": {
+ "hasMissingObjects": "Prilagodite konfiguracijo, če želite, da Frigate shranjuje sledene objekte za naslednje oznake: {{objects}}"
+ },
+ "toast": {
+ "success": {
+ "regenerate": "Od ponudnika {{provider}} je bil zahtevan nov opis. Glede na hitrost vašega ponudnika lahko regeneracija novega opisa traja nekaj časa.",
+ "updatedSublabel": "Podoznaka je bila uspešno posodobljena.",
+ "updatedLPR": "Registrska tablica je bila uspešno posodobljena.",
+ "audioTranscription": "Zahteva za zvočni prepis je bila uspešno izvedena."
+ },
+ "error": {
+ "regenerate": "Klic ponudniku {{provider}} za nov opis ni uspel: {{errorMessage}}",
+ "updatedSublabelFailed": "Posodobitev podoznake ni uspela: {{errorMessage}}",
+ "updatedLPRFailed": "Posodobitev registrske tablice ni uspela: {{errorMessage}}",
+ "audioTranscription": "Zahteva za prepis zvoka ni uspela: {{errorMessage}}"
+ }
+ },
+ "title": "Preglej Podrobnosti Elementa",
+ "desc": "Preglej podrobnosti elementa"
+ },
+ "label": "Oznaka",
+ "editSubLabel": {
+ "title": "Uredi podoznako",
+ "desc": "Vnesite novo podoznako za {{label}}",
+ "descNoLabel": "Vnesite novo podoznako za ta sledeni objekt"
+ },
+ "editLPR": {
+ "title": "Uredi registrsko tablico",
+ "desc": "Vnesite novo vrednost registrske tablice za {{label}}",
+ "descNoLabel": "Vnesite novo vrednost registrske tablice za ta sledeni objekt"
+ },
+ "snapshotScore": {
+ "label": "Ocena Slike"
+ },
+ "topScore": {
+ "label": "Najboljša Ocena",
+ "info": "Najboljša ocena je najvišji mediani rezultat za sledeni objekt, zato se lahko razlikuje od rezultata, prikazanega na sličici rezultata iskanja."
+ },
+ "expandRegenerationMenu": "Razširi meni regeneracije",
+ "tips": {
+ "descriptionSaved": "Opis uspešno shranjen",
+ "saveDescriptionFailed": "Opisa ni bilo mogoče posodobiti: {{errorMessage}}"
+ }
},
"itemMenu": {
"findSimilar": {
@@ -63,11 +125,85 @@
"downloadSnapshot": {
"label": "Prenesi posnetek",
"aria": "Prenesi posnetek"
+ },
+ "addTrigger": {
+ "label": "Dodaj sprožilec",
+ "aria": "Dodaj sprožilec za ta sledeni objekt"
+ },
+ "audioTranscription": {
+ "label": "Prepis",
+ "aria": "Zahtevajte prepis zvoka"
}
},
"dialog": {
"confirmDelete": {
"title": "Potrdi brisanje"
}
+ },
+ "trackedObjectDetails": "Podrobnosti Sledenega Objekta",
+ "type": {
+ "details": "podrobnosti",
+ "snapshot": "posnetek",
+ "video": "video",
+ "object_lifecycle": "življenjski cikel objekta"
+ },
+ "objectLifecycle": {
+ "title": "Življenjski Cikel Objekta",
+ "noImageFound": "Za ta čas ni bila najdena nobena slika.",
+ "createObjectMask": "Ustvarite Masko Objekta",
+ "adjustAnnotationSettings": "Prilagodi nastavitve opomb",
+ "scrollViewTips": "Pomaknite se, da si ogledate pomembne trenutke življenjskega cikla tega predmeta.",
+ "count": "{{first}} od {{second}}",
+ "trackedPoint": "Sledena točka",
+ "lifecycleItemDesc": {
+ "visible": "{{label}} zaznan",
+ "entered_zone": "{{label}} je vstopil/a v {{zones}}",
+ "active": "{{label}} je postal aktiven",
+ "stationary": "{{label}} je postal nepremičen",
+ "attribute": {
+ "faceOrLicense_plate": "{{attribute}} je bil zaznan za {{label}}",
+ "other": "{{label}} zaznan kot {{attribute}}"
+ },
+ "gone": "{{label}} levo",
+ "heard": "{{label}} slišano",
+ "external": "{{label}} zaznan",
+ "header": {
+ "zones": "Cone",
+ "ratio": "Razmerje",
+ "area": "Območje"
+ }
+ },
+ "annotationSettings": {
+ "title": "Nastavitve Anotacij",
+ "showAllZones": {
+ "title": "Prikaži Vse Cone",
+ "desc": "Vedno prikaži območja na okvirjih, kjer so predmeti vstopili v območje."
+ },
+ "offset": {
+ "label": "Anotacijski Odmik",
+ "documentation": "Preberi dokumentacijo ",
+ "millisecondsToOffset": "Odmik zaznanih anotacij v milisekundah. Privzeto: 0",
+ "tips": "NASVET: Predstavljajte si posnetek dogodka, v katerem oseba hodi od leve proti desni. Če je okvir dogodka na časovnici preveč levo od osebe, je treba vrednost zmanjšati. Podobno je treba vrednost povečati, če oseba hodi od leve proti desni in je okvir preveč pred njo.",
+ "toast": {
+ "success": "Odmik anotacij za {{camera}} je bil shranjen v konfiguracijsko datoteko. Znova zaženite Frigate, da uveljavite spremembe."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Prejšnji diapozitiv",
+ "next": "Naslednji diapozitiv"
+ },
+ "autoTrackingTips": "Položaji okvirjev bodo za kamere s samodejnim sledenjem netočni."
+ },
+ "noTrackedObjects": "Ni Najdenih Sledenih Objektov",
+ "fetchingTrackedObjectsFailed": "Napaka pri pridobivanju sledenih objektov: {{errorMessage}}",
+ "searchResult": {
+ "tooltip": "Ujemanje {{type}} pri {{confidence}}%",
+ "deleteTrackedObject": {
+ "toast": {
+ "success": "Sledeni objekt je bil uspešno izbrisan.",
+ "error": "Brisanje sledenega predmeta ni uspelo: {{errorMessage}}"
+ }
+ }
}
}
diff --git a/web/public/locales/sl/views/faceLibrary.json b/web/public/locales/sl/views/faceLibrary.json
index d59acc47e9..c41520fa58 100644
--- a/web/public/locales/sl/views/faceLibrary.json
+++ b/web/public/locales/sl/views/faceLibrary.json
@@ -1,22 +1,28 @@
{
"description": {
- "addFace": "Sprehodite se skozi dodajanje nove zbirke v knjižnico obrazov.",
+ "addFace": "Dodajanje nove zbirke v knjižnico obrazov z nalaganjem slike.",
"placeholder": "Vnesite ime za to zbirko",
"invalidName": "Neveljavno ime. Ime lahko vsebuje črke, števila, presledke, narekovaje, podčrtaje in pomišljaje."
},
"details": {
"person": "Oseba",
"unknown": "Nenznano",
- "timestamp": "Časovni žig"
+ "timestamp": "Časovni žig",
+ "subLabelScore": "Ocena Podoznake",
+ "scoreInfo": "Rezultat podoznake je utežena ocena vseh stopenj gotovosti prepoznanih obrazov, zato se lahko razlikuje od ocene, prikazane na posnetku.",
+ "face": "Podrobnosti Obraza",
+ "faceDesc": "Podrobnosti sledenega objekta, ki je ustvaril ta obraz"
},
"uploadFaceImage": {
- "title": "Naloži nov obraz"
+ "title": "Naloži nov obraz",
+ "desc": "Naloži sliko za iskanje obrazov in vključitev v {{pageToggle}}"
},
"deleteFaceAttempts": {
"desc_one": "Ali ste prepričani, da želite izbrisati {{count}} obraz? Tega dejanja ni mogoče razveljaviti.",
"desc_two": "Ali ste prepričani, da želite izbrisati {{count}} obraza? Tega dejanja ni mogoče razveljaviti.",
"desc_few": "Ali ste prepričani, da želite izbrisati {{count}} obraze? Tega dejanja ni mogoče razveljaviti.",
- "desc_other": "Ali ste prepričani, da želite izbrisati {{count}} obrazov? Tega dejanja ni mogoče razveljaviti."
+ "desc_other": "Ali ste prepričani, da želite izbrisati {{count}} obrazov? Tega dejanja ni mogoče razveljaviti.",
+ "title": "Izbriši Obraze"
},
"toast": {
"success": {
@@ -27,8 +33,73 @@
"deletedName_one": "{{count}} je bil uspešno izbrisan.",
"deletedName_two": "{{count}} obraza sta bila uspešno izbrisana.",
"deletedName_few": "{{count}} obrazi so bili uspešno izbrisani.",
- "deletedName_other": "{{count}} obrazov je bilo uspešno izbrisanih."
+ "deletedName_other": "{{count}} obrazov je bilo uspešno izbrisanih.",
+ "uploadedImage": "Slika je bila uspešno naložena.",
+ "addFaceLibrary": "Oseba {{name}} je bila uspešno dodana v Knjižnico Obrazov!",
+ "renamedFace": "Obraz uspešno preimenovan v {{name}}",
+ "trainedFace": "Uspešno treniran obraz.",
+ "updatedFaceScore": "Ocena obraza je bila uspešno posodobljena."
+ },
+ "error": {
+ "uploadingImageFailed": "Nalaganje slike ni uspelo: {{errorMessage}}",
+ "addFaceLibraryFailed": "Neuspešno nastavljanje imena obraza: {{errorMessage}}",
+ "deleteFaceFailed": "Brisanje ni uspelo: {{errorMessage}}",
+ "deleteNameFailed": "Brisanje imena ni uspelo: {{errorMessage}}",
+ "renameFaceFailed": "Preimenovanje obraza ni uspelo: {{errorMessage}}",
+ "trainFailed": "Treniranje ni uspelo: {{errorMessage}}",
+ "updateFaceScoreFailed": "Posodobitev ocene obraza ni uspela: {{errorMessage}}"
}
},
- "documentTitle": "Knjižnica obrazov - Frigate"
+ "documentTitle": "Knjižnica obrazov - Frigate",
+ "collections": "Zbirke",
+ "createFaceLibrary": {
+ "title": "Ustvari Zbirko",
+ "desc": "Ustvari novo zbirko",
+ "new": "Ustvari Nov Obraz",
+ "nextSteps": "Za vzpoztavitev trdnih osnov:
V zavihku Nedavne prepoznave izberi in uporabi slike za učenje vsake zaznane osebe.
Za najboljše rezultate se osredotoči na slike, kjer je obraz obrnjen naravnost; izogibaj se slikam, na katerih so obrazi posneti pod kotom.
"
+ },
+ "steps": {
+ "faceName": "Vnesi Ime Obraza",
+ "uploadFace": "Naloži Sliko Obraza",
+ "nextSteps": "Naslednji koraki",
+ "description": {
+ "uploadFace": "Naložite sliko osebe {{name}}, ki prikazuje obraz (slikan naravnost in ne iz kota). Slike ni treba obrezati samo na obraz."
+ }
+ },
+ "train": {
+ "title": "Nedavne prepoznave",
+ "aria": "Izberite nedavne prepoznave",
+ "empty": "Ni nedavnih poskusov prepoznavanja obrazov"
+ },
+ "selectItem": "Izberi {{item}}",
+ "selectFace": "Izberi Obraz",
+ "deleteFaceLibrary": {
+ "title": "Izbriši Ime",
+ "desc": "Ali ste prepričani, da želite izbrisati zbirko {{name}}? S tem boste trajno izbrisali vse povezane obraze."
+ },
+ "renameFace": {
+ "title": "Preimenuj Obraz",
+ "desc": "Vnesi novo ime za {{name}}"
+ },
+ "button": {
+ "deleteFaceAttempts": "Izbriši Obraze",
+ "addFace": "Dodaj Obraz",
+ "renameFace": "Preimenuj Obraz",
+ "deleteFace": "Izbriši Obraz",
+ "uploadImage": "Naloži Sliko",
+ "reprocessFace": "Ponovna Obdelava Obraza"
+ },
+ "imageEntry": {
+ "validation": {
+ "selectImage": "Izberite slikovno datoteko."
+ },
+ "dropActive": "Sliko spustite tukaj…",
+ "dropInstructions": "Povlecite in spustite ali prilepite sliko sem ali kliknite za izbiro",
+ "maxSize": "Največja velikost: {{size}}MB"
+ },
+ "nofaces": "Noben obraz ni na voljo",
+ "pixels": "{{area}}px",
+ "readTheDocs": "Preberi dokumentacijo",
+ "trainFaceAs": "Treniraj obraz kot:",
+ "trainFace": "Treniraj Obraz"
}
diff --git a/web/public/locales/sl/views/live.json b/web/public/locales/sl/views/live.json
index 212137ba79..5b52618288 100644
--- a/web/public/locales/sl/views/live.json
+++ b/web/public/locales/sl/views/live.json
@@ -9,14 +9,163 @@
"ptz": {
"move": {
"clickMove": {
- "disable": "Onemogoči funkcijo klikni in premakni"
+ "disable": "Onemogoči funkcijo klikni in premakni",
+ "label": "Kliknite v okvir, da postavite kamero na sredino",
+ "enable": "Omogoči premik s klikom"
},
"left": {
"label": "Premakni PTZ kamero v levo"
},
"up": {
"label": "Premakni PTZ kamero gor"
+ },
+ "down": {
+ "label": "Premakni PTZ kamero navzdol"
+ },
+ "right": {
+ "label": "Premakni PTZ kamero desno"
}
+ },
+ "zoom": {
+ "in": {
+ "label": "Povečaj PTZ kamero"
+ },
+ "out": {
+ "label": "Pomanjšaj PTZ kamero"
+ }
+ },
+ "focus": {
+ "in": {
+ "label": "Izostri PTZ kamero"
+ },
+ "out": {
+ "label": "Razostri PTZ kamero"
+ }
+ },
+ "frame": {
+ "center": {
+ "label": "Kliknite v okvir, da postavite PTZ kamero na sredino"
+ }
+ },
+ "presets": "Prednastavitve PTZ kamere"
+ },
+ "cameraAudio": {
+ "enable": "Omogoči Zvok Kamere",
+ "disable": "Onemogoči Zvok Kamere"
+ },
+ "camera": {
+ "enable": "Omogoči Kamero",
+ "disable": "Onemogoči Kamero"
+ },
+ "muteCameras": {
+ "enable": "Utišaj vse kamere",
+ "disable": "Vklopi Zvok Vsem Kameram"
+ },
+ "detect": {
+ "enable": "Omogoči Detekcijo",
+ "disable": "Onemogoči Detekcijo"
+ },
+ "recording": {
+ "enable": "Omogoči Snemanje",
+ "disable": "Onemogoči Snemanje"
+ },
+ "snapshots": {
+ "enable": "Omogoči Slike",
+ "disable": "Onemogoči Slike"
+ },
+ "audioDetect": {
+ "enable": "Omogoči Zvočno Detekcijo",
+ "disable": "Onemogoči Zvočno Detekcijo"
+ },
+ "transcription": {
+ "enable": "Omogoči Prepisovanje Zvoka v Živo",
+ "disable": "Onemogoči Prepisovanje Zvoka v Živo"
+ },
+ "autotracking": {
+ "enable": "Omogoči Samodejno Sledenje",
+ "disable": "Onemogoči Samodejno Sledenje"
+ },
+ "streamStats": {
+ "enable": "Prikaži Statistiko Pretočnega Predvajanja",
+ "disable": "Skrij Statistiko Pretočnega Predvajanja"
+ },
+ "manualRecording": {
+ "title": "Snemanje na Zahtevo",
+ "tips": "Začni ročni dogodek na podlagi nastavitev hranjenja posnetkov te kamere.",
+ "playInBackground": {
+ "label": "Predvajaj v ozadju",
+ "desc": "Omogočite to možnost, če želite nadaljevati s pretakanjem, ko je predvajalnik skrit."
+ },
+ "showStats": {
+ "label": "Prikaži Statistiko",
+ "desc": "Omogočite to možnost, če želite statistiko pretoka prikazati kot prekrivni sloj na viru kamere."
+ },
+ "debugView": "Pogled za Odpravljanje Napak",
+ "start": "Začni snemanje na zahtevo",
+ "started": "Začelo se je ročno snemanje na zahtevo.",
+ "failedToStart": "Ročnega snemanja na zahtevo ni bilo mogoče začeti.",
+ "recordDisabledTips": "Ker je snemanje v nastavitvah te kamere onemogočeno ali omejeno, bo shranjena samo slika.",
+ "end": "Končaj snemanje na zahtevo",
+ "ended": "Ročno snemanje na zahtevo je končano.",
+ "failedToEnd": "Ročnega snemanja na zahtevo ni bilo mogoče končati."
+ },
+ "streamingSettings": "Nastavitve Pretakanja",
+ "notifications": "Obvestila",
+ "audio": "Zvok",
+ "suspend": {
+ "forTime": "Začasno ustavi za: "
+ },
+ "stream": {
+ "title": "Pretok",
+ "audio": {
+ "tips": {
+ "title": "Zvok mora biti predvajan iz vaše kamere in konfiguriran v go2rtc za ta pretok.",
+ "documentation": "Preberi Dokumentacijo "
+ },
+ "available": "Za ta pretok je na voljo zvok",
+ "unavailable": "Zvok za ta pretok ni na voljo"
+ },
+ "twoWayTalk": {
+ "tips": "Vaša naprava mora podpirati to funkcijo, WebRTC pa mora biti konfiguriran za dvosmerni pogovor.",
+ "tips.documentation": "Preberi dokumentacijo ",
+ "available": "Za ta tok je na voljo dvosmerni pogovor",
+ "unavailable": "Dvosmerni pogovor ni na voljo za ta pretok"
+ },
+ "lowBandwidth": {
+ "tips": "Pogled v živo je v načinu nizke pasovne širine zaradi napak v nalaganju ali pretoku.",
+ "resetStream": "Ponastavi pretok"
+ },
+ "playInBackground": {
+ "label": "Predvajaj v ozadju",
+ "tips": "Omogočite to možnost, če želite nadaljevati s pretakanjem, ko je predvajalnik skrit."
}
+ },
+ "cameraSettings": {
+ "title": "{{camera}} Nastavitve",
+ "cameraEnabled": "Kamera Omogočena",
+ "objectDetection": "Zaznavanje Objektov",
+ "recording": "Snemanje",
+ "snapshots": "Slike",
+ "audioDetection": "Zvočna Detekcija",
+ "transcription": "Zvočni Prepis",
+ "autotracking": "Samodejno Sledenje"
+ },
+ "history": {
+ "label": "Prikaži stare posnetke"
+ },
+ "effectiveRetainMode": {
+ "modes": {
+ "all": "Vse",
+ "motion": "Gibanje",
+ "active_objects": "Aktivni Objekti"
+ },
+ "notAllTips": "Vaša konfiguracija hranjenja posnetkov {{source}} je nastavljena na način : {{effectiveRetainMode}}, zato bo ta posnetek na zahtevo hranil samo segmente z {{effectiveRetainModeName}}."
+ },
+ "editLayout": {
+ "label": "Uredi Postavitev",
+ "group": {
+ "label": "Uredi Skupino Kamere"
+ },
+ "exitEdit": "Izhod iz Urejanja"
}
}
diff --git a/web/public/locales/sl/views/settings.json b/web/public/locales/sl/views/settings.json
index af8f70748e..d8eff4e129 100644
--- a/web/public/locales/sl/views/settings.json
+++ b/web/public/locales/sl/views/settings.json
@@ -8,7 +8,10 @@
"object": "Odpravljanje napak - Frigate",
"general": "Splošne Nastavitve - Frigate",
"frigatePlus": "Frigate+ Nastavitve - Frigate",
- "enrichments": "Nastavitve Obogatitev - Frigate"
+ "enrichments": "Nastavitve Obogatitev - Frigate",
+ "motionTuner": "Nastavitev gibanja - Frigate",
+ "cameraManagement": "Upravljaj kamere - Frigate",
+ "cameraReview": "Nastavitve pregleda kamer – Frigate"
},
"menu": {
"ui": "Uporabniški vmesnik",
@@ -18,7 +21,12 @@
"debug": "Razhroščevanje",
"users": "Uporabniki",
"notifications": "Obvestila",
- "frigateplus": "Frigate+"
+ "frigateplus": "Frigate+",
+ "motionTuner": "Nastavitev Gibanja",
+ "triggers": "Prožilniki",
+ "cameraManagement": "Upravljanje",
+ "cameraReview": "Pregled",
+ "roles": "Vloge"
},
"masksAndZones": {
"zones": {
@@ -59,12 +67,271 @@
"desc": "Samodejno preklopite na pogled kamere v živo, ko je zaznana aktivnost. Če onemogočite to možnost, se statične slike kamere na nadzorni plošči v živo posodobijo le enkrat na minuto."
},
"playAlertVideos": {
- "label": "Predvajajte opozorilne videoposnetke"
+ "label": "Predvajajte opozorilne videoposnetke",
+ "desc": "Privzeto se nedavna opozorila na nadzorni plošči predvajajo kot kratki ponavljajoči videoposnetki . To možnost onemogočite, če želite, da se v tej napravi/brskalniku prikaže samo statična slika nedavnih opozoril."
}
},
"storedLayouts": {
"title": "Sharnjene Postavitve",
- "desc": "Postaviteve kamer v skupini kamer je mogoče povleči/prilagoditi. Položaji so shranjeni v lokalnem pomnilniku vašega brskalnika."
+ "desc": "Postaviteve kamer v skupini kamer je mogoče povleči/prilagoditi. Položaji so shranjeni v lokalnem pomnilniku vašega brskalnika.",
+ "clearAll": "Počisti Vse Postavitve"
+ },
+ "cameraGroupStreaming": {
+ "title": "Nastavitve Pretakanja Skupine Kamer",
+ "desc": "Nastavitve pretakanja za vsako skupino kamer so shranjene v lokalnem pomnilniku vašega brskalnika.",
+ "clearAll": "Počisti Vse Nastavitve Pretakanja"
+ },
+ "recordingsViewer": {
+ "title": "Pregledovalnik Posnetkov",
+ "defaultPlaybackRate": {
+ "label": "Privzeta Hitrost Predvajanja",
+ "desc": "Privzeta Hitrost Predvajanja za Shranjene Posnetke."
+ }
+ },
+ "calendar": {
+ "title": "Koledar",
+ "firstWeekday": {
+ "label": "Prvi dan v tednu",
+ "desc": "Dan, na katerega se začnejo tedni v koledarju za preglede.",
+ "sunday": "Nedelja",
+ "monday": "Ponedeljek"
+ }
+ },
+ "toast": {
+ "success": {
+ "clearStoredLayout": "Shranjena postavitev za {{cameraName}} je bila izbrisana",
+ "clearStreamingSettings": "Nastavitve pretakanja za vse skupine kamer so bile izbrisane."
+ },
+ "error": {
+ "clearStoredLayoutFailed": "Shranjene postavitve ni bilo mogoče izbrisati: {{errorMessage}}",
+ "clearStreamingSettingsFailed": "Nastavitev pretakanja ni bilo mogoče izbrisati: {{errorMessage}}"
+ }
+ }
+ },
+ "enrichments": {
+ "title": "Nastavitve Obogatitev",
+ "unsavedChanges": "Neshranjene Spremembe Nastavitev Obogatitev",
+ "birdClassification": {
+ "title": "Klasifikacija ptic",
+ "desc": "Klasifikacija ptic identificira znane ptice z uporabo kvantiziranega Tensorflow modela. Ko je znana ptica prepoznana, se njeno splošno ime doda kot podoznaka. Te informacije so vključene v uporabniški vmesnik, filtre in obvestila."
+ },
+ "semanticSearch": {
+ "title": "Semantično Iskanje",
+ "desc": "Semantično iskanje v Frigate vam omogoča iskanje sledenih objektov znotraj vaših pregledov, pri čemer lahko uporabite izvorno sliko, uporabniško določen besedilni opis ali samodejno ustvarjen opis.",
+ "readTheDocumentation": "Preberi Dokumentacijo",
+ "reindexNow": {
+ "label": "Ponovno Indeksiraj Zdaj",
+ "desc": "Ponovno indeksiranje bo regeneriralo vdelave (embeddings) za vse sledene objekte. Ta postopek se izvaja v ozadju in lahko zelo obremeni vaš procesor ter traja precej časa, odvisno od števila sledenih objektov, ki jih imate.",
+ "confirmTitle": "Potrdi Ponovno Indeksiranje",
+ "confirmDesc": "Ali ste prepričani, da želite ponovno indeksirati vse vdelave (embeddings) sledenih objektov? Ta postopek se bo izvajal v ozadju, vendar lahko zelo obremeni vaš procesor in traja kar nekaj časa. Napredek si lahko ogledate na strani Razišči.",
+ "confirmButton": "Ponovno Indeksiranje",
+ "success": "Ponovno indeksiranje se je uspešno začelo.",
+ "alreadyInProgress": "Ponovno indeksiranje je že v teku.",
+ "error": "Ponovnega indeksiranja ni bilo mogoče začeti: {{errorMessage}}"
+ },
+ "modelSize": {
+ "label": "Velikost Modela",
+ "desc": "Velikost modela, uporabljenega za vdelave (embeddings) semantičnih iskanj.",
+ "small": {
+ "title": "majhen",
+ "desc": "Uporaba načina small uporablja kvantizirano različico modela, ki porabi manj RAM-a in deluje hitreje na procesorju z zelo zanemarljivo razliko v kakovosti vdelave (embedding)."
+ },
+ "large": {
+ "title": "velik",
+ "desc": "Uporaba možnosti large uporablja celoten model Jina in se bo, če je mogoče, samodejno izvajal na grafičnem procesorju."
+ }
+ }
+ },
+ "faceRecognition": {
+ "title": "Prepoznavanje Obrazov",
+ "desc": "Prepoznavanje obrazov omogoča, da se ljudem dodelijo imena, in ko Frigate prepozna njihov obraz, se detekciji dodeli ime kot podoznako. Te informacije so vključene v uporabniški vmesnik, filtre in obvestila.",
+ "readTheDocumentation": "Preberi Dokumentacijo",
+ "modelSize": {
+ "label": "Velikost Modela",
+ "desc": "Velikost modela, uporabljenega za prepoznavanje obrazov.",
+ "small": {
+ "title": "majhen",
+ "desc": "Uporaba small uporablja model vdelave (embedding) obrazov FaceNet, ki učinkovito deluje na večini procesorjev."
+ },
+ "large": {
+ "title": "velik",
+ "desc": "Uporaba large uporablja model vdelave (embedding) obrazov ArcFace in se bo samodejno zagnala na grafičnem procesorju, če bo to mogoče."
+ }
+ }
+ },
+ "licensePlateRecognition": {
+ "title": "Prepoznavanje Registrskih Tablic",
+ "desc": "Frigate lahko prepozna registrske tablice na vozilih in samodejno doda zaznane znake v polje recognized_license_plate ali znano ime kot podoznako objektom tipa car. Pogost primer uporabe je lahko branje registrskih tablic avtomobilov, ki se ustavijo na dovozu, ali avtomobilov, ki se peljejo mimo po ulici.",
+ "readTheDocumentation": "Preberi Dokumentacijo"
+ },
+ "restart_required": "Potreben je ponovni zagon (Nastavitve Obogatitve so bile spremenjene)",
+ "toast": {
+ "success": "Nastavitve Obogatitev so shranjene. Znova zaženite Frigate, da uveljavite spremembe.",
+ "error": "Shranjevanje sprememb konfiguracije ni uspelo: {{errorMessage}}"
+ }
+ },
+ "camera": {
+ "title": "Nastavitve Kamere",
+ "streams": {
+ "title": "Pretoki"
+ },
+ "object_descriptions": {
+ "title": "Opisi objektov z uporabo generativne UI",
+ "desc": "Začasno omogoči/onemogoči opise objektov z uporabo generativne UI za to kamero. Ko so onemogočeni, opisi, ki jih ustvari UI, ne bodo zahtevani za sledene objekte na tej kameri."
+ },
+ "review": {
+ "title": "Pregled",
+ "desc": "Začasno omogoči/onemogoči opozorila in zaznavanja za to kamero, dokler se Frigate ne zažene znova. Ko je onemogočeno, ne bodo ustvarjeni novi elementi pregleda. ",
+ "alerts": "Opozorila ",
+ "detections": "Detekcije "
+ },
+ "reviewClassification": {
+ "title": "Pregled Klasifikacij",
+ "readTheDocumentation": "Preberi Dokumentacijo",
+ "noDefinedZones": "Za to kamero ni določenih nobenih con.",
+ "objectAlertsTips": "Vsi objekti {{alertsLabels}} na {{cameraName}} bodo prikazani kot Opozorila.",
+ "unsavedChanges": "Neshranjene nastavitve Pregleda Klasifikacije za {{camera}}",
+ "selectAlertsZones": "Izberite cone za Opozorila",
+ "selectDetectionsZones": "Izberite cone za Zaznavanje",
+ "limitDetections": "Omejite zaznavanje na določene cone"
+ },
+ "addCamera": "Dodaj Novo Kamero",
+ "editCamera": "Uredi Kamero:",
+ "selectCamera": "Izberi Kamero",
+ "backToSettings": "Nazaj na Nastavitve Kamere",
+ "cameraConfig": {
+ "add": "Dodaj Kamero",
+ "edit": "Uredi Kamero",
+ "description": "Konfigurirajte nastavitve kamere, vključno z pretočnimi vhodi in vlogami.",
+ "name": "Ime Kamere",
+ "nameRequired": "Ime kamere je obvezno",
+ "nameInvalid": "Ime kamere mora vsebovati samo črke, številke, podčrtaje ali vezaje",
+ "namePlaceholder": "npr. vhodna_vrata"
+ }
+ },
+ "cameraWizard": {
+ "title": "Dodaj kamero",
+ "description": "Sledi spodnjim korakom, da dodaš novo kamero v svojo namestitev Frigate.",
+ "steps": {
+ "nameAndConnection": "Ime & Zbirka",
+ "streamConfiguration": "Konfiguracija pretoka",
+ "validationAndTesting": "Uverjanje in testiranje"
+ },
+ "save": {
+ "success": "Kamera {{cameraName}} je bila uspešno shranjena.",
+ "failure": "Napaka pri shranjevanju {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Resolucija",
+ "video": "Video",
+ "audio": "Zvok",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Prosimo, vnesite veljaven URL pretoka",
+ "testFailed": "Preizkus pretoka ni uspel: {{error}}"
+ },
+ "step1": {
+ "description": "Vnesite podatke vaše kamere in preizkusite povezavo.",
+ "cameraName": "Ime kamere",
+ "cameraNamePlaceholder": "npr. sprednja_vrata ali Pregled zadnjega dvorišča",
+ "host": "Gostitelj/IP naslov",
+ "port": "Vrata",
+ "username": "Uporabniško ime",
+ "usernamePlaceholder": "Opcijsko",
+ "password": "Geslo",
+ "passwordPlaceholder": "Opcijsko",
+ "selectTransport": "Izberi transportni protokol",
+ "cameraBrand": "Znamka kamere",
+ "selectBrand": "Izberi znamko kamere za predlogo URL-ja",
+ "customUrl": "Po meri URL za pretok",
+ "brandInformation": "Informacije o znamki",
+ "brandUrlFormat": "Za kamere z obliko URL-ja RTSP: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://uporabniškoime:geslo@gostitelj:vrata/pot",
+ "testConnection": "Preveri povezavo",
+ "testSuccess": "Test povezave uspešen!",
+ "testFailed": "Test povezave neuspešen. Prosim preveri vnos in poskusi še enkrat.",
+ "streamDetails": "Podrobnosti pretoka",
+ "testing": {
+ "probingMetadata": "Preiskovanje metapodatkov kamere...",
+ "fetchingSnapshot": "Pridobivanje posnetka kamere..."
+ },
+ "warnings": {
+ "noSnapshot": "Ni mogoče pridobiti posnetka iz nastavljenega pretoka."
+ },
+ "errors": {
+ "nameLength": "Ime kamere mora biti 64 znakov ali manj",
+ "invalidCharacters": "Ime kamere vsebuje neveljavne znake",
+ "nameExists": "Ime kamere že obstaja",
+ "customUrlRtspRequired": "URL-ji po meri se morajo začeti z \"rtsp://\". Za ne-RTSP pretoke kamer je potrebna ročna nastavitev.",
+ "brands": {
+ "reolink-rtsp": "RTSP za Reolink ni priporočen. \nV nastavitvah kamere omogočite HTTP in znova zaženite čarovnika."
+ }
+ }
+ },
+ "step2": {
+ "streamUrlPlaceholder": "rtsp://uporabniskoime:geslo@gostitelj:vrata/pot",
+ "url": "URL",
+ "resolution": "Resolucija",
+ "selectResolution": "Izberi resolucijo",
+ "quality": "Kvaliteta",
+ "selectQuality": "Izberi kvaliteto",
+ "roles": "Vloge",
+ "roleLabels": {
+ "detect": "Prepoznavanje objektov",
+ "record": "Snemanje",
+ "audio": "Zvok"
+ },
+ "testStream": "Preveri povezavo",
+ "testSuccess": "Test pretoka uspešen!",
+ "testFailed": "Test pretoka spodletel",
+ "testFailedTitle": "Test spodletel",
+ "connected": "Povezan",
+ "notConnected": "Ni povezave",
+ "featuresTitle": "Funkcije",
+ "go2rtc": "Zmanjšaj povezave na kamero",
+ "detectRoleWarning": "Vsaj en pretok mora imeti vlogo »zaznavanje«, da lahko nadaljuješ.",
+ "rolesPopover": {
+ "title": "Vloge pretoka",
+ "detect": "Glavni vir za zaznavanje objektov.",
+ "record": "Shranjuje odseke video posnetka glede na nastavitve konfiguracije.",
+ "audio": "Vir za zaznavanje na podlagi zvoka."
+ },
+ "featuresPopover": {
+ "title": "Značilnosti pretoka",
+ "description": "Uporabi ponovno pretakanje go2rtc, da zmanjšaš število povezav s kamero."
+ }
+ },
+ "step3": {
+ "description": "Končno preverjanje in analiza pred shranjevanjem nove kamere. Poveži vsak pretok, preden shranjuješ.",
+ "validationTitle": "Preverjanje pretoka",
+ "connectAllStreams": "Poveži vse pretoke",
+ "reconnectionSuccess": "Ponovna povezava uspešna.",
+ "reconnectionPartial": "Nekateri pretoki se niso ponovno povezali.",
+ "streamUnavailable": "Predogled pretoka ni na voljo",
+ "reload": "Ponovno naloži",
+ "connecting": "Povezujem...",
+ "streamTitle": "Pretok {{number}}",
+ "valid": "Veljaven",
+ "failed": "Spodletel",
+ "notTested": "Ni testiran",
+ "connectStream": "Poveži",
+ "connectingStream": "Povezujem",
+ "disconnectStream": "Prekini povezavo",
+ "estimatedBandwidth": "Predvidena pasovna širina",
+ "roles": "Vloge",
+ "none": "Noben",
+ "error": "Napaka",
+ "streamValidated": "Pretok {{number}} uspešno preverjen",
+ "streamValidationFailed": "Preverjanje pretoka {{number}} spodletelo",
+ "saveAndApply": "Shrani novo kamero",
+ "saveError": "Neveljavna konfiguracija. Prosimo preverite vaše nastavitve.",
+ "issues": {
+ "title": "Preverjanje pretoka",
+ "videoCodecGood": "Video kodek je {{codec}}.",
+ "audioCodecGood": "Audio kodek je {{codec}}.",
+ "resolutionHigh": "Resolucija {{resolution}} lahko povzroči povečano porabo virov."
+ }
}
}
}
diff --git a/web/public/locales/sl/views/system.json b/web/public/locales/sl/views/system.json
index 4a19721c0c..6562321a2e 100644
--- a/web/public/locales/sl/views/system.json
+++ b/web/public/locales/sl/views/system.json
@@ -7,7 +7,8 @@
"frigate": "Frigate dnevniki - Frigate",
"go2rtc": "Go2RTC dnevniki - Frigate",
"nginx": "Nginx dnevniki - Frigate"
- }
+ },
+ "enrichments": "Statistika Obogatitev - Frigate"
},
"logs": {
"download": {
@@ -23,6 +24,13 @@
"timestamp": "Časovni žig",
"message": "Sporočilo",
"tag": "Oznaka"
+ },
+ "tips": "Dnevniki se pretakajo s strežnika",
+ "toast": {
+ "error": {
+ "fetchingLogsFailed": "Napaka pri pridobivanju dnevnikov: {{errorMessage}}",
+ "whileStreamingLogs": "Napaka med pretakanjem dnevnikov: {{errorMessage}}"
+ }
}
},
"storage": {
@@ -100,7 +108,67 @@
"title": "Kamere",
"overview": "Pregled",
"info": {
- "aspectRatio": "razmerje stranic"
+ "aspectRatio": "razmerje stranic",
+ "cameraProbeInfo": "{{camera}} Podrobne Informacije Kamere",
+ "streamDataFromFFPROBE": "Podatki o pretoku se pridobijo z ukazom ffprobe.",
+ "fetching": "Pridobivanje Podatkov Kamere",
+ "stream": "Pretok {{idx}}",
+ "video": "Video:",
+ "codec": "Kodek:",
+ "resolution": "Ločljivost:",
+ "fps": "FPS:",
+ "unknown": "Neznano",
+ "audio": "Zvok:",
+ "error": "Napaka: {{error}}",
+ "tips": {
+ "title": "Podrobne Informacije Kamere"
+ }
+ },
+ "framesAndDetections": "Okvirji / Zaznave",
+ "label": {
+ "camera": "kamera",
+ "detect": "zaznaj",
+ "skipped": "preskočeno",
+ "ffmpeg": "FFmpeg",
+ "capture": "zajemanje",
+ "overallFramesPerSecond": "skupno število sličic na sekundo (FPS)",
+ "overallDetectionsPerSecond": "skupno število zaznav na sekundo",
+ "overallSkippedDetectionsPerSecond": "skupno število preskočenih zaznav na sekundo",
+ "cameraFfmpeg": "{{camName}} FFmpeg",
+ "cameraCapture": "{{camName}} zajem",
+ "cameraDetect": "{{camName}} zaznavanje",
+ "cameraFramesPerSecond": "{{camName}} sličic na sekundo (FPS)",
+ "cameraDetectionsPerSecond": "{{camName}} detekcij na sekundo",
+ "cameraSkippedDetectionsPerSecond": "{{camName}} preskočenih zaznav na sekundo"
+ },
+ "toast": {
+ "success": {
+ "copyToClipboard": "Podatki sonde so bili kopirani v odložišče."
+ },
+ "error": {
+ "unableToProbeCamera": "Ni mogoče preveriti podrobnosti kamere: {{errorMessage}}"
+ }
+ }
+ },
+ "lastRefreshed": "Zadnja osvežitev: ",
+ "stats": {
+ "ffmpegHighCpuUsage": "{{camera}} ima visoko porabo procesorja FFmpeg ({{ffmpegAvg}} %)",
+ "detectHighCpuUsage": "{{camera}} ima visoko porabo procesorja za zaznavanje ({{detectAvg}} %)",
+ "healthy": "Sistem je zdrav",
+ "reindexingEmbeddings": "Ponovno indeksiranje vdelanih elementov (embeddings) ({{processed}}% končano)",
+ "cameraIsOffline": "{{camera}} je nedosegljiva",
+ "detectIsSlow": "{{detect}} je počasen ({{speed}} ms)",
+ "detectIsVerySlow": "{{detect}} je zelo počasen ({{speed}} ms)"
+ },
+ "enrichments": {
+ "title": "Obogatitve",
+ "infPerSecond": "Inference Na Sekundo",
+ "embeddings": {
+ "face_recognition": "Prepoznavanje Obrazov",
+ "plate_recognition": "Prepoznavanje Registrskih Tablic",
+ "face_recognition_speed": "Hitrost Prepoznavanja Obrazov",
+ "plate_recognition_speed": "Hitrost Prepoznavanja Registrskih Tablic",
+ "yolov9_plate_detection": "YOLOv9 Zaznavanje Registrskih Tablic"
}
}
}
diff --git a/web/public/locales/sr/audio.json b/web/public/locales/sr/audio.json
index a9e52ade64..63c1c25f08 100644
--- a/web/public/locales/sr/audio.json
+++ b/web/public/locales/sr/audio.json
@@ -11,5 +11,7 @@
"whispering": "Šaptanje",
"bus": "Autobus",
"laughter": "Smeh",
- "train": "Voz"
+ "train": "Voz",
+ "boat": "Brod",
+ "crying": "Plač"
}
diff --git a/web/public/locales/sr/common.json b/web/public/locales/sr/common.json
index a68b332486..06557f2ecd 100644
--- a/web/public/locales/sr/common.json
+++ b/web/public/locales/sr/common.json
@@ -27,5 +27,6 @@
"year_few": "2,3,4,22,23,24,32,33,34,42,...",
"year_other": "",
"mo": "{{time}}mes"
- }
+ },
+ "readTheDocumentation": "Прочитајте документацију"
}
diff --git a/web/public/locales/sr/components/auth.json b/web/public/locales/sr/components/auth.json
index f601ec61a9..ecaa132ac4 100644
--- a/web/public/locales/sr/components/auth.json
+++ b/web/public/locales/sr/components/auth.json
@@ -7,7 +7,9 @@
"usernameRequired": "Korisničko ime je obavezno",
"passwordRequired": "Lozinka je obavezna",
"rateLimit": "Prekoračeno ograničenje brzine. Pokušajte ponovo kasnije.",
- "loginFailed": "Prijava nije uspela"
+ "loginFailed": "Prijava nije uspela",
+ "unknownError": "Nepoznata greška. Proveri logove.",
+ "webUnknownError": "Nepoznata greška. Proveri logove u konzoli."
}
}
}
diff --git a/web/public/locales/sr/components/camera.json b/web/public/locales/sr/components/camera.json
index 6be8272ec6..1bb6c30200 100644
--- a/web/public/locales/sr/components/camera.json
+++ b/web/public/locales/sr/components/camera.json
@@ -11,7 +11,11 @@
}
},
"name": {
- "label": "Ime"
+ "label": "Ime",
+ "placeholder": "Unesite ime…",
+ "errorMessage": {
+ "mustLeastCharacters": "Naziv grupe kamera mora imati bar 2 karaktera."
+ }
}
}
}
diff --git a/web/public/locales/sr/components/dialog.json b/web/public/locales/sr/components/dialog.json
index 8c5a7c1c44..ead50e869b 100644
--- a/web/public/locales/sr/components/dialog.json
+++ b/web/public/locales/sr/components/dialog.json
@@ -13,6 +13,11 @@
"submitToPlus": {
"label": "Pošalji na Frigate+",
"desc": "Objekti na lokacijama koje želite da izbegnete nisu lažno pozitivni. Slanje lažno pozitivnih rezultata će zbuniti model."
+ },
+ "review": {
+ "question": {
+ "ask_a": "Da li je ovaj objekat {{label}}?"
+ }
}
}
}
diff --git a/web/public/locales/sr/components/filter.json b/web/public/locales/sr/components/filter.json
index e00ac754d7..d7b8323f62 100644
--- a/web/public/locales/sr/components/filter.json
+++ b/web/public/locales/sr/components/filter.json
@@ -10,6 +10,10 @@
"count_other": "{{count}} Oznake"
},
"zones": {
- "label": "Zone"
+ "label": "Zone",
+ "all": {
+ "title": "Sve zone",
+ "short": "Zone"
+ }
}
}
diff --git a/web/public/locales/sr/objects.json b/web/public/locales/sr/objects.json
index 75f353ded8..4edf4728b6 100644
--- a/web/public/locales/sr/objects.json
+++ b/web/public/locales/sr/objects.json
@@ -5,5 +5,6 @@
"motorcycle": "Motor",
"airplane": "Avion",
"bus": "Autobus",
- "train": "Voz"
+ "train": "Voz",
+ "boat": "Brod"
}
diff --git a/web/public/locales/sr/views/classificationModel.json b/web/public/locales/sr/views/classificationModel.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/sr/views/classificationModel.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/sr/views/events.json b/web/public/locales/sr/views/events.json
index 8a1b76e455..4097e56668 100644
--- a/web/public/locales/sr/views/events.json
+++ b/web/public/locales/sr/views/events.json
@@ -8,6 +8,7 @@
"allCameras": "Sve Kamere",
"empty": {
"alert": "Nema upozorenja za pregled",
- "detection": "Nema detekcija za pregled"
+ "detection": "Nema detekcija za pregled",
+ "motion": "Nema podataka o pokretu"
}
}
diff --git a/web/public/locales/sr/views/exports.json b/web/public/locales/sr/views/exports.json
index a12e061633..ff71c75d5d 100644
--- a/web/public/locales/sr/views/exports.json
+++ b/web/public/locales/sr/views/exports.json
@@ -6,6 +6,7 @@
"deleteExport.desc": "Da li zaista želite obrisati {{exportName}}?",
"editExport": {
"title": "Preimenuj izvoz",
- "desc": "Unesite novo ime za ovaj izvoz."
+ "desc": "Unesite novo ime za ovaj izvoz.",
+ "saveExport": "Sačuvaj izvoz"
}
}
diff --git a/web/public/locales/sr/views/faceLibrary.json b/web/public/locales/sr/views/faceLibrary.json
index 766a52aa97..c2aa8367b3 100644
--- a/web/public/locales/sr/views/faceLibrary.json
+++ b/web/public/locales/sr/views/faceLibrary.json
@@ -7,6 +7,8 @@
"details": {
"person": "Osoba",
"subLabelScore": "Sub Label Skor",
- "scoreInfo": "Rezultat podoznake je otežan rezultat za sve prepoznate pouzdanosti lica, tako da se može razlikovati od rezultata prikazanog na snimku."
+ "scoreInfo": "Rezultat podoznake je otežan rezultat za sve prepoznate pouzdanosti lica, tako da se može razlikovati od rezultata prikazanog na snimku.",
+ "face": "Detalji lica",
+ "faceDesc": "Detalji praćenog objekta koji je generisao ovo lice"
}
}
diff --git a/web/public/locales/sr/views/live.json b/web/public/locales/sr/views/live.json
index fe19046a32..1374fe1637 100644
--- a/web/public/locales/sr/views/live.json
+++ b/web/public/locales/sr/views/live.json
@@ -7,6 +7,14 @@
"disable": "Onemogućite dvosmerni razgovor"
},
"cameraAudio": {
- "enable": "Omogući zvuk kamere"
+ "enable": "Omogući zvuk kamere",
+ "disable": "Onemogući zvuk kamere"
+ },
+ "ptz": {
+ "move": {
+ "clickMove": {
+ "label": "Kliknite na sliku da bi centrirali kameru"
+ }
+ }
}
}
diff --git a/web/public/locales/sr/views/search.json b/web/public/locales/sr/views/search.json
index 3ab007f602..d72036c665 100644
--- a/web/public/locales/sr/views/search.json
+++ b/web/public/locales/sr/views/search.json
@@ -5,6 +5,8 @@
"button": {
"clear": "Obriši pretragu",
"save": "Sačuvaj pretragu",
- "delete": "Izbrišite sačuvanu pretragu"
+ "delete": "Izbrišite sačuvanu pretragu",
+ "filterInformation": "Filtriraj informacije",
+ "filterActive": "Aktivni filteri"
}
}
diff --git a/web/public/locales/sr/views/settings.json b/web/public/locales/sr/views/settings.json
index 07a4ea59d8..2957af0f22 100644
--- a/web/public/locales/sr/views/settings.json
+++ b/web/public/locales/sr/views/settings.json
@@ -5,6 +5,7 @@
"camera": "Podešavanje kamera - Frigate",
"enrichments": "Podešavanja obogaćivanja - Frigate",
"masksAndZones": "Uređivač maski i zona - Frigate",
- "motionTuner": "Tjuner pokreta - Frigate"
+ "motionTuner": "Tjuner pokreta - Frigate",
+ "general": "Generalna podešavanja - Frigate"
}
}
diff --git a/web/public/locales/sr/views/system.json b/web/public/locales/sr/views/system.json
index 07f260401c..5cd6faa232 100644
--- a/web/public/locales/sr/views/system.json
+++ b/web/public/locales/sr/views/system.json
@@ -6,7 +6,9 @@
"enrichments": "Statistika obogaćivanja - Frigate",
"logs": {
"frigate": "Frigate logovi - Frigate",
- "go2rtc": "Go2RTC dnevnici - Frigate"
+ "go2rtc": "Go2RTC dnevnici - Frigate",
+ "nginx": "Nginx logovi - Frigate"
}
- }
+ },
+ "title": "Sistem"
}
diff --git a/web/public/locales/sv/audio.json b/web/public/locales/sv/audio.json
index 2e685096cc..2de942a50e 100644
--- a/web/public/locales/sv/audio.json
+++ b/web/public/locales/sv/audio.json
@@ -3,7 +3,7 @@
"bicycle": "Cykel",
"speech": "Tal",
"car": "Bil",
- "bellow": "Under",
+ "bellow": "Vrål",
"motorcycle": "Motorcykel",
"whispering": "Viskning",
"bus": "Buss",
@@ -150,7 +150,7 @@
"vehicle": "Fordon",
"skateboard": "Skatebord",
"door": "Dörr",
- "blender": "Mixer",
+ "blender": "Blandare",
"sink": "Vask",
"hair_dryer": "Hårfön",
"toothbrush": "Tandborste",
@@ -158,5 +158,346 @@
"strum": "Anslag",
"zither": "Citer",
"ukulele": "Ukulele",
- "piano": "Piano"
+ "piano": "Piano",
+ "electric_piano": "Elpiano",
+ "organ": "Orgel",
+ "electronic_organ": "Elektronisk orgel",
+ "hammond_organ": "Hammondorgel",
+ "synthesizer": "Synthesizer",
+ "sampler": "Provtagare",
+ "harpsichord": "Cembalo",
+ "percussion": "Slagverk",
+ "drum_kit": "Trumset",
+ "drum_machine": "Trummaskin",
+ "drum": "Trumma",
+ "french_horn": "Franskt horn",
+ "trumpet": "Trumpet",
+ "flute": "Flöjt",
+ "gong": "Gonggong",
+ "tubular_bells": "Rörklockor",
+ "mallet_percussion": "Malletinstrument",
+ "marimba": "Marimba",
+ "glockenspiel": "Klockspel",
+ "vibraphone": "Vibrafon",
+ "steelpan": "Stålpanna",
+ "orchestra": "Orkester",
+ "brass_instrument": "Bleckblåsinstrument",
+ "trombone": "Trombon",
+ "string_section": "Stråkinstrument",
+ "violin": "Fiol",
+ "pizzicato": "Pizzicato",
+ "cello": "Cello",
+ "double_bass": "Kontrabas",
+ "wind_instrument": "Blåsinstrument",
+ "saxophone": "Saxofon",
+ "clarinet": "Klarinett",
+ "harp": "Harpa",
+ "bell": "Klocka",
+ "church_bell": "Kyrkklocka",
+ "jingle_bell": "Bjällerklang",
+ "bicycle_bell": "Cykelklocka",
+ "tuning_fork": "Stämgaffel",
+ "chime": "Klämta",
+ "wind_chime": "Vindspel",
+ "harmonica": "Munspel",
+ "accordion": "Dragspel",
+ "bagpipes": "Säckpipor",
+ "didgeridoo": "Didjeridu",
+ "theremin": "Teremin",
+ "singing_bowl": "Sjungande skål",
+ "scratching": "Repa",
+ "pop_music": "Popmusik",
+ "hip_hop_music": "Hiphopmusik",
+ "beatboxing": "Beatboxning",
+ "rock_music": "Rockmusik",
+ "heavy_metal": "Heavy Metal musik",
+ "punk_rock": "Punkrock",
+ "grunge": "Grunge",
+ "progressive_rock": "Progressiv rock",
+ "rock_and_roll": "Rock and roll",
+ "psychedelic_rock": "Psykedelisk rock",
+ "rhythm_and_blues": "Rytm och blues",
+ "soul_music": "Soulmusik",
+ "reggae": "Reggae",
+ "country": "Land",
+ "swing_music": "Swingmusik",
+ "bluegrass": "Bluegrass",
+ "funk": "Funk",
+ "folk_music": "Folkmusik",
+ "middle_eastern_music": "Mellanösternmusik",
+ "jazz": "Jazz",
+ "disco": "Disko",
+ "classical_music": "Klassisk musik",
+ "opera": "Opera",
+ "electronic_music": "Elektronisk musik",
+ "house_music": "Housemusik",
+ "techno": "Tekno",
+ "dubstep": "Dubstep",
+ "drum_and_bass": "Trumma och bas",
+ "electronica": "Elektronisk musik",
+ "electronic_dance_music": "Elektronisk dansmusik",
+ "ambient_music": "Ambientmusik",
+ "trance_music": "Trancemusik",
+ "music_of_latin_america": "Latinamerikansk musik",
+ "salsa_music": "Salsamusik",
+ "flamenco": "Flamenco",
+ "blues": "Blues",
+ "music_for_children": "Musik för barn",
+ "new-age_music": "New Age-musik",
+ "vocal_music": "Vokalmusik",
+ "a_capella": "A cappella",
+ "music_of_africa": "Afrikansk musik",
+ "afrobeat": "Afrobeat",
+ "christian_music": "Kristen musik",
+ "gospel_music": "Gospelmusik",
+ "music_of_asia": "Asiens musik",
+ "carnatic_music": "Karnatisk musik",
+ "music_of_bollywood": "Bollywoods musik",
+ "ska": "Ska",
+ "traditional_music": "Traditionell musik",
+ "independent_music": "Oberoende musik",
+ "song": "Låt",
+ "background_music": "Bakgrundsmusik",
+ "theme_music": "Temamusik",
+ "jingle": "Klingande",
+ "soundtrack_music": "Soundtrackmusik",
+ "lullaby": "Vaggvisa",
+ "video_game_music": "Videospelsmusik",
+ "christmas_music": "Julmusik",
+ "dance_music": "Dansmusik",
+ "wedding_music": "Bröllopsmusik",
+ "happy_music": "Glad musik",
+ "sad_music": "Sorglig musik",
+ "tender_music": "Öm musik",
+ "exciting_music": "Spännande musik",
+ "angry_music": "Arg musik",
+ "scary_music": "Skräckmusik",
+ "wind": "Vind",
+ "rustling_leaves": "Prasslande löv",
+ "wind_noise": "Vindbrus",
+ "thunderstorm": "Åskväder",
+ "thunder": "Åska",
+ "water": "Vatten",
+ "rain": "Regn",
+ "raindrop": "Regndroppe",
+ "rain_on_surface": "Regn på ytan",
+ "stream": "Strömma",
+ "waterfall": "Vattenfall",
+ "ocean": "Hav",
+ "waves": "Vågor",
+ "steam": "Ånga",
+ "gurgling": "Gurglande",
+ "fire": "Brand",
+ "crackle": "Spraka",
+ "sailboat": "Segelbåt",
+ "rowboat": "Roddbåt",
+ "motorboat": "Motorbåt",
+ "ship": "Fartyg",
+ "motor_vehicle": "Motorfordon",
+ "power_windows": "Elfönster",
+ "skidding": "Slirning",
+ "tire_squeal": "Däckskrik",
+ "toot": "Tuta",
+ "car_alarm": "Billarm",
+ "car_passing_by": "Bil som passerar",
+ "race_car": "Racerbil",
+ "truck": "Lastbil",
+ "air_brake": "Luftbroms",
+ "air_horn": "Lufthorn",
+ "reversing_beeps": "Backningljud",
+ "ice_cream_truck": "Glassbil",
+ "emergency_vehicle": "Akutbil",
+ "police_car": "Polisbil",
+ "ambulance": "Ambulans",
+ "fire_engine": "Brandbil",
+ "traffic_noise": "Trafikbuller",
+ "rail_transport": "Järnvägstransport",
+ "train_whistle": "Tågvissla",
+ "train_horn": "Tåghorn",
+ "railroad_car": "Järnvägsvagn",
+ "train_wheels_squealing": "Tåghjul skriker",
+ "subway": "Tunnelbana",
+ "aircraft": "Flygplan",
+ "aircraft_engine": "Flygmotor",
+ "jet_engine": "Jetmotor",
+ "propeller": "Propeller",
+ "helicopter": "Helikopter",
+ "fixed-wing_aircraft": "Flygplan med fasta vingar",
+ "engine": "Motor",
+ "light_engine": "Ljusmotor",
+ "lawn_mower": "Gräsklippare",
+ "chainsaw": "Motorsåg",
+ "doorbell": "Dörrklocka",
+ "electric_toothbrush": "Eltandborste",
+ "computer_keyboard": "Tangentbord",
+ "alarm": "Larm",
+ "telephone": "Telefon",
+ "ringtone": "Ringsignal",
+ "dial_tone": "Rington",
+ "busy_signal": "Upptagetsignal",
+ "alarm_clock": "Alarmklocka",
+ "smoke_detector": "Brandvarnare",
+ "fire_alarm": "Brandlarm",
+ "dental_drill's_drill": "Tandläkarborr",
+ "medium_engine": "Medelstor motor",
+ "heavy_engine": "Tung motor",
+ "engine_knocking": "Motorknackning",
+ "engine_starting": "Motor startar",
+ "idling": "Tomgång",
+ "accelerating": "Accelererar",
+ "ding-dong": "Ring-ring",
+ "sliding_door": "Skjutdörr",
+ "slam": "Smäll",
+ "knock": "Knack",
+ "tap": "Knacka",
+ "squeak": "Gnissla",
+ "cupboard_open_or_close": "Skåp öppnas eller stängs",
+ "drawer_open_or_close": "Låda öppnas eller stängs",
+ "dishes": "Tallrikar",
+ "cutlery": "Bestick",
+ "chopping": "Hackning",
+ "frying": "Steka",
+ "microwave_oven": "Mikrovågsugn",
+ "water_tap": "Vattenkran",
+ "bathtub": "Badkar",
+ "toilet_flush": "Toalettspolning",
+ "vacuum_cleaner": "Dammsugare",
+ "zipper": "Dragkedja",
+ "keys_jangling": "Nycklar som klirrar",
+ "coin": "Mynt",
+ "electric_shaver": "Elektrisk rakhyvel",
+ "shuffling_cards": "Blanda kort",
+ "typing": "Skrivar",
+ "typewriter": "Skrivmaskin",
+ "writing": "Skriva",
+ "telephone_bell_ringing": "Telefonen ringer",
+ "telephone_dialing": "Ljud för telefonuppringning",
+ "siren": "Siren",
+ "civil_defense_siren": "Civilförsvarssiren",
+ "buzzer": "Summer",
+ "foghorn": "Mistlur",
+ "whistle": "Vissla",
+ "steam_whistle": "Ångvissla",
+ "mechanisms": "Mekanismer",
+ "ratchet": "Spärrhake",
+ "tick": "Tick",
+ "tick-tock": "Tick Tack",
+ "gears": "Kugghjul",
+ "pulleys": "Remskivor",
+ "sewing_machine": "Symaskin",
+ "printer": "Skrivare",
+ "mechanical_fan": "Mekanisk fläkt",
+ "air_conditioning": "Luftkonditionering",
+ "cash_register": "Kassaapparat",
+ "single-lens_reflex_camera": "Enkellinsreflexkamera",
+ "tools": "Verktyg",
+ "hammer": "Hammare",
+ "jackhammer": "Tryckluftsborr",
+ "sawing": "Sågning",
+ "filing": "Filning",
+ "sanding": "Sandning",
+ "power_tool": "Elverktyg",
+ "drill": "Borra",
+ "explosion": "Explosion",
+ "gunshot": "Skottlossning",
+ "machine_gun": "Kulspruta",
+ "fusillade": "Fusillad",
+ "artillery_fire": "Artillerieeld",
+ "cap_gun": "Kapsylpistol",
+ "fireworks": "Fyrverkeri",
+ "firecracker": "Smällare",
+ "burst": "Brista",
+ "eruption": "Utbrott",
+ "boom": "Pang",
+ "wood": "Trä",
+ "chop": "Hugga",
+ "splinter": "Flisa",
+ "crack": "Spricka",
+ "glass": "Glas",
+ "chink": "Skaka",
+ "shatter": "Splittras",
+ "silence": "Tystnad",
+ "sound_effect": "Ljudeffekt",
+ "environmental_noise": "Miljöbuller",
+ "static": "Statisk",
+ "white_noise": "Vitt brus",
+ "pink_noise": "Rosa brus",
+ "television": "Tv",
+ "radio": "Radio",
+ "field_recording": "Fältinspelning",
+ "scream": "Skrika",
+ "sodeling": "Södling",
+ "chird": "Ackord",
+ "change_ringing": "Ljud från myntväxling",
+ "shofar": "Shofar",
+ "liquid": "Flytande",
+ "splash": "Stänk",
+ "slosh": "Plaska",
+ "squish": "Stryk",
+ "drip": "Dropp",
+ "pour": "Hälla",
+ "trickle": "Sippra",
+ "gush": "Välla",
+ "fill": "Fylla",
+ "spray": "Sprej",
+ "pump": "Pump",
+ "stir": "Rör",
+ "boiling": "Kokande",
+ "sonar": "Ekolod",
+ "arrow": "Pil",
+ "whoosh": "Svischande",
+ "thump": "Dunk",
+ "thunk": "Dunkande",
+ "electronic_tuner": "Elektronisk stämapparat",
+ "effects_unit": "Effektenhet",
+ "chorus_effect": "Chorus-effekt",
+ "basketball_bounce": "Basketbollstuds",
+ "bang": "Smäll",
+ "slap": "Slag",
+ "whack": "Slog",
+ "smash": "Smälla",
+ "breaking": "Brytning",
+ "bouncing": "Studsande",
+ "whip": "Piska",
+ "flap": "Flaxa",
+ "scratch": "Repa",
+ "scrape": "Skrapa",
+ "rub": "Gnugga",
+ "roll": "Rulla",
+ "crushing": "Krossa",
+ "crumpling": "Skrynkliga",
+ "tearing": "Rivning",
+ "beep": "Pip",
+ "ping": "Ping",
+ "ding": "Ding",
+ "clang": "Klang",
+ "squeal": "Skrika",
+ "creak": "Knarr",
+ "rustle": "Prassel",
+ "whir": "Surra",
+ "clatter": "Slammer",
+ "sizzle": "Fräsa vid matlagning",
+ "clicking": "Klickande",
+ "clickety_clack": "Klickigt klack",
+ "rumble": "Mullrande",
+ "plop": "Plopp",
+ "hum": "Brum",
+ "zing": "Vinande",
+ "boing": "Pling",
+ "crunch": "Knastrande",
+ "sine_wave": "Sinusvåg",
+ "harmonic": "Harmonisk",
+ "chirp_tone": "Kvittringston",
+ "pulse": "Puls",
+ "inside": "Inuti",
+ "outside": "Utanför",
+ "reverberation": "Eko",
+ "echo": "Eko",
+ "noise": "Buller",
+ "mains_hum": "Huvudbrum",
+ "distortion": "Distorsion",
+ "sidetone": "Sidoton",
+ "cacophony": "Kakofoni",
+ "throbbing": "Bultande",
+ "vibration": "Vibration"
}
diff --git a/web/public/locales/sv/common.json b/web/public/locales/sv/common.json
index a220db5856..a1ad12bb0d 100644
--- a/web/public/locales/sv/common.json
+++ b/web/public/locales/sv/common.json
@@ -16,10 +16,10 @@
"pm": "pm",
"am": "am",
"yr": "{{time}}år",
- "mo": "{{time}} mån",
+ "mo": "{{time}}må",
"month_one": "{{time}} månad",
"month_other": "{{time}} månader",
- "d": "{{time}}dag",
+ "d": "{{time}}d",
"last7": "Senaste 7 dagarna",
"5minutes": "5 minuter",
"last30": "Senaste 30 dagarna",
@@ -35,13 +35,13 @@
"12hour": "d MMM, yyyy",
"24hour": "d MMM, yyy"
},
- "h": "{{time}} h",
+ "h": "{{time}}t",
"hour_one": "{{time}} timme",
"hour_other": "{{time}} timmar",
- "m": "{{time}} m",
+ "m": "{{time}}m",
"minute_one": "{{time}} minut",
"minute_other": "{{time}} minuter",
- "s": "{{time}} s",
+ "s": "{{time}}s",
"formattedTimestamp": {
"12hour": "d MMM, kl. h:mm:ss a",
"24hour": "d MMM, HH:mm:ss"
@@ -72,7 +72,10 @@
"24hour": "dd-MM-yy-HH-mm-ss"
},
"day_one": "{{time}} dag",
- "day_other": "{{time}} dagar"
+ "day_other": "{{time}} dagar",
+ "inProgress": "Pågår",
+ "invalidStartTime": "Ogiltig starttid",
+ "invalidEndTime": "Ogiltig sluttid"
},
"button": {
"save": "Spara",
@@ -104,48 +107,58 @@
"cameraAudio": "Kameraljud",
"on": "PÅ",
"off": "AV",
- "delete": "Släng",
+ "delete": "Radera",
"yes": "Ja",
"no": "Nej",
"download": "Ladda ner",
"info": "Info",
- "export": "Exportera"
+ "export": "Exportera",
+ "continue": "Fortsätta"
},
"menu": {
"language": {
- "yue": "Kantonesiska",
- "it": "Italienska",
- "fr": "Franska",
- "nl": "Nederländska (Dutch)",
- "hi": "Hindi",
- "pt": "Portugisiska",
- "ru": "Ryska",
- "pl": "Polska",
- "el": "Grekiska",
- "sk": "Slovenska",
- "tr": "Turkiska",
- "uk": "Ukrainska",
- "he": "Hebreiska",
- "ro": "Romänska",
- "hu": "Ungerska",
- "fi": "Finska",
- "da": "Danska",
- "ar": "Arabiska",
- "es": "Spanska",
- "zhCN": "Kinesiska",
- "de": "Tyska",
- "ja": "Japanska",
- "sv": "Svenska (Swedish)",
- "cs": "Tjeckiska (Czech)",
+ "yue": "粵語 (Kantonesiska)",
+ "it": "Italiano (Italienska)",
+ "fr": "Français (Franska)",
+ "nl": "Nederlands (Nederländska)",
+ "hi": "हिन्दी (Hindi)",
+ "pt": "Português (Portugisiska)",
+ "ru": "Русский (Ryska)",
+ "pl": "Polski (Polska)",
+ "el": "Ελληνικά (Grekiska)",
+ "sk": "Slovenčina (Slovenska)",
+ "tr": "Türkçe (Turkiska)",
+ "uk": "Українська (Ukrainska)",
+ "he": "עברית (Hebreiska)",
+ "ro": "Română (Romänska)",
+ "hu": "Magyar (Ungerska)",
+ "fi": "Suomi (Finska)",
+ "da": "Dansk (Danska)",
+ "ar": "العربية (Arabiska)",
+ "es": "Español (Spanska)",
+ "zhCN": "简体中文 (Kinesiska)",
+ "de": "Deutsch (Tyska)",
+ "ja": "日本語 (Japanska)",
+ "sv": "Svenska (Svenska)",
+ "cs": "Čeština (Tjeckiska)",
"nb": "Norsk Bokmål (Norsk Bokmål)",
- "ko": "Koreanska",
- "vi": "Vietnamesiska",
- "fa": "Persiska",
- "th": "Thailändska",
+ "ko": "한국어 (Koreanska)",
+ "vi": "Tiếng Việt (Vietnamesiska)",
+ "fa": "فارسی (Persiska)",
+ "th": "ไทย (Thailändska)",
"withSystem": {
"label": "Använd systeminställningarna för språk"
},
- "en": "Engelska"
+ "en": "English (Engelska)",
+ "ptBR": "Português brasileiro (Brasiliansk Portugisiska)",
+ "ca": "Català (Katalanska)",
+ "sr": "Српски (Serbiska)",
+ "sl": "Slovenščina (Slovenska)",
+ "lt": "Lietuvių (Litauiska)",
+ "bg": "Български (Bulgariska)",
+ "gl": "Galego (Galiciska)",
+ "id": "Bahasa Indonesia (Indonesiska)",
+ "ur": "اردو (Urdu)"
},
"darkMode": {
"withSystem": {
@@ -200,7 +213,8 @@
"languages": "Språk",
"configurationEditor": "Konfigurationsredigerare",
"withSystem": "System",
- "appearance": "Utseende"
+ "appearance": "Utseende",
+ "classification": "Klassificering"
},
"pagination": {
"next": {
@@ -241,7 +255,12 @@
"copyUrlToClipboard": "Webbadressen har kopierats till urklipp."
},
"label": {
- "back": "Gå tillbaka"
+ "back": "Gå tillbaka",
+ "hide": "Dölj {{item}}",
+ "show": "Visa {{item}}",
+ "ID": "ID",
+ "none": "Ingen",
+ "all": "Alla"
},
"unit": {
"speed": {
@@ -251,7 +270,28 @@
"length": {
"feet": "fot",
"meters": "meter"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/timme",
+ "mbph": "MB/timme",
+ "gbph": "GB/timme"
}
},
- "selectItem": "Välj {{item}}"
+ "selectItem": "Välj {{item}}",
+ "readTheDocumentation": "Läs dokumentationen",
+ "information": {
+ "pixels": "{{area}}px"
+ },
+ "list": {
+ "two": "{{0}} och {{1}}",
+ "many": "{{items}} och {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "Valfritt",
+ "internalID": "Det interna ID som Frigate använder i konfigurationen och databasen"
+ }
}
diff --git a/web/public/locales/sv/components/auth.json b/web/public/locales/sv/components/auth.json
index 8581ffe946..1fcf9092cf 100644
--- a/web/public/locales/sv/components/auth.json
+++ b/web/public/locales/sv/components/auth.json
@@ -10,6 +10,7 @@
"unknownError": "Okänt fel. Kontrollera loggarna.",
"webUnknownError": "Okänt fel. Kontrollera konsol loggarna.",
"rateLimit": "Överskriden anropsgräns. Försök igen senare."
- }
+ },
+ "firstTimeLogin": "Försöker du logga in för första gången? Inloggningsuppgifterna finns angivna i Frigate-loggarna."
}
}
diff --git a/web/public/locales/sv/components/camera.json b/web/public/locales/sv/components/camera.json
index f4a3448dbe..23de9471f6 100644
--- a/web/public/locales/sv/components/camera.json
+++ b/web/public/locales/sv/components/camera.json
@@ -62,7 +62,8 @@
"label": "Kompatibilitetsläge",
"desc": "Aktivera endast det här alternativet om kamerans livestream visar färgartefakter och har en diagonal linje på höger sida av bilden."
}
- }
+ },
+ "birdseye": "Fågelöga"
},
"cameras": {
"desc": "Välj kameror för denna guppen.",
diff --git a/web/public/locales/sv/components/dialog.json b/web/public/locales/sv/components/dialog.json
index 42af6ea41f..2ef0e8814d 100644
--- a/web/public/locales/sv/components/dialog.json
+++ b/web/public/locales/sv/components/dialog.json
@@ -3,21 +3,26 @@
"button": "Starta om",
"restarting": {
"title": "Frigate startar om",
- "content": "Sidan uppdateras om {{countdown}} seconds.",
- "button": "Tvinga uppdatering nu"
+ "content": "Sidan uppdateras om {{countdown}} sekunder.",
+ "button": "Tvinga omladdning nu"
},
"title": "Är du säker på att du vill starta om Frigate?"
},
"explore": {
"plus": {
"submitToPlus": {
- "label": "Skicka till Frigate+"
+ "label": "Skicka till Frigate+",
+ "desc": "Objekt på platser du vill undvika är inte falska positiva resultat. Att skicka in dem som falska positiva resultat kommer att förvirra modellen."
},
"review": {
"question": {
"ask_a": "Är detta objektet {{label}}?",
"ask_an": "Är detta objektet en {{label}}?",
- "ask_full": "Är detta objektet {{untranslatedLabel}} ({{translatedLabel}})?"
+ "ask_full": "Är detta objektet {{untranslatedLabel}} ({{translatedLabel}})?",
+ "label": "Bekräfta denna etikett för Frigate Plus"
+ },
+ "state": {
+ "submitted": "Inskickad"
}
}
},
@@ -29,7 +34,7 @@
"time": {
"fromTimeline": "Välj från tidslinjen",
"lastHour_one": "Sista timma",
- "lastHour_other": "Sista t {{count}} Timmarna",
+ "lastHour_other": "Sista {{count}} timmar",
"start": {
"title": "Start Tid",
"label": "Välj Start Tid"
@@ -37,12 +42,82 @@
"end": {
"title": "Slut Tid",
"label": "Välj Sluttid"
- }
+ },
+ "custom": "Anpassad"
},
"name": {
"placeholder": "Ge exporten ett namn"
},
"select": "Välj",
- "export": "Eksport"
+ "export": "Eksport",
+ "selectOrExport": "Välj eller exportera",
+ "toast": {
+ "success": "Exporten har startats. Visa filen på exportsidan.",
+ "error": {
+ "failed": "Misslyckades med att starta exporten: {{error}}",
+ "endTimeMustAfterStartTime": "Sluttiden måste vara efter starttiden",
+ "noVaildTimeSelected": "Inget giltigt tidsintervall valt"
+ },
+ "view": "Visa"
+ },
+ "fromTimeline": {
+ "saveExport": "Spara export",
+ "previewExport": "Förhandsgranska export"
+ }
+ },
+ "streaming": {
+ "label": "Videoström",
+ "restreaming": {
+ "disabled": "Omströmning är inte aktiverad för den här kameran.",
+ "desc": {
+ "title": "Konfigurera go2rtc för ytterligare livevisningsalternativ och ljud för den här kameran.",
+ "readTheDocumentation": "Läs dokumentationen"
+ }
+ },
+ "showStats": {
+ "label": "Visa strömstatistik",
+ "desc": "Aktivera det här alternativet för att visa strömstatistik som ett överlägg över kameraflödet."
+ },
+ "debugView": "Felsöknings vy"
+ },
+ "search": {
+ "saveSearch": {
+ "overwrite": "{{searchName}} finns redan. Om du sparar skrivs det befintliga värdet över.",
+ "success": "Sökningen ({{searchName}}) har sparats.",
+ "button": {
+ "save": {
+ "label": "Spara den här sökningen"
+ }
+ },
+ "label": "Spara Sökning",
+ "desc": "Ange ett namn för den här sparade sökningen.",
+ "placeholder": "Ange ett namn för din sökning"
+ }
+ },
+ "recording": {
+ "confirmDelete": {
+ "title": "Bekräfta radering",
+ "desc": {
+ "selected": "Är du säker på att du vill radera all inspelad video som är kopplad till det här granskningsobjektet?
Håll ner Shift-tangenten för att hoppa över den här dialogrutan i framtiden."
+ },
+ "toast": {
+ "success": "Videoklipp som är kopplade till de valda granskningsobjekten har raderats.",
+ "error": "Misslyckades med att ta bort: {{error}}"
+ }
+ },
+ "button": {
+ "export": "Exportera",
+ "markAsReviewed": "Markera som granskad",
+ "deleteNow": "Ta bort nu",
+ "markAsUnreviewed": "Markera som ogranskad"
+ }
+ },
+ "imagePicker": {
+ "selectImage": "Välj miniatyrbilden för ett spårat objekt",
+ "search": {
+ "placeholder": "Sök efter etikett eller underetikett..."
+ },
+ "noImages": "Inga miniatyrbilder hittades för den här kameran",
+ "unknownLabel": "Sparad triggerbild"
}
}
diff --git a/web/public/locales/sv/components/filter.json b/web/public/locales/sv/components/filter.json
index c29110cc77..efb50d919c 100644
--- a/web/public/locales/sv/components/filter.json
+++ b/web/public/locales/sv/components/filter.json
@@ -9,17 +9,22 @@
"count_one": "{{count}} Etikett",
"count_other": "{{count}} Etiketter"
},
- "filter": "Filter",
+ "filter": "Filtrera",
"zones": {
"label": "Zoner",
"all": {
"title": "Alla zoner",
- "short": "Soner"
+ "short": "Zoner"
}
},
"features": {
"hasSnapshot": "Har ögonblicksbild",
- "hasVideoClip": "Har ett video klipp"
+ "hasVideoClip": "Har ett video klipp",
+ "submittedToFrigatePlus": {
+ "label": "Skickat till Frigate+",
+ "tips": "Du måste först filtrera på spårade objekt som har en ögonblicksbild.
Spårade objekt utan ögonblicksbild kan inte skickas till Frigate+."
+ },
+ "label": "Detaljer"
},
"sort": {
"dateAsc": "Datum (Stigande)",
@@ -42,12 +47,22 @@
"settings": {
"title": "Inställningar",
"defaultView": {
- "title": "Standard Vy"
+ "title": "Standard Vy",
+ "summary": "Sammanfattning",
+ "desc": "När inga filter är valda, visa en översikt av de senaste spårade objekten per etikett-typ eller visa ett ofiltrerat rutnät.",
+ "unfilteredGrid": "Ofiltrerat Rutnät"
},
"searchSource": {
"options": {
- "description": "Beskrivning"
- }
+ "description": "Beskrivning",
+ "thumbnailImage": "Miniatyrbild"
+ },
+ "label": "Sökkälla",
+ "desc": "Välj om du vill söka miniatyrbilderna eller beskrivningarna av de spårade objekten."
+ },
+ "gridColumns": {
+ "desc": "Välj antal kolumner i rutnätsvy.",
+ "title": "Kolumner i Rutnät"
}
},
"date": {
@@ -67,11 +82,18 @@
"all": {
"short": "Datum",
"title": "Alla datum"
- }
+ },
+ "selectPreset": "Välj Förval…"
},
"recognizedLicensePlates": {
"noLicensePlatesFound": "Inga registreringsplåtar hittade.",
- "selectPlatesFromList": "Välj en eller flera registreringsplåtar från listan."
+ "selectPlatesFromList": "Välj en eller flera registreringsplåtar från listan.",
+ "title": "Igenkända Registreringsskyltar",
+ "loadFailed": "Misslyckades med att ladda igenkända registreringsskyltar.",
+ "placeholder": "Skriv för att söka registreringsskyltar…",
+ "loading": "Laddar igenkända registreringsskyltar…",
+ "selectAll": "Välj alla",
+ "clearAll": "Rensa alla"
},
"more": "Flera filter",
"reset": {
@@ -81,5 +103,39 @@
"label": "Under kategori",
"all": "Alla under kategorier"
},
- "estimatedSpeed": "Estimerad hastighet ({{unit}})"
+ "estimatedSpeed": "Estimerad hastighet ({{unit}})",
+ "classes": {
+ "all": {
+ "title": "Alla Klasser"
+ },
+ "count_one": "{{count}} Klass",
+ "count_other": "{{count}} Klasser",
+ "label": "Klasser"
+ },
+ "timeRange": "Tidsspann",
+ "logSettings": {
+ "loading": {
+ "title": "Laddar",
+ "desc": "När loggvyn är rullad till slutet, strömmas automatiskt nya loggar till vyn."
+ },
+ "filterBySeverity": "Filtrera logg på allvarlighetsgrad",
+ "disableLogStreaming": "Inaktivera strömning av logg",
+ "allLogs": "Alla loggar",
+ "label": "Filter loggnivå"
+ },
+ "trackedObjectDelete": {
+ "title": "Bekräfta Borttagning",
+ "toast": {
+ "success": "Spårade objekt borttagna.",
+ "error": "Misslyckades med att ta bort spårade objekt: {{errorMessage}}"
+ },
+ "desc": "Borttagning av dessa {{objectLength}} spårade objekt tar bort ögonblicksbild, sparade inbäddningar, och tillhörande livscykelposter. Inspelat material av dessa spårade objekt i Historievyn kommer INTE att tas bort.
Vill du verkligen fortsätta?
Håll ner Skift-tangenten för att hoppa över denna dialog i framtiden."
+ },
+ "zoneMask": {
+ "filterBy": "Filtrera på zonmaskering"
+ },
+ "attributes": {
+ "label": "Klassificeringsattribut",
+ "all": "Alla attribut"
+ }
}
diff --git a/web/public/locales/sv/components/icons.json b/web/public/locales/sv/components/icons.json
index e15428582c..afdcfb7d9e 100644
--- a/web/public/locales/sv/components/icons.json
+++ b/web/public/locales/sv/components/icons.json
@@ -1,7 +1,7 @@
{
"iconPicker": {
"search": {
- "placeholder": "Sök efter ikon…"
+ "placeholder": "Sök efter en ikon…"
},
"selectIcon": "Välj en ikon"
}
diff --git a/web/public/locales/sv/components/player.json b/web/public/locales/sv/components/player.json
index b41c5dd65c..7c6301ca11 100644
--- a/web/public/locales/sv/components/player.json
+++ b/web/public/locales/sv/components/player.json
@@ -1,5 +1,5 @@
{
- "noPreviewFound": "Ingen Förhandsvisning Hittad",
+ "noPreviewFound": "Ingen förhandsvisning hittad",
"noRecordingsFoundForThisTime": "Inga inspelningar hittade för denna tid",
"noPreviewFoundFor": "Ingen förhandsvisning hittad för {{cameraName}}",
"submitFrigatePlus": {
@@ -39,7 +39,7 @@
"decodedFrames": "Avkodade bildrutor:",
"droppedFrameRate": "Frekvens för bortfallna bildrutor:"
},
- "cameraDisabled": "Kameran är disablead",
+ "cameraDisabled": "Kameran är inaktiverad",
"toast": {
"error": {
"submitFrigatePlusFailed": "Bildruta har skickats till Frigate+ med misslyckat resultat"
diff --git a/web/public/locales/sv/objects.json b/web/public/locales/sv/objects.json
index 4b4da2cf98..1e2926ff30 100644
--- a/web/public/locales/sv/objects.json
+++ b/web/public/locales/sv/objects.json
@@ -80,7 +80,7 @@
"desk": "Skrivbord",
"toilet": "Toalett",
"tv": "TV",
- "laptop": "Laptop",
+ "laptop": "Bärbar dator",
"remote": "Fjärrkontroll",
"keyboard": "Tangentbord",
"cell_phone": "Mobiltelefon",
@@ -89,7 +89,7 @@
"vase": "Vas",
"scissors": "Sax",
"squirrel": "Ekorre",
- "deer": "Hjort",
+ "deer": "Rådjur",
"fox": "Räv",
"rabbit": "Kanin",
"raccoon": "Tvättbjörn",
@@ -110,9 +110,9 @@
"plate": "Tallrik",
"door": "Dörr",
"oven": "Ugn",
- "blender": "Mixer",
+ "blender": "Blandare",
"book": "Bok",
- "waste_bin": "Papperskorg",
+ "waste_bin": "Soptunna",
"license_plate": "Nummerplåt",
"toothbrush": "Tandborste",
"ups": "UPS",
diff --git a/web/public/locales/sv/views/classificationModel.json b/web/public/locales/sv/views/classificationModel.json
new file mode 100644
index 0000000000..5b5c5b77fc
--- /dev/null
+++ b/web/public/locales/sv/views/classificationModel.json
@@ -0,0 +1,188 @@
+{
+ "documentTitle": "Klassificeringsmodeller - Frigate",
+ "button": {
+ "deleteClassificationAttempts": "Ta bort klassificeringsbilder",
+ "renameCategory": "Byt namn på klass",
+ "deleteCategory": "Ta bort klass",
+ "deleteImages": "Ta bort bilder",
+ "trainModel": "Träna modellen",
+ "addClassification": "Lägg till klassificering",
+ "deleteModels": "Ta bort modeller",
+ "editModel": "Redigera modell"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Borttagen klass",
+ "deletedImage": "Raderade bilder",
+ "categorizedImage": "Lyckades klassificera bilden",
+ "trainedModel": "Modellen har tränats.",
+ "trainingModel": "Modellträning har startat.",
+ "deletedModel_one": "{{count}} modell har raderats",
+ "deletedModel_other": "{{count}} modeller har raderats",
+ "updatedModel": "Uppdaterade modellkonfiguration",
+ "renamedCategory": "Klassen har bytt namn till {{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "Misslyckades med att ta bort: {{errorMessage}}",
+ "deleteCategoryFailed": "Misslyckades med att ta bort klassen: {{errorMessage}}",
+ "categorizeFailed": "Misslyckades med att kategorisera bilden: {{errorMessage}}",
+ "trainingFailed": "Modellträningen misslyckades. Kontrollera Frigate loggarna för mer information.",
+ "deleteModelFailed": "Misslyckades med att ta bort modellen: {{errorMessage}}",
+ "updateModelFailed": "Misslyckades med att uppdatera modell: {{errorMessage}}",
+ "trainingFailedToStart": "Misslyckades med att starta modellträning: {{errorMessage}}",
+ "renameCategoryFailed": "Misslyckades med att byta namn på klassen: {{errorMessage}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Ta bort klass",
+ "desc": "Är du säker på att du vill ta bort klassen {{name}}? Detta kommer att ta bort alla associerade bilder permanent och kräva att modellen tränas om.",
+ "minClassesTitle": "Kan inte ta bort klassen",
+ "minClassesDesc": "En klassificeringsmodell måste ha minst två klasser. Lägg till ytterligare en klass innan du tar bort den här."
+ },
+ "deleteDatasetImages": {
+ "title": "Ta bort datamängdsbilder",
+ "desc_one": "Är du säker på att du vill ta bort {{count}} bild från {{dataset}}? Den här åtgärden kan inte ångras och kräver att modellen tränas om.",
+ "desc_other": "Är du säker på att du vill ta bort {{count}} bilder från {{dataset}}? Den här åtgärden kan inte ångras och kräver att modellen tränas om."
+ },
+ "deleteTrainImages": {
+ "title": "Ta bort tränade bilder",
+ "desc_one": "Är du säker på att du vill ta bort {{count}} bild? Den här åtgärden kan inte ångras.",
+ "desc_other": "Är du säker på att du vill ta bort {{count}} bilder? Den här åtgärden kan inte ångras."
+ },
+ "renameCategory": {
+ "title": "Byt namn på klass",
+ "desc": "Ange ett nytt namn för {{name}}. Du måste träna om modellen för att namnändringen ska träda i kraft."
+ },
+ "description": {
+ "invalidName": "Ogiltigt namn. Namn får endast innehålla bokstäver, siffror, mellanslag, apostrofer, understreck och bindestreck."
+ },
+ "train": {
+ "title": "Nyligen tillagd klassificeringar",
+ "aria": "Välj senaste klassificeringar",
+ "titleShort": "Ny"
+ },
+ "categories": "Klasser",
+ "createCategory": {
+ "new": "Skapa ny klass"
+ },
+ "categorizeImageAs": "Klassificera bilden som:",
+ "categorizeImage": "Klassificera bild",
+ "noModels": {
+ "object": {
+ "title": "Inga objektklassificeringsmodeller",
+ "description": "Skapa en anpassad modell för att klassificera detekterade objekt.",
+ "buttonText": "Skapa objektmodell"
+ },
+ "state": {
+ "title": "Inga tillstånd klassificeringsmodeller",
+ "description": "Skapa en anpassad modell för att övervaka och klassificera tillståndsförändringar i specifika kameraområden.",
+ "buttonText": "Skapa en tillståndsmodell"
+ }
+ },
+ "wizard": {
+ "title": "Skapa ny klassificering",
+ "steps": {
+ "nameAndDefine": "Namnge och definiera",
+ "stateArea": "Stat område",
+ "chooseExamples": "Välj exempel"
+ },
+ "step1": {
+ "description": "Tillståndsmodeller övervakar fasta kameraområden för förändringar (t.ex. dörr öppen/stängd). Objektmodeller lägger till klassificeringar till detekterade objekt (t.ex. kända djur, leveranspersoner etc.).",
+ "name": "Namn",
+ "namePlaceholder": "Ange modellnamn...",
+ "type": "Typ",
+ "typeState": "Tillståndet",
+ "typeObject": "Objekt",
+ "objectLabel": "Objektetikett",
+ "objectLabelPlaceholder": "Välj objekttyp...",
+ "classificationType": "Klassificeringstyp",
+ "classificationTypeTip": "Lär dig mer om klassificeringstyper",
+ "classificationTypeDesc": "Underetiketter lägger till ytterligare text till objektetiketten (t.ex. 'Person: UPS'). Attribut är sökbara metadata som lagras separat i objektmetadata.",
+ "classificationSubLabel": "Underetikett",
+ "classificationAttribute": "Attribut",
+ "classes": "Klasser",
+ "states": "Tillstånd",
+ "classesTip": "Lär dig mer om klasser",
+ "classesStateDesc": "Definiera de olika tillstånd som ditt kameraområde kan vara i. Till exempel: \"öppen\" och \"stängd\" för en garageport.",
+ "classesObjectDesc": "Definiera de olika kategorierna som detekterade objekt ska klassificeras i. Till exempel: 'leveransperson', 'boende', 'främling' för personklassificering.",
+ "classPlaceholder": "Ange klassnamn...",
+ "errors": {
+ "nameRequired": "Modellnamn krävs",
+ "nameLength": "Modellnamnet måste vara högst 64 tecken långt",
+ "nameOnlyNumbers": "Modellnamnet får inte bara innehålla siffror",
+ "classRequired": "Minst 1 klass krävs",
+ "classesUnique": "Klassnamn måste vara unika",
+ "stateRequiresTwoClasses": "Tillståndsmodeller kräver minst två klasser",
+ "objectLabelRequired": "Välj en objektetikett",
+ "objectTypeRequired": "Vänligen välj en klassificeringstyp",
+ "noneNotAllowed": "Klassen 'none' är inte tillåten"
+ }
+ },
+ "step2": {
+ "description": "Välj kameror och definiera området som ska övervakas för varje kamera. Modellen kommer att klassificera tillståndet för dessa områden.",
+ "cameras": "Kameror",
+ "selectCamera": "Välj kamera",
+ "noCameras": "Klicka på + för att lägga till kameror",
+ "selectCameraPrompt": "Välj en kamera från listan för att definiera dess övervakningsområde"
+ },
+ "step3": {
+ "selectImagesPrompt": "Markera alla bilder med: {{className}}",
+ "selectImagesDescription": "Klicka på bilderna för att välja dem. Klicka på Fortsätt när du är klar med den här klass.",
+ "generating": {
+ "title": "Generera exempelbilder",
+ "description": "Frigate hämtar representativa bilder från dina inspelningar. Det kan ta en stund..."
+ },
+ "training": {
+ "title": "Träningsmodell",
+ "description": "Din modell tränas i bakgrunden. Stäng den här dialogrutan så börjar modellen köras så snart träningen är klar."
+ },
+ "retryGenerate": "Försök att generera igen",
+ "noImages": "Inga exempelbilder genererade",
+ "classifying": "Klassificering & Träning...",
+ "trainingStarted": "Träningen har börjat",
+ "errors": {
+ "noCameras": "Inga kameror konfigurerade",
+ "noObjectLabel": "Ingen objektetikett vald",
+ "generateFailed": "Misslyckades med att generera exempel: {{error}}",
+ "generationFailed": "Genereringen misslyckades. Försök igen.",
+ "classifyFailed": "Misslyckades med att klassificera bilder: {{error}}"
+ },
+ "generateSuccess": "Exempelbilder har genererats",
+ "allImagesRequired_one": "Vänligen klassificera alla bilder. {{count}} bild återstår.",
+ "allImagesRequired_other": "Vänligen klassificera alla bilder. {{count}} bilder återstår.",
+ "modelCreated": "Modellen har skapats. Använd vyn Senaste klassificeringar för att lägga till bilder för saknade tillstånd och träna sedan modellen.",
+ "missingStatesWarning": {
+ "title": "Exempel på saknade tillstånd",
+ "description": "Det rekommenderas att välja exempel för alla tillstånd för bästa resultat. Du kan fortsätta utan att välja alla tillstånd, men modellen kommer inte att tränas förrän alla tillstånd har bilder. När du har fortsatt använder du vyn Senaste klassificeringar för att klassificera bilder för de saknade tillstånden och tränar sedan modellen."
+ }
+ }
+ },
+ "deleteModel": {
+ "title": "Ta bort klassificeringsmodell",
+ "single": "Är du säker på att du vill ta bort {{name}}? Detta kommer att permanent ta bort all tillhörande data, inklusive bilder och träningsdata. Åtgärden kan inte ångras.",
+ "desc_one": "Är du säker på att du vill ta bort {{count}} modell? Detta kommer att permanent ta bort all tillhörande data, inklusive bilder och träningsdata. Åtgärden kan inte ångras.",
+ "desc_other": "Är du säker på att du vill ta bort {{count}} modeller? Detta kommer att permanent ta bort all tillhörande data, inklusive bilder och träningsdata. Åtgärden kan inte ångras."
+ },
+ "menu": {
+ "objects": "Objekt",
+ "states": "Tillstånd"
+ },
+ "details": {
+ "scoreInfo": "Poängen representerar den genomsnittliga klassificeringssäkerheten för alla upptäckter av detta objekt.",
+ "none": "Ingen",
+ "unknown": "Okänd"
+ },
+ "edit": {
+ "title": "Redigera klassificeringsmodell",
+ "descriptionState": "Redigera klasserna för denna tillståndsklassificeringsmodell. Ändringar kräver omträning av modellen.",
+ "descriptionObject": "Redigera objekttyp och klassificeringstyp för denna objektklassificeringsmodell.",
+ "stateClassesInfo": "Observera: För att ändra tillståndsklasser måste modellen omtränas med de uppdaterade klasserna."
+ },
+ "tooltip": {
+ "trainingInProgress": "Modellen tränar för närvarande",
+ "noNewImages": "Inga nya bilder att träna. Klassificera fler bilder i datasetet först.",
+ "noChanges": "Inga ändringar i datamängden sedan senaste träningen.",
+ "modelNotReady": "Modellen är inte redo för träning"
+ },
+ "none": "Ingen"
+}
diff --git a/web/public/locales/sv/views/configEditor.json b/web/public/locales/sv/views/configEditor.json
index 27409c9689..7b96ff9fe8 100644
--- a/web/public/locales/sv/views/configEditor.json
+++ b/web/public/locales/sv/views/configEditor.json
@@ -12,5 +12,7 @@
},
"documentTitle": "Ändra konfiguration - Frigate",
"configEditor": "Ändra konfiguration",
- "confirm": "Avsluta utan att spara?"
+ "confirm": "Avsluta utan att spara?",
+ "safeConfigEditor": "Konfigurationsredigeraren (felsäkert läge)",
+ "safeModeDescription": "Fregate är i felsäkert läge på grund av ett konfigurationsvalideringsfel."
}
diff --git a/web/public/locales/sv/views/events.json b/web/public/locales/sv/views/events.json
index 9536f9b3d2..f19596e7a9 100644
--- a/web/public/locales/sv/views/events.json
+++ b/web/public/locales/sv/views/events.json
@@ -34,5 +34,30 @@
"markTheseItemsAsReviewed": "Markera dessa objekt som granskade",
"detected": "upptäckt",
"selected_one": "{{count}} valda",
- "selected_other": "{{count}} valda"
+ "selected_other": "{{count}} valda",
+ "suspiciousActivity": "Misstänkt aktivitet",
+ "threateningActivity": "Hotande aktivitet",
+ "detail": {
+ "noDataFound": "Inga detaljerade data att granska",
+ "aria": "Växla detaljvy",
+ "trackedObject_one": "{{count}} objekt",
+ "trackedObject_other": "{{count}} objekt",
+ "noObjectDetailData": "Inga objektdetaljdata tillgängliga.",
+ "label": "Detalj",
+ "settings": "Detaljvy inställningar",
+ "alwaysExpandActive": {
+ "title": "Expandera alltid aktivt",
+ "desc": "Expandera alltid objektinformationen för det aktiva granskningsobjektet när den är tillgänglig."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Spårad punkt",
+ "clickToSeek": "Klicka för att söka till den här tiden"
+ },
+ "zoomIn": "Zooma in",
+ "zoomOut": "Zooma ut",
+ "normalActivity": "Normal",
+ "needsReview": "Behöver granskas",
+ "securityConcern": "Säkerhetsproblem",
+ "select_all": "Alla"
}
diff --git a/web/public/locales/sv/views/explore.json b/web/public/locales/sv/views/explore.json
index e8cecd73fb..95e7b5b054 100644
--- a/web/public/locales/sv/views/explore.json
+++ b/web/public/locales/sv/views/explore.json
@@ -5,25 +5,296 @@
"embeddingsReindexing": {
"startingUp": "Startar upp…",
"estimatedTime": "Beräknad återstående tid:",
- "finishingShortly": "Snart klar"
+ "finishingShortly": "Snart klar",
+ "context": "Utforskaren kan användas efter inbäddade spårade objekt har slutat återindexerat.",
+ "step": {
+ "thumbnailsEmbedded": "Miniatyrbilder inbäddad: ",
+ "descriptionsEmbedded": "Beskrivningar inbäddade: ",
+ "trackedObjectsProcessed": "Spårade objekt bearbetad: "
+ }
},
"title": "Utforska är inte tillgänglig",
"downloadingModels": {
"setup": {
- "textModel": "Text modell"
+ "textModel": "Text modell",
+ "visionModel": "Visionsmodell",
+ "visionModelFeatureExtractor": "Funktionsutdragare för visionsmodell",
+ "textTokenizer": "Texttokeniserare"
},
"tips": {
- "documentation": "Läs dokumentationen"
+ "documentation": "Läs dokumentationen",
+ "context": "Du kanske vill omindexera inbäddningarna av dina spårade objekt när modellerna har laddats ner."
},
- "error": "Ett fel har inträffat. Kontrollera Frigate loggarna."
+ "error": "Ett fel har inträffat. Kontrollera Frigate loggarna.",
+ "context": "Frigate laddar ner de nödvändiga inbäddningsmodellerna för att stödja den semantiska sökfunktionen. Detta kan ta flera minuter beroende på hastigheten på din nätverksanslutning."
}
},
"details": {
- "timestamp": "tidsstämpel"
+ "timestamp": "tidsstämpel",
+ "item": {
+ "title": "Granska objektinformation",
+ "desc": "Granska objektinformation",
+ "button": {
+ "share": "Dela den här recensionen",
+ "viewInExplore": "Visa i Utforska"
+ },
+ "tips": {
+ "mismatch_one": "{{count}} otillgängligt objekt upptäcktes och inkluderades i detta granskningsobjekt. Dessa objekt kvalificerade sig antingen inte som en varning eller detektering, eller så har de redan rensats/raderats.",
+ "mismatch_other": "{{count}} otillgängliga objekt upptäcktes och inkluderades i detta granskningsobjekt. Dessa objekt kvalificerade sig antingen inte som en varning eller upptäckt, eller så har de redan rensats/raderats.",
+ "hasMissingObjects": "Justera din konfiguration om du vill att Frigate ska spara spårade objekt för följande etiketter: {{objects}}"
+ },
+ "toast": {
+ "success": {
+ "regenerate": "En ny beskrivning har begärts från {{provider}}. Beroende på din leverantörs hastighet kan det ta lite tid att generera den nya beskrivningen.",
+ "updatedSublabel": "Underetiketten har uppdaterats.",
+ "updatedLPR": "Nummerplåt har uppdaterats.",
+ "audioTranscription": "Ljudtranskription har begärts. Beroende på hastigheten på din Frigate-server kan transkriptionen ta lite tid att slutföra.",
+ "updatedAttributes": "Attributen har uppdaterats."
+ },
+ "error": {
+ "regenerate": "Kunde inte ringa {{provider}} för en ny beskrivning: {{errorMessage}}",
+ "updatedSublabelFailed": "Misslyckades med att uppdatera underetiketten: {{errorMessage}}",
+ "audioTranscription": "Misslyckades med att begära ljudtranskription: {{errorMessage}}",
+ "updatedLPRFailed": "Misslyckades med att uppdatera nummerplåten: {{errorMessage}}",
+ "updatedAttributesFailed": "Misslyckades med att uppdatera attribut: {{errorMessage}}"
+ }
+ }
+ },
+ "label": "Märka",
+ "editSubLabel": {
+ "title": "Redigera underetikett",
+ "desc": "Ange en ny underetikett för denna {{label}}",
+ "descNoLabel": "Ange en ny underetikett för det här spårade objektet"
+ },
+ "editLPR": {
+ "title": "Redigera nummerplåt",
+ "desc": "Ange ett nytt nummerplåt för denna {{label}}",
+ "descNoLabel": "Ange ett nytt nummerplåt för detta spårade objekt"
+ },
+ "snapshotScore": {
+ "label": "Ögonblicksbildspoäng"
+ },
+ "topScore": {
+ "label": "Högsta poäng",
+ "info": "Topppoängen är den högsta medianpoängen för det spårade objektet, så denna kan skilja sig från poängen som visas på miniatyrbilden av sökresultatet."
+ },
+ "score": {
+ "label": "Poäng"
+ },
+ "recognizedLicensePlate": "Erkänd nummerplåt",
+ "estimatedSpeed": "Uppskattad hastighet",
+ "objects": "Objekt",
+ "camera": "Kamera",
+ "zones": "Zoner",
+ "button": {
+ "findSimilar": "Hitta liknande",
+ "regenerate": {
+ "title": "Regenerera",
+ "label": "Återskapa beskrivningen av spårat objekt"
+ }
+ },
+ "description": {
+ "label": "Beskrivning",
+ "placeholder": "Beskrivning av det spårade objektet",
+ "aiTips": "Frigate kommer inte att begära en beskrivning från din generativa AI-leverantör förrän det spårade objektets livscykel har avslutats."
+ },
+ "expandRegenerationMenu": "Expandera regenereringsmenyn",
+ "regenerateFromSnapshot": "Återskapa från ögonblicksbild",
+ "regenerateFromThumbnails": "Återskapa från miniatyrbilder",
+ "tips": {
+ "descriptionSaved": "Beskrivningen har sparats",
+ "saveDescriptionFailed": "Misslyckades med att uppdatera beskrivningen: {{errorMessage}}"
+ },
+ "editAttributes": {
+ "title": "Redigera attribut",
+ "desc": "Välj klassificeringsattribut för denna {{label}}"
+ },
+ "attributes": "Klassificeringsattribut"
},
"exploreMore": "Utforska fler {{label}} objekt",
"type": {
"details": "detaljer",
- "video": "video"
+ "video": "video",
+ "snapshot": "ögonblicksbild",
+ "object_lifecycle": "objektets livscykel",
+ "thumbnail": "miniatyrbild",
+ "tracking_details": "spårningsdetaljer"
+ },
+ "trackedObjectDetails": "Detaljer om spårade objekt",
+ "objectLifecycle": {
+ "title": "Objektets livscykel",
+ "noImageFound": "Ingen bild hittades för denna tidsstämpel.",
+ "createObjectMask": "Skapa objektmask",
+ "adjustAnnotationSettings": "Justera annoteringsinställningar",
+ "scrollViewTips": "Scrolla för att se de viktiga ögonblicken i detta objekts livscykel.",
+ "autoTrackingTips": "Begränsningsrutornas positioner kommer att vara felaktiga för autospårningskameror.",
+ "count": "{{first}} av {{second}}",
+ "lifecycleItemDesc": {
+ "external": "{{label}} upptäckt",
+ "header": {
+ "zones": "Zoner",
+ "ratio": "Proportion",
+ "area": "Område"
+ },
+ "visible": "{{label}} upptäckt",
+ "entered_zone": "{{label}} gick in i {{zones}}",
+ "active": "{{label}} blev aktiv",
+ "stationary": "{{label}} blev stationär",
+ "attribute": {
+ "faceOrLicense_plate": "{{attribute}} upptäckt för {{label}}",
+ "other": "{{label}} igenkänd som {{attribute}}"
+ },
+ "gone": "{{label}} vänster",
+ "heard": "{{label}} hört"
+ },
+ "annotationSettings": {
+ "title": "Annoteringsinställningar",
+ "showAllZones": {
+ "title": "Visa alla zoner",
+ "desc": "Visa alltid zoner på ramar där objekt har kommit in i en zon."
+ },
+ "offset": {
+ "label": "Annoteringsförskjutning",
+ "desc": "Denna data kommer från din kameras detekteringsflöde men läggs ovanpå bilder från inspelningsflödet. Det är osannolikt att de två strömmarna är helt synkroniserade. Som ett resultat kommer avgränsningsramen och filmmaterialet inte att radas upp perfekt. Fältet annotation_offset kan dock användas för att justera detta.",
+ "documentation": "Läs dokumentationen ",
+ "millisecondsToOffset": "Millisekunder för att förskjuta detektera annoteringar med. Standard: 0",
+ "tips": "TIPS: Föreställ dig ett händelseklipp med en person som går från vänster till höger. Om tidslinjens avgränsningsram konsekvent är till vänster om personen bör värdet minskas. På samma sätt, om en person går från vänster till höger och avgränsningsramen konsekvent är framför personen bör värdet ökas.",
+ "toast": {
+ "success": "Annoterings förskjutningen för {{camera}} har sparats i konfigurationsfilen. Starta om Frigate för att tillämpa dina ändringar."
+ }
+ }
+ },
+ "trackedPoint": "Spårad punkt",
+ "carousel": {
+ "previous": "Föregående bild",
+ "next": "Nästa bild"
+ }
+ },
+ "itemMenu": {
+ "downloadVideo": {
+ "label": "Ladda ner video",
+ "aria": "Ladda ner video"
+ },
+ "downloadSnapshot": {
+ "label": "Ladda ner ögonblicksbild",
+ "aria": "Ladda ner ögonblicksbild"
+ },
+ "viewObjectLifecycle": {
+ "label": "Visa objektets livscykel",
+ "aria": "Visa objektets livscykel"
+ },
+ "findSimilar": {
+ "label": "Hitta liknande",
+ "aria": "Hitta liknande spårade objekt"
+ },
+ "addTrigger": {
+ "label": "Lägg till utlösare",
+ "aria": "Lägg till en utlösare för det här spårade objektet"
+ },
+ "audioTranscription": {
+ "label": "Transkribera",
+ "aria": "Begär ljudtranskribering"
+ },
+ "submitToPlus": {
+ "label": "Skicka till Frigate+",
+ "aria": "Skicka till Frigate Plus"
+ },
+ "viewInHistory": {
+ "label": "Visa i historik",
+ "aria": "Visa i historik"
+ },
+ "deleteTrackedObject": {
+ "label": "Ta bort det här spårade objektet"
+ },
+ "showObjectDetails": {
+ "label": "Visa objektets plats"
+ },
+ "viewTrackingDetails": {
+ "label": "Visa spårningsinformation",
+ "aria": "Visa spårningsdetaljerna"
+ },
+ "hideObjectDetails": {
+ "label": "Dölj objektsökväg"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Ladda ner ren ögonblicksbild",
+ "aria": "Ladda ner ren ögonblicksbild"
+ }
+ },
+ "dialog": {
+ "confirmDelete": {
+ "title": "Bekräfta radering",
+ "desc": "Om du tar bort det här spårade objektet tas ögonblicksbilden, alla sparade inbäddningar och alla tillhörande spårningsdetaljer bort. Inspelade bilder av det här spårade objektet i historikvyn kommer INTE att raderas.
Är du säker på att du vill fortsätta?"
+ }
+ },
+ "noTrackedObjects": "Inga spårade objekt hittades",
+ "fetchingTrackedObjectsFailed": "Fel vid hämtning av spårade objekt: {{errorMessage}}",
+ "trackedObjectsCount_one": "{{count}} spårat objekt ",
+ "trackedObjectsCount_other": "{{count}} spårade objekt ",
+ "searchResult": {
+ "tooltip": "Matchade {{type}} vid {{confidence}}%",
+ "deleteTrackedObject": {
+ "toast": {
+ "success": "Spårat objekt har raderats.",
+ "error": "Misslyckades med att ta bort spårat objekt: {{errorMessage}}"
+ }
+ },
+ "previousTrackedObject": "Föregående spårade objekt",
+ "nextTrackedObject": "Nästa spårade objekt"
+ },
+ "aiAnalysis": {
+ "title": "AI-analys"
+ },
+ "concerns": {
+ "label": "Oro"
+ },
+ "trackingDetails": {
+ "title": "Spårningsdetaljer",
+ "noImageFound": "Ingen bild hittades för denna tidsstämpel.",
+ "createObjectMask": "Skapa objektmask",
+ "adjustAnnotationSettings": "Justera annoteringsinställningar",
+ "scrollViewTips": "Klicka för att se de viktiga ögonblicken i detta objekts livscykel.",
+ "autoTrackingTips": "Begränsningsrutornas positioner kommer att vara felaktiga för autospårningskameror.",
+ "count": "{{first}} av {{second}}",
+ "trackedPoint": "Spårad punkt",
+ "lifecycleItemDesc": {
+ "visible": "{{label}} upptäckt",
+ "entered_zone": "{{label}} gick in i {{zones}}",
+ "active": "{{label}} blev aktiv",
+ "stationary": "{{label}} blev stationär",
+ "attribute": {
+ "faceOrLicense_plate": "{{attribute}} upptäckt för {{label}}",
+ "other": "{{label}} igenkänd som {{attribute}}"
+ },
+ "gone": "{{label}} lämnade",
+ "heard": "{{label}} hördes",
+ "external": "{{label}} upptäckt",
+ "header": {
+ "zones": "Zoner",
+ "ratio": "Förhållandet",
+ "area": "Område",
+ "score": "Resultat"
+ }
+ },
+ "annotationSettings": {
+ "title": "Annoteringsinställningar",
+ "showAllZones": {
+ "title": "Visa alla zoner",
+ "desc": "Visa alltid zoner på ramar där objekt har kommit in i en zon."
+ },
+ "offset": {
+ "label": "Annoteringsförskjutning",
+ "desc": "Denna data kommer från din kameras detekteringsflöde men läggs ovanpå bilder från inspelningsflödet. Det är osannolikt att de två strömmarna är helt synkroniserade. Som ett resultat kommer avgränsningsramen och filmmaterialet inte att radas upp perfekt. Du kan använda den här inställningen för att förskjuta anteckningarna framåt eller bakåt i tiden för att bättre anpassa dem till det inspelade materialet.",
+ "millisecondsToOffset": "Millisekunder för att förskjuta detektera annoteringar med. Standard: 0",
+ "tips": "TIPS: Föreställ dig ett händelseklipp med en person som går från vänster till höger. Om tidslinjens avgränsningsram konsekvent är till vänster om personen bör värdet minskas. På samma sätt, om en person går från vänster till höger och avgränsningsramen konsekvent är framför personen bör värdet ökas.",
+ "toast": {
+ "success": "Annoteringsförskjutningen för {{camera}} har sparats i konfigurationsfilen."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Föregående bild",
+ "next": "Nästa bild"
+ }
}
}
diff --git a/web/public/locales/sv/views/exports.json b/web/public/locales/sv/views/exports.json
index f5b8f37b5e..da2bc13241 100644
--- a/web/public/locales/sv/views/exports.json
+++ b/web/public/locales/sv/views/exports.json
@@ -13,5 +13,11 @@
"error": {
"renameExportFailed": "Misslyckades att byta namn på export: {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "shareExport": "Dela export",
+ "downloadVideo": "Ladda ner video",
+ "editName": "Redigera namn",
+ "deleteExport": "Ta bort export"
}
}
diff --git a/web/public/locales/sv/views/faceLibrary.json b/web/public/locales/sv/views/faceLibrary.json
index 763f7533cb..485dfdd1f3 100644
--- a/web/public/locales/sv/views/faceLibrary.json
+++ b/web/public/locales/sv/views/faceLibrary.json
@@ -4,33 +4,98 @@
"confidence": "Säkerhet",
"face": "Ansiktsdetaljer",
"timestamp": "tidsstämpel",
- "faceDesc": "Detaljer för ansiktet och tillhörande objekt",
- "unknown": "Okänt"
+ "faceDesc": "Detaljer om det spårade objektet som genererade detta ansikte",
+ "unknown": "Okänd",
+ "subLabelScore": "Underetikettpoäng",
+ "scoreInfo": "Underetikettpoängen är den viktade poängen för alla igenkända ansiktskonfidenser, så detta kan skilja sig från poängen som visas på ögonblicksbilden."
},
"description": {
"placeholder": "Ange ett namn för denna samling",
- "addFace": "Gå genom för att lägga till nya ansikte till biblioteket.",
- "invalidName": "Felaktigt namn. Namn kan endast innehålla bokstäver, siffror, mellanslag, apostrofer, understreck och bindestreck."
+ "addFace": "Lägg till en ny samling i ansiktsbiblioteket genom att ladda upp din första bild.",
+ "invalidName": "Ogiltigt namn. Namn får endast innehålla bokstäver, siffror, mellanslag, apostrofer, understreck och bindestreck."
},
"documentTitle": "Ansiktsbibliotek - Frigate",
"steps": {
"faceName": "Ange namn",
"uploadFace": "Ladda upp bild på ansikte",
- "nextSteps": "Nästa steg"
+ "nextSteps": "Nästa steg",
+ "description": {
+ "uploadFace": "Ladda upp en bild på {{name}} som visar deras ansikte framifrån. Bilden behöver inte beskäras till bara deras ansikte."
+ }
},
"createFaceLibrary": {
"title": "Skapa samling",
"desc": "Skapa ny samling",
- "nextSteps": "För att bygga en stark grund:
Använd fliken Träna för att välja och träna på bilder för varje upptäckt person.
Fokusera på raka bilder för bästa resultat; undvik träningsbilder som fångar ansikten i vinkel.
",
+ "nextSteps": "För att bygga en stark grund:
Använd fliken Senaste Igenkänningar för att välja och träna bilder för varje detekterad person.
Fokusera på raka bilder för bästa resultat; undvik att träna bilder som fångar ansikten i en vinkel.
",
"new": "Skapa nytt ansikte"
},
"train": {
- "title": "Träna"
+ "title": "Senaste Igenkänningar",
+ "aria": "Välj senaste igenkänningar",
+ "empty": "Det finns inga ny försök till ansiktsigenkänning",
+ "titleShort": "Ny"
},
"uploadFaceImage": {
"title": "Ladda upp ansiktsbild",
"desc": "Ladda upp en bild för att skanna efter ansikte och inkludera {{pageToggle}}"
},
"selectItem": "Välj {{item}}",
- "collections": "Samlingar"
+ "collections": "Samlingar",
+ "selectFace": "Välj ansikte",
+ "deleteFaceLibrary": {
+ "title": "Ta bort namn",
+ "desc": "Är du säker på att du vill ta bort samlingen {{name}}? Detta kommer att ta bort alla associerade ansikten permanent."
+ },
+ "deleteFaceAttempts": {
+ "title": "Ta bort ansikten",
+ "desc_one": "Är du säker på att du vill ta bort {{count}} ansikte? Den här åtgärden kan inte ångras.",
+ "desc_other": "Är du säker på att du vill ta bort {{count}} ansikten? Den här åtgärden kan inte ångras."
+ },
+ "imageEntry": {
+ "dropActive": "Släpp bilden här…",
+ "dropInstructions": "Dra och släpp eller klistra in en bild här, eller klicka för att välja",
+ "maxSize": "Maxstorlek: {{size}}MB",
+ "validation": {
+ "selectImage": "Välj en bildfil."
+ }
+ },
+ "nofaces": "Inga ansikten tillgängliga",
+ "pixels": "{{area}}px",
+ "readTheDocs": "Läs dokumentationen",
+ "trainFaceAs": "Träna ansikte som:",
+ "trainFace": "Träna ansikte",
+ "toast": {
+ "success": {
+ "uploadedImage": "Bilden har laddats upp.",
+ "addFaceLibrary": "{{name}} har lagts till i ansiktsbiblioteket!",
+ "deletedFace_one": "{{count}} ansikte har raderats.",
+ "deletedFace_other": "{{count}} ansikten har raderats.",
+ "deletedName_one": "{{count}} ansikte har raderats.",
+ "deletedName_other": "{{count}} ansikten har raderats.",
+ "renamedFace": "Ansiktet har bytt namn till {{name}}",
+ "trainedFace": "Ansikte är tränant.",
+ "updatedFaceScore": "Ansikts poängen har uppdaterats."
+ },
+ "error": {
+ "uploadingImageFailed": "Misslyckades med att ladda upp bilden: {{errorMessage}}",
+ "addFaceLibraryFailed": "Misslyckades med att ange ansiktsnamn: {{errorMessage}}",
+ "deleteFaceFailed": "Misslyckades med att ta bort: {{errorMessage}}",
+ "deleteNameFailed": "Misslyckades med att ta bort namnet: {{errorMessage}}",
+ "renameFaceFailed": "Misslyckades med att byta namn på ansikte: {{errorMessage}}",
+ "trainFailed": "Misslyckades med att träna: {{errorMessage}}",
+ "updateFaceScoreFailed": "Misslyckades med att uppdatera ansiktspoäng: {{errorMessage}}"
+ }
+ },
+ "renameFace": {
+ "title": "Byt namn på ansikte",
+ "desc": "Ange ett nytt namn för {{name}}"
+ },
+ "button": {
+ "deleteFaceAttempts": "Ta bort ansikten",
+ "addFace": "Lägg till ansikte",
+ "renameFace": "Byt namn på ansikte",
+ "deleteFace": "Ta bort ansikte",
+ "uploadImage": "Ladda upp bild",
+ "reprocessFace": "Återbearbeta ansiktet"
+ }
}
diff --git a/web/public/locales/sv/views/live.json b/web/public/locales/sv/views/live.json
index ff6d2a4c2c..b0873ae862 100644
--- a/web/public/locales/sv/views/live.json
+++ b/web/public/locales/sv/views/live.json
@@ -2,8 +2,8 @@
"documentTitle": "Live - Frigate",
"documentTitle.withCamera": "{{camera}} - Live - Frigate",
"twoWayTalk": {
- "enable": "Aktivera Two Way Talk",
- "disable": "Avaktivera Two Way Talk"
+ "enable": "Aktivera tvåvägssamtal",
+ "disable": "Avaktivera tvåvägssamtal"
},
"cameraAudio": {
"disable": "Inaktivera kameraljud",
@@ -42,7 +42,15 @@
"label": "Klicka i bilden för att centrera PTZ kamera"
}
},
- "presets": "PTZ kamera förinställningar"
+ "presets": "PTZ kamera förinställningar",
+ "focus": {
+ "in": {
+ "label": "Fokusera PTZ-kameran in"
+ },
+ "out": {
+ "label": "Fokusera PTZ-kameran ut"
+ }
+ }
},
"streamStats": {
"enable": "Visa videostatistik",
@@ -65,8 +73,8 @@
"disable": "Avaktivera ljudaktivering"
},
"autotracking": {
- "enable": "Aktivera automatisk panorering",
- "disable": "Avaktivera automatisk panorering"
+ "enable": "Aktivera Autospårning",
+ "disable": "Avaktivera Autospårning"
},
"notifications": "Notifikationer",
"audio": "Ljud",
@@ -74,8 +82,8 @@
"manualRecording": {
"failedToEnd": "Misslyckades med att avsluta manuell vid behov-inspelning.",
"started": "Starta manuell inspelning vid behov.",
- "title": "Aktivera inspelning vid behov",
- "tips": "Starta en manuell händelse enligt denna kameras inställningar för inspelningslagring.",
+ "title": "Vid behov",
+ "tips": "Ladda ner en omedelbar ögonblicksbild eller starta en manuell händelse baserat på kamerans inställningar för inspelningslagring.",
"playInBackground": {
"label": "Spela upp i bakgrunden",
"desc": "Strömma vidare när spelaren inte visas."
@@ -98,7 +106,8 @@
"objectDetection": "Objektsdetektering",
"recording": "Inspelning",
"snapshots": "Ögonblicksbilder",
- "autotracking": "Autospårning"
+ "autotracking": "Autospårning",
+ "transcription": "Ljudtranskription"
},
"effectiveRetainMode": {
"modes": {
@@ -128,7 +137,7 @@
"forTime": "Pausa för: "
},
"stream": {
- "title": "Ström (Swedish also use the word Stream)",
+ "title": "Ström",
"audio": {
"tips": {
"title": "Ljud måste skickas ut från din kamera och konfigureras i go2rtc för den här strömmen.",
@@ -150,9 +159,31 @@
"playInBackground": {
"label": "Spela i bakgrunden",
"tips": "Aktivera det här alternativet för att fortsätta strömma när spelaren är dold."
+ },
+ "debug": {
+ "picker": "Strömval är inte tillgängligt i felsökningsläge. Felsökningsvyn använder alltid den ström som tilldelats detekteringsrollen."
}
},
"history": {
"label": "Visa historiskt videomaterial"
+ },
+ "transcription": {
+ "enable": "Aktivera live-ljudtranskription",
+ "disable": "Inaktivera live-ljudtranskription"
+ },
+ "noCameras": {
+ "title": "Inga kameror konfigurerade",
+ "description": "Börja med att ansluta en kamera till Frigate.",
+ "buttonText": "Lägg till kamera",
+ "restricted": {
+ "title": "Inga kameror tillgängliga",
+ "description": "Du har inte behörighet att visa några kameror i den här gruppen."
+ }
+ },
+ "snapshot": {
+ "takeSnapshot": "Ladda ner omedelbar ögonblicksbild",
+ "noVideoSource": "Ingen videokälla tillgänglig för ögonblicksbilden.",
+ "captureFailed": "Misslyckades med att ta en ögonblicksbild.",
+ "downloadStarted": "Nedladdning av ögonblicksbild har startat."
}
}
diff --git a/web/public/locales/sv/views/recording.json b/web/public/locales/sv/views/recording.json
index 6e9e231a3e..b4bfaf2ec9 100644
--- a/web/public/locales/sv/views/recording.json
+++ b/web/public/locales/sv/views/recording.json
@@ -1,6 +1,6 @@
{
"export": "Export",
- "filter": "Filter",
+ "filter": "Filtrera",
"calendar": "Kalender",
"filters": "Filter",
"toast": {
diff --git a/web/public/locales/sv/views/search.json b/web/public/locales/sv/views/search.json
index 5fd24ab76d..2e9f4e0072 100644
--- a/web/public/locales/sv/views/search.json
+++ b/web/public/locales/sv/views/search.json
@@ -43,7 +43,8 @@
"has_clip": "Har klipp",
"has_snapshot": "Har Ögonblicksbild",
"labels": "Etiketter",
- "max_score": "Högsta Poäng"
+ "max_score": "Högsta Poäng",
+ "attributes": "Attribut"
},
"searchType": {
"thumbnail": "Miniatyrbild",
diff --git a/web/public/locales/sv/views/settings.json b/web/public/locales/sv/views/settings.json
index df1de30e0c..2c054001cb 100644
--- a/web/public/locales/sv/views/settings.json
+++ b/web/public/locales/sv/views/settings.json
@@ -2,26 +2,38 @@
"documentTitle": {
"camera": "Kamerainställningar - Frigate",
"default": "Inställningar - Frigate",
- "general": "Allmänna inställningar - Frigate",
+ "general": "Användargränssnitt Inställningar - Frigate",
"authentication": "Autentiseringsinställningar - Frigate",
"classification": "Klassificeringsinställningar - Frigate",
"masksAndZones": "Maskerings- och zonverktyg - Frigate",
"enrichments": "Förbättringsinställningar - Frigate",
"frigatePlus": "Frigate+ Inställningar - Frigate",
- "notifications": "Notifikations Inställningar - Frigate"
+ "notifications": "Notifikations Inställningar - Frigate",
+ "motionTuner": "Rörelse inställning - Frigate",
+ "object": "Felsöka - Frigate",
+ "cameraManagement": "Hantera kameror - Frigate",
+ "cameraReview": "Kameragranskningsinställningar - Frigate"
},
"general": {
- "title": "Allmänna Inställningar",
+ "title": "UI inställningar",
"liveDashboard": {
"automaticLiveView": {
"desc": "Automatiskt byte till kamera där aktivitet registreras. Inaktivering av denna inställning gör att en statisk bild visas i Live Panelen som uppdateras en gång per minut.",
"label": "Automatisk Live Visning"
},
"playAlertVideos": {
- "desc": "Som standard visas varningar på Live Panelen som små loopande klipp. Inaktivera denna inställning för att bara visa en statisk bild av nya varningar på denna enhet/webbläsare.",
- "label": "Spela Varnings Videos"
+ "desc": "Som standard visas varningar på Live panelen som små loopande klipp. Inaktivera denna inställning för att bara visa en statisk bild av nya varningar på denna enhet/webbläsare.",
+ "label": "Spela upp Varnings videor"
},
- "title": "Live Panel"
+ "title": "Live Panel",
+ "displayCameraNames": {
+ "label": "Visa alltid kameranamn",
+ "desc": "Visa alltid kameranamnen i ett chip i instrumentpanelen för livevisning med flera kameror."
+ },
+ "liveFallbackTimeout": {
+ "label": "Live spelare reserv timeout",
+ "desc": "När en kameras högkvalitativa liveström inte är tillgänglig, återgå till lågbandbreddsläge efter så här många sekunder. Standard: 3."
+ }
},
"storedLayouts": {
"title": "Sparade Layouter",
@@ -44,7 +56,8 @@
"firstWeekday": {
"sunday": "Söndag",
"monday": "Måndag",
- "label": "Första Veckodag"
+ "label": "Första Veckodag",
+ "desc": "Den dag då veckorna i översynskalendern börjar."
},
"title": "Kalender"
},
@@ -66,23 +79,1160 @@
"enrichments": {
"unsavedChanges": "Osparade Förbättringsinställningar",
"birdClassification": {
- "title": "Fågel klassificering"
+ "title": "Fågel klassificering",
+ "desc": "Fågelklassificering identifierar kända fåglar med hjälp av en kvantiserad Tensorflow-modell. När en känd fågel känns igen läggs dess vanliga namn till som en underetikett. Denna information inkluderas i användargränssnittet, filter och i aviseringar."
},
- "title": "Förbättringsinställningar"
+ "title": "Förbättringsinställningar",
+ "semanticSearch": {
+ "title": "Semantisk sökning",
+ "desc": "Semantisk sökning i Frigate låter dig hitta spårade objekt i dina granskningsobjekt med hjälp av antingen själva bilden, en användardefinierad textbeskrivning eller en automatiskt genererad.",
+ "readTheDocumentation": "Läs dokumentationen",
+ "reindexNow": {
+ "label": "Omindexera nu",
+ "desc": "Omindexering kommer att generera inbäddningar för alla spårade objekt. Den här processen körs i bakgrunden och kan maximera din CPU och ta en hel del tid beroende på antalet spårade objekt du har.",
+ "confirmTitle": "Bekräfta omindexering",
+ "confirmDesc": "Är du säker på att du vill omindexera alla spårade objektinbäddningar? Den här processen körs i bakgrunden men den kan maximera din processor och ta en hel del tid. Du kan se förloppet på Utforska-sidan.",
+ "confirmButton": "Omindexera",
+ "success": "Omindexeringen har startat.",
+ "alreadyInProgress": "Omindexering pågår redan.",
+ "error": "Misslyckades med att starta omindexering: {{errorMessage}}"
+ },
+ "modelSize": {
+ "label": "Modellstorlek",
+ "desc": "Storleken på modellen som används för semantiska sökinbäddningar.",
+ "small": {
+ "title": "små",
+ "desc": "Att använda small använder en kvantiserad version av modellen som använder mindre RAM och körs snabbare på CPU med en mycket försumbar skillnad i inbäddningskvalitet."
+ },
+ "large": {
+ "title": "stor",
+ "desc": "Att använda large använder hela Jina-modellen och körs automatiskt på GPU:n om tillämpligt."
+ }
+ }
+ },
+ "faceRecognition": {
+ "desc": "Ansiktsigenkänning gör att personer kan tilldelas namn och när deras ansikte känns igen kommer Frigate att tilldela personens namn som en underetikett. Denna information finns i användargränssnittet, filter och i aviseringar.",
+ "readTheDocumentation": "Läs dokumentationen",
+ "modelSize": {
+ "label": "Modellstorlek",
+ "desc": "Storleken på modellen som används för ansiktsigenkänning.",
+ "small": {
+ "title": "små",
+ "desc": "Att använda small använder en FaceNet-modell för ansiktsinbäddning som körs effektivt på de flesta processorer."
+ },
+ "large": {
+ "title": "stor",
+ "desc": "Att använda large använder en ArcFace-modell för ansiktsinbäddning och körs automatiskt på GPU:n om tillämpligt."
+ }
+ },
+ "title": "Ansikts igenkänning"
+ },
+ "licensePlateRecognition": {
+ "title": "Nummerplåt Erkännande",
+ "desc": "Frigate kan känna igen nummerplåt på fordon och automatiskt lägga till de upptäckta tecknen i fältet recognized_license_plate eller ett känt namn som en underetikett till objekt av typen bil. Ett vanligt användningsfall kan vara att läsa nummerplåtor på bilar som kör in på en uppfart eller bilar som passerar på en gata.",
+ "readTheDocumentation": "Läs dokumentationen"
+ },
+ "restart_required": "Omstart krävs (berikningsinställningar har ändrats)",
+ "toast": {
+ "success": "Inställningarna för berikning har sparats. Starta om Frigate för att tillämpa dina ändringar.",
+ "error": "Kunde inte spara konfigurationsändringarna: {{errorMessage}}"
+ }
},
"menu": {
- "ui": "UI",
+ "ui": "Användargränssnitt",
"cameras": "Kamera Inställningar",
"masksAndZones": "Masker / Områden",
"users": "Användare",
"notifications": "Notifikationer",
"frigateplus": "Frigate+",
- "enrichments": "Förbättringar"
+ "enrichments": "Förbättringar",
+ "motionTuner": "Rörelsemottagare",
+ "debug": "Felsök",
+ "triggers": "Utlösare",
+ "roles": "Roller",
+ "cameraManagement": "Hantering",
+ "cameraReview": "Granska"
},
"dialog": {
"unsavedChanges": {
"title": "Du har osparade ändringar.",
"desc": "Vill du spara dina ändringar innan du fortsätter?"
}
+ },
+ "camera": {
+ "title": "Kamera inställningar",
+ "streams": {
+ "title": "Videoströmmar",
+ "desc": "Inaktivera tillfälligt en kamera tills Frigate startar om. Om du inaktiverar en kamera helt stoppas Frigates bearbetning av kamerans strömmar. Detektering, inspelning och felsökning kommer inte att vara tillgängliga. Obs! Detta inaktiverar inte go2rtc-återströmmar."
+ },
+ "object_descriptions": {
+ "title": "Generativa AI-objektbeskrivningar",
+ "desc": "Aktivera/inaktivera tillfälligt generativa AI-objektbeskrivningar för den här kameran. När den är inaktiverad kommer AI-genererade beskrivningar inte att begäras för spårade objekt på den här kameran."
+ },
+ "review_descriptions": {
+ "title": "Beskrivningar av generativa AI-granskningar",
+ "desc": "Aktivera/inaktivera tillfälligt genererade AI-granskningsbeskrivningar för den här kameran. När det är inaktiverat kommer AI-genererade beskrivningar inte att begäras för granskningsobjekt på den här kameran."
+ },
+ "review": {
+ "title": "Recensera",
+ "desc": "Tillfälligt Aktivera/avaktivera varningar och detekteringar för den här kameran tills Frigate startar om. När den är avaktiverad genereras inga nya granskningsobjekt. ",
+ "alerts": "Aviseringar ",
+ "detections": "Detektioner "
+ },
+ "reviewClassification": {
+ "title": "Granska klassificering",
+ "desc": "Frigate kategoriserar granskningsobjekt som varningar och detekteringar. Som standard betraktas alla person- och bil-objekt som varningar. Du kan förfina kategoriseringen av dina granskningsobjekt genom att konfigurera obligatoriska zoner för dem.",
+ "noDefinedZones": "Inga zoner är definierade för den här kameran.",
+ "objectAlertsTips": "Alla {{alertsLabels}}-objekt på {{cameraName}} kommer att visas som varningar.",
+ "zoneObjectAlertsTips": "Alla {{alertsLabels}} objekt som upptäcks i {{zone}} på {{cameraName}} kommer att visas som varningar.",
+ "objectDetectionsTips": "Alla {{detectionsLabels}}-objekt som inte kategoriseras på {{cameraName}} kommer att visas som detektioner oavsett vilken zon de befinner sig i.",
+ "zoneObjectDetectionsTips": {
+ "text": "Alla {{detectionsLabels}}-objekt som inte kategoriseras i {{zone}} på {{cameraName}} kommer att visas som detektioner.",
+ "notSelectDetections": "Alla {{detectionsLabels}} objekt som upptäckts i {{zone}} på {{cameraName}} och som inte kategoriserats som varningar kommer att visas som detekteringar oavsett vilken zon de befinner sig i.",
+ "regardlessOfZoneObjectDetectionsTips": "Alla {{detectionsLabels}}-objekt som inte kategoriseras på {{cameraName}} kommer att visas som detektioner oavsett vilken zon de befinner sig i."
+ },
+ "unsavedChanges": "Osparade inställningar för granskningsklassificering för {{camera}}",
+ "selectAlertsZones": "Välj zoner för aviseringar",
+ "selectDetectionsZones": "Välj zoner för detektioner",
+ "limitDetections": "Begränsa detektioner till specifika zoner",
+ "toast": {
+ "success": "Konfigurationen för granskning av klassificering har sparats. Starta om Frigate för att tillämpa ändringarna."
+ }
+ },
+ "addCamera": "Lägg till ny kamera",
+ "editCamera": "Redigera kamera:",
+ "selectCamera": "Välj en kamera",
+ "backToSettings": "Tillbaka till kamera inställningar",
+ "cameraConfig": {
+ "add": "Lägg till kamera",
+ "edit": "Redigera kamera",
+ "description": "Konfigurera kamerainställningar inklusive strömingångar och roller.",
+ "name": "Kamera namn",
+ "nameRequired": "Kamera namn krävs",
+ "nameInvalid": "Kamera namnet får endast innehålla bokstäver, siffror, understreck, eller bindestreck",
+ "namePlaceholder": "t.ex. fram_dörr",
+ "enabled": "Aktiverad",
+ "ffmpeg": {
+ "inputs": "Ingångsströmmar",
+ "path": "Strömväg",
+ "pathRequired": "Strömningsväg krävs",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Roller",
+ "rolesRequired": "Minst en roll krävs",
+ "rolesUnique": "Varje roll (ljud, detektering, inspelning) kan bara tilldelas en ström",
+ "addInput": "Lägg till inmatningsström",
+ "removeInput": "Ta bort inmatningsström",
+ "inputsRequired": "Minst en indataström krävs"
+ },
+ "toast": {
+ "success": "Kamera {{cameraName}} sparades"
+ },
+ "nameLength": "Namnet på kameran måste vara kortare än 24 tecken."
+ }
+ },
+ "masksAndZones": {
+ "filter": {
+ "all": "Alla masker och zoner"
+ },
+ "restart_required": "Omstart krävs (masker/zoner har ändrats)",
+ "toast": {
+ "success": {
+ "copyCoordinates": "Kopierade koordinaterna för {{polyName}} till urklipp."
+ },
+ "error": {
+ "copyCoordinatesFailed": "Kunde inte kopiera koordinaterna till urklipp."
+ }
+ },
+ "motionMaskLabel": "Rörelsemask {{number}}",
+ "objectMaskLabel": "Objektmask {{number}} ({{label}})",
+ "form": {
+ "zoneName": {
+ "error": {
+ "mustBeAtLeastTwoCharacters": "Zonnamnet måste vara minst 2 tecken långt.",
+ "mustNotBeSameWithCamera": "Zonnamnet får inte vara detsamma som kameranamnet.",
+ "alreadyExists": "En zon med detta namn finns redan för den här kameran.",
+ "mustNotContainPeriod": "Zonnamnet får inte innehålla punkter.",
+ "hasIllegalCharacter": "Zonnamnet innehåller ogiltiga tecken.",
+ "mustHaveAtLeastOneLetter": "Zonnamnet måste ha minst en bokstav."
+ }
+ },
+ "distance": {
+ "error": {
+ "text": "Avståndet måste vara större än eller lika med 0,1.",
+ "mustBeFilled": "Alla avståndsfält måste fyllas i för att hastighetsuppskattning ska kunna användas."
+ }
+ },
+ "inertia": {
+ "error": {
+ "mustBeAboveZero": "Trögheten måste vara över 0."
+ }
+ },
+ "loiteringTime": {
+ "error": {
+ "mustBeGreaterOrEqualZero": "Uppehållstiden måste vara större än eller lika med 0."
+ }
+ },
+ "speed": {
+ "error": {
+ "mustBeGreaterOrEqualTo": "Gränsvärdet för hastigheten måste vara större eller lika med 0.1."
+ }
+ },
+ "polygonDrawing": {
+ "removeLastPoint": "Ta bort senaste punkten",
+ "reset": {
+ "label": "Rensa alla punkter"
+ },
+ "snapPoints": {
+ "true": "Fäst punkter",
+ "false": "Fäst inte punkter"
+ },
+ "delete": {
+ "title": "Bekräfta borttagning",
+ "desc": "Är du säker på att du vill ta bort {{type}} {{name}}?",
+ "success": "{{name}} har raderats."
+ },
+ "error": {
+ "mustBeFinished": "Polygonritningen måste vara klar innan du sparar."
+ }
+ }
+ },
+ "zones": {
+ "label": "Zoner",
+ "documentTitle": "Redigera zon - Frigate",
+ "desc": {
+ "documentation": "Dokumentation",
+ "title": "Zoner låter dig definiera ett specifikt område av bilden så att du kan avgöra om ett objekt befinner sig inom ett visst område eller inte."
+ },
+ "add": "Lägg till zon",
+ "edit": "Redigera zon",
+ "name": {
+ "title": "Namn",
+ "inputPlaceHolder": "Ange ett namn…",
+ "tips": "Namnet måste vara minst 2 tecken långt, måste innehålla minst en bokstav och får inte vara namnet på en kamera eller någon annan zon på den här kameran."
+ },
+ "inertia": {
+ "title": "Momentum",
+ "desc": "Anger hur många bildrutor ett objekt måste finnas i en zon innan de räknas som en del av zonen. Standard: 3"
+ },
+ "objects": {
+ "title": "Objekt",
+ "desc": "Lista över objekt som gäller för den här zonen."
+ },
+ "allObjects": "Alla objekt",
+ "point_one": "{{count}} poäng",
+ "point_other": "{{count}} poäng",
+ "clickDrawPolygon": "Klicka för att rita en polygon på bilden.",
+ "loiteringTime": {
+ "title": "Tid någon hänger omkring",
+ "desc": "Ställer in en minsta tid i sekunder som objektet måste vara i zonen för att det ska aktiveras. Standard: 0"
+ },
+ "speedEstimation": {
+ "title": "Hastighetsuppskattning",
+ "desc": "Aktivera hastighetsuppskattning för objekt i den här zonen. Zonen måste ha exakt fyra punkter.",
+ "lineADistance": "Avstånd till linje A ({{unit}})",
+ "lineBDistance": "Avstånd till linje B ({{unit}})",
+ "lineCDistance": "Avstånd till linje C ({{unit}})",
+ "lineDDistance": "Avstånd till linje D ({{unit}})"
+ },
+ "speedThreshold": {
+ "title": "Hastighetsgräns ({{unit}})",
+ "desc": "Anger en lägsta hastighet för objekt som ska beaktas i denna zon.",
+ "toast": {
+ "error": {
+ "pointLengthError": "Hastighetsuppskattning har inaktiverats för den här zonen. Zoner med hastighetsuppskattning måste ha exakt 4 punkter.",
+ "loiteringTimeError": "Zoner med uppehållstider större än 0 bör inte användas vid hastighetsuppskattning."
+ }
+ }
+ },
+ "toast": {
+ "success": "Zonen ({{zoneName}}) har sparats."
+ }
+ },
+ "motionMasks": {
+ "label": "Rörelsemask",
+ "documentTitle": "Redigera rörelsemask - Frigate",
+ "desc": {
+ "title": "Rörelsemasker används för att förhindra att oönskade typer av rörelser utlöser detektering. Övermaskering gör det svårare att spåra objekt.",
+ "documentation": "Dokumentation"
+ },
+ "add": "Ny rörelsemask",
+ "edit": "Redigera rörelsemask",
+ "context": {
+ "title": "Rörelsemasker används för att förhindra att oönskade typer av rörelser utlöser detektering (till exempel: trädgrenar, kameratidsstämplar). Rörelsemasker bör användas mycket sparsamt, övermaskering gör det svårare att spåra objekt."
+ },
+ "point_one": "{{count}} poäng",
+ "point_other": "{{count}} poäng",
+ "clickDrawPolygon": "Klicka för att rita en polygon på bilden.",
+ "polygonAreaTooLarge": {
+ "title": "Rörelsemasken täcker {{polygonArea}}% av kamerabilden. Stora rörelsemasker rekommenderas inte.",
+ "tips": "Rörelsemasker förhindrar inte att objekt upptäcks. Du bör använda en obligatorisk zon istället."
+ },
+ "toast": {
+ "success": {
+ "title": "{{polygonName}} har sparats.",
+ "noName": "Rörelsemasken har sparats."
+ }
+ }
+ },
+ "objectMasks": {
+ "label": "Objektmasker",
+ "documentTitle": "Redigera objektmask - Frigate",
+ "point_one": "{{count}} poäng",
+ "point_other": "{{count}} poäng",
+ "desc": {
+ "title": "Objektfiltermasker används för att filtrera bort falska positiva resultat för en given objekttyp baserat på plats.",
+ "documentation": "Dokumentation"
+ },
+ "add": "Lägg till objektmask",
+ "edit": "Redigera objektmask",
+ "context": "Objektfiltermasker används för att filtrera bort falska positiva resultat för en given objekttyp baserat på plats.",
+ "clickDrawPolygon": "Klicka för att rita en polygon på bilden.",
+ "objects": {
+ "title": "Objekt",
+ "desc": "Objekttypen som gäller för den här objektmasken.",
+ "allObjectTypes": "Alla objekttyper"
+ },
+ "toast": {
+ "success": {
+ "title": "{{polygonName}} har sparats.",
+ "noName": "Objektmasken har sparats."
+ }
+ }
+ }
+ },
+ "motionDetectionTuner": {
+ "title": "Rörelsedetekteringstuner",
+ "unsavedChanges": "Osparade ändringar i Motion Tuner ({{camera}})",
+ "desc": {
+ "title": "Frigate använder rörelsedetektering som en första kontroll för att se om det händer något i bilden som är värt att kontrollera med objektdetektering.",
+ "documentation": "Läs guiden för rörelsejustering"
+ },
+ "Threshold": {
+ "title": "Tröskel",
+ "desc": "Tröskelvärdet anger hur mycket förändring i en pixels luminans som krävs för att betraktas som rörelse. Standard: 30"
+ },
+ "contourArea": {
+ "title": "Konturområde",
+ "desc": "Konturareans värde används för att avgöra vilka grupper av ändrade pixlar som kvalificeras som rörelse. Standard: 10"
+ },
+ "improveContrast": {
+ "title": "Förbättra kontrasten",
+ "desc": "Förbättra kontrasten för mörkare scener. Standard: PÅ"
+ },
+ "toast": {
+ "success": "Rörelseinställningarna har sparats."
+ }
+ },
+ "debug": {
+ "title": "Felsök",
+ "detectorDesc": "Fregate använder dina detektorer ({{detectors}}) för att upptäcka objekt i din kameras videoström.",
+ "desc": "Felsökningsvyn visar en realtidsvy av spårade objekt och deras statistik. Objektlistan visar en tidsfördröjd sammanfattning av upptäckta objekt.",
+ "openCameraWebUI": "Öppna {{camera}}s webbgränssnitt",
+ "debugging": "Felsökning",
+ "objectList": "Objektlista",
+ "noObjects": "Inga föremål",
+ "audio": {
+ "title": "Ljud",
+ "noAudioDetections": "Inga ljuddetekteringar",
+ "score": "betyg",
+ "currentRMS": "Nuvarande RMS",
+ "currentdbFS": "Nuvarande dbFS"
+ },
+ "boundingBoxes": {
+ "title": "Avgränsande rutor",
+ "desc": "Visa avgränsningsrutor runt spårade objekt",
+ "colors": {
+ "label": "Färger för objektgränser",
+ "info": "
Vid uppstart tilldelas olika färger till varje objektetikett
En mörkblå tunn linje indikerar att objektet inte detekteras vid denna aktuella tidpunkt
En grå tunn linje indikerar att objektet detekteras som stillastående
En tjock linje indikerar att objektet är föremål för autospårning (när det är aktiverat)
"
+ }
+ },
+ "timestamp": {
+ "title": "Tidsstämpel",
+ "desc": "Lägg en tidsstämpel över bilden"
+ },
+ "zones": {
+ "title": "Zoner",
+ "desc": "Visa en översikt över alla definierade zoner"
+ },
+ "mask": {
+ "title": "Rörelsemasker",
+ "desc": "Visa rörelsemaskpolygoner"
+ },
+ "motion": {
+ "title": "Rörelseboxar",
+ "desc": "Visa rutor runt områden där rörelse detekteras",
+ "tips": "
Rörelserutor
Röda rutor kommer att läggas över områden i bilden där rörelse för närvarande detekteras
"
+ },
+ "regions": {
+ "title": "Regioner",
+ "desc": "Visa en ruta med det intresseområde som skickats till objektdetektorn",
+ "tips": "
Regionsrutor
Ljusgröna rutor kommer att läggas över intressanta områden i bilden som skickas till objektdetektorn.
Linjer och cirklar indikerar viktiga punkter som det spårade objektet har flyttat under sin livscykel.
"
+ },
+ "objectShapeFilterDrawing": {
+ "title": "Ritning av objektformfilter",
+ "desc": "Rita en rektangel på bilden för att visa detaljer om area och förhållande",
+ "tips": "Aktivera det här alternativet för att rita en rektangel på kamerabilden för att visa dess area och förhållande. Dessa värden kan sedan användas för att ställa in parametrar för objektformsfilter i din konfiguration.",
+ "score": "Betyg",
+ "ratio": "Förhållandet",
+ "area": "Område"
+ }
+ },
+ "users": {
+ "title": "Användare",
+ "management": {
+ "title": "Användarhantering",
+ "desc": "Hantera användarkonton för denna Frigate-instans."
+ },
+ "addUser": "Lägg till användare",
+ "updatePassword": "Återställ lösenord",
+ "toast": {
+ "success": {
+ "createUser": "Användaren {{user}} har skapats",
+ "deleteUser": "Användaren {{user}} har raderats",
+ "updatePassword": "Lösenordet har uppdaterats.",
+ "roleUpdated": "Rollen uppdaterades för {{user}}"
+ },
+ "error": {
+ "setPasswordFailed": "Misslyckades med att spara lösenordet: {{errorMessage}}",
+ "createUserFailed": "Misslyckades med att skapa användare: {{errorMessage}}",
+ "deleteUserFailed": "Misslyckades med att ta bort användaren: {{errorMessage}}",
+ "roleUpdateFailed": "Misslyckades med att uppdatera rollen: {{errorMessage}}"
+ }
+ },
+ "table": {
+ "username": "Användarnamn",
+ "actions": "Åtgärder",
+ "role": "Roll",
+ "noUsers": "Inga användare hittades.",
+ "changeRole": "Ändra användarroll",
+ "password": "Återställ Lösenord",
+ "deleteUser": "Ta bort användare"
+ },
+ "dialog": {
+ "form": {
+ "user": {
+ "title": "Användarnamn",
+ "desc": "Endast bokstäver, siffror, punkter och understreck är tillåtna.",
+ "placeholder": "Ange användarnamn"
+ },
+ "password": {
+ "title": "Lösenord",
+ "strength": {
+ "title": "Lösenordsstyrka: ",
+ "weak": "Svag",
+ "medium": "Mellanstark",
+ "strong": "Stark",
+ "veryStrong": "Mycket stark"
+ },
+ "match": "Lösenorden matchar",
+ "notMatch": "Lösenorden matchar inte",
+ "placeholder": "Ange lösenord",
+ "confirm": {
+ "title": "Bekräfta lösenord",
+ "placeholder": "Bekräfta lösenord"
+ },
+ "show": "Visa lösenord",
+ "hide": "Dölj lösenord",
+ "requirements": {
+ "title": "Lösenordskrav:",
+ "length": "Minst 8 tecken",
+ "uppercase": "Minst en stor bokstav",
+ "digit": "Minst en siffra",
+ "special": "Minst ett specialtecken (!@#$%^&*(),.?\":{}|<>)"
+ }
+ },
+ "newPassword": {
+ "title": "Nytt lösenord",
+ "placeholder": "Ange nytt lösenord",
+ "confirm": {
+ "placeholder": "Ange nytt lösenord igen"
+ }
+ },
+ "usernameIsRequired": "Användarnamn krävs",
+ "passwordIsRequired": "Lösenord krävs",
+ "currentPassword": {
+ "title": "Nuvarande lösenord",
+ "placeholder": "Ange ditt nuvarande lösenord"
+ }
+ },
+ "createUser": {
+ "title": "Skapa ny användare",
+ "desc": "Lägg till ett nytt användarkonto och ange en roll för åtkomst till områden i Frigate gränssnittet.",
+ "usernameOnlyInclude": "Användarnamnet får endast innehålla bokstäver, siffror, . eller _",
+ "confirmPassword": "Vänligen bekräfta ditt lösenord"
+ },
+ "deleteUser": {
+ "title": "Ta bort användare",
+ "desc": "Den här åtgärden kan inte ångras. Detta kommer att permanent radera användarkontot och all tillhörande data.",
+ "warn": "Är du säker på att du vill ta bort {{username}}?"
+ },
+ "passwordSetting": {
+ "cannotBeEmpty": "Lösenordet får inte vara tomt",
+ "doNotMatch": "Lösenorden matchar inte",
+ "updatePassword": "Uppdatera lösenord för {{username}}",
+ "setPassword": "Ange lösenord",
+ "desc": "Skapa ett starkt lösenord för att säkra det här kontot.",
+ "currentPasswordRequired": "Nuvarande lösenord krävs",
+ "incorrectCurrentPassword": "Nuvarande lösenord är felaktigt",
+ "passwordVerificationFailed": "Misslyckades med att verifiera lösenordet",
+ "multiDeviceWarning": "Alla andra enheter där du är inloggad måste logga in igen inom {{refresh_time}}.",
+ "multiDeviceAdmin": "Du kan också tvinga alla användare att autentisera om sig omedelbart genom att rotera din JWT-hemlighet."
+ },
+ "changeRole": {
+ "title": "Ändra användarroll",
+ "select": "Välj en roll",
+ "desc": "Uppdatera behörigheter för {{username}}",
+ "roleInfo": {
+ "intro": "Välj lämplig roll för den här användaren:",
+ "admin": "Administratör",
+ "adminDesc": "Full åtkomst till alla funktioner.",
+ "viewer": "Åskådare",
+ "viewerDesc": "Begränsat till Live-dashboards, Review, Explore, och Exports bara.",
+ "customDesc": "Anpassad roll med specifik kameraåtkomst."
+ }
+ }
+ }
+ },
+ "notification": {
+ "title": "Aviseringar",
+ "notificationSettings": {
+ "title": "Aviseringsinställningar",
+ "desc": "Frigate kan skicka push-notiser till din enhet när den körs i webbläsare eller installerad som PWA."
+ },
+ "globalSettings": {
+ "title": "Övergripande inställningar",
+ "desc": "Stäng tillfälligt av aviseringar för specifika kameror på alla registrerade enheter."
+ },
+ "email": {
+ "title": "E-post",
+ "placeholder": "t.ex. exempel@epost.se",
+ "desc": "En giltig e-postadress krävs och kommer att användas för att meddela dig om det uppstår problem med push-tjänsten."
+ },
+ "cameras": {
+ "title": "Kameror",
+ "noCameras": "Inga kameror tillgängliga",
+ "desc": "Välj vilka kameror som notifikationer ska aktiveras för."
+ },
+ "unregisterDevice": "Avregistrera enheten",
+ "sendTestNotification": "Skicka testnotis",
+ "active": "Aviseringar är aktiva",
+ "notificationUnavailable": {
+ "title": "Meddelanden otillgängliga",
+ "desc": "Webb push-meddelanden kräver en säker kontext (https://…). Detta är en begränsning i webbläsaren. Få säker åtkomst till Frigate för att använda meddelanden."
+ },
+ "deviceSpecific": "Enhetsspecifika inställningar",
+ "registerDevice": "Registrera den här enheten",
+ "unsavedRegistrations": "Osparade aviseringsregistreringar",
+ "unsavedChanges": "Osparade ändringar till aviseringar",
+ "suspended": "Aviseringar avstängda {{time}}",
+ "suspendTime": {
+ "suspend": "Pausa",
+ "5minutes": "Pausa i 5 minuter",
+ "10minutes": "Pausa i 10 minuter",
+ "30minutes": "Pausa i 30 minuter",
+ "1hour": "Pausa i 1 timme",
+ "12hours": "Pausa i 12 timmar",
+ "24hours": "Pausa i 24 timmar",
+ "untilRestart": "Pausa tills omstart"
+ },
+ "cancelSuspension": "Avbryt pausning",
+ "toast": {
+ "success": {
+ "registered": "Registreringen för aviseringar har lyckats. Omstart av Frigate krävs innan några aviseringar (inklusive en testavisering) kan skickas.",
+ "settingSaved": "Aviseringsinställningarna har sparats."
+ },
+ "error": {
+ "registerFailed": "Det gick inte att spara aviseringsregistreringen."
+ }
+ }
+ },
+ "roles": {
+ "addRole": "Lägg till roll",
+ "table": {
+ "role": "Roll",
+ "cameras": "Kameror",
+ "noRoles": "Inga anpassade roller hittades.",
+ "editCameras": "Redigera kameror",
+ "deleteRole": "Radera roll",
+ "actions": "Åtgärder"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Roll {{role}} skapad",
+ "updateCameras": "Kameror uppdaterade för roll {{role}}",
+ "deleteRole": "Roll {{role}} raderad",
+ "userRolesUpdated_one": "{{count}} användare som tilldelats den här rollen har uppdaterats till 'tittare', vilket har åtkomst till alla kameror.",
+ "userRolesUpdated_other": "{{count}} användare som tilldelats den här rollen har uppdaterats till 'tittare', vilket har åtkomst till alla kameror."
+ },
+ "error": {
+ "createRoleFailed": "Misslyckades att skapa roll: {{errorMessage}}",
+ "updateCamerasFailed": "Misslyckades att uppdatera kameror: {{errorMessage}}",
+ "deleteRoleFailed": "Misslyckades att radera roll: {{errorMessage}}",
+ "userUpdateFailed": "Misslyckades att uppdatera användar-roller: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Skapa ny roll",
+ "desc": "Skapa en ny roll och ange kamera åtkomstbehörigheter."
+ },
+ "deleteRole": {
+ "title": "Radera roll",
+ "deleting": "Raderar...",
+ "desc": "Den här åtgärden kan inte ångras. Detta kommer att ta bort rollen permanent och tilldela alla användare med rollen 'tittare', vilket ger tittaren åtkomst till alla kameror.",
+ "warn": "Är du säker på att du vill ta bort {{role}}?"
+ },
+ "form": {
+ "role": {
+ "placeholder": "Ange rollens namn",
+ "desc": "Enbart bokstäver, siffror, punkter och understreck tillåtna.",
+ "roleIsRequired": "Rollens namn krävs",
+ "roleExists": "En roll med detta namn finns redan.",
+ "title": "Rollnamn",
+ "roleOnlyInclude": "Rollnamnet får endast innehålla bokstäver, siffror, . eller _"
+ },
+ "cameras": {
+ "title": "Kameror",
+ "required": "Minst en kamera måste väljas.",
+ "desc": "Välj kameror som den här rollen har åtkomst till. Minst en kamera krävs."
+ }
+ },
+ "editCameras": {
+ "title": "Redigera rollkameror",
+ "desc": "Uppdatera kameraåtkomst för rollen {{role}}."
+ }
+ },
+ "management": {
+ "title": "Hantering av tittarroller",
+ "desc": "Hantera anpassade tittarroller och deras kameraåtkomstbehörigheter för den här Frigate instansen."
+ }
+ },
+ "frigatePlus": {
+ "title": "Frigate+ Inställningar",
+ "apiKey": {
+ "notValidated": "Frigate+ API-nyckeln upptäcktes inte eller validerades inte",
+ "desc": "Frigate+ API-nyckeln möjliggör integration med Frigate+-tjänsten.",
+ "plusLink": "Läs mer om Frigate+",
+ "title": "Frigate+ API-nyckel",
+ "validated": "Frigate+ API-nyckeln har upptäckts och validerats"
+ },
+ "snapshotConfig": {
+ "title": "Ögonblicksbild konfiguration",
+ "desc": "Att skicka till Frigate+ kräver att både snapshots och clean_copy snapshots är aktiverade i din konfiguration.",
+ "cleanCopyWarning": "Vissa kameror har aktiverade ögonblicksbilder men har ren kopia inaktiverad. Du måste aktivera clean_copy i din ögonblicksbild konfiguration för att kunna skicka bilder från dessa kameror till Frigate+.",
+ "table": {
+ "camera": "Kamera",
+ "snapshots": "Ögonblicksbilder",
+ "cleanCopySnapshots": "clean_copy Ögonblicksbilder"
+ }
+ },
+ "modelInfo": {
+ "title": "Modellinformation",
+ "modelType": "Modelltyp",
+ "trainDate": "Träningsdatum",
+ "baseModel": "Basmodell",
+ "plusModelType": {
+ "baseModel": "Basmodell",
+ "userModel": "Finjusterad"
+ },
+ "supportedDetectors": "Detektorer som stöds",
+ "cameras": "Kameror",
+ "loading": "Laddar modellinformation…",
+ "error": "Misslyckades med att ladda modellinformationen",
+ "availableModels": "Tillgängliga modeller",
+ "loadingAvailableModels": "Laddar tillgängliga modeller…",
+ "modelSelect": "Dina tillgängliga modeller på Frigate+ kan väljas här. Observera att endast modeller som är kompatibla med din nuvarande detektorkonfiguration kan väljas."
+ },
+ "unsavedChanges": "Osparade ändringar av inställningar för Frigate+",
+ "restart_required": "Omstart krävs (Frigate+ modell ändrad)",
+ "toast": {
+ "success": "Inställningarna för Frigate+ har sparats. Starta om Frigate för att tillämpa ändringarna.",
+ "error": "Kunde inte spara konfigurationsändringarna: {{errorMessage}}"
+ }
+ },
+ "triggers": {
+ "documentTitle": "Utlösare",
+ "management": {
+ "title": "Utlösare",
+ "desc": "Hantera utlösare för {{camera}}. Använd miniatyrtypen för att utlösa liknande miniatyrer som ditt valda spårade objekt och beskrivningstypen för att utlösa liknande beskrivningar av text du anger."
+ },
+ "addTrigger": "Lägg till utlösare",
+ "table": {
+ "name": "Namn",
+ "type": "Typ",
+ "content": "Innehåll",
+ "threshold": "Tröskel",
+ "actions": "Åtgärder",
+ "noTriggers": "Inga utlösare konfigurerade för den här kameran.",
+ "edit": "Redigera",
+ "deleteTrigger": "Ta bort utlösare",
+ "lastTriggered": "Senast utlöst"
+ },
+ "type": {
+ "thumbnail": "Miniatyrbild",
+ "description": "Beskrivning"
+ },
+ "actions": {
+ "notification": "Skicka avisering",
+ "alert": "Markera som Varning",
+ "sub_label": "Lägg till underetikett",
+ "attribute": "Lägg till attribut"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Skapa utlösare",
+ "desc": "Skapa en utlösare för kamera {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Redigera utlösare",
+ "desc": "Redigera inställningarna för utlösare på kameran {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Ta bort utlösare",
+ "desc": "Är du säker på att du vill ta bort utlösaren {{triggerName}}? Den här åtgärden kan inte ångras."
+ },
+ "form": {
+ "name": {
+ "title": "Namn",
+ "placeholder": "Namnge denna utlösare",
+ "error": {
+ "minLength": "Fältet måste vara minst 2 tecken långt.",
+ "invalidCharacters": "Fältet får bara innehålla bokstäver, siffror, understreck och bindestreck.",
+ "alreadyExists": "En utlösare med detta namn finns redan för den här kameran."
+ },
+ "description": "Ange ett unikt namn eller en unik beskrivning för att identifiera den här utlösaren"
+ },
+ "enabled": {
+ "description": "Aktivera eller inaktivera den här utlösaren"
+ },
+ "type": {
+ "title": "Typ",
+ "placeholder": "Välj utlösartyp",
+ "description": "Utlöses när en liknande beskrivning av spårat objekt detekteras",
+ "thumbnail": "Utlöses när en liknande miniatyrbild av ett spårat objekt upptäcks"
+ },
+ "content": {
+ "title": "Innehåll",
+ "imagePlaceholder": "Välj en miniatyrbild",
+ "textPlaceholder": "Ange textinnehåll",
+ "imageDesc": "Endast de senaste 100 miniatyrerna visas. Om du inte hittar önskad miniatyr kan du granska tidigare objekt i Utforska och skapa en utlösare från menyn där.",
+ "textDesc": "Ange text för att utlösa den här åtgärden när en liknande beskrivning av spårat objekt upptäcks.",
+ "error": {
+ "required": "Innehåll krävs."
+ }
+ },
+ "threshold": {
+ "title": "Tröskel",
+ "error": {
+ "min": "Tröskelvärdet måste vara minst 0",
+ "max": "Tröskelvärdet får vara högst 1"
+ },
+ "desc": "Ställ in likhetströskeln för denna utlösare. En högre tröskel innebär att en bättre matchning krävs för att utlösaren ska aktiveras."
+ },
+ "actions": {
+ "title": "Åtgärder",
+ "desc": "Som standard utlöser Frigate ett MQTT-meddelande för alla utlösare. Underetiketter lägger till utlösarnamnet till objektetiketten. Attribut är sökbara metadata som lagras separat i de spårade objektmetadata.",
+ "error": {
+ "min": "Minst en åtgärd måste väljas."
+ }
+ },
+ "friendly_name": {
+ "title": "Vänligt namn",
+ "placeholder": "Namnge eller beskriv denna utlösare",
+ "description": "Ett valfritt vänligt namn eller en beskrivande text för denna utlösare."
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Utlösaren {{name}} har skapats.",
+ "updateTrigger": "Utlösaren {{name}} har uppdaterats.",
+ "deleteTrigger": "Utlösaren {{name}} har raderats."
+ },
+ "error": {
+ "createTriggerFailed": "Misslyckades med att skapa utlösaren: {{errorMessage}}",
+ "updateTriggerFailed": "Misslyckades med att uppdatera utlösaren: {{errorMessage}}",
+ "deleteTriggerFailed": "Misslyckades med att ta bort utlösaren: {{errorMessage}}"
+ }
+ },
+ "semanticSearch": {
+ "title": "Semantisk sökning är inaktiverad",
+ "desc": "Semantisk sökning måste vara aktiverad för att använda Utlösare."
+ },
+ "wizard": {
+ "title": "Skapa utlösare",
+ "step1": {
+ "description": "Konfigurera grundinställningarna för din trigger."
+ },
+ "step2": {
+ "description": "Ställ in innehållet som ska utlösa den här åtgärden."
+ },
+ "step3": {
+ "description": "Konfigurera tröskelvärdet och åtgärderna för den här utlösaren."
+ },
+ "steps": {
+ "nameAndType": "Namn och typ",
+ "configureData": "Konfigurera data",
+ "thresholdAndActions": "Tröskelvärde och åtgärder"
+ }
+ }
+ },
+ "cameraWizard": {
+ "title": "Lägg till kamera",
+ "description": "Följ stegen nedan för att lägga till en ny kamera i din Frigate-installation.",
+ "steps": {
+ "nameAndConnection": "Namn och anslutning",
+ "streamConfiguration": "Strömkonfiguration",
+ "validationAndTesting": "Validering och testning",
+ "probeOrSnapshot": "Prob eller ögonblicksbild"
+ },
+ "save": {
+ "success": "Ny kamera {{cameraName}} har sparats.",
+ "failure": "Fel vid sparning av {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Upplösning",
+ "video": "Video",
+ "audio": "Ljud",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Ange en giltig strömnings länk",
+ "testFailed": "Strömtest misslyckades: {{error}}"
+ },
+ "step1": {
+ "description": "Ange dina kamerauppgifter och välj att undersöka kameran eller manuellt välja märke.",
+ "cameraName": "Kameranamn",
+ "cameraNamePlaceholder": "t.ex. ytterdörr eller Översikt över bakgård",
+ "host": "Värd-/IP-adress",
+ "port": "Portnummer",
+ "username": "Användarnamn",
+ "usernamePlaceholder": "Frivillig",
+ "password": "Lösenord",
+ "passwordPlaceholder": "Frivillig",
+ "selectTransport": "Välj transportprotokoll",
+ "cameraBrand": "Kameramärke",
+ "selectBrand": "Välj kameramärke för URL-mall",
+ "customUrl": "Anpassad ström länk",
+ "brandInformation": "Varumärkesinformation",
+ "brandUrlFormat": "För kameror med RTSP URL-formatet: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://användarnamn:passord@värd:port/text",
+ "testConnection": "Testa anslutning",
+ "testSuccess": "Anslutningstestet lyckades!",
+ "testFailed": "Anslutningstestet misslyckades. Kontrollera dina indata och försök igen.",
+ "streamDetails": "Streamdetaljer",
+ "warnings": {
+ "noSnapshot": "Det gick inte att hämta en ögonblicksbild från den konfigurerade strömmen."
+ },
+ "errors": {
+ "brandOrCustomUrlRequired": "Välj antingen ett kameramärke med värd/IP eller välj \"Annat\" med en anpassad URL",
+ "nameRequired": "Kameranamn krävs",
+ "nameLength": "Kameranamnet måste vara högst 64 tecken långt",
+ "invalidCharacters": "Kameranamnet innehåller ogiltiga tecken",
+ "nameExists": "Kameranamnet finns redan",
+ "brands": {
+ "reolink-rtsp": "Reolink RTSP rekommenderas inte. Aktivera HTTP i kamerans firmwareinställningar och starta om guiden."
+ },
+ "customUrlRtspRequired": "Anpassade webbadresser måste börja med \"rtsp://\". Manuell konfiguration krävs för kameraströmmar som inte använder RTSP."
+ },
+ "docs": {
+ "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
+ },
+ "testing": {
+ "probingMetadata": "Undersöker kamerans metadata...",
+ "fetchingSnapshot": "Hämtar kamerabild..."
+ },
+ "connectionSettings": "Anslutningsinställningar",
+ "detectionMethod": "Strömdetekteringsmetod",
+ "onvifPort": "ONVIF-port",
+ "probeMode": "Undersök kameran",
+ "manualMode": "Manuellt val",
+ "detectionMethodDescription": "Undersök kameran med ONVIF (om det stöds) för att hitta kameraströms-URL:er, eller välj kameramärke manuellt för att använda fördefinierade URL:er. För att ange en anpassad RTSP-URL, välj den manuella metoden och välj \"Annat\".",
+ "onvifPortDescription": "För kameror som stöder ONVIF är detta vanligtvis 80 eller 8080.",
+ "useDigestAuth": "Använd digest-autentisering",
+ "useDigestAuthDescription": "Använd HTTP-sammanfattningsautentisering för ONVIF. Vissa kameror kan kräva ett dedikerat ONVIF-användarnamn/lösenord istället för standardadministratörsanvändaren."
+ },
+ "step2": {
+ "description": "Undersök kameran efter tillgängliga strömmar eller konfigurera manuella inställningar baserat på din valda detekteringsmetod.",
+ "streamsTitle": "Kameraströmmar",
+ "addStream": "Lägg till ström",
+ "addAnotherStream": "Lägg till ytterligare en ström",
+ "streamTitle": "Ström {{number}}",
+ "streamUrl": "Ström URL",
+ "streamUrlPlaceholder": "rtsp://användarnamn:lösenord@värd:portnummer/plats",
+ "url": "URL",
+ "resolution": "Upplösning",
+ "selectResolution": "Välj upplösning",
+ "quality": "Kvalitet",
+ "selectQuality": "Välj kvalitet",
+ "roles": "Roller",
+ "roleLabels": {
+ "detect": "Objektdetektering",
+ "record": "Inspelning",
+ "audio": "Ljud"
+ },
+ "testStream": "Testa anslutning",
+ "testSuccess": "Anslutningstestet lyckades!",
+ "testFailed": "Anslutningstestet misslyckades. Kontrollera dina indata och försök igen.",
+ "testFailedTitle": "Testet misslyckades",
+ "connected": "Ansluten",
+ "notConnected": "Inte ansluten",
+ "featuresTitle": "Funktioner",
+ "go2rtc": "Minska anslutningar till kameran",
+ "detectRoleWarning": "Minst en ström måste ha rollen \"upptäcka\" för att fortsätta.",
+ "rolesPopover": {
+ "title": "Ström-roller",
+ "detect": "Huvud video ström för objektdetektering.",
+ "record": "Sparar segment av videoflödet baserat på konfigurationsinställningar.",
+ "audio": "Flöde för ljudbaserad detektering."
+ },
+ "featuresPopover": {
+ "title": "Strömfunktioner",
+ "description": "Använd go2rtc-omströmning för att minska anslutningar till din kamera."
+ },
+ "streamDetails": "Streamdetaljer",
+ "probing": "Undersöker kameran...",
+ "retry": "Försöka igen",
+ "testing": {
+ "probingMetadata": "Undersöker kamerans metadata...",
+ "fetchingSnapshot": "Hämtar kamerabild..."
+ },
+ "probeFailed": "Misslyckades med att undersöka kameran: {{error}}",
+ "probingDevice": "Undersöker enheten...",
+ "probeSuccessful": "Kontroll lyckades",
+ "probeError": "Kontroll fel",
+ "probeNoSuccess": "Kontroll misslyckades",
+ "deviceInfo": "Enhetsinformation",
+ "manufacturer": "Tillverkare",
+ "model": "Modell",
+ "firmware": "Inbyggd programvara",
+ "profiles": "Profiler",
+ "ptzSupport": "PTZ-stöd",
+ "autotrackingSupport": "Stöd för Autospårning",
+ "presets": "Förinställningar",
+ "rtspCandidates": "RTSP-kandidater",
+ "rtspCandidatesDescription": "Följande RTSP-URL:er hittades från kamera kontrollen. Testa anslutningen för att visa strömmetadata.",
+ "noRtspCandidates": "Inga RTSP-URL:er hittades från kameran. Dina inloggningsuppgifter kan vara felaktiga, eller så kanske kameran inte stöder ONVIF eller metoden som används för att hämta RTSP-URL:er. Gå tillbaka och ange RTSP-URL:en manuellt.",
+ "candidateStreamTitle": "Kandidat {{number}}",
+ "useCandidate": "Använda",
+ "uriCopy": "Kopiera",
+ "uriCopied": "URI kopierad till urklipp",
+ "testConnection": "Testa anslutning",
+ "toggleUriView": "Klicka för att växla mellan fullständig URI-vy",
+ "errors": {
+ "hostRequired": "Värd-/IP-adress krävs"
+ }
+ },
+ "step3": {
+ "description": "Konfigurera strömningsroller och lägg till ytterligare strömmar för din kamera.",
+ "validationTitle": "Strömvalidering",
+ "connectAllStreams": "Anslut alla strömmar",
+ "reconnectionSuccess": "Återanslutningen lyckades.",
+ "reconnectionPartial": "Vissa strömmar kunde inte återanslutas.",
+ "streamUnavailable": "Förhandsgranskning av strömmen är inte tillgänglig",
+ "reload": "Ladda om",
+ "connecting": "Ansluter...",
+ "streamTitle": "Ström {{number}}",
+ "valid": "Giltig",
+ "failed": "Misslyckades",
+ "notTested": "Inte testad",
+ "connectStream": "Ansluta",
+ "connectingStream": "Ansluter",
+ "disconnectStream": "Koppla från",
+ "estimatedBandwidth": "Uppskattad bandbredd",
+ "roles": "Roller",
+ "none": "Ingen",
+ "error": "Fel",
+ "streamValidated": "Ström {{number}} har validerats",
+ "streamValidationFailed": "Validering av ström {{number}} misslyckades",
+ "saveAndApply": "Spara ny kamera",
+ "saveError": "Ogiltig konfiguration. Kontrollera dina inställningar.",
+ "issues": {
+ "title": "Strömvalidering",
+ "videoCodecGood": "Videokodeken är {{codec}}.",
+ "audioCodecGood": "Ljudkodeken är {{codec}}.",
+ "noAudioWarning": "Inget ljud upptäcktes för den här strömmen, inspelningarna kommer inte att ha något ljud.",
+ "audioCodecRecordError": "AAC-ljudkodeken krävs för att stödja ljud i inspelningar.",
+ "audioCodecRequired": "En ljudström krävs för att stödja ljuddetektering.",
+ "restreamingWarning": "Att minska anslutningarna till kameran för inspelningsströmmen kan öka CPU-användningen något.",
+ "dahua": {
+ "substreamWarning": "Delström 1 är låst till en låg upplösning. Många Dahua / Amcrest / EmpireTech kameror stöder ytterligare delströmmar som måste aktiveras i kamerans inställningar. Det rekommenderas att kontrollera och använda dessa strömmar om de är tillgängliga."
+ },
+ "hikvision": {
+ "substreamWarning": "Delström 1 är låst till en låg upplösning. Många Hikvision kameror stöder ytterligare delströmmar som måste aktiveras i kamerans inställningar. Det rekommenderas att kontrollera och använda dessa strömmar om de är tillgängliga."
+ },
+ "resolutionHigh": "En upplösning på {{resolution}} kan orsaka ökad resursanvändning.",
+ "resolutionLow": "En upplösning på {{resolution}} kan vara för låg för tillförlitlig detektering av små objekt."
+ },
+ "ffmpegModule": "Använd läge för strömkompatibilitet",
+ "ffmpegModuleDescription": "Om strömmen inte läses in efter flera försök, prova att aktivera detta. När det är aktiverat kommer Frigate att använda ffmpeg-modulen med go2rtc. Detta kan ge bättre kompatibilitet med vissa kameraströmmar.",
+ "streamsTitle": "Kameraströmmar",
+ "addStream": "Lägg till ström",
+ "addAnotherStream": "Lägg till ytterligare en ström",
+ "streamUrl": "Stream-URL",
+ "streamUrlPlaceholder": "rtsp://användarnamn:lösenord@värd:portnummer/plats",
+ "selectStream": "Välj en ström",
+ "searchCandidates": "Sök kandidater...",
+ "noStreamFound": "Ingen ström hittades",
+ "url": "URL",
+ "resolution": "Upplösning",
+ "selectResolution": "Välj upplösning",
+ "quality": "Kvalitet",
+ "selectQuality": "Välj kvalitet",
+ "roleLabels": {
+ "detect": "Objektdetektering",
+ "record": "Inspelning",
+ "audio": "Ljud"
+ },
+ "testStream": "Testa anslutning",
+ "testSuccess": "Streamtestet lyckades!",
+ "testFailed": "Strömtestet misslyckades",
+ "testFailedTitle": "Testet misslyckades",
+ "connected": "Ansluten",
+ "notConnected": "Inte ansluten",
+ "featuresTitle": "Funktioner",
+ "go2rtc": "Minska anslutningar till kameran",
+ "detectRoleWarning": "Minst en ström måste ha rollen \"upptäck\" för att fortsätta.",
+ "rolesPopover": {
+ "title": "Stream-roller",
+ "detect": "Huvud kamera flöde för objektdetektering.",
+ "record": "Sparar segment av videoflödet baserat på konfigurationsinställningar.",
+ "audio": "Flöde för ljudbaserad detektering."
+ },
+ "featuresPopover": {
+ "title": "Streamfunktioner",
+ "description": "Använd go2rtc-omströmning för att minska anslutningar till din kamera."
+ }
+ },
+ "step4": {
+ "description": "Slutgiltig validering och analys innan du sparar din nya kamera. Anslut varje ström innan du sparar.",
+ "validationTitle": "Ström validering",
+ "connectAllStreams": "Anslut alla strömmar",
+ "reconnectionSuccess": "Återanslutningen lyckades.",
+ "reconnectionPartial": "Vissa strömmar kunde inte återanslutas.",
+ "streamUnavailable": "Förhandsgranskning av strömmen är inte tillgänglig",
+ "reload": "Ladda om",
+ "connecting": "Ansluter...",
+ "streamTitle": "Ström {{number}}",
+ "valid": "Giltig",
+ "failed": "Misslyckades",
+ "notTested": "Inte testad",
+ "connectStream": "Ansluta",
+ "connectingStream": "Ansluter",
+ "disconnectStream": "Koppla från",
+ "estimatedBandwidth": "Uppskattad bandbredd",
+ "roles": "Roller",
+ "ffmpegModule": "Använd strömkompatibilitetsläge",
+ "ffmpegModuleDescription": "Om strömmen inte laddas efter flera försök, försök att aktivera detta. När det är aktiverat kommer Frigate att använda ffmpeg-modulen med go2rtc. Detta kan ge bättre kompatibilitet med vissa kameraströmmar.",
+ "none": "Ingen",
+ "error": "Fel",
+ "streamValidated": "Ström {{number}} har validerats",
+ "streamValidationFailed": "Validering av ström {{number}} misslyckades",
+ "saveAndApply": "Spara ny kamera",
+ "saveError": "Ogiltig konfiguration. Kontrollera dina inställningar.",
+ "issues": {
+ "title": "Ström validering",
+ "videoCodecGood": "Videokodeken är {{codec}}.",
+ "audioCodecGood": "Ljudkodeken är {{codec}}.",
+ "resolutionHigh": "En upplösning på {{resolution}} kan orsaka ökad resursanvändning.",
+ "resolutionLow": "En upplösning på {{resolution}} kan vara för låg för tillförlitlig detektering av små objekt.",
+ "noAudioWarning": "Inget ljud upptäcktes för den här strömmen, inspelningarna kommer inte att ha ljud.",
+ "audioCodecRecordError": "AAC-ljudkodeken krävs för att stödja ljud i inspelningar.",
+ "audioCodecRequired": "En ljudström krävs för att stödja ljuddetektering.",
+ "restreamingWarning": "Att minska anslutningarna till kameran för inspelningsströmmen kan öka CPU-användningen något.",
+ "brands": {
+ "reolink-rtsp": "Reolink RTSP rekommenderas inte. Aktivera HTTP i kamerans firmwareinställningar och starta om guiden.",
+ "reolink-http": "Reolink HTTP-strömmar bör använda FFmpeg för bättre kompatibilitet. Aktivera \"Använd strömkompatibilitetsläge\" för den här strömmen."
+ },
+ "dahua": {
+ "substreamWarning": "Delström 1 är låst till en låg upplösning. Många Dahua/Amcrest/EmpireTech-kameror stöder ytterligare delströmmar som måste aktiveras i kamerans inställningar. Det rekommenderas att kontrollera och använda dessa strömmar om de är tillgängliga."
+ },
+ "hikvision": {
+ "substreamWarning": "Delström 1 är låst till en låg upplösning. Många Hikvision-kameror stöder ytterligare delströmmar som måste aktiveras i kamerans inställningar. Det rekommenderas att kontrollera och använda dessa strömmar om de är tillgängliga."
+ }
+ }
+ }
+ },
+ "cameraManagement": {
+ "title": "Hantera kameror",
+ "addCamera": "Lägg till ny kamera",
+ "editCamera": "Redigera kamera:",
+ "selectCamera": "Välj en kamera",
+ "backToSettings": "Tillbaka till kamerainställningar",
+ "streams": {
+ "title": "Aktivera/avaktivera kameror",
+ "desc": "Inaktivera tillfälligt en kamera tills Frigate startar om. Om du inaktiverar en kamera helt stoppas Frigates bearbetning av kamerans strömmar. Detektering, inspelning och felsökning kommer inte att vara tillgängliga. Obs! Detta inaktiverar inte go2rtc-återströmmar."
+ },
+ "cameraConfig": {
+ "add": "Lägg till kamera",
+ "edit": "Redigera kamera",
+ "description": "Konfigurera kamerainställningar inklusive strömingångar och roller.",
+ "name": "Kameranamn",
+ "nameRequired": "Kameranamn krävs",
+ "nameLength": "Kameranamnet måste vara kortare än 64 tecken.",
+ "namePlaceholder": "t.ex. ytterdörr eller Översikt över bakgård",
+ "enabled": "Aktiverad",
+ "ffmpeg": {
+ "inputs": "Ingångsströmmar",
+ "path": "Strömväg",
+ "pathRequired": "Strömväg krävs",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Roller",
+ "rolesRequired": "Minst en roll krävs",
+ "rolesUnique": "Varje roll (ljud, detektering, inspelning) kan bara tilldelas en ström",
+ "addInput": "Lägg till inmatningsström",
+ "removeInput": "Ta bort inmatningsström",
+ "inputsRequired": "Minst en indataström krävs"
+ },
+ "go2rtcStreams": "go2rtc-strömmar",
+ "streamUrls": "Ström-URL:er",
+ "addUrl": "Lägg till URL",
+ "addGo2rtcStream": "Lägg till go2rtc-ström",
+ "toast": {
+ "success": "Kamera {{cameraName}} sparades"
+ }
+ }
+ },
+ "cameraReview": {
+ "title": "Inställningar för kameragranskning",
+ "object_descriptions": {
+ "title": "Generativa AI-objektbeskrivningar",
+ "desc": "Aktivera/inaktivera tillfälligt generativa AI-objektbeskrivningar för den här kameran. När den är inaktiverad kommer AI-genererade beskrivningar inte att begäras för spårade objekt på den här kameran."
+ },
+ "review_descriptions": {
+ "title": "Beskrivningar av generativa AI-granskningar",
+ "desc": "Tillfälligt aktivera/inaktivera genererade AI-granskningsbeskrivningar för den här kameran. När det är inaktiverat kommer AI-genererade beskrivningar inte att begäras för granskningsobjekt på den här kameran."
+ },
+ "review": {
+ "title": "Granska",
+ "desc": "Tillfälligt aktivera/avaktivera varningar och detekteringar för den här kameran tills Frigate startar om. När den är avaktiverad genereras inga nya granskningsobjekt. ",
+ "alerts": "Aviseringar ",
+ "detections": "Detektioner "
+ },
+ "reviewClassification": {
+ "title": "Granska klassificering",
+ "desc": "Frigate kategoriserar granskningsobjekt som Varningar och Detekteringar. Som standard betraktas alla person- och bil-objekt som Varningar. Du kan förfina kategoriseringen av dina granskningsobjekt genom att konfigurera obligatoriska zoner för dem.",
+ "noDefinedZones": "Inga zoner är definierade för den här kameran.",
+ "objectAlertsTips": "Alla {{alertsLabels}}-objekt på {{cameraName}} kommer att visas som Varningar.",
+ "zoneObjectAlertsTips": "Alla {{alertsLabels}} objekt som upptäcks i {{zone}} på {{cameraName}} kommer att visas som Varningar.",
+ "objectDetectionsTips": "Alla {{detectionsLabels}}-objekt som inte kategoriseras på {{cameraName}} kommer att visas som Detektioner oavsett vilken zon de befinner sig i.",
+ "zoneObjectDetectionsTips": {
+ "text": "Alla {{detectionsLabels}}-objekt som inte kategoriseras i {{zone}} på {{cameraName}} kommer att visas som Detektioner.",
+ "notSelectDetections": "Alla {{detectionsLabels}} objekt som upptäckts i {{zone}} på {{cameraName}} och som inte kategoriserats som Varningar kommer att visas som Detekteringar oavsett vilken zon de befinner sig i.",
+ "regardlessOfZoneObjectDetectionsTips": "Alla {{detectionsLabels}}-objekt som inte kategoriseras på {{cameraName}} kommer att visas som Detektioner oavsett vilken zon de befinner sig i."
+ },
+ "unsavedChanges": "Osparade inställningar för granskningsklassificering för {{camera}}",
+ "selectAlertsZones": "Välj zoner för Varningar",
+ "selectDetectionsZones": "Välj zoner för Detektioner",
+ "limitDetections": "Begränsa detektioner till specifika zoner",
+ "toast": {
+ "success": "Konfigurationen för granskning av klassificering har sparats. Starta om Frigate för att tillämpa ändringarna."
+ }
+ }
}
}
diff --git a/web/public/locales/sv/views/system.json b/web/public/locales/sv/views/system.json
index d10bf2e1de..55d757cc1a 100644
--- a/web/public/locales/sv/views/system.json
+++ b/web/public/locales/sv/views/system.json
@@ -4,9 +4,11 @@
"general": "Allmän statistik - Frigate",
"cameras": "Kamerastatistik - Frigate",
"logs": {
- "frigate": "Frigate loggar - Frigate",
- "go2rtc": "Go2RTC Loggar - Frigate"
- }
+ "frigate": "Frigate-loggar - Frigate",
+ "go2rtc": "Go2RTC loggar - Frigate",
+ "nginx": "Nginx loggar - Frigate"
+ },
+ "enrichments": "Förbättringsstatistik - Frigate"
},
"logs": {
"copy": {
@@ -32,19 +34,59 @@
}
},
"title": "System",
- "metrics": "System detaljer",
+ "metrics": "Systemdetaljer",
"general": {
"title": "Generellt",
"detector": {
- "title": "Detektorer"
+ "title": "Detektorer",
+ "inferenceSpeed": "Detektorns inferenshastighet",
+ "temperature": "Detektor temperatur",
+ "cpuUsage": "Detektorns CPU-användning",
+ "memoryUsage": "Detektor minnes användning",
+ "cpuUsageInformation": "CPU som används för att förbereda in- och utdata till/från detekteringsmodeller. Detta värde mäter inte inferensanvändning, även om en GPU eller accelerator används."
},
"hardwareInfo": {
"title": "Hårdvaruinformation",
"gpuUsage": "GPU-användning",
- "gpuMemory": "GPU-minne"
+ "gpuMemory": "GPU-minne",
+ "gpuEncoder": "GPU-kodare",
+ "gpuDecoder": "GPU-avkodare",
+ "gpuInfo": {
+ "nvidiaSMIOutput": {
+ "vbios": "VBios-information: {{vbios}}",
+ "title": "Nvidia SMI utdata",
+ "name": "Namn: {{name}}",
+ "driver": "Drivrutin: {{driver}}",
+ "cudaComputerCapability": "CUDA beräknings kapacitet: {{cuda_compute}}"
+ },
+ "closeInfo": {
+ "label": "Stäng GPU-info"
+ },
+ "copyInfo": {
+ "label": "Kopiera GPU-info"
+ },
+ "toast": {
+ "success": "Kopierade GPU-info till urklipp"
+ },
+ "vainfoOutput": {
+ "title": "Vainfo resultat",
+ "returnCode": "Returkod: {{code}}",
+ "processOutput": "Bearbeta utdata:",
+ "processError": "Processfel:"
+ }
+ },
+ "npuUsage": "NPU-användning",
+ "npuMemory": "NPU-minne",
+ "intelGpuWarning": {
+ "title": "Intel GPU statistik varning",
+ "message": "GPU statistik otillgänglig",
+ "description": "Detta är en känd bugg i Intels GPU-statistikrapporteringsverktyg (intel_gpu_top) där den slutar fungera och upprepade gånger returnerar en GPU-användning på 0 %, även i fall där hårdvaruacceleration och objektdetektering körs korrekt på (i)GPU:n. Detta är inte en Frigate-bugg. Du kan starta om värden för att tillfälligt åtgärda problemet och bekräfta att GPU:n fungerar korrekt. Detta påverkar inte prestandan."
+ }
},
"otherProcesses": {
- "title": "Övriga processer"
+ "title": "Övriga processer",
+ "processCpuUsage": "Process CPU-användning",
+ "processMemoryUsage": "Processminnesanvändning"
}
},
"storage": {
@@ -55,17 +97,105 @@
"unused": {
"title": "Oanvänt",
"tips": "Det här värdet kanske inte korrekt representerar det lediga utrymmet tillgängligt för Frigate om du har andra filer lagrade på din hårddisk utöver Frigates inspelningar. Frigate spårar inte lagringsanvändning utanför sina egna inspelningar."
- }
+ },
+ "title": "Kamera lagring",
+ "camera": "Kamera",
+ "unusedStorageInformation": "Information om oanvänd lagring"
+ },
+ "title": "Lagring",
+ "overview": "Översikt",
+ "recordings": {
+ "title": "Inspelningar",
+ "tips": "Detta värde representerar den totala lagringsmängden som används av inspelningarna i Frigates databas. Frigate spårar inte lagringsanvändningen för alla filer på din disk.",
+ "earliestRecording": "Tidigast tillgängliga inspelning:"
+ },
+ "shm": {
+ "title": "SHM-allokering (delat minne)",
+ "warning": "Den nuvarande SHM-storleken på {{total}}MB är för liten. Öka den till minst {{min_shm}}MB."
}
},
"cameras": {
"title": "Kameror",
"overview": "Översikt",
"info": {
- "aspectRatio": "bildförhållande"
+ "aspectRatio": "bildförhållande",
+ "cameraProbeInfo": "{{camera}} Kamerasondinformation",
+ "streamDataFromFFPROBE": "Strömdata erhålls med ffprobe.",
+ "codec": "Codec:",
+ "resolution": "Upplösning:",
+ "fps": "FPS:",
+ "unknown": "Okänd",
+ "audio": "Ljud:",
+ "error": "Fel: {{error}}",
+ "tips": {
+ "title": "Kamera sond information"
+ },
+ "fetching": "Hämtar kamera data",
+ "stream": "Ström {{idx}}",
+ "video": "Video:"
},
"label": {
- "detect": "detektera"
+ "detect": "detektera",
+ "camera": "kamera",
+ "skipped": "hoppade över",
+ "ffmpeg": "FFmpeg",
+ "capture": "spela in",
+ "overallFramesPerSecond": "totalt antal bilder per sekund",
+ "overallDetectionsPerSecond": "totala detektioner per sekund",
+ "overallSkippedDetectionsPerSecond": "totalt antal hoppade detekteringar per sekund",
+ "cameraFfmpeg": "{{camName}} FFmpeg",
+ "cameraCapture": "{{camName}} inspelning",
+ "cameraDetect": "{{camName}} upptäcka",
+ "cameraFramesPerSecond": "{{camName}} bildrutor per sekund",
+ "cameraDetectionsPerSecond": "{{camName}} detekteringar per sekund",
+ "cameraSkippedDetectionsPerSecond": "{{camName}} hoppade över detekteringar per sekund"
+ },
+ "framesAndDetections": "Ramar / Detektioner",
+ "toast": {
+ "success": {
+ "copyToClipboard": "Kopierade probdata till urklipp."
+ },
+ "error": {
+ "unableToProbeCamera": "Kunde inte undersöka kameran: {{errorMessage}}"
+ }
}
+ },
+ "lastRefreshed": "Senast uppdaterad: ",
+ "stats": {
+ "ffmpegHighCpuUsage": "{{camera}} har hög FFmpeg CPU-användning ({{ffmpegAvg}}%)",
+ "detectHighCpuUsage": "{{camera}} har hög CPU-användning vid detektering ({{detectAvg}}%)",
+ "healthy": "Systemet är hälsosamt",
+ "reindexingEmbeddings": "Omindexering av inbäddningar ({{processed}}% klar)",
+ "cameraIsOffline": "{{camera}} är urkopplad",
+ "detectIsSlow": "{{detect}} är långsam ({{speed}} ms)",
+ "detectIsVerySlow": "{{detect}} är väldigt långsam ({{speed}} ms)",
+ "shmTooLow": "/dev/shm allokeringen ({{total}} MB) bör ökas till minst {{min}} MB."
+ },
+ "enrichments": {
+ "title": "Berikningar",
+ "infPerSecond": "Slutsatser per sekund",
+ "embeddings": {
+ "image_embedding": "Bildinbäddning",
+ "text_embedding": "Textinbäddning",
+ "face_recognition": "Ansiktsigenkänning",
+ "plate_recognition": "Nummerplåt igenkänning",
+ "image_embedding_speed": "Bildinbäddningshastighet",
+ "face_embedding_speed": "Ansikts inbäddnings hastighet",
+ "face_recognition_speed": "Ansiktsigenkänningshastighet",
+ "plate_recognition_speed": "Hastighet för igenkänning av nummerplåtar",
+ "text_embedding_speed": "Textinbäddningshastighet",
+ "yolov9_plate_detection_speed": "YOLOv9 nummerplåt detekterings hastighet",
+ "yolov9_plate_detection": "YOLOv9 nummerplåt detektering",
+ "review_description": "Recensionsbeskrivning",
+ "review_description_speed": "Recensionsbeskrivning Hastighet",
+ "review_description_events_per_second": "Recensionsbeskrivning",
+ "object_description": "Objekt beskrivning",
+ "object_description_speed": "Objekt beskrivning hastighet",
+ "object_description_events_per_second": "Objekt beskrivning",
+ "classification_events_per_second": "{{name}} Klassificering Händelser per sekund",
+ "classification": "{{name}} Klassificering",
+ "classification_speed": "{{name}} Klassificeringshastighet"
+ },
+ "averageInf": "Genomsnittlig inferenstid"
}
}
diff --git a/web/public/locales/ta/audio.json b/web/public/locales/ta/audio.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/audio.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/common.json b/web/public/locales/ta/common.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/common.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/components/auth.json b/web/public/locales/ta/components/auth.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/components/auth.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/components/camera.json b/web/public/locales/ta/components/camera.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/components/camera.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/components/dialog.json b/web/public/locales/ta/components/dialog.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/components/dialog.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/components/filter.json b/web/public/locales/ta/components/filter.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/components/filter.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/components/icons.json b/web/public/locales/ta/components/icons.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/components/icons.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/components/input.json b/web/public/locales/ta/components/input.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/components/input.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/components/player.json b/web/public/locales/ta/components/player.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/components/player.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/objects.json b/web/public/locales/ta/objects.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/objects.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/views/classificationModel.json b/web/public/locales/ta/views/classificationModel.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/views/classificationModel.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/views/configEditor.json b/web/public/locales/ta/views/configEditor.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/views/configEditor.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/views/events.json b/web/public/locales/ta/views/events.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/views/events.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/views/explore.json b/web/public/locales/ta/views/explore.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/views/explore.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/views/exports.json b/web/public/locales/ta/views/exports.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/views/exports.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/views/faceLibrary.json b/web/public/locales/ta/views/faceLibrary.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/views/faceLibrary.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/views/live.json b/web/public/locales/ta/views/live.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/views/live.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/views/recording.json b/web/public/locales/ta/views/recording.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/views/recording.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/views/search.json b/web/public/locales/ta/views/search.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/views/search.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/views/settings.json b/web/public/locales/ta/views/settings.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/views/settings.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/ta/views/system.json b/web/public/locales/ta/views/system.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ta/views/system.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/th/common.json b/web/public/locales/th/common.json
index c7044976d0..b920787973 100644
--- a/web/public/locales/th/common.json
+++ b/web/public/locales/th/common.json
@@ -246,5 +246,6 @@
"feet": "ฟุต",
"meters": "เมตร"
}
- }
+ },
+ "readTheDocumentation": "อ่านเอกสาร"
}
diff --git a/web/public/locales/th/views/classificationModel.json b/web/public/locales/th/views/classificationModel.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/th/views/classificationModel.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/tr/audio.json b/web/public/locales/tr/audio.json
index 6364c8dcd8..34a6f366fb 100644
--- a/web/public/locales/tr/audio.json
+++ b/web/public/locales/tr/audio.json
@@ -32,7 +32,7 @@
"sheep": "koyun",
"train": "tren",
"hair_dryer": "saç kurutma makinesi",
- "babbling": "aguşlama",
+ "babbling": "Agulama",
"snicker": "kıkırdama",
"sigh": "iç çekme",
"bellow": "haykırma",
@@ -425,5 +425,79 @@
"radio": "radyo",
"field_recording": "alan kaydı",
"scream": "çığlık",
- "jingle_bell": "küçük çan"
+ "jingle_bell": "küçük çan",
+ "sodeling": "Jodel (Yodeling)",
+ "chird": "Cıvıltı",
+ "change_ringing": "Sıralı Çan Çalma",
+ "shofar": "Şofar",
+ "liquid": "Sıvı",
+ "splash": "Su Sıçraması",
+ "slosh": "Çalkalanma",
+ "squish": "Vıcıklama (Islak Ezilme)",
+ "drip": "Damlama",
+ "pour": "Dökülme",
+ "trickle": "Şırıldama / İnce Akış",
+ "gush": "Fışkırma",
+ "fill": "Doldurma",
+ "spray": "Püskürtme / Sprey",
+ "pump": "Pompalama",
+ "stir": "Karıştırma",
+ "boiling": "Kaynama",
+ "sonar": "Sonar Sesi",
+ "arrow": "Ok Sesi",
+ "whoosh": "Hışırtı (Hızlı Geçiş Sesi)",
+ "thump": "Küt Sesi (Boğuk)",
+ "thunk": "Tok Ses",
+ "electronic_tuner": "Elektronik Akort Cihazı",
+ "effects_unit": "Efekt Ünitesi",
+ "chorus_effect": "Chorus (Koro) Efekti",
+ "basketball_bounce": "Basketbol Topu Sektirme",
+ "bang": "Gümleme / Patlama",
+ "slap": "Tokat / Şaplak",
+ "whack": "Sert Vuruş / Kütletme",
+ "smash": "Parçalanma",
+ "breaking": "Kırılma",
+ "bouncing": "Sekme / Zıplama",
+ "whip": "Kırbaç",
+ "flap": "Kanat Çırpma / Pırpır Etme",
+ "scratch": "Tırmalama / Cızırtı",
+ "scrape": "Kazıma / Sürtünme",
+ "rub": "Ovma / Sürtme",
+ "roll": "Yuvarlanma",
+ "crushing": "Ezilme (Kuru/Sert)",
+ "crumpling": "Buruşturma",
+ "tearing": "Yırtılma",
+ "beep": "Bip Sesi",
+ "ping": "Ping Sesi (Çınlama)",
+ "ding": "Ding (Zil Sesi)",
+ "clang": "Çangırtı (Metalik)",
+ "squeal": "Ciyaklama / Acı Gıcırtı",
+ "creak": "Gıcırdama (Tahta/Kapı)",
+ "rustle": "Hışırtı (Kağıt/Yaprak)",
+ "whir": "Vızıltı (Motor/Pervane)",
+ "clatter": "Takırtı",
+ "sizzle": "Cızırdayarak Kızarma",
+ "clicking": "Tıklama",
+ "clickety_clack": "Takır Tukur Sesi",
+ "rumble": "Gürleme / Gümbürtü",
+ "plop": "Lup Sesi (Suya düşme)",
+ "hum": "Uğultu / Mırıldanma",
+ "zing": "Vınlama",
+ "boing": "Boing (Yay Sesi)",
+ "crunch": "Kıtırdatma / Çıtırdatma",
+ "sine_wave": "Sinüs Dalgası",
+ "harmonic": "Harmonik",
+ "chirp_tone": "Cıvıltı Tonu (Sinyal)",
+ "pulse": "Darbe / Pulse",
+ "inside": "İç Mekan",
+ "outside": "Dış Mekan",
+ "reverberation": "Yankılanım (Reverb)",
+ "echo": "Yankı",
+ "noise": "Gürültü",
+ "mains_hum": "Şebeke Uğultusu (Elektrik)",
+ "distortion": "Bozulma / Distorsiyon",
+ "sidetone": "Yan Ton",
+ "cacophony": "Kakofoni (Ses Kargaşası)",
+ "throbbing": "Zonklama",
+ "vibration": "Titreşim"
}
diff --git a/web/public/locales/tr/common.json b/web/public/locales/tr/common.json
index e23b402caa..311cca81f6 100644
--- a/web/public/locales/tr/common.json
+++ b/web/public/locales/tr/common.json
@@ -81,7 +81,10 @@
"formattedTimestampMonthDayYear": {
"12hour": "d MMM, yyyy",
"24hour": "d MMM, yyyy"
- }
+ },
+ "inProgress": "Devam ediyor",
+ "invalidStartTime": "Geçersiz başlangıç zamanı",
+ "invalidEndTime": "Geçersiz bitiş zamanı"
},
"button": {
"off": "KAPALI",
@@ -101,14 +104,14 @@
"export": "Dışa aktar",
"download": "İndir",
"edit": "Düzenle",
- "fullscreen": "Tam ekran",
+ "fullscreen": "Tam Ekran",
"deleteNow": "Şimdi Sil",
"apply": "Uygula",
"reset": "Sıfırla",
"done": "Bitti",
"enabled": "Açık",
"save": "Kaydet",
- "exitFullscreen": "Tam ekrandan çık",
+ "exitFullscreen": "Tam Ekrandan Çık",
"pictureInPicture": "Pencere içinde pencere",
"copyCoordinates": "Koordinatları kopyala",
"yes": "Evet",
@@ -118,7 +121,8 @@
"cancel": "İptal",
"twoWayTalk": "Çift Yönlü Ses",
"close": "Kapat",
- "delete": "Sil"
+ "delete": "Sil",
+ "continue": "Devam Et"
},
"menu": {
"systemLogs": "Sistem günlükleri",
@@ -166,7 +170,15 @@
"ru": "Русский (Rusça)",
"yue": "粵語 (Kantonca)",
"th": "ไทย (Tayca)",
- "ca": "Català (Katalanca)"
+ "ca": "Català (Katalanca)",
+ "ptBR": "Português brasileiro (Brezilya Portekizcesi)",
+ "sr": "Српски (Sırpça)",
+ "sl": "Slovenščina (Slovence)",
+ "lt": "Lietuvių (Litvanyaca)",
+ "bg": "Български (Bulgarca)",
+ "gl": "Galego (Galiçyaca)",
+ "id": "Bahasa Indonesia (Endonezce)",
+ "ur": "اردو (Urduca)"
},
"withSystem": "Sistem",
"theme": {
@@ -211,10 +223,16 @@
"help": "Yardım",
"faceLibrary": "Yüz Veritabanı",
"systemMetrics": "Sistem metrikleri",
- "uiPlayground": "UI Deneme Alanı"
+ "uiPlayground": "UI Deneme Alanı",
+ "classification": "Sınıflandırma"
},
"label": {
- "back": "Geri"
+ "back": "Geri",
+ "hide": "{{item}} öğesini gizle",
+ "show": "{{item}} öğesini göster",
+ "ID": "ID",
+ "none": "Hiçbiri",
+ "all": "Tümü"
},
"notFound": {
"documentTitle": "Bulunamadı - Frigate",
@@ -229,6 +247,14 @@
"length": {
"feet": "feet",
"meters": "metre"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/saat",
+ "mbph": "MB/saat",
+ "gbph": "GB/saat"
}
},
"pagination": {
@@ -264,5 +290,18 @@
"viewer": "Görüntüleyici",
"admin": "Yönetici",
"desc": "Yöneticiler Frigate arayüzündeki bütün özelliklere tam erişim sahibidir. Görüntüleyiciler ise yalnızca kameraları, eski görüntüleri ve inceleme öğelerini görüntülemekle sınırlıdır."
+ },
+ "readTheDocumentation": "Dökümantasyonu oku",
+ "list": {
+ "two": "{{0}} ve {{1}}",
+ "many": "{{items}} ve {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "İsteğe bağlı",
+ "internalID": "Frigate’ın yapılandırma ve veritabanında kullandığı Dahili Kimlik"
+ },
+ "information": {
+ "pixels": "{{area}}px"
}
}
diff --git a/web/public/locales/tr/components/auth.json b/web/public/locales/tr/components/auth.json
index dbc444b05a..b66836baef 100644
--- a/web/public/locales/tr/components/auth.json
+++ b/web/public/locales/tr/components/auth.json
@@ -10,6 +10,7 @@
"rateLimit": "İstek sınırı aşıldı. Daha sonra tekrar deneyin.",
"unknownError": "Bilinmeyen hata. Günlükleri kontrol edin."
},
- "user": "Kullanıcı Adı"
+ "user": "Kullanıcı Adı",
+ "firstTimeLogin": "İlk kez giriş yapmayı mı deniyorsunuz? Giriş bilgileri Frigate günlüklerinde görüntülenir."
}
}
diff --git a/web/public/locales/tr/components/camera.json b/web/public/locales/tr/components/camera.json
index 8471d7c849..7885c2653c 100644
--- a/web/public/locales/tr/components/camera.json
+++ b/web/public/locales/tr/components/camera.json
@@ -51,7 +51,8 @@
},
"placeholder": "Bir yayın seçin",
"stream": "Yayın"
- }
+ },
+ "birdseye": "Kuş Bakışı"
},
"icon": "Simge",
"add": "Kamera Grubu Ekle",
diff --git a/web/public/locales/tr/components/dialog.json b/web/public/locales/tr/components/dialog.json
index acdb8ef1ee..35fe451704 100644
--- a/web/public/locales/tr/components/dialog.json
+++ b/web/public/locales/tr/components/dialog.json
@@ -59,12 +59,13 @@
"export": "Dışa Aktar",
"selectOrExport": "Seç veya Dışa Aktar",
"toast": {
- "success": "Dışa aktarım başladı. Dosyaya /exports klasöründe veya Dışa Aktar sekmesinden ulaşabilirsiniz.",
+ "success": "Dışa aktarma başarıyla başlatıldı. Dosyayı dışa aktarmalar sayfasında görüntüleyebilirsiniz.",
"error": {
"failed": "Dışa aktarım başlatılamadı: {{error}}",
"endTimeMustAfterStartTime": "Bitiş zamanı başlangıç zamanından sonra olmalıdır",
"noVaildTimeSelected": "Geçerli bir zaman aralığı seçilmedi"
- }
+ },
+ "view": "Görüntüle"
},
"fromTimeline": {
"saveExport": "Dışa Aktarımı Kaydet",
@@ -117,7 +118,16 @@
"button": {
"export": "Dışa Aktar",
"markAsReviewed": "İncelendi olarak işaretle",
- "deleteNow": "Şimdi Sil"
+ "deleteNow": "Şimdi Sil",
+ "markAsUnreviewed": "Gözden geçirilmedi olarak işaretle"
}
+ },
+ "imagePicker": {
+ "selectImage": "Takip edilen nesnenin küçük resmini seçin",
+ "noImages": "Bu kamera için küçük resim bulunamadı",
+ "search": {
+ "placeholder": "Etiket/alt etiket kullanarak arama yapın..."
+ },
+ "unknownLabel": "Kaydedilen Tetikleme Görseli"
}
}
diff --git a/web/public/locales/tr/components/filter.json b/web/public/locales/tr/components/filter.json
index 96565946f5..ef178d4a04 100644
--- a/web/public/locales/tr/components/filter.json
+++ b/web/public/locales/tr/components/filter.json
@@ -108,7 +108,7 @@
"error": "Takip edilen nesneler silinemedi: {{errorMessage}}"
},
"title": "Silmeyi onayla",
- "desc": "Bu {{objectLength}} adet izlenen nesneyi sildiğinizde ilgili tüm fotoğraflar, kaydedilmiş tüm gömüler ve ilişkili tüm Nesne Geçmişi kayıtları kaldırılır. Bu izlenen nesnelere ait Geçmiş görünümündeki kayıtlı görüntüler SİLİNMEYECEKTİR.
Devam etmek istediğinize emin misiniz?
Gelecekte bu diyaloğu pas geçmek için Shift tuşuna basılı tutarak tıklayın."
+ "desc": "Bu {{objectLength}} adet izlenen nesneyi sildiğinizde ilgili tüm fotoğraflar, kaydedilmiş tüm gömüler ve ilişkili tüm nesne yaşam döngüsü kayıtları kaldırılır. Bu izlenen nesnelere ait Geçmiş görünümündeki kayıtlı görüntüler SİLİNMEYECEKTİR.
Devam etmek istediğinize emin misiniz?
Gelecekte bu diyaloğu pas geçmek için Shift tuşuna basılı tutarak tıklayın."
},
"recognizedLicensePlates": {
"selectPlatesFromList": "Listeden bir veya birden fazla plaka seçin.",
@@ -116,12 +116,26 @@
"loading": "Tanınan plakalar yükleniyor…",
"title": "Tanınan Plakalar",
"noLicensePlatesFound": "Plaka bulunamadı.",
- "loadFailed": "Tanınan plakalar yüklenemedi."
+ "loadFailed": "Tanınan plakalar yüklenemedi.",
+ "selectAll": "Tümünü seç",
+ "clearAll": "Tümünü temizle"
},
"motion": {
"showMotionOnly": "Yalnızca Hareket Olanları Göster"
},
"zoneMask": {
"filterBy": "Alana göre filtrele"
+ },
+ "classes": {
+ "count_one": "{{count}} Sınıf",
+ "count_other": "{{count}} Sınıf",
+ "label": "Sınıflar",
+ "all": {
+ "title": "Tüm Sınıflar"
+ }
+ },
+ "attributes": {
+ "label": "Sınıflandırma Özellikleri",
+ "all": "Tüm Özellikler"
}
}
diff --git a/web/public/locales/tr/views/classificationModel.json b/web/public/locales/tr/views/classificationModel.json
new file mode 100644
index 0000000000..2081188aa4
--- /dev/null
+++ b/web/public/locales/tr/views/classificationModel.json
@@ -0,0 +1,188 @@
+{
+ "documentTitle": "Sınıflandırma Modelleri - Frigate",
+ "details": {
+ "scoreInfo": "Skor, modelin nesneyi tespit ettiği tüm durumlar için ortalama güven düzeyini gösterir.",
+ "none": "Hiçbiri",
+ "unknown": "Bilinmiyor"
+ },
+ "button": {
+ "deleteClassificationAttempts": "Sınıflandırma Fotoğraflarını Sil",
+ "renameCategory": "Sınıfı Yeniden Adlandır",
+ "deleteCategory": "Sınıfı Sil",
+ "deleteImages": "Fotoğrafları Sil",
+ "trainModel": "Modeli Eğit",
+ "addClassification": "Sınıflandırma Ekle",
+ "deleteModels": "Modelleri Sil",
+ "editModel": "Modeli Düzenle"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Silinmiş Sınıf",
+ "deletedImage": "Silinmiş Fotoğraflar",
+ "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ı",
+ "trainedModel": "Model başarıyla eğitildi.",
+ "trainingModel": "Model eğitimi başarıyla başladı.",
+ "updatedModel": "Model yapılandırması başarıyla güncellendi",
+ "renamedCategory": "Sınıf başarıyla {{name}} olarak yeniden adlandırıldı"
+ },
+ "error": {
+ "deleteImageFailed": "Silinemedi: {{errorMessage}}",
+ "deleteModelFailed": "Model silinemedi: {{errorMessage}}",
+ "categorizeFailed": "Görsel sınıflandırılamadı: {{errorMessage}}",
+ "trainingFailed": "Model eğitimi başarısız oldu. Ayrıntılar için Frigate günlüklerini kontrol edin.",
+ "deleteCategoryFailed": "Sınıf silinemedi: {{errorMessage}}",
+ "trainingFailedToStart": "Model eğitimi başlatılamadı: {{errorMessage}}",
+ "updateModelFailed": "Model güncellenemedi: {{errorMessage}}",
+ "renameCategoryFailed": "Sınıf yeniden adlandırılamadı: {{errorMessage}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Sınıfı Sil",
+ "desc": "{{name}} adlı sınıfı silmek istediğinizden emin misiniz? Bu işlem, sınıfa ait tüm görselleri kalıcı olarak silecek ve modelin yeniden eğitilmesini gerektirecektir.",
+ "minClassesTitle": "Sınıf Silinemiyor",
+ "minClassesDesc": "Bu sınıfı silmeden önce bir sınıflandırma modelinin en az 2 sınıfa sahip olması gerekir. Bu sınıfı silmeden önce başka bir sınıf ekleyin."
+ },
+ "deleteModel": {
+ "title": "Sınıflandırma Modelini Sil",
+ "single": "{{name}} öğesini silmek istediğinizden emin misiniz? Bu işlem, görseller ve eğitim verileri dâhil olmak üzere tüm ilişkili verileri kalıcı olarak silecektir. Bu işlem geri alınamaz.",
+ "desc_one": "{{count}} modeli silmek istediğinizden emin misiniz? Bu işlem, görseller ve eğitim verileri dâhil olmak üzere tüm ilişkili verileri kalıcı olarak silecektir. Bu işlem geri alınamaz.",
+ "desc_other": "{{count}} modeli silmek istediğinizden emin misiniz? Bu işlem, görseller ve eğitim verileri dâhil olmak üzere tüm ilişkili verileri kalıcı olarak silecektir. Bu işlem geri alınamaz."
+ },
+ "deleteDatasetImages": {
+ "title": "Eğitim verisi görsellerini sil",
+ "desc_one": "{{dataset}} veri kümesinden {{count}} görseli silmek istediğinizden emin misiniz? Bu işlem geri alınamaz ve modelin yeniden eğitilmesini gerektirir.",
+ "desc_other": "{{dataset}} veri kümesinden {{count}} görseli silmek istediğinizden emin misiniz? Bu işlem geri alınamaz ve modelin yeniden eğitilmesini gerektirir."
+ },
+ "deleteTrainImages": {
+ "title": "Eğitim Görsellerini Sil",
+ "desc_one": "{{count}} görseli silmek istediğinizden emin misiniz? Bu işlem geri alınamaz.",
+ "desc_other": "{{count}} görseli silmek istediğinizden emin misiniz? Bu işlem geri alınamaz."
+ },
+ "renameCategory": {
+ "title": "Sınıfı Yeniden Adlandır",
+ "desc": "{{name}} için yeni bir ad girin. Ad değişikliğinin geçerli olması için modeli yeniden eğitmeniz gerekecektir."
+ },
+ "description": {
+ "invalidName": "Geçersiz isim. İsimler; yalnızca harf, rakam, boşluk, kesme işareti (’), alt çizgi(_) ve tire (-) içerebilir."
+ },
+ "train": {
+ "title": "Son Sınıflandırmalar",
+ "titleShort": "Son",
+ "aria": "Son Sınıflandırmaları Seç"
+ },
+ "categories": "Sınıflar",
+ "createCategory": {
+ "new": "Yeni Sınıf Oluştur"
+ },
+ "categorizeImageAs": "Görseli Şu Şekilde Sınıflandır:",
+ "categorizeImage": "Görseli Sınıflandır",
+ "menu": {
+ "objects": "Nesneler",
+ "states": "Durumlar"
+ },
+ "noModels": {
+ "object": {
+ "title": "Nesne sınıflandırma modeli mevcut değil",
+ "description": "Algılanan nesneleri sınıflandırmak için özel bir model oluşturun.",
+ "buttonText": "Nesne Modeli Oluştur"
+ },
+ "state": {
+ "title": "Durum Sınıflandırma Modeli Yok",
+ "description": "Belirli kamera alanlarındaki durum değişimlerini izlemek ve sınıflandırmak için özel bir model oluşturun.",
+ "buttonText": "Durum Modeli Oluştur"
+ }
+ },
+ "tooltip": {
+ "trainingInProgress": "Model şu anda eğitiliyor",
+ "noNewImages": "Eğitilecek yeni görsel bulunmuyor. Önce veri kümesinde daha fazla görseli sınıflandırın.",
+ "noChanges": "Son eğitimden bu yana veri kümesinde herhangi bir değişiklik yapılmadı.",
+ "modelNotReady": "Model eğitim için hazır değil"
+ },
+ "edit": {
+ "title": "Sınıflandırma Modelini Düzenle",
+ "descriptionState": "Bu durum sınıflandırma modeli için sınıfları düzenleyin. Değişiklikler, modelin yeniden eğitilmesini gerektirecektir.",
+ "descriptionObject": "Bu nesne sınıflandırma modeli için nesne türünü ve sınıflandırma türünü düzenleyin.",
+ "stateClassesInfo": "Not: Durum sınıflarını değiştirmek, modelin güncellenmiş sınıflarla yeniden eğitilmesini gerektirir."
+ },
+ "wizard": {
+ "title": "Yeni Sınıflandırma Oluştur",
+ "steps": {
+ "nameAndDefine": "İsim ver ve Tanımla",
+ "stateArea": "Durum Alanı",
+ "chooseExamples": "Örnekleri Seç"
+ },
+ "step1": {
+ "description": "Durum modelleri, sabit kamera alanlarındaki değişiklikleri (ör. kapının açılması/kapanması) izler. Nesne modelleri ise algılanan nesnelere ek sınıflandırmalar ekler (ör. bilinen hayvanlar, kuryeler vb.).",
+ "name": "İsim",
+ "namePlaceholder": "Model ismi girin...",
+ "type": "Tür",
+ "typeState": "Durum",
+ "typeObject": "Nesne",
+ "objectLabel": "Nesne Etiketi",
+ "objectLabelPlaceholder": "Nesne türünü seçin...",
+ "classificationType": "Sınıflandırma Türü",
+ "classificationTypeTip": "Sınıflandırma türleri hakkında bilgi edinin",
+ "classificationTypeDesc": "Alt etiketler, nesne etiketine ek olarak saklanır (örneğin: “Person: UPS”). Öznitelikler(attributes) ise nesne meta verilerinde saklanan aranabilir meta verilerdir.",
+ "classificationSubLabel": "Alt Etiket",
+ "classificationAttribute": "Özellik",
+ "classes": "Sınıflar",
+ "states": "Durumlar",
+ "classesTip": "Sınıflar hakkında bilgi edinin",
+ "classesStateDesc": "Kamera alanınızın içinde bulunabileceği farklı durumları tanımlayın. Örneğin: bir garaj kapısı için ‘açık’ ve ‘kapalı’.",
+ "classesObjectDesc": "Algılanan nesneleri sınıflandırmak için farklı kategorileri tanımlayın. Örneğin: Bir kişi sınıflandırması için \"kurye\", \"bahçıvan\" veya \"yabancı\" olabilir.",
+ "classPlaceholder": "Sınıf ismi girin...",
+ "errors": {
+ "nameRequired": "Model ismi gereklidir",
+ "nameLength": "Model ismi en fazla 64 karakter olmalıdır",
+ "nameOnlyNumbers": "Model ismi yalnızca rakamlardan oluşamaz",
+ "classRequired": "En az 1 sınıf gereklidir",
+ "classesUnique": "Sınıf isimleri benzersiz olmalıdır",
+ "stateRequiresTwoClasses": "Durum modelleri en az 2 sınıf gerektirir",
+ "objectLabelRequired": "Lütfen bir nesne etiketi seçin",
+ "objectTypeRequired": "Lütfen bir sınıflandırma türü seçin",
+ "noneNotAllowed": "'none' sınıfına izin verilmiyor"
+ }
+ },
+ "step2": {
+ "description": "İzlenecek alanı her kamera için seçin ve tanımlayın. Model bu alanların durumunu sınıflandıracaktır.",
+ "cameras": "Kameralar",
+ "selectCamera": "Kamera Seç",
+ "noCameras": "Kameraları eklemek için + simgesine tıklayın",
+ "selectCameraPrompt": "Listedeki bir kamerayı seçerek izlenecek alanı tanımlayın"
+ },
+ "step3": {
+ "selectImagesPrompt": "{{className}} etiketli tüm görselleri seç",
+ "selectImagesDescription": "Görselleri seçmek için üzerlerine tıklayın. Bu sınıfla işiniz bittiğinde Devam Et’e tıklayın.",
+ "allImagesRequired_one": "Lütfen tüm görselleri sınıflandırın. Bir görsel kaldı.",
+ "allImagesRequired_other": "Lütfen tüm görselleri sınıflandırın. {{count}} görsel kaldı.",
+ "generating": {
+ "title": "Örnek Görseller Oluşturuluyor",
+ "description": "Frigate kayıtlarınızdan temsili görüntüler alınıyor. Bu işlem biraz zaman alabilir…"
+ },
+ "training": {
+ "title": "Model Eğitiliyor",
+ "description": "Modeliniz arka planda eğitiliyor. Bu pencereyi kapatabilirsiniz; eğitim tamamlandığında model otomatik olarak çalışmaya başlayacaktır."
+ },
+ "retryGenerate": "Oluşturmayı Yeniden Dene",
+ "noImages": "Örnek görsel oluşturulamadı",
+ "classifying": "Sınıflandırılıyor ve Eğitiliyor...",
+ "trainingStarted": "Eğitim başarıyla başlatıldı",
+ "modelCreated": "Model başarıyla oluşturuldu. Eksik durumlar için görseller eklemek üzere Son Sınıflandırmalar görünümünü kullanın ve ardından modeli eğitin.",
+ "errors": {
+ "noCameras": "Hiç kamera yapılandırılmadı",
+ "noObjectLabel": "Nesne etiketi seçilmedi",
+ "generateFailed": "Örnekler oluşturulamadı: {{error}}",
+ "generationFailed": "Oluşturma başarısız oldu. Lütfen tekrar deneyin.",
+ "classifyFailed": "Görseller sınıflandırılamadı: {{error}}"
+ },
+ "generateSuccess": "Örnek görseller başarıyla oluşturuldu",
+ "missingStatesWarning": {
+ "title": "Eksik Durum Örnekleri",
+ "description": "En iyi sonuçlar için her bir durum için örnek görseller seçmeniz tavsiye edilir. Tüm durumlar için görsel seçmeden devam edebilirsiniz fakat tüm durumlar için görseller seçilmedikçe model eğitilemeyecektir. Son Sınıflandırmalar arayüzünü kullanarak görselleri sınıflandırmak üzere görüntüleyebilir, yeterince görsel seçildikten sonra da modeli eğitebilirsiniz."
+ }
+ }
+ },
+ "none": "Yok"
+}
diff --git a/web/public/locales/tr/views/configEditor.json b/web/public/locales/tr/views/configEditor.json
index c4aa01b6bd..32ffdb2cb7 100644
--- a/web/public/locales/tr/views/configEditor.json
+++ b/web/public/locales/tr/views/configEditor.json
@@ -12,5 +12,7 @@
"configEditor": "Yapılandırma Düzenleyicisi",
"documentTitle": "Yapılandırma Düzenleyicisi - Frigate",
"saveAndRestart": "Kaydet & Yeniden Başlat",
- "confirm": "Kaydetmeden çıkılsın mı?"
+ "confirm": "Kaydetmeden çıkılsın mı?",
+ "safeConfigEditor": "Yapılandırma Düzenleyicisi (Güvenli Mod)",
+ "safeModeDescription": "Frigate, yapılandırmanızdaki bir hata nedeniyle güvenli moda geçti."
}
diff --git a/web/public/locales/tr/views/events.json b/web/public/locales/tr/views/events.json
index 3f363c70fe..ae9a0d463d 100644
--- a/web/public/locales/tr/views/events.json
+++ b/web/public/locales/tr/views/events.json
@@ -1,10 +1,10 @@
{
"camera": "kamera",
- "alerts": "Alarmlar",
+ "alerts": "Uyarılar",
"detections": "Tespitler",
"empty": {
"detection": "İncelenecek tespit öğesi yok",
- "alert": "İncelenecek alarm öğesi yok",
+ "alert": "İncelenecek uyarı öğesi yok",
"motion": "Hareket verisi bulunamadı"
},
"timeline": "Zaman şeridi",
@@ -34,5 +34,30 @@
"allCameras": "Tüm Kameralar",
"selected_one": "{{count}} seçildi",
"selected_other": "{{count}} seçildi",
- "detected": "algılandı"
+ "detected": "algılandı",
+ "suspiciousActivity": "Şüpheli Etkinlik",
+ "threateningActivity": "Tehlikeli Etkinlik",
+ "zoomIn": "Büyüt",
+ "zoomOut": "Küçült",
+ "detail": {
+ "label": "Detay",
+ "aria": "Ayrıntı görünümünü aç/kapat",
+ "trackedObject_one": "{{count}} nesne",
+ "trackedObject_other": "{{count}} nesne",
+ "noObjectDetailData": "Nesneye ait ayrıntılı veri bulunmuyor.",
+ "settings": "Ayrıntılı Görünüm Ayarları",
+ "alwaysExpandActive": {
+ "title": "Etkin olanı her zaman genişlet",
+ "desc": "Varsa, etkin inceleme öğesinin nesne ayrıntılarını daima göster."
+ },
+ "noDataFound": "İncelenecek ayrıntılı veri bulunmuyor"
+ },
+ "objectTrack": {
+ "trackedPoint": "Takip edilen nokta",
+ "clickToSeek": "Bu zamana atlamak için tıklayın"
+ },
+ "normalActivity": "Normal",
+ "needsReview": "İnceleme Gerekiyor",
+ "securityConcern": "Güvenlik endişesi",
+ "select_all": "Tümü"
}
diff --git a/web/public/locales/tr/views/explore.json b/web/public/locales/tr/views/explore.json
index 485fe9b43c..de2055e1af 100644
--- a/web/public/locales/tr/views/explore.json
+++ b/web/public/locales/tr/views/explore.json
@@ -10,7 +10,7 @@
"viewInExplore": "Keşfet'te Görüntüle"
},
"tips": {
- "hasMissingObjects": "Eğer Frigate'in {{objects}} etiketine sahip nesneleri kaydetmesini istiyorsanız yapılandırmanızı buna göre ayarlayın.",
+ "hasMissingObjects": "Eğer Frigate'in {{objects}} etiketine sahip nesneleri kaydetmesini istiyorsanız yapılandırmanızı buna göre ayarlayın",
"mismatch_one": "Tespit edilmiş olan bir nesne bu İncele öğesine dahil edildi. Bu nesne Alarm veya Tespit olarak derecelendirilemedi veya çoktan silindi/temizlendi.",
"mismatch_other": "Tespit edilmiş olan {{count}} adet nesne bu İncele öğesine dahil edildi. Bu nesneler Alarm veya Tespit olarak derecelendirilemedi veya çoktan silindi/temizlendi."
},
@@ -18,12 +18,16 @@
"success": {
"updatedSublabel": "Alt etiket başarıyla gücellendi.",
"regenerate": "Yeni bir açıklama {{provider}} sağlayıcısından talep edildi. Sağlayıcının hızına bağlı olarak yeni açıklamanın oluşturulması biraz zaman alabilir.",
- "updatedLPR": "Plaka başarıyla güncellendi."
+ "updatedLPR": "Plaka başarıyla güncellendi.",
+ "audioTranscription": "Ses dökümü başarıyla istendi. Frigate sunucunuzun hızına bağlı olarak döküm işlemi tamamlanması biraz zaman alabilir.",
+ "updatedAttributes": "Özellikler başarıyla güncellendi."
},
"error": {
"updatedSublabelFailed": "Alt etiket güncellenemedi: {{errorMessage}}",
"regenerate": "{{provider}} sağlayıcısından yeni açıklama talep edilemedi: {{errorMessage}}",
- "updatedLPRFailed": "Plaka güncellenemedi: {{errorMessage}}"
+ "updatedLPRFailed": "Plaka güncellenemedi: {{errorMessage}}",
+ "audioTranscription": "Ses çözümlemesi talep edilemedi: {{errorMessage}}",
+ "updatedAttributesFailed": "Öznitelikler güncellenemedi: {{errorMessage}}"
}
}
},
@@ -68,7 +72,15 @@
"recognizedLicensePlate": "Tanınan Plaka",
"snapshotScore": {
"label": "Fotoğraf Skoru"
- }
+ },
+ "score": {
+ "label": "Skor"
+ },
+ "editAttributes": {
+ "title": "Özellikleri düzenle",
+ "desc": "Bu {{label}} için sınıflandırma özelliklerini seçin"
+ },
+ "attributes": "Sınıflandırma Özellikleri"
},
"generativeAI": "Üretken Yapay Zeka",
"exploreIsUnavailable": {
@@ -102,12 +114,14 @@
"trackedObjectDetails": "Takip Edilen Nesne Detayları",
"type": {
"details": "detaylar",
- "object_lifecycle": "nesne geçmişi",
+ "object_lifecycle": "nesne yaşam döngüsü",
"snapshot": "fotoğraf",
- "video": "video"
+ "video": "video",
+ "thumbnail": "küçük resim",
+ "tracking_details": "izleme ayrıntıları"
},
"objectLifecycle": {
- "title": "Nesne Geçmişi",
+ "title": "Nesne Yaşam Döngüsü",
"noImageFound": "Bu zaman damgası için bir resim bulunamadı.",
"createObjectMask": "Nesne Maskesi Oluştur",
"adjustAnnotationSettings": "Belirteç ayarları",
@@ -150,7 +164,7 @@
"next": "Sonraki sayfa",
"previous": "Önceki sayfa"
},
- "scrollViewTips": "Bu nesnenin geçmişindeki önemli noktaları görmek için kaydırın.",
+ "scrollViewTips": "Bu nesnenin yaşam döngüsündeki önemli noktaları görmek için kaydırın.",
"autoTrackingTips": "Otomatik takip yapılan kameralarda gösterilen çerçeveler hatalı olacaktır.",
"count": "Toplam {{second}} kerede {{first}} kez",
"trackedPoint": "Takip Edilen Nokta"
@@ -182,6 +196,28 @@
"downloadSnapshot": {
"aria": "Fotoğrafı indir",
"label": "Fotoğrafı indir"
+ },
+ "addTrigger": {
+ "label": "Tetik ekle",
+ "aria": "Bu takip edilen nesne için bir tetik ekle"
+ },
+ "audioTranscription": {
+ "label": "Çözümle",
+ "aria": "Ses çözümlemesi iste"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Temiz anlık görüntüyü indir",
+ "aria": "Temiz anlık görüntüyü indir"
+ },
+ "viewTrackingDetails": {
+ "label": "Takip ayrıntılarını görüntüle",
+ "aria": "Takip ayrıntılarını göster"
+ },
+ "showObjectDetails": {
+ "label": "Nesne yolunu göster"
+ },
+ "hideObjectDetails": {
+ "label": "Nesne yolunu gizle"
}
},
"noTrackedObjects": "Takip Edilen Nesne Bulunamadı",
@@ -193,15 +229,72 @@
"success": "Takip edilen nesne başarıyla silindi."
}
},
- "tooltip": "Eşleşme: {{type}} (%{{confidence}})"
+ "tooltip": "Eşleşme: {{type}} (%{{confidence}})",
+ "previousTrackedObject": "Önceki izlenen nesne",
+ "nextTrackedObject": "Sonraki izlenen nesne"
},
"dialog": {
"confirmDelete": {
- "desc": "Bu takip edilen nesneyi silmek nesne fotoğrafını, ilişkili gömüyü ve ilişkili yaşam döngüsü kayıtlarını siler. Video kayıt görüntüleri geçmiş görünümünden SİLİNMEYECEKTİR.
Devam etmek istediğinize emin misiniz?",
+ "desc": "Bu takip edilen nesneyi silmek anlık görüntüyü, kaydedilmiş gömü verilerini ve ilişkili yaşam döngüsü kayıtlarını siler. Geçmiş görünümündeki bu izlenen nesneye ait kayıtlı video görüntüleri SİLİNMEYECEKTİR.
Devam etmek istediğinizden emin misiniz?",
"title": "Silmeyi onayla"
}
},
"trackedObjectsCount_one": "{{count}} adet takip edilen nesne ",
"trackedObjectsCount_other": "{{count}} adet takip edilen nesne ",
- "exploreMore": "Daha fazla {{label}} nesnesini keşfet"
+ "exploreMore": "Daha fazla {{label}} nesnesini keşfet",
+ "aiAnalysis": {
+ "title": "Yapay Zeka Analizi"
+ },
+ "trackingDetails": {
+ "title": "Takip Ayrıntıları",
+ "noImageFound": "Bu zaman damgasına ait bir görsel bulunamadı.",
+ "createObjectMask": "Nesne Maskesi Oluştur",
+ "adjustAnnotationSettings": "Etiketleme ayarlarını düzenle",
+ "scrollViewTips": "Bu nesnenin yaşam döngüsündeki önemli olayları görmek için tıklayın.",
+ "autoTrackingTips": "Otomatik takip yapan kameralar için sınır kutusu konumları doğru olmayabilir.",
+ "count": "{{second}}’den {{first}}",
+ "trackedPoint": "Takip edilen nokta",
+ "lifecycleItemDesc": {
+ "visible": "{{label}} tespit edildi",
+ "entered_zone": "{{label}}, {{zones}} bölgesine girdi",
+ "active": "{{label}} etkin hale geldi",
+ "stationary": "{{label}} sabit hale geldi",
+ "attribute": {
+ "faceOrLicense_plate": "{{label}} için {{attribute}} tespit edildi",
+ "other": "{{label}}, {{attribute}} olarak tanındı"
+ },
+ "gone": "{{label}} ayrıldı",
+ "heard": "{{label}} duyuldu",
+ "external": "{{label}} tespit edildi",
+ "header": {
+ "zones": "Bölgeler",
+ "ratio": "Oran",
+ "area": "Alan",
+ "score": "Skor"
+ }
+ },
+ "annotationSettings": {
+ "title": "Etiketleme Ayarları",
+ "showAllZones": {
+ "title": "Tüm Bölgeleri Göster",
+ "desc": "Herhangi bir bölgeye nesne girdiğinde, o karede bölgeleri her zaman göster."
+ },
+ "offset": {
+ "label": "Etiket Kaydırma Değeri",
+ "desc": "Bu veriler kameranızın algılama akışından gelir ancak kayıt akışındaki görüntülerin üzerine bindirilir. İki akış tamamen eşzamanlı olmayabilir, bu durum da sınır kutusu ile görüntünün hizasını kaydırabilir. Bu ayarı kullanarak zaman senkronunu ileri veya geri kaydırarak kayıt akışını ve etiketlemeleri hizalayabilirsiniz.",
+ "millisecondsToOffset": "Algılama etiketlemelerinin kaydırılacağı milisaniye değeri. Varsayılan: 0",
+ "tips": "Videonun oynatımı kutulardan ve yol noktalarından öndeyse değeri düşürün; geride kalıyorsa değeri artırın. Bu değer negatif olabilir.",
+ "toast": {
+ "success": "{{camera}} için etiketleme zaman kaydırması yapılandırma dosyasına kaydedildi."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Önceki slayt",
+ "next": "Sonraki slayt"
+ }
+ },
+ "concerns": {
+ "label": "Endişeler"
+ }
}
diff --git a/web/public/locales/tr/views/exports.json b/web/public/locales/tr/views/exports.json
index 3a1d195121..0c8fec129f 100644
--- a/web/public/locales/tr/views/exports.json
+++ b/web/public/locales/tr/views/exports.json
@@ -13,5 +13,11 @@
"renameExportFailed": "Dışa aktarım adlandırılamadı: {{errorMessage}}"
}
},
- "noExports": "Dışa aktarım bulunamadı"
+ "noExports": "Dışa aktarım bulunamadı",
+ "tooltip": {
+ "shareExport": "Dışa aktarmayı paylaş",
+ "downloadVideo": "Videoyu İndir",
+ "editName": "İsmi Düzenle",
+ "deleteExport": "Dışa Aktarmayı Sil"
+ }
}
diff --git a/web/public/locales/tr/views/faceLibrary.json b/web/public/locales/tr/views/faceLibrary.json
index 428d6eaf2d..1417eff6dc 100644
--- a/web/public/locales/tr/views/faceLibrary.json
+++ b/web/public/locales/tr/views/faceLibrary.json
@@ -2,8 +2,8 @@
"selectItem": "{{item}} seçin",
"description": {
"placeholder": "Bu koleksiyona bir isim verin",
- "addFace": "Yüz Kütüphanesi’ne yeni bir koleksiyon ekleme adımlarını takip edin.",
- "invalidName": "Geçersiz isim. İsimlerde yalnızca harf, sayı, boşluk, kesme işareti, tire veya alt çizgi kullanılabilir."
+ "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."
},
"details": {
"person": "İnsan",
@@ -13,7 +13,7 @@
"face": "Yüz Detayları",
"scoreInfo": "Alt etiket skoru, tanınan tüm yüzlerin güvenilirlik değerlerinin ağırlıklı ortalamasından elde edilir, dolayısıyla fotoğraf üzerinde gösterilen skordan farklı olabilir.",
"subLabelScore": "Alt Etiket Puanı",
- "unknown": "Bilinmeyen"
+ "unknown": "Bilinmiyor"
},
"documentTitle": "Yüz Kütüphanesi - Frigate",
"uploadFaceImage": {
@@ -24,12 +24,13 @@
"desc": "Yeni bir yüz koleksiyonu oluşturun",
"new": "Yeni Yüz Oluştur",
"title": "Koleksiyon Oluştur",
- "nextSteps": "Sağlam bir temel oluşturmak için:
Her tespit edilen kişi için 'Eğit' sekmesinden resimler seçip eğitin.
En iyi sonuçlar için doğrudan karşıdan çekilmiş yüz resimlerine odaklanın; açılı yüz resimlerinden kaçının.
"
+ "nextSteps": "Sağlam bir temel oluşturmak için:
Her tespit edilen kişi için **Recent Recognitions (Son Tanımalar)** sekmesini kullanarak görüntüleri seçin ve eğitim gerçekleştirin.
En iyi sonuçlar için doğrudan önden çekilmiş yüz görüntülerine odaklanın; yüzlerin açılı göründüğü fotoğrafları eğitimde kullanmaktan kaçının.
"
},
"train": {
- "title": "Eğit",
- "aria": "Eğitimi seç",
- "empty": "Yakın zamanda yüz tanıma denemesi olmadı"
+ "title": "Son Tanımalar",
+ "aria": "Son algılanan nesneleri seç",
+ "empty": "Yakın zamanda yüz tanıma denemesi olmadı",
+ "titleShort": "Son"
},
"deleteFaceLibrary": {
"title": "İsmi Sil",
@@ -49,7 +50,7 @@
"validation": {
"selectImage": "Lütfen bir resim dosyası seçin."
},
- "dropInstructions": "Bir resmi buraya sürükleyip bırakın ya da tıklayarak seçin"
+ "dropInstructions": "Bir görseli buraya sürükleyip bırakın, yapıştırın ya da seçmek için tıklayın"
},
"trainFaceAs": "Yüzü şu olarak eğit:",
"toast": {
@@ -61,7 +62,7 @@
"addFaceLibrary": "{{name}} başarıyla Yüz Kütüphanesi’ne eklendi!",
"trainedFace": "Yüz başarıyla eğitildi.",
"uploadedImage": "Resim başarıyla yüklendi.",
- "updatedFaceScore": "Yüz skoru başarıyla güncellendi.",
+ "updatedFaceScore": "Yüz tanıma skoru {{name}} ({{score}}) olarak başarıyla güncellendi.",
"renamedFace": "Yüz başarıyla {{name}} olarak adlandırıldı"
},
"error": {
diff --git a/web/public/locales/tr/views/live.json b/web/public/locales/tr/views/live.json
index 88f0408566..929b271819 100644
--- a/web/public/locales/tr/views/live.json
+++ b/web/public/locales/tr/views/live.json
@@ -10,7 +10,7 @@
"enable": "Otomatik Takibi Aç"
},
"manualRecording": {
- "start": "Talep üzerine kaydı başlat",
+ "start": "Talep Üzerine Kaydı Başlat",
"failedToEnd": "Manuel talep üzerine kayıt bitirilemedi.",
"recordDisabledTips": "Kamera konfigürasyonunda kayıtlar devre dışı bırakıldığı veya kısıtlandığı için yalnızca bir fotoğraf kaydedilcektir.",
"showStats": {
@@ -19,11 +19,11 @@
},
"started": "Manuel talep üzerine kayıt başlatıldı.",
"failedToStart": "Manuel talep üzerine kayıt başlatılamadı.",
- "title": "İsteğe Bağlı Kayıt",
- "end": "Talep üzerine kaydı bitir",
+ "title": "İsteğe Bağlı",
+ "end": "Talep Üzerine Kaydı Bitir",
"debugView": "Hata Ayıklama Görünümü",
"ended": "Manuel talep üzerine kayıt bitirildi.",
- "tips": "Bu kameranın kayıt tutma ayarları kapsamında manuel olarak bir olay başlatın.",
+ "tips": "Bu kameranın kayıt saklama ayarlarına göre anlık bir görüntü indirin veya manuel bir olay başlatın.",
"playInBackground": {
"label": "Arka planda oynat",
"desc": "Yayını oynatıcı arkadayken de devam ettirmek için bu seçeneği açın."
@@ -52,7 +52,10 @@
"label": "Arka planda oynat",
"tips": "Yayını oynatıcı arkadayken de devam ettirmek için bu seçeneği açın."
},
- "title": "Yayın"
+ "title": "Yayın",
+ "debug": {
+ "picker": "Hata ayıklama modunda akış seçimi kullanılamaz. Hata ayıklama görünümü her zaman tespit(detect) rolüne atanmış akışı kullanır."
+ }
},
"cameraSettings": {
"recording": "Kayıt",
@@ -60,8 +63,9 @@
"title": "{{camera}} Ayarları",
"autotracking": "Otomatik Takip",
"cameraEnabled": "Kamera Açık",
- "objectDetection": "Nesne Algılama",
- "audioDetection": "Ses Algılama"
+ "objectDetection": "Nesne Tespiti",
+ "audioDetection": "Ses Algılama",
+ "transcription": "Ses Çözümlemesi"
},
"effectiveRetainMode": {
"modes": {
@@ -115,14 +119,22 @@
"center": {
"label": "PTZ kamerayı ortalamak için görüntüye tıklatın"
}
+ },
+ "focus": {
+ "in": {
+ "label": "PTZ kamera odağını yakınlaştır"
+ },
+ "out": {
+ "label": "PTZ kamera odağını uzaklaştır"
+ }
}
},
"history": {
"label": "Geçmiş görüntüleri göster"
},
"camera": {
- "enable": "Kamerayı aç",
- "disable": "Kamerayı kapat"
+ "enable": "Kamerayı Aç",
+ "disable": "Kamerayı Kapat"
},
"suspend": {
"forTime": "Askıya alınma süresi: "
@@ -154,5 +166,24 @@
"detect": {
"disable": "Tespiti Kapat",
"enable": "Tespiti Aç"
+ },
+ "transcription": {
+ "enable": "Canlı Ses Çözümlemeyi Aç",
+ "disable": "Canlı Ses Çözümlemeyi Kapat"
+ },
+ "snapshot": {
+ "takeSnapshot": "Anlık görüntüyü indir",
+ "noVideoSource": "Anlık görüntü için kullanılabilir bir video kaynağı bulunamadı.",
+ "captureFailed": "Anlık görüntü yakalanamadı.",
+ "downloadStarted": "Anlık görüntü indirme işlemi başlatıldı."
+ },
+ "noCameras": {
+ "title": "Yapılandırılmış Kamera Yok",
+ "description": "Frigate’e bir kamera bağlayarak başlayın.",
+ "buttonText": "Kamera Ekle",
+ "restricted": {
+ "title": "Kullanılabilir Kamera Yok",
+ "description": "Bu gruptaki kameraları görüntüleme izniniz yok."
+ }
}
}
diff --git a/web/public/locales/tr/views/search.json b/web/public/locales/tr/views/search.json
index 0590233081..2de2edf477 100644
--- a/web/public/locales/tr/views/search.json
+++ b/web/public/locales/tr/views/search.json
@@ -19,11 +19,12 @@
"time_range": "Zaman Aralığı",
"before": "Önce",
"zones": "Alanlar",
- "after": "Sonras",
+ "after": "Sonra",
"has_clip": "Klibi var",
"min_speed": "Min. Hız",
"sub_labels": "Alt Etiketler",
- "max_speed": "Maks. Hız"
+ "max_speed": "Maks. Hız",
+ "attributes": "Özellikler"
},
"searchType": {
"description": "Açıklama",
diff --git a/web/public/locales/tr/views/settings.json b/web/public/locales/tr/views/settings.json
index 590702370c..33ffdd792f 100644
--- a/web/public/locales/tr/views/settings.json
+++ b/web/public/locales/tr/views/settings.json
@@ -8,9 +8,11 @@
"motionTuner": "Hareket Algılama Ayarları - Frigate",
"frigatePlus": "Frigate+ Ayarları - Frigate",
"object": "Hata Ayıklama - Frigate",
- "general": "Genel Ayarlar - Frigate",
+ "general": "Kullanıcı Arayüzü Ayarları – Frigate",
"notifications": "Bildirim Ayarları - Frigate",
- "enrichments": "Zenginleştirme Ayarları - Frigate"
+ "enrichments": "Zenginleştirme Ayarları - Frigate",
+ "cameraManagement": "Kameraları Yönet - Frigate",
+ "cameraReview": "Kamera İnceleme Ayarları - Frigate"
},
"menu": {
"masksAndZones": "Maskeler / Alanlar",
@@ -22,10 +24,14 @@
"classification": "Sınıflandırma",
"debug": "Hata Ayıklama",
"cameras": "Kamera Ayarları",
- "enrichments": "Zenginleştirmeler"
+ "enrichments": "Zenginleştirmeler",
+ "triggers": "Tetikler",
+ "cameraManagement": "Yönetim",
+ "cameraReview": "İncele",
+ "roles": "Roller"
},
"general": {
- "title": "Genel Ayarlar",
+ "title": "Kullanıcı Arayüzü Ayarları",
"liveDashboard": {
"automaticLiveView": {
"label": "Otomatik Canlı Görünüm",
@@ -33,9 +39,17 @@
},
"playAlertVideos": {
"label": "Alarm Videolarını Oynat",
- "desc": "Varsayılan olarak canlı görüntü panelinde gösterilen son alarmlar ufak videolar olarak oynatılır. Bu tarayıcı/cihazda video yerine sabit resim göstermek için bu seçeneği kapatın."
+ "desc": "Varsayılan olarak canlı görüntü panelinde gösterilen son uyarılar ufak videolar olarak oynatılır. Bu tarayıcı/cihazda video yerine sabit resim göstermek için bu seçeneği kapatın."
},
- "title": "Canlı Görüntü Paneli"
+ "title": "Canlı Görüntü Paneli",
+ "displayCameraNames": {
+ "label": "Kamera Adlarını Daima Göster",
+ "desc": "Çok kameralı canlı izleme panelinde, kamera adlarını her zaman bir etiket içinde göster."
+ },
+ "liveFallbackTimeout": {
+ "label": "Canlı Oynatıcı Yedeğe Geçiş Zaman Aşımı",
+ "desc": "Bir kameranın yüksek kaliteli canlı akışı kullanılamadığında, belirtilen saniye kadar sonra düşük bant genişliği moduna geç. Varsayılan: 3."
+ }
},
"storedLayouts": {
"desc": "Kamera grubundaki kameraların düzenini kameraları sürükleyerek ve büyüterek/küçülterek değiştirebilirsiniz. Düzen bilgisi tarayıcınızda depolanır.",
@@ -177,6 +191,44 @@
"streams": {
"desc": "Frigate yeniden başlataılana kadar bir kamerayı devre dışı bırakın. Bir kameranın devre dışı bırakılması, Frigate'in bu kamerayı işlemesini tamamen durdurur. Algılama, kayıt ve hata ayıklama özellikleri kullanılamaz. Not: Bu eylem, go2rtc'deki yeniden akışları devre dışı bırakmaz.",
"title": "Akışlar"
+ },
+ "object_descriptions": {
+ "title": "Üretken AI Nesne Açıklamaları",
+ "desc": "Bu kamera için Üretken Yapay Zeka kullanarak nesne açıklamaları oluşturmayı geçici olarak etkinleştirin/devre dışı bırakın. Devre dışı bırakıldığında, bu kamerada takip edilen nesneler için yapay zekadan nesne açıklamaları talep edilmeyecektir."
+ },
+ "review_descriptions": {
+ "title": "Üretken AI İnceleme Öğesi Açıklamaları",
+ "desc": "Bu kamera için Üretken Yapay Zeka kullanarak inceleme öğelerinin açıklamalarını oluşturmayı geçici olarak etkinleştirin/devre dışı bırakın. Devre dışı bırakıldığında, bu kameraya bağlı inceleme öğeleri için yapay zekadan açıklama metni talep edilmeyecektir."
+ },
+ "addCamera": "Yeni Kamera Ekle",
+ "editCamera": "Kamerayı Düzenle:",
+ "selectCamera": "Kamera Seç",
+ "backToSettings": "Kamera Ayarlarına Dön",
+ "cameraConfig": {
+ "add": "Kamera Ekle",
+ "edit": "Kamerayı Düzenle",
+ "description": "Kameranızın ayarlarını, kameraların akışları ve roller de dahil olacak şekilde yapılandırın.",
+ "name": "Kamera İsmi",
+ "nameRequired": "Kamera adı gereklidir",
+ "nameInvalid": "Kamera adı yalnızca harf, rakam, alt çizgi veya tire içerebilir",
+ "namePlaceholder": "örn: onkapi",
+ "enabled": "Açık",
+ "ffmpeg": {
+ "inputs": "Kamera Girdi Akışları",
+ "path": "Akış Yolu",
+ "pathRequired": "Akış yolu gereklidir",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Roller",
+ "rolesRequired": "En az bir rol gereklidir",
+ "rolesUnique": "Her rol (ses, tespit, kayıt) yalnızca bir adet yayına atanabilir. Her rol aynı akışı kullanabilir, lakin bir rol birden fazla akışa atanamaz.",
+ "addInput": "Girdi Akışı Ekle",
+ "removeInput": "Girdi Akışını Kaldır",
+ "inputsRequired": "En az bir girdi akışı gereklidir"
+ },
+ "toast": {
+ "success": "Kamera {{cameraName}} başarıyla kaydedildi"
+ },
+ "nameLength": "Kamera ismi 24 karakterden kısa olmalıdır."
}
},
"masksAndZones": {
@@ -198,7 +250,8 @@
"hasIllegalCharacter": "Alan adı geçersiz karakterler içeriyor.",
"mustNotBeSameWithCamera": "Alan adı kamera adıyla aynı olmamalıdır.",
"alreadyExists": "Bu kamera için bu ada sahip bir alan zaten mevcut.",
- "mustNotContainPeriod": "Alan adı nokta içermemelidir."
+ "mustNotContainPeriod": "Alan adı nokta içermemelidir.",
+ "mustHaveAtLeastOneLetter": "Bölge ismi en az bir harf içermelidir."
}
},
"distance": {
@@ -254,7 +307,7 @@
"name": {
"inputPlaceHolder": "Bir isim girin…",
"title": "İsim",
- "tips": "Ad en az 2 karakter olmalı ve bir kamera veya başka bir bölgenin adı olmamalıdır."
+ "tips": "İsim 2 karakter veya daha uzun olmalı, en az bir harf içermeli ve bu kameradaki bir kamera ismi veya başka bir bölge ismiyle çakışmamalıdır."
},
"inertia": {
"title": "Eylemsizlik",
@@ -290,7 +343,7 @@
"title": "Hız Alt Sınırı ({{unit}})"
},
"toast": {
- "success": "Alan ({{zoneName}}) kaydedildi. Değişiklikleri uygulamak için Frigate'i yeniden başlatın."
+ "success": "Bölge ({{zoneName}}) kaydedildi."
},
"allObjects": "Bütün Nesneler"
},
@@ -310,8 +363,8 @@
},
"toast": {
"success": {
- "title": "{{polygonName}} kaydedildi. Değişiklikleri uygulamak için Frigate'i yeniden başlatın.",
- "noName": "Hareket Maskesi kaydedildi. Değişiklikleri uygulamak için Frigate'i yeniden başlatın."
+ "title": "{{polygonName}} kaydedildi.",
+ "noName": "Hareket Maskesi kaydedildi."
}
},
"desc": {
@@ -339,8 +392,8 @@
"edit": "Nesne Maskesini Düzenle",
"toast": {
"success": {
- "noName": "Nesne Maskesi kaydedildi. Değişiklikleri uygulamak için Frigate'i yeniden başlatın.",
- "title": "{{polygonName}} kaydedildi. Değişiklikleri uygulamak için Frigate'i yeniden başlatın."
+ "noName": "Nesne Maskesi kaydedildi.",
+ "title": "{{polygonName}} kaydedildi."
}
},
"documentTitle": "Nesne Maskesini Düzenle - Frigate",
@@ -396,7 +449,7 @@
"regions": {
"title": "Tespit Bölgeleri",
"desc": "Nesne algılayıcıya gönderilen tespit alanlarını göster",
- "tips": "
Bölge Kutuları
Görüntüdeki nesne dedektörüne gönderilen tespit alanları parlak yeşil renk çerçeve ile gösterilir.
"
+ "tips": "
Bölge Kutuları
Nesne dedektörüne gönderilen tespit alanları görüntüde parlak yeşil renk çerçeve ile gösterilir.
"
},
"objectShapeFilterDrawing": {
"title": "Nesne Şekil Filtresi Çizimi",
@@ -419,7 +472,20 @@
"desc": "Tanımlanmış alanların sınırlarını göster"
},
"objectList": "Nesne Listesi",
- "desc": "Hata ayıklama görünümü, izlenen nesnelerin ve istatistiklerinin gerçek zamanlı bir görünümünü gösterir. Nesne listesi algılanan nesnelerin zaman gecikmeli bir özetini gösterir."
+ "desc": "Hata ayıklama görünümü, izlenen nesnelerin ve istatistiklerinin gerçek zamanlı bir görünümünü gösterir. Nesne listesi algılanan nesnelerin zaman gecikmeli bir özetini gösterir.",
+ "paths": {
+ "title": "Hareket İzi",
+ "desc": "Takip edilen nesnenin hareket izi üzerindeki önemli noktaları göster",
+ "tips": "
Hareket İzi
Çizgiler ve daireler, takip edilen nesnenin yaşam döngüsü boyunca hareket ettiği önemli noktaları gösterir.
"
+ },
+ "openCameraWebUI": "{{camera}}'nın Web Arayüzünü Aç",
+ "audio": {
+ "title": "Ses",
+ "noAudioDetections": "Ses tespiti yok",
+ "score": "skor",
+ "currentRMS": "Şu Anki RMS",
+ "currentdbFS": "Şu Anki dbFS"
+ }
},
"users": {
"title": "Kullanıcılar",
@@ -449,7 +515,7 @@
"changeRole": "Kullanıcı rolünü değiştir",
"deleteUser": "Kullanıcıyı sil",
"role": "Rol",
- "password": "Parola"
+ "password": "Parola Sıfırla"
},
"dialog": {
"form": {
@@ -473,7 +539,16 @@
"veryStrong": "Çok Güçlü"
},
"notMatch": "Parolalar eşleşmiyor",
- "match": "Parolalar eşleşiyor"
+ "match": "Parolalar eşleşiyor",
+ "show": "Parolay⁸ göster",
+ "hide": "Parolayı gizle",
+ "requirements": {
+ "title": "Parola gereksinimleri:",
+ "length": "En az 8 karakter",
+ "uppercase": "En az bir büyük harf",
+ "digit": "En az bir rakam",
+ "special": "En az bir özel karakter (!@#$%^&*(),.?\":{}|<>)"
+ }
},
"newPassword": {
"placeholder": "Yeni parola girin",
@@ -483,7 +558,11 @@
"title": "Yeni Parola"
},
"usernameIsRequired": "Kullanıcı adı gereklidir",
- "passwordIsRequired": "Parola gereklidir"
+ "passwordIsRequired": "Parola gereklidir",
+ "currentPassword": {
+ "title": "Mevcut Parola",
+ "placeholder": "Mevcut parolanızı girin"
+ }
},
"createUser": {
"title": "Yeni Kullanıcı Oluştur",
@@ -501,7 +580,12 @@
"setPassword": "Parola Belirle",
"desc": "Bu hesabı güvenli hale getirmek güçlü bir parola belirleyin.",
"cannotBeEmpty": "Parola boş olamaz",
- "doNotMatch": "Parolalar eşleşmiyor"
+ "doNotMatch": "Parolalar eşleşmiyor",
+ "currentPasswordRequired": "Mevcut parola gereklidir",
+ "incorrectCurrentPassword": "Mevcut parola yanlış",
+ "passwordVerificationFailed": "Parola doğrulanamadı",
+ "multiDeviceWarning": "Oturum açtığınız diğer tüm cihazların {{refresh_time}} süresi içinde yeniden oturum açması gerekecektir.",
+ "multiDeviceAdmin": "JWT gizli anahtarınızı yenileyerek tüm kullanıcıları derhal yeniden doğrulama yapmaya zorlayabilirsiniz."
},
"changeRole": {
"title": "Kullanıcı Rolünü Değiştir",
@@ -511,12 +595,13 @@
"intro": "Bu kullanıcı için bir rol seçin:",
"admin": "Yönetici",
"viewer": "Görüntüleyici",
- "viewerDesc": "Yalnızca Canlı, İncele, Keşfet ve Dışa Aktar'a girebilir."
+ "viewerDesc": "Yalnızca Canlı, İncele, Keşfet ve Dışa Aktar'a girebilir.",
+ "customDesc": "Belirli kamera erişimine sahip özel rol."
},
"select": "Bir rol seçin"
}
},
- "updatePassword": "Parola Belirle"
+ "updatePassword": "Parola Sıfırla"
},
"notification": {
"title": "Bildirimler",
@@ -679,5 +764,454 @@
"success": "Zenginleştirme ayarları kaydedildi. Değişiklikleri uygulamak için Frigate'i yeniden başlatın.",
"error": "Yapılandırma değişiklikleri kaydedilemedi: {{errorMessage}}"
}
+ },
+ "triggers": {
+ "dialog": {
+ "form": {
+ "name": {
+ "error": {
+ "invalidCharacters": "Girdi yalnızca harf, rakam, alt çizgi ve tire içerebilir.",
+ "minLength": "Girdi en az 2 karakter uzunluğunda olmalıdır.",
+ "alreadyExists": "Bu kamerada aynı isimle bir tetik zaten mevcut."
+ },
+ "title": "İsim",
+ "placeholder": "Bu tetikleyiciye isim verin",
+ "description": "Bu tetikleyiciyi tanımlamak için benzersiz bir isim veya açıklama girin"
+ },
+ "enabled": {
+ "description": "Bu tetiği açın veya kapatın"
+ },
+ "type": {
+ "title": "Tetik Türü",
+ "placeholder": "Tetik türünü seçin",
+ "description": "Benzer izlenen nesne açıklaması algılandığında tetiklenir",
+ "thumbnail": "Benzer izlenen nesne küçük resmi algılandığında tetiklenir"
+ },
+ "content": {
+ "title": "İçerik",
+ "imagePlaceholder": "Bir küçük resim seçin",
+ "textPlaceholder": "Metin içeriği girin",
+ "imageDesc": "Yalnızca en son 100 küçük resim görüntülenir. İstediğiniz küçük resmi bulamazsanız, lütfen Keşfet bölümündeki önceki nesneleri inceleyin ve oradaki menüden bir tetikleyici ayarlayın.",
+ "textDesc": "Benzer bir takip edilen nesne açıklaması algılandığında bu eylemi tetiklemek için metin girin.",
+ "error": {
+ "required": "İçerik gereklidir."
+ }
+ },
+ "threshold": {
+ "title": "Tetik Eşiği",
+ "error": {
+ "min": "Tetik eşiği 0 ile 1 arasında olmalıdır",
+ "max": "Tetik eşiği 0 ile 1 arasında olmalıdır"
+ },
+ "desc": "Bu tetikleyici için benzerlik eşiğini ayarlayın. Daha yüksek bir eşik, tetiği tetiklemek için daha yakın bir eşleşme gerektiği anlamına gelir."
+ },
+ "actions": {
+ "title": "Eylemler",
+ "desc": "Varsayılan olarak, Frigate tüm tetikleyici isimlerini bir MQTT mesajı olarak gönderir. Alt etiketler, tetikleyici ismini nesne etiketine ekler. Nitelikler, izlenen nesne meta verilerinde ayrı olarak depolanan aranabilir meta verilerdir.",
+ "error": {
+ "min": "En az bir eylem seçilmelidir."
+ }
+ }
+ },
+ "createTrigger": {
+ "title": "Tetik Oluştur",
+ "desc": "{{camera}} kamerası için tetik oluşturun"
+ },
+ "editTrigger": {
+ "title": "Tetiği Düzenle",
+ "desc": "{{camera}} kamerasındaki tetiğin ayarlarını düzenleyin"
+ },
+ "deleteTrigger": {
+ "title": "Tetiği Sil",
+ "desc": "{{triggerName}} isimli tetiği silmek istediğinizden emin misiniz? Bu işlem geri alınamaz."
+ }
+ },
+ "documentTitle": "Tetikler",
+ "management": {
+ "title": "Tetikleyiciler",
+ "desc": "{{camera}} için tetikleri yönetin. Seçtiğiniz takip edilen nesneye benzer küçük resimlerde tetiklemek için küçük resmi kullanın veya belirlediğiniz metne benzer açıklamalar çıkması durumunda tetiklemek için ise açıklama seçeneğini kullanın."
+ },
+ "addTrigger": "Tetik Ekle",
+ "table": {
+ "name": "İsim",
+ "type": "Tetik Türü",
+ "content": "İçerik",
+ "threshold": "Tetik Eşiği",
+ "actions": "Eylemler",
+ "noTriggers": "Bu kamera için hiç bir tetik ayarlanmadı.",
+ "edit": "Düzenle",
+ "deleteTrigger": "Tetiği Sil",
+ "lastTriggered": "En son tetikleme"
+ },
+ "type": {
+ "thumbnail": "Küçük Resim",
+ "description": "Açıklama"
+ },
+ "actions": {
+ "alert": "Alarm Olarak İşaretle",
+ "notification": "Bildirim Gönder",
+ "sub_label": "Alt Etiket Ekle",
+ "attribute": "Özellik Ekle"
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Tetik {{name}} başarıyla oluşturuldu.",
+ "updateTrigger": "Tetik {{name}} başarıyla güncellendi.",
+ "deleteTrigger": "Tetik {{name}} başarıyla silindi."
+ },
+ "error": {
+ "createTriggerFailed": "Tetik oluşturulamadı: {{errorMessage}}",
+ "updateTriggerFailed": "Tetik güncellenemedi: {{errorMessage}}",
+ "deleteTriggerFailed": "Tetik silinemedi: {{errorMessage}}"
+ }
+ },
+ "semanticSearch": {
+ "title": "Anlamsal Arama devre dışı bırakıldı",
+ "desc": "Tetikleyicileri kullanmak için Anlamsal Arama'nın etkinleştirilmesi gerekir."
+ },
+ "wizard": {
+ "title": "Tetikleyici Oluştur",
+ "step1": {
+ "description": "Tetikleyiciniz için temel ayarları yapılandırın."
+ },
+ "step2": {
+ "description": "Bu eylemi tetikleyecek içeriği ayarlayın."
+ },
+ "step3": {
+ "description": "Bu tetikleyici için eşik değerini ve eylemleri yapılandırın."
+ },
+ "steps": {
+ "nameAndType": "İsim ve Tür",
+ "configureData": "Verileri Yapılandır",
+ "thresholdAndActions": "Eşik ve Eylemler"
+ }
+ }
+ },
+ "cameraWizard": {
+ "title": "Kamera Ekle",
+ "description": "Aşağıdaki adımları izleyerek Frigate kurulumunuza yeni bir kamera ekleyin.",
+ "steps": {
+ "nameAndConnection": "İsim & Bağlantı",
+ "probeOrSnapshot": "Probe veya Anlık Görüntü",
+ "streamConfiguration": "Akış Yapılandırması",
+ "validationAndTesting": "Doğrulama ve Test"
+ },
+ "save": {
+ "success": "Yeni kamera {{cameraName}} başarıyla kaydedildi.",
+ "failure": "{{cameraName}} kaydedilirken hata oluştu."
+ },
+ "testResultLabels": {
+ "resolution": "Çözünürlük",
+ "video": "Video",
+ "audio": "Ses",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Lütfen geçerli bir akış URL'si sağlayın",
+ "testFailed": "Akış testi başarısız oldu: {{error}}"
+ },
+ "step1": {
+ "description": "Kamera bilgilerinizi girin ve kamerayı taramayı (probe) ya da markayı manuel olarak seçmeyi tercih edin.",
+ "cameraName": "Kamera İsmi",
+ "cameraNamePlaceholder": "örn. onkapi, veya Arka Bahçe Genel Görünümü",
+ "host": "Ana makine adı veya IP Adresi",
+ "port": "Port",
+ "username": "Kullanıcı adı",
+ "usernamePlaceholder": "İsteğe bağlı",
+ "password": "Parola",
+ "passwordPlaceholder": "İsteğe bağlı",
+ "selectTransport": "İletişim protokolünü seçin",
+ "cameraBrand": "Kamera Markası",
+ "selectBrand": "URL şablonu için kamera markasını seçin",
+ "customUrl": "Özel Akış URL’si",
+ "brandInformation": "Marka Bilgileri",
+ "brandUrlFormat": "RTSP URL formatı şu şekilde olan kameralar için: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://kullanıcıadı:parola@host:port/path",
+ "connectionSettings": "Bağlantı Ayarları",
+ "detectionMethod": "Akış Algılama Yöntemi",
+ "onvifPort": "ONVIF Portu",
+ "probeMode": "Kamerayı tara",
+ "manualMode": "Manuel seçim",
+ "detectionMethodDescription": "Kamera akış URL’lerini bulmak için kamerayı ONVIF ile tarayın (destekleniyorsa) veya ön tanımlı URL’leri kullanmak için kamera markasını manuel olarak seçin. Özel bir RTSP URL’si girmek için manuel yöntemi seçin ve “Diğer”i işaretleyin.",
+ "onvifPortDescription": "ONVIF'i destekleyen kameralarda bu genellikle 80 veya 8080'dir.",
+ "useDigestAuth": "Digest kimlik doğrulamasını kullan",
+ "errors": {
+ "nameRequired": "Kamera ismi gereklidir",
+ "nameLength": "Kamera ismi en fazla 64 karakter olmalıdır",
+ "invalidCharacters": "Kamera ismi geçersiz karakterler içeriyor",
+ "nameExists": "Kamera ismi zaten mevcut",
+ "customUrlRtspRequired": "Özel URL'ler \"rtsp://\" ile başlamalıdır. RTSP olmayan kamera akışları için manuel yapılandırma gereklidir.",
+ "brandOrCustomUrlRequired": "Bir kamera markası seçip host/IP adresi girin ya da özel bir URL kullanmak için ‘Diğer’ seçeneğini tercih edin"
+ },
+ "useDigestAuthDescription": "ONVIF için HTTP digest kimlik doğrulamasını kullanın. Bazı kameralar, standart yönetici kullanıcısı yerine özel bir ONVIF kullanıcı adı/parola kullanılmasını gerektirebilir."
+ },
+ "step2": {
+ "description": "Mevcut akışları bulmak için kamerayı tarayın veya seçtiğiniz algılama yöntemine göre manuel ayarları yapılandırın.",
+ "testSuccess": "Bağlantı testi başarılı!",
+ "testFailed": "Bağlantı testi başarısız oldu. Lütfen bilgileri kontrol edip tekrar deneyin.",
+ "testFailedTitle": "Test Başarısız",
+ "streamDetails": "Akış Ayrıntıları",
+ "probing": "Kamera taranıyor...",
+ "retry": "Yeniden dene",
+ "testing": {
+ "probingMetadata": "Kamera meta verileri inceleniyor...",
+ "fetchingSnapshot": "Kamera anlık görüntüsü alınıyor..."
+ },
+ "probeFailed": "Kamerayı tarama başarısız oldu: {{error}}",
+ "probingDevice": "Cihaz taranıyor…",
+ "probeSuccessful": "Tarama başarılı",
+ "probeError": "Tarama hatası",
+ "probeNoSuccess": "Tarama başarısız",
+ "deviceInfo": "Cihaz Bilgileri",
+ "manufacturer": "Üretici",
+ "model": "Modeli",
+ "firmware": "Donanım yazılımı",
+ "profiles": "Profiller",
+ "ptzSupport": "PTZ Desteği",
+ "autotrackingSupport": "Otomatik Takip Desteği",
+ "presets": "Ön ayarlar",
+ "rtspCandidates": "RTSP Yayınları",
+ "rtspCandidatesDescription": "Kamera taramasından aşağıdaki RTSP URL'leri bulundu. Akış meta verilerini görüntülemek için bağlantıyı test edin.",
+ "noRtspCandidates": "Kameradan RTSP URL'si bulunamadı. Kimlik bilgileriniz yanlış olabilir veya kamera ONVIF'i veya RTSP URL'lerini almak için kullanılan yöntemi desteklemiyor olabilir. Geri dönün ve RTSP URL'sini manuel olarak girin.",
+ "candidateStreamTitle": "Yayın {{number}}",
+ "useCandidate": "Kullan",
+ "uriCopy": "Kopyala",
+ "uriCopied": "URI panoya kopyalandı",
+ "testConnection": "Bağlantıyı Test Et",
+ "toggleUriView": "Tam URI görünümünü değiştirmek için tıklayın",
+ "connected": "Bağlandı",
+ "notConnected": "Bağlı Değil",
+ "errors": {
+ "hostRequired": "Host/IP adresi gereklidir"
+ }
+ },
+ "step3": {
+ "description": "Akış rollerini yapılandırın ve kameranız için ek akışlar ekleyin.",
+ "streamsTitle": "Kamera Akışları",
+ "addStream": "Akış Ekle",
+ "addAnotherStream": "Başka Bir Akış Ekle",
+ "streamTitle": "Akış {{number}}",
+ "streamUrl": "Akış URL'si",
+ "streamUrlPlaceholder": "rtsp://kullanıcıadı:parola@host:port/path",
+ "selectStream": "Bir akış seçin",
+ "searchCandidates": "Yayınları arayın...",
+ "noStreamFound": "Akış bulunamadı",
+ "url": "URL",
+ "resolution": "Çözünürlük",
+ "selectResolution": "Çözünürlüğü seçin",
+ "quality": "Kalite",
+ "selectQuality": "Kaliteyi seçin",
+ "roles": "Roller",
+ "roleLabels": {
+ "detect": "Nesne Algılama",
+ "record": "Kayıt",
+ "audio": "Ses"
+ },
+ "testStream": "Bağlantıyı Test Et",
+ "testSuccess": "Yayın testi başarılı!",
+ "testFailed": "Yayın testi başarısız oldu",
+ "testFailedTitle": "Test Başarısız",
+ "connected": "Bağlı",
+ "notConnected": "Bağlı Değil",
+ "featuresTitle": "Özellikler",
+ "go2rtc": "Kameraya olan bağlantıları azaltın",
+ "detectRoleWarning": "Devam edebilmek için en az bir akışın algılama (detect) rolüne sahip olması gerekir.",
+ "rolesPopover": {
+ "title": "Akış Rolleri",
+ "detect": "Nesne algılama için ana besleme.",
+ "record": "Yapılandırma ayarlarına göre video akışının bölümlerini kaydeder.",
+ "audio": "Ses tabanlı algılama için besleme."
+ },
+ "featuresPopover": {
+ "title": "Yayın Özellikleri",
+ "description": "Kameranıza olan bağlantıları azaltmak için go2rtc yeniden akışını kullanın."
+ }
+ },
+ "step4": {
+ "disconnectStream": "Bağlantıyı kes",
+ "estimatedBandwidth": "Tahmini Bant Genişliği",
+ "roles": "Roller",
+ "ffmpegModule": "Yayın uyumluluk modunu kullan",
+ "ffmpegModuleDescription": "Yayın birkaç denemeden sonra yüklenmezse, bunu etkinleştirmeyi deneyin. Etkinleştirildiğinde, Frigate go2rtc ile ffmpeg modülünü kullanacaktır. Bu, bazı kamera yayınları ile daha iyi uyumluluk sağlayabilir.",
+ "none": "Hiçbiri",
+ "error": "Hata",
+ "description": "Yeni kameranızı kaydetmeden önce son doğrulama ve analiz. Kaydetmeden önce her akışı bağlayın.",
+ "validationTitle": "Akış Doğrulaması",
+ "connectAllStreams": "Tüm Akışlara Bağlan",
+ "reconnectionSuccess": "Yeniden bağlantı başarılı.",
+ "reconnectionPartial": "Bazı Akışlara yeniden bağlanılamadı.",
+ "streamUnavailable": "Akış önizlemesi kullanılamıyor",
+ "reload": "Yeniden yükle",
+ "connecting": "Bağlanıyor...",
+ "streamTitle": "Akış {{number}}",
+ "valid": "Geçerli",
+ "failed": "Başarısız",
+ "notTested": "Test edilmedi",
+ "connectStream": "Bağlan",
+ "connectingStream": "Bağlanıyor",
+ "streamValidated": "{{number}} nolu akış başarıyla doğrulandı",
+ "streamValidationFailed": "{{number}} nolu akış doğrulanamadı",
+ "saveAndApply": "Yeni Kamerayı Kaydet",
+ "saveError": "Geçersiz yapılandırma. Lütfen ayarlarınızı kontrol edin.",
+ "issues": {
+ "title": "Akış Doğrulaması",
+ "videoCodecGood": "Video kodeği {{codec}}.",
+ "audioCodecGood": "Ses kodeği {{codec}}.",
+ "resolutionHigh": "{{resolution}} çözünürlüğü kaynak kullanımının artmasına neden olabilir.",
+ "resolutionLow": "{{resolution}} çözünürlüğü, küçük nesnelerin güvenilir bir şekilde algılanması için çok düşük olabilir.",
+ "noAudioWarning": "Bu yayın için ses algılanmadı, kayıtlarda ses bulunmayacak.",
+ "audioCodecRecordError": "Kayıtlarda sesi desteklemek için AAC ses kodeği gereklidir.",
+ "audioCodecRequired": "Ses algılamayı desteklemek için bir ses akışı gereklidir.",
+ "restreamingWarning": "Kayıt akışı için kameraya olan bağlantıları azaltmak CPU kullanımını bir miktar artırabilir.",
+ "brands": {
+ "reolink-rtsp": "Reolink RTSP önerilmez. Kameranın ayarlarında HTTP'yi etkinleştirin ve sihirbazı baştan başlatın.",
+ "reolink-http": "Reolink HTTP akışları daha iyi uyumluluk için FFmpeg kullanmalıdır. Bu akış için 'Akış uyumluluk modunu kullan' seçeneğini etkinleştirin."
+ },
+ "dahua": {
+ "substreamWarning": "Alt akış 1 düşük çözünürlüğe kilitlenmiştir. Birçok Dahua / Amcrest / EmpireTech kamera, kamera ayarlarında etkinleştirilmesi gereken ek alt akışları destekler. Mevcutsa, bu akışları kontrol edip kullanmanız önerilir."
+ },
+ "hikvision": {
+ "substreamWarning": "Alt akış 1 düşük çözünürlüğe kilitlendi. Birçok Hikvision kamera, kamera ayarlarında etkinleştirilmesi gereken ek alt akışları destekler. Mevcutsa, bu akışları kontrol edip kullanmanız önerilir."
+ }
+ }
+ }
+ },
+ "cameraManagement": {
+ "title": "Kameraları Yönet",
+ "addCamera": "Yeni Kamera Ekle",
+ "editCamera": "Kamerayı Düzenle:",
+ "selectCamera": "Bir Kamera Seçin",
+ "backToSettings": "Kamera Ayarlarına Dön",
+ "streams": {
+ "title": "Kameraları Etkinleştir / Devre Dışı Bırak",
+ "desc": "Frigate yeniden başlatılana kadar bir kamerayı geçici olarak devre dışı bırakın. Bir kamerayı devre dışı bırakmak, Frigate'in bu kameranın akışlarını işlemesini tamamen durdurur. Algılama, kayıt ve hata ayıklama kullanılamaz. Not: Bu, go2rtc yeniden akışlarını devre dışı bırakmaz."
+ },
+ "cameraConfig": {
+ "add": "Kamera Ekle",
+ "edit": "Kamerayı Düzenle",
+ "description": "Yayınlar ve roller dahil olmak üzere kamera ayarlarını yapılandırın.",
+ "name": "Kamera İsmi",
+ "nameRequired": "Kamera ismi gereklidir",
+ "nameLength": "Kamera ismi 64 karakterden az olmalıdır.",
+ "namePlaceholder": "örneğin, ön_kapı veya Arka Bahçe Genel Bakışı",
+ "enabled": "Etkin",
+ "ffmpeg": {
+ "inputs": "Giriş Akışları",
+ "path": "Akış Yolu",
+ "pathRequired": "Akış yolu gereklidir",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Roller",
+ "rolesRequired": "En az bir rol gereklidir",
+ "rolesUnique": "Her rol (ses, algılama, kayıt) yalnızca bir akışa atanabilir",
+ "addInput": "Akış Ekle",
+ "removeInput": "Akış Kaldır",
+ "inputsRequired": "En az bir akış gereklidir"
+ },
+ "go2rtcStreams": "go2rtc Akışları",
+ "streamUrls": "Akış URL'leri",
+ "addUrl": "URL ekle",
+ "addGo2rtcStream": "go2rtc Akışı Ekle",
+ "toast": {
+ "success": "Kamera {{cameraName}} başarıyla kaydedildi"
+ }
+ }
+ },
+ "cameraReview": {
+ "title": "Kamera İnceleme Ayarları",
+ "object_descriptions": {
+ "title": "Üretken Yapay Zeka Nesne Açıklamaları",
+ "desc": "Bu kamera için yapay zekadan nesne tanımlama taleplerini geçici olarak etkinleştirin/devre dışı bırakın. Devre dışı bırakıldığında, bu kameradaki izlenen nesneler için yapay zekadan tanımlar istenmeyecektir."
+ },
+ "review_descriptions": {
+ "title": "Üretken Yapay Zeka İnceleme Açıklamaları",
+ "desc": "Bu kamera için yapay zekadan incele öğelerini açıklama taleplerini geçici olarak etkinleştirin/devre dışı bırakın. Devre dışı bırakıldığında, bu kameradaki inceleme öğeleri için yapay zekadan açıklama istenmeyecektir."
+ },
+ "review": {
+ "title": "İncele",
+ "desc": "Frigate yeniden başlatılana kadar bu kamera için uyarıları ve algılamaları geçici olarak etkinleştirin/devre dışı bırakın. Devre dışı bırakıldığında, yeni inceleme öğeleri oluşturulmaz. ",
+ "alerts": "Uyarılar ",
+ "detections": "Tespitler "
+ },
+ "reviewClassification": {
+ "title": "Sınıflandırmayı İncele",
+ "desc": "Frigate, inceleme öğelerini Uyarılar ve Algılamalar olarak kategorilere ayırır. Varsayılan olarak, tüm kişi ve araba nesneleri Uyarı olarak kabul edilir. İnceleme öğelerinizin kategorilendirmesini, bunlar için gerekli bölgeleri yapılandırarak iyileştirebilirsiniz.",
+ "noDefinedZones": "Bu kamera için herhangi bir bölge tanımlanmamıştır.",
+ "objectAlertsTips": "{{cameraName}} üzerindeki tüm {{alertsLabels}} nesneleri Uyarı olarak gösterilecektir.",
+ "zoneObjectAlertsTips": "{{cameraName}} üzerinde, {{zone}} bölgesinde tespit edilen tüm {{alertsLabels}} nesneleri Uyarı olarak gösterilecektir.",
+ "objectDetectionsTips": "{{cameraName}} üzerinde kategorize edilmemiş tüm {{detectionsLabels}} nesneleri, bölgeden bağımsız olarak Tespit olarak gösterilecektir.",
+ "zoneObjectDetectionsTips": {
+ "text": "{{cameraName}} üzerindeki {{zone}} bölgesinde kategorize edilmemiş tüm {{detectionsLabels}} nesneleri, Tespit olarak gösterilecektir.",
+ "notSelectDetections": "{{cameraName}} üzerinde {{zone}} bölgesinde tespit edilen ve Uyarı olarak kategorize edilmemiş tüm {{detectionsLabels}} nesneleri, bölgeden bağımsız olarak Tespitler olarak gösterilecektir.",
+ "regardlessOfZoneObjectDetectionsTips": "{{cameraName}} üzerinde kategorize edilmemiş tüm {{detectionsLabels}} nesneleri, bulundukları bölgeden bağımsız olarak Tespit olarak gösterilecektir."
+ },
+ "unsavedChanges": "{{camera}} için Kaydedilmemiş İnceleme Sınıflandırması ayarları",
+ "selectAlertsZones": "Uyarılar için bölgeleri seçin",
+ "selectDetectionsZones": "Tespitler için bölgeleri seçin",
+ "limitDetections": "Tespitleri belirli bölgelerle sınırlayın",
+ "toast": {
+ "success": "Sınıflandırma yapılandırması kaydedildi. Değişiklikleri uygulamak için Frigate'i yeniden başlatın."
+ }
+ }
+ },
+ "roles": {
+ "management": {
+ "title": "İzleyici Rol Yönetimi",
+ "desc": "Bu Frigate örneği için özel görüntüleyici rollerini ve kamera erişim izinlerini yönetin."
+ },
+ "addRole": "Rol Ekle",
+ "table": {
+ "role": "Rol",
+ "cameras": "Kameralar",
+ "actions": "Eylemler",
+ "noRoles": "Özel rol bulunamadı.",
+ "editCameras": "Kameraları Düzenle",
+ "deleteRole": "Rolü Sil"
+ },
+ "toast": {
+ "success": {
+ "createRole": "{{role}} rolü başarıyla oluşturuldu",
+ "updateCameras": "{{role}} rolü için kameralar güncellendi",
+ "deleteRole": "{{role}} rolü başarıyla silindi",
+ "userRolesUpdated_one": "Bu role atanan {{count}} kullanıcı, tüm kameralara erişimi olan 'görüntüleyici' olarak güncellendi.",
+ "userRolesUpdated_other": "Bu role atanan {{count}} kullanıcı, tüm kameralara erişimi olan 'görüntüleyici' olarak güncellendi."
+ },
+ "error": {
+ "createRoleFailed": "Rol oluşturulamadı: {{errorMessage}}",
+ "updateCamerasFailed": "Kameralar güncellenemedi: {{errorMessage}}",
+ "deleteRoleFailed": "Rol silinemedi: {{errorMessage}}",
+ "userUpdateFailed": "Kullanıcı rolleri güncellenemedi: {{errorMessage}}"
+ }
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Yeni Rol Oluştur",
+ "desc": "Yeni bir rol ekleyin ve kamera erişim izinlerini belirtin."
+ },
+ "editCameras": {
+ "title": "Rol Kameralarını Düzenle",
+ "desc": "{{role}} rolü için kamera erişimini güncelleyin."
+ },
+ "deleteRole": {
+ "title": "Rolü Sil",
+ "desc": "Bu işlem geri alınamaz. Bu işlem, rolü kalıcı olarak silecek ve bu role sahip tüm kullanıcıları varsayılan 'izleyici' rolüne atayarak kullanıcıların BÜTÜN kameralara erişim sağlamasına neden olacaktır.",
+ "warn": "{{role}} rolünü silmek istediğinizden emin misiniz?",
+ "deleting": "Siliniyor..."
+ },
+ "form": {
+ "role": {
+ "title": "Rol İsmi",
+ "placeholder": "Rol ismini girin",
+ "desc": "Sadece harf, rakam, nokta ve alt çizgi kullanılabilir.",
+ "roleIsRequired": "Rol ismi gereklidir",
+ "roleOnlyInclude": "Rol ismi yalnızca harf, sayı veya alt çizgi (_) içerebilir",
+ "roleExists": "Bu isimde bir rol zaten mevcut."
+ },
+ "cameras": {
+ "title": "Kameralar",
+ "desc": "Bu rolün erişebileceği kameraları seçin. En az bir kamera gereklidir.",
+ "required": "En az bir kamera seçilmelidir."
+ }
+ }
+ }
}
}
diff --git a/web/public/locales/tr/views/system.json b/web/public/locales/tr/views/system.json
index 9124e3e08d..b2aceb6d7d 100644
--- a/web/public/locales/tr/views/system.json
+++ b/web/public/locales/tr/views/system.json
@@ -43,7 +43,12 @@
"gpuEncoder": "GPU Kodlayıcı",
"title": "Donanım Bilgisi",
"npuUsage": "NPU Kullanımı",
- "npuMemory": "NPU Bellek Kullanımı"
+ "npuMemory": "NPU Bellek Kullanımı",
+ "intelGpuWarning": {
+ "title": "Intel GPU İstatistik Uyarısı",
+ "message": "GPU istatistikleri kullanılamıyor",
+ "description": "Bu durum, donanımsal hızlandırma ve nesne tespiti (i)GPU üzerinde sorunsuz çalışıyor olsa bile, Intel’in GPU istatistik raporlama aracındaki (intel_gpu_top) bilinen bir hatadan ötürü GPU kullanımının %0 olarak bildirilmesinden kaynaklanmakta olup, Frigate hatası değildir. Sorunu geçici olarak düzeltmek ve (i)GPU’nun doğru çalıştığını doğrulamak için ana makineyi yeniden başlatabilirsiniz. Bu durum performansı etkilememektedir."
+ }
},
"otherProcesses": {
"title": "Diğer İşlemler",
@@ -55,7 +60,8 @@
"inferenceSpeed": "Algılayıcı Çıkarım Hızı",
"memoryUsage": "Algılayıcı Bellek Kullanımı",
"cpuUsage": "Algılayıcı İşlemci Kullanımı",
- "temperature": "Algılayıcı Sıcaklığı"
+ "temperature": "Algılayıcı Sıcaklığı",
+ "cpuUsageInformation": "Tespit modellerine giriş ve çıkış verilerini hazırlarken kullanılan işlemci yoğunluğu. Bu değer, grafik işlemci veya benzeri bir hızlandırıcı kullanılsa bile çıkarım yükünü ölçmek için kullanılmamalıdır."
},
"title": "Genel"
},
@@ -78,6 +84,10 @@
"storageUsed": "Depolama",
"bandwidth": "Saatlik Veri Kullanımı",
"unusedStorageInformation": "Kullanılmayan Depolama Bilgisi"
+ },
+ "shm": {
+ "warning": "Şu anki {{total}}MB'lik SHM boyutu yetersiz. Bu boyutu en az {{min_shm}}MB'a çıkartın.",
+ "title": "Ayrılan SHM (paylaşımlı bellek)"
}
},
"cameras": {
@@ -134,7 +144,8 @@
"healthy": "Sistem sağlıklı",
"detectIsVerySlow": "{{detect}} çok yavaş çalışıyor ({{speed}} ms)",
"cameraIsOffline": "{{camera}} çevrimdışı",
- "detectIsSlow": "{{detect}} yavaş çalışıyor ({{speed}} ms)"
+ "detectIsSlow": "{{detect}} yavaş çalışıyor ({{speed}} ms)",
+ "shmTooLow": "Ayrılan /dev/shm belleği (şu anda {{total}} MB), en az {{min}} MB'a çıkartılmalıdır."
},
"enrichments": {
"embeddings": {
@@ -148,10 +159,20 @@
"plate_recognition": "Plaka Tanıma",
"face_recognition_speed": "Yüz Tanıma Hızı",
"yolov9_plate_detection_speed": "YOLOv9 Plaka Tanıma Hızı",
- "yolov9_plate_detection": "YOLOv9 Plaka Tanıma"
+ "yolov9_plate_detection": "YOLOv9 Plaka Tanıma",
+ "review_description": "İnceleme Açıklaması",
+ "review_description_speed": "İnceleme Açıklama Hızı",
+ "review_description_events_per_second": "İnceleme Açıklaması",
+ "object_description": "Nesne Açıklaması",
+ "object_description_speed": "Nesne Açıklama Hızı",
+ "object_description_events_per_second": "Nesne Açıklaması",
+ "classification": "{{name}} Sınıflandırması",
+ "classification_speed": "{{name}} Sınıflandırma Hızı",
+ "classification_events_per_second": "{{name}} Saniyede Sınıflandırma Olayları"
},
"infPerSecond": "Saniye Başına Çıkarım",
- "title": "Zenginleştirmeler"
+ "title": "Zenginleştirmeler",
+ "averageInf": "Ortalama Çıkarım Süresi"
},
"logs": {
"download": {
diff --git a/web/public/locales/uk/audio.json b/web/public/locales/uk/audio.json
index e5b27820a9..773d5e3a79 100644
--- a/web/public/locales/uk/audio.json
+++ b/web/public/locales/uk/audio.json
@@ -425,5 +425,79 @@
"whistling": "Свист",
"snoring": "Хропіння",
"pant": "Задихатися",
- "sneeze": "Чхати"
+ "sneeze": "Чхати",
+ "sodeling": "Соделінг",
+ "chird": "Дитина",
+ "change_ringing": "Змінити дзвінок",
+ "shofar": "Шофар",
+ "liquid": "Рідина",
+ "splash": "Сплеск",
+ "slosh": "Сльоз",
+ "squish": "Хлюпати",
+ "drip": "Крапельне",
+ "pour": "Для",
+ "trickle": "Струмінь",
+ "gush": "Гуш",
+ "fill": "Заповнити",
+ "spray": "Спрей",
+ "pump": "Насос",
+ "stir": "Перемішати",
+ "boiling": "Кипіння",
+ "sonar": "Сонар",
+ "arrow": "Стрілка",
+ "whoosh": "Свисти",
+ "thump": "Тупіт",
+ "thunk": "Тюнк",
+ "electronic_tuner": "Електронний тюнер",
+ "effects_unit": "Блок ефектів",
+ "chorus_effect": "Ефект хорусу",
+ "basketball_bounce": "Відскок баскетбольного м'яча",
+ "bang": "Вибухи",
+ "slap": "Ляпас",
+ "whack": "Вдарити",
+ "smash": "Розгром",
+ "breaking": "Розбиттям",
+ "bouncing": "Підстрибування",
+ "whip": "Батіг",
+ "flap": "Клаптик",
+ "scratch": "Подряпина",
+ "scrape": "Скрейп",
+ "rub": "Розтирання",
+ "roll": "Рулон",
+ "crushing": "Дроблення",
+ "crumpling": "Зминання",
+ "tearing": "Розривання",
+ "beep": "Звуковий сигнал",
+ "ping": "Пінг",
+ "ding": "Дін",
+ "clang": "Брязкіт",
+ "squeal": "Вереск",
+ "creak": "Скрипи",
+ "rustle": "Шелест",
+ "whir": "Гудінням",
+ "clatter": "Брязкіти",
+ "sizzle": "Шипінням",
+ "clicking": "Клацання",
+ "clickety_clack": "Клацання-Клак",
+ "rumble": "Гуркіті",
+ "plop": "Плюх",
+ "hum": "Гум",
+ "zing": "Зінг",
+ "boing": "Боїнг",
+ "crunch": "Хрускіт",
+ "sine_wave": "Синусоїда",
+ "harmonic": "Гармоніка",
+ "chirp_tone": "Чирп-тон",
+ "pulse": "Пульс",
+ "inside": "Всередині",
+ "outside": "Зовні",
+ "reverberation": "Реверберація",
+ "echo": "Відлуння",
+ "noise": "Шум",
+ "mains_hum": "Гуміння рук",
+ "distortion": "Спотворення",
+ "sidetone": "Побічний тон",
+ "cacophony": "Какофонія",
+ "throbbing": "Пульсуючий",
+ "vibration": "Вібрація"
}
diff --git a/web/public/locales/uk/common.json b/web/public/locales/uk/common.json
index 0293649713..b6692bad8a 100644
--- a/web/public/locales/uk/common.json
+++ b/web/public/locales/uk/common.json
@@ -78,7 +78,10 @@
"formattedTimestampMonthDayYear": {
"24hour": "MMM d, yyyy",
"12hour": "MMM d, yyyy"
- }
+ },
+ "inProgress": "У процесі",
+ "invalidStartTime": "Недійсний час початку",
+ "invalidEndTime": "Недійсний час завершення"
},
"button": {
"exitFullscreen": "Вийти з повноекранного режиму",
@@ -115,7 +118,8 @@
"export": "Експортувати",
"deleteNow": "Видалити негайно",
"next": "Наступне",
- "unsuspended": "Відновити дію"
+ "unsuspended": "Відновити дію",
+ "continue": "Продовжити"
},
"menu": {
"language": {
@@ -152,7 +156,15 @@
"en": "Англійська",
"yue": "粵語 (Кантонська)",
"th": "ไทย (Тайська)",
- "ca": "Català (Каталанська)"
+ "ca": "Català (Каталанська)",
+ "ptBR": "Português brasileiro (Бразильська португальська)",
+ "sr": "Српски (Сербська)",
+ "sl": "Slovenščina (Словенська)",
+ "lt": "Lietuvių (Литовська)",
+ "bg": "Български (Болгарська)",
+ "gl": "Galego (Галісійська)",
+ "id": "Bahasa Indonesia (Індонезійська)",
+ "ur": "اردو (Урду)"
},
"system": "Система",
"systemMetrics": "Системна метріка",
@@ -178,7 +190,7 @@
},
"restart": "Перезапустити Frigate",
"live": {
- "title": "Живи",
+ "title": "Пряма трансляція",
"allCameras": "Всi камери",
"cameras": {
"title": "Камери",
@@ -208,8 +220,9 @@
"label": "Використовуйте налаштування системи для світлого або темного режиму"
}
},
- "appearance": "Поява",
- "withSystem": "Система"
+ "appearance": "Зовнішність",
+ "withSystem": "Система",
+ "classification": "Класифікація"
},
"unit": {
"speed": {
@@ -219,10 +232,23 @@
"length": {
"feet": "ноги",
"meters": "метрів"
+ },
+ "data": {
+ "kbps": "кБ/с",
+ "mbps": "МБ/с",
+ "gbps": "ГБ/с",
+ "kbph": "кБ/годину",
+ "mbph": "МБ/годину",
+ "gbph": "ГБ/годину"
}
},
"label": {
- "back": "Повернутись"
+ "back": "Повернутись",
+ "hide": "Приховати {{item}}",
+ "show": "Показати {{item}}",
+ "ID": "ID",
+ "none": "Жоден",
+ "all": "Усі"
},
"toast": {
"save": {
@@ -262,5 +288,18 @@
"desc": "Сторінка не знайдена",
"title": "404"
},
- "selectItem": "Вибрати {{item}}"
+ "selectItem": "Вибрати {{item}}",
+ "readTheDocumentation": "Прочитати документацію",
+ "information": {
+ "pixels": "{{area}}пикс"
+ },
+ "list": {
+ "two": "{{0}} і {{1}}",
+ "many": "{{items}}, і {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "Необов'язково",
+ "internalID": "Внутрішній ідентифікатор, який Frigate використовує в конфігурації та базі даних"
+ }
}
diff --git a/web/public/locales/uk/components/auth.json b/web/public/locales/uk/components/auth.json
index 07eaca4e34..4c9f7e2821 100644
--- a/web/public/locales/uk/components/auth.json
+++ b/web/public/locales/uk/components/auth.json
@@ -10,6 +10,7 @@
},
"user": "Iм'я користувача",
"password": "Пароль",
- "login": "Логiн"
+ "login": "Логiн",
+ "firstTimeLogin": "Намагаєтеся вперше увійти? Облікові дані надруковані в журналах Frigate."
}
}
diff --git a/web/public/locales/uk/components/camera.json b/web/public/locales/uk/components/camera.json
index 76886a7b8e..0836510e14 100644
--- a/web/public/locales/uk/components/camera.json
+++ b/web/public/locales/uk/components/camera.json
@@ -50,7 +50,8 @@
},
"stream": "Потік",
"placeholder": "Виберіть потік"
- }
+ },
+ "birdseye": "Бердсай"
},
"edit": "Редагувати групу камер",
"delete": {
diff --git a/web/public/locales/uk/components/dialog.json b/web/public/locales/uk/components/dialog.json
index 43cb9bd9b2..7ede7901bf 100644
--- a/web/public/locales/uk/components/dialog.json
+++ b/web/public/locales/uk/components/dialog.json
@@ -57,7 +57,8 @@
"endTimeMustAfterStartTime": "Час закінчення повинен бути після часу початку",
"noVaildTimeSelected": "Не вибрано допустимий діапазон часу"
},
- "success": "Експорт успішно запущено. Файл доступний у теці /exports."
+ "success": "Експорт успішно розпочато. Перегляньте файл на сторінці експорту.",
+ "view": "Переглянути"
},
"fromTimeline": {
"saveExport": "Зберегти експорт",
@@ -89,7 +90,8 @@
"button": {
"export": "Експорт",
"markAsReviewed": "Позначити як переглянуте",
- "deleteNow": "Вилучити зараз"
+ "deleteNow": "Вилучити зараз",
+ "markAsUnreviewed": "Позначити як непереглянуте"
},
"confirmDelete": {
"title": "Підтвердити вилучення",
@@ -110,5 +112,13 @@
"content": "Цю сторінку буде перезавантажено за {{countdown}} секунд.",
"button": "Примусово перезавантажити"
}
+ },
+ "imagePicker": {
+ "selectImage": "Вибір мініатюри відстежуваного об'єкта",
+ "search": {
+ "placeholder": "Пошук за міткою або підміткою..."
+ },
+ "noImages": "Для цієї камери не знайдено мініатюр",
+ "unknownLabel": "Збережене зображення тригера"
}
}
diff --git a/web/public/locales/uk/components/filter.json b/web/public/locales/uk/components/filter.json
index 95c01f3495..a99867c0c3 100644
--- a/web/public/locales/uk/components/filter.json
+++ b/web/public/locales/uk/components/filter.json
@@ -97,7 +97,7 @@
"score": "Рахунок",
"estimatedSpeed": "Розрахункова швидкість ({{unit}})",
"review": {
- "showReviewed": "Показати переглянув"
+ "showReviewed": "Показувати переглянуті"
},
"motion": {
"showMotionOnly": "Показати тiльки рух"
@@ -121,6 +121,20 @@
"loading": "Завантаження визнаних номерів…",
"placeholder": "Введіть для пошуку номерні знаки…",
"noLicensePlatesFound": "Номерних знаків не знайдено.",
- "selectPlatesFromList": "Виберіть одну або кілька пластин зі списку."
+ "selectPlatesFromList": "Виберіть одну або кілька пластин зі списку.",
+ "selectAll": "Вибрати все",
+ "clearAll": "Очистити все"
+ },
+ "classes": {
+ "label": "Заняття",
+ "all": {
+ "title": "Усі класи"
+ },
+ "count_one": "Клас {{count}}",
+ "count_other": "{{count}} Класи"
+ },
+ "attributes": {
+ "label": "Атрибути класифікації",
+ "all": "Усі атрибути"
}
}
diff --git a/web/public/locales/uk/views/classificationModel.json b/web/public/locales/uk/views/classificationModel.json
new file mode 100644
index 0000000000..a96997bc74
--- /dev/null
+++ b/web/public/locales/uk/views/classificationModel.json
@@ -0,0 +1,193 @@
+{
+ "documentTitle": "Моделі класифікації - Frigate",
+ "button": {
+ "deleteClassificationAttempts": "Видалити зображення класифікації",
+ "renameCategory": "Перейменувати клас",
+ "deleteCategory": "Видалити клас",
+ "deleteImages": "Видалити зображення",
+ "trainModel": "Модель поїзда",
+ "addClassification": "Додати класифікацію",
+ "deleteModels": "Видалити моделі",
+ "editModel": "Редагувати модель"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Видалений клас",
+ "deletedImage": "Видалені зображення",
+ "categorizedImage": "Зображення успішно класифіковано",
+ "trainedModel": "Успішно навчена модель.",
+ "trainingModel": "Успішно розпочато навчання моделі.",
+ "deletedModel_one": "Успішно видалено модель {{count}}",
+ "deletedModel_few": "Успішно видалено моделей {{count}}",
+ "deletedModel_many": "Успішно видалено моделі {{count}}",
+ "updatedModel": "Конфігурацію моделі успішно оновлено",
+ "renamedCategory": "Клас успішно перейменовано на {{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "Не вдалося видалити: {{errorMessage}}",
+ "deleteCategoryFailed": "Не вдалося видалити клас: {{errorMessage}}",
+ "categorizeFailed": "Не вдалося класифікувати зображення: {{errorMessage}}",
+ "trainingFailed": "Навчання моделі не вдалося. Перегляньте журнали Frigate для отримання детальної інформації.",
+ "deleteModelFailed": "Не вдалося видалити модель: {{errorMessage}}",
+ "updateModelFailed": "Не вдалося оновити модель: {{errorMessage}}",
+ "renameCategoryFailed": "Не вдалося перейменувати клас: {{errorMessage}}",
+ "trainingFailedToStart": "Не вдалося розпочати навчання моделі: {{errorMessage}}"
+ }
+ },
+ "deleteCategory": {
+ "title": "Видалити клас",
+ "desc": "Ви впевнені, що хочете видалити клас {{name}}? Це назавжди видалить усі пов'язані зображення та вимагатиме повторного навчання моделі.",
+ "minClassesTitle": "Не вдається видалити клас",
+ "minClassesDesc": "Модель класифікації повинна мати щонайменше 2 класи. Додайте ще один клас, перш ніж видаляти цей."
+ },
+ "deleteDatasetImages": {
+ "title": "Видалити зображення набору даних",
+ "desc_one": "Ви впевнені, що хочете видалити {{count}} зображень з {{dataset}}? Цю дію неможливо скасувати, вона вимагатиме повторного навчання моделі.",
+ "desc_few": "Ви впевнені, що хочете видалити {{count}} зображенні з {{dataset}}? Цю дію неможливо скасувати, вона вимагатиме повторного навчання моделі.",
+ "desc_many": "Ви впевнені, що хочете видалити {{count}} зображенні з {{dataset}}? Цю дію неможливо скасувати, вона вимагатиме повторного навчання моделі."
+ },
+ "deleteTrainImages": {
+ "title": "Видалити зображення поїздів",
+ "desc_one": "Ви впевнені, що хочете видалити {{count}} зображень? Цю дію не можна скасувати.",
+ "desc_few": "Ви впевнені, що хочете видалити {{count}} зображенні? Цю дію не можна скасувати.",
+ "desc_many": "Ви впевнені, що хочете видалити {{count}} зображенні? Цю дію не можна скасувати."
+ },
+ "renameCategory": {
+ "title": "Перейменувати клас",
+ "desc": "Введіть нову назву для {{name}}. Вам потрібно буде перенавчити модель, щоб зміна назви набула чинності."
+ },
+ "description": {
+ "invalidName": "Недійсне ім'я. Ім'я може містити лише літери, цифри, пробіли, апострофи, символи підкреслення та дефіси."
+ },
+ "train": {
+ "title": "Нещодавні класифікації",
+ "titleShort": "Нещодавні",
+ "aria": "Виберіть останні класифікації"
+ },
+ "categories": "Заняття",
+ "createCategory": {
+ "new": "Створити новий клас"
+ },
+ "categorizeImageAs": "Класифікувати зображення як:",
+ "categorizeImage": "Класифікувати зображення",
+ "noModels": {
+ "object": {
+ "title": "Без моделей класифікації об'єктів",
+ "description": "Створіть власну модель для класифікації виявлених об'єктів.",
+ "buttonText": "Створення об'єктної моделі"
+ },
+ "state": {
+ "title": "Без моделей класифікації штатів",
+ "description": "Створіть власну модель для моніторингу та класифікації змін стану в певних областях камери.",
+ "buttonText": "Створити модель стану"
+ }
+ },
+ "wizard": {
+ "title": "Створити нову класифікацію",
+ "steps": {
+ "nameAndDefine": "Назва та визначення",
+ "stateArea": "Площа штату",
+ "chooseExamples": "Виберіть приклади"
+ },
+ "step1": {
+ "description": "Моделі станів відстежують зміни в зонах дії фіксованих камер (наприклад, відкриття/закриття дверей). Моделі об'єктів додають класифікації до виявлених об'єктів (наприклад, відомі тварини, кур'єри тощо).",
+ "name": "Ім'я",
+ "namePlaceholder": "Введіть назву моделі...",
+ "type": "Тип",
+ "typeState": "Штат",
+ "typeObject": "Об'єкт",
+ "objectLabel": "Мітка об'єкта",
+ "objectLabelPlaceholder": "Виберіть тип об'єкта...",
+ "classificationType": "Тип класифікації",
+ "classificationTypeTip": "Дізнайтеся про типи класифікації",
+ "classificationTypeDesc": "Підмітки додають додатковий текст до мітки об’єкта (наприклад, «Особа: UPS»). Атрибути – це метадані для пошуку, що зберігаються окремо в метаданих об’єкта.",
+ "classificationSubLabel": "Підмітка",
+ "classificationAttribute": "Атрибут",
+ "classes": "Заняття",
+ "classesTip": "Дізнайтеся про заняття",
+ "classesStateDesc": "Визначте різні стани, в яких може перебувати зона вашої камери. Наприклад: «відкрито» та «закрито» для гаражних воріт.",
+ "classesObjectDesc": "Визначте різні категорії для класифікації виявлених об'єктів. Наприклад: «доставник», «мешканець», «незнайомець» для класифікації осіб.",
+ "classPlaceholder": "Введіть назву класу...",
+ "errors": {
+ "nameRequired": "Назва моделі обов'язкова",
+ "nameLength": "Назва моделі має містити не більше 64 символів",
+ "nameOnlyNumbers": "Назва моделі не може містити лише цифри",
+ "classRequired": "Потрібно хоча б 1 заняття",
+ "classesUnique": "Назви класів мають бути унікальними",
+ "stateRequiresTwoClasses": "Моделі станів вимагають щонайменше 2 класів",
+ "objectLabelRequired": "Будь ласка, виберіть мітку об'єкта",
+ "objectTypeRequired": "Будь ласка, виберіть тип класифікації",
+ "noneNotAllowed": "Клас «none» не дозволено"
+ },
+ "states": "Штати"
+ },
+ "step2": {
+ "description": "Виберіть камери та визначте область для моніторингу для кожної камери. Модель класифікуватиме стан цих областей.",
+ "cameras": "Камери",
+ "selectCamera": "Виберіть Камеру",
+ "noCameras": "Натисніть +, щоб додати камери",
+ "selectCameraPrompt": "Виберіть камеру зі списку, щоб визначити її зону спостереження"
+ },
+ "step3": {
+ "selectImagesPrompt": "Виберіть усі зображення з: {{className}}",
+ "selectImagesDescription": "Натисніть на зображення, щоб вибрати їх. Натисніть «Продовжити», коли закінчите з цим уроком.",
+ "generating": {
+ "title": "Створення зразків зображень",
+ "description": "Фрегат отримує типові зображення з ваших записів. Це може зайняти деякий час..."
+ },
+ "training": {
+ "title": "Модель навчання",
+ "description": "Ваша модель навчається у фоновому режимі. Закрийте це діалогове вікно, і ваша модель почне працювати, щойно навчання буде завершено."
+ },
+ "retryGenerate": "Генерація повторних спроб",
+ "noImages": "Немає згенерованих зразків зображень",
+ "classifying": "Класифікація та навчання...",
+ "trainingStarted": "Навчання розпочалося успішно",
+ "errors": {
+ "noCameras": "Немає налаштованих камер",
+ "noObjectLabel": "Мітку об'єкта не вибрано",
+ "generateFailed": "Не вдалося створити приклади: {{error}}",
+ "generationFailed": "Помилка генерації. Будь ласка, спробуйте ще раз.",
+ "classifyFailed": "Не вдалося класифікувати зображення: {{error}}"
+ },
+ "generateSuccess": "Зразки зображень успішно створено",
+ "allImagesRequired_one": "Будь ласка, класифікуйте всі зображення. Залишилося {{count}} зображення.",
+ "allImagesRequired_few": "Будь ласка, класифікуйте всі зображення. Залишилося зображень: {{count}}.",
+ "allImagesRequired_many": "Будь ласка, класифікуйте всі зображення. Залишилося зображень: {{count}}.",
+ "modelCreated": "Модель успішно створено. Використовуйте режим перегляду «Нещодавні класифікації», щоб додати зображення для відсутніх станів, а потім навчіть модель.",
+ "missingStatesWarning": {
+ "title": "Приклади відсутніх станів",
+ "description": "Для найкращих результатів рекомендується вибрати приклади для всіх станів. Ви можете продовжити, не вибираючи всі стани, але модель не буде навчена, доки всі стани не матимуть зображень. Після продовження скористайтеся поданням «Нещодавні класифікації», щоб класифікувати зображення для відсутніх станів, а потім навчіть модель."
+ }
+ }
+ },
+ "deleteModel": {
+ "title": "Видалити модель класифікації",
+ "single": "Ви впевнені, що хочете видалити {{name}}? Це назавжди видалить усі пов’язані дані, включаючи зображення та дані навчання. Цю дію не можна скасувати.",
+ "desc_one": "Ви впевнені, що хочете видалити {{count}} модель? Це назавжди видалить усі пов’язані дані, включаючи зображення та навчальні дані. Цю дію не можна скасувати.",
+ "desc_few": "Ви впевнені, що хочете видалити {{count}} моделей? Це назавжди видалить усі пов’язані дані, включаючи зображення та навчальні дані. Цю дію не можна скасувати.",
+ "desc_many": "Ви впевнені, що хочете видалити {{count}} моделі? Це назавжди видалить усі пов’язані дані, включаючи зображення та навчальні дані. Цю дію не можна скасувати."
+ },
+ "menu": {
+ "objects": "Об'єкти",
+ "states": "Стани"
+ },
+ "details": {
+ "scoreInfo": "Оцінка представляє середню достовірність класифікації для всіх виявлень цього об'єкта.",
+ "none": "Жоден",
+ "unknown": "Невідомо"
+ },
+ "edit": {
+ "title": "Редагувати модель класифікації",
+ "descriptionState": "Відредагуйте класи для цієї моделі класифікації штатів. Зміни вимагатимуть перенавчання моделі.",
+ "descriptionObject": "Відредагуйте тип об'єкта та тип класифікації для цієї моделі класифікації об'єктів.",
+ "stateClassesInfo": "Примітка: Зміна класів станів вимагає перенавчання моделі з використанням оновлених класів."
+ },
+ "tooltip": {
+ "trainingInProgress": "Модель зараз тренується",
+ "noNewImages": "Немає нових зображень для навчання. Спочатку класифікуйте більше зображень у наборі даних.",
+ "modelNotReady": "Модель не готова до навчання",
+ "noChanges": "З моменту останнього навчання в наборі даних не було змін."
+ },
+ "none": "Жоден"
+}
diff --git a/web/public/locales/uk/views/configEditor.json b/web/public/locales/uk/views/configEditor.json
index c9a6641131..0e3ef13cba 100644
--- a/web/public/locales/uk/views/configEditor.json
+++ b/web/public/locales/uk/views/configEditor.json
@@ -12,5 +12,7 @@
"copyConfig": "Скопіювати конфігурацію",
"saveOnly": "Тільки зберегти",
"configEditor": "Налаштування редактора",
- "confirm": "Вийти без збереження?"
+ "confirm": "Вийти без збереження?",
+ "safeConfigEditor": "Редактор конфігурації (безпечний режим)",
+ "safeModeDescription": "Фрегат перебуває в безпечному режимі через помилку перевірки конфігурації."
}
diff --git a/web/public/locales/uk/views/events.json b/web/public/locales/uk/views/events.json
index e84c418ec8..3cceebda5f 100644
--- a/web/public/locales/uk/views/events.json
+++ b/web/public/locales/uk/views/events.json
@@ -34,5 +34,30 @@
"label": "Переглянути нові елементи огляду",
"button": "Нові матеріали для перегляду"
},
- "detected": "виявлено"
+ "detected": "виявлено",
+ "suspiciousActivity": "Підозріла активність",
+ "threateningActivity": "Загрозлива діяльність",
+ "detail": {
+ "noDataFound": "Немає детальних даних для перегляду",
+ "aria": "Перемикання детального перегляду",
+ "trackedObject_one": "{{count}} об'єкт",
+ "trackedObject_other": "{{count}} об'єкти",
+ "noObjectDetailData": "Детальні дані про об'єкт недоступні.",
+ "label": "Деталь",
+ "settings": "Налаштування детального перегляду",
+ "alwaysExpandActive": {
+ "title": "Завжди розгортати активне",
+ "desc": "Завжди розгортайте деталі об'єкта активного елемента огляду, якщо вони доступні."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Відстежувана Точка",
+ "clickToSeek": "Натисніть, щоб перейти до цього часу"
+ },
+ "zoomIn": "Збільшити масштаб",
+ "zoomOut": "Зменшити масштаб",
+ "normalActivity": "Звичайний",
+ "needsReview": "Потребує перегляду",
+ "securityConcern": "Проблема безпеки",
+ "select_all": "Усі"
}
diff --git a/web/public/locales/uk/views/explore.json b/web/public/locales/uk/views/explore.json
index cdbcdb6ee1..d97e09ab69 100644
--- a/web/public/locales/uk/views/explore.json
+++ b/web/public/locales/uk/views/explore.json
@@ -35,7 +35,9 @@
"error": "Не вдалося видалити відстежуваний об'єкт: {{errorMessage}}",
"success": "Відстежуваний об'єкт успішно видалено."
}
- }
+ },
+ "previousTrackedObject": "Попередній відстежуваний об'єкт",
+ "nextTrackedObject": "Наступний відстежуваний об'єкт"
},
"trackedObjectsCount_one": "{{count}} відстежуваний об'єкт ",
"trackedObjectsCount_few": "{{count}} відстежувані об'єкти ",
@@ -101,12 +103,16 @@
"success": {
"updatedLPR": "Номерний знак успішно оновлено.",
"updatedSublabel": "Підмітку успішно оновлено.",
- "regenerate": "Новий опис було запрошено від {{provider}}. Залежно від швидкості вашого провайдера, його перегенерація може зайняти деякий час."
+ "regenerate": "Новий опис було запрошено від {{provider}}. Залежно від швидкості вашого провайдера, його перегенерація може зайняти деякий час.",
+ "audioTranscription": "Запит на аудіотранскрипцію успішно надіслано. Залежно від швидкості вашого сервера Frigate, транскрипція може тривати деякий час.",
+ "updatedAttributes": "Атрибути успішно оновлено."
},
"error": {
"regenerate": "Не вдалося звернутися до {{provider}} для отримання нового опису: {{errorMessage}}",
"updatedSublabelFailed": "Не вдалося оновити підмітку: {{errorMessage}}",
- "updatedLPRFailed": "Не вдалося оновити номерний знак: {{errorMessage}}"
+ "updatedLPRFailed": "Не вдалося оновити номерний знак: {{errorMessage}}",
+ "audioTranscription": "Не вдалося надіслати запит на транскрипцію аудіо: {{errorMessage}}",
+ "updatedAttributesFailed": "Не вдалося оновити атрибути: {{errorMessage}}"
}
},
"button": {
@@ -158,12 +164,20 @@
}
},
"expandRegenerationMenu": "Розгорнути меню регенерації",
- "regenerateFromSnapshot": "Відновити зі знімка"
+ "regenerateFromSnapshot": "Відновити зі знімка",
+ "score": {
+ "label": "Оцінка"
+ },
+ "editAttributes": {
+ "title": "Редагувати атрибути",
+ "desc": "Виберіть атрибути класифікації для цього {{label}}"
+ },
+ "attributes": "Атрибути класифікації"
},
"dialog": {
"confirmDelete": {
"title": "Підтвердити видалення",
- "desc": "Видалення цього відстежуваного об’єкта призведе до видалення знімка, будь-яких збережених вбудованих елементів та будь-яких пов’язаних записів життєвого циклу об’єкта. Записані кадри цього відстежуваного об’єкта в режимі перегляду історії НЕ будуть видалені.
Ви впевнені, що хочете продовжити?"
+ "desc": "Видалення цього відстежуваного об'єкта призведе до видалення знімка, усіх збережених вбудованих даних та усіх пов'язаних записів деталей відстеження. Записані кадри цього відстежуваного об'єкта в режимі перегляду історії НЕ будуть видалені.
Ви впевнені, що хочете продовжити?"
}
},
"itemMenu": {
@@ -193,6 +207,28 @@
},
"deleteTrackedObject": {
"label": "Видалити цей відстежуваний об'єкт"
+ },
+ "addTrigger": {
+ "label": "Додати тригер",
+ "aria": "Додати тригер для цього відстежуваного об'єкта"
+ },
+ "audioTranscription": {
+ "label": "Транскрибувати",
+ "aria": "Запит на аудіотранскрипцію"
+ },
+ "viewTrackingDetails": {
+ "label": "Переглянути деталі відстеження",
+ "aria": "Показати деталі відстеження"
+ },
+ "showObjectDetails": {
+ "label": "Показати шлях до об'єкта"
+ },
+ "hideObjectDetails": {
+ "label": "Приховати шлях до об'єкта"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Завантажити чистий знімок",
+ "aria": "Завантажити чистий знімок"
}
},
"noTrackedObjects": "Відстежуваних об'єктів не знайдено",
@@ -203,7 +239,64 @@
"details": "деталі",
"snapshot": "знімок",
"video": "відео",
- "object_lifecycle": "життєвий цикл об'єкта"
+ "object_lifecycle": "життєвий цикл об'єкта",
+ "thumbnail": "мініатюра",
+ "tracking_details": "деталі відстеження"
},
- "exploreMore": "Дослідіть більше об'єктів {{label}}"
+ "exploreMore": "Дослідіть більше об'єктів {{label}}",
+ "aiAnalysis": {
+ "title": "Аналіз ШІ"
+ },
+ "concerns": {
+ "label": "Проблеми"
+ },
+ "trackingDetails": {
+ "title": "Деталі відстеження",
+ "noImageFound": "Для цієї позначки часу не знайдено зображення.",
+ "createObjectMask": "Створити маску об'єкта",
+ "adjustAnnotationSettings": "Налаштування параметрів анотацій",
+ "scrollViewTips": "Натисніть, щоб переглянути важливі моменти життєвого циклу цього об'єкта.",
+ "autoTrackingTips": "Положення обмежувальних рамок будуть неточними для камер з автоматичним відстеженням.",
+ "count": "{{first}} з {{second}}",
+ "trackedPoint": "Відстежувана точка",
+ "lifecycleItemDesc": {
+ "visible": "Виявлено {{label}}",
+ "entered_zone": "{{label}} увійшов до {{zones}}",
+ "active": "{{label}} став активним",
+ "stationary": "{{label}} став нерухомим",
+ "attribute": {
+ "faceOrLicense_plate": "Виявлено атрибут {{attribute}} для {{label}}",
+ "other": "{{label}} розпізнано як {{attribute}}"
+ },
+ "gone": "{{label}} залишилося",
+ "heard": "{{label}} почув(ла)",
+ "external": "Виявлено {{label}}",
+ "header": {
+ "zones": "Зони",
+ "ratio": "Співвідношення",
+ "area": "Площа",
+ "score": "Рахунок"
+ }
+ },
+ "annotationSettings": {
+ "title": "Налаштування анотацій",
+ "showAllZones": {
+ "title": "Показати всі зони",
+ "desc": "Завжди показувати зони на кадрах, де об'єкти увійшли в зону."
+ },
+ "offset": {
+ "label": "Зсув анотації",
+ "desc": "Ці дані надходять із каналу виявлення вашої камери, але накладаються на зображення з каналу запису. Малоймовірно, що ці два потоки будуть ідеально синхронізовані. Як результат, обмежувальна рамка та відеоматеріал не будуть ідеально збігатися. Ви можете використовувати це налаштування, щоб змістити анотації вперед або назад у часі, щоб краще узгодити їх із записаним відеоматеріалом.",
+ "millisecondsToOffset": "Мілісекунди для зміщення виявлених анотацій. За замовчуванням: 0",
+ "tips": "Зменште значення, якщо відтворення відео відбувається попереду блоків та точок шляху, і збільште значення, якщо відтворення відео відбувається позаду них. Це значення може бути від’ємним.",
+ "toast": {
+ "success": "Зміщення анотації для {{camera}} було збережено у файлі конфігурації."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Попередній слайд",
+ "next": "Наступний слайд"
+ }
+ }
}
diff --git a/web/public/locales/uk/views/exports.json b/web/public/locales/uk/views/exports.json
index 55ee0e3e8c..6b4108f4d0 100644
--- a/web/public/locales/uk/views/exports.json
+++ b/web/public/locales/uk/views/exports.json
@@ -13,5 +13,11 @@
"error": {
"renameExportFailed": "Не вдалося перейменувати експорт: {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "shareExport": "Поділитися експортом",
+ "downloadVideo": "Завантажити відео",
+ "editName": "Редагувати ім'я",
+ "deleteExport": "Видалити експорт"
}
}
diff --git a/web/public/locales/uk/views/faceLibrary.json b/web/public/locales/uk/views/faceLibrary.json
index 34f4207041..1170e3ee1e 100644
--- a/web/public/locales/uk/views/faceLibrary.json
+++ b/web/public/locales/uk/views/faceLibrary.json
@@ -17,7 +17,7 @@
"trainFailed": "Не вдалося тренуватися: {{errorMessage}}"
},
"success": {
- "updatedFaceScore": "Оцінку обличчя успішно оновлено.",
+ "updatedFaceScore": "Оцінку обличчя успішно оновлено до {{name}} ({{score}}).",
"deletedName_one": "{{count}} Обличчя успішно видалено.",
"deletedName_few": "{{count}} Обличчі успішно видалено.",
"deletedName_many": "{{count}} Облич. успішно видалено.",
@@ -66,12 +66,12 @@
"selectImage": "Будь ласка, виберіть файл зображення."
},
"dropActive": "Скинь зображення сюди…",
- "dropInstructions": "Перетягніть зображення сюди або клацніть, щоб вибрати"
+ "dropInstructions": "Перетягніть або вставте зображення сюди, або клацніть, щоб вибрати"
},
"trainFaceAs": "Тренуйте обличчя як:",
"trainFace": "Обличчя поїзда",
"description": {
- "addFace": "Покрокові інструкції з додавання нової колекції до Бібліотеки облич.",
+ "addFace": "Додайте нову колекцію до Бібліотеки облич, завантаживши своє перше зображення.",
"placeholder": "Введіть назву для цієї колекції",
"invalidName": "Недійсне ім'я. Ім'я може містити лише літери, цифри, пробіли, апострофи, символи підкреслення та дефіси."
},
@@ -83,12 +83,13 @@
"title": "Створити колекцію",
"desc": "Створити нову колекцію",
"new": "Створити нове обличчя",
- "nextSteps": "Щоб створити міцну основу:
Використовуйте вкладку «Навчання», щоб вибрати та навчити зображення для кожної виявленої особи.
Для найкращих результатів зосередьтеся на зображеннях, спрямованих прямо в обличчя; уникайте навчальних зображень, які фіксують обличчя під кутом.
"
+ "nextSteps": "Щоб створити міцну основу:
Використовуйте вкладку «Недавні розпізнавання», щоб вибрати та навчити систему розпізнавати зображення для кожної виявленої особи.
Для досягнення найкращих результатів зосередьтеся на прямих зображеннях; уникайте навчання зображень, на яких обличчя зняті під кутом.
"
},
"train": {
- "title": "Поїзд",
- "aria": "Виберіть поїзд",
- "empty": "Немає останніх спроб розпізнавання обличчя"
+ "title": "Нещодавні визнання",
+ "aria": "Виберіть нещодавні визнання",
+ "empty": "Немає останніх спроб розпізнавання обличчя",
+ "titleShort": "Нещодавні"
},
"collections": "Колекції",
"deleteFaceAttempts": {
diff --git a/web/public/locales/uk/views/live.json b/web/public/locales/uk/views/live.json
index 27a8c518a4..0b8b405b23 100644
--- a/web/public/locales/uk/views/live.json
+++ b/web/public/locales/uk/views/live.json
@@ -10,8 +10,8 @@
"label": "Грати у фоновому режимі",
"desc": "Увімкніть цей параметр, щоб продовжувати потокове передавання, коли програвач приховано."
},
- "tips": "Запустіть ручну подію на основі параметрів збереження запису цієї камери.",
- "title": "Запис на вимогу",
+ "tips": "Завантажте миттєвий знімок або запустіть ручну подію на основі налаштувань збереження запису цієї камери.",
+ "title": "На-вимогу",
"debugView": "Режим зневаджування",
"start": "Почати запис за запитом",
"failedToStart": "Не вдалося запустити ручний запис на вимогу.",
@@ -46,6 +46,9 @@
"lowBandwidth": {
"resetStream": "Скинути потік",
"tips": "Режим перегляду в реальному часі перемикається в економічний режим через помилки буферизації або потоку."
+ },
+ "debug": {
+ "picker": "Вибір потоку недоступний у режимі налагодження. У режимі налагодження завжди використовується потік, якому призначено роль виявлення."
}
},
"muteCameras": {
@@ -85,6 +88,14 @@
"center": {
"label": "Клацніть у кадрі, щоб відцентрувати камеру PTZ"
}
+ },
+ "focus": {
+ "in": {
+ "label": "Фокус PTZ-камери"
+ },
+ "out": {
+ "label": "Вихід PTZ-камери для фокусування"
+ }
}
},
"editLayout": {
@@ -94,7 +105,7 @@
"label": "Редагувати групу камер"
}
},
- "documentTitle": "Прямий трансляція - Frigate",
+ "documentTitle": "Пряма трансляція - Frigate",
"documentTitle.withCamera": "{{camera}} - Пряма трансляція - Frigate",
"lowBandwidthMode": "Економічний режим",
"twoWayTalk": {
@@ -142,7 +153,8 @@
"recording": "Записування",
"snapshots": "Знімки",
"audioDetection": "Виявлення звуку",
- "autotracking": "Автотрекiнг"
+ "autotracking": "Автотрекiнг",
+ "transcription": "Аудіотранскрипція"
},
"history": {
"label": "Показати історичні кадри"
@@ -154,5 +166,24 @@
"active_objects": "Активні об'єкти"
},
"notAllTips": "Ваш {{source}} конфігурацію збереження записів встановлено на режим: {{effectiveRetainMode}}, тому цей запис на вимогу збереже лише сегменти з {{effectiveRetainModeName}}."
+ },
+ "transcription": {
+ "enable": "Увімкнути транскрипцію аудіо в реальному часі",
+ "disable": "Вимкнути транскрипцію аудіо в реальному часі"
+ },
+ "noCameras": {
+ "title": "Немає налаштованих камер",
+ "description": "Почніть з підключення камери до Frigate.",
+ "buttonText": "Додати камеру",
+ "restricted": {
+ "title": "Немає Доступних Камер",
+ "description": "У вас немає дозволу на перегляд будь-яких камер у цій групі."
+ }
+ },
+ "snapshot": {
+ "takeSnapshot": "Завантажити миттєвий знімок",
+ "noVideoSource": "Немає доступного джерела відео для знімка.",
+ "captureFailed": "Не вдалося зробити знімок.",
+ "downloadStarted": "Розпочато завантаження знімка."
}
}
diff --git a/web/public/locales/uk/views/search.json b/web/public/locales/uk/views/search.json
index 0d8657e3dc..052b4c4579 100644
--- a/web/public/locales/uk/views/search.json
+++ b/web/public/locales/uk/views/search.json
@@ -34,7 +34,8 @@
"max_speed": "Максимальна швидкість",
"recognized_license_plate": "Розпізнаний номерний знак",
"has_clip": "Має клiп",
- "has_snapshot": "Має знiмок"
+ "has_snapshot": "Має знiмок",
+ "attributes": "Атрибути"
},
"searchType": {
"thumbnail": "Мініатюра",
diff --git a/web/public/locales/uk/views/settings.json b/web/public/locales/uk/views/settings.json
index a5e7d511f6..661196ec1e 100644
--- a/web/public/locales/uk/views/settings.json
+++ b/web/public/locales/uk/views/settings.json
@@ -86,7 +86,45 @@
"title": "Огляд",
"desc": "Тимчасово ввімкнути/вимкнути сповіщення та виявлення для цієї камери до перезавантаження Frigate. Якщо вимкнено, нові елементи огляду не створюватимуться. "
},
- "title": "Налаштування камери"
+ "title": "Налаштування камери",
+ "object_descriptions": {
+ "title": "Генеративні описи об'єктів штучного інтелекту",
+ "desc": "Тимчасово ввімкнути/вимкнути генеративні описи об'єктів ШІ для цієї камери. Якщо вимкнено, згенеровані ШІ описи не запитуватимуться для об'єктів, що відстежуються на цій камері."
+ },
+ "review_descriptions": {
+ "title": "Описи генеративного ШІ-огляду",
+ "desc": "Тимчасово ввімкнути/вимкнути генеративні описи огляду за допомогою штучного інтелекту для цієї камери. Якщо вимкнено, для елементів огляду на цій камері не запитуватимуться згенеровані штучним інтелектом описи."
+ },
+ "addCamera": "Додати нову камеру",
+ "editCamera": "Редагувати камеру:",
+ "selectCamera": "Виберіть камеру",
+ "backToSettings": "Назад до налаштувань камери",
+ "cameraConfig": {
+ "add": "Додати камеру",
+ "edit": "Редагувати камеру",
+ "description": "Налаштуйте параметри камери, включаючи потокові входи та ролі.",
+ "name": "Назва камери",
+ "nameRequired": "Потрібно вказати назву камери",
+ "nameInvalid": "Назва камери повинна містити лише літери, цифри, символи підкреслення або дефіси",
+ "namePlaceholder": "наприклад, вхідні_двері",
+ "enabled": "Увімкнено",
+ "ffmpeg": {
+ "inputs": "Вхідні потоки",
+ "path": "Шлях потоку",
+ "pathRequired": "Шлях потоку обов'язковий",
+ "pathPlaceholder": "'rtsp://...",
+ "roles": "Ролі",
+ "rolesRequired": "Потрібна хоча б одна роль",
+ "rolesUnique": "Кожна роль (аудіо, виявлення, запис) може бути призначена лише одному потоку",
+ "addInput": "Додати вхідний потік",
+ "removeInput": "Вилучити вхідний потік",
+ "inputsRequired": "Потрібен принаймні один вхідний потік"
+ },
+ "toast": {
+ "success": "Камеру {{cameraName}} успішно збережено"
+ },
+ "nameLength": "Назва камери має містити менше 24 символів."
+ }
},
"masksAndZones": {
"motionMasks": {
@@ -104,8 +142,8 @@
"edit": "Редагувати маску руху",
"toast": {
"success": {
- "title": "{{polygonName}} збережено. Перезапустіть Frigate, щоб застосувати зміни.",
- "noName": "Маску руху збережено. Перезапустіть Frigate, щоб застосувати зміни."
+ "title": "{{polygonName}} збережено.",
+ "noName": "Маску руху збережено."
}
},
"label": "Маска руху",
@@ -123,7 +161,7 @@
"name": {
"inputPlaceHolder": "Введіть назву…",
"title": "Ім'я",
- "tips": "Назва має містити щонайменше 2 символи та не повинна бути назвою камери чи іншої зони."
+ "tips": "Назва має містити щонайменше 2 символи, принаймні одну літеру та не повинна бути назвою камери чи іншої зони на цій камері."
},
"desc": {
"title": "Зони дозволяють визначити певну область кадру, щоб ви могли визначити, чи знаходиться об'єкт у певній області.",
@@ -169,7 +207,7 @@
"desc": "Список об'єктів, що належать до цієї зони."
},
"toast": {
- "success": "Зону ({{zoneName}}) збережено. Перезапустіть Frigate, щоб застосувати зміни."
+ "success": "Зону ({{zoneName}}) збережено."
}
},
"objectMasks": {
@@ -192,8 +230,8 @@
},
"toast": {
"success": {
- "title": "{{polygonName}} збережено. Перезапустіть Frigate, щоб застосувати зміни.",
- "noName": "Маску об'єкта збережено. Перезапустіть Frigate, щоб застосувати зміни."
+ "title": "{{polygonName}} збережено.",
+ "noName": "Маску об'єкта збережено."
}
},
"label": "Маски об'єктів"
@@ -214,7 +252,8 @@
"mustNotContainPeriod": "Назва зони не повинна містити крапок.",
"mustNotBeSameWithCamera": "Назва зони не повинна збігатися з назвою камери.",
"mustBeAtLeastTwoCharacters": "Назва зони має містити щонайменше 2 символи.",
- "hasIllegalCharacter": "Назва зони містить недопустимі символи."
+ "hasIllegalCharacter": "Назва зони містить недопустимі символи.",
+ "mustHaveAtLeastOneLetter": "Назва зони повинна містити щонайменше одну літеру."
}
},
"polygonDrawing": {
@@ -308,7 +347,20 @@
"tips": "
Поля руху
Червоні поля будуть накладені на області кадру, де наразі виявляється рух
"
},
"objectList": "Список об'єктів",
- "noObjects": "Без об'єктів"
+ "noObjects": "Без об'єктів",
+ "paths": {
+ "title": "Шляхи",
+ "desc": "Показувати важливі точки шляху відстежуваного об'єкта",
+ "tips": "
Шляхи
Лінії та кола позначатимуть важливі точки, які відстежуваний об'єкт переміщував протягом свого життєвого циклу.
"
+ },
+ "audio": {
+ "title": "Аудіо",
+ "noAudioDetections": "Немає виявлення звуку",
+ "score": "рахунок",
+ "currentRMS": "Поточне середньоквадратичне значення",
+ "currentdbFS": "Поточний dbFS"
+ },
+ "openCameraWebUI": "Відкрийте веб-інтерфейс {{camera}}"
},
"classification": {
"licensePlateRecognition": {
@@ -383,7 +435,7 @@
"supportedDetectors": "Підтримувані детектори",
"error": "Не вдалося завантажити інформацію про модель",
"availableModels": "Доступні моделі",
- "trainDate": "Дата поїзда",
+ "trainDate": "Дата тренування",
"baseModel": "Базова модель",
"modelSelect": "Тут можна вибрати доступні моделі на Frigate+. Зверніть увагу, що можна вибрати лише моделі, сумісні з вашою поточною конфігурацією детектора.",
"title": "Інформація про модель",
@@ -426,7 +478,7 @@
"monday": "Понеділок"
}
},
- "title": "Загальна налаштування",
+ "title": "Налаштування інтерфейсу користувача",
"liveDashboard": {
"title": "Панель керування в прямому ефірі",
"automaticLiveView": {
@@ -436,6 +488,14 @@
"playAlertVideos": {
"label": "Відтворити відео зі сповіщеннями",
"desc": "За замовчуванням останні сповіщення на панелі керування Live відтворюються як невеликі відеозаписи, що циклічно відтворюються. Вимкніть цю опцію, щоб відображати лише статичне зображення останніх сповіщень на цьому пристрої/у браузері."
+ },
+ "displayCameraNames": {
+ "label": "Завжди показувати назви камер",
+ "desc": "Завжди відображати назви камер у чіпі на панелі керування режимом живого перегляду з кількох камер."
+ },
+ "liveFallbackTimeout": {
+ "label": "Час очікування резервного програвача в реальному часі",
+ "desc": "Коли високоякісна пряма трансляція з камери недоступна, повернутися до режиму низької пропускної здатності через певну кількість секунд. За замовчуванням: 3."
}
},
"storedLayouts": {
@@ -498,9 +558,11 @@
"classification": "Налаштування класифікації – Фрегат",
"masksAndZones": "Редактор масок та зон – Фрегат",
"motionTuner": "Тюнер руху - Фрегат",
- "general": "Основна налаштування – Frigate",
+ "general": "Основна Статус – Frigate",
"frigatePlus": "Налаштування Frigate+ – Frigate",
- "enrichments": "Налаштуваннях збагачення – Frigate"
+ "enrichments": "Налаштуваннях збагачення – Frigate",
+ "cameraManagement": "Керування камерами - Frigate",
+ "cameraReview": "Налаштування перегляду камери - Frigate"
},
"menu": {
"ui": "Інтерфейс користувача",
@@ -512,7 +574,11 @@
"debug": "Налагодження",
"notifications": "Сповіщення",
"frigateplus": "Frigate+",
- "enrichments": "Збагачення"
+ "enrichments": "Збагаченням",
+ "triggers": "Тригери",
+ "roles": "Ролі",
+ "cameraManagement": "Управління",
+ "cameraReview": "Огляду"
},
"dialog": {
"unsavedChanges": {
@@ -530,7 +596,7 @@
"desc": "Керувати обліковими записами користувачів цього екземпляра Frigate."
},
"addUser": "Додати користувача",
- "updatePassword": "Оновити пароль",
+ "updatePassword": "Скинути пароль",
"toast": {
"success": {
"deleteUser": "Користувач {{user}} успішно видалений",
@@ -546,7 +612,7 @@
}
},
"table": {
- "password": "Пароль",
+ "password": "Скинути пароль",
"deleteUser": "Видалити користувача",
"username": "Ім'я користувача",
"actions": "Дії",
@@ -576,6 +642,15 @@
"confirm": {
"title": "Підтвердьте пароль",
"placeholder": "Підтвердьте пароль"
+ },
+ "show": "Показати пароль",
+ "hide": "Приховати пароль",
+ "requirements": {
+ "title": "Вимоги до пароля:",
+ "length": "Принаймні 8 символів",
+ "uppercase": "Принаймні одна велика літера",
+ "digit": "Принаймні одна цифра",
+ "special": "Принаймні один спеціальний символ (!@#$%^&*(),.?\":{}|<>)"
}
},
"newPassword": {
@@ -586,7 +661,11 @@
"placeholder": "Введіть новий пароль"
},
"usernameIsRequired": "Потрібне ім'я користувача",
- "passwordIsRequired": "Потрібен пароль"
+ "passwordIsRequired": "Потрібен пароль",
+ "currentPassword": {
+ "title": "Поточний пароль",
+ "placeholder": "Введіть свій поточний пароль"
+ }
},
"changeRole": {
"roleInfo": {
@@ -594,7 +673,8 @@
"intro": "Виберіть відповідну роль для цього користувача:",
"adminDesc": "Повний доступ до всіх функцій.",
"viewer": "Глядач",
- "viewerDesc": "Обмежено лише активними інформаційними панелями, функціями «Огляд», «Дослідження» та «Експорт»."
+ "viewerDesc": "Обмежено лише активними інформаційними панелями, функціями «Огляд», «Дослідження» та «Експорт».",
+ "customDesc": "Особлива роль з доступом до певної камери."
},
"title": "Змінити роль користувача",
"desc": "Оновити дозволи для {{username}}",
@@ -616,7 +696,12 @@
"setPassword": "Встановити пароль",
"desc": "Створіть надійний пароль для захисту цього облікового запису.",
"cannotBeEmpty": "Пароль не може бути порожнім",
- "doNotMatch": "Паролі не збігаються"
+ "doNotMatch": "Паролі не збігаються",
+ "currentPasswordRequired": "Потрібно ввести поточний пароль",
+ "incorrectCurrentPassword": "Поточний пароль неправильний",
+ "passwordVerificationFailed": "Не вдалося перевірити пароль",
+ "multiDeviceWarning": "На будь-яких інших пристроях, на яких ви ввійшли в систему, потрібно буде повторно ввійти протягом {{refresh_time}}.",
+ "multiDeviceAdmin": "Ви також можете змусити всіх користувачів негайно повторно автентифікуватися, змінивши свій JWT-секрет."
}
},
"title": "Користувачі"
@@ -681,6 +766,548 @@
"desc": "Класифікація птахів ідентифікує відомих птахів за допомогою квантованої моделі тензорного потоку. Коли відомого птаха розпізнано, його загальну назву буде додано як підмітку. Ця інформація відображається в інтерфейсі, фільтрах, а також у сповіщеннях.",
"title": "Класифікація птахів"
},
- "title": "Налаштуваннях збагачення"
+ "title": "Налаштуваннях Збагаченням"
+ },
+ "triggers": {
+ "documentTitle": "Тригери",
+ "management": {
+ "title": "Тригери",
+ "desc": "Керуйте тригерами для {{camera}}. Використовуйте тип мініатюри для спрацьовування на схожих мініатюрах до вибраного об’єкта відстеження, а тип опису – для спрацьовування на схожих описах до вказаного вами тексту."
+ },
+ "addTrigger": "Додати Тригер",
+ "table": {
+ "name": "Ім'я",
+ "type": "Тип",
+ "content": "Зміст",
+ "threshold": "Поріг",
+ "actions": "Дії",
+ "noTriggers": "Для цієї камери не налаштовано жодних тригерів.",
+ "edit": "Редагувати",
+ "deleteTrigger": "Видалити тригер",
+ "lastTriggered": "Остання активація"
+ },
+ "type": {
+ "thumbnail": "Мініатюра",
+ "description": "Опис"
+ },
+ "actions": {
+ "alert": "Позначити як сповіщення",
+ "notification": "Надіслати сповіщення",
+ "sub_label": "Додати підмітку",
+ "attribute": "Додати атрибут"
+ },
+ "dialog": {
+ "createTrigger": {
+ "title": "Створити тригер",
+ "desc": "Створіть тригер для камери {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Редагувати тригер",
+ "desc": "Редагувати налаштування для тригера на камері {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Видалити тригер",
+ "desc": "Ви впевнені, що хочете видалити тригер {{triggerName}}? Цю дію не можна скасувати."
+ },
+ "form": {
+ "name": {
+ "title": "Ім'я",
+ "placeholder": "Назвіть цей тригер",
+ "error": {
+ "minLength": "Поле має містити щонайменше 2 символи.",
+ "invalidCharacters": "Поле може містити лише літери, цифри, символи підкреслення та дефіси.",
+ "alreadyExists": "Тригер із такою назвою вже існує для цієї камери."
+ },
+ "description": "Введіть унікальну назву або опис, щоб ідентифікувати цей тригер"
+ },
+ "enabled": {
+ "description": "Увімкнути або вимкнути цей тригер"
+ },
+ "type": {
+ "title": "Тип",
+ "placeholder": "Виберіть тип тригера",
+ "description": "Спрацьовує, коли виявляється схожий опис відстежуваного об'єкта",
+ "thumbnail": "Спрацьовує, коли виявляється мініатюра схожого відстежуваного об'єкта"
+ },
+ "content": {
+ "title": "Зміст",
+ "imagePlaceholder": "Виберіть мініатюру",
+ "textPlaceholder": "Введіть текстовий вміст",
+ "imageDesc": "Відображаються лише 100 останніх мініатюр. Якщо ви не можете знайти потрібну мініатюру, перегляньте попередні об’єкти в розділі «Огляд» і налаштуйте тригер у меню.",
+ "textDesc": "Введіть текст, щоб запустити цю дію, коли буде виявлено схожий опис відстежуваного об’єкта.",
+ "error": {
+ "required": "Контент обов'язковий."
+ }
+ },
+ "threshold": {
+ "title": "Поріг",
+ "error": {
+ "min": "Поріг має бути щонайменше 0",
+ "max": "Поріг має бути не більше 1"
+ },
+ "desc": "Встановіть поріг подібності для цього тригера. Вищий поріг означає, що для спрацьовування тригера потрібна ближча відповідність."
+ },
+ "actions": {
+ "title": "Дії",
+ "desc": "За замовчуванням Frigate надсилає повідомлення MQTT для всіх тригерів. Підмітки додають назву тригера до мітки об'єкта. Атрибути – це метадані, які можна шукати, що зберігаються окремо в метаданих відстежуваного об'єкта.",
+ "error": {
+ "min": "Потрібно вибрати принаймні одну дію."
+ }
+ },
+ "friendly_name": {
+ "title": "Зрозуміле ім'я",
+ "placeholder": "Назвіть або опишіть цей тригер",
+ "description": "Зрозуміла назва або описовий текст (необов'язково) для цього тригера."
+ }
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Тригер {{name}} успішно створено.",
+ "updateTrigger": "Тригер {{name}} успішно оновлено.",
+ "deleteTrigger": "Тригер {{name}} успішно видалено."
+ },
+ "error": {
+ "createTriggerFailed": "Не вдалося створити тригер: {{errorMessage}}",
+ "updateTriggerFailed": "Не вдалося оновити тригер: {{errorMessage}}",
+ "deleteTriggerFailed": "Не вдалося видалити тригер: {{errorMessage}}"
+ }
+ },
+ "semanticSearch": {
+ "title": "Семантичний пошук вимкнено",
+ "desc": "Для використання тригерів необхідно ввімкнути семантичний пошук."
+ },
+ "wizard": {
+ "title": "Створити тригер",
+ "step1": {
+ "description": "Налаштуйте основні параметри для вашого тригера."
+ },
+ "step2": {
+ "description": "Налаштуйте контент, який запускатиме цю дію."
+ },
+ "step3": {
+ "description": "Налаштуйте поріг та дії для цього тригера."
+ },
+ "steps": {
+ "nameAndType": "Ім'я та тип",
+ "configureData": "Налаштувати дані",
+ "thresholdAndActions": "Поріг та дії"
+ }
+ }
+ },
+ "roles": {
+ "addRole": "Додати роль",
+ "table": {
+ "role": "Роль",
+ "cameras": "Камери",
+ "actions": "Дії",
+ "noRoles": "Не знайдено користувацьких ролей.",
+ "editCameras": "Редагувати камери",
+ "deleteRole": "Видалити роль"
+ },
+ "toast": {
+ "success": {
+ "createRole": "Роль {{role}} успішно створена",
+ "updateCameras": "Камери оновлено для ролі {{role}}",
+ "deleteRole": "Роль {{role}} успішно видалено",
+ "userRolesUpdated_one": "{{count}} користувача, призначену цій ролі, оновлено до «глядача», який має доступ до всіх камер.",
+ "userRolesUpdated_few": "{{count}} Користувачі, яким призначено цю роль, оновлено до ролі «глядача», що має доступ до всіх камер.",
+ "userRolesUpdated_many": "{{count}} Користувачів, яким призначено цю роль, оновлено до ролі «глядача», що має доступ до всіх камер."
+ },
+ "error": {
+ "createRoleFailed": "Не вдалося створити роль: {{errorMessage}}",
+ "updateCamerasFailed": "Не вдалося оновити камери: {{errorMessage}}",
+ "deleteRoleFailed": "Не вдалося видалити роль: {{errorMessage}}",
+ "userUpdateFailed": "Не вдалося оновити ролі користувачів: {{errorMessage}}"
+ }
+ },
+ "management": {
+ "title": "Керування ролями глядача",
+ "desc": "Керуйте ролями глядачів та їхніми дозволами на доступ до камери для цього екземпляра Frigate."
+ },
+ "dialog": {
+ "createRole": {
+ "title": "Створити нову роль",
+ "desc": "Додайте нову роль і вкажіть дозволи доступу до камери."
+ },
+ "editCameras": {
+ "title": "Редагувати рольові камери",
+ "desc": "Оновіть доступ до камери для цієї ролі {{role}}."
+ },
+ "deleteRole": {
+ "title": "Видалити роль",
+ "desc": "Цю дію не можна скасувати. Це призведе до остаточного видалення ролі та призначення всім користувачам із цією роллю ролі «глядач», що надасть глядачеві доступ до всіх камер.",
+ "warn": "Ви впевнені, що хочете видалити {{role}}?",
+ "deleting": "Видалення..."
+ },
+ "form": {
+ "role": {
+ "title": "Назва ролі",
+ "placeholder": "Введіть назву ролі",
+ "desc": "Дозволено використовувати лише літери, цифри, крапки та символи підкреслення.",
+ "roleIsRequired": "Потрібно вказати назву ролі",
+ "roleOnlyInclude": "Назва ролі може містити лише літери, цифри, символи *.* або *.*",
+ "roleExists": "Роль із такою назвою вже існує."
+ },
+ "cameras": {
+ "title": "Камери",
+ "desc": "Виберіть камери, до яких ця роль має доступ. Потрібна принаймні одна камера.",
+ "required": "Потрібно вибрати принаймні одну камеру."
+ }
+ }
+ }
+ },
+ "cameraWizard": {
+ "title": "Додати камеру",
+ "description": "Виконайте наведені нижче кроки, щоб додати нову камеру до вашої установки Frigate.",
+ "steps": {
+ "nameAndConnection": "Ім'я та з'єднання",
+ "streamConfiguration": "Конфігурація потоку",
+ "validationAndTesting": "Валідація та тестування",
+ "probeOrSnapshot": "Зонд або знімок"
+ },
+ "save": {
+ "success": "Нову камеру успішно збережено {{cameraName}}.",
+ "failure": "Помилка збереження {{cameraName}}."
+ },
+ "testResultLabels": {
+ "resolution": "Роздільна здатність",
+ "video": "Відео",
+ "audio": "Аудіо",
+ "fps": "FPS"
+ },
+ "commonErrors": {
+ "noUrl": "Будь ласка, надайте дійсну URL-адресу потоку",
+ "testFailed": "Тест потоку не вдався: {{error}}"
+ },
+ "step1": {
+ "description": "Введіть дані вашої камери та виберіть тестування камери або виберіть бренд вручну.",
+ "cameraName": "Назва камери",
+ "cameraNamePlaceholder": "наприклад, передні_двері або огляд заднього двору",
+ "host": "Хост/IP-адреса",
+ "port": "Порт",
+ "username": "Ім'я користувача",
+ "usernamePlaceholder": "Необов'язково",
+ "password": "Пароль",
+ "passwordPlaceholder": "Необов'язково",
+ "selectTransport": "Виберіть транспортний протокол",
+ "cameraBrand": "Бренд камери",
+ "selectBrand": "Виберіть марку камери для шаблону URL-адреси",
+ "customUrl": "URL-адреса користувацького потоку",
+ "brandInformation": "Інформація про бренд",
+ "brandUrlFormat": "Для камер з форматом RTSP URL, як: {{exampleUrl}}",
+ "customUrlPlaceholder": "rtsp://username:password@host:port/path",
+ "testConnection": "Тестове з'єднання",
+ "testSuccess": "Тестування з'єднання успішне!",
+ "testFailed": "Перевірка з’єднання не вдалася. Перевірте введені дані та повторіть спробу.",
+ "streamDetails": "Деталі трансляції",
+ "warnings": {
+ "noSnapshot": "Не вдалося отримати знімок із налаштованого потоку."
+ },
+ "errors": {
+ "brandOrCustomUrlRequired": "Виберіть або марку камери з хостом/IP-адресою, або виберіть «Інше» з власною URL-адресою",
+ "nameRequired": "Потрібно вказати назву камери",
+ "nameLength": "Назва камери має містити не більше 64 символів",
+ "invalidCharacters": "Назва камери містить недійсні символи",
+ "nameExists": "Назва камери вже існує",
+ "brands": {
+ "reolink-rtsp": "Не рекомендується використовувати Reolink RTSP. Увімкніть HTTP у налаштуваннях прошивки камери та перезапустіть майстер."
+ },
+ "customUrlRtspRequired": "Користувацькі URL-адреси мають починатися з \"rtsp://\". Для потоків з камер, що не підтримують RTSP, потрібне ручне налаштування."
+ },
+ "docs": {
+ "reolink": "https://docs.frigate.video/configuration/camera_specific.html#reolink-cameras"
+ },
+ "testing": {
+ "probingMetadata": "Зондування метаданих камери...",
+ "fetchingSnapshot": "Отримання знімка камери..."
+ },
+ "connectionSettings": "Налаштування підключення",
+ "detectionMethod": "Метод виявлення потоку",
+ "onvifPort": "Порт ONVIF",
+ "probeMode": "Зонд-камера",
+ "manualMode": "Ручний вибір",
+ "detectionMethodDescription": "Перевірте камеру з ONVIF (якщо підтримується) для пошуку URL-адресів потоку камери або вручну виберіть бренд камери, щоб використовувати попередньо визначені URL. Щоб введіти налаштований URL-адрес RTSP, виберіть ручний метод і вибрати \"Інший\".",
+ "onvifPortDescription": "Для камер, що підтримують ONVIF, це зазвичай 80 або 8080.",
+ "useDigestAuth": "Використовувати дайджест-автентифікацію",
+ "useDigestAuthDescription": "Використовуйте автентифікацію HTTP-дайджест для ONVIF. Деякі камери можуть вимагати спеціальне ім’я користувача/пароль ONVIF замість стандартного користувача-адміністратора."
+ },
+ "step2": {
+ "description": "Перевірте камеру на наявність доступних потоків або налаштуйте ручні параметри на основі вибраного методу виявлення.",
+ "streamsTitle": "Потоки з камери",
+ "addStream": "Додати потік",
+ "addAnotherStream": "Додати ще один потік",
+ "streamTitle": "Потік {{number}}",
+ "streamUrl": "URL-адреса потоку",
+ "streamUrlPlaceholder": "rtsp://username:password@host:port/path",
+ "url": "URL",
+ "resolution": "Роздільна здатність",
+ "selectResolution": "Виберіть роздільну здатність",
+ "quality": "Якість",
+ "selectQuality": "Виберіть якість",
+ "roles": "Ролі",
+ "roleLabels": {
+ "detect": "Виявлення об'єктів",
+ "record": "Запис",
+ "audio": "Аудіо"
+ },
+ "testStream": "Тестове з'єднання",
+ "testSuccess": "Тестування з'єднання успішне!",
+ "testFailed": "Перевірка з’єднання не вдалася. Перевірте введені дані та повторіть спробу.",
+ "testFailedTitle": "Тест не вдався",
+ "connected": "Підключено",
+ "notConnected": "Не підключено",
+ "featuresTitle": "Особливості",
+ "go2rtc": "Зменште кількість підключень до камери",
+ "detectRoleWarning": "Для продовження принаймні один потік повинен мати роль \"виявлення\".",
+ "rolesPopover": {
+ "title": "Ролі потоку",
+ "detect": "Основний канал для виявлення об'єктів.",
+ "record": "Зберігає сегменти відеоканалу на основі налаштувань конфігурації.",
+ "audio": "Стрічка даних для виявлення на основі аудіо."
+ },
+ "featuresPopover": {
+ "title": "Функції потоку",
+ "description": "Використовуйте ретрансляцію go2rtc, щоб зменшити кількість підключень до вашої камери."
+ },
+ "streamDetails": "Деталі трансляції",
+ "probing": "Зондуюча камера...",
+ "retry": "Повторити спробу",
+ "testing": {
+ "probingMetadata": "Зондування метаданих камери...",
+ "fetchingSnapshot": "Отримання знімка камери..."
+ },
+ "probeFailed": "Не вдалося дослідити камеру: {{error}}",
+ "probingDevice": "Зондуючий пристрій...",
+ "probeSuccessful": "Зонд успішно",
+ "probeError": "Помилка зонда",
+ "probeNoSuccess": "Зондування Невдало",
+ "deviceInfo": "Інформація про пристрій",
+ "manufacturer": "Виробник",
+ "model": "Модель",
+ "firmware": "Прошивка",
+ "profiles": "Профілі",
+ "ptzSupport": "Підтримка PTZ-камер",
+ "autotrackingSupport": "Підтримка автоматичного відстеження",
+ "presets": "Пресети",
+ "rtspCandidates": "Кандидати RTSP",
+ "rtspCandidatesDescription": "З камери було знайдено такі URL-адреси RTSP. Перевірте з’єднання, щоб переглянути метадані потоку.",
+ "noRtspCandidates": "Не знайдено URL-адрес RTSP з камери. Ваші облікові дані можуть бути неправильними, або камера може не підтримувати ONVIF чи метод, який використовується для отримання URL-адрес RTSP. Поверніться та введіть URL-адресу RTSP вручну.",
+ "candidateStreamTitle": "Кандидат {{number}}",
+ "useCandidate": "Використання",
+ "uriCopy": "Копіювати",
+ "uriCopied": "URI скопійовано в буфер обміну",
+ "testConnection": "Тестове з'єднання",
+ "toggleUriView": "Натисніть, щоб перемкнути повний вигляд URI",
+ "errors": {
+ "hostRequired": "Потрібно вказати хост/IP-адресу"
+ }
+ },
+ "step3": {
+ "description": "Налаштуйте ролі потоків та додайте додаткові потоки для вашої камери.",
+ "validationTitle": "Перевірка потоку",
+ "connectAllStreams": "Підключити всі потоки",
+ "reconnectionSuccess": "Повторне підключення успішне.",
+ "reconnectionPartial": "Не вдалося відновити підключення до деяких потоків.",
+ "streamUnavailable": "Попередній перегляд трансляції недоступний",
+ "reload": "Перезавантажити",
+ "connecting": "Підключення...",
+ "streamTitle": "Потік {{number}}",
+ "valid": "Дійсний",
+ "failed": "Не вдалося",
+ "notTested": "Не тестувалося",
+ "connectStream": "Підключитися",
+ "connectingStream": "Підключення",
+ "disconnectStream": "Відключитися",
+ "estimatedBandwidth": "Орієнтовна пропускна здатність",
+ "roles": "Ролі",
+ "none": "Жоден",
+ "error": "Помилка",
+ "streamValidated": "Потік {{number}} успішно перевірено",
+ "streamValidationFailed": "Не вдалося перевірити потік {{number}}",
+ "saveAndApply": "Зберегти нову камеру",
+ "saveError": "Недійсна конфігурація. Перевірте свої налаштування.",
+ "issues": {
+ "title": "Перевірка потоку",
+ "videoCodecGood": "Відеокодек: {{codec}}.",
+ "audioCodecGood": "Аудіокодек: {{codec}}.",
+ "noAudioWarning": "Для цього потоку не виявлено аудіо, записи не матимуть аудіо.",
+ "audioCodecRecordError": "Для підтримки аудіо в записах потрібен аудіокодек AAC.",
+ "audioCodecRequired": "Для підтримки виявлення звуку потрібен аудіопотік.",
+ "restreamingWarning": "Зменшення кількості підключень до камери для потоку запису може дещо збільшити використання процесора.",
+ "dahua": {
+ "substreamWarning": "Підпотік 1 заблокований на низькій роздільній здатності. Багато камер Dahua / Amcrest / EmpireTech підтримують додаткові підпотоки, які потрібно ввімкнути в налаштуваннях камери. Рекомендується перевірити та використовувати ці потоки, якщо вони доступні."
+ },
+ "hikvision": {
+ "substreamWarning": "Підпотік 1 заблокований на низькій роздільній здатності. Багато камер Hikvision підтримують додаткові підпотоки, які потрібно ввімкнути в налаштуваннях камери. Рекомендується перевірити та використовувати ці потоки, якщо вони доступні."
+ },
+ "resolutionHigh": "Роздільна здатність {{resolution}} може призвести до збільшення використання ресурсів.",
+ "resolutionLow": "Роздільна здатність {{resolution}} може бути занадто низькою для надійного виявлення малих об'єктів."
+ },
+ "ffmpegModule": "Використовувати режим сумісності з потоками",
+ "ffmpegModuleDescription": "Якщо потік не завантажується після кількох спроб, спробуйте ввімкнути цю функцію. Коли вона ввімкнена, Frigate використовуватиме модуль ffmpeg з go2rtc. Це може забезпечити кращу сумісність з деякими потоками камер.",
+ "streamsTitle": "Трансляції з камери",
+ "addStream": "Додати потік",
+ "addAnotherStream": "Додати ще один потік",
+ "streamUrl": "URL-адреса потоку",
+ "streamUrlPlaceholder": "rtsp://username:password@host:port/path",
+ "selectStream": "Виберіть потік",
+ "searchCandidates": "Пошук кандидатів...",
+ "noStreamFound": "Потік не знайдено",
+ "url": "URL",
+ "resolution": "Роздільна здатність",
+ "selectResolution": "Виберіть роздільну здатність",
+ "quality": "Якість",
+ "selectQuality": "Виберіть якість",
+ "roleLabels": {
+ "detect": "Виявлення об'єктів",
+ "record": "Запис",
+ "audio": "Аудіо"
+ },
+ "testStream": "Тестове з'єднання",
+ "testSuccess": "Тестування трансляції успішне!",
+ "testFailed": "Тест потоку не вдався",
+ "testFailedTitle": "Тест не вдався",
+ "connected": "Підключено",
+ "notConnected": "Не підключено",
+ "featuresTitle": "Особливості",
+ "go2rtc": "Зменште кількість підключень до камери",
+ "detectRoleWarning": "Для продовження принаймні один потік повинен мати роль \"виявлення\".",
+ "rolesPopover": {
+ "title": "Ролі потоку",
+ "detect": "Основний канал для виявлення об'єктів.",
+ "record": "Зберігає сегменти відеоканалу на основі налаштувань конфігурації.",
+ "audio": "Стрічка даних для виявлення на основі аудіо."
+ },
+ "featuresPopover": {
+ "title": "Функції потоку",
+ "description": "Використовуйте ретрансляцію go2rtc, щоб зменшити кількість підключень до вашої камери."
+ }
+ },
+ "step4": {
+ "description": "Фінальна перевірка та аналіз перед збереженням нової камери. Підключіть кожен потік перед збереженням.",
+ "validationTitle": "Перевірка потоку",
+ "connectAllStreams": "Підключити всі потоки",
+ "reconnectionSuccess": "Повторне підключення успішне.",
+ "reconnectionPartial": "Не вдалося відновити підключення до деяких потоків.",
+ "streamUnavailable": "Попередній перегляд трансляції недоступний",
+ "reload": "Перезавантажити",
+ "connecting": "Підключення...",
+ "streamTitle": "Потік {{number}}",
+ "valid": "Дійсний",
+ "failed": "Не вдалося",
+ "notTested": "Не тестувалося",
+ "connectStream": "Підключитися",
+ "connectingStream": "Підключення",
+ "disconnectStream": "Відключитися",
+ "estimatedBandwidth": "Орієнтовна пропускна здатність",
+ "roles": "Ролі",
+ "ffmpegModule": "Використовувати режим сумісності з потоками",
+ "ffmpegModuleDescription": "Якщо потік не завантажується після кількох спроб, спробуйте ввімкнути цю функцію. Коли вона ввімкнена, Frigate використовуватиме модуль ffmpeg з go2rtc. Це може забезпечити кращу сумісність з деякими потоками камер.",
+ "none": "Жоден",
+ "error": "Помилка",
+ "streamValidated": "Потік {{number}} успішно перевірено",
+ "streamValidationFailed": "Не вдалося перевірити потік {{number}}",
+ "saveAndApply": "Зберегти нову камеру",
+ "saveError": "Недійсна конфігурація. Перевірте свої налаштування.",
+ "issues": {
+ "title": "Перевірка потоку",
+ "videoCodecGood": "Відеокодек є {{codec}}.",
+ "audioCodecGood": "Аудіокодек є {{codec}}.",
+ "resolutionHigh": "Роздільна здатність {{resolution}} може призвести до збільшення використання ресурсів.",
+ "resolutionLow": "Роздільна здатність {{resolution}} може бути занадто низькою для надійного виявлення малих об'єктів.",
+ "noAudioWarning": "Для цього потоку не виявлено аудіо, записи не матимуть аудіо.",
+ "audioCodecRecordError": "Для підтримки аудіо в записах потрібен аудіокодек AAC.",
+ "audioCodecRequired": "Для підтримки виявлення звуку потрібен аудіопотік.",
+ "restreamingWarning": "Зменшення кількості підключень до камери для потоку запису може дещо збільшити використання процесора.",
+ "brands": {
+ "reolink-rtsp": "Не рекомендується використовувати Reolink RTSP. Увімкніть HTTP у налаштуваннях прошивки камери та перезапустіть майстер.",
+ "reolink-http": "Для кращої сумісності HTTP-потоки Reolink повинні використовувати FFmpeg. Увімкніть для цього потоку опцію «Використовувати режим сумісності потоків»."
+ },
+ "dahua": {
+ "substreamWarning": "Підпотік 1 заперечений до низького розділу. Багато камери Dahua / Amcrest / EmpireTech підтримують додаткові підтоки, які потрібно включити в налаштуваннях камери. Рекомендується перевірити та використовувати ці потоки, якщо вони доступні."
+ },
+ "hikvision": {
+ "substreamWarning": "Підпотік 1 заперечений до низького розділу. Багато камер Hikvision підтримують додаткові підтоки, які повинні бути включені в налаштуваннях камери. Рекомендується перевірити та використовувати ці потоки, якщо вони доступні."
+ }
+ }
+ }
+ },
+ "cameraManagement": {
+ "title": "Керування камерами",
+ "addCamera": "Додати нову камеру",
+ "editCamera": "Редагувати камеру:",
+ "selectCamera": "Виберіть камеру",
+ "backToSettings": "Назад до налаштувань камери",
+ "streams": {
+ "title": "Увімкнути/вимкнути камери",
+ "desc": "Тимчасово вимкніть камеру до перезапуску Frigate. Вимкнення камери повністю зупиняє обробку потоків цієї камери в Frigate. Функції виявлення, запису та налагодження будуть недоступні. Примітка: це не вимикає ретрансляції "
+ },
+ "cameraConfig": {
+ "add": "Додати камеру",
+ "edit": "Редагувати камеру",
+ "description": "Налаштуйте параметри камери, включаючи потокові входи та ролі.",
+ "name": "Назва камери",
+ "nameRequired": "Потрібно вказати назву камери",
+ "nameLength": "Назва камери має містити менше 64 символів.",
+ "namePlaceholder": "наприклад, передні_двері або огляд заднього двору",
+ "enabled": "Увімкнено",
+ "ffmpeg": {
+ "inputs": "Вхідні потоки",
+ "path": "Шлях потоку",
+ "pathRequired": "Шлях потоку обов'язковий",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Ролі",
+ "rolesRequired": "Потрібна хоча б одна роль",
+ "rolesUnique": "Кожна роль (аудіо, виявлення, запис) може бути призначена лише одному потоку",
+ "addInput": "Додати вхідний потік",
+ "removeInput": "Вилучити вхідний потік",
+ "inputsRequired": "Потрібен принаймні один вхідний потік"
+ },
+ "go2rtcStreams": "go2rtc Стріми",
+ "streamUrls": "URL-адреси потоків",
+ "addUrl": "Додати URL-адресу",
+ "addGo2rtcStream": "Додати потік go2rtc",
+ "toast": {
+ "success": "Камеру {{cameraName}} успішно збережено"
+ }
+ }
+ },
+ "cameraReview": {
+ "title": "Налаштування перегляду камери",
+ "object_descriptions": {
+ "title": "Генеративні описи об'єктів штучного інтелекту",
+ "desc": "Тимчасово ввімкнути/вимкнути генеративні описи об'єктів ШІ для цієї камери. Якщо вимкнено, згенеровані ШІ описи не запитуватимуться для об'єктів, що відстежуються на цій камері."
+ },
+ "review_descriptions": {
+ "title": "Описи генеративного ШІ-огляду",
+ "desc": "Тимчасово ввімкнути/вимкнути генеративні описи огляду за допомогою штучного інтелекту для цієї камери. Якщо вимкнено, для елементів огляду на цій камері не запитуватимуться згенеровані штучним інтелектом описи."
+ },
+ "review": {
+ "title": "Огляду",
+ "desc": "Тимчасово ввімкнути/вимкнути сповіщення та виявлення для цієї камери до перезавантаження Frigate. Якщо вимкнено, нові елементи огляду не створюватимуться. ",
+ "alerts": "Сповіщення ",
+ "detections": "Виявлення "
+ },
+ "reviewClassification": {
+ "title": "Класифікація оглядів",
+ "desc": "Frigate класифікує об'єкти перевірки як сповіщення та виявлення. За замовчуванням усі об'єкти людина та автомобіль вважаються сповіщеннями. Ви можете уточнити класифікацію об'єктів перевірки, налаштувавши для них необхідні зони.",
+ "noDefinedZones": "Для цієї камери не визначено жодної зони.",
+ "objectAlertsTips": "Усі об’єкти {{alertsLabels}} на {{cameraName}} будуть відображатися як сповіщення.",
+ "zoneObjectAlertsTips": "Усі об’єкти {{alertsLabels}}, виявлені в {{zone}} на {{cameraName}}, будуть відображатися як сповіщення.",
+ "objectDetectionsTips": "Усі об’єкти {{detectionsLabels}}, які не класифіковані на {{cameraName}}, будуть відображатися як виявлені, незалежно від того, в якій зоні вони знаходяться.",
+ "zoneObjectDetectionsTips": {
+ "text": "Усі об’єкти {{detectionsLabels}}, що не належать до категорії {{zone}} на {{cameraName}}, будуть відображатися як Виявлення.",
+ "notSelectDetections": "Усі об’єкти {{detectionsLabels}}, виявлені в {{zone}} на {{cameraName}}, які не віднесені до категорії «Сповіщення», будуть відображатися як Виявлення незалежно від того, в якій зоні вони знаходяться.",
+ "regardlessOfZoneObjectDetectionsTips": "Усі об’єкти {{detectionsLabels}}, які не класифіковані на {{cameraName}}, будуть відображатися як виявлені, незалежно від того, в якій зоні вони знаходяться."
+ },
+ "unsavedChanges": "Незбережені налаштування класифікації рецензій для {{camera}}",
+ "selectAlertsZones": "Виберіть зони для сповіщень",
+ "selectDetectionsZones": "Виберіть зони для виявлення",
+ "limitDetections": "Обмеження виявлення певними зонами",
+ "toast": {
+ "success": "Конфігурацію класифікації перегляду збережено. Перезапустіть Frigate, щоб застосувати зміни."
+ }
+ }
}
}
diff --git a/web/public/locales/uk/views/system.json b/web/public/locales/uk/views/system.json
index b1472f7a78..0e2a585118 100644
--- a/web/public/locales/uk/views/system.json
+++ b/web/public/locales/uk/views/system.json
@@ -57,10 +57,20 @@
"text_embedding": "Вбудовування тексту",
"face_recognition": "Розпізнавання обличчя",
"yolov9_plate_detection_speed": "Швидкість виявлення номерних знаків YOLOv9",
- "yolov9_plate_detection": "Виявлення пластин YOLOv9"
+ "yolov9_plate_detection": "Виявлення пластин YOLOv9",
+ "review_description": "Опис огляду",
+ "review_description_speed": "Огляд Опис Швидкість",
+ "review_description_events_per_second": "Опис огляду",
+ "object_description": "Опис об'єкта",
+ "object_description_speed": "Опис об'єкта Швидкість",
+ "object_description_events_per_second": "Опис об'єкта",
+ "classification": "Класифікація {{name}}",
+ "classification_speed": "Швидкість класифікації {{name}}",
+ "classification_events_per_second": "{{name}} Подій класифікації за секунду"
},
"title": "Збагаченням",
- "infPerSecond": "Висновки за секунду"
+ "infPerSecond": "Висновки за секунду",
+ "averageInf": "Середній час висновування"
},
"general": {
"title": "Загальна",
@@ -95,6 +105,11 @@
"toast": {
"success": "Інформацію про графічний процесор скопійовано в буфер обміну"
}
+ },
+ "intelGpuWarning": {
+ "title": "Попередження щодо статистики графічного процесора Intel",
+ "message": "Статистика графічного процесора недоступна",
+ "description": "Це відома помилка в інструментах звітності статистики графічного процесора Intel (intel_gpu_top), яка неодноразово повертає використання графічного процесора на рівні 0%, навіть у випадках, коли апаратне прискорення та виявлення об'єктів працюють належним чином на (i)GPU. Це не помилка Frigate. Ви можете перезавантажити хост, щоб тимчасово виправити проблему та переконатися, що графічний процесор працює правильно. Це не впливає на продуктивність."
}
},
"otherProcesses": {
@@ -107,7 +122,8 @@
"title": "Детектори",
"inferenceSpeed": "Швидкість виведення детектора",
"cpuUsage": "Використання процесора детектора",
- "memoryUsage": "Використання пам'яті детектора"
+ "memoryUsage": "Використання пам'яті детектора",
+ "cpuUsageInformation": "Процесор, що використовується для підготовки вхідних та вихідних даних до/з моделей виявлення. Це значення не вимірює використання логічного висновку, навіть якщо використовується графічний процесор або прискорювач."
}
},
"storage": {
@@ -129,7 +145,12 @@
"tips": "Це значення відображає загальний обсяг пам’яті, що використовується записами в базі даних Frigate. Frigate не відстежує використання пам’яті для всіх файлів на вашому диску.",
"earliestRecording": "Найдавніший доступний запис:"
},
- "title": "Зберігання"
+ "title": "Зберігання",
+ "shm": {
+ "title": "Розподіл спільної пам'яті (SHM)",
+ "warning": "Поточний розмір SHM, що становить {{total}} МБ, замалий. Збільште його принаймні до {{min_shm}} МБ.",
+ "readTheDocumentation": "Прочитайте документацію"
+ }
},
"lastRefreshed": "Останнє оновлення: ",
"stats": {
@@ -139,12 +160,13 @@
"reindexingEmbeddings": "Переіндексація вбудовування (виконано {{processed}}%)",
"cameraIsOffline": "{{camera}} не в мережі",
"detectIsSlow": "{{detect}} повільний ({{speed}} мс)",
- "detectIsVerySlow": "{{detect}} дуже повільний ({{speed}} мс)"
+ "detectIsVerySlow": "{{detect}} дуже повільний ({{speed}} мс)",
+ "shmTooLow": "Розмір /dev/shm ({{total}} МБ) слід збільшити щонайменше до {{min}} МБ."
},
"documentTitle": {
"cameras": "Статистика камер - Фрегат",
"storage": "Статистика сховища - Фрегат",
- "general": "Загальна статистика - Frigate",
+ "general": "Основна Статус – Frigate",
"enrichments": "Статистика збагачені - Фрегат",
"logs": {
"frigate": "Фрегатні журнали - Фрегат",
diff --git a/web/public/locales/ur/common.json b/web/public/locales/ur/common.json
index dbf35b3b6c..37ff068c53 100644
--- a/web/public/locales/ur/common.json
+++ b/web/public/locales/ur/common.json
@@ -34,5 +34,6 @@
"month_other": "{{time}} مہینے",
"hour_one": "{{time}} گھنٹہ",
"hour_other": "{{time}} گھنٹے"
- }
+ },
+ "readTheDocumentation": "دستاویز پڑھیں"
}
diff --git a/web/public/locales/ur/views/classificationModel.json b/web/public/locales/ur/views/classificationModel.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/ur/views/classificationModel.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/vi/common.json b/web/public/locales/vi/common.json
index af34c5ee34..dea1157d9d 100644
--- a/web/public/locales/vi/common.json
+++ b/web/public/locales/vi/common.json
@@ -75,7 +75,10 @@
"formattedTimestampFilename": {
"12hour": "dd-MM-yy-h-mm-ss-a",
"24hour": "dd-MM-yy-HH-mm-s"
- }
+ },
+ "inProgress": "Đang tiến hành",
+ "invalidStartTime": "Thời gian bắt đầu không hợp lệ",
+ "invalidEndTime": "Thời gian kết thúc không hợp lệ"
},
"menu": {
"systemLogs": "Nhật ký hệ thống",
@@ -121,7 +124,15 @@
},
"yue": "粵語 (Tiếng Quảng Đông)",
"ca": "Català (Tiếng Catalan)",
- "th": "ไทย (Tiếng Thái)"
+ "th": "ไทย (Tiếng Thái)",
+ "ptBR": "Português brasileiro (Tiếng Bồ Đào Nha Brazil)",
+ "sr": "Српски (Tiếng Serbian)",
+ "sl": "Slovenščina (Tiếng Slovenian)",
+ "lt": "Lietuvių (Tiếng Lithuanian)",
+ "bg": "Български (Tiếng Bulgarian)",
+ "gl": "Galego (Tiếng Galician)",
+ "id": "Bahasa Indonesia (Tiếng Indonesian)",
+ "ur": "اردو (Tiếng Urdu)"
},
"system": "Hệ thống",
"systemMetrics": "Thông số hệ thống",
@@ -167,7 +178,8 @@
"explore": "Khám phá",
"export": "Xuất",
"uiPlayground": "UI Playground",
- "faceLibrary": "Thư viện khuôn mặt"
+ "faceLibrary": "Thư viện khuôn mặt",
+ "classification": "Phân loại"
},
"unit": {
"speed": {
@@ -177,10 +189,23 @@
"length": {
"meters": "mét (m)",
"feet": "feet (ft)"
+ },
+ "data": {
+ "kbps": "kB/s",
+ "mbps": "MB/s",
+ "gbps": "GB/s",
+ "kbph": "kB/giờ",
+ "mbph": "MB/giờ",
+ "gbph": "GB/giờ"
}
},
"label": {
- "back": "Quay lại"
+ "back": "Quay lại",
+ "hide": "Ẩn {{item}}",
+ "show": "Hiển thị {{item}}",
+ "ID": "ID",
+ "none": "Không có",
+ "all": "Tất cả"
},
"button": {
"apply": "Áp dụng",
@@ -217,7 +242,8 @@
"export": "Xuất",
"deleteNow": "Xóa ngay",
"next": "Tiếp theo",
- "saving": "Đang lưu…"
+ "saving": "Đang lưu…",
+ "continue": "Tiếp tục"
},
"toast": {
"copyUrlToClipboard": "Đã sao chép liên kết.",
@@ -257,5 +283,18 @@
"title": "Không tìm thấy",
"desc": "Trang bạn đang tìm không tồn tại"
},
- "selectItem": "Chọn mục {{item}}"
+ "selectItem": "Chọn mục {{item}}",
+ "readTheDocumentation": "Đọc tài liệu",
+ "list": {
+ "two": "{{0}} và {{1}}",
+ "many": "{{items}}, và {{last}}",
+ "separatorWithSpace": ", "
+ },
+ "field": {
+ "optional": "Không bắt buộc",
+ "internalID": "Internal ID Frigate sử dụng trong cấu hình và cơ sở dữ liệu"
+ },
+ "information": {
+ "pixels": "{{area}}px"
+ }
}
diff --git a/web/public/locales/vi/components/auth.json b/web/public/locales/vi/components/auth.json
index 3d942b9c25..bc664d59cb 100644
--- a/web/public/locales/vi/components/auth.json
+++ b/web/public/locales/vi/components/auth.json
@@ -10,6 +10,7 @@
"loginFailed": "Đăng nhập không thành công",
"unknownError": "Lỗi không xác định. Kiểm tra nhật ký.",
"webUnknownError": "Lỗi không xác định. Kiểm tra nhật ký bảng điều khiển."
- }
+ },
+ "firstTimeLogin": "Lần đầu đăng nhập? Thông tin đăng nhập được in trong nhật ký (log) của Frigate."
}
}
diff --git a/web/public/locales/vi/components/camera.json b/web/public/locales/vi/components/camera.json
index 07617eb473..e67824e7bc 100644
--- a/web/public/locales/vi/components/camera.json
+++ b/web/public/locales/vi/components/camera.json
@@ -49,7 +49,8 @@
"audioIsAvailable": "Âm thanh có sẵn cho luồng này",
"audioIsUnavailable": "Âm thanh không có sẵn cho luồng này",
"label": "Cài đặt trực tiếp Camera"
- }
+ },
+ "birdseye": "Toàn cảnh"
},
"name": {
"label": "Tên",
diff --git a/web/public/locales/vi/components/dialog.json b/web/public/locales/vi/components/dialog.json
index 53b1226b10..b8b2895eaa 100644
--- a/web/public/locales/vi/components/dialog.json
+++ b/web/public/locales/vi/components/dialog.json
@@ -56,7 +56,8 @@
"noVaildTimeSelected": "Chưa chọn khoảng thời gian hợp lệ",
"failed": "Không thể bắt đầu xuất: {{error}}"
},
- "success": "Đã bắt đầu xuất thành công. Xem tệp trong thư mục /exports."
+ "success": "Đã bắt đầu xuất dữ liệu thành công. Xem tệp trên trang xuất dữ liệu.",
+ "view": "Xem"
},
"fromTimeline": {
"saveExport": "Lưu bản xuất",
@@ -92,7 +93,8 @@
"button": {
"deleteNow": "Xóa ngay",
"export": "Xuất",
- "markAsReviewed": "Đánh dấu là đã xem xét"
+ "markAsReviewed": "Đánh dấu là đã xem xét",
+ "markAsUnreviewed": "Đánh dấu là chưa xem xét"
}
},
"search": {
@@ -108,5 +110,13 @@
"placeholder": "Nhập tên cho tìm kiếm của bạn",
"overwrite": "{{searchName}} đã tồn tại. Lưu sẽ ghi đè lên giá trị hiện có."
}
+ },
+ "imagePicker": {
+ "selectImage": "Chọn hình thu nhỏ của đối tượng cần theo dõi",
+ "search": {
+ "placeholder": "Tìm theo nhãn hoặc nhãn phụ..."
+ },
+ "noImages": "Không tìm thấy hình thu nhỏ cho camera này",
+ "unknownLabel": "Ảnh kích hoạt đã lưu"
}
}
diff --git a/web/public/locales/vi/components/filter.json b/web/public/locales/vi/components/filter.json
index 1570067ab2..3678ba1ab8 100644
--- a/web/public/locales/vi/components/filter.json
+++ b/web/public/locales/vi/components/filter.json
@@ -93,7 +93,9 @@
"loadFailed": "Không thể tải biển số xe được nhận dạng.",
"loading": "Đang tải biển số xe được nhận dạng…",
"placeholder": "Nhập để tìm kiếm biển số xe…",
- "noLicensePlatesFound": "Không tìm thấy biển số xe nào."
+ "noLicensePlatesFound": "Không tìm thấy biển số xe nào.",
+ "selectAll": "Chọn tất cả",
+ "clearAll": "Xóa tất cả"
},
"more": "Thêm Bộ lọc",
"reset": {
@@ -122,5 +124,13 @@
"title": "Tất cả Khu vực",
"short": "Khu vực"
}
+ },
+ "classes": {
+ "label": "Các nhãn nhận diện",
+ "all": {
+ "title": "Tất cả nhãn nhận diện"
+ },
+ "count_one": "{{count}} Nhãn nhận diện",
+ "count_other": "{{count}} Các nhãn nhận diện"
}
}
diff --git a/web/public/locales/vi/views/classificationModel.json b/web/public/locales/vi/views/classificationModel.json
new file mode 100644
index 0000000000..5db2c59605
--- /dev/null
+++ b/web/public/locales/vi/views/classificationModel.json
@@ -0,0 +1,59 @@
+{
+ "documentTitle": "شمار بندی کے ماڈل",
+ "button": {
+ "deleteClassificationAttempts": "Xóa Hình Ảnh Phân Loại",
+ "renameCategory": "Đổi Tên Lớp",
+ "deleteCategory": "Xoá Lớp",
+ "deleteImages": "Xoá Hình Ảnh",
+ "trainModel": "Huấn Luyện Mô Hình",
+ "addClassification": "Thêm Phân Loại",
+ "deleteModels": "Xoá Mô Hình",
+ "editModel": "Chỉnh sửa mô hình"
+ },
+ "toast": {
+ "success": {
+ "deletedCategory": "Lớp Đã Bị Xoá",
+ "deletedImage": "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.",
+ "trainingModel": "Đã bắt đầu huấn luyện mô hình thành công.",
+ "updatedModel": "Đã cập nhật cấu hình mô hình thành công",
+ "renamedCategory": "Đã đổi tên lớp thành công thành {{name}}"
+ },
+ "error": {
+ "deleteImageFailed": "Xóa không thành công: {{errorMessage}}",
+ "deleteCategoryFailed": "Xóa lớp không thành công: {{errorMessage}}",
+ "deleteModelFailed": "Xóa mô hình không thành công: {{errorMessage}}",
+ "categorizeFailed": "Phân loại hình ảnh không thành công: {{errorMessage}}",
+ "trainingFailed": "Huấn luyện mô hình thất bại. Vui lòng kiểm tra nhật ký của Frigate để biết chi tiết.",
+ "trainingFailedToStart": "Khởi động huấn luyện mô hình không thành công: {{errorMessage}}",
+ "updateModelFailed": "Cập nhật mô hình không thành công: {{errorMessage}}",
+ "renameCategoryFailed": "Không đổi tên được lớp: {{errorMessage}}"
+ }
+ },
+ "details": {
+ "scoreInfo": "Điểm số cho biết mức độ tự tin trung bình mà hệ thống xác định được cho tất cả các lần phát hiện đối tượng này."
+ },
+ "tooltip": {
+ "trainingInProgress": "Mô hình hiện đang được huấn luyện",
+ "noNewImages": "Không có hình ảnh mới để đào tạo. Trước tiên, hãy phân loại nhiều hình ảnh hơn trong tập dữ liệu.",
+ "noChanges": "Không có thay đổi nào đối với tập dữ liệu kể từ lần đào tạo cuối cùng.",
+ "modelNotReady": "Mô hình chưa sẵn sàng để huấn luyện"
+ },
+ "deleteCategory": {
+ "title": "Xóa lớp",
+ "desc": "Bạn có chắc chắn muốn xóa lớp {{name}} không? Điều này sẽ xóa vĩnh viễn tất cả các hình ảnh liên quan và yêu cầu đào tạo lại mô hình.",
+ "minClassesTitle": "Không thể xóa lớp",
+ "minClassesDesc": "Một mô hình phân loại phải có ít nhất 2 lớp. Thêm một lớp khác trước khi xóa lớp này."
+ },
+ "deleteModel": {
+ "title": "Xóa mô hình phân loại",
+ "single": "Bạn có chắc chắn muốn xóa {{name}} không? Thao tác này sẽ xóa vĩnh viễn tất cả dữ liệu liên quan bao gồm hình ảnh và dữ liệu đào tạo. Không thể hoàn tác hành động này.",
+ "desc_other": "Bạn có chắc chắn muốn xóa mô hình {{count}} không? Thao tác này sẽ xóa vĩnh viễn tất cả dữ liệu liên quan bao gồm hình ảnh và dữ liệu đào tạo. Không thể hoàn tác hành động này."
+ },
+ "edit": {
+ "title": "Chỉnh sửa mô hình phân loại",
+ "descriptionState": "Chỉnh sửa các lớp cho mô hình phân loại trạng thái này. Những thay đổi sẽ yêu cầu đào tạo lại mô hình."
+ }
+}
diff --git a/web/public/locales/vi/views/configEditor.json b/web/public/locales/vi/views/configEditor.json
index a9a0c4f829..a2ffce4a9d 100644
--- a/web/public/locales/vi/views/configEditor.json
+++ b/web/public/locales/vi/views/configEditor.json
@@ -12,5 +12,7 @@
}
},
"configEditor": "Trình chỉnh sửa cấu hình",
- "documentTitle": "Trình chỉnh sửa - Frigate"
+ "documentTitle": "Trình chỉnh sửa - Frigate",
+ "safeConfigEditor": "Chỉnh sửa cấu hình (Chế độ an toàn)",
+ "safeModeDescription": "Frigate đang ở chế độ an toàn do lỗi kiểm tra cấu hình."
}
diff --git a/web/public/locales/vi/views/events.json b/web/public/locales/vi/views/events.json
index 4259ab2cc7..94b2bc7107 100644
--- a/web/public/locales/vi/views/events.json
+++ b/web/public/locales/vi/views/events.json
@@ -34,5 +34,29 @@
"button": "Các mục mới cần xem xét"
},
"markAsReviewed": "Đánh dấu là đã xem xét",
- "markTheseItemsAsReviewed": "Đánh dấu các mục này là đã xem xét"
+ "markTheseItemsAsReviewed": "Đánh dấu các mục này là đã xem xét",
+ "suspiciousActivity": "Hoạt động đáng ngờ",
+ "threateningActivity": "Hoạt động đe dọa",
+ "zoomIn": "Phóng To",
+ "zoomOut": "Thu nhỏ",
+ "detail": {
+ "label": "Chi tiết",
+ "noDataFound": "Không có dữ liệu chi tiết để xem xét",
+ "aria": "Chuyển đổi chế độ xem chi tiết",
+ "trackedObject_one": "{{count}} đối tượng",
+ "trackedObject_other": "{{count}} đối tượng",
+ "noObjectDetailData": "Không có dữ liệu chi tiết đối tượng nào khả dụng.",
+ "settings": "Cài đặt chế độ xem chi tiết",
+ "alwaysExpandActive": {
+ "title": "Luôn mở rộng mục đang hoạt động",
+ "desc": "Luôn mở rộng chi tiết đối tượng của mục đánh giá đang hoạt động khi có sẵn."
+ }
+ },
+ "objectTrack": {
+ "trackedPoint": "Điểm theo dõi",
+ "clickToSeek": "Nhấn để tua đến thời điểm này"
+ },
+ "normalActivity": "Bình thường",
+ "needsReview": "Cần xem xét",
+ "securityConcern": "Mối lo ngại về an ninh"
}
diff --git a/web/public/locales/vi/views/explore.json b/web/public/locales/vi/views/explore.json
index 99e4a65d59..7110009ce7 100644
--- a/web/public/locales/vi/views/explore.json
+++ b/web/public/locales/vi/views/explore.json
@@ -60,12 +60,14 @@
"error": {
"updatedSublabelFailed": "Không thể cập nhật nhãn phụ: {{errorMessage}}",
"updatedLPRFailed": "Không thể cập nhật biển số xe: {{errorMessage}}",
- "regenerate": "Không thể gọi {{provider}} để lấy mô tả mới: {{errorMessage}}"
+ "regenerate": "Không thể gọi {{provider}} để lấy mô tả mới: {{errorMessage}}",
+ "audioTranscription": "Không thể yêu cầu phiên âm: {{errorMessage}}"
},
"success": {
"regenerate": "Một mô tả mới đã được yêu cầu từ {{provider}}. Tùy thuộc vào tốc độ của nhà cung cấp của bạn, mô tả mới có thể mất một chút thời gian để tạo lại.",
"updatedLPR": "Cập nhật biển số xe thành công.",
- "updatedSublabel": "Cập nhật nhãn phụ thành công."
+ "updatedSublabel": "Cập nhật nhãn phụ thành công.",
+ "audioTranscription": "Đã yêu cầu chuyển đổi âm thanh thành văn bản thành công. Tùy vào tốc độ của máy chủ Frigate, quá trình chuyển đổi có thể mất một khoảng thời gian để hoàn tất."
}
},
"tips": {
@@ -115,6 +117,9 @@
"title": "Chỉnh sửa biển số xe",
"desc": "Nhập một giá trị biển số xe mới cho {{label}} này",
"descNoLabel": "Nhập một giá trị biển số xe mới cho đối tượng được theo dõi này"
+ },
+ "score": {
+ "label": "Điểm tin cậy"
}
},
"itemMenu": {
@@ -144,6 +149,28 @@
},
"deleteTrackedObject": {
"label": "Xóa đối tượng được theo dõi này"
+ },
+ "addTrigger": {
+ "label": "Thêm sự kiện kích hoạt",
+ "aria": "Thêm trình kích hoạt cho đối tượng được theo dõi này"
+ },
+ "audioTranscription": {
+ "label": "Phiên âm",
+ "aria": "Yêu cầu phiên âm"
+ },
+ "downloadCleanSnapshot": {
+ "label": "Tải xuống ảnh chụp nhanh",
+ "aria": "Tải xuống ảnh chụp nhanh"
+ },
+ "viewTrackingDetails": {
+ "label": "Xem chi tiết theo dõi",
+ "aria": "Xem chi tiết theo dõi"
+ },
+ "showObjectDetails": {
+ "label": "Hiển thị đường dẫn đối tượng"
+ },
+ "hideObjectDetails": {
+ "label": "Ẩn đường dẫn đối tượng"
}
},
"exploreIsUnavailable": {
@@ -176,7 +203,7 @@
},
"dialog": {
"confirmDelete": {
- "desc": "Việc xóa đối tượng được theo dõi này sẽ xóa ảnh chụp nhanh, mọi dữ liệu nhúng đã lưu và mọi mục nhập vòng đời đối tượng liên quan. Đoạn ghi hình đã ghi của đối tượng được theo dõi này trong chế độ xem Lịch sử sẽ KHÔNG bị xóa.
Bạn có chắc chắn muốn tiếp tục không?",
+ "desc": "Việc xóa đối tượng được theo dõi này sẽ xóa ảnh chụp nhanh, mọi phần nhúng đã lưu và mọi mục nhập chi tiết theo dõi được liên kết. Đoạn phim đã ghi của đối tượng được theo dõi này trong chế độ xem Lịch sử sẽ KHÔNG bị xóa.
Bạn có chắc chắn muốn tiếp tục không?",
"title": "Xác nhận Xóa"
}
},
@@ -188,7 +215,9 @@
"error": "Không thể xóa đối tượng được theo dõi: {{errorMessage}}"
}
},
- "tooltip": "Khớp {{type}} ở mức {{confidence}}%"
+ "tooltip": "Khớp {{type}} ở mức {{confidence}}%",
+ "previousTrackedObject": "Đối tượng được theo dõi trước đó",
+ "nextTrackedObject": "Đối tượng được theo dõi tiếp theo"
},
"exploreMore": "Khám phá thêm các đối tượng {{label}}",
"trackedObjectDetails": "Chi tiết Đối tượng được theo dõi",
@@ -196,10 +225,67 @@
"details": "chi tiết",
"snapshot": "ảnh chụp nhanh",
"video": "video",
- "object_lifecycle": "vòng đời đối tượng"
+ "object_lifecycle": "vòng đời đối tượng",
+ "thumbnail": "Ảnh thu nhỏ",
+ "tracking_details": "chi tiết theo dõi"
},
"fetchingTrackedObjectsFailed": "Lỗi khi tìm nạp các đối tượng được theo dõi: {{errorMessage}}",
"documentTitle": "Khám phá - Frigate",
"generativeAI": "AI Tạo sinh",
- "trackedObjectsCount_other": "{{count}} đối tượng được theo dõi "
+ "trackedObjectsCount_other": "{{count}} đối tượng được theo dõi ",
+ "aiAnalysis": {
+ "title": "Phân tích bằng AI"
+ },
+ "concerns": {
+ "label": "Mối lo ngại"
+ },
+ "trackingDetails": {
+ "title": "Chi tiết theo dõi",
+ "noImageFound": "Không tìm thấy hình ảnh cho mốc thời gian này.",
+ "createObjectMask": "Tạo mặt nạ đối tượng",
+ "adjustAnnotationSettings": "Điều chỉnh cài đặt chú thích",
+ "scrollViewTips": "Nhấn để xem những khoảnh khắc quan trọng trong vòng đời của đối tượng này.",
+ "autoTrackingTips": "Vị trí khung bao sẽ không chính xác đối với các camera tự động theo dõi (autotracking).",
+ "count": "{{first}} của {{second}}",
+ "trackedPoint": "Điểm theo dõi",
+ "lifecycleItemDesc": {
+ "visible": "Đã phát hiện được {{label}}",
+ "entered_zone": "{{label}} đã vào {{zones}}",
+ "active": "{{label}} đã hoạt động",
+ "stationary": "{{label}} đã đứng yên",
+ "attribute": {
+ "faceOrLicense_plate": "Đã phát hiện {{attribute}} đối với {{label}}",
+ "other": "{{label}} được nhận diện là {{attribute}}"
+ },
+ "gone": "{{label}} đã rời đi",
+ "heard": "Đã nghe thấy {{label}}",
+ "external": "{{label}} đã được nhận diện",
+ "header": {
+ "zones": "Vùng",
+ "ratio": "Tỷ lệ",
+ "area": "Khu vực",
+ "score": "Điểm"
+ }
+ },
+ "annotationSettings": {
+ "title": "Cài đặt chú thích",
+ "showAllZones": {
+ "title": "Hiện tất cả các vùng",
+ "desc": "Luôn hiển thị các vùng trên khung hình khi có đối tượng đi vào vùng đó."
+ },
+ "offset": {
+ "label": "Độ lệch chú thích",
+ "desc": "Dữ liệu này lấy từ luồng phát hiện (detect feed) của camera bạn, nhưng được hiển thị chồng lên hình ảnh từ luồng ghi hình (record feed). Hai luồng này thường không đồng bộ hoàn hảo với nhau. Do đó, khung bao (bounding box) và đoạn video có thể không khớp chính xác. Bạn có thể sử dụng cài đặt này để điều chỉnh thời gian hiển thị chú thích (annotation) lùi hoặc tiến để đồng bộ tốt hơn với video đã ghi.",
+ "millisecondsToOffset": "Số mili giây để điều chỉnh thời gian hiển thị chú thích phát hiện. Mặc định: 0",
+ "tips": "Giảm giá trị nếu quá trình phát lại video ở phía trước các hộp và điểm đường dẫn, đồng thời tăng giá trị nếu quá trình phát lại video ở phía sau chúng. Giá trị này có thể âm.",
+ "toast": {
+ "success": "Độ lệch chú thích cho {{camera}} đã được lưu vào tệp cấu hình."
+ }
+ }
+ },
+ "carousel": {
+ "previous": "Trang trình bày trước",
+ "next": "Trang trình bày tiếp theo"
+ }
+ }
}
diff --git a/web/public/locales/vi/views/exports.json b/web/public/locales/vi/views/exports.json
index 6206f5821e..95b3b87c6c 100644
--- a/web/public/locales/vi/views/exports.json
+++ b/web/public/locales/vi/views/exports.json
@@ -13,5 +13,11 @@
"error": {
"renameExportFailed": "Đổi tên tệp xuất thất bại: {{errorMessage}}"
}
+ },
+ "tooltip": {
+ "shareExport": "Chia sẻ bản xuất",
+ "downloadVideo": "Tải video",
+ "editName": "Chỉnh sửa tên",
+ "deleteExport": "Xóa bản xuất"
}
}
diff --git a/web/public/locales/vi/views/faceLibrary.json b/web/public/locales/vi/views/faceLibrary.json
index e27adcf659..cef8b9da77 100644
--- a/web/public/locales/vi/views/faceLibrary.json
+++ b/web/public/locales/vi/views/faceLibrary.json
@@ -1,7 +1,7 @@
{
"selectItem": "Chọn mục {{item}}",
"description": {
- "addFace": "Hướng dẫn thêm bộ sưu tập mới vào Thư viện khuôn mặt.",
+ "addFace": "Thêm một bộ sưu tập mới vào Thư viện Khuôn Mặt bằng cách tải lên hình ảnh đầu tiên của bạn.",
"invalidName": "Tên không hợp lệ. Tên chỉ được phép chứa chữ cái, số, khoảng trắng, dấu nháy đơn, dấu gạch dưới và dấu gạch ngang.",
"placeholder": "Nhập tên cho bộ sưu tập này"
},
@@ -38,7 +38,7 @@
"success": {
"uploadedImage": "Tải lên hình ảnh thành công.",
"trainedFace": "Huấn luyện khuôn mặt thành công.",
- "updatedFaceScore": "Cập nhật điểm khuôn mặt thành công.",
+ "updatedFaceScore": "Đã cập nhật thành công điểm khuôn mặt thành {{name}} ({{score}}).",
"addFaceLibrary": "{{name}} đã được thêm thành công vào Thư viện Khuôn mặt!",
"deletedFace_other": "Đã xóa thành công {{count}} khuôn mặt.",
"deletedName_other": "{{count}} khuôn mặt đã được xóa thành công.",
@@ -76,15 +76,15 @@
"trainFace": "Huấn luyện khuôn mặt",
"nofaces": "Không có khuôn mặt nào",
"createFaceLibrary": {
- "nextSteps": "Để xây dựng một nền tảng vững chắc:
Sử dụng tab Huấn luyện để chọn và huấn luyện trên hình ảnh cho mỗi người được phát hiện.
Tập trung vào hình ảnh chụp thẳng để có kết quả tốt nhất; tránh huấn luyện các hình ảnh chụp khuôn mặt ở một góc.
Sử dụng tab Nhận dạng gần đây để chọn và huấn luyện trên hình ảnh cho mỗi người được phát hiện.
Tập trung vào hình ảnh chụp thẳng để có kết quả tốt nhất; tránh huấn luyện các hình ảnh chụp khuôn mặt ở một góc.
",
"title": "Tạo bộ sưu tập",
"desc": "Tạo một bộ sưu tập mới",
"new": "Tạo khuôn mặt mới"
},
"train": {
- "title": "Huấn luyện",
+ "title": "Nhận dạng gần đây",
"empty": "Không có nỗ lực nhận dạng khuôn mặt nào gần đây",
- "aria": "Chọn huấn luyện"
+ "aria": "Chọn các nhận dạng gần đây"
},
"selectFace": "Chọn khuôn mặt",
"pixels": "{{area}}px",
diff --git a/web/public/locales/vi/views/live.json b/web/public/locales/vi/views/live.json
index 3e8ab44f68..c238a34c67 100644
--- a/web/public/locales/vi/views/live.json
+++ b/web/public/locales/vi/views/live.json
@@ -29,6 +29,9 @@
"tips.documentation": "Đọc tài liệu ",
"available": "Đàm thoại hai chiều khả dụng cho luồng này",
"unavailable": "Đàm thoại hai chiều không khả dụng cho luồng này"
+ },
+ "debug": {
+ "picker": "Việc chọn luồng phát không khả dụng trong chế độ gỡ lỗi. Chế độ xem gỡ lỗi luôn sử dụng luồng được gán vai trò phát hiện (detect)."
}
},
"editLayout": {
@@ -71,7 +74,15 @@
"label": "Di chuyển camera PTZ sang phải"
}
},
- "presets": "Các thiết lập sẵn cho camera PTZ"
+ "presets": "Các thiết lập sẵn cho camera PTZ",
+ "focus": {
+ "in": {
+ "label": "Lấy nét gần (camera PTZ)"
+ },
+ "out": {
+ "label": "Lấy nét xa (camera PTZ)"
+ }
+ }
},
"manualRecording": {
"playInBackground": {
@@ -82,8 +93,8 @@
"failedToStart": "Không thể bắt đầu ghi hình theo yêu cầu.",
"started": "Đã bắt đầu ghi hình theo yêu cầu.",
"ended": "Đã kết thúc ghi hình theo yêu cầu.",
- "title": "Ghi hình theo yêu cầu",
- "tips": "Bắt đầu sự kiện ghi hình thủ công dựa trên cài đặt lưu trữ của camera này.",
+ "title": "Theo yêu cầu",
+ "tips": "Tải xuống ảnh chụp nhanh tức thì hoặc bắt đầu sự kiện thủ công dựa trên cài đặt lưu giữ bản ghi của máy ảnh này.",
"showStats": {
"label": "Hiện thống kê",
"desc": "Bật tùy chọn này để hiển thị thống kê luồng trên khung hình."
@@ -142,7 +153,8 @@
"recording": "Ghi hình",
"snapshots": "Ảnh chụp",
"audioDetection": "Phát hiện âm thanh",
- "autotracking": "Tự động theo dõi"
+ "autotracking": "Tự động theo dõi",
+ "transcription": "Phiên âm"
},
"history": {
"label": "Hiện cảnh quay lịch sử"
@@ -154,5 +166,24 @@
"active_objects": "Đối tượng hoạt động"
},
"notAllTips": "Cấu hình giữ lại ghi hình {{source}} của bạn được đặt là mode: {{effectiveRetainMode}}, vì vậy lần ghi hình theo yêu cầu này chỉ giữ lại các đoạn có {{effectiveRetainModeName}}."
+ },
+ "transcription": {
+ "enable": "Bật phiên âm trực tiếp",
+ "disable": "Tắt phiên âm trực tiếp"
+ },
+ "snapshot": {
+ "takeSnapshot": "Tải xuống ảnh chụp nhanh ngay lập tức",
+ "noVideoSource": "Không có nguồn video để chụp ảnh nhanh.",
+ "captureFailed": "Chụp ảnh nhanh không thành công.",
+ "downloadStarted": "Bắt đầu tải xuống ảnh chụp nhanh."
+ },
+ "noCameras": {
+ "title": "Không có camera nào được cấu hình",
+ "description": "Bắt đầu bằng cách kết nối một camera với Frigate.",
+ "buttonText": "Thêm Camera",
+ "restricted": {
+ "title": "Không có Camera nào khả dụng",
+ "description": "Bạn không có quyền xem bất kỳ camera nào trong nhóm này."
+ }
}
}
diff --git a/web/public/locales/vi/views/settings.json b/web/public/locales/vi/views/settings.json
index 4f09724253..69b37b8377 100644
--- a/web/public/locales/vi/views/settings.json
+++ b/web/public/locales/vi/views/settings.json
@@ -7,9 +7,11 @@
"notifications": "Cài đặt Thông báo - Frigate",
"masksAndZones": "Trình chỉnh sửa Mặt nạ và Vùng - Frigate",
"object": "Gỡ lỗi - Frigate",
- "general": "Cài đặt Chung - Frigate",
+ "general": "Cài đặt giao diện – Frigate",
"frigatePlus": "Cài đặt Frigate+ - Frigate",
- "motionTuner": "Bộ tinh chỉnh Chuyển động - Frigate"
+ "motionTuner": "Bộ tinh chỉnh Chuyển động - Frigate",
+ "cameraManagement": "Quản Lý Camera - Frigate",
+ "cameraReview": "Cài Đặt Xem Lại Camera - Frigate"
},
"notification": {
"toast": {
@@ -77,7 +79,7 @@
},
"snapshotConfig": {
"table": {
- "camera": "Camera",
+ "camera": "Máy quay",
"cleanCopySnapshots": "Ảnh chụp nhanh clean_copy",
"snapshots": "Ảnh chụp nhanh"
},
@@ -142,6 +144,44 @@
"streams": {
"title": "Luồng phát",
"desc": "Tạm thời vô hiệu hóa một camera cho đến khi Frigate khởi động lại. Vô hiệu hóa một camera sẽ dừng hoàn toàn quá trình xử lý các luồng của camera này của Frigate. Việc phát hiện, ghi hình và gỡ lỗi sẽ không khả dụng. Lưu ý: Điều này không vô hiệu hóa các luồng phát lại của go2rtc."
+ },
+ "object_descriptions": {
+ "title": "Mô tả đối tượng bằng AI tạo sinh",
+ "desc": "Tạm thời bật/tắt mô tả đối tượng bằng AI tạo sinh cho camera này. Khi tắt, mô tả do AI tạo sinh sẽ không được yêu cầu cho các đối tượng được theo dõi trên camera này."
+ },
+ "review_descriptions": {
+ "title": "Mô tả đánh giá bằng AI tạo sinh",
+ "desc": "Tạm thời bật/tắt mô tả xem lại bằng AI tạo sinh cho camera này. Khi tắt, mô tả do AI tạo sinh sẽ không được yêu cầu cho các mục xem lại trên camera này."
+ },
+ "addCamera": "Thêm Camera mới",
+ "editCamera": "Chỉnh sửa Camera:",
+ "selectCamera": "Chọn Camera",
+ "backToSettings": "Quay lại cài đặt Camera",
+ "cameraConfig": {
+ "add": "Thêm Camera",
+ "edit": "Chỉnh sửa Camera",
+ "description": "Cấu hình Camera, bao gồm luồng đầu vào và vai trò.",
+ "name": "Tên Camera",
+ "nameRequired": "Yêu cầu nhập tên Camera",
+ "nameInvalid": "Tên Camera chỉ được chứa chữ cái, số, dấu gạch dưới hoặc dấu gạch ngang",
+ "namePlaceholder": "Ví dụ: front_door",
+ "enabled": "Bật",
+ "ffmpeg": {
+ "inputs": "Luồng đầu vào",
+ "path": "Đường dẫn luồng",
+ "pathRequired": "Yêu cầu nhập đường dẫn luồng",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "Vai trò",
+ "rolesRequired": "Cần ít nhất một vai trò",
+ "rolesUnique": "Mỗi vai trò (âm thanh, phát hiện, ghi hình) chỉ có thể được gán cho một luồng duy nhất",
+ "addInput": "Thêm luồng đầu vào",
+ "removeInput": "Xóa luồng đầu vào",
+ "inputsRequired": "Cần ít nhất một luồng đầu vào"
+ },
+ "toast": {
+ "success": "Camera {{cameraName}} đã được lưu thành công"
+ },
+ "nameLength": "Tên của camera phải dưới 24 ký tự."
}
},
"masksAndZones": {
@@ -212,8 +252,8 @@
"point_other": "{{count}} điểm",
"toast": {
"success": {
- "noName": "Mặt nạ đối tượng đã được lưu. Khởi động lại Frigate để áp dụng các thay đổi.",
- "title": "{{polygonName}} đã được lưu. Khởi động lại Frigate để áp dụng các thay đổi."
+ "noName": "Mặt nạ đối tượng đã được lưu.",
+ "title": "{{polygonName}} đã được lưu."
}
},
"label": "Mặt nạ đối tượng",
@@ -256,11 +296,11 @@
"desc": "Danh sách các đối tượng áp dụng cho vùng này."
},
"toast": {
- "success": "Vùng ({{zoneName}}) đã được lưu. Khởi động lại Frigate để áp dụng các thay đổi."
+ "success": "Vùng ({{zoneName}}) đã được lưu."
},
"name": {
"inputPlaceHolder": "Nhập tên…",
- "tips": "Tên phải có ít nhất 2 ký tự và không được trùng với tên của camera hoặc một vùng khác.",
+ "tips": "Tên phải có ít nhất 2 ký tự, phải có ít nhất một chữ cái và không được là tên của camera hoặc vùng khác trên camera này.",
"title": "Tên"
},
"edit": "Chỉnh sửa Vùng",
@@ -293,8 +333,8 @@
"clickDrawPolygon": "Nhấp để vẽ một đa giác trên hình ảnh.",
"toast": {
"success": {
- "title": "{{polygonName}} đã được lưu. Khởi động lại Frigate để áp dụng các thay đổi.",
- "noName": "Mặt nạ chuyển động đã được lưu. Khởi động lại Frigate để áp dụng các thay đổi."
+ "title": "{{polygonName}} đã được lưu.",
+ "noName": "Mặt nạ chuyển động đã được lưu."
}
}
},
@@ -381,6 +421,19 @@
"desc": "Hiển thị các hộp xung quanh các khu vực phát hiện có chuyển động",
"tips": "
Hộp chuyển động
Các hộp màu đỏ sẽ được chồng lên các khu vực của khung hình nơi chuyển động đang được phát hiện
",
"title": "Hộp chuyển động"
+ },
+ "paths": {
+ "title": "Đường dẫn",
+ "desc": "Hiển thị các điểm quan trọng trên đường đi của đối tượng được theo dõi",
+ "tips": "
Đường đi
Đường thẳng và vòng tròn sẽ hiển thị các điểm quan trọng mà đối tượng được theo dõi đã di chuyển trong suốt quá trình theo dõi.
"
+ },
+ "openCameraWebUI": "Đang mở giao diện Web của {{camera}}",
+ "audio": {
+ "title": "Âm thanh",
+ "noAudioDetections": "Không phát hiện âm thanh",
+ "score": "điểm",
+ "currentRMS": "RMS hiện tại",
+ "currentdbFS": "dbFS hiện tại"
}
},
"users": {
@@ -519,7 +572,15 @@
"desc": "Theo mặc định, các cảnh báo gần đây trên bảng điều khiển Trực tiếp sẽ phát dưới dạng các video lặp lại nhỏ. Tắt tùy chọn này để chỉ hiển thị hình ảnh tĩnh của các cảnh báo gần đây trên thiết bị/trình duyệt này.",
"label": "Phát video cảnh báo"
},
- "title": "Bảng điều khiển trực tiếp"
+ "title": "Bảng điều khiển trực tiếp",
+ "displayCameraNames": {
+ "label": "Luôn hiển thị tên camera",
+ "desc": "Luôn hiển thị tên camera trong một con chip trong bảng điều khiển xem trực tiếp nhiều camera."
+ },
+ "liveFallbackTimeout": {
+ "label": "Hết thời gian chờ dự phòng của người chơi trực tiếp",
+ "desc": "Khi luồng trực tiếp chất lượng cao của camera không khả dụng, tự động chuyển sang chế độ băng thông thấp sau số giây này. Mặc định: 3."
+ }
},
"recordingsViewer": {
"defaultPlaybackRate": {
@@ -528,7 +589,7 @@
},
"title": "Trình xem Bản ghi"
},
- "title": "Cài đặt Chung"
+ "title": "Cài đặt giao diện"
},
"dialog": {
"unsavedChanges": {
@@ -607,10 +668,109 @@
"notifications": "Thông báo",
"motionTuner": "Tinh chỉnh Chuyển động",
"cameras": "Cài đặt Camera",
- "enrichments": "Làm giàu Dữ liệu"
+ "enrichments": "Làm giàu Dữ liệu",
+ "triggers": "Sự kiện kích hoạt",
+ "cameraManagement": "Quản lý",
+ "cameraReview": "Đánh giá",
+ "roles": "Vai trò"
},
"cameraSetting": {
- "camera": "Camera",
+ "camera": "Máy quay",
"noCamera": "Không có Camera"
+ },
+ "triggers": {
+ "documentTitle": "Sự kiện kích hoạt",
+ "management": {
+ "title": "Sự kiện kích hoạt",
+ "desc": "Quản lý sự kiện kích hoạt cho {{camera}}. Sử dụng kiểu \"ảnh xem trước\" để kích hoạt dựa trên ảnh xem trước tương tự cho đối tượng cần theo dõi đã chọn, và kiểu \"mô tả\" để kích hoạt dựa trên những mô tả tương tự cho đoạn văn bản bạn đã chỉ định."
+ },
+ "addTrigger": "Thêm sự kiện kích hoạt",
+ "table": {
+ "content": "Nội dung",
+ "threshold": "Ngưỡng",
+ "actions": "Hành động",
+ "noTriggers": "Không có sự kiện kích hoạt được cài đặt cho máy quay này.",
+ "type": "Kiểu",
+ "name": "Tên",
+ "deleteTrigger": "Xóa sự kiện kích hoạt",
+ "lastTriggered": "Lần kích hoạt gần nhất",
+ "edit": "Chỉnh sửa"
+ },
+ "type": {
+ "description": "Mô tả",
+ "thumbnail": "Ảnh xem trước"
+ },
+ "dialog": {
+ "form": {
+ "enabled": {
+ "description": "Kích hoạt hoặc vô hiệu hóa sự kiện kích hoạt này"
+ },
+ "actions": {
+ "title": "Các hành động",
+ "desc": "Theo mặc định, Frigate kích hoạt thông báo MQTT cho tất cả các trình kích hoạt. Nhãn phụ thêm tên kích hoạt vào nhãn đối tượng. Thuộc tính là siêu dữ liệu có thể tìm kiếm được lưu trữ riêng biệt trong siêu dữ liệu đối tượng được theo dõi.",
+ "error": {
+ "min": "Phải chọn ít nhất một hành động."
+ }
+ },
+ "name": {
+ "title": "Tên",
+ "placeholder": "Tên sự kiện kích hoạt",
+ "error": {
+ "minLength": "Trường phải dài ít nhất 2 ký tự.",
+ "invalidCharacters": "Trường chỉ có thể chứa các chữ cái, số, dấu gạch dưới và dấu gạch nối.",
+ "alreadyExists": "Một sự kiện kích hoạt trùng tên đã tồn tại cho máy quay này."
+ }
+ },
+ "type": {
+ "title": "Kiểu",
+ "placeholder": "Chọn kiểu cho sự kiện kích hoạt"
+ },
+ "content": {
+ "title": "Nội dung",
+ "imagePlaceholder": "Chọn một hình ảnh",
+ "textPlaceholder": "Nhập nội dung văn bản",
+ "imageDesc": "Chỉ 100 hình thu nhỏ gần đây nhất được hiển thị. Nếu bạn không thể tìm thấy hình thu nhỏ mong muốn, vui lòng xem lại các đối tượng trước đó trong Khám phá và thiết lập trình kích hoạt từ menu ở đó.",
+ "textDesc": "Nhập vẵn bản để kích hoạt hành động này khi một đối tượng theo dõi với mô tả tương tự được phát hiện.",
+ "error": {
+ "required": "Nội dung bắt buộc."
+ }
+ },
+ "threshold": {
+ "title": "Ngưỡng",
+ "error": {
+ "min": "Ngưỡng phải ít nhất bằng 0",
+ "max": "Ngưỡng lớn nhất phải bé hơn 1"
+ }
+ }
+ },
+ "createTrigger": {
+ "title": "Tạo sự kiện kích hoạt",
+ "desc": "Tạo sự kiện kích hoạt cho máy quay {{camera}}"
+ },
+ "editTrigger": {
+ "title": "Chỉnh sửa Sự kiện kích hoạt",
+ "desc": "Chỉnh sửa cài đặt cho sự kiện kích hoạt trên máy quay {{camera}}"
+ },
+ "deleteTrigger": {
+ "title": "Xóa Sự kiện kích hoạt",
+ "desc": "Bạn có chắc chắn muốn xóa sự kịn kích hoạt {{triggerName}}? Thao tác này không thể khôi phục được."
+ }
+ },
+ "toast": {
+ "success": {
+ "createTrigger": "Sự kiện kích hoạt {{name}} đã được tạo thành công.",
+ "updateTrigger": "Sự kiện kích hoạt {{name}} đã được cập nhật thành công.",
+ "deleteTrigger": "Sự kiện kích hoạt {{name}} đã được xóa thành công."
+ },
+ "error": {
+ "createTriggerFailed": "Tạo sự kiện kích hoạt thất bại: {{errorMessage}}",
+ "updateTriggerFailed": "Cập nhật sự kiện kích hoạt thất bại: {{errorMessage}}",
+ "deleteTriggerFailed": "Xóa sự kiện kích hoạt thất bại: {{errorMessage}}"
+ }
+ },
+ "actions": {
+ "alert": "Gắn nhãn Cảnh báo",
+ "notification": "Gửi thông báo"
+ }
}
}
diff --git a/web/public/locales/vi/views/system.json b/web/public/locales/vi/views/system.json
index 31da0a0865..bdaffe7b95 100644
--- a/web/public/locales/vi/views/system.json
+++ b/web/public/locales/vi/views/system.json
@@ -42,7 +42,12 @@
"gpuUsage": "Mức sử dụng GPU",
"gpuMemory": "Bộ nhớ GPU",
"gpuEncoder": "Bộ mã hóa GPU",
- "gpuDecoder": "Bộ giải mã GPU"
+ "gpuDecoder": "Bộ giải mã GPU",
+ "intelGpuWarning": {
+ "title": "Cảnh báo thống kê GPU Intel",
+ "message": "Không có số liệu thống kê GPU",
+ "description": "Đây là lỗi đã biết trong công cụ báo cáo thống kê GPU của Intel (intel_gpu_top), khi nó bị trục trặc và liên tục trả về mức sử dụng GPU là 0%, dù thực tế phần cứng tăng tốc và nhận diện đối tượng đang hoạt động đúng trên (i)GPU. Đây không phải lỗi của Frigate. Bạn có thể khởi động lại máy chủ để tạm thời khắc phục và xác nhận GPU vẫn hoạt động bình thường. Điều này không ảnh hưởng đến hiệu suất."
+ }
},
"otherProcesses": {
"processCpuUsage": "Mức sử dụng CPU của Tiến trình",
@@ -54,7 +59,8 @@
"memoryUsage": "Mức sử dụng Bộ nhớ của Bộ phát hiện",
"title": "Bộ phát hiện",
"inferenceSpeed": "Tốc độ Suy luận của Bộ phát hiện",
- "cpuUsage": "Mức sử dụng CPU của Bộ phát hiện"
+ "cpuUsage": "Mức sử dụng CPU của Bộ phát hiện",
+ "cpuUsageInformation": "Dùng CPU để chuẩn bị đầu vào và ngõ ra dữ liệu dùng cho mẫu nhận dạng. Giá trị này không đo lường mức sử dụng suy luận, ngay cả khi sử dụng GPU hoặc bộ tăng tốc."
},
"title": "Chung"
},
@@ -77,6 +83,10 @@
"title": "Bản ghi",
"tips": "Giá trị này thể hiện tổng dung lượng lưu trữ được sử dụng bởi các bản ghi trong cơ sở dữ liệu của Frigate. Frigate không theo dõi việc sử dụng dung lượng lưu trữ cho tất cả các tệp trên đĩa của bạn.",
"earliestRecording": "Bản ghi sớm nhất hiện có:"
+ },
+ "shm": {
+ "title": "Sắp xếp bộ nhớ được chia sẻ (SHM)",
+ "warning": "Bộ nhớ chia sẻ hiện tại quá thấp {{total}}MB. Tăng lên tối thiểu là {{min_shm}}MB."
}
},
"cameras": {
@@ -133,7 +143,8 @@
"ffmpegHighCpuUsage": "{{camera}} có mức sử dụng CPU FFmpeg cao ({{ffmpegAvg}}%)",
"detectHighCpuUsage": "{{camera}} có mức sử dụng CPU phát hiện cao ({{detectAvg}}%)",
"healthy": "Hệ thống đang hoạt động tốt",
- "reindexingEmbeddings": "Đang lập chỉ mục lại các embedding (hoàn thành {{processed}}%)"
+ "reindexingEmbeddings": "Đang lập chỉ mục lại các embedding (hoàn thành {{processed}}%)",
+ "shmTooLow": "/dev/shm ({{total}} MB) cần được tăng lên tối thiểu {{min}} MB."
},
"enrichments": {
"embeddings": {
@@ -147,10 +158,17 @@
"face_recognition_speed": "Tốc độ Nhận dạng Khuôn mặt",
"plate_recognition_speed": "Tốc độ Nhận dạng Biển số",
"yolov9_plate_detection_speed": "Tốc độ Phát hiện Biển số YOLOv9",
- "yolov9_plate_detection": "Phát hiện Biển số YOLOv9"
+ "yolov9_plate_detection": "Phát hiện Biển số YOLOv9",
+ "review_description": "Đánh giá mô tả",
+ "review_description_speed": "Đánh giá Mô tả Tốc độ",
+ "review_description_events_per_second": "Đánh giá mô tả",
+ "object_description": "Mô tả đối tượng",
+ "object_description_speed": "Đối tượng Mô tả Tốc độ",
+ "object_description_events_per_second": "Mô tả đối tượng"
},
"title": "Làm giàu Dữ liệu",
- "infPerSecond": "Suy luận Mỗi Giây"
+ "infPerSecond": "Suy luận Mỗi Giây",
+ "averageInf": "Thời gian suy luận trung bình"
},
"title": "Hệ thống",
"metrics": "Số liệu hệ thống",
diff --git a/web/public/locales/yue-Hant/common.json b/web/public/locales/yue-Hant/common.json
index 03f4f89b4e..a65550366b 100644
--- a/web/public/locales/yue-Hant/common.json
+++ b/web/public/locales/yue-Hant/common.json
@@ -76,6 +76,14 @@
"length": {
"feet": "呎",
"meters": "米"
+ },
+ "data": {
+ "kbps": "kB/秒",
+ "mbps": "MB/秒",
+ "gbps": "GB/秒",
+ "kbph": "kB/小時",
+ "mbph": "MB/小時",
+ "gbph": "GB/小時"
}
},
"label": {
@@ -160,7 +168,15 @@
"he": "עברית (希伯來文)",
"yue": "粵語 (廣東話)",
"th": "ไทย (泰文)",
- "ca": "Català (加泰羅尼亞語)"
+ "ca": "Català (加泰羅尼亞語)",
+ "ptBR": "Português brasileiro (巴西葡萄牙文)",
+ "sr": "Српски (塞爾維亞文)",
+ "sl": "Slovenščina (斯洛文尼亞文)",
+ "lt": "Lietuvių (立陶宛文)",
+ "bg": "Български (保加利亞文)",
+ "gl": "Galego (加利西亞文)",
+ "id": "Bahasa Indonesia (印尼文)",
+ "ur": "اردو (烏爾都文)"
},
"appearance": "外觀",
"darkMode": {
@@ -248,5 +264,9 @@
"documentTitle": "找不到頁面 - Frigate",
"desc": "找不到頁面",
"title": "404"
+ },
+ "readTheDocumentation": "閱讀文件",
+ "information": {
+ "pixels": "{{area}}像素"
}
}
diff --git a/web/public/locales/yue-Hant/components/camera.json b/web/public/locales/yue-Hant/components/camera.json
index 80cb5d8332..ecfa4638c3 100644
--- a/web/public/locales/yue-Hant/components/camera.json
+++ b/web/public/locales/yue-Hant/components/camera.json
@@ -40,7 +40,8 @@
"audioIsUnavailable": "此串流沒有音訊",
"placeholder": "選擇串流來源",
"stream": "串流"
- }
+ },
+ "birdseye": "鳥瞰"
},
"delete": {
"confirm": {
diff --git a/web/public/locales/yue-Hant/components/dialog.json b/web/public/locales/yue-Hant/components/dialog.json
index 775681b078..1a39110481 100644
--- a/web/public/locales/yue-Hant/components/dialog.json
+++ b/web/public/locales/yue-Hant/components/dialog.json
@@ -106,7 +106,15 @@
"button": {
"export": "匯出",
"markAsReviewed": "標記為已審查",
- "deleteNow": "立即刪除"
+ "deleteNow": "立即刪除",
+ "markAsUnreviewed": "標記為未審查"
}
+ },
+ "imagePicker": {
+ "selectImage": "選取追蹤物件縮圖",
+ "search": {
+ "placeholder": "以標籤或子標籤搜尋..."
+ },
+ "noImages": "未找到此鏡頭的縮圖"
}
}
diff --git a/web/public/locales/yue-Hant/components/filter.json b/web/public/locales/yue-Hant/components/filter.json
index b2de0f6e67..bfdc93576e 100644
--- a/web/public/locales/yue-Hant/components/filter.json
+++ b/web/public/locales/yue-Hant/components/filter.json
@@ -91,7 +91,9 @@
"selectPlatesFromList": "從列表中選取一個或多個車牌。",
"placeholder": "輸入以搜尋車牌…",
"title": "已識別車牌",
- "loadFailed": "載入已識別車牌失敗。"
+ "loadFailed": "載入已識別車牌失敗。",
+ "selectAll": "全部選取",
+ "clearAll": "全部清除"
},
"estimatedSpeed": "預計速度({{unit}})",
"labels": {
@@ -122,5 +124,13 @@
"selectPreset": "選擇預設設定…"
},
"more": "更多篩選條件",
- "timeRange": "時間範圍"
+ "timeRange": "時間範圍",
+ "classes": {
+ "label": "分類",
+ "all": {
+ "title": "所有分類"
+ },
+ "count_one": "{{count}} 個分類",
+ "count_other": "{{count}} 個分類"
+ }
}
diff --git a/web/public/locales/yue-Hant/views/classificationModel.json b/web/public/locales/yue-Hant/views/classificationModel.json
new file mode 100644
index 0000000000..0967ef424b
--- /dev/null
+++ b/web/public/locales/yue-Hant/views/classificationModel.json
@@ -0,0 +1 @@
+{}
diff --git a/web/public/locales/yue-Hant/views/configEditor.json b/web/public/locales/yue-Hant/views/configEditor.json
index 3e23edb7f6..5bf9d8a2e8 100644
--- a/web/public/locales/yue-Hant/views/configEditor.json
+++ b/web/public/locales/yue-Hant/views/configEditor.json
@@ -12,5 +12,7 @@
"savingError": "儲存設定時出錯"
}
},
- "confirm": "是否不儲存就離開?"
+ "confirm": "是否不儲存就離開?",
+ "safeConfigEditor": "設定編輯器 (安全模式)",
+ "safeModeDescription": "Frigate 因配置驗證錯誤而進入安全模式。"
}
diff --git a/web/public/locales/yue-Hant/views/events.json b/web/public/locales/yue-Hant/views/events.json
index e9929a3509..b5e9dc84df 100644
--- a/web/public/locales/yue-Hant/views/events.json
+++ b/web/public/locales/yue-Hant/views/events.json
@@ -34,5 +34,7 @@
},
"detections": "偵測",
"timeline.aria": "選擇時間線",
- "detected": "已偵測"
+ "detected": "已偵測",
+ "suspiciousActivity": "可疑行為",
+ "threateningActivity": "威脅行為"
}
diff --git a/web/public/locales/yue-Hant/views/explore.json b/web/public/locales/yue-Hant/views/explore.json
index 46db41b6f8..e3a8c94090 100644
--- a/web/public/locales/yue-Hant/views/explore.json
+++ b/web/public/locales/yue-Hant/views/explore.json
@@ -101,12 +101,14 @@
"success": {
"updatedSublabel": "成功更新子標籤。",
"updatedLPR": "成功更新車牌號碼。",
- "regenerate": "已從 {{provider}} 請求新的描述。根據提供者的速度,生成新的描述可能需要一些時間。"
+ "regenerate": "已從 {{provider}} 請求新的描述。根據提供者的速度,生成新的描述可能需要一些時間。",
+ "audioTranscription": "成功請求音訊轉錄。"
},
"error": {
"regenerate": "呼叫 {{provider}} 以獲取新描述失敗:{{errorMessage}}",
"updatedSublabelFailed": "更新子標籤失敗:{{errorMessage}}",
- "updatedLPRFailed": "更新車牌號碼失敗:{{errorMessage}}"
+ "updatedLPRFailed": "更新車牌號碼失敗:{{errorMessage}}",
+ "audioTranscription": "請求音訊轉錄失敗:{{errorMessage}}"
}
}
},
@@ -152,7 +154,10 @@
"label": "快照分數"
},
"expandRegenerationMenu": "展開重新生成選單",
- "regenerateFromThumbnails": "從縮圖重新生成"
+ "regenerateFromThumbnails": "從縮圖重新生成",
+ "score": {
+ "label": "分數"
+ }
},
"itemMenu": {
"downloadVideo": {
@@ -181,6 +186,14 @@
},
"deleteTrackedObject": {
"label": "刪除此追蹤物件"
+ },
+ "addTrigger": {
+ "label": "新增觸發器",
+ "aria": "為此追蹤物件新增觸發器"
+ },
+ "audioTranscription": {
+ "label": "轉錄音訊",
+ "aria": "請求音訊轉錄"
}
},
"dialog": {
@@ -201,5 +214,11 @@
"tooltip": "已配對{{type}}({{confidence}}% 信心"
},
"trackedObjectsCount_other": "{{count}} 個追蹤物件 ",
- "exploreMore": "瀏覽更多{{label}}物件"
+ "exploreMore": "瀏覽更多{{label}}物件",
+ "aiAnalysis": {
+ "title": "AI 分析"
+ },
+ "concerns": {
+ "label": "關注"
+ }
}
diff --git a/web/public/locales/yue-Hant/views/faceLibrary.json b/web/public/locales/yue-Hant/views/faceLibrary.json
index 2c1e11b244..53525d914c 100644
--- a/web/public/locales/yue-Hant/views/faceLibrary.json
+++ b/web/public/locales/yue-Hant/views/faceLibrary.json
@@ -61,7 +61,7 @@
"selectImage": "請選擇一個圖片檔案。"
},
"dropActive": "將圖片拖到這裡…",
- "dropInstructions": "拖放圖片到此處,或點擊選取",
+ "dropInstructions": "拖放圖片或貼上到此處,或點擊選取",
"maxSize": "最大檔案大小:{{size}}MB"
},
"readTheDocs": "閱讀文件",
diff --git a/web/public/locales/yue-Hant/views/live.json b/web/public/locales/yue-Hant/views/live.json
index d9dda2630b..bb3b440eef 100644
--- a/web/public/locales/yue-Hant/views/live.json
+++ b/web/public/locales/yue-Hant/views/live.json
@@ -37,6 +37,14 @@
"out": {
"label": "縮小 PTZ 鏡頭"
}
+ },
+ "focus": {
+ "in": {
+ "label": "PTZ 鏡頭拉近焦距"
+ },
+ "out": {
+ "label": "PTZ 鏡頭拉遠焦距"
+ }
}
},
"twoWayTalk": {
@@ -66,7 +74,7 @@
"disable": "隱藏串流統計資料"
},
"manualRecording": {
- "title": "按需錄影",
+ "title": "按需",
"tips": "根據此鏡頭的錄影保留設定手動啟動事件。",
"debugView": "除錯視圖",
"start": "開始按需錄影",
@@ -126,6 +134,9 @@
"playInBackground": {
"tips": "啟用此選項可在播放器隱藏時繼續串流播放。",
"label": "背景播放"
+ },
+ "debug": {
+ "picker": "除錯模式下無法選擇串流。除錯視圖永遠使用已分配偵測角色的串流。"
}
},
"cameraSettings": {
@@ -135,7 +146,8 @@
"snapshots": "快照",
"autotracking": "自動追蹤",
"audioDetection": "音訊偵測",
- "title": "{{camera}} 設定"
+ "title": "{{camera}} 設定",
+ "transcription": "音訊轉錄"
},
"history": {
"label": "顯示歷史影像"
@@ -154,5 +166,20 @@
"label": "編輯鏡頭群組"
},
"exitEdit": "結束編輯"
+ },
+ "transcription": {
+ "enable": "啟用即時音訊轉錄",
+ "disable": "停用即時音訊轉錄"
+ },
+ "noCameras": {
+ "title": "未設置任何鏡頭",
+ "description": "連接鏡頭開始使用。",
+ "buttonText": "新增鏡頭"
+ },
+ "snapshot": {
+ "takeSnapshot": "下載即時快照",
+ "noVideoSource": "無可用影片來源以擷取快照。",
+ "captureFailed": "擷取快照失敗。",
+ "downloadStarted": "已開始下載快照。"
}
}
diff --git a/web/public/locales/yue-Hant/views/settings.json b/web/public/locales/yue-Hant/views/settings.json
index a68c9d2bd4..34982abb42 100644
--- a/web/public/locales/yue-Hant/views/settings.json
+++ b/web/public/locales/yue-Hant/views/settings.json
@@ -10,7 +10,9 @@
"general": "一般設定 - Frigate",
"frigatePlus": "Frigate+ 設定 - Frigate",
"notifications": "通知設定 - Frigate",
- "enrichments": "進階功能設定 - Frigate"
+ "enrichments": "進階功能設定 - Frigate",
+ "cameraManagement": "管理鏡頭 - Frigate",
+ "cameraReview": "鏡頭檢視設定 - Frigate"
},
"menu": {
"ui": "介面",
@@ -22,7 +24,11 @@
"users": "用戶",
"notifications": "通知",
"frigateplus": "Frigate+",
- "enrichments": "進階功能"
+ "enrichments": "進階功能",
+ "triggers": "觸發器",
+ "roles": "角色",
+ "cameraManagement": "管理",
+ "cameraReview": "審查"
},
"dialog": {
"unsavedChanges": {
@@ -178,6 +184,43 @@
"success": "審查分類設定已儲存。請重新啟動Frigate以套用更改。"
},
"unsavedChanges": "{{camera}}的審查分類設定尚未儲存"
+ },
+ "object_descriptions": {
+ "title": "生成式 AI 物件描述",
+ "desc": "暫時啟用或停用此鏡頭生成式 AI 物件描述。停用時,不會為此鏡頭的追蹤物件請求 AI 描述。"
+ },
+ "review_descriptions": {
+ "title": "生成式 AI 審查描述",
+ "desc": "暫時啟用或停用此鏡頭生成式 AI 審查描述。停用時,不會為此鏡頭的審查項目請求 AI 描述。"
+ },
+ "addCamera": "新增鏡頭",
+ "editCamera": "編輯鏡頭:",
+ "selectCamera": "選擇鏡頭",
+ "backToSettings": "返回鏡頭設定",
+ "cameraConfig": {
+ "add": "新增鏡頭",
+ "edit": "編輯鏡頭",
+ "description": "設定鏡頭,包括串流輸入同角色分配。",
+ "name": "鏡頭名稱",
+ "nameRequired": "必須填寫鏡頭名稱",
+ "nameLength": "鏡頭名稱不得多於 24 個字元。",
+ "namePlaceholder": "例如:front_door",
+ "enabled": "已啟用",
+ "ffmpeg": {
+ "inputs": "輸入串流",
+ "path": "串流路徑",
+ "pathRequired": "必須填寫串流路徑",
+ "pathPlaceholder": "rtsp://...",
+ "roles": "角色",
+ "rolesRequired": "至少需要分配一個角色",
+ "rolesUnique": "每個角色(音訊、偵測、錄影)只可分配到一個串流",
+ "addInput": "新增輸入串流",
+ "removeInput": "移除輸入串流",
+ "inputsRequired": "至少需要一個輸入串流"
+ },
+ "toast": {
+ "success": "鏡頭 {{cameraName}} 已成功儲存"
+ }
}
},
"masksAndZones": {
@@ -417,6 +460,19 @@
"ratio": "比例",
"desc": "在圖片上畫矩形以查看面積與比例詳情",
"tips": "啟用此選項後,會於鏡頭畫面上繪製矩形,以顯示其面積及比例。這些數值可用於設定物件形狀過濾參數。"
+ },
+ "openCameraWebUI": "打開 {{camera}} 的網頁介面",
+ "audio": {
+ "title": "音訊",
+ "noAudioDetections": "未偵測到音訊",
+ "score": "分數",
+ "currentRMS": "目前 RMS",
+ "currentdbFS": "目前 dbFS"
+ },
+ "paths": {
+ "title": "軌跡",
+ "desc": "顯示追蹤物件軌跡上的重要點",
+ "tips": "