Tags:
Forums: 

Chromium คือโปรเจค Open-source ที่เป็นฐานของ Google Chrome ที่เราใช้ๆ กัน ปัญหาใหญ่ของคนใช้ Linux คือ Chrome แสดงผลสระภาษาไทยเลื่อนไปทางซ้าย ทำให้อ่านเว็บไม่รู้เรื่อง บั๊กแสดงผลนี้ถูกรายงานไปตั้งแต่เมษายน 2553 แต่ยังไม่ได้รับการแก้ไข

ผมกับพี่ @lewcpe ใช้วิธีแก้ไขแบบแก้ขัดไปก่อน คือเอาค่า offset ที่ยังมั่วๆ สำหรับภาษาไทยออก (patch อยู่ด้านล่าง) compile และแจก binary มาเรื่อยๆ แต่รู้สึกแจกจ่ายไม่สะดวก

ตอนนี้ได้ทำ chromium-thai-ppa ออกมาแล้วครับ สามารถติดตั้งได้ด้วยคำสั่งต่อไปนี้ sudo apt-add-repository ppa:thai/chromium-thai-ppa sudo apt-get update sudo apt-get install chromium-browser

ขออนุญาตแปะวิธีทำ source package ส่งเข้าไปที่ PPA ไว้ที่ blognone กันหาย กันลืมนะครับ

วิธีทำ Source Package ส่งขึ้น PPA

1. สร้าง PPA ใหม่ที่ http://launchpad.net 2. คัดลอก Chromium Source Package จาก PPA ที่มีอยู่เดิม เช่น Chromium Dev Channel มาใส่ไว้ใน PPA ของเรา 3. เพิ่ม PPA ของเรา แล้วโหลด source package ลงมาแก้ไข sudo apt-add-repository ppa:thai/chromium-thai-ppa apt-get source chromium-browser

4. จะได้โฟลเดอร์ chromium-browser-8.xxx มา 5. เข้าไปที่ไดเรกทอรี่ chromium-browser-8.xxx/debian/patches 6. เพิ่มไฟล์ thai.patch มีเนื้อหาตามนี้: --- src.orig/third_party/WebKit/WebCore/platform/graphics/chromium/FontLinux.cpp +++ src/third_party/WebKit/WebCore/platform/graphics/chromium/FontLinux.cpp @@ -538,7 +538,7 @@

m_glyphs16[i] = m_item.glyphs[i]; double offsetX = truncateFixedPointToInteger(m_item.offsets[i].x); - m_xPositions[i] = m_offsetX + position + offsetX; + m_xPositions[i] = m_offsetX + position;// + offsetX;

double advance = truncateFixedPointToInteger(m_item.advances[i]); // The first half of the conjuction works around the case where

7. แก้ไฟล์ series เพิ่ม 1 บรรทัดที่ท้ายไฟล์ว่า thai.patch

8. ในไฟล์ debian/changelog ให้เพิ่มรายละเอียดเกี่ยวกับสิ่งที่เปลี่ยนแปลงและกำหนดเลข Version 9. กลับมาที่ไดเรกทอรี่ chromium-browser-8.xxx/ แล้วเรียกคำสั่ง debuild -S -sd 10. จะได้ไฟล์ .changes สามารถ put ขึ้นไปบน PPA ได้ด้วยคำสั่ง dput ppa:thai/chromium-thai-ppa chro...._source.changes

ก่อนที่จะ dput หรือ sign ไฟล์ .changes สำหรับส่งขึ้นไปบน PPA ได้

1. ต้องสร้าง OpenPGP Key ก่อน gpg --gen-key 2. ยืนยัน Key กับ launchpad (จะมี e-mail ที่เข้ารหัสส่งกลับมาให้เราคลิกลิงค์ยืนยัน) 3. Sign "Ubuntu Code of Conducts" โดยเข้าไปที่หน้า profile ของเราบน launchpad เช่น https://launchpad.net/~nattster

Get latest news from Blognone
By: AlninlA
ContributorAndroidUbuntu
on 25 October 2010 - 20:43 #224661
AlninlA's picture

