Sala spotkań, która nie przechodzi na angielski
Planujesz spotkanie międzynarodowe. Uczestnicy dołączają z trzech stref czasowych. W ciągu dziewięćdziesięciu sekund ktoś mówi „zostańmy przy angielskim, żebyśmy wszyscy byli na tej samej stronie" — i widzisz, jak najbardziej doświadczone osoby w pokoju milkną.
To przełączenie to podatek. Na czas, na pewność siebie, na to, co faktycznie zostaje zdecydowane.
Ostatnie sześć tygodni spędziliśmy na przebudowie InterMIND wokół zasady, że nikt w pokoju nie powinien musieć się przełączać. Nie w rozmowie. Nie w czacie. Nie w notatkach, które piszesz na żywo. Nie w historii edycji, którą przejrzysz jutro.
Oto co się zmieniło.
1. Wszystko dopasowane do widza, nie tylko głos
Tłumaczenie głosu na żywo od zawsze było naszym głównym elementem — 21 języków, opóźnienie poniżej sekundy, każdy uczestnik wybiera własny język na początku rozmowy. v1.2 sprawia, że wszystko wokół głosu jest teraz również wielojęzyczne i pozostaje zsynchronizowane, dla każdego widza, w czasie rzeczywistym. (Dlaczego „21", a nie większe liczby pokazywane w innych miejscach, wyjaśniamy w tym artykule.)
Czat: każda edycja pokazuje, co się zmieniło — w twoim języku
Każda wiadomość na czacie jest tłumaczona w momencie pisania. Zmiana w v1.2: kiedy ktoś edytuje wiadomość, nie odrzucamy poprzedniego tłumaczenia, aby podać ci nowe. Obliczamy różnicę między poprzednim przetłumaczonym tekstem a nowym przetłumaczonym tekstem, w twoim języku — i wyświetlamy ją w tekście.
Więc kiedy twój współpracownik edytuje „powinniśmy to przejrzeć do wtorku" na „powinniśmy to przejrzeć do czwartku", twój hiszpański recenzent nie widzi ponownie przetłumaczonego akapitu i nie zgaduje, co się zmieniło. Widzi martes → jueves, wyróżnione. Ta sama precyzja jak w Git diff, tylko w tym z 21 języków, który czyta.
Jeśli edycja zmienia tylko formatowanie — pogrubienie, kursywę, znaczniki listy — i tak tłumaczymy ponownie, bo edycje dotyczące tylko formatowania często są miejscem, w którym zmienia się znaczenie (przecinek staje się granicą klauzuli). Poprzednie tłumaczenie pozostaje na ekranie, podczas gdy nowe jest przesyłane strumieniowo, więc nigdy nie patrzysz na puste miejsce, czekając, aż API odpowie.
Notatki: na żywo, znak po znaku, dla każdego języka
Prowadzący otwiera panel współdzielonych notatek podczas spotkania i zaczyna pisać. Każdy uczestnik widzi notatkę w swoim języku, znak po znaku, z propagacją poniżej sekundy. Edytujesz wiersz — widzowie otrzymują różnicę w swoim języku — ten sam model, co przy edycjach na czacie.
Przepisaliśmy też tłumaczenie notatek, tak aby tłumaczyć elementy listy pojedynczo, a nie cały dokument. Zagnieżdżona lista kontrolna w języku angielskim nie zachowuje swojej struktury, jeśli tłumaczysz cały blok markdown — model spłaszcza hierarchię. Tłumaczenie każdego <li> niezależnie zachowuje wcięcia, numerację i formatowanie w tekście, w każdym języku.
Załączniki: dokumenty w czacie mówią językiem pokoju
Wklej dokument Google Doc, link do OneDrive lub plik PDF do czatu. v1.2 wyświetla je w tekście:
- Linkowane dokumenty — tytuł, podgląd, plakietka domeny, bez przebijającego się surowego adresu URL. Edytowalne dokumenty otwierają się w nowej karcie z właściwą wskazówką lokalizacji (
hl=), więc czytelnik brazylijskiego portugalskiego nie trafia do angielskiego interfejsu Docs. - Przesyłanie obrazów — miniatura po przesłaniu, responsywny układ typu intrinsic-grid w bąbelku wiadomości, dzięki czemu obrazy nie „wybuchają" przy wąskich szerokościach.
- Trójpoziomowy dostęp do dokumentów — edycja, podgląd lub brak dostępu — z automatycznym udostępnianiem, gdy uprawnienia to pozwalają. Uczestnicy bez dostępu do Drive wciąż widzą czysty podgląd tylko do odczytu, a nie stronę „odmowa dostępu".
Leniwe tłumaczenie: szybciej, taniej, mniej szumu
Wcześniej tłumaczyliśmy każdą wiadomość w twojej historii, kiedy zmieniałeś język. W przypadku długo działających kanałów zespołowych oznaczało to odtwarzanie godzin wywołań API dla wiadomości, do których nigdy nie przewinąłbyś.
v1.2 korzysta z IntersectionObserver: tłumaczenia odbywają się na żądanie, gdy wiadomość wchodzi w obszar widoczny na ekranie. Zmiana języka w trakcie spotkania jest teraz natychmiastowa. Zatrzymujemy również odpytywanie listy czatu natychmiast po błędzie 401, co uciszyło niekontrolowany potok błędów, którego ty nigdy byś nie zauważył, ale my zauważyliśmy.
Transkrypcja głosu: sanityzowana przed wyświetleniem
Tekst transkrypcji jest sanityzowany przed wyświetleniem — żadnej iniekcji HTML poprzez „kreatywną" wymowę. Brzmi to jak oczywistość. Dwa miesiące temu jeszcze nią nie było.