LocalizationDictionaryProviderBase.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using System.Collections.Generic;
  2. namespace Abp.Localization.Dictionaries.Xml
  3. {
  4. public abstract class LocalizationDictionaryProviderBase : ILocalizationDictionaryProvider
  5. {
  6. public string SourceName { get; private set; }
  7. public ILocalizationDictionary DefaultDictionary { get; protected set; }
  8. public IDictionary<string, ILocalizationDictionary> Dictionaries { get; private set; }
  9. protected LocalizationDictionaryProviderBase()
  10. {
  11. Dictionaries = new Dictionary<string, ILocalizationDictionary>();
  12. }
  13. public virtual void Initialize(string sourceName)
  14. {
  15. SourceName = sourceName;
  16. }
  17. public void Extend(ILocalizationDictionary dictionary)
  18. {
  19. //Add
  20. ILocalizationDictionary existingDictionary;
  21. if (!Dictionaries.TryGetValue(dictionary.CultureInfo.Name, out existingDictionary))
  22. {
  23. Dictionaries[dictionary.CultureInfo.Name] = dictionary;
  24. return;
  25. }
  26. //Override
  27. var localizedStrings = dictionary.GetAllStrings();
  28. foreach (var localizedString in localizedStrings)
  29. {
  30. existingDictionary[localizedString.Name] = localizedString.Value;
  31. }
  32. }
  33. }
  34. }