From 236406e1ee0240862f7fdc8b6535f470a24186bd Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 28 Apr 2025 20:55:39 +0200 Subject: [PATCH] Translated using Weblate (Spanish) Currently translated at 100.0% (48 of 48 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (52 of 52 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (65 of 65 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (110 of 110 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (48 of 48 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (43 of 43 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (176 of 176 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (52 of 52 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (23 of 23 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (103 of 103 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (22 of 22 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (331 of 331 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (176 of 176 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (328 of 328 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (328 of 328 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (97 of 97 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (95 of 95 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (110 of 110 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (48 of 48 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (48 of 48 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (328 of 328 strings) Co-authored-by: Hosted Weblate Co-authored-by: Sotski Eugene 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-filter/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/es/ Translation: Frigate NVR/common Translation: Frigate NVR/components-camera Translation: Frigate NVR/components-dialog Translation: Frigate NVR/components-filter Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-search Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system --- web/public/locales/es/common.json | 33 ++++++++++++++++---- web/public/locales/es/components/camera.json | 2 +- web/public/locales/es/components/dialog.json | 8 ++++- web/public/locales/es/components/filter.json | 2 +- web/public/locales/es/views/events.json | 5 ++- web/public/locales/es/views/explore.json | 9 ++++-- web/public/locales/es/views/faceLibrary.json | 16 +++++++--- web/public/locales/es/views/search.json | 11 +++++-- web/public/locales/es/views/settings.json | 31 ++++++++++++------ web/public/locales/es/views/system.json | 18 +++++++++-- 10 files changed, 105 insertions(+), 30 deletions(-) diff --git a/web/public/locales/es/common.json b/web/public/locales/es/common.json index e04ed3941..e70c28b43 100644 --- a/web/public/locales/es/common.json +++ b/web/public/locales/es/common.json @@ -16,8 +16,8 @@ "12hour": "%b %-d, %I:%M %p" }, "formattedTimestamp": { - "24hour": "%b %-d, %H:%M:%S", - "12hour": "%b %-d, %I:%M:%S %p" + "24hour": "MMM d, HH:mm:ss", + "12hour": "MMM d, h:mm:ss aaa" }, "day_one": "{{time}} día", "day_many": "{{time}} días", @@ -54,15 +54,36 @@ "minute_other": "{{time}} minutos", "s": "{{time}}s", "formattedTimestamp2": { - "12hour": "%m/%d %I:%M:%S%P", - "24hour": "%d %b %H:%M:%S" + "12hour": "MM/dd h:mm:ssa", + "24hour": "d MMM HH:mm:ss" }, "5minutes": "5 minutos", "am": "am", "d": "{{time}}d", "hour_one": "{{time}} hora", "hour_many": "{{time}} horas", - "hour_other": "{{time}} horas" + "hour_other": "{{time}} horas", + "formattedTimestampHourMinute": { + "12hour": "h:mm aaa", + "24hour": "HH:mm" + }, + "formattedTimestampMonthDayHourMinute": { + "12hour": "MMM d, h:mm aaa", + "24hour": "MMM d, HH:mm" + }, + "formattedTimestampMonthDay": "MMM d", + "formattedTimestampFilename": { + "12hour": "MM-dd-yy-h-mm-ss-a", + "24hour": "MM-dd-yy-HH-mm-ss" + }, + "formattedTimestampHourMinuteSecond": { + "12hour": "h:mm:ss aaa", + "24hour": "HH:mm:ss" + }, + "formattedTimestampMonthDayYearHourMinute": { + "12hour": "MMM d yyyy, h:mm aaa", + "24hour": "MMM d yyyy, HH:mm" + } }, "menu": { "settings": "Ajustes", @@ -193,7 +214,7 @@ "next": "Siguiente", "edit": "Editar", "enabled": "Habilitado", - "saving": "Guardando...", + "saving": "Guardando…", "exitFullscreen": "Salir de pantalla completa", "on": "ENCENDIDO" }, diff --git a/web/public/locales/es/components/camera.json b/web/public/locales/es/components/camera.json index 2aebc5c01..672d07317 100644 --- a/web/public/locales/es/components/camera.json +++ b/web/public/locales/es/components/camera.json @@ -12,7 +12,7 @@ }, "name": { "label": "Nombre", - "placeholder": "Introduce un nombre...", + "placeholder": "Introduce un nombre…", "errorMessage": { "mustLeastCharacters": "El nombre del grupo de cámaras debe tener al menos 2 caracteres.", "nameMustNotPeriod": "El nombre del grupo de cámaras no debe contener un punto.", diff --git a/web/public/locales/es/components/dialog.json b/web/public/locales/es/components/dialog.json index 1f16824d3..35997635f 100644 --- a/web/public/locales/es/components/dialog.json +++ b/web/public/locales/es/components/dialog.json @@ -29,6 +29,12 @@ }, "state": { "submitted": "Enviado" + }, + "question": { + "label": "Confirmar esta etiqueta para Frigate Plus", + "ask_a": "¿Es este objeto un {{label}}?", + "ask_an": "¿Es este objeto un {{label}}?", + "ask_full": "¿Es este objeto un {{untranslatedLabel}} ({{translatedLabel}})?" } } }, @@ -76,7 +82,7 @@ "disabled": "La retransmisión no está habilitada para esta cámara.", "desc": { "title": "Configura go2rtc para opciones adicionales de vista en vivo y audio para esta cámara.", - "readTheDocumentation": "Leer la documentación " + "readTheDocumentation": "Leer la documentación" } }, "debugView": "Vista de depuración", diff --git a/web/public/locales/es/components/filter.json b/web/public/locales/es/components/filter.json index 4587b5a62..6212cbaf7 100644 --- a/web/public/locales/es/components/filter.json +++ b/web/public/locales/es/components/filter.json @@ -115,7 +115,7 @@ "recognizedLicensePlates": { "title": "Matrículas reconocidas", "loadFailed": "No se pudieron cargar las matrículas reconocidas.", - "loading": "Cargando matrículas reconocidas...", + "loading": "Cargando matrículas reconocidas…", "placeholder": "Escribe para buscar matrículas...", "noLicensePlatesFound": "No se encontraron matrículas.", "selectPlatesFromList": "Selecciona una o más matrículas de la lista." diff --git a/web/public/locales/es/views/events.json b/web/public/locales/es/views/events.json index 3654dcc1a..79ffa15da 100644 --- a/web/public/locales/es/views/events.json +++ b/web/public/locales/es/views/events.json @@ -31,5 +31,8 @@ "calendarFilter": { "last24Hours": "Últimas 24 horas" }, - "markTheseItemsAsReviewed": "Marcar estos elementos como revisados" + "markTheseItemsAsReviewed": "Marcar estos elementos como revisados", + "selected": "{{count}} seleccionados", + "selected_one": "{{count}} seleccionados", + "selected_other": "{{count}} seleccionados" } diff --git a/web/public/locales/es/views/explore.json b/web/public/locales/es/views/explore.json index 7d0a38a9d..bdeb99d39 100644 --- a/web/public/locales/es/views/explore.json +++ b/web/public/locales/es/views/explore.json @@ -3,7 +3,7 @@ "exploreIsUnavailable": { "title": "Explorar no está disponible", "embeddingsReindexing": { - "startingUp": "Iniciando...", + "startingUp": "Iniciando…", "estimatedTime": "Tiempo estimado restante:", "finishingShortly": "Finalizando en breve", "step": { @@ -124,7 +124,12 @@ "heard": "{{label}} escuchado", "external": "{{label}} detectado", "active": "{{label}} se activó", - "stationary": "{{label}} se volvió estacionario" + "stationary": "{{label}} se volvió estacionario", + "header": { + "zones": "Zonas", + "ratio": "Proporción", + "area": "Área" + } }, "annotationSettings": { "offset": { diff --git a/web/public/locales/es/views/faceLibrary.json b/web/public/locales/es/views/faceLibrary.json index e24ded131..e64cdcaee 100644 --- a/web/public/locales/es/views/faceLibrary.json +++ b/web/public/locales/es/views/faceLibrary.json @@ -35,13 +35,15 @@ "deleteFaceAttempts": "Eliminar intentos de rostro", "addFace": "Agregar rostro", "uploadImage": "Subir imagen", - "reprocessFace": "Reprocesar rostro" + "reprocessFace": "Reprocesar rostro", + "renameFace": "Renombrar Rostro", + "deleteFace": "Eliminar Rostro" }, "imageEntry": { "validation": { "selectImage": "Por favor, selecciona un archivo de imagen." }, - "dropActive": "Suelta la imagen aquí...", + "dropActive": "Suelta la imagen aquí…", "dropInstructions": "Arrastra y suelta una imagen aquí, o haz clic para seleccionar", "maxSize": "Tamaño máximo: {{size}}MB" }, @@ -56,7 +58,8 @@ "deletedFace_one": "{{count}} rostro eliminado con éxito", "deletedFace_many": "{{count}} rostros eliminados con éxito", "deletedFace_other": "{{count}} rostros eliminados con éxito", - "uploadedImage": "Imagen subida con éxito." + "uploadedImage": "Imagen subida con éxito.", + "renamedFace": "Rostro renombrado con éxito a {{name}}" }, "error": { "uploadingImageFailed": "No se pudo subir la imagen: {{errorMessage}}", @@ -64,7 +67,8 @@ "deleteFaceFailed": "No se pudo eliminar: {{errorMessage}}", "deleteNameFailed": "No se pudo eliminar el nombre: {{errorMessage}}", "trainFailed": "No se pudo entrenar: {{errorMessage}}", - "updateFaceScoreFailed": "No se pudo actualizar la puntuación del rostro: {{errorMessage}}" + "updateFaceScoreFailed": "No se pudo actualizar la puntuación del rostro: {{errorMessage}}", + "renameFaceFailed": "No se pudo renombrar el rostro: {{errorMessage}}" } }, "readTheDocs": "Leer la documentación", @@ -74,5 +78,9 @@ "faceName": "Introducir Nombre de Rostro", "uploadFace": "Subir Imagen de Rostro", "nextSteps": "Próximos Pasos" + }, + "renameFace": { + "title": "Renombrar Rostro", + "desc": "Introduce un nuevo nombre para {{name}}" } } diff --git a/web/public/locales/es/views/search.json b/web/public/locales/es/views/search.json index a0d6f4796..7458c491d 100644 --- a/web/public/locales/es/views/search.json +++ b/web/public/locales/es/views/search.json @@ -47,7 +47,14 @@ "desc": { "text": "Los filtros te ayudan a reducir los resultados de tu búsqueda. Aquí te explicamos cómo usarlos en el campo de entrada:", "example": "Ejemplo: cameras:front_door label:person before:01012024 time_range:3:00PM-4:00PM ", - "step": "
  • Escribe un nombre de filtro seguido de dos puntos (por ejemplo, \"cameras:\").
  • Selecciona un valor de las sugerencias o escribe el tuyo propio.
  • Usa múltiples filtros añadiéndolos uno tras otro con un espacio entre ellos.
  • Los filtros de fecha (before: y after:) usan el formato {{DateFormat}}.
  • El filtro de rango de tiempo usa el formato {{exampleTime}}.
  • Elimina filtros haciendo clic en la 'x' junto a ellos.
" + "step": "
  • Escribe un nombre de filtro seguido de dos puntos (por ejemplo, \"cameras:\").
  • Selecciona un valor de las sugerencias o escribe el tuyo propio.
  • Usa múltiples filtros añadiéndolos uno tras otro con un espacio entre ellos.
  • Los filtros de fecha (before: y after:) usan el formato {{DateFormat}}.
  • El filtro de rango de tiempo usa el formato {{exampleTime}}.
  • Elimina filtros haciendo clic en la 'x' junto a ellos.
", + "step4": "Los filtros de fecha (antes: y después:) usan el formato {{DateFormat}}.", + "step6": "Elimina filtros haciendo clic en la 'x' junto a ellos.", + "exampleLabel": "Ejemplo:", + "step1": "Escribe un nombre de clave de filtro seguido de dos puntos (por ejemplo, \"cámaras:\").", + "step2": "Selecciona un valor de las sugerencias o escribe el tuyo propio.", + "step3": "Usa múltiples filtros añadiéndolos uno tras otro con un espacio entre ellos.", + "step5": "El filtro de rango de tiempo usa el formato {{exampleTime}}." } }, "header": { @@ -62,6 +69,6 @@ "clear": "Borrar búsqueda por similitud" }, "placeholder": { - "search": "Buscar..." + "search": "Buscar…" } } diff --git a/web/public/locales/es/views/settings.json b/web/public/locales/es/views/settings.json index e14376f1c..24c0bc686 100644 --- a/web/public/locales/es/views/settings.json +++ b/web/public/locales/es/views/settings.json @@ -139,7 +139,8 @@ "birdClassification": { "title": "Clasificación de Aves", "desc": "La clasificación de aves identifica aves conocidas utilizando un modelo de TensorFlow cuantizado. Cuando se reconoce una ave conocida, su nombre común se añadirá como una subetiqueta. Esta información se incluye en la interfaz de usuario, en los filtros y en las notificaciones." - } + }, + "restart_required": "Es necesario reiniciar (se han cambiado las configuraciones de clasificación)" }, "camera": { "review": { @@ -334,7 +335,8 @@ "point_many": "{{count}} puntos", "point_other": "{{count}} puntos", "clickDrawPolygon": "Haz clic para dibujar un polígono en la imagen." - } + }, + "restart_required": "Es necesario reiniciar (se han cambiado las máscaras/zonas)" }, "motionDetectionTuner": { "title": "Sintonizador de Detección de Movimiento", @@ -388,12 +390,12 @@ "motion": { "title": "Cajas de movimiento", "desc": "Mostrar cajas alrededor de las áreas donde se detecta movimiento", - "tips": "

Cajas de Movimiento


Se superpondrán cajas rojas en las áreas del marco donde se está detectando movimiento actualmente

" + "tips": "

Cajas de Movimiento


Se superpondrán cajas rojas en las áreas del fotograma donde se está detectando movimiento actualmente

" }, "regions": { "title": "Regiones", "desc": "Mostrar una caja de la región de interés enviada al detector de objetos", - "tips": "

Cajas de Región


Se superpondrán cajas verdes brillantes en las áreas de interés del marco que se están enviando al detector de objetos.

" + "tips": "

Cajas de Región


Se superpondrán cajas verdes brillantes en las áreas de interés del fotograma que se envían al detector de objetos.

" }, "objectShapeFilterDrawing": { "title": "Dibujo de Filtro de Forma de Objetos", @@ -480,11 +482,17 @@ }, "changeRole": { "title": "Cambiar rol de usuario", - "desc": "Actualizar permisos para {{username}}", - "roleInfo": "

Selecciona el rol adecuado para este usuario:

  • Admin: Acceso completo a todas las funciones.
  • Viewer: Limitado solo a los paneles en vivo, Revisión, Explorar y Exportaciones.
" + "desc": "Actualizar permisos para {{username}}", + "roleInfo": { + "intro": "Selecciona el rol adecuado para este usuario:", + "adminDesc": "Acceso completo a todas las funciones.", + "viewerDesc": "Limitado a paneles en vivo, revisión, exploración y exportaciones únicamente.", + "viewer": "Espectador", + "admin": "Administrador" + } }, "deleteUser": { - "warn": "¿Estás seguro de que quieres eliminar a {{username}}?", + "warn": "¿Estás seguro de que quieres eliminar {{username}}?", "title": "Eliminar usuario", "desc": "Esta acción no se puede deshacer. Esto eliminará permanentemente la cuenta de usuario y eliminará todos los datos asociados." } @@ -575,11 +583,16 @@ "availableModels": "Modelos disponibles", "loadingAvailableModels": "Cargando modelos disponibles...", "modelSelect": "Tus modelos disponibles en Frigate+ se pueden seleccionar aquí. Ten en cuenta que solo se pueden seleccionar modelos compatibles con tu configuración actual de detectores.", - "trainDate": "Fecha de entrenamiento" + "trainDate": "Fecha de entrenamiento", + "plusModelType": { + "baseModel": "Modelo Base", + "userModel": "Ajustado Finamente" + } }, "toast": { "success": "La configuración de Frigate+ se ha guardado. Reinicia Frigate para aplicar los cambios.", "error": "No se pudieron guardar los cambios en la configuración: {{errorMessage}}" - } + }, + "restart_required": "Es necesario reiniciar (se ha cambiado el modelo Frigate+)" } } diff --git a/web/public/locales/es/views/system.json b/web/public/locales/es/views/system.json index a2aaf33eb..86ed175b3 100644 --- a/web/public/locales/es/views/system.json +++ b/web/public/locales/es/views/system.json @@ -72,7 +72,9 @@ "label": "Cerrar información de GPU" } }, - "gpuMemory": "Memoria de GPU" + "gpuMemory": "Memoria de GPU", + "npuMemory": "Memoria de NPU", + "npuUsage": "Uso de NPU" }, "otherProcesses": { "title": "Otros Procesos", @@ -144,7 +146,14 @@ "plate_recognition_speed": "Velocidad de Reconocimiento de Matrículas", "face_embedding_speed": "Velocidad de Incrustación de Rostros", "image_embedding_speed": "Velocidad de Incrustación de Imágenes", - "text_embedding_speed": "Velocidad de Incrustación de Texto" + "text_embedding_speed": "Velocidad de Incrustación de Texto", + "face_recognition_speed": "Velocidad de Reconocimiento Facial", + "text_embedding": "Incrustación de Texto", + "face_recognition": "Reconocimiento Facial", + "plate_recognition": "Reconocimiento de Matrículas", + "yolov9_plate_detection": "Detección de Matrículas YOLOv9", + "image_embedding": "Incrustación de Imágenes", + "yolov9_plate_detection_speed": "Velocidad de Detección de Matrículas YOLOv9" }, "title": "Enriquecimientos" }, @@ -152,6 +161,9 @@ "ffmpegHighCpuUsage": "{{camera}} tiene un uso elevado de CPU por FFMPEG ({{ffmpegAvg}}%)", "detectHighCpuUsage": "{{camera}} tiene un uso elevado de CPU por detección ({{detectAvg}}%)", "healthy": "El sistema está saludable", - "reindexingEmbeddings": "Reindexando incrustaciones ({{processed}}% completado)" + "reindexingEmbeddings": "Reindexando incrustaciones ({{processed}}% completado)", + "detectIsSlow": "{{detect}} es lento ({{speed}} ms)", + "cameraIsOffline": "{{camera}} está desconectada", + "detectIsVerySlow": "{{detect}} es muy lento ({{speed}} ms)" } }