aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2014-08-04 23:41:56 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2014-08-04 23:41:56 -0400
commitc5319bb4ae9606e07d62525a022e5a67f85a7d43 (patch)
tree248e5e889e93aa7e2ba2feccf07ca857fe8e6a64
parent2714127d2b663b735048da6d9def08efa38f2b5f (diff)
update playlist xml saving
-rw-r--r--MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs673
-rw-r--r--MediaBrowser.Api/DefaultTheme/Models.cs83
-rw-r--r--MediaBrowser.Api/Library/LibraryService.cs5
-rw-r--r--MediaBrowser.Api/MediaBrowser.Api.csproj2
-rw-r--r--MediaBrowser.Common.Implementations/Serialization/JsonSerializer.cs20
-rw-r--r--MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs15
-rw-r--r--MediaBrowser.Common/Configuration/ConfigurationHelper.cs28
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs7
-rw-r--r--MediaBrowser.Controller/Entities/LinkedChild.cs8
-rw-r--r--MediaBrowser.Controller/Library/TVUtils.cs2
-rw-r--r--MediaBrowser.Controller/Providers/BaseItemXmlParser.cs23
-rw-r--r--MediaBrowser.Dlna/Didl/DidlBuilder.cs2
-rw-r--r--MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj2
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs9
-rw-r--r--MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs72
-rw-r--r--MediaBrowser.LocalMetadata/Providers/BoxSetXmlProvider.cs6
-rw-r--r--MediaBrowser.LocalMetadata/Providers/PlaylistXmlProvider.cs31
-rw-r--r--MediaBrowser.LocalMetadata/Providers/TrailerXmlProvider.cs8
-rw-r--r--MediaBrowser.LocalMetadata/Savers/PlaylistXmlSaver.cs6
-rw-r--r--MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs6
-rw-r--r--MediaBrowser.Model/Serialization/IJsonSerializer.cs8
-rw-r--r--MediaBrowser.Model/Serialization/IXmlSerializer.cs7
-rw-r--r--MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs2
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/da.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/de.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/el.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/es.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json13
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json13
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/he.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/it.json13
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json7
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json13
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/pl.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json19
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json13
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/tr.json19
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json15
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/ar.json48
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/ca.json50
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/cs.json48
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/da.json48
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/de.json48
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/el.json48
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/en_GB.json50
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/en_US.json50
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/es.json48
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/es_MX.json48
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/fr.json48
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/he.json48
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/it.json50
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/kk.json52
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/ko.json50
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/ms.json50
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/nb.json48
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/nl.json50
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/pl.json48
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json50
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json48
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/ru.json58
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/server.json47
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/sv.json48
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/tr.json66
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/vi.json48
-rw-r--r--MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json48
-rw-r--r--MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs22
77 files changed, 1768 insertions, 1002 deletions
diff --git a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs b/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
deleted file mode 100644
index 21ba47bd4..000000000
--- a/MediaBrowser.Api/DefaultTheme/DefaultThemeService.cs
+++ /dev/null
@@ -1,673 +0,0 @@
-using MediaBrowser.Controller.Drawing;
-using MediaBrowser.Controller.Dto;
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Entities.Audio;
-using MediaBrowser.Controller.Entities.Movies;
-using MediaBrowser.Controller.Entities.TV;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.Net;
-using MediaBrowser.Controller.Persistence;
-using MediaBrowser.Model.Entities;
-using MediaBrowser.Model.Logging;
-using MediaBrowser.Model.Querying;
-using ServiceStack;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-
-namespace MediaBrowser.Api.DefaultTheme
-{
- [Route("/MBT/DefaultTheme/Games", "GET")]
- public class GetGamesView : IReturn<GamesView>
- {
- [ApiMember(Name = "UserId", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "GET")]
- public Guid UserId { get; set; }
-
- [ApiMember(Name = "RecentlyPlayedGamesLimit", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
- public int RecentlyPlayedGamesLimit { get; set; }
-
- public string ParentId { get; set; }
- }
-
- [Route("/MBT/DefaultTheme/TV", "GET")]
- public class GetTvView : IReturn<TvView>
- {
- [ApiMember(Name = "UserId", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "GET")]
- public Guid UserId { get; set; }
-
- [ApiMember(Name = "ComedyGenre", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
- public string ComedyGenre { get; set; }
-
- [ApiMember(Name = "RomanceGenre", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
- public string RomanceGenre { get; set; }
-
- [ApiMember(Name = "TopCommunityRating", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
- public double TopCommunityRating { get; set; }
-
- [ApiMember(Name = "NextUpEpisodeLimit", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
- public int NextUpEpisodeLimit { get; set; }
-
- [ApiMember(Name = "ResumableEpisodeLimit", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
- public int ResumableEpisodeLimit { get; set; }
-
- [ApiMember(Name = "LatestEpisodeLimit", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
- public int LatestEpisodeLimit { get; set; }
-
- public string ParentId { get; set; }
- }
-
- [Route("/MBT/DefaultTheme/Movies", "GET")]
- public class GetMovieView : IReturn<MoviesView>
- {
- [ApiMember(Name = "UserId", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "GET")]
- public Guid UserId { get; set; }
-
- [ApiMember(Name = "FamilyGenre", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
- public string FamilyGenre { get; set; }
-
- [ApiMember(Name = "ComedyGenre", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
- public string ComedyGenre { get; set; }
-
- [ApiMember(Name = "RomanceGenre", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET", AllowMultiple = true)]
- public string RomanceGenre { get; set; }
-
- [ApiMember(Name = "LatestMoviesLimit", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
- public int LatestMoviesLimit { get; set; }
-
- [ApiMember(Name = "LatestTrailersLimit", IsRequired = false, DataType = "int", ParameterType = "query", Verb = "GET")]
- public int LatestTrailersLimit { get; set; }
-
- public string ParentId { get; set; }
- }
-
- [Route("/MBT/DefaultTheme/Favorites", "GET")]
- public class GetFavoritesView : IReturn<FavoritesView>
- {
- [ApiMember(Name = "UserId", IsRequired = true, DataType = "string", ParameterType = "query", Verb = "GET")]
- public Guid UserId { get; set; }
- }
-
- [Authenticated]
- public class DefaultThemeService : BaseApiService
- {
- private readonly IUserManager _userManager;
- private readonly IDtoService _dtoService;
- private readonly ILogger _logger;
- private readonly ILibraryManager _libraryManager;
- private readonly IUserDataManager _userDataManager;
-
- private readonly IImageProcessor _imageProcessor;
- private readonly IItemRepository _itemRepo;
-
- public DefaultThemeService(IUserManager userManager, IDtoService dtoService, ILogger logger, ILibraryManager libraryManager, IImageProcessor imageProcessor, IUserDataManager userDataManager, IItemRepository itemRepo)
- {
- _userManager = userManager;
- _dtoService = dtoService;
- _logger = logger;
- _libraryManager = libraryManager;
- _imageProcessor = imageProcessor;
- _userDataManager = userDataManager;
- _itemRepo = itemRepo;
- }
-
- public object Get(GetFavoritesView request)
- {
- var user = _userManager.GetUserById(request.UserId);
-
- var allItems = user.RootFolder.GetRecursiveChildren(user)
- .ToList();
-
- var allFavoriteItems = allItems.Where(i => _userDataManager.GetUserData(user.Id, i.GetUserDataKey()).IsFavorite)
- .ToList();
-
- var itemsWithImages = allFavoriteItems.Where(i => !string.IsNullOrEmpty(i.PrimaryImagePath))
- .ToList();
-
- var itemsWithBackdrops = allFavoriteItems.Where(i => i.GetImages(ImageType.Backdrop).Any())
- .ToList();
-
- var view = new FavoritesView();
-
- var fields = new List<ItemFields>();
-
- view.BackdropItems = FilterItemsForBackdropDisplay(itemsWithBackdrops)
- .Randomize("backdrop")
- .Take(10)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- var spotlightItems = itemsWithBackdrops.Randomize("spotlight")
- .Take(10)
- .ToList();
-
- view.SpotlightItems = spotlightItems
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- fields.Add(ItemFields.PrimaryImageAspectRatio);
-
- view.Albums = itemsWithImages
- .OfType<MusicAlbum>()
- .Randomize()
- .Take(4)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- view.Books = itemsWithImages
- .OfType<Book>()
- .Randomize()
- .Take(6)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- view.Episodes = itemsWithImages
- .OfType<Episode>()
- .Randomize()
- .Take(6)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- view.Games = itemsWithImages
- .OfType<Game>()
- .Randomize()
- .Take(6)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- view.Movies = itemsWithImages
- .OfType<Movie>()
- .Randomize()
- .Take(6)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- view.Series = itemsWithImages
- .OfType<Series>()
- .Randomize()
- .Take(6)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- view.Songs = itemsWithImages
- .OfType<Audio>()
- .Randomize()
- .Take(4)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- view.MiniSpotlights = itemsWithBackdrops
- .Except(spotlightItems)
- .Randomize()
- .Take(5)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- var artists = allItems.OfType<Audio>()
- .SelectMany(i => i.AllArtists)
- .Distinct(StringComparer.OrdinalIgnoreCase)
- .Randomize()
- .Select(i =>
- {
- try
- {
- return _libraryManager.GetArtist(i);
- }
- catch
- {
- return null;
- }
- })
- .Where(i => i != null && _userDataManager.GetUserData(user.Id, i.GetUserDataKey()).IsFavorite)
- .Take(4)
- .ToList();
-
- view.Artists = artists
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- return ToOptimizedSerializedResultUsingCache(view);
- }
-
- public object Get(GetGamesView request)
- {
- var user = _userManager.GetUserById(request.UserId);
-
- var items = GetAllLibraryItems(user.Id, _userManager, _libraryManager, request.ParentId).Where(i => i is Game || i is GameSystem)
- .ToList();
-
- var gamesWithImages = items.OfType<Game>().Where(i => !string.IsNullOrEmpty(i.PrimaryImagePath)).ToList();
-
- var itemsWithBackdrops = FilterItemsForBackdropDisplay(items.Where(i => i.GetImages(ImageType.Backdrop).Any())).ToList();
-
- var gamesWithBackdrops = itemsWithBackdrops.OfType<Game>().ToList();
-
- var view = new GamesView();
-
- var fields = new List<ItemFields>();
-
- view.GameSystems = items
- .OfType<GameSystem>()
- .OrderBy(i => i.SortName)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- var currentUserId = user.Id;
- view.RecentlyPlayedGames = gamesWithImages
- .OrderByDescending(i => _userDataManager.GetUserData(currentUserId, i.GetUserDataKey()).LastPlayedDate ?? DateTime.MinValue)
- .Take(request.RecentlyPlayedGamesLimit)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- view.BackdropItems = gamesWithBackdrops
- .OrderBy(i => Guid.NewGuid())
- .Take(10)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- view.SpotlightItems = gamesWithBackdrops
- .OrderBy(i => Guid.NewGuid())
- .Take(10)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- view.MultiPlayerItems = gamesWithImages
- .Where(i => i.PlayersSupported.HasValue && i.PlayersSupported.Value > 1)
- .Randomize()
- .Select(i => GetItemStub(i, ImageType.Primary))
- .Where(i => i != null)
- .Take(1)
- .ToList();
-
- return ToOptimizedSerializedResultUsingCache(view);
- }
-
- public object Get(GetTvView request)
- {
- var romanceGenres = request.RomanceGenre.Split(',').ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
- var comedyGenres = request.ComedyGenre.Split(',').ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
-
- var user = _userManager.GetUserById(request.UserId);
-
- var series = GetAllLibraryItems(user.Id, _userManager, _libraryManager, request.ParentId)
- .OfType<Series>()
- .ToList();
-
- var seriesWithBackdrops = series.Where(i => i.GetImages(ImageType.Backdrop).Any()).ToList();
-
- var view = new TvView();
-
- var fields = new List<ItemFields>();
-
- var seriesWithBestBackdrops = FilterItemsForBackdropDisplay(seriesWithBackdrops).ToList();
-
- view.BackdropItems = seriesWithBestBackdrops
- .OrderBy(i => Guid.NewGuid())
- .Take(10)
- .AsParallel()
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- view.ShowsItems = series
- .Where(i => i.GetImages(ImageType.Backdrop).Any())
- .Randomize("all")
- .Select(i => GetItemStub(i, ImageType.Backdrop))
- .Where(i => i != null)
- .Take(1)
- .ToList();
-
- view.RomanceItems = seriesWithBackdrops
- .Where(i => i.Genres.Any(romanceGenres.ContainsKey))
- .Randomize("romance")
- .Select(i => GetItemStub(i, ImageType.Backdrop))
- .Where(i => i != null)
- .Take(1)
- .ToList();
-
- view.ComedyItems = seriesWithBackdrops
- .Where(i => i.Genres.Any(comedyGenres.ContainsKey))
- .Randomize("comedy")
- .Select(i => GetItemStub(i, ImageType.Backdrop))
- .Where(i => i != null)
- .Take(1)
- .ToList();
-
- var spotlightSeries = seriesWithBestBackdrops
- .Where(i => i.CommunityRating.HasValue && i.CommunityRating >= 8.5)
- .ToList();
-
- if (spotlightSeries.Count < 20)
- {
- spotlightSeries = seriesWithBestBackdrops;
- }
-
- spotlightSeries = spotlightSeries
- .OrderBy(i => Guid.NewGuid())
- .Take(10)
- .ToList();
-
- view.SpotlightItems = spotlightSeries
- .AsParallel()
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- var miniSpotlightItems = seriesWithBackdrops
- .Except(spotlightSeries.OfType<Series>())
- .Where(i => i.CommunityRating.HasValue && i.CommunityRating >= 8)
- .ToList();
-
- if (miniSpotlightItems.Count < 15)
- {
- miniSpotlightItems = seriesWithBackdrops;
- }
-
- view.MiniSpotlights = miniSpotlightItems
- .Randomize("minispotlight")
- .Take(5)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- var nextUpEpisodes = new TvShowsService(_userManager, _userDataManager, _libraryManager, _itemRepo, _dtoService)
- .GetNextUpEpisodes(new GetNextUpEpisodes { UserId = user.Id }, series)
- .ToList();
-
- fields.Add(ItemFields.PrimaryImageAspectRatio);
-
- view.NextUpEpisodes = nextUpEpisodes
- .Take(request.NextUpEpisodeLimit)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- view.SeriesIdsInProgress = nextUpEpisodes.Select(i => i.Series.Id.ToString("N")).ToList();
-
- // Avoid implicitly captured closure
- var currentUser1 = user;
-
- var ownedEpisodes = series
- .SelectMany(i => i.GetRecursiveChildren(currentUser1).Where(j => j.LocationType != LocationType.Virtual))
- .OfType<Episode>()
- .ToList();
-
- // Avoid implicitly captured closure
- var currentUser = user;
-
- view.LatestEpisodes = ownedEpisodes
- .OrderByDescending(i => i.DateCreated)
- .Where(i => !_userDataManager.GetUserData(currentUser.Id, i.GetUserDataKey()).Played)
- .Take(request.LatestEpisodeLimit)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- view.ResumableEpisodes = ownedEpisodes
- .Where(i => _userDataManager.GetUserData(currentUser.Id, i.GetUserDataKey()).PlaybackPositionTicks > 0)
- .OrderByDescending(i => _userDataManager.GetUserData(currentUser.Id, i.GetUserDataKey()).LastPlayedDate ?? DateTime.MinValue)
- .Take(request.ResumableEpisodeLimit)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- return ToOptimizedSerializedResultUsingCache(view);
- }
-
- public object Get(GetMovieView request)
- {
- var user = _userManager.GetUserById(request.UserId);
-
- var items = GetAllLibraryItems(user.Id, _userManager, _libraryManager, request.ParentId)
- .Where(i => i is Movie || i is Trailer || i is BoxSet)
- .ToList();
-
- var view = new MoviesView();
-
- var movies = items.OfType<Movie>()
- .ToList();
-
- var trailers = items.OfType<Trailer>()
- .ToList();
-
- var hdMovies = movies.Where(i => i.IsHD).ToList();
-
- var familyGenres = request.FamilyGenre.Split(',').ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
-
- var familyMovies = movies.Where(i => i.Genres.Any(familyGenres.ContainsKey)).ToList();
-
- view.HDMoviePercentage = 100 * hdMovies.Count;
- view.HDMoviePercentage /= movies.Count;
-
- view.FamilyMoviePercentage = 100 * familyMovies.Count;
- view.FamilyMoviePercentage /= movies.Count;
-
- var moviesWithBackdrops = movies
- .Where(i => i.GetImages(ImageType.Backdrop).Any())
- .ToList();
-
- var fields = new List<ItemFields>();
-
- var itemsWithTopBackdrops = FilterItemsForBackdropDisplay(moviesWithBackdrops).ToList();
-
- view.BackdropItems = itemsWithTopBackdrops
- .OrderBy(i => Guid.NewGuid())
- .Take(10)
- .AsParallel()
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- view.MovieItems = moviesWithBackdrops
- .Randomize("all")
- .Select(i => GetItemStub(i, ImageType.Backdrop))
- .Where(i => i != null)
- .Take(1)
- .ToList();
-
- view.TrailerItems = trailers
- .Where(i => !string.IsNullOrEmpty(i.PrimaryImagePath))
- .Randomize()
- .Select(i => GetItemStub(i, ImageType.Primary))
- .Where(i => i != null)
- .Take(1)
- .ToList();
-
- view.BoxSetItems = items
- .OfType<BoxSet>()
- .Where(i => i.GetImages(ImageType.Backdrop).Any())
- .Randomize()
- .Select(i => GetItemStub(i, ImageType.Backdrop))
- .Where(i => i != null)
- .Take(1)
- .ToList();
-
- view.ThreeDItems = moviesWithBackdrops
- .Where(i => i.Is3D)
- .Randomize("3d")
- .Select(i => GetItemStub(i, ImageType.Backdrop))
- .Where(i => i != null)
- .Take(1)
- .ToList();
-
- var romanceGenres = request.RomanceGenre.Split(',').ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
- var comedyGenres = request.ComedyGenre.Split(',').ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
-
- view.RomanceItems = moviesWithBackdrops
- .Where(i => i.Genres.Any(romanceGenres.ContainsKey))
- .Randomize("romance")
- .Select(i => GetItemStub(i, ImageType.Backdrop))
- .Where(i => i != null)
- .Take(1)
- .ToList();
-
- view.ComedyItems = moviesWithBackdrops
- .Where(i => i.Genres.Any(comedyGenres.ContainsKey))
- .Randomize("comedy")
- .Select(i => GetItemStub(i, ImageType.Backdrop))
- .Where(i => i != null)
- .Take(1)
- .ToList();
-
- view.HDItems = hdMovies
- .Where(i => i.GetImages(ImageType.Backdrop).Any())
- .Randomize("hd")
- .Select(i => GetItemStub(i, ImageType.Backdrop))
- .Where(i => i != null)
- .Take(1)
- .ToList();
-
- view.FamilyMovies = familyMovies
- .Where(i => i.GetImages(ImageType.Backdrop).Any())
- .Randomize("family")
- .Select(i => GetItemStub(i, ImageType.Backdrop))
- .Where(i => i != null)
- .Take(1)
- .ToList();
-
- var currentUserId = user.Id;
- var spotlightItems = itemsWithTopBackdrops
- .Where(i => i.CommunityRating.HasValue && i.CommunityRating >= 8)
- .Where(i => !_userDataManager.GetUserData(currentUserId, i.GetUserDataKey()).Played)
- .ToList();
-
- if (spotlightItems.Count < 20)
- {
- spotlightItems = itemsWithTopBackdrops;
- }
-
- spotlightItems = spotlightItems
- .OrderBy(i => Guid.NewGuid())
- .Take(10)
- .ToList();
-
- view.SpotlightItems = spotlightItems
- .AsParallel()
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- var miniSpotlightItems = moviesWithBackdrops
- .Except(spotlightItems)
- .Where(i => i.CommunityRating.HasValue && i.CommunityRating >= 7.5)
- .ToList();
-
- if (miniSpotlightItems.Count < 15)
- {
- miniSpotlightItems = itemsWithTopBackdrops;
- }
-
- miniSpotlightItems = miniSpotlightItems
- .Randomize("minispotlight")
- .ToList();
-
- // Avoid implicitly captured closure
- miniSpotlightItems.InsertRange(0, moviesWithBackdrops
- .Where(i => _userDataManager.GetUserData(currentUserId, i.GetUserDataKey()).PlaybackPositionTicks > 0)
- .OrderByDescending(i => _userDataManager.GetUserData(currentUserId, i.GetUserDataKey()).LastPlayedDate ?? DateTime.MaxValue)
- .Take(3));
-
- view.MiniSpotlights = miniSpotlightItems
- .Take(3)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- // Avoid implicitly captured closure
- var currentUserId1 = user.Id;
-
- view.LatestMovies = movies
- .OrderByDescending(i => i.DateCreated)
- .Where(i => !_userDataManager.GetUserData(currentUserId1, i.GetUserDataKey()).Played)
- .Take(request.LatestMoviesLimit)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- view.LatestTrailers = trailers
- .OrderByDescending(i => i.DateCreated)
- .Where(i => !_userDataManager.GetUserData(currentUserId1, i.GetUserDataKey()).Played)
- .Take(request.LatestTrailersLimit)
- .Select(i => _dtoService.GetBaseItemDto(i, fields, user))
- .ToList();
-
- return ToOptimizedSerializedResultUsingCache(view);
- }
-
- private IEnumerable<BaseItem> FilterItemsForBackdropDisplay(IEnumerable<BaseItem> items)
- {
- var tuples = items
- .Select(i => new Tuple<BaseItem, double>(i, GetResolution(i, ImageType.Backdrop, 0)))
- .Where(i => i.Item2 > 0)
- .ToList();
-
- var topItems = tuples
- .Where(i => i.Item2 >= 1920)
- .ToList();
-
- if (topItems.Count >= 10)
- {
- return topItems.Select(i => i.Item1);
- }
-
- return tuples.Select(i => i.Item1);
- }
-
- private double GetResolution(BaseItem item, ImageType type, int index)
- {
- try
- {
- var info = item.GetImageInfo(type, index);
-
- var size = _imageProcessor.GetImageSize(info.Path, info.DateModified);
-
- return size.Width;
- }
- catch
- {
- return 0;
- }
- }
-
- private ItemStub GetItemStub(BaseItem item, ImageType imageType)
- {
- var stub = new ItemStub
- {
- Id = _dtoService.GetDtoId(item),
- Name = item.Name,
- ImageType = imageType
- };
-
- try
- {
- var tag = _imageProcessor.GetImageCacheTag(item, imageType);
-
- if (tag != null)
- {
- stub.ImageTag = tag;
- }
- }
- catch (Exception ex)
- {
- _logger.ErrorException("Error getting image tag for {0}", ex, item.Path);
- return null;
- }
-
- return stub;
- }
- }
-
- static class RandomExtension
- {
- public static IEnumerable<T> Randomize<T>(this IEnumerable<T> sequence, string type = "none")
- where T : BaseItem
- {
- var hour = DateTime.Now.Hour + DateTime.Now.Day + 2;
-
- var typeCode = type.GetHashCode();
-
- return sequence.OrderBy(i =>
- {
- var val = i.Id.GetHashCode() + i.Genres.Count + i.People.Count + (i.ProductionYear ?? 0) + i.DateCreated.Minute + i.DateModified.Minute + typeCode;
-
- return val % hour;
- });
- }
-
- public static IEnumerable<string> Randomize(this IEnumerable<string> sequence)
- {
- var hour = DateTime.Now.Hour + 2;
-
- return sequence.OrderBy(i => i.GetHashCode() % hour);
- }
- }
-}
diff --git a/MediaBrowser.Api/DefaultTheme/Models.cs b/MediaBrowser.Api/DefaultTheme/Models.cs
deleted file mode 100644
index 6cc7af499..000000000
--- a/MediaBrowser.Api/DefaultTheme/Models.cs
+++ /dev/null
@@ -1,83 +0,0 @@
-using MediaBrowser.Model.Dto;
-using MediaBrowser.Model.Entities;
-using System;
-using System.Collections.Generic;
-
-namespace MediaBrowser.Api.DefaultTheme
-{
- public class ItemStub
- {
- public string Name { get; set; }
- public string Id { get; set; }
- public string ImageTag { get; set; }
- public ImageType ImageType { get; set; }
- }
-
- public class MoviesView : BaseView
- {
- public List<ItemStub> MovieItems { get; set; }
-
- public List<ItemStub> BoxSetItems { get; set; }
- public List<ItemStub> TrailerItems { get; set; }
- public List<ItemStub> HDItems { get; set; }
- public List<ItemStub> ThreeDItems { get; set; }
-
- public List<ItemStub> FamilyMovies { get; set; }
-
- public List<ItemStub> RomanceItems { get; set; }
- public List<ItemStub> ComedyItems { get; set; }
-
- public double FamilyMoviePercentage { get; set; }
-
- public double HDMoviePercentage { get; set; }
-
- public List<BaseItemDto> LatestTrailers { get; set; }
- public List<BaseItemDto> LatestMovies { get; set; }
- }
-
- public class TvView : BaseView
- {
- public List<ItemStub> ShowsItems { get; set; }
-
- public List<ItemStub> RomanceItems { get; set; }
- public List<ItemStub> ComedyItems { get; set; }
-
- public List<string> SeriesIdsInProgress { get; set; }
-
- public List<BaseItemDto> LatestEpisodes { get; set; }
- public List<BaseItemDto> NextUpEpisodes { get; set; }
- public List<BaseItemDto> ResumableEpisodes { get; set; }
- }
-
- public class ItemByNameInfo
- {
- public string Name { get; set; }
- public int ItemCount { get; set; }
- }
-
- public class GamesView : BaseView
- {
- public List<ItemStub> MultiPlayerItems { get; set; }
- public List<BaseItemDto> GameSystems { get; set; }
- public List<BaseItemDto> RecentlyPlayedGames { get; set; }
- }
-
- public class BaseView
- {
- public List<BaseItemDto> BackdropItems { get; set; }
- public List<BaseItemDto> SpotlightItems { get; set; }
- public List<BaseItemDto> MiniSpotlights { get; set; }
- }
-
- public class FavoritesView : BaseView
- {
- public List<BaseItemDto> Movies { get; set; }
- public List<BaseItemDto> Series { get; set; }
- public List<BaseItemDto> Episodes { get; set; }
- public List<BaseItemDto> Games { get; set; }
- public List<BaseItemDto> Books { get; set; }
- public List<BaseItemDto> Albums { get; set; }
- public List<BaseItemDto> Songs { get; set; }
- public List<BaseItemDto> Artists { get; set; }
- }
-}
diff --git a/MediaBrowser.Api/Library/LibraryService.cs b/MediaBrowser.Api/Library/LibraryService.cs
index f6588714e..56f66bd6b 100644
--- a/MediaBrowser.Api/Library/LibraryService.cs
+++ b/MediaBrowser.Api/Library/LibraryService.cs
@@ -284,6 +284,11 @@ namespace MediaBrowser.Api.Library
return ToOptimizedResult(result);
}
+ public void Post(PostUpdatedSeries request)
+ {
+
+ }
+
public object Get(GetFile request)
{
var item = _libraryManager.GetItemById(request.Id);
diff --git a/MediaBrowser.Api/MediaBrowser.Api.csproj b/MediaBrowser.Api/MediaBrowser.Api.csproj
index f2f0ec790..7b6f9ee46 100644
--- a/MediaBrowser.Api/MediaBrowser.Api.csproj
+++ b/MediaBrowser.Api/MediaBrowser.Api.csproj
@@ -77,8 +77,6 @@
<Compile Include="AppThemeService.cs" />
<Compile Include="BaseApiService.cs" />
<Compile Include="ConfigurationService.cs" />
- <Compile Include="DefaultTheme\DefaultThemeService.cs" />
- <Compile Include="DefaultTheme\Models.cs" />
<Compile Include="DisplayPreferencesService.cs" />
<Compile Include="EnvironmentService.cs" />
<Compile Include="GamesService.cs" />
diff --git a/MediaBrowser.Common.Implementations/Serialization/JsonSerializer.cs b/MediaBrowser.Common.Implementations/Serialization/JsonSerializer.cs
index 130e21b6e..e7fd12178 100644
--- a/MediaBrowser.Common.Implementations/Serialization/JsonSerializer.cs
+++ b/MediaBrowser.Common.Implementations/Serialization/JsonSerializer.cs
@@ -210,25 +210,5 @@ namespace MediaBrowser.Common.Implementations.Serialization
return ServiceStack.Text.JsonSerializer.SerializeToString(obj, obj.GetType());
}
-
- /// <summary>
- /// Serializes to bytes.
- /// </summary>
- /// <param name="obj">The obj.</param>
- /// <returns>System.Byte[][].</returns>
- /// <exception cref="System.ArgumentNullException">obj</exception>
- public byte[] SerializeToBytes(object obj)
- {
- if (obj == null)
- {
- throw new ArgumentNullException("obj");
- }
-
- using (var stream = new MemoryStream())
- {
- SerializeToStream(obj, stream);
- return stream.ToArray();
- }
- }
}
}
diff --git a/MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs b/MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs
index 06c60dacd..cef744753 100644
--- a/MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs
+++ b/MediaBrowser.Common.Implementations/Serialization/XmlSerializer.cs
@@ -91,20 +91,5 @@ namespace MediaBrowser.Common.Implementations.Serialization
return DeserializeFromStream(type, stream);
}
}
-
- /// <summary>
- /// Serializes to bytes.
- /// </summary>
- /// <param name="obj">The obj.</param>
- /// <returns>System.Byte[][].</returns>
- public byte[] SerializeToBytes(object obj)
- {
- using (var stream = new MemoryStream())
- {
- SerializeToStream(obj, stream);
-
- return stream.ToArray();
- }
- }
}
}
diff --git a/MediaBrowser.Common/Configuration/ConfigurationHelper.cs b/MediaBrowser.Common/Configuration/ConfigurationHelper.cs
index 64c2e87de..8c904b0db 100644
--- a/MediaBrowser.Common/Configuration/ConfigurationHelper.cs
+++ b/MediaBrowser.Common/Configuration/ConfigurationHelper.cs
@@ -36,21 +36,25 @@ namespace MediaBrowser.Common.Configuration
configuration = Activator.CreateInstance(type);
}
- // Take the object we just got and serialize it back to bytes
- var newBytes = xmlSerializer.SerializeToBytes(configuration);
-
- // If the file didn't exist before, or if something has changed, re-save
- if (buffer == null || !buffer.SequenceEqual(newBytes))
+ using (var stream = new MemoryStream())
{
- Directory.CreateDirectory(Path.GetDirectoryName(path));
-
- // Save it after load in case we got new items
- File.WriteAllBytes(path, newBytes);
- }
+ xmlSerializer.SerializeToStream(configuration, stream);
- return configuration;
- }
+ // Take the object we just got and serialize it back to bytes
+ var newBytes = stream.ToArray();
+
+ // If the file didn't exist before, or if something has changed, re-save
+ if (buffer == null || !buffer.SequenceEqual(newBytes))
+ {
+ Directory.CreateDirectory(Path.GetDirectoryName(path));
+ // Save it after load in case we got new items
+ File.WriteAllBytes(path, newBytes);
+ }
+
+ return configuration;
+ }
+ }
/// <summary>
/// Reads an xml configuration file from the file system
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index 36e65f5f5..a476f555f 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -1045,13 +1045,6 @@ namespace MediaBrowser.Controller.Entities
return false;
}
}
- if (info.ItemIndexNumber.HasValue)
- {
- if (info.ItemIndexNumber.Value != (i.IndexNumber ?? -1))
- {
- return false;
- }
- }
return true;
}
}
diff --git a/MediaBrowser.Controller/Entities/LinkedChild.cs b/MediaBrowser.Controller/Entities/LinkedChild.cs
index 3fc0ab716..c77fe18c4 100644
--- a/MediaBrowser.Controller/Entities/LinkedChild.cs
+++ b/MediaBrowser.Controller/Entities/LinkedChild.cs
@@ -12,7 +12,6 @@ namespace MediaBrowser.Controller.Entities
public string ItemName { get; set; }
public string ItemType { get; set; }
public int? ItemYear { get; set; }
- public int? ItemIndexNumber { get; set; }
/// <summary>
/// Serves as a cache
@@ -24,11 +23,8 @@ namespace MediaBrowser.Controller.Entities
{
return new LinkedChild
{
- ItemName = item.Name,
- ItemYear = item.ProductionYear,
- ItemType = item.GetType().Name,
- Type = LinkedChildType.Manual,
- ItemIndexNumber = item.IndexNumber
+ Path = item.Path,
+ Type = LinkedChildType.Manual
};
}
}
diff --git a/MediaBrowser.Controller/Library/TVUtils.cs b/MediaBrowser.Controller/Library/TVUtils.cs
index 5e43eb644..541dfd226 100644
--- a/MediaBrowser.Controller/Library/TVUtils.cs
+++ b/MediaBrowser.Controller/Library/TVUtils.cs
@@ -303,8 +303,6 @@ namespace MediaBrowser.Controller.Library
}
else
{
- logger.Debug("Evaluating series file: {0}", child.FullName);
-
var fullName = child.FullName;
if (EntityResolutionHelper.IsVideoFile(fullName) || EntityResolutionHelper.IsVideoPlaceHolder(fullName))
diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
index 7e6895ec5..06d738297 100644
--- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
+++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
@@ -1304,30 +1304,19 @@ namespace MediaBrowser.Controller.Providers
break;
}
- case "Type":
+ case "Path":
{
- linkedItem.ItemType = reader.ReadElementContentAsString();
+ linkedItem.Path = reader.ReadElementContentAsString();
break;
}
- case "Year":
+ case "Type":
{
- var val = reader.ReadElementContentAsString();
-
- if (!string.IsNullOrWhiteSpace(val))
- {
- int rval;
-
- if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval))
- {
- linkedItem.ItemYear = rval;
- }
- }
-
+ linkedItem.ItemType = reader.ReadElementContentAsString();
break;
}
- case "IndexNumber":
+ case "Year":
{
var val = reader.ReadElementContentAsString();
@@ -1337,7 +1326,7 @@ namespace MediaBrowser.Controller.Providers
if (int.TryParse(val, NumberStyles.Integer, _usCulture, out rval))
{
- linkedItem.ItemIndexNumber = rval;
+ linkedItem.ItemYear = rval;
}
}
diff --git a/MediaBrowser.Dlna/Didl/DidlBuilder.cs b/MediaBrowser.Dlna/Didl/DidlBuilder.cs
index 8ad225770..ec86f69e7 100644
--- a/MediaBrowser.Dlna/Didl/DidlBuilder.cs
+++ b/MediaBrowser.Dlna/Didl/DidlBuilder.cs
@@ -592,7 +592,7 @@ namespace MediaBrowser.Dlna.Didl
icon.InnerText = iconUrlInfo.Url;
element.AppendChild(icon);
- if (!_profile.EnableAlbumArtInDidl)
+ if (!_profile.EnableAlbumArtInDidl && !(item is Photo))
{
return;
}
diff --git a/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj b/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj
index b103d9f5a..6f8cf31d1 100644
--- a/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj
+++ b/MediaBrowser.LocalMetadata/MediaBrowser.LocalMetadata.csproj
@@ -54,6 +54,7 @@
<Compile Include="Parsers\GameXmlParser.cs" />
<Compile Include="Parsers\MovieXmlParser.cs" />
<Compile Include="Parsers\MusicVideoXmlParser.cs" />
+ <Compile Include="Parsers\PlaylistXmlParser.cs" />
<Compile Include="Parsers\SeasonXmlParser.cs" />
<Compile Include="Parsers\SeriesXmlParser.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
@@ -69,6 +70,7 @@
<Compile Include="Providers\MovieXmlProvider.cs" />
<Compile Include="Providers\MusicVideoXmlProvider.cs" />
<Compile Include="Providers\PersonXmlProvider.cs" />
+ <Compile Include="Providers\PlaylistXmlProvider.cs" />
<Compile Include="Providers\SeasonXmlProvider.cs" />
<Compile Include="Providers\SeriesXmlProvider.cs" />
<Compile Include="Providers\TrailerXmlProvider.cs" />
diff --git a/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs
index 85a72cf28..f89e29d54 100644
--- a/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs
+++ b/MediaBrowser.LocalMetadata/Parsers/BoxSetXmlParser.cs
@@ -1,17 +1,14 @@
-using System.Collections.Generic;
-using System.Globalization;
-using System.Xml;
-using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Logging;
+using System.Collections.Generic;
+using System.Xml;
namespace MediaBrowser.LocalMetadata.Parsers
{
public class BoxSetXmlParser : BaseItemXmlParser<BoxSet>
{
- private readonly CultureInfo UsCulture = new CultureInfo("en-US");
-
public BoxSetXmlParser(ILogger logger)
: base(logger)
{
diff --git a/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs
new file mode 100644
index 000000000..83bc6a49e
--- /dev/null
+++ b/MediaBrowser.LocalMetadata/Parsers/PlaylistXmlParser.cs
@@ -0,0 +1,72 @@
+using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Playlists;
+using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.Logging;
+using System.Collections.Generic;
+using System.Xml;
+
+namespace MediaBrowser.LocalMetadata.Parsers
+{
+ public class PlaylistXmlParser : BaseItemXmlParser<Playlist>
+ {
+ public PlaylistXmlParser(ILogger logger)
+ : base(logger)
+ {
+ }
+
+ protected override void FetchDataFromXmlNode(XmlReader reader, Playlist item)
+ {
+ switch (reader.Name)
+ {
+ case "PlaylistItems":
+
+ using (var subReader = reader.ReadSubtree())
+ {
+ FetchFromCollectionItemsNode(subReader, item);
+ }
+ break;
+
+ default:
+ base.FetchDataFromXmlNode(reader, item);
+ break;
+ }
+ }
+
+ private void FetchFromCollectionItemsNode(XmlReader reader, Playlist item)
+ {
+ reader.MoveToContent();
+
+ var list = new List<LinkedChild>();
+
+ while (reader.Read())
+ {
+ if (reader.NodeType == XmlNodeType.Element)
+ {
+ switch (reader.Name)
+ {
+ case "PlaylistItem":
+ {
+ using (var subReader = reader.ReadSubtree())
+ {
+ var child = GetLinkedChild(subReader);
+
+ if (child != null)
+ {
+ list.Add(child);
+ }
+ }
+
+ break;
+ }
+
+ default:
+ reader.Skip();
+ break;
+ }
+ }
+ }
+
+ item.LinkedChildren = list;
+ }
+ }
+}
diff --git a/MediaBrowser.LocalMetadata/Providers/BoxSetXmlProvider.cs b/MediaBrowser.LocalMetadata/Providers/BoxSetXmlProvider.cs
index 871c2bd92..6e40c3594 100644
--- a/MediaBrowser.LocalMetadata/Providers/BoxSetXmlProvider.cs
+++ b/MediaBrowser.LocalMetadata/Providers/BoxSetXmlProvider.cs
@@ -1,10 +1,10 @@
-using System.IO;
-using System.Threading;
-using MediaBrowser.Common.IO;
+using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Providers;
using MediaBrowser.LocalMetadata.Parsers;
using MediaBrowser.Model.Logging;
+using System.IO;
+using System.Threading;
namespace MediaBrowser.LocalMetadata.Providers
{
diff --git a/MediaBrowser.LocalMetadata/Providers/PlaylistXmlProvider.cs b/MediaBrowser.LocalMetadata/Providers/PlaylistXmlProvider.cs
new file mode 100644
index 000000000..2279ae052
--- /dev/null
+++ b/MediaBrowser.LocalMetadata/Providers/PlaylistXmlProvider.cs
@@ -0,0 +1,31 @@
+using MediaBrowser.Common.IO;
+using MediaBrowser.Controller.Playlists;
+using MediaBrowser.Controller.Providers;
+using MediaBrowser.LocalMetadata.Parsers;
+using MediaBrowser.Model.Logging;
+using System.IO;
+using System.Threading;
+
+namespace MediaBrowser.LocalMetadata.Providers
+{
+ class PlaylistXmlProvider : BaseXmlProvider<Playlist>
+ {
+ private readonly ILogger _logger;
+
+ public PlaylistXmlProvider(IFileSystem fileSystem, ILogger logger)
+ : base(fileSystem)
+ {
+ _logger = logger;
+ }
+
+ protected override void Fetch(LocalMetadataResult<Playlist> result, string path, CancellationToken cancellationToken)
+ {
+ new PlaylistXmlParser(_logger).Fetch(result.Item, path, cancellationToken);
+ }
+
+ protected override FileSystemInfo GetXmlFile(ItemInfo info, IDirectoryService directoryService)
+ {
+ return directoryService.GetFile(Path.Combine(info.Path, "playlist.xml"));
+ }
+ }
+}
diff --git a/MediaBrowser.LocalMetadata/Providers/TrailerXmlProvider.cs b/MediaBrowser.LocalMetadata/Providers/TrailerXmlProvider.cs
index db3b2fcf0..7f96f7d96 100644
--- a/MediaBrowser.LocalMetadata/Providers/TrailerXmlProvider.cs
+++ b/MediaBrowser.LocalMetadata/Providers/TrailerXmlProvider.cs
@@ -1,12 +1,12 @@
-using System.Collections.Generic;
-using System.IO;
-using System.Threading;
-using MediaBrowser.Common.IO;
+using MediaBrowser.Common.IO;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Providers;
using MediaBrowser.LocalMetadata.Parsers;
using MediaBrowser.Model.Entities;
using MediaBrowser.Model.Logging;
+using System.Collections.Generic;
+using System.IO;
+using System.Threading;
namespace MediaBrowser.LocalMetadata.Providers
{
diff --git a/MediaBrowser.LocalMetadata/Savers/PlaylistXmlSaver.cs b/MediaBrowser.LocalMetadata/Savers/PlaylistXmlSaver.cs
index cdb3a2500..abc7e3b3f 100644
--- a/MediaBrowser.LocalMetadata/Savers/PlaylistXmlSaver.cs
+++ b/MediaBrowser.LocalMetadata/Savers/PlaylistXmlSaver.cs
@@ -1,6 +1,6 @@
using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Entities.Movies;
using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Playlists;
using System.Collections.Generic;
using System.IO;
using System.Text;
@@ -31,7 +31,7 @@ namespace MediaBrowser.LocalMetadata.Savers
return false;
}
- return item is BoxSet && updateType >= ItemUpdateType.MetadataDownload;
+ return item is Playlist && updateType >= ItemUpdateType.MetadataImport;
}
/// <summary>
@@ -46,7 +46,7 @@ namespace MediaBrowser.LocalMetadata.Savers
builder.Append("<Item>");
- XmlSaverHelpers.AddCommonNodes((BoxSet)item, builder);
+ XmlSaverHelpers.AddCommonNodes((Playlist)item, builder);
builder.Append("</Item>");
diff --git a/MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs b/MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs
index 491592989..a007a95cf 100644
--- a/MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs
+++ b/MediaBrowser.LocalMetadata/Savers/XmlSaverHelpers.cs
@@ -717,7 +717,6 @@ namespace MediaBrowser.LocalMetadata.Savers
{
builder.Append("<" + singularNodeName + ">");
- builder.Append("<Name>" + SecurityElement.Escape(link.ItemName) + "</Name>");
builder.Append("<Type>" + SecurityElement.Escape(link.ItemType) + "</Type>");
if (link.ItemYear.HasValue)
@@ -725,10 +724,7 @@ namespace MediaBrowser.LocalMetadata.Savers
builder.Append("<Year>" + SecurityElement.Escape(link.ItemYear.Value.ToString(UsCulture)) + "</Year>");
}
- if (link.ItemIndexNumber.HasValue)
- {
- builder.Append("<IndexNumber>" + SecurityElement.Escape(link.ItemIndexNumber.Value.ToString(UsCulture)) + "</IndexNumber>");
- }
+ builder.Append("<Path>" + SecurityElement.Escape((link.Path ?? string.Empty)) + "</Path>");
builder.Append("</" + singularNodeName + ">");
}
diff --git a/MediaBrowser.Model/Serialization/IJsonSerializer.cs b/MediaBrowser.Model/Serialization/IJsonSerializer.cs
index 77a14c1e5..cd1e550e5 100644
--- a/MediaBrowser.Model/Serialization/IJsonSerializer.cs
+++ b/MediaBrowser.Model/Serialization/IJsonSerializer.cs
@@ -83,13 +83,5 @@ namespace MediaBrowser.Model.Serialization
/// <returns>System.String.</returns>
/// <exception cref="System.ArgumentNullException">obj</exception>
string SerializeToString(object obj);
-
- /// <summary>
- /// Serializes to bytes.
- /// </summary>
- /// <param name="obj">The obj.</param>
- /// <returns>System.Byte[][].</returns>
- /// <exception cref="System.ArgumentNullException">obj</exception>
- byte[] SerializeToBytes(object obj);
}
} \ No newline at end of file
diff --git a/MediaBrowser.Model/Serialization/IXmlSerializer.cs b/MediaBrowser.Model/Serialization/IXmlSerializer.cs
index 177377350..eb23d784f 100644
--- a/MediaBrowser.Model/Serialization/IXmlSerializer.cs
+++ b/MediaBrowser.Model/Serialization/IXmlSerializer.cs
@@ -42,12 +42,5 @@ namespace MediaBrowser.Model.Serialization
/// <param name="buffer">The buffer.</param>
/// <returns>System.Object.</returns>
object DeserializeFromBytes(Type type, byte[] buffer);
-
- /// <summary>
- /// Serializes to bytes.
- /// </summary>
- /// <param name="obj">The obj.</param>
- /// <returns>System.Byte[][].</returns>
- byte[] SerializeToBytes(object obj);
}
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs b/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs
index 6e0b654fd..90b77828b 100644
--- a/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs
+++ b/MediaBrowser.Server.Implementations/HttpServer/HttpListenerHost.cs
@@ -152,7 +152,7 @@ namespace MediaBrowser.Server.Implementations.HttpServer
HostContext.Config.HandlerFactoryPath = ListenerRequest.GetHandlerPathIfAny(UrlPrefixes.First());
_listener = NativeWebSocket.IsSupported
- ? _listener = new HttpListenerServer(_logger)
+ ? _listener = new WebSocketSharpListener(_logger)
: _listener = new WebSocketSharpListener(_logger);
_listener.WebSocketHandler = WebSocketHandler;
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json
index 4b2e7ba1d..c99a00ef0 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ar.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Unknown language",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "Select",
"ButtonNew": "New",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Name:",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json
index d3bdf0bbb..e696238eb 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ca.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Unknown language",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "Select",
"ButtonNew": "New",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Name:",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json
index a853a39eb..38fc9135f 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/cs.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "St\u00e1hnout",
"LabelUnknownLanaguage": "Unknown language",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "Vybrat",
"ButtonNew": "Nov\u00e9",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Jm\u00e9no:",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/da.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/da.json
index 8c13b22b7..32b83f77e 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/da.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/da.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Unknown language",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "V\u00e6lg",
"ButtonNew": "Ny",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Navn:",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/de.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/de.json
index c871cae0a..6c9735704 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/de.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/de.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Unknown language",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "Ausw\u00e4hlen",
"ButtonNew": "Neu",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Name:",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/el.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/el.json
index 3514a060a..a3e4cc1ee 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/el.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/el.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Unknown language",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "Select",
"ButtonNew": "New",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Name:",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json
index da4787718..d6911ac4d 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/en_GB.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Unknown language",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "Select",
"ButtonNew": "New",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Name:",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json
index ff77db14b..98efe6cef 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/en_US.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Unknown language",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "Select",
"ButtonNew": "New",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Name:",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/es.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/es.json
index f5f30360d..b540e2b3c 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/es.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/es.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Acceso remoto: {0}",
"LabelRunningOnPort": "Ejecut\u00e1ndose en el puerto {0}.",
- "LabelRunningOnPorts": "Ejecut\u00e1ndose en los puertos {0} y {1}.",
"HeaderLatestFromChannel": "Lo \u00faltimo de {0}",
"ButtonDownload": "Descargar",
"LabelUnknownLanaguage": "Idioma desconocido",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "Seleccionar",
"ButtonNew": "Nuevo",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Nombre:",
+ "ButtonSubmit": "Enviar",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json
index d9855c52f..3bf3f48e2 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/es_MX.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Acceso remoto: {0}",
"LabelRunningOnPort": "Ejecutando en el puerto: {0}.",
- "LabelRunningOnPorts": "Ejecutando en los puertos {0} y {1}.",
"HeaderLatestFromChannel": "M\u00e1s Recientes de {0}",
"ButtonDownload": "Descargar",
"LabelUnknownLanaguage": "Idioma desconocido",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "EN VIVO",
"LabelNewProgram": "NUEVO",
"LabelPremiereProgram": "ESTRENO",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Cambiar tipo de carpeta",
"HeaderChangeFolderTypeHelp": "Para cambiar el tipo de carpeta, por favor elimine y reconstruya la colecci\u00f3n con el nuevo tipo.",
"HeaderAlert": "Alerta",
@@ -319,5 +319,14 @@
"ButtonSelect": "Seleccionar",
"ButtonNew": "Nuevo",
"MessageInternetExplorerWebm": "Para mejores resultados con Internet Explorer por favor instale el complemento WebM para IE.",
- "HeaderVideoError": "Error de Video"
+ "HeaderVideoError": "Error de Video",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Nombre:",
+ "ButtonSubmit": "Enviar",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json
index 5086dcfac..002390edc 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/fr.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Vid\u00e9o: {0}",
"LabelRemoteAccessUrl": "Acc\u00e8s distant: {0}",
"LabelRunningOnPort": "En ex\u00e9cution sur le port: {0}.",
- "LabelRunningOnPorts": "En ex\u00e9cution sur le port: {0} et {1}.",
"HeaderLatestFromChannel": "Les plus r\u00e9cents de {0}",
"ButtonDownload": "T\u00e9l\u00e9chargement",
"LabelUnknownLanaguage": "Langue inconnue",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "DIRECT",
"LabelNewProgram": "NOUVEAUTE",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Modifier le type de dossier",
"HeaderChangeFolderTypeHelp": "Pour modifier le type de dossier, merci de supprimer et reconstruire la collection avec le nouveau type.",
"HeaderAlert": "Alerte",
@@ -319,5 +319,14 @@
"ButtonSelect": "S\u00e9lectionner",
"ButtonNew": "Nouveau",
"MessageInternetExplorerWebm": "Pour de meilleurs r\u00e9sultats avec Internet Explorer, merci d'installer le plugin WebM pour IE.",
- "HeaderVideoError": "Erreur vid\u00e9o"
+ "HeaderVideoError": "Erreur vid\u00e9o",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Nom:",
+ "ButtonSubmit": "Soumettre",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/he.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/he.json
index d5202486f..09445ed64 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/he.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/he.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Unknown language",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "\u05d1\u05d7\u05e8",
"ButtonNew": "\u05d7\u05d3\u05e9",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "\u05e9\u05dd:",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/it.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/it.json
index 463b079e9..32df58847 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/it.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/it.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Accesso remoto: {0}",
"LabelRunningOnPort": "Avviato su porta {0}",
- "LabelRunningOnPorts": "Avviato su porte {0} e {1}.",
"HeaderLatestFromChannel": "Ultime da {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "lingua sconosciuta",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "Nuovo",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Cambia il tipo di cartella",
"HeaderChangeFolderTypeHelp": "Per cambiare il tipo di cartella, rimuovere e ricostruire la collezione con il nuovo tipo.",
"HeaderAlert": "Avviso",
@@ -319,5 +319,14 @@
"ButtonSelect": "Seleziona",
"ButtonNew": "Nuovo",
"MessageInternetExplorerWebm": "Se utilizzi internet explorer installa WebM plugin",
- "HeaderVideoError": "Video Error"
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Nome:",
+ "ButtonSubmit": "Invia",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json
index 3c1748ef1..ad4ba7dc0 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/javascript.json
@@ -284,6 +284,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -323,7 +324,7 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "Select",
"ButtonNew": "New",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
"HeaderVideoError": "Video Error",
"ButtonAddToPlaylist": "Add to playlist",
"HeaderAddToPlaylist": "Add to Playlist",
@@ -331,5 +332,7 @@
"ButtonSubmit": "Submit",
"LabelSelectPlaylist": "Playlist:",
"OptionNewPlaylist": "New playlist...",
- "MessageAddedToPlaylistSuccess": "Ok"
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
}
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json
index a2d284938..212715179 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/kk.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "\u0411\u0435\u0439\u043d\u0435: {0}",
"LabelRemoteAccessUrl": "\u049a\u0430\u0448\u044b\u049b\u0442\u0430\u043d \u049b\u0430\u0442\u044b\u043d\u0430\u0441\u0443: {0}",
"LabelRunningOnPort": "{0} \u043f\u043e\u0440\u0442\u044b\u043d\u0434\u0430 \u0436\u04b1\u043c\u044b\u0441 \u0456\u0441\u0442\u0435\u0439\u0434\u0456.",
- "LabelRunningOnPorts": "{0} \u0436\u04d9\u043d\u0435 {1} \u043f\u043e\u0440\u0442\u0442\u0430\u0440\u044b\u043d\u0434\u0430 \u0436\u04b1\u043c\u044b\u0441 \u0456\u0441\u0442\u0435\u0439\u0434\u0456.",
"HeaderLatestFromChannel": "\u0415\u04a3 \u043a\u0435\u0439\u0456\u043d\u0433\u0456 {0}",
"ButtonDownload": "\u0416\u04af\u043a\u0442\u0435\u043f \u0430\u043b\u0443",
"LabelUnknownLanaguage": "\u0411\u0435\u043b\u0433\u0456\u0441\u0456\u0437 \u0442\u0456\u043b",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "\u0422\u0406\u041a\u0415\u041b\u0415\u0419 \u042d\u0424\u0418\u0420",
"LabelNewProgram": "\u0416\u0410\u04a2\u0410",
"LabelPremiereProgram": "\u0422\u04b0\u0421\u0410\u0423\u041a\u0415\u0421\u0415\u0420\u0406",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "\u049a\u0430\u043b\u0442\u0430 \u0442\u04af\u0440\u0456\u043d \u04e9\u0437\u0433\u0435\u0440\u0442\u0443",
"HeaderChangeFolderTypeHelp": "\u049a\u0430\u043b\u0442\u0430 \u0442\u04af\u0440\u0456\u043d \u04e9\u0437\u0433\u0435\u0440\u0442\u0443 \u04af\u0448\u0456\u043d, \u0430\u043b\u0430\u0441\u0442\u0430\u04a3\u044b\u0437 \u0436\u04d9\u043d\u0435 \u0436\u0438\u043d\u0430\u049b\u0442\u044b \u0436\u0430\u04a3\u0430 \u0442\u04af\u0440\u0456\u043c\u0435\u043d \u049b\u0430\u0439\u0442\u0430 \u049b\u04b1\u0440\u044b\u04a3\u044b\u0437.",
"HeaderAlert": "\u0415\u0441\u043a\u0435\u0440\u0442\u0443",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "\u041e\u0439\u043d\u0430\u0442\u049b\u044b\u0448\u0442\u044b \u0442\u0430\u04a3\u0434\u0430\u0443:",
"ButtonSelect": "\u0411\u04e9\u043b\u0435\u043a\u0442\u0435\u0443",
"ButtonNew": "\u0416\u0430\u0441\u0430\u0443",
- "MessageInternetExplorerWebm": "Internet Explorer \u0430\u0440\u049b\u044b\u043b\u044b \u0435\u04a3 \u0436\u0430\u049b\u0441\u044b \u043d\u04d9\u0442\u0438\u0436\u0435\u043b\u0435\u0440 \u04af\u0448\u0456\u043d IE \u0448\u043e\u043b\u0493\u044b\u0448\u044b\u043d\u0430 \u0430\u0440\u043d\u0430\u043b\u0493\u0430\u043d WebM \u043f\u043b\u0430\u0433\u0438\u043d\u0456\u043d \u043e\u0440\u043d\u0430\u0442\u044b\u04a3\u044b\u0437.",
- "HeaderVideoError": "\u0411\u0435\u0439\u043d\u0435 \u049b\u0430\u0442\u0435\u0441\u0456"
+ "MessageInternetExplorerWebm": "Internet Explorer \u0430\u0440\u049b\u044b\u043b\u044b \u0435\u04a3 \u0436\u0430\u049b\u0441\u044b \u043d\u04d9\u0442\u0438\u0436\u0435\u043b\u0435\u0440\u0433\u0435 \u0438\u0435 \u0431\u043e\u043b\u0443 \u04af\u0448\u0456\u043d WebM \u043e\u0439\u043d\u0430\u0442\u0443 \u043f\u043b\u0430\u0433\u0438\u043d\u0456\u043d \u043e\u0440\u043d\u0430\u0442\u044b\u04a3\u044b\u0437.",
+ "HeaderVideoError": "\u0411\u0435\u0439\u043d\u0435 \u049b\u0430\u0442\u0435\u0441\u0456",
+ "ButtonAddToPlaylist": "\u041e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c\u0456\u043d\u0435 \u04af\u0441\u0442\u0435\u0443",
+ "HeaderAddToPlaylist": "\u041e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c\u0456\u043d\u0435 \u04af\u0441\u0442\u0435\u0443",
+ "LabelName": "\u0410\u0442\u044b:",
+ "ButtonSubmit": "\u0416\u0456\u0431\u0435\u0440\u0443",
+ "LabelSelectPlaylist": "\u041e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c\u0456:",
+ "OptionNewPlaylist": "\u0416\u0430\u04a3\u0430 \u043e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c\u0456...",
+ "MessageAddedToPlaylistSuccess": "\u0416\u0430\u0440\u0430\u0439\u0434\u044b",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json
index 9c7d90092..b9ac54e51 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ms.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Unknown language",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "Select",
"ButtonNew": "New",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Name:",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json
index b16e5e101..02d0820c2 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/nb.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Unknown language",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "Select",
"ButtonNew": "New",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Navn",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json
index 37cff9888..7a28e58e7 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/nl.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Toegang op afstand: {0}",
"LabelRunningOnPort": "Draait op poort {0}.",
- "LabelRunningOnPorts": "Draait op poort {0} en {1}.",
"HeaderLatestFromChannel": "Laatste van {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Onbekende taal",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NIEUW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Verander Maptype",
"HeaderChangeFolderTypeHelp": "Als u het type map wilt wijzigen, verwijder het dan en maak dan een nieuwe collectie met het nieuwe type.",
"HeaderAlert": "Waarschuwing",
@@ -319,5 +319,14 @@
"ButtonSelect": "Selecteer",
"ButtonNew": "Nieuw",
"MessageInternetExplorerWebm": "Voor het beste resultaat met Internet Explorer installeert u de WebM plugin voor IE.",
- "HeaderVideoError": "Video Fout"
+ "HeaderVideoError": "Video Fout",
+ "ButtonAddToPlaylist": "Toevoegen aan afspeellijst",
+ "HeaderAddToPlaylist": "Toevoegen aan afspeellijst",
+ "LabelName": "Naam:",
+ "ButtonSubmit": "Uitvoeren",
+ "LabelSelectPlaylist": "Afspeellijst:",
+ "OptionNewPlaylist": "Nieuwe afspeellijst...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/pl.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/pl.json
index 44ac4c93f..3952295b7 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/pl.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/pl.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Unknown language",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "Select",
"ButtonNew": "New",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Name:",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json
index 5e667f3d0..7da7aa2f5 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_BR.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "V\u00eddeo: {0}",
"LabelRemoteAccessUrl": "Acesso Remoto: {0}",
"LabelRunningOnPort": "Executando na porta {0}.",
- "LabelRunningOnPorts": "Dispon\u00edvel nas portas {0} e {1}.",
"HeaderLatestFromChannel": "Mais recentes de {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Idioma desconhecido",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "AO VIVO",
"LabelNewProgram": "NOVO",
"LabelPremiereProgram": "ESTR\u00c9IA",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Alterar Tipo de Pasta",
"HeaderChangeFolderTypeHelp": "Para alterar o tipo de pasta, por favor remova e reconstrua a cole\u00e7\u00e3o com o novo tipo.",
"HeaderAlert": "Alerta",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Selecione onde reproduzir:",
"ButtonSelect": "Selecionar",
"ButtonNew": "Nova",
- "MessageInternetExplorerWebm": "Para melhores resultados com o Internet Explorer, por favor instale o plugin WebM para IE.",
- "HeaderVideoError": "Erro de V\u00eddeo"
+ "MessageInternetExplorerWebm": "Para melhores resultados com o Internet Explorer, por favor instale o plugin de reprodu\u00e7\u00e3o WebM.",
+ "HeaderVideoError": "Erro de V\u00eddeo",
+ "ButtonAddToPlaylist": "Adicionar \u00e0 lista de reprodu\u00e7\u00e3o",
+ "HeaderAddToPlaylist": "Adicionar \u00e0 Lista de Reprodu\u00e7\u00e3o",
+ "LabelName": "Nome:",
+ "ButtonSubmit": "Enviar",
+ "LabelSelectPlaylist": "Lista de Reprodu\u00e7\u00e3o:",
+ "OptionNewPlaylist": "Nova lista de reprodu\u00e7\u00e3o...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json
index 50391496b..6d29ffa05 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/pt_PT.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Unknown language",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "Selecionar",
"ButtonNew": "Novo",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Nome:",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json
index 3fd62bed5..1bd96aff1 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/ru.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "\u0412\u0438\u0434\u0435\u043e: {0}",
"LabelRemoteAccessUrl": "\u0414\u043b\u044f \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430: {0}",
"LabelRunningOnPort": "\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043f\u043e\u0440\u0442\u0443 {0}.",
- "LabelRunningOnPorts": "\u0420\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 \u043f\u043e\u0440\u0442\u0430\u0445 {0} \u0438 {1}.",
"HeaderLatestFromChannel": "\u041d\u043e\u0432\u0438\u043d\u043a\u0438 \u0438\u0437 {0}",
"ButtonDownload": "\u0417\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c",
"LabelUnknownLanaguage": "\u041d\u0435\u043e\u043f\u043e\u0437\u043d\u0430\u043d\u043d\u044b\u0439 \u044f\u0437\u044b\u043a",
@@ -193,7 +192,7 @@
"LabelCurrentPath": "\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u043f\u0443\u0442\u044c:",
"HeaderSelectMediaPath": "\u0412\u044b\u0431\u043e\u0440 \u043f\u0443\u0442\u0438 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044f",
"ButtonNetwork": "\u0421\u0435\u0442\u044c",
- "MessageDirectoryPickerInstruction": "\u0421\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u0443\u0442\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u0432\u043e\u0434\u0438\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u0421\u0435\u0442\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u0431\u043e\u0439 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, {0} \u0438\u043b\u0438 {1}.",
+ "MessageDirectoryPickerInstruction": "\u0421\u0435\u0442\u0435\u0432\u044b\u0435 \u043f\u0443\u0442\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0432\u0432\u043e\u0434\u0438\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e, \u0432 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u043f\u0440\u0438 \u043d\u0430\u0436\u0430\u0442\u0438\u0438 \u043a\u043d\u043e\u043f\u043a\u0438 \u0421\u0435\u0442\u044c \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u0431\u043e\u0439 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: {0} \u0438\u043b\u0438 {1}.",
"HeaderMenu": "\u041c\u0435\u043d\u044e",
"ButtonOpen": "\u041e\u0442\u043a\u0440\u044b\u0442\u044c",
"ButtonOpenInNewTab": "\u0412 \u043d\u043e\u0432\u043e\u0439 \u0432\u043a\u043b\u0430\u0434\u043a\u0435",
@@ -246,7 +245,7 @@
"ButtonPreviousPage": "\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430",
"ButtonMoveLeft": "\u0414\u0432\u0438\u0433\u0430\u0442\u044c \u0432\u043b\u0435\u0432\u043e",
"ButtonMoveRight": "\u0414\u0432\u0438\u0433\u0430\u0442\u044c \u0432\u043f\u0440\u0430\u0432\u043e",
- "ButtonBrowseOnlineImages": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u043d\u043b\u0430\u0439\u043d \u0440\u0438\u0441\u0443\u043d\u043a\u0438",
+ "ButtonBrowseOnlineImages": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0438\u0441\u0443\u043d\u043a\u0438 \u0432 \u0441\u0435\u0442\u0438",
"HeaderDeleteItem": "\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430",
"ConfirmDeleteItem": "\u0412\u044b \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0445\u043e\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0438\u0437 \u043c\u0435\u0434\u0438\u0430\u0442\u0435\u043a\u0438?",
"MessagePleaseEnterNameOrId": "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0438\u043b\u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 ID.",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "\u041f\u0420\u042f\u041c\u041e\u0419 \u042d\u0424\u0418\u0420",
"LabelNewProgram": "\u041d\u041e\u0412\u041e\u0415",
"LabelPremiereProgram": "\u041f\u0420\u0415\u041c\u042c\u0415\u0420\u0410",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "\u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0442\u0438\u043f\u0430 \u043f\u0430\u043f\u043a\u0438",
"HeaderChangeFolderTypeHelp": "\u0427\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u0442\u0438\u043f \u043f\u0430\u043f\u043a\u0438, \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u0438 \u043f\u0435\u0440\u0435\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e \u0441 \u043d\u043e\u0432\u044b\u043c \u0442\u0438\u043f\u043e\u043c.",
"HeaderAlert": "\u041e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0435",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "\u0412\u044b\u0431\u043e\u0440 \u043f\u043b\u0435\u0439\u0435\u0440\u0430:",
"ButtonSelect": "\u0412\u044b\u0431\u0440\u0430\u0442\u044c",
"ButtonNew": "\u0421\u043e\u0437\u0434\u0430\u0442\u044c",
- "MessageInternetExplorerWebm": "\u0414\u043b\u044f \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0438\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c Internet Explorer, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u043b\u0430\u0433\u0438\u043d WebM \u0434\u043b\u044f IE.",
- "HeaderVideoError": "\u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u0438\u0434\u0435\u043e"
+ "MessageInternetExplorerWebm": "\u0414\u043b\u044f \u0434\u043e\u0441\u0442\u0438\u0436\u0435\u043d\u0438\u044f \u043d\u0430\u0438\u043b\u0443\u0447\u0448\u0438\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0432 Internet Explorer, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u043b\u0430\u0433\u0438\u043d \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f WebM.",
+ "HeaderVideoError": "\u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u0438\u0434\u0435\u043e",
+ "ButtonAddToPlaylist": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f",
+ "HeaderAddToPlaylist": "\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f",
+ "LabelName": "\u0418\u043c\u044f:",
+ "ButtonSubmit": "\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c",
+ "LabelSelectPlaylist": "\u0421\u043f\u0438\u0441\u043e\u043a \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f:",
+ "OptionNewPlaylist": "\u041d\u043e\u0432\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f...",
+ "MessageAddedToPlaylistSuccess": "\u041e\u041a",
+ "ButtonViewSeriesRecording": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c \u0441\u0435\u0440\u0438\u0430\u043b\u0430",
+ "ValueOriginalAirDate": "\u0414\u0430\u0442\u0430 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044d\u0444\u0438\u0440\u0430: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json
index 4af6f9272..43a8afcdc 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/sv.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Fj\u00e4rranslutning: {0}",
"LabelRunningOnPort": "Anv\u00e4nder port {0}.",
- "LabelRunningOnPorts": "Anv\u00e4nder port {0} och {1}.",
"HeaderLatestFromChannel": "Senaste fr\u00e5n {0}",
"ButtonDownload": "Ladda ned",
"LabelUnknownLanaguage": "Ok\u00e4nt spr\u00e5k",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NY",
"LabelPremiereProgram": "PREMI\u00c4R",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "\u00c4ndra mapptyp",
"HeaderChangeFolderTypeHelp": "F\u00f6r att \u00e4ndra mapptyp, ta bort den existerande och skapa en ny av den \u00f6nskade typen.",
"HeaderAlert": "Varning",
@@ -319,5 +319,14 @@
"ButtonSelect": "V\u00e4lj",
"ButtonNew": "Nytillkommet",
"MessageInternetExplorerWebm": "F\u00f6r b\u00e4sta resultat med Internet Explorer, installera WebM-till\u00e4gget f\u00f6r IE.",
- "HeaderVideoError": "Videofel"
+ "HeaderVideoError": "Videofel",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "Namn:",
+ "ButtonSubmit": "Bekr\u00e4fta",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/tr.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/tr.json
index b65d112e1..40af8daf7 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/tr.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/tr.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Unknown language",
@@ -253,7 +252,7 @@
"MessageValueNotCorrect": "The value entered is not correct. Please try again.",
"MessageItemSaved": "Item saved.",
"OptionEnded": "Bitmi\u015f",
- "OptionContinuing": "Continuing",
+ "OptionContinuing": "Topluluk",
"OptionOff": "Off",
"OptionOn": "On",
"HeaderFields": "Fields",
@@ -268,7 +267,7 @@
"OptionBackdrops": "Backdrops",
"OptionImages": "Images",
"OptionKeywords": "Keywords",
- "OptionTags": "Tags",
+ "OptionTags": "Etiketler",
"OptionStudios": "Studios",
"OptionName": "Name",
"OptionOverview": "Overview",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "Se\u00e7im",
"ButtonNew": "Yeni",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "\u0130sim",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json
index 3440a8ab0..ce80778b7 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/vi.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Unknown language",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "L\u1ef1a ch\u1ecdn",
"ButtonNew": "M\u1edbi",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "T\u00ean:",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json b/MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json
index 763337f43..35db67ea2 100644
--- a/MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json
+++ b/MediaBrowser.Server.Implementations/Localization/JavaScript/zh_TW.json
@@ -178,7 +178,6 @@
"LabelVideoCodec": "Video: {0}",
"LabelRemoteAccessUrl": "Remote access: {0}",
"LabelRunningOnPort": "Running on port {0}.",
- "LabelRunningOnPorts": "Running on ports {0} and {1}.",
"HeaderLatestFromChannel": "Latest from {0}",
"ButtonDownload": "Download",
"LabelUnknownLanaguage": "Unknown language",
@@ -282,6 +281,7 @@
"LabelLiveProgram": "LIVE",
"LabelNewProgram": "NEW",
"LabelPremiereProgram": "PREMIERE",
+ "LabelHDProgram": "HD",
"HeaderChangeFolderType": "Change Folder Type",
"HeaderChangeFolderTypeHelp": "To change the folder type, please remove and rebuild the collection with the new type.",
"HeaderAlert": "Alert",
@@ -318,6 +318,15 @@
"HeaderSelectPlayer": "Select Player:",
"ButtonSelect": "\u9078\u64c7",
"ButtonNew": "\u5275\u5efa",
- "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM plugin for IE.",
- "HeaderVideoError": "Video Error"
+ "MessageInternetExplorerWebm": "For best results with Internet Explorer please install the WebM playback plugin.",
+ "HeaderVideoError": "Video Error",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "HeaderAddToPlaylist": "Add to Playlist",
+ "LabelName": "\u540d\u5b57\uff1a",
+ "ButtonSubmit": "Submit",
+ "LabelSelectPlaylist": "Playlist:",
+ "OptionNewPlaylist": "New playlist...",
+ "MessageAddedToPlaylistSuccess": "Ok",
+ "ButtonViewSeriesRecording": "View series recording",
+ "ValueOriginalAirDate": "Original air date: {0}"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/ar.json b/MediaBrowser.Server.Implementations/Localization/Server/ar.json
index 056b31c92..b37c57670 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ar.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ar.json
@@ -794,6 +794,8 @@
"TabNextUp": "Next Up",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/ca.json b/MediaBrowser.Server.Implementations/Localization/Server/ca.json
index ac4c13b01..dcd6122fe 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ca.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ca.json
@@ -88,7 +88,7 @@
"LabelSelectUsers": "Select users:",
"ButtonUpload": "Upload",
"HeaderUploadNewImage": "Upload New Image",
- "LabelDropImageHere": "Drop Image Here",
+ "LabelDropImageHere": "Drop image here",
"ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG\/PNG only.",
"MessageNothingHere": "Nothing here.",
"MessagePleaseEnsureInternetMetadata": "Please ensure downloading of internet metadata is enabled.",
@@ -794,6 +794,8 @@
"TabNextUp": "Next Up",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/cs.json b/MediaBrowser.Server.Implementations/Localization/Server/cs.json
index f591af735..181c941fe 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/cs.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/cs.json
@@ -794,6 +794,8 @@
"TabNextUp": "Next Up",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Zam\u00edtnout",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Zav\u0159\u00edt",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/da.json b/MediaBrowser.Server.Implementations/Localization/Server/da.json
index e32fb18f8..86ad2e9ee 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/da.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/da.json
@@ -794,6 +794,8 @@
"TabNextUp": "Next Up",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/de.json b/MediaBrowser.Server.Implementations/Localization/Server/de.json
index ef7b00c35..af7ef85fe 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/de.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/de.json
@@ -794,6 +794,8 @@
"TabNextUp": "Als N\u00e4chstes",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Willkommen zum Media Browser Web Client",
"ButtonDismiss": "Verwerfen",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/el.json b/MediaBrowser.Server.Implementations/Localization/Server/el.json
index eb0cd1b87..c45308d03 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/el.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/el.json
@@ -794,6 +794,8 @@
"TabNextUp": "Next Up",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/en_GB.json b/MediaBrowser.Server.Implementations/Localization/Server/en_GB.json
index 43c9bd211..8d1fc6a59 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/en_GB.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/en_GB.json
@@ -88,7 +88,7 @@
"LabelSelectUsers": "Select users:",
"ButtonUpload": "Upload",
"HeaderUploadNewImage": "Upload New Image",
- "LabelDropImageHere": "Drop Image Here",
+ "LabelDropImageHere": "Drop image here",
"ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG\/PNG only.",
"MessageNothingHere": "Nothing here.",
"MessagePleaseEnsureInternetMetadata": "Please ensure downloading of internet metadata is enabled.",
@@ -794,6 +794,8 @@
"TabNextUp": "Next Up",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/en_US.json b/MediaBrowser.Server.Implementations/Localization/Server/en_US.json
index a0238b020..8c931ea3b 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/en_US.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/en_US.json
@@ -88,7 +88,7 @@
"LabelSelectUsers": "Select users:",
"ButtonUpload": "Upload",
"HeaderUploadNewImage": "Upload New Image",
- "LabelDropImageHere": "Drop Image Here",
+ "LabelDropImageHere": "Drop image here",
"ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG\/PNG only.",
"MessageNothingHere": "Nothing here.",
"MessagePleaseEnsureInternetMetadata": "Please ensure downloading of internet metadata is enabled.",
@@ -794,6 +794,8 @@
"TabNextUp": "Next Up",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/es.json b/MediaBrowser.Server.Implementations/Localization/Server/es.json
index e4d008631..31565de40 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/es.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/es.json
@@ -794,6 +794,8 @@
"TabNextUp": "Siguiendo",
"MessageNoMovieSuggestionsAvailable": "No hay sugerencias de pel\u00edculas disponibles. Comience ver y calificar sus pel\u00edculas y vuelva para ver las recomendaciones.",
"MessageNoCollectionsAvailable": "Colecciones le permitir\u00e1 disfrutar de grupos personalizados de Pel\u00edculas, Series, Discos, Libros y Juegos. Haga click en el bot\u00f3n nuevo para empezar a crear Colecciones.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Vienvenido al Cliente Web de Media Browser",
"ButtonDismiss": "Descartar",
"MessageLearnHowToCustomize": "Aprenda c\u00f3mo personalizar esta p\u00e1gina a sus propios gustos personales. Haga clic en su icono de usuario en la esquina superior derecha de la pantalla para ver y actualizar sus preferencias.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Cerrar",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/es_MX.json b/MediaBrowser.Server.Implementations/Localization/Server/es_MX.json
index bec77ac61..2f5219316 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/es_MX.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/es_MX.json
@@ -794,6 +794,8 @@
"TabNextUp": "A Continuaci\u00f3n",
"MessageNoMovieSuggestionsAvailable": "No hay sugerencias de pel\u00edculas disponibles en este momento. Comienza a ver y a calificar tus pel\u00edculas, y regresa para ver tus recomendaciones.",
"MessageNoCollectionsAvailable": "Las Colecciones te permiten disfrutar de grupos personalizados de Pel\u00edculas, Series, \u00c1lbumes, Libros y Juegos. Da clic en el bot\u00f3n \"Nuevo\" para empezar a crear colecciones.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Bienvenido al Cliente Web de Media Browser",
"ButtonDismiss": "Descartar",
"MessageLearnHowToCustomize": "Aprenda c\u00f3mo personalizar esta p\u00e1gina a sus gustos personales. Haga clic en su icono de usuario en la esquina superior derecha de la pantalla para ver y actualizar sus preferencias.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Transmisi\u00f3n en vivo por Http",
"LabelContext": "Contexto:",
"OptionContextStreaming": "Transmisi\u00f3n",
- "OptionContextStatic": "Sinc."
+ "OptionContextStatic": "Sinc.",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Cerrar",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/fr.json b/MediaBrowser.Server.Implementations/Localization/Server/fr.json
index 4626f659b..914dc5858 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/fr.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/fr.json
@@ -794,6 +794,8 @@
"TabNextUp": "Prochains \u00e0 voir",
"MessageNoMovieSuggestionsAvailable": "Aucune suggestion de film n'est actuellement disponible. Commencez \u00e0 regarder et noter vos films pour avoir des suggestions.",
"MessageNoCollectionsAvailable": "Les Collections permettent le groupement de films, S\u00e9ries, Albums, Livres et Jeux. Cliquer sur \"Nouveau\" pour commencer la cr\u00e9ation des Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Bienvenue au client Web Media Browser",
"ButtonDismiss": "Annuler",
"MessageLearnHowToCustomize": "Apprenez comment personnaliser cette page selon vos propres go\u00fbts. S\u00e9lectionnez votre ic\u00f4ne d'utilisateur dans le coin en haut, \u00e0 droite de l'\u00e9cran pour visionner et mettre \u00e0 jour vos pr\u00e9f\u00e9rences. ",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Fermer",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/he.json b/MediaBrowser.Server.Implementations/Localization/Server/he.json
index a44b45ae0..6491891e0 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/he.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/he.json
@@ -794,6 +794,8 @@
"TabNextUp": "Next Up",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/it.json b/MediaBrowser.Server.Implementations/Localization/Server/it.json
index 0aa4a2731..f3351b33c 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/it.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/it.json
@@ -339,7 +339,7 @@
"LiveTvPluginRequiredHelp": "Installa un servizio disponibile, come Next Pvr or ServerWMC.",
"LabelCustomizeOptionsPerMediaType": "Personalizza per il tipo di supporto:",
"OptionDownloadThumbImage": "Foto",
- "OptionDownloadMenuImage": "Menu",
+ "OptionDownloadMenuImage": "Men\u00f9",
"OptionDownloadLogoImage": "Logo",
"OptionDownloadBoxImage": "Box",
"OptionDownloadDiscImage": "Disco",
@@ -794,6 +794,8 @@
"TabNextUp": "Da vedere",
"MessageNoMovieSuggestionsAvailable": "Nessun suggerimento di film sono attualmente disponibili. Iniziare a guardare e valutare i vostri film, e poi tornare per visualizzare le tue segnalazioni.",
"MessageNoCollectionsAvailable": "Collezioni permettono di godere di raggruppamenti personalizzati di film, serie, album, libri e giochi. Fare clic sul pulsante Nuovo per avviare la creazione di collezioni.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Benvenuti nel Media Browser Web client",
"ButtonDismiss": "Dismetti",
"MessageLearnHowToCustomize": "Ulteriori informazioni su come personalizzare questa pagina ai tuoi gusti personali. Fare clic sull'icona utente in alto a destra dello schermo per visualizzare e aggiornare le vostre preferenze.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Contenuto:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sinc"
+ "OptionContextStatic": "Sinc",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Chiudi",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/kk.json b/MediaBrowser.Server.Implementations/Localization/Server/kk.json
index 718c5b96e..4e8d46ba2 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/kk.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/kk.json
@@ -589,7 +589,7 @@
"NotificationOptionTaskFailed": "\u0416\u043e\u0441\u043f\u0430\u0440\u043b\u0430\u0493\u0430\u043d \u0442\u0430\u043f\u0441\u044b\u0440\u043c\u0430 \u0441\u04d9\u0442\u0441\u0456\u0437\u0434\u0456\u0433\u0456",
"NotificationOptionInstallationFailed": "\u041e\u0440\u043d\u0430\u0442\u0443 \u0441\u04d9\u0442\u0441\u0456\u0437\u0434\u0456\u0433\u0456",
"NotificationOptionNewLibraryContent": "\u0416\u0430\u04a3\u0430 \u043c\u0430\u0437\u043c\u04b1\u043d \u04af\u0441\u0442\u0435\u043b\u0433\u0435\u043d",
- "NotificationOptionNewLibraryContentMultiple": "\u0416\u0430\u04a3\u0430 \u043c\u0430\u0437\u043c\u04b1\u043d \u049b\u043e\u0441\u044b\u043b\u0434\u044b (\u0431\u0456\u0440\u043d\u0435\u0448\u0435)",
+ "NotificationOptionNewLibraryContentMultiple": "\u0416\u0430\u04a3\u0430 \u043c\u0430\u0437\u043c\u04b1\u043d \u049b\u043e\u0441\u044b\u043b\u0434\u044b (\u043a\u04e9\u043f\u0442\u0435\u0433\u0435\u043d)",
"SendNotificationHelp": "\u0425\u0430\u0431\u0430\u0440\u043b\u0430\u043d\u0434\u044b\u0440\u0443\u043b\u0430\u0440 \u0431\u0430\u049b\u044b\u043b\u0430\u0443 \u0442\u0430\u049b\u0442\u0430\u0441\u044b\u043d\u0434\u0430\u0493\u044b \u04d9\u0434\u0435\u043f\u043a\u0456 \u043a\u0456\u0440\u0456\u0441 \u0436\u04d9\u0448\u0456\u0433\u0456\u043d\u0435 \u0436\u0435\u0442\u043a\u0456\u0437\u0456\u043b\u0435\u0434\u0456. \u049a\u043e\u0441\u044b\u043c\u0448\u0430 \u0445\u0430\u0431\u0430\u0440\u043b\u0430\u043d\u0434\u044b\u0440\u0443 \u049b\u04b1\u0440\u0430\u043b\u0434\u0430\u0440\u044b\u043d \u043e\u0440\u043d\u0430\u0442\u0443 \u04af\u0448\u0456\u043d \u043f\u043b\u0430\u0433\u0438\u043d\u0434\u0435\u0440 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0456\u043d \u0448\u0430\u0440\u043b\u0430\u04a3\u044b\u0437.",
"NotificationOptionServerRestartRequired": "\u0421\u0435\u0440\u0432\u0435\u0440\u0434\u0456 \u049b\u0430\u0439\u0442\u0430 \u0456\u0441\u043a\u0435 \u049b\u043e\u0441\u0443 \u049b\u0430\u0436\u0435\u0442",
"LabelNotificationEnabled": "\u0411\u04b1\u043b \u0445\u0430\u0431\u0430\u0440\u043b\u0430\u043d\u0434\u044b\u0440\u043c\u0430\u043d\u044b \u049b\u043e\u0441\u0443",
@@ -777,7 +777,7 @@
"LabelHomePageSection4": "\u0411\u0430\u0441\u0442\u044b \u0431\u0435\u0442 4-\u0431\u04e9\u043b\u0456\u043c:",
"OptionMyViewsButtons": "\u041c\u0435\u043d\u0456\u04a3 \u043a\u04e9\u0440\u0456\u043d\u0456\u0441\u0442\u0435\u0440\u0456\u043c (\u0442\u04af\u0439\u043c\u0435\u0448\u0456\u043a\u0442\u0435\u0440)",
"OptionMyViews": "\u041c\u0435\u043d\u0456\u04a3 \u043a\u04e9\u0440\u0456\u043d\u0456\u0441\u0442\u0435\u0440\u0456\u043c",
- "OptionMyViewsSmall": "\u041c\u0435\u043d\u0456\u04a3 \u043a\u04e9\u0440\u0456\u043d\u0456\u0441\u0442\u0435\u0440\u0456\u043c (\u043a\u0456\u0448\u0456)",
+ "OptionMyViewsSmall": "\u041c\u0435\u043d\u0456\u04a3 \u043a\u04e9\u0440\u0456\u043d\u0456\u0441\u0442\u0435\u0440\u0456\u043c (\u044b\u049b\u0448\u0430\u043c)",
"OptionResumablemedia": "\u0416\u0430\u043b\u0493\u0430\u0441\u0442\u044b\u0440\u0443",
"OptionLatestMedia": "\u0415\u04a3 \u0441\u043e\u04a3\u0493\u044b \u0442\u0430\u0441\u0443\u0448\u044b\u043b\u0430\u0440",
"OptionLatestChannelMedia": "\u0410\u0440\u043d\u0430\u043b\u0430\u0440\u0434\u044b\u04a3 \u0435\u04a3 \u043a\u0435\u0439\u0456\u043d\u0433\u0456 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0442\u0435\u0440\u0456",
@@ -794,6 +794,8 @@
"TabNextUp": "\u0410\u043b\u0434\u0430\u0493\u044b",
"MessageNoMovieSuggestionsAvailable": "\u0415\u0448\u049b\u0430\u043d\u0434\u0430\u0439 \u0444\u0438\u043b\u044c\u043c \u04b1\u0441\u044b\u043d\u044b\u0441\u0442\u0430\u0440\u044b \u0430\u0493\u044b\u043c\u0434\u0430 \u049b\u043e\u043b \u0436\u0435\u0442\u0456\u043c\u0434\u0456 \u0435\u043c\u0435\u0441. \u0424\u0438\u043b\u044c\u043c\u0434\u0435\u0440\u0434\u0456 \u049b\u0430\u0440\u0430\u0443\u0434\u044b \u0436\u04d9\u043d\u0435 \u0431\u0430\u0493\u0430\u043b\u0430\u0443\u0434\u044b \u0431\u0430\u0441\u0442\u0430\u04a3\u044b\u0437, \u0441\u043e\u043d\u0434\u0430 \u0430\u0440\u043d\u0430\u043b\u0493\u0430\u043d \u04b1\u0441\u044b\u043d\u044b\u0442\u0430\u0440\u044b\u04a3\u044b\u0437\u0434\u044b \u043a\u04e9\u0440\u0443 \u04af\u0448\u0456\u043d \u049b\u0430\u0439\u0442\u0430 \u043a\u0435\u043b\u0456\u04a3\u0456\u0437.",
"MessageNoCollectionsAvailable": "\u0424\u0438\u043b\u044c\u043c\u0434\u0435\u0440\u0434\u0456, \u0441\u0435\u0440\u0438\u0430\u043b\u0434\u0430\u0440\u0434\u044b, \u0430\u043b\u044c\u0431\u043e\u043c\u0434\u0430\u0440\u0434\u044b, \u043a\u0456\u0442\u0430\u043f\u0442\u0430\u0440\u0434\u044b \u0436\u04d9\u043d\u0435 \u043e\u0439\u044b\u043d\u0434\u0430\u0440\u0434\u044b \u0436\u0435\u043a\u0435\u043b\u0435\u043d\u0433\u0435\u043d \u0442\u043e\u043f\u0442\u0430\u0441\u0442\u044b\u0440\u0443 \u04af\u0448\u0456\u043d \u0442\u043e\u043f\u0442\u0430\u043c\u0430\u043b\u0430\u0440 \u043c\u04af\u043c\u043a\u0456\u043d\u0434\u0456\u043a \u0431\u0435\u0440\u0435\u0434\u0456. \u0422\u043e\u043f\u0442\u0430\u043c\u0430\u043b\u0430\u0440\u0434\u044b \u0436\u0430\u0441\u0430\u0439 \u0431\u0430\u0441\u0442\u0430\u0443 \u04af\u0448\u0456\u043d \"\u0416\u0430\u0441\u0430\u0443\" \u0442\u04af\u0439\u043c\u0435\u0448\u0456\u0433\u0456\u043d \u0431\u0430\u0441\u044b\u04a3\u044b\u0437.",
+ "MessageNoPlaylistsAvailable": "\u041e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c\u0434\u0435\u0440\u0456 \u0431\u0456\u0440 \u043a\u0435\u0437\u0434\u0435 \u043e\u0439\u043d\u0430\u0442\u0443 \u04af\u0448\u0456\u043d \u043c\u0430\u0437\u043c\u04b1\u043d \u0442\u0456\u0437\u0456\u043c\u0456\u043d \u0436\u0430\u0441\u0430\u0443\u0493\u0430 \u0440\u04b1\u049b\u0441\u0430\u0442 \u0435\u0442\u0435\u0434\u0456. \u041e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c\u0434\u0435\u0440\u0433\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0442\u0435\u0440\u0434\u0456 \u04af\u0441\u0442\u0435\u0443 \u04af\u0448\u0456\u043d, \u0442\u0456\u043d\u0442\u0443\u0456\u0440\u0434\u0456\u04a3 \u043e\u04a3 \u0436\u0430\u049b \u0442\u04af\u0439\u043c\u0435\u0448\u0456\u0433\u0456\u043d \u0431\u0430\u0441\u044b\u04a3\u044b\u0437 \u043d\u0435\u043c\u0435\u0441\u0435 \u0442\u04af\u0440\u0442\u0456\u043f \u0436\u04d9\u043d\u0435 \u04b1\u0441\u0442\u0430\u043f \u0442\u04b1\u0440\u044b\u04a3\u044b\u0437, \u0441\u043e\u043d\u0434\u0430 \u041e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c\u0456\u043d\u0435 \u04af\u0441\u0442\u0435\u0443 \u0434\u0435\u0433\u0435\u043d\u0434\u0456 \u0442\u0430\u04a3\u0434\u0430\u04a3\u044b\u0437.",
+ "MessageNoPlaylistItemsAvailable": "\u041e\u0441\u044b \u043e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c \u0430\u0493\u044b\u043c\u0434\u0430\u0493\u044b \u0443\u0430\u049b\u044b\u0442\u0442\u0430 \u0431\u043e\u0441.",
"HeaderWelcomeToMediaBrowserWebClient": "Media Browser \u0432\u0435\u0431-\u043a\u043b\u0438\u0435\u043d\u0442 \u0431\u0430\u0493\u0434\u0430\u0440\u043b\u0430\u043c\u0430\u0441\u044b\u043d\u0430 \u0445\u043e\u0448 \u043a\u0435\u043b\u0434\u0456\u04a3\u0456\u0437!",
"ButtonDismiss": "\u0416\u0430\u0441\u044b\u0440\u0443",
"MessageLearnHowToCustomize": "\u041e\u0441\u044b \u0431\u0435\u0442\u0442\u0456 \u0436\u0435\u043a\u0435 \u043a\u04e9\u04a3\u0456\u043b\u0433\u0435 \u04b1\u043d\u0430\u0442\u0443 \u0431\u043e\u0439\u044b\u043d\u0448\u0430 \u049b\u0430\u043b\u0430\u0439 \u0442\u0435\u04a3\u0448\u0435\u0443\u0456\u043d \u04af\u0439\u0440\u0435\u043d\u0456\u04a3\u0456\u0437. \u0422\u0435\u04a3\u0448\u0435\u043b\u0456\u043c\u0434\u0435\u0440\u0456\u04a3\u0456\u0437\u0434\u0456 \u049b\u0430\u0440\u0430\u0443 \u0436\u04d9\u043d\u0435 \u0436\u0430\u04a3\u0430\u0440\u0442\u0443 \u04af\u0448\u0456\u043d \u044d\u043a\u0440\u0430\u043d\u0434\u0430\u0493\u044b \u0436\u043e\u0493\u0430\u0440\u0493\u044b \u043e\u04a3 \u0431\u04b1\u0440\u044b\u0448\u044b\u043d\u0434\u0430\u0493\u044b \u043f\u0430\u0439\u0434\u0430\u043b\u0430\u043d\u0443\u0448\u044b\u043b\u044b\u049b \u0431\u0435\u043b\u0433\u0456\u0448\u0435\u04a3\u0456\u0437\u0434\u0456 \u0431\u0430\u0441\u044b\u04a3\u044b\u0437.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http \u0422\u0456\u043a\u0435\u043b\u0435\u0439 \u0410\u0493\u044b\u043d (HLS)",
"LabelContext": "\u041c\u04d9\u0442\u0456\u043d\u043c\u04d9\u043d:",
"OptionContextStreaming": "\u0410\u0493\u044b\u043d\u043c\u0435\u043d \u0442\u0430\u0441\u044b\u043c\u0430\u043b\u0434\u0430\u0443",
- "OptionContextStatic": "\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0434\u0430\u0443"
+ "OptionContextStatic": "\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0434\u0430\u0443",
+ "ButtonAddToPlaylist": "\u041e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c\u0456\u043d\u0435 \u04af\u0441\u0442\u0435\u0443",
+ "TabPlaylists": "\u041e\u0439\u043d\u0430\u0442\u0443 \u0442\u0456\u0437\u0456\u043c\u0434\u0435\u0440\u0456",
+ "ButtonClose": "\u0416\u0430\u0431\u0443",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/ko.json b/MediaBrowser.Server.Implementations/Localization/Server/ko.json
index 19b5c8b1d..fe12bcb3d 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ko.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ko.json
@@ -88,7 +88,7 @@
"LabelSelectUsers": "Select users:",
"ButtonUpload": "Upload",
"HeaderUploadNewImage": "Upload New Image",
- "LabelDropImageHere": "Drop Image Here",
+ "LabelDropImageHere": "Drop image here",
"ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG\/PNG only.",
"MessageNothingHere": "Nothing here.",
"MessagePleaseEnsureInternetMetadata": "Please ensure downloading of internet metadata is enabled.",
@@ -794,6 +794,8 @@
"TabNextUp": "Next Up",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/ms.json b/MediaBrowser.Server.Implementations/Localization/Server/ms.json
index 6cfd966a4..4344dfbc6 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ms.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ms.json
@@ -88,7 +88,7 @@
"LabelSelectUsers": "Select users:",
"ButtonUpload": "Upload",
"HeaderUploadNewImage": "Upload New Image",
- "LabelDropImageHere": "Drop Image Here",
+ "LabelDropImageHere": "Drop image here",
"ImageUploadAspectRatioHelp": "1:1 Aspect Ratio Recommended. JPG\/PNG only.",
"MessageNothingHere": "Nothing here.",
"MessagePleaseEnsureInternetMetadata": "Please ensure downloading of internet metadata is enabled.",
@@ -794,6 +794,8 @@
"TabNextUp": "Next Up",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/nb.json b/MediaBrowser.Server.Implementations/Localization/Server/nb.json
index 733c92f7b..1c2ad5f29 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/nb.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/nb.json
@@ -794,6 +794,8 @@
"TabNextUp": "Next Up",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/nl.json b/MediaBrowser.Server.Implementations/Localization/Server/nl.json
index 24eacd739..7945a8734 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/nl.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/nl.json
@@ -263,7 +263,7 @@
"LabelMetadataPath": "metagegevens pad:",
"LabelMetadataPathHelp": "Deze locatie bevat gedownloade afbeeldingen en metagegevens die niet zijn geconfigureerd om te worden opgeslagen in mediamappen .",
"LabelTranscodingTempPath": "Tijdelijk Transcodeer pad:",
- "LabelTranscodingTempPathHelp": "Deze map bevat werkbestanden die worden gebruikt door de transcoder.",
+ "LabelTranscodingTempPathHelp": "Deze map bevat werkbestanden die worden gebruikt door de transcoder. Geef een eigen locatie op of laat leeg om de standaardlocatie te gebruiken.",
"TabBasics": "Basis",
"TabTV": "TV",
"TabGames": "Games",
@@ -794,6 +794,8 @@
"TabNextUp": "Eerstvolgende",
"MessageNoMovieSuggestionsAvailable": "Er zijn momenteel geen film suggesties beschikbaar. Begin met het bekijken en waardeer uw films, kom daarna terug om uw aanbevelingen te bekijken.",
"MessageNoCollectionsAvailable": "Met Verzamelingen kunt u genieten van gepersonaliseerde groeperingen van films, series, Albums, Boeken en games. Klik op de knop Nieuw om te beginnen met het maken van verzamelingen.",
+ "MessageNoPlaylistsAvailable": "Met afspeellijsten kan je een lijst maken waarvan de items achter elkaar afgespeeld worden. Om een item toe te voegen klik je met rechts of tik en hou je het vast om het te selecteren, klik vervolgens op Toevoegen aan afspeellijst.",
+ "MessageNoPlaylistItemsAvailable": "De afspeellijst is momenteel leeg.",
"HeaderWelcomeToMediaBrowserWebClient": "Welkom op de Media Browser Web Client",
"ButtonDismiss": "Afwijzen",
"MessageLearnHowToCustomize": "Leer hoe u deze pagina aan kunt passen aan uw persoonlijke smaak. Klik op uw gebruikersnaam pictogram in de rechterbovenhoek van het scherm om uw voorkeuren te bekijken en bij te werken.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Toevoegen aan afspeellijst",
+ "TabPlaylists": "Afspeellijst",
+ "ButtonClose": "Sluiten",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/pl.json b/MediaBrowser.Server.Implementations/Localization/Server/pl.json
index 8e07ffe22..927eee68d 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/pl.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/pl.json
@@ -794,6 +794,8 @@
"TabNextUp": "Next Up",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json b/MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json
index beaf8aba9..356a646fe 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/pt_BR.json
@@ -11,7 +11,7 @@
"LabelRestartServer": "Reiniciar Servidor",
"LabelShowLogWindow": "Exibir Janela de Log",
"LabelPrevious": "Anterior",
- "LabelFinish": "Terminar",
+ "LabelFinish": "Finalizar",
"LabelNext": "Pr\u00f3ximo",
"LabelYoureDone": "Pronto!",
"WelcomeToMediaBrowser": "Bem Vindo ao Media Browser!",
@@ -794,6 +794,8 @@
"TabNextUp": "Pr\u00f3ximos",
"MessageNoMovieSuggestionsAvailable": "N\u00e3o existem sugest\u00f5es de filmes dispon\u00edveis atualmente. Comece por assistir e classificar seus filmes e, ent\u00e3o, volte para verificar suas recomenda\u00e7\u00f5es.",
"MessageNoCollectionsAvailable": "Cole\u00e7\u00f5es permitem que voc\u00ea agrupe os Filmes, S\u00e9ries, Livros e Jogos de forma personalizada. Clique no bot\u00e3o Nova para iniciar a cria\u00e7\u00e3o de Cole\u00e7\u00f5es.",
+ "MessageNoPlaylistsAvailable": "Listas de reprodu\u00e7\u00e3o permitem criar listas com conte\u00fado para reproduzir consecutivamente, de uma s\u00f3 vez. Para adicionar itens \u00e0s listas de reprodu\u00e7\u00e3o, clique com o bot\u00e3o direito ou toque a tela por alguns segundos, depois selecione Adicionar \u00e0 Lista de Reprodu\u00e7\u00e3o.",
+ "MessageNoPlaylistItemsAvailable": "Esta lista de reprodu\u00e7\u00e3o est\u00e1 vazia.",
"HeaderWelcomeToMediaBrowserWebClient": "Bem-vindo ao Cliente Web do Media Browser",
"ButtonDismiss": "Descartar",
"MessageLearnHowToCustomize": "Aprenda como personalizar esta p\u00e1gina com seu estilo pessoal. Clique no \u00edcone do usu\u00e1rio no canto superior direito da tela para ver e atualizar suas prefer\u00eancias.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Contexto:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sinc"
+ "OptionContextStatic": "Sinc",
+ "ButtonAddToPlaylist": "Adicionar \u00e0 lista de reprodu\u00e7\u00e3o",
+ "TabPlaylists": "Listas de Reprodu\u00e7\u00e3o",
+ "ButtonClose": "Fechar",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json b/MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json
index 01e446591..c4e11e428 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/pt_PT.json
@@ -794,6 +794,8 @@
"TabNextUp": "Next Up",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/ru.json b/MediaBrowser.Server.Implementations/Localization/Server/ru.json
index 87f31d415..e64b0659d 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/ru.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/ru.json
@@ -589,7 +589,7 @@
"NotificationOptionTaskFailed": "\u0421\u0431\u043e\u0439 \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f",
"NotificationOptionInstallationFailed": "\u0421\u0431\u043e\u0439 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438",
"NotificationOptionNewLibraryContent": "\u041d\u043e\u0432\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e",
- "NotificationOptionNewLibraryContentMultiple": "\u041d\u043e\u0432\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e (\u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e)",
+ "NotificationOptionNewLibraryContentMultiple": "\u041d\u043e\u0432\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043e (\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435)",
"SendNotificationHelp": "\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0432 \u044f\u0449\u0438\u043a \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0432 \u0418\u043d\u0444\u043e\u043f\u0430\u043d\u0435\u043b\u0438. \u041f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439.",
"NotificationOptionServerRestartRequired": "\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a \u0441\u0435\u0440\u0432\u0435\u0440\u0430",
"LabelNotificationEnabled": "\u0412\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u043e\u0435 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435",
@@ -727,7 +727,7 @@
"OptionReportByteRangeSeekingWhenTranscodingHelp": "\u042d\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0434\u0435\u043b\u0430\u044e\u0442 \u043f\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u043e\u0442\u043a\u0443 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0445\u043e\u0440\u043e\u0448\u043e.",
"HeaderSubtitleDownloadingHelp": "\u041f\u0440\u0438 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u0438\u0434\u0435\u043e\u0444\u0430\u0439\u043b\u043e\u0432, Media Browser \u043c\u043e\u0436\u0435\u0442 \u0438\u0441\u043a\u0430\u0442\u044c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u044e\u0449\u0438\u0435 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0438\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, OpenSubtitles.org.",
"HeaderDownloadSubtitlesFor": "\u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432 \u0434\u043b\u044f:",
- "MessageNoChapterProviders": "\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u043b\u0430\u0433\u0438\u043d-\u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a \u0441\u0446\u0435\u043d (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, ChapterDb) \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0441\u0446\u0435\u043d.",
+ "MessageNoChapterProviders": "\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043f\u043b\u0430\u0433\u0438\u043d-\u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a \u0441\u0446\u0435\u043d (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: ChapterDb) \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0441\u0446\u0435\u043d.",
"LabelSkipIfGraphicalSubsPresent": "\u041e\u043f\u0443\u0441\u0442\u0438\u0442\u044c, \u0435\u0441\u043b\u0438 \u0432 \u0432\u0438\u0434\u0435\u043e\u0444\u0430\u0439\u043b\u0435 \u0443\u0436\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u0441\u044f \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u044b",
"LabelSkipIfGraphicalSubsPresentHelp": "\u0422\u0435\u043a\u0441\u0442\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438 \u0441\u0443\u0431\u0442\u0438\u0442\u0440\u043e\u0432 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0442 \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u0443\u044e \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432.",
"TabSubtitles": "\u0421\u0443\u0431\u0442\u0438\u0442\u0440\u044b",
@@ -777,7 +777,7 @@
"LabelHomePageSection4": "\u0413\u043b\u0430\u0432\u043d\u0430\u044f \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430 - \u0440\u0430\u0437\u0434\u0435\u043b 4:",
"OptionMyViewsButtons": "\u041c\u043e\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f (\u043a\u043d\u043e\u043f\u043a\u0438)",
"OptionMyViews": "\u041c\u043e\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f",
- "OptionMyViewsSmall": "\u041c\u043e\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f (\u043c\u0430\u043b\u044b\u0435)",
+ "OptionMyViewsSmall": "\u041c\u043e\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f (\u043a\u043e\u043c\u043f\u0430\u043a\u0442\u043d\u044b\u0435)",
"OptionResumablemedia": "\u0412\u043e\u0437\u043e\u0431\u043d\u043e\u0432\u0438\u043c\u044b\u0435",
"OptionLatestMedia": "\u041d\u043e\u0432\u0438\u043d\u043a\u0438 \u043d\u043e\u0441\u0438\u0442\u0435\u043b\u0435\u0439",
"OptionLatestChannelMedia": "\u041d\u043e\u0432\u0438\u043d\u043a\u0438 \u043a\u0430\u043d\u0430\u043b\u043e\u0432",
@@ -794,6 +794,8 @@
"TabNextUp": "\u041f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f",
"MessageNoMovieSuggestionsAvailable": "\u0421\u0435\u0439\u0447\u0430\u0441 \u043d\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0444\u0438\u043b\u044c\u043c\u043e\u0432. \u041d\u0430\u0447\u043d\u0438\u0442\u0435 \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438 \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c \u0444\u0438\u043b\u044c\u043c\u044b, \u0438 \u0442\u043e\u0433\u0434\u0430 \u0432\u0435\u0440\u043d\u0438\u0442\u0435\u0441\u044c \u043d\u0430\u0437\u0430\u0434, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0432\u0430\u0448\u0438 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438.",
"MessageNoCollectionsAvailable": "\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438\u0437 \u0444\u0438\u043b\u044c\u043c\u043e\u0432, \u0441\u0435\u0440\u0438\u0430\u043b\u043e\u0432, \u0430\u043b\u044c\u0431\u043e\u043c\u043e\u0432 \u0438 \u0438\u0433\u0440. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u043a\u043d\u043e\u043f\u043a\u0443 \"\u0421\u043e\u0437\u0434\u0430\u0442\u044c\", \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u044e.",
+ "MessageNoPlaylistsAvailable": "\u0421\u043f\u0438\u0441\u043a\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043a\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0437\u0430 \u0440\u0430\u0437. \u0427\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0432 \u0441\u043f\u0438\u0441\u043a\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f, \u0449\u0435\u043b\u043a\u043d\u0438\u0442\u0435 \u043f\u0440\u0430\u0432\u043e\u0439 \u043a\u043d\u043e\u043f\u043a\u043e\u0439 \u043c\u044b\u0448\u0438 \u0438\u043b\u0438 \u043a\u043e\u0441\u043d\u0438\u0442\u0435\u0441\u044c \u0438 \u0434\u0435\u0440\u0436\u0438\u0442\u0435, \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f.",
+ "MessageNoPlaylistItemsAvailable": "\u0414\u0430\u043d\u043d\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432 \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043f\u0443\u0441\u0442.",
"HeaderWelcomeToMediaBrowserWebClient": "\u0412\u0435\u0431-\u043a\u043b\u0438\u0435\u043d\u0442 Media Browser \u043f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0430\u0441!",
"ButtonDismiss": "\u0421\u043a\u0440\u044b\u0442\u044c",
"MessageLearnHowToCustomize": "\u041e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c, \u043a\u0430\u043a \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u043e \u0441\u0432\u043e\u0435\u043c\u0443 \u043b\u0438\u0447\u043d\u043e\u043c\u0443 \u0432\u043a\u0443\u0441\u0443. \u041d\u0430\u0436\u043c\u0438\u0442\u0435 \u0430\u0432\u0430\u0442\u0430\u0440\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u043f\u0440\u0430\u0432\u043e\u043c \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0443\u0433\u043b\u0443 \u044d\u043a\u0440\u0430\u043d\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438.",
@@ -807,7 +809,7 @@
"LabelChannelDownloadPathHelp": "\u0423\u043a\u0430\u0436\u0438\u0442\u0435, \u043f\u043e \u0436\u0435\u043b\u0430\u043d\u0438\u044e, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043b\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a. \u041e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043f\u0443\u0441\u0442\u044b\u043c, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u0432\u043e \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u044e\u044e \u043f\u0430\u043f\u043a\u0443 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.",
"LabelChannelDownloadAge": "\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437, \u0434\u043d\u0438:",
"LabelChannelDownloadAgeHelp": "\u0411\u0443\u0434\u0435\u0442 \u0443\u0434\u0430\u043b\u0435\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u0441\u0442\u0430\u0440\u0435\u0435, \u0447\u0435\u043c \u0434\u0430\u043d\u043d\u043e\u0435. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0435\u0433\u043e \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c \u043f\u043e\u0442\u043e\u043a\u043e\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0447\u0435\u0440\u0435\u0437 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f.",
- "ChannelSettingsFormHelp": "\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043a\u0430\u043d\u0430\u043b\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, Trailers \u0438 Vimeo) \u0438\u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432.",
+ "ChannelSettingsFormHelp": "\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u043a\u0430\u043d\u0430\u043b\u044b (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: Trailers \u0438\u043b\u0438 Vimeo) \u0438\u0437 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u043f\u043b\u0430\u0433\u0438\u043d\u043e\u0432.",
"LabelSelectCollection": "\u0412\u044b\u0431\u043e\u0440 \u043a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438:",
"ViewTypeMovies": "\u041a\u0438\u043d\u043e",
"ViewTypeTvShows": "\u0422\u0412",
@@ -818,7 +820,7 @@
"ViewTypeLiveTV": "\u0422\u0412 \u044d\u0444\u0438\u0440",
"HeaderOtherDisplaySettings": "\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f",
"HeaderMyViews": "\u041c\u043e\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f",
- "LabelSelectFolderGroups": "\u0410\u0432\u0442\u043e\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u041a\u0438\u043d\u043e, \u041c\u0443\u0437\u044b\u043a\u0430 \u0438 \u0422\u0412) \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043f\u0430\u043f\u043e\u043a:",
+ "LabelSelectFolderGroups": "\u0410\u0432\u0442\u043e\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \u041a\u0438\u043d\u043e, \u041c\u0443\u0437\u044b\u043a\u0430 \u0438\u043b\u0438 \u0422\u0412) \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0438\u0437 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u043f\u0430\u043f\u043e\u043a:",
"LabelSelectFolderGroupsHelp": "\u041f\u0430\u043f\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043e\u0442\u043c\u0435\u0447\u0435\u043d\u044b, \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043f\u043e \u043f\u0440\u0438\u0441\u0443\u0449\u0438\u043c \u0438\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u043c.",
"OptionDisplayAdultContent": "\u041e\u0442\u043e\u0431\u0440\u0430\u0437\u0438\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \"\u0434\u043b\u044f \u0432\u0437\u0440\u043e\u0441\u043b\u044b\u0445\"",
"OptionLibraryFolders": "\u041c\u0435\u0434\u0438\u0430\u043f\u0430\u043f\u043a\u0438",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http \u041f\u0440\u044f\u043c\u043e\u0439 \u041f\u043e\u0442\u043e\u043a (HLS)",
"LabelContext": "\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442",
"OptionContextStreaming": "\u041f\u043e\u0442\u043e\u043a\u043e\u0432\u0430\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430",
- "OptionContextStatic": "\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f"
+ "OptionContextStatic": "\u0421\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f",
+ "ButtonAddToPlaylist": "\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f",
+ "TabPlaylists": "\u0421\u043f\u0438\u0441\u043a\u0438 \u0432\u043e\u0441\u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f",
+ "ButtonClose": "\u0417\u0430\u043a\u0440\u044b\u0442\u044c",
+ "LabelAllLanguages": "\u0412\u0441\u0435 \u044f\u0437\u044b\u043a\u0438",
+ "HeaderBrowseOnlineImages": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0440\u0438\u0441\u0443\u043d\u043a\u043e\u0432 \u0432 \u0441\u0435\u0442\u0438",
+ "LabelSource": "\u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a:",
+ "OptionAll": "\u0412\u0441\u0435",
+ "LabelImage": "\u0420\u0438\u0441\u0443\u043d\u043e\u043a:",
+ "ButtonBrowseImages": "\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0438\u0441\u0443\u043d\u043a\u0438",
+ "HeaderImages": "\u0420\u0438\u0441\u0443\u043d\u043a\u0438",
+ "HeaderBackdrops": "\u0417\u0430\u0434\u043d\u0438\u043a\u0438",
+ "HeaderScreenshots": "\u0421\u043d\u0438\u043c\u043a\u0438 \u044d\u043a\u0440\u0430\u043d\u0430",
+ "HeaderAddUpdateImage": "\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\/\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0438\u0441\u0443\u043d\u043a\u0430",
+ "LabelJpgPngOnly": "\u0422\u043e\u043b\u044c\u043a\u043e JPG\/PNG",
+ "LabelImageType": "\u0422\u0438\u043f \u0440\u0438\u0441\u0443\u043d\u043a\u0430:",
+ "OptionPrimary": "\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u044b\u0439",
+ "OptionArt": "\u0412\u0438\u043d\u044c\u0435\u0442\u043a\u0430",
+ "OptionBox": "\u041a\u043e\u0440\u043e\u0431\u043a\u0430",
+ "OptionBoxRear": "\u041a\u043e\u0440\u043e\u0431\u043a\u0430 \u0441\u0437\u0430\u0434\u0438",
+ "OptionDisc": "\u0414\u0438\u0441\u043a",
+ "OptionLogo": "\u041b\u043e\u0433\u043e\u0442\u0438\u043f",
+ "OptionMenu": "\u041c\u0435\u043d\u044e",
+ "OptionScreenshot": "\u0421\u043d\u0438\u043c\u043e\u043a \u044d\u043a\u0440\u0430\u043d\u0430",
+ "OptionLocked": "\u0417\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u043e",
+ "OptionUnidentified": "\u041d\u0435 \u043e\u043f\u043e\u0437\u043d\u0430\u043d\u043e",
+ "OptionMissingParentalRating": "\u041f\u0440\u043e\u043f\u0443\u0449\u0435\u043d\u0430 \u0432\u043e\u0437\u0440\u0430\u0441\u0442\u043d\u0430\u044f \u043a\u0430\u0442\u0435\u0433\u043e\u0440\u0438\u044f",
+ "OptionStub": "\u0417\u0430\u0433\u043b\u0443\u0448\u043a\u0430",
+ "HeaderEpisodes": "\u042d\u043f\u0438\u0437\u043e\u0434\u044b:",
+ "OptionSeason0": "\u0421\u0435\u0437\u043e\u043d 0",
+ "LabelReport": "\u041e\u0442\u0447\u0451\u0442",
+ "OptionReportSongs": "\u041c\u0435\u043b\u043e\u0434\u0438\u0438",
+ "OptionReportSeries": "\u0421\u0435\u0440\u0438\u0430\u043b",
+ "OptionReportSeasons": "\u0421\u0435\u0437\u043e\u043d\u044b",
+ "OptionReportTrailers": "\u0422\u0440\u0435\u0439\u043b\u0435\u0440\u044b",
+ "OptionReportMusicVideos": "\u041a\u043b\u0438\u043f\u044b",
+ "OptionReportMovies": "\u0424\u0438\u043b\u044c\u043c\u044b",
+ "OptionReportHomeVideos": "\u0414\u043e\u043c\u0430\u0448\u043d\u0435\u0435 \u0432\u0438\u0434\u0435\u043e",
+ "OptionReportGames": "\u0418\u0433\u0440\u044b",
+ "OptionReportEpisodes": "\u042d\u043f\u0438\u0437\u043e\u0434\u044b",
+ "OptionReportCollections": "\u041a\u043e\u043b\u043b\u0435\u043a\u0446\u0438\u0438",
+ "OptionReportBooks": "\u041a\u043d\u0438\u0433\u0438",
+ "OptionReportArtists": "\u0418\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0438",
+ "OptionReportAlbums": "\u0410\u043b\u044c\u0431\u043e\u043c\u044b",
+ "OptionReportAdultVideos": "\u0412\u0437\u0440\u043e\u0441\u043b\u043e\u0435 \u0432\u0438\u0434\u0435\u043e"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/server.json b/MediaBrowser.Server.Implementations/Localization/Server/server.json
index 471620948..a88ba8592 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/server.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/server.json
@@ -919,5 +919,50 @@
"OptionContextStreaming": "Streaming",
"OptionContextStatic": "Sync",
"ButtonAddToPlaylist": "Add to playlist",
- "TabPlaylists": "Playlists"
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonUpload": "Upload",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add/Update Image",
+ "LabelDropImageHere": "Drop image here",
+ "LabelJpgPngOnly": "JPG/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBackdrop": "Backdrop",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
}
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/sv.json b/MediaBrowser.Server.Implementations/Localization/Server/sv.json
index 4a7e529f0..5e9573733 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/sv.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/sv.json
@@ -794,6 +794,8 @@
"TabNextUp": "N\u00e4stkommande",
"MessageNoMovieSuggestionsAvailable": "Det finns inga filmf\u00f6rslag f\u00f6r tillf\u00e4llet. Efter att ha sett ett antal filmer kan du \u00e5terkomma hit f\u00f6r att se dina f\u00f6rslag.",
"MessageNoCollectionsAvailable": "Samlingar g\u00f6r det m\u00f6jligt att skapa skr\u00e4ddarsydda grupper av filmer, serier, album, b\u00f6cker och spel. Klicka p\u00e5 \"Ny\" f\u00f6r att b\u00f6rja med samlingar.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "V\u00e4lkommen till Media Browsers webbklient",
"ButtonDismiss": "Avvisa",
"MessageLearnHowToCustomize": "L\u00e4r dig hur du anpassar den h\u00e4r sidan till din personliga smak. Klicka p\u00e5 anv\u00e4ndarikonen uppe till h\u00f6ger f\u00f6r att visa och \u00e4ndra dina inst\u00e4llningar.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Live-str\u00f6mning via Http",
"LabelContext": "Metod:",
"OptionContextStreaming": "Str\u00f6mning",
- "OptionContextStatic": "Synk"
+ "OptionContextStatic": "Synk",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "St\u00e4ng",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/tr.json b/MediaBrowser.Server.Implementations/Localization/Server/tr.json
index c2498b575..3bbb22109 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/tr.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/tr.json
@@ -178,9 +178,9 @@
"OptionHasThemeVideo": "Tema Videosu",
"TabMovies": "Filmler",
"TabStudios": "St\u00fcdyo",
- "TabTrailers": "Trailers",
- "HeaderLatestMovies": "Latest Movies",
- "HeaderLatestTrailers": "Latest Trailers",
+ "TabTrailers": "Fragmanlar",
+ "HeaderLatestMovies": "Son filmler",
+ "HeaderLatestTrailers": "Son fragmanlar",
"OptionHasSpecialFeatures": "Special Features",
"OptionImdbRating": "\u0130MDb Reyting",
"OptionParentalRating": "Parental Rating",
@@ -188,7 +188,7 @@
"TabBasic": "Basit",
"TabAdvanced": "Geli\u015fmi\u015f",
"HeaderStatus": "Durum",
- "OptionContinuing": "Continuing",
+ "OptionContinuing": "Topluluk",
"OptionEnded": "Bitmi\u015f",
"HeaderAirDays": "Air Days",
"OptionSunday": "Pazar",
@@ -208,8 +208,8 @@
"TitleSupport": "Destek",
"TabLog": "Kay\u0131t",
"TabAbout": "Hakk\u0131nda",
- "TabSupporterKey": "Supporter Key",
- "TabBecomeSupporter": "Become a Supporter",
+ "TabSupporterKey": "Destek\u00e7i kodu",
+ "TabBecomeSupporter": "Destek\u00e7i ol",
"MediaBrowserHasCommunity": "Media Browser has a thriving community of users and contributors.",
"CheckoutKnowledgeBase": "Check out our knowledge base to help you get the most out of Media Browser.",
"SearchKnowledgeBase": "Search the Knowledge Base",
@@ -328,7 +328,7 @@
"ButtonDelete": "Sil",
"ButtonRemove": "Sil",
"OptionRecordSeries": "Kay\u0131t Serisi",
- "HeaderDetails": "Detay",
+ "HeaderDetails": "Detaylar",
"TitleLiveTV": "Canl\u0131 TV",
"LabelNumberOfGuideDays": "Number of days of guide data to download:",
"LabelNumberOfGuideDaysHelp": "Downloading more days worth of guide data provides the ability to schedule out further in advance and view more listings, but it will also take longer to download. Auto will choose based on the number of channels.",
@@ -440,7 +440,7 @@
"SystemDlnaProfilesHelp": "System profiles are read-only. Changes to a system profile will be saved to a new custom profile.",
"TitleDashboard": "Dashboard",
"TabHome": "Anasayfa",
- "TabInfo": "Info",
+ "TabInfo": "Bilgi",
"HeaderLinks": "Links",
"HeaderSystemPaths": "System Paths",
"LinkCommunity": "Community",
@@ -524,7 +524,7 @@
"HeaderRunningTasks": "Running Tasks",
"HeaderActiveDevices": "Active Devices",
"HeaderPendingInstallations": "Pending Installations",
- "HeaerServerInformation": "Server Information",
+ "HeaerServerInformation": "Sunucu bilgisi",
"ButtonRestartNow": "Restart Now",
"ButtonRestart": "Restart",
"ButtonShutdown": "Shutdown",
@@ -794,6 +794,8 @@
"TabNextUp": "Sonraki hafta",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/vi.json b/MediaBrowser.Server.Implementations/Localization/Server/vi.json
index 4ddd7a7d1..aefae379f 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/vi.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/vi.json
@@ -794,6 +794,8 @@
"TabNextUp": "Next Up",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json b/MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json
index d79d48099..9c42fef3f 100644
--- a/MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json
+++ b/MediaBrowser.Server.Implementations/Localization/Server/zh_TW.json
@@ -794,6 +794,8 @@
"TabNextUp": "Next Up",
"MessageNoMovieSuggestionsAvailable": "No movie suggestions are currently available. Start watching and rating your movies, and then come back to view your recommendations.",
"MessageNoCollectionsAvailable": "Collections allow you to enjoy personalized groupings of Movies, Series, Albums, Books and Games. Click the New button to start creating Collections.",
+ "MessageNoPlaylistsAvailable": "Playlists allow you to create lists of content to play consecutively at a time. To add items to playlists, right click or tap and hold, then select Add to Playlist.",
+ "MessageNoPlaylistItemsAvailable": "This playlist is currently empty.",
"HeaderWelcomeToMediaBrowserWebClient": "Welcome to the Media Browser Web Client",
"ButtonDismiss": "Dismiss",
"MessageLearnHowToCustomize": "Learn how to customize this page to your own personal tastes. Click your user icon in the top right corner of the screen to view and update your preferences.",
@@ -900,5 +902,49 @@
"OptionProtocolHls": "Http Live Streaming",
"LabelContext": "Context:",
"OptionContextStreaming": "Streaming",
- "OptionContextStatic": "Sync"
+ "OptionContextStatic": "Sync",
+ "ButtonAddToPlaylist": "Add to playlist",
+ "TabPlaylists": "Playlists",
+ "ButtonClose": "Close",
+ "LabelAllLanguages": "All languages",
+ "HeaderBrowseOnlineImages": "Browse Online Images",
+ "LabelSource": "Source:",
+ "OptionAll": "All",
+ "LabelImage": "Image:",
+ "ButtonBrowseImages": "Browse Images",
+ "HeaderImages": "Images",
+ "HeaderBackdrops": "Backdrops",
+ "HeaderScreenshots": "Screenshots",
+ "HeaderAddUpdateImage": "Add\/Update Image",
+ "LabelJpgPngOnly": "JPG\/PNG only",
+ "LabelImageType": "Image type:",
+ "OptionPrimary": "Primary",
+ "OptionArt": "Art",
+ "OptionBox": "Box",
+ "OptionBoxRear": "Box rear",
+ "OptionDisc": "Disc",
+ "OptionLogo": "Logo",
+ "OptionMenu": "Menu",
+ "OptionScreenshot": "Screenshot",
+ "OptionLocked": "Locked",
+ "OptionUnidentified": "Unidentified",
+ "OptionMissingParentalRating": "Missing parental rating",
+ "OptionStub": "Stub",
+ "HeaderEpisodes": "Episodes:",
+ "OptionSeason0": "Season 0",
+ "LabelReport": "Report:",
+ "OptionReportSongs": "Songs",
+ "OptionReportSeries": "Series",
+ "OptionReportSeasons": "Seasons",
+ "OptionReportTrailers": "Trailers",
+ "OptionReportMusicVideos": "Music videos",
+ "OptionReportMovies": "Movies",
+ "OptionReportHomeVideos": "Home videos",
+ "OptionReportGames": "Games",
+ "OptionReportEpisodes": "Episodes",
+ "OptionReportCollections": "Collections",
+ "OptionReportBooks": "Books",
+ "OptionReportArtists": "Artists",
+ "OptionReportAlbums": "Albums",
+ "OptionReportAdultVideos": "Adult videos"
} \ No newline at end of file
diff --git a/MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs b/MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs
index 0b3d5f784..6e484413a 100644
--- a/MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs
+++ b/MediaBrowser.Server.Implementations/Persistence/SqliteExtensions.cs
@@ -4,6 +4,7 @@ using System.Data;
using System.Data.SQLite;
using System.IO;
using System.Threading.Tasks;
+using MediaBrowser.Model.Serialization;
namespace MediaBrowser.Server.Implementations.Persistence
{
@@ -151,5 +152,26 @@ namespace MediaBrowser.Server.Implementations.Persistence
return connection;
}
+
+ /// <summary>
+ /// Serializes to bytes.
+ /// </summary>
+ /// <param name="json">The json.</param>
+ /// <param name="obj">The obj.</param>
+ /// <returns>System.Byte[][].</returns>
+ /// <exception cref="System.ArgumentNullException">obj</exception>
+ public static byte[] SerializeToBytes(this IJsonSerializer json, object obj)
+ {
+ if (obj == null)
+ {
+ throw new ArgumentNullException("obj");
+ }
+
+ using (var stream = new MemoryStream())
+ {
+ json.SerializeToStream(obj, stream);
+ return stream.ToArray();
+ }
+ }
}
} \ No newline at end of file