diff --git a/web/public/locales/es/common.json b/web/public/locales/es/common.json index 49e06c508..8faa18fe7 100644 --- a/web/public/locales/es/common.json +++ b/web/public/locales/es/common.json @@ -195,7 +195,8 @@ "explore": "Explorar", "uiPlayground": "Zona de pruebas de la interfaz de usuario", "faceLibrary": "Biblioteca de rostros", - "classification": "Clasificación" + "classification": "Clasificación", + "profiles": "Perfiles" }, "unit": { "speed": { diff --git a/web/public/locales/es/components/dialog.json b/web/public/locales/es/components/dialog.json index e8f59f05a..848285daf 100644 --- a/web/public/locales/es/components/dialog.json +++ b/web/public/locales/es/components/dialog.json @@ -77,7 +77,11 @@ "saveExport": "Guardar exportación", "previewExport": "Vista previa de la exportación" }, - "selectOrExport": "Seleccionar o exportar" + "selectOrExport": "Seleccionar o exportar", + "case": { + "label": "Caso", + "newCaseDescriptionPlaceholder": "Descripción de caso" + } }, "streaming": { "restreaming": { @@ -124,6 +128,9 @@ "markAsReviewed": "Marcar como revisado", "deleteNow": "Eliminar ahora", "markAsUnreviewed": "Marcar como no revisado" + }, + "shareTimestamp": { + "description": "Comparta una URL con marca de tiempo de la posición actual del reproductor o elija una marca de tiempo personalizada. Tenga en cuenta que esta no es una URL pública para compartir y solo es accesible para los usuarios que tienen acceso a Frigate y a esta cámara." } }, "imagePicker": { diff --git a/web/public/locales/es/components/player.json b/web/public/locales/es/components/player.json index 2a3e4deb1..c277d9a5a 100644 --- a/web/public/locales/es/components/player.json +++ b/web/public/locales/es/components/player.json @@ -3,7 +3,8 @@ "noPreviewFoundFor": "No se encontró vista previa para {{cameraName}}", "submitFrigatePlus": { "submit": "Enviar", - "title": "¿Enviar este fotograma a Frigate+?" + "title": "¿Enviar este fotograma a Frigate+?", + "previewError": "No se pudo cargar la vista previa de la instantánea. Es posible que la grabación no esté disponible en este momento." }, "streamOffline": { "desc": "No se han recibido fotogramas en la transmisión detect de {{cameraName}}, revisa los registros de errores", diff --git a/web/public/locales/es/config/cameras.json b/web/public/locales/es/config/cameras.json index aeb608371..d6a120fdf 100644 --- a/web/public/locales/es/config/cameras.json +++ b/web/public/locales/es/config/cameras.json @@ -42,10 +42,32 @@ "label": "Nombre descriptivo", "description": "Nombre descriptivo de la cámara utilizado en la interfaz de usuario de Frigate" }, - "label": "Configuración de Cámara", + "label": "Configuración de cámara", "onvif": { "profile": { - "label": "Perfil ONVIF" + "label": "Perfil ONVIF", + "description": "Perfil multimedia ONVIF específico que se utilizará para el control PTZ, identificado por token o nombre. Si no se especifica, se selecciona automáticamente el primer perfil con una configuración PTZ válida." + }, + "autotracking": { + "zoom_factor": { + "description": "Controla el nivel de zoom en los objetos rastreados. Los valores más bajos mantienen una mayor parte de la escena a la vista; los valores más altos acercan la imagen, pero pueden provocar la pérdida del rastreo. Valores entre 0.1 y 0.75." + }, + "calibrate_on_startup": { + "description": "Mida la velocidad de los motores PTZ al encenderlos para mejorar la precisión del seguimiento. Frigate actualizará la configuración con los `movement_weights` tras la calibración." + }, + "description": "Realice un seguimiento automático de objetos en movimiento y manténgalos centrados en el encuadre mediante movimientos de cámara PTZ.", + "zooming": { + "description": "Control del comportamiento del zoom: deshabilitado (solo panorámica/inclinación), absoluto (mayor compatibilidad) o relativo (panorámica/inclinación/zoom simultáneos)." + }, + "return_preset": { + "description": "Nombre del preajuste ONVIF configurado en el firmware de la cámara al que regresar una vez finalizado el seguimiento." + }, + "timeout": { + "description": "Espere esta cantidad de segundos después de perder el seguimiento antes de devolver la cámara a la posición preestablecida." + } + }, + "tls_insecure": { + "description": "Omitir la verificación TLS y deshabilitar la autenticación digest para ONVIF (no seguro; usar solo en redes seguras)." } }, "zones": { @@ -83,7 +105,24 @@ "max_area": { "description": "Área máxima del cuadro delimitador (píxeles o porcentaje) permitida para este tipo de objeto. Puede expresarse en píxeles (entero) o como porcentaje (decimal entre 0,000001 y 0,99).", "label": "Área máxima del objeto" - } + }, + "description": "Filtros para aplicar a los objetos dentro de esta zona. Se utilizan para reducir los falsos positivos o restringir qué objetos se consideran presentes en la zona." + }, + "objects": { + "description": "Lista de tipos de objetos (del mapa de etiquetas) que pueden activar esta zona. Puede ser una cadena de texto o una lista de cadenas. Si está vacío, se consideran todos los objetos." + }, + "description": "Las zonas le permiten definir un área específica del fotograma, de modo que pueda determinar si un objeto se encuentra o no dentro de un área determinada.", + "speed_threshold": { + "description": "Velocidad mínima (en unidades del mundo real, si se han configurado distancias) requerida para que un objeto se considere presente en la zona. Se utiliza para los disparadores de zona basados en la velocidad." + }, + "friendly_name": { + "description": "Un nombre fácil de usar para la zona, que se muestra en la interfaz de usuario de Frigate. Si no se especifica, se utilizará una versión formateada del nombre de la zona." + }, + "inertia": { + "description": "Número de fotogramas consecutivos en los que se debe detectar un objeto dentro de la zona antes de considerarlo presente. Ayuda a filtrar las detecciones transitorias." + }, + "loitering_time": { + "description": "Número de segundos que un objeto debe permanecer en la zona para ser considerado como merodeo. Establezca en 0 para desactivar la detección de merodeo." } }, "objects": { @@ -100,7 +139,151 @@ "use_snapshot": { "label": "Usar instantáneas", "description": "Usar instantáneas de objetos en lugar de miniaturas para la generación de descripciones de GenAI." + }, + "send_triggers": { + "after_significant_updates": { + "description": "Envía una solicitud a GenAI tras un número especificado de actualizaciones significativas del objeto rastreado." + }, + "description": "Define cuándo se deben enviar los fotogramas a GenAI (al finalizar, después de las actualizaciones, etc.)." + }, + "required_zones": { + "description": "Zonas en las que deben ubicarse los objetos para ser elegibles para la generación de descripciones con GenAI." } } + }, + "mqtt": { + "label": "MQTT", + "required_zones": { + "description": "Zonas en las que debe entrar un objeto para que se publique una imagen MQTT." + } + }, + "notifications": { + "email": { + "label": "Email de notificacion" + } + }, + "audio_transcription": { + "description": "Configuración para la transcripción de audio en vivo y de voz, utilizada para eventos y subtítulos en tiempo real.", + "enabled": { + "label": "Habilitar transcripción" + } + }, + "motion": { + "skip_motion_threshold": { + "description": "Si se establece en un valor entre 0,0 y 1,0, y más de esta fracción de la imagen cambia en un solo fotograma, el detector no devolverá cuadros de movimiento y se recalibrará inmediatamente. Esto puede ahorrar recursos de CPU y reducir los falsos positivos durante tormentas eléctricas, tempestades, etc., aunque podría pasar por alto eventos reales, como el seguimiento automático de un objeto por parte de una cámara PTZ. La disyuntiva está entre descartar unos cuantos megabytes de grabaciones o revisar un par de clips cortos. Deje este parámetro sin establecer (None) para desactivar esta función." + }, + "lightning_threshold": { + "description": "Umbral para detectar e ignorar breves picos de luz (un valor menor indica mayor sensibilidad; valores entre 0,3 y 1,0). Esto no impide por completo la detección de movimiento; Simplemente provoca que el detector deje de analizar fotogramas adicionales una vez que se supera el umbral. Durante estos eventos aún se realizan grabaciones basadas en el movimiento." + }, + "threshold": { + "description": "Umbral de diferencia de píxeles utilizado por el detector de movimiento; los valores más altos reducen la sensibilidad (rango 1-255)." + } + }, + "lpr": { + "enhancement": { + "description": "Nivel de mejora (0-10) que se aplicará a los recortes de matrículas antes del OCR; los valores más altos no siempre mejoran los resultados, y los niveles superiores a 5 podrían funcionar únicamente con matrículas capturadas de noche, por lo que deben utilizarse con precaución." + }, + "expire_time": { + "description": "Tiempo en segundos tras el cual una matrícula no detectada caduca en el sistema de seguimiento (solo para cámaras LPR dedicadas)." + } + }, + "detect": { + "fps": { + "description": "Fotogramas por segundo deseados para ejecutar la detección; los valores más bajos reducen el uso de la CPU (el valor recomendado es 5; establezca un valor superior —como máximo de 10— únicamente si realiza el seguimiento de objetos que se mueven con extrema rapidez)." + }, + "min_initialized": { + "description": "Número de detecciones consecutivas requeridas antes de crear un objeto rastreado. Auméntelo para reducir las inicializaciones falsas. El valor predeterminado es los FPS divididos por 2." + }, + "height": { + "description": "Altura (en píxeles) de los fotogramas utilizados para la transmisión de detección; déjelo vacío para utilizar la resolución nativa de la transmisión." + }, + "width": { + "description": "Ancho (en píxeles) de los fotogramas utilizados para la transmisión de detección; déjelo vacío para utilizar la resolución nativa de la transmisión." + }, + "stationary": { + "description": "Configuración para detectar y gestionar objetos que permanecen inmóviles durante un periodo de tiempo." + } + }, + "record": { + "motion": { + "description": "Número de días para conservar las grabaciones activadas por movimiento, independientemente de los objetos rastreados. Establézcalo en 0 si solo desea conservar las grabaciones de alertas y detecciones." + }, + "continuous": { + "description": "Número de días para conservar las grabaciones, independientemente de los objetos rastreados o del movimiento. Establézcalo en 0 si solo desea conservar las grabaciones de alertas y detecciones." + }, + "detections": { + "pre_capture": { + "description": "Número de segundos antes del evento de detección que se incluirán en la grabación." + }, + "post_capture": { + "description": "Número de segundos después del evento de detección que se incluirán en la grabación." + } + }, + "alerts": { + "pre_capture": { + "description": "Número de segundos antes del evento de detección que se incluirán en la grabación." + }, + "post_capture": { + "description": "Número de segundos después del evento de detección que se incluirán en la grabación." + } + } + }, + "ui": { + "dashboard": { + "description": "Alterna si esta cámara es visible en toda la interfaz de usuario de Frigate. Desactivar esta opción requerirá editar manualmente la configuración para volver a visualizar esta cámara en la interfaz." + } + }, + "live": { + "height": { + "description": "Altura (en píxeles) para renderizar la transmisión en vivo de jsmpeg en la interfaz web; debe ser <= a la altura de la transmisión de detección." + }, + "description": "Configuraciones utilizadas por la interfaz web para controlar la selección, la resolución y la calidad de transmisiónes en vivo." + }, + "review": { + "description": "Configuraciones que controlan las alertas, las detecciones y los resúmenes de revisión de GenAI utilizados por la interfaz de usuario y el almacenamiento de esta cámara.", + "alerts": { + "required_zones": { + "description": "Zonas en las que debe entrar un objeto para ser considerado una alerta; dejar vacío para permitir cualquier zona." + }, + "labels": { + "description": "Lista de etiquetas de objetos que califican como alertas (por ejemplo: car, person)." + } + }, + "detections": { + "required_zones": { + "description": "Zonas en las que debe entrar un objeto para ser considerado detectado; dejar vacío para permitir cualquier zona." + }, + "description": "Configuración para determinar qué objetos rastreados generan detecciones (no alertas) y cómo se retienen dichas detecciones." + }, + "genai": { + "image_source": { + "description": "Fuente de las imágenes enviadas a GenAI ('preview' o 'recordings'); La opción 'recordings' utiliza fotogramas de mayor calidad, pero requiere más tokens." + }, + "additional_concerns": { + "description": "Una lista de preocupaciones o notas adicionales que GenAI debería tener en cuenta al evaluar la actividad en esta cámara." + }, + "activity_context_prompt": { + "description": "Instrucción personalizada que describe qué constituye y qué no una actividad sospechosa, con el fin de proporcionar contexto para los resúmenes generados por GenAI." + }, + "description": "Controla el uso de IA generativa (GenAI) para la elaboración de descripciones y resúmenes de elementos de revisión.", + "debug_save_thumbnails": { + "description": "Guarde las miniaturas que se envían al proveedor de GenAI para su depuración y revisión." + } + } + }, + "birdseye": { + "description": "Configuración para la vista compuesta Birdseye, que combina las transmisiones de múltiples cámaras en una sola vista." + }, + "ffmpeg": { + "retry_interval": { + "description": "Segundos de espera antes de intentar reconectar la transmisión de una cámara tras un fallo. El valor predeterminado es 10." + }, + "path": { + "description": "Ruta al binario de FFmpeg que se va a utilizar o un alias de versión (\"5.0\" o \"7.0\")." + }, + "output_args": { + "description": "Argumentos de salida predeterminados utilizados para diferentes roles de FFmpeg, tales como detección y grabación." + }, + "description": "Configuración de FFmpeg, incluyendo la ruta del binario, argumentos, opciones de aceleración por hardware y argumentos de salida por rol." } } diff --git a/web/public/locales/es/config/global.json b/web/public/locales/es/config/global.json index 53cdd0aa6..1fc7df1cc 100644 --- a/web/public/locales/es/config/global.json +++ b/web/public/locales/es/config/global.json @@ -70,11 +70,45 @@ "cookie_secure": { "label": "Flag de cookie segura", "description": "Establece el flag de seguridad en la cookie de autenticación; debe ser 'true' cuando se utilice TLS." + }, + "failed_login_rate_limit": { + "label": "Limite de intento de acceso fallidos" + }, + "session_length": { + "description": "Duración de la sesión en segundos para sesiones de JWT." + }, + "admin_first_time_login": { + "description": "Cuando se establece en true, la interfaz de usuario puede mostrar un enlace de ayuda en la página de inicio de sesión, informando a los usuarios sobre cómo iniciar sesión tras el restablecimiento de la contraseña de administrador. " + }, + "refresh_time": { + "description": "Cuando a una sesión le queden menos de esta cantidad de segundos para expirar, actualícela para restablecer su duración completa." } }, "onvif": { "profile": { - "label": "Perfil ONVIF" + "label": "Perfil ONVIF", + "description": "Perfil multimedia ONVIF específico que se utilizará para el control PTZ, identificado por token o nombre. Si no se especifica, se selecciona automáticamente el primer perfil con una configuración PTZ válida." + }, + "autotracking": { + "zoom_factor": { + "description": "Controla el nivel de zoom en los objetos rastreados. Los valores más bajos mantienen una mayor parte de la escena a la vista; los valores más altos acercan la imagen, pero pueden provocar la pérdida del rastreo. Valores entre 0.1 y 0.75." + }, + "calibrate_on_startup": { + "description": "Mida la velocidad de los motores PTZ al encenderlos para mejorar la precisión del seguimiento. Frigate actualizará la configuración con los `movement_weights` tras la calibración." + }, + "description": "Realice un seguimiento automático de objetos en movimiento y manténgalos centrados en el encuadre mediante movimientos de cámara PTZ.", + "zooming": { + "description": "Control del comportamiento del zoom: deshabilitado (solo panorámica/inclinación), absoluto (mayor compatibilidad) o relativo (panorámica/inclinación/zoom simultáneos)." + }, + "return_preset": { + "description": "Nombre del preajuste ONVIF configurado en el firmware de la cámara al que regresar una vez finalizado el seguimiento." + }, + "timeout": { + "description": "Espere esta cantidad de segundos después de perder el seguimiento antes de devolver la cámara a la posición preestablecida." + } + }, + "tls_insecure": { + "description": "Omitir la verificación TLS y deshabilitar la autenticación digest para ONVIF (no seguro; usar solo en redes seguras)." } }, "objects": { @@ -91,7 +125,19 @@ "use_snapshot": { "label": "Usar instantáneas", "description": "Usar instantáneas de objetos en lugar de miniaturas para la generación de descripciones de GenAI." + }, + "send_triggers": { + "after_significant_updates": { + "description": "Envía una solicitud a GenAI tras un número especificado de actualizaciones significativas del objeto rastreado." + }, + "description": "Define cuándo se deben enviar los fotogramas a GenAI (al finalizar, después de las actualizaciones, etc.)." + }, + "required_zones": { + "description": "Zonas en las que deben ubicarse los objetos para ser elegibles para la generación de descripciones con GenAI." } + }, + "track": { + "description": "Lista de etiquetas de objetos a rastrear para todas las cámaras; puede anularse por cámara." } }, "detectors": { @@ -107,6 +153,310 @@ "api_key": { "label": "Clave de API de DeepStack (si es necesaria)" } + }, + "type": { + "label": "Tipo" + }, + "label": "Detector de hardware", + "cpu": { + "label": "CPU", + "num_threads": { + "label": "Número de hilos para detección" + }, + "description": "Detector TFLite de CPU que ejecuta modelos de TensorFlow Lite en la CPU del host sin aceleración por hardware. No recomendado." + }, + "axengine": { + "label": "Motor AX NPU" + }, + "teflon_tfl": { + "description": "Detector de delegados Teflon para TFLite, que utiliza la biblioteca de delegados Mesa Teflon para acelerar la inferencia en las GPU compatibles." + }, + "synaptics": { + "description": "Detector NPU de Synaptics para modelos en formato .synap, utilizando el Synap SDK en hardware de Synaptics." + }, + "zmq": { + "description": "Detector ZMQ IPC que descarga la inferencia a un proceso externo a través de un punto de conexión IPC de ZeroMQ." + }, + "hailo8l": { + "description": "Detector Hailo-8/Hailo-8L que utiliza modelos HEF y el SDK HailoRT para la inferencia en hardware Hailo." + }, + "onnx": { + "description": "Detector ONNX para ejecutar modelos ONNX; utilizará los backends de aceleración disponibles (CUDA/ROCm/OpenVINO) cuando estén disponibles." + }, + "description": "Configuración para detectores de objetos (backends de CPU, GPU y ONNX) y cualquier ajuste del modelo específico del detector.", + "openvino": { + "description": "Detector OpenVINO para CPU AMD e Intel, GPU Intel y hardware VPU Intel." + }, + "tensorrt": { + "description": "Detector TensorRT para dispositivos Nvidia Jetson que utiliza motores TensorRT serializados para una inferencia acelerada." + }, + "degirum": { + "description": "Detector DeGirum para ejecutar modelos a través de la nube de DeGirum o servicios de inferencia local." + }, + "rknn": { + "description": "Detector RKNN para NPUs de Rockchip; ejecuta modelos compilados para RKNN en hardware de Rockchip." + } + }, + "database": { + "label": "Base de datos", + "description": "Configuración de la base de datos SQLite utilizada por Frigate para almacenar los metadatos de los objetos rastreados y las grabaciones." + }, + "mqtt": { + "label": "MQTT", + "port": { + "label": "Puerto MQTT" + }, + "tls_client_cert": { + "label": "Certificado cliente" + }, + "description": "Configuración para conectar y publicar telemetría, instantáneas y detalles de eventos en un broker MQTT.", + "topic_prefix": { + "description": "Prefijo del tema MQTT para todos los temas de Frigate; debe ser único si se ejecutan múltiples instancias." + }, + "client_id": { + "description": "Identificador de cliente utilizado al conectarse al broker MQTT; debe ser único para cada instancia." + } + }, + "notifications": { + "email": { + "label": "Email de notificacion" + } + }, + "networking": { + "ipv6": { + "label": "Configuración IPV6" + }, + "listen": { + "internal": { + "label": "Puerto interno" + }, + "external": { + "label": "Puerto externo", + "description": "Puerto externo de escucha para Frigate (por defecto 8791)." + }, + "description": "Configuración de los puertos de escucha internos y externos. Esto es para usuarios avanzados. Para la mayoría de los casos de uso, se recomienda modificar la sección de puertos de su configuración de Docker Compose." + } + }, + "proxy": { + "label": "Proxy", + "separator": { + "label": "Carácter de separación" + }, + "default_role": { + "description": "Rol predeterminado asignado a los usuarios autenticados por proxy cuando no se aplica ningún mapeo de roles (administrador o espectador)." + }, + "description": "Configuración para integrar Frigate detrás de un proxy inverso que transmite encabezados de usuario autenticados.", + "header_map": { + "description": "Mapear los encabezados de proxy entrantes a los campos de usuario y rol de Frigate para la autenticación basada en proxy.", + "role": { + "description": "Encabezado que contiene el rol o los grupos del usuario autenticado provenientes del proxy ascendente." + } + } + }, + "telemetry": { + "label": "Telemetria", + "stats": { + "intel_gpu_stats": { + "label": "Estadísticas GPU Intel", + "description": "Habilitar la recopilación de estadísticas de la GPU Intel si hay una GPU Intel presente." + }, + "network_bandwidth": { + "label": "Ancho de banda" + }, + "amd_gpu_stats": { + "label": "Estadísticas GPU Amd", + "description": "Habilitar la recopilación de estadísticas de la GPU AMD si hay una GPU AMD presente." + }, + "intel_gpu_device": { + "description": "Identificador de dispositivo utilizado al tratar las GPU Intel como SR-IOV para corregir las estadísticas de la GPU." + } + }, + "version_check": { + "description": "Habilite una verificación saliente para detectar si hay disponible una versión más reciente de Frigate." + } + }, + "ui": { + "timezone": { + "label": "Uso horario", + "description": "Zona horaria opcional que se mostrará en la interfaz de usuario (si no se especifica, se utilizará la hora local del navegador)." + }, + "unit_system": { + "label": "Unidad de sistema", + "description": "Sistema de unidades para la visualización (métrico o imperial) utilizado en la interfaz de usuario y en MQTT." + } + }, + "audio_transcription": { + "description": "Configuración para la transcripción de audio en vivo y de voz, utilizada para eventos y subtítulos en tiempo real.", + "language": { + "description": "Código de idioma utilizado para la transcripción/traducción (por ejemplo, 'es' para Español). Consulte https://whisper-api.com/docs/languages/ para ver los códigos de idioma compatibles." + }, + "enabled": { + "description": "Habilitar o deshabilitar la transcripción automática de audio para todas las cámaras; puede anularse por cámara." + } + }, + "motion": { + "skip_motion_threshold": { + "description": "Si se establece en un valor entre 0,0 y 1,0, y más de esta fracción de la imagen cambia en un solo fotograma, el detector no devolverá cuadros de movimiento y se recalibrará inmediatamente. Esto puede ahorrar recursos de CPU y reducir los falsos positivos durante tormentas eléctricas, tempestades, etc., aunque podría pasar por alto eventos reales, como el seguimiento automático de un objeto por parte de una cámara PTZ. La disyuntiva está entre descartar unos cuantos megabytes de grabaciones o revisar un par de clips cortos. Deje este parámetro sin establecer (None) para desactivar esta función." + }, + "lightning_threshold": { + "description": "Umbral para detectar e ignorar breves picos de luz (un valor menor indica mayor sensibilidad; valores entre 0,3 y 1,0). Esto no impide por completo la detección de movimiento; Simplemente provoca que el detector deje de analizar fotogramas adicionales una vez que se supera el umbral. Durante estos eventos aún se realizan grabaciones basadas en el movimiento." + }, + "threshold": { + "description": "Umbral de diferencia de píxeles utilizado por el detector de movimiento; los valores más altos reducen la sensibilidad (rango 1-255)." + }, + "enabled": { + "description": "Habilitar o deshabilitar la detección de movimiento para todas las cámaras; puede anularse para cada cámara individualmente." + } + }, + "lpr": { + "enhancement": { + "description": "Nivel de mejora (0-10) que se aplicará a los recortes de matrículas antes del OCR; los valores más altos no siempre mejoran los resultados, y los niveles superiores a 5 podrían funcionar únicamente con matrículas capturadas de noche, por lo que deben utilizarse con precaución." + }, + "expire_time": { + "description": "Tiempo en segundos tras el cual una matrícula no detectada caduca en el sistema de seguimiento (solo para cámaras LPR dedicadas)." + }, + "enabled": { + "description": "Habilitar o deshabilitar el reconocimiento de matrículas para todas las cámaras; puede anularse por cámara." + }, + "min_plate_length": { + "description": "Número mínimo de caracteres que debe contener una matrícula reconocida para ser considerada válida." + } + }, + "detect": { + "fps": { + "description": "Fotogramas por segundo deseados para ejecutar la detección; los valores más bajos reducen el uso de la CPU (el valor recomendado es 5; establezca un valor superior —como máximo de 10— únicamente si realiza el seguimiento de objetos que se mueven con extrema rapidez)." + }, + "min_initialized": { + "description": "Número de detecciones consecutivas requeridas antes de crear un objeto rastreado. Auméntelo para reducir las inicializaciones falsas. El valor predeterminado es los FPS divididos por 2." + }, + "height": { + "description": "Altura (en píxeles) de los fotogramas utilizados para la transmisión de detección; déjelo vacío para utilizar la resolución nativa de la transmisión." + }, + "width": { + "description": "Ancho (en píxeles) de los fotogramas utilizados para la transmisión de detección; déjelo vacío para utilizar la resolución nativa de la transmisión." + }, + "stationary": { + "description": "Configuración para detectar y gestionar objetos que permanecen inmóviles durante un periodo de tiempo." + }, + "enabled": { + "description": "Habilitar o deshabilitar la detección de objetos para todas las cámaras; puede anularse para cada cámara individualmente." + } + }, + "record": { + "motion": { + "description": "Número de días para conservar las grabaciones activadas por movimiento, independientemente de los objetos rastreados. Establézcalo en 0 si solo desea conservar las grabaciones de alertas y detecciones." + }, + "continuous": { + "description": "Número de días para conservar las grabaciones, independientemente de los objetos rastreados o del movimiento. Establézcalo en 0 si solo desea conservar las grabaciones de alertas y detecciones." + }, + "detections": { + "pre_capture": { + "description": "Número de segundos antes del evento de detección que se incluirán en la grabación." + }, + "post_capture": { + "description": "Número de segundos después del evento de detección que se incluirán en la grabación." + } + }, + "alerts": { + "pre_capture": { + "description": "Número de segundos antes del evento de detección que se incluirán en la grabación." + }, + "post_capture": { + "description": "Número de segundos después del evento de detección que se incluirán en la grabación." + } + } + }, + "camera_ui": { + "dashboard": { + "description": "Alterna si esta cámara es visible en toda la interfaz de usuario de Frigate. Desactivar esta opción requerirá editar manualmente la configuración para volver a visualizar esta cámara en la interfaz." + } + }, + "live": { + "description": "Configuración para controlar la resolución y la calidad de la transmisión en vivo de jsmpeg. Esto no afecta a las cámaras retransmitidas que utilizan go2rtc para la visualización en vivo.", + "height": { + "description": "Altura (en píxeles) para renderizar la transmisión en vivo de jsmpeg en la interfaz web; debe ser <= a la altura de la transmisión de detección." + } + }, + "semantic_search": { + "model": { + "description": "El modelo de embeddings a utilizar para la búsqueda semántica (por ejemplo, 'jinav1'), o el nombre de un proveedor de GenAI con el rol de embeddings." + } + }, + "review": { + "alerts": { + "required_zones": { + "description": "Zonas en las que debe entrar un objeto para ser considerado una alerta; dejar vacío para permitir cualquier zona." + }, + "labels": { + "description": "Lista de etiquetas de objetos que califican como alertas (por ejemplo: car, person)." + } + }, + "detections": { + "required_zones": { + "description": "Zonas en las que debe entrar un objeto para ser considerado detectado; dejar vacío para permitir cualquier zona." + }, + "description": "Configuración para determinar qué objetos rastreados generan detecciones (no alertas) y cómo se retienen dichas detecciones." + }, + "genai": { + "image_source": { + "description": "Fuente de las imágenes enviadas a GenAI ('preview' o 'recordings'); La opción 'recordings' utiliza fotogramas de mayor calidad, pero requiere más tokens." + }, + "additional_concerns": { + "description": "Una lista de preocupaciones o notas adicionales que GenAI debería tener en cuenta al evaluar la actividad en esta cámara." + }, + "activity_context_prompt": { + "description": "Instrucción personalizada que describe qué constituye y qué no una actividad sospechosa, con el fin de proporcionar contexto para los resúmenes generados por GenAI." + }, + "description": "Controla el uso de IA generativa (GenAI) para la elaboración de descripciones y resúmenes de elementos de revisión.", + "debug_save_thumbnails": { + "description": "Guarde las miniaturas que se envían al proveedor de GenAI para su depuración y revisión." + } + } + }, + "birdseye": { + "description": "Configuración para la vista compuesta Birdseye, que combina las transmisiones de múltiples cámaras en una sola vista.", + "restream": { + "description": "Retransmita la salida de video de Birdseye como una transmisión en vivo RTSP; al habilitar esta opción, Birdseye se mantendrá en ejecución de forma continua." + }, + "layout": { + "max_cameras": { + "description": "Número máximo de cámaras a mostrar simultáneamente en Birdseye; muestra las cámaras más recientes." + } + } + }, + "ffmpeg": { + "retry_interval": { + "description": "Segundos de espera antes de intentar reconectar la transmisión de una cámara tras un fallo. El valor predeterminado es 10." + }, + "path": { + "description": "Ruta al binario de FFmpeg que se va a utilizar o un alias de versión (\"5.0\" o \"7.0\")." + }, + "output_args": { + "description": "Argumentos de salida predeterminados utilizados para diferentes roles de FFmpeg, tales como detección y grabación." + }, + "description": "Configuración de FFmpeg, incluyendo la ruta del binario, argumentos, opciones de aceleración por hardware y argumentos de salida por rol." + }, + "go2rtc": { + "description": "Configuración del servicio integrado de retransmisión go2rtc, utilizado para el relevo y la traducción de transmisiones en vivo." + }, + "genai": { + "description": "Configuración para los proveedores integrados de IA generativa (GenAI) utilizados para generar descripciones de objetos y resúmenes de reseñas.", + "api_key": { + "description": "Clave de API requerida por algunos proveedores (también puede configurarse mediante variables de entorno)." + }, + "base_url": { + "description": "URL base para proveedores autoalojados o compatibles (por ejemplo, una instancia de Ollama)." + }, + "model": { + "description": "El modelo del proveedor que se utilizará para generar descripciones o resúmenes." + } + }, + "face_recognition": { + "description": "Configuración para la detección y el reconocimiento facial en todas las cámaras; puede anularse por cámara." + }, + "camera_mqtt": { + "required_zones": { + "description": "Zonas en las que debe entrar un objeto para que se publique una imagen MQTT." } } } diff --git a/web/public/locales/es/config/groups.json b/web/public/locales/es/config/groups.json index d6b2b9d81..a8cb25b46 100644 --- a/web/public/locales/es/config/groups.json +++ b/web/public/locales/es/config/groups.json @@ -59,6 +59,15 @@ "global": { "retention": "Retención global", "events": "Eventos globales" + }, + "cameras": { + "events": "Evento", + "retention": "Retención" + } + }, + "ffmpeg": { + "cameras": { + "cameraFfmpeg": "Argumentos de FFmpeg específicos de la cámara" } } } diff --git a/web/public/locales/es/config/validation.json b/web/public/locales/es/config/validation.json index faf7032f8..b78ae972f 100644 --- a/web/public/locales/es/config/validation.json +++ b/web/public/locales/es/config/validation.json @@ -19,7 +19,8 @@ "ffmpeg": { "inputs": { "rolesUnique": "Cada rol solo puede asignarse a un flujo de entrada.", - "detectRequired": "Al menos un flujo de entrada debe tener asignado el rol 'detect'." + "detectRequired": "Al menos un flujo de entrada debe tener asignado el rol 'detect'.", + "hwaccelDetectOnly": "Solo el flujo de entrada con la función \"detect\" puede definir argumentos de aceleración por hardware." } }, "anyOf": "Debe coincidir con al menos uno de los esquemas permitidos", diff --git a/web/public/locales/es/objects.json b/web/public/locales/es/objects.json index 0fd02208a..fe4d16915 100644 --- a/web/public/locales/es/objects.json +++ b/web/public/locales/es/objects.json @@ -47,7 +47,7 @@ "carrot": "Zanahoria", "hot_dog": "Perrito caliente", "pizza": "Pizza", - "donut": "Donut", + "donut": "Rosquilla", "chair": "Silla", "couch": "Sofá", "potted_plant": "Planta en maceta", diff --git a/web/public/locales/es/views/classificationModel.json b/web/public/locales/es/views/classificationModel.json index ee6fc5ed1..0f5ec539b 100644 --- a/web/public/locales/es/views/classificationModel.json +++ b/web/public/locales/es/views/classificationModel.json @@ -12,12 +12,12 @@ }, "toast": { "success": { - "deletedCategory_one": "Clase Borrada", - "deletedCategory_many": "", - "deletedCategory_other": "", - "deletedImage_one": "Imágenes Borradas", - "deletedImage_many": "", - "deletedImage_other": "", + "deletedCategory_one": "Se eliminó {{count}} clase", + "deletedCategory_many": "Se eliminaron {{count}} clases", + "deletedCategory_other": "Se eliminaron {{count}} clases", + "deletedImage_one": "Se eliminó {{count}} imagen", + "deletedImage_many": "Se eliminaron {{count}} imágenes", + "deletedImage_other": "Se eliminaron {{count}} imágenes", "deletedModel_one": "Borrado con éxito {{count}} modelo", "deletedModel_many": "Borrados con éxito {{count}} modelos", "deletedModel_other": "Borrados con éxito {{count}} modelos", @@ -68,7 +68,7 @@ "details": { "scoreInfo": "La puntuación representa la confianza media de clasificación en todas las detecciones de este objeto.", "unknown": "Desconocido", - "none": "Ninguna" + "none": "Ninguno" }, "categorizeImage": "Clasificar Imagen", "menu": { diff --git a/web/public/locales/es/views/exports.json b/web/public/locales/es/views/exports.json index 1099d45c8..cc2306da0 100644 --- a/web/public/locales/es/views/exports.json +++ b/web/public/locales/es/views/exports.json @@ -22,17 +22,26 @@ "downloadVideo": "Descargar video", "editName": "Editar nombre", "deleteExport": "Eliminar exportación", - "assignToCase": "Añadir al caso" + "assignToCase": "Añadir al caso", + "removeFromCase": "Remover del contenedor" }, "headings": { "cases": "Casos", - "uncategorizedExports": "Exportaciones sin categorizar" + "uncategorizedExports": "Exportaciones sin Categorizar" }, "caseDialog": { "title": "Añadir al caso", "newCaseOption": "Crear nuevo caso", "nameLabel": "Nombre del caso", "description": "Elige un caso existente o crea uno nuevo.", - "selectLabel": "Caso" + "selectLabel": "Caso", + "descriptionLabel": "Descripción" + }, + "toolbar": { + "addExport": "Añadir Exportación" + }, + "deleteCase": { + "label": "Eliminar caso", + "desc": "¿Estás seguro de que quieres eliminar {{caseName}}?" } } diff --git a/web/public/locales/es/views/live.json b/web/public/locales/es/views/live.json index fa473384a..4bc98b5cb 100644 --- a/web/public/locales/es/views/live.json +++ b/web/public/locales/es/views/live.json @@ -17,7 +17,7 @@ "label": "Haz clic en el marco para centrar la cámara", "enable": "Habilitar clic para mover", "disable": "Deshabilitar clic para mover", - "enableWithZoom": "Activar clic para mover / arrastrar para hacer zoom" + "enableWithZoom": "Habilitar clic para mover / arrastrar para aumentar" }, "up": { "label": "Mover la cámara PTZ hacia arriba" diff --git a/web/public/locales/es/views/settings.json b/web/public/locales/es/views/settings.json index c6157a750..075b7131f 100644 --- a/web/public/locales/es/views/settings.json +++ b/web/public/locales/es/views/settings.json @@ -21,7 +21,7 @@ "menu": { "cameras": "Configuración de Cámara", "debug": "Depuración", - "ui": "Interfaz de usuario", + "ui": "Interfaz de Usuario", "classification": "Clasificación", "motionTuner": "Ajuste de movimiento", "masksAndZones": "Máscaras / Zonas", @@ -35,7 +35,22 @@ "cameraReview": "Revisar", "general": "General", "globalConfig": "Configuración Global", - "system": "Sistema" + "system": "Sistema", + "integrations": "Integraciones", + "uiSettings": "Configuración de Interfaz de Usuario", + "profiles": "Perfiles", + "globalDetect": "Detección de Objetos", + "globalRecording": "Grabación", + "globalSnapshots": "Instantáneas", + "globalFfmpeg": "FFmpeg", + "globalMotion": "Detección de Movimiento", + "globalObjects": "Objetos", + "globalReview": "Revisión", + "globalAudioEvents": "Eventos de Audio", + "globalLivePlayback": "Reproducción en Vivo", + "globalTimestampStyle": "Estilo de Marca de Tiempo", + "systemDatabase": "Base de Datos", + "systemAuthentication": "Autenticación" }, "dialog": { "unsavedChanges": { @@ -353,6 +368,9 @@ "allObjects": "Todos los objetos", "toast": { "success": "La zona ({{zoneName}}) ha sido guardada." + }, + "enabled": { + "description": "Indica si esta zona está activa y habilitada en la configuración. Si está deshabilitado, no puede ser habilitado por MQTT. Las zonas deshabilitadas se ignoran durante la ejecución." } }, "toast": { @@ -697,7 +715,7 @@ "cleanCopySnapshots": "clean_copy Instantáneas" }, "desc": "Enviar a Frigate+ requiere que tanto las capturas instantáneas como las capturas clean_copy estén habilitadas en tu configuración.", - "cleanCopyWarning": "Algunas cámaras tienen las instantáneas habilitadas pero tienen la copia limpia desactivada. Necesitas habilitar clean_copy en tu configuración de instantáneas para poder enviar imágenes de estas cámaras a Frigate+." + "cleanCopyWarning": "Algunas cámaras tienen las instantáneas deshabilitadas" }, "modelInfo": { "title": "Información del modelo", @@ -722,7 +740,8 @@ "error": "No se pudieron guardar los cambios en la configuración: {{errorMessage}}" }, "restart_required": "Es necesario reiniciar (se ha cambiado el modelo Frigate+)", - "unsavedChanges": "Cambios en la configuración de Frigate+ no guardados" + "unsavedChanges": "Cambios en la configuración de Frigate+ no guardados", + "description": "Frigate+ es un servicio de suscripción que proporciona acceso a funciones y capacidades adicionales para su instancia de Frigate, incluida la posibilidad de utilizar modelos de detección de objetos personalizados entrenados con sus propios datos. Puede gestionar la configuración de sus modelos de Frigate+ aquí." }, "enrichments": { "title": "Configuración de Enriquecimientos", @@ -1172,7 +1191,8 @@ "backToSettings": "Volver a configuración de la cámara", "streams": { "title": "Habilitar/deshabilitar cámaras", - "desc": "Desactiva temporalmente una cámara hasta que Frigate se reinicie. Desactivar una cámara detiene por completo el procesamiento de las transmisiones de Frigate. La detección, la grabación y la depuración no estarán disponibles.
Nota: Esto no desactiva las retransmisiones de go2rtc." + "desc": "Desactiva temporalmente una cámara hasta que Frigate se reinicie. Desactivar una cámara detiene por completo el procesamiento de las transmisiones de Frigate. La detección, la grabación y la depuración no estarán disponibles.
Nota: Esto no desactiva las retransmisiones de go2rtc.", + "enableDesc": "Deshabilita temporalmente una cámara habilitada hasta que Frigate se reinicie. Deshabilitar una cámara detiene por completo el procesamiento de las transmisiones de esa cámara por parte de Frigate. La detección, la grabación y la depuración no estarán disponibles.
Nota: Esto no deshabilita las retransmisiones de go2rtc." }, "cameraConfig": { "add": "Añadir cámara", @@ -1202,6 +1222,9 @@ "toast": { "success": "Cámara {{cameraName}} guardada correctamente" } + }, + "deleteCameraDialog": { + "description": "Eliminar una cámara borrará permanentemente todas las grabaciones, los objetos rastreados y la configuración de esa cámara. Es posible que sea necesario eliminar manualmente cualquier transmisión go2rtc asociada a esta cámara." } }, "cameraReview": { @@ -1253,12 +1276,133 @@ "maintenance": { "sync": { "verboseDesc": "Escribe una lista completa de archivos huérfanos en el disco para su revisión.", - "verbose": "Detallado" + "verbose": "Detallado", + "desc": "Frigate limpiará periódicamente los archivos multimedia según un cronograma regular, de acuerdo con su configuración de retención. Es normal ver algunos archivos huérfanos mientras Frigate se ejecuta. Utilice esta función para eliminar del disco los archivos multimedia huérfanos que ya no se referencian en la base de datos.", + "forceDesc": "Omitir el umbral de seguridad y completar la sincronización incluso si se eliminara más del 50% de los archivos." + }, + "regionGrid": { + "clearConfirmDesc": "No se recomienda borrar la cuadrícula de la región a menos que haya cambiado recientemente el tamaño del modelo de su detector o la posición física de su cámara y esté experimentando problemas de seguimiento de objetos. La cuadrícula se reconstruirá automáticamente con el tiempo a medida que se realice el seguimiento de los objetos. Es necesario reiniciar Frigate para que los cambios surtan efecto.", + "desc": "La cuadrícula de regiones es una optimización que aprende dónde suelen aparecer los objetos de diferentes tamaños en el campo de visión de cada cámara. Frigate utiliza estos datos para dimensionar de forma eficiente las regiones de detección. La cuadrícula se construye automáticamente a lo largo del tiempo a partir de los datos de los objetos rastreados." } }, "configForm": { "camera": { - "noCameras": "No hay cámaras disponibles" + "noCameras": "No hay cámaras disponibles", + "description": "Estos ajustes se aplican únicamente a esta cámara y anulan los ajustes globales." + }, + "genaiModel": { + "noModels": "No hay modelos disponibles" + }, + "global": { + "description": "Estos ajustes se aplican a todas las cámaras, a menos que se anulen en los ajustes específicos de cada cámara." + } + }, + "globalConfig": { + "title": "Configuración global", + "description": "Configura los ajustes globales que se aplican a todas las cámaras, a menos que se sobrescriban.", + "toast": { + "success": "Ajustes globales guardados con éxito", + "error": "Error al guardar los ajustes globales", + "validationError": "Error de validación" + } + }, + "cameraConfig": { + "title": "Configuración de cámara", + "description": "Configura los ajustes de cámaras individuales. Estos ajustes sobrescriben los valores globales predeterminados.", + "overriddenBadge": "Sobrescrito", + "resetToGlobal": "Restablecer al valor global", + "toast": { + "success": "Ajustes de cámara guardados con éxito", + "error": "Error al guardar los ajustes de cámara" + } + }, + "toast": { + "success": "Ajustes guardados con éxito", + "applied": "Ajustes aplicados con éxito", + "successRestartRequired": "Ajustes guardados con éxito. Reinicia Frigate para aplicar los cambios.", + "error": "Error al guardar los ajustes", + "validationError": "Error de validación: {{message}}", + "resetSuccess": "Restablecido a los valores globales predeterminados", + "resetError": "Error al restablecer los ajustes", + "saveAllSuccess_one": "Se ha guardado {{count}} sección con éxito.", + "saveAllSuccess_many": "Se han guardado las {{count}} secciones con éxito.", + "saveAllSuccess_other": "Se han guardado {{count}} secciones con éxito.", + "saveAllPartial_one": "Se ha guardado {{successCount}} de {{totalCount}} sección. {{failCount}} ha fallado.", + "saveAllPartial_many": "Se han guardado {{successCount}} de {{totalCount}} secciones. {{failCount}} han fallado.", + "saveAllPartial_other": "Se han guardado {{successCount}} de {{totalCount}} secciones. {{failCount}} han fallado.", + "saveAllFailure": "Error al guardar todas las secciones." + }, + "profiles": { + "title": "Perfiles", + "activeProfile": "Perfil activo", + "noActiveProfile": "Sin perfil activo", + "active": "Activo", + "activated": "Perfil '{{profile}}' activado", + "activateFailed": "Error al establecer el perfil", + "deactivated": "Perfil desactivado", + "noProfiles": "No hay perfiles definidos.", + "noOverrides": "Sin sobrescripciones", + "cameraCount_one": "{{count}} cámara", + "cameraCount_many": "{{count}} de cámaras", + "cameraCount_other": "{{count}} cámaras", + "columnCamera": "Cámara", + "columnOverrides": "Sobrescripciones del perfil", + "baseConfig": "Configuración base", + "addProfile": "Añadir perfil", + "newProfile": "Nuevo perfil", + "profileNamePlaceholder": "ej. Armado, Fuera de casa, Modo noche", + "friendlyNameLabel": "Nombre del perfil", + "profileIdLabel": "ID del perfil", + "profileIdDescription": "Identificador interno utilizado en la configuración y automatizaciones", + "nameInvalid": "Solo se permiten letras minúsculas, números y guiones bajos", + "nameDuplicate": "Ya existe un perfil con este nombre", + "error": { + "mustBeAtLeastTwoCharacters": "Debe tener al menos 2 caracteres", + "mustNotContainPeriod": "No debe contener puntos", + "alreadyExists": "Ya existe un perfil con este ID" + }, + "renameProfile": "Renombrar perfil", + "renameSuccess": "Perfil renombrado a '{{profile}}'", + "enabledDescription": "Los perfiles están habilitados. Cree un nuevo perfil a continuación, navegue a una sección de configuración de cámara para realizar sus cambios y guarde para que estos surtan efecto.", + "disabledDescription": "Los perfiles le permiten definir conjuntos con nombre de anulaciones de configuración de la cámara (por ejemplo: armado, fuera, noche) que pueden activarse bajo demanda." + }, + "go2rtcStreams": { + "renameStreamDesc": "Introduce un nuevo nombre para esta transmisión. Cambiar el nombre de una transmisión puede provocar fallos en las cámaras u otras transmisiones que hagan referencia a ella por su nombre.", + "addStreamDesc": "Introduce un nombre para la nueva transmisión. Este nombre se utilizará para hacer referencia a la transmisión en la configuración de su cámara.", + "description": "Gestione las configuraciones de transmisión de go2rtc para la retransmisión de cámaras. Cada transmisión tiene un nombre y una o más URL de origen.", + "deleteStreamConfirm": "¿Está seguro de que desea eliminar la transmisión \"{{streamName}}\"? Las cámaras que hagan referencia a esta transmisión podrían dejar de funcionar." + }, + "configMessages": { + "birdseye": { + "objectsModeDetectDisabled": "Birdseye está configurado en modo 'objects', pero la detección de objetos está desactivada para esta cámara. La cámara no aparecerá en Birdseye." + }, + "lpr": { + "globalDisabled": "El reconocimiento de matrículas no está habilitado a nivel global. Habilítelo en la configuración global para que funcione el reconocimiento de matrículas a nivel de cámara." + }, + "audio": { + "noAudioRole": "Ninguna transmisión tiene definido el rol de audio. Debe habilitar el rol de audio para que funcione la detección de audio." + }, + "faceRecognition": { + "personNotTracked": "El reconocimiento facial requiere que se realice el seguimiento del objeto 'person'. Asegúrese de que 'person' se encuentre en la lista de seguimiento de objetos." + }, + "audioTranscription": { + "audioDetectionDisabled": "La detección de audio no está habilitada para esta cámara. La transcripción de audio requiere que la detección de audio esté activa." + }, + "snapshots": { + "detectDisabled": "La detección de objetos está desactivada. Las instantáneas se generan a partir de los objetos rastreados y no se crearán." + }, + "detectors": { + "mixedTypes": "Todos los detectores deben ser del mismo tipo. Retire los detectores existentes para utilizar un tipo diferente." + }, + "review": { + "detectDisabled": "La detección de objetos está desactivada. Los elementos de revisión requieren objetos detectados para categorizar las alertas y detecciones." + } + }, + "resetToDefaultDescription": "Esto restablecerá todos los ajustes de esta sección a sus valores predeterminados. Esta acción no se puede deshacer.", + "resetToGlobalDescription": "Esto restablecerá la configuración de esta sección a los valores predeterminados globales. Esta acción no se puede deshacer.", + "detectionModel": { + "plusActive": { + "description": "Esta instancia está ejecutando un modelo de Frigate+. Seleccione o cambie su modelo en la configuración de Frigate+." } } } diff --git a/web/public/locales/es/views/system.json b/web/public/locales/es/views/system.json index 6c211a77c..e0a0157a1 100644 --- a/web/public/locales/es/views/system.json +++ b/web/public/locales/es/views/system.json @@ -45,10 +45,17 @@ "reviews": "Revisiones", "face_recognition": "Reconocimiento facial", "camera_activity": "Actividad de cámara", - "classification": "Clasificación" + "classification": "Clasificación", + "system": "Sistema", + "camera": "Cámara", + "all_cameras": "Todas las cámaras", + "cameras_count_one": "{{count}} Cámara", + "cameras_count_other": "{{count}} Cámaras", + "lpr": "Reconocimiento de matriculas" }, "count_other": "{{count}} mensajes", - "count_one": "{{count}} mensaje" + "count_one": "{{count}} mensaje", + "empty": "No se han capturado mensaje aún" } }, "title": "Sistema", @@ -99,7 +106,10 @@ "title": "Aviso de estadísticas Intel GPU", "message": "Estadísticas de GPU no disponibles", "description": "Este es un error conocido en las herramientas de informes de estadísticas de GPU de Intel (intel_gpu_top). El error se produce y muestra repetidamente un uso de GPU del 0 %, incluso cuando la aceleración de hardware y la detección de objetos se ejecutan correctamente en la (i)GPU. No se trata de un error de Frigate. Puede reiniciar el host para solucionar el problema temporalmente y confirmar que la GPU funciona correctamente. Esto no afecta al rendimiento." - } + }, + "npuTemperature": "Temperatura NPU", + "gpuCompute": "Cálculo GPU / Codificación", + "gpuTemperature": "Temperatura GPU" }, "otherProcesses": { "title": "Otros Procesos", @@ -136,7 +146,11 @@ }, "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." + "warning": "El tamaño actual de SHM de {{total}}MB es muy pequeño. Aumente al menos a {{min_shm}}MB.", + "frameLifetime": { + "title": "Tiempo de vida del fotograma", + "description": "Cada cámara tiene espacio en la memoria compartida para {{frames}} cuadros. Si la velocidad de cuadros de la cámara es alta, cada cuadro se guarda aproximadamente {{lifetime}} antes de ser sobreescrito." + } } }, "cameras": { @@ -174,7 +188,8 @@ "cameraDetect": "{{camName}} detectar", "cameraFramesPerSecond": "{{camName}} cuadros por segundo", "cameraDetectionsPerSecond": "{{camName}} detecciones por segundo", - "overallSkippedDetectionsPerSecond": "detecciones omitidas por segundo totales" + "overallSkippedDetectionsPerSecond": "detecciones omitidas por segundo totales", + "cameraGpu": "{{camName}} GPU" }, "toast": { "success": { @@ -183,6 +198,17 @@ "error": { "unableToProbeCamera": "No se pudo sondear la cámara: {{errorMessage}}" } + }, + "connectionQuality": { + "excellent": "Excelente", + "poor": "Debil", + "title": "Calidad de la conexión", + "fps": "Cuadros por segundo", + "expectedFps": "Cuadros por segundo esperados", + "reconnectsLastHour": "Reconexiones (última hora)", + "unusable": "No usable", + "fair": "Normal", + "stallsLastHour": "Bloqueos (última hora)" } }, "lastRefreshed": "Última actualización: ", @@ -221,6 +247,7 @@ "detectIsSlow": "{{detect}} es lento ({{speed}} ms)", "cameraIsOffline": "{{camera}} está desconectada", "detectIsVerySlow": "{{detect}} es muy lento ({{speed}} ms)", - "shmTooLow": "Asignación de /dev/shm ({{total}} MB) debe aumentarse al menos a {{min}} MB." + "shmTooLow": "Asignación de /dev/shm ({{total}} MB) debe aumentarse al menos a {{min}} MB.", + "debugReplayActive": "Sesión de depuración activa" } }