Fix: Mejorar manejo de menciones en traducciones usando placeholders más robustos
- Cambiar formato de placeholder de <m0 /> a 【M0】 (corchetes chinos) - El traductor ya no altera estos placeholders - Agregar verificación de placeholders antes de usar caché - Regenerar traducciones automáticamente si placeholders no coinciden - Compatible con formatos antiguos de placeholders
This commit is contained in:
@@ -52,11 +52,22 @@ class TranslationButton(discord.ui.Button):
|
||||
return
|
||||
|
||||
text = db_msg['content']
|
||||
mentions_map = db_msg['mentions_map']
|
||||
mentions_map = db_msg['mentions_map'] or {}
|
||||
|
||||
cached = get_cached_translation(original_msg_id, self.lang_code)
|
||||
needs_retranslate = False
|
||||
|
||||
if cached:
|
||||
translated = cached
|
||||
for placeholder in mentions_map.keys():
|
||||
if placeholder not in cached:
|
||||
needs_retranslate = True
|
||||
break
|
||||
|
||||
if needs_retranslate:
|
||||
translated = await translate_text(text, self.lang_code)
|
||||
save_translation(original_msg_id, self.lang_code, translated)
|
||||
else:
|
||||
translated = cached
|
||||
else:
|
||||
translated = await translate_text(text, self.lang_code)
|
||||
save_translation(original_msg_id, self.lang_code, translated)
|
||||
@@ -65,7 +76,6 @@ class TranslationButton(discord.ui.Button):
|
||||
if mentions_map:
|
||||
for placeholder, mention in mentions_map.items():
|
||||
translated = translated.replace(placeholder, mention)
|
||||
translated = translated.replace(placeholder.replace(" ", ""), mention)
|
||||
|
||||
guild_id = interaction.guild_id
|
||||
active_codes = get_active_languages(guild_id)
|
||||
@@ -145,8 +155,19 @@ class WelcomeTranslationButton(discord.ui.Button):
|
||||
mentions_map = db_msg['mentions_map'] or {}
|
||||
|
||||
cached = get_cached_translation(original_msg_id, self.lang_code)
|
||||
needs_retranslate = False
|
||||
|
||||
if cached:
|
||||
translated = cached
|
||||
for placeholder in mentions_map.keys():
|
||||
if placeholder not in cached:
|
||||
needs_retranslate = True
|
||||
break
|
||||
|
||||
if needs_retranslate:
|
||||
translated = await translate_text(text, self.lang_code)
|
||||
save_translation(original_msg_id, self.lang_code, translated)
|
||||
else:
|
||||
translated = cached
|
||||
else:
|
||||
translated = await translate_text(text, self.lang_code)
|
||||
save_translation(original_msg_id, self.lang_code, translated)
|
||||
@@ -155,7 +176,6 @@ class WelcomeTranslationButton(discord.ui.Button):
|
||||
if mentions_map:
|
||||
for placeholder, mention in mentions_map.items():
|
||||
translated = translated.replace(placeholder, mention)
|
||||
translated = translated.replace(placeholder.replace(" ", ""), mention)
|
||||
|
||||
guild_id = interaction.guild_id
|
||||
active_codes = get_active_languages(guild_id)
|
||||
|
||||
Reference in New Issue
Block a user