Open lewtds opened 11 years ago
Phương pháp thứ hai là đặt hook sau khi tính toán chuỗi tiếng Việt tạo ra. Cách này có lợi thế là phím tắt có thể là chuỗi tiếng Việt. Tuy nhiên có thể sẽ chậm hơn cách đầu tiên nhưng không đáng kể.
+1
Cách này rất có lợi, tạo cảm giác tự nhiên hơn và thực tế là linh động hơn. Có 2 ví dụ đơn giản có thể đem cách này vào ứng dụng:
Nếu người dùng không làm gì thì mặc định chọn phương án không (đã commit), ngoài ra người dùng có thể chọn 1 trong 2 phương án được đề ra bên dưới. Phương án này rất giống cách auto complete trong các IDE hiện đại.
+1
Tuy nhiên nếu trong trường hợp này thì có vẻ sử dụng pre-edit sẽ đem lại lợi thế hơn, giống với auto-completion hoặc các bộ gõ chữ tượng hình.
Một điều cần quan tâm nữa là tính hoa thường của từ được viết tắt. Phần mềm GoTiengViet của tác giả Kỳ Nam sẽ tự động nhận diện hoa/thường của 2 chữ cái đầu tiên trong chuỗi viết tắt đang được gõ. VD: KG -> KHÔNG, kg -> không, Kg -> Không. Nếu implement tính năng này thì phải chú ý đến các chuỗi tên riêng như: chxhcnvn -> Cộng hòa Xã hội Chủ nghĩa Việt Nam. BoGo không có cách nào để đoán được phương pháp viết hoa thường của cụm từ phức tạp như thế này (hay chỉ implement với những từ không viết hoa?).
Anh nghĩ nên đem cái này ra trưng cầu ý kiến. Bản thân anh thấy việc nhận diện chữ cái hoa-thường rất phi tự nhiên và behaviour là unexpected, hoặc nếu có quy ước thì cũng rắc rối cho người dùng (họ phải học quy ước không phải do họ đặt ra để gõ tốt). Ngoài ra, người dùng có thể đạt hiệu ứng tương tự bằng cách định nghĩa nhiều cụm từ ("kg", "Kg", "KG", ...) và có lựa chọn để nhận diện chữ hoa hoặc không.
Vào 15:13 Ngày 04 tháng 3 năm 2013, Nguyễn Hà Dương < notifications@github.com> đã viết:
Tuy nhiên nếu trong trường hợp này thì có vẻ sử dụng pre-edit sẽ đem lại lợi thế hơn, giống với auto-completion hoặc các bộ gõ chữ tượng hình.
Em thấy nếu dùng pre-edit ở đây thì người dùng lại phải thêm một bước commit kể cả không có lựa chọn nào khác ngoài cái default.
Có một tính năng khá hay có trong bộ gõ GoTiengViet là tính năng gõ tắt kiểu karaoke. Tức là chỉ cần gõ các ký tự đầu của một cụm từ thì nó sẽ tự động tìm trong từ điển tất cả các phương án có thế. VD: tt -> tạ thế / tà thuật / trung tâm...
Cơ mà thực ra nếu làm thì cũng chỉ để cho đẹp thôi. Em không nghĩ sẽ có người thực sự dùng nó.
Cơ mà thực ra nếu làm thì cũng chỉ để cho đẹp thôi. Em không nghĩ sẽ có người thực sự dùng nó.
:+1: :-D
Nhánh develop có một vài vấn đề với popup:
man man
(hoặc bất kỳ trang man
nào)uuuuuuuuuaaaaa
Cái xuất hiện lung tung là bị trong Qt app đúng không anh?
Vấn đề man man
thì vẫn là cái chuyện terminal dùng chung input context, kể cả khi echo=off mà anh. :-?
Cái xuất hiện lung tung là bị trong Qt app đúng không anh?
Đúng đúng.
Cái vụ terminal anh quên mất :-D.
Qt hiện tại đang dùng XIM, mà trong XIM thì nó không gửi tọa độ con trỏ nên IBus không thể hiện popup đúng chỗ được.
ibus-qt
broken hả em?
ibus-qt không liên quan vì đã tắt hoàn toàn rồi. Cái XIM client không gửi tọa độ ý. Em cũng chưa xem kỹ là bản thân XIM có hỗ trợ tọa độ không hay là IBus implement thiếu.
À, ý anh là ibus-qt
broken nên mới phải chuyển qua xim
.
Em đang nghĩ đến khả năng một chuỗi viết tắt có thể expand ra nhiều kết quả khác nhau và cho phép người dùng chọn bằng drop down.
Code gõ tắt đang nằm trong nhánh https://github.com/BoGoEngine/ibus-bogo-python/tree/abbr với commit duy nhất hiện tại là: https://github.com/BoGoEngine/ibus-bogo-python/commit/cf21729b43e7474a00c4f389daa6be4a5d209830
Pull request: https://github.com/BoGoEngine/ibus-bogo-python/pull/136
Đây là một tính năng được rất nhiều người dùng quan tâm trong thời gian qua. (#47, #27)
Phương pháp đơn giản nhất để thực hiện tính năng này là tạo một hook ngay khi nhận được phím từ người dùng, so sánh raw input với danh sách các chuỗi phím tắt đã ghi sẵn và commit từ được gõ tắt. Vấn đề với phương pháp này là chuỗi phím tắt chỉ có thể là chuỗi ASCII.
Phương pháp thứ hai là đặt hook sau khi tính toán chuỗi tiếng Việt tạo ra. Cách này có lợi thế là phím tắt có thể là chuỗi tiếng Việt. Tuy nhiên có thể sẽ chậm hơn cách đầu tiên nhưng không đáng kể.
Dù theo cách nào thì cũng có một số vấn đề phải quan tâm:
Hai vấn đề dưới có thể giải quyết bằng phương pháp hiện thanh candidate (dropdown menu ngay chỗ đang gõ). VD người dùng đặt:
khi người dùng gõ chữ
kg
thì bộ gõ sẽ commit chữkhông
, đồng thời hiện ra dropdown với những entry như sau:Nếu người dùng không làm gì thì mặc định chọn phương án
không
(đã commit), ngoài ra người dùng có thể chọn 1 trong 2 phương án được đề ra bên dưới. Phương án này rất giống cách auto complete trong các IDE hiện đại.Một điều cần quan tâm nữa là tính hoa thường của từ được viết tắt. Phần mềm GoTiengViet của tác giả Kỳ Nam sẽ tự động nhận diện hoa/thường của 2 chữ cái đầu tiên trong chuỗi viết tắt đang được gõ. VD: KG -> KHÔNG, kg -> không, Kg -> Không. Nếu implement tính năng này thì phải chú ý đến các chuỗi tên riêng như: chxhcnvn -> Cộng hòa Xã hội Chủ nghĩa Việt Nam. BoGo không có cách nào để đoán được phương pháp viết hoa thường của cụm từ phức tạp như thế này (hay chỉ implement với những từ không viết hoa?).