Multiple languages, regional options and keyboard layouts with Citrix and AppSense » Michel Stevelmans

Lately I’ve been implementing a new Citrix XenApp 6.5 environment for a large international customer.
Because the environment will be used by people from all over the world, the customer requested to have multiple language packs installed and all users should get their correct language settings, regional options and keyboards at logon according to their active directory security group memberships.
I remember from back in the days on windows 2003 this could be a nightmare, but on windows 2008 R2 with a few registry keys in AppSense and some GPO’s it’s quite easy to get this right.

First install all your required language packs on your XenApp or RDS server or if you’re using Citrix Provisioning, install them in your vDisk.

1 . Security groups

Create a separate active directory security group for each language. I’m going to use these groups as conditions in AppSense environment manager and for security filtering on the active directory GPO’s.
So for example create a security group called “Japanese language” and add all Japanese users to this group.

2. Ignore remote keyboard

When a RDP client connects to a remote desktop server, the client’s input language and keyboard settings are detected, which will obviously cause trouble if you want to push language and keyboard settings for your users.
To disable this feature on your remote desktop or Citrix XenApp server, add a DWORD value called IgnoreRemoteKeyboardLayout with a value of 1 under HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlKeyboard Layout.

3. Regional options

Create a separate GPO for all your languages, remove the “Authenticated Users” from the security filtering and add your corresponding active directory security group to each GPO.
Edit each GPO with the regional options you require and make sure to hit F5 on all tabs so that the dotted red line turns into a green line (only settings which have a green line underneath are applied).

4. Display language

Create a node in your AppSense environment manager policy configuration and add the active directory security groups as a user group conditions.
The registry settings for the display language are located under HKEY_CURRENT_USERControl PanelDesktop.
Change the language to your required language an export these two values to a reg file: PreferredUILanguages and PreferredUILanguagesPending.
So if you created an AppSense environment manager user group condition for the Japanese active directory security group, import the Japanese reg file underneath that condition.

5. Keyboard layout

The preferred keyboard layout registry key is located under HKEY_CURRENT_USERKeyboard LayoutPreload.
The string value named 1 is the one you need. The value will be the keyboard code for your country.
So for a Japanese keyboard we need a string valued named 1 with a value of 00000411
For a complete list of keyboard codes, refer to http://support.microsoft.com/kb/262283

6. Geographical location

The geographical location registry key is located under HKEY_CURRENT_USERControl PanelInternationalGeo.
The value of the string value called Nation determines the user’s geographical location.
For a complete list of geographical location values, refer to http://msdn.microsoft.com/en-us/library/ms912039.aspx
Import this registry key in your AppSense environment manager policy configuration.

7. Hide the language bar

If you are going to push all these language en regional settings to your users, you might as well hide the language bar.
To do this, create a DWORD value named ShowStatus with a value of 3 under
HKEY_CURRENT_USERSoftwareMicrosoftCTFLangBar in your AppSense environment manager policy configuration.

8. AppSense personalization desktop settings

Now that we have all settings in place, we have to tweak AppSense personalization.
When you would remove a user from the Japanese security group and add him to another language security group after he has already logged in at least once, you will see some unexpected behavior.
The desktop settings from AppSense personalization will persist some of his old Japanese settings and the user will now have a mixture of language settings.
Connect to your AppSense personalization server, go to desktop settings and uncheck the following: Keyboard, language and locale.

Everything is now configured properly and ready to go!

 

 

Source: Multiple languages, regional options and keyboard layouts with Citrix and AppSense » Michel Stevelmans

0 thoughts on “Multiple languages, regional options and keyboard layouts with Citrix and AppSense » Michel Stevelmans

    1. Michel Stevelmans,

      Thanks for checking with me. I did include link to your page at the end with label named “Source:” please refer to the end of this article. This is my usual practice to include the source page whenever I really make a copy & paste of a valuable article.

      BTW, that was a nice article from you. Feel free to let me know if you would still like to have this page/reference removed from my blog about your article.

Leave a Reply

Your email address will not be published. Required fields are marked *