การติดตั้งภาษาไทยอย่างง่ายๆ บนลีนุกซ์

ในที่นี้จะเป็นการติดตั้งภาษาไทยบนระบบ X window

ระบบ X window คืออะไร

X window เป็นโปรแกรมซึ่งทำการสร้างขึ้นมาครอบ บนระบบปฏิบัติการอีกที โดยระบบ X window จะทำให้เราสามารถใช้งานคอมพิวเตอร์ โดยผ่านทางรูปภาพแบบ กราฟฟิค และเมาส์ได้ ซึ่งเป็นระบบอินเทอร์เฟสที่เราเรียกว่า GUI (Graphical User Interface) ระบบ X window จะถูกใช้งานกันมากในคอมพิวเตอร์ตระกูลยูนิกซ์ แต่จริงๆแล้ว X window มีใช้งานกับระบบปฏิบัติการเกือบทุกตระกูล ซึ่งรวมทั้งระบบ WINDOWS ของไมโครซอฟต์ด้วย

ระบบ X window ถูกออกแบบมาให้ทำงานแบบ Client-Server ซึ่งระหว่างตัว Client และ Server อาจจะอยู่บนเครื่องเดียวกัน หรืออยู่คนละเครื่องกันก็ได้โดยที่เครื่องเหล่านั้นจะต้องเชื่อมต่อกันเป็นระบบเครือข่าย บนโปรโตคอลแบบ TCP/IP นั่นหมายความว่าคุณอาจจะสามารถทำการรันแอพพลิเคชั่น บนเครื่องอื่นๆ และกำหนดให้มาแสดงผลบนเครื่องของคุณ หรือในทางกลับกัน

X window จะมีระบบจัดการวินโดว์ (window manager) หลายแบบ ซึ่งจะไม่ถูกยึดติดกับตัว X window นี่จะเป็นข้อแตกต่างอย่างเห็นได้ชัดจากโปรแกรม MS WINDOWS หรือ WINDOW NT ซึ่งระบบจัดการวินโดว์จะถูกผูกติดอยู่กับ ตัววินโดว์อย่างแน่นหนา การที่เราสามารถเลือกระบบจัดการวินโดว์ ได้หลายแบบ จะทำให้เราไม่ถูกจำกัดกับรูปแบบอินเทอร์เฟสแบบใดแบบหนึ่ง ซึ่งจริงๆแล้วรูปแบบอินเทอร์เฟส (หมายถึงรูปแบบของการคลิกเมาส์ หรือรูปแบบของส่วนไตเติลบาร์ หรืออื่นๆ) เหล่านี้ก็ยังสามารถดัดแปลงแก้ไขได้ตามความชอบของผู้ใช้ได้อีกด้วย

ปกติระบบจัดการวินโดว์ที่นิยมกันในปัจจุบัน จะเป็นของ Motif ซึ่งถือว่าเป็นมาตรฐานของระบบ X window บนยูนิกซ์ นอกจากนี้ก็ยังมี NextStep ของบริษัท Next Computer ของคุณ สตีฟ จอปส์ ซึ่งปัจจุบันได้ถูกรวมเข้ากับบริษัทแอปเปิล บนลีนุกซ์จะมีระบบจัดการวินโดว์ที่ขอยืมรูปแบบการใช้งานมาจาก Windows95 ชื่อ fvwm95 ซึ่งจะมี launch bar และปุ่ม start คล้ายกับใน Windows95 มาก

สามารถหาข้อมูลเพิ่มเติมได้ที่
X consortium
XFREE86


การใช้งานภาษาไทยบนคอมพิวเตอร์นั้น โดยพื้นฐานแล้วจะต้องสามารถทำการแสดงผลเป็นภาษาไทยได้ ขนตอนนี้สามารถใช้ฟอนต์ไฟล์ ซึ่งเป็นไฟล์ที่เก็บข้อมูลของรูปแบบตัวอักษรที่จะใช้แสดงผล และจะต้องสามารถทำการรับข้อมูล (input) เป็นภาษาไทยได้ ซึ่งในการรับข้อมูลเข้านั้น ระบบ X windows อนุญาตให้เราสามารถทำการแก้ไข/ดัดแปลง ค่าสัญลักษณ์ (keysym) ของคีย์บอร์ดได้ ซึ่งเราจะสามารถทำได้โดยการใช้โปรแกรม xmodmap

