fix(database): añadir tabla ui_translations y funciones de soporte para el panel web

This commit is contained in:
2026-03-06 20:53:27 -06:00
parent 05858e26ab
commit faed585b37

View File

@@ -108,6 +108,15 @@ def init_db():
FOREIGN KEY (message_id) REFERENCES messages(message_id) ON DELETE CASCADE,
UNIQUE KEY idx_msg_lang (message_id, target_lang)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4''')
# Tabla para traducciones de la interfaz web
cursor.execute('''CREATE TABLE IF NOT EXISTS ui_translations
(id INT AUTO_INCREMENT PRIMARY KEY,
original_text TEXT NOT NULL,
target_lang VARCHAR(10) NOT NULL,
translated_text TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY idx_ui_lang (original_text(255), target_lang)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4''')
conn.commit()
cursor.close()
else:
@@ -379,3 +388,35 @@ def get_cached_translation(message_id: int, target_lang: str) -> str:
row = c.fetchone()
conn.close()
return row[0] if row else None
def get_ui_translation(text: str, target_lang: str) -> str:
db_type = get_db_type()
if db_type == "mysql":
conn = get_connection()
cursor = conn.cursor()
cursor.execute("SELECT translated_text FROM ui_translations WHERE original_text = %s AND target_lang = %s", (text, target_lang))
row = cursor.fetchone()
cursor.close()
return row[0] if row else None
else:
conn = get_connection()
c = conn.cursor()
c.execute("SELECT translated_text FROM ui_translations WHERE original_text = ? AND target_lang = ?", (text, target_lang))
row = c.fetchone()
conn.close()
return row[0] if row else None
def save_ui_translation(text: str, target_lang: str, translated_text: str):
db_type = get_db_type()
if db_type == "mysql":
conn = get_connection()
cursor = conn.cursor()
cursor.execute("INSERT INTO ui_translations (original_text, target_lang, translated_text) VALUES (%s, %s, %s) ON DUPLICATE KEY UPDATE translated_text = %s", (text, target_lang, translated_text, translated_text))
conn.commit()
cursor.close()
else:
conn = get_connection()
c = conn.cursor()
c.execute("INSERT OR REPLACE INTO ui_translations (original_text, target_lang, translated_text) VALUES (?, ?, ?)", (text, target_lang, translated_text))
conn.commit()
conn.close()