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.


Comments (19)
  1. I can work on something tam, what kind of information are you looking for?

  2. Single instancing leads to more problems than it solves IMHO.

  3. Unfortunately, no.  You can try using lpksetup inside of WinRE to roll them out but its my experience that they dont come out cleanly because of the offline state of the store.

  4. LOL, that too.  But to be fair, I did just write the post the other day.

  5. Excellent question Tomas, yes there is a recommendation.  We recommend that you have no more than 3-5 language packs installed on an installation at one time unless you really need them to be there.  I'll update the overall blog with that information.

  6. @Ark;

    I agree with your sentiment here.  However, it wouldnt be prudent of us to control what you can and cant install, so hiding them from users (while it might be my personal preference at times) , isnt really an "open" solution.

    I like the idea of select all, that would be easier.  I'll speak to some folks about that.


  7. Sure thing, glad to help.

  8. The language packs are still listed as optional updates, the problem is that people are opting in for all of them 🙂

  9. anony.muos says:

    I think what's a design flaw should be changed because the servicing store is going to grow out of proportion as future Windows size keeps increasing. Microsoft should use some delta differencing shadow copy technology and single instance storage for ALL files to keep multiple backups in WinSxS.

  10. A. Hindistan says:

    I don't think it is the case anymore but could it be that Microsoft Update site mislead some people? I recall that It used to offer all language packs as optional installs.

    Wonder if OEMs play any role in this? They might be installing them all if they are servicing globally…

  11. A. Hindistan says:

    Could be b/c they are not reading your blog :p

  12. Tomas says:

    Is there a recomendation/limit on how many language packs you could have installed..

  13. Tomas (tomassod) says:

    Thanks a lot for that answer Joseph..

  14. harlandejohnson says:

    OK, I didn't pay attention and installed SP1 probably with all of the language packs (I don't remember) — any way to safely remove the ones I don't need?  Win 7 Pro SP1

  15. Ark-kun says:

    Lots of of language packs are optional updates. Do you think that "You have 37 optional updates" message is of any use to the user?

    I don't like that as I install all optional updates.

    To hide the language packs I need to click each one and hide them.

    It's much easier for the end user to tick "Select All" and install all the packs to stop the nagging numbers.

    You need to create a separate user interface feature for the language pack installation.

    P.S. You would also have to integrate the Visual Studio Extension Manager with the Windows Update at some point in future.

  16. tam says:

    Installing all the language packs is a common practice in a public lab.  I wish the Cryptography Service didn't verify the catroot on every boot, or use a lower priority i/o.

  17. tam says:

    You can uninstall the language packs with lpksetup, but then you have to wait for trustedinstaller to wake up and do its scavenging, which could take several hours.  Trustedinstaller would make a nice subject for a post.

  18. tam says:

    What the heck it is, and if we should ever wait for it to finish.  It's not even in the windows internals book.

  19. vivek says:

    thank you

Comments are closed.

Skip to main content