5 คะแนน โดย GN⁺ 2025-05-20 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • เมื่อเว็บเซอร์วิสกำหนดภาษาที่แสดงผลจาก ข้อมูลตำแหน่ง IP ผู้ใช้ที่ใช้ VPN กำลังเดินทาง อาศัยอยู่ต่างประเทศ หรืออยู่ในประเทศพหุภาษา อาจเห็นภาษาที่ตนไม่ต้องการ
  • ประเทศกับภาษาไม่ได้มีความสัมพันธ์แบบ 1:1 โดย Belgium มี 3 ภาษา Switzerland มี 4 ภาษา India มีภาษาราชการ 22 ภาษา และ Canada เป็นประเทศที่มีภาษาราชการสองภาษา
  • เบราว์เซอร์จะส่งเฮดเดอร์ Accept-Language โดยอิงจากการตั้งค่าของ OS หรือเบราว์เซอร์ เช่น Accept-Language: en-US,en;q=0.9,de;q=0.8
  • วิธีที่ดีกว่าคือให้ความสำคัญกับ Accept-Language ก่อน และจดจำภาษาที่ผู้ใช้เปลี่ยนเองไว้ด้วย คุกกี้หรือพารามิเตอร์ URL
  • ควรใช้ GeoIP กับงานที่ต้องอาศัยตำแหน่งจริง เช่น สกุลเงิน การจัดส่ง หรือข้อกำหนดทางกฎหมาย และ ไม่ควรใช้เลือกภาษา เพื่อลดการบิดเบือนความต้องการของผู้ใช้

ข้อมูลตำแหน่ง IP ไม่ได้บอกความต้องการด้านภาษา

  • ที่อยู่ IP บอกได้เพียงว่าคำขอมาจากที่ไหน แต่ไม่ได้บอกว่าผู้ใช้ต้องการหรือเข้าใจภาษาใด
  • ในกรณีของ VPN การเดินทาง การอาศัยอยู่ต่างประเทศ หรือประเทศที่มีหลายภาษาราชการ การเลือกภาษาจาก IP ผิดพลาดได้ง่าย
  • ประเทศกับภาษาไม่ได้สอดคล้องกันอย่างเรียบง่าย
    • Belgium: ภาษาราชการ 3 ภาษา
    • Switzerland: ภาษาราชการ 4 ภาษา
    • India: ภาษาราชการ 22 ภาษา
    • Canada: มีภาษาราชการสองภาษาอย่างเป็นทางการ และในทางปฏิบัติมีสภาพแวดล้อมหลายภาษา
  • ผู้ใช้ VPN อาจเห็นภาษาที่สุ่มเปลี่ยนไปทุกครั้งที่ IP เปลี่ยน และมีกรณีที่เข้า Google แล้วเจอภาษาที่ตนอ่านไม่ออก
  • หากให้ฐานข้อมูล IP ที่คลาดเคลื่อนมีความสำคัญมากกว่าข้อมูลภาษาจากเบราว์เซอร์ ผู้ใช้ก็จะได้รับ ภาษา UI ที่ตนไม่ต้องการ

ควรให้ความสำคัญกับ Accept-Language ของเบราว์เซอร์ก่อน

  • ทุกเบราว์เซอร์จะส่งเฮดเดอร์ Accept-Language ที่บอกภาษาที่ผู้ใช้ต้องการ
  • ค่านี้อิงจากการตั้งค่าของ OS หรือเบราว์เซอร์ ไม่ใช่ตำแหน่งหรือ IP
  • ตัวอย่าง:
    • Accept-Language: en-US,en;q=0.9,de;q=0.8
  • ลำดับการทำงานที่สมเหตุสมผลนั้นเรียบง่าย
    • อ่านค่า Accept-Language
    • เคารพค่านั้น
    • เปิดให้ผู้ใช้เปลี่ยนภาษาเองได้เมื่อจำเป็น
    • จดจำตัวเลือกที่เปลี่ยนไว้ด้วยคุกกี้หรือพารามิเตอร์ URL
  • ต่อให้จำเป็นต้องใช้ GeoIP ก็ควรจำกัดการใช้งานไว้กับเรื่องอย่างสกุลเงิน การจัดส่ง หรือข้อกำหนดทางกฎหมาย ไม่ใช่เรื่องภาษา

