Tags:
Node Thumbnail

บั๊กหนึ่งของ Ubuntu Intrepid ที่กล่าวถึงกันมากใน ubuntuclub คือเรื่องการป้อนภาษาไทยที่ไม่รับสระบน-ล่าง ความจริงเรื่องนี้เป็นปัญหาที่คาบเกี่ยวทั้งพฤติกรรมการใช้งานของผู้ใช้ ทั้งปัญหาของซอฟต์แวร์เองด้วย คำอธิบายปัญหาจึงมีทั้งสองส่วน

ก่อนอื่น ขอเริ่มจากเรื่องการป้อนข้อความภาษาไทยใน GTK+ ซึ่งรองรับภาษาไทยมานานแล้ว โดย GTK+ สามารถเปลี่ยนวิธีป้อนข้อความได้ขณะทำงาน โดยคลิกขวาที่บริเวณป้อนข้อความใด ๆ แล้วเลือกเมนู "วิธีป้อนข้อความ" (Input Methods) ก็จะสามารถเลือกวิธีป้อนข้อความภาษาต่าง ๆ ได้ ถ้าคุณเลือก "ไทย-ลาว" (Thai-Lao) หรือ "Thai (libthai)" ก็จะสามารถป้อนภาษาไทยได้โดยไม่ขึ้นกับโลแคลที่ใช้ พร้อมกับมีการตรวจแก้ลำดับการพิมพ์ให้ด้วย

หรือถ้าเลือก "X Input Method" ภายใต้โลแคลไทย ก็จะป้อนภาษาไทยแบบตรวจแก้ลำดับได้เช่นกัน โดยถ้าอยู่ในโลแคลอื่น ก็อาจป้อนได้หรือไม่ก็ได้ ขึ้นอยู่กับโลแคลเป็นกรณีไป ที่แน่ ๆ คือ จะไม่มีการตรวจแก้ลำดับการพิมพ์ในกรณีที่ป้อนได้

กล่าวคือ แม้คุณจะไม่ได้เข้าระบบด้วยวาระภาษาไทย คุณก็สามารถเลือกวิธีป้อนภาษาไทยได้เสมอ ด้วยเมนูคลิกขวา แล้วเลือก "ไทย-ลาว" (Thai-Lao) หรือ "Thai (libthai)"

ปัญหาที่พบกันคือ มันไม่ได้เลือกวิธีดังกล่าวไว้เป็นค่าปริยายตั้งแต่เปิดโปรแกรม ค่าปริยายนั้น จะขึ้นอยู่กับภาษาที่ใช้เข้าระบบ ถ้าเข้าระบบเป็นภาษาอังกฤษ ก็จะใช้วิธีป้อนของภาษาอังกฤษ แต่ถ้าเข้าระบบด้วยภาษาไทย ก็จะเลือกวิธีใดวิธีหนึ่งที่เหมาะกับภาษาไทยเป็นค่าปริยาย

ดังนั้น ถ้าคุณเข้าระบบด้วยภาษาไทย จะไม่มีปัญหาดังกล่าว แต่ถ้าเข้าระบบด้วยภาษาอังกฤษ ก็ต้องเข้าใจด้วยว่า จะเข้าสู่สภาพแวดล้อมที่เหมาะสมกับภาษาอังกฤษ ไม่ใช่ภาษาไทย คุณต้องสั่งอะไรเพิ่มนิดหน่อยถ้าจะใช้ภาษาไทยในสภาพแวดล้อมดังกล่าว

นั่นคือส่วนของพฤติกรรมผู้ใช้ ทีนี้มาดูพฤติกรรมซอฟต์แวร์บ้าง

วิธีป้อนข้อความในสภาพแวดล้อมภาษาอังกฤษนั้น GTK+ ได้เตรียมไว้ให้ป้อนได้ครอบคลุมภาษาพอสมควร คือโดยหลักการแล้ว ผู้ใช้ควรสามารถป้อนภาษาไทยแบบไม่มีการตรวจแก้ลำดับได้

