using System.Collections;
using System.Collections.Generic;
using System.Globalization;
namespace Umbraco.Core.Services
{
///
/// The entry point to localize any key in the text storage source for a given culture
///
///
/// This class is created to be as simple as possible so that it can be replaced very easily,
/// all other methods are extension methods that simply call the one underlying method in this class
///
public interface ILocalizedTextService
{
///
/// Localize a key with variables
///
///
///
/// This can be null
///
string Localize(string key, CultureInfo culture, IDictionary tokens = null);
///
/// Returns all key/values in storage for the given culture
///
///
IDictionary GetAllStoredValues(CultureInfo culture);
///
/// Returns a list of all currently supported cultures
///
///
IEnumerable GetSupportedCultures();
///
/// Tries to resolve a full 4 letter culture from a 2 letter culture name
///
///
/// The culture to determine if it is only a 2 letter culture, if so we'll try to convert it, otherwise it will just be returned
///
///
///
/// TODO: This is just a hack due to the way we store the language files, they should be stored with 4 letters since that
/// is what they reference but they are stored with 2, further more our user's languages are stored with 2. So this attempts
/// to resolve the full culture if possible.
///
CultureInfo ConvertToSupportedCultureWithRegionCode(CultureInfo currentCulture);
///
/// HAAAAAAAAAAACK! Used for backwards compat to convert a user's real culture code to a region code - normally this would be two letters
/// TODO: REmove in v8
///
///
///
string ConvertToRegionCodeFromSupportedCulture(CultureInfo currentCulture);
}
}