From 7726d2ec97aa351978634f374509aeea61fd9f40 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Mon, 6 Jul 2026 04:01:31 +0200 Subject: [PATCH] Translated using Weblate (Portuguese (Brazil)) Currently translated at 28.8% (13 of 45 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 32.7% (265 of 808 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 56.3% (267 of 474 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 39.5% (509 of 1287 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 98.1% (107 of 109 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 90.7% (49 of 54 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (23 of 23 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (25 of 25 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 11.4% (92 of 807 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 17.7% (84 of 473 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 52.7% (68 of 129 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (100 of 100 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (60 of 60 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (26 of 26 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 95.4% (104 of 109 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (50 of 50 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (239 of 239 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 99.8% (500 of 501 strings) Co-authored-by: Hosted Weblate Co-authored-by: Ricardo RFPP Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-groups/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-validation/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-chat/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-replay/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pt_BR/ Translation: Frigate NVR/Config - Cameras Translation: Frigate NVR/Config - Global Translation: Frigate NVR/Config - Groups Translation: Frigate NVR/Config - Validation Translation: Frigate NVR/audio 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-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-replay Translation: Frigate NVR/views-settings --- web/public/locales/pt-BR/audio.json | 3 +- web/public/locales/pt-BR/common.json | 3 +- .../locales/pt-BR/components/camera.json | 5 +- .../locales/pt-BR/components/dialog.json | 45 +- .../locales/pt-BR/components/player.json | 6 +- web/public/locales/pt-BR/config/cameras.json | 500 +++++++++++++++++- web/public/locales/pt-BR/config/global.json | 478 ++++++++++++++++- web/public/locales/pt-BR/config/groups.json | 5 + .../locales/pt-BR/config/validation.json | 3 + web/public/locales/pt-BR/views/chat.json | 64 ++- .../pt-BR/views/classificationModel.json | 19 +- .../locales/pt-BR/views/faceLibrary.json | 16 +- web/public/locales/pt-BR/views/live.json | 10 +- web/public/locales/pt-BR/views/replay.json | 20 +- web/public/locales/pt-BR/views/settings.json | 51 +- 15 files changed, 1194 insertions(+), 34 deletions(-) diff --git a/web/public/locales/pt-BR/audio.json b/web/public/locales/pt-BR/audio.json index 552a13565..1444d4d6a 100644 --- a/web/public/locales/pt-BR/audio.json +++ b/web/public/locales/pt-BR/audio.json @@ -497,5 +497,6 @@ "echo": "Eco", "mains_hum": "Zumbido Elétrico", "sidetone": "Retorno de Voz", - "throbbing": "Latejante" + "throbbing": "Latejante", + "sodeling": "Soldagem" } diff --git a/web/public/locales/pt-BR/common.json b/web/public/locales/pt-BR/common.json index b2ebe49c2..3ce687cc7 100644 --- a/web/public/locales/pt-BR/common.json +++ b/web/public/locales/pt-BR/common.json @@ -210,7 +210,8 @@ "id": "Bahasa Indonesia (Indonésio)", "ur": "اردو (Urdu)", "hr": "Hrvatski (Croata)", - "bs": "Bosanski (Bósnio)" + "bs": "Bosanski (Bósnio)", + "zhHant": "Chinês Tradicional" }, "systemLogs": "Logs de sistema", "settings": "Configurações", diff --git a/web/public/locales/pt-BR/components/camera.json b/web/public/locales/pt-BR/components/camera.json index f82636861..a74696098 100644 --- a/web/public/locales/pt-BR/components/camera.json +++ b/web/public/locales/pt-BR/components/camera.json @@ -68,7 +68,10 @@ } }, "birdseye": "Visão Panorâmica" - } + }, + "showAll": "Exibir todos os grupos de câmeras", + "showLess": "Mostrar menos", + "editGroups": "Editar grupos de câmeras" }, "debug": { "options": { diff --git a/web/public/locales/pt-BR/components/dialog.json b/web/public/locales/pt-BR/components/dialog.json index 788fe118d..7f877adad 100644 --- a/web/public/locales/pt-BR/components/dialog.json +++ b/web/public/locales/pt-BR/components/dialog.json @@ -24,6 +24,9 @@ }, "state": { "submitted": "Enviado" + }, + "toast": { + "error": "Falha ao enviar para o Frigate+. Verifique sua conexão de rede e tente novamente." } } }, @@ -56,15 +59,25 @@ "toast": { "success": "Exportação iniciada com sucesso. Veja o arquivo na tela exportar.", "error": { - "failed": "Falha em iniciar exportação: {{error}}", + "failed": "Falha ao iniciar exportação: {{error}}", "endTimeMustAfterStartTime": "Tempo de finalização deve ser após tempo de início", "noVaildTimeSelected": "Nenhuma faixa de tempo válida selecionada" }, - "view": "Ver" + "view": "Ver", + "batchQueuedSuccess_one": "1 exportação na fila. Abrindo o caso agora.", + "batchQueuedSuccess_many": "{{count}} exportações colocadas na fila. Abrindo o caso agora.", + "batchQueuedSuccess_other": "", + "batchQueuedPartial": "{{successful}} de {{total}} exportações na fila. Câmeras com falha: {{failedCameras}}", + "batchQueueFailed": "Falha ao enfileirar {{total}} exportações. Câmeras com falha: {{failedCameras}}", + "batchPartial": "Iniciadas {{successful}} de {{total}} exportações. Câmeras com falha: {{failedCameras}}", + "batchFailed": "Falha ao iniciar {{total}} exportações. Câmeras com falha: {{failedCameras}}", + "queued": "Exportação na fila. Acompanhe o progresso na página de exportações." }, "fromTimeline": { "saveExport": "Salvar Exportação", - "previewExport": "Pré-Visualizar Exportação" + "previewExport": "Pré-Visualizar Exportação", + "queueingExport": "Enfileirando exportação...", + "useThisRange": "Use esta faixa" }, "case": { "label": "Caso", @@ -94,7 +107,14 @@ "queueingButton": "Exportações na fila...", "exportButton_one": "Exportar câmera", "exportButton_many": "Exportar {{count}} câmeras", - "exportButton_other": "Exportar {{count}} câmeras" + "exportButton_other": "Exportar {{count}} câmeras", + "searchOrSelectGroup": "Procurar, ou selecionar um grupo de câmeras...", + "selectAll": "Selecionar todas as câmeras", + "clearSelection": "Limpar seleção", + "selectWithActivity": "Câmeras com rastreamento de objetos", + "selectGroup": "Selecione grupo", + "noMatchingCameras": "Nenhuma câmera corresponde à sua pesquisa", + "selectedCount": "{{selected}} / {{total}} selecionados" }, "multi": { "title_one": "Exportar análise", @@ -106,7 +126,14 @@ "exportButton_one": "Exportar análise", "exportButton_many": "Exportar {{count}} análises", "exportButton_other": "Exportar {{count}} análises", - "exportingButton": "Exportando..." + "exportingButton": "Exportando...", + "toast": { + "started_one": "Uma exportação iniciada. Abrindo o caso agora.", + "started_many": "Iniciadas {{count}} exportações. Abrindo o caso agora.", + "started_other": "", + "failed": "Falha ao iniciar {{total}} exportações. Falhas: {{failedItems}}", + "partial": "Iniciadas {{successful}} de {{total}} exportações. Falhas: {{failedItems}}" + } } }, "streaming": { @@ -154,6 +181,14 @@ "export": "Exportar", "deleteNow": "Deletar Agora", "markAsUnreviewed": "Marcar como não revisado" + }, + "shareTimestamp": { + "label": "Compartilhar marca de tempo", + "title": "Compartilhar marca de tempo", + "description": "Compartilhe uma URL com marca de tempo da posição atual da reprodução ou escolha uma marca de tempo personalizada. Observe que esta não é uma URL de compartilhamento público e só pode ser acessada por usuários que tenham acesso ao Frigate e a esta câmera.", + "custom": "Marcação de data/hora personalizado", + "button": "Compartilhar URL com marcação de tempo", + "shareTitle": "Marcação de data/hora da análise do Frigate: {{camera}}" } }, "imagePicker": { diff --git a/web/public/locales/pt-BR/components/player.json b/web/public/locales/pt-BR/components/player.json index 370565b63..e783725e8 100644 --- a/web/public/locales/pt-BR/components/player.json +++ b/web/public/locales/pt-BR/components/player.json @@ -4,7 +4,8 @@ "noPreviewFoundFor": "Nenhuma Pré-Visualização Encontrada em {{cameraName}}", "submitFrigatePlus": { "title": "Enviar esse frame para Frigate+?", - "submit": "Enviar" + "submit": "Enviar", + "previewError": "Não foi possível carregar a prévia do instantâneo. A gravação pode não estar disponível no momento." }, "livePlayerRequiredIOSVersion": "iOS 17.1 ou superior é necessário para esse tipo de transmissão ao vivo.", "streamOffline": { @@ -47,5 +48,6 @@ "error": { "submitFrigatePlusFailed": "Falha em submeter quadro ao Frigate+" } - } + }, + "cameraOff": "A câmera está desligada" } diff --git a/web/public/locales/pt-BR/config/cameras.json b/web/public/locales/pt-BR/config/cameras.json index 48b0de7d7..4be948c52 100644 --- a/web/public/locales/pt-BR/config/cameras.json +++ b/web/public/locales/pt-BR/config/cameras.json @@ -12,7 +12,7 @@ "description": "Habilitado" }, "audio": { - "label": "Eventos de áudio", + "label": "Detecção de áudio", "description": "Configurações para detecção de eventos baseados em áudio para esta câmera.", "enabled": { "label": "Habilitar detecção de áudio", @@ -28,11 +28,15 @@ }, "listen": { "label": "Tipos de escuta", - "description": "Lista de tipos de eventos de áudio a serem detectados (por exemplo: latido, alarme de incêndio, grito, fala, berro)." + "description": "Lista de tipos de eventos de áudio a serem detectados (por exemplo: latido, alarme de incêndio, fala, grito)." }, "filters": { "label": "Filtros de áudio", - "description": "Configurações de filtro por tipo de áudio, como limites de confiança, usadas para reduzir falsos positivos." + "description": "Configurações de filtro por tipo de áudio, como limites de confiança, usadas para reduzir falsos positivos.", + "threshold": { + "label": "Confiança mínima do áudio", + "description": "Limite mínimo de confiança para que o evento de áudio seja contabilizado." + } }, "enabled_in_config": { "label": "Estado de áudio original", @@ -47,11 +51,495 @@ "audio_transcription": { "label": "Transcrição de áudio", "enabled": { - "label": "Habilitar transcrição" + "label": "Habilitar transcrição", + "description": "Ative ou desative a transcrição de eventos de áudio acionada manualmente." }, "live_enabled": { - "label": "Transcrição em tempo real" + "label": "Transcrição em tempo real", + "description": "Ative a transcrição ao vivo por streaming para o áudio à medida que ele é recebido." }, - "description": "Configurações de transcrição de áudio e voz ao vivo para eventos e legendas em tempo real." + "description": "Configurações de transcrição de áudio e voz ao vivo para eventos e legendas em tempo real.", + "enabled_in_config": { + "label": "Estado original da transcrição" + } + }, + "detect": { + "enabled": { + "label": "Ativar detecção de objetos", + "description": "Ative ou desative a detecção de objetos para esta câmera." + }, + "height": { + "label": "Detectar altura", + "description": "Altura (em pixels) dos quadros usados para o fluxo de detecção; deixe em branco para usar a resolução nativa do fluxo." + }, + "width": { + "label": "Detectar largura", + "description": "Largura (em pixels) dos quadros usados para o fluxo de detecção; deixe em branco para usar a resolução nativa do fluxo." + }, + "fps": { + "label": "Detectar FPS", + "description": "Taxa de quadros por segundo desejada para a execução da detecção; valores mais baixos reduzem o uso da CPU (o valor recomendado é 5; defina um valor mais alto — no máximo 10 — apenas se estiver rastreando objetos que se movem extremamente rápido)." + }, + "min_initialized": { + "label": "Quadros de inicialização mínimos", + "description": "Número de detecções consecutivas necessárias antes de criar um objeto rastreado. Aumente esse valor para reduzir inicializações falsas. O valor padrão é o fps dividido por 2." + }, + "max_disappeared": { + "label": "Máximo de quadros perdidos", + "description": "Número de quadros sem detecção antes que um objeto rastreado seja considerado desaparecido." + }, + "stationary": { + "label": "Configuração de objetos estáticos", + "description": "Configurações para detectar e gerenciar objetos que permanecem parados por um período de tempo.", + "interval": { + "label": "Intervalo estacionário", + "description": "Com que frequência (em quadros) realizar uma verificação de detecção para confirmar um objeto estacionário." + }, + "threshold": { + "label": "Limiar estacionário", + "description": "Número de quadros sem alteração de posição necessários para marcar um objeto como estacionário." + }, + "max_frames": { + "label": "Quadros máximos", + "description": "Limita por quanto tempo objetos estacionários são rastreados antes de serem descartados.", + "default": { + "label": "Máximo de quadros padrão", + "description": "Número máximo padrão de quadros para rastrear um objeto estacionário antes de parar." + }, + "objects": { + "label": "Quadros máximos do objeto", + "description": "Substituições por objeto para o número máximo de quadros de rastreamento de objetos estacionários." + } + }, + "classifier": { + "label": "Ativar classificador visual", + "description": "Use um classificador visual para detectar objetos verdadeiramente estacionários, mesmo quando as caixas delimitadoras oscilam." + } + }, + "annotation_offset": { + "label": "Deslocamento da anotação", + "description": "Milissegundos para deslocar as anotações de detecção, a fim de alinhar melhor as caixas delimitadoras da linha do tempo com as gravações; pode ser um valor positivo ou negativo." + }, + "label": "Detecção de Objetos", + "description": "Configurações para a função de detecção (*detect*) usada para executar a detecção de objetos e inicializar rastreadores." + }, + "face_recognition": { + "label": "Reconhecimento facial", + "description": "Configurações de detecção e reconhecimento facial para esta câmera.", + "enabled": { + "label": "Ativar reconhecimento facial", + "description": "Ative ou desative o reconhecimento facial." + }, + "min_area": { + "label": "Área mínima do rosto", + "description": "Área mínima (em pixels) da caixa delimitadora de um rosto detectado necessária para tentar o reconhecimento." + } + }, + "ffmpeg": { + "label": "Fluxos (FFmpeg)", + "description": "Entradas de fluxo de câmera e opções do FFmpeg, incluindo caminho do binário, argumentos, aceleração de hardware (hwaccel) e argumentos de saída por função.", + "path": { + "label": "Caminho do FFmpeg", + "description": "Caminho para o binário do FFmpeg a ser utilizado ou um alias de versão (\"7.0\" ou \"8.0\")." + }, + "global_args": { + "label": "Argumentos globais do FFmpeg", + "description": "Argumentos globais passados para processos do FFmpeg." + }, + "hwaccel_args": { + "label": "Argumentos de aceleração de hardware", + "description": "Argumentos de aceleração de hardware para o FFmpeg. Recomenda-se o uso de predefinições específicas do provedor." + }, + "input_args": { + "label": "Argumentos de entrada", + "description": "Argumentos de entrada aplicados aos fluxos de entrada do FFmpeg." + }, + "output_args": { + "label": "Argumentos de saída", + "description": "Argumentos de saída padrão utilizados para diferentes funções do FFmpeg, como detecção e gravação.", + "detect": { + "label": "Detectar argumentos de saída", + "description": "Argumentos de saída padrão para fluxos de detecção de função." + }, + "record": { + "label": "Registrar argumentos de saída", + "description": "Argumentos de saída padrão para fluxos de função de registro." + } + }, + "retry_interval": { + "label": "Tempo de nova tentativa do FFmpeg", + "description": "Segundos de espera antes de tentar reconectar um fluxo de câmera após uma falha. O padrão é 10." + }, + "apple_compatibility": { + "label": "Compatibilidade com a Apple", + "description": "Ative a marcação HEVC para melhor compatibilidade com reprodutores da Apple ao gravar em H.265." + }, + "gpu": { + "label": "Índice da GPU", + "description": "Índice da GPU padrão usado para aceleração de hardware, se disponível." + }, + "inputs": { + "label": "Entradas de câmera", + "description": "Lista de definições de fluxo de entrada (caminhos e funções) para esta câmera.", + "path": { + "label": "Caminho de entrada", + "description": "URL ou caminho do fluxo de entrada da câmera." + }, + "roles": { + "label": "Funções de entrada", + "description": "Funções para este fluxo de entrada." + }, + "global_args": { + "label": "Argumentos globais do FFmpeg", + "description": "Argumentos globais do FFmpeg para este fluxo de entrada." + }, + "hwaccel_args": { + "label": "Argumentos de aceleração de hardware", + "description": "Argumentos de aceleração de hardware para este fluxo de entrada." + }, + "input_args": { + "label": "Argumentos de entrada", + "description": "Argumentos de entrada específicos para este fluxo." + } + } + }, + "birdseye": { + "mode": { + "label": "Modo de rastreamento", + "description": "Modo de inclusão de câmeras no Birdseye: 'objetos', 'movimento' ou 'contínuo'." + }, + "order": { + "label": "Posição", + "description": "Posição numérica que controla a ordem da câmera no layout de vista aérea (Birdseye)." + }, + "label": "Birdseye", + "description": "Configurações para a visualização composta \"Birdseye\", que combina múltiplas transmissões de câmera em um único layout.", + "enabled": { + "label": "Ativar Birdseye" + } + }, + "live": { + "label": "Reprodução ao vivo", + "description": "Configurações utilizadas pela interface web para controlar a seleção, a resolução e a qualidade da transmissão ao vivo.", + "streams": { + "label": "Nomes de transmissões ao vivo", + "description": "Mapeamento de nomes de fluxos configurados para nomes de restream/go2rtc usados na reprodução ao vivo." + }, + "height": { + "description": "Altura (em pixels) para renderizar a transmissão ao vivo jsmpeg na interface web; deve ser menor ou igual à altura da transmissão de detecção." + }, + "quality": { + "description": "Qualidade de codificação para o fluxo jsmpeg (1 para a mais alta, 31 para a mais baixa)." + } + }, + "motion": { + "enabled": { + "label": "Ativar detecção de movimento", + "description": "Ative ou desative a detecção de movimento para esta câmera." + }, + "threshold": { + "label": "Limiar de movimento", + "description": "Limiar de diferença de pixels utilizado pelo detector de movimento; valores mais altos reduzem a sensibilidade (faixa de 1 a 255)." + }, + "lightning_threshold": { + "label": "Limiar de relâmpago", + "description": "Limite para detectar e ignorar picos breves de luminosidade (valores mais baixos indicam maior sensibilidade; valores entre 0,3 e 1,0). Isso não impede totalmente a detecção de movimento; apenas faz com que o detector pare de analisar quadros adicionais assim que o limite é excedido. Gravações baseadas em movimento continuam sendo geradas durante esses eventos." + }, + "skip_motion_threshold": { + "label": "Limite de movimento para pular", + "description": "Se definido para um valor entre 0,0 e 1,0, e se uma proporção da imagem superior a esse valor sofrer alterações em um único quadro, o detector não retornará caixas de detecção de movimento e será recalibrado imediatamente. Isso pode economizar recursos da CPU e reduzir falsos positivos causados por relâmpagos, tempestades, etc., mas pode deixar passar eventos reais, como o rastreamento automático de um objeto por uma câmera PTZ. A escolha envolve um equilíbrio entre descartar alguns megabytes de gravações e analisar alguns clipes curtos. Deixe a opção não definida (None) para desativar esse recurso." + }, + "improve_contrast": { + "label": "Melhorar contraste", + "description": "Aplique melhoria de contraste aos quadros antes da análise de movimento para auxiliar na detecção." + }, + "contour_area": { + "label": "Área de contorno", + "description": "Área mínima do contorno, em pixels, necessária para que um contorno de movimento seja contabilizado." + }, + "delta_alpha": { + "label": "Delta Alfa", + "description": "Fator de *alpha blending* utilizado na diferenciação de quadros para o cálculo de movimento." + }, + "frame_alpha": { + "label": "Quadro alfa", + "description": "Valor alfa utilizado ao combinar quadros para o pré-processamento de movimento." + }, + "frame_height": { + "label": "Altura da quadro", + "description": "Altura em pixels para a qual os quadros são redimensionados ao calcular o movimento." + }, + "mask": { + "label": "Coordenadas da máscara", + "description": "Coordenadas x,y ordenadas que definem o polígono da máscara de movimento utilizado para incluir ou excluir áreas." + }, + "mqtt_off_delay": { + "label": "Atraso de desligamento MQTT", + "description": "Segundos de espera após o último movimento antes de publicar um estado \"off\" via MQTT." + }, + "enabled_in_config": { + "label": "Estado de movimento original", + "description": "Indica se a detecção de movimento estava habilitada na configuração estática original." + }, + "raw_mask": { + "label": "Máscara Bruta" + }, + "label": "Detecção de movimento", + "description": "Configurações padrão de detecção de movimento para esta câmera." + }, + "objects": { + "label": "Objetos", + "description": "Configurações padrão de rastreamento de objetos, incluindo quais rótulos rastrear e filtros por objeto.", + "track": { + "label": "Objetos a rastrear", + "description": "Lista de rótulos de objetos a serem rastreados para esta câmera." + }, + "filters": { + "label": "Filtros de objeto", + "description": "Filtros aplicados aos objetos detectados para reduzir falsos positivos (área, proporção, confiança).", + "min_area": { + "label": "Área mínima do objeto", + "description": "Área mínima da caixa delimitadora (em pixels ou porcentagem) necessária para este tipo de objeto. Pode ser especificada em pixels (inteiro) ou porcentagem (valor de ponto flutuante entre 0,000001 e 0,99)." + }, + "max_area": { + "label": "Área máxima do objeto", + "description": "Área máxima da caixa delimitadora (pixels ou porcentagem) permitida para este tipo de objeto. Pode ser pixels (int) ou porcentagem (flutuar entre 0,000001 e 0,99)." + }, + "min_ratio": { + "label": "Razão de aspecto mínimo", + "description": "Razão mínima entre largura e altura necessária para que a caixa delimitadora se qualifique." + }, + "max_ratio": { + "label": "Razão de aspecto máxima", + "description": "Razão máxima entre largura e altura permitida para que a caixa delimitadora qualifique." + }, + "threshold": { + "label": "Limiar de confiança", + "description": "Limiar médio de confiança de detecção necessário para que o objeto seja considerado um verdadeiro positivo." + }, + "min_score": { + "label": "Confiança mínima", + "description": "Confiança mínima de detecção em um único quadro necessária para que o objeto seja contabilizado." + }, + "mask": { + "label": "Máscara com filtro", + "description": "Coordenadas do polígono que definem onde este filtro é aplicado dentro do quadro." + }, + "raw_mask": { + "label": "Máscara Bruta" + } + }, + "mask": { + "label": "Máscara de objeto", + "description": "Polígono de máscara usado para impedir a detecção de objetos em áreas específicas." + }, + "raw_mask": { + "label": "Máscara Bruta" + }, + "genai": { + "label": "Configuração de objeto da GenAI", + "description": "Opções de GenIA para descrever objetos rastreados e enviar quadros para geração.", + "enabled": { + "label": "Ativar GenAI", + "description": "Habilitar por padrão a geração de descrições para objetos rastreados usando GenAI." + }, + "use_snapshot": { + "label": "Usar instantâneos", + "description": "Use instantâneos de objetos em vez de miniaturas para a geração de descrições pela GenAI." + }, + "prompt": { + "label": "Sugestão de legenda", + "description": "Modelo de prompt padrão usado ao gerar descrições com GenAI." + }, + "object_prompts": { + "label": "Prompts de objeto", + "description": "Prompts por objeto para personalizar as saídas de GenAI para rótulos específicos." + }, + "objects": { + "label": "Objetos de GenAI", + "description": "Lista de rótulos de objetos a serem enviados à GenAI por padrão." + }, + "required_zones": { + "label": "Zonas obrigatórias", + "description": "Zonas que devem ser acessadas para que os objetos se qualifiquem para a geração de descrições pela GenAI." + }, + "debug_save_thumbnails": { + "label": "Salvar miniaturas", + "description": "Salve as miniaturas enviadas à GenAI para depuração e revisão." + }, + "send_triggers": { + "label": "Gatilhos de GenAI", + "description": "Define quando os quadros devem ser enviados para a GenAI (ao final, após atualizações, etc.).", + "tracked_object_end": { + "label": "Enviar no fim", + "description": "Envie uma solicitação à GenAI quando o objeto rastreado terminar." + }, + "after_significant_updates": { + "label": "Acionamento antecipado da GenAI", + "description": "Envie uma solicitação à GenAI após um número especificado de atualizações significativas do objeto monitorado." + } + }, + "enabled_in_config": { + "label": "Estado original da GenAI", + "description": "Indica se a GenAI foi habilitada na configuração estática original." + } + } + }, + "lpr": { + "enabled": { + "label": "Ativar LPR", + "description": "Ative ou desative o LPR nesta câmera." + }, + "expire_time": { + "label": "Segundos para expirar", + "description": "Tempo, em segundos, após o qual uma placa não detectada é removida do rastreador (apenas para câmeras LPR dedicadas)." + }, + "min_area": { + "label": "Área mínima da placa", + "description": "Área mínima da placa (em pixels) necessária para tentar o reconhecimento." + }, + "enhancement": { + "label": "Nível de aprimoramento", + "description": "Nível de aprimoramento (0-10) a ser aplicado aos recortes da placa antes do OCR; valores mais altos nem sempre melhoram os resultados, e níveis acima de 5 podem funcionar apenas com placas noturnas, devendo ser utilizados com cautela." + } + }, + "record": { + "label": "Gravação", + "description": "Configurações de gravação e retenção para esta câmera.", + "enabled": { + "label": "Ativar gravação", + "description": "Ative ou desative a gravação para esta câmera." + }, + "expire_interval": { + "label": "Intervalo de limpeza de gravação", + "description": "Minutos entre as execuções de limpeza que removem segmentos de gravação expirados." + }, + "continuous": { + "label": "Retenção contínua", + "description": "Número de dias para manter as gravações, independentemente de objetos rastreados ou movimento. Defina como 0 se quiser manter apenas gravações de alertas e detecções.", + "days": { + "label": "Dias de retenção", + "description": "Dias para manter as gravações." + } + }, + "motion": { + "label": "Retenção de movimento", + "description": "Número de dias para manter gravações acionadas por movimento, independentemente dos objetos rastreados. Defina como 0 se quiser manter apenas gravações de alertas e detecções.", + "days": { + "label": "Dias de retenção", + "description": "Dias para manter as gravações." + } + }, + "detections": { + "label": "Retenção de detecção", + "description": "Configurações de retenção de gravação para eventos de detecção, incluindo durações de pré e pós-captura.", + "pre_capture": { + "label": "Segundos de pré-captura", + "description": "Número de segundos anteriores ao evento de detecção a serem incluídos na gravação." + }, + "post_capture": { + "label": "Segundos após a captura", + "description": "Número de segundos após o evento de detecção a serem incluídos na gravação." + }, + "retain": { + "label": "Retenção de eventos", + "description": "Configurações de retenção para gravações de eventos de detecção.", + "days": { + "label": "Dias de retenção", + "description": "Número de dias para manter as gravações de eventos de detecção." + }, + "mode": { + "label": "Modo de retenção", + "description": "Modo de retenção: all (salva todos os segmentos), motion (salva segmentos com movimento) ou active_objects (salva segmentos com objetos ativos)." + } + } + }, + "alerts": { + "label": "Retenção de alertas", + "description": "Configurações de retenção de gravações para eventos de alerta, incluindo durações de pré e pós-captura.", + "pre_capture": { + "label": "Segundos de pré-captura", + "description": "Número de segundos anteriores ao evento de detecção a serem incluídos na gravação." + }, + "post_capture": { + "label": "Segundos após a captura", + "description": "Número de segundos após o evento de detecção a serem incluídos na gravação." + }, + "retain": { + "label": "Retenção de eventos", + "description": "Configurações de retenção para gravações de eventos de detecção.", + "days": { + "label": "Dias de retenção", + "description": "Número de dias para manter as gravações de eventos de detecção." + }, + "mode": { + "label": "Modo de retenção", + "description": "Modo de retenção: all (salvar todos os segmentos), motion (salvar segmentos com movimento) ou active_objects (salvar segmentos com objetos ativos)." + } + } + }, + "export": { + "label": "Exportar configuração", + "description": "Configurações utilizadas ao exportar gravações, como timelapse e aceleração de hardware.", + "hwaccel_args": { + "label": "Exportar argumentos de hwaccel", + "description": "Argumentos de aceleração de hardware a serem usados para operações de exportação/transcodificação." + }, + "max_concurrent": { + "label": "Máximo de exportações simultâneas", + "description": "Número máximo de tarefas de exportação a serem processadas simultaneamente." + }, + "chapters": { + "label": "Metadados de capítulos para incorporar nas gravações exportadas" + } + }, + "preview": { + "label": "Pré-visualizar configuração", + "description": "Configurações que controlam a qualidade das prévias de gravação exibidas na interface de usuário.", + "quality": { + "label": "Qualidade da pré-visualização", + "description": "Nível de qualidade da pré-visualização (muito_baixa, baixa, média, alta, muito_alta)." + } + }, + "enabled_in_config": { + "label": "Estado original da gravação", + "description": "Indica se a gravação foi habilitada na configuração estática original." + } + }, + "review": { + "label": "Rever", + "description": "Configurações que controlam alertas, detecções e resumos de revisão por GenAI utilizados pela interface do usuário e pelo armazenamento desta câmera.", + "alerts": { + "label": "Configuração de alertas", + "description": "Configurações sobre quais objetos monitorados geram alertas e como os alertas são retidos.", + "enabled": { + "label": "Ativar alertas", + "description": "Ative ou desative a geração de alertas para esta câmera." + }, + "labels": { + "label": "Etiquetas de alerta", + "description": "Lista de rótulos de objetos que se qualificam como alertas (por exemplo: carro, pessoa)." + }, + "required_zones": { + "label": "Zonas obrigatórias", + "description": "Zonas nas quais um objeto deve entrar para ser considerado um alerta; deixe em branco para permitir qualquer zona." + }, + "enabled_in_config": { + "label": "Estado dos alertas originais", + "description": "Monitora se os alertas estavam originalmente habilitados na configuração estática." + }, + "cutoff_time": { + "label": "Horário limite dos alertas", + "description": "Segundos de espera após a ausência de atividade que gere alerta antes de encerrar o alerta." + } + }, + "detections": { + "label": "Configuração de detecções", + "description": "Configurações que definem para quais objetos rastreados são geradas detecções (sem gerar alerta) e como essas detecções são retidas.", + "enabled": { + "label": "Ativar detecções", + "description": "Ative ou desative eventos de detecção para esta câmera." + } + } } } diff --git a/web/public/locales/pt-BR/config/global.json b/web/public/locales/pt-BR/config/global.json index a503c8ee9..1cf4a289e 100644 --- a/web/public/locales/pt-BR/config/global.json +++ b/web/public/locales/pt-BR/config/global.json @@ -34,11 +34,15 @@ }, "listen": { "label": "Tipos de escuta", - "description": "Lista de tipos de eventos de áudio a serem detectados (por exemplo: latido, alarme de incêndio, grito, fala, berro)." + "description": "Lista de tipos de eventos de áudio a serem detectados (por exemplo: latido, alarme de incêndio, fala, grito)." }, "filters": { "label": "Filtros de áudio", - "description": "Configurações de filtro por tipo de áudio, como limites de confiança, usadas para reduzir falsos positivos." + "description": "Configurações de filtro por tipo de áudio, como limites de confiança, usadas para reduzir falsos positivos.", + "threshold": { + "label": "Confiança mínima do áudio", + "description": "Limite mínimo de confiança para que o evento de áudio seja contabilizado." + } }, "enabled_in_config": { "label": "Estado de áudio original", @@ -47,7 +51,8 @@ "num_threads": { "label": "Threads de detecção", "description": "Número de threads a serem usadas para o processamento de detecção de áudio." - } + }, + "label": "Detecção de áudio" }, "auth": { "label": "Autenticação", @@ -82,8 +87,473 @@ "audio_transcription": { "label": "Transcrição de áudio", "live_enabled": { - "label": "Transcrição em tempo real" + "label": "Transcrição em tempo real", + "description": "Ative a transcrição ao vivo por streaming para o áudio à medida que ele é recebido." }, "description": "Configurações de transcrição de áudio e voz ao vivo para eventos e legendas em tempo real." + }, + "detect": { + "enabled": { + "label": "Ativar detecção de objetos" + }, + "height": { + "label": "Detectar altura", + "description": "Altura (em pixels) dos quadros usados para o fluxo de detecção; deixe em branco para usar a resolução nativa do fluxo." + }, + "width": { + "label": "Detectar largura", + "description": "Largura (em pixels) dos quadros usados para o fluxo de detecção; deixe em branco para usar a resolução nativa do fluxo." + }, + "fps": { + "label": "Detectar FPS", + "description": "Taxa de quadros por segundo desejada para a execução da detecção; valores mais baixos reduzem o uso da CPU (o valor recomendado é 5; defina um valor mais alto — no máximo 10 — apenas se estiver rastreando objetos que se movem extremamente rápido)." + }, + "min_initialized": { + "label": "Quadros de inicialização mínimos", + "description": "Número de detecções consecutivas necessárias antes de criar um objeto rastreado. Aumente esse valor para reduzir inicializações falsas. O valor padrão é o fps dividido por 2." + }, + "max_disappeared": { + "label": "Máximo de quadros perdidos", + "description": "Número de quadros sem detecção antes que um objeto rastreado seja considerado desaparecido." + }, + "stationary": { + "label": "Configuração de objetos estáticos", + "description": "Configurações para detectar e gerenciar objetos que permanecem parados por um período de tempo.", + "interval": { + "label": "Intervalo estacionário", + "description": "Com que frequência (em quadros) realizar uma verificação de detecção para confirmar um objeto estacionário." + }, + "threshold": { + "label": "Limiar estacionário", + "description": "Número de quadros sem alteração de posição necessários para marcar um objeto como estacionário." + }, + "max_frames": { + "label": "Quadros máximos", + "description": "Limita por quanto tempo objetos estacionários são rastreados antes de serem descartados.", + "default": { + "label": "Máximo de quadros padrão", + "description": "Número máximo padrão de quadros para rastrear um objeto estacionário antes de parar." + }, + "objects": { + "label": "Quadros máximos do objeto", + "description": "Substituições por objeto para o número máximo de quadros de rastreamento de objetos estacionários." + } + }, + "classifier": { + "label": "Ativar classificador visual", + "description": "Use um classificador visual para detectar objetos verdadeiramente estacionários, mesmo quando as caixas delimitadoras oscilam." + } + }, + "annotation_offset": { + "label": "Deslocamento da anotação", + "description": "Milissegundos para deslocar as anotações de detecção, a fim de alinhar melhor as caixas delimitadoras da linha do tempo com as gravações; pode ser um valor positivo ou negativo." + }, + "label": "Detecção de Objetos", + "description": "Configurações para a função de detecção (*detect*) usada para executar a detecção de objetos e inicializar rastreadores." + }, + "face_recognition": { + "label": "Reconhecimento facial", + "enabled": { + "label": "Ativar reconhecimento facial" + }, + "min_area": { + "label": "Área mínima do rosto", + "description": "Área mínima (em pixels) da caixa delimitadora de um rosto detectado necessária para tentar o reconhecimento." + } + }, + "ffmpeg": { + "path": { + "label": "Caminho do FFmpeg", + "description": "Caminho para o binário do FFmpeg a ser utilizado ou um alias de versão (\"7.0\" ou \"8.0\")." + }, + "global_args": { + "label": "Argumentos globais do FFmpeg", + "description": "Argumentos globais passados para processos do FFmpeg." + }, + "hwaccel_args": { + "label": "Argumentos de aceleração de hardware", + "description": "Argumentos de aceleração de hardware para o FFmpeg. Recomenda-se o uso de predefinições específicas do provedor." + }, + "input_args": { + "label": "Argumentos de entrada", + "description": "Argumentos de entrada aplicados aos fluxos de entrada do FFmpeg." + }, + "output_args": { + "label": "Argumentos de saída", + "description": "Argumentos de saída padrão utilizados para diferentes funções do FFmpeg, como detecção e gravação.", + "detect": { + "label": "Detectar argumentos de saída", + "description": "Argumentos de saída padrão para fluxos de detecção de função." + }, + "record": { + "label": "Registrar argumentos de saída", + "description": "Argumentos de saída padrão para fluxos de função de registro." + } + }, + "retry_interval": { + "label": "Tempo de nova tentativa do FFmpeg", + "description": "Segundos de espera antes de tentar reconectar um fluxo de câmera após uma falha. O padrão é 10." + }, + "apple_compatibility": { + "label": "Compatibilidade com a Apple", + "description": "Ative a marcação HEVC para melhor compatibilidade com reprodutores da Apple ao gravar em H.265." + }, + "gpu": { + "label": "Índice da GPU", + "description": "Índice da GPU padrão usado para aceleração de hardware, se disponível." + }, + "inputs": { + "label": "Entradas de câmera", + "description": "Lista de definições de fluxo de entrada (caminhos e funções) para esta câmera.", + "path": { + "label": "Caminho de entrada", + "description": "URL ou caminho do fluxo de entrada da câmera." + }, + "roles": { + "label": "Funções de entrada", + "description": "Funções para este fluxo de entrada." + }, + "global_args": { + "label": "Argumentos globais do FFmpeg", + "description": "Argumentos globais do FFmpeg para este fluxo de entrada." + }, + "hwaccel_args": { + "label": "Argumentos de aceleração de hardware", + "description": "Argumentos de aceleração de hardware para este fluxo de entrada." + }, + "input_args": { + "label": "Argumentos de entrada", + "description": "Argumentos de entrada específicos para este fluxo." + } + } + }, + "birdseye": { + "mode": { + "label": "Modo de rastreamento", + "description": "Modo de inclusão de câmeras no Birdseye: 'objetos', 'movimento' ou 'contínuo'." + }, + "order": { + "label": "Posição", + "description": "Posição numérica que controla a ordem da câmera no layout de vista aérea (Birdseye)." + }, + "label": "Birdseye", + "description": "Configurações para a visualização composta \"Birdseye\", que combina múltiplas transmissões de câmera em um único layout.", + "enabled": { + "label": "Ativar Birdseye" + } + }, + "live": { + "label": "Reprodução ao vivo", + "streams": { + "label": "Nomes de transmissões ao vivo", + "description": "Mapeamento de nomes de fluxos configurados para nomes de restream/go2rtc usados na reprodução ao vivo." + }, + "height": { + "description": "Altura (em pixels) para renderizar a transmissão ao vivo jsmpeg na interface web; deve ser menor ou igual à altura da transmissão de detecção." + }, + "quality": { + "description": "Qualidade de codificação para o fluxo jsmpeg (1 para a mais alta, 31 para a mais baixa)." + } + }, + "motion": { + "enabled": { + "label": "Ativar detecção de movimento" + }, + "threshold": { + "label": "Limiar de movimento", + "description": "Limiar de diferença de pixels utilizado pelo detector de movimento; valores mais altos reduzem a sensibilidade (faixa de 1 a 255)." + }, + "lightning_threshold": { + "label": "Limiar de relâmpago", + "description": "Limite para detectar e ignorar picos breves de luminosidade (valores mais baixos indicam maior sensibilidade; valores entre 0,3 e 1,0). Isso não impede totalmente a detecção de movimento; apenas faz com que o detector pare de analisar quadros adicionais assim que o limite é excedido. Gravações baseadas em movimento continuam sendo geradas durante esses eventos." + }, + "skip_motion_threshold": { + "label": "Limite de movimento para pular", + "description": "Se definido para um valor entre 0,0 e 1,0, e se uma proporção da imagem superior a esse valor sofrer alterações em um único quadro, o detector não retornará caixas de detecção de movimento e será recalibrado imediatamente. Isso pode economizar recursos da CPU e reduzir falsos positivos causados por relâmpagos, tempestades, etc., mas pode deixar passar eventos reais, como o rastreamento automático de um objeto por uma câmera PTZ. A escolha envolve um equilíbrio entre descartar alguns megabytes de gravações e analisar alguns clipes curtos. Deixe a opção não definida (None) para desativar esse recurso." + }, + "improve_contrast": { + "label": "Melhorar contraste", + "description": "Aplique melhoria de contraste aos quadros antes da análise de movimento para auxiliar na detecção." + }, + "contour_area": { + "label": "Área de contorno", + "description": "Área mínima do contorno, em pixels, necessária para que um contorno de movimento seja contabilizado." + }, + "delta_alpha": { + "label": "Delta Alfa", + "description": "Fator de *alpha blending* utilizado na diferenciação de quadros para o cálculo de movimento." + }, + "frame_alpha": { + "label": "Quadro alfa", + "description": "Valor alfa utilizado ao combinar quadros para o pré-processamento de movimento." + }, + "frame_height": { + "label": "Altura da quadro", + "description": "Altura em pixels para a qual os quadros são redimensionados ao calcular o movimento." + }, + "mask": { + "label": "Coordenadas da máscara", + "description": "Coordenadas x,y ordenadas que definem o polígono da máscara de movimento utilizado para incluir ou excluir áreas." + }, + "mqtt_off_delay": { + "label": "Atraso de desligamento MQTT", + "description": "Segundos de espera após o último movimento antes de publicar um estado \"off\" via MQTT." + }, + "enabled_in_config": { + "label": "Estado de movimento original", + "description": "Indica se a detecção de movimento estava habilitada na configuração estática original." + }, + "raw_mask": { + "label": "Máscara Bruta" + }, + "label": "Detecção de movimento" + }, + "objects": { + "label": "Objetos", + "description": "Configurações padrão de rastreamento de objetos, incluindo quais rótulos rastrear e filtros por objeto.", + "track": { + "label": "Objetos a rastrear" + }, + "filters": { + "label": "Filtros de objeto", + "description": "Filtros aplicados aos objetos detectados para reduzir falsos positivos (área, proporção, confiança).", + "min_area": { + "label": "Área mínima do objeto", + "description": "Área mínima da caixa delimitadora (em pixels ou porcentagem) necessária para este tipo de objeto. Pode ser especificada em pixels (inteiro) ou porcentagem (valor de ponto flutuante entre 0,000001 e 0,99)." + }, + "max_area": { + "label": "Área máxima do objeto", + "description": "Área máxima da caixa delimitadora (pixels ou porcentagem) permitida para este tipo de objeto. Pode ser pixels (int) ou porcentagem (flutuar entre 0,000001 e 0,99)." + }, + "min_ratio": { + "label": "Razão de aspecto mínimo", + "description": "Razão mínima entre largura e altura necessária para que a caixa delimitadora se qualifique." + }, + "max_ratio": { + "label": "Razão de aspecto máxima", + "description": "Razão máxima entre largura e altura permitida para que a caixa delimitadora qualifique." + }, + "threshold": { + "label": "Limiar de confiança", + "description": "Limiar médio de confiança de detecção necessário para que o objeto seja considerado um verdadeiro positivo." + }, + "min_score": { + "label": "Confiança mínima", + "description": "Confiança mínima de detecção em um único quadro necessária para que o objeto seja contabilizado." + }, + "mask": { + "label": "Máscara com filtro", + "description": "Coordenadas do polígono que definem onde este filtro é aplicado dentro do quadro." + }, + "raw_mask": { + "label": "Máscara Bruta" + } + }, + "mask": { + "label": "Máscara de objeto", + "description": "Polígono de máscara usado para impedir a detecção de objetos em áreas específicas." + }, + "raw_mask": { + "label": "Máscara Bruta" + }, + "genai": { + "label": "Configuração de objeto da GenAI", + "description": "Opções de GenIA para descrever objetos rastreados e enviar quadros para geração.", + "enabled": { + "label": "Ativar GenAI", + "description": "Habilitar por padrão a geração de descrições para objetos rastreados usando GenAI." + }, + "use_snapshot": { + "label": "Usar instantâneos", + "description": "Use instantâneos de objetos em vez de miniaturas para a geração de descrições pela GenAI." + }, + "prompt": { + "label": "Sugestão de legenda", + "description": "Modelo de prompt padrão usado ao gerar descrições com GenAI." + }, + "object_prompts": { + "label": "Prompts de objeto", + "description": "Prompts por objeto para personalizar as saídas de GenAI para rótulos específicos." + }, + "objects": { + "label": "Objetos de GenAI", + "description": "Lista de rótulos de objetos a serem enviados à GenAI por padrão." + }, + "required_zones": { + "label": "Zonas obrigatórias", + "description": "Zonas que devem ser acessadas para que os objetos se qualifiquem para a geração de descrições pela GenAI." + }, + "debug_save_thumbnails": { + "label": "Salvar miniaturas", + "description": "Salve as miniaturas enviadas à GenAI para depuração e revisão." + }, + "send_triggers": { + "label": "Gatilhos de GenAI", + "description": "Define quando os quadros devem ser enviados para a GenAI (ao final, após atualizações, etc.).", + "tracked_object_end": { + "label": "Enviar no fim", + "description": "Envie uma solicitação à GenAI quando o objeto rastreado terminar." + }, + "after_significant_updates": { + "label": "Acionamento antecipado da GenAI", + "description": "Envie uma solicitação à GenAI após um número especificado de atualizações significativas do objeto monitorado." + } + }, + "enabled_in_config": { + "label": "Estado original da GenAI", + "description": "Indica se a GenAI foi habilitada na configuração estática original." + } + } + }, + "lpr": { + "enabled": { + "label": "Ativar LPR" + }, + "expire_time": { + "label": "Segundos para expirar", + "description": "Tempo, em segundos, após o qual uma placa não detectada é removida do rastreador (apenas para câmeras LPR dedicadas)." + }, + "min_area": { + "label": "Área mínima da placa", + "description": "Área mínima da placa (em pixels) necessária para tentar o reconhecimento." + }, + "enhancement": { + "label": "Nível de aprimoramento", + "description": "Nível de aprimoramento (0-10) a ser aplicado aos recortes da placa antes do OCR; valores mais altos nem sempre melhoram os resultados, e níveis acima de 5 podem funcionar apenas com placas noturnas, devendo ser utilizados com cautela." + } + }, + "record": { + "label": "Gravação", + "enabled": { + "label": "Ativar gravação" + }, + "expire_interval": { + "label": "Intervalo de limpeza de gravação", + "description": "Minutos entre as execuções de limpeza que removem segmentos de gravação expirados." + }, + "continuous": { + "label": "Retenção contínua", + "description": "Número de dias para manter as gravações, independentemente de objetos rastreados ou movimento. Defina como 0 se quiser manter apenas gravações de alertas e detecções.", + "days": { + "label": "Dias de retenção", + "description": "Dias para manter as gravações." + } + }, + "motion": { + "label": "Retenção de movimento", + "description": "Número de dias para manter gravações acionadas por movimento, independentemente dos objetos rastreados. Defina como 0 se quiser manter apenas gravações de alertas e detecções.", + "days": { + "label": "Dias de retenção", + "description": "Dias para manter as gravações." + } + }, + "detections": { + "label": "Retenção de detecção", + "description": "Configurações de retenção de gravação para eventos de detecção, incluindo durações de pré e pós-captura.", + "pre_capture": { + "label": "Segundos de pré-captura", + "description": "Número de segundos anteriores ao evento de detecção a serem incluídos na gravação." + }, + "post_capture": { + "label": "Segundos após a captura", + "description": "Número de segundos após o evento de detecção a serem incluídos na gravação." + }, + "retain": { + "label": "Retenção de eventos", + "description": "Configurações de retenção para gravações de eventos de detecção.", + "days": { + "label": "Dias de retenção", + "description": "Número de dias para manter as gravações de eventos de detecção." + }, + "mode": { + "label": "Modo de retenção", + "description": "Modo de retenção: all (salva todos os segmentos), motion (salva segmentos com movimento) ou active_objects (salva segmentos com objetos ativos)." + } + } + }, + "alerts": { + "label": "Retenção de alertas", + "description": "Configurações de retenção de gravações para eventos de alerta, incluindo durações de pré e pós-captura.", + "pre_capture": { + "label": "Segundos de pré-captura", + "description": "Número de segundos anteriores ao evento de detecção a serem incluídos na gravação." + }, + "post_capture": { + "label": "Segundos após a captura", + "description": "Número de segundos após o evento de detecção a serem incluídos na gravação." + }, + "retain": { + "label": "Retenção de eventos", + "description": "Configurações de retenção para gravações de eventos de detecção.", + "days": { + "label": "Dias de retenção", + "description": "Número de dias para manter as gravações de eventos de detecção." + }, + "mode": { + "label": "Modo de retenção", + "description": "Modo de retenção: all (salvar todos os segmentos), motion (salvar segmentos com movimento) ou active_objects (salvar segmentos com objetos ativos)." + } + } + }, + "export": { + "label": "Exportar configuração", + "description": "Configurações utilizadas ao exportar gravações, como timelapse e aceleração de hardware.", + "hwaccel_args": { + "label": "Exportar argumentos de hwaccel", + "description": "Argumentos de aceleração de hardware a serem usados para operações de exportação/transcodificação." + }, + "max_concurrent": { + "label": "Máximo de exportações simultâneas", + "description": "Número máximo de tarefas de exportação a serem processadas simultaneamente." + }, + "chapters": { + "label": "Metadados de capítulos para incorporar nas gravações exportadas" + } + }, + "preview": { + "label": "Pré-visualizar configuração", + "description": "Configurações que controlam a qualidade das prévias de gravação exibidas na interface de usuário.", + "quality": { + "label": "Qualidade da pré-visualização", + "description": "Nível de qualidade da pré-visualização (muito_baixa, baixa, média, alta, muito_alta)." + } + }, + "enabled_in_config": { + "label": "Estado original da gravação", + "description": "Indica se a gravação foi habilitada na configuração estática original." + } + }, + "review": { + "label": "Rever", + "alerts": { + "label": "Configuração de alertas", + "description": "Configurações sobre quais objetos monitorados geram alertas e como os alertas são retidos.", + "enabled": { + "label": "Ativar alertas" + }, + "labels": { + "label": "Etiquetas de alerta", + "description": "Lista de rótulos de objetos que se qualificam como alertas (por exemplo: carro, pessoa)." + }, + "required_zones": { + "label": "Zonas obrigatórias", + "description": "Zonas nas quais um objeto deve entrar para ser considerado um alerta; deixe em branco para permitir qualquer zona." + }, + "enabled_in_config": { + "label": "Estado dos alertas originais", + "description": "Monitora se os alertas estavam originalmente habilitados na configuração estática." + }, + "cutoff_time": { + "label": "Horário limite dos alertas", + "description": "Segundos de espera após a ausência de atividade que gere alerta antes de encerrar o alerta." + } + }, + "detections": { + "label": "Configuração de detecções", + "description": "Configurações que definem para quais objetos rastreados são geradas detecções (sem gerar alerta) e como essas detecções são retidas.", + "enabled": { + "label": "Ativar detecções" + } + } } } diff --git a/web/public/locales/pt-BR/config/groups.json b/web/public/locales/pt-BR/config/groups.json index a392ecc76..cfe1a8829 100644 --- a/web/public/locales/pt-BR/config/groups.json +++ b/web/public/locales/pt-BR/config/groups.json @@ -64,5 +64,10 @@ "retention": "Retenção", "events": "Eventos" } + }, + "ffmpeg": { + "cameras": { + "cameraFfmpeg": "Argumentos do FFmpeg específicos para a câmera" + } } } diff --git a/web/public/locales/pt-BR/config/validation.json b/web/public/locales/pt-BR/config/validation.json index 3fc808668..073d1a578 100644 --- a/web/public/locales/pt-BR/config/validation.json +++ b/web/public/locales/pt-BR/config/validation.json @@ -28,5 +28,8 @@ "detectRequired": "Pelo menos um fluxo de entrada deve ter a função 'detectar' atribuída.", "hwaccelDetectOnly": "Somente o fluxo de entrada com a função de detecção pode definir argumentos de aceleração de hardware." } + }, + "detect": { + "dimensionMustBeEven": "Deve ser um número par." } } diff --git a/web/public/locales/pt-BR/views/chat.json b/web/public/locales/pt-BR/views/chat.json index 0967ef424..8f63a9e1a 100644 --- a/web/public/locales/pt-BR/views/chat.json +++ b/web/public/locales/pt-BR/views/chat.json @@ -1 +1,63 @@ -{} +{ + "documentTitle": "Frigate-Chat", + "title": "Chat-Frigate", + "subtitle": "Seu assistente de IA para gerenciamento de câmeras e insights", + "placeholder": "Pergunte o que quiser...", + "error": "Algo deu errado. Por favor, tente novamente.", + "processing": "Processando...", + "toolsUsed": "Usado: {{tools}}", + "showTools": "Mostrar ferramentas ({{count}})", + "hideTools": "Ocultar ferramentas", + "call": "Chamar", + "result": "Resultado", + "arguments": "Argumentos:", + "response": "Resposta:", + "attachment_chip_label": "{{label}} em {{camera}}", + "attachment_chip_remove": "Remover anexo", + "open_in_explore": "Abrir no Explorar", + "attach_event_aria": "Anexar evento {{eventId}}", + "attachment_picker_paste_label": "Ou cole o ID do evento", + "attachment_picker_attach": "Anexar", + "attachment_picker_placeholder": "Anexar um evento", + "quick_reply_find_similar": "Encontre avistamentos semelhantes", + "quick_reply_tell_me_more": "Conte-me mais sobre isso", + "quick_reply_when_else": "Em que outra ocasião isso foi visto?", + "quick_reply_find_similar_text": "Encontre avistamentos semelhantes a este.", + "quick_reply_tell_me_more_text": "Conte-me mais sobre este.", + "quick_reply_when_else_text": "Em que outra ocasião isso foi visto?", + "anchor": "Referência", + "similarity_score": "Semelhança", + "no_similar_objects_found": "Nenhum objeto semelhante encontrado.", + "semantic_search_required": "A busca semântica deve estar habilitada para encontrar objetos semelhantes.", + "send": "Enviar", + "suggested_requests": "Experimente perguntar:", + "starting_requests": { + "show_recent_events": "Mostrar eventos recentes", + "show_camera_status": "Mostrar status da câmera", + "recap": "O que aconteceu enquanto eu estava fora?", + "watch_camera": "Monitore uma câmera em busca de atividade" + }, + "starting_requests_prompts": { + "show_recent_events": "Mostre-me os eventos recentes da última hora", + "show_camera_status": "Qual é o status atual das minhas câmeras?", + "recap": "O que aconteceu enquanto eu estava fora?", + "watch_camera": "Fique de olho na porta da frente e me avise se alguém aparecer" + }, + "new_chat": "Novo chat", + "settings": { + "title": "Configurações do chat", + "show_stats": { + "title": "Mostrar estatísticas", + "desc": "Exibir a taxa de geração e o tamanho do contexto para respostas de chat.", + "while_generating": "Durante a geração", + "always": "Sempre" + }, + "auto_scroll": { + "title": "Rolagem automática", + "desc": "Acompanhe as novas mensagens à medida que chegam." + } + }, + "stats": { + "context": "{{tokens}} tokens" + } +} diff --git a/web/public/locales/pt-BR/views/classificationModel.json b/web/public/locales/pt-BR/views/classificationModel.json index 36f3539a0..39bc880a8 100644 --- a/web/public/locales/pt-BR/views/classificationModel.json +++ b/web/public/locales/pt-BR/views/classificationModel.json @@ -13,7 +13,7 @@ "toast": { "success": { "deletedCategory_one": "Classe Apagada", - "deletedCategory_many": "", + "deletedCategory_many": "Classes apagadas", "deletedCategory_other": "", "deletedImage_one": "Imagen Apagada", "deletedImage_many": "Imagens Apagadas", @@ -94,7 +94,14 @@ }, "noModels": { "object": { - "title": "Nenhum Modelo de Classificação de Objetos" + "title": "Nenhum Modelo de Classificação de Objetos", + "description": "Crie um modelo personalizado para classificar objetos detectados.", + "buttonText": "Criar modelo de objeto" + }, + "state": { + "title": "Modelos de Classificação Sem Estado", + "description": "Crie um modelo personalizado para monitorar e classificar mudanças de estado em áreas específicas da câmera.", + "buttonText": "Criar modelo de estado" } }, "deleteDatasetImages": { @@ -104,5 +111,13 @@ "title": "Editar Modelo de Classificação", "descriptionState": "Edite as classes deste modelo de classificação de estado. As alterações exigirão treinar novamente o modelo.", "descriptionObject": "Edite o tipo de objeto e tipo de classificação para este modelo de classificação de objeto." + }, + "reclassifyImageAs": "Reclassificar imagem como:", + "reclassifyImage": "Reclassificar imagem", + "wizard": { + "title": "Criar nova classificação", + "steps": { + "nameAndDefine": "Nomear e definir" + } } } diff --git a/web/public/locales/pt-BR/views/faceLibrary.json b/web/public/locales/pt-BR/views/faceLibrary.json index 7e8c8f56c..9e7a5b34c 100644 --- a/web/public/locales/pt-BR/views/faceLibrary.json +++ b/web/public/locales/pt-BR/views/faceLibrary.json @@ -72,7 +72,11 @@ "title": "Reconhecimentos Recentes", "aria": "Selecionar reconhecimentos recentes", "empty": "Não há tentativas recentes de reconhecimento facial", - "titleShort": "Recente" + "titleShort": "Recente", + "emptyNoLibrary": { + "title": "Carregue uma foto de rosto", + "description": "Você deve adicionar pelo menos um rosto à biblioteca para que o reconhecimento facial funcione." + } }, "selectFace": "Selecionar Rosto", "trainFaceAs": "Treinar Rosto como:", @@ -89,7 +93,8 @@ "renamedFace": "O rosto foi renomeado com sucesso para {{name}}", "deletedName_one": "{{count}} rosto foi deletado com sucesso.", "deletedName_many": "{{count}} rostos foram deletados com sucesso.", - "deletedName_other": "{{count}} rostos foram deletados com sucesso." + "deletedName_other": "{{count}} rostos foram deletados com sucesso.", + "reclassifiedFace": "Rosto reclassificado com sucesso." }, "error": { "uploadingImageFailed": "Falha ao enviar a imagem: {{errorMessage}}", @@ -98,7 +103,10 @@ "deleteNameFailed": "Falha ao deletar nome: {{errorMessage}}", "renameFaceFailed": "Falha ao renomear rosto: {{errorMessage}}", "trainFailed": "Falha ao treinar: {{errorMessage}}", - "updateFaceScoreFailed": "Falha ao atualizar pontuação de rosto: {{errorMessage}}" + "updateFaceScoreFailed": "Falha ao atualizar pontuação de rosto: {{errorMessage}}", + "reclassifyFailed": "Falha ao reclassificar o rosto: {{errorMessage}}" } - } + }, + "reclassifyFaceAs": "Reclassificar rosto como:", + "reclassifyFace": "Reclassificar rosto" } diff --git a/web/public/locales/pt-BR/views/live.json b/web/public/locales/pt-BR/views/live.json index a1b72767f..79d446d5f 100644 --- a/web/public/locales/pt-BR/views/live.json +++ b/web/public/locales/pt-BR/views/live.json @@ -58,7 +58,9 @@ }, "camera": { "enable": "Ativar Câmera", - "disable": "Desabilitar Câmera" + "disable": "Desabilitar Câmera", + "turnOn": "Ligar a câmera", + "turnOff": "Desligar a câmera" }, "muteCameras": { "enable": "Silenciar Todas as Câmeras", @@ -70,7 +72,8 @@ }, "recording": { "enable": "Ativar Gravação", - "disable": "Desativar Gravação" + "disable": "Desativar Gravação", + "disabledInConfig": "A gravação deve ser habilitada primeiro nas configurações desta câmera." }, "snapshots": { "enable": "Permitir Capturas de Imagem", @@ -150,7 +153,8 @@ "snapshots": "Capturas de Imagem", "audioDetection": "Detecção de Áudio", "autotracking": "Auto Rastreamento", - "transcription": "Transcrição de Áudio" + "transcription": "Transcrição de Áudio", + "camera": "Câmera" }, "history": { "label": "Exibir gravação histórica" diff --git a/web/public/locales/pt-BR/views/replay.json b/web/public/locales/pt-BR/views/replay.json index 0967ef424..58ccb6963 100644 --- a/web/public/locales/pt-BR/views/replay.json +++ b/web/public/locales/pt-BR/views/replay.json @@ -1 +1,19 @@ -{} +{ + "title": "Depuração de Replay", + "description": "“Reproduza gravações de câmera para depuração. A lista de objetos exibe um resumo com atraso temporal, dos objetos detectados e a aba de mensagens mostra um fluxo de mensagens internas do Frigate provenientes da gravação reproduzida.", + "websocket_messages": "Mensagens", + "dialog": { + "title": "Iniciar Replay de Depuração", + "description": "Crie uma câmera de reprodução temporária que exiba imagens históricas em loop para depurar problemas de detecção e rastreamento de objetos. A câmera de reprodução terá a mesma configuração de detecção da câmera de origem. Escolha um intervalo de tempo para começar.", + "camera": "Câmera de origem", + "timeRange": "Intervalo de tempo", + "preset": { + "1m": "Último minuto", + "5m": "Últimos 5 minutos", + "timeline": "Da Linha do Tempo", + "custom": "Personalizada" + }, + "startButton": "Iniciar Reprodução", + "selectFromTimeline": "Selecionar" + } +} diff --git a/web/public/locales/pt-BR/views/settings.json b/web/public/locales/pt-BR/views/settings.json index c937906c4..00d86e28b 100644 --- a/web/public/locales/pt-BR/views/settings.json +++ b/web/public/locales/pt-BR/views/settings.json @@ -15,7 +15,8 @@ "globalConfig": "Configuração Global - Frigate", "cameraConfig": "Configuração da Câmera - Frigate", "maintenance": "Manutenção - Frigate", - "profiles": "Perfis - Frigate" + "profiles": "Perfis - Frigate", + "detectorsAndModel": "Detectores e modelo - Frigate" }, "menu": { "ui": "UI", @@ -42,7 +43,42 @@ "globalFfmpeg": "FFmpeg", "globalMotion": "Detecção de movimento", "globalObjects": "Objetos", - "globalReview": "Revisar" + "globalReview": "Revisar", + "globalSnapshots": "Instantâneos", + "globalAudioEvents": "Detecção de áudio", + "globalLivePlayback": "Reprodução ao vivo", + "globalTimestampStyle": "Estilo de carimbo de data/hora", + "systemDatabase": "Banco de dados", + "systemTls": "TLS", + "systemAuthentication": "Autenticação", + "systemNetworking": "Rede", + "systemProxy": "Proxy", + "systemUi": "IU", + "systemLogging": "Registro", + "systemEnvironmentVariables": "Variáveis de ambiente", + "systemTelemetry": "Telemetria", + "systemBirdseye": "Birdseye", + "systemFfmpeg": "FFmpeg", + "systemDetectorsAndModel": "Detectores e modelo", + "systemMqtt": "MQTT", + "systemGo2rtcStreams": "Fluxo de go2rtc", + "integrationSemanticSearch": "Busca semântica", + "integrationGenerativeAi": "IA generativa", + "integrationFaceRecognition": "Reconhecimento facial", + "integrationLpr": "Reconhecimento de placas", + "integrationObjectClassification": "Classificação de objetos", + "integrationAudioTranscription": "Transcrição de áudio", + "cameraDetect": "Detecção de objetos", + "cameraFfmpeg": "Fluxos (FFmpeg)", + "cameraRecording": "Gravação", + "cameraSnapshots": "Instantâneos", + "cameraMotion": "Detecção de movimento", + "cameraObjects": "Objetos", + "cameraConfigReview": "Análise", + "cameraAudioEvents": "Detecção de áudio", + "cameraAudioTranscription": "Transcrição de áudio", + "cameraNotifications": "Notificações", + "cameraLivePlayback": "Reprodução ao vivo" }, "dialog": { "unsavedChanges": { @@ -930,6 +966,15 @@ "overriddenGlobal": "Substituir (Global)", "overriddenGlobalTooltip": "Esta câmera substitui as configurações globais desta seção", "overriddenBaseConfig": "Substituído (Configuração base)", - "overriddenBaseConfigTooltip": "O perfil {{profile}} substitui as configurações desta seção" + "overriddenBaseConfigTooltip": "O perfil {{profile}} substitui as configurações desta seção", + "overriddenBaseConfigNoDeltas": "O perfil {{profile}} substitui esta seção, mas nenhum valor de campo difere da configuração base.", + "overriddenInCameras": { + "profilePrefix": "{{profile}} perfil: {{fields}}" + } + }, + "menuDot": { + "overrideGlobal": "Esta seção substitui a configuração global", + "overrideProfile": "Esta seção é substituída pelo perfil {{profile}}", + "unsaved": "Esta seção contém alterações não salvas" } }