♻️ refactor: Refactor server management API endpoints and typings

This commit is contained in:
web
2025-08-26 09:37:15 -07:00
parent 217ddce60c
commit 4f7cc807af
141 changed files with 5665 additions and 10338 deletions
+18 -9
View File
@@ -1,27 +1,36 @@
{
"ADS Config": "Configuração ADS",
"Announcement Management": "Gerenciamento de Anúncios",
"Application Management": "Gerenciamento de Aplicativos",
"Auth Control": "Controle de Autenticação",
"Balance": "Saldo",
"Commerce": "Comércio",
"Commission": "Comissão",
"Coupon Management": "Gerenciamento de Cupons",
"Dashboard": "Painel de Controle",
"Document Management": "Gerenciamento de Documentos",
"Finance": "Finanças",
"Email": "Email",
"Gift": "Presente",
"Login": "Entrar",
"Logs & Analytics": "Registros e Análises",
"Maintenance": "Manutenção",
"Marketing Management": "Gestão de Marketing",
"Node Management": "Gerenciamento de Nós",
"Order Management": "Gerenciamento de Pedidos",
"Payment Config": "Configuração de Pagamento",
"Product Management": "Gestão de Produtos",
"Protocol Management": "Gestão de Protocolos",
"Rule Management": "Gerenciamento de Regras",
"Server": "Servidor",
"Register": "Registrar",
"Reset Subscribe": "Redefinir Inscrição",
"SMS": "SMS",
"Server Management": "Gerenciamento de Servidor",
"Settings": "Configurações",
"Server Traffic": "Tráfego do Servidor",
"Subscribe": "Inscrever-se",
"Subscribe Config": "Configuração de Assinatura",
"Subscribe Traffic": "Tráfego de Inscrição",
"System": "Sistema",
"System Config": "Configuração do Sistema",
"System Management": "Gerenciamento de Sistema",
"System Tool": "Ferramenta do Sistema",
"Ticket Management": "Gerenciamento de Chamados",
"User": "Usuário",
"User Detail": "Detalhes do Usuário",
"User Management": "Gerenciamento de Usuários"
"User Management": "Gerenciamento de Usuários",
"Users & Support": "Usuários e Suporte"
}
+37
View File
@@ -0,0 +1,37 @@
{
"address": "Endereço",
"cancel": "Cancelar",
"confirm": "Confirmar",
"confirmDeleteDesc": "Esta ação não pode ser desfeita.",
"confirmDeleteTitle": "Excluir este nó?",
"copied": "Copiado",
"copy": "Copiar",
"create": "Criar",
"created": "Criado",
"delete": "Excluir",
"deleted": "Excluído",
"drawerCreateTitle": "Criar Nó",
"drawerEditTitle": "Editar Nó",
"edit": "Editar",
"enabled": "Ativado",
"enabled_off": "Desativado",
"enabled_on": "Ativado",
"errors": {
"nameRequired": "Por favor, insira um nome",
"portRange": "A porta deve estar entre 1 e 65535",
"protocolRequired": "Por favor, selecione um protocolo",
"serverAddrRequired": "Por favor, insira um endereço de entrada",
"serverRequired": "Por favor, selecione um servidor"
},
"name": "Nome",
"pageTitle": "Nós",
"port": "Porta",
"protocol": "Protocolo",
"select_protocol": "Selecionar protocolo…",
"select_server": "Selecionar servidor…",
"server": "Servidor",
"tags": "Tags",
"tags_description": "Tag de agrupamento de permissões (incl. vinculação de plano e políticas de entrega).",
"tags_placeholder": "Use Enter ou vírgula (,) para adicionar várias tags",
"updated": "Atualizado"
}
+3 -58
View File
@@ -1,59 +1,6 @@
{
"actions": "ações",
"app": {
"appDownloadURL": "URL de Download do App",
"appIcon": "Ícone do App",
"appList": "Lista de Apps",
"appName": "Nome do App",
"backupDomains": "Lista de Domínios de Backup",
"backupDomainsDescription": "Lista de domínios de backup para resolução de domínios, um domínio por linha",
"batchDelete": "Excluir em Lote",
"cancel": "Cancelar",
"communicationKey": "Chave de Comunicação",
"communicationKeyDescription": "Chave usada para comunicação com o cliente",
"config": "Configuração",
"configApp": "Configuração do App",
"confirm": "Confirmar",
"confirmDelete": "Confirmar Exclusão",
"create": "Criar",
"createApp": "Criar App",
"createSuccess": "Criado com sucesso",
"defaultVersion": "Padrão",
"delete": "Excluir",
"deleteWarning": "Esta ação não pode ser desfeita",
"describeDescription": "Usado para descrever o aplicativo, exibido na lista de apps",
"description": "Descrição",
"downloadLink": "Link para Download",
"edit": "Editar",
"editApp": "Editar App",
"encryption": "Método de Criptografia",
"encryptionDescription": "Escolha o método de criptografia para comunicação com o cliente. Se selecionado, o cliente usará este método para se comunicar com o servidor",
"nameDescription": "Nome do aplicativo, exibido na lista de apps",
"platform": "Plataforma",
"selectApp": "Selecionar Aplicativo",
"selectAppDescription": "Selecione o aplicativo para configurar, todas as configurações serão aplicadas ao aplicativo selecionado",
"startupPicture": "Imagem de Inicialização",
"startupPictureDescription": "Imagem de inicialização, suporta imagens de rede e locais. Para imagens de rede, por favor insira a URL completa da imagem",
"startupPicturePreview": "Pré-visualização da Imagem de Inicialização",
"startupPictureSkip": "Tempo de Pular Imagem de Inicialização",
"startupPictureSkipDescription": "Tempo de exibição da imagem de inicialização em segundos, insira 0 para não exibir",
"subscriptionProtocol": "Protocolo de Assinatura",
"updateSuccess": "Atualizado com sucesso",
"version": "Versão"
},
"cancel": "Cancelar",
"config": {
"singleSubscriptionMode": "Modo de Assinatura Única",
"subscriptionDomain": "Domínio de Assinatura",
"subscriptionDomainDescription": "Usado para assinatura; deixe em branco para usar o domínio do site",
"subscriptionDomainPlaceholder": "Insira o domínio de assinatura, um por linha",
"subscriptionPath": "Caminho de Assinatura",
"subscriptionPathDescription": "Usado para assinatura; certifique-se de reiniciar o sistema após a modificação para um desempenho ideal",
"subscriptionPathPlaceholder": "Insira",
"updateSuccess": "Atualizado com sucesso",
"wildcardResolution": "Resolução de Curinga",
"wildcardResolutionDescription": "Usado para assinatura"
},
"confirm": "confirmar",
"confirmDelete": "Tem certeza de que deseja excluir?",
"copy": "Copiar",
@@ -94,6 +41,9 @@
"name": "Nome",
"noLimit": "Sem limite",
"noReset": "Sem Reinicialização",
"node": "Nó",
"nodeGroup": "Grupo de Nós",
"nodes": "Nós",
"pricing": "Preços",
"purchaseWithDiscount": "Permitir Dedução",
"purchaseWithDiscountDescription": "Ative ou desative a funcionalidade de cancelamento de inscrição. Após a ativação, o sistema realizará o processamento de dedução de acordo com as regras e proporções configuradas, e o valor restante será retornado ao saldo",
@@ -106,9 +56,6 @@
"selectResetCycle": "Por favor, selecione um ciclo de reinicialização",
"selectSubscribeGroup": "Por favor, selecione o grupo de assinatura",
"selectUnitTime": "Por favor, selecione a unidade de tempo",
"server": "Servidor",
"serverGroup": "Grupo de servidores",
"servers": "Servidores",
"speedLimit": "Limite de velocidade ",
"traffic": "Tráfego",
"unitPrice": "Preço unitário",
@@ -150,8 +97,6 @@
"subscribeGroup": "Inscrever-se no grupo",
"tabs": {
"subscribe": "Inscrever-se",
"subscribeApp": "Configuração do Aplicativo",
"subscribeConfig": "Configuração de Assinatura",
"subscribeGroup": "Grupo de Inscrição"
},
"traffic": "tráfego",
-183
View File
@@ -1,183 +0,0 @@
{
"config": {
"addTimeSlot": "Adicionar Faixa de Horário",
"communicationKey": "Chave de Comunicação",
"communicationKeyDescription": "Chave para comunicação entre nós para garantir a segurança dos dados",
"delete": "Excluir",
"dynamicMultiplier": "Multiplicador Dinâmico",
"dynamicMultiplierDescription": "Multiplicador Dinâmico refere-se ao processamento de dados enviados com diferentes multiplicadores para diferentes nós durante diferentes períodos de tempo.",
"endTime": "Hora de Término",
"inputPlaceholder": "Digite",
"multiplier": "Multiplicador",
"nodePullInterval": "Intervalo de Busca do Nó",
"nodePullIntervalDescription": "Frequência (em segundos) para os nós buscarem dados do painel",
"nodePushInterval": "Intervalo de Envio do Nó",
"nodePushIntervalDescription": "Frequência para os nós enviarem dados ao painel",
"reset": "Redefinir",
"save": "Salvar",
"saveSuccess": "Salvo com Sucesso",
"startTime": "Hora de Início",
"timeSlot": "Faixa de Horário"
},
"group": {
"actions": "Ações",
"cancel": "Cancelar",
"confirm": "Confirmar",
"confirmDelete": "Tem certeza de que deseja excluir?",
"create": "Criar",
"createNodeGroup": "Criar Grupo de Nós",
"createdSuccessfully": "Criado com sucesso",
"delete": "Excluir",
"deleteWarning": "Após a exclusão, os dados não poderão ser recuperados. Proceda com cautela.",
"deletedSuccessfully": "Excluído com sucesso",
"description": "Descrição",
"edit": "Editar",
"editNodeGroup": "Editar Grupo de Nós",
"name": "Nome",
"title": "Lista de Grupos de Nós",
"updatedAt": "Atualizado em"
},
"groupForm": {
"cancel": "Cancelar",
"confirm": "Confirmar",
"description": "Descrição",
"name": "Nome"
},
"node": {
"abnormal": "Anormal",
"actions": "Ações",
"address": "Endereço",
"all": "Todos",
"basicInfo": "Informações Básicas",
"cancel": "Cancelar",
"confirm": "Confirmar",
"confirmDelete": "Tem certeza de que deseja excluir?",
"copy": "Copiar",
"copySuccess": "Copiado com sucesso",
"create": "Criar",
"createNode": "Criar Nó",
"createSuccess": "Criado com sucesso",
"delete": "Excluir",
"deleteSuccess": "Excluído com sucesso",
"deleteWarning": "Após a exclusão, os dados não poderão ser recuperados. Por favor, proceda com cautela.",
"detail": "Detalhe",
"disabled": "Desativado",
"disk": "Disco",
"edit": "Editar",
"editNode": "Editar Nó",
"enable": "Habilitar",
"enabled": "Ativado",
"expireTime": "Tempo de Expiração",
"hide": "Ocultar",
"id": "ID",
"ipAddresses": "Endereços IP",
"lastUpdated": "Última Atualização",
"location": "Localização",
"memory": "Memória",
"name": "Nome",
"noData": "--",
"node": "Nó",
"nodeDetail": "Detalhes do Nó",
"nodeGroup": "Grupo de Nós",
"nodeStatus": "Status do Nó",
"normal": "Normal",
"onlineCount": "Contagem de Usuários Online",
"onlineUsers": "Usuários Online",
"protocol": "Protocolo",
"rate": "Taxa",
"relay": "Relay",
"serverAddr": "Endereço do Servidor",
"speedLimit": "Limite de Velocidade",
"status": "Status",
"subscribeId": "ID da Assinatura",
"subscribeName": "Nome da Assinatura",
"subscription": "Assinatura",
"tags": "Etiquetas",
"trafficRatio": "Taxa de Tráfego",
"trafficUsage": "Uso de Tráfego",
"type": "Tipo",
"updateSuccess": "Atualizado com sucesso",
"updatedAt": "Atualizado em",
"user": "Usuário",
"userDetail": "Detalhes do Usuário",
"userId": "ID do Usuário"
},
"nodeForm": {
"allowInsecure": "Permitir Inseguro",
"cancel": "Cancelar",
"city": "Cidade",
"confirm": "Confirmar",
"congestionController": "Controlador de Congestionamento",
"country": "País",
"disableSni": "Desativar SNI",
"edit": "Editar",
"editSecurity": "Editar Configuração de Segurança",
"enableTLS": "Ativar TLS",
"encryptionMethod": "Método de Criptografia",
"fingerprint": "Impressão Digital",
"flow": "Algoritmo de Controle de Fluxo",
"groupId": "Grupo de Nós",
"hopInterval": "Intervalo de Salto",
"hopPorts": "Portas de Salto",
"hopPortsPlaceholder": "Separe várias portas com vírgulas",
"name": "Nome",
"obfsPassword": "Senha de Ofuscação",
"obfsPasswordPlaceholder": "Deixe em branco para nenhuma ofuscação",
"path": "Caminho",
"pleaseSelect": "Por Favor Selecione",
"port": "Porta do Servidor",
"protocol": "Protocolo",
"reduceRtt": "Reduzir RTT",
"relayHost": "Host de Revezamento",
"relayMode": "Modo de Revezamento",
"relayPort": "Porta de Revezamento",
"relayPrefix": "Prefixo de Revezamento",
"remarks": "Observações",
"security": "Segurança",
"securityConfig": "Configuração de Segurança",
"selectEncryptionMethod": "Selecionar Método de Criptografia",
"selectNodeGroup": "Selecionar Grupo de Nós",
"selectProtocol": "Selecionar Protocolo",
"selectRelayMode": "Selecionar Modo de Revezamento",
"serverAddr": "Endereço do Servidor",
"serverKey": "Chave do Servidor",
"serverName": "Nome do Serviço",
"speedLimit": "Limite de Velocidade",
"speedLimitPlaceholder": "Ilimitado",
"tags": "Tags",
"tagsPlaceholder": "Use Enter ou vírgula (,) para inserir várias tags",
"trafficRatio": "Taxa de Tráfego",
"transport": "Configuração do Protocolo de Transporte",
"transportConfig": "Configuração do Protocolo de Transporte",
"transportHost": "Endereço do Servidor de Transporte",
"transportPath": "Caminho de Transporte",
"transportServerName": "Nome do Servidor de Transporte",
"udpRelayMode": "Modo de Revezamento UDP"
},
"relayModeOptions": {
"all": "Todos",
"none": "Nenhum",
"random": "Aleatório"
},
"securityConfig": {
"fingerprint": "Impressão Digital",
"privateKey": "Chave Privada",
"privateKeyPlaceholder": "Deixe em branco para auto-geração",
"publicKey": "Chave Pública",
"publicKeyPlaceholder": "Deixe em branco para auto-geração",
"serverAddress": "Endereço do Servidor",
"serverAddressPlaceholder": "Endereço de destino REALITY, padrão usando SNI",
"serverName": "Nome do Servidor (SNI)",
"serverNamePlaceholder": "REALITY necessário, consistente com o backend",
"serverPort": "Porta do Servidor",
"serverPortPlaceholder": "Porta de destino REALITY, padrão 443",
"shortId": "ID Curto",
"shortIdPlaceholder": "Deixe em branco para auto-geração",
"sni": "Indicação de Nome do Servidor (SNI)"
},
"tabs": {
"node": "Nó",
"nodeConfig": "Configuração do Nó",
"nodeGroup": "Grupo de Nós"
}
}
+101
View File
@@ -0,0 +1,101 @@
{
"address": "Endereço",
"address_placeholder": "Endereço do servidor",
"cancel": "Cancelar",
"city": "Cidade",
"config": {
"actions": {
"cancel": "Cancelar",
"save": "Salvar"
},
"communicationKey": "Chave de comunicação",
"communicationKeyDescription": "Usado para autenticação do nó.",
"description": "Gerenciar chaves de comunicação do nó, intervalos de pull/push e multiplicadores dinâmicos.",
"dynamicMultiplier": "Multiplicador dinâmico",
"dynamicMultiplierDescription": "Defina intervalos de tempo e multiplicadores para ajustar a contagem de tráfego.",
"endTime": "Hora de término",
"inputPlaceholder": "Por favor, insira",
"multiplier": "Multiplicador",
"nodePullInterval": "Intervalo de pull do nó",
"nodePullIntervalDescription": "Com que frequência o nó puxa a configuração (segundos).",
"nodePushInterval": "Intervalo de push do nó",
"nodePushIntervalDescription": "Com que frequência o nó envia estatísticas (segundos).",
"reset": "Redefinir",
"save": "Salvar",
"saveSuccess": "Salvo com sucesso",
"startTime": "Hora de início",
"timeSlot": "Intervalo de tempo",
"title": "Configuração do nó"
},
"confirm": "Confirmar",
"confirmDeleteDesc": "Esta ação não pode ser desfeita.",
"confirmDeleteTitle": "Excluir este servidor?",
"congestion_controller": "Controlador de congestionamento",
"copied": "Copiado",
"copy": "Copiar",
"country": "País",
"cpu": "CPU",
"create": "Criar",
"created": "Criado com sucesso",
"delete": "Excluir",
"deleted": "Excluído com sucesso",
"disable_sni": "Desativar SNI",
"disk": "Disco",
"drawerCreateTitle": "Criar Servidor",
"drawerEditTitle": "Editar Servidor",
"edit": "Editar",
"enabled": "Ativado",
"encryption_method": "Método de criptografia",
"expireTime": "Tempo de expiração",
"expired": "Expirado",
"flow": "Fluxo",
"hop_interval": "Intervalo de salto",
"hop_ports": "Portas de salto",
"hop_ports_placeholder": "ex. 1-65535",
"host": "Host",
"id": "ID",
"ipAddresses": "Endereços IP",
"memory": "Memória",
"name": "Nome",
"noData": "Sem dados",
"notAvailable": "N/D",
"obfs_password": "Senha de ofuscação",
"obfs_password_placeholder": "Insira a senha de ofuscação",
"offline": "Offline",
"online": "Online",
"onlineUsers": "Usuários online",
"pageTitle": "Servidores",
"path": "Caminho",
"please_select": "Por favor, selecione",
"port": "Porta",
"protocols": "Protocolos",
"reduce_rtt": "Reduzir RTT",
"security_allow_insecure": "Permitir inseguro",
"security_fingerprint": "Impressão digital",
"security_private_key": "Chave privada da realidade",
"security_private_key_placeholder": "Insira a chave privada",
"security_public_key": "Chave pública da realidade",
"security_public_key_placeholder": "Insira a chave pública",
"security_server_address": "Endereço do servidor da realidade",
"security_server_address_placeholder": "ex. 1.2.3.4 ou domínio",
"security_server_port": "Porta do servidor da realidade",
"security_short_id": "ID curto da realidade",
"security_short_id_placeholder": "String hexadecimal (até 16 caracteres)",
"security_sni": "SNI",
"security_title": "Segurança",
"select_encryption_method": "Selecionar método de criptografia",
"server_key": "Chave do servidor",
"service_name": "Nome do serviço",
"status": "Status",
"subscribeId": "ID de assinatura",
"subscription": "Assinatura",
"traffic": "Tráfego",
"traffic_ratio": "Multiplicador",
"transport_title": "Transporte",
"udp_relay_mode": "Modo de retransmissão UDP",
"unitSecondsShort": "S",
"unlimited": "Ilimitado",
"updated": "Atualizado com sucesso",
"user": "Usuário",
"validation_failed": "Validação falhou. Por favor, verifique o formulário."
}