รู้จักกับ บัก 273856 และวิธีแก้ไขเบื้องต้น
Posted in:
พอดีพี่เทพเขียนฝากมาเล่าให้ฟังครับ ขอลอกมาเลยนะครับ
เกี่ยวกับบั๊กการป้อนภาษาไทยที่ไม่รับสระบน-ล่าง ซึ่งกล่าวถึงกันมากใน 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+ หรือผ่านการตั้ง im-switch ก็เป็นปัญหาเล็กน้อย แต่ถ้าเป็นผู้ใช้ที่เข้าระบบด้วยภาษาอังกฤษโดยไม่ได้ทำอะไรเพิ่มเติมเลย ก็คงเป็นปัญหาร้ายแรง
เกี่ยวกับวิธีกำหนดค่าเพิ่มเติม ถ้าต้องการใช้ภาษาไทยในโปรแกรมโดยให้ UI เป็นภาษาอังกฤษ ขอแนะนำ 2 วิธี:
- กำหนด LC_MESSAGES เป็น en_US.UTF-8 ไว้ อาจจะที่ /etc/environment หรือ export ใน ~/.bashrc ก็แล้วแต่ แล้วเลือกภาษาไทยขณะเข้าระบบ
- เข้าระบบเป็นภาษาอังกฤษตามเดิม แต่กำหนด 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
- system-wide:
ถามผม ผมแนะนำว่าวิธีแรกง่ายที่สุดครับ



.xsessionrc
ขอแก้รายละเอียดนิดหนึ่งครับ การกำหนด LC_MESSAGES=en_US.UTF-8 แบบส่วนบุคคล ทำที่ ~/.bashrc ไม่มีผลกับเดสก์ท็อปครับ ต้องทำที่ ~/.xsessionrc เช่น อาจกำหนดอย่างนี้:
export LC_MESSAGES=en_US.UTF-8ในกรณีที่ไม่ชอบปฏิทินไทยด้วยก็:
export LC_TIME=en_US.UTF-8ถ้าต้องการเปลี่ยนให้ log in เป็น ภาษาไทย แก้ยังไงครับ
ทำที่อ่านแล้วเข้าใจ ต้องแก้โดย login เป็นภาษาไทย?
แล้วจะแก้ให้เป็น login ภาษาไทย ได้ที่ไหนครับ
แล้ว เมนูใช้งานต่างๆจะกลายเป็นภาษาไทยด้วยมั้ยครับ
ขอบคุณมากครับ กำลังเจอปัญหานี้อยู่ครับ
login ภาษาไทย
เลือกเมนู Language ที่หน้าจอ login นะครับ แล้วเลือกภาษาไทย ก่อนที่จะป้อน username, password
ถ้าไม่ต้องการให้ UI เป็นภาษาไทย ก็แก้ ~/.xsessionrc ให้เป็นอย่างนี้:
export LC_MESSAGES=en_US.UTF-8export LC_TIME=en_US.UTF-8บรรทัดหลังนี้ ใช้ในกรณีที่ไม่ต้องการปฏิทินไทยด้วย
GNOME #555000
Update: GNOME Bug #555000 แก้แล้วครับ ที่เหลือคือรอ backport patch มาที่ Ubuntu หรือไม่ก็รอ GNOME 2.24.1 วันที่ 20 ตุลานี้
กล่าวคือ ยังไงปัญหาก็น่าจะแก้ทัน intrepid ละ โดยถ้าทัน ก็จะสามารถป้อนภาษาไทยในโลแคลอังกฤษได้อีกครั้ง แต่เป็นการป้อนแบบดิบ ๆ ไม่มีการกรองลำดับอักขระ
แก้ได้แล้วครับ แต่ terminal มันเป็น english แบบแปลกครับ
สวสดีครับ
แก้ตามที่ คุณ thep บอกแล้วครับ
ลองใช้งาน กับ abiword 2.6.4 ไม่มีปัญหาแต่ว่า
terminal มันแปลกๆ ครับ ยังไงได้บ้างมั้ยครับ
ขอบคุณมากครับ
ขอบคุณครับ
ทดลองใช้แบบ install ลงเครื่องแล้วครับ ภาษาไทยสวย wirelessใช้ได้แล้ว(เย้)เนียนเลยครับ
NEO
Because I choose to.
www.sanhom.com
GTK+ 2.14.4
Update: GTK+ 2.14.4 ออกแล้ว พร้อมแก้บั๊กนี้แล้ว รอ ubuntu update เร็ว ๆ นี้
Post new comment