ผมใช้ Chromium (dev) บน Ubuntu 10.04 (ใช้ฟอนต์ Tahoma) จากรูปจะเห็นว่า การวางตำแหน่งของสระ วรรณยุกต์ มีที่ผิดคือที่เรียกว่าสระลอย เช่นพวกไม้เอก โท อยู่ระดับนสุดตลอด นอกนั้นก็ดูดี การลากคลุมดำใน Text box ก็ทำได้ครบจนถึงตัวสุดท้ายด้วย

ไม่ทราบว่าการปรับแต่ง Ubuntu จะมีผลเกี่ยวข้องกับการแก้ไขปัญหาด้วยหรือไม่ แต่ปัญหาภาษาไทยที่ว่าตามหัวเรื่องนี้ ผมทดลองกับ Ubuntu แบบลงใหม่แล้วติดตั้ง Chromium จะเกิดขึ้นจริงๆ แล้วก็ไม่สามารถแก้ไขให้หายไปเหมือนรูปที่แสดงนี่ก็ทำไม่ได้สักที พูดง่ายๆ ว่า ไม่รู้ว่าตัวเองไปปรับ แก้ อะไร ที่ไหน เมื่อไหร่ ถึงทำให้มันดูดีได้ ก็เลยสงสัยว่ามันเป็น bug ที่ Chromium ที่เดียวจริงๆ เลยหรือครับ

ดังนั้นถ้ามีแนวทางที่ทำให้ปัญหาหายขาดได้ ก็จะเป็นที่ขอบคุณแก่ผู้ที่ใช้งาน OSS ทั้งหลายแน่นอนครับ ขอเป็นกำลังใจด้วยครับ

From Captures
By: lew
FounderJusci's WriterMEconomicsAndroid
on 25 October 2010 - 21:25 #224669 Reply to:224661
lew's picture

ผมไม่ปรับอะไรกับตัวฟอนต์เลยครับ ไม่ทราบว่าได้ไปแก้ฟอนต์อะไรตรงไหนบ้างครับ? ของ System หรือของ Ubuntu เอง?


lewcpe.com, @public_lewcpe

By: mr_tawan
ContributoriPhoneAndroidWindows
on 25 October 2010 - 23:49 #224734 Reply to:224661
mr_tawan's picture

สระมันก็อยู่ถูกที่แล้วครับ ที่ผิดคือวรรณยุกต์ ปัญหานี้จริง ๆ ต้องเรียกว่า วรรณยุกต์ลอย นะครับ


  • 9tawan.net บล็อกส่วนตัวฮับ
By: AlninlA
ContributorAndroidUbuntu
on 26 October 2010 - 01:03 #224758 Reply to:224734
AlninlA's picture

ก็เคยใช้เรียกกันสมัย photoshop แรกๆ นู้นจนมีหลายคนบอกน่าจะเรียกให้ถูกว่า วรรณยุกต์ลอย แต่ก็เห็นทำมึนๆ กันซะงั้น คือไม่เรียกกัน ผมก็เลยอ้างอิงคำนั้น บวกขยายความนิดหน่อยน่ะครับ เห็นได้ชัดว่าเข้าใจตามนั้นจริง แต่ก็น่าชวนกันเรียกให้ถูกๆ นะ

By: dome on 25 October 2010 - 22:45 #224699
dome's picture

ใช้ Tahoma จะไม่เจอ Bug เรื่องสระเยื้องครับ เช่นเดียวกับ Norasi ก็ไม่เจอ (แต่ Norsri ไม่สวย) ซึ่งไม่แน่ใจว่า เพราะอะไร จริงๆ เทพเคยวิเคราะห์ให้ฟังแล้วทีนึง แต่จำไม่ได้ แต่ Tahoma ก็มีปัญหาเรื่อง License ใน Linux จึงควรใช้ Waree , Loma หรือที่สวยสุดและใกล้เคียงกับ Tahoma มากสุดคือ Taeyhom ซึ่งจะมีปัญหาเรื่องสระเยื้อง แต่เรื่องสระลอย ก็ยังเป็นอยู่ Patch ของลิ่ว จะช่วยให้สามารถใช้ Font Waree, Loma , Taeyohom ได้โดยสระไม่เยื้องครับ มีประโยชน์มาก

