Đánh tiếng việt linux
Bài viết được sự cho phép của tác giả Huy Trần Show Hẳn là các bạn xài Linux (dù là distro nào) thì cũng đều gặp phải một vấn đề giống nhau, đó là gõ tiếng Việt. Đã từng gõ tiếng Việt trên Windows với Unikey hay Vietkey ngày xưa thì hẳn ai cũng cảm thấy khá là khó chịu với cái dấu gạch đít quái đản khi chuyển qua xài macOS hoặc Linux. Đối với các bạn chưa biết, thì dấu này gọi là preedit và là một phương pháp “chính thống” theo lời tác giả Trung Ngo (thành viên team phát triển BogoEngine) trong bài viết Ước mơ bộ gõ kiểu Unikey. Xem thêm các việc làm Linux lương cao trên TopDev 1. Hai cách gõ tiếng ViệtĐại ý của bài viết trên thì: tựu chung, các bộ gõ tiếng Việt hiện nay có 2 cách để xử lý tiếng Việt khi gõ, đó là Backspace và Preedit.
2. Kĩ thuật BackspaceLại nói về Backspace giả, trong bài viết của mình, tác giả Trung Ngo có nói:
Mình nghĩ là đúng, ít ra là với một vài bộ gõ như GoTiengViet trên Windows (không biết phiên bản trên macOS và Linux anh Trần Kỳ Nam có cải tiến hay sử dụng kĩ thuật khác không, mình không kiểm chứng đưọc), vì từng có một thời gian lúc mình còn tham gia diễn đàn Câu lạc bộ VB, mọi ngưòi cũng thảo luận về vấn đề phát triển bộ gõ, kĩ thuật hồi đó mọi ngưòi áp dụng là:
Và thêm một lý do nữa đó là lần cuối cùng mình check thì không nhớ trên Windows có API nào để hỗ trợ các kĩ thuật khác ngoài chuyện send key. Hiện giờ nội dung các bài thảo luận đó vẫn còn, các bạn có thể tìm đọc để hiểu thêm:
3. Cấu trúc một bộ gõ thông thường trên LinuxPhải nói là trên X Window System mới đúng. Các bộ gõ khác nhau có nhiều cách xử lý khác nhau, đoạn này mình chỉ nói đến các bộ gõ dùng kiến trúc X Input Method (XIM) như ibus, SCIM,… Nếu để ý, các bạn sẽ thấy các bộ gõ như
Đọc phần này sẽ giúp các bạn hiểu thêm về cái vụ “engine gì đó” đó. Hình sau mô tả toàn cảnh việc xử lý nhập liệu trong một hệ thống X Window System: Hình vẽ lại từ tài liệu [Xlib Programming Manual – Chapter 11: Internationalized Text Input](http://menehune.opt.wfu.edu/Kokua/Irix_6.5.21_doc_cd/usr/share/Insight/library/SGI_bookshelves/SGI_Developer/books/XLib_PG/sgi_html/ch21.html)
Engine xử lý việc bỏ dấu (thay thế kí tự phù hợp với tập luật của bộ gõ) có rất nhiều loại khác nhau, đây là tài liệu mô tả logic cho engine mà Việc trao đổi giữa X client và Input Method được thực hiện thông qua một phương thức gọi là XIM Protocol. Và như các bạn thấy thì mô hình này phụ thuộc lớn vào preedit, chính vì vậy mới nói preedit là phưong pháp chuẩn cho việc soạn thảo với các ngôn ngữ ngoài tiếng Anh. 4. Thử nghiệm các bộ gõ trên LinuxVì phần lớn thời gian làm việc của mình là trên terminal, nên chuyện chấp nhận thưong đau mà dùng Preedit khi gõ lệnh hay xài trong VIM thì mình chịu, không làm đưọc, nên dù không hoàn thiện, mình vẫn chấp nhận được các bộ gõ dùng phưong pháp dùng Backspace, vậy nên bài viết này mình chỉ nhắm tới việc tìm ra bộ gõ xài Backspace hoạt động hiệu quả nhất trên Linux. 4.1. xvnkbBộ gõ đầu
tiên mình tìm hiểu thử là
LOL. Quá trình download và cài đặt diễn ra rất trơn tru, không có lỗi gì xảy ra. Nhưng sau khi cài đặt xong và restart lại máy tính thì Thế là ứng viên đầu tiên đã bị loại. 4.2. ibus-bogoThật sự là sau khi đọc bài viết của tác giả Trung Ngo và xem homepage của project trên Github xong thì không muốn xài
Để
Kết quả gõ thử nghiệm cho thấy Tuy nhiên với chế độ gõ TELEX, một vài từ có các nguyên âm Một nhược điểm khác của Lý do lớn nhất khiến
nhiều người ngại dùng 4.3. fcitx-bogoMột phiên bản khác cũng dùng
Khởi động với lệnh sau trong
Kết quả thử nghiệm cho thấy bộ gõ này hoạt động tạm gọi là tốt trên mọi phần
mềm, trong đó đặc biệt là có thể gõ đưọc tiếng Việt trên Tuy nhiên khi sử dụng trên terminal thì khá là lag, thời gian từ lúc gõ phím cho tới lúc hiện ra kí tự tiếng Việt rất chậm, không như ^B chính là phím backspace đó ( ̄▽ ̄) Và khi gõ trên 5. Kết luậnHy vọng bài viết này giúp các bạn có thêm cái nhìn sâu hơn về các loại bộ gõ tiếng Việt hiện có và những thử thách về mặt kĩ thuật mà chúng ta đang phải đối mặt để có thể phát triển đưọc một bộ gõ tiếng Việt hoàn chỉnh cho môi trưòng Linux. Bài viết chỉ dựa trên quan điểm chủ quan của tác giả khi tìm hiểu về các bộ gõ không dùng preedit, nên còn nhiều thiếu sót và có nhiều nội dung liên quan đến phưong pháp chuẩn (preedit) và các kĩ thuật khác như surrounding text,… đã bị bỏ qua. Hy vọng các bạn quan tâm có thể nhiệt tình góp ý, bổ sung và giúp mình hoàn thiện bài viết. Xin cảm ơn 😀 Bài viết gốc được đăng tải tại snacky.blog Có thể bạn quan tâm:
Xem thêm các việc làm lĩnh vực IT hấp dẫn trên TopDev |