[12 July 2007] Updated with culture names on list of effected cultures 

The .Net patch of July 10th, ms07-049 http://www.microsoft.com/technet/security/Bulletin/ms07-040.mspx, changes culture names to use the new names on Windows XP/2003/2000 as well as Vista.  changes culture names to conform to the standards. KB 939949, http://support.microsoft.com/kb/939949, deals with this issue and suggests the workaround posted here: http://blogs.msdn.com/shawnste/archive/2006/10/13/vista-changes-net-2-0-locale-names-sample-work-around-custom-cultures-locales.aspx .

This has been the Vista behavior since it shipped, and now the .Net 2.0 behavior for culture names is consistent between all versions of windows.  Unfortunately this change can break applications that expect the old names.  If that happens, the workaround of creating custom cultures might work for your application.

Old .Net Name

RFC 4646 Name,
as patched.
Culture Name
az-AZ-Latn -> az-Latn-AZ Azeri (Latin, Azerbaijan)
az-AZ-Cyrl -> az-Cyrl-AZ Azeri (Cyrillic, Azerbaijan)
bs-BA-Cyrl -> bs-Cyrl-BA Bosnian (Cyrillic) (Bosnia and Herzegovina)
bs-BA-Latn -> bs-Latn-BA Bosnian (Latin) (Bosnia and Herzegovina)
div-MV -> dv-MV Divehi (Maldives)
en-CB -> en-029 English (Caribbean)
iu-CA-Latn -> iu-Latn-CA Inuktitut (Latin) (Canada)
sr-BA-Cyrl -> sr-Cyrl-BA Serbian (Cyrillic) (Bosnia and Herzegovina)
sr-BA-Latn -> sr-Latn-BA Serbian (Latin) (Bosnia and Herzegovina)
sr-SP-Cyrl -> sr-Cyrl-CS Serbian (Cyrillic, Serbia)
sr-SP-Latn -> sr-Latn-CS Serbian (Latin, Serbia)
zh-CHT -> zh-Hant Chinese (Traditional) (Aliased, workarounds may not be necessary)
zh-CHS -> zh-Hans Chinese (Simplified) (Aliased, workarounds may not be necessary)
uz-UZ-Cyrl -> uz-Cyrl-UZ Uzbek (Cyrillic, Uzbekistan)
uz-UZ-Latn -> uz-Latn-UZ Uzbek (Latin, Uzbekistan)

Potential problems experienced by applications could be:

  • client/server communication because one used the old names and one used the new names.  A workaround is to create custom cultures with the old names and choose a parent fallback for them.
  • Visual Studio projects probably need migrated to use the new names for the resources, otherwise there could be confusion compiling and loading resources.
  • If this is your system locale there could be problems loading resources using the old name, depending on the behavior.  In this case creating custom cultures for the old names and replacements for the new names with the old names as the parent culture may solve the problem.

Also the name change isn't pleasant, it does resolve issues with client/server names having difficulty communicating because of non-standard name uses.  We continue to recommend names since LCIDs aren't available for all cultures/locales.

Hope this helps,

Shawn