=================================
ผมอยากแยกปัญหาเรื่องภาษาไทยบนระบบคอมพิวเตอร์เป็น 2 ระดับ คือ
1. ระดับของมาตรฐาน ข้อกำหนดทางเอกสาร
2. ระดับของการ implementation ของผู้พัฒนาซอฟต์แวร์
สำหรับข้อ 1. นั้น การประมวลผลภาษาไทยบนคอมพิวเตอร์ (ในภาพกว้าง
คือรวมตั้งแต่ฟอนต์, encoding, keyboard layout, การตัดคำ ฯลฯ)
ยึดหลักตามเอกสาร วทท. (เวอร์ชันล่าสุดคือ 2.0)
รู้จักในชื่อภาษาอังกฤษว่า WTT
ลิงก์ประกอบ
http://www2.nectec.or.th/it-standards/
http://www.inet.co.th/cyberclub/trin/thairef/
http://en.wikibooks.org/wiki/FOSS_Localization/Localization_Efforts_in_the_Asia-Pacific#Standardization
เอกสารชุดนี้ออกโดยเนคเทค (โดยมี ดร. ทวีศักดิ์ ผอ.
เนคเทคคนก่อนเป็นหัวหน้าทีม) ในช่วงต้น 90s
ซึ่งแพร่หลายและนิยมในหมู่ผู้ผลิตซอฟต์แวร์ทั่วไป (ไมโครซอฟท์, แอปเปิล,
OpenOfice ฯลฯ)
ปัญหาของมาตรฐานชุดนี้มีสองข้อ อันแรกคือออกมาก่อนมาตรฐานสากลใหม่ๆ
หลายตัว เช่น Unicode 1.0 (1991) หรือ OpenType (1996)
ทำให้ปัจจุบันถือว่าล้าสมัย ส่วนปัญหาข้อที่สองคือ
ในมาตรฐานเองยังขาดรายละเอียดเล็กๆ น้อยๆ อีกหลายจุด (ถ้าผมจำไม่ผิด
อย่างการ sorting วรรณยุกต์จะมีแค่ "ก ก่ ก้ ก๊ ก๋" แต่ไม่ระบุวิธีเรียก
"ก็" หรือ "กั" ทำนองนี้)
ซึ่งพวกนี้ปล่อยให้ผู้ผลิตซอฟต์แวร์ไปนั่งคิดเอาเอง ว่าจะ implement
อย่างไร มันเลยออกมาต่างกัน
ช่วงที่ผมทำงานที่ SIPA เจ้านายของผมคือคุณเจมส์ คลาร์ค
นั้นมองว่าปัญหาเรื่องมาตรฐานล้าสมัย และคิดว่าต้องแก้ไขใหม่เป็น วทท. 3
อันนี้ทาง ดร. ทวีศักดิ์เองก็เห็นด้วย แต่สุดท้ายแล้วไม่มีคนผลักให้เกิด
สาเหตุหนึ่งเป็นเพราะยุคนี้มีกระทรวง ICT เกิดขึ้นมา
ซึ่งทำให้เกิดปัญหาการแบ่งแยกหน้าที่กับเนคเทค (ซึ่งสังกัด สวทช.
และสังกัดกระทรวงวิทย์อีกที)
ไม่เหมือนแต่ก่อนที่พูดถึงคอมพิวเตอร์ในเมืองไทย
ทุกคนมองไปที่เนคเทคเจ้าเดียว ทางกระทรวง ICT เองเป็นกระทรวงตั้งใหม่
บุคคลากรดึงมาจากที่อื่นเสียเยอะ
เรื่องความรู้ความเชี่ยวชาญคงสู้ฝั่งเนคเทคไม่ได้
สรุปว่าปัญหาเรื่องมาตรฐานตามเอกสารนั้น
เราอยู่ระหว่างช่องว่างของมาตรฐานเก่า (ที่ออกมานานมากแล้ว)
และมาตรฐานฉบับใหม่ที่ยังไม่เกิดขึ้น (และยังไม่มีทีท่าว่าจะเกิด)
ส่วนข้อ 2. ในส่วนของ implementation นั้น ผมก็แยกเป็นปัญหาย่อยได้อีก 2 ส่วน
ส่วนแรกคือความจริงจังของผู้ผลิตซอฟต์แวร์ต่อตลาดเมืองไทย
ถ้าลองดูเคสของไมโครซอฟท์ ไอบีเอ็ม หรือแอปเปิล
จะเห็นว่าภาษาไทยใช้งานได้ดี (อย่างน้อยก็ในระดับหนึ่ง)
เป็นเพราะผู้ผลิตเหล่านี้มองว่าตลาดเมืองไทยใหญ่พอที่จะลงทุน
(จะเป็นด้วยสาเหตุอันใดก็แล้วแต่เค้ามอง)
คือถึงไม่มีมาตรฐานหรือทีมงานอะไรใดๆ ถ้าผู้ผลิตซอฟต์แวร์เห็นความสำคัญ
เขาก็จะดิ้นรนเอง ตัวอย่างที่ชัดเจนคือไมโครซอฟท์เคยจ้างทีมของคุณนุสสรณ์
ไปพัฒนาภาษาไทยให้กับ Office 97 (หรือ 2000 อันนี้ไม่แน่ใจ)
ซึ่งผมมองว่านับจากอดีตถึงปัจจุบัน ทาง Adobe ไม่ได้สนใจตรงนี้
(ซึ่งเค้าก็มีเหตุผลของเค้า ไม่ว่าจะคืออะไรก็ตาม)
คนไทยเลยต้องอยู่ในสุญญากาศความสนใจของ Adobe
สำหรับซอฟต์แวร์โอเพนซอร์สจะมีความพร้อมด้านภาษาไทยที่ดีกว่า
เพราะเราสามารถเข้าไปพัฒนาได้โดยตรง ไม่ต้องรอทางผู้ผลิต
(ซึ่งถือเป็นข้อดีที่สำคัญข้อหนึ่งของโอเพนซอร์ส)
แต่ด้วยส่วนแบ่งตลาดที่น้อยกว่า ผลกระทบจึงน้อยตามไปด้วย
ส่วนที่สองคือเรื่องของ code base
คือการพัฒนาซอฟต์แวร์ขนาดใหญ่นั้นซับซ้อน และมีช่วงเทคโนโลยีของมันเอง
ไม่ใช่ว่ามาตรฐานออกวันนี้แล้วซอฟต์แวร์ที่ออกในปีนี้จะเปลี่ยนตามทันที
ต้องรอการเปลี่ยนช่วงของเทคโนโลยีด้วย (เช่น Mac OS 9 --> Mac OS X หรือ
Windows XP --> Vista หรือที่ชัดๆ เลยคือการตัดคำภาษาไทยทำได้ใน Firefox
3 เพราะใช้ text engine ตัวใหม่ที่พร้อมกับภาษานานาชาติมากกว่า)
มันเลยจะมีดีเลย์ในการปรับเทคโนโลยีตามมาตรฐานใหม่ๆ ด้วย
แถมผู้ผลิตซอฟต์แวร์ยังต้องตามเอาใจผู้ใช้รุ่นเดิมอีกเช่นกัน
(ตัวอย่างง่ายๆ เช่น Windows XP ยังไม่ได้ใช้ Unicode อย่างเต็มรูปแบบ
ในขณะที่ฝั่งลินุกซ์เป็น Unicode กันหมดแล้ว)
พอเกิดวงรอบเทคโนโลยีแบบนี้
ผู้พัฒนาอิสระเลยต้องรอตามผู้ผลิตซอฟต์แวร์รายใหญ่ เช่น
ถึงแม้ว่าผู้พัฒนาฟอนต์อยากจะทำฟอนต์แบบ OpenType แต่ถ้า Windows
ยังไม่สนับสนุน ก็ไม่เกิดประโยชน์อันใด (และถ้า Windows แต่ละรุ่นห่างกัน
5 ปีแบบที่ผ่านมา ก็รอกันนาน) การพัฒนาเลยสะเปะสะปะพอสมควร
หมายเหตุ: ปัญหาย่อยอีกข้อสำหรับเรื่องมาตรฐานภาษาไทย
คือเอกสารส่วนใหญ่มักมีแต่ภาษาไทย
แต่คนทำซอฟต์แวร์ระดับโอเอสส่วนมากเป็นฝรั่ง!
(ผมยืนยันได้ว่าคนทำภาษาไทยใน OS X เป็นฝรั่งและเป็นผู้หญิง)
ซึ่งสุดท้ายลงเอยด้วยฝรั่งเดาเอาเองตามมีตามเกิด (เช่น อาจถามเพื่อนคนไทย
ซึ่งไม่ใช่ผู้เชี่ยวชาญด้านระบบคอมพิวเตอร์ภาษาไทย)
คือถ้ามีเอกสารอย่างเป็นทางการจากหน่วยงานรัฐ และเป็นภาษาอังกฤษอ่านออก
ผู้ผลิตกลุ่มนี้ยินดีจะปฏิบัติตาม (ส่วนมากเป็นนโยบายของบริษัทเลย)
ข้อเสนอของผม
1. หาเจ้าภาพในการสังคายนามาตรฐานภาษาไทยบนคอมพิวเตอร์ให้เป็นปัจจุบัน
(ข้อนี้เหมือนจะยากสุด) และแน่นอนเอกสารฉบับจริงต้องมีเวอร์ชันภาษาอังกฤษ
2. เรียกประชุมผู้ผลิตซอฟต์แวร์รายใหญ่ (IBM, Microsoft, Apple)
สำหรับเรื่องนี้
และมีการทำงานอย่างใกล้ชิดเพื่อการันตีว่าระบบภาษาไทยเวอร์ชันใหม่
จะเข้าไปอยู่ในซอฟต์แวร์เวอร์ชันถัดไป จ้างได้ก็ต้องจ้าง (ของ OpenOffice
นั้น SIPA **จ้าง** Sun เพื่อแก้ปัญหาภาษาไทยให้ได้ตามต้องการ
โดยในสัญญามีระบุว่าต้องการันตีการ checkin เข้าต้นน้ำ) อย่างในกรณีของ
IBM/Microsoft นั้นมีสำนักงานในเมืองไทย (และมี government sector VP
โดยเฉพาะ) ไม่ใช่เรื่องยาก แต่ของ Apple กับ Adobe ผมไม่มีข้อมูล
สรุปสั้นๆ ว่าที่เป็นอยู่นี้ทั้งหมดเพราะไม่มีเจ้าภาพนั่นเองครับ
ส่วนจะหาเจ้าภาพอย่างไรผมก็ตอบไม่ได้เหมือนกัน
ผมไม่แน่ใจว่ามีสิทธิ์โพสต์ใน googlegroups ที่กำลังคุยกันหรือเปล่านะครับ
แต่เนื่องจากถูก Cc: ถึง ก็เลยขอแสดงความเห็นเพิ่มเติม
ไม่ทราบว่าต้นเรื่องคือเรื่องอะไร แต่ดูเหมือนประเด็นที่สนทนาจะเป็นเรื่อง
มาตรฐานภาษาไทยในคอมพิวเตอร์กับการ implement
ผมขอแยกเป็นเรื่อง output method, input method แล้วก็ วทท นะครับ
* Output Method
ผมคิดว่าแนวโน้มของ output method คงจะไปทาง OpenType กัน
(graphite ของ SIL ถึงจะมีแนวคิดที่ดี แต่ส่วนแบ่งตลาดยังน้อยมาก)
โดยโลกตะวันตกเขาทึกทักกันแล้ว ว่า OS ปัจจุบันนี้รองรับ OpenType
อย่างสมบูรณ์ทั้งหมด จนคิดเลยเถิดถึงกับนึกไม่ออกเอาเลย ว่าภาษาไทยเรา
จะมีปัญหากับ OpenType ได้ยังไง
แต่ปัญหาคือ.. เรายังมีปัญหากับบาง app ที่การรองรับ OpenType
ยังพิกลพิการอยู่ โดยหลัก ๆ ที่พบคือ Mac OSX กับ Adobe ส่วน
Microsoft นั้น เขาเป็นเจ้าของเทคโนโลยีอยู่ แม้แต่ Adobe ที่ทำ spec
ร่วมกัน ปัจจุบันก็ยังชี้เอกสารอ้างอิงไปที่ Microsoft ดังนั้น การ implement
ของ Microsoft เลยไม่น่าเป็นห่วง ยกเว้นเรื่องการไม่มีตัวอย่างฟอนต์
OpenType ภาษาไทยให้นักพัฒนาฟอนต์ได้ใช้เป็นแบบอย่าง หรือให้
vendor อื่นได้ใช้ทดสอบ rendering engine ของตน
พูดสั้น ๆ คือ Microsoft นั้น infrastructure พร้อม แต่ไม่มี content
สำหรับฟอนต์ OpenType ไทย
อย่างไรก็ดี ถ้า OpenType ถูกใช้เต็มที่ ปัญหาการแยก character
encoding กับ font encoding ที่คุณตฤณเป็นห่วง ก็อาจจะหมดไป
เพราะข้อมูลเรื่องการใช้ glyph code ต่าง ๆ ได้ย้ายเข้าไปอยู่ในตัวฟอนต์
ทั้งหมด โดยทำงานผ่าน GSUB rules ในฟอนต์ ไม่ต้องให้ rendering
engine มาละลาบละล้วงข้อมูลภายใน แต่ตราบใดที่ Microsoft ยังไม่ทำ
ฟอนต์ OpenType ภาษาไทยออกมา ปัญหาการแบ่งแยก character/font
encoding ก็ยังคงมีต่อไป ในเมื่อ rendering engine ต่าง ๆ ยังคงต้อง
รองรับ "legacy font" ต่าง ๆ ที่มีอยู่ใน Windows อยู่
* Input Method
ประเด็นเรื่อง input method นั้น open source solution ต่าง ๆ
ที่ออกมา ก็พยายาม implement วทท ทั้ง 3 ระดับนะครับ เช่น XIM
ใน X11R6 (อันนี้ยังไม่ทราบว่าเป็นผลงานของใครทำไว้ ทราบแต่ว่า
Copyright เป็นของ DEC), scim-thai ที่ใช้ libthai เป็นฐาน
แต่บางตัว เช่น gtk-im-libthai ยังไม่มี user interface ให้เลือก
level จึงยังคงใช้ level 1 (BasicCheck) เป็นค่า default
ส่วน proprietary solution ส่วนใหญ่ในตลาด คิดว่าคงมีแต่ level 1
ตามที่คุณตฤณชี้ครับ ยกเว้น Solaris ที่มีครบทั้ง 3 ระดับ
* วทท
ผมคิดว่ามีประเด็นที่ควรเพิ่มคือ
1. การรองรับภาษาชนกลุ่มน้อยที่ใช้อักษรไทย เช่น ภาษากุยของชาวส่วย
(ผมก็รู้แค่ภาษานี้แหละครับ แหะ ๆ แต่ผู้เชี่ยวชาญจาก SIL เคยพูดถึง
ภาษาอื่นด้วย ซึ่งผมไม่มีข้อมูล) ประเด็นนี้เกี่ยวพันกับการ render
ด้วยครับ ไม่ใช่แค่ input method เนื่องจาก วทท กำหนดให้ใช้ตาราง
ร่วมกันระหว่าง input/output method
2. การขยายให้รองรับภาษาลาว โดยในการ implement ภาษาลาวใน
GTK+/Pango นั้น ผมพบว่า แม้จะคล้ายภาษาไทยมาก แต่ภาษาลาว
ก็ยังมีจุดเล็ก ๆ ที่แตกต่างจากภาษาไทย ทำให้ต้องเพิ่ม character class
พิเศษ (รายละเอียดต้องไปแกะจาก source ที่ทำไว้อีกที)
สำหรับมาตรฐานอุตสาหกรรมของ วทท 2.0 ผมค้นที่เว็บ สมอ. ได้ความว่า
เป็น มอก. 1566-2541 (อักขรวิธีภาษาไทยสำหรับคอมพิวเตอร์) ครับ
(ความจริงเคยทราบและเคยเห็นตัวเล่มมาก่อนเหมือนกัน แต่จำไม่ได้ว่า
ไปจดหมายเลขไว้ที่ไหน เลยต้องค้นใหม่)
และตามที่คุณตฤณชี้ไว้นะครับ ว่า วทท เป็นเรื่อง input/output เท่านั้น
ไม่เกี่ยวกับการเรียงลำดับคำหรือตัดคำ ซึ่งสองเรื่องนี้ โดยเฉพาะเรื่อง
การเรียงลำดับคำ ไม่ทราบว่าจะกำหนดเป็นมาตรฐานที่ละเอียดกว่า
พจนานุกรมได้หรือไม่ เช่น ลำดับของเครื่องหมายวรรคตอนต่าง ๆ
(ปัจจุบันที่อาจจะใกล้เคียงความเป็นมาตรฐานที่สุดคือ Annex หนึ่ง
ใน ISO/IEC 14651 ครับ --จำหมายเลข Annex ไม่ได้เหมือนกัน)
อีกประเด็นย่อยที่ผมยังคงหาคำตอบดี ๆ ไม่พบ คือการใช้ ญ ฐ ที่ไม่มีเชิง
ในภาษาบาลี-สันสกฤตครับ ทราบมาว่า OpenType สามารถกำหนด rule
จัดการได้ แต่ดูเหมือนจะต้องอาศัยการ mark ภาษาใน text ด้วย ซึ่งก็ยัง
ไม่ทราบว่าวิธี mark ต้องทำยังไง
เทพ.
--
Theppitak Karoonboonyanan
http://linux.thai.net/~thep/
2008/4/7 Trin Tantsetthi <tants...@gmail.com>:
เรื่องการเรียงลำดับ ถ้าผมจำไม่ผิด วทท. ไม่ได้ระบุ
ที่ผ่านมาสำหรับผม เวลามีคนถาม ก็จะให้ยึดเอกสารที่พี่เทพเขียนเอาไว้ (ภาษาอังกฤษ)
http://linux.thai.net/~thep/
แต่เรื่องเรียงลำดับนี้ ก็เป็นเรื่องที่ Unicode ครอบคลุมด้วย
(ซึ่งเกี่ยวเนื่องกับเรื่อง normalization ด้วย)
แล้ว Unicode ก็มีเรื่องตัดคำ เรื่องอะไรครอบคลุมเยอะมาก
เพราะฉะนั้นทุกวันนี้ นักพัฒนาก็จะยึด Unicode มากกว่า
ถึงเราจะมีเอกสารมาตรฐานอะไรของท้องถิ่น
แต่ถ้ามันขัดกับ Unicode ก็จะถูกตั้งข้อสงสัย อะไรประมาณนี้
สรุปคือ ถ้าไม่มีเอกสารมาตรฐานก็จะลำบาก
และถ้าจะให้ลื่นสุดตอนนี้ ก็คือต้องยัดให้มันลง Unicode ให้ได้
(ซึ่งจะเอาไปยัดได้ ก็จะมีขั้นตอน ซึ่งหลายครั้งเขาก็เรียกหาเอกสารมาตรฐานด้วย)
--
:: "เอกราช ปลอดภัย เศรษฐกิจ
:: เสมอภาค เสรีภาพ การศึกษา"
:: -- หลัก 6 ประการของคณะราษฎร
:: http://tinyurl.com/34klvq
กรณีของภาษาไทยปัจจุบันใช่ครับ
แต่ผมไม่แน่ใจกรณีภาษาเก่า เพราะเคยอ่านมาว่า
เชิงของ ญ นั้น เป็นการลดรูปมาจากตัวอักษรอื่น เลยไม่แน่ใจว่า
สำหรับเอกสารภาษาเก่า (ที่อาจไม่ใช่ภาษาไทย)
ญ แบบมีเชิง กับ ญ แบบไม่มีเชิง จะเท่ากันหรือไม่
(คือเราใช้ ตัวอักษรไทย เขียนภาษาอื่นที่ไม่ใช่ภาษาไทยด้วย)
thep:
> โดยเฉพาะเรื่อง การเรียงลำดับคำ
> ไม่ทราบว่าจะกำหนดเป็นมาตรฐานที่ละเอียดกว่า
> พจนานุกรมได้หรือไม่ เช่น ลำดับของเครื่องหมายวรรคตอนต่าง ๆ
> (ปัจจุบันที่อาจจะใกล้เคียงความเป็นมาตรฐานที่สุดคือ Annex หนึ่ง
> ใน ISO/IEC 14651 ครับ --จำหมายเลข Annex ไม่ได้เหมือนกัน)
สำหรับคนที่อยากดูนะครับ มีฉบับร่างอยู่ที่
http://software.thai.net/locale/locale/14651/n537e.pdf
เรื่องสิทธิ์นั้นผม approve ให้ครับ ไม่ต้องเป็นห่วง
>
> ไม่ทราบว่าต้นเรื่องคือเรื่องอะไร แต่ดูเหมือนประเด็นที่สนทนาจะเป็นเรื่อง
> มาตรฐานภาษาไทยในคอมพิวเตอร์กับการ implement
ส่วนต้นเรื่องเผอิญว่า charset ในเมลมันเสีย ผมเลยลบไปทั้งหมด ขอโทษด้วยครับ
ที่มาคือคุณปกป้องได้ยกกระทู้ของ thaiadobeuser เรื่องสาเหตุที่ทาง Adobe
ไม่สนับสนุนภาษาไทยครับ แนบกระทู้เป็น PDF มาให้
> ผมอยากจะลาออกจาก กว.536 -- จึงอยากฝากการปรับปรุงมาตรฐานไว้กับคนรุ่นหลังด้วย
คนรุ่นหลังคงต้องช่วยกันรับไม้ต่อ.. แต่ยังไม่ทราบกระบวนการกำหนด
มาตรฐานดีเลยครับ อย่างเช่นการเสนอมาตรฐานใหม่กับ กว. 536
ก็ยังไม่ทราบว่าจะมีขั้นตอนยังไงบ้าง
> - xim ถ้ามาจาก DEC เข้าใจว่าหน่วยวิจัยในญี่ปุ่นเป็นคนเริ่มทำมาตั้งแต่ X11R2
> หรือ R3 ประมาณนั้นนะครับ X11 ดึกดำบรรพ์รับแต่ ASCII จึงต้องมี widget
> พิเศษมาจัดการ string encoding และด้วยวิธีการของ x11 ซึ่งใช้ plane switching
> เราจึงจดทะเบียน มอก.620 กับ ECMA (นายทะเบียนในเวลานั้น) ออกมาเป็น ISO-IR-166
> ได้ charset designator ออกมา และเปิดช่องให้ใช้ใน x11 ได้
พอมายุค unicode เลยขาดตัวเชื่อมโยง ทำให้ XIM เจ๊งไปพักหนึ่งเมื่อมี
patch จาก Mandrake มาเปลี่ยน XKB map ของไทยจาก Latin-1
ให้เป็น keysym ไทยแท้ ๆ แต่สุดท้ายก็ได้รับการซ่อมแซมแล้ว
> - OpenType หรือมาตรฐาน font ต่างๆ พยายามจะทำ hinting ที่ฉลาดขึ้น
> แต่ผมก็ไม่รู้ว่าจะได้แค่ไหนนะครับ เคยดูเรื่อง legature/hinting ใน pdf
> นานมาแล้ว ปรากฏว่าเพื่อที่จะแก้ปัญหาสระลอยจะทำให้ตารางใหญ่มาก
ตารางนั้นผมถือว่าเป็นวิธีที่ hack ครับ คือใช้ ligature ที่ไม่ได้ออกแบบไว้
สำหรับภาษาเรา แต่ด้วยความพิการของ platform ต่าง ๆ เช่น Mac OSX
และ Adobe ทำให้มันกลายเป็นวิธีเดียวที่จะทำให้ฟอนต์ใช้การได้ทุก
platform
บน platform ที่ OpenType สมบูรณ์หน่อย อย่าง Windows และ Linux
จะสามารถใช้ GSUB rule ในการแก้วรรณยุกต์ลอย รวมทั้งใช้ GPOS
anchor ในการหลบหาง ป ฝ ฟ ฬ ฎ ฏ ได้ ทำให้ลดจำนวนชุดของ
เครื่องหมายบน-ล่างลง ตาม spec ที่ Microsoft กำหนด [1] ซึ่งผมได้
เพิ่มรายละเอียดเป็นแนวทางสำหรับคนทำฟอนต์ [2] และได้ implement
แล้วในฟอนต์ชุด thaifonts-scalable [3]
[1] http://www.microsoft.com/typography/otfntdev/thaiot/default.htm
[2] http://linux.thai.net/~thep/th-otf/
[3] http://linux.thai.net/projects/thaifonts-scalable
แต่ปัญหาก็คือ ฟอนต์ที่ทำตาม spec นี้ จะใช้งานได้บน Windows และ
Linux เท่านั้น เนื่องจากการรองรับ OpenType ใน Mac OSX และ Adobe
ยังไม่สมบูรณ์ ทำให้การวางเครื่องหมายผิดพลาดไปหมด ซึ่งเรื่องนี้ ไม่ใช่
ปัญหาของฟอนต์เลย
แต่เรื่องทางเทคนิคอย่างนี้ คงอธิบายให้ผู้ใช้เข้าใจลำบาก สุดท้าย ฟอนต์
ที่ใช้วิธี hack แบบชั่วคราว จะมีการใช้งานแพร่หลายกว่า และคนทำฟอนต์
ก็เริ่มทำตามมากขึ้นเรื่อย ๆ (เข้าใจว่า ฟอนต์ที่ f0nt.com ทั้งหมด ใช้วิธีการนี้
ตามนายพลเทมเพลต)
ปัญหาคือ ถ้ามันกลายเป็น common practice แบบนี้:
- ผู้ผลิต platform ที่มีปัญหา จะรับรู้ปัญหาเมื่อไร ในเมื่อผู้ใช้ส่วนใหญ่
สบายใจกับ solution ที่มีอยู่? หรือจะต้องคาดหวังว่าผู้ใช้ภาษาอื่นที่ใกล้เคียง
กับเรา จะจริงจังกับความถูกต้องทางเทคนิคกว่าเรา (รวมทั้งมีส่วนแบ่งตลาด
ที่ไม่แพ้ของเรา) แล้วรายงานปัญหาไป?
- ในกรณีที่ผู้ผลิตแก้ปัญหาให้แล้ว common practice ที่มีอยู่ ก็คงจะ
ดำเนินต่อไปอีกระยะหนึ่ง ซึ่งจะยาวนานแค่ไหนก็ยังไม่ทราบได้
หรือผู้สร้างฟอนต์บางคน อาจจะต้องการให้ฟอนต์ใช้ได้กับระบบเก่าด้วย
กว่าที่ผู้สร้างฟอนต์จะมาทำฟอนต์ตาม spec จริง ๆ ก็คงอีกนาน
ตามความเห็นของผม ผู้ที่จะเริ่มคลายปมปัญหานี้ได้ดีที่สุด คือ Microsoft
เอง ด้วยการสร้างฟอนต์อ้างอิงขึ้นมา (อาจจะเสนอเข้าไปจากภายนอกก็
ตามแต่) จากนั้น platform ต่าง ๆ ก็จะได้มีวัตถุดิบในการทดสอบและแก้
ปัญหาต่อไป
ใจจริงผมอยากให้ opensource solution เป็นหัวหอกเหมือนกัน แต่ด้วย
ความนิยมที่ยังน้อย ผมเกรงว่าจะไม่มีผลสักเท่าไร
หรืออีกทางหนึ่งคือ ให้หน่วยงานรัฐช่วยผลักดัน โดยกำหนด spec มาตรฐาน
แล้วประสานงานกับผู้ผลิต platform ให้แก้ปัญหาต่าง ๆ
> - ญ ฐ ทั้งที่มีเชิงและไม่มีเชิง เป็นอักขระตัวเดียวกัน ใช้ code point
> เดียวกัน การเขียนพร้อมเชิงหรือจะตัดเชิงออก เป็นเรื่องของ output method ครับ
> ถ้าระบบปฏิบัติการเปลี่ยนไปใช้รูป (glyph) อื่นในฟอนต์ ก็เป็นที่ระบบปฏิบัติการ
> (หรือ rendering widget) เอง -- charset/string encoding สำหรับ data
> interchange ยังเป็นเหมือนเดิมครับ
ผมเห็นด้วยครับ ที่จะใช้ code point เดียวกัน แล้วอาศัย GSUB rule
ใน OpenType font ในการเลือก alternate glyph มาแสดงผล
เพียงแต่ว่า วิธีเลือก alternate glyph ก็มีได้หลายวิธี วิธีหนึ่งคือการ
mark up เอกสาร ว่าข้อความก้อนนี้เป็นภาษาบาลี ก้อนนี้เป็นภาษาไทย
แล้ว GSUB rule ที่จะมีผลก็จะแตกต่างกันไปตามภาษา ซึ่งผมเองก็ยัง
พยายามศึกษาความเป็นไปได้อยู่ ในส่วนของการ mark up
(ส่วนของฟอนต์นั้น ไม่มีปัญหาครับ)
แต่ก็ยังมีจุดโหว่อยู่ ว่าถ้าเป็น plain text ที่ไม่สามารถ mark up ได้ล่ะ?
หรือเป็นไปได้ไหมที่จะกำหนดวิธี encode พิเศษที่จะแยก ญ มีเชิง
กับไม่มีเชิงให้ต่างกันใน encoding เลย เช่น
- ใช้อักขระ variant selector ต่อท้าย
- ใช้อักขระจำพวก ZWJ + ZWNJ โดยใช้ trick ที่ว่า ZWJ จะ เปลี่ยนรูป ญ
ให้เสมือนมีสระล่างมาประสม แล้ว ZWNJ ก็เข้าไปสวมรอยเป็นอักขระ
ที่มาประสมนั้น
- กำหนดอักขระพิเศษเพิ่มเพื่อใช้ตัดเชิง ญ ฐ โดยเฉพาะ
- ฯลฯ
ผมคิดว่า mailing list ของ Thai Linux/FOSS developers
(http://groups.google.com/group/thai-linux-foss-devel)
น่าจะใช้ได้หรือเปล่าครับ? จะได้ไม่ต้องสร้างกลุ่มใหม่
หรือถ้าคิดว่าไม่ตรงวัตถุประสงค์อีกเหมือนกัน เดี๋ยวผมสร้างกลุ่มใหม่ให้ครับ
คิดว่า wikidot ที่อาจารย์เริ่มไว้ โอเคแล้วครับ
ส่วนสถานที่คุยกัน ไม่ทราบว่าพี่เทพเห็นยังไงครับ เรื่องใช้ thai-linux-foss-devel
งั้นสรุปว่าปิด thread ย้ายไปคุยกันต่อใน
http://groups.google.com/group/thai-linux-foss-devel นะครับ
เผื่อมีใครสนใจตามไปสมัคร