ขั้นตอนการติดตั้งฟอนต์ภาษาไทย

  1. ให้คุณดาวน์โหลดฟอนต์ไฟล์ และคีย์บอร์ดแมปปิ้งไฟล์จาก ที่นี่ (กดปุ่ม Shift ค้างไว้ พร้อมกับคลิ๊กปุ่มซ้ายของเมาส์ )
  2. ทำการคลี่ไฟล์ที่ดาวน์โหลดออกมา ที่ไดเรกทอรีของคุณโดยใช้คำสั่ง


  3. ขั้นตอนต่อไปนี้ให้ทำภายใต้ระบบ X window
  4. ให้รันโปรแกรม mkfontdir ที่ไดเรกทอรีที่เก็บไฟล์ทั้งหมดที่ได้จากข้อสอง ซึ่งโปรแกรมจะทำการสร้างไฟล์ fonts.dir มาให้ในไฟล์ fonts.dir จะมีข้อมูลดังต่อไปนี้

    5 
    thai7x18.bdf -thai-fixed-medium-r-normal--14-100-100-100-m-70-tis620.2529-1 
    thai6x14.bdf -thai-fixed-medium-r-normal--10-100-75-75-c-60-tis620.2529-1 
    thai8x13.pcf thai8x13 
    thai8x20.bdf -thai-fixed-medium-r-normal--16-114-100-100-m-80-tis620.2529-1 
    thai9x13.pcf thai9x13 
    

    ทางคอลัมน์ซ้ายมือจะเป็นชื่อของฟอนต์ไฟล์ ส่วนทางคอลัมน์ขวามือจะเป็นรายชื่อของ ฟอนต์ต่างๆ
  5. ทำให้ระบบ X window รับรู้ฟอนต์เหล่านี้โดยใช้คำสั่ง
    xset +fp (ชื่อไดเรกทอรีที่เก็บฟอนต์เหล่านี้)
    สมมุติเก็บฟอนต์เหล่านี้ไว้ที่ /root/thaifont ให้ใช้คำสั่ง
    xset +fp /root/thaifont
    ขั้นตอนนี้คุณสามารถนำไปใส่ไว้ในไฟล์ .xinitrc ซึ่งจะเป็นคอนฟิกไฟล์ ที่ระบบ X window จะทำการอ่านตอนเริ่มเข้าระบบทุกครง
  6. ให้ตรวจสอบว่าได้ทำการติดตั้งฟอนต์เหล่านี้ได้สำเร็จ โดยใช้คำสั่ง
    xlsfonts | less
    คุณจะเห็นรายชื่อของฟอนต์ที่คุณติดตั้งอยู่ อาจจะใช้โปรแกรม xfontsel ก็ได้
    คุณเรวัติ ได้ช่วยกรุณาแนะนำมาว่า ควรจะใช้คำสั่ง xlsfonts | grep "thai"
    แทน เพราะฟอนต์ภาษาไทยที่ติดตั้งส่วนใหญ่จะมีชื่อเป็น thai ประกอบอยู่ด้วย การใช้คำสั่งนี้ จะช่วยแสดงเฉพาะฟอนต์ภาษาไทยที่ติดตั้งเท่านั้น
  7. ให้เปิดหน้าต่างของโปรแกรม xterm ใหม่ด้วยฟอนต์ภาษาไทยเหล่านี้โดยใช้คำสั่ง
    xterm -fn thai9x13
    ให้ทดลองทำการ cat ไฟล์ที่เป็นภาษาไทย หรือทดลองใช้ vi ดูว่าแสดงผลได้ถูก ต้องหรือไม่

การแสดงผลภาษาไทยบนเนตสเคป

คุณสามารถทำการดาวน์โหลด ราวเซอร์เนตสเคป ซึ่งสามารถใช้งานบนลีนุกซ์มาได้ (เวอร์ชั่นล่าสุดของเนตสเคปชื่อ เนตสเคปคอมมิวนิเคเตอร์) และทำการแสดงผลภาษาไทยโดยใช้ฟอนต์ที่ได้ติดตั้งไปแล้วนั้น สำหรับการคอนฟิกเนตสเคปให้สามารถทำการแสดงผลภาษาไทยได้ สำหรับเนตสเคปนาวิเกเตอร์เวอร์ชั่น 3 ให้เลือกเมนู Option และเลือกเมนูย่อย General Preference... และให้ทำการเลือกตรงส่วน Tab ที่เป็น Fonts ให้เลือกการ Encoding เป็น Western (iso-8859-1) และเลือก Use the Proportional Font เป็น Fixed (Thai) ดังแสดงในรูป