ปัญหาคือ ใน GTK+ 2.14 ได้เพิ่มการจัดการเกี่ยวกับการ compose อักขระ accent ต่าง ๆ ในภาษายุโรปเข้ามาด้วย แต่เงื่อนไขการตรวจสอบอักขระที่จะประกอบบนอักขระฐานนั้น ค่อนข้างกว้างเกินไป จนมากระทบภาษาอื่น ๆ รวมทั้งภาษาไทยด้วย ภาษาไทยจึงถูกบังคับให้ป้อนในแบบยุโรปโดยปริยาย โดยไม่มีข้อมูลรองรับอีกต่างหาก ปัญหานี้ กำลังอยู่ระหว่างแก้ไขที่ GNOME Bug #555000 (เลขสวยดีแฮะ) ซึ่งจะทัน Intrepid หรือไม่ ก็ขึ้นอยู่กับว่าบั๊กนั้นจะแก้ไขทันกำหนดหรือเปล่า และ Ubuntu จะปิด LP #273856 หรือเปล่า

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

บั๊กนี้จะถือว่าร้ายแรงก็ได้ ไม่ร้ายแรงก็ได้ ขึ้นอยู่กับว่ากำลังพูดถึงผู้ใช้กลุ่มไหน ถ้าเป็นผู้ใช้ที่เข้าระบบด้วยภาษาไทย ก็ไม่มีปัญหาอะไร ถ้าเป็นผู้ใช้ที่เข้าระบบด้วยภาษาอังกฤษ แต่รู้จักวิธีเลือกวิธีป้อนภาษาไทย ไม่ว่าจะผ่านเมนูของ GTK+ หรือผ่านการตั้ง im-switch ก็เป็นปัญหาเล็กน้อย แต่ถ้าเป็นผู้ใช้ที่เข้าระบบด้วยภาษาอังกฤษโดยไม่ได้ทำอะไรเพิ่มเติมเลย ก็คงเป็นปัญหาร้ายแรง

เกี่ยวกับวิธีกำหนดค่าเพิ่มเติม ถ้าต้องการใช้ภาษาไทยในโปรแกรมโดยให้ UI เป็นภาษาอังกฤษ ขอแนะนำ 2 วิธี:

  1. กำหนด LC_MESSAGES เป็น en_US.UTF-8 ไว้ อาจจะที่ /etc/environment หรือ export ใน ~/.xsessionrc ก็แล้วแต่ แล้วเลือกภาษาไทยขณะเข้าระบบ ถ้าไม่ชอบปฏิทินไทยด้วยก็กำหนด LC_TIME เพิ่ม

  2. เข้าระบบเป็นภาษาอังกฤษตามเดิม แต่กำหนด im-switch ให้เลือกวิธีป้อนภาษาไทยโดยปริยาย

    • system-wide:
      sudo im-switch -z all_ALL -s th-xim
    • per-user:
      im-switch -s th-xim

    สามารถเปลี่ยน th-xim เป็นอย่างอื่นได้ เช่น

    • ถ้าติดตั้ง gtk-im-libthai: ใช้ th-gtk-im-libthai
    • ถ้าใช้ scim-thai: ใช้ scim-immodule

    ดูค่าที่เป็นไปได้ทั้งหมดได้โดยสั่ง
    im-switch -l

ถามผม ผมแนะนำว่าวิธีแรกง่ายที่สุดครับ

ที่มา: Theppitak's blog

Update (16:46): แก้เรื่องการกำหนด LC_MESSAGES แบบส่วนบุคคลจาก ~/.bashrc เป็น ~/.xsessionrc และเพิ่มเติมเรื่อง LC_TIME

Get latest news from Blognone

Comments

By: sugree
FounderWriterAndroidBlackberry
on 9 October 2008 - 15:27 #67529

ขอบคุณครับ

ตาสว่าง

By: somsak_sr
ContributorAndroidUbuntu
on 9 October 2008 - 16:40 #67538
somsak_sr's picture

มาใช้พื้นโต๊ะกันดีกว่าคุณสุกรี

By: sugree
FounderWriterAndroidBlackberry
on 9 October 2008 - 23:00 #67599 Reply to:67538

เดี๋ยวก็ชิน

By: Tux-Linux on 9 October 2008 - 16:45 #67541

อ่านแล้วยังงงๆ
แต่จากพฤติกรรมการพิมพ์ของผม ผมพิมพ์ สระก่อนวรรณยุกต์ เลยไม่มีปัญหา (ผมเข้าใจถูกป่าว)?

By: thep
Writer
on 9 October 2008 - 17:49 #67546 Reply to:67541

ไม่เกี่ยวครับ ประเด็นอยู่ที่การ login ด้วย session ภาษาไทยหรืออังกฤษเท่านั้นเอง ถ้าเป็น session ไทย ก็ไม่ต้องทำอะไร ถ้าเป็น session อังกฤษ ก็อาจต้องออกแรงนิดหน่อย

