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

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

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

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

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

From Captures

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

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

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

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

:)

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

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

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

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

@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 เช่นเดิม