MUI in a Terminal Services World
What is MUI?
Multilingual User Interface is a set of language specific resource files that you can add to Terminal Servers running Windows Server in English. This technology was initially released with Windows 2000 and is now available for all corporate OSs from Microsoft (like Windows XP Professional, Windows 2000 Server, Windows 2003 Server, etc).
Ok, what does all that mean? Simply, it allows you to provide your users with terminal server sessions in pretty much any language, all coming from the same terminal server.
Why is this important?
Well in some countries with more than one official language (Canada is a good example) administrators are required to provide access to all computer systems/software on all official languages. The same applies for medium/large corporations with offices in many different countries.
In the past, administrators had to setup separate servers or even server farms for every single language to be supported. This would create many management challenges like:
- Updates to English OSs are usually available much faster than for other languages which makes it impossible to keep all servers at the same revision/patches level.
- Some applications do not allow you to use the same licensing server for English and other languages. Citrix MetaFrame XP was a very good example. You had to have a French Farm and an English Farm as the English one would not accept French licensing numbers!
What are the benefits?
The benefits of using MUI are clear: administrators can deploy one single farm, all in English and add the MUI packs for the languages needed (example, French, Japanese, Spanish, etc). This will give you a set of English servers that can be updated with regular hotfixes/service packs and not language specific ones! This makes the whole farm a lot easier to manage and update.
How to do it
Houston, we do not have a problem. Seriously, the initial setup is no rocket science. All you need to do is load the MUI Pack CD for the OS you are using (Windows 2000 Server for example) and select the languages you want support for.
Figure 1: Language selection for Windows 2000 MUI
After installing the MUI pack you can control the language users will use by using Group Policies. I usually create one policy for each language group and enforce that particular language to the group. This way if a user wants to start using a new language, all you need to do is move them to the new group and you are all set!
The step by step instructions, after you installed the MUI pack on the server, are:
- I assume your server is part of a domain of some sort. Assuming you also have terminal server specific policies, logon to a domain controller and launch ‘Active Directory Users and Computers’.
Figure 2: Active Directory Users and Computers
- Right click the Terminal Servers OU (if you do not have this OU already, consider creating it and moving all your terminal servers there. It is not the scope of this article to explain why this is a best practice. If you want to know the reason, why not submit this as a question to us?) and select ‘Properties’. As you can see in my example I have one policy for each type of user (from a language perspective). You should do the same.
Figure 3: Terminal Servers OU Properties
- If you do not have a policy created simply click ‘New’ and type an easy to understand name for it (like TSUsersFrench). Select the policy and click ‘Edit’. Under User Configuration | Administrative Templates | Control Panel | Regional and Language Options you will see ‘Restrict selection of Windows menus and dialogs language’.
Figure 4: Policy setting for language options
Double click it and you will see all the options. It will show all the possible languages you can have as MUI packs. Of course to get it working you must install that language pack on your server. Click on ‘Enabled’ and choose the language you will be using for these users (French in our example).
Figure 5: Setting the language for your users
- Press OK all the way back to the first screen and you are all set. We assume here that your existing policy works and all the required settings for terminal services environments are also in place (for example, using the Loopback Processing Mode).
The next time your French users logon they will be surprised with a nice and French desktop! Even Internet Explorer will be shown in French. Merveilleux!
Please note this does NOT mean all your applications will work on the new language you just added and set. The MUI pack installed for the operating system will give you the desktop on the new language and Internet Explorer. All the other applications must provide their own way to support additional languages.
Some applications like Microsoft Office have their own MUI pack that must be installed after the core MUI pack for the OS has been loaded. These application MUI packs can be controlled by using Group Policies as well. All you need to do is to get the ADM templates from the Office Resource Kit and load them on your Group Policy. After that you will be able to set the Office language pretty much the same way we did with the OS.
If you do not know exactly what I mean feel free to send me an email.
Well as anything else, there are some drawbacks when using MUI. Depending how picky your users are, they may not like MUI as much as a real, localized version of the OS. This means MUI is an excellent alternative and it is probably 98% as close to the real localized version of the OS (on Windows 2003; 90% for Windows 2000). But as I said, not everyone may be happy with 98%...
One good example is the logon screen. As the policy we created will get applied AFTER the user logged in, the system has no way to know that particular person connecting is a French user. So the logon screen will be in English (although you can change it to French but then the English users will see it in French. Very hard to keep everyone happy! Welcome to the real world). I have seen some really picky users out there and they complained about that. No kidding, this is true.
The other issue is how to handle some file type associations for applications that do not have MUI packs available. For example, if you install Adobe Acrobat Reader in English and French (yes, this works as long as you install them on different directories), the last one installed gets associated to the .PDF file extension. This means English users using Outlook will see a French PDF reader when they open a PDF attachment!
The easiest way to fix this is to change file associations on the fly during the logon process. You can do this on the logon script or on the USRLOGON.CMD file that is on the terminal server itself. A simple script will do it and associate the PDF file extension with the English version of the reader installed on the TS for English users.
In this article I tried to show why MUI is a simple and elegant way to handle multiple language requirements in a terminal services world and why I think it is a must in corporate environments. It not only reduces administration headaches but provides a better, richer environment for your users.
For more details about MUI please check the following link (excellent resource for anyone willing to understand more about this great technology!):
And as always, if you have any comments and/or questions feel free to contact me at anytime.