วันนี้พยายามใหม่อีกครั้งกับแพช ICU ของคุณสัมพันธ์แต่ก็ยังใช้ไม่ได้อยู่ดี. ใช้ไม่ได้นี่หมายถึงคอมไพล์อะไรผ่านหมดแต่มันไม่ตัดคำให้. เลยทำใจว่างๆใหม่ตัดสินใจลองแพชที่พี่ฮุ้ย submit ไว้ใน CVS แล้วกัน.
เตรียมแพช
ก่อนอื่นดาว์นโหลดแพชตัดคำ Firefox ของพี่ฮุ้ย firefox-cttex-wbr-b3.patch.gz.$ wget -nd ftp://linux.thai.net/pub/ThaiLinux/cvs/software/mozilla+thai/cttex-wbr/firefox-cttex-wbr-b3.patch.gz $ gunzip firefox-cttex-wbr-b3.patch.gzลองใช้ดูแล้ว, ปรากฏว่าแพชของพี่ฮุ้ยยังไม่สามารถใช้กับ Gentoo ได้ทันทีต้องแก้ไขเล็กน้อย. คือแพชของพี่ฮุ้ยจะสร้างจากไดเรกทอรีย่อยที่อยู่ใต้ไดเรกทอรีหลักอีกที, ทำให้แพชด้วยไฟล์ .ebuild ไม่ได้ (หรือผมไม่รู้วิธี). จึงต้องแก้ช่วงที่เป็นชื่อไฟล์จาก
diff -rup --new-file src.org/Makefile.in src/Makefile.in --- src.org/Makefile.in Fri Apr 18 04:19:27 2003 +++ src/Makefile.in Fri Jan 14 00:21:40 2005 ...ให้เป็น
diff -rup --new-file src.org/Makefile.in src/Makefile.in --- firefox.org/intl/lwbrk/src/Makefile.in Fri Apr 18 04:19:27 2003 +++ firefox/intl/lwbrk/src/Makefile.in Fri Jan 14 00:21:40 2005 ...ผมเลยสร้างแพชสำหรับไฟล์แพชนี้อีกทีหนึ่ง firefox-cttex-wbr-b3_prefix.patch. ใช้หลังจากที่ดาว์นโหลดแพชของพี่ฮุ้ยอีกที
$ ls firefox-cttex-wbr-b3.patch firefox-cttex-wbr-b3_prefix.patch $ patch -p0 < firefox-cttex-wbr-b3_prefix.patch patching file firefox-cttex-wbr-b3.patch $ head firefox-cttex-wbr-b3.patch diff -rup --new-file src.org/Makefile.in src/Makefile.in --- firefox.org/intl/lwbrk/src/Makefile.in Fri Apr 18 04:19:27 2003 +++ firefox/intl/lwbrk/src/Makefile.in Fri Jan 14 00:21:40 2005 @@ -35,7 +35,7 @@ REQUIRES = xpcom unicharutil $(NULL) -CSRCS = rulebrk.c +CSRCS = rulebrk.c cttex-wrap.c findword.c map.c cache.cเสร็จแล้วเอาไฟล์แพชที่แก้ไขแล้วไปไว้ที่ไดเรกทอรี /usr/portage/net-www/mozilla-firefox/files.
# cp firefox-cttex-wbr-b3.patch /usr/portage/net-www/mozilla-firefox/filesเสร็จการเตรียมแพชสำหรับตัดคำครับ.
เตรียมแพชสำหรับสภาพแวดล้อมภาษาไทย
ไหนๆทำตัดคำแล้วก็เลยอยากจะทำสภาพแวดล้อมของ firefox ให้เป็นภาษาไทยซะเลย. อันนี้ไม่ใช่อะไรใหม่, ก็เอาไฟล์แพชมาจากไฟล์ firefox-1.0-5.tlc.src.rpm ซึ่งเป็นต้นฉบับของ RPM มากระจายแล้วเลือกเอาแพชมาแก้อีกทีหนึ่ง.# emerge rpm # wget -nd ftp://ftp.opentle.org/pub/linux-tle/7.0/i386/TLE/SRPMS.main/firefox-1.0-5.tlc.src.rpm # rpm -ihv firefox-1.0-5.tlc.src.rpmไฟล์รหัสต้นฉบับของ RPM จะไปอยู่ที่ไดเรกทอรี /usr/src/redhat/SOURCES. ไฟล์ที่ต้องการคือ firefox-1.0rc-config-tle.patch แต่ไม่เอามาใช้ทั้งหมด, ต้องแก้ไขเล็กน้อย. แพชอันนี้จะเปลี่ยนค่าปริยายต่างๆเช่นฟอนต์ปริยายจะใช้ฟอนต์ Loma, เอ็นโค้ดดิงก์โดยปริยายจะเป็น TIS-620 ฯลฯ. เพื่อความสะดวกผมเปลี่ยนชื่อและเนื้อหาให้เรียบร้อยเป็น firefox-1.0-thai-env.patch. ดาว์นโหลดไฟล์นี้ไปไว้ที่ /usr/portage/www-net/mozilla-firefox/files.
สิ่งที่ทำคือพยายามจะเปลี่ยนค่าปริยายให้น้อยที่สุดคือเปลี่ยนเฉพาะส่วนที่เกี่ยวกับฟอนต์ปริยาย, เอ็นโค้ดดิงก์. ส่วนที่แตกต่างได้แก่
- ลบไซด์ค้นหาโดยปริยายจาก nipa ออก, ให้ใช้ google ตามที่ mozilla ตั้งค่ามา
- คงค่า URL ต่างๆไว้ตามเดิมเช่นหน้าแรกเป็น mozilla.org / firefox
- แก้ไฟล์ fontEncoding.properties
... # Thai TTFs # glyph arrangement : TIS620-2 Windows encoding, # code points used : Unicode Thai block + about 10 PUA code points in U+F700, # coverage : US-ASCII, Thai (U+0E00-U+0E07F), punctuation marks # U+2018, U+2019, U+201c, U+201d, U+2022, U+2013, U+2014 ) # # These familes of fonts and other fonts with the same PUA assignment # are included as a part of Thai language support in most Linux distributions. encoding.norasi.ttf = x-thaittf-0.wide encoding.garuda.ttf = x-thaittf-0.wide encoding.dbthaitext.ttf = x-thaittf-0.wide encoding.kinnari.ttf = x-thaittf-0.wide encoding.loma.ttf = x-thaittf-0.wide encoding.tlwgmono.ttf = x-thaittf-0.wide encoding.tlwgtypewriter.ttf = x-thaittf-0.wide ...
แก้ไฟล์ .ebuild
ไฟล์ .ebuild เป็นหัวใจสำหรับการคอมไพล์. ในระบบที่ผมใช้ Firefox มีชื่อรุ่นเป็น 1.0-r3 ดังนั้นไฟล์ที่ต้องแก้คือ mozilla-firefox-1.0-r3.ebuild ที่อยู่ในไดเรกทอรี /usr/portage/net-www/mozilla-firefox/.ใช้บรรณาธิกรณ์ที่ถนัดเปิดไฟล์แล้วแก้ไข. ถัดจากบรรทัด
# patch to fix separate character on euro keyboards, bug 68995
epatch ${FILESDIR}/mozilla-firefox-1.0-kp_separator.patch
เพิ่มต่อท้ายดังต่อไปนี้
# patch to fix separate character on euro keyboards, bug 68995
epatch ${FILESDIR}/mozilla-firefox-1.0-kp_separator.patch
# patches for Thai work break and setting environment
epatch ${FILESDIR}/firefox-1.0-thai-env.patch
epatch ${FILESDIR}/firefox-cttex-wbr-b3.patch
อีกที่หนึ่งคือบรรทัด
mozconfig_annotate '' --enable-oji --enable-mathml
ให้เปลี่ยนเป็น
mozconfig_annotate '' --enable-oji --enable-mathml --enable-ctl
สิ่งที่ต้องแก้ในไฟล์ .ebuild มีเพียงเท่านี้ครับ.
ติดตั้ง Firefox ภาษาไทย
ถึงขั้นนี้แล้วทุกก็พร้อมสำหรับการติดตั้ง. ให้สั่งคำสั่งต่อไปนี้# emerge -pv mozilla-firefox These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild R ] net-www/mozilla-firefox-1.0-r3 -debug +gnome +java +ldap -mozdevelop -moznoxft -mozsvg -mozxmlterm -xinerama -xprint 0 kB Total size of downloads: 0 kBดูให้แน่ใจว่าเป็นเวอร์ชัน 1.0-r3 เสร็จแล้วเอาจริง
# USE="xprint" mozilla-firefoxสั่งให้ใช้ xprint ด้วย. ถ้าต้องการพิมพ์ออกทางเครื่องพิมพ์เป็นภาษาไทยต้องใช้ xprint.
เครื่องที่ผมใช้ Pentium 4 2.4GHz ใช้เวลาคอมไพล์ประมาณ 50 นาทีครับ. เรียบร้อยแล้วจะได้ผลดังนี้.
หลังจากที่ขยายหน้าต่างให้กว้างอีกหน่อยจะเห็นว่ามีการตัดคำได้จริง (สังเกตตรงคำว่า "เริ่มร้อนแรง") และที่การจัดระดับวรรณยุกต์และสระ (สระไม่ลอย).
ในหน้าจอ textedit ก็ตัดคำได้ดีไม่มีปัญหาครับ.
ทั้งนี้และทั้งนั้นต้องขอขอบคุณทุกท่านที่เกี่ยวข้องกับการทำแพชต่างๆด้วยครับ. ก็รอคอยให้มันเข้าไปอยู่ใน mainstream นี่แหละครับ. :)
3 ความคิดเห็น:
แพช firefox-1.0-thai-env.patch นี่แก้อะไรบ้าง ?
เห็นมีพวก encoding ของฟอนต์ต่างๆ น่าลองแฮะ
เผื่อจะทำให้ Firefox/Mac ใช้ฟอนต์ไทยได้มากขึ้น ?
ผมสังเกตุว่า firefox ของผมตัดคำได้ปกติหน่ะไม่จำเป็นต้อง patch ถ้า web นั้นใช้ utf-8
สวยดีครับ
แสดงความคิดเห็น