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()); } }
internal override UCultureInfo[] GetUCultures(UCultureTypes types) // ICU4N: Renamed from GetAvailableULocales { if (service.IsDefault) { return(ICUResourceBundle.GetUCultures(types)); } return(service.GetUCultures(types)); }
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 }
public override UCultureInfo[] GetUCultures(UCultureTypes types) // ICU4N: Renamed from GetAvailableLocales { if (service == null) { return(ICUResourceBundle.GetUCultures(types)); } else { return(service.GetUCultures(types)); } }
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); }
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); }
/// <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))); }
/// <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))); }