I've discovered that you can't install the .Net Framework Language Packs on Vista. They all claim to have already been installed, yet the localized resources directories are not present.
Looks like the language pack checks if the key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727\LCID exists (where the LCID is that of the pack). If the key exists, the pack declares that it has already been installed (it hasn't) and thus all the localized resources are not installed.
I have found an ugly workaround (note the values, delete the appropriate key, install the language pack, restore any missing values, set any that are now wrong). Reported, validated and workaround entered on Microsoft's Connect site, feel free to vote here.
Also, the Arabic language pack is built wrong. The internal INI file doesn't even provide a LCID in the key-to-check so it balks outright. I fixed that by extracting the pack manually, fixing the INI and following the above workaround. This issue is reported on Connect here.
The language packs I'm talking about install the localized resources for the various provided languages for all the user-display strings in the .Net Framework. This includes localized versions of exception messages, the messages shown by validators, ASP.Net wizards, etc. You install these to support end-users running in thier own language, especially for ASP.Net applications.
Let the whining commence
Don't get me started about how stupid it is that:
- Picking what language pack you want to download changes the language of the page itself.
- The file you download is served up as langpack.exe (not named uniquely by the locale).
- The language of the installer for the language pack doesn't respect the current language of the person running the installer, so you better watch carefully to figure out where the buttons move to when doing a RTL language or what the error messages that display mean if you aren't a native speaker.
- There isn't a single file that you can use to install all the language packs.
Can you imagine being a vertical-market developer that needs to show his customers how do this hackery?