using System.Collections.Generic;
using System.Globalization;
using Abp.Configuration.Startup;
using Abp.Dependency;
namespace Abp.Localization.Sources
{
///
/// A Localization Source is used to obtain localized strings.
///
public interface ILocalizationSource
{
///
/// Unique Name of the source.
///
string Name { get; }
///
/// This method is called by ABP before first usage.
///
void Initialize(ILocalizationConfiguration configuration, IIocResolver iocResolver);
///
/// Gets localized string for given name in current language.
/// Fallbacks to default language if not found in current culture.
///
/// Key name
/// Localized string
string GetString(string name);
///
/// Gets localized string for given name and specified culture.
/// Fallbacks to default language if not found in given culture.
///
/// Key name
/// culture information
/// Localized string
string GetString(string name, CultureInfo culture);
///
/// Gets localized string for given name in current language.
/// Returns null if not found.
///
/// Key name
///
/// True: Fallbacks to default language if not found in current culture.
///
/// Localized string
string GetStringOrNull(string name, bool tryDefaults = true);
///
/// Gets localized string for given name and specified culture.
/// Returns null if not found.
///
/// Key name
/// culture information
///
/// True: Fallbacks to default language if not found in current culture.
///
/// Localized string
string GetStringOrNull(string name, CultureInfo culture, bool tryDefaults = true);
///
/// Gets all strings in current language.
///
///
/// True: Fallbacks to default language texts if not found in current culture.
///
IReadOnlyList GetAllStrings(bool includeDefaults = true);
///
/// Gets all strings in specified culture.
///
/// culture information
///
/// True: Fallbacks to default language texts if not found in current culture.
///
IReadOnlyList GetAllStrings(CultureInfo culture, bool includeDefaults = true);
}
}