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
-- ES translations
|
|
-- This migration adds ES language translations
|
|
|
|
INSERT INTO translations (language_code, translation_key, translation_value) VALUES
|
|
('es', 'auth.email', 'Correo electrónico'),
|
|
('es', 'auth.login', 'Iniciar sesión'),
|
|
('es', 'auth.name', 'Nombre'),
|
|
('es', 'auth.password', 'Contraseña'),
|
|
('es', 'auth.register', 'Registrarse'),
|
|
('es', 'backups.create', 'Crear copia de seguridad'),
|
|
('es', 'backups.create_confirm', '¿Crear copia de seguridad de todos los clientes en este servidor?'),
|
|
('es', 'backups.created_success', 'Copia de seguridad creada exitosamente'),
|
|
('es', 'backups.delete_confirm', '¿Eliminar esta copia de seguridad permanentemente?'),
|
|
('es', 'backups.deleted_success', 'Copia de seguridad eliminada exitosamente'),
|
|
('es', 'backups.login_required', 'Por favor inicie sesión vía API para gestionar copias de seguridad'),
|
|
('es', 'backups.no_backups', 'Aún no hay copias de seguridad'),
|
|
('es', 'backups.restore', 'Restaurar'),
|
|
('es', 'backups.restore_confirm', '¿Restaurar clientes desde esta copia de seguridad? Los clientes existentes no se verán afectados.'),
|
|
('es', 'backups.restored_success', 'Restaurado'),
|
|
('es', 'backups.title', 'Copias de seguridad del servidor'),
|
|
('es', 'clients.actions', 'Acciones'),
|
|
('es', 'clients.add', 'Agregar cliente'),
|
|
('es', 'clients.create', 'Crear cliente'),
|
|
('es', 'clients.delete', 'Eliminar'),
|
|
('es', 'clients.delete_confirm', '¿Eliminar este cliente permanentemente?'),
|
|
('es', 'clients.download_config', 'Descargar configuración'),
|
|
('es', 'clients.expiration', 'Vencimiento'),
|
|
('es', 'clients.expired', 'Vencido'),
|
|
('es', 'clients.ip', 'Dirección IP'),
|
|
('es', 'clients.last_handshake', 'Último contacto'),
|
|
('es', 'clients.name', 'Nombre del cliente'),
|
|
('es', 'clients.never', 'Nunca'),
|
|
('es', 'clients.never_expires', 'Nunca vence'),
|
|
('es', 'clients.no_clients', 'Aún no hay clientes'),
|
|
('es', 'clients.overlimit', 'Límite excedido'),
|
|
('es', 'clients.qr_code', 'Código QR'),
|
|
('es', 'clients.received', 'Recibido'),
|
|
('es', 'clients.restore', 'Restaurar'),
|
|
('es', 'clients.revoke', 'Revocar'),
|
|
('es', 'clients.revoke_confirm', '¿Revocar acceso para este cliente?'),
|
|
('es', 'clients.sent', 'Enviado'),
|
|
('es', 'clients.server', 'Servidor'),
|
|
('es', 'clients.status', 'Estado'),
|
|
('es', 'clients.sync_stats', 'Sincronizar estadísticas'),
|
|
('es', 'clients.title', 'Clientes'),
|
|
('es', 'clients.traffic', 'Tráfico'),
|
|
('es', 'clients.traffic_limit', 'Límite de tráfico'),
|
|
('es', 'clients.unlimited', 'Ilimitado'),
|
|
('es', 'clients.custom_seconds', 'Personalizado (segundos)'),
|
|
('es', 'clients.custom_mb', 'Personalizado (MB)'),
|
|
('es', 'clients.enter_seconds', 'Ingrese segundos'),
|
|
('es', 'clients.enter_megabytes', 'Ingrese megabytes'),
|
|
('es', 'common.days', 'días'),
|
|
('es', 'dashboard.active_clients', 'Clientes activos'),
|
|
('es', 'dashboard.add_first_server', 'Agregar primer servidor'),
|
|
('es', 'dashboard.get_started', 'Comience agregando su primer servidor VPN'),
|
|
('es', 'dashboard.no_servers', 'Aún no hay servidores'),
|
|
('es', 'dashboard.quick_actions', 'Acciones rápidas'),
|
|
('es', 'dashboard.recent_servers', 'Servidores recientes'),
|
|
('es', 'dashboard.title', 'Panel de control'),
|
|
('es', 'dashboard.total_clients', 'Total de clientes'),
|
|
('es', 'dashboard.total_servers', 'Total de servidores'),
|
|
('es', 'dashboard.total_traffic', 'Tráfico total'),
|
|
('es', 'dashboard.welcome', 'Bienvenido al Panel de Gestión de Amnezia VPN'),
|
|
('es', 'form.cancel', 'Cancelar'),
|
|
('es', 'form.close', 'Cerrar'),
|
|
('es', 'form.create', 'Crear'),
|
|
('es', 'form.loading', 'Cargando...'),
|
|
('es', 'form.processing', 'Procesando...'),
|
|
('es', 'form.save', 'Guardar'),
|
|
('es', 'form.submit', 'Enviar'),
|
|
('es', 'form.update', 'Actualizar'),
|
|
('es', 'menu.clients', 'Clientes'),
|
|
('es', 'menu.dashboard', 'Panel de control'),
|
|
('es', 'menu.logout', 'Cerrar sesión'),
|
|
('es', 'menu.servers', 'Servidores'),
|
|
('es', 'menu.settings', 'Configuración'),
|
|
('es', 'menu.users', 'Usuarios'),
|
|
('es', 'message.confirm', '¿Está seguro?'),
|
|
('es', 'message.deleted', 'Eliminado exitosamente'),
|
|
('es', 'message.deployed', 'Implementado exitosamente'),
|
|
('es', 'message.error', 'Ha ocurrido un error'),
|
|
('es', 'message.saved', 'Guardado exitosamente'),
|
|
('es', 'message.success', 'Operación completada exitosamente'),
|
|
('es', 'servers.actions', 'Acciones'),
|
|
('es', 'servers.add', 'Agregar servidor'),
|
|
('es', 'servers.clients', 'Clientes'),
|
|
('es', 'servers.delete', 'Eliminar'),
|
|
('es', 'servers.deploy', 'Implementar'),
|
|
('es', 'servers.edit', 'Editar'),
|
|
('es', 'servers.host', 'Host'),
|
|
('es', 'servers.name', 'Nombre'),
|
|
('es', 'servers.port', 'Puerto'),
|
|
('es', 'servers.status', 'Estado'),
|
|
('es', 'servers.title', 'Servidores'),
|
|
('es', 'servers.view', 'Ver'),
|
|
('es', 'settings.actions', 'Acciones'),
|
|
('es', 'settings.api_key_configured', 'Clave API configurada'),
|
|
('es', 'settings.api_keys', 'Claves API'),
|
|
('es', 'settings.api_keys_desc', 'Configurar claves API para servicios externos'),
|
|
('es', 'settings.auto_translate', 'Auto-traducir'),
|
|
('es', 'settings.change_password', 'Cambiar contraseña'),
|
|
('es', 'settings.confirm_password', 'Confirmar contraseña'),
|
|
('es', 'settings.confirm_translate', '¿Iniciar traducción automática? Esto puede tomar unos minutos.'),
|
|
('es', 'settings.current_password', 'Contraseña actual'),
|
|
('es', 'settings.description', 'Gestionar configuración del panel e integraciones API'),
|
|
('es', 'settings.error_empty_key', 'La clave API no puede estar vacía'),
|
|
('es', 'settings.error_invalid_key', 'Formato de clave API inválido'),
|
|
('es', 'settings.error_key_test', 'Prueba de clave API fallida'),
|
|
('es', 'settings.for_translation', 'para auto-traducción'),
|
|
('es', 'settings.get_key_at', 'Obtenga su clave API en'),
|
|
('es', 'settings.key_saved', 'Clave API guardada exitosamente'),
|
|
('es', 'settings.keys', 'claves'),
|
|
('es', 'settings.language', 'Idioma'),
|
|
('es', 'settings.min_6_chars', 'Mínimo 6 caracteres'),
|
|
('es', 'settings.new_password', 'Nueva contraseña'),
|
|
('es', 'settings.no_api_key', 'No hay clave API configurada. La auto-traducción no funcionará.'),
|
|
('es', 'settings.profile', 'Perfil'),
|
|
('es', 'settings.progress', 'Progreso'),
|
|
('es', 'settings.skip_validation', 'Omitir validación (guardar sin probar)'),
|
|
('es', 'settings.translation_complete', 'Traducción completada'),
|
|
('es', 'settings.translation_status', 'Estado de traducción'),
|
|
('es', 'settings.translations', 'Traducciones'),
|
|
('es', 'settings.users', 'Usuarios'),
|
|
('es', 'status.active', 'Activo'),
|
|
('es', 'status.deploying', 'Implementando'),
|
|
('es', 'status.disabled', 'Deshabilitado'),
|
|
('es', 'status.error', 'Error'),
|
|
('es', 'status.inactive', 'Inactivo'),
|
|
('es', 'users.add_user', 'Agregar usuario'),
|
|
('es', 'users.administrator', 'Administrador'),
|
|
('es', 'users.all_users', 'Todos los usuarios'),
|
|
('es', 'users.created', 'Creado'),
|
|
('es', 'users.delete_confirm', '¿Eliminar {0}?'),
|
|
('es', 'users.role', 'Rol'),
|
|
('es', 'users.role_admin', 'Administrador'),
|
|
('es', 'users.role_user', 'Usuario'),
|
|
('es', 'servers.import_from_panel', 'Importar desde panel existente'),
|
|
('es', 'servers.select_panel_type', 'Seleccione tipo de panel'),
|
|
('es', 'servers.panel_type_wgeasy', 'wg-easy'),
|
|
('es', 'servers.panel_type_3xui', '3x-ui'),
|
|
('es', 'servers.upload_backup_file', 'Subir archivo de respaldo (JSON)'),
|
|
('es', 'servers.import_in_progress', 'Importación en progreso...'),
|
|
('es', 'servers.import_success', 'Se importaron {0} clientes correctamente'),
|
|
('es', 'servers.import_failed', 'Error de importación'),
|
|
('es', 'servers.import_partial', 'Importados {0} de {1} clientes'),
|
|
('es', 'servers.import_history', 'Historial de importación')
|
|
ON DUPLICATE KEY UPDATE translation_value=VALUES(translation_value);
|