Translation System
How Aquarium's real-time translation works.
Translation System
Aquarium uses DeepL's advanced neural machine translation to provide high-quality, natural-sounding translations in real-time.
How It Works
Message Flow
- User posts a message in a language channel (e.g., #english)
- Aquarium processes the message and identifies the source language
- DeepL translates the message to all other enabled languages
- Webhooks deliver translations to the corresponding channels
Webhook Delivery
Translations appear as natural messages because Aquarium uses webhooks:
- Uses the original author's username
- Uses the original author's avatar
- Includes an indicator showing the source language
This makes conversations flow naturally across language barriers.
Supported Languages
| Language | Code | DeepL Quality |
|---|---|---|
| English | EN | Excellent |
| Spanish | ES | Excellent |
| Portuguese (BR) | PT-BR | Excellent |
| French | FR | Excellent |
| German | DE | Excellent |
| Italian | IT | Excellent |
| Japanese | JA | Very Good |
| Korean | KO | Very Good |
| Chinese (Simplified) | ZH | Very Good |
Character Counting
How Characters Are Counted
Characters are counted from the source message multiplied by the number of target languages.
Example:
- Message: "Hello world" (11 characters)
- Target languages: 8 (all except source)
- Characters used: 11 × 8 = 88 characters
Monthly Limits
| Tier | Server Limit | Per-User Limit |
|---|---|---|
| Free | 50,000 | 10,000 |
| Pro | 500,000 | 100,000 |
| Premium | 2,000,000 | 500,000 |
Users get the higher of their personal subscription limit or the server's limit. If you have Pro personal and the server is Free, you still get 100,000 characters.
Translation Quality
What DeepL Handles Well
- Natural language - Conversational text translates excellently
- Idioms - Many common expressions are translated contextually
- Formality - Appropriate formal/informal register for each language
- Grammar - Proper sentence structure in target language
Limitations
- Slang - Very new or regional slang may not translate well
- Made-up words - Game terms, memes, etc. may be transliterated
- Code/technical - Programming code should not be posted in immersion channels
- Extremely long messages - Very long messages may hit character limits
Message Formatting
What's Preserved
- Basic text formatting (bold, italic, underline)
- Line breaks
- Standard emoji
- Mentions (@user, @role, #channel)
What May Change
- Custom emoji (kept but may not translate descriptions)
- Complex markdown (tables, etc.)
- Embedded links (URLs preserved, link text translated)
Rate Limiting
Per-User Limits
When a user hits their limit:
- Their message is deleted
- They receive a DM explaining the limit
- They must wait until the monthly reset
Per-Server Limits
When the server hits its limit:
- Messages are deleted
- Users are notified via DM
- Server admins should consider upgrading
Usage Warnings
Users receive a warning when they reach 80% of their limit, giving them time to adjust their usage.
Troubleshooting
Messages Not Translating
- User not verified - Must click verification link first
- Language disabled - Check that source/target languages are enabled
- Limit reached - Check usage with
/usage - Bot missing permissions - Ensure bot has required permissions
Poor Translation Quality
- Check the source - Is the original message clear?
- Avoid slang - Use more standard language
- Break up long messages - Shorter sentences translate better
- Report issues - Let us know about consistent problems
Webhook Issues
If translations aren't appearing properly:
- Go to dashboard → Channels
- Find the affected channel
- Click "Recreate Webhook"