Thai setting

อัดรูปดิจิตอล ทำสมุดภาพของคุณเอง
รอรับได้. ท่องเที่ยว แต่งงาน ฯลฯ

www.tanabutr.co.th/photobook


บันทึการติดตั้ง Debian - แป้นพิมพ์ภาษาไทยใน GNOME

รู้สึกว่าตัวเองชอบ (ชิน?) GNOME มากกว่า KDE พอลง Debian แล้วใช้ GNOME 2.8 รู้สึกดีกว่า GNOME ที่อยู่ในเครื่องเดสก์ท็อปอีกตัวที่เป็น GNOME 2.6. อยากจะลองใช้ GNOME 2.10 เหมือนกัน.

การปรับแต่งแป้นพิมพ์ภาษาไทยก็มีหลักคล้ายๆกับฟอนต์คือต้องแยกแยะว่าเรากำลังจะปรับแต่งระดับทั้งระบบหรือเฉพาะส่วนบุคคล. ถ้าจะปรับแต่งสำหรับทั้งระบบก็ไปแก้ที่ไฟล์ /etc/XF86Config หรือ /etc/xorg.conf. ถ้าปรับแต่งเฉพาะบุคคล, GNOME มีโปรแกรมอำนวยความสะดวกด้านนี้และ GNOME จะไม่สนการปรับแต่งในระบบโดยรวมด้วยซ้ำ (เปลี่ยนให้ GNOME ยอมรับการปรับแต่งแป้นพิมพ์ของระบบโดยรวมได้).

apt repository ของ LTN

ในเซิร์ฟเวอร์ของ LTN (Linux dot Thai dot Net) มี repository สำหรับ apt ด้วยและในนั้นมีโปรแกรมหลายตัวที่เกี่ยวกับภาษาไทยและใหม่กว่า repository ของ Debian. รู้สึกว่าคุณอ็อดเป็นคนทำไว้. วิธีเพิ่ม repository เพียงแค่แก้ไฟล์ /etc/apt/sources.list โดยเพิ่มบรรทัดต่อไปนี้

ติดตั้งฟอนต์ภาษาไทยใน Debian

ว่าด้วยเรื่องติดตั้งฟอนต์ภาษาไทยใน Debian. การติดตั้งฟอนต์มีหลายวิธี, เวลาบอกว่าจะติดตั้งฟอนต์ควรจะนึกถึงเสมอว่าเรากำลังจะติดตั้งฟอนต์ด้วยวิธีไหน, ฟอนต์อะไร (บิตแมปหรือทรูไทป์), ใช้วิธีแบบไหน, จะได้ไม่สับสนครับ. วิธีติดตั้งฟอนต์อาจแบ่งได้เป็น

ปรับแต่งโลแคลใน Debian

โลแคล

ในระบบที่ผมลงเรียบร้อยแล้วไม่มีโลแคลภาษาไทย.

# 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

วันก่อนลองคอมไพล์ Firefox กับแพชตัดคำภาษาไทยของพี่ฮุ้ยไปแล้ว. วันนี้เอาใหม่ใช้แพช icu ของคุณสัมพันธ์แต่เอาใช้กับ Thunderbird. และใช้วิธีสร้างคนและแบบกับคราวที่แล้ว. คราวนี้จะใช้ ebuild สร้างแทนที่จะใช้ emerge.

อัปเดทไลบรารี icu ใน Gentoo

ลองคอมไพล์ Firefox + icu patch ให้เหมือนกับ Linux TLE แต่ยังมันก็ไม่ตัดคำให้เสียที. เลยสงสัยว่าอาจจะเป็นเพราะไลบรารี icu ใน Gentoo มันเก่าไป. ตอนนี้ไลบรารี icu ที่มากับ Gentoo ยังอยู่ที่ 2.8 แต่ไลบรารี icu ที่ใช้ใน Linux TLE เป็นเวอร์ชัน 3.0. กรณีนี้ emerge sync ก็ยังไม่มีเวอร์ชันใหม่เลยต้องสร้าง ebuild เอง.

กระแสตัดคำภาษาไทยใน Firefox

หลังจากที่พี่ฮุ้ยได้ทำการลองคอมไพล์ Firefox สำหรับวินโดวส์ (Windows) และแมค (Mac OS X) เมื่อไม่กี่วันก่อน, กระแสตัดคำภาษาไทยใน Firefox เริ่มร้อนแรงขึ้นทุกทีๆ. เมื่อวานนี่คุณอ็อดก็ได้สร้างเว็บเฉพาะ Firefox Thai Version ไว้สรุปเกี่ยวกับเรื่องสถานะการตัดคำภาษาไทยใน Firefox ขณะนี้ครับ.

สรุปตามเวลาเท่าที่ตามเรื่องได้คือ

สำหรับคนที่ใช้ลินุกซ์แล้วต้องการรู้ว่าคอมไพล์กันอย่างไรให้ดูที่เรื่อง

ข้อมูลผิดถูกอย่างไรช่วยแก้ไขในคอมเมนต์ด้วยแล้วกันครับ. และหวังว่าคงจะได้ขึ้นต้นน้ำ (upstream) ส่งกลับไปหากลุ่มพัฒนา mozilla ในเร็ววันนะครับ.

เพิ่มเติม:

Angsana LaTeX

เรื่องเก่าๆที่ยังใหม่เกี่ยวกับการใช้ฟอนต์ Angsana กับ LaTeX ครับ. วันก่อนมีคนถามในบอร์ดว่าอ่านเอกสารแล้วทำไม่ได้. ผมก็ไปลง TLE 5.5 ในโน็ตบุคที่มีอยู่แล้วก็ลองทำดูก็ไม่ได้จริงๆด้วย. คิดว่าเป็นปัญหาของ updmap. เลยทำเป็นแพกเกจใหม่หมด, มีสคริปต์ของ fontforge เปลี่ยนชื่ออักขระให้เลยไม่ต้องเปิด fontforge แก้ทีละตัวเหมือนแต่ก่อน. แล้วสคริปต์ก็จะจัดการทั้งหมดให้รวมถึงติดตั้งด้วย. จริงๆแล้วสคริปต์ยังไม่สมบูรณ์นักเพราะมีสมมติฐานหลายแห่งเช่น thailatex ต้องติดตั้งใน /usr ไม่ใช่ /usr/local ทำให้บางคนอาจจะใช้ไม่ได้.

Type Thai in emacs

วันนี้มีคนเขียนเมลมาถามเกี่ยวกับการพิมพ์ภาษาไทยใน emacs เลยเขียนสรุปไว้ที่ LTN/Plone ครับ.

Comments: blogger