Windows mantiene un linguaggio di input diverso per ogni thread. Quando si passa alla finestra di un altro thread, il linguaggio di input può cambiare. Poiché i thread non sono visibili all'utente, può sembrare casuale, e sono d'accordo che questo è fastidioso come l'inferno.
Non c'è un'opzione integrata per evitarlo in Windows, si può usare un software di terze parti o qualcosa di ancora meglio.
Il “qualcosa di ancora meglio” è usare Microsoft Keyboard Layout Creator per creare un layout personalizzato che usi il CapsLock come cambio di lingua, quindi cancellare tutti gli altri layout (incluso quello predefinito inglese). Ho fatto questo con inglese+russo e non posso esprimere quanto la mia vita sia migliorata da allora. Controlla i pro:
- La lingua di input diventa globale al sistema e non cambia mai da sola.
- Si può sempre vedere quale lingua è corrente guardando il LED sulla tastiera, anche in un'applicazione a schermo intero quando l'indicatore della lingua non è visibile.
- CapsLock è molto più facile da premere di Alt+Shift, Ctrl+Shift, Cmd+Space o qualsiasi altra cosa, il tuo mignolo è sempre vicino.
- È più difficile premere accidentalmente CapsLock che Alt+Shift o Ctrl+Shift.
- Puoi aggiungere ulteriori caratteri al tuo layout che ti sono utili, che possono essere inseriti con AltGr+??, per esempio: trattino lungo -, virgolette inglesi “” “, virgolette russe ”“, frecce ← → ↑↓ , simboli matematici ≠ ± ≈ (ho inserito tutti questi con RightAlt+Key e nessun software aggiuntivo e nessun codice carattere)
- Non ci sono applicazioni di terze parti in esecuzione, il che significa nessun bug, nessuna icona nella tray, nessun popup, nessuna pubblicità, nessun uso aggiuntivo di memoria.
- Puoi avere lo stesso metodo di commutazione della lingua in tutti i sistemi operativi che usi (ad esempio in Mac OS X c'è Ukulele keyboard layout creator), invece di usare scorciatoie specifiche del sistema operativo in ognuno.
I contro sono:
- Non funziona con tre o più lingue.
- Microsoft Word e probabilmente alcuni altri programmi non riusciranno a rilevare in quale lingua stai scrivendo, e il controllo ortografico potrebbe non funzionare correttamente. Per il russo, si risolve attivando il rilevamento automatico della lingua, ma potrebbe non funzionare altrettanto bene per le coppie di lingue basate sul latino (ad esempio inglese+italiano).
Prima di trovare questa soluzione, ho usato il programma SwitchIt! per rendere globale l'impostazione della lingua di input. Non è più sviluppato quindi non so se funziona ancora in XP/Vista/Win7.