const { SlashCommandBuilder } = require('discord.js'); module.exports = { data: new SlashCommandBuilder() .setName('trad') .setDescription('Traduit le message auquel vous répondez en français'), async execute(interaction, translator) { if (!translator) { await interaction.reply({ content: '❌ Le service de traduction n\'est pas disponible (token DeepL manquant).', ephemeral: true }); return; } // Vérifier si la commande est en réponse à un message const repliedMessage = interaction.options.getMessage('message') || (interaction.channel.messages.cache.get(interaction.targetId)) || null; // Si pas de message en réponse, chercher le message référencé let messageToTranslate = null || repliedMessage; if (interaction.channel && interaction.channel.lastMessage) { // Récupérer le dernier message avant cette interaction const messages = await interaction.channel.messages.fetch({ limit: 2 }); const messagesArray = Array.from(messages.values()); messageToTranslate = messagesArray[1]; // Le message avant l'interaction } if (!messageToTranslate || !messageToTranslate.content || messageToTranslate.content.trim() === '') { await interaction.reply({ content: '❌ Aucun message à traduire trouvé. Utilisez cette commande en répondant à un message ou après un message contenant du texte.', ephemeral: true }); return; } try { await interaction.deferReply(); // Traduire le message en français const result = await translator.translateText(messageToTranslate.content, null, 'fr'); // Créer la réponse avec la traduction const translationMessage = `🇫🇷 **Traduction :**\n${result.text}\n\n*Message original de ${messageToTranslate.author.username}*`; await interaction.editReply(translationMessage); } catch (error) { console.error('Erreur lors de la traduction:', error); await interaction.editReply('❌ Erreur lors de la traduction du message.'); } }, };