コード例 #1
0
 private void InitializeExtensions(LocalizationResourceInitializationContext context)
 {
     foreach (var extension in Extensions)
     {
         extension.Initialize(context);
         DictionaryProvider.Extend(extension);
     }
 }
コード例 #2
0
        public virtual void Initialize(IServiceProvider serviceProvider)
        {
            var context = new LocalizationResourceInitializationContext(this, serviceProvider);

            Dictionaries.Clear();
            InitializeContributors(context);

            foreach (var contributor in Contributors)
            {
                contributor.Updated += (sender, args) =>
                {
                    Dictionaries.Clear();
                    InitializeContributors(context);
                };
            }
        }
コード例 #3
0
 protected virtual void InitializeContributors(LocalizationResourceInitializationContext context)
 {
     foreach (var contributor in Contributors)
     {
         foreach (var dictionary in contributor.GetDictionaries(context))
         {
             var existingDictionary = Dictionaries.GetOrDefault(dictionary.CultureName);
             if (existingDictionary == null)
             {
                 Dictionaries[dictionary.CultureName] = dictionary;
             }
             else
             {
                 existingDictionary.Extend(dictionary);
             }
         }
     }
 }
コード例 #4
0
        private StringLocalizerCacheItem CreateStringLocalizerCacheItem(LocalizationResource resource)
        {
            foreach (var globalContributor in AbpLocalizationOptions.GlobalContributors)
            {
                resource.Contributors.Add((ILocalizationResourceContributor)Activator.CreateInstance(globalContributor));
            }

            var context = new LocalizationResourceInitializationContext(resource, ServiceProvider);

            foreach (var contributor in resource.Contributors)
            {
                contributor.Initialize(context);
            }

            return(new StringLocalizerCacheItem(
                       new AbpDictionaryBasedStringLocalizer(
                           resource,
                           resource.BaseResourceTypes.Select(Create).ToList()
                           )
                       ));
        }
コード例 #5
0
        public virtual void Initialize(IServiceProvider serviceProvider)
        {
            //TODO: We should refactor here to create a better design!

            var context = new LocalizationResourceInitializationContext(serviceProvider);

            InitializeDictionaryProvider(context);
            InitializeExtensions(context);

            DictionaryProvider.Updated += (sender, args) =>
            {
                InitializeExtensions(context);
            };

            foreach (var extension in Extensions)
            {
                extension.Updated += (sender, args) =>
                {
                    InitializeDictionaryProvider(context);
                    InitializeExtensions(context);
                };
            }
        }
コード例 #6
0
 private void InitializeDictionaryProvider(LocalizationResourceInitializationContext context)
 {
     DictionaryProvider.Initialize(context);
 }
コード例 #7
0
 public abstract List <ILocalizationDictionary> GetDictionaries(LocalizationResourceInitializationContext context);
コード例 #8
0
 public virtual void Initialize(LocalizationResourceInitializationContext context)
 {
 }