เรื่องสระลอย น่าจะแก้ต่อได้ไม่ยาก (ไม่รู้จะง่ายหรือเปล่านะ) โดยอ้างอิงจาก QT patch Thai ของ โด่ง ถ้าลิ่วมีเวลา อยากให้ทำต่อแล้ว submit patch กลับไปทาง Ubuntu ก้ได้ น่าจะง่ายกว่า Chromium

ขอบคุณมากและขอให้มีความสุขความเจริญ นะครับ

:)

By: lew
FounderJusci's WriterMEconomicsAndroid
on 26 October 2010 - 00:35 #224755 Reply to:224699
lew's picture

คือผมตระหนักดีว่า patch ของผมนี่คุณภาพต่ำมากครับ เพราะไป revert การแก้ปัญหาของอีกบั๊กหนึ่งทิ้งไป ในส่วนที่มันทำให้ภาษาไทยพัง

แต่ผมเองไม่มีความรู้เรื่อง GPOS ของ OpenType มากพอ (ยังไม่มีเวลาอ่านจริงจัง) ตัว Evan จากทีม Chromium เองก็เคยบอกแล้วว่าเขาน่าจะใส่ Offset บางอย่างไม่ครบ ทำให้ภาษาไทยพังไป ไว้หาเจอแล้วจะเขียน patch ดีๆ ดันกลับเข้าไปให้ครับ


lewcpe.com, @public_lewcpe

By: aborigines
Ubuntu
on 27 October 2010 - 19:14 #225778 Reply to:224755

ได้แค่นี้ผมดีแล้วครับ @lew ดีกว่ามันเพี้ยนหน่า

By: lew
FounderJusci's WriterMEconomicsAndroid
on 28 October 2010 - 03:16 #225977 Reply to:225778
lew's picture

คือคุณภาพ patch มันคนละเรื่องครับ ไม่เกี่ยวกับเพี้ยนไม่เพี้ยน

แต่โค้ดคุณภาพดีจะทำให้ทางโครงการ Chromium เขารับเข้าไป แล้วเราจะได้ไม่ต้อง patch กันเองไปเรื่อยๆ


lewcpe.com, @public_lewcpe

By: AlninlA
ContributorAndroidUbuntu
on 26 October 2010 - 01:32 #224784 Reply to:224699
AlninlA's picture

คุณเทพเคยบอกว่า Chromium ยังไม่รองรับ Opentype เต็มที่มั้งครับ

By: aborigines
Ubuntu
on 27 October 2010 - 19:16 #225779

@nattster แนะนำรุ่น dev ไปแล้วนะฮะ
ขอแนะนำ รุ่น stable ครับ

chromium thai รุ่น Stable
https://launchpad.net/~thai/+archive/chromium-thai-stable

$ sudo apt-add-repository ppa:thai/chromium-thai-stable
$ sudo apt-get update
$ sudo apt-get install chromium-browser

อยู่ใน team เดียวกับ chromium-thai นี้ละครับ
ใช้ patch ของ @lew เช่นเดิม

By: bow_der_kleine
WriterAndroidUbuntu
on 28 October 2010 - 09:40 #226007 Reply to:225779
bow_der_kleine's picture

โอ ... มันยอดมาก

By: tomazzu
AndroidUbuntu
on 28 October 2010 - 11:22 #226057 Reply to:225779

ใช้ไม่ dev ก็เปิด GPU ไม่ได้หนะสิครับ:(

By: lew
FounderJusci's WriterMEconomicsAndroid
on 28 October 2010 - 11:47 #226078 Reply to:226057
lew's picture

มี daily ให้หนิครับ

น้องเค้าทำ stable ให้เผื่อใครอยากใช้ของนิ่งๆ


lewcpe.com, @public_lewcpe

By: tomazzu
AndroidUbuntu
on 28 October 2010 - 12:04 #226090 Reply to:226078

ขออภัยงับ ตาไวรีบ อ่านไปนิส