/// <inheritdocs /> public CultureDictionary GetDictionary(CultureInfo culture, bool disableCache = false) { var cacheKeyPrefix = CacheKeyPrefix + culture.Name; if (disableCache) { _cache.Remove(cacheKeyPrefix); } var cachedDictionary = _cache.GetOrCreate(cacheKeyPrefix, k => new Lazy <CultureDictionary>(() => { var rule = DefaultPluralRule; foreach (var provider in _pluralRuleProviders) { if (provider.TryGetRule(culture, out rule)) { break; } } var dictionary = new CultureDictionary(culture.Name, rule ?? DefaultPluralRule); _translationProvider.LoadTranslations(culture, dictionary); return(dictionary); }, LazyThreadSafetyMode.ExecutionAndPublication)); return(cachedDictionary.Value); }
public CultureDictionary GetDictionary(CultureInfo culture) { var cachedDictionary = _cache.GetOrCreate(CacheKeyPrefix + culture.Name, k => new Lazy <CultureDictionary>(() => { PluralizationRuleDelegate rule = DefaultPluralRule; foreach (var provider in _pluralRuleProviders) { if (provider.TryGetRule(culture, out rule)) { break; } } var dictionary = new CultureDictionary(culture.Name, rule); _translationProvider.LoadTranslations(culture.Name, dictionary); return(dictionary); }, LazyThreadSafetyMode.ExecutionAndPublication)); return(cachedDictionary.Value); }