TextLanternを設定する人にはサーバーを管理(Manage Server)権限が必要です。Botには、メッセージを読み取り、訳文を返信するための権限が必要です。この二つは別のアカウントに対する権限です。
Botに必要な権限
| 権限 | TextLanternでの用途 |
|---|---|
| チャンネルを見る | 翻訳するチャンネルを表示する |
| メッセージ履歴を読む | 翻訳対象のメッセージを取得する |
| メッセージを送信 | チャンネルに訳文を返信する |
| スレッドでメッセージを送信 | 翻訳スレッドに訳文を投稿する |
| 埋め込みリンク | 翻訳カードを整形して表示する |
| スレッドを管理 | 翻訳スレッドとメンバーを管理する |
| ニックネームを変更 | このサーバーで指定したBot名を使う |
Discordのサーバー認証画面には、アプリコマンドを使う(Use Application Commands)も表示されます。この権限だけで個人翻訳がインストールされるわけではありません。
個人翻訳は使えるのに、自動翻訳が出ない場合
Translate privatelyや/tは使えるのに、サーバーのチャンネルでは新しいメッセージに自動返信が付かない。この場合は、以下のサーバー側の確認から進めます。個人翻訳の成功は、その個人リクエストが処理されたことを示します。Botがそのチャンネルを読んだり返信したりできるかは、別に確認が必要です。Discordでは、アカウントへのアプリ追加とサーバーへの追加が分かれています。
以下はTextLanternの実装とDiscordの公式資料に基づく診断例です。実際の障害記録や、修復を実測した報告ではありません。
- サーバーへの追加を確認する。 問題のサーバーのメンバー一覧にTextLanternがいるか確認し、TextLanternの管理画面でそのサーバーを開きます。自分のアカウントに追加しても、サーバーにBotは追加されません。管理できない場合は、サーバーを管理権限を持つ人に設定を確認してもらってください。
- 対象チャンネルの保存済み設定を確認する。 自動翻訳が有効で、設定が完了し、意図した主要言語が保存されているか確認します。返信先が元のチャンネルかスレッドかも控えます。個人翻訳の対象言語を変更しても、チャンネルの自動翻訳設定は変わりません。手順はチャンネル設定ガイドにあります。
- Botが読める範囲と送信できる範囲を確認する。 Discordで対象チャンネルの権限設定を開き、@everyone、Botに付いている各ロール、TextLantern個別の上書き設定を確認します。カテゴリと権限が同期しているかも見てください。必要な操作に対して、チャンネルを見る、メッセージを送信、埋め込みリンク、メッセージ履歴を読むが最終的に許可されている必要があります。サーバーロールの許可だけでは、そのチャンネルへのアクセスは確認できません。
- 実際の返信先を確認する。 スレッドに返信する場合は、スレッドでメッセージを送信とスレッドを管理に加え、Botがそのスレッドにアクセスできるか確認します。チャンネルへの送信とスレッドへの送信は別の権限です。チャンネルでは返信できてスレッドではできない場合、まずここを調べます。
- 関連する設定を一つ変更して、再確認する。 たとえば、TextLantern個別のチャンネル設定でメッセージを送信が拒否されていれば、権限を持つ管理者がその設定を修正して保存します。その後、同じチャンネルに人のアカウントから新しい短い文章を送ります。主要言語の一つを使い、設定した返信先を確認してください。元の設定、変更内容、新しい返信の有無を記録します。個人翻訳が表示されただけでは、自動翻訳の復旧は確認できません。
- 返信がなければ、別の原因も確認する。 管理画面にサーバーの有効化、利用枠、サービスに関する警告がないか確認します。絵文字だけの投稿やBot・webhookのメッセージは確認に向きません。言語が判別しにくい場合も自動の文章翻訳が出ないことがあります。正しく設定した複数のチャンネルで失敗する場合は、サーバーとチャンネルのID、時刻とタイムゾーン、返信先、表示されたエラーをサポートに伝えてください。メッセージの受信やサービス稼働は別途調査が必要です。管理者権限を付けても原因は特定できません。
Discordの公式資料でチャンネルの権限上書きとスレッドの権限を確認できます。動作するチャンネルの設定を比較用に残し、調査に必要な情報だけ共有してください。
一部のチャンネルだけ動かない場合
- 問題が起きるチャンネルの権限設定を開きます。
- Botのロールと、TextLanternに直接設定された権限を確認します。サーバーロールで許可されていても、チャンネル側で拒否されている場合があります。
- 訳文の表示先も確認します。スレッドを使う場合は、スレッドでメッセージを送信とスレッドを管理が必要です。
- 不足している権限を戻し、別の短いメッセージで試します。
動作するチャンネルとは、TextLanternの主要言語や返信先が違う可能性もあります。権限と設定を並べて確認してください。
メッセージ操作やコマンドが見つからない場合
個人翻訳では、Discordのユーザー設定 → 連携済みアプリ(Authorized Apps)にTextLanternがあるか確認します。Translate privatelyと/tは、自分のDiscordアカウントへのインストールで追加されます。サーバーのメンバー一覧にBotがいるだけでは利用できません。
サーバー設定コマンドが見つからない場合は、アプリコマンドへのアクセスと、自分のサーバーを管理権限を管理者に確認してもらってください。
スレッドメンバーやBot名については権限に関する質問、それでも訳文が出ない場合はトラブルシューティングをご覧ください。