How BabelBot translates Discord messages
See when BabelBot translates a message, when it skips one, and what counts toward your monthly AI translations.
This page explains what BabelBot does with each message. Read it when a translation is missing, when a channel feels noisy, or when you want to know what counts toward your plan. For step-by-step fixes, see Troubleshooting.
🔄 What happens when someone posts
- A member posts a message. It can be text, a card from a bot (an embed), or a file.
- BabelBot does a few checks. Translation must be on for the server and the channel. The message must have words to translate. The server must have AI translations left.
- BabelBot translates the message. It makes one translation for each target language. Every translation uses AI.
- BabelBot posts the result. It posts a reply, a thread, or a replacement, as you set in Reply mode.
- BabelBot counts one translation. It counts only when it posts a translation. One message counts once, even with several target languages.
That's it. When a check fails, BabelBot skips the message, and nothing counts.
🤔 Why didn't BabelBot translate this?
Most missing translations are correct skips. Check these causes first:
- Translation is off for the server, for the channel type, or for this channel. Check DashboardTranslationAutomatic translation and DashboardTranslationChannel rules.
- The message is already in your only target language.
- The message is in a language on DashboardSettingsFiltersSkip languages.
- The message has no words to translate. Examples are only emoji, only mentions, or only a link.
- A bot wrote the message, or the author is on Ignored users.
- The server used all its AI translations.
- BabelBot does not have the Discord permissions it needs in the channel. Overview shows permission warnings.
In all of these cases, BabelBot stays silent and nothing counts.
📬 Translation delivery
You choose where translations appear in DashboardTranslationReply mode. See Reply mode for the setup.
| Scenario | Reply in the channel | Thread per message | Replace the original |
|---|---|---|---|
| One target language | One reply below the message | One thread with the translation | A repost with the member's name and avatar replaces the original, if the languages differ |
| Several target languages | One reply with all translations | One thread with all translations | A repost with the original text first, then the translations |
| Message inside a thread | Reply inside the thread | Reply inside the thread | Reply inside the thread, original kept |
- When a message is already in a thread, BabelBot replies in that thread. It does not open a new one. Forum and media posts work the same way, because Discord treats each post as a thread.
- In the text chat of a voice channel, BabelBot replies in the chat, even with Thread per message.
- Fewer target languages keep busy channels easy to read. Thread per message suits slower channels, such as announcements, because each message gets its own thread.
✏️ Edited and deleted messages
When a member edits a message in the 30 days after BabelBot translates it, BabelBot updates its translation in place. It edits the reply or thread messages it posted. This works for automatic translations with Reply in the channel and Thread per message.
The edit uses an AI translation, like a new message. If the new translation fails, the earlier translation stays. Bridges have their own edit rules (see Bridges).
When a member or a moderator deletes a message, BabelBot also deletes its translation of that message. This applies to the same translations that edits update, for 30 days. With Thread per message, the thread stays because members can reply in it. If you set Auto-delete threads after, BabelBot deletes the thread later.
🧠 Recent context
For automatic translations, BabelBot gives the AI up to five earlier messages from the same channel or thread. This helps with pronouns, slang, and unclear words. BabelBot still translates only the new message.
📊 AI translation allowance
Every plan includes a monthly number of AI translations. This is what counts:
| Action | Counts |
|---|---|
| One automatic translation, with any number of target languages | 1 |
| A bridge translation | 1 for each linked channel that gets a translation |
| A flag reaction translation | 1 |
| An edit that BabelBot translates again | The same as a new message |
| Translate Text and Detect Language | 0 |
| Skipped messages, failure notices, and untranslated bridge copies | 0 |
| Voice chat translation | 0 (it has its own rules) |
BabelBot posts a notice in Discord at 75% and 90% of the allowance. When the allowance runs out, translations pause and BabelBot posts one more notice. Automatic, bridge, and flag reaction translations stop until the allowance resets or until an upgrade. Free resets on the 1st of next month (UTC). Pro and Ultra reset when the plan renews. Translate Text keeps working.
On Free, any member can select Vote to reset on that notice and vote for BabelBot on top.gg. The server then gets all 100 AI translations again. Founder Access has unlimited AI translations. See Billing and limits for the numbers.
🌉 Bridges
A bridge links channels, so a message in one language channel appears translated in the others.
- Pair bridge: two channels, two languages, messages go both ways.
- Hub bridge: one hub channel and several language channels.
- Cross-server connection: one channel in each of two servers, messages go both ways. See Cross-server connections.
BabelBot uses the language of the channel as the source language. A channel can be in only one bridge or cross-server connection. Set up bridges in DashboardBridges. See Bridges for the steps.
A linked channel that gets no translation gets the original message. This happens when translation fails or when the message is already in that channel's language. These copies do not count toward usage.
The rules below apply to pair bridges, hub bridges, and cross-server connections.
📢 Followed announcements
Some servers Follow an announcement channel from another server. BabelBot can translate those posts, even though Discord posts them as a bot. It does this only for Discord's normal Follow posts, so other bot messages stay untranslated. There is no setting for this. The posts use the same Reply mode as the rest of the server.
🚩 Flag reaction translations
React to a message with a country flag, and BabelBot translates it into that flag's language. Turn this on in DashboardSettingsFeaturesFlag reactions. Choose Public to post in the channel, or Private DM to send the translation to the member who reacted. See Flag reactions.
📖 Custom words
Custom words tell BabelBot how to translate a word, or to keep it as written. Use them for server names, game words, brand names, and community slang. They work in automatic translation, bridges, flag reactions, Translate Text, voice chat translation, media captions, and voice messages. Free servers can add 5, Pro 25, and Ultra and Founder Access 100. See Custom words.
🖱️ Context menus and DMs
Right-click a message and open Apps to use Translate Text or Detect Language. Both use AI but do not count toward your AI translations. They work in server channels and, with user install, in DMs and private channels. They do not change server settings. Detect Language knows common languages, the server's target languages, and your language. It shows Unknown for other languages and when it is not sure. If a message has no readable text, both commands tell you. See Commands.
🎙️ Voice chat translation
BabelBot can join a voice call, listen, and post translated text in the voice channel's text chat. This is not the same as voice message translation, which works on audio files posted in text channels.
- A server can have one voice chat session at a time.
- Members start it with
/voice startafter an admin turns it on. It needs Ultra or Founder Access. - It does not count toward your monthly AI translations.
See Voice chat translation for the full guide.