Commit inicial con archivos existentes
This commit is contained in:
54
translate_message.php
Executable file
54
translate_message.php
Executable file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/includes/session_check.php';
|
||||
require_once __DIR__ . '/includes/db.php';
|
||||
require_once __DIR__ . '/src/Translate.php';
|
||||
|
||||
header('Content-Type: application/json');
|
||||
|
||||
// Solo para administradores
|
||||
if (!isset($_SESSION['role']) || $_SESSION['role'] !== 'admin') {
|
||||
echo json_encode(['success' => false, 'error' => 'Acceso denegado.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$messageId = $_GET['message_id'] ?? null;
|
||||
|
||||
if (!$messageId) {
|
||||
echo json_encode(['success' => false, 'error' => 'ID de mensaje no proporcionado.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
try {
|
||||
// Obtener el mensaje original de la base de datos
|
||||
$stmt = $pdo->prepare("SELECT message_text, language_code FROM telegram_interactions WHERE id = ?");
|
||||
$stmt->execute([$messageId]);
|
||||
$messageData = $stmt->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if (!$messageData) {
|
||||
echo json_encode(['success' => false, 'error' => 'Mensaje no encontrado.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$originalText = $messageData['message_text'];
|
||||
$sourceLang = $messageData['language_code'] ?? 'es'; // Asumir 'es' si no hay código de idioma
|
||||
$targetLang = 'es'; // Traducir siempre al español para el administrador
|
||||
|
||||
// Si el idioma de origen ya es español, no es necesario traducir
|
||||
if ($sourceLang === $targetLang) {
|
||||
echo json_encode(['success' => true, 'translated_text' => $originalText, 'info' => 'Ya está en español.']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$translator = new Translate();
|
||||
$translatedText = $translator->translateHtml($originalText, $sourceLang, $targetLang);
|
||||
|
||||
if ($translatedText) {
|
||||
echo json_encode(['success' => true, 'translated_text' => $translatedText]);
|
||||
} else {
|
||||
echo json_encode(['success' => false, 'error' => 'Error al traducir el mensaje.']);
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
error_log("Error en translate_message.php: " . $e->getMessage());
|
||||
echo json_encode(['success' => false, 'error' => 'Error interno del servidor.']);
|
||||
}
|
||||
Reference in New Issue
Block a user