fix(i18n): translate 144 new __MISSING__ pt-BR strings (#2816)

Integrated into release/v3.8.6
This commit is contained in:
Lenine Júnior
2026-05-28 21:09:56 -04:00
committed by GitHub
parent 12bacb03d4
commit b0191f1237

View File

@@ -739,8 +739,8 @@
"endpointsSubtitle": "Seus URLs de conexão de IA",
"apiManager": "Gerenciador API",
"apiManagerSubtitle": "Gerenciar chaves de API e acesso",
"embeddedServices": "__MISSING__:Embedded Services",
"embeddedServicesSubtitle": "__MISSING__:Manage local proxy services",
"embeddedServices": "Serviços Integrados",
"embeddedServicesSubtitle": "Gerenciar serviços de proxy locais",
"logs": "Logs",
"webhooks": "Webhooks",
"webhooksSubtitle": "Seja notificado sobre eventos",
@@ -976,93 +976,93 @@
"disable": "Desativar",
"noWebhooks": "Nenhum webhooks configurado ainda.",
"signatureTitle": "Assinaturas de webhook",
"signatureDescription": "Cada entrega inclui um cabeçalho X-Webhook-Signature assinado com HMAC-SHA256 usando o segredo do webhook. Verifique a assinatura antes de confiar na carga.",
"signatureDescription": "Cada entrega inclui um cabeçalho X-Webhook-Signature assinado com HMAC-SHA256 usando o segredo do webhook. Verifique a assinatura antes de confiar no payload.",
"wizard": {
"cancel": "__MISSING__:Cancel",
"step1Title": "__MISSING__:Select Integration",
"step2Title": "__MISSING__:Configure Target",
"step3Title": "__MISSING__:Events & Test",
"back": "__MISSING__:Back",
"next": "__MISSING__:Next",
"finish": "__MISSING__:Finish",
"step1Desc": "__MISSING__:Select the target integration system for this webhook."
"cancel": "Cancelar",
"step1Title": "Selecionar Integração",
"step2Title": "Configurar Destino",
"step3Title": "Eventos e Teste",
"back": "Voltar",
"next": "Próximo",
"finish": "Concluir",
"step1Desc": "Selecione o sistema de integração de destino para este webhook."
},
"howItWorks": {
"step1": "__MISSING__:Choose an integration provider (e.g. Slack, Discord, custom webhook) and set up the connection details.",
"step2": "__MISSING__:Configure system events to subscribe to (e.g. completion errors, model fallbacks, or usage limits).",
"step3": "__MISSING__:Verify the configuration by sending a test payload to make sure the endpoint receives it.",
"step4": "__MISSING__:Secure your endpoint by validating the X-Webhook-Signature HMAC-SHA256 header using the webhook's secret.",
"title": "__MISSING__:How Webhooks Work",
"customOnly": "__MISSING__:Only applicable for custom endpoint integrations.",
"hmacRecipeTitle": "__MISSING__:HMAC Verification Recipe",
"hmacRecipe": "__MISSING__:To verify webhook payloads in Node.js, compute the HMAC-SHA256 of the raw request body using your secret key. Compare it to the X-Webhook-Signature header using timingSafeEqual.",
"timeoutNote": "__MISSING__:Webhook deliveries have a timeout of 10 seconds.",
"retryNote": "__MISSING__:Failed deliveries are retried up to 5 times with exponential backoff.",
"docsLink": "__MISSING__:Read the full Webhooks developer guide",
"hmacRecipePython": "__MISSING__:Python HMAC verification: hmac.new(secret, body, hashlib.sha256).hexdigest()",
"hmacRecipeBash": "__MISSING__:Bash HMAC verification: echo -n \"$body\" | openssl dgst -sha256 -hmac \"$secret\""
"step1": "Escolha um provedor de integração (ex.: Slack, Discord, webhook personalizado) e configure os detalhes da conexão.",
"step2": "Configure os eventos do sistema para se inscrever (ex.: erros de completions, fallbacks de modelo ou limites de uso).",
"step3": "Verifique a configuração enviando um payload de teste para garantir que o endpoint o receba.",
"step4": "Proteja seu endpoint validando o cabeçalho X-Webhook-Signature HMAC-SHA256 usando o segredo do webhook.",
"title": "Como os Webhooks Funcionam",
"customOnly": "Aplicável apenas para integrações de endpoint personalizado.",
"hmacRecipeTitle": "Receita de Verificação HMAC",
"hmacRecipe": "Para verificar payloads de webhook no Node.js, calcule o HMAC-SHA256 do corpo bruto da requisição usando sua chave secreta. Compare-o com o cabeçalho X-Webhook-Signature usando timingSafeEqual.",
"timeoutNote": "As entregas de webhook têm um timeout de 10 segundos.",
"retryNote": "Entregas com falha são reenviadas até 5 vezes com backoff exponencial.",
"docsLink": "Leia o guia completo de desenvolvimento de Webhooks",
"hmacRecipePython": "Verificação HMAC em Python: hmac.new(secret, body, hashlib.sha256).hexdigest()",
"hmacRecipeBash": "Verificação HMAC em Bash: echo -n \"$body\" | openssl dgst -sha256 -hmac \"$secret\""
},
"deliveries": {
"title": "__MISSING__:Delivery Logs",
"loadFailed": "__MISSING__:Failed to load webhook delivery logs.",
"empty": "__MISSING__:No deliveries recorded yet. Trigger an event or send a test payload.",
"status": "__MISSING__:Status",
"event": "__MISSING__:Event",
"latency": "__MISSING__:Latency",
"at": "__MISSING__:Sent At"
"title": "Logs de Entrega",
"loadFailed": "Falha ao carregar logs de entrega de webhook.",
"empty": "Nenhuma entrega registrada ainda. Dispare um evento ou envie um payload de teste.",
"status": "Status",
"event": "Evento",
"latency": "Latência",
"at": "Enviado Em"
},
"kinds": {
"comingSoon": "__MISSING__:Coming Soon",
"slack": "__MISSING__:Slack",
"slackDesc": "__MISSING__:Post system events directly into a Slack channel",
"telegram": "__MISSING__:Telegram",
"telegramDesc": "__MISSING__:Send event messages using a Telegram bot",
"discord": "__MISSING__:Discord",
"discordDesc": "__MISSING__:Deliver real-time updates directly to a Discord server",
"custom": "__MISSING__:Custom Webhook",
"customDesc": "__MISSING__:Deliver system event payloads to any HTTPS endpoint",
"email": "__MISSING__:Email Notification",
"emailDesc": "__MISSING__:Receive summary updates via email",
"pagerduty": "__MISSING__:PagerDuty",
"pagerdutyDesc": "__MISSING__:Trigger alerts on PagerDuty for critical system issues",
"teams": "__MISSING__:Microsoft Teams",
"teamsDesc": "__MISSING__:Forward system notifications to Microsoft Teams channels"
"comingSoon": "Em Breve",
"slack": "Slack",
"slackDesc": "Publique eventos do sistema diretamente em um canal do Slack",
"telegram": "Telegram",
"telegramDesc": "Envie mensagens de eventos usando um bot do Telegram",
"discord": "Discord",
"discordDesc": "Entregue atualizações em tempo real diretamente a um servidor Discord",
"custom": "Webhook Personalizado",
"customDesc": "Entregue payloads de eventos do sistema para qualquer endpoint HTTPS",
"email": "Notificação por E-mail",
"emailDesc": "Receba atualizações resumidas por e-mail",
"pagerduty": "PagerDuty",
"pagerdutyDesc": "Dispare alertas no PagerDuty para problemas críticos do sistema",
"teams": "Microsoft Teams",
"teamsDesc": "Encaminhe notificações do sistema para canais do Microsoft Teams"
},
"testPayloadSent": "__MISSING__:Test Payload Sent",
"testResponse": "__MISSING__:Test Response",
"testPayloadSent": "Carga de Teste Enviada",
"testResponse": "Resposta do Teste",
"validateUrl": {
"checking": "__MISSING__:Checking URL...",
"ok": "__MISSING__:URL is valid",
"blockedPrivate": "__MISSING__:URL is a blocked private address",
"invalidUrl": "__MISSING__:Invalid URL format"
"checking": "Verificando URL...",
"ok": "URL é válida",
"blockedPrivate": "URL é um endereço privado bloqueado",
"invalidUrl": "Formato de URL inválido"
},
"custom": {
"endpointUrl": "__MISSING__:Endpoint URL",
"endpointUrlPlaceholder": "__MISSING__:https://api.yourdomain.com/webhook",
"secretKey": "__MISSING__:Secret Key",
"secretKeyPlaceholder": "__MISSING__:Enter secret key or leave blank to auto-generate",
"secretKeyHint": "__MISSING__:Used to sign the payload header for authentication."
"endpointUrl": "URL do Endpoint",
"endpointUrlPlaceholder": "https://api.seudominio.com/webhook",
"secretKey": "Chave Secreta",
"secretKeyPlaceholder": "Digite a chave secreta ou deixe em branco para gerar automaticamente",
"secretKeyHint": "Usada para assinar o cabeçalho do payload para autenticação."
},
"discord": {
"webhookUrl": "__MISSING__:Discord Webhook URL",
"webhookUrlPlaceholder": "__MISSING__:https://discord.com/api/webhooks/...",
"webhookUrlHint": "__MISSING__:The webhook URL copied from your Discord channel integration settings.",
"tutorial": "__MISSING__:How to create a Discord webhook:"
"webhookUrl": "URL do Webhook do Discord",
"webhookUrlPlaceholder": "https://discord.com/api/webhooks/...",
"webhookUrlHint": "A URL do webhook copiada das configurações de integração do seu canal Discord.",
"tutorial": "Como criar um webhook do Discord:"
},
"slack": {
"webhookUrl": "__MISSING__:Slack Webhook URL",
"webhookUrlPlaceholder": "__MISSING__:https://hooks.slack.com/services/...",
"webhookUrlHint": "__MISSING__:The webhook URL copied from your Slack Incoming Webhooks integration.",
"tutorial": "__MISSING__:How to create a Slack webhook:"
"webhookUrl": "URL do Webhook do Slack",
"webhookUrlPlaceholder": "https://hooks.slack.com/services/...",
"webhookUrlHint": "A URL do webhook copiada da sua integração Slack Incoming Webhooks.",
"tutorial": "Como criar um webhook do Slack:"
},
"telegram": {
"botToken": "__MISSING__:Telegram Bot Token",
"botTokenPlaceholder": "__MISSING__:123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
"botTokenHint": "__MISSING__:The HTTP API token received from @BotFather when creating your bot.",
"chatId": "__MISSING__:Telegram Chat ID / Channel",
"chatIdPlaceholder": "__MISSING__:-100123456789 or @channelname",
"chatIdHint": "__MISSING__:The unique numerical identifier or public username of the chat/channel.",
"tutorial": "__MISSING__:How to configure Telegram webhook:"
"botToken": "Token do Bot Telegram",
"botTokenPlaceholder": "123456789:ABCdefGhIJKlmNoPQRsTUVwxyZ",
"botTokenHint": "O token da API HTTP recebido do @BotFather ao criar seu bot.",
"chatId": "Chat ID / Canal do Telegram",
"chatIdPlaceholder": "-100123456789 ou @nomedocanal",
"chatIdHint": "O identificador numérico único ou nome de usuário público do chat/canal.",
"tutorial": "Como configurar o webhook do Telegram:"
}
},
"compliance": {
@@ -2570,14 +2570,14 @@
"groupApiKey": "Chave de API",
"groupAccount": "Conta",
"groupServiceTier": "Nível de serviço",
"serviceTierFast": "__MISSING__:Fast",
"serviceTierFlex": "__MISSING__:Flex",
"serviceTierStandard": "__MISSING__:Standard",
"serviceTierBreakdownTitle": "__MISSING__:Service Tier",
"serviceTierBreakdownSubtitle": "__MISSING__:Fast / Flex / Standard split",
"serviceTierUsageSaved": "__MISSING__:usage saved",
"serviceTierCostSaved": "__MISSING__:saved",
"serviceTierCostShareSuffix": "__MISSING__:of cost",
"serviceTierFast": "Fast",
"serviceTierFlex": "Flex",
"serviceTierStandard": "Standard",
"serviceTierBreakdownTitle": "Nível de Serviço",
"serviceTierBreakdownSubtitle": "Distribuição Fast / Flex / Standard",
"serviceTierUsageSaved": "uso economizado",
"serviceTierCostSaved": "economizado",
"serviceTierCostShareSuffix": "do custo",
"dimension": "Dimensão",
"share": "Participação",
"legacyOrFree": "Legado / gratuito",
@@ -2790,16 +2790,16 @@
"localServer": "Servidor local",
"cloudOmniroute": "Cloud OmniRoute",
"copyUrl": "Copiar URL",
"badgeLoopbackTooltip": "__MISSING__:This endpoint is only accessible locally (loopback only)",
"badgeAlwaysProtectedTooltip": "__MISSING__:This endpoint is always protected and requires authorization",
"badgeInternalTooltip": "__MISSING__:This is an internal system endpoint",
"tierAll": "__MISSING__:All",
"tierAuth": "__MISSING__:Authenticated",
"tierLoopback": "__MISSING__:Loopback",
"tierAlwaysProtected": "__MISSING__:Always Protected",
"tierPublic": "__MISSING__:Public",
"hideInternal": "__MISSING__:Hide Internal",
"showInternal": "__MISSING__:Show Internal"
"badgeLoopbackTooltip": "Este endpoint só é acessível localmente (somente loopback)",
"badgeAlwaysProtectedTooltip": "Este endpoint é sempre protegido e requer autorização",
"badgeInternalTooltip": "Este é um endpoint interno do sistema",
"tierAll": "Todos",
"tierAuth": "Autenticado",
"tierLoopback": "Loopback",
"tierAlwaysProtected": "Sempre Protegido",
"tierPublic": "blico",
"hideInternal": "Ocultar Internos",
"showInternal": "Mostrar Internos"
},
"endpoints": {
"tabProxy": "Endpoint Proxy",
@@ -3165,35 +3165,35 @@
"noSessionQuotaMonitorsActive": "Nenhum monitor de cota de sessão ativo.",
"gracefulDegradationStatus": "Status de degradação elegante",
"additionalModels": "+{count} mais modelos",
"providerHealthMatrixTitle": "__MISSING__:Provider Health Matrix",
"providerHealthMatrixDescription": "__MISSING__:Provider × account × model states from breakers, cooldowns, lockouts and logs.",
"healthMatrixRange": "__MISSING__:Health matrix range",
"providerFilter": "__MISSING__:Provider filter",
"onlyIssues": "__MISSING__:Only issues",
"refresh": "__MISSING__:Refresh",
"accounts": "__MISSING__:Accounts",
"models": "__MISSING__:Models",
"issues": "__MISSING__:Issues",
"loadingProviderHealthMatrix": "__MISSING__:Loading provider health matrix...",
"failedProviderHealthMatrix": "__MISSING__:Failed to load Provider Health Matrix: {error}",
"noProvidersMatchedFilters": "__MISSING__:No providers matched the current filters.",
"modelPillSummary": "__MISSING__:{requests} req · {successRate} success · {latency} avg",
"modelLockoutSummary": "__MISSING__:{reason} · {duration} left",
"locked": "__MISSING__:locked",
"inferred": "__MISSING__:inferred",
"inactive": "__MISSING__:Inactive",
"noConnectionId": "__MISSING__:no connection id",
"accountModelSummary": "__MISSING__:{connectionId} · {count} models",
"cooldown": "__MISSING__:cooldown",
"durationRemaining": "__MISSING__:{duration} remaining",
"noSyncedModelsOrTraffic": "__MISSING__:No synced models or recent traffic yet.",
"providerRowSummary": "__MISSING__:{active}/{total} active accounts · {requests} req · {successRate} success · {latency} avg",
"cooldownCount": "__MISSING__:{count} cooldown",
"lockoutCount": "__MISSING__:{count} lockouts",
"issueCount": "__MISSING__:{count} issues",
"score": "__MISSING__:Score",
"lastRequest": "__MISSING__:Last request",
"lastError": "__MISSING__:Last error"
"providerHealthMatrixTitle": "Matriz de Saúde dos Provedores",
"providerHealthMatrixDescription": "Estados de provedor × conta × modelo a partir de circuit breakers, cooldowns, lockouts e logs.",
"healthMatrixRange": "Período da matriz de saúde",
"providerFilter": "Filtro de provedor",
"onlyIssues": "Apenas problemas",
"refresh": "Atualizar",
"accounts": "Contas",
"models": "Modelos",
"issues": "Problemas",
"loadingProviderHealthMatrix": "Carregando matriz de saúde dos provedores...",
"failedProviderHealthMatrix": "Falha ao carregar a Matriz de Saúde dos Provedores: {error}",
"noProvidersMatchedFilters": "Nenhum provedor correspondeu aos filtros atuais.",
"modelPillSummary": "{requests} req · {successRate} sucesso · {latency} média",
"modelLockoutSummary": "{reason} · {duration} restante",
"locked": "bloqueado",
"inferred": "inferido",
"inactive": "Inativo",
"noConnectionId": "sem id de conexão",
"accountModelSummary": "{connectionId} · {count} modelos",
"cooldown": "cooldown",
"durationRemaining": "{duration} restante",
"noSyncedModelsOrTraffic": "Nenhum modelo sincronizado ou tráfego recente ainda.",
"providerRowSummary": "{active}/{total} contas ativas · {requests} req · {successRate} sucesso · {latency} média",
"cooldownCount": "{count} cooldown",
"lockoutCount": "{count} lockouts",
"issueCount": "{count} problemas",
"score": "Pontuação",
"lastRequest": "Última requisição",
"lastError": "Último erro"
},
"telemetry": {
"title": "Telemetria do Sistema",
@@ -3321,15 +3321,15 @@
"provider": "Provedor",
"account": "Conta",
"elapsed": "Tempo",
"activeStage": "__MISSING__:Stage",
"activeStageUnknown": "__MISSING__:Not sent to upstream yet",
"activeStageRegistered": "__MISSING__:Registered",
"activeStagePayloadPrepared": "__MISSING__:Payload prepared",
"activeStageWaitingAccountSlot": "__MISSING__:Waiting for account slot",
"activeStageWaitingRateLimit": "__MISSING__:Waiting for rate limiter",
"activeStageRateLimitSlotAcquired": "__MISSING__:Rate limit slot acquired",
"activeStageSendingToProvider": "__MISSING__:Sending to upstream",
"activeStageProviderResponseStarted": "__MISSING__:Upstream response started",
"activeStage": "Estágio",
"activeStageUnknown": "Ainda não enviado ao upstream",
"activeStageRegistered": "Registrado",
"activeStagePayloadPrepared": "Payload preparado",
"activeStageWaitingAccountSlot": "Aguardando slot de conta",
"activeStageWaitingRateLimit": "Aguardando rate limiter",
"activeStageRateLimitSlotAcquired": "Slot de rate limit adquirido",
"activeStageSendingToProvider": "Enviando ao upstream",
"activeStageProviderResponseStarted": "Resposta do upstream iniciada",
"count": "Qtd.",
"payloads": "Payloads",
"viewPayloads": "Ver Payloads",
@@ -4473,12 +4473,12 @@
"configure": "Configurar",
"globalSystemPrompt": "Prompt de Sistema Global",
"saved": "Salvo",
"beforePromptLabel": "__MISSING__:Before Prompt",
"beforePromptDesc": "__MISSING__:Injected before agent/provider system instructions",
"beforePromptPlaceholder": "__MISSING__:Instructions inserted before agent/provider prompt...",
"afterPromptLabel": "__MISSING__:After Prompt",
"afterPromptDesc": "__MISSING__:Injected after agent/provider system instructions",
"afterPromptPlaceholder": "__MISSING__:Instructions inserted after agent/provider prompt...",
"beforePromptLabel": "Antes do Prompt",
"beforePromptDesc": "Injetado antes das instruções de sistema do agente/provedor",
"beforePromptPlaceholder": "Instruções inseridas antes do prompt do agente/provedor...",
"afterPromptLabel": "Após o Prompt",
"afterPromptDesc": "Injetado após as instruções de sistema do agente/provedor",
"afterPromptPlaceholder": "Instruções inseridas após o prompt do agente/provedor...",
"chars": "{count} caracteres",
"thinkingBudgetTitle": "Orçamento de Raciocínio",
"thinkingBudgetDesc": "Controle o uso de tokens de raciocínio da IA em todas as requisições",
@@ -5270,15 +5270,15 @@
"qdrantCleanupSuccess": "OK: {count} ponto(s) removido(s) (retenção: {days} dias)",
"qdrantCleanupFailed": "Falha na limpeza",
"qdrantCleanupError": "Erro: {error}",
"vercelRelaySuccess": "__MISSING__:Vercel Relay deployed successfully",
"vercelRelayButton": "__MISSING__:Deploy Vercel Relay",
"vercelRelayModalTitle": "__MISSING__:Deploy Vercel Relay",
"vercelRelayWarning": "__MISSING__:Warning: A Vercel deployment token is required. This token will only be used to create the serverless relay and will never be stored by OmniRoute.",
"vercelRelayTokenLabel": "__MISSING__:Vercel Access Token",
"vercelRelayProjectNameLabel": "__MISSING__:Vercel Project Name",
"vercelRelayFreeTierNote": "__MISSING__:Relays are lightweight proxy endpoints deployed on Vercel's free tier to bypass local network/region limitations.",
"vercelRelayDeploying": "__MISSING__:Deploying...",
"vercelRelayDeploy": "__MISSING__:Deploy"
"vercelRelaySuccess": "Vercel Relay implantado com sucesso",
"vercelRelayButton": "Implantar Vercel Relay",
"vercelRelayModalTitle": "Implantar Vercel Relay",
"vercelRelayWarning": "Aviso: Um token de deploy da Vercel é necessário. Este token será usado apenas para criar o relay serverless e nunca será armazenado pelo OmniRoute.",
"vercelRelayTokenLabel": "Token de Acesso Vercel",
"vercelRelayProjectNameLabel": "Nome do Projeto Vercel",
"vercelRelayFreeTierNote": "Relays são endpoints de proxy leves implantados no plano gratuito da Vercel para contornar limitações de rede local/região.",
"vercelRelayDeploying": "Implantando...",
"vercelRelayDeploy": "Implantar"
},
"contextRtk": {
"title": "Motor RTK",
@@ -5960,8 +5960,8 @@
"noSpendLast30Days": "Nenhum gasto nos últimos 30 dias",
"updatedShort": "Atualizado",
"lastRefreshed": "Última atualização",
"providerQuota": "__MISSING__:Provider Quota",
"providerQuotaHomeHint": "__MISSING__:Live status across connected accounts"
"providerQuota": "Cota de Provedor",
"providerQuotaHomeHint": "Status em tempo real das contas conectadas"
},
"modals": {
"waitingAuth": "Aguardando Autorização",