Translating a 50-person server is a solved problem. What follows is about the three things that stop working somewhere between a few hundred and a few thousand members, why they stop, and what Pigona does about each one.
Almost every translation bot works one message at a time, which is fine while most messages are self-contained. Busy channels are not made of self-contained messages - they are replies, pronouns, fragments and callbacks. Translated in isolation, "yeah, that one" carries no information in any language. The faster the channel, the higher the share of messages that only mean something relative to what came before, so this problem grows with your server rather than staying flat.
The obvious fix - send the last N messages as context - quietly fails at scale, because the last N messages in an active channel are mostly bot replies, command output and one-word reactions. Ten raw messages might contain three of actual conversation. Pigona's Smart Context Engine counts only qualifying messages - written by a human, long enough to carry meaning - and reads further back to find them, so a depth of ten means ten real contributions to the conversation, not simply the last ten things posted. Selection is plain code rather than a model call, so it is deterministic and stays inside a single Discord history request, and it reads at most fifty messages looking for them. Two dials: depth is how many qualifying messages to gather (5, 10 or 20), and minimum length is how long a message must be before it is worth gathering context for at all, which keeps "ok" and "lol" from costing anything.
Context that trips an injection filter is discarded wholesale rather than sanitised and passed through, and the per-message context fee is waived when that happens. Smart Context Engine is included on every server plan, and it is off until you set a depth for a channel - a new channel starts without it.
A bot that posts a public translation under every foreign-language message doubles the traffic in that channel. At twenty messages an hour nobody minds; at two thousand the channel becomes unreadable for everyone, including the people who never needed translating. The useful question is not whether to translate but where the output lands, and Pigona gives four answers you can mix per channel.
Relay Channels send translations to a separate channel, posting through a webhook so they carry the original author's name and avatar instead of reading as bot output. Reactive Translation is per-person and private - someone runs the command or reacts with a flag, and only they see the result, with nothing added to the channel. Translation Bridge puts a small panel under a foreign-language message with two buttons - one posts the translation to the channel, the other translates it into your own language and shows it only to you, so nothing is translated until somebody asks. Like Autonomous Translation the panel does not linger: it removes itself after a minute by default, and a throttle means a burst of messages produces one panel rather than twenty. Autonomous Translation can post publicly but with a lifetime, deleting itself after anywhere from a minute to a day, so translations are there when useful and gone before they become scrollback.
Once a meaningful share of your traffic is in languages nobody on your moderation team reads, that traffic is effectively unmoderated - not because anyone allowed it, but because nobody can see it. Discord's own internationalization guidance amounts to recruiting bilingual moderators, which works until you need a fourth language at 3am.
Being straight about what Pigona does here: it makes the content legible, and that is all. A moderator reading in their own language sees what is being said, in the same place, at the same time as everyone else. Pigona is not a moderation product, does not score toxicity, and does not integrate with AutoMod. What it removes is the excuse that nobody could read it.
Pigona bills in Translation Credits rather than advertising an unlimited plan, which invites the question of whether the allowance survives a real server. Here is the credit-to-translation conversion for short messages, which is what most Discord traffic is: Community at 15 EUR covers up to 75,000 translations a month, Pro at 29 EUR up to 150,000, and Business at 45 EUR up to 300,000 - about 10,000 a day.
Two things make those numbers larger than the credit totals suggest. You are charged on the translation produced rather than the message read, so the original text and everything sent alongside it are our cost rather than yours. And a message already in the target language never reaches the model, so it costs nothing at all - on production traffic that is roughly a third of everything the bot reads. So in a mostly-English channel with a handful of German speakers, you pay for the German that gets translated; the English costs you nothing, however much of it there is. Those are ceilings and worth reading as such: they price every message at the 0.2 Credit minimum, which is the whole charge for anything up to about forty characters, with Smart Context off - the configuration a channel starts in. A real channel is a mix of lengths, and measured across our own production traffic a Community server lands nearer 44,000 translations a month than 75,000. Smart Context adds a small fee per analysed message on top, and only once you switch it on for a channel. Neither figure counts repeated-message caching, which in practice makes both better.
A message already in the channel's target language is left alone by default: no translation, no Bridge panel, no error, on every plan. That surprises people, because the obvious way to test a new channel is to post in your own language, which is the one case guaranteed to look like a failure - post in a second language instead, or react with a flag emoji to translate any message on demand. One server setting changes this: the Bridge panel can be offered on those messages anyway so a member can read one in their own language, off unless you turn it on, and it never makes Pigona translate them into the language they are already in. No voice channel translation - text channels, threads and forum posts only. No image or screenshot translation. Autonomous Translation posts publicly by default, so keeping translations out of the source channel means a Relay Channel or a delete timer, and it is a setting you turn on. Smart Context Engine does not run until you switch it on: it is included on every plan, including the free one, but a new channel is created with a context depth of none, so an unconfigured server translates message by message and pays no context fee. Relay Channels need webhook permission in the destination channel.
From Pigona - the context-aware AI translation bot for Discord. Pricing details.