using System; using System.Globalization; public class MakeCultures { static void Main() { CreateCopyCulture("en-029", "en-CB"); CreateCopyCulture("az-Latn-AZ", "az-AZ-Latn"); CreateCopyCulture("uz-Latn-UZ", "uz-UZ-Latn"); CreateCopyCulture("sr-Latn-CS", "sr-SP-Latn"); CreateCopyCulture("az-Cyrl-AZ", "az-AZ-Cyrl"); CreateCopyCulture("uz-Cyrl-UZ", "uz-UZ-Cyrl"); CreateCopyCulture("sr-Cyrl-CS", "sr-SP-Cyrl"); CreateCopyCulture("bs-Cyrl-BA", "bs-BA-Cyrl"); CreateCopyCulture("sr-Latn-BA", "sr-BA-Latn"); CreateCopyCulture("sr-Cyrl-BA", "sr-BA-Cyrl"); CreateCopyCulture("bs-Latn-BA", "bs-BA-Latn"); CreateCopyCulture("iu-Latn-CA", "iu-CA-Latn"); CreateCopyCulture("dv-MV", "div-MV"); // zh-Hant & zh-Hans are already aliased. } static void CreateCopyCulture(string strRealName, string strAliasName) { try { // Create a new culture based on the old name CultureAndRegionInfoBuilder carib = new CultureAndRegionInfoBuilder( strAliasName, CultureAndRegionModifiers.None); carib.LoadDataFromCultureInfo(new CultureInfo(strRealName)); carib.LoadDataFromRegionInfo(new RegionInfo(strRealName)); carib.Register(); // Change the existing culture's parent to the old culture carib = new CultureAndRegionInfoBuilder(strRealName, CultureAndRegionModifiers.Replacement); carib.Parent = new CultureInfo(strAliasName); carib.Register(); // Verify they're registered... CultureInfo ci = new CultureInfo(strAliasName); Console.WriteLine("Aliased culture {0} has parent of {1}.", ci, ci.Parent); ci = new CultureInfo(strRealName); Console.WriteLine("\"Real\" culture {0} has parent of {1}.", ci, ci.Parent); } catch (Exception e) { Console.WriteLine("Unable to create custom culture " + strAliasName); Console.WriteLine(e); } } }