For a long time my keyboard input language sometimes changed for no apparent reason. I have two languages installed, and windows seemed to switch between them at will. It happened almost exclusively while using SQL Server Management Studio, and I wrote it off as an annoying bug in that product.
Then, last night, it happened during a presentation. While the consensus of the audience feedback seemed to be that this was a common occurence, one guy suggested it might be because of an unfortunate keyboard shortcut.
Of course! That had to be it.
So, for all of you multi-lingual windows users out there, here is the solution to this annoying “bug”.
It turns out that from Windows XP all the way up to and including Windows 8, pressing the left Shift + Alt will change the keyboard language. Just try it right now.
This happens all the time in SQL Server Management Studio because a common operation is to select some lines of SQL (Shift + arrows) then execute it (Alt + x). Going a bit fast what happens is that the shift key is released milliseconds after pressing the alt key. Voilà: your input language just changed.
To get rid of this shortcut, go to Control Panel, Language and click advanced settings.
Then, click Change language bar hot keys.
From here you can manage the keyboard shortcuts. Just set them all to Not Assigned. You can still use the windows key + space, or just click in the language bar, when you want to switch.