mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-08-26 13:07:14 +00:00
i18n(panel): migrate hardcoded panel strings to en-US and translate all locales
Surface ~400 hardcoded English labels, tooltips, placeholders, dt/divider text, modal okText/cancelText, and Spin loading from the panel pages (clients/groups/inbounds/nodes/settings/xray/sub/index) into web/translation/en-US.json under existing pages.<page>.* namespaces, with JSX swapped to t(...). Brand and protocol identifiers (TLS, MTU, SNI, NordVPN, Cloudflare WARP, etc.) stay literal. Sync all 12 non-English locales (ar-EG, es-ES, fa-IR, id-ID, ja-JP, pt-BR, ru-RU, tr-TR, uk-UA, vi-VN, zh-CN, zh-TW) to match en-US's structure and translate the 521 new key paths per locale. Every locale file now has 1539 lines, mirroring en-US ordering. Also remove a dead duplicate "info": "Info" key under pages.inbounds that collided with the new pages.inbounds.info.* object. Backend: bulk attach/detach errors in web/service/client.go now route through logger.Warningf (so they appear under /panel/api/server/logs/) instead of only living on the response payload.
This commit is contained in:
+444
-27
@@ -8,15 +8,22 @@
|
||||
"save": "Salvar",
|
||||
"logout": "Sair",
|
||||
"create": "Criar",
|
||||
"add": "Adicionar",
|
||||
"remove": "Remover",
|
||||
"update": "Atualizar",
|
||||
"copy": "Copiar",
|
||||
"copied": "Copiado",
|
||||
"more": "mais",
|
||||
"download": "Baixar",
|
||||
"remark": "Observação",
|
||||
"enable": "Ativado",
|
||||
"protocol": "Protocolo",
|
||||
"search": "Pesquisar",
|
||||
"filter": "Filtrar",
|
||||
"all": "Todos",
|
||||
"from": "De",
|
||||
"to": "Até",
|
||||
"done": "Concluído",
|
||||
"loading": "Carregando...",
|
||||
"refresh": "Atualizar",
|
||||
"clear": "Limpar",
|
||||
@@ -27,7 +34,7 @@
|
||||
"check": "Verificar",
|
||||
"indefinite": "Indeterminado",
|
||||
"unlimited": "Ilimitado",
|
||||
"none": "Nada",
|
||||
"none": "Nenhum",
|
||||
"qrCode": "Código QR",
|
||||
"info": "Mais Informações",
|
||||
"edit": "Editar",
|
||||
@@ -39,7 +46,7 @@
|
||||
"encryption": "Criptografia",
|
||||
"useIPv4ForHost": "Usar IPv4 para o host",
|
||||
"transmission": "Transmissão",
|
||||
"host": "Servidor",
|
||||
"host": "Host",
|
||||
"path": "Caminho",
|
||||
"camouflage": "Ofuscação",
|
||||
"status": "Status",
|
||||
@@ -95,11 +102,12 @@
|
||||
"dark": "Escuro",
|
||||
"ultraDark": "Ultra Escuro",
|
||||
"dashboard": "Visão Geral",
|
||||
"inbounds": "Inbounds",
|
||||
"inbounds": "Entradas",
|
||||
"clients": "Clientes",
|
||||
"groups": "Grupos",
|
||||
"nodes": "Nós",
|
||||
"settings": "Panel Settings",
|
||||
"xray": "Xray Configs",
|
||||
"settings": "Configurações do Painel",
|
||||
"xray": "Configurações Xray",
|
||||
"apiDocs": "Documentação da API",
|
||||
"logout": "Sair",
|
||||
"link": "Gerenciar",
|
||||
@@ -241,7 +249,7 @@
|
||||
"getConfigError": "Ocorreu um erro ao recuperar o arquivo de configuração"
|
||||
},
|
||||
"inbounds": {
|
||||
"title": "Inbounds",
|
||||
"title": "Entradas",
|
||||
"totalDownUp": "Total Enviado/Recebido",
|
||||
"totalUsage": "Uso Total",
|
||||
"inboundCount": "Total de Inbounds",
|
||||
@@ -270,14 +278,14 @@
|
||||
},
|
||||
"protocol": "Protocolo",
|
||||
"port": "Porta",
|
||||
"portMap": "Porta Mapeada",
|
||||
"portMap": "Mapeamento de portas",
|
||||
"traffic": "Tráfego",
|
||||
"details": "Detalhes",
|
||||
"transportConfig": "Transporte",
|
||||
"expireDate": "Duração",
|
||||
"createdAt": "Criado",
|
||||
"updatedAt": "Atualizado",
|
||||
"resetTraffic": "Redefinir Tráfego",
|
||||
"resetTraffic": "Redefinir tráfego",
|
||||
"addInbound": "Adicionar Inbound",
|
||||
"generalActions": "Ações Gerais",
|
||||
"modifyInbound": "Modificar Inbound",
|
||||
@@ -292,11 +300,29 @@
|
||||
"delAllClients": "Excluir todos os clientes",
|
||||
"delAllClientsConfirmTitle": "Excluir todos os {count} clientes de \"{remark}\"?",
|
||||
"delAllClientsConfirmContent": "Remove todos os clientes deste inbound e descarta seus registros de tráfego. O inbound em si é mantido. Esta ação não pode ser desfeita.",
|
||||
"attachClients": "Associar clientes a…",
|
||||
"addClientsToGroup": "Adicionar clientes ao grupo…",
|
||||
"attachClientsTitle": "Associar clientes de «{remark}»",
|
||||
"attachClientsDesc": "Associa os mesmos {count} cliente(s) (mesmo UUID/senha e tráfego compartilhado) à(s) entrada(s) selecionada(s). Permanecem nesta entrada também.",
|
||||
"attachClientsTargets": "Entradas de destino",
|
||||
"attachClientsNoTargets": "Não há outras entradas compatíveis disponíveis para associação.",
|
||||
"attachClientsResult": "Associados {attached}, ignorados {skipped}.",
|
||||
"attachClientsResultMixed": "Associados {attached}, ignorados {skipped}, erros {errors}.",
|
||||
"attachClientsSelectLabel": "Clientes para associar",
|
||||
"attachClientsSearchPlaceholder": "Buscar email ou comentário",
|
||||
"attachClientsStatusDisabled": "Desabilitado",
|
||||
"attachClientsSelectedCount": "{selected} de {total} selecionado(s)",
|
||||
"detachClients": "Desassociar clientes",
|
||||
"detachClientsTitle": "Desassociar clientes de «{remark}»",
|
||||
"detachClientsDesc": "Remove o(s) cliente(s) selecionado(s) apenas desta entrada. Os registros são mantidos (use Delete para remover completamente). A origem tem {count} cliente(s) no total.",
|
||||
"detachClientsResult": "Desassociados {detached}, ignorados {skipped}.",
|
||||
"detachClientsResultMixed": "Desassociados {detached}, ignorados {skipped}, erros {errors}.",
|
||||
"detachClientsSelectLabel": "Clientes para desassociar",
|
||||
"exportLinksTitle": "Exportar links do inbound",
|
||||
"exportSubsTitle": "Exportar links de assinatura",
|
||||
"exportAllLinksTitle": "Exportar todos os links de inbound",
|
||||
"exportAllSubsTitle": "Exportar todos os links de assinatura",
|
||||
"inboundJsonTitle": "JSON do inbound",
|
||||
"inboundJsonTitle": "JSON da entrada",
|
||||
"deleteClient": "Excluir Cliente",
|
||||
"deleteClientContent": "Tem certeza de que deseja excluir o cliente?",
|
||||
"resetTrafficContent": "Tem certeza de que deseja redefinir o tráfego?",
|
||||
@@ -341,6 +367,7 @@
|
||||
"IPLimitlogDesc": "O histórico de IPs. (para ativar o inbound após a desativação, limpe o log)",
|
||||
"IPLimitlogclear": "Limpar o Log",
|
||||
"setDefaultCert": "Definir Certificado pelo Painel",
|
||||
"setDefaultCertEmpty": "Nenhum certificado configurado para o painel. Configure um em Configurações primeiro.",
|
||||
"streamTab": "Stream",
|
||||
"securityTab": "Segurança",
|
||||
"sniffingTab": "Sniffing",
|
||||
@@ -369,7 +396,6 @@
|
||||
},
|
||||
"telegramDesc": "Por favor, forneça o ID do Chat do Telegram. (use o comando '/id' no bot) ou ({'@'}userinfobot)",
|
||||
"subscriptionDesc": "Para encontrar seu URL de assinatura, navegue até 'Detalhes'. Além disso, você pode usar o mesmo nome para vários clientes.",
|
||||
"info": "Informações",
|
||||
"same": "Igual",
|
||||
"inboundData": "Dados do Inbound",
|
||||
"exportInbound": "Exportar Inbound",
|
||||
@@ -406,6 +432,139 @@
|
||||
"getNewmldsa65Error": "Erro ao obter o certificado mldsa65.",
|
||||
"getNewVlessEncError": "Erro ao obter o certificado VlessEnc."
|
||||
},
|
||||
"form": {
|
||||
"moveUp": "Mover para cima",
|
||||
"moveDown": "Mover para baixo",
|
||||
"addAll": "Adicionar todos",
|
||||
"addAllFallbackTooltip": "Adiciona uma linha de fallback para cada entrada elegível ainda não conectada",
|
||||
"peers": "Peers",
|
||||
"addPeer": "Adicionar peer",
|
||||
"keepAlive": "Keep-alive",
|
||||
"autoSystemRoutesTooltip": "Apenas Windows. CIDRs são adicionados à tabela de roteamento do sistema automaticamente para que o tráfego correspondente passe pelo TUN.",
|
||||
"autoOutboundsInterface": "Interface de saída automática",
|
||||
"autoOutboundsInterfaceTooltip": "Interface física para tráfego de saída. Use 'auto' para detecção; auto-habilitado quando Auto system routes está ativo.",
|
||||
"rewriteAddress": "Reescrever endereço",
|
||||
"rewritePort": "Reescrever porta",
|
||||
"allowedNetwork": "Rede permitida",
|
||||
"followRedirect": "Seguir redirect",
|
||||
"accounts": "Contas",
|
||||
"allowTransparent": "Permitir transparente",
|
||||
"encryptionMethod": "Método de criptografia",
|
||||
"visionTestseed": "Vision testseed",
|
||||
"version": "Versão",
|
||||
"udpIdleTimeout": "UDP idle timeout (s)",
|
||||
"masquerade": "Masquerade",
|
||||
"type": "Tipo",
|
||||
"upstreamUrl": "URL Upstream",
|
||||
"rewriteHost": "Reescrever Host",
|
||||
"skipTlsVerify": "Pular verificação TLS",
|
||||
"directory": "Diretório",
|
||||
"statusCode": "Código de status",
|
||||
"body": "Body",
|
||||
"headers": "Cabeçalhos",
|
||||
"proxyProtocol": "Proxy Protocol",
|
||||
"requestVersion": "Versão da requisição",
|
||||
"requestMethod": "Método da requisição",
|
||||
"requestPath": "Caminho da requisição",
|
||||
"requestHeaders": "Cabeçalhos de requisição",
|
||||
"responseVersion": "Versão da resposta",
|
||||
"responseStatus": "Status da resposta",
|
||||
"responseReason": "Motivo da resposta",
|
||||
"responseHeaders": "Cabeçalhos de resposta",
|
||||
"heartbeatPeriod": "Período de heartbeat",
|
||||
"serviceName": "Nome do serviço",
|
||||
"authority": "Authority",
|
||||
"multiMode": "Multi Mode",
|
||||
"maxBufferedUpload": "Máx. upload em buffer",
|
||||
"maxUploadSize": "Tamanho máx. de upload (Byte)",
|
||||
"streamUpServer": "Stream-Up Server",
|
||||
"serverMaxHeaderBytes": "Máx. bytes cabeçalho servidor",
|
||||
"paddingBytes": "Bytes de Padding",
|
||||
"uplinkHttpMethod": "Método HTTP Uplink",
|
||||
"paddingObfsMode": "Modo obfs de Padding",
|
||||
"paddingKey": "Padding Key",
|
||||
"paddingHeader": "Padding Header",
|
||||
"paddingPlacement": "Posição de Padding",
|
||||
"paddingMethod": "Método de Padding",
|
||||
"sessionPlacement": "Session Placement",
|
||||
"sessionKey": "Session Key",
|
||||
"sequencePlacement": "Sequence Placement",
|
||||
"sequenceKey": "Sequence Key",
|
||||
"uplinkDataPlacement": "Uplink Data Placement",
|
||||
"uplinkDataKey": "Uplink Data Key",
|
||||
"noSseHeader": "Sem cabeçalho SSE",
|
||||
"ttiMs": "TTI (ms)",
|
||||
"uplinkMbps": "Uplink (MB/s)",
|
||||
"downlinkMbps": "Downlink (MB/s)",
|
||||
"cwndMultiplier": "Multiplicador CWND",
|
||||
"maxSendingWindow": "Máx. janela de envio",
|
||||
"externalProxy": "Proxy externo",
|
||||
"sniPlaceholder": "SNI (padrão = host)",
|
||||
"fingerprint": "Fingerprint",
|
||||
"defaultOption": "Padrão",
|
||||
"routeMark": "Route Mark",
|
||||
"tcpKeepAliveInterval": "TCP Keep Alive Interval",
|
||||
"tcpKeepAliveIdle": "TCP Keep Alive Idle",
|
||||
"tcpMaxSeg": "TCP Max Seg",
|
||||
"tcpUserTimeout": "TCP User Timeout",
|
||||
"tcpWindowClamp": "TCP Window Clamp",
|
||||
"tcpFastOpen": "TCP Fast Open",
|
||||
"multipathTcp": "Multipath TCP",
|
||||
"penetrate": "Penetrate",
|
||||
"v6Only": "Apenas V6",
|
||||
"tcpCongestion": "TCP Congestion",
|
||||
"dialerProxy": "Dialer Proxy",
|
||||
"trustedXForwardedFor": "X-Forwarded-For confiável",
|
||||
"addressPortStrategy": "Estratégia endereço+porta",
|
||||
"tryDelayMs": "Atraso de tentativa (ms)",
|
||||
"prioritizeIPv6": "Priorizar IPv6",
|
||||
"interleave": "Interleave",
|
||||
"maxConcurrentTry": "Máx. tentativas simultâneas",
|
||||
"customSockopt": "Sockopt personalizado",
|
||||
"addCustomOption": "Adicionar opção personalizada",
|
||||
"serverNameIndication": "SNI",
|
||||
"cipherSuites": "Cipher Suites",
|
||||
"autoOption": "Auto",
|
||||
"minMaxVersion": "Versão mín/máx",
|
||||
"rejectUnknownSni": "Rejeitar SNI desconhecido",
|
||||
"disableSystemRoot": "Desabilitar System Root",
|
||||
"sessionResumption": "Retomada de sessão",
|
||||
"oneTimeLoading": "Carregamento único",
|
||||
"usageOption": "Opção de uso",
|
||||
"buildChain": "Construir cadeia",
|
||||
"echKey": "ECH key",
|
||||
"echConfig": "Config ECH",
|
||||
"getNewEchCert": "Obter novo certificado ECH",
|
||||
"show": "Mostrar",
|
||||
"xver": "Xver",
|
||||
"target": "Alvo",
|
||||
"maxTimeDiff": "Máx. diferença de tempo (ms)",
|
||||
"minClientVer": "Mín. versão cliente",
|
||||
"maxClientVer": "Máx. versão cliente",
|
||||
"shortIds": "Short IDs",
|
||||
"spiderX": "SpiderX",
|
||||
"getNewCert": "Obter novo certificado",
|
||||
"mldsa65Seed": "mldsa65 Seed",
|
||||
"mldsa65Verify": "mldsa65 Verify",
|
||||
"getNewSeed": "Obter novo Seed"
|
||||
},
|
||||
"info": {
|
||||
"mode": "Modo",
|
||||
"grpcServiceName": "grpc serviceName",
|
||||
"grpcMultiMode": "grpc multiMode",
|
||||
"interfaceName": "Nome da interface",
|
||||
"mtu": "MTU",
|
||||
"gateway": "Gateway",
|
||||
"dns": "DNS",
|
||||
"outboundsInterface": "Interface de saída",
|
||||
"autoSystemRoutes": "Rotas do sistema automáticas",
|
||||
"followRedirect": "FollowRedirect",
|
||||
"auth": "Auth",
|
||||
"noKernelTun": "TUN sem kernel",
|
||||
"keepAlive": "Keep alive",
|
||||
"peerNumber": "Peer {n}",
|
||||
"peerNumberConfig": "Config Peer {n}"
|
||||
},
|
||||
"stream": {
|
||||
"general": {
|
||||
"request": "Requisição",
|
||||
@@ -456,6 +615,20 @@
|
||||
"days": "Dia(s)",
|
||||
"renew": "Renovação automática",
|
||||
"renewDesc": "Renovação automática após a expiração. (0 = desativar) (unidade: dia)",
|
||||
"searchPlaceholder": "Buscar email, comentário, sub ID, UUID, senha, auth…",
|
||||
"filterTitle": "Filtrar clientes",
|
||||
"clearAllFilters": "Limpar tudo",
|
||||
"sortOldest": "Mais antigos primeiro",
|
||||
"sortNewest": "Mais novos primeiro",
|
||||
"sortRecentlyUpdated": "Atualizados recentemente",
|
||||
"sortRecentlyOnline": "Online recentemente",
|
||||
"sortEmailAZ": "Email A→Z",
|
||||
"sortEmailZA": "Email Z→A",
|
||||
"sortMostTraffic": "Mais tráfego",
|
||||
"sortHighestRemaining": "Maior restante",
|
||||
"sortExpiringSoonest": "Expira em breve",
|
||||
"has": "Tem",
|
||||
"hasNot": "Não tem",
|
||||
"title": "Clientes",
|
||||
"actions": "Ações",
|
||||
"totalGB": "Total enviado/recebido (GB)",
|
||||
@@ -465,7 +638,10 @@
|
||||
"password": "Senha",
|
||||
"subId": "ID da assinatura",
|
||||
"online": "Online",
|
||||
"email": "E-mail",
|
||||
"email": "Email",
|
||||
"group": "Grupo",
|
||||
"groupDesc": "Rótulo lógico para agrupar clientes relacionados (ex.: equipe, cliente, região). Filtrável pela barra de ferramentas.",
|
||||
"groupPlaceholder": "ex.: customer-a",
|
||||
"comment": "Comentário",
|
||||
"traffic": "Tráfego",
|
||||
"offline": "Offline",
|
||||
@@ -489,11 +665,45 @@
|
||||
"resetAllTraffics": "Redefinir o tráfego de todos os clientes",
|
||||
"resetAllTrafficsTitle": "Redefinir o tráfego de todos os clientes?",
|
||||
"resetAllTrafficsContent": "Os contadores de envio/recebimento de cada cliente vão a zero. Cota e expiração não são afetadas. Não é possível desfazer.",
|
||||
"empty": "Ainda não há clientes — adicione um para começar.",
|
||||
"deleteConfirmTitle": "Excluir o cliente {email}?",
|
||||
"deleteConfirmContent": "Isto remove o cliente de cada inbound associado e descarta o registro de tráfego. Não é possível desfazer.",
|
||||
"deleteSelected": "Excluir ({count})",
|
||||
"adjustSelected": "Ajustar ({count})",
|
||||
"subLinksSelected": "Links sub ({count})",
|
||||
"addToGroupTitle": "Adicionar {count} cliente(s) a um grupo",
|
||||
"addToGroupTooltip": "Escolha um grupo existente ou digite um novo nome. Use Ungroup para remover clientes do grupo atual.",
|
||||
"addToGroupPlaceholder": "Nome do grupo",
|
||||
"addToGroupSuccessToast": "{count} cliente(s) adicionado(s) a {group}",
|
||||
"ungroupSuccessToast": "Grupo limpo de {count} cliente(s)",
|
||||
"ungroup": "Desagrupar",
|
||||
"ungroupConfirmTitle": "Remover {count} cliente(s) do grupo?",
|
||||
"ungroupConfirmContent": "Limpa o rótulo de grupo de cada cliente selecionado. Os clientes em si são mantidos (use Delete para remover completamente).",
|
||||
"addToGroup": "Adicionar ao grupo",
|
||||
"attach": "Associar",
|
||||
"adjust": "Ajustar",
|
||||
"subLinks": "Links de assinatura",
|
||||
"selectedCount": "{count} selecionado(s)",
|
||||
"attachSelected": "Associar ({count})",
|
||||
"attachToInboundsTitle": "Associar {count} cliente(s) a entrada(s)",
|
||||
"attachToInboundsDesc": "Associa os {count} cliente(s) selecionados (mesmo UUID/senha e tráfego compartilhado) às entradas escolhidas. Mantêm suas associações existentes.",
|
||||
"attachToInboundsTargets": "Entradas de destino",
|
||||
"attachToInboundsNoTargets": "Não há entradas multiusuário disponíveis para associação.",
|
||||
"detachSelected": "Desassociar ({count})",
|
||||
"detach": "Desassociar",
|
||||
"detachFromInboundsTitle": "Desassociar {count} cliente(s) de entrada(s)",
|
||||
"detachFromInboundsDesc": "Remove os {count} cliente(s) selecionados das entradas escolhidas. Pares onde o cliente não estava associado são ignorados silenciosamente. Os registros dos clientes são mantidos (use Delete para remover completamente).",
|
||||
"detachFromInboundsTargets": "Entradas para desassociar",
|
||||
"detachFromInboundsNoTargets": "Não há entradas multiusuário disponíveis.",
|
||||
"detachFromInboundsResult": "Desassociados {detached}, ignorados {skipped}.",
|
||||
"detachFromInboundsResultMixed": "Desassociados {detached}, ignorados {skipped}, erros {errors}.",
|
||||
"subLinksTitle": "Links sub ({count})",
|
||||
"subLinkColumn": "URL da assinatura",
|
||||
"subJsonLinkColumn": "URL JSON da assinatura",
|
||||
"subLinksCopyAll": "Copiar tudo",
|
||||
"subLinksCopiedAll": "Copiados {count} link(s)",
|
||||
"subLinksEmpty": "Nenhum dos clientes selecionados tem ID de assinatura.",
|
||||
"subLinksDisabled": "O serviço de assinatura está desabilitado.",
|
||||
"subLinksDisabledHint": "Habilite a assinatura em Configurações do Painel → Assinatura para gerar links.",
|
||||
"bulkDeleteConfirmTitle": "Excluir {count} clientes?",
|
||||
"bulkDeleteConfirmContent": "Cada cliente selecionado é removido dos inbounds associados e o registro de tráfego é descartado. Não é possível desfazer.",
|
||||
"bulkAdjustTitle": "Ajustar {count} clientes",
|
||||
@@ -505,10 +715,11 @@
|
||||
"delDepletedConfirmTitle": "Excluir clientes esgotados?",
|
||||
"delDepletedConfirmContent": "Remove todos os clientes cuja cota de tráfego foi esgotada ou cuja expiração já passou. Não é possível desfazer.",
|
||||
"auth": "Auth",
|
||||
"hysteriaAuth": "Auth do Hysteria",
|
||||
"hysteriaAuth": "Hysteria Auth",
|
||||
"uuid": "UUID",
|
||||
"flow": "Flow",
|
||||
"reverseTag": "Reverse tag",
|
||||
"vmessSecurity": "Segurança VMess",
|
||||
"reverseTag": "Tag reversa",
|
||||
"reverseTagPlaceholder": "Reverse tag opcional",
|
||||
"telegramId": "ID de usuário do Telegram",
|
||||
"telegramIdPlaceholder": "ID numérico de usuário do Telegram (0 = nenhum)",
|
||||
@@ -528,6 +739,44 @@
|
||||
"delDepleted": "{count} clientes esgotados excluídos"
|
||||
}
|
||||
},
|
||||
"groups": {
|
||||
"title": "Grupos",
|
||||
"name": "Nome",
|
||||
"clientCount": "Clientes no grupo",
|
||||
"totalGroups": "Total de grupos",
|
||||
"totalGroupedClients": "Clientes com grupo",
|
||||
"emptyGroups": "Grupos vazios",
|
||||
"addGroup": "Adicionar grupo",
|
||||
"createSuccess": "Grupo «{name}» criado.",
|
||||
"rename": "Renomear",
|
||||
"renameTitle": "Renomear {name}",
|
||||
"renameCollision": "Já existe um grupo chamado «{name}».",
|
||||
"renameSuccess": "Grupo renomeado em {count} cliente(s).",
|
||||
"deleteConfirmTitle": "Excluir o grupo {name}?",
|
||||
"deleteConfirmContent": "Isso remove o grupo e limpa seu rótulo de {count} cliente(s). Os clientes em si não são excluídos.",
|
||||
"deleteSuccess": "Grupo limpo de {count} cliente(s).",
|
||||
"resetTraffic": "Redefinir tráfego",
|
||||
"resetConfirmTitle": "Redefinir tráfego do grupo {name}?",
|
||||
"resetConfirmContent": "Isso zera up/down para todos os {count} cliente(s) deste grupo.",
|
||||
"resetSuccess": "Tráfego redefinido para {count} cliente(s).",
|
||||
"adjustSuccess": "Ajustados {count} cliente(s) em {name}.",
|
||||
"emptyForAction": "Este grupo ainda não tem clientes.",
|
||||
"deleteGroupOnly": "Excluir grupo (manter clientes)",
|
||||
"deleteClients": "Excluir clientes do grupo",
|
||||
"deleteClientsConfirmTitle": "Excluir todos os clientes em {name}?",
|
||||
"deleteClientsConfirmContent": "Isso remove permanentemente {count} cliente(s) junto com seus registros de tráfego. O rótulo de grupo também é limpo. Isso não pode ser desfeito.",
|
||||
"deleteClientsSuccess": "Excluídos {count} cliente(s).",
|
||||
"deleteClientsMixed": "{ok} excluídos, {failed} ignorados",
|
||||
"addToGroup": "Adicionar clientes…",
|
||||
"addToGroupTitle": "Adicionar clientes ao grupo «{name}»",
|
||||
"addToGroupDesc": "Selecione clientes para adicionar a este grupo. Mantêm suas associações de entrada atuais; apenas o rótulo de grupo muda. Clientes já neste grupo não são listados.",
|
||||
"addToGroupEmpty": "Não há outros clientes disponíveis para adicionar.",
|
||||
"addToGroupResult": "Adicionados {count} cliente(s) a {name}.",
|
||||
"removeFromGroup": "Remover clientes…",
|
||||
"removeFromGroupTitle": "Remover clientes do grupo «{name}»",
|
||||
"removeFromGroupDesc": "Selecione membros para remover deste grupo. Os clientes em si são mantidos (use «Excluir clientes do grupo» para removê-los por completo).",
|
||||
"removeFromGroupResult": "Removidos {count} cliente(s) de {name}."
|
||||
},
|
||||
"nodes": {
|
||||
"title": "Nós",
|
||||
"addNode": "Adicionar nó",
|
||||
@@ -544,7 +793,7 @@
|
||||
"address": "Endereço",
|
||||
"port": "Porta",
|
||||
"basePath": "Caminho base",
|
||||
"apiToken": "Token da API",
|
||||
"apiToken": "Token API",
|
||||
"apiTokenPlaceholder": "Token da página de Configurações do painel remoto",
|
||||
"apiTokenHint": "O painel remoto exibe o token da API em Configurações → Token da API.",
|
||||
"regenerate": "Regenerar token",
|
||||
@@ -590,7 +839,7 @@
|
||||
"title": "Configurações do Painel",
|
||||
"save": "Salvar",
|
||||
"infoDesc": "Toda alteração feita aqui precisa ser salva. Reinicie o painel para aplicar as alterações.",
|
||||
"restartPanel": "Reiniciar Painel",
|
||||
"restartPanel": "Reiniciar painel",
|
||||
"restartPanelDesc": "Tem certeza de que deseja reiniciar o painel? Se não conseguir acessar o painel após reiniciar, consulte os logs do painel no servidor.",
|
||||
"restartPanelSuccess": "O painel foi reiniciado com sucesso",
|
||||
"actions": "Ações",
|
||||
@@ -619,6 +868,8 @@
|
||||
"panelUrlPathDesc": "O caminho URI para o painel web. (começa com ‘/‘ e termina com ‘/‘)",
|
||||
"pageSize": "Tamanho da Paginação",
|
||||
"pageSizeDesc": "Definir o tamanho da página para a tabela de entradas. (0 = desativado)",
|
||||
"panelProxy": "Proxy de rede do painel",
|
||||
"panelProxyDesc": "Encaminha as requisições de saída do próprio painel (atualizações de geo, verificações de versão do Xray/painel, Telegram) por este proxy para contornar a filtragem de GitHub/Telegram no servidor. Aceita socks5:// ou http(s)://, ex. uma entrada SOCKS local do Xray. Deixe vazio para conexão direta.",
|
||||
"remarkModel": "Modelo de Observação & Caractere de Separação",
|
||||
"datepicker": "Tipo de Calendário",
|
||||
"datepickerPlaceholder": "Selecionar data",
|
||||
@@ -634,7 +885,7 @@
|
||||
"telegramTokenDesc": "O token do bot do Telegram obtido de '{'@'}BotFather'.",
|
||||
"telegramProxy": "Proxy SOCKS",
|
||||
"telegramProxyDesc": "Ativa o proxy SOCKS5 para conectar ao Telegram. (ajuste as configurações conforme o guia)",
|
||||
"telegramAPIServer": "API Server do Telegram",
|
||||
"telegramAPIServer": "Servidor API do Telegram",
|
||||
"telegramAPIServerDesc": "O servidor API do Telegram a ser usado. Deixe em branco para usar o servidor padrão.",
|
||||
"telegramChatId": "ID de Chat do Administrador",
|
||||
"telegramChatIdDesc": "O(s) ID(s) de Chat do Administrador no Telegram. (separado por vírgulas)(obtenha aqui {'@'}userinfobot) ou (use o comando '/id' no bot)",
|
||||
@@ -658,6 +909,8 @@
|
||||
"subEnable": "Ativar Serviço de Assinatura",
|
||||
"subEnableDesc": "Ativa o serviço de assinatura.",
|
||||
"subJsonEnable": "Ativar/Desativar o endpoint de assinatura JSON de forma independente.",
|
||||
"subJsonEnableTitle": "Assinatura JSON",
|
||||
"subClashEnableTitle": "Assinatura Clash / Mihomo",
|
||||
"subTitle": "Título da Assinatura",
|
||||
"subTitleDesc": "Título exibido no cliente VPN",
|
||||
"subSupportUrl": "URL de Suporte",
|
||||
@@ -693,7 +946,7 @@
|
||||
"subURI": "URI de Proxy Reverso",
|
||||
"subURIDesc": "O caminho URI da URL de assinatura para uso por trás de proxies.",
|
||||
"externalTrafficInformEnable": "Informações de tráfego externo",
|
||||
"externalTrafficInformEnableDesc": "Informar a API externa sobre cada atualização de tráfego.",
|
||||
"externalTrafficInformEnableDesc": "Informar API externa a cada atualização de tráfego.",
|
||||
"externalTrafficInformURI": "URI de informação de tráfego externo",
|
||||
"externalTrafficInformURIDesc": "As atualizações de tráfego são enviadas para este URI.",
|
||||
"restartXrayOnClientDisable": "Reiniciar Xray Após Desativação Automática",
|
||||
@@ -703,6 +956,54 @@
|
||||
"fragmentSett": "Configurações de Fragmentação",
|
||||
"noisesDesc": "Ativar Noises.",
|
||||
"noisesSett": "Configurações de Noises",
|
||||
"trustedProxyCidrs": "CIDRs de proxy confiável",
|
||||
"trustedProxyCidrsDesc": "IPs/CIDRs separados por vírgula que podem definir os cabeçalhos host, proto e IP do cliente encaminhados.",
|
||||
"ldap": {
|
||||
"enable": "Habilitar sincronização LDAP",
|
||||
"host": "Host LDAP",
|
||||
"port": "Porta LDAP",
|
||||
"useTls": "Usar TLS (LDAPS)",
|
||||
"bindDn": "Bind DN",
|
||||
"passwordConfigured": "Configurada; deixe em branco para manter a senha atual.",
|
||||
"passwordUnconfigured": "Não configurada.",
|
||||
"passwordPlaceholder": "Configurada — digite um novo valor para substituir",
|
||||
"baseDn": "Base DN",
|
||||
"userFilter": "Filtro de usuário",
|
||||
"userAttr": "Atributo de usuário (username/email)",
|
||||
"vlessField": "Atributo flag VLESS",
|
||||
"flagField": "Atributo flag genérico (opcional)",
|
||||
"flagFieldDesc": "Se definido, sobrescreve o flag VLESS — ex. shadowInactive.",
|
||||
"truthyValues": "Valores truthy",
|
||||
"truthyValuesDesc": "Separados por vírgula; padrão: true,1,yes,on",
|
||||
"invertFlag": "Inverter flag",
|
||||
"invertFlagDesc": "Habilite quando o atributo significar «desabilitado» (ex. shadowInactive).",
|
||||
"syncSchedule": "Agendamento da sincronização",
|
||||
"syncScheduleDesc": "String tipo cron, ex. @every 1m",
|
||||
"inboundTags": "Tags de entradas",
|
||||
"inboundTagsDesc": "Entradas nas quais a sincronização LDAP pode auto-criar ou auto-excluir clientes.",
|
||||
"noInbounds": "Nenhuma entrada encontrada. Crie uma em Entradas primeiro.",
|
||||
"autoCreate": "Criar clientes automaticamente",
|
||||
"autoDelete": "Excluir clientes automaticamente",
|
||||
"defaultTotalGb": "Total padrão (GB)",
|
||||
"defaultExpiryDays": "Expiração padrão (dias)",
|
||||
"defaultIpLimit": "Limite de IP padrão"
|
||||
},
|
||||
"subFormats": {
|
||||
"packets": "Pacotes",
|
||||
"length": "Comprimento",
|
||||
"interval": "Intervalo",
|
||||
"maxSplit": "Máx. divisão",
|
||||
"noises": "Ruídos",
|
||||
"noiseItem": "Ruído №{n}",
|
||||
"type": "Tipo",
|
||||
"packet": "Pacote",
|
||||
"delayMs": "Atraso (ms)",
|
||||
"applyTo": "Aplicar a",
|
||||
"addNoise": "+ Ruído",
|
||||
"concurrency": "Concorrência",
|
||||
"xudpConcurrency": "Concorrência xudp",
|
||||
"xudpUdp443": "xudp UDP 443"
|
||||
},
|
||||
"mux": "Mux",
|
||||
"muxDesc": "Transmitir múltiplos fluxos de dados independentes dentro de um fluxo de dados estabelecido.",
|
||||
"muxSett": "Configurações de Mux",
|
||||
@@ -758,6 +1059,9 @@
|
||||
"save": "Salvar",
|
||||
"restart": "Reiniciar Xray",
|
||||
"restartSuccess": "Xray foi reiniciado com sucesso",
|
||||
"restartOutputTitle": "Saída do reinício do Xray",
|
||||
"restartConfirmTitle": "Reiniciar xray?",
|
||||
"restartConfirmContent": "Recarrega o serviço xray com a configuração salva.",
|
||||
"stopSuccess": "Xray foi interrompido com sucesso",
|
||||
"restartError": "Ocorreu um erro ao reiniciar o Xray.",
|
||||
"stopError": "Ocorreu um erro ao parar o Xray.",
|
||||
@@ -790,14 +1094,16 @@
|
||||
"outboundTestUrl": "URL de teste de outbound",
|
||||
"outboundTestUrlDesc": "URL usada ao testar conectividade do outbound",
|
||||
"Torrent": "Bloquear Protocolo BitTorrent",
|
||||
"Inbounds": "Inbounds",
|
||||
"Inbounds": "Entradas",
|
||||
"InboundsDesc": "Aceitar clientes específicos.",
|
||||
"Outbounds": "Outbounds",
|
||||
"Outbounds": "Saídas",
|
||||
"Balancers": "Balanceadores",
|
||||
"balancerTagRequired": "A tag é obrigatória",
|
||||
"balancerSelectorRequired": "Selecione pelo menos uma saída",
|
||||
"OutboundsDesc": "Definir o caminho de saída do tráfego.",
|
||||
"Routings": "Regras de Roteamento",
|
||||
"RoutingsDesc": "A prioridade de cada regra é importante!",
|
||||
"completeTemplate": "Todos",
|
||||
"completeTemplate": "Tudo",
|
||||
"logLevel": "Nível de Log",
|
||||
"logLevelDesc": "O nível de log para erros, indicando a informação que precisa ser registrada.",
|
||||
"accessLog": "Log de Acesso",
|
||||
@@ -832,6 +1138,73 @@
|
||||
"edit": "Editar Regra",
|
||||
"useComma": "Itens separados por vírgula"
|
||||
},
|
||||
"routing": {
|
||||
"dragToReorder": "Arraste para reordenar"
|
||||
},
|
||||
"ruleForm": {
|
||||
"sourceIps": "IPs de origem",
|
||||
"sourcePort": "Porta de origem",
|
||||
"vlessRoute": "Rota VLESS",
|
||||
"attributes": "Atributos",
|
||||
"value": "Valor",
|
||||
"user": "Usuário",
|
||||
"inboundTags": "Tags de entradas",
|
||||
"outboundTag": "Tag de saída",
|
||||
"balancerTag": "Tag de balanceador",
|
||||
"balancerTagTooltip": "Encaminha tráfego por um dos balanceadores configurados"
|
||||
},
|
||||
"outboundForm": {
|
||||
"tagDuplicate": "Tag já usada por outra saída",
|
||||
"tagRequired": "A tag é obrigatória",
|
||||
"tagPlaceholder": "tag-única",
|
||||
"localIpPlaceholder": "IP local",
|
||||
"addressRequired": "Endereço é obrigatório",
|
||||
"portRequired": "Porta é obrigatória",
|
||||
"optional": "opcional",
|
||||
"udpOverTcp": "UDP sobre TCP",
|
||||
"uotVersion": "Versão UoT",
|
||||
"inboundTag": "Tag de entrada",
|
||||
"inboundTagPlaceholder": "tag de entrada usada em regras de roteamento",
|
||||
"responseType": "Tipo de resposta",
|
||||
"rewriteNetwork": "Reescrever rede",
|
||||
"unchanged": "(inalterado)",
|
||||
"unchangedAddress": "(inalterado) ex. 1.1.1.1",
|
||||
"rules": "Regras",
|
||||
"ruleN": "Regra {n}",
|
||||
"action": "Ação",
|
||||
"redirect": "Redirect",
|
||||
"fragment": "Fragment",
|
||||
"finalRules": "Regras finais",
|
||||
"overrideXrayPrivateIp": "Sobrescrever o bloqueio de IP privado padrão do Xray",
|
||||
"blockDelay": "Atraso do bloqueio (ms)",
|
||||
"reverseSniffing": "Sniffing reverso",
|
||||
"workers": "Workers",
|
||||
"reserved": "Reservado",
|
||||
"minUploadInterval": "Intervalo mín. de upload (ms)",
|
||||
"maxUploadSizeBytes": "Tamanho máx. de upload (bytes)",
|
||||
"uplinkChunkSize": "Tamanho do chunk Uplink",
|
||||
"noGrpcHeader": "Sem cabeçalho gRPC",
|
||||
"maxConcurrency": "Máx. concorrência",
|
||||
"maxConnections": "Máx. conexões",
|
||||
"maxReuseTimes": "Máx. reutilizações",
|
||||
"maxRequestTimes": "Máx. requisições",
|
||||
"maxReusableSecs": "Máx. segundos reutilizáveis",
|
||||
"keepAlivePeriod": "Período keep alive",
|
||||
"authPassword": "Senha de auth",
|
||||
"visionTestpre": "Vision testpre",
|
||||
"serverNamePlaceholder": "nome do servidor",
|
||||
"verifyPeerName": "Verificar nome do peer",
|
||||
"pinnedSha256": "SHA256 pinned",
|
||||
"shortId": "Short ID",
|
||||
"sockopts": "Sockopts",
|
||||
"keepAliveInterval": "Intervalo keep alive",
|
||||
"markFwmark": "Mark (fwmark)",
|
||||
"interface": "Interface",
|
||||
"ipv6Only": "Apenas IPv6",
|
||||
"acceptProxyProtocol": "Aceitar proxy protocol",
|
||||
"tcpUserTimeoutMs": "TCP user timeout (ms)",
|
||||
"tcpKeepAliveIdleS": "TCP keep-alive idle (s)"
|
||||
},
|
||||
"outbound": {
|
||||
"addOutbound": "Adicionar Saída",
|
||||
"addReverse": "Adicionar Reverso",
|
||||
@@ -846,7 +1219,7 @@
|
||||
"reverse": "Reverso",
|
||||
"domain": "Domínio",
|
||||
"type": "Tipo",
|
||||
"bridge": "Ponte",
|
||||
"bridge": "Bridge",
|
||||
"portal": "Portal",
|
||||
"link": "Link",
|
||||
"intercon": "Interconexão",
|
||||
@@ -860,6 +1233,8 @@
|
||||
"testSuccess": "Teste bem-sucedido",
|
||||
"testFailed": "Teste falhou",
|
||||
"testError": "Falha ao testar saída",
|
||||
"testModeTooltip": "TCP: sondagem rápida apenas de dial. HTTP: requisição completa pelo xray.",
|
||||
"testAll": "Testar todos",
|
||||
"nordvpn": "NordVPN",
|
||||
"accessToken": "Token de Acesso",
|
||||
"country": "País",
|
||||
@@ -876,6 +1251,16 @@
|
||||
"balancerSelectors": "Seletores",
|
||||
"tag": "Tag",
|
||||
"tagDesc": "Tag Única",
|
||||
"tagDuplicate": "Tag já usada por outro balanceador",
|
||||
"tagPlaceholder": "tag única do balanceador",
|
||||
"selector": "Seletor",
|
||||
"fallback": "Fallback",
|
||||
"expected": "Esperado",
|
||||
"expectedPlaceholder": "número ótimo de nós",
|
||||
"maxRtt": "Máx. RTT",
|
||||
"tolerance": "Tolerância",
|
||||
"baselines": "Baselines",
|
||||
"costs": "Costs",
|
||||
"balancerDesc": "Não é possível usar balancerTag e outboundTag ao mesmo tempo. Se usados simultaneamente, apenas outboundTag funcionará."
|
||||
},
|
||||
"wireguard": {
|
||||
@@ -892,6 +1277,38 @@
|
||||
"userLevel": "Nível do Usuário",
|
||||
"userLevelDesc": "Todas as conexões feitas através deste inbound usarão este nível de usuário. O padrão é 0"
|
||||
},
|
||||
"nord": {
|
||||
"accessToken": "Access token",
|
||||
"privateKey": "Chave privada",
|
||||
"noServers": "Nenhum servidor encontrado para o país selecionado",
|
||||
"noPublicKey": "O servidor selecionado não anuncia uma chave pública NordLynx.",
|
||||
"outboundAdded": "Saída NordVPN adicionada",
|
||||
"outboundUpdated": "Saída NordVPN atualizada"
|
||||
},
|
||||
"warp": {
|
||||
"licenseError": "Falha ao definir licença WARP.",
|
||||
"fetchFirst": "Obtenha primeiro a configuração WARP.",
|
||||
"createAccount": "Criar conta WARP",
|
||||
"accessToken": "Access token",
|
||||
"deviceId": "ID do dispositivo",
|
||||
"licenseKey": "Chave de licença",
|
||||
"privateKey": "Chave privada",
|
||||
"deleteAccount": "Excluir conta",
|
||||
"settings": "Configurações",
|
||||
"licenseKeyLabel": "Chave de licença WARP / WARP+",
|
||||
"key": "Chave",
|
||||
"keyPlaceholder": "chave WARP+ de 26 caracteres",
|
||||
"accountInfo": "Informação da conta",
|
||||
"deviceName": "Nome do dispositivo",
|
||||
"deviceModel": "Modelo do dispositivo",
|
||||
"deviceEnabled": "Dispositivo habilitado",
|
||||
"accountType": "Tipo de conta",
|
||||
"role": "Função",
|
||||
"warpPlusData": "Dados WARP+",
|
||||
"quota": "Quota",
|
||||
"usage": "Uso",
|
||||
"addOutbound": "Adicionar saída"
|
||||
},
|
||||
"dns": {
|
||||
"enable": "Ativar DNS",
|
||||
"enableDesc": "Ativar o servidor DNS integrado",
|
||||
@@ -959,7 +1376,7 @@
|
||||
"hours": "Horas",
|
||||
"minutes": "Minutos",
|
||||
"unknown": "Desconhecido",
|
||||
"inbounds": "Inbounds",
|
||||
"inbounds": "Entradas",
|
||||
"clients": "Clientes",
|
||||
"offline": "🔴 Offline",
|
||||
"online": "🟢 Online",
|
||||
@@ -1009,7 +1426,7 @@
|
||||
"username": "👤 Nome de usuário: {{ .Username }}\r\n",
|
||||
"reason": "❗️ Motivo: {{ .Reason }}\r\n",
|
||||
"time": "⏰ Hora: {{ .Time }}\r\n",
|
||||
"inbound": "📍 Inbound: {{ .Remark }}\r\n",
|
||||
"inbound": "📍 Entrada: {{ .Remark }}\r\n",
|
||||
"port": "🔌 Porta: {{ .Port }}\r\n",
|
||||
"expire": "📅 Data de expiração: {{ .Time }}\r\n",
|
||||
"expireIn": "📅 Expira em: {{ .Time }}\r\n",
|
||||
@@ -1089,9 +1506,9 @@
|
||||
"use_default": "🏷️ Usar padrão",
|
||||
"change_id": "⚙️🔑 ID",
|
||||
"change_password": "⚙️🔑 Senha",
|
||||
"change_email": "⚙️📧 E-mail",
|
||||
"change_email": "⚙️📧 Email",
|
||||
"change_comment": "⚙️💬 Comentário",
|
||||
"change_flow": "⚙️🚦 Fluxo",
|
||||
"change_flow": "⚙️🚦 Flow",
|
||||
"ResetAllTraffics": "Redefinir Todo o Tráfego",
|
||||
"SortedTrafficUsageReport": "Relatório de Uso de Tráfego Ordenado"
|
||||
},
|
||||
@@ -1119,4 +1536,4 @@
|
||||
"chooseInbound": "Escolha um Inbound"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user