You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Discord.js中实现本地化且Ephemeral的交互回复?

实现本地化+Ephemeral交互回复的正确写法

直接给interaction.reply()传入包含本地化内容和ephemeral配置的对象即可,核心是把原来的字符串参数替换成配置对象,同时指定content和ephemeral属性。

完整示例代码

const { Client, Events } = require('discord.js');
const client = new Client({ intents: [] }); // 按需配置机器人权限

client.on(Events.InteractionCreate, async interaction => {
    const locales = {
        pl: 'Witaj Świecie!',
        de: 'Hallo Welt!',
    };
    // 获取对应用户语言的回复内容,无匹配则用默认英文
    const replyText = locales[interaction.locale] ?? 'Hello World (default is english)';
    
    // 传入配置对象,同时实现本地化和仅用户可见
    await interaction.reply({
        content: replyText,
        ephemeral: true
    });
});

client.login('你的机器人Token');

关键说明

  • 必须使用配置对象作为reply()的参数:之前直接传字符串的写法无法附加ephemeral这类选项,只有传入包含content字段的对象时,才能同时配置其他回复属性。
  • 记得加async/await:interaction.reply()是异步方法,加上异步标识能避免潜在的执行顺序问题。
  • 如果是后续的跟进回复(比如用followUp),同样可以用这个逻辑:把本地化内容放到content里,同时设置ephemeral: true。

内容的提问来源于stack exchange,提问作者ViorisE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 00:52:07