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:
@@ -94,6 +94,15 @@ async def on_member_join(member):
|
||||
)
|
||||
|
||||
text_escaped = html.escape(formatted_message)
|
||||
mention_pattern = re.compile(r'<@!?(\d+)>|<@&(\d+)>|<#(\d+)>')
|
||||
welcome_mentions_map = {}
|
||||
|
||||
def replace_mention(match):
|
||||
placeholder = f"【M{len(welcome_mentions_map)}】"
|
||||
welcome_mentions_map[placeholder] = html.unescape(match.group(0))
|
||||
return placeholder
|
||||
|
||||
text_to_translate = mention_pattern.sub(replace_mention, text_escaped)
|
||||
|
||||
welcome_msg = await channel.send(formatted_message)
|
||||
print(f"[WELCOME] Mensaje enviado: {welcome_msg.id}")
|
||||
@@ -102,8 +111,8 @@ async def on_member_join(member):
|
||||
welcome_msg.id,
|
||||
member.guild.id,
|
||||
member.id,
|
||||
text_escaped,
|
||||
{},
|
||||
text_to_translate,
|
||||
welcome_mentions_map,
|
||||
'discord'
|
||||
)
|
||||
|
||||
@@ -153,13 +162,12 @@ async def on_message(message):
|
||||
active_codes = get_active_langs_for_guild(message.guild.id)
|
||||
if not active_codes: return
|
||||
|
||||
# Escapar y procesar menciones
|
||||
text_escaped = html.escape(message.content)
|
||||
mention_pattern = re.compile(r'<@!?(\d+)>|<@&(\d+)>|<#(\d+)>')
|
||||
mentions_map = {}
|
||||
|
||||
def replace_mention(match):
|
||||
placeholder = f"<m{len(mentions_map)} />"
|
||||
placeholder = f"【M{len(mentions_map)}】"
|
||||
mentions_map[placeholder] = html.unescape(match.group(0))
|
||||
return placeholder
|
||||
|
||||
|
||||
Reference in New Issue
Block a user