การทำเว็บแบบหลายภาษา

การทำเว็บแบบหลายภาษา

วิธีการทำเว็บแบบหลายภาษานั้นมีหลายวิธีด้วยกัน แต่ว่า แต่ละวิธีมีเงื่อนไข และข้อจำกัดที่แตกต่างกันไป ขึ้นอยู่กับคนทำเว็บเอง ว่าต้องการทำแบบไหน ซึ่งในเนื้อหานี้ ผมจะกล่าวเฉพาะเว็บที่เป็นหลายภาษาจริงๆเท่านั้น แบบ google translate หรือว่าใช้ web service แปลภาษามาแปะ นั้นไม่รวมด้วยนะครับ โดยทุกๆวิธี เราจะต้องเตรียมชุดแปลภาษา เช่น คำว่า "สวัสดี" เราก็ต้องเตรียมภาษาอังกฤษเอาไว้ว่า "Hello" นั่นเอง เช่น
$lang['hello'] = "Hello"; // hello คือ key ของ variable lang สำหรับภาษาอังกฤษ
$lang['hello'] = "สวัสดี"; // hello คือ key ของ variable lang สำหรับภาษาไทย
โดยแยกไฟล์แยกแฟ้มเพื่อให้เราเลือกเอามาใช้ได้ตามที่ user เลือก โดยหลักๆเราจะมีการเก็บภาษาที่ user เลือก ลง cookie หรือ session ดังนี้

ทำเว็บหลายภาษา วิธี cookie

วิธีนี้ เมื่อ user เลือก ภาษา เราก็เขียน cookie ลงเครื่อง user แต่หาก user เข้ามาครั้งแรก เราก็ไม่ต้องเขียน cookie หรือว่า จะเขียนให้เป็นภาษาหนึ่งที่เราเลือกเอาไว้ก็ได้ 

ทำเว็บหลายภาษา วิธี session

วิธีนี้ ทำเหมือน วิธี cookie เลย แต่ว่าเราก็ใช้การเขียน session ของ php แทน แต่ว่าวิธีนี้จะมีข้อเสียก็คือ หาก user session หลุด เช่น user ที่ใช้ internet ผ่าน proxy ที่มี cache หรือว่า user ที่ใช้ internet บางเครือข่าย ที่ admin ใช้ network หลายเส้น หาก ip เปลี่ยน ก็จะทำให้ session ของ user หายไปได้ครับ

ทั้งสองแบบ เวลาที่ user คลิกเว็บ(request) เราก็จะมีขั้นตอนการเช็คภาษาก่อนด้วยเสมอ ว่า user เลือกภาษาไหนเอาไว้ เพื่อให้เราเลือกโหลดไฟล์(include) ภาษาตามที่ user เลือกเอาไว้ได้อย่างถูกต้อง โดยเราก็แค่สั่ง
<?php echo $lang['hello'];?> เพียงอย่างเดียวเท่านั้น ส่วนตัวเช็คภาษาจะเป็นตัวเลือกไฟล์ภาษาที่ใช้เอง

เรื่องของการทำเว็บหลายภาษาเป็นเรื่องใหญ่ครับ เพราะว่า เราต้องมองหลายอย่าง ตามมาตรฐานของ i18n นั้น เราต้องคำนึงถึงเรื่องการใช้งานของ user ที่มาจากหลากหลายประเทศ หลากหลายภาษา เราลองคิดง่ายๆว่า เว็บขายของแห่งหนึ่ง เจ้าของเป็นคนเยอรมัน ทำเว็บด้วยภาษาอังกฤษ และทำอีกเว็บหนึ่ง(แยกเว็บกันเลย) เป็นภาษาไทยทั้งเว็บ โดยเป้าหมายคือคนไทย คิดว่าคนไทย จะเลือกซื้อเว็บใน version ภาษาอังกฤษ หรือภาษาไทยมากกว่ากัน , หรือว่า เรื่องของการคำนึงถึง สังคมที่แตกต่าง การจัดเรียงตัวหนังสือที่แตกต่าง เช่น บางประเทศเรียงตัวอักษรจากขวามาซ้ายเป็นต้น, หรือว่า เป็นเรื่องของค่าใช้จ่าย ที่ต้องใช้ ในการแปลภาษาแต่ละภาษา และการตรวจสอบความถูกต้อง ผมเชื่อว่าหลายคนน่าจะเห็นเว็บที่แปลภาษาไทยมา แล้วเราอ่านเองแล้วมันแปลกๆก็ตาม ตรงนี้มีค่าใช้จ่ายทั้งสิ้น, หรือว่า เป็นเรื่องของการ maintain ก็คือเมื่อมีการแก้ไขเว็บ จากเดิม เราแก้แค่จุดเดียว แต่เราทำเว็บหลายภาษาเราก็ต้องตามแปล หรือแก้ไขให้ครบทุกภาษาด้วย ซึ่งอาจจะนำไปสู่การปรับปรุงข้อมูลที่ไม่ตรงกันในแต่ละภาษาอีก และเรายังต้องคำนึงเรื่องของ URL ที่แตกต่างกันในแต่ละภาษาด้วย ไม่อย่างนั้นเราลองคิดว่า เว็บหนึ่ง มีภาษาไทยเป็นภาษาหลัก แล้วเค้าเลือกแปลเป็นภาษาฝรั่งเศษ จากนั้นเค้า ส่งให้เพื่อนอ่าน ที่เป็นคนฝรั่งเศษ ซึ่งเพื่อนคนนั้น ก็อ่านไม่ออก เพราะว่าภาษาเดิมของเว็บ เป็นภาษาไทยแต่หากเราทำ url ของภาษาฝรั่งเศษให้แตกต่างจากภาษาไทย เวลาที่คนนี้ส่งให้เพื่อนอ่าน เค้าก็ไม่ต้องกดแปลอีกเลย การทำแบบนี้ได้ผลพลอยได้ในเรื่อง SEO ไปด้วยในตัว

ขอให้การทำเว็บหลายภาษาของคุณเป็นเรื่องสนุกนะครับ (จริงๆมันเป็นเรื่องที่น่าปวดหัวมากทีเดียว เพราะว่าตองแปลคำทุกๆคำเป็นทุกๆภาษา แนะนำว่าให้ทำภาษาที่เป็นภาษาหลักให้เสร็จทีเดียว แล้วค่อย copy ไปแปลในภาษาอื่นแบบรวดเดียว จะเร็วกว่า แต่ก็อาจจะทำให้เกิดความผิดพลาดได้ครับ ต้องชั่งน้ำหนักดูแล้วล่ะ)

Create: Modify : 2012-10-30 22:57:05 Read : 8345 URL :