fix(database): añadir tabla ui_translations y funciones de soporte para el panel web
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user