Feature: Agregar soporte i18n a todas las páginas restantes

- recurrentes.php, sent_messages.php, gallery.php
- admin/users.php, recipients.php, languages.php, comandos.php
- admin/test_discord_connection.php, ia_agent.php
- profile.php, set_webhook.php, chat_telegram.php
- translate_message.php, admin_send_message.php
- telegram/admin/telegram_bot_interactions.php
- telegram/admin/telegram_welcome.php
This commit is contained in:
2026-02-20 15:36:14 -06:00
parent d0478d949b
commit c24544360c
16 changed files with 52 additions and 36 deletions

View File

@@ -1,10 +1,11 @@
<?php
require_once __DIR__ . '/../includes/db.php';
require_once __DIR__ . '/../includes/session_check.php';
require_once __DIR__ . '/../includes/i18n.php';
requireAdmin();
$pageTitle = 'Gestión de Comandos';
$pageTitle = t('Gestión de Comandos');
$templates = [];
try {

View File

@@ -1,10 +1,11 @@
<?php
require_once __DIR__ . '/../includes/db.php';
require_once __DIR__ . '/../includes/session_check.php';
require_once __DIR__ . '/../includes/i18n.php';
requireAdmin();
$pageTitle = 'Configuración del Agente IA';
$pageTitle = t('Configuración del Agente IA');
require_once __DIR__ . '/../templates/header.php';

View File

@@ -1,13 +1,14 @@
<?php
require_once __DIR__ . '/../includes/db.php';
require_once __DIR__ . '/../includes/session_check.php';
require_once __DIR__ . '/../includes/i18n.php';
require_once __DIR__ . '/../includes/activity_logger.php';
require_once __DIR__ . '/../includes/env_loader.php';
require_once __DIR__ . '/../src/Translate.php';
requireAdmin();
$pageTitle = 'Gestión de Idiomas';
$pageTitle = t('Gestión de Idiomas');
$languages = [];
try {

View File

@@ -1,11 +1,12 @@
<?php
require_once __DIR__ . '/../includes/db.php';
require_once __DIR__ . '/../includes/session_check.php';
require_once __DIR__ . '/../includes/i18n.php';
require_once __DIR__ . '/../includes/activity_logger.php';
requireAdmin();
$pageTitle = 'Gestión de Destinatarios';
$pageTitle = t('Gestión de Destinatarios');
$recipients = [];
$languages = [];

View File

@@ -2,10 +2,11 @@
require_once __DIR__ . '/../includes/db.php';
require_once __DIR__ . '/../includes/session_check.php';
require_once __DIR__ . '/../includes/env_loader.php';
require_once __DIR__ . '/../includes/i18n.php';
requireAdmin();
$pageTitle = 'Test de Conexión Discord';
$pageTitle = t('Test de Conexión Discord');
$results = [];
$error = '';

View File

@@ -1,11 +1,12 @@
<?php
require_once __DIR__ . '/../includes/db.php';
require_once __DIR__ . '/../includes/session_check.php';
require_once __DIR__ . '/../includes/i18n.php';
require_once __DIR__ . '/../includes/auth.php';
requireAdmin();
$pageTitle = 'Gestión de Usuarios';
$pageTitle = t('Gestión de Usuarios');
$users = getAllUsers();

View File

@@ -1,6 +1,7 @@
<?php
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/includes/session_check.php';
require_once __DIR__ . '/includes/i18n.php';
require_once __DIR__ . '/includes/message_handler.php';
require_once __DIR__ . '/common/helpers/sender_factory.php';
require_once __DIR__ . '/common/helpers/converter_factory.php';

View File

@@ -1,10 +1,11 @@
<?php
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/includes/session_check.php';
require_once __DIR__ . '/includes/i18n.php';
requireAdmin();
$pageTitle = 'Chat Telegram';
$pageTitle = t('Chat Telegram');
$interactions = [];
$selectedUser = $_GET['user_id'] ?? null;

View File

@@ -1,9 +1,10 @@
<?php
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/includes/session_check.php';
require_once __DIR__ . '/includes/i18n.php';
checkSession();
$pageTitle = 'Galería de Imágenes';
$pageTitle = t('Galería de Imágenes');
$galleryPath = __DIR__ . '/galeria';
$images = [];
@@ -58,14 +59,14 @@ require_once __DIR__ . '/templates/header.php';
?>
<div class="d-flex justify-content-between align-items-center mb-4">
<h2><i class="bi bi-images"></i> Galería de Imágenes</h2>
<h2><i class="bi bi-images"></i> <?= t('Galería de Imágenes') ?></h2>
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#uploadModal">
<i class="bi bi-upload"></i> Subir Imagen
<i class="bi bi-upload"></i> <?= t('Subir Imagen') ?>
</button>
</div>
<?php if (empty($images)): ?>
<div class="alert alert-info">No hay imágenes en la galería</div>
<div class="alert alert-info"><?= t('No hay imágenes en la galería') ?></div>
<?php else: ?>
<div class="row">
<?php foreach ($images as $image): ?>
@@ -75,16 +76,16 @@ require_once __DIR__ . '/templates/header.php';
<div class="card-body py-2">
<small class="d-block text-truncate"><?= htmlspecialchars($image) ?></small>
<div class="btn-group btn-group-sm mt-2">
<button class="btn btn-outline-primary" onclick="copyUrl('<?= urlencode($image) ?>')" title="Copiar URL">
<button class="btn btn-outline-primary" onclick="copyUrl('<?= urlencode($image) ?>')" title="<?= t('Copiar URL') ?>">
<i class="bi bi-clipboard"></i>
</button>
<button class="btn btn-outline-secondary" onclick="renameImage('<?= htmlspecialchars($image) ?>')" title="Renombrar">
<button class="btn btn-outline-secondary" onclick="renameImage('<?= htmlspecialchars($image) ?>')" title="<?= t('Renombrar') ?>">
<i class="bi bi-pencil"></i>
</button>
<form method="POST" onsubmit="return confirm('¿Eliminar esta imagen?');" class="d-inline">
<form method="POST" onsubmit="return confirm('<?= t('¿Eliminar esta imagen?') ?>');" class="d-inline">
<input type="hidden" name="action" value="delete">
<input type="hidden" name="filename" value="<?= htmlspecialchars($image) ?>">
<button type="submit" class="btn btn-outline-danger" title="Eliminar">
<button type="submit" class="btn btn-outline-danger" title="<?= t('Eliminar') ?>">
<i class="bi bi-trash"></i>
</button>
</form>

View File

@@ -1,11 +1,12 @@
<?php
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/includes/session_check.php';
require_once __DIR__ . '/includes/i18n.php';
require_once __DIR__ . '/includes/auth.php';
checkSession();
$pageTitle = 'Mi Perfil';
$pageTitle = t('Mi Perfil');
$currentUserId = getCurrentUserId();
if ($currentUserId === 0) {

View File

@@ -1,10 +1,11 @@
<?php
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/includes/session_check.php';
require_once __DIR__ . '/includes/i18n.php';
checkSession();
require_once __DIR__ . '/includes/activity_logger.php';
$pageTitle = 'Plantillas de Mensajes';
$pageTitle = t('Plantillas de Mensajes');
$templates = [];
$galleryImages = [];
@@ -70,9 +71,9 @@ require_once __DIR__ . '/templates/header.php';
?>
<div class="d-flex justify-content-between align-items-center mb-4">
<h2><i class="bi bi-repeat"></i> Plantillas de Mensajes</h2>
<h2><i class="bi bi-collection"></i> <?= t('Plantillas de Mensajes') ?></h2>
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#templateModal">
<i class="bi bi-plus-circle"></i> Nueva Plantilla
<i class="bi bi-plus-circle"></i> <?= t('Nueva Plantilla') ?>
</button>
</div>
@@ -83,19 +84,19 @@ require_once __DIR__ . '/templates/header.php';
<div class="row">
<?php if (empty($templates)): ?>
<div class="col-12">
<p class="text-muted text-center py-4">No hay plantillas creadas</p>
<p class="text-muted text-center py-4"><?= t('No hay plantillas creadas') ?></p>
</div>
<?php else: ?>
<?php foreach ($templates as $template): ?>
<div class="col-md-6 mb-4">
<div class="card border-0 shadow-sm h-100">
<div class="card-header bg-white border-0 d-flex justify-content-between align-items-center">
<div class="card-header border-0 d-flex justify-content-between align-items-center">
<h5 class="mb-0"><?= htmlspecialchars($template['name']) ?></h5>
<div class="btn-group btn-group-sm">
<button class="btn btn-outline-primary" onclick="editTemplate(<?= htmlspecialchars(json_encode($template)) ?>)">
<i class="bi bi-pencil"></i>
</button>
<form method="POST" onsubmit="return confirm('¿Eliminar esta plantilla?');" class="d-inline">
<form method="POST" onsubmit="return confirm('<?= t('¿Eliminar esta plantilla?') ?>');" class="d-inline">
<input type="hidden" name="action" value="delete">
<input type="hidden" name="id" value="<?= $template['id'] ?>">
<button type="submit" class="btn btn-outline-danger">
@@ -106,13 +107,13 @@ require_once __DIR__ . '/templates/header.php';
</div>
<div class="card-body">
<p class="text-muted small mb-2">
<i class="bi bi-terminal"></i> Comando: <code>#<?= htmlspecialchars($template['telegram_command'] ?? 'sin comando') ?></code>
<i class="bi bi-terminal"></i> <?= t('Comando') ?>: <code>#<?= htmlspecialchars($template['telegram_command'] ?? t('sin comando')) ?></code>
</p>
<div class="bg-light p-2 rounded mb-2" style="max-height: 100px; overflow-y: auto; font-size: 0.85rem;">
<?= strip_tags(substr($template['message_content'], 0, 200)) ?><?= strlen($template['message_content']) > 200 ? '...' : '' ?>
</div>
<button class="btn btn-sm btn-outline-info" data-bs-toggle="modal" data-bs-target="#previewModal<?= $template['id'] ?>">
<i class="bi bi-eye"></i> Ver preview
<i class="bi bi-eye"></i> <?= t('Ver preview') ?>
</button>
</div>
</div>

View File

@@ -1,10 +1,11 @@
<?php
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/includes/session_check.php';
require_once __DIR__ . '/includes/i18n.php';
checkSession();
require_once __DIR__ . '/includes/message_handler.php';
$pageTitle = 'Mensajes Enviados';
$pageTitle = t('Mensajes Enviados');
$userId = getCurrentUserId();
$messages = getSentMessages(isAdmin() ? null : $userId, 100);
@@ -13,23 +14,23 @@ require_once __DIR__ . '/templates/header.php';
?>
<div class="d-flex justify-content-between align-items-center mb-4">
<h2><i class="bi bi-send"></i> Mensajes Enviados</h2>
<h2><i class="bi bi-check2-all"></i> <?= t('Mensajes Enviados') ?></h2>
</div>
<div class="card border-0 shadow-sm">
<div class="card-body">
<?php if (empty($messages)): ?>
<p class="text-muted text-center py-4">No hay mensajes enviados</p>
<p class="text-muted text-center py-4"><?= t('No hay mensajes enviados') ?></p>
<?php else: ?>
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th>ID</th>
<th>Destinatario</th>
<th>Plataforma</th>
<th>Fecha de Envío</th>
<th>Mensajes Enviados</th>
<th><?= t('ID') ?></th>
<th><?= t('Destinatario') ?></th>
<th><?= t('Plataforma') ?></th>
<th><?= t('Fecha de Envío') ?></th>
<th><?= t('Mensajes Enviados') ?></th>
</tr>
</thead>
<tbody>

View File

@@ -2,10 +2,11 @@
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/includes/session_check.php';
require_once __DIR__ . '/includes/env_loader.php';
require_once __DIR__ . '/includes/i18n.php';
requireAdmin();
$pageTitle = 'Configurar Webhook de Telegram';
$pageTitle = t('Configurar Webhook de Telegram');
$results = [];
$error = '';

View File

@@ -1,11 +1,12 @@
<?php
require_once __DIR__ . '/../../includes/db.php';
require_once __DIR__ . '/../../includes/session_check.php';
require_once __DIR__ . '/../../includes/i18n.php';
require_once __DIR__ . '/../../includes/activity_logger.php';
requireAdmin();
$pageTitle = 'Configuración del Bot de Telegram';
$pageTitle = t('Configuración del Bot de Telegram');
try {
$pdo = getDbConnection();

View File

@@ -1,11 +1,12 @@
<?php
require_once __DIR__ . '/../../includes/db.php';
require_once __DIR__ . '/../../includes/session_check.php';
require_once __DIR__ . '/../../includes/i18n.php';
require_once __DIR__ . '/../../includes/activity_logger.php';
requireAdmin();
$pageTitle = 'Mensajes de Bienvenida por Grupo';
$pageTitle = t('Mensajes de Bienvenida por Grupo');
try {
$pdo = getDbConnection();

View File

@@ -1,11 +1,12 @@
<?php
require_once __DIR__ . '/includes/db.php';
require_once __DIR__ . '/includes/session_check.php';
require_once __DIR__ . '/includes/i18n.php';
checkSession();
require_once __DIR__ . '/includes/env_loader.php';
require_once __DIR__ . '/src/Translate.php';
$pageTitle = 'Traducir Mensaje';
$pageTitle = t('Traducir Mensaje');
$sourceText = $_GET['text'] ?? '';
$sourceLang = $_GET['source_lang'] ?? 'es';