La soluzione alla tua richiesta è Metodo di input.
Quello che hai descritto è qualcosa di familiare alla maggior parte degli utenti del linguaggio CJK. Rivediamo come funziona il metodo di input negli attuali sistemi Linux.
Il sistema del metodo di input
Ecco una semplice architettura per un sistema comune di metodi di input:
NOTA: ho acquisito questa immagine da X Input Method Protocol . Alcune delle frecce sono irrilevanti per la discussione successiva.
Storicamente, XIM (il protocollo del metodo di input X) era l'unico protocollo. È eccessivamente complesso e manca di alcune funzionalità desiderate. Quindi è per lo più abbandonato, anche se la compatibilità è ancora fornita da toolkit popolari come GTK, Qt.
Un moderno sistema di metodi di input contiene diverse parti:
Supporto libreria lato client
- tipicamente implementato come modulo caricato da toolkit (ad es. per GTK, vedi
/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/
)
- Server del metodo di input
- Server X.
Come si adattano queste parti?
Un utente digita una chiave. Il server X riceve l'evento hardware dall'interfaccia di evdev, compone un XEvent e lo invia all'applicazione con il focus della tastiera. Il modulo del metodo di input del toolkit dell'applicazione (GTK, Qt) intercetta l'evento e ha passato le informazioni al server del metodo di input. Il server del metodo di input calcola ciò che l'utente può desiderare e restituisce del testo al modulo IM.
Ora parliamo dell'architettura del server di messaggistica istantanea.
Un server di messaggistica istantanea in genere è costituito da due parti:
- Un framework di messaggistica istantanea che gestisce complessità specifiche della piattaforma e fornisce una bella interfaccia per i moduli IM del motore IM e del toolkit. Fornisce i meccanismi IPC utilizzati dal modulo IM, dal server e dal motore.
- Vari motori di messaggistica istantanea svolgono il vero lavoro di trasformazione delle chiavi digitate dall'utente nel testo desiderato. I motori di messaggistica istantanea possono essere librerie condivise caricate dal server di messaggistica istantanea o processi indipendenti che comunicano con il server di messaggistica istantanea.
- I programmi di configurazione del metodo di input ausiliario forniscono un'interfaccia utente intuitiva per la personalizzazione del comportamento del server IM e del motore.
Tutto sommato, ciò che fa un messaggio istantaneo è trasformare ciò che si digita in qualcosa di diverso e facoltativamente fornire previsioni.
Un esempio
Usiamo ibus-pinyin
qui per digitare alcuni caratteri cinesi.
La romanizzazione di 汉语拼音 è han yu pin yin
. Per prima cosa devi digitare tutte queste lettere per ottenere i quattro caratteri cinesi. Ma dopo alcune volte, devi solo digitare i quattro caratteri iniziali h y p y
per ottenere il carattere cinese.
Nel ibus-pinyin
caso, han yu pin yin
è abbreviato in h y p y
.
I motori di messaggistica istantanea più avanzati utilizzano tecniche di apprendimento statistico per fornire una migliore previsione. Nulla può impedirti di scrivere un motore per il metodo di input in inglese per fornire una spinta alla digitazione.
Come bonus, tutti i toolkit hanno il supporto del metodo di input tranne alcuni semplici vecchi programmi X. Quindi questa è una soluzione abbastanza universale.
Grazie ad Anders FU Kiær. Funzioni / Digitazione-Booster | Fedora Project Wiki dovrebbe essere la risposta