หลังจากพยายามมาหลายวันก็ได้บทสรุปสำหรับการเขียนภาษาไทยเพื่อให้ตัดคำได้จากบราวเซอร์ทุกตัวที่รองรับ Unicode โดยตอนที่เขียนนี้ทดสอบผ่านแล้วจาก Gecko (Firefox, k-meleon), Opera, Trident (Internet Explorer) ทั้งสามตัวสามารถแสดงภาษาไทยได้ถูกต้องทั้งหมด โดยสามารถควบคุมผ่านทาง Unicode สำหรับตัดคำคือ ZWSP (0×200B) โดยในความเป็นจริงแล้วทั้ง Mozilla และ Opera ต่างก็แนะนำให้ใช้เครื่องหมายนี้แทนการหวังให้ Mozilla และ Opera จะยอมทำตัวตัดคำให้
ปัญหาคือ ZWSP ดันไม่ถูกรองรับโดย IE ซึ่งดันเป็นตัวที่มีผู้ใช้มากที่สุด แต่ปัญหาก็มีทางออกเมื่อไมโครซอฟท์ระบุว่าการที่ไม่รองรับ ZWSP ในตัว IE เองนั้นก็เพราะไมโครซอฟท์ได้อิมพลีเมนต์ไปแล้วในฟอนต์ Arial Unicode MS ซึ่งต้องยอมรับว่าเป็นฟอนต์ที่รองรับ Unicode ได้ค่อนข้างดีมาก
วิธีการแก้ไขตอนนี้คือการบังคับให้ ZWSP ต้องถูกแสดงด้วยฟอนต์ Arial Unicode MS เท่านั้น โดยในกรณีของผม ผมใส่มันไปใน CSS ซึ่งยังไม่แน่ใจว่าเป็นการกระทำที่ดีรึเปล่า โดยที่จริงแล้วอาจจะดีกว่าถ้าใส่เป็น Style ลงไปในทุกๆ span เลย อันนี้ต้องไปถามผู้รู้กันต่อไป โดยข้อเสียของวิธีการของผมคือ html มันดูรกมาก ไม่เชื่อลองเข้ามาดูซอร์สดู เอา Style ใส่เข้าไปทุก span คงเน่ากว่านี้
ตอนนี้ที่เหลือคือการทำ php wordbreak กับการทดสอบ tag ตัดคำที่ใช้อยู่ ขอความช่วยเหลือว่าถ้าใครใช้ safari ช่วยรายงานบั๊กการตัดคำหน่อยครับ เผื่อจะได้แก้กันต่อไปได้
๊Update: By Mk’s help, ZWSP Project now work on Mac but not linux. I decided to scope the project to support only linux that came with installed “DejaVu Sans”. If confirmed working, I will implement automatic word breaking for next.
One Ping to “ThaiPort”
3 Responses to “ThaiPort”
-
1. Sirn Says:
January 17th, 2006 at 12:18 pmคุณ Lew ครับ ท่าทางมันจะไม่เวิร์คสำหรับ Safari อะครับ http://temp.hitoridake.com/zwsp-safari.png
-
2. lewcpe Says:
January 17th, 2006 at 1:04 pmรับทราบครับ ยังไงจะหาทางต่อไปครับ
ตอนนี้เป้าหมายอยู่ที่ 3 ตัวหลักนี้เท่านั้นล่ะครับ
-
3. lewcpe Says:
January 17th, 2006 at 11:48 pm่ล่้าสุดนี่แก้บนแมคแล้วครับ
ปัญหาคือผมไม่มีแมค ดังนั้นใครดูได้ช่วยดูให้ทีนะครับ ว่าแก้ถูกรึยัง
March 28th, 2006 at 1:10 am
[...] ps[0] = u”มีคนจุดประเด็นเรื่องนี้ขึ้นมา เลยเขียนออกมาได้” ps[1] = u”โปรเจค ZWSP เดินหน้าไปอีกขั้นแล้ว ด้วยความช่วยเหลือของมาร์ค เข้าไปลองได้ รายงานบั๊กกันด้วย” ps[2] = u”ปล. ในวันนี้เป็นภาษา Python” [...]