When a Custom Culture is created in .Net it is used by Vista as well as a Custom Locale. There are some disparities between the data available to the Framework and the Windows OS, causing a few edge cases. Additionally some information is available in a shipped locale that the .Net Framework cannot currently modify. There are 3 groups of unusual data items: Those that are not available in the CultureAndRegionInfoBuilder but are exposed in the LDML and those that cannot be changed or created in a custom culture. amd those that behave slightly differently than normal locales.
Fields that cannot be created in a Custom Locale:
Fields with behavior that differs from a built in locale
Fields that can only be changed in the LDML, but do not have properties in the CultureAndRegionInfoBuilder:
Try dumping an LDML file for an existing culture by doing something like this:
CultureAndRegionInfoBuilder carib = new CultureAndRegionInfoBuilder("en-US", CultureAndRegionModifiers.Replacement); carib.Save("en-US.ldml");
Examining the resulting LDML can help understand how the values are represented. The Unicode LDML information is also helpful, but won't help for the msLocale tags. I'll blog some more when there's more information about the LDML file output by the CARIB.