Do you really need all of those language packs?

I’ve noticed a fairly common them with some of the Service Pack 1 failures recently and that is customers who have installed most, if not all, of the language packs available for their OS.  The question I always ask myself is why? If you really do need all of them, then by all means please feel free to install of them and have a ball.  The fact is, many of us might need a few of them but hardly anyone needs all of them.  So, why is this such a big deal?

Let’s look at it purely from a servicing perspective.  When you install Windows, depending on your locale, you naturally have a language pack applied to the image.  For me, its en-us (or US English).  Anytime I run an update installation, service pack install or hotfix, I need to have the binaries updated for not just the system binary but the localized payload as well.  You can see this easily by looking over your manifests in C:\Windows\servicing\manifests.  Below is an example.


Here you can see that I have the Server-Help-Package for client installed on my machine.  If you look closely, you’ll see that the packages involved for installing this feature have had two things happen to them.  First, they have been updated.  We can tell this by package build number.  In this case, .165385 is RTM code and .17514 is SP1 code.  This also tells me that I haven't marked the service pack permanent with DISM, because if I had, this would have been a package that most likely was removed as its payload has been superseded.

Also, aside from the core binaries, you can see that I have those same binaries in a localized fashion for en-us.  These are the binaries for the US English language pack that I have installed on my system and its normal.  If I added another language pack to my system, then I would have a .mum and .cat for this particular feature manifest that is localized to that language as well.  If you were to take this out into the realm of a service pack, then I would need to ship you a feature manifest and security catalog for EVERY file on the system that is part of any language packs that you have installed on the system.  This generates a ton of servicing operations for the system and could lead to resource depletion or decrease in overall system performance while these transactions are being processed.  You should keep this in mind when installing updates or Service Packs with many language packs installed on the system.

So, my request is this, if you don’t need the language packs on your machine, do yourself a favor and remove them.  Especially if this is something you know you have on your systems and you haven't installed Service Pack 1 yet.   It will save you disk space and headaches in the long run because you wont end up needing to service all of those files multiple times.  If you are curious about the language packs and how they work, I suggest using a virtual machine to test them with.  Windows Virtual PC is a free download and works on several Windows 7 client installations.

More information on language packs and how they work is located here:

NOTE: We recommend that you have no more than 3-5 language packs installed on any one Windows installation unless you have to have them installed.