diff --git a/web/public/locales/es/audio.json b/web/public/locales/es/audio.json index 83061dfaac..b85627e769 100644 --- a/web/public/locales/es/audio.json +++ b/web/public/locales/es/audio.json @@ -48,7 +48,7 @@ "footsteps": "Pasos", "chewing": "Masticar", "biting": "Morder", - "gargling": "Hacer gárgaras", + "gargling": "Gargageo", "stomach_rumble": "Rugido de estómago", "burping": "Eructo", "finger_snapping": "Chasquido de dedos", @@ -62,7 +62,7 @@ "mantra": "Mantra", "fart": "Pedos", "snicker": "Risa maliciosa", - "yodeling": "Yodeling", + "yodeling": "Canto tirolés", "laughter": "Risa", "child_singing": "Canto infantil", "pant": "Jadeo", diff --git a/web/public/locales/es/common.json b/web/public/locales/es/common.json index 015102b3c2..76ee873879 100644 --- a/web/public/locales/es/common.json +++ b/web/public/locales/es/common.json @@ -263,7 +263,8 @@ "retry": "Reintentar", "expand": "Expandir", "collapse": "Colapsar", - "reload": "Recargar" + "reload": "Recargar", + "clear": "Borrar" }, "toast": { "save": { diff --git a/web/public/locales/es/components/dialog.json b/web/public/locales/es/components/dialog.json index b899419c0d..a8553f287d 100644 --- a/web/public/locales/es/components/dialog.json +++ b/web/public/locales/es/components/dialog.json @@ -131,16 +131,16 @@ "exportButton_other": "Exportar {{count}} revisiones", "exportingButton": "Exportando...", "toast": { - "started_one": "Se inició 1 exportación. Abriendo el caso ahora.", - "started_many": "Se iniciaron {{count}} exportaciones. Abriendo el caso ahora.", - "started_other": "Se iniciaron {{count}} exportaciones. Abriendo el caso ahora.", + "started_one": "Se inició 1 exportación.", + "started_many": "Se iniciaron {{count}} exportaciones.", + "started_other": "Se iniciaron {{count}} exportaciones.", "partial": "Se iniciaron {{successful}} de {{total}} exportaciones. Fallidas: {{failedItems}}", "failed": "No se pudieron iniciar {{total}} exportaciones. Fallidas: {{failedItems}}" } }, "stream": { "label": "Calidad", - "auto": "Auto", + "auto": "Automático", "main": "Original", "sub": "Bajo", "autoDesc": "Usa el stream princial y vuelve a la calidad baja del sub-stream si la principal no está disponible.", @@ -204,14 +204,14 @@ }, "genaiDescription": { "toast": { - "error": "Falló al pedir descripción: {{error}}" + "error": "Error al solicitar la descripción: {{error}}" } } }, "imagePicker": { - "selectImage": "Seleccione la miniatura de un objeto rastreado", + "selectImage": "Seleccionar la miniatura de un objeto rastreado", "search": { - "placeholder": "Búsqueda por etiqueta o sub-etiqueta..." + "placeholder": "Búsqueda por etiqueta o subetiqueta…" }, "noImages": "No se encontraron miniaturas para esta cámara", "unknownLabel": "Imagen de activación guardada" diff --git a/web/public/locales/es/config/cameras.json b/web/public/locales/es/config/cameras.json index 214f811944..ffa2824741 100644 --- a/web/public/locales/es/config/cameras.json +++ b/web/public/locales/es/config/cameras.json @@ -40,7 +40,11 @@ }, "num_threads": { "label": "Hilos de detección", - "description": "Número de hilos a usar para procesamiento de detección de audio." + "description": "Número de hilos a usar en el procesamiento de detección de audio." + }, + "labelmap": { + "label": "Personalización del mapa de etiquetas de audio", + "description": "Anula o reasigna entradas para fusionarlas con el mapa de etiquetas de audio estándar." } }, "friendly_name": { @@ -444,7 +448,7 @@ "label": "FPS de detección" }, "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.", + "description": "Número de detecciones consecutivas necesarias antes de crear un objeto rastreado. Aumente este valor para reducir las inicializaciones falsas. El valor predeterminado es fps dividido entre 2.", "label": "Fotogramas mínimos de inicialización" }, "height": { @@ -498,7 +502,8 @@ "description": "Milisegundos para desplazar las anotaciones de detección y alinear mejor los cuadros delimitadores de la línea de tiempo con las grabaciones; puede ser positivo o negativo." }, "scene": { - "label": "Detectar escena" + "label": "Detectar escena", + "description": "El entorno que enfoca esta cámara se utiliza para seleccionar cuál de los modelos configurados se ejecuta en ella. Las cámaras que se dejan en \"predeterminado\" ejecutan el modelo configurado con una escena \"predeterminada\"." } }, "record": { @@ -608,11 +613,46 @@ "days": { "label": "Días de retención", "description": "Días a retener las grabaciones." - } + }, + "label": "Retención continua de subflujo", + "description": "Número de días que se conservarán las grabaciones de subflujos independientemente de los objetos rastreados o del movimiento." }, "motion": { "days": { - "label": "Días de retención" + "label": "Días de retención", + "description": "Días de conservación de las grabaciones." + }, + "label": "Retención de movimiento del substream", + "description": "Número de días que se conservarán las grabaciones del substream activadas por movimiento." + }, + "label": "Grabación de subflujo", + "description": "Configuración para grabar una segunda transmisión de menor calidad.", + "enabled": { + "label": "Habilitar la grabación de subflujos", + "description": "Permite grabar una segunda transmisión de menor calidad para una reproducción con calidad adaptativa y una retención prolongada." + }, + "alerts": { + "label": "Retención de alertas del substream", + "description": "Configuración de conservación de las grabaciones de alertas del substream.", + "days": { + "label": "Días de conservación", + "description": "Número de días que se conservarán las grabaciones de eventos de detección." + }, + "mode": { + "label": "Modo de rentención", + "description": "Modo de conservación: all (guardar todos los segmentos), motion (guardar los segmentos con movimiento) o active_objects (guardar los segmentos con objetos activos)." + } + }, + "detections": { + "label": "Conservación de detecciones del substream", + "description": "Configuración de conservación de las grabaciones de detecciones del substream.", + "days": { + "label": "Días de retención", + "description": "Número de días que se conservarán las grabaciones de eventos de detección." + }, + "mode": { + "label": "Modo retención", + "description": "Modo de conservación: all (guardar todos los segmentos), motion (guardar los segmentos con movimiento) o active_objects (guardar los segmentos con objetos activos)." } } } @@ -647,6 +687,30 @@ "quality": { "label": "Calidad en directo", "description": "Calidad de codificación para el flujo jsmpeg (1 la más alta, 31 la más baja)." + }, + "transcode": { + "label": "Transmisiones transcodificadas", + "description": "Transmisiones en directo de menor calidad transcodificadas bajo demanda por go2rtc.", + "enabled": { + "label": "Habilitar transmisiones transcodificadas", + "description": "Agregar transmisiones en vivo de menor calidad que go2rtc transcodifica en tiempo real mientras alguien las está viendo." + }, + "source": { + "label": "Flujo de origen", + "description": "Transmisión go2rtc para transcodificar. Por defecto, se utiliza la primera transmisión en vivo." + }, + "qualities": { + "label": "Cualidad", + "description": "Se añade una transmisión transcodificada por cada nivel de calidad.", + "height": { + "label": "Altura", + "description": "La altura de salida se muestra en píxeles; el ancho conserva la relación de aspecto de la fuente." + }, + "bitrate": { + "label": "Tasa de bits", + "description": "Tasa de bits de vídeo objetivo y máxima en kbps." + } + } } }, "review": { @@ -737,6 +801,14 @@ "preferred_language": { "label": "Idioma preferido", "description": "Idioma preferido que se solicitará al proveedor de GenAI para las respuestas generadas." + }, + "frame_mode": { + "label": "Modo de fotogramas", + "description": "Cómo se presentan los fotogramas al modelo. ‘frames’ envía primero el prompt y, a continuación, los fotogramas, lo que resulta adecuado para modelos capaces de seguir bien una secuencia por sí mismos. ‘annotated_frames’ etiqueta cada fotograma e intercala notas obtenidas del seguimiento de objetos, lo que ayuda a los modelos que pueden perder el hilo de actividades que se repiten o cambian de dirección." + }, + "response_style": { + "label": "Estilo responsivo", + "description": "Estilo de redacción predefinido para las descripciones de revisión generadas. Los ajustes predefinidos modifican el tono y el nivel de detalle del título, el resumen y la descripción de la escena que se muestran al usuario; ‘default’ mantiene sin cambios el prompt integrado." } }, "label": "Revisión" @@ -753,7 +825,8 @@ "description": "Posición numérica que controla el orden de la cámara en el diseño de Birdseye." }, "modes": { - "label": "Tipos de actividad" + "label": "Tipos de actividad", + "description": "Tipos de actividades que incluyen cámaras en Birdseye." } }, "ffmpeg": { @@ -775,6 +848,10 @@ "record": { "label": "Argumentos de salida de grabación", "description": "Argumentos de salida predeterminados para los flujos con rol de grabación." + }, + "record_sub": { + "label": "Argumentos de salida del registro de subflujo", + "description": "Argumentos de salida para flujos de rol record_sub. Los argumentos de salida de registro se utilizan cuando esto no está configurado." } }, "description": "Entradas de flujo de la cámara y opciones de FFmpeg, incluida la ruta del binario, argumentos, 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 b75771e343..e54cac3046 100644 --- a/web/public/locales/es/config/global.json +++ b/web/public/locales/es/config/global.json @@ -55,9 +55,13 @@ }, "num_threads": { "label": "Hilos de detección", - "description": "Número de hilos a usar para procesamiento de detección de audio." + "description": "Número de hilos a usar en el procesamiento de detección de audio." }, - "description": "Ajustes para la detección de eventos basada en audio en todas las cámaras; se pueden sobrescribir por cámara." + "description": "Ajustes para la detección de eventos basada en audio en todas las cámaras; se pueden sobrescribir por cámara.", + "labelmap": { + "label": "Personalización del mapa de etiquetas de audio", + "description": "Anula o reasigna entradas para fusionarlas con el mapa de etiquetas de audio estándar." + } }, "auth": { "label": "Autenticación", @@ -103,7 +107,7 @@ "description": "Número de iteraciones PBKDF2-SHA256 que se utilizarán al generar el hash de las contraseñas de los usuarios." }, "roles": { - "label": "Asignaciones de roles", + "label": "Mapeo de roles", "description": "Asigna roles a listas de cámaras. Una lista vacía concede acceso a todas las cámaras para ese rol." } }, @@ -431,7 +435,7 @@ "description": "Carácter usado para separar varios valores proporcionados en las cabeceras del proxy." }, "default_role": { - "description": "Rol predeterminado asignado a los usuarios autenticados mediante proxy cuando no se aplica ninguna asignación de roles.", + "description": "Rol predeterminado asignado a los usuarios autenticados mediante proxy cuando no se aplica ningún mapeo de roles. Establézcalo en ‘none’ para denegar el acceso a los usuarios sin mapear.", "label": "Rol predeterminado" }, "description": "Configuración para integrar Frigate detrás de un proxy inverso que transmite encabezados de usuario autenticados.", @@ -511,12 +515,12 @@ "audio_transcription": { "description": "Configuración para la transcripción de audio en directo y de voz utilizada para eventos y subtítulos en directo.", "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.", + "description": "Código de idioma utilizado para la transcripción/traducción (por ejemplo, 'es' para español), o 'auto' para permitir que el modelo lo detecte automáticamente. Consulte https://whisper-api.com/docs/languages/ para ver los códigos de idioma compatibles.", "label": "Idioma de transcripción" }, "enabled": { "description": "Habilitar o deshabilitar la transcripción automática de audio para todas las cámaras; puede anularse por cámara.", - "label": "Habilitar transcripción de audio" + "label": "Habilitar la transcripción de audio" }, "label": "Transcripción de audio", "live_enabled": { @@ -659,7 +663,7 @@ "label": "FPS de detección" }, "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.", + "description": "Número de detecciones consecutivas necesarias antes de crear un objeto rastreado. Aumente este valor para reducir las inicializaciones falsas. El valor predeterminado es fps dividido entre 2.", "label": "Fotogramas mínimos de inicialización" }, "height": { @@ -713,7 +717,8 @@ "description": "Milisegundos para desplazar las anotaciones de detección y alinear mejor los cuadros delimitadores de la línea de tiempo con las grabaciones; puede ser positivo o negativo." }, "scene": { - "label": "Detectar escena" + "label": "Detectar escena", + "description": "El entorno que enfoca esta cámara se utiliza para seleccionar cuál de los modelos configurados se ejecuta en ella. Las cámaras que se dejan en \"predeterminado\" ejecutan el modelo configurado con una escena \"predeterminada\"." } }, "record": { @@ -823,11 +828,46 @@ "days": { "label": "Días de retención", "description": "Días a retener las grabaciones." - } + }, + "label": "Retención continua de subflujo", + "description": "Número de días que se conservarán las grabaciones de subflujos independientemente de los objetos rastreados o del movimiento." }, "motion": { "days": { - "label": "Días de retención" + "label": "Días de retención", + "description": "Días de conservación de las grabaciones." + }, + "label": "Retención de movimiento del substream", + "description": "Número de días que se conservarán las grabaciones del substream activadas por movimiento." + }, + "label": "Grabación de subflujo", + "description": "Configuración para grabar una segunda transmisión de menor calidad.", + "enabled": { + "label": "Habilitar la grabación de subflujos", + "description": "Permite grabar una segunda transmisión de menor calidad para una reproducción con calidad adaptativa y una retención prolongada." + }, + "alerts": { + "label": "Retención de alertas del substream", + "description": "Configuración de conservación de las grabaciones de alertas del substream.", + "days": { + "label": "Días de conservación", + "description": "Número de días que se conservarán las grabaciones de eventos de detección." + }, + "mode": { + "label": "Modo de rentención", + "description": "Modo de conservación: all (guardar todos los segmentos), motion (guardar los segmentos con movimiento) o active_objects (guardar los segmentos con objetos activos)." + } + }, + "detections": { + "label": "Conservación de detecciones del substream", + "description": "Configuración de conservación de las grabaciones de detecciones del substream.", + "days": { + "label": "Días de retención", + "description": "Número de días que se conservarán las grabaciones de eventos de detección." + }, + "mode": { + "label": "Modo retención", + "description": "Modo de conservación: all (guardar todos los segmentos), motion (guardar los segmentos con movimiento) o active_objects (guardar los segmentos con objetos activos)." } } } @@ -862,6 +902,30 @@ "quality": { "label": "Calidad en directo", "description": "Calidad de codificación para el flujo jsmpeg (1 la más alta, 31 la más baja)." + }, + "transcode": { + "label": "Transmisiones transcodificadas", + "description": "Transmisiones en directo de menor calidad transcodificadas bajo demanda por go2rtc.", + "enabled": { + "label": "Habilitar transmisiones transcodificadas", + "description": "Agregar transmisiones en vivo de menor calidad que go2rtc transcodifica en tiempo real mientras alguien las está viendo." + }, + "source": { + "label": "Flujo de origen", + "description": "Transmisión go2rtc para transcodificar. Por defecto, se utiliza la primera transmisión en vivo." + }, + "qualities": { + "label": "Cualidad", + "description": "Se añade una transmisión transcodificada por cada nivel de calidad.", + "height": { + "label": "Altura", + "description": "La altura de salida se muestra en píxeles; el ancho conserva la relación de aspecto de la fuente." + }, + "bitrate": { + "label": "Tasa de bits", + "description": "Tasa de bits de vídeo objetivo y máxima en kbps." + } + } } }, "semantic_search": { @@ -1003,6 +1067,14 @@ "preferred_language": { "label": "Idioma preferido", "description": "Idioma preferido que se solicitará al proveedor de GenAI para las respuestas generadas." + }, + "frame_mode": { + "label": "Modo de fotogramas", + "description": "Cómo se presentan los fotogramas al modelo. ‘frames’ envía primero el prompt y, a continuación, los fotogramas, lo que resulta adecuado para modelos capaces de seguir bien una secuencia por sí mismos. ‘annotated_frames’ etiqueta cada fotograma e intercala notas obtenidas del seguimiento de objetos, lo que ayuda a los modelos que pueden perder el hilo de actividades que se repiten o cambian de dirección." + }, + "response_style": { + "label": "Estilo responsivo", + "description": "Estilo de redacción predefinido para las descripciones de revisión generadas. Los ajustes predefinidos modifican el tono y el nivel de detalle del título, el resumen y la descripción de la escena que se muestran al usuario; ‘default’ mantiene sin cambios el prompt integrado." } }, "label": "Revisión", @@ -1056,7 +1128,8 @@ "description": "Fotogramas por segundo para reenviar el último fotograma compuesto de Birdseye en reposo; establécelo en 0 para deshabilitarlo." }, "modes": { - "label": "Tipos de actividad" + "label": "Tipos de actividad", + "description": "Tipos de actividades que incluyen cámaras en Birdseye." } }, "ffmpeg": { @@ -1078,6 +1151,10 @@ "record": { "label": "Argumentos de salida de grabación", "description": "Argumentos de salida predeterminados para los flujos con rol de grabación." + }, + "record_sub": { + "label": "Argumentos de salida del registro de subflujo", + "description": "Argumentos de salida para flujos de rol record_sub. Los argumentos de salida de registro se utilizan cuando esto no está configurado." } }, "description": "Configuración de FFmpeg, incluyendo la ruta del binario, argumentos, opciones de aceleración por hardware y argumentos de salida por rol.", @@ -1152,7 +1229,7 @@ }, "roles": { "label": "Roles", - "description": "Roles de GenAI (chat, descriptions, embeddings); un proveedor por rol." + "description": "Roles de GenAI (chat, descriptions, embeddings, transcribe); un proveedor por rol. De forma predeterminada, solo se conceden los roles de chat, descriptions y embeddings; el rol de transcribe debe indicarse explícitamente." }, "provider_options": { "label": "Opciones del proveedor", diff --git a/web/public/locales/es/views/classificationModel.json b/web/public/locales/es/views/classificationModel.json index badb9653da..7d43459ed8 100644 --- a/web/public/locales/es/views/classificationModel.json +++ b/web/public/locales/es/views/classificationModel.json @@ -36,7 +36,7 @@ "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}}", - "renameCategoryFailed": "Fallo al renombrar la clase:{{errorMessage}}", + "renameCategoryFailed": "Error al cambiar el nombre de la clase: {{errorMessage}}", "reclassifyFailed": "Error al reclasificar la imagen: {{errorMessage}}" } }, @@ -79,7 +79,7 @@ "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 promedio de la clasificación en todas las detecciones de este objeto.", + "scoreInfo": "La puntuación representa el nivel medio de confianza de la clasificación en todas las detecciones de este objeto.", "unknown": "Desconocido", "none": "Ninguno" }, diff --git a/web/public/locales/es/views/explore.json b/web/public/locales/es/views/explore.json index ec7e0d785b..337e58db84 100644 --- a/web/public/locales/es/views/explore.json +++ b/web/public/locales/es/views/explore.json @@ -155,8 +155,8 @@ "aria": "Solicitar transcripción de audio" }, "addTrigger": { - "label": "Añadir disparador", - "aria": "Añadir disparador para este objeto rastreado" + "label": "Agregar disparador", + "aria": "Agregar disparador para este objeto rastreado" }, "downloadCleanSnapshot": { "label": "Descargue instantánea limpia", @@ -221,8 +221,8 @@ "count": "{{first}} de {{second}}", "lifecycleItemDesc": { "visible": "{{label}} detectado", - "active": "{{label}} está activo", - "stationary": "{{label}} se volvió estacionario", + "active": "{{label}} se activó", + "stationary": "{{label}} quedó inmóvil", "attribute": { "faceOrLicense_plate": "{{attribute}} detectado para {{label}}", "other": "{{label}} reconocido como {{attribute}}" @@ -239,7 +239,7 @@ "topScore": "Puntuación más alta", "toggleAdvancedScores": "Alternar puntuaciones avanzadas" }, - "entered_zone": "{{label}} ha entrado en {{zones}}" + "entered_zone": "{{label}} entro en {{zones}}" }, "trackedPoint": "Punto rastreado", "annotationSettings": { diff --git a/web/public/locales/es/views/exports.json b/web/public/locales/es/views/exports.json index 0aec0eeca7..1249449f70 100644 --- a/web/public/locales/es/views/exports.json +++ b/web/public/locales/es/views/exports.json @@ -14,7 +14,7 @@ "error": { "renameExportFailed": "No se pudo renombrar la exportación: {{errorMessage}}", "assignCaseFailed": "No se pudo actualizar la asignación al caso: {{errorMessage}}", - "caseSaveFailed": "No se pudo guardar el caso: {{errorMessage}}", + "caseSaveFailed": "Error al guardar el caso: {{errorMessage}}", "caseDeleteFailed": "No se pudo eliminar el caso: {{errorMessage}}" } }, @@ -28,7 +28,7 @@ "removeFromCase": "Eliminar del caso" }, "headings": { - "cases": "Casos", + "cases": "casos", "uncategorizedExports": "Exportaciones sin categorización" }, "caseDialog": { @@ -42,11 +42,11 @@ "toolbar": { "addExport": "Agregar exportación", "newCase": "Nuevo caso", - "editCase": "Editar caso", - "deleteCase": "Eliminar caso" + "editCase": "Editar Caso", + "deleteCase": "Eliminar Caso" }, "deleteCase": { - "label": "Eliminar caso", + "label": "Eliminar Caso", "desc": "¿Estás seguro de que quieres eliminar {{caseName}}?", "descKeepExports": "Las exportaciones seguirán disponibles como exportaciones sin categoría.", "descDeleteExports": "Todas las exportaciones de este caso se eliminarán de forma permanente.",