Thai setting
www.tanabutr.co.th/photobook
บันทึการติดตั้ง Debian - แป้นพิมพ์ภาษาไทยใน GNOME
Submitted by poonlap on Fri, 2005-04-01 14:29.รู้สึกว่าตัวเองชอบ (ชิน?) GNOME มากกว่า KDE พอลง Debian แล้วใช้ GNOME 2.8 รู้สึกดีกว่า GNOME ที่อยู่ในเครื่องเดสก์ท็อปอีกตัวที่เป็น GNOME 2.6. อยากจะลองใช้ GNOME 2.10 เหมือนกัน.
การปรับแต่งแป้นพิมพ์ภาษาไทยก็มีหลักคล้ายๆกับฟอนต์คือต้องแยกแยะว่าเรากำลังจะปรับแต่งระดับทั้งระบบหรือเฉพาะส่วนบุคคล. ถ้าจะปรับแต่งสำหรับทั้งระบบก็ไปแก้ที่ไฟล์ /etc/XF86Config หรือ /etc/xorg.conf. ถ้าปรับแต่งเฉพาะบุคคล, GNOME มีโปรแกรมอำนวยความสะดวกด้านนี้และ GNOME จะไม่สนการปรับแต่งในระบบโดยรวมด้วยซ้ำ (เปลี่ยนให้ GNOME ยอมรับการปรับแต่งแป้นพิมพ์ของระบบโดยรวมได้).
apt repository ของ LTN
Submitted by poonlap on Fri, 2005-04-01 14:27.ในเซิร์ฟเวอร์ของ LTN (Linux dot Thai dot Net) มี repository สำหรับ apt ด้วยและในนั้นมีโปรแกรมหลายตัวที่เกี่ยวกับภาษาไทยและใหม่กว่า repository ของ Debian. รู้สึกว่าคุณอ็อดเป็นคนทำไว้. วิธีเพิ่ม repository เพียงแค่แก้ไฟล์ /etc/apt/sources.list โดยเพิ่มบรรทัดต่อไปนี้
ติดตั้งฟอนต์ภาษาไทยใน Debian
Submitted by poonlap on Thu, 2005-03-31 14:24.ว่าด้วยเรื่องติดตั้งฟอนต์ภาษาไทยใน Debian. การติดตั้งฟอนต์มีหลายวิธี, เวลาบอกว่าจะติดตั้งฟอนต์ควรจะนึกถึงเสมอว่าเรากำลังจะติดตั้งฟอนต์ด้วยวิธีไหน, ฟอนต์อะไร (บิตแมปหรือทรูไทป์), ใช้วิธีแบบไหน, จะได้ไม่สับสนครับ. วิธีติดตั้งฟอนต์อาจแบ่งได้เป็น
ปรับแต่งโลแคลใน Debian
Submitted by poonlap on Wed, 2005-03-30 14:21.โลแคล
ในระบบที่ผมลงเรียบร้อยแล้วไม่มีโลแคลภาษาไทย.
# locale -a C POSIX en_US en_US.iso88591
ใน Debian จะมีคำสั่ง locale-gen สร้างโลแคลต่างๆตามที่ระบุในไฟล์ /etc/locale.gen. แต่เพื่อความแน่นอนจะใช้คำสั่ง dpkg-reconfigure ในการสร้างโลแคลภาษาไทยแทน (การสร้างโลแคลจริงๆจะใช้คำสั่ง localedef).
# dpkg-reconfigure locales
แล้วจะมีหน้าจอแสดงโลแคลที่ต้องการสร้างสำหรับระบบให้เลือก.

