การแปลภาษาสำหรับ JavaScript
แก้ไขล่าสุด ใน วันจันทร์ที่ 06 กุมภาพันธ์ 2555 เวลา 00:26 น. เขียนโดย ประสิทธิ์ เก็บทรัพย์ วันอาทิตย์ที่ 05 กุมภาพันธ์ 2555 เวลา 23:57 น.
หลังจากที่ผมไม่ได้ปรับปรุงเพิ่มเติมบทความมาซักพัก วันนี้เลยขอแก้ตัวด้วยบทความสั้นๆ สำหรับนักพัฒนาจุมล่า 1.6+ ทั้งหลายนั่นคือการแปลข้อความใน JavaScript ของเรา ปกติการเขียนคอมโพเนนท์เพื่อรองรับการใช้งานหลายๆ ภาษาเรามักจะเจอปัญหานี้ว่า กรณีเราจะให้แสดงภาษาใน JavaScript เป็นภาษาของผู้ใช้ในขณะนั้นทำอย่างไร ปกติเราอาจจะไม่ค่อยได้เขียนในลักษณะนี้มากนัก หากเราเขียนเพื่อใช้งานในองค์กร แต่หากเราเขียน open source และเราต้องการให้รองรับการใช้งานหลายๆ ภาษาเราจะเจอปัญหานี้
ตัวอย่างการใช้งาน
ตัวอย่างการใช้งานเช่นในโค้ด PHP ของจุมล่าเรามีข้อความ คือ COM_REGONLINE_DEMO_TEXT ที่เราต้องการแสดงผลในภาษาอังกฤษว่า "Test Text" ในภาษาไทยว่า "ข้อความทดสอบ" ถ้าใน PHP เราก็แค่เอาข้อความนี้แสดงว่าฟังก์ชั้น JText::_() คือ JText::_('COM_REGONLINE_DEMO_TEXT') แล้วก็เอาข้อความนี้ไปแปลในไฟล์ภาษาคือ
ภาษาอังกฤษ ไฟล์ en-GB.com_regonline.ini
COM_REGONLINE_DEMO_TEXT="Test Text"
ภาษาไทย ไฟล์ th-TH.com_regonline.ini
COM_REGONLINE_DEMO_TEXT="ข้อความทดสอบ"
แต่ข้อความเหล่านี้ยังไม่สามารถใช้งานใน JavaScript ได้นะครับ เช่นเราต้องการแจ้งเตือนผู้ใช้ด้วยคำสั่ง alert() ใน JavaScript เราก็ไม่สามารถทำได้เหมือนกับใน PHP แต่ใน Joomla รุ่น 1.6 เป็นต้นมาตัวจุมล่าจะมีฟังก์ชัน JavaScript ชื่อ Joomla.JText._() ให้เราใช้งานได้ แต่เราต้องเอาข้อความเหล่านี้ใส่ใน Strings ของ JavaScript ก่อนโดยใช้ JText::script() ดังนั้นขั้นตอนการทำก็คือ



ใน Joomla! ตั้งแต่รุ่น 1.6 ขึ้นไปในส่วนของการจัดการการติดตั้งมีคุณสมบัติหรือ feature ใหม่เพิ่มขึ้นมานั่นก็คือ Discover ซึ่งทำให้คุณสามารถทำการติดตั้ง Joomla! extension ได้โดยไม่จำเป็นต้องติดตั้งจากไฟล์ zip โดย Joomla! จะทำการค้นหาใน folder แล้วทำการติดตั้งให้เองหากเจอไฟล์ xml ที่ใช้สำหรับการติดตั้ง สำหรับการใช้งานสำหรับ webmaster ก็อาจจะใช้ประโยชน์ในกรณีที่การติดตั้งผ่านไฟล์ zip อาจจะใช้เวลานานเนื่องจากไฟล์มีขนาดใหญ่ ดังนั้นการ FTP ไฟล์ที่ผ่านการ unzip แล้วไปไว้บน server แล้วค่อยใช้การ discover จะทำให้แก้ปัญหานี้ได้ครับ แต่ในวันนี้เราจะมาดูการใช้ Discover ในตอนพัฒนา component ของเรากันครับ
หลังจากที่ Joomla! 1.6 รุ่น Stable ได้ออกมาแล้วอย่างเป็นทางการ ก็เริ่มมีเสียงเรียกร้องจากกลุ่มผู้ใช้ JONGman สำหรับการใช้งานบน