diff --git a/messages/pt-PT.json b/messages/pt-PT.json
index b121f4b16..2573ed6da 100644
--- a/messages/pt-PT.json
+++ b/messages/pt-PT.json
@@ -148,6 +148,11 @@
"createLink": "Criar Link",
"resourcesNotFound": "Nenhum recurso encontrado",
"resourceSearch": "Recursos de pesquisa",
+ "machineSearch": "Procurar máquinas",
+ "machinesSearch": "Pesquisar clientes de máquina...",
+ "machineNotFound": "Nenhuma máquina encontrada",
+ "userDeviceSearch": "Procurar dispositivos do usuário",
+ "userDevicesSearch": "Pesquisar dispositivos do usuário...",
"openMenu": "Abrir menu",
"resource": "Recurso",
"title": "Título",
@@ -323,6 +328,54 @@
"apiKeysDelete": "Excluir Chave API",
"apiKeysManage": "Gerir Chaves API",
"apiKeysDescription": "As chaves API são usadas para autenticar com a API de integração",
+ "provisioningKeysTitle": "Chave de provisionamento",
+ "provisioningKeysManage": "Gerenciar chaves de provisionamento",
+ "provisioningKeysDescription": "Chaves de provisionamento são usadas para autenticar o provisionamento automatizado do site para sua organização.",
+ "provisioningManage": "Provisionamento",
+ "provisioningDescription": "Gerenciar chaves de provisionamento e revisar sites pendentes aguardando aprovação.",
+ "pendingSites": "Sites pendentes",
+ "siteApproveSuccess": "Site aprovado com sucesso",
+ "siteApproveError": "Erro ao aprovar site",
+ "provisioningKeys": "Posicionando chaves",
+ "searchProvisioningKeys": "Pesquisar chaves de provisionamento...",
+ "provisioningKeysAdd": "Gerar chave de provisionamento",
+ "provisioningKeysErrorDelete": "Erro ao excluir chave de provisionamento",
+ "provisioningKeysErrorDeleteMessage": "Erro ao excluir chave de provisionamento",
+ "provisioningKeysQuestionRemove": "Tem certeza de que deseja remover esta chave de provisionamento da organização?",
+ "provisioningKeysMessageRemove": "Uma vez removida, a chave não pode mais ser usada para o provisionamento do site.",
+ "provisioningKeysDeleteConfirm": "Confirmar chave de exclusão",
+ "provisioningKeysDelete": "Apagar chave de provisionamento",
+ "provisioningKeysCreate": "Gerar chave de provisionamento",
+ "provisioningKeysCreateDescription": "Gerar uma nova chave de provisionamento para a organização",
+ "provisioningKeysSeeAll": "Ver todas as chaves provisionadas",
+ "provisioningKeysSave": "Salvar a chave de provisionamento",
+ "provisioningKeysSaveDescription": "Você só será capaz de ver esta vez. Copiá-lo para um lugar seguro.",
+ "provisioningKeysErrorCreate": "Erro ao criar chave de provisionamento",
+ "provisioningKeysList": "Nova chave de aprovisionamento",
+ "provisioningKeysMaxBatchSize": "Tamanho máximo do lote",
+ "provisioningKeysUnlimitedBatchSize": "Tamanho ilimitado em lote (sem limite)",
+ "provisioningKeysMaxBatchUnlimited": "Ilimitado",
+ "provisioningKeysMaxBatchSizeInvalid": "Informe um tamanho máximo válido em lote (1–1,000,000).",
+ "provisioningKeysValidUntil": "Valido ate",
+ "provisioningKeysValidUntilHint": "Deixe em branco para nenhuma expiração.",
+ "provisioningKeysValidUntilInvalid": "Informe uma data e hora válidas.",
+ "provisioningKeysNumUsed": "Use percentual",
+ "provisioningKeysLastUsed": "Última utilização",
+ "provisioningKeysNoExpiry": "Sem vencimento",
+ "provisioningKeysNeverUsed": "nunca",
+ "provisioningKeysEdit": "Editar chave de provisionamento",
+ "provisioningKeysEditDescription": "Atualizar o tamanho máximo do lote e tempo de expiração para esta chave.",
+ "provisioningKeysApproveNewSites": "Aprovar novos sites",
+ "provisioningKeysApproveNewSitesDescription": "Aprovar automaticamente sites que se registram com esta chave.",
+ "provisioningKeysUpdateError": "Erro ao atualizar chave de provisionamento",
+ "provisioningKeysUpdated": "Chave de provisionamento atualizada",
+ "provisioningKeysUpdatedDescription": "Suas alterações foram salvas.",
+ "provisioningKeysBannerTitle": "Chaves de provisionamento do site",
+ "provisioningKeysBannerDescription": "Gerar uma chave de provisionamento e usá-la com o conector de Newt para criar automaticamente sites na primeira inicialização — não é necessário configurar credenciais separadas para cada site.",
+ "provisioningKeysBannerButtonText": "Saiba mais",
+ "pendingSitesBannerTitle": "Sites pendentes",
+ "pendingSitesBannerDescription": "Sites que conectam usando uma chave de provisionamento aparecem aqui para revisão. Aprovar cada site antes de se tornar ativo e ganhar acesso a seus recursos.",
+ "pendingSitesBannerButtonText": "Saiba mais",
"apiKeysSettings": "Configurações de {apiKeyName}",
"userTitle": "Gerir Todos os Utilizadores",
"userDescription": "Visualizar e gerir todos os utilizadores no sistema",
@@ -509,9 +562,12 @@
"userSaved": "Usuário salvo",
"userSavedDescription": "O utilizador foi atualizado.",
"autoProvisioned": "Auto provisionado",
+ "autoProvisionSettings": "Configurações de provisão automática",
"autoProvisionedDescription": "Permitir que este utilizador seja gerido automaticamente pelo provedor de identidade",
"accessControlsDescription": "Gerir o que este utilizador pode aceder e fazer na organização",
"accessControlsSubmit": "Guardar Controlos de Acesso",
+ "singleRolePerUserPlanNotice": "Seu plano suporta apenas uma função por usuário.",
+ "singleRolePerUserEditionNotice": "Esta edição suporta apenas uma função por usuário.",
"roles": "Funções",
"accessUsersRoles": "Gerir Utilizadores e Funções",
"accessUsersRolesDescription": "Convidar usuários e adicioná-los a funções para gerenciar o acesso à organização",
@@ -1119,6 +1175,7 @@
"setupTokenDescription": "Digite o token de configuração do console do servidor.",
"setupTokenRequired": "Token de configuração é necessário",
"actionUpdateSite": "Atualizar Site",
+ "actionResetSiteBandwidth": "Redefinir banda da organização",
"actionListSiteRoles": "Listar Funções Permitidas do Site",
"actionCreateResource": "Criar Recurso",
"actionDeleteResource": "Eliminar Recurso",
@@ -1148,7 +1205,7 @@
"actionRemoveUser": "Remover Utilizador",
"actionListUsers": "Listar Utilizadores",
"actionAddUserRole": "Adicionar Função ao Utilizador",
- "actionSetUserOrgRoles": "Set User Roles",
+ "actionSetUserOrgRoles": "Definir funções do usuário",
"actionGenerateAccessToken": "Gerar Token de Acesso",
"actionDeleteAccessToken": "Eliminar Token de Acesso",
"actionListAccessTokens": "Listar Tokens de Acesso",
@@ -1265,6 +1322,7 @@
"sidebarRoles": "Papéis",
"sidebarShareableLinks": "Links",
"sidebarApiKeys": "Chaves API",
+ "sidebarProvisioning": "Provisionamento",
"sidebarSettings": "Configurações",
"sidebarAllUsers": "Todos os utilizadores",
"sidebarIdentityProviders": "Provedores de identidade",
@@ -1890,6 +1948,40 @@
"exitNode": "Nodo de Saída",
"country": "País",
"rulesMatchCountry": "Atualmente baseado no IP de origem",
+ "region": "Região",
+ "selectRegion": "Selecionar região",
+ "searchRegions": "Procurar regiões...",
+ "noRegionFound": "Nenhuma região encontrada.",
+ "rulesMatchRegion": "Selecione um grupo regional de países",
+ "rulesErrorInvalidRegion": "Região inválida",
+ "rulesErrorInvalidRegionDescription": "Por favor, selecione uma região válida.",
+ "regionAfrica": "África",
+ "regionNorthernAfrica": "África do Norte",
+ "regionEasternAfrica": "África Oriental",
+ "regionMiddleAfrica": "África Média",
+ "regionSouthernAfrica": "África Austral",
+ "regionWesternAfrica": "África Ocidental",
+ "regionAmericas": "Américas",
+ "regionCaribbean": "Caribe",
+ "regionCentralAmerica": "América Central",
+ "regionSouthAmerica": "América do Sul",
+ "regionNorthernAmerica": "América do Norte",
+ "regionAsia": "Ásia",
+ "regionCentralAsia": "Ásia Central",
+ "regionEasternAsia": "Ásia Oriental",
+ "regionSouthEasternAsia": "Sudeste da Ásia",
+ "regionSouthernAsia": "Sudeste da Ásia",
+ "regionWesternAsia": "Ásia Ocidental",
+ "regionEurope": "Europa",
+ "regionEasternEurope": "Europa Oriental",
+ "regionNorthernEurope": "Europa do Norte",
+ "regionSouthernEurope": "Europa do Sul",
+ "regionWesternEurope": "Europa Ocidental",
+ "regionOceania": "Oceania",
+ "regionAustraliaAndNewZealand": "Austrália e Nova Zelândia",
+ "regionMelanesia": "Melanesia",
+ "regionMicronesia": "Micronesia",
+ "regionPolynesia": "Polynesia",
"managedSelfHosted": {
"title": "Gerenciado Auto-Hospedado",
"description": "Servidor Pangolin auto-hospedado mais confiável e com baixa manutenção com sinos extras e assobiamentos",
@@ -1938,6 +2030,25 @@
"invalidValue": "Valor Inválido",
"idpTypeLabel": "Tipo de provedor de identidade",
"roleMappingExpressionPlaceholder": "ex.: Contem (grupos, 'administrador') && 'Administrador' 「'Membro'",
+ "roleMappingModeFixedRoles": "Papéis fixos",
+ "roleMappingModeMappingBuilder": "Mapeando Construtor",
+ "roleMappingModeRawExpression": "Expressão Bruta",
+ "roleMappingFixedRolesPlaceholderSelect": "Selecione um ou mais papéis",
+ "roleMappingFixedRolesPlaceholderFreeform": "Digite o nome das funções (correspondência exata por organização)",
+ "roleMappingFixedRolesDescriptionSameForAll": "Atribuir o mesmo conjunto de funções a cada usuário auto-provisionado.",
+ "roleMappingFixedRolesDescriptionDefaultPolicy": "Para políticas padrão, nomes de funções de tipo que existem em cada organização onde os usuários são fornecidos. Nomes devem coincidir exatamente.",
+ "roleMappingClaimPath": "Caminho da Reivindicação",
+ "roleMappingClaimPathPlaceholder": "grupos",
+ "roleMappingClaimPathDescription": "Caminho no payload token que contém valores de origem (por exemplo, grupos).",
+ "roleMappingMatchValue": "Valor Correspondente",
+ "roleMappingAssignRoles": "Atribuir Papéis",
+ "roleMappingAddMappingRule": "Adicionar regra de mapeamento",
+ "roleMappingRawExpressionResultDescription": "Expressão deve retornar à matriz string ou string.",
+ "roleMappingRawExpressionResultDescriptionSingleRole": "Expressão deve ser avaliada para uma string (um nome de função única).",
+ "roleMappingMatchValuePlaceholder": "Valor do jogo (por exemplo: administrador)",
+ "roleMappingAssignRolesPlaceholderFreeform": "Digite nomes de funções ((exact por org)",
+ "roleMappingBuilderFreeformRowHint": "Nomes de papéis devem corresponder a um papel em cada organizaçãoalvo.",
+ "roleMappingRemoveRule": "Remover",
"idpGoogleConfiguration": "Configuração do Google",
"idpGoogleConfigurationDescription": "Configurar as credenciais do Google OAuth2",
"idpGoogleClientIdDescription": "Google OAuth2 Client ID",
@@ -2334,6 +2445,8 @@
"logRetentionAccessDescription": "Por quanto tempo manter os registros de acesso",
"logRetentionActionLabel": "Ação de Retenção no Log",
"logRetentionActionDescription": "Por quanto tempo manter os registros de ação",
+ "logRetentionConnectionLabel": "Retenção de registro de conexão",
+ "logRetentionConnectionDescription": "Por quanto tempo manter os registros de conexão",
"logRetentionDisabled": "Desabilitado",
"logRetention3Days": "3 dias",
"logRetention7Days": "7 dias",
@@ -2344,6 +2457,13 @@
"logRetentionEndOfFollowingYear": "Fim do ano seguinte",
"actionLogsDescription": "Visualizar histórico de ações realizadas nesta organização",
"accessLogsDescription": "Ver solicitações de autenticação de recursos nesta organização",
+ "connectionLogs": "Logs da conexão",
+ "connectionLogsDescription": "Ver logs de conexão para túneis nesta organização",
+ "sidebarLogsConnection": "Logs da conexão",
+ "sidebarLogsStreaming": "Transmitindo",
+ "sourceAddress": "Endereço de origem",
+ "destinationAddress": "Endereço de destino",
+ "duration": "Duração",
"licenseRequiredToUse": "Uma licença Enterprise Edition ou Pangolin Cloud é necessária para usar este recurso. Reserve um teste de demonstração ou POC.",
"ossEnterpriseEditionRequired": "O Enterprise Edition é necessário para usar este recurso. Este recurso também está disponível no Pangolin Cloud. Reserve uma demonstração ou avaliação POC.",
"certResolver": "Resolvedor de Certificado",
@@ -2683,5 +2803,90 @@
"approvalsEmptyStateStep2Description": "Editar uma função e habilitar a opção 'Exigir aprovação de dispositivos'. Usuários com essa função precisarão de aprovação de administrador para novos dispositivos.",
"approvalsEmptyStatePreviewDescription": "Pré-visualização: Quando ativado, solicitações de dispositivo pendentes aparecerão aqui para revisão",
"approvalsEmptyStateButtonText": "Gerir Funções",
- "domainErrorTitle": "Estamos tendo problemas ao verificar seu domínio"
+ "domainErrorTitle": "Estamos tendo problemas ao verificar seu domínio",
+ "idpAdminAutoProvisionPoliciesTabHint": "Configurar funções de mapeamento e políticas de organização na aba Auto Provision Settings.",
+ "streamingTitle": "Streaming do Evento",
+ "streamingDescription": "Transmita eventos de sua organização para destinos externos em tempo real.",
+ "streamingUnnamedDestination": "Destino sem nome",
+ "streamingNoUrlConfigured": "Nenhuma URL configurada",
+ "streamingAddDestination": "Adicionar destino",
+ "streamingHttpWebhookTitle": "Webhook HTTP",
+ "streamingHttpWebhookDescription": "Envie os eventos para qualquer endpoint HTTP com autenticação flexível e modelo.",
+ "streamingS3Title": "Amazon S3",
+ "streamingS3Description": "Transmitir eventos para um balde de armazenamento de objetos compatível com S3. Em breve.",
+ "streamingDatadogTitle": "Datadog",
+ "streamingDatadogDescription": "Encaminha eventos diretamente para a sua conta no Datadog. Em breve.",
+ "streamingTypePickerDescription": "Escolha um tipo de destino para começar.",
+ "streamingFailedToLoad": "Falha ao carregar destinos",
+ "streamingUnexpectedError": "Ocorreu um erro inesperado.",
+ "streamingFailedToUpdate": "Falha ao atualizar destino",
+ "streamingDeletedSuccess": "Destino apagado com sucesso",
+ "streamingFailedToDelete": "Falha ao excluir destino",
+ "streamingDeleteTitle": "Excluir destino",
+ "streamingDeleteButtonText": "Excluir destino",
+ "streamingDeleteDialogAreYouSure": "Tem certeza de que deseja excluir",
+ "streamingDeleteDialogThisDestination": "este destino",
+ "streamingDeleteDialogPermanentlyRemoved": "? Todas as configurações serão permanentemente removidas.",
+ "httpDestEditTitle": "Editar destino",
+ "httpDestAddTitle": "Adicionar Destino HTTP",
+ "httpDestEditDescription": "Atualizar a configuração para este destino de transmissão de eventos HTTP.",
+ "httpDestAddDescription": "Configure um novo ponto de extremidade HTTP para receber eventos da sua organização.",
+ "httpDestTabSettings": "Confirgurações",
+ "httpDestTabHeaders": "Cabeçalhos",
+ "httpDestTabBody": "Conteúdo",
+ "httpDestTabLogs": "Registros",
+ "httpDestNamePlaceholder": "Meu destino HTTP",
+ "httpDestUrlLabel": "URL de destino",
+ "httpDestUrlErrorHttpRequired": "A URL deve usar http ou https",
+ "httpDestUrlErrorHttpsRequired": "HTTPS é necessário em implantações em nuvem",
+ "httpDestUrlErrorInvalid": "Informe uma URL válida (por exemplo, https://example.com/webhook)",
+ "httpDestAuthTitle": "Autenticação",
+ "httpDestAuthDescription": "Escolha como os pedidos para seu endpoint são autenticados.",
+ "httpDestAuthNoneTitle": "Sem Autenticação",
+ "httpDestAuthNoneDescription": "Envia pedidos sem um cabeçalho de autorização.",
+ "httpDestAuthBearerTitle": "Token do portador",
+ "httpDestAuthBearerDescription": "Adiciona uma autorização: Bearer header a cada requisição.",
+ "httpDestAuthBearerPlaceholder": "Sua chave de API ou token",
+ "httpDestAuthBasicTitle": "Autenticação básica",
+ "httpDestAuthBasicDescription": "Adiciona uma Autorização: cabeçalho básico. Forneça credenciais como nome de usuário:senha.",
+ "httpDestAuthBasicPlaceholder": "Usuário:password",
+ "httpDestAuthCustomTitle": "Cabeçalho personalizado",
+ "httpDestAuthCustomDescription": "Especifique um nome e valor de cabeçalho HTTP personalizado para autenticação (por exemplo, X-API-Key).",
+ "httpDestAuthCustomHeaderNamePlaceholder": "Nome do cabeçalho (ex: X-API-Key)",
+ "httpDestAuthCustomHeaderValuePlaceholder": "Valor do cabeçalho",
+ "httpDestCustomHeadersTitle": "Cabeçalhos HTTP personalizados",
+ "httpDestCustomHeadersDescription": "Adicionar cabeçalhos personalizados a todas as solicitações de saída. Útil para tokens estáticos ou um tipo de conteúdo personalizado. Por padrão, Content-Type: application/json é enviado.",
+ "httpDestNoHeadersConfigured": "Nenhum cabeçalho personalizado configurado. Clique em \"Adicionar Cabeçalho\" para adicionar um.",
+ "httpDestHeaderNamePlaceholder": "Nome do Cabeçalho",
+ "httpDestHeaderValuePlaceholder": "Valor",
+ "httpDestAddHeader": "Adicionar Cabeçalho",
+ "httpDestBodyTemplateTitle": "Modelo de corpo personalizado",
+ "httpDestBodyTemplateDescription": "Controla a estrutura de carga JSON enviada ao seu endpoint. Se desativado, um objeto JSON padrão é enviado para cada evento.",
+ "httpDestEnableBodyTemplate": "Ativar modelo personalizado de corpo",
+ "httpDestBodyTemplateLabel": "Modelo de corpo (JSON)",
+ "httpDestBodyTemplateHint": "Use variáveis de template para referenciar campos de evento em seu payload.",
+ "httpDestPayloadFormatTitle": "Formato de carga",
+ "httpDestPayloadFormatDescription": "Como os eventos são serializados em cada corpo do pedido.",
+ "httpDestFormatJsonArrayTitle": "Matriz JSON",
+ "httpDestFormatJsonArrayDescription": "Um pedido por lote, o corpo é um array JSON. Compatível com a maioria dos webhooks genéricos e Datadog.",
+ "httpDestFormatNdjsonTitle": "NDJSON",
+ "httpDestFormatNdjsonDescription": "Um pedido por lote, o corpo é um JSON delimitado por nova-linha — um objeto por linha, sem array exterior. Requerido pelo Splunk HEC, Elástico / OpenSearch, e Grafana Loki.",
+ "httpDestFormatSingleTitle": "Um Evento por Requisição",
+ "httpDestFormatSingleDescription": "Envia um POST HTTP separado para cada evento. Utilize apenas para endpoints que não podem manipular lotes.",
+ "httpDestLogTypesTitle": "Tipos de log",
+ "httpDestLogTypesDescription": "Escolha quais tipos de log são encaminhados para este destino. Somente serão racionalizados os tipos de logs habilitados.",
+ "httpDestAccessLogsTitle": "Logs de Acesso",
+ "httpDestAccessLogsDescription": "Tentativas de acesso a recursos, incluindo solicitações autenticadas e negadas.",
+ "httpDestActionLogsTitle": "Logs de Ações",
+ "httpDestActionLogsDescription": "Ações administrativas realizadas por usuários dentro da organização.",
+ "httpDestConnectionLogsTitle": "Logs da conexão",
+ "httpDestConnectionLogsDescription": "Eventos de conexão de site e túnel, incluindo conexões e desconexões.",
+ "httpDestRequestLogsTitle": "Registro de pedidos",
+ "httpDestRequestLogsDescription": "Logs de solicitação HTTP para recursos proxy incluindo o método, o caminho e o código de resposta.",
+ "httpDestSaveChanges": "Salvar as alterações",
+ "httpDestCreateDestination": "Criar destino",
+ "httpDestUpdatedSuccess": "Destino atualizado com sucesso",
+ "httpDestCreatedSuccess": "Destino criado com sucesso",
+ "httpDestUpdateFailed": "Falha ao atualizar destino",
+ "httpDestCreateFailed": "Falha ao criar destino"
}