コード例 #1
0
        //- deletes custom culture for country identified by EIDSS country ID
        public static void UnRegister(string cultureCode, long countryID)
        {
            if (!CountryCodes.ContainsKey(countryID))
            {
                throw new Exception(string.Format("\'{0}\' - Unsupported country ID.", countryID));
            }
            if (!CultureExists(cultureCode, countryID))
            {
                throw new Exception(string.Format("Unsupported pair culture name - country ID."));
            }

            // unregister only earlier registered cultures
            string cultureName = FormCustomCultureName(cultureCode, countryID);

            try
            {
                if (IsCultureRegistered(cultureName))
                {
                    CultureAndRegionInfoBuilder.Unregister(cultureName);
                }
            }
            catch (Exception e)
            {
                Debug.WriteLine("can't unregister custom culture {0}", cultureName);
                Debug.WriteLine("error: {0}", e);
            }
        }
コード例 #2
0
    public static void Main()
    {
        CultureAndRegionInfoBuilder cib = null;

        try
        {
            // Create a CultureAndRegionInfoBuilder
            // object named "ro-MD".
            cib = new CultureAndRegionInfoBuilder(
                "ro-MD", CultureAndRegionModifiers.None);
            // Populate the new CultureAndRegionInfoBuilder
            // object with culture information.
            CultureInfo ci = new CultureInfo("ro-RO");
            cib.LoadDataFromCultureInfo(ci);
            // Populate the new CultureAndRegionInfoBuilder
            // object with region information.
            RegionInfo ri = new RegionInfo("RO");
            cib.LoadDataFromRegionInfo(ri);
            var filePath = "ro-MD.xml";
            if (File.Exists(filePath))
            {
                File.Delete(filePath);
            }
            // Save as XML
            cib.Save(filePath);
            // TODO: modify the XML
            var xDoc = XDocument.Load(filePath);
            var ns   =
                "http://schemas.microsoft.com/globalization/2004/08/carib/ldml";
            xDoc.Descendants(XName.Get("regionEnglishName", ns))
            .FirstOrDefault().Attribute("type").SetValue("Moldova");
            xDoc.Descendants(XName.Get("regionNativeName", ns))
            .FirstOrDefault().Attribute("type").SetValue("Moldova");
            // and so on
            xDoc.Save(filePath);
            var roMd = CultureAndRegionInfoBuilder
                       .CreateFromLdml(filePath);
            // this may throw an exception if the culture info exists
            try
            {
                CultureAndRegionInfoBuilder.Unregister("ro-MD");
            }
            catch (Exception)
            {
                //throw;
            }
            // Register the custom culture.
            roMd.Register();
            // Display some of the properties of the custom culture.
            var riMd = new RegionInfo("ro-MD");
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }
    }
コード例 #3
0
    //Register culture from XML file
    private void cmdCreateCultureFromXML()
    {
        if (cultureExist())
        {
            CultureAndRegionInfoBuilder.Unregister("ku-KU");
        }
        CultureAndRegionInfoBuilder cib = CultureAndRegionInfoBuilder.CreateFromLdml(@"C:\temp\kurdish.xml");

        cib.Register();
    }
コード例 #4
0
 public void TestCleanup()
 {
     foreach (CultureInfo customCulture in CultureInfo.GetCultures(CultureTypes.UserCustomCulture))
     {
         if (customCulture.Name == CustomCultureName)
         {
             CultureAndRegionInfoBuilder.Unregister(CustomCultureName);
         }
     }
 }
コード例 #5
0
        public static void DeleteMobileSystemLocales()
        {
            CultureInfo[] systemcultures = CultureInfo.GetCultures(CultureTypes.SpecificCultures);

            foreach (CultureInfo ci in systemcultures)
            {
                if (ci.IetfLanguageTag.EndsWith("-Mobile") || ci.IetfLanguageTag.EndsWith("-MOBI"))
                {
                    CultureAndRegionInfoBuilder.Unregister(ci.Name);
                }
            }
        }
