Fix: Preservar saltos de línea en traducciones de Telegram
- El patrón /\s+/ estaba colapsando TODOS los espacios en blanco incluyendo \n - Cambiar a /[ \t]+/ para colapsar solo espacios horizontales - Agregar limpieza de saltos de línea múltiples preservando estructura - Aplicado en: create_message.php, process_queue.php, discord_bot.php, telegram_bot_webhook.php Soluciona: 'Hola a todos, El orden de la lista\n\nMiguel\n\nnickpons\n\nLuis' se traducía como 'Olá a todos, A ordem da listaMiguelnickponsLuis' (sin saltos)
This commit is contained in:
@@ -103,8 +103,17 @@ function processScheduledMessages(): array
|
||||
$sender = SenderFactory::create($schedule['platform']);
|
||||
|
||||
// Obtener botones de traducción (convertir HTML a texto plano)
|
||||
$plainText = html_entity_decode(strip_tags($schedule['content']), ENT_QUOTES | ENT_HTML5, 'UTF-8');
|
||||
$plainText = preg_replace('/\s+/', ' ', $plainText);
|
||||
$plainText = $schedule['content'];
|
||||
// Convertir saltos de párrafo a saltos de línea
|
||||
$plainText = preg_replace('/<\/p>/i', "\n", $plainText);
|
||||
$plainText = preg_replace('/<p[^>]*>/i', '', $plainText);
|
||||
$plainText = preg_replace('/<br\s*\/?>/i', "\n", $plainText);
|
||||
// Eliminar HTML
|
||||
$plainText = html_entity_decode(strip_tags($plainText), ENT_QUOTES | ENT_HTML5, 'UTF-8');
|
||||
// Limpiar espacios múltiples pero preservar saltos de línea
|
||||
$plainText = preg_replace('/[ \t]+/', ' ', $plainText);
|
||||
$plainText = preg_replace('/\n\s*\n/', "\n", $plainText);
|
||||
$plainText = trim($plainText);
|
||||
$translationButtons = getTranslationButtons($pdo, $plainText);
|
||||
|
||||
// Parsear el contenido HTML en segmentos manteniendo el orden
|
||||
|
||||
Reference in New Issue
Block a user