fc39346240
Основные изменения:
- Создан класс PanelImporter для парсинга и импорта клиентов
- Добавлена поддержка wg-easy (db.json)
- Добавлена поддержка 3x-ui (export JSON)
- Создана таблица panel_imports для отслеживания истории
- Добавлен UI для загрузки backup файлов при создании сервера
- Добавлены API endpoints: POST /api/servers/{id}/import и GET /api/servers/{id}/imports
- Автоматический импорт после деплоя сервера
- Переводы на всех 6 языках (EN, RU, ES, DE, FR, ZH)
- Обновлена документация в README
Функционал:
- Импорт клиентов с сохранением ключей и IP (wg-easy)
- Импорт клиентов с автогенерацией ключей (3x-ui)
- Поддержка экспирации и лимитов трафика из исходных панелей
- История импортов с информацией о количестве клиентов
- Обработка ошибок с детальным логированием
149 lines
7.5 KiB
SQL
149 lines
7.5 KiB
SQL
-- FR translations
|
|
-- This migration adds FR language translations
|
|
|
|
INSERT INTO translations (language_code, translation_key, translation_value) VALUES
|
|
('fr', 'auth.email', 'Email'),
|
|
('fr', 'auth.login', 'Connexion'),
|
|
('fr', 'auth.name', 'Nom'),
|
|
('fr', 'auth.password', 'Mot de passe'),
|
|
('fr', 'auth.register', 'S''inscrire'),
|
|
('fr', 'backups.create', 'Créer une sauvegarde'),
|
|
('fr', 'backups.create_confirm', 'Créer une sauvegarde de tous les clients sur ce serveur ?'),
|
|
('fr', 'backups.created_success', 'Sauvegarde créée avec succès'),
|
|
('fr', 'backups.delete_confirm', 'Supprimer définitivement cette sauvegarde ?'),
|
|
('fr', 'backups.deleted_success', 'Sauvegarde supprimée avec succès'),
|
|
('fr', 'backups.login_required', 'Veuillez vous connecter via l''API pour gérer les sauvegardes'),
|
|
('fr', 'backups.no_backups', 'Aucune sauvegarde pour le moment'),
|
|
('fr', 'backups.restore', 'Restaurer'),
|
|
('fr', 'backups.restore_confirm', 'Restaurer les clients depuis cette sauvegarde ? Les clients existants ne seront pas affectés.'),
|
|
('fr', 'backups.restored_success', 'Restauré'),
|
|
('fr', 'backups.title', 'Sauvegardes du serveur'),
|
|
('fr', 'clients.actions', 'Actions'),
|
|
('fr', 'clients.add', 'Ajouter un client'),
|
|
('fr', 'clients.create', 'Créer un client'),
|
|
('fr', 'clients.delete', 'Supprimer'),
|
|
('fr', 'clients.delete_confirm', 'Supprimer ce client définitivement?'),
|
|
('fr', 'clients.download_config', 'Télécharger la configuration'),
|
|
('fr', 'clients.expiration', 'Expiration'),
|
|
('fr', 'clients.expired', 'Expiré'),
|
|
('fr', 'clients.ip', 'Adresse IP'),
|
|
('fr', 'clients.last_handshake', 'Dernière connexion'),
|
|
('fr', 'clients.name', 'Nom du client'),
|
|
('fr', 'clients.never', 'Jamais'),
|
|
('fr', 'clients.never_expires', 'N''expire jamais'),
|
|
('fr', 'clients.no_clients', 'Pas encore de clients'),
|
|
('fr', 'clients.overlimit', 'Limite dépassée'),
|
|
('fr', 'clients.qr_code', 'Code QR'),
|
|
('fr', 'clients.received', 'Reçu'),
|
|
('fr', 'clients.restore', 'Restaurer'),
|
|
('fr', 'clients.revoke', 'Révoquer'),
|
|
('fr', 'clients.revoke_confirm', 'Révoquer l''accès pour ce client?'),
|
|
('fr', 'clients.sent', 'Envoyé'),
|
|
('fr', 'clients.server', 'Serveur'),
|
|
('fr', 'clients.status', 'Statut'),
|
|
('fr', 'clients.sync_stats', 'Synchroniser les statistiques'),
|
|
('fr', 'clients.title', 'Clients'),
|
|
('fr', 'clients.traffic', 'Trafic'),
|
|
('fr', 'clients.traffic_limit', 'Limite de trafic'),
|
|
('fr', 'clients.unlimited', 'Illimité'),
|
|
('fr', 'clients.custom_seconds', 'Personnalisé (secondes)'),
|
|
('fr', 'clients.custom_mb', 'Personnalisé (MB)'),
|
|
('fr', 'clients.enter_seconds', 'Saisissez les secondes'),
|
|
('fr', 'clients.enter_megabytes', 'Saisissez les mégaoctets'),
|
|
('fr', 'common.days', 'jours'),
|
|
('fr', 'dashboard.active_clients', 'Clients actifs'),
|
|
('fr', 'dashboard.add_first_server', 'Ajouter le premier serveur'),
|
|
('fr', 'dashboard.get_started', 'Commencez par ajouter votre premier serveur VPN'),
|
|
('fr', 'dashboard.no_servers', 'Aucun serveur pour le moment'),
|
|
('fr', 'dashboard.quick_actions', 'Actions rapides'),
|
|
('fr', 'dashboard.recent_servers', 'Serveurs récents'),
|
|
('fr', 'dashboard.title', 'Tableau de bord'),
|
|
('fr', 'dashboard.total_clients', 'Total des clients'),
|
|
('fr', 'dashboard.total_servers', 'Total des serveurs'),
|
|
('fr', 'dashboard.total_traffic', 'Trafic total'),
|
|
('fr', 'dashboard.welcome', 'Bienvenue sur le panneau de gestion Amnezia VPN'),
|
|
('fr', 'form.cancel', 'Annuler'),
|
|
('fr', 'form.close', 'Fermer'),
|
|
('fr', 'form.create', 'Créer'),
|
|
('fr', 'form.loading', 'Chargement...'),
|
|
('fr', 'form.processing', 'Traitement...'),
|
|
('fr', 'form.save', 'Enregistrer'),
|
|
('fr', 'form.submit', 'Soumettre'),
|
|
('fr', 'form.update', 'Mettre à jour'),
|
|
('fr', 'menu.clients', 'Clients'),
|
|
('fr', 'menu.dashboard', 'Tableau de bord'),
|
|
('fr', 'menu.logout', 'Déconnexion'),
|
|
('fr', 'menu.servers', 'Serveurs'),
|
|
('fr', 'menu.settings', 'Paramètres'),
|
|
('fr', 'menu.users', 'Utilisateurs'),
|
|
('fr', 'message.confirm', 'Êtes-vous sûr ?'),
|
|
('fr', 'message.deleted', 'Supprimé avec succès'),
|
|
('fr', 'message.deployed', 'Déployé avec succès'),
|
|
('fr', 'message.error', 'Une erreur est survenue'),
|
|
('fr', 'message.saved', 'Enregistré avec succès'),
|
|
('fr', 'message.success', 'Opération terminée avec succès'),
|
|
('fr', 'servers.actions', 'Actions'),
|
|
('fr', 'servers.add', 'Ajouter un serveur'),
|
|
('fr', 'servers.clients', 'Clients'),
|
|
('fr', 'servers.delete', 'Supprimer'),
|
|
('fr', 'servers.deploy', 'Déployer'),
|
|
('fr', 'servers.edit', 'Modifier'),
|
|
('fr', 'servers.host', 'Hôte'),
|
|
('fr', 'servers.name', 'Nom'),
|
|
('fr', 'servers.port', 'Port'),
|
|
('fr', 'servers.status', 'Statut'),
|
|
('fr', 'servers.title', 'Serveurs'),
|
|
('fr', 'servers.view', 'Voir'),
|
|
('fr', 'settings.actions', 'Actions'),
|
|
('fr', 'settings.api_key_configured', 'Clé API configurée'),
|
|
('fr', 'settings.api_keys', 'Clés API'),
|
|
('fr', 'settings.api_keys_desc', 'Configurer les clés API pour les services externes'),
|
|
('fr', 'settings.auto_translate', 'Traduction automatique'),
|
|
('fr', 'settings.change_password', 'Changer le mot de passe'),
|
|
('fr', 'settings.confirm_password', 'Confirmer le mot de passe'),
|
|
('fr', 'settings.confirm_translate', 'Démarrer la traduction automatique ? Cela peut prendre quelques minutes.'),
|
|
('fr', 'settings.current_password', 'Mot de passe actuel'),
|
|
('fr', 'settings.description', 'Gérer la configuration du panneau et les intégrations API'),
|
|
('fr', 'settings.error_empty_key', 'La clé API ne peut pas être vide'),
|
|
('fr', 'settings.error_invalid_key', 'Format de clé API invalide'),
|
|
('fr', 'settings.error_key_test', 'Test de la clé API échoué'),
|
|
('fr', 'settings.for_translation', 'pour la traduction automatique'),
|
|
('fr', 'settings.get_key_at', 'Obtenez votre clé API sur'),
|
|
('fr', 'settings.key_saved', 'Clé API enregistrée avec succès'),
|
|
('fr', 'settings.keys', 'clés'),
|
|
('fr', 'settings.language', 'Langue'),
|
|
('fr', 'settings.min_6_chars', 'Minimum 6 caractères'),
|
|
('fr', 'settings.new_password', 'Nouveau mot de passe'),
|
|
('fr', 'settings.no_api_key', 'Aucune clé API configurée. La traduction automatique ne fonctionnera pas.'),
|
|
('fr', 'settings.profile', 'Profil'),
|
|
('fr', 'settings.progress', 'Progression'),
|
|
('fr', 'settings.skip_validation', 'Ignorer la validation (enregistrer sans tester)'),
|
|
('fr', 'settings.translation_complete', 'Traduction terminée'),
|
|
('fr', 'settings.translation_status', 'État de la traduction'),
|
|
('fr', 'settings.translations', 'Traductions'),
|
|
('fr', 'settings.users', 'Utilisateurs'),
|
|
('fr', 'status.active', 'Actif'),
|
|
('fr', 'status.deploying', 'Déploiement'),
|
|
('fr', 'status.disabled', 'Désactivé'),
|
|
('fr', 'status.error', 'Erreur'),
|
|
('fr', 'status.inactive', 'Inactif'),
|
|
('fr', 'users.add_user', 'Ajouter un utilisateur'),
|
|
('fr', 'users.administrator', 'Administrateur'),
|
|
('fr', 'users.all_users', 'Tous les utilisateurs'),
|
|
('fr', 'users.created', 'Créé'),
|
|
('fr', 'users.delete_confirm', 'Supprimer {0} ?'),
|
|
('fr', 'users.role', 'Rôle'),
|
|
('fr', 'users.role_admin', 'Administrateur'),
|
|
('fr', 'users.role_user', 'Utilisateur'),
|
|
('fr', 'servers.import_from_panel', 'Importer depuis un panel existant'),
|
|
('fr', 'servers.select_panel_type', 'Sélectionnez le type de panel'),
|
|
('fr', 'servers.panel_type_wgeasy', 'wg-easy'),
|
|
('fr', 'servers.panel_type_3xui', '3x-ui'),
|
|
('fr', 'servers.upload_backup_file', 'Télécharger le fichier de sauvegarde (JSON)'),
|
|
('fr', 'servers.import_in_progress', 'Importation en cours...'),
|
|
('fr', 'servers.import_success', '{0} clients importés avec succès'),
|
|
('fr', 'servers.import_failed', 'Échec de l''importation'),
|
|
('fr', 'servers.import_partial', '{0} clients importés sur {1}'),
|
|
('fr', 'servers.import_history', 'Historique d''importation')
|
|
ON DUPLICATE KEY UPDATE translation_value=VALUES(translation_value);
|