By: Tux-Linux on 10 October 2008 - 03:22 #67622 Reply to:67546

เหมือนจะเข้าใจขึ้น session นี้หมายถึงพวก terminal ใช่ป่าว??
เพราะใน terminal พิมพ์ไทยบ้องๆ แต่ปกติพิมพ์แต่อังกฤษในนั้น

By: thep
Writer
on 10 October 2008 - 11:35 #67640 Reply to:67622

session หมายถึงการเข้าระบบจากหน้าจอ login แบบกราฟิกส์ (GDM) ที่ป้อนชื่อ user, password ก่อนเข้ามาที่หน้าจอเดสก์ท็อปน่ะครับ สามารถเลือกภาษาที่จะใช้เข้าระบบได้จากเมนูในหน้าจอนั้น

By: mementototem
ContributorJusci's WriterAndroidWindows
on 10 October 2008 - 00:04 #67606
mementototem's picture

ไม่ค่อยเข้าใจ ปกติแล้วผม ใช้ hardy interface แบบภาษาอังกฤษ แต่เลือกที่อยู่เป็นประเทศไทย(เวลาประเทศไทย) เพิ่มคีย์บอร์ดไทย แบบว่า ไม่ค่อยรู้เรื่องเลย มันไม่มีปัญหาใน hardy แต่ใน intrepid ทำแค่นี้ไม่พอใช่ป่ะครับ ต้องกำหนดค่าเพิ่มด้วย

ยุ่งยากแต่เดี๋ยวก็คงชินจริง ๆ แหละ


Jusci - Google Plus - Twitter

By: thep
Writer
on 10 October 2008 - 00:57 #67611

ถ้าบั๊กนี้เขาแก้ให้ก่อน intrepid ออก ก็คงไม่ต้องยุ่งยากครับ แต่ tip ข้างบนก็อาจยังมีประโยชน์อยู่ ในกรณีที่ต้องการใช้การป้อนภาษาไทยแบบเนี้ยบ ๆ หน่อย (คือมีการตรวจแก้ลำดับให้)

By: slax
Windows PhoneAndroidRed HatUbuntu
on 10 October 2008 - 10:50 #67634

ได้แสงสว่างมานำทางแล้ว มืดอยู่นาน

By: slax
Windows PhoneAndroidRed HatUbuntu
on 10 October 2008 - 18:51 #67635

ไหงกดทีเดียวโผล 2 อัน

By: thep
Writer
on 10 October 2008 - 16:43 #67679

Update: GNOME #555000 แก้แล้วครับ ที่เหลือคือรอ backport patch มาที่ Ubuntu หรือไม่ก็รอ GNOME 2.24.1

By: illusion
ContributorAndroid
on 13 October 2008 - 19:35 #67923 Reply to:67679
illusion's picture

อย่างงี้จะทันแก้ใน Intrepid ตัวจริงที่อีก 17 วันจะออกมั้ยครับเนี่ย ...กำลังรอตัวจริงอยู่เลย

แต่ดูท่าแล้วสงสัยจะไม่ทันแหงๆ

By: thep
Writer
on 13 October 2008 - 20:51 #67927 Reply to:67923

อีก 7 วัน GNOME 2.24.1 จะออกครับ ถึงตอนนั้น ubuntu จะ update GNOME อีกรอบ ซึ่ง GTK+ ตัวใหม่ (ที่แก้บั๊กแล้ว) น่าจะมาด้วยกัน ถ้ายังไม่มาก็มีเวลาโวยอีกราวอาทิตย์หนึ่ง

By: xcession
iPhoneAndroidUbuntu
on 17 October 2008 - 15:19 #68374

ไม่ทราบว่า สำหรับคนที่ใช้ dm/wm อื่น ไม่ได้ใช้ gnome ล่ะครับ
หลังจากอัพเดท gtk2 มีปัญหาภาษาไทยจะแก้ไขยังไง

By: thep
Writer
on 17 October 2008 - 22:35 #68417

Update: GTK+ 2.14.4 ออกแล้ว พร้อมแก้บั๊กนี้แล้ว รอ ubuntu update เร็ว ๆ นี้

By: xcession
iPhoneAndroidUbuntu
on 18 October 2008 - 08:18 #68438 Reply to:68417

เพิ่งอัพเดทไปหมาดๆเลยครับ ภาษาไทยทุกอย่างเป็นปกติแล้ว เยี่ยมครับ