เรื่องระบบตัดคำไทยของ KDE4

 

นั่งทดสอบ Kubuntu มาหลายวัน แต่สังเกตว่าภาษาไทยในหลายส่วนหลายโปรแกรมยังไม่มีระบบตัดคำไทย หาข้อมูลพบว่าที่ Thai Linux/FOSS developer คุณอ๊อทกับพี่โด่งคุยกันในเรื่องระบบภาษาไทยของ KDE4 .... คือแบบว่า ...  :P ทำไม่เป็น... สอนการแพชท์ภาษาไทยหน่อยซิครับ พี่โด่งอ่ะจ้ะ ...

มีอีกส่วนที่เหมือนไม่เกี่ยวแต่ก็เกี่ยว คือ หากตั้งระบบให้เป็นภาษาไทยเมื่อไหร่จะใช้ K3b โปรแกรมจะแครชเลยครับ (ข้อนี้ขอแถมเผื่อรู้คำตอบน่ะครับ) ...

 

ขอตอบในส่วนของ konqueror นะครับ
ตามที่ผมใช้ใน pclinuxos ก็ให้ติดตั้ง libthai
ใน kubuntu ก็น่าจะคล้ายกันมั้งครับ

 

[quote="phong_th"]
ขอตอบในส่วนของ konqueror นะครับ
ตามที่ผมใช้ใน pclinuxos ก็ให้ติดตั้ง libthai
ใน kubuntu ก็น่าจะคล้ายกันมั้งครับ[/quote]

ขอบคุณครับ _/|\_

ผมเข้าไปดูแพกเกจพบว่า libthai ก็มีการติดตั้งอยู่แล้ว พอดีเหลือบไปเห็นแพกเกจอยู่ตัว libthai-dev คุ้นๆว่าต้องติดตั้งสมัยที่เคยใช้ KDE3 ลองติดตั้งทดสอบดูแล้ว ใช่เลย! ตอนนี้ทั้งระบบตัดคำไทยได้แล้วครับ ...

แต่ปัญหาถ้าเลือกใช้โลแคลไทย จะมีแพกเกจหลายตัวแคลช ยังพบอยู่ไม่หาย ตอนนี้ใช้ Kubuntu 10.04 beta2 อยู่ครับ รอดูรีลิสจริงตอนสิ้นเดือนอีกที ... 

;D

 

เรียน ทุกท่าน (เน้นพี่ชายเจตน์  ;D)

เรื่องตัดคำไทยของ KDE ต้องแบ่งเป็น 2 ส่วนครับ

[b]1. Qt Library[/b]
   ส่วนนี้เป็นส่วนสำคัญที่สุด  Qt 4.3 เป็นต้นมา ได้หันมาใช้ [url=http://www.freedesktop.org/wiki/Software/HarfBuzz]HarfBuzz[/url] เต็มรูปแบบแล้วครับ
   ซึ่งแพตช์ที่เขียนไป คุณอ๊อทได้ส่งไปให้ทาง Trolltech (Nokia ในปัจจุบัน) ไปหลายรอบแล้ว แต่ยังไม่รับเข้าในชุด Qt
   หากต้องการให้มีการตัดคำก็ต้องแพตช์ Qt ก่อนครับ ลองไล่ ๆ ดูใน thai-linux-foss-devel ได้ครับ
   หลักการแพตช์ก็ง่าย ๆ คือมี source Qt แล้วก็แพตช์ จากนั้นก็ลงมือแพตช์
[code]    # cd qt-everywhere-opensource-src-4.x.x
   # patch -p1 < /path/to/patch1
   # patch -p1 < /path/to/patch2
   ...
[/code]
   แล้วก็คอมไพล์
   ถ้าอยากทำเป็นแพกเกจ deb แนะนำให้พี่ชายเจตน์สอบถามคุณอ๊อทครับ เพราะคุณอ๊อทแกก็ใช้ Kubuntu

   หลังจากได้ Qt lib ที่ผ่านการแพตช์ไทยแล้ว โปรแกรมต่าง ๆ ของ KDE จะสามารถตัดคำได้เกือบทั้งหมด โดยจะต้องติดตั้ง libthai ให้ด้วย

[b]2. KDElibs[/b]
  ในส่วนแพตช์ของ kdelibs นี้ จะเป็นการแพตช์ให้มีการตัดคำในส่วนของ KatePart (Text Editor component), Konqueror
  โดยจะอาศัยมอดูล HarfBuzz-Thai ของ Qt ที่แพตช์ไป

สามารถหาแพตช์ไทยต่าง ๆ ได้ที่
http://linux.thai.net/websvn/wsvn/software.qt/
และ
http://linux.thai.net/websvn/wsvn/software.kde/
และ
http://groups.google.com/group/thai-linux-foss-devel
ฮะ

ขอแสดงความนับถือฮะ
8) 8)

 

[quote="ชายเจตน์"]
มีอีกส่วนที่เหมือนไม่เกี่ยวแต่ก็เกี่ยว คือ หากตั้งระบบให้เป็นภาษาไทยเมื่อไหร่จะใช้ K3b โปรแกรมจะแครชเลยครับ (ข้อนี้ขอแถมเผื่อรู้คำตอบน่ะครับ) ...
[/quote]

