เดี๋ยวนี้ Opensource ต่าง ๆ นอกจากจะสร้างขึ้นเป็นระบบเปิด ที่อนุญาตให้เหล่านักพัฒนาสามารถสร้าง plugins, extension หรือ add ons เข้ามาเพิ่มเติมได้แล้ว สิ่งที่สำคัญอีกอย่างหนึ่งก็คือเรื่องของ “ภาษา”
พัฒนาการของ Opensource นั้นเร็วมาก เผลอไม่ทันข้ามสัปดาห์ก็ออกรุ่นใหม่ ๆ ออกมาแล้ว ดังนั้นเราจึงมั่นใจในระดับหนึ่งว่ากลไกภายในที่สร้างขึ้นมาใหม่ ย่อมมีความเป็นเลิศในหลาย ๆ ด้าน
แต่สิ่งที่จะช่วยเติมเต็มให้กับ Opensource นั้นกลับเป็นเรื่องของการเปิดกว้างให้แสดงผลได้หลายภาษา ตามแต่ล่ะท้องถิ่นที่นำมันไปใช้ มันจึงกลายเป็นเรื่องน่าเศร้าใจ หาก Opensource ตัวใดก็ตามมีความสามารถเป็นเลิศ เปิดให้ทำอะไรได้หลาย ๆ อย่าง แต่กลับขาดเพียงอย่างเดียว นั่นคือ “ไม่เปิดเรื่องการแปลภาษา”
ผมเคยแปล extension ของ MediaWiki ตัวนึงนะ มันเป็น Google Map Extension โดยการแปลจากภาษาอังกฤษเป็นภาษาไทย พอดีผมอยากจะใช้แล้วไม่มีใครแปล ผมเลยแปลเอง แต่เมื่อแปลแล้วผมก็เก็บไว้กับตัวเอง เพราะผมงงกับการลงทะเบียนสิ่งที่แปลแล้วใน Betawiki มาก (สงสัยว่าผมจะไม่ได้ตั้งใจทำความเข้าใจซะมากกว่า T-T)
จะเห็นว่านอกจากจะมีระบบที่เอื้อต่อการแปลภาษาแล้ว ทาง MediaWiki เองก็ยังมีชุมชนที่คอยบริหารจัดการเรื่องการแปลภาษาอีกด้วย ดังนั้นเราจะเห็นว่า ถ้าเปรียบ Opensource เหมือนธุรกิจรถยนต์, MediaWiki ก็เปรียบได้กับโรงงานผลิตรถยนต์และตัวแทนจำหน่าย ในขณะที่ BetaWiki ก็เปรียบได้กับศูนย์บริการหลังการขายนั่นเอง
ดูเหมือนว่าการแปลภาษาจะเป็นเรื่องธรรมดา ไม่เห็นว่ามีอะไร แต่เท่าที่ผมตรวจสอบแล้ว มันทำให้ผมพบกับอุปสรรคดังต่อไปนี้
1. ความทันสมัยต่อเนื่อง
ก็อย่างที่บอกครับว่า Opensource มันปรับรุ่นบ่อยมาก ดังนั้นพอมันปรับทีนึง เราก็ต้องตามไปแปลให้ทีนึง เนื่องจากรุ่นที่ใหม่ขึ้นก็หมายความว่าจะต้องมีข้อความใหม่ ๆ มาให้แปลมากขึ้น แค่มีข้อความเพิ่มน่ะไม่เท่าไหร่ แต่ถ้ามันเปลี่ยนรูปแบบของข้อความไปเลย ไม่เหมือนเดิมเ้ลย ยิ่งแล้วใหญ่
2. ความเร้าใจ
บางครั้งการจะแปลภาษาให้กับ Opensource เราก็ต้องมาดูว่ามีคนใช้มันเยอะมั้ย คุ้มกับการแปลมันหรือเปล่า ถ้ามีคนใช้น้อย แปลไปก็งั้น ๆ สู้นั่งเล่น Pinball ยังจะดีกว่า
ความชอบและหลงไหลก็มีส่วน ยกตัวอย่างเช่น ถ้าผมชอบ WordPress ผมก็จะใช้ WordPress มากกว่าที่จะใช้ Drupal ซึ่งถ้าเป็นแบบนี้ ผมก็ย่อมที่จะกระหายใคร่อยากที่จะแปล WordPress ให้เป็นภาษาไทยมากกว่า Drupal เป็นต้น
3. ความสะดวก
ถ้าเราได้ลอง Opensource หลาย ๆ ตัว เราจะพบว่าบางตัวมีกลไกที่สะดวกมาก เพื่อเปิดทางให้เราแปลภาษา ในขณะที่บางตัวก็วุ่นวายทำความเข้าใจยากซะเหลือเกิน
—
สุดท้าย วิธีที่ผมเห็นว่าดีที่สุดเลยก็คือ ถ้าใครอยากจะใช้ Opensource ดังกล่าว แล้วให้มันแสดงผลเป็นภาษาไทย โดยข้อความในนั้นเป็นสำนวนของตัวเอง (จะสุภาพหรือกวนประสาทยังไงก็ได้) … งั้นทำเองใช้เองก็แล้วกันครับ … แป่ว T-T
ตนเป็นที่พึ่งแห่งตน
ถ้าไม่พึ่งตนแล้วจะพึ่งใคร
[tags]Internationalization, Localization, Opensource, แปลภาษา[/tags]
แล้วสรุปว่า internationalization กับ localization คืออะไร? ไม่เห็นอธิบายเลย
ผมเองก็ตั้งหัวข้อเอาไว้ เพื่อมาถามชาวบ้านเขาเหมือนกันครับคุณ wiennat 😛
– -“
ขอเป็น user ดีกว่าครับ ความสามารถไม่ถึง ขอบคุณทุกความเหนื่อยยากสำหรับนักพัฒนา
ที่ผมเข้าใจเป็นแบบนี้นะครับพี่
Internationalization (i18n) คือการทำให้โปรแกรมให้คนชาติอื่น อ่านและบันทึกข้อมูลในภาษาของเขาได้ โดยไม่ต้องปรับแต่งอะไรเพิ่มเติม อย่างเช่นผมทำโปรแกรมอะไรซักอย่างนึง อ่าน/บันทึก ภาษาไทย, อังกฤษ ได้ คุณ au8ust เอาโปรแกรมไปใช้ในภาษาลาว ต้องสามาถทำได้ทันที โดยไม่ต้องแก้ส่วนใดๆ ของซอฟแวร์เลย (ถึงแม้ว่าเมนู ยังเป็นภาษาอังกฤษหรือ ภาษาอื่นก็ตาม)
ส่วน Localization (l10n) คือการทำให้ส่วนติดต่อผู้ใช้งาน ให้เป็นภาษาท้องถิ่น
ผมชอบเรื่องนี้มากนะครับ อย่างเรื่อง l10n ถ้าผมไม่ชอบใจประโยคไหน อ่านแล้วต้องแปลเป็นไทย ผมเปลี่ยนทันที
นึกๆ มาแล้ว ก็ขำตัวเอง
เมื่อก่อน ตอนคิดทำเวบเมนูสองภาษาผมใช้วิธีจับยัดคำแปลใส่ Associative arrays
เล่นเอามึนอยู่เหมือนกัน เพราะให้คนอื่นแปลให้ แล้วลืมเครื่องหมาย ‘ ” , () ทำให้เวบไม่ทำงานเอาซะดื้อ ไล่หากันตั้งนาน
ตอนนี้ใช้ gettext ครับ ชีวิตสบายขึ้นเยอะ
ขอบคุณมากครับคุณ Audy สำหรับการอธิบาย เพราะเรื่องนี้ผมก็ไม่รู้จริงเหมือนกัน ก็เลยมาโยนหินถามทางเนี่ยแหล่ะ
ขอบคุณครับ
ขอบคุณคุณ audy ครับ 😀