diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Localization/LocalizationManager.cs')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Localization/LocalizationManager.cs | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/MediaBrowser.Server.Implementations/Localization/LocalizationManager.cs b/MediaBrowser.Server.Implementations/Localization/LocalizationManager.cs new file mode 100644 index 000000000..8705d912f --- /dev/null +++ b/MediaBrowser.Server.Implementations/Localization/LocalizationManager.cs @@ -0,0 +1,65 @@ +using MediaBrowser.Controller.Localization; +using MediaBrowser.Model.Entities; +using MediaBrowser.Model.Globalization; +using MoreLinq; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; + +namespace MediaBrowser.Server.Implementations.Localization +{ + /// <summary> + /// Class LocalizationManager + /// </summary> + public class LocalizationManager : ILocalizationManager + { + /// <summary> + /// Gets the cultures. + /// </summary> + /// <returns>IEnumerable{CultureDto}.</returns> + public IEnumerable<CultureDto> GetCultures() + { + return CultureInfo.GetCultures(CultureTypes.AllCultures) + .OrderBy(c => c.DisplayName) + .DistinctBy(c => c.TwoLetterISOLanguageName + c.ThreeLetterISOLanguageName) + .Select(c => new CultureDto + { + Name = c.Name, + DisplayName = c.DisplayName, + ThreeLetterISOLanguageName = c.ThreeLetterISOLanguageName, + TwoLetterISOLanguageName = c.TwoLetterISOLanguageName + }); + } + + /// <summary> + /// Gets the countries. + /// </summary> + /// <returns>IEnumerable{CountryInfo}.</returns> + public IEnumerable<CountryInfo> GetCountries() + { + return CultureInfo.GetCultures(CultureTypes.SpecificCultures) + .Select(c => new RegionInfo(c.LCID)) + .OrderBy(c => c.DisplayName) + .DistinctBy(c => c.TwoLetterISORegionName) + .Select(c => new CountryInfo + { + Name = c.Name, + DisplayName = c.DisplayName, + TwoLetterISORegionName = c.TwoLetterISORegionName, + ThreeLetterISORegionName = c.ThreeLetterISORegionName + }); + } + + /// <summary> + /// Gets the parental ratings. + /// </summary> + /// <returns>IEnumerable{ParentalRating}.</returns> + public IEnumerable<ParentalRating> GetParentalRatings() + { + return Ratings.RatingsDict + .Select(k => new ParentalRating {Name = k.Key, Value = k.Value}) + .OrderBy(p => p.Value) + .Where(p => p.Value > 0); + } + } +} |
