/// <summary>
        /// Creates new instance of this collection.
        /// </summary>
        /// <param name="fallbackCulture">Specifies default fallback language.</param>
        public FallbackLanguagesCollection(CultureInfo fallbackCulture)
        {
            var fallbackLanguages = new FallbackLanguages(this)
            {
                fallbackCulture
            };

            _collection.Add("default", fallbackLanguages);
        }
        /// <summary>
        /// Adds new fallback language settings for specified language.
        /// </summary>
        /// <param name="notFoundCulture">Fallback languages will be enforced when resource for this language is not found.</param>
        /// <returns>List of fallback languages on which you can call extension methods to get list configured.</returns>
        public FallbackLanguages Add(CultureInfo notFoundCulture)
        {
            if (notFoundCulture == null)
            {
                throw new ArgumentNullException(nameof(notFoundCulture));
            }

            if (_collection.ContainsKey(notFoundCulture.Name))
            {
                throw new ArgumentException($"Fallback languages already have setting for `{notFoundCulture.Name}` language");
            }

            var list = new FallbackLanguages(this);

            _collection.Add(notFoundCulture.Name, list);

            return(list);
        }
 /// <summary>
 /// Extension method to use to configure fallback languages. Use this method when you want to specify which languages to use when
 /// <paramref name="notFoundCulture" /> language was not found.
 /// </summary>
 /// <param name="list">List of fallback languages.</param>
 /// <param name="notFoundCulture">Configure fallback languages for this language.</param>
 /// <returns>The same list of registered fallback languages to support API chaining (that fluent thingy).</returns>
 public static FallbackLanguages When(this FallbackLanguages list, CultureInfo notFoundCulture)
 {
     return(list.FallbackLanguagesCollection.Add(notFoundCulture));
 }