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); } }