Ibus-bogo

Tình hình các bộ gõ tiếng Việt
Tính đến thời điểm tháng 03 năm 2012, Việt Nam có 04 bộ gõ tiếng Việt trên GNU/Linux được biết đến và sử dụng phổ biến nhất:
 * x-unikey của tác giả Phạm Kim Long, lần phát hành cuối cùng là vào năm 2006, giấy phép GPL v2.
 * xvnkb của tác giả Dao Hai Lam , lần phát hành cuối cùng vào năm 2004, giấy phép GPL v2.
 * scim-unikey và ibus-unikey là 2 input method (IM) dùng cho SCIM và IBus, phát triển bởi Lê Quốc Tuấn  và Lê Kiến Trúc , với engine Unikey trích xuất từ x-unikey, giấy phép GPL v2. ibus-unikey được sử dụng phổ biến nhất, có mặt mặc định trên hầu hết tất cả các bản phân phối GNU/Linux. scim-unikey phát hành lần cuối cùng vào tháng 08/2009. ibus-unikey phát hành bản 0.6 vào tháng 01/2012 và hiện nay vẫn đang tiếp tục được phát triển.

Vấn đề
Tất cả 4 bộ gõ nói trên đều còn nhiều hạn chế, gây khó khăn cho người sử dụng, đặc biệt với người sử dụng phổ thông. Cụ thể hơn: bộ gõ tiếng Việt trên GNU/Linux cần đảm bảo các yếu tố sau:

Không có một bộ gõ tiếng Việt nào trong số 4 bộ gõ nói trên đáp ứng được đầy đủ cả 9 yêu cầu này tính đến thời điểm tháng 03 năm 2012.
 * 1) Là Phần mềm Tự do Nguồn mở (FOSS )
 * 2) Sẵn có trên hầu hết các bản phân phối GNU/Linux, đặc biệt là các bản phân phối phổ biến: Ubuntu, Fedora, Debian, ...
 * 3) Có IM cho các IM platform/framework mặc định phổ biến nhất hiện nay: SCIM và IBus.
 * 4) Tài liệu cho người sử dụng và người phát triển rõ ràng, chăm sóc cẩn thận.
 * 5) Mã nguồn trong sáng, có convention, guideline.
 * 6) Chạy ổn định, dễ dùng.
 * 7) Hỗ trợ các bảng mã (UTF-8, UTF-16, TCVN 3, VNI, VIQR, ...) và cách gõ phổ biến nhât (Telex, Simple Telex, VNI).
 * 8) Hỗ trợ tính năng chuyển mã.
 * 9) Khả năng mở rộng, bảo trì, tái sử dụng cao.

Giải pháp
Nhằm đáp ứng 9 yêu cầu kể trên, tác giả Nguyễn Hà Dương đã cho ra đời engine xử lý nhập liệu tiếng BoGoEngine vào tháng 04 năm 2012. Tính đến đầu tháng 05 năm 2012, BoGoEngine đã hoàn thành tính năng cơ bản của một engine xử lý nhập liệu tiếng Việt nhưng vẫn chưa được tích hợp vào vào một IM platform nào. Bước tiếp theo của giải pháp là dự án ibus-bogo với mục đích:
 * Tích hợp BoGoEngine vào IBus Input Method framework, xây dựng giao diện người dùng.
 * Xây dựng công cụ chuyển đổi bảng mã tiếng Việt trên IBus, sử dụng BoGoEngine.

Mô tả chi tiết

 * Tích hợp BoGoEngine vào IBus.
 * Xây dựng giao diện đồ họa trực quan, giúp người dùng tùy biến được các tính năng:
 * Chế độ gõ tiếng Việt: Simple Telex, VNI, VIQR, ...
 * Bảng mã sử dụng: Unicode dựng săn, Unicode tổ hợp, VNI, TCVN 3, ...
 * Xây dựng chức năng chuyển đổi bảng mã cho văn bản thô, (có giao diện đồ họa trực quan) với các tính năng:
 * Chọn bảng mã nguồn và đích.
 * Chuyển mã trong clipboard.
 * Chuyển mã tệp văn bản thô (plain text).
 * Đóng góp ngược cho upstream là BoGoEngine.

Hướng sử dụng và phát triển

 * Đóng góp ibus-bogo cho các bản phân phối GNU/Linux, ưu tiên Debian, Fedora, và Ubuntu.
 * Thêm tính năng:
 * Macro/gõ tắt.
 * Kiểm tra chính tả.
 * Thêm/bỏ dấu thanh (accent).
 * Cải tiến tính năng:
 * Hỗ trợ chuyển mã cho cả văn bản đã được định dạng (formatted text).
 * Nghiên cứu phát triển tính năng gõ Hán - Nôm

Kỹ năng yêu cầu

 * Ngôn ngữ lập trình: C++, Markdown/Restructured Text (cho việc viết tài liệu).
 * Công nghệ: GTK+, IBus, Google Test, CMake, function programming style, test-driven development.
 * Mức độ: Khó.

Người hướng dẫn

 * Mentor: Nguyễn Hà Dương

Tham khảo

 * Dự án BoGoEngine trên Github.
 * Tài liệu liên quan đến BoGoEngine trên Wiki Github.
 * Mail group phát triển BoGoEngine.