ในอดีต ฉันเขียนโปรเจ็กต์เว็บทดลองเล็กๆ ตอนที่ฉันทำงานที่บริษัทซอฟต์แวร์ต่างประเทศ ส่วนหนึ่งของข้อกำหนดคือการรองรับหลายภาษา (จีนตัวย่อ จีนตัวเต็ม อังกฤษ เกาหลี ญี่ปุ่น) สำหรับผู้ใช้ อินเทอร์เฟซ ในขณะนั้น มีการใช้เทคโนโลยีเทมเพลตเพื่อนำไปใช้ และการตั้งค่าของผู้ใช้จะถูกบันทึกโดยใช้คุกกี้ อย่างไรก็ตาม ผู้ใช้ยังคงต้องเลือกภาษาเมื่อเข้าสู่ระบบเป็นครั้งแรก (หรือหลังจากลบคุกกี้) ) จะสะดวกกว่าสำหรับผู้ใช้หรือไม่? สามารถใช้โปรแกรมช่วยในการเลือกอัตโนมัติได้หรือไม่?
คำตอบคือใช่ ทุกคนใช้ Google หากคุณใช้ระบบภาษาจีนเพื่อเปิดหน้าแรกของ Google หน้าแรกของจีนจะเปิดขึ้นตามธรรมชาติ ไม่ใช่ภาษาอื่น เพราะ Google จะกำหนดภาษาที่ต้องการให้ระบบของผู้ใช้โดยอัตโนมัติ
เราจะทำแบบ Google ได้อย่างไร จริงๆ แล้วมันง่ายมาก
ข้อมูลส่วนหัว HTTP ที่ส่งโดยเบราว์เซอร์ไปยังเว็บเซิร์ฟเวอร์ประกอบด้วยข้อมูลเช่น Accept-Language ข้อมูลนี้เป็นภาษาภายใต้เครื่องมือ -> ตัวเลือกอินเทอร์เน็ต -> ทั่วไปในเบราว์เซอร์ เซิร์ฟเวอร์ซึ่งอาจเป็นรายการจัดลำดับความสำคัญของภาษาที่ยอมรับได้หลายภาษา
ฉันใช้ ASP เป็นตัวอย่างเพื่อแนะนำสั้น ๆ "วิธีการกำหนดภาษาของผู้ใช้โดยอัตโนมัติ":
<%
ฟังก์ชัน RegExpTest(รูปแบบ, strng)
Dim regEx, Match, Matches' สร้างตัวแปร
ตั้งค่า regEx = New RegExp' สร้างนิพจน์ทั่วไป
regEx.Pattern = patrn' กำหนดรูปแบบ
regEx.IgnoreCase = True' ตั้งค่าว่าอักขระคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่หรือไม่
regEx.Global = True'ตั้งค่าความพร้อมใช้งานทั่วโลก
ตั้งค่าการจับคู่ = regEx.Execute(strng)'ดำเนินการค้นหา
สำหรับการแข่งขันแต่ละรายการในนัดการแข่งขันจะวนซ้ำผ่านการรวบรวมการแข่งขัน
RetStr = RetStr&Match.Value
ต่อไป
RegExpTest = RetStr
ฟังก์ชันสิ้นสุด
AL = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")' รับพารามิเตอร์ภาษาที่ยอมรับได้ของเบราว์เซอร์ของผู้ใช้
LG = RegExpTest("^[az-]+",AL)' รับการตั้งค่าภาษาที่ยอมรับได้ของเบราว์เซอร์ผู้ใช้
เลือกเคส LG
กรณี "zh-cn"
ตอบกลับเขียนว่า "中文(中文)"
กรณี "zh-tw"
response.write "จีน (ไต้หวัน)"
กรณี "zh-mo"
response.write "จีน (เขตบริหารพิเศษมาเก๊า)"
กรณี "zh-hk"
response.write "จีน (เขตบริหารพิเศษฮ่องกง)"
กรณี "zh-sg"
response.write "จีน (สิงคโปร์)"
กรณี "en-us"
response.write "ภาษาอังกฤษ (สหรัฐอเมริกา)"
กรณี “จ๋า”
ตอบกลับเขียนว่า "ญี่ปุ่น"
กรณี "โก้"
ตอบกลับเขียนว่า "เกาหลี"
สิ้นสุดการเลือก
-