1 ความคิดเห็น

 
GN⁺ 2025-05-20
ความคิดเห็นบน Hacker News
  • การไม่ยอมรับ Accept-Language เป็นเรื่องน่าหงุดหงิดจริง ๆ
    ที่แย่กว่านั้นคือเว็บไซต์หลายภาษามักจะแปลแม้กระทั่งปุ่มเปลี่ยนภาษาและรายชื่อภาษาให้เป็นภาษาปัจจุบัน ซึ่งเป็นการออกแบบที่โง่และทำลายจุดประสงค์ของมันเอง
    Wikipedia ทำเรื่องนี้ได้ถูกต้อง ปุ่มเปลี่ยนภาษาชัดเจนด้วยไอคอนหลายภาษาสากล รายชื่อภาษาก็แสดงชื่อของแต่ละภาษาในภาษานั้นเอง โดยทั่วไปเรียงตามตัวอักษร และดันตัวเลือกที่มีแนวโน้มสูงไว้ด้านบน
    ตัวอย่างเช่น หน้า Wikipedia ภาษาอังกฤษจะแสดงภาษาที่แนะนำอย่าง Deutsch, Français, Nederlands ถ้าสันนิษฐานภาษาเอาเองก็มีแต่ทำให้กันและกันเหนื่อยเปล่า ทำแบบ Wikipedia ก็พอ

    • การเข้าหน้าที่ต้องการจากเสิร์ชเอนจินแล้วมี โมดัลเลือกประเทศ เด้งขึ้นมา และทันทีที่เลือกประเทศก็ส่งไปหน้าแรกของเว็บประจำภูมิภาคนั้น ก็ทำให้เดือดได้เหมือนกัน
      บางที่มีปุ่มปิด แต่หลายที่ไม่มี เลยน่าหงุดหงิดยิ่งกว่าเดิม
    • จะเรียกว่า “เรียงตามตัวอักษร” ก็ออกจะกำกวมอยู่ วันนี้ดูรายชื่อภาษาจากบทความเด่นภาษาอังกฤษ เห็น 中文, Italiano โผล่มาเป็นรายการแนะนำ ส่วนที่เหลือถูกจัดกลุ่มตามภูมิภาคทางภูมิศาสตร์ และก็ไม่ได้เรียงตามตัวอักษรเป็นพิเศษ
      ฝั่งยุโรปดูเหมือนจะมีกลุ่มอักษรซีริลลิก แต่ Қазақша อยู่หลัง Українська ซึ่งไม่ถูกต้องนักแม้ตามเกณฑ์ภาษาคาซัค และสำหรับคนที่ไม่รู้จัก Қ ก็อาจคาดไม่ถึงด้วย กลุ่มภาษาจีนก็ดูไม่เหมือนได้เรียงตามลำดับขีด ส่วนภาษาเกาหลีอยู่ถัดลงไป
      การทำ localize ของ Wikipedia นั้นยอดเยี่ยม แต่นี่เป็นข้อเสริมเล็กน้อยว่า “การเรียงตามตัวอักษร” นั้นกำกวมแค่ไหนเมื่อแสดงชื่อภาษาในภาษาของตัวเอง
    • Wikipedia ยังจำการเลือกครั้งก่อนแล้วดันขึ้นไปด้านบนให้ด้วย นั่นแหละคือ ประสบการณ์ผู้ใช้ ของจริง คือช่วยได้จริงและไม่ทำให้น่ารำคาญ
    • ตัวอย่างแย่แบบสมบูรณ์คือ แอป YouTube บน iPhone เคยจู่ ๆ เปลี่ยนเป็นภาษาอัมฮาริก
      เอกสารสนับสนุนของ Google https://support.google.com/youtube/answer/87604 อธิบายปุ่มที่ต้องกดเป็นภาษาอังกฤษ แต่ผมไม่รู้ภาษาอัมฮาริก และตอนนั้นก็ไม่รู้ด้วยซ้ำว่ามันคือภาษาอะไร การแปลบน iPhone ก็จำภาษาของเอธิโอเปียนี้ไม่ได้
      ถ้ามีไอคอนหลายภาษาสากลสักอันเดียว ก็หลีกเลี่ยงสถานการณ์ลำบากแบบนี้ได้ง่าย ๆ แล้ว
    • ปัญหานี้มีสองระดับ ถ้าเจอภาษาอื่นในยุโรป โดยมากก็พอเดาคำที่เทียบกับ “English” แล้วสลับภาษาได้ จึงไม่ใช่เรื่องใหญ่
      แต่ถ้าเจอระบบอักษรที่ไม่รู้จักอย่างภาษาเบงกาลี นั่นแหละเป็นปัญหา
      ดังนั้นใน เมนูเลือกภาษา ทุกอัน อาจเป็นการดีที่จะใส่ภาษาอังกฤษและภาษาจีนไว้ในรูปแบบที่ไม่ถูก localize เพื่อเป็นทางหนี เพราะผู้ใช้เว็บแทบทุกคนจะพอจำได้มากพอที่จะคลำเมนูไปหาภาษาจริงของตัวเองได้
  • ผมยังไม่ชอบ “ฟีเจอร์” ของ YouTube ที่ แปลอัตโนมัติ ชื่อวิดีโอเป็นภาษาที่ตั้งไว้ด้วย ผมเข้าใจภาษาอังกฤษได้ จึงไม่ต้องการการแปลอัตโนมัติแบบนี้ และมันน่ารำคาญจริง ๆ

    • เรื่องนี้แย่กว่าการแค่ “เข้าใจภาษาอังกฤษ” มาก
      ถ้าผมไม่รู้ภาษานั้น วิดีโอนั้นก็คงมีโอกาสสูงว่าไม่ได้ทำมาสำหรับผม วิดีโอที่เล็งผู้ชมต่างชาติโดยมากจะเป็นภาษาอังกฤษ หรืออย่างน้อยผู้สร้างก็แปลเองไว้แล้ว
      ชื่อวิดีโอเป็นประโยคสั้น ๆ จึงมีบริบทไม่พอสำหรับการแปล ผมเคยเห็นชื่อภาษาโปรตุเกสอย่าง Vamos assistir uma conexão com o passado ซึ่งถ้าแปลตรงตัวคือ “มาดูการเชื่อมต่อกับอดีตกัน” และต้องแปลย้อนกลับในหัวถึงจะรู้ว่าชื่อต้นฉบับคือ Let's play A Link to the Past
      แหล่งข้อมูลออนไลน์ยังเหมาะสำหรับฝึกภาษาที่สองด้วย อยากให้มันไม่ประเมินความสามารถต่ำเกินไป อย่างน้อยก็ควรให้ได้ลองอ่านข้อความต้นฉบับเอง และถ้าจำเป็นก็ใช้ Google Translate หรือพจนานุกรมได้
      ยอมรับว่าฟีเจอร์นี้ช่วยขยายการเข้าถึงคอนเทนต์ออนไลน์ แต่ถ้าทำให้ประสบการณ์แย่ลง อย่างน้อยก็ควรให้ปิดได้
    • เป็นคนเยอรมันแต่ตั้งคอมพิวเตอร์เป็นภาษาอังกฤษไว้ บางครั้ง YouTube แปลวิดีโอหรือโฆษณาภาษาเยอรมันอัตโนมัติ แล้วทำให้ได้ยินข้อความประหลาดมากพร้อม เสียงสังเคราะห์ที่ไม่เป็นธรรมชาติ
      ประมาณ Lidl is worth it, ja!
    • ไม่ใช่แค่ชื่อเรื่อง แต่ แทร็กเสียง ก็เป็นปัญหาด้วย
      YouTuber ที่ผมดูบ่อยหลายคนกำลังขยายภาษาโดยใช้แทร็กเสียงแปลที่แฟน ๆ ทำขึ้น และบางครั้งภาษาอังกฤษก็เป็นหนึ่งในนั้น ทุกครั้งที่ดูวิดีโอแบบนั้น มุกเล่นคำหรือความหมายแฝงในภาษาต้นฉบับจะหายไปในการแปล ทำให้ต้องสลับกลับไปภาษาต้นฉบับเองทุกครั้ง
      เพราะ YouTube ไม่ชอบ Firefox กับส่วนขยายที่เกี่ยวกับ YouTube วิดีโอมักเริ่มเล่นก่อนที่คอนโทรลทั้งหมดจะโหลดเสร็จ จนหลายครั้งต้องกรอย้อนกลับเพื่อเปลี่ยนแทร็กภาษา
      ในคำตอบอื่นมีคนลิงก์ส่วนขยายที่ช่วยเรื่องนี้มาให้ เลยคิดว่าจะลองใช้ดู แต่น่าหงุดหงิดที่ในการตั้งค่าของ YouTube ไม่มีสวิตช์ “ใช้ภาษาต้นฉบับเสมอ” แค่อันเดียว ถ้าต้องการเสียงแปลก็ค่อยเปิดเองได้ และเพราะผมพอใช้ได้หลายภาษา กรณีแบบนั้นจึงพบไม่บ่อยในคอนเทนต์ที่ผมดู
      ถ้าเจตนาคือขัดขวาง ad blocker หรือพยายามยัดเยียดโฆษณา ก็ยังพอเข้าใจได้ แต่นี่เป็นแค่ฟีเจอร์ “อำนวยความสะดวก” ที่ทำมาผิด ๆ ถึงอย่างนั้นคงมี PM สักคนได้รับคำชมไปแล้ว
    • ดูเหมือนอัลกอริทึมของ YouTube จะให้รางวัลคนที่ใช้ฟีเจอร์นี้และเพิ่ม “การเข้าถึงคอนเทนต์”
      แต่ถ้าเอาชื่อภาษาอังกฤษที่ผมอ่านได้ไปแทนด้วยชื่อภาษานอร์เวย์จากเครื่องแปลที่ดูแย่ จากประสบการณ์แล้วนั่นเป็นสัญญาณว่าช่องนั้นคือ ช่องคุณภาพต่ำที่ไล่ตามอัลกอริทึม ทำให้ผมกด “ไม่แนะนำช่องนี้”
    • ตอนนี้ผลลัพธ์ Reddit ของ Google และ Kagi ก็ถูกแปลออกมาแล้วด้วย จนเกิดกรณีที่คิดว่าเจอคำตอบที่เกี่ยวข้องในภาษาของตัวเอง แต่จริง ๆ แล้วเป็น คำแปลด้วยเครื่อง ของโพสต์ภาษาอังกฤษ
  • ผมไม่ชอบการออกแบบแบบนี้ เพราะมันมีสมมติฐานแฝงว่า “ทุกคนเข้าใจได้แค่ภาษาเดียว”
    ผมอ่านได้สี่ภาษาอย่างสบาย ๆ และโดยทั่วไปชอบต้นฉบับมากกว่าการแปลท้องถิ่นแย่ ๆ ดังนั้นถ้าเดาภาษาที่ชอบจาก IP ก็แทบจะผิดแน่นอน
    ผู้ใช้ก็บอกอยู่แล้วว่าตัวเองใช้ภาษาอะไรได้ผ่านการตั้งค่าภาษาในเบราว์เซอร์ ไม่มีเหตุผลที่จะสมมติว่าผู้ใช้ไม่ฉลาดพอจะตั้งค่านั้นให้ถูกต้อง
    AI dubbing ของ YouTube ที่เปิดเป็นค่าเริ่มต้นยิ่งแย่กว่าอีก วิดีโอประมาณครึ่งหนึ่งที่ดู ต้องเปิดขึ้นมา กดตั้งค่า ปิด AI dubbing แล้วย้อนกลับไปเริ่มใหม่ตั้งแต่ต้น ใช้เวลาไม่นาน แต่รำคาญสุด ๆ

    • AI dubbing ของ YouTube แย่มากจริง ๆ ผมใช้เวลา 5 นาทีถึงรู้ว่าเสียงที่ได้ยินไม่ใช่โฆษณาแปลก ๆ จากแท็บอื่น แต่เป็นเสียงจากวิดีโอนั้นเอง
      ผมไม่ชอบที่ชื่อเรื่องถูกแปลมาแสดงด้วย มันแปลกมากที่ดูวิดีโอซึ่งพูดเป็นภาษาอังกฤษ แต่ชื่อเรื่องกลับเป็นอีกภาษา
    • ทั้งที่ตั้งค่าใน Google ให้ภาษาสเปนเป็นหนึ่งในภาษาที่รู้แล้ว แต่ก็ยังแปลทุกอย่างเป็นภาษาอังกฤษให้อัตโนมัติ
      ผมไม่ได้คล่องภาษาสเปน แต่หนึ่งในวิธีที่ดีในการทำให้คล่องคือ การบริโภคคอนเทนต์ภาษาต้นฉบับ ซึ่ง YouTube กลับทำให้เรื่องนั้นยากขึ้น
  • สิ่งที่น่าหงุดหงิดที่สุดคือ Google รู้ว่าผมเป็นใคร รู้ว่าผมกำลังเดินทาง และรู้ว่าภาษาที่ผมชอบคือภาษาอังกฤษ แต่ในบางหน้า ก็ยังแสดงภาษาตามตำแหน่งที่อยู่
    ในเมื่อผมยอมให้ Google ติดตามตัวเองแล้ว ก็อยากให้เอาไปใช้กับ ประสบการณ์ผู้ใช้ ที่ดีบ้าง ไม่ใช่แค่โฆษณา

    • ผู้ใช้ภาษาคาตาลันถูกบังคับให้ได้ ภาษาสเปน แม้จะไม่มีภาษาสเปนผูกอยู่กับบัญชี Google ภาษาระบบ หรือภาษาของเบราว์เซอร์เลยก็ตาม
      ถึงจะอยู่ในสหรัฐฯ Google ก็ยังพยายามให้ผลลัพธ์ภาษาสเปนแม้ในการค้นหาที่เกี่ยวกับภาษาคาตาลัน เช่น มักชอบแสดง Wikipedia ภาษาสเปน พฤติกรรมของเสิร์ชเอนจินขึ้น ๆ ลง ๆ ทุกปี แต่ไม่เคยดีเลย
      นี่เป็นปัญหาใหญ่สำหรับลูก ๆ ที่ไม่เข้าใจภาษาสเปน และยังเป็นปัญหาสำหรับพื้นที่ที่ใช้ภาษาคาตาลันแต่ไม่ใช่สเปน รวมถึง Andorra ด้วย
      Gemini มักติดป้ายคอนเทนต์ภาษาคาตาลันว่าไม่ปลอดภัยได้ง่าย ๆ และบล็อกไม่ให้คุยต่อ แม้แต่พรอมป์ต์อย่าง “ช่วยสรุปบทความนี้ให้หน่อย” ก็เป็นแบบนั้น แม้ช่วงหลังอาจดีขึ้นแล้วก็ตาม
      Google ในอดีตเคยเป็นตัวอย่างของบริษัทยักษ์ใหญ่ที่มีความรับผิดชอบและอ่อนไหวต่อความหลากหลายของโลก ผมยังชื่นชมความพยายามของหลายทีมอยู่ แต่ดูชัดเจนว่าเรื่องนี้ไม่ใช่ลำดับความสำคัญอีกต่อไป
    • Google แย่ที่สุดในเรื่องนี้อย่างน่าประหลาด
      ช่วงหลัง ดูเหมือนจะตัดสินว่าการแปลรีวิวใน Maps จากภาษาท้องถิ่นเป็นภาษาอังกฤษโดยอัตโนมัตินั้นเป็นสิ่งผิด ทั้งที่ภาษาอื่น ๆ ทั้งหมดก็แปลเป็นอังกฤษ แต่กลับสมมติว่าผมคงพูดภาษาท้องถิ่นได้เพราะผมอยู่ในพื้นที่นั้น จึงไม่จำเป็นต้องใช้ภาษาอังกฤษ
      ผลการค้นหาก็เหมือนกัน อยู่ที่นั่นมานานแล้วก็ถือว่าต้องอยากได้ Wikipedia ภาษาท้องถิ่นแน่ ๆ ทั้งที่เหตุผลเดียวที่ผมค้นด้วยภาษาท้องถิ่นก็เพราะถ้าจะหาข้อมูลท้องถิ่นก็ต้องค้นด้วยภาษาท้องถิ่น แต่ Google กลับตีความว่าเป็นสัญญาณความชอบ
      เรื่องนี้ครอบคลุมกระแสโดยรวมที่ว่า “ซอฟต์แวร์ควรฉลาดพอจะเดาความชอบทั้งหมดได้” ด้วย ทั้งที่ Google ล้มเหลวอย่างสม่ำเสมอแบบนี้ แต่ยังทำต่อไป เหตุผลอื่นนอกจากความหยิ่งผยองผิด ๆ แบบองค์กรก็เข้าใจได้ยาก
    • เคยเถียงกับนักพัฒนา Google เรื่องนี้
      เขาบอกว่าเพื่อประสิทธิภาพ การเรนเดอร์คอนเทนต์มีหลายขั้น และตอนสร้างโครงสร้างหน้าหลักยังไม่มีข้อมูลผู้ใช้ แต่แม้ในขั้นนั้น Accept-Language header ก็ควรใช้งานได้ทันทีอยู่ดี ดังนั้นผมว่าเหตุผลนี้ฟังไม่ขึ้น
    • ประสบการณ์ที่แย่ที่สุดคือเมื่อไปถึงประเทศใหม่ แต่ Play Store ไม่แสดงแอปท้องถิ่น เพราะบัญชี Google ยังผูกกับประเทศเดิม
      การเปลี่ยนประเทศไม่ง่าย และต้องยอมทิ้งประเทศเดิมกับแอปของประเทศนั้น ๆ ผมเดินทางไปกลับค่อนข้างบ่อย สุดท้ายเลยต้องซื้อโทรศัพท์เครื่องที่สองและสร้างบัญชีสำหรับประเทศใหม่
    • ทั้งที่ Google รู้ว่าผมอยู่ในสหราชอาณาจักรและใช้ภาษาอังกฤษ แต่พอล็อกอินเข้าทีวีในห้องโรงแรมที่สเปนเพื่อดูวิดีโอ YouTube ภาษาอังกฤษ ก็ยังแสดง โฆษณาภาษาสเปน
      มันน่าขำตรงที่ทั้งที่น่าจะรู้ดีว่าผมไม่เข้าใจ แต่ก็ยังทำต่อไปเพราะเรียกเก็บเงินจากผู้ลงโฆษณาได้
  • หลักการที่สำคัญกว่านั้นมากคือ อย่าแปลคอนเทนต์เป็นภาษาของผู้ใช้โดยอัตโนมัติ
    แค่แสดงภาษาที่มีข้อมูลจริงก็พอ ผู้ใช้ฉลาดพอที่จะกดปุ่ม “แปล” ของเบราว์เซอร์ถ้าต้องการ และคุณภาพการแปลนั้นก็มีโอกาสดีกว่าด้วย
    ภาษาอังกฤษไม่ใช่ภาษาแม่หรือภาษาที่สองของผม แต่ผมก็เข้าใจดีพอจะใช้ทำงานทุกวันได้ ผมไม่อยากลุยกองขยะจากการแปลอัตโนมัติเพื่อหาปุ่มไปอ่านเวอร์ชันภาษาอังกฤษต้นฉบับ
    แปลกที่ปัญหานี้มักเกิดกับภาษาอังกฤษเป็นหลัก เว็บไซต์ภาษาอื่นโดยทั่วไปไม่ค่อยทำแบบนี้ และข้อเท็จจริงนั้นเพียงอย่างเดียวก็น่าจะเป็นสัญญาณเพียงพอแล้วว่านักท่องเว็บต่างชาติไม่ชอบสิ่งนี้
    ถ้าจะใช้การแปลด้วยเครื่องบนเว็บไซต์ ควรลองแปลไปกลับในทุกภาษาก่อนเผยแพร่ แปลแล้ว เอาผลลัพธ์ไปวางกลับ แล้วแปลกลับเป็นภาษาต้นฉบับอีกครั้ง ก็จะเห็นคร่าว ๆ ว่าสิ่งที่กำลังจะเผยแพร่คืออะไร ทางที่ดีคืออย่าทำเลย

    • ผมไม่ชอบที่ Reddit แปลอัตโนมัติเป็นภาษาฝรั่งเศส สำนวนเฉพาะตัวของผู้ใช้น่าจะแปลโดยมนุษย์ให้ดีได้ยากหรือเป็นไปไม่ได้อยู่แล้ว แต่นี่กลับแปลอัตโนมัติไปเลย
      ต่อให้ไม่รู้ภาษาอังกฤษ ผมก็คิดว่าคอนเทนต์ที่ถูกแปลแบบนั้นไม่น่ามีค่าพอจะอ่าน
      ฟีเจอร์เปลี่ยนภาษาหรือแสดงต้นฉบับหายาก และยังต่างกันไปตามว่าเป็นแอป เว็บมือถือ หรือเว็บเดสก์ท็อป
      อีกปัญหาหนึ่งคือพยายามยัดเยียดให้ดาวน์โหลดแอปมากเกินไป
    • การแปลด้วยเครื่อง ดีพอมาหลายปีแล้วจนเจ้าของภาษายังจับไม่ได้
  • สมมติฐานที่ว่า “เบราว์เซอร์ทุกตัวส่งเฮดเดอร์ Accept-Language, บอกภาษาที่ผู้ใช้ต้องการตามการตั้งค่า OS หรือเบราว์เซอร์ และผู้ใช้สามารถเปลี่ยนได้ถ้าต้องการ” ก็พังเหมือนกัน
    ก่อนอื่น Accept-Language เป็นรายการที่มีลำดับ แต่คนที่ใช้หลายภาษาในชีวิตประจำวันมักไม่ได้มีลำดับความชอบแบบตายตัว หากแต่มีความชอบแยกตามหัวข้อ
    ต่อให้เว็บข่าวภาษาอังกฤษมีฉบับแปลภาษาฝรั่งเศส และแม้จะถนัดภาษาฝรั่งเศสมากกว่า ก็อาจต้องการอ่านฉบับภาษาอังกฤษ
    ดังนั้นผู้ใช้จึงระบุภาษาที่ใช้งานได้จริงที่สุดมากกว่าความชอบจริง ๆ เช่น เว็บไซต์ท้องถิ่นที่ไม่ใช่ภาษาอังกฤษมักมีแนวโน้มจะเล่นลูกไม้น้อยกว่าเว็บไซต์นานาชาติภาษาอังกฤษ ดังนั้นถ้าตั้งภาษาเป็นอังกฤษอย่างเดียว เว็บกลุ่มแรกจะถูกบังคับให้แสดงเป็นอังกฤษ และมีผลต่อเว็บอื่น ๆ ส่วนใหญ่ค่อนข้างน้อย
    ในกรณีแบบนั้น กลับเป็นประโยชน์เสียอีกถ้าเว็บไซต์ฝรั่งเศสไม่สนใจความชอบทั้งหมดแล้วดันฉบับภาษาฝรั่งเศสเป็นค่าเริ่มต้น
    สุดท้ายก็อยากให้ผู้ดูแลเว็บไซต์เลิกทำเหมือนฉลาดเกินไป และจัดอินเทอร์เฟซที่ชัดเจนและรวดเร็วมาก ๆ สำหรับเปลี่ยนไปเวอร์ชันอื่น Wikipedia ทำได้ค่อนข้างดี

    • ทางแก้ไม่ใช่การทิ้ง เฮดเดอร์ Accept-Language ที่มีประโยชน์ แต่คือการไม่เสนอคำแปลที่ทำมาแบบครึ่ง ๆ กลาง ๆ
      ถ้าเป็นเว็บไซต์หลายภาษา ก็ควรเสนอเฉพาะชุดคำแปลที่แปลครบและตรวจสอบแล้วเท่านั้น การแปล UI และเนื้อหาของตัวเองเป็นบางภาษาอาจสมเหตุสมผลสำหรับบริษัท ขึ้นอยู่กับกลุ่มลูกค้าเป้าหมาย แต่ต้องดูแลและซิงก์ทั้งหมดนั้นให้ตรงกัน
      เนื้อหาที่ผู้ใช้สร้างไม่ควรถูกแตะต้อง ไม่ควรแปลอัตโนมัติ เว้นแต่จะวางไว้เป็นฟีเจอร์ช่วยเหลือใต้ปุ่มทำนองว่า “ตรวจพบภาษาสเปน คลิกเพื่อดูคำแปลอัตโนมัติเป็นอังกฤษ” และจริง ๆ แล้วปล่อยให้เบราว์เซอร์จัดการจะดีกว่า
      ใช้ Accept-Language เพื่อเลือกภาษา แล้วจัดวิธีสลับภาษาเพิ่มเติมก็พอ
      จริง ๆ แล้ว Wikipedia ไม่ได้เสนอคำแปลของเนื้อหาเดียวกันในความหมายนั้น แต่ละภาษาเป็นอินสแตนซ์แยกต่างหาก และยกเว้นข้อความ UI ของ MediaWiki แล้ว มันไม่ใช่คำแปลของเอกสารเดียวกัน แต่เป็นเอกสารคนละภาษาอีกชุดหนึ่งที่มีส่วนทับซ้อนกัน ฉบับภาษาดัตช์ของหัวข้อ Language ไม่ได้อ้างว่าเป็นคำแปลภาษาดัตช์ของบทความเดียวกัน และตั้งใจอยู่คนละซับโดเมนและพาธ
    • ในทางเทคนิค Accept-Language สามารถกำหนด “ค่าคุณภาพ” หรือน้ำหนักให้แต่ละภาษาได้: https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/...
      ผมคิดว่าทั้งฝั่งเบราว์เซอร์และเว็บไซต์ยังมีพื้นที่ให้ปรับปรุงอีกมาก
      เว็บไซต์ควรให้ผู้ใช้ override ภาษาที่เบราว์เซอร์ร้องขอได้ เบราว์เซอร์ก็ควรให้เลือกเป็นรายเว็บไซต์ได้ เช่น “ค่าเริ่มต้นของเว็บไซต์”, “ร้องขอภาษาหลักของระบบ”, “ร้องขอภาษาอังกฤษ”, “ร้องขอภาษาจีน”, “ร้องขอภาษาสเปน” เป็นต้น
      วิธีที่ดีที่สุดคือให้เว็บไซต์เปิดเผยรายการภาษาที่รองรับ เช่น อาจใส่ไว้ใน manifest.json: https://developer.mozilla.org/en-US/docs/Web/Progressive_web... รูปแบบอาจเป็นอะไรทำนอง Map>
      การเลือกภาษาควรเกิดขึ้นฝั่งไคลเอนต์ ไม่ใช่ฝั่งเซิร์ฟเวอร์
    • Accept-Language ไม่ใช่รายการลำดับ แต่เป็น รายการลำดับบางส่วน
      ถ้าต้องการฉบับภาษาอังกฤษแม้เว็บข่าวภาษาอังกฤษจะมีฉบับแปลภาษาฝรั่งเศส ก็แค่ตั้งสองภาษานั้นไว้ที่ลำดับความสำคัญเท่ากัน
    • ไม่รู้ว่าสมมติฐานที่ว่าผู้ใช้ระบุภาษาที่ใช้งานได้จริงที่สุด ไม่ใช่ความชอบจริง ๆ มาจากไหน
      เมื่อดูความจริงที่ว่าเว็บไซต์จำนวนมาก หรืออาจแทบทั้งหมด ไม่เคารพเฮดเดอร์ Accept-Language ก็ยากจะเชื่อว่าผู้ใช้กำลังคิดเกมทฤษฎีแบบนั้นอยู่ในหัวตอนเลือกการตั้งค่านี้
  • เคยรับโปรเจกต์ทำ accessibility และการรองรับหลายภาษาให้เว็บไซต์ที่เกี่ยวข้องกับภาครัฐ
    เราใช้ Accept-Language ในการเลือกค่าเริ่มต้นจากภาษาที่รองรับ แต่ PM กลับล้มการตัดสินใจนั้นและบังคับให้ใช้ภาษาอังกฤษเป็นค่าเริ่มต้น
    ผู้ตรวจสอบ accessibility ใส่ “การใช้ Accept-Language” เป็นรายการสีแดงในรายงานตรวจสอบ และเมื่อรู้ว่าตอนแรกเคยทำไว้แบบนั้นแล้วถูกย้อนกลับ ก็ตำหนิบริษัทอย่างหนัก
    เพราะเรื่องนี้และการตัดสินใจโง่ ๆ ทำนองเดียวกัน ทำให้ต้องทำงานตามสัญญาเพิ่มอีกหลายสัปดาห์

  • เหมือนเป็นที่ระบายเรื่องบ่นเกี่ยวกับภาษา งั้นก็มีเรื่องไม่พอใจกับ Apple TV ด้วย
    มีคนในครอบครัวที่พูดได้แต่ภาษาญี่ปุ่น และบัญชี Apple ของผมเป็นฟินแลนด์ เราพยายามดู The Martian ด้วยกัน แต่แม้จะมีแทร็กเสียงพากย์ภาษาญี่ปุ่นอยู่ชัดเจน ก็เลือกไม่ได้
    ตัวเลือกที่ไม่เกี่ยวข้องกับประเทศของบัญชีจะไม่ถูกแสดงเลย และถ้าจะเลี่ยงก็ต้องเปลี่ยนบัญชี Apple ทั้งบัญชีไปเป็นประเทศอื่น
    แต่ถ้ามีการสมัครสมาชิก Apple TV ที่ยังใช้งานอยู่ ก็เปลี่ยนแบบนั้นไม่ได้ด้วย ผลลัพธ์คือครอบครัวดู Apple TV ด้วยกันไม่ได้

    • น่าจะเป็น ปัญหาลิขสิทธิ์การใช้งาน ญี่ปุ่นพากย์อาจไม่ได้รับอนุญาตให้เล่นในฟินแลนด์ ในกรณีนี้ ความโง่ก็เป็นเพราะกฎหมายลิขสิทธิ์หรือพวกทนาย
    • Netflix ก็เคยมีเรื่องแปลก ๆ คล้ายกันในฟินแลนด์
      ถ้าจำไม่ผิด มีการตั้งค่าภาษาของบัญชี และถ้าจะดู Kim's Convenience ต้องตั้งเป็นภาษาอังกฤษ ไม่ต้องใช้ VPN และไม่ต้องอ้างว่าอยู่ประเทศอื่น แต่ถ้าไม่ตั้งภาษาที่ถูกต้องก็จะซ่อนคอนเทนต์
      แม้ในกรณีที่ดูคอนเทนต์พร้อม UI ภาษาฟินแลนด์และซับไตเติลภาษาอังกฤษก็เป็นแบบนั้น
  • ตอนอยู่ต่างประเทศนี่ไร้สาระมากจริง ๆ และแม้อยู่ในประเทศของตัวเองก็ยังน่าหงุดหงิดในกรณีที่ เวอร์ชันที่แปล/ปรับให้เข้ากับท้องถิ่นไม่ได้เทียบเท่ากัน เช่น เอกสารโปรแกรมมิง
    แม้ในกรณีที่ดีที่สุด ก็มีแนวโน้มว่าจะชอบต้นฉบับภาษาอังกฤษมากกว่า และในความเป็นจริงหลายครั้งเป็นการแปลด้วยเครื่อง ซึ่งแย่กว่านั้นมาก
    อีกอย่างที่ช่วงหลังเห็นบ่อยขึ้นและน่าหงุดหงิดสุด ๆ คือผลการค้นหาแสดงเวอร์ชันที่แปลด้วยเครื่องของคอนเทนต์ขึ้นมา ตอนนี้ Reddit ทำแบบนี้แล้ว ซึ่งแย่มากจริง ๆ
    หนึ่งในเหตุผลหลักที่ใช้คำค้นที่ไม่ใช่ภาษาอังกฤษก็เพื่อให้ได้ผลลัพธ์ที่ไม่ใช่ภาษาอังกฤษ เช่น เวลาหาข้อมูลในหัวข้อที่ไม่ได้ใช้ได้ทั่วโลก

    • เหมือนได้ยินทีมผลิตภัณฑ์ของ Reddit ตอนทำฟีเจอร์นี้สมมติว่าตัวเองเป็นผู้ใช้ภาษาเดียว แล้วฮัมเพลงชาติสหรัฐฯ ไปด้วย
      คนส่วนที่เหลือของโลกเข้าใจได้หลายภาษาเป็นอย่างดี
    • ช่วงหลังค่อนข้างหงุดหงิดหนักกับ เอกสาร Mongo
      ยังไม่ได้ลองว่าอิงตำแหน่งหรืออิง Accept-Language แต่พฤติกรรมมันชวนโมโหมากจริง ๆ
      พอค้นเว็บจะเจอผลลัพธ์เวอร์ชันภาษาอังกฤษ เปิดเข้าไปแล้วทันทีที่ JavaScript โหลด มันเปลี่ยนเป็น PT-BR จากนั้นอีกไม่กี่วินาทีเมื่อหน้าโหลดเสร็จสมบูรณ์ มันก็กลับเป็นภาษาอังกฤษอีกครั้ง แต่ทิ้ง slug /pt-br/ ไว้ใน URL
      ชัดเจนมากว่าคำแปลไม่ได้ทำหรือรีวิวโดยมนุษย์ แถมฉันเป็นผู้ใช้ PT-PT ความต่างจาก PT-BR เลยยิ่งทำให้หงุดหงิดกว่าเดิม
  • เคยทำระบบเล็ก ๆ ที่ parse Accept-Language แล้วให้น้ำหนักตามลำดับความสำคัญของผู้ใช้ จากนั้นเลือกภาษาที่ใกล้กับความต้องการของผู้ใช้ที่สุดในบรรดาภาษาที่เรามีให้
    เช่น มีคำแปลภาษาโปรตุเกสแบบบราซิล แต่ไม่มีภาษาโปรตุเกสแบบโปรตุเกส จึงให้ผู้ใช้ที่ขอแบบหลังใช้แบบแรกแทน แต่ถ้ามีภาษาที่ตรงเป๊ะในลำดับความสำคัญที่ต่ำกว่า ก็ใช้ภาษานั้นแทน
    ในเชิงเทคนิคมันทำงานได้ดี โค้ดก็สะอาด และทำสนุกด้วย
    แต่จากมุมมองผู้ใช้ คนส่วนใหญ่แค่อยากได้ ภาษาอังกฤษ โดยไม่สนใจเฮดเดอร์ Accept-Language แม้จะเปลี่ยนได้ที่ footer แต่ดูเหมือนจะไม่สะดุดตาพอ
    ตอนนี้เลยแค่ถามผู้ใช้ตรง ๆ และผู้ใช้ก็พอใจกว่าด้วย

    • ถ้า “ถาม” หมายถึงการแสดง กำแพงเลือกภาษา ขึ้นมาก่อนทุกครั้งที่เข้าชมไซต์โดยไม่มีคุกกี้ นั่นเป็นความเจ็บปวดที่เจอบ่อย
      มันยากที่จะรู้ว่าจะอยู่ต่อในหน้าที่คลิกเข้ามาได้อย่างไร ปุ่ม “continue” ทำให้สับสนว่าเป็นการใช้ค่าที่เลือกไว้ล่วงหน้า หรือแค่ปิดป๊อปอัปแล้วแสดงหน้าปัจจุบันต่อ
      ถ้าเป็นอย่างแรก ก็ยังไม่รู้ด้วยว่าค่าที่เลือกไว้ล่วงหน้าเป็นภาษาของหน้าปัจจุบันหรือภาษาอื่น และต้องมาคิดอีกว่าควรให้มันเดา locale ปัจจุบันแล้วเลือก จากนั้นค่อยปิดป๊อปอัปไหม ถึงขั้นคิดว่าจะลบ modal ผ่าน developer tools เพื่อเลี่ยงได้หรือเปล่า ปุ่มปิดเล็ก ๆ สักปุ่มยังกลายเป็นของหรูสำหรับกำแพงภาษาแบบนี้
      95 ครั้งจาก 100 ครั้ง ภาษาที่ฉันคลิกเข้ามานั่นแหละโอเคอยู่แล้ว ถ้าต้องการข้อมูลการจัดส่งตามภูมิภาคหรือวิธีชำระเงินของเวอร์ชันภาษาเยอรมัน ฉันจะไปหาตัวเลือกภาษาที่มุมขวาบนหรือใน footer เอง
      ถ้ามีอยู่แค่หนึ่งในสองที่นั้น เว็บที่ไม่เด้ง JavaScript popup ขึ้นมาตลอดคงทำให้มีความสุขกว่านี้มาก
    • ถึงอย่างนั้นก็ยังอยากให้ค่าเริ่มต้นอิง Accept-Language แต่ประเด็นสำคัญคือ การถามผู้ใช้
      อยากรู้แพตเทิร์นในการนำเสนอตัวเลือก บทความนี้ดีตรงที่ปฏิเสธการใช้ไอคอน แต่ไม่ชอบวิธีที่รวมหลายภูมิภาคให้ลงเอยเป็นภาษาเดียว: https://usersnap.com/blog/design-language-switch/
    • หลายคนน่าจะตั้งค่านี้เป็น ค่าเริ่มต้นของ OS และแค่ชินกับมัน อีกทั้งมีโอกาสสูงว่าจะไม่รู้ด้วยว่าต้องเปลี่ยนอย่างไร