- การตั้งค่าภาษาตาม IP เป็นฟีเจอร์ที่ตั้งอยู่บนสมมติฐานที่ผิด
- ที่อยู่ IP บอกได้เพียงตำแหน่งที่ตั้งเท่านั้น และไม่สามารถสะท้อนความชอบด้านภาษาที่แท้จริงของผู้ใช้ได้
- ส่วนหัว Accept-Language ส่งข้อมูลความต้องการด้านภาษาได้อย่างแม่นยำ
- ภาษาของ UI ควรถูกกำหนดโดยอิงจาก สัญญาณที่เชื่อถือได้ อย่างส่วนหัวของเบราว์เซอร์
- หลักการที่สำคัญที่สุดคือการเคารพ สิทธิในการเลือกภาษา และ ประสบการณ์ของผู้ใช้
ข้อจำกัดของการเดาภาษาจาก IP
- การใช้ ข้อมูลระบุตำแหน่งจาก IP (GeoIP) เพื่อตัดสินภาษาที่ยังใช้อยู่ทุกวันนี้ เป็นการตั้งอยู่บนสมมติฐานที่ผิด
- ที่อยู่ IP ให้เพียง ข้อมูลตำแหน่งของคำขอ เท่านั้น
- ไม่สามารถรู้ได้ว่าผู้ใช้ ชอบหรือเข้าใจภาษาใดจริง ๆ
- วิธีนี้มักล้มเหลวในหลายสถานการณ์ เช่น VPN, การเดินทางต่างประเทศ, การอาศัยอยู่ต่างประเทศ, หรือประเทศที่มี ภาษาราชการหลายภาษา
- วิธีแบบนี้ไม่ใช่ความฉลาด แต่เป็นการ สร้างความไม่สะดวกและความสับสน
ความคลาดเคลื่อนระหว่างจำนวนภาษาราชการกับความเป็นจริง
- ข้อมูลประเทศและ IP ไม่ได้จับคู่กับภาษาแบบ 1:1
- Belgium มี 3 ภาษา, Switzerland มี 4 ภาษา, India มี 22 ภาษา, Canada อย่างเป็นทางการมี 2 ภาษา และในทางปฏิบัติก็เป็นประเทศพหุภาษา
- ผู้ใช้อาจอาศัยอยู่ในประเทศนั้น เดินทางไปเยือน หรือทราฟฟิกของตนอาจบังเอิญถูกส่งผ่านประเทศนั้น
- การบังคับให้แสดง ภาษา UI เพียงภาษาเดียวจากข้อมูลประเทศอย่างเดียวเป็นพฤติกรรมที่ผิด
ตัวอย่างของวิศวกรรมที่ผิดพลาด
- การพึ่งพาข้อมูลที่ผิดคือ แนวทางการพัฒนาที่ขี้เกียจ
- ข้ออ้างว่า “เว็บไซต์ใหญ่ ๆ ก็ทำแบบนี้” ไม่ใช่สิ่งที่ถูกต้อง
- ถ้าทำให้ ถูกต้องแม่นยำ ไม่ได้ สู้ไม่ทำอะไรเลยยังดีกว่า
คุณค่าของส่วนหัว Accept-Language
- ผู้ใช้จำนวนมากต้องเจอประสบการณ์ไม่สะดวกจากการถูกบังคับให้เห็นภาษาใหม่ เช่น เมื่อ ใช้งาน VPN
- ทุกเบราว์เซอร์จะส่ง ส่วนหัว Accept-Language
- ความต้องการด้านภาษาจะถูกกำหนดตาม การตั้งค่า OS หรือเบราว์เซอร์ ของผู้ใช้
- หากผู้ใช้ต้องการ ก็สามารถตั้งค่าหรือเปลี่ยนค่านี้ได้ด้วยตนเอง
- ตัวอย่าง:
Accept-Language: en-US,en;q=0.9,de;q=0.8
- ส่วนหัวนี้เป็นข้อมูลที่ แม่นยำ ฟรี และมีมาให้อยู่แล้ว โดยไม่ต้องมีไลเซนส์หรือการดูแลเพิ่มเติม
วิธีจัดการภาษาที่ถูกต้อง
- เช่นเดียวกับความละเอียดหน้าจอหรือสี ภาษาก็ควรถูกจัดการโดยเคารพสภาพแวดล้อมของผู้ใช้
- มักเกิดการกำหนดภาษาที่ผิด เช่น ผู้ใช้ภาษาอังกฤษในฝรั่งเศสเห็นภาษาอังกฤษ, ผู้ใช้ภาษาฝรั่งเศสในบรัสเซลส์ถูกแสดงเป็นภาษาดัตช์, หรือผู้ใช้ VPN ในฮ่องกงถูกแสดงเป็นภาษาจีน
- สิ่งนี้ก่อให้เกิดปัญหา เช่น ผู้ใช้ไม่พอใจ, ออกจากบริการ, หรือพยายามหาทางแก้ชั่วคราวด้วยการคลิกหาใน UI
- ความผิดพลาดเหล่านี้เกิดจากการใช้ ข้อมูล IP ที่ไม่น่าเชื่อถือ เป็นพื้นฐานในการตัดสินภาษา
แนวทางแก้ไขที่ใช้งานได้จริง
- อ่านค่า Accept-Language
- เคารพค่านี้
- หากต้องการ ให้ผู้ใช้เปลี่ยนภาษาเองได้ (ตัวเลือกสามารถบันทึกไว้ในคุกกี้หรือ URL parameter)
- ใช้ข้อมูล GeoIP เฉพาะกับ สกุลเงิน การจัดส่ง และข้อกฎหมาย เท่านั้น และ ห้ามนำไปใช้กับภาษา
บทสรุป
- ถ้าเป็นซอฟต์แวร์ที่มนุษย์ใช้งาน ก็ไม่ควร เดาความชอบของผู้ใช้
- ทางที่เหมาะสมคือ ทำให้ถูกต้องแม่นยำ หรือไม่ก็ไม่ต้องมีฟีเจอร์กำหนดภาษาไปเลย
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
ฉันคิดว่าเว็บไซต์ที่เพิกเฉยต่อเฮดเดอร์ Accept-Language เป็นปัญหาที่น่ารำคาญมาก เว็บไซต์หลายภาษามักแปลแม้กระทั่งปุ่มสลับภาษาหรือรายชื่อภาษาเป็นภาษาปัจจุบัน ทำให้สับสน และในกรณีนี้ฉันคิดว่า Wikipedia เป็นตัวอย่างมาตรฐานที่ดี Wikipedia ใช้ไอคอนหลายภาษาที่ชัดเจน รายการที่แสดงชื่อของแต่ละภาษาในภาษานั้นเอง และแสดงภาษาที่แนะนำไว้ด้านบนสุด ไม่ควรเดาภาษาล่วงหน้า ทำแบบ Wikipedia จะช่วยได้
ฉันไม่ชอบเวลาคลิกเข้าหน้าที่ต้องการจากเสิร์ชเอนจินแล้วจู่ ๆ ก็มีโมดัลป๊อปอัปให้เลือกประเทศ และพอเลือกแล้วก็ถูกบังคับพาไปที่หน้าแรกของเว็บไซต์ท้องถิ่น บางเว็บมีปุ่มปิด (X) แต่หลายเว็บก็ไม่มี น่าหงุดหงิดมาก
รายการภาษาของ Wikipedia ดูเหมือนจะไม่ได้เรียงตาม "ตัวอักษร" เสมอไป เช่น บางครั้งมีภาษาแนะนำอย่าง "中文" หรือ "Italiano" อยู่ด้านบน ส่วนที่เหลือก็ดูเหมือนจัดกลุ่มตามภูมิศาสตร์หรือระบบอักษร ถึงจะไม่ใช่ลำดับตัวอักษรที่แท้จริงของภาษานั้น Wikipedia ก็ยังทำโลคัลไลซ์ได้ดี ประเด็นสำคัญคือเมื่อแสดงชื่อภาษาในภาษานั้นเอง แนวคิดเรื่องการเรียงตาม "ตัวอักษร" แบบ "ถูกต้อง" นั้นซับซ้อน
Wikipedia จำภาษาที่ผู้ใช้เคยเลือกไว้และแสดงภาษานั้นไว้บนสุด เป็นประสบการณ์ผู้ใช้ที่แท้จริง
เคยเจอในแอป YouTube ที่ภาษาจู่ ๆ เปลี่ยนเป็น Amharic พอไปดูเอกสารช่วยเหลือของ Google ก็มีแต่บอกว่าปุ่ม English อยู่ตรงไหน แต่สำหรับฉันที่อ่าน Amharic ไม่ออก มันไม่ได้ช่วยอะไรเลย แอปแปลภาษาบน iPhone ก็จำแนกภาษานี้ไม่ได้ ถ้ามีแค่ไอคอนหลายภาษาสากลก็น่าจะช่วยแก้สถานการณ์แบบนี้ได้ง่าย
น่าขันตรงที่แม้แต่ Universal Language Selector (U.S.L) เองก็ยังใช้ข้อมูลประเทศจาก IP ของผู้ใช้เป็นหลักในการแนะนำภาษา ซึ่งหลายครั้งก็ไม่แม่นยำ ตาม FAQ ของ U.S.L มันจะเริ่มจากระบุประเทศต้นทางผ่าน IP แล้วค่อยแนะนำภาษาหลักที่เป็นไปได้
ฉันไม่ชอบดีไซน์ที่ตั้งสมมติฐานว่าทุกคนใช้ภาษาเดียว ฉันอ่านได้สบาย ๆ ถึงสี่ภาษา และปกติก็ชอบต้นฉบับมากกว่าคำแปล การเดาภาษาจาก IP ผิดบ่อยมาก ในเมื่อฉันตั้งค่าภาษาที่รองรับไว้แล้ว ก็ควรเคารพการตั้งค่านั้น YouTube ก็เปิด AI dubbing อัตโนมัติเป็นค่าเริ่มต้น ทำให้ฉันต้องฟังไปครึ่งหนึ่งแล้วค่อยย้อนกลับไปปิด แม้จะเสียเวลาไม่มาก แต่เป็นประสบการณ์ที่น่ารำคาญจริง ๆ
AI dubbing ของ YouTube คุณภาพแย่มาก ฉันใช้เวลาตั้ง 5 นาทีถึงจะรู้ว่าน้ำเสียงในวิดีโอไม่ใช่เสียงต้นฉบับ ฉันยังไม่ชอบที่ชื่อวิดีโอถูกแปลด้วย กำลังดูวิดีโอที่พูดภาษาอังกฤษอยู่ แต่ชื่อกลับเป็นอีกภาษาที่ไม่เกี่ยวกัน
ต่อให้ตั้ง Google เป็นภาษาสเปน YouTube ก็ยังแปลทุกอย่างเป็นภาษาอังกฤษอัตโนมัติ ฉันอยากดูคอนเทนต์ต้นฉบับเพื่อฝึกภาษาสเปน แต่ YouTube กลับทำให้ยากขึ้น
ฟีเจอร์ที่ YouTube แปลชื่อวิดีโอเป็นภาษาที่ฉันตั้งค่าไว้โดยอัตโนมัติน่าหงุดหงิดมาก ฉันเข้าใจภาษาอังกฤษอยู่แล้ว จึงไม่จำเป็นต้องให้แปล
ถ้าฉันอ่านภาษาในข้อความนั้นไม่ออก วิดีโอนั้นก็คงไม่ได้ทำมาเพื่อฉันตั้งแต่แรก วิดีโอที่ทำสำหรับผู้ชมสากลส่วนใหญ่ก็มักมีเป็นภาษาอังกฤษอยู่แล้ว ดังนั้นถ้าผู้สร้างต้นฉบับอยากแปล เขาก็น่าจะทำไว้เอง และชื่อวิดีโอก็มีบริบทน้อยเกินกว่าจะถูกแปลได้ถูกต้อง ก่อนหน้านี้ฉันเคยเจอวิดีโอภาษาโปรตุเกสชื่อ "Vamos assistir uma conexão com o passado" ที่จริงแล้วคือ "Let's play A Link to the Past" กว่าจะเดาชื่ออังกฤษได้ก็ต้องเอาไปแปลย้อนอีกที ฟีเจอร์แบบนี้อาจช่วยเรื่องการเข้าถึงได้ แต่ควรมีปุ่มปิดอย่างน้อย
อัลกอริทึมของ YouTube อาจผลักดันให้ใช้ฟีเจอร์แบบนี้ และอาจให้รางวัลด้วยเหตุผลด้านการเข้าถึงคอนเทนต์ แต่ฉันขอชื่ออังกฤษดีกว่าชื่อนอร์เวย์ที่แปลด้วยเครื่องแบบน่าเกลียด จากประสบการณ์ของฉัน ถ้ามีชื่อที่แปลด้วยเครื่องแบบนี้ ฉันก็มักตั้งค่าไม่ให้แนะนำช่องนั้นอีก
คอมพิวเตอร์ของฉันเป็นเครื่องจากเยอรมนีแต่ตั้งค่าเป็นภาษาอังกฤษ ถึงอย่างนั้น YouTube ก็ยังเปิดเสียงแปลด้วยเครื่องให้ฟัง หรือแปลวิดีโอ/โฆษณาภาษาเยอรมันเป็นภาษาอังกฤษแบบประหลาด ๆ หลายครั้งมันแปลกและขัดหูมาก
ปัญหาไม่ได้มีแค่ชื่อ แต่รวมถึงการแปลแทร็กเสียงด้วย เวลายูทูบเบอร์ที่ฉันดูบ่อยมีแทร็กเสียงหลายภาษาที่แฟน ๆ ทำไว้ ฉันต้องคอยสลับกลับไปเป็นภาษาต้นฉบับเองเสมอ การแปลด้วยเครื่องทำให้มุกทางภาษาและนัยทางวัฒนธรรมหลุดหายไปบ่อย บางครั้งถ้าจะเปลี่ยนแทร็กภาษาก็ต้องย้อนวิดีโอไปเริ่มใหม่ และยังมีปัญหาชนกับส่วนขยายเบราว์เซอร์อีก อยากให้มีอินเทอร์เฟซที่เปิดปิดการแปลแบบนี้ได้อย่างอิสระ แทนที่จะตั้งเป็นค่าเริ่มต้น
ตอนนี้แม้แต่ Google, Kagi ฯลฯ ก็แปลผลการค้นหา Reddit ออกมาแล้ว ฉันนึกว่าคำตอบที่หาอยู่เป็นข้อความในภาษาของฉันจริง ๆ แต่ที่แท้เป็นโพสต์ภาษาอังกฤษที่ถูกแปลด้วยเครื่อง
ที่สำคัญที่สุดคือ ไม่ควรตั้งการแปลอัตโนมัติเป็นค่าเริ่มต้นไม่ว่าในกรณีใด แค่แสดงรายชื่อภาษาที่มีการแปลจริงอย่างชัดเจนก็พอ ปุ่มแปลมีอยู่ในเบราว์เซอร์แล้ว ให้ผู้ใช้เลือกใช้เองจะดีกว่า ภาษาอังกฤษไม่ใช่ภาษาแรกหรือภาษาที่สองของฉัน แต่ฉันก็อ่านได้สบาย ฉันไม่อยากเสียเวลาหาปุ่มดูต้นฉบับภาษาอังกฤษท่ามกลางกองข้อความแปลอัตโนมัติ ในโลแคลอื่นปัญหาแบบนี้เจอน้อยกว่า แต่กลับเกิดกับภาษาอังกฤษบ่อยมาก ถ้าจะใช้การแปลด้วยเครื่อง ก็ควรลองใช้งานจริงและตรวจสอบว่าเจตนากับผลลัพธ์ตรงกันหรือไม่
Reddit แสดงเนื้อหาที่แปลอัตโนมัติเป็นภาษาฝรั่งเศส แต่สไตล์การเขียนแบบ Reddit นั้นแทบเป็นไปไม่ได้เลยที่จะถ่ายทอดได้ดีแม้ให้มนุษย์แปล ต่อให้ไม่รู้ภาษาอังกฤษเลย ฉันก็ยังรู้สึกว่าคำแปลอัตโนมัติแบบนี้ไม่มีค่าให้อ่าน ปุ่มดูต้นฉบับหรือสลับภาษาก็หายากแล้วแต่เครื่องหรือแอป แถม Reddit ยังพยายามชวนให้ติดตั้งแอปอยู่เรื่อย ๆ
ช่วงไม่กี่ปีมานี้การแปลด้วยเครื่องดีขึ้นมาก จนบางครั้งแม้แต่เจ้าของภาษายังดูไม่ออกว่าเป็นคำแปล
สำหรับฉัน Google คือสิ่งที่น่าหงุดหงิดที่สุด Google รู้ตัวตนฉัน รู้ว่าฉันกำลังเดินทางหรือไม่ และรู้ภาษาที่ฉันชอบใช้คือภาษาอังกฤษ แต่บางหน้าก็ยังแสดงผลตามภาษาของพื้นที่อยู่ดี ในเมื่อ Google ใช้ข้อมูลของฉันเพื่อติดตามฉันได้ ก็ควรเอามาใช้ปรับปรุงประสบการณ์ผู้ใช้ให้ดีกว่านี้ด้วย
ฉันเป็นผู้ใช้ภาษาคาตาลัน แต่ภาษาสเปนไม่เคยถูกตั้งไว้ในบัญชี Google หรือในภาษาระบบ/เบราว์เซอร์เลย ถึงอย่างนั้นก็ยังถูกบังคับให้เห็นภาษาสเปนตลอด แม้อยู่ในสหรัฐฯ เวลาค้นหาสิ่งที่เกี่ยวกับคาตาลันก็ยังดันวิกิภาษาสเปนขึ้นมาก่อน พฤติกรรมแบบนี้ของเสิร์ชเอนจินแย่มาตลอด มันเป็นปัญหาทั้งกับคนที่ไม่รู้ภาษาสเปนอย่างลูก ๆ ของฉัน และกับพื้นที่ที่ใช้คาตาลันแต่ไม่ได้อยู่ในสเปน โดยเฉพาะ Google Gemini ที่มองคอนเทนต์ภาษาคาตาลันว่าเป็นอันตรายและบล็อกการสนทนา Google เคยใส่ใจเรื่องความหลากหลายมากกว่านี้ แต่ตอนนี้ไม่ใช่แล้ว
ระยะหลัง Google ไม่แปลรีวิวใน Maps เป็นต้น จากภาษาท้องถิ่นเป็นภาษาอังกฤษ แต่แสดงให้เห็นตรง ๆ เหมือนคิดว่าถ้าฉันอยู่ในที่นั้นนานพอ ก็คงรู้ภาษาของประเทศนั้น ทั้งที่หลายครั้งฉันไม่รู้และต้องการภาษาอังกฤษจริง ๆ ผลการค้นหาก็เหมือนกัน การใช้ภาษาท้องถิ่นในกรณีนี้เป็นเพียงเพราะอยากหาข้อมูลในพื้นที่เท่านั้น แต่ Google กลับสะท้อนพฤติกรรมผู้ใช้แบบนี้ได้ไม่ดี
ฉันเคยเถียงเรื่องนี้กับนักพัฒนาของ Google โดยตรง เขาบอกว่าเพราะ Google มีขั้นตอนเรนเดอร์สองรอบ จึงยังใช้ข้อมูลผู้ใช้บนหน้าแรกเพื่อสะท้อนความชอบด้านภาษาไม่ได้ แต่ฉันคิดว่ามันฟังไม่ขึ้น เพราะเฮดเดอร์ Accept-Language ก็ถูกส่งมาตั้งแต่คำขอแรกอยู่แล้ว
Google รู้ว่าฉันอยู่ในสหราชอาณาจักรและใช้ภาษาอังกฤษ แต่พอฉันล็อกอินดูวิดีโอ YouTube ภาษาอังกฤษบนทีวีโรงแรมในสเปน มันกลับแสดงโฆษณาเป็นภาษาสเปน ราวกับ Google รู้ว่าฉันไม่เข้าใจภาษานั้น แต่ก็ยังทำเพื่อเอาใจผู้ลงโฆษณาอยู่ดี
ทุกครั้งที่ใช้เครื่องหรือเบราว์เซอร์ใหม่ Google และบริการของมันจะเริ่มต้นเป็นภาษาฮีบรูเสมอ ฉันเปลี่ยนกลับเป็นภาษาอังกฤษมาตลอด แต่ก็ต้องทำซ้ำทุกครั้ง ทั้งที่ฉันอ่านได้ แต่ภาษาอังกฤษที่ใช้กันทั่วไปสะดวกกว่า
ทุกเบราว์เซอร์สามารถส่งเฮดเดอร์ Accept-Language เพื่อบอกภาษาที่ผู้ใช้ต้องการได้ และถ้าผู้ใช้สนใจก็สามารถแก้ไขเองได้ด้วย แต่ Accept-Language ไม่ได้แก้ได้ทุกอย่าง เพราะผู้ใช้หลายภาษาส่วนใหญ่มักไม่ได้มีลำดับความชอบแบบตายตัว แต่อยู่ที่หัวข้อ เช่น ต่อให้ใช้ภาษาฝรั่งเศสได้คล่อง ก็ไม่ได้หมายความว่าอยากอ่านข่าวภาษาอังกฤษฉบับแปลเป็นฝรั่งเศสเสมอไป เจ้าของเว็บไซต์ไม่จำเป็นต้องฝืนสร้างระบบซับซ้อน แค่มีอินเทอร์เฟซเปลี่ยนภาษาที่ชัดเจนและรวดเร็วก็พอ Wikipedia ทำเรื่องนี้ได้ดี
ที่จริงแล้วสิ่งสำคัญยิ่งกว่า Accept-Language และฟีเจอร์ทำนองนั้น ไม่ใช่การแปลอัตโนมัติแบบครึ่ง ๆ กลาง ๆ แต่คือการมีคำแปลที่สมบูรณ์และมีคุณภาพ สำหรับ UI และคอนเทนต์ของเว็บเอง การดูแลคำแปลอย่างเป็นทางการเป็นเรื่องดี แต่คอนเทนต์ที่ผู้ใช้สร้างขึ้นควรแสดงผ่านปุ่มแปลของเบราว์เซอร์หรือวิธีที่ผู้ใช้เลือกเอง ไม่ใช่แปลอัตโนมัติ แนะนำให้ใช้ Accept-Language เพื่อเลือกภาษาหลักก่อน แล้วมีตัวเลือกสลับภาษาที่ชัดเจนควบคู่กันไป เวอร์ชันภาษาต่าง ๆ ของ Wikipedia นั้นเป็นไซต์แยกกันและมีการเขียนคอนเทนต์ใหม่แยกกันจริง
Accept-Language ยังสามารถกำหนดน้ำหนักตามภาษาได้ด้วย (q value) เว็บไซต์ควรเปิดให้ผู้ใช้ override ภาษาที่เบราว์เซอร์ร้องขอได้ และตัวเบราว์เซอร์เองก็ควรมีตัวเลือกแบบรายเว็บไซต์ เช่น "ค่าเริ่มต้นของเว็บไซต์" "ภาษาของระบบ" หรือ "ขอเป็นภาษาอังกฤษ" ทางที่ดีที่สุดคือให้เว็บไซต์เปิดเผยรายชื่อภาษาที่รองรับอย่างชัดเจนผ่าน
manifest.jsonหรือที่คล้ายกัน แล้วให้ฝั่งไคลเอนต์จัดการเรื่องการเลือกภาษาสมมติฐานที่ว่าผู้ใช้จะตั้ง Accept-Language เป็นภาษาที่ใช้งานสะดวกที่สุดจริง ๆ นั้นค่อนข้างอ่อน เพราะเว็บไซต์ส่วนใหญ่รองรับ Accept-Language ได้ไม่ดีอยู่แล้ว ดังนั้นเวลาไปตั้งค่านี้ ผู้ใช้ส่วนใหญ่ก็คงไม่ได้วางกลยุทธ์อะไรมาก
ฉันเคยทำระบบเลือกภาษาเริ่มต้นด้วย Accept-Language ให้เว็บไซต์ภาครัฐเพื่อรองรับหลายภาษาและการเข้าถึง แต่ PM กลับเมินการตัดสินใจนี้แล้วบังคับล็อกค่าเริ่มต้นเป็น EN (อังกฤษ) อย่างเดียว เจ้าหน้าที่ตรวจสอบด้านการเข้าถึงยืนยันว่าต้องใช้ Accept-Language และพอรู้ว่าของที่ทำไว้ถูกย้อนกลับก็วิจารณ์หนัก สุดท้ายเรื่องไร้สาระแบบนี้ทำให้ฉันได้งานสัญญาต่อเพิ่มอีกหลายสัปดาห์
ฉันเองก็อยากเล่าปัญหาเรื่องภาษาของตัวเองบ้าง ที่บ้านมีคนในครอบครัวที่พูดได้แค่ภาษาญี่ปุ่น บัญชี Apple ของฉันตั้งประเทศเป็น Finland ตอนจะดู The Martian กับครอบครัว กลับเลือกเสียงพากย์ญี่ปุ่นไม่ได้ เพราะมันแสดงเฉพาะแทร็กเสียงที่รองรับในประเทศของบัญชี จะเปลี่ยนประเทศบัญชีก็ทำไม่ได้หากยังมี Apple TV subscription ที่ใช้งานอยู่ สุดท้ายก็เลยดูด้วยกันไม่ได้
เดาว่าน่าจะเป็นปัญหาเรื่องลิขสิทธิ์แยกตามภูมิภาค เพราะเสียงพากย์ภาษานั้นอาจไม่ได้รับสิทธิ์ให้ใช้ใน Finland
Netflix ก็เคยมีปัญหาคล้ายกัน ใน Finland ต้องตั้งค่าภาษาบัญชีเป็นภาษาอังกฤษถึงจะดู Kim's Convenience ได้ ต่อให้จะใช้ซับอังกฤษ ถ้า UI เป็นภาษาฟินแลนด์ก็เข้าไม่ถึงคอนเทนต์นั้นเลย
ฉันเคยพัฒนาระบบที่ใช้ Accept-Language เพื่อให้ผู้ใช้เข้าถึงคำแปลที่ใกล้เคียงที่สุดได้ง่าย เช่น ถ้าไม่มีภาษาโปรตุเกส (Portugal) ก็จะให้ภาษาโปรตุเกสแบบบราซิลโดยอัตโนมัติ ในเชิงเทคนิคมันทำงานดีและทำสนุก แต่ในความเป็นจริง ผู้ใช้ส่วนใหญ่ต้องการแค่ภาษาอังกฤษโดยไม่เกี่ยวกับ Accept-Language และแม้จะมีตัวเลือกเปลี่ยนภาษาอยู่ที่ฟุตเตอร์ แต่มันก็ไม่เด่นพอ สุดท้ายเลยเปลี่ยนมาเป็นการถามผู้ใช้ตรง ๆ และความพึงพอใจก็ดีขึ้นมาก
ที่ว่า "ถามตรง ๆ" หมายถึงทุกครั้งที่เข้ามาในเว็บไซต์โดยยังไม่มีคุกกี้บันทึกไว้ จะมีป๊อปอัปเลือกภาษาขึ้นมาทันทีใช่ไหม? ป๊อปอัปแบบนี้ไม่สม่ำเสมอและน่ารำคาญ ถ้ามีแค่ปุ่ม X ให้ปิดได้ก็นับว่าดีแล้ว จาก 100 ครั้ง 95 ครั้ง แค่ภาษาที่ฉันกดเข้ามาก็เพียงพอแล้ว ถ้าจำเป็นจริง ๆ แค่มีตัวเลือกภาษาไว้ที่มุมขวาบนหรือท้ายหน้าก็สะดวกพอ อย่าใช้ป๊อปอัปหรือโมดัลเลย
ควรใช้ Accept-Language เป็นค่าเริ่มต้น แล้วเปิดทางให้ผู้ใช้เลือกเพิ่มเติมเองได้ ฉันเห็นด้วยกับการเอาไอคอนออกจากดีไซน์สลับภาษา แต่ก็เสียดายถ้าจะเอาหลายภูมิภาคมารวมเป็นภาษาเดียวกัน
ผู้ใช้ส่วนใหญ่ใช้ภาษาเริ่มต้นของ OS ต่อไปตามเดิม ไม่รู้ด้วยซ้ำว่าจะเปลี่ยนยังไง และก็ชินไปแล้ว
เวลาอยู่ต่างประเทศ ปัญหาแบบนี้ชวนปวดหัวจริง ๆ และแม้แต่อยู่ในประเทศตัวเอง เวอร์ชันโลคัลไลซ์ของเอกสารเขียนโปรแกรมก็ยังมีเนื้อหาไม่ตรงกันและคุณภาพแปลต่ำ ตามอุดมคติฉันอยากดูต้นฉบับภาษาอังกฤษ ช่วงหลังผลการค้นหาก็เริ่มเต็มไปด้วยข้อความที่แปลด้วยเครื่องมากขึ้นเรื่อย ๆ Reddit เองก็เพิ่งใช้วิธีนี้เหมือนกัน เวลาที่ฉันจงใจใช้คำค้นที่ไม่ใช่ภาษาอังกฤษ ก็เพราะอยากหาข้อมูลที่เป็นเอกลักษณ์ของภาษานั้นจริง ๆ
ดูเหมือนทีม Reddit จะออกแบบฟีเจอร์โดยตั้งสมมติฐานว่าผู้ใช้เข้าใจแค่ภาษาแม่ของตัวเอง ทั้งที่คนทั่วโลกจำนวนมากเข้าใจได้หลายภาษา จึงไม่จำเป็นต้องทำแบบนั้นเลย
ฉันเคยโมโหกับเอกสาร MongoDB เพราะฟีเจอร์สลับภาษาอัตโนมัติตามภาษาเช่นกัน ในผลการค้นหามันขึ้นเป็นภาษาอังกฤษ แต่พอเปิดหน้ามา JS กลับเปลี่ยนเป็นภาษาโปรตุเกสแบบบราซิลให้ทันที แล้วพอโหลดครบกลับเด้งเป็นภาษาอังกฤษอีกครั้ง ทั้งที่ URL ยังเป็น
/pt-br/อยู่ แถมคุณภาพการแปลก็ดูออกชัดว่าอัตโนมัติ ฉันเป็นผู้ใช้ภาษาโปรตุเกสแบบ Portugal อยู่แล้ว เลยยิ่งรู้สึกติดใจกับความต่างเล็ก ๆ น้อย ๆ แบบนี้