Open GoogleCodeExporter opened 8 years ago
Mình
- tổng hợp một vài nguồn thông tin trên mạng
- tự liệt kê kiểm chứng
rồi rút ra một quy tắc thế này:
Trong tiếng Việt chỉ có những phụ âm sau đóng vai trò kết
thúc âm tiết (chung âm):
- c, ch
- m
- n, ng, nh
- p
- t
Trong đó, đáng chú ý là những chung âm c, ch, p, t thì chỉ đi
kèm với dấu sắc và dấu
nặng; không đi kèm với dấu huyền, hỏi và ngã. Ví dụ: tích,
tịch (không: tìch, tỉch,
tĩch);...
Nếu bạn viết một hàm kiểm tra việc bỏ dấu này thì có thể
loại trừ được kha khá lỗi
khi Kiểm tra chính tả đang bật.
Ví dụ:
bieesng => biếng
nhưng
bieesngh => biêngsh hoặc biênghs (không nên cho kết quả biếngh)
vì ngh không phải là chung âm hợp lệ, đồng thời khử dấu
sắc và cho xuống vị trí chót
hoặc áp chót (vị trí nào thì cần phải thảo luận để đạt
được sự tiện lợi nhất).
Original comment by dinh.son...@gmail.com
on 15 May 2008 at 7:12
Đã thử nghiệm đưa các quy tắc này vào từ r47, và trang test.
Thử vài hôm nữa nếu
không có vấn đề gì sẽ đưa vào mục Downloads.
Original comment by mud...@gmail.com
on 16 May 2008 at 2:40
Kiểu gõ: Tự động
tra? => tra? (như kì vọng)
tra. => trạ (kì vọng: "tra.")
tra( => tră (kì vọng: "tra(")
Cái này chắc do kiểu gõ VIQR mà ra đây, hìhì.
Mình băn khoăn không biết có nên đề nghị bạn bỏ kiểu gõ
VIQR để mã nhẹ hơn hay không,
vì mình thấy ít người sử dụng kiểu này. Nếu nhớ không
nhầm thì kiểu gõ này do tác giả
mViet sáng tác từ lâu (mình nghe nói đến mViet từ năm 2004) nhưng
nó không phổ biến
và không được ưa chuộng. Nói chung, quan điểm của mình là
phần mềm cần nhẹ, chạy
nhanh, hướng tới phần đông người dùng. Những cái không hợp
lí sẽ dần bị thải loại, dù
do cả yếu tố khách quan lẫn chủ quan.
Original comment by dinh.son...@gmail.com
on 17 May 2008 at 10:30
Đúng là do kiểu Viqr. Kiểu gõ Auto được đặt ra để ai cũng
có thể gõ tiếng Việt ngay
khi mới vào trang web, chưa tìm hiểu gõ tiếng Việt gõ thế nào,
lẽ ra người dùng nên
chuyển về kiểu gõ ưa thích thì sẽ không bị phiền toái như
vậy.
Kiểu gõ Viqr là hệ quả trực tiếp của "bảng mã" Viqr có từ
thời tiếng việt chưa được
hỗ trợ trên internet. Nhưng hiện nay vẫn còn một số ít người
thích gõ kiểu này. Thực
ra việc hỗ trợ thêm hay bớt đi 1 kiểu gõ cũng không làm bộ
gõ nặng hay nhẹ hơn, vì
chỉ là thêm hay bớt 1 dòng định nghĩa kiểu gõ thôi.
Nhưng cũng có 1 thực tế là những người thích kiểu Viqr mình
biết thì đều biết gõ một
trong 2 kiểu telex hoặc vni. Có lẽ cũng nên xem xét việc rút
kiểu Viqr ra khỏi kiểu Auto.
Nhân tiện nói về các kiểu gõ, không hiểu sao kiểu Vni cũng
tương đối phổ biến (nghe
nói là thừa kế từ thời máy đánh chữ cơ học) mặc dù có
nhược điểm là gõ chữ bao giờ
cũng nhanh hơn gõ số trên bàn phím --> gõ telex nhanh hơn.
Original comment by mud...@gmail.com
on 17 May 2008 at 1:12
Từ r66, kiểu gõ tổng hợp đã bỏ viqr đi, chỉ còn vni và telex
Original comment by mud...@gmail.com
on 17 May 2008 at 10:03
> Nhân tiện nói về các kiểu gõ, không hiểu sao kiểu Vni cũng
tương đối phổ biến
Nguyên nhân thuộc về usability. Để hướng dẫn bác Nông Văn X
cách tiếng Việt, chỉ cần
nhắc bác ấy rằng: 1 là sắc, 2 là huyền, 3 là hỏi v.v. Ngoài ra
khi gõ tiếng Anh và
tiếng Việt chung một văn bản, thì kiểu VNI cho gõ thoải mái
hơn vì không phải gõ lặp.
Nói về tốc độ gõ, bàn phím QWERTY không phải là bàn phím cho
phép gõ chữ Latinh nhanh
nhất, nhưng lại phổ biến nhất.
Original comment by ngocdaot...@gmail.com
on 18 May 2008 at 2:31
AVIM kiểm lỗi chính tả và đặt dấu rất tốt, đã cải tiến
trong một thời gian dài, sao
không học tập, tiếp thu thành quả này của họ (mặc dù mã
nguồn hơi khó đọc) ?
Original comment by hai...@gmail.com
on 19 May 2008 at 9:25
Không hẳn vậy đâu, các quy tắc chính tả của avim phần lớn
chỉ hình thành trong giai
đoạn đầu thôi, thời gian gần đây các cập nhật của avim
chủ yếu vì vấn đề tương thích
với các phiên bản mới của các ứng dụng web mới ra.
Hơn nữa thiết kế của Avim và Mudim là khác nhau, đọc đám code
khó hiểu của Avim để áp
dụng thì thà tự viết còn nhanh hơn, vì mỗi quy tắc chỉ là
một vài dòng code thôi.
Đúng là trước đây chức năng soát lỗi và bỏ dấu của Avim
là mục tiêu hướng tới của
Mudim nhưng hiện nay thì không. Nhờ những đóng góp rất tích
cực của Sơn mà chức năng
này của Mudim đã không thua kém, thậm chí vượt Avim ở một số
điểm. Xin lấy vài ví dụ
với kiểu telex:
- Avim vẫn cho phép bỏ dấu trong các trường hợp: qas -> qá, quw
-> qư, cieems -> ciếm
còn Mudim thì không
- Với Mudim gõ luwoif sẽ được "lười" còn với Avim được
"lừoi"
Ngoài ra license của Avim cũng không rõ ràng, không phải GPL, chỉ
mô tả vài câu nên
Mudzot cũng không muốn liên quan đến đám code của Avim.
Original comment by mud...@gmail.com
on 19 May 2008 at 10:50
Trích dẫn một bài viết từ blog của mình:
>>>
Xưa tập viết tiếng Việt, nhớ là có quy tắc như vầy:
- Nếu liền sau là các nguyên âm a, o, u thì viết g, ng.
- Nếu liền sau là các nguyên âm e, i thì viết gh, ngh.
Nay dạy tập viết tiếng Việt cho hai thằng cu con nhà chú Dương
thì "phát hiện" ra quy
tắc tương tự:
- Nếu liền sau là các nguyên âm a, o, u thì viết c.
- Nếu liền sau là các nguyên âm e, i thì viết k.
Để ý là liền sau g, gh, ng, ngh không viết y (i dài). Vậy, nên
viết y liền sau k như
kỹ thuật, chữ ký,...?
Một "phát hiện" nữa là đi liền sau c, k không có các tổ hợp
nguyên âm mở loại oa, oe,
uy. Thay vào đó, người ta dùng qua, que, quy.
<<<
Hiện nay, với Mudim:
cys => cý (mong đợi: cys)
kaa => kâ (mong đợi: kaa)
koo => kô (mong đợi: koo)
kow => kơ (mong đợi: kow)
kuw => kư (mong đợi: kuw)
Mình nghĩ bạn nên viết lại quy tắc chính tả về c và k cho
Mudim như sau:
- Liền sau c mà có a, o, u và liền sau k có e, i thì cho bỏ dấu
thanh và dấu phụ.
(xem thêm phần dưới; đồng thời xem xét nới lỏng thêm việc
bỏ dấu cho y khi chỉ một
mình y liền sau k mà không có phụ âm cuối)
-------
coaf => coà (mong đợi: coaf)
coef => coè (mong đợi: coef)
cuyf => cuỳ (mong đợi: cuyf)
Nên thắt chặt thêm quy tắc bỏ dấu: sau c không cho phép bỏ
dấu thanh điệu và dấu phụ
(trăng, mũ, móc) trên các vần sau: oa, oe, uy, uê, uơ, uyê. Thật ra
còn oă nhưng mà
đã không cho bỏ dấu phụ trên oa sau c thành thử mình không kể
thêm vào.
Original comment by dinh.son...@gmail.com
on 20 May 2008 at 1:19
Mình sẽ đưa dần dần các quy tắc này vào, cần sắp xếp hợp
lý đối với các quy tắc đã có
nên việc này có thể hơi mất thời gian. Khi nào làm sao mình sẽ
báo ở đây.
Original comment by mud...@gmail.com
on 20 May 2008 at 1:51
Các quy tắc này về cơ bản đã hoàn thành từ r100
Original comment by mud...@gmail.com
on 22 May 2008 at 12:21
quus => quú (mong đợi: quus)
quuw => quư (mong đợi: quuw)
Dường như bạn bỏ sót quy tắc cho ngh rồi. Ví dụ:
nghoes => nghoé (mong đợi: nghoes)
Liền sau ngh là a, o, u thì không cho bỏ dấu (cả dấu thanh lẫn
dấu phụ).
Ở trang thử nghiệm
http://www.anhn.net/test/mudim/
bạn nên lấy tệp js trực tiếp từ Google Code, chắc mỗi lần
release sẽ bớt được một
bước. Thời điểm này nó chưa được cập nhật.
;)
Original comment by dinh.son...@gmail.com
on 22 May 2008 at 2:16
Từ r104 đã bổ sung các quy tắc bắt lỗi cho các trường hợp
quus, quuw, nghoes. Ngoài
ra thêm 2 quy tắc:
- P bắt buộc đi kèm với H
- Y nếu không có phụ âm thì cũng không thể đứng cùng 1 chữ
khác (yes, bây giờ gõ chữ
yes không cần yess nữa)
Original comment by mud...@gmail.com
on 23 May 2008 at 11:03
Quên mất là còn chữ "yến", từ r106 nới lỏng quy tắc với y,
thế là vẫn phải gõ yess để
được yes
Original comment by mud...@gmail.com
on 24 May 2008 at 5:25
Trong phần lớn các ứng dụng của Windows, Ctrl+Backspace dùng để
xoá một từ về trước
và Ctrl+Del xoá một từ về sau.
(1) chuaarn[Ctrl+Backspace]chisnh => chisnh (mong đợi: "chính")
(2) chuaarn[Backspace*5]chisnh => chính (như mong đợi)
(3) chuaarn[F9*2]chisnh => chuẩnchính (như mong đợi)
(4) Lagr[F9*2]awng => Lagrăng (như mong đợi)
(5) thoarng huwowng[Ctrl+Left,F9*2]xaj[Space] => thoảng xạ hương (như
mong đợi)
(6) thoarng huwowng[Ctrl+Left]x => thoảng hưỡnghương (mong đợi:
"thoảng xhương")
Từ sáu ví dụ trên, mình rút ra được một vài điểm sau:
- (1)+(2)+(6) => phím Backspace được coi là phím chức năng còn Ctrl
thì không.
- (6) => khi nhấn Ctrl thì bộ nhớ đệm không bị xoá đi.
- (3)+(4) => khi tắt bộ gõ rồi bật lại thì nó không hề xét
đến các kí tự xung quanh
(cả trước và sau).
- (5)+(6) => khi tắt đi rồi bật bộ gõ lên thì bộ nhớ đệm
bị xoá đi.
Từ bốn điểm suy luận trên, mình nảy ra một ý: Bạn thiết
kế Mudim sao cho
- hễ (if_1) nhắp (nhấn rồi thả ra) Ctrl thì tương đương với
việc tắt rồi bật lại bộ
gõ, không kiểm tra các con chữ liền trước và liền sau con trỏ.
- còn nếu (else_1 if_2) kết hợp với phím sang trái hoặc sang
phải thì tương đương với
việc xoá bộ nhớ đệm nhưng vẫn quét các kí tự liền trước
nó để bỏ dấu.
- còn nếu (else_2) kết hợp với phím khác ngoài sang trái, sang
phải thì tương đương
với việc tắt đi rồi bật lại bộ gõ và sau đó thực hiện
lệnh do tổ hợp Ctrl+[...] quy
định. Ví dụ: Ctrl+A = tắt rồi bật bộ gõ + tô sáng toàn bộ
văn bản.
Nếu làm được điều này, mình thấy rằng Mudim sẽ sánh ngang
UniKey và vượt hẳn AVIM một
bậc về độ tiện lợi khi gõ những trường hợp không phải
vần Việt thế này, đồng thời
cũng tự tạo thêm một chuẩn mới trong cách gõ tiếng Việt:
nhấn Ctrl thì bỏ qua kiểm
tra chính tả tiếng Việt để gõ những chữ như Lagrăng (ví dụ:
Lagr[Ctrl]awng => Lagrăng).
Mình "phát hiện" ra là khi dùng UniKey, nhắp Ctrl thì gõ được
như sau:
Lagr[Ctrl]awng hoặc Lag[Ctrl]rawng => Lagrăng (như mong đợi)
q[Ctrl]uas => qúa (như mong đợi)
oot[Ctrl]oo hoặc oo[Ctrl]too => ôtô (như mong đợi)
Còn tổ hợp phím LShift+RShift thì dùng để trả lại nguyên dạng
hoặc bắt đầu một từ
(http://www.unikey.org/forum/viewtopic.php?t=1541)
[LShift+RShift]Inddooneexxia => Inđônêxia (như mong đợi)
thaarm[LShift+RShift] => thaarm (như mong đợi)
nhưng
[LShift+RShift]ootoo => otoo (mong đợi: ôtô)
Mình xem thông báo về những bản release từ 3.55 trở lại đây
của UniKey không hề thấy
có nói đến chức năng bỏ qua kiểm tra chính tả khi nhắp Ctrl,
mà chỉ nhắc đến công
dụng của LShift+RShift (dù có điểm chưa hoàn thiện như đã nêu
trên). Do đó, mình đồ
rằng bản thân chú Phạm Kim Long cũng không biết "đứa con" của
mình có ưu điểm này. (Ở
đây, không loại trừ trường hợp do mình không theo dõi sát sự
phát triển UniKey nên
không được biết.) Và nghiễm nhiên Mudim sẽ là bộ gõ tiếng
Việt đầu tiên quảng bá cách
thức mới tiện lợi để gõ những từ không thuộc hệ thống
Việt ngữ chính quy ngay cả khi
chức năng Kiểm chính tả đang bật.
Original comment by dinh.son...@gmail.com
on 28 May 2008 at 12:39
Vậy mình tổng kết lại các sửa đổi dự kiến như sau:
- Giải quyết vấn đề với Ctrl-[Backspace|->|<-]
- Ctrl tạm thời tắt bộ gõ cho đến hết từ đang/sắp gõ
- Thêm 1 phím chẳng hạn Shift để tạm thời tắt kiểm tra chính
tả đến hết từ đang/sắp gõ
Original comment by mud...@gmail.com
on 28 May 2008 at 12:42
Đã làm xong từ r120, nhưng hơi ngược chút. Shift tắt bộ gõ và
Ctrl tắt kiểm tra chính
tả, dựa trên thực tế là nhu cầu tắt bộ gõ tạm thời cao
hơn và bấm Shift thì dễ hơn
Ctrl. Cũng đến lúc phải viết riêng 1 trang hướng dẫn sử dụng
bộ gõ rồi.
Hiện bản này đã có trong svn và trang test. Vài hôm nữa đưa vào
mục Downloads sẽ là
bản 0.8
Original comment by mud...@gmail.com
on 29 May 2008 at 4:15
le[Ctrl]te => lêt (kì vọng: lete)
chisnh[Ctrl]laf[Ctrl]ta => chínhlầt (kì vọng: chínhlàta)
chisnh[F9*2]laf[F9*2]ta => chínhlàta (như kì vọng)
Toasn => Toasn (kì vọng: Toán)
=> Phím Ctrl chỉ tạm thời tắt kiểm tra chính tả về mặt bỏ
dấu thanh chứ dấu mũ thì
không (với dấu móc và trăng thì mình chưa kiểm tra) => nên để
[Ctrl] <=> [F9*2]
=> Phím Shift tạm thời tắt bộ gõ khiến gây rắc rối trong
việc viết hoa đầu câu => nên
bỏ chức năng của phím Shift.
Original comment by dinh.son...@gmail.com
on 29 May 2008 at 8:39
Vẫn giữ như cũ. Nhưng bây giờ phải bấm 1 mình Shift hoặc Ctrl
rồi nhả ra mới có tác
dụng nên sẽ không ảnh hưởng tới việc viết hoa. Hoạt động
của Ctrl cũng đã được chỉnh
lại. Như vậy là đã hoàn thành chức năng này từ r124
Original comment by mud...@gmail.com
on 1 Jun 2008 at 9:40
Đúng là dân chuyên toán có khác, thông minh thế :p
Original comment by dinh.son...@gmail.com
on 1 Jun 2008 at 6:16
Làm sao để gõ dấu cho những vần "oo" có phụ âm cuối, Hoài Anh
nhỉ? Ví dụ như "mới
coóng", "quần soóc" chẳng hạn. (Để ý rằng "oo" luôn đi kèm
với chung âm "ng" hoặc "c".)
Mình phải gõ như sau:
co[Ctrl]osng => coóng
so[Ctrl]osc => soóc
Rõ ràng đây không phải là lỗi của Mudim, vì khi gõ hai chữ "o"
liên tiếp thì nó sẽ
thành "ô", phải gõ thêm chữ "o" thứ ba để khử mũ nhưng vô
hình trung lại tắt tạm thời
bộ gõ.
Suy nghĩ chủ quan ban đầu thì thế, bởi vì mình chỉ gõ kiểu
TELEX. Nếu gõ VNI thì có
người sẽ lí luận rằng
soo1c => soo1c (mong đợi: soóc)
là một lỗi của bộ gõ.
Vậy nên chăng ta thêm ngoại lệ này (if...) cho hai kiểu gõ VNI và
VIQR, còn với kiểu
gõ TELEX thì không có gì thay đổi và phải chấp nhận nhắp thêm
một lần Ctrl? Hay là
ngay cả với kiểu gõ TELEX cũng có cách cho phép ngoại lệ này?
Original comment by dinh.son...@gmail.com
on 11 Jun 2008 at 9:59
Ở kiểu TELEX thì đây là lỗi của kiểu gõ, vì "xoong" thì là
"xoong" hay "xông" cũng
được cả, và đều là tiếng Việt.
Những trường hợp này cực hiếm, có lẽ không nên giải quyết
:) Giảm kích thước code
được 1% bù lại thì thời gian gõ tăng thêm 10% trong khoảng
0,0001% các từ họ gõ, thí
dụ vậy :)
Original comment by hai...@gmail.com
on 12 Jun 2008 at 9:03
Đúng là chỉ có 1 bất tiện nhỏ thế này thì cũng không muốn
giải quyết lắm. Giá mà có 1
lớp các trường hợp thì có hứng giải quyết hơn. Thôi quyết
định là để như vậy, dùng
Ctrl để gõ thôi.
Original comment by mud...@gmail.com
on 13 Jun 2008 at 3:38
Thỉnh thoảng mình không gõ được chữ tiếng Việt ở đầu câu
do nhấn thừa phím Shift hay
sao í (dùng Firefox extension), mặc dù khi kiểm định cẩn thận ở
trang thử nghiệm thì
chức năng của phím Shift hoạt động đúng. Mình toàn phải bấm
Ctrl hoặc
(Space+Backspace) để giải phóng tác dụng tạm thời của Shift.
Không biết có bạn nào
gặp vấn đề này không? Để mình thử để ý cẩn thận trong
thời gian tới xem thế nào :(
Original comment by dinh.son...@gmail.com
on 15 Jun 2008 at 2:59
Ở kiểu TELEX
tyr => tyr (mong đợi: tỷ )
Original comment by deathe...@gmail.com
on 27 Jun 2008 at 12:52
Đã sửa từ r141
Original comment by mud...@gmail.com
on 30 Jun 2008 at 9:08
mudzot ơi,
chyr => chỷ (mong đợi: chyr)
khyr => khỷ (mong đợi: khyr)
nhyr => nhỷ (mong đợi: nhyr)
trys => trys (như mong đợi)
Bạn thắt chặt thêm quy tắc này nữa nhé: nguyên âm "y" trong
tiếng Việt
(1) nếu là quy tắc chính tả mới thì không đi liền sau bất cứ
phụ âm nào (không tính "qu")
(2) nếu là quy tắc cũ thì chỉ được đi liền sau các thuỷ âm:
h, l, m, s, t
Hiện tượng như trên, có thể do mudim chỉ xét phụ âm liền
trước nó mà không xét nó là phụ âm ghép hay phụ âm đơn.
Original comment by dinh.son...@gmail.com
on 16 Feb 2011 at 9:08
Original issue reported on code.google.com by
mud...@gmail.com
on 15 May 2008 at 3:54