GetMeasurementSystem() public static method

GetMeasurementSystem gets the MeasurementSystem for the region
public static GetMeasurementSystem ( string regionId ) : RegionMeasurementSystem
regionId string The Id of the region to get the MeasurementSystem for
return RegionMeasurementSystem
Beispiel #1
0
 /// <summary>
 /// GetMeasurementSystem gets the MeasurementSystem for the RegionInfo
 /// </summary>
 /// <param name="regionInfo">The RegionInfo to get the MeasurementSystem for</param>
 /// <returns>The MeasurementSystem for the RegionInfo</returns>
 public static RegionMeasurementSystem GetMeasurementSystem(this RegionInfo regionInfo)
 {
     return(RegionExtensions.GetMeasurementSystem(regionInfo.TwoLetterISORegionName));
 }
Beispiel #2
0
        /// <summary>
        /// Creates a CultureAndRegionInfoBuilder object for the NCLDR culture
        /// </summary>
        /// <param name="cldrCultureName">The name of the CLDR culture from which to create the .NET culture</param>
        /// <param name="dotNetCultureName">The name of the .NET custom culture to create</param>
        /// <returns>A CultureAndRegionInfoBuilder object for the NCLDR culture</returns>
        public static CultureAndRegionInfoBuilder CreateNCldrCultureAndRegionInfoBuilder(string cldrCultureName, string dotNetCultureName)
        {
            Culture culture = Culture.GetCulture(cldrCultureName);

            CultureAndRegionModifiers cultureAndRegionModifiers =
                culture.IsNeutralCulture ? CultureAndRegionModifiers.Neutral : CultureAndRegionModifiers.None;

            CultureAndRegionInfoBuilder builder = new CultureAndRegionInfoBuilder(dotNetCultureName, cultureAndRegionModifiers);

            CultureInfo parentCultureInfo = GetParentCultureInfo(culture);

            builder.Parent = parentCultureInfo;

            if (string.IsNullOrEmpty(culture.EnglishName))
            {
                builder.CultureEnglishName = culture.Identity.CultureName;
            }
            else
            {
                builder.CultureEnglishName = culture.EnglishName;
            }

            if (string.IsNullOrEmpty(culture.NativeName) && string.IsNullOrEmpty(culture.EnglishName))
            {
                builder.CultureNativeName = culture.Identity.CultureName;
            }
            else if (string.IsNullOrEmpty(culture.NativeName))
            {
                builder.CultureNativeName = culture.EnglishName;
            }
            else
            {
                builder.CultureNativeName = culture.NativeName;
            }

            builder.TwoLetterISOLanguageName = culture.Identity.Language.Id;

            // CLDR does not have data for ThreeLetterISOLanguageName but one must be assigned for the culture to be valid
            builder.ThreeLetterISOLanguageName = culture.Identity.Language.Id;

            // CLDR does not have data for ThreeLetterWindowsLanguageName but one must be assigned for the culture to be valid
            builder.ThreeLetterWindowsLanguageName = culture.Identity.Language.Id;

            // The CultureAndRegionInfoBuilder requires dummy values for these properties
            // even though there is no region or currency values
            builder.RegionEnglishName            = "xxx";
            builder.RegionNativeName             = "xxx";
            builder.ThreeLetterISORegionName     = "xxx";
            builder.ThreeLetterWindowsRegionName = "xxx";
            builder.TwoLetterISORegionName       = "xx";
            builder.ISOCurrencySymbol            = "xx";
            builder.CurrencyEnglishName          = "xxx";
            builder.CurrencyNativeName           = "xxx";

            if (culture.Identity.Region != null)
            {
                Region region = culture.Identity.Region;
                builder.RegionEnglishName = region.EnglishName;

                string regionNativeName = region.DisplayName(culture.Identity.Language.Id);
                if (string.IsNullOrEmpty(regionNativeName))
                {
                    builder.RegionNativeName = region.EnglishName;
                }
                else
                {
                    builder.RegionNativeName = regionNativeName;
                }

                RegionCode regionCode = RegionExtensions.GetRegionCode(region.Id);
                if (regionCode != null && regionCode.Alpha3 != null)
                {
                    builder.ThreeLetterISORegionName = regionCode.Alpha3;
                }
                else
                {
                    builder.ThreeLetterISORegionName = region.Id;
                }

                // CLDR does not have data for ThreeLetterWindowsRegionName but one must be assigned for the culture to be valid
                builder.ThreeLetterWindowsRegionName = region.Id;
                builder.TwoLetterISORegionName       = region.Id;

                builder.IsMetric = RegionExtensions.GetMeasurementSystem(region.Id).IsMetric;
            }
            else
            {
                builder.IsMetric = RegionExtensions.GetMeasurementSystem(NCldr.RegionIdForTheWorld).IsMetric;
            }

            // CLDR does not have data for KeyboardLayoutId or GeoId
            builder.IetfLanguageTag = cldrCultureName;

            builder.GregorianDateTimeFormat = CreateDateTimeFormatInfo(culture);
            builder.AvailableCalendars      = GetAvailableCalendars(culture);

            builder.NumberFormat = CreateNumberFormatInfo(culture);

            if (culture.Numbers != null &&
                culture.Numbers.CurrencyDisplayNameSets != null &&
                culture.Numbers.CurrentCurrencyPeriod != null)
            {
                string currencyName = culture.Numbers.CurrentCurrencyPeriod.Id;
                if (!string.IsNullOrEmpty(currencyName))
                {
                    builder.ISOCurrencySymbol = currencyName;

                    builder.CurrencyEnglishName = CultureExtensions.GetCurrencyDisplayName(currencyName, "en");

                    string currencyNativeName = CultureExtensions.GetCurrencyDisplayName(currencyName, culture.Identity.Language.Id);
                    builder.CurrencyNativeName = currencyNativeName == null ? builder.CurrencyEnglishName : currencyNativeName;
                }
            }

            builder.TextInfo    = parentCultureInfo.TextInfo;
            builder.CompareInfo = parentCultureInfo.CompareInfo;

            return(builder);
        }