เดาว่าเป็นบั๊กร้ายแรงของ Qt ครับ ตามที่แจ้งที่
http://groups.google.com/group/thai-linux-foss-devel/browse_thread/thread/c1784080a86c212e

[quote]ใน gui/text/qtextengine.cpp
ฟังก์ชัน glyph_metrics_t QTextEngine::boundingBox(int from,  int len) const
มีการเรียก index ของ array *logClusters* เกินค่าที่มันมี (ทำไมถึงเกิน ??)
จึงได้เพิ่มการตรวจเข้าไปดังนี้ครับ

           if (logClusters[pos + ilen - 1] >= glyphs.numGlyphs)
               logClusters[pos + ilen - 1] = glyphs.numGlyphs - 1; [/quote]

คือถ้า QT ที่ยังไม่แพตช์ เมื่อเจอภาษาไทยจะ Crash ทันทีครับ ดังนั้นต้องแพตช์ไทยให้ Qt สถานเดียวครับ

[hr][/hr]

ท้ายสุด l10n-thai ของ KDE SC 4.4.X อยู่ที่ SVN นะครับ
ผมอัปเดตไปล่าสุดเมื่อ 3 อาทิตย์ก่อน
เอา จาก svn ของ stable branches ได้เลย ตามคอมมานด์ไลน์ด้านล่างครับ

# cd ~/l10n-kde4
# svn co svn://anonsvn.kde.org/home/kde/branches/stable/l10n-kde4/th

ส่วนจาก trunk นั้น messages ไม่ตรงกันกับ 4.4.x ค่อนข้างมากแล้วครับ (ตอนนี้เป็น 4.4.72svn หรือ 4.5 รุ่นตั้งไข่นั่นเอง)
แต่สามารถเอาพวก extragear-* ต่าง ๆ จาก trunk มาใช้ได้ครับ (digikam, amarok, เป็นต้น)
ซึ่ง l10 ของพวก extragear-* พวกนี้มักจะมากับแพกเกจของมันเลยไม่ได้รวมมากับ stable
อัปเดตสุดของผมจะอยู่ที่ trunk ครับ messages ต่าง ๆ จะตรงกว่า หมายถึง digiKam, Amarok, K3b etc. ที่อยู่ใน extragear นะครับ

;D

 

ขอบคุณครับพี่โด่ง ...  :-*

ข้อมูลเพียงพอต่อความเข้าใจอยู่บ้าง เมื่อคืนก็ลองทำดูโดยดาวน์โหลดซอร์ส qt4-x11 มาแพทช์ซอร์สที่แนะนำ นั่งรอขั้นตอนคอมไพล์จนง่วงก็เลยนอนปล่อยเครื่องทิ้งไว้ทั้งคืน เมื่อเช้าตรวจสอบดูไม่พบ Error ในตอนจบ คืนนี้กลับไปทำต่อให้จบ ...

ส่วนการ"ตัดทำไทย" ที่แพทช์ตามที่คุณโ่ด่งแนะนำนั้น แล้วกรณีที่ผมติดตั้ง libthai-dev ผลก็คือระบบตัดคำไทยได้ ขอถามความรู้เพิ่มเติมอีกหน่อย ข้อที่แตกต่างกันคืออะไรหรือครับ ...

ส่วนบั๊กโปรแกรมแครชเมื่อใช้โลแคลไทย เห็นบอกว่าต้องแพทช์ qt ความหมายว่าทำขั้นตอนข้างบนแล้วส่วนนี้จะหายไปแบบนั้นหรือเปล่าครับ คืออ่านแล้วไม่เข้าใจว่าเกี่ยวข้องหรือไม่เกี่ยวกัน...

อีกนิดครับ ตามส่งบั๊ก/แพทช์ไปยังแหล่งต้นน้ำ KDE ภาษาไทยจะสมบูรณ์ในรุ่นไหนครับ...

ถ้าไม่มีพี่โด่งกะพี่อ๊อท อนาคตภาษาไทยของ KDE ล่ะครับเนี่ย ...

ปล.กระทู้นี้โยกมาจากหมวด OSS/Developer ชักเริ่มสนสนมันจะอยู่หมวดไหนดี...  :P 

 

กลับบ้านมาใช้คำสั่ง [b]make install[/b] ผ่านไปได้ด้วยดี แต่ลองจัดทำเป็นแพกเกจ deb ด้วยคำสั่ง [b]debuild -us -uc[/b] ไม่ผ่านง่ะ ลอกเมสบางส่วนให้ดูครับ พอไหวมั้ยครับ ...  ;D

[code]rm -rf /root/qt4-x11-4.6.2/bin/qmake .deps
make[3]: Leaving directory `/root/qt4-x11-4.6.2/qmake'
cd src/tools/bootstrap/ && /usr/bin/make -f Makefile distclean
make[3]: Entering directory `/root/qt4-x11-4.6.2/src/tools/bootstrap'
/root/qt4-x11-4.6.2/bin/qmake -spec ../../../mkspecs/linux-g++ -unix -o Makefile bootstrap.pro
make[3]: /root/qt4-x11-4.6.2/bin/qmake: Command not found
make[3]: