ห้องประชุมที่ไม่ต้องสลับไปใช้ภาษาอังกฤษ
คุณนัดประชุมข้ามประเทศ ผู้เข้าร่วมเข้ามาจากสามเขตเวลา ไม่ถึงเก้าสิบวินาที ก็มีคนพูดว่า "let's keep this in English so we're all on the same page" แล้วคุณก็เห็นผู้อาวุโสที่สุดในห้องเงียบลง
การสลับภาษาแบบนั้นคือต้นทุนที่ต้องจ่าย ทั้งเวลา ความมั่นใจ และสิ่งที่ถูกตัดสินใจจริง ๆ
เราใช้เวลาหกสัปดาห์ที่ผ่านมาสร้าง InterMIND ขึ้นใหม่ตามหลักการที่ว่า ไม่มีใครในห้องควรต้องสลับภาษา ทั้งในการสนทนา ในแชต ในบันทึกที่คุณพิมพ์สด ๆ และในประวัติการแก้ไขที่คุณจะตรวจทานในวันพรุ่งนี้
นี่คือสิ่งที่เปลี่ยนไป
1. ทุกอย่างแยกตามผู้ชม ไม่ใช่แค่เสียง
การแปลเสียงสดเป็นจุดเด่นมาตลอด ไม่ว่าจะเป็น 21 ภาษา ความหน่วงต่ำกว่าหนึ่งวินาที และผู้เข้าร่วมทุกคนเลือกภาษาของตนเองได้ตั้งแต่เริ่มการโทร v1.2 ทำให้ทุกอย่าง รอบ ๆ เสียงเป็นหลายภาษาด้วย โดยซิงก์กันแบบเรียลไทม์ แยกตามผู้ชมแต่ละคน (ส่วนเหตุผลที่เราระบุ "21" แทนตัวเลขที่ใหญ่กว่าซึ่งปรากฏในส่วนอื่น ดูได้ที่ คำอธิบายโดยละเอียด)
แชต: ทุกการแก้ไขแสดงให้คุณเห็นว่าอะไรเปลี่ยนไป ในภาษาของคุณ
ทุกข้อความในแชตจะถูกแปลขณะที่พิมพ์ สิ่งที่เปลี่ยนใน v1.2 คือเมื่อมีคนแก้ไขข้อความ เราจะไม่ทิ้งคำแปลก่อนหน้าแล้วส่งคำแปลใหม่ให้คุณ แต่จะคำนวณความแตกต่าง ระหว่างข้อความที่แปลก่อนหน้ากับข้อความที่แปลใหม่ ในภาษาของคุณ แล้วแสดงในบรรทัดเดียวกัน
ดังนั้นเมื่อเพื่อนร่วมงานแก้ "we should review by Tuesday" เป็น "we should review by Thursday" ผู้ตรวจทานชาวสเปนของคุณจะไม่เห็นย่อหน้าที่ถูกแปลใหม่แล้วต้องเดาว่าอะไรเปลี่ยน แต่จะเห็น martes → jueves พร้อมไฮไลต์ ความแม่นยำเท่ากับ Git diff เพียงแต่แสดงในภาษาใดก็ได้จาก 21 ภาษาที่พวกเขาอ่าน
หากการแก้ไขเปลี่ยนเพียงรูปแบบ เช่น ตัวหนา ตัวเอียง หรือเครื่องหมายรายการ เราก็ยังแปลใหม่อยู่ดี เพราะการแก้ไขเฉพาะรูปแบบมักเป็นจุดที่ความหมายเปลี่ยน (เช่น เครื่องหมายจุลภาคกลายเป็นการแบ่งอนุประโยค) และคำแปลเดิมจะยังคงอยู่บนหน้าจอขณะที่คำแปลใหม่ไหลเข้ามา คุณจึงไม่ต้องจ้องพื้นที่ว่างเปล่ารอ API ตอบกลับ
บันทึก: สด ทีละตัวอักษร แยกตามภาษา
โฮสต์เปิดแผงบันทึกที่ใช้ร่วมกันระหว่างการประชุมแล้วเริ่มพิมพ์ ผู้เข้าร่วมทุกคนเห็นบันทึกในภาษาของตน ทีละตัวอักษร โดยส่งต่อภายในไม่ถึงหนึ่งวินาที เมื่อแก้ไขบรรทัดหนึ่ง ผู้ชมจะได้รับ diff แยกตามภาษา ซึ่งใช้โมเดลเดียวกับการแก้ไขในแชต
เรายังเขียนการแปลบันทึกใหม่ให้ แปลทีละรายการในลิสต์แทนการแปลทั้งเอกสาร เช็กลิสต์ซ้อนชั้นในภาษาอังกฤษจะรักษาโครงสร้างไว้ไม่ได้หากแปลทั้งก้อน markdown เพราะโมเดลจะทำให้ลำดับชั้นแบนราบ การแปล <li> แต่ละรายการแยกกันช่วยคงการเยื้อง การเรียงลำดับเลข และการจัดรูปแบบในบรรทัดไว้ครบถ้วนในทุกภาษา
ไฟล์แนบ: เอกสารในแชตสื่อสารได้ทุกภาษาในห้อง
วาง Google Doc ลิงก์ OneDrive หรือ PDF ลงในแชต v1.2 จะแสดงเอกสารเหล่านั้นในข้อความ:
- เอกสารที่ลิงก์ — มีชื่อ ตัวอย่าง และป้ายโดเมน ไม่มี URL ดิบโผล่ออกมา เอกสารที่แก้ไขได้จะเปิดในแท็บใหม่พร้อมตัวบอกภาษา (
hl=) ที่ถูกต้อง ผู้อ่านชาวบราซิลที่ใช้ภาษาโปรตุเกสจึงไม่ต้องเจอหน้า Docs ภาษาอังกฤษ - การอัปโหลดรูปภาพ — สร้างภาพขนาดย่อเมื่ออัปโหลด และใช้เลย์เอาต์แบบ intrinsic-grid ที่ปรับตามขนาดในกล่องข้อความ รูปภาพจึงไม่ล้นเมื่อหน้าจอแคบ
- การเข้าถึงเอกสารสามระดับ — แก้ไข ดู หรือ ไม่มีสิทธิ์เข้าถึง พร้อมแชร์อัตโนมัติเมื่อสิทธิ์อนุญาต ผู้เข้าร่วมที่ไม่มีสิทธิ์เข้าถึง Drive ยังเห็นตัวอย่างแบบอ่านอย่างเดียวที่สะอาดตา ไม่ใช่หน้า "permission denied"
การแปลแบบ Lazy: เร็วขึ้น ประหยัดขึ้น รบกวนน้อยลง
ก่อนหน้านี้เราแปลทุกข้อความในประวัติของคุณเมื่อคุณสลับภาษา สำหรับช่องทางของทีมที่ใช้งานมานาน นั่นหมายถึงการเรียก API ซ้ำเป็นชั่วโมง ๆ เพื่อข้อความที่คุณไม่เคยเลื่อนย้อนกลับไปดู
v1.2 ใช้ IntersectionObserver โดยการแปลจะเกิดขึ้นตามต้องการ เมื่อข้อความเข้ามาในวิวพอร์ต การสลับภาษากลางการประชุมจึงเกิดขึ้นทันที เรายังหยุดการ polling รายการแชตทันทีเมื่อได้รับ 401 ซึ่งช่วยปิดกระแสข้อผิดพลาดที่ไหลไม่หยุด ซึ่งคุณคงไม่มีทางสังเกตเห็น แต่เราเห็น
การถอดเสียง: ทำความสะอาดก่อนแสดงผล
ข้อความถอดเสียงจะถูกทำความสะอาดก่อนแสดงผล จึงไม่มีการแทรก HTML ผ่านการออกเสียงที่แยบยล ฟังดูเป็นเรื่องที่ควรทำอยู่แล้ว แต่เมื่อสองเดือนก่อนยังไม่เป็นเช่นนั้น