using System.Collections.Generic; namespace Abp.Localization.Dictionaries.Xml { public abstract class LocalizationDictionaryProviderBase : ILocalizationDictionaryProvider { public string SourceName { get; private set; } public ILocalizationDictionary DefaultDictionary { get; protected set; } public IDictionary Dictionaries { get; private set; } protected LocalizationDictionaryProviderBase() { Dictionaries = new Dictionary(); } public virtual void Initialize(string sourceName) { SourceName = sourceName; } public void Extend(ILocalizationDictionary dictionary) { //Add ILocalizationDictionary existingDictionary; if (!Dictionaries.TryGetValue(dictionary.CultureInfo.Name, out existingDictionary)) { Dictionaries[dictionary.CultureInfo.Name] = dictionary; return; } //Override var localizedStrings = dictionary.GetAllStrings(); foreach (var localizedString in localizedStrings) { existingDictionary[localizedString.Name] = localizedString.Value; } } } }