Jake's blog

How to translate Discord messages (automatic, on demand, flag reactions)

Three ways to translate Discord messages: automatic channel translation, /translate on demand, or a country flag reaction. Setup takes about a minute.

By JakeBot · Published

Discord has no built-in way to translate a whole channel, so translation happens through a bot. Jake translates messages in three different ways, and you can use any or all of them: automatically in the channels you choose, on demand when a message needs it, or on request with a country flag reaction.

You need the Manage Server permission to set translation up. Everything below assumes Jake is already in your server, which takes one click at jakebot.co.uk/addme.

The 60-second version

  1. Run /quickstart in your server.
  2. Pick the language people write in, the language you want back, and the channels to translate.
  3. Press submit. Jake starts translating new messages in those channels immediately.

The rest of this guide covers each method in detail, plus the settings that fix the usual problems.

Method 1: automatic translation in channels

This is the method most servers want. Every new message in the chosen channels gets translated, so nobody has to ask.

  1. Run /quickstart. It opens a short form. Everything in it can be changed later, so nothing here is permanent.
  2. Choose the source language. If you are not sure what language people write in, pick Any language (auto-detect) and Jake will work it out per message.
  3. Choose the target language. This is what members should read, not what they write.
  4. Pick your channels. These are the channels Jake watches. Start with one or two busy ones rather than the whole server.
  5. Turn on two-way translation if you need it. With two-way on, Jake translates both directions, so a bilingual conversation works in a single channel. Two-way is skipped automatically when the source is auto-detect, because there is no fixed language to translate back into.
  6. Check permissions. Jake needs View Channel and Send Messages in the channels it works in. If you use a style that posts translations as the original speaker, it also needs Manage Webhooks so it can create the webhook it posts through.

Translations arrive as new messages, and the original stays where it is. You can change the languages, add channels or remove them at any time with /translation channels or in the dashboard.

Method 2: translate a single message on demand

Sometimes one message needs translating in a channel where automatic translation is off. There are two ways to do it.

The /translate command. Run /translate, choose the target language, and type or paste the message. It works with language codes or full names, so /translate french hello there and /translate fr hello there both work. Jake is installable to your Discord account, so this also works in direct messages and in servers that have never added the bot.

The right-click menu. Right-click any message and open Apps. Depending on how Jake was installed you will see:

  • To English and To EspaƱol for the two most common targets
  • To Your Language, which translates into the language you set once with /your_language
  • Quick Translate, which opens a box asking which language you want
  • Translate to Somewhere Else, for admins, which translates a message and posts the result in a different channel

Set your own language once with /your_language language:Spanish and the To Your Language option becomes a one-click translation from then on. This is a per-person setting, so each member can pick their own.

Personal translation requests are charged to the member's own allowance before the server's, which means a busy server does not have one member eating the whole monthly limit.

Method 3: translate with a country flag reaction

Flag reactions are the lightest-touch option: someone reacts to a message with a country flag, and Jake posts a translation into the language of that flag. It is ideal for servers where most messages are in one language but occasional visitors need help.

This is already on for new servers, so it works the moment Jake is set up. If it has been switched off, turn it back on with:

/translation extras enable feature:React to Translate

Then react to any message with a flag. By default the translation is posted in a thread on that message rather than in the channel, which keeps things tidy. If you would rather it posted straight into the channel, disable Reaction Translation in Threads:

/translation extras disable feature:Reaction Translation in Threads

Run /translation extras view_options to see every extra feature and its current state. Two other defaults are worth knowing about: Other Bot Translation is on, so messages from other bots and webhooks get translated too, and CMD Activation Messages is on, which skips messages that start with a command prefix like ! or ?. Tidy Original Message is off and, when enabled, deletes the original after translating and includes a copy of its text in the translation. Embed Translation is off by default.

Which method should you use?

Situation Best method
One shared channel for two language groups Automatic with two-way translation
A channel per language, mirrored Automatic, then /quickdivert
Occasional foreign visitors Flag reactions
A single message someone needs explained /translate or the Apps menu
DMs and servers without the bot /translate installed to your account

Troubleshooting

Nothing is being translated. Nine times out of ten it is permissions. Jake needs to see the channel and send messages in it. If you use a style that posts as the original speaker and translations silently vanish, check Manage Webhooks too. /translation channels view shows what each setup is watching.

Jake does not respond to commands at all. Re-invite using the link on the addme page. Inviting with different permissions can leave the command list out of date.

Messages starting with ! or ? are skipped. That is deliberate: CMD Activation Messages is on by default so command activation messages are not translated. Disable it if you actually want those translated.

The wrong language is being detected. Auto-detect is usually right, but short messages, slang and gaming abbreviations can confuse any translator. Set the source language explicitly instead of using auto-detect.

You have run out of characters. /translation usage shows your limit, what you have used, and which translators are available. The free allowance is per month and resets, so a quiet month costs you nothing.

Translations appear in odd places. Check whether a setup has a diversion attached with /quickdivert, and whether Reaction Translation in Threads is enabled if flag reactions are landing in threads.

Frequently asked questions

Is translating messages on Discord free? With Jake, yes, within a monthly character allowance. There is no per-member or per-server charge, and the allowance renews every month. Larger allowances and extra translation engines are available on paid plans.

How many languages does Jake support? Over 150. The full list is available with /languages, and any language can be used as a source or a target.

Does it work in direct messages? Yes, if you install Jake to your account rather than only to a server. /translate, /your_language and the Apps menu options all work in DMs.

Can Jake translate messages sent by other bots? Yes, Other Bot Translation is on by default, so other bots and webhooks are covered. Text inside embeds needs Embed Translation turned on separately, since that one is off by default.

Does translation work in threads? Yes. Automatic translation covers threads on watched channels, and flag-reaction translations are posted in a thread by default.

Where to go next

The translation features guide covers engines, styles, filters and per-channel options in more detail. If something is not behaving, the support server is the fastest way to get an answer.

← All articles