配置 TextLantern 的人需要“管理服务器”(Manage Server)权限。Bot 则需要下面这些权限,才能读取消息并发出译文。
Bot 需要哪些权限?
| 权限 | 用来做什么 |
|---|---|
| 查看频道(View Channels) | 访问需要翻译的频道 |
| 读取消息历史(Read Message History) | 取得要翻译的消息 |
| 发送消息(Send Messages) | 在频道里回复译文 |
| 在帖子中发送消息(Send Messages in Threads) | 把译文发到帖子里 |
| 嵌入链接(Embed Links) | 显示排版后的翻译卡片 |
| 管理帖子(Manage Threads) | 管理翻译帖子及其成员 |
| 更改昵称(Change Nickname) | 使用你为 Bot 设置的服务器显示名称 |
Discord 的服务器授权页还会列出“使用应用命令”(Use Application Commands)。个人翻译仍需添加到自己的账号,见下方说明。
私密翻译可用,频道却没有自动翻译?
你能使用 Translate privately 或 /t,但服务器频道里的新消息没有自动回复,可以从下面的服务器路径开始排查。私密结果成功只说明这次个人请求完成,不能证明服务器机器人能看到并回复该频道。Discord 将添加到个人账号的应用与添加到服务器的应用分开处理。
下面是根据 TextLantern 实现和 Discord 官方文档整理的排查示例,不是真实故障复盘,也不代表修复已经实测。
- 确认服务器安装。 在发生问题的服务器成员列表中查找 TextLantern,再在 TextLantern 管理界面打开该服务器。添加到自己的账号不会同时安装服务器机器人。如果你无法管理该服务器,请有管理服务器权限的人检查配置。
- 确认这个频道保存的设置。 检查自动翻译已启用、设置已完成,且主要语言已保存。记下回复位置:原频道还是线程。个人目标语言不会替频道配置自动翻译。具体设置见频道配置指南。
- 检查机器人能看到什么、能发送什么。 打开 Discord 中该频道的权限设置,检查 @everyone、机器人拥有的各个身份组,以及直接针对 TextLantern 的覆盖权限。还要确认频道是否与分类同步。最终权限应允许相关操作所需的查看频道、发送消息、嵌入链接、读取消息历史。服务器身份组显示允许,仍不能单独证明这个频道可以访问。
- 检查实际回复位置。 如果译文发到线程,检查在线程中发送消息和管理线程,以及机器人能否访问该线程。Discord 分开处理频道发送与线程发送。如果频道回复正常而线程不正常,先检查这一环节。
- 一次修改一个相关设置,再复测。 例如,频道直接针对 TextLantern 拒绝了发送消息,有权限的管理员可以修正该覆盖设置并保存。随后用普通用户账号在同一频道发送一条新的短文本,使用该频道的一种主要语言,再检查已配置的回复位置。记下原设置、修改内容和有无新回复;只看到私密结果不算自动翻译恢复。
- 仍无回复时,保留其他可能性。 查看管理界面是否提示服务器未激活、额度不足或服务问题。纯表情、机器人和 webhook 消息不适合用来复测;语言不明确也可能导致不生成自动文本翻译。如果多个配置正确的频道都失败,向支持提供服务器与频道 ID、时间和时区、回复位置及可见报错。消息接收和服务可用性需要另外调查,添加管理员权限不能说明故障原因。
Discord 官方文档解释了频道覆盖权限与线程权限。保留正常频道的设置供对比,只提供排查所需的信息。
一个频道能用,另一个却没有回复?
- 在 Discord 中打开有问题的频道权限设置。
- 查看 Bot 的身份组,以及直接为 TextLantern 设置的权限。服务器里允许的操作,仍可能被这个频道单独禁止。
- 检查译文位置。帖子回复还需要“在帖子中发送消息”和“管理帖子”。
- 补回缺少的权限,再发一条消息试试。
也对比一下两个频道的 TextLantern 配置,尤其是主要语言和回复位置。
找不到消息操作或命令?
个人翻译先到“用户设置 → 已授权的应用”(User Settings → Authorized Apps)中找 TextLantern。消息操作和 /t 来自个人安装,只在服务器成员列表里看到 Bot 还不够。
如果缺少的是服务器设置命令,请管理员检查应用命令的使用权限,以及你的“管理服务器”权限。