Firefox Thai
From Scratchpad
Firefox ตัดคำ(ตัดบรรทัด; line breaking)โดยเรียก API ของแต่ platform ครับ. สำหรับ GNU/Linux ป๋าเทพจัดการต่อกับ Pango ไปเรียบร้อยแล้ว แต่ว่าก็บาดเจ็บไปแล้ว. ทีนี้ของ Mac OS X กับ Windows ก็ต้องต่อกับ ATSUI และ Uniscribe ตามลำดับ แทนที่จะเป็น Pango. เราก็อยากเขียน code ที่จะมาต่อ ATSUI กับ Uniscribe.
-
GNU/Linux - Pango -
Mac OS X - ATSUI -
Windows - Uniscribe
Contents |
[edit] Related bugs
- Bug 7969 : need dictionary based Thai line breaker and intergrate into line/word breaker
-
Bug 336959: Line Breaking with Pango/Uniscribe - รวมเรื่อง Thai support
-
Bug 389520 - Complex Text Line Breaking with ATSUI/Carbon for Mac -
Bug 390048 - Complex Text Line Breaking with Uniscribe for Windows
[edit] ผู้ใหญ่ท่านว่า
[edit] บน Mac OS X
[edit] Patch
- แก้ให้ patch ผ่านสำหรับ source code ที่ check out ออกมาใหม่ๆ (source code ของวันนี้ 20070816 มี Uniscribe เข้าไปแล้ว คาดว่าคงได้รับเข้าต้นน้ำแล้วมั้ง เลยทำให้ patch ของวีร์ patch ไม่ผ่่าน - cwt)mozmacth20070816.diff
- แก้ชื่อ contributor ตาม comment http://www.geocities.com/veetai/mozmacth20070725.txt
- อีก patch หลังจากป๋าเทพ comment http://www.geocities.com/veetai/mozmacth20070724.txt (จับทางได้แล้วว่า backup แค่ไฟล์ Makefile.in ก็ทำ patch ได้)
- patch แบบดีๆ http://www.keng.ws/files/ThaiMozMac_alpha_1.patch
- พอดีเข้า cvs ไม่ได้เลย ไม่มี original code มา diff เอาแบบเถื่อนๆ ไปก่อนแล้วกันนะครับ. รอคนใจดี diff ให้. intl/lwbrk/src/Makefile.in และ intl/lwbrk/src/nsCarbonBreaker.cpp เอาใส่รวมกันมาใน download
[edit] Nightly Build (Build แล้วหลับ)
- 20070724 (PPC ลืมทำ Universal Binary)
- 20070725 Patch ก่อนวีร์ปรับปรุง (ใจร้ายไม่บอกก่อน มัน build โคตรนาน (ล้อเล้น)) Universal Binary
- 20070731 Patch ล่าสุดที่ส่งให้ roc review กับ superreview - Universal Binary
- 20070805 Firefox 3 Pre Alpha 8 - Universal Binary
- 20070811 Firefox 3 Pre Alpha 8 - Universal Binary
- 20070816 ใช้ patch ที่แก้ให้ผ่านสำหรับ source code วันที่ 20070816 ข้างบนนั่นแหละ แต่ Binary นีึ้ใช้ได้เฉพาะ Intel ที่มี EM64T เท่านั้น (พวก Core2, ไม่แน่ใจว่าต่ำกว่านี้ได้หรือเปล่า - cwt)
- ล่าสุด patch ของ mac ก็ checked-in ไปแล้วนะ
[edit] บักทึกประสบการณ์ build บน Mac OS X
ลอง build บน iBook G4 ใช้ Mac OS X 10.4 พร้อม Macports
- ลง Xcode เอาได้จาก http://developer.apple.com/tools/xcode/ และต้องใช้ Apple ID (ที่ขอได้ไม่ยาก). ไฟล์เกือบ 1 GB โหลดนานเหมือนกัน. โหลดมาแล้วผมก็ลงเลย. เขาว่าให้ลง cross compile ด้วย.
- สั่ง sudo port -v sync เพื่อ sync port ให้สดใหม่ ขั้นตอนนี้ใช้ rsync ซึ่งอาจจะมีปัญหาได้ ถ้าเน็ตถูก block port.
- sudo port install -v libidl
- sudo port install -v autoconf213
- sudo gcc_select 4.0
- สร้าง $HOME/.mozconfig ตามที่ลอกเขามา
. $topsrcdir/browser/config/mozconfig ac_add_options --with-macos-sdk=/Developer/SDKs/MacOSX10.4u.sdk ac_add_options --disable-tests
- $HOME/.mozconfig อีกแบบ กรณีต้องการ build เป็น Universal Binary
. $topsrcdir/browser/config/mozconfig . $topsrcdir/build/macosx/universal/mozconfig ac_add_options --with-macos-sdk=/Developer/SDKs/MacOSX10.4u.sdk ac_add_options --enable-optimize=-O2 ac_add_options --disable-shared ac_add_options --disable-tests ac_add_app_options ppc --enable-prebinding mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/../build
- เอา source code มาจาก cvs
mkdir -p ~/Projects/moz cd ~/Projects/moz cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/client.mk cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/browser/config/mozconfig cd mozilla make -f client.mk checkout
- check out เสร็จก็ขอ backup หน่อย ตามฟอร์ม
cd ~/Projects/moz cp -rp mozilla mozilla.orig
- สั่ง build เลย
cd ~/Projects/moz/mozilla/ make -f client.mk build
- เปลี่ยน folder เพื่อจะ run
cd ~/Projects/moz/mozilla/dist/
- สั่ง run
Minefield.app/Contents/MacOS/firefox
- ทำ dmg
make -C browser/installer/
dmg จะอยู่ที่ ~/Projects/moz/mozilla/dist/
- ทำ dmg กรณี Universal Binary
make -C ../build/ppc/browser/installer
dmg จะอยู่ที่ ~/Projects/moz/build/ppc/dist กรณี Universal Binary
[edit] ปัญหาที่อาจเกิดตอน build บน Mac OS X
[edit] ปัญหา (1)
gohan:/Volumes/barracks/works/Moz/mozilla keng$ make -f client.mk checkout : No such file or directoryonfig2client-mk: line 3: /Volumes/barracks/works/Moz/mozilla/browser/config/mozconfig client.mk:520: /Volumes/barracks/works/Moz/mozilla/.mozconfig.mk: No such file or directory make: *** No rule to make target `/Volumes/barracks/works/Moz/mozilla/.mozconfig.mk'. Stop.
[edit] การแก้ไข (1)
ใช้ dos2unix เปลี่ยน line feed ของ .mozconfig (มีอยู่ใน darwinport)
dos2unix .mozconfig
[edit] API น่าสนใจ
- UCFindTextBreak low level ดีแต่ไม่แน่ใจหรอกว่าใช้ได้หรือเปล่า.
อีกตัวอย่างที่ใช้ UCFindTextBreak
#include "nsComplexBreaker.h"
#include <Carbon/Carbon.h>
void
NS_GetComplexLineBreaks(const PRUnichar* aText, PRUint32 aLength,
PRPackedBool* aBreakBefore)
{
OSStatus status = noErr;
NS_ASSERTION(aText, "aText shouldn't be null");
TextBreakLocatorRef breakLocator;
UniCharArrayOffset position;
for(UniCharArrayOffset i = 0; i < aLength; ++i)
{
aBreakBefore[i] = PR_FALSE;
}
status = UCCreateTextBreakLocator(NULL, 0, kUCTextBreakLineMask, &breakLocator);
if(status == noErr)
{
UniCharArrayOffset offset;
for(position = 0; position < aLength;)
{
status = UCFindTextBreak(breakLocator,
kUCTextBreakLineMask,
position == 0 ? kUCTextBreakLeadingEdgeMask :
(kUCTextBreakLeadingEdgeMask |
kUCTextBreakIterateMask),
(const UniChar *)aText,
aLength,
position,
&offset);
if(status != noErr)
{
break;
}
aBreakBefore[offset] = PR_TRUE;
position = offset;
}
UCDisposeTextBreakLocator(&breakLocator);
}
}
- มีแต่การเซ็ตค่า PR_TRUE ไม่มีการเซ็ตช่องที่เป็น PR_FALSE ถ้า array ไม่มีการ initialize ค่ามาก่อน คงมั่วน่าดู -Thep.
- init ให้เป็น PR_FALSE ก่อนเข้าเลยดีเปล่าครับ? Vee 06:02, 24 July 2007 (UTC)
- ได้เหมือนกันครับ -Thep.
- init ให้เป็น PR_FALSE ก่อนเข้าเลยดีเปล่าครับ? Vee 06:02, 24 July 2007 (UTC)
- position = offset + 1 ทำไมต้อง "+ 1"? ไม่ใช่ว่า offset ที่ return จาก UCFindTextBreak จะไม่เท่ากับค่า position ที่ pass ให้อยู่แล้วหรือ? -Thep.
- มีตรงเหมือนกันครับ ตัวอย่าง ใส่ position = 3 ได้ offset กลับมาเป็น 3. Vee 06:02, 24 July 2007 (UTC)
- อืม ผมอ่าน manual เขาบอกว่าค่าที่ return จะไม่เท่า ถ้าใช้ option kUCTextBreakLeadingEdgeMask หรือ kUCTextBreakGoBackwardsMask อย่างใดอย่างหนึ่ง (แต่เราคงไม่ใช้อย่างหลัง) ความจริงถ้าใช้ kUCTextBreakLeadingEdgeMask เสมอ (คือ position เป็น known break position) ก็คงไม่เท่า? -Thep.
- อ่าน manual เพิ่มเติมอีก ตรง break type น่าจะใช้ kUCTextBreakLineMask แทน kUCTextBreakWordMask และตรง break option อาจจะต้องกำหนด kUCTextBreakLeadingEdgeMask เสมอในกรณี forward search และอาจจะ or ด้วย kUCTextBreakIterateMask ในการ call ครั้งที่สอง (คือส่งค่า position == 0 ? kUCTextBreakLeadingEdgeMask : kUCTextBreakLeadingEdgeMask | kUCTextBreakIterateMask) เพื่อ optimize การตัดคำอีกนิด ยังไงลองดูก่อนละกันครับ ดีไม่ดี อาจใช้ kUCTextBreakLeadingEdgeMask | kUCTextBreakIterateMask เสมอเลยก็ได้ ในเมื่อเรารู้ว่าเราเริ่มจากต้นคำอยู่แล้ว -Thep.
- มีตรงเหมือนกันครับ ตัวอย่าง ใส่ position = 3 ได้ offset กลับมาเป็น 3. Vee 06:02, 24 July 2007 (UTC)
- ยังไม่ได้จัดการกรณีที่ status != noErr (อาจจะ fall back ด้วยการเติมค่า PR_FALSE ให้หมดเลยก็ได้) -Thep.
- ถ้า init เป็น false หมดแต่แรกก็ไม่ต้อง fall back? ผมเห็นใน Webkit พอมี error จะ fall back มาที่ rule. Vee 06:02, 24 July 2007 (UTC)
- ครับ ไม่ต้อง -Thep.
- ถ้า init เป็น false หมดแต่แรกก็ไม่ต้อง fall back? ผมเห็นใน Webkit พอมี error จะ fall back มาที่ rule. Vee 06:02, 24 July 2007 (UTC)
- ถ้าพอตัดคำได้แล้ว file bug เลยดีไหม? -Thep.
- ตอนนี้ก็ตัดได้แล้วนะครับ(เล่นอยู่เลย). แต่ว่าอยากให้ internal review ก่อน. เดี๋ยวแก้อีกรอบและทุกคนเห็นว่าใช้ได้ ก็น่าจะ file bug เลยครับ. ป๋าเป็น sponsor file ให้เปล่าครับ? Vee 06:02, 24 July 2007 (UTC)
- ผมคงทำอะไรกับ patch และ bug นี้ไม่ได้มาก เพราะไม่มี Mac ให้ลองครับ แฮะ ๆ -Thep.
- แฮ่ม.. ก่อนอื่น แก้ข้อมูลตรง license block ก่อนดีไหม?
- ผมคงทำอะไรกับ patch และ bug นี้ไม่ได้มาก เพราะไม่มี Mac ให้ลองครับ แฮะ ๆ -Thep.
- ตอนนี้ก็ตัดได้แล้วนะครับ(เล่นอยู่เลย). แต่ว่าอยากให้ internal review ก่อน. เดี๋ยวแก้อีกรอบและทุกคนเห็นว่าใช้ได้ ก็น่าจะ file bug เลยครับ. ป๋าเป็น sponsor file ให้เปล่าครับ? Vee 06:02, 24 July 2007 (UTC)
+ * The Initial Developer of the Original Code is + * Theppitak Karoonboonyanan <thep@linux.thai.net>. + * Portions created by the Initial Developer are Copyright (C) 2007 + * the Initial Developer. All Rights Reserved. + * + * Contributor(s): + * - Theppitak Karoonboonyanan <thep@linux.thai.net>
- ช่วยแก้เป็นชื่อ Vee ด้วยครับ -Thep.
- แก้แล้วครับ http://www.geocities.com/veetai/mozmacth20070725.txt Vee 08:22, 25 July 2007 (UTC)
- อย่าลืมแก้ Initial Developer ด้วยนะครับ แล้วก็ file Bug 389520 เรียบร้อยแล้วครับ ย้ายไปคุยที่นั่นดีกว่า
- แก้แล้วครับ http://www.geocities.com/veetai/mozmacth20070725.txt Vee 08:22, 25 July 2007 (UTC)
- ช่วยแก้เป็นชื่อ Vee ด้วยครับ -Thep.
- ATSUBatchBreakLines ดูตรงๆดีแต่ว่าต้องมาสร้าง TextLayout อะไรก่อน ไม่รู้เหมาะหรือเปล่า.
- ATSUGetSoftLineBreaks น่าจะเป็นฟังก์ชันนี้มากกว่า ถ้าจะใช้ ATSUI (หาตำแหน่งตัดคำทั้งหมด) ส่วน ATSUBatchBreakLines เหมือนจะใช้แบ่งบรรทัดใน frame ที่กำหนดมากกว่า
[edit] ข้อสังเกต
- บนแมคตัดคำแปลกๆ ในบางจุด อาทิ
- http://www.blognone.com/node/5391/28027 [รูป] - 202.80.255.2 22:05, 28 July 2007 (UTC)
[edit] บน Windows
- Uniscribe
- สิ่งที่ต้องการก่อน build Firefox บน Windows
- คอมไพเลอร์ official สำหรับ Firefox 3 คือ VC8 (Visual Studio 2005)
- สามารถใช้ VC7.1 (Visual Studio 2003) และ VC9 (Orcas) ได้
- แต่ใช้ VC6 ไม่ได้
- ใช้ Visual C++ 2005 Express Edition ได้ (ฟรี)
- แต่ต้องลง GUI development environment ด้วย
- พร้อมกับ Windows Platform SDK (Windows Server 2003 SP1 Platform SDK)
- ก่อน build ต้องติดตั้งแพคเกจ "MozillaBuild" ซึ่งรวมซอฟต์แวร์ที่จำเป็นสำหรับการ build เอาไว้ (MSYS, Python, NSIS และ UPX) -- ดาวโหลดทั้งแพคเกจได้จาก MozillaBuild
- คอมไพเลอร์ official สำหรับ Firefox 3 คือ VC8 (Visual Studio 2005)
[edit] Nightly Build (Build แล้วหลับ)
[edit] ประสบการณ์ build บน Windows XP
ทดลองโหลด VC8 (express edition) มาลอง build ดู
- ลง VC8, VC service pack, PlatformSDK
- ลง MozillaBuild ไว้ที่ c:\mozilla-build แล้วเข้า build shell โดย
C:\>cd mozilla-build C:\mozilla-build>start-msvc8.bat
- สร้าง ~/.mozconfig คล้ายๆ ของ OS X
. $topsrcdir/browser/config/mozconfig ac_add_options --disable-tests
- เอา source code มาจาก cvs แล้วสั่ง build (path ที่จะใช้ build ต้องไม่มี space)
mkdir -p /c/dev/moz cd /c/dev/moz cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/client.mk cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/browser/config/mozconfig cd mozilla make -f client.mk checkout make -f client.mk build
[edit] API ที่น่าสนใจ
- ScriptItemize แยกข้อความออกเป็นช่วง ๆ แยกตามภาษา
- ใน ScriptItemize ต้องกำหนด cMaxItems ใน Abiword ใช้วิธีกำหนดให้เท่ากับ 20 ในตอนแรก. ถ้าหากว่า ScriptItemize คืนค่า E_OUTOFMEMORY ออกมาแสดงว่าให้ค่า cMaxItems ไว้น้อยไปก็ค่อน วน loop เพิ่มเอา.
- นี่แปลว่า จะต้องเริ่มทำ ScriptItemize ใหม่ทุกครั้งที่วน ? (สมมติยาว 100 ทำ 1-40 ไป เกิดค่า cMaxItems ไม่พอ ก็ต้องทำตั้งแต่ 1 ใหม่ ??)
- ถูกครับ. Vee 06:11, 24 July 2007 (UTC)
- นี่แปลว่า จะต้องเริ่มทำ ScriptItemize ใหม่ทุกครั้งที่วน ? (สมมติยาว 100 ทำ 1-40 ไป เกิดค่า cMaxItems ไม่พอ ก็ต้องทำตั้งแต่ 1 ใหม่ ??)
- ScriptBreak วิเคราะห์ character properties ในแต่ละ item ที่ได้จาก ScriptItemize ซึ่งรวมถึงจุดแบ่งบรรทัดด้วย
- ตัวอย่างการใช้ Uniscribe ตัดคำจากคุณ Otto
[edit] patch for win32
- Bug #390048 ใส่ e-mail address ให้มัน alert เวลามีอะไรเปลี่ยนแปลงได้ด้วยนะครับ. ถ้ามี patch หรือ comment ใหม่ก็ add ได้เลย. Vee 17:11, 29 July 2007 (UTC)
- แก้ตามที่ทาง Mozilla review แล้วครับ ฝากคุณ Vee ส่ง patch ให้ใหม่ด้วยครับ code อยู่ที่เดิม nsUniscribeBreaker.cpp - Nattachai
- มี Makefile.in ด้วยเปล่าครับ? Vee 06:45, 30 July 2007 (UTC)
- Makefile.in ใช้อันเดิมได้ไหมครับ ? Makefile.in.patch ต้องแก้อะไรหรือเปล่า ? - Nattachai
- เหมือน roc อยากให้เอา code ที่เอาไว้ build Carbon(Mac) ออกก่อนอะครับ. ประมาณว่าเป็น 2 patch ที่อิสระจากกัน. Vee 09:22, 30 July 2007 (UTC)
- แก้ใหม่แล้วครับ อยู่ที่เดิม Makefile.in.patch - Nattachai
- Vee ครับ ลองเข้าไป check ที่ bugzilla หน่อยครับ เหมือนล่าสุดเค้า assigned ให้ vee review หรือเปล่า? เพราะผม submit patch ที่แก้แล้วเข้าไปใหม่ - Nattachai
- มีเครื่องหมาย + คือ roc review ให้ผ่านแล้วมั้ง? แต่ว่า step ต่อไปทำไรกันต่อดี? Vee 16:09, 1 August 2007 (UTC)
- ไม่ต้อง assign กลับไปที่ roc แล้วเหรอครับ ? แล้วเราจะทำไรกันต่อดีน้อ ช่วงนี้ำกำลังฟิตด้วย :D - Nattachai
- มีเครื่องหมาย + คือ roc review ให้ผ่านแล้วมั้ง? แต่ว่า step ต่อไปทำไรกันต่อดี? Vee 16:09, 1 August 2007 (UTC)
- เหมือน roc อยากให้เอา code ที่เอาไว้ build Carbon(Mac) ออกก่อนอะครับ. ประมาณว่าเป็น 2 patch ที่อิสระจากกัน. Vee 09:22, 30 July 2007 (UTC)
- Makefile.in ใช้อันเดิมได้ไหมครับ ? Makefile.in.patch ต้องแก้อะไรหรือเปล่า ? - Nattachai
- มี Makefile.in ด้วยเปล่าครับ? Vee 06:45, 30 July 2007 (UTC)
- แก้ตามที่ทาง Mozilla review แล้วครับ ฝากคุณ Vee ส่ง patch ให้ใหม่ด้วยครับ code อยู่ที่เดิม nsUniscribeBreaker.cpp - Nattachai
- หน้าที่เราช่วงนี้คือรอครับ patch ผ่าน review แล้ว ก็แปลว่า ใครที่มีสิทธิ์ commit CVS ได้ผ่านมาพบ ก็สามารถ commit ให้ได้ หรือถ้าไม่มีใคร commit ก็อาจเป็น roc เองที่มา commit ให้ การ commit บางทีต้องรอจังหวะโค้ดส่วนอื่นด้วยเหมือนกัน -Thep.
- อ้อ อีกอย่างคือ อาจมีใครมา comment เพิ่มด้วยนะครับ ระหว่างที่รอ เพราะจากมุมมองหลาย ๆ คน อาจมีบางคนเห็นปัญหาบางด้านที่เหลืออยู่ เพราะฉะนั้น standby เตรียมแก้ patch ตามจำเป็นด้วยนะครับ -Thep.
- ขอบคุณป๋าเทพมากครับ - Nattachai
- อ้อ อีกอย่างคือ อาจมีใครมา comment เพิ่มด้วยนะครับ ระหว่างที่รอ เพราะจากมุมมองหลาย ๆ คน อาจมีบางคนเห็นปัญหาบางด้านที่เหลืออยู่ เพราะฉะนั้น standby เตรียมแก้ patch ตามจำเป็นด้วยนะครับ -Thep.
[edit] ถามตอบ
- ควรจะใช้ Firefox จาก cvs หรือว่า download ที่เป็น tarball มาดี?
- ต้องใช้จาก CVS เพราะว่า tarball มีแต่ที่เป็น release ไม่มี snapshot. โดยทำตามวิธีการในหน้านี้ Vee 20:41, 19 July 2007 (UTC) (ถามเองตอบเอง จะได้ไม่ลืมเอง)
- หากไม่สามารถ login ได้โดยพบข้อความในระหว่าง download จาก CVS ว่า "Emtry password used-try 'cvs login' with a real password" ควรทำเช่นไร.?
- ตอน checkout ใช้คำสั่งอะไรครับ? Vee 07:02, 21 July 2007 (UTC)
- password ปกติเป็น "anonymous" อ่ะครับ - Keng 13:26, 21 July 2007 (UTC)
- มีท่าอะไรทำให้ rebuild เร็วๆ หรือเปล่าครับ? ผมสั่ง make -f client.mk build นี่มันนานเหลือเกิน Vee 22:56, 22 July 2007 (UTC)
- ท่า check carbon. ใน Makefile.in ของเดิมมี ifdef MOZ_ENABLE_PANGO แต่ถ้าจะ ifdef Carbon แทนจะทำไง? Vee 22:56, 22 July 2007 (UTC)
ifeq ($(MOZ_ENABLE_PANGO),1) # Pango stuffs else ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT))) # Mac stuffs else ifeq ($(MOZ_WIDGET_TOOLKIT),windows) # Windows stuffs else # Fallback stuffs endif endif endif
ประมาณนี้ครับ ตรงเช็ก Mac นี่ ผมไม่แน่ใจ ว่า ATSUI/Carbon จะมีให้ใช้ทั้ง mac ทั้ง cocoa หรือเปล่า ถ้ามีทั้งคู่ ก็เช็กแบบข้างบน ถ้ามีเฉพาะ cocoa ก็เช็กแค่ ifeq ($(MOZ_WIDGET_TOOLKIT),cocoa) -Thep.
- Mozilla's Build Configurator เอาไว้ช่วยตั้งค่าไฟล์ build configuration -- bact'
- ใน Wikipedia บอกว่า ATSUI กำลังจะ deprecate และถูกแทนที่ด้วย Core Text ใน Leopard
- แบบนี้ใช้แค่ UCFindTextBreak ก็น่าจะปลอดภัยกว่า? Vee 07:47, 23 July 2007 (UTC)
- Core มันเยอะจนน่ารำคาญ - Keng 09:29, 23 July 2007 (UTC)
- เรื่องการทดสอบผลการตัดคำนี่มี test case ของภาษาต่างๆ ให้ลองทดสอบดูหรือเปล่า มันควรจะมีแต่ไม่รู้ว่าจะหาได้จากที่ไหนบ้าง - pittaya
- เห็นแถวๆ นี้มีอยู่ น่าจะพอใช้ได้ [1] - Keng 06:46, 24 July 2007 (UTC)
- อันนี้อีกอัน เด็ดดวง จากคุณ Ott - 124.120.221.137 10:22, 25 July 2007 (UTC)
- ลอง test ดูเจ๊ง nightly build ที่ยังไม่ได้ patch carbon ก็เจ๊ง http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/ Vee 21:40, 28 July 2007 (UTC)
- ตัวนี้ลองกับ a8pre ผ่านแล้วนะ - 202.80.255.2 17:06, 5 August 2007 (UTC)
- ปัจจุบันเวอร์ชันวินโดวส์ตัดคำภาษาไทยได้อยู่แล้วหรือครับ? ผมเพิ่ง build เสร็จ และลองเปิด [2] พบว่าตัดคำได้แล้ว!?! --PaePae 19:49, 26 July 2007 (UTC)
- ตัดคำได้แต่ว่าไม่ได้ใช้ Uniscribe ใช้ rule ใน rules.c ขาด 407 บรรทัด. (ซึ่งไม่น่าจะดีเท่า Uniscribe?) ปกติแล้วถ้าใช้ native ตัดไม่ได้ก็จะ fallback ไป rules นี้ทุก platform. Vee 20:23, 26 July 2007 (UTC)
- บนวินโดวส์ถ้าจะทำเป็น zip หรือ installer หลังจาก build แล้วจะต้องทำอย่างไร
- make package หรือ make installer ตามลำดับ หลังจาก build แล้วที่ build จะอยู่ใน dir dist - Revolution
- บนวินโดวส์ผมลองโหลดไปใช้ เจอตัวอักษรแปลกๆ � แบบนี้ครับ Revolution
[edit] ประชาสัมพันธ์
- http://www.thaimacclub.net/forum/topicview.php?no=10112
- http://codenone.com/node/393
- http://www.blognone.com/node/5349
[edit] ผู้เกี่ยวข้อง
ผมพยายามนำชื่อจากใน blog มาเติม. ขออภัยที่ไม่ได้ใส่ชื่อให้ถูกต้องทุกท่าน ถ้าผมใส่ไม่ถูกและเปิดเผยชื่อได้ ขอความกรุณาแก้ไขได้เลยครับ.

