public CultureInfo Get(SecurityUser securityUser)
 {
     return(_cultureInfoProvider.Get(securityUser.CultureName));
 }
示例#2
0
        public static IEnumerable <ExtendedCultureInfo> GetFallBack(
            [NotNull] this ICultureInfoProvider provider,
            [NotNull] CultureInfo culture)
        {
            if (provider == null)
            {
                throw new ArgumentNullException(nameof(provider));
            }
            if (culture == null)
            {
                throw new ArgumentNullException(nameof(culture));
            }

            ExtendedCultureInfo extendedCultureInfo = provider.Get(culture);

            if (extendedCultureInfo == null)
            {
                throw new ArgumentException(
                          string.Format(Resources.CultureHelper_GetFallBack_UnknownCulture, culture),
                          nameof(culture));
            }

            HashSet <ExtendedCultureInfo> yielded = new HashSet <ExtendedCultureInfo>();

            // First return the culture passed in
            yield return(extendedCultureInfo);

            yielded.Add(extendedCultureInfo);

            // Next return any descendants in a breadth first order
            Queue <ExtendedCultureInfo> queue = new Queue <ExtendedCultureInfo>(provider.GetChildren(extendedCultureInfo));

            while (queue.TryDequeue(out ExtendedCultureInfo childCulture))
            {
                yield return(childCulture);

                foreach (ExtendedCultureInfo child in provider.GetChildren(childCulture))
                {
                    queue.Enqueue(child);
                }
            }

            // Lastly return the ancestors and each ones children, excluding invariant
            extendedCultureInfo = extendedCultureInfo.Parent;

            while (!extendedCultureInfo.IsInvariant)
            {
                yield return(extendedCultureInfo);

                yielded.Add(extendedCultureInfo);

                foreach (ExtendedCultureInfo child in provider.GetChildren(extendedCultureInfo))
                {
                    if (!yielded.Contains(child))
                    {
                        yield return(child);
                    }
                }

                extendedCultureInfo = extendedCultureInfo.Parent;
            }

            if (!yielded.Contains(extendedCultureInfo))
            {
                yield return(extendedCultureInfo);
            }
        }
示例#3
0
        public IStringLocalizer Get(SecurityUser securityUser)
        {
            var culture = _cultureInfoProvider.Get(securityUser.CultureName);

            return(_localizer.WithCulture(culture));
        }