♻️ 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": "Configuration ADS",
"Announcement Management": "Gestion des annonces",
"Application Management": "Gestion des applications",
"Auth Control": "Contrôle d'authentification",
"Balance": "Solde",
"Commerce": "Commerce",
"Commission": "Commission",
"Coupon Management": "Gestion des coupons",
"Dashboard": "Tableau de bord",
"Document Management": "Gestion des documents",
"Finance": "Finance",
"Email": "Email",
"Gift": "Cadeau",
"Login": "Connexion",
"Logs & Analytics": "Journaux et Analytique",
"Maintenance": "Maintenance",
"Marketing Management": "Gestion du marketing",
"Node Management": "Gestion des Nœuds",
"Order Management": "Gestion des commandes",
"Payment Config": "Configuration de paiement",
"Product Management": "Gestion de produit",
"Protocol Management": "Gestion de protocole",
"Rule Management": "Gestion des règles",
"Server": "Serveur",
"Register": "S'inscrire",
"Reset Subscribe": "Réinitialiser l'Abonnement",
"SMS": "SMS",
"Server Management": "Gestion des services",
"Settings": "Paramètres",
"Server Traffic": "Trafic Serveur",
"Subscribe": "S'abonner",
"Subscribe Config": "Configuration d'abonnement",
"Subscribe Traffic": "Trafic d'Abonnement",
"System": "Système",
"System Config": "Configuration du système",
"System Management": "Gestion du système",
"System Tool": "Outil Système",
"Ticket Management": "Gestion des billets",
"User": "Utilisateur",
"User Detail": "Détail de l'utilisateur",
"User Management": "Gestion des utilisateurs"
"User Management": "Gestion des utilisateurs",
"Users & Support": "Utilisateurs et Support"
}
+37
View File
@@ -0,0 +1,37 @@
{
"address": "Adresse",
"cancel": "Annuler",
"confirm": "Confirmer",
"confirmDeleteDesc": "Cette action ne peut pas être annulée.",
"confirmDeleteTitle": "Supprimer ce nœud ?",
"copied": "Copié",
"copy": "Copier",
"create": "Créer",
"created": "Créé",
"delete": "Supprimer",
"deleted": "Supprimé",
"drawerCreateTitle": "Créer un nœud",
"drawerEditTitle": "Modifier le nœud",
"edit": "Modifier",
"enabled": "Activé",
"enabled_off": "Désactivé",
"enabled_on": "Activé",
"errors": {
"nameRequired": "Veuillez entrer un nom",
"portRange": "Le port doit être compris entre 1 et 65535",
"protocolRequired": "Veuillez sélectionner un protocole",
"serverAddrRequired": "Veuillez entrer une adresse d'entrée",
"serverRequired": "Veuillez sélectionner un serveur"
},
"name": "Nom",
"pageTitle": "Nœuds",
"port": "Port",
"protocol": "Protocole",
"select_protocol": "Sélectionner un protocole…",
"select_server": "Sélectionner un serveur…",
"server": "Serveur",
"tags": "Étiquettes",
"tags_description": "Étiquette de regroupement de permissions (y compris l'association de plan et les politiques de livraison).",
"tags_placeholder": "Utilisez Entrée ou une virgule (,) pour ajouter plusieurs étiquettes",
"updated": "Mis à jour"
}
+3 -58
View File
@@ -1,59 +1,6 @@
{
"actions": "actions",
"app": {
"appDownloadURL": "URL de téléchargement de l'application",
"appIcon": "Icône de l'application",
"appList": "Liste des applications",
"appName": "Nom de l'application",
"backupDomains": "Liste des domaines de sauvegarde",
"backupDomainsDescription": "Liste des domaines de sauvegarde pour la résolution de domaine, un domaine par ligne",
"batchDelete": "Suppression par lot",
"cancel": "Annuler",
"communicationKey": "Clé de communication",
"communicationKeyDescription": "Clé utilisée pour la communication client",
"config": "Configuration",
"configApp": "Configuration de l'application",
"confirm": "Confirmer",
"confirmDelete": "Confirmer la suppression",
"create": "Créer",
"createApp": "Créer une application",
"createSuccess": "Créé avec succès",
"defaultVersion": "Par défaut",
"delete": "Supprimer",
"deleteWarning": "Cette action est irréversible",
"describeDescription": "Utilisé pour décrire l'application, affiché dans la liste des applications",
"description": "Description",
"downloadLink": "Lien de téléchargement",
"edit": "Modifier",
"editApp": "Modifier l'application",
"encryption": "Méthode de chiffrement",
"encryptionDescription": "Choisissez la méthode de chiffrement pour la communication client. Si elle est sélectionnée, le client utilisera cette méthode pour communiquer avec le serveur",
"nameDescription": "Nom de l'application, affiché dans la liste des applications",
"platform": "Plateforme",
"selectApp": "Sélectionner l'application",
"selectAppDescription": "Sélectionnez l'application à configurer, tous les paramètres s'appliqueront à l'application sélectionnée",
"startupPicture": "Image de démarrage",
"startupPictureDescription": "Image de démarrage, prend en charge les images réseau et locales. Pour les images réseau, veuillez entrer l'URL complète de l'image",
"startupPicturePreview": "Aperçu de l'image de démarrage",
"startupPictureSkip": "Temps de saut de l'image de démarrage",
"startupPictureSkipDescription": "Temps d'affichage de l'image de démarrage en secondes, entrez 0 pour ne pas afficher",
"subscriptionProtocol": "Protocole d'abonnement",
"updateSuccess": "Mis à jour avec succès",
"version": "Version"
},
"cancel": "Annuler",
"config": {
"singleSubscriptionMode": "Mode d'abonnement unique",
"subscriptionDomain": "Domaine d'abonnement",
"subscriptionDomainDescription": "Utilisé pour l'abonnement ; laissez vide pour utiliser le domaine du site",
"subscriptionDomainPlaceholder": "Entrez le domaine d'abonnement, un par ligne",
"subscriptionPath": "Chemin d'abonnement",
"subscriptionPathDescription": "Utilisé pour l'abonnement ; assurez-vous de redémarrer le système après modification pour des performances optimales",
"subscriptionPathPlaceholder": "Entrez",
"updateSuccess": "Mise à jour réussie",
"wildcardResolution": "Résolution générique",
"wildcardResolutionDescription": "Utilisé pour l'abonnement"
},
"confirm": "Confirmer",
"confirmDelete": "Êtes-vous sûr de vouloir supprimer ?",
"copy": "Copier",
@@ -94,6 +41,9 @@
"name": "Nom",
"noLimit": "Illimité",
"noReset": "Pas de Réinitialisation",
"node": "Nœud",
"nodeGroup": "Groupe de Nœuds",
"nodes": "Nœuds",
"pricing": "Tarification",
"purchaseWithDiscount": "Autoriser la Déduction",
"purchaseWithDiscountDescription": "Activer ou désactiver la fonctionnalité de désabonnement. Après activation, le système effectuera un traitement de déduction selon les règles et proportions configurées, et la valeur restante sera retournée au solde.",
@@ -106,9 +56,6 @@
"selectResetCycle": "Veuillez sélectionner un cycle de réinitialisation",
"selectSubscribeGroup": "Veuillez sélectionner un groupe d'abonnement",
"selectUnitTime": "Veuillez sélectionner l'unité de temps",
"server": "Serveur",
"serverGroup": "Groupe de serveurs",
"servers": "Serveurs",
"speedLimit": "Limite de vitesse ",
"traffic": "Trafic",
"unitPrice": "Prix unitaire",
@@ -150,8 +97,6 @@
"subscribeGroup": "S'abonner au groupe",
"tabs": {
"subscribe": "S'abonner",
"subscribeApp": "Configuration de l'application",
"subscribeConfig": "Configuration de l'abonnement",
"subscribeGroup": "Groupe d'abonnement"
},
"traffic": "trafic",
-183
View File
@@ -1,183 +0,0 @@
{
"config": {
"addTimeSlot": "Ajouter un créneau horaire",
"communicationKey": "Clé de communication",
"communicationKeyDescription": "Clé pour la communication des nœuds afin d'assurer la sécurité des données",
"delete": "Supprimer",
"dynamicMultiplier": "Multiplicateur dynamique",
"dynamicMultiplierDescription": "Le multiplicateur dynamique fait référence au traitement des données poussées avec différents multiplicateurs pour différents nœuds pendant différentes périodes.",
"endTime": "Heure de fin",
"inputPlaceholder": "Entrer",
"multiplier": "Multiplicateur",
"nodePullInterval": "Intervalle de récupération des nœuds",
"nodePullIntervalDescription": "Fréquence (en secondes) à laquelle les nœuds récupèrent les données du panneau",
"nodePushInterval": "Intervalle de poussée des nœuds",
"nodePushIntervalDescription": "Fréquence à laquelle les nœuds poussent les données vers le panneau",
"reset": "Réinitialiser",
"save": "Enregistrer",
"saveSuccess": "Enregistrement réussi",
"startTime": "Heure de début",
"timeSlot": "Créneau horaire"
},
"group": {
"actions": "Actions",
"cancel": "Annuler",
"confirm": "Confirmer",
"confirmDelete": "Êtes-vous sûr de vouloir supprimer ?",
"create": "Créer",
"createNodeGroup": "Créer un groupe de nœuds",
"createdSuccessfully": "Création réussie",
"delete": "Supprimer",
"deleteWarning": "Les données ne pourront pas être récupérées après suppression, veuillez procéder avec prudence.",
"deletedSuccessfully": "Suppression réussie",
"description": "Description",
"edit": "Éditer",
"editNodeGroup": "Éditer le groupe de nœuds",
"name": "Nom",
"title": "Liste des groupes de nœuds",
"updatedAt": "Mis à jour à"
},
"groupForm": {
"cancel": "Annuler",
"confirm": "Confirmer",
"description": "Description",
"name": "Nom"
},
"node": {
"abnormal": "Anormal",
"actions": "Actions",
"address": "Adresse",
"all": "Tout",
"basicInfo": "Informations de base",
"cancel": "Annuler",
"confirm": "Confirmer",
"confirmDelete": "Êtes-vous sûr de vouloir supprimer ?",
"copy": "Copier",
"copySuccess": "Copié avec succès",
"create": "Créer",
"createNode": "Créer un nœud",
"createSuccess": "Création réussie",
"delete": "Supprimer",
"deleteSuccess": "Suppression réussie",
"deleteWarning": "Après suppression, les données ne pourront pas être récupérées. Veuillez procéder avec prudence.",
"detail": "Détail",
"disabled": "Désactivé",
"disk": "Disque",
"edit": "Éditer",
"editNode": "Éditer le nœud",
"enable": "Activer",
"enabled": "Activé",
"expireTime": "Temps d'expiration",
"hide": "Cacher",
"id": "ID",
"ipAddresses": "Adresses IP",
"lastUpdated": "Dernière mise à jour",
"location": "Emplacement",
"memory": "Mémoire",
"name": "Nom",
"noData": "--",
"node": "Nœud",
"nodeDetail": "Détails du nœud",
"nodeGroup": "Groupe de nœuds",
"nodeStatus": "État du nœud",
"normal": "Normal",
"onlineCount": "Nombre d'utilisateurs en ligne",
"onlineUsers": "Utilisateurs en ligne",
"protocol": "Protocole",
"rate": "Taux",
"relay": "Relais",
"serverAddr": "Adresse du serveur",
"speedLimit": "Limite de vitesse",
"status": "Statut",
"subscribeId": "ID de l'abonnement",
"subscribeName": "Nom de l'abonnement",
"subscription": "Abonnement",
"tags": "Étiquettes",
"trafficRatio": "Taux de trafic",
"trafficUsage": "Utilisation du trafic",
"type": "Type",
"updateSuccess": "Mise à jour réussie",
"updatedAt": "Date de mise à jour",
"user": "Utilisateur",
"userDetail": "Détails de l'utilisateur",
"userId": "ID de l'utilisateur"
},
"nodeForm": {
"allowInsecure": "Autoriser Insecure",
"cancel": "Annuler",
"city": "Ville",
"confirm": "Confirmer",
"congestionController": "Contrôleur de Congestion",
"country": "Pays",
"disableSni": "Désactiver SNI",
"edit": "Modifier",
"editSecurity": "Modifier la Configuration de Sécurité",
"enableTLS": "Activer TLS",
"encryptionMethod": "Méthode de Chiffrement",
"fingerprint": "Empreinte",
"flow": "Algorithme de Contrôle de Flux",
"groupId": "Groupe de Nœuds",
"hopInterval": "Intervalle de Saut",
"hopPorts": "Ports de Saut",
"hopPortsPlaceholder": "Séparez plusieurs ports par des virgules",
"name": "Nom",
"obfsPassword": "Mot de Passe d'Obfuscation",
"obfsPasswordPlaceholder": "Laissez vide pour aucune obfuscation",
"path": "Chemin",
"pleaseSelect": "Veuillez Sélectionner",
"port": "Port du Serveur",
"protocol": "Protocole",
"reduceRtt": "Réduire RTT",
"relayHost": "Hôte de Relais",
"relayMode": "Mode de Relais",
"relayPort": "Port de Relais",
"relayPrefix": "Préfixe de Relais",
"remarks": "Remarques",
"security": "Sécurité",
"securityConfig": "Configuration de Sécurité",
"selectEncryptionMethod": "Sélectionner la Méthode de Chiffrement",
"selectNodeGroup": "Sélectionner le Groupe de Nœuds",
"selectProtocol": "Sélectionner le Protocole",
"selectRelayMode": "Sélectionner le Mode de Relais",
"serverAddr": "Adresse du Serveur",
"serverKey": "Clé du Serveur",
"serverName": "Nom du Service",
"speedLimit": "Limite de Vitesse",
"speedLimitPlaceholder": "Illimité",
"tags": "Étiquettes",
"tagsPlaceholder": "Utilisez Entrée ou virgule (,) pour entrer plusieurs étiquettes",
"trafficRatio": "Taux de Trafic",
"transport": "Configuration du Protocole de Transport",
"transportConfig": "Configuration du Protocole de Transport",
"transportHost": "Adresse du Serveur de Transport",
"transportPath": "Chemin de Transport",
"transportServerName": "Nom du Serveur de Transport",
"udpRelayMode": "Mode de Relais UDP"
},
"relayModeOptions": {
"all": "Tous",
"none": "Aucun",
"random": "Aléatoire"
},
"securityConfig": {
"fingerprint": "Empreinte",
"privateKey": "Clé Privée",
"privateKeyPlaceholder": "Laissez vide pour auto-génération",
"publicKey": "Clé Publique",
"publicKeyPlaceholder": "Laissez vide pour auto-génération",
"serverAddress": "Adresse du Serveur",
"serverAddressPlaceholder": "Adresse cible REALITY, par défaut utilisant SNI",
"serverName": "Nom du Serveur (SNI)",
"serverNamePlaceholder": "REQUIRED REALITY, cohérent avec le backend",
"serverPort": "Port du Serveur",
"serverPortPlaceholder": "Port cible REALITY, par défaut 443",
"shortId": "ID Court",
"shortIdPlaceholder": "Laissez vide pour auto-génération",
"sni": "Indication de Nom de Serveur (SNI)"
},
"tabs": {
"node": "Nœud",
"nodeConfig": "Configuration du nœud",
"nodeGroup": "Groupe de nœuds"
}
}
+101
View File
@@ -0,0 +1,101 @@
{
"address": "Adresse",
"address_placeholder": "Adresse du serveur",
"cancel": "Annuler",
"city": "Ville",
"config": {
"actions": {
"cancel": "Annuler",
"save": "Enregistrer"
},
"communicationKey": "Clé de communication",
"communicationKeyDescription": "Utilisé pour l'authentification du nœud.",
"description": "Gérer les clés de communication du nœud, les intervalles de tirage/poussée et les multiplicateurs dynamiques.",
"dynamicMultiplier": "Multiplicateur dynamique",
"dynamicMultiplierDescription": "Définir des créneaux horaires et des multiplicateurs pour ajuster le comptage du trafic.",
"endTime": "Heure de fin",
"inputPlaceholder": "Veuillez entrer",
"multiplier": "Multiplicateur",
"nodePullInterval": "Intervalle de tirage du nœud",
"nodePullIntervalDescription": "À quelle fréquence le nœud tire la configuration (secondes).",
"nodePushInterval": "Intervalle de poussée du nœud",
"nodePushIntervalDescription": "À quelle fréquence le nœud pousse les statistiques (secondes).",
"reset": "Réinitialiser",
"save": "Enregistrer",
"saveSuccess": "Enregistré avec succès",
"startTime": "Heure de début",
"timeSlot": "Créneau horaire",
"title": "Configuration du nœud"
},
"confirm": "Confirmer",
"confirmDeleteDesc": "Cette action ne peut pas être annulée.",
"confirmDeleteTitle": "Supprimer ce serveur ?",
"congestion_controller": "Contrôleur de congestion",
"copied": "Copié",
"copy": "Copier",
"country": "Pays",
"cpu": "CPU",
"create": "Créer",
"created": "Créé avec succès",
"delete": "Supprimer",
"deleted": "Supprimé avec succès",
"disable_sni": "Désactiver SNI",
"disk": "Disque",
"drawerCreateTitle": "Créer un serveur",
"drawerEditTitle": "Modifier le serveur",
"edit": "Modifier",
"enabled": "Activé",
"encryption_method": "Méthode de chiffrement",
"expireTime": "Temps d'expiration",
"expired": "Expiré",
"flow": "Flux",
"hop_interval": "Intervalle de saut",
"hop_ports": "Ports de saut",
"hop_ports_placeholder": "ex. 1-65535",
"host": "Hôte",
"id": "ID",
"ipAddresses": "Adresses IP",
"memory": "Mémoire",
"name": "Nom",
"noData": "Aucune donnée",
"notAvailable": "N/A",
"obfs_password": "Mot de passe d'obfuscation",
"obfs_password_placeholder": "Entrez le mot de passe d'obfuscation",
"offline": "Hors ligne",
"online": "En ligne",
"onlineUsers": "Utilisateurs en ligne",
"pageTitle": "Serveurs",
"path": "Chemin",
"please_select": "Veuillez sélectionner",
"port": "Port",
"protocols": "Protocoles",
"reduce_rtt": "Réduire le RTT",
"security_allow_insecure": "Autoriser l'insecure",
"security_fingerprint": "Empreinte digitale",
"security_private_key": "Clé privée de réalité",
"security_private_key_placeholder": "Entrez la clé privée",
"security_public_key": "Clé publique de réalité",
"security_public_key_placeholder": "Entrez la clé publique",
"security_server_address": "Adresse du serveur de réalité",
"security_server_address_placeholder": "ex. 1.2.3.4 ou domaine",
"security_server_port": "Port du serveur de réalité",
"security_short_id": "ID court de réalité",
"security_short_id_placeholder": "Chaîne hexadécimale (jusqu'à 16 caractères)",
"security_sni": "SNI",
"security_title": "Sécurité",
"select_encryption_method": "Sélectionner la méthode de chiffrement",
"server_key": "Clé du serveur",
"service_name": "Nom du service",
"status": "Statut",
"subscribeId": "ID d'abonnement",
"subscription": "Abonnement",
"traffic": "Trafic",
"traffic_ratio": "Multiplicateur",
"transport_title": "Transport",
"udp_relay_mode": "Mode de relais UDP",
"unitSecondsShort": "S",
"unlimited": "Illimité",
"updated": "Mis à jour avec succès",
"user": "Utilisateur",
"validation_failed": "Échec de la validation. Veuillez vérifier le formulaire."
}