Ejemplo n.º 1
0
        private T[] GetCultures <T>(UCultureTypes types, Func <string, T> factory)
        {
            ICollection <string> visIDs = GetVisibleIDs();

            if (types == UCultureTypes.AllCultures)
            {
                int n       = 0;
                var locales = new T[visIDs.Count];
                foreach (string id in visIDs)
                {
                    locales[n++] = factory(id);
                }
                return(locales);
            }
            else
            {
                List <T> locales = new List <T>(visIDs.Count);
                var      parser  = new LocaleIDParser(string.Empty);
                foreach (string id in visIDs)
                {
                    // Filter the culture type before allocating the object
                    parser.Reset(id);
                    bool isNeutralCulture = parser.GetLocaleID().IsNeutralCulture;
                    if (isNeutralCulture && types.HasFlag(UCultureTypes.NeutralCultures) ||
                        (!isNeutralCulture && types.HasFlag(UCultureTypes.SpecificCultures)))
                    {
                        locales.Add(factory(id));
                    }
                }

                return(locales.ToArray());
            }
        }
Ejemplo n.º 2
0
 internal override UCultureInfo[] GetUCultures(UCultureTypes types) // ICU4N: Renamed from GetAvailableULocales
 {
     if (service.IsDefault)
     {
         return(ICUResourceBundle.GetUCultures(types));
     }
     return(service.GetUCultures(types));
 }
Ejemplo n.º 3
0
        internal static bool IsMatch(this CultureInfo culture, UCultureTypes types)
        {
#if FEATURE_CULTUREINFO_GETCULTURES
            return(((int)culture.CultureTypes & (int)types) != 0);
#else
            return(culture.IsNeutralCulture && types.HasFlag(UCultureTypes.NeutralCultures) ||
                   !culture.IsNeutralCulture && types.HasFlag(UCultureTypes.SpecificCultures));
#endif
        }
Ejemplo n.º 4
0
 public override UCultureInfo[] GetUCultures(UCultureTypes types) // ICU4N: Renamed from GetAvailableLocales
 {
     if (service == null)
     {
         return(ICUResourceBundle.GetUCultures(types));
     }
     else
     {
         return(service.GetUCultures(types));
     }
 }
Ejemplo n.º 5
0
 internal override UCultureInfo[] GetUCultures(UCultureTypes types) // ICU4N: Renamed from GetAvailableULocales
 {
     UCultureInfo[] result;
     if (service.IsDefault)
     {
         result = ICUResourceBundle.GetUCultures(
             ICUData.IcuCollationBaseName,
             ICUResourceBundle.IcuDataAssembly,
             types);
     }
     else
     {
         result = service.GetUCultures(types);
     }
     return(result);
 }
Ejemplo n.º 6
0
 internal override CultureInfo[] GetCultures(UCultureTypes types) // ICU4N: Renamed from GetAvailableLocales
 {
     // TODO rewrite this to just wrap getAvailableULocales later
     CultureInfo[] result;
     if (service.IsDefault)
     {
         result = ICUResourceBundle.GetCultures(
             ICUData.IcuCollationBaseName,
             CollationData.IcuDataAssembly,
             types);
     }
     else
     {
         result = service.GetCultures(types);
     }
     return(result);
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Convenience method for callers using locales.  This returns the standard
 /// <see cref="UCultureInfo"/> list, built from the <see cref="ICollection{T}"/> of visible ids.
 /// </summary>
 public virtual UCultureInfo[] GetUCultures(UCultureTypes types) // ICU4N: Renamed from GetAvailableULocales
 {
     return(GetCultures(types, (id) => new UCultureInfo(id)));
 }
Ejemplo n.º 8
0
 /// <summary>
 /// Convenience method for callers using locales.  This returns the standard
 /// <see cref="CultureInfo"/> list, built from the <see cref="ICollection{T}"/> of visible ids.
 /// </summary>
 public virtual CultureInfo[] GetCultures(UCultureTypes types) // ICU4N: Renamed from GetAvailableLocales
 {
     return(GetCultures(types, (id) => LocaleUtility.GetLocaleFromName(id)));
 }