From 10911ab551ab8a522e4c71331f9f2aee0596052a Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Sun, 7 Jun 2026 05:19:20 +0200 Subject: [PATCH] Translated using Weblate (Spanish) Currently translated at 100.0% (1276 of 1276 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (50 of 50 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1272 of 1272 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (86 of 86 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (809 of 809 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (145 of 145 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (101 of 101 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (129 of 129 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (129 of 129 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (475 of 475 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (10 of 10 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (62 of 62 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (807 of 807 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (473 of 473 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1268 of 1268 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (61 of 61 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1263 of 1263 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1263 of 1263 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (239 of 239 strings) Translated using Weblate (Spanish) Currently translated at 99.2% (1253 of 1263 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (100 of 100 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1186 of 1186 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (26 of 26 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1183 of 1183 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (23 of 23 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1181 of 1181 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (54 of 54 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (238 of 238 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (1176 of 1176 strings) Co-authored-by: Hosted Weblate Co-authored-by: Saninn Salas Diaz Co-authored-by: ThatStella7922 Co-authored-by: jjavin Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-validation/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-chat/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-configeditor/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/es/ Translation: Frigate NVR/Config - Cameras Translation: Frigate NVR/Config - Global Translation: Frigate NVR/Config - Validation Translation: Frigate NVR/common Translation: Frigate NVR/components-camera Translation: Frigate NVR/components-dialog Translation: Frigate NVR/components-player Translation: Frigate NVR/views-chat Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-configeditor Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-exports Translation: Frigate NVR/views-live Translation: Frigate NVR/views-motionSearch Translation: Frigate NVR/views-settings --- web/public/locales/es/common.json | 8 +- web/public/locales/es/components/camera.json | 5 +- web/public/locales/es/components/dialog.json | 4 +- web/public/locales/es/components/player.json | 3 +- web/public/locales/es/config/cameras.json | 24 ++- web/public/locales/es/config/global.json | 20 +- web/public/locales/es/config/validation.json | 3 + web/public/locales/es/views/chat.json | 3 + .../locales/es/views/classificationModel.json | 8 +- web/public/locales/es/views/configEditor.json | 2 +- web/public/locales/es/views/explore.json | 6 +- web/public/locales/es/views/exports.json | 8 +- web/public/locales/es/views/live.json | 7 +- web/public/locales/es/views/motionSearch.json | 15 +- web/public/locales/es/views/settings.json | 185 ++++++++++++++++-- 15 files changed, 243 insertions(+), 58 deletions(-) diff --git a/web/public/locales/es/common.json b/web/public/locales/es/common.json index b8b44f2c12..a1957c06bb 100644 --- a/web/public/locales/es/common.json +++ b/web/public/locales/es/common.json @@ -155,7 +155,8 @@ "id": "Bahasa Indonesia (Indonesio)", "ur": "اردو (Urdu)", "hr": "Hrvatski (Croata)", - "bs": "Bosanski (Bosnio)" + "bs": "Bosanski (Bosnio)", + "zhHant": "繁體中文 (Chino Tradicional)" }, "appearance": "Apariencia", "darkMode": { @@ -333,5 +334,8 @@ "internalID": "La ID interna que usa Frigate en la configuración y en la base de datos" }, "no_items": "No hay elementos", - "validation_errors": "Errores de validación" + "validation_errors": "Errores de validación", + "credentialField": { + "savedPlaceholder": "Guardado — déjalo en blanco para mantener el actual" + } } diff --git a/web/public/locales/es/components/camera.json b/web/public/locales/es/components/camera.json index 05bca27427..1ce25fa472 100644 --- a/web/public/locales/es/components/camera.json +++ b/web/public/locales/es/components/camera.json @@ -68,7 +68,10 @@ "stream": "Transmitir" }, "birdseye": "Vista Aérea" - } + }, + "showAll": "Mostrar todos los grupos de cámaras", + "showLess": "Mostrar menos", + "editGroups": "Editar grupos de cámaras" }, "debug": { "options": { diff --git a/web/public/locales/es/components/dialog.json b/web/public/locales/es/components/dialog.json index 07d7862b66..c52e427bb6 100644 --- a/web/public/locales/es/components/dialog.json +++ b/web/public/locales/es/components/dialog.json @@ -71,7 +71,7 @@ "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 página exportaciones.", - "view": "Ver", + "view": "Vista", "queued": "Exportación en cola. Consulta el progreso en la página de exportaciones.", "batchSuccess_one": "Se inició 1 exportación. Abriendo el caso ahora.", "batchSuccess_many": "Se iniciaron {{count}} exportaciones. Abriendo el caso ahora.", @@ -101,7 +101,7 @@ }, "queueing": "Poniendo la exportación en cola…", "tabs": { - "export": "Cámara única", + "export": "Una Cámara", "multiCamera": "Multicámara" }, "multiCamera": { diff --git a/web/public/locales/es/components/player.json b/web/public/locales/es/components/player.json index c277d9a5a2..e650046466 100644 --- a/web/public/locales/es/components/player.json +++ b/web/public/locales/es/components/player.json @@ -48,5 +48,6 @@ } }, "livePlayerRequiredIOSVersion": "Se requiere iOS 17.1 o superior para este tipo de transmisión en vivo.", - "noRecordingsFoundForThisTime": "No se encontraron grabaciones para este momento" + "noRecordingsFoundForThisTime": "No se encontraron grabaciones para este momento", + "cameraOff": "La cámara está apagada" } diff --git a/web/public/locales/es/config/cameras.json b/web/public/locales/es/config/cameras.json index ae0b7437fd..aa1f09becc 100644 --- a/web/public/locales/es/config/cameras.json +++ b/web/public/locales/es/config/cameras.json @@ -1,6 +1,6 @@ { "name": { - "label": "Nombre de cámara", + "label": "Nombre de Cámara", "description": "El nombre de la cámara es necesario" }, "enabled": { @@ -28,19 +28,19 @@ }, "filters": { "label": "Filtros de audio", - "description": "Ajustes de filtrado por tipo de audio, como umbrales de confianza utilizados para reducir los falsos positivos.", + "description": "Ajustes de filtro por tipo de audio, como umbrales de confianza utilizados para reducir los falsos positivos.", "threshold": { "label": "Confianza mínima de audio", "description": "Umbral mínimo de confianza para que se cuente el evento de audio." } }, "enabled_in_config": { - "description": "Indica si la detección de audio estaba habilitada originalmente en el archivo de configuración estática.", - "label": "Estado original del audio" + "description": "Indica si la detección de audio estaba habilitada originalmente en el archivo de configuración estático.", + "label": "Estado de audio original" }, "num_threads": { "label": "Hilos de detección", - "description": "Número de hilos que se utilizarán para el procesamiento de la detección de audio." + "description": "Número de hilos a usar para procesamiento de detección de audio." } }, "friendly_name": { @@ -349,10 +349,10 @@ } }, "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.", + "description": "Configuración para la transcripción de audio en directo y de voz utilizada para eventos y subtítulos en directo.", "enabled": { "label": "Habilitar transcripción", - "description": "Activar o desactivar la transcripción de eventos de audio activados manualmente." + "description": "Habilitar o deshabilitar la transcripción de eventos de audio activados manualmente." }, "label": "Transcripción de audio", "enabled_in_config": { @@ -360,7 +360,7 @@ }, "live_enabled": { "label": "Transcripción en directo", - "description": "Activar la transcripción en directo del audio a medida que se recibe." + "description": "Habilitar la transcripción en directo del audio a medida que se recibe." } }, "motion": { @@ -608,6 +608,10 @@ "order": { "label": "Orden en la interfaz", "description": "Orden numérico usado para ordenar la cámara en la interfaz (panel predeterminado y listas); los números más altos aparecen más tarde." + }, + "review": { + "label": "Mostrar en Revisión", + "description": "Activa o desactiva si esta cámara es visible en Revisión (la página de Revisión y su filtro de cámaras, la revisión de movimiento y la vista de historial)." } }, "live": { @@ -720,7 +724,7 @@ }, "birdseye": { "description": "Configuración para la vista compuesta Birdseye, que combina las transmisiones de múltiples cámaras en una sola vista.", - "label": "Vista general", + "label": "Birdseye", "enabled": { "label": "Habilitar Birdseye", "description": "Habilita o deshabilita la función de vista Birdseye." @@ -896,7 +900,7 @@ }, "timestamp_style": { "label": "Estilo de marca de tiempo", - "description": "Opciones de estilo para marcas de tiempo integradas aplicadas a grabaciones e instantáneas.", + "description": "Opciones de estilo para las marcas de tiempo aplicadas a las instantáneas y a la vista de depuración.", "position": { "label": "Posición de marca de tiempo", "description": "Posición de la marca de tiempo en la imagen (tl/tr/bl/br)." diff --git a/web/public/locales/es/config/global.json b/web/public/locales/es/config/global.json index a6931ba473..ee7210f359 100644 --- a/web/public/locales/es/config/global.json +++ b/web/public/locales/es/config/global.json @@ -43,19 +43,19 @@ }, "filters": { "label": "Filtros de audio", - "description": "Ajustes de filtrado por tipo de audio, como umbrales de confianza utilizados para reducir los falsos positivos.", + "description": "Ajustes de filtro por tipo de audio, como umbrales de confianza utilizados para reducir los falsos positivos.", "threshold": { "label": "Confianza mínima de audio", "description": "Umbral mínimo de confianza para que se cuente el evento de audio." } }, "enabled_in_config": { - "description": "Indica si la detección de audio estaba habilitada originalmente en el archivo de configuración estática.", - "label": "Estado original del audio" + "description": "Indica si la detección de audio estaba habilitada originalmente en el archivo de configuración estático.", + "label": "Estado de audio original" }, "num_threads": { "label": "Hilos de detección", - "description": "Número de hilos que se utilizarán para el procesamiento de la detección de audio." + "description": "Número de hilos a usar para 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." }, @@ -610,7 +610,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 por proxy cuando no se aplica ningún mapeo de roles (administrador o espectador).", + "description": "Rol predeterminado asignado a los usuarios autenticados mediante proxy cuando no se aplica ninguna asignación de roles.", "label": "Rol predeterminado" }, "description": "Configuración para integrar Frigate detrás de un proxy inverso que transmite encabezados de usuario autenticados.", @@ -696,7 +696,7 @@ } }, "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.", + "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.", "label": "Idioma de transcripción" @@ -708,7 +708,7 @@ "label": "Transcripción de audio", "live_enabled": { "label": "Transcripción en directo", - "description": "Activar la transcripción en directo del audio a medida que se recibe." + "description": "Habilitar la transcripción en directo del audio a medida que se recibe." }, "device": { "label": "Dispositivo de transcripción", @@ -1010,6 +1010,10 @@ "order": { "label": "Orden en la interfaz", "description": "Orden numérico usado para ordenar la cámara en la interfaz (panel predeterminado y listas); los números más altos aparecen más tarde." + }, + "review": { + "label": "Mostrar en Revisión", + "description": "Activa o desactiva si esta cámara se muestra en Revisión (la página de Revisión y su filtro de cámaras, la revisión de movimiento y la vista de historial)." } }, "live": { @@ -1190,7 +1194,7 @@ "description": "Factor de escala usado por el calculador de diseño (rango de 1.0 a 5.0)." } }, - "label": "Vista general", + "label": "Birdseye", "enabled": { "label": "Habilitar Birdseye", "description": "Habilita o deshabilita la función de vista Birdseye." diff --git a/web/public/locales/es/config/validation.json b/web/public/locales/es/config/validation.json index b78ae972f3..dc35c3e1bb 100644 --- a/web/public/locales/es/config/validation.json +++ b/web/public/locales/es/config/validation.json @@ -28,5 +28,8 @@ "header_map": { "roleHeaderRequired": "Se requiere el encabezado de rol cuando hay mapeos de roles configurados." } + }, + "detect": { + "dimensionMustBeEven": "Debe ser un número par." } } diff --git a/web/public/locales/es/views/chat.json b/web/public/locales/es/views/chat.json index 876ee2707d..7fe10c75be 100644 --- a/web/public/locales/es/views/chat.json +++ b/web/public/locales/es/views/chat.json @@ -65,5 +65,8 @@ "active": "Razonando…", "show": "Mostrar razonamiento", "hide": "Ocultar razonamiento" + }, + "thinking": { + "toggle": "Alternar razonamiento" } } diff --git a/web/public/locales/es/views/classificationModel.json b/web/public/locales/es/views/classificationModel.json index e1d1449e8e..93bc070b77 100644 --- a/web/public/locales/es/views/classificationModel.json +++ b/web/public/locales/es/views/classificationModel.json @@ -36,14 +36,14 @@ "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": "Falló el renombrado de la clase: {{errorMessage}}", + "renameCategoryFailed": "Fallo al renombrar la clase:{{errorMessage}}", "reclassifyFailed": "Error al reclasificar la imagen: {{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.", - "minClassesTitle": "No se puede Borrar la Clase", + "minClassesTitle": "No se puede borrar la clase", "minClassesDesc": "Un modelo de clasificación debe tener al menos 2 clases. Añade otra clase antes de borrar esta." }, "deleteModel": { @@ -66,7 +66,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 media de clasificación en todas las detecciones de este objeto.", + "scoreInfo": "La puntuación representa la confianza promedio de la clasificación en todas las detecciones de este objeto.", "unknown": "Desconocido", "none": "Ninguno" }, @@ -166,7 +166,7 @@ "desc_other": "¿Está seguro de que quiere eliminar {{count}} imágenes de {{dataset}}? Esta acción no puede ser deshecha y requerirá reentrenar el modelo." }, "deleteTrainImages": { - "title": "Borrar Imágenes de Entrenamiento", + "title": "Borrar imágenes de entrenamiento", "desc_one": "¿Está seguro de que quiere eliminar {{count}} imagen? Esta acción no puede ser deshecha.", "desc_many": "¿Está seguro de que quiere eliminar {{count}} imágenes? Esta acción no puede ser deshecha.", "desc_other": "¿Está seguro de que quiere eliminar {{count}} imágenes? Esta acción no puede ser deshecha." diff --git a/web/public/locales/es/views/configEditor.json b/web/public/locales/es/views/configEditor.json index 265e7ec8e8..8f109c2ce1 100644 --- a/web/public/locales/es/views/configEditor.json +++ b/web/public/locales/es/views/configEditor.json @@ -14,5 +14,5 @@ "documentTitle": "Editor de Configuración - Frigate", "confirm": "¿Salir sin guardar?", "safeConfigEditor": "Editor de Configuración (Modo Seguro)", - "safeModeDescription": "Frigate esta en modo seguro debido a un error en la validación de la configuración." + "safeModeDescription": "Frigate se encuentra en modo seguro debido a un error de validación en la configuración." } diff --git a/web/public/locales/es/views/explore.json b/web/public/locales/es/views/explore.json index f6d61180fd..2f993e647e 100644 --- a/web/public/locales/es/views/explore.json +++ b/web/public/locales/es/views/explore.json @@ -208,7 +208,7 @@ }, "addTrigger": { "label": "Añadir disparador", - "aria": "Añadir disparador para el objeto seguido" + "aria": "Añadir disparador para este objeto rastreado" }, "downloadCleanSnapshot": { "label": "Descargue instantánea limpia", @@ -273,8 +273,8 @@ "count": "{{first}} de {{second}}", "lifecycleItemDesc": { "visible": "{{label}} detectado", - "active": "{{label}} ha sido activado/a", - "stationary": "{{label}} se volvió estacionaria", + "active": "{{label}} está activo", + "stationary": "{{label}} se volvió estacionario", "attribute": { "faceOrLicense_plate": "{{attribute}} detectado para {{label}}", "other": "{{label}} reconocido como {{attribute}}" diff --git a/web/public/locales/es/views/exports.json b/web/public/locales/es/views/exports.json index b464f3ab0d..0aec0eeca7 100644 --- a/web/public/locales/es/views/exports.json +++ b/web/public/locales/es/views/exports.json @@ -13,7 +13,7 @@ "toast": { "error": { "renameExportFailed": "No se pudo renombrar la exportación: {{errorMessage}}", - "assignCaseFailed": "Fallo en la actualización de la asignación de caso: {{errorMessage}}", + "assignCaseFailed": "No se pudo actualizar la asignación al caso: {{errorMessage}}", "caseSaveFailed": "No se pudo guardar el caso: {{errorMessage}}", "caseDeleteFailed": "No se pudo eliminar el caso: {{errorMessage}}" } @@ -25,11 +25,11 @@ "editName": "Editar nombre", "deleteExport": "Eliminar exportación", "assignToCase": "Añadir al caso", - "removeFromCase": "Remover del contenedor" + "removeFromCase": "Eliminar del caso" }, "headings": { "cases": "Casos", - "uncategorizedExports": "Exportaciones sin Categorizar" + "uncategorizedExports": "Exportaciones sin categorización" }, "caseDialog": { "title": "Añadir al caso", @@ -40,7 +40,7 @@ "descriptionLabel": "Descripción" }, "toolbar": { - "addExport": "Añadir Exportación", + "addExport": "Agregar exportación", "newCase": "Nuevo caso", "editCase": "Editar caso", "deleteCase": "Eliminar caso" diff --git a/web/public/locales/es/views/live.json b/web/public/locales/es/views/live.json index 2052b3698f..877e3ef63b 100644 --- a/web/public/locales/es/views/live.json +++ b/web/public/locales/es/views/live.json @@ -57,7 +57,9 @@ }, "camera": { "enable": "Habilitar cámara", - "disable": "Deshabilitar cámara" + "disable": "Deshabilitar cámara", + "turnOn": "Encender cámara", + "turnOff": "Apagar cámara" }, "muteCameras": { "enable": "Silenciar todas las cámaras", @@ -151,7 +153,8 @@ "snapshots": "Capturas de pantalla", "autotracking": "Seguimiento automático", "cameraEnabled": "Cámara habilitada", - "transcription": "Transcripción de Audio" + "transcription": "Transcripción de Audio", + "camera": "Cámara" }, "history": { "label": "Mostrar grabaciones históricas" diff --git a/web/public/locales/es/views/motionSearch.json b/web/public/locales/es/views/motionSearch.json index 45b1ddca90..2d1103aeb4 100644 --- a/web/public/locales/es/views/motionSearch.json +++ b/web/public/locales/es/views/motionSearch.json @@ -26,7 +26,9 @@ "points_many": "{{count}} puntos", "points_other": "{{count}} puntos", "undo": "Deshacer el último punto", - "reset": "Restablecer polígono" + "reset": "Restablecer polígono", + "drawMode": "Dibujar", + "moveMode": "Mover" }, "motionHeatmapLabel": "Mapa de calor de movimiento", "dialog": { @@ -42,11 +44,11 @@ "settings": { "title": "Ajustes de búsqueda", "parallelMode": "Modo paralelo", - "parallelModeDesc": "Analiza varios segmentos de grabación al mismo tiempo (más rápido, pero consume significativamente más CPU)", + "parallelModeDesc": "Analiza varios intervalos de grabación al mismo tiempo (más rápido, pero utiliza más recursos de decodificación)", "threshold": "Umbral de sensibilidad", "thresholdDesc": "Los valores más bajos detectan cambios más pequeños (1-255)", "minArea": "Área mínima de cambio", - "minAreaDesc": "Porcentaje mínimo de la región de interés que debe cambiar para considerarse significativo", + "minAreaDesc": "Tamaño mínimo de una única región en movimiento, expresado como porcentaje de la región de interés", "frameSkip": "Salto de fotogramas", "frameSkipDesc": "Procesa cada N fotogramas. Establécelo según la tasa de FPS de tu cámara para procesar un fotograma por segundo (p. ej., 5 para una cámara de 5 FPS, 30 para una cámara de 30 FPS). Los valores más altos serán más rápidos, pero pueden omitir eventos de movimiento breves.", "maxResults": "Resultados máximos", @@ -72,6 +74,9 @@ "framesDecoded": "Fotogramas decodificados", "wallTime": "Tiempo de búsqueda", "segmentErrors": "Errores de segmento", - "seconds": "{{seconds}} s" - } + "seconds": "{{seconds}} s", + "minutesSeconds": "{{minutes}}m {{seconds}}s", + "scanSummary": "{{segments}} segmentos · {{time}}" + }, + "scanning": "Escaneando {{time}}" } diff --git a/web/public/locales/es/views/settings.json b/web/public/locales/es/views/settings.json index 7dc10c8a63..99aa74e98d 100644 --- a/web/public/locales/es/views/settings.json +++ b/web/public/locales/es/views/settings.json @@ -32,7 +32,7 @@ "enrichments": "Análisis avanzado", "triggers": "Disparadores", "roles": "Rols", - "cameraManagement": "Administración", + "cameraManagement": "Gestión de cámaras", "cameraReview": "Revisar", "general": "General", "globalConfig": "Configuración Global", @@ -727,7 +727,8 @@ "notificationUnavailable": { "title": "Notificaciones no disponibles", "documentation": "Leer la documentación", - "desc": "Las notificaciones push web requieren un contexto seguro (https://…). Esto es una limitación del navegador. Accede a Frigate de forma segura para usar las notificaciones." + "desc": "Las notificaciones push web requieren un contexto seguro (https://…). Esto es una limitación del navegador. Accede a Frigate de forma segura para usar las notificaciones.", + "descPwa": "En iOS, las notificaciones push web solo están disponibles cuando Frigate está instalado en la pantalla de inicio. Abre el menú Compartir, selecciona Añadir a la pantalla de inicio y, a continuación, abre Frigate desde el nuevo icono para registrar este dispositivo para las notificaciones." }, "globalSettings": { "title": "Configuración global", @@ -1091,7 +1092,7 @@ "nameLength": "El nombre de la cámara debe tener 64 caracteres o menos", "invalidCharacters": "El nombre de la cámara contiene caracteres no válidos", "nameExists": "El nombre de la cámara ya existe", - "customUrlRtspRequired": "Las URL personalizadas deben comenzar con \"rtsp://\". Se requiere configuración manual para transmisiones de cámara sin RTSP.", + "customUrlRtspRequired": "Las URL personalizadas deben comenzar por “rtsp://” o “rtsps://”. Se requiere configuración manual para flujos de cámara que no sean RTSP.", "brandOrCustomUrlRequired": "Seleccione una marca de cámara con host/IP o elija \"Otro\" con una URL personalizada" }, "description": "Ingrese los detalles de su cámara y elija probar la cámara o seleccionar manualmente la marca.", @@ -1281,13 +1282,13 @@ "selectCamera": "Seleccione una cámara", "backToSettings": "Volver a configuración de la cámara", "streams": { - "title": "Habilitar/deshabilitar cámaras", + "title": "Estado y detalles de la cámara", "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 completamente el procesamiento de los flujos 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.Arrastra el controlador para reordenar las cámaras tal y como aparecen en la interfaz. El orden de las cámaras habilitadas se reflejará en toda la interfaz, incluido el panel en directo y los menús desplegables de selección de cámaras.", "enableLabel": "Cámaras habilitadas", "disableLabel": "Cámaras deshabilitadas", "disableDesc": "Habilita una cámara que actualmente no está visible en la interfaz y está deshabilitada en la configuración. Es necesario reiniciar Frigate después de habilitarla.", - "enableSuccess": "{{cameraName}} se ha habilitado en la configuración. Reinicia Frigate para aplicar los cambios.", + "enableSuccess": "{{cameraName}} habilitada. Reinicia Frigate para aplicar los cambios.", "friendlyName": { "edit": "Editar nombre visible de la cámara", "title": "Editar nombre visible", @@ -1296,7 +1297,30 @@ }, "reorderHandle": "Arrastrar para reordenar", "saving": "Guardando…", - "saved": "Guardado" + "saved": "Guardado", + "details": { + "edit": "Editar detalles de la cámara", + "title": "Editar detalles de la cámara", + "description": "Actualiza el nombre visible, la URL externa y la visibilidad usados para esta cámara en toda la interfaz de Frigate.", + "friendlyNameLabel": "Nombre visible", + "friendlyNameHelp": "Nombre descriptivo que se muestra para esta cámara en toda la interfaz de Frigate. Déjalo en blanco para usar el ID de la cámara.", + "webuiUrlLabel": "URL de la interfaz web de la cámara", + "webuiUrlHelp": "URL para acceder directamente a la interfaz web de la cámara desde la vista de depuración. Déjala en blanco para deshabilitar el enlace.", + "webuiUrlInvalid": "Debe ser una URL válida (p. ej., https://ejemplo.com).", + "dashboardLabel": "Mostrar en el panel En directo", + "dashboardHelp": "Mostrar esta cámara en el panel en directo.", + "reviewLabel": "Mostrar en Revisión", + "reviewHelp": "Mostrar esta cámara en Revisión, incluido el filtro de cámaras, la revisión de movimiento y la vista de historial." + }, + "label": "Estado de la cámara", + "description": "Set the operating state for each camera.

On: las transmisiones se procesan con normalidad.
Off: pausa temporalmente el procesamiento. No persiste tras reinicios de Frigate.
Disabled: detiene el procesamiento y guarda el cambio en tu configuración. Es necesario reiniciar para volver a activar una cámara desactivada.

Note: Desactivar no afecta a las retransmisiones de go2rtc.

Arrastra el asa para reordenar las cámaras activas tal como aparecen en toda la interfaz, incluido el panel de Live y los menús desplegables de selección de cámara.", + "disabledSubheading": "Deshabilitado en la configuración", + "status": { + "on": "On", + "off": "Off", + "disabled": "Deshabilitado" + }, + "disableSuccess": "{{cameraName}} deshabilitada y guardada en la configuración." }, "cameraConfig": { "add": "Añadir cámara", @@ -1342,10 +1366,12 @@ "profiles": { "title": "Sobrescrituras de cámaras del perfil", "selectLabel": "Seleccionar perfil", - "description": "Configura qué cámaras se habilitan o deshabilitan cuando se activa un perfil. Las cámaras configuradas como \"Heredar\" conservan su estado base habilitado.", + "description": "Configura qué cámaras se activan o desactivan cuando se activa un perfil. Las cámaras configuradas como “Heredar” conservan su estado predeterminado.", "inherit": "Heredar", "enabled": "Habilitado", - "disabled": "Deshabilitado" + "disabled": "Deshabilitado", + "on": "Encendido", + "off": "Apagado" }, "cameraType": { "title": "Tipo de cámara", @@ -1355,7 +1381,95 @@ "dedicatedLpr": "LPR dedicada", "saveSuccess": "Se ha actualizado el tipo de cámara de {{cameraName}}. Reinicia Frigate para aplicar los cambios." }, - "description": "Añade, edita y elimina cámaras, controla qué cámaras están habilitadas y configura sobrescrituras por perfil y tipo de cámara. Para configurar flujos, detección, movimiento y otros ajustes específicos de cámara, selecciona la sección correspondiente dentro de Configuración de cámara." + "description": "Añade, edita y elimina cámaras, controla el estado de cada cámara y configura sobrescrituras por perfil y tipo de cámara. Para configurar flujos, detección, movimiento y otros ajustes específicos de cámara, selecciona la sección correspondiente dentro de Configuración de cámara.", + "clone": { + "sectionTitle": "Clonar configuración", + "sectionDescription": "Copia la configuración de una cámara a otra cámara o a una nueva.", + "button": "Clonar configuración", + "title": "Clonar configuración de la cámara", + "description": "Copia la configuración de una cámara a una o varias cámaras existentes o a una cámara nueva. La identidad de la cámara (nombre, nombre visible, URL de la interfaz web y orden de visualización) nunca se copia.", + "source": { + "label": "Cámara de origen", + "placeholder": "Selecciona una cámara de origen", + "required": "Selecciona una cámara de origen" + }, + "target": { + "legend": "Destino", + "newRadio": "Nueva cámara", + "newNameLabel": "Nombre de la cámara", + "newNamePlaceholder": "p. ej., puerta_trasera o Puerta trasera", + "newNameRequired": "El nombre de la cámara es obligatorio", + "newNameInvalid": "Nombre de cámara no válido", + "newNameCollision": "Ya existe una cámara con este nombre", + "newStreamsForced": "Los flujos siempre se copian al crear una cámara nueva.", + "existingCamerasRadio": "Cámaras existentes", + "allCameras": "Todas las cámaras", + "existingPlaceholder": "Selecciona al menos una cámara", + "existingDisabled": "No hay otras cámaras a las que copiar la configuración" + }, + "categories": { + "legend": "Configuración para clonar", + "description": "Elige qué ajustes copiar desde la cámara de origen.", + "selectAll": "Seleccionar todo", + "selectNone": "No seleccionar ninguno", + "resetDefaults": "Restablecer valores predeterminados", + "general": "General", + "spatial": "Configuración espacial", + "streams": "Flujos", + "spatialWarningTitle": "Resolución no coincidente", + "spatialWarning": "La resolución de detección de la cámara de origen {{srcCamera}} ({{srcWidth}}×{{srcHeight}}) es diferente de la de: {{cameras}}. Es posible que los polígonos no se alineen correctamente en esas cámaras. Estas opciones están desactivadas de forma predeterminada; actívalas para copiarlas tal cual.", + "restartHint": "Reinicio necesario", + "items": { + "record": "Grabación", + "snapshots": "Instantáneas", + "review": "Revisión", + "motion": "Detección de movimiento", + "objects": "Objetos", + "audio": "Detección de audio", + "audio_transcription": "Transcripción de audio", + "notifications": "Notificaciones", + "birdseye": "Birdseye", + "mqtt": "MQTT", + "timestamp_style": "Estilo de marca de tiempo", + "onvif": "ONVIF", + "lpr": "Reconocimiento de matrículas", + "face_recognition": "Reconocimiento facial", + "semantic_search": "Búsqueda semántica", + "genai": "IA generativa", + "type": "Tipo de cámara (normal / LPR dedicada)", + "profiles": "Perfiles", + "detect": "Dimensiones de detección", + "zones": "Zonas", + "motion_mask": "Máscaras de movimiento", + "object_masks": "Máscaras de objetos", + "ffmpeg_live": "URL y roles de los flujos" + } + }, + "footer": { + "changeCount_one": "Se aplicará {{count}} cambio", + "changeCount_many": "Se aplicarán {{count}} cambios", + "changeCount_other": "Se aplicarán {{count}} cambios", + "restartNeeded": "Será necesario reiniciar para aplicar algunos cambios.", + "liveOnly": "Todos los cambios se aplicarán en tiempo real sin necesidad de reiniciar.", + "submit": "Clonar", + "submitting": "Clonando…" + }, + "toast": { + "success": "Configuración copiada a {{cameraName}}", + "successWithRestart": "Configuración copiada a {{cameraName}}. Reinicia Frigate para aplicar todos los cambios.", + "successMulti_one": "Configuración copiada a {{count}} cámara", + "successMulti_many": "Configuración copiada a {{count}} cámaras", + "successMulti_other": "Configuración copiada a {{count}} cámaras", + "successMultiWithRestart_one": "Configuración copiada a {{count}} cámara. Reinicia Frigate para aplicar todos los cambios.", + "successMultiWithRestart_many": "Configuración copiada a {{count}} cámaras. Reinicia Frigate para aplicar todos los cambios.", + "successMultiWithRestart_other": "Configuración copiada a {{count}} cámaras. Reinicia Frigate para aplicar todos los cambios.", + "partialFailure": "Se aplicaron {{successCount}} secciones; ‘{{failedSection}}’ falló: {{errorMessage}}", + "partialFailureMulti": "Copiado a {{successCount}} cámara(s); error en {{failed}}: {{errorMessage}}", + "newCameraPartialFailure": "La cámara {{cameraName}} se creó, pero no se pudieron copiar algunos ajustes: {{errorMessage}}", + "sourceMissing": "La cámara de origen ya no existe", + "submitError": "No se pudo clonar la cámara: {{errorMessage}}" + } + } }, "cameraReview": { "title": "Configuración de revisión de la cámara", @@ -1502,8 +1616,13 @@ }, "genaiModel": { "noModels": "No hay modelos disponibles", - "placeholder": "Seleccionar modelo…", - "search": "Buscar modelos…" + "placeholder": "Selecciona o introduce un modelo…", + "search": "Busca o introduce un modelo…", + "available": "Modelos disponibles", + "useCustom": "Usar “{{value}}”", + "refresh": "Actualizar modelos", + "probeFailed": "No se pudieron detectar los modelos", + "fetchedModels": "La lista de modelos se ha obtenido correctamente" }, "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.", @@ -1686,7 +1805,32 @@ "title": "Ajustes de marcas de tiempo" }, "searchPlaceholder": "Buscar...", - "addCustomLabel": "Añadir etiqueta personalizada..." + "addCustomLabel": "Añadir etiqueta personalizada...", + "semanticSearchModelSize": { + "notApplicable": "No aplicable a proveedores GenAI" + }, + "liveStreams": { + "streamNameLabel": "Nombre del flujo", + "streamNamePlaceholder": "p. ej., Flujo principal HD", + "go2rtcStreamLabel": "Flujo go2rtc", + "go2rtcStreamPlaceholder": "Selecciona un flujo go2rtc", + "go2rtcStreamSearch": "Busca o introduce un nombre de flujo…", + "noGo2rtcStreams": "No hay flujos go2rtc configurados", + "availableStreams": "Flujos disponibles", + "useCustom": "Usar “{{value}}”", + "addStream": "Añadir flujo" + }, + "ptzPresets": { + "placeholder": "Selecciona o introduce un preajuste…", + "search": "Busca o introduce un preajuste…", + "noPresets": "No hay preajustes disponibles", + "available": "Preajustes de cámara", + "useCustom": "Usar “{{value}}”" + }, + "defaultRole": { + "admin": "Admin", + "viewer": "Visualizador" + } }, "globalConfig": { "title": "Configuración global", @@ -1818,7 +1962,8 @@ "addAudioCodec": "Añadir códec de audio", "removeCodec": "Eliminar códec" }, - "streamNumber": "Flujo {{index}}" + "streamNumber": "Flujo {{index}}", + "sourceNumber": "Origen {{index}}" }, "configMessages": { "birdseye": { @@ -1855,7 +2000,13 @@ }, "detect": { "fpsGreaterThanFive": "No se recomienda establecer los FPS de detección por encima de 5. Valores más altos pueden causar problemas de rendimiento y no aportarán ningún beneficio.", - "disabled": "La detección de objetos está deshabilitada. Las instantáneas, los elementos de revisión y enriquecimientos como el reconocimiento facial, el reconocimiento de matrículas y la IA generativa no funcionarán." + "disabled": "La detección de objetos está deshabilitada. Las instantáneas, los elementos de revisión y enriquecimientos como el reconocimiento facial, el reconocimiento de matrículas y la IA generativa no funcionarán.", + "resolutionShouldBeMultipleOfFour": "Para obtener mejores resultados, la anchura y la altura de detección deberían ser múltiplos de 4. Otros valores pares pueden producir artefactos visuales o una ligera distorsión en el flujo de detección.", + "aspectRatioMismatch": "La anchura y la altura que has introducido no coinciden con la relación de aspecto de la resolución de detección actual. Esto puede producir una imagen estirada o distorsionada.", + "maxFramesSet": "Establecer un número máximo de fotogramas (frames) reemplaza el comportamiento predeterminado y desactiva el seguimiento de objetos estáticos. Hay muy pocas situaciones en las que esto sea necesario; utilícelo con precaución.", + "squareResolution": "Una resolución de detección cuadrada es poco habitual. El ancho y la altura de detección deberían coincidir con la relación de aspecto de tu cámara (por ejemplo, 16:9), no con las dimensiones del modelo de detección de objetos. Una relación de aspecto incorrecta puede distorsionar la imagen y reducir la precisión de la detección.", + "resolutionHigh": "Esta resolución de detección es superior a la recomendada y puede provocar un mayor consumo de recursos sin mejorar la precisión de la detección. Para la mayoría de las cámaras se recomienda una resolución de detección de 1080p o inferior.", + "globalResolutionMultipleCameras": "La resolución de detección global se establece al configurar varias cámaras. A menos que todas las cámaras compartan la misma resolución y relación de aspecto, se deben definir el ancho y la altura de detección en cada cámara, de modo que se ajusten a la relación de aspecto nativa de cada una." }, "objects": { "genaiNoDescriptionsProvider": "Debes configurar un proveedor GenAI con el rol 'descriptions' para que se generen descripciones." @@ -1864,7 +2015,11 @@ "noRecordRole": "Ningún flujo tiene definido el rol de grabación. La grabación no funcionará." }, "semanticSearch": { - "jinav2SmallModelSize": "El tamaño 'small' con el modelo Jina V2 tiene un alto consumo de RAM y coste de inferencia. Se recomienda el modelo 'large' con una GPU dedicada." + "jinav2SmallModelSize": "El tamaño 'small' con el modelo Jina V2 tiene un alto consumo de RAM y coste de inferencia. Se recomienda el modelo 'large' con una GPU dedicada.", + "modelSizeIgnoredForProvider": "El tamaño del modelo solo se aplica a los modelos Jina integrados. Este valor se ignorará al usar un proveedor de embeddings GenAI." + }, + "onvif": { + "autotrackingNoZones": "El seguimiento automático requiere al menos una zona. Define una zona para esta cámara en Máscaras / Zonas y, a continuación, establécela como zona obligatoria a continuación." } }, "resetToDefaultDescription": "Esto restablecerá todos los ajustes de esta sección a sus valores predeterminados. Esta acción no se puede deshacer.",