230 likes | 428 Views
ระบบภาษาไทยในยูนิกซ์. ดร . วิรัช ศรเลิศล้ำวาณิช ผู้อำนวยการฝ่ายวิจัยและพัฒนาสาขาสารสนเทศ ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ virach@nectec.or.th http://www.links.nectec.or.th/virach for IBM at SoftwarePark 15 June 2001. ยุคของการพัฒนาระบบภาษาไทย. ยุคสร้างมาตรฐาน (-1990-)
E N D
ระบบภาษาไทยในยูนิกซ์ ดร. วิรัช ศรเลิศล้ำวาณิช ผู้อำนวยการฝ่ายวิจัยและพัฒนาสาขาสารสนเทศ ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ virach@nectec.or.th http://www.links.nectec.or.th/virach for IBM at SoftwarePark 15 June 2001
ยุคของการพัฒนาระบบภาษาไทยยุคของการพัฒนาระบบภาษาไทย • ยุคสร้างมาตรฐาน (-1990-) • ยุค Implementation (1991-) • ยุค Solution (1996-) • ยุคผู้ใช้/ยุครณรงค์ (2001-)
1. ยุคสร้างมาตรฐาน • รหัสเกษตร (เน้นการแสดงผล), IBM EBCDIC, รหัสผู้ผลิต • รหัสมาตรฐาน มอก. 620-2529 และ มอก. 620-2533 (เน้นการเรียงลำดับ) : ASCII, EBCDIC Extensions • รหัสส่วนขยายของผู้ผลิต (เพื่อการแสดงผลและการพิมพ์) • การกำหนดรหัสภาษาไทยแบบ EUC (Extended UNIX Code) • TIS : รหัส มอก. 620-2533 • X-TIS : รหัส 2 ไบต์เพื่อการแสดงผลแบบ cell-based ย อู่ ย ยู ย่ อ อ “อยู่” EA = B0 (base) + 38 (อู) + 02 (อ่) CD B0 C2 EA CD C2 D9 E8 X-TIS TIS
1. ยุคสร้างมาตรฐาน • การกำหนดเป็นมาตรฐานสากล • ISO-IR-166 • Unicode & ISO/IEC 10646 • ISO/IEC 8859-11 • ข้อกำหนด วทท 2.0 (Thai API Consortium) • Character set (TACTIS) • Input/Output Method • มาตรฐานอื่นๆ เช่น แป้นพิมพ์ รูปแบบวันที่ ฯลฯ
1. ยุคสร้างมาตรฐาน • มาตรฐานของผู้ผลิต • IBM CP838 (รหัสเกษตร) • IBM CP874 (รหัส มอก. + ส่วนขยาย) • Microsoft Windows-874 (รหัส มอก. + ส่วนขยาย) • Mac Thai (รหัส มอก. + ส่วนขยาย)
2. ยุค Implementation • X Consortium : ภาษาไทยใน X11R6 • Sun : Thai Solaris (วทท 2.0), ภาษาไทยใน CTL/Motif (With OSF), ภาษาไทยใน Pango Engine • DEC : วทท 2.0 ใน Digital UNIX • IBM : ระบบภาษาไทยใน AIX, OS/2, codepage ภาษาไทย • Microsoft : codepage ภาษาไทย, ฟอนต์ส่วนขยาย, Unicode ใน Office 97 และ Windows 2000 • MacIntosh : codepage ภาษาไทย, ฟอนต์ส่วนขยาย, การสนับสนุนภาษาไทย
2. ยุค Implementation • NECTEC : • tterm : เทอร์มินัลไทย ดัดแปลงจาก kterm โดยใช้ X-TIS620 • การสร้าง X bitmap font • มานพ, วรเดช, ไพศาล ฯลฯ
2. ยุค Implementation • Thai Project ที่ NACSIS (วุฒิชัย): • cttex : โปรแกรมตัดคำและจัดเรียงวรรณยุกต์สำหรับ LaTeX • thailatex-component : style, font สำหรับ LaTeX • likit : editor ภาษาไทย • xiterm+thai : เทอร์มินัลภาษาไทยที่มี keyboard map ในตัว แสดงผลภาษาไทย 4 ระดับ ดัดแปลงจาก xiterm ของ AfterStep • http://thaigate.nacsis.ac.jp/
2. ยุค Implementation • ZzzThai (พูลลาภ): • TE (Thai Extension) • xfig-thai • RPM packages • Thai HOWTO • http://www.fedu.uec.ac.jp/ZzzThai/Linux/
2. ยุค Implementation • โครงการ Mozilla Thai Enabling (สัมพันธ์) : • การสนับสนุนรหัส MIME TIS-620 • การตัดคำภาษาไทย • libInThai
2. ยุค Implementation • NECTEC : • ภาษาไทยใน Mule/GNU Emacs • quail keyboard map ภาษาไทย • การ render ด้วยรหัส 2 ไบต์ (Language Char [LC] + มอก.) • Mule ผนวกกับ GNU Emacs ตั้งแต่รุ่น 20.1 (1997) • Emacs 20.3.10.1 - • ฟอนต์ใหม่ (nectec18) • การตรวจ/แก้ลำดับการป้อนอักขระภาษาไทย • การตัดคำ • พจนานุกรม (Lexitron, ราชบัณฑิตยสถาน)
2. ยุค Implementation • NECTEC : • ภาษาไทยใน Xemacs • Xemacs : Emacs สำหรับ X Window โดย Sun • การ render ภาษาไทยด้วย pre-composed font (X-TIS620) • ใช้ภาษาไทยได้ตั้งแต่รุ่น 21.2
2. ยุค Implementation • NECTEC : • Babel-based Thai LaTeX • Babel: การสนับสนุนภาษาท้องถิ่นสำหรับ LaTeX โดย Johannes Braams • กฎสำหรับการจัดเรียงวรรณยุกต์ด้วย TeX virtual font (.enc -> .vf) • LaTeX style สำหรับ Babel package (.sty) • การเลือก roman, san serif type face • ตัดคำด้วย swath โดยใช้เป็น external filter • ยังไม่ได้รวมใน Babel แต่แจกจ่ายเป็น package ต่างหาก
2. ยุค Implementation • NECTEC : • ภาษาไทยใน Omega • Unicode TeX kernel โดย John Plaice, Yannis Haralambus • การจัดเรียงวรรณยุกต์ด้วย TeX virtual font • ตัดคำด้วย swath โดยใช้เป็น external filter • Kerning สำหรับภาษาไทย • ฟอนต์ Norasi • Omega ยังไม่แจกจ่าย
2. ยุค Implementation • NECTEC : • ฟอนต์แห่งชาติ • โดย NECTEC ร่วมกับนักพัฒนาฟอนต์ • ข้อกำหนดสำหรับการสร้างฟอนต์ไทย: รูปร่าง ขนาด สัดส่วน • ฟอนต์ตัวอย่าง • ฟช ๑ : ฟอนต์กินรี : Roman Style • ฟช ๒ : ฟอนต์ครุฑ : San Serif Style • ฟช ๓ : ฟอนต์นรสีห์ : จากโครงการ Omega (Roman Style) • หนังสือคู่มือการสร้างฟอนต์
2. ยุค Implementation • NECTEC : • โลแคลไทยใน GNU C Library • การใช้รหัสอักขระท้องถิ่น : TIS-620 • LC_COLLATE : ข้อกำหนดการเรียงลำดับคำไทยอย่างละเอียด • LC_CTYPE : การจัดการอักขระไทย • LC_TIME : ปฏิทินไทย + พุทธศักราช • LC_MONETARY : หน่วยเงินบาท, การแสดงผลค่าเงิน • LC_NUMERIC : รูปแบบการเขียนตัวเลข • เริ่มใช้ th_TH.TIS-620 locale ได้ตั้งแต่ glibc 2.1.1
2. ยุค Implementation • NECTEC : • Thai Translation Project • การแปลข้อความในโปรแกรมต่างๆ เป็นภาษาไทย • GNOME Thai translation • Sourceforge.net Thai translation • การพัฒนาโปรแกรมช่วยเก็บประวัติการแปลในงานเก่าๆ เพื่อการแปลที่คงเส้นคงวา • ระบบการแปลผ่านเว็บเพื่อการร่วมงานแปลผ่านเครือข่าย
2. ยุค Implementation • NECTEC : • SWATH (Smart Word Analysis for THai) • ตัดคำโดยอาศัยพจนานุกรม (longest matching, maximal matching, or bi-gram model) • สนับสนุน plain text (TIS-620, UTF-8), LaTeX, HTML, RTF • แจกจ่ายเป็น package อิสระ
2. ยุค Implementation • NECTEC : • ภาษาไทยใน OpenOffice • OpenOffice : Open-source StarOffice จาก Sun • การตัดคำไทยด้วยพจนานุกรม • งานในอนาคต • การเรียงลำดับคำไทย • ไกวัลซอฟต์แวร์ : • KDE ไทย • K Office ไทย
3. ยุค Solution • ไกวัลซอฟต์แวร์ : KW Linux : RedHat based • ม. บูรพา : Burapa Linux : Slackware based • NECTEC : Linux-SIS : Slackware, RedHat • NECTEC/TLWG : Linux-TLE : Mandrake, RedHat • Zion Interface : ZiiF Linux : RedHat • Debian GNU/Linux : มี package ภาษาไทยแล้ว (cttex, font, xiterm+thai, thai-latex)
4. ยุคผู้ใช้/ยุครณรงค์ • TLUG : • สนับสนุนผู้ใช้ลินุกซ์ • http://tlug.cpe.ku.ac.th/ • TLWG : • พัฒนาระบบภาษาไทยในลินุกซ์ • เว็บบอร์ดให้คำปรึกษา • ข่าว • http://www.linux.thai.net/
4. ยุคผู้ใช้/ยุครณรงค์ • NECTEC : • Open Source section ในการประกวดซอฟต์แวร์ขนาดเล็ก • Linux Installation Contest (LinuxSIS, LinuxTLE) • Software Park : • การจัด/สนับสนุนงานสัมมนา • การตั้ง Special Interest Group
Future Issues • tis620-0 (มอก.), tis620-1 (Mac), tis620-2 (Windows) • Propotional, Monospace, CharCell • XIM: (callback สำหรับการจัดการ input buffer) • Space char ท้ายบรรทัดสำหรับ Markup language • การใช้ ZWSP • High quality printout