| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- using System.Collections;
- using System.Collections.Generic;
- using System.Collections.Immutable;
- using System.Globalization;
- namespace Abp.Localization.Dictionaries
- {
- /// <summary>
- /// Represents a simple implementation of <see cref="ILocalizationDictionary"/> interface.
- /// </summary>
- public class LocalizationDictionary : ILocalizationDictionary, IEnumerable<LocalizedString>
- {
- /// <inheritdoc/>
- public CultureInfo CultureInfo { get; private set; }
- /// <inheritdoc/>
- public virtual string this[string name]
- {
- get
- {
- var localizedString = GetOrNull(name);
- return localizedString?.Value;
- }
- set => _dictionary[name] = new LocalizedString(name, value, CultureInfo);
- }
- private readonly Dictionary<string, LocalizedString> _dictionary;
- /// <summary>
- /// Creates a new <see cref="LocalizationDictionary"/> object.
- /// </summary>
- /// <param name="cultureInfo">Culture of the dictionary</param>
- public LocalizationDictionary(CultureInfo cultureInfo)
- {
- CultureInfo = cultureInfo;
- _dictionary = new Dictionary<string, LocalizedString>();
- }
- /// <inheritdoc/>
- public virtual LocalizedString GetOrNull(string name)
- {
- return _dictionary.TryGetValue(name, out var localizedString) ? localizedString : null;
- }
- /// <inheritdoc/>
- public virtual IReadOnlyList<LocalizedString> GetAllStrings()
- {
- return _dictionary.Values.ToImmutableList();
- }
- /// <inheritdoc/>
- public virtual IEnumerator<LocalizedString> GetEnumerator()
- {
- return GetAllStrings().GetEnumerator();
- }
- IEnumerator IEnumerable.GetEnumerator()
- {
- return GetAllStrings().GetEnumerator();
- }
- protected bool Contains(string name)
- {
- return _dictionary.ContainsKey(name);
- }
- }
- }
|