Feature: Traducir todas las vistas - parte 1

- admin/recipients.php: tablas, modales, labels
- admin/comandos.php: títulos, tablas, descripciones
- admin/test_discord_connection.php: formularios, alertas
- admin/ia_agent.php: configuración, parámetros
- profile.php: información, formulario contraseña
- set_webhook.php: alertas, formularios
- chat_telegram.php: usuarios, historial
- translate_message.php: formulario de traducción
This commit is contained in:
2026-02-20 16:01:06 -06:00
parent 65de04209f
commit 2dd99c04dd
8 changed files with 172 additions and 172 deletions

View File

@@ -88,7 +88,7 @@ $config = $agent->getAllConfig();
?>
<div class="d-flex justify-content-between align-items-center mb-4">
<h2><i class="bi bi-robot"></i> Configuración del Agente IA</h2>
<h2><i class="bi bi-cpu"></i> <?= t('Configuración del Agente IA') ?></h2>
</div>
<?php if (!empty($message)): ?>
@@ -101,37 +101,37 @@ $config = $agent->getAllConfig();
<div class="row">
<div class="col-md-6">
<div class="card border-0 shadow-sm mb-4">
<div class="card-header bg-white border-0">
<h5 class="mb-0"><i class="bi bi-database"></i> Conexión a Knowledge Base</h5>
<div class="card-header border-0">
<h5 class="mb-0"><i class="bi bi-database"></i> <?= t('Conexión a Knowledge Base') ?></h5>
</div>
<div class="card-body">
<form method="POST">
<div class="mb-3">
<label class="form-label">Host</label>
<label class="form-label"><?= t('Host') ?></label>
<input type="text" name="kb_host" class="form-control" value="<?= htmlspecialchars($config['kb_db_host'] ?? $_ENV['KB_DB_HOST'] ?? '') ?>">
</div>
<div class="mb-3">
<label class="form-label">Puerto</label>
<label class="form-label"><?= t('Puerto') ?></label>
<input type="text" name="kb_port" class="form-control" value="<?= htmlspecialchars($config['kb_db_port'] ?? $_ENV['KB_DB_PORT'] ?? '') ?>">
</div>
<div class="mb-3">
<label class="form-label">Base de Datos</label>
<label class="form-label"><?= t('Base de Datos') ?></label>
<input type="text" name="kb_dbname" class="form-control" value="<?= htmlspecialchars($config['kb_db_name'] ?? $_ENV['KB_DB_NAME'] ?? '') ?>">
</div>
<div class="mb-3">
<label class="form-label">Usuario</label>
<label class="form-label"><?= t('Usuario') ?></label>
<input type="text" name="kb_user" class="form-control" value="<?= htmlspecialchars($config['kb_db_user'] ?? $_ENV['KB_DB_USER'] ?? '') ?>">
</div>
<div class="mb-3">
<label class="form-label">Contraseña</label>
<input type="password" name="kb_pass" class="form-control" value="<?= htmlspecialchars($config['kb_db_pass'] ?? '') ?>" placeholder="Dejar vacío para mantener actual">
<label class="form-label"><?= t('Contraseña') ?></label>
<input type="password" name="kb_pass" class="form-control" value="<?= htmlspecialchars($config['kb_db_pass'] ?? '') ?>" placeholder="<?= t('Dejar vacío para mantener actual') ?>">
</div>
<div class="d-grid gap-2 d-md-flex">
<button type="submit" name="update_kb_config" class="btn btn-primary">
<i class="bi bi-save"></i> Guardar
<i class="bi bi-save"></i> <?= t('Guardar') ?>
</button>
<button type="submit" name="test_connection" class="btn btn-outline-primary">
<i class="bi bi-plug"></i> Probar Conexión
<i class="bi bi-plug"></i> <?= t('Probar Conexión') ?>
</button>
</div>
</form>
@@ -139,31 +139,31 @@ $config = $agent->getAllConfig();
</div>
<div class="card border-0 shadow-sm mb-4">
<div class="card-header bg-white border-0">
<h5 class="mb-0"><i class="bi bi-cpu"></i> Configuración de IA</h5>
<div class="card-header border-0">
<h5 class="mb-0"><i class="bi bi-cpu"></i> <?= t('Configuración de IA') ?></h5>
</div>
<div class="card-body">
<form method="POST">
<div class="mb-3">
<label class="form-label">Habilitar Knowledge Base</label>
<label class="form-label"><?= t('Habilitar Knowledge Base') ?></label>
<select name="config_value" class="form-select">
<option value="1" <?= ($config['kb_enabled'] ?? '1') === '1' ? 'selected' : '' ?>>Habilitado</option>
<option value="0" <?= ($config['kb_enabled'] ?? '1') === '0' ? 'selected' : '' ?>>Deshabilitado</option>
<option value="1" <?= ($config['kb_enabled'] ?? '1') === '1' ? 'selected' : '' ?>><?= t('Habilitado') ?></option>
<option value="0" <?= ($config['kb_enabled'] ?? '1') === '0' ? 'selected' : '' ?>><?= t('Deshabilitado') ?></option>
</select>
<input type="hidden" name="config_key" value="kb_enabled">
</div>
<div class="mb-3">
<label class="form-label">Modelo de IA (Groq)</label>
<label class="form-label"><?= t('Modelo de IA') ?> (Groq)</label>
<select name="config_value_model" class="form-select">
<option value="llama-3.1-8b-instant" <?= ($config['ai_model'] ?? 'llama-3.1-8b-instant') === 'llama-3.1-8b-instant' ? 'selected' : '' ?>>Llama 3.1 8B (Rápido - Recomendado)</option>
<option value="llama-3.1-8b-instant" <?= ($config['ai_model'] ?? 'llama-3.1-8b-instant') === 'llama-3.1-8b-instant' ? 'selected' : '' ?>>Llama 3.1 8B (<?= t('Rápido - Recomendado') ?>)</option>
<option value="mixtral-8x7b-32768" <?= ($config['ai_model'] ?? '') === 'mixtral-8x7b-32768' ? 'selected' : '' ?>>Mixtral 8x7B</option>
<option value="llama3-70b-8192" <?= ($config['ai_model'] ?? '') === 'llama3-70b-8192' ? 'selected' : '' ?>>Llama 3 70B</option>
</select>
<small class="text-muted">Solo modelos gratuitos. Si se agotan los tokens, cambiará automáticamente al siguiente.</small>
<small class="text-muted"><?= t('Solo modelos gratuitos. Si se agotan los tokens, cambiará automáticamente al siguiente.') ?></small>
</div>
<div class="d-grid gap-2">
<button type="submit" name="update_config" class="btn btn-primary">
<i class="bi bi-check-circle"></i> Guardar Configuración
<i class="bi bi-check-circle"></i> <?= t('Guardar Configuración') ?>
</button>
</div>
</form>
@@ -173,20 +173,20 @@ $config = $agent->getAllConfig();
<div class="col-md-6">
<div class="card border-0 shadow-sm mb-4">
<div class="card-header bg-white border-0">
<h5 class="mb-0"><i class="bi bi-chat-left-text"></i> Prompt del Sistema</h5>
<div class="card-header border-0">
<h5 class="mb-0"><i class="bi bi-chat-left-text"></i> <?= t('Prompt del Sistema') ?></h5>
</div>
<div class="card-body">
<form method="POST">
<div class="mb-3">
<label class="form-label">Instrucciones para el agente</label>
<label class="form-label"><?= t('Instrucciones para el agente') ?></label>
<textarea name="config_value" class="form-control" rows="6"><?= htmlspecialchars($config['system_prompt'] ?? '') ?></textarea>
<small class="text-muted">Instrucciones que seguirá el agente al responder.</small>
<small class="text-muted"><?= t('Instrucciones que seguirá el agente al responder.') ?></small>
<input type="hidden" name="config_key" value="system_prompt">
</div>
<div class="d-grid">
<button type="submit" name="update_config" class="btn btn-primary">
<i class="bi bi-check-circle"></i> Guardar Prompt
<i class="bi bi-check-circle"></i> <?= t('Guardar Prompt') ?>
</button>
</div>
</form>
@@ -194,25 +194,25 @@ $config = $agent->getAllConfig();
</div>
<div class="card border-0 shadow-sm mb-4">
<div class="card-header bg-white border-0">
<h5 class="mb-0"><i class="bi bi-sliders"></i> Parámetros Adicionales</h5>
<div class="card-header border-0">
<h5 class="mb-0"><i class="bi bi-sliders"></i> <?= t('Parámetros Adicionales') ?></h5>
</div>
<div class="card-body">
<form method="POST">
<div class="mb-3">
<label class="form-label">Máximo de resultados de KB</label>
<label class="form-label"><?= t('Máximo de resultados de KB') ?></label>
<input type="number" name="config_value" class="form-control" value="<?= htmlspecialchars($config['kb_max_results'] ?? '5') ?>" min="1" max="20">
<small class="text-muted">Cantidad de artículos a buscar en la base de conocimientos.</small>
<small class="text-muted"><?= t('Cantidad de artículos a buscar en la base de conocimientos.') ?></small>
<input type="hidden" name="config_key" value="kb_max_results">
</div>
<div class="mb-3">
<label class="form-label">Máximo de caracteres en respuesta</label>
<label class="form-label"><?= t('Máximo de caracteres en respuesta') ?></label>
<input type="number" name="config_value2" class="form-control" value="<?= htmlspecialchars($config['response_max_length'] ?? '1500') ?>" min="100" max="4000">
<small class="text-muted">Límite de caracteres en las respuestas del agente.</small>
<small class="text-muted"><?= t('Límite de caracteres en las respuestas del agente.') ?></small>
</div>
<div class="d-grid">
<button type="submit" name="update_config" class="btn btn-primary">
<i class="bi bi-check-circle"></i> Guardar Parámetros
<i class="bi bi-check-circle"></i> <?= t('Guardar Parámetros') ?>
</button>
</div>
</form>
@@ -224,23 +224,23 @@ $config = $agent->getAllConfig();
<div class="row">
<div class="col-md-12">
<div class="card border-0 shadow-sm">
<div class="card-header bg-white border-0">
<h5 class="mb-0"><i class="bi bi-chat-dots"></i> Prueba del Agente</h5>
<div class="card-header border-0">
<h5 class="mb-0"><i class="bi bi-chat-dots"></i> <?= t('Prueba del Agente') ?></h5>
</div>
<div class="card-body">
<form method="POST" class="mb-3">
<div class="input-group">
<span class="input-group-text"><i class="bi bi-question-circle"></i></span>
<input type="text" name="test_question" class="form-control" placeholder="Escribe una pregunta para probar el agente..." value="<?= htmlspecialchars($_POST['test_question'] ?? '') ?>">
<input type="text" name="test_question" class="form-control" placeholder="<?= t('Escribe una pregunta para probar el agente...') ?>" value="<?= htmlspecialchars($_POST['test_question'] ?? '') ?>">
<button type="submit" class="btn btn-success">
<i class="bi bi-send"></i> Enviar
<i class="bi bi-send"></i> <?= t('Enviar') ?>
</button>
</div>
</form>
<?php if (isset($testResponse)): ?>
<div class="mt-3">
<label class="form-label text-muted">Respuesta del agente:</label>
<label class="form-label text-muted"><?= t('Respuesta del agente') ?>:</label>
<div class="p-3 bg-light rounded border">
<pre class="mb-0 white-space: pre-wrap;"><?= htmlspecialchars($testResponse) ?></pre>
</div>