อย่าเดาภาษาของฉัน
(vitonsky.net)- เมื่อเว็บเซอร์วิสกำหนดภาษาที่แสดงผลจาก ข้อมูลตำแหน่ง 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 ความคิดเห็น
ความคิดเห็นบน Hacker News
การไม่ยอมรับ Accept-Language เป็นเรื่องน่าหงุดหงิดจริง ๆ
ที่แย่กว่านั้นคือเว็บไซต์หลายภาษามักจะแปลแม้กระทั่งปุ่มเปลี่ยนภาษาและรายชื่อภาษาให้เป็นภาษาปัจจุบัน ซึ่งเป็นการออกแบบที่โง่และทำลายจุดประสงค์ของมันเอง
Wikipedia ทำเรื่องนี้ได้ถูกต้อง ปุ่มเปลี่ยนภาษาชัดเจนด้วยไอคอนหลายภาษาสากล รายชื่อภาษาก็แสดงชื่อของแต่ละภาษาในภาษานั้นเอง โดยทั่วไปเรียงตามตัวอักษร และดันตัวเลือกที่มีแนวโน้มสูงไว้ด้านบน
ตัวอย่างเช่น หน้า Wikipedia ภาษาอังกฤษจะแสดงภาษาที่แนะนำอย่าง
Deutsch,Français,Nederlandsถ้าสันนิษฐานภาษาเอาเองก็มีแต่ทำให้กันและกันเหนื่อยเปล่า ทำแบบ Wikipedia ก็พอบางที่มีปุ่มปิด แต่หลายที่ไม่มี เลยน่าหงุดหงิดยิ่งกว่าเดิม
中文,Italianoโผล่มาเป็นรายการแนะนำ ส่วนที่เหลือถูกจัดกลุ่มตามภูมิภาคทางภูมิศาสตร์ และก็ไม่ได้เรียงตามตัวอักษรเป็นพิเศษฝั่งยุโรปดูเหมือนจะมีกลุ่มอักษรซีริลลิก แต่
Қазақшаอยู่หลังУкраїнськаซึ่งไม่ถูกต้องนักแม้ตามเกณฑ์ภาษาคาซัค และสำหรับคนที่ไม่รู้จักҚก็อาจคาดไม่ถึงด้วย กลุ่มภาษาจีนก็ดูไม่เหมือนได้เรียงตามลำดับขีด ส่วนภาษาเกาหลีอยู่ถัดลงไปการทำ localize ของ Wikipedia นั้นยอดเยี่ยม แต่นี่เป็นข้อเสริมเล็กน้อยว่า “การเรียงตามตัวอักษร” นั้นกำกวมแค่ไหนเมื่อแสดงชื่อภาษาในภาษาของตัวเอง
เอกสารสนับสนุนของ Google https://support.google.com/youtube/answer/87604 อธิบายปุ่มที่ต้องกดเป็นภาษาอังกฤษ แต่ผมไม่รู้ภาษาอัมฮาริก และตอนนั้นก็ไม่รู้ด้วยซ้ำว่ามันคือภาษาอะไร การแปลบน iPhone ก็จำภาษาของเอธิโอเปียนี้ไม่ได้
ถ้ามีไอคอนหลายภาษาสากลสักอันเดียว ก็หลีกเลี่ยงสถานการณ์ลำบากแบบนี้ได้ง่าย ๆ แล้ว
แต่ถ้าเจอระบบอักษรที่ไม่รู้จักอย่างภาษาเบงกาลี นั่นแหละเป็นปัญหา
ดังนั้นใน เมนูเลือกภาษา ทุกอัน อาจเป็นการดีที่จะใส่ภาษาอังกฤษและภาษาจีนไว้ในรูปแบบที่ไม่ถูก localize เพื่อเป็นทางหนี เพราะผู้ใช้เว็บแทบทุกคนจะพอจำได้มากพอที่จะคลำเมนูไปหาภาษาจริงของตัวเองได้
ผมยังไม่ชอบ “ฟีเจอร์” ของ YouTube ที่ แปลอัตโนมัติ ชื่อวิดีโอเป็นภาษาที่ตั้งไว้ด้วย ผมเข้าใจภาษาอังกฤษได้ จึงไม่ต้องการการแปลอัตโนมัติแบบนี้ และมันน่ารำคาญจริง ๆ
ถ้าผมไม่รู้ภาษานั้น วิดีโอนั้นก็คงมีโอกาสสูงว่าไม่ได้ทำมาสำหรับผม วิดีโอที่เล็งผู้ชมต่างชาติโดยมากจะเป็นภาษาอังกฤษ หรืออย่างน้อยผู้สร้างก็แปลเองไว้แล้ว
ชื่อวิดีโอเป็นประโยคสั้น ๆ จึงมีบริบทไม่พอสำหรับการแปล ผมเคยเห็นชื่อภาษาโปรตุเกสอย่าง
Vamos assistir uma conexão com o passadoซึ่งถ้าแปลตรงตัวคือ “มาดูการเชื่อมต่อกับอดีตกัน” และต้องแปลย้อนกลับในหัวถึงจะรู้ว่าชื่อต้นฉบับคือLet's play A Link to the Pastแหล่งข้อมูลออนไลน์ยังเหมาะสำหรับฝึกภาษาที่สองด้วย อยากให้มันไม่ประเมินความสามารถต่ำเกินไป อย่างน้อยก็ควรให้ได้ลองอ่านข้อความต้นฉบับเอง และถ้าจำเป็นก็ใช้ Google Translate หรือพจนานุกรมได้
ยอมรับว่าฟีเจอร์นี้ช่วยขยายการเข้าถึงคอนเทนต์ออนไลน์ แต่ถ้าทำให้ประสบการณ์แย่ลง อย่างน้อยก็ควรให้ปิดได้
ประมาณ
Lidl is worth it, ja!YouTuber ที่ผมดูบ่อยหลายคนกำลังขยายภาษาโดยใช้แทร็กเสียงแปลที่แฟน ๆ ทำขึ้น และบางครั้งภาษาอังกฤษก็เป็นหนึ่งในนั้น ทุกครั้งที่ดูวิดีโอแบบนั้น มุกเล่นคำหรือความหมายแฝงในภาษาต้นฉบับจะหายไปในการแปล ทำให้ต้องสลับกลับไปภาษาต้นฉบับเองทุกครั้ง
เพราะ YouTube ไม่ชอบ Firefox กับส่วนขยายที่เกี่ยวกับ YouTube วิดีโอมักเริ่มเล่นก่อนที่คอนโทรลทั้งหมดจะโหลดเสร็จ จนหลายครั้งต้องกรอย้อนกลับเพื่อเปลี่ยนแทร็กภาษา
ในคำตอบอื่นมีคนลิงก์ส่วนขยายที่ช่วยเรื่องนี้มาให้ เลยคิดว่าจะลองใช้ดู แต่น่าหงุดหงิดที่ในการตั้งค่าของ YouTube ไม่มีสวิตช์ “ใช้ภาษาต้นฉบับเสมอ” แค่อันเดียว ถ้าต้องการเสียงแปลก็ค่อยเปิดเองได้ และเพราะผมพอใช้ได้หลายภาษา กรณีแบบนั้นจึงพบไม่บ่อยในคอนเทนต์ที่ผมดู
ถ้าเจตนาคือขัดขวาง ad blocker หรือพยายามยัดเยียดโฆษณา ก็ยังพอเข้าใจได้ แต่นี่เป็นแค่ฟีเจอร์ “อำนวยความสะดวก” ที่ทำมาผิด ๆ ถึงอย่างนั้นคงมี PM สักคนได้รับคำชมไปแล้ว
แต่ถ้าเอาชื่อภาษาอังกฤษที่ผมอ่านได้ไปแทนด้วยชื่อภาษานอร์เวย์จากเครื่องแปลที่ดูแย่ จากประสบการณ์แล้วนั่นเป็นสัญญาณว่าช่องนั้นคือ ช่องคุณภาพต่ำที่ไล่ตามอัลกอริทึม ทำให้ผมกด “ไม่แนะนำช่องนี้”
ผมไม่ชอบการออกแบบแบบนี้ เพราะมันมีสมมติฐานแฝงว่า “ทุกคนเข้าใจได้แค่ภาษาเดียว”
ผมอ่านได้สี่ภาษาอย่างสบาย ๆ และโดยทั่วไปชอบต้นฉบับมากกว่าการแปลท้องถิ่นแย่ ๆ ดังนั้นถ้าเดาภาษาที่ชอบจาก IP ก็แทบจะผิดแน่นอน
ผู้ใช้ก็บอกอยู่แล้วว่าตัวเองใช้ภาษาอะไรได้ผ่านการตั้งค่าภาษาในเบราว์เซอร์ ไม่มีเหตุผลที่จะสมมติว่าผู้ใช้ไม่ฉลาดพอจะตั้งค่านั้นให้ถูกต้อง
AI dubbing ของ YouTube ที่เปิดเป็นค่าเริ่มต้นยิ่งแย่กว่าอีก วิดีโอประมาณครึ่งหนึ่งที่ดู ต้องเปิดขึ้นมา กดตั้งค่า ปิด AI dubbing แล้วย้อนกลับไปเริ่มใหม่ตั้งแต่ต้น ใช้เวลาไม่นาน แต่รำคาญสุด ๆ
ผมไม่ชอบที่ชื่อเรื่องถูกแปลมาแสดงด้วย มันแปลกมากที่ดูวิดีโอซึ่งพูดเป็นภาษาอังกฤษ แต่ชื่อเรื่องกลับเป็นอีกภาษา
ผมไม่ได้คล่องภาษาสเปน แต่หนึ่งในวิธีที่ดีในการทำให้คล่องคือ การบริโภคคอนเทนต์ภาษาต้นฉบับ ซึ่ง YouTube กลับทำให้เรื่องนั้นยากขึ้น
สิ่งที่น่าหงุดหงิดที่สุดคือ Google รู้ว่าผมเป็นใคร รู้ว่าผมกำลังเดินทาง และรู้ว่าภาษาที่ผมชอบคือภาษาอังกฤษ แต่ในบางหน้า ก็ยังแสดงภาษาตามตำแหน่งที่อยู่
ในเมื่อผมยอมให้ Google ติดตามตัวเองแล้ว ก็อยากให้เอาไปใช้กับ ประสบการณ์ผู้ใช้ ที่ดีบ้าง ไม่ใช่แค่โฆษณา
ถึงจะอยู่ในสหรัฐฯ Google ก็ยังพยายามให้ผลลัพธ์ภาษาสเปนแม้ในการค้นหาที่เกี่ยวกับภาษาคาตาลัน เช่น มักชอบแสดง Wikipedia ภาษาสเปน พฤติกรรมของเสิร์ชเอนจินขึ้น ๆ ลง ๆ ทุกปี แต่ไม่เคยดีเลย
นี่เป็นปัญหาใหญ่สำหรับลูก ๆ ที่ไม่เข้าใจภาษาสเปน และยังเป็นปัญหาสำหรับพื้นที่ที่ใช้ภาษาคาตาลันแต่ไม่ใช่สเปน รวมถึง Andorra ด้วย
Gemini มักติดป้ายคอนเทนต์ภาษาคาตาลันว่าไม่ปลอดภัยได้ง่าย ๆ และบล็อกไม่ให้คุยต่อ แม้แต่พรอมป์ต์อย่าง “ช่วยสรุปบทความนี้ให้หน่อย” ก็เป็นแบบนั้น แม้ช่วงหลังอาจดีขึ้นแล้วก็ตาม
Google ในอดีตเคยเป็นตัวอย่างของบริษัทยักษ์ใหญ่ที่มีความรับผิดชอบและอ่อนไหวต่อความหลากหลายของโลก ผมยังชื่นชมความพยายามของหลายทีมอยู่ แต่ดูชัดเจนว่าเรื่องนี้ไม่ใช่ลำดับความสำคัญอีกต่อไป
ช่วงหลัง ดูเหมือนจะตัดสินว่าการแปลรีวิวใน Maps จากภาษาท้องถิ่นเป็นภาษาอังกฤษโดยอัตโนมัตินั้นเป็นสิ่งผิด ทั้งที่ภาษาอื่น ๆ ทั้งหมดก็แปลเป็นอังกฤษ แต่กลับสมมติว่าผมคงพูดภาษาท้องถิ่นได้เพราะผมอยู่ในพื้นที่นั้น จึงไม่จำเป็นต้องใช้ภาษาอังกฤษ
ผลการค้นหาก็เหมือนกัน อยู่ที่นั่นมานานแล้วก็ถือว่าต้องอยากได้ Wikipedia ภาษาท้องถิ่นแน่ ๆ ทั้งที่เหตุผลเดียวที่ผมค้นด้วยภาษาท้องถิ่นก็เพราะถ้าจะหาข้อมูลท้องถิ่นก็ต้องค้นด้วยภาษาท้องถิ่น แต่ Google กลับตีความว่าเป็นสัญญาณความชอบ
เรื่องนี้ครอบคลุมกระแสโดยรวมที่ว่า “ซอฟต์แวร์ควรฉลาดพอจะเดาความชอบทั้งหมดได้” ด้วย ทั้งที่ Google ล้มเหลวอย่างสม่ำเสมอแบบนี้ แต่ยังทำต่อไป เหตุผลอื่นนอกจากความหยิ่งผยองผิด ๆ แบบองค์กรก็เข้าใจได้ยาก
เขาบอกว่าเพื่อประสิทธิภาพ การเรนเดอร์คอนเทนต์มีหลายขั้น และตอนสร้างโครงสร้างหน้าหลักยังไม่มีข้อมูลผู้ใช้ แต่แม้ในขั้นนั้น Accept-Language header ก็ควรใช้งานได้ทันทีอยู่ดี ดังนั้นผมว่าเหตุผลนี้ฟังไม่ขึ้น
การเปลี่ยนประเทศไม่ง่าย และต้องยอมทิ้งประเทศเดิมกับแอปของประเทศนั้น ๆ ผมเดินทางไปกลับค่อนข้างบ่อย สุดท้ายเลยต้องซื้อโทรศัพท์เครื่องที่สองและสร้างบัญชีสำหรับประเทศใหม่
มันน่าขำตรงที่ทั้งที่น่าจะรู้ดีว่าผมไม่เข้าใจ แต่ก็ยังทำต่อไปเพราะเรียกเก็บเงินจากผู้ลงโฆษณาได้
หลักการที่สำคัญกว่านั้นมากคือ อย่าแปลคอนเทนต์เป็นภาษาของผู้ใช้โดยอัตโนมัติ
แค่แสดงภาษาที่มีข้อมูลจริงก็พอ ผู้ใช้ฉลาดพอที่จะกดปุ่ม “แปล” ของเบราว์เซอร์ถ้าต้องการ และคุณภาพการแปลนั้นก็มีโอกาสดีกว่าด้วย
ภาษาอังกฤษไม่ใช่ภาษาแม่หรือภาษาที่สองของผม แต่ผมก็เข้าใจดีพอจะใช้ทำงานทุกวันได้ ผมไม่อยากลุยกองขยะจากการแปลอัตโนมัติเพื่อหาปุ่มไปอ่านเวอร์ชันภาษาอังกฤษต้นฉบับ
แปลกที่ปัญหานี้มักเกิดกับภาษาอังกฤษเป็นหลัก เว็บไซต์ภาษาอื่นโดยทั่วไปไม่ค่อยทำแบบนี้ และข้อเท็จจริงนั้นเพียงอย่างเดียวก็น่าจะเป็นสัญญาณเพียงพอแล้วว่านักท่องเว็บต่างชาติไม่ชอบสิ่งนี้
ถ้าจะใช้การแปลด้วยเครื่องบนเว็บไซต์ ควรลองแปลไปกลับในทุกภาษาก่อนเผยแพร่ แปลแล้ว เอาผลลัพธ์ไปวางกลับ แล้วแปลกลับเป็นภาษาต้นฉบับอีกครั้ง ก็จะเห็นคร่าว ๆ ว่าสิ่งที่กำลังจะเผยแพร่คืออะไร ทางที่ดีคืออย่าทำเลย
ต่อให้ไม่รู้ภาษาอังกฤษ ผมก็คิดว่าคอนเทนต์ที่ถูกแปลแบบนั้นไม่น่ามีค่าพอจะอ่าน
ฟีเจอร์เปลี่ยนภาษาหรือแสดงต้นฉบับหายาก และยังต่างกันไปตามว่าเป็นแอป เว็บมือถือ หรือเว็บเดสก์ท็อป
อีกปัญหาหนึ่งคือพยายามยัดเยียดให้ดาวน์โหลดแอปมากเกินไป
สมมติฐานที่ว่า “เบราว์เซอร์ทุกตัวส่งเฮดเดอร์ Accept-Language, บอกภาษาที่ผู้ใช้ต้องการตามการตั้งค่า OS หรือเบราว์เซอร์ และผู้ใช้สามารถเปลี่ยนได้ถ้าต้องการ” ก็พังเหมือนกัน
ก่อนอื่น Accept-Language เป็นรายการที่มีลำดับ แต่คนที่ใช้หลายภาษาในชีวิตประจำวันมักไม่ได้มีลำดับความชอบแบบตายตัว หากแต่มีความชอบแยกตามหัวข้อ
ต่อให้เว็บข่าวภาษาอังกฤษมีฉบับแปลภาษาฝรั่งเศส และแม้จะถนัดภาษาฝรั่งเศสมากกว่า ก็อาจต้องการอ่านฉบับภาษาอังกฤษ
ดังนั้นผู้ใช้จึงระบุภาษาที่ใช้งานได้จริงที่สุดมากกว่าความชอบจริง ๆ เช่น เว็บไซต์ท้องถิ่นที่ไม่ใช่ภาษาอังกฤษมักมีแนวโน้มจะเล่นลูกไม้น้อยกว่าเว็บไซต์นานาชาติภาษาอังกฤษ ดังนั้นถ้าตั้งภาษาเป็นอังกฤษอย่างเดียว เว็บกลุ่มแรกจะถูกบังคับให้แสดงเป็นอังกฤษ และมีผลต่อเว็บอื่น ๆ ส่วนใหญ่ค่อนข้างน้อย
ในกรณีแบบนั้น กลับเป็นประโยชน์เสียอีกถ้าเว็บไซต์ฝรั่งเศสไม่สนใจความชอบทั้งหมดแล้วดันฉบับภาษาฝรั่งเศสเป็นค่าเริ่มต้น
สุดท้ายก็อยากให้ผู้ดูแลเว็บไซต์เลิกทำเหมือนฉลาดเกินไป และจัดอินเทอร์เฟซที่ชัดเจนและรวดเร็วมาก ๆ สำหรับเปลี่ยนไปเวอร์ชันอื่น Wikipedia ทำได้ค่อนข้างดี
ถ้าเป็นเว็บไซต์หลายภาษา ก็ควรเสนอเฉพาะชุดคำแปลที่แปลครบและตรวจสอบแล้วเท่านั้น การแปล UI และเนื้อหาของตัวเองเป็นบางภาษาอาจสมเหตุสมผลสำหรับบริษัท ขึ้นอยู่กับกลุ่มลูกค้าเป้าหมาย แต่ต้องดูแลและซิงก์ทั้งหมดนั้นให้ตรงกัน
เนื้อหาที่ผู้ใช้สร้างไม่ควรถูกแตะต้อง ไม่ควรแปลอัตโนมัติ เว้นแต่จะวางไว้เป็นฟีเจอร์ช่วยเหลือใต้ปุ่มทำนองว่า “ตรวจพบภาษาสเปน คลิกเพื่อดูคำแปลอัตโนมัติเป็นอังกฤษ” และจริง ๆ แล้วปล่อยให้เบราว์เซอร์จัดการจะดีกว่า
ใช้ Accept-Language เพื่อเลือกภาษา แล้วจัดวิธีสลับภาษาเพิ่มเติมก็พอ
จริง ๆ แล้ว Wikipedia ไม่ได้เสนอคำแปลของเนื้อหาเดียวกันในความหมายนั้น แต่ละภาษาเป็นอินสแตนซ์แยกต่างหาก และยกเว้นข้อความ UI ของ MediaWiki แล้ว มันไม่ใช่คำแปลของเอกสารเดียวกัน แต่เป็นเอกสารคนละภาษาอีกชุดหนึ่งที่มีส่วนทับซ้อนกัน ฉบับภาษาดัตช์ของหัวข้อ
Languageไม่ได้อ้างว่าเป็นคำแปลภาษาดัตช์ของบทความเดียวกัน และตั้งใจอยู่คนละซับโดเมนและพาธผมคิดว่าทั้งฝั่งเบราว์เซอร์และเว็บไซต์ยังมีพื้นที่ให้ปรับปรุงอีกมาก
เว็บไซต์ควรให้ผู้ใช้ override ภาษาที่เบราว์เซอร์ร้องขอได้ เบราว์เซอร์ก็ควรให้เลือกเป็นรายเว็บไซต์ได้ เช่น “ค่าเริ่มต้นของเว็บไซต์”, “ร้องขอภาษาหลักของระบบ”, “ร้องขอภาษาอังกฤษ”, “ร้องขอภาษาจีน”, “ร้องขอภาษาสเปน” เป็นต้น
วิธีที่ดีที่สุดคือให้เว็บไซต์เปิดเผยรายการภาษาที่รองรับ เช่น อาจใส่ไว้ใน
manifest.json: https://developer.mozilla.org/en-US/docs/Web/Progressive_web... รูปแบบอาจเป็นอะไรทำนองMap>การเลือกภาษาควรเกิดขึ้นฝั่งไคลเอนต์ ไม่ใช่ฝั่งเซิร์ฟเวอร์
ถ้าต้องการฉบับภาษาอังกฤษแม้เว็บข่าวภาษาอังกฤษจะมีฉบับแปลภาษาฝรั่งเศส ก็แค่ตั้งสองภาษานั้นไว้ที่ลำดับความสำคัญเท่ากัน
เมื่อดูความจริงที่ว่าเว็บไซต์จำนวนมาก หรืออาจแทบทั้งหมด ไม่เคารพเฮดเดอร์ Accept-Language ก็ยากจะเชื่อว่าผู้ใช้กำลังคิดเกมทฤษฎีแบบนั้นอยู่ในหัวตอนเลือกการตั้งค่านี้
เคยรับโปรเจกต์ทำ accessibility และการรองรับหลายภาษาให้เว็บไซต์ที่เกี่ยวข้องกับภาครัฐ
เราใช้ Accept-Language ในการเลือกค่าเริ่มต้นจากภาษาที่รองรับ แต่ PM กลับล้มการตัดสินใจนั้นและบังคับให้ใช้ภาษาอังกฤษเป็นค่าเริ่มต้น
ผู้ตรวจสอบ accessibility ใส่ “การใช้ Accept-Language” เป็นรายการสีแดงในรายงานตรวจสอบ และเมื่อรู้ว่าตอนแรกเคยทำไว้แบบนั้นแล้วถูกย้อนกลับ ก็ตำหนิบริษัทอย่างหนัก
เพราะเรื่องนี้และการตัดสินใจโง่ ๆ ทำนองเดียวกัน ทำให้ต้องทำงานตามสัญญาเพิ่มอีกหลายสัปดาห์
เหมือนเป็นที่ระบายเรื่องบ่นเกี่ยวกับภาษา งั้นก็มีเรื่องไม่พอใจกับ Apple TV ด้วย
มีคนในครอบครัวที่พูดได้แต่ภาษาญี่ปุ่น และบัญชี Apple ของผมเป็นฟินแลนด์ เราพยายามดู
The Martianด้วยกัน แต่แม้จะมีแทร็กเสียงพากย์ภาษาญี่ปุ่นอยู่ชัดเจน ก็เลือกไม่ได้ตัวเลือกที่ไม่เกี่ยวข้องกับประเทศของบัญชีจะไม่ถูกแสดงเลย และถ้าจะเลี่ยงก็ต้องเปลี่ยนบัญชี Apple ทั้งบัญชีไปเป็นประเทศอื่น
แต่ถ้ามีการสมัครสมาชิก Apple TV ที่ยังใช้งานอยู่ ก็เปลี่ยนแบบนั้นไม่ได้ด้วย ผลลัพธ์คือครอบครัวดู Apple TV ด้วยกันไม่ได้
ถ้าจำไม่ผิด มีการตั้งค่าภาษาของบัญชี และถ้าจะดู
Kim's Convenienceต้องตั้งเป็นภาษาอังกฤษ ไม่ต้องใช้ VPN และไม่ต้องอ้างว่าอยู่ประเทศอื่น แต่ถ้าไม่ตั้งภาษาที่ถูกต้องก็จะซ่อนคอนเทนต์แม้ในกรณีที่ดูคอนเทนต์พร้อม UI ภาษาฟินแลนด์และซับไตเติลภาษาอังกฤษก็เป็นแบบนั้น
ตอนอยู่ต่างประเทศนี่ไร้สาระมากจริง ๆ และแม้อยู่ในประเทศของตัวเองก็ยังน่าหงุดหงิดในกรณีที่ เวอร์ชันที่แปล/ปรับให้เข้ากับท้องถิ่นไม่ได้เทียบเท่ากัน เช่น เอกสารโปรแกรมมิง
แม้ในกรณีที่ดีที่สุด ก็มีแนวโน้มว่าจะชอบต้นฉบับภาษาอังกฤษมากกว่า และในความเป็นจริงหลายครั้งเป็นการแปลด้วยเครื่อง ซึ่งแย่กว่านั้นมาก
อีกอย่างที่ช่วงหลังเห็นบ่อยขึ้นและน่าหงุดหงิดสุด ๆ คือผลการค้นหาแสดงเวอร์ชันที่แปลด้วยเครื่องของคอนเทนต์ขึ้นมา ตอนนี้ Reddit ทำแบบนี้แล้ว ซึ่งแย่มากจริง ๆ
หนึ่งในเหตุผลหลักที่ใช้คำค้นที่ไม่ใช่ภาษาอังกฤษก็เพื่อให้ได้ผลลัพธ์ที่ไม่ใช่ภาษาอังกฤษ เช่น เวลาหาข้อมูลในหัวข้อที่ไม่ได้ใช้ได้ทั่วโลก
คนส่วนที่เหลือของโลกเข้าใจได้หลายภาษาเป็นอย่างดี
ยังไม่ได้ลองว่าอิงตำแหน่งหรืออิง 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 ขึ้นมาตลอดคงทำให้มีความสุขกว่านี้มาก
อยากรู้แพตเทิร์นในการนำเสนอตัวเลือก บทความนี้ดีตรงที่ปฏิเสธการใช้ไอคอน แต่ไม่ชอบวิธีที่รวมหลายภูมิภาคให้ลงเอยเป็นภาษาเดียว: https://usersnap.com/blog/design-language-switch/