Giải pháp cho yêu cầu của bạn là Phương thức nhập liệu.
Những gì bạn đã mô tả là một cái gì đó quen thuộc với hầu hết người dùng ngôn ngữ CJK. Hãy xem lại cách thức hoạt động của phương thức nhập trong các hệ thống Linux hiện tại.
Hệ thống Phương thức nhập liệu
Đây là một kiến trúc đơn giản cho một hệ thống phương thức nhập liệu phổ biến:
Chú ý: Tôi ảnh chụp hình ảnh này từ The X Input Method Nghị định thư . Một số mũi tên không liên quan để thảo luận sau.
Trong lịch sử, XIM (giao thức Phương thức nhập liệu X) là giao thức duy nhất. Nó quá phức tạp và thiếu một số tính năng mong muốn. Vì vậy, nó hầu như bị bỏ rơi, mặc dù khả năng tương thích vẫn được cung cấp bởi các bộ công cụ phổ biến như GTK, Qt.
Một hệ thống phương thức nhập liệu hiện đại chứa một số phần:
Hỗ trợ thư viện phía khách hàng
- thường được triển khai dưới dạng một mô-đun được tải bởi bộ công cụ (ví dụ: đối với GTK, xem
/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/
)
- Máy chủ phương thức nhập
- Máy chủ X
Làm thế nào để những phần này phù hợp với nhau?
Một người dùng gõ một khóa. Máy chủ X nhận sự kiện phần cứng từ giao diện evdev, soạn một XEvent và gửi đến ứng dụng dưới tiêu điểm bàn phím. Mô đun phương thức nhập của bộ công cụ ứng dụng (GTK, Qt) chặn sự kiện và chuyển thông tin đến máy chủ phương thức nhập. Máy chủ phương thức nhập số liệu người dùng có thể muốn gì và chuyển một số văn bản trở lại mô-đun IM.
Bây giờ, hãy nói về kiến trúc của máy chủ IM.
Một máy chủ IM thường bao gồm hai phần:
- Một khung IM xử lý các phức tạp cụ thể của nền tảng và cung cấp một giao diện đẹp cho các mô đun IM của bộ công cụ và bộ công cụ IM. Nó cung cấp các cơ chế IPC được sử dụng bởi mô-đun IM, máy chủ và động cơ.
- Các công cụ IM khác nhau thực hiện công việc thực tế là chuyển đổi các phím được nhập bởi người dùng thành văn bản mong muốn. Các công cụ IM có thể được chia sẻ các thư viện được tải bởi máy chủ IM hoặc các quy trình độc lập giao tiếp với máy chủ IM.
- Các chương trình cấu hình phương thức nhập liệu phụ trợ cung cấp giao diện người dùng thân thiện để tùy chỉnh máy chủ IM và các hành vi của động cơ.
Nói chung, những gì IM làm là biến đổi những gì bạn nhập thành thứ gì đó khác biệt và tùy ý cung cấp dự đoán.
Một ví dụ
Chúng tôi sử dụng ibus-pinyin
ở đây để gõ một số ký tự Trung Quốc.
Chữ viết hoa của là han yu pin yin
. Đầu tiên, bạn cần nhập tất cả các chữ cái này để có được bốn ký tự tiếng Trung. Nhưng sau một vài lần, bạn chỉ cần gõ bốn ký tự ban đầu h y p y
để có được ký tự Trung Quốc.
Trong ibus-pinyin
trường hợp, han yu pin yin
được rút ngắn thành h y p y
.
Các công cụ IM tiên tiến hơn sử dụng các kỹ thuật học thống kê để đưa ra dự đoán tốt hơn. Không có gì có thể ngăn bạn viết một công cụ phương thức nhập liệu tiếng Anh để cung cấp một sự gia tăng gõ.
Như một phần thưởng, tất cả các bộ công cụ đều có hỗ trợ phương thức nhập ngoại trừ một số chương trình X cũ đơn giản. Vì vậy, đây là một giải pháp khá phổ quát.
Cảm ơn Anders FU Kiær. Tính năng / Gõ-Booster | Fedora Project Wiki sẽ là câu trả lời