Кімната для зустрічей, яка не переходить на англійську
Ви плануєте міжнародну зустріч. Учасники приєднуються з трьох часових поясів. Не минає й дев'яноста секунд, як хтось каже: «Давайте залишимося в межах англійської, щоб усім було зрозуміло» — і ви бачите, як найдосвідченіші люди в кімнаті замовкають.
Цей перехід — це податок. На час, на впевненість, на те, що насправді буде вирішено.
Останні шість тижнів ми перебудовували InterMIND навколо принципу: нікому в кімнаті не повинно доводитися переходити на іншу мову. Ні для розмови. Ні для чату. Ні для нотаток, які ви друкуєте в реальному часі. Ні для історії правок, яку переглядатимете завтра.
Ось що змінилося.
1. Усе персонально для кожного глядача, а не лише голос
Переклад голосу в реальному часі завжди був головною фішкою — 21 мова, затримка менше секунди, кожен учасник обирає свою мову на початку дзвінка. v1.2 робить багатомовним усе навколо голосу теж, і синхронізує це персонально для кожного глядача, у реальному часі. (Про те, чому «21», а не більші цифри, які показують інші розділи, читайте у розбірці.)
Чат: кожна правка показує, що змінилося, вашою мовою
Кожне повідомлення в чаті перекладається під час набору. Зміна у v1.2: коли хтось редагує повідомлення, ми не відкидаємо попередній переклад і не подаємо новий з нуля. Ми обчислюємо різницю між попереднім перекладеним текстом і новим перекладеним текстом вашою мовою — і показуємо її прямо в тексті.
Тож коли колега редагує «переглянемо до вівторка» на «переглянемо до четверга», ваш іспаномовний рецензент не бачить перекладений заново абзац і не вгадує, що змінилося. Він бачить martes → jueves, виділене кольором. Та ж точність, що й у Git-diff, але подана будь-якою з 21 мови, якою він читає.
Якщо правка змінює лише форматування — жирний шрифт, курсив, маркери списку — ми все одно перекладаємо повторно, бо саме такі правки часто змінюють сенс (кома перетворюється на розділення речення). А попередній переклад залишається на екрані, доки новий надходить потоково, тож ви ніколи не дивитеся на порожнє місце в очікуванні відповіді від API.
Нотатки: у реальному часі, символ за символом, для кожної мови
Ведучий відкриває панель спільних нотаток під час зустрічі й починає друкувати. Кожен учасник бачить нотатку своєю мовою, символ за символом, з поширенням менше секунди. Редагуєте рядок — глядачі отримують диференціацію для своєї мови — та ж модель, що й для правок у чаті.
Ми також переписали переклад нотаток так, щоб перекладати елементи списку окремо, а не весь документ одразу. Вкладений чекліст англійською не зберігає свою структуру, якщо перекладати весь блок markdown — модель «сплощує» ієрархію. Переклад кожного <li> окремо збережає відступи, нумерацію та вбудоване форматування незмінними на будь-якій мові.
Вкладення: документи в чаті говорять мовою кімнати
Вставте Google Doc, посилання на OneDrive або PDF у чат. v1.2 відображає їх прямо в повідомленні:
- Пов'язані документи — назва, попередній перегляд, позначка домену, без «сирого» URL, що просвічує. Редаговані документи відкриваються в новій вкладці з правильною підказкою локалі (
hl=), тож користувач із бразильською португальською не потрапляє в англомовний інтерфейс Docs. - Завантаження зображень — міні-версія при завантаженні, адаптивна сітка (intrinsic-grid) у бульбашці повідомлення, щоб зображення не «розпливалися» на вузьких екранах.
- Триступеневий доступ до документів — редагування, перегляд або без доступу — з автоматичним наданням доступу, коли дозволи це допускають. Учасники без доступу до Drive все одно бачать чистий попередній перегляд лише для читання, а не сторінку «доступ заборонено».
Відкладений переклад: швидше, дешевше, менше шуму
Раніше ми перекладали кожне повідомлення в історії при перемиканні мови. Для тривалих командних каналів це означало повторення годин викликів API для повідомлень, до яких ви б ніколи не прогорнули назад.
v1.2 використовує IntersectionObserver: переклад відбувається за потреби, коли повідомлення потрапляє у видиму область. Перемикання мови посеред зустрічі тепер миттєве. Ми також зупиняємо опитування списку чату негайно при 401, що усунуло безконтрольний потік помилок, який ви б ніколи не помітили, але ми помітили.
Транскрипція голосу: очищення перед відображенням
Текст транскрипції очищується перед відображенням — жодних HTML-ін'єкцій через «творчу» вимову. Звучить очевидно. Але два місяці тому це було не так.