ให้ทำการคลิกที่ปุ่ม OK และตรวจดูว่าเนตสเคปแสดงผลภาษาไทยได้ถูกต้อง ฟอนต์ภาษาไทยที่แสดงบนเนตสเคปนาวิเกเตอร์นี้ มีข้อเสียคือจะมีขนาดเล็กซึ่งมองเห็นไม่ถนัด

การรับข้อมูลเป็นภาษาไทย

เราสามารถใช้โปรแกรม xmodmap เพื่อทำการดัดแปลงคีย์บอร์ดให้สามารถรับข้อมูลเป็นคีย์ภาษาไทยได้ จากไฟล์ที่เราได้คลี่ออกมาในข้อ 2 ของขั้นตอนการติดตั้งฟอนต์ภาษาไทย ให้ทำการพิมพ์คำสั่ง
xmodmap thaiXmap.v01 ไฟล์ thaiXmap นี้เป็น xmodmap script file ที่ได้ปรับปรุงขึ้นใหม่จากเวอร์ชั่นเก่าโดยคุณ วรวุธ วิสุทธิ์เมธางกูร (wisutmet@cae.wisc.edu) ซึ่งจะทำการดัดแปลงคีย์บอร์ดให้สามารถรับภาษาไทยได้ ให้ใช้ปุ่ม ScrollLock เป็นปุ่มสำหรับสลับโหมดการใส่ข้อมูลภาษาไทย/อังกฤษ ทดลองป้อนข้อมูลเป็นภาษาไทยบน xterm ที่แสดงผลเป็นภาษาไทยได้ (จากข้อ 6 ของขั้นตอนการติดตั้งฟอนต์ภาษาไทย)

ไฟล์ thaiXmap ถูกทำการดัดแปลงเพิ่มเติม ดังต่อไปนี้
การใช้งาน xmodmap ยังมีปัญหาบางประการ
  1. ใน xterm การลบตัวอักษร (พวกสระลอยต่างๆ เช่น ๊ ็ ้ ) ยังทำได้ไม่ถูกต้องสมบูรณ์ จะต้องกดปุ่ม Ctrl-l เพื่อทำความสะอาดหน้าจอใหม่บ่อยๆ
  2. การจัดลำดับของสระ (ซึ่งจะขึ้นอยู่กับฟอนต์ ด้วย) ยังทำไม่ได้
  3. ทำการใช้ Scroll Lock เป็นปุ่มสลับโหมด อาจทำให้ใช้งานได้ไม่ถนัดเท่า ใช้ปุ่ม `/~
หากคุณต้องการใช้เทอร์มินอลที่สามารถรับข้อมูลเป็นภาษาไทยได้ ให้ดาวน์โหลดโปรแกรม thaiXterm (ให้กดปุ่ม Shift ค้างไว้ พร้อมกับคลิกที่ปุ่มซ้ายของเมาส์) ซึ่งเทอร์มินอลนี้จะใช้ปุ่ม F1 เป็นตัวสลับโหมดภาษาไทย/อังกฤษ

ข้อมูลและไฟล์ส่วนใหญ่ ที่เกี่ยวกับการใช้งานภาษาไทยบนลีนุกซ์ ได้มาจากเวปไซต์ Note on Thai Computing ซึ่งเป็นเวปไซต์ของนักศึกษาคอมพิวเตอร์คนไทยในญี่ปุ่น ข้อมูลในเวปไซต์นี้จะเป็นการดัดแปลงและการเขียนโปรแกรมให้สามารถใช้งานภาษาไทยบนระบบยูนิกซ์ได้ ซึ่งนอกจากเรื่องการติดตั้งฟอนต์ภาษาไทย การรับข้อมูลภาษาไทย การใช้งาน xterm ที่เป็นภาษาไทย ยังมีเรื่องของการรับส่งเมลล์ภาษาไทย การใช้งานโปรแกรมประมวลผลคำ (ลิขิต) และการใช้งานโปรแกรม TeX (โปรแกรมเรียงพิมพ์บนยูนิกซ์) เป็นภาษาไทยด้วย คุณสามารถหาข้อมูลอื่นๆที่เป็นประโยชน์มากมายได้จากที่นี่


HTML developed by Kaiwal Development Team (kaiwal@geocities.com)