diff --git a/src/i18n/messages/pt-BR.json b/src/i18n/messages/pt-BR.json index 9a4713d2e8..becbf70a88 100644 --- a/src/i18n/messages/pt-BR.json +++ b/src/i18n/messages/pt-BR.json @@ -71,9 +71,9 @@ "authorization": "Autorização", "content-type": "Tipo de conteúdo", "content-length": "Comprimento do conteúdo", - "cookie": "Biscoito", + "cookie": "Cookie", "file": "Arquivo", - "host": "Anfitrião", + "host": "Host", "id": "ID", "import": "Importar", "limit": "Limite", @@ -82,7 +82,7 @@ "origin": "Origem", "promptTokens": "Tokens de prompt", "completionTokens": "Tokens de conclusão", - "totalTokens": "Total de fichas", + "totalTokens": "Total de Tokens", "rawModel": "Modelo Bruto", "scope": "Escopo", "skill": "Habilidade", @@ -100,7 +100,7 @@ "resolve": "Resolver", "force": "Força", "base64url": "URL Base64", - "hex": "Feitiço", + "hex": "Hex", "range": "Alcance", "component": "Componente", "redirect_uri": "Redirecionar URI", @@ -255,7 +255,7 @@ "anthropicBaseUrlPlaceholder": "URL base da Anthropic", "description": "Descrição", "noProviderFound": "Nenhum provedor encontrado", - "auto": "Auto", + "auto": "Automático", "protocolsDescription": "Descrição dos protocolos", "cloudSessionNote": "Nota da sessão na nuvem", "advancedSettings": "Configurações Avançadas", @@ -708,7 +708,6 @@ "batchFilesListSearchPlaceholder": "Buscar por ID ou nome do arquivo…", "batchFilesListFilesTable": "Arquivos", "batchPageLoadingMore": "Carregando mais…", - "auto": "Automático", "recommended": "Recomendado" }, "sidebar": { @@ -846,6 +845,7 @@ "settingsAi": "Configurações de IA", "settingsSecurity": "Segurança", "settingsFeatureFlags": "Sinalizadores de Funcionalidade", + "settingsAuthz": "Autorização", "settingsRouting": "Roteamento", "settingsResilience": "Resiliência", "settingsAdvanced": "Avançado", @@ -882,11 +882,9 @@ "leaderboard": "Ranking", "profile": "Perfil", "tokens": "Tokens", - "settingsAuthz": "Autorização", "leaderboardSubtitle": "Classificações de gamificação", "profileSubtitle": "Conquistas do usuário", "tokensSubtitle": "Gerenciar saldo de tokens", - "settingsAuthzSubtitle": "Inventário de rotas e política de bypass", "usageSubtitle": "Estatísticas de tráfego e uso", "analyticsComboHealthSubtitle": "Confiabilidade dos targets do combo", "analyticsUtilizationSubtitle": "Utilização de provedores", @@ -925,6 +923,7 @@ "settingsAdvancedSubtitle": "Opções avançadas", "settingsSecuritySubtitle": "Auth e criptografia", "settingsFeatureFlagsSubtitle": "Alternar capacidades do sistema", + "settingsAuthzSubtitle": "Inventário de rotas e política de bypass", "docsSubtitle": "Documentação", "issuesSubtitle": "Reportar um bug", "changelogSubtitle": "Notas de versão" @@ -1159,7 +1158,7 @@ "step1Title": "1. Criar chave de API", "step1Desc": "Vá em Endpoint -> Chaves Registradas. Gere uma chave por ambiente.", "step2Title": "2. Conectar provedores", - "step2Desc": "Adicione contas em Provedores. Suporta OAuth, API Key e planos gratuitos.", + "step2Desc": "Adicione contas em Provedores. Suporta OAuth, Chave de API e planos gratuitos.", "step3Title": "3. Apontar seu cliente", "step3Desc": "Defina a URL base como {url} no seu IDE ou cliente de API.", "step4Title": "4. Monitorar e otimizar", @@ -1196,7 +1195,7 @@ "analytics": { "title": "Análise", "usageAnalyticsTitle": "Análise de Uso", - "diversityScoreTitle": "Pontuação de Diversidade", + "diversityScoreTitle": "Diversidade de Provedores", "diversityScoreDesc": "Instantâneo da concentração de provedores para a janela de tráfego recente.", "diversityShannonEntropy": "Entropia de Shannon", "diversityWindow": "Janela: {count} reqs · Últimos {mins} mins", @@ -1217,7 +1216,6 @@ "chartCostPct": "{pct}% do custo", "chartUsageDetail": "Detalhes de Uso", "chartCacheRead": "Leitura de cache", - "chartOutputLabel": "Saída", "chartCostByProvider": "Custo por Provedor", "chartNoCostData": "Sem dados de custo", "chartModelUsageOverTime": "Uso de Modelos ao Longo do Tempo", @@ -1327,8 +1325,7 @@ "providerUtilizationNoData": "Nenhum dado de utilização disponível", "providerUtilizationGettingStarted": "Começando", "providerUtilizationLatestSnapshot": "Último snapshot de cota", - "providerUtilizationRemainingCapacity": "Capacidade restante", - "diversityScoreTitle": "Diversidade de Provedores" + "providerUtilizationRemainingCapacity": "Capacidade restante" }, "apiManager": { "title": "Chaves de API", @@ -1376,6 +1373,7 @@ "keyName": "Nome da Chave", "keyNamePlaceholder": "ex: Chave de Produção", "keyNameDesc": "Escolha um nome descritivo para identificar o propósito desta chave", + "managementAccessDesc": "Permitir que esta chave de API gerencie a configuração do OmniRoute.", "keyCreated": "Chave de API Criada", "keyCreatedSuccess": "Chave criada com sucesso!", "keyCreatedNote": "Copie e armazene esta chave agora — ela não será mostrada novamente.", @@ -1759,7 +1757,7 @@ }, "5": { "title": "Adicionar Modelo Customizado", - "desc": "Clique em \"View All Model\" -> \"Add Custom Model\"" + "desc": "Clique em \"View Todos Model\" -> \"Add Custom Model\"" }, "6": { "title": "Selecionar Modelo" @@ -2120,6 +2118,17 @@ "recommendationsApplied": "Recomendações aplicadas a este combo.", "intelligentPanelTitle": "Painel de Roteamento Inteligente", "intelligentPanelDesc": "Pontuação em tempo real e status de saúde para este combo de roteamento automático.", + "configOnlyStatus": "Visualização de Configuração", + "configOnlyHint": "Este painel mostra apenas as entradas de roteamento. O estado em tempo real do disjuntor está disponível na página de Saúde.", + "routingInputs": "Entradas de Roteamento", + "routingInputsHint": "Pacote de modo e ponderação ficam aqui; o estado em tempo real do disjuntor fica na página de Saúde.", + "emailVisibilityHint": "Os emails da conta aqui seguem a opção de privacidade global.", + "emailVisibilityTooltip": "Use o ícone de olho para revelar ou ocultar os emails da conta globalmente nas telas de combos, provedores e cotas.", + "manualModel": "Modelo manual", + "manualModelInvalid": "Insira um modelo como provedor/modelo.", + "manualModelUnknownProvider": "Prefixo de provedor desconhecido.", + "builderDynamicAccountShort": "Conta dinâmica", + "builderNeedValidName": "Defina um nome de combo válido antes de continuar.", "statusOverview": "Visão Geral do Status", "normalOperation": "Operação Normal", "allProvidersHealthy": "Os provedores estão relatando condições de roteamento saudáveis.", @@ -2429,7 +2438,8 @@ "previousPeriod": "Metade Anterior", "currentPeriod": "Metade Atual", "exportCSV": "Exportar como CSV", - "exportJSON": "Exportar como JSON" + "exportJSON": "Exportar como JSON", + "legacyFreeLabel": "Legado / Gratuito" }, "endpoint": { "title": "Endpoint da API", @@ -2669,7 +2679,7 @@ "transportSseDesc": "Remoto — Server-Sent Events via HTTP", "transportStreamableHttpDesc": "Remoto — HTTP bidirecional moderno", "copy": "Copiar", - "mcpDashboardCopyUrl": "Copiar URL para a área de transferência", + "mcpDashboardCopyUrl": "Copiar URL", "mcpDisabledTitle": "O MCP está desativado", "mcpDisabledDesc": "Ative o MCP acima para configurar o modo de transporte e visualizar a telemetria do servidor.", "mcpIntro": "Model Context Protocol — {tools} ferramentas em {scopes} escopos, {transports} transportes (stdio / SSE / Streamable HTTP).", @@ -2730,8 +2740,7 @@ "apiKeyId": "ID da Chave de API", "offset": "Deslocamento", "limit": "Limite", - "tool": "Ferramenta", - "mcpDashboardCopyUrl": "Copiar URL" + "tool": "Ferramenta" }, "a2aDashboard": { "loading": "Carregando painel A2A...", @@ -3055,7 +3064,7 @@ "pid": "PID", "lastIntercept": "Última Interceptação", "target": "Alvo", - "host": "Anfitrião", + "host": "Host", "localPort": "Porta Local", "endpoints": "Endpoints", "enabled": "Ativado", @@ -3763,7 +3772,7 @@ "apiKeyStatusInvalid": "Inválida", "primaryKey": "Chave Primária", "apiKeyInvalidAlert": "{count} chave(s) de API marcada(s) como inválida(s) devido a falhas de autenticação nas conexões: {connections}. Elas serão ignoradas na rotação. Clique para revisar.", - "apiKeyInvalidAlertTitle": "Alerta de Saúde da Chave de API", + "apiKeyInvalidAlertTitle": "Alert de Saúde da Chave de API", "apiKeyWarningAlert": "{count} chave(s) de API em estado de aviso devido à alta taxa de falhas nas conexões: {connections}. Revise para evitar problemas de rotação.", "apiKeyWarningAlertTitle": "Aviso de Chave de API", "googlePseInfo": "O Google Programmable Search exige dois valores: sua chave de API e o Search Engine ID (cx) do painel do Programmable Search Engine.", @@ -3771,6 +3780,12 @@ "geminiCliProjectIdLabel": "ID de Projeto do Google Cloud", "geminiCliProjectIdPlaceholder": "meu-id-de-projeto-gcp", "antigravityProjectIdHint": "Sobrescrita opcional para solicitações do Antigravity Cloud Code. Deixe em branco para usar o projeto descoberto durante o Google OAuth.", + "antigravityClientProfileLabel": "Perfil do cliente", + "antigravityClientProfileHint": "Escolha qual identidade de cliente Antigravity o OmniRoute apresenta à API.", + "antigravityClientProfileIde": "IDE", + "antigravityClientProfileHarness": "Harness / CLI", + "codexFastTierActiveChip": "A Camada Rápida do Codex está ativa", + "tierFast": "Rápido", "antigravityProjectIdLabel": "ID de Projeto do Google Cloud", "antigravityProjectIdPlaceholder": "meu-id-de-projeto-gcp", "grokWebCookieHint": "Cole o cookie sso do grok.com. Um valor completo `sso=...` também funciona.", @@ -4335,16 +4350,16 @@ "contextRelaySummaryModel": "Modelo do Resumo", "contextRelayProviderNote": "O Context Relay atualmente gera handoffs para contas Codex e usa estes valores como padrão global para combos novos ou não configurados.", "providerProfiles": "Perfis de Provedor", - "providerProfilesDesc": "Configurações de resiliência separadas para provedores OAuth (baseados em sessão) e API Key (medidos). Provedores OAuth têm limites mais rigorosos devido a taxas mais baixas.", + "providerProfilesDesc": "Configurações de resiliência separadas para provedores OAuth (baseados em sessão) e Chave de API (medidos). Provedores OAuth têm limites mais rigorosos devido a taxas mais baixas.", "oauthProviders": "Provedores OAuth", - "apiKeyProviders": "Provedores API Key", + "apiKeyProviders": "Provedores Chave de API", "transientCooldown": "Cooldown Transitório", "rateLimitCooldown": "Cooldown de Rate Limit", "maxBackoffLevel": "Nível Máx. de Backoff", "cbThreshold": "Limiar do CB", "cbResetTime": "Tempo de Reset do CB", "rateLimiting": "Limitação de Taxa", - "rateLimitingDesc": "Provedores API Key são automaticamente limitados com padrões seguros. Limites são aprendidos dos cabeçalhos de resposta e se adaptam ao longo do tempo.", + "rateLimitingDesc": "Provedores Chave de API são automaticamente limitados com padrões seguros. Limites são aprendidos dos cabeçalhos de resposta e se adaptam ao longo do tempo.", "defaultSafetyNet": "Rede de Segurança Padrão", "rpm": "RPM", "minGap": "Intervalo Mín.", @@ -4634,14 +4649,7 @@ "resilienceConcurrentRequests": "Solicitações simultâneas", "resilienceMaxQueueWaitTime": "Tempo máximo de espera na fila", "resilienceBaseCooldown": "Resfriamento base", - "resilienceBaseCooldownLabel": "Resfriamento base", "resilienceUseUpstreamRetryHints": "Usar dicas de retentativa upstream", - "resilienceUseUpstreamRetryHintsLabel": "Usar dicas de retentativa upstream", - "resilienceYes": "Sim", - "resilienceNo": "Não", - "resilienceDefault": "Padrão", - "resilienceUseUpstream429BreakerLabel": "Usar dicas 429 upstream (breaker)", - "resilienceMaxBackoffStepsLabel": "Passos máximos de backoff", "resilienceDefaultPerProvider": "Padrão (por provedor)", "resilienceAlwaysOn": "Sempre ativado", "resilienceAlwaysOff": "Sempre desativado", @@ -4819,6 +4827,13 @@ "codexFastTierDesc": "Injetar globalmente service_tier=priority para solicitações do OpenAI Codex.", "codexFastTierHint": "Quando ativado, o OmniRoute adiciona service_tier=priority às solicitações de saída do Codex para conexões que ainda não especificam um nível. O nível de prioridade requer uma chave de API do OpenAI Enterprise ou o caminho Codex ChatGPT-auth; outros tipos de chave receberão um erro relacionado ao nível do OpenAI. As configurações por conexão na página do provedor Codex têm precedência.", "codexFastTierSaveError": "Falha ao atualizar a configuração do Nível Codex Fast", + "codexFastTierTierLabel": "Camada de serviço", + "codexFastTierTierPriority": "Prioridade", + "codexFastTierTierFlex": "Flex", + "codexFastTierTierDefault": "Padrão", + "codexFastTierModelsLabel": "Modelos da Camada Rápida", + "codexFastTierModelsHint": "Apenas modelos marcados recebem service_tier quando a Camada Rápida está habilitada.", + "codexFastTierModelCheckbox": "Habilitar Camada Rápida para {model}", "claudeFastModeTitle": "Modo Claude Rápido", "claudeFastModeDesc": "Optar por solicitações selecionadas do Claude no Modo Rápido da Anthropic (speed:\"fast\").", "claudeFastModeHint": "A Anthropic não suporta oficialmente o Modo Rápido para clientes estilo SDK. Quando ativado, o OmniRoute encaminha um cabeçalho X-CPA-Force-Fast-Mode para que uma compilação CLIProxyAPI emparelhada possa optar por simular o ponto de entrada. Apenas os modelos Opus listados são bloqueados pela verificação do lado do cliente da Anthropic. O nível de assinatura, o plano Max e o saldo de crédito do Modo Rápido ainda são aplicados no lado do servidor — a Anthropic pode retornar out_of_credits mesmo quando o alternador está ativado.", @@ -4975,13 +4990,13 @@ "enabled": "Ativo", "autoDetect": "Auto-detectar idioma", "rulesCount": "{count} regras", + "inputCompressionTitle": "Compressão de Entrada", + "inputCompressionDesc": "Reescreve o histórico do chat com termos mais curtos. Reduz os tokens de entrada em aproximadamente 50%.", "analyticsTitle": "Analytics de Compressao", "noAnalytics": "Sem analytics de compressao ainda.", "outputMode": "Modo de Saída", "outputModeDesc": "Instrui o LLM a responder em formato curto e compacto.", "outputModeTitle": "Modo de Saída", - "inputCompressionTitle": "Compressão de Entrada", - "inputCompressionDesc": "Reescreve o histórico do chat com termos mais curtos. Reduz os tokens de entrada em aproximadamente 50%.", "quickSettings": "Configurações Rápidas", "quickSettingsDesc": "Configurações básicas de compressão para começar", "autoClarity": "Bypass Auto-Clarity", @@ -5391,7 +5406,25 @@ "tierPro": "Pro", "tierPlus": "Plus", "tierFree": "Grátis", + "tierLite": "Lite", "tierUnknown": "Desconhecido", + "statTotal": "Total", + "statCritical": "Crítico", + "statAlert": "Alerta", + "statHealthy": "Saudável", + "filterPurchaseTypeLabel": "Tipo", + "filterTierLabel": "Camada", + "purchaseAll": "Todos", + "purchaseOauthSub": "Assinatura", + "purchaseOauthFree": "OAuth Gratuito", + "purchaseApiKey": "Chave de API", + "creditsLabel": "Créditos", + "creditBalanceHint": "Saldo restante", + "unlimitedLabel": "Ilimitado", + "refreshing": "Atualizando", + "resetsIn": "Reseta em", + "editCutoffs": "Editar limites", + "forceRefresh": "Atualizar agora", "suiteBuilderSaveFailed": "Falha ao salvar a suíte customizada", "clone": "Clonar", "exportSuite": "Exportar", @@ -5503,7 +5536,7 @@ "quotaThresholdLabel": "Mín restante", "quotaCutoffsColumnHelp": "Parar solicitações quando a cota restante cair para esta porcentagem ou menos.", "quotaCutoffsButtonDefault": "Padrão", - "quotaCutoffsButtonHelp": "Editar limites mínimos de cota restante para esta conta.", + "quotaCutoffsButtonHelp": "Edit cutoffs mínimos de cota restante para esta conta.", "quotaCutoffsButtonDisabled": "Nenhuma janela de cota está disponível para esta conta ainda.", "quotaCutoffsTitle": "Cortes de cota para {name} ({provider})", "quotaCutoffsExplainer": "Sobrescreva a porcentagem mínima de cota restante onde esta conta deixa de ser selecionada para cada janela de cota. Deixe em branco para herdar o padrão do provedor.", @@ -5535,9 +5568,11 @@ "budgetWeeklyDollar": "Semanal $", "budgetMonthlyDollar": "Mensal $", "budgetWarnAtPct": "Avisar em %", - "quotaAlerts": "Alertas de cota", + "quotaAlerts": "Alerts de cota", "quotaTableRefreshing": "⟳ Atualizando...", - "noSpendLast30Days": "Sem gastos nos últimos 30 dias" + "noSpendLast30Days": "Sem gastos nos últimos 30 dias", + "updatedShort": "Atualizado", + "lastRefreshed": "Última atualização" }, "modals": { "waitingAuth": "Aguardando Autorização", @@ -6165,7 +6200,7 @@ "templateNames": { "simple-chat": "Bate-papo simples", "streaming": "Transmissão", - "system-prompt": "Alerta do sistema", + "system-prompt": "Alert do sistema", "thinking": "Pensando", "tool-calling": "Chamada de ferramenta", "multi-turn": "Multivoltas", @@ -6233,7 +6268,7 @@ "behaviorBypass": "Ignorar com o cabeçalho {header}.", "behaviorTwoTier": "Armazenamento em dois níveis: LRU na memória (rápido) + SQLite (persistente entre reinicializações).", "behaviorTtl": "TTL padrão: 30 minutos. Configure via {envVar}.", - "idempotency": "Camada de Idempotência", + "idempotency": "Tier de Idempotência", "activeDedupKeys": "Chaves de Dedup Ativas", "dedupWindow": "Janela de Dedup", "clearSuccess": "Cache semântico limpo. {count} entradas removidas.", @@ -6243,7 +6278,6 @@ "loadingCacheAria": "Carregando cache", "promptCache": "Cache de Prompt (Provedor)", "semanticCache": "Cache Semântico", - "reasoningCache": "Cache de Raciocínio", "promptCacheSectionDesc": "Mostra a atividade de cache de prompt do lado do provedor a partir do histórico de uso para que você possa ver onde o controle de cache está ativo e quanto de reuso de entrada está obtendo.", "promptTrendDesc": "Volume de solicitações por hora, cobertura de cache e volume de leitura de cache nas últimas 24 horas.", "cachedRequests": "Solicitações Cacheadas", @@ -6266,16 +6300,6 @@ "peakCacheRate": "Taxa de Pico", "trendHour": "Hora", "activityVolume": "Atividade", - "hour": "Hora", - "activity": "Atividade", - "requests": "solicitações", - "noTrendData": "Nenhum dado de tendência disponível para as últimas 24 horas.", - "reasoningCacheTitle": "Cache de Raciocínio (Gemini Thinking)", - "reasoningCacheDesc": "Armazena e reutiliza blocos de raciocínio do Gemini para evitar geração redundante em fluxos de chamadas de ferramentas.", - "reasoningCacheHits": "Acertos de Raciocínio", - "reasoningCacheMisses": "Falhas de Raciocínio", - "reasoningCacheSize": "Tamanho do Cache", - "reasoningCacheTokens": "Tokens de Raciocínio Reutilizados", "requestsShort": "reqs", "inputShort": "In", "cachedShort": "Em Cache", @@ -6296,11 +6320,6 @@ "tableProvider": "Provedor", "tableModel": "Modelo", "performanceTitle": "Desempenho", - "tableShare": "Participação", - "justNow": "agora mesmo", - "minutesAgo": "{minutes}m atrás", - "hoursAgo": "{hours}h atrás", - "daysAgo": "{days}d atrás", "semanticCacheSectionDesc": "O próprio cache de resposta determinística do OmniRoute. Quando ativado, solicitações repetidas não streaming com temperature=0 podem ser servidas localmente sem atingir o provedor upstream.", "semanticCacheDisabledDesc": "O cache semântico está desativado. O OmniRoute pulará o reuso de resposta local até que você o ative novamente nas Configurações.", "semanticEntriesDesc": "Registros de cache semântico persistidos atualmente armazenados no SQLite. A atividade de cache de prompt do lado do provedor não está listada aqui.", @@ -6351,7 +6370,12 @@ "cachePerformanceAvgLatency": "Latência Média (ms)", "cachePerformanceP95Latency": "Latência p95 (ms)", "retry": "Tentar novamente", - "reasoningAvgChars": "Média de Caracteres" + "reasoningAvgChars": "Média de Caracteres", + "tableShare": "Participação", + "justNow": "agora mesmo", + "minutesAgo": "{minutes}m atrás", + "hoursAgo": "{hours}h atrás", + "daysAgo": "{days}d atrás" }, "proxyConfigModal": { "levelGlobal": "Global", @@ -6368,7 +6392,7 @@ "custom": "Personalizado", "selectSavedProxyPlaceholder": "Selecionar proxy salvo...", "proxyType": "Tipo de Proxy", - "host": "Anfitrião", + "host": "Host", "hostPlaceholder": "1.2.3.4 ou proxy.exemplo.com", "port": "Porta", "authOptional": "Autenticação (opcional)", @@ -6476,7 +6500,7 @@ "modalEditTitle": "Modal Edit Title", "labelName": "Label Name", "labelType": "Tipo", - "labelHost": "Anfitrião", + "labelHost": "Host", "labelPort": "Porta", "labelUsername": "Usuário", "labelPassword": "Senha", @@ -6502,11 +6526,11 @@ "scopeProvider": "provedor", "scopeAccount": "conta", "scopeCombo": "combo", - "bulkImportErrorMissingName": "Nome ausente (NAME)", - "bulkImportErrorMissingHost": "Host ausente (HOST)", - "bulkImportErrorInvalidPort": "Porta inválida (deve ser 1-65535)", - "bulkImportErrorInvalidType": "Tipo inválido (use http, https ou socks5)", - "bulkImportErrorInvalidStatus": "Status inválido (use active ou inactive)", + "bulkImportErrorMissingName": "NAME ausente", + "bulkImportErrorMissingHost": "HOST ausente", + "bulkImportErrorInvalidPort": "PORTA inválida (deve ser 1-65535)", + "bulkImportErrorInvalidType": "TIPO inválido (use http, https ou socks5)", + "bulkImportErrorInvalidStatus": "STATUS inválido (use active ou inactive)", "errorLoadFailed": "Falha ao carregar registro de proxy", "errorNameHostRequired": "Nome e host são obrigatórios", "errorSaveFailed": "Falha ao salvar proxy", @@ -6538,11 +6562,6 @@ "bulkImportErrorLine": "Linha {line}: {reason}", "bulkImportMaxExceeded": "Máximo de 100 proxies por importação", "bulkImportPreview": "Prévia", - "bulkImportErrorMissingName": "NAME ausente", - "bulkImportErrorMissingHost": "HOST ausente", - "bulkImportErrorInvalidPort": "PORTA inválida (deve ser 1-65535)", - "bulkImportErrorInvalidType": "TIPO inválido (use http, https ou socks5)", - "bulkImportErrorInvalidStatus": "STATUS inválido (use active ou inactive)", "clearAssignment": "(limpar atribuição)", "bulkProxyAssignment": "Atribuição de Proxy em Massa" }, @@ -6595,7 +6614,7 @@ "paused": "Pausado", "pipelineLogsOn": "Logs de pipeline ativados", "pipelineLogsOff": "Logs de pipeline desativados", - "updatingPipelineLogs": "Atualizando logs de pipeline...", + "updatingPipelineLogs": "Refreshing logs de pipeline...", "updatePipelineFailed": "Falha ao atualizar o registro de pipeline", "capturePipeline": "Capturar payloads de pipeline para novas solicitações", "searchPlaceholder": "Pesquisar modelos, provedores, contas, chaves de API, combos...", @@ -6730,10 +6749,10 @@ "hintOpen": "aberto", "hintConnsCooling": "conexões em cooldown", "hintModelsBlocked": "modelos bloqueados", - "resilienceTitle": "Resiliência em 3 Camadas", + "resilienceTitle": "Resiliência em 3 Tiers", "resilienceSubtitle": "Espelha o modelo de resiliência documentado", "providersHealthy": "{percent}% dos providers saudáveis", - "layer": "Camada {n}", + "layer": "Tier {n}", "layer1Title": "Circuit Breakers do Provedor", "layer1Desc": "Bloqueia tráfego para providers falhando no upstream", "layer2Title": "Cooldown de Conexões",