Win XP - confused about languages

Our product is WinXP-based and displays in multiple languages by loading appropriate resource strings to display.  This is configured through a dialog raised by our product.  We're using an English (American) version of Windows.

Everything works fine, but now we'd like to support foreign-language keyboards.  Let's take German as an example.

I have a German overlay for my US-English keyboard.  Shift-3 on the English keyboard is #, on the German keyboard it should be a mark that looks like two intertwined S characters.  The Euro symbol is on the E key -- seems like Alt-E.  We'd like the user to be able to enter

I configured the system for German:
   Control Panel | Regional and Language Settings
   Regional options set to German (probably doesn't matter)
   Languages tab | Settings tab | default input language set to German
                                                   Installed Services shows both English and German, with German keyboard highlighted
                            | Advanced tab | checked "Extend support of advanced text..."

After reboot, everything is in English.  Entering Shift-3 into Notepad still gives # sign.

Looking at MUI might the the wrong tree to bark up, but C:\WINDOWS\mui\muisetup shows English as the only option.

I've taken this about as far as I can go without help.  I do *not* want to go the route of requiring a German version of WIndows...that would be another verification task and our road map for the year is already planned out.
LVL 13
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

are you looking to support xp work in different languages?if this is correct pls look at following links!

josgoodAuthor Commented:
Thank you for the links.  Here are my thoughts after reading them.

We can display in different languages.  The problem is that the keyboard is always in English.  Its the keyboard that I'd like to be able to vary, and it sounds as though the solution requires a different OS image.

It sounds as though we have two choices:
  - Create a different OS disk for each language.  That should fix the keyboard issue.
  - Create a multi-lingual OS disk containing the languages we want to support.

The way I read it, it can't be done with an English version of Windows.  You have to add language packs to get the keyboard to change.

Am I understanding this correctly?
mcsweenSr. Network AdministratorCommented:
I followed what you did but I had the language bar open while I was working.  I noticed when I launched a program the keyboard went back to my default (English) and I had to change it every time I launched a new app.

You will have to set German to the default if you want it to stick.  This is the dropdown on the "Settings" tab where you added the German keyboard.
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

mcsweenSr. Network AdministratorCommented:
BTW, once I changed it in the language bar or changed my default to German I always got the weird $ with Shft + 3
Davis McCarnOwnerCommented:
Here is Microsoft's step-by-step on setting up multiple languages and keyboards:
What happens when you follow those steps?
josgoodAuthor Commented:
Thank you for these suggestions!  I will look into them first thing in the morning.
bbaoIT ConsultantCommented:
agree with DavisMcCarn. it should be the right approach on XP.

my addition is that you may define hot keys to quickly switch languages. there is a Key Settings button (beside Language Bar button, at the Preferences section) in Text Services and Input Languages window.

hope it helps,
You have to enter M$ site in German to get German MUI
You need to set language as (login) system default and also as default for each user which has profile already.
josgoodAuthor Commented:
DavisMcCarn, I followed instructions on the link you provided and that worked fine, except that the language bar switches back to English when I click the start button.  Specifically, the language bar shows DE (German) and then switches back to EN (English).

mcsween mentioned this would happen unless I set the default language.  As mcsween mentioned, the keyboard seems to be German if I open Notepad, then select DE on the language bar, and then start typing in the Notepad window.

To set the default language, I am checking the "Default user account settings" on the Advanced tab of the "Regional and Language Options" dialog.

My problem is that if I reopen the Regional and Language Options, the checkbox is now unchecked.  

So I've made progress, but I'm not there.

Any idea why the checkbox is unchecking itself?
Davis McCarnOwnerCommented:
Are you using an Administrator account?
Here is a Technet article on using their intlcfg (international configuration utility) which will show you what is there and let you set the defaults:
josgoodAuthor Commented:
I am using an administrator account.

Can you confirm that intlcfg is appropriate for Win XP?  The references I'm finding online discuss Vista and Win7.
Davis McCarnOwnerCommented:
Did you also install the language pack?  It's lack may make it not accept a change in the default. language.
josgoodAuthor Commented:
I'll have to install a language pack on the real target machine -- we've stripped nonessentials out of the OS.

However, I tried this on a standard Win XP SP2 box and had the same results.  When I selected German, Windows raised a dialog saying the language files were installed and asking me whether I wanted to use the installed files or present an installation disk.  I told it to use the installed files.

That leads me to believe I don't need to add a language pack on the standard XP machine.  Am I wrong?
josgoodAuthor Commented:
I've shown that I don't need to install a language pack on the real target machine...many menu items and some Windows applications show German.  However, pressing shift-3 in Notepad displays # rather than the odd S-shaped character.  The same is true when pressing entering text in our program -- shift-3 displays as #.

We use SysPrep to prepare the disk image, and
says that, in that case, you can't change the default user language setting successfully until you delete
   HKEY_USERS\.DEFAULT\Control Panel\Desktop\MUILanguagePending
I deleted that key, which got me this far.  

It is strange that the checkbox
   "Extend support of advanced text services to all programs" on
   Advanced tab of Text Services and Input Languages if
   Regional and Language Settings
remains unchecked, even though I appear to have set the default language.

My remaining problem is that shift-3 displays as #.

Any ideas?
Davis McCarnOwnerCommented:
The DEFAULT user hive is used while creating any new user account.  Try deleting the same entry in HKEY_CURRENT_USER and/or create a new user account which should then not inherit the entry.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
josgoodAuthor Commented:
I searched the registry and deleted both keys I found
   HKEY_USERS\S-1-5-19\Control Panel\Desktop\MUILanguagePending
   HKEY_USERS\S-1-5-20\Control Panel\Desktop\MUILanguagePending
Now a search of the registry finds no instances of MUILanguagePending.

Notepad still showed shift-3 as #, even after rebooting the system.  I checked the registry again and
the MUILanguagePending keys are still deleted.

Then I realized what I was doing wrong...I'm using Synergy to connect to the target system.  I'm typing on my keyboard, which is an English Win7, and of course shift-3 is #.  The character typed on my keyboard goes across the LAN to the target system, which of course sees '#'.

Using the target system's keyboard to enter shift-3, I get the expected character.

Sheesh!  Sorry about that.

Thank you for your patient and excellent help.
josgoodAuthor Commented:
Thank you both.  DavisMcCarn gave the most help and mcsween gave a vital clue.  I feel pretty silly for not catching that I was using the wrong keyboard!
Davis McCarnOwnerCommented:
You are welcome.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Legacy OS

From novice to tech pro — start learning today.