♻️ 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": "Configuración de ADS",
"Announcement Management": "Gestión de Anuncios",
"Application Management": "Gestión de Aplicaciones",
"Auth Control": "Control de Autenticación",
"Balance": "Saldo",
"Commerce": "Comercio",
"Commission": "Comisión",
"Coupon Management": "Gestión de Cupones",
"Dashboard": "Tablero",
"Document Management": "Gestión de Documentos",
"Finance": "Finanzas",
"Email": "Correo electrónico",
"Gift": "Regalo",
"Login": "Iniciar sesión",
"Logs & Analytics": "Registros y análisis",
"Maintenance": "Mantenimiento",
"Marketing Management": "Gestión de Marketing",
"Node Management": "Gestión de nodos",
"Order Management": "Gestión de Pedidos",
"Payment Config": "Configuración de Pago",
"Product Management": "Gestión de Productos",
"Protocol Management": "Gestión de Protocolos",
"Rule Management": "Gestión de Reglas",
"Server": "Servidor",
"Register": "Registrarse",
"Reset Subscribe": "Restablecer suscripción",
"SMS": "SMS",
"Server Management": "Gestión de Servidores",
"Settings": "Configuración",
"Server Traffic": "Tráfico del servidor",
"Subscribe": "Suscribirse",
"Subscribe Config": "Configuración de Suscripción",
"Subscribe Traffic": "Tráfico de suscripción",
"System": "Sistema",
"System Config": "Configuración del sistema",
"System Management": "Gestión del Sistema",
"System Tool": "Herramienta del sistema",
"Ticket Management": "Gestión de Tickets",
"User": "Usuario",
"User Detail": "Detalle del Usuario",
"User Management": "Gestión de Usuarios"
"User Management": "Gestión de Usuarios",
"Users & Support": "Usuarios y soporte"
}
+37
View File
@@ -0,0 +1,37 @@
{
"address": "Dirección",
"cancel": "Cancelar",
"confirm": "Confirmar",
"confirmDeleteDesc": "Esta acción no se puede deshacer.",
"confirmDeleteTitle": "¿Eliminar este nodo?",
"copied": "Copiado",
"copy": "Copiar",
"create": "Crear",
"created": "Creado",
"delete": "Eliminar",
"deleted": "Eliminado",
"drawerCreateTitle": "Crear Nodo",
"drawerEditTitle": "Editar Nodo",
"edit": "Editar",
"enabled": "Habilitado",
"enabled_off": "Deshabilitado",
"enabled_on": "Habilitado",
"errors": {
"nameRequired": "Por favor, introduce un nombre",
"portRange": "El puerto debe estar entre 1 y 65535",
"protocolRequired": "Por favor, selecciona un protocolo",
"serverAddrRequired": "Por favor, introduce una dirección de entrada",
"serverRequired": "Por favor, selecciona un servidor"
},
"name": "Nombre",
"pageTitle": "Nodos",
"port": "Puerto",
"protocol": "Protocolo",
"select_protocol": "Seleccionar protocolo…",
"select_server": "Seleccionar servidor…",
"server": "Servidor",
"tags": "Etiquetas",
"tags_description": "Etiqueta de agrupación de permisos (incl. vinculación de planes y políticas de entrega).",
"tags_placeholder": "Usa Enter o coma (,) para añadir múltiples etiquetas",
"updated": "Actualizado"
}
+3 -59
View File
@@ -1,60 +1,6 @@
{
"actions": "acciones",
"app": {
"appDownloadURL": "URL de Descarga de la App",
"appIcon": "Icono de la App",
"appList": "Lista de Aplicaciones",
"appName": "Nombre de la App",
"backupDomains": "Lista de Dominios de Respaldo",
"backupDomainsDescription": "Lista de dominios de respaldo para la resolución de dominios, un dominio por línea",
"batchDelete": "Eliminar en Lote",
"cancel": "Cancelar",
"communicationKey": "Clave de comunicación",
"communicationKeyDescription": "Clave utilizada para la comunicación del cliente",
"config": "Configuración",
"configApp": "Configuración de la Aplicación",
"confirm": "Confirmar",
"confirmDelete": "Confirmar Eliminación",
"create": "Crear",
"createApp": "Crear App",
"createSuccess": "Creado con éxito",
"defaultVersion": "Versión Predeterminada",
"delete": "Eliminar",
"deleteWarning": "Esta acción no se puede deshacer",
"describeDescription": "Se utiliza para describir la aplicación, se muestra en la lista de aplicaciones",
"description": "Descripción",
"downloadLink": "Enlace de Descarga",
"edit": "Editar",
"editApp": "Editar App",
"encryption": "Método de encriptación",
"encryptionDescription": "Elija el método de encriptación para la comunicación del cliente. Si se selecciona, el cliente utilizará este método para comunicarse con el servidor",
"nameDescription": "Nombre de la aplicación, se muestra en la lista de aplicaciones",
"platform": "Plataforma",
"selectApp": "Seleccionar aplicación",
"selectAppDescription": "Seleccione la aplicación para configurar, todos los ajustes se aplicarán a la aplicación seleccionada",
"startupPicture": "Imagen de Inicio",
"startupPictureDescription": "Imagen de inicio, admite imágenes de red y locales. Para imágenes de red, ingrese la URL completa de la imagen",
"startupPicturePreview": "Vista Previa de la Imagen de Inicio",
"startupPictureSkip": "Tiempo de Salto de la Imagen de Inicio",
"startupPictureSkipDescription": "Tiempo de visualización de la imagen de inicio en segundos, ingrese 0 para no mostrar",
"subscriptionProtocol": "Protocolo de Suscripción",
"updateSuccess": "Actualizado con éxito",
"version": "Versión"
},
"cancel": "Cancelar",
"config": {
"singleSubscriptionMode": "Modo de Suscripción Única",
"singleSubscriptionModeDescription": "Cuando está habilitado, todas las suscripciones de usuario se convertirán en saldo",
"subscriptionDomain": "Dominio de Suscripción",
"subscriptionDomainDescription": "Usado para suscripción; dejar en blanco para usar el dominio del sitio",
"subscriptionDomainPlaceholder": "Ingrese el dominio de suscripción, uno por línea",
"subscriptionPath": "Ruta de Suscripción",
"subscriptionPathDescription": "Usado para suscripción; asegúrese de reiniciar el sistema después de la modificación para un rendimiento óptimo",
"subscriptionPathPlaceholder": "Ingrese",
"updateSuccess": "Actualizado con éxito",
"wildcardResolution": "Resolución de Comodín",
"wildcardResolutionDescription": "Usado para suscripción"
},
"confirm": "Confirmar",
"confirmDelete": "¿Estás seguro de que deseas eliminar?",
"copy": "Copiar",
@@ -95,6 +41,9 @@
"name": "Nombre",
"noLimit": "Sin límite",
"noReset": "Sin Reinicio",
"node": "Nodo",
"nodeGroup": "Grupo de Nodos",
"nodes": "Nodos",
"pricing": "Precios",
"purchaseWithDiscount": "Permitir Deducción",
"purchaseWithDiscountDescription": "Habilitar o deshabilitar la funcionalidad de cancelación de suscripción. Después de la activación, el sistema realizará el procesamiento de deducción según las reglas y proporciones configuradas, y el valor restante se devolverá al saldo",
@@ -107,9 +56,6 @@
"selectResetCycle": "Por favor, seleccione un ciclo de reinicio",
"selectSubscribeGroup": "Por favor, seleccione un grupo de suscripción",
"selectUnitTime": "Por favor, seleccione la unidad de tiempo",
"server": "Servidor",
"serverGroup": "Grupo de servidores",
"servers": "Servidores",
"speedLimit": "Límite de velocidad ",
"traffic": "Tráfico",
"unitPrice": "Precio unitario",
@@ -151,8 +97,6 @@
"subscribeGroup": "Suscribirse al grupo",
"tabs": {
"subscribe": "Suscribirse",
"subscribeApp": "Configuración de la aplicación",
"subscribeConfig": "Configuración de suscripción",
"subscribeGroup": "Grupo de suscripción"
},
"traffic": "tráfico",
-183
View File
@@ -1,183 +0,0 @@
{
"config": {
"addTimeSlot": "Agregar Franja Horaria",
"communicationKey": "Clave de Comunicación",
"communicationKeyDescription": "Clave para la comunicación de nodos para garantizar la seguridad de los datos",
"delete": "Eliminar",
"dynamicMultiplier": "Multiplicador Dinámico",
"dynamicMultiplierDescription": "El Multiplicador Dinámico se refiere al procesamiento de datos enviados con diferentes multiplicadores para diferentes nodos durante distintos períodos de tiempo.",
"endTime": "Hora de Fin",
"inputPlaceholder": "Ingresar",
"multiplier": "Multiplicador",
"nodePullInterval": "Intervalo de Extracción de Nodo",
"nodePullIntervalDescription": "Frecuencia (en segundos) para que los nodos obtengan datos del panel",
"nodePushInterval": "Intervalo de Envío de Nodo",
"nodePushIntervalDescription": "Frecuencia para que los nodos envíen datos al panel",
"reset": "Restablecer",
"save": "Guardar",
"saveSuccess": "Guardado Exitoso",
"startTime": "Hora de Inicio",
"timeSlot": "Franja Horaria"
},
"group": {
"actions": "Acciones",
"cancel": "Cancelar",
"confirm": "Confirmar",
"confirmDelete": "¿Está seguro de que desea eliminar?",
"create": "Crear",
"createNodeGroup": "Crear grupo de nodos",
"createdSuccessfully": "Creado con éxito",
"delete": "Eliminar",
"deleteWarning": "Los datos no se podrán recuperar después de la eliminación, por favor opere con precaución.",
"deletedSuccessfully": "Eliminado con éxito",
"description": "Descripción",
"edit": "Editar",
"editNodeGroup": "Editar grupo de nodos",
"name": "Nombre",
"title": "Lista de grupos de nodos",
"updatedAt": "Fecha de actualización"
},
"groupForm": {
"cancel": "Cancelar",
"confirm": "Confirmar",
"description": "Descripción",
"name": "Nombre"
},
"node": {
"abnormal": "Anormal",
"actions": "Acciones",
"address": "Dirección",
"all": "Todo",
"basicInfo": "Información Básica",
"cancel": "Cancelar",
"confirm": "Confirmar",
"confirmDelete": "¿Está seguro de que desea eliminar?",
"copy": "Copiar",
"copySuccess": "Copiado con éxito",
"create": "Crear",
"createNode": "Crear nodo",
"createSuccess": "Creación exitosa",
"delete": "Eliminar",
"deleteSuccess": "Eliminación exitosa",
"deleteWarning": "Después de eliminar, los datos no se podrán recuperar. Proceda con precaución.",
"detail": "Detalle",
"disabled": "Deshabilitado",
"disk": "Disco",
"edit": "Editar",
"editNode": "Editar nodo",
"enable": "Habilitar",
"enabled": "Habilitado",
"expireTime": "Tiempo de Expiración",
"hide": "Ocultar",
"id": "ID",
"ipAddresses": "Direcciones IP",
"lastUpdated": "Última actualización",
"location": "Ubicación",
"memory": "Memoria",
"name": "Nombre",
"noData": "--",
"node": "Nodo",
"nodeDetail": "Detalle del Nodo",
"nodeGroup": "Grupo de nodos",
"nodeStatus": "Estado del Nodo",
"normal": "Normal",
"onlineCount": "Número de usuarios en línea",
"onlineUsers": "Usuarios en línea",
"protocol": "Protocolo",
"rate": "Tasa",
"relay": "Retransmisión",
"serverAddr": "Dirección del servidor",
"speedLimit": "Límite de velocidad",
"status": "Estado",
"subscribeId": "ID de Suscripción",
"subscribeName": "Nombre de Suscripción",
"subscription": "Suscripción",
"tags": "Etiquetas",
"trafficRatio": "Tasa de tráfico",
"trafficUsage": "Uso de Tráfico",
"type": "Tipo",
"updateSuccess": "Actualización exitosa",
"updatedAt": "Fecha de actualización",
"user": "Usuario",
"userDetail": "Detalle del Usuario",
"userId": "ID de Usuario"
},
"nodeForm": {
"allowInsecure": "Permitir Inseguro",
"cancel": "Cancelar",
"city": "Ciudad",
"confirm": "Confirmar",
"congestionController": "Controlador de Congestión",
"country": "País",
"disableSni": "Deshabilitar SNI",
"edit": "Editar",
"editSecurity": "Editar Configuración de Seguridad",
"enableTLS": "Habilitar TLS",
"encryptionMethod": "Método de Cifrado",
"fingerprint": "Huella Digital",
"flow": "Algoritmo de Control de Flujo",
"groupId": "Grupo de Nodos",
"hopInterval": "Intervalo de Salto",
"hopPorts": "Puertos de Salto",
"hopPortsPlaceholder": "Separe múltiples puertos con comas",
"name": "Nombre",
"obfsPassword": "Contraseña de Ofuscación",
"obfsPasswordPlaceholder": "Deje en blanco para no ofuscar",
"path": "Ruta",
"pleaseSelect": "Por Favor Seleccione",
"port": "Puerto del Servidor",
"protocol": "Protocolo",
"reduceRtt": "Reducir RTT",
"relayHost": "Host de Relevo",
"relayMode": "Modo de Relevo",
"relayPort": "Puerto de Relevo",
"relayPrefix": "Prefijo de Relevo",
"remarks": "Observaciones",
"security": "Seguridad",
"securityConfig": "Configuración de Seguridad",
"selectEncryptionMethod": "Seleccionar Método de Cifrado",
"selectNodeGroup": "Seleccionar Grupo de Nodos",
"selectProtocol": "Seleccionar Protocolo",
"selectRelayMode": "Seleccionar Modo de Relevo",
"serverAddr": "Dirección del Servidor",
"serverKey": "Clave del Servidor",
"serverName": "Nombre del Servicio",
"speedLimit": "Límite de Velocidad",
"speedLimitPlaceholder": "Ilimitado",
"tags": "Etiquetas",
"tagsPlaceholder": "Use Enter o coma (,) para ingresar múltiples etiquetas",
"trafficRatio": "Tasa de Tráfico",
"transport": "Configuración del Protocolo de Transporte",
"transportConfig": "Configuración del Protocolo de Transporte",
"transportHost": "Dirección del Servidor de Transporte",
"transportPath": "Ruta de Transporte",
"transportServerName": "Nombre del Servidor de Transporte",
"udpRelayMode": "Modo de Relevo UDP"
},
"relayModeOptions": {
"all": "Todos",
"none": "Ninguno",
"random": "Aleatorio"
},
"securityConfig": {
"fingerprint": "Huella Digital",
"privateKey": "Clave Privada",
"privateKeyPlaceholder": "Deje en blanco para auto-generación",
"publicKey": "Clave Pública",
"publicKeyPlaceholder": "Deje en blanco para auto-generación",
"serverAddress": "Dirección del Servidor",
"serverAddressPlaceholder": "Dirección de destino REALITY, por defecto usando SNI",
"serverName": "Nombre del Servidor (SNI)",
"serverNamePlaceholder": "REALITY requerido, consistente con el backend",
"serverPort": "Puerto del Servidor",
"serverPortPlaceholder": "Puerto de destino REALITY, por defecto 443",
"shortId": "ID Corto",
"shortIdPlaceholder": "Deje en blanco para auto-generación",
"sni": "Indicación de Nombre del Servidor (SNI)"
},
"tabs": {
"node": "Nodo",
"nodeConfig": "Configuración del Nodo",
"nodeGroup": "Grupo de nodos"
}
}
+101
View File
@@ -0,0 +1,101 @@
{
"address": "Dirección",
"address_placeholder": "Dirección del servidor",
"cancel": "Cancelar",
"city": "Ciudad",
"config": {
"actions": {
"cancel": "Cancelar",
"save": "Guardar"
},
"communicationKey": "Clave de comunicación",
"communicationKeyDescription": "Utilizado para la autenticación del nodo.",
"description": "Gestionar las claves de comunicación del nodo, intervalos de extracción/empuje y multiplicadores dinámicos.",
"dynamicMultiplier": "Multiplicador dinámico",
"dynamicMultiplierDescription": "Definir intervalos de tiempo y multiplicadores para ajustar la contabilidad del tráfico.",
"endTime": "Hora de finalización",
"inputPlaceholder": "Por favor ingrese",
"multiplier": "Multiplicador",
"nodePullInterval": "Intervalo de extracción del nodo",
"nodePullIntervalDescription": "Con qué frecuencia el nodo extrae la configuración (segundos).",
"nodePushInterval": "Intervalo de empuje del nodo",
"nodePushIntervalDescription": "Con qué frecuencia el nodo envía estadísticas (segundos).",
"reset": "Restablecer",
"save": "Guardar",
"saveSuccess": "Guardado con éxito",
"startTime": "Hora de inicio",
"timeSlot": "Intervalo de tiempo",
"title": "Configuración del nodo"
},
"confirm": "Confirmar",
"confirmDeleteDesc": "Esta acción no se puede deshacer.",
"confirmDeleteTitle": "¿Eliminar este servidor?",
"congestion_controller": "Controlador de congestión",
"copied": "Copiado",
"copy": "Copiar",
"country": "País",
"cpu": "CPU",
"create": "Crear",
"created": "Creado con éxito",
"delete": "Eliminar",
"deleted": "Eliminado con éxito",
"disable_sni": "Deshabilitar SNI",
"disk": "Disco",
"drawerCreateTitle": "Crear Servidor",
"drawerEditTitle": "Editar Servidor",
"edit": "Editar",
"enabled": "Habilitado",
"encryption_method": "Método de cifrado",
"expireTime": "Tiempo de expiración",
"expired": "Expirado",
"flow": "Flujo",
"hop_interval": "Intervalo de salto",
"hop_ports": "Puertos de salto",
"hop_ports_placeholder": "p. ej. 1-65535",
"host": "Host",
"id": "ID",
"ipAddresses": "Direcciones IP",
"memory": "Memoria",
"name": "Nombre",
"noData": "Sin datos",
"notAvailable": "N/A",
"obfs_password": "Contraseña de ofuscación",
"obfs_password_placeholder": "Ingrese la contraseña de ofuscación",
"offline": "Desconectado",
"online": "Conectado",
"onlineUsers": "Usuarios en línea",
"pageTitle": "Servidores",
"path": "Ruta",
"please_select": "Por favor seleccione",
"port": "Puerto",
"protocols": "Protocolos",
"reduce_rtt": "Reducir RTT",
"security_allow_insecure": "Permitir inseguro",
"security_fingerprint": "Huella digital",
"security_private_key": "Clave privada de realidad",
"security_private_key_placeholder": "Ingrese la clave privada",
"security_public_key": "Clave pública de realidad",
"security_public_key_placeholder": "Ingrese la clave pública",
"security_server_address": "Dirección del servidor de realidad",
"security_server_address_placeholder": "p. ej. 1.2.3.4 o dominio",
"security_server_port": "Puerto del servidor de realidad",
"security_short_id": "ID corta de realidad",
"security_short_id_placeholder": "Cadena hexadecimal (hasta 16 caracteres)",
"security_sni": "SNI",
"security_title": "Seguridad",
"select_encryption_method": "Seleccionar método de cifrado",
"server_key": "Clave del servidor",
"service_name": "Nombre del servicio",
"status": "Estado",
"subscribeId": "ID de suscripción",
"subscription": "Suscripción",
"traffic": "Tráfico",
"traffic_ratio": "Multiplicador",
"transport_title": "Transporte",
"udp_relay_mode": "Modo de retransmisión UDP",
"unitSecondsShort": "S",
"unlimited": "Ilimitado",
"updated": "Actualizado con éxito",
"user": "Usuario",
"validation_failed": "La validación falló. Por favor revise el formulario."
}