So, for whatever reason, you want to know what the LDML that the CultureAndRegionInfoBuilder needs is for all the locales for the box. It's pretty trivial, but:
using System;
using System.Globalization;
class DumpAllLocales
{
static void Main()
{
foreach (CultureInfo culture in CultureInfo.GetCultures(CultureTypes.AllCultures))
{
try
{
// Skip invariant
if (String.IsNullOrEmpty(culture.ToString())) continue;
// Get the CARIB, watching out for neutrals & customs, and call save
CultureAndRegionModifiers flags = culture.IsNeutralCulture ? CultureAndRegionModifiers.Neutral : CultureAndRegionModifiers.None;
if ((culture.CultureTypes & CultureTypes.UserCustomCulture) != CultureTypes.UserCustomCulture)
flags |= CultureAndRegionModifiers.Replacement;
CultureAndRegionInfoBuilder carib = new CultureAndRegionInfoBuilder(culture.ToString(), flags );
// This will blow up if the file exists already
carib.Save(culture.ToString() + ".ldml");
}
catch (Exception e)
{
Console.WriteLine("Error for culture " + culture.ToString());
Console.WriteLine(e.Message);
}
}
}
}
put this in a .cs file, add .Net to your path, compile and run:
%windir%\Microsoft.NET\Framework\v4.0.30319 /r:sysglobl.dll dumpAllCultures.cs
dumpAllCultures.exe
-Shawn