コード例 #6
0
        public int Action()
        {
            var filePath = InputFile;

            if (File.Exists(filePath) == false)
            {
                filePath = Path.Combine(".", filePath);
                if (File.Exists(filePath) == false)
                {
                    Console.WriteLine($"File not found: '{InputFile}'.");
                    return(1);
                }
            }

            try
            {
                var match = _cultureRegex.Match(InputFile);
                if (match.Success)
                {
                    var cultureName = match.Groups[1].Value;

                    if (CultureInfo.GetCultures(CultureTypes.AllCultures).FirstOrDefault(x => x.Name.ToLowerInvariant() == cultureName.ToLowerInvariant()) != null)
                    {
                        Console.WriteLine($"Cannot import - culture '{cultureName}' already exists.");
                        return(1);
                    }

                    // Build and register a temporary culture with the name of what we want to import.
                    // CreateFromLdml method will fail when trying to load a culture from file if it doesn't already exist.
                    var tempCulture = new CultureAndRegionInfoBuilder(cultureName, CultureAndRegionModifiers.None);
                    tempCulture.LoadDataFromCultureInfo(CultureInfo.CurrentCulture);
                    tempCulture.LoadDataFromRegionInfo(RegionInfo.CurrentRegion);
                    tempCulture.Register();

                    // Now load up the culture we actually want to import
                    var culture = CultureAndRegionInfoBuilder.CreateFromLdml(filePath);

                    // Unregister the temporary culture
                    CultureAndRegionInfoBuilder.Unregister(cultureName);

                    // Register the real culture loaded from file
                    culture.Register();

                    Console.WriteLine($"Culture '{culture.CultureName}' has been installed.");
                }
            }
            catch (Exception e)
            {
                Console.Write(e.Message);
            }

            return(0);
        }
コード例 #7
0
        private void UnregisterCultures(string[] cultures)
        {
            var alreadyRegisteredCultures = CultureInfo.GetCultures(CultureTypes.UserCustomCulture).ToList();

            foreach (var culture in cultures)
            {
                if (alreadyRegisteredCultures.Exists(rc => rc.Name == culture.ToLower()))
                {
                    CultureAndRegionInfoBuilder.Unregister(culture.ToLower());
                }
            }
        }
コード例 #8
0
 /// <summary>
 /// This method is responsible for unregister a specific custom culture based on its name.
 /// </summary>
 /// <param name="customCultureName"></param>
 private static void UnregisterCustomRegion(string customCultureName)
 {
     try
     {
         CultureAndRegionInfoBuilder.Unregister(customCultureName);
         _log.Debug(string.Format("Custom Culture [{0}] Unregistered Successfully", customCultureName));
     }
     catch (Exception e)
     {
         _log.Debug(string.Format("Error when Unegistering [{0}] Custom Culture: {1}", customCultureName, e));
     }
 }