ลองสั่งคำสั่ง locale -a ใหม่ก็จะเห็น th_TH, th_TH.tis620, th_TH.utf8 และ thai ปรากฏครับ. อธิบายหน่อยแล้วกันว่า locale คือข้อมูลตัวแปรที่เกี่ยวกับภาษา. th แสดงถึงภาษาที่ใช้ว่าเป็นภาษาไทย. TH แสดงถึงประเทศที่ใช้ภาษา. ดังนั้น th_TH ก็หมายถึงภาษาไทยที่ใช้ในประเทศไทย, คงไม่มีประเทศอื่นที่ไหนที่ใช้ภาษาไทยอีกหรอก. อย่างภาษาอังกฤษนี่ที่ประเทศอังกฤษก็ใช้ภาษาอังกฤษ, ที่อเมริกาก็ใช้ภาษาอังกฤษ. คือภาษาเดียวกันยังมีความแตกต่างตามประเทศที่ใช้ด้วย. โลแคลภาษาอังกฤษที่ใช้ในสหราชอณาจักรก็จะเป็น en_GB, โลเคลภาษาอังกฤษที่ใช้ในอเมริกาก็จะเป็น en_US.
ข้อมูลส่วนสุดท้ายคือการลงรหัส (encoding) ของภาษา. ในภาษาไทยมีการลงรหัสใหญ่สองแบบคือแบบ 8 บิตกับยูนิโค้ด. แบบ 8 บิตนี่ก็ยังมีสองแบบคือ TIS-620 และ ISO-8859-11. ไม่เคยดูมาตรฐาน ISO-8859-11 เพราะเขาขาย. แต่คิดว่าเหมือนกับ TIS-620 ทุกประการ. ส่วน UTF-8 เป็นการลงรหัสอักขระของยูนิโค้ด. ตัวอย่างเช่นอักขระ "ก" ถ้าการลงรหัสเป็นแบบ TIS-620 หรือ ISO-8859-11 ก็จะมีค่าเป็น 0xA1. ส่วน UTF-8 จะมีค่าเป็น 0xE0 0xB8 0x81 กลายเป็นข้อมูลแบบ 3 ไบต์ไปแต่มีข้อดีที่ว่า ASCII ไม่เปลี่ยนแปลงและลงรหัสได้หลายภาษา.
อยากดูด้วยตัวเองก็ลองสั่งคำสั่ง
$ LANG=th_TH echo -n ก | iconv -f tis620 -t utf8 | LANG=C less
th_TH และ thai เป็นชื่อสั้นๆ (alias) ของ th_TH.TIS-620 ซึ่งเขียนไว้ในไฟล์ /usr/lib/X11/locale/locale.alias หรือ /usr/share/locale/locale.alias.
แล้วโลแคลมันดีตรงไหน? โปรแกรมต่างๆจะรับรู้ตัวแปรสภาพแวดล้อมต่างๆและตัวแปรที่เกี่ยวกับโลแคลได้แก่ LANG, LC_ALL, LC_CTYPE, LC_COLLATE, ฯลฯ. ถ้าโปรแกรมรู้ว่าค่าตัวแปรสภาพแวดล้อมเหล่านี้เป็นภาษาไทยก็จะทำอะไรๆที่เกี่ยวข้องกับภาษาให้เช่น แสดงเมนูเป็นภาษาไทย, แสดงวันที่ปีแบบไทยๆเป็นต้น. อ่าน man locale และ man localedef ต่อเองแล้วกันครับ.
$ export LANG=th_TH
$ date
พ. 30 มี.ค. 2548 00:58:57 JST
$ cal
มีนาคม 2005
อา จ. อ. พ. พฤ ศ. ส.
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
$ LANG=C cal
March 2005
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
โลแคลพิเศษได้แก่ C กับ POSIX, มีความหมายนัยๆคือภาษาอังกฤษใช้กับคอมพิวเตอร์. เอาเท่านี้ก่อนแล้วกัน.
หมายเหตุ:
Thai Thunderbird กับ icu patch
Submitted by poonlap on Mon, 2005-01-24 08:02.
วันก่อนลองคอมไพล์ Firefox กับแพชตัดคำภาษาไทยของพี่ฮุ้ยไปแล้ว. วันนี้เอาใหม่ใช้แพช icu ของคุณสัมพันธ์แต่เอาใช้กับ Thunderbird. และใช้วิธีสร้างคนและแบบกับคราวที่แล้ว. คราวนี้จะใช้ ebuild สร้างแทนที่จะใช้ emerge.
อัปเดทไลบรารี icu ใน Gentoo
Submitted by poonlap on Mon, 2005-01-24 08:01.ลองคอมไพล์ Firefox + icu patch ให้เหมือนกับ Linux TLE แต่ยังมันก็ไม่ตัดคำให้เสียที. เลยสงสัยว่าอาจจะเป็นเพราะไลบรารี icu ใน Gentoo มันเก่าไป. ตอนนี้ไลบรารี icu ที่มากับ Gentoo ยังอยู่ที่ 2.8 แต่ไลบรารี icu ที่ใช้ใน Linux TLE เป็นเวอร์ชัน 3.0. กรณีนี้ emerge sync ก็ยังไม่มีเวอร์ชันใหม่เลยต้องสร้าง ebuild เอง.
กระแสตัดคำภาษาไทยใน Firefox
Submitted by poonlap on Thu, 2005-01-20 07:59.หลังจากที่พี่ฮุ้ยได้ทำการลองคอมไพล์ Firefox สำหรับวินโดวส์ (Windows) และแมค (Mac OS X) เมื่อไม่กี่วันก่อน, กระแสตัดคำภาษาไทยใน Firefox เริ่มร้อนแรงขึ้นทุกทีๆ. เมื่อวานนี่คุณอ็อดก็ได้สร้างเว็บเฉพาะ Firefox Thai Version ไว้สรุปเกี่ยวกับเรื่องสถานะการตัดคำภาษาไทยใน Firefox ขณะนี้ครับ.
สรุปตามเวลาเท่าที่ตามเรื่องได้คือ
- คุณสัมพันธ์ทำแพช (patch) สำหรับ Firefox ที่เอาไว้ใช้กับ Linux TLE โดยใช้ไลบรารี ICU (International Components for Unicode) ออกมา.
ดูจากที่สะสมแพชของคุณโชค, ผมเข้าใจว่าแพชแรกสุดที่ใช้ ICU น่าจะเป็น firefox-0.9.2-icu-thai-lwbr.patch ซึ่งในไฟล์นั้นเขียนว่าสร้างโดยคุณ NATTAPOL KRITSUTHIKUL เมื่อ 20040214. เห็นที่พูดคุยอยู่ใน blog ของคุณโชคว่ามันช้า (ลองแล้วช้าจริงๆ) คุณสัมพันธ์เลยทำแพชตัวใหม่ mozilla-1.7.3-firefox-1.0-thunderbird-0.9-icuthai.patch ซึ่งก็คือที่ใช้ในลินุกซ์ทะเล 7.0 นั่นเอง.
- คุณ bact' ทำ Bookmarklet ซึ่งเป็น Java Script เล็กๆสำหรับตัดคำในเว็บ. ใช้กับ Firefox ได้อย่างดีตั้งขื่อไว้ว่า Thaiwrap. อันนี้ดีตรงที่ว่าไม่ขึ้นกับเบราเซอร์ที่ใช้แต่มีข้อเสียนิดหน่อยที่ว่าจะใช้เวลาประมวลนาน, และผู้ใช้ต้อง activate เอง. เห็นตอนนี้เขาเสนอให้ทำเป็นฝังใน HTML เลยแล้วใช้ onLoad ก็ได้.
- คุณอ็อดเอาแพชที่คุณสัมพันธ์มาเข้า CVS ของ LTN แล้วก็สร้างแพชตัดคำตามโดยใช้ libthai แทน ICU ชื่อ mozilla-libthai-wbr-1.0.patch ดูด้วย.
- คุณอ็อดยุให้พี่ฮุ้ยลองบิวลด์ (build) Firefox บนวินโดวส์ดู, คุณท่านก็เลยเอาแพชที่มีอยู่มาศึกษาเขียนใหม่ให้เข้ากับโปรแกรม cttex ซึ่งเป็นโปรแกรมตัดคำที่พี่ฮุ้ยเขียนไว้เองตั้งนานแล้ว. เราเลยได้ใช้ Firefox บนวินโดวส์กับบนแมคที่ตัดคำภาษาไทยได้ในวันนี้.
- คุณสัมพันธ์สร้าง Firefox บนวินโดว์ + มีตัวอินสตอลล์ให้ด้วยทำให้ติดตั้งง่ายขึ้น. ดาว์นโหลดได้ที่เว็บไซด์ของเขา. ของคุณสัมพันธ์จะใช้ไลบรารี ICU ช่วยในการตัดคำครับ.
สำหรับคนที่ใช้ลินุกซ์แล้วต้องการรู้ว่าคอมไพล์กันอย่างไรให้ดูที่เรื่อง
- Thai Firefox ตัดคำและจัดระดับวรรณยุกต์สระใน Gentoo (ใช้แพชตัดคำแบบ cttex)
- อัปเดทไลบรารี icu ใน Gentoo ให้แน่ใจว่าในระบบมีไลบรารี ICU รุ่นมากกว่าหรือเท่ากับ 3.0.
- Thai Thunderbird กับ icu patch (ใช้แพชตัดคำไลบรารี ICU)
- สร้าง FireFox ตัดคำภาษาไทยจากรหัสต้นฉบับ
ข้อมูลผิดถูกอย่างไรช่วยแก้ไขในคอมเมนต์ด้วยแล้วกันครับ. และหวังว่าคงจะได้ขึ้นต้นน้ำ (upstream) ส่งกลับไปหากลุ่มพัฒนา mozilla ในเร็ววันนะครับ.
เพิ่มเติม:
Angsana LaTeX
Submitted by poonlap on Thu, 2004-10-07 22:15.เรื่องเก่าๆที่ยังใหม่เกี่ยวกับการใช้ฟอนต์ Angsana กับ LaTeX ครับ. วันก่อนมีคนถามในบอร์ดว่าอ่านเอกสารแล้วทำไม่ได้. ผมก็ไปลง TLE 5.5 ในโน็ตบุคที่มีอยู่แล้วก็ลองทำดูก็ไม่ได้จริงๆด้วย. คิดว่าเป็นปัญหาของ updmap. เลยทำเป็นแพกเกจใหม่หมด, มีสคริปต์ของ fontforge เปลี่ยนชื่ออักขระให้เลยไม่ต้องเปิด fontforge แก้ทีละตัวเหมือนแต่ก่อน. แล้วสคริปต์ก็จะจัดการทั้งหมดให้รวมถึงติดตั้งด้วย. จริงๆแล้วสคริปต์ยังไม่สมบูรณ์นักเพราะมีสมมติฐานหลายแห่งเช่น thailatex ต้องติดตั้งใน /usr ไม่ใช่ /usr/local ทำให้บางคนอาจจะใช้ไม่ได้.