I work on an English version of Windows XP Pro, but my working language is Spanish. My default input language is set to Spanish, but sometimes Windows changes this setting automatically when you switch applications (and thus you get a different keyboard layout).

Why is that?

(I've become a huge fan of ALT + LEFT SHIFT, which lets you cycle through the available languages.)

  • retag as "windows", this is happening on vista too – Andrija Cacanovic Jul 15 '09 at 8:59
  • It also happens on 7. – Cristián Romo Jul 15 '09 at 9:04
up vote 20 down vote accepted

The input language settings are per-application. An application which calls a Windows API in order to change the input locale, can set a different keyboard layout, if it is enabled for the user.

Sometimes it also happens, if you accidentally hit the ALT and LEFT-SHIFT keys together. If you don't want to have this behavior, you could "uninstall" all input languages/cultures you don't need in the Control Panel:

Regional and Language Options > Text Services and Input Languages

EDIT: or just check "Turn off advanced text services".

  • 3
    Removing every other language seems too drastic. I've tried ticking "Turn off advanced text services" in the Advanced tab there. – guillermooo Jul 15 '09 at 9:18
  • where is "Turn off advanced text services" on Vista? – Andrija Cacanovic Jul 15 '09 at 19:20
  • 1
    blogs.msdn.com/michkap/archive/2006/12/23/1351269.aspx -> you can't – Ant Jul 16 '09 at 16:17
  • 1
    how this answer solves random changes of keyboard? i need to have alt+shift for changing layouts. the problem that language switches "by itself" sometimes. – Berry Tsakala Feb 25 '11 at 17:47

It most likely happens because you hit that Alt+Shift shortcut key by accident.

Personally I remove all other languages from the language bar AND disable the shortcut key. After I have done that, it has never happend again =)

How to (On Windows Vista, and probably Seven): Right-click the language bar and choose Settings... (or go to Control Panel, Regional and Language Options). Then go to Keyboards and Languages tab and click on Change keyboards..., select the keyboard(s) you don't have and click the Remove button. Go to Language Bar tab and choose Hidden in the Language Bar group box. Go to Advanced Key Settings tab, then in the Hot keys for input languages select Between input languages, click the Change Key Sequence... and choose Not Assigned in both group boxes. Finally hit OK, OK and OK.

  • I'm sure that would work, but it seems too brute-force for a shared workstation! ;-) – guillermooo Jul 15 '09 at 9:20
  • 4
    Having a single user account for everyone is so '95. ;) – macbirdie Jul 15 '09 at 9:58
  • Oh, yeah, right. Somehow I thought that it was a global setting for all users. ·blushes· – guillermooo Jul 15 '09 at 10:07
  • Also, how often does a computer have more than one keyboard? But I see your point... luckily @macbirdie had a good point as well, so I guess my point still stands :p – Svish Jul 15 '09 at 16:52
  • 2
    cant comment as no rep. (sorry) but @Svish - a LOT of people / computers e.g. My UK laptop died two days before trip to USA, I'm a web dev, so I needed a new one the day I landed. So I have USA laptop, but I'm using curly braces, angle brackets etc all the time and don't want to mess my touch typing with switching to USA layout. So when I dock in office I pop in a UK keyboard. But windows / windows apps just flip my choice of layout willy bloody nilly and it drives me up the wall. :( If I set it I want it set. Im the user not the computer I should be in charge of this one really :( – MemeDeveloper Dec 23 '11 at 15:53

I think the input language is maintained per-application. I'm not sure if there's a way to disable that behavior.

Yes jtbandes, the input language is maintained per application -- in fact per window, because multiple IE browser windows each have their own setting. Windows is known to be very very poor at handling multiple input languages, and can sometimes not even remember the language used inside a single application when switching a lot. I'm Danish, working with English content, on Austrian (German) Windows computers, and I've seen this too often to count.

The best solution I can offer is to choose just one input language and go with that one only.

For me, it means always using a Danish layout because then I can type the German special characters (the DK layout has an ¨ umlaut key) as well as the Danish special characters (which a German layout can't), plus all of the English of course.

The downside may be a suboptimal typing speed in other languages, but at least the keyboard matches Windows' input language all the time. It's very rare that the chosen language actually prevents you from typing what you need.

That happens to me sometimes too, but I think it's just because I've hit Alt+Shift by accident.

It would be good if there was a beep or something to tell you you've done it...

I think keyboard-settings are maintained per application, for example Word may be running with the Spanish language settings but Notepad is configured with the English language.

You might also want to check what language is configured to be the default.

I hate that, yes, some applications have a default

What I do is completely remove them from the Language Bar, and keep only one.

Another thing I hate is to have my keyboard switched from en-Spain/en-LatinAmerica... it breaks the layout!

So I remove them all and keep the one I use.

  • Yes, I removed the English input language too. – djeidot Jul 15 '09 at 9:18

I had the same thing a few months ago, it turns out I was accidently pressing a shortcut key for switching languages. I disabled all shortcuts and removed the language toolbar, so that you have to explicitly change language in the control panel. Since then I haven't had it happen.

Detect language automatically option, available in Word and Outlook, detects the language that you are typing and automatically enables the proofing tools for that language.

  1. Open a new document or email message.

  2. On the Review tab, in the Language group, click Language.

  3. Click Set Proofing Language.

  4. In the Language dialog box, select the Detect language automatically check box.

Applies To: Office 2013 Word 2016 Outlook 2016 Word 2013 Outlook 2013 Language Preferences 2013 Word 2010 Outlook 2010 Word 2007 Outlook 2007

Check Word settings for "automatic language detection"

  • Please quote the essential parts of the answer from the reference link(s), as the answer can become invalid if the linked page(s) change. – DavidPostill Mar 11 '17 at 23:03
  • @DavidPostill thanks for tip – AndriuZ Mar 16 '17 at 22:10
  • Another tip: please read How to reference material written by others. You should block quote text that has been written by some else. See Markdown help. I've fixed it for you this time, but please pay attention to this in future. – DavidPostill Mar 16 '17 at 22:14
  • @DavidPostill thanks again – AndriuZ Mar 16 '17 at 22:16

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.