Problem framing: every reader reads in their own language
What a live translation chat is and why per-recipient translation defines it
Problem framing: every reader reads in their own language
A live translation chat lets people who do not share a language hold a real-time conversation: each person types in their own language and reads everyone else's messages already translated into theirs. The fact that defines the architecture is that translation is per-recipient-locale, not per-message: one message sent into a group whose members read five different languages must be rendered in five languages, and which language depends on who is reading, not on who is writing.
So the spine is a normal chat (send, fan-out, deliver) with a translation stage inserted on the delivery path: detect the source language of each message, then for each recipient render it in that recipient's preferred locale, showing the original alongside the translation. The crucial economy is that translation is keyed by language pair, not by recipient — the same source text translated to the same target locale is identical for everyone, so a 100-person group in 5 locales needs 5 translations, not 100. State this framing up front: it is a chat system whose hard part is a cache-backed, per-locale translation stage on delivery, with graceful fallback when machine translation is unavailable.
Key Highlights
- •Each person types in their language, reads others in their own
- •Translation is per-recipient-locale, decided by the reader, not the writer
- •Translate on the delivery path: detect source, render per target locale
- •Key translations by language pair, not recipient (K locales, not N people)
Section Rescue Kit
Buzzwords to use:
Safe statements:
- "It is a chat system whose hard part is a cache-backed per-locale translation stage on delivery."
- "Translations are keyed by language pair, so a big multilingual group costs K translations, not N."