LocalizationManager.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using MediaBrowser.Controller.Localization;
  2. using MediaBrowser.Model.Entities;
  3. using MediaBrowser.Model.Globalization;
  4. using MoreLinq;
  5. using System.Collections.Generic;
  6. using System.Globalization;
  7. using System.Linq;
  8. namespace MediaBrowser.Server.Implementations.Localization
  9. {
  10. /// <summary>
  11. /// Class LocalizationManager
  12. /// </summary>
  13. public class LocalizationManager : ILocalizationManager
  14. {
  15. /// <summary>
  16. /// Gets the cultures.
  17. /// </summary>
  18. /// <returns>IEnumerable{CultureDto}.</returns>
  19. public IEnumerable<CultureDto> GetCultures()
  20. {
  21. return CultureInfo.GetCultures(CultureTypes.AllCultures)
  22. .OrderBy(c => c.DisplayName)
  23. .DistinctBy(c => c.TwoLetterISOLanguageName + c.ThreeLetterISOLanguageName)
  24. .Select(c => new CultureDto
  25. {
  26. Name = c.Name,
  27. DisplayName = c.DisplayName,
  28. ThreeLetterISOLanguageName = c.ThreeLetterISOLanguageName,
  29. TwoLetterISOLanguageName = c.TwoLetterISOLanguageName
  30. });
  31. }
  32. /// <summary>
  33. /// Gets the countries.
  34. /// </summary>
  35. /// <returns>IEnumerable{CountryInfo}.</returns>
  36. public IEnumerable<CountryInfo> GetCountries()
  37. {
  38. return CultureInfo.GetCultures(CultureTypes.SpecificCultures)
  39. .Select(c => new RegionInfo(c.LCID))
  40. .OrderBy(c => c.DisplayName)
  41. .DistinctBy(c => c.TwoLetterISORegionName)
  42. .Select(c => new CountryInfo
  43. {
  44. Name = c.Name,
  45. DisplayName = c.DisplayName,
  46. TwoLetterISORegionName = c.TwoLetterISORegionName,
  47. ThreeLetterISORegionName = c.ThreeLetterISORegionName
  48. });
  49. }
  50. /// <summary>
  51. /// Gets the parental ratings.
  52. /// </summary>
  53. /// <returns>IEnumerable{ParentalRating}.</returns>
  54. public IEnumerable<ParentalRating> GetParentalRatings()
  55. {
  56. return Ratings.RatingsDict
  57. .Select(k => new ParentalRating {Name = k.Key, Value = k.Value})
  58. .OrderBy(p => p.Value)
  59. .Where(p => p.Value > 0);
  60. }
  61. }
  62. }