The Meeting Room That Doesn't Switch to English
You schedule a cross-border meeting. People join from three time zones. Within ninety seconds someone says "let's keep this in English so we're all on the same page" — and you watch the most senior people in the room go quiet.
That switch is a tax. On time, on confidence, on what actually gets decided.
We've spent the last six weeks rebuilding InterMIND around the principle that no one in the room should have to switch. Not for the conversation. Not for the chat. Not for the notes you're typing live. Not for the edit history you'll review tomorrow.
Here's what shifted.
1. Per-Viewer Everything, Not Just Voice
Live voice translation has always been the headline — 21 languages, sub-second latency, every participant picks their own language at the start of the call. v1.2 makes everything around the voice multilingual too, and keeps it in sync, per viewer, in real time. (For why "21" and not the bigger numbers other surfaces show, see the breakdown.)
Chat: every edit shows you what changed, in your language
Every message in chat is translated as it's typed. The change in v1.2: when someone edits a message, we don't throw out their previous translation and serve you a fresh one. We compute the diff between the previous translated text and the new translated text, in your language — and show it inline.
So when your colleague edits "we should review by Tuesday" to "we should review by Thursday," your Spanish reviewer doesn't see a re-translated paragraph and guess what moved. They see martes → jueves, highlighted. Same precision as a Git diff, but rendered in whichever of the 21 languages they read.
If the edit changes only formatting — bold, italic, list markers — we re-translate anyway, because format-only edits are often where meaning shifts (a comma becomes a clause break). And the previous translation stays on screen while the new one streams in, so you never look at blank space waiting for the API to come back.
Notes: live, character-by-character, per language
The host opens the shared-note pane during the meeting and starts typing. Every participant sees the note in their language, character-by-character, with sub-second propagation. Edit a line and viewers get a per-language diff — same model as chat edits.
We also rewrote note translation to translate list items individually instead of the whole document. A nested checklist in English doesn't preserve its structure if you translate the markdown blob — the model flattens the hierarchy. Translating each <li> independently keeps the indentation, the numbering, and the inline formatting intact in every language.
Attachments: documents inside chat speak the room
Drop a Google Doc, OneDrive link, or PDF into chat. v1.2 renders them inline:
- Linked docs — title, preview, domain badge, no raw URL bleeding through. Editable docs open in a new tab with the right locale hint (
hl=), so a Brazilian Portuguese reader doesn't land in an English Docs UI. - Image uploads — thumbnail on upload, intrinsic-grid responsive layout in the message bubble so images don't blow out at narrow widths.
- Three-tier document access — edit, view, or no-access — with auto-share when permissions allow. Participants without Drive access still see a clean read-only preview, not a "permission denied" page.
Lazy translation: faster, cheaper, less noisy
We used to translate every message in your history when you switched languages. For long-running team channels that meant replaying hours of API calls for messages you'd never scroll back to.
v1.2 uses an IntersectionObserver: translations happen on demand, when a message enters the viewport. Switching languages mid-meeting is now instant. We also stop chat-list polling immediately on 401, which silenced a runaway error stream you would never have noticed but we did.
Voice transcription: sanitized before render
Transcription text is sanitized before rendering — no HTML injection through a creative pronunciation. It sounds obvious. It also wasn't true two months ago.