コード例 #9
0
 private void BtnUnregisterClick(object sender, EventArgs e)
 {
     try
     {
         var cultureInfo = cboCultures.SelectedItem as CultureInfo;
         if (cultureInfo != null)
         {
             CultureAndRegionInfoBuilder.Unregister(cultureInfo.Name);
             MessageBox.Show(Resources.FormMain_BtnUnregisterClick_Symbols_unregistered, Resources.FormMain_BtnRegisterClick_Info, MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(Resources.FormMain_BtnRegisterClick_Error__ + ex.Message);
     }
 }
コード例 #10
0
 public static void Main()
 {
     try
     {
         Console.Clear();
         Console.WriteLine("Unregister the \"x-en-US-sample\" " +
                           "custom culture if it already exists...");
         CultureAndRegionInfoBuilder.Unregister("x-en-US-sample");
         Console.WriteLine("The custom culture was unregistered successfully.");
     }
     catch (Exception e)
     {
         Console.WriteLine("Error while unregistering...");
         Console.WriteLine(e);
     }
 }
コード例 #11
0
 public void RemoveCustomCultures()
 {
     if (huRunic == null)
     {
         return;
     }
     try
     {
         CultureAndRegionInfoBuilder.Unregister(huRunicHULowland.Name);
         CultureAndRegionInfoBuilder.Unregister(huRunicHU.Name);
         CultureAndRegionInfoBuilder.Unregister(huRunic.Name);
     }
     catch (UnauthorizedAccessException)
     {
         // no admin rights
     }
 }
コード例 #12
0
    public static void BuildCulture()
    {
        if (cultureExist())
        {
            CultureAndRegionInfoBuilder.Unregister("ku-KU");
        }
        Console.WriteLine("Create the CultureAndRegionInfoBuilder...");
        var cib = new CultureAndRegionInfoBuilder("ku-KU", CultureAndRegionModifiers.None);

        cib.CultureEnglishName = "Kurdish (Kurdistan)";
        cib.RegionEnglishName  = "Kurdistan";
        cib.CultureNativeName  = "ßæÑÏí";
        var cia = new CultureInfo("ar-IQ");

        cib.NumberFormat            = cia.NumberFormat;
        cib.GregorianDateTimeFormat = cia.DateTimeFormat;
        cib.TextInfo                     = cia.TextInfo;
        cib.CompareInfo                  = cia.CompareInfo;
        cib.KeyboardLayoutId             = cia.KeyboardLayoutId;
        cib.RegionNativeName             = "ßæÑÏÓÊÇä";
        cib.ThreeLetterISOLanguageName   = "kur";
        cib.ThreeLetterISORegionName     = "kur";
        cib.TwoLetterISORegionName       = "ku";
        cib.ThreeLetterWindowsRegionName = "kur";
        cib.ISOCurrencySymbol            = "USD";
        cib.CurrencyNativeName           = "Dinary Kurdi";
        cib.CurrencyEnglishName          = "Kurdish Dinar";
        var cinull = new CultureInfo("");

        cib.Parent = cinull;
        cib.ThreeLetterWindowsLanguageName = "kur";
        cib.TwoLetterISOLanguageName       = "ku";
        cib.IetfLanguageTag = "kurdisk";
        cib.Register();
        cib.Save(@"C:\temp\kurdish.xml");     //Save created culture to XML document
        Console.WriteLine("Create and explore the custom culture...");
        var ci = new CultureInfo("ku-KU");

        Console.WriteLine("Name: . . . . . . . . . . . . . {0}", ci.Name);
        Console.WriteLine("EnglishName:. . . . . . . . . . {0}", ci.EnglishName);
        Console.WriteLine("NativeName: . . . . . . . . . . {0}", ci.NativeName);
        Console.WriteLine("TwoLetterISOLanguageName: . . . {0}", ci.TwoLetterISOLanguageName);
        Console.WriteLine("ThreeLetterISOLanguageName: . . {0}", ci.ThreeLetterISOLanguageName);
        Console.WriteLine("ThreeLetterWindowsLanguageName: {0}", ci.ThreeLetterWindowsLanguageName);
        Console.Read();
    }
コード例 #13
0
        private static void Unregister(string cultureName)
        {
            Console.WriteLine("Unregistering...");

            try
            {
                CultureAndRegionInfoBuilder.Unregister(cultureName);
                Console.WriteLine("Success");
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error unregistering");
                Console.WriteLine(ex);
            }


            Console.WriteLine();
        }
コード例 #14
0
        static DataGlobalization()
        {
            try
            {
                CultureAndRegionInfoBuilder.Unregister(DefaultCustomCultureInfoKey);
            }
            catch (Exception ex)
            {
                // Log
            }

            try
            {
                var _cultureInfo =
                    new CultureAndRegionInfoBuilder(
                        DefaultCustomCultureInfoKey,
                        CultureAndRegionModifiers.None);
                _cultureInfo.LoadDataFromCultureInfo(CultureInfo.GetCultureInfo(1041));
                _cultureInfo.RegionEnglishName                     = DefaultCustomCultureInfoName;
                _cultureInfo.CultureEnglishName                    = DefaultCustomCultureInfoName;
                _cultureInfo.CultureNativeName                     = DefaultCustomCultureInfoName;
                _cultureInfo.RegionNativeName                      = DefaultCustomCultureInfoName;
                _cultureInfo.ThreeLetterISORegionName              = DefaultCustomCultureInfoThreeLetter;
                _cultureInfo.ThreeLetterISOLanguageName            = DefaultCustomCultureInfoThreeLetter;
                _cultureInfo.ThreeLetterWindowsLanguageName        = DefaultCustomCultureInfoThreeLetter;
                _cultureInfo.ThreeLetterWindowsRegionName          = DefaultCustomCultureInfoThreeLetter;
                _cultureInfo.TwoLetterISORegionName                = DefaultCustomCultureInfoTwoLetter;
                _cultureInfo.TwoLetterISOLanguageName              = DefaultCustomCultureInfoTwoLetter;
                _cultureInfo.GregorianDateTimeFormat.DateSeparator = "-";
                _cultureInfo.ISOCurrencySymbol                     = "BRL";
                _cultureInfo.CurrencyNativeName                    = "Real";
                _cultureInfo.CurrencyEnglishName                   = "Real";
                _cultureInfo.Register();
            }
            catch (Exception ex)
            {
                //  DEBUG
                //  Precisa abrir o VS em modo administrador.

                //  RELEASE
                //  O exe precisa de permissão para acessar os arquivos de globalização
                //  do sistema.
            }
        }
コード例 #15
0
ファイル: Remove.cs プロジェクト: gormac/cultures
        public int Action()
        {
            var culture = CultureInfo.GetCultures(CultureTypes.AllCultures).FirstOrDefault(x => x.Name.ToLowerInvariant() == Culture.ToLowerInvariant());

            if (culture != null)
            {
                try
                {
                    CultureAndRegionInfoBuilder.Unregister(culture.Name);
                    Console.WriteLine($"Removed '{culture.Name}'.");
                    return(0);
                }
                catch (ArgumentException)
                {
                    Console.WriteLine("Could not remove this culture - are you sure this a custom culture?");
                }
            }
            else
            {
                Console.WriteLine($"Culture '{Culture}' not found.");
            }
            return(1);
        }
コード例 #16
0
ファイル: Program.cs プロジェクト: pifta/NCLDR
        private static bool Unregister(string[] customCultures)
        {
            try
            {
                foreach (string customCulture in customCultures)
                {
                    string customCultureName = customCulture.Trim();
                    if (!String.IsNullOrEmpty(customCultureName))
                    {
                        Console.WriteLine(String.Format("Unregistering {0}...", customCultureName));
                        CultureAndRegionInfoBuilder.Unregister(customCultureName);
                    }
                }

                return(true);
            }
            catch (Exception exception)
            {
                Console.WriteLine(String.Empty);
                Console.WriteLine("Failed to unregister custom culture:");
                Console.WriteLine(String.Format("Exception: {0}", exception.Message));
                return(false);
            }
        }
コード例 #17
0
ファイル: ImportFolder.cs プロジェクト: gormac/cultures
        public int Action()
        {
            var dir = new DirectoryInfo(Folder);

            if (dir.Exists == false)
            {
                Console.WriteLine($"Invalid folder: '{Folder}'.");
                return(1);
            }
            var files = dir.EnumerateFiles().Where(x => x.Extension == Extension);

            if (!files.Any())
            {
                Console.WriteLine("No culture files found in folder.");
                return(1);
            }
            Console.WriteLine($"Found {files.Count()} culture files.\n");
            var installCount = 0;
            var skipCount    = 0;

            foreach (var file in files)
            {
                try
                {
                    var filePath = file.FullName;
                    var match    = _cultureRegex.Match(filePath);
                    if (match.Success)
                    {
                        var cultureName = match.Groups[1].Value;

                        if (CultureInfo.GetCultures(CultureTypes.AllCultures).FirstOrDefault(x => x.Name.ToLowerInvariant() == cultureName.ToLowerInvariant()) != null)
                        {
                            Console.WriteLine($"Skipping '{cultureName}' - culture already exists.");
                            skipCount++;
                            continue;
                        }
                        // Build and register a temporary culture with the name of what we want to import.
                        // CreateFromLdml method will fail when trying to load a culture from file if it doesn't already exist.
                        var tempCulture = new CultureAndRegionInfoBuilder(cultureName, CultureAndRegionModifiers.None);
                        tempCulture.LoadDataFromCultureInfo(CultureInfo.CurrentCulture);
                        tempCulture.LoadDataFromRegionInfo(RegionInfo.CurrentRegion);
                        tempCulture.Register();
                        // Now load up the culture we actually want to import
                        var culture = CultureAndRegionInfoBuilder.CreateFromLdml(filePath);
                        // Unregister the temporary culture
                        CultureAndRegionInfoBuilder.Unregister(cultureName);

                        // Register the real culture loaded from file
                        culture.Register();
                        Console.WriteLine($"Culture '{culture.CultureName}' has been installed.");
                        installCount++;
                    }
                }
                catch (Exception e)
                {
                    Console.Write(e.Message);
                }
            }
            Console.WriteLine($"\nInstalled {installCount} and skipped {skipCount} culture files.");
            return(0);
        }
コード例 #18
0
 //Used to unregister a culture
 private static void removeCustomCulture(CustomCulture culture)
 {
     CultureAndRegionInfoBuilder.Unregister(culture.CultureName);
 }
コード例 #19
0
 static void UninstallCulture(string cultureId)
 {
     CultureAndRegionInfoBuilder.Unregister